aboutsummaryrefslogtreecommitdiffstats
path: root/lisp
diff options
context:
space:
mode:
authorJan D2015-05-23 12:28:54 +0200
committerJan D2015-05-23 12:28:54 +0200
commit6aaa489dc112f51f6045f79b37cb78dd513e398f (patch)
treea34eb6ad435ab877848f7464374570549ca55ec5 /lisp
parentee14727ce033bae3bc11af35e7843604e5a5e635 (diff)
parent7ac84a2570e1268cc040fcd529508307b2b22c01 (diff)
downloademacs-6aaa489dc112f51f6045f79b37cb78dd513e398f.tar.gz
emacs-6aaa489dc112f51f6045f79b37cb78dd513e398f.zip
Merge branch 'master' into cairo
Diffstat (limited to 'lisp')
-rw-r--r--lisp/ChangeLog.163
-rw-r--r--lisp/allout-widgets.el2
-rw-r--r--lisp/allout.el4
-rw-r--r--lisp/autorevert.el37
-rw-r--r--lisp/calc/calc-aent.el2
-rw-r--r--lisp/calc/calc-yank.el2
-rw-r--r--lisp/calc/calc.el2
-rw-r--r--lisp/calculator.el4
-rw-r--r--lisp/calendar/calendar.el2
-rw-r--r--lisp/calendar/diary-lib.el12
-rw-r--r--lisp/calendar/solar.el2
-rw-r--r--lisp/calendar/todo-mode.el2
-rw-r--r--lisp/cedet/ede/auto.el12
-rw-r--r--lisp/cedet/ede/files.el2
-rw-r--r--lisp/cedet/semantic/mru-bookmark.el2
-rw-r--r--lisp/cedet/semantic/symref.el4
-rw-r--r--lisp/cedet/semantic/tag.el4
-rw-r--r--lisp/cedet/srecode/cpp.el2
-rw-r--r--lisp/cedet/srecode/texi.el10
-rw-r--r--lisp/cus-edit.el2
-rw-r--r--lisp/dired-aux.el2
-rw-r--r--lisp/dired.el2
-rw-r--r--lisp/dirtrack.el2
-rw-r--r--lisp/emacs-lisp/advice.el3
-rw-r--r--lisp/emacs-lisp/autoload.el1
-rw-r--r--lisp/emacs-lisp/byte-opt.el4
-rw-r--r--lisp/emacs-lisp/bytecomp.el2
-rw-r--r--lisp/emacs-lisp/check-declare.el2
-rw-r--r--lisp/emacs-lisp/checkdoc.el15
-rw-r--r--lisp/emacs-lisp/cl-generic.el47
-rw-r--r--lisp/emacs-lisp/cl-indent.el6
-rw-r--r--lisp/emacs-lisp/cl-macs.el1
-rw-r--r--lisp/emacs-lisp/debug.el2
-rw-r--r--lisp/emacs-lisp/edebug.el2
-rw-r--r--lisp/emacs-lisp/elint.el2
-rw-r--r--lisp/emacs-lisp/generator.el10
-rw-r--r--lisp/emacs-lisp/lisp-mode.el482
-rw-r--r--lisp/emacs-lisp/lisp.el5
-rw-r--r--lisp/emacs-lisp/package.el259
-rw-r--r--lisp/emacs-lisp/subr-x.el4
-rw-r--r--lisp/emacs-lisp/syntax.el2
-rw-r--r--lisp/emulation/viper-util.el2
-rw-r--r--lisp/erc/erc-backend.el2
-rw-r--r--lisp/erc/erc-ezbounce.el2
-rw-r--r--lisp/erc/erc-pcomplete.el2
-rw-r--r--lisp/erc/erc.el53
-rw-r--r--lisp/eshell/em-term.el39
-rw-r--r--lisp/eshell/esh-arg.el41
-rw-r--r--lisp/eshell/esh-io.el48
-rw-r--r--lisp/eshell/esh-mode.el2
-rw-r--r--lisp/eshell/esh-util.el2
-rw-r--r--lisp/face-remap.el2
-rw-r--r--lisp/facemenu.el2
-rw-r--r--lisp/faces.el8
-rw-r--r--lisp/files.el6
-rw-r--r--lisp/forms.el2
-rw-r--r--lisp/gnus/canlock.el5
-rw-r--r--lisp/gnus/deuglify.el10
-rw-r--r--lisp/gnus/gnus-art.el4
-rw-r--r--lisp/gnus/gnus-cus.el2
-rw-r--r--lisp/gnus/gnus-group.el2
-rw-r--r--lisp/gnus/gnus-sum.el2
-rw-r--r--lisp/gnus/message.el2
-rw-r--r--lisp/gnus/nndoc.el2
-rw-r--r--lisp/gnus/nnmaildir.el4
-rw-r--r--lisp/gnus/rfc2047.el2
-rw-r--r--lisp/hippie-exp.el4
-rw-r--r--lisp/ibuffer.el4
-rw-r--r--lisp/icomplete.el16
-rw-r--r--lisp/ido.el4
-rw-r--r--lisp/ielm.el2
-rw-r--r--lisp/info.el2
-rw-r--r--lisp/language/tv-util.el2
-rw-r--r--lisp/ldefs-boot.el2
-rw-r--r--lisp/leim/quail/cyrillic.el4
-rw-r--r--lisp/leim/quail/ethiopic.el4
-rw-r--r--lisp/leim/quail/hebrew.el8
-rw-r--r--lisp/leim/quail/thai.el6
-rw-r--r--lisp/linum.el2
-rw-r--r--lisp/ls-lisp.el2
-rw-r--r--lisp/mail/mailabbrev.el2
-rw-r--r--lisp/mail/mailalias.el2
-rw-r--r--lisp/mail/sendmail.el2
-rw-r--r--lisp/mail/supercite.el10
-rw-r--r--lisp/mail/uudecode.el2
-rw-r--r--lisp/minibuffer.el16
-rw-r--r--lisp/net/ange-ftp.el2
-rw-r--r--lisp/net/dbus.el28
-rw-r--r--lisp/net/network-stream.el2
-rw-r--r--lisp/net/rcirc.el2
-rw-r--r--lisp/net/rlogin.el4
-rw-r--r--lisp/net/secrets.el4
-rw-r--r--lisp/net/soap-client.el2
-rw-r--r--lisp/net/telnet.el2
-rw-r--r--lisp/net/tramp-adb.el4
-rw-r--r--lisp/net/tramp-cmds.el2
-rw-r--r--lisp/net/tramp-compat.el4
-rw-r--r--lisp/net/tramp-gvfs.el2
-rw-r--r--lisp/net/tramp-sh.el12
-rw-r--r--lisp/net/tramp-smb.el4
-rw-r--r--lisp/net/tramp.el14
-rw-r--r--lisp/obsolete/xesam.el2
-rw-r--r--lisp/org/ob-ruby.el2
-rw-r--r--lisp/org/org-agenda.el2
-rw-r--r--lisp/org/org-bbdb.el2
-rw-r--r--lisp/org/org-capture.el2
-rw-r--r--lisp/org/org-compat.el2
-rw-r--r--lisp/org/org-gnus.el2
-rw-r--r--lisp/org/org-macs.el2
-rw-r--r--lisp/org/org-protocol.el2
-rw-r--r--lisp/org/org.el16
-rw-r--r--lisp/org/ox-html.el2
-rw-r--r--lisp/org/ox-odt.el4
-rw-r--r--lisp/org/ox-texinfo.el2
-rw-r--r--lisp/play/handwrite.el8
-rw-r--r--lisp/progmodes/ada-xref.el2
-rw-r--r--lisp/progmodes/cc-defs.el10
-rw-r--r--lisp/progmodes/cc-engine.el2
-rw-r--r--lisp/progmodes/cc-fonts.el4
-rw-r--r--lisp/progmodes/cc-guess.el4
-rw-r--r--lisp/progmodes/compile.el2
-rw-r--r--lisp/progmodes/cperl-mode.el2
-rw-r--r--lisp/progmodes/gdb-mi.el6
-rw-r--r--lisp/progmodes/idlw-shell.el4
-rw-r--r--lisp/progmodes/idlwave.el6
-rw-r--r--lisp/progmodes/python.el2
-rw-r--r--lisp/progmodes/ruby-mode.el2
-rw-r--r--lisp/progmodes/verilog-mode.el12
-rw-r--r--lisp/ps-print.el4
-rw-r--r--lisp/recentf.el2
-rw-r--r--lisp/ses.el8
-rw-r--r--lisp/simple.el8
-rw-r--r--lisp/skeleton.el5
-rw-r--r--lisp/subr.el13
-rw-r--r--lisp/term/tvi970.el4
-rw-r--r--lisp/term/w32console.el10
-rw-r--r--lisp/textmodes/artist.el26
-rw-r--r--lisp/textmodes/bibtex.el8
-rw-r--r--lisp/textmodes/ispell.el6
-rw-r--r--lisp/textmodes/makeinfo.el2
-rw-r--r--lisp/textmodes/rst.el18
-rw-r--r--lisp/textmodes/tildify.el2
-rw-r--r--lisp/type-break.el2
-rw-r--r--lisp/vc/compare-w.el2
-rw-r--r--lisp/vc/ediff-util.el2
-rw-r--r--lisp/vc/log-edit.el2
-rw-r--r--lisp/vc/log-view.el9
-rw-r--r--lisp/vc/vc-annotate.el26
-rw-r--r--lisp/vc/vc-bzr.el2
-rw-r--r--lisp/vc/vc-git.el19
-rw-r--r--lisp/vc/vc.el3
-rw-r--r--lisp/wid-edit.el2
-rw-r--r--lisp/widget.el2
-rw-r--r--lisp/windmove.el4
-rw-r--r--lisp/window.el66
-rw-r--r--lisp/woman.el12
-rw-r--r--lisp/xt-mouse.el8
157 files changed, 988 insertions, 796 deletions
diff --git a/lisp/ChangeLog.16 b/lisp/ChangeLog.16
index 457c1511af8..bc5267aadba 100644
--- a/lisp/ChangeLog.16
+++ b/lisp/ChangeLog.16
@@ -5030,8 +5030,7 @@
5030 * mouse.el (mouse-yank-primarY): Look for frame-type w32, not 5030 * mouse.el (mouse-yank-primarY): Look for frame-type w32, not
5031 system-type windows-nt. 5031 system-type windows-nt.
5032 5032
5033 * server.el (server-create-window-system-frame): Look for window 5033 * server.el (server-create-window-system-frame): Look for window type.
5034 type.
5035 (server-proces-filter): Only force a window system when windows-nt 5034 (server-proces-filter): Only force a window system when windows-nt
5036 _and_ w32. Explain why. 5035 _and_ w32. Explain why.
5037 5036
diff --git a/lisp/allout-widgets.el b/lisp/allout-widgets.el
index 164cd3192ac..3c71a810bfb 100644
--- a/lisp/allout-widgets.el
+++ b/lisp/allout-widgets.el
@@ -348,7 +348,7 @@ to `allout-body-modification-handler', and is always reset by
348images with lists containing the name of the icon directory (as 348images with lists containing the name of the icon directory (as
349found on the `load-path') and the icon name. 349found on the `load-path') and the icon name.
350 350
351Set this variable to `nil' to empty the cache, and have it replenish from the 351Set this variable to nil to empty the cache, and have it replenish from the
352filesystem.") 352filesystem.")
353;;;_ = allout-widgets-unset-inhibit-read-only 353;;;_ = allout-widgets-unset-inhibit-read-only
354(defvar allout-widgets-unset-inhibit-read-only nil 354(defvar allout-widgets-unset-inhibit-read-only nil
diff --git a/lisp/allout.el b/lisp/allout.el
index 2cdac99f90a..dcdd35eb488 100644
--- a/lisp/allout.el
+++ b/lisp/allout.el
@@ -322,7 +322,7 @@ With value nil, inhibit any automatic allout-mode activation."
322 "Default allout outline layout specification. 322 "Default allout outline layout specification.
323 323
324This setting specifies the outline exposure to use when 324This setting specifies the outline exposure to use when
325`allout-layout' has the local value `t'. This docstring describes the 325`allout-layout' has the local value t. This docstring describes the
326layout specifications. 326layout specifications.
327 327
328A list value specifies a default layout for the current buffer, 328A list value specifies a default layout for the current buffer,
@@ -933,7 +933,7 @@ followed by the equivalent of `(allout-expose-topic 0 : -1 -1 0)'.
933\(This is the layout used for the allout.el source file.) 933\(This is the layout used for the allout.el source file.)
934 934
935`allout-default-layout' describes the specification format. 935`allout-default-layout' describes the specification format.
936`allout-layout' can additionally have the value `t', in which 936`allout-layout' can additionally have the value t, in which
937case the value of `allout-default-layout' is used.") 937case the value of `allout-default-layout' is used.")
938(make-variable-buffer-local 'allout-layout) 938(make-variable-buffer-local 'allout-layout)
939;;;###autoload 939;;;###autoload
diff --git a/lisp/autorevert.el b/lisp/autorevert.el
index 357916c6b4d..2ff7c0115f3 100644
--- a/lisp/autorevert.el
+++ b/lisp/autorevert.el
@@ -1,4 +1,4 @@
1;;; autorevert.el --- revert buffers when files on disk change 1;;; autorevert.el --- revert buffers when files on disk change -*- lexical-binding:t -*-
2 2
3;; Copyright (C) 1997-1999, 2001-2015 Free Software Foundation, Inc. 3;; Copyright (C) 1997-1999, 2001-2015 Free Software Foundation, Inc.
4 4
@@ -95,7 +95,7 @@
95;; mode. For example, the following line will activate Auto-Revert 95;; mode. For example, the following line will activate Auto-Revert
96;; Mode in all C mode buffers: 96;; Mode in all C mode buffers:
97;; 97;;
98;; (add-hook 'c-mode-hook 'turn-on-auto-revert-mode) 98;; (add-hook 'c-mode-hook #'turn-on-auto-revert-mode)
99 99
100;;; Code: 100;;; Code:
101 101
@@ -260,10 +260,9 @@ buffers. CPU usage depends on the version control system."
260 :type 'boolean 260 :type 'boolean
261 :version "22.1") 261 :version "22.1")
262 262
263(defvar global-auto-revert-ignore-buffer nil 263(defvar-local global-auto-revert-ignore-buffer nil
264 "When non-nil, Global Auto-Revert Mode will not revert this buffer. 264 "When non-nil, Global Auto-Revert Mode will not revert this buffer.
265This variable becomes buffer local when set in any fashion.") 265This variable becomes buffer local when set in any fashion.")
266(make-variable-buffer-local 'global-auto-revert-ignore-buffer)
267 266
268(defcustom auto-revert-remote-files nil 267(defcustom auto-revert-remote-files nil
269 "If non-nil remote files are also reverted." 268 "If non-nil remote files are also reverted."
@@ -315,9 +314,9 @@ the list of old buffers.")
315 "Position of last known end of file.") 314 "Position of last known end of file.")
316 315
317(add-hook 'find-file-hook 316(add-hook 'find-file-hook
318 (lambda () 317 (lambda ()
319 (set (make-local-variable 'auto-revert-tail-pos) 318 (setq-local auto-revert-tail-pos
320 (nth 7 (file-attributes buffer-file-name))))) 319 (nth 7 (file-attributes buffer-file-name)))))
321 320
322(defvar auto-revert-notify-watch-descriptor-hash-list 321(defvar auto-revert-notify-watch-descriptor-hash-list
323 (make-hash-table :test 'equal) 322 (make-hash-table :test 'equal)
@@ -326,15 +325,13 @@ Hash key is a watch descriptor, hash value is a list of buffers
326which are related to files being watched and carrying the same 325which are related to files being watched and carrying the same
327default directory.") 326default directory.")
328 327
329(defvar auto-revert-notify-watch-descriptor nil 328(defvar-local auto-revert-notify-watch-descriptor nil
330 "The file watch descriptor active for the current buffer.") 329 "The file watch descriptor active for the current buffer.")
331(make-variable-buffer-local 'auto-revert-notify-watch-descriptor)
332(put 'auto-revert-notify-watch-descriptor 'permanent-local t) 330(put 'auto-revert-notify-watch-descriptor 'permanent-local t)
333 331
334(defvar auto-revert-notify-modified-p nil 332(defvar-local auto-revert-notify-modified-p nil
335 "Non-nil when file has been modified on the file system. 333 "Non-nil when file has been modified on the file system.
336This has been reported by a file notification event.") 334This has been reported by a file notification event.")
337(make-variable-buffer-local 'auto-revert-notify-modified-p)
338 335
339;; Functions: 336;; Functions:
340 337
@@ -370,7 +367,7 @@ without being changed in the part that is already in the buffer."
370 "Turn on Auto-Revert Mode. 367 "Turn on Auto-Revert Mode.
371 368
372This function is designed to be added to hooks, for example: 369This function is designed to be added to hooks, for example:
373 (add-hook 'c-mode-hook 'turn-on-auto-revert-mode)" 370 (add-hook 'c-mode-hook #'turn-on-auto-revert-mode)"
374 (auto-revert-mode 1)) 371 (auto-revert-mode 1))
375 372
376 373
@@ -420,8 +417,8 @@ Perform a full revert? ")
420 ;; else we might reappend our own end when we save 417 ;; else we might reappend our own end when we save
421 (add-hook 'before-save-hook (lambda () (auto-revert-tail-mode 0)) nil t) 418 (add-hook 'before-save-hook (lambda () (auto-revert-tail-mode 0)) nil t)
422 (or (local-variable-p 'auto-revert-tail-pos) ; don't lose prior position 419 (or (local-variable-p 'auto-revert-tail-pos) ; don't lose prior position
423 (set (make-local-variable 'auto-revert-tail-pos) 420 (setq-local auto-revert-tail-pos
424 (nth 7 (file-attributes buffer-file-name)))) 421 (nth 7 (file-attributes buffer-file-name))))
425 ;; let auto-revert-mode set up the mechanism for us if it isn't already 422 ;; let auto-revert-mode set up the mechanism for us if it isn't already
426 (or auto-revert-mode 423 (or auto-revert-mode
427 (let ((auto-revert-tail-mode t)) 424 (let ((auto-revert-tail-mode t))
@@ -434,7 +431,7 @@ Perform a full revert? ")
434 "Turn on Auto-Revert Tail mode. 431 "Turn on Auto-Revert Tail mode.
435 432
436This function is designed to be added to hooks, for example: 433This function is designed to be added to hooks, for example:
437 (add-hook 'my-logfile-mode-hook 'turn-on-auto-revert-tail-mode)" 434 (add-hook 'my-logfile-mode-hook #'turn-on-auto-revert-tail-mode)"
438 (auto-revert-tail-mode 1)) 435 (auto-revert-tail-mode 1))
439 436
440 437
@@ -495,7 +492,7 @@ will use an up-to-date value of `auto-revert-interval'"
495 (ignore-errors 492 (ignore-errors
496 (file-notify-rm-watch auto-revert-notify-watch-descriptor))))) 493 (file-notify-rm-watch auto-revert-notify-watch-descriptor)))))
497 auto-revert-notify-watch-descriptor-hash-list) 494 auto-revert-notify-watch-descriptor-hash-list)
498 (remove-hook 'kill-buffer-hook 'auto-revert-notify-rm-watch)) 495 (remove-hook 'kill-buffer-hook #'auto-revert-notify-rm-watch))
499 (setq auto-revert-notify-watch-descriptor nil 496 (setq auto-revert-notify-watch-descriptor nil
500 auto-revert-notify-modified-p nil)) 497 auto-revert-notify-modified-p nil))
501 498
@@ -508,7 +505,7 @@ will use an up-to-date value of `auto-revert-interval'"
508 (file-symlink-p (or buffer-file-name default-directory))) 505 (file-symlink-p (or buffer-file-name default-directory)))
509 506
510 ;; Fallback to file checks. 507 ;; Fallback to file checks.
511 (set (make-local-variable 'auto-revert-use-notify) nil) 508 (setq-local auto-revert-use-notify nil)
512 509
513 (when (not auto-revert-notify-watch-descriptor) 510 (when (not auto-revert-notify-watch-descriptor)
514 (setq auto-revert-notify-watch-descriptor 511 (setq auto-revert-notify-watch-descriptor
@@ -530,10 +527,10 @@ will use an up-to-date value of `auto-revert-interval'"
530 (gethash auto-revert-notify-watch-descriptor 527 (gethash auto-revert-notify-watch-descriptor
531 auto-revert-notify-watch-descriptor-hash-list)) 528 auto-revert-notify-watch-descriptor-hash-list))
532 auto-revert-notify-watch-descriptor-hash-list) 529 auto-revert-notify-watch-descriptor-hash-list)
533 (add-hook (make-local-variable 'kill-buffer-hook) 530 (add-hook 'kill-buffer-hook
534 'auto-revert-notify-rm-watch)) 531 #'auto-revert-notify-rm-watch nil t))
535 ;; Fallback to file checks. 532 ;; Fallback to file checks.
536 (set (make-local-variable 'auto-revert-use-notify) nil))))) 533 (setq-local auto-revert-use-notify nil)))))
537 534
538;; If we have file notifications, we want to update the auto-revert buffers 535;; If we have file notifications, we want to update the auto-revert buffers
539;; immediately when a notification occurs. Since file updates can happen very 536;; immediately when a notification occurs. Since file updates can happen very
diff --git a/lisp/calc/calc-aent.el b/lisp/calc/calc-aent.el
index 23de53e0f0c..cc048ebc223 100644
--- a/lisp/calc/calc-aent.el
+++ b/lisp/calc/calc-aent.el
@@ -1034,7 +1034,7 @@ in Calc algebraic input.")
1034 1034
1035(defun math-restore-placeholders (x) 1035(defun math-restore-placeholders (x)
1036 "Replace placeholders by the proper characters in the symbol x. 1036 "Replace placeholders by the proper characters in the symbol x.
1037This includes `#' for `_' and `'' for `%'. 1037This includes # for _ and ' for %.
1038If the current Calc language does not use placeholders, return nil." 1038If the current Calc language does not use placeholders, return nil."
1039 (if (or (memq calc-language calc-lang-allow-underscores) 1039 (if (or (memq calc-language calc-lang-allow-underscores)
1040 (memq calc-language calc-lang-allow-percentsigns)) 1040 (memq calc-language calc-lang-allow-percentsigns))
diff --git a/lisp/calc/calc-yank.el b/lisp/calc/calc-yank.el
index 726a7202a8a..923df5d577f 100644
--- a/lisp/calc/calc-yank.el
+++ b/lisp/calc/calc-yank.el
@@ -149,7 +149,7 @@ as well as set the contents of the Emacs register REGISTER to TEXT."
149 "Return the CALCVAL portion of the contents of the Calc register REG, 149 "Return the CALCVAL portion of the contents of the Calc register REG,
150unless the TEXT portion doesn't match the contents of the Emacs register REG, 150unless the TEXT portion doesn't match the contents of the Emacs register REG,
151in which case either return the contents of the Emacs register (if it is 151in which case either return the contents of the Emacs register (if it is
152text) or `nil'." 152text) or nil."
153 (let ((cval (cdr (assq reg calc-register-alist))) 153 (let ((cval (cdr (assq reg calc-register-alist)))
154 (val (cdr (assq reg register-alist)))) 154 (val (cdr (assq reg register-alist))))
155 (if (stringp val) 155 (if (stringp val)
diff --git a/lisp/calc/calc.el b/lisp/calc/calc.el
index 1cc11b48ac3..52ed5d7eb3d 100644
--- a/lisp/calc/calc.el
+++ b/lisp/calc/calc.el
@@ -2034,7 +2034,7 @@ See calc-keypad for details."
2034;; (YEAR MONTH DAY math-date-from-gregorian-dt(YEAR MONTH DAY)) for speed. 2034;; (YEAR MONTH DAY math-date-from-gregorian-dt(YEAR MONTH DAY)) for speed.
2035(defcustom calc-gregorian-switch nil 2035(defcustom calc-gregorian-switch nil
2036 "The first day the Gregorian calendar is used by Calc's date forms. 2036 "The first day the Gregorian calendar is used by Calc's date forms.
2037This is `nil' (the default) if the Gregorian calendar is the only one used. 2037This is nil (the default) if the Gregorian calendar is the only one used.
2038Otherwise, it should be a list `(YEAR MONTH DAY)' when Calc begins to use 2038Otherwise, it should be a list `(YEAR MONTH DAY)' when Calc begins to use
2039the Gregorian calendar; Calc will use the Julian calendar for earlier dates. 2039the Gregorian calendar; Calc will use the Julian calendar for earlier dates.
2040The dates in which different regions of the world began to use the 2040The dates in which different regions of the world began to use the
diff --git a/lisp/calculator.el b/lisp/calculator.el
index 0aef07b1750..4027887fb07 100644
--- a/lisp/calculator.el
+++ b/lisp/calculator.el
@@ -1203,10 +1203,10 @@ arguments."
1203 ;; f is an expression 1203 ;; f is an expression
1204 (let ((TX (and X (calculator-truncate X))) 1204 (let ((TX (and X (calculator-truncate X)))
1205 (TY (and Y (calculator-truncate Y))) 1205 (TY (and Y (calculator-truncate Y)))
1206 (DX (if (and X calculator-deg) (/ (* X pi) 180) X)) 1206 (DX (if (and X calculator-deg) (degrees-to-radians X) X))
1207 (L calculator-saved-list) 1207 (L calculator-saved-list)
1208 (fF `(calculator-funcall ',f x y)) 1208 (fF `(calculator-funcall ',f x y))
1209 (fD `(if calculator-deg (/ (* x 180) float-pi) x))) 1209 (fD `(if calculator-deg (* radians-to-degrees x) x)))
1210 (eval `(cl-flet ((F (&optional x y) ,fF) (D (x) ,fD)) 1210 (eval `(cl-flet ((F (&optional x y) ,fF) (D (x) ,fD))
1211 (let ((X ,X) (Y ,Y) (DX ,DX) (TX ,TX) (TY ,TY) (L ',L)) 1211 (let ((X ,X) (Y ,Y) (DX ,DX) (TX ,TX) (TY ,TY) (L ',L))
1212 ,f)) 1212 ,f))
diff --git a/lisp/calendar/calendar.el b/lisp/calendar/calendar.el
index e42a0100696..1612f48a019 100644
--- a/lisp/calendar/calendar.el
+++ b/lisp/calendar/calendar.el
@@ -2182,7 +2182,7 @@ in `calendar-month-name-array'. These abbreviations are used in
2182the calendar menu entries, and can also be used in the diary 2182the calendar menu entries, and can also be used in the diary
2183file. Do not include a trailing `.' in the strings specified in 2183file. Do not include a trailing `.' in the strings specified in
2184this variable, though you may use such in the diary file. By 2184this variable, though you may use such in the diary file. By
2185default, each string is the first ``calendar-abbrev-length' 2185default, each string is the first `calendar-abbrev-length'
2186characters of the corresponding full name." 2186characters of the corresponding full name."
2187 :group 'calendar 2187 :group 'calendar
2188 :set-after '(calendar-abbrev-length calendar-month-name-array) 2188 :set-after '(calendar-abbrev-length calendar-month-name-array)
diff --git a/lisp/calendar/diary-lib.el b/lisp/calendar/diary-lib.el
index 29364b55b6c..d5bd26a9277 100644
--- a/lisp/calendar/diary-lib.el
+++ b/lisp/calendar/diary-lib.el
@@ -104,9 +104,9 @@ are: `string', `symbol', `int', `tnil', `stringtnil.'"
104 (choice (const string :tag "A string") 104 (choice (const string :tag "A string")
105 (const symbol :tag "A symbol") 105 (const symbol :tag "A symbol")
106 (const int :tag "An integer") 106 (const int :tag "An integer")
107 (const tnil :tag "`t' or `nil'") 107 (const tnil :tag "t or nil")
108 (const stringtnil 108 (const stringtnil
109 :tag "A string, `t', or `nil'")))) 109 :tag "A string, t, or nil"))))
110 :group 'diary) 110 :group 'diary)
111 111
112(defcustom diary-glob-file-regexp-prefix "^\\#" 112(defcustom diary-glob-file-regexp-prefix "^\\#"
@@ -1671,7 +1671,7 @@ DAY MONTH YEAR in the European style).
1671 1671
1672 %%(diary-date MONTH DAY YEAR &optional MARK) text 1672 %%(diary-date MONTH DAY YEAR &optional MARK) text
1673 Entry applies if date is MONTH, DAY, YEAR. DAY, MONTH, and YEAR can 1673 Entry applies if date is MONTH, DAY, YEAR. DAY, MONTH, and YEAR can
1674 be a list of integers, `t' (meaning all values), or an integer. 1674 be a list of integers, t (meaning all values), or an integer.
1675 1675
1676 %%(diary-float MONTH DAYNAME N &optional DAY MARK) text 1676 %%(diary-float MONTH DAYNAME N &optional DAY MARK) text
1677 Entry will appear on the Nth DAYNAME after/before MONTH DAY. 1677 Entry will appear on the Nth DAYNAME after/before MONTH DAY.
@@ -1679,7 +1679,7 @@ DAY MONTH YEAR in the European style).
1679 If N>0, use the Nth DAYNAME after MONTH DAY. 1679 If N>0, use the Nth DAYNAME after MONTH DAY.
1680 If N<0, use the Nth DAYNAME before MONTH DAY. 1680 If N<0, use the Nth DAYNAME before MONTH DAY.
1681 DAY defaults to 1 if N>0, and MONTH's last day otherwise. 1681 DAY defaults to 1 if N>0, and MONTH's last day otherwise.
1682 MONTH can be a list of months, a single month, or `t' to 1682 MONTH can be a list of months, a single month, or t to
1683 specify all months. 1683 specify all months.
1684 1684
1685 %%(diary-block M1 D1 Y1 M2 D2 Y2 &optional MARK) text 1685 %%(diary-block M1 D1 Y1 M2 D2 Y2 &optional MARK) text
@@ -1814,7 +1814,7 @@ form used internally by the calendar and diary."
1814(defun diary-date (month day year &optional mark) 1814(defun diary-date (month day year &optional mark)
1815 "Specific date(s) diary entry. 1815 "Specific date(s) diary entry.
1816Entry applies if date is MONTH, DAY, YEAR. Each parameter can be a 1816Entry applies if date is MONTH, DAY, YEAR. Each parameter can be a
1817list of integers, `t' (meaning all values), or an integer. The order 1817list of integers, t (meaning all values), or an integer. The order
1818of the input parameters changes according to `calendar-date-style' 1818of the input parameters changes according to `calendar-date-style'
1819\(e.g. to DAY MONTH YEAR in the European style). 1819\(e.g. to DAY MONTH YEAR in the European style).
1820 1820
@@ -1863,7 +1863,7 @@ DAYNAME=0 means Sunday, DAYNAME=1 means Monday, and so on.
1863If N>0, use the Nth DAYNAME after MONTH DAY. 1863If N>0, use the Nth DAYNAME after MONTH DAY.
1864If N<0, use the Nth DAYNAME before MONTH DAY. 1864If N<0, use the Nth DAYNAME before MONTH DAY.
1865DAY defaults to 1 if N>0, and MONTH's last day otherwise. 1865DAY defaults to 1 if N>0, and MONTH's last day otherwise.
1866MONTH can be a list of months, an integer, or `t' (meaning all months). 1866MONTH can be a list of months, an integer, or t (meaning all months).
1867Optional MARK specifies a face or single-character string to use when 1867Optional MARK specifies a face or single-character string to use when
1868highlighting the day in the calendar." 1868highlighting the day in the calendar."
1869 ;; This is messy because the diary entry may apply, but the date on which it 1869 ;; This is messy because the diary entry may apply, but the date on which it
diff --git a/lisp/calendar/solar.el b/lisp/calendar/solar.el
index 25a24eeffeb..a2f9d58585a 100644
--- a/lisp/calendar/solar.el
+++ b/lisp/calendar/solar.el
@@ -346,7 +346,7 @@ If SUNRISE-FLAG is non-nil, only calculate longitude and inclination."
346 (solar-cosine-degrees (* 2 l))) 346 (solar-cosine-degrees (* 2 l)))
347 (* -0.5 y y (solar-sin-degrees (* 4 l))) 347 (* -0.5 y y (solar-sin-degrees (* 4 l)))
348 (* -1.25 ecc ecc (solar-sin-degrees (* 2 m))))) 348 (* -1.25 ecc ecc (solar-sin-degrees (* 2 m)))))
349 3.1415926535)))) 349 float-pi))))
350 (list app i time-eq nut))) 350 (list app i time-eq nut)))
351 351
352(defun solar-ephemeris-correction (year) 352(defun solar-ephemeris-correction (year)
diff --git a/lisp/calendar/todo-mode.el b/lisp/calendar/todo-mode.el
index bb9316c81d7..7369ec28c29 100644
--- a/lisp/calendar/todo-mode.el
+++ b/lisp/calendar/todo-mode.el
@@ -5443,7 +5443,7 @@ dynamically create item insertion commands.")
5443The list consists of item insertion parameters that can be passed 5443The list consists of item insertion parameters that can be passed
5444as insertion command arguments in fixed positions. If a position 5444as insertion command arguments in fixed positions. If a position
5445in the list is not occupied by the corresponding parameter, it is 5445in the list is not occupied by the corresponding parameter, it is
5446occupied by `nil'." 5446occupied by nil."
5447 (let* ((arg (list (car todo-insert-item--args))) 5447 (let* ((arg (list (car todo-insert-item--args)))
5448 (args (nconc (cdr todo-insert-item--args) 5448 (args (nconc (cdr todo-insert-item--args)
5449 (list (car (todo-insert-item--argsleft 5449 (list (car (todo-insert-item--argsleft
diff --git a/lisp/cedet/ede/auto.el b/lisp/cedet/ede/auto.el
index 7e8df6b89af..482632f294a 100644
--- a/lisp/cedet/ede/auto.el
+++ b/lisp/cedet/ede/auto.el
@@ -86,7 +86,7 @@ into memory.")
86 ;; If the thing to match is stored in a config file. 86 ;; If the thing to match is stored in a config file.
87 ((stringp fc) 87 ((stringp fc)
88 (when (file-exists-p fc) 88 (when (file-exists-p fc)
89 (let ((matchstring 89 (let ((matchstring
90 (if (slot-boundp dirmatch 'configdatastash) 90 (if (slot-boundp dirmatch 'configdatastash)
91 (oref dirmatch configdatastash) 91 (oref dirmatch configdatastash)
92 nil))) 92 nil)))
@@ -123,7 +123,7 @@ into memory.")
123 (not (= (match-end 0) (length file)))) 123 (not (= (match-end 0) (length file))))
124 ) 124 )
125 ))) 125 )))
126 126
127 ;; Add new matches here 127 ;; Add new matches here
128 ;; ((stringp somenewslot ...) 128 ;; ((stringp somenewslot ...)
129 ;; ) 129 ;; )
@@ -155,9 +155,9 @@ into memory.")
155Specifying this matcher object will allow EDE to perform a complex 155Specifying this matcher object will allow EDE to perform a complex
156check without loading the project. 156check without loading the project.
157 157
158NOTE: If you use dirmatch, you may need to set :root-only to `nil'. 158NOTE: If you use dirmatch, you may need to set :root-only to nil.
159While it may be a root based project, all subdirs will happen to return 159While it may be a root based project, all subdirs will happen to return
160true for the dirmatch, so for scanning purposes, set it to `nil'.") 160true for the dirmatch, so for scanning purposes, set it to nil.")
161 (proj-root :initarg :proj-root 161 (proj-root :initarg :proj-root
162 :type function 162 :type function
163 :documentation "A function symbol to call for the project root. 163 :documentation "A function symbol to call for the project root.
@@ -280,7 +280,7 @@ added. Possible values are:
280 (if f 280 (if f
281 (and f (file-exists-p f)) 281 (and f (file-exists-p f))
282 (let ((dirmatch (oref this proj-root-dirmatch))) 282 (let ((dirmatch (oref this proj-root-dirmatch)))
283 (cond 283 (cond
284 ((stringp dirmatch) 284 ((stringp dirmatch)
285 nil) ; <- do something here - maybe obsolete the option? 285 nil) ; <- do something here - maybe obsolete the option?
286 ((ede-project-autoload-dirmatch-p dirmatch) 286 ((ede-project-autoload-dirmatch-p dirmatch)
@@ -312,7 +312,7 @@ NOTE: Do not call this - it should only be called from `ede-load-project-file'."
312 312
313 313
314 314
315;;; -------- Old Methods 315;;; -------- Old Methods
316;; See if we can do without them. 316;; See if we can do without them.
317 317
318;; @FIXME - delete from loaddefs to remove this. 318;; @FIXME - delete from loaddefs to remove this.
diff --git a/lisp/cedet/ede/files.el b/lisp/cedet/ede/files.el
index 1922337feb0..4ba823adeee 100644
--- a/lisp/cedet/ede/files.el
+++ b/lisp/cedet/ede/files.el
@@ -41,7 +41,7 @@
41(declare-function ede-locate-flush-hash "ede/locate") 41(declare-function ede-locate-flush-hash "ede/locate")
42 42
43(defvar ede--disable-inode nil 43(defvar ede--disable-inode nil
44 "Set to 't' to simulate systems w/out inode support.") 44 "Set to t to simulate systems w/out inode support.")
45 45
46;;; Code: 46;;; Code:
47;;;###autoload 47;;;###autoload
diff --git a/lisp/cedet/semantic/mru-bookmark.el b/lisp/cedet/semantic/mru-bookmark.el
index b75408f6a9d..b2a2c8c7619 100644
--- a/lisp/cedet/semantic/mru-bookmark.el
+++ b/lisp/cedet/semantic/mru-bookmark.el
@@ -207,7 +207,7 @@ The resulting bookmark is then sorted within the ring."
207 ))) 207 )))
208 208
209(defun semantic-mrub-cache-flush-fcn () 209(defun semantic-mrub-cache-flush-fcn ()
210 "Function called in the `semantic-before-toplevel-cache-flush-hook`. 210 "Function called in the `semantic-before-toplevel-cache-flush-hook'.
211Cause tags in the ring to become unlinked." 211Cause tags in the ring to become unlinked."
212 (let* ((ring (oref semantic-mru-bookmark-ring ring)) 212 (let* ((ring (oref semantic-mru-bookmark-ring ring))
213 (len (ring-length ring)) 213 (len (ring-length ring))
diff --git a/lisp/cedet/semantic/symref.el b/lisp/cedet/semantic/symref.el
index 2c5e3ba1805..ca5dd7dd073 100644
--- a/lisp/cedet/semantic/symref.el
+++ b/lisp/cedet/semantic/symref.el
@@ -351,7 +351,7 @@ until the next command is executed."
351 (setq semantic-symref-recently-opened-buffers nil) 351 (setq semantic-symref-recently-opened-buffers nil)
352 (remove-hook 'post-command-hook 'semantic-symref-cleanup-recent-buffers-fcn) 352 (remove-hook 'post-command-hook 'semantic-symref-cleanup-recent-buffers-fcn)
353 ) 353 )
354 354
355(cl-defmethod semantic-symref-result-get-tags ((result semantic-symref-result) 355(cl-defmethod semantic-symref-result-get-tags ((result semantic-symref-result)
356 &optional open-buffers) 356 &optional open-buffers)
357 "Get the list of tags from the symref result RESULT. 357 "Get the list of tags from the symref result RESULT.
@@ -512,7 +512,7 @@ buffers that were opened."
512 (searchtype :initarg :searchtype 512 (searchtype :initarg :searchtype
513 :type symbol 513 :type symbol
514 :documentation "The type of search to do. 514 :documentation "The type of search to do.
515Values could be `symbol, `regexp, 'tagname, or 'completion.") 515Values could be 'symbol, 'regexp, 'tagname, or 'completion.")
516 (searchscope :initarg :searchscope 516 (searchscope :initarg :searchscope
517 :type symbol 517 :type symbol
518 :documentation 518 :documentation
diff --git a/lisp/cedet/semantic/tag.el b/lisp/cedet/semantic/tag.el
index 3ad192b8b8f..545ca914d19 100644
--- a/lisp/cedet/semantic/tag.el
+++ b/lisp/cedet/semantic/tag.el
@@ -621,7 +621,7 @@ buffer, the originating buffer file name is kept in the `:filename'
621property of the copied tag. 621property of the copied tag.
622If KEEP-FILE is a string, and the originating buffer is NOT available, 622If KEEP-FILE is a string, and the originating buffer is NOT available,
623then KEEP-FILE is stored on the `:filename' property. 623then KEEP-FILE is stored on the `:filename' property.
624This runs the tag hook `unlink-copy-hook`." 624This runs the tag hook `unlink-copy-hook'."
625 ;; Right now, TAG is a list. 625 ;; Right now, TAG is a list.
626 (let ((copy (semantic-tag-clone tag name))) 626 (let ((copy (semantic-tag-clone tag name)))
627 627
@@ -958,7 +958,7 @@ Return nil if TAG is not of class 'alias."
958 "Return a list of components for TAG. 958 "Return a list of components for TAG.
959A Component is a part of TAG which itself may be a TAG. 959A Component is a part of TAG which itself may be a TAG.
960Examples include the elements of a structure in a 960Examples include the elements of a structure in a
961tag of class `type, or the list of arguments to a 961tag of class 'type, or the list of arguments to a
962tag of class 'function." 962tag of class 'function."
963 ) 963 )
964 964
diff --git a/lisp/cedet/srecode/cpp.el b/lisp/cedet/srecode/cpp.el
index ec92ae30ba6..e77e05c40b9 100644
--- a/lisp/cedet/srecode/cpp.el
+++ b/lisp/cedet/srecode/cpp.el
@@ -84,7 +84,7 @@ HEADER - Shown section if in a header file."
84;;;###autoload 84;;;###autoload
85(defun srecode-semantic-handle-:cpp (dict) 85(defun srecode-semantic-handle-:cpp (dict)
86 "Add macros into the dictionary DICT based on the current c file. 86 "Add macros into the dictionary DICT based on the current c file.
87Calls `srecode-semantic-handle-:c. 87Calls `srecode-semantic-handle-:c'.
88Also adds the following: 88Also adds the following:
89 - nothing -" 89 - nothing -"
90 (srecode-semantic-handle-:c dict) 90 (srecode-semantic-handle-:c dict)
diff --git a/lisp/cedet/srecode/texi.el b/lisp/cedet/srecode/texi.el
index 5c3f21c32a2..be75f3765c1 100644
--- a/lisp/cedet/srecode/texi.el
+++ b/lisp/cedet/srecode/texi.el
@@ -241,11 +241,11 @@ This is to take advantage of TeXinfo's markup symbols."
241For instances where CLASS is the class being referenced, do not Xref 241For instances where CLASS is the class being referenced, do not Xref
242that class. 242that class.
243 243
244 `function' => @dfn{function} 244 function => @dfn{function}
245 `variable' => @code{variable} 245 variable => @code{variable}
246 `class' => @code{class} @xref{class} 246 class => @code{class} @xref{class}
247 `unknown' => @code{unknown} 247 unknown => @code{unknown}
248 \"text\" => ``text'' 248 \" text \" => `` text ''
249 'quoteme => @code{quoteme} 249 'quoteme => @code{quoteme}
250 non-nil => non-@code{nil} 250 non-nil => non-@code{nil}
251 t => @code{t} 251 t => @code{t}
diff --git a/lisp/cus-edit.el b/lisp/cus-edit.el
index 9f57d0da24a..1d9a9d6d426 100644
--- a/lisp/cus-edit.el
+++ b/lisp/cus-edit.el
@@ -1965,7 +1965,7 @@ Each entry is of the form (STATE MAGIC FACE ITEM-DESC [ GROUP-DESC ]), where
1965 1965
1966STATE is one of the following symbols: 1966STATE is one of the following symbols:
1967 1967
1968`nil' 1968nil
1969 For internal use, should never occur. 1969 For internal use, should never occur.
1970`unknown' 1970`unknown'
1971 For internal use, should never occur. 1971 For internal use, should never occur.
diff --git a/lisp/dired-aux.el b/lisp/dired-aux.el
index 4dcb519b039..18a3c887aad 100644
--- a/lisp/dired-aux.el
+++ b/lisp/dired-aux.el
@@ -2257,7 +2257,7 @@ of marked files. If KILL-ROOT is non-nil, kill DIRNAME as well."
2257 ;; components are string-lessp. 2257 ;; components are string-lessp.
2258 ;; Thus ("/usr/" "/usr/bin") and ("/usr/a/" "/usr/b/") are tree-lessp. 2258 ;; Thus ("/usr/" "/usr/bin") and ("/usr/a/" "/usr/b/") are tree-lessp.
2259 ;; string-lessp could arguably be replaced by file-newer-than-file-p 2259 ;; string-lessp could arguably be replaced by file-newer-than-file-p
2260 ;; if dired-actual-switches contained `t'. 2260 ;; if dired-actual-switches contained t.
2261 (setq dir1 (file-name-as-directory dir1) 2261 (setq dir1 (file-name-as-directory dir1)
2262 dir2 (file-name-as-directory dir2)) 2262 dir2 (file-name-as-directory dir2))
2263 (let ((components-1 (dired-split "/" dir1)) 2263 (let ((components-1 (dired-split "/" dir1))
diff --git a/lisp/dired.el b/lisp/dired.el
index ca13900f681..e523b941295 100644
--- a/lisp/dired.el
+++ b/lisp/dired.el
@@ -3889,7 +3889,7 @@ Ask means pop up a menu for the user to select one of copy, move or link."
3889 3889
3890;;; Start of automatically extracted autoloads. 3890;;; Start of automatically extracted autoloads.
3891 3891
3892;;;### (autoloads nil "dired-aux" "dired-aux.el" "8820677763cb69eef827e38b86d35f47") 3892;;;### (autoloads nil "dired-aux" "dired-aux.el" "45867cb96abef86d29a9850ee2113cf2")
3893;;; Generated autoloads from dired-aux.el 3893;;; Generated autoloads from dired-aux.el
3894 3894
3895(autoload 'dired-diff "dired-aux" "\ 3895(autoload 'dired-diff "dired-aux" "\
diff --git a/lisp/dirtrack.el b/lisp/dirtrack.el
index d1957a259b1..d1c46dd8550 100644
--- a/lisp/dirtrack.el
+++ b/lisp/dirtrack.el
@@ -51,7 +51,7 @@
51;; which matches your prompt up to and including the pathname part. 51;; which matches your prompt up to and including the pathname part.
52;; The second is a number which tells which regular expression group to 52;; The second is a number which tells which regular expression group to
53;; match to extract only the pathname. If you use a multi-line prompt, 53;; match to extract only the pathname. If you use a multi-line prompt,
54;; add 't' as a third element. Note that some of the functions in 54;; add t as a third element. Note that some of the functions in
55;; 'comint.el' assume a single-line prompt (eg, comint-bol). 55;; 'comint.el' assume a single-line prompt (eg, comint-bol).
56;; 56;;
57;; Determining this information may take some experimentation. Using 57;; Determining this information may take some experimentation. Using
diff --git a/lisp/emacs-lisp/advice.el b/lisp/emacs-lisp/advice.el
index 212ae909866..907f03bde45 100644
--- a/lisp/emacs-lisp/advice.el
+++ b/lisp/emacs-lisp/advice.el
@@ -2149,7 +2149,6 @@ the cache-id will clear the cache."
2149 2149
2150(defun ad-arglist (definition) 2150(defun ad-arglist (definition)
2151 "Return the argument list of DEFINITION." 2151 "Return the argument list of DEFINITION."
2152 (require 'help-fns)
2153 (help-function-arglist 2152 (help-function-arglist
2154 (if (or (macrop definition) (ad-advice-p definition)) 2153 (if (or (macrop definition) (ad-advice-p definition))
2155 (cdr definition) 2154 (cdr definition)
@@ -2474,8 +2473,6 @@ Example: `(ad-map-arglists '(a &rest args) '(w x y z))' will return
2474 (capitalize (symbol-name class)) 2473 (capitalize (symbol-name class))
2475 (ad-advice-name advice))))))) 2474 (ad-advice-name advice)))))))
2476 2475
2477(require 'help-fns) ;For help-split-fundoc and help-add-fundoc-usage.
2478
2479(defun ad--make-advised-docstring (function &optional style) 2476(defun ad--make-advised-docstring (function &optional style)
2480 "Construct a documentation string for the advised FUNCTION. 2477 "Construct a documentation string for the advised FUNCTION.
2481Concatenate the original documentation with the documentation 2478Concatenate the original documentation with the documentation
diff --git a/lisp/emacs-lisp/autoload.el b/lisp/emacs-lisp/autoload.el
index 206d5bb4434..a6fefebf3f5 100644
--- a/lisp/emacs-lisp/autoload.el
+++ b/lisp/emacs-lisp/autoload.el
@@ -32,7 +32,6 @@
32 32
33(require 'lisp-mode) ;for `doc-string-elt' properties. 33(require 'lisp-mode) ;for `doc-string-elt' properties.
34(require 'lisp-mnt) 34(require 'lisp-mnt)
35(require 'help-fns) ;for help-add-fundoc-usage.
36(eval-when-compile (require 'cl-lib)) 35(eval-when-compile (require 'cl-lib))
37 36
38(defvar generated-autoload-file nil 37(defvar generated-autoload-file nil
diff --git a/lisp/emacs-lisp/byte-opt.el b/lisp/emacs-lisp/byte-opt.el
index 06a11063025..30147931adc 100644
--- a/lisp/emacs-lisp/byte-opt.el
+++ b/lisp/emacs-lisp/byte-opt.el
@@ -566,7 +566,7 @@
566 (cons fn args))))))) 566 (cons fn args)))))))
567 567
568(defun byte-optimize-all-constp (list) 568(defun byte-optimize-all-constp (list)
569 "Non-nil if all elements of LIST satisfy `macroexp-const-p" 569 "Non-nil if all elements of LIST satisfy `macroexp-const-p'."
570 (let ((constant t)) 570 (let ((constant t))
571 (while (and list constant) 571 (while (and list constant)
572 (unless (macroexp-const-p (car list)) 572 (unless (macroexp-const-p (car list))
@@ -1225,7 +1225,7 @@
1225 window-left-child window-left-column window-margins window-minibuffer-p 1225 window-left-child window-left-column window-margins window-minibuffer-p
1226 window-next-buffers window-next-sibling window-new-normal 1226 window-next-buffers window-next-sibling window-new-normal
1227 window-new-total window-normal-size window-parameter window-parameters 1227 window-new-total window-normal-size window-parameter window-parameters
1228 window-parent window-pixel-edges window-point window-prev-buffers 1228 window-parent window-pixel-edges window-point window-prev-buffers
1229 window-prev-sibling window-redisplay-end-trigger window-scroll-bars 1229 window-prev-sibling window-redisplay-end-trigger window-scroll-bars
1230 window-start window-text-height window-top-child window-top-line 1230 window-start window-text-height window-top-child window-top-line
1231 window-total-height window-total-width window-use-time window-vscroll 1231 window-total-height window-total-width window-use-time window-vscroll
diff --git a/lisp/emacs-lisp/bytecomp.el b/lisp/emacs-lisp/bytecomp.el
index 67744c69b14..efd43898b60 100644
--- a/lisp/emacs-lisp/bytecomp.el
+++ b/lisp/emacs-lisp/bytecomp.el
@@ -348,7 +348,7 @@ else the global value will be modified."
348;;;###autoload 348;;;###autoload
349(defun byte-compile-enable-warning (warning) 349(defun byte-compile-enable-warning (warning)
350 "Change `byte-compile-warnings' to enable WARNING. 350 "Change `byte-compile-warnings' to enable WARNING.
351If `byte-compile-warnings' is `t', do nothing. Otherwise, if the 351If `byte-compile-warnings' is t, do nothing. Otherwise, if the
352first element is `not', remove WARNING, else add it. 352first element is `not', remove WARNING, else add it.
353Normally you should let-bind `byte-compile-warnings' before calling this, 353Normally you should let-bind `byte-compile-warnings' before calling this,
354else the global value will be modified." 354else the global value will be modified."
diff --git a/lisp/emacs-lisp/check-declare.el b/lisp/emacs-lisp/check-declare.el
index 7269b83b619..ecdb6d8983c 100644
--- a/lisp/emacs-lisp/check-declare.el
+++ b/lisp/emacs-lisp/check-declare.el
@@ -98,7 +98,7 @@ don't know how to recognize (e.g. some macros)."
98 (stringp (setq fnfile (nth 2 form))) 98 (stringp (setq fnfile (nth 2 form)))
99 (setq fnfile (check-declare-locate fnfile 99 (setq fnfile (check-declare-locate fnfile
100 (expand-file-name file))) 100 (expand-file-name file)))
101 ;; Use `t' to distinguish unspecified arglist from empty one. 101 ;; Use t to distinguish unspecified arglist from empty one.
102 (or (eq t (setq arglist (if (> len 3) 102 (or (eq t (setq arglist (if (> len 3)
103 (nth 3 form) 103 (nth 3 form)
104 t))) 104 t)))
diff --git a/lisp/emacs-lisp/checkdoc.el b/lisp/emacs-lisp/checkdoc.el
index 777fed082d9..18361c8888f 100644
--- a/lisp/emacs-lisp/checkdoc.el
+++ b/lisp/emacs-lisp/checkdoc.el
@@ -1615,8 +1615,8 @@ function,command,variable,option or symbol." ms1))))))
1615 (or 1615 (or
1616 ;; * The documentation string for a variable that is a 1616 ;; * The documentation string for a variable that is a
1617 ;; yes-or-no flag should start with words such as Non-nil 1617 ;; yes-or-no flag should start with words such as Non-nil
1618 ;; means..., to make it clear that all non-`nil' values are 1618 ;; means..., to make it clear that all non-nil values are
1619 ;; equivalent and indicate explicitly what `nil' and non-`nil' 1619 ;; equivalent and indicate explicitly what nil and non-nil
1620 ;; mean. 1620 ;; mean.
1621 ;; * If a user option variable records a true-or-false 1621 ;; * If a user option variable records a true-or-false
1622 ;; condition, give it a name that ends in `-flag'. 1622 ;; condition, give it a name that ends in `-flag'.
@@ -2405,7 +2405,7 @@ Argument END is the maximum bounds to search in."
2405According to the documentation for the function `error', the error list 2405According to the documentation for the function `error', the error list
2406should not end with a period, and should start with a capital letter. 2406should not end with a period, and should start with a capital letter.
2407The function `y-or-n-p' has similar constraints. 2407The function `y-or-n-p' has similar constraints.
2408Argument TYPE specifies the type of question, such as `error or `y-or-n-p." 2408Argument TYPE specifies the type of question, such as `error' or `y-or-n-p'."
2409 ;; If type is nil, then attempt to derive it. 2409 ;; If type is nil, then attempt to derive it.
2410 (if (not type) 2410 (if (not type)
2411 (save-excursion 2411 (save-excursion
@@ -2613,9 +2613,12 @@ function called to create the messages."
2613 (count-lines (point-min) (or point (point-min)))) 2613 (count-lines (point-min) (or point (point-min))))
2614 ": " msg))) 2614 ": " msg)))
2615 (with-current-buffer (get-buffer checkdoc-diagnostic-buffer) 2615 (with-current-buffer (get-buffer checkdoc-diagnostic-buffer)
2616 (goto-char (point-max)) 2616 (let ((inhibit-read-only t)
2617 (let ((inhibit-read-only t)) 2617 (pt (point-max)))
2618 (apply #'insert text))))) 2618 (goto-char pt)
2619 (apply #'insert text)
2620 (when noninteractive
2621 (warn (buffer-substring pt (point-max))))))))
2619 2622
2620(defun checkdoc-show-diagnostics () 2623(defun checkdoc-show-diagnostics ()
2621 "Display the checkdoc diagnostic buffer in a temporary window." 2624 "Display the checkdoc diagnostic buffer in a temporary window."
diff --git a/lisp/emacs-lisp/cl-generic.el b/lisp/emacs-lisp/cl-generic.el
index a2716ef87ee..b3c127f48f7 100644
--- a/lisp/emacs-lisp/cl-generic.el
+++ b/lisp/emacs-lisp/cl-generic.el
@@ -237,14 +237,19 @@ BODY, if present, is used as the body of a default method.
237 (`(,spec-args . ,_) (cl--generic-split-args args)) 237 (`(,spec-args . ,_) (cl--generic-split-args args))
238 (mandatory (mapcar #'car spec-args)) 238 (mandatory (mapcar #'car spec-args))
239 (apo (assq :argument-precedence-order options))) 239 (apo (assq :argument-precedence-order options)))
240 (setf (cl--generic-dispatches generic) nil) 240 (unless (fboundp name)
241 ;; If the generic function was fmakunbound, throw away previous methods.
242 (setf (cl--generic-dispatches generic) nil)
243 (setf (cl--generic-method-table generic) nil))
241 (when apo 244 (when apo
242 (dolist (arg (cdr apo)) 245 (dolist (arg (cdr apo))
243 (let ((pos (memq arg mandatory))) 246 (let ((pos (memq arg mandatory)))
244 (unless pos (error "%S is not a mandatory argument" arg)) 247 (unless pos (error "%S is not a mandatory argument" arg))
245 (push (list (- (length mandatory) (length pos))) 248 (let* ((argno (- (length mandatory) (length pos)))
246 (cl--generic-dispatches generic))))) 249 (dispatches (cl--generic-dispatches generic))
247 (setf (cl--generic-method-table generic) nil) 250 (dispatch (or (assq argno dispatches) (list argno))))
251 (setf (cl--generic-dispatches generic)
252 (cons dispatch (delq dispatch dispatches)))))))
248 (setf (cl--generic-options generic) options) 253 (setf (cl--generic-options generic) options)
249 (cl--generic-make-function generic))) 254 (cl--generic-make-function generic)))
250 255
@@ -438,16 +443,14 @@ which case this method will be invoked when the argument is `eql' to VAL.
438 ;; the generic function. 443 ;; the generic function.
439 current-load-list) 444 current-load-list)
440 ;; For aliases, cl--generic-name gives us the actual name. 445 ;; For aliases, cl--generic-name gives us the actual name.
441 (funcall 446 (let ((purify-flag
442 (if purify-flag 447 ;; BEWARE! Don't purify this function definition, since that leads
443 ;; BEWARE! Don't purify this function definition, since that leads 448 ;; to memory corruption if the hash-tables it holds are modified
444 ;; to memory corruption if the hash-tables it holds are modified 449 ;; (the GC doesn't trace those pointers).
445 ;; (the GC doesn't trace those pointers). 450 nil))
446 #'fset 451 ;; But do use `defalias', so that it interacts properly with nadvice,
447 ;; But do use `defalias' in the normal case, so that it interacts 452 ;; e.g. for tracing/debug-on-entry.
448 ;; properly with nadvice, e.g. for tracing/debug-on-entry. 453 (defalias (cl--generic-name generic) gfun)))))
449 #'defalias)
450 (cl--generic-name generic) gfun))))
451 454
452(defmacro cl--generic-with-memoization (place &rest code) 455(defmacro cl--generic-with-memoization (place &rest code)
453 (declare (indent 1) (debug t)) 456 (declare (indent 1) (debug t))
@@ -525,7 +528,7 @@ which case this method will be invoked when the argument is `eql' to VAL.
525 (progn 528 (progn
526 (while (and dispatches 529 (while (and dispatches
527 (let ((x (nth 1 (car dispatches)))) 530 (let ((x (nth 1 (car dispatches))))
528 ;; No need to dispatch for `t' specializers. 531 ;; No need to dispatch for t specializers.
529 (or (null x) (equal x cl--generic-t-generalizer)))) 532 (or (null x) (equal x cl--generic-t-generalizer))))
530 (setq dispatches (cdr dispatches))) 533 (setq dispatches (cdr dispatches)))
531 (pop dispatches)))) 534 (pop dispatches))))
@@ -701,10 +704,15 @@ methods.")
701 #'cl--generic-standard-method-combination) 704 #'cl--generic-standard-method-combination)
702 705
703(cl-defmethod cl-generic-generalizers (specializer) 706(cl-defmethod cl-generic-generalizers (specializer)
704 "Support for the catch-all `t' specializer." 707 "Support for the catch-all t specializer."
705 (if (eq specializer t) (list cl--generic-t-generalizer) 708 (if (eq specializer t) (list cl--generic-t-generalizer)
706 (error "Unknown specializer %S" specializer))) 709 (error "Unknown specializer %S" specializer)))
707 710
711(eval-when-compile
712 ;; This macro is brittle and only really important in order to be
713 ;; able to preload cl-generic without also preloading the byte-compiler,
714 ;; So we use `eval-when-compile' so as not keep it available longer than
715 ;; strictly needed.
708(defmacro cl--generic-prefill-dispatchers (arg-or-context specializer) 716(defmacro cl--generic-prefill-dispatchers (arg-or-context specializer)
709 (unless (integerp arg-or-context) 717 (unless (integerp arg-or-context)
710 (setq arg-or-context `(&context . ,arg-or-context))) 718 (setq arg-or-context `(&context . ,arg-or-context)))
@@ -722,7 +730,7 @@ methods.")
722 ,@(cl-generic-generalizers ',specializer) 730 ,@(cl-generic-generalizers ',specializer)
723 ,cl--generic-t-generalizer))) 731 ,cl--generic-t-generalizer)))
724 ;; (message "Prefilling for %S with \n%S" dispatch ',fun) 732 ;; (message "Prefilling for %S with \n%S" dispatch ',fun)
725 (puthash dispatch ',fun cl--generic-dispatchers)))) 733 (puthash dispatch ',fun cl--generic-dispatchers)))))
726 734
727(cl-defmethod cl-generic-combine-methods (generic methods) 735(cl-defmethod cl-generic-combine-methods (generic methods)
728 "Standard support for :after, :before, :around, and `:extra NAME' qualifiers." 736 "Standard support for :after, :before, :around, and `:extra NAME' qualifiers."
@@ -796,8 +804,6 @@ Can only be used from within the lexical body of a primary or around method."
796 specializers qualifiers 804 specializers qualifiers
797 (cl--generic-method-table (cl--generic generic))))) 805 (cl--generic-method-table (cl--generic generic)))))
798 806
799(defalias 'cl-method-qualifiers 'cl--generic-method-qualifiers)
800
801;;; Add support for describe-function 807;;; Add support for describe-function
802 808
803(defun cl--generic-search-method (met-name) 809(defun cl--generic-search-method (met-name)
@@ -850,6 +856,9 @@ Can only be used from within the lexical body of a primary or around method."
850 856
851(add-hook 'help-fns-describe-function-functions #'cl--generic-describe) 857(add-hook 'help-fns-describe-function-functions #'cl--generic-describe)
852(defun cl--generic-describe (function) 858(defun cl--generic-describe (function)
859 ;; Supposedly this is called from help-fns, so help-fns should be loaded at
860 ;; this point.
861 (declare-function help-fns-short-filename "help-fns" (filename))
853 (let ((generic (if (symbolp function) (cl--generic function)))) 862 (let ((generic (if (symbolp function) (cl--generic function))))
854 (when generic 863 (when generic
855 (require 'help-mode) ;Needed for `help-function-def' button! 864 (require 'help-mode) ;Needed for `help-function-def' button!
diff --git a/lisp/emacs-lisp/cl-indent.el b/lisp/emacs-lisp/cl-indent.el
index 5e75406cf22..57da7159d5c 100644
--- a/lisp/emacs-lisp/cl-indent.el
+++ b/lisp/emacs-lisp/cl-indent.el
@@ -140,13 +140,13 @@ If non-nil, alignment is done with the first parameter
140 140
141(defcustom lisp-indent-backquote-substitution-mode t 141(defcustom lisp-indent-backquote-substitution-mode t
142 "How to indent substitutions in backquotes. 142 "How to indent substitutions in backquotes.
143If `t', the default, indent substituted forms normally. 143If t, the default, indent substituted forms normally.
144If `nil', do not apply special indentation rule to substituted 144If nil, do not apply special indentation rule to substituted
145forms. If `corrected', subtract the `,' or `,@' from the form 145forms. If `corrected', subtract the `,' or `,@' from the form
146column, indenting as if this character sequence were not present. 146column, indenting as if this character sequence were not present.
147In any case, do not backtrack beyond a backquote substitution. 147In any case, do not backtrack beyond a backquote substitution.
148 148
149Until Emacs 25.1, the `nil' behavior was hard-wired." 149Until Emacs 25.1, the nil behavior was hard-wired."
150 :version "25.1" 150 :version "25.1"
151 :type '(choice (const corrected) (const nil) (const t)) 151 :type '(choice (const corrected) (const nil) (const t))
152 :group 'lisp-indent) 152 :group 'lisp-indent)
diff --git a/lisp/emacs-lisp/cl-macs.el b/lisp/emacs-lisp/cl-macs.el
index 5bab84ed312..27d3da3dca4 100644
--- a/lisp/emacs-lisp/cl-macs.el
+++ b/lisp/emacs-lisp/cl-macs.el
@@ -294,7 +294,6 @@ FORM is of the form (ARGS . BODY)."
294 ;; apparently harmless computation, so it should not 294 ;; apparently harmless computation, so it should not
295 ;; touch the match-data. 295 ;; touch the match-data.
296 (save-match-data 296 (save-match-data
297 (require 'help-fns)
298 (cons (help-add-fundoc-usage 297 (cons (help-add-fundoc-usage
299 (if (stringp (car header)) (pop header)) 298 (if (stringp (car header)) (pop header))
300 ;; Be careful with make-symbol and (back)quote, 299 ;; Be careful with make-symbol and (back)quote,
diff --git a/lisp/emacs-lisp/debug.el b/lisp/emacs-lisp/debug.el
index 9d32ba241de..77d6332feee 100644
--- a/lisp/emacs-lisp/debug.el
+++ b/lisp/emacs-lisp/debug.el
@@ -54,7 +54,7 @@ the middle is discarded, and just the beginning and end are displayed."
54The value affects the behavior of operations on any window 54The value affects the behavior of operations on any window
55previously showing the debugger buffer. 55previously showing the debugger buffer.
56 56
57`nil' means that if its window is not deleted when exiting the 57nil means that if its window is not deleted when exiting the
58 debugger, invoking `switch-to-prev-buffer' will usually show 58 debugger, invoking `switch-to-prev-buffer' will usually show
59 the debugger buffer again. 59 the debugger buffer again.
60 60
diff --git a/lisp/emacs-lisp/edebug.el b/lisp/emacs-lisp/edebug.el
index 98fb7e9888c..b5da3cc2174 100644
--- a/lisp/emacs-lisp/edebug.el
+++ b/lisp/emacs-lisp/edebug.el
@@ -600,7 +600,7 @@ list of a symbol.")
600(defun edebug-get-form-data-entry (pnt &optional end-point) 600(defun edebug-get-form-data-entry (pnt &optional end-point)
601 ;; Find the edebug form data entry which is closest to PNT. 601 ;; Find the edebug form data entry which is closest to PNT.
602 ;; If END-POINT is supplied, match must be exact. 602 ;; If END-POINT is supplied, match must be exact.
603 ;; Return `nil' if none found. 603 ;; Return nil if none found.
604 (let ((rest edebug-form-data) 604 (let ((rest edebug-form-data)
605 closest-entry 605 closest-entry
606 (closest-dist 999999)) ;; Need maxint here. 606 (closest-dist 999999)) ;; Need maxint here.
diff --git a/lisp/emacs-lisp/elint.el b/lisp/emacs-lisp/elint.el
index 317e5a6fd3f..fc66c82c81d 100644
--- a/lisp/emacs-lisp/elint.el
+++ b/lisp/emacs-lisp/elint.el
@@ -46,8 +46,6 @@
46 46
47;;; Code: 47;;; Code:
48 48
49(require 'help-fns)
50
51(defgroup elint nil 49(defgroup elint nil
52 "Linting for Emacs Lisp." 50 "Linting for Emacs Lisp."
53 :prefix "elint-" 51 :prefix "elint-"
diff --git a/lisp/emacs-lisp/generator.el b/lisp/emacs-lisp/generator.el
index 8251682590e..08e1b7c27a9 100644
--- a/lisp/emacs-lisp/generator.el
+++ b/lisp/emacs-lisp/generator.el
@@ -90,7 +90,7 @@
90 ;; Change this function to use `cl-gensym' if you want the generated 90 ;; Change this function to use `cl-gensym' if you want the generated
91 ;; code to be easier to read and debug. 91 ;; code to be easier to read and debug.
92 ;; (cl-gensym (apply #'format fmt args)) 92 ;; (cl-gensym (apply #'format fmt args))
93 `(make-symbol ,fmt)) 93 `(progn (ignore ,@args) (make-symbol ,fmt)))
94 94
95(defvar cps--dynamic-wrappers '(identity) 95(defvar cps--dynamic-wrappers '(identity)
96 "List of transformer functions to apply to atomic forms we 96 "List of transformer functions to apply to atomic forms we
@@ -308,14 +308,14 @@ don't yield.")
308 collect (if (symbolp binding) 308 collect (if (symbolp binding)
309 (list binding nil) 309 (list binding nil)
310 binding))) 310 binding)))
311 (temps (cl-loop for (var value-form) in bindings 311 (temps (cl-loop for (var _value-form) in bindings
312 collect (cps--add-binding var)))) 312 collect (cps--add-binding var))))
313 (cps--transform-1 313 (cps--transform-1
314 `(let* ,(append 314 `(let* ,(append
315 (cl-loop for (var value-form) in bindings 315 (cl-loop for (_var value-form) in bindings
316 for temp in temps 316 for temp in temps
317 collect (list temp value-form)) 317 collect (list temp value-form))
318 (cl-loop for (var binding) in bindings 318 (cl-loop for (var _binding) in bindings
319 for temp in temps 319 for temp in temps
320 collect (list var temp))) 320 collect (list var temp)))
321 ,@body) 321 ,@body)
@@ -704,7 +704,7 @@ of values. Callers can retrieve each value using `iter-next'."
704 704
705(defun iter-next (iterator &optional yield-result) 705(defun iter-next (iterator &optional yield-result)
706 "Extract a value from an iterator. 706 "Extract a value from an iterator.
707YIELD-RESULT becomes the return value of `iter-yield` in the 707YIELD-RESULT becomes the return value of `iter-yield' in the
708context of the generator. 708context of the generator.
709 709
710This routine raises the `iter-end-of-sequence' condition if the 710This routine raises the `iter-end-of-sequence' condition if the
diff --git a/lisp/emacs-lisp/lisp-mode.el b/lisp/emacs-lisp/lisp-mode.el
index 108d5ccb0e3..6facf576055 100644
--- a/lisp/emacs-lisp/lisp-mode.el
+++ b/lisp/emacs-lisp/lisp-mode.el
@@ -229,248 +229,246 @@
229 (match-beginning 0))))) 229 (match-beginning 0)))))
230 (throw 'found t)))))) 230 (throw 'found t))))))
231 231
232(pcase-let 232(let-when-compile
233 ((`(,vdefs ,tdefs 233 ((lisp-fdefs '("defmacro" "defsubst" "defun"))
234 ,el-defs-re ,cl-defs-re 234 (lisp-vdefs '("defvar"))
235 ,el-kws-re ,cl-kws-re 235 (lisp-kw '("cond" "if" "while" "let" "let*" "progn" "prog1"
236 ,el-errs-re ,cl-errs-re) 236 "prog2" "lambda" "unwind-protect" "condition-case"
237 (eval-when-compile 237 "when" "unless" "with-output-to-string"
238 (let ((lisp-fdefs '("defmacro" "defsubst" "defun")) 238 "ignore-errors" "dotimes" "dolist" "declare"))
239 (lisp-vdefs '("defvar")) 239 (lisp-errs '("warn" "error" "signal"))
240 (lisp-kw '("cond" "if" "while" "let" "let*" "progn" "prog1" 240 ;; Elisp constructs. Now they are update dynamically
241 "prog2" "lambda" "unwind-protect" "condition-case" 241 ;; from obarray but they are also used for setting up
242 "when" "unless" "with-output-to-string" 242 ;; the keywords for Common Lisp.
243 "ignore-errors" "dotimes" "dolist" "declare")) 243 (el-fdefs '("define-advice" "defadvice" "defalias"
244 (lisp-errs '("warn" "error" "signal")) 244 "define-derived-mode" "define-minor-mode"
245 ;; Elisp constructs. Now they are update dynamically 245 "define-generic-mode" "define-global-minor-mode"
246 ;; from obarray but they are also used for setting up 246 "define-globalized-minor-mode" "define-skeleton"
247 ;; the keywords for Common Lisp. 247 "define-widget"))
248 (el-fdefs '("define-advice" "defadvice" "defalias" 248 (el-vdefs '("defconst" "defcustom" "defvaralias" "defvar-local"
249 "define-derived-mode" "define-minor-mode" 249 "defface"))
250 "define-generic-mode" "define-global-minor-mode" 250 (el-tdefs '("defgroup" "deftheme"))
251 "define-globalized-minor-mode" "define-skeleton" 251 (el-kw '("while-no-input" "letrec" "pcase" "pcase-exhaustive"
252 "define-widget")) 252 "pcase-lambda" "pcase-let" "pcase-let*" "save-restriction"
253 (el-vdefs '("defconst" "defcustom" "defvaralias" "defvar-local" 253 "save-excursion" "save-selected-window"
254 "defface")) 254 ;; "eval-after-load" "eval-next-after-load"
255 (el-tdefs '("defgroup" "deftheme")) 255 "save-window-excursion" "save-current-buffer"
256 (el-kw '("while-no-input" "letrec" "pcase" "pcase-exhaustive" 256 "save-match-data" "combine-after-change-calls"
257 "pcase-lambda" "pcase-let" "pcase-let*" "save-restriction" 257 "condition-case-unless-debug" "track-mouse"
258 "save-excursion" "save-selected-window" 258 "eval-and-compile" "eval-when-compile" "with-case-table"
259 ;; "eval-after-load" "eval-next-after-load" 259 "with-category-table" "with-coding-priority"
260 "save-window-excursion" "save-current-buffer" 260 "with-current-buffer" "with-demoted-errors"
261 "save-match-data" "combine-after-change-calls" 261 "with-electric-help" "with-eval-after-load"
262 "condition-case-unless-debug" "track-mouse" 262 "with-file-modes"
263 "eval-and-compile" "eval-when-compile" "with-case-table" 263 "with-local-quit" "with-no-warnings"
264 "with-category-table" "with-coding-priority" 264 "with-output-to-temp-buffer" "with-selected-window"
265 "with-current-buffer" "with-demoted-errors" 265 "with-selected-frame" "with-silent-modifications"
266 "with-electric-help" "with-eval-after-load" 266 "with-syntax-table" "with-temp-buffer" "with-temp-file"
267 "with-file-modes" 267 "with-temp-message" "with-timeout"
268 "with-local-quit" "with-no-warnings" 268 "with-timeout-handler"))
269 "with-output-to-temp-buffer" "with-selected-window" 269 (el-errs '("user-error"))
270 "with-selected-frame" "with-silent-modifications" 270 ;; Common-Lisp constructs supported by EIEIO. FIXME: namespace.
271 "with-syntax-table" "with-temp-buffer" "with-temp-file" 271 (eieio-fdefs '("defgeneric" "defmethod"))
272 "with-temp-message" "with-timeout" 272 (eieio-tdefs '("defclass"))
273 "with-timeout-handler")) 273 (eieio-kw '("with-slots"))
274 (el-errs '("user-error")) 274 ;; Common-Lisp constructs supported by cl-lib.
275 ;; Common-Lisp constructs supported by EIEIO. FIXME: namespace. 275 (cl-lib-fdefs '("defmacro" "defsubst" "defun" "defmethod"))
276 (eieio-fdefs '("defgeneric" "defmethod")) 276 (cl-lib-tdefs '("defstruct" "deftype"))
277 (eieio-tdefs '("defclass")) 277 (cl-lib-kw '("progv" "eval-when" "case" "ecase" "typecase"
278 (eieio-kw '("with-slots")) 278 "etypecase" "ccase" "ctypecase" "loop" "do" "do*"
279 ;; Common-Lisp constructs supported by cl-lib. 279 "the" "locally" "proclaim" "declaim" "letf" "go"
280 (cl-lib-fdefs '("defmacro" "defsubst" "defun" "defmethod")) 280 ;; "lexical-let" "lexical-let*"
281 (cl-lib-tdefs '("defstruct" "deftype")) 281 "symbol-macrolet" "flet" "flet*" "destructuring-bind"
282 (cl-lib-kw '("progv" "eval-when" "case" "ecase" "typecase" 282 "labels" "macrolet" "tagbody" "multiple-value-bind"
283 "etypecase" "ccase" "ctypecase" "loop" "do" "do*" 283 "block" "return" "return-from"))
284 "the" "locally" "proclaim" "declaim" "letf" "go" 284 (cl-lib-errs '("assert" "check-type"))
285 ;; "lexical-let" "lexical-let*" 285 ;; Common-Lisp constructs not supported by cl-lib.
286 "symbol-macrolet" "flet" "flet*" "destructuring-bind" 286 (cl-fdefs '("defsetf" "define-method-combination"
287 "labels" "macrolet" "tagbody" "multiple-value-bind" 287 "define-condition" "define-setf-expander"
288 "block" "return" "return-from")) 288 ;; "define-function"??
289 (cl-lib-errs '("assert" "check-type")) 289 "define-compiler-macro" "define-modify-macro"))
290 ;; Common-Lisp constructs not supported by cl-lib. 290 (cl-vdefs '("define-symbol-macro" "defconstant" "defparameter"))
291 (cl-fdefs '("defsetf" "define-method-combination" 291 (cl-tdefs '("defpackage" "defstruct" "deftype"))
292 "define-condition" "define-setf-expander" 292 (cl-kw '("prog" "prog*" "handler-case" "handler-bind"
293 ;; "define-function"?? 293 "in-package" "restart-case" ;; "inline"
294 "define-compiler-macro" "define-modify-macro")) 294 "restart-bind" "break" "multiple-value-prog1"
295 (cl-vdefs '("define-symbol-macro" "defconstant" "defparameter")) 295 "compiler-let" "with-accessors" "with-compilation-unit"
296 (cl-tdefs '("defpackage" "defstruct" "deftype")) 296 "with-condition-restarts" "with-hash-table-iterator"
297 (cl-kw '("prog" "prog*" "handler-case" "handler-bind" 297 "with-input-from-string" "with-open-file"
298 "in-package" "restart-case" ;; "inline" 298 "with-open-stream" "with-package-iterator"
299 "restart-bind" "break" "multiple-value-prog1" 299 "with-simple-restart" "with-standard-io-syntax"))
300 "compiler-let" "with-accessors" "with-compilation-unit" 300 (cl-errs '("abort" "cerror")))
301 "with-condition-restarts" "with-hash-table-iterator" 301 (let ((vdefs (eval-when-compile
302 "with-input-from-string" "with-open-file" 302 (append lisp-vdefs el-vdefs cl-vdefs)))
303 "with-open-stream" "with-package-iterator" 303 (tdefs (eval-when-compile
304 "with-simple-restart" "with-standard-io-syntax")) 304 (append el-tdefs eieio-tdefs cl-tdefs cl-lib-tdefs
305 (cl-errs '("abort" "cerror"))) 305 (mapcar (lambda (s) (concat "cl-" s)) cl-lib-tdefs))))
306 306 ;; Elisp and Common Lisp definers.
307 (list (append lisp-vdefs el-vdefs cl-vdefs) 307 (el-defs-re (eval-when-compile
308 (append el-tdefs eieio-tdefs cl-tdefs cl-lib-tdefs 308 (regexp-opt (append lisp-fdefs lisp-vdefs
309 (mapcar (lambda (s) (concat "cl-" s)) cl-lib-tdefs)) 309 el-fdefs el-vdefs el-tdefs
310 310 (mapcar (lambda (s) (concat "cl-" s))
311 ;; Elisp and Common Lisp definers. 311 (append cl-lib-fdefs cl-lib-tdefs))
312 (regexp-opt (append lisp-fdefs lisp-vdefs 312 eieio-fdefs eieio-tdefs)
313 el-fdefs el-vdefs el-tdefs 313 t)))
314 (mapcar (lambda (s) (concat "cl-" s)) 314 (cl-defs-re (eval-when-compile
315 (append cl-lib-fdefs cl-lib-tdefs)) 315 (regexp-opt (append lisp-fdefs lisp-vdefs
316 eieio-fdefs eieio-tdefs) 316 cl-lib-fdefs cl-lib-tdefs
317 t) 317 eieio-fdefs eieio-tdefs
318 (regexp-opt (append lisp-fdefs lisp-vdefs 318 cl-fdefs cl-vdefs cl-tdefs)
319 cl-lib-fdefs cl-lib-tdefs 319 t)))
320 eieio-fdefs eieio-tdefs 320 ;; Elisp and Common Lisp keywords.
321 cl-fdefs cl-vdefs cl-tdefs) 321 ;; (el-kws-re (eval-when-compile
322 t) 322 ;; (regexp-opt (append
323 323 ;; lisp-kw el-kw eieio-kw
324 ;; Elisp and Common Lisp keywords. 324 ;; (cons "go" (mapcar (lambda (s) (concat "cl-" s))
325 (regexp-opt (append 325 ;; (remove "go" cl-lib-kw))))
326 lisp-kw el-kw eieio-kw 326 ;; t)))
327 (cons "go" (mapcar (lambda (s) (concat "cl-" s)) 327 (cl-kws-re (eval-when-compile
328 (remove "go" cl-lib-kw)))) 328 (regexp-opt (append lisp-kw cl-kw eieio-kw cl-lib-kw)
329 t) 329 t)))
330 (regexp-opt (append lisp-kw cl-kw eieio-kw cl-lib-kw) 330 ;; Elisp and Common Lisp "errors".
331 t) 331 (el-errs-re (eval-when-compile
332 332 (regexp-opt (append (mapcar (lambda (s) (concat "cl-" s))
333 ;; Elisp and Common Lisp "errors". 333 cl-lib-errs)
334 (regexp-opt (append (mapcar (lambda (s) (concat "cl-" s)) 334 lisp-errs el-errs)
335 cl-lib-errs) 335 t)))
336 lisp-errs el-errs) 336 (cl-errs-re (eval-when-compile
337 t) 337 (regexp-opt (append lisp-errs cl-lib-errs cl-errs) t))))
338 (regexp-opt (append lisp-errs cl-lib-errs cl-errs) t)))))) 338 (dolist (v vdefs)
339 339 (put (intern v) 'lisp-define-type 'var))
340 (dolist (v vdefs) 340 (dolist (v tdefs)
341 (put (intern v) 'lisp-define-type 'var)) 341 (put (intern v) 'lisp-define-type 'type))
342 (dolist (v tdefs) 342
343 (put (intern v) 'lisp-define-type 'type)) 343 (define-obsolete-variable-alias 'lisp-font-lock-keywords-1
344 344 'lisp-el-font-lock-keywords-1 "24.4")
345 (define-obsolete-variable-alias 'lisp-font-lock-keywords-1 345 (defconst lisp-el-font-lock-keywords-1
346 'lisp-el-font-lock-keywords-1 "24.4") 346 `( ;; Definitions.
347 (defconst lisp-el-font-lock-keywords-1 347 (,(concat "(" el-defs-re "\\_>"
348 `( ;; Definitions. 348 ;; Any whitespace and defined object.
349 (,(concat "(" el-defs-re "\\_>" 349 "[ \t']*"
350 ;; Any whitespace and defined object. 350 "\\(([ \t']*\\)?" ;; An opening paren.
351 "[ \t']*" 351 "\\(\\(setf\\)[ \t]+\\(?:\\sw\\|\\s_\\)+\\|\\(?:\\sw\\|\\s_\\)+\\)?")
352 "\\(([ \t']*\\)?" ;; An opening paren. 352 (1 font-lock-keyword-face)
353 "\\(\\(setf\\)[ \t]+\\(?:\\sw\\|\\s_\\)+\\|\\(?:\\sw\\|\\s_\\)+\\)?") 353 (3 (let ((type (get (intern-soft (match-string 1)) 'lisp-define-type)))
354 (1 font-lock-keyword-face) 354 (cond ((eq type 'var) font-lock-variable-name-face)
355 (3 (let ((type (get (intern-soft (match-string 1)) 'lisp-define-type))) 355 ((eq type 'type) font-lock-type-face)
356 (cond ((eq type 'var) font-lock-variable-name-face) 356 ;; If match-string 2 is non-nil, we encountered a
357 ((eq type 'type) font-lock-type-face) 357 ;; form like (defalias (intern (concat s "-p"))),
358 ;; If match-string 2 is non-nil, we encountered a 358 ;; unless match-string 4 is also there. Then its a
359 ;; form like (defalias (intern (concat s "-p"))), 359 ;; defmethod with (setf foo) as name.
360 ;; unless match-string 4 is also there. Then its a 360 ((or (not (match-string 2)) ;; Normal defun.
361 ;; defmethod with (setf foo) as name. 361 (and (match-string 2) ;; Setf method.
362 ((or (not (match-string 2)) ;; Normal defun. 362 (match-string 4))) font-lock-function-name-face)))
363 (and (match-string 2) ;; Setf method. 363 nil t))
364 (match-string 4))) font-lock-function-name-face))) 364 ;; Emacs Lisp autoload cookies. Supports the slightly different
365 nil t)) 365 ;; forms used by mh-e, calendar, etc.
366 ;; Emacs Lisp autoload cookies. Supports the slightly different 366 ("^;;;###\\([-a-z]*autoload\\)" 1 font-lock-warning-face prepend))
367 ;; forms used by mh-e, calendar, etc. 367 "Subdued level highlighting for Emacs Lisp mode.")
368 ("^;;;###\\([-a-z]*autoload\\)" 1 font-lock-warning-face prepend)) 368
369 "Subdued level highlighting for Emacs Lisp mode.") 369 (defconst lisp-cl-font-lock-keywords-1
370 370 `( ;; Definitions.
371 (defconst lisp-cl-font-lock-keywords-1 371 (,(concat "(" cl-defs-re "\\_>"
372 `( ;; Definitions. 372 ;; Any whitespace and defined object.
373 (,(concat "(" cl-defs-re "\\_>" 373 "[ \t']*"
374 ;; Any whitespace and defined object. 374 "\\(([ \t']*\\)?" ;; An opening paren.
375 "[ \t']*" 375 "\\(\\(setf\\)[ \t]+\\(?:\\sw\\|\\s_\\)+\\|\\(?:\\sw\\|\\s_\\)+\\)?")
376 "\\(([ \t']*\\)?" ;; An opening paren. 376 (1 font-lock-keyword-face)
377 "\\(\\(setf\\)[ \t]+\\(?:\\sw\\|\\s_\\)+\\|\\(?:\\sw\\|\\s_\\)+\\)?") 377 (3 (let ((type (get (intern-soft (match-string 1)) 'lisp-define-type)))
378 (1 font-lock-keyword-face) 378 (cond ((eq type 'var) font-lock-variable-name-face)
379 (3 (let ((type (get (intern-soft (match-string 1)) 'lisp-define-type))) 379 ((eq type 'type) font-lock-type-face)
380 (cond ((eq type 'var) font-lock-variable-name-face) 380 ((or (not (match-string 2)) ;; Normal defun.
381 ((eq type 'type) font-lock-type-face) 381 (and (match-string 2) ;; Setf function.
382 ((or (not (match-string 2)) ;; Normal defun. 382 (match-string 4))) font-lock-function-name-face)))
383 (and (match-string 2) ;; Setf function. 383 nil t)))
384 (match-string 4))) font-lock-function-name-face))) 384 "Subdued level highlighting for Lisp modes.")
385 nil t))) 385
386 "Subdued level highlighting for Lisp modes.") 386 (define-obsolete-variable-alias 'lisp-font-lock-keywords-2
387 387 'lisp-el-font-lock-keywords-2 "24.4")
388 (define-obsolete-variable-alias 'lisp-font-lock-keywords-2 388 (defconst lisp-el-font-lock-keywords-2
389 'lisp-el-font-lock-keywords-2 "24.4") 389 (append
390 (defconst lisp-el-font-lock-keywords-2 390 lisp-el-font-lock-keywords-1
391 (append 391 `( ;; Regexp negated char group.
392 lisp-el-font-lock-keywords-1 392 ("\\[\\(\\^\\)" 1 font-lock-negation-char-face prepend)
393 `( ;; Regexp negated char group. 393 ;; Control structures. Common Lisp forms.
394 ("\\[\\(\\^\\)" 1 font-lock-negation-char-face prepend) 394 (lisp--el-match-keyword . 1)
395 ;; Control structures. Common Lisp forms. 395 ;; Exit/Feature symbols as constants.
396 (lisp--el-match-keyword . 1) 396 (,(concat "(\\(catch\\|throw\\|featurep\\|provide\\|require\\)\\_>"
397 ;; Exit/Feature symbols as constants. 397 "[ \t']*\\(\\(?:\\sw\\|\\s_\\)+\\)?")
398 (,(concat "(\\(catch\\|throw\\|featurep\\|provide\\|require\\)\\_>" 398 (1 font-lock-keyword-face)
399 "[ \t']*\\(\\(?:\\sw\\|\\s_\\)+\\)?") 399 (2 font-lock-constant-face nil t))
400 (1 font-lock-keyword-face) 400 ;; Erroneous structures.
401 (2 font-lock-constant-face nil t)) 401 (,(concat "(" el-errs-re "\\_>")
402 ;; Erroneous structures. 402 (1 font-lock-warning-face))
403 (,(concat "(" el-errs-re "\\_>") 403 ;; Words inside \\[] tend to be for `substitute-command-keys'.
404 (1 font-lock-warning-face)) 404 ("\\\\\\\\\\[\\(\\(?:\\sw\\|\\s_\\)+\\)\\]"
405 ;; Words inside \\[] tend to be for `substitute-command-keys'. 405 (1 font-lock-constant-face prepend))
406 ("\\\\\\\\\\[\\(\\(?:\\sw\\|\\s_\\)+\\)\\]" 406 ;; Words inside `' tend to be symbol names.
407 (1 font-lock-constant-face prepend)) 407 ("`\\(\\(?:\\sw\\|\\s_\\)\\(?:\\sw\\|\\s_\\)+\\)'"
408 ;; Words inside `' tend to be symbol names. 408 (1 font-lock-constant-face prepend))
409 ("`\\(\\(?:\\sw\\|\\s_\\)\\(?:\\sw\\|\\s_\\)+\\)'" 409 ;; Constant values.
410 (1 font-lock-constant-face prepend)) 410 ("\\_<:\\(?:\\sw\\|\\s_\\)+\\_>" 0 font-lock-builtin-face)
411 ;; Constant values. 411 ;; ELisp and CLisp `&' keywords as types.
412 ("\\_<:\\(?:\\sw\\|\\s_\\)+\\_>" 0 font-lock-builtin-face) 412 ("\\_<\\&\\(?:\\sw\\|\\s_\\)+\\_>" . font-lock-type-face)
413 ;; ELisp and CLisp `&' keywords as types. 413 ;; ELisp regexp grouping constructs
414 ("\\_<\\&\\(?:\\sw\\|\\s_\\)+\\_>" . font-lock-type-face) 414 (,(lambda (bound)
415 ;; ELisp regexp grouping constructs 415 (catch 'found
416 (,(lambda (bound) 416 ;; The following loop is needed to continue searching after matches
417 (catch 'found 417 ;; that do not occur in strings. The associated regexp matches one
418 ;; The following loop is needed to continue searching after matches 418 ;; of `\\\\' `\\(' `\\(?:' `\\|' `\\)'. `\\\\' has been included to
419 ;; that do not occur in strings. The associated regexp matches one 419 ;; avoid highlighting, for example, `\\(' in `\\\\('.
420 ;; of `\\\\' `\\(' `\\(?:' `\\|' `\\)'. `\\\\' has been included to 420 (while (re-search-forward "\\(\\\\\\\\\\)\\(?:\\(\\\\\\\\\\)\\|\\((\\(?:\\?[0-9]*:\\)?\\|[|)]\\)\\)" bound t)
421 ;; avoid highlighting, for example, `\\(' in `\\\\('. 421 (unless (match-beginning 2)
422 (while (re-search-forward "\\(\\\\\\\\\\)\\(?:\\(\\\\\\\\\\)\\|\\((\\(?:\\?[0-9]*:\\)?\\|[|)]\\)\\)" bound t) 422 (let ((face (get-text-property (1- (point)) 'face)))
423 (unless (match-beginning 2) 423 (when (or (and (listp face)
424 (let ((face (get-text-property (1- (point)) 'face))) 424 (memq 'font-lock-string-face face))
425 (when (or (and (listp face) 425 (eq 'font-lock-string-face face))
426 (memq 'font-lock-string-face face)) 426 (throw 'found t)))))))
427 (eq 'font-lock-string-face face)) 427 (1 'font-lock-regexp-grouping-backslash prepend)
428 (throw 'found t))))))) 428 (3 'font-lock-regexp-grouping-construct prepend))
429 (1 'font-lock-regexp-grouping-backslash prepend) 429 ;; This is too general -- rms.
430 (3 'font-lock-regexp-grouping-construct prepend)) 430 ;; A user complained that he has functions whose names start with `do'
431 ;; This is too general -- rms. 431 ;; and that they get the wrong color.
432 ;; A user complained that he has functions whose names start with `do' 432 ;; ;; CL `with-' and `do-' constructs
433 ;; and that they get the wrong color. 433 ;;("(\\(\\(do-\\|with-\\)\\(\\s_\\|\\w\\)*\\)" 1 font-lock-keyword-face)
434 ;; ;; CL `with-' and `do-' constructs 434 (lisp--match-hidden-arg
435 ;;("(\\(\\(do-\\|with-\\)\\(\\s_\\|\\w\\)*\\)" 1 font-lock-keyword-face) 435 (0 '(face font-lock-warning-face
436 (lisp--match-hidden-arg 436 help-echo "Hidden behind deeper element; move to another line?")))
437 (0 '(face font-lock-warning-face 437 ))
438 help-echo "Hidden behind deeper element; move to another line?"))) 438 "Gaudy level highlighting for Emacs Lisp mode.")
439 )) 439
440 "Gaudy level highlighting for Emacs Lisp mode.") 440 (defconst lisp-cl-font-lock-keywords-2
441 441 (append
442 (defconst lisp-cl-font-lock-keywords-2 442 lisp-cl-font-lock-keywords-1
443 (append 443 `( ;; Regexp negated char group.
444 lisp-cl-font-lock-keywords-1 444 ("\\[\\(\\^\\)" 1 font-lock-negation-char-face prepend)
445 `( ;; Regexp negated char group. 445 ;; Control structures. Common Lisp forms.
446 ("\\[\\(\\^\\)" 1 font-lock-negation-char-face prepend) 446 (,(concat "(" cl-kws-re "\\_>") . 1)
447 ;; Control structures. Common Lisp forms. 447 ;; Exit/Feature symbols as constants.
448 (,(concat "(" cl-kws-re "\\_>") . 1) 448 (,(concat "(\\(catch\\|throw\\|provide\\|require\\)\\_>"
449 ;; Exit/Feature symbols as constants. 449 "[ \t']*\\(\\(?:\\sw\\|\\s_\\)+\\)?")
450 (,(concat "(\\(catch\\|throw\\|provide\\|require\\)\\_>" 450 (1 font-lock-keyword-face)
451 "[ \t']*\\(\\(?:\\sw\\|\\s_\\)+\\)?") 451 (2 font-lock-constant-face nil t))
452 (1 font-lock-keyword-face) 452 ;; Erroneous structures.
453 (2 font-lock-constant-face nil t)) 453 (,(concat "(" cl-errs-re "\\_>")
454 ;; Erroneous structures. 454 (1 font-lock-warning-face))
455 (,(concat "(" cl-errs-re "\\_>") 455 ;; Words inside `' tend to be symbol names.
456 (1 font-lock-warning-face)) 456 ("`\\(\\(?:\\sw\\|\\s_\\)\\(?:\\sw\\|\\s_\\)+\\)'"
457 ;; Words inside `' tend to be symbol names. 457 (1 font-lock-constant-face prepend))
458 ("`\\(\\(?:\\sw\\|\\s_\\)\\(?:\\sw\\|\\s_\\)+\\)'" 458 ;; Constant values.
459 (1 font-lock-constant-face prepend)) 459 ("\\_<:\\(?:\\sw\\|\\s_\\)+\\_>" 0 font-lock-builtin-face)
460 ;; Constant values. 460 ;; ELisp and CLisp `&' keywords as types.
461 ("\\_<:\\(?:\\sw\\|\\s_\\)+\\_>" 0 font-lock-builtin-face) 461 ("\\_<\\&\\(?:\\sw\\|\\s_\\)+\\_>" . font-lock-type-face)
462 ;; ELisp and CLisp `&' keywords as types. 462 ;; This is too general -- rms.
463 ("\\_<\\&\\(?:\\sw\\|\\s_\\)+\\_>" . font-lock-type-face) 463 ;; A user complained that he has functions whose names start with `do'
464 ;; This is too general -- rms. 464 ;; and that they get the wrong color.
465 ;; A user complained that he has functions whose names start with `do' 465 ;; ;; CL `with-' and `do-' constructs
466 ;; and that they get the wrong color. 466 ;;("(\\(\\(do-\\|with-\\)\\(\\s_\\|\\w\\)*\\)" 1 font-lock-keyword-face)
467 ;; ;; CL `with-' and `do-' constructs 467 (lisp--match-hidden-arg
468 ;;("(\\(\\(do-\\|with-\\)\\(\\s_\\|\\w\\)*\\)" 1 font-lock-keyword-face) 468 (0 '(face font-lock-warning-face
469 (lisp--match-hidden-arg 469 help-echo "Hidden behind deeper element; move to another line?")))
470 (0 '(face font-lock-warning-face 470 ))
471 help-echo "Hidden behind deeper element; move to another line?"))) 471 "Gaudy level highlighting for Lisp modes.")))
472 ))
473 "Gaudy level highlighting for Lisp modes."))
474 472
475(define-obsolete-variable-alias 'lisp-font-lock-keywords 473(define-obsolete-variable-alias 'lisp-font-lock-keywords
476 'lisp-el-font-lock-keywords "24.4") 474 'lisp-el-font-lock-keywords "24.4")
diff --git a/lisp/emacs-lisp/lisp.el b/lisp/emacs-lisp/lisp.el
index d401b316719..7b7b48c66de 100644
--- a/lisp/emacs-lisp/lisp.el
+++ b/lisp/emacs-lisp/lisp.el
@@ -746,9 +746,10 @@ The context determines which symbols are considered. If the
746symbol starts just after an open-parenthesis, only symbols with 746symbol starts just after an open-parenthesis, only symbols with
747function definitions are considered. Otherwise, all symbols with 747function definitions are considered. Otherwise, all symbols with
748function definitions, values or properties are considered." 748function definitions, values or properties are considered."
749 (declare (obsolete completion-at-point "24.4")) 749 (declare (obsolete completion-at-point "24.4")
750 (advertised-calling-convention () "25.1"))
750 (interactive) 751 (interactive)
751 (let* ((data (lisp-completion-at-point)) 752 (let* ((data (elisp-completion-at-point))
752 (plist (nthcdr 3 data))) 753 (plist (nthcdr 3 data)))
753 (if (null data) 754 (if (null data)
754 (minibuffer-message "Nothing to complete") 755 (minibuffer-message "Nothing to complete")
diff --git a/lisp/emacs-lisp/package.el b/lisp/emacs-lisp/package.el
index 55fa962719d..b96518df502 100644
--- a/lisp/emacs-lisp/package.el
+++ b/lisp/emacs-lisp/package.el
@@ -341,7 +341,7 @@ This variable is fed automatically by Emacs when installing a new package.
341This variable is used by `package-autoremove' to decide 341This variable is used by `package-autoremove' to decide
342which packages are no longer needed. 342which packages are no longer needed.
343You can use it to (re)install packages on other machines 343You can use it to (re)install packages on other machines
344by running `package-user-selected-packages-install'. 344by running `package-install-selected-packages'.
345 345
346To check if a package is contained in this list here, use 346To check if a package is contained in this list here, use
347`package--user-selected-p', as it may populate the variable with 347`package--user-selected-p', as it may populate the variable with
@@ -350,8 +350,9 @@ a sane initial value."
350 350
351(defcustom package-menu-async t 351(defcustom package-menu-async t
352 "If non-nil, package-menu will use async operations when possible. 352 "If non-nil, package-menu will use async operations when possible.
353This includes refreshing archive contents as well as installing 353Currently, only the refreshing of archive contents supports
354packages." 354asynchronous operations. Package transactions are still done
355synchronously."
355 :type 'boolean 356 :type 'boolean
356 :version "25.1") 357 :version "25.1")
357 358
@@ -1646,21 +1647,25 @@ These are packages which are neither contained in
1646 unless (memq p needed) 1647 unless (memq p needed)
1647 collect p))) 1648 collect p)))
1648 1649
1649(defun package--used-elsewhere-p (pkg-desc &optional pkg-list) 1650(defun package--used-elsewhere-p (pkg-desc &optional pkg-list all)
1650 "Non-nil if PKG-DESC is a dependency of a package in PKG-LIST. 1651 "Non-nil if PKG-DESC is a dependency of a package in PKG-LIST.
1651Return the first package found in PKG-LIST of which PKG is a 1652Return the first package found in PKG-LIST of which PKG is a
1652dependency. 1653dependency. If ALL is non-nil, return all such packages instead.
1653 1654
1654When not specified, PKG-LIST defaults to `package-alist' 1655When not specified, PKG-LIST defaults to `package-alist'
1655with PKG-DESC entry removed." 1656with PKG-DESC entry removed."
1656 (unless (string= (package-desc-status pkg-desc) "obsolete") 1657 (unless (string= (package-desc-status pkg-desc) "obsolete")
1657 (let ((pkg (package-desc-name pkg-desc))) 1658 (let* ((pkg (package-desc-name pkg-desc))
1658 (cl-loop with alist = (or pkg-list 1659 (alist (or pkg-list
1659 (remove (assq pkg package-alist) 1660 (remove (assq pkg package-alist)
1660 package-alist)) 1661 package-alist))))
1661 for p in alist thereis 1662 (if all
1662 (and (memq pkg (mapcar #'car (package-desc-reqs (cadr p)))) 1663 (cl-loop for p in alist
1663 (car p)))))) 1664 if (assq pkg (package-desc-reqs (cadr p)))
1665 collect (cadr p))
1666 (cl-loop for p in alist thereis
1667 (and (assq pkg (package-desc-reqs (cadr p)))
1668 (cadr p)))))))
1664 1669
1665(defun package--sort-deps-in-alist (package only) 1670(defun package--sort-deps-in-alist (package only)
1666 "Return a list of dependencies for PACKAGE sorted by dependency. 1671 "Return a list of dependencies for PACKAGE sorted by dependency.
@@ -1708,31 +1713,26 @@ if all the in-between dependencies are also in PACKAGE-LIST."
1708 "Return the archive containing the package NAME." 1713 "Return the archive containing the package NAME."
1709 (cdr (assoc (package-desc-archive desc) package-archives))) 1714 (cdr (assoc (package-desc-archive desc) package-archives)))
1710 1715
1711(defun package-install-from-archive (pkg-desc &optional async callback) 1716(defun package-install-from-archive (pkg-desc)
1712 "Download and install a tar package. 1717 "Download and install a tar package."
1713If ASYNC is non-nil, perform the download asynchronously.
1714If CALLBACK is non-nil, call it with no arguments once the
1715operation is done."
1716 ;; This won't happen, unless the archive is doing something wrong. 1718 ;; This won't happen, unless the archive is doing something wrong.
1717 (when (eq (package-desc-kind pkg-desc) 'dir) 1719 (when (eq (package-desc-kind pkg-desc) 'dir)
1718 (error "Can't install directory package from archive")) 1720 (error "Can't install directory package from archive"))
1719 (let* ((location (package-archive-base pkg-desc)) 1721 (let* ((location (package-archive-base pkg-desc))
1720 (file (concat (package-desc-full-name pkg-desc) 1722 (file (concat (package-desc-full-name pkg-desc)
1721 (package-desc-suffix pkg-desc)))) 1723 (package-desc-suffix pkg-desc))))
1722 (package--with-work-buffer-async location file async 1724 (package--with-work-buffer location file
1723 (if (or (not package-check-signature) 1725 (if (or (not package-check-signature)
1724 (member (package-desc-archive pkg-desc) 1726 (member (package-desc-archive pkg-desc)
1725 package-unsigned-archives)) 1727 package-unsigned-archives))
1726 ;; If we don't care about the signature, unpack and we're 1728 ;; If we don't care about the signature, unpack and we're
1727 ;; done. 1729 ;; done.
1728 (progn (let ((save-silently async) 1730 (let ((save-silently t))
1729 (inhibit-message async)) 1731 (package-unpack pkg-desc))
1730 (package-unpack pkg-desc))
1731 (funcall callback))
1732 ;; If we care, check it and *then* write the file. 1732 ;; If we care, check it and *then* write the file.
1733 (let ((content (buffer-string))) 1733 (let ((content (buffer-string)))
1734 (package--check-signature 1734 (package--check-signature
1735 location file content async 1735 location file content nil
1736 ;; This function will be called after signature checking. 1736 ;; This function will be called after signature checking.
1737 (lambda (&optional good-sigs) 1737 (lambda (&optional good-sigs)
1738 (unless (or good-sigs (eq package-check-signature 'allow-unsigned)) 1738 (unless (or good-sigs (eq package-check-signature 'allow-unsigned))
@@ -1742,8 +1742,7 @@ operation is done."
1742 (package-desc-name pkg-desc))) 1742 (package-desc-name pkg-desc)))
1743 ;; Signature checked, unpack now. 1743 ;; Signature checked, unpack now.
1744 (with-temp-buffer (insert content) 1744 (with-temp-buffer (insert content)
1745 (let ((save-silently async) 1745 (let ((save-silently t))
1746 (inhibit-message async))
1747 (package-unpack pkg-desc))) 1746 (package-unpack pkg-desc)))
1748 ;; Here the package has been installed successfully, mark it as 1747 ;; Here the package has been installed successfully, mark it as
1749 ;; signed if appropriate. 1748 ;; signed if appropriate.
@@ -1759,9 +1758,7 @@ operation is done."
1759 (setf (package-desc-signed pkg-desc) t) 1758 (setf (package-desc-signed pkg-desc) t)
1760 ;; Update the new (activated) pkg-desc as well. 1759 ;; Update the new (activated) pkg-desc as well.
1761 (when-let ((pkg-descs (cdr (assq (package-desc-name pkg-desc) package-alist)))) 1760 (when-let ((pkg-descs (cdr (assq (package-desc-name pkg-desc) package-alist))))
1762 (setf (package-desc-signed (car pkg-descs)) t))) 1761 (setf (package-desc-signed (car pkg-descs)) t))))))))))
1763 (when (functionp callback)
1764 (funcall callback)))))))))
1765 1762
1766(defun package-installed-p (package &optional min-version) 1763(defun package-installed-p (package &optional min-version)
1767 "Return true if PACKAGE, of MIN-VERSION or newer, is installed. 1764 "Return true if PACKAGE, of MIN-VERSION or newer, is installed.
@@ -1782,25 +1779,13 @@ If PACKAGE is a package-desc object, MIN-VERSION is ignored."
1782 ;; Also check built-in packages. 1779 ;; Also check built-in packages.
1783 (package-built-in-p package min-version)))) 1780 (package-built-in-p package min-version))))
1784 1781
1785(defun package-download-transaction (packages &optional async callback) 1782(defun package-download-transaction (packages)
1786 "Download and install all the packages in PACKAGES. 1783 "Download and install all the packages in PACKAGES.
1787PACKAGES should be a list of package-desc. 1784PACKAGES should be a list of package-desc.
1788If ASYNC is non-nil, perform the downloads asynchronously.
1789If CALLBACK is non-nil, call it with no arguments once the
1790entire operation is done.
1791
1792This function assumes that all package requirements in 1785This function assumes that all package requirements in
1793PACKAGES are satisfied, i.e. that PACKAGES is computed 1786PACKAGES are satisfied, i.e. that PACKAGES is computed
1794using `package-compute-transaction'." 1787using `package-compute-transaction'."
1795 (cond 1788 (mapc #'package-install-from-archive packages))
1796 (packages (package-install-from-archive
1797 (car packages)
1798 async
1799 (lambda ()
1800 (package-download-transaction (cdr packages))
1801 (when (functionp callback)
1802 (funcall callback)))))
1803 (callback (funcall callback))))
1804 1789
1805(defun package--ensure-init-file () 1790(defun package--ensure-init-file ()
1806 "Ensure that the user's init file has `package-initialize'. 1791 "Ensure that the user's init file has `package-initialize'.
@@ -1853,16 +1838,13 @@ add a call to it along with some explanatory comments."
1853 (setq package--init-file-ensured t)) 1838 (setq package--init-file-ensured t))
1854 1839
1855;;;###autoload 1840;;;###autoload
1856(defun package-install (pkg &optional dont-select async callback) 1841(defun package-install (pkg &optional dont-select)
1857 "Install the package PKG. 1842 "Install the package PKG.
1858PKG can be a package-desc or the package name of one the available packages 1843PKG can be a package-desc or the package name of one the available packages
1859in an archive in `package-archives'. Interactively, prompt for its name. 1844in an archive in `package-archives'. Interactively, prompt for its name.
1860 1845
1861If called interactively or if DONT-SELECT nil, add PKG to 1846If called interactively or if DONT-SELECT nil, add PKG to
1862`package-selected-packages'. 1847`package-selected-packages'.
1863If ASYNC is non-nil, perform the downloads asynchronously.
1864If CALLBACK is non-nil, call it with no arguments once the
1865entire operation is done.
1866 1848
1867If PKG is a package-desc and it is already installed, don't try 1849If PKG is a package-desc and it is already installed, don't try
1868to install it but still mark it as selected." 1850to install it but still mark it as selected."
@@ -1895,9 +1877,8 @@ to install it but still mark it as selected."
1895 (package-compute-transaction (list pkg) 1877 (package-compute-transaction (list pkg)
1896 (package-desc-reqs pkg))) 1878 (package-desc-reqs pkg)))
1897 (package-compute-transaction () (list (list pkg)))))) 1879 (package-compute-transaction () (list (list pkg))))))
1898 (package-download-transaction transaction async callback) 1880 (package-download-transaction transaction)
1899 (message "`%s' is already installed" (package-desc-full-name pkg)) 1881 (message "`%s' is already installed" (package-desc-full-name pkg))))
1900 (funcall callback)))
1901 1882
1902(defun package-strip-rcs-id (str) 1883(defun package-strip-rcs-id (str)
1903 "Strip RCS version ID from the version string STR. 1884 "Strip RCS version ID from the version string STR.
@@ -2027,7 +2008,7 @@ If NOSAVE is non-nil, the package is not removed from
2027 ;; Don't delete packages used as dependency elsewhere. 2008 ;; Don't delete packages used as dependency elsewhere.
2028 (error "Package `%s' is used by `%s' as dependency, not deleting" 2009 (error "Package `%s' is used by `%s' as dependency, not deleting"
2029 (package-desc-full-name pkg-desc) 2010 (package-desc-full-name pkg-desc)
2030 pkg-used-elsewhere-by)) 2011 (package-desc-name pkg-used-elsewhere-by)))
2031 (t 2012 (t
2032 (delete-directory dir t t) 2013 (delete-directory dir t t)
2033 ;; Remove NAME-VERSION.signed file. 2014 ;; Remove NAME-VERSION.signed file.
@@ -2127,6 +2108,7 @@ will be deleted."
2127 (name (if desc (package-desc-name desc) pkg)) 2108 (name (if desc (package-desc-name desc) pkg))
2128 (pkg-dir (if desc (package-desc-dir desc))) 2109 (pkg-dir (if desc (package-desc-dir desc)))
2129 (reqs (if desc (package-desc-reqs desc))) 2110 (reqs (if desc (package-desc-reqs desc)))
2111 (required-by (if desc (package--used-elsewhere-p desc nil 'all)))
2130 (version (if desc (package-desc-version desc))) 2112 (version (if desc (package-desc-version desc)))
2131 (archive (if desc (package-desc-archive desc))) 2113 (archive (if desc (package-desc-archive desc)))
2132 (extras (and desc (package-desc-extras desc))) 2114 (extras (and desc (package-desc-extras desc)))
@@ -2168,7 +2150,14 @@ will be deleted."
2168 (insert "'")) 2150 (insert "'"))
2169 (if signed 2151 (if signed
2170 (insert ".") 2152 (insert ".")
2171 (insert " (unsigned)."))) 2153 (insert " (unsigned)."))
2154 (when (and (package-desc-p desc)
2155 (not required-by)
2156 (package-installed-p desc))
2157 (insert " ")
2158 (package-make-button "Delete"
2159 'action #'package-delete-button-action
2160 'package-desc desc)))
2172 (incompatible-reason 2161 (incompatible-reason
2173 (insert (propertize "Incompatible" 'face font-lock-warning-face) 2162 (insert (propertize "Incompatible" 'face font-lock-warning-face)
2174 " because it depends on ") 2163 " because it depends on ")
@@ -2212,6 +2201,19 @@ will be deleted."
2212 (help-insert-xref-button text 'help-package name) 2201 (help-insert-xref-button text 'help-package name)
2213 (insert reason))) 2202 (insert reason)))
2214 (insert "\n"))) 2203 (insert "\n")))
2204 (when required-by
2205 (insert (propertize "Required by" 'font-lock-face 'bold) ": ")
2206 (let ((first t))
2207 (dolist (pkg required-by)
2208 (let ((text (package-desc-full-name pkg)))
2209 (cond (first (setq first nil))
2210 ((>= (+ 2 (current-column) (length text))
2211 (window-width))
2212 (insert ",\n "))
2213 (t (insert ", ")))
2214 (help-insert-xref-button text 'help-package
2215 (package-desc-name pkg))))
2216 (insert "\n")))
2215 (insert " " (propertize "Summary" 'font-lock-face 'bold) 2217 (insert " " (propertize "Summary" 'font-lock-face 'bold)
2216 ": " (if desc (package-desc-summary desc)) "\n") 2218 ": " (if desc (package-desc-summary desc)) "\n")
2217 (when homepage 2219 (when homepage
@@ -2299,6 +2301,14 @@ will be deleted."
2299 (revert-buffer nil t) 2301 (revert-buffer nil t)
2300 (goto-char (point-min))))) 2302 (goto-char (point-min)))))
2301 2303
2304(defun package-delete-button-action (button)
2305 (let ((pkg-desc (button-get button 'package-desc)))
2306 (when (y-or-n-p (format "Delete package `%s'? "
2307 (package-desc-full-name pkg-desc)))
2308 (package-delete pkg-desc)
2309 (revert-buffer nil t)
2310 (goto-char (point-min)))))
2311
2302(defun package-keyword-button-action (button) 2312(defun package-keyword-button-action (button)
2303 (let ((pkg-keyword (button-get button 'package-keyword))) 2313 (let ((pkg-keyword (button-get button 'package-keyword)))
2304 (package-show-package-list t (list pkg-keyword)))) 2314 (package-show-package-list t (list pkg-keyword))))
@@ -2390,12 +2400,17 @@ will be deleted."
2390(defvar package-menu--new-package-list nil 2400(defvar package-menu--new-package-list nil
2391 "List of newly-available packages since `list-packages' was last called.") 2401 "List of newly-available packages since `list-packages' was last called.")
2392 2402
2403(defvar package-menu--transaction-status nil
2404 "Mode-line status of ongoing package transaction.")
2405
2393(define-derived-mode package-menu-mode tabulated-list-mode "Package Menu" 2406(define-derived-mode package-menu-mode tabulated-list-mode "Package Menu"
2394 "Major mode for browsing a list of packages. 2407 "Major mode for browsing a list of packages.
2395Letters do not insert themselves; instead, they are commands. 2408Letters do not insert themselves; instead, they are commands.
2396\\<package-menu-mode-map> 2409\\<package-menu-mode-map>
2397\\{package-menu-mode-map}" 2410\\{package-menu-mode-map}"
2398 (setq mode-line-process '(package--downloads-in-progress ":Loading")) 2411 (setq mode-line-process '((package--downloads-in-progress ":Loading")
2412 (package-menu--transaction-status
2413 package-menu--transaction-status)))
2399 (setq tabulated-list-format 2414 (setq tabulated-list-format
2400 `[("Package" 18 package-menu--name-predicate) 2415 `[("Package" 18 package-menu--name-predicate)
2401 ("Version" 13 nil) 2416 ("Version" 13 nil)
@@ -2885,57 +2900,77 @@ prompt (see `package-menu--prompt-transaction-p')."
2885 (t (format "package `%s'" 2900 (t (format "package `%s'"
2886 (package-desc-full-name (car packages)))))) 2901 (package-desc-full-name (car packages))))))
2887 2902
2888(defun package-menu--prompt-transaction-p (install delete) 2903(defun package-menu--prompt-transaction-p (delete install upgrade)
2889 "Prompt the user about installing INSTALL and deleting DELETE. 2904 "Prompt the user about DELETE, INSTALL, and UPGRADE.
2890INSTALL and DELETE are lists of `package-desc'. Either may be 2905DELETE, INSTALL, and UPGRADE are lists of `package-desc' objects.
2891nil, but not both." 2906Either may be nil, but not all."
2907 (y-or-n-p
2908 (concat
2909 (when delete "Delete ")
2910 (package-menu--list-to-prompt delete)
2911 (when (and delete install)
2912 (if upgrade "; " "; and "))
2913 (when install "Install ")
2914 (package-menu--list-to-prompt install)
2915 (when (and upgrade (or install delete)) "; and ")
2916 (when upgrade "Upgrade ")
2917 (package-menu--list-to-prompt upgrade)
2918 "? ")))
2919
2920(defun package-menu--partition-transaction (install delete)
2921 "Return an alist describing an INSTALL DELETE transaction.
2922Alist contains three entries, upgrade, delete, and install, each
2923with a list of package names.
2924
2925The upgrade entry contains any `package-desc' objects in INSTALL
2926whose name coincides with an object in DELETE. The delete and
2927the install entries are the same as DELETE and INSTALL with such
2928objects removed."
2892 (let* ((upg (cl-intersection install delete :key #'package-desc-name)) 2929 (let* ((upg (cl-intersection install delete :key #'package-desc-name))
2893 (ins (cl-set-difference install upg :key #'package-desc-name)) 2930 (ins (cl-set-difference install upg :key #'package-desc-name))
2894 (del (cl-set-difference delete upg :key #'package-desc-name))) 2931 (del (cl-set-difference delete upg :key #'package-desc-name)))
2895 (y-or-n-p 2932 `((delete . ,del) (install . ,ins) (upgrade . ,upg))))
2896 (concat 2933
2897 (when del "Delete ") 2934(defun package-menu--perform-transaction (install-list delete-list)
2898 (package-menu--list-to-prompt del) 2935 "Install packages in INSTALL-LIST and delete DELETE-LIST."
2899 (when (and del ins)
2900 (if upg "; " "; and "))
2901 (when ins "Install ")
2902 (package-menu--list-to-prompt ins)
2903 (when (and upg (or ins del)) "; and ")
2904 (when upg "Upgrade ")
2905 (package-menu--list-to-prompt upg)
2906 "? "))))
2907
2908(defun package-menu--perform-transaction (install-list delete-list &optional async)
2909 "Install packages in INSTALL-LIST and delete DELETE-LIST.
2910If ASYNC is non-nil, perform the installation downloads
2911asynchronously."
2912 ;; While there are packages to install, call `package-install' on
2913 ;; the next one and defer deletion to the callback function.
2914 (if install-list 2936 (if install-list
2915 (let* ((pkg (car install-list)) 2937 (let ((status-format (format ":Installing %%d/%d"
2916 (rest (cdr install-list)) 2938 (length install-list)))
2917 ;; Don't mark as selected if it's a new version of an 2939 (i 0)
2918 ;; installed package. 2940 (package-menu--transaction-status))
2919 (dont-mark (and (not (package-installed-p pkg)) 2941 (dolist (pkg install-list)
2920 (package-installed-p 2942 (setq package-menu--transaction-status
2921 (package-desc-name pkg))))) 2943 (format status-format (cl-incf i)))
2922 (package-install 2944 (force-mode-line-update)
2923 pkg dont-mark async 2945 (redisplay 'force)
2924 (lambda () (package-menu--perform-transaction rest delete-list async)))) 2946 ;; Don't mark as selected, `package-menu-execute' already
2925 (let ((inhibit-message async)) 2947 ;; does that.
2926 ;; Once there are no more packages to install, proceed to 2948 (package-install pkg 'dont-select)))
2927 ;; deletion. 2949 ;; Once there are no more packages to install, proceed to
2950 ;; deletion.
2951 (let ((package-menu--transaction-status ":Deleting"))
2952 (force-mode-line-update)
2953 (redisplay 'force)
2928 (dolist (elt (package--sort-by-dependence delete-list)) 2954 (dolist (elt (package--sort-by-dependence delete-list))
2929 (condition-case-unless-debug err 2955 (condition-case-unless-debug err
2930 (package-delete elt) 2956 (let ((inhibit-message t))
2931 (error (message (cadr err)))))) 2957 (package-delete elt nil 'nosave))
2932 (message "Transaction done") 2958 (error (message (cadr err))))))))
2933 (when package-selected-packages 2959
2934 (when-let ((removable (package--removable-packages))) 2960(defun package--update-selected-packages (add remove)
2935 (message "These %d packages are no longer needed, type `M-x package-autoremove' to remove them (%s)" 2961 "Update the `package-selected-packages' list according to ADD and REMOVE.
2936 (length removable) 2962ADD and REMOVE must be disjoint lists of package names (or
2937 (mapconcat #'symbol-name removable ", ")))) 2963`package-desc' objects) to be added and removed to the selected
2938 (package-menu--post-refresh))) 2964packages list, respectively."
2965 (dolist (p add)
2966 (cl-pushnew (if (package-desc-p p) (package-desc-name p) p)
2967 package-selected-packages))
2968 (dolist (p remove)
2969 (setq package-selected-packages
2970 (remove (if (package-desc-p p) (package-desc-name p) p)
2971 package-selected-packages)))
2972 (when (or add remove)
2973 (package--save-selected-packages package-selected-packages)))
2939 2974
2940(defun package-menu-execute (&optional noquery) 2975(defun package-menu-execute (&optional noquery)
2941 "Perform marked Package Menu actions. 2976 "Perform marked Package Menu actions.
@@ -2960,12 +2995,30 @@ Optional argument NOQUERY non-nil means do not ask the user to confirm."
2960 (forward-line))) 2995 (forward-line)))
2961 (unless (or delete-list install-list) 2996 (unless (or delete-list install-list)
2962 (user-error "No operations specified")) 2997 (user-error "No operations specified"))
2963 (when (or noquery 2998 (let-alist (package-menu--partition-transaction install-list delete-list)
2964 (package-menu--prompt-transaction-p install-list delete-list)) 2999 (when (or noquery
2965 (message "Transaction started") 3000 (package-menu--prompt-transaction-p .delete .install .upgrade))
2966 ;; This calls `package-menu--generate' after everything's done. 3001 (let ((message-template
2967 (package-menu--perform-transaction 3002 (concat "Package menu: Operation %s ["
2968 install-list delete-list package-menu-async)))) 3003 (when .delete (format "Delet__ %s" (length .delete)))
3004 (when (and .delete .install) "; ")
3005 (when .install (format "Install__ %s" (length .install)))
3006 (when (and .upgrade (or .install .delete)) "; ")
3007 (when .upgrade (format "Upgrad__ %s" (length .upgrade)))
3008 "]")))
3009 (message (replace-regexp-in-string "__" "ing" message-template) "started")
3010 ;; Packages being upgraded are not marked as selected.
3011 (package--update-selected-packages .install .delete)
3012 (package-menu--perform-transaction install-list delete-list)
3013 (when package-selected-packages
3014 (if-let ((removable (package--removable-packages)))
3015 (message "Package menu: Operation finished. %d packages %s"
3016 (length removable)
3017 "are no longer needed, type `M-x package-autoremove' to remove them")
3018 (message (replace-regexp-in-string "__" "ed" message-template)
3019 "finished"))))
3020 ;; This calls `package-menu--generate'.
3021 (package-menu--post-refresh)))))
2969 3022
2970(defun package-menu--version-predicate (A B) 3023(defun package-menu--version-predicate (A B)
2971 (let ((vA (or (aref (cadr A) 1) '(0))) 3024 (let ((vA (or (aref (cadr A) 1) '(0)))
diff --git a/lisp/emacs-lisp/subr-x.el b/lisp/emacs-lisp/subr-x.el
index bd178faa4af..e6d451ac62e 100644
--- a/lisp/emacs-lisp/subr-x.el
+++ b/lisp/emacs-lisp/subr-x.el
@@ -140,6 +140,10 @@ to bind a single value, BINDINGS can just be a plain tuple."
140 (declare (indent 1) (debug if-let)) 140 (declare (indent 1) (debug if-let))
141 (list 'if-let bindings (macroexp-progn body))) 141 (list 'if-let bindings (macroexp-progn body)))
142 142
143(defsubst hash-table-empty-p (hash-table)
144 "Check whether HASH-TABLE is empty (has 0 elements)."
145 (zerop (hash-table-count hash-table)))
146
143(defsubst hash-table-keys (hash-table) 147(defsubst hash-table-keys (hash-table)
144 "Return a list of keys in HASH-TABLE." 148 "Return a list of keys in HASH-TABLE."
145 (let ((keys '())) 149 (let ((keys '()))
diff --git a/lisp/emacs-lisp/syntax.el b/lisp/emacs-lisp/syntax.el
index 81ef7a6fbf3..05dd7d57503 100644
--- a/lisp/emacs-lisp/syntax.el
+++ b/lisp/emacs-lisp/syntax.el
@@ -574,7 +574,7 @@ running the hook."
574 574
575;; (defun buffer-syntactic-context (&optional buffer) 575;; (defun buffer-syntactic-context (&optional buffer)
576;; "Syntactic context at point in BUFFER. 576;; "Syntactic context at point in BUFFER.
577;; Either of `string', `comment' or `nil'. 577;; Either of `string', `comment' or nil.
578;; This is an XEmacs compatibility function." 578;; This is an XEmacs compatibility function."
579;; (with-current-buffer (or buffer (current-buffer)) 579;; (with-current-buffer (or buffer (current-buffer))
580;; (syntax-ppss-context (syntax-ppss)))) 580;; (syntax-ppss-context (syntax-ppss))))
diff --git a/lisp/emulation/viper-util.el b/lisp/emulation/viper-util.el
index 59f47525e55..c4dc569efb3 100644
--- a/lisp/emulation/viper-util.el
+++ b/lisp/emulation/viper-util.el
@@ -1301,7 +1301,7 @@ Usually contains ` ', linefeed, TAB or formfeed.")
1301 )) 1301 ))
1302 1302
1303;; SYMBOL is used because customize requires it, but it is ignored, unless it 1303;; SYMBOL is used because customize requires it, but it is ignored, unless it
1304;; is `nil'. If nil, use setq. 1304;; is nil. If nil, use setq.
1305(defun viper-set-syntax-preference (&optional symbol value) 1305(defun viper-set-syntax-preference (&optional symbol value)
1306 "Set Viper syntax preference. 1306 "Set Viper syntax preference.
1307If called interactively or if SYMBOL is nil, sets syntax preference in current 1307If called interactively or if SYMBOL is nil, sets syntax preference in current
diff --git a/lisp/erc/erc-backend.el b/lisp/erc/erc-backend.el
index 8ce199fbcbb..ee81113d208 100644
--- a/lisp/erc/erc-backend.el
+++ b/lisp/erc/erc-backend.el
@@ -652,7 +652,7 @@ EVENT is the message received from the closed connection process."
652 (run-at-time erc-server-reconnect-timeout nil 652 (run-at-time erc-server-reconnect-timeout nil
653 #'erc-process-sentinel-2 653 #'erc-process-sentinel-2
654 event buffer) 654 event buffer)
655 (error (concat "`erc-server-reconnect-timeout`" 655 (error (concat "`erc-server-reconnect-timeout'"
656 " must be a number"))))))))))) 656 " must be a number")))))))))))
657 657
658(defun erc-process-sentinel-1 (event buffer) 658(defun erc-process-sentinel-1 (event buffer)
diff --git a/lisp/erc/erc-ezbounce.el b/lisp/erc/erc-ezbounce.el
index 5f91be8c899..de2a2ff6e76 100644
--- a/lisp/erc/erc-ezbounce.el
+++ b/lisp/erc/erc-ezbounce.el
@@ -78,7 +78,7 @@ The alist's format is as follows:
78(defun erc-ezb-get-login (server port) 78(defun erc-ezb-get-login (server port)
79 "Return an appropriate EZBounce login for SERVER and PORT. 79 "Return an appropriate EZBounce login for SERVER and PORT.
80Look up entries in `erc-ezb-login-alist'. If the username or password 80Look up entries in `erc-ezb-login-alist'. If the username or password
81in the alist is `nil', prompt for the appropriate values." 81in the alist is nil, prompt for the appropriate values."
82 (let ((login (cdr (assoc (cons server port) erc-ezb-login-alist)))) 82 (let ((login (cdr (assoc (cons server port) erc-ezb-login-alist))))
83 (when login 83 (when login
84 (let ((username (car login)) 84 (let ((username (car login))
diff --git a/lisp/erc/erc-pcomplete.el b/lisp/erc/erc-pcomplete.el
index 7f901edfb8f..e46ac68b259 100644
--- a/lisp/erc/erc-pcomplete.el
+++ b/lisp/erc/erc-pcomplete.el
@@ -33,7 +33,7 @@
33;; 33;;
34;; If you want nickname completions ordered such that the most recent 34;; If you want nickname completions ordered such that the most recent
35;; speakers are listed first, set 35;; speakers are listed first, set
36;; `erc-pcomplete-order-nickname-completions' to `t'. 36;; `erc-pcomplete-order-nickname-completions' to t.
37;; 37;;
38;; See CREDITS for other contributors. 38;; See CREDITS for other contributors.
39;; 39;;
diff --git a/lisp/erc/erc.el b/lisp/erc/erc.el
index cf422f1cfc5..ad5e1a2468e 100644
--- a/lisp/erc/erc.el
+++ b/lisp/erc/erc.el
@@ -1,3 +1,4 @@
1
1;; erc.el --- An Emacs Internet Relay Chat client -*- lexical-binding:t -*- 2;; erc.el --- An Emacs Internet Relay Chat client -*- lexical-binding:t -*-
2 3
3;; Copyright (C) 1997-2015 Free Software Foundation, Inc. 4;; Copyright (C) 1997-2015 Free Software Foundation, Inc.
@@ -12,6 +13,7 @@
12;; Kelvin White (kwhite@gnu.org) 13;; Kelvin White (kwhite@gnu.org)
13;; Maintainer: emacs-devel@gnu.org 14;; Maintainer: emacs-devel@gnu.org
14;; Keywords: IRC, chat, client, Internet 15;; Keywords: IRC, chat, client, Internet
16
15;; Version: 5.3 17;; Version: 5.3
16 18
17;; This file is part of GNU Emacs. 19;; This file is part of GNU Emacs.
@@ -37,15 +39,13 @@
37;; * http://sv.gnu.org/projects/erc/ 39;; * http://sv.gnu.org/projects/erc/
38;; * http://www.emacswiki.org/cgi-bin/wiki/ERC 40;; * http://www.emacswiki.org/cgi-bin/wiki/ERC
39 41
42
43
40;; As of 2006-06-13, ERC development is now hosted on Savannah 44;; As of 2006-06-13, ERC development is now hosted on Savannah
41;; (http://sv.gnu.org/projects/erc). I invite everyone who wants to 45;; (http://sv.gnu.org/projects/erc). I invite everyone who wants to
42;; hack on it to contact me <mwolson@gnu.org> in order to get write 46;; hack on it to contact me <mwolson@gnu.org> in order to get write
43;; access to the shared Arch archive. 47;; access to the shared Arch archive.
44 48
45;; Installation:
46
47;; Put erc.el in your load-path, and put (require 'erc) in your .emacs.
48
49;; Configuration: 49;; Configuration:
50 50
51;; Use M-x customize-group RET erc RET to get an overview 51;; Use M-x customize-group RET erc RET to get an overview
@@ -258,11 +258,25 @@ If nil, only \"> \" will be shown."
258 (repeat :inline t :tag "Others" (string :tag "IRC Message Type")))) 258 (repeat :inline t :tag "Others" (string :tag "IRC Message Type"))))
259 259
260(defcustom erc-hide-list nil 260(defcustom erc-hide-list nil
261 "List of IRC type messages to hide. 261 "A global list of IRC message types to hide.
262A typical value would be '(\"JOIN\" \"PART\" \"QUIT\")." 262A typical value would be '(\"JOIN\" \"PART\" \"QUIT\")."
263 :group 'erc-ignore 263 :group 'erc-ignore
264 :type 'erc-message-type) 264 :type 'erc-message-type)
265 265
266(defcustom erc-network-hide-list nil
267 "A list of IRC networks to hide message types from.
268A typical value would be '((\"freenode\" \"MODE\")
269(\"OFTC\" \"JOIN\" \"QUIT\"))."
270 :group 'erc-ignore
271 :type 'erc-message-type)
272
273(defcustom erc-channel-hide-list nil
274 "A list of IRC channels to hide message types from.
275A typical value would be '((\"#emacs\" \"QUIT\" \JOIN\")
276(\"#erc\" \"NICK\")."
277 :group 'erc-ignore
278 :type 'erc-message-type)
279
266(defvar erc-session-password nil 280(defvar erc-session-password nil
267 "The password used for the current session.") 281 "The password used for the current session.")
268(make-variable-buffer-local 'erc-session-password) 282(make-variable-buffer-local 'erc-session-password)
@@ -2616,15 +2630,36 @@ otherwise `erc-server-announced-name'. SERVER is matched against
2616 erc-common-server-suffixes)) 2630 erc-common-server-suffixes))
2617 erc-server-announced-name))) 2631 erc-server-announced-name)))
2618 2632
2633(defun erc-add-targets (scope target-list)
2634 (let ((targets
2635 (mapcar (lambda (targets) (member scope targets)) target-list)))
2636 (cdr (apply 'append (delete nil targets)))))
2637
2619(defun erc-hide-current-message-p (parsed) 2638(defun erc-hide-current-message-p (parsed)
2620 "Predicate indicating whether the parsed ERC response PARSED should be hidden. 2639 "Predicate indicating whether the parsed ERC response PARSED should be hidden.
2621 2640
2622Messages are always hidden if the message type of PARSED appears in 2641Messages are always hidden if the message type of PARSED appears in
2623`erc-hide-list'. In addition, messages whose type is a member of 2642`erc-hide-list'. Message types that appear in `erc-network-hide-list'
2624`erc-lurker-hide-list' are hidden if `erc-lurker-p' returns true." 2643or `erc-channel-hide-list' are are only hidden if the target matches
2644the network or channel in the list. In addition, messages whose type
2645is a member of `erc-lurker-hide-list' are hidden if `erc-lurker-p'
2646returns non-nil."
2625 (let* ((command (erc-response.command parsed)) 2647 (let* ((command (erc-response.command parsed))
2626 (sender (car (erc-parse-user (erc-response.sender parsed))))) 2648 (sender (car (erc-parse-user (erc-response.sender parsed))))
2649 (channel (nth 1 (erc-response.command-args parsed)))
2650 (network (or (and (fboundp 'erc-network-name) (erc-network-name))
2651 (erc-shorten-server-name
2652 (or erc-server-announced-name
2653 erc-session-server))))
2654 (current-hide-list
2655 (when erc-network-hide-list
2656 (erc-add-targets network erc-network-hide-list)))
2657 (current-hide-list
2658 (apply 'append current-hide-list
2659 (when erc-channel-hide-list
2660 (erc-add-targets channel erc-channel-hide-list)))))
2627 (or (member command erc-hide-list) 2661 (or (member command erc-hide-list)
2662 (member command current-hide-list)
2628 (and (member command erc-lurker-hide-list) (erc-lurker-p sender))))) 2663 (and (member command erc-lurker-hide-list) (erc-lurker-p sender)))))
2629 2664
2630(defun erc-display-message (parsed type buffer msg &rest args) 2665(defun erc-display-message (parsed type buffer msg &rest args)
@@ -4150,7 +4185,7 @@ See also `erc-display-error-notice'."
4150 ;; server's setting if we haven't 4185 ;; server's setting if we haven't
4151 ;; established a connection yet 4186 ;; established a connection yet
4152 (- 9 (length erc-nick-uniquifier)))) 4187 (- 9 (length erc-nick-uniquifier))))
4153 erc-nick-uniquifier))) 4188 erc-nick-uniqifier)))
4154 (erc-cmd-NICK newnick) 4189 (erc-cmd-NICK newnick)
4155 (erc-display-error-notice 4190 (erc-display-error-notice
4156 nil 4191 nil
diff --git a/lisp/eshell/em-term.el b/lisp/eshell/em-term.el
index 4a6ac235449..9ac281372cf 100644
--- a/lisp/eshell/em-term.el
+++ b/lisp/eshell/em-term.el
@@ -132,6 +132,13 @@ character to the invoked process."
132 :type 'boolean 132 :type 'boolean
133 :group 'eshell-term) 133 :group 'eshell-term)
134 134
135(defcustom eshell-destroy-buffer-when-process-dies nil
136 "If non-nil, term buffers are destroyed after their processes die.
137WARNING: Setting this to non-nil may result in unexpected
138behavior for short-lived processes, see bug#18108."
139 :type 'boolean
140 :group 'eshell-term)
141
135;;; Internal Variables: 142;;; Internal Variables:
136 143
137(defvar eshell-parent-buffer) 144(defvar eshell-parent-buffer)
@@ -190,20 +197,24 @@ allowed."
190 nil) 197 nil)
191 198
192;; Process sentinels receive two arguments. 199;; Process sentinels receive two arguments.
193(defun eshell-term-sentinel (proc _string) 200(defun eshell-term-sentinel (proc msg)
194 "Destroy the buffer visiting PROC." 201 "Clean up the buffer visiting PROC.
195 (let ((proc-buf (process-buffer proc))) 202If `eshell-destroy-buffer-when-process-dies' is non-nil, destroy
196 (when (and proc-buf (buffer-live-p proc-buf) 203the buffer."
197 (not (eq 'run (process-status proc))) 204 (term-sentinel proc msg) ;; First call the normal term sentinel.
198 (= (process-exit-status proc) 0)) 205 (when eshell-destroy-buffer-when-process-dies
199 (if (eq (current-buffer) proc-buf) 206 (let ((proc-buf (process-buffer proc)))
200 (let ((buf (and (boundp 'eshell-parent-buffer) 207 (when (and proc-buf (buffer-live-p proc-buf)
201 eshell-parent-buffer 208 (not (eq 'run (process-status proc)))
202 (buffer-live-p eshell-parent-buffer) 209 (= (process-exit-status proc) 0))
203 eshell-parent-buffer))) 210 (if (eq (current-buffer) proc-buf)
204 (if buf 211 (let ((buf (and (boundp 'eshell-parent-buffer)
205 (switch-to-buffer buf)))) 212 eshell-parent-buffer
206 (kill-buffer proc-buf)))) 213 (buffer-live-p eshell-parent-buffer)
214 eshell-parent-buffer)))
215 (if buf
216 (switch-to-buffer buf))))
217 (kill-buffer proc-buf)))))
207 218
208;; jww (1999-09-17): The code below will allow Eshell to send input 219;; jww (1999-09-17): The code below will allow Eshell to send input
209;; characters directly to the currently running interactive process. 220;; characters directly to the currently running interactive process.
diff --git a/lisp/eshell/esh-arg.el b/lisp/eshell/esh-arg.el
index a5f697f037a..49ba72735da 100644
--- a/lisp/eshell/esh-arg.el
+++ b/lisp/eshell/esh-arg.el
@@ -357,22 +357,31 @@ after are both returned."
357 (goto-char (1+ end))))))) 357 (goto-char (1+ end)))))))
358 358
359(defun eshell-parse-special-reference () 359(defun eshell-parse-special-reference ()
360 "Parse a special syntax reference, of the form '#<type arg>'." 360 "Parse a special syntax reference, of the form '#<args>'.
361 (if (and (not eshell-current-argument) 361
362 (not eshell-current-quoted) 362args := `type' `whitespace' `arbitrary-args' | `arbitrary-args'
363 (looking-at "#<\\(buffer\\|process\\)\\s-")) 363type := \"buffer\" or \"process\"
364 (let ((here (point))) 364arbitrary-args := any string of characters.
365 (goto-char (match-end 0)) 365
366 (let* ((buffer-p (string= (match-string 1) "buffer")) 366If the form has no 'type', the syntax is parsed as if 'type' were
367 (end (eshell-find-delimiter ?\< ?\>))) 367\"buffer\"."
368 (if (not end) 368 (when (and (not eshell-current-argument)
369 (throw 'eshell-incomplete ?\<) 369 (not eshell-current-quoted)
370 (if (eshell-arg-delimiter (1+ end)) 370 (looking-at "#<\\(\\(buffer\\|process\\)\\s-\\)?"))
371 (prog1 371 (let ((here (point)))
372 (list (if buffer-p 'get-buffer-create 'get-process) 372 (goto-char (match-end 0)) ;; Go to the end of the match.
373 (buffer-substring-no-properties (point) end)) 373 (let ((buffer-p (if (match-string 1)
374 (goto-char (1+ end))) 374 (string= (match-string 2) "buffer")
375 (ignore (goto-char here)))))))) 375 t)) ;; buffer-p is non-nil by default.
376 (end (eshell-find-delimiter ?\< ?\>)))
377 (when (not end)
378 (throw 'eshell-incomplete ?\<))
379 (if (eshell-arg-delimiter (1+ end))
380 (prog1
381 (list (if buffer-p 'get-buffer-create 'get-process)
382 (buffer-substring-no-properties (point) end))
383 (goto-char (1+ end)))
384 (ignore (goto-char here)))))))
376 385
377(defun eshell-parse-delimiter () 386(defun eshell-parse-delimiter ()
378 "Parse an argument delimiter, which is essentially a command operator." 387 "Parse an argument delimiter, which is essentially a command operator."
diff --git a/lisp/eshell/esh-io.el b/lisp/eshell/esh-io.el
index 7dfc39f3202..dc731bc928a 100644
--- a/lisp/eshell/esh-io.el
+++ b/lisp/eshell/esh-io.el
@@ -31,6 +31,18 @@
31;; consistent with most shells. Therefore, only unique features are 31;; consistent with most shells. Therefore, only unique features are
32;; mentioned here. 32;; mentioned here.
33;; 33;;
34;;;_* Redirect to a Buffer or Process
35;;
36;; Buffers and processes can be named with '#<buffer buffer-name>' and
37;; '#<process process-name>', respectively. As a shorthand,
38;; '#<buffer-name>' without the explicit "buffer" arg is equivalent to
39;; '#<buffer buffer-name>'.
40;;
41;; echo hello > #<buffer *scratch*> # Overwrite '*scratch*' with 'hello'.
42;; echo hello > #<*scratch*> # Same as the command above.
43;;
44;; echo hello > #<process shell> # Pipe "hello" into the shell process.
45;;
34;;;_* Insertion 46;;;_* Insertion
35;; 47;;
36;; To insert at the location of point in a buffer, use '>>>': 48;; To insert at the location of point in a buffer, use '>>>':
@@ -98,19 +110,6 @@ other buffers) ."
98 :type 'integer 110 :type 'integer
99 :group 'eshell-io) 111 :group 'eshell-io)
100 112
101(defcustom eshell-buffer-shorthand nil
102 "If non-nil, a symbol name can be used for a buffer in redirection.
103If nil, redirecting to a buffer requires buffer name syntax. If this
104variable is set, redirection directly to Lisp symbols will be
105impossible.
106
107Example:
108
109 echo hello > '*scratch* ; works if `eshell-buffer-shorthand' is t
110 echo hello > #<buffer *scratch*> ; always works"
111 :type 'boolean
112 :group 'eshell-io)
113
114(defcustom eshell-print-queue-size 5 113(defcustom eshell-print-queue-size 5
115 "The size of the print queue, for doing buffered printing. 114 "The size of the print queue, for doing buffered printing.
116This is basically a speed enhancement, to avoid blocking the Lisp code 115This is basically a speed enhancement, to avoid blocking the Lisp code
@@ -355,21 +354,14 @@ it defaults to `insert'."
355 (goto-char (point-max)))) 354 (goto-char (point-max))))
356 (point-marker)))))) 355 (point-marker))))))
357 356
358 ((or (bufferp target) 357
359 (and (boundp 'eshell-buffer-shorthand) 358 ((bufferp target)
360 (symbol-value 'eshell-buffer-shorthand) 359 (with-current-buffer target
361 (symbolp target) 360 (cond ((eq mode 'overwrite)
362 (not (memq target '(t nil))))) 361 (erase-buffer))
363 (let ((buf (if (bufferp target) 362 ((eq mode 'append)
364 target 363 (goto-char (point-max))))
365 (get-buffer-create 364 (point-marker)))
366 (symbol-name target)))))
367 (with-current-buffer buf
368 (cond ((eq mode 'overwrite)
369 (erase-buffer))
370 ((eq mode 'append)
371 (goto-char (point-max))))
372 (point-marker))))
373 365
374 ((functionp target) nil) 366 ((functionp target) nil)
375 367
diff --git a/lisp/eshell/esh-mode.el b/lisp/eshell/esh-mode.el
index 222e801301b..0dac4780690 100644
--- a/lisp/eshell/esh-mode.el
+++ b/lisp/eshell/esh-mode.el
@@ -206,7 +206,7 @@ This is used by `eshell-watch-for-password-prompt'."
206 206
207;; Internal Variables: 207;; Internal Variables:
208 208
209;; these are only set to `nil' initially for the sake of the 209;; these are only set to nil initially for the sake of the
210;; byte-compiler, when compiling other files which `require' this one 210;; byte-compiler, when compiling other files which `require' this one
211(defvar eshell-mode nil) 211(defvar eshell-mode nil)
212(defvar eshell-mode-map nil) 212(defvar eshell-mode-map nil)
diff --git a/lisp/eshell/esh-util.el b/lisp/eshell/esh-util.el
index 697f97e0460..170779fc5cd 100644
--- a/lisp/eshell/esh-util.el
+++ b/lisp/eshell/esh-util.el
@@ -33,7 +33,7 @@
33;;; User Variables: 33;;; User Variables:
34 34
35(defcustom eshell-stringify-t t 35(defcustom eshell-stringify-t t
36 "If non-nil, the string representation of t is 't'. 36 "If non-nil, the string representation of t is \"t\".
37If nil, t will be represented only in the exit code of the function, 37If nil, t will be represented only in the exit code of the function,
38and not printed as a string. This causes Lisp functions to behave 38and not printed as a string. This causes Lisp functions to behave
39similarly to external commands, as far as successful result output." 39similarly to external commands, as far as successful result output."
diff --git a/lisp/face-remap.el b/lisp/face-remap.el
index 3ec074b5599..93eec5bd13c 100644
--- a/lisp/face-remap.el
+++ b/lisp/face-remap.el
@@ -187,7 +187,7 @@ of face attribute/value pairs, like in a `face' text property.
187 187
188If SPECS is empty, call `face-remap-reset-base' to use the normal 188If SPECS is empty, call `face-remap-reset-base' to use the normal
189definition of FACE as the base remapping; note that this is 189definition of FACE as the base remapping; note that this is
190different from SPECS containing a single value `nil', which means 190different from SPECS containing a single value nil, which means
191not to inherit from the global definition of FACE at all." 191not to inherit from the global definition of FACE at all."
192 (while (and (consp specs) (not (null (car specs))) (null (cdr specs))) 192 (while (and (consp specs) (not (null (car specs))) (null (cdr specs)))
193 (setq specs (car specs))) 193 (setq specs (car specs)))
diff --git a/lisp/facemenu.el b/lisp/facemenu.el
index 2c246b44d54..3d5894309df 100644
--- a/lisp/facemenu.el
+++ b/lisp/facemenu.el
@@ -458,7 +458,7 @@ These special properties include `invisible', `intangible' and `read-only'."
458 458
459(defcustom list-colors-sort nil 459(defcustom list-colors-sort nil
460 "Color sort order for `list-colors-display'. 460 "Color sort order for `list-colors-display'.
461`nil' means default implementation-dependent order (defined in `x-colors'). 461nil means default implementation-dependent order (defined in `x-colors').
462`name' sorts by color name. 462`name' sorts by color name.
463`rgb' sorts by red, green, blue components. 463`rgb' sorts by red, green, blue components.
464`(rgb-dist . COLOR)' sorts by the RGB distance to the specified color. 464`(rgb-dist . COLOR)' sorts by the RGB distance to the specified color.
diff --git a/lisp/faces.el b/lisp/faces.el
index 54e444b730a..9c087c99d56 100644
--- a/lisp/faces.el
+++ b/lisp/faces.el
@@ -619,7 +619,7 @@ VALUE must be a string specifying the font family
619`:foundry' 619`:foundry'
620 620
621VALUE must be a string specifying the font foundry, 621VALUE must be a string specifying the font foundry,
622e.g. ``adobe''. If a font foundry is specified, wild-cards `*' 622e.g., \"adobe\". If a font foundry is specified, wild-cards `*'
623and `?' are allowed. 623and `?' are allowed.
624 624
625`:width' 625`:width'
@@ -892,7 +892,7 @@ where COLOR is a string or `foreground-color', and STYLE is either
892foreground color. :style may be omitted, which means to use a line. 892foreground color. :style may be omitted, which means to use a line.
893 893
894FRAME nil or not specified means change face on all frames. 894FRAME nil or not specified means change face on all frames.
895Use `set-face-attribute' to ``unspecify'' underlining." 895Use `set-face-attribute' to \"unspecify\" underlining."
896 (interactive (read-face-and-attribute :underline)) 896 (interactive (read-face-and-attribute :underline))
897 (set-face-attribute face frame :underline underline)) 897 (set-face-attribute face frame :underline underline))
898 898
@@ -905,7 +905,7 @@ Use `set-face-attribute' to ``unspecify'' underlining."
905INVERSE-VIDEO-P non-nil means FACE displays explicitly in inverse video. 905INVERSE-VIDEO-P non-nil means FACE displays explicitly in inverse video.
906INVERSE-VIDEO-P nil means FACE explicitly is not in inverse video. 906INVERSE-VIDEO-P nil means FACE explicitly is not in inverse video.
907FRAME nil or not specified means change face on all frames. 907FRAME nil or not specified means change face on all frames.
908Use `set-face-attribute' to ``unspecify'' the inverse video attribute." 908Use `set-face-attribute' to \"unspecify\" the inverse video attribute."
909 (interactive 909 (interactive
910 (let ((list (read-face-and-attribute :inverse-video))) 910 (let ((list (read-face-and-attribute :inverse-video)))
911 (list (car list) (if (cadr list) t)))) 911 (list (car list) (if (cadr list) t))))
@@ -2042,7 +2042,7 @@ Value is the new parameter list."
2042 "Create and return a frame with frame parameters PARAMETERS. 2042 "Create and return a frame with frame parameters PARAMETERS.
2043If PARAMETERS specify a frame name, handle X geometry resources 2043If PARAMETERS specify a frame name, handle X geometry resources
2044for that name. If PARAMETERS includes a `reverse' parameter, or 2044for that name. If PARAMETERS includes a `reverse' parameter, or
2045the X resource ``reverseVideo'' is present, handle that." 2045the X resource \"reverseVideo\" is present, handle that."
2046 (setq parameters (x-handle-named-frame-geometry parameters)) 2046 (setq parameters (x-handle-named-frame-geometry parameters))
2047 (let* ((params (copy-tree parameters)) 2047 (let* ((params (copy-tree parameters))
2048 (visibility-spec (assq 'visibility parameters)) 2048 (visibility-spec (assq 'visibility parameters))
diff --git a/lisp/files.el b/lisp/files.el
index ef6ac7b8c92..d82ff5e865f 100644
--- a/lisp/files.el
+++ b/lisp/files.el
@@ -1092,14 +1092,14 @@ Tip: You can use this expansion of remote identifier components
1092 1092
1093(defcustom remote-file-name-inhibit-cache 10 1093(defcustom remote-file-name-inhibit-cache 10
1094 "Whether to use the remote file-name cache for read access. 1094 "Whether to use the remote file-name cache for read access.
1095When `nil', never expire cached values (caution) 1095When nil, never expire cached values (caution)
1096When `t', never use the cache (safe, but may be slow) 1096When t, never use the cache (safe, but may be slow)
1097A number means use cached values for that amount of seconds since caching. 1097A number means use cached values for that amount of seconds since caching.
1098 1098
1099The attributes of remote files are cached for better performance. 1099The attributes of remote files are cached for better performance.
1100If they are changed outside of Emacs's control, the cached values 1100If they are changed outside of Emacs's control, the cached values
1101become invalid, and must be reread. If you are sure that nothing 1101become invalid, and must be reread. If you are sure that nothing
1102other than Emacs changes the files, you can set this variable to `nil'. 1102other than Emacs changes the files, you can set this variable to nil.
1103 1103
1104If a remote file is checked regularly, it might be a good idea to 1104If a remote file is checked regularly, it might be a good idea to
1105let-bind this variable to a value less than the interval between 1105let-bind this variable to a value less than the interval between
diff --git a/lisp/forms.el b/lisp/forms.el
index aa57a667ae7..bccb4a05756 100644
--- a/lisp/forms.el
+++ b/lisp/forms.el
@@ -1755,7 +1755,7 @@ Otherwise enables edit mode if the visited file is writable."
1755With ARG: store the record after the current one. 1755With ARG: store the record after the current one.
1756If `forms-new-record-filter' contains the name of a function, 1756If `forms-new-record-filter' contains the name of a function,
1757it is called to fill (some of) the fields with default values. 1757it is called to fill (some of) the fields with default values.
1758If `forms-insert-after is non-nil, the default behavior is to insert 1758If `forms-insert-after' is non-nil, the default behavior is to insert
1759after the current record." 1759after the current record."
1760 1760
1761 (interactive "P") 1761 (interactive "P")
diff --git a/lisp/gnus/canlock.el b/lisp/gnus/canlock.el
index 4082b8723d1..6ebd5338087 100644
--- a/lisp/gnus/canlock.el
+++ b/lisp/gnus/canlock.el
@@ -35,8 +35,9 @@
35;; Verifying Cancel-Lock is mainly a function of news servers, however, 35;; Verifying Cancel-Lock is mainly a function of news servers, however,
36;; you can verify your own article using the command `canlock-verify' in 36;; you can verify your own article using the command `canlock-verify' in
37;; the (raw) article buffer. You will be prompted for the password for 37;; the (raw) article buffer. You will be prompted for the password for
38;; each time if the option `canlock-password' or `canlock-password-for- 38;; each time if the option `canlock-password' or
39;; verify' is nil. Note that setting these options is a bit unsafe. 39;; `canlock-password-for-verify' is nil. Note that setting these
40;; options is a bit unsafe.
40 41
41;;; Code: 42;;; Code:
42 43
diff --git a/lisp/gnus/deuglify.el b/lisp/gnus/deuglify.el
index 331b99b8652..b2a725b5402 100644
--- a/lisp/gnus/deuglify.el
+++ b/lisp/gnus/deuglify.el
@@ -78,7 +78,7 @@
78;; `gnus-outlook-deuglify-unwrap-stop-chars'. Setting this to ".?!" 78;; `gnus-outlook-deuglify-unwrap-stop-chars'. Setting this to ".?!"
79;; inhibits unwrapping if the cited line ends with a full stop, 79;; inhibits unwrapping if the cited line ends with a full stop,
80;; question mark or exclamation mark. Note that this variable 80;; question mark or exclamation mark. Note that this variable
81;; defaults to `nil', triggering a few false positives but generally 81;; defaults to nil, triggering a few false positives but generally
82;; giving you better results. 82;; giving you better results.
83;; 83;;
84;; Unwrapping works on every level of citation. Thus you will be able 84;; Unwrapping works on every level of citation. Thus you will be able
@@ -110,7 +110,7 @@
110;; > Bye, John 110;; > Bye, John
111;; 111;;
112;; Repairing the attribution line will be done by function 112;; Repairing the attribution line will be done by function
113;; `gnus-article-outlook-repair-attribution which calls other function that 113;; `gnus-article-outlook-repair-attribution' which calls other function that
114;; try to recognize and repair broken attribution lines. See variable 114;; try to recognize and repair broken attribution lines. See variable
115;; `gnus-outlook-deuglify-attrib-cut-regexp' for stuff that should be 115;; `gnus-outlook-deuglify-attrib-cut-regexp' for stuff that should be
116;; cut off from the beginning of an attribution line and variable 116;; cut off from the beginning of an attribution line and variable
@@ -121,7 +121,7 @@
121;; Rearranging the article so that the cited text appears above the 121;; Rearranging the article so that the cited text appears above the
122;; new text will be done by function 122;; new text will be done by function
123;; `gnus-article-outlook-rearrange-citation'. This function calls 123;; `gnus-article-outlook-rearrange-citation'. This function calls
124;; `gnus-article-outlook-repair-attribution to find and repair an attribution 124;; `gnus-article-outlook-repair-attribution' to find and repair an attribution
125;; line. 125;; line.
126;; 126;;
127;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 127;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
@@ -177,14 +177,14 @@
177;; As I said before there may (or will) be a few false positives on 177;; As I said before there may (or will) be a few false positives on
178;; unwrapping cited lines with `gnus-article-outlook-unwrap-lines'. 178;; unwrapping cited lines with `gnus-article-outlook-unwrap-lines'.
179;; 179;;
180;; `gnus-article-outlook-repair-attribution will only fix the first 180;; `gnus-article-outlook-repair-attribution' will only fix the first
181;; attribution line found in the article. Furthermore it fixed to 181;; attribution line found in the article. Furthermore it fixed to
182;; certain kinds of attributions. And there may be horribly many 182;; certain kinds of attributions. And there may be horribly many
183;; false positives, vanishing lines and so on -- so don't trust your 183;; false positives, vanishing lines and so on -- so don't trust your
184;; eyes. Again I recommend manual invocation. 184;; eyes. Again I recommend manual invocation.
185;; 185;;
186;; `gnus-article-outlook-rearrange-citation' carries all the limitations of 186;; `gnus-article-outlook-rearrange-citation' carries all the limitations of
187;; `gnus-article-outlook-repair-attribution. 187;; `gnus-article-outlook-repair-attribution'.
188;; 188;;
189;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 189;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
190;; 190;;
diff --git a/lisp/gnus/gnus-art.el b/lisp/gnus/gnus-art.el
index 989a4247800..7630afbdcf4 100644
--- a/lisp/gnus/gnus-art.el
+++ b/lisp/gnus/gnus-art.el
@@ -1256,7 +1256,7 @@ how to control what it hides."
1256 :type gnus-article-treat-custom) 1256 :type gnus-article-treat-custom)
1257 1257
1258(defcustom gnus-treat-strip-list-identifiers 'head 1258(defcustom gnus-treat-strip-list-identifiers 'head
1259 "Strip list identifiers from `gnus-list-identifiers`. 1259 "Strip list identifiers from `gnus-list-identifiers'.
1260Valid values are nil, t, `head', `first', `last', an integer or a 1260Valid values are nil, t, `head', `first', `last', an integer or a
1261predicate. See Info node `(gnus)Customizing Articles'." 1261predicate. See Info node `(gnus)Customizing Articles'."
1262 :version "21.1" 1262 :version "21.1"
@@ -1735,7 +1735,7 @@ regexp."
1735 (modify-syntax-entry ?` " " table) 1735 (modify-syntax-entry ?` " " table)
1736 table) 1736 table)
1737 "Syntax table used in article mode buffers. 1737 "Syntax table used in article mode buffers.
1738Initialized from `text-mode-syntax-table.") 1738Initialized from `text-mode-syntax-table'.")
1739 1739
1740(defvar gnus-save-article-buffer nil) 1740(defvar gnus-save-article-buffer nil)
1741 1741
diff --git a/lisp/gnus/gnus-cus.el b/lisp/gnus/gnus-cus.el
index 9271322f4ab..93b7a1ba635 100644
--- a/lisp/gnus/gnus-cus.el
+++ b/lisp/gnus/gnus-cus.el
@@ -272,7 +272,7 @@ DOC is a documentation string for the parameter.")
272 (repeat (list (string :format "%v" :tag "File name")))) 272 (repeat (list (string :format "%v" :tag "File name"))))
273 "Which score files to use when using score to select articles to fetch. 273 "Which score files to use when using score to select articles to fetch.
274 274
275 `nil' 275 nil
276 All articles will be scored to zero (0). 276 All articles will be scored to zero (0).
277 277
278 `file' 278 `file'
diff --git a/lisp/gnus/gnus-group.el b/lisp/gnus/gnus-group.el
index ff839d7f18c..dbeada286b7 100644
--- a/lisp/gnus/gnus-group.el
+++ b/lisp/gnus/gnus-group.el
@@ -3285,7 +3285,7 @@ mail messages or news articles in files that have numeric names."
3285 3285
3286 Rights is a string listing a (possibly empty) set of alphanumeric 3286 Rights is a string listing a (possibly empty) set of alphanumeric
3287 characters, each character listing a set of operations which is being 3287 characters, each character listing a set of operations which is being
3288 controlled. Letters are reserved for ``standard'' rights, listed 3288 controlled. Letters are reserved for \"standard\" rights, listed
3289 below. Digits are reserved for implementation or site defined rights. 3289 below. Digits are reserved for implementation or site defined rights.
3290 3290
3291 l - lookup (mailbox is visible to LIST/LSUB commands) 3291 l - lookup (mailbox is visible to LIST/LSUB commands)
diff --git a/lisp/gnus/gnus-sum.el b/lisp/gnus/gnus-sum.el
index 1d8ad8e6acb..37a707ebe64 100644
--- a/lisp/gnus/gnus-sum.el
+++ b/lisp/gnus/gnus-sum.el
@@ -4376,7 +4376,7 @@ Returns HEADER if it was entered in the DEPENDENCIES. Returns nil otherwise."
4376 ;; The last case ignores an existing entry, except it adds any 4376 ;; The last case ignores an existing entry, except it adds any
4377 ;; additional Xrefs (in case the two articles came from different 4377 ;; additional Xrefs (in case the two articles came from different
4378 ;; servers. 4378 ;; servers.
4379 ;; Also sets `header' to `nil' meaning that the `dependencies' 4379 ;; Also sets `header' to nil meaning that the `dependencies'
4380 ;; table was *not* modified. 4380 ;; table was *not* modified.
4381 (t 4381 (t
4382 (mail-header-set-xref 4382 (mail-header-set-xref
diff --git a/lisp/gnus/message.el b/lisp/gnus/message.el
index 8bb0a78a446..9e813e6dfd1 100644
--- a/lisp/gnus/message.el
+++ b/lisp/gnus/message.el
@@ -1123,7 +1123,7 @@ e.g. using `gnus-posting-styles':
1123 1123
1124(defcustom message-cite-style nil 1124(defcustom message-cite-style nil
1125 "*The overall style to be used when yanking cited text. 1125 "*The overall style to be used when yanking cited text.
1126Value is either `nil' (no variable overrides) or a let-style list 1126Value is either nil (no variable overrides) or a let-style list
1127of pairs (VARIABLE VALUE) that will be bound in 1127of pairs (VARIABLE VALUE) that will be bound in
1128`message-yank-original' to do the quoting. 1128`message-yank-original' to do the quoting.
1129 1129
diff --git a/lisp/gnus/nndoc.el b/lisp/gnus/nndoc.el
index c62697b6939..70d803faf54 100644
--- a/lisp/gnus/nndoc.el
+++ b/lisp/gnus/nndoc.el
@@ -199,7 +199,7 @@ from the document.")
199;; lines in the body. For MIME dissections only, ARTICLE-INSERT [5] and 199;; lines in the body. For MIME dissections only, ARTICLE-INSERT [5] and
200;; SUMMARY-INSERT [6] give headers to insert for full article or summary line 200;; SUMMARY-INSERT [6] give headers to insert for full article or summary line
201;; generation, respectively. Other headers usually follow directly from the 201;; generation, respectively. Other headers usually follow directly from the
202;; buffer. Value `nil' means no insert. 202;; buffer. Value nil means no insert.
203(defvoo nndoc-dissection-alist nil) 203(defvoo nndoc-dissection-alist nil)
204(defvoo nndoc-prepare-body-function nil) 204(defvoo nndoc-prepare-body-function nil)
205(defvoo nndoc-generate-head-function nil) 205(defvoo nndoc-generate-head-function nil)
diff --git a/lisp/gnus/nnmaildir.el b/lisp/gnus/nnmaildir.el
index 21fa5b37aa4..da3d5460c2b 100644
--- a/lisp/gnus/nnmaildir.el
+++ b/lisp/gnus/nnmaildir.el
@@ -84,13 +84,13 @@ Some of the FLAGS correspond to Gnus marks.")
84 84
85(defsubst nnmaildir--mark-to-flag (mark) 85(defsubst nnmaildir--mark-to-flag (mark)
86 "Find the Maildir flag that corresponds to MARK (an atom). 86 "Find the Maildir flag that corresponds to MARK (an atom).
87Return a character, or `nil' if not found. 87Return a character, or nil if not found.
88See `nnmaildir-flag-mark-mapping'." 88See `nnmaildir-flag-mark-mapping'."
89 (car (rassq mark nnmaildir-flag-mark-mapping))) 89 (car (rassq mark nnmaildir-flag-mark-mapping)))
90 90
91(defsubst nnmaildir--flag-to-mark (flag) 91(defsubst nnmaildir--flag-to-mark (flag)
92 "Find the Gnus mark that corresponds to FLAG (a character). 92 "Find the Gnus mark that corresponds to FLAG (a character).
93Return an atom, or `nil' if not found. 93Return an atom, or nil if not found.
94See `nnmaildir-flag-mark-mapping'." 94See `nnmaildir-flag-mark-mapping'."
95 (cdr (assq flag nnmaildir-flag-mark-mapping))) 95 (cdr (assq flag nnmaildir-flag-mark-mapping)))
96 96
diff --git a/lisp/gnus/rfc2047.el b/lisp/gnus/rfc2047.el
index b2520b26af9..ea558d75a20 100644
--- a/lisp/gnus/rfc2047.el
+++ b/lisp/gnus/rfc2047.el
@@ -1136,7 +1136,7 @@ other than `\"' and `\\' in quoted strings."
1136 ;; `decode-coding-string' in Emacs offers a third optional 1136 ;; `decode-coding-string' in Emacs offers a third optional
1137 ;; arg NOCOPY to avoid consing a new string if the decoding 1137 ;; arg NOCOPY to avoid consing a new string if the decoding
1138 ;; is "trivial". Unfortunately it currently doesn't 1138 ;; is "trivial". Unfortunately it currently doesn't
1139 ;; consider anything else than a `nil' coding system 1139 ;; consider anything else than a nil coding system
1140 ;; trivial. 1140 ;; trivial.
1141 ;; `rfc2047-decode-string' is called multiple times for each 1141 ;; `rfc2047-decode-string' is called multiple times for each
1142 ;; article during summary buffer generation, and we really 1142 ;; article during summary buffer generation, and we really
diff --git a/lisp/hippie-exp.el b/lisp/hippie-exp.el
index b167671ab0b..a19ff32f1da 100644
--- a/lisp/hippie-exp.el
+++ b/lisp/hippie-exp.el
@@ -99,10 +99,10 @@
99;; from the kill ring. May be good if you don't know how far up in 99;; from the kill ring. May be good if you don't know how far up in
100;; the kill-ring the required entry is, and don't want to mess with 100;; the kill-ring the required entry is, and don't want to mess with
101;; "Choose Next Paste". 101;; "Choose Next Paste".
102;; `try-complete-lisp-symbol' : like `lisp-complete-symbol', but goes 102;; `try-complete-lisp-symbol' : like `elisp-completion-at-point', but goes
103;; through all possibilities instead of completing what is unique. 103;; through all possibilities instead of completing what is unique.
104;; Might be tedious (usually a lot of possible completions) and 104;; Might be tedious (usually a lot of possible completions) and
105;; since its function is much like `lisp-complete-symbol', which 105;; since its function is much like `completion-at-point', which
106;; already has a key of its own, you might want to remove this. 106;; already has a key of its own, you might want to remove this.
107;; `try-complete-lisp-symbol-partially' : To insert in the list just 107;; `try-complete-lisp-symbol-partially' : To insert in the list just
108;; before `try-complete-lisp-symbol' for those who first want to get 108;; before `try-complete-lisp-symbol' for those who first want to get
diff --git a/lisp/ibuffer.el b/lisp/ibuffer.el
index f15e150f5d4..c426976b29c 100644
--- a/lisp/ibuffer.el
+++ b/lisp/ibuffer.el
@@ -1908,9 +1908,9 @@ the buffer object itself and the current mark symbol."
1908 ;; Kill the line if the buffer is dead 1908 ;; Kill the line if the buffer is dead
1909 'kill))) 1909 'kill)))
1910 ;; A given mapping function should return: 1910 ;; A given mapping function should return:
1911 ;; `nil' if it chose not to affect the buffer 1911 ;; nil if it chose not to affect the buffer
1912 ;; `kill' means the remove line from the buffer list 1912 ;; `kill' means the remove line from the buffer list
1913 ;; `t' otherwise 1913 ;; t otherwise
1914 (cl-incf ibuffer-map-lines-total) 1914 (cl-incf ibuffer-map-lines-total)
1915 (cond ((null result) 1915 (cond ((null result)
1916 (forward-line 1)) 1916 (forward-line 1))
diff --git a/lisp/icomplete.el b/lisp/icomplete.el
index ee281122852..b1894ca5874 100644
--- a/lisp/icomplete.el
+++ b/lisp/icomplete.el
@@ -149,16 +149,26 @@ icompletion is occurring."
149(defvar icomplete-minibuffer-map 149(defvar icomplete-minibuffer-map
150 (let ((map (make-sparse-keymap))) 150 (let ((map (make-sparse-keymap)))
151 (define-key map [?\M-\t] 'minibuffer-force-complete) 151 (define-key map [?\M-\t] 'minibuffer-force-complete)
152 (define-key map [?\C-j] 'minibuffer-force-complete-and-exit) 152 (define-key map [?\C-j] 'icomplete-force-complete-and-exit)
153 (define-key map [?\C-.] 'icomplete-forward-completions) 153 (define-key map [?\C-.] 'icomplete-forward-completions)
154 (define-key map [?\C-,] 'icomplete-backward-completions) 154 (define-key map [?\C-,] 'icomplete-backward-completions)
155 map) 155 map)
156 "Keymap used by `icomplete-mode' in the minibuffer.") 156 "Keymap used by `icomplete-mode' in the minibuffer.")
157 157
158(defun icomplete-force-complete-and-exit ()
159 "Complete the minibuffer and exit.
160Use the first of the matches if there are any displayed, and use
161the default otherwise."
162 (interactive)
163 (if (or icomplete-show-matches-on-no-input
164 (> (icomplete--field-end) (icomplete--field-beg)))
165 (minibuffer-force-complete-and-exit)
166 (minibuffer-complete-and-exit)))
167
158(defun icomplete-forward-completions () 168(defun icomplete-forward-completions ()
159 "Step forward completions by one entry. 169 "Step forward completions by one entry.
160Second entry becomes the first and can be selected with 170Second entry becomes the first and can be selected with
161`minibuffer-force-complete-and-exit'." 171`icomplete-force-complete-and-exit'."
162 (interactive) 172 (interactive)
163 (let* ((beg (icomplete--field-beg)) 173 (let* ((beg (icomplete--field-beg))
164 (end (icomplete--field-end)) 174 (end (icomplete--field-end))
@@ -171,7 +181,7 @@ Second entry becomes the first and can be selected with
171(defun icomplete-backward-completions () 181(defun icomplete-backward-completions ()
172 "Step backward completions by one entry. 182 "Step backward completions by one entry.
173Last entry becomes the first and can be selected with 183Last entry becomes the first and can be selected with
174`minibuffer-force-complete-and-exit'." 184`icomplete-force-complete-and-exit'."
175 (interactive) 185 (interactive)
176 (let* ((beg (icomplete--field-beg)) 186 (let* ((beg (icomplete--field-beg))
177 (end (icomplete--field-end)) 187 (end (icomplete--field-end))
diff --git a/lisp/ido.el b/lisp/ido.el
index 60a59d6e99d..b97f72ce940 100644
--- a/lisp/ido.el
+++ b/lisp/ido.el
@@ -377,7 +377,7 @@ use either \\[customize] or the function `ido-mode'."
377 '("\\` ") 377 '("\\` ")
378 "List of regexps or functions matching buffer names to ignore. 378 "List of regexps or functions matching buffer names to ignore.
379For example, traditional behavior is not to list buffers whose names begin 379For example, traditional behavior is not to list buffers whose names begin
380with a space, for which the regexp is `\\` '. See the source file for 380with a space, for which the regexp is \\` . See the source file for
381example functions that filter buffer names." 381example functions that filter buffer names."
382 :type '(repeat (choice regexp function)) 382 :type '(repeat (choice regexp function))
383 :group 'ido) 383 :group 'ido)
@@ -386,7 +386,7 @@ example functions that filter buffer names."
386 '("\\`CVS/" "\\`#" "\\`.#" "\\`\\.\\./" "\\`\\./") 386 '("\\`CVS/" "\\`#" "\\`.#" "\\`\\.\\./" "\\`\\./")
387 "List of regexps or functions matching file names to ignore. 387 "List of regexps or functions matching file names to ignore.
388For example, traditional behavior is not to list files whose names begin 388For example, traditional behavior is not to list files whose names begin
389with a #, for which the regexp is `\\`#'. See the source file for 389with a #, for which the regexp is \\`#. See the source file for
390example functions that filter filenames." 390example functions that filter filenames."
391 :type '(repeat (choice regexp function)) 391 :type '(repeat (choice regexp function))
392 :group 'ido) 392 :group 'ido)
diff --git a/lisp/ielm.el b/lisp/ielm.el
index be877eb250a..3c9908ac362 100644
--- a/lisp/ielm.el
+++ b/lisp/ielm.el
@@ -511,7 +511,7 @@ evaluations respectively. If the working buffer is another IELM
511buffer, then the values in the working buffer are used. The variables 511buffer, then the values in the working buffer are used. The variables
512`*1', `*2' and `*3', yield the process buffer values. 512`*1', `*2' and `*3', yield the process buffer values.
513 513
514If, at the start of evaluation, `standard-output' is `t' (the 514If, at the start of evaluation, `standard-output' is t (the
515default), `standard-output' is set to a special function that 515default), `standard-output' is set to a special function that
516causes output to be directed to the ielm buffer. 516causes output to be directed to the ielm buffer.
517`standard-output' is restored after evaluation unless explicitly 517`standard-output' is restored after evaluation unless explicitly
diff --git a/lisp/info.el b/lisp/info.el
index 05574ae11f5..d63581911c5 100644
--- a/lisp/info.el
+++ b/lisp/info.el
@@ -303,7 +303,7 @@ when you hit the end of the current node."
303 "If non-nil, hide the tag and section reference in *note and * menu items. 303 "If non-nil, hide the tag and section reference in *note and * menu items.
304If value is non-nil but not `hide', also replaces the \"*note\" with \"see\". 304If value is non-nil but not `hide', also replaces the \"*note\" with \"see\".
305If value is non-nil but not t or `hide', the reference section is still shown. 305If value is non-nil but not t or `hide', the reference section is still shown.
306`nil' completely disables this feature. If this is non-nil, you might 306nil completely disables this feature. If this is non-nil, you might
307want to set `Info-refill-paragraphs'." 307want to set `Info-refill-paragraphs'."
308 :version "22.1" 308 :version "22.1"
309 :type '(choice (const :tag "No hiding" nil) 309 :type '(choice (const :tag "No hiding" nil)
diff --git a/lisp/language/tv-util.el b/lisp/language/tv-util.el
index 400856d1aa3..ba1ee668825 100644
--- a/lisp/language/tv-util.el
+++ b/lisp/language/tv-util.el
@@ -34,7 +34,7 @@
34 (combining-vowel . "ꪴꪰꪲꪳꪷꪸꪾ") 34 (combining-vowel . "ꪴꪰꪲꪳꪷꪸꪾ")
35 (combining-tone . "꪿꫁") 35 (combining-tone . "꪿꫁")
36 (misc . "-")))) 36 (misc . "-"))))
37 ;; Set all TaiViet characters to `t'. 37 ;; Set all TaiViet characters to t.
38 (set-char-table-range table (cons #xaa80 #xaac2) t) 38 (set-char-table-range table (cons #xaa80 #xaac2) t)
39 (set-char-table-range table (cons #xaadb #xaadf) t) 39 (set-char-table-range table (cons #xaadb #xaadf) t)
40 ;; Overwrite it for special characters. 40 ;; Overwrite it for special characters.
diff --git a/lisp/ldefs-boot.el b/lisp/ldefs-boot.el
index 0d1940cf248..a52a19ecb5e 100644
--- a/lisp/ldefs-boot.el
+++ b/lisp/ldefs-boot.el
@@ -27708,7 +27708,7 @@ Convert space before point into a hard space if the context is right.
27708 27708
27709If 27709If
27710 * character before point is a space character, 27710 * character before point is a space character,
27711 * character before that has w character syntax (i.e. it's a word 27711 * character before that has \"w\" character syntax (i.e. it's a word
27712 constituent), 27712 constituent),
27713 * `tildify-space-pattern' matches when `looking-back' (no more than 10 27713 * `tildify-space-pattern' matches when `looking-back' (no more than 10
27714 characters) from before the space character, and 27714 characters) from before the space character, and
diff --git a/lisp/leim/quail/cyrillic.el b/lisp/leim/quail/cyrillic.el
index 08d53ea721c..7caa5ecbc1d 100644
--- a/lisp/leim/quail/cyrillic.el
+++ b/lisp/leim/quail/cyrillic.el
@@ -1244,8 +1244,8 @@ Unicode based."
1244This phonetic layout replaces all the Latin letters with Bulgarian 1244This phonetic layout replaces all the Latin letters with Bulgarian
1245\(Cyrillic) letters based on similarities in their pronunciation or look. 1245\(Cyrillic) letters based on similarities in their pronunciation or look.
1246 1246
1247Note that, since the letters 'щ', 'ь', 'ю' and 'я' are attached to the 1247Note that, since the letters щ, ь, ю and я are attached to the
1248']', '\', '`' and '[' keys respectively, Caps Lock does not affect them." 1248], \, ` and [ keys respectively, Caps Lock does not affect them."
1249nil t t t t nil nil nil nil nil t) 1249nil t t t t nil nil nil nil nil t)
1250 1250
1251;; Ю 1! 2@ 3№ 4$ 5% 6€ 7§ 8* 9( 0) -– =+ ьѝ 1251;; Ю 1! 2@ 3№ 4$ 5% 6€ 7§ 8* 9( 0) -– =+ ьѝ
diff --git a/lisp/leim/quail/ethiopic.el b/lisp/leim/quail/ethiopic.el
index d99f649e5e7..7a1cddfff23 100644
--- a/lisp/leim/quail/ethiopic.el
+++ b/lisp/leim/quail/ethiopic.el
@@ -49,8 +49,8 @@ C-F9 or `M-x ethio-toggle-space'
49 Toggles space characters for keyboard input. The current mode is 49 Toggles space characters for keyboard input. The current mode is
50 indicated in mode-line, whether by `_' (ASCII space) or `፡' 50 indicated in mode-line, whether by `_' (ASCII space) or `፡'
51 (Ethiopic colon-like word separator). Even in the `፡' mode, an 51 (Ethiopic colon-like word separator). Even in the `፡' mode, an
52 ASCII space is inserted if the point is preceded by `an Ethiopic 52 ASCII space is inserted if the point is preceded by an Ethiopic
53 punctuation followed by zero or more ASCII spaces'. 53 punctuation char that is followed by zero or more ASCII spaces.
54 54
55S-F5 or `M-x ethio-toggle-punctuation' 55S-F5 or `M-x ethio-toggle-punctuation'
56 Toggles ASCII punctuation and Ethiopic punctuation for keyboard input. 56 Toggles ASCII punctuation and Ethiopic punctuation for keyboard input.
diff --git a/lisp/leim/quail/hebrew.el b/lisp/leim/quail/hebrew.el
index fe06b27a922..5d63e4040a8 100644
--- a/lisp/leim/quail/hebrew.el
+++ b/lisp/leim/quail/hebrew.el
@@ -113,8 +113,8 @@ Only Hebrew-related characters are considered.
113 113
114Based on latest draft of SI-1452 keyboard layout. 114Based on latest draft of SI-1452 keyboard layout.
115Only Hebrew-related characters are considered. 115Only Hebrew-related characters are considered.
116 '`' is used to switch levels instead of Alt-Gr. 116 ` is used to switch levels instead of Alt-Gr.
117Geresh is mapped to '`k'. 117Geresh is mapped to `k.
118" nil t t t t nil nil nil nil nil t) 118" nil t t t t nil nil nil nil nil t)
119 119
120(quail-define-rules 120(quail-define-rules
@@ -603,8 +603,8 @@ Not suitable for modern Hebrew input.
603 603
604Based on Society of Biblical Literature's SIL keyboard layout. 604Based on Society of Biblical Literature's SIL keyboard layout.
605Phonetic and not suitable for modern Hebrew input. 605Phonetic and not suitable for modern Hebrew input.
606 '`' is used to switch levels instead of Alt-Gr. 606 ` is used to switch levels instead of Alt-Gr.
607 Euro Sign (€) is mapped to 'Z'. 607 Euro Sign (€) is mapped to Z.
608" nil t t t t nil nil nil nil nil t) 608" nil t t t t nil nil nil nil nil t)
609 609
610(quail-define-rules 610(quail-define-rules
diff --git a/lisp/leim/quail/thai.el b/lisp/leim/quail/thai.el
index 37171042643..2554686b9a6 100644
--- a/lisp/leim/quail/thai.el
+++ b/lisp/leim/quail/thai.el
@@ -46,9 +46,9 @@
46 "Thai Kesmanee input method with TIS620 keyboard layout 46 "Thai Kesmanee input method with TIS620 keyboard layout
47 47
48The difference from the ordinal Thai keyboard: 48The difference from the ordinal Thai keyboard:
49 '฿' and '' are assigned to '\\' and '|' respectively, 49 ฿ and are assigned to \\ and | respectively,
50 '' and '' are assigned to '`' and '~' respectively, 50 and are assigned to ` and ~ respectively,
51 Don't know where to assign characters '' and ''." 51 Don't know where to assign characters and ."
52 nil t t t t nil nil nil nil nil t) 52 nil t t t t nil nil nil nil nil t)
53 53
54(thai-generate-quail-map 54(thai-generate-quail-map
diff --git a/lisp/linum.el b/lisp/linum.el
index 2aac13ab9b0..7b6a3ea4e42 100644
--- a/lisp/linum.el
+++ b/lisp/linum.el
@@ -62,7 +62,7 @@ See also `linum-before-numbering-hook'."
62 62
63(defcustom linum-eager t 63(defcustom linum-eager t
64 "Whether line numbers should be updated after each command. 64 "Whether line numbers should be updated after each command.
65The conservative setting `nil' might miss some buffer changes, 65The conservative setting nil might miss some buffer changes,
66and you have to scroll or press \\[recenter-top-bottom] to update the numbers." 66and you have to scroll or press \\[recenter-top-bottom] to update the numbers."
67 :group 'linum 67 :group 'linum
68 :type 'boolean) 68 :type 'boolean)
diff --git a/lisp/ls-lisp.el b/lisp/ls-lisp.el
index c3d5705531e..0ddae24d577 100644
--- a/lisp/ls-lisp.el
+++ b/lisp/ls-lisp.el
@@ -669,7 +669,7 @@ SWITCHES is a list of characters. Default sorting is alphabetic."
669 )))) 669 ))))
670 ;; Finally reverse file alist if necessary. 670 ;; Finally reverse file alist if necessary.
671 ;; (eq below MUST compare `(not (memq ...))' to force comparison of 671 ;; (eq below MUST compare `(not (memq ...))' to force comparison of
672 ;; `t' or `nil', rather than list tails!) 672 ;; t or nil, rather than list tails!)
673 (if (eq (eq (not (memq ?U switches)) ; unsorted order is reversed 673 (if (eq (eq (not (memq ?U switches)) ; unsorted order is reversed
674 (not (memq ?r switches))) ; reversed sort order requested 674 (not (memq ?r switches))) ; reversed sort order requested
675 ls-lisp-dirs-first) ; already reversed 675 ls-lisp-dirs-first) ; already reversed
diff --git a/lisp/mail/mailabbrev.el b/lisp/mail/mailabbrev.el
index 2f349b99bb6..f974f2083dc 100644
--- a/lisp/mail/mailabbrev.el
+++ b/lisp/mail/mailabbrev.el
@@ -603,7 +603,7 @@ In other respects, this behaves like `end-of-buffer', which see."
603(eval-after-load "sendmail" 603(eval-after-load "sendmail"
604 '(progn 604 '(progn
605 (define-key mail-mode-map "\C-c\C-a" 'mail-abbrev-insert-alias) 605 (define-key mail-mode-map "\C-c\C-a" 'mail-abbrev-insert-alias)
606 (define-key mail-mode-map "\e\t" ; like lisp-complete-symbol 606 (define-key mail-mode-map "\e\t" ; like completion-at-point
607 'mail-abbrev-complete-alias))) 607 'mail-abbrev-complete-alias)))
608 608
609;;(define-key mail-mode-map "\C-n" 'mail-abbrev-next-line) 609;;(define-key mail-mode-map "\C-n" 'mail-abbrev-next-line)
diff --git a/lisp/mail/mailalias.el b/lisp/mail/mailalias.el
index 48329167bf1..577cec0fd86 100644
--- a/lisp/mail/mailalias.el
+++ b/lisp/mail/mailalias.el
@@ -77,7 +77,7 @@ If not on matching header, `mail-complete-function' gets called instead."
77;;;###autoload 77;;;###autoload
78(defcustom mail-complete-style 'angles 78(defcustom mail-complete-style 'angles
79 "Specifies how \\[mail-complete] formats the full name when it completes. 79 "Specifies how \\[mail-complete] formats the full name when it completes.
80If `nil', they contain just the return address like: 80If nil, they contain just the return address like:
81 king@grassland.com 81 king@grassland.com
82If `parens', they look like: 82If `parens', they look like:
83 king@grassland.com (Elvis Parsley) 83 king@grassland.com (Elvis Parsley)
diff --git a/lisp/mail/sendmail.el b/lisp/mail/sendmail.el
index 9fa7aa5a6f2..ddd8697dcd6 100644
--- a/lisp/mail/sendmail.el
+++ b/lisp/mail/sendmail.el
@@ -58,7 +58,7 @@
58(defcustom mail-from-style 'default 58(defcustom mail-from-style 'default
59 "Specifies how \"From:\" fields look. 59 "Specifies how \"From:\" fields look.
60 60
61If `nil', they contain just the return address like: 61If nil, they contain just the return address like:
62 king@grassland.com 62 king@grassland.com
63If `parens', they look like: 63If `parens', they look like:
64 king@grassland.com (Elvis Parsley) 64 king@grassland.com (Elvis Parsley)
diff --git a/lisp/mail/supercite.el b/lisp/mail/supercite.el
index cf3aac1a317..56158cc156c 100644
--- a/lisp/mail/supercite.el
+++ b/lisp/mail/supercite.el
@@ -886,10 +886,10 @@ Action can be one of: View, Modify, Add, or Delete."
886 886
887(defun sc-attribs-%@-addresses (from &optional delim) 887(defun sc-attribs-%@-addresses (from &optional delim)
888 "Extract the author's email terminus from email address FROM. 888 "Extract the author's email terminus from email address FROM.
889Match addresses of the style ``name%[stuff].'' when called with DELIM 889Match addresses of the style \"name%[stuff].\" when called with DELIM
890of \"%\" and addresses of the style ``[stuff]name@[stuff]'' when 890of \"%\" and addresses of the style \"[stuff]name@[stuff]\" when
891called with DELIM \"@\". If DELIM is nil or not provided, matches 891called with DELIM \"@\". If DELIM is nil or not provided, matches
892addresses of the style ``name''." 892addresses of the style \"name\"."
893 (and (string-match (concat "[-[:alnum:]_.]+" delim) from 0) 893 (and (string-match (concat "[-[:alnum:]_.]+" delim) from 0)
894 (substring from 894 (substring from
895 (match-beginning 0) 895 (match-beginning 0)
@@ -897,7 +897,7 @@ addresses of the style ``name''."
897 897
898(defun sc-attribs-!-addresses (from) 898(defun sc-attribs-!-addresses (from)
899 "Extract the author's email terminus from email address FROM. 899 "Extract the author's email terminus from email address FROM.
900Match addresses of the style ``[stuff]![stuff]...!name[stuff].''" 900Match addresses of the style \"[stuff]![stuff]...!name[stuff].\""
901 (let ((eos (length from)) 901 (let ((eos (length from))
902 (mstart (string-match "![-[:alnum:]_.]+\\([^-![:alnum:]_.]\\|$\\)" 902 (mstart (string-match "![-[:alnum:]_.]+\\([^-![:alnum:]_.]\\|$\\)"
903 from 0)) 903 from 0))
@@ -907,7 +907,7 @@ Match addresses of the style ``[stuff]![stuff]...!name[stuff].''"
907 907
908(defun sc-attribs-<>-addresses (from) 908(defun sc-attribs-<>-addresses (from)
909 "Extract the author's email terminus from email address FROM. 909 "Extract the author's email terminus from email address FROM.
910Match addresses of the style ``<name[stuff]>.''" 910Match addresses of the style \"<name[stuff]>.\""
911 (and (string-match "<\\(.*\\)>" from) 911 (and (string-match "<\\(.*\\)>" from)
912 (match-string 1 from))) 912 (match-string 1 from)))
913 913
diff --git a/lisp/mail/uudecode.el b/lisp/mail/uudecode.el
index 419aefbdad0..c1e3439a5de 100644
--- a/lisp/mail/uudecode.el
+++ b/lisp/mail/uudecode.el
@@ -102,7 +102,7 @@ used is specified by `uudecode-decoder-program'."
102 (let ((cdir default-directory) 102 (let ((cdir default-directory)
103 (default-process-coding-system 103 (default-process-coding-system
104 (if (featurep 'xemacs) 104 (if (featurep 'xemacs)
105 ;; In XEmacs, `nil' is not a valid coding system. 105 ;; In XEmacs, nil is not a valid coding system.
106 '(binary . binary) 106 '(binary . binary)
107 nil))) 107 nil)))
108 (unwind-protect 108 (unwind-protect
diff --git a/lisp/minibuffer.el b/lisp/minibuffer.el
index 538bd974256..60b89b6d521 100644
--- a/lisp/minibuffer.el
+++ b/lisp/minibuffer.el
@@ -1241,16 +1241,12 @@ scroll the window of possible completions."
1241(defun minibuffer-force-complete-and-exit () 1241(defun minibuffer-force-complete-and-exit ()
1242 "Complete the minibuffer with first of the matches and exit." 1242 "Complete the minibuffer with first of the matches and exit."
1243 (interactive) 1243 (interactive)
1244 (if (and (eq (minibuffer-prompt-end) (point-max)) 1244 (minibuffer-force-complete)
1245 minibuffer-default) 1245 (completion--complete-and-exit
1246 ;; Use the provided default if there's one (bug#17545). 1246 (minibuffer-prompt-end) (point-max) #'exit-minibuffer
1247 (minibuffer-complete-and-exit) 1247 ;; If the previous completion completed to an element which fails
1248 (minibuffer-force-complete) 1248 ;; test-completion, then we shouldn't exit, but that should be rare.
1249 (completion--complete-and-exit 1249 (lambda () (minibuffer-message "Incomplete"))))
1250 (minibuffer-prompt-end) (point-max) #'exit-minibuffer
1251 ;; If the previous completion completed to an element which fails
1252 ;; test-completion, then we shouldn't exit, but that should be rare.
1253 (lambda () (minibuffer-message "Incomplete")))))
1254 1250
1255(defun minibuffer-force-complete (&optional start end) 1251(defun minibuffer-force-complete (&optional start end)
1256 "Complete the minibuffer to an exact match. 1252 "Complete the minibuffer to an exact match.
diff --git a/lisp/net/ange-ftp.el b/lisp/net/ange-ftp.el
index 52153ad8322..1f893a72f8e 100644
--- a/lisp/net/ange-ftp.el
+++ b/lisp/net/ange-ftp.el
@@ -193,7 +193,7 @@
193;; 193;;
194;; "^$*$ *" 194;; "^$*$ *"
195;; 195;;
196;; 9) Set the variable ange-ftp-gateway-program-interactive to 't' to let 196;; 9) Set the variable ange-ftp-gateway-program-interactive to t to let
197;; ange-ftp know that it has to "hand-hold" the login to the gateway 197;; ange-ftp know that it has to "hand-hold" the login to the gateway
198;; machine. 198;; machine.
199;; 199;;
diff --git a/lisp/net/dbus.el b/lisp/net/dbus.el
index 474a48ff276..8f7754137cb 100644
--- a/lisp/net/dbus.el
+++ b/lisp/net/dbus.el
@@ -813,7 +813,7 @@ discovering the still incomplete interface."
813 "Unregister OBJECT from D-Bus. 813 "Unregister OBJECT from D-Bus.
814OBJECT must be the result of a preceding `dbus-register-method', 814OBJECT must be the result of a preceding `dbus-register-method',
815`dbus-register-property' or `dbus-register-signal' call. It 815`dbus-register-property' or `dbus-register-signal' call. It
816returns `t' if OBJECT has been unregistered, `nil' otherwise. 816returns t if OBJECT has been unregistered, nil otherwise.
817 817
818When OBJECT identifies the last method or property, which is 818When OBJECT identifies the last method or property, which is
819registered for the respective service, Emacs releases its 819registered for the respective service, Emacs releases its
@@ -1092,7 +1092,7 @@ well formed."
1092(defun dbus-list-activatable-names (&optional bus) 1092(defun dbus-list-activatable-names (&optional bus)
1093 "Return the D-Bus service names which can be activated as list. 1093 "Return the D-Bus service names which can be activated as list.
1094If BUS is left nil, `:system' is assumed. The result is a list 1094If BUS is left nil, `:system' is assumed. The result is a list
1095of strings, which is `nil' when there are no activatable service 1095of strings, which is nil when there are no activatable service
1096names at all." 1096names at all."
1097 (dbus-ignore-errors 1097 (dbus-ignore-errors
1098 (dbus-call-method 1098 (dbus-call-method
@@ -1101,7 +1101,7 @@ names at all."
1101 1101
1102(defun dbus-list-names (bus) 1102(defun dbus-list-names (bus)
1103 "Return the service names registered at D-Bus BUS. 1103 "Return the service names registered at D-Bus BUS.
1104The result is a list of strings, which is `nil' when there are no 1104The result is a list of strings, which is nil when there are no
1105registered service names at all. Well known names are strings 1105registered service names at all. Well known names are strings
1106like \"org.freedesktop.DBus\". Names starting with \":\" are 1106like \"org.freedesktop.DBus\". Names starting with \":\" are
1107unique names for services." 1107unique names for services."
@@ -1119,7 +1119,7 @@ A service has a known name if it doesn't start with \":\"."
1119 1119
1120(defun dbus-list-queued-owners (bus service) 1120(defun dbus-list-queued-owners (bus service)
1121 "Return the unique names registered at D-Bus BUS and queued for SERVICE. 1121 "Return the unique names registered at D-Bus BUS and queued for SERVICE.
1122The result is a list of strings, or `nil' when there are no 1122The result is a list of strings, or nil when there are no
1123queued name owners service names at all." 1123queued name owners service names at all."
1124 (dbus-ignore-errors 1124 (dbus-ignore-errors
1125 (dbus-call-method 1125 (dbus-call-method
@@ -1128,7 +1128,7 @@ queued name owners service names at all."
1128 1128
1129(defun dbus-get-name-owner (bus service) 1129(defun dbus-get-name-owner (bus service)
1130 "Return the name owner of SERVICE registered at D-Bus BUS. 1130 "Return the name owner of SERVICE registered at D-Bus BUS.
1131The result is either a string, or `nil' if there is no name owner." 1131The result is either a string, or nil if there is no name owner."
1132 (dbus-ignore-errors 1132 (dbus-ignore-errors
1133 (dbus-call-method 1133 (dbus-call-method
1134 bus dbus-service-dbus dbus-path-dbus 1134 bus dbus-service-dbus dbus-path-dbus
@@ -1145,7 +1145,7 @@ apply
1145 1145
1146 \(member service \(dbus-list-known-names bus))" 1146 \(member service \(dbus-list-known-names bus))"
1147 ;; "Ping" raises a D-Bus error if SERVICE does not exist. 1147 ;; "Ping" raises a D-Bus error if SERVICE does not exist.
1148 ;; Otherwise, it returns silently with `nil'. 1148 ;; Otherwise, it returns silently with nil.
1149 (condition-case nil 1149 (condition-case nil
1150 (not 1150 (not
1151 (if (natnump timeout) 1151 (if (natnump timeout)
@@ -1335,7 +1335,7 @@ object can contain \"annotation\" children."
1335(defun dbus-introspect-get-annotation-names 1335(defun dbus-introspect-get-annotation-names
1336 (bus service path interface &optional name) 1336 (bus service path interface &optional name)
1337 "Return all annotation names as list of strings. 1337 "Return all annotation names as list of strings.
1338If NAME is `nil', the annotations are children of INTERFACE, 1338If NAME is nil, the annotations are children of INTERFACE,
1339otherwise NAME must be a \"method\", \"signal\", or \"property\" 1339otherwise NAME must be a \"method\", \"signal\", or \"property\"
1340object, where the annotations belong to." 1340object, where the annotations belong to."
1341 (let ((object 1341 (let ((object
@@ -1352,7 +1352,7 @@ object, where the annotations belong to."
1352(defun dbus-introspect-get-annotation 1352(defun dbus-introspect-get-annotation
1353 (bus service path interface name annotation) 1353 (bus service path interface name annotation)
1354 "Return ANNOTATION as XML object. 1354 "Return ANNOTATION as XML object.
1355If NAME is `nil', ANNOTATION is a child of INTERFACE, otherwise 1355If NAME is nil, ANNOTATION is a child of INTERFACE, otherwise
1356NAME must be the name of a \"method\", \"signal\", or 1356NAME must be the name of a \"method\", \"signal\", or
1357\"property\" object, where the ANNOTATION belongs to." 1357\"property\" object, where the ANNOTATION belongs to."
1358 (let ((elt (xml-get-children 1358 (let ((elt (xml-get-children
@@ -1376,7 +1376,7 @@ NAME must be the name of a \"method\", \"signal\", or
1376 "Return a list of all argument names as list of strings. 1376 "Return a list of all argument names as list of strings.
1377NAME must be a \"method\" or \"signal\" object. 1377NAME must be a \"method\" or \"signal\" object.
1378 1378
1379Argument names are optional, the function can return `nil' 1379Argument names are optional, the function can return nil
1380therefore, even if the method or signal has arguments." 1380therefore, even if the method or signal has arguments."
1381 (let ((object 1381 (let ((object
1382 (or (dbus-introspect-get-method bus service path interface name) 1382 (or (dbus-introspect-get-method bus service path interface name)
@@ -1404,9 +1404,9 @@ element of the list returned by `dbus-introspect-get-argument-names'."
1404 (bus service path interface name &optional direction) 1404 (bus service path interface name &optional direction)
1405 "Return signature of a `method' or `signal', represented by NAME, as string. 1405 "Return signature of a `method' or `signal', represented by NAME, as string.
1406If NAME is a `method', DIRECTION can be either \"in\" or \"out\". 1406If NAME is a `method', DIRECTION can be either \"in\" or \"out\".
1407If DIRECTION is `nil', \"in\" is assumed. 1407If DIRECTION is nil, \"in\" is assumed.
1408 1408
1409If NAME is a `signal', and DIRECTION is non-`nil', DIRECTION must 1409If NAME is a `signal', and DIRECTION is non-nil, DIRECTION must
1410be \"out\"." 1410be \"out\"."
1411 ;; For methods, we use "in" as default direction. 1411 ;; For methods, we use "in" as default direction.
1412 (let ((object (or (dbus-introspect-get-method 1412 (let ((object (or (dbus-introspect-get-method
@@ -1440,7 +1440,7 @@ be \"out\"."
1440(defun dbus-get-property (bus service path interface property) 1440(defun dbus-get-property (bus service path interface property)
1441 "Return the value of PROPERTY of INTERFACE. 1441 "Return the value of PROPERTY of INTERFACE.
1442It will be checked at BUS, SERVICE, PATH. The result can be any 1442It will be checked at BUS, SERVICE, PATH. The result can be any
1443valid D-Bus value, or `nil' if there is no PROPERTY." 1443valid D-Bus value, or nil if there is no PROPERTY."
1444 (dbus-ignore-errors 1444 (dbus-ignore-errors
1445 ;; "Get" returns a variant, so we must use the `car'. 1445 ;; "Get" returns a variant, so we must use the `car'.
1446 (car 1446 (car
@@ -1451,7 +1451,7 @@ valid D-Bus value, or `nil' if there is no PROPERTY."
1451(defun dbus-set-property (bus service path interface property value) 1451(defun dbus-set-property (bus service path interface property value)
1452 "Set value of PROPERTY of INTERFACE to VALUE. 1452 "Set value of PROPERTY of INTERFACE to VALUE.
1453It will be checked at BUS, SERVICE, PATH. When the value has 1453It will be checked at BUS, SERVICE, PATH. When the value has
1454been set successful, the result is VALUE. Otherwise, `nil' is 1454been set successful, the result is VALUE. Otherwise, nil is
1455returned." 1455returned."
1456 (dbus-ignore-errors 1456 (dbus-ignore-errors
1457 ;; "Set" requires a variant. 1457 ;; "Set" requires a variant.
@@ -1465,7 +1465,7 @@ returned."
1465 "Return all properties of INTERFACE at BUS, SERVICE, PATH. 1465 "Return all properties of INTERFACE at BUS, SERVICE, PATH.
1466The result is a list of entries. Every entry is a cons of the 1466The result is a list of entries. Every entry is a cons of the
1467name of the property, and its value. If there are no properties, 1467name of the property, and its value. If there are no properties,
1468`nil' is returned." 1468nil is returned."
1469 (dbus-ignore-errors 1469 (dbus-ignore-errors
1470 ;; "GetAll" returns "a{sv}". 1470 ;; "GetAll" returns "a{sv}".
1471 (let (result) 1471 (let (result)
diff --git a/lisp/net/network-stream.el b/lisp/net/network-stream.el
index 0104fa7dd12..1eb5342009c 100644
--- a/lisp/net/network-stream.el
+++ b/lisp/net/network-stream.el
@@ -121,7 +121,7 @@ values:
121 121
122:client-certificate should either be a list where the first 122:client-certificate should either be a list where the first
123 element is the certificate key file name, and the second 123 element is the certificate key file name, and the second
124 element is the certificate file name itself, or `t', which 124 element is the certificate file name itself, or t, which
125 means that `auth-source' will be queried for the key and the 125 means that `auth-source' will be queried for the key and the
126 certificate. This parameter will only be used when doing TLS 126 certificate. This parameter will only be used when doing TLS
127 or STARTTLS connections. 127 or STARTTLS connections.
diff --git a/lisp/net/rcirc.el b/lisp/net/rcirc.el
index 11db7a2cab2..852d2941f0b 100644
--- a/lisp/net/rcirc.el
+++ b/lisp/net/rcirc.el
@@ -1372,7 +1372,7 @@ if ARG is omitted or nil."
1372 (t . "%fp*** %fs%n %r %m")) 1372 (t . "%fp*** %fs%n %r %m"))
1373 "An alist of formats used for printing responses. 1373 "An alist of formats used for printing responses.
1374The format is looked up using the response-type as a key; 1374The format is looked up using the response-type as a key;
1375if no match is found, the default entry (with a key of `t') is used. 1375if no match is found, the default entry (with a key of t) is used.
1376 1376
1377The entry's value part should be a string, which is inserted with 1377The entry's value part should be a string, which is inserted with
1378the of the following escape sequences replaced by the described values: 1378the of the following escape sequences replaced by the described values:
diff --git a/lisp/net/rlogin.el b/lisp/net/rlogin.el
index d0758208303..e71179b6b89 100644
--- a/lisp/net/rlogin.el
+++ b/lisp/net/rlogin.el
@@ -235,14 +235,14 @@ variable."
235 "Do remote or local directory tracking, or disable entirely. 235 "Do remote or local directory tracking, or disable entirely.
236 236
237If called with no prefix argument or a unspecified prefix argument (just 237If called with no prefix argument or a unspecified prefix argument (just
238``\\[universal-argument]'' with no number) do remote directory tracking via 238`\\[universal-argument]' with no number) do remote directory tracking via
239ange-ftp. If called as a function, give it no argument. 239ange-ftp. If called as a function, give it no argument.
240 240
241If called with a negative prefix argument, disable directory tracking 241If called with a negative prefix argument, disable directory tracking
242entirely. 242entirely.
243 243
244If called with a positive, numeric prefix argument, e.g. 244If called with a positive, numeric prefix argument, e.g.
245``\\[universal-argument] 1 M-x rlogin-directory-tracking-mode\'', 245`\\[universal-argument] 1 M-x rlogin-directory-tracking-mode',
246then do directory tracking but assume the remote filesystem is the same as 246then do directory tracking but assume the remote filesystem is the same as
247the local system. This only works in general if the remote machine and the 247the local system. This only works in general if the remote machine and the
248local one share the same directories (e.g. through NFS)." 248local one share the same directories (e.g. through NFS)."
diff --git a/lisp/net/secrets.el b/lisp/net/secrets.el
index 56cbec4ea75..c4102a18cef 100644
--- a/lisp/net/secrets.el
+++ b/lisp/net/secrets.el
@@ -85,7 +85,7 @@
85;; temporarily. This shall be preferred over creation of a persistent 85;; temporarily. This shall be preferred over creation of a persistent
86;; collection, when the information shall not live longer than Emacs. 86;; collection, when the information shall not live longer than Emacs.
87;; The session collection can be addressed either by the string 87;; The session collection can be addressed either by the string
88;; "session", or by `nil', whenever a collection parameter is needed. 88;; "session", or by nil, whenever a collection parameter is needed.
89 89
90;; As already said, a collection is a group of secret items. A secret 90;; As already said, a collection is a group of secret items. A secret
91;; item has a label, the "secret" (which is a string), and a set of 91;; item has a label, the "secret" (which is a string), and a set of
@@ -418,7 +418,7 @@ returned, and it will be stored in `secrets-session-path'."
418(defun secrets-prompt-handler (&rest args) 418(defun secrets-prompt-handler (&rest args)
419 "Handler for signals emitted by `secrets-interface-prompt'." 419 "Handler for signals emitted by `secrets-interface-prompt'."
420 ;; An empty object path is always identified as `secrets-empty-path' 420 ;; An empty object path is always identified as `secrets-empty-path'
421 ;; or `nil'. Either we set it explicitly, or it is returned by the 421 ;; or nil. Either we set it explicitly, or it is returned by the
422 ;; "Completed" signal. 422 ;; "Completed" signal.
423 (if (car args) ;; dismissed 423 (if (car args) ;; dismissed
424 (setq secrets-prompt-signal (list secrets-empty-path)) 424 (setq secrets-prompt-signal (list secrets-empty-path))
diff --git a/lisp/net/soap-client.el b/lisp/net/soap-client.el
index b19a432ee53..77405740917 100644
--- a/lisp/net/soap-client.el
+++ b/lisp/net/soap-client.el
@@ -490,7 +490,7 @@ elements named \"foo\" exist in the WSDL you could use:
490 490
491 (soap-wsdl-get \"foo\" WSDL 'soap-message-p) 491 (soap-wsdl-get \"foo\" WSDL 'soap-message-p)
492 492
493If USE-LOCAL-ALIAS-TABLE is not nil, `soap-local-xmlns` will be 493If USE-LOCAL-ALIAS-TABLE is not nil, `soap-local-xmlns' will be
494used to resolve the namespace alias." 494used to resolve the namespace alias."
495 (let ((alias-table (soap-wsdl-alias-table wsdl)) 495 (let ((alias-table (soap-wsdl-alias-table wsdl))
496 namespace element-name element) 496 namespace element-name element)
diff --git a/lisp/net/telnet.el b/lisp/net/telnet.el
index f844f83d716..6d9f408d5ca 100644
--- a/lisp/net/telnet.el
+++ b/lisp/net/telnet.el
@@ -237,7 +237,7 @@ Normally input is edited in Emacs and sent a line at a time."
237(define-derived-mode telnet-mode comint-mode "Telnet" 237(define-derived-mode telnet-mode comint-mode "Telnet"
238 "This mode is for using telnet (or rsh) from a buffer to another host. 238 "This mode is for using telnet (or rsh) from a buffer to another host.
239It has most of the same commands as comint-mode. 239It has most of the same commands as comint-mode.
240There is a variable ``telnet-interrupt-string'' which is the character 240There is a variable `telnet-interrupt-string' which is the character
241sent to try to stop execution of a job on the remote host. 241sent to try to stop execution of a job on the remote host.
242Data is sent to the remote host when RET is typed." 242Data is sent to the remote host when RET is typed."
243 (set (make-local-variable 'window-point-insertion-type) t) 243 (set (make-local-variable 'window-point-insertion-type) t)
diff --git a/lisp/net/tramp-adb.el b/lisp/net/tramp-adb.el
index a92ca4df51c..7c509e1d098 100644
--- a/lisp/net/tramp-adb.el
+++ b/lisp/net/tramp-adb.el
@@ -850,9 +850,9 @@ PRESERVE-UID-GID and PRESERVE-EXTENDED-ATTRIBUTES are completely ignored."
850 (when tmpinput (delete-file tmpinput)) 850 (when tmpinput (delete-file tmpinput))
851 851
852 ;; `process-file-side-effects' has been introduced with GNU 852 ;; `process-file-side-effects' has been introduced with GNU
853 ;; Emacs 23.2. If set to `nil', no remote file will be changed 853 ;; Emacs 23.2. If set to nil, no remote file will be changed
854 ;; by `program'. If it doesn't exist, we assume its default 854 ;; by `program'. If it doesn't exist, we assume its default
855 ;; value 't'. 855 ;; value t.
856 (unless (and (boundp 'process-file-side-effects) 856 (unless (and (boundp 'process-file-side-effects)
857 (not (symbol-value 'process-file-side-effects))) 857 (not (symbol-value 'process-file-side-effects)))
858 (tramp-flush-directory-property v "")) 858 (tramp-flush-directory-property v ""))
diff --git a/lisp/net/tramp-cmds.el b/lisp/net/tramp-cmds.el
index d45c0aad142..89baaa444a7 100644
--- a/lisp/net/tramp-cmds.el
+++ b/lisp/net/tramp-cmds.el
@@ -157,7 +157,7 @@ This includes password cache, file cache, connection cache, buffers."
157 (interactive "P") 157 (interactive "P")
158 (if arg (insert tramp-version) (message tramp-version))) 158 (if arg (insert tramp-version) (message tramp-version)))
159 159
160;; Make the `reporter` functionality available for making bug reports about 160;; Make the "reporter" functionality available for making bug reports about
161;; the package. A most useful piece of code. 161;; the package. A most useful piece of code.
162 162
163(autoload 'reporter-submit-bug-report "reporter") 163(autoload 'reporter-submit-bug-report "reporter")
diff --git a/lisp/net/tramp-compat.el b/lisp/net/tramp-compat.el
index 3ec90ca556f..e68c81cfa70 100644
--- a/lisp/net/tramp-compat.el
+++ b/lisp/net/tramp-compat.el
@@ -100,7 +100,7 @@
100 (setq byte-compile-not-obsolete-vars '(directory-sep-char))) 100 (setq byte-compile-not-obsolete-vars '(directory-sep-char)))
101 101
102 ;; `remote-file-name-inhibit-cache' has been introduced with Emacs 24.1. 102 ;; `remote-file-name-inhibit-cache' has been introduced with Emacs 24.1.
103 ;; Besides `t', `nil', and integer, we use also timestamps (as 103 ;; Besides t, nil, and integer, we use also timestamps (as
104 ;; returned by `current-time') internally. 104 ;; returned by `current-time') internally.
105 (unless (boundp 'remote-file-name-inhibit-cache) 105 (unless (boundp 'remote-file-name-inhibit-cache)
106 (defvar remote-file-name-inhibit-cache nil)) 106 (defvar remote-file-name-inhibit-cache nil))
@@ -459,7 +459,7 @@ element is not omitted."
459 (delete "" (split-string string pattern))) 459 (delete "" (split-string string pattern)))
460 460
461(defun tramp-compat-process-running-p (process-name) 461(defun tramp-compat-process-running-p (process-name)
462 "Returns `t' if system process PROCESS-NAME is running for `user-login-name'." 462 "Returns t if system process PROCESS-NAME is running for `user-login-name'."
463 (when (stringp process-name) 463 (when (stringp process-name)
464 (cond 464 (cond
465 ;; GNU Emacs 22 on w32. 465 ;; GNU Emacs 22 on w32.
diff --git a/lisp/net/tramp-gvfs.el b/lisp/net/tramp-gvfs.el
index 5988a284c6e..215e39d04c3 100644
--- a/lisp/net/tramp-gvfs.el
+++ b/lisp/net/tramp-gvfs.el
@@ -1563,7 +1563,7 @@ connection if a previous connection has died for some reason."
1563(defun tramp-gvfs-send-command (vec command &rest args) 1563(defun tramp-gvfs-send-command (vec command &rest args)
1564 "Send the COMMAND with its ARGS to connection VEC. 1564 "Send the COMMAND with its ARGS to connection VEC.
1565COMMAND is usually a command from the gvfs-* utilities. 1565COMMAND is usually a command from the gvfs-* utilities.
1566`call-process' is applied, and it returns `t' if the return code is zero." 1566`call-process' is applied, and it returns t if the return code is zero."
1567 (with-current-buffer (tramp-get-connection-buffer vec) 1567 (with-current-buffer (tramp-get-connection-buffer vec)
1568 (tramp-gvfs-maybe-open-connection vec) 1568 (tramp-gvfs-maybe-open-connection vec)
1569 (erase-buffer) 1569 (erase-buffer)
diff --git a/lisp/net/tramp-sh.el b/lisp/net/tramp-sh.el
index 3f006e84dc1..acb97e880b4 100644
--- a/lisp/net/tramp-sh.el
+++ b/lisp/net/tramp-sh.el
@@ -1558,7 +1558,7 @@ be non-negative integers."
1558 (progn 1558 (progn
1559 (tramp-set-file-property v localname "file-acl" acl-string) 1559 (tramp-set-file-property v localname "file-acl" acl-string)
1560 t) 1560 t)
1561 ;; In case of errors, we return `nil'. 1561 ;; In case of errors, we return nil.
1562 (tramp-set-file-property v localname "file-acl-string" 'undef) 1562 (tramp-set-file-property v localname "file-acl-string" 'undef)
1563 nil))) 1563 nil)))
1564 1564
@@ -3103,9 +3103,9 @@ the result will be a local, non-Tramp, file name."
3103 (when tmpinput (delete-file tmpinput)) 3103 (when tmpinput (delete-file tmpinput))
3104 3104
3105 ;; `process-file-side-effects' has been introduced with GNU 3105 ;; `process-file-side-effects' has been introduced with GNU
3106 ;; Emacs 23.2. If set to `nil', no remote file will be changed 3106 ;; Emacs 23.2. If set to nil, no remote file will be changed
3107 ;; by `program'. If it doesn't exist, we assume its default 3107 ;; by `program'. If it doesn't exist, we assume its default
3108 ;; value `t'. 3108 ;; value t.
3109 (unless (and (boundp 'process-file-side-effects) 3109 (unless (and (boundp 'process-file-side-effects)
3110 (not (symbol-value 'process-file-side-effects))) 3110 (not (symbol-value 'process-file-side-effects)))
3111 (tramp-flush-directory-property v "")) 3111 (tramp-flush-directory-property v ""))
@@ -4973,8 +4973,8 @@ function waits for output unless NOOUTPUT is set."
4973 (vec command &optional subshell dont-suppress-err) 4973 (vec command &optional subshell dont-suppress-err)
4974 "Run COMMAND and check its exit status. 4974 "Run COMMAND and check its exit status.
4975Sends `echo $?' along with the COMMAND for checking the exit status. 4975Sends `echo $?' along with the COMMAND for checking the exit status.
4976If COMMAND is nil, just sends `echo $?'. Returns `t' if the exit 4976If COMMAND is nil, just sends `echo $?'. Returns t if the exit
4977status is 0, and `nil' otherwise. 4977status is 0, and nil otherwise.
4978 4978
4979If the optional argument SUBSHELL is non-nil, the command is 4979If the optional argument SUBSHELL is non-nil, the command is
4980executed in a subshell, ie surrounded by parentheses. If 4980executed in a subshell, ie surrounded by parentheses. If
@@ -5551,7 +5551,7 @@ If no corresponding command is found, nil is returned.
5551Otherwise, either a string is returned which contains a `%s' mark 5551Otherwise, either a string is returned which contains a `%s' mark
5552to be used for the respective input or output file; or a Lisp 5552to be used for the respective input or output file; or a Lisp
5553function cell is returned to be applied on a buffer." 5553function cell is returned to be applied on a buffer."
5554 ;; We must catch the errors, because we want to return `nil', when 5554 ;; We must catch the errors, because we want to return nil, when
5555 ;; no inline coding is found. 5555 ;; no inline coding is found.
5556 (ignore-errors 5556 (ignore-errors
5557 (let ((coding 5557 (let ((coding
diff --git a/lisp/net/tramp-smb.el b/lisp/net/tramp-smb.el
index 14360b96fe6..c4f0f1f500a 100644
--- a/lisp/net/tramp-smb.el
+++ b/lisp/net/tramp-smb.el
@@ -1242,9 +1242,9 @@ target of the symlink differ."
1242 (kill-buffer (tramp-get-connection-property v "process-buffer" nil))) 1242 (kill-buffer (tramp-get-connection-property v "process-buffer" nil)))
1243 1243
1244 ;; `process-file-side-effects' has been introduced with GNU 1244 ;; `process-file-side-effects' has been introduced with GNU
1245 ;; Emacs 23.2. If set to `nil', no remote file will be changed 1245 ;; Emacs 23.2. If set to nil, no remote file will be changed
1246 ;; by `program'. If it doesn't exist, we assume its default 1246 ;; by `program'. If it doesn't exist, we assume its default
1247 ;; value `t'. 1247 ;; value t.
1248 (unless (and (boundp 'process-file-side-effects) 1248 (unless (and (boundp 'process-file-side-effects)
1249 (not (symbol-value 'process-file-side-effects))) 1249 (not (symbol-value 'process-file-side-effects)))
1250 (tramp-flush-directory-property v "")) 1250 (tramp-flush-directory-property v ""))
diff --git a/lisp/net/tramp.el b/lisp/net/tramp.el
index 10bb76983aa..95f54490cac 100644
--- a/lisp/net/tramp.el
+++ b/lisp/net/tramp.el
@@ -300,8 +300,8 @@ are fit for gateways must have `tramp-default-port' at least.
300 300
301Notes: 301Notes:
302 302
303When using `su' or `sudo' the phrase `open connection to a remote 303When using `su' or `sudo' the phrase \"open connection to a remote
304host' sounds strange, but it is used nevertheless, for consistency. 304host\" sounds strange, but it is used nevertheless, for consistency.
305No connection is opened to a remote host, but `su' or `sudo' is 305No connection is opened to a remote host, but `su' or `sudo' is
306started on the local host. You should specify a remote host 306started on the local host. You should specify a remote host
307`localhost' or the name of the local host. Another host name is 307`localhost' or the name of the local host. Another host name is
@@ -1034,7 +1034,7 @@ The timeout does not include the time reading a password."
1034This is necessary as self defense mechanism, in order to avoid 1034This is necessary as self defense mechanism, in order to avoid
1035yo-yo connection attempts when the remote host is unavailable. 1035yo-yo connection attempts when the remote host is unavailable.
1036 1036
1037A value of 0 or `nil' suppresses this check. This might be 1037A value of 0 or nil suppresses this check. This might be
1038necessary, when several out-of-order copy operations are 1038necessary, when several out-of-order copy operations are
1039performed, or when several asynchronous processes will be started 1039performed, or when several asynchronous processes will be started
1040in a short time frame. In those cases it is recommended to 1040in a short time frame. In those cases it is recommended to
@@ -1049,8 +1049,8 @@ A remote directory might have changed its contents. In order to
1049make it visible during file name completion in the minibuffer, 1049make it visible during file name completion in the minibuffer,
1050Tramp flushes its cache and rereads the directory contents when 1050Tramp flushes its cache and rereads the directory contents when
1051more than `tramp-completion-reread-directory-timeout' seconds 1051more than `tramp-completion-reread-directory-timeout' seconds
1052have been gone since last remote command execution. A value of `t' 1052have been gone since last remote command execution. A value of t
1053would require an immediate reread during filename completion, `nil' 1053would require an immediate reread during filename completion, nil
1054means to use always cached values for the directory contents." 1054means to use always cached values for the directory contents."
1055 :group 'tramp 1055 :group 'tramp
1056 :type '(choice (const nil) (const t) integer)) 1056 :type '(choice (const nil) (const t) integer))
@@ -3314,7 +3314,7 @@ User is always nil."
3314 3314
3315(defun tramp-handle-unhandled-file-name-directory (_filename) 3315(defun tramp-handle-unhandled-file-name-directory (_filename)
3316 "Like `unhandled-file-name-directory' for Tramp files." 3316 "Like `unhandled-file-name-directory' for Tramp files."
3317 ;; Starting with Emacs 23, we must simply return `nil'. But we must 3317 ;; Starting with Emacs 23, we must simply return nil. But we must
3318 ;; keep backward compatibility, also with XEmacs. "~/" cannot be 3318 ;; keep backward compatibility, also with XEmacs. "~/" cannot be
3319 ;; returned, because there might be machines without a HOME 3319 ;; returned, because there might be machines without a HOME
3320 ;; directory (like hydra). 3320 ;; directory (like hydra).
@@ -3737,7 +3737,7 @@ Example:
3737 3737
3738 (tramp-equal-remote \"/ssh::/etc\" \"/<your host name>:/home\") 3738 (tramp-equal-remote \"/ssh::/etc\" \"/<your host name>:/home\")
3739 3739
3740would yield `t'. On the other hand, the following check results in nil: 3740would yield t. On the other hand, the following check results in nil:
3741 3741
3742 (tramp-equal-remote \"/sudo::/etc\" \"/su::/etc\")" 3742 (tramp-equal-remote \"/sudo::/etc\" \"/su::/etc\")"
3743 (and (tramp-tramp-file-p file1) 3743 (and (tramp-tramp-file-p file1)
diff --git a/lisp/obsolete/xesam.el b/lisp/obsolete/xesam.el
index 4ee8c6f1b0f..39dd6a241f2 100644
--- a/lisp/obsolete/xesam.el
+++ b/lisp/obsolete/xesam.el
@@ -378,7 +378,7 @@ If PROPERTY is not existing, retrieve it from ENGINE first."
378(defun xesam-search-engines () 378(defun xesam-search-engines ()
379 "Return Xesam search engines, stored in `xesam-search-engines'. 379 "Return Xesam search engines, stored in `xesam-search-engines'.
380The first search engine is the name owner of `xesam-service-search'. 380The first search engine is the name owner of `xesam-service-search'.
381If there is no registered search engine at all, the function returns `nil'." 381If there is no registered search engine at all, the function returns nil."
382 (let ((services (dbus-ignore-errors 382 (let ((services (dbus-ignore-errors
383 (dbus-list-queued-owners 383 (dbus-list-queued-owners
384 :session xesam-service-search))) 384 :session xesam-service-search)))
diff --git a/lisp/org/ob-ruby.el b/lisp/org/ob-ruby.el
index 7e09d6d78be..8dee01a5389 100644
--- a/lisp/org/ob-ruby.el
+++ b/lisp/org/ob-ruby.el
@@ -58,7 +58,7 @@
58 :type 'string) 58 :type 'string)
59 59
60(defcustom org-babel-ruby-nil-to 'hline 60(defcustom org-babel-ruby-nil-to 'hline
61 "Replace 'nil' in ruby tables with this before returning." 61 "Replace nil in ruby tables with this before returning."
62 :group 'org-babel 62 :group 'org-babel
63 :version "24.4" 63 :version "24.4"
64 :package-version '(Org . "8.0") 64 :package-version '(Org . "8.0")
diff --git a/lisp/org/org-agenda.el b/lisp/org/org-agenda.el
index 8f7611fd1ff..65696b21d71 100644
--- a/lisp/org/org-agenda.el
+++ b/lisp/org/org-agenda.el
@@ -6642,7 +6642,7 @@ The modified list may contain inherited tags, and tags matched by
6642 6642
6643LIST is the list of agenda items formatted by `org-agenda-list'. 6643LIST is the list of agenda items formatted by `org-agenda-list'.
6644NDAYS is the span of the current agenda view. 6644NDAYS is the span of the current agenda view.
6645TODAYP is `t' when the current agenda view is on today." 6645TODAYP is t when the current agenda view is on today."
6646 (catch 'exit 6646 (catch 'exit
6647 (cond ((not org-agenda-use-time-grid) (throw 'exit list)) 6647 (cond ((not org-agenda-use-time-grid) (throw 'exit list))
6648 ((and todayp (member 'today (car org-agenda-time-grid)))) 6648 ((and todayp (member 'today (car org-agenda-time-grid))))
diff --git a/lisp/org/org-bbdb.el b/lisp/org/org-bbdb.el
index a0711cc006b..c4893850199 100644
--- a/lisp/org/org-bbdb.el
+++ b/lisp/org/org-bbdb.el
@@ -37,7 +37,7 @@
37;; the diary using bbdb-anniv.el. 37;; the diary using bbdb-anniv.el.
38;; 38;;
39;; Put the following in /somewhere/at/home/diary.org and make sure 39;; Put the following in /somewhere/at/home/diary.org and make sure
40;; that this file is in `org-agenda-files` 40;; that this file is in `org-agenda-files'.
41;; 41;;
42;; %%(org-bbdb-anniversaries) 42;; %%(org-bbdb-anniversaries)
43;; 43;;
diff --git a/lisp/org/org-capture.el b/lisp/org/org-capture.el
index 7f1f7ed8af1..64e30152a5b 100644
--- a/lisp/org/org-capture.el
+++ b/lisp/org/org-capture.el
@@ -201,7 +201,7 @@ properties are:
201 201
202 :clock-resume Start the interrupted clock when finishing the capture. 202 :clock-resume Start the interrupted clock when finishing the capture.
203 Note that :clock-keep has precedence over :clock-resume. 203 Note that :clock-keep has precedence over :clock-resume.
204 When setting both to `t', the current clock will run and 204 When setting both to t, the current clock will run and
205 the previous one will not be resumed. 205 the previous one will not be resumed.
206 206
207 :unnarrowed Do not narrow the target buffer, simply show the 207 :unnarrowed Do not narrow the target buffer, simply show the
diff --git a/lisp/org/org-compat.el b/lisp/org/org-compat.el
index 9c92903314a..d3c477e7f3f 100644
--- a/lisp/org/org-compat.el
+++ b/lisp/org/org-compat.el
@@ -241,7 +241,7 @@ ignored in this case."
241 (or window (selected-window))) 241 (or window (selected-window)))
242 242
243(defun org-number-sequence (from &optional to inc) 243(defun org-number-sequence (from &optional to inc)
244 "Call `number-sequence or emulate it." 244 "Call `number-sequence' or emulate it."
245 (if (fboundp 'number-sequence) 245 (if (fboundp 'number-sequence)
246 (number-sequence from to inc) 246 (number-sequence from to inc)
247 (if (or (not to) (= from to)) 247 (if (or (not to) (= from to))
diff --git a/lisp/org/org-gnus.el b/lisp/org/org-gnus.el
index 880994a8fa9..8b616f0a0ff 100644
--- a/lisp/org/org-gnus.el
+++ b/lisp/org/org-gnus.el
@@ -60,7 +60,7 @@ Normally, this translation is done by querying the IMAP server,
60which is usually very fast. Unfortunately, some (maybe badly 60which is usually very fast. Unfortunately, some (maybe badly
61configured) IMAP servers don't support this operation quickly. 61configured) IMAP servers don't support this operation quickly.
62So if following a link to a Gnus article takes ages, try setting 62So if following a link to a Gnus article takes ages, try setting
63this variable to `t'." 63this variable to t."
64 :group 'org-link-store 64 :group 'org-link-store
65 :version "24.1" 65 :version "24.1"
66 :type 'boolean) 66 :type 'boolean)
diff --git a/lisp/org/org-macs.el b/lisp/org/org-macs.el
index db09909f404..ea8e7b532aa 100644
--- a/lisp/org/org-macs.el
+++ b/lisp/org/org-macs.el
@@ -55,7 +55,7 @@
55 ,@body)) 55 ,@body))
56 56
57(defmacro org-called-interactively-p (&optional kind) 57(defmacro org-called-interactively-p (&optional kind)
58 (declare (debug (&optional ("quote" symbolp)))) ;Why not just `t'? 58 (declare (debug (&optional ("quote" symbolp)))) ;Why not just t?
59 (if (featurep 'xemacs) 59 (if (featurep 'xemacs)
60 `(interactive-p) 60 `(interactive-p)
61 (if (or (> emacs-major-version 23) 61 (if (or (> emacs-major-version 23)
diff --git a/lisp/org/org-protocol.el b/lisp/org/org-protocol.el
index eeefc8da528..d0750f7d639 100644
--- a/lisp/org/org-protocol.el
+++ b/lisp/org/org-protocol.el
@@ -561,7 +561,7 @@ as filename."
561 (let ((fname (expand-file-name (car var)))) 561 (let ((fname (expand-file-name (car var))))
562 (setq fname (org-protocol-check-filename-for-protocol 562 (setq fname (org-protocol-check-filename-for-protocol
563 fname (member var flist) client)) 563 fname (member var flist) client))
564 (if (eq fname t) ;; greedy? We need the `t' return value. 564 (if (eq fname t) ;; greedy? We need the t return value.
565 (progn 565 (progn
566 (ad-set-arg 0 nil) 566 (ad-set-arg 0 nil)
567 (throw 'greedy t)) 567 (throw 'greedy t))
diff --git a/lisp/org/org.el b/lisp/org/org.el
index 54924a9964a..29ef8efb640 100644
--- a/lisp/org/org.el
+++ b/lisp/org/org.el
@@ -595,7 +595,7 @@ XEmacs user should have this variable set to nil, because
595(defcustom org-loop-over-headlines-in-active-region nil 595(defcustom org-loop-over-headlines-in-active-region nil
596 "Shall some commands act upon headlines in the active region? 596 "Shall some commands act upon headlines in the active region?
597 597
598When set to `t', some commands will be performed in all headlines 598When set to t, some commands will be performed in all headlines
599within the active region. 599within the active region.
600 600
601When set to `start-level', some commands will be performed in all 601When set to `start-level', some commands will be performed in all
@@ -1452,7 +1452,7 @@ changed by an edit command."
1452(defcustom org-remove-highlights-with-change t 1452(defcustom org-remove-highlights-with-change t
1453 "Non-nil means any change to the buffer will remove temporary highlights. 1453 "Non-nil means any change to the buffer will remove temporary highlights.
1454Such highlights are created by `org-occur' and `org-clock-display'. 1454Such highlights are created by `org-occur' and `org-clock-display'.
1455When nil, `C-c C-c needs to be used to get rid of the highlights. 1455When nil, `C-c C-c' needs to be used to get rid of the highlights.
1456The highlights created by `org-preview-latex-fragment' always need 1456The highlights created by `org-preview-latex-fragment' always need
1457`C-c C-c' to be removed." 1457`C-c C-c' to be removed."
1458 :group 'org-sparse-trees 1458 :group 'org-sparse-trees
@@ -1575,7 +1575,7 @@ See the manual for examples."
1575 "Non-nil means Org will display descriptive links. 1575 "Non-nil means Org will display descriptive links.
1576E.g. [[http://orgmode.org][Org website]] will be displayed as 1576E.g. [[http://orgmode.org][Org website]] will be displayed as
1577\"Org Website\", hiding the link itself and just displaying its 1577\"Org Website\", hiding the link itself and just displaying its
1578description. When set to `nil', Org will display the full links 1578description. When set to nil, Org will display the full links
1579literally. 1579literally.
1580 1580
1581You can interactively set the value of this variable by calling 1581You can interactively set the value of this variable by calling
@@ -11558,7 +11558,7 @@ go to the location where the last refiling operation has put the subtree.
11558With a numeric prefix argument of `2', refile to the running clock. 11558With a numeric prefix argument of `2', refile to the running clock.
11559 11559
11560With a numeric prefix argument of `3', emulate `org-refile-keep' 11560With a numeric prefix argument of `3', emulate `org-refile-keep'
11561being set to `t' and copy to the target location, don't move it. 11561being set to t and copy to the target location, don't move it.
11562Beware that keeping refiled entries may result in duplicated ID 11562Beware that keeping refiled entries may result in duplicated ID
11563properties. 11563properties.
11564 11564
@@ -12077,7 +12077,7 @@ This is a list of abbreviation keys and values. The value gets inserted
12077if you type `<' followed by the key and then press the completion key, 12077if you type `<' followed by the key and then press the completion key,
12078usually `M-TAB'. %file will be replaced by a file name after prompting 12078usually `M-TAB'. %file will be replaced by a file name after prompting
12079for the file using completion. The cursor will be placed at the position 12079for the file using completion. The cursor will be placed at the position
12080of the `?` in the template. 12080of the `?' in the template.
12081There are two templates for each key, the first uses the original Org syntax, 12081There are two templates for each key, the first uses the original Org syntax,
12082the second uses Emacs Muse-like syntax tags. These Muse-like tags become 12082the second uses Emacs Muse-like syntax tags. These Muse-like tags become
12083the default when the /org-mtags.el/ module has been loaded. See also the 12083the default when the /org-mtags.el/ module has been loaded. See also the
@@ -15541,7 +15541,7 @@ and the new value.")
15541 15541
15542(defun org-entry-put (pom property value) 15542(defun org-entry-put (pom property value)
15543 "Set PROPERTY to VALUE for entry at point-or-marker POM. 15543 "Set PROPERTY to VALUE for entry at point-or-marker POM.
15544If the value is `nil', it is converted to the empty string. 15544If the value is nil, it is converted to the empty string.
15545If it is not a string, an error is raised." 15545If it is not a string, an error is raised."
15546 (cond ((null value) (setq value "")) 15546 (cond ((null value) (setq value ""))
15547 ((not (stringp value)) 15547 ((not (stringp value))
@@ -17749,7 +17749,7 @@ If no number is found, the return value is 0."
17749(defcustom org-image-actual-width t 17749(defcustom org-image-actual-width t
17750 "Should we use the actual width of images when inlining them? 17750 "Should we use the actual width of images when inlining them?
17751 17751
17752When set to `t', always use the image width. 17752When set to t, always use the image width.
17753 17753
17754When set to a number, use imagemagick (when available) to set 17754When set to a number, use imagemagick (when available) to set
17755the image's width to this value. 17755the image's width to this value.
@@ -17776,7 +17776,7 @@ This requires Emacs >= 24.1, build with imagemagick support."
17776 17776
17777(defcustom org-agenda-inhibit-startup nil 17777(defcustom org-agenda-inhibit-startup nil
17778 "Inhibit startup when preparing agenda buffers. 17778 "Inhibit startup when preparing agenda buffers.
17779When this variable is `t', the initialization of the Org agenda 17779When this variable is t, the initialization of the Org agenda
17780buffers is inhibited: e.g. the visibility state is not set, the 17780buffers is inhibited: e.g. the visibility state is not set, the
17781tables are not re-aligned, etc." 17781tables are not re-aligned, etc."
17782 :type 'boolean 17782 :type 'boolean
diff --git a/lisp/org/ox-html.el b/lisp/org/ox-html.el
index 36984b5cc37..144b58b9bc8 100644
--- a/lisp/org/ox-html.el
+++ b/lisp/org/ox-html.el
@@ -711,7 +711,7 @@ t Synonym for `mathjax'."
711When `org-mode' is exporting an `org-mode' file to HTML, links to 711When `org-mode' is exporting an `org-mode' file to HTML, links to
712non-html files are directly put into a href tag in HTML. 712non-html files are directly put into a href tag in HTML.
713However, links to other Org-mode files (recognized by the 713However, links to other Org-mode files (recognized by the
714extension `.org.) should become links to the corresponding html 714extension `.org') should become links to the corresponding html
715file, assuming that the linked `org-mode' file will also be 715file, assuming that the linked `org-mode' file will also be
716converted to HTML. 716converted to HTML.
717When nil, the links still point to the plain `.org' file." 717When nil, the links still point to the plain `.org' file."
diff --git a/lisp/org/ox-odt.el b/lisp/org/ox-odt.el
index 6c74fb3eabd..f1ef90e169b 100644
--- a/lisp/org/ox-odt.el
+++ b/lisp/org/ox-odt.el
@@ -847,7 +847,7 @@ TABLE-CELL-STYLE-SELECTOR := `use-first-row-styles' |
847 `use-banding-rows-styles' | 847 `use-banding-rows-styles' |
848 `use-banding-columns-styles' | 848 `use-banding-columns-styles' |
849 `use-first-row-styles' 849 `use-first-row-styles'
850ON-OR-OFF := `t' | `nil' 850ON-OR-OFF := t | nil
851 851
852For example, with the following configuration 852For example, with the following configuration
853 853
@@ -3261,7 +3261,7 @@ contextual information."
3261 "Retrieve styles applicable to a table cell. 3261 "Retrieve styles applicable to a table cell.
3262R and C are (zero-based) row and column numbers of the table 3262R and C are (zero-based) row and column numbers of the table
3263cell. STYLE-SPEC is an entry in `org-odt-table-styles' 3263cell. STYLE-SPEC is an entry in `org-odt-table-styles'
3264applicable to the current table. It is `nil' if the table is not 3264applicable to the current table. It is nil if the table is not
3265associated with any style attributes. 3265associated with any style attributes.
3266 3266
3267Return a cons of (TABLE-CELL-STYLE-NAME . PARAGRAPH-STYLE-NAME). 3267Return a cons of (TABLE-CELL-STYLE-NAME . PARAGRAPH-STYLE-NAME).
diff --git a/lisp/org/ox-texinfo.el b/lisp/org/ox-texinfo.el
index 0c81b620618..26f58ad662a 100644
--- a/lisp/org/ox-texinfo.el
+++ b/lisp/org/ox-texinfo.el
@@ -117,7 +117,7 @@
117(defcustom org-texinfo-coding-system nil 117(defcustom org-texinfo-coding-system nil
118 "Default document encoding for Texinfo output. 118 "Default document encoding for Texinfo output.
119 119
120If `nil' it will default to `buffer-file-coding-system'." 120If nil it will default to `buffer-file-coding-system'."
121 :group 'org-export-texinfo 121 :group 'org-export-texinfo
122 :type 'coding-system) 122 :type 'coding-system)
123 123
diff --git a/lisp/play/handwrite.el b/lisp/play/handwrite.el
index 32ea6630717..62a8fe4bb0b 100644
--- a/lisp/play/handwrite.el
+++ b/lisp/play/handwrite.el
@@ -279,7 +279,7 @@ Variables: `handwrite-linespace' (default 12)
279 (handwrite-set-pagenumber-on))) 279 (handwrite-set-pagenumber-on)))
280 280
281(defun handwrite-10pt () 281(defun handwrite-10pt ()
282 "Specify 10-point output for `handwrite. 282 "Specify 10-point output for `handwrite'.
283This sets `handwrite-fontsize' to 10 and finds correct 283This sets `handwrite-fontsize' to 10 and finds correct
284values for `handwrite-linespace' and `handwrite-numlines'." 284values for `handwrite-linespace' and `handwrite-numlines'."
285 (interactive) 285 (interactive)
@@ -290,7 +290,7 @@ values for `handwrite-linespace' and `handwrite-numlines'."
290 290
291 291
292(defun handwrite-11pt () 292(defun handwrite-11pt ()
293 "Specify 11-point output for `handwrite. 293 "Specify 11-point output for `handwrite'.
294This sets `handwrite-fontsize' to 11 and finds correct 294This sets `handwrite-fontsize' to 11 and finds correct
295values for `handwrite-linespace' and `handwrite-numlines'." 295values for `handwrite-linespace' and `handwrite-numlines'."
296 (interactive) 296 (interactive)
@@ -300,7 +300,7 @@ values for `handwrite-linespace' and `handwrite-numlines'."
300 (message "Handwrite output size set to 11 points")) 300 (message "Handwrite output size set to 11 points"))
301 301
302(defun handwrite-12pt () 302(defun handwrite-12pt ()
303 "Specify 12-point output for `handwrite. 303 "Specify 12-point output for `handwrite'.
304This sets `handwrite-fontsize' to 12 and finds correct 304This sets `handwrite-fontsize' to 12 and finds correct
305values for `handwrite-linespace' and `handwrite-numlines'." 305values for `handwrite-linespace' and `handwrite-numlines'."
306 (interactive) 306 (interactive)
@@ -310,7 +310,7 @@ values for `handwrite-linespace' and `handwrite-numlines'."
310 (message "Handwrite output size set to 12 points")) 310 (message "Handwrite output size set to 12 points"))
311 311
312(defun handwrite-13pt () 312(defun handwrite-13pt ()
313 "Specify 13-point output for `handwrite. 313 "Specify 13-point output for `handwrite'.
314This sets `handwrite-fontsize' to 13 and finds correct 314This sets `handwrite-fontsize' to 13 and finds correct
315values for `handwrite-linespace' and `handwrite-numlines'." 315values for `handwrite-linespace' and `handwrite-numlines'."
316 (interactive) 316 (interactive)
diff --git a/lisp/progmodes/ada-xref.el b/lisp/progmodes/ada-xref.el
index 6b611e6f99b..771dc2a3da1 100644
--- a/lisp/progmodes/ada-xref.el
+++ b/lisp/progmodes/ada-xref.el
@@ -954,7 +954,7 @@ Return new value of PROJECT."
954 (append (mapcar 'directory-file-name compilation-search-path) 954 (append (mapcar 'directory-file-name compilation-search-path)
955 ada-search-directories)) 955 ada-search-directories))
956 956
957 ;; return 't', for decent display in message buffer when called interactively 957 ;; return t, for decent display in message buffer when called interactively
958 t) 958 t)
959 959
960(defun ada-find-references (&optional pos arg local-only) 960(defun ada-find-references (&optional pos arg local-only)
diff --git a/lisp/progmodes/cc-defs.el b/lisp/progmodes/cc-defs.el
index d0beab1d485..fd4bfb3b921 100644
--- a/lisp/progmodes/cc-defs.el
+++ b/lisp/progmodes/cc-defs.el
@@ -1983,7 +1983,7 @@ system."
1983 1983
1984(defvar c-lang-const-expansion nil) 1984(defvar c-lang-const-expansion nil)
1985 1985
1986;; Ugly hack to pull in the definition of `cc-bytecomp-compiling-or-loading` 1986;; Ugly hack to pull in the definition of `cc-bytecomp-compiling-or-loading'
1987;; from cc-bytecomp to make it available at loadtime. This is the same 1987;; from cc-bytecomp to make it available at loadtime. This is the same
1988;; mechanism used in cc-mode.el for `c-populate-syntax-table'. 1988;; mechanism used in cc-mode.el for `c-populate-syntax-table'.
1989(defalias 'cc-bytecomp-compiling-or-loading 1989(defalias 'cc-bytecomp-compiling-or-loading
@@ -2017,10 +2017,10 @@ The second argument can optionally be a docstring. The rest of the
2017arguments are one or more repetitions of LANG VAL where LANG specifies 2017arguments are one or more repetitions of LANG VAL where LANG specifies
2018the language(s) that VAL applies to. LANG is the name of the 2018the language(s) that VAL applies to. LANG is the name of the
2019language, i.e. the mode name without the \"-mode\" suffix, or a list 2019language, i.e. the mode name without the \"-mode\" suffix, or a list
2020of such language names, or `t' for all languages. VAL is a form to 2020of such language names, or t for all languages. VAL is a form to
2021evaluate to get the value. 2021evaluate to get the value.
2022 2022
2023If LANG isn't `t' or one of the core languages in CC Mode, it must 2023If LANG isn't t or one of the core languages in CC Mode, it must
2024have been declared with `c-add-language'. 2024have been declared with `c-add-language'.
2025 2025
2026Neither NAME, LANG nor VAL are evaluated directly - they should not be 2026Neither NAME, LANG nor VAL are evaluated directly - they should not be
@@ -2030,7 +2030,7 @@ VAL to evaluate parts of it directly.
2030When VAL is evaluated for some language, that language is temporarily 2030When VAL is evaluated for some language, that language is temporarily
2031made current so that `c-lang-const' without an explicit language can 2031made current so that `c-lang-const' without an explicit language can
2032be used inside VAL to refer to the value of a language constant in the 2032be used inside VAL to refer to the value of a language constant in the
2033same language. That is particularly useful if LANG is `t'. 2033same language. That is particularly useful if LANG is t.
2034 2034
2035VAL is not evaluated right away but rather when the value is requested 2035VAL is not evaluated right away but rather when the value is requested
2036with `c-lang-const'. Thus it's possible to use `c-lang-const' inside 2036with `c-lang-const'. Thus it's possible to use `c-lang-const' inside
@@ -2365,7 +2365,7 @@ fallback definition for all modes, to break the cycle).")
2365 2365
2366(defun c-find-assignment-for-mode (source-pos mode match-any-lang _name) 2366(defun c-find-assignment-for-mode (source-pos mode match-any-lang _name)
2367 ;; Find the first assignment entry that applies to MODE at or after 2367 ;; Find the first assignment entry that applies to MODE at or after
2368 ;; SOURCE-POS. If MATCH-ANY-LANG is non-nil, entries with `t' as 2368 ;; SOURCE-POS. If MATCH-ANY-LANG is non-nil, entries with t as
2369 ;; the language list are considered to match, otherwise they don't. 2369 ;; the language list are considered to match, otherwise they don't.
2370 ;; On return SOURCE-POS is updated to point to the next assignment 2370 ;; On return SOURCE-POS is updated to point to the next assignment
2371 ;; after the returned one. If no assignment is found, 2371 ;; after the returned one. If no assignment is found,
diff --git a/lisp/progmodes/cc-engine.el b/lisp/progmodes/cc-engine.el
index 823d795b6de..06b03a24bd6 100644
--- a/lisp/progmodes/cc-engine.el
+++ b/lisp/progmodes/cc-engine.el
@@ -7972,7 +7972,7 @@ comment at the start of cc-engine.el for more info."
7972 ;; This should be called with point inside an argument list. 7972 ;; This should be called with point inside an argument list.
7973 ;; 7973 ;;
7974 ;; Only one level of enclosing parentheses is considered, so for 7974 ;; Only one level of enclosing parentheses is considered, so for
7975 ;; instance `nil' is returned when in a function call within an asm 7975 ;; instance nil is returned when in a function call within an asm
7976 ;; operand. 7976 ;; operand.
7977 ;; 7977 ;;
7978 ;; This function might do hidden buffer changes. 7978 ;; This function might do hidden buffer changes.
diff --git a/lisp/progmodes/cc-fonts.el b/lisp/progmodes/cc-fonts.el
index 44172b05a56..ad564f7c3df 100644
--- a/lisp/progmodes/cc-fonts.el
+++ b/lisp/progmodes/cc-fonts.el
@@ -1772,8 +1772,8 @@ on level 2 only and so aren't combined with `c-complex-decl-matchers'."
1772;; "\\|" 1772;; "\\|"
1773;; (c-lang-const c-symbol-key) 1773;; (c-lang-const c-symbol-key)
1774;; "\\)") 1774;; "\\)")
1775;; `((c-font-lock-declarators limit t nil) ; That `nil' says use `font-lock-variable-name-face'; 1775;; `((c-font-lock-declarators limit t nil) ; That nil says use `font-lock-variable-name-face';
1776;; ; `t' would mean `font-lock-function-name-face'. 1776;; ; t would mean `font-lock-function-name-face'.
1777;; (progn 1777;; (progn
1778;; (c-put-char-property (match-beginning 0) 'c-type 1778;; (c-put-char-property (match-beginning 0) 'c-type
1779;; 'c-decl-id-start) 1779;; 'c-decl-id-start)
diff --git a/lisp/progmodes/cc-guess.el b/lisp/progmodes/cc-guess.el
index 20534737d8a..ba23a75ff22 100644
--- a/lisp/progmodes/cc-guess.el
+++ b/lisp/progmodes/cc-guess.el
@@ -91,7 +91,7 @@ The offset of a line included in the indent information returned by
91(defcustom c-guess-region-max 50000 91(defcustom c-guess-region-max 50000
92 "The maximum region size for examining indent information with `c-guess'. 92 "The maximum region size for examining indent information with `c-guess'.
93It takes a long time to examine indent information from a large region; 93It takes a long time to examine indent information from a large region;
94this option helps you limit that time. `nil' means no limit." 94this option helps you limit that time. nil means no limit."
95 :version "24.1" 95 :version "24.1"
96 :type 'integer 96 :type 'integer
97 :group 'c) 97 :group 'c)
@@ -465,7 +465,7 @@ the absolute file name of the file if STYLE-NAME is nil."
465(defun c-guess-dump-guessed-style (&optional printer) 465(defun c-guess-dump-guessed-style (&optional printer)
466 "Show the guessed style. 466 "Show the guessed style.
467`pp' is used to print the style but if PRINTER is given, 467`pp' is used to print the style but if PRINTER is given,
468PRINTER is used instead. If PRINTER is not `nil', it 468PRINTER is used instead. If PRINTER is not nil, it
469is called with one argument, the guessed style." 469is called with one argument, the guessed style."
470 (interactive) 470 (interactive)
471 (let ((style (c-guess-make-style c-guess-guessed-basic-offset 471 (let ((style (c-guess-make-style c-guess-guessed-basic-offset
diff --git a/lisp/progmodes/compile.el b/lisp/progmodes/compile.el
index 9d36e91cf8f..a58e393779a 100644
--- a/lisp/progmodes/compile.el
+++ b/lisp/progmodes/compile.el
@@ -216,7 +216,7 @@ of[ \t]+\"?\\([a-zA-Z]?:?[^\":\n]+\\)\"?:" 3 2 nil (1))
216 ;; due to matching filenames via \\(.*?\\). This might be faster. 216 ;; due to matching filenames via \\(.*?\\). This might be faster.
217 (maven 217 (maven
218 ;; Maven is a popular free software build tool for Java. 218 ;; Maven is a popular free software build tool for Java.
219 "\\([^ \n]\\(?:[^\n :]\\| [^-/\n]\\|:[^ \n]\\)*?\\):\\[\\([0-9]+\\),\\([0-9]+\\)\\] " 1 2 3) 219 "\\(\\[WARNING\\] *\\)?\\([^ \n]\\(?:[^\n :]\\| [^-/\n]\\|:[^ \n]\\)*?\\):\\[\\([0-9]+\\),\\([0-9]+\\)\\] " 2 3 4 (1))
220 220
221 (jikes-line 221 (jikes-line
222 "^ *\\([0-9]+\\)\\.[ \t]+.*\n +\\(<-*>\n\\*\\*\\* \\(?:Error\\|Warnin\\(g\\)\\)\\)" 222 "^ *\\([0-9]+\\)\\.[ \t]+.*\n +\\(<-*>\n\\*\\*\\* \\(?:Error\\|Warnin\\(g\\)\\)\\)"
diff --git a/lisp/progmodes/cperl-mode.el b/lisp/progmodes/cperl-mode.el
index 2acfc104cf3..d6f6f3b25b0 100644
--- a/lisp/progmodes/cperl-mode.el
+++ b/lisp/progmodes/cperl-mode.el
@@ -282,7 +282,7 @@ This is in addition to cperl-continued-statement-offset."
282 282
283(defcustom cperl-indent-wrt-brace t 283(defcustom cperl-indent-wrt-brace t
284 "*Non-nil means indent statements in if/etc block relative brace, not if/etc. 284 "*Non-nil means indent statements in if/etc block relative brace, not if/etc.
285Versions 5.2 ... 5.20 behaved as if this were `nil'." 285Versions 5.2 ... 5.20 behaved as if this were nil."
286 :type 'boolean 286 :type 'boolean
287 :group 'cperl-indentation-details) 287 :group 'cperl-indentation-details)
288 288
diff --git a/lisp/progmodes/gdb-mi.el b/lisp/progmodes/gdb-mi.el
index 486d67297a9..4af8ac6971e 100644
--- a/lisp/progmodes/gdb-mi.el
+++ b/lisp/progmodes/gdb-mi.el
@@ -2376,9 +2376,9 @@ Sets `gdb-thread-number' to new id."
2376 (let* ((result (gdb-json-string output-field)) 2376 (let* ((result (gdb-json-string output-field))
2377 (thread-id (bindat-get-field result 'id))) 2377 (thread-id (bindat-get-field result 'id)))
2378 (gdb-setq-thread-number thread-id) 2378 (gdb-setq-thread-number thread-id)
2379 ;; Typing `thread N` in GUD buffer makes GDB emit `^done` followed 2379 ;; Typing `thread N' in GUD buffer makes GDB emit `^done' followed
2380 ;; by `=thread-selected` notification. `^done` causes `gdb-update` 2380 ;; by `=thread-selected' notification. `^done' causes `gdb-update'
2381 ;; as usually. Things happen to fast and second call (from 2381 ;; as usually. Things happen too fast and second call (from
2382 ;; gdb-thread-selected handler) gets cut off by our beloved 2382 ;; gdb-thread-selected handler) gets cut off by our beloved
2383 ;; pending triggers. 2383 ;; pending triggers.
2384 ;; Solution is `gdb-wait-for-pending' macro: it guarantees that its 2384 ;; Solution is `gdb-wait-for-pending' macro: it guarantees that its
diff --git a/lisp/progmodes/idlw-shell.el b/lisp/progmodes/idlw-shell.el
index 02a8ec8a560..23f9d4af8c9 100644
--- a/lisp/progmodes/idlw-shell.el
+++ b/lisp/progmodes/idlw-shell.el
@@ -229,7 +229,7 @@ to set this option to nil."
229 229
230(defcustom idlwave-shell-file-name-chars "~/A-Za-z0-9+:_.$#%={}\\- " 230(defcustom idlwave-shell-file-name-chars "~/A-Za-z0-9+:_.$#%={}\\- "
231 "The characters allowed in file names, as a string. 231 "The characters allowed in file names, as a string.
232Used for file name completion. Must not contain `'', `,' and `\"' 232Used for file name completion. Must not contain ', , and \"
233because these are used as separators by IDL." 233because these are used as separators by IDL."
234 :group 'idlwave-shell-general-setup 234 :group 'idlwave-shell-general-setup
235 :type 'string) 235 :type 'string)
@@ -2638,7 +2638,7 @@ If ENABLE is non-nil, enable them instead."
2638(defun idlwave-shell-break-in () 2638(defun idlwave-shell-break-in ()
2639 "Look for a module name near point and set a break point for it. 2639 "Look for a module name near point and set a break point for it.
2640The command looks for an identifier near point and sets a breakpoint 2640The command looks for an identifier near point and sets a breakpoint
2641for the first line of the corresponding module. If MODULE is `t', set 2641for the first line of the corresponding module. If MODULE is t, set
2642in the current routine." 2642in the current routine."
2643 (interactive) 2643 (interactive)
2644 (let* ((module (idlwave-fix-module-if-obj_new (idlwave-what-module))) 2644 (let* ((module (idlwave-fix-module-if-obj_new (idlwave-what-module)))
diff --git a/lisp/progmodes/idlwave.el b/lisp/progmodes/idlwave.el
index 7e269cb60f0..44d84d65810 100644
--- a/lisp/progmodes/idlwave.el
+++ b/lisp/progmodes/idlwave.el
@@ -1837,7 +1837,7 @@ The main features of this mode are
18375. Code Templates and Abbreviations 18375. Code Templates and Abbreviations
1838 -------------------------------- 1838 --------------------------------
1839 Many Abbreviations are predefined to expand to code fragments and templates. 1839 Many Abbreviations are predefined to expand to code fragments and templates.
1840 The abbreviations start generally with a `\\`. Some examples: 1840 The abbreviations start generally with a `\\'. Some examples:
1841 1841
1842 \\pr PROCEDURE template 1842 \\pr PROCEDURE template
1843 \\fu FUNCTION template 1843 \\fu FUNCTION template
@@ -2047,7 +2047,7 @@ If optional argument RESERVED is non-nil then the expansion
2047consists of reserved words, which will be capitalized if 2047consists of reserved words, which will be capitalized if
2048`idlwave-reserved-word-upcase' is non-nil. 2048`idlwave-reserved-word-upcase' is non-nil.
2049Otherwise, the abbrev will be capitalized if `idlwave-abbrev-change-case' 2049Otherwise, the abbrev will be capitalized if `idlwave-abbrev-change-case'
2050is non-nil, unless its value is \`down in which case the abbrev will be 2050is non-nil, unless its value is `down' in which case the abbrev will be
2051made into all lowercase. 2051made into all lowercase.
2052Returns non-nil if abbrev is left expanded." 2052Returns non-nil if abbrev is left expanded."
2053 (if (idlwave-quoted) 2053 (if (idlwave-quoted)
@@ -8162,7 +8162,7 @@ demand _EXTRA in the keyword list."
8162 class 8162 class
8163 (idlwave-routines)) 'do-link)))))) 8163 (idlwave-routines)) 'do-link))))))
8164 8164
8165 ;; If the class is `t', combine all keywords of all methods NAME 8165 ;; If the class is t, combine all keywords of all methods NAME
8166 (when (eq class t) 8166 (when (eq class t)
8167 (mapc (lambda (entry) 8167 (mapc (lambda (entry)
8168 (and 8168 (and
diff --git a/lisp/progmodes/python.el b/lisp/progmodes/python.el
index 4b0a028faa3..d45d082c40a 100644
--- a/lisp/progmodes/python.el
+++ b/lisp/progmodes/python.el
@@ -3216,7 +3216,7 @@ With argument MSG show activation/deactivation message."
3216 (concat 3216 (concat
3217 "Your `python-shell-interpreter' doesn't seem to " 3217 "Your `python-shell-interpreter' doesn't seem to "
3218 "support readline, yet `python-shell-completion-native' " 3218 "support readline, yet `python-shell-completion-native' "
3219 (format "was `t' and %S is not part of the " 3219 (format "was t and %S is not part of the "
3220 (file-name-nondirectory python-shell-interpreter)) 3220 (file-name-nondirectory python-shell-interpreter))
3221 "`python-shell-completion-native-disabled-interpreters' " 3221 "`python-shell-completion-native-disabled-interpreters' "
3222 "list. Native completions have been disabled locally. ")) 3222 "list. Native completions have been disabled locally. "))
diff --git a/lisp/progmodes/ruby-mode.el b/lisp/progmodes/ruby-mode.el
index 0e2f66e5bc5..21ad1021c9e 100644
--- a/lisp/progmodes/ruby-mode.el
+++ b/lisp/progmodes/ruby-mode.el
@@ -287,7 +287,7 @@ Only has effect when `ruby-use-smie' is nil."
287 :group 'ruby 287 :group 'ruby
288 :safe 'booleanp) 288 :safe 'booleanp)
289 289
290;; FIXME Woefully under documented. What is the point of the last `t'?. 290;; FIXME Woefully under documented. What is the point of the last t?.
291(defcustom ruby-deep-indent-paren '(?\( ?\[ ?\] t) 291(defcustom ruby-deep-indent-paren '(?\( ?\[ ?\] t)
292 "Deep indent lists in parenthesis when non-nil. 292 "Deep indent lists in parenthesis when non-nil.
293The value t means continuous line. 293The value t means continuous line.
diff --git a/lisp/progmodes/verilog-mode.el b/lisp/progmodes/verilog-mode.el
index a1ad49e9a2c..4b0cb0f6fd8 100644
--- a/lisp/progmodes/verilog-mode.el
+++ b/lisp/progmodes/verilog-mode.el
@@ -519,8 +519,8 @@ take you to the next lint error."
519 519
520(defvar verilog-tool 'verilog-linter 520(defvar verilog-tool 'verilog-linter
521 "Which tool to use for building compiler-command. 521 "Which tool to use for building compiler-command.
522Either nil, `verilog-linter, `verilog-compiler, 522Either nil, `verilog-linter', `verilog-compiler',
523`verilog-coverage, `verilog-preprocessor, or `verilog-simulator. 523`verilog-coverage', `verilog-preprocessor', or `verilog-simulator'.
524Alternatively use the \"Choose Compilation Action\" menu. See 524Alternatively use the \"Choose Compilation Action\" menu. See
525`verilog-set-compile-command' for more information.") 525`verilog-set-compile-command' for more information.")
526 526
@@ -1674,7 +1674,7 @@ If third arg START is non-nil, start search at that index in STRING."
1674 1674
1675(defsubst verilog-string-replace-matches (from-string to-string fixedcase literal string) 1675(defsubst verilog-string-replace-matches (from-string to-string fixedcase literal string)
1676 "Replace occurrences of FROM-STRING with TO-STRING. 1676 "Replace occurrences of FROM-STRING with TO-STRING.
1677FIXEDCASE and LITERAL as in `replace-match`. STRING is what to replace. 1677FIXEDCASE and LITERAL as in `replace-match'. STRING is what to replace.
1678The case (verilog-string-replace-matches \"o\" \"oo\" nil nil \"foobar\") 1678The case (verilog-string-replace-matches \"o\" \"oo\" nil nil \"foobar\")
1679will break, as the o's continuously replace. xa -> x works ok though." 1679will break, as the o's continuously replace. xa -> x works ok though."
1680 ;; Hopefully soon to an Emacs built-in 1680 ;; Hopefully soon to an Emacs built-in
@@ -5201,7 +5201,7 @@ becomes:
5201(defun verilog-preprocess (&optional command filename) 5201(defun verilog-preprocess (&optional command filename)
5202 "Preprocess the buffer, similar to `compile', but put output in Verilog-Mode. 5202 "Preprocess the buffer, similar to `compile', but put output in Verilog-Mode.
5203Takes optional COMMAND or defaults to `verilog-preprocessor', and 5203Takes optional COMMAND or defaults to `verilog-preprocessor', and
5204FILENAME to find directory to run in, or defaults to `buffer-file-name`." 5204FILENAME to find directory to run in, or defaults to `buffer-file-name'."
5205 (interactive 5205 (interactive
5206 (list 5206 (list
5207 (let ((default (verilog-expand-command verilog-preprocessor))) 5207 (let ((default (verilog-expand-command verilog-preprocessor)))
@@ -12648,7 +12648,7 @@ driver/monitor using AUTOINST in the testbench."
12648(defun verilog-auto-insert-lisp () 12648(defun verilog-auto-insert-lisp ()
12649 "Expand AUTOINSERTLISP statements, as part of \\[verilog-auto]. 12649 "Expand AUTOINSERTLISP statements, as part of \\[verilog-auto].
12650The Lisp code provided is called before other AUTOS are expanded, 12650The Lisp code provided is called before other AUTOS are expanded,
12651and the Lisp code generally will call `insert` to insert text 12651and the Lisp code generally will call `insert' to insert text
12652into the current file beginning on the line after the 12652into the current file beginning on the line after the
12653AUTOINSERTLISP. 12653AUTOINSERTLISP.
12654 12654
@@ -12713,7 +12713,7 @@ text:
12713(defun verilog-auto-insert-last () 12713(defun verilog-auto-insert-last ()
12714 "Expand AUTOINSERTLAST statements, as part of \\[verilog-auto]. 12714 "Expand AUTOINSERTLAST statements, as part of \\[verilog-auto].
12715The Lisp code provided is called after all other AUTOS have been 12715The Lisp code provided is called after all other AUTOS have been
12716expanded, and the Lisp code generally will call `insert` to 12716expanded, and the Lisp code generally will call `insert' to
12717insert text into the current file beginning on the line after the 12717insert text into the current file beginning on the line after the
12718AUTOINSERTLAST. 12718AUTOINSERTLAST.
12719 12719
diff --git a/lisp/ps-print.el b/lisp/ps-print.el
index 0a2c214690f..e76b332ee3c 100644
--- a/lisp/ps-print.el
+++ b/lisp/ps-print.el
@@ -809,7 +809,7 @@ Please send all bug fixes and enhancements to
809;; on next page. Visually, valid values are (the character `+' at right of 809;; on next page. Visually, valid values are (the character `+' at right of
810;; each column indicates that a line is printed): 810;; each column indicates that a line is printed):
811;; 811;;
812;; `nil' `follow' `full' `full-follow' 812;; nil `follow' `full' `full-follow'
813;; Current Page -------- ----------- --------- ---------------- 813;; Current Page -------- ----------- --------- ----------------
814;; 1 XXXXX + 1 XXXXXXXX + 1 XXXXXX + 1 XXXXXXXXXXXXX + 814;; 1 XXXXX + 1 XXXXXXXX + 1 XXXXXX + 1 XXXXXXXXXXXXX +
815;; 2 XXXXX + 2 XXXXXXXX + 2 XXXXXX + 2 XXXXXXXXXXXXX + 815;; 2 XXXXX + 2 XXXXXXXX + 2 XXXXXX + 2 XXXXXXXXXXXXX +
@@ -2117,7 +2117,7 @@ See also documentation for `ps-zebra-stripes' and `ps-zebra-stripe-height'."
2117Visually, valid values are (the character `+' at right of each column indicates 2117Visually, valid values are (the character `+' at right of each column indicates
2118that a line is printed): 2118that a line is printed):
2119 2119
2120 `nil' `follow' `full' `full-follow' 2120 nil `follow' `full' `full-follow'
2121 Current Page -------- ----------- --------- ---------------- 2121 Current Page -------- ----------- --------- ----------------
2122 1 XXXXX + 1 XXXXXXXX + 1 XXXXXX + 1 XXXXXXXXXXXXX + 2122 1 XXXXX + 1 XXXXXXXX + 1 XXXXXX + 1 XXXXXXXXXXXXX +
2123 2 XXXXX + 2 XXXXXXXX + 2 XXXXXX + 2 XXXXXXXXXXXXX + 2123 2 XXXXX + 2 XXXXXXXX + 2 XXXXXX + 2 XXXXXXXXXXXXX +
diff --git a/lisp/recentf.el b/lisp/recentf.el
index 37937ec1be1..89c1517e7f6 100644
--- a/lisp/recentf.el
+++ b/lisp/recentf.el
@@ -294,7 +294,7 @@ They are successively passed a file name to transform it."
294 (function :tag "Other function"))))) 294 (function :tag "Other function")))))
295 295
296(defcustom recentf-show-file-shortcuts-flag t 296(defcustom recentf-show-file-shortcuts-flag t
297 "Whether to show ``[N]'' for the Nth item up to 10. 297 "Whether to show \"[N]\" for the Nth item up to 10.
298If non-nil, `recentf-open-files' will show labels for keys that can be 298If non-nil, `recentf-open-files' will show labels for keys that can be
299used as shortcuts to open the Nth file." 299used as shortcuts to open the Nth file."
300 :group 'recentf 300 :group 'recentf
diff --git a/lisp/ses.el b/lisp/ses.el
index e9860158450..e625e4ed593 100644
--- a/lisp/ses.el
+++ b/lisp/ses.el
@@ -172,7 +172,7 @@ Each function is called with ARG=1."
172 "\C-c\C-s" ses-insert-ses-range 172 "\C-c\C-s" ses-insert-ses-range
173 [S-mouse-3] ses-insert-range-click 173 [S-mouse-3] ses-insert-range-click
174 [C-S-mouse-3] ses-insert-ses-range-click 174 [C-S-mouse-3] ses-insert-ses-range-click
175 "\M-\C-i" lisp-complete-symbol)) 175 "\M-\C-i" lisp-complete-symbol)) ; FIXME obsolete
176 (newmap (make-sparse-keymap))) 176 (newmap (make-sparse-keymap)))
177 (set-keymap-parent newmap minibuffer-local-map) 177 (set-keymap-parent newmap minibuffer-local-map)
178 (while keys 178 (while keys
@@ -2276,7 +2276,7 @@ to are recalculated first."
2276 (when (and (< col (1- ses--numcols)) ;;Last column can't spill over, anyway 2276 (when (and (< col (1- ses--numcols)) ;;Last column can't spill over, anyway
2277 (eq (ses-cell-value row (1+ col)) '*skip*)) 2277 (eq (ses-cell-value row (1+ col)) '*skip*))
2278 ;; This cell has spill-over. We'll momentarily pretend the following cell 2278 ;; This cell has spill-over. We'll momentarily pretend the following cell
2279 ;; has a `t' in it. 2279 ;; has a t in it.
2280 (cl-progv 2280 (cl-progv
2281 (list (ses-cell-symbol row (1+ col))) 2281 (list (ses-cell-symbol row (1+ col)))
2282 '(t) 2282 '(t)
@@ -3528,11 +3528,11 @@ execution anyway. Always returns t if `safe-functions' is t."
3528;;---------------------------------------------------------------------------- 3528;;----------------------------------------------------------------------------
3529 3529
3530(defun ses--clean-! (&rest x) 3530(defun ses--clean-! (&rest x)
3531 "Clean by `delq' list X from any occurrence of `nil' or `*skip*'." 3531 "Clean by `delq' list X from any occurrence of nil or `*skip*'."
3532 (delq nil (delq '*skip* x))) 3532 (delq nil (delq '*skip* x)))
3533 3533
3534(defun ses--clean-_ (x y) 3534(defun ses--clean-_ (x y)
3535 "Clean list X by replacing by Y any occurrence of `nil' or `*skip*'. 3535 "Clean list X by replacing by Y any occurrence of nil or `*skip*'.
3536 3536
3537This will change X by making `setcar' on its cons cells." 3537This will change X by making `setcar' on its cons cells."
3538 (let ((ret x) ret-elt) 3538 (let ((ret x) ret-elt)
diff --git a/lisp/simple.el b/lisp/simple.el
index dfd92dcdc05..49a95aea4a8 100644
--- a/lisp/simple.el
+++ b/lisp/simple.el
@@ -3488,9 +3488,9 @@ value passed."
3488(defvar process-file-side-effects t 3488(defvar process-file-side-effects t
3489 "Whether a call of `process-file' changes remote files. 3489 "Whether a call of `process-file' changes remote files.
3490 3490
3491By default, this variable is always set to `t', meaning that a 3491By default, this variable is always set to t, meaning that a
3492call of `process-file' could potentially change any file on a 3492call of `process-file' could potentially change any file on a
3493remote host. When set to `nil', a file handler could optimize 3493remote host. When set to nil, a file handler could optimize
3494its behavior with respect to remote file attribute caching. 3494its behavior with respect to remote file attribute caching.
3495 3495
3496You should only ever change this variable with a let-binding; 3496You should only ever change this variable with a let-binding;
@@ -6675,7 +6675,7 @@ beyond `current-fill-column' automatically breaks the line at a
6675previous space. 6675previous space.
6676 6676
6677When `auto-fill-mode' is on, the `auto-fill-function' variable is 6677When `auto-fill-mode' is on, the `auto-fill-function' variable is
6678non-`nil'. 6678non-nil.
6679 6679
6680The value of `normal-auto-fill-function' specifies the function to use 6680The value of `normal-auto-fill-function' specifies the function to use
6681for `auto-fill-function' when turning Auto Fill mode on." 6681for `auto-fill-function' when turning Auto Fill mode on."
@@ -8232,7 +8232,7 @@ version and use the one distributed with Emacs."))
8232Each element has the form (PACKAGE SYMBOL REGEXP STRING). 8232Each element has the form (PACKAGE SYMBOL REGEXP STRING).
8233PACKAGE is either a regular expression to match file names, or a 8233PACKAGE is either a regular expression to match file names, or a
8234symbol (a feature name), like for `with-eval-after-load'. 8234symbol (a feature name), like for `with-eval-after-load'.
8235SYMBOL is either the name of a string variable, or `t'. Upon 8235SYMBOL is either the name of a string variable, or t. Upon
8236loading PACKAGE, if SYMBOL is t or matches REGEXP, display a 8236loading PACKAGE, if SYMBOL is t or matches REGEXP, display a
8237warning using STRING as the message.") 8237warning using STRING as the message.")
8238 8238
diff --git a/lisp/skeleton.el b/lisp/skeleton.el
index 84b0e0a5754..1363422dcc2 100644
--- a/lisp/skeleton.el
+++ b/lisp/skeleton.el
@@ -502,8 +502,9 @@ Pairing is also prohibited if we are right after a quoting character
502such as backslash. 502such as backslash.
503 503
504If a match is found in `skeleton-pair-alist', that is inserted, else 504If a match is found in `skeleton-pair-alist', that is inserted, else
505the defaults are used. These are (), [], {}, <> and `' for the 505the defaults are used. These are (), [], {}, <> and (grave
506symmetrical ones, and the same character twice for the others." 506accent, apostrophe) for the paired ones, and the same character
507twice for the others."
507 (interactive "*P") 508 (interactive "*P")
508 (if (or arg (not skeleton-pair)) 509 (if (or arg (not skeleton-pair))
509 (self-insert-command (prefix-numeric-value arg)) 510 (self-insert-command (prefix-numeric-value arg))
diff --git a/lisp/subr.el b/lisp/subr.el
index 9c56e51bc96..b9a847d76e8 100644
--- a/lisp/subr.el
+++ b/lisp/subr.el
@@ -1502,6 +1502,19 @@ All symbols are bound before the VALUEFORMs are evalled."
1502 ,@(mapcar (lambda (binder) `(setq ,@binder)) binders) 1502 ,@(mapcar (lambda (binder) `(setq ,@binder)) binders)
1503 ,@body)) 1503 ,@body))
1504 1504
1505(defmacro let-when-compile (bindings &rest body)
1506 "Like `let', but allow for compile time optimization.
1507Use BINDINGS as in regular `let', but in BODY each usage should
1508be wrapped in `eval-when-compile'.
1509This will generate compile-time constants from BINDINGS."
1510 (declare (indent 1) (debug let))
1511 (cl-progv (mapcar #'car bindings)
1512 (mapcar (lambda (x) (eval (cadr x))) bindings)
1513 (macroexpand-all
1514 (macroexp-progn
1515 body)
1516 macroexpand-all-environment)))
1517
1505(defmacro with-wrapper-hook (hook args &rest body) 1518(defmacro with-wrapper-hook (hook args &rest body)
1506 "Run BODY, using wrapper functions from HOOK with additional ARGS. 1519 "Run BODY, using wrapper functions from HOOK with additional ARGS.
1507HOOK is an abnormal hook. Each hook function in HOOK \"wraps\" 1520HOOK is an abnormal hook. Each hook function in HOOK \"wraps\"
diff --git a/lisp/term/tvi970.el b/lisp/term/tvi970.el
index 3571b488e7d..c1f5928bebe 100644
--- a/lisp/term/tvi970.el
+++ b/lisp/term/tvi970.el
@@ -105,11 +105,11 @@ With a prefix argument ARG, enable the mode if ARG is positive,
105and disable it otherwise. If called from Lisp, enable the mode 105and disable it otherwise. If called from Lisp, enable the mode
106if ARG is omitted or nil. 106if ARG is omitted or nil.
107 107
108In ``alternate keypad mode'', the keys send distinct escape 108In alternate keypad mode, the keys send distinct escape
109sequences, meaning that they can have their own bindings, 109sequences, meaning that they can have their own bindings,
110independent of the normal number keys. 110independent of the normal number keys.
111 111
112When disabled, the terminal enters ``numeric keypad mode'', in 112When disabled, the terminal enters numeric keypad mode, in
113which the keypad's keys act as ordinary digits." 113which the keypad's keys act as ordinary digits."
114 :variable (terminal-parameter nil 'tvi970-keypad-numeric) 114 :variable (terminal-parameter nil 'tvi970-keypad-numeric)
115 (send-string-to-terminal 115 (send-string-to-terminal
diff --git a/lisp/term/w32console.el b/lisp/term/w32console.el
index a7056cd5edf..29ab2f16e1c 100644
--- a/lisp/term/w32console.el
+++ b/lisp/term/w32console.el
@@ -65,7 +65,15 @@
65 (when oem-cs-p 65 (when oem-cs-p
66 (set-keyboard-coding-system oem-code-page-coding) 66 (set-keyboard-coding-system oem-code-page-coding)
67 (set-terminal-coding-system 67 (set-terminal-coding-system
68 (if oem-o-cs-p oem-code-page-output-coding oem-code-page-coding)))) 68 (if oem-o-cs-p oem-code-page-output-coding oem-code-page-coding))
69 ;; Since we changed the terminal encoding, we need to repeat
70 ;; the test for Unicode quotes being displayable.
71 (dolist (char-repl
72 '((?‘ . [?\']) (?’ . [?\']) (?“ . [?\"]) (?” . [?\"])))
73 (when (not (char-displayable-p (car char-repl)))
74 (or standard-display-table
75 (setq standard-display-table (make-display-table)))
76 (aset standard-display-table (car char-repl) (cdr char-repl))))))
69 (let* ((colors w32-tty-standard-colors) 77 (let* ((colors w32-tty-standard-colors)
70 (color (car colors))) 78 (color (car colors)))
71 (tty-color-clear) 79 (tty-color-clear)
diff --git a/lisp/textmodes/artist.el b/lisp/textmodes/artist.el
index 930c39c82cc..14cf402a971 100644
--- a/lisp/textmodes/artist.el
+++ b/lisp/textmodes/artist.el
@@ -298,7 +298,7 @@ during the flood-fill."
298(defcustom artist-ellipse-right-char ?\) 298(defcustom artist-ellipse-right-char ?\)
299 "Character to use at the rightmost position when drawing narrow ellipses. 299 "Character to use at the rightmost position when drawing narrow ellipses.
300 300
301In this figure, it is the right parenthesis (the ``)'' character): 301In this figure, it is the right parenthesis (the \")\" character):
302 ----- 302 -----
303 ( ) 303 ( )
304 -----" 304 -----"
@@ -309,7 +309,7 @@ In this figure, it is the right parenthesis (the ``)'' character):
309(defcustom artist-ellipse-left-char ?\( 309(defcustom artist-ellipse-left-char ?\(
310 "Character to use at the leftmost position when drawing narrow ellipses. 310 "Character to use at the leftmost position when drawing narrow ellipses.
311 311
312In this figure, it is the left parenthesis (the ``('' character): 312In this figure, it is the left parenthesis (the \"(\" character):
313 ----- 313 -----
314 ( ) 314 ( )
315 -----" 315 -----"
@@ -331,7 +331,7 @@ Accept this many characters cutting off a line and still treat
331it as one line. 331it as one line.
332Example: 332Example:
333 If `artist-vaporize-fuzziness' is 2, then those will be recognized as 333 If `artist-vaporize-fuzziness' is 2, then those will be recognized as
334 lines from A to B (provided you start vaporizing them at the ``*''): 334 lines from A to B (provided you start vaporizing them at the \"*\"):
335 / 335 /
336 A----*------/-----------B 336 A----*------/-----------B
337 \\/ 337 \\/
@@ -342,7 +342,7 @@ Example:
342 \\/ / 342 \\/ /
343 A----*----/\\/----------B 343 A----*----/\\/----------B
344 / /\\ 344 / /\\
345 (in fact, only the left part [between the A and the leftmost ``/'' 345 (in fact, only the left part [between the A and the leftmost \"/\"
346 crossing the line] will be vaporized)." 346 crossing the line] will be vaporized)."
347 :group 'artist 347 :group 'artist
348 :type 'integer) 348 :type 'integer)
@@ -397,8 +397,8 @@ Example:
397 ;; This is a defvar, not a defcustom, since the custom 397 ;; This is a defvar, not a defcustom, since the custom
398 ;; package shows lists of characters as a lists of integers, 398 ;; package shows lists of characters as a lists of integers,
399 ;; which is confusing 399 ;; which is confusing
400 "Characters (``color'') to use when spraying. 400 "Characters (\"color\") to use when spraying.
401They should be ordered from the ``lightest'' to the ``heaviest'' 401They should be ordered from the \"lightest\" to the \"heaviest\"
402since spraying replaces a light character with the next heavier one.") 402since spraying replaces a light character with the next heavier one.")
403 403
404 404
@@ -1275,7 +1275,7 @@ Drawing with the mouse:
1275 * Cut copies, then clears the rectangle/square. 1275 * Cut copies, then clears the rectangle/square.
1276 1276
1277 * When drawing lines or poly-lines, you can set arrows. 1277 * When drawing lines or poly-lines, you can set arrows.
1278 See below under ``Arrows'' for more info. 1278 See below under \"Arrows\" for more info.
1279 1279
1280 * The mode line shows the currently selected drawing operation. 1280 * The mode line shows the currently selected drawing operation.
1281 In addition, if it has an asterisk (*) at the end, you 1281 In addition, if it has an asterisk (*) at the end, you
@@ -1383,8 +1383,8 @@ Variables
1383 artist-vaporize-fuzziness Tolerance when recognizing lines 1383 artist-vaporize-fuzziness Tolerance when recognizing lines
1384 artist-spray-interval Seconds between repeated sprayings 1384 artist-spray-interval Seconds between repeated sprayings
1385 artist-spray-radius Size of the spray-area 1385 artist-spray-radius Size of the spray-area
1386 artist-spray-chars The spray-``color'' 1386 artist-spray-chars The spray-\"color\"
1387 artist-spray-new-chars Initial spray-``color'' 1387 artist-spray-new-chars Initial spray-\"color\"
1388 1388
1389Hooks 1389Hooks
1390 1390
@@ -2020,7 +2020,7 @@ The replacement is used to convert tabs and new-lines to spaces."
2020(defsubst artist-replace-string (string &optional see-thru) 2020(defsubst artist-replace-string (string &optional see-thru)
2021 "Replace contents at point with STRING. 2021 "Replace contents at point with STRING.
2022With optional argument SEE-THRU set to non-nil, text in the buffer 2022With optional argument SEE-THRU set to non-nil, text in the buffer
2023``shines thru'' blanks in the STRING." 2023\"shines thru\" blanks in the STRING."
2024 (let ((char-list (append string nil)) ; convert the string to a list 2024 (let ((char-list (append string nil)) ; convert the string to a list
2025 (overwrite-mode 'overwrite-mode-textual) 2025 (overwrite-mode 'overwrite-mode-textual)
2026 (fill-column 32765) ; Large :-) 2026 (fill-column 32765) ; Large :-)
@@ -2385,7 +2385,7 @@ in the coord."
2385;; Pretend we are plotting a pixel. Instead we just list it 2385;; Pretend we are plotting a pixel. Instead we just list it
2386;; 2386;;
2387(defmacro artist-put-pixel (point-list x y) 2387(defmacro artist-put-pixel (point-list x y)
2388 "In POINT-LIST, store a ``pixel'' at coord X,Y." 2388 "In POINT-LIST, store a \"pixel\" at coord X,Y."
2389 `(setq ,point-list 2389 `(setq ,point-list
2390 (append ,point-list (list (artist-new-coord ,x ,y))))) 2390 (append ,point-list (list (artist-new-coord ,x ,y)))))
2391 2391
@@ -2928,7 +2928,7 @@ This is done by calling the function specified by
2928`artist-text-renderer-function', which must return a list of strings, 2928`artist-text-renderer-function', which must return a list of strings,
2929to be inserted in the buffer. 2929to be inserted in the buffer.
2930 2930
2931Text already in the buffer ``shines thru'' blanks in the rendered text." 2931Text already in the buffer \"shines thru\" blanks in the rendered text."
2932 (let* ((input-text (read-string "Type text to render: ")) 2932 (let* ((input-text (read-string "Type text to render: "))
2933 (rendered-text (artist-funcall artist-text-renderer-function input-text))) 2933 (rendered-text (artist-funcall artist-text-renderer-function input-text)))
2934 (artist-text-insert-see-thru x y rendered-text))) 2934 (artist-text-insert-see-thru x y rendered-text)))
@@ -2958,7 +2958,7 @@ Blanks in the rendered text overwrite any text in the buffer."
2958Returns a list of points. Each point is on the form (X1 . Y1)." 2958Returns a list of points. Each point is on the form (X1 . Y1)."
2959 (let ((points)) 2959 (let ((points))
2960 (while (> n 0) 2960 (while (> n 0)
2961 (let* ((angle (* (random 359) (/ float-pi 180))) 2961 (let* ((angle (degrees-to-radians (random 359)))
2962 (dist (random radius)) 2962 (dist (random radius))
2963 (point (cons (round (* dist (cos angle))) 2963 (point (cons (round (* dist (cos angle)))
2964 (round (* dist (sin angle)))))) 2964 (round (* dist (sin angle))))))
diff --git a/lisp/textmodes/bibtex.el b/lisp/textmodes/bibtex.el
index 10edefc9d3e..9d6d19e6e1e 100644
--- a/lisp/textmodes/bibtex.el
+++ b/lisp/textmodes/bibtex.el
@@ -4338,10 +4338,10 @@ Correct and validate again.\n"
4338 (goto-char (point-min)) 4338 (goto-char (point-min))
4339 (forward-line 2)) ; first error message 4339 (forward-line 2)) ; first error message
4340 (display-buffer err-buf) 4340 (display-buffer err-buf)
4341 nil) ; return `nil' (i.e., buffer is invalid) 4341 nil) ; return nil (i.e., buffer is invalid)
4342 (message "%s is syntactically correct" 4342 (message "%s is syntactically correct"
4343 (if mark-active "Region" "Buffer")) 4343 (if mark-active "Region" "Buffer"))
4344 t))) ; return `t' (i.e., buffer is valid) 4344 t))) ; return t (i.e., buffer is valid)
4345 4345
4346(defun bibtex-validate-globally (&optional strings) 4346(defun bibtex-validate-globally (&optional strings)
4347 "Check for duplicate keys in `bibtex-files'. 4347 "Check for duplicate keys in `bibtex-files'.
@@ -4395,9 +4395,9 @@ Return t if test was successful, nil otherwise."
4395 (goto-char (point-min)) 4395 (goto-char (point-min))
4396 (forward-line 2)) ; first error message 4396 (forward-line 2)) ; first error message
4397 (display-buffer err-buf) 4397 (display-buffer err-buf)
4398 nil) ; return `nil' (i.e., buffer is invalid) 4398 nil) ; return nil (i.e., buffer is invalid)
4399 (message "No duplicate keys.") 4399 (message "No duplicate keys.")
4400 t))) ; return `t' (i.e., buffer is valid) 4400 t))) ; return t (i.e., buffer is valid)
4401 4401
4402(defun bibtex-next-field (begin &optional comma) 4402(defun bibtex-next-field (begin &optional comma)
4403 "Move point to end of text of next BibTeX field or entry head. 4403 "Move point to end of text of next BibTeX field or entry head.
diff --git a/lisp/textmodes/ispell.el b/lisp/textmodes/ispell.el
index f67fae8bcfa..b0fcb1724f5 100644
--- a/lisp/textmodes/ispell.el
+++ b/lisp/textmodes/ispell.el
@@ -1076,7 +1076,7 @@ of `ispell-dictionary-base-alist' elements."
1076 ispell-aspell-data-dir )) 1076 ispell-aspell-data-dir ))
1077 ;; Try xx.dat first, strip out variant, country code, etc, 1077 ;; Try xx.dat first, strip out variant, country code, etc,
1078 ;; then try xx_YY.dat (without stripping country code), 1078 ;; then try xx_YY.dat (without stripping country code),
1079 ;; then try xx-alt.dat, for deu-alt etc. 1079 ;; then try xx-alt.dat, for de-alt etc.
1080 (dolist (tmp-regexp (list "^[[:alpha:]]+" 1080 (dolist (tmp-regexp (list "^[[:alpha:]]+"
1081 "^[[:alpha:]_]+" 1081 "^[[:alpha:]_]+"
1082 "^[[:alpha:]]+-\\(alt\\|old\\)")) 1082 "^[[:alpha:]]+-\\(alt\\|old\\)"))
@@ -3402,7 +3402,7 @@ Must be called after `ispell-buffer-local-parsing' due to dependence on mode."
3402 3402
3403(defun ispell-ignore-fcc (start end) 3403(defun ispell-ignore-fcc (start end)
3404 "Delete the Fcc: message header when large attachments are included. 3404 "Delete the Fcc: message header when large attachments are included.
3405Return value `nil' if file with large attachments is saved. 3405Return value nil if file with large attachments is saved.
3406This can be used to avoid multiple questions for multiple large attachments. 3406This can be used to avoid multiple questions for multiple large attachments.
3407Returns point to starting location afterwards." 3407Returns point to starting location afterwards."
3408 (let ((result t)) 3408 (let ((result t))
@@ -3900,7 +3900,7 @@ Otherwise, it must be a function which is called to get the limit.")
3900 3900
3901(defun ispell-mime-multipartp (&optional limit) 3901(defun ispell-mime-multipartp (&optional limit)
3902 "Return multipart message start boundary or nil if none." 3902 "Return multipart message start boundary or nil if none."
3903 ;; caller must ensure `case-fold-search' is set to `t' 3903 ;; caller must ensure `case-fold-search' is set to t
3904 (and 3904 (and
3905 (re-search-forward 3905 (re-search-forward
3906 "Content-Type: *multipart/\\([^ \t\n]*;[ \t]*[\n]?[ \t]*\\)+boundary=" 3906 "Content-Type: *multipart/\\([^ \t\n]*;[ \t]*[\n]?[ \t]*\\)+boundary="
diff --git a/lisp/textmodes/makeinfo.el b/lisp/textmodes/makeinfo.el
index d62929b95b5..b9b72ea644f 100644
--- a/lisp/textmodes/makeinfo.el
+++ b/lisp/textmodes/makeinfo.el
@@ -66,7 +66,7 @@ The name of the file is appended to this string, separated by a space."
66 "String containing options for running `makeinfo'. 66 "String containing options for running `makeinfo'.
67Do not include `--footnote-style' or `--paragraph-indent'; 67Do not include `--footnote-style' or `--paragraph-indent';
68the proper way to specify those is with the Texinfo commands 68the proper way to specify those is with the Texinfo commands
69`@footnotestyle` and `@paragraphindent'." 69`@footnotestyle' and `@paragraphindent'."
70 :type 'string 70 :type 'string
71 :group 'makeinfo) 71 :group 'makeinfo)
72 72
diff --git a/lisp/textmodes/rst.el b/lisp/textmodes/rst.el
index cda9703ea6b..9d3f2a92d4b 100644
--- a/lisp/textmodes/rst.el
+++ b/lisp/textmodes/rst.el
@@ -528,7 +528,7 @@ argument list for `rst-re'.")
528 528
529(defvar rst-re-alist) ; Forward declare to use it in `rst-re'. 529(defvar rst-re-alist) ; Forward declare to use it in `rst-re'.
530 530
531;; FIXME: Use `sregex` or `rx` instead of re-inventing the wheel. 531;; FIXME: Use `sregex' or `rx' instead of re-inventing the wheel.
532(rst-testcover-add-compose 'rst-re) 532(rst-testcover-add-compose 'rst-re)
533;; testcover: ok. 533;; testcover: ok.
534(defun rst-re (&rest args) 534(defun rst-re (&rest args)
@@ -1512,8 +1512,8 @@ PFXARG (alternate behavior).
1512 1512
1513This function is a bit of a swiss knife. It is meant to adjust 1513This function is a bit of a swiss knife. It is meant to adjust
1514the adornments of a section title in reStructuredText. It tries 1514the adornments of a section title in reStructuredText. It tries
1515to deal with all the possible cases gracefully and to do `the 1515to deal with all the possible cases gracefully and to do \"the
1516right thing' in all cases. 1516right thing\" in all cases.
1517 1517
1518See the documentations of `rst-adjust-adornment-work' and 1518See the documentations of `rst-adjust-adornment-work' and
1519`rst-promote-region' for full details. 1519`rst-promote-region' for full details.
@@ -3571,8 +3571,8 @@ of your own."
3571 ;; properties on comments and literal blocks so they are *not* 3571 ;; properties on comments and literal blocks so they are *not*
3572 ;; inline fontified. See (elisp)Search-based Fontification. 3572 ;; inline fontified. See (elisp)Search-based Fontification.
3573 3573
3574 ;; FIXME: And / or use `syntax-propertize` functions as in `octave-mod.el` 3574 ;; FIXME: And / or use `syntax-propertize' functions as in `octave-mod.el'
3575 ;; and other V24 modes. May make `font-lock-extend-region` 3575 ;; and other V24 modes. May make `font-lock-extend-region'
3576 ;; superfluous. 3576 ;; superfluous.
3577 3577
3578 ;; `Comments`_ 3578 ;; `Comments`_
@@ -3952,11 +3952,11 @@ string)) to be used for converting the document."
3952 :package-version "1.2.0") 3952 :package-version "1.2.0")
3953(rst-testcover-defcustom) 3953(rst-testcover-defcustom)
3954 3954
3955;; FIXME: Must be `defcustom`. 3955;; FIXME: Must be defcustom.
3956(defvar rst-compile-primary-toolset 'html 3956(defvar rst-compile-primary-toolset 'html
3957 "The default tool-set for `rst-compile'.") 3957 "The default tool-set for `rst-compile'.")
3958 3958
3959;; FIXME: Must be `defcustom`. 3959;; FIXME: Must be defcustom.
3960(defvar rst-compile-secondary-toolset 'latex 3960(defvar rst-compile-secondary-toolset 'latex
3961 "The default tool-set for `rst-compile' with a prefix argument.") 3961 "The default tool-set for `rst-compile' with a prefix argument.")
3962 3962
@@ -4035,7 +4035,7 @@ buffer, if the region is not selected."
4035 (cadr (assq 'pseudoxml rst-compile-toolsets)) 4035 (cadr (assq 'pseudoxml rst-compile-toolsets))
4036 standard-output))) 4036 standard-output)))
4037 4037
4038;; FIXME: Should be `defcustom`. 4038;; FIXME: Should be defcustom.
4039(defvar rst-pdf-program "xpdf" 4039(defvar rst-pdf-program "xpdf"
4040 "Program used to preview PDF files.") 4040 "Program used to preview PDF files.")
4041 4041
@@ -4052,7 +4052,7 @@ buffer, if the region is not selected."
4052 ;; output. 4052 ;; output.
4053 )) 4053 ))
4054 4054
4055;; FIXME: Should be `defcustom` or use something like `browse-url`. 4055;; FIXME: Should be defcustom or use something like `browse-url'.
4056(defvar rst-slides-program "firefox" 4056(defvar rst-slides-program "firefox"
4057 "Program used to preview S5 slides.") 4057 "Program used to preview S5 slides.")
4058 4058
diff --git a/lisp/textmodes/tildify.el b/lisp/textmodes/tildify.el
index 0eae67ae83a..4e385a0fbd3 100644
--- a/lisp/textmodes/tildify.el
+++ b/lisp/textmodes/tildify.el
@@ -431,7 +431,7 @@ current `case-fold-search' setting."
431 431
432If 432If
433 * character before point is a space character, 433 * character before point is a space character,
434 * character before that has w character syntax (i.e. it's a word 434 * character before that has \"w\" character syntax (i.e. it's a word
435 constituent), 435 constituent),
436 * `tildify-space-pattern' matches when `looking-back' (no more than 10 436 * `tildify-space-pattern' matches when `looking-back' (no more than 10
437 characters) from before the space character, and 437 characters) from before the space character, and
diff --git a/lisp/type-break.el b/lisp/type-break.el
index a5a31c9ffd1..5a12f02f876 100644
--- a/lisp/type-break.el
+++ b/lisp/type-break.el
@@ -45,7 +45,7 @@
45 45
46;; If you find echo area messages annoying and would prefer to see messages 46;; If you find echo area messages annoying and would prefer to see messages
47;; in the mode line instead, do M-x type-break-mode-line-message-mode 47;; in the mode line instead, do M-x type-break-mode-line-message-mode
48;; or set the variable of the same name to `t'. 48;; or set the variable of the same name to t.
49 49
50;; This program can truly cons up a storm because of all the calls to 50;; This program can truly cons up a storm because of all the calls to
51;; `current-time' (which always returns fresh conses). I'm dismayed by 51;; `current-time' (which always returns fresh conses). I'm dismayed by
diff --git a/lisp/vc/compare-w.el b/lisp/vc/compare-w.el
index 07c07682186..5b923697241 100644
--- a/lisp/vc/compare-w.el
+++ b/lisp/vc/compare-w.el
@@ -88,7 +88,7 @@ regexp containing some field separator or a newline, depending on
88the nature of the difference units separator. The variable can 88the nature of the difference units separator. The variable can
89be made buffer-local. 89be made buffer-local.
90 90
91If the value of this variable is `nil' (option \"No sync\"), then 91If the value of this variable is nil (option \"No sync\"), then
92no synchronization is performed, and the function `ding' is called 92no synchronization is performed, and the function `ding' is called
93to beep or flash the screen when points are mismatched." 93to beep or flash the screen when points are mismatched."
94 :type '(choice function regexp (const :tag "No sync" nil)) 94 :type '(choice function regexp (const :tag "No sync" nil))
diff --git a/lisp/vc/ediff-util.el b/lisp/vc/ediff-util.el
index 260366e242a..26bba40b4b4 100644
--- a/lisp/vc/ediff-util.el
+++ b/lisp/vc/ediff-util.el
@@ -3988,7 +3988,7 @@ and mail it to the address above.
3988Please read this first: 3988Please read this first:
3989---------------------- 3989----------------------
3990 3990
3991Some ``bugs'' may actually be no bugs at all. For instance, if you are 3991Some \"bugs\" may actually be no bugs at all. For instance, if you are
3992reporting that certain difference regions are not matched as you think they 3992reporting that certain difference regions are not matched as you think they
3993should, this is most likely due to the way Unix diff program decides what 3993should, this is most likely due to the way Unix diff program decides what
3994constitutes a difference region. Ediff is an Emacs interface to diff, and 3994constitutes a difference region. Ediff is an Emacs interface to diff, and
diff --git a/lisp/vc/log-edit.el b/lisp/vc/log-edit.el
index 08ae998200b..d59549772c0 100644
--- a/lisp/vc/log-edit.el
+++ b/lisp/vc/log-edit.el
@@ -167,7 +167,7 @@ can be obtained from `log-edit-files'."
167 167
168(defvar log-edit-changelog-full-paragraphs t 168(defvar log-edit-changelog-full-paragraphs t
169 "If non-nil, include full ChangeLog paragraphs in the log. 169 "If non-nil, include full ChangeLog paragraphs in the log.
170This may be set in the ``local variables'' section of a ChangeLog, to 170This may be set in the \"local variables\" section of a ChangeLog, to
171indicate the policy for that ChangeLog. 171indicate the policy for that ChangeLog.
172 172
173A ChangeLog paragraph is a bunch of log text containing no blank lines; 173A ChangeLog paragraph is a bunch of log text containing no blank lines;
diff --git a/lisp/vc/log-view.el b/lisp/vc/log-view.el
index 042ea131a97..19bbc45f927 100644
--- a/lisp/vc/log-view.el
+++ b/lisp/vc/log-view.el
@@ -404,7 +404,9 @@ This calls `log-view-expanded-log-entry-function' to do the work."
404 (unless (and pos (log-view-inside-comment-p pos)) 404 (unless (and pos (log-view-inside-comment-p pos))
405 (error "Broken markup in `log-view-toggle-entry-display'")) 405 (error "Broken markup in `log-view-toggle-entry-display'"))
406 (delete-region pos 406 (delete-region pos
407 (next-single-property-change pos 'log-view-comment)) 407 (or
408 (next-single-property-change pos 'log-view-comment)
409 (point-max)))
408 (put-text-property beg (1+ beg) 'log-view-entry-expanded nil) 410 (put-text-property beg (1+ beg) 'log-view-entry-expanded nil)
409 (if (< opoint pos) 411 (if (< opoint pos)
410 (goto-char opoint))) 412 (goto-char opoint)))
@@ -469,7 +471,10 @@ It assumes that a log entry starts with a line matching
469 ((looking-back "Show 2X entries Show unlimited entries" 471 ((looking-back "Show 2X entries Show unlimited entries"
470 (line-beginning-position)) 472 (line-beginning-position))
471 (setq looping nil) 473 (setq looping nil)
472 (forward-line -1)))))) 474 (forward-line -1))
475 ;; There are no buttons if we've turned on unlimited entries.
476 ((eobp)
477 (setq looping nil))))))
473 478
474(defun log-view-end-of-defun (&optional arg) 479(defun log-view-end-of-defun (&optional arg)
475 "Move forward to the next Log View entry. 480 "Move forward to the next Log View entry.
diff --git a/lisp/vc/vc-annotate.el b/lisp/vc/vc-annotate.el
index 8bcea5f164d..3a50c9b6a2d 100644
--- a/lisp/vc/vc-annotate.el
+++ b/lisp/vc/vc-annotate.el
@@ -175,7 +175,6 @@ List of factors, used to expand/compress the time scale. See `vc-annotate'."
175 (define-key m "p" 'vc-annotate-prev-revision) 175 (define-key m "p" 'vc-annotate-prev-revision)
176 (define-key m "w" 'vc-annotate-working-revision) 176 (define-key m "w" 'vc-annotate-working-revision)
177 (define-key m "v" 'vc-annotate-toggle-annotation-visibility) 177 (define-key m "v" 'vc-annotate-toggle-annotation-visibility)
178 (define-key m "v" 'vc-annotate-toggle-annotation-visibility)
179 (define-key m "\C-m" 'vc-annotate-goto-line) 178 (define-key m "\C-m" 'vc-annotate-goto-line)
180 m) 179 m)
181 "Local keymap used for VC-Annotate mode.") 180 "Local keymap used for VC-Annotate mode.")
@@ -583,17 +582,15 @@ the file in question, search for the log entry required and move point."
583 (setq prev-rev 582 (setq prev-rev
584 (vc-call-backend vc-annotate-backend 'previous-revision 583 (vc-call-backend vc-annotate-backend 'previous-revision
585 (if filediff fname nil) rev)) 584 (if filediff fname nil) rev))
586 (if (not prev-rev) 585 (vc-diff-internal
587 (message "Cannot diff from any revision prior to %s" rev) 586 t
588 (vc-diff-internal 587 ;; The value passed here should follow what
589 t 588 ;; `vc-deduce-fileset' returns.
590 ;; The value passed here should follow what 589 (list vc-annotate-backend
591 ;; `vc-deduce-fileset' returns. 590 (if filediff
592 (list vc-annotate-backend 591 (list fname)
593 (if filediff 592 nil))
594 (list fname) 593 prev-rev rev)))))
595 nil))
596 prev-rev rev))))))
597 594
598(defun vc-annotate-show-diff-revision-at-line () 595(defun vc-annotate-show-diff-revision-at-line ()
599 "Visit the diff of the revision at line from its previous revision." 596 "Visit the diff of the revision at line from its previous revision."
@@ -605,7 +602,10 @@ the file in question, search for the log entry required and move point."
605 (interactive) 602 (interactive)
606 (when (eq 'file (vc-call-backend vc-annotate-backend 'revision-granularity)) 603 (when (eq 'file (vc-call-backend vc-annotate-backend 'revision-granularity))
607 (error "The %s backend does not support changeset diffs" vc-annotate-backend)) 604 (error "The %s backend does not support changeset diffs" vc-annotate-backend))
608 (vc-annotate-show-diff-revision-at-line-internal nil)) 605 ;; Make sure `diff-goto-source' will be able to find all files.
606 (let ((default-directory (vc-call-backend vc-annotate-backend
607 'root default-directory)))
608 (vc-annotate-show-diff-revision-at-line-internal nil)))
609 609
610(defun vc-annotate-warp-revision (revspec &optional file) 610(defun vc-annotate-warp-revision (revspec &optional file)
611 "Annotate the revision described by REVSPEC. 611 "Annotate the revision described by REVSPEC.
diff --git a/lisp/vc/vc-bzr.el b/lisp/vc/vc-bzr.el
index c9508251c8d..5f8dd0bf0e8 100644
--- a/lisp/vc/vc-bzr.el
+++ b/lisp/vc/vc-bzr.el
@@ -34,7 +34,7 @@
34;; ========== 34;; ==========
35 35
36;; When editing a symlink and *both* the symlink and its target 36;; When editing a symlink and *both* the symlink and its target
37;; are bzr-versioned, `vc-bzr` presently runs `bzr status` on the 37;; are bzr-versioned, `vc-bzr' presently runs `bzr status' on the
38;; symlink, thereby not detecting whether the actual contents 38;; symlink, thereby not detecting whether the actual contents
39;; (that is, the target contents) are changed. 39;; (that is, the target contents) are changed.
40 40
diff --git a/lisp/vc/vc-git.el b/lisp/vc/vc-git.el
index cbf3da3003f..e3cd5d4e3dc 100644
--- a/lisp/vc/vc-git.el
+++ b/lisp/vc/vc-git.el
@@ -960,14 +960,13 @@ or BRANCH^ (where \"^\" can be repeated)."
960 960
961(defun vc-git-expanded-log-entry (revision) 961(defun vc-git-expanded-log-entry (revision)
962 (with-temp-buffer 962 (with-temp-buffer
963 (apply 'vc-git-command t nil nil (list "log" revision "-1")) 963 (apply 'vc-git-command t nil nil (list "log" revision "-1" "--"))
964 (goto-char (point-min)) 964 (goto-char (point-min))
965 (unless (eobp) 965 (unless (eobp)
966 ;; Indent the expanded log entry. 966 ;; Indent the expanded log entry.
967 (indent-region (point-min) (point-max) 2) 967 (indent-region (point-min) (point-max) 2)
968 (buffer-string)))) 968 (buffer-string))))
969 969
970
971(defun vc-git-region-history (file buffer lfrom lto) 970(defun vc-git-region-history (file buffer lfrom lto)
972 (vc-git-command buffer 'async nil "log" "-p" ;"--follow" ;FIXME: not supported? 971 (vc-git-command buffer 'async nil "log" "-p" ;"--follow" ;FIXME: not supported?
973 (format "-L%d,%d:%s" lfrom lto (file-relative-name file)))) 972 (format "-L%d,%d:%s" lfrom lto (file-relative-name file))))
@@ -1019,12 +1018,18 @@ or BRANCH^ (where \"^\" can be repeated)."
1019 1018
1020(defun vc-git-diff (files &optional rev1 rev2 buffer async) 1019(defun vc-git-diff (files &optional rev1 rev2 buffer async)
1021 "Get a difference report using Git between two revisions of FILES." 1020 "Get a difference report using Git between two revisions of FILES."
1022 (let (process-file-side-effects) 1021 (let (process-file-side-effects
1022 (command "diff-tree"))
1023 (if rev2
1024 ;; Diffing against the empty tree.
1025 (unless rev1 (setq rev1 "4b825dc642cb6eb9a060e54bf8d69288fbee4904"))
1026 (setq command "diff-index")
1027 (unless rev1 (setq rev1 "HEAD")))
1023 (if vc-git-diff-switches 1028 (if vc-git-diff-switches
1024 (apply #'vc-git-command (or buffer "*vc-diff*") 1029 (apply #'vc-git-command (or buffer "*vc-diff*")
1025 (if async 'async 1) 1030 (if async 'async 1)
1026 files 1031 files
1027 (if (and rev1 rev2) "diff-tree" "diff-index") 1032 command
1028 "--exit-code" 1033 "--exit-code"
1029 (append (vc-switches 'git 'diff) 1034 (append (vc-switches 'git 'diff)
1030 (list "-p" (or rev1 "HEAD") rev2 "--"))) 1035 (list "-p" (or rev1 "HEAD") rev2 "--")))
@@ -1033,7 +1038,7 @@ or BRANCH^ (where \"^\" can be repeated)."
1033 (concat "diff " 1038 (concat "diff "
1034 (mapconcat 'identity 1039 (mapconcat 'identity
1035 (vc-switches nil 'diff) " ")) 1040 (vc-switches nil 'diff) " "))
1036 (or rev1 "HEAD") rev2 "--")))) 1041 rev1 rev2 "--"))))
1037 1042
1038(defun vc-git-revision-table (_files) 1043(defun vc-git-revision-table (_files)
1039 ;; What about `files'?!? --Stef 1044 ;; What about `files'?!? --Stef
@@ -1061,7 +1066,7 @@ or BRANCH^ (where \"^\" can be repeated)."
1061(declare-function vc-annotate-convert-time "vc-annotate" (&optional time)) 1066(declare-function vc-annotate-convert-time "vc-annotate" (&optional time))
1062 1067
1063(defun vc-git-annotate-time () 1068(defun vc-git-annotate-time ()
1064 (and (re-search-forward "^[0-9a-f]+[^()]+(.*?\\([0-9]+\\)-\\([0-9]+\\)-\\([0-9]+\\) \\(:?\\([0-9]+\\):\\([0-9]+\\):\\([0-9]+\\) \\([-+0-9]+\\)\\)? *[0-9]+) " nil t) 1069 (and (re-search-forward "^[0-9a-f^]+[^()]+(.*?\\([0-9]+\\)-\\([0-9]+\\)-\\([0-9]+\\) \\(:?\\([0-9]+\\):\\([0-9]+\\):\\([0-9]+\\) \\([-+0-9]+\\)\\)? *[0-9]+) " nil t)
1065 (vc-annotate-convert-time 1070 (vc-annotate-convert-time
1066 (apply #'encode-time (mapcar (lambda (match) 1071 (apply #'encode-time (mapcar (lambda (match)
1067 (if (match-beginning match) 1072 (if (match-beginning match)
@@ -1072,7 +1077,7 @@ or BRANCH^ (where \"^\" can be repeated)."
1072(defun vc-git-annotate-extract-revision-at-line () 1077(defun vc-git-annotate-extract-revision-at-line ()
1073 (save-excursion 1078 (save-excursion
1074 (beginning-of-line) 1079 (beginning-of-line)
1075 (when (looking-at "\\([0-9a-f^][0-9a-f]+\\) \\(\\([^(]+\\) \\)?") 1080 (when (looking-at "\\^?\\([0-9a-f]+\\) \\(\\([^(]+\\) \\)?")
1076 (let ((revision (match-string-no-properties 1))) 1081 (let ((revision (match-string-no-properties 1)))
1077 (if (match-beginning 2) 1082 (if (match-beginning 2)
1078 (let ((fname (match-string-no-properties 3))) 1083 (let ((fname (match-string-no-properties 3)))
diff --git a/lisp/vc/vc.el b/lisp/vc/vc.el
index d5d0abe6517..1bd04e13430 100644
--- a/lisp/vc/vc.el
+++ b/lisp/vc/vc.el
@@ -367,7 +367,8 @@
367;; BUFFER is nil. If ASYNC is non-nil, run asynchronously. If REV1 367;; BUFFER is nil. If ASYNC is non-nil, run asynchronously. If REV1
368;; and REV2 are non-nil, report differences from REV1 to REV2. If 368;; and REV2 are non-nil, report differences from REV1 to REV2. If
369;; REV1 is nil, use the working revision (as found in the 369;; REV1 is nil, use the working revision (as found in the
370;; repository) as the older revision; if REV2 is nil, use the 370;; repository) as the older revision if REV2 is nil as well;
371;; otherwise, diff against an empty tree. If REV2 is nil, use the
371;; current working-copy contents as the newer revision. This 372;; current working-copy contents as the newer revision. This
372;; function should pass the value of (vc-switches BACKEND 'diff) to 373;; function should pass the value of (vc-switches BACKEND 'diff) to
373;; the backend command. It should return a status of either 0 (no 374;; the backend command. It should return a status of either 0 (no
diff --git a/lisp/wid-edit.el b/lisp/wid-edit.el
index 0a9578391e0..d09214b42a3 100644
--- a/lisp/wid-edit.el
+++ b/lisp/wid-edit.el
@@ -3319,7 +3319,7 @@ It reads a directory name from an editable text field."
3319 ;; Avoid a confusing end-of-file error. 3319 ;; Avoid a confusing end-of-file error.
3320 (skip-syntax-forward "\\s-") 3320 (skip-syntax-forward "\\s-")
3321 (if (eobp) 3321 (if (eobp)
3322 (setq err "Empty sexp -- use `nil'?") 3322 (setq err "Empty sexp -- use nil?")
3323 (unless (widget-apply widget :match (read (current-buffer))) 3323 (unless (widget-apply widget :match (read (current-buffer)))
3324 (setq err (widget-get widget :type-error)))) 3324 (setq err (widget-get widget :type-error))))
3325 ;; Allow whitespace after expression. 3325 ;; Allow whitespace after expression.
diff --git a/lisp/widget.el b/lisp/widget.el
index 539f91e63a0..d62f7ffd8d1 100644
--- a/lisp/widget.el
+++ b/lisp/widget.el
@@ -85,7 +85,7 @@ create identical widgets:
85The third argument DOC is a documentation string for the widget." 85The third argument DOC is a documentation string for the widget."
86 ;; 86 ;;
87 (unless (or (null doc) (stringp doc)) 87 (unless (or (null doc) (stringp doc))
88 (error "widget documentation must be `nil' or a string.")) 88 (error "widget documentation must be nil or a string."))
89 (put name 'widget-type (cons class args)) 89 (put name 'widget-type (cons class args))
90 (put name 'widget-documentation (purecopy doc)) 90 (put name 'widget-documentation (purecopy doc))
91 name) 91 name)
diff --git a/lisp/windmove.el b/lisp/windmove.el
index c461a00740a..1df74a2d271 100644
--- a/lisp/windmove.el
+++ b/lisp/windmove.el
@@ -488,8 +488,8 @@ If no window is at direction DIR, an error is signaled."
488 488
489 489
490;;; end-user functions 490;;; end-user functions
491;; these are all simple interactive wrappers to `windmove-do- 491;; these are all simple interactive wrappers to
492;; window-select', meant to be bound to keys. 492;; `windmove-do-window-select', meant to be bound to keys.
493 493
494;;;###autoload 494;;;###autoload
495(defun windmove-left (&optional arg) 495(defun windmove-left (&optional arg)
diff --git a/lisp/window.el b/lisp/window.el
index 49b7e2cc55d..fad9b2f69fa 100644
--- a/lisp/window.el
+++ b/lisp/window.el
@@ -4311,7 +4311,7 @@ one. If non-nil, reset `quit-restore' parameter to nil.
4311Optional second argument BURY-OR-KILL tells how to proceed with 4311Optional second argument BURY-OR-KILL tells how to proceed with
4312the buffer of WINDOW. The following values are handled: 4312the buffer of WINDOW. The following values are handled:
4313 4313
4314`nil' means to not handle the buffer in a particular way. This 4314nil means to not handle the buffer in a particular way. This
4315 means that if WINDOW is not deleted by this function, invoking 4315 means that if WINDOW is not deleted by this function, invoking
4316 `switch-to-prev-buffer' will usually show the buffer again. 4316 `switch-to-prev-buffer' will usually show the buffer again.
4317 4317
@@ -6884,6 +6884,33 @@ the selected window or never appeared in it before, or if
6884 :group 'windows 6884 :group 'windows
6885 :version "24.3") 6885 :version "24.3")
6886 6886
6887(defcustom switch-to-buffer-in-dedicated-window nil
6888 "Allow switching to buffer in strongly dedicated windows.
6889If non-nil, allow `switch-to-buffer' to proceed when called
6890interactively and the selected window is strongly dedicated to
6891its buffer.
6892
6893The following values are recognized:
6894
6895nil - disallow switching; signal an error
6896
6897prompt - prompt user whether to allow switching
6898
6899pop - perform `pop-to-buffer' instead
6900
6901t - undedicate selected window and switch
6902
6903When called non-interactively, `switch-to-buffer' always signals
6904an error when the selected window is dedicated to its buffer and
6905FORCE-SAME-WINDOW is non-nil."
6906 :type '(choice
6907 (const :tag "Disallow" nil)
6908 (const :tag "Prompt" prompt)
6909 (const :tag "Pop" pop)
6910 (const :tag "Allow" t))
6911 :group 'windows
6912 :version "25.1")
6913
6887(defun switch-to-buffer (buffer-or-name &optional norecord force-same-window) 6914(defun switch-to-buffer (buffer-or-name &optional norecord force-same-window)
6888 "Display buffer BUFFER-OR-NAME in the selected window. 6915 "Display buffer BUFFER-OR-NAME in the selected window.
6889 6916
@@ -6891,10 +6918,12 @@ WARNING: This is NOT the way to work on another buffer temporarily
6891within a Lisp program! Use `set-buffer' instead. That avoids 6918within a Lisp program! Use `set-buffer' instead. That avoids
6892messing with the window-buffer correspondences. 6919messing with the window-buffer correspondences.
6893 6920
6894If the selected window cannot display the specified 6921If the selected window cannot display the specified buffer
6895buffer (e.g. if it is a minibuffer window or strongly dedicated 6922because it is a minibuffer window or strongly dedicated to
6896to another buffer), call `pop-to-buffer' to select the buffer in 6923another buffer, call `pop-to-buffer' to select the buffer in
6897another window. 6924another window. In interactive use, if the selected window is
6925strongly dedicated to its buffer, the value of the option
6926`switch-to-buffer-in-dedicated-window' specifies how to proceed.
6898 6927
6899If called interactively, read the buffer name using the 6928If called interactively, read the buffer name using the
6900minibuffer. The variable `confirm-nonexistent-file-or-buffer' 6929minibuffer. The variable `confirm-nonexistent-file-or-buffer'
@@ -6911,8 +6940,9 @@ at the front of the buffer list, and do not make the window
6911displaying it the most recently selected one. 6940displaying it the most recently selected one.
6912 6941
6913If optional argument FORCE-SAME-WINDOW is non-nil, the buffer 6942If optional argument FORCE-SAME-WINDOW is non-nil, the buffer
6914must be displayed in the selected window; if that is impossible, 6943must be displayed in the selected window when called
6915signal an error rather than calling `pop-to-buffer'. 6944non-interactively; if that is impossible, signal an error rather
6945than calling `pop-to-buffer'.
6916 6946
6917The option `switch-to-buffer-preserve-window-point' can be used 6947The option `switch-to-buffer-preserve-window-point' can be used
6918to make the buffer appear at its last position in the selected 6948to make the buffer appear at its last position in the selected
@@ -6920,7 +6950,25 @@ window.
6920 6950
6921Return the buffer switched to." 6951Return the buffer switched to."
6922 (interactive 6952 (interactive
6923 (list (read-buffer-to-switch "Switch to buffer: ") nil 'force-same-window)) 6953 (let ((force-same-window
6954 (cond
6955 ((window-minibuffer-p) nil)
6956 ((not (eq (window-dedicated-p) t)) 'force-same-window)
6957 ((pcase switch-to-buffer-in-dedicated-window
6958 (`nil (user-error
6959 "Cannot switch buffers in a dedicated window"))
6960 (`prompt
6961 (if (y-or-n-p
6962 (format "Window is dedicated to %s; undedicate it"
6963 (window-buffer)))
6964 (progn
6965 (set-window-dedicated-p nil nil)
6966 'force-same-window)
6967 (user-error
6968 "Cannot switch buffers in a dedicated window")))
6969 (`pop nil)
6970 (_ (set-window-dedicated-p nil nil) 'force-same-window))))))
6971 (list (read-buffer-to-switch "Switch to buffer: ") nil force-same-window)))
6924 (let ((buffer (window-normalize-buffer-to-switch-to buffer-or-name))) 6972 (let ((buffer (window-normalize-buffer-to-switch-to buffer-or-name)))
6925 (cond 6973 (cond
6926 ;; Don't call set-window-buffer if it's not needed since it 6974 ;; Don't call set-window-buffer if it's not needed since it
@@ -8059,7 +8107,7 @@ This function is responsible for combining the sizes of the
8059displayed windows and returning a cons (WIDTH . HEIGHT) 8107displayed windows and returning a cons (WIDTH . HEIGHT)
8060describing the width and height with which Emacs will call 8108describing the width and height with which Emacs will call
8061`set-process-window-size' for that process. If the function 8109`set-process-window-size' for that process. If the function
8062returns `nil', Emacs does not call `set-process-window-size'. 8110returns nil, Emacs does not call `set-process-window-size'.
8063 8111
8064This function is called with the process buffer as the current 8112This function is called with the process buffer as the current
8065buffer and with two arguments: the process and a list of windows 8113buffer and with two arguments: the process and a list of windows
diff --git a/lisp/woman.el b/lisp/woman.el
index 611ba743652..75c3d2e3822 100644
--- a/lisp/woman.el
+++ b/lisp/woman.el
@@ -161,7 +161,7 @@
161 161
162;; The WoMan menu provides an option to make a contents menu for the 162;; The WoMan menu provides an option to make a contents menu for the
163;; current man page (using imenu). Alternatively, if you set the 163;; current man page (using imenu). Alternatively, if you set the
164;; variable `woman-imenu' to `t' then WoMan will do it automatically 164;; variable `woman-imenu' to t then WoMan will do it automatically
165;; for every man page. The menu title is the value of the variable 165;; for every man page. The menu title is the value of the variable
166;; `woman-imenu-title', which is "CONTENTS" by default. By default, 166;; `woman-imenu-title', which is "CONTENTS" by default. By default,
167;; the menu shows manual sections and subsections, but you can change 167;; the menu shows manual sections and subsections, but you can change
@@ -179,7 +179,7 @@
179;; Howard Melman made (essentially) the following suggestions, which 179;; Howard Melman made (essentially) the following suggestions, which
180;; are slightly different from the expression that I currently use. 180;; are slightly different from the expression that I currently use.
181;; You may prefer one of Howard's suggestions, which I think assume 181;; You may prefer one of Howard's suggestions, which I think assume
182;; that `case-fold-search' is `t' (which it is by default): 182;; that `case-fold-search' is t (which it is by default):
183 183
184;; (setq woman-imenu-generic-expression 184;; (setq woman-imenu-generic-expression
185;; '((nil "^\\( \\)?\\([A-Z][A-Z ]+[A-Z]\\)[ \t]*$" 2))) 185;; '((nil "^\\( \\)?\\([A-Z][A-Z ]+[A-Z]\\)[ \t]*$" 2)))
@@ -217,7 +217,7 @@
217;; This is modeled on the byte-compiler. It logs all files formatted 217;; This is modeled on the byte-compiler. It logs all files formatted
218;; by WoMan, and if WoMan finds anything that it cannot handle then it 218;; by WoMan, and if WoMan finds anything that it cannot handle then it
219;; writes a warning to this buffer. If the variable `woman-show-log' 219;; writes a warning to this buffer. If the variable `woman-show-log'
220;; is non-nil (by default it is `nil') then WoMan automatically 220;; is non-nil (by default it is nil) then WoMan automatically
221;; displays this buffer. Many WoMan warnings can be completely 221;; displays this buffer. Many WoMan warnings can be completely
222;; ignored, because they are reporting the fact that WoMan has ignored 222;; ignored, because they are reporting the fact that WoMan has ignored
223;; requests that it is correct to ignore. In some future version this 223;; requests that it is correct to ignore. In some future version this
@@ -228,8 +228,8 @@
228 228
229;; Uninterpreted ?roff requests can optionally be left in the 229;; Uninterpreted ?roff requests can optionally be left in the
230;; formatted buffer to indicate precisely where they occur by 230;; formatted buffer to indicate precisely where they occur by
231;; resetting the variable `woman-ignore' to `nil' (by default it is 231;; resetting the variable `woman-ignore' to nil (by default it is
232;; `t'). 232;; t).
233 233
234;; Automatic initiation of woman decoding 234;; Automatic initiation of woman decoding
235 235
@@ -278,7 +278,7 @@
278;; CASE-DEPENDENCE OF FILENAMES. By default, WoMan ignores case in 278;; CASE-DEPENDENCE OF FILENAMES. By default, WoMan ignores case in
279;; file pathnames only when it seems appropriate. MS-Windows users 279;; file pathnames only when it seems appropriate. MS-Windows users
280;; who want complete case independence should set the NTEmacs variable 280;; who want complete case independence should set the NTEmacs variable
281;; `w32-downcase-file-names' to `t' and use all lower case when 281;; `w32-downcase-file-names' to t and use all lower case when
282;; setting WoMan file paths. 282;; setting WoMan file paths.
283 283
284;; (1) INCOMPATIBLE CHANGE! WoMan no longer uses a persistent topic 284;; (1) INCOMPATIBLE CHANGE! WoMan no longer uses a persistent topic
diff --git a/lisp/xt-mouse.el b/lisp/xt-mouse.el
index f8ae73c7b75..2bb71549564 100644
--- a/lisp/xt-mouse.el
+++ b/lisp/xt-mouse.el
@@ -321,21 +321,21 @@ Enables basic mouse tracking, mouse motion events and finally
321extended tracking on terminals that support it. The following 321extended tracking on terminals that support it. The following
322escape sequences are understood by modern xterms: 322escape sequences are understood by modern xterms:
323 323
324\"\\e[?1000h\" `Basic mouse mode´: Enables reports for mouse 324\"\\e[?1000h\" \"Basic mouse mode\": Enables reports for mouse
325 clicks. There is a limit to the maximum row/column 325 clicks. There is a limit to the maximum row/column
326 position (<= 223), which can be reported in this 326 position (<= 223), which can be reported in this
327 basic mode. 327 basic mode.
328 328
329\"\\e[?1002h\" `Mouse motion mode´: Enables reports for mouse 329\"\\e[?1002h\" \"Mouse motion mode\": Enables reports for mouse
330 motion events during dragging operations. 330 motion events during dragging operations.
331 331
332\"\\e[?1005h\" `UTF-8 coordinate extension`: Enables an extension 332\"\\e[?1005h\" \"UTF-8 coordinate extension\": Enables an extension
333 to the basic mouse mode, which uses UTF-8 333 to the basic mouse mode, which uses UTF-8
334 characters to overcome the 223 row/column limit. This 334 characters to overcome the 223 row/column limit. This
335 extension may conflict with non UTF-8 applications or 335 extension may conflict with non UTF-8 applications or
336 non UTF-8 locales. 336 non UTF-8 locales.
337 337
338\"\\e[?1006h\" `SGR coordinate extension´: Enables a newer 338\"\\e[?1006h\" \"SGR coordinate extension\": Enables a newer
339 alternative extension to the basic mouse mode, which 339 alternative extension to the basic mouse mode, which
340 overcomes the 223 row/column limit without the 340 overcomes the 223 row/column limit without the
341 drawbacks of the UTF-8 coordinate extension. 341 drawbacks of the UTF-8 coordinate extension.