Merge from emacs-24; up to 2014-06-15T04:52:34Z!eli@barzilay.org

This commit is contained in:
Glenn Morris 2014-07-02 23:00:53 -07:00
commit 2d3c9015c7
46 changed files with 373 additions and 130 deletions

View file

@ -1,3 +1,9 @@
2014-07-03 Glenn Morris <rgm@gnu.org>
* help.texi (Misc Help):
* trouble.texi (Checklist): "Online" help doesn't mean what it
used to any more.
2014-06-23 Glenn Morris <rgm@gnu.org>
* Makefile.in (%.texi): Disable implicit rules.

View file

@ -490,8 +490,7 @@ currently in use. @xref{Coding Systems}.
@kindex C-h i
@findex info
@cindex Info
@cindex manuals, on-line
@cindex on-line manuals
@cindex manuals, included
@kbd{C-h i} (@code{info}) runs the Info program, which browses
structured documentation files. The entire Emacs manual is available
within Info, along with many other manuals for the GNU system. Type

View file

@ -847,7 +847,7 @@ conclusion from our observations.
@item
If the bug is that the Emacs Manual or the Emacs Lisp Reference Manual
fails to describe the actual behavior of Emacs, or that the text is
confusing, copy in the text from the online manual which you think is
confusing, copy in the text from the manual which you think is
at fault. If the section is small, just the section name is enough.
@item

View file

@ -1,3 +1,8 @@
2014-07-03 Glenn Morris <rgm@gnu.org>
* emacs-lisp-intro.texi (Note for Novices, Finding More, Conclusion):
"Online" help doesn't mean what it used to any more.
2014-06-23 Glenn Morris <rgm@gnu.org>
* Makefile.in (%.texi): Disable implicit rules.

View file

