diff options
| author | Glenn Morris | 2017-12-22 13:23:16 -0500 |
|---|---|---|
| committer | Glenn Morris | 2017-12-22 13:23:16 -0500 |
| commit | 3404a87f29b28b449a2e6188f075df2f761caac5 (patch) | |
| tree | 56816f744b5c74273803811d62c9b61ba2334aa3 | |
| parent | 5ee4f2fa8792ebaa84184f1a82219fbcd93e8103 (diff) | |
| parent | 34fcfc5c049bb99d68945bb24fb9d6a0789a33dd (diff) | |
| download | emacs-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.texi | 9 | ||||
| -rw-r--r-- | doc/emacs/frames.texi | 43 | ||||
| -rw-r--r-- | doc/emacs/search.texi | 11 | ||||
| -rw-r--r-- | doc/lispref/Makefile.in | 1 | ||||
| -rw-r--r-- | doc/lispref/compile.texi | 2 | ||||
| -rw-r--r-- | doc/lispref/files.texi | 3 | ||||
| -rw-r--r-- | doc/lispref/functions.texi | 4 | ||||
| -rw-r--r-- | doc/lispref/keymaps.texi | 5 | ||||
| -rw-r--r-- | doc/lispref/lists.texi | 7 | ||||
| -rw-r--r-- | doc/lispref/modes.texi | 9 | ||||
| -rw-r--r-- | doc/lispref/records.texi | 9 | ||||
| -rw-r--r-- | doc/lispref/windows.texi | 23 | ||||
| -rw-r--r-- | etc/NEWS.26 | 35 | ||||
| -rw-r--r-- | lisp/cedet/semantic/ia.el | 2 | ||||
| -rw-r--r-- | lisp/emacs-lisp/inline.el | 4 | ||||
| -rw-r--r-- | lisp/mail/footnote.el | 4 | ||||
| -rw-r--r-- | lisp/progmodes/cc-defs.el | 53 | ||||
| -rw-r--r-- | lisp/progmodes/cc-engine.el | 27 | ||||
| -rw-r--r-- | lisp/progmodes/cc-fonts.el | 13 | ||||
| -rw-r--r-- | lisp/progmodes/cc-langs.el | 4 | ||||
| -rw-r--r-- | lisp/progmodes/cc-mode.el | 26 | ||||
| -rw-r--r-- | lisp/textmodes/ispell.el | 30 | ||||
| -rw-r--r-- | src/xdisp.c | 8 |
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 |
| 395 | running. This is controlled by the @code{grep-save-buffers} variable. | 395 | running. This is controlled by the @code{grep-save-buffers} variable. |
| 396 | The possible values are either @code{nil} (don't save), @code{ask} | 396 | The 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 |
| 398 | is 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 |
| 399 | non-nil if the buffer is to be saved), and any other non-@code{nil} | 399 | non-@code{nil} if the buffer is to be saved). Any other |
| 400 | value means that all buffers should be saved without asking. | 400 | non-@code{nil} value means that all buffers should be saved without |
| 401 | asking. | ||
| 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 | |||
| 243 | grouping or end string-delimiter keeps point at the end of the region | 243 | grouping or end string-delimiter keeps point at the end of the region |
| 244 | by default, so the beginning of the region will not be visible if it | 244 | by default, so the beginning of the region will not be visible if it |
| 245 | is above the top of the window; setting the user option | 245 | is 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 |
| 247 | to move point to the beginning of the region, scrolling the display | 247 | this to move point to the beginning of the region, scrolling the |
| 248 | backward if necessary. | 248 | display backward if necessary. |
| 249 | 249 | ||
| 250 | @item Double-Drag-mouse-1 | 250 | @item Double-Drag-mouse-1 |
| 251 | Select the text you drag across, in the form of whole words. | 251 | Select 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 | |||
| 1094 | conventions of the application it came from) into the directory | 1094 | conventions of the application it came from) into the directory |
| 1095 | displayed in that buffer. | 1095 | displayed 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 | ||
| 1099 | another portion of this or another buffer. To enable that, customize | ||
| 1100 | the variable @code{mouse-drag-and-drop-region} to a non-nil value. | ||
| 1101 | Normally, the text is moved, i.e. cut and pasted, when the destination | ||
| 1102 | is the same buffer as the origin; dropping the region on another | ||
| 1103 | buffer copies the text instead. If the value of this variable names a | ||
| 1104 | modifier key, such as @samp{shift} or @samp{control} or @samp{alt}, | ||
| 1105 | then pressing that modifier key when dropping the text will copy it | ||
| 1106 | instead of cutting it, even if you drop on the same buffer as the one | ||
| 1107 | from 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 |
| 1111 | you prefer to visit the file in a new window in such cases, customize | 1099 | you 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 |
| 1115 | protocol, are currently supported. | 1103 | protocol, are currently supported. |
| 1116 | 1104 | ||
| 1105 | @vindex mouse-drag-and-drop-region | ||
| 1106 | Emacs can also optionally drag the region with the mouse into | ||
| 1107 | another portion of this or another buffer. To enable that, customize | ||
| 1108 | the variable @code{mouse-drag-and-drop-region} to a non-@code{nil} | ||
| 1109 | value. Normally, the text is moved, i.e. cut and pasted, when the | ||
| 1110 | destination is the same buffer as the origin; dropping the region on | ||
| 1111 | another buffer copies the text instead. If the value of this variable | ||
| 1112 | names a modifier key, such as @samp{shift}, @samp{control} or | ||
| 1113 | @samp{alt}, then pressing that modifier key when dropping the text | ||
| 1114 | will copy it instead of cutting it, even if you drop on the same | ||
| 1115 | buffer 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 | ||
| 1120 | In order to cut text even when source and destination buffers differ, | ||
| 1121 | set the option | ||
| 1122 | @code{mouse-drag-and-drop-region-cut-when-buffers-differ} to a | ||
| 1123 | non-@code{nil} value. By default, on a graphic display the selected | ||
| 1124 | text is shown in a tooltip and point moves together with the mouse | ||
| 1125 | cursor 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 | |||
| 1746 | searches. The text that matched is highlighted using the @code{match} | 1746 | searches. The text that matched is highlighted using the @code{match} |
| 1747 | face. A numeric argument @var{n} specifies that @var{n} lines of | 1747 | face. A numeric argument @var{n} specifies that @var{n} lines of |
| 1748 | context are to be displayed before and after each matching line. | 1748 | context are to be displayed before and after each matching line. |
| 1749 | |||
| 1749 | The default number of context lines is specified by the variable | 1750 | The 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 |
| 1751 | When @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 |
| 1752 | the current line is shown highlighted with face | 1753 | current 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 |
| 1754 | at the first match after such line. | 1755 | the first match after such line. |
| 1755 | 1756 | ||
| 1756 | You can also run @kbd{M-s o} when an incremental search is active; | 1757 | You can also run @kbd{M-s o} when an incremental search is active; |
| 1757 | this uses the current search string. | 1758 | this 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 | |||
| 94 | recorded in a buffer called @file{*Compile-Log*}, which uses | 94 | recorded in a buffer called @file{*Compile-Log*}, which uses |
| 95 | Compilation mode. @xref{Compilation Mode,,,emacs, The GNU Emacs | 95 | Compilation mode. @xref{Compilation Mode,,,emacs, The GNU Emacs |
| 96 | Manual}. However, if the variable @code{byte-compile-debug} is | 96 | Manual}. However, if the variable @code{byte-compile-debug} is |
| 97 | non-nil, error message will be signaled as Lisp errors instead | 97 | non-@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 |
| 2285 | might be nil (for example, from an element of @code{load-path}), use: | 2285 | might be @code{nil} (for example, from an element of @code{load-path}), |
| 2286 | use: | ||
| 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 |
| 1754 | This macro defines a piece of advice and adds it to the function named | 1754 | This 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 |
| 1756 | nil or a function named @code{symbol@@name}. See @code{advice-add} | 1756 | @code{nil} or a function named @code{symbol@@name}. See |
| 1757 | for 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, | |||
| 988 | while @var{keymap} is active; it should return non-@code{nil} if | 988 | while @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 | ||
| 991 | The optional argument @var{on-exit}, if non-nil, specifies a function | 991 | The optional argument @var{on-exit}, if non-@code{nil}, specifies a |
| 992 | that is called, with no arguments, after @var{keymap} is deactivated. | 992 | function that is called, with no arguments, after @var{keymap} is |
| 993 | deactivated. | ||
| 993 | 994 | ||
| 994 | This function works by adding and removing @var{keymap} from the | 995 | This function works by adding and removing @var{keymap} from the |
| 995 | variable @code{overriding-terminal-local-map}, which takes precedence | 996 | variable @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 |
| 1515 | This function returns the first association for @var{key} in | 1515 | This 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 |
| 1518 | Predicates}). It returns @code{nil} if no association in @var{alist} | 1518 | (@pxref{Equality Predicates}). It returns @code{nil} if no |
| 1519 | has a @sc{car} equal to @var{key}. For example: | 1519 | association in @var{alist} has a @sc{car} equal to @var{key}. For |
| 1520 | example: | ||
| 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 | |||
| 314 | in the mode line. | 314 | in the mode line. |
| 315 | 315 | ||
| 316 | @item | 316 | @item |
| 317 | Calling the major mode command twice in direct succession should not | ||
| 318 | fail and should do the same thing as calling the command only once. | ||
| 319 | In other words, the major mode command should be idempotent. | ||
| 320 | |||
| 321 | @item | ||
| 317 | @cindex functions in modes | 322 | @cindex functions in modes |
| 318 | Since all global names are in the same name space, all the global | 323 | Since all global names are in the same name space, all the global |
| 319 | variables, constants, and functions that are part of the mode should | 324 | variables, 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 |
| 1413 | However, this is not very commonly done. | 1418 | However, this is not very commonly done. |
| 1414 | 1419 | ||
| 1420 | Enabling or disabling a minor mode twice in direct succession should | ||
| 1421 | not fail and should do the same thing as enabling or disabling it only | ||
| 1422 | once. In other words, the minor mode command should be idempotent. | ||
| 1423 | |||
| 1415 | @item | 1424 | @item |
| 1416 | Add an element to @code{minor-mode-alist} for each minor mode | 1425 | Add 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 |
| 11 | with new types that are not built into Emacs. They are used as the | 11 | with 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; | |||
| 28 | list specifying the contents. The first list element must be the | 28 | list specifying the contents. The first list element must be the |
| 29 | record type. The following elements are the record slots. | 29 | record type. The following elements are the record slots. |
| 30 | 30 | ||
| 31 | To avoid conflicts with other type names, Lisp programs that define | ||
| 32 | new types of records should normally use the naming conventions of the | ||
| 33 | package where these record types are introduced for the names of the | ||
| 34 | types. Note that the names of the types which could possibly conflict | ||
| 35 | might not be known at the time the package defining a record type is | ||
| 36 | loaded; 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 |
| 32 | evaluating it is the same record. This does not evaluate or even | 39 | evaluating it is the same record. This does not evaluate or even |
| 33 | examine the slots. @xref{Self-Evaluating Forms}. | 40 | examine 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. | |||
| 125 | as @dfn{selected within the frame}. For the selected frame, that | 125 | as @dfn{selected within the frame}. For the selected frame, that |
| 126 | window is called the @dfn{selected window}---the one in which most | 126 | window is called the @dfn{selected window}---the one in which most |
| 127 | editing takes place, and in which the cursor for selected windows | 127 | editing takes place, and in which the cursor for selected windows |
| 128 | appears (@pxref{Cursor Parameters}). The selected window's buffer is | 128 | appears (@pxref{Cursor Parameters}). Keyboard input that inserts or |
| 129 | usually also the current buffer, except when @code{set-buffer} has | 129 | deletes text is also normally directed to this window. The selected |
| 130 | been used (@pxref{Current Buffer}). As for non-selected frames, the | 130 | window's buffer is usually also the current buffer, except when |
| 131 | window selected within the frame becomes the selected window if the | 131 | @code{set-buffer} has been used (@pxref{Current Buffer}). As for |
| 132 | frame is ever selected. @xref{Selecting Windows}. | 132 | non-selected frames, the window selected within the frame becomes the |
| 133 | selected window if the frame is ever selected. @xref{Selecting | ||
| 134 | Windows}. | ||
| 133 | 135 | ||
| 134 | @defun selected-window | 136 | @defun selected-window |
| 135 | This function returns the selected window (which is always a live | 137 | This 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 |
| 1728 | This function makes @var{window} the selected window and the window | 1730 | This function makes @var{window} the selected window and the window |
| 1729 | selected within its frame (@pxref{Basic Windows}) and selects that | 1731 | selected within its frame (@pxref{Basic Windows}), and selects that |
| 1730 | frame. It also makes @var{window}'s buffer (@pxref{Buffers and | 1732 | frame. It also makes @var{window}'s buffer (@pxref{Buffers and |
| 1731 | Windows}) current and sets that buffer's value of @code{point} to the | 1733 | Windows}) current and sets that buffer's value of @code{point} to the |
| 1732 | value of @code{window-point} (@pxref{Window Point}) in @var{window}. | 1734 | value 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 | |||
| 1743 | usually not performed. If, however, @var{norecord} equals the special | 1745 | usually not performed. If, however, @var{norecord} equals the special |
| 1744 | symbol @code{mark-for-redisplay}, the additional actions mentioned above | 1746 | symbol @code{mark-for-redisplay}, the additional actions mentioned above |
| 1745 | are omitted but @var{window} will be nevertheless updated. | 1747 | are omitted but @var{window} will be nevertheless updated. |
| 1748 | |||
| 1749 | Note that sometimes selecting a window is not enough to show it, or | ||
| 1750 | make its frame the top-most frame on display: you may also need to | ||
| 1751 | raise 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 | |||
| 3059 | optional argument @var{window} must be a live window and defaults to | 3066 | optional argument @var{window} must be a live window and defaults to |
| 3060 | the selected one. The function's behavior is determined by the four | 3067 | the selected one. The function's behavior is determined by the four |
| 3061 | elements of the @code{quit-restore} window parameter (@pxref{Window | 3068 | elements of the @code{quit-restore} window parameter (@pxref{Window |
| 3062 | Parameters}), which is set to nil afterwards. | 3069 | Parameters}), which is set to @code{nil} afterwards. |
| 3063 | 3070 | ||
| 3064 | The window is deleted entirely if: 1) the first element of the | 3071 | The 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 | ||
| 3129 | Setting the window history to nil ensures that a future call to | 3136 | Setting 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 | |||
| 256 | immediately, or only when there is output. | 256 | immediately, 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'. |
| 260 | controls the position of point when double-clicking mouse-1 on the end | 260 | This option controls the position of point when double-clicking |
| 261 | of a parenthetical grouping or string-delimiter: the default value nil | 261 | mouse-1 on the end of a parenthetical grouping or string-delimiter: |
| 262 | keeps point at the end of the region, setting it to non-nil moves | 262 | the default value nil keeps point at the end of the region, setting it |
| 263 | point to the beginning of the region. | 263 | to 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'. |
| 267 | entire region of text to another place or another buffer. | 267 | This option allows to drag the entire region of text to another place |
| 268 | or 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: | |||
| 1485 | Previously, Emacs would just ignore the extra keyword, or give | 1489 | Previously, Emacs would just ignore the extra keyword, or give |
| 1486 | incorrect results in certain cases. | 1490 | incorrect results in certain cases. |
| 1487 | 1491 | ||
| 1492 | --- | ||
| 1493 | ** The pinentry.el library has been removed. | ||
| 1494 | That package (and the corresponding change in GnuPG and pinentry) | ||
| 1495 | was intended to provide a way to input passphrase through Emacs with | ||
| 1496 | GnuPG 2.0. However, the change to support that was only implemented | ||
| 1497 | in GnuPG >= 2.1 and didn't get backported to GnuPG 2.0. And with | ||
| 1498 | GnuPG 2.1 and later, pinentry.el is not needed at all. So the | ||
| 1499 | library was useless, and we removed it. GnuPG 2.0 is no longer | ||
| 1500 | supported by the upstream project. | ||
| 1501 | |||
| 1502 | To adapt to the change, you may need to set 'epa-pinentry-mode' to the | ||
| 1503 | symbol '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 | |||
| 1567 | used internally to represent cl-defstruct and defclass instances, for | 1584 | used internally to represent cl-defstruct and defclass instances, for |
| 1568 | example. | 1585 | example. |
| 1569 | 1586 | ||
| 1587 | If your program defines new record types, you should use | ||
| 1588 | package-naming conventions for naming those types. This is so any | ||
| 1589 | potential 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' |
| 1572 | to decide which buffers to ask about, if the PRED argument is nil. | 1593 | to 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 | |||
| 129 | This is like `defmacro', but has several advantages. | ||
| 130 | See 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. |
| 367 | By default, Arabic numbers, English letters, Roman Numerals, | 367 | By default, Arabic numbers, English letters, Roman Numerals, |
| 368 | Latin and Unicode superscript characters, and Hebrew numerals | 368 | Latin and Unicode superscript characters, and Hebrew numerals |
| 369 | are available. | 369 | are available.") |
| 370 | See footnote-han.el, footnote-greek.el and footnote-hebrew.el for more | ||
| 371 | exciting 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; |