aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGlenn Morris2017-12-22 13:23:16 -0500
committerGlenn Morris2017-12-22 13:23:16 -0500
commit3404a87f29b28b449a2e6188f075df2f761caac5 (patch)
tree56816f744b5c74273803811d62c9b61ba2334aa3
parent5ee4f2fa8792ebaa84184f1a82219fbcd93e8103 (diff)
parent34fcfc5c049bb99d68945bb24fb9d6a0789a33dd (diff)
downloademacs-3404a87f29b28b449a2e6188f075df2f761caac5.tar.gz
emacs-3404a87f29b28b449a2e6188f075df2f761caac5.zip
Merge from origin/emacs-26
34fcfc5 (origin/emacs-26, emacs-26) * lisp/emacs-lisp/inline.el (defi... f7a62c2 Fix doc string of 'footnote-style-alist' c3b6742 Improve documentation of selecting windows 861d110 Improve documentation of records 22b3075 * etc/NEWS: Mention the removal of pinentry.el. (Bug#27445) 689526b Fix interactive spec of 'semantic-ia-show-variants' 90ca37f Fix documentation of 'mouse-drag-and-drop-region' and friends d60faf3 Improve detection of speller version in ispell.el a0e3b06 Document 'mouse-drag-and-drop-region' options and mention the... 164e84c Fix uses of 'nil' and 'non-nil' in manuals and a few more min... 798f07f Document that mode commands should be idempotent. ad2a47c ; * src/xdisp.c (extend_face_to_end_of_line): Fix last change. 88ddf53 Fontify a CPP construct correctly when a comment follows with... de7de9c Prevent infloop in redisplay on TTY frames 293720e Fix loss of documentation face in certain CC Mode doc comment... # Conflicts: # etc/NEWS # lisp/mail/footnote.el
-rw-r--r--doc/emacs/building.texi9
-rw-r--r--doc/emacs/frames.texi43
-rw-r--r--doc/emacs/search.texi11
-rw-r--r--doc/lispref/Makefile.in1
-rw-r--r--doc/lispref/compile.texi2
-rw-r--r--doc/lispref/files.texi3
-rw-r--r--doc/lispref/functions.texi4
-rw-r--r--doc/lispref/keymaps.texi5
-rw-r--r--doc/lispref/lists.texi7
-rw-r--r--doc/lispref/modes.texi9
-rw-r--r--doc/lispref/records.texi9
-rw-r--r--doc/lispref/windows.texi23
-rw-r--r--etc/NEWS.2635
-rw-r--r--lisp/cedet/semantic/ia.el2
-rw-r--r--lisp/emacs-lisp/inline.el4
-rw-r--r--lisp/mail/footnote.el4
-rw-r--r--lisp/progmodes/cc-defs.el53
-rw-r--r--lisp/progmodes/cc-engine.el27
-rw-r--r--lisp/progmodes/cc-fonts.el13
-rw-r--r--lisp/progmodes/cc-langs.el4
-rw-r--r--lisp/progmodes/cc-mode.el26
-rw-r--r--lisp/textmodes/ispell.el30
-rw-r--r--src/xdisp.c8
23 files changed, 167 insertions, 165 deletions
diff --git a/doc/emacs/building.texi b/doc/emacs/building.texi
index e108a4e7c10..f342aef705e 100644
--- a/doc/emacs/building.texi
+++ b/doc/emacs/building.texi
@@ -394,10 +394,11 @@ match will be highlighted, instead of the entire source line.
394 The @command{grep} commands will offer to save buffers before 394 The @command{grep} commands will offer to save buffers before
395running. This is controlled by the @code{grep-save-buffers} variable. 395running. This is controlled by the @code{grep-save-buffers} variable.
396The possible values are either @code{nil} (don't save), @code{ask} 396The possible values are either @code{nil} (don't save), @code{ask}
397(ask before saving), a function which will be used as a predicate (and 397(ask before saving), or a function which will be used as a predicate
398is called with the file name as the parameter and should return 398(and is called with the file name as the parameter and should return
399non-nil if the buffer is to be saved), and any other non-@code{nil} 399non-@code{nil} if the buffer is to be saved). Any other
400value means that all buffers should be saved without asking. 400non-@code{nil} value means that all buffers should be saved without
401asking.
401 402
402@findex grep-find 403@findex grep-find
403@findex find-grep 404@findex find-grep
diff --git a/doc/emacs/frames.texi b/doc/emacs/frames.texi
index c94d690cf7f..0c994078327 100644
--- a/doc/emacs/frames.texi
+++ b/doc/emacs/frames.texi
@@ -243,9 +243,9 @@ location of point. Double-clicking on the end of a parenthetical
243grouping or end string-delimiter keeps point at the end of the region 243grouping or end string-delimiter keeps point at the end of the region
244by default, so the beginning of the region will not be visible if it 244by default, so the beginning of the region will not be visible if it
245is above the top of the window; setting the user option 245is above the top of the window; setting the user option
246@code{mouse-select-region-move-to-beginning} to non-nil changes this 246@code{mouse-select-region-move-to-beginning} to non-@code{nil} changes
247to move point to the beginning of the region, scrolling the display 247this to move point to the beginning of the region, scrolling the
248backward if necessary. 248display backward if necessary.
249 249
250@item Double-Drag-mouse-1 250@item Double-Drag-mouse-1
251Select the text you drag across, in the form of whole words. 251Select the text you drag across, in the form of whole words.
@@ -1094,18 +1094,6 @@ file on a Dired buffer moves or copies the file (according to the
1094conventions of the application it came from) into the directory 1094conventions of the application it came from) into the directory
1095displayed in that buffer. 1095displayed in that buffer.
1096 1096
1097@vindex mouse-drag-and-drop-region
1098 Emacs can also optionally drag the region of text by mouse into
1099another portion of this or another buffer. To enable that, customize
1100the variable @code{mouse-drag-and-drop-region} to a non-nil value.
1101Normally, the text is moved, i.e. cut and pasted, when the destination
1102is the same buffer as the origin; dropping the region on another
1103buffer copies the text instead. If the value of this variable names a
1104modifier key, such as @samp{shift} or @samp{control} or @samp{alt},
1105then pressing that modifier key when dropping the text will copy it
1106instead of cutting it, even if you drop on the same buffer as the one
1107from which the text came.
1108
1109@vindex dnd-open-file-other-window 1097@vindex dnd-open-file-other-window
1110 Dropping a file normally visits it in the window you drop it on. If 1098 Dropping a file normally visits it in the window you drop it on. If
1111you prefer to visit the file in a new window in such cases, customize 1099you prefer to visit the file in a new window in such cases, customize
@@ -1114,6 +1102,31 @@ the variable @code{dnd-open-file-other-window}.
1114 The XDND and Motif drag and drop protocols, and the old KDE 1.x 1102 The XDND and Motif drag and drop protocols, and the old KDE 1.x
1115protocol, are currently supported. 1103protocol, are currently supported.
1116 1104
1105@vindex mouse-drag-and-drop-region
1106 Emacs can also optionally drag the region with the mouse into
1107another portion of this or another buffer. To enable that, customize
1108the variable @code{mouse-drag-and-drop-region} to a non-@code{nil}
1109value. Normally, the text is moved, i.e. cut and pasted, when the
1110destination is the same buffer as the origin; dropping the region on
1111another buffer copies the text instead. If the value of this variable
1112names a modifier key, such as @samp{shift}, @samp{control} or
1113@samp{alt}, then pressing that modifier key when dropping the text
1114will copy it instead of cutting it, even if you drop on the same
1115buffer as the one from which the text came.
1116
1117@vindex mouse-drag-and-drop-region-cut-when-buffers-differ
1118@vindex mouse-drag-and-drop-region-show-tooltip
1119@vindex mouse-drag-and-drop-region-show-cursor
1120In order to cut text even when source and destination buffers differ,
1121set the option
1122@code{mouse-drag-and-drop-region-cut-when-buffers-differ} to a
1123non-@code{nil} value. By default, on a graphic display the selected
1124text is shown in a tooltip and point moves together with the mouse
1125cursor during dragging. To suppress such behavior, set the options
1126@code{mouse-drag-and-drop-region-show-tooltip} and/or
1127@code{mouse-drag-and-drop-region-show-cursor} to @code{nil}.
1128
1129
1117@node Menu Bars 1130@node Menu Bars
1118@section Menu Bars 1131@section Menu Bars
1119@cindex Menu Bar mode 1132@cindex Menu Bar mode
diff --git a/doc/emacs/search.texi b/doc/emacs/search.texi
index 7b334733d67..c4853686ae0 100644
--- a/doc/emacs/search.texi
+++ b/doc/emacs/search.texi
@@ -1746,12 +1746,13 @@ prompt, you can reuse search strings from previous incremental
1746searches. The text that matched is highlighted using the @code{match} 1746searches. The text that matched is highlighted using the @code{match}
1747face. A numeric argument @var{n} specifies that @var{n} lines of 1747face. A numeric argument @var{n} specifies that @var{n} lines of
1748context are to be displayed before and after each matching line. 1748context are to be displayed before and after each matching line.
1749
1749The default number of context lines is specified by the variable 1750The default number of context lines is specified by the variable
1750@code{list-matching-lines-default-context-lines}. 1751@code{list-matching-lines-default-context-lines}. When
1751When @code{list-matching-lines-jump-to-current-line} is non-nil, 1752@code{list-matching-lines-jump-to-current-line} is non-@code{nil} the
1752the current line is shown highlighted with face 1753current line is shown highlighted with face
1753@code{list-matching-lines-current-line-face} and the point is set 1754@code{list-matching-lines-current-line-face} and the point is set at
1754at the first match after such line. 1755the first match after such line.
1755 1756
1756You can also run @kbd{M-s o} when an incremental search is active; 1757You can also run @kbd{M-s o} when an incremental search is active;
1757this uses the current search string. 1758this uses the current search string.
diff --git a/doc/lispref/Makefile.in b/doc/lispref/Makefile.in
index 9fa5901a1ac..50d6d161ef6 100644
--- a/doc/lispref/Makefile.in
+++ b/doc/lispref/Makefile.in
@@ -118,6 +118,7 @@ srcs = \
118 $(srcdir)/package.texi \ 118 $(srcdir)/package.texi \
119 $(srcdir)/positions.texi \ 119 $(srcdir)/positions.texi \
120 $(srcdir)/processes.texi \ 120 $(srcdir)/processes.texi \
121 $(srcdir)/records.texi \
121 $(srcdir)/searching.texi \ 122 $(srcdir)/searching.texi \
122 $(srcdir)/sequences.texi \ 123 $(srcdir)/sequences.texi \
123 $(srcdir)/streams.texi \ 124 $(srcdir)/streams.texi \
diff --git a/doc/lispref/compile.texi b/doc/lispref/compile.texi
index 57ff06085d9..9123e93a5bf 100644
--- a/doc/lispref/compile.texi
+++ b/doc/lispref/compile.texi
@@ -94,7 +94,7 @@ the @code{byte-compile} function. You can compile a whole file with
94recorded in a buffer called @file{*Compile-Log*}, which uses 94recorded in a buffer called @file{*Compile-Log*}, which uses
95Compilation mode. @xref{Compilation Mode,,,emacs, The GNU Emacs 95Compilation mode. @xref{Compilation Mode,,,emacs, The GNU Emacs
96Manual}. However, if the variable @code{byte-compile-debug} is 96Manual}. However, if the variable @code{byte-compile-debug} is
97non-nil, error message will be signaled as Lisp errors instead 97non-@code{nil}, error messages will be signaled as Lisp errors instead
98(@pxref{Errors}). 98(@pxref{Errors}).
99 99
100@cindex macro compilation 100@cindex macro compilation
diff --git a/doc/lispref/files.texi b/doc/lispref/files.texi
index b257c328f4d..f7eafcadc44 100644
--- a/doc/lispref/files.texi
+++ b/doc/lispref/files.texi
@@ -2282,7 +2282,8 @@ because this is not portable. Always use
2282@code{file-name-as-directory}. 2282@code{file-name-as-directory}.
2283 2283
2284 To avoid the issues mentioned above, or if the @var{dirname} value 2284 To avoid the issues mentioned above, or if the @var{dirname} value
2285might be nil (for example, from an element of @code{load-path}), use: 2285might be @code{nil} (for example, from an element of @code{load-path}),
2286use:
2286 2287
2287@example 2288@example
2288(expand-file-name @var{relfile} @var{dirname}) 2289(expand-file-name @var{relfile} @var{dirname})
diff --git a/doc/lispref/functions.texi b/doc/lispref/functions.texi
index d84f09d8462..3f993901d4d 100644
--- a/doc/lispref/functions.texi
+++ b/doc/lispref/functions.texi
@@ -1753,8 +1753,8 @@ code) obey the advice and other calls (from C code) do not.
1753@defmac define-advice symbol (where lambda-list &optional name depth) &rest body 1753@defmac define-advice symbol (where lambda-list &optional name depth) &rest body
1754This macro defines a piece of advice and adds it to the function named 1754This macro defines a piece of advice and adds it to the function named
1755@var{symbol}. The advice is an anonymous function if @var{name} is 1755@var{symbol}. The advice is an anonymous function if @var{name} is
1756nil or a function named @code{symbol@@name}. See @code{advice-add} 1756@code{nil} or a function named @code{symbol@@name}. See
1757for explanation of other arguments. 1757@code{advice-add} for explanation of other arguments.
1758@end defmac 1758@end defmac
1759 1759
1760@defun advice-add symbol where function &optional props 1760@defun advice-add symbol where function &optional props
diff --git a/doc/lispref/keymaps.texi b/doc/lispref/keymaps.texi
index 73f5572e69d..71b054e063c 100644
--- a/doc/lispref/keymaps.texi
+++ b/doc/lispref/keymaps.texi
@@ -988,8 +988,9 @@ function is called with no arguments, prior to running each command,
988while @var{keymap} is active; it should return non-@code{nil} if 988while @var{keymap} is active; it should return non-@code{nil} if
989@var{keymap} should stay active. 989@var{keymap} should stay active.
990 990
991The optional argument @var{on-exit}, if non-nil, specifies a function 991The optional argument @var{on-exit}, if non-@code{nil}, specifies a
992that is called, with no arguments, after @var{keymap} is deactivated. 992function that is called, with no arguments, after @var{keymap} is
993deactivated.
993 994
994This function works by adding and removing @var{keymap} from the 995This function works by adding and removing @var{keymap} from the
995variable @code{overriding-terminal-local-map}, which takes precedence 996variable @code{overriding-terminal-local-map}, which takes precedence
diff --git a/doc/lispref/lists.texi b/doc/lispref/lists.texi
index 0c993806824..230ea4b48eb 100644
--- a/doc/lispref/lists.texi
+++ b/doc/lispref/lists.texi
@@ -1514,9 +1514,10 @@ of property lists and association lists.
1514@defun assoc key alist &optional testfn 1514@defun assoc key alist &optional testfn
1515This function returns the first association for @var{key} in 1515This function returns the first association for @var{key} in
1516@var{alist}, comparing @var{key} against the alist elements using 1516@var{alist}, comparing @var{key} against the alist elements using
1517@var{testfn} if non-nil, or @code{equal} if nil (@pxref{Equality 1517@var{testfn} if it is non-@code{nil} and @code{equal} otherwise
1518Predicates}). It returns @code{nil} if no association in @var{alist} 1518(@pxref{Equality Predicates}). It returns @code{nil} if no
1519has a @sc{car} equal to @var{key}. For example: 1519association in @var{alist} has a @sc{car} equal to @var{key}. For
1520example:
1520 1521
1521@smallexample 1522@smallexample
1522(setq trees '((pine . cones) (oak . acorns) (maple . seeds))) 1523(setq trees '((pine . cones) (oak . acorns) (maple . seeds)))
diff --git a/doc/lispref/modes.texi b/doc/lispref/modes.texi
index bd94aeadf15..1a601baee86 100644
--- a/doc/lispref/modes.texi
+++ b/doc/lispref/modes.texi
@@ -314,6 +314,11 @@ Data}, for other possible forms). The name of the mode appears
314in the mode line. 314in the mode line.
315 315
316@item 316@item
317Calling the major mode command twice in direct succession should not
318fail and should do the same thing as calling the command only once.
319In other words, the major mode command should be idempotent.
320
321@item
317@cindex functions in modes 322@cindex functions in modes
318Since all global names are in the same name space, all the global 323Since all global names are in the same name space, all the global
319variables, constants, and functions that are part of the mode should 324variables, constants, and functions that are part of the mode should
@@ -1412,6 +1417,10 @@ a minor mode in a mode hook is a little uglier:
1412@noindent 1417@noindent
1413However, this is not very commonly done. 1418However, this is not very commonly done.
1414 1419
1420 Enabling or disabling a minor mode twice in direct succession should
1421not fail and should do the same thing as enabling or disabling it only
1422once. In other words, the minor mode command should be idempotent.
1423
1415@item 1424@item
1416Add an element to @code{minor-mode-alist} for each minor mode 1425Add an element to @code{minor-mode-alist} for each minor mode
1417(@pxref{Definition of minor-mode-alist}), if you want to indicate the 1426(@pxref{Definition of minor-mode-alist}), if you want to indicate the
diff --git a/doc/lispref/records.texi b/doc/lispref/records.texi
index 7cc36f14068..cae0f31f273 100644
--- a/doc/lispref/records.texi
+++ b/doc/lispref/records.texi
@@ -5,7 +5,7 @@
5@c See the file elisp.texi for copying conditions. 5@c See the file elisp.texi for copying conditions.
6@node Records 6@node Records
7@chapter Records 7@chapter Records
8@cindex record 8@cindex records
9 9
10 The purpose of records is to allow programmers to create objects 10 The purpose of records is to allow programmers to create objects
11with new types that are not built into Emacs. They are used as the 11with new types that are not built into Emacs. They are used as the
@@ -28,6 +28,13 @@ type descriptor, the symbol naming its type will be returned;
28list specifying the contents. The first list element must be the 28list specifying the contents. The first list element must be the
29record type. The following elements are the record slots. 29record type. The following elements are the record slots.
30 30
31 To avoid conflicts with other type names, Lisp programs that define
32new types of records should normally use the naming conventions of the
33package where these record types are introduced for the names of the
34types. Note that the names of the types which could possibly conflict
35might not be known at the time the package defining a record type is
36loaded; they could be loaded at some future point in time.
37
31 A record is considered a constant for evaluation: the result of 38 A record is considered a constant for evaluation: the result of
32evaluating it is the same record. This does not evaluate or even 39evaluating it is the same record. This does not evaluate or even
33examine the slots. @xref{Self-Evaluating Forms}. 40examine the slots. @xref{Self-Evaluating Forms}.
diff --git a/doc/lispref/windows.texi b/doc/lispref/windows.texi
index 08ed092c48c..d73b410f977 100644
--- a/doc/lispref/windows.texi
+++ b/doc/lispref/windows.texi
@@ -125,11 +125,13 @@ including for the case where @var{object} is a deleted window.
125as @dfn{selected within the frame}. For the selected frame, that 125as @dfn{selected within the frame}. For the selected frame, that
126window is called the @dfn{selected window}---the one in which most 126window is called the @dfn{selected window}---the one in which most
127editing takes place, and in which the cursor for selected windows 127editing takes place, and in which the cursor for selected windows
128appears (@pxref{Cursor Parameters}). The selected window's buffer is 128appears (@pxref{Cursor Parameters}). Keyboard input that inserts or
129usually also the current buffer, except when @code{set-buffer} has 129deletes text is also normally directed to this window. The selected
130been used (@pxref{Current Buffer}). As for non-selected frames, the 130window's buffer is usually also the current buffer, except when
131window selected within the frame becomes the selected window if the 131@code{set-buffer} has been used (@pxref{Current Buffer}). As for
132frame is ever selected. @xref{Selecting Windows}. 132non-selected frames, the window selected within the frame becomes the
133selected window if the frame is ever selected. @xref{Selecting
134Windows}.
133 135
134@defun selected-window 136@defun selected-window
135This function returns the selected window (which is always a live 137This function returns the selected window (which is always a live
@@ -1726,7 +1728,7 @@ windows.
1726 1728
1727@defun select-window window &optional norecord 1729@defun select-window window &optional norecord
1728This function makes @var{window} the selected window and the window 1730This function makes @var{window} the selected window and the window
1729selected within its frame (@pxref{Basic Windows}) and selects that 1731selected within its frame (@pxref{Basic Windows}), and selects that
1730frame. It also makes @var{window}'s buffer (@pxref{Buffers and 1732frame. It also makes @var{window}'s buffer (@pxref{Buffers and
1731Windows}) current and sets that buffer's value of @code{point} to the 1733Windows}) current and sets that buffer's value of @code{point} to the
1732value of @code{window-point} (@pxref{Window Point}) in @var{window}. 1734value of @code{window-point} (@pxref{Window Point}) in @var{window}.
@@ -1743,6 +1745,11 @@ next time. If @var{norecord} is non-@code{nil}, such updates are
1743usually not performed. If, however, @var{norecord} equals the special 1745usually not performed. If, however, @var{norecord} equals the special
1744symbol @code{mark-for-redisplay}, the additional actions mentioned above 1746symbol @code{mark-for-redisplay}, the additional actions mentioned above
1745are omitted but @var{window} will be nevertheless updated. 1747are omitted but @var{window} will be nevertheless updated.
1748
1749Note that sometimes selecting a window is not enough to show it, or
1750make its frame the top-most frame on display: you may also need to
1751raise the frame or make sure input focus is directed to that frame.
1752@xref{Input Focus}.
1746@end defun 1753@end defun
1747 1754
1748@cindex select window hook 1755@cindex select window hook
@@ -3059,7 +3066,7 @@ This function handles @var{window} and its buffer after quitting. The
3059optional argument @var{window} must be a live window and defaults to 3066optional argument @var{window} must be a live window and defaults to
3060the selected one. The function's behavior is determined by the four 3067the selected one. The function's behavior is determined by the four
3061elements of the @code{quit-restore} window parameter (@pxref{Window 3068elements of the @code{quit-restore} window parameter (@pxref{Window
3062Parameters}), which is set to nil afterwards. 3069Parameters}), which is set to @code{nil} afterwards.
3063 3070
3064The window is deleted entirely if: 1) the first element of the 3071The window is deleted entirely if: 1) the first element of the
3065@code{quit-restore} parameter is one of 'window or 'frame, 2) the 3072@code{quit-restore} parameter is one of 'window or 'frame, 2) the
@@ -3126,7 +3133,7 @@ possible to set it manually, using the following code for displaying
3126@end group 3133@end group
3127@end example 3134@end example
3128 3135
3129Setting the window history to nil ensures that a future call to 3136Setting the window history to @code{nil} ensures that a future call to
3130@code{quit-window} can delete the window altogether. 3137@code{quit-window} can delete the window altogether.
3131 3138
3132@end defun 3139@end defun
diff --git a/etc/NEWS.26 b/etc/NEWS.26
index d751adde9b5..692c28a7210 100644
--- a/etc/NEWS.26
+++ b/etc/NEWS.26
@@ -256,15 +256,19 @@ whether the output buffer of an asynchronous command is shown
256immediately, or only when there is output. 256immediately, or only when there is output.
257 257
258+++ 258+++
259** The new user option 'mouse-select-region-move-to-beginning' 259** New user option 'mouse-select-region-move-to-beginning'.
260controls the position of point when double-clicking mouse-1 on the end 260This option controls the position of point when double-clicking
261of a parenthetical grouping or string-delimiter: the default value nil 261mouse-1 on the end of a parenthetical grouping or string-delimiter:
262keeps point at the end of the region, setting it to non-nil moves 262the default value nil keeps point at the end of the region, setting it
263point to the beginning of the region. 263to non-nil moves point to the beginning of the region.
264 264
265+++ 265+++
266** The new user option 'mouse-drag-and-drop-region' allows to drag the 266** New user option 'mouse-drag-and-drop-region'.
267entire region of text to another place or another buffer. 267This option allows to drag the entire region of text to another place
268or another buffer. Its behavior is customizable via the new options
269'mouse-drag-and-drop-region-cut-when-buffers-differ',
270'mouse-drag-and-drop-region-show-tooltip', and
271'mouse-drag-and-drop-region-show-cursor'.
268 272
269+++ 273+++
270** The new user option 'confirm-kill-processes' allows the user to 274** The new user option 'confirm-kill-processes' allows the user to
@@ -1485,6 +1489,19 @@ passing '&optional' multiple times:
1485Previously, Emacs would just ignore the extra keyword, or give 1489Previously, Emacs would just ignore the extra keyword, or give
1486incorrect results in certain cases. 1490incorrect results in certain cases.
1487 1491
1492---
1493** The pinentry.el library has been removed.
1494That package (and the corresponding change in GnuPG and pinentry)
1495was intended to provide a way to input passphrase through Emacs with
1496GnuPG 2.0. However, the change to support that was only implemented
1497in GnuPG >= 2.1 and didn't get backported to GnuPG 2.0. And with
1498GnuPG 2.1 and later, pinentry.el is not needed at all. So the
1499library was useless, and we removed it. GnuPG 2.0 is no longer
1500supported by the upstream project.
1501
1502To adapt to the change, you may need to set 'epa-pinentry-mode' to the
1503symbol 'loopback'.
1504
1488 1505
1489* Lisp Changes in Emacs 26.1 1506* Lisp Changes in Emacs 26.1
1490 1507
@@ -1567,6 +1584,10 @@ functions 'make-record', 'record', and 'recordp'. Records are now
1567used internally to represent cl-defstruct and defclass instances, for 1584used internally to represent cl-defstruct and defclass instances, for
1568example. 1585example.
1569 1586
1587If your program defines new record types, you should use
1588package-naming conventions for naming those types. This is so any
1589potential conflicts with other types are avoided.
1590
1570+++ 1591+++
1571** 'save-some-buffers' now uses 'save-some-buffers-default-predicate' 1592** 'save-some-buffers' now uses 'save-some-buffers-default-predicate'
1572to decide which buffers to ask about, if the PRED argument is nil. 1593to decide which buffers to ask about, if the PRED argument is nil.
diff --git a/lisp/cedet/semantic/ia.el b/lisp/cedet/semantic/ia.el
index 625c3ae9757..7ca29bd24b9 100644
--- a/lisp/cedet/semantic/ia.el
+++ b/lisp/cedet/semantic/ia.el
@@ -252,7 +252,7 @@ Completion options are calculated with `semantic-analyze-possible-completions'."
252;;;###autoload 252;;;###autoload
253(defun semantic-ia-show-variants (point) 253(defun semantic-ia-show-variants (point)
254 "Display a list of all variants for the symbol under POINT." 254 "Display a list of all variants for the symbol under POINT."
255 (interactive "P") 255 (interactive "d")
256 (let* ((ctxt (semantic-analyze-current-context point)) 256 (let* ((ctxt (semantic-analyze-current-context point))
257 (comp nil)) 257 (comp nil))
258 258
diff --git a/lisp/emacs-lisp/inline.el b/lisp/emacs-lisp/inline.el
index ff27158f836..b9f63c94474 100644
--- a/lisp/emacs-lisp/inline.el
+++ b/lisp/emacs-lisp/inline.el
@@ -124,6 +124,10 @@ After VARS is handled, BODY is evaluated in the new environment."
124 124
125;;;###autoload 125;;;###autoload
126(defmacro define-inline (name args &rest body) 126(defmacro define-inline (name args &rest body)
127 "Define an inline function NAME with arguments ARGS and body in BODY.
128
129This is like `defmacro', but has several advantages.
130See Info node `(elisp)Defining Functions' for more details."
127 ;; FIXME: How can this work with CL arglists? 131 ;; FIXME: How can this work with CL arglists?
128 (declare (indent defun) (debug defun) (doc-string 3)) 132 (declare (indent defun) (debug defun) (doc-string 3))
129 (let ((doc (if (stringp (car-safe body)) (list (pop body)))) 133 (let ((doc (if (stringp (car-safe body)) (list (pop body))))
diff --git a/lisp/mail/footnote.el b/lisp/mail/footnote.el
index d82f7410207..0c39f62f3ee 100644
--- a/lisp/mail/footnote.el
+++ b/lisp/mail/footnote.el
@@ -366,9 +366,7 @@ Proceeds from `י' to `כ', from `צ' to `ק'. After `ת', rolls over to `א'."
366 "Styles of footnote tags available. 366 "Styles of footnote tags available.
367By default, Arabic numbers, English letters, Roman Numerals, 367By default, Arabic numbers, English letters, Roman Numerals,
368Latin and Unicode superscript characters, and Hebrew numerals 368Latin and Unicode superscript characters, and Hebrew numerals
369are available. 369are available.")
370See footnote-han.el, footnote-greek.el and footnote-hebrew.el for more
371exciting styles.")
372 370
373(defcustom footnote-style 'numeric 371(defcustom footnote-style 'numeric
374 "Default style used for footnoting. 372 "Default style used for footnoting.
diff --git a/lisp/progmodes/cc-defs.el b/lisp/progmodes/cc-defs.el
index 973d97c2560..e837ce1973b 100644
--- a/lisp/progmodes/cc-defs.el
+++ b/lisp/progmodes/cc-defs.el
@@ -1414,59 +1414,6 @@ with value CHAR in the region [FROM to)."
1414 1414
1415;;;;;;;;;;;;;;; 1415;;;;;;;;;;;;;;;
1416 1416
1417(defconst c-cpp-delimiter '(14)) ; generic comment syntax
1418;; This is the value of the `category' text property placed on every #
1419;; which introduces a CPP construct and every EOL (or EOB, or character
1420;; preceding //, etc.) which terminates it. We can instantly "comment
1421;; out" all CPP constructs by giving `c-cpp-delimiter' a syntax-table
1422;; property '(14) (generic comment delimiter).
1423(defmacro c-set-cpp-delimiters (beg end)
1424 ;; This macro does a hidden buffer change.
1425 `(progn
1426 (c-put-char-property ,beg 'category 'c-cpp-delimiter)
1427 (if (< ,end (point-max))
1428 (c-put-char-property ,end 'category 'c-cpp-delimiter))))
1429(defmacro c-clear-cpp-delimiters (beg end)
1430 ;; This macro does a hidden buffer change.
1431 `(progn
1432 (c-clear-char-property ,beg 'category)
1433 (if (< ,end (point-max))
1434 (c-clear-char-property ,end 'category))))
1435
1436(defsubst c-comment-out-cpps ()
1437 ;; Render all preprocessor constructs syntactically commented out.
1438 (put 'c-cpp-delimiter 'syntax-table c-cpp-delimiter))
1439(defsubst c-uncomment-out-cpps ()
1440 ;; Restore the syntactic visibility of preprocessor constructs.
1441 (put 'c-cpp-delimiter 'syntax-table nil))
1442
1443(defmacro c-with-cpps-commented-out (&rest forms)
1444 ;; Execute FORMS... whilst the syntactic effect of all characters in
1445 ;; all CPP regions is suppressed. In particular, this is to suppress
1446 ;; the syntactic significance of parens/braces/brackets to functions
1447 ;; such as `scan-lists' and `parse-partial-sexp'.
1448 `(unwind-protect
1449 (c-save-buffer-state ()
1450 (c-comment-out-cpps)
1451 ,@forms)
1452 (c-save-buffer-state ()
1453 (c-uncomment-out-cpps))))
1454
1455(defmacro c-with-all-but-one-cpps-commented-out (beg end &rest forms)
1456 ;; Execute FORMS... whilst the syntactic effect of all characters in
1457 ;; every CPP region APART FROM THE ONE BETWEEN BEG and END is
1458 ;; suppressed.
1459 `(unwind-protect
1460 (c-save-buffer-state ()
1461 (save-restriction
1462 (widen)
1463 (c-clear-cpp-delimiters ,beg ,end))
1464 ,`(c-with-cpps-commented-out ,@forms))
1465 (c-save-buffer-state ()
1466 (save-restriction
1467 (widen)
1468 (c-set-cpp-delimiters ,beg ,end)))))
1469
1470(defmacro c-self-bind-state-cache (&rest forms) 1417(defmacro c-self-bind-state-cache (&rest forms)
1471 ;; Bind the state cache to itself and execute the FORMS. Return the result 1418 ;; Bind the state cache to itself and execute the FORMS. Return the result
1472 ;; of the last FORM executed. It is assumed that no buffer changes will 1419 ;; of the last FORM executed. It is assumed that no buffer changes will
diff --git a/lisp/progmodes/cc-engine.el b/lisp/progmodes/cc-engine.el
index 12ec8f74fea..7b9baee6f76 100644
--- a/lisp/progmodes/cc-engine.el
+++ b/lisp/progmodes/cc-engine.el
@@ -238,8 +238,8 @@
238;; `c-macro-cache'. 238;; `c-macro-cache'.
239(defvar c-macro-cache-no-comment nil) 239(defvar c-macro-cache-no-comment nil)
240(make-variable-buffer-local 'c-macro-cache-no-comment) 240(make-variable-buffer-local 'c-macro-cache-no-comment)
241;; Either nil, or the last character of the macro currently represented by 241;; Either nil, or the position of a comment which is open at the end of the
242;; `c-macro-cache' which isn't in a comment. */ 242;; macro represented by `c-macro-cache'.
243 243
244(defun c-invalidate-macro-cache (beg _end) 244(defun c-invalidate-macro-cache (beg _end)
245 ;; Called from a before-change function. If the change region is before or 245 ;; Called from a before-change function. If the change region is before or
@@ -382,8 +382,9 @@ comment at the start of cc-engine.el for more info."
382 (point))) 382 (point)))
383 383
384(defun c-no-comment-end-of-macro () 384(defun c-no-comment-end-of-macro ()
385 ;; Go to the end of a CPP directive, or a pos just before which isn't in a 385 ;; Go to the start of the comment which is open at the end of the current
386 ;; comment. For this purpose, open strings are ignored. 386 ;; CPP directive, or to the end of that directive. For this purpose, open
387 ;; strings are ignored.
387 ;; 388 ;;
388 ;; This function must only be called from the beginning of a CPP construct. 389 ;; This function must only be called from the beginning of a CPP construct.
389 ;; 390 ;;
@@ -401,7 +402,7 @@ comment at the start of cc-engine.el for more info."
401 (setq s (parse-partial-sexp here there))) 402 (setq s (parse-partial-sexp here there)))
402 (when (and (nth 4 s) 403 (when (and (nth 4 s)
403 (not (eq (nth 7 s) 'syntax-table))) ; no pseudo comments. 404 (not (eq (nth 7 s) 'syntax-table))) ; no pseudo comments.
404 (goto-char (1- (nth 8 s)))) 405 (goto-char (nth 8 s)))
405 (setq c-macro-cache-no-comment (point))) 406 (setq c-macro-cache-no-comment (point)))
406 (point))) 407 (point)))
407 408
@@ -3862,14 +3863,7 @@ comment at the start of cc-engine.el for more info."
3862 (if (eval-when-compile (memq 'category-properties c-emacs-features)) 3863 (if (eval-when-compile (memq 'category-properties c-emacs-features))
3863 ;; Emacs 3864 ;; Emacs
3864 (c-with-<->-as-parens-suppressed 3865 (c-with-<->-as-parens-suppressed
3865 (if (and c-state-old-cpp-beg 3866 (c-invalidate-state-cache-1 here))
3866 (< c-state-old-cpp-beg here))
3867 (c-with-all-but-one-cpps-commented-out
3868 c-state-old-cpp-beg
3869 c-state-old-cpp-end
3870 (c-invalidate-state-cache-1 here))
3871 (c-with-cpps-commented-out
3872 (c-invalidate-state-cache-1 here))))
3873 ;; XEmacs 3867 ;; XEmacs
3874 (c-invalidate-state-cache-1 here))) 3868 (c-invalidate-state-cache-1 here)))
3875 3869
@@ -3902,12 +3896,7 @@ comment at the start of cc-engine.el for more info."
3902 (if (eval-when-compile (memq 'category-properties c-emacs-features)) 3896 (if (eval-when-compile (memq 'category-properties c-emacs-features))
3903 ;; Emacs 3897 ;; Emacs
3904 (c-with-<->-as-parens-suppressed 3898 (c-with-<->-as-parens-suppressed
3905 (if (and here-cpp-beg (> here-cpp-end here-cpp-beg)) 3899 (c-parse-state-1))
3906 (c-with-all-but-one-cpps-commented-out
3907 here-cpp-beg here-cpp-end
3908 (c-parse-state-1))
3909 (c-with-cpps-commented-out
3910 (c-parse-state-1))))
3911 ;; XEmacs 3900 ;; XEmacs
3912 (c-parse-state-1)) 3901 (c-parse-state-1))
3913 (setq c-state-old-cpp-beg 3902 (setq c-state-old-cpp-beg
diff --git a/lisp/progmodes/cc-fonts.el b/lisp/progmodes/cc-fonts.el
index 7b99c2f54e5..83038e07ca6 100644
--- a/lisp/progmodes/cc-fonts.el
+++ b/lisp/progmodes/cc-fonts.el
@@ -2670,8 +2670,8 @@ need for `pike-font-lock-extra-types'.")
2670 ;; This function might do hidden buffer changes. 2670 ;; This function might do hidden buffer changes.
2671 2671
2672 (let (comment-beg region-beg) 2672 (let (comment-beg region-beg)
2673 (if (eq (get-text-property (point) 'face) 2673 (if (memq (get-text-property (point) 'face)
2674 'font-lock-comment-face) 2674 '(font-lock-comment-face font-lock-comment-delimiter-face))
2675 ;; Handle the case when the fontified region starts inside a 2675 ;; Handle the case when the fontified region starts inside a
2676 ;; comment. 2676 ;; comment.
2677 (let ((start (c-literal-start))) 2677 (let ((start (c-literal-start)))
@@ -2691,8 +2691,15 @@ need for `pike-font-lock-extra-types'.")
2691 (or (not (c-got-face-at comment-beg 2691 (or (not (c-got-face-at comment-beg
2692 c-literal-faces)) 2692 c-literal-faces))
2693 (and (/= comment-beg (point-min)) 2693 (and (/= comment-beg (point-min))
2694 ;; Cheap check which is unreliable (the previous
2695 ;; character could be the end of a previous
2696 ;; comment).
2694 (c-got-face-at (1- comment-beg) 2697 (c-got-face-at (1- comment-beg)
2695 c-literal-faces)))) 2698 c-literal-faces)
2699 ;; Expensive reliable check.
2700 (save-excursion
2701 (goto-char comment-beg)
2702 (c-in-literal)))))
2696 (setq comment-beg nil)) 2703 (setq comment-beg nil))
2697 (setq region-beg comment-beg)) 2704 (setq region-beg comment-beg))
2698 2705
diff --git a/lisp/progmodes/cc-langs.el b/lisp/progmodes/cc-langs.el
index 169b61c3dd3..12a15873b1a 100644
--- a/lisp/progmodes/cc-langs.el
+++ b/lisp/progmodes/cc-langs.el
@@ -518,13 +518,13 @@ parameters \(point-min) and \(point-max).")
518 (c objc) '(c-depropertize-new-text 518 (c objc) '(c-depropertize-new-text
519 c-parse-quotes-after-change 519 c-parse-quotes-after-change
520 c-extend-font-lock-region-for-macros 520 c-extend-font-lock-region-for-macros
521 c-neutralize-syntax-in-and-mark-CPP 521 c-neutralize-syntax-in-CPP
522 c-change-expand-fl-region) 522 c-change-expand-fl-region)
523 c++ '(c-depropertize-new-text 523 c++ '(c-depropertize-new-text
524 c-parse-quotes-after-change 524 c-parse-quotes-after-change
525 c-extend-font-lock-region-for-macros 525 c-extend-font-lock-region-for-macros
526 c-after-change-re-mark-raw-strings 526 c-after-change-re-mark-raw-strings
527 c-neutralize-syntax-in-and-mark-CPP 527 c-neutralize-syntax-in-CPP
528 c-restore-<>-properties 528 c-restore-<>-properties
529 c-change-expand-fl-region) 529 c-change-expand-fl-region)
530 java '(c-depropertize-new-text 530 java '(c-depropertize-new-text
diff --git a/lisp/progmodes/cc-mode.el b/lisp/progmodes/cc-mode.el
index 22dea039cd1..4073a5a1b1a 100644
--- a/lisp/progmodes/cc-mode.el
+++ b/lisp/progmodes/cc-mode.el
@@ -1016,15 +1016,10 @@ Note that the style variables are always made local to the buffer."
1016 t) 1016 t)
1017 (t nil))))))) 1017 (t nil)))))))
1018 1018
1019(defun c-neutralize-syntax-in-and-mark-CPP (_begg _endd _old-len) 1019(defun c-neutralize-syntax-in-CPP (_begg _endd _old-len)
1020 ;; (i) "Neutralize" every preprocessor line wholly or partially in the 1020 ;; "Neutralize" every preprocessor line wholly or partially in the changed
1021 ;; changed region. "Restore" lines which were CPP lines before the change 1021 ;; region. "Restore" lines which were CPP lines before the change and are
1022 ;; and are no longer so. 1022 ;; no longer so.
1023 ;;
1024 ;; (ii) Mark each CPP construct by placing a `category' property value
1025 ;; `c-cpp-delimiter' at its start and end. The marked characters are the
1026 ;; opening # and usually the terminating EOL, but sometimes the character
1027 ;; before a comment delimiter.
1028 ;; 1023 ;;
1029 ;; That is, set syntax-table properties on characters that would otherwise 1024 ;; That is, set syntax-table properties on characters that would otherwise
1030 ;; interact syntactically with those outside the CPP line(s). 1025 ;; interact syntactically with those outside the CPP line(s).
@@ -1044,12 +1039,7 @@ Note that the style variables are always made local to the buffer."
1044 (c-save-buffer-state (limits) 1039 (c-save-buffer-state (limits)
1045 ;; Clear 'syntax-table properties "punctuation": 1040 ;; Clear 'syntax-table properties "punctuation":
1046 ;; (c-clear-char-property-with-value c-new-BEG c-new-END 'syntax-table '(1)) 1041 ;; (c-clear-char-property-with-value c-new-BEG c-new-END 'syntax-table '(1))
1047 1042 ;; The above is now done in `c-depropertize-CPP'.
1048 ;; CPP "comment" markers:
1049 (if (eval-when-compile (memq 'category-properties c-emacs-features));Emacs.
1050 (c-clear-char-property-with-value
1051 c-new-BEG c-new-END 'category 'c-cpp-delimiter))
1052 ;; FIXME!!! What about the "<" and ">" category properties? 2009-11-16
1053 1043
1054 ;; Add needed properties to each CPP construct in the region. 1044 ;; Add needed properties to each CPP construct in the region.
1055 (goto-char c-new-BEG) 1045 (goto-char c-new-BEG)
@@ -1076,11 +1066,7 @@ Note that the style variables are always made local to the buffer."
1076 (goto-char (match-beginning 1)) 1066 (goto-char (match-beginning 1))
1077 (setq mbeg (point)) 1067 (setq mbeg (point))
1078 (if (> (c-no-comment-end-of-macro) mbeg) 1068 (if (> (c-no-comment-end-of-macro) mbeg)
1079 (progn 1069 (c-neutralize-CPP-line mbeg (point)) ; "punctuation" properties
1080 (c-neutralize-CPP-line mbeg (point)) ; "punctuation" properties
1081 (if (eval-when-compile
1082 (memq 'category-properties c-emacs-features)) ;Emacs.
1083 (c-set-cpp-delimiters mbeg (point)))) ; "comment" markers
1084 (forward-line)) ; no infinite loop with, e.g., "#//" 1070 (forward-line)) ; no infinite loop with, e.g., "#//"
1085 ))))) 1071 )))))
1086 1072
diff --git a/lisp/textmodes/ispell.el b/lisp/textmodes/ispell.el
index 6a169622f52..25f62e317c8 100644
--- a/lisp/textmodes/ispell.el
+++ b/lisp/textmodes/ispell.el
@@ -712,10 +712,10 @@ Otherwise returns the library directory name, if that is defined."
712 (error "%s exited with %s %s" ispell-program-name 712 (error "%s exited with %s %s" ispell-program-name
713 (if (stringp status) "signal" "code") status)) 713 (if (stringp status) "signal" "code") status))
714 714
715 ;; Get relevant version strings. Only xx.yy.... format works well 715 ;; Get relevant version strings.
716 (let (case-fold-search) 716 (let (case-fold-search)
717 (setq ispell-program-version 717 (setq ispell-program-version
718 (and (search-forward-regexp "\\([0-9]+\\.[0-9\\.]+\\)" nil t) 718 (and (search-forward-regexp "\\([0-9]+\\.[0-9.]+\\)" nil t)
719 (match-string 1))) 719 (match-string 1)))
720 720
721 ;; Make sure these variables are (re-)initialized to the default value 721 ;; Make sure these variables are (re-)initialized to the default value
@@ -725,19 +725,23 @@ Otherwise returns the library directory name, if that is defined."
725 725
726 (goto-char (point-min)) 726 (goto-char (point-min))
727 (or (setq ispell-really-aspell 727 (or (setq ispell-really-aspell
728 (and (search-forward-regexp 728 (and
729 "(but really Aspell \\([0-9]+\\.[0-9\\.-]+\\)?)" nil t) 729 (search-forward-regexp
730 (match-string 1))) 730 "(but really Aspell \\([0-9]+\\.[0-9.]+\\([-._+ ]?[a-zA-Z0-9]+\\)?\\)?)"
731 nil t)
732 (match-string 1)))
731 (setq ispell-really-hunspell 733 (setq ispell-really-hunspell
732 (and (search-forward-regexp 734 (and
733 "(but really Hunspell \\([0-9]+\\.[0-9\\.-]+\\)?)" 735 (search-forward-regexp
734 nil t) 736 "(but really Hunspell \\([0-9]+\\.[0-9.]+\\([-._+ ]?[a-zA-Z0-9]+\\)?\\)?)"
735 (match-string 1))) 737 nil t)
738 (match-string 1)))
736 (setq ispell-really-enchant 739 (setq ispell-really-enchant
737 (and (search-forward-regexp 740 (and
738 "(but really Enchant \\([0-9]+\\.[0-9\\.-]+\\)?)" 741 (search-forward-regexp
739 nil t) 742 "(but really Enchant \\([0-9]+\\.[0-9.]+\\([-._+ ]?[a-zA-Z0-9]+\\)?\\)?)"
740 (match-string 1))))) 743 nil t)
744 (match-string 1)))))
741 745
742 (let* ((aspell8-minver "0.60") 746 (let* ((aspell8-minver "0.60")
743 (ispell-minver "3.1.12") 747 (ispell-minver "3.1.12")
diff --git a/src/xdisp.c b/src/xdisp.c
index efc47b39e60..7d13338e25a 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -20274,12 +20274,14 @@ extend_face_to_end_of_line (struct it *it)
20274 it->area = LEFT_MARGIN_AREA; 20274 it->area = LEFT_MARGIN_AREA;
20275 it->face_id = default_face->id; 20275 it->face_id = default_face->id;
20276 while (it->glyph_row->used[LEFT_MARGIN_AREA] 20276 while (it->glyph_row->used[LEFT_MARGIN_AREA]
20277 < WINDOW_LEFT_MARGIN_WIDTH (it->w)) 20277 < WINDOW_LEFT_MARGIN_WIDTH (it->w)
20278 && g < it->glyph_row->glyphs[TEXT_AREA])
20278 { 20279 {
20279 PRODUCE_GLYPHS (it); 20280 PRODUCE_GLYPHS (it);
20280 /* term.c:produce_glyphs advances it->current_x only for 20281 /* term.c:produce_glyphs advances it->current_x only for
20281 TEXT_AREA. */ 20282 TEXT_AREA. */
20282 it->current_x += it->pixel_width; 20283 it->current_x += it->pixel_width;
20284 g++;
20283 } 20285 }
20284 20286
20285 it->current_x = saved_x; 20287 it->current_x = saved_x;
@@ -20313,10 +20315,12 @@ extend_face_to_end_of_line (struct it *it)
20313 it->area = RIGHT_MARGIN_AREA; 20315 it->area = RIGHT_MARGIN_AREA;
20314 it->face_id = default_face->id; 20316 it->face_id = default_face->id;
20315 while (it->glyph_row->used[RIGHT_MARGIN_AREA] 20317 while (it->glyph_row->used[RIGHT_MARGIN_AREA]
20316 < WINDOW_RIGHT_MARGIN_WIDTH (it->w)) 20318 < WINDOW_RIGHT_MARGIN_WIDTH (it->w)
20319 && g < it->glyph_row->glyphs[LAST_AREA])
20317 { 20320 {
20318 PRODUCE_GLYPHS (it); 20321 PRODUCE_GLYPHS (it);
20319 it->current_x += it->pixel_width; 20322 it->current_x += it->pixel_width;
20323 g++;
20320 } 20324 }
20321 20325
20322 it->area = TEXT_AREA; 20326 it->area = TEXT_AREA;