aboutsummaryrefslogtreecommitdiffstats
path: root/lisp
diff options
context:
space:
mode:
authorPaul Eggert2017-11-02 21:01:44 -0700
committerPaul Eggert2017-11-02 21:01:44 -0700
commit1441eb76fd08572c25e0128c247cc1a628a79ff2 (patch)
treeaaa9a86485836a33618d258a55d8cdbe6082c91a /lisp
parent3ca4a3c8d40ea89ed717e0673fa85f5c1ac851ed (diff)
parent460fe4a1bc40f2ba39deda6448a7baf57e0e6b76 (diff)
downloademacs-1441eb76fd08572c25e0128c247cc1a628a79ff2.tar.gz
emacs-1441eb76fd08572c25e0128c247cc1a628a79ff2.zip
Merge from origin/emacs-26
460fe4a1bc ; Doc fixes 41adf3281e Avoid duplicate calls to xfree for the same pointer 3e7ebbe1bd Don't clobber docstrings of explicitly-defined mode hook v... 9c8fe0248b Avoid fullscreen ediff control frames by default (Bug#29026) 7d32176acc Fix the bug#24034 change (revno 9eb028f) causing infloop (... ee493663ba Merge branch 'emacs-26' of git.savannah.gnu.org:/srv/git/e... ca5eb0d0b7 Fix a typo in the ELisp manual d10c9479ca Fix doc and doc-strings for minibuffer window related func... 18331d00da Fix "Args out of range" error in c-determine-limit. Fixes... edde35e6f8 * lisp/progmodes/perl-mode.el: Fix electric indentation wi... 056587c45f Extend mhtml submode region when in comment 4c4ad80848 Fix mthml submode lighting at end of buffer 557e252aa2 Remember more variables in mhtml-mode 336cd0a11a ; * lisp/select.el (select-enable-primary): Add missing pe... 134099bc90 ; * etc/NEWS (EUDC): Mark as not requiring documentation. 1a340274bf * etc/NEWS (EUDC): Deprecate BBDB 2.x backward compatibility. 4189d0ef7b Fix minibuffer window related docs and strings (Bug#28978) 2ebdde6e9c Add ChkTeX flymake backend for latex-mode 5b59841791 Fix doc typos 82a16c547b Fix some duplicate word typos 266888b1d7 * doc/lispref/commands.texi (Adjusting Point): Fix wording... 00c3c6d88d Avoid segfaults in 64-bit Windows builds a8e6741066 Fix conversion of pixel coordinates to buffer position d43b486f6c Fix doc strings in desktop.el 9102fb603e Add Index to ERT manual 68182a4710 Make manuals and NEWS consistent 451823b0e5 Don't allow (minibuffer-window-active-p nil) to return t cc8f72ca22 Clarify obsolescence message for 'whitespace-tab' 50f711e7fa Fix some duplicate words typos 8bd9524a7c * lisp/button.el (button-activate): Fix doc typo. 0b0d91e60a * lisp/calendar/todo-mode.el (todo-toggle-mark-item): Fix ... e6b4e5ffdf Fix some doc typos e8636ac8cc Fix startup display on Cygwin 3926c5ad83 * src/fileio.c (Fset_default_file_modes): Fix typo in doc ... 9715317dfd * lisp/dired.el (dired-find-alternate-file): Doc fix. (Bu... 9e442a001a Improve documentation of how faces are applied to display ... 1bda71ec3b Improve pixel-scroll-mode 196106d37d Support Certification Authority Authorization in dns-mode.el ec08d70b4f Improve documentation of set-default-file-modes # Conflicts: # etc/NEWS
Diffstat (limited to 'lisp')
-rw-r--r--lisp/button.el2
-rw-r--r--lisp/calendar/todo-mode.el8
-rw-r--r--lisp/cedet/ede.el2
-rw-r--r--lisp/cedet/semantic/imenu.el2
-rw-r--r--lisp/desktop.el12
-rw-r--r--lisp/dired.el5
-rw-r--r--lisp/doc-view.el2
-rw-r--r--lisp/emacs-lisp/derived.el8
-rw-r--r--lisp/emacs-lisp/easy-mmode.el8
-rw-r--r--lisp/emacs-lisp/inline.el2
-rw-r--r--lisp/erc/erc.el6
-rw-r--r--lisp/follow.el2
-rw-r--r--lisp/gnus/gnus-notifications.el2
-rw-r--r--lisp/gnus/message.el2
-rw-r--r--lisp/gnus/nnir.el2
-rw-r--r--lisp/international/mule.el2
-rw-r--r--lisp/net/shr.el12
-rw-r--r--lisp/pixel-scroll.el188
-rw-r--r--lisp/progmodes/cc-engine.el31
-rw-r--r--lisp/progmodes/compile.el2
-rw-r--r--lisp/progmodes/ebrowse.el2
-rw-r--r--lisp/progmodes/flymake-proc.el8
-rw-r--r--lisp/progmodes/gdb-mi.el2
-rw-r--r--lisp/progmodes/gud.el2
-rw-r--r--lisp/progmodes/hideif.el4
-rw-r--r--lisp/progmodes/perl-mode.el4
-rw-r--r--lisp/progmodes/xref.el5
-rw-r--r--lisp/progmodes/xscheme.el25
-rw-r--r--lisp/select.el2
-rw-r--r--lisp/simple.el4
-rw-r--r--lisp/sort.el2
-rw-r--r--lisp/subr.el2
-rw-r--r--lisp/textmodes/dns-mode.el3
-rw-r--r--lisp/textmodes/mhtml-mode.el15
-rw-r--r--lisp/textmodes/tex-mode.el63
-rw-r--r--lisp/textmodes/texinfmt.el2
-rw-r--r--lisp/url/url-queue.el2
-rw-r--r--lisp/vc/ediff-wind.el2
-rw-r--r--lisp/vc/vc.el1
-rw-r--r--lisp/whitespace.el3
-rw-r--r--lisp/window.el6
41 files changed, 316 insertions, 143 deletions
diff --git a/lisp/button.el b/lisp/button.el
index a6090477c55..32cd995f5e4 100644
--- a/lisp/button.el
+++ b/lisp/button.el
@@ -232,7 +232,7 @@ property instead of `action'; if the button has no `mouse-action',
232the value of `action' is used instead. 232the value of `action' is used instead.
233 233
234The action can either be a marker or a function. If it's a 234The action can either be a marker or a function. If it's a
235marker then goto it. Otherwise it it is a function then it is 235marker then goto it. Otherwise if it is a function then it is
236called with BUTTON as only argument. BUTTON is either an 236called with BUTTON as only argument. BUTTON is either an
237overlay, a buffer position, or (for buttons in the mode-line or 237overlay, a buffer position, or (for buttons in the mode-line or
238header-line) a string." 238header-line) a string."
diff --git a/lisp/calendar/todo-mode.el b/lisp/calendar/todo-mode.el
index 79fda462847..3e568213a63 100644
--- a/lisp/calendar/todo-mode.el
+++ b/lisp/calendar/todo-mode.el
@@ -956,7 +956,7 @@ called with a prefix argument only moves point to a lower item,
956e.g., with point on the last todo item and called with prefix 1, 956e.g., with point on the last todo item and called with prefix 1,
957it moves point to the first done item; but if called with point 957it moves point to the first done item; but if called with point
958on the last todo item without a prefix argument, it moves point 958on the last todo item without a prefix argument, it moves point
959the the empty line above the done items separator." 959to the empty line above the done items separator."
960 (interactive "p") 960 (interactive "p")
961 ;; It's not worth the trouble to allow prefix arg value < 1, since 961 ;; It's not worth the trouble to allow prefix arg value < 1, since
962 ;; we have the corresponding command. 962 ;; we have the corresponding command.
@@ -976,7 +976,7 @@ If the category's done items are visible, this command called
976with a prefix argument only moves point to a higher item, e.g., 976with a prefix argument only moves point to a higher item, e.g.,
977with point on the first done item and called with prefix 1, it 977with point on the first done item and called with prefix 1, it
978moves to the last todo item; but if called with point on the 978moves to the last todo item; but if called with point on the
979first done item without a prefix argument, it moves point the the 979first done item without a prefix argument, it moves point to the
980empty line above the done items separator." 980empty line above the done items separator."
981 (interactive "p") 981 (interactive "p")
982 ;; Avoid moving to bob if on the first item but not at bob. 982 ;; Avoid moving to bob if on the first item but not at bob.
@@ -1052,7 +1052,7 @@ empty line above the done items separator."
1052(defun todo-toggle-item-header () 1052(defun todo-toggle-item-header ()
1053 "Hide or show item date-time headers in the current file. 1053 "Hide or show item date-time headers in the current file.
1054With done items, this hides only the done date-time string, not 1054With done items, this hides only the done date-time string, not
1055the the original date-time string." 1055the original date-time string."
1056 (interactive) 1056 (interactive)
1057 (unless (catch 'nonempty 1057 (unless (catch 'nonempty
1058 (dolist (type '(todo done)) 1058 (dolist (type '(todo done))
@@ -1756,7 +1756,7 @@ means prompt user and omit comment only on confirmation."
1756With positive numerical prefix argument N, change the marking of 1756With positive numerical prefix argument N, change the marking of
1757the next N items in the current category. If both the todo and 1757the next N items in the current category. If both the todo and
1758done items sections are visible, the sequence of N items can 1758done items sections are visible, the sequence of N items can
1759consist of the the last todo items and the first done items." 1759consist of the last todo items and the first done items."
1760 (interactive "p") 1760 (interactive "p")
1761 (when (todo-item-string) 1761 (when (todo-item-string)
1762 (let ((cat (todo-current-category))) 1762 (let ((cat (todo-current-category)))
diff --git a/lisp/cedet/ede.el b/lisp/cedet/ede.el
index a78af1b264a..1dcafc453f4 100644
--- a/lisp/cedet/ede.el
+++ b/lisp/cedet/ede.el
@@ -998,7 +998,7 @@ Argument PROMPT is the prompt to use when querying the user for a target."
998 (project-add-file this file)) 998 (project-add-file this file))
999 999
1000(cl-defmethod project-add-file ((ot ede-target) _file) 1000(cl-defmethod project-add-file ((ot ede-target) _file)
1001 "Add the current buffer into project project target OT. 1001 "Add the current buffer into project target OT.
1002Argument FILE is the file to add." 1002Argument FILE is the file to add."
1003 (error "add-file not supported by %s" (eieio-object-name ot))) 1003 (error "add-file not supported by %s" (eieio-object-name ot)))
1004 1004
diff --git a/lisp/cedet/semantic/imenu.el b/lisp/cedet/semantic/imenu.el
index 28d624908e2..5018e039d03 100644
--- a/lisp/cedet/semantic/imenu.el
+++ b/lisp/cedet/semantic/imenu.el
@@ -488,7 +488,7 @@ Clears all imenu menus that may be depending on the database."
488;;; Which function support 488;;; Which function support
489;; 489;;
490;; The which-function library will display the current function in the 490;; The which-function library will display the current function in the
491;; mode line. It tries do do this through imenu. With a semantic parsed 491;; mode line. It tries to do this through imenu. With a semantic parsed
492;; buffer, there is a much more efficient way of doing this. 492;; buffer, there is a much more efficient way of doing this.
493;; Advise `which-function' so that we optionally use semantic tags 493;; Advise `which-function' so that we optionally use semantic tags
494;; instead, and get better stuff. 494;; instead, and get better stuff.
diff --git a/lisp/desktop.el b/lisp/desktop.el
index 0aa5dcfe8a3..2a5ec612ddf 100644
--- a/lisp/desktop.el
+++ b/lisp/desktop.el
@@ -216,8 +216,9 @@ determine where the desktop is saved."
216 :version "22.1") 216 :version "22.1")
217 217
218(defcustom desktop-auto-save-timeout auto-save-timeout 218(defcustom desktop-auto-save-timeout auto-save-timeout
219 "Number of seconds idle time before auto-save of the desktop. 219 "Number of seconds of idle time before auto-saving the desktop.
220The idle timer activates auto-saving only when window configuration changes. 220The desktop will be auto-saved when this amount of idle time have
221passed after some change in the window configuration.
221This applies to an existing desktop file when `desktop-save-mode' is enabled. 222This applies to an existing desktop file when `desktop-save-mode' is enabled.
222Zero or nil means disable auto-saving due to idleness." 223Zero or nil means disable auto-saving due to idleness."
223 :type '(choice (const :tag "Off" nil) 224 :type '(choice (const :tag "Off" nil)
@@ -1362,10 +1363,11 @@ Called by the timer created in `desktop-auto-save-set-timer'."
1362 (desktop-save desktop-dirname nil t))) 1363 (desktop-save desktop-dirname nil t)))
1363 1364
1364(defun desktop-auto-save-set-timer () 1365(defun desktop-auto-save-set-timer ()
1365 "Set the auto-save timer. 1366 "Set the desktop auto-save timer.
1366Cancel any previous timer. When `desktop-auto-save-timeout' is a positive 1367Cancel any previous timer. When `desktop-auto-save-timeout' is a positive
1367integer, start a new idle timer to call `desktop-auto-save' repeatedly 1368integer, start a new idle timer to call `desktop-auto-save' after that many
1368after that many seconds of idle time." 1369seconds of idle time.
1370This function is called from `window-configuration-change-hook'."
1369 (desktop-auto-save-cancel-timer) 1371 (desktop-auto-save-cancel-timer)
1370 (when (and (integerp desktop-auto-save-timeout) 1372 (when (and (integerp desktop-auto-save-timeout)
1371 (> desktop-auto-save-timeout 0)) 1373 (> desktop-auto-save-timeout 0))
diff --git a/lisp/dired.el b/lisp/dired.el
index 1ec3ac4f99c..46918180f12 100644
--- a/lisp/dired.el
+++ b/lisp/dired.el
@@ -1048,7 +1048,7 @@ wildcards, erases the buffer, and builds the subdir-alist anew
1048 ;; default-directory and dired-actual-switches must be buffer-local 1048 ;; default-directory and dired-actual-switches must be buffer-local
1049 ;; and initialized by now. 1049 ;; and initialized by now.
1050 (let (dirname 1050 (let (dirname
1051 ;; This makes readin much much faster. 1051 ;; This makes read-in much faster.
1052 ;; In particular, it prevents the font lock hook from running 1052 ;; In particular, it prevents the font lock hook from running
1053 ;; until the directory is all read in. 1053 ;; until the directory is all read in.
1054 (inhibit-modification-hooks t)) 1054 (inhibit-modification-hooks t))
@@ -2228,7 +2228,8 @@ directory in another window."
2228 (find-file (dired-get-file-for-visit)))) 2228 (find-file (dired-get-file-for-visit))))
2229 2229
2230(defun dired-find-alternate-file () 2230(defun dired-find-alternate-file ()
2231 "In Dired, visit this file or directory instead of the Dired buffer." 2231 "In Dired, visit file or directory on current line via `find-alternate-file'.
2232This kills the Dired buffer, then visits the current line's file or directory."
2232 (interactive) 2233 (interactive)
2233 (set-buffer-modified-p nil) 2234 (set-buffer-modified-p nil)
2234 (find-alternate-file (dired-get-file-for-visit))) 2235 (find-alternate-file (dired-get-file-for-visit)))
diff --git a/lisp/doc-view.el b/lisp/doc-view.el
index a222076edb8..7213ea2ff6b 100644
--- a/lisp/doc-view.el
+++ b/lisp/doc-view.el
@@ -451,7 +451,7 @@ Typically \"page-%s.png\".")
451 (if (and (eq 'pdf doc-view-doc-type) 451 (if (and (eq 'pdf doc-view-doc-type)
452 (executable-find "pdfinfo")) 452 (executable-find "pdfinfo"))
453 ;; We don't want to revert if the PDF file is corrupted which 453 ;; We don't want to revert if the PDF file is corrupted which
454 ;; might happen when it it currently recompiled from a tex 454 ;; might happen when it is currently recompiled from a tex
455 ;; file. (TODO: We'd like to have something like that also 455 ;; file. (TODO: We'd like to have something like that also
456 ;; for other types, at least PS, but I don't know a good way 456 ;; for other types, at least PS, but I don't know a good way
457 ;; to test if a PS file is complete.) 457 ;; to test if a PS file is complete.)
diff --git a/lisp/emacs-lisp/derived.el b/lisp/emacs-lisp/derived.el
index 3fa3818526c..751291afa88 100644
--- a/lisp/emacs-lisp/derived.el
+++ b/lisp/emacs-lisp/derived.el
@@ -203,11 +203,13 @@ See Info node `(elisp)Derived Modes' for more details."
203 parent child docstring syntax abbrev)) 203 parent child docstring syntax abbrev))
204 204
205 `(progn 205 `(progn
206 (defvar ,hook nil 206 (defvar ,hook nil)
207 ,(format "Hook run after entering %s mode. 207 (unless (get ',hook 'variable-documentation)
208 (put ',hook 'variable-documentation
209 ,(format "Hook run after entering %s mode.
208No problems result if this variable is not bound. 210No problems result if this variable is not bound.
209`add-hook' automatically binds it. (This is true for all hook variables.)" 211`add-hook' automatically binds it. (This is true for all hook variables.)"
210 name)) 212 name)))
211 (unless (boundp ',map) 213 (unless (boundp ',map)
212 (put ',map 'definition-name ',child)) 214 (put ',map 'definition-name ',child))
213 (with-no-warnings (defvar ,map (make-sparse-keymap))) 215 (with-no-warnings (defvar ,map (make-sparse-keymap)))
diff --git a/lisp/emacs-lisp/easy-mmode.el b/lisp/emacs-lisp/easy-mmode.el
index 643a65f48d9..6293d71470d 100644
--- a/lisp/emacs-lisp/easy-mmode.el
+++ b/lisp/emacs-lisp/easy-mmode.el
@@ -309,11 +309,13 @@ the mode if ARG is omitted or nil, and toggle it if ARG is `toggle'.
309 ;; up-to-here. 309 ;; up-to-here.
310 :autoload-end 310 :autoload-end
311 311
312 (defvar ,hook nil 312 (defvar ,hook nil)
313 ,(format "Hook run after entering or leaving `%s'. 313 (unless (get ',hook 'variable-documentation)
314 (put ',hook 'variable-documentation
315 ,(format "Hook run after entering or leaving `%s'.
314No problems result if this variable is not bound. 316No problems result if this variable is not bound.
315`add-hook' automatically binds it. (This is true for all hook variables.)" 317`add-hook' automatically binds it. (This is true for all hook variables.)"
316 modefun)) 318 modefun)))
317 319
318 ;; Define the minor-mode keymap. 320 ;; Define the minor-mode keymap.
319 ,(unless (symbolp keymap) ;nil is also a symbol. 321 ,(unless (symbolp keymap) ;nil is also a symbol.
diff --git a/lisp/emacs-lisp/inline.el b/lisp/emacs-lisp/inline.el
index 00e5e6eb48d..ff27158f836 100644
--- a/lisp/emacs-lisp/inline.el
+++ b/lisp/emacs-lisp/inline.el
@@ -59,7 +59,7 @@
59;; and then M-: (macroexpand-all '(my-test1 y)) RET) 59;; and then M-: (macroexpand-all '(my-test1 y)) RET)
60;; There is still one downside shared with the defmacro and cl-defsubst 60;; There is still one downside shared with the defmacro and cl-defsubst
61;; approach: when the function is inlined, the scoping rules (dynamic or 61;; approach: when the function is inlined, the scoping rules (dynamic or
62;; lexical) will be inherited from the the call site. 62;; lexical) will be inherited from the call site.
63 63
64;; Of course, since define-inline defines a compiler macro, you can also do 64;; Of course, since define-inline defines a compiler macro, you can also do
65;; call-site optimizations, just like you can with `defmacro', but not with 65;; call-site optimizations, just like you can with `defmacro', but not with
diff --git a/lisp/erc/erc.el b/lisp/erc/erc.el
index fdc4a647777..76f4c8b35ab 100644
--- a/lisp/erc/erc.el
+++ b/lisp/erc/erc.el
@@ -2648,9 +2648,9 @@ otherwise `erc-server-announced-name'. SERVER is matched against
2648 "Predicate indicating whether the parsed ERC response PARSED should be hidden. 2648 "Predicate indicating whether the parsed ERC response PARSED should be hidden.
2649 2649
2650Messages are always hidden if the message type of PARSED appears in 2650Messages are always hidden if the message type of PARSED appears in
2651`erc-hide-list'. Message types that appear in `erc-network-hide-list' 2651`erc-hide-list'. Message types that appear in `erc-network-hide-list'
2652or `erc-channel-hide-list' are are only hidden if the target matches 2652or `erc-channel-hide-list' are only hidden if the target matches
2653the network or channel in the list. In addition, messages whose type 2653the network or channel in the list. In addition, messages whose type
2654is a member of `erc-lurker-hide-list' are hidden if `erc-lurker-p' 2654is a member of `erc-lurker-hide-list' are hidden if `erc-lurker-p'
2655returns non-nil." 2655returns non-nil."
2656 (let* ((command (erc-response.command parsed)) 2656 (let* ((command (erc-response.command parsed))
diff --git a/lisp/follow.el b/lisp/follow.el
index 761513bae36..4893cad3fdc 100644
--- a/lisp/follow.el
+++ b/lisp/follow.el
@@ -1117,7 +1117,7 @@ Otherwise, return nil."
1117;;; Redisplay 1117;;; Redisplay
1118 1118
1119;; Redraw all the windows on the screen, starting with the top window. 1119;; Redraw all the windows on the screen, starting with the top window.
1120;; The window used as as marker is WIN, or the selected window if WIN 1120;; The window used as marker is WIN, or the selected window if WIN
1121;; is nil. Start every window directly after the end of the previous 1121;; is nil. Start every window directly after the end of the previous
1122;; window, to make sure long lines are displayed correctly. 1122;; window, to make sure long lines are displayed correctly.
1123 1123
diff --git a/lisp/gnus/gnus-notifications.el b/lisp/gnus/gnus-notifications.el
index e97e6a64334..6e8dbb5c35e 100644
--- a/lisp/gnus/gnus-notifications.el
+++ b/lisp/gnus/gnus-notifications.el
@@ -154,7 +154,7 @@ This is typically a function to add in
154 (dolist (entry gnus-newsrc-alist) 154 (dolist (entry gnus-newsrc-alist)
155 (let ((group (car entry))) 155 (let ((group (car entry)))
156 ;; Check that the group level is less than 156 ;; Check that the group level is less than
157 ;; `gnus-notifications-minimum-level' and the the group has unread 157 ;; `gnus-notifications-minimum-level' and the group has unread
158 ;; messages. 158 ;; messages.
159 (when (and (<= (gnus-group-level group) gnus-notifications-minimum-level) 159 (when (and (<= (gnus-group-level group) gnus-notifications-minimum-level)
160 (let ((unread (gnus-group-unread group))) 160 (let ((unread (gnus-group-unread group)))
diff --git a/lisp/gnus/message.el b/lisp/gnus/message.el
index acb55463f7f..f6777c5e884 100644
--- a/lisp/gnus/message.el
+++ b/lisp/gnus/message.el
@@ -4346,7 +4346,7 @@ conformance."
4346RECIPIENTS is a mail header. Return a list of potentially bogus 4346RECIPIENTS is a mail header. Return a list of potentially bogus
4347addresses. If none is found, return nil. 4347addresses. If none is found, return nil.
4348 4348
4349An address might be bogus if if there's a matching entry in 4349An address might be bogus if there's a matching entry in
4350`message-bogus-addresses'." 4350`message-bogus-addresses'."
4351 ;; FIXME: How about "foo@subdomain", when the MTA adds ".domain.tld"? 4351 ;; FIXME: How about "foo@subdomain", when the MTA adds ".domain.tld"?
4352 (let (found) 4352 (let (found)
diff --git a/lisp/gnus/nnir.el b/lisp/gnus/nnir.el
index 51147ed4330..be42ab74e4a 100644
--- a/lisp/gnus/nnir.el
+++ b/lisp/gnus/nnir.el
@@ -64,7 +64,7 @@
64;; also be correct, see the documentation for `nnir-namazu-remove-prefix' 64;; also be correct, see the documentation for `nnir-namazu-remove-prefix'
65;; above. 65;; above.
66;; 66;;
67;; It is particularly important not to pass any any switches to namazu 67;; It is particularly important not to pass any switches to namazu
68;; that will change the output format. Good switches to use include 68;; that will change the output format. Good switches to use include
69;; `--sort', `--ascending', `--early' and `--late'. Refer to the Namazu 69;; `--sort', `--ascending', `--early' and `--late'. Refer to the Namazu
70;; documentation for further information on valid switches. 70;; documentation for further information on valid switches.
diff --git a/lisp/international/mule.el b/lisp/international/mule.el
index 5f1ef5e7d02..857fa800eb4 100644
--- a/lisp/international/mule.el
+++ b/lisp/international/mule.el
@@ -773,7 +773,7 @@ never used by the other charsets.
773If it is a list, the elements must be charsets, nil, 94, or 96. GN 773If it is a list, the elements must be charsets, nil, 94, or 96. GN
774can be used by all the listed charsets. If the list contains 94, any 774can be used by all the listed charsets. If the list contains 94, any
775iso-2022 charset whose code-space ranges are 94 long can be designated 775iso-2022 charset whose code-space ranges are 94 long can be designated
776to GN. If the list contains 96, any charsets whose whose ranges are 776to GN. If the list contains 96, any charsets whose ranges are
77796 long can be designated to GN. If the first element is a charset, 77796 long can be designated to GN. If the first element is a charset,
778that charset is initially designated to GN. 778that charset is initially designated to GN.
779 779
diff --git a/lisp/net/shr.el b/lisp/net/shr.el
index 260ada54222..4ba452e4b94 100644
--- a/lisp/net/shr.el
+++ b/lisp/net/shr.el
@@ -635,7 +635,7 @@ size, and full-buffer size."
635 (replace-match " " t t)) 635 (replace-match " " t t))
636 (shr--translate-insertion-chars) 636 (shr--translate-insertion-chars)
637 (goto-char (point-max))) 637 (goto-char (point-max)))
638 ;; We may have removed everything we inserted if if was just 638 ;; We may have removed everything we inserted if it was just
639 ;; spaces. 639 ;; spaces.
640 (unless (= font-start (point)) 640 (unless (= font-start (point))
641 ;; Mark all lines that should possibly be folded afterwards. 641 ;; Mark all lines that should possibly be folded afterwards.
@@ -700,12 +700,16 @@ size, and full-buffer size."
700 ;; Success; continue. 700 ;; Success; continue.
701 (when (= (preceding-char) ?\s) 701 (when (= (preceding-char) ?\s)
702 (delete-char -1)) 702 (delete-char -1))
703 (let ((props (text-properties-at (point))) 703 (let ((props `(face ,(get-text-property (point) 'face)
704 ;; Don't break the image-displayer property
705 ;; as it will cause `gnus-article-show-images'
706 ;; to show the two or more same images.
707 image-displayer
708 ,(get-text-property (point) 'image-displayer)))
704 (gap-start (point))) 709 (gap-start (point)))
705 (insert "\n") 710 (insert "\n")
706 (shr-indent) 711 (shr-indent)
707 (when props 712 (add-text-properties gap-start (point) props))
708 (add-text-properties gap-start (point) props)))
709 (setq start (point)) 713 (setq start (point))
710 (shr-vertical-motion shr-internal-width) 714 (shr-vertical-motion shr-internal-width)
711 (when (looking-at " $") 715 (when (looking-at " $")
diff --git a/lisp/pixel-scroll.el b/lisp/pixel-scroll.el
index 4f183addaa0..2213a0239db 100644
--- a/lisp/pixel-scroll.el
+++ b/lisp/pixel-scroll.el
@@ -74,10 +74,13 @@
74More wait will result in slow and gentle scroll.") 74More wait will result in slow and gentle scroll.")
75 75
76(defvar pixel-resolution-fine-flag nil 76(defvar pixel-resolution-fine-flag nil
77 "Set scrolling resolution to a pixel instead of a line. 77 "Set scrolling resolution to pixels instead of a line.
78After a pixel scroll, typing C-n or C-p scrolls the window to 78When it is t, scrolling resolution is number of pixels obtained
79make it fully visible, and undoes the effect of the pixel-level 79by `frame-char-height' instead of a line. When it is number,
80scroll.") 80scrolling resolution is set to number of pixels specified. In
81case you need scrolling resolution of a pixel, set to 1. After a
82pixel scroll, typing \\[next-line] or \\[previous-line] scrolls the window to make it
83fully visible, and undoes the effect of the pixel-level scroll.")
81 84
82;;;###autoload 85;;;###autoload
83(define-minor-mode pixel-scroll-mode 86(define-minor-mode pixel-scroll-mode
@@ -102,13 +105,16 @@ This is an alternative of `scroll-up'. Scope moves downward."
102 (interactive) 105 (interactive)
103 (or arg (setq arg 1)) 106 (or arg (setq arg 1))
104 (dotimes (ii arg) ; move scope downward 107 (dotimes (ii arg) ; move scope downward
105 (if (pixel-eob-at-top-p) ; when end-of-the-buffer is close 108 (let ((amt (if pixel-resolution-fine-flag
106 (scroll-up 1) ; relay on robust method 109 (if (integerp pixel-resolution-fine-flag)
107 (when (pixel-point-at-top-p) ; prevent too late 110 pixel-resolution-fine-flag
108 (vertical-motion 1)) ; move point downward 111 (frame-char-height))
109 (pixel-scroll-pixel-up (if pixel-resolution-fine-flag 112 (pixel-line-height))))
110 1 113 (if (pixel-eob-at-top-p) ; when end-of-the-buffer is close
111 (pixel-line-height)))))) ; move scope downward 114 (scroll-up 1) ; relay on robust method
115 (while (pixel-point-at-top-p amt) ; prevent too late (multi tries)
116 (vertical-motion 1)) ; move point downward
117 (pixel-scroll-pixel-up amt))))) ; move scope downward
112 118
113(defun pixel-scroll-down (&optional arg) 119(defun pixel-scroll-down (&optional arg)
114 "Scroll text of selected window down ARG lines. 120 "Scroll text of selected window down ARG lines.
@@ -116,48 +122,63 @@ This is and alternative of `scroll-down'. Scope moves upward."
116 (interactive) 122 (interactive)
117 (or arg (setq arg 1)) 123 (or arg (setq arg 1))
118 (dotimes (ii arg) 124 (dotimes (ii arg)
119 (if (or (pixel-bob-at-top-p) ; when beginning-of-the-buffer is seen 125 (let ((amt (if pixel-resolution-fine-flag
120 (pixel-eob-at-top-p)) ; for file with a long line 126 (if (integerp pixel-resolution-fine-flag)
121 (scroll-down 1) ; relay on robust method 127 pixel-resolution-fine-flag
122 (while (pixel-point-at-bottom-p) ; prevent too late (multi tries) 128 (frame-char-height))
123 (vertical-motion -1)) 129 (pixel-line-height -1))))
124 (pixel-scroll-pixel-down (if pixel-resolution-fine-flag 130 (if (or (pixel-bob-at-top-p amt) ; when beginning-of-the-buffer is seen
125 1 131 (pixel-eob-at-top-p)) ; for file with a long line
126 (pixel-line-height -1)))))) 132 (scroll-down 1) ; relay on robust method
127 133 (while (pixel-point-at-bottom-p amt) ; prevent too late (multi tries)
128(defun pixel-bob-at-top-p () 134 (vertical-motion -1))
129 "Return non-nil if beginning of buffer is at top of window." 135 (pixel-scroll-pixel-down amt)))))
130 (equal (window-start) (point-min))) 136
137(defun pixel-bob-at-top-p (amt)
138 "Return non-nil if window-start is at beginning of the current buffer.
139Window must be vertically scrolled by not more than AMT pixels."
140 (and (equal (window-start) (point-min))
141 (< (window-vscroll nil t) amt)))
131 142
132(defun pixel-eob-at-top-p () 143(defun pixel-eob-at-top-p ()
133 "Return non-nil if end of buffer is at top of window." 144 "Return non-nil if end of buffer is at top of window."
134 (<= (count-lines (window-start) (window-end)) 2)) ; count-screen-lines 145 (<= (count-lines (window-start) (window-end)) 2)) ; count-screen-lines
135 146
136(defun pixel-posn-y-at-point () 147(defun pixel-posn-y-at-point ()
137 "Return y coordinates of point in pixels of current window." 148 "Return y coordinates of point in pixels of current window.
138 (let ((hscroll0 (window-hscroll)) 149This returns nil when horizontally scrolled."
139 (y (cdr (posn-x-y (posn-at-point))))) 150 (when (equal (window-hscroll) 0)
140 ;; when point is out of scope by hscroll 151 (save-excursion
141 (unless y 152 ;; When there's an overlay string on a line, move
142 (save-excursion 153 ;; point by (beginning-of-visual-line).
143 (set-window-hscroll nil (current-column)) 154 (beginning-of-visual-line)
144 (setq y (cdr (posn-x-y (posn-at-point)))) 155 ;; (- (cadr (pos-visible-in-window-p (point) nil t))
145 (set-window-hscroll nil hscroll0))) 156 ;; (line-pixel-height))
146 y)) 157 (cdr (posn-x-y (posn-at-point))))))
147 158
148(defun pixel-point-at-top-p () 159(defun pixel-point-at-top-p (amt)
149 "Return if point is located at top of a window." 160 "Return if point is located at top of a window on coming scroll of AMT pixels.
150 (let* ((y (pixel-posn-y-at-point)) 161When location of point was not obtained, this returns if point is at top
151 (top-margin y)) 162of window."
152 (< top-margin (pixel-line-height)))) 163 (let ((y (pixel-posn-y-at-point))
153 164 top-margin)
154(defun pixel-point-at-bottom-p () 165 (cond
155 "Return if point is located at bottom of a window." 166 (y
156 (let* ((y (pixel-posn-y-at-point)) 167 (setq top-margin y)
157 (edges (window-inside-pixel-edges)) 168 (< top-margin amt))
169 (t
170 (<= (count-lines (window-start) (point)) 1)))))
171
172(defun pixel-point-at-bottom-p (amt)
173 "Return if point is located at bottom of window on coming scroll of AMT pixels.
174When location of point was not obtained, this returns nil."
175 (let* ((edges (window-inside-pixel-edges))
158 (height (- (nth 3 edges) (nth 1 edges))) ; (- bottom top) 176 (height (- (nth 3 edges) (nth 1 edges))) ; (- bottom top)
159 (bottom-margin (- height (+ y (line-pixel-height))))) ; bottom margin 177 (y (pixel-posn-y-at-point))
160 (< bottom-margin (pixel-line-height -1)))) ; coming unseen line 178 bottom-margin)
179 (when y
180 (setq bottom-margin (- height (+ y (pixel-visual-line-height))))
181 (< bottom-margin amt)))) ; coming unseen line
161 182
162(defun pixel-scroll-pixel-up (amt) 183(defun pixel-scroll-pixel-up (amt)
163 "Scroll text of selected windows up AMT pixels. 184 "Scroll text of selected windows up AMT pixels.
@@ -173,8 +194,12 @@ Scope moves upward."
173 (while (> amt 0) 194 (while (> amt 0)
174 (let ((vs (window-vscroll nil t))) 195 (let ((vs (window-vscroll nil t)))
175 (if (equal vs 0) 196 (if (equal vs 0)
176 (pixel-scroll-down-and-set-window-vscroll 197 (progn
177 (1- (pixel-line-height -1))) 198 ;; On horizontal scrolling, move cursor.
199 (when (> (window-hscroll) 0)
200 (vertical-motion -1))
201 (pixel-scroll-down-and-set-window-vscroll
202 (1- (pixel-line-height -1))))
178 (set-window-vscroll nil (1- vs) t)) 203 (set-window-vscroll nil (1- vs) t))
179 (setq amt (1- amt)) 204 (setq amt (1- amt))
180 (sit-for pixel-wait)))) 205 (sit-for pixel-wait))))
@@ -189,11 +214,16 @@ Scope moves downward. This function returns number of pixels
189that was scrolled." 214that was scrolled."
190 (let* ((src (window-vscroll nil t)) ; EXAMPLE (initial) @0 @8 @88 215 (let* ((src (window-vscroll nil t)) ; EXAMPLE (initial) @0 @8 @88
191 (height (pixel-line-height)) ; 25 25 23 216 (height (pixel-line-height)) ; 25 25 23
192 (line (1+ (/ src height))) ; catch up + one line Ä1 Ä1 Ä4 217 (line (1+ (/ src height))) ; catch up + one line 1 1 4
193 (dst (* line height)) ; goal @25 @25 @92 218 (dst (* line height)) ; goal @25 @25 @92
194 (delta (- dst src))) ; pixels to be scrolled 25 17 4 219 (delta (- dst src))) ; pixels to be scrolled 25 17 4
195 (pixel--whistlestop-pixel-up (1- delta)) ; until one less @24 @24 @91 220 (pixel--whistlestop-pixel-up (1- delta)) ; until one less @24 @24 @91
196 (scroll-up line) (sit-for pixel-wait) ; scroll 1 pixel @0 @0 @0 221 (dotimes (ii line)
222 ;; On horizontal scrolling, move cursor.
223 (when (> (window-hscroll) 0)
224 (vertical-motion 1))
225 (scroll-up 1))
226 (sit-for pixel-wait) ; scroll 1 pixel @0 @0 @0
197 delta)) 227 delta))
198 228
199(defun pixel--whistlestop-pixel-up (n) 229(defun pixel--whistlestop-pixel-up (n)
@@ -211,9 +241,61 @@ unseen line above the first line, respectively, is provided."
211 (or pos (setq pos (window-start))) 241 (or pos (setq pos (window-start)))
212 (when (< pos 0) 242 (when (< pos 0)
213 (setq pos (pixel-point-at-unseen-line))) 243 (setq pos (pixel-point-at-unseen-line)))
214 (save-excursion 244 (let ((vs1 (window-vscroll nil t))
215 (goto-char pos) 245 height)
216 (line-pixel-height))) ; frame-char-height 246 (set-window-vscroll nil 0 t)
247 (save-excursion
248 (goto-char pos)
249 (setq height (pixel-visual-line-height))) ; line-pixel-height, frame-char-height
250 (set-window-vscroll nil vs1 t)
251 height))
252
253(defun pixel-visual-line-height ()
254 "Return height in pixels of text line where cursor is in the selected window."
255 (let ((pos (pixel-visible-pos-in-window)))
256 (cond
257 ;; When a char of line is shown, obtain height by
258 ;; (line-pixel-height).
259 (pos (save-excursion (goto-char pos) (line-pixel-height)))
260 ;; When no char of line is shown but the line is at the top,
261 ;; obtain height by (line-pixel-height). This is based on
262 ;; expected response from display engine. See following
263 ;; discussion.
264 ;; https://lists.gnu.org/archive/html/emacs-devel/2017-10/msg00621.html
265 ((equal (count-lines (window-start) (point)) 1)
266 (line-pixel-height))
267 ;; No char of line is shown and the line is not at the top,
268 ;; obtain height by (frame-char-height).
269 (t (frame-char-height)))))
270
271(defun pixel-visible-pos-in-window ()
272 "Return position shown on text line where cursor is in the selected window.
273This will look for positions of point and end-of-visual-line,
274then positions from beginning-of-visual-line to
275end-of-visual-line. When no char in a line is shown, this
276returns nil."
277 (let* ((beginning-of-visual-line-pos (save-excursion (beginning-of-visual-line) (point)))
278 (end-of-visual-line-pos (save-excursion (end-of-visual-line) (point)))
279 (pos-list (number-sequence beginning-of-visual-line-pos end-of-visual-line-pos))
280 (edges (window-inside-pixel-edges))
281 (width (- (nth 2 edges) (nth 0 edges)))
282 posn-x
283 visible-pos)
284 ;; Optimize list of position to be surveyed.
285 (push end-of-visual-line-pos pos-list)
286 (push (point) pos-list)
287 (delete-dups pos-list)
288 ;; Find out a char with position X that is more than zero and less
289 ;; than width of screen.
290 (while (and (not visible-pos)
291 pos-list)
292 (setq posn-x (car (pos-visible-in-window-p (car pos-list) nil t)))
293 (if (and posn-x
294 (<= 0 posn-x)
295 (< posn-x width))
296 (setq visible-pos (car pos-list))
297 (setq pos-list (cdr pos-list))))
298 visible-pos))
217 299
218(defun pixel-point-at-unseen-line () 300(defun pixel-point-at-unseen-line ()
219 "Return the character position of line above the selected window. 301 "Return the character position of line above the selected window.
diff --git a/lisp/progmodes/cc-engine.el b/lisp/progmodes/cc-engine.el
index 457f95f2ca3..6f39cc64338 100644
--- a/lisp/progmodes/cc-engine.el
+++ b/lisp/progmodes/cc-engine.el
@@ -1720,7 +1720,7 @@ comment at the start of cc-engine.el for more info."
1720 `((c-debug-remove-face beg end 'c-debug-is-sws-face) 1720 `((c-debug-remove-face beg end 'c-debug-is-sws-face)
1721 (c-debug-remove-face beg end 'c-debug-in-sws-face))))) 1721 (c-debug-remove-face beg end 'c-debug-in-sws-face)))))
1722 1722
1723;; The type of literal position `end' is in in a `before-change-functions' 1723;; The type of literal position `end' is in a `before-change-functions'
1724;; function - one of `c', `c++', `pound', or nil (but NOT `string'). 1724;; function - one of `c', `c++', `pound', or nil (but NOT `string').
1725(defvar c-sws-lit-type nil) 1725(defvar c-sws-lit-type nil)
1726;; A cons (START . STOP) of the bounds of the comment or CPP construct 1726;; A cons (START . STOP) of the bounds of the comment or CPP construct
@@ -2784,7 +2784,7 @@ comment at the start of cc-engine.el for more info."
2784 2784
2785 (setq pos npos) 2785 (setq pos npos)
2786 (setq c-state-nonlit-pos-cache (cons pos c-state-nonlit-pos-cache))) 2786 (setq c-state-nonlit-pos-cache (cons pos c-state-nonlit-pos-cache)))
2787 ;; Add one extra element above HERE so as to to avoid the previous 2787 ;; Add one extra element above HERE so as to avoid the previous
2788 ;; expensive calculation when the next call is close to the current 2788 ;; expensive calculation when the next call is close to the current
2789 ;; one. This is especially useful when inside a large macro. 2789 ;; one. This is especially useful when inside a large macro.
2790 (when npos 2790 (when npos
@@ -5189,16 +5189,25 @@ comment at the start of cc-engine.el for more info."
5189 ;; Get a "safe place" approximately TRY-SIZE characters before START. 5189 ;; Get a "safe place" approximately TRY-SIZE characters before START.
5190 ;; This defsubst doesn't preserve point. 5190 ;; This defsubst doesn't preserve point.
5191 (let* ((pos (max (- start try-size) (point-min))) 5191 (let* ((pos (max (- start try-size) (point-min)))
5192 (s (c-state-semi-pp-to-literal pos))) 5192 (s (c-state-semi-pp-to-literal pos))
5193 (or (car (cddr s)) pos))) 5193 (cand (or (car (cddr s)) pos)))
5194 (if (>= cand (point-min))
5195 cand
5196 (parse-partial-sexp pos start nil nil (car s) 'syntax-table)
5197 (point))))
5194 5198
5195(defun c-determine-limit (how-far-back &optional start try-size) 5199(defun c-determine-limit (how-far-back &optional start try-size)
5196 ;; Return a buffer position HOW-FAR-BACK non-literal characters from START 5200 ;; Return a buffer position HOW-FAR-BACK non-literal characters from
5197 ;; (default point). This is done by going back further in the buffer then 5201 ;; START (default point). The starting position, either point or
5198 ;; searching forward for literals. The position found won't be in a 5202 ;; START may not be in a comment or string.
5199 ;; literal. We start searching for the sought position TRY-SIZE (default 5203 ;;
5200 ;; twice HOW-FAR-BACK) bytes back from START. This function must be fast. 5204 ;; The position found will not be before POINT-MIN and won't be in a
5201 ;; :-) 5205 ;; literal.
5206 ;;
5207 ;; We start searching for the sought position TRY-SIZE (default
5208 ;; twice HOW-FAR-BACK) bytes back from START.
5209 ;;
5210 ;; This function must be fast. :-)
5202 (save-excursion 5211 (save-excursion
5203 (let* ((start (or start (point))) 5212 (let* ((start (or start (point)))
5204 (try-size (or try-size (* 2 how-far-back))) 5213 (try-size (or try-size (* 2 how-far-back)))
@@ -5254,6 +5263,8 @@ comment at the start of cc-engine.el for more info."
5254 (+ (car elt) (- count how-far-back))) 5263 (+ (car elt) (- count how-far-back)))
5255 ((eq base (point-min)) 5264 ((eq base (point-min))
5256 (point-min)) 5265 (point-min))
5266 ((> base (- start try-size)) ; Can only happen if we hit point-min.
5267 (car elt))
5257 (t 5268 (t
5258 (c-determine-limit (- how-far-back count) base try-size)))))) 5269 (c-determine-limit (- how-far-back count) base try-size))))))
5259 5270
diff --git a/lisp/progmodes/compile.el b/lisp/progmodes/compile.el
index e4b77ab0504..0794830fcb8 100644
--- a/lisp/progmodes/compile.el
+++ b/lisp/progmodes/compile.el
@@ -2328,7 +2328,7 @@ and runs `compilation-filter-hook'."
2328 (while (,< n 0) 2328 (while (,< n 0)
2329 (setq opt pt) 2329 (setq opt pt)
2330 (or (setq pt (,property-change pt 'compilation-message)) 2330 (or (setq pt (,property-change pt 'compilation-message))
2331 ;; Handle the case where where the first error message is 2331 ;; Handle the case where the first error message is
2332 ;; at the start of the buffer, and n < 0. 2332 ;; at the start of the buffer, and n < 0.
2333 (if (or (eq (get-text-property ,limit 'compilation-message) 2333 (if (or (eq (get-text-property ,limit 'compilation-message)
2334 (get-text-property opt 'compilation-message)) 2334 (get-text-property opt 'compilation-message))
diff --git a/lisp/progmodes/ebrowse.el b/lisp/progmodes/ebrowse.el
index 661c55dc184..6ea939de661 100644
--- a/lisp/progmodes/ebrowse.el
+++ b/lisp/progmodes/ebrowse.el
@@ -3034,7 +3034,7 @@ the first derived class."
3034 :help "Show the base class of this class" 3034 :help "Show the base class of this class"
3035 :active t] 3035 :active t]
3036 ["Down" ebrowse-switch-member-buffer-to-derived-class 3036 ["Down" ebrowse-switch-member-buffer-to-derived-class
3037 :help "Show a derived class class of this class" 3037 :help "Show a derived class of this class"
3038 :active t] 3038 :active t]
3039 ["Next Sibling" ebrowse-switch-member-buffer-to-next-sibling-class 3039 ["Next Sibling" ebrowse-switch-member-buffer-to-next-sibling-class
3040 :help "Show the next sibling class" 3040 :help "Show the next sibling class"
diff --git a/lisp/progmodes/flymake-proc.el b/lisp/progmodes/flymake-proc.el
index 359cffd797e..f504a1c21a8 100644
--- a/lisp/progmodes/flymake-proc.el
+++ b/lisp/progmodes/flymake-proc.el
@@ -179,13 +179,13 @@ from compile.el")
179 "Predicate matching against diagnostic text to detect its type. 179 "Predicate matching against diagnostic text to detect its type.
180Takes a single argument, the diagnostic's text and should return 180Takes a single argument, the diagnostic's text and should return
181a value suitable for indexing 181a value suitable for indexing
182`flymake-diagnostic-types-alist' (which see). If the returned 182`flymake-diagnostic-types-alist' (which see). If the returned
183value is nil, a type of `:error' is assumed. For some backward 183value is nil, a type of `:error' is assumed. For some backward
184compatibility, if a non-nil value is returned that that doesn't 184compatibility, if a non-nil value is returned that doesn't
185index that alist, a type of `:warning' is assumed. 185index that alist, a type of `:warning' is assumed.
186 186
187Instead of a function, it can also be a string, a regular 187Instead of a function, it can also be a string, a regular
188expression. A match indicates `:warning' type, otherwise 188expression. A match indicates `:warning' type, otherwise
189`:error'") 189`:error'")
190 190
191(defun flymake-proc-default-guess (text) 191(defun flymake-proc-default-guess (text)
diff --git a/lisp/progmodes/gdb-mi.el b/lisp/progmodes/gdb-mi.el
index 7723f700925..28d1974893d 100644
--- a/lisp/progmodes/gdb-mi.el
+++ b/lisp/progmodes/gdb-mi.el
@@ -2374,7 +2374,7 @@ file names include non-ASCII characters."
2374;; sequences are not split between chunks of output of the GDB process 2374;; sequences are not split between chunks of output of the GDB process
2375;; due to buffering, and arrive together. Finally, if some string 2375;; due to buffering, and arrive together. Finally, if some string
2376;; included literal \nnn strings (as opposed to non-ASCII characters 2376;; included literal \nnn strings (as opposed to non-ASCII characters
2377;; converted by by GDB/MI to octal escapes), this decoding will mangle 2377;; converted by GDB/MI to octal escapes), this decoding will mangle
2378;; those strings. When/if GDB acquires the ability to not 2378;; those strings. When/if GDB acquires the ability to not
2379;; escape-protect non-ASCII characters in its MI output, this kludge 2379;; escape-protect non-ASCII characters in its MI output, this kludge
2380;; should be removed. 2380;; should be removed.
diff --git a/lisp/progmodes/gud.el b/lisp/progmodes/gud.el
index 3ef1d90ab58..7d044b294da 100644
--- a/lisp/progmodes/gud.el
+++ b/lisp/progmodes/gud.el
@@ -1830,7 +1830,7 @@ and source-file directory for your debugger."
1830;; 1830;;
1831;; Type M-n to step over the current line and M-s to step into it. That, 1831;; Type M-n to step over the current line and M-s to step into it. That,
1832;; along with the JDB 'help' command should get you started. The 'quit' 1832;; along with the JDB 'help' command should get you started. The 'quit'
1833;; JDB command will get out out of the debugger. There is some truly 1833;; JDB command will get out of the debugger. There is some truly
1834;; pathetic JDB documentation available at: 1834;; pathetic JDB documentation available at:
1835;; 1835;;
1836;; http://java.sun.com/products/jdk/1.1/debugging/ 1836;; http://java.sun.com/products/jdk/1.1/debugging/
diff --git a/lisp/progmodes/hideif.el b/lisp/progmodes/hideif.el
index 39744833255..b1a2a35d55f 100644
--- a/lisp/progmodes/hideif.el
+++ b/lisp/progmodes/hideif.el
@@ -1657,8 +1657,8 @@ first arg will be `hif-etc'."
1657 1657
1658;; The original version of hideif evaluates the macro early and store the 1658;; The original version of hideif evaluates the macro early and store the
1659;; final values for the defined macro into the symbol database (aka 1659;; final values for the defined macro into the symbol database (aka
1660;; `hide-ifdef-env'). The evaluation process is "strings -> tokens -> parsed 1660;; `hide-ifdef-env'). The evaluation process is "strings -> tokens -> parsed
1661;; tree -> [value]". (The square bracket refers to what's stored in in our 1661;; tree -> [value]". (The square bracket refers to what's stored in our
1662;; `hide-ifdef-env'.) 1662;; `hide-ifdef-env'.)
1663;; 1663;;
1664;; This forbids the evaluation of an argumented macro since the parameters 1664;; This forbids the evaluation of an argumented macro since the parameters
diff --git a/lisp/progmodes/perl-mode.el b/lisp/progmodes/perl-mode.el
index 2f9a4c3db55..24b934ce6c2 100644
--- a/lisp/progmodes/perl-mode.el
+++ b/lisp/progmodes/perl-mode.el
@@ -678,7 +678,9 @@ Turning on Perl mode runs the normal hook `perl-mode-hook'."
678(define-obsolete-function-alias 'electric-perl-terminator 678(define-obsolete-function-alias 'electric-perl-terminator
679 'perl-electric-terminator "22.1") 679 'perl-electric-terminator "22.1")
680(defun perl-electric-noindent-p (_char) 680(defun perl-electric-noindent-p (_char)
681 (unless (eolp) 'no-indent)) 681 ;; To reproduce the old behavior, ;, {, }, and : are made electric, but
682 ;; we only want them to be electric at EOL.
683 (unless (or (bolp) (eolp)) 'no-indent))
682 684
683(defun perl-electric-terminator (arg) 685(defun perl-electric-terminator (arg)
684 "Insert character and maybe adjust indentation. 686 "Insert character and maybe adjust indentation.
diff --git a/lisp/progmodes/xref.el b/lisp/progmodes/xref.el
index 80cdcb3f18b..3dbf65ef6f5 100644
--- a/lisp/progmodes/xref.el
+++ b/lisp/progmodes/xref.el
@@ -102,7 +102,7 @@ This is typically the filename.")
102;;;; Commonly needed location classes are defined here: 102;;;; Commonly needed location classes are defined here:
103 103
104;; FIXME: might be useful to have an optional "hint" i.e. a string to 104;; FIXME: might be useful to have an optional "hint" i.e. a string to
105;; search for in case the line number is sightly out of date. 105;; search for in case the line number is slightly out of date.
106(defclass xref-file-location (xref-location) 106(defclass xref-file-location (xref-location)
107 ((file :type string :initarg :file) 107 ((file :type string :initarg :file)
108 (line :type fixnum :initarg :line :reader xref-location-line) 108 (line :type fixnum :initarg :line :reader xref-location-line)
@@ -254,8 +254,7 @@ find a search tool; by default, this uses \"find | grep\" in the
254 (project-external-roots pr))))) 254 (project-external-roots pr)))))
255 255
256(cl-defgeneric xref-backend-apropos (backend pattern) 256(cl-defgeneric xref-backend-apropos (backend pattern)
257 "Find all symbols that match PATTERN. 257 "Find all symbols that match regexp PATTERN.")
258PATTERN is a regexp")
259 258
260(cl-defgeneric xref-backend-identifier-at-point (_backend) 259(cl-defgeneric xref-backend-identifier-at-point (_backend)
261 "Return the relevant identifier at point. 260 "Return the relevant identifier at point.
diff --git a/lisp/progmodes/xscheme.el b/lisp/progmodes/xscheme.el
index 4939649b999..16bf01eeaa8 100644
--- a/lisp/progmodes/xscheme.el
+++ b/lisp/progmodes/xscheme.el
@@ -85,8 +85,7 @@ reading-type received an altmode but nothing else
85reading-string reading prompt string") 85reading-string reading prompt string")
86 86
87(defvar-local xscheme-allow-output-p t 87(defvar-local xscheme-allow-output-p t
88 "This variable, if nil, prevents output from the scheme process 88 "Non-nil stops scheme process output being inserted in the process buffer.")
89from being inserted into the process-buffer.")
90 89
91(defvar-local xscheme-prompt "" 90(defvar-local xscheme-prompt ""
92 "The current scheme prompt string.") 91 "The current scheme prompt string.")
@@ -300,7 +299,7 @@ With argument, asks for a command line."
300 299
301(defun scheme-interaction-mode (&optional preserve) 300(defun scheme-interaction-mode (&optional preserve)
302 "Major mode for interacting with an inferior MIT Scheme process. 301 "Major mode for interacting with an inferior MIT Scheme process.
303Like scheme-mode except that: 302Like `scheme-mode' except that:
304 303
305\\[xscheme-send-previous-expression] sends the expression before point to the Scheme process as input 304\\[xscheme-send-previous-expression] sends the expression before point to the Scheme process as input
306\\[xscheme-yank-pop] yanks an expression previously sent to Scheme 305\\[xscheme-yank-pop] yanks an expression previously sent to Scheme
@@ -315,7 +314,7 @@ in the minibuffer. If an error occurs, the process buffer will
315automatically pop up to show you the error message. 314automatically pop up to show you the error message.
316 315
317While the Scheme process is running, the mode lines of all buffers in 316While the Scheme process is running, the mode lines of all buffers in
318scheme-mode are modified to show the state of the process. The 317`scheme-mode' are modified to show the state of the process. The
319possible states and their meanings are: 318possible states and their meanings are:
320 319
321input waiting for input 320input waiting for input
@@ -353,13 +352,13 @@ Some possible command interpreter types and their meanings are:
353 352
354Starting with release 6.2 of Scheme, the latter two types of command 353Starting with release 6.2 of Scheme, the latter two types of command
355interpreters will change the major mode of the Scheme process buffer 354interpreters will change the major mode of the Scheme process buffer
356to scheme-debugger-mode , in which the evaluation commands are 355to `scheme-debugger-mode', in which the evaluation commands are
357disabled, and the keys which normally self insert instead send 356disabled, and the keys which normally self insert instead send
358themselves to the Scheme process. The command character ? will list 357themselves to the Scheme process. The command character ? will list
359the available commands. 358the available commands.
360 359
361For older releases of Scheme, the major mode will be be 360For older releases of Scheme, the major mode will be
362scheme-interaction-mode , and the command characters must be sent as 361`scheme-interaction-mode', and the command characters must be sent as
363if they were expressions. 362if they were expressions.
364 363
365Commands: 364Commands:
@@ -367,10 +366,8 @@ Delete converts tabs to spaces as it moves back.
367Blank lines separate paragraphs. Semicolons start comments. 366Blank lines separate paragraphs. Semicolons start comments.
368\\{scheme-interaction-mode-map} 367\\{scheme-interaction-mode-map}
369 368
370Entry to this mode calls the value of scheme-interaction-mode-hook 369Entry to this mode runs `scheme-mode-hook' and then
371with no args, if that value is non-nil. 370`scheme-interaction-mode-hook'."
372 Likewise with the value of scheme-mode-hook.
373 scheme-interaction-mode-hook is called after scheme-mode-hook."
374 ;; FIXME: Use define-derived-mode. 371 ;; FIXME: Use define-derived-mode.
375 (interactive "P") 372 (interactive "P")
376 (if (not preserve) 373 (if (not preserve)
@@ -456,7 +453,7 @@ with no args, if that value is non-nil.
456 453
457(defun scheme-debugger-mode () 454(defun scheme-debugger-mode ()
458 "Major mode for executing the Scheme debugger. 455 "Major mode for executing the Scheme debugger.
459Like scheme-mode except that the evaluation commands 456Like `scheme-mode' except that the evaluation commands
460are disabled, and characters that would normally be self inserting are 457are disabled, and characters that would normally be self inserting are
461sent to the Scheme process instead. Typing ? will show you which 458sent to the Scheme process instead. Typing ? will show you which
462characters perform useful functions. 459characters perform useful functions.
@@ -593,7 +590,7 @@ See also the commands \\[xscheme-yank-pop] and \\[xscheme-yank-push]."
593 "Insert or replace a just-yanked expression with an older expression. 590 "Insert or replace a just-yanked expression with an older expression.
594If the previous command was not a yank, it yanks. 591If the previous command was not a yank, it yanks.
595Otherwise, the region contains a stretch of reinserted 592Otherwise, the region contains a stretch of reinserted
596expression. yank-pop deletes that text and inserts in its 593expression. `yank-pop' deletes that text and inserts in its
597place a different expression. 594place a different expression.
598 595
599With no argument, the next older expression is inserted. 596With no argument, the next older expression is inserted.
@@ -620,7 +617,7 @@ comes the newest one."
620 "Insert or replace a just-yanked expression with a more recent expression. 617 "Insert or replace a just-yanked expression with a more recent expression.
621If the previous command was not a yank, it yanks. 618If the previous command was not a yank, it yanks.
622Otherwise, the region contains a stretch of reinserted 619Otherwise, the region contains a stretch of reinserted
623expression. yank-pop deletes that text and inserts in its 620expression. `yank-pop' deletes that text and inserts in its
624place a different expression. 621place a different expression.
625 622
626With no argument, the next more recent expression is inserted. 623With no argument, the next more recent expression is inserted.
diff --git a/lisp/select.el b/lisp/select.el
index d950d705934..54acb5292e6 100644
--- a/lisp/select.el
+++ b/lisp/select.el
@@ -98,7 +98,7 @@ if applicable (i.e. under X11)."
98 'select-enable-clipboard "25.1") 98 'select-enable-clipboard "25.1")
99 99
100(defcustom select-enable-primary nil 100(defcustom select-enable-primary nil
101 "Non-nil means cutting and pasting uses the primary selection 101 "Non-nil means cutting and pasting uses the primary selection.
102The existence of a primary selection depends on the underlying GUI you use. 102The existence of a primary selection depends on the underlying GUI you use.
103E.g. it doesn't exist under MS-Windows." 103E.g. it doesn't exist under MS-Windows."
104 :type 'boolean 104 :type 'boolean
diff --git a/lisp/simple.el b/lisp/simple.el
index 12d65e50c34..372e153d626 100644
--- a/lisp/simple.el
+++ b/lisp/simple.el
@@ -5965,7 +5965,7 @@ Used internally by `line-move-visual'.")
5965 "Non-nil means commands that move by lines ignore invisible newlines. 5965 "Non-nil means commands that move by lines ignore invisible newlines.
5966When this option is non-nil, \\[next-line], \\[previous-line], \\[move-end-of-line], and \\[move-beginning-of-line] behave 5966When this option is non-nil, \\[next-line], \\[previous-line], \\[move-end-of-line], and \\[move-beginning-of-line] behave
5967as if newlines that are invisible didn't exist, and count 5967as if newlines that are invisible didn't exist, and count
5968only visible newlines. Thus, moving across across 2 newlines 5968only visible newlines. Thus, moving across 2 newlines
5969one of which is invisible will be counted as a one-line move. 5969one of which is invisible will be counted as a one-line move.
5970Also, a non-nil value causes invisible text to be ignored when 5970Also, a non-nil value causes invisible text to be ignored when
5971counting columns for the purposes of keeping point in the same 5971counting columns for the purposes of keeping point in the same
@@ -6125,7 +6125,7 @@ The value is a floating-point number."
6125 (or (null rbot) (= rbot 0))) 6125 (or (null rbot) (= rbot 0)))
6126 nil) 6126 nil)
6127 ;; If cursor is not in the bottom scroll margin, and the 6127 ;; If cursor is not in the bottom scroll margin, and the
6128 ;; current line is is not too tall, move forward. 6128 ;; current line is not too tall, move forward.
6129 ((and (or (null this-height) (<= this-height winh)) 6129 ((and (or (null this-height) (<= this-height winh))
6130 vpos 6130 vpos
6131 (> vpos 0) 6131 (> vpos 0)
diff --git a/lisp/sort.el b/lisp/sort.el
index 17f2cb0167e..1dee6ef6c56 100644
--- a/lisp/sort.el
+++ b/lisp/sort.el
@@ -406,7 +406,7 @@ the sort order."
406 406
407;;;###autoload 407;;;###autoload
408(defun sort-regexp-fields (reverse record-regexp key-regexp beg end) 408(defun sort-regexp-fields (reverse record-regexp key-regexp beg end)
409 "Sort the text in the region region lexicographically. 409 "Sort the text in the region lexicographically.
410If called interactively, prompt for two regular expressions, 410If called interactively, prompt for two regular expressions,
411RECORD-REGEXP and KEY-REGEXP. 411RECORD-REGEXP and KEY-REGEXP.
412 412
diff --git a/lisp/subr.el b/lisp/subr.el
index b6b55b53def..1f68c25c888 100644
--- a/lisp/subr.el
+++ b/lisp/subr.el
@@ -2445,7 +2445,7 @@ floating point support."
2445 nil) 2445 nil)
2446 ((or (<= seconds 0) 2446 ((or (<= seconds 0)
2447 ;; We are going to call read-event below, which will record 2447 ;; We are going to call read-event below, which will record
2448 ;; the the next key as part of the macro, even if that key 2448 ;; the next key as part of the macro, even if that key
2449 ;; invokes kmacro-end-macro, so if we are recording a macro, 2449 ;; invokes kmacro-end-macro, so if we are recording a macro,
2450 ;; the macro will recursively call itself. In addition, when 2450 ;; the macro will recursively call itself. In addition, when
2451 ;; that key is removed from unread-command-events, it will be 2451 ;; that key is removed from unread-command-events, it will be
diff --git a/lisp/textmodes/dns-mode.el b/lisp/textmodes/dns-mode.el
index df03beaa9a3..6b668a62674 100644
--- a/lisp/textmodes/dns-mode.el
+++ b/lisp/textmodes/dns-mode.el
@@ -35,6 +35,7 @@
35;; RFC 5155, "DNS Security (DNSSEC) Hashed Authenticated Denial of Existence" 35;; RFC 5155, "DNS Security (DNSSEC) Hashed Authenticated Denial of Existence"
36;; RFC 6698, "The DNS-Based Authentication of Named Entities (DANE) 36;; RFC 6698, "The DNS-Based Authentication of Named Entities (DANE)
37;; Transport Layer Security (TLS) Protocol: TLSA" 37;; Transport Layer Security (TLS) Protocol: TLSA"
38;; RFC 6844, "DNS Certification Authority Authorization (CAA) Resource Record"
38 39
39;;; Release history: 40;;; Release history:
40 41
@@ -62,7 +63,7 @@
62 "A6" "DNAME" "SINK" "OPT" "APL" "DS" "SSHFP" 63 "A6" "DNAME" "SINK" "OPT" "APL" "DS" "SSHFP"
63 "RRSIG" "NSEC" "DNSKEY" "UINFO" "UID" "GID" 64 "RRSIG" "NSEC" "DNSKEY" "UINFO" "UID" "GID"
64 "UNSPEC" "TKEY" "TSIG" "IXFR" "AXFR" "MAILB" 65 "UNSPEC" "TKEY" "TSIG" "IXFR" "AXFR" "MAILB"
65 "MAILA" "TLSA" "NSEC3") 66 "MAILA" "TLSA" "NSEC3" "CAA")
66 "List of strings with known DNS types.") 67 "List of strings with known DNS types.")
67 68
68(defface dns-mode-control-entity '((t :inherit font-lock-keyword-face)) 69(defface dns-mode-control-entity '((t :inherit font-lock-keyword-face))
diff --git a/lisp/textmodes/mhtml-mode.el b/lisp/textmodes/mhtml-mode.el
index b6cd1572fb7..58541677509 100644
--- a/lisp/textmodes/mhtml-mode.el
+++ b/lisp/textmodes/mhtml-mode.el
@@ -75,11 +75,11 @@ code();
75 75
76(defconst mhtml--crucial-variable-prefix 76(defconst mhtml--crucial-variable-prefix
77 (regexp-opt '("comment-" "uncomment-" "electric-indent-" 77 (regexp-opt '("comment-" "uncomment-" "electric-indent-"
78 "smie-" "forward-sexp-function")) 78 "smie-" "forward-sexp-function" "completion-" "major-mode"))
79 "Regexp matching the prefix of \"crucial\" buffer-locals we want to capture.") 79 "Regexp matching the prefix of \"crucial\" buffer-locals we want to capture.")
80 80
81(defconst mhtml--variable-prefix 81(defconst mhtml--variable-prefix
82 (regexp-opt '("font-lock-" "indent-line-function" "major-mode")) 82 (regexp-opt '("font-lock-" "indent-line-function"))
83 "Regexp matching the prefix of buffer-locals we want to capture.") 83 "Regexp matching the prefix of buffer-locals we want to capture.")
84 84
85(defun mhtml--construct-submode (mode &rest args) 85(defun mhtml--construct-submode (mode &rest args)
@@ -149,7 +149,12 @@ code();
149 149
150(defun mhtml--submode-lighter () 150(defun mhtml--submode-lighter ()
151 "Mode-line lighter indicating the current submode." 151 "Mode-line lighter indicating the current submode."
152 (let ((submode (get-text-property (point) 'mhtml-submode))) 152 ;; The end of the buffer has no text properties, so in this case
153 ;; back up one character, if possible.
154 (let* ((where (if (and (eobp) (not (bobp)))
155 (1- (point))
156 (point)))
157 (submode (get-text-property where 'mhtml-submode)))
153 (if submode 158 (if submode
154 (mhtml--submode-name submode) 159 (mhtml--submode-name submode)
155 ""))) 160 "")))
@@ -288,9 +293,7 @@ can function properly.")
288 (unless (bobp) 293 (unless (bobp)
289 (let ((submode (get-text-property (1- (point)) 'mhtml-submode))) 294 (let ((submode (get-text-property (1- (point)) 'mhtml-submode)))
290 (if submode 295 (if submode
291 ;; Don't search in a comment or string 296 (mhtml--syntax-propertize-submode submode end)
292 (unless (syntax-ppss-context (syntax-ppss))
293 (mhtml--syntax-propertize-submode submode end))
294 ;; No submode, so do what sgml-mode does. 297 ;; No submode, so do what sgml-mode does.
295 (sgml-syntax-propertize-inside end)))) 298 (sgml-syntax-propertize-inside end))))
296 (funcall 299 (funcall
diff --git a/lisp/textmodes/tex-mode.el b/lisp/textmodes/tex-mode.el
index 948743e8e5b..3da6e4e1124 100644
--- a/lisp/textmodes/tex-mode.el
+++ b/lisp/textmodes/tex-mode.el
@@ -55,6 +55,11 @@
55 :prefix "tex-" 55 :prefix "tex-"
56 :group 'tex) 56 :group 'tex)
57 57
58(defgroup tex-flymake nil
59 "Flymake backend for linting TeX files."
60 :prefix "tex-"
61 :group 'tex)
62
58;;;###autoload 63;;;###autoload
59(defcustom tex-shell-file-name nil 64(defcustom tex-shell-file-name nil
60 "If non-nil, the shell file name to run in the subshell used to run TeX." 65 "If non-nil, the shell file name to run in the subshell used to run TeX."
@@ -259,6 +264,17 @@ measured relative to that of the normal text."
259 (float :tag "Superscript")) 264 (float :tag "Superscript"))
260 :version "23.1") 265 :version "23.1")
261 266
267(defcustom tex-chktex-program "chktex"
268 "ChkTeX executable to use for linting TeX files."
269 :type 'string
270 :link '(url-link "man:chktex(1)")
271 :group 'tex-flymake)
272
273(defcustom tex-chktex-extra-flags nil
274 "Extra command line flags for `tex-chktex-program'."
275 :type '(repeat string)
276 :group 'tex-flymake)
277
262(defvar tex-last-temp-file nil 278(defvar tex-last-temp-file nil
263 "Latest temporary file generated by \\[tex-region] and \\[tex-buffer]. 279 "Latest temporary file generated by \\[tex-region] and \\[tex-buffer].
264Deleted when the \\[tex-region] or \\[tex-buffer] is next run, or when the 280Deleted when the \\[tex-region] or \\[tex-buffer] is next run, or when the
@@ -1154,6 +1170,7 @@ subshell is initiated, `tex-shell-hook' is run."
1154 (setq-local fill-indent-according-to-mode t) 1170 (setq-local fill-indent-according-to-mode t)
1155 (add-hook 'completion-at-point-functions 1171 (add-hook 'completion-at-point-functions
1156 #'latex-complete-data nil 'local) 1172 #'latex-complete-data nil 'local)
1173 (add-hook 'flymake-diagnostic-functions 'tex-chktex nil t)
1157 (setq-local outline-regexp latex-outline-regexp) 1174 (setq-local outline-regexp latex-outline-regexp)
1158 (setq-local outline-level #'latex-outline-level) 1175 (setq-local outline-level #'latex-outline-level)
1159 (setq-local forward-sexp-function #'latex-forward-sexp) 1176 (setq-local forward-sexp-function #'latex-forward-sexp)
@@ -3465,6 +3482,52 @@ There might be text before point."
3465 ;; Don't compose inside verbatim blocks. 3482 ;; Don't compose inside verbatim blocks.
3466 (eq 2 (nth 7 (syntax-ppss)))))))) 3483 (eq 2 (nth 7 (syntax-ppss))))))))
3467 3484
3485
3486;;; Flymake support
3487
3488(defvar-local tex-chktex--process nil)
3489
3490(defun tex-chktex-command ()
3491 "Return a list of command arguments for invoking ChkTeX."
3492 `(,tex-chktex-program ,@tex-chktex-extra-flags
3493 "--quiet" "--verbosity=0" "--inputfiles"))
3494
3495(defun tex-chktex (report-fn &rest _args)
3496 "Flymake backend for linting TeX buffers with ChkTeX."
3497 (unless (executable-find tex-chktex-program)
3498 (error "Cannot find a suitable TeX checker"))
3499 (when (process-live-p tex-chktex--process)
3500 (kill-process tex-chktex--process))
3501 (let ((source (current-buffer))
3502 (re "^stdin:\\([0-9]+\\):\\([0-9]+\\):\\([0-9]+\\):\\(.*\\)$"))
3503 (save-restriction
3504 (widen)
3505 (setq tex-chktex--process
3506 (make-process
3507 :name "tex-chktex"
3508 :buffer (generate-new-buffer "*tex-chktex*")
3509 :command (tex-chktex-command)
3510 :noquery t :connection-type 'pipe
3511 :sentinel
3512 (lambda (process _event)
3513 (when (eq (process-status process) 'exit)
3514 (unwind-protect
3515 (when (eq process tex-chktex--process)
3516 (with-current-buffer (process-buffer process)
3517 (goto-char (point-min))
3518 (cl-loop
3519 while (search-forward-regexp re nil t)
3520 for msg = (match-string 4)
3521 for line = (string-to-number (match-string 1))
3522 for col = (string-to-number (match-string 2))
3523 for (beg . end) = (flymake-diag-region source line col)
3524 collect (flymake-make-diagnostic source beg end :warning msg)
3525 into diags
3526 finally (funcall report-fn diags))))
3527 (kill-buffer (process-buffer process)))))))
3528 (process-send-region tex-chktex--process (point-min) (point-max))
3529 (process-send-eof tex-chktex--process))))
3530
3468(run-hooks 'tex-mode-load-hook) 3531(run-hooks 'tex-mode-load-hook)
3469 3532
3470(provide 'tex-mode) 3533(provide 'tex-mode)
diff --git a/lisp/textmodes/texinfmt.el b/lisp/textmodes/texinfmt.el
index 647ae1b4300..51f0659bf31 100644
--- a/lisp/textmodes/texinfmt.el
+++ b/lisp/textmodes/texinfmt.el
@@ -2022,7 +2022,7 @@ commands that are defined in texinfo.tex for printed output.
2022 (push (- end-of-template start-of-template) 2022 (push (- end-of-template start-of-template)
2023 texinfo-multitable-width-list) 2023 texinfo-multitable-width-list)
2024 ;; Remove carriage return from within a template, if any. 2024 ;; Remove carriage return from within a template, if any.
2025 ;; This helps those those who want to use more than 2025 ;; This helps those who want to use more than
2026 ;; one line's worth of words in @multitable line. 2026 ;; one line's worth of words in @multitable line.
2027 (narrow-to-region start-of-template end-of-template) 2027 (narrow-to-region start-of-template end-of-template)
2028 (goto-char (point-min)) 2028 (goto-char (point-min))
diff --git a/lisp/url/url-queue.el b/lisp/url/url-queue.el
index 06a77404b58..84da6f60260 100644
--- a/lisp/url/url-queue.el
+++ b/lisp/url/url-queue.el
@@ -177,7 +177,7 @@ The variable `url-queue-timeout' sets a timeout."
177 (with-current-buffer 177 (with-current-buffer
178 (if (and (bufferp (url-queue-buffer job)) 178 (if (and (bufferp (url-queue-buffer job))
179 (buffer-live-p (url-queue-buffer job))) 179 (buffer-live-p (url-queue-buffer job)))
180 ;; Use the (partially filled) process buffer it it exists. 180 ;; Use the (partially filled) process buffer if it exists.
181 (url-queue-buffer job) 181 (url-queue-buffer job)
182 ;; If not, just create a new buffer, which will probably be 182 ;; If not, just create a new buffer, which will probably be
183 ;; killed again by the caller. 183 ;; killed again by the caller.
diff --git a/lisp/vc/ediff-wind.el b/lisp/vc/ediff-wind.el
index 45497688487..79ccc6d32db 100644
--- a/lisp/vc/ediff-wind.el
+++ b/lisp/vc/ediff-wind.el
@@ -181,6 +181,8 @@ In this case, Ediff will use those frames to display these buffers."
181 '(visibility . nil) 181 '(visibility . nil)
182 ;; make initial frame small to avoid distraction 182 ;; make initial frame small to avoid distraction
183 '(width . 1) '(height . 1) 183 '(width . 1) '(height . 1)
184 ;; Fullscreen control frames don't make sense (Bug#29026).
185 '(fullscreen . nil)
184 ;; this blocks queries from window manager as to where to put 186 ;; this blocks queries from window manager as to where to put
185 ;; ediff's control frame. we put the frame outside the display, 187 ;; ediff's control frame. we put the frame outside the display,
186 ;; so the initial frame won't jump all over the screen 188 ;; so the initial frame won't jump all over the screen
diff --git a/lisp/vc/vc.el b/lisp/vc/vc.el
index b80f0e69491..211feddc55d 100644
--- a/lisp/vc/vc.el
+++ b/lisp/vc/vc.el
@@ -2377,6 +2377,7 @@ When called interactively with a prefix argument, prompt for LIMIT."
2377 2377
2378;;;###autoload 2378;;;###autoload
2379(defun vc-print-branch-log (branch) 2379(defun vc-print-branch-log (branch)
2380 "Show the change log for BRANCH in a window."
2380 (interactive 2381 (interactive
2381 (list 2382 (list
2382 (vc-read-revision "Branch to log: "))) 2383 (vc-read-revision "Branch to log: ")))
diff --git a/lisp/whitespace.el b/lisp/whitespace.el
index 629c1063d0b..32a90ba485b 100644
--- a/lisp/whitespace.el
+++ b/lisp/whitespace.el
@@ -495,7 +495,8 @@ Used when `whitespace-style' includes the value `spaces'.")
495(defvar whitespace-tab 'whitespace-tab 495(defvar whitespace-tab 'whitespace-tab
496 "Symbol face used to visualize TAB. 496 "Symbol face used to visualize TAB.
497Used when `whitespace-style' includes the value `tabs'.") 497Used when `whitespace-style' includes the value `tabs'.")
498(make-obsolete-variable 'whitespace-tab "use the face instead." "24.4") 498(make-obsolete-variable 'whitespace-tab
499 "customize the face `whitespace-tab' instead." "24.4")
499 500
500(defface whitespace-tab 501(defface whitespace-tab
501 '((((class color) (background dark)) 502 '((((class color) (background dark))
diff --git a/lisp/window.el b/lisp/window.el
index c0a9ecd093c..f87294ceb15 100644
--- a/lisp/window.el
+++ b/lisp/window.el
@@ -2583,7 +2583,7 @@ and no others."
2583 2583
2584(defun minibuffer-window-active-p (window) 2584(defun minibuffer-window-active-p (window)
2585 "Return t if WINDOW is the currently active minibuffer window." 2585 "Return t if WINDOW is the currently active minibuffer window."
2586 (eq window (active-minibuffer-window))) 2586 (and (window-live-p window) (eq window (active-minibuffer-window))))
2587 2587
2588(defun count-windows (&optional minibuf) 2588(defun count-windows (&optional minibuf)
2589 "Return the number of live windows on the selected frame. 2589 "Return the number of live windows on the selected frame.
@@ -8021,7 +8021,7 @@ parameters of FRAME."
8021 (- (nth 3 outer-edges) (nth 1 outer-edges)) 8021 (- (nth 3 outer-edges) (nth 1 outer-edges))
8022 ;; Another poor guess. 8022 ;; Another poor guess.
8023 (frame-pixel-height frame))) 8023 (frame-pixel-height frame)))
8024 ;; The text size of of FRAME. Needed to specify FRAME's 8024 ;; The text size of FRAME. Needed to specify FRAME's
8025 ;; text size after the root window's body's new sizes have 8025 ;; text size after the root window's body's new sizes have
8026 ;; been calculated. 8026 ;; been calculated.
8027 (text-width (frame-text-width frame)) 8027 (text-width (frame-text-width frame))
@@ -8678,7 +8678,7 @@ result is a list containing only the selected window."
8678(make-variable-buffer-local 'move-to-window-group-line-function) 8678(make-variable-buffer-local 'move-to-window-group-line-function)
8679(put 'move-to-window-group-line-function 'permanent-local t) 8679(put 'move-to-window-group-line-function 'permanent-local t)
8680(defun move-to-window-group-line (arg) 8680(defun move-to-window-group-line (arg)
8681 "Position point relative to the the current group of windows. 8681 "Position point relative to the current group of windows.
8682When a grouping mode (such as Follow Mode) is not active, this 8682When a grouping mode (such as Follow Mode) is not active, this
8683function is identical to `move-to-window-line'. 8683function is identical to `move-to-window-line'.
8684 8684