diff options
| author | Glenn Morris | 2017-12-16 12:18:45 -0800 |
|---|---|---|
| committer | Glenn Morris | 2017-12-16 12:18:45 -0800 |
| commit | 8e46d93dcdabfa9fb099345fa12378479b4dbe63 (patch) | |
| tree | 3586203b53367f0bc71460e31caee41a79b84d8f | |
| parent | da2c441079c74b18399176df3f92613436ef53dc (diff) | |
| parent | 28e0261890e6335cb49cc03c47c206ce9c022448 (diff) | |
| download | emacs-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
60 files changed, 395 insertions, 200 deletions
diff --git a/doc/emacs/building.texi b/doc/emacs/building.texi index 87ac61bac3b..e108a4e7c10 100644 --- a/doc/emacs/building.texi +++ b/doc/emacs/building.texi | |||
| @@ -303,6 +303,11 @@ And here's how to do it in csh: | |||
| 303 | if ($?prompt) set prompt = @dots{} | 303 | if ($?prompt) set prompt = @dots{} |
| 304 | @end example | 304 | @end example |
| 305 | 305 | ||
| 306 | @vindex TERM, environment variable, in compilation mode | ||
| 307 | If you want to customize the value of the @env{TERM} environment | ||
| 308 | variable passed to the compilation subshell, customize the variable | ||
| 309 | @code{comint-terminfo-terminal} (@pxref{Shell Options}). | ||
| 310 | |||
| 306 | Emacs does not expect a compiler process to launch asynchronous | 311 | Emacs does not expect a compiler process to launch asynchronous |
| 307 | subprocesses; if it does, and they keep running after the main | 312 | subprocesses; if it does, and they keep running after the main |
| 308 | compiler process has terminated, Emacs may kill them or their output | 313 | compiler process has terminated, Emacs may kill them or their output |
diff --git a/doc/emacs/misc.texi b/doc/emacs/misc.texi index 6ad5fbafdd6..e4be004ae52 100644 --- a/doc/emacs/misc.texi +++ b/doc/emacs/misc.texi | |||
| @@ -1396,6 +1396,16 @@ directory stack if they are not already on it | |||
| 1396 | (@code{shell-pushd-dunique}). The values you choose should match the | 1396 | (@code{shell-pushd-dunique}). The values you choose should match the |
| 1397 | underlying shell, of course. | 1397 | underlying shell, of course. |
| 1398 | 1398 | ||
| 1399 | @vindex comint-terminfo-terminal | ||
| 1400 | @vindex TERM, environment variable, in sub-shell | ||
| 1401 | Comint mode sets the @env{TERM} environment variable to a safe default | ||
| 1402 | value, but this value disables some useful features. For example, | ||
| 1403 | color is disabled in applications that use @env{TERM} to determine if | ||
| 1404 | color is supported. Therefore, Emacs provides an option | ||
| 1405 | @code{comint-terminfo-terminal}, which you can set to a terminal that | ||
| 1406 | is present in your system's terminfo database, in order to take | ||
| 1407 | advantage of advanced features of that terminal. | ||
| 1408 | |||
| 1399 | @node Terminal emulator | 1409 | @node Terminal emulator |
| 1400 | @subsection Emacs Terminal Emulator | 1410 | @subsection Emacs Terminal Emulator |
| 1401 | @findex term | 1411 | @findex term |
diff --git a/doc/emacs/trouble.texi b/doc/emacs/trouble.texi index 4a836c3224b..e98322d74e2 100644 --- a/doc/emacs/trouble.texi +++ b/doc/emacs/trouble.texi | |||
| @@ -780,7 +780,7 @@ the dribble file. | |||
| 780 | @item | 780 | @item |
| 781 | @findex open-termscript | 781 | @findex open-termscript |
| 782 | @cindex termscript file | 782 | @cindex termscript file |
| 783 | @cindex @env{TERM} environment variable | 783 | @vindex TERM, environment variable, and display bugs |
| 784 | For possible display bugs, the terminal type (the value of environment | 784 | For possible display bugs, the terminal type (the value of environment |
| 785 | variable @env{TERM}), the complete termcap entry for the terminal from | 785 | variable @env{TERM}), the complete termcap entry for the terminal from |
| 786 | @file{/etc/termcap} (since that file is not identical on all machines), | 786 | @file{/etc/termcap} (since that file is not identical on all machines), |
diff --git a/doc/lispref/display.texi b/doc/lispref/display.texi index 7af8d9efb7c..50069e3d1da 100644 --- a/doc/lispref/display.texi +++ b/doc/lispref/display.texi | |||
| @@ -929,13 +929,18 @@ major mode should use the mode's own name as an element of | |||
| 929 | 929 | ||
| 930 | @defun invisible-p pos-or-prop | 930 | @defun invisible-p pos-or-prop |
| 931 | If @var{pos-or-prop} is a marker or number, this function returns a | 931 | If @var{pos-or-prop} is a marker or number, this function returns a |
| 932 | non-@code{nil} value if the text at that position is invisible. | 932 | non-@code{nil} value if the text at that position is currently |
| 933 | invisible. | ||
| 933 | 934 | ||
| 934 | If @var{pos-or-prop} is any other kind of Lisp object, that is taken | 935 | If @var{pos-or-prop} is any other kind of Lisp object, that is taken |
| 935 | to mean a possible value of the @code{invisible} text or overlay | 936 | to mean a possible value of the @code{invisible} text or overlay |
| 936 | property. In that case, this function returns a non-@code{nil} value | 937 | property. In that case, this function returns a non-@code{nil} value |
| 937 | if that value would cause text to become invisible, based on the | 938 | if that value would cause text to become invisible, based on the |
| 938 | current value of @code{buffer-invisibility-spec}. | 939 | current value of @code{buffer-invisibility-spec}. |
| 940 | |||
| 941 | The return value of this function is @code{t} if the text would be | ||
| 942 | completely hidden on display, or a non-@code{nil}, non-@code{t} value | ||
| 943 | if the text would be replaced by an ellipsis. | ||
| 939 | @end defun | 944 | @end defun |
| 940 | 945 | ||
| 941 | @vindex line-move-ignore-invisible | 946 | @vindex line-move-ignore-invisible |
diff --git a/doc/lispref/sequences.texi b/doc/lispref/sequences.texi index 4fba880803e..8d56e022d8f 100644 --- a/doc/lispref/sequences.texi +++ b/doc/lispref/sequences.texi | |||
| @@ -425,6 +425,7 @@ useful example of @code{sort}. | |||
| 425 | 425 | ||
| 426 | @cindex sequence functions in seq | 426 | @cindex sequence functions in seq |
| 427 | @cindex seq library | 427 | @cindex seq library |
| 428 | @cindex sequences, generalized | ||
| 428 | The @file{seq.el} library provides the following additional sequence | 429 | The @file{seq.el} library provides the following additional sequence |
| 429 | manipulation macros and functions, prefixed with @code{seq-}. To use | 430 | manipulation macros and functions, prefixed with @code{seq-}. To use |
| 430 | them, you must first load the @file{seq} library. | 431 | them, you must first load the @file{seq} library. |
| @@ -859,6 +860,7 @@ it is a function of two arguments to use instead of the default @code{equal}. | |||
| 859 | @end defun | 860 | @end defun |
| 860 | 861 | ||
| 861 | @defun seq-subseq sequence start &optional end | 862 | @defun seq-subseq sequence start &optional end |
| 863 | @cindex sub-sequence | ||
| 862 | This function returns a subset of @var{sequence} from @var{start} | 864 | This function returns a subset of @var{sequence} from @var{start} |
| 863 | to @var{end}, both integers (@var{end} defaults to the last element). | 865 | to @var{end}, both integers (@var{end} defaults to the last element). |
| 864 | If @var{start} or @var{end} is negative, it counts from the end of | 866 | If @var{start} or @var{end} is negative, it counts from the end of |
| @@ -926,6 +928,8 @@ contain less elements than @var{n}. @var{n} must be an integer. If | |||
| 926 | @end defun | 928 | @end defun |
| 927 | 929 | ||
| 928 | @defun seq-intersection sequence1 sequence2 &optional function | 930 | @defun seq-intersection sequence1 sequence2 &optional function |
| 931 | @cindex sequences, intersection of | ||
| 932 | @cindex intersection of sequences | ||
| 929 | This function returns a list of the elements that appear both in | 933 | This function returns a list of the elements that appear both in |
| 930 | @var{sequence1} and @var{sequence2}. If the optional argument | 934 | @var{sequence1} and @var{sequence2}. If the optional argument |
| 931 | @var{function} is non-@code{nil}, it is a function of two arguments to | 935 | @var{function} is non-@code{nil}, it is a function of two arguments to |
| @@ -972,6 +976,10 @@ of @var{sequence}. Keys are compared using @code{equal}. | |||
| 972 | @end defun | 976 | @end defun |
| 973 | 977 | ||
| 974 | @defun seq-into sequence type | 978 | @defun seq-into sequence type |
| 979 | @cindex convert sequence to another type | ||
| 980 | @cindex list to vector | ||
| 981 | @cindex vector to list | ||
| 982 | @cindex string to vector | ||
| 975 | This function converts the sequence @var{sequence} into a sequence | 983 | This function converts the sequence @var{sequence} into a sequence |
| 976 | of type @var{type}. @var{type} can be one of the following symbols: | 984 | of type @var{type}. @var{type} can be one of the following symbols: |
| 977 | @code{vector}, @code{string} or @code{list}. | 985 | @code{vector}, @code{string} or @code{list}. |
| @@ -993,6 +1001,8 @@ of type @var{type}. @var{type} can be one of the following symbols: | |||
| 993 | @end defun | 1001 | @end defun |
| 994 | 1002 | ||
| 995 | @defun seq-min sequence | 1003 | @defun seq-min sequence |
| 1004 | @cindex minimum value of sequence | ||
| 1005 | @cindex sequence minimum | ||
| 996 | This function returns the smallest element of @var{sequence}. The | 1006 | This function returns the smallest element of @var{sequence}. The |
| 997 | elements of @var{sequence} must be numbers or markers | 1007 | elements of @var{sequence} must be numbers or markers |
| 998 | (@pxref{Markers}). | 1008 | (@pxref{Markers}). |
| @@ -1010,6 +1020,8 @@ elements of @var{sequence} must be numbers or markers | |||
| 1010 | @end defun | 1020 | @end defun |
| 1011 | 1021 | ||
| 1012 | @defun seq-max sequence | 1022 | @defun seq-max sequence |
| 1023 | @cindex maximum value of sequence | ||
| 1024 | @cindex sequence maximum | ||
| 1013 | This function returns the largest element of @var{sequence}. The | 1025 | This function returns the largest element of @var{sequence}. The |
| 1014 | elements of @var{sequence} must be numbers or markers. | 1026 | elements of @var{sequence} must be numbers or markers. |
| 1015 | 1027 | ||
| @@ -1027,6 +1039,7 @@ elements of @var{sequence} must be numbers or markers. | |||
| 1027 | 1039 | ||
| 1028 | @defmac seq-doseq (var sequence) body@dots{} | 1040 | @defmac seq-doseq (var sequence) body@dots{} |
| 1029 | @cindex sequence iteration | 1041 | @cindex sequence iteration |
| 1042 | @cindex iteration over vector or string | ||
| 1030 | This macro is like @code{dolist} (@pxref{Iteration, dolist}), except | 1043 | This macro is like @code{dolist} (@pxref{Iteration, dolist}), except |
| 1031 | that @var{sequence} can be a list, vector or string. This is | 1044 | that @var{sequence} can be a list, vector or string. This is |
| 1032 | primarily useful for side-effects. | 1045 | primarily useful for side-effects. |
diff --git a/doc/misc/emacs-gnutls.texi b/doc/misc/emacs-gnutls.texi index 92846a924c5..1715c83a0d2 100644 --- a/doc/misc/emacs-gnutls.texi +++ b/doc/misc/emacs-gnutls.texi | |||
| @@ -116,9 +116,11 @@ information. | |||
| 116 | The @code{gnutls-algorithm-priority} variable sets the GnuTLS priority | 116 | The @code{gnutls-algorithm-priority} variable sets the GnuTLS priority |
| 117 | string. This is global, not per host name (although | 117 | string. This is global, not per host name (although |
| 118 | @code{gnutls-negotiate} supports a priority string per connection so | 118 | @code{gnutls-negotiate} supports a priority string per connection so |
| 119 | it could be done if needed). The priority string syntax is in the | 119 | it could be done if needed). For details see the |
| 120 | @uref{https://www.gnu.org/software/gnutls/documentation.html, GnuTLS | 120 | @uref{https://www.gnu.org/software/gnutls/documentation.html, GnuTLS |
| 121 | documentation}. | 121 | documentation} and the |
| 122 | @uref{https://gnutls.org/manual/html_node/Priority-Strings.html, | ||
| 123 | GnuTLS priority string syntax and description}. | ||
| 122 | @end defvar | 124 | @end defvar |
| 123 | 125 | ||
| 124 | @defvar gnutls-trustfiles | 126 | @defvar gnutls-trustfiles |
diff --git a/etc/NEWS.26 b/etc/NEWS.26 index 64b53d88c83..784c608041b 100644 --- a/etc/NEWS.26 +++ b/etc/NEWS.26 | |||
| @@ -431,6 +431,11 @@ You can enable this by customizing 'mwheel-tilt-scroll-p'. If you | |||
| 431 | want to reverse the direction of the scroll, customize | 431 | want to reverse the direction of the scroll, customize |
| 432 | 'mwheel-flip-direction'. | 432 | 'mwheel-flip-direction'. |
| 433 | 433 | ||
| 434 | +++ | ||
| 435 | ** The default GnuTLS priority string now includes %DUMBFW. | ||
| 436 | This is to avoid bad behavior in some firewalls, which causes the | ||
| 437 | connection to be closed by the remote host. | ||
| 438 | |||
| 434 | ** Emacsclient changes | 439 | ** Emacsclient changes |
| 435 | 440 | ||
| 436 | +++ | 441 | +++ |
| @@ -807,6 +812,13 @@ whose content matches a regexp; bound to '% g'. | |||
| 807 | *** New user option 'comint-move-point-for-matching-input' to control | 812 | *** New user option 'comint-move-point-for-matching-input' to control |
| 808 | where to place point after 'C-c M-r' and 'C-c M-s'. | 813 | where to place point after 'C-c M-r' and 'C-c M-s'. |
| 809 | 814 | ||
| 815 | +++ | ||
| 816 | *** New user option 'comint-terminfo-terminal'. | ||
| 817 | This option allows control of the value of the TERM environment | ||
| 818 | variable Emacs puts into the environment of the Comint mode and its | ||
| 819 | derivatives, such as Shell mode and Compilation Shell minor-mode. The | ||
| 820 | default is "dumb", for compatibility with previous behavior. | ||
| 821 | |||
| 810 | ** Compilation mode | 822 | ** Compilation mode |
| 811 | 823 | ||
| 812 | --- | 824 | --- |
| @@ -1462,6 +1474,17 @@ them through 'format' first. Even that is discouraged: for ElDoc | |||
| 1462 | support, you should set 'eldoc-documentation-function' instead of | 1474 | support, you should set 'eldoc-documentation-function' instead of |
| 1463 | calling 'eldoc-message' directly. | 1475 | calling 'eldoc-message' directly. |
| 1464 | 1476 | ||
| 1477 | --- | ||
| 1478 | ** Using '&rest' or '&optional' incorrectly is now an error. | ||
| 1479 | For example giving '&optional' without a following variable, or | ||
| 1480 | passing '&optional' multiple times: | ||
| 1481 | |||
| 1482 | (defun foo (&optional &rest x)) | ||
| 1483 | (defun bar (&optional &optional x)) | ||
| 1484 | |||
| 1485 | Previously, Emacs would just ignore the extra keyword, or give | ||
| 1486 | incorrect results in certain cases. | ||
| 1487 | |||
| 1465 | 1488 | ||
| 1466 | * Lisp Changes in Emacs 26.1 | 1489 | * Lisp Changes in Emacs 26.1 |
| 1467 | 1490 | ||
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." | |||
| 1310 | Argument ADVANCE-TIME is a number giving the time when the alarm | 1310 | Argument ADVANCE-TIME is a number giving the time when the alarm |
| 1311 | fires (minutes before the respective event). Argument ALARM-SPEC | 1311 | fires (minutes before the respective event). Argument ALARM-SPEC |
| 1312 | is a list which must be one of (audio), (display) or | 1312 | is 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 |
| 1314 | SUMMARY is a string which contains a short description for the | 1314 | SUMMARY is a string which contains a short description for the |
| 1315 | alarm." | 1315 | alarm." |
| 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 | |||
| 290 | by the user, but before the rest of the history entry that has | 290 | by the user, but before the rest of the history entry that has |
| 291 | been inserted. If `end-of-line', point will be positioned at the | 291 | been inserted. If `end-of-line', point will be positioned at the |
| 292 | end of the current logical (not visual) line after insertion." | 292 | end 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 @@ | |||
| 40 | If t, replace the original text without any confirmation. | 40 | If t, replace the original text without any confirmation. |
| 41 | If nil, don't replace the original text and show the result in a new buffer. | 41 | If nil, don't replace the original text and show the result in a new buffer. |
| 42 | If neither t nor nil, ask user for confirmation." | 42 | If 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 | |||
| 5199 | This allows you to stop `save-some-buffers' from asking | 5199 | This allows you to stop `save-some-buffers' from asking |
| 5200 | about certain files that you'd usually rather not save." | 5200 | about 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 | ||
| 749 | Internal use only." | 751 | Internal 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) |
| 427 | Multiple values for a tag may be combined, to indicate that any one or more | 427 | Multiple values for a tag may be combined, to indicate that any one or more |
| 428 | of these values in the specification key constitutes a match, eg:\n | 428 | of 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'. |
| 313 | Available format specifiers are described in | 314 | Available 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). |
| 2296 | With a prefix argument ARG, enable Menu Bar mode if ARG is | 2296 | With a prefix argument ARG, enable Menu Bar mode if ARG is |
| 2297 | positive, and disable it otherwise. If called from Lisp, enable | 2297 | positive, and disable it otherwise. If called from Lisp, also |
| 2298 | Menu Bar mode if ARG is omitted or nil. | 2298 | enable Menu Bar mode if ARG is omitted or nil. |
| 2299 | 2299 | ||
| 2300 | This command applies to all frames that exist and frames to be | 2300 | This command applies to all frames that exist and frames to be |
| 2301 | created in the future." | 2301 | created 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 | ||
| 218 | TYPE is `gnutls-x509pki' (default) or `gnutls-anon'. Use nil for the default. | 218 | TYPE is `gnutls-x509pki' (default) or `gnutls-anon'. Use nil for the default. |
| 219 | HOSTNAME is the remote hostname. It must be a valid string. | 219 | HOSTNAME is the remote hostname. It must be a valid string. |
| 220 | PRIORITY-STRING is as per the GnuTLS docs, default is \"NORMAL\". | 220 | PRIORITY-STRING is as per the GnuTLS docs, default is based on \"NORMAL\". |
| 221 | TRUSTFILES is a list of CA bundles. It defaults to `gnutls-trustfiles'. | 221 | TRUSTFILES is a list of CA bundles. It defaults to `gnutls-trustfiles'. |
| 222 | CRLFILES is a list of CRL files. | 222 | CRLFILES is a list of CRL files. |
| 223 | KEYLIST is an alist of (client key file, client cert file) pairs. | 223 | KEYLIST 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 | |||
| 99 | in this list with a matching MIME-TYPE and successful TEST is | 99 | in this list with a matching MIME-TYPE and successful TEST is |
| 100 | selected. Only if none matches, the standard `mailcap-mime-data' | 100 | selected. Only if none matches, the standard `mailcap-mime-data' |
| 101 | is consulted." | 101 | is 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. |
| 150 | For instance, eww uses this to alter rendering of title, forms | 150 | For instance, eww uses this to alter rendering of title, forms |
| 151 | and other things: | 151 | and 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 |
| 1930 | but they don't build a type of themselves. Unlike the keywords on | 1930 | also 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 | 1931 | themselves. Unlike the keywords on `c-primitive-type-kwds', they are |
| 1932 | not the type face." | 1932 | fontified 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 | ||
| 1948 | at the start, but they don't build a type of themselves. Unlike the keywords | ||
| 1949 | on `c-primitive-type-kwds', they are fontified with the keyword face and not | ||
| 1950 | the 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 |
| 2360 | identifiers, where each optionally can be prefixed by keywords. (Can | 2386 | identifiers, 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 | |||
| 1641 | whether a construct is a declaration or an expression. This happens | 1641 | whether a construct is a declaration or an expression. This happens |
| 1642 | particularly in C++, due to ambiguities in the language. When such a | 1642 | particularly in C++, due to ambiguities in the language. When such a |
| 1643 | construct is like \"foo * bar\" or \"foo &bar\", and this variable is non-nil | 1643 | construct 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 |
| 1645 | white space either before or after the operator, but not both." | 1645 | white 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. | |||
| 1658 | If you change this variable's value, call the function | 1659 | If 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 |
| 1660 | this implicitly by reinitializing C/C++/Objc Mode on any buffer)." | 1661 | this 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__\") |
| 1667 | which optionally have arguments in parentheses, and which expand to nothing. | 1669 | which optionally have arguments in parentheses, and which expand to nothing. |
| 1668 | These are recognized by CC Mode only in declarations." | 1670 | These 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. |
| 129 | Specifically, start it when the buffer is actually displayed." | 129 | Specifically, 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. |
| 164 | This is done to disambiguate file names in `grep's output." | 164 | This 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." | |||
| 587 | This is a non empty list of strings, the checker tool possibly | 587 | This is a non empty list of strings, the checker tool possibly |
| 588 | followed by required arguments. Once launched it will receive | 588 | followed by required arguments. Once launched it will receive |
| 589 | the Perl source to be checked as its standard input." | 589 | the 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 | |||
| 5165 | required arguments. Once launched it will receive the Python source to be | 5165 | required arguments. Once launched it will receive the Python source to be |
| 5166 | checked as its standard input. | 5166 | checked as its standard input. |
| 5167 | To use `flake8' you would set this to (\"flake8\" \"-\")." | 5167 | To 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. | |||
| 5186 | If COLUMN or TYPE are nil or that index didn't match, that | 5187 | If COLUMN or TYPE are nil or that index didn't match, that |
| 5187 | information is not present on the matched line and a default will | 5188 | information is not present on the matched line and a default will |
| 5188 | be used." | 5189 | be 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 | ||
| 5211 | By default messages are considered errors." | 5213 | By 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. |
| 2316 | Only takes effect if Rubocop is installed." | 2316 | Only 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 | |||
| 781 | containing SystemVerilog cells." | 781 | containing 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." | |||
| 1037 | STR is the incoming CSS hex color. | 1037 | STR is the incoming CSS hex color. |
| 1038 | This function simply drops any transparency." | 1038 | This 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." | |||
| 105 | This path is expanded relative to the directory of the Less file | 106 | This path is expanded relative to the directory of the Less file |
| 106 | using `expand-file-name', so both relative and absolute paths | 107 | using `expand-file-name', so both relative and absolute paths |
| 107 | will work as expected." | 108 | will 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 | |||
| 115 | the path is relative, it will be relative to the value of | 116 | the 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 |
| 117 | default." | 118 | default." |
| 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. | |||
| 131 | This can be also be set to a full path, or a relative path. If | 132 | This can be also be set to a full path, or a relative path. If |
| 132 | the path is relative, it will be relative to the current | 133 | the path is relative, it will be relative to the current |
| 133 | directory by default." | 134 | directory 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 | ||
| 351 | Returns (count . response) cons where count is number of string | 351 | Returns (count . response) cons where count is number of string |
| 352 | replacements done and response is one of symbols: t (all right), nil | 352 | replacements 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. |
| 2013 | Return new point, if it was moved." | 2010 | Return 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 | ||
| 279 | If no list entry produces a useful revision, return `nil'." | 279 | If 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 | ||
diff --git a/src/buffer.c b/src/buffer.c index 12a467daae4..75cb470af8d 100644 --- a/src/buffer.c +++ b/src/buffer.c | |||
| @@ -386,9 +386,9 @@ Value is nil if OBJECT is not a buffer or if it has been killed. */) | |||
| 386 | } | 386 | } |
| 387 | 387 | ||
| 388 | DEFUN ("buffer-list", Fbuffer_list, Sbuffer_list, 0, 1, 0, | 388 | DEFUN ("buffer-list", Fbuffer_list, Sbuffer_list, 0, 1, 0, |
| 389 | doc: /* Return a list of all existing live buffers. | 389 | doc: /* Return a list of all live buffers. |
| 390 | If the optional arg FRAME is a frame, we return the buffer list in the | 390 | If the optional arg FRAME is a frame, return the buffer list in the |
| 391 | proper order for that frame: the buffers show in FRAME come first, | 391 | proper order for that frame: the buffers shown in FRAME come first, |
| 392 | followed by the rest of the buffers. */) | 392 | followed by the rest of the buffers. */) |
| 393 | (Lisp_Object frame) | 393 | (Lisp_Object frame) |
| 394 | { | 394 | { |
diff --git a/src/data.c b/src/data.c index 3c9152049b7..b94c899a3d8 100644 --- a/src/data.c +++ b/src/data.c | |||
| @@ -1481,7 +1481,7 @@ SYMBOL is the variable being changed. | |||
| 1481 | NEWVAL is the value it will be changed to. | 1481 | NEWVAL is the value it will be changed to. |
| 1482 | OPERATION is a symbol representing the kind of change, one of: `set', | 1482 | OPERATION is a symbol representing the kind of change, one of: `set', |
| 1483 | `let', `unlet', `makunbound', and `defvaralias'. | 1483 | `let', `unlet', `makunbound', and `defvaralias'. |
| 1484 | WHERE is a buffer if the buffer-local value of the variable being | 1484 | WHERE is a buffer if the buffer-local value of the variable is being |
| 1485 | changed, nil otherwise. | 1485 | changed, nil otherwise. |
| 1486 | 1486 | ||
| 1487 | All writes to aliases of SYMBOL will call WATCH-FUNCTION too. */) | 1487 | All writes to aliases of SYMBOL will call WATCH-FUNCTION too. */) |
diff --git a/src/font.c b/src/font.c index 441652b0951..69efd7d56d2 100644 --- a/src/font.c +++ b/src/font.c | |||
| @@ -5055,10 +5055,10 @@ DEFUN ("font-info", Ffont_info, Sfont_info, 1, 2, 0, | |||
| 5055 | doc: /* Return information about a font named NAME on frame FRAME. | 5055 | doc: /* Return information about a font named NAME on frame FRAME. |
| 5056 | If FRAME is omitted or nil, use the selected frame. | 5056 | If FRAME is omitted or nil, use the selected frame. |
| 5057 | 5057 | ||
| 5058 | The returned value is a vector: | 5058 | The returned value is a vector of 14 elements: |
| 5059 | [ OPENED-NAME FULL-NAME SIZE HEIGHT BASELINE-OFFSET RELATIVE-COMPOSE | 5059 | [ OPENED-NAME FULL-NAME SIZE HEIGHT BASELINE-OFFSET RELATIVE-COMPOSE |
| 5060 | DEFAULT-ASCENT MAX-WIDTH ASCENT DESCENT SPACE-WIDTH AVERAGE-WIDTH | 5060 | DEFAULT-ASCENT MAX-WIDTH ASCENT DESCENT SPACE-WIDTH AVERAGE-WIDTH |
| 5061 | CAPABILITY ] | 5061 | FILENAME CAPABILITY ] |
| 5062 | where | 5062 | where |
| 5063 | OPENED-NAME is the name used for opening the font, | 5063 | OPENED-NAME is the name used for opening the font, |
| 5064 | FULL-NAME is the full name of the font, | 5064 | FULL-NAME is the full name of the font, |
| @@ -5068,12 +5068,12 @@ where | |||
| 5068 | RELATIVE-COMPOSE and DEFAULT-ASCENT are the numbers controlling | 5068 | RELATIVE-COMPOSE and DEFAULT-ASCENT are the numbers controlling |
| 5069 | how to compose characters, | 5069 | how to compose characters, |
| 5070 | MAX-WIDTH is the maximum advance width of the font, | 5070 | MAX-WIDTH is the maximum advance width of the font, |
| 5071 | ASCENT, DESCENT, SPACE-WIDTH, AVERAGE-WIDTH are metrics of the font | 5071 | ASCENT, DESCENT, SPACE-WIDTH, and AVERAGE-WIDTH are metrics of |
| 5072 | in pixels, | 5072 | the font in pixels, |
| 5073 | FILENAME is the font file name, a string (or nil if the font backend | 5073 | FILENAME is the font file name, a string (or nil if the font backend |
| 5074 | doesn't provide a file name). | 5074 | doesn't provide a file name). |
| 5075 | CAPABILITY is a list whose first element is a symbol representing the | 5075 | CAPABILITY is a list whose first element is a symbol representing the |
| 5076 | font format, one of x, opentype, truetype, type1, pcf, or bdf. | 5076 | font format, one of `x', `opentype', `truetype', `type1', `pcf', or `bdf'. |
| 5077 | The remaining elements describe the details of the font capabilities, | 5077 | The remaining elements describe the details of the font capabilities, |
| 5078 | as follows: | 5078 | as follows: |
| 5079 | 5079 | ||
diff --git a/src/frame.c b/src/frame.c index 94ec9fbdc7d..09c0e79bdef 100644 --- a/src/frame.c +++ b/src/frame.c | |||
| @@ -1608,6 +1608,8 @@ next_frame (Lisp_Object frame, Lisp_Object minibuf) | |||
| 1608 | Lisp_Object f, tail; | 1608 | Lisp_Object f, tail; |
| 1609 | int passed = 0; | 1609 | int passed = 0; |
| 1610 | 1610 | ||
| 1611 | eassume (CONSP (Vframe_list)); | ||
| 1612 | |||
| 1611 | while (passed < 2) | 1613 | while (passed < 2) |
| 1612 | FOR_EACH_FRAME (tail, f) | 1614 | FOR_EACH_FRAME (tail, f) |
| 1613 | { | 1615 | { |
| @@ -1630,6 +1632,8 @@ prev_frame (Lisp_Object frame, Lisp_Object minibuf) | |||
| 1630 | { | 1632 | { |
| 1631 | Lisp_Object f, tail, prev = Qnil; | 1633 | Lisp_Object f, tail, prev = Qnil; |
| 1632 | 1634 | ||
| 1635 | eassume (CONSP (Vframe_list)); | ||
| 1636 | |||
| 1633 | FOR_EACH_FRAME (tail, f) | 1637 | FOR_EACH_FRAME (tail, f) |
| 1634 | { | 1638 | { |
| 1635 | if (EQ (frame, f) && !NILP (prev)) | 1639 | if (EQ (frame, f) && !NILP (prev)) |
| @@ -1915,6 +1919,7 @@ delete_frame (Lisp_Object frame, Lisp_Object force) | |||
| 1915 | if (f == sf) | 1919 | if (f == sf) |
| 1916 | { | 1920 | { |
| 1917 | Lisp_Object tail; | 1921 | Lisp_Object tail; |
| 1922 | eassume (CONSP (Vframe_list)); | ||
| 1918 | 1923 | ||
| 1919 | /* Look for another visible frame on the same terminal. | 1924 | /* Look for another visible frame on the same terminal. |
| 1920 | Do not call next_frame here because it may loop forever. | 1925 | Do not call next_frame here because it may loop forever. |
diff --git a/src/frame.h b/src/frame.h index a3b77636435..a5d4e4fc88b 100644 --- a/src/frame.h +++ b/src/frame.h | |||
| @@ -1149,8 +1149,7 @@ default_pixels_per_inch_y (void) | |||
| 1149 | /* FOR_EACH_FRAME (LIST_VAR, FRAME_VAR) followed by a statement is a | 1149 | /* FOR_EACH_FRAME (LIST_VAR, FRAME_VAR) followed by a statement is a |
| 1150 | `for' loop which iterates over the elements of Vframe_list. The | 1150 | `for' loop which iterates over the elements of Vframe_list. The |
| 1151 | loop will set FRAME_VAR, a Lisp_Object, to each frame in | 1151 | loop will set FRAME_VAR, a Lisp_Object, to each frame in |
| 1152 | Vframe_list in succession and execute the statement. Vframe_list | 1152 | Vframe_list in succession and execute the statement. LIST_VAR |
| 1153 | should be nonempty, so the body is executed at least once. LIST_VAR | ||
| 1154 | should be a Lisp_Object too; it is used to iterate through the | 1153 | should be a Lisp_Object too; it is used to iterate through the |
| 1155 | Vframe_list. Note that this macro walks over child frames and | 1154 | Vframe_list. Note that this macro walks over child frames and |
| 1156 | the tooltip frame as well. | 1155 | the tooltip frame as well. |
| @@ -1160,7 +1159,7 @@ default_pixels_per_inch_y (void) | |||
| 1160 | something which executes the statement once. */ | 1159 | something which executes the statement once. */ |
| 1161 | 1160 | ||
| 1162 | #define FOR_EACH_FRAME(list_var, frame_var) \ | 1161 | #define FOR_EACH_FRAME(list_var, frame_var) \ |
| 1163 | for ((list_var) = (eassume (CONSP (Vframe_list)), Vframe_list); \ | 1162 | for ((list_var) = Vframe_list; \ |
| 1164 | (CONSP (list_var) \ | 1163 | (CONSP (list_var) \ |
| 1165 | && (frame_var = XCAR (list_var), true)); \ | 1164 | && (frame_var = XCAR (list_var), true)); \ |
| 1166 | list_var = XCDR (list_var)) | 1165 | list_var = XCDR (list_var)) |
diff --git a/src/xdisp.c b/src/xdisp.c index 3791d982b28..efc47b39e60 100644 --- a/src/xdisp.c +++ b/src/xdisp.c | |||
| @@ -25087,19 +25087,25 @@ invisible_prop (Lisp_Object propval, Lisp_Object list) | |||
| 25087 | } | 25087 | } |
| 25088 | 25088 | ||
| 25089 | DEFUN ("invisible-p", Finvisible_p, Sinvisible_p, 1, 1, 0, | 25089 | DEFUN ("invisible-p", Finvisible_p, Sinvisible_p, 1, 1, 0, |
| 25090 | doc: /* Non-nil if the property makes the text invisible. | 25090 | doc: /* Non-nil if text properties at POS cause text there to be currently invisible. |
| 25091 | POS-OR-PROP can be a marker or number, in which case it is taken to be | 25091 | POS should be a marker or a buffer position; the value of the `invisible' |
| 25092 | a position in the current buffer and the value of the `invisible' property | 25092 | property at that position in the current buffer is examined. |
| 25093 | is checked; or it can be some other value, which is then presumed to be the | 25093 | POS can also be the actual value of the `invisible' text or overlay |
| 25094 | value of the `invisible' property of the text of interest. | 25094 | property of the text of interest, in which case the value itself is |
| 25095 | The non-nil value returned can be t for truly invisible text or something | 25095 | examined. |
| 25096 | else if the text is replaced by an ellipsis. */) | 25096 | |
| 25097 | (Lisp_Object pos_or_prop) | 25097 | The non-nil value returned can be t for currently invisible text that is |
| 25098 | entirely hidden on display, or some other non-nil, non-t value if the | ||
| 25099 | text is replaced by an ellipsis. | ||
| 25100 | |||
| 25101 | Note that whether text with `invisible' property is actually hidden on | ||
| 25102 | display may depend on `buffer-invisibility-spec', which see. */) | ||
| 25103 | (Lisp_Object pos) | ||
| 25098 | { | 25104 | { |
| 25099 | Lisp_Object prop | 25105 | Lisp_Object prop |
| 25100 | = (NATNUMP (pos_or_prop) || MARKERP (pos_or_prop) | 25106 | = (NATNUMP (pos) || MARKERP (pos) |
| 25101 | ? Fget_char_property (pos_or_prop, Qinvisible, Qnil) | 25107 | ? Fget_char_property (pos, Qinvisible, Qnil) |
| 25102 | : pos_or_prop); | 25108 | : pos); |
| 25103 | int invis = TEXT_PROP_MEANS_INVISIBLE (prop); | 25109 | int invis = TEXT_PROP_MEANS_INVISIBLE (prop); |
| 25104 | return (invis == 0 ? Qnil | 25110 | return (invis == 0 ? Qnil |
| 25105 | : invis == 1 ? Qt | 25111 | : invis == 1 ? Qt |
diff --git a/test/lisp/net/tramp-tests.el b/test/lisp/net/tramp-tests.el index 1bcd3a0f98b..41687e41c8d 100644 --- a/test/lisp/net/tramp-tests.el +++ b/test/lisp/net/tramp-tests.el | |||
| @@ -3671,7 +3671,7 @@ This tests also `make-symbolic-link', `file-truename' and `add-name-to-file'." | |||
| 3671 | (format "%s=%d" envvar port) | 3671 | (format "%s=%d" envvar port) |
| 3672 | tramp-remote-process-environment))) | 3672 | tramp-remote-process-environment))) |
| 3673 | (should | 3673 | (should |
| 3674 | (string-equal | 3674 | (string-match |
| 3675 | (number-to-string port) | 3675 | (number-to-string port) |
| 3676 | (shell-command-to-string (format "echo -n $%s" envvar)))))) | 3676 | (shell-command-to-string (format "echo -n $%s" envvar)))))) |
| 3677 | 3677 | ||
diff --git a/test/lisp/textmodes/css-mode-tests.el b/test/lisp/textmodes/css-mode-tests.el index 47cf5f9244b..1e58751f140 100644 --- a/test/lisp/textmodes/css-mode-tests.el +++ b/test/lisp/textmodes/css-mode-tests.el | |||
| @@ -295,6 +295,12 @@ | |||
| 295 | (insert input ")")) | 295 | (insert input ")")) |
| 296 | (should (equal (css--hsl-color) "#ff0000"))))) | 296 | (should (equal (css--hsl-color) "#ff0000"))))) |
| 297 | 297 | ||
| 298 | (ert-deftest css-test-hex-color () | ||
| 299 | (should (equal (css--hex-color "#abc") "#abc")) | ||
| 300 | (should (equal (css--hex-color "#abcd") "#abc")) | ||
| 301 | (should (equal (css--hex-color "#aabbcc") "#aabbcc")) | ||
| 302 | (should (equal (css--hex-color "#aabbccdd") "#aabbcc"))) | ||
| 303 | |||
| 298 | (ert-deftest css-test-named-color () | 304 | (ert-deftest css-test-named-color () |
| 299 | (dolist (text '("@mixin black" "@include black")) | 305 | (dolist (text '("@mixin black" "@include black")) |
| 300 | (with-temp-buffer | 306 | (with-temp-buffer |