aboutsummaryrefslogtreecommitdiffstats
path: root/lisp
diff options
context:
space:
mode:
authorGlenn Morris2017-12-16 12:18:45 -0800
committerGlenn Morris2017-12-16 12:18:45 -0800
commit8e46d93dcdabfa9fb099345fa12378479b4dbe63 (patch)
tree3586203b53367f0bc71460e31caee41a79b84d8f /lisp
parentda2c441079c74b18399176df3f92613436ef53dc (diff)
parent28e0261890e6335cb49cc03c47c206ce9c022448 (diff)
downloademacs-8e46d93dcdabfa9fb099345fa12378479b4dbe63.tar.gz
emacs-8e46d93dcdabfa9fb099345fa12378479b4dbe63.zip
Merge from origin/emacs-26
28e0261890 * lisp/progmodes/cc-defs.el (c-version): Update to 5.33.1. ac53084f9b Improve fix for Bug#29712 ffd4771560 * doc/lispref/sequences.texi (Sequence Functions): Improve... f274cbd185 Avoid reordering of output in 'shr-insert-document' 7890864413 Improve documentation of 'invisible-p' a1327bbc64 Remove one more check that Vframe_list is non-nil 63b6281fdd Fix off-by-one error in 'css--hex-color' 804b37ca63 Save and restore text-pixel height and width of frames (Bu... 777fe94661 Partially revert "Mention new strictness for &optional, &r... ad17db7964 * lisp/vc/smerge-mode.el (smerge-refine): Respect font-loc... 5a7d0095a4 * lisp/vc/smerge-mode.el (smerge-refine): Replace obsolete... e019c35df6 FOR_EACH_FRAME no longer assumes frame-list d64b88da2f * src/font.c (Ffont_info): Doc fix. (Bug#29682) 92b2604a7f Modernise message.el face spec syntax b1efbe6564 Update message.el obsolete face aliases 2494c14e76 ; * lisp/comint.el (comint-terminfo-terminal): Add a :vers... 12ad276d15 Improve documentation of TERM environment variable 8ed529f0f3 Add option to configure comint TERM 889f07c352 Better support utf-8-with-signature and utf-8-hfs in XML/HTML a2697fac0e * lisp/menu-bar.el (menu-bar-mode): Doc fix. ffb50eace6 ; * etc/NEWS: Fix last change. 95606af8b0 Fix Bug#29712 in tramp-tests.el 9bf66c6bee Don't run FOR_EACH_FRAME when there's no frame left (Bug#2... c2a88ec8e8 * lisp/textmodes/tex-mode.el: Ensure uncompiled file is lo... b178870528 Remember password change for IMAP in Gnus (Bug#29692) a21dac18bb Add %DUMBFW to the default GnuTLS priority strings 780407cff1 Small fixes prompted by make check-declare 541a60108d Fix some custom groups e220d6e112 Fix fontification of first declaration within a C++ lambda... aa66da220c * src/data.c (Fadd_variable_watcher): Doc fix. f838210b01 Fix misfontification of C++ member initialization list aft... 232c6465ce Fix doc-string of Fbuffer_list 3f9aac68d7 Don't raise an extraneous frame (bug#29696) e7b1111155 Mention new strictness for &optional, &rest in arglists (B... 4cb8696e47 Don't misfontify "foo ()" inside C++ initialization parent... ce31e726ad Fixes for defcustoms, prompted by cus-test-opts aacd1e14fc * lisp/net/newst-backend.el (newsticker--raw-url-list-defa... 7e2f4d3d41 * lisp/htmlfontify.el (hfy-which-etags): Fix it. 52d2a690f6 Add missing :version tags revealed by cusver-check f5d0360234 Escape column-zero doc parens # Conflicts: # etc/NEWS
Diffstat (limited to 'lisp')
-rw-r--r--lisp/calendar/icalendar.el2
-rw-r--r--lisp/comint.el37
-rw-r--r--lisp/emacs-lisp/bytecomp.el1
-rw-r--r--lisp/epa.el1
-rw-r--r--lisp/eshell/em-tramp.el2
-rw-r--r--lisp/eshell/em-xtra.el2
-rw-r--r--lisp/files.el4
-rw-r--r--lisp/frame.el4
-rw-r--r--lisp/frameset.el28
-rw-r--r--lisp/gnus/gnus-art.el5
-rw-r--r--lisp/gnus/gnus-cloud.el2
-rw-r--r--lisp/gnus/mail-source.el3
-rw-r--r--lisp/gnus/message.el110
-rw-r--r--lisp/htmlfontify.el6
-rw-r--r--lisp/image-dired.el2
-rw-r--r--lisp/international/mule.el15
-rw-r--r--lisp/menu-bar.el4
-rw-r--r--lisp/net/gnutls.el6
-rw-r--r--lisp/net/mailcap.el1
-rw-r--r--lisp/net/newst-backend.el28
-rw-r--r--lisp/net/shr.el13
-rw-r--r--lisp/progmodes/cc-defs.el2
-rw-r--r--lisp/progmodes/cc-engine.el42
-rw-r--r--lisp/progmodes/cc-fonts.el14
-rw-r--r--lisp/progmodes/cc-langs.el38
-rw-r--r--lisp/progmodes/cc-vars.el7
-rw-r--r--lisp/progmodes/compile.el8
-rw-r--r--lisp/progmodes/flymake.el2
-rw-r--r--lisp/progmodes/grep.el1
-rw-r--r--lisp/progmodes/js.el1
-rw-r--r--lisp/progmodes/perl-mode.el1
-rw-r--r--lisp/progmodes/python.el3
-rw-r--r--lisp/progmodes/ruby-mode.el2
-rw-r--r--lisp/progmodes/verilog-mode.el8
-rw-r--r--lisp/textmodes/css-mode.el2
-rw-r--r--lisp/textmodes/less-css-mode.el7
-rw-r--r--lisp/textmodes/tex-mode.el9
-rw-r--r--lisp/textmodes/tildify.el2
-rw-r--r--lisp/time.el4
-rw-r--r--lisp/vc/cvs-status.el5
-rw-r--r--lisp/vc/diff-mode.el9
-rw-r--r--lisp/vc/emerge.el6
-rw-r--r--lisp/vc/smerge-mode.el10
-rw-r--r--lisp/vc/vc-hg.el2
-rw-r--r--lisp/vc/vc-hooks.el4
45 files changed, 293 insertions, 172 deletions
diff --git a/lisp/calendar/icalendar.el b/lisp/calendar/icalendar.el
index 129cd6d9ad3..27f1b0324e3 100644
--- a/lisp/calendar/icalendar.el
+++ b/lisp/calendar/icalendar.el
@@ -1310,7 +1310,7 @@ Returns an alist."
1310Argument ADVANCE-TIME is a number giving the time when the alarm 1310Argument ADVANCE-TIME is a number giving the time when the alarm
1311fires (minutes before the respective event). Argument ALARM-SPEC 1311fires (minutes before the respective event). Argument ALARM-SPEC
1312is a list which must be one of (audio), (display) or 1312is a list which must be one of (audio), (display) or
1313(email (ADDRESS1 ...)), see `icalendar-export-alarms'. Argument 1313\(email (ADDRESS1 ...)), see `icalendar-export-alarms'. Argument
1314SUMMARY is a string which contains a short description for the 1314SUMMARY is a string which contains a short description for the
1315alarm." 1315alarm."
1316 (let* ((action (car alarm-spec)) 1316 (let* ((action (car alarm-spec))
diff --git a/lisp/comint.el b/lisp/comint.el
index aa7dab28f32..5ee4e48d636 100644
--- a/lisp/comint.el
+++ b/lisp/comint.el
@@ -290,6 +290,7 @@ If `after-input', point will be positioned after the input typed
290by the user, but before the rest of the history entry that has 290by the user, but before the rest of the history entry that has
291been inserted. If `end-of-line', point will be positioned at the 291been inserted. If `end-of-line', point will be positioned at the
292end of the current logical (not visual) line after insertion." 292end of the current logical (not visual) line after insertion."
293 :version "26.1"
293 :type '(radio (const :tag "Stay after input" after-input) 294 :type '(radio (const :tag "Stay after input" after-input)
294 (const :tag "Move to end of line" end-of-line)) 295 (const :tag "Move to end of line" end-of-line))
295 :group 'comint) 296 :group 'comint)
@@ -458,6 +459,12 @@ executed once when the buffer is created."
458 :type 'hook 459 :type 'hook
459 :group 'comint) 460 :group 'comint)
460 461
462(defcustom comint-terminfo-terminal "dumb"
463 "Value to use for TERM when the system uses terminfo."
464 :type 'string
465 :group 'comint
466 :version "26.1")
467
461(defvar comint-mode-map 468(defvar comint-mode-map
462 (let ((map (make-sparse-keymap))) 469 (let ((map (make-sparse-keymap)))
463 ;; Keys: 470 ;; Keys:
@@ -816,19 +823,7 @@ series of processes in the same Comint buffer. The hook
816(defun comint-exec-1 (name buffer command switches) 823(defun comint-exec-1 (name buffer command switches)
817 (let ((process-environment 824 (let ((process-environment
818 (nconc 825 (nconc
819 ;; If using termcap, we specify `emacs' as the terminal type 826 (comint-term-environment)
820 ;; because that lets us specify a width.
821 ;; If using terminfo, we specify `dumb' because that is
822 ;; a defined terminal type. `emacs' is not a defined terminal type
823 ;; and there is no way for us to define it here.
824 ;; Some programs that use terminfo get very confused
825 ;; if TERM is not a valid terminal type.
826 ;; ;; There is similar code in compile.el.
827 (if (and (boundp 'system-uses-terminfo) system-uses-terminfo)
828 (list "TERM=dumb" "TERMCAP="
829 (format "COLUMNS=%d" (window-width)))
830 (list "TERM=emacs"
831 (format "TERMCAP=emacs:co#%d:tc=unknown:" (window-width))))
832 (list (format "INSIDE_EMACS=%s,comint" emacs-version)) 827 (list (format "INSIDE_EMACS=%s,comint" emacs-version))
833 process-environment)) 828 process-environment))
834 (default-directory 829 (default-directory
@@ -857,6 +852,22 @@ series of processes in the same Comint buffer. The hook
857 (set-process-coding-system proc decoding encoding)) 852 (set-process-coding-system proc decoding encoding))
858 proc)) 853 proc))
859 854
855(defun comint-term-environment ()
856 "Return an environment variable list for terminal configuration."
857 ;; If using termcap, we specify `emacs' as the terminal type
858 ;; because that lets us specify a width.
859 ;; If using terminfo, we default to `dumb' because that is
860 ;; a defined terminal type. `emacs' is not a defined terminal type
861 ;; and there is no way for us to define it here.
862 ;; Some programs that use terminfo get very confused
863 ;; if TERM is not a valid terminal type.
864 (if (and (boundp 'system-uses-terminfo) system-uses-terminfo)
865 (list (format "TERM=%s" comint-terminfo-terminal)
866 "TERMCAP="
867 (format "COLUMNS=%d" (window-width)))
868 (list "TERM=emacs"
869 (format "TERMCAP=emacs:co#%d:tc=unknown:" (window-width)))))
870
860(defun comint-nonblank-p (str) 871(defun comint-nonblank-p (str)
861 "Return non-nil if STR contains non-whitespace syntax." 872 "Return non-nil if STR contains non-whitespace syntax."
862 (not (string-match "\\`\\s *\\'" str))) 873 (not (string-match "\\`\\s *\\'" str)))
diff --git a/lisp/emacs-lisp/bytecomp.el b/lisp/emacs-lisp/bytecomp.el
index c898305d916..25f738cb8ec 100644
--- a/lisp/emacs-lisp/bytecomp.el
+++ b/lisp/emacs-lisp/bytecomp.el
@@ -236,6 +236,7 @@ This includes variable references and calls to functions such as `car'."
236 236
237(defcustom byte-compile-cond-use-jump-table t 237(defcustom byte-compile-cond-use-jump-table t
238 "Compile `cond' clauses to a jump table implementation (using a hash-table)." 238 "Compile `cond' clauses to a jump table implementation (using a hash-table)."
239 :version "26.1"
239 :group 'bytecomp 240 :group 'bytecomp
240 :type 'boolean) 241 :type 'boolean)
241 242
diff --git a/lisp/epa.el b/lisp/epa.el
index aca9aaa7d22..8e84b5b223d 100644
--- a/lisp/epa.el
+++ b/lisp/epa.el
@@ -40,6 +40,7 @@
40If t, replace the original text without any confirmation. 40If t, replace the original text without any confirmation.
41If nil, don't replace the original text and show the result in a new buffer. 41If nil, don't replace the original text and show the result in a new buffer.
42If neither t nor nil, ask user for confirmation." 42If neither t nor nil, ask user for confirmation."
43 :version "26.1"
43 :type '(choice (const :tag "Never" nil) 44 :type '(choice (const :tag "Never" nil)
44 (const :tag "Ask the user" ask) 45 (const :tag "Ask the user" ask)
45 (const :tag "Always" t)) 46 (const :tag "Always" t))
diff --git a/lisp/eshell/em-tramp.el b/lisp/eshell/em-tramp.el
index e322cea1e21..e2da3468aba 100644
--- a/lisp/eshell/em-tramp.el
+++ b/lisp/eshell/em-tramp.el
@@ -32,6 +32,8 @@
32 (require 'eshell) 32 (require 'eshell)
33 (require 'tramp)) 33 (require 'tramp))
34 34
35;; There are no items in this custom group, but eshell modules (ab)use
36;; custom groups.
35;;;###autoload 37;;;###autoload
36(progn 38(progn
37 (defgroup eshell-tramp nil 39 (defgroup eshell-tramp nil
diff --git a/lisp/eshell/em-xtra.el b/lisp/eshell/em-xtra.el
index 7b80f64d629..89814467d1f 100644
--- a/lisp/eshell/em-xtra.el
+++ b/lisp/eshell/em-xtra.el
@@ -29,6 +29,8 @@
29 (require 'pcomplete)) 29 (require 'pcomplete))
30(require 'compile) 30(require 'compile)
31 31
32;; There are no items in this custom group, but eshell modules (ab)use
33;; custom groups.
32;;;###autoload 34;;;###autoload
33(progn 35(progn
34(defgroup eshell-xtra nil 36(defgroup eshell-xtra nil
diff --git a/lisp/files.el b/lisp/files.el
index 8045ba5c22b..e474de6abad 100644
--- a/lisp/files.el
+++ b/lisp/files.el
@@ -5199,7 +5199,9 @@ Before and after saving the buffer, this function runs
5199This allows you to stop `save-some-buffers' from asking 5199This allows you to stop `save-some-buffers' from asking
5200about certain files that you'd usually rather not save." 5200about certain files that you'd usually rather not save."
5201 :group 'auto-save 5201 :group 'auto-save
5202 :type 'function 5202 ;; FIXME nil should not be a valid option, let alone the default,
5203 ;; eg so that add-function can be used.
5204 :type '(choice (const :tag "Default" nil) function)
5203 :version "26.1") 5205 :version "26.1")
5204 5206
5205(defun save-some-buffers (&optional arg pred) 5207(defun save-some-buffers (&optional arg pred)
diff --git a/lisp/frame.el b/lisp/frame.el
index 2e925325a9e..6f8d6a1cc9a 100644
--- a/lisp/frame.el
+++ b/lisp/frame.el
@@ -800,7 +800,7 @@ the user during startup."
800 (nreverse frame-initial-geometry-arguments)) 800 (nreverse frame-initial-geometry-arguments))
801 (cdr param-list)) 801 (cdr param-list))
802 802
803(declare-function x-focus-frame "frame.c" (frame)) 803(declare-function x-focus-frame "frame.c" (frame &optional noactivate))
804 804
805(defun select-frame-set-input-focus (frame &optional norecord) 805(defun select-frame-set-input-focus (frame &optional norecord)
806 "Select FRAME, raise it, and set input focus, if possible. 806 "Select FRAME, raise it, and set input focus, if possible.
@@ -1484,7 +1484,7 @@ FRAME."
1484 1484
1485(declare-function w32-mouse-absolute-pixel-position "w32fns.c") 1485(declare-function w32-mouse-absolute-pixel-position "w32fns.c")
1486(declare-function x-mouse-absolute-pixel-position "xfns.c") 1486(declare-function x-mouse-absolute-pixel-position "xfns.c")
1487(declare-function ns-mouse-absolute-pixel-position "nsfns.c") 1487(declare-function ns-mouse-absolute-pixel-position "nsfns.m")
1488 1488
1489(defun mouse-absolute-pixel-position () 1489(defun mouse-absolute-pixel-position ()
1490 "Return absolute position of mouse cursor in pixels. 1490 "Return absolute position of mouse cursor in pixels.
diff --git a/lisp/frameset.el b/lisp/frameset.el
index 16940f814a9..e2d26411e96 100644
--- a/lisp/frameset.el
+++ b/lisp/frameset.el
@@ -745,6 +745,8 @@ The relationships recorded for each frame are
745- `delete-before' via `frameset--delete-before' 745- `delete-before' via `frameset--delete-before'
746- `parent-frame' via `frameset--parent-frame' 746- `parent-frame' via `frameset--parent-frame'
747- `mouse-wheel-frame' via `frameset--mouse-wheel-frame' 747- `mouse-wheel-frame' via `frameset--mouse-wheel-frame'
748- `text-pixel-width' via `frameset--text-pixel-width'
749- `text-pixel-height' via `frameset--text-pixel-height'
748 750
749Internal use only." 751Internal use only."
750 ;; Record frames with their own minibuffer 752 ;; Record frames with their own minibuffer
@@ -791,7 +793,23 @@ Internal use only."
791 'frameset--mini 793 'frameset--mini
792 (cons nil 794 (cons nil
793 (and mb-frame 795 (and mb-frame
794 (frameset-frame-id mb-frame)))))))))) 796 (frameset-frame-id mb-frame)))))))))
797 ;; Now store text-pixel width and height if it differs from the calculated
798 ;; width and height and the frame is not fullscreen.
799 (dolist (frame frame-list)
800 (unless (frame-parameter frame 'fullscreen)
801 (unless (eq (* (frame-parameter frame 'width)
802 (frame-char-width frame))
803 (frame-text-width frame))
804 (set-frame-parameter
805 frame 'frameset--text-pixel-width
806 (frame-text-width frame)))
807 (unless (eq (* (frame-parameter frame 'height)
808 (frame-char-height frame))
809 (frame-text-height frame))
810 (set-frame-parameter
811 frame 'frameset--text-pixel-height
812 (frame-text-height frame))))))
795 813
796;;;###autoload 814;;;###autoload
797(cl-defun frameset-save (frame-list 815(cl-defun frameset-save (frame-list
@@ -1002,6 +1020,14 @@ Internal use only."
1002 (display (cdr (assq 'display filtered-cfg))) ;; post-filtering 1020 (display (cdr (assq 'display filtered-cfg))) ;; post-filtering
1003 alt-cfg frame) 1021 alt-cfg frame)
1004 1022
1023 ;; Use text-pixels for height and width, if available.
1024 (let ((text-pixel-width (cdr (assq 'frameset--text-pixel-width parameters)))
1025 (text-pixel-height (cdr (assq 'frameset--text-pixel-height parameters))))
1026 (when text-pixel-width
1027 (setf (alist-get 'width filtered-cfg) (cons 'text-pixels text-pixel-width)))
1028 (when text-pixel-height
1029 (setf (alist-get 'height filtered-cfg) (cons 'text-pixels text-pixel-height))))
1030
1005 (when fullscreen 1031 (when fullscreen
1006 ;; Currently Emacs has the limitation that it does not record the size 1032 ;; Currently Emacs has the limitation that it does not record the size
1007 ;; and position of a frame before maximizing it, so we cannot save & 1033 ;; and position of a frame before maximizing it, so we cannot save &
diff --git a/lisp/gnus/gnus-art.el b/lisp/gnus/gnus-art.el
index 6ee0d7b0231..0fd141201cb 100644
--- a/lisp/gnus/gnus-art.el
+++ b/lisp/gnus/gnus-art.el
@@ -527,7 +527,7 @@ each invocation of the saving commands."
527 "If non-nil, show the cursor in the Article buffer even when not selected." 527 "If non-nil, show the cursor in the Article buffer even when not selected."
528 :version "25.1" 528 :version "25.1"
529 :group 'gnus-article 529 :group 'gnus-article
530 :type 'bool) 530 :type 'boolean)
531 531
532(defcustom gnus-saved-headers gnus-visible-headers 532(defcustom gnus-saved-headers gnus-visible-headers
533 "Headers to keep if `gnus-save-all-headers' is nil. 533 "Headers to keep if `gnus-save-all-headers' is nil.
@@ -6711,8 +6711,7 @@ not have a face in `gnus-article-boring-faces'."
6711 (member keys nosave-but-article) 6711 (member keys nosave-but-article)
6712 (member keys nosave-in-article)) 6712 (member keys nosave-in-article))
6713 (let (func) 6713 (let (func)
6714 (save-window-excursion 6714 (with-current-buffer gnus-article-current-summary
6715 (pop-to-buffer gnus-article-current-summary)
6716 ;; We disable the pick minor mode commands. 6715 ;; We disable the pick minor mode commands.
6717 (let (gnus-pick-mode) 6716 (let (gnus-pick-mode)
6718 (setq func (key-binding keys t)))) 6717 (setq func (key-binding keys t))))
diff --git a/lisp/gnus/gnus-cloud.el b/lisp/gnus/gnus-cloud.el
index f3acd9e4c53..409fc53df78 100644
--- a/lisp/gnus/gnus-cloud.el
+++ b/lisp/gnus/gnus-cloud.el
@@ -51,6 +51,7 @@
51 51
52(defcustom gnus-cloud-storage-method (if (featurep 'epg) 'epg 'base64-gzip) 52(defcustom gnus-cloud-storage-method (if (featurep 'epg) 'epg 'base64-gzip)
53 "Storage method for cloud data, defaults to EPG if that's available." 53 "Storage method for cloud data, defaults to EPG if that's available."
54 :version "26.1"
54 :group 'gnus-cloud 55 :group 'gnus-cloud
55 :type '(radio (const :tag "No encoding" nil) 56 :type '(radio (const :tag "No encoding" nil)
56 (const :tag "Base64" base64) 57 (const :tag "Base64" base64)
@@ -59,6 +60,7 @@
59 60
60(defcustom gnus-cloud-interactive t 61(defcustom gnus-cloud-interactive t
61 "Whether Gnus Cloud changes should be confirmed." 62 "Whether Gnus Cloud changes should be confirmed."
63 :version "26.1"
62 :group 'gnus-cloud 64 :group 'gnus-cloud
63 :type 'boolean) 65 :type 'boolean)
64 66
diff --git a/lisp/gnus/mail-source.el b/lisp/gnus/mail-source.el
index 93f03be72d0..ef34c492545 100644
--- a/lisp/gnus/mail-source.el
+++ b/lisp/gnus/mail-source.el
@@ -1097,7 +1097,8 @@ This only works when `display-time' is enabled."
1097 ;; remember password 1097 ;; remember password
1098 (with-current-buffer buf 1098 (with-current-buffer buf
1099 (when (and imap-password 1099 (when (and imap-password
1100 (not (assoc from mail-source-password-cache))) 1100 (not (member (cons from imap-password)
1101 mail-source-password-cache)))
1101 (push (cons from imap-password) mail-source-password-cache))) 1102 (push (cons from imap-password) mail-source-password-cache)))
1102 ;; if predicate is nil, use all uids 1103 ;; if predicate is nil, use all uids
1103 (dolist (uid (imap-search (or predicate "1:*") buf)) 1104 (dolist (uid (imap-search (or predicate "1:*") buf))
diff --git a/lisp/gnus/message.el b/lisp/gnus/message.el
index 0f99cb697dc..6053d33223a 100644
--- a/lisp/gnus/message.el
+++ b/lisp/gnus/message.el
@@ -1427,152 +1427,142 @@ starting with `not' and followed by regexps."
1427(defface message-header-to 1427(defface message-header-to
1428 '((((class color) 1428 '((((class color)
1429 (background dark)) 1429 (background dark))
1430 (:foreground "DarkOliveGreen1" :bold t)) 1430 :foreground "DarkOliveGreen1" :bold t)
1431 (((class color) 1431 (((class color)
1432 (background light)) 1432 (background light))
1433 (:foreground "MidnightBlue" :bold t)) 1433 :foreground "MidnightBlue" :bold t)
1434 (t 1434 (t
1435 (:bold t :italic t))) 1435 :bold t :italic t))
1436 "Face used for displaying To headers." 1436 "Face used for displaying To headers."
1437 :group 'message-faces) 1437 :group 'message-faces)
1438;; backward-compatibility alias 1438(define-obsolete-face-alias 'message-header-to-face
1439(put 'message-header-to-face 'face-alias 'message-header-to) 1439 'message-header-to "22.1")
1440(put 'message-header-to-face 'obsolete-face "22.1")
1441 1440
1442(defface message-header-cc 1441(defface message-header-cc
1443 '((((class color) 1442 '((((class color)
1444 (background dark)) 1443 (background dark))
1445 (:foreground "chartreuse1" :bold t)) 1444 :foreground "chartreuse1" :bold t)
1446 (((class color) 1445 (((class color)
1447 (background light)) 1446 (background light))
1448 (:foreground "MidnightBlue")) 1447 :foreground "MidnightBlue")
1449 (t 1448 (t
1450 (:bold t))) 1449 :bold t))
1451 "Face used for displaying Cc headers." 1450 "Face used for displaying Cc headers."
1452 :group 'message-faces) 1451 :group 'message-faces)
1453;; backward-compatibility alias 1452(define-obsolete-face-alias 'message-header-cc-face
1454(put 'message-header-cc-face 'face-alias 'message-header-cc) 1453 'message-header-cc "22.1")
1455(put 'message-header-cc-face 'obsolete-face "22.1")
1456 1454
1457(defface message-header-subject 1455(defface message-header-subject
1458 '((((class color) 1456 '((((class color)
1459 (background dark)) 1457 (background dark))
1460 (:foreground "OliveDrab1")) 1458 :foreground "OliveDrab1")
1461 (((class color) 1459 (((class color)
1462 (background light)) 1460 (background light))
1463 (:foreground "navy blue" :bold t)) 1461 :foreground "navy blue" :bold t)
1464 (t 1462 (t
1465 (:bold t))) 1463 :bold t))
1466 "Face used for displaying Subject headers." 1464 "Face used for displaying Subject headers."
1467 :group 'message-faces) 1465 :group 'message-faces)
1468;; backward-compatibility alias 1466(define-obsolete-face-alias 'message-header-subject-face
1469(put 'message-header-subject-face 'face-alias 'message-header-subject) 1467 'message-header-subject "22.1")
1470(put 'message-header-subject-face 'obsolete-face "22.1")
1471 1468
1472(defface message-header-newsgroups 1469(defface message-header-newsgroups
1473 '((((class color) 1470 '((((class color)
1474 (background dark)) 1471 (background dark))
1475 (:foreground "yellow" :bold t :italic t)) 1472 :foreground "yellow" :bold t :italic t)
1476 (((class color) 1473 (((class color)
1477 (background light)) 1474 (background light))
1478 (:foreground "blue4" :bold t :italic t)) 1475 :foreground "blue4" :bold t :italic t)
1479 (t 1476 (t
1480 (:bold t :italic t))) 1477 :bold t :italic t))
1481 "Face used for displaying Newsgroups headers." 1478 "Face used for displaying Newsgroups headers."
1482 :group 'message-faces) 1479 :group 'message-faces)
1483;; backward-compatibility alias 1480(define-obsolete-face-alias 'message-header-newsgroups-face
1484(put 'message-header-newsgroups-face 'face-alias 'message-header-newsgroups) 1481 'message-header-newsgroups "22.1")
1485(put 'message-header-newsgroups-face 'obsolete-face "22.1")
1486 1482
1487(defface message-header-other 1483(defface message-header-other
1488 '((((class color) 1484 '((((class color)
1489 (background dark)) 1485 (background dark))
1490 (:foreground "VioletRed1")) 1486 :foreground "VioletRed1")
1491 (((class color) 1487 (((class color)
1492 (background light)) 1488 (background light))
1493 (:foreground "steel blue")) 1489 :foreground "steel blue")
1494 (t 1490 (t
1495 (:bold t :italic t))) 1491 :bold t :italic t))
1496 "Face used for displaying other headers." 1492 "Face used for displaying other headers."
1497 :group 'message-faces) 1493 :group 'message-faces)
1498;; backward-compatibility alias 1494(define-obsolete-face-alias 'message-header-other-face
1499(put 'message-header-other-face 'face-alias 'message-header-other) 1495 'message-header-other "22.1")
1500(put 'message-header-other-face 'obsolete-face "22.1")
1501 1496
1502(defface message-header-name 1497(defface message-header-name
1503 '((((class color) 1498 '((((class color)
1504 (background dark)) 1499 (background dark))
1505 (:foreground "green")) 1500 :foreground "green")
1506 (((class color) 1501 (((class color)
1507 (background light)) 1502 (background light))
1508 (:foreground "cornflower blue")) 1503 :foreground "cornflower blue")
1509 (t 1504 (t
1510 (:bold t))) 1505 :bold t))
1511 "Face used for displaying header names." 1506 "Face used for displaying header names."
1512 :group 'message-faces) 1507 :group 'message-faces)
1513;; backward-compatibility alias 1508(define-obsolete-face-alias 'message-header-name-face
1514(put 'message-header-name-face 'face-alias 'message-header-name) 1509 'message-header-name "22.1")
1515(put 'message-header-name-face 'obsolete-face "22.1")
1516 1510
1517(defface message-header-xheader 1511(defface message-header-xheader
1518 '((((class color) 1512 '((((class color)
1519 (background dark)) 1513 (background dark))
1520 (:foreground "DeepSkyBlue1")) 1514 :foreground "DeepSkyBlue1")
1521 (((class color) 1515 (((class color)
1522 (background light)) 1516 (background light))
1523 (:foreground "blue")) 1517 :foreground "blue")
1524 (t 1518 (t
1525 (:bold t))) 1519 :bold t))
1526 "Face used for displaying X-Header headers." 1520 "Face used for displaying X-Header headers."
1527 :group 'message-faces) 1521 :group 'message-faces)
1528;; backward-compatibility alias 1522(define-obsolete-face-alias 'message-header-xheader-face
1529(put 'message-header-xheader-face 'face-alias 'message-header-xheader) 1523 'message-header-xheader "22.1")
1530(put 'message-header-xheader-face 'obsolete-face "22.1")
1531 1524
1532(defface message-separator 1525(defface message-separator
1533 '((((class color) 1526 '((((class color)
1534 (background dark)) 1527 (background dark))
1535 (:foreground "LightSkyBlue1")) 1528 :foreground "LightSkyBlue1")
1536 (((class color) 1529 (((class color)
1537 (background light)) 1530 (background light))
1538 (:foreground "brown")) 1531 :foreground "brown")
1539 (t 1532 (t
1540 (:bold t))) 1533 :bold t))
1541 "Face used for displaying the separator." 1534 "Face used for displaying the separator."
1542 :group 'message-faces) 1535 :group 'message-faces)
1543;; backward-compatibility alias 1536(define-obsolete-face-alias 'message-separator-face
1544(put 'message-separator-face 'face-alias 'message-separator) 1537 'message-separator "22.1")
1545(put 'message-separator-face 'obsolete-face "22.1")
1546 1538
1547(defface message-cited-text 1539(defface message-cited-text
1548 '((((class color) 1540 '((((class color)
1549 (background dark)) 1541 (background dark))
1550 (:foreground "LightPink1")) 1542 :foreground "LightPink1")
1551 (((class color) 1543 (((class color)
1552 (background light)) 1544 (background light))
1553 (:foreground "red")) 1545 :foreground "red")
1554 (t 1546 (t
1555 (:bold t))) 1547 :bold t))
1556 "Face used for displaying cited text names." 1548 "Face used for displaying cited text names."
1557 :group 'message-faces) 1549 :group 'message-faces)
1558;; backward-compatibility alias 1550(define-obsolete-face-alias 'message-cited-text-face
1559(put 'message-cited-text-face 'face-alias 'message-cited-text) 1551 'message-cited-text "22.1")
1560(put 'message-cited-text-face 'obsolete-face "22.1")
1561 1552
1562(defface message-mml 1553(defface message-mml
1563 '((((class color) 1554 '((((class color)
1564 (background dark)) 1555 (background dark))
1565 (:foreground "MediumSpringGreen")) 1556 :foreground "MediumSpringGreen")
1566 (((class color) 1557 (((class color)
1567 (background light)) 1558 (background light))
1568 (:foreground "ForestGreen")) 1559 :foreground "ForestGreen")
1569 (t 1560 (t
1570 (:bold t))) 1561 :bold t))
1571 "Face used for displaying MML." 1562 "Face used for displaying MML."
1572 :group 'message-faces) 1563 :group 'message-faces)
1573;; backward-compatibility alias 1564(define-obsolete-face-alias 'message-mml-face
1574(put 'message-mml-face 'face-alias 'message-mml) 1565 'message-mml "22.1")
1575(put 'message-mml-face 'obsolete-face "22.1")
1576 1566
1577(defun message-font-lock-make-header-matcher (regexp) 1567(defun message-font-lock-make-header-matcher (regexp)
1578 (let ((form 1568 (let ((form
diff --git a/lisp/htmlfontify.el b/lisp/htmlfontify.el
index cb4c83d33e0..aa7cf430a4d 100644
--- a/lisp/htmlfontify.el
+++ b/lisp/htmlfontify.el
@@ -370,8 +370,8 @@ commands in `hfy-etags-cmd-alist'."
370 (when (eq (call-process hfy-etags-bin nil t nil "--version") 0) 370 (when (eq (call-process hfy-etags-bin nil t nil "--version") 0)
371 (goto-char (point-min)) 371 (goto-char (point-min))
372 (cond 372 (cond
373 ((looking-at-p "exube") "exuberant ctags") 373 ((search-forward "exube" nil t) "exuberant ctags")
374 ((looking-at-p "GNU E") "emacs etags"))) 374 ((search-forward "GNU E" nil t) "emacs etags")))
375 ;; Return nil if the etags binary isn't executable (Bug#25468). 375 ;; Return nil if the etags binary isn't executable (Bug#25468).
376 (file-error nil)))) 376 (file-error nil))))
377 377
@@ -426,7 +426,7 @@ Some valid class specification elements are:\n
426 (type lucid) 426 (type lucid)
427Multiple values for a tag may be combined, to indicate that any one or more 427Multiple values for a tag may be combined, to indicate that any one or more
428of these values in the specification key constitutes a match, eg:\n 428of these values in the specification key constitutes a match, eg:\n
429((class color grayscale) (type tty)) would match any of:\n 429\((class color grayscale) (type tty)) would match any of:\n
430 ((class color)) 430 ((class color))
431 ((class grayscale)) 431 ((class grayscale))
432 ((class color grayscale)) 432 ((class color grayscale))
diff --git a/lisp/image-dired.el b/lisp/image-dired.el
index 175d9df5e8c..e8046af3c0b 100644
--- a/lisp/image-dired.el
+++ b/lisp/image-dired.el
@@ -305,6 +305,7 @@ temporary file name (typically generated by pnqnq)"
305 305
306(defcustom image-dired-cmd-optipng-program (executable-find "optipng") 306(defcustom image-dired-cmd-optipng-program (executable-find "optipng")
307 "The file name of the `optipng' program." 307 "The file name of the `optipng' program."
308 :version "26.1"
308 :type '(choice (const :tag "Not Set" nil) file) 309 :type '(choice (const :tag "Not Set" nil) file)
309 :group 'image-dired) 310 :group 'image-dired)
310 311
@@ -312,6 +313,7 @@ temporary file name (typically generated by pnqnq)"
312 "Arguments passed to `image-dired-optipng-program'. 313 "Arguments passed to `image-dired-optipng-program'.
313Available format specifiers are described in 314Available format specifiers are described in
314`image-dired-cmd-create-thumbnail-options'." 315`image-dired-cmd-create-thumbnail-options'."
316 :version "26.1"
315 :type '(repeat (string :tag "Argument")) 317 :type '(repeat (string :tag "Argument"))
316 :link '(url-link "man:optipng(1)") 318 :link '(url-link "man:optipng(1)")
317 :group 'image-dired) 319 :group 'image-dired)
diff --git a/lisp/international/mule.el b/lisp/international/mule.el
index 857fa800eb4..81c04db90e9 100644
--- a/lisp/international/mule.el
+++ b/lisp/international/mule.el
@@ -2493,7 +2493,17 @@ This function is intended to be added to `auto-coding-functions'."
2493 (let* ((match (match-string 1)) 2493 (let* ((match (match-string 1))
2494 (sym (intern (downcase match)))) 2494 (sym (intern (downcase match))))
2495 (if (coding-system-p sym) 2495 (if (coding-system-p sym)
2496 sym 2496 ;; If the encoding tag is UTF-8 and the buffer's
2497 ;; encoding is one of the variants of UTF-8, use the
2498 ;; buffer's encoding. This allows, e.g., saving an
2499 ;; XML file as UTF-8 with BOM when the tag says UTF-8.
2500 (let ((sym-type (coding-system-type sym))
2501 (bfcs-type
2502 (coding-system-type buffer-file-coding-system)))
2503 (if (and (coding-system-equal 'utf-8 sym-type)
2504 (coding-system-equal 'utf-8 bfcs-type))
2505 buffer-file-coding-system
2506 sym))
2497 (message "Warning: unknown coding system \"%s\"" match) 2507 (message "Warning: unknown coding system \"%s\"" match)
2498 nil)) 2508 nil))
2499 ;; Files without an encoding tag should be UTF-8. But users 2509 ;; Files without an encoding tag should be UTF-8. But users
@@ -2506,7 +2516,8 @@ This function is intended to be added to `auto-coding-functions'."
2506 (coding-system-base 2516 (coding-system-base
2507 (detect-coding-region (point-min) size t))))) 2517 (detect-coding-region (point-min) size t)))))
2508 ;; Pure ASCII always comes back as undecided. 2518 ;; Pure ASCII always comes back as undecided.
2509 (if (memq detected '(utf-8 undecided)) 2519 (if (memq detected
2520 '(utf-8 'utf-8-with-signature 'utf-8-hfs undecided))
2510 'utf-8 2521 'utf-8
2511 (warn "File contents detected as %s. 2522 (warn "File contents detected as %s.
2512 Consider adding an encoding attribute to the xml declaration, 2523 Consider adding an encoding attribute to the xml declaration,
diff --git a/lisp/menu-bar.el b/lisp/menu-bar.el
index 2b38cb5f2b0..5c96663316e 100644
--- a/lisp/menu-bar.el
+++ b/lisp/menu-bar.el
@@ -2294,8 +2294,8 @@ It must accept a buffer as its only required argument.")
2294(define-minor-mode menu-bar-mode 2294(define-minor-mode menu-bar-mode
2295 "Toggle display of a menu bar on each frame (Menu Bar mode). 2295 "Toggle display of a menu bar on each frame (Menu Bar mode).
2296With a prefix argument ARG, enable Menu Bar mode if ARG is 2296With a prefix argument ARG, enable Menu Bar mode if ARG is
2297positive, and disable it otherwise. If called from Lisp, enable 2297positive, and disable it otherwise. If called from Lisp, also
2298Menu Bar mode if ARG is omitted or nil. 2298enable Menu Bar mode if ARG is omitted or nil.
2299 2299
2300This command applies to all frames that exist and frames to be 2300This command applies to all frames that exist and frames to be
2301created in the future." 2301created in the future."
diff --git a/lisp/net/gnutls.el b/lisp/net/gnutls.el
index 98f7b585588..a406b0b07fd 100644
--- a/lisp/net/gnutls.el
+++ b/lisp/net/gnutls.el
@@ -217,7 +217,7 @@ For the meaning of the rest of the parameters, see `gnutls-boot-parameters'."
217 217
218TYPE is `gnutls-x509pki' (default) or `gnutls-anon'. Use nil for the default. 218TYPE is `gnutls-x509pki' (default) or `gnutls-anon'. Use nil for the default.
219HOSTNAME is the remote hostname. It must be a valid string. 219HOSTNAME is the remote hostname. It must be a valid string.
220PRIORITY-STRING is as per the GnuTLS docs, default is \"NORMAL\". 220PRIORITY-STRING is as per the GnuTLS docs, default is based on \"NORMAL\".
221TRUSTFILES is a list of CA bundles. It defaults to `gnutls-trustfiles'. 221TRUSTFILES is a list of CA bundles. It defaults to `gnutls-trustfiles'.
222CRLFILES is a list of CRL files. 222CRLFILES is a list of CRL files.
223KEYLIST is an alist of (client key file, client cert file) pairs. 223KEYLIST is an alist of (client key file, client cert file) pairs.
@@ -265,11 +265,11 @@ defaults to GNUTLS_VERIFY_ALLOW_X509_V1_CA_CRT."
265 (priority-string (or priority-string 265 (priority-string (or priority-string
266 (cond 266 (cond
267 ((eq type 'gnutls-anon) 267 ((eq type 'gnutls-anon)
268 "NORMAL:+ANON-DH:!ARCFOUR-128") 268 "NORMAL:+ANON-DH:!ARCFOUR-128:%DUMBFW")
269 ((eq type 'gnutls-x509pki) 269 ((eq type 'gnutls-x509pki)
270 (if gnutls-algorithm-priority 270 (if gnutls-algorithm-priority
271 (upcase gnutls-algorithm-priority) 271 (upcase gnutls-algorithm-priority)
272 "NORMAL"))))) 272 "NORMAL:%DUMBFW")))))
273 (verify-error (or verify-error 273 (verify-error (or verify-error
274 ;; this uses the value of `gnutls-verify-error' 274 ;; this uses the value of `gnutls-verify-error'
275 (cond 275 (cond
diff --git a/lisp/net/mailcap.el b/lisp/net/mailcap.el
index b4b38707c89..be1a171cd48 100644
--- a/lisp/net/mailcap.el
+++ b/lisp/net/mailcap.el
@@ -99,6 +99,7 @@ When selecting a viewer for a given MIME type, the first viewer
99in this list with a matching MIME-TYPE and successful TEST is 99in this list with a matching MIME-TYPE and successful TEST is
100selected. Only if none matches, the standard `mailcap-mime-data' 100selected. Only if none matches, the standard `mailcap-mime-data'
101is consulted." 101is consulted."
102 :version "26.1"
102 :type '(repeat 103 :type '(repeat
103 (list 104 (list
104 (choice (function :tag "Function or mode") 105 (choice (function :tag "Function or mode")
diff --git a/lisp/net/newst-backend.el b/lisp/net/newst-backend.el
index 0b3881428e2..00e81f8b5e2 100644
--- a/lisp/net/newst-backend.el
+++ b/lisp/net/newst-backend.el
@@ -64,9 +64,12 @@ considered to be running if the newsticker timer list is not empty."
64 "Aggregator for RSS and Atom feeds." 64 "Aggregator for RSS and Atom feeds."
65 :group 'applications) 65 :group 'applications)
66 66
67;; Hard-coding URLs like this is a recipe for propagating obsolete info.
67(defconst newsticker--raw-url-list-defaults 68(defconst newsticker--raw-url-list-defaults
68 '(("CNET News.com" 69 '(
69 "http://export.cnet.com/export/feeds/news/rss/1,11176,,00.xml") 70 ;; 2017/12: no response.
71;;; ("CNET News.com"
72;;; "http://export.cnet.com/export/feeds/news/rss/1,11176,,00.xml")
70 ("Debian Security Advisories" 73 ("Debian Security Advisories"
71 "http://www.debian.org/security/dsa.en.rdf") 74 "http://www.debian.org/security/dsa.en.rdf")
72 ("Debian Security Advisories - Long format" 75 ("Debian Security Advisories - Long format"
@@ -76,23 +79,24 @@ considered to be running if the newsticker timer list is not empty."
76 nil 79 nil
77 3600) 80 3600)
78 ("LWN (Linux Weekly News)" 81 ("LWN (Linux Weekly News)"
79 "http://lwn.net/headlines/rss") 82 "https://lwn.net/headlines/rss")
80 ("NY Times: Technology" 83 ;; Not updated since 2010.
81 "http://partners.userland.com/nytRss/technology.xml") 84;;; ("NY Times: Technology"
82 ("NY Times" 85;;; "http://www.nytimes.com/services/xml/rss/userland/Technology.xml")
83 "http://partners.userland.com/nytRss/nytHomepage.xml") 86;;; ("NY Times"
87;;; "http://www.nytimes.com/services/xml/rss/userland/HomePage.xml")
84 ("Quote of the day" 88 ("Quote of the day"
85 "http://www.quotationspage.com/data/qotd.rss" 89 "http://feeds.feedburner.com/quotationspage/qotd"
86 "07:00" 90 "07:00"
87 86400) 91 86400)
88 ("The Register" 92 ("The Register"
89 "http://www.theregister.co.uk/tonys/slashdot.rdf") 93 "https://www.theregister.co.uk/headlines.rss")
90 ("slashdot" 94 ("slashdot"
91 "http://slashdot.org/index.rss" 95 "http://rss.slashdot.org/Slashdot/slashdot"
92 nil 96 nil
93 3600) ;/. will ban you if under 3600 seconds! 97 3600) ;/. will ban you if under 3600 seconds!
94 ("Wired News" 98 ("Wired News"
95 "http://www.wired.com/news_drop/netcenter/netcenter.rdf") 99 "https://www.wired.com/feed/rss")
96 ("Heise News (german)" 100 ("Heise News (german)"
97 "http://www.heise.de/newsticker/heise.rdf") 101 "http://www.heise.de/newsticker/heise.rdf")
98 ("Tagesschau (german)" 102 ("Tagesschau (german)"
@@ -158,7 +162,7 @@ value effective."
158 162
159(defcustom newsticker-url-list-defaults 163(defcustom newsticker-url-list-defaults
160 '(("Emacs Wiki" 164 '(("Emacs Wiki"
161 "http://www.emacswiki.org/cgi-bin/wiki.pl?action=rss" 165 "https://www.emacswiki.org/emacs?action=rss"
162 nil 166 nil
163 3600)) 167 3600))
164 "A customizable list of news feeds to select from. 168 "A customizable list of news feeds to select from.
diff --git a/lisp/net/shr.el b/lisp/net/shr.el
index ad5d869531c..c505f25a5a9 100644
--- a/lisp/net/shr.el
+++ b/lisp/net/shr.el
@@ -149,7 +149,7 @@ cid: URL as the argument.")
149 "Alist of tag/function pairs used to alter how shr renders certain tags. 149 "Alist of tag/function pairs used to alter how shr renders certain tags.
150For instance, eww uses this to alter rendering of title, forms 150For instance, eww uses this to alter rendering of title, forms
151and other things: 151and other things:
152((title . eww-tag-title) 152\((title . eww-tag-title)
153 (form . eww-tag-form) 153 (form . eww-tag-form)
154 ...)") 154 ...)")
155 155
@@ -591,9 +591,14 @@ size, and full-buffer size."
591(defun shr-string-pixel-width (string) 591(defun shr-string-pixel-width (string)
592 (if (not shr-use-fonts) 592 (if (not shr-use-fonts)
593 (length string) 593 (length string)
594 (with-temp-buffer 594 ;; Save and restore point across with-temp-buffer, since
595 (insert string) 595 ;; shr-pixel-column uses save-window-excursion, which can reset
596 (shr-pixel-column)))) 596 ;; point to 1.
597 (let ((pt (point)))
598 (with-temp-buffer
599 (insert string)
600 (shr-pixel-column))
601 (goto-char pt))))
597 602
598(defsubst shr--translate-insertion-chars () 603(defsubst shr--translate-insertion-chars ()
599 ;; Remove soft hyphens. 604 ;; Remove soft hyphens.
diff --git a/lisp/progmodes/cc-defs.el b/lisp/progmodes/cc-defs.el
index bff1c9eb65d..973d97c2560 100644
--- a/lisp/progmodes/cc-defs.el
+++ b/lisp/progmodes/cc-defs.el
@@ -87,7 +87,7 @@
87 87
88;;; Variables also used at compile time. 88;;; Variables also used at compile time.
89 89
90(defconst c-version "5.33" 90(defconst c-version "5.33.1"
91 "CC Mode version number.") 91 "CC Mode version number.")
92 92
93(defconst c-version-sym (intern c-version)) 93(defconst c-version-sym (intern c-version))
diff --git a/lisp/progmodes/cc-engine.el b/lisp/progmodes/cc-engine.el
index ab0204cb961..12ec8f74fea 100644
--- a/lisp/progmodes/cc-engine.el
+++ b/lisp/progmodes/cc-engine.el
@@ -7572,8 +7572,8 @@ comment at the start of cc-engine.el for more info."
7572 7572
7573 ;; Skip leading type modifiers. If any are found we know it's a 7573 ;; Skip leading type modifiers. If any are found we know it's a
7574 ;; prefix of a type. 7574 ;; prefix of a type.
7575 (when c-opt-type-modifier-key ; e.g. "const" "volatile", but NOT "typedef" 7575 (when c-opt-type-modifier-prefix-key ; e.g. "const" "volatile", but NOT "typedef"
7576 (while (looking-at c-opt-type-modifier-key) 7576 (while (looking-at c-opt-type-modifier-prefix-key)
7577 (goto-char (match-end 1)) 7577 (goto-char (match-end 1))
7578 (c-forward-syntactic-ws) 7578 (c-forward-syntactic-ws)
7579 (setq res 'prefix))) 7579 (setq res 'prefix)))
@@ -8167,9 +8167,9 @@ comment at the start of cc-engine.el for more info."
8167 ;; If a declaration is parsed: 8167 ;; If a declaration is parsed:
8168 ;; 8168 ;;
8169 ;; The point is left at the first token after the first complete 8169 ;; The point is left at the first token after the first complete
8170 ;; declarator, if there is one. The return value is a list of 4 elements, 8170 ;; declarator, if there is one. The return value is a list of 5 elements,
8171 ;; where the first is the position of the first token in the declarator. 8171 ;; where the first is the position of the first token in the declarator.
8172 ;; (See below for the other three.) 8172 ;; (See below for the other four.)
8173 ;; Some examples: 8173 ;; Some examples:
8174 ;; 8174 ;;
8175 ;; void foo (int a, char *b) stuff ... 8175 ;; void foo (int a, char *b) stuff ...
@@ -8210,7 +8210,9 @@ comment at the start of cc-engine.el for more info."
8210 ;; 8210 ;;
8211 ;; The third element of the return value is non-nil when the declaration 8211 ;; The third element of the return value is non-nil when the declaration
8212 ;; parsed might be an expression. The fourth element is the position of 8212 ;; parsed might be an expression. The fourth element is the position of
8213 ;; the start of the type identifier. 8213 ;; the start of the type identifier. The fifth element is t if either
8214 ;; CONTEXT was 'top, or the declaration is detected to be treated as top
8215 ;; level (e.g. with the keyword "extern").
8214 ;; 8216 ;;
8215 ;; If a cast is parsed: 8217 ;; If a cast is parsed:
8216 ;; 8218 ;;
@@ -8308,6 +8310,9 @@ comment at the start of cc-engine.el for more info."
8308 ;; Set when the symbol before `preceding-token-end' is known to 8310 ;; Set when the symbol before `preceding-token-end' is known to
8309 ;; terminate the previous construct, or when we're at point-min. 8311 ;; terminate the previous construct, or when we're at point-min.
8310 at-decl-start 8312 at-decl-start
8313 ;; Set when we have encountered a keyword (e.g. "extern") which
8314 ;; causes the following declaration to be treated as though top-level.
8315 make-top
8311 ;; Save `c-record-type-identifiers' and 8316 ;; Save `c-record-type-identifiers' and
8312 ;; `c-record-ref-identifiers' since ranges are recorded 8317 ;; `c-record-ref-identifiers' since ranges are recorded
8313 ;; speculatively and should be thrown away if it turns out 8318 ;; speculatively and should be thrown away if it turns out
@@ -8339,7 +8344,9 @@ comment at the start of cc-engine.el for more info."
8339 8344
8340 (cond 8345 (cond
8341 ;; Look for a specifier keyword clause. 8346 ;; Look for a specifier keyword clause.
8342 ((or (looking-at c-prefix-spec-kwds-re) 8347 ((or (and (looking-at c-make-top-level-key)
8348 (setq make-top t))
8349 (looking-at c-prefix-spec-kwds-re)
8343 (and (c-major-mode-is 'java-mode) 8350 (and (c-major-mode-is 'java-mode)
8344 (looking-at "@[A-Za-z0-9]+"))) 8351 (looking-at "@[A-Za-z0-9]+")))
8345 (save-match-data 8352 (save-match-data
@@ -8609,7 +8616,7 @@ comment at the start of cc-engine.el for more info."
8609 ;; construct here in C, since we want to recognize this as a 8616 ;; construct here in C, since we want to recognize this as a
8610 ;; typeless function declaration. 8617 ;; typeless function declaration.
8611 (not (and (c-major-mode-is 'c-mode) 8618 (not (and (c-major-mode-is 'c-mode)
8612 (eq context 'top) 8619 (or (eq context 'top) make-top)
8613 (eq (char-after) ?\))))) 8620 (eq (char-after) ?\)))))
8614 (if (eq (char-after) ?\)) 8621 (if (eq (char-after) ?\))
8615 (when (> paren-depth 0) 8622 (when (> paren-depth 0)
@@ -8657,7 +8664,7 @@ comment at the start of cc-engine.el for more info."
8657 ;; Recognize a top-level typeless 8664 ;; Recognize a top-level typeless
8658 ;; function declaration in C. 8665 ;; function declaration in C.
8659 (and (c-major-mode-is 'c-mode) 8666 (and (c-major-mode-is 'c-mode)
8660 (eq context 'top) 8667 (or (eq context 'top) make-top)
8661 (eq (char-after) ?\)))))))) 8668 (eq (char-after) ?\))))))))
8662 (setq pos (c-up-list-forward (point))) 8669 (setq pos (c-up-list-forward (point)))
8663 (eq (char-before pos) ?\))) 8670 (eq (char-before pos) ?\)))
@@ -8914,6 +8921,7 @@ comment at the start of cc-engine.el for more info."
8914 (when (and got-identifier 8921 (when (and got-identifier
8915 (looking-at c-after-suffixed-type-decl-key) 8922 (looking-at c-after-suffixed-type-decl-key)
8916 (or (eq context 'top) 8923 (or (eq context 'top)
8924 make-top
8917 (and (eq context nil) 8925 (and (eq context nil)
8918 (match-beginning 1))) 8926 (match-beginning 1)))
8919 (if (and got-parens 8927 (if (and got-parens
@@ -9080,7 +9088,7 @@ comment at the start of cc-engine.el for more info."
9080 ;; CASE 19 9088 ;; CASE 19
9081 (or (eq context 'decl) 9089 (or (eq context 'decl)
9082 (and (c-major-mode-is 'c-mode) 9090 (and (c-major-mode-is 'c-mode)
9083 (eq context 'top)))))) 9091 (or (eq context 'top) make-top))))))
9084 9092
9085 ;; The point is now after the type decl expression. 9093 ;; The point is now after the type decl expression.
9086 9094
@@ -9185,7 +9193,8 @@ comment at the start of cc-engine.el for more info."
9185 (and (or at-type-decl at-typedef) 9193 (and (or at-type-decl at-typedef)
9186 (cons at-type-decl at-typedef)) 9194 (cons at-type-decl at-typedef))
9187 maybe-expression 9195 maybe-expression
9188 type-start)) 9196 type-start
9197 (or (eq context 'top) make-top)))
9189 9198
9190 (t 9199 (t
9191 ;; False alarm. Restore the recorded ranges. 9200 ;; False alarm. Restore the recorded ranges.
@@ -10431,7 +10440,7 @@ comment at the start of cc-engine.el for more info."
10431 c-decl-block-key)) 10440 c-decl-block-key))
10432 (braceassignp 'dontknow) 10441 (braceassignp 'dontknow)
10433 inexpr-brace-list bufpos macro-start res pos after-type-id-pos 10442 inexpr-brace-list bufpos macro-start res pos after-type-id-pos
10434 in-paren) 10443 in-paren parens-before-brace)
10435 10444
10436 (setq res (c-backward-token-2 1 t lim)) 10445 (setq res (c-backward-token-2 1 t lim))
10437 ;; Checks to do only on the first sexp before the brace. 10446 ;; Checks to do only on the first sexp before the brace.
@@ -10449,6 +10458,9 @@ comment at the start of cc-engine.el for more info."
10449 ((and (looking-at c-symbol-start) 10458 ((and (looking-at c-symbol-start)
10450 (not (looking-at c-keywords-regexp))) 10459 (not (looking-at c-keywords-regexp)))
10451 (setq after-type-id-pos (point))) 10460 (setq after-type-id-pos (point)))
10461 ((eq (char-after) ?\()
10462 (setq parens-before-brace t)
10463 nil)
10452 (t nil)) 10464 (t nil))
10453 (save-excursion 10465 (save-excursion
10454 (cond 10466 (cond
@@ -10497,6 +10509,14 @@ comment at the start of cc-engine.el for more info."
10497 ;; Single identifier between '(' and '{'. We have a bracelist. 10509 ;; Single identifier between '(' and '{'. We have a bracelist.
10498 (cons after-type-id-pos 'in-paren)) 10510 (cons after-type-id-pos 'in-paren))
10499 10511
10512 ;; Are we at the parens of a C++ lambda expression?
10513 ((and parens-before-brace
10514 (save-excursion
10515 (and
10516 (zerop (c-backward-token-2 1 t lim))
10517 (c-looking-at-c++-lambda-capture-list))))
10518 nil) ; a lambda expression isn't a brace list.
10519
10500 (t 10520 (t
10501 (goto-char pos) 10521 (goto-char pos)
10502 ;; Checks to do on all sexps before the brace, up to the 10522 ;; Checks to do on all sexps before the brace, up to the
diff --git a/lisp/progmodes/cc-fonts.el b/lisp/progmodes/cc-fonts.el
index d352e5b08c9..7b99c2f54e5 100644
--- a/lisp/progmodes/cc-fonts.el
+++ b/lisp/progmodes/cc-fonts.el
@@ -1251,6 +1251,17 @@ casts and declarations are fontified. Used on level 2 and higher."
1251 ;; Got a cached hit in some other type of arglist. 1251 ;; Got a cached hit in some other type of arglist.
1252 (type 1252 (type
1253 (cons 'arglist t)) 1253 (cons 'arglist t))
1254 ;; We're at a C++ uniform initialization.
1255 ((and (c-major-mode-is 'c++-mode)
1256 (eq (char-before match-pos) ?\()
1257 (save-excursion
1258 (goto-char match-pos)
1259 (and
1260 (zerop (c-backward-token-2 2))
1261 (looking-at c-identifier-start)
1262 (c-got-face-at (point)
1263 '(font-lock-variable-name-face)))))
1264 (cons 'not-decl nil))
1254 ((and not-front-decl 1265 ((and not-front-decl
1255 ;; The point is within the range of a previously 1266 ;; The point is within the range of a previously
1256 ;; encountered type decl expression, so the arglist 1267 ;; encountered type decl expression, so the arglist
@@ -1589,7 +1600,8 @@ casts and declarations are fontified. Used on level 2 and higher."
1589 (setq max-type-decl-end (point)))) 1600 (setq max-type-decl-end (point))))
1590 (goto-char start-pos) 1601 (goto-char start-pos)
1591 (c-font-lock-single-decl limit decl-or-cast match-pos 1602 (c-font-lock-single-decl limit decl-or-cast match-pos
1592 context toplev)) 1603 context
1604 (or toplev (nth 4 decl-or-cast))))
1593 1605
1594 (t t)))) 1606 (t t))))
1595 1607
diff --git a/lisp/progmodes/cc-langs.el b/lisp/progmodes/cc-langs.el
index 227b3e16485..169b61c3dd3 100644
--- a/lisp/progmodes/cc-langs.el
+++ b/lisp/progmodes/cc-langs.el
@@ -1925,16 +1925,32 @@ on one of the `*-decl-kwds' lists."
1925 t (c-make-keywords-re t (c-lang-const c-type-prefix-kwds))) 1925 t (c-make-keywords-re t (c-lang-const c-type-prefix-kwds)))
1926(c-lang-defvar c-type-prefix-key (c-lang-const c-type-prefix-key)) 1926(c-lang-defvar c-type-prefix-key (c-lang-const c-type-prefix-key))
1927 1927
1928(c-lang-defconst c-type-modifier-kwds 1928(c-lang-defconst c-type-modifier-prefix-kwds
1929 "Type modifier keywords. These can occur almost anywhere in types 1929 "Type modifier keywords which can appear in front of a type. These can
1930but they don't build a type of themselves. Unlike the keywords on 1930also occur almost anywhere in types but they don't build a type of
1931`c-primitive-type-kwds', they are fontified with the keyword face and 1931themselves. Unlike the keywords on `c-primitive-type-kwds', they are
1932not the type face." 1932fontified with the keyword face and not the type face."
1933 t nil 1933 t nil
1934 c '("const" "restrict" "volatile") 1934 c '("const" "restrict" "volatile")
1935 c++ '("const" "noexcept" "volatile" "throw") 1935 c++ '("const" "noexcept" "volatile")
1936 objc '("const" "volatile")) 1936 objc '("const" "volatile"))
1937 1937
1938(c-lang-defconst c-opt-type-modifier-prefix-key
1939 ;; Adorned regexp matching `c-type-modifier-prefix-kwds', or nil in
1940 ;; languages without such keywords.
1941 t (and (c-lang-const c-type-modifier-prefix-kwds)
1942 (c-make-keywords-re t (c-lang-const c-type-modifier-prefix-kwds))))
1943(c-lang-defvar c-opt-type-modifier-prefix-key
1944 (c-lang-const c-opt-type-modifier-prefix-key))
1945
1946(c-lang-defconst c-type-modifier-kwds
1947 "Type modifier keywords. These can occur almost anywhere in types except
1948at the start, but they don't build a type of themselves. Unlike the keywords
1949on `c-primitive-type-kwds', they are fontified with the keyword face and not
1950the type face."
1951 t (c-lang-const c-type-modifier-prefix-kwds)
1952 c++ (append (c-lang-const c-type-modifier-prefix-kwds) '("throw")))
1953
1938(c-lang-defconst c-opt-type-modifier-key 1954(c-lang-defconst c-opt-type-modifier-key
1939 ;; Adorned regexp matching `c-type-modifier-kwds', or nil in 1955 ;; Adorned regexp matching `c-type-modifier-kwds', or nil in
1940 ;; languages without such keywords. 1956 ;; languages without such keywords.
@@ -2355,6 +2371,16 @@ construct it's part of continues."
2355 t nil 2371 t nil
2356 (c c++ objc) '("extern")) 2372 (c c++ objc) '("extern"))
2357 2373
2374(c-lang-defconst c-make-top-level-kwds
2375 "Keywords which make declarations they introduce be handled as top-level."
2376 t nil
2377 (c c++ objc) '("extern"))
2378
2379(c-lang-defconst c-make-top-level-key
2380 ;; A regexp which matches any `c-make-top-level-kwds' keyword.
2381 t (c-make-keywords-re t (c-lang-const c-make-top-level-kwds)))
2382(c-lang-defvar c-make-top-level-key (c-lang-const c-make-top-level-key))
2383
2358(c-lang-defconst c-type-list-kwds 2384(c-lang-defconst c-type-list-kwds
2359 "Keywords that may be followed by a comma separated list of type 2385 "Keywords that may be followed by a comma separated list of type
2360identifiers, where each optionally can be prefixed by keywords. (Can 2386identifiers, where each optionally can be prefixed by keywords. (Can
diff --git a/lisp/progmodes/cc-vars.el b/lisp/progmodes/cc-vars.el
index c4213797636..f7bfe7c672a 100644
--- a/lisp/progmodes/cc-vars.el
+++ b/lisp/progmodes/cc-vars.el
@@ -1641,8 +1641,9 @@ In the fontification engine, it is sometimes impossible to determine
1641whether a construct is a declaration or an expression. This happens 1641whether a construct is a declaration or an expression. This happens
1642particularly in C++, due to ambiguities in the language. When such a 1642particularly in C++, due to ambiguities in the language. When such a
1643construct is like \"foo * bar\" or \"foo &bar\", and this variable is non-nil 1643construct is like \"foo * bar\" or \"foo &bar\", and this variable is non-nil
1644(the default), the construct will be fontified as a declaration if there is 1644\(the default), the construct will be fontified as a declaration if there is
1645white space either before or after the operator, but not both." 1645white space either before or after the operator, but not both."
1646 :version "26.1"
1646 :type 'boolean 1647 :type 'boolean
1647 :group 'c) 1648 :group 'c)
1648 1649
@@ -1658,6 +1659,7 @@ identifiers.
1658If you change this variable's value, call the function 1659If you change this variable's value, call the function
1659`c-make-noise-macro-regexps' to set the necessary internal variables (or do 1660`c-make-noise-macro-regexps' to set the necessary internal variables (or do
1660this implicitly by reinitializing C/C++/Objc Mode on any buffer)." 1661this implicitly by reinitializing C/C++/Objc Mode on any buffer)."
1662 :version "26.1"
1661 :type '(repeat :tag "List of names" string) 1663 :type '(repeat :tag "List of names" string)
1662 :group 'c) 1664 :group 'c)
1663(put 'c-noise-macro-names 'safe-local-variable #'c-string-list-p) 1665(put 'c-noise-macro-names 'safe-local-variable #'c-string-list-p)
@@ -1666,7 +1668,8 @@ this implicitly by reinitializing C/C++/Objc Mode on any buffer)."
1666 "A list of names of macros \(or compiler extensions like \"__attribute__\") 1668 "A list of names of macros \(or compiler extensions like \"__attribute__\")
1667which optionally have arguments in parentheses, and which expand to nothing. 1669which optionally have arguments in parentheses, and which expand to nothing.
1668These are recognized by CC Mode only in declarations." 1670These are recognized by CC Mode only in declarations."
1669 :type '(regexp :tag "List of names (possibly empty)" string) 1671 :version "26.1"
1672 :type '(repeat :tag "List of names (possibly empty)" string)
1670 :group 'c) 1673 :group 'c)
1671(put 'c-noise-macro-with-parens-names 'safe-local-variable #'c-string-list-p) 1674(put 'c-noise-macro-with-parens-names 'safe-local-variable #'c-string-list-p)
1672 1675
diff --git a/lisp/progmodes/compile.el b/lisp/progmodes/compile.el
index 4cce47e5d8c..c68001d2366 100644
--- a/lisp/progmodes/compile.el
+++ b/lisp/progmodes/compile.el
@@ -1746,13 +1746,7 @@ Returns the compilation buffer created."
1746 (let ((process-environment 1746 (let ((process-environment
1747 (append 1747 (append
1748 compilation-environment 1748 compilation-environment
1749 (if (if (boundp 'system-uses-terminfo);`If' for compiler warning. 1749 (comint-term-environment)
1750 system-uses-terminfo)
1751 (list "TERM=dumb" "TERMCAP="
1752 (format "COLUMNS=%d" (window-width)))
1753 (list "TERM=emacs"
1754 (format "TERMCAP=emacs:co#%d:tc=unknown:"
1755 (window-width))))
1756 (list (format "INSIDE_EMACS=%s,compile" emacs-version)) 1750 (list (format "INSIDE_EMACS=%s,compile" emacs-version))
1757 (copy-sequence process-environment)))) 1751 (copy-sequence process-environment))))
1758 (set (make-local-variable 'compilation-arguments) 1752 (set (make-local-variable 'compilation-arguments)
diff --git a/lisp/progmodes/flymake.el b/lisp/progmodes/flymake.el
index 15a36175970..f23af82d354 100644
--- a/lisp/progmodes/flymake.el
+++ b/lisp/progmodes/flymake.el
@@ -127,6 +127,7 @@ If nil, never start checking buffer automatically like this."
127(defcustom flymake-start-on-flymake-mode t 127(defcustom flymake-start-on-flymake-mode t
128 "Start syntax check when `flymake-mode' is enabled. 128 "Start syntax check when `flymake-mode' is enabled.
129Specifically, start it when the buffer is actually displayed." 129Specifically, start it when the buffer is actually displayed."
130 :version "26.1"
130 :type 'boolean) 131 :type 'boolean)
131 132
132(define-obsolete-variable-alias 'flymake-start-syntax-check-on-find-file 133(define-obsolete-variable-alias 'flymake-start-syntax-check-on-find-file
@@ -141,6 +142,7 @@ Specifically, start it when the buffer is actually displayed."
141 142
142(defcustom flymake-wrap-around t 143(defcustom flymake-wrap-around t
143 "If non-nil, moving to errors wraps around buffer boundaries." 144 "If non-nil, moving to errors wraps around buffer boundaries."
145 :version "26.1"
144 :type 'boolean) 146 :type 'boolean)
145 147
146(when (fboundp 'define-fringe-bitmap) 148(when (fboundp 'define-fringe-bitmap)
diff --git a/lisp/progmodes/grep.el b/lisp/progmodes/grep.el
index c2d80223541..dac3726bb14 100644
--- a/lisp/progmodes/grep.el
+++ b/lisp/progmodes/grep.el
@@ -162,6 +162,7 @@ Customize or call the function `grep-apply-setting'."
162(defcustom grep-use-null-filename-separator 'auto-detect 162(defcustom grep-use-null-filename-separator 'auto-detect
163 "If non-nil, use `grep's `--null' option. 163 "If non-nil, use `grep's `--null' option.
164This is done to disambiguate file names in `grep's output." 164This is done to disambiguate file names in `grep's output."
165 :version "26.1"
165 :type '(choice (const :tag "Do Not Use `--null'" nil) 166 :type '(choice (const :tag "Do Not Use `--null'" nil)
166 (const :tag "Use `--null'" t) 167 (const :tag "Use `--null'" t)
167 (other :tag "Not Set" auto-detect)) 168 (other :tag "Not Set" auto-detect))
diff --git a/lisp/progmodes/js.el b/lisp/progmodes/js.el
index 3d3ea079cff..18101f53e0a 100644
--- a/lisp/progmodes/js.el
+++ b/lisp/progmodes/js.el
@@ -477,6 +477,7 @@ This applies to function movement, marking, and so on."
477 477
478(defcustom js-indent-align-list-continuation t 478(defcustom js-indent-align-list-continuation t
479 "Align continuation of non-empty ([{ lines in `js-mode'." 479 "Align continuation of non-empty ([{ lines in `js-mode'."
480 :version "26.1"
480 :type 'boolean 481 :type 'boolean
481 :group 'js) 482 :group 'js)
482 483
diff --git a/lisp/progmodes/perl-mode.el b/lisp/progmodes/perl-mode.el
index f3cb8109133..fecdb720f58 100644
--- a/lisp/progmodes/perl-mode.el
+++ b/lisp/progmodes/perl-mode.el
@@ -587,6 +587,7 @@ create a new comment."
587This is a non empty list of strings, the checker tool possibly 587This is a non empty list of strings, the checker tool possibly
588followed by required arguments. Once launched it will receive 588followed by required arguments. Once launched it will receive
589the Perl source to be checked as its standard input." 589the Perl source to be checked as its standard input."
590 :version "26.1"
590 :group 'perl 591 :group 'perl
591 :type '(repeat string)) 592 :type '(repeat string))
592 593
diff --git a/lisp/progmodes/python.el b/lisp/progmodes/python.el
index 9d3e428e23c..2de40c4ab88 100644
--- a/lisp/progmodes/python.el
+++ b/lisp/progmodes/python.el
@@ -5165,6 +5165,7 @@ This is a non empty list of strings, the checker tool possibly followed by
5165required arguments. Once launched it will receive the Python source to be 5165required arguments. Once launched it will receive the Python source to be
5166checked as its standard input. 5166checked as its standard input.
5167To use `flake8' you would set this to (\"flake8\" \"-\")." 5167To use `flake8' you would set this to (\"flake8\" \"-\")."
5168 :version "26.1"
5168 :group 'python-flymake 5169 :group 'python-flymake
5169 :type '(repeat string)) 5170 :type '(repeat string))
5170 5171
@@ -5186,6 +5187,7 @@ MESSAGE'th gives the message text itself.
5186If COLUMN or TYPE are nil or that index didn't match, that 5187If COLUMN or TYPE are nil or that index didn't match, that
5187information is not present on the matched line and a default will 5188information is not present on the matched line and a default will
5188be used." 5189be used."
5190 :version "26.1"
5189 :group 'python-flymake 5191 :group 'python-flymake
5190 :type '(list regexp 5192 :type '(list regexp
5191 (integer :tag "Line's index") 5193 (integer :tag "Line's index")
@@ -5209,6 +5211,7 @@ For example, when using `flake8' a possible configuration could be:
5209 (\"^[EW][0-9]+\" . :note)) 5211 (\"^[EW][0-9]+\" . :note))
5210 5212
5211By default messages are considered errors." 5213By default messages are considered errors."
5214 :version "26.1"
5212 :group 'python-flymake 5215 :group 'python-flymake
5213 :type `(alist :key-type (regexp) 5216 :type `(alist :key-type (regexp)
5214 :value-type (symbol))) 5217 :value-type (symbol)))
diff --git a/lisp/progmodes/ruby-mode.el b/lisp/progmodes/ruby-mode.el
index dc1b0f8e2da..1c7df7e35a2 100644
--- a/lisp/progmodes/ruby-mode.el
+++ b/lisp/progmodes/ruby-mode.el
@@ -2314,12 +2314,14 @@ See `font-lock-syntax-table'.")
2314(defcustom ruby-flymake-use-rubocop-if-available t 2314(defcustom ruby-flymake-use-rubocop-if-available t
2315 "Non-nil to use the Rubocop Flymake backend. 2315 "Non-nil to use the Rubocop Flymake backend.
2316Only takes effect if Rubocop is installed." 2316Only takes effect if Rubocop is installed."
2317 :version "26.1"
2317 :type 'boolean 2318 :type 'boolean
2318 :group 'ruby 2319 :group 'ruby
2319 :safe 'booleanp) 2320 :safe 'booleanp)
2320 2321
2321(defcustom ruby-rubocop-config ".rubocop.yml" 2322(defcustom ruby-rubocop-config ".rubocop.yml"
2322 "Configuration file for `ruby-flymake-rubocop'." 2323 "Configuration file for `ruby-flymake-rubocop'."
2324 :version "26.1"
2323 :type 'string 2325 :type 'string
2324 :group 'ruby 2326 :group 'ruby
2325 :safe 'stringp) 2327 :safe 'stringp)
diff --git a/lisp/progmodes/verilog-mode.el b/lisp/progmodes/verilog-mode.el
index 10a1edc3ee0..1baac1d4204 100644
--- a/lisp/progmodes/verilog-mode.el
+++ b/lisp/progmodes/verilog-mode.el
@@ -764,14 +764,14 @@ mode is experimental."
764 :version "24.1" ; rev670 764 :version "24.1" ; rev670
765 :group 'verilog-mode-actions 765 :group 'verilog-mode-actions
766 :type 'boolean) 766 :type 'boolean)
767(put 'verilog-auto-declare-nettype 'safe-local-variable `stringp) 767(put 'verilog-auto-declare-nettype 'safe-local-variable 'stringp)
768 768
769(defcustom verilog-auto-wire-comment t 769(defcustom verilog-auto-wire-comment t
770 "Non-nil indicates to insert to/from comments with `verilog-auto-wire' etc." 770 "Non-nil indicates to insert to/from comments with `verilog-auto-wire' etc."
771 :version "25.1" 771 :version "25.1"
772 :group 'verilog-mode-actions 772 :group 'verilog-mode-actions
773 :type 'boolean) 773 :type 'boolean)
774(put 'verilog-auto-wire-comment 'safe-local-variable `verilog-booleanp) 774(put 'verilog-auto-wire-comment 'safe-local-variable 'verilog-booleanp)
775 775
776(defcustom verilog-auto-wire-type nil 776(defcustom verilog-auto-wire-type nil
777 "Non-nil specifies the data type to use with `verilog-auto-wire' etc. 777 "Non-nil specifies the data type to use with `verilog-auto-wire' etc.
@@ -781,8 +781,8 @@ this is generally only appropriate when making a non-SystemVerilog wrapper
781containing SystemVerilog cells." 781containing SystemVerilog cells."
782 :version "24.1" ; rev673 782 :version "24.1" ; rev673
783 :group 'verilog-mode-actions 783 :group 'verilog-mode-actions
784 :type 'string) 784 :type '(choice (const nil) string))
785(put 'verilog-auto-wire-type 'safe-local-variable `stringp) 785(put 'verilog-auto-wire-type 'safe-local-variable 'stringp)
786 786
787(defcustom verilog-auto-endcomments t 787(defcustom verilog-auto-endcomments t
788 "Non-nil means insert a comment /* ... */ after `end's. 788 "Non-nil means insert a comment /* ... */ after `end's.
diff --git a/lisp/textmodes/css-mode.el b/lisp/textmodes/css-mode.el
index 93ca36b08aa..96c3f6b9395 100644
--- a/lisp/textmodes/css-mode.el
+++ b/lisp/textmodes/css-mode.el
@@ -1037,7 +1037,7 @@ This recognizes CSS-color-4 extensions."
1037STR is the incoming CSS hex color. 1037STR is the incoming CSS hex color.
1038This function simply drops any transparency." 1038This function simply drops any transparency."
1039 ;; Either #RGB or #RRGGBB, drop the "A" or "AA". 1039 ;; Either #RGB or #RRGGBB, drop the "A" or "AA".
1040 (if (> (length str) 4) 1040 (if (> (length str) 5)
1041 (substring str 0 7) 1041 (substring str 0 7)
1042 (substring str 0 4))) 1042 (substring str 0 4)))
1043 1043
diff --git a/lisp/textmodes/less-css-mode.el b/lisp/textmodes/less-css-mode.el
index d31414e3a4b..c2846ac926b 100644
--- a/lisp/textmodes/less-css-mode.el
+++ b/lisp/textmodes/less-css-mode.el
@@ -78,6 +78,7 @@
78 78
79(defgroup less-css nil 79(defgroup less-css nil
80 "Less CSS mode." 80 "Less CSS mode."
81 :version "26.1"
81 :prefix "less-css-" 82 :prefix "less-css-"
82 :group 'css) 83 :group 'css)
83 84
@@ -105,7 +106,7 @@ Use \"-x\" to minify output."
105This path is expanded relative to the directory of the Less file 106This path is expanded relative to the directory of the Less file
106using `expand-file-name', so both relative and absolute paths 107using `expand-file-name', so both relative and absolute paths
107will work as expected." 108will work as expected."
108 :type 'directory) 109 :type '(choice (const :tag "Same as Less file" nil) directory))
109;;;###autoload 110;;;###autoload
110(put 'less-css-output-directory 'safe-local-variable 'stringp) 111(put 'less-css-output-directory 'safe-local-variable 'stringp)
111 112
@@ -115,7 +116,7 @@ This can be also be set to a full path, or a relative path. If
115the path is relative, it will be relative to the value of 116the path is relative, it will be relative to the value of
116`less-css-output-dir', if set, or the current directory by 117`less-css-output-dir', if set, or the current directory by
117default." 118default."
118 :type 'file) 119 :type '(choice (const :tag "Default" nil) file))
119(make-variable-buffer-local 'less-css-output-file-name) 120(make-variable-buffer-local 'less-css-output-file-name)
120 121
121(defcustom less-css-input-file-name nil 122(defcustom less-css-input-file-name nil
@@ -131,7 +132,7 @@ variables.
131This can be also be set to a full path, or a relative path. If 132This can be also be set to a full path, or a relative path. If
132the path is relative, it will be relative to the current 133the path is relative, it will be relative to the current
133directory by default." 134directory by default."
134 :type 'file) 135 :type '(choice (const nil) file))
135;;;###autoload 136;;;###autoload
136(put 'less-css-input-file-name 'safe-local-variable 'stringp) 137(put 'less-css-input-file-name 'safe-local-variable 'stringp)
137(make-variable-buffer-local 'less-css-input-file-name) 138(make-variable-buffer-local 'less-css-input-file-name)
diff --git a/lisp/textmodes/tex-mode.el b/lisp/textmodes/tex-mode.el
index 5c585ea46ca..432a779b4a8 100644
--- a/lisp/textmodes/tex-mode.el
+++ b/lisp/textmodes/tex-mode.el
@@ -266,12 +266,14 @@ measured relative to that of the normal text."
266 266
267(defcustom tex-chktex-program "chktex" 267(defcustom tex-chktex-program "chktex"
268 "ChkTeX executable to use for linting TeX files." 268 "ChkTeX executable to use for linting TeX files."
269 :version "26.1"
269 :type 'string 270 :type 'string
270 :link '(url-link "man:chktex(1)") 271 :link '(url-link "man:chktex(1)")
271 :group 'tex-flymake) 272 :group 'tex-flymake)
272 273
273(defcustom tex-chktex-extra-flags nil 274(defcustom tex-chktex-extra-flags nil
274 "Extra command line flags for `tex-chktex-program'." 275 "Extra command line flags for `tex-chktex-program'."
276 :version "26.1"
275 :type '(repeat string) 277 :type '(repeat string)
276 :group 'tex-flymake) 278 :group 'tex-flymake)
277 279
@@ -1012,9 +1014,10 @@ Inherits `shell-mode-map' with a few additions.")
1012;; This is a) ugly, and b) cheating, but this was the last 1014;; This is a) ugly, and b) cheating, but this was the last
1013;; remaining warning from byte-compiling all of Emacs... 1015;; remaining warning from byte-compiling all of Emacs...
1014(eval-when-compile 1016(eval-when-compile
1015 (setq byte-compile-function-environment 1017 (if (boundp 'byte-compile-function-environment)
1016 (delq (assq 'tex-mode byte-compile-function-environment) 1018 (setq byte-compile-function-environment
1017 byte-compile-function-environment))) 1019 (delq (assq 'tex-mode byte-compile-function-environment)
1020 byte-compile-function-environment))))
1018 1021
1019;;;###autoload 1022;;;###autoload
1020(defun tex-mode () 1023(defun tex-mode ()
diff --git a/lisp/textmodes/tildify.el b/lisp/textmodes/tildify.el
index 0d7b15dfc6b..f25dfbcc75d 100644
--- a/lisp/textmodes/tildify.el
+++ b/lisp/textmodes/tildify.el
@@ -350,7 +350,7 @@ If ASK is nil, perform replace without asking user for confirmation.
350 350
351Returns (count . response) cons where count is number of string 351Returns (count . response) cons where count is number of string
352replacements done and response is one of symbols: t (all right), nil 352replacements done and response is one of symbols: t (all right), nil
353(quit), force (replace without further questions)." 353\(quit), force (replace without further questions)."
354 (save-excursion 354 (save-excursion
355 (goto-char beg) 355 (goto-char beg)
356 (let ((regexp tildify-pattern) 356 (let ((regexp tildify-pattern)
diff --git a/lisp/time.el b/lisp/time.el
index 6cd7320e72f..49f345c26d5 100644
--- a/lisp/time.el
+++ b/lisp/time.el
@@ -173,7 +173,9 @@ If the value is t instead of an alist, use the value of
173`legacy-style-world-list' otherwise." 173`legacy-style-world-list' otherwise."
174 174
175 :group 'display-time 175 :group 'display-time
176 :type '(repeat (list string string)) 176 :type '(choice (const :tag "Default" t)
177 (repeat :tag "List of zones and labels"
178 (list (string :tag "Zone") (string :tag "Label"))))
177 :version "23.1") 179 :version "23.1")
178 180
179(defun time--display-world-list () 181(defun time--display-world-list ()
diff --git a/lisp/vc/cvs-status.el b/lisp/vc/cvs-status.el
index 770791a3c09..3124a61422b 100644
--- a/lisp/vc/cvs-status.el
+++ b/lisp/vc/cvs-status.el
@@ -33,11 +33,6 @@
33 33
34;;; 34;;;
35 35
36(defgroup cvs-status nil
37 "Major mode for browsing `cvs status' output."
38 :group 'pcl-cvs
39 :prefix "cvs-status-")
40
41(easy-mmode-defmap cvs-status-mode-map 36(easy-mmode-defmap cvs-status-mode-map
42 '(("n" . next-line) 37 '(("n" . next-line)
43 ("p" . previous-line) 38 ("p" . previous-line)
diff --git a/lisp/vc/diff-mode.el b/lisp/vc/diff-mode.el
index df9627abdf0..df33d10ed0c 100644
--- a/lisp/vc/diff-mode.el
+++ b/lisp/vc/diff-mode.el
@@ -2005,9 +2005,6 @@ For use in `add-log-current-defun-function'."
2005 (replace-match (cdr (assq (char-before) '((?+ . "-") (?> . "<")))))) 2005 (replace-match (cdr (assq (char-before) '((?+ . "-") (?> . "<"))))))
2006 ) 2006 )
2007 2007
2008(declare-function smerge-refine-subst "smerge-mode"
2009 (beg1 end1 beg2 end2 props-c &optional preproc props-r props-a))
2010
2011(defun diff--forward-while-leading-char (char bound) 2008(defun diff--forward-while-leading-char (char bound)
2012 "Move point until reaching a line not starting with CHAR. 2009 "Move point until reaching a line not starting with CHAR.
2013Return new point, if it was moved." 2010Return new point, if it was moved."
@@ -2049,13 +2046,13 @@ Return new point, if it was moved."
2049 (diff--forward-while-leading-char ?+ end) 2046 (diff--forward-while-leading-char ?+ end)
2050 (progn (diff--forward-while-leading-char ?\\ end) 2047 (progn (diff--forward-while-leading-char ?\\ end)
2051 (setq end-add (point)))) 2048 (setq end-add (point))))
2052 (smerge-refine-subst beg-del beg-add beg-add end-add 2049 (smerge-refine-regions beg-del beg-add beg-add end-add
2053 nil 'diff-refine-preproc props-r props-a))))) 2050 nil 'diff-refine-preproc props-r props-a)))))
2054 (`context 2051 (`context
2055 (let* ((middle (save-excursion (re-search-forward "^---"))) 2052 (let* ((middle (save-excursion (re-search-forward "^---")))
2056 (other middle)) 2053 (other middle))
2057 (while (re-search-forward "^\\(?:!.*\n\\)+" middle t) 2054 (while (re-search-forward "^\\(?:!.*\n\\)+" middle t)
2058 (smerge-refine-subst (match-beginning 0) (match-end 0) 2055 (smerge-refine-regions (match-beginning 0) (match-end 0)
2059 (save-excursion 2056 (save-excursion
2060 (goto-char other) 2057 (goto-char other)
2061 (re-search-forward "^\\(?:!.*\n\\)+" end) 2058 (re-search-forward "^\\(?:!.*\n\\)+" end)
@@ -2070,7 +2067,7 @@ Return new point, if it was moved."
2070 (let ((beg1 (1+ (point)))) 2067 (let ((beg1 (1+ (point))))
2071 (when (re-search-forward "^---.*\n" end t) 2068 (when (re-search-forward "^---.*\n" end t)
2072 ;; It's a combined add&remove, so there's something to do. 2069 ;; It's a combined add&remove, so there's something to do.
2073 (smerge-refine-subst beg1 (match-beginning 0) 2070 (smerge-refine-regions beg1 (match-beginning 0)
2074 (match-end 0) end 2071 (match-end 0) end
2075 nil 'diff-refine-preproc props-r props-a))))))))) 2072 nil 'diff-refine-preproc props-r props-a)))))))))
2076 2073
diff --git a/lisp/vc/emerge.el b/lisp/vc/emerge.el
index 9c25ec43321..3f945bbb2bf 100644
--- a/lisp/vc/emerge.el
+++ b/lisp/vc/emerge.el
@@ -3171,11 +3171,9 @@ See also `auto-save-file-name-p'."
3171 (setq limit (1+ (match-end 0))))) 3171 (setq limit (1+ (match-end 0)))))
3172 s) 3172 s)
3173 3173
3174;; Metacharacters that have to be protected from the shell when executing
3175;; a diff/diff3 command.
3176(defcustom emerge-metachars nil 3174(defcustom emerge-metachars nil
3177 "Obsolete, emerge now uses `shell-quote-argument'." 3175 "No longer used. Emerge now uses `shell-quote-argument'."
3178 :type 'regexp 3176 :type '(choice (const nil) regexp)
3179 :group 'emerge) 3177 :group 'emerge)
3180(make-obsolete-variable 'emerge-metachars nil "26.1") 3178(make-obsolete-variable 'emerge-metachars nil "26.1")
3181 3179
diff --git a/lisp/vc/smerge-mode.el b/lisp/vc/smerge-mode.el
index b988463de1e..ea1e0c726fd 100644
--- a/lisp/vc/smerge-mode.el
+++ b/lisp/vc/smerge-mode.el
@@ -919,7 +919,7 @@ Its behavior has mainly two restrictions:
919 after the newline. 919 after the newline.
920 This only matters if `smerge-refine-ignore-whitespace' is nil. 920 This only matters if `smerge-refine-ignore-whitespace' is nil.
921- it needs to be unaffected by changes performed by the `preproc' argument 921- it needs to be unaffected by changes performed by the `preproc' argument
922 to `smerge-refine-subst'. 922 to `smerge-refine-regions'.
923 This only matters if `smerge-refine-weight-hack' is nil.") 923 This only matters if `smerge-refine-weight-hack' is nil.")
924 924
925(defvar smerge-refine-ignore-whitespace t 925(defvar smerge-refine-ignore-whitespace t
@@ -1188,15 +1188,15 @@ repeating the command will highlight other two parts."
1188 (put-text-property (match-beginning 0) (1+ (match-beginning 0)) 1188 (put-text-property (match-beginning 0) (1+ (match-beginning 0))
1189 'smerge-refine-part 1189 'smerge-refine-part
1190 (cons (buffer-chars-modified-tick) part))) 1190 (cons (buffer-chars-modified-tick) part)))
1191 (smerge-refine-subst (match-beginning n1) (match-end n1) 1191 (smerge-refine-regions (match-beginning n1) (match-end n1)
1192 (match-beginning n2) (match-end n2) 1192 (match-beginning n2) (match-end n2)
1193 (if smerge-use-changed-face 1193 (if smerge-use-changed-face
1194 '((smerge . refine) (face . smerge-refined-change))) 1194 '((smerge . refine) (font-lock-face . smerge-refined-change)))
1195 nil 1195 nil
1196 (unless smerge-use-changed-face 1196 (unless smerge-use-changed-face
1197 '((smerge . refine) (face . smerge-refined-removed))) 1197 '((smerge . refine) (font-lock-face . smerge-refined-removed)))
1198 (unless smerge-use-changed-face 1198 (unless smerge-use-changed-face
1199 '((smerge . refine) (face . smerge-refined-added)))))) 1199 '((smerge . refine) (font-lock-face . smerge-refined-added))))))
1200 1200
1201(defun smerge-swap () 1201(defun smerge-swap ()
1202 "Swap the \"Upper\" and the \"Lower\" chunks. 1202 "Swap the \"Upper\" and the \"Lower\" chunks.
diff --git a/lisp/vc/vc-hg.el b/lisp/vc/vc-hg.el
index 9e597a209a7..7962b70f20a 100644
--- a/lisp/vc/vc-hg.el
+++ b/lisp/vc/vc-hg.el
@@ -278,7 +278,7 @@ within the repository.
278 278
279If no list entry produces a useful revision, return `nil'." 279If no list entry produces a useful revision, return `nil'."
280 :type '(repeat (choice 280 :type '(repeat (choice
281 (const :tag "Active bookmark" 'bookmark) 281 (const :tag "Active bookmark" builtin-active-bookmark)
282 (string :tag "Hg template") 282 (string :tag "Hg template")
283 (function :tag "Custom"))) 283 (function :tag "Custom")))
284 :version "26.1" 284 :version "26.1"
diff --git a/lisp/vc/vc-hooks.el b/lisp/vc/vc-hooks.el
index 99c8211ad5f..394b86c024b 100644
--- a/lisp/vc/vc-hooks.el
+++ b/lisp/vc/vc-hooks.el
@@ -34,9 +34,9 @@
34 34
35;; Faces 35;; Faces
36 36
37(defgroup vc-state-faces nil 37(defgroup vc-faces nil
38 "Faces used in the mode line by the VC state indicator." 38 "Faces used in the mode line by the VC state indicator."
39 :group 'vc-faces 39 :group 'vc
40 :group 'mode-line 40 :group 'mode-line
41 :version "25.1") 41 :version "25.1")
42 42