@ -903,7 +903,7 @@ file, @file{cl.el}, that adds many Common Lisp features to Emacs Lisp.)
If you don't know GNU Emacs, you can still read this document
profitably. However, I recommend you learn Emacs, if only to learn to
move around your computer screen. You can teach yourself how to use
Emacs with the on-line tutorial. To use it, type @kbd{C-h t}. (This
Emacs with the built-in tutorial. To use it, type @kbd{C-h t}. (This
means you press and release the @key{CTRL} key and the @kbd{h} at the
same time, and then press and release @kbd{t}.)
@ -4657,7 +4657,7 @@ specialized library, such as a law library or an engineering library,
rather than a general library. Each library, or file, contains
functions that relate to a particular topic or activity, such as
@file{abbrev.el} for handling abbreviations and other typing
shortcuts, and @file{help.el} for on-line help. (Sometimes several
shortcuts, and @file{help.el} for help. (Sometimes several
libraries provide code for a single activity, as the various
@file{rmail@dots{}} files provide code for reading electronic mail.)
In @cite{The GNU Emacs Manual}, you will see sentences such as ``The
@ -18685,9 +18685,9 @@ easy-to-read description of Emacs Lisp. It is written not only for
experts, but for people who know what you know. (The @cite{Reference
Manual} comes with the standard GNU Emacs distribution. Like this
introduction, it comes as a Texinfo source file, so you can read it
on-line and as a typeset, printed book.)
on your computer and as a typeset, printed book.)
Go to the other on-line help that is part of GNU Emacs: the on-line
Go to the other built-in help that is part of GNU Emacs: the built-in
documentation for all functions and variables, and @code{find-tag},
the program that takes you to sources.

View file

@ -1,3 +1,8 @@
2014-07-03 Glenn Morris <rgm@gnu.org>
* help.texi (Help Functions): "Online" help doesn't mean what it
used to any more.
2014-07-02 Stefan Monnier <monnier@iro.umontreal.ca>
* keymaps.texi (Key Lookup): Remove mention of indirect entries.

View file

@ -508,7 +508,7 @@ non-@code{nil}, the return value is always a vector.
@node Help Functions
@section Help Functions
Emacs provides a variety of on-line help functions, all accessible to
Emacs provides a variety of built-in help functions, all accessible to
the user as subcommands of the prefix @kbd{C-h}. For more information
about them, see @ref{Help, , Help, emacs, The GNU Emacs Manual}. Here
we describe some program-level interfaces to the same information.

View file

@ -1,3 +1,10 @@
2014-07-03 Glenn Morris <rgm@gnu.org>
* info.texi, mh-e.texi: "Online help" doesn't mean what it
used to any more.
* idlwave.texi (Introduction): Comment out dead http screenshot links.
2014-06-24 Leo Liu <sdl.web@gmail.com>
* dired-x.texi (Omitting Files in Dired, Omitting Variables):

View file

@ -239,24 +239,27 @@ Examining variables and expressions with a mouse click.
And much, much more...
@end itemize
@c Dead links, 2014/06.
@ignore
@ifnottex
@cindex Screenshots
Here are a number of screenshots showing IDLWAVE in action:
@itemize @bullet
@item
@uref{http://idlwave.org/screenshots/emacs_21_nav.gif,An IDLWAVE buffer}
@uref{http://github.com/jdtsmith/idlwave/screenshots/emacs_21_nav.gif,An IDLWAVE buffer}
@item
@uref{http://idlwave.org/screenshots/emacs_21_keys.gif,A keyword being completed}
@uref{http://github.com/jdtsmith/idlwave/screenshots/emacs_21_keys.gif,A keyword being completed}
@item
@uref{http://idlwave.org/screenshots/emacs_21_help.gif,Online help text.}
@uref{http://github.com/jdtsmith/idlwave/screenshots/emacs_21_help.gif,Online help text.}
@item
@uref{http://idlwave.org/screenshots/emacs_21_ri.gif,Routine information displayed}
@uref{http://github.com/jdtsmith/idlwave/screenshots/emacs_21_ri.gif,Routine information displayed}
@item
@uref{http://idlwave.org/screenshots/emacs_21_bp.gif,Debugging code
@uref{http://github.com/jdtsmith/idlwave/screenshots/emacs_21_bp.gif,Debugging code
stopped at a breakpoint}
@end itemize
@end ifnottex
@end ignore
IDLWAVE is the distant successor to the @file{idl.el} and
@file{idl-shell.el} files written by Chris Chase. The modes and files

View file

@ -12,7 +12,7 @@
@comment %**end of header
@copying
This file describes how to use Info, the on-line, menu-driven GNU
This file describes how to use Info, the menu-driven GNU
documentation system.
Copyright @copyright{} 1989, 1992, 1996--2014 Free Software Foundation, Inc.
@ -51,7 +51,7 @@ modify this GNU manual.''
@node Top
@top Info: An Introduction
The GNU Project distributes most of its on-line manuals in the
The GNU Project distributes most of its manuals in the
@dfn{Info format}, which you read using an @dfn{Info reader}. You are
probably using an Info reader to read this now.
@ -98,7 +98,7 @@ program on a computer, so that you can try Info commands while reading
about them. Reading it on paper or with an HTML browser is less
effective, since you must take it on faith that the commands described
really do what the manual says. By all means go through this manual
now that you have it; but please try going through the on-line version
now that you have it; but please try going through the Info version
as well.
@cindex Info reader, how to invoke

View file

@ -227,7 +227,7 @@ have, see @ref{Getting Started}.
@kindex C-h t
If you don't already use GNU Emacs but want to learn more, you can
read an online tutorial by starting GNU Emacs and typing @kbd{C-h t}
read a built-in tutorial by starting GNU Emacs and typing @kbd{C-h t}
(@code{help-with-tutorial}). (To learn about this notation, see
@ref{Conventions}.) If you want to take the plunge, consult the
@iftex
@ -1066,9 +1066,9 @@ This chapter begins the meat of the manual which goes into more detail
about every MH-E command and option.
@cindex Emacs, info
@cindex Emacs, online help
@cindex Emacs, built-in help
@cindex info
@cindex online help
@cindex built-in help
@findex describe-mode
@findex mh-help
@kindex ?
@ -1083,12 +1083,12 @@ summaries at the beginning of each chapter. In case you have or would
like to rebind the keys, the command summaries also list the
associated Emacs Lisp function. Furthermore, even if you're stranded
on a desert island with a laptop and are without your manuals, you can
get a summary of all these commands with GNU Emacs online help: use
get a summary of all these commands with GNU Emacs built-in help: use
@kbd{C-h m} (@code{describe-mode}) for a brief summary of commands,
@kbd{?} (@code{mh-help}) for an even briefer summary@footnote{This
help appears in a buffer called @file{*MH-E Help*}
(@pxref{Miscellaneous}).} (@kbd{C-c ?} in MH-Letter mode), or @kbd{C-h
i} to read this manual via Info. The online help is quite good; try
i} to read this manual via Info. The built-in help is quite good; try
running @kbd{C-h C-h}. This brings up a list of available help topics,
one of which displays the documentation for a given key (like @kbd{C-h
k C-n}). Another useful help feature is to view the manual section
@ -1120,21 +1120,21 @@ exist,
@c Yes, some of the stuff in the following sections is redundant, but
@c TeX barfs if the @ifs are inside the @footnote.
@iftex
@footnote{The @cite{GNU Emacs Lisp Reference Manual} may be available
online in the Info system by typing @kbd{C-h i m Emacs Lisp
@footnote{The @cite{GNU Emacs Lisp Reference Manual} should be available
via the Info system by typing @kbd{C-h i m Emacs Lisp
@key{RET}}. It is also available online at @*
@uref{http://www.gnu.org/software/emacs/manual/elisp.html}.}
@end iftex
@ifinfo
@footnote{@xref{Top, The GNU Emacs Lisp Reference Manual, , elisp, GNU
Emacs Lisp Reference Manual}, which may be available online in the
Emacs Lisp Reference Manual}, which should be available via the
Info system. It is also available online at
@uref{http://www.gnu.org/software/emacs/manual/elisp.html}.}
@end ifinfo
@ifhtml
@footnote{The
@uref{http://www.gnu.org/software/emacs/manual/elisp.html,
The GNU Emacs Lisp Reference Manual} may also be available online in
The GNU Emacs Lisp Reference Manual} should be available via
the Info system by typing @kbd{C-h i m Emacs Lisp @key{RET}}.}
@end ifhtml
and you can look at the code itself for examples. Look in the Emacs
@ -1142,7 +1142,7 @@ Lisp directory on your system (such as
@file{/usr/local/share/emacs/lisp/mh-e}) and find all the @file{mh-*.el}
files there. When calling MH-E and other Emacs Lisp functions directly
from Emacs Lisp code, you'll need to know the correct arguments. Use
the online help for this. For example, try @kbd{C-h f
the built-in help for this. For example, try @kbd{C-h f
mh-execute-commands @key{RET}}. If you write your own functions,
please do not prefix your symbols (variables and functions) with
@samp{mh-}. This prefix is reserved for the MH-E package. To avoid
@ -6405,7 +6405,7 @@ see the section
The Menu Bar} in @cite{The GNU Emacs Manual}.
@end ifhtml
The Emacs manual describes how to get online help for a particular
The Emacs manual describes how to get help for a particular
menu item. You can also look up a menu item in the index of this
manual in two ways: all of the menu items are listed alphabetically,
and you can also browse all of the items under the index entry

View file

@ -1,3 +1,8 @@
2014-07-03 Glenn Morris <rgm@gnu.org>
* refcards/calccard.tex (section{Getting Help}):
Meaning of "on-line" has changed.
2014-06-28 Glenn Morris <rgm@gnu.org>
* publicsuffix.txt: Update from source.

View file

@ -297,7 +297,7 @@ \section{Getting Help}
\key{describe key briefly}{h c}
\key{describe key fully}{h k}
\key{describe function or command}{h f}
\key{read on-line manual}{h i{\rm\enskip or\enskip}\calcprefix i}
\key{read Info manual}{h i{\rm\enskip or\enskip}\calcprefix i}
\key{read full Calc summary}{h s{\rm\enskip or\enskip}\calcprefix s}
\section{Error Recovery}

View file

@ -1,3 +1,56 @@
2014-07-03 Juri Linkov <juri@jurta.org>
* desktop.el (desktop-save): Rename arg `auto-save' to
`only-if-changed'. Doc fix. (Bug#17873)
2014-07-03 Stefan Monnier <monnier@iro.umontreal.ca>
* mouse.el (mouse-yank-primary, mouse-yank-secondary):
Use insert-for-yank (bug#17271).
2014-07-03 Leo Liu <sdl.web@gmail.com>
* emacs-lisp/pp.el (pp-eval-expression, pp-eval-last-sexp):
Support lexical-binding.
2014-07-03 Stefan Monnier <monnier@iro.umontreal.ca>
* vc/log-edit.el (log-edit-goto-eoh): New function.
(log-edit--match-first-line): Use it (bug#17861).
2014-07-03 Glenn Morris <rgm@gnu.org>
* vc/log-edit.el (log-edit-hook): Add missing :version.
2014-07-03 Fabián Ezequiel Gallina <fgallina@gnu.org>
* progmodes/python.el (python-indent-post-self-insert-function):
Enhancements to electric indentation behavior inside
parens. (Bug#17658)
2014-07-03 Stefan Monnier <monnier@iro.umontreal.ca>
* ps-def.el (ps-generate-postscript-with-faces1): Don't mess with
buffer-invisibility-spec (bug#17867).
2014-07-03 Andreas Schwab <schwab@linux-m68k.org>
* vc/vc-git.el (vc-git-checkin): When operating on the whole tree
pass "-a".
2014-07-03 Glenn Morris <rgm@gnu.org>
* cus-edit.el (help):
* finder.el (finder-known-keywords):
* help.el (help-for-help-internal):
* vc/ediff-mult.el (ediff-meta-buffer-verbose-message)
(ediff-redraw-registry-buffer):
* vc/ediff-ptch.el (ediff-patch-file-internal):
Doc fixes re "online" help. (Bug#17803)
* progmodes/idlwave.el (idlwave): Update url-link for custom group.
(idlwave-mode): Doc URL update.
2014-07-01 Juri Linkov <juri@jurta.org>
* man.el: Display man pages immediately and use process-filter

View file

@ -324,7 +324,7 @@
:group 'emacs)
(defgroup help nil
"Support for on-line help systems."
"Support for Emacs help systems."
:group 'emacs)
(defgroup multimedia nil

View file

@ -942,12 +942,13 @@ Frames with a non-nil `desktop-dont-save' parameter are not saved."
:predicate #'desktop--check-dont-save))))
;;;###autoload
(defun desktop-save (dirname &optional release auto-save)
(defun desktop-save (dirname &optional release only-if-changed)
"Save the desktop in a desktop file.
Parameter DIRNAME specifies where to save the desktop file.
Optional parameter RELEASE says whether we're done with this desktop.
If AUTO-SAVE is non-nil, compare the saved contents to the one last saved,
and don't save the buffer if they are the same."
If ONLY-IF-CHANGED is non-nil, compare the current desktop information
to that in the desktop file, and if the desktop information has not
changed since it was last saved then do not rewrite the file."
(interactive (list
;; Or should we just use (car desktop-path)?
(let ((default (if (member "." desktop-path)
@ -1020,7 +1021,7 @@ and don't save the buffer if they are the same."
(setq default-directory desktop-dirname)
;; When auto-saving, avoid writing if nothing has changed since the last write.
(let* ((beg (and auto-save
(let* ((beg (and only-if-changed
(save-excursion
(goto-char (point-min))
;; Don't check the header with changing timestamp

View file

@ -25,7 +25,7 @@
;;; Commentary:
;; This package provides a pre-packaged `Electric Help Mode' for
;; browsing on-line help screens. There is one entry point,
;; browsing Emacs help screens. There is one entry point,
;; `with-electric-help'; all you have to give it is a no-argument
;; function that generates the actual text of the help into the current
;; buffer.

View file

@ -129,7 +129,7 @@ Also add the value to the front of the list in the variable `values'."
(interactive
(list (read--expression "Eval: ")))
(message "Evaluating...")
(setq values (cons (eval expression) values))
(setq values (cons (eval expression lexical-binding) values))
(pp-display-expression (car values) "*Pp Eval Output*"))
;;;###autoload
@ -165,7 +165,7 @@ With argument, pretty-print output into current buffer.
Ignores leading comment characters."
(interactive "P")
(if arg
(insert (pp-to-string (eval (pp-last-sexp))))
(insert (pp-to-string (eval (pp-last-sexp) lexical-binding)))
(pp-eval-expression (pp-last-sexp))))
;;;###autoload

View file

@ -107,7 +107,7 @@
;; ----------------
;; Bug reports and ideas contributed by many users have helped
;; improve Viper and the various versions of VIP.
;; See the on-line manual for a complete list of contributors.
;; See the manual for a complete list of contributors.
;;
;;
;;; Notes:

View file

@ -52,7 +52,7 @@
(frames . "Emacs frames and window systems")
(games . "games, jokes and amusements")
(hardware . "interfacing with system hardware")
(help . "on-line help systems")
(help . "Emacs help systems")
(hypermedia . "links between text or other media types")
(i18n . "internationalization and character-set support")
(internal . "code for Emacs internals, build process, defaults")

View file

@ -23,7 +23,7 @@
;;; Commentary:
;; This code implements GNU Emacs's on-line help system, the one invoked by
;; This code implements GNU Emacs's built-in help system, the one invoked by
;; `M-x help-for-help'.
;;; Code:
@ -198,13 +198,13 @@ d PATTERN Show a list of functions, variables, and other items whose
documentation matches the PATTERN (a list of words or a regexp).
e Go to the *Messages* buffer which logs echo-area messages.
f FUNCTION Display documentation for the given function.
F COMMAND Show the on-line manual's section that describes the command.
F COMMAND Show the Emacs manual's section that describes the command.
g Display information about the GNU project.
h Display the HELLO file which illustrates various scripts.
i Start the Info documentation reader: read on-line manuals.
i Start the Info documentation reader: read included manuals.
I METHOD Describe a specific input method, or RET for current.
k KEYS Display the full documentation for the key sequence.
K KEYS Show the on-line manual's section for the command bound to KEYS.
K KEYS Show the Emacs manual's section for the command bound to KEYS.
l Show last 300 input keystrokes (lossage).
L LANG-ENV Describes a specific language environment, or RET for current.
m Display documentation of current minor modes and current major mode,
@ -214,7 +214,7 @@ p TOPIC Find packages matching a given topic keyword.
P PACKAGE Describe the given Emacs Lisp package.
r Display the Emacs manual in Info mode.
s Display contents of current syntax table, plus explanations.
S SYMBOL Show the section for the given symbol in the on-line manual
S SYMBOL Show the section for the given symbol in the Info manual
for the programming language used in this buffer.
t Start the Emacs learn-by-doing tutorial.
v VARIABLE Display the given variable's documentation and value.

View file

@ -1079,7 +1079,7 @@ regardless of where you click."
(unless primary
(error "No selection is available"))
(push-mark (point))
(insert primary)))
(insert-for-yank primary)))
(defun mouse-kill-ring-save (click)
"Copy the region between point and the mouse click in the kill ring.
@ -1361,7 +1361,7 @@ regardless of where you click."
(or mouse-yank-at-point (mouse-set-point click))
(let ((secondary (x-get-selection 'SECONDARY)))
(if secondary
(insert secondary)
(insert-for-yank secondary)
(error "No secondary selection"))))
(defun mouse-kill-secondary ()

View file

@ -71,8 +71,8 @@
;; For example:
;; (add-to-list 'auto-mode-alist '("\\.f\\'" . f90-mode))
;; Once you have entered f90-mode, you may get more info by using
;; the command describe-mode (C-h m). For online help use
;; Once you have entered f90-mode, you can get more info by using
;; the command describe-mode (C-h m). For help use
;; C-h f <Name of function you want described>, or
;; C-h v <Name of variable you want described>.

View file

@ -49,14 +49,14 @@
;;
;; New versions of IDLWAVE, documentation, and more information available
;; from:
;; http://idlwave.org
;; http://github.com/jdtsmith/idlwave
;;
;; INSTALLATION
;; ============
;; Put this file on the emacs load path and load it with the following
;; line in your init file:
;;
;; (add-hook 'idlwave-load-hook
;; (add-hook 'idlwave-load-hook
;; (lambda () (require 'idlw-complete-structtag)))
;;
;; DESCRIPTION

View file

@ -32,7 +32,7 @@
;; along with new versions of IDLWAVE, documentation, and more
;; information, at:
;;
;; http://idlwave.org
;; http://github.com/jdtsmith/idlwave
;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

View file

@ -40,7 +40,7 @@
;;
;; New versions of IDLWAVE, documentation, and more information
;; available from:
;; http://idlwave.org
;; http://github.com/jdtsmith/idlwave
;;
;; INSTALLATION:
;; =============
@ -58,7 +58,7 @@
;; The newest version of this file can be found on the maintainers
;; web site.
;;
;; http://idlwave.org
;; http://github.com/jdtsmith/idlwave
;;
;; DOCUMENTATION
;; =============
@ -923,7 +923,7 @@ IDL has currently stepped.")
Info documentation for this package is available. Use \\[idlwave-info]
to display (complain to your sysadmin if that does not work).
For PostScript and HTML versions of the documentation, check IDLWAVE's
homepage at URL `http://idlwave.org'.
homepage at URL `http://github.com/jdtsmith/idlwave'.
IDLWAVE has customize support - see the group `idlwave'.
8. Keybindings

View file

@ -29,7 +29,7 @@
;; New versions of IDLWAVE, documentation, and more information
;; available from:
;; http://idlwave.org
;; http://github.com/jdtsmith/idlwave
;;; Code:

View file

@ -44,7 +44,7 @@
;;
;; New versions of IDLWAVE, documentation, and more information
;; available from:
;; http://idlwave.org
;; http://github.com/jdtsmith/idlwave
;;
;; INSTALLATION
;; ============
@ -64,7 +64,7 @@
;; The newest version of this file is available from the maintainer's
;; Webpage:
;;
;; http://idlwave.org
;; http://github.com/jdtsmith/idlwave
;;
;; DOCUMENTATION
;; =============
@ -179,7 +179,7 @@
"Major mode for editing IDL .pro files."
:tag "IDLWAVE"
:link '(url-link :tag "Home Page"
"http://idlwave.org")
"http://github.com/jdtsmith/idlwave")
:link '(emacs-commentary-link :tag "Commentary in idlw-shell.el"
"idlw-shell.el")
:link '(emacs-commentary-link :tag "Commentary in idlwave.el" "idlwave.el")
@ -1878,7 +1878,8 @@ The main features of this mode are
Info documentation for this package is available. Use
\\[idlwave-info] to display (complain to your sysadmin if that does
not work). For Postscript, PDF, and HTML versions of the
documentation, check IDLWAVE's homepage at URL `http://idlwave.org'.
documentation, check IDLWAVE's homepage at URL
`http://github.com/jdtsmith/idlwave'.
IDLWAVE has customize support - see the group `idlwave'.
10.Keybindings

View file

@ -26,8 +26,8 @@
;; =====
;; Emacs should enter Pascal mode when you find a Pascal source file.
;; When you have entered Pascal mode, you may get more info by pressing
;; C-h m. You may also get online help describing various functions by:
;; When you have entered Pascal mode, you can get more info by pressing
;; C-h m. You can also get help describing various functions by:
;; C-h f <Name of function you want described>
;; If you want to customize Pascal mode to fit you better, you may add

View file

@ -1096,16 +1096,28 @@ the line will be re-indented automatically if needed."
(when (and electric-indent-mode
(eq (char-before) last-command-event))
(cond
((and (not (bolp))
(memq (char-after) '(?\) ?\] ?\})))
;; Electric indent inside parens
((and
(not (bolp))
(let ((paren-start (python-syntax-context 'paren)))
;; Check that point is inside parens.
(when paren-start
(not
;; Filter the case where input is happening in the same
;; line where the open paren is.
(= (line-number-at-pos)
(line-number-at-pos paren-start)))))
;; When content has been added before the closing paren or a
;; comma has been inserted, it's ok to do the trick.
(or
(memq (char-after) '(?\) ?\] ?\}))
(eq (char-before) ?,)))
(save-excursion
(goto-char (line-beginning-position))
;; If after going to the beginning of line the point
;; is still inside a paren it's ok to do the trick
(when (python-syntax-context 'paren)
(let ((indentation (python-indent-calculate-indentation)))
(when (< (current-indentation) indentation)
(indent-line-to indentation))))))
(let ((indentation (python-indent-calculate-indentation)))
(when (< (current-indentation) indentation)
(indent-line-to indentation)))))
;; Electric colon
((and (eq ?: last-command-event)
(memq ?: electric-indent-chars)
(not current-prefix-arg)

View file

@ -325,8 +325,6 @@
;; Emacs
(property-change from)
(overlay-change from)
(save-buffer-invisibility-spec buffer-invisibility-spec)
(buffer-invisibility-spec nil)
before-string after-string)
(while (< from to)
(and (< property-change to) ; Don't search for property change

View file

@ -140,7 +140,7 @@ Useful commands (type ? to hide them and free up screen):
uh/um:\tunmark all sessions marked for hiding/operation
n,SPC:\tnext session
p,DEL:\tprevious session
E:\tbrowse Ediff on-line manual
E:\tbrowse Ediff manual
T:\ttoggle truncation of long file names
q:\tquit this session group
")
@ -1464,7 +1464,7 @@ Useful commands:
R in any Ediff session: display session registry
n,SPC: next session
p,DEL: previous session
E: browse Ediff on-line manual
E: browse Ediff manual
q: bury registry

View file

@ -735,7 +735,7 @@ The second problem might be due to an incompatibility among these settings:
ediff-patch-program = %S ediff-patch-options = %S
ediff-backup-extension = %S ediff-backup-specs = %S
See Ediff on-line manual for more details on these variables.
See Ediff manual for more details on these variables.
In particular, check the documentation for `ediff-backup-specs'.
In any of the above cases, Ediff doesn't compare files automatically.

View file

@ -64,7 +64,7 @@
;; compressed files. Details are given below.
;; Finally, Ediff supports directory-level comparison, merging and patching.
;; See the on-line manual for details.
;; See the Ediff manual for details.
;; This package builds upon the ideas borrowed from emerge.el and several
;; Ediff's functions are adaptations from emerge.el. Much of the functionality

View file

@ -132,6 +132,8 @@ This applies when its SETUP argument is non-nil."
log-edit-insert-changelog
log-edit-show-files)
"Hook run at the end of `log-edit'."
;; Added log-edit-insert-message-template, moved log-edit-show-files.
:version "24.4"
:group 'log-edit
:type '(hook :options (log-edit-insert-message-template
log-edit-insert-cvs-rcstemplate
@ -355,9 +357,15 @@ The first subexpression is the actual text of the field.")
(set-match-data (list start (point)))
(point))))
(defun log-edit-goto-eoh () ;FIXME: Almost rfc822-goto-eoh!
(goto-char (point-min))
(when (re-search-forward
"^\\([^[:alpha:]]\\|[[:alnum:]-]+[^[:alnum:]-:]\\)" nil 'move)
(goto-char (match-beginning 0))))
(defun log-edit--match-first-line (limit)
(let ((start (point)))
(rfc822-goto-eoh)
(log-edit-goto-eoh)
(skip-chars-forward "\n")
(and (< start (line-end-position))
(< (point) limit)

View file

@ -674,7 +674,7 @@ It is based on `log-edit-mode', and has Git-specific extensions.")
(cl-flet ((boolean-arg-fn
(argument)
(lambda (value) (when (equal value "yes") (list argument)))))
;; When operating on the whole tree, better pass nil than ".", since "."
;; When operating on the whole tree, better pass "-a" than ".", since "."
;; fails when we're committing a merge.
(apply 'vc-git-command nil 0 (if only files)
(nconc (list "commit" "-m")
@ -684,7 +684,7 @@ It is based on `log-edit-mode', and has Git-specific extensions.")
("Amend" . ,(boolean-arg-fn "--amend"))
("Sign-Off" . ,(boolean-arg-fn "--signoff")))
comment)
(if only (list "--only" "--")))))))
(if only (list "--only" "--") '("-a")))))))
(defun vc-git-find-revision (file rev buffer)
(let* (process-file-side-effects

View file

@ -1,3 +1,28 @@
2014-07-03 Eli Zaretskii <eliz@gnu.org>
* dispnew.c (prepare_desired_row): Accept 2 additional arguments:
the window whose glyph row is being prepared and a flag whether it
is for mode/header line. Make sure the glyph row's marginal areas
are in sync with what the window wants.
(Bug#17892)
* xdisp.c (display_line, display_mode_line): Call
prepare_desired_row with additional arguments, as appropriate.
* dispextern.h (prepare_desired_row): Adjust prototype.
2014-07-03 Dmitry Antipov <dmantipov@yandex.ru>
* xfaces.c (init_frame_faces): Always realize basic faces (Bug#17889).
* menu.c (Fx_popup_dialog): Set Vmenu_updating_frame to avoid crash
caused by xw_popup_dialog in daemon mode (Bug#17891).
2014-07-03 Eli Zaretskii <eliz@gnu.org>
* frame.c (do_switch_frame): When switching to another TTY frame,
make sure FrameCols and FrameRows are in sync with the new frame's
data. (Bug#17875)
2014-07-02 Dmitry Antipov <dmantipov@yandex.ru>
Shrink Lisp_Sub_Char_Table by preferring C integers to Lisp_Objects.

View file

@ -3460,7 +3460,7 @@ void increment_matrix_positions (struct glyph_matrix *,
void blank_row (struct window *, struct glyph_row *, int);
void clear_glyph_matrix_rows (struct glyph_matrix *, int, int);
void clear_glyph_row (struct glyph_row *);
void prepare_desired_row (struct glyph_row *);
void prepare_desired_row (struct window *, struct glyph_row *, bool);
void update_single_window (struct window *, bool);
void do_pending_window_change (bool);
void change_frame_size (struct frame *, int, int, bool, bool, bool, bool);

View file

@ -449,7 +449,8 @@ adjust_glyph_matrix (struct window *w, struct glyph_matrix *matrix, int x, int y
+ x);
if (w == NULL
|| row == matrix->rows + dim.height - 1
|| (row == matrix->rows + dim.height - 1
&& WINDOW_WANTS_MODELINE_P (w))
|| (row == matrix->rows && matrix->header_line_p))
{
row->glyphs[TEXT_AREA]
@ -492,8 +493,9 @@ adjust_glyph_matrix (struct window *w, struct glyph_matrix *matrix, int x, int y
= xnrealloc (row->glyphs[LEFT_MARGIN_AREA],
dim.width, sizeof (struct glyph));
/* The mode line never has marginal areas. */
if (row == matrix->rows + dim.height - 1
/* The mode line, if displayed, never has marginal areas. */
if ((row == matrix->rows + dim.height - 1
&& !(w && WINDOW_WANTS_MODELINE_P (w)))
|| (row == matrix->rows && matrix->header_line_p))
{
row->glyphs[TEXT_AREA]
@ -1049,13 +1051,16 @@ find_glyph_row_slice (struct glyph_matrix *window_matrix,
#endif /* 0 */
/* Prepare ROW for display. Desired rows are cleared lazily,
i.e. they are only marked as to be cleared by setting their
/* Prepare ROW for display in windows W. Desired rows are cleared
lazily, i.e. they are only marked as to be cleared by setting their
enabled_p flag to zero. When a row is to be displayed, a prior
call to this function really clears it. */
call to this function really clears it. In addition, this function
makes sure the marginal areas of ROW are in sync with the window's
display margins. MODE_LINE_P non-zero means we are preparing a
glyph row for header line or mode line. */
void
prepare_desired_row (struct glyph_row *row)
prepare_desired_row (struct window *w, struct glyph_row *row, bool mode_line_p)
{
if (!row->enabled_p)
{
@ -1065,6 +1070,39 @@ prepare_desired_row (struct glyph_row *row)
row->enabled_p = true;
row->reversed_p = rp;
}
if (mode_line_p)
{
/* Mode and header lines, if displayed, never have marginal
areas. If we are called with MODE_LINE_P non-zero, we are
displaying the mode/header line in this window, and so the
marginal areas of this glyph row should be eliminated. This
is needed when the mode/header line is switched on in a
window that has display margins. */
if (w->left_margin_cols > 0)
row->glyphs[TEXT_AREA] = row->glyphs[LEFT_MARGIN_AREA];
if (w->right_margin_cols > 0)
row->glyphs[RIGHT_MARGIN_AREA] = row->glyphs[LAST_AREA];
}
else if (row == MATRIX_MODE_LINE_ROW (w->desired_matrix)
|| row == MATRIX_HEADER_LINE_ROW (w->desired_matrix))
{
/* The real number of glyphs reserved for the margins is
recorded in the glyph matrix, and can be different from
window's left_margin_cols and right_margin_cols; see
margin_glyphs_to_reserve for when that happens. */
int left = w->desired_matrix->left_margin_glyphs;
int right = w->desired_matrix->right_margin_glyphs;
/* Make sure the marginal areas of this row are in sync with
what the window wants, when the 1st/last row of the matrix
actually displays text and not header/mode line. */
if (w->left_margin_cols > 0
&& (left != row->glyphs[TEXT_AREA] - row->glyphs[LEFT_MARGIN_AREA]))
row->glyphs[TEXT_AREA] = row->glyphs[LEFT_MARGIN_AREA] + left;
if (w->right_margin_cols > 0
&& (right != row->glyphs[LAST_AREA] - row->glyphs[RIGHT_MARGIN_AREA]))
row->glyphs[RIGHT_MARGIN_AREA] = row->glyphs[LAST_AREA] - right;
}
}

View file

@ -46,6 +46,7 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
#ifdef HAVE_WINDOW_SYSTEM
#include "fontset.h"
#endif
#include "cm.h"
#ifdef MSDOS
#include "msdos.h"
#include "dosfns.h"
@ -854,7 +855,9 @@ do_switch_frame (Lisp_Object frame, int track, int for_deletion, Lisp_Object nor
if (FRAME_TERMCAP_P (XFRAME (frame)) || FRAME_MSDOS_P (XFRAME (frame)))
{
Lisp_Object top_frame = FRAME_TTY (XFRAME (frame))->top_frame;
struct frame *f = XFRAME (frame);
struct tty_display_info *tty = FRAME_TTY (f);
Lisp_Object top_frame = tty->top_frame;
/* Don't mark the frame garbaged and/or obscured if we are
switching to the frame that is already the top frame of that
@ -864,9 +867,16 @@ do_switch_frame (Lisp_Object frame, int track, int for_deletion, Lisp_Object nor
if (FRAMEP (top_frame))
/* Mark previously displayed frame as now obscured. */
SET_FRAME_VISIBLE (XFRAME (top_frame), 2);
SET_FRAME_VISIBLE (XFRAME (frame), 1);
SET_FRAME_VISIBLE (f, 1);
/* If the new TTY frame changed dimensions, we need to
resync term.c's idea of the frame size with the new
frame's data. */
if (FRAME_COLS (f) != FrameCols (tty))
FrameCols (tty) = FRAME_COLS (f);
if (FRAME_LINES (f) != FrameRows (tty))
FrameRows (tty) = FRAME_LINES (f);
}
FRAME_TTY (XFRAME (frame))->top_frame = frame;
tty->top_frame = frame;
}
selected_frame = frame;

View file

@ -1529,6 +1529,11 @@ for instance using the window manager, then this produces a quit and
but I don't want to make one now. */
CHECK_WINDOW (window);
/* Note that xw_popup_dialog can call menu code, so
Vmenu_updating_frame should be set (Bug#17891). */
eassert (f && FRAME_LIVE_P (f));
XSETFRAME (Vmenu_updating_frame, f);
/* Force a redisplay before showing the dialog. If a frame is created
just before showing the dialog, its contents may not have been fully
drawn, as this depends on timing of events from the X server. Redisplay

View file

@ -271,8 +271,10 @@ struct window
int left_fringe_width;
int right_fringe_width;
/* Width of left and right marginal areas in columns.
A value of 0 means no margin. */
/* Requested width of left and right marginal areas in columns. A
value of 0 means no margin. The actual values are recorded in
the window's glyph matrix, in the left_margin_glyphs and
right_margin_glyphs members. */
int left_margin_cols;
int right_margin_cols;

View file

@ -19878,7 +19878,7 @@ display_line (struct it *it)
}
/* Clear the result glyph row and enable it. */
prepare_desired_row (row);
prepare_desired_row (it->w, row, false);
row->y = it->current_y;
row->start = it->start;
@ -21517,7 +21517,7 @@ display_mode_line (struct window *w, enum face_id face_id, Lisp_Object format)
/* Don't extend on a previously drawn mode-line.
This may happen if called from pos_visible_p. */
it.glyph_row->enabled_p = false;
prepare_desired_row (it.glyph_row);
prepare_desired_row (w, it.glyph_row, true);
it.glyph_row->mode_line_p = 1;

View file

@ -676,19 +676,9 @@ init_frame_faces (struct frame *f)
}
#endif /* HAVE_WINDOW_SYSTEM */
/* Realize basic faces. Must have enough information in frame
parameters to realize basic faces at this point. */
#ifdef HAVE_X_WINDOWS
if (!FRAME_X_P (f) || FRAME_X_WINDOW (f))
#endif
#ifdef HAVE_NTGUI
if (!FRAME_WINDOW_P (f) || FRAME_W32_WINDOW (f))
#endif
#ifdef HAVE_NS
if (!FRAME_NS_P (f) || FRAME_NS_WINDOW (f))
#endif
if (!realize_basic_faces (f))
emacs_abort ();
/* Realize faces early (Bug#17889). */
if (!realize_basic_faces (f))
emacs_abort ();
}

View file

@ -1,3 +1,9 @@
2014-07-03 Fabián Ezequiel Gallina <fgallina@gnu.org>
* automated/python-tests.el (python-tests-self-insert): New function.
(python-triple-quote-pairing): Use it.
(python-util-forward-comment-1): New test. (Bug#17658)
2014-06-30 Fabián Ezequiel Gallina <fgallina@gnu.org>
* automated/subr-x-tests.el: New file.

View file

@ -86,6 +86,24 @@ STRING, it is skipped so the next STRING occurrence is selected."
found-point
(and restore-point (goto-char starting-point)))))
(defun python-tests-self-insert (char-or-str)
"Call `self-insert-command' for chars in CHAR-OR-STR."
(let ((chars
(cond
((characterp char-or-str)
(list char-or-str))
((stringp char-or-str)
(string-to-list char-or-str))
((not
(cl-remove-if #'characterp char-or-str))
char-or-str)
(t (error "CHAR-OR-STR must be a char, string, or list of char")))))
(mapc
(lambda (char)
(let ((last-command-event char))
(call-interactively 'self-insert-command)))
chars)))
;;; Tests for your tests, so you can test while you test.
@ -2715,9 +2733,6 @@ def foo(a, b, c):
(should (string= (python-util-strip-string "\n \t \n\r ") ""))
(should (string= (python-util-strip-string "") "")))
;;; Electricity
(ert-deftest python-util-forward-comment-1 ()
(python-tests-with-temp-buffer
(concat
@ -2730,36 +2745,85 @@ def foo(a, b, c):
(python-util-forward-comment -1)
(should (= (point) (point-min)))))
;;; Electricity
(ert-deftest python-parens-electric-indent-1 ()
(require 'electric)
(let ((eim electric-indent-mode))
(unwind-protect
(progn
(python-tests-with-temp-buffer
"
from django.conf.urls import patterns, include, url
from django.contrib import admin
from myapp import views
urlpatterns = patterns('',
url(r'^$', views.index
)
"
(electric-indent-mode 1)
(python-tests-look-at "views.index")
(end-of-line)
;; Inserting commas within the same line should leave
;; indentation unchanged.
(python-tests-self-insert ",")
(should (= (current-indentation) 4))
;; As well as any other input happening within the same
;; set of parens.
(python-tests-self-insert " name='index')")
(should (= (current-indentation) 4))
;; But a comma outside it, should trigger indentation.
(python-tests-self-insert ",")
(should (= (current-indentation) 23))
;; Newline indents to the first argument column
(python-tests-self-insert "\n")
(should (= (current-indentation) 23))
;; All this input must not change indentation
(indent-line-to 4)
(python-tests-self-insert "url(r'^/login$', views.login)")
(should (= (current-indentation) 4))
;; But this comma does
(python-tests-self-insert ",")
(should (= (current-indentation) 23))))
(or eim (electric-indent-mode -1)))))
(ert-deftest python-triple-quote-pairing ()
(require 'electric)
(let ((epm electric-pair-mode))
(unwind-protect
(progn
(python-tests-with-temp-buffer
"\"\"\n"
(or epm (electric-pair-mode 1))
(goto-char (1- (point-max)))
(let ((last-command-event ?\"))
(call-interactively 'self-insert-command))
(should (string= (buffer-string)
"\"\"\"\"\"\"\n"))
(should (= (point) 4)))
"\"\"\n"
(or epm (electric-pair-mode 1))
(goto-char (1- (point-max)))
(python-tests-self-insert ?\")
(should (string= (buffer-string)
"\"\"\"\"\"\"\n"))
(should (= (point) 4)))
(python-tests-with-temp-buffer
"\n"
(let ((last-command-event ?\"))
(dotimes (i 3)
(call-interactively 'self-insert-command)))
(should (string= (buffer-string)
"\"\"\"\"\"\"\n"))
(should (= (point) 4)))
"\n"
(python-tests-self-insert (list ?\" ?\" ?\"))
(should (string= (buffer-string)
"\"\"\"\"\"\"\n"))
(should (= (point) 4)))
(python-tests-with-temp-buffer
"\"\n\"\"\n"
(goto-char (1- (point-max)))
(let ((last-command-event ?\"))
(call-interactively 'self-insert-command))
(should (= (point) (1- (point-max))))
(should (string= (buffer-string)
"\"\n\"\"\"\n"))))
"\"\n\"\"\n"
(goto-char (1- (point-max)))
(python-tests-self-insert ?\")
(should (= (point) (1- (point-max))))
(should (string= (buffer-string)
"\"\n\"\"\"\n"))))
(or epm (electric-pair-mode -1)))))