diff options
| author | Dmitry Gutov | 2019-05-24 04:53:39 +0300 |
|---|---|---|
| committer | Dmitry Gutov | 2019-05-24 04:53:39 +0300 |
| commit | 8cdb9d9d24be0894ec3adc79f7f4af61e131850e (patch) | |
| tree | 05cfdc9237eaf1abe30911caca26e95e2c68f4bd | |
| parent | 62349fe82ad42d7d2a7fb19e40860ee5d6ebd017 (diff) | |
| parent | 5b6401b001c770f5426597175a90ba78ddca79ef (diff) | |
| download | emacs-8cdb9d9d24be0894ec3adc79f7f4af61e131850e.tar.gz emacs-8cdb9d9d24be0894ec3adc79f7f4af61e131850e.zip | |
Merge branch 'master' of git.sv.gnu.org:/srv/git/emacs
449 files changed, 2260 insertions, 1934 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 92efcf64973..df48764c52a 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml | |||
| @@ -21,7 +21,7 @@ | |||
| 21 | # any particular service that uses that protocol. Also, it is intended for | 21 | # any particular service that uses that protocol. Also, it is intended for |
| 22 | # evaluation purposes, thus possibly temporary. | 22 | # evaluation purposes, thus possibly temporary. |
| 23 | 23 | ||
| 24 | # Maintainer: tzz@lifelogs.com | 24 | # Maintainer: Ted Zlatanov <tzz@lifelogs.com> |
| 25 | # URL: https://emba.gnu.org/emacs/emacs | 25 | # URL: https://emba.gnu.org/emacs/emacs |
| 26 | 26 | ||
| 27 | image: debian:stretch | 27 | image: debian:stretch |
diff --git a/admin/authors.el b/admin/authors.el index a3f8bdde841..8329f3f581c 100644 --- a/admin/authors.el +++ b/admin/authors.el | |||
| @@ -1,10 +1,8 @@ | |||
| 1 | |||
| 2 | ;;; authors.el --- utility for maintaining Emacs's AUTHORS file | 1 | ;;; authors.el --- utility for maintaining Emacs's AUTHORS file |
| 3 | 2 | ||
| 4 | ;; Copyright (C) 2000-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 2000-2019 Free Software Foundation, Inc. |
| 5 | 4 | ||
| 6 | ;; Author: Gerd Moellmann <gerd@gnu.org> | 5 | ;; Author: Gerd Moellmann <gerd@gnu.org> |
| 7 | ;; Maintainer: emacs-devel@gnu.org | ||
| 8 | ;; Keywords: maint | 6 | ;; Keywords: maint |
| 9 | ;; Package: emacs | 7 | ;; Package: emacs |
| 10 | 8 | ||
diff --git a/admin/find-gc.el b/admin/find-gc.el index bf93c4eedf4..9b925565dfb 100644 --- a/admin/find-gc.el +++ b/admin/find-gc.el | |||
| @@ -2,8 +2,6 @@ | |||
| 2 | 2 | ||
| 3 | ;; Copyright (C) 1992, 2001-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1992, 2001-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Maintainer: emacs-devel@gnu.org | ||
| 6 | |||
| 7 | ;; This file is part of GNU Emacs. | 5 | ;; This file is part of GNU Emacs. |
| 8 | 6 | ||
| 9 | ;; GNU Emacs is free software: you can redistribute it and/or modify | 7 | ;; GNU Emacs is free software: you can redistribute it and/or modify |
diff --git a/admin/last-chance.el b/admin/last-chance.el index 5f993be18e2..ceed1c7cfa3 100644 --- a/admin/last-chance.el +++ b/admin/last-chance.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 2016-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 2016-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: Thien-Thi Nguyen <ttn@gnu.org> | 5 | ;; Author: Thien-Thi Nguyen <ttn@gnu.org> |
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Keywords: maint | 6 | ;; Keywords: maint |
| 8 | ;; Package: emacs | 7 | ;; Package: emacs |
| 9 | 8 | ||
diff --git a/autogen.sh b/autogen.sh index 40d0c37b11b..cff4a54be56 100755 --- a/autogen.sh +++ b/autogen.sh | |||
| @@ -4,7 +4,6 @@ | |||
| 4 | ## Copyright (C) 2011-2019 Free Software Foundation, Inc. | 4 | ## Copyright (C) 2011-2019 Free Software Foundation, Inc. |
| 5 | 5 | ||
| 6 | ## Author: Glenn Morris <rgm@gnu.org> | 6 | ## Author: Glenn Morris <rgm@gnu.org> |
| 7 | ## Maintainer: emacs-devel@gnu.org | ||
| 8 | 7 | ||
| 9 | ## This file is part of GNU Emacs. | 8 | ## This file is part of GNU Emacs. |
| 10 | 9 | ||
| @@ -316,8 +315,16 @@ git_config transfer.fsckObjects true | |||
| 316 | 315 | ||
| 317 | # Configure 'git diff' hunk header format. | 316 | # Configure 'git diff' hunk header format. |
| 318 | 317 | ||
| 318 | # This xfuncname is based on Git's built-in 'cpp' pattern. | ||
| 319 | # The first line rejects jump targets and access declarations. | ||
| 320 | # The second line matches top-level functions and methods. | ||
| 321 | # The third line matches preprocessor and DEFUN macros. | ||
| 322 | git_config diff.cpp.xfuncname \ | ||
| 323 | '!^[ \t]*[A-Za-z_][A-Za-z_0-9]*:[[:space:]]*($|/[/*]) | ||
| 324 | ^((::[[:space:]]*)?[A-Za-z_][A-Za-z_0-9]*[[:space:]]*\(.*)$ | ||
| 325 | ^((#define[[:space:]]|DEFUN).*)$' | ||
| 319 | git_config diff.elisp.xfuncname \ | 326 | git_config diff.elisp.xfuncname \ |
| 320 | '^\(def[^[:space:]]+[[:space:]]+([^()[:space:]]+)' | 327 | '^\([^[:space:]]*def[^[:space:]]+[[:space:]]+([^()[:space:]]+)' |
| 321 | git_config 'diff.m4.xfuncname' '^((m4_)?define|A._DEFUN(_ONCE)?)\([^),]*' | 328 | git_config 'diff.m4.xfuncname' '^((m4_)?define|A._DEFUN(_ONCE)?)\([^),]*' |
| 322 | git_config 'diff.make.xfuncname' \ | 329 | git_config 'diff.make.xfuncname' \ |
| 323 | '^([$.[:alnum:]_].*:|[[:alnum:]_]+[[:space:]]*([*:+]?[:?]?|!?)=|define .*)' | 330 | '^([$.[:alnum:]_].*:|[[:alnum:]_]+[[:space:]]*([*:+]?[:?]?|!?)=|define .*)' |
| @@ -332,7 +339,7 @@ git_config diff.texinfo.xfuncname \ | |||
| 332 | tailored_hooks= | 339 | tailored_hooks= |
| 333 | sample_hooks= | 340 | sample_hooks= |
| 334 | 341 | ||
| 335 | for hook in commit-msg pre-commit; do | 342 | for hook in commit-msg pre-commit prepare-commit-msg; do |
| 336 | cmp -- build-aux/git-hooks/$hook "$hooks/$hook" >/dev/null 2>&1 || | 343 | cmp -- build-aux/git-hooks/$hook "$hooks/$hook" >/dev/null 2>&1 || |
| 337 | tailored_hooks="$tailored_hooks $hook" | 344 | tailored_hooks="$tailored_hooks $hook" |
| 338 | done | 345 | done |
diff --git a/build-aux/git-hooks/prepare-commit-msg b/build-aux/git-hooks/prepare-commit-msg new file mode 100755 index 00000000000..3562a802234 --- /dev/null +++ b/build-aux/git-hooks/prepare-commit-msg | |||
| @@ -0,0 +1,45 @@ | |||
| 1 | #!/bin/sh | ||
| 2 | # Check the format of GNU Emacs change log entries. | ||
| 3 | |||
| 4 | # Copyright 2019 Free Software Foundation, Inc. | ||
| 5 | |||
| 6 | # This file is part of GNU Emacs. | ||
| 7 | |||
| 8 | # GNU Emacs is free software: you can redistribute it and/or modify | ||
| 9 | # it under the terms of the GNU General Public License as published by | ||
| 10 | # the Free Software Foundation, either version 3 of the License, or | ||
| 11 | # (at your option) any later version. | ||
| 12 | |||
| 13 | # GNU Emacs is distributed in the hope that it will be useful, | ||
| 14 | # but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 15 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 16 | # GNU General Public License for more details. | ||
| 17 | |||
| 18 | # You should have received a copy of the GNU General Public License | ||
| 19 | # along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>. | ||
| 20 | |||
| 21 | COMMIT_MSG_FILE=$1 | ||
| 22 | COMMIT_SOURCE=$2 | ||
| 23 | SHA1=$3 | ||
| 24 | |||
| 25 | # Prefer gawk if available, as it handles NUL bytes properly. | ||
| 26 | if type gawk >/dev/null 2>&1; then | ||
| 27 | awk=gawk | ||
| 28 | else | ||
| 29 | awk=awk | ||
| 30 | fi | ||
| 31 | |||
| 32 | exec $awk ' | ||
| 33 | # Catch the case when someone ran git-commit with -s option, | ||
| 34 | # which automatically adds Signed-off-by. | ||
| 35 | /^Signed-off-by: / { | ||
| 36 | print "'\''Signed-off-by:'\'' in commit message" | ||
| 37 | status = 1 | ||
| 38 | } | ||
| 39 | END { | ||
| 40 | if (status != 0) { | ||
| 41 | print "Commit aborted; please see the file 'CONTRIBUTE'" | ||
| 42 | } | ||
| 43 | exit status | ||
| 44 | } | ||
| 45 | ' <"$COMMIT_MSG_FILE" | ||
diff --git a/build-aux/make-info-dir b/build-aux/make-info-dir index 2dcac87b489..51f384aff8f 100755 --- a/build-aux/make-info-dir +++ b/build-aux/make-info-dir | |||
| @@ -5,7 +5,6 @@ | |||
| 5 | ## Copyright (C) 2013-2019 Free Software Foundation, Inc. | 5 | ## Copyright (C) 2013-2019 Free Software Foundation, Inc. |
| 6 | 6 | ||
| 7 | ## Author: Glenn Morris <rgm@gnu.org> | 7 | ## Author: Glenn Morris <rgm@gnu.org> |
| 8 | ## Maintainer: emacs-devel@gnu.org | ||
| 9 | 8 | ||
| 10 | ## This file is part of GNU Emacs. | 9 | ## This file is part of GNU Emacs. |
| 11 | 10 | ||
diff --git a/doc/emacs/building.texi b/doc/emacs/building.texi index 518d157e4ee..6e16588861e 100644 --- a/doc/emacs/building.texi +++ b/doc/emacs/building.texi | |||
| @@ -1521,6 +1521,12 @@ library lets Emacs properly set up the hyperlinks in the @file{*Help*} | |||
| 1521 | buffer). To disable this feature, change the variable | 1521 | buffer). To disable this feature, change the variable |
| 1522 | @code{help-enable-auto-load} to @code{nil}. | 1522 | @code{help-enable-auto-load} to @code{nil}. |
| 1523 | 1523 | ||
| 1524 | @vindex help-enable-completion-auto-load | ||
| 1525 | Automatic loading also occurs when completing names for | ||
| 1526 | @code{describe-variable} and @code{describe-function}, based on the | ||
| 1527 | prefix being completed. To disable this feature, change the variable | ||
| 1528 | @code{help-enable-completion-auto-load} to @code{nil}. | ||
| 1529 | |||
| 1524 | @vindex load-dangerous-libraries | 1530 | @vindex load-dangerous-libraries |
| 1525 | @cindex Lisp files byte-compiled by XEmacs | 1531 | @cindex Lisp files byte-compiled by XEmacs |
| 1526 | By default, Emacs refuses to load compiled Lisp files which were | 1532 | By default, Emacs refuses to load compiled Lisp files which were |
diff --git a/doc/emacs/custom.texi b/doc/emacs/custom.texi index 8a8ac5d0464..bdd6decb6b5 100644 --- a/doc/emacs/custom.texi +++ b/doc/emacs/custom.texi | |||
| @@ -801,6 +801,7 @@ Its value is 70 | |||
| 801 | Automatically becomes buffer-local when set. | 801 | Automatically becomes buffer-local when set. |
| 802 | This variable is safe as a file local variable if its value | 802 | This variable is safe as a file local variable if its value |
| 803 | satisfies the predicate ‘integerp’. | 803 | satisfies the predicate ‘integerp’. |
| 804 | Probably introduced at or before Emacs version 18. | ||
| 804 | 805 | ||
| 805 | Documentation: | 806 | Documentation: |
| 806 | Column beyond which automatic line-wrapping should happen. | 807 | Column beyond which automatic line-wrapping should happen. |
diff --git a/doc/emacs/programs.texi b/doc/emacs/programs.texi index c1ad5b57023..28bfa5b578f 100644 --- a/doc/emacs/programs.texi +++ b/doc/emacs/programs.texi | |||
| @@ -1298,8 +1298,11 @@ count as blocks. | |||
| 1298 | @findex hs-show-block | 1298 | @findex hs-show-block |
| 1299 | @findex hs-show-region | 1299 | @findex hs-show-region |
| 1300 | @findex hs-hide-level | 1300 | @findex hs-hide-level |
| 1301 | @findex hs-toggle-hiding | ||
| 1302 | @findex hs-mouse-toggle-hiding | ||
| 1301 | @kindex C-c @@ C-h | 1303 | @kindex C-c @@ C-h |
| 1302 | @kindex C-c @@ C-s | 1304 | @kindex C-c @@ C-s |
| 1305 | @kindex C-c @@ C-c | ||
| 1303 | @kindex C-c @@ C-M-h | 1306 | @kindex C-c @@ C-M-h |
| 1304 | @kindex C-c @@ C-M-s | 1307 | @kindex C-c @@ C-M-s |
| 1305 | @kindex C-c @@ C-r | 1308 | @kindex C-c @@ C-r |
| @@ -1312,7 +1315,7 @@ Hide the current block (@code{hs-hide-block}). | |||
| 1312 | @item C-c @@ C-s | 1315 | @item C-c @@ C-s |
| 1313 | Show the current block (@code{hs-show-block}). | 1316 | Show the current block (@code{hs-show-block}). |
| 1314 | @item C-c @@ C-c | 1317 | @item C-c @@ C-c |
| 1315 | @itemx C-x @@ C-e | 1318 | @itemx C-c @@ C-e |
| 1316 | Either hide or show the current block (@code{hs-toggle-hiding}). | 1319 | Either hide or show the current block (@code{hs-toggle-hiding}). |
| 1317 | @item S-mouse-2 | 1320 | @item S-mouse-2 |
| 1318 | Toggle hiding for the block you click on (@code{hs-mouse-toggle-hiding}). | 1321 | Toggle hiding for the block you click on (@code{hs-mouse-toggle-hiding}). |
diff --git a/doc/lispref/functions.texi b/doc/lispref/functions.texi index 97f7fb9f79e..2f9d898c9b0 100644 --- a/doc/lispref/functions.texi +++ b/doc/lispref/functions.texi | |||
| @@ -1122,6 +1122,10 @@ a byte-code function object (@pxref{Byte Compilation}). | |||
| 1122 | When lexical binding is enabled, @var{function-object} is converted | 1122 | When lexical binding is enabled, @var{function-object} is converted |
| 1123 | into a closure. @xref{Closures}. | 1123 | into a closure. @xref{Closures}. |
| 1124 | @end itemize | 1124 | @end itemize |
| 1125 | |||
| 1126 | When @var{function-object} is a symbol and the code is byte compiled, | ||
| 1127 | the byte-compiler will warn if that function is not defined or might | ||
| 1128 | not be known at run time. | ||
| 1125 | @end defspec | 1129 | @end defspec |
| 1126 | 1130 | ||
| 1127 | @cindex @samp{#'} syntax | 1131 | @cindex @samp{#'} syntax |
diff --git a/doc/lispref/hooks.texi b/doc/lispref/hooks.texi index 71992464e09..f775aa4d4b0 100644 --- a/doc/lispref/hooks.texi +++ b/doc/lispref/hooks.texi | |||
| @@ -251,6 +251,7 @@ I thought did not need to be mentioned here: | |||
| 251 | 251 | ||
| 252 | Lisp: | 252 | Lisp: |
| 253 | after-load-functions | 253 | after-load-functions |
| 254 | after-set-visited-file-name-hook | ||
| 254 | auto-coding-functions | 255 | auto-coding-functions |
| 255 | choose-completion-string-functions | 256 | choose-completion-string-functions |
| 256 | completing-read-function | 257 | completing-read-function |
diff --git a/doc/lispref/loading.texi b/doc/lispref/loading.texi index 6f1213f097b..3261e6d1888 100644 --- a/doc/lispref/loading.texi +++ b/doc/lispref/loading.texi | |||
| @@ -466,9 +466,11 @@ first call to the function automatically loads the proper library, in | |||
| 466 | order to install the real definition and other associated code, then | 466 | order to install the real definition and other associated code, then |
| 467 | runs the real definition as if it had been loaded all along. | 467 | runs the real definition as if it had been loaded all along. |
| 468 | Autoloading can also be triggered by looking up the documentation of | 468 | Autoloading can also be triggered by looking up the documentation of |
| 469 | the function or macro (@pxref{Documentation Basics}). | 469 | the function or macro (@pxref{Documentation Basics}), and completion |
| 470 | of variable and function names (@pxref{Autoload by Prefix} below). | ||
| 470 | 471 | ||
| 471 | @menu | 472 | @menu |
| 473 | * Autoload by Prefix:: Autoload by Prefix. | ||
| 472 | * When to Autoload:: When to Use Autoload. | 474 | * When to Autoload:: When to Use Autoload. |
| 473 | @end menu | 475 | @end menu |
| 474 | 476 | ||
| @@ -703,6 +705,25 @@ symbol's new function value. If the value of the optional argument | |||
| 703 | function, only a macro. | 705 | function, only a macro. |
| 704 | @end defun | 706 | @end defun |
| 705 | 707 | ||
| 708 | @node Autoload by Prefix | ||
| 709 | @subsection Autoload by Prefix | ||
| 710 | @cindex autoload by prefix | ||
| 711 | |||
| 712 | @vindex definition-prefixes | ||
| 713 | @findex register-definition-prefixes | ||
| 714 | @vindex autoload-compute-prefixes | ||
| 715 | During completion for the commands @code{describe-variable} and | ||
| 716 | @code{describe-function}, Emacs will try to load files which may | ||
| 717 | contain definitions matching the prefix being completed. The variable | ||
| 718 | @code{definition-prefixes} holds a hashtable which maps a prefix to | ||
| 719 | the corresponding list of files to load for it. Entries to this | ||
| 720 | mapping are added by calls to @code{register-definition-prefixes} | ||
| 721 | which are generated by @code{update-file-autoloads} | ||
| 722 | (@pxref{Autoload}). Files which don't contain any definitions worth | ||
| 723 | loading (test files, for examples), should set | ||
| 724 | @code{autoload-compute-prefixes} to @code{nil} as a file-local | ||
| 725 | variable. | ||
| 726 | |||
| 706 | @node When to Autoload | 727 | @node When to Autoload |
| 707 | @subsection When to Use Autoload | 728 | @subsection When to Use Autoload |
| 708 | @cindex autoload, when to use | 729 | @cindex autoload, when to use |
diff --git a/doc/lispref/sequences.texi b/doc/lispref/sequences.texi index a7f270c0680..4b67a5f9f1a 100644 --- a/doc/lispref/sequences.texi +++ b/doc/lispref/sequences.texi | |||
| @@ -601,7 +601,7 @@ returned value is a list. | |||
| 601 | @defun seq-mapn function &rest sequences | 601 | @defun seq-mapn function &rest sequences |
| 602 | This function returns the result of applying @var{function} to each | 602 | This function returns the result of applying @var{function} to each |
| 603 | element of @var{sequences}. The arity (@pxref{What Is a Function, | 603 | element of @var{sequences}. The arity (@pxref{What Is a Function, |
| 604 | sub-arity}) of @var{function} must match the number of sequences. | 604 | subr-arity}) of @var{function} must match the number of sequences. |
| 605 | Mapping stops at the end of the shortest sequence, and the returned | 605 | Mapping stops at the end of the shortest sequence, and the returned |
| 606 | value is a list. | 606 | value is a list. |
| 607 | 607 | ||
diff --git a/doc/lispref/variables.texi b/doc/lispref/variables.texi index aca7d2f5e93..932b7c829b9 100644 --- a/doc/lispref/variables.texi +++ b/doc/lispref/variables.texi | |||
| @@ -2009,7 +2009,7 @@ all files in those directories. The list in @var{variables} can be of | |||
| 2009 | one of the two forms: @code{(@var{major-mode} . @var{alist})} or | 2009 | one of the two forms: @code{(@var{major-mode} . @var{alist})} or |
| 2010 | @code{(@var{directory} . @var{list})}. With the first form, if the | 2010 | @code{(@var{directory} . @var{list})}. With the first form, if the |
| 2011 | file's buffer turns on a mode that is derived from @var{major-mode}, | 2011 | file's buffer turns on a mode that is derived from @var{major-mode}, |
| 2012 | then the all the variables in the associated @var{alist} are applied; | 2012 | then all the variables in the associated @var{alist} are applied; |
| 2013 | @var{alist} should be of the form @code{(@var{name} . @var{value})}. | 2013 | @var{alist} should be of the form @code{(@var{name} . @var{value})}. |
| 2014 | A special value @code{nil} for @var{major-mode} means the settings are | 2014 | A special value @code{nil} for @var{major-mode} means the settings are |
| 2015 | applicable to any mode. In @var{alist}, you can use a special | 2015 | applicable to any mode. In @var{alist}, you can use a special |
| @@ -153,6 +153,12 @@ after Emacs has finished initialization and is ready for use. | |||
| 153 | emacs.service file to eg "~/.config/systemd/user/", you will need to copy | 153 | emacs.service file to eg "~/.config/systemd/user/", you will need to copy |
| 154 | the new version of the file again.) | 154 | the new version of the file again.) |
| 155 | 155 | ||
| 156 | +++ | ||
| 157 | ** New option 'help-enable-completion-auto-load'. | ||
| 158 | This allows disabling the new feature introduced in Emacs 26.1 which | ||
| 159 | loads files during completion of 'C-h f' and 'C-h v' according to | ||
| 160 | 'definition-prefixes'. | ||
| 161 | |||
| 156 | 162 | ||
| 157 | * Changes in Emacs 27.1 | 163 | * Changes in Emacs 27.1 |
| 158 | 164 | ||
| @@ -1321,6 +1327,12 @@ when given in a string. Previously, '(any "\x80-\xff")' would match | |||
| 1321 | characters U+0080...U+00FF. Now the expression matches raw bytes in | 1327 | characters U+0080...U+00FF. Now the expression matches raw bytes in |
| 1322 | the 128...255 range, as expected. | 1328 | the 128...255 range, as expected. |
| 1323 | 1329 | ||
| 1330 | *** The rx 'or' and 'seq' forms no longer require any arguments. | ||
| 1331 | (or) produces a regexp that never matches anything, while (seq) | ||
| 1332 | matches the empty string, each being an identity for the operation. | ||
| 1333 | This also works for their aliases: '|' for 'or'; ':', 'and' and | ||
| 1334 | 'sequence' for 'seq'. | ||
| 1335 | |||
| 1324 | ** Frames | 1336 | ** Frames |
| 1325 | 1337 | ||
| 1326 | +++ | 1338 | +++ |
| @@ -1443,8 +1455,7 @@ When set to a non-nil value, buffers in Auto Revert mode are no longer | |||
| 1443 | polled for changes periodically. This reduces the power consumption | 1455 | polled for changes periodically. This reduces the power consumption |
| 1444 | of an idle Emacs, but may fail on some network file systems; set | 1456 | of an idle Emacs, but may fail on some network file systems; set |
| 1445 | 'auto-revert-notify-exclude-dir-regexp' to match files where | 1457 | 'auto-revert-notify-exclude-dir-regexp' to match files where |
| 1446 | notification is not supported. The new variable currently has no | 1458 | notification is not supported. The default value is nil. |
| 1447 | effect in 'global-auto-revert-mode'. The default value is nil. | ||
| 1448 | 1459 | ||
| 1449 | *** New variable 'buffer-auto-revert-by-notification' | 1460 | *** New variable 'buffer-auto-revert-by-notification' |
| 1450 | A major mode can declare that notification on the buffer's default | 1461 | A major mode can declare that notification on the buffer's default |
diff --git a/etc/refcards/Makefile b/etc/refcards/Makefile index 469e8fa05cd..0ba6db5aa28 100644 --- a/etc/refcards/Makefile +++ b/etc/refcards/Makefile | |||
| @@ -40,7 +40,7 @@ PDF_CZECH = \ | |||
| 40 | PDF_FRENCH = \ | 40 | PDF_FRENCH = \ |
| 41 | fr-dired-ref.pdf \ | 41 | fr-dired-ref.pdf \ |
| 42 | fr-refcard.pdf \ | 42 | fr-refcard.pdf \ |
| 43 | fr-survival.pdf \ | 43 | fr-survival.pdf |
| 44 | 44 | ||
| 45 | PDF_GERMAN = de-refcard.pdf | 45 | PDF_GERMAN = de-refcard.pdf |
| 46 | 46 | ||
diff --git a/etc/tutorials/TUTORIAL.translators b/etc/tutorials/TUTORIAL.translators index 2747d39d355..b6b95787068 100644 --- a/etc/tutorials/TUTORIAL.translators +++ b/etc/tutorials/TUTORIAL.translators | |||
| @@ -41,8 +41,8 @@ Maintainer: Alfredo Finelli <alfredofnl@tiscali.it> | |||
| 41 | Italian GNU Translation Group <tp@lists.linux.it> | 41 | Italian GNU Translation Group <tp@lists.linux.it> |
| 42 | 42 | ||
| 43 | * TUTORIAL.ja: | 43 | * TUTORIAL.ja: |
| 44 | Author: Kenichi Handa <handa@m17n.org> | 44 | Author: Kenichi Handa <handa@gnu.org> |
| 45 | Maintainer: Kenichi Handa <handa@m17n.org> | 45 | Maintainer: Kenichi Handa <handa@gnu.org> |
| 46 | 46 | ||
| 47 | * TUTORIAL.ko: | 47 | * TUTORIAL.ko: |
| 48 | Author: Koaunghi Un <koaunghi@ling.cnu.ac.kr> | 48 | Author: Koaunghi Un <koaunghi@ling.cnu.ac.kr> |
| @@ -94,4 +94,3 @@ Maintainer: Chao-Hong Liu <chliu@gnu.org> | |||
| 94 | ;;; Local Variables: | 94 | ;;; Local Variables: |
| 95 | ;;; coding: utf-8 | 95 | ;;; coding: utf-8 |
| 96 | ;;; End: | 96 | ;;; End: |
| 97 | |||
diff --git a/lib-src/etags.c b/lib-src/etags.c index 949ab5a2c6b..6bd04d1f1c3 100644 --- a/lib-src/etags.c +++ b/lib-src/etags.c | |||
| @@ -4282,7 +4282,7 @@ Yacc_entries (FILE *inf) | |||
| 4282 | while (perhaps_more_input (file_pointer) \ | 4282 | while (perhaps_more_input (file_pointer) \ |
| 4283 | && (readline (&(line_buffer), file_pointer), \ | 4283 | && (readline (&(line_buffer), file_pointer), \ |
| 4284 | (char_pointer) = (line_buffer).buffer, \ | 4284 | (char_pointer) = (line_buffer).buffer, \ |
| 4285 | true)) \ | 4285 | true)) |
| 4286 | 4286 | ||
| 4287 | #define LOOKING_AT(cp, kw) /* kw is the keyword, a literal string */ \ | 4287 | #define LOOKING_AT(cp, kw) /* kw is the keyword, a literal string */ \ |
| 4288 | ((assert ("" kw), true) /* syntax error if not a literal string */ \ | 4288 | ((assert ("" kw), true) /* syntax error if not a literal string */ \ |
diff --git a/lisp/abbrev.el b/lisp/abbrev.el index 3c88ec661a9..be19da525ea 100644 --- a/lisp/abbrev.el +++ b/lisp/abbrev.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 1985-1987, 1992, 2001-2019 Free Software Foundation, | 3 | ;; Copyright (C) 1985-1987, 1992, 2001-2019 Free Software Foundation, |
| 4 | ;; Inc. | 4 | ;; Inc. |
| 5 | 5 | ||
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Keywords: abbrev convenience | 6 | ;; Keywords: abbrev convenience |
| 8 | ;; Package: emacs | 7 | ;; Package: emacs |
| 9 | 8 | ||
diff --git a/lisp/align.el b/lisp/align.el index 443237b451b..aeb845a5613 100644 --- a/lisp/align.el +++ b/lisp/align.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 1999-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1999-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: John Wiegley <johnw@gnu.org> | 5 | ;; Author: John Wiegley <johnw@gnu.org> |
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Keywords: convenience languages lisp | 6 | ;; Keywords: convenience languages lisp |
| 8 | 7 | ||
| 9 | ;; This file is part of GNU Emacs. | 8 | ;; This file is part of GNU Emacs. |
diff --git a/lisp/allout-widgets.el b/lisp/allout-widgets.el index 67fce325ff1..fd04c31f3b8 100644 --- a/lisp/allout-widgets.el +++ b/lisp/allout-widgets.el | |||
| @@ -70,12 +70,7 @@ | |||
| 70 | (require 'allout) | 70 | (require 'allout) |
| 71 | (require 'widget) | 71 | (require 'widget) |
| 72 | (require 'wid-edit) | 72 | (require 'wid-edit) |
| 73 | 73 | (eval-when-compile (require 'cl-lib)) | |
| 74 | (eval-when-compile | ||
| 75 | (progn | ||
| 76 | (require 'overlay) | ||
| 77 | (require 'cl) | ||
| 78 | )) | ||
| 79 | 74 | ||
| 80 | ;;;_ : internal variables needed before user-customization variables | 75 | ;;;_ : internal variables needed before user-customization variables |
| 81 | ;;; In order to enable activation of allout-widgets-mode via customization, | 76 | ;;; In order to enable activation of allout-widgets-mode via customization, |
| @@ -960,7 +955,7 @@ posting threshold criteria." | |||
| 960 | (when changes-pending | 955 | (when changes-pending |
| 961 | (while changes-record | 956 | (while changes-record |
| 962 | (setq entry (pop changes-record)) | 957 | (setq entry (pop changes-record)) |
| 963 | (case (car entry) | 958 | (pcase (car entry) |
| 964 | (:exposed (push entry exposures)) | 959 | (:exposed (push entry exposures)) |
| 965 | (:added (push entry additions)) | 960 | (:added (push entry additions)) |
| 966 | (:deleted (push entry deletions)) | 961 | (:deleted (push entry deletions)) |
| @@ -1378,34 +1373,34 @@ FROM and TO must be in increasing order, as must be the pairs in RANGES." | |||
| 1378 | 1373 | ||
| 1379 | ;; fresh: | 1374 | ;; fresh: |
| 1380 | (setq ranges nil) | 1375 | (setq ranges nil) |
| 1381 | (assert (equal (funcall try 3 5) '(nil ((3 5))))) | 1376 | (cl-assert (equal (funcall try 3 5) '(nil ((3 5))))) |
| 1382 | ;; add range at end: | 1377 | ;; add range at end: |
| 1383 | (assert (equal (funcall try 10 12) '(nil ((3 5) (10 12))))) | 1378 | (cl-assert (equal (funcall try 10 12) '(nil ((3 5) (10 12))))) |
| 1384 | ;; add range at beginning: | 1379 | ;; add range at beginning: |
| 1385 | (assert (equal (funcall try 1 2) '(nil ((1 2) (3 5) (10 12))))) | 1380 | (cl-assert (equal (funcall try 1 2) '(nil ((1 2) (3 5) (10 12))))) |
| 1386 | ;; insert range somewhere in the middle: | 1381 | ;; insert range somewhere in the middle: |
| 1387 | (assert (equal (funcall try 7 9) '(nil ((1 2) (3 5) (7 9) (10 12))))) | 1382 | (cl-assert (equal (funcall try 7 9) '(nil ((1 2) (3 5) (7 9) (10 12))))) |
| 1388 | ;; consolidate some: | 1383 | ;; consolidate some: |
| 1389 | (assert (equal (funcall try 5 8) '(t ((1 2) (3 9) (10 12))))) | 1384 | (cl-assert (equal (funcall try 5 8) '(t ((1 2) (3 9) (10 12))))) |
| 1390 | ;; add more: | 1385 | ;; add more: |
| 1391 | (assert (equal (funcall try 15 17) '(nil ((1 2) (3 9) (10 12) (15 17))))) | 1386 | (cl-assert (equal (funcall try 15 17) '(nil ((1 2) (3 9) (10 12) (15 17))))) |
| 1392 | ;; add more: | 1387 | ;; add more: |
| 1393 | (assert (equal (funcall try 20 22) | 1388 | (cl-assert (equal (funcall try 20 22) |
| 1394 | '(nil ((1 2) (3 9) (10 12) (15 17) (20 22))))) | 1389 | '(nil ((1 2) (3 9) (10 12) (15 17) (20 22))))) |
| 1395 | ;; encompass more: | 1390 | ;; encompass more: |
| 1396 | (assert (equal (funcall try 4 11) '(t ((1 2) (3 12) (15 17) (20 22))))) | 1391 | (cl-assert (equal (funcall try 4 11) '(t ((1 2) (3 12) (15 17) (20 22))))) |
| 1397 | ;; encompass all: | 1392 | ;; encompass all: |
| 1398 | (assert (equal (funcall try 2 25) '(t ((1 25))))) | 1393 | (cl-assert (equal (funcall try 2 25) '(t ((1 25))))) |
| 1399 | 1394 | ||
| 1400 | ;; fresh slate: | 1395 | ;; fresh slate: |
| 1401 | (setq ranges nil) | 1396 | (setq ranges nil) |
| 1402 | (assert (equal (funcall try 20 25) '(nil ((20 25))))) | 1397 | (cl-assert (equal (funcall try 20 25) '(nil ((20 25))))) |
| 1403 | (assert (equal (funcall try 30 35) '(nil ((20 25) (30 35))))) | 1398 | (cl-assert (equal (funcall try 30 35) '(nil ((20 25) (30 35))))) |
| 1404 | (assert (equal (funcall try 26 28) '(nil ((20 25) (26 28) (30 35))))) | 1399 | (cl-assert (equal (funcall try 26 28) '(nil ((20 25) (26 28) (30 35))))) |
| 1405 | (assert (equal (funcall try 15 20) '(t ((15 25) (26 28) (30 35))))) | 1400 | (cl-assert (equal (funcall try 15 20) '(t ((15 25) (26 28) (30 35))))) |
| 1406 | (assert (equal (funcall try 10 30) '(t ((10 35))))) | 1401 | (cl-assert (equal (funcall try 10 30) '(t ((10 35))))) |
| 1407 | (assert (equal (funcall try 5 6) '(nil ((5 6) (10 35))))) | 1402 | (cl-assert (equal (funcall try 5 6) '(nil ((5 6) (10 35))))) |
| 1408 | (assert (equal (funcall try 2 100) '(t ((2 100))))) | 1403 | (cl-assert (equal (funcall try 2 100) '(t ((2 100))))) |
| 1409 | 1404 | ||
| 1410 | (setq ranges nil) | 1405 | (setq ranges nil) |
| 1411 | )) | 1406 | )) |
diff --git a/lisp/allout.el b/lisp/allout.el index b3b87e533b9..07608551886 100644 --- a/lisp/allout.el +++ b/lisp/allout.el | |||
| @@ -79,12 +79,7 @@ | |||
| 79 | 79 | ||
| 80 | ;;;_* Dependency loads | 80 | ;;;_* Dependency loads |
| 81 | (require 'overlay) | 81 | (require 'overlay) |
| 82 | (eval-when-compile | 82 | (eval-when-compile (require 'cl-lib)) |
| 83 | ;; `cl' is required for `assert'. `assert' is not covered by a standard | ||
| 84 | ;; autoload, but it is a macro, so that eval-when-compile is sufficient | ||
| 85 | ;; to byte-compile it in, or to do the require when the buffer evalled. | ||
| 86 | (require 'cl) | ||
| 87 | ) | ||
| 88 | 83 | ||
| 89 | ;;;_* USER CUSTOMIZATION VARIABLES: | 84 | ;;;_* USER CUSTOMIZATION VARIABLES: |
| 90 | 85 | ||
| @@ -6122,13 +6117,13 @@ signal." | |||
| 6122 | (point-max)))) | 6117 | (point-max)))) |
| 6123 | ;; determine key mode and, if keypair, recipients: | 6118 | ;; determine key mode and, if keypair, recipients: |
| 6124 | (setq recipients | 6119 | (setq recipients |
| 6125 | (case keypair-mode | 6120 | (pcase keypair-mode |
| 6126 | 6121 | ||
| 6127 | (decrypting nil) | 6122 | ('decrypting nil) |
| 6128 | 6123 | ||
| 6129 | (default (if encrypt-to (epg-list-keys epg-context encrypt-to))) | 6124 | ('default (if encrypt-to (epg-list-keys epg-context encrypt-to))) |
| 6130 | 6125 | ||
| 6131 | ((prompt prompt-save) | 6126 | ((or 'prompt 'prompt-save) |
| 6132 | (save-window-excursion | 6127 | (save-window-excursion |
| 6133 | (epa-select-keys epg-context keypair-message))))) | 6128 | (epa-select-keys epg-context keypair-message))))) |
| 6134 | 6129 | ||
| @@ -6786,6 +6781,7 @@ To ignore intangibility, bind `inhibit-point-motion-hooks' to t." | |||
| 6786 | (defvar allout-tests-locally-true nil | 6781 | (defvar allout-tests-locally-true nil |
| 6787 | "Fodder for allout resumptions tests -- defvar just for byte compiler.") | 6782 | "Fodder for allout resumptions tests -- defvar just for byte compiler.") |
| 6788 | (defun allout-test-resumptions () | 6783 | (defun allout-test-resumptions () |
| 6784 | ;; FIXME: Use ERT. | ||
| 6789 | "Exercise allout resumptions." | 6785 | "Exercise allout resumptions." |
| 6790 | ;; for each resumption case, we also test that the right local/global | 6786 | ;; for each resumption case, we also test that the right local/global |
| 6791 | ;; scopes are affected during resumption effects: | 6787 | ;; scopes are affected during resumption effects: |
| @@ -6794,48 +6790,48 @@ To ignore intangibility, bind `inhibit-point-motion-hooks' to t." | |||
| 6794 | (with-temp-buffer | 6790 | (with-temp-buffer |
| 6795 | (allout-tests-obliterate-variable 'allout-tests-globally-unbound) | 6791 | (allout-tests-obliterate-variable 'allout-tests-globally-unbound) |
| 6796 | (allout-add-resumptions '(allout-tests-globally-unbound t)) | 6792 | (allout-add-resumptions '(allout-tests-globally-unbound t)) |
| 6797 | (assert (not (default-boundp 'allout-tests-globally-unbound))) | 6793 | (cl-assert (not (default-boundp 'allout-tests-globally-unbound))) |
| 6798 | (assert (local-variable-p 'allout-tests-globally-unbound (current-buffer))) | 6794 | (cl-assert (local-variable-p 'allout-tests-globally-unbound (current-buffer))) |
| 6799 | (assert (boundp 'allout-tests-globally-unbound)) | 6795 | (cl-assert (boundp 'allout-tests-globally-unbound)) |
| 6800 | (assert (equal allout-tests-globally-unbound t)) | 6796 | (cl-assert (equal allout-tests-globally-unbound t)) |
| 6801 | (allout-do-resumptions) | 6797 | (allout-do-resumptions) |
| 6802 | (assert (not (local-variable-p 'allout-tests-globally-unbound | 6798 | (cl-assert (not (local-variable-p 'allout-tests-globally-unbound |
| 6803 | (current-buffer)))) | 6799 | (current-buffer)))) |
| 6804 | (assert (not (boundp 'allout-tests-globally-unbound)))) | 6800 | (cl-assert (not (boundp 'allout-tests-globally-unbound)))) |
| 6805 | 6801 | ||
| 6806 | ;; ensure that variable with prior global value is resumed | 6802 | ;; ensure that variable with prior global value is resumed |
| 6807 | (with-temp-buffer | 6803 | (with-temp-buffer |
| 6808 | (allout-tests-obliterate-variable 'allout-tests-globally-true) | 6804 | (allout-tests-obliterate-variable 'allout-tests-globally-true) |
| 6809 | (setq allout-tests-globally-true t) | 6805 | (setq allout-tests-globally-true t) |
| 6810 | (allout-add-resumptions '(allout-tests-globally-true nil)) | 6806 | (allout-add-resumptions '(allout-tests-globally-true nil)) |
| 6811 | (assert (equal (default-value 'allout-tests-globally-true) t)) | 6807 | (cl-assert (equal (default-value 'allout-tests-globally-true) t)) |
| 6812 | (assert (local-variable-p 'allout-tests-globally-true (current-buffer))) | 6808 | (cl-assert (local-variable-p 'allout-tests-globally-true (current-buffer))) |
| 6813 | (assert (equal allout-tests-globally-true nil)) | 6809 | (cl-assert (equal allout-tests-globally-true nil)) |
| 6814 | (allout-do-resumptions) | 6810 | (allout-do-resumptions) |
| 6815 | (assert (not (local-variable-p 'allout-tests-globally-true | 6811 | (cl-assert (not (local-variable-p 'allout-tests-globally-true |
| 6816 | (current-buffer)))) | 6812 | (current-buffer)))) |
| 6817 | (assert (boundp 'allout-tests-globally-true)) | 6813 | (cl-assert (boundp 'allout-tests-globally-true)) |
| 6818 | (assert (equal allout-tests-globally-true t))) | 6814 | (cl-assert (equal allout-tests-globally-true t))) |
| 6819 | 6815 | ||
| 6820 | ;; ensure that prior local value is resumed | 6816 | ;; ensure that prior local value is resumed |
| 6821 | (with-temp-buffer | 6817 | (with-temp-buffer |
| 6822 | (allout-tests-obliterate-variable 'allout-tests-locally-true) | 6818 | (allout-tests-obliterate-variable 'allout-tests-locally-true) |
| 6823 | (set (make-local-variable 'allout-tests-locally-true) t) | 6819 | (set (make-local-variable 'allout-tests-locally-true) t) |
| 6824 | (assert (not (default-boundp 'allout-tests-locally-true)) | 6820 | (cl-assert (not (default-boundp 'allout-tests-locally-true)) |
| 6825 | nil (concat "Test setup mistake -- variable supposed to" | 6821 | nil (concat "Test setup mistake -- variable supposed to" |
| 6826 | " not have global binding, but it does.")) | 6822 | " not have global binding, but it does.")) |
| 6827 | (assert (local-variable-p 'allout-tests-locally-true (current-buffer)) | 6823 | (cl-assert (local-variable-p 'allout-tests-locally-true (current-buffer)) |
| 6828 | nil (concat "Test setup mistake -- variable supposed to have" | 6824 | nil (concat "Test setup mistake -- variable supposed to have" |
| 6829 | " local binding, but it lacks one.")) | 6825 | " local binding, but it lacks one.")) |
| 6830 | (allout-add-resumptions '(allout-tests-locally-true nil)) | 6826 | (allout-add-resumptions '(allout-tests-locally-true nil)) |
| 6831 | (assert (not (default-boundp 'allout-tests-locally-true))) | 6827 | (cl-assert (not (default-boundp 'allout-tests-locally-true))) |
| 6832 | (assert (local-variable-p 'allout-tests-locally-true (current-buffer))) | 6828 | (cl-assert (local-variable-p 'allout-tests-locally-true (current-buffer))) |
| 6833 | (assert (equal allout-tests-locally-true nil)) | 6829 | (cl-assert (equal allout-tests-locally-true nil)) |
| 6834 | (allout-do-resumptions) | 6830 | (allout-do-resumptions) |
| 6835 | (assert (boundp 'allout-tests-locally-true)) | 6831 | (cl-assert (boundp 'allout-tests-locally-true)) |
| 6836 | (assert (local-variable-p 'allout-tests-locally-true (current-buffer))) | 6832 | (cl-assert (local-variable-p 'allout-tests-locally-true (current-buffer))) |
| 6837 | (assert (equal allout-tests-locally-true t)) | 6833 | (cl-assert (equal allout-tests-locally-true t)) |
| 6838 | (assert (not (default-boundp 'allout-tests-locally-true)))) | 6834 | (cl-assert (not (default-boundp 'allout-tests-locally-true)))) |
| 6839 | 6835 | ||
| 6840 | ;; ensure that last of multiple resumptions holds, for various scopes. | 6836 | ;; ensure that last of multiple resumptions holds, for various scopes. |
| 6841 | (with-temp-buffer | 6837 | (with-temp-buffer |
| @@ -6851,27 +6847,27 @@ To ignore intangibility, bind `inhibit-point-motion-hooks' to t." | |||
| 6851 | '(allout-tests-globally-true 3) | 6847 | '(allout-tests-globally-true 3) |
| 6852 | '(allout-tests-locally-true 4)) | 6848 | '(allout-tests-locally-true 4)) |
| 6853 | ;; reestablish many of the basic conditions are maintained after re-add: | 6849 | ;; reestablish many of the basic conditions are maintained after re-add: |
| 6854 | (assert (not (default-boundp 'allout-tests-globally-unbound))) | 6850 | (cl-assert (not (default-boundp 'allout-tests-globally-unbound))) |
| 6855 | (assert (local-variable-p 'allout-tests-globally-unbound (current-buffer))) | 6851 | (cl-assert (local-variable-p 'allout-tests-globally-unbound (current-buffer))) |
| 6856 | (assert (equal allout-tests-globally-unbound 2)) | 6852 | (cl-assert (equal allout-tests-globally-unbound 2)) |
| 6857 | (assert (default-boundp 'allout-tests-globally-true)) | 6853 | (cl-assert (default-boundp 'allout-tests-globally-true)) |
| 6858 | (assert (local-variable-p 'allout-tests-globally-true (current-buffer))) | 6854 | (cl-assert (local-variable-p 'allout-tests-globally-true (current-buffer))) |
| 6859 | (assert (equal allout-tests-globally-true 3)) | 6855 | (cl-assert (equal allout-tests-globally-true 3)) |
| 6860 | (assert (not (default-boundp 'allout-tests-locally-true))) | 6856 | (cl-assert (not (default-boundp 'allout-tests-locally-true))) |
| 6861 | (assert (local-variable-p 'allout-tests-locally-true (current-buffer))) | 6857 | (cl-assert (local-variable-p 'allout-tests-locally-true (current-buffer))) |
| 6862 | (assert (equal allout-tests-locally-true 4)) | 6858 | (cl-assert (equal allout-tests-locally-true 4)) |
| 6863 | (allout-do-resumptions) | 6859 | (allout-do-resumptions) |
| 6864 | (assert (not (local-variable-p 'allout-tests-globally-unbound | 6860 | (cl-assert (not (local-variable-p 'allout-tests-globally-unbound |
| 6865 | (current-buffer)))) | 6861 | (current-buffer)))) |
| 6866 | (assert (not (boundp 'allout-tests-globally-unbound))) | 6862 | (cl-assert (not (boundp 'allout-tests-globally-unbound))) |
| 6867 | (assert (not (local-variable-p 'allout-tests-globally-true | 6863 | (cl-assert (not (local-variable-p 'allout-tests-globally-true |
| 6868 | (current-buffer)))) | 6864 | (current-buffer)))) |
| 6869 | (assert (boundp 'allout-tests-globally-true)) | 6865 | (cl-assert (boundp 'allout-tests-globally-true)) |
| 6870 | (assert (equal allout-tests-globally-true t)) | 6866 | (cl-assert (equal allout-tests-globally-true t)) |
| 6871 | (assert (boundp 'allout-tests-locally-true)) | 6867 | (cl-assert (boundp 'allout-tests-locally-true)) |
| 6872 | (assert (local-variable-p 'allout-tests-locally-true (current-buffer))) | 6868 | (cl-assert (local-variable-p 'allout-tests-locally-true (current-buffer))) |
| 6873 | (assert (equal allout-tests-locally-true t)) | 6869 | (cl-assert (equal allout-tests-locally-true t)) |
| 6874 | (assert (not (default-boundp 'allout-tests-locally-true)))) | 6870 | (cl-assert (not (default-boundp 'allout-tests-locally-true)))) |
| 6875 | 6871 | ||
| 6876 | ;; ensure that deliberately unbinding registered variables doesn't foul things | 6872 | ;; ensure that deliberately unbinding registered variables doesn't foul things |
| 6877 | (with-temp-buffer | 6873 | (with-temp-buffer |
diff --git a/lisp/array.el b/lisp/array.el index 2fffe0197e8..28635d18af1 100644 --- a/lisp/array.el +++ b/lisp/array.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 1987, 2000-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1987, 2000-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: David M. Brown | 5 | ;; Author: David M. Brown |
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Keywords: extensions | 6 | ;; Keywords: extensions |
| 8 | 7 | ||
| 9 | ;; This file is part of GNU Emacs. | 8 | ;; This file is part of GNU Emacs. |
diff --git a/lisp/autoinsert.el b/lisp/autoinsert.el index f7ecfe27bb1..c2ebea70083 100644 --- a/lisp/autoinsert.el +++ b/lisp/autoinsert.el | |||
| @@ -6,7 +6,6 @@ | |||
| 6 | ;; Author: Charlie Martin <crm@cs.duke.edu> | 6 | ;; Author: Charlie Martin <crm@cs.duke.edu> |
| 7 | ;; Adapted-By: Daniel Pfeiffer <occitan@esperanto.org> | 7 | ;; Adapted-By: Daniel Pfeiffer <occitan@esperanto.org> |
| 8 | ;; Keywords: convenience | 8 | ;; Keywords: convenience |
| 9 | ;; Maintainer: emacs-devel@gnu.org | ||
| 10 | 9 | ||
| 11 | ;; This file is part of GNU Emacs. | 10 | ;; This file is part of GNU Emacs. |
| 12 | 11 | ||
diff --git a/lisp/autorevert.el b/lisp/autorevert.el index 197a2bf1578..2de855b303e 100644 --- a/lisp/autorevert.el +++ b/lisp/autorevert.el | |||
| @@ -312,10 +312,7 @@ when those files are modified from another computer. | |||
| 312 | 312 | ||
| 313 | When nil, buffers in Auto-Revert Mode will always be polled for | 313 | When nil, buffers in Auto-Revert Mode will always be polled for |
| 314 | changes to their files on disk every `auto-revert-interval' | 314 | changes to their files on disk every `auto-revert-interval' |
| 315 | seconds, in addition to using notification for those files. | 315 | seconds, in addition to using notification for those files." |
| 316 | |||
| 317 | In Global Auto-Revert Mode, polling is always done regardless of | ||
| 318 | the value of this variable." | ||
| 319 | :group 'auto-revert | 316 | :group 'auto-revert |
| 320 | :type 'boolean | 317 | :type 'boolean |
| 321 | :set (lambda (variable value) | 318 | :set (lambda (variable value) |
| @@ -335,6 +332,9 @@ buffers to this list. | |||
| 335 | The timer function `auto-revert-buffers' is responsible for purging | 332 | The timer function `auto-revert-buffers' is responsible for purging |
| 336 | the list of old buffers.") | 333 | the list of old buffers.") |
| 337 | 334 | ||
| 335 | (defvar-local auto-revert--global-mode nil | ||
| 336 | "Non-nil if buffer is handled by Global Auto-Revert mode.") | ||
| 337 | |||
| 338 | (defvar auto-revert-remaining-buffers () | 338 | (defvar auto-revert-remaining-buffers () |
| 339 | "Buffers not checked when user input stopped execution.") | 339 | "Buffers not checked when user input stopped execution.") |
| 340 | 340 | ||
| @@ -501,34 +501,107 @@ specifies in the mode line." | |||
| 501 | :global t :group 'auto-revert :lighter global-auto-revert-mode-text | 501 | :global t :group 'auto-revert :lighter global-auto-revert-mode-text |
| 502 | (auto-revert-set-timer) | 502 | (auto-revert-set-timer) |
| 503 | (if global-auto-revert-mode | 503 | (if global-auto-revert-mode |
| 504 | (auto-revert-buffers) | 504 | ;; Turn global-auto-revert-mode ON. |
| 505 | (progn | ||
| 506 | (dolist (buf (buffer-list)) | ||
| 507 | (with-current-buffer buf | ||
| 508 | (auto-revert--global-add-current-buffer))) | ||
| 509 | ;; Make sure future buffers are added as well. | ||
| 510 | (add-hook 'find-file-hook #'auto-revert--global-adopt-current-buffer) | ||
| 511 | (add-hook 'after-set-visited-file-name-hook | ||
| 512 | #'auto-revert--global-set-visited-file-name) | ||
| 513 | ;; To track non-file buffers, we need to listen in to buffer | ||
| 514 | ;; creation in general. Listening to major-mode changes is | ||
| 515 | ;; suitable, since we then know whether it's a mode that is tracked. | ||
| 516 | (when global-auto-revert-non-file-buffers | ||
| 517 | (add-hook 'after-change-major-mode-hook | ||
| 518 | #'auto-revert--global-adopt-current-buffer)) | ||
| 519 | (auto-revert-buffers)) | ||
| 520 | ;; Turn global-auto-revert-mode OFF. | ||
| 521 | (remove-hook 'after-change-major-mode-hook | ||
| 522 | #'auto-revert--global-adopt-current-buffer) | ||
| 523 | (remove-hook 'after-set-visited-file-name-hook | ||
| 524 | #'auto-revert--global-set-visited-file-name) | ||
| 525 | (remove-hook 'find-file-hook #'auto-revert--global-adopt-current-buffer) | ||
| 505 | (dolist (buf (buffer-list)) | 526 | (dolist (buf (buffer-list)) |
| 506 | (with-current-buffer buf | 527 | (with-current-buffer buf |
| 507 | (when (and auto-revert-notify-watch-descriptor | 528 | (when auto-revert--global-mode |
| 508 | (not (memq buf auto-revert-buffer-list))) | 529 | (setq auto-revert--global-mode nil) |
| 509 | (auto-revert-notify-rm-watch)))))) | 530 | (when (and auto-revert-notify-watch-descriptor |
| 531 | (not (or auto-revert-mode auto-revert-tail-mode))) | ||
| 532 | (auto-revert-notify-rm-watch))))))) | ||
| 533 | |||
| 534 | (defun auto-revert--global-add-current-buffer () | ||
| 535 | "Set current buffer to be tracked by Global Auto-Revert if appropriate." | ||
| 536 | (when (and (not auto-revert--global-mode) | ||
| 537 | (or buffer-file-name | ||
| 538 | (and global-auto-revert-non-file-buffers | ||
| 539 | (not (string-prefix-p " " (buffer-name))) | ||
| 540 | ;; Any non-file buffer must have a custom | ||
| 541 | ;; `buffer-stale-function' to be tracked, since | ||
| 542 | ;; we wouldn't know when to revert it otherwise. | ||
| 543 | (not (eq buffer-stale-function | ||
| 544 | #'buffer-stale--default-function)))) | ||
| 545 | (not (memq 'major-mode global-auto-revert-ignore-modes)) | ||
| 546 | (not global-auto-revert-ignore-buffer)) | ||
| 547 | (setq auto-revert--global-mode t))) | ||
| 548 | |||
| 549 | (defun auto-revert--global-adopt-current-buffer () | ||
| 550 | "Consider tracking current buffer in a running Global Auto-Revert mode." | ||
| 551 | (auto-revert--global-add-current-buffer) | ||
| 552 | (auto-revert-set-timer)) | ||
| 553 | |||
| 554 | (defun auto-revert--global-set-visited-file-name () | ||
| 555 | "Update Global Auto-Revert management of the current buffer. | ||
| 556 | Called after `set-visited-file-name'." | ||
| 557 | ;; Remove any existing notifier first so that we don't track the | ||
| 558 | ;; wrong file in case the file name was changed. | ||
| 559 | (when auto-revert-notify-watch-descriptor | ||
| 560 | (auto-revert-notify-rm-watch)) | ||
| 561 | (auto-revert--global-adopt-current-buffer)) | ||
| 510 | 562 | ||
| 511 | (defun auto-revert--polled-buffers () | 563 | (defun auto-revert--polled-buffers () |
| 512 | "List of buffers that need to be polled." | 564 | "List of buffers that need to be polled." |
| 513 | (cond (global-auto-revert-mode (buffer-list)) | 565 | (cond (global-auto-revert-mode |
| 566 | (mapcan (lambda (buffer) | ||
| 567 | (and (not (and auto-revert-avoid-polling | ||
| 568 | (buffer-local-value | ||
| 569 | 'auto-revert-notify-watch-descriptor | ||
| 570 | buffer))) | ||
| 571 | (or (buffer-local-value | ||
| 572 | 'auto-revert--global-mode buffer) | ||
| 573 | (buffer-local-value 'auto-revert-mode buffer) | ||
| 574 | (buffer-local-value 'auto-revert-tail-mode buffer)) | ||
| 575 | (list buffer))) | ||
| 576 | (buffer-list))) | ||
| 514 | (auto-revert-avoid-polling | 577 | (auto-revert-avoid-polling |
| 515 | (mapcan (lambda (buffer) | 578 | (mapcan (lambda (buffer) |
| 516 | (and (not (buffer-local-value | 579 | (and (not (buffer-local-value |
| 517 | 'auto-revert-notify-watch-descriptor buffer)) | 580 | 'auto-revert-notify-watch-descriptor buffer)) |
| 518 | (list buffer))) | 581 | (list buffer))) |
| 519 | auto-revert-buffer-list)) | 582 | auto-revert-buffer-list)) |
| 520 | (t auto-revert-buffer-list))) | 583 | (t auto-revert-buffer-list))) |
| 521 | 584 | ||
| 522 | ;; Same as above in a boolean context, but cheaper. | 585 | ;; Same as above in a boolean context, but cheaper. |
| 523 | (defun auto-revert--need-polling-p () | 586 | (defun auto-revert--need-polling-p () |
| 524 | "Whether periodic polling is required." | 587 | "Whether periodic polling is required." |
| 525 | (or global-auto-revert-mode | 588 | (cond (global-auto-revert-mode |
| 526 | (if auto-revert-avoid-polling | 589 | (or (not auto-revert-avoid-polling) |
| 527 | (not (cl-every (lambda (buffer) | 590 | (cl-some |
| 528 | (buffer-local-value | 591 | (lambda (buffer) |
| 529 | 'auto-revert-notify-watch-descriptor buffer)) | 592 | (and (not (buffer-local-value |
| 530 | auto-revert-buffer-list)) | 593 | 'auto-revert-notify-watch-descriptor buffer)) |
| 531 | auto-revert-buffer-list))) | 594 | (or (buffer-local-value 'auto-revert--global-mode buffer) |
| 595 | (buffer-local-value 'auto-revert-mode buffer) | ||
| 596 | (buffer-local-value 'auto-revert-tail-mode buffer)))) | ||
| 597 | (buffer-list)))) | ||
| 598 | (auto-revert-avoid-polling | ||
| 599 | (not (cl-every | ||
| 600 | (lambda (buffer) | ||
| 601 | (buffer-local-value | ||
| 602 | 'auto-revert-notify-watch-descriptor buffer)) | ||
| 603 | auto-revert-buffer-list))) | ||
| 604 | (t auto-revert-buffer-list))) | ||
| 532 | 605 | ||
| 533 | (defun auto-revert-set-timer () | 606 | (defun auto-revert-set-timer () |
| 534 | "Restart or cancel the timer used by Auto-Revert Mode. | 607 | "Restart or cancel the timer used by Auto-Revert Mode. |
| @@ -652,9 +725,8 @@ system.") | |||
| 652 | (null buffer-file-name)) | 725 | (null buffer-file-name)) |
| 653 | (auto-revert-notify-rm-watch) | 726 | (auto-revert-notify-rm-watch) |
| 654 | ;; Restart the timer if it wasn't running. | 727 | ;; Restart the timer if it wasn't running. |
| 655 | (when (and (memq buffer auto-revert-buffer-list) | 728 | (unless auto-revert-timer) |
| 656 | (not auto-revert-timer)) | 729 | (auto-revert-set-timer)))) |
| 657 | (auto-revert-set-timer))))) | ||
| 658 | 730 | ||
| 659 | ;; Loop over all buffers, in order to find the intended one. | 731 | ;; Loop over all buffers, in order to find the intended one. |
| 660 | (cl-dolist (buffer buffers) | 732 | (cl-dolist (buffer buffers) |
| @@ -697,12 +769,10 @@ If the buffer needs to be reverted, do it now." | |||
| 697 | (auto-revert-handler))))) | 769 | (auto-revert-handler))))) |
| 698 | 770 | ||
| 699 | (defun auto-revert-active-p () | 771 | (defun auto-revert-active-p () |
| 700 | "Check if auto-revert is active (in current buffer or globally)." | 772 | "Check if auto-revert is active in current buffer." |
| 701 | (or auto-revert-mode | 773 | (or auto-revert-mode |
| 702 | auto-revert-tail-mode | 774 | auto-revert-tail-mode |
| 703 | (and global-auto-revert-mode | 775 | auto-revert--global-mode)) |
| 704 | (not global-auto-revert-ignore-buffer) | ||
| 705 | (not (memq major-mode global-auto-revert-ignore-modes))))) | ||
| 706 | 776 | ||
| 707 | (defun auto-revert-handler () | 777 | (defun auto-revert-handler () |
| 708 | "Revert current buffer, if appropriate. | 778 | "Revert current buffer, if appropriate. |
diff --git a/lisp/bindings.el b/lisp/bindings.el index 744bcc36a85..4f09d583d74 100644 --- a/lisp/bindings.el +++ b/lisp/bindings.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 1985-1987, 1992-1996, 1999-2019 Free Software | 3 | ;; Copyright (C) 1985-1987, 1992-1996, 1999-2019 Free Software |
| 4 | ;; Foundation, Inc. | 4 | ;; Foundation, Inc. |
| 5 | 5 | ||
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Keywords: internal | 6 | ;; Keywords: internal |
| 8 | ;; Package: emacs | 7 | ;; Package: emacs |
| 9 | 8 | ||
diff --git a/lisp/bs.el b/lisp/bs.el index cd9524a440b..c564da251b5 100644 --- a/lisp/bs.el +++ b/lisp/bs.el | |||
| @@ -2,7 +2,6 @@ | |||
| 2 | 2 | ||
| 3 | ;; Copyright (C) 1998-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1998-2019 Free Software Foundation, Inc. |
| 4 | ;; Author: Olaf Sylvester <Olaf.Sylvester@netsurf.de> | 4 | ;; Author: Olaf Sylvester <Olaf.Sylvester@netsurf.de> |
| 5 | ;; Maintainer: emacs-devel@gnu.org | ||
| 6 | ;; Keywords: convenience | 5 | ;; Keywords: convenience |
| 7 | 6 | ||
| 8 | ;; This file is part of GNU Emacs. | 7 | ;; This file is part of GNU Emacs. |
diff --git a/lisp/buff-menu.el b/lisp/buff-menu.el index 5f889866361..c8cd25caff7 100644 --- a/lisp/buff-menu.el +++ b/lisp/buff-menu.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 1985-1987, 1993-1995, 2000-2019 Free Software | 3 | ;; Copyright (C) 1985-1987, 1993-1995, 2000-2019 Free Software |
| 4 | ;; Foundation, Inc. | 4 | ;; Foundation, Inc. |
| 5 | 5 | ||
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Keywords: convenience | 6 | ;; Keywords: convenience |
| 8 | ;; Package: emacs | 7 | ;; Package: emacs |
| 9 | 8 | ||
diff --git a/lisp/calendar/time-date.el b/lisp/calendar/time-date.el index decb21e9c20..2c0280ccf3b 100644 --- a/lisp/calendar/time-date.el +++ b/lisp/calendar/time-date.el | |||
| @@ -156,7 +156,7 @@ If DATE lacks timezone information, GMT is assumed." | |||
| 156 | (let ((overflow-error '(error "Specified time is not representable"))) | 156 | (let ((overflow-error '(error "Specified time is not representable"))) |
| 157 | (if (equal err overflow-error) | 157 | (if (equal err overflow-error) |
| 158 | (signal (car err) (cdr err)) | 158 | (signal (car err) (cdr err)) |
| 159 | (condition-case-unless-debug err | 159 | (condition-case err |
| 160 | (encode-time (parse-time-string | 160 | (encode-time (parse-time-string |
| 161 | (timezone-make-date-arpa-standard date))) | 161 | (timezone-make-date-arpa-standard date))) |
| 162 | (error | 162 | (error |
diff --git a/lisp/case-table.el b/lisp/case-table.el index c27e772b044..7474d633236 100644 --- a/lisp/case-table.el +++ b/lisp/case-table.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 1988, 1994, 2001-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1988, 1994, 2001-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: Howard Gayle | 5 | ;; Author: Howard Gayle |
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Keywords: i18n | 6 | ;; Keywords: i18n |
| 8 | ;; Package: emacs | 7 | ;; Package: emacs |
| 9 | 8 | ||
diff --git a/lisp/cdl.el b/lisp/cdl.el index 752e59b5d49..36f72ef0510 100644 --- a/lisp/cdl.el +++ b/lisp/cdl.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 1993, 2001-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1993, 2001-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: Ata Etemadi <ATAE@spva.physics.imperial.ac.uk> | 5 | ;; Author: Ata Etemadi <ATAE@spva.physics.imperial.ac.uk> |
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Keywords: data | 6 | ;; Keywords: data |
| 8 | 7 | ||
| 9 | ;; This file is part of GNU Emacs. | 8 | ;; This file is part of GNU Emacs. |
diff --git a/lisp/cedet/cedet.el b/lisp/cedet/cedet.el index b3d4a5def2e..9260cfb47dc 100644 --- a/lisp/cedet/cedet.el +++ b/lisp/cedet/cedet.el | |||
| @@ -3,7 +3,7 @@ | |||
| 3 | ;; Copyright (C) 2002-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 2002-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: David Ponce <david@dponce.com> | 5 | ;; Author: David Ponce <david@dponce.com> |
| 6 | ;; Maintainer: Eric M. Ludlam <zappo@gnu.org> | 6 | ;; Maintainer: Eric M. Ludlam <zappo@gnu.org> |
| 7 | ;; Version: 2.0 | 7 | ;; Version: 2.0 |
| 8 | ;; Keywords: OO, lisp | 8 | ;; Keywords: OO, lisp |
| 9 | 9 | ||
diff --git a/lisp/cedet/semantic/imenu.el b/lisp/cedet/semantic/imenu.el index 0fb9eca7536..15ab50c72ac 100644 --- a/lisp/cedet/semantic/imenu.el +++ b/lisp/cedet/semantic/imenu.el | |||
| @@ -4,7 +4,7 @@ | |||
| 4 | ;; Foundation, Inc. | 4 | ;; Foundation, Inc. |
| 5 | 5 | ||
| 6 | ;; Author: Eric M. Ludlam <zappo@gnu.org> | 6 | ;; Author: Eric M. Ludlam <zappo@gnu.org> |
| 7 | ;; Maintainer: Eric Ludlam | 7 | ;; Maintainer: Eric M. Ludlam <zappo@gnu.org> |
| 8 | 8 | ||
| 9 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
| 10 | 10 | ||
diff --git a/lisp/cedet/semantic/senator.el b/lisp/cedet/semantic/senator.el index 2462662bbd8..79bb4b20ee3 100644 --- a/lisp/cedet/semantic/senator.el +++ b/lisp/cedet/semantic/senator.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 2000-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 2000-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: David Ponce <david@dponce.com> | 5 | ;; Author: David Ponce <david@dponce.com> |
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Created: 10 Nov 2000 | 6 | ;; Created: 10 Nov 2000 |
| 8 | ;; Keywords: syntax | 7 | ;; Keywords: syntax |
| 9 | 8 | ||
diff --git a/lisp/cedet/semantic/wisent/python.el b/lisp/cedet/semantic/wisent/python.el index c530329baed..c5849ffc973 100644 --- a/lisp/cedet/semantic/wisent/python.el +++ b/lisp/cedet/semantic/wisent/python.el | |||
| @@ -2,8 +2,8 @@ | |||
| 2 | 2 | ||
| 3 | ;; Copyright (C) 2002, 2004, 2006-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 2002, 2004, 2006-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: Richard Kim <emacs18@gmail.com> | 5 | ;; Author: Richard Kim <emacs18@gmail.com> |
| 6 | ;; Maintainer: Richard Kim <emacs18@gmail.com> | 6 | ;; Maintainer: Richard Kim <emacs18@gmail.com> |
| 7 | ;; Created: June 2002 | 7 | ;; Created: June 2002 |
| 8 | ;; Keywords: syntax | 8 | ;; Keywords: syntax |
| 9 | 9 | ||
diff --git a/lisp/cedet/srecode/insert.el b/lisp/cedet/srecode/insert.el index 26af2ffe2ef..a7445ea401a 100644 --- a/lisp/cedet/srecode/insert.el +++ b/lisp/cedet/srecode/insert.el | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | ;;; srecode/insert.el --- Insert srecode templates to an output stream. | 1 | ;;; srecode/insert.el --- Insert srecode templates to an output stream -*- lexical-binding:t -*- |
| 2 | 2 | ||
| 3 | ;; Copyright (C) 2005, 2007-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 2005, 2007-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| @@ -26,9 +26,6 @@ | |||
| 26 | ;; Manage the insertion process for a template. | 26 | ;; Manage the insertion process for a template. |
| 27 | ;; | 27 | ;; |
| 28 | 28 | ||
| 29 | (eval-when-compile | ||
| 30 | (require 'cl)) ;; for `lexical-let' | ||
| 31 | |||
| 32 | (require 'srecode/compile) | 29 | (require 'srecode/compile) |
| 33 | (require 'srecode/find) | 30 | (require 'srecode/find) |
| 34 | (require 'srecode/dictionary) | 31 | (require 'srecode/dictionary) |
| @@ -1049,21 +1046,20 @@ template where a ^ inserter occurs." | |||
| 1049 | ;; which implements the wrap insertion behavior in FUNCTION. The | 1046 | ;; which implements the wrap insertion behavior in FUNCTION. The |
| 1050 | ;; maximum valid nesting depth is just the current depth + 1. | 1047 | ;; maximum valid nesting depth is just the current depth + 1. |
| 1051 | (let ((srecode-template-inserter-point-override | 1048 | (let ((srecode-template-inserter-point-override |
| 1052 | (lexical-let ((inserter1 sti)) | 1049 | (cons |
| 1053 | (cons | 1050 | ;; DEPTH |
| 1054 | ;; DEPTH | 1051 | (+ (length (oref-default 'srecode-template active)) 1) |
| 1055 | (+ (length (oref-default 'srecode-template active)) 1) | 1052 | ;; FUNCTION |
| 1056 | ;; FUNCTION | 1053 | (lambda (dict) |
| 1057 | (lambda (dict) | 1054 | (let ((srecode-template-inserter-point-override nil)) |
| 1058 | (let ((srecode-template-inserter-point-override nil)) | 1055 | (if (srecode-dictionary-lookup-name |
| 1059 | (if (srecode-dictionary-lookup-name | 1056 | dict (oref sti :object-name)) |
| 1060 | dict (oref inserter1 :object-name)) | 1057 | ;; Insert our sectional part with looping. |
| 1061 | ;; Insert our sectional part with looping. | 1058 | (srecode-insert-method-helper |
| 1062 | (srecode-insert-method-helper | 1059 | sti dict 'template) |
| 1063 | inserter1 dict 'template) | 1060 | ;; Insert our sectional part just once. |
| 1064 | ;; Insert our sectional part just once. | 1061 | (srecode-insert-subtemplate |
| 1065 | (srecode-insert-subtemplate | 1062 | sti dict 'template))))))) |
| 1066 | inserter1 dict 'template)))))))) | ||
| 1067 | ;; Do a regular insertion for an include, but with our override in | 1063 | ;; Do a regular insertion for an include, but with our override in |
| 1068 | ;; place. | 1064 | ;; place. |
| 1069 | (cl-call-next-method))) | 1065 | (cl-call-next-method))) |
diff --git a/lisp/char-fold.el b/lisp/char-fold.el index e61bc3edc6a..426b1a9f844 100644 --- a/lisp/char-fold.el +++ b/lisp/char-fold.el | |||
| @@ -2,7 +2,6 @@ | |||
| 2 | 2 | ||
| 3 | ;; Copyright (C) 2015-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 2015-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Maintainer: emacs-devel@gnu.org | ||
| 6 | ;; Keywords: matching | 5 | ;; Keywords: matching |
| 7 | 6 | ||
| 8 | ;; This file is part of GNU Emacs. | 7 | ;; This file is part of GNU Emacs. |
diff --git a/lisp/chistory.el b/lisp/chistory.el index 59bdc00c674..9c29bb7c432 100644 --- a/lisp/chistory.el +++ b/lisp/chistory.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 1985, 2001-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1985, 2001-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: K. Shane Hartman | 5 | ;; Author: K. Shane Hartman |
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Keywords: convenience | 6 | ;; Keywords: convenience |
| 8 | 7 | ||
| 9 | ;; This file is part of GNU Emacs. | 8 | ;; This file is part of GNU Emacs. |
diff --git a/lisp/cmuscheme.el b/lisp/cmuscheme.el index ed6f1bfb1ad..f949a8c1098 100644 --- a/lisp/cmuscheme.el +++ b/lisp/cmuscheme.el | |||
| @@ -4,7 +4,6 @@ | |||
| 4 | ;; Inc. | 4 | ;; Inc. |
| 5 | 5 | ||
| 6 | ;; Author: Olin Shivers <olin.shivers@cs.cmu.edu> | 6 | ;; Author: Olin Shivers <olin.shivers@cs.cmu.edu> |
| 7 | ;; Maintainer: emacs-devel@gnu.org | ||
| 8 | ;; Keywords: processes, lisp | 7 | ;; Keywords: processes, lisp |
| 9 | 8 | ||
| 10 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
diff --git a/lisp/comint.el b/lisp/comint.el index d21cc1378f7..3939371ab85 100644 --- a/lisp/comint.el +++ b/lisp/comint.el | |||
| @@ -4,7 +4,6 @@ | |||
| 4 | 4 | ||
| 5 | ;; Author: Olin Shivers <shivers@cs.cmu.edu> | 5 | ;; Author: Olin Shivers <shivers@cs.cmu.edu> |
| 6 | ;; Simon Marshall <simon@gnu.org> | 6 | ;; Simon Marshall <simon@gnu.org> |
| 7 | ;; Maintainer: emacs-devel@gnu.org | ||
| 8 | ;; Keywords: processes | 7 | ;; Keywords: processes |
| 9 | ;; Package: emacs | 8 | ;; Package: emacs |
| 10 | 9 | ||
diff --git a/lisp/completion.el b/lisp/completion.el index 89285c74d41..ff392dd8219 100644 --- a/lisp/completion.el +++ b/lisp/completion.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 1990, 1993, 1995, 1997, 2001-2019 Free Software | 3 | ;; Copyright (C) 1990, 1993, 1995, 1997, 2001-2019 Free Software |
| 4 | ;; Foundation, Inc. | 4 | ;; Foundation, Inc. |
| 5 | 5 | ||
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Keywords: abbrev convenience | 6 | ;; Keywords: abbrev convenience |
| 8 | ;; Author: Jim Salem <alem@bbnplanet.com> of Thinking Machines Inc. | 7 | ;; Author: Jim Salem <alem@bbnplanet.com> of Thinking Machines Inc. |
| 9 | ;; (ideas suggested by Brewster Kahle) | 8 | ;; (ideas suggested by Brewster Kahle) |
diff --git a/lisp/composite.el b/lisp/composite.el index d2df3d1e922..87f563030bd 100644 --- a/lisp/composite.el +++ b/lisp/composite.el | |||
| @@ -7,7 +7,7 @@ | |||
| 7 | ;; National Institute of Advanced Industrial Science and Technology (AIST) | 7 | ;; National Institute of Advanced Industrial Science and Technology (AIST) |
| 8 | ;; Registration Number H14PRO021 | 8 | ;; Registration Number H14PRO021 |
| 9 | 9 | ||
| 10 | ;; Author: Kenichi HANDA <handa@etl.go.jp> | 10 | ;; Author: Kenichi Handa <handa@gnu.org> |
| 11 | ;; (according to ack.texi) | 11 | ;; (according to ack.texi) |
| 12 | ;; Keywords: mule, multilingual, character composition | 12 | ;; Keywords: mule, multilingual, character composition |
| 13 | ;; Package: emacs | 13 | ;; Package: emacs |
diff --git a/lisp/cus-edit.el b/lisp/cus-edit.el index 6d47e607ae6..e65f19dd2e1 100644 --- a/lisp/cus-edit.el +++ b/lisp/cus-edit.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 1996-1997, 1999-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1996-1997, 1999-2019 Free Software Foundation, Inc. |
| 4 | ;; | 4 | ;; |
| 5 | ;; Author: Per Abrahamsen <abraham@dina.kvl.dk> | 5 | ;; Author: Per Abrahamsen <abraham@dina.kvl.dk> |
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Keywords: help, faces | 6 | ;; Keywords: help, faces |
| 8 | ;; Package: emacs | 7 | ;; Package: emacs |
| 9 | 8 | ||
diff --git a/lisp/cus-theme.el b/lisp/cus-theme.el index bc9d1d4f7d6..9846aa8d99d 100644 --- a/lisp/cus-theme.el +++ b/lisp/cus-theme.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 2001-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 2001-2019 Free Software Foundation, Inc. |
| 4 | ;; | 4 | ;; |
| 5 | ;; Author: Alex Schroeder <alex@gnu.org> | 5 | ;; Author: Alex Schroeder <alex@gnu.org> |
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Keywords: help, faces | 6 | ;; Keywords: help, faces |
| 8 | ;; Package: emacs | 7 | ;; Package: emacs |
| 9 | 8 | ||
diff --git a/lisp/custom.el b/lisp/custom.el index 29bf9e570a8..e2bf8718b62 100644 --- a/lisp/custom.el +++ b/lisp/custom.el | |||
| @@ -4,7 +4,6 @@ | |||
| 4 | ;; Inc. | 4 | ;; Inc. |
| 5 | ;; | 5 | ;; |
| 6 | ;; Author: Per Abrahamsen <abraham@dina.kvl.dk> | 6 | ;; Author: Per Abrahamsen <abraham@dina.kvl.dk> |
| 7 | ;; Maintainer: emacs-devel@gnu.org | ||
| 8 | ;; Keywords: help, faces | 7 | ;; Keywords: help, faces |
| 9 | ;; Package: emacs | 8 | ;; Package: emacs |
| 10 | 9 | ||
diff --git a/lisp/dabbrev.el b/lisp/dabbrev.el index 2159f96028f..aa22d6c754e 100644 --- a/lisp/dabbrev.el +++ b/lisp/dabbrev.el | |||
| @@ -6,7 +6,6 @@ | |||
| 6 | ;; Author: Don Morrison | 6 | ;; Author: Don Morrison |
| 7 | ;; Lars Lindberg | 7 | ;; Lars Lindberg |
| 8 | ;; (according to ack.texi) | 8 | ;; (according to ack.texi) |
| 9 | ;; Maintainer: emacs-devel@gnu.org | ||
| 10 | ;; Created: 16 Mars 1992 | 9 | ;; Created: 16 Mars 1992 |
| 11 | ;; Lindberg's last update version: 5.7 | 10 | ;; Lindberg's last update version: 5.7 |
| 12 | ;; Keywords: abbrev expand completion convenience | 11 | ;; Keywords: abbrev expand completion convenience |
| @@ -238,8 +237,7 @@ See also `dabbrev-ignored-buffer-names'." | |||
| 238 | :version "21.1") | 237 | :version "21.1") |
| 239 | 238 | ||
| 240 | (defcustom dabbrev-check-other-buffers t | 239 | (defcustom dabbrev-check-other-buffers t |
| 241 | "Should \\[dabbrev-expand] look in other buffers?\ | 240 | "Should \\[dabbrev-expand] look in other buffers? |
| 242 | |||
| 243 | nil: Don't look in other buffers. | 241 | nil: Don't look in other buffers. |
| 244 | t: Also look for expansions in the buffers pointed out by | 242 | t: Also look for expansions in the buffers pointed out by |
| 245 | `dabbrev-select-buffers-function'. | 243 | `dabbrev-select-buffers-function'. |
diff --git a/lisp/delim-col.el b/lisp/delim-col.el index a968b32052b..4b4fc7fe960 100644 --- a/lisp/delim-col.el +++ b/lisp/delim-col.el | |||
| @@ -1,12 +1,12 @@ | |||
| 1 | ;;; delim-col.el --- prettify all columns in a region or rectangle | 1 | ;;; delim-col.el --- prettify all columns in a region or rectangle -*- lexical-binding: t; -*- |
| 2 | 2 | ||
| 3 | ;; Copyright (C) 1999-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1999-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: Vinicius Jose Latorre <viniciusjl.gnu@gmail.com> | 5 | ;; Author: Vinicius Jose Latorre <viniciusjl.gnu@gmail.com> |
| 6 | ;; Maintainer: Vinicius Jose Latorre <viniciusjl.gnu@gmail.com> | 6 | ;; Maintainer: Vinicius Jose Latorre <viniciusjl.gnu@gmail.com> |
| 7 | ;; Version: 2.1 | 7 | ;; Version: 2.1 |
| 8 | ;; Keywords: internal | 8 | ;; Keywords: convenience text |
| 9 | ;; X-URL: http://www.emacswiki.org/cgi-bin/wiki/ViniciusJoseLatorre | 9 | ;; X-URL: https://www.emacswiki.org/emacs/ViniciusJoseLatorre |
| 10 | 10 | ||
| 11 | ;; This file is part of GNU Emacs. | 11 | ;; This file is part of GNU Emacs. |
| 12 | 12 | ||
| @@ -27,11 +27,6 @@ | |||
| 27 | 27 | ||
| 28 | ;; delim-col helps to prettify columns in a text region or rectangle. | 28 | ;; delim-col helps to prettify columns in a text region or rectangle. |
| 29 | ;; | 29 | ;; |
| 30 | ;; To use it, make sure that this file is in load-path and insert in your | ||
| 31 | ;; .emacs: | ||
| 32 | ;; | ||
| 33 | ;; (require 'delim-col) | ||
| 34 | ;; | ||
| 35 | ;; If you have, for example, the following columns: | 30 | ;; If you have, for example, the following columns: |
| 36 | ;; | 31 | ;; |
| 37 | ;; a b c d | 32 | ;; a b c d |
| @@ -91,9 +86,9 @@ | |||
| 91 | ;; aaa [ <bbb>, <cccc> ] dddd | 86 | ;; aaa [ <bbb>, <cccc> ] dddd |
| 92 | ;; aa [ <bb> , <ccccccc> ] ddd | 87 | ;; aa [ <bb> , <ccccccc> ] ddd |
| 93 | ;; | 88 | ;; |
| 94 | ;; Note that `delimit-columns-region' operates over all text region | 89 | ;; Note that `delimit-columns-region' operates over the entire selected |
| 95 | ;; selected, extending the region start to the beginning of line and the | 90 | ;; text region, extending the region start to the beginning of line and |
| 96 | ;; region end to the end of line. While `delimit-columns-rectangle' | 91 | ;; the region end to the end of line. While `delimit-columns-rectangle' |
| 97 | ;; operates over the text rectangle selected which rectangle diagonal is | 92 | ;; operates over the text rectangle selected which rectangle diagonal is |
| 98 | ;; given by the region start and end. | 93 | ;; given by the region start and end. |
| 99 | ;; | 94 | ;; |
| @@ -117,6 +112,7 @@ | |||
| 117 | 112 | ||
| 118 | ;;; Code: | 113 | ;;; Code: |
| 119 | 114 | ||
| 115 | (require 'rect) | ||
| 120 | 116 | ||
| 121 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | 117 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
| 122 | ;; User Options: | 118 | ;; User Options: |
| @@ -125,6 +121,7 @@ | |||
| 125 | "Prettify columns." | 121 | "Prettify columns." |
| 126 | :link '(emacs-library-link :tag "Source Lisp File" "delim-col.el") | 122 | :link '(emacs-library-link :tag "Source Lisp File" "delim-col.el") |
| 127 | :prefix "delimit-columns-" | 123 | :prefix "delimit-columns-" |
| 124 | :group 'convenience | ||
| 128 | :group 'text) | 125 | :group 'text) |
| 129 | 126 | ||
| 130 | (defcustom delimit-columns-str-before "" | 127 | (defcustom delimit-columns-str-before "" |
| @@ -213,10 +210,11 @@ See also `delimit-columns-end' for documentation. | |||
| 213 | The following relation must hold: | 210 | The following relation must hold: |
| 214 | 0 <= delimit-columns-start <= delimit-columns-end | 211 | 0 <= delimit-columns-start <= delimit-columns-end |
| 215 | 212 | ||
| 216 | The column number start from 0 and it's relative to the beginning of selected | 213 | The column number starts at 0 and is relative to the beginning of |
| 217 | region. So if you selected a text region, the first column (column 0) is | 214 | the selected region. So if you select a text region, the first |
| 218 | located at beginning of line. If you selected a text rectangle, the first | 215 | column (column 0) is located at the beginning of line. If you |
| 219 | column (column 0) is located at left corner." | 216 | select a text rectangle, the first column (column 0) is located |
| 217 | at the left corner." | ||
| 220 | :type '(integer :tag "Column Start") | 218 | :type '(integer :tag "Column Start") |
| 221 | :group 'columns) | 219 | :group 'columns) |
| 222 | 220 | ||
| @@ -228,10 +226,11 @@ See also `delimit-columns-start' for documentation. | |||
| 228 | The following relation must hold: | 226 | The following relation must hold: |
| 229 | 0 <= delimit-columns-start <= delimit-columns-end | 227 | 0 <= delimit-columns-start <= delimit-columns-end |
| 230 | 228 | ||
| 231 | The column number start from 0 and it's relative to the beginning of selected | 229 | The column number starts at 0 and is relative to the beginning of |
| 232 | region. So if you selected a text region, the first column (column 0) is | 230 | the selected region. So if you select a text region, the first |
| 233 | located at beginning of line. If you selected a text rectangle, the first | 231 | column (column 0) is located at the beginning of line. If you |
| 234 | column (column 0) is located at left corner." | 232 | select a text rectangle, the first column (column 0) is located |
| 233 | at the left corner." | ||
| 235 | :type '(integer :tag "Column End") | 234 | :type '(integer :tag "Column End") |
| 236 | :group 'columns) | 235 | :group 'columns) |
| 237 | 236 | ||
| @@ -247,20 +246,20 @@ column (column 0) is located at left corner." | |||
| 247 | 246 | ||
| 248 | ;;;###autoload | 247 | ;;;###autoload |
| 249 | (defun delimit-columns-customize () | 248 | (defun delimit-columns-customize () |
| 250 | "Customization of `columns' group." | 249 | "Customize the `columns' group." |
| 251 | (interactive) | 250 | (interactive) |
| 252 | (customize-group 'columns)) | 251 | (customize-group 'columns)) |
| 253 | 252 | ||
| 254 | 253 | ||
| 255 | (defmacro delimit-columns-str (str) | 254 | (defun delimit-columns-str (str) |
| 256 | `(if (stringp ,str) ,str "")) | 255 | (if (stringp str) str "")) |
| 257 | 256 | ||
| 258 | 257 | ||
| 259 | ;;;###autoload | 258 | ;;;###autoload |
| 260 | (defun delimit-columns-region (start end) | 259 | (defun delimit-columns-region (start end) |
| 261 | "Prettify all columns in a text region. | 260 | "Prettify all columns in a text region. |
| 262 | 261 | ||
| 263 | START and END delimits the text region." | 262 | START and END delimit the text region." |
| 264 | (interactive "*r") | 263 | (interactive "*r") |
| 265 | (let ((delimit-columns-str-before | 264 | (let ((delimit-columns-str-before |
| 266 | (delimit-columns-str delimit-columns-str-before)) | 265 | (delimit-columns-str delimit-columns-str-before)) |
| @@ -273,8 +272,7 @@ START and END delimits the text region." | |||
| 273 | (delimit-columns-after | 272 | (delimit-columns-after |
| 274 | (delimit-columns-str delimit-columns-after)) | 273 | (delimit-columns-str delimit-columns-after)) |
| 275 | (delimit-columns-start | 274 | (delimit-columns-start |
| 276 | (if (and (integerp delimit-columns-start) | 275 | (if (natnump delimit-columns-start) |
| 277 | (>= delimit-columns-start 0)) | ||
| 278 | delimit-columns-start | 276 | delimit-columns-start |
| 279 | 0)) | 277 | 0)) |
| 280 | (delimit-columns-end | 278 | (delimit-columns-end |
| @@ -309,14 +307,11 @@ START and END delimits the text region." | |||
| 309 | (set-marker the-end nil))))) | 307 | (set-marker the-end nil))))) |
| 310 | 308 | ||
| 311 | 309 | ||
| 312 | (require 'rect) | ||
| 313 | |||
| 314 | |||
| 315 | ;;;###autoload | 310 | ;;;###autoload |
| 316 | (defun delimit-columns-rectangle (start end) | 311 | (defun delimit-columns-rectangle (start end) |
| 317 | "Prettify all columns in a text rectangle. | 312 | "Prettify all columns in a text rectangle. |
| 318 | 313 | ||
| 319 | START and END delimits the corners of text rectangle." | 314 | START and END delimit the corners of the text rectangle." |
| 320 | (interactive "*r") | 315 | (interactive "*r") |
| 321 | (let ((delimit-columns-str-before | 316 | (let ((delimit-columns-str-before |
| 322 | (delimit-columns-str delimit-columns-str-before)) | 317 | (delimit-columns-str delimit-columns-str-before)) |
| @@ -329,8 +324,7 @@ START and END delimits the corners of text rectangle." | |||
| 329 | (delimit-columns-after | 324 | (delimit-columns-after |
| 330 | (delimit-columns-str delimit-columns-after)) | 325 | (delimit-columns-str delimit-columns-after)) |
| 331 | (delimit-columns-start | 326 | (delimit-columns-start |
| 332 | (if (and (integerp delimit-columns-start) | 327 | (if (natnump delimit-columns-start) |
| 333 | (>= delimit-columns-start 0)) | ||
| 334 | delimit-columns-start | 328 | delimit-columns-start |
| 335 | 0)) | 329 | 0)) |
| 336 | (delimit-columns-end | 330 | (delimit-columns-end |
| @@ -344,11 +338,11 @@ START and END delimits the corners of text rectangle." | |||
| 344 | ;; get maximum length for each column | 338 | ;; get maximum length for each column |
| 345 | (and delimit-columns-format | 339 | (and delimit-columns-format |
| 346 | (save-excursion | 340 | (save-excursion |
| 347 | (operate-on-rectangle 'delimit-columns-rectangle-max | 341 | (operate-on-rectangle #'delimit-columns-rectangle-max |
| 348 | start the-end nil))) | 342 | start the-end nil))) |
| 349 | ;; prettify columns | 343 | ;; prettify columns |
| 350 | (save-excursion | 344 | (save-excursion |
| 351 | (operate-on-rectangle 'delimit-columns-rectangle-line | 345 | (operate-on-rectangle #'delimit-columns-rectangle-line |
| 352 | start the-end nil)) | 346 | start the-end nil)) |
| 353 | ;; nullify markers | 347 | ;; nullify markers |
| 354 | (set-marker delimit-columns-limit nil) | 348 | (set-marker delimit-columns-limit nil) |
| @@ -359,7 +353,7 @@ START and END delimits the corners of text rectangle." | |||
| 359 | ;; Internal Variables and Functions: | 353 | ;; Internal Variables and Functions: |
| 360 | 354 | ||
| 361 | 355 | ||
| 362 | (defun delimit-columns-rectangle-max (startpos &optional _ignore1 _ignore2) | 356 | (defun delimit-columns-rectangle-max (startpos &optional _begextra _endextra) |
| 363 | (set-marker delimit-columns-limit (point)) | 357 | (set-marker delimit-columns-limit (point)) |
| 364 | (goto-char startpos) | 358 | (goto-char startpos) |
| 365 | (let ((ncol 1) | 359 | (let ((ncol 1) |
| @@ -392,7 +386,7 @@ START and END delimits the corners of text rectangle." | |||
| 392 | (setq values (cdr values))))) | 386 | (setq values (cdr values))))) |
| 393 | 387 | ||
| 394 | 388 | ||
| 395 | (defun delimit-columns-rectangle-line (startpos &optional _ignore1 _ignore2) | 389 | (defun delimit-columns-rectangle-line (startpos &optional _begextra _endextra) |
| 396 | (let ((len (length delimit-columns-max)) | 390 | (let ((len (length delimit-columns-max)) |
| 397 | (ncol 0) | 391 | (ncol 0) |
| 398 | origin) | 392 | origin) |
| @@ -442,8 +436,7 @@ START and END delimits the corners of text rectangle." | |||
| 442 | ((eq delimit-columns-format 'padding) | 436 | ((eq delimit-columns-format 'padding) |
| 443 | (insert spaces delimit-columns-after delimit-columns-str-after)) | 437 | (insert spaces delimit-columns-after delimit-columns-str-after)) |
| 444 | (t | 438 | (t |
| 445 | (insert delimit-columns-after spaces delimit-columns-str-after)) | 439 | (insert delimit-columns-after spaces delimit-columns-str-after)))) |
| 446 | )) | ||
| 447 | (goto-char (max (point) delimit-columns-limit)))) | 440 | (goto-char (max (point) delimit-columns-limit)))) |
| 448 | 441 | ||
| 449 | 442 | ||
| @@ -466,8 +459,7 @@ START and END delimits the corners of text rectangle." | |||
| 466 | (insert delimit-columns-after | 459 | (insert delimit-columns-after |
| 467 | delimit-columns-str-separator | 460 | delimit-columns-str-separator |
| 468 | spaces | 461 | spaces |
| 469 | delimit-columns-before)) | 462 | delimit-columns-before)))) |
| 470 | )) | ||
| 471 | 463 | ||
| 472 | 464 | ||
| 473 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | 465 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
diff --git a/lisp/delsel.el b/lisp/delsel.el index 8f71bc65191..a815b91c015 100644 --- a/lisp/delsel.el +++ b/lisp/delsel.el | |||
| @@ -4,7 +4,6 @@ | |||
| 4 | ;; Inc. | 4 | ;; Inc. |
| 5 | 5 | ||
| 6 | ;; Author: Matthieu Devin <devin@lucid.com> | 6 | ;; Author: Matthieu Devin <devin@lucid.com> |
| 7 | ;; Maintainer: emacs-devel@gnu.org | ||
| 8 | ;; Created: 14 Jul 92 | 7 | ;; Created: 14 Jul 92 |
| 9 | ;; Keywords: convenience emulations | 8 | ;; Keywords: convenience emulations |
| 10 | 9 | ||
diff --git a/lisp/descr-text.el b/lisp/descr-text.el index 8be2b94458a..2976b788f0a 100644 --- a/lisp/descr-text.el +++ b/lisp/descr-text.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 1994-1996, 2001-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1994-1996, 2001-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: Boris Goldowsky <boris@gnu.org> | 5 | ;; Author: Boris Goldowsky <boris@gnu.org> |
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Keywords: faces, i18n, Unicode, multilingual | 6 | ;; Keywords: faces, i18n, Unicode, multilingual |
| 8 | 7 | ||
| 9 | ;; This file is part of GNU Emacs. | 8 | ;; This file is part of GNU Emacs. |
diff --git a/lisp/dired-aux.el b/lisp/dired-aux.el index 51749acb217..387bd4e004c 100644 --- a/lisp/dired-aux.el +++ b/lisp/dired-aux.el | |||
| @@ -4,7 +4,6 @@ | |||
| 4 | ;; Foundation, Inc. | 4 | ;; Foundation, Inc. |
| 5 | 5 | ||
| 6 | ;; Author: Sebastian Kremer <sk@thp.uni-koeln.de>. | 6 | ;; Author: Sebastian Kremer <sk@thp.uni-koeln.de>. |
| 7 | ;; Maintainer: emacs-devel@gnu.org | ||
| 8 | ;; Keywords: files | 7 | ;; Keywords: files |
| 9 | ;; Package: emacs | 8 | ;; Package: emacs |
| 10 | 9 | ||
diff --git a/lisp/dired.el b/lisp/dired.el index ea1943de1db..f137d4a5be0 100644 --- a/lisp/dired.el +++ b/lisp/dired.el | |||
| @@ -4,7 +4,6 @@ | |||
| 4 | ;; Foundation, Inc. | 4 | ;; Foundation, Inc. |
| 5 | 5 | ||
| 6 | ;; Author: Sebastian Kremer <sk@thp.uni-koeln.de> | 6 | ;; Author: Sebastian Kremer <sk@thp.uni-koeln.de> |
| 7 | ;; Maintainer: emacs-devel@gnu.org | ||
| 8 | ;; Keywords: files | 7 | ;; Keywords: files |
| 9 | ;; Package: emacs | 8 | ;; Package: emacs |
| 10 | 9 | ||
diff --git a/lisp/disp-table.el b/lisp/disp-table.el index 4a597506774..f1676bbfa3a 100644 --- a/lisp/disp-table.el +++ b/lisp/disp-table.el | |||
| @@ -5,7 +5,6 @@ | |||
| 5 | 5 | ||
| 6 | ;; Author: Erik Naggum <erik@naggum.no> | 6 | ;; Author: Erik Naggum <erik@naggum.no> |
| 7 | ;; Based on a previous version by Howard Gayle | 7 | ;; Based on a previous version by Howard Gayle |
| 8 | ;; Maintainer: emacs-devel@gnu.org | ||
| 9 | ;; Keywords: i18n | 8 | ;; Keywords: i18n |
| 10 | ;; Package: emacs | 9 | ;; Package: emacs |
| 11 | 10 | ||
diff --git a/lisp/display-fill-column-indicator.el b/lisp/display-fill-column-indicator.el index 6d5f5a9f894..ec89adea218 100644 --- a/lisp/display-fill-column-indicator.el +++ b/lisp/display-fill-column-indicator.el | |||
| @@ -2,7 +2,6 @@ | |||
| 2 | 2 | ||
| 3 | ;; Copyright (C) 2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Maintainer: emacs-devel@gnu.org | ||
| 6 | ;; Keywords: convenience | 5 | ;; Keywords: convenience |
| 7 | 6 | ||
| 8 | ;; This file is part of GNU Emacs. | 7 | ;; This file is part of GNU Emacs. |
diff --git a/lisp/display-line-numbers.el b/lisp/display-line-numbers.el index d38f2e69635..ac01112215e 100644 --- a/lisp/display-line-numbers.el +++ b/lisp/display-line-numbers.el | |||
| @@ -2,7 +2,6 @@ | |||
| 2 | 2 | ||
| 3 | ;; Copyright (C) 2017-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 2017-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Maintainer: emacs-devel@gnu.org | ||
| 6 | ;; Keywords: convenience | 5 | ;; Keywords: convenience |
| 7 | 6 | ||
| 8 | ;; This file is part of GNU Emacs. | 7 | ;; This file is part of GNU Emacs. |
diff --git a/lisp/dnd.el b/lisp/dnd.el index 459a7238dcd..82bb7c9ef86 100644 --- a/lisp/dnd.el +++ b/lisp/dnd.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 2005-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 2005-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: Jan Djärv <jan.h.d@swipnet.se> | 5 | ;; Author: Jan Djärv <jan.h.d@swipnet.se> |
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Keywords: window, drag, drop | 6 | ;; Keywords: window, drag, drop |
| 8 | ;; Package: emacs | 7 | ;; Package: emacs |
| 9 | 8 | ||
diff --git a/lisp/dos-fns.el b/lisp/dos-fns.el index c575dd413fc..bffd54006de 100644 --- a/lisp/dos-fns.el +++ b/lisp/dos-fns.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 1991, 1993, 1995-1996, 2001-2019 Free Software | 3 | ;; Copyright (C) 1991, 1993, 1995-1996, 2001-2019 Free Software |
| 4 | ;; Foundation, Inc. | 4 | ;; Foundation, Inc. |
| 5 | 5 | ||
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Keywords: internal | 6 | ;; Keywords: internal |
| 8 | ;; Package: emacs | 7 | ;; Package: emacs |
| 9 | 8 | ||
diff --git a/lisp/dos-vars.el b/lisp/dos-vars.el index 53de20b853a..0bf10133c24 100644 --- a/lisp/dos-vars.el +++ b/lisp/dos-vars.el | |||
| @@ -2,7 +2,6 @@ | |||
| 2 | 2 | ||
| 3 | ;; Copyright (C) 1998, 2001-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1998, 2001-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Maintainer: emacs-devel@gnu.org | ||
| 6 | ;; Keywords: internal | 5 | ;; Keywords: internal |
| 7 | ;; Package: emacs | 6 | ;; Package: emacs |
| 8 | 7 | ||
diff --git a/lisp/dynamic-setting.el b/lisp/dynamic-setting.el index cf1a8d3b73c..ea530f991a7 100644 --- a/lisp/dynamic-setting.el +++ b/lisp/dynamic-setting.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 2009-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 2009-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: Jan Djärv <jan.h.d@swipnet.se> | 5 | ;; Author: Jan Djärv <jan.h.d@swipnet.se> |
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Keywords: font, system-font, tool-bar-style | 6 | ;; Keywords: font, system-font, tool-bar-style |
| 8 | ;; Package: emacs | 7 | ;; Package: emacs |
| 9 | 8 | ||
diff --git a/lisp/ebuff-menu.el b/lisp/ebuff-menu.el index 6543e5f1978..ddfad25a382 100644 --- a/lisp/ebuff-menu.el +++ b/lisp/ebuff-menu.el | |||
| @@ -4,7 +4,6 @@ | |||
| 4 | ;; Inc. | 4 | ;; Inc. |
| 5 | 5 | ||
| 6 | ;; Author: Richard Mlynarik <mly@ai.mit.edu> | 6 | ;; Author: Richard Mlynarik <mly@ai.mit.edu> |
| 7 | ;; Maintainer: emacs-devel@gnu.org | ||
| 8 | ;; Keywords: convenience | 7 | ;; Keywords: convenience |
| 9 | 8 | ||
| 10 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
diff --git a/lisp/echistory.el b/lisp/echistory.el index e932daf2f01..8006d7bcd95 100644 --- a/lisp/echistory.el +++ b/lisp/echistory.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 1985, 2001-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1985, 2001-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: K. Shane Hartman | 5 | ;; Author: K. Shane Hartman |
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | 6 | ||
| 8 | ;; This file is part of GNU Emacs. | 7 | ;; This file is part of GNU Emacs. |
| 9 | 8 | ||
diff --git a/lisp/ehelp.el b/lisp/ehelp.el index 2a24c9857c2..8fc8e1f15af 100644 --- a/lisp/ehelp.el +++ b/lisp/ehelp.el | |||
| @@ -4,7 +4,6 @@ | |||
| 4 | 4 | ||
| 5 | ;; Author: Richard Mlynarik | 5 | ;; Author: Richard Mlynarik |
| 6 | ;; (according to ack.texi and authors.el) | 6 | ;; (according to ack.texi and authors.el) |
| 7 | ;; Maintainer: emacs-devel@gnu.org | ||
| 8 | ;; Keywords: help, extensions | 7 | ;; Keywords: help, extensions |
| 9 | 8 | ||
| 10 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
diff --git a/lisp/electric.el b/lisp/electric.el index 07da2f1d9e7..1f4c132f922 100644 --- a/lisp/electric.el +++ b/lisp/electric.el | |||
| @@ -4,7 +4,6 @@ | |||
| 4 | ;; Inc. | 4 | ;; Inc. |
| 5 | 5 | ||
| 6 | ;; Author: K. Shane Hartman | 6 | ;; Author: K. Shane Hartman |
| 7 | ;; Maintainer: emacs-devel@gnu.org | ||
| 8 | ;; Keywords: extensions | 7 | ;; Keywords: extensions |
| 9 | 8 | ||
| 10 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
diff --git a/lisp/emacs-lisp/advice.el b/lisp/emacs-lisp/advice.el index 2034f33d0e6..dfd6d2e5b8f 100644 --- a/lisp/emacs-lisp/advice.el +++ b/lisp/emacs-lisp/advice.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 1993-1994, 2000-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1993-1994, 2000-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: Hans Chalupsky <hans@cs.buffalo.edu> | 5 | ;; Author: Hans Chalupsky <hans@cs.buffalo.edu> |
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Created: 12 Dec 1992 | 6 | ;; Created: 12 Dec 1992 |
| 8 | ;; Keywords: extensions, lisp, tools | 7 | ;; Keywords: extensions, lisp, tools |
| 9 | ;; Package: emacs | 8 | ;; Package: emacs |
diff --git a/lisp/emacs-lisp/avl-tree.el b/lisp/emacs-lisp/avl-tree.el index d2a3a131d16..a1739562f6f 100644 --- a/lisp/emacs-lisp/avl-tree.el +++ b/lisp/emacs-lisp/avl-tree.el | |||
| @@ -6,7 +6,6 @@ | |||
| 6 | ;; Inge Wallin <inge@lysator.liu.se> | 6 | ;; Inge Wallin <inge@lysator.liu.se> |
| 7 | ;; Thomas Bellman <bellman@lysator.liu.se> | 7 | ;; Thomas Bellman <bellman@lysator.liu.se> |
| 8 | ;; Toby Cubitt <toby-predictive@dr-qubit.org> | 8 | ;; Toby Cubitt <toby-predictive@dr-qubit.org> |
| 9 | ;; Maintainer: emacs-devel@gnu.org | ||
| 10 | ;; Created: 10 May 1991 | 9 | ;; Created: 10 May 1991 |
| 11 | ;; Keywords: extensions, data structures, AVL, tree | 10 | ;; Keywords: extensions, data structures, AVL, tree |
| 12 | 11 | ||
diff --git a/lisp/emacs-lisp/backquote.el b/lisp/emacs-lisp/backquote.el index 5e72dc3b400..344a0ba8f61 100644 --- a/lisp/emacs-lisp/backquote.el +++ b/lisp/emacs-lisp/backquote.el | |||
| @@ -4,7 +4,6 @@ | |||
| 4 | ;; Inc. | 4 | ;; Inc. |
| 5 | 5 | ||
| 6 | ;; Author: Rick Sladkey <jrs@world.std.com> | 6 | ;; Author: Rick Sladkey <jrs@world.std.com> |
| 7 | ;; Maintainer: emacs-devel@gnu.org | ||
| 8 | ;; Keywords: extensions, internal | 7 | ;; Keywords: extensions, internal |
| 9 | ;; Package: emacs | 8 | ;; Package: emacs |
| 10 | 9 | ||
diff --git a/lisp/emacs-lisp/byte-opt.el b/lisp/emacs-lisp/byte-opt.el index 44cca6136c0..02a9749f47a 100644 --- a/lisp/emacs-lisp/byte-opt.el +++ b/lisp/emacs-lisp/byte-opt.el | |||
| @@ -4,7 +4,6 @@ | |||
| 4 | 4 | ||
| 5 | ;; Author: Jamie Zawinski <jwz@lucid.com> | 5 | ;; Author: Jamie Zawinski <jwz@lucid.com> |
| 6 | ;; Hallvard Furuseth <hbf@ulrik.uio.no> | 6 | ;; Hallvard Furuseth <hbf@ulrik.uio.no> |
| 7 | ;; Maintainer: emacs-devel@gnu.org | ||
| 8 | ;; Keywords: internal | 7 | ;; Keywords: internal |
| 9 | ;; Package: emacs | 8 | ;; Package: emacs |
| 10 | 9 | ||
diff --git a/lisp/emacs-lisp/byte-run.el b/lisp/emacs-lisp/byte-run.el index 842d1d48b45..811b485dc6f 100644 --- a/lisp/emacs-lisp/byte-run.el +++ b/lisp/emacs-lisp/byte-run.el | |||
| @@ -4,7 +4,6 @@ | |||
| 4 | 4 | ||
| 5 | ;; Author: Jamie Zawinski <jwz@lucid.com> | 5 | ;; Author: Jamie Zawinski <jwz@lucid.com> |
| 6 | ;; Hallvard Furuseth <hbf@ulrik.uio.no> | 6 | ;; Hallvard Furuseth <hbf@ulrik.uio.no> |
| 7 | ;; Maintainer: emacs-devel@gnu.org | ||
| 8 | ;; Keywords: internal | 7 | ;; Keywords: internal |
| 9 | ;; Package: emacs | 8 | ;; Package: emacs |
| 10 | 9 | ||
diff --git a/lisp/emacs-lisp/bytecomp.el b/lisp/emacs-lisp/bytecomp.el index e76baf5ed0d..95e287c806c 100644 --- a/lisp/emacs-lisp/bytecomp.el +++ b/lisp/emacs-lisp/bytecomp.el | |||
| @@ -5,7 +5,6 @@ | |||
| 5 | 5 | ||
| 6 | ;; Author: Jamie Zawinski <jwz@lucid.com> | 6 | ;; Author: Jamie Zawinski <jwz@lucid.com> |
| 7 | ;; Hallvard Furuseth <hbf@ulrik.uio.no> | 7 | ;; Hallvard Furuseth <hbf@ulrik.uio.no> |
| 8 | ;; Maintainer: emacs-devel@gnu.org | ||
| 9 | ;; Keywords: lisp | 8 | ;; Keywords: lisp |
| 10 | ;; Package: emacs | 9 | ;; Package: emacs |
| 11 | 10 | ||
diff --git a/lisp/emacs-lisp/cconv.el b/lisp/emacs-lisp/cconv.el index 58ca9d5f57e..21af4b6e631 100644 --- a/lisp/emacs-lisp/cconv.el +++ b/lisp/emacs-lisp/cconv.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 2011-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 2011-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: Igor Kuzmin <kzuminig@iro.umontreal.ca> | 5 | ;; Author: Igor Kuzmin <kzuminig@iro.umontreal.ca> |
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Keywords: lisp | 6 | ;; Keywords: lisp |
| 8 | ;; Package: emacs | 7 | ;; Package: emacs |
| 9 | 8 | ||
diff --git a/lisp/emacs-lisp/cl-indent.el b/lisp/emacs-lisp/cl-indent.el index 10af440008d..ea6efbf851d 100644 --- a/lisp/emacs-lisp/cl-indent.el +++ b/lisp/emacs-lisp/cl-indent.el | |||
| @@ -4,7 +4,6 @@ | |||
| 4 | 4 | ||
| 5 | ;; Author: Richard Mlynarik <mly@eddie.mit.edu> | 5 | ;; Author: Richard Mlynarik <mly@eddie.mit.edu> |
| 6 | ;; Created: July 1987 | 6 | ;; Created: July 1987 |
| 7 | ;; Maintainer: emacs-devel@gnu.org | ||
| 8 | ;; Keywords: lisp, tools | 7 | ;; Keywords: lisp, tools |
| 9 | ;; Package: emacs | 8 | ;; Package: emacs |
| 10 | 9 | ||
diff --git a/lisp/emacs-lisp/cl-macs.el b/lisp/emacs-lisp/cl-macs.el index c4a1dcb8baa..24e79acfa55 100644 --- a/lisp/emacs-lisp/cl-macs.el +++ b/lisp/emacs-lisp/cl-macs.el | |||
| @@ -2597,8 +2597,9 @@ rather than all at the end (i.e. like `let*' rather than like `let')." | |||
| 2597 | ;;;###autoload | 2597 | ;;;###autoload |
| 2598 | (defmacro cl-callf (func place &rest args) | 2598 | (defmacro cl-callf (func place &rest args) |
| 2599 | "Set PLACE to (FUNC PLACE ARGS...). | 2599 | "Set PLACE to (FUNC PLACE ARGS...). |
| 2600 | FUNC should be an unquoted function name. PLACE may be a symbol, | 2600 | FUNC should be an unquoted function name or a lambda expression. |
| 2601 | or any generalized variable allowed by `setf'." | 2601 | PLACE may be a symbol, or any generalized variable allowed by |
| 2602 | `setf'." | ||
| 2602 | (declare (indent 2) (debug (cl-function place &rest form))) | 2603 | (declare (indent 2) (debug (cl-function place &rest form))) |
| 2603 | (gv-letplace (getter setter) place | 2604 | (gv-letplace (getter setter) place |
| 2604 | (let* ((rargs (cons getter args))) | 2605 | (let* ((rargs (cons getter args))) |
diff --git a/lisp/emacs-lisp/debug.el b/lisp/emacs-lisp/debug.el index 8989aa07196..259f240d297 100644 --- a/lisp/emacs-lisp/debug.el +++ b/lisp/emacs-lisp/debug.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 1985-1986, 1994, 2001-2019 Free Software Foundation, | 3 | ;; Copyright (C) 1985-1986, 1994, 2001-2019 Free Software Foundation, |
| 4 | ;; Inc. | 4 | ;; Inc. |
| 5 | 5 | ||
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Keywords: lisp, tools, maint | 6 | ;; Keywords: lisp, tools, maint |
| 8 | 7 | ||
| 9 | ;; This file is part of GNU Emacs. | 8 | ;; This file is part of GNU Emacs. |
diff --git a/lisp/emacs-lisp/derived.el b/lisp/emacs-lisp/derived.el index 6db0584b987..9f7beeaef51 100644 --- a/lisp/emacs-lisp/derived.el +++ b/lisp/emacs-lisp/derived.el | |||
| @@ -5,7 +5,6 @@ | |||
| 5 | ;; Inc. | 5 | ;; Inc. |
| 6 | 6 | ||
| 7 | ;; Author: David Megginson (dmeggins@aix1.uottawa.ca) | 7 | ;; Author: David Megginson (dmeggins@aix1.uottawa.ca) |
| 8 | ;; Maintainer: emacs-devel@gnu.org | ||
| 9 | ;; Keywords: extensions | 8 | ;; Keywords: extensions |
| 10 | ;; Package: emacs | 9 | ;; Package: emacs |
| 11 | 10 | ||
diff --git a/lisp/emacs-lisp/disass.el b/lisp/emacs-lisp/disass.el index 3fc22247fa6..ed3c1fbaa94 100644 --- a/lisp/emacs-lisp/disass.el +++ b/lisp/emacs-lisp/disass.el | |||
| @@ -4,7 +4,6 @@ | |||
| 4 | 4 | ||
| 5 | ;; Author: Doug Cutting <doug@csli.stanford.edu> | 5 | ;; Author: Doug Cutting <doug@csli.stanford.edu> |
| 6 | ;; Jamie Zawinski <jwz@lucid.com> | 6 | ;; Jamie Zawinski <jwz@lucid.com> |
| 7 | ;; Maintainer: emacs-devel@gnu.org | ||
| 8 | ;; Keywords: internal | 7 | ;; Keywords: internal |
| 9 | 8 | ||
| 10 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
diff --git a/lisp/emacs-lisp/edebug.el b/lisp/emacs-lisp/edebug.el index ab5553b4e83..b8da76ccf0b 100644 --- a/lisp/emacs-lisp/edebug.el +++ b/lisp/emacs-lisp/edebug.el | |||
| @@ -4,7 +4,6 @@ | |||
| 4 | ;; Inc. | 4 | ;; Inc. |
| 5 | 5 | ||
| 6 | ;; Author: Daniel LaLiberte <liberte@holonexus.org> | 6 | ;; Author: Daniel LaLiberte <liberte@holonexus.org> |
| 7 | ;; Maintainer: emacs-devel@gnu.org | ||
| 8 | ;; Keywords: lisp, tools, maint | 7 | ;; Keywords: lisp, tools, maint |
| 9 | 8 | ||
| 10 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
diff --git a/lisp/emacs-lisp/eldoc.el b/lisp/emacs-lisp/eldoc.el index 188d99e14cb..23f303bc28a 100644 --- a/lisp/emacs-lisp/eldoc.el +++ b/lisp/emacs-lisp/eldoc.el | |||
| @@ -3,7 +3,7 @@ | |||
| 3 | ;; Copyright (C) 1996-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1996-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: Noah Friedman <friedman@splode.com> | 5 | ;; Author: Noah Friedman <friedman@splode.com> |
| 6 | ;; Maintainer: friedman@splode.com | 6 | ;; Maintainer: Noah Friedman <friedman@splode.com> |
| 7 | ;; Keywords: extensions | 7 | ;; Keywords: extensions |
| 8 | ;; Created: 1995-10-06 | 8 | ;; Created: 1995-10-06 |
| 9 | 9 | ||
diff --git a/lisp/emacs-lisp/elp.el b/lisp/emacs-lisp/elp.el index f0dcb51af89..1f8d31a3fcc 100644 --- a/lisp/emacs-lisp/elp.el +++ b/lisp/emacs-lisp/elp.el | |||
| @@ -4,7 +4,6 @@ | |||
| 4 | ;; Foundation, Inc. | 4 | ;; Foundation, Inc. |
| 5 | 5 | ||
| 6 | ;; Author: Barry A. Warsaw | 6 | ;; Author: Barry A. Warsaw |
| 7 | ;; Maintainer: emacs-devel@gnu.org | ||
| 8 | ;; Created: 26-Feb-1994 | 7 | ;; Created: 26-Feb-1994 |
| 9 | ;; Keywords: debugging lisp tools | 8 | ;; Keywords: debugging lisp tools |
| 10 | 9 | ||
diff --git a/lisp/emacs-lisp/ewoc.el b/lisp/emacs-lisp/ewoc.el index c33b46501ff..597afdd66f2 100644 --- a/lisp/emacs-lisp/ewoc.el +++ b/lisp/emacs-lisp/ewoc.el | |||
| @@ -4,7 +4,7 @@ | |||
| 4 | 4 | ||
| 5 | ;; Author: Per Cederqvist <ceder@lysator.liu.se> | 5 | ;; Author: Per Cederqvist <ceder@lysator.liu.se> |
| 6 | ;; Inge Wallin <inge@lysator.liu.se> | 6 | ;; Inge Wallin <inge@lysator.liu.se> |
| 7 | ;; Maintainer: monnier@gnu.org | 7 | ;; Maintainer: Stefan Monnier <monnier@gnu.org> |
| 8 | ;; Created: 3 Aug 1992 | 8 | ;; Created: 3 Aug 1992 |
| 9 | ;; Keywords: extensions, lisp | 9 | ;; Keywords: extensions, lisp |
| 10 | 10 | ||
diff --git a/lisp/emacs-lisp/float-sup.el b/lisp/emacs-lisp/float-sup.el index 54c8afe62b4..6ee378e8528 100644 --- a/lisp/emacs-lisp/float-sup.el +++ b/lisp/emacs-lisp/float-sup.el | |||
| @@ -2,7 +2,6 @@ | |||
| 2 | 2 | ||
| 3 | ;; Copyright (C) 1985-1987, 2001-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1985-1987, 2001-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Maintainer: emacs-devel@gnu.org | ||
| 6 | ;; Keywords: internal | 5 | ;; Keywords: internal |
| 7 | ;; Package: emacs | 6 | ;; Package: emacs |
| 8 | 7 | ||
diff --git a/lisp/emacs-lisp/helper.el b/lisp/emacs-lisp/helper.el index d1bd46fb584..4a84cfa3e2d 100644 --- a/lisp/emacs-lisp/helper.el +++ b/lisp/emacs-lisp/helper.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 1985, 2001-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1985, 2001-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: K. Shane Hartman | 5 | ;; Author: K. Shane Hartman |
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Keywords: help | 6 | ;; Keywords: help |
| 8 | ;; Package: emacs | 7 | ;; Package: emacs |
| 9 | 8 | ||
diff --git a/lisp/emacs-lisp/lisp-mnt.el b/lisp/emacs-lisp/lisp-mnt.el index 91c76158a31..81adbd5d4f1 100644 --- a/lisp/emacs-lisp/lisp-mnt.el +++ b/lisp/emacs-lisp/lisp-mnt.el | |||
| @@ -4,7 +4,6 @@ | |||
| 4 | ;; Inc. | 4 | ;; Inc. |
| 5 | 5 | ||
| 6 | ;; Author: Eric S. Raymond <esr@snark.thyrsus.com> | 6 | ;; Author: Eric S. Raymond <esr@snark.thyrsus.com> |
| 7 | ;; Maintainer: emacs-devel@gnu.org | ||
| 8 | ;; Created: 14 Jul 1992 | 7 | ;; Created: 14 Jul 1992 |
| 9 | ;; Keywords: docs | 8 | ;; Keywords: docs |
| 10 | ;; X-Bogus-Bureaucratic-Cruft: Gruad will get you if you don't watch out! | 9 | ;; X-Bogus-Bureaucratic-Cruft: Gruad will get you if you don't watch out! |
diff --git a/lisp/emacs-lisp/lisp-mode.el b/lisp/emacs-lisp/lisp-mode.el index fa6dc98d04c..021708c588a 100644 --- a/lisp/emacs-lisp/lisp-mode.el +++ b/lisp/emacs-lisp/lisp-mode.el | |||
| @@ -2,7 +2,6 @@ | |||
| 2 | 2 | ||
| 3 | ;; Copyright (C) 1985-1986, 1999-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1985-1986, 1999-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Maintainer: emacs-devel@gnu.org | ||
| 6 | ;; Keywords: lisp, languages | 5 | ;; Keywords: lisp, languages |
| 7 | ;; Package: emacs | 6 | ;; Package: emacs |
| 8 | 7 | ||
diff --git a/lisp/emacs-lisp/lisp.el b/lisp/emacs-lisp/lisp.el index 38df920f17a..f653f6c1099 100644 --- a/lisp/emacs-lisp/lisp.el +++ b/lisp/emacs-lisp/lisp.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 1985-1986, 1994, 2000-2019 Free Software Foundation, | 3 | ;; Copyright (C) 1985-1986, 1994, 2000-2019 Free Software Foundation, |
| 4 | ;; Inc. | 4 | ;; Inc. |
| 5 | 5 | ||
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Keywords: lisp, languages | 6 | ;; Keywords: lisp, languages |
| 8 | ;; Package: emacs | 7 | ;; Package: emacs |
| 9 | 8 | ||
diff --git a/lisp/emacs-lisp/map-ynp.el b/lisp/emacs-lisp/map-ynp.el index a688330b74a..e8337a99c80 100644 --- a/lisp/emacs-lisp/map-ynp.el +++ b/lisp/emacs-lisp/map-ynp.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 1991-1995, 2000-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1991-1995, 2000-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: Roland McGrath <roland@gnu.org> | 5 | ;; Author: Roland McGrath <roland@gnu.org> |
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Keywords: lisp, extensions | 6 | ;; Keywords: lisp, extensions |
| 8 | ;; Package: emacs | 7 | ;; Package: emacs |
| 9 | 8 | ||
diff --git a/lisp/emacs-lisp/map.el b/lisp/emacs-lisp/map.el index 54e802edf4f..774df3f84e7 100644 --- a/lisp/emacs-lisp/map.el +++ b/lisp/emacs-lisp/map.el | |||
| @@ -8,8 +8,6 @@ | |||
| 8 | ;; Package-Requires: ((emacs "25")) | 8 | ;; Package-Requires: ((emacs "25")) |
| 9 | ;; Package: map | 9 | ;; Package: map |
| 10 | 10 | ||
| 11 | ;; Maintainer: emacs-devel@gnu.org | ||
| 12 | |||
| 13 | ;; This file is part of GNU Emacs. | 11 | ;; This file is part of GNU Emacs. |
| 14 | 12 | ||
| 15 | ;; GNU Emacs is free software: you can redistribute it and/or modify | 13 | ;; GNU Emacs is free software: you can redistribute it and/or modify |
diff --git a/lisp/emacs-lisp/regexp-opt.el b/lisp/emacs-lisp/regexp-opt.el index 00f72e284ad..2753bbd5482 100644 --- a/lisp/emacs-lisp/regexp-opt.el +++ b/lisp/emacs-lisp/regexp-opt.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 1994-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1994-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: Simon Marshall <simon@gnu.org> | 5 | ;; Author: Simon Marshall <simon@gnu.org> |
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Keywords: strings, regexps, extensions | 6 | ;; Keywords: strings, regexps, extensions |
| 8 | 7 | ||
| 9 | ;; This file is part of GNU Emacs. | 8 | ;; This file is part of GNU Emacs. |
diff --git a/lisp/emacs-lisp/ring.el b/lisp/emacs-lisp/ring.el index c7d0268a77f..91c043fb3fb 100644 --- a/lisp/emacs-lisp/ring.el +++ b/lisp/emacs-lisp/ring.el | |||
| @@ -2,7 +2,6 @@ | |||
| 2 | 2 | ||
| 3 | ;; Copyright (C) 1992, 2001-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1992, 2001-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Maintainer: emacs-devel@gnu.org | ||
| 6 | ;; Keywords: extensions | 5 | ;; Keywords: extensions |
| 7 | 6 | ||
| 8 | ;; This file is part of GNU Emacs. | 7 | ;; This file is part of GNU Emacs. |
diff --git a/lisp/emacs-lisp/rmc.el b/lisp/emacs-lisp/rmc.el index 6d1adae9749..4c90f47c914 100644 --- a/lisp/emacs-lisp/rmc.el +++ b/lisp/emacs-lisp/rmc.el | |||
| @@ -2,8 +2,6 @@ | |||
| 2 | 2 | ||
| 3 | ;; Copyright (C) 2016-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 2016-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Maintainer: emacs-devel@gnu.org | ||
| 6 | |||
| 7 | ;; This file is part of GNU Emacs. | 5 | ;; This file is part of GNU Emacs. |
| 8 | 6 | ||
| 9 | ;; GNU Emacs is free software: you can redistribute it and/or modify | 7 | ;; GNU Emacs is free software: you can redistribute it and/or modify |
diff --git a/lisp/emacs-lisp/rx.el b/lisp/emacs-lisp/rx.el index fdd24317c6a..ed32490ceee 100644 --- a/lisp/emacs-lisp/rx.el +++ b/lisp/emacs-lisp/rx.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 2001-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 2001-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: Gerd Moellmann <gerd@gnu.org> | 5 | ;; Author: Gerd Moellmann <gerd@gnu.org> |
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Keywords: strings, regexps, extensions | 6 | ;; Keywords: strings, regexps, extensions |
| 8 | 7 | ||
| 9 | ;; This file is part of GNU Emacs. | 8 | ;; This file is part of GNU Emacs. |
| @@ -107,15 +106,16 @@ | |||
| 107 | ;;; Code: | 106 | ;;; Code: |
| 108 | 107 | ||
| 109 | (require 'cl-lib) | 108 | (require 'cl-lib) |
| 109 | (require 'cl-extra) | ||
| 110 | 110 | ||
| 111 | ;; FIXME: support macros. | 111 | ;; FIXME: support macros. |
| 112 | 112 | ||
| 113 | (defvar rx-constituents ;Not `const' because some modes extend it. | 113 | (defvar rx-constituents ;Not `const' because some modes extend it. |
| 114 | '((and . (rx-and 1 nil)) | 114 | '((and . (rx-and 0 nil)) |
| 115 | (seq . and) ; SRE | 115 | (seq . and) ; SRE |
| 116 | (: . and) ; SRE | 116 | (: . and) ; SRE |
| 117 | (sequence . and) ; sregex | 117 | (sequence . and) ; sregex |
| 118 | (or . (rx-or 1 nil)) | 118 | (or . (rx-or 0 nil)) |
| 119 | (| . or) ; SRE | 119 | (| . or) ; SRE |
| 120 | (not-newline . ".") | 120 | (not-newline . ".") |
| 121 | (nonl . not-newline) ; SRE | 121 | (nonl . not-newline) ; SRE |
| @@ -391,9 +391,11 @@ FORM is of the form `(and FORM1 ...)'." | |||
| 391 | "Parse and produce code from FORM, which is `(or FORM1 ...)'." | 391 | "Parse and produce code from FORM, which is `(or FORM1 ...)'." |
| 392 | (rx-check form) | 392 | (rx-check form) |
| 393 | (rx-group-if | 393 | (rx-group-if |
| 394 | (if (memq nil (mapcar 'stringp (cdr form))) | 394 | (cond |
| 395 | (mapconcat (lambda (x) (rx-form x '|)) (cdr form) "\\|") | 395 | ((null (cdr form)) regexp-unmatchable) |
| 396 | ((cl-every #'stringp (cdr form)) | ||
| 396 | (regexp-opt (cdr form) nil t)) | 397 | (regexp-opt (cdr form) nil t)) |
| 398 | (t (mapconcat (lambda (x) (rx-form x '|)) (cdr form) "\\|"))) | ||
| 397 | (and (memq rx-parent '(: * t)) rx-parent))) | 399 | (and (memq rx-parent '(: * t)) rx-parent))) |
| 398 | 400 | ||
| 399 | 401 | ||
| @@ -1122,6 +1124,7 @@ CHAR | |||
| 1122 | `(seq SEXP1 SEXP2 ...)' | 1124 | `(seq SEXP1 SEXP2 ...)' |
| 1123 | `(sequence SEXP1 SEXP2 ...)' | 1125 | `(sequence SEXP1 SEXP2 ...)' |
| 1124 | matches what SEXP1 matches, followed by what SEXP2 matches, etc. | 1126 | matches what SEXP1 matches, followed by what SEXP2 matches, etc. |
| 1127 | Without arguments, matches the empty string. | ||
| 1125 | 1128 | ||
| 1126 | `(submatch SEXP1 SEXP2 ...)' | 1129 | `(submatch SEXP1 SEXP2 ...)' |
| 1127 | `(group SEXP1 SEXP2 ...)' | 1130 | `(group SEXP1 SEXP2 ...)' |
| @@ -1137,7 +1140,7 @@ CHAR | |||
| 1137 | `(| SEXP1 SEXP2 ...)' | 1140 | `(| SEXP1 SEXP2 ...)' |
| 1138 | matches anything that matches SEXP1 or SEXP2, etc. If all | 1141 | matches anything that matches SEXP1 or SEXP2, etc. If all |
| 1139 | args are strings, use `regexp-opt' to optimize the resulting | 1142 | args are strings, use `regexp-opt' to optimize the resulting |
| 1140 | regular expression. | 1143 | regular expression. Without arguments, never matches anything. |
| 1141 | 1144 | ||
| 1142 | `(minimal-match SEXP)' | 1145 | `(minimal-match SEXP)' |
| 1143 | produce a non-greedy regexp for SEXP. Normally, regexps matching | 1146 | produce a non-greedy regexp for SEXP. Normally, regexps matching |
diff --git a/lisp/emacs-lisp/seq.el b/lisp/emacs-lisp/seq.el index 3413cd1513c..8997b7501b2 100644 --- a/lisp/emacs-lisp/seq.el +++ b/lisp/emacs-lisp/seq.el | |||
| @@ -7,8 +7,6 @@ | |||
| 7 | ;; Version: 2.21 | 7 | ;; Version: 2.21 |
| 8 | ;; Package: seq | 8 | ;; Package: seq |
| 9 | 9 | ||
| 10 | ;; Maintainer: emacs-devel@gnu.org | ||
| 11 | |||
| 12 | ;; This file is part of GNU Emacs. | 10 | ;; This file is part of GNU Emacs. |
| 13 | 11 | ||
| 14 | ;; GNU Emacs is free software: you can redistribute it and/or modify | 12 | ;; GNU Emacs is free software: you can redistribute it and/or modify |
diff --git a/lisp/emacs-lisp/subr-x.el b/lisp/emacs-lisp/subr-x.el index b9ffe6a6fc6..33445835aed 100644 --- a/lisp/emacs-lisp/subr-x.el +++ b/lisp/emacs-lisp/subr-x.el | |||
| @@ -2,7 +2,6 @@ | |||
| 2 | 2 | ||
| 3 | ;; Copyright (C) 2013-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 2013-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Maintainer: emacs-devel@gnu.org | ||
| 6 | ;; Keywords: convenience | 5 | ;; Keywords: convenience |
| 7 | ;; Package: emacs | 6 | ;; Package: emacs |
| 8 | 7 | ||
diff --git a/lisp/emacs-lisp/syntax.el b/lisp/emacs-lisp/syntax.el index f1904e64efb..f488bed3b0e 100644 --- a/lisp/emacs-lisp/syntax.el +++ b/lisp/emacs-lisp/syntax.el | |||
| @@ -2,7 +2,6 @@ | |||
| 2 | 2 | ||
| 3 | ;; Copyright (C) 2000-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 2000-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Maintainer: emacs-devel@gnu.org | ||
| 6 | ;; Keywords: internal | 5 | ;; Keywords: internal |
| 7 | 6 | ||
| 8 | ;; This file is part of GNU Emacs. | 7 | ;; This file is part of GNU Emacs. |
diff --git a/lisp/emacs-lisp/tcover-ses.el b/lisp/emacs-lisp/tcover-ses.el index 29b481849e2..8d2f8217c61 100644 --- a/lisp/emacs-lisp/tcover-ses.el +++ b/lisp/emacs-lisp/tcover-ses.el | |||
| @@ -2,8 +2,8 @@ | |||
| 2 | 2 | ||
| 3 | ;; Copyright (C) 2002-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 2002-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: Jonathan Yavner <jyavner@engineer.com> | 5 | ;; Author: Jonathan Yavner <jyavner@member.fsf.org> |
| 6 | ;; Maintainer: Jonathan Yavner <jyavner@engineer.com> | 6 | ;; Maintainer: Jonathan Yavner <jyavner@member.fsf.org> |
| 7 | ;; Keywords: spreadsheet lisp utility | 7 | ;; Keywords: spreadsheet lisp utility |
| 8 | ;; Package: testcover | 8 | ;; Package: testcover |
| 9 | 9 | ||
diff --git a/lisp/emacs-lisp/tcover-unsafep.el b/lisp/emacs-lisp/tcover-unsafep.el index 571f53c7957..daae3ad43bc 100644 --- a/lisp/emacs-lisp/tcover-unsafep.el +++ b/lisp/emacs-lisp/tcover-unsafep.el | |||
| @@ -2,8 +2,8 @@ | |||
| 2 | 2 | ||
| 3 | ;; Copyright (C) 2002-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 2002-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: Jonathan Yavner <jyavner@engineer.com> | 5 | ;; Author: Jonathan Yavner <jyavner@member.fsf.org> |
| 6 | ;; Maintainer: Jonathan Yavner <jyavner@engineer.com> | 6 | ;; Maintainer: Jonathan Yavner <jyavner@member.fsf.org> |
| 7 | ;; Keywords: safety lisp utility | 7 | ;; Keywords: safety lisp utility |
| 8 | ;; Package: testcover | 8 | ;; Package: testcover |
| 9 | 9 | ||
diff --git a/lisp/emacs-lisp/thunk.el b/lisp/emacs-lisp/thunk.el index e1370c45911..968dc71f678 100644 --- a/lisp/emacs-lisp/thunk.el +++ b/lisp/emacs-lisp/thunk.el | |||
| @@ -7,8 +7,6 @@ | |||
| 7 | ;; Version: 1.0 | 7 | ;; Version: 1.0 |
| 8 | ;; Package: thunk | 8 | ;; Package: thunk |
| 9 | 9 | ||
| 10 | ;; Maintainer: emacs-devel@gnu.org | ||
| 11 | |||
| 12 | ;; This file is part of GNU Emacs. | 10 | ;; This file is part of GNU Emacs. |
| 13 | 11 | ||
| 14 | ;; GNU Emacs is free software: you can redistribute it and/or modify | 12 | ;; GNU Emacs is free software: you can redistribute it and/or modify |
diff --git a/lisp/emacs-lisp/timer-list.el b/lisp/emacs-lisp/timer-list.el index 55aa56b72e0..3a791c2af44 100644 --- a/lisp/emacs-lisp/timer-list.el +++ b/lisp/emacs-lisp/timer-list.el | |||
| @@ -2,7 +2,6 @@ | |||
| 2 | 2 | ||
| 3 | ;; Copyright (C) 2016-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 2016-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Maintainer: emacs-devel@gnu.org | ||
| 6 | ;; Package: emacs | 5 | ;; Package: emacs |
| 7 | 6 | ||
| 8 | ;; This file is part of GNU Emacs. | 7 | ;; This file is part of GNU Emacs. |
diff --git a/lisp/emacs-lisp/timer.el b/lisp/emacs-lisp/timer.el index 22ccc35103a..668da42a6ef 100644 --- a/lisp/emacs-lisp/timer.el +++ b/lisp/emacs-lisp/timer.el | |||
| @@ -2,7 +2,6 @@ | |||
| 2 | 2 | ||
| 3 | ;; Copyright (C) 1996, 2001-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1996, 2001-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Maintainer: emacs-devel@gnu.org | ||
| 6 | ;; Package: emacs | 5 | ;; Package: emacs |
| 7 | 6 | ||
| 8 | ;; This file is part of GNU Emacs. | 7 | ;; This file is part of GNU Emacs. |
diff --git a/lisp/emacs-lisp/tq.el b/lisp/emacs-lisp/tq.el index 4249305feee..ca2d2a23c75 100644 --- a/lisp/emacs-lisp/tq.el +++ b/lisp/emacs-lisp/tq.el | |||
| @@ -4,7 +4,6 @@ | |||
| 4 | ;; Inc. | 4 | ;; Inc. |
| 5 | 5 | ||
| 6 | ;; Author: Scott Draves <spot@cs.cmu.edu> | 6 | ;; Author: Scott Draves <spot@cs.cmu.edu> |
| 7 | ;; Maintainer: emacs-devel@gnu.org | ||
| 8 | ;; Adapted-By: ESR | 7 | ;; Adapted-By: ESR |
| 9 | ;; Keywords: extensions | 8 | ;; Keywords: extensions |
| 10 | 9 | ||
diff --git a/lisp/emacs-lisp/trace.el b/lisp/emacs-lisp/trace.el index 2f271c1f708..0a8351195f1 100644 --- a/lisp/emacs-lisp/trace.el +++ b/lisp/emacs-lisp/trace.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 1993, 1998, 2000-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1993, 1998, 2000-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: Hans Chalupsky <hans@cs.buffalo.edu> | 5 | ;; Author: Hans Chalupsky <hans@cs.buffalo.edu> |
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Created: 15 Dec 1992 | 6 | ;; Created: 15 Dec 1992 |
| 8 | ;; Keywords: tools, lisp | 7 | ;; Keywords: tools, lisp |
| 9 | 8 | ||
diff --git a/lisp/emacs-lisp/warnings.el b/lisp/emacs-lisp/warnings.el index 13ca605dd00..70d6b077ebc 100644 --- a/lisp/emacs-lisp/warnings.el +++ b/lisp/emacs-lisp/warnings.el | |||
| @@ -2,7 +2,6 @@ | |||
| 2 | 2 | ||
| 3 | ;; Copyright (C) 2002-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 2002-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Maintainer: emacs-devel@gnu.org | ||
| 6 | ;; Keywords: internal | 5 | ;; Keywords: internal |
| 7 | 6 | ||
| 8 | ;; This file is part of GNU Emacs. | 7 | ;; This file is part of GNU Emacs. |
diff --git a/lisp/emacs-lock.el b/lisp/emacs-lock.el index 0cded29193a..05b4c010f68 100644 --- a/lisp/emacs-lock.el +++ b/lisp/emacs-lock.el | |||
| @@ -4,7 +4,6 @@ | |||
| 4 | 4 | ||
| 5 | ;; Author: Juanma Barranquero <lekktu@gmail.com> | 5 | ;; Author: Juanma Barranquero <lekktu@gmail.com> |
| 6 | ;; Inspired by emacs-lock.el by Tom Wurgler <twurgler@goodyear.com> | 6 | ;; Inspired by emacs-lock.el by Tom Wurgler <twurgler@goodyear.com> |
| 7 | ;; Maintainer: emacs-devel@gnu.org | ||
| 8 | ;; Keywords: extensions, processes | 7 | ;; Keywords: extensions, processes |
| 9 | 8 | ||
| 10 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
diff --git a/lisp/env.el b/lisp/env.el index 5a4130eb3be..30b63a8e552 100644 --- a/lisp/env.el +++ b/lisp/env.el | |||
| @@ -2,7 +2,6 @@ | |||
| 2 | 2 | ||
| 3 | ;; Copyright (C) 1991, 1994, 2000-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1991, 1994, 2000-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Maintainer: emacs-devel@gnu.org | ||
| 6 | ;; Keywords: processes, unix | 5 | ;; Keywords: processes, unix |
| 7 | ;; Package: emacs | 6 | ;; Package: emacs |
| 8 | 7 | ||
diff --git a/lisp/erc/erc-autoaway.el b/lisp/erc/erc-autoaway.el index 9e224e0b828..298cffb49ae 100644 --- a/lisp/erc/erc-autoaway.el +++ b/lisp/erc/erc-autoaway.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 2002-2004, 2006-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 2002-2004, 2006-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: Jorgen Schaefer <forcer@forcix.cx> | 5 | ;; Author: Jorgen Schaefer <forcer@forcix.cx> |
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; URL: http://www.emacswiki.org/cgi-bin/wiki.pl?ErcAutoAway | 6 | ;; URL: http://www.emacswiki.org/cgi-bin/wiki.pl?ErcAutoAway |
| 8 | 7 | ||
| 9 | ;; This file is part of GNU Emacs. | 8 | ;; This file is part of GNU Emacs. |
diff --git a/lisp/erc/erc-backend.el b/lisp/erc/erc-backend.el index 210830a2b49..eb441c29b41 100644 --- a/lisp/erc/erc-backend.el +++ b/lisp/erc/erc-backend.el | |||
| @@ -4,7 +4,6 @@ | |||
| 4 | 4 | ||
| 5 | ;; Filename: erc-backend.el | 5 | ;; Filename: erc-backend.el |
| 6 | ;; Author: Lawrence Mitchell <wence@gmx.li> | 6 | ;; Author: Lawrence Mitchell <wence@gmx.li> |
| 7 | ;; Maintainer: emacs-devel@gnu.org | ||
| 8 | ;; Created: 2004-05-7 | 7 | ;; Created: 2004-05-7 |
| 9 | ;; Keywords: IRC chat client internet | 8 | ;; Keywords: IRC chat client internet |
| 10 | 9 | ||
diff --git a/lisp/erc/erc-button.el b/lisp/erc/erc-button.el index c8aa887a652..8e2a6b980d0 100644 --- a/lisp/erc/erc-button.el +++ b/lisp/erc/erc-button.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 1996-2004, 2006-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1996-2004, 2006-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: Mario Lang <mlang@delysid.org> | 5 | ;; Author: Mario Lang <mlang@delysid.org> |
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Keywords: irc, button, url, regexp | 6 | ;; Keywords: irc, button, url, regexp |
| 8 | ;; URL: http://www.emacswiki.org/cgi-bin/wiki.pl?ErcButton | 7 | ;; URL: http://www.emacswiki.org/cgi-bin/wiki.pl?ErcButton |
| 9 | 8 | ||
diff --git a/lisp/erc/erc-capab.el b/lisp/erc/erc-capab.el index 210a7736cc0..3d99c259aad 100644 --- a/lisp/erc/erc-capab.el +++ b/lisp/erc/erc-capab.el | |||
| @@ -2,8 +2,6 @@ | |||
| 2 | 2 | ||
| 3 | ;; Copyright (C) 2006-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 2006-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Maintainer: emacs-devel@gnu.org | ||
| 6 | |||
| 7 | ; This file is part of GNU Emacs. | 5 | ; This file is part of GNU Emacs. |
| 8 | 6 | ||
| 9 | ;; GNU Emacs is free software: you can redistribute it and/or modify | 7 | ;; GNU Emacs is free software: you can redistribute it and/or modify |
diff --git a/lisp/erc/erc-compat.el b/lisp/erc/erc-compat.el index e724e367ab1..3b362774b6b 100644 --- a/lisp/erc/erc-compat.el +++ b/lisp/erc/erc-compat.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 2002-2003, 2005-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 2002-2003, 2005-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: Alex Schroeder <alex@gnu.org> | 5 | ;; Author: Alex Schroeder <alex@gnu.org> |
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; URL: http://www.emacswiki.org/cgi-bin/wiki/ERC | 6 | ;; URL: http://www.emacswiki.org/cgi-bin/wiki/ERC |
| 8 | 7 | ||
| 9 | ;; This file is part of GNU Emacs. | 8 | ;; This file is part of GNU Emacs. |
diff --git a/lisp/erc/erc-dcc.el b/lisp/erc/erc-dcc.el index a6b7532e1f3..b835191960e 100644 --- a/lisp/erc/erc-dcc.el +++ b/lisp/erc/erc-dcc.el | |||
| @@ -6,7 +6,6 @@ | |||
| 6 | ;; Author: Ben A. Mesander <ben@gnu.ai.mit.edu> | 6 | ;; Author: Ben A. Mesander <ben@gnu.ai.mit.edu> |
| 7 | ;; Noah Friedman <friedman@prep.ai.mit.edu> | 7 | ;; Noah Friedman <friedman@prep.ai.mit.edu> |
| 8 | ;; Per Persson <pp@sno.pp.se> | 8 | ;; Per Persson <pp@sno.pp.se> |
| 9 | ;; Maintainer: emacs-devel@gnu.org | ||
| 10 | ;; Keywords: comm, processes | 9 | ;; Keywords: comm, processes |
| 11 | ;; Created: 1994-01-23 | 10 | ;; Created: 1994-01-23 |
| 12 | 11 | ||
diff --git a/lisp/erc/erc-ezbounce.el b/lisp/erc/erc-ezbounce.el index a2c9336826a..5784e63d7f8 100644 --- a/lisp/erc/erc-ezbounce.el +++ b/lisp/erc/erc-ezbounce.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 2002, 2004, 2006-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 2002, 2004, 2006-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: Andreas Fuchs <asf@void.at> | 5 | ;; Author: Andreas Fuchs <asf@void.at> |
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Keywords: comm | 6 | ;; Keywords: comm |
| 8 | 7 | ||
| 9 | ;; This file is part of GNU Emacs. | 8 | ;; This file is part of GNU Emacs. |
diff --git a/lisp/erc/erc-fill.el b/lisp/erc/erc-fill.el index 934b52a938c..ef876f464e3 100644 --- a/lisp/erc/erc-fill.el +++ b/lisp/erc/erc-fill.el | |||
| @@ -4,7 +4,6 @@ | |||
| 4 | 4 | ||
| 5 | ;; Author: Andreas Fuchs <asf@void.at> | 5 | ;; Author: Andreas Fuchs <asf@void.at> |
| 6 | ;; Mario Lang <mlang@delysid.org> | 6 | ;; Mario Lang <mlang@delysid.org> |
| 7 | ;; Maintainer: emacs-devel@gnu.org | ||
| 8 | ;; URL: http://www.emacswiki.org/cgi-bin/wiki.pl?ErcFilling | 7 | ;; URL: http://www.emacswiki.org/cgi-bin/wiki.pl?ErcFilling |
| 9 | 8 | ||
| 10 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
diff --git a/lisp/erc/erc-goodies.el b/lisp/erc/erc-goodies.el index 884c594b9ed..0d16aaf5412 100644 --- a/lisp/erc/erc-goodies.el +++ b/lisp/erc/erc-goodies.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 2001-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 2001-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: Jorgen Schaefer <forcer@forcix.cx> | 5 | ;; Author: Jorgen Schaefer <forcer@forcix.cx> |
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | 6 | ||
| 8 | ;; Most code is taken verbatim from erc.el, see there for the original | 7 | ;; Most code is taken verbatim from erc.el, see there for the original |
| 9 | ;; authors. | 8 | ;; authors. |
diff --git a/lisp/erc/erc-ibuffer.el b/lisp/erc/erc-ibuffer.el index 149c858d2e8..ce0104b3054 100644 --- a/lisp/erc/erc-ibuffer.el +++ b/lisp/erc/erc-ibuffer.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 2002, 2004, 2006-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 2002, 2004, 2006-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: Mario Lang <mlang@delysid.org> | 5 | ;; Author: Mario Lang <mlang@delysid.org> |
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Keywords: comm | 6 | ;; Keywords: comm |
| 8 | ;; URL: http://www.emacswiki.org/cgi-bin/wiki.pl?ErcIbuffer | 7 | ;; URL: http://www.emacswiki.org/cgi-bin/wiki.pl?ErcIbuffer |
| 9 | 8 | ||
diff --git a/lisp/erc/erc-identd.el b/lisp/erc/erc-identd.el index d95e0eac0c7..96b45899b49 100644 --- a/lisp/erc/erc-identd.el +++ b/lisp/erc/erc-identd.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 2003, 2006-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 2003, 2006-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: John Wiegley <johnw@gnu.org> | 5 | ;; Author: John Wiegley <johnw@gnu.org> |
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Keywords: comm, processes | 6 | ;; Keywords: comm, processes |
| 8 | 7 | ||
| 9 | ;; This file is part of GNU Emacs. | 8 | ;; This file is part of GNU Emacs. |
diff --git a/lisp/erc/erc-imenu.el b/lisp/erc/erc-imenu.el index 08f52f13647..e40dc1fc250 100644 --- a/lisp/erc/erc-imenu.el +++ b/lisp/erc/erc-imenu.el | |||
| @@ -4,7 +4,6 @@ | |||
| 4 | ;; Inc. | 4 | ;; Inc. |
| 5 | 5 | ||
| 6 | ;; Author: Mario Lang <mlang@delysid.org> | 6 | ;; Author: Mario Lang <mlang@delysid.org> |
| 7 | ;; Maintainer: emacs-devel@gnu.org | ||
| 8 | ;; Keywords: comm | 7 | ;; Keywords: comm |
| 9 | ;; URL: http://www.emacswiki.org/cgi-bin/wiki.pl?ErcImenu | 8 | ;; URL: http://www.emacswiki.org/cgi-bin/wiki.pl?ErcImenu |
| 10 | 9 | ||
diff --git a/lisp/erc/erc-join.el b/lisp/erc/erc-join.el index 896521eaf0a..18cc8b54252 100644 --- a/lisp/erc/erc-join.el +++ b/lisp/erc/erc-join.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 2002-2004, 2006-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 2002-2004, 2006-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: Alex Schroeder <alex@gnu.org> | 5 | ;; Author: Alex Schroeder <alex@gnu.org> |
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Keywords: irc | 6 | ;; Keywords: irc |
| 8 | ;; URL: http://www.emacswiki.org/cgi-bin/wiki.pl?ErcAutoJoin | 7 | ;; URL: http://www.emacswiki.org/cgi-bin/wiki.pl?ErcAutoJoin |
| 9 | 8 | ||
diff --git a/lisp/erc/erc-lang.el b/lisp/erc/erc-lang.el index f0dbe69f791..765898da7b9 100644 --- a/lisp/erc/erc-lang.el +++ b/lisp/erc/erc-lang.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 2002, 2004, 2006-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 2002, 2004, 2006-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: Alex Schroeder <alex@gnu.org> | 5 | ;; Author: Alex Schroeder <alex@gnu.org> |
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Old-Version: 1.0.0 | 6 | ;; Old-Version: 1.0.0 |
| 8 | ;; URL: http://www.emacswiki.org/cgi-bin/wiki.pl?ErcLang | 7 | ;; URL: http://www.emacswiki.org/cgi-bin/wiki.pl?ErcLang |
| 9 | ;; Keywords: comm languages processes | 8 | ;; Keywords: comm languages processes |
diff --git a/lisp/erc/erc-list.el b/lisp/erc/erc-list.el index d8d9e17c95a..6a2ba785ba4 100644 --- a/lisp/erc/erc-list.el +++ b/lisp/erc/erc-list.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 2008-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 2008-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: Tom Tromey <tromey@redhat.com> | 5 | ;; Author: Tom Tromey <tromey@redhat.com> |
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Old-Version: 0.1 | 6 | ;; Old-Version: 0.1 |
| 8 | ;; Keywords: comm | 7 | ;; Keywords: comm |
| 9 | 8 | ||
diff --git a/lisp/erc/erc-log.el b/lisp/erc/erc-log.el index 4153f5c57bd..fc12dc73ef5 100644 --- a/lisp/erc/erc-log.el +++ b/lisp/erc/erc-log.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 2003-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 2003-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: Lawrence Mitchell <wence@gmx.li> | 5 | ;; Author: Lawrence Mitchell <wence@gmx.li> |
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Keywords: IRC, chat, client, Internet, logging | 6 | ;; Keywords: IRC, chat, client, Internet, logging |
| 8 | 7 | ||
| 9 | ;; Created 2003-04-26 | 8 | ;; Created 2003-04-26 |
diff --git a/lisp/erc/erc-match.el b/lisp/erc/erc-match.el index cc4b4a88f11..98ddebd0cfc 100644 --- a/lisp/erc/erc-match.el +++ b/lisp/erc/erc-match.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 2002-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 2002-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: Andreas Fuchs <asf@void.at> | 5 | ;; Author: Andreas Fuchs <asf@void.at> |
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Keywords: comm, faces | 6 | ;; Keywords: comm, faces |
| 8 | ;; URL: http://www.emacswiki.org/cgi-bin/wiki.pl?ErcMatch | 7 | ;; URL: http://www.emacswiki.org/cgi-bin/wiki.pl?ErcMatch |
| 9 | 8 | ||
diff --git a/lisp/erc/erc-menu.el b/lisp/erc/erc-menu.el index 8173829797b..e13404ca133 100644 --- a/lisp/erc/erc-menu.el +++ b/lisp/erc/erc-menu.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 2001-2002, 2004-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 2001-2002, 2004-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: Mario Lang <mlang@delysid.org> | 5 | ;; Author: Mario Lang <mlang@delysid.org> |
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Keywords: comm, processes, menu | 6 | ;; Keywords: comm, processes, menu |
| 8 | 7 | ||
| 9 | ;; This file is part of GNU Emacs. | 8 | ;; This file is part of GNU Emacs. |
diff --git a/lisp/erc/erc-netsplit.el b/lisp/erc/erc-netsplit.el index 87c3a61b663..252af715d72 100644 --- a/lisp/erc/erc-netsplit.el +++ b/lisp/erc/erc-netsplit.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 2002-2004, 2006-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 2002-2004, 2006-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: Mario Lang <mlang@delysid.org> | 5 | ;; Author: Mario Lang <mlang@delysid.org> |
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Keywords: comm | 6 | ;; Keywords: comm |
| 8 | 7 | ||
| 9 | ;; This file is part of GNU Emacs. | 8 | ;; This file is part of GNU Emacs. |
diff --git a/lisp/erc/erc-networks.el b/lisp/erc/erc-networks.el index eca8ad6a899..e92da7b7253 100644 --- a/lisp/erc/erc-networks.el +++ b/lisp/erc/erc-networks.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 2002, 2004-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 2002, 2004-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: Mario Lang <mlang@lexx.delysid.org> | 5 | ;; Author: Mario Lang <mlang@lexx.delysid.org> |
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Keywords: comm | 6 | ;; Keywords: comm |
| 8 | 7 | ||
| 9 | ;; This file is part of GNU Emacs. | 8 | ;; This file is part of GNU Emacs. |
diff --git a/lisp/erc/erc-notify.el b/lisp/erc/erc-notify.el index 45dae899900..9bd062a98d6 100644 --- a/lisp/erc/erc-notify.el +++ b/lisp/erc/erc-notify.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 2002-2004, 2006-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 2002-2004, 2006-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: Mario Lang <mlang@lexx.delysid.org> | 5 | ;; Author: Mario Lang <mlang@lexx.delysid.org> |
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Keywords: comm | 6 | ;; Keywords: comm |
| 8 | 7 | ||
| 9 | ;; This file is part of GNU Emacs. | 8 | ;; This file is part of GNU Emacs. |
diff --git a/lisp/erc/erc-page.el b/lisp/erc/erc-page.el index cb57883ae6f..4e7fed7b403 100644 --- a/lisp/erc/erc-page.el +++ b/lisp/erc/erc-page.el | |||
| @@ -2,8 +2,6 @@ | |||
| 2 | 2 | ||
| 3 | ;; Copyright (C) 2002, 2004, 2006-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 2002, 2004, 2006-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Maintainer: emacs-devel@gnu.org | ||
| 6 | |||
| 7 | ;; This file is part of GNU Emacs. | 5 | ;; This file is part of GNU Emacs. |
| 8 | 6 | ||
| 9 | ;; GNU Emacs is free software: you can redistribute it and/or modify | 7 | ;; GNU Emacs is free software: you can redistribute it and/or modify |
diff --git a/lisp/erc/erc-pcomplete.el b/lisp/erc/erc-pcomplete.el index dd2da85d0e8..e2489a8d0ee 100644 --- a/lisp/erc/erc-pcomplete.el +++ b/lisp/erc/erc-pcomplete.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 2002-2004, 2006-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 2002-2004, 2006-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: Sacha Chua <sacha@free.net.ph> | 5 | ;; Author: Sacha Chua <sacha@free.net.ph> |
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Keywords: comm, convenience | 6 | ;; Keywords: comm, convenience |
| 8 | ;; URL: http://www.emacswiki.org/cgi-bin/wiki.pl?ErcCompletion | 7 | ;; URL: http://www.emacswiki.org/cgi-bin/wiki.pl?ErcCompletion |
| 9 | 8 | ||
diff --git a/lisp/erc/erc-replace.el b/lisp/erc/erc-replace.el index 2e0e54a030f..e1c495c9036 100644 --- a/lisp/erc/erc-replace.el +++ b/lisp/erc/erc-replace.el | |||
| @@ -4,7 +4,6 @@ | |||
| 4 | ;; Inc. | 4 | ;; Inc. |
| 5 | 5 | ||
| 6 | ;; Author: Andreas Fuchs <asf@void.at> | 6 | ;; Author: Andreas Fuchs <asf@void.at> |
| 7 | ;; Maintainer: emacs-devel@gnu.org | ||
| 8 | ;; Keywords: IRC, client, Internet | 7 | ;; Keywords: IRC, client, Internet |
| 9 | 8 | ||
| 10 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
diff --git a/lisp/erc/erc-ring.el b/lisp/erc/erc-ring.el index 5459d8b01e5..54f91d134cb 100644 --- a/lisp/erc/erc-ring.el +++ b/lisp/erc/erc-ring.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 2001-2004, 2006-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 2001-2004, 2006-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: Alex Schroeder <alex@gnu.org> | 5 | ;; Author: Alex Schroeder <alex@gnu.org> |
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Keywords: comm | 6 | ;; Keywords: comm |
| 8 | ;; URL: http://www.emacswiki.org/cgi-bin/wiki.pl?ErcHistory | 7 | ;; URL: http://www.emacswiki.org/cgi-bin/wiki.pl?ErcHistory |
| 9 | 8 | ||
diff --git a/lisp/erc/erc-services.el b/lisp/erc/erc-services.el index 886ba60eb47..f500f4c1278 100644 --- a/lisp/erc/erc-services.el +++ b/lisp/erc/erc-services.el | |||
| @@ -2,8 +2,6 @@ | |||
| 2 | 2 | ||
| 3 | ;; Copyright (C) 2002-2004, 2006-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 2002-2004, 2006-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Maintainer: emacs-devel@gnu.org | ||
| 6 | |||
| 7 | ;; This file is part of GNU Emacs. | 5 | ;; This file is part of GNU Emacs. |
| 8 | 6 | ||
| 9 | ;; GNU Emacs is free software: you can redistribute it and/or modify | 7 | ;; GNU Emacs is free software: you can redistribute it and/or modify |
diff --git a/lisp/erc/erc-sound.el b/lisp/erc/erc-sound.el index 34f7ce62c74..38e0b2885bb 100644 --- a/lisp/erc/erc-sound.el +++ b/lisp/erc/erc-sound.el | |||
| @@ -2,8 +2,6 @@ | |||
| 2 | 2 | ||
| 3 | ;; Copyright (C) 2002-2003, 2006-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 2002-2003, 2006-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Maintainer: emacs-devel@gnu.org | ||
| 6 | |||
| 7 | ;; This file is part of GNU Emacs. | 5 | ;; This file is part of GNU Emacs. |
| 8 | 6 | ||
| 9 | ;; GNU Emacs is free software: you can redistribute it and/or modify | 7 | ;; GNU Emacs is free software: you can redistribute it and/or modify |
diff --git a/lisp/erc/erc-speedbar.el b/lisp/erc/erc-speedbar.el index 0a1e38fe248..833ad2f1e78 100644 --- a/lisp/erc/erc-speedbar.el +++ b/lisp/erc/erc-speedbar.el | |||
| @@ -4,7 +4,6 @@ | |||
| 4 | 4 | ||
| 5 | ;; Author: Mario Lang <mlang@delysid.org> | 5 | ;; Author: Mario Lang <mlang@delysid.org> |
| 6 | ;; Contributor: Eric M. Ludlam <eric@siege-engine.com> | 6 | ;; Contributor: Eric M. Ludlam <eric@siege-engine.com> |
| 7 | ;; Maintainer: emacs-devel@gnu.org | ||
| 8 | 7 | ||
| 9 | ;; This file is part of GNU Emacs. | 8 | ;; This file is part of GNU Emacs. |
| 10 | 9 | ||
diff --git a/lisp/erc/erc-spelling.el b/lisp/erc/erc-spelling.el index 69a83fa032b..8df7ea9e4c1 100644 --- a/lisp/erc/erc-spelling.el +++ b/lisp/erc/erc-spelling.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 2005-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 2005-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: Jorgen Schaefer <forcer@forcix.cx> | 5 | ;; Author: Jorgen Schaefer <forcer@forcix.cx> |
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Keywords: irc | 6 | ;; Keywords: irc |
| 8 | ;; URL: http://www.emacswiki.org/cgi-bin/wiki.pl?ErcSpelling | 7 | ;; URL: http://www.emacswiki.org/cgi-bin/wiki.pl?ErcSpelling |
| 9 | 8 | ||
diff --git a/lisp/erc/erc-stamp.el b/lisp/erc/erc-stamp.el index 860fdbb77ce..541c67a74fb 100644 --- a/lisp/erc/erc-stamp.el +++ b/lisp/erc/erc-stamp.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 2002-2004, 2006-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 2002-2004, 2006-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: Mario Lang <mlang@delysid.org> | 5 | ;; Author: Mario Lang <mlang@delysid.org> |
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Keywords: comm, processes, timestamp | 6 | ;; Keywords: comm, processes, timestamp |
| 8 | ;; URL: http://www.emacswiki.org/cgi-bin/wiki.pl?ErcStamp | 7 | ;; URL: http://www.emacswiki.org/cgi-bin/wiki.pl?ErcStamp |
| 9 | 8 | ||
diff --git a/lisp/erc/erc-track.el b/lisp/erc/erc-track.el index e51e6056fb9..14e86c199a2 100644 --- a/lisp/erc/erc-track.el +++ b/lisp/erc/erc-track.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 2002-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 2002-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: Mario Lang <mlang@delysid.org> | 5 | ;; Author: Mario Lang <mlang@delysid.org> |
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Keywords: comm, faces | 6 | ;; Keywords: comm, faces |
| 8 | ;; URL: http://www.emacswiki.org/cgi-bin/wiki.pl?ErcChannelTracking | 7 | ;; URL: http://www.emacswiki.org/cgi-bin/wiki.pl?ErcChannelTracking |
| 9 | 8 | ||
diff --git a/lisp/erc/erc-truncate.el b/lisp/erc/erc-truncate.el index 04174295520..73c7316b346 100644 --- a/lisp/erc/erc-truncate.el +++ b/lisp/erc/erc-truncate.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 2003-2004, 2006-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 2003-2004, 2006-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: Andreas Fuchs <asf@void.at> | 5 | ;; Author: Andreas Fuchs <asf@void.at> |
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Keywords: IRC, chat, client, Internet, logging | 6 | ;; Keywords: IRC, chat, client, Internet, logging |
| 8 | 7 | ||
| 9 | ;; This file is part of GNU Emacs. | 8 | ;; This file is part of GNU Emacs. |
diff --git a/lisp/erc/erc-xdcc.el b/lisp/erc/erc-xdcc.el index 162b22e15c6..20a91b7a30d 100644 --- a/lisp/erc/erc-xdcc.el +++ b/lisp/erc/erc-xdcc.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 2003-2004, 2006-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 2003-2004, 2006-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: Mario Lang <mlang@delysid.org> | 5 | ;; Author: Mario Lang <mlang@delysid.org> |
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Keywords: comm, processes | 6 | ;; Keywords: comm, processes |
| 8 | 7 | ||
| 9 | ;; This file is part of GNU Emacs. | 8 | ;; This file is part of GNU Emacs. |
diff --git a/lisp/erc/erc.el b/lisp/erc/erc.el index d1fa5c7f120..fc0f6128f6f 100644 --- a/lisp/erc/erc.el +++ b/lisp/erc/erc.el | |||
| @@ -10,7 +10,6 @@ | |||
| 10 | ;; Gergely Nagy (algernon@midgard.debian.net) | 10 | ;; Gergely Nagy (algernon@midgard.debian.net) |
| 11 | ;; David Edmondson (dme@dme.org) | 11 | ;; David Edmondson (dme@dme.org) |
| 12 | ;; Kelvin White (kwhite@gnu.org) | 12 | ;; Kelvin White (kwhite@gnu.org) |
| 13 | ;; Maintainer: emacs-devel@gnu.org | ||
| 14 | ;; Keywords: IRC, chat, client, Internet | 13 | ;; Keywords: IRC, chat, client, Internet |
| 15 | 14 | ||
| 16 | ;; Version: 5.3 | 15 | ;; Version: 5.3 |
diff --git a/lisp/expand.el b/lisp/expand.el index 0c4d343090c..7eaf7fdab05 100644 --- a/lisp/expand.el +++ b/lisp/expand.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 1995-1996, 2001-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1995-1996, 2001-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: Frederic Lepied <Frederic.Lepied@sugix.frmug.org> | 5 | ;; Author: Frederic Lepied <Frederic.Lepied@sugix.frmug.org> |
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Keywords: abbrev | 6 | ;; Keywords: abbrev |
| 8 | 7 | ||
| 9 | ;; This file is part of GNU Emacs. | 8 | ;; This file is part of GNU Emacs. |
diff --git a/lisp/faces.el b/lisp/faces.el index 89b598669c9..137ce99d5e6 100644 --- a/lisp/faces.el +++ b/lisp/faces.el | |||
| @@ -2,7 +2,6 @@ | |||
| 2 | 2 | ||
| 3 | ;; Copyright (C) 1992-1996, 1998-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1992-1996, 1998-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Maintainer: emacs-devel@gnu.org | ||
| 6 | ;; Keywords: internal | 5 | ;; Keywords: internal |
| 7 | ;; Package: emacs | 6 | ;; Package: emacs |
| 8 | 7 | ||
diff --git a/lisp/ffap.el b/lisp/ffap.el index 08f72089450..4e91a7affaf 100644 --- a/lisp/ffap.el +++ b/lisp/ffap.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 1995-1997, 2000-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1995-1997, 2000-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: Michelangelo Grigni <mic@mathcs.emory.edu> | 5 | ;; Author: Michelangelo Grigni <mic@mathcs.emory.edu> |
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Created: 29 Mar 1993 | 6 | ;; Created: 29 Mar 1993 |
| 8 | ;; Keywords: files, hypermedia, matching, mouse, convenience | 7 | ;; Keywords: files, hypermedia, matching, mouse, convenience |
| 9 | 8 | ||
diff --git a/lisp/filenotify.el b/lisp/filenotify.el index 26b83ce66c0..d77046d2871 100644 --- a/lisp/filenotify.el +++ b/lisp/filenotify.el | |||
| @@ -238,11 +238,17 @@ EVENT is the cadr of the event in `file-notify-handle-event' | |||
| 238 | (string-equal | 238 | (string-equal |
| 239 | (file-notify--watch-filename watch) | 239 | (file-notify--watch-filename watch) |
| 240 | (file-name-nondirectory file)) | 240 | (file-name-nondirectory file)) |
| 241 | |||
| 241 | ;; Directory matches. | 242 | ;; Directory matches. |
| 242 | (string-equal | 243 | ;; FIXME: What purpose would this condition serve? |
| 243 | (file-name-nondirectory file) | 244 | ;; Doesn't it just slip through events for files |
| 244 | (file-name-nondirectory | 245 | ;; having the same name as the last component of the |
| 245 | (file-notify--watch-directory watch))) | 246 | ;; directory of the file that we are really watching? |
| 247 | ;;(string-equal | ||
| 248 | ;; (file-name-nondirectory file) | ||
| 249 | ;; (file-name-nondirectory | ||
| 250 | ;; (file-notify--watch-directory watch))) | ||
| 251 | |||
| 246 | ;; File1 matches. | 252 | ;; File1 matches. |
| 247 | (and (stringp file1) | 253 | (and (stringp file1) |
| 248 | (string-equal | 254 | (string-equal |
diff --git a/lisp/files-x.el b/lisp/files-x.el index b71e9204f32..0d156db0e62 100644 --- a/lisp/files-x.el +++ b/lisp/files-x.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 2009-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 2009-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: Juri Linkov <juri@jurta.org> | 5 | ;; Author: Juri Linkov <juri@jurta.org> |
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Keywords: files | 6 | ;; Keywords: files |
| 8 | ;; Package: emacs | 7 | ;; Package: emacs |
| 9 | 8 | ||
diff --git a/lisp/files.el b/lisp/files.el index 1dec0ed7ca9..989d1cb4658 100644 --- a/lisp/files.el +++ b/lisp/files.el | |||
| @@ -2,7 +2,6 @@ | |||
| 2 | 2 | ||
| 3 | ;; Copyright (C) 1985-1987, 1992-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1985-1987, 1992-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Maintainer: emacs-devel@gnu.org | ||
| 6 | ;; Package: emacs | 5 | ;; Package: emacs |
| 7 | 6 | ||
| 8 | ;; This file is part of GNU Emacs. | 7 | ;; This file is part of GNU Emacs. |
| @@ -4269,6 +4268,9 @@ However, the mode will not be changed if | |||
| 4269 | :type 'boolean | 4268 | :type 'boolean |
| 4270 | :group 'editing-basics) | 4269 | :group 'editing-basics) |
| 4271 | 4270 | ||
| 4271 | (defvar after-set-visited-file-name-hook nil | ||
| 4272 | "Normal hook run just after setting visited file name of current buffer.") | ||
| 4273 | |||
| 4272 | (defun set-visited-file-name (filename &optional no-query along-with-file) | 4274 | (defun set-visited-file-name (filename &optional no-query along-with-file) |
| 4273 | "Change name of file visited in current buffer to FILENAME. | 4275 | "Change name of file visited in current buffer to FILENAME. |
| 4274 | This also renames the buffer to correspond to the new file. | 4276 | This also renames the buffer to correspond to the new file. |
| @@ -4389,7 +4391,8 @@ the old visited file has been renamed to the new name FILENAME." | |||
| 4389 | (set-auto-mode t) | 4391 | (set-auto-mode t) |
| 4390 | (or (eq old major-mode) | 4392 | (or (eq old major-mode) |
| 4391 | (hack-local-variables)))) | 4393 | (hack-local-variables)))) |
| 4392 | (error nil)))) | 4394 | (error nil)) |
| 4395 | (run-hooks 'after-set-visited-file-name-hook))) | ||
| 4393 | 4396 | ||
| 4394 | (defun write-file (filename &optional confirm) | 4397 | (defun write-file (filename &optional confirm) |
| 4395 | "Write current buffer into file FILENAME. | 4398 | "Write current buffer into file FILENAME. |
diff --git a/lisp/filesets.el b/lisp/filesets.el index b74b4a8a400..05c30dedf40 100644 --- a/lisp/filesets.el +++ b/lisp/filesets.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 2002-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 2002-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: Thomas Link <sanobast-emacs@yahoo.de> | 5 | ;; Author: Thomas Link <sanobast-emacs@yahoo.de> |
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Keywords: filesets convenience | 6 | ;; Keywords: filesets convenience |
| 8 | 7 | ||
| 9 | ;; This file is part of GNU Emacs. | 8 | ;; This file is part of GNU Emacs. |
diff --git a/lisp/find-dired.el b/lisp/find-dired.el index ef137be9bbf..578f7653628 100644 --- a/lisp/find-dired.el +++ b/lisp/find-dired.el | |||
| @@ -5,7 +5,6 @@ | |||
| 5 | 5 | ||
| 6 | ;; Author: Roland McGrath <roland@gnu.org>, | 6 | ;; Author: Roland McGrath <roland@gnu.org>, |
| 7 | ;; Sebastian Kremer <sk@thp.uni-koeln.de> | 7 | ;; Sebastian Kremer <sk@thp.uni-koeln.de> |
| 8 | ;; Maintainer: emacs-devel@gnu.org | ||
| 9 | ;; Keywords: unix | 8 | ;; Keywords: unix |
| 10 | 9 | ||
| 11 | ;; This file is part of GNU Emacs. | 10 | ;; This file is part of GNU Emacs. |
diff --git a/lisp/find-file.el b/lisp/find-file.el index 87314086a4a..f93d2a02d74 100644 --- a/lisp/find-file.el +++ b/lisp/find-file.el | |||
| @@ -1,7 +1,6 @@ | |||
| 1 | ;;; find-file.el --- find a file corresponding to this one given a pattern | 1 | ;;; find-file.el --- find a file corresponding to this one given a pattern |
| 2 | 2 | ||
| 3 | ;; Author: Henry Guillaume <henri@tibco.com, henry@c032.aone.net.au> | 3 | ;; Author: Henry Guillaume <henri@tibco.com, henry@c032.aone.net.au> |
| 4 | ;; Maintainer: emacs-devel@gnu.org | ||
| 5 | ;; Keywords: c, matching, tools | 4 | ;; Keywords: c, matching, tools |
| 6 | 5 | ||
| 7 | ;; Copyright (C) 1994-1995, 2001-2019 Free Software Foundation, Inc. | 6 | ;; Copyright (C) 1994-1995, 2001-2019 Free Software Foundation, Inc. |
diff --git a/lisp/flow-ctrl.el b/lisp/flow-ctrl.el index e92b6b4df2e..0b95efaf041 100644 --- a/lisp/flow-ctrl.el +++ b/lisp/flow-ctrl.el | |||
| @@ -4,7 +4,6 @@ | |||
| 4 | ;; Inc. | 4 | ;; Inc. |
| 5 | 5 | ||
| 6 | ;; Author: Kevin Gallagher | 6 | ;; Author: Kevin Gallagher |
| 7 | ;; Maintainer: emacs-devel@gnu.org | ||
| 8 | ;; Adapted-By: ESR | 7 | ;; Adapted-By: ESR |
| 9 | ;; Keywords: hardware | 8 | ;; Keywords: hardware |
| 10 | 9 | ||
diff --git a/lisp/foldout.el b/lisp/foldout.el index 3ef88fe686a..2eae65a7928 100644 --- a/lisp/foldout.el +++ b/lisp/foldout.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 1994, 2001-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1994, 2001-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: Kevin Broadey <KevinB@bartley.demon.co.uk> | 5 | ;; Author: Kevin Broadey <KevinB@bartley.demon.co.uk> |
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Created: 27 Jan 1994 | 6 | ;; Created: 27 Jan 1994 |
| 8 | ;; Version: 1.10 | 7 | ;; Version: 1.10 |
| 9 | ;; Keywords: folding, outlines | 8 | ;; Keywords: folding, outlines |
diff --git a/lisp/follow.el b/lisp/follow.el index acc2b26c550..47e7aa4cd5e 100644 --- a/lisp/follow.el +++ b/lisp/follow.el | |||
| @@ -4,7 +4,6 @@ | |||
| 4 | ;; Inc. | 4 | ;; Inc. |
| 5 | 5 | ||
| 6 | ;; Author: Anders Lindgren | 6 | ;; Author: Anders Lindgren |
| 7 | ;; Maintainer: emacs-devel@gnu.org | ||
| 8 | ;; Created: 1995-05-25 | 7 | ;; Created: 1995-05-25 |
| 9 | ;; Keywords: display, window, minor-mode, convenience | 8 | ;; Keywords: display, window, minor-mode, convenience |
| 10 | 9 | ||
diff --git a/lisp/font-core.el b/lisp/font-core.el index 6b26f0cb92e..da6c91bca5e 100644 --- a/lisp/font-core.el +++ b/lisp/font-core.el | |||
| @@ -2,7 +2,6 @@ | |||
| 2 | 2 | ||
| 3 | ;; Copyright (C) 1992-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1992-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Maintainer: emacs-devel@gnu.org | ||
| 6 | ;; Keywords: languages, faces | 5 | ;; Keywords: languages, faces |
| 7 | ;; Package: emacs | 6 | ;; Package: emacs |
| 8 | 7 | ||
diff --git a/lisp/font-lock.el b/lisp/font-lock.el index 3991a4ee8ef..b0e4598bac7 100644 --- a/lisp/font-lock.el +++ b/lisp/font-lock.el | |||
| @@ -5,7 +5,6 @@ | |||
| 5 | ;; Author: Jamie Zawinski | 5 | ;; Author: Jamie Zawinski |
| 6 | ;; Richard Stallman | 6 | ;; Richard Stallman |
| 7 | ;; Stefan Monnier | 7 | ;; Stefan Monnier |
| 8 | ;; Maintainer: emacs-devel@gnu.org | ||
| 9 | ;; Keywords: languages, faces | 8 | ;; Keywords: languages, faces |
| 10 | ;; Package: emacs | 9 | ;; Package: emacs |
| 11 | 10 | ||
diff --git a/lisp/frame.el b/lisp/frame.el index a8c230cb7b2..8e0738f31c0 100644 --- a/lisp/frame.el +++ b/lisp/frame.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 1993-1994, 1996-1997, 2000-2019 Free Software | 3 | ;; Copyright (C) 1993-1994, 1996-1997, 2000-2019 Free Software |
| 4 | ;; Foundation, Inc. | 4 | ;; Foundation, Inc. |
| 5 | 5 | ||
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Keywords: internal | 6 | ;; Keywords: internal |
| 8 | ;; Package: emacs | 7 | ;; Package: emacs |
| 9 | 8 | ||
diff --git a/lisp/fringe.el b/lisp/fringe.el index 92387a21571..632efa81a8d 100644 --- a/lisp/fringe.el +++ b/lisp/fringe.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 2002-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 2002-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: Simon Josefsson <simon@josefsson.org> | 5 | ;; Author: Simon Josefsson <simon@josefsson.org> |
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Keywords: frames | 6 | ;; Keywords: frames |
| 8 | ;; Package: emacs | 7 | ;; Package: emacs |
| 9 | 8 | ||
diff --git a/lisp/gnus/gnus-art.el b/lisp/gnus/gnus-art.el index baa8a244c07..a1b82f8aab4 100644 --- a/lisp/gnus/gnus-art.el +++ b/lisp/gnus/gnus-art.el | |||
| @@ -3733,7 +3733,7 @@ is to run." | |||
| 3733 | "Stop the Date timer." | 3733 | "Stop the Date timer." |
| 3734 | (interactive) | 3734 | (interactive) |
| 3735 | (when article-lapsed-timer | 3735 | (when article-lapsed-timer |
| 3736 | (nnheader-cancel-timer article-lapsed-timer) | 3736 | (cancel-timer article-lapsed-timer) |
| 3737 | (setq article-lapsed-timer nil))) | 3737 | (setq article-lapsed-timer nil))) |
| 3738 | 3738 | ||
| 3739 | (defun article-date-user (&optional highlight) | 3739 | (defun article-date-user (&optional highlight) |
diff --git a/lisp/gnus/gnus-async.el b/lisp/gnus/gnus-async.el index 4e2723e8d27..b3da3505da8 100644 --- a/lisp/gnus/gnus-async.el +++ b/lisp/gnus/gnus-async.el | |||
| @@ -146,7 +146,7 @@ that was fetched." | |||
| 146 | (when next | 146 | (when next |
| 147 | (when gnus-async-timer | 147 | (when gnus-async-timer |
| 148 | (ignore-errors | 148 | (ignore-errors |
| 149 | (nnheader-cancel-timer 'gnus-async-timer))) | 149 | (cancel-timer 'gnus-async-timer))) |
| 150 | (setq gnus-async-timer | 150 | (setq gnus-async-timer |
| 151 | (run-with-idle-timer | 151 | (run-with-idle-timer |
| 152 | 0.1 nil 'gnus-async-prefetch-article | 152 | 0.1 nil 'gnus-async-prefetch-article |
diff --git a/lisp/gnus/gnus-demon.el b/lisp/gnus/gnus-demon.el index 6c5e0b7f5d0..cb70d9525c2 100644 --- a/lisp/gnus/gnus-demon.el +++ b/lisp/gnus/gnus-demon.el | |||
| @@ -111,7 +111,7 @@ marked with SPECIAL." | |||
| 111 | func idle time)))) | 111 | func idle time)))) |
| 112 | ((and idle (> idle (gnus-demon-idle-since))) | 112 | ((and idle (> idle (gnus-demon-idle-since))) |
| 113 | (when time | 113 | (when time |
| 114 | (nnheader-cancel-timer (plist-get gnus-demon-timers func)) | 114 | (cancel-timer (plist-get gnus-demon-timers func)) |
| 115 | (setq gnus-demon-timers | 115 | (setq gnus-demon-timers |
| 116 | (plist-put gnus-demon-timers func | 116 | (plist-put gnus-demon-timers func |
| 117 | (run-with-idle-timer idle nil | 117 | (run-with-idle-timer idle nil |
| @@ -202,7 +202,7 @@ marked with SPECIAL." | |||
| 202 | "Cancel any Gnus daemons." | 202 | "Cancel any Gnus daemons." |
| 203 | (interactive) | 203 | (interactive) |
| 204 | (dotimes (i (/ (length gnus-demon-timers) 2)) | 204 | (dotimes (i (/ (length gnus-demon-timers) 2)) |
| 205 | (nnheader-cancel-timer (nth (1+ (* i 2)) gnus-demon-timers))) | 205 | (cancel-timer (nth (1+ (* i 2)) gnus-demon-timers))) |
| 206 | (setq gnus-demon-timers nil)) | 206 | (setq gnus-demon-timers nil)) |
| 207 | 207 | ||
| 208 | (defun gnus-demon-add-disconnection () | 208 | (defun gnus-demon-add-disconnection () |
diff --git a/lisp/gnus/mail-source.el b/lisp/gnus/mail-source.el index 7514e64e7c2..9d70bd5afa9 100644 --- a/lisp/gnus/mail-source.el +++ b/lisp/gnus/mail-source.el | |||
| @@ -31,7 +31,6 @@ | |||
| 31 | (autoload 'auth-source-search "auth-source") | 31 | (autoload 'auth-source-search "auth-source") |
| 32 | (autoload 'pop3-movemail "pop3") | 32 | (autoload 'pop3-movemail "pop3") |
| 33 | (autoload 'pop3-get-message-count "pop3") | 33 | (autoload 'pop3-get-message-count "pop3") |
| 34 | (autoload 'nnheader-cancel-timer "nnheader") | ||
| 35 | (require 'mm-util) | 34 | (require 'mm-util) |
| 36 | (require 'message) ;; for `message-directory' | 35 | (require 'message) ;; for `message-directory' |
| 37 | 36 | ||
| @@ -989,9 +988,9 @@ This only works when `display-time' is enabled." | |||
| 989 | (> (prefix-numeric-value arg) 0)))) | 988 | (> (prefix-numeric-value arg) 0)))) |
| 990 | (setq mail-source-report-new-mail on) | 989 | (setq mail-source-report-new-mail on) |
| 991 | (and mail-source-report-new-mail-timer | 990 | (and mail-source-report-new-mail-timer |
| 992 | (nnheader-cancel-timer mail-source-report-new-mail-timer)) | 991 | (cancel-timer mail-source-report-new-mail-timer)) |
| 993 | (and mail-source-report-new-mail-idle-timer | 992 | (and mail-source-report-new-mail-idle-timer |
| 994 | (nnheader-cancel-timer mail-source-report-new-mail-idle-timer)) | 993 | (cancel-timer mail-source-report-new-mail-idle-timer)) |
| 995 | (setq mail-source-report-new-mail-timer nil) | 994 | (setq mail-source-report-new-mail-timer nil) |
| 996 | (setq mail-source-report-new-mail-idle-timer nil) | 995 | (setq mail-source-report-new-mail-idle-timer nil) |
| 997 | (if on | 996 | (if on |
diff --git a/lisp/gnus/mm-decode.el b/lisp/gnus/mm-decode.el index 5b1859e3240..0b9cdde1fa5 100644 --- a/lisp/gnus/mm-decode.el +++ b/lisp/gnus/mm-decode.el | |||
| @@ -1111,7 +1111,7 @@ external if displayed external." | |||
| 1111 | (mm-remove-part handle))))))) | 1111 | (mm-remove-part handle))))))) |
| 1112 | 1112 | ||
| 1113 | (defun mm-destroy-parts (handles) | 1113 | (defun mm-destroy-parts (handles) |
| 1114 | "Remove the displayed MIME parts represented by HANDLES." | 1114 | "Destroy the displayed MIME parts represented by HANDLES." |
| 1115 | (if (and (listp handles) | 1115 | (if (and (listp handles) |
| 1116 | (bufferp (car handles))) | 1116 | (bufferp (car handles))) |
| 1117 | (mm-destroy-part handles) | 1117 | (mm-destroy-part handles) |
diff --git a/lisp/gnus/nnheader.el b/lisp/gnus/nnheader.el index d30a7399493..6ef324ae916 100644 --- a/lisp/gnus/nnheader.el +++ b/lisp/gnus/nnheader.el | |||
| @@ -121,7 +121,6 @@ on your system, you could say something like: | |||
| 121 | 121 | ||
| 122 | (autoload 'nnmail-message-id "nnmail") | 122 | (autoload 'nnmail-message-id "nnmail") |
| 123 | (autoload 'mail-position-on-field "sendmail") | 123 | (autoload 'mail-position-on-field "sendmail") |
| 124 | (autoload 'gnus-buffer-live-p "gnus-util") | ||
| 125 | 124 | ||
| 126 | ;;; Header access macros. | 125 | ;;; Header access macros. |
| 127 | 126 | ||
| @@ -970,8 +969,9 @@ See `find-file-noselect' for the arguments." | |||
| 970 | "Strip all \r's from the current buffer." | 969 | "Strip all \r's from the current buffer." |
| 971 | (nnheader-skeleton-replace "\r")) | 970 | (nnheader-skeleton-replace "\r")) |
| 972 | 971 | ||
| 973 | (defalias 'nnheader-cancel-timer 'cancel-timer) | 972 | (define-obsolete-function-alias 'nnheader-cancel-timer 'cancel-timer "27.1") |
| 974 | (defalias 'nnheader-cancel-function-timers 'cancel-function-timers) | 973 | (define-obsolete-function-alias 'nnheader-cancel-function-timers |
| 974 | 'cancel-function-timers "27.1") | ||
| 975 | 975 | ||
| 976 | ;; When changing this function, consider changing `pop3-accept-process-output' | 976 | ;; When changing this function, consider changing `pop3-accept-process-output' |
| 977 | ;; as well. | 977 | ;; as well. |
diff --git a/lisp/gnus/nnmail.el b/lisp/gnus/nnmail.el index b6dbbea74cc..37f6e75b90e 100644 --- a/lisp/gnus/nnmail.el +++ b/lisp/gnus/nnmail.el | |||
| @@ -34,8 +34,6 @@ | |||
| 34 | (require 'mm-util) | 34 | (require 'mm-util) |
| 35 | (require 'gnus-int) | 35 | (require 'gnus-int) |
| 36 | 36 | ||
| 37 | (autoload 'gnus-add-buffer "gnus") | ||
| 38 | (autoload 'gnus-kill-buffer "gnus") | ||
| 39 | (autoload 'mail-send-and-exit "sendmail" nil t) | 37 | (autoload 'mail-send-and-exit "sendmail" nil t) |
| 40 | 38 | ||
| 41 | (defgroup nnmail nil | 39 | (defgroup nnmail nil |
diff --git a/lisp/gnus/nnmaildir.el b/lisp/gnus/nnmaildir.el index 9d02773d6f2..ac125c905a5 100644 --- a/lisp/gnus/nnmaildir.el +++ b/lisp/gnus/nnmaildir.el | |||
| @@ -1490,7 +1490,7 @@ This variable is set by `nnmaildir-request-article'.") | |||
| 1490 | 'excl) | 1490 | 'excl) |
| 1491 | (when (fboundp 'unix-sync) | 1491 | (when (fboundp 'unix-sync) |
| 1492 | (unix-sync)))) ;; no fsync :( | 1492 | (unix-sync)))) ;; no fsync :( |
| 1493 | (nnheader-cancel-timer 24h) | 1493 | (cancel-timer 24h) |
| 1494 | (condition-case err | 1494 | (condition-case err |
| 1495 | (add-name-to-file tmpfile curfile) | 1495 | (add-name-to-file tmpfile curfile) |
| 1496 | (error | 1496 | (error |
diff --git a/lisp/gnus/nntp.el b/lisp/gnus/nntp.el index e2fa1d85a36..0e5057e1a45 100644 --- a/lisp/gnus/nntp.el +++ b/lisp/gnus/nntp.el | |||
| @@ -647,7 +647,7 @@ command whose response triggered the error." | |||
| 647 | (nntp-close-server)) | 647 | (nntp-close-server)) |
| 648 | (signal 'quit nil)))) | 648 | (signal 'quit nil)))) |
| 649 | (when -timer | 649 | (when -timer |
| 650 | (nnheader-cancel-timer -timer))) | 650 | (cancel-timer -timer))) |
| 651 | nil)) | 651 | nil)) |
| 652 | (setq nntp--report-1 nntp-report-n)) | 652 | (setq nntp--report-1 nntp-report-n)) |
| 653 | nntp-with-open-group-internal)) | 653 | nntp-with-open-group-internal)) |
| @@ -1280,7 +1280,7 @@ If SEND-IF-FORCE, only send authinfo to the server if the | |||
| 1280 | (signal 'quit nil) | 1280 | (signal 'quit nil) |
| 1281 | nil)))) | 1281 | nil)))) |
| 1282 | (when timer | 1282 | (when timer |
| 1283 | (nnheader-cancel-timer timer)) | 1283 | (cancel-timer timer)) |
| 1284 | (when (and process | 1284 | (when (and process |
| 1285 | (not (memq (process-status process) '(open run)))) | 1285 | (not (memq (process-status process) '(open run)))) |
| 1286 | (with-current-buffer pbuffer | 1286 | (with-current-buffer pbuffer |
| @@ -1339,7 +1339,7 @@ If SEND-IF-FORCE, only send authinfo to the server if the | |||
| 1339 | (defun nntp-async-stop (proc) | 1339 | (defun nntp-async-stop (proc) |
| 1340 | (setq nntp-async-process-list (delq proc nntp-async-process-list)) | 1340 | (setq nntp-async-process-list (delq proc nntp-async-process-list)) |
| 1341 | (when (and nntp-async-timer (not nntp-async-process-list)) | 1341 | (when (and nntp-async-timer (not nntp-async-process-list)) |
| 1342 | (nnheader-cancel-timer nntp-async-timer) | 1342 | (cancel-timer nntp-async-timer) |
| 1343 | (setq nntp-async-timer nil))) | 1343 | (setq nntp-async-timer nil))) |
| 1344 | 1344 | ||
| 1345 | (defun nntp-after-change-function (beg end len) | 1345 | (defun nntp-after-change-function (beg end len) |
diff --git a/lisp/help-fns.el b/lisp/help-fns.el index 50d69e70de4..91b4104becf 100644 --- a/lisp/help-fns.el +++ b/lisp/help-fns.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 1985-1986, 1993-1994, 1998-2019 Free Software | 3 | ;; Copyright (C) 1985-1986, 1993-1994, 1998-2019 Free Software |
| 4 | ;; Foundation, Inc. | 4 | ;; Foundation, Inc. |
| 5 | 5 | ||
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Keywords: help, internal | 6 | ;; Keywords: help, internal |
| 8 | ;; Package: emacs | 7 | ;; Package: emacs |
| 9 | 8 | ||
| @@ -104,11 +103,23 @@ and the output should go to `standard-output'.") | |||
| 104 | (with-demoted-errors "while loading: %S" | 103 | (with-demoted-errors "while loading: %S" |
| 105 | (load file 'noerror 'nomessage)))))) | 104 | (load file 'noerror 'nomessage)))))) |
| 106 | 105 | ||
| 106 | (defcustom help-enable-completion-auto-load t | ||
| 107 | "Whether completion for Help commands can perform autoloading. | ||
| 108 | If non-nil, whenever invoking completion for `describe-function' | ||
| 109 | or `describe-variable' load files that might contain definitions | ||
| 110 | with the current prefix. The files are chosen according to | ||
| 111 | `definition-prefixes'." | ||
| 112 | :type 'boolean | ||
| 113 | :group 'help | ||
| 114 | :version "26.3") | ||
| 115 | |||
| 107 | (defun help--symbol-completion-table (string pred action) | 116 | (defun help--symbol-completion-table (string pred action) |
| 108 | (let ((prefixes (radix-tree-prefixes (help-definition-prefixes) string))) | 117 | (when help-enable-completion-auto-load |
| 109 | (help--load-prefixes prefixes)) | 118 | (let ((prefixes (radix-tree-prefixes (help-definition-prefixes) string))) |
| 119 | (help--load-prefixes prefixes))) | ||
| 110 | (let ((prefix-completions | 120 | (let ((prefix-completions |
| 111 | (mapcar #'intern (all-completions string definition-prefixes)))) | 121 | (and help-enable-completion-auto-load |
| 122 | (mapcar #'intern (all-completions string definition-prefixes))))) | ||
| 112 | (complete-with-action action obarray string | 123 | (complete-with-action action obarray string |
| 113 | (if pred (lambda (sym) | 124 | (if pred (lambda (sym) |
| 114 | (or (funcall pred sym) | 125 | (or (funcall pred sym) |
diff --git a/lisp/help-macro.el b/lisp/help-macro.el index a16d1e34b43..9c90d6da148 100644 --- a/lisp/help-macro.el +++ b/lisp/help-macro.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 1993-1994, 2001-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1993-1994, 2001-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: Lynn Slater <lrs@indetech.com> | 5 | ;; Author: Lynn Slater <lrs@indetech.com> |
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Created: Mon Oct 1 11:42:39 1990 | 6 | ;; Created: Mon Oct 1 11:42:39 1990 |
| 8 | ;; Adapted-By: ESR | 7 | ;; Adapted-By: ESR |
| 9 | ;; Package: emacs | 8 | ;; Package: emacs |
diff --git a/lisp/help-mode.el b/lisp/help-mode.el index 6cc3f0d4f71..304c45dad3c 100644 --- a/lisp/help-mode.el +++ b/lisp/help-mode.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 1985-1986, 1993-1994, 1998-2019 Free Software | 3 | ;; Copyright (C) 1985-1986, 1993-1994, 1998-2019 Free Software |
| 4 | ;; Foundation, Inc. | 4 | ;; Foundation, Inc. |
| 5 | 5 | ||
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Keywords: help, internal | 6 | ;; Keywords: help, internal |
| 8 | ;; Package: emacs | 7 | ;; Package: emacs |
| 9 | 8 | ||
diff --git a/lisp/help.el b/lisp/help.el index 42ff3755650..0677368a4d6 100644 --- a/lisp/help.el +++ b/lisp/help.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 1985-1986, 1993-1994, 1998-2019 Free Software | 3 | ;; Copyright (C) 1985-1986, 1993-1994, 1998-2019 Free Software |
| 4 | ;; Foundation, Inc. | 4 | ;; Foundation, Inc. |
| 5 | 5 | ||
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Keywords: help, internal | 6 | ;; Keywords: help, internal |
| 8 | ;; Package: emacs | 7 | ;; Package: emacs |
| 9 | 8 | ||
diff --git a/lisp/hexl.el b/lisp/hexl.el index ee5a9c0fce2..df501dfc68f 100644 --- a/lisp/hexl.el +++ b/lisp/hexl.el | |||
| @@ -4,7 +4,6 @@ | |||
| 4 | ;; Inc. | 4 | ;; Inc. |
| 5 | 5 | ||
| 6 | ;; Author: Keith Gabryelski <ag@wheaties.ai.mit.edu> | 6 | ;; Author: Keith Gabryelski <ag@wheaties.ai.mit.edu> |
| 7 | ;; Maintainer: emacs-devel@gnu.org | ||
| 8 | ;; Keywords: data | 7 | ;; Keywords: data |
| 9 | 8 | ||
| 10 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
diff --git a/lisp/hippie-exp.el b/lisp/hippie-exp.el index 404f448e0d2..17d3dc7d8d7 100644 --- a/lisp/hippie-exp.el +++ b/lisp/hippie-exp.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 1992, 2001-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1992, 2001-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: Anders Holst <aho@sans.kth.se> | 5 | ;; Author: Anders Holst <aho@sans.kth.se> |
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Version: 1.6 | 6 | ;; Version: 1.6 |
| 8 | ;; Keywords: abbrev convenience | 7 | ;; Keywords: abbrev convenience |
| 9 | 8 | ||
diff --git a/lisp/hl-line.el b/lisp/hl-line.el index 1c09bc26f68..e4fef214d65 100644 --- a/lisp/hl-line.el +++ b/lisp/hl-line.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 1998, 2000-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1998, 2000-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: Dave Love <fx@gnu.org> | 5 | ;; Author: Dave Love <fx@gnu.org> |
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Created: 1998-09-13 | 6 | ;; Created: 1998-09-13 |
| 8 | ;; Keywords: faces, frames, emulations | 7 | ;; Keywords: faces, frames, emulations |
| 9 | 8 | ||
diff --git a/lisp/icomplete.el b/lisp/icomplete.el index 10fd3a698c5..698025e5504 100644 --- a/lisp/icomplete.el +++ b/lisp/icomplete.el | |||
| @@ -3,8 +3,8 @@ | |||
| 3 | ;; Copyright (C) 1992-1994, 1997, 1999, 2001-2019 Free Software | 3 | ;; Copyright (C) 1992-1994, 1997, 1999, 2001-2019 Free Software |
| 4 | ;; Foundation, Inc. | 4 | ;; Foundation, Inc. |
| 5 | 5 | ||
| 6 | ;; Author: Ken Manheimer <klm@i.am> | 6 | ;; Author: Ken Manheimer <ken dot manheimer at gmail...> |
| 7 | ;; Maintainer: Ken Manheimer <klm@i.am> | 7 | ;; Maintainer: Ken Manheimer <ken dot manheimer at gmail...> |
| 8 | ;; Created: Mar 1993 Ken Manheimer, klm@nist.gov - first release to usenet | 8 | ;; Created: Mar 1993 Ken Manheimer, klm@nist.gov - first release to usenet |
| 9 | ;; Keywords: help, abbrev | 9 | ;; Keywords: help, abbrev |
| 10 | 10 | ||
diff --git a/lisp/ielm.el b/lisp/ielm.el index c7a31a23e68..1531415e741 100644 --- a/lisp/ielm.el +++ b/lisp/ielm.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 1994, 2001-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1994, 2001-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: David Smith <maa036@lancaster.ac.uk> | 5 | ;; Author: David Smith <maa036@lancaster.ac.uk> |
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Created: 25 Feb 1994 | 6 | ;; Created: 25 Feb 1994 |
| 8 | ;; Keywords: lisp | 7 | ;; Keywords: lisp |
| 9 | 8 | ||
diff --git a/lisp/iimage.el b/lisp/iimage.el index e51108ee28f..17b715a66b9 100644 --- a/lisp/iimage.el +++ b/lisp/iimage.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 2004-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 2004-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: KOSEKI Yoshinori <kose@meadowy.org> | 5 | ;; Author: KOSEKI Yoshinori <kose@meadowy.org> |
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Keywords: multimedia | 6 | ;; Keywords: multimedia |
| 8 | 7 | ||
| 9 | ;; This file is part of GNU Emacs. | 8 | ;; This file is part of GNU Emacs. |
diff --git a/lisp/image.el b/lisp/image.el index db113020866..6cc2cc39027 100644 --- a/lisp/image.el +++ b/lisp/image.el | |||
| @@ -2,7 +2,6 @@ | |||
| 2 | 2 | ||
| 3 | ;; Copyright (C) 1998-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1998-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Maintainer: emacs-devel@gnu.org | ||
| 6 | ;; Keywords: multimedia | 5 | ;; Keywords: multimedia |
| 7 | ;; Package: emacs | 6 | ;; Package: emacs |
| 8 | 7 | ||
diff --git a/lisp/imenu.el b/lisp/imenu.el index 5084fe61eff..6e16e131835 100644 --- a/lisp/imenu.el +++ b/lisp/imenu.el | |||
| @@ -4,7 +4,6 @@ | |||
| 4 | 4 | ||
| 5 | ;; Author: Ake Stenhoff <etxaksf@aom.ericsson.se> | 5 | ;; Author: Ake Stenhoff <etxaksf@aom.ericsson.se> |
| 6 | ;; Lars Lindberg <lli@sypro.cap.se> | 6 | ;; Lars Lindberg <lli@sypro.cap.se> |
| 7 | ;; Maintainer: emacs-devel@gnu.org | ||
| 8 | ;; Created: 8 Feb 1994 | 7 | ;; Created: 8 Feb 1994 |
| 9 | ;; Keywords: tools convenience | 8 | ;; Keywords: tools convenience |
| 10 | 9 | ||
diff --git a/lisp/indent.el b/lisp/indent.el index bf87d6af760..1dbece73d6e 100644 --- a/lisp/indent.el +++ b/lisp/indent.el | |||
| @@ -2,7 +2,6 @@ | |||
| 2 | 2 | ||
| 3 | ;; Copyright (C) 1985, 1995, 2001-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1985, 1995, 2001-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Maintainer: emacs-devel@gnu.org | ||
| 6 | ;; Package: emacs | 5 | ;; Package: emacs |
| 7 | 6 | ||
| 8 | ;; This file is part of GNU Emacs. | 7 | ;; This file is part of GNU Emacs. |
diff --git a/lisp/info.el b/lisp/info.el index c211887a39a..61803950d18 100644 --- a/lisp/info.el +++ b/lisp/info.el | |||
| @@ -2,7 +2,6 @@ | |||
| 2 | 2 | ||
| 3 | ;; Copyright (C) 1985-1986, 1992-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1985-1986, 1992-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Maintainer: emacs-devel@gnu.org | ||
| 6 | ;; Keywords: help | 5 | ;; Keywords: help |
| 7 | 6 | ||
| 8 | ;; This file is part of GNU Emacs. | 7 | ;; This file is part of GNU Emacs. |
diff --git a/lisp/informat.el b/lisp/informat.el index 8108ffe42af..246b3b979b5 100644 --- a/lisp/informat.el +++ b/lisp/informat.el | |||
| @@ -2,7 +2,6 @@ | |||
| 2 | 2 | ||
| 3 | ;; Copyright (C) 1986, 2001-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1986, 2001-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Maintainer: emacs-devel@gnu.org | ||
| 6 | ;; Keywords: help | 5 | ;; Keywords: help |
| 7 | 6 | ||
| 8 | ;; This file is part of GNU Emacs. | 7 | ;; This file is part of GNU Emacs. |
diff --git a/lisp/international/isearch-x.el b/lisp/international/isearch-x.el index 6c2a2dc9b99..c12e7b39a8d 100644 --- a/lisp/international/isearch-x.el +++ b/lisp/international/isearch-x.el | |||
| @@ -8,8 +8,8 @@ | |||
| 8 | 8 | ||
| 9 | ;; Keywords: i18n, multilingual, isearch | 9 | ;; Keywords: i18n, multilingual, isearch |
| 10 | 10 | ||
| 11 | ;; Author: Kenichi HANDA <handa@etl.go.jp> | 11 | ;; Author: Kenichi Handa <handa@gnu.org> |
| 12 | ;; Maintainer: Kenichi HANDA <handa@etl.go.jp> | 12 | ;; Maintainer: Kenichi Handa <handa@gnu.org> |
| 13 | 13 | ||
| 14 | ;; This file is part of GNU Emacs. | 14 | ;; This file is part of GNU Emacs. |
| 15 | 15 | ||
diff --git a/lisp/international/iso-ascii.el b/lisp/international/iso-ascii.el index 395e6c4dcd0..b317b8aad7f 100644 --- a/lisp/international/iso-ascii.el +++ b/lisp/international/iso-ascii.el | |||
| @@ -4,7 +4,6 @@ | |||
| 4 | ;; Inc. | 4 | ;; Inc. |
| 5 | 5 | ||
| 6 | ;; Author: Howard Gayle | 6 | ;; Author: Howard Gayle |
| 7 | ;; Maintainer: emacs-devel@gnu.org | ||
| 8 | ;; Keywords: i18n | 7 | ;; Keywords: i18n |
| 9 | 8 | ||
| 10 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
diff --git a/lisp/international/iso-transl.el b/lisp/international/iso-transl.el index b573e1e47c5..14da02c73d9 100644 --- a/lisp/international/iso-transl.el +++ b/lisp/international/iso-transl.el | |||
| @@ -4,7 +4,6 @@ | |||
| 4 | ;; Inc. | 4 | ;; Inc. |
| 5 | 5 | ||
| 6 | ;; Author: Howard Gayle | 6 | ;; Author: Howard Gayle |
| 7 | ;; Maintainer: emacs-devel@gnu.org | ||
| 8 | ;; Keywords: i18n | 7 | ;; Keywords: i18n |
| 9 | 8 | ||
| 10 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
diff --git a/lisp/international/ogonek.el b/lisp/international/ogonek.el index 543f2e33888..fd68137f2b3 100644 --- a/lisp/international/ogonek.el +++ b/lisp/international/ogonek.el | |||
| @@ -4,7 +4,6 @@ | |||
| 4 | 4 | ||
| 5 | ;; Author: Włodek Bzyl | 5 | ;; Author: Włodek Bzyl |
| 6 | ;; Ryszard Kubiak | 6 | ;; Ryszard Kubiak |
| 7 | ;; Maintainer: emacs-devel@gnu.org | ||
| 8 | ;; Keywords: i18n | 7 | ;; Keywords: i18n |
| 9 | 8 | ||
| 10 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
diff --git a/lisp/international/quail.el b/lisp/international/quail.el index 3266b93b446..2683118aafe 100644 --- a/lisp/international/quail.el +++ b/lisp/international/quail.el | |||
| @@ -6,9 +6,9 @@ | |||
| 6 | ;; National Institute of Advanced Industrial Science and Technology (AIST) | 6 | ;; National Institute of Advanced Industrial Science and Technology (AIST) |
| 7 | ;; Registration Number H14PRO021 | 7 | ;; Registration Number H14PRO021 |
| 8 | 8 | ||
| 9 | ;; Author: Kenichi HANDA <handa@etl.go.jp> | 9 | ;; Author: Kenichi Handa <handa@gnu.org> |
| 10 | ;; Naoto TAKAHASHI <ntakahas@etl.go.jp> | 10 | ;; Naoto Takahashi <ntakahas@etl.go.jp> |
| 11 | ;; Maintainer: Kenichi HANDA <handa@etl.go.jp> | 11 | ;; Maintainer: Kenichi Handa <handa@gnu.org> |
| 12 | ;; Keywords: mule, multilingual, input method, i18n | 12 | ;; Keywords: mule, multilingual, input method, i18n |
| 13 | 13 | ||
| 14 | ;; This file is part of GNU Emacs. | 14 | ;; This file is part of GNU Emacs. |
diff --git a/lisp/international/utf7.el b/lisp/international/utf7.el index 0e67a62aa6b..f22fb8d38bc 100644 --- a/lisp/international/utf7.el +++ b/lisp/international/utf7.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 1999-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1999-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: Jon K Hellan <hellan@acm.org> | 5 | ;; Author: Jon K Hellan <hellan@acm.org> |
| 6 | ;; Maintainer: bugs@gnus.org | ||
| 7 | ;; Keywords: mail | 6 | ;; Keywords: mail |
| 8 | 7 | ||
| 9 | ;; This file is part of GNU Emacs. | 8 | ;; This file is part of GNU Emacs. |
diff --git a/lisp/isearch.el b/lisp/isearch.el index bb29c2914be..5aaeae438a3 100644 --- a/lisp/isearch.el +++ b/lisp/isearch.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 1992-1997, 1999-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1992-1997, 1999-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: Daniel LaLiberte <liberte@cs.uiuc.edu> | 5 | ;; Author: Daniel LaLiberte <liberte@cs.uiuc.edu> |
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Keywords: matching | 6 | ;; Keywords: matching |
| 8 | ;; Package: emacs | 7 | ;; Package: emacs |
| 9 | 8 | ||
diff --git a/lisp/isearchb.el b/lisp/isearchb.el index ee392b349e8..dc1836865b5 100644 --- a/lisp/isearchb.el +++ b/lisp/isearchb.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 2004-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 2004-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: John Wiegley <johnw@gnu.org> | 5 | ;; Author: John Wiegley <johnw@gnu.org> |
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Created: 16 Apr 2004 | 6 | ;; Created: 16 Apr 2004 |
| 8 | ;; Version: 1.5 | 7 | ;; Version: 1.5 |
| 9 | ;; Keywords: lisp | 8 | ;; Keywords: lisp |
diff --git a/lisp/jka-cmpr-hook.el b/lisp/jka-cmpr-hook.el index 3aa84f45b0d..b6ff9f12f1e 100644 --- a/lisp/jka-cmpr-hook.el +++ b/lisp/jka-cmpr-hook.el | |||
| @@ -4,7 +4,6 @@ | |||
| 4 | ;; Foundation, Inc. | 4 | ;; Foundation, Inc. |
| 5 | 5 | ||
| 6 | ;; Author: Jay K. Adams <jka@ece.cmu.edu> | 6 | ;; Author: Jay K. Adams <jka@ece.cmu.edu> |
| 7 | ;; Maintainer: emacs-devel@gnu.org | ||
| 8 | ;; Keywords: data | 7 | ;; Keywords: data |
| 9 | ;; Package: emacs | 8 | ;; Package: emacs |
| 10 | 9 | ||
diff --git a/lisp/jka-compr.el b/lisp/jka-compr.el index 63fb449b48b..8c9dd8abb63 100644 --- a/lisp/jka-compr.el +++ b/lisp/jka-compr.el | |||
| @@ -4,7 +4,6 @@ | |||
| 4 | ;; Inc. | 4 | ;; Inc. |
| 5 | 5 | ||
| 6 | ;; Author: Jay K. Adams <jka@ece.cmu.edu> | 6 | ;; Author: Jay K. Adams <jka@ece.cmu.edu> |
| 7 | ;; Maintainer: emacs-devel@gnu.org | ||
| 8 | ;; Keywords: data | 7 | ;; Keywords: data |
| 9 | 8 | ||
| 10 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
diff --git a/lisp/kermit.el b/lisp/kermit.el index f6ed1fbda1c..77c2cbd4d60 100644 --- a/lisp/kermit.el +++ b/lisp/kermit.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 1988, 2001-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1988, 2001-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: Jeff Norden <jeff@colgate.csnet> | 5 | ;; Author: Jeff Norden <jeff@colgate.csnet> |
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Created: 15 Feb 1988 | 6 | ;; Created: 15 Feb 1988 |
| 8 | ;; Keywords: comm | 7 | ;; Keywords: comm |
| 9 | 8 | ||
diff --git a/lisp/language/cyrillic.el b/lisp/language/cyrillic.el index 75d4249423c..564ac5f5921 100644 --- a/lisp/language/cyrillic.el +++ b/lisp/language/cyrillic.el | |||
| @@ -9,7 +9,7 @@ | |||
| 9 | ;; National Institute of Advanced Industrial Science and Technology (AIST) | 9 | ;; National Institute of Advanced Industrial Science and Technology (AIST) |
| 10 | ;; Registration Number H13PRO009 | 10 | ;; Registration Number H13PRO009 |
| 11 | 11 | ||
| 12 | ;; Author: Kenichi Handa <handa@etl.go.jp> | 12 | ;; Author: Kenichi Handa <handa@gnu.org> |
| 13 | ;; Keywords: multilingual, Cyrillic, i18n | 13 | ;; Keywords: multilingual, Cyrillic, i18n |
| 14 | 14 | ||
| 15 | ;; This file is part of GNU Emacs. | 15 | ;; This file is part of GNU Emacs. |
diff --git a/lisp/language/european.el b/lisp/language/european.el index 8c38175972f..fedbca4eb69 100644 --- a/lisp/language/european.el +++ b/lisp/language/european.el | |||
| @@ -525,7 +525,7 @@ method and applying Turkish case rules for the characters i, I, ı, İ."))) | |||
| 525 | (set-case-syntax ?ı "w" table))) | 525 | (set-case-syntax ?ı "w" table))) |
| 526 | 526 | ||
| 527 | ;; Polish ISO 8859-2 environment. | 527 | ;; Polish ISO 8859-2 environment. |
| 528 | ;; Maintainer: Wlodek Bzyl <matwb@univ.gda.pl> | 528 | ;; Maintainer: Włodek Bzyl <matwb@univ.gda.pl> |
| 529 | ;; Keywords: multilingual, Polish | 529 | ;; Keywords: multilingual, Polish |
| 530 | 530 | ||
| 531 | (set-language-info-alist | 531 | (set-language-info-alist |
diff --git a/lisp/language/indian.el b/lisp/language/indian.el index d63e9b465fa..894a01502c6 100644 --- a/lisp/language/indian.el +++ b/lisp/language/indian.el | |||
| @@ -5,7 +5,7 @@ | |||
| 5 | ;; National Institute of Advanced Industrial Science and Technology (AIST) | 5 | ;; National Institute of Advanced Industrial Science and Technology (AIST) |
| 6 | ;; Registration Number H14PRO021 | 6 | ;; Registration Number H14PRO021 |
| 7 | 7 | ||
| 8 | ;; Maintainer: Kenichi Handa <handa@m17n.org> | 8 | ;; Maintainer: Kenichi Handa <handa@gnu.org> |
| 9 | ;; KAWABATA, Taichi <kawabata@m17n.org> | 9 | ;; KAWABATA, Taichi <kawabata@m17n.org> |
| 10 | ;; Keywords: multilingual, i18n, Indian | 10 | ;; Keywords: multilingual, i18n, Indian |
| 11 | 11 | ||
diff --git a/lisp/language/thai-word.el b/lisp/language/thai-word.el index e67dd093430..94c6ab98979 100644 --- a/lisp/language/thai-word.el +++ b/lisp/language/thai-word.el | |||
| @@ -4,7 +4,7 @@ | |||
| 4 | ;; National Institute of Advanced Industrial Science and Technology (AIST) | 4 | ;; National Institute of Advanced Industrial Science and Technology (AIST) |
| 5 | ;; Registration Number H14PRO021 | 5 | ;; Registration Number H14PRO021 |
| 6 | 6 | ||
| 7 | ;; Author: Kenichi HANDA <handa@etl.go.jp> | 7 | ;; Author: Kenichi Handa <handa@gnu.org> |
| 8 | 8 | ||
| 9 | ;; Keywords: thai, word break, emacs | 9 | ;; Keywords: thai, word break, emacs |
| 10 | 10 | ||
diff --git a/lisp/leim/quail/py-punct.el b/lisp/leim/quail/py-punct.el index eed70a82eec..49ea66effbb 100644 --- a/lisp/leim/quail/py-punct.el +++ b/lisp/leim/quail/py-punct.el | |||
| @@ -6,7 +6,7 @@ | |||
| 6 | ;; National Institute of Advanced Industrial Science and Technology (AIST) | 6 | ;; National Institute of Advanced Industrial Science and Technology (AIST) |
| 7 | ;; Registration Number H14PRO021 | 7 | ;; Registration Number H14PRO021 |
| 8 | 8 | ||
| 9 | ;; Author: Ken'ichi HANDA <handa@etl.go.jp> | 9 | ;; Author: Ken'ichi Handa <handa@gnu.org> |
| 10 | 10 | ||
| 11 | ;; Keywords: multilingual, input method, Chinese | 11 | ;; Keywords: multilingual, input method, Chinese |
| 12 | 12 | ||
diff --git a/lisp/leim/quail/pypunct-b5.el b/lisp/leim/quail/pypunct-b5.el index 45597a4ef6f..9f4e73c9f05 100644 --- a/lisp/leim/quail/pypunct-b5.el +++ b/lisp/leim/quail/pypunct-b5.el | |||
| @@ -5,7 +5,7 @@ | |||
| 5 | ;; National Institute of Advanced Industrial Science and Technology (AIST) | 5 | ;; National Institute of Advanced Industrial Science and Technology (AIST) |
| 6 | ;; Registration Number H14PRO021 | 6 | ;; Registration Number H14PRO021 |
| 7 | 7 | ||
| 8 | ;; Author: Ken'ichi HANDA <handa@etl.go.jp> | 8 | ;; Author: Ken'ichi Handa <handa@gnu.org> |
| 9 | 9 | ||
| 10 | ;; Keywords: multilingual, input method, Chinese | 10 | ;; Keywords: multilingual, input method, Chinese |
| 11 | 11 | ||
diff --git a/lisp/linum.el b/lisp/linum.el index 0b4b0083ed6..6fe30571c60 100644 --- a/lisp/linum.el +++ b/lisp/linum.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 2008-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 2008-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: Markus Triska <markus.triska@gmx.at> | 5 | ;; Author: Markus Triska <markus.triska@gmx.at> |
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Keywords: convenience | 6 | ;; Keywords: convenience |
| 8 | ;; Version: 0.9x | 7 | ;; Version: 0.9x |
| 9 | 8 | ||
diff --git a/lisp/loadhist.el b/lisp/loadhist.el index 4e5d8e0f38d..69f2c0bdcc3 100644 --- a/lisp/loadhist.el +++ b/lisp/loadhist.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 1995, 1998, 2000-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1995, 1998, 2000-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: Eric S. Raymond <esr@snark.thyrsus.com> | 5 | ;; Author: Eric S. Raymond <esr@snark.thyrsus.com> |
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Keywords: internal | 6 | ;; Keywords: internal |
| 8 | 7 | ||
| 9 | ;; This file is part of GNU Emacs. | 8 | ;; This file is part of GNU Emacs. |
diff --git a/lisp/loadup.el b/lisp/loadup.el index 67e8aa7d40a..c43d1476229 100644 --- a/lisp/loadup.el +++ b/lisp/loadup.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 1985-1986, 1992, 1994, 2001-2019 Free Software | 3 | ;; Copyright (C) 1985-1986, 1992, 1994, 2001-2019 Free Software |
| 4 | ;; Foundation, Inc. | 4 | ;; Foundation, Inc. |
| 5 | 5 | ||
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Keywords: internal | 6 | ;; Keywords: internal |
| 8 | ;; Package: emacs | 7 | ;; Package: emacs |
| 9 | 8 | ||
diff --git a/lisp/lpr.el b/lisp/lpr.el index 436f9e3e021..17a37f15544 100644 --- a/lisp/lpr.el +++ b/lisp/lpr.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 1985, 1988, 1992, 1994, 2001-2019 Free Software | 3 | ;; Copyright (C) 1985, 1988, 1992, 1994, 2001-2019 Free Software |
| 4 | ;; Foundation, Inc. | 4 | ;; Foundation, Inc. |
| 5 | 5 | ||
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Keywords: unix | 6 | ;; Keywords: unix |
| 8 | 7 | ||
| 9 | ;; This file is part of GNU Emacs. | 8 | ;; This file is part of GNU Emacs. |
diff --git a/lisp/ls-lisp.el b/lisp/ls-lisp.el index 1f2c46834ec..7ab97ebffee 100644 --- a/lisp/ls-lisp.el +++ b/lisp/ls-lisp.el | |||
| @@ -4,7 +4,6 @@ | |||
| 4 | 4 | ||
| 5 | ;; Author: Sebastian Kremer <sk@thp.uni-koeln.de> | 5 | ;; Author: Sebastian Kremer <sk@thp.uni-koeln.de> |
| 6 | ;; Modified by: Francis J. Wright <F.J.Wright@maths.qmw.ac.uk> | 6 | ;; Modified by: Francis J. Wright <F.J.Wright@maths.qmw.ac.uk> |
| 7 | ;; Maintainer: emacs-devel@gnu.org | ||
| 8 | ;; Keywords: unix, dired | 7 | ;; Keywords: unix, dired |
| 9 | ;; Package: emacs | 8 | ;; Package: emacs |
| 10 | 9 | ||
diff --git a/lisp/macros.el b/lisp/macros.el index 4b38506d8a5..b9020a299a5 100644 --- a/lisp/macros.el +++ b/lisp/macros.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 1985-1987, 1992, 1994-1995, 2001-2019 Free Software | 3 | ;; Copyright (C) 1985-1987, 1992, 1994-1995, 2001-2019 Free Software |
| 4 | ;; Foundation, Inc. | 4 | ;; Foundation, Inc. |
| 5 | 5 | ||
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Keywords: abbrev | 6 | ;; Keywords: abbrev |
| 8 | ;; Package: emacs | 7 | ;; Package: emacs |
| 9 | 8 | ||
diff --git a/lisp/mail/blessmail.el b/lisp/mail/blessmail.el index 62094bfe2d7..2a2ff3dec14 100644 --- a/lisp/mail/blessmail.el +++ b/lisp/mail/blessmail.el | |||
| @@ -2,7 +2,6 @@ | |||
| 2 | 2 | ||
| 3 | ;; Copyright (C) 1994, 2001-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1994, 2001-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Maintainer: emacs-devel@gnu.org | ||
| 6 | ;; Keywords: internal | 5 | ;; Keywords: internal |
| 7 | ;; Package: emacs | 6 | ;; Package: emacs |
| 8 | 7 | ||
diff --git a/lisp/mail/emacsbug.el b/lisp/mail/emacsbug.el index c637e242c42..2cd6d56b429 100644 --- a/lisp/mail/emacsbug.el +++ b/lisp/mail/emacsbug.el | |||
| @@ -4,7 +4,6 @@ | |||
| 4 | ;; Foundation, Inc. | 4 | ;; Foundation, Inc. |
| 5 | 5 | ||
| 6 | ;; Author: K. Shane Hartman | 6 | ;; Author: K. Shane Hartman |
| 7 | ;; Maintainer: emacs-devel@gnu.org | ||
| 8 | ;; Keywords: maint mail | 7 | ;; Keywords: maint mail |
| 9 | ;; Package: emacs | 8 | ;; Package: emacs |
| 10 | 9 | ||
diff --git a/lisp/mail/feedmail.el b/lisp/mail/feedmail.el index a90d9c46578..180e32bee4c 100644 --- a/lisp/mail/feedmail.el +++ b/lisp/mail/feedmail.el | |||
| @@ -1657,7 +1657,7 @@ local gurus." | |||
| 1657 | (declare-function smtp-via-smtp "ext:smtp" (sender recipients smtp-text-buffer)) | 1657 | (declare-function smtp-via-smtp "ext:smtp" (sender recipients smtp-text-buffer)) |
| 1658 | (defvar smtp-server) | 1658 | (defvar smtp-server) |
| 1659 | 1659 | ||
| 1660 | ;; FLIM's smtp.el pointed out to me by Kenichi Handa <handa@etl.go.jp> | 1660 | ;; FLIM's smtp.el pointed out to me by Kenichi Handa <handa@gnu.org> |
| 1661 | (defun feedmail-buffer-to-smtp (prepped errors-to addr-listoid) | 1661 | (defun feedmail-buffer-to-smtp (prepped errors-to addr-listoid) |
| 1662 | "Function which actually calls smtp-via-smtp to send buffer as e-mail." | 1662 | "Function which actually calls smtp-via-smtp to send buffer as e-mail." |
| 1663 | (feedmail-say-debug ">in-> feedmail-buffer-to-smtp %s" addr-listoid) | 1663 | (feedmail-say-debug ">in-> feedmail-buffer-to-smtp %s" addr-listoid) |
diff --git a/lisp/mail/hashcash.el b/lisp/mail/hashcash.el index 60689529974..ec17d669f3c 100644 --- a/lisp/mail/hashcash.el +++ b/lisp/mail/hashcash.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 2003-2005, 2007-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 2003-2005, 2007-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Written by: Paul Foley <mycroft@actrix.gen.nz> (1997-2002) | 5 | ;; Written by: Paul Foley <mycroft@actrix.gen.nz> (1997-2002) |
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Keywords: mail, hashcash | 6 | ;; Keywords: mail, hashcash |
| 8 | 7 | ||
| 9 | ;; This file is part of GNU Emacs. | 8 | ;; This file is part of GNU Emacs. |
diff --git a/lisp/mail/mail-extr.el b/lisp/mail/mail-extr.el index c1e90c3dcb8..e6108066656 100644 --- a/lisp/mail/mail-extr.el +++ b/lisp/mail/mail-extr.el | |||
| @@ -4,7 +4,6 @@ | |||
| 4 | ;; Inc. | 4 | ;; Inc. |
| 5 | 5 | ||
| 6 | ;; Author: Joe Wells <jbw@cs.bu.edu> | 6 | ;; Author: Joe Wells <jbw@cs.bu.edu> |
| 7 | ;; Maintainer: emacs-devel@gnu.org | ||
| 8 | ;; Keywords: mail | 7 | ;; Keywords: mail |
| 9 | ;; Package: mail-utils | 8 | ;; Package: mail-utils |
| 10 | 9 | ||
diff --git a/lisp/mail/mail-utils.el b/lisp/mail/mail-utils.el index cbcbdfaeb2e..f561c088a2f 100644 --- a/lisp/mail/mail-utils.el +++ b/lisp/mail/mail-utils.el | |||
| @@ -2,7 +2,6 @@ | |||
| 2 | 2 | ||
| 3 | ;; Copyright (C) 1985, 2001-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1985, 2001-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Maintainer: emacs-devel@gnu.org | ||
| 6 | ;; Keywords: mail, news | 5 | ;; Keywords: mail, news |
| 7 | 6 | ||
| 8 | ;; This file is part of GNU Emacs. | 7 | ;; This file is part of GNU Emacs. |
diff --git a/lisp/mail/mailabbrev.el b/lisp/mail/mailabbrev.el index d59df88c688..17f4f0cba0c 100644 --- a/lisp/mail/mailabbrev.el +++ b/lisp/mail/mailabbrev.el | |||
| @@ -4,7 +4,6 @@ | |||
| 4 | ;; Software Foundation, Inc. | 4 | ;; Software Foundation, Inc. |
| 5 | 5 | ||
| 6 | ;; Author: Jamie Zawinski <jwz@lucid.com; now jwz@jwz.org> | 6 | ;; Author: Jamie Zawinski <jwz@lucid.com; now jwz@jwz.org> |
| 7 | ;; Maintainer: emacs-devel@gnu.org | ||
| 8 | ;; Created: 19 Oct 90 | 7 | ;; Created: 19 Oct 90 |
| 9 | ;; Keywords: mail | 8 | ;; Keywords: mail |
| 10 | 9 | ||
diff --git a/lisp/mail/mailalias.el b/lisp/mail/mailalias.el index 42896c18ebe..68e44f820c7 100644 --- a/lisp/mail/mailalias.el +++ b/lisp/mail/mailalias.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 1985, 1987, 1995-1997, 2001-2019 Free Software | 3 | ;; Copyright (C) 1985, 1987, 1995-1997, 2001-2019 Free Software |
| 4 | ;; Foundation, Inc. | 4 | ;; Foundation, Inc. |
| 5 | 5 | ||
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Keywords: mail | 6 | ;; Keywords: mail |
| 8 | 7 | ||
| 9 | ;; This file is part of GNU Emacs. | 8 | ;; This file is part of GNU Emacs. |
diff --git a/lisp/mail/reporter.el b/lisp/mail/reporter.el index 10db110c70f..3172c9760f7 100644 --- a/lisp/mail/reporter.el +++ b/lisp/mail/reporter.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 1993-1998, 2001-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1993-1998, 2001-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: 1993-1998 Barry A. Warsaw | 5 | ;; Author: 1993-1998 Barry A. Warsaw |
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Created: 19-Apr-1993 | 6 | ;; Created: 19-Apr-1993 |
| 8 | ;; Keywords: maint mail tools | 7 | ;; Keywords: maint mail tools |
| 9 | 8 | ||
diff --git a/lisp/mail/rfc822.el b/lisp/mail/rfc822.el index a53a77e47ee..4cf624cedd5 100644 --- a/lisp/mail/rfc822.el +++ b/lisp/mail/rfc822.el | |||
| @@ -4,7 +4,6 @@ | |||
| 4 | ;; Inc. | 4 | ;; Inc. |
| 5 | 5 | ||
| 6 | ;; Author: Richard Mlynarik <mly@eddie.mit.edu> | 6 | ;; Author: Richard Mlynarik <mly@eddie.mit.edu> |
| 7 | ;; Maintainer: emacs-devel@gnu.org | ||
| 8 | ;; Keywords: mail | 7 | ;; Keywords: mail |
| 9 | 8 | ||
| 10 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
diff --git a/lisp/mail/rmail.el b/lisp/mail/rmail.el index 91291b8d330..d0ebf7df479 100644 --- a/lisp/mail/rmail.el +++ b/lisp/mail/rmail.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 1985-1988, 1993-1998, 2000-2019 Free Software | 3 | ;; Copyright (C) 1985-1988, 1993-1998, 2000-2019 Free Software |
| 4 | ;; Foundation, Inc. | 4 | ;; Foundation, Inc. |
| 5 | 5 | ||
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Keywords: mail | 6 | ;; Keywords: mail |
| 8 | 7 | ||
| 9 | ;; This file is part of GNU Emacs. | 8 | ;; This file is part of GNU Emacs. |
diff --git a/lisp/mail/rmailedit.el b/lisp/mail/rmailedit.el index 01d552469fa..a9ce1e6feee 100644 --- a/lisp/mail/rmailedit.el +++ b/lisp/mail/rmailedit.el | |||
| @@ -2,7 +2,6 @@ | |||
| 2 | 2 | ||
| 3 | ;; Copyright (C) 1985, 1994, 2001-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1985, 1994, 2001-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Maintainer: emacs-devel@gnu.org | ||
| 6 | ;; Keywords: mail | 5 | ;; Keywords: mail |
| 7 | ;; Package: rmail | 6 | ;; Package: rmail |
| 8 | 7 | ||
diff --git a/lisp/mail/rmailkwd.el b/lisp/mail/rmailkwd.el index 9427796a065..ee71ab4f6e4 100644 --- a/lisp/mail/rmailkwd.el +++ b/lisp/mail/rmailkwd.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 1985, 1988, 1994, 2001-2019 Free Software Foundation, | 3 | ;; Copyright (C) 1985, 1988, 1994, 2001-2019 Free Software Foundation, |
| 4 | ;; Inc. | 4 | ;; Inc. |
| 5 | 5 | ||
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Keywords: mail | 6 | ;; Keywords: mail |
| 8 | ;; Package: rmail | 7 | ;; Package: rmail |
| 9 | 8 | ||
diff --git a/lisp/mail/rmailmm.el b/lisp/mail/rmailmm.el index af528135ccb..d32147f4af2 100644 --- a/lisp/mail/rmailmm.el +++ b/lisp/mail/rmailmm.el | |||
| @@ -4,7 +4,6 @@ | |||
| 4 | 4 | ||
| 5 | ;; Author: Alexander Pohoyda | 5 | ;; Author: Alexander Pohoyda |
| 6 | ;; Alex Schroeder | 6 | ;; Alex Schroeder |
| 7 | ;; Maintainer: emacs-devel@gnu.org | ||
| 8 | ;; Keywords: mail | 7 | ;; Keywords: mail |
| 9 | ;; Package: rmail | 8 | ;; Package: rmail |
| 10 | 9 | ||
diff --git a/lisp/mail/rmailmsc.el b/lisp/mail/rmailmsc.el index ba0c2ae77c7..4c429358995 100644 --- a/lisp/mail/rmailmsc.el +++ b/lisp/mail/rmailmsc.el | |||
| @@ -2,7 +2,6 @@ | |||
| 2 | 2 | ||
| 3 | ;; Copyright (C) 1985, 2001-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1985, 2001-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Maintainer: emacs-devel@gnu.org | ||
| 6 | ;; Keywords: mail | 5 | ;; Keywords: mail |
| 7 | ;; Package: rmail | 6 | ;; Package: rmail |
| 8 | 7 | ||
diff --git a/lisp/mail/rmailout.el b/lisp/mail/rmailout.el index 12d37615d6b..d95670849de 100644 --- a/lisp/mail/rmailout.el +++ b/lisp/mail/rmailout.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 1985, 1987, 1993-1994, 2001-2019 Free Software | 3 | ;; Copyright (C) 1985, 1987, 1993-1994, 2001-2019 Free Software |
| 4 | ;; Foundation, Inc. | 4 | ;; Foundation, Inc. |
| 5 | 5 | ||
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Keywords: mail | 6 | ;; Keywords: mail |
| 8 | ;; Package: rmail | 7 | ;; Package: rmail |
| 9 | 8 | ||
diff --git a/lisp/mail/rmailsort.el b/lisp/mail/rmailsort.el index 4a701038ac8..18185ec6473 100644 --- a/lisp/mail/rmailsort.el +++ b/lisp/mail/rmailsort.el | |||
| @@ -4,7 +4,6 @@ | |||
| 4 | ;; Inc. | 4 | ;; Inc. |
| 5 | 5 | ||
| 6 | ;; Author: Masanobu UMEDA <umerin@mse.kyutech.ac.jp> | 6 | ;; Author: Masanobu UMEDA <umerin@mse.kyutech.ac.jp> |
| 7 | ;; Maintainer: emacs-devel@gnu.org | ||
| 8 | ;; Keywords: mail | 7 | ;; Keywords: mail |
| 9 | ;; Package: rmail | 8 | ;; Package: rmail |
| 10 | 9 | ||
diff --git a/lisp/mail/rmailsum.el b/lisp/mail/rmailsum.el index 79a322c1d91..80cfbfd721a 100644 --- a/lisp/mail/rmailsum.el +++ b/lisp/mail/rmailsum.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 1985, 1993-1996, 2000-2019 Free Software Foundation, | 3 | ;; Copyright (C) 1985, 1993-1996, 2000-2019 Free Software Foundation, |
| 4 | ;; Inc. | 4 | ;; Inc. |
| 5 | 5 | ||
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Keywords: mail | 6 | ;; Keywords: mail |
| 8 | ;; Package: rmail | 7 | ;; Package: rmail |
| 9 | 8 | ||
diff --git a/lisp/mail/sendmail.el b/lisp/mail/sendmail.el index 208ebb68017..0db05570833 100644 --- a/lisp/mail/sendmail.el +++ b/lisp/mail/sendmail.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 1985-1986, 1992-1996, 1998, 2000-2019 Free Software | 3 | ;; Copyright (C) 1985-1986, 1992-1996, 1998, 2000-2019 Free Software |
| 4 | ;; Foundation, Inc. | 4 | ;; Foundation, Inc. |
| 5 | 5 | ||
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Keywords: mail | 6 | ;; Keywords: mail |
| 8 | 7 | ||
| 9 | ;; This file is part of GNU Emacs. | 8 | ;; This file is part of GNU Emacs. |
diff --git a/lisp/mail/supercite.el b/lisp/mail/supercite.el index ad69dca8c43..317324613b9 100644 --- a/lisp/mail/supercite.el +++ b/lisp/mail/supercite.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 1993, 1997, 2001-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1993, 1997, 2001-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: 1993 Barry A. Warsaw <bwarsaw@python.org> | 5 | ;; Author: 1993 Barry A. Warsaw <bwarsaw@python.org> |
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Created: February 1993 | 6 | ;; Created: February 1993 |
| 8 | ;; Keywords: mail, news | 7 | ;; Keywords: mail, news |
| 9 | 8 | ||
diff --git a/lisp/mail/undigest.el b/lisp/mail/undigest.el index bbf3c83c55f..499f16e9d23 100644 --- a/lisp/mail/undigest.el +++ b/lisp/mail/undigest.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 1985-1986, 1994, 1996, 2001-2019 Free Software | 3 | ;; Copyright (C) 1985-1986, 1994, 1996, 2001-2019 Free Software |
| 4 | ;; Foundation, Inc. | 4 | ;; Foundation, Inc. |
| 5 | 5 | ||
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Keywords: mail | 6 | ;; Keywords: mail |
| 8 | 7 | ||
| 9 | ;; This file is part of GNU Emacs. | 8 | ;; This file is part of GNU Emacs. |
diff --git a/lisp/mail/unrmail.el b/lisp/mail/unrmail.el index 4d9ad67262a..c409210a0c3 100644 --- a/lisp/mail/unrmail.el +++ b/lisp/mail/unrmail.el | |||
| @@ -2,7 +2,6 @@ | |||
| 2 | 2 | ||
| 3 | ;; Copyright (C) 1992, 2001-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1992, 2001-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Maintainer: emacs-devel@gnu.org | ||
| 6 | ;; Keywords: mail | 5 | ;; Keywords: mail |
| 7 | 6 | ||
| 8 | ;; This file is part of GNU Emacs. | 7 | ;; This file is part of GNU Emacs. |
diff --git a/lisp/makesum.el b/lisp/makesum.el index 10ad78ea174..847e304e975 100644 --- a/lisp/makesum.el +++ b/lisp/makesum.el | |||
| @@ -2,7 +2,6 @@ | |||
| 2 | 2 | ||
| 3 | ;; Copyright (C) 1985, 2001-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1985, 2001-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Maintainer: emacs-devel@gnu.org | ||
| 6 | ;; Keywords: help | 5 | ;; Keywords: help |
| 7 | 6 | ||
| 8 | ;; This file is part of GNU Emacs. | 7 | ;; This file is part of GNU Emacs. |
diff --git a/lisp/man.el b/lisp/man.el index d52ca2156d2..feb0e09ab18 100644 --- a/lisp/man.el +++ b/lisp/man.el | |||
| @@ -4,7 +4,6 @@ | |||
| 4 | ;; Foundation, Inc. | 4 | ;; Foundation, Inc. |
| 5 | 5 | ||
| 6 | ;; Author: Barry A. Warsaw <bwarsaw@cen.com> | 6 | ;; Author: Barry A. Warsaw <bwarsaw@cen.com> |
| 7 | ;; Maintainer: emacs-devel@gnu.org | ||
| 8 | ;; Keywords: help | 7 | ;; Keywords: help |
| 9 | ;; Adapted-By: ESR, pot | 8 | ;; Adapted-By: ESR, pot |
| 10 | 9 | ||
diff --git a/lisp/menu-bar.el b/lisp/menu-bar.el index 4ff60ed9910..d12cdd731ab 100644 --- a/lisp/menu-bar.el +++ b/lisp/menu-bar.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 1993-1995, 2000-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1993-1995, 2000-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: Richard M. Stallman | 5 | ;; Author: Richard M. Stallman |
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Keywords: internal, mouse | 6 | ;; Keywords: internal, mouse |
| 8 | ;; Package: emacs | 7 | ;; Package: emacs |
| 9 | 8 | ||
diff --git a/lisp/misc.el b/lisp/misc.el index 4cf6cadf650..00807627007 100644 --- a/lisp/misc.el +++ b/lisp/misc.el | |||
| @@ -2,7 +2,6 @@ | |||
| 2 | 2 | ||
| 3 | ;; Copyright (C) 1989, 2001-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1989, 2001-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Maintainer: emacs-devel@gnu.org | ||
| 6 | ;; Keywords: convenience | 5 | ;; Keywords: convenience |
| 7 | ;; Package: emacs | 6 | ;; Package: emacs |
| 8 | 7 | ||
diff --git a/lisp/mouse.el b/lisp/mouse.el index 8428c1e0139..af53c05f573 100644 --- a/lisp/mouse.el +++ b/lisp/mouse.el | |||
| @@ -2,7 +2,6 @@ | |||
| 2 | 2 | ||
| 3 | ;; Copyright (C) 1993-1995, 1999-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1993-1995, 1999-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Maintainer: emacs-devel@gnu.org | ||
| 6 | ;; Keywords: hardware, mouse | 5 | ;; Keywords: hardware, mouse |
| 7 | ;; Package: emacs | 6 | ;; Package: emacs |
| 8 | 7 | ||
diff --git a/lisp/msb.el b/lisp/msb.el index 7a1a338fcc1..b626624fbc9 100644 --- a/lisp/msb.el +++ b/lisp/msb.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 1993-1995, 1997-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1993-1995, 1997-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: Lars Lindberg <lars.lindberg@home.se> | 5 | ;; Author: Lars Lindberg <lars.lindberg@home.se> |
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Created: 8 Oct 1993 | 6 | ;; Created: 8 Oct 1993 |
| 8 | ;; Lindberg's last update version: 3.34 | 7 | ;; Lindberg's last update version: 3.34 |
| 9 | ;; Keywords: mouse buffer menu | 8 | ;; Keywords: mouse buffer menu |
diff --git a/lisp/mwheel.el b/lisp/mwheel.el index 23f491db0fc..86788fc69a3 100644 --- a/lisp/mwheel.el +++ b/lisp/mwheel.el | |||
| @@ -1,7 +1,7 @@ | |||
| 1 | ;;; mwheel.el --- Wheel mouse support | 1 | ;;; mwheel.el --- Wheel mouse support |
| 2 | 2 | ||
| 3 | ;; Copyright (C) 1998, 2000-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1998, 2000-2019 Free Software Foundation, Inc. |
| 4 | ;; Maintainer: William M. Perry <wmperry@gnu.org> | 4 | ;; Maintainer: Bill Perry <wmperry@gnu.org> |
| 5 | ;; Keywords: mouse | 5 | ;; Keywords: mouse |
| 6 | ;; Package: emacs | 6 | ;; Package: emacs |
| 7 | 7 | ||
diff --git a/lisp/net/ange-ftp.el b/lisp/net/ange-ftp.el index b0a1e1799f5..81b654c9a9a 100644 --- a/lisp/net/ange-ftp.el +++ b/lisp/net/ange-ftp.el | |||
| @@ -4,7 +4,6 @@ | |||
| 4 | ;; Inc. | 4 | ;; Inc. |
| 5 | 5 | ||
| 6 | ;; Author: Andy Norman (ange@hplb.hpl.hp.com) | 6 | ;; Author: Andy Norman (ange@hplb.hpl.hp.com) |
| 7 | ;; Maintainer: emacs-devel@gnu.org | ||
| 8 | ;; Keywords: comm | 7 | ;; Keywords: comm |
| 9 | 8 | ||
| 10 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
diff --git a/lisp/net/browse-url.el b/lisp/net/browse-url.el index aa31e25fa91..0c63cbd5a45 100644 --- a/lisp/net/browse-url.el +++ b/lisp/net/browse-url.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 1995-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1995-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: Denis Howe <dbh@doc.ic.ac.uk> | 5 | ;; Author: Denis Howe <dbh@doc.ic.ac.uk> |
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Created: 03 Apr 1995 | 6 | ;; Created: 03 Apr 1995 |
| 8 | ;; Keywords: hypertext, hypermedia, mouse | 7 | ;; Keywords: hypertext, hypermedia, mouse |
| 9 | 8 | ||
diff --git a/lisp/net/goto-addr.el b/lisp/net/goto-addr.el index c25d7873918..d7fd0587475 100644 --- a/lisp/net/goto-addr.el +++ b/lisp/net/goto-addr.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 1995, 2000-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1995, 2000-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: Eric Ding <ericding@alum.mit.edu> | 5 | ;; Author: Eric Ding <ericding@alum.mit.edu> |
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Created: 15 Aug 1995 | 6 | ;; Created: 15 Aug 1995 |
| 8 | ;; Keywords: mh-e, www, mouse, mail | 7 | ;; Keywords: mh-e, www, mouse, mail |
| 9 | 8 | ||
diff --git a/lisp/net/ldap.el b/lisp/net/ldap.el index 75fc7d62211..2df473cf71a 100644 --- a/lisp/net/ldap.el +++ b/lisp/net/ldap.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 1998-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1998-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: Oscar Figueiredo <oscar@cpe.fr> | 5 | ;; Author: Oscar Figueiredo <oscar@cpe.fr> |
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Created: April 1998 | 6 | ;; Created: April 1998 |
| 8 | ;; Keywords: comm | 7 | ;; Keywords: comm |
| 9 | 8 | ||
diff --git a/lisp/net/pop3.el b/lisp/net/pop3.el index 599e2305f77..19114508254 100644 --- a/lisp/net/pop3.el +++ b/lisp/net/pop3.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 1996-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1996-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: Richard L. Pieri <ratinox@peorth.gweep.net> | 5 | ;; Author: Richard L. Pieri <ratinox@peorth.gweep.net> |
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Keywords: mail | 6 | ;; Keywords: mail |
| 8 | 7 | ||
| 9 | ;; This file is part of GNU Emacs. | 8 | ;; This file is part of GNU Emacs. |
diff --git a/lisp/net/socks.el b/lisp/net/socks.el index 6356707a1db..c9f74190957 100644 --- a/lisp/net/socks.el +++ b/lisp/net/socks.el | |||
| @@ -3,7 +3,7 @@ | |||
| 3 | ;; Copyright (C) 1996-2000, 2002, 2007-2019 Free Software Foundation, | 3 | ;; Copyright (C) 1996-2000, 2002, 2007-2019 Free Software Foundation, |
| 4 | ;; Inc. | 4 | ;; Inc. |
| 5 | 5 | ||
| 6 | ;; Author: William M. Perry <wmperry@gnu.org> | 6 | ;; Author: Bill Perry <wmperry@gnu.org> |
| 7 | ;; Dave Love <fx@gnu.org> | 7 | ;; Dave Love <fx@gnu.org> |
| 8 | ;; Keywords: comm, firewalls | 8 | ;; Keywords: comm, firewalls |
| 9 | 9 | ||
diff --git a/lisp/net/telnet.el b/lisp/net/telnet.el index cf3634f7d92..465927dfdde 100644 --- a/lisp/net/telnet.el +++ b/lisp/net/telnet.el | |||
| @@ -4,7 +4,6 @@ | |||
| 4 | ;; Foundation, Inc. | 4 | ;; Foundation, Inc. |
| 5 | 5 | ||
| 6 | ;; Author: William F. Schelter | 6 | ;; Author: William F. Schelter |
| 7 | ;; Maintainer: emacs-devel@gnu.org | ||
| 8 | ;; Keywords: unix, comm | 7 | ;; Keywords: unix, comm |
| 9 | 8 | ||
| 10 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
diff --git a/lisp/newcomment.el b/lisp/newcomment.el index ab2be080a33..ac706b949ba 100644 --- a/lisp/newcomment.el +++ b/lisp/newcomment.el | |||
| @@ -3,7 +3,7 @@ | |||
| 3 | ;; Copyright (C) 1999-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1999-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: code extracted from Emacs-20's simple.el | 5 | ;; Author: code extracted from Emacs-20's simple.el |
| 6 | ;; Maintainer: Stefan Monnier <monnier@iro.umontreal.ca> | 6 | ;; Maintainer: Stefan Monnier <monnier@gnu.org> |
| 7 | ;; Keywords: comment uncomment | 7 | ;; Keywords: comment uncomment |
| 8 | ;; Package: emacs | 8 | ;; Package: emacs |
| 9 | 9 | ||
diff --git a/lisp/novice.el b/lisp/novice.el index 3da4e25810a..1da4b71dc95 100644 --- a/lisp/novice.el +++ b/lisp/novice.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 1985-1987, 1994, 2001-2019 Free Software Foundation, | 3 | ;; Copyright (C) 1985-1987, 1994, 2001-2019 Free Software Foundation, |
| 4 | ;; Inc. | 4 | ;; Inc. |
| 5 | 5 | ||
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Keywords: internal, help | 6 | ;; Keywords: internal, help |
| 8 | 7 | ||
| 9 | ;; This file is part of GNU Emacs. | 8 | ;; This file is part of GNU Emacs. |
diff --git a/lisp/obarray.el b/lisp/obarray.el index c83d5d47241..fbab506cce3 100644 --- a/lisp/obarray.el +++ b/lisp/obarray.el | |||
| @@ -2,7 +2,6 @@ | |||
| 2 | 2 | ||
| 3 | ;; Copyright (C) 2015-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 2015-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Maintainer: emacs-devel@gnu.org | ||
| 6 | ;; Keywords: obarray functions | 5 | ;; Keywords: obarray functions |
| 7 | ;; Package: emacs | 6 | ;; Package: emacs |
| 8 | 7 | ||
diff --git a/lisp/obsolete/abbrevlist.el b/lisp/obsolete/abbrevlist.el index e2bf14f0dc1..dfd7b2b492f 100644 --- a/lisp/obsolete/abbrevlist.el +++ b/lisp/obsolete/abbrevlist.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 1986, 1992, 2001-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1986, 1992, 2001-2019 Free Software Foundation, Inc. |
| 4 | ;; Suggested by a previous version by Gildea. | 4 | ;; Suggested by a previous version by Gildea. |
| 5 | 5 | ||
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Keywords: abbrev | 6 | ;; Keywords: abbrev |
| 8 | ;; Package: emacs | 7 | ;; Package: emacs |
| 9 | ;; Obsolete-since: 24.1 | 8 | ;; Obsolete-since: 24.1 |
diff --git a/lisp/obsolete/bruce.el b/lisp/obsolete/bruce.el index fba54c1ae04..8044a0ef931 100644 --- a/lisp/obsolete/bruce.el +++ b/lisp/obsolete/bruce.el | |||
| @@ -4,7 +4,6 @@ | |||
| 4 | ;; Copyright (C) 1988, 1993, 1997, 2001-2019 Free Software Foundation, | 4 | ;; Copyright (C) 1988, 1993, 1997, 2001-2019 Free Software Foundation, |
| 5 | ;; Inc. | 5 | ;; Inc. |
| 6 | 6 | ||
| 7 | ;; Maintainer: emacs-devel@gnu.org | ||
| 8 | ;; Keywords: games | 7 | ;; Keywords: games |
| 9 | ;; Created: Jan 1997 | 8 | ;; Created: Jan 1997 |
| 10 | ;; Obsolete-since: 24.3 | 9 | ;; Obsolete-since: 24.3 |
diff --git a/lisp/obsolete/fast-lock.el b/lisp/obsolete/fast-lock.el index 5180d4527be..10af6ab95fd 100644 --- a/lisp/obsolete/fast-lock.el +++ b/lisp/obsolete/fast-lock.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 1994-1998, 2001-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1994-1998, 2001-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: Simon Marshall <simon@gnu.org> | 5 | ;; Author: Simon Marshall <simon@gnu.org> |
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Keywords: faces files | 6 | ;; Keywords: faces files |
| 8 | ;; Version: 3.14 | 7 | ;; Version: 3.14 |
| 9 | ;; Obsolete-since: 22.1 | 8 | ;; Obsolete-since: 22.1 |
diff --git a/lisp/obsolete/gs.el b/lisp/obsolete/gs.el index cfdc9dc67ce..24c9b67abd2 100644 --- a/lisp/obsolete/gs.el +++ b/lisp/obsolete/gs.el | |||
| @@ -2,7 +2,6 @@ | |||
| 2 | 2 | ||
| 3 | ;; Copyright (C) 1998, 2001-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1998, 2001-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Maintainer: emacs-devel@gnu.org | ||
| 6 | ;; Keywords: internal | 5 | ;; Keywords: internal |
| 7 | ;; Obsolete-since: 26.1 | 6 | ;; Obsolete-since: 26.1 |
| 8 | 7 | ||
diff --git a/lisp/obsolete/gulp.el b/lisp/obsolete/gulp.el index bdb3406a3d9..373ee35d8e0 100644 --- a/lisp/obsolete/gulp.el +++ b/lisp/obsolete/gulp.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 1996, 2001-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1996, 2001-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: Sam Shteingold <shteingd@math.ucla.edu> | 5 | ;; Author: Sam Shteingold <shteingd@math.ucla.edu> |
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Keywords: maint | 6 | ;; Keywords: maint |
| 8 | ;; Obsolete-since: 25.1 | 7 | ;; Obsolete-since: 25.1 |
| 9 | 8 | ||
diff --git a/lisp/obsolete/info-edit.el b/lisp/obsolete/info-edit.el index b64e84003fc..e520faf77bb 100644 --- a/lisp/obsolete/info-edit.el +++ b/lisp/obsolete/info-edit.el | |||
| @@ -2,7 +2,6 @@ | |||
| 2 | 2 | ||
| 3 | ;; Copyright (C) 1985-1986, 1992-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1985-1986, 1992-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Maintainer: emacs-devel@gnu.org | ||
| 6 | ;; Keywords: help | 5 | ;; Keywords: help |
| 7 | ;; Obsolete-since: 24.4 | 6 | ;; Obsolete-since: 24.4 |
| 8 | 7 | ||
diff --git a/lisp/obsolete/lazy-lock.el b/lisp/obsolete/lazy-lock.el index 44f8528b201..51679280023 100644 --- a/lisp/obsolete/lazy-lock.el +++ b/lisp/obsolete/lazy-lock.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 1994-1998, 2001-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1994-1998, 2001-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: Simon Marshall <simon@gnu.org> | 5 | ;; Author: Simon Marshall <simon@gnu.org> |
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Keywords: faces files | 6 | ;; Keywords: faces files |
| 8 | ;; Version: 2.11 | 7 | ;; Version: 2.11 |
| 9 | ;; Obsolete-since: 22.1 | 8 | ;; Obsolete-since: 22.1 |
diff --git a/lisp/obsolete/ledit.el b/lisp/obsolete/ledit.el index 6383a4266d1..91efa29320f 100644 --- a/lisp/obsolete/ledit.el +++ b/lisp/obsolete/ledit.el | |||
| @@ -2,7 +2,6 @@ | |||
| 2 | 2 | ||
| 3 | ;; Copyright (C) 1985, 2001-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1985, 2001-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Maintainer: emacs-devel@gnu.org | ||
| 6 | ;; Keywords: languages | 5 | ;; Keywords: languages |
| 7 | ;; Obsolete-since: 24.3 | 6 | ;; Obsolete-since: 24.3 |
| 8 | 7 | ||
diff --git a/lisp/obsolete/levents.el b/lisp/obsolete/levents.el index 714b3fbb761..f2b081d672d 100644 --- a/lisp/obsolete/levents.el +++ b/lisp/obsolete/levents.el | |||
| @@ -2,7 +2,6 @@ | |||
| 2 | 2 | ||
| 3 | ;; Copyright (C) 1993, 2001-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1993, 2001-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Maintainer: emacs-devel@gnu.org | ||
| 6 | ;; Keywords: emulations | 5 | ;; Keywords: emulations |
| 7 | ;; Obsolete-since: 23.2 | 6 | ;; Obsolete-since: 23.2 |
| 8 | 7 | ||
diff --git a/lisp/obsolete/lucid.el b/lisp/obsolete/lucid.el index d1b702ed556..9d0c5daf5ef 100644 --- a/lisp/obsolete/lucid.el +++ b/lisp/obsolete/lucid.el | |||
| @@ -2,7 +2,6 @@ | |||
| 2 | 2 | ||
| 3 | ;; Copyright (C) 1993, 1995, 2001-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1993, 1995, 2001-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Maintainer: emacs-devel@gnu.org | ||
| 6 | ;; Keywords: emulations | 5 | ;; Keywords: emulations |
| 7 | ;; Obsolete-since: 23.2 | 6 | ;; Obsolete-since: 23.2 |
| 8 | 7 | ||
diff --git a/lisp/obsolete/mailpost.el b/lisp/obsolete/mailpost.el index 2f74faf1d6c..33cc43ccbe2 100644 --- a/lisp/obsolete/mailpost.el +++ b/lisp/obsolete/mailpost.el | |||
| @@ -6,7 +6,6 @@ | |||
| 6 | ;; This file is part of GNU Emacs. | 6 | ;; This file is part of GNU Emacs. |
| 7 | 7 | ||
| 8 | ;; Author: Gary Delp <delp@huey.Udel.Edu> | 8 | ;; Author: Gary Delp <delp@huey.Udel.Edu> |
| 9 | ;; Maintainer: emacs-devel@gnu.org | ||
| 10 | ;; Created: 13 Jan 1986 | 9 | ;; Created: 13 Jan 1986 |
| 11 | ;; Keywords: mail | 10 | ;; Keywords: mail |
| 12 | ;; Obsolete-since: 24.3 | 11 | ;; Obsolete-since: 24.3 |
diff --git a/lisp/obsolete/meese.el b/lisp/obsolete/meese.el index 81739dfa6cb..190db94f4b9 100644 --- a/lisp/obsolete/meese.el +++ b/lisp/obsolete/meese.el | |||
| @@ -5,7 +5,6 @@ | |||
| 5 | 5 | ||
| 6 | ;; This file is part of GNU Emacs. | 6 | ;; This file is part of GNU Emacs. |
| 7 | 7 | ||
| 8 | ;; Maintainer: emacs-devel@gnu.org | ||
| 9 | ;; Keywords: games | 8 | ;; Keywords: games |
| 10 | ;; Obsolete-since: 24.4 | 9 | ;; Obsolete-since: 24.4 |
| 11 | 10 | ||
diff --git a/lisp/obsolete/pc-mode.el b/lisp/obsolete/pc-mode.el index 6d1a456d61a..4908b51259c 100644 --- a/lisp/obsolete/pc-mode.el +++ b/lisp/obsolete/pc-mode.el | |||
| @@ -2,7 +2,6 @@ | |||
| 2 | 2 | ||
| 3 | ;; Copyright (C) 1995, 2001-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1995, 2001-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Maintainer: emacs-devel@gnu.org | ||
| 6 | ;; Keywords: emulations | 5 | ;; Keywords: emulations |
| 7 | ;; Obsolete-since: 24.1 | 6 | ;; Obsolete-since: 24.1 |
| 8 | 7 | ||
diff --git a/lisp/obsolete/rcompile.el b/lisp/obsolete/rcompile.el index dfa80097b35..53537a09066 100644 --- a/lisp/obsolete/rcompile.el +++ b/lisp/obsolete/rcompile.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 1993-1994, 2001-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1993-1994, 2001-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: Alon Albert <alon@milcse.rtsg.mot.com> | 5 | ;; Author: Alon Albert <alon@milcse.rtsg.mot.com> |
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Created: 1993 Oct 6 | 6 | ;; Created: 1993 Oct 6 |
| 8 | ;; Keywords: tools, processes | 7 | ;; Keywords: tools, processes |
| 9 | ;; Obsolete-since: 24.4 | 8 | ;; Obsolete-since: 24.4 |
diff --git a/lisp/obsolete/sregex.el b/lisp/obsolete/sregex.el index 884cd3e4e45..ba36f2dcdad 100644 --- a/lisp/obsolete/sregex.el +++ b/lisp/obsolete/sregex.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 1997-1998, 2000-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1997-1998, 2000-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: Bob Glickstein <bobg+sregex@zanshin.com> | 5 | ;; Author: Bob Glickstein <bobg+sregex@zanshin.com> |
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Keywords: extensions | 6 | ;; Keywords: extensions |
| 8 | ;; Obsolete-since: 24.1 | 7 | ;; Obsolete-since: 24.1 |
| 9 | 8 | ||
diff --git a/lisp/obsolete/sup-mouse.el b/lisp/obsolete/sup-mouse.el index 6bd42789253..752ebf59d81 100644 --- a/lisp/obsolete/sup-mouse.el +++ b/lisp/obsolete/sup-mouse.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 1985-1986, 2001-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1985-1986, 2001-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: Wolfgang Rupprecht | 5 | ;; Author: Wolfgang Rupprecht |
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Created: 21 Nov 1986 | 6 | ;; Created: 21 Nov 1986 |
| 8 | ;; Keywords: hardware | 7 | ;; Keywords: hardware |
| 9 | ;; Obsolete-since: 24.4 | 8 | ;; Obsolete-since: 24.4 |
diff --git a/lisp/obsolete/terminal.el b/lisp/obsolete/terminal.el index ce6f2309fd3..d0631b32f04 100644 --- a/lisp/obsolete/terminal.el +++ b/lisp/obsolete/terminal.el | |||
| @@ -4,7 +4,6 @@ | |||
| 4 | ;; Foundation, Inc. | 4 | ;; Foundation, Inc. |
| 5 | 5 | ||
| 6 | ;; Author: Richard Mlynarik <mly@eddie.mit.edu> | 6 | ;; Author: Richard Mlynarik <mly@eddie.mit.edu> |
| 7 | ;; Maintainer: emacs-devel@gnu.org | ||
| 8 | ;; Obsolete-since: 24.4 | 7 | ;; Obsolete-since: 24.4 |
| 9 | ;; Keywords: comm, terminals | 8 | ;; Keywords: comm, terminals |
| 10 | 9 | ||
diff --git a/lisp/obsolete/yow.el b/lisp/obsolete/yow.el index 5cbb2ef21e3..eddb3f90296 100644 --- a/lisp/obsolete/yow.el +++ b/lisp/obsolete/yow.el | |||
| @@ -2,7 +2,6 @@ | |||
| 2 | 2 | ||
| 3 | ;; Copyright (C) 1993-1995, 2000-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1993-1995, 2000-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Maintainer: emacs-devel@gnu.org | ||
| 6 | ;; Author: Richard Mlynarik | 5 | ;; Author: Richard Mlynarik |
| 7 | ;; Keywords: games | 6 | ;; Keywords: games |
| 8 | ;; Obsolete-since: 24.4 | 7 | ;; Obsolete-since: 24.4 |
diff --git a/lisp/org/org-id.el b/lisp/org/org-id.el index 6a9d729c0a4..44cc7b2f14d 100644 --- a/lisp/org/org-id.el +++ b/lisp/org/org-id.el | |||
| @@ -83,8 +83,7 @@ | |||
| 83 | 83 | ||
| 84 | (defcustom org-id-link-to-org-use-id nil | 84 | (defcustom org-id-link-to-org-use-id nil |
| 85 | "Non-nil means storing a link to an Org file will use entry IDs. | 85 | "Non-nil means storing a link to an Org file will use entry IDs. |
| 86 | \\<org-mode-map>\ | 86 | \\<org-mode-map> |
| 87 | |||
| 88 | The variable can have the following values: | 87 | The variable can have the following values: |
| 89 | 88 | ||
| 90 | t Create an ID if needed to make a link to the current entry. | 89 | t Create an ID if needed to make a link to the current entry. |
diff --git a/lisp/org/org.el b/lisp/org/org.el index ce6dd24a83b..119d0a2566a 100644 --- a/lisp/org/org.el +++ b/lisp/org/org.el | |||
| @@ -863,8 +863,7 @@ depends on, if any." | |||
| 863 | 863 | ||
| 864 | (defcustom org-support-shift-select nil | 864 | (defcustom org-support-shift-select nil |
| 865 | "Non-nil means make shift-cursor commands select text when possible. | 865 | "Non-nil means make shift-cursor commands select text when possible. |
| 866 | \\<org-mode-map>\ | 866 | \\<org-mode-map> |
| 867 | |||
| 868 | In Emacs 23, when `shift-select-mode' is on, shifted cursor keys | 867 | In Emacs 23, when `shift-select-mode' is on, shifted cursor keys |
| 869 | start selecting a region, or enlarge regions started in this way. | 868 | start selecting a region, or enlarge regions started in this way. |
| 870 | In Org mode, in special contexts, these same keys are used for | 869 | In Org mode, in special contexts, these same keys are used for |
| @@ -2259,8 +2258,7 @@ See `org-file-apps'.") | |||
| 2259 | ("\\.x?html?\\'" . default) | 2258 | ("\\.x?html?\\'" . default) |
| 2260 | ("\\.pdf\\'" . default)) | 2259 | ("\\.pdf\\'" . default)) |
| 2261 | "External applications for opening `file:path' items in a document. | 2260 | "External applications for opening `file:path' items in a document. |
| 2262 | \\<org-mode-map>\ | 2261 | \\<org-mode-map> |
| 2263 | |||
| 2264 | Org mode uses system defaults for different file types, but | 2262 | Org mode uses system defaults for different file types, but |
| 2265 | you can use this variable to set the application for a given file | 2263 | you can use this variable to set the application for a given file |
| 2266 | extension. The entries in this list are cons cells where the car identifies | 2264 | extension. The entries in this list are cons cells where the car identifies |
diff --git a/lisp/org/ox-publish.el b/lisp/org/ox-publish.el index 74312bc20f8..9126647e7c3 100644 --- a/lisp/org/ox-publish.el +++ b/lisp/org/ox-publish.el | |||
| @@ -2,7 +2,7 @@ | |||
| 2 | ;; Copyright (C) 2006-2019 Free Software Foundation, Inc. | 2 | ;; Copyright (C) 2006-2019 Free Software Foundation, Inc. |
| 3 | 3 | ||
| 4 | ;; Author: David O'Toole <dto@gnu.org> | 4 | ;; Author: David O'Toole <dto@gnu.org> |
| 5 | ;; Maintainer: Carsten Dominik <carsten DOT dominik AT gmail DOT com> | 5 | ;; Maintainer: Carsten Dominik <carsten at orgmode dot org> |
| 6 | ;; Keywords: hypermedia, outlines, wp | 6 | ;; Keywords: hypermedia, outlines, wp |
| 7 | 7 | ||
| 8 | ;; This file is part of GNU Emacs. | 8 | ;; This file is part of GNU Emacs. |
diff --git a/lisp/outline.el b/lisp/outline.el index 74df77b8be7..7783d37e0a6 100644 --- a/lisp/outline.el +++ b/lisp/outline.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 1986, 1993-1995, 1997, 2000-2019 Free Software | 3 | ;; Copyright (C) 1986, 1993-1995, 1997, 2000-2019 Free Software |
| 4 | ;; Foundation, Inc. | 4 | ;; Foundation, Inc. |
| 5 | 5 | ||
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Keywords: outlines | 6 | ;; Keywords: outlines |
| 8 | 7 | ||
| 9 | ;; This file is part of GNU Emacs. | 8 | ;; This file is part of GNU Emacs. |
diff --git a/lisp/paren.el b/lisp/paren.el index 13908d46eef..d00e7d9a812 100644 --- a/lisp/paren.el +++ b/lisp/paren.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 1993, 1996, 2001-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1993, 1996, 2001-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: rms@gnu.org | 5 | ;; Author: rms@gnu.org |
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Keywords: languages, faces | 6 | ;; Keywords: languages, faces |
| 8 | 7 | ||
| 9 | ;; This file is part of GNU Emacs. | 8 | ;; This file is part of GNU Emacs. |
diff --git a/lisp/play/cookie1.el b/lisp/play/cookie1.el index e461b37e362..fb310faf4c6 100644 --- a/lisp/play/cookie1.el +++ b/lisp/play/cookie1.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 1993, 2001-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1993, 2001-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: Eric S. Raymond <esr@snark.thyrsus.com> | 5 | ;; Author: Eric S. Raymond <esr@snark.thyrsus.com> |
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Keywords: games, extensions | 6 | ;; Keywords: games, extensions |
| 8 | ;; Created: Mon Mar 22 17:06:26 1993 | 7 | ;; Created: Mon Mar 22 17:06:26 1993 |
| 9 | 8 | ||
diff --git a/lisp/play/dissociate.el b/lisp/play/dissociate.el index a5880c08847..fc76f2b724d 100644 --- a/lisp/play/dissociate.el +++ b/lisp/play/dissociate.el | |||
| @@ -2,7 +2,6 @@ | |||
| 2 | 2 | ||
| 3 | ;; Copyright (C) 1985, 2001-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1985, 2001-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Maintainer: emacs-devel@gnu.org | ||
| 6 | ;; Keywords: games | 5 | ;; Keywords: games |
| 7 | 6 | ||
| 8 | ;; This file is part of GNU Emacs. | 7 | ;; This file is part of GNU Emacs. |
diff --git a/lisp/play/doctor.el b/lisp/play/doctor.el index b1ab6703a48..e9c78f5e5c4 100644 --- a/lisp/play/doctor.el +++ b/lisp/play/doctor.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 1985, 1987, 1994, 1996, 2000-2019 Free Software | 3 | ;; Copyright (C) 1985, 1987, 1994, 1996, 2000-2019 Free Software |
| 4 | ;; Foundation, Inc. | 4 | ;; Foundation, Inc. |
| 5 | 5 | ||
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Keywords: games | 6 | ;; Keywords: games |
| 8 | 7 | ||
| 9 | ;; This file is part of GNU Emacs. | 8 | ;; This file is part of GNU Emacs. |
diff --git a/lisp/play/gomoku.el b/lisp/play/gomoku.el index 6d5553b3202..562e5c0ad23 100644 --- a/lisp/play/gomoku.el +++ b/lisp/play/gomoku.el | |||
| @@ -4,7 +4,6 @@ | |||
| 4 | ;; Inc. | 4 | ;; Inc. |
| 5 | 5 | ||
| 6 | ;; Author: Philippe Schnoebelen <phs@lsv.ens-cachan.fr> | 6 | ;; Author: Philippe Schnoebelen <phs@lsv.ens-cachan.fr> |
| 7 | ;; Maintainer: emacs-devel@gnu.org | ||
| 8 | ;; Adapted-By: ESR, Daniel Pfeiffer <occitan@esperanto.org> | 7 | ;; Adapted-By: ESR, Daniel Pfeiffer <occitan@esperanto.org> |
| 9 | ;; Keywords: games | 8 | ;; Keywords: games |
| 10 | 9 | ||
diff --git a/lisp/play/hanoi.el b/lisp/play/hanoi.el index d762290f0da..1f2e2c0098a 100644 --- a/lisp/play/hanoi.el +++ b/lisp/play/hanoi.el | |||
| @@ -1,7 +1,6 @@ | |||
| 1 | ;;; hanoi.el --- towers of hanoi in Emacs | 1 | ;;; hanoi.el --- towers of hanoi in Emacs |
| 2 | 2 | ||
| 3 | ;; Author: Damon Anton Permezel | 3 | ;; Author: Damon Anton Permezel |
| 4 | ;; Maintainer: emacs-devel@gnu.org | ||
| 5 | ;; Keywords: games | 4 | ;; Keywords: games |
| 6 | 5 | ||
| 7 | ; Author (a) 1985, Damon Anton Permezel | 6 | ; Author (a) 1985, Damon Anton Permezel |
diff --git a/lisp/play/life.el b/lisp/play/life.el index 6cce1e5643d..7d9f1475f38 100644 --- a/lisp/play/life.el +++ b/lisp/play/life.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 1988, 2001-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1988, 2001-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: Kyle Jones <kyleuunet.uu.net> | 5 | ;; Author: Kyle Jones <kyleuunet.uu.net> |
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Keywords: games | 6 | ;; Keywords: games |
| 8 | 7 | ||
| 9 | ;; This file is part of GNU Emacs. | 8 | ;; This file is part of GNU Emacs. |
diff --git a/lisp/play/spook.el b/lisp/play/spook.el index d884c0a2559..c1394a31d7a 100644 --- a/lisp/play/spook.el +++ b/lisp/play/spook.el | |||
| @@ -2,7 +2,6 @@ | |||
| 2 | 2 | ||
| 3 | ;; Copyright (C) 1988, 1993, 2001-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1988, 1993, 2001-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Maintainer: emacs-devel@gnu.org | ||
| 6 | ;; Keywords: games | 5 | ;; Keywords: games |
| 7 | ;; Created: May 1987 | 6 | ;; Created: May 1987 |
| 8 | 7 | ||
diff --git a/lisp/play/studly.el b/lisp/play/studly.el index ff1bf03e118..6d54f6d08a8 100644 --- a/lisp/play/studly.el +++ b/lisp/play/studly.el | |||
| @@ -5,7 +5,6 @@ | |||
| 5 | 5 | ||
| 6 | ;; This file is part of GNU Emacs. | 6 | ;; This file is part of GNU Emacs. |
| 7 | 7 | ||
| 8 | ;; Maintainer: emacs-devel@gnu.org | ||
| 9 | ;; Keywords: games | 8 | ;; Keywords: games |
| 10 | 9 | ||
| 11 | ;;; Commentary: | 10 | ;;; Commentary: |
diff --git a/lisp/progmodes/ada-mode.el b/lisp/progmodes/ada-mode.el index e01f1e8ecbe..50f7b4c0093 100644 --- a/lisp/progmodes/ada-mode.el +++ b/lisp/progmodes/ada-mode.el | |||
| @@ -5,7 +5,7 @@ | |||
| 5 | ;; Author: Rolf Ebert <ebert@inf.enst.fr> | 5 | ;; Author: Rolf Ebert <ebert@inf.enst.fr> |
| 6 | ;; Markus Heritsch <Markus.Heritsch@studbox.uni-stuttgart.de> | 6 | ;; Markus Heritsch <Markus.Heritsch@studbox.uni-stuttgart.de> |
| 7 | ;; Emmanuel Briot <briot@gnat.com> | 7 | ;; Emmanuel Briot <briot@gnat.com> |
| 8 | ;; Maintainer: Stephen Leake <stephen_leake@member.fsf.org> | 8 | ;; Maintainer: Stephen Leake <stephen_leake@stephe-leake.org> |
| 9 | ;; Keywords: languages ada | 9 | ;; Keywords: languages ada |
| 10 | 10 | ||
| 11 | ;; This file is part of GNU Emacs. | 11 | ;; This file is part of GNU Emacs. |
diff --git a/lisp/progmodes/asm-mode.el b/lisp/progmodes/asm-mode.el index c56d16e305e..491b780bd02 100644 --- a/lisp/progmodes/asm-mode.el +++ b/lisp/progmodes/asm-mode.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 1991, 2001-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1991, 2001-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: Eric S. Raymond <esr@snark.thyrsus.com> | 5 | ;; Author: Eric S. Raymond <esr@snark.thyrsus.com> |
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Keywords: tools, languages | 6 | ;; Keywords: tools, languages |
| 8 | 7 | ||
| 9 | ;; This file is part of GNU Emacs. | 8 | ;; This file is part of GNU Emacs. |
diff --git a/lisp/progmodes/cc-align.el b/lisp/progmodes/cc-align.el index 009f58ea586..74548f643a7 100644 --- a/lisp/progmodes/cc-align.el +++ b/lisp/progmodes/cc-align.el | |||
| @@ -90,26 +90,26 @@ Works with: topmost-intro-cont." | |||
| 90 | 90 | ||
| 91 | (defun c-lineup-gnu-DEFUN-intro-cont (langelem) | 91 | (defun c-lineup-gnu-DEFUN-intro-cont (langelem) |
| 92 | "Line up the continuation lines of a DEFUN macro in the Emacs C source. | 92 | "Line up the continuation lines of a DEFUN macro in the Emacs C source. |
| 93 | These lines are indented as though they were `knr-argdecl-intro' lines. | 93 | These lines are indented `c-basic-offset' columns, usually from column 0. |
| 94 | Return nil when we're not in such a construct. | 94 | Return nil when we're not in such a construct. |
| 95 | 95 | ||
| 96 | This function is for historical compatibility with how previous CC Modes (5.28 | 96 | This function was formally for use in DEFUNs, which used to have knr |
| 97 | and earlier) indented such lines. | 97 | argument lists. Now (2019-05) it just indents the argument list of the |
| 98 | DEFUN's function, which would otherwise go to column 0. | ||
| 98 | 99 | ||
| 99 | Here is an example: | 100 | Here is an example: |
| 100 | 101 | ||
| 101 | DEFUN (\"forward-char\", Fforward_char, Sforward_char, 0, 1, \"p\", | 102 | DEFUN (\"forward-char\", Fforward_char, Sforward_char, 0, 1, \"p\", |
| 102 | doc: /* Move point right N characters (left if N is negative). | 103 | doc: /* Move point right N characters (left if N is negative). |
| 103 | On reaching end of buffer, stop and signal error. */) | 104 | On reaching end of buffer, stop and signal error. */) |
| 104 | (n) <- c-lineup-gnu-DEFUN-into-cont | 105 | (Lisp_Object n) <- c-lineup-gnu-DEFUN-into-cont |
| 105 | Lisp_Object n; <- c-lineup-gnu-DEFUN-into-cont | ||
| 106 | 106 | ||
| 107 | Works with: topmost-intro-cont." | 107 | Works with: topmost-intro-cont." |
| 108 | (save-excursion | 108 | (save-excursion |
| 109 | (let (case-fold-search) | 109 | (let (case-fold-search) |
| 110 | (goto-char (c-langelem-pos langelem)) | 110 | (goto-char (c-langelem-pos langelem)) |
| 111 | (if (looking-at "\\<DEFUN\\>") | 111 | (if (looking-at "\\<DEFUN\\>") |
| 112 | (c-calc-offset '(knr-argdecl-intro)))))) | 112 | c-basic-offset)))) |
| 113 | 113 | ||
| 114 | (defun c-block-in-arglist-dwim (arglist-start) | 114 | (defun c-block-in-arglist-dwim (arglist-start) |
| 115 | ;; This function implements the DWIM to avoid far indentation of | 115 | ;; This function implements the DWIM to avoid far indentation of |
diff --git a/lisp/progmodes/cc-awk.el b/lisp/progmodes/cc-awk.el index 1a67a95927b..ff4ea1a0901 100644 --- a/lisp/progmodes/cc-awk.el +++ b/lisp/progmodes/cc-awk.el | |||
| @@ -4,7 +4,6 @@ | |||
| 4 | ;; Inc. | 4 | ;; Inc. |
| 5 | 5 | ||
| 6 | ;; Author: Alan Mackenzie <acm@muc.de> (originally based on awk-mode.el) | 6 | ;; Author: Alan Mackenzie <acm@muc.de> (originally based on awk-mode.el) |
| 7 | ;; Maintainer: emacs-devel@gnu.org | ||
| 8 | ;; Keywords: AWK, cc-mode, unix, languages | 7 | ;; Keywords: AWK, cc-mode, unix, languages |
| 9 | ;; Package: cc-mode | 8 | ;; Package: cc-mode |
| 10 | 9 | ||
diff --git a/lisp/progmodes/cc-engine.el b/lisp/progmodes/cc-engine.el index c0f044ddfeb..c0433672f98 100644 --- a/lisp/progmodes/cc-engine.el +++ b/lisp/progmodes/cc-engine.el | |||
| @@ -7245,78 +7245,33 @@ comment at the start of cc-engine.el for more info." | |||
| 7245 | (c-depropertize-raw-strings-in-region found-beg (point)))))) | 7245 | (c-depropertize-raw-strings-in-region found-beg (point)))))) |
| 7246 | 7246 | ||
| 7247 | (defun c-maybe-re-mark-raw-string () | 7247 | (defun c-maybe-re-mark-raw-string () |
| 7248 | ;; When this function is called, point is immediately after a ". If this " | 7248 | ;; When this function is called, point is immediately after a " which opens |
| 7249 | ;; is the characteristic " of of a raw string delimiter, apply the pertinent | 7249 | ;; a string. If this " is the characteristic " of of a raw string |
| 7250 | ;; `syntax-table' text properties to the entire raw string (when properly | 7250 | ;; opener, apply the pertinent `syntax-table' text properties to the |
| 7251 | ;; terminated) or just the delimiter (otherwise). | 7251 | ;; entire raw string (when properly terminated) or just the delimiter |
| 7252 | ;; (otherwise). In either of these cases, return t, otherwise return nil. | ||
| 7252 | ;; | 7253 | ;; |
| 7253 | ;; If the " is in any way part of a raw string, return non-nil. Otherwise | ||
| 7254 | ;; return nil. | ||
| 7255 | (let ((here (point)) | 7254 | (let ((here (point)) |
| 7256 | in-macro macro-end id Rquote found) | 7255 | in-macro macro-end id Rquote found) |
| 7257 | (cond | 7256 | (when |
| 7258 | ((and | 7257 | (and |
| 7259 | (eq (char-before (1- (point))) ?R) | 7258 | (eq (char-before (1- (point))) ?R) |
| 7260 | (looking-at "\\([^ ()\\\n\r\t]\\{0,16\\}\\)(")) | 7259 | (looking-at "\\([^ ()\\\n\r\t]\\{0,16\\}\\)(")) |
| 7261 | (save-excursion | 7260 | (save-excursion |
| 7262 | (setq in-macro (c-beginning-of-macro)) | 7261 | (setq in-macro (c-beginning-of-macro)) |
| 7263 | (setq macro-end (when in-macro | 7262 | (setq macro-end (when in-macro |
| 7264 | (c-end-of-macro) | 7263 | (c-end-of-macro) |
| 7265 | (point) ;; (min (1+ (point)) (point-max)) | 7264 | (point) ;; (min (1+ (point)) (point-max)) |
| 7266 | ))) | 7265 | ))) |
| 7267 | (if (not | 7266 | (when |
| 7267 | (not | ||
| 7268 | (c-propertize-raw-string-opener | 7268 | (c-propertize-raw-string-opener |
| 7269 | (match-string-no-properties 1) ; id | 7269 | (match-string-no-properties 1) ; id |
| 7270 | (1- (point)) ; open quote | 7270 | (1- (point)) ; open quote |
| 7271 | (match-end 1) ; open paren | 7271 | (match-end 1) ; open paren |
| 7272 | macro-end)) ; bound (end of macro) or nil. | 7272 | macro-end)) ; bound (end of macro) or nil. |
| 7273 | (goto-char (or macro-end (point-max)))) | 7273 | (goto-char (or macro-end (point-max)))) |
| 7274 | t) | 7274 | t))) |
| 7275 | ((save-excursion | ||
| 7276 | (and | ||
| 7277 | (search-backward-regexp ")\\([^ ()\\\n\r\t]\\{0,16\\}\\)\"\\=" | ||
| 7278 | (c-point 'bol) t) | ||
| 7279 | (setq id (match-string-no-properties 1)) | ||
| 7280 | (let* ((quoted-id (regexp-quote id)) | ||
| 7281 | (quoted-id-depth (regexp-opt-depth quoted-id))) | ||
| 7282 | (while | ||
| 7283 | (and | ||
| 7284 | ;; Search back for an opening delimiter with identifier `id'. | ||
| 7285 | ;; A closing delimiter with `id' "blocks" our search. | ||
| 7286 | (search-backward-regexp ; This could be slow. | ||
| 7287 | (concat "\\(R\"" quoted-id "(\\)" | ||
| 7288 | "\\|" | ||
| 7289 | "\\()" quoted-id "\"\\)") | ||
| 7290 | nil t) | ||
| 7291 | (setq found t) | ||
| 7292 | (if (eq (c-in-literal) 'string) | ||
| 7293 | (match-beginning 1) | ||
| 7294 | (match-beginning (+ 2 quoted-id-depth))))) | ||
| 7295 | (and found | ||
| 7296 | (null (c-in-literal)) | ||
| 7297 | (match-beginning 1))) | ||
| 7298 | (setq Rquote (point)))) | ||
| 7299 | (save-excursion | ||
| 7300 | (goto-char Rquote) | ||
| 7301 | (setq in-macro (c-beginning-of-macro)) | ||
| 7302 | (setq macro-end (when in-macro | ||
| 7303 | (c-end-of-macro) | ||
| 7304 | (point)))) | ||
| 7305 | (if (or (not in-macro) | ||
| 7306 | (<= here macro-end)) | ||
| 7307 | (progn | ||
| 7308 | (c-propertize-raw-string-opener | ||
| 7309 | id (1+ (point)) (match-end 1) macro-end) | ||
| 7310 | (goto-char here) | ||
| 7311 | t) | ||
| 7312 | (goto-char here) | ||
| 7313 | nil)) | ||
| 7314 | |||
| 7315 | (t | ||
| 7316 | ;; If the " is in another part of a raw string (whether as part of the | ||
| 7317 | ;; identifier, or in the string itself) the `syntax-table' text | ||
| 7318 | ;; properties on the raw string will be current. So, we can use... | ||
| 7319 | (c-raw-string-pos))))) | ||
| 7320 | 7275 | ||
| 7321 | 7276 | ||
| 7322 | ;; Handling of small scale constructs like types and names. | 7277 | ;; Handling of small scale constructs like types and names. |
diff --git a/lisp/progmodes/compile.el b/lisp/progmodes/compile.el index 1a0d9bdbb70..3930f09392a 100644 --- a/lisp/progmodes/compile.el +++ b/lisp/progmodes/compile.el | |||
| @@ -5,7 +5,6 @@ | |||
| 5 | 5 | ||
| 6 | ;; Authors: Roland McGrath <roland@gnu.org>, | 6 | ;; Authors: Roland McGrath <roland@gnu.org>, |
| 7 | ;; Daniel Pfeiffer <occitan@esperanto.org> | 7 | ;; Daniel Pfeiffer <occitan@esperanto.org> |
| 8 | ;; Maintainer: emacs-devel@gnu.org | ||
| 9 | ;; Keywords: tools, processes | 8 | ;; Keywords: tools, processes |
| 10 | 9 | ||
| 11 | ;; This file is part of GNU Emacs. | 10 | ;; This file is part of GNU Emacs. |
diff --git a/lisp/progmodes/cperl-mode.el b/lisp/progmodes/cperl-mode.el index ba007d67c0d..fd3eec76090 100644 --- a/lisp/progmodes/cperl-mode.el +++ b/lisp/progmodes/cperl-mode.el | |||
| @@ -5,7 +5,6 @@ | |||
| 5 | ;; Author: Ilya Zakharevich | 5 | ;; Author: Ilya Zakharevich |
| 6 | ;; Bob Olson | 6 | ;; Bob Olson |
| 7 | ;; Jonathan Rockway <jon@jrock.us> | 7 | ;; Jonathan Rockway <jon@jrock.us> |
| 8 | ;; Maintainer: emacs-devel@gnu.org | ||
| 9 | ;; Keywords: languages, Perl | 8 | ;; Keywords: languages, Perl |
| 10 | 9 | ||
| 11 | ;; This file is part of GNU Emacs. | 10 | ;; This file is part of GNU Emacs. |
diff --git a/lisp/progmodes/dcl-mode.el b/lisp/progmodes/dcl-mode.el index d5803c77bb4..757f0f26072 100644 --- a/lisp/progmodes/dcl-mode.el +++ b/lisp/progmodes/dcl-mode.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 1997, 2001-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1997, 2001-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: Odd Gripenstam <gripenstamol@decus.se> | 5 | ;; Author: Odd Gripenstam <gripenstamol@decus.se> |
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Keywords: DCL editing major-mode languages | 6 | ;; Keywords: DCL editing major-mode languages |
| 8 | 7 | ||
| 9 | ;; This file is part of GNU Emacs. | 8 | ;; This file is part of GNU Emacs. |
diff --git a/lisp/progmodes/ebrowse.el b/lisp/progmodes/ebrowse.el index 3faec4959bc..0f44487d436 100644 --- a/lisp/progmodes/ebrowse.el +++ b/lisp/progmodes/ebrowse.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 1992-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1992-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: Gerd Moellmann <gerd@gnu.org> | 5 | ;; Author: Gerd Moellmann <gerd@gnu.org> |
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Keywords: C++ tags tools | 6 | ;; Keywords: C++ tags tools |
| 8 | 7 | ||
| 9 | ;; This file is part of GNU Emacs. | 8 | ;; This file is part of GNU Emacs. |
diff --git a/lisp/progmodes/elisp-mode.el b/lisp/progmodes/elisp-mode.el index cb1b17b4474..d62c1316ee3 100644 --- a/lisp/progmodes/elisp-mode.el +++ b/lisp/progmodes/elisp-mode.el | |||
| @@ -2,7 +2,6 @@ | |||
| 2 | 2 | ||
| 3 | ;; Copyright (C) 1985-1986, 1999-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1985-1986, 1999-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Maintainer: emacs-devel@gnu.org | ||
| 6 | ;; Keywords: lisp, languages | 5 | ;; Keywords: lisp, languages |
| 7 | ;; Package: emacs | 6 | ;; Package: emacs |
| 8 | 7 | ||
diff --git a/lisp/progmodes/etags.el b/lisp/progmodes/etags.el index 910c320ab8f..54ca135f277 100644 --- a/lisp/progmodes/etags.el +++ b/lisp/progmodes/etags.el | |||
| @@ -4,7 +4,6 @@ | |||
| 4 | ;; Software Foundation, Inc. | 4 | ;; Software Foundation, Inc. |
| 5 | 5 | ||
| 6 | ;; Author: Roland McGrath <roland@gnu.org> | 6 | ;; Author: Roland McGrath <roland@gnu.org> |
| 7 | ;; Maintainer: emacs-devel@gnu.org | ||
| 8 | ;; Keywords: tools | 7 | ;; Keywords: tools |
| 9 | 8 | ||
| 10 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
diff --git a/lisp/progmodes/gdb-mi.el b/lisp/progmodes/gdb-mi.el index 716f40c1f3a..e09aaa3741b 100644 --- a/lisp/progmodes/gdb-mi.el +++ b/lisp/progmodes/gdb-mi.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 2007-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 2007-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: Nick Roberts <nickrob@gnu.org> | 5 | ;; Author: Nick Roberts <nickrob@gnu.org> |
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Keywords: unix, tools | 6 | ;; Keywords: unix, tools |
| 8 | 7 | ||
| 9 | ;; This file is part of GNU Emacs. | 8 | ;; This file is part of GNU Emacs. |
diff --git a/lisp/progmodes/grep.el b/lisp/progmodes/grep.el index 79178c4346e..d094c95fcfb 100644 --- a/lisp/progmodes/grep.el +++ b/lisp/progmodes/grep.el | |||
| @@ -4,7 +4,6 @@ | |||
| 4 | ;; Foundation, Inc. | 4 | ;; Foundation, Inc. |
| 5 | 5 | ||
| 6 | ;; Author: Roland McGrath <roland@gnu.org> | 6 | ;; Author: Roland McGrath <roland@gnu.org> |
| 7 | ;; Maintainer: emacs-devel@gnu.org | ||
| 8 | ;; Keywords: tools, processes | 7 | ;; Keywords: tools, processes |
| 9 | 8 | ||
| 10 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
diff --git a/lisp/progmodes/gud.el b/lisp/progmodes/gud.el index 4306f5daa02..f5680f263b6 100644 --- a/lisp/progmodes/gud.el +++ b/lisp/progmodes/gud.el | |||
| @@ -4,7 +4,6 @@ | |||
| 4 | ;; Inc. | 4 | ;; Inc. |
| 5 | 5 | ||
| 6 | ;; Author: Eric S. Raymond <esr@snark.thyrsus.com> | 6 | ;; Author: Eric S. Raymond <esr@snark.thyrsus.com> |
| 7 | ;; Maintainer: emacs-devel@gnu.org | ||
| 8 | ;; Keywords: unix, tools | 7 | ;; Keywords: unix, tools |
| 9 | 8 | ||
| 10 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
diff --git a/lisp/progmodes/make-mode.el b/lisp/progmodes/make-mode.el index cffb749c3e8..c3ff23558c3 100644 --- a/lisp/progmodes/make-mode.el +++ b/lisp/progmodes/make-mode.el | |||
| @@ -4,7 +4,6 @@ | |||
| 4 | 4 | ||
| 5 | ;; Author: Thomas Neumann <tom@smart.bo.open.de> | 5 | ;; Author: Thomas Neumann <tom@smart.bo.open.de> |
| 6 | ;; Eric S. Raymond <esr@snark.thyrsus.com> | 6 | ;; Eric S. Raymond <esr@snark.thyrsus.com> |
| 7 | ;; Maintainer: emacs-devel@gnu.org | ||
| 8 | ;; Adapted-By: ESR | 7 | ;; Adapted-By: ESR |
| 9 | ;; Keywords: unix, tools | 8 | ;; Keywords: unix, tools |
| 10 | 9 | ||
diff --git a/lisp/progmodes/mixal-mode.el b/lisp/progmodes/mixal-mode.el index a759709b5c8..1dd5d51df80 100644 --- a/lisp/progmodes/mixal-mode.el +++ b/lisp/progmodes/mixal-mode.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 2003-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 2003-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: Pieter E.J. Pareit <pieter.pareit@gmail.com> | 5 | ;; Author: Pieter E.J. Pareit <pieter.pareit@gmail.com> |
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Created: 09 Nov 2002 | 6 | ;; Created: 09 Nov 2002 |
| 8 | ;; Version: 0.1 | 7 | ;; Version: 0.1 |
| 9 | ;; Keywords: languages, Knuth, mix, mixal, asm, mixvm, The Art Of Computer Programming | 8 | ;; Keywords: languages, Knuth, mix, mixal, asm, mixvm, The Art Of Computer Programming |
diff --git a/lisp/progmodes/modula2.el b/lisp/progmodes/modula2.el index aa412304c59..087d1f65fd3 100644 --- a/lisp/progmodes/modula2.el +++ b/lisp/progmodes/modula2.el | |||
| @@ -2,7 +2,6 @@ | |||
| 2 | 2 | ||
| 3 | ;; Author: Michael Schmidt <michael@pbinfo.UUCP> | 3 | ;; Author: Michael Schmidt <michael@pbinfo.UUCP> |
| 4 | ;; Tom Perrine <Perrin@LOGICON.ARPA> | 4 | ;; Tom Perrine <Perrin@LOGICON.ARPA> |
| 5 | ;; Maintainer: emacs-devel@gnu.org | ||
| 6 | ;; Keywords: languages | 5 | ;; Keywords: languages |
| 7 | 6 | ||
| 8 | ;; This file is part of GNU Emacs. | 7 | ;; This file is part of GNU Emacs. |
diff --git a/lisp/progmodes/octave.el b/lisp/progmodes/octave.el index 8a7e24e5ada..4d4e2e1cd45 100644 --- a/lisp/progmodes/octave.el +++ b/lisp/progmodes/octave.el | |||
| @@ -4,7 +4,6 @@ | |||
| 4 | 4 | ||
| 5 | ;; Author: Kurt Hornik <Kurt.Hornik@wu-wien.ac.at> | 5 | ;; Author: Kurt Hornik <Kurt.Hornik@wu-wien.ac.at> |
| 6 | ;; John Eaton <jwe@octave.org> | 6 | ;; John Eaton <jwe@octave.org> |
| 7 | ;; Maintainer: emacs-devel@gnu.org | ||
| 8 | ;; Keywords: languages | 7 | ;; Keywords: languages |
| 9 | 8 | ||
| 10 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
diff --git a/lisp/progmodes/perl-mode.el b/lisp/progmodes/perl-mode.el index 7cbd30a0d1d..f01d6b6bb2d 100644 --- a/lisp/progmodes/perl-mode.el +++ b/lisp/progmodes/perl-mode.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 1990, 1994, 2001-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1990, 1994, 2001-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: William F. Mann | 5 | ;; Author: William F. Mann |
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Adapted-By: ESR | 6 | ;; Adapted-By: ESR |
| 8 | ;; Keywords: languages | 7 | ;; Keywords: languages |
| 9 | 8 | ||
diff --git a/lisp/progmodes/prog-mode.el b/lisp/progmodes/prog-mode.el index 2b057356b10..bd56d1a7c78 100644 --- a/lisp/progmodes/prog-mode.el +++ b/lisp/progmodes/prog-mode.el | |||
| @@ -2,7 +2,6 @@ | |||
| 2 | 2 | ||
| 3 | ;; Copyright (C) 2013-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 2013-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Maintainer: emacs-devel@gnu.org | ||
| 6 | ;; Keywords: internal | 5 | ;; Keywords: internal |
| 7 | ;; Package: emacs | 6 | ;; Package: emacs |
| 8 | 7 | ||
diff --git a/lisp/progmodes/project.el b/lisp/progmodes/project.el index d494efa493a..88ea59b70e2 100644 --- a/lisp/progmodes/project.el +++ b/lisp/progmodes/project.el | |||
| @@ -447,14 +447,14 @@ pattern to search for." | |||
| 447 | (read-regexp "Find regexp" (and id (regexp-quote id))))) | 447 | (read-regexp "Find regexp" (and id (regexp-quote id))))) |
| 448 | 448 | ||
| 449 | ;;;###autoload | 449 | ;;;###autoload |
| 450 | (defun project-find-file (&optional filename) | 450 | (defun project-find-file () |
| 451 | "Visit a file (with completion) in the current project's roots. | 451 | "Visit a file (with completion) in the current project's roots. |
| 452 | The completion default is the filename at point, if one is | 452 | The completion default is the filename at point, if one is |
| 453 | recognized." | 453 | recognized." |
| 454 | (interactive) | 454 | (interactive) |
| 455 | (let* ((pr (project-current t)) | 455 | (let* ((pr (project-current t)) |
| 456 | (dirs (project-roots pr))) | 456 | (dirs (project-roots pr))) |
| 457 | (project-find-file-in (or filename (thing-at-point 'filename)) dirs pr))) | 457 | (project-find-file-in (thing-at-point 'filename) dirs pr))) |
| 458 | 458 | ||
| 459 | ;;;###autoload | 459 | ;;;###autoload |
| 460 | (defun project-or-external-find-file () | 460 | (defun project-or-external-find-file () |
diff --git a/lisp/progmodes/python.el b/lisp/progmodes/python.el index 188bc973d99..74e865bd0b8 100644 --- a/lisp/progmodes/python.el +++ b/lisp/progmodes/python.el | |||
| @@ -6,7 +6,6 @@ | |||
| 6 | ;; URL: https://github.com/fgallina/python.el | 6 | ;; URL: https://github.com/fgallina/python.el |
| 7 | ;; Version: 0.26.1 | 7 | ;; Version: 0.26.1 |
| 8 | ;; Package-Requires: ((emacs "24.1") (cl-lib "1.0")) | 8 | ;; Package-Requires: ((emacs "24.1") (cl-lib "1.0")) |
| 9 | ;; Maintainer: emacs-devel@gnu.org | ||
| 10 | ;; Created: Jul 2010 | 9 | ;; Created: Jul 2010 |
| 11 | ;; Keywords: languages | 10 | ;; Keywords: languages |
| 12 | 11 | ||
diff --git a/lisp/progmodes/sh-script.el b/lisp/progmodes/sh-script.el index 853a3500ee1..8f52a366783 100644 --- a/lisp/progmodes/sh-script.el +++ b/lisp/progmodes/sh-script.el | |||
| @@ -5,7 +5,6 @@ | |||
| 5 | 5 | ||
| 6 | ;; Author: Daniel Pfeiffer <occitan@esperanto.org> | 6 | ;; Author: Daniel Pfeiffer <occitan@esperanto.org> |
| 7 | ;; Version: 2.0f | 7 | ;; Version: 2.0f |
| 8 | ;; Maintainer: emacs-devel@gnu.org | ||
| 9 | ;; Keywords: languages, unix | 8 | ;; Keywords: languages, unix |
| 10 | 9 | ||
| 11 | ;; This file is part of GNU Emacs. | 10 | ;; This file is part of GNU Emacs. |
diff --git a/lisp/progmodes/tcl.el b/lisp/progmodes/tcl.el index ffb3d41ab62..31315e229e0 100644 --- a/lisp/progmodes/tcl.el +++ b/lisp/progmodes/tcl.el | |||
| @@ -2,7 +2,6 @@ | |||
| 2 | 2 | ||
| 3 | ;; Copyright (C) 1994, 1998-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1994, 1998-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Maintainer: emacs-devel@gnu.org | ||
| 6 | ;; Author: Tom Tromey <tromey@redhat.com> | 5 | ;; Author: Tom Tromey <tromey@redhat.com> |
| 7 | ;; Chris Lindblad <cjl@lcs.mit.edu> | 6 | ;; Chris Lindblad <cjl@lcs.mit.edu> |
| 8 | ;; Keywords: languages tcl modes | 7 | ;; Keywords: languages tcl modes |
diff --git a/lisp/progmodes/xscheme.el b/lisp/progmodes/xscheme.el index 62c42d39c6f..7ae47126a5c 100644 --- a/lisp/progmodes/xscheme.el +++ b/lisp/progmodes/xscheme.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 1986-1987, 1989-1990, 2001-2019 Free Software | 3 | ;; Copyright (C) 1986-1987, 1989-1990, 2001-2019 Free Software |
| 4 | ;; Foundation, Inc. | 4 | ;; Foundation, Inc. |
| 5 | 5 | ||
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Keywords: languages, lisp | 6 | ;; Keywords: languages, lisp |
| 8 | 7 | ||
| 9 | ;; This file is part of GNU Emacs. | 8 | ;; This file is part of GNU Emacs. |
diff --git a/lisp/ps-bdf.el b/lisp/ps-bdf.el index be80b4a15b6..2e75e53fc26 100644 --- a/lisp/ps-bdf.el +++ b/lisp/ps-bdf.el | |||
| @@ -9,7 +9,7 @@ | |||
| 9 | ;; National Institute of Advanced Industrial Science and Technology (AIST) | 9 | ;; National Institute of Advanced Industrial Science and Technology (AIST) |
| 10 | ;; Registration Number H13PRO009 | 10 | ;; Registration Number H13PRO009 |
| 11 | 11 | ||
| 12 | ;; Author: Kenichi Handa <handa@m17n.org> | 12 | ;; Author: Kenichi Handa <handa@gnu.org> |
| 13 | ;; (according to ack.texi) | 13 | ;; (according to ack.texi) |
| 14 | ;; Keywords: wp, BDF, font, PostScript | 14 | ;; Keywords: wp, BDF, font, PostScript |
| 15 | ;; Package: ps-print | 15 | ;; Package: ps-print |
diff --git a/lisp/ps-def.el b/lisp/ps-def.el index 20631338902..d248556ccda 100644 --- a/lisp/ps-def.el +++ b/lisp/ps-def.el | |||
| @@ -3,8 +3,8 @@ | |||
| 3 | ;; Copyright (C) 2007-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 2007-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: Vinicius Jose Latorre <viniciusjl.gnu@gmail.com> | 5 | ;; Author: Vinicius Jose Latorre <viniciusjl.gnu@gmail.com> |
| 6 | ;; Kenichi Handa <handa@m17n.org> (multi-byte characters) | 6 | ;; Kenichi Handa <handa@gnu.org> (multi-byte characters) |
| 7 | ;; Maintainer: Kenichi Handa <handa@m17n.org> (multi-byte characters) | 7 | ;; Maintainer: Kenichi Handa <handa@gnu.org> (multi-byte characters) |
| 8 | ;; Vinicius Jose Latorre <viniciusjl.gnu@gmail.com> | 8 | ;; Vinicius Jose Latorre <viniciusjl.gnu@gmail.com> |
| 9 | ;; Keywords: wp, print, PostScript | 9 | ;; Keywords: wp, print, PostScript |
| 10 | ;; X-URL: http://www.emacswiki.org/cgi-bin/wiki/ViniciusJoseLatorre | 10 | ;; X-URL: http://www.emacswiki.org/cgi-bin/wiki/ViniciusJoseLatorre |
diff --git a/lisp/ps-mule.el b/lisp/ps-mule.el index c88d6d26797..537ba9627d5 100644 --- a/lisp/ps-mule.el +++ b/lisp/ps-mule.el | |||
| @@ -3,8 +3,8 @@ | |||
| 3 | ;; Copyright (C) 1998-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1998-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: Vinicius Jose Latorre <viniciusjl.gnu@gmail.com> | 5 | ;; Author: Vinicius Jose Latorre <viniciusjl.gnu@gmail.com> |
| 6 | ;; Kenichi Handa <handa@m17n.org> (multi-byte characters) | 6 | ;; Kenichi Handa <handa@gnu.org> (multi-byte characters) |
| 7 | ;; Maintainer: Kenichi Handa <handa@m17n.org> (multi-byte characters) | 7 | ;; Maintainer: Kenichi Handa <handa@gnu.org> (multi-byte characters) |
| 8 | ;; Vinicius Jose Latorre <viniciusjl.gnu@gmail.com> | 8 | ;; Vinicius Jose Latorre <viniciusjl.gnu@gmail.com> |
| 9 | ;; Keywords: wp, print, PostScript, multibyte, mule | 9 | ;; Keywords: wp, print, PostScript, multibyte, mule |
| 10 | ;; Package: ps-print | 10 | ;; Package: ps-print |
diff --git a/lisp/ps-print.el b/lisp/ps-print.el index 59ac84a3639..d0d9cbe4481 100644 --- a/lisp/ps-print.el +++ b/lisp/ps-print.el | |||
| @@ -5,8 +5,8 @@ | |||
| 5 | ;; Author: Jim Thompson (was <thompson@wg2.waii.com>) | 5 | ;; Author: Jim Thompson (was <thompson@wg2.waii.com>) |
| 6 | ;; Jacques Duthen (was <duthen@cegelec-red.fr>) | 6 | ;; Jacques Duthen (was <duthen@cegelec-red.fr>) |
| 7 | ;; Vinicius Jose Latorre <viniciusjl.gnu@gmail.com> | 7 | ;; Vinicius Jose Latorre <viniciusjl.gnu@gmail.com> |
| 8 | ;; Kenichi Handa <handa@m17n.org> (multi-byte characters) | 8 | ;; Kenichi Handa <handa@gnu.org> (multi-byte characters) |
| 9 | ;; Maintainer: Kenichi Handa <handa@m17n.org> (multi-byte characters) | 9 | ;; Maintainer: Kenichi Handa <handa@gnu.org> (multi-byte characters) |
| 10 | ;; Vinicius Jose Latorre <viniciusjl.gnu@gmail.com> | 10 | ;; Vinicius Jose Latorre <viniciusjl.gnu@gmail.com> |
| 11 | ;; Keywords: wp, print, PostScript | 11 | ;; Keywords: wp, print, PostScript |
| 12 | ;; Version: 7.3.5 | 12 | ;; Version: 7.3.5 |
| @@ -1405,7 +1405,7 @@ Please send all bug fixes and enhancements to | |||
| 1405 | ;; prologue code suggestion, for odd/even printing suggestion and for | 1405 | ;; prologue code suggestion, for odd/even printing suggestion and for |
| 1406 | ;; `ps-prologue-file' enhancement. | 1406 | ;; `ps-prologue-file' enhancement. |
| 1407 | ;; | 1407 | ;; |
| 1408 | ;; Thanks to Ken'ichi Handa <handa@m17n.org> for multi-byte buffer handling. | 1408 | ;; Thanks to Ken'ichi Handa <handa@gnu.org> for multi-byte buffer handling. |
| 1409 | ;; | 1409 | ;; |
| 1410 | ;; Thanks to Matthew O Persico <Matthew.Persico@lazard.com> for line number on | 1410 | ;; Thanks to Matthew O Persico <Matthew.Persico@lazard.com> for line number on |
| 1411 | ;; empty columns. | 1411 | ;; empty columns. |
diff --git a/lisp/ps-samp.el b/lisp/ps-samp.el index 784b4356b47..99c17c7293e 100644 --- a/lisp/ps-samp.el +++ b/lisp/ps-samp.el | |||
| @@ -5,8 +5,8 @@ | |||
| 5 | ;; Author: Jim Thompson (was <thompson@wg2.waii.com>) | 5 | ;; Author: Jim Thompson (was <thompson@wg2.waii.com>) |
| 6 | ;; Jacques Duthen (was <duthen@cegelec-red.fr>) | 6 | ;; Jacques Duthen (was <duthen@cegelec-red.fr>) |
| 7 | ;; Vinicius Jose Latorre <viniciusjl.gnu@gmail.com> | 7 | ;; Vinicius Jose Latorre <viniciusjl.gnu@gmail.com> |
| 8 | ;; Kenichi Handa <handa@m17n.org> (multi-byte characters) | 8 | ;; Kenichi Handa <handa@gnu.org> (multi-byte characters) |
| 9 | ;; Maintainer: Kenichi Handa <handa@m17n.org> (multi-byte characters) | 9 | ;; Maintainer: Kenichi Handa <handa@gnu.org> (multi-byte characters) |
| 10 | ;; Vinicius Jose Latorre <viniciusjl.gnu@gmail.com> | 10 | ;; Vinicius Jose Latorre <viniciusjl.gnu@gmail.com> |
| 11 | ;; Keywords: wp, print, PostScript | 11 | ;; Keywords: wp, print, PostScript |
| 12 | ;; X-URL: http://www.emacswiki.org/cgi-bin/wiki/ViniciusJoseLatorre | 12 | ;; X-URL: http://www.emacswiki.org/cgi-bin/wiki/ViniciusJoseLatorre |
diff --git a/lisp/register.el b/lisp/register.el index 775e1a2cc92..d3825fe8e2a 100644 --- a/lisp/register.el +++ b/lisp/register.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 1985, 1993-1994, 2001-2019 Free Software Foundation, | 3 | ;; Copyright (C) 1985, 1993-1994, 2001-2019 Free Software Foundation, |
| 4 | ;; Inc. | 4 | ;; Inc. |
| 5 | 5 | ||
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Keywords: internal | 6 | ;; Keywords: internal |
| 8 | ;; Package: emacs | 7 | ;; Package: emacs |
| 9 | 8 | ||
diff --git a/lisp/replace.el b/lisp/replace.el index 9d1b7bf747d..00b8be53281 100644 --- a/lisp/replace.el +++ b/lisp/replace.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 1985-1987, 1992, 1994, 1996-1997, 2000-2019 Free | 3 | ;; Copyright (C) 1985-1987, 1992, 1994, 1996-1997, 2000-2019 Free |
| 4 | ;; Software Foundation, Inc. | 4 | ;; Software Foundation, Inc. |
| 5 | 5 | ||
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Package: emacs | 6 | ;; Package: emacs |
| 8 | 7 | ||
| 9 | ;; This file is part of GNU Emacs. | 8 | ;; This file is part of GNU Emacs. |
diff --git a/lisp/reposition.el b/lisp/reposition.el index 22f9986efb5..0416845e9cf 100644 --- a/lisp/reposition.el +++ b/lisp/reposition.el | |||
| @@ -4,7 +4,6 @@ | |||
| 4 | 4 | ||
| 5 | ;; Author: Michael D. Ernst <mernst@theory.lcs.mit.edu> | 5 | ;; Author: Michael D. Ernst <mernst@theory.lcs.mit.edu> |
| 6 | ;; Created: Jan 1991 | 6 | ;; Created: Jan 1991 |
| 7 | ;; Maintainer: emacs-devel@gnu.org | ||
| 8 | 7 | ||
| 9 | ;; This file is part of GNU Emacs. | 8 | ;; This file is part of GNU Emacs. |
| 10 | 9 | ||
diff --git a/lisp/rot13.el b/lisp/rot13.el index 8f4044deac5..bdb2e4b5048 100644 --- a/lisp/rot13.el +++ b/lisp/rot13.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 1988, 2001-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1988, 2001-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: Howard Gayle | 5 | ;; Author: Howard Gayle |
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | 6 | ||
| 8 | ;; This file is part of GNU Emacs. | 7 | ;; This file is part of GNU Emacs. |
| 9 | 8 | ||
diff --git a/lisp/savehist.el b/lisp/savehist.el index fb3b7483397..84cba61aab5 100644 --- a/lisp/savehist.el +++ b/lisp/savehist.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 1997, 2005-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1997, 2005-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: Hrvoje Niksic <hniksic@xemacs.org> | 5 | ;; Author: Hrvoje Niksic <hniksic@xemacs.org> |
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Keywords: minibuffer | 6 | ;; Keywords: minibuffer |
| 8 | ;; Version: 24 | 7 | ;; Version: 24 |
| 9 | 8 | ||
diff --git a/lisp/saveplace.el b/lisp/saveplace.el index 730d31ead25..960cace2069 100644 --- a/lisp/saveplace.el +++ b/lisp/saveplace.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 1993-1994, 2001-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1993-1994, 2001-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: Karl Fogel <kfogel@red-bean.com> | 5 | ;; Author: Karl Fogel <kfogel@red-bean.com> |
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Created: July, 1993 | 6 | ;; Created: July, 1993 |
| 8 | ;; Keywords: bookmarks, placeholders | 7 | ;; Keywords: bookmarks, placeholders |
| 9 | 8 | ||
diff --git a/lisp/scroll-bar.el b/lisp/scroll-bar.el index dc0df7ab3fe..4fc9df84609 100644 --- a/lisp/scroll-bar.el +++ b/lisp/scroll-bar.el | |||
| @@ -2,7 +2,6 @@ | |||
| 2 | 2 | ||
| 3 | ;; Copyright (C) 1993-1995, 1999-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1993-1995, 1999-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Maintainer: emacs-devel@gnu.org | ||
| 6 | ;; Keywords: hardware | 5 | ;; Keywords: hardware |
| 7 | ;; Package: emacs | 6 | ;; Package: emacs |
| 8 | 7 | ||
diff --git a/lisp/scroll-lock.el b/lisp/scroll-lock.el index 8281edb1720..72127321c99 100644 --- a/lisp/scroll-lock.el +++ b/lisp/scroll-lock.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 2005-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 2005-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: Ralf Angeli <angeli@iwi.uni-sb.de> | 5 | ;; Author: Ralf Angeli <angeli@iwi.uni-sb.de> |
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Created: 2005-06-18 | 6 | ;; Created: 2005-06-18 |
| 8 | 7 | ||
| 9 | ;; This file is part of GNU Emacs. | 8 | ;; This file is part of GNU Emacs. |
diff --git a/lisp/select.el b/lisp/select.el index af6bf467e4a..a8adc168f95 100644 --- a/lisp/select.el +++ b/lisp/select.el | |||
| @@ -2,7 +2,6 @@ | |||
| 2 | 2 | ||
| 3 | ;; Copyright (C) 1993-1994, 2001-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1993-1994, 2001-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Maintainer: emacs-devel@gnu.org | ||
| 6 | ;; Keywords: internal | 5 | ;; Keywords: internal |
| 7 | 6 | ||
| 8 | ;; This file is part of GNU Emacs. | 7 | ;; This file is part of GNU Emacs. |
diff --git a/lisp/server.el b/lisp/server.el index 436a44a7e94..f692673d4f1 100644 --- a/lisp/server.el +++ b/lisp/server.el | |||
| @@ -4,7 +4,6 @@ | |||
| 4 | ;; Inc. | 4 | ;; Inc. |
| 5 | 5 | ||
| 6 | ;; Author: William Sommerfeld <wesommer@athena.mit.edu> | 6 | ;; Author: William Sommerfeld <wesommer@athena.mit.edu> |
| 7 | ;; Maintainer: emacs-devel@gnu.org | ||
| 8 | ;; Keywords: processes | 7 | ;; Keywords: processes |
| 9 | 8 | ||
| 10 | ;; Changes by peck@sun.com and by rms. | 9 | ;; Changes by peck@sun.com and by rms. |
diff --git a/lisp/ses.el b/lisp/ses.el index 73157d6f5f0..7fdacc77c9c 100644 --- a/lisp/ses.el +++ b/lisp/ses.el | |||
| @@ -3,7 +3,7 @@ | |||
| 3 | ;; Copyright (C) 2002-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 2002-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: Jonathan Yavner <jyavner@member.fsf.org> | 5 | ;; Author: Jonathan Yavner <jyavner@member.fsf.org> |
| 6 | ;; Maintainer: Vincent Belaïche <vincentb1@users.sourceforge.net> | 6 | ;; Maintainer: Vincent Belaïche <vincentb1@users.sourceforge.net> |
| 7 | ;; Keywords: spreadsheet Dijkstra | 7 | ;; Keywords: spreadsheet Dijkstra |
| 8 | 8 | ||
| 9 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
diff --git a/lisp/shell.el b/lisp/shell.el index 53570272111..6e2ae85fcea 100644 --- a/lisp/shell.el +++ b/lisp/shell.el | |||
| @@ -5,7 +5,6 @@ | |||
| 5 | 5 | ||
| 6 | ;; Author: Olin Shivers <shivers@cs.cmu.edu> | 6 | ;; Author: Olin Shivers <shivers@cs.cmu.edu> |
| 7 | ;; Simon Marshall <simon@gnu.org> | 7 | ;; Simon Marshall <simon@gnu.org> |
| 8 | ;; Maintainer: emacs-devel@gnu.org | ||
| 9 | ;; Keywords: processes | 8 | ;; Keywords: processes |
| 10 | 9 | ||
| 11 | ;; This file is part of GNU Emacs. | 10 | ;; This file is part of GNU Emacs. |
diff --git a/lisp/simple.el b/lisp/simple.el index 4454791ad20..c0e8d58c80c 100644 --- a/lisp/simple.el +++ b/lisp/simple.el | |||
| @@ -2,7 +2,6 @@ | |||
| 2 | 2 | ||
| 3 | ;; Copyright (C) 1985-1987, 1993-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1985-1987, 1993-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Maintainer: emacs-devel@gnu.org | ||
| 6 | ;; Keywords: internal | 5 | ;; Keywords: internal |
| 7 | ;; Package: emacs | 6 | ;; Package: emacs |
| 8 | 7 | ||
diff --git a/lisp/skeleton.el b/lisp/skeleton.el index bce73d6bfef..1d06b648a20 100644 --- a/lisp/skeleton.el +++ b/lisp/skeleton.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 1993-1996, 2001-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1993-1996, 2001-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: Daniel Pfeiffer <occitan@esperanto.org> | 5 | ;; Author: Daniel Pfeiffer <occitan@esperanto.org> |
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Keywords: extensions, abbrev, languages, tools | 6 | ;; Keywords: extensions, abbrev, languages, tools |
| 8 | 7 | ||
| 9 | ;; This file is part of GNU Emacs. | 8 | ;; This file is part of GNU Emacs. |
diff --git a/lisp/sort.el b/lisp/sort.el index 6ea1c440605..86cb1804a39 100644 --- a/lisp/sort.el +++ b/lisp/sort.el | |||
| @@ -4,7 +4,6 @@ | |||
| 4 | ;; Foundation, Inc. | 4 | ;; Foundation, Inc. |
| 5 | 5 | ||
| 6 | ;; Author: Howie Kaye | 6 | ;; Author: Howie Kaye |
| 7 | ;; Maintainer: emacs-devel@gnu.org | ||
| 8 | ;; Keywords: unix | 7 | ;; Keywords: unix |
| 9 | 8 | ||
| 10 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
diff --git a/lisp/soundex.el b/lisp/soundex.el index 1f1f9caec3d..9e4c79769d0 100644 --- a/lisp/soundex.el +++ b/lisp/soundex.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 1993, 2001-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1993, 2001-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: Christian Plaunt <chris@bliss.berkeley.edu> | 5 | ;; Author: Christian Plaunt <chris@bliss.berkeley.edu> |
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Keywords: matching | 6 | ;; Keywords: matching |
| 8 | ;; Created: Sat May 15 14:48:18 1993 | 7 | ;; Created: Sat May 15 14:48:18 1993 |
| 9 | 8 | ||
diff --git a/lisp/startup.el b/lisp/startup.el index 421a6ea37db..a88118e3b9a 100644 --- a/lisp/startup.el +++ b/lisp/startup.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 1985-1986, 1992, 1994-2019 Free Software Foundation, | 3 | ;; Copyright (C) 1985-1986, 1992, 1994-2019 Free Software Foundation, |
| 4 | ;; Inc. | 4 | ;; Inc. |
| 5 | 5 | ||
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Keywords: internal | 6 | ;; Keywords: internal |
| 8 | ;; Package: emacs | 7 | ;; Package: emacs |
| 9 | 8 | ||
diff --git a/lisp/strokes.el b/lisp/strokes.el index 9265b8a52ea..29daaa5690e 100644 --- a/lisp/strokes.el +++ b/lisp/strokes.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 1997, 2000-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1997, 2000-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: David Bakhash <cadet@alum.mit.edu> | 5 | ;; Author: David Bakhash <cadet@alum.mit.edu> |
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Keywords: lisp, mouse, extensions | 6 | ;; Keywords: lisp, mouse, extensions |
| 8 | 7 | ||
| 9 | ;; This file is part of GNU Emacs. | 8 | ;; This file is part of GNU Emacs. |
diff --git a/lisp/subr.el b/lisp/subr.el index 05fb9fea68f..c97d9b96bd9 100644 --- a/lisp/subr.el +++ b/lisp/subr.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 1985-1986, 1992, 1994-1995, 1999-2019 Free Software | 3 | ;; Copyright (C) 1985-1986, 1992, 1994-1995, 1999-2019 Free Software |
| 4 | ;; Foundation, Inc. | 4 | ;; Foundation, Inc. |
| 5 | 5 | ||
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Keywords: internal | 6 | ;; Keywords: internal |
| 8 | ;; Package: emacs | 7 | ;; Package: emacs |
| 9 | 8 | ||
diff --git a/lisp/t-mouse.el b/lisp/t-mouse.el index 14b292d4414..1f4be160f8e 100644 --- a/lisp/t-mouse.el +++ b/lisp/t-mouse.el | |||
| @@ -1,7 +1,6 @@ | |||
| 1 | ;;; t-mouse.el --- mouse support within the text terminal | 1 | ;;; t-mouse.el --- mouse support within the text terminal |
| 2 | 2 | ||
| 3 | ;; Author: Nick Roberts <nickrob@gnu.org> | 3 | ;; Author: Nick Roberts <nickrob@gnu.org> |
| 4 | ;; Maintainer: emacs-devel@gnu.org | ||
| 5 | ;; Keywords: mouse gpm linux | 4 | ;; Keywords: mouse gpm linux |
| 6 | 5 | ||
| 7 | ;; Copyright (C) 1994-1995, 1998, 2006-2019 Free Software Foundation, | 6 | ;; Copyright (C) 1994-1995, 1998, 2006-2019 Free Software Foundation, |
diff --git a/lisp/tabify.el b/lisp/tabify.el index 37cd8fb2fdd..345771e19cd 100644 --- a/lisp/tabify.el +++ b/lisp/tabify.el | |||
| @@ -2,7 +2,6 @@ | |||
| 2 | 2 | ||
| 3 | ;; Copyright (C) 1985, 1994, 2001-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1985, 1994, 2001-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Maintainer: emacs-devel@gnu.org | ||
| 6 | ;; Package: emacs | 5 | ;; Package: emacs |
| 7 | 6 | ||
| 8 | ;; This file is part of GNU Emacs. | 7 | ;; This file is part of GNU Emacs. |
diff --git a/lisp/talk.el b/lisp/talk.el index 0b7d5db01e1..b5c77a9332c 100644 --- a/lisp/talk.el +++ b/lisp/talk.el | |||
| @@ -2,7 +2,6 @@ | |||
| 2 | 2 | ||
| 3 | ;; Copyright (C) 1995, 2001-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1995, 2001-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Maintainer: emacs-devel@gnu.org | ||
| 6 | ;; Keywords: comm, frames | 5 | ;; Keywords: comm, frames |
| 7 | 6 | ||
| 8 | ;; This file is part of GNU Emacs. | 7 | ;; This file is part of GNU Emacs. |
diff --git a/lisp/tar-mode.el b/lisp/tar-mode.el index 599da9ac807..c75fe7c3730 100644 --- a/lisp/tar-mode.el +++ b/lisp/tar-mode.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 1990-1991, 1993-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1990-1991, 1993-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: Jamie Zawinski <jwz@lucid.com> | 5 | ;; Author: Jamie Zawinski <jwz@lucid.com> |
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Created: 04 Apr 1990 | 6 | ;; Created: 04 Apr 1990 |
| 8 | ;; Keywords: unix | 7 | ;; Keywords: unix |
| 9 | 8 | ||
diff --git a/lisp/tempo.el b/lisp/tempo.el index 28afbec0f49..e3b9c76a5b8 100644 --- a/lisp/tempo.el +++ b/lisp/tempo.el | |||
| @@ -1,11 +1,11 @@ | |||
| 1 | ;;; tempo.el --- Flexible template insertion | 1 | ;;; tempo.el --- Flexible template insertion -*- lexical-binding: t; -*- |
| 2 | 2 | ||
| 3 | ;; Copyright (C) 1994-1995, 2001-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1994-1995, 2001-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: David KÃ¥gedal <davidk@lysator.liu.se> | 5 | ;; Author: David KÃ¥gedal <davidk@lysator.liu.se> |
| 6 | ;; Created: 16 Feb 1994 | 6 | ;; Created: 16 Feb 1994 |
| 7 | ;; KÃ¥gedal's last version number: 1.2.4 | 7 | ;; KÃ¥gedal's last version number: 1.2.4 |
| 8 | ;; Keywords: extensions, languages, tools | 8 | ;; Keywords: abbrev, extensions, languages, tools |
| 9 | 9 | ||
| 10 | ;; This file is part of GNU Emacs. | 10 | ;; This file is part of GNU Emacs. |
| 11 | 11 | ||
| @@ -152,7 +152,7 @@ setting it to (upcase), for example.") | |||
| 152 | (defvar tempo-tags nil | 152 | (defvar tempo-tags nil |
| 153 | "An association list with tags and corresponding templates.") | 153 | "An association list with tags and corresponding templates.") |
| 154 | 154 | ||
| 155 | (defvar tempo-local-tags '((tempo-tags . nil)) | 155 | (defvar-local tempo-local-tags '((tempo-tags . nil)) |
| 156 | "A list of locally installed tag completion lists. | 156 | "A list of locally installed tag completion lists. |
| 157 | It is an association list where the car of every element is a symbol | 157 | It is an association list where the car of every element is a symbol |
| 158 | whose variable value is a template list. The cdr part, if non-nil, | 158 | whose variable value is a template list. The cdr part, if non-nil, |
| @@ -161,16 +161,16 @@ documentation for the function `tempo-complete-tag' for more info. | |||
| 161 | 161 | ||
| 162 | `tempo-tags' is always in the last position in this list.") | 162 | `tempo-tags' is always in the last position in this list.") |
| 163 | 163 | ||
| 164 | (defvar tempo-collection nil | 164 | (defvar-local tempo-collection nil |
| 165 | "A collection of all the tags defined for the current buffer.") | 165 | "A collection of all the tags defined for the current buffer.") |
| 166 | 166 | ||
| 167 | (defvar tempo-dirty-collection t | 167 | (defvar-local tempo-dirty-collection t |
| 168 | "Indicates if the tag collection needs to be rebuilt.") | 168 | "Indicates if the tag collection needs to be rebuilt.") |
| 169 | 169 | ||
| 170 | (defvar tempo-marks nil | 170 | (defvar-local tempo-marks nil |
| 171 | "A list of marks to jump to with `\\[tempo-forward-mark]' and `\\[tempo-backward-mark]'.") | 171 | "A list of marks to jump to with `\\[tempo-forward-mark]' and `\\[tempo-backward-mark]'.") |
| 172 | 172 | ||
| 173 | (defvar tempo-match-finder "\\b\\([[:word:]]+\\)\\=" | 173 | (defvar-local tempo-match-finder "\\b\\([[:word:]]+\\)\\=" |
| 174 | "The regexp or function used to find the string to match against tags. | 174 | "The regexp or function used to find the string to match against tags. |
| 175 | 175 | ||
| 176 | If `tempo-match-finder' is a string, it should contain a regular | 176 | If `tempo-match-finder' is a string, it should contain a regular |
| @@ -195,23 +195,15 @@ A list of symbols which are bound to functions that take one argument. | |||
| 195 | This function should return something to be sent to `tempo-insert' if | 195 | This function should return something to be sent to `tempo-insert' if |
| 196 | it recognizes the argument, and nil otherwise.") | 196 | it recognizes the argument, and nil otherwise.") |
| 197 | 197 | ||
| 198 | (defvar tempo-named-insertions nil | 198 | (defvar-local tempo-named-insertions nil |
| 199 | "Temporary storage for named insertions.") | 199 | "Temporary storage for named insertions.") |
| 200 | 200 | ||
| 201 | (defvar tempo-region-start (make-marker) | 201 | (defvar-local tempo-region-start (make-marker) |
| 202 | "Region start when inserting around the region.") | 202 | "Region start when inserting around the region.") |
| 203 | 203 | ||
| 204 | (defvar tempo-region-stop (make-marker) | 204 | (defvar-local tempo-region-stop (make-marker) |
| 205 | "Region stop when inserting around the region.") | 205 | "Region stop when inserting around the region.") |
| 206 | 206 | ||
| 207 | ;; Make some variables local to every buffer | ||
| 208 | |||
| 209 | (make-variable-buffer-local 'tempo-marks) | ||
| 210 | (make-variable-buffer-local 'tempo-local-tags) | ||
| 211 | (make-variable-buffer-local 'tempo-match-finder) | ||
| 212 | (make-variable-buffer-local 'tempo-collection) | ||
| 213 | (make-variable-buffer-local 'tempo-dirty-collection) | ||
| 214 | |||
| 215 | ;;; Functions | 207 | ;;; Functions |
| 216 | 208 | ||
| 217 | ;; | 209 | ;; |
| @@ -268,11 +260,14 @@ The elements in ELEMENTS can be of several types: | |||
| 268 | - `n>': Inserts a newline and indents line. | 260 | - `n>': Inserts a newline and indents line. |
| 269 | - `o': Like `%' but leaves the point before the newline. | 261 | - `o': Like `%' but leaves the point before the newline. |
| 270 | - nil: It is ignored. | 262 | - nil: It is ignored. |
| 271 | - Anything else: It is evaluated and the result is treated as an | 263 | - Anything else: Each function in `tempo-user-elements' is called |
| 272 | element to be inserted. One additional tag is useful for these | 264 | with it as argument until one of them returns non-nil, and the |
| 273 | cases. If an expression returns a list (l foo bar), the elements | 265 | result is inserted. If all of them return nil, it is evaluated and |
| 274 | after `l' will be inserted according to the usual rules. This makes | 266 | the result is treated as an element to be inserted. One additional |
| 275 | it possible to return several elements from one expression." | 267 | tag is useful for these cases. If an expression returns a list (l |
| 268 | foo bar), the elements after `l' will be inserted according to the | ||
| 269 | usual rules. This makes it possible to return several elements | ||
| 270 | from one expression." | ||
| 276 | (let* ((template-name (intern (concat "tempo-template-" | 271 | (let* ((template-name (intern (concat "tempo-template-" |
| 277 | name))) | 272 | name))) |
| 278 | (command-name template-name)) | 273 | (command-name template-name)) |
diff --git a/lisp/term/common-win.el b/lisp/term/common-win.el index b7a778fc004..d7fceb83085 100644 --- a/lisp/term/common-win.el +++ b/lisp/term/common-win.el | |||
| @@ -2,7 +2,6 @@ | |||
| 2 | 2 | ||
| 3 | ;; Copyright (C) 1993-1994, 2001-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1993-1994, 2001-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Maintainer: emacs-devel@gnu.org | ||
| 6 | ;; Keywords: terminals | 5 | ;; Keywords: terminals |
| 7 | 6 | ||
| 8 | ;; This file is part of GNU Emacs. | 7 | ;; This file is part of GNU Emacs. |
diff --git a/lisp/term/pc-win.el b/lisp/term/pc-win.el index 09275991cf5..c434ea6b9cb 100644 --- a/lisp/term/pc-win.el +++ b/lisp/term/pc-win.el | |||
| @@ -4,7 +4,6 @@ | |||
| 4 | ;; Foundation, Inc. | 4 | ;; Foundation, Inc. |
| 5 | 5 | ||
| 6 | ;; Author: Morten Welinder <terra@diku.dk> | 6 | ;; Author: Morten Welinder <terra@diku.dk> |
| 7 | ;; Maintainer: emacs-devel@gnu.org | ||
| 8 | 7 | ||
| 9 | ;; This file is part of GNU Emacs. | 8 | ;; This file is part of GNU Emacs. |
| 10 | 9 | ||
diff --git a/lisp/term/tty-colors.el b/lisp/term/tty-colors.el index 307586f2213..2718aecb9af 100644 --- a/lisp/term/tty-colors.el +++ b/lisp/term/tty-colors.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 1999-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1999-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: Eli Zaretskii | 5 | ;; Author: Eli Zaretskii |
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Keywords: terminals, faces | 6 | ;; Keywords: terminals, faces |
| 8 | 7 | ||
| 9 | ;; This file is part of GNU Emacs. | 8 | ;; This file is part of GNU Emacs. |
diff --git a/lisp/textmodes/bib-mode.el b/lisp/textmodes/bib-mode.el index 7a5d3ef7758..de822326fb3 100644 --- a/lisp/textmodes/bib-mode.el +++ b/lisp/textmodes/bib-mode.el | |||
| @@ -4,7 +4,6 @@ | |||
| 4 | 4 | ||
| 5 | ;; Author: Henry Kautz | 5 | ;; Author: Henry Kautz |
| 6 | ;; (according to authors.el) | 6 | ;; (according to authors.el) |
| 7 | ;; Maintainer: emacs-devel@gnu.org | ||
| 8 | ;; Keywords: bib | 7 | ;; Keywords: bib |
| 9 | 8 | ||
| 10 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
diff --git a/lisp/textmodes/fill.el b/lisp/textmodes/fill.el index c285491a305..46dbcfef460 100644 --- a/lisp/textmodes/fill.el +++ b/lisp/textmodes/fill.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 1985-1986, 1992, 1994-1997, 1999, 2001-2019 Free | 3 | ;; Copyright (C) 1985-1986, 1992, 1994-1997, 1999, 2001-2019 Free |
| 4 | ;; Software Foundation, Inc. | 4 | ;; Software Foundation, Inc. |
| 5 | 5 | ||
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Keywords: wp | 6 | ;; Keywords: wp |
| 8 | ;; Package: emacs | 7 | ;; Package: emacs |
| 9 | 8 | ||
diff --git a/lisp/textmodes/flyspell.el b/lisp/textmodes/flyspell.el index d18916dfd01..a06f8edd6f8 100644 --- a/lisp/textmodes/flyspell.el +++ b/lisp/textmodes/flyspell.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 1998, 2000-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1998, 2000-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: Manuel Serrano <Manuel.Serrano@sophia.inria.fr> | 5 | ;; Author: Manuel Serrano <Manuel.Serrano@sophia.inria.fr> |
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Keywords: convenience | 6 | ;; Keywords: convenience |
| 8 | 7 | ||
| 9 | ;; This file is part of GNU Emacs. | 8 | ;; This file is part of GNU Emacs. |
diff --git a/lisp/textmodes/makeinfo.el b/lisp/textmodes/makeinfo.el index ff3d2420df4..f351b870261 100644 --- a/lisp/textmodes/makeinfo.el +++ b/lisp/textmodes/makeinfo.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 1991, 1993, 2001-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1991, 1993, 2001-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: Robert J. Chassell | 5 | ;; Author: Robert J. Chassell |
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Keywords: docs convenience | 6 | ;; Keywords: docs convenience |
| 8 | 7 | ||
| 9 | ;; This file is part of GNU Emacs. | 8 | ;; This file is part of GNU Emacs. |
diff --git a/lisp/textmodes/nroff-mode.el b/lisp/textmodes/nroff-mode.el index f33d4df4d19..e5964d175dd 100644 --- a/lisp/textmodes/nroff-mode.el +++ b/lisp/textmodes/nroff-mode.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 1985-1986, 1994-1995, 1997, 2001-2019 Free Software | 3 | ;; Copyright (C) 1985-1986, 1994-1995, 1997, 2001-2019 Free Software |
| 4 | ;; Foundation, Inc. | 4 | ;; Foundation, Inc. |
| 5 | 5 | ||
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Keywords: wp | 6 | ;; Keywords: wp |
| 8 | 7 | ||
| 9 | ;; This file is part of GNU Emacs. | 8 | ;; This file is part of GNU Emacs. |
diff --git a/lisp/textmodes/page.el b/lisp/textmodes/page.el index 220ef2d7fd6..bc92121599c 100644 --- a/lisp/textmodes/page.el +++ b/lisp/textmodes/page.el | |||
| @@ -2,7 +2,6 @@ | |||
| 2 | 2 | ||
| 3 | ;; Copyright (C) 1985, 2001-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1985, 2001-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Maintainer: emacs-devel@gnu.org | ||
| 6 | ;; Keywords: wp convenience | 5 | ;; Keywords: wp convenience |
| 7 | ;; Package: emacs | 6 | ;; Package: emacs |
| 8 | 7 | ||
diff --git a/lisp/textmodes/paragraphs.el b/lisp/textmodes/paragraphs.el index 92a6b907859..8a1af3af250 100644 --- a/lisp/textmodes/paragraphs.el +++ b/lisp/textmodes/paragraphs.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 1985-1987, 1991, 1994-1997, 1999-2019 Free Software | 3 | ;; Copyright (C) 1985-1987, 1991, 1994-1997, 1999-2019 Free Software |
| 4 | ;; Foundation, Inc. | 4 | ;; Foundation, Inc. |
| 5 | 5 | ||
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Keywords: wp | 6 | ;; Keywords: wp |
| 8 | ;; Package: emacs | 7 | ;; Package: emacs |
| 9 | 8 | ||
diff --git a/lisp/textmodes/picture.el b/lisp/textmodes/picture.el index b5208494674..79039bc1980 100644 --- a/lisp/textmodes/picture.el +++ b/lisp/textmodes/picture.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 1985, 1994, 2001-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1985, 1994, 2001-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: K. Shane Hartman | 5 | ;; Author: K. Shane Hartman |
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Keywords: convenience wp | 6 | ;; Keywords: convenience wp |
| 8 | 7 | ||
| 9 | ;; This file is part of GNU Emacs. | 8 | ;; This file is part of GNU Emacs. |
| @@ -625,7 +624,6 @@ Leaves the region surrounding the rectangle." | |||
| 625 | (defvar picture-mode-map | 624 | (defvar picture-mode-map |
| 626 | (let ((map (make-keymap))) | 625 | (let ((map (make-keymap))) |
| 627 | (define-key map [remap self-insert-command] 'picture-self-insert) | 626 | (define-key map [remap self-insert-command] 'picture-self-insert) |
| 628 | (define-key map [remap self-insert-command] 'picture-self-insert) | ||
| 629 | (define-key map [remap completion-separator-self-insert-command] | 627 | (define-key map [remap completion-separator-self-insert-command] |
| 630 | 'picture-self-insert) | 628 | 'picture-self-insert) |
| 631 | (define-key map [remap completion-separator-self-insert-autofilling] | 629 | (define-key map [remap completion-separator-self-insert-autofilling] |
diff --git a/lisp/textmodes/refbib.el b/lisp/textmodes/refbib.el index 3ba52e61ea6..03b1b048a16 100644 --- a/lisp/textmodes/refbib.el +++ b/lisp/textmodes/refbib.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 1989, 2001-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1989, 2001-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: Henry Kautz <kautz@research.att.com> | 5 | ;; Author: Henry Kautz <kautz@research.att.com> |
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Keywords: bib, tex | 6 | ;; Keywords: bib, tex |
| 8 | 7 | ||
| 9 | ;; This file is part of GNU Emacs. | 8 | ;; This file is part of GNU Emacs. |
diff --git a/lisp/textmodes/refer.el b/lisp/textmodes/refer.el index f13e1d7161d..3d4d0d2b06e 100644 --- a/lisp/textmodes/refer.el +++ b/lisp/textmodes/refer.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 1992, 1996, 2001-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1992, 1996, 2001-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: Ashwin Ram <ashwin@cc.gatech.edu> | 5 | ;; Author: Ashwin Ram <ashwin@cc.gatech.edu> |
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Adapted-By: ESR | 6 | ;; Adapted-By: ESR |
| 8 | ;; Keywords: bib | 7 | ;; Keywords: bib |
| 9 | 8 | ||
diff --git a/lisp/textmodes/remember.el b/lisp/textmodes/remember.el index 67ecd3ced81..efc11084fe6 100644 --- a/lisp/textmodes/remember.el +++ b/lisp/textmodes/remember.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 1999-2001, 2003-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1999-2001, 2003-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: John Wiegley <johnw@gnu.org> | 5 | ;; Author: John Wiegley <johnw@gnu.org> |
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Created: 29 Mar 1999 | 6 | ;; Created: 29 Mar 1999 |
| 8 | ;; Version: 2.0 | 7 | ;; Version: 2.0 |
| 9 | ;; Keywords: data memory todo pim | 8 | ;; Keywords: data memory todo pim |
diff --git a/lisp/textmodes/sgml-mode.el b/lisp/textmodes/sgml-mode.el index 1b064fb825f..d0586fd9fce 100644 --- a/lisp/textmodes/sgml-mode.el +++ b/lisp/textmodes/sgml-mode.el | |||
| @@ -4,7 +4,6 @@ | |||
| 4 | ;; Foundation, Inc. | 4 | ;; Foundation, Inc. |
| 5 | 5 | ||
| 6 | ;; Author: James Clark <jjc@jclark.com> | 6 | ;; Author: James Clark <jjc@jclark.com> |
| 7 | ;; Maintainer: emacs-devel@gnu.org | ||
| 8 | ;; Adapted-By: ESR, Daniel Pfeiffer <occitan@esperanto.org>, | 7 | ;; Adapted-By: ESR, Daniel Pfeiffer <occitan@esperanto.org>, |
| 9 | ;; F.Potorti@cnuce.cnr.it | 8 | ;; F.Potorti@cnuce.cnr.it |
| 10 | ;; Keywords: wp, hypermedia, comm, languages | 9 | ;; Keywords: wp, hypermedia, comm, languages |
| @@ -329,6 +328,24 @@ Any terminating `>' or `/' is not matched.") | |||
| 329 | (defvar sgml-font-lock-keywords sgml-font-lock-keywords-1 | 328 | (defvar sgml-font-lock-keywords sgml-font-lock-keywords-1 |
| 330 | "Rules for highlighting SGML code. See also `sgml-tag-face-alist'.") | 329 | "Rules for highlighting SGML code. See also `sgml-tag-face-alist'.") |
| 331 | 330 | ||
| 331 | (defvar-local sgml--syntax-propertize-ppss nil) | ||
| 332 | |||
| 333 | (defun sgml--syntax-propertize-ppss (pos) | ||
| 334 | "Return PPSS at POS, fixing the syntax of any lone `>' along the way." | ||
| 335 | (cl-assert (>= pos (car sgml--syntax-propertize-ppss))) | ||
| 336 | (let ((ppss (parse-partial-sexp (car sgml--syntax-propertize-ppss) pos -1 | ||
| 337 | nil (cdr sgml--syntax-propertize-ppss)))) | ||
| 338 | (while (eq -1 (car ppss)) | ||
| 339 | (put-text-property (1- (point)) (point) | ||
| 340 | 'syntax-table (string-to-syntax ".")) | ||
| 341 | ;; Hack attack: rather than recompute the ppss from | ||
| 342 | ;; (car sgml--syntax-propertize-ppss), we manually "fix it". | ||
| 343 | (setcar ppss 0) | ||
| 344 | (setq ppss (parse-partial-sexp (point) pos -1 nil ppss))) | ||
| 345 | (setcdr sgml--syntax-propertize-ppss ppss) | ||
| 346 | (setcar sgml--syntax-propertize-ppss pos) | ||
| 347 | ppss)) | ||
| 348 | |||
| 332 | (eval-and-compile | 349 | (eval-and-compile |
| 333 | (defconst sgml-syntax-propertize-rules | 350 | (defconst sgml-syntax-propertize-rules |
| 334 | (syntax-propertize-precompile-rules | 351 | (syntax-propertize-precompile-rules |
| @@ -345,23 +362,28 @@ Any terminating `>' or `/' is not matched.") | |||
| 345 | ;; the resulting number of calls to syntax-ppss made it too slow | 362 | ;; the resulting number of calls to syntax-ppss made it too slow |
| 346 | ;; (bug#33887), so we're now careful to leave alone any pair | 363 | ;; (bug#33887), so we're now careful to leave alone any pair |
| 347 | ;; of quotes that doesn't hold a < or > char, which is the vast majority. | 364 | ;; of quotes that doesn't hold a < or > char, which is the vast majority. |
| 348 | ("\\(?:\\(?1:\"\\)[^\"<>]*[<>\"]\\|\\(?1:'\\)[^'<>]*[<>']\\)" | 365 | ("\\(?:\\(?1:\"\\)[^\"<>]*\\|\\(?1:'\\)[^'\"<>]*\\)" |
| 349 | (1 (unless (memq (char-before) '(?\' ?\")) | 366 | (1 (if (eq (char-after) (char-after (match-beginning 0))) |
| 367 | (forward-char 1) | ||
| 350 | ;; Be careful to call `syntax-ppss' on a position before the one | 368 | ;; Be careful to call `syntax-ppss' on a position before the one |
| 351 | ;; we're going to change, so as not to need to flush the data we | 369 | ;; we're going to change, so as not to need to flush the data we |
| 352 | ;; just computed. | 370 | ;; just computed. |
| 353 | (if (prog1 (zerop (car (syntax-ppss (match-beginning 0)))) | 371 | (if (zerop (save-excursion |
| 354 | (goto-char (1- (match-end 0)))) | 372 | (car (sgml--syntax-propertize-ppss |
| 373 | (match-beginning 0))))) | ||
| 355 | (string-to-syntax "."))))) | 374 | (string-to-syntax "."))))) |
| 356 | ))) | 375 | ))) |
| 357 | 376 | ||
| 358 | (defun sgml-syntax-propertize (start end) | 377 | (defun sgml-syntax-propertize (start end) |
| 359 | "Syntactic keywords for `sgml-mode'." | 378 | "Syntactic keywords for `sgml-mode'." |
| 360 | (goto-char start) | 379 | (setq sgml--syntax-propertize-ppss (cons start (syntax-ppss start))) |
| 380 | (cl-assert (>= (cadr sgml--syntax-propertize-ppss) 0)) | ||
| 361 | (sgml-syntax-propertize-inside end) | 381 | (sgml-syntax-propertize-inside end) |
| 362 | (funcall | 382 | (funcall |
| 363 | (syntax-propertize-rules sgml-syntax-propertize-rules) | 383 | (syntax-propertize-rules sgml-syntax-propertize-rules) |
| 364 | start end)) | 384 | start end) |
| 385 | ;; Catch any '>' after the last quote. | ||
| 386 | (sgml--syntax-propertize-ppss end)) | ||
| 365 | 387 | ||
| 366 | (defun sgml-syntax-propertize-inside (end) | 388 | (defun sgml-syntax-propertize-inside (end) |
| 367 | (let ((ppss (syntax-ppss))) | 389 | (let ((ppss (syntax-ppss))) |
diff --git a/lisp/textmodes/table.el b/lisp/textmodes/table.el index f27c7058e71..256fac63421 100644 --- a/lisp/textmodes/table.el +++ b/lisp/textmodes/table.el | |||
| @@ -590,7 +590,7 @@ | |||
| 590 | ;; attempt of implementing the table feature to Emacs. This greatly | 590 | ;; attempt of implementing the table feature to Emacs. This greatly |
| 591 | ;; motivated me to follow through to its completion. | 591 | ;; motivated me to follow through to its completion. |
| 592 | ;; | 592 | ;; |
| 593 | ;; Kenichi Handa <handa@etl.go.jp> kindly guided me through to | 593 | ;; Kenichi Handa <handa@gnu.org> kindly guided me through to |
| 594 | ;; overcome many technical issues while I was struggling with quail | 594 | ;; overcome many technical issues while I was struggling with quail |
| 595 | ;; related internationalization problems. | 595 | ;; related internationalization problems. |
| 596 | ;; | 596 | ;; |
diff --git a/lisp/textmodes/tex-mode.el b/lisp/textmodes/tex-mode.el index 9c91d27b944..8611b735ba9 100644 --- a/lisp/textmodes/tex-mode.el +++ b/lisp/textmodes/tex-mode.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 1985-1986, 1989, 1992, 1994-1999, 2001-2019 Free | 3 | ;; Copyright (C) 1985-1986, 1989, 1992, 1994-1999, 2001-2019 Free |
| 4 | ;; Software Foundation, Inc. | 4 | ;; Software Foundation, Inc. |
| 5 | 5 | ||
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Keywords: tex | 6 | ;; Keywords: tex |
| 8 | 7 | ||
| 9 | ;; Contributions over the years by William F. Schelter, Dick King, | 8 | ;; Contributions over the years by William F. Schelter, Dick King, |
diff --git a/lisp/textmodes/texinfmt.el b/lisp/textmodes/texinfmt.el index 9ccc73ad48a..5a54e0d2d17 100644 --- a/lisp/textmodes/texinfmt.el +++ b/lisp/textmodes/texinfmt.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 1985-1986, 1988, 1990-1998, 2000-2019 Free Software | 3 | ;; Copyright (C) 1985-1986, 1988, 1990-1998, 2000-2019 Free Software |
| 4 | ;; Foundation, Inc. | 4 | ;; Foundation, Inc. |
| 5 | 5 | ||
| 6 | ;; Maintainer: bug-texinfo@gnu.org | ||
| 7 | ;; Keywords: maint, tex, docs | 6 | ;; Keywords: maint, tex, docs |
| 8 | 7 | ||
| 9 | ;; This file is part of GNU Emacs. | 8 | ;; This file is part of GNU Emacs. |
diff --git a/lisp/textmodes/texinfo.el b/lisp/textmodes/texinfo.el index 71cdcab57ef..54306d2b74c 100644 --- a/lisp/textmodes/texinfo.el +++ b/lisp/textmodes/texinfo.el | |||
| @@ -5,7 +5,6 @@ | |||
| 5 | 5 | ||
| 6 | ;; Author: Robert J. Chassell | 6 | ;; Author: Robert J. Chassell |
| 7 | ;; Date: [See date below for texinfo-version] | 7 | ;; Date: [See date below for texinfo-version] |
| 8 | ;; Maintainer: emacs-devel@gnu.org | ||
| 9 | ;; Keywords: maint, tex, docs | 8 | ;; Keywords: maint, tex, docs |
| 10 | 9 | ||
| 11 | ;; This file is part of GNU Emacs. | 10 | ;; This file is part of GNU Emacs. |
diff --git a/lisp/textmodes/texnfo-upd.el b/lisp/textmodes/texnfo-upd.el index e960e992a89..4f49c7f5d17 100644 --- a/lisp/textmodes/texnfo-upd.el +++ b/lisp/textmodes/texnfo-upd.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 1989-1992, 2001-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1989-1992, 2001-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: Robert J. Chassell | 5 | ;; Author: Robert J. Chassell |
| 6 | ;; Maintainer: bug-texinfo@gnu.org | ||
| 7 | ;; Keywords: maint, tex, docs | 6 | ;; Keywords: maint, tex, docs |
| 8 | 7 | ||
| 9 | ;; This file is part of GNU Emacs. | 8 | ;; This file is part of GNU Emacs. |
diff --git a/lisp/textmodes/text-mode.el b/lisp/textmodes/text-mode.el index e676a5dae20..ac292e463b1 100644 --- a/lisp/textmodes/text-mode.el +++ b/lisp/textmodes/text-mode.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 1985, 1992, 1994, 2001-2019 Free Software Foundation, | 3 | ;; Copyright (C) 1985, 1992, 1994, 2001-2019 Free Software Foundation, |
| 4 | ;; Inc. | 4 | ;; Inc. |
| 5 | 5 | ||
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Keywords: wp | 6 | ;; Keywords: wp |
| 8 | ;; Package: emacs | 7 | ;; Package: emacs |
| 9 | 8 | ||
diff --git a/lisp/textmodes/underline.el b/lisp/textmodes/underline.el index e0bfd24557b..8c904f5d0ec 100644 --- a/lisp/textmodes/underline.el +++ b/lisp/textmodes/underline.el | |||
| @@ -2,7 +2,6 @@ | |||
| 2 | 2 | ||
| 3 | ;; Copyright (C) 1985, 2001-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1985, 2001-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Maintainer: emacs-devel@gnu.org | ||
| 6 | ;; Keywords: wp | 5 | ;; Keywords: wp |
| 7 | 6 | ||
| 8 | ;; This file is part of GNU Emacs. | 7 | ;; This file is part of GNU Emacs. |
diff --git a/lisp/thingatpt.el b/lisp/thingatpt.el index 60a20e2d188..e0184a7ccb3 100644 --- a/lisp/thingatpt.el +++ b/lisp/thingatpt.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 1991-1998, 2000-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1991-1998, 2000-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: Mike Williams <mikew@gopher.dosli.govt.nz> | 5 | ;; Author: Mike Williams <mikew@gopher.dosli.govt.nz> |
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Keywords: extensions, matching, mouse | 6 | ;; Keywords: extensions, matching, mouse |
| 8 | ;; Created: Thu Mar 28 13:48:23 1991 | 7 | ;; Created: Thu Mar 28 13:48:23 1991 |
| 9 | 8 | ||
diff --git a/lisp/thread.el b/lisp/thread.el index e8f3cc7da6a..3242d1dade6 100644 --- a/lisp/thread.el +++ b/lisp/thread.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 2018-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 2018-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: Gemini Lasswell <gazally@runbox.com> | 5 | ;; Author: Gemini Lasswell <gazally@runbox.com> |
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Keywords: thread, tools | 6 | ;; Keywords: thread, tools |
| 8 | 7 | ||
| 9 | ;; This file is part of GNU Emacs. | 8 | ;; This file is part of GNU Emacs. |
diff --git a/lisp/thumbs.el b/lisp/thumbs.el index 6a17a756548..dd0491a66a3 100644 --- a/lisp/thumbs.el +++ b/lisp/thumbs.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 2004-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 2004-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: Jean-Philippe Theberge <jphiltheberge@videotron.ca> | 5 | ;; Author: Jean-Philippe Theberge <jphiltheberge@videotron.ca> |
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Keywords: Multimedia | 6 | ;; Keywords: Multimedia |
| 8 | 7 | ||
| 9 | ;; This file is part of GNU Emacs. | 8 | ;; This file is part of GNU Emacs. |
diff --git a/lisp/time.el b/lisp/time.el index 35157c5e807..c2f60d31bd4 100644 --- a/lisp/time.el +++ b/lisp/time.el | |||
| @@ -3,8 +3,6 @@ | |||
| 3 | ;; Copyright (C) 1985-1987, 1993-1994, 1996, 2000-2019 Free Software | 3 | ;; Copyright (C) 1985-1987, 1993-1994, 1996, 2000-2019 Free Software |
| 4 | ;; Foundation, Inc. | 4 | ;; Foundation, Inc. |
| 5 | 5 | ||
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | |||
| 8 | ;; This file is part of GNU Emacs. | 6 | ;; This file is part of GNU Emacs. |
| 9 | 7 | ||
| 10 | ;; GNU Emacs is free software: you can redistribute it and/or modify | 8 | ;; GNU Emacs is free software: you can redistribute it and/or modify |
diff --git a/lisp/tmm.el b/lisp/tmm.el index 44f04eab87b..bb96b5a46a0 100644 --- a/lisp/tmm.el +++ b/lisp/tmm.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 1994-1996, 2000-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1994-1996, 2000-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: Ilya Zakharevich <ilya@math.mps.ohio-state.edu> | 5 | ;; Author: Ilya Zakharevich <ilya@math.mps.ohio-state.edu> |
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Keywords: convenience | 6 | ;; Keywords: convenience |
| 8 | 7 | ||
| 9 | ;; This file is part of GNU Emacs. | 8 | ;; This file is part of GNU Emacs. |
diff --git a/lisp/tutorial.el b/lisp/tutorial.el index 37ebb5cbe7c..e42818218e0 100644 --- a/lisp/tutorial.el +++ b/lisp/tutorial.el | |||
| @@ -2,7 +2,6 @@ | |||
| 2 | 2 | ||
| 3 | ;; Copyright (C) 2006-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 2006-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Maintainer: emacs-devel@gnu.org | ||
| 6 | ;; Keywords: help, internal | 5 | ;; Keywords: help, internal |
| 7 | ;; Package: emacs | 6 | ;; Package: emacs |
| 8 | 7 | ||
diff --git a/lisp/uniquify.el b/lisp/uniquify.el index 3dd9e341351..29612b36c20 100644 --- a/lisp/uniquify.el +++ b/lisp/uniquify.el | |||
| @@ -4,7 +4,6 @@ | |||
| 4 | ;; Inc. | 4 | ;; Inc. |
| 5 | 5 | ||
| 6 | ;; Author: Dick King <king@reasoning.com> | 6 | ;; Author: Dick King <king@reasoning.com> |
| 7 | ;; Maintainer: emacs-devel@gnu.org | ||
| 8 | ;; Keywords: files | 7 | ;; Keywords: files |
| 9 | ;; Created: 15 May 86 | 8 | ;; Created: 15 May 86 |
| 10 | ;; Package: emacs | 9 | ;; Package: emacs |
diff --git a/lisp/url/url-dav.el b/lisp/url/url-dav.el index a4cf0f0ec01..dba313453ff 100644 --- a/lisp/url/url-dav.el +++ b/lisp/url/url-dav.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 2001, 2004-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 2001, 2004-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: Bill Perry <wmperry@gnu.org> | 5 | ;; Author: Bill Perry <wmperry@gnu.org> |
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Keywords: url, vc | 6 | ;; Keywords: url, vc |
| 8 | 7 | ||
| 9 | ;; This file is part of GNU Emacs. | 8 | ;; This file is part of GNU Emacs. |
diff --git a/lisp/url/url-gw.el b/lisp/url/url-gw.el index 54360840784..00d784a9b40 100644 --- a/lisp/url/url-gw.el +++ b/lisp/url/url-gw.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 1997-1998, 2004-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1997-1998, 2004-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: Bill Perry <wmperry@gnu.org> | 5 | ;; Author: Bill Perry <wmperry@gnu.org> |
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Keywords: comm, data, processes | 6 | ;; Keywords: comm, data, processes |
| 8 | 7 | ||
| 9 | ;; This file is part of GNU Emacs. | 8 | ;; This file is part of GNU Emacs. |
diff --git a/lisp/url/url-handlers.el b/lisp/url/url-handlers.el index 4988068293e..9d7837d8a7e 100644 --- a/lisp/url/url-handlers.el +++ b/lisp/url/url-handlers.el | |||
| @@ -23,17 +23,17 @@ | |||
| 23 | 23 | ||
| 24 | ;;; Code: | 24 | ;;; Code: |
| 25 | 25 | ||
| 26 | ;; (require 'url) | ||
| 27 | (require 'url-parse) | 26 | (require 'url-parse) |
| 28 | ;; (require 'url-util) | ||
| 29 | (eval-when-compile (require 'mm-decode)) | 27 | (eval-when-compile (require 'mm-decode)) |
| 30 | ;; (require 'mailcap) | ||
| 31 | (eval-when-compile (require 'subr-x)) | 28 | (eval-when-compile (require 'subr-x)) |
| 32 | ;; The following are autoloaded instead of `require'd to avoid eagerly | 29 | ;; The following are autoloaded instead of `require'd to avoid eagerly |
| 33 | ;; loading all of URL when turning on url-handler-mode in the .emacs. | 30 | ;; loading all of URL when turning on url-handler-mode in the .emacs. |
| 34 | (autoload 'url-expand-file-name "url-expand" "Convert url to a fully specified url, and canonicalize it.") | 31 | (autoload 'url-expand-file-name "url-expand" |
| 35 | (autoload 'mm-dissect-buffer "mm-decode" "Dissect the current buffer and return a list of MIME handles.") | 32 | "Convert URL to a fully specified URL, and canonicalize it.") |
| 36 | (autoload 'url-scheme-get-property "url-methods" "Get property of a URL SCHEME.") | 33 | (autoload 'mm-dissect-buffer "mm-decode" |
| 34 | "Dissect the current buffer and return a list of MIME handles.") | ||
| 35 | (autoload 'url-scheme-get-property "url-methods" | ||
| 36 | "Get PROPERTY of a URL SCHEME.") | ||
| 37 | 37 | ||
| 38 | ;; Always used after mm-dissect-buffer and defined in the same file. | 38 | ;; Always used after mm-dissect-buffer and defined in the same file. |
| 39 | (declare-function mm-save-part-to-file "mm-decode" (handle file)) | 39 | (declare-function mm-save-part-to-file "mm-decode" (handle file)) |
| @@ -112,15 +112,16 @@ | |||
| 112 | (push (cons url-handler-regexp 'url-file-handler) | 112 | (push (cons url-handler-regexp 'url-file-handler) |
| 113 | file-name-handler-alist))) | 113 | file-name-handler-alist))) |
| 114 | 114 | ||
| 115 | (defcustom url-handler-regexp "\\`\\(https?\\|ftp\\|file\\|nfs\\|ssh\\|scp\\|rsync\\|telnet\\)://" | 115 | (defcustom url-handler-regexp |
| 116 | "\\`\\(?:https?\\|ftp\\|file\\|nfs\\|ssh\\|scp\\|rsync\\|telnet\\)://" | ||
| 116 | "Regular expression for URLs handled by `url-handler-mode'. | 117 | "Regular expression for URLs handled by `url-handler-mode'. |
| 117 | When URL Handler mode is enabled, this regular expression is | 118 | When URL Handler mode is enabled, this regular expression is |
| 118 | added to `file-name-handler-alist'. | 119 | added to `file-name-handler-alist'. |
| 119 | 120 | ||
| 120 | Some valid URL protocols just do not make sense to visit | 121 | Some valid URL protocols just do not make sense to visit |
| 121 | interactively \(about, data, info, irc, mailto, etc.). This | 122 | interactively (about, data, info, irc, mailto, etc.). This |
| 122 | regular expression avoids conflicts with local files that look | 123 | regular expression avoids conflicts with local files that look |
| 123 | like URLs \(Gnus is particularly bad at this)." | 124 | like URLs (Gnus is particularly bad at this)." |
| 124 | :group 'url | 125 | :group 'url |
| 125 | :type 'regexp | 126 | :type 'regexp |
| 126 | :version "25.1" | 127 | :version "25.1" |
| @@ -144,8 +145,8 @@ like URLs \(Gnus is particularly bad at this)." | |||
| 144 | ;;;###autoload | 145 | ;;;###autoload |
| 145 | (defun url-file-handler (operation &rest args) | 146 | (defun url-file-handler (operation &rest args) |
| 146 | "Function called from the `file-name-handler-alist' routines. | 147 | "Function called from the `file-name-handler-alist' routines. |
| 147 | OPERATION is what needs to be done (`file-exists-p', etc). ARGS are | 148 | OPERATION is what needs to be done (`file-exists-p', etc.). |
| 148 | the arguments that would have been passed to OPERATION." | 149 | ARGS are the arguments that would have been passed to OPERATION." |
| 149 | ;; Avoid recursive load. | 150 | ;; Avoid recursive load. |
| 150 | (if (and load-in-progress url-file-handler-load-in-progress) | 151 | (if (and load-in-progress url-file-handler-load-in-progress) |
| 151 | (url-run-real-handler operation args) | 152 | (url-run-real-handler operation args) |
| @@ -153,48 +154,46 @@ the arguments that would have been passed to OPERATION." | |||
| 153 | ;; Check, whether there are arguments we want pass to Tramp. | 154 | ;; Check, whether there are arguments we want pass to Tramp. |
| 154 | (if (catch :do | 155 | (if (catch :do |
| 155 | (dolist (url (cons default-directory args)) | 156 | (dolist (url (cons default-directory args)) |
| 156 | (and (member | 157 | (and (stringp url) |
| 157 | (url-type (url-generic-parse-url (and (stringp url) url))) | 158 | (member (url-type (url-generic-parse-url url)) |
| 158 | url-tramp-protocols) | 159 | url-tramp-protocols) |
| 159 | (throw :do t)))) | 160 | (throw :do t)))) |
| 160 | (apply 'url-tramp-file-handler operation args) | 161 | (apply #'url-tramp-file-handler operation args) |
| 161 | ;; Otherwise, let's do the job. | 162 | ;; Otherwise, let's do the job. |
| 162 | (let ((fn (get operation 'url-file-handlers)) | 163 | (let ((fn (get operation 'url-file-handlers)) |
| 163 | (val nil) | 164 | val) |
| 164 | (hooked nil)) | 165 | (if (and (not fn) |
| 165 | (if (and (not fn) (intern-soft (format "url-%s" operation)) | ||
| 166 | (fboundp (intern-soft (format "url-%s" operation)))) | 166 | (fboundp (intern-soft (format "url-%s" operation)))) |
| 167 | (error "Missing URL handler mapping for %s" operation)) | 167 | (error "Missing URL handler mapping for %s" operation)) |
| 168 | (if fn | 168 | (setq val (if fn (save-match-data (apply fn args)) |
| 169 | (setq hooked t | 169 | (url-run-real-handler operation args))) |
| 170 | val (save-match-data (apply fn args))) | 170 | (url-debug 'handlers "%s %S%S => %S" (if fn "Hooked" "Real") |
| 171 | (setq hooked nil | ||
| 172 | val (url-run-real-handler operation args))) | ||
| 173 | (url-debug 'handlers "%s %S%S => %S" (if hooked "Hooked" "Real") | ||
| 174 | operation args val) | 171 | operation args val) |
| 175 | val))))) | 172 | val))))) |
| 176 | 173 | ||
| 177 | (defun url-file-handler-identity (&rest args) | 174 | (defun url-file-handler-identity (arg &rest _ignored) |
| 178 | ;; Identity function | 175 | ;; Identity function. |
| 179 | (car args)) | 176 | arg) |
| 180 | 177 | ||
| 181 | ;; These are operations that we can fully support | 178 | ;; These are operations that we can fully support. |
| 182 | (put 'file-readable-p 'url-file-handlers 'url-file-exists-p) | 179 | (put 'file-readable-p 'url-file-handlers #'url-file-exists-p) |
| 183 | (put 'substitute-in-file-name 'url-file-handlers 'url-file-handler-identity) | 180 | (put 'substitute-in-file-name 'url-file-handlers #'url-file-handler-identity) |
| 184 | (put 'file-name-absolute-p 'url-file-handlers (lambda (&rest ignored) t)) | 181 | (put 'file-name-absolute-p 'url-file-handlers (lambda (&rest _ignored) t)) |
| 185 | (put 'expand-file-name 'url-file-handlers 'url-handler-expand-file-name) | 182 | (put 'expand-file-name 'url-file-handlers #'url-handler-expand-file-name) |
| 186 | (put 'directory-file-name 'url-file-handlers 'url-handler-directory-file-name) | 183 | (put 'directory-file-name 'url-file-handlers #'url-handler-directory-file-name) |
| 187 | (put 'file-name-directory 'url-file-handlers 'url-handler-file-name-directory) | 184 | (put 'file-name-directory 'url-file-handlers #'url-handler-file-name-directory) |
| 188 | (put 'unhandled-file-name-directory 'url-file-handlers 'url-handler-unhandled-file-name-directory) | 185 | (put 'unhandled-file-name-directory 'url-file-handlers |
| 189 | (put 'file-remote-p 'url-file-handlers 'url-handler-file-remote-p) | 186 | #'url-handler-unhandled-file-name-directory) |
| 190 | ;; (put 'file-name-as-directory 'url-file-handlers 'url-handler-file-name-as-directory) | 187 | (put 'file-remote-p 'url-file-handlers #'url-handler-file-remote-p) |
| 188 | ;; (put 'file-name-as-directory 'url-file-handlers | ||
| 189 | ;; #'url-handler-file-name-as-directory) | ||
| 191 | 190 | ||
| 192 | ;; These are operations that we do not support yet (DAV!!!) | 191 | ;; These are operations that we do not support yet (DAV!!!) |
| 193 | (put 'file-writable-p 'url-file-handlers 'ignore) | 192 | (put 'file-writable-p 'url-file-handlers #'ignore) |
| 194 | (put 'file-symlink-p 'url-file-handlers 'ignore) | 193 | (put 'file-symlink-p 'url-file-handlers #'ignore) |
| 195 | ;; Just like for ange-ftp: let's not waste time trying to look for RCS/foo,v | 194 | ;; Just like for ange-ftp: let's not waste time trying to look for RCS/foo,v |
| 196 | ;; files and such since we can't do anything clever with them anyway. | 195 | ;; files and such since we can't do anything clever with them anyway. |
| 197 | (put 'vc-registered 'url-file-handlers 'ignore) | 196 | (put 'vc-registered 'url-file-handlers #'ignore) |
| 198 | 197 | ||
| 199 | (defun url-handler-expand-file-name (file &optional base) | 198 | (defun url-handler-expand-file-name (file &optional base) |
| 200 | ;; When we see "/foo/bar" in a file whose working dir is "http://bla/bla", | 199 | ;; When we see "/foo/bar" in a file whose working dir is "http://bla/bla", |
| @@ -215,7 +214,7 @@ the arguments that would have been passed to OPERATION." | |||
| 215 | ;; reversible: (f-n-a-d (d-f-n (f-n-a-d X))) == (f-n-a-d X) | 214 | ;; reversible: (f-n-a-d (d-f-n (f-n-a-d X))) == (f-n-a-d X) |
| 216 | (defun url-handler-directory-file-name (dir) | 215 | (defun url-handler-directory-file-name (dir) |
| 217 | ;; When there's more than a single /, just don't touch the slashes at all. | 216 | ;; When there's more than a single /, just don't touch the slashes at all. |
| 218 | (if (string-match "//\\'" dir) dir | 217 | (if (string-suffix-p "//" dir) dir |
| 219 | (url-run-real-handler 'directory-file-name (list dir)))) | 218 | (url-run-real-handler 'directory-file-name (list dir)))) |
| 220 | 219 | ||
| 221 | (defun url-handler-unhandled-file-name-directory (filename) | 220 | (defun url-handler-unhandled-file-name-directory (filename) |
| @@ -257,44 +256,42 @@ the arguments that would have been passed to OPERATION." | |||
| 257 | ;; `url-handler-unhandled-file-name-directory'. | 256 | ;; `url-handler-unhandled-file-name-directory'. |
| 258 | nil))) | 257 | nil))) |
| 259 | 258 | ||
| 260 | ;; The actual implementation | 259 | ;; The actual implementation. |
| 261 | ;;;###autoload | 260 | ;;;###autoload |
| 262 | (defun url-copy-file (url newname &optional ok-if-already-exists | 261 | (defun url-copy-file (url newname &optional ok-if-already-exists &rest _ignored) |
| 263 | _keep-time _preserve-uid-gid _preserve-permissions) | 262 | "Copy URL to NEWNAME. Both arguments must be strings. |
| 264 | "Copy URL to NEWNAME. Both args must be strings. | 263 | Signal a `file-already-exists' error if file NEWNAME already |
| 265 | Signal a `file-already-exists' error if file NEWNAME already exists, | 264 | exists, unless a third argument OK-IF-ALREADY-EXISTS is supplied |
| 266 | unless a third argument OK-IF-ALREADY-EXISTS is supplied and non-nil. | 265 | and non-nil. An integer as third argument means request |
| 267 | A number as third arg means request confirmation if NEWNAME already exists. | 266 | confirmation if NEWNAME already exists." |
| 268 | This is what happens in interactive use with M-x. | 267 | (and (file-exists-p newname) |
| 269 | Fourth arg KEEP-TIME non-nil means give the new file the same | 268 | (or (not ok-if-already-exists) |
| 270 | last-modified time as the old one. (This works on only some systems.) | 269 | (and (integerp ok-if-already-exists) |
| 271 | Args PRESERVE-UID-GID and PRESERVE-PERMISSIONS are ignored. | 270 | (not (yes-or-no-p |
| 272 | A prefix arg makes KEEP-TIME non-nil." | 271 | (format "File %s already exists; copy to it anyway? " |
| 273 | (if (and (file-exists-p newname) | 272 | newname))))) |
| 274 | (not ok-if-already-exists)) | 273 | (signal 'file-already-exists (list "File already exists" newname))) |
| 275 | (signal 'file-already-exists (list "File exists" newname))) | 274 | (let* ((buffer (or (url-retrieve-synchronously url) |
| 276 | (let ((buffer (url-retrieve-synchronously url)) | 275 | (signal 'file-missing |
| 277 | (handle nil)) | 276 | (list "Opening URL" |
| 278 | (if (not buffer) | 277 | "No such file or directory" url)))) |
| 279 | (signal 'file-missing (list "Opening URL" "No such file or directory" | 278 | (handle (with-current-buffer buffer |
| 280 | url))) | 279 | (mm-dissect-buffer t)))) |
| 281 | (with-current-buffer buffer | ||
| 282 | (setq handle (mm-dissect-buffer t))) | ||
| 283 | (let ((mm-attachment-file-modes (default-file-modes))) | 280 | (let ((mm-attachment-file-modes (default-file-modes))) |
| 284 | (mm-save-part-to-file handle newname)) | 281 | (mm-save-part-to-file handle newname)) |
| 285 | (kill-buffer buffer) | 282 | (kill-buffer buffer) |
| 286 | (mm-destroy-parts handle))) | 283 | (mm-destroy-parts handle))) |
| 287 | (put 'copy-file 'url-file-handlers 'url-copy-file) | 284 | (put 'copy-file 'url-file-handlers #'url-copy-file) |
| 288 | 285 | ||
| 289 | ;;;###autoload | 286 | ;;;###autoload |
| 290 | (defun url-file-local-copy (url &rest ignored) | 287 | (defun url-file-local-copy (url &rest _ignored) |
| 291 | "Copy URL into a temporary file on this machine. | 288 | "Copy URL into a temporary file on this machine. |
| 292 | Returns the name of the local copy, or nil, if FILE is directly | 289 | Returns the name of the local copy, or nil, if FILE is directly |
| 293 | accessible." | 290 | accessible." |
| 294 | (let ((filename (make-temp-file "url"))) | 291 | (let ((filename (make-temp-file "url"))) |
| 295 | (url-copy-file url filename 'ok-if-already-exists) | 292 | (url-copy-file url filename 'ok-if-already-exists) |
| 296 | filename)) | 293 | filename)) |
| 297 | (put 'file-local-copy 'url-file-handlers 'url-file-local-copy) | 294 | (put 'file-local-copy 'url-file-handlers #'url-file-local-copy) |
| 298 | 295 | ||
| 299 | (defun url-insert (buffer &optional beg end) | 296 | (defun url-insert (buffer &optional beg end) |
| 300 | "Insert the body of a URL object. | 297 | "Insert the body of a URL object. |
| @@ -330,8 +327,8 @@ This is like `url-insert', but also decodes the current buffer as | |||
| 330 | if it had been inserted from a file named URL." | 327 | if it had been inserted from a file named URL." |
| 331 | (if visit (setq buffer-file-name url)) | 328 | (if visit (setq buffer-file-name url)) |
| 332 | (save-excursion | 329 | (save-excursion |
| 333 | (let* ((start (point)) | 330 | (let ((start (point)) |
| 334 | (size-and-charset (url-insert buffer beg end))) | 331 | (size-and-charset (url-insert buffer beg end))) |
| 335 | (kill-buffer buffer) | 332 | (kill-buffer buffer) |
| 336 | (when replace | 333 | (when replace |
| 337 | (delete-region (point-min) start) | 334 | (delete-region (point-min) start) |
| @@ -342,10 +339,9 @@ if it had been inserted from a file named URL." | |||
| 342 | (decode-coding-inserted-region (point-min) (point) url | 339 | (decode-coding-inserted-region (point-min) (point) url |
| 343 | visit beg end replace)) | 340 | visit beg end replace)) |
| 344 | (let ((inserted (car size-and-charset))) | 341 | (let ((inserted (car size-and-charset))) |
| 345 | (when (fboundp 'after-insert-file-set-coding) | 342 | (list url (or (and (fboundp 'after-insert-file-set-coding) |
| 346 | (let ((insval (after-insert-file-set-coding inserted visit))) | 343 | (after-insert-file-set-coding inserted visit)) |
| 347 | (if insval (setq inserted insval)))) | 344 | inserted)))))) |
| 348 | (list url inserted))))) | ||
| 349 | 345 | ||
| 350 | ;;;###autoload | 346 | ;;;###autoload |
| 351 | (defun url-insert-file-contents (url &optional visit beg end replace) | 347 | (defun url-insert-file-contents (url &optional visit beg end replace) |
| @@ -356,15 +352,14 @@ if it had been inserted from a file named URL." | |||
| 356 | ;; instead. See bug#17549. | 352 | ;; instead. See bug#17549. |
| 357 | (url-http--insert-file-helper buffer url visit)) | 353 | (url-http--insert-file-helper buffer url visit)) |
| 358 | (url-insert-buffer-contents buffer url visit beg end replace))) | 354 | (url-insert-buffer-contents buffer url visit beg end replace))) |
| 359 | 355 | (put 'insert-file-contents 'url-file-handlers #'url-insert-file-contents) | |
| 360 | (put 'insert-file-contents 'url-file-handlers 'url-insert-file-contents) | ||
| 361 | 356 | ||
| 362 | (defun url-file-name-completion (url _directory &optional _predicate) | 357 | (defun url-file-name-completion (url _directory &optional _predicate) |
| 363 | ;; Even if it's not implemented, it's not an error to ask for completion, | 358 | ;; Even if it's not implemented, it's not an error to ask for completion, |
| 364 | ;; in case it's available (bug#14806). | 359 | ;; in case it's available (bug#14806). |
| 365 | ;; (error "Unimplemented") | 360 | ;; (error "Unimplemented") |
| 366 | url) | 361 | url) |
| 367 | (put 'file-name-completion 'url-file-handlers 'url-file-name-completion) | 362 | (put 'file-name-completion 'url-file-handlers #'url-file-name-completion) |
| 368 | 363 | ||
| 369 | (defun url-file-name-all-completions (_file _directory) | 364 | (defun url-file-name-all-completions (_file _directory) |
| 370 | ;; Even if it's not implemented, it's not an error to ask for completion, | 365 | ;; Even if it's not implemented, it's not an error to ask for completion, |
| @@ -372,7 +367,7 @@ if it had been inserted from a file named URL." | |||
| 372 | ;; (error "Unimplemented") | 367 | ;; (error "Unimplemented") |
| 373 | nil) | 368 | nil) |
| 374 | (put 'file-name-all-completions | 369 | (put 'file-name-all-completions |
| 375 | 'url-file-handlers 'url-file-name-all-completions) | 370 | 'url-file-handlers #'url-file-name-all-completions) |
| 376 | 371 | ||
| 377 | ;; All other handlers map onto their respective backends. | 372 | ;; All other handlers map onto their respective backends. |
| 378 | (defmacro url-handlers-create-wrapper (method args) | 373 | (defmacro url-handlers-create-wrapper (method args) |
| @@ -382,10 +377,10 @@ if it had been inserted from a file named URL." | |||
| 382 | (or (documentation method t) "No original documentation.")) | 377 | (or (documentation method t) "No original documentation.")) |
| 383 | (setq url (url-generic-parse-url url)) | 378 | (setq url (url-generic-parse-url url)) |
| 384 | (when (url-type url) | 379 | (when (url-type url) |
| 385 | (funcall (url-scheme-get-property (url-type url) (quote ,method)) | 380 | (funcall (url-scheme-get-property (url-type url) ',method) |
| 386 | ,@(remove '&rest (remove '&optional args))))) | 381 | ,@(remq '&rest (remq '&optional args))))) |
| 387 | (unless (get ',method 'url-file-handlers) | 382 | (unless (get ',method 'url-file-handlers) |
| 388 | (put ',method 'url-file-handlers ',(intern (format "url-%s" method)))))) | 383 | (put ',method 'url-file-handlers #',(intern (format "url-%s" method)))))) |
| 389 | 384 | ||
| 390 | (url-handlers-create-wrapper file-exists-p (url)) | 385 | (url-handlers-create-wrapper file-exists-p (url)) |
| 391 | (url-handlers-create-wrapper file-attributes (url &optional id-format)) | 386 | (url-handlers-create-wrapper file-attributes (url &optional id-format)) |
| @@ -396,12 +391,12 @@ if it had been inserted from a file named URL." | |||
| 396 | (url-handlers-create-wrapper directory-files (url &optional full match nosort)) | 391 | (url-handlers-create-wrapper directory-files (url &optional full match nosort)) |
| 397 | (url-handlers-create-wrapper file-truename (url &optional counter prev-dirs)) | 392 | (url-handlers-create-wrapper file-truename (url &optional counter prev-dirs)) |
| 398 | 393 | ||
| 399 | (add-hook 'find-file-hook 'url-handlers-set-buffer-mode) | 394 | (add-hook 'find-file-hook #'url-handlers-set-buffer-mode) |
| 400 | 395 | ||
| 401 | (defun url-handlers-set-buffer-mode () | 396 | (defun url-handlers-set-buffer-mode () |
| 402 | "Set correct modes for the current buffer if visiting a remote file." | 397 | "Set correct modes for the current buffer if visiting a remote file." |
| 403 | (and (stringp buffer-file-name) | 398 | (and buffer-file-name |
| 404 | (string-match url-handler-regexp buffer-file-name) | 399 | (string-match-p url-handler-regexp buffer-file-name) |
| 405 | (auto-save-mode 0))) | 400 | (auto-save-mode 0))) |
| 406 | 401 | ||
| 407 | (provide 'url-handlers) | 402 | (provide 'url-handlers) |
diff --git a/lisp/url/url-http.el b/lisp/url/url-http.el index 00803a103a0..a11f5147afc 100644 --- a/lisp/url/url-http.el +++ b/lisp/url/url-http.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 1999, 2001, 2004-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1999, 2001, 2004-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: Bill Perry <wmperry@gnu.org> | 5 | ;; Author: Bill Perry <wmperry@gnu.org> |
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Keywords: comm, data, processes | 6 | ;; Keywords: comm, data, processes |
| 8 | 7 | ||
| 9 | ;; This file is part of GNU Emacs. | 8 | ;; This file is part of GNU Emacs. |
diff --git a/lisp/url/url-util.el b/lisp/url/url-util.el index a46e7bb3855..dbcc9a6168c 100644 --- a/lisp/url/url-util.el +++ b/lisp/url/url-util.el | |||
| @@ -4,7 +4,6 @@ | |||
| 4 | ;; Inc. | 4 | ;; Inc. |
| 5 | 5 | ||
| 6 | ;; Author: Bill Perry <wmperry@gnu.org> | 6 | ;; Author: Bill Perry <wmperry@gnu.org> |
| 7 | ;; Maintainer: emacs-devel@gnu.org | ||
| 8 | ;; Keywords: comm, data, processes | 7 | ;; Keywords: comm, data, processes |
| 9 | 8 | ||
| 10 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
diff --git a/lisp/url/url.el b/lisp/url/url.el index 5242d42f04c..eafac8a1929 100644 --- a/lisp/url/url.el +++ b/lisp/url/url.el | |||
| @@ -4,7 +4,6 @@ | |||
| 4 | ;; Inc. | 4 | ;; Inc. |
| 5 | 5 | ||
| 6 | ;; Author: Bill Perry <wmperry@gnu.org> | 6 | ;; Author: Bill Perry <wmperry@gnu.org> |
| 7 | ;; Maintainer: emacs-devel@gnu.org | ||
| 8 | ;; Keywords: comm, data, processes, hypermedia | 7 | ;; Keywords: comm, data, processes, hypermedia |
| 9 | 8 | ||
| 10 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
diff --git a/lisp/userlock.el b/lisp/userlock.el index f077bc9ad62..c4178ac42af 100644 --- a/lisp/userlock.el +++ b/lisp/userlock.el | |||
| @@ -4,7 +4,6 @@ | |||
| 4 | 4 | ||
| 5 | ;; Author: Richard King | 5 | ;; Author: Richard King |
| 6 | ;; (according to authors.el) | 6 | ;; (according to authors.el) |
| 7 | ;; Maintainer: emacs-devel@gnu.org | ||
| 8 | ;; Keywords: internal | 7 | ;; Keywords: internal |
| 9 | ;; Package: emacs | 8 | ;; Package: emacs |
| 10 | 9 | ||
diff --git a/lisp/vc/add-log.el b/lisp/vc/add-log.el index f9efd44c5c7..5cd4f46ed58 100644 --- a/lisp/vc/add-log.el +++ b/lisp/vc/add-log.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 1985-1986, 1988, 1993-1994, 1997-1998, 2000-2019 Free | 3 | ;; Copyright (C) 1985-1986, 1988, 1993-1994, 1997-1998, 2000-2019 Free |
| 4 | ;; Software Foundation, Inc. | 4 | ;; Software Foundation, Inc. |
| 5 | 5 | ||
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Keywords: vc tools | 6 | ;; Keywords: vc tools |
| 8 | 7 | ||
| 9 | ;; This file is part of GNU Emacs. | 8 | ;; This file is part of GNU Emacs. |
diff --git a/lisp/vc/compare-w.el b/lisp/vc/compare-w.el index 02c08af8b20..2811d4691b7 100644 --- a/lisp/vc/compare-w.el +++ b/lisp/vc/compare-w.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 1986, 1989, 1993, 1997, 2001-2019 Free Software | 3 | ;; Copyright (C) 1986, 1989, 1993, 1997, 2001-2019 Free Software |
| 4 | ;; Foundation, Inc. | 4 | ;; Foundation, Inc. |
| 5 | 5 | ||
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Keywords: convenience files vc | 6 | ;; Keywords: convenience files vc |
| 8 | 7 | ||
| 9 | ;; This file is part of GNU Emacs. | 8 | ;; This file is part of GNU Emacs. |
diff --git a/lisp/vc/diff.el b/lisp/vc/diff.el index 523be87bc49..bee36592a1a 100644 --- a/lisp/vc/diff.el +++ b/lisp/vc/diff.el | |||
| @@ -5,7 +5,6 @@ | |||
| 5 | 5 | ||
| 6 | ;; Author: Frank Bresz | 6 | ;; Author: Frank Bresz |
| 7 | ;; (according to authors.el) | 7 | ;; (according to authors.el) |
| 8 | ;; Maintainer: emacs-devel@gnu.org | ||
| 9 | ;; Keywords: unix, vc, tools | 8 | ;; Keywords: unix, vc, tools |
| 10 | 9 | ||
| 11 | ;; This file is part of GNU Emacs. | 10 | ;; This file is part of GNU Emacs. |
diff --git a/lisp/vc/vc-annotate.el b/lisp/vc/vc-annotate.el index 84838135fcc..15f234fda62 100644 --- a/lisp/vc/vc-annotate.el +++ b/lisp/vc/vc-annotate.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 1997-1998, 2000-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1997-1998, 2000-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: Martin Lorentzson <emwson@emw.ericsson.se> | 5 | ;; Author: Martin Lorentzson <emwson@emw.ericsson.se> |
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Keywords: vc tools | 6 | ;; Keywords: vc tools |
| 8 | ;; Package: vc | 7 | ;; Package: vc |
| 9 | 8 | ||
diff --git a/lisp/vc/vc-bzr.el b/lisp/vc/vc-bzr.el index ee1646cae5a..3ab8c496408 100644 --- a/lisp/vc/vc-bzr.el +++ b/lisp/vc/vc-bzr.el | |||
| @@ -4,7 +4,6 @@ | |||
| 4 | 4 | ||
| 5 | ;; Author: Dave Love <fx@gnu.org> | 5 | ;; Author: Dave Love <fx@gnu.org> |
| 6 | ;; Riccardo Murri <riccardo.murri@gmail.com> | 6 | ;; Riccardo Murri <riccardo.murri@gmail.com> |
| 7 | ;; Maintainer: emacs-devel@gnu.org | ||
| 8 | ;; Keywords: vc tools | 7 | ;; Keywords: vc tools |
| 9 | ;; Created: Sept 2006 | 8 | ;; Created: Sept 2006 |
| 10 | ;; Package: vc | 9 | ;; Package: vc |
diff --git a/lisp/vc/vc-cvs.el b/lisp/vc/vc-cvs.el index 626e190c1e8..cc1845a59f6 100644 --- a/lisp/vc/vc-cvs.el +++ b/lisp/vc/vc-cvs.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 1995, 1998-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1995, 1998-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: FSF (see vc.el for full credits) | 5 | ;; Author: FSF (see vc.el for full credits) |
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Package: vc | 6 | ;; Package: vc |
| 8 | 7 | ||
| 9 | ;; This file is part of GNU Emacs. | 8 | ;; This file is part of GNU Emacs. |
diff --git a/lisp/vc/vc-dispatcher.el b/lisp/vc/vc-dispatcher.el index c4b327a3f01..579448b31ca 100644 --- a/lisp/vc/vc-dispatcher.el +++ b/lisp/vc/vc-dispatcher.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 2008-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 2008-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: FSF (see below for full credits) | 5 | ;; Author: FSF (see below for full credits) |
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Keywords: vc tools | 6 | ;; Keywords: vc tools |
| 8 | ;; Package: vc | 7 | ;; Package: vc |
| 9 | 8 | ||
diff --git a/lisp/vc/vc-filewise.el b/lisp/vc/vc-filewise.el index f05e8efff90..37c71f98641 100644 --- a/lisp/vc/vc-filewise.el +++ b/lisp/vc/vc-filewise.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 1992-1996, 1998-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1992-1996, 1998-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: FSF (see vc.el for full credits) | 5 | ;; Author: FSF (see vc.el for full credits) |
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Package: vc | 6 | ;; Package: vc |
| 8 | 7 | ||
| 9 | ;; This file is part of GNU Emacs. | 8 | ;; This file is part of GNU Emacs. |
diff --git a/lisp/vc/vc-hg.el b/lisp/vc/vc-hg.el index 876d824ceac..f1b603b2a93 100644 --- a/lisp/vc/vc-hg.el +++ b/lisp/vc/vc-hg.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 2006-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 2006-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: Ivan Kanis | 5 | ;; Author: Ivan Kanis |
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Keywords: vc tools | 6 | ;; Keywords: vc tools |
| 8 | ;; Package: vc | 7 | ;; Package: vc |
| 9 | 8 | ||
diff --git a/lisp/vc/vc-hooks.el b/lisp/vc/vc-hooks.el index 07b3d86b518..1871e1e95c5 100644 --- a/lisp/vc/vc-hooks.el +++ b/lisp/vc/vc-hooks.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 1992-1996, 1998-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1992-1996, 1998-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: FSF (see vc.el for full credits) | 5 | ;; Author: FSF (see vc.el for full credits) |
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Package: vc | 6 | ;; Package: vc |
| 8 | 7 | ||
| 9 | ;; This file is part of GNU Emacs. | 8 | ;; This file is part of GNU Emacs. |
diff --git a/lisp/vc/vc-rcs.el b/lisp/vc/vc-rcs.el index 598e98250ac..ee227b19a39 100644 --- a/lisp/vc/vc-rcs.el +++ b/lisp/vc/vc-rcs.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 1992-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1992-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: FSF (see vc.el for full credits) | 5 | ;; Author: FSF (see vc.el for full credits) |
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Package: vc | 6 | ;; Package: vc |
| 8 | 7 | ||
| 9 | ;; This file is part of GNU Emacs. | 8 | ;; This file is part of GNU Emacs. |
diff --git a/lisp/vc/vc-sccs.el b/lisp/vc/vc-sccs.el index 4e9f5a025fb..0d27528e515 100644 --- a/lisp/vc/vc-sccs.el +++ b/lisp/vc/vc-sccs.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 1992-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1992-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: FSF (see vc.el for full credits) | 5 | ;; Author: FSF (see vc.el for full credits) |
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Package: vc | 6 | ;; Package: vc |
| 8 | 7 | ||
| 9 | ;; This file is part of GNU Emacs. | 8 | ;; This file is part of GNU Emacs. |
diff --git a/lisp/vc/vc-src.el b/lisp/vc/vc-src.el index f8475925b02..b708cd41a79 100644 --- a/lisp/vc/vc-src.el +++ b/lisp/vc/vc-src.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 1992-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1992-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: FSF (see vc.el for full credits) | 5 | ;; Author: FSF (see vc.el for full credits) |
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Package: vc | 6 | ;; Package: vc |
| 8 | 7 | ||
| 9 | ;; This file is part of GNU Emacs. | 8 | ;; This file is part of GNU Emacs. |
diff --git a/lisp/vc/vc.el b/lisp/vc/vc.el index b992a8ebe09..d9fb8290d2b 100644 --- a/lisp/vc/vc.el +++ b/lisp/vc/vc.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 1992-1998, 2000-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1992-1998, 2000-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: FSF (see below for full credits) | 5 | ;; Author: FSF (see below for full credits) |
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Keywords: vc tools | 6 | ;; Keywords: vc tools |
| 8 | 7 | ||
| 9 | ;; This file is part of GNU Emacs. | 8 | ;; This file is part of GNU Emacs. |
diff --git a/lisp/vcursor.el b/lisp/vcursor.el index 3e8b6ee838e..7673d9b7b86 100644 --- a/lisp/vcursor.el +++ b/lisp/vcursor.el | |||
| @@ -4,7 +4,6 @@ | |||
| 4 | ;; Inc. | 4 | ;; Inc. |
| 5 | 5 | ||
| 6 | ;; Author: Peter Stephenson <pws@ibmth.df.unipi.it> | 6 | ;; Author: Peter Stephenson <pws@ibmth.df.unipi.it> |
| 7 | ;; Maintainer: emacs-devel@gnu.org | ||
| 8 | ;; Keywords: virtual cursor, convenience | 7 | ;; Keywords: virtual cursor, convenience |
| 9 | 8 | ||
| 10 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
diff --git a/lisp/version.el b/lisp/version.el index d13d8c31e80..d5bc3eb984a 100644 --- a/lisp/version.el +++ b/lisp/version.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 1985, 1992, 1994-1995, 1999-2019 Free Software | 3 | ;; Copyright (C) 1985, 1992, 1994-1995, 1999-2019 Free Software |
| 4 | ;; Foundation, Inc. | 4 | ;; Foundation, Inc. |
| 5 | 5 | ||
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Keywords: internal | 6 | ;; Keywords: internal |
| 8 | ;; Package: emacs | 7 | ;; Package: emacs |
| 9 | 8 | ||
diff --git a/lisp/view.el b/lisp/view.el index e74ce1e8888..c8d5f0de205 100644 --- a/lisp/view.el +++ b/lisp/view.el | |||
| @@ -4,7 +4,6 @@ | |||
| 4 | ;; Foundation, Inc. | 4 | ;; Foundation, Inc. |
| 5 | 5 | ||
| 6 | ;; Author: K. Shane Hartman | 6 | ;; Author: K. Shane Hartman |
| 7 | ;; Maintainer: emacs-devel@gnu.org | ||
| 8 | ;; Keywords: files | 7 | ;; Keywords: files |
| 9 | 8 | ||
| 10 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
diff --git a/lisp/vt100-led.el b/lisp/vt100-led.el index d7b5f0a803e..6678f49dfcf 100644 --- a/lisp/vt100-led.el +++ b/lisp/vt100-led.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 1988, 2001-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1988, 2001-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: Howard Gayle | 5 | ;; Author: Howard Gayle |
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Keywords: hardware | 6 | ;; Keywords: hardware |
| 8 | 7 | ||
| 9 | ;; This file is part of GNU Emacs. | 8 | ;; This file is part of GNU Emacs. |
diff --git a/lisp/w32-fns.el b/lisp/w32-fns.el index 2b6464ab986..443a995cb8d 100644 --- a/lisp/w32-fns.el +++ b/lisp/w32-fns.el | |||
| @@ -308,7 +308,7 @@ names." | |||
| 308 | (declare-function w32-version "w32-win" ()) | 308 | (declare-function w32-version "w32-win" ()) |
| 309 | (declare-function w32-read-registry "w32fns" (root key name)) | 309 | (declare-function w32-read-registry "w32fns" (root key name)) |
| 310 | 310 | ||
| 311 | (defun w32--os-descriptiono () | 311 | (defun w32--os-description () |
| 312 | "Return a string describing the underlying OS and its version." | 312 | "Return a string describing the underlying OS and its version." |
| 313 | (let* ((w32ver (car (w32-version))) | 313 | (let* ((w32ver (car (w32-version))) |
| 314 | (w9x-p (< w32ver 5)) | 314 | (w9x-p (< w32ver 5)) |
diff --git a/lisp/wid-edit.el b/lisp/wid-edit.el index b9f98cdc4c7..713c8575c7d 100644 --- a/lisp/wid-edit.el +++ b/lisp/wid-edit.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 1996-1997, 1999-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1996-1997, 1999-2019 Free Software Foundation, Inc. |
| 4 | ;; | 4 | ;; |
| 5 | ;; Author: Per Abrahamsen <abraham@dina.kvl.dk> | 5 | ;; Author: Per Abrahamsen <abraham@dina.kvl.dk> |
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Keywords: extensions | 6 | ;; Keywords: extensions |
| 8 | ;; Package: emacs | 7 | ;; Package: emacs |
| 9 | 8 | ||
diff --git a/lisp/window.el b/lisp/window.el index 2c9d177d0a2..7e6a48460e5 100644 --- a/lisp/window.el +++ b/lisp/window.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 1985, 1989, 1992-1994, 2000-2019 Free Software | 3 | ;; Copyright (C) 1985, 1989, 1992-1994, 2000-2019 Free Software |
| 4 | ;; Foundation, Inc. | 4 | ;; Foundation, Inc. |
| 5 | 5 | ||
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Keywords: internal | 6 | ;; Keywords: internal |
| 8 | ;; Package: emacs | 7 | ;; Package: emacs |
| 9 | 8 | ||
diff --git a/lisp/woman.el b/lisp/woman.el index 39d9b806d27..57354478fb0 100644 --- a/lisp/woman.el +++ b/lisp/woman.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 2000-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 2000-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: Francis J. Wright <F.J.Wright@qmul.ac.uk> | 5 | ;; Author: Francis J. Wright <F.J.Wright@qmul.ac.uk> |
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Keywords: help, unix | 6 | ;; Keywords: help, unix |
| 8 | ;; Adapted-By: Eli Zaretskii <eliz@gnu.org> | 7 | ;; Adapted-By: Eli Zaretskii <eliz@gnu.org> |
| 9 | ;; Version: 0.551 | 8 | ;; Version: 0.551 |
diff --git a/lisp/x-dnd.el b/lisp/x-dnd.el index e4e2dec3b82..31d409c8389 100644 --- a/lisp/x-dnd.el +++ b/lisp/x-dnd.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 2004-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 2004-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: Jan Djärv <jan.h.d@swipnet.se> | 5 | ;; Author: Jan Djärv <jan.h.d@swipnet.se> |
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Keywords: window, drag, drop | 6 | ;; Keywords: window, drag, drop |
| 8 | ;; Package: emacs | 7 | ;; Package: emacs |
| 9 | 8 | ||
diff --git a/src/alloc.c b/src/alloc.c index af4adb3856e..5c5b56d02e9 100644 --- a/src/alloc.c +++ b/src/alloc.c | |||
| @@ -6384,7 +6384,7 @@ mark_object (Lisp_Object arg) | |||
| 6384 | do { \ | 6384 | do { \ |
| 6385 | CHECK_ALLOCATED (); \ | 6385 | CHECK_ALLOCATED (); \ |
| 6386 | CHECK_LIVE (LIVEP); \ | 6386 | CHECK_LIVE (LIVEP); \ |
| 6387 | } while (0) \ | 6387 | } while (false) |
| 6388 | 6388 | ||
| 6389 | /* Check both of the above conditions, for symbols. */ | 6389 | /* Check both of the above conditions, for symbols. */ |
| 6390 | #define CHECK_ALLOCATED_AND_LIVE_SYMBOL() \ | 6390 | #define CHECK_ALLOCATED_AND_LIVE_SYMBOL() \ |
| @@ -6394,7 +6394,7 @@ mark_object (Lisp_Object arg) | |||
| 6394 | CHECK_ALLOCATED (); \ | 6394 | CHECK_ALLOCATED (); \ |
| 6395 | CHECK_LIVE (live_symbol_p); \ | 6395 | CHECK_LIVE (live_symbol_p); \ |
| 6396 | } \ | 6396 | } \ |
| 6397 | } while (0) \ | 6397 | } while (false) |
| 6398 | 6398 | ||
| 6399 | #else /* not GC_CHECK_MARKED_OBJECTS */ | 6399 | #else /* not GC_CHECK_MARKED_OBJECTS */ |
| 6400 | 6400 | ||
diff --git a/src/buffer.c b/src/buffer.c index 3b5078a175b..209e29f0f19 100644 --- a/src/buffer.c +++ b/src/buffer.c | |||
| @@ -5603,17 +5603,17 @@ Use the command `abbrev-mode' to change this variable. */); | |||
| 5603 | doc: /* Non-nil if searches and matches should ignore case. */); | 5603 | doc: /* Non-nil if searches and matches should ignore case. */); |
| 5604 | 5604 | ||
| 5605 | DEFVAR_PER_BUFFER ("fill-column", &BVAR (current_buffer, fill_column), | 5605 | DEFVAR_PER_BUFFER ("fill-column", &BVAR (current_buffer, fill_column), |
| 5606 | Qfixnump, | 5606 | Qintegerp, |
| 5607 | doc: /* Column beyond which automatic line-wrapping should happen. | 5607 | doc: /* Column beyond which automatic line-wrapping should happen. |
| 5608 | Interactively, you can set the buffer local value using \\[set-fill-column]. */); | 5608 | Interactively, you can set the buffer local value using \\[set-fill-column]. */); |
| 5609 | 5609 | ||
| 5610 | DEFVAR_PER_BUFFER ("left-margin", &BVAR (current_buffer, left_margin), | 5610 | DEFVAR_PER_BUFFER ("left-margin", &BVAR (current_buffer, left_margin), |
| 5611 | Qfixnump, | 5611 | Qintegerp, |
| 5612 | doc: /* Column for the default `indent-line-function' to indent to. | 5612 | doc: /* Column for the default `indent-line-function' to indent to. |
| 5613 | Linefeed indents to this column in Fundamental mode. */); | 5613 | Linefeed indents to this column in Fundamental mode. */); |
| 5614 | 5614 | ||
| 5615 | DEFVAR_PER_BUFFER ("tab-width", &BVAR (current_buffer, tab_width), | 5615 | DEFVAR_PER_BUFFER ("tab-width", &BVAR (current_buffer, tab_width), |
| 5616 | Qfixnump, | 5616 | Qintegerp, |
| 5617 | doc: /* Distance between tab stops (for display of tab characters), in columns. | 5617 | doc: /* Distance between tab stops (for display of tab characters), in columns. |
| 5618 | NOTE: This controls the display width of a TAB character, and not | 5618 | NOTE: This controls the display width of a TAB character, and not |
| 5619 | the size of an indentation step. | 5619 | the size of an indentation step. |
| @@ -5784,7 +5784,7 @@ If it is nil, that means don't auto-save this buffer. */); | |||
| 5784 | Backing up is done before the first time the file is saved. */); | 5784 | Backing up is done before the first time the file is saved. */); |
| 5785 | 5785 | ||
| 5786 | DEFVAR_PER_BUFFER ("buffer-saved-size", &BVAR (current_buffer, save_length), | 5786 | DEFVAR_PER_BUFFER ("buffer-saved-size", &BVAR (current_buffer, save_length), |
| 5787 | Qfixnump, | 5787 | Qintegerp, |
| 5788 | doc: /* Length of current buffer when last read in, saved or auto-saved. | 5788 | doc: /* Length of current buffer when last read in, saved or auto-saved. |
| 5789 | 0 initially. | 5789 | 0 initially. |
| 5790 | -1 means auto-saving turned off until next real save. | 5790 | -1 means auto-saving turned off until next real save. |
| @@ -5858,7 +5858,7 @@ In addition, a char-table has six extra slots to control the display of: | |||
| 5858 | See also the functions `display-table-slot' and `set-display-table-slot'. */); | 5858 | See also the functions `display-table-slot' and `set-display-table-slot'. */); |
| 5859 | 5859 | ||
| 5860 | DEFVAR_PER_BUFFER ("left-margin-width", &BVAR (current_buffer, left_margin_cols), | 5860 | DEFVAR_PER_BUFFER ("left-margin-width", &BVAR (current_buffer, left_margin_cols), |
| 5861 | Qfixnump, | 5861 | Qintegerp, |
| 5862 | doc: /* Width in columns of left marginal area for display of a buffer. | 5862 | doc: /* Width in columns of left marginal area for display of a buffer. |
| 5863 | A value of nil means no marginal area. | 5863 | A value of nil means no marginal area. |
| 5864 | 5864 | ||
| @@ -5866,7 +5866,7 @@ Setting this variable does not take effect until a new buffer is displayed | |||
| 5866 | in a window. To make the change take effect, call `set-window-buffer'. */); | 5866 | in a window. To make the change take effect, call `set-window-buffer'. */); |
| 5867 | 5867 | ||
| 5868 | DEFVAR_PER_BUFFER ("right-margin-width", &BVAR (current_buffer, right_margin_cols), | 5868 | DEFVAR_PER_BUFFER ("right-margin-width", &BVAR (current_buffer, right_margin_cols), |
| 5869 | Qfixnump, | 5869 | Qintegerp, |
| 5870 | doc: /* Width in columns of right marginal area for display of a buffer. | 5870 | doc: /* Width in columns of right marginal area for display of a buffer. |
| 5871 | A value of nil means no marginal area. | 5871 | A value of nil means no marginal area. |
| 5872 | 5872 | ||
| @@ -5874,7 +5874,7 @@ Setting this variable does not take effect until a new buffer is displayed | |||
| 5874 | in a window. To make the change take effect, call `set-window-buffer'. */); | 5874 | in a window. To make the change take effect, call `set-window-buffer'. */); |
| 5875 | 5875 | ||
| 5876 | DEFVAR_PER_BUFFER ("left-fringe-width", &BVAR (current_buffer, left_fringe_width), | 5876 | DEFVAR_PER_BUFFER ("left-fringe-width", &BVAR (current_buffer, left_fringe_width), |
| 5877 | Qfixnump, | 5877 | Qintegerp, |
| 5878 | doc: /* Width of this buffer's left fringe (in pixels). | 5878 | doc: /* Width of this buffer's left fringe (in pixels). |
| 5879 | A value of 0 means no left fringe is shown in this buffer's window. | 5879 | A value of 0 means no left fringe is shown in this buffer's window. |
| 5880 | A value of nil means to use the left fringe width from the window's frame. | 5880 | A value of nil means to use the left fringe width from the window's frame. |
| @@ -5883,7 +5883,7 @@ Setting this variable does not take effect until a new buffer is displayed | |||
| 5883 | in a window. To make the change take effect, call `set-window-buffer'. */); | 5883 | in a window. To make the change take effect, call `set-window-buffer'. */); |
| 5884 | 5884 | ||
| 5885 | DEFVAR_PER_BUFFER ("right-fringe-width", &BVAR (current_buffer, right_fringe_width), | 5885 | DEFVAR_PER_BUFFER ("right-fringe-width", &BVAR (current_buffer, right_fringe_width), |
| 5886 | Qfixnump, | 5886 | Qintegerp, |
| 5887 | doc: /* Width of this buffer's right fringe (in pixels). | 5887 | doc: /* Width of this buffer's right fringe (in pixels). |
| 5888 | A value of 0 means no right fringe is shown in this buffer's window. | 5888 | A value of 0 means no right fringe is shown in this buffer's window. |
| 5889 | A value of nil means to use the right fringe width from the window's frame. | 5889 | A value of nil means to use the right fringe width from the window's frame. |
| @@ -5900,12 +5900,12 @@ Setting this variable does not take effect until a new buffer is displayed | |||
| 5900 | in a window. To make the change take effect, call `set-window-buffer'. */); | 5900 | in a window. To make the change take effect, call `set-window-buffer'. */); |
| 5901 | 5901 | ||
| 5902 | DEFVAR_PER_BUFFER ("scroll-bar-width", &BVAR (current_buffer, scroll_bar_width), | 5902 | DEFVAR_PER_BUFFER ("scroll-bar-width", &BVAR (current_buffer, scroll_bar_width), |
| 5903 | Qfixnump, | 5903 | Qintegerp, |
| 5904 | doc: /* Width of this buffer's vertical scroll bars in pixels. | 5904 | doc: /* Width of this buffer's vertical scroll bars in pixels. |
| 5905 | A value of nil means to use the scroll bar width from the window's frame. */); | 5905 | A value of nil means to use the scroll bar width from the window's frame. */); |
| 5906 | 5906 | ||
| 5907 | DEFVAR_PER_BUFFER ("scroll-bar-height", &BVAR (current_buffer, scroll_bar_height), | 5907 | DEFVAR_PER_BUFFER ("scroll-bar-height", &BVAR (current_buffer, scroll_bar_height), |
| 5908 | Qfixnump, | 5908 | Qintegerp, |
| 5909 | doc: /* Height of this buffer's horizontal scroll bars in pixels. | 5909 | doc: /* Height of this buffer's horizontal scroll bars in pixels. |
| 5910 | A value of nil means to use the scroll bar height from the window's frame. */); | 5910 | A value of nil means to use the scroll bar height from the window's frame. */); |
| 5911 | 5911 | ||
| @@ -6175,7 +6175,7 @@ Setting this variable is very fast, much faster than scanning all the text in | |||
| 6175 | the buffer looking for properties to change. */); | 6175 | the buffer looking for properties to change. */); |
| 6176 | 6176 | ||
| 6177 | DEFVAR_PER_BUFFER ("buffer-display-count", | 6177 | DEFVAR_PER_BUFFER ("buffer-display-count", |
| 6178 | &BVAR (current_buffer, display_count), Qfixnump, | 6178 | &BVAR (current_buffer, display_count), Qintegerp, |
| 6179 | doc: /* A number incremented each time this buffer is displayed in a window. | 6179 | doc: /* A number incremented each time this buffer is displayed in a window. |
| 6180 | The function `set-window-buffer' increments it. */); | 6180 | The function `set-window-buffer' increments it. */); |
| 6181 | 6181 | ||
diff --git a/src/character.h b/src/character.h index 5dff85aed47..cc57a2a7d5c 100644 --- a/src/character.h +++ b/src/character.h | |||
| @@ -558,12 +558,13 @@ enum | |||
| 558 | 558 | ||
| 559 | /* Return a non-outlandish value for the tab width. */ | 559 | /* Return a non-outlandish value for the tab width. */ |
| 560 | 560 | ||
| 561 | #define SANE_TAB_WIDTH(buf) \ | 561 | #define SANE_TAB_WIDTH(buf) sanitize_tab_width (BVAR (buf, tab_width)) |
| 562 | sanitize_tab_width (XFIXNAT (BVAR (buf, tab_width))) | 562 | |
| 563 | INLINE int | 563 | INLINE int |
| 564 | sanitize_tab_width (EMACS_INT width) | 564 | sanitize_tab_width (Lisp_Object width) |
| 565 | { | 565 | { |
| 566 | return 0 < width && width <= 1000 ? width : 8; | 566 | return (FIXNUMP (width) && 0 < XFIXNUM (width) && XFIXNUM (width) <= 1000 |
| 567 | ? XFIXNUM (width) : 8); | ||
| 567 | } | 568 | } |
| 568 | 569 | ||
| 569 | /* Return the width of ASCII character C. The width is measured by | 570 | /* Return the width of ASCII character C. The width is measured by |
diff --git a/src/data.c b/src/data.c index 476d28eadbc..c1699aeae73 100644 --- a/src/data.c +++ b/src/data.c | |||
| @@ -1122,20 +1122,21 @@ store_symval_forwarding (lispfwd valcontents, Lisp_Object newval, | |||
| 1122 | int offset = XBUFFER_OBJFWD (valcontents)->offset; | 1122 | int offset = XBUFFER_OBJFWD (valcontents)->offset; |
| 1123 | Lisp_Object predicate = XBUFFER_OBJFWD (valcontents)->predicate; | 1123 | Lisp_Object predicate = XBUFFER_OBJFWD (valcontents)->predicate; |
| 1124 | 1124 | ||
| 1125 | if (!NILP (newval)) | 1125 | if (!NILP (newval) && !NILP (predicate)) |
| 1126 | { | 1126 | { |
| 1127 | if (SYMBOLP (predicate)) | 1127 | eassert (SYMBOLP (predicate)); |
| 1128 | Lisp_Object choiceprop = Fget (predicate, Qchoice); | ||
| 1129 | if (!NILP (choiceprop)) | ||
| 1128 | { | 1130 | { |
| 1129 | Lisp_Object prop; | 1131 | if (NILP (Fmemq (newval, choiceprop))) |
| 1130 | 1132 | wrong_choice (choiceprop, newval); | |
| 1131 | if ((prop = Fget (predicate, Qchoice), !NILP (prop))) | 1133 | } |
| 1132 | { | 1134 | else |
| 1133 | if (NILP (Fmemq (newval, prop))) | 1135 | { |
| 1134 | wrong_choice (prop, newval); | 1136 | Lisp_Object rangeprop = Fget (predicate, Qrange); |
| 1135 | } | 1137 | if (CONSP (rangeprop)) |
| 1136 | else if ((prop = Fget (predicate, Qrange), !NILP (prop))) | ||
| 1137 | { | 1138 | { |
| 1138 | Lisp_Object min = XCAR (prop), max = XCDR (prop); | 1139 | Lisp_Object min = XCAR (rangeprop), max = XCDR (rangeprop); |
| 1139 | if (! NUMBERP (newval) | 1140 | if (! NUMBERP (newval) |
| 1140 | || NILP (CALLN (Fleq, min, newval, max))) | 1141 | || NILP (CALLN (Fleq, min, newval, max))) |
| 1141 | wrong_range (min, max, newval); | 1142 | wrong_range (min, max, newval); |
diff --git a/src/dispextern.h b/src/dispextern.h index e86ea6a02ae..aa80fa653db 100644 --- a/src/dispextern.h +++ b/src/dispextern.h | |||
| @@ -34,16 +34,45 @@ along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>. */ | |||
| 34 | #ifdef HAVE_XRENDER | 34 | #ifdef HAVE_XRENDER |
| 35 | # include <X11/extensions/Xrender.h> | 35 | # include <X11/extensions/Xrender.h> |
| 36 | #endif | 36 | #endif |
| 37 | |||
| 38 | typedef XColor Emacs_Color; | ||
| 39 | typedef Cursor Emacs_Cursor; | ||
| 40 | #define No_Cursor (None) | ||
| 41 | typedef Pixmap Emacs_Pixmap; | ||
| 42 | typedef XRectangle Emacs_Rectangle; | ||
| 43 | typedef XGCValues Emacs_GC; | ||
| 37 | #else /* !HAVE_X_WINDOWS */ | 44 | #else /* !HAVE_X_WINDOWS */ |
| 38 | 45 | ||
| 39 | /* X-related stuff used by non-X gui code. */ | 46 | /* XColor-like struct used by non-X code. */ |
| 40 | 47 | ||
| 41 | typedef struct { | 48 | typedef struct |
| 49 | { | ||
| 42 | unsigned long pixel; | 50 | unsigned long pixel; |
| 43 | unsigned short red, green, blue; | 51 | unsigned short red, green, blue; |
| 44 | char flags; | 52 | } Emacs_Color; |
| 45 | char pad; | 53 | |
| 46 | } XColor; | 54 | /* Accommodate X's usage of None as a null resource ID. */ |
| 55 | #define No_Cursor (NULL) | ||
| 56 | |||
| 57 | /* XRectangle-like struct used by non-X GUI code. */ | ||
| 58 | typedef struct | ||
| 59 | { | ||
| 60 | int x, y; | ||
| 61 | unsigned width, height; | ||
| 62 | } Emacs_Rectangle; | ||
| 63 | |||
| 64 | /* XGCValues-like struct used by non-X GUI code. */ | ||
| 65 | typedef struct | ||
| 66 | { | ||
| 67 | unsigned long foreground; | ||
| 68 | unsigned long background; | ||
| 69 | } Emacs_GC; | ||
| 70 | |||
| 71 | /* Mask values to select foreground/background. */ | ||
| 72 | /* FIXME: The GC handling in w32 really should be redesigned as to not | ||
| 73 | need these. */ | ||
| 74 | #define GCForeground 0x01 | ||
| 75 | #define GCBackground 0x02 | ||
| 47 | 76 | ||
| 48 | #endif /* HAVE_X_WINDOWS */ | 77 | #endif /* HAVE_X_WINDOWS */ |
| 49 | 78 | ||
| @@ -63,16 +92,16 @@ xstrcasecmp (char const *a, char const *b) | |||
| 63 | #ifdef HAVE_X_WINDOWS | 92 | #ifdef HAVE_X_WINDOWS |
| 64 | #include <X11/Xresource.h> /* for XrmDatabase */ | 93 | #include <X11/Xresource.h> /* for XrmDatabase */ |
| 65 | typedef struct x_display_info Display_Info; | 94 | typedef struct x_display_info Display_Info; |
| 66 | typedef XImage * XImagePtr; | 95 | typedef XImage *Emacs_Pix_Container; |
| 67 | typedef XImagePtr XImagePtr_or_DC; | 96 | typedef XImage *Emacs_Pix_Context; |
| 68 | #define NativeRectangle XRectangle | 97 | #define NativeRectangle XRectangle |
| 69 | #endif | 98 | #endif |
| 70 | 99 | ||
| 71 | #ifdef HAVE_NTGUI | 100 | #ifdef HAVE_NTGUI |
| 72 | #include "w32gui.h" | 101 | #include "w32gui.h" |
| 73 | typedef struct w32_display_info Display_Info; | 102 | typedef struct w32_display_info Display_Info; |
| 74 | typedef XImage *XImagePtr; | 103 | typedef XImage *Emacs_Pix_Container; |
| 75 | typedef HDC XImagePtr_or_DC; | 104 | typedef HDC Emacs_Pix_Context; |
| 76 | #endif | 105 | #endif |
| 77 | 106 | ||
| 78 | #ifdef HAVE_NS | 107 | #ifdef HAVE_NS |
| @@ -80,8 +109,8 @@ typedef HDC XImagePtr_or_DC; | |||
| 80 | #define FACE_COLOR_TO_PIXEL(face_color, frame) ns_color_index_to_rgba(face_color, frame) | 109 | #define FACE_COLOR_TO_PIXEL(face_color, frame) ns_color_index_to_rgba(face_color, frame) |
| 81 | /* Following typedef needed to accommodate the MSDOS port, believe it or not. */ | 110 | /* Following typedef needed to accommodate the MSDOS port, believe it or not. */ |
| 82 | typedef struct ns_display_info Display_Info; | 111 | typedef struct ns_display_info Display_Info; |
| 83 | typedef Pixmap XImagePtr; | 112 | typedef Emacs_Pixmap Emacs_Pix_Container; |
| 84 | typedef XImagePtr XImagePtr_or_DC; | 113 | typedef Emacs_Pixmap Emacs_Pix_Context; |
| 85 | #else | 114 | #else |
| 86 | #define FACE_COLOR_TO_PIXEL(face_color, frame) face_color | 115 | #define FACE_COLOR_TO_PIXEL(face_color, frame) face_color |
| 87 | #endif | 116 | #endif |
| @@ -92,8 +121,7 @@ typedef XImagePtr XImagePtr_or_DC; | |||
| 92 | #endif | 121 | #endif |
| 93 | 122 | ||
| 94 | #ifndef HAVE_WINDOW_SYSTEM | 123 | #ifndef HAVE_WINDOW_SYSTEM |
| 95 | typedef int Cursor; | 124 | typedef void *Emacs_Cursor; |
| 96 | #define No_Cursor (0) | ||
| 97 | #endif | 125 | #endif |
| 98 | 126 | ||
| 99 | #ifndef NativeRectangle | 127 | #ifndef NativeRectangle |
| @@ -1040,7 +1068,7 @@ struct glyph_row | |||
| 1040 | #ifdef HAVE_WINDOW_SYSTEM | 1068 | #ifdef HAVE_WINDOW_SYSTEM |
| 1041 | /* Non-NULL means the current clipping area. This is temporarily | 1069 | /* Non-NULL means the current clipping area. This is temporarily |
| 1042 | set while exposing a region. Coordinates are frame-relative. */ | 1070 | set while exposing a region. Coordinates are frame-relative. */ |
| 1043 | XRectangle *clip; | 1071 | const Emacs_Rectangle *clip; |
| 1044 | #endif | 1072 | #endif |
| 1045 | }; | 1073 | }; |
| 1046 | 1074 | ||
| @@ -1289,7 +1317,7 @@ struct glyph_string | |||
| 1289 | enum glyph_row_area area; | 1317 | enum glyph_row_area area; |
| 1290 | 1318 | ||
| 1291 | /* Characters to be drawn, and number of characters. */ | 1319 | /* Characters to be drawn, and number of characters. */ |
| 1292 | XChar2b *char2b; | 1320 | unsigned *char2b; |
| 1293 | int nchars; | 1321 | int nchars; |
| 1294 | 1322 | ||
| 1295 | /* A face-override for drawing cursors, mouse face and similar. */ | 1323 | /* A face-override for drawing cursors, mouse face and similar. */ |
| @@ -1350,7 +1378,7 @@ struct glyph_string | |||
| 1350 | GC gc; | 1378 | GC gc; |
| 1351 | #endif | 1379 | #endif |
| 1352 | #if defined (HAVE_NTGUI) | 1380 | #if defined (HAVE_NTGUI) |
| 1353 | XGCValues *gc; | 1381 | Emacs_GC *gc; |
| 1354 | HDC hdc; | 1382 | HDC hdc; |
| 1355 | #endif | 1383 | #endif |
| 1356 | 1384 | ||
| @@ -1592,8 +1620,11 @@ struct face | |||
| 1592 | 1620 | ||
| 1593 | /* If non-zero, this is a GC that we can use without modification for | 1621 | /* If non-zero, this is a GC that we can use without modification for |
| 1594 | drawing the characters in this face. */ | 1622 | drawing the characters in this face. */ |
| 1623 | # ifdef HAVE_X_WINDOWS | ||
| 1595 | GC gc; | 1624 | GC gc; |
| 1596 | 1625 | # else | |
| 1626 | Emacs_GC *gc; | ||
| 1627 | # endif | ||
| 1597 | /* Background stipple or bitmap used for this face. This is | 1628 | /* Background stipple or bitmap used for this face. This is |
| 1598 | an id as returned from load_pixmap. */ | 1629 | an id as returned from load_pixmap. */ |
| 1599 | ptrdiff_t stipple; | 1630 | ptrdiff_t stipple; |
| @@ -2888,7 +2919,7 @@ struct redisplay_interface | |||
| 2888 | void (*draw_glyph_string) (struct glyph_string *s); | 2919 | void (*draw_glyph_string) (struct glyph_string *s); |
| 2889 | 2920 | ||
| 2890 | /* Define cursor CURSOR on frame F. */ | 2921 | /* Define cursor CURSOR on frame F. */ |
| 2891 | void (*define_frame_cursor) (struct frame *f, Cursor cursor); | 2922 | void (*define_frame_cursor) (struct frame *f, Emacs_Cursor cursor); |
| 2892 | 2923 | ||
| 2893 | /* Clear the area at (X,Y,WIDTH,HEIGHT) of frame F. */ | 2924 | /* Clear the area at (X,Y,WIDTH,HEIGHT) of frame F. */ |
| 2894 | void (*clear_frame_area) (struct frame *f, int x, int y, | 2925 | void (*clear_frame_area) (struct frame *f, int x, int y, |
| @@ -2955,7 +2986,7 @@ struct image | |||
| 2955 | struct timespec timestamp; | 2986 | struct timespec timestamp; |
| 2956 | 2987 | ||
| 2957 | /* Pixmaps of the image. */ | 2988 | /* Pixmaps of the image. */ |
| 2958 | Pixmap pixmap, mask; | 2989 | Emacs_Pixmap pixmap, mask; |
| 2959 | 2990 | ||
| 2960 | #ifdef USE_CAIRO | 2991 | #ifdef USE_CAIRO |
| 2961 | void *cr_data; | 2992 | void *cr_data; |
| @@ -2965,7 +2996,7 @@ struct image | |||
| 2965 | Non-NULL means it and its Pixmap counterpart may be out of sync | 2996 | Non-NULL means it and its Pixmap counterpart may be out of sync |
| 2966 | and the latter is outdated. NULL means the X image has been | 2997 | and the latter is outdated. NULL means the X image has been |
| 2967 | synchronized to Pixmap. */ | 2998 | synchronized to Pixmap. */ |
| 2968 | XImagePtr ximg, mask_img; | 2999 | XImage *ximg, *mask_img; |
| 2969 | 3000 | ||
| 2970 | # ifdef HAVE_NATIVE_SCALING | 3001 | # ifdef HAVE_NATIVE_SCALING |
| 2971 | /* Picture versions of pixmap and mask for compositing. */ | 3002 | /* Picture versions of pixmap and mask for compositing. */ |
| @@ -3311,7 +3342,9 @@ extern void handle_tool_bar_click (struct frame *, | |||
| 3311 | int, int, bool, int); | 3342 | int, int, bool, int); |
| 3312 | 3343 | ||
| 3313 | extern void expose_frame (struct frame *, int, int, int, int); | 3344 | extern void expose_frame (struct frame *, int, int, int, int); |
| 3314 | extern bool gui_intersect_rectangles (XRectangle *, XRectangle *, XRectangle *); | 3345 | extern bool gui_intersect_rectangles (const Emacs_Rectangle *, |
| 3346 | const Emacs_Rectangle *, | ||
| 3347 | Emacs_Rectangle *); | ||
| 3315 | #endif /* HAVE_WINDOW_SYSTEM */ | 3348 | #endif /* HAVE_WINDOW_SYSTEM */ |
| 3316 | 3349 | ||
| 3317 | extern void note_mouse_highlight (struct frame *, int, int); | 3350 | extern void note_mouse_highlight (struct frame *, int, int); |
| @@ -3363,10 +3396,10 @@ extern void image_destroy_bitmap (struct frame *, ptrdiff_t); | |||
| 3363 | extern void image_destroy_all_bitmaps (Display_Info *); | 3396 | extern void image_destroy_all_bitmaps (Display_Info *); |
| 3364 | #ifdef HAVE_X_WINDOWS | 3397 | #ifdef HAVE_X_WINDOWS |
| 3365 | extern void x_create_bitmap_mask (struct frame *, ptrdiff_t); | 3398 | extern void x_create_bitmap_mask (struct frame *, ptrdiff_t); |
| 3399 | extern void x_kill_gs_process (Pixmap, struct frame *); | ||
| 3366 | #endif | 3400 | #endif |
| 3367 | extern Lisp_Object image_find_image_file (Lisp_Object); | 3401 | extern Lisp_Object image_find_image_file (Lisp_Object); |
| 3368 | 3402 | ||
| 3369 | void x_kill_gs_process (Pixmap, struct frame *); | ||
| 3370 | struct image_cache *make_image_cache (void); | 3403 | struct image_cache *make_image_cache (void); |
| 3371 | void free_image_cache (struct frame *); | 3404 | void free_image_cache (struct frame *); |
| 3372 | void clear_image_caches (Lisp_Object); | 3405 | void clear_image_caches (Lisp_Object); |
| @@ -3384,9 +3417,9 @@ ptrdiff_t lookup_image (struct frame *, Lisp_Object); | |||
| 3384 | #endif | 3417 | #endif |
| 3385 | 3418 | ||
| 3386 | RGB_PIXEL_COLOR image_background (struct image *, struct frame *, | 3419 | RGB_PIXEL_COLOR image_background (struct image *, struct frame *, |
| 3387 | XImagePtr_or_DC ximg); | 3420 | Emacs_Pix_Context img); |
| 3388 | int image_background_transparent (struct image *, struct frame *, | 3421 | int image_background_transparent (struct image *, struct frame *, |
| 3389 | XImagePtr_or_DC mask); | 3422 | Emacs_Pix_Context mask); |
| 3390 | 3423 | ||
| 3391 | int image_ascent (struct image *, struct face *, struct glyph_slice *); | 3424 | int image_ascent (struct image *, struct face *, struct glyph_slice *); |
| 3392 | 3425 | ||
| @@ -3410,8 +3443,8 @@ void x_free_colors (struct frame *, unsigned long *, int); | |||
| 3410 | 3443 | ||
| 3411 | void update_face_from_frame_parameter (struct frame *, Lisp_Object, | 3444 | void update_face_from_frame_parameter (struct frame *, Lisp_Object, |
| 3412 | Lisp_Object); | 3445 | Lisp_Object); |
| 3413 | extern bool tty_defined_color (struct frame *f, const char *, XColor *, bool, | 3446 | extern bool tty_defined_color (struct frame *, const char *, Emacs_Color *, |
| 3414 | bool); | 3447 | bool, bool); |
| 3415 | 3448 | ||
| 3416 | Lisp_Object tty_color_name (struct frame *, int); | 3449 | Lisp_Object tty_color_name (struct frame *, int); |
| 3417 | void clear_face_cache (bool); | 3450 | void clear_face_cache (bool); |
diff --git a/src/eval.c b/src/eval.c index 567c32e0d75..5bba8766373 100644 --- a/src/eval.c +++ b/src/eval.c | |||
| @@ -544,8 +544,8 @@ usage: (quote ARG) */) | |||
| 544 | 544 | ||
| 545 | DEFUN ("function", Ffunction, Sfunction, 1, UNEVALLED, 0, | 545 | DEFUN ("function", Ffunction, Sfunction, 1, UNEVALLED, 0, |
| 546 | doc: /* Like `quote', but preferred for objects which are functions. | 546 | doc: /* Like `quote', but preferred for objects which are functions. |
| 547 | In byte compilation, `function' causes its argument to be compiled. | 547 | In byte compilation, `function' causes its argument to be handled by |
| 548 | `quote' cannot do that. | 548 | the byte compiler. `quote' cannot do that. |
| 549 | usage: (function ARG) */) | 549 | usage: (function ARG) */) |
| 550 | (Lisp_Object args) | 550 | (Lisp_Object args) |
| 551 | { | 551 | { |
diff --git a/src/fileio.c b/src/fileio.c index 4ee125d7de2..9e9779967dd 100644 --- a/src/fileio.c +++ b/src/fileio.c | |||
| @@ -5802,6 +5802,7 @@ A non-nil CURRENT-ONLY argument means save only current buffer. */) | |||
| 5802 | && BUF_SAVE_MODIFF (b) < BUF_MODIFF (b) | 5802 | && BUF_SAVE_MODIFF (b) < BUF_MODIFF (b) |
| 5803 | && BUF_AUTOSAVE_MODIFF (b) < BUF_MODIFF (b) | 5803 | && BUF_AUTOSAVE_MODIFF (b) < BUF_MODIFF (b) |
| 5804 | /* -1 means we've turned off autosaving for a while--see below. */ | 5804 | /* -1 means we've turned off autosaving for a while--see below. */ |
| 5805 | && FIXNUMP (BVAR (b, save_length)) | ||
| 5805 | && XFIXNUM (BVAR (b, save_length)) >= 0 | 5806 | && XFIXNUM (BVAR (b, save_length)) >= 0 |
| 5806 | && (do_handled_files | 5807 | && (do_handled_files |
| 5807 | || NILP (Ffind_file_name_handler (BVAR (b, auto_save_file_name), | 5808 | || NILP (Ffind_file_name_handler (BVAR (b, auto_save_file_name), |
| @@ -5815,13 +5816,17 @@ A non-nil CURRENT-ONLY argument means save only current buffer. */) | |||
| 5815 | && before_time.tv_sec - b->auto_save_failure_time < 1200) | 5816 | && before_time.tv_sec - b->auto_save_failure_time < 1200) |
| 5816 | continue; | 5817 | continue; |
| 5817 | 5818 | ||
| 5819 | enum { growth_factor = 4 }; | ||
| 5820 | verify (BUF_BYTES_MAX <= EMACS_INT_MAX / growth_factor); | ||
| 5821 | |||
| 5818 | set_buffer_internal (b); | 5822 | set_buffer_internal (b); |
| 5819 | if (NILP (Vauto_save_include_big_deletions) | 5823 | if (NILP (Vauto_save_include_big_deletions) |
| 5820 | && (XFIXNAT (BVAR (b, save_length)) * 10 | 5824 | && FIXNUMP (BVAR (b, save_length)) |
| 5821 | > (BUF_Z (b) - BUF_BEG (b)) * 13) | ||
| 5822 | /* A short file is likely to change a large fraction; | 5825 | /* A short file is likely to change a large fraction; |
| 5823 | spare the user annoying messages. */ | 5826 | spare the user annoying messages. */ |
| 5824 | && XFIXNAT (BVAR (b, save_length)) > 5000 | 5827 | && XFIXNAT (BVAR (b, save_length)) > 5000 |
| 5828 | && (growth_factor * (BUF_Z (b) - BUF_BEG (b)) | ||
| 5829 | < (growth_factor - 1) * XFIXNAT (BVAR (b, save_length))) | ||
| 5825 | /* These messages are frequent and annoying for `*mail*'. */ | 5830 | /* These messages are frequent and annoying for `*mail*'. */ |
| 5826 | && !NILP (BVAR (b, filename)) | 5831 | && !NILP (BVAR (b, filename)) |
| 5827 | && NILP (no_message)) | 5832 | && NILP (no_message)) |
| @@ -1131,10 +1131,8 @@ string the same way whether it is unibyte or multibyte.) */) | |||
| 1131 | DEFUN ("string-make-unibyte", Fstring_make_unibyte, Sstring_make_unibyte, | 1131 | DEFUN ("string-make-unibyte", Fstring_make_unibyte, Sstring_make_unibyte, |
| 1132 | 1, 1, 0, | 1132 | 1, 1, 0, |
| 1133 | doc: /* Return the unibyte equivalent of STRING. | 1133 | doc: /* Return the unibyte equivalent of STRING. |
| 1134 | Multibyte character codes are converted to unibyte according to | 1134 | Multibyte character codes above 255 are converted to unibyte |
| 1135 | `nonascii-translation-table' or, if that is nil, `nonascii-insert-offset'. | 1135 | by taking just the low 8 bits of each character's code. */) |
| 1136 | If the lookup in the translation table fails, this function takes just | ||
| 1137 | the low 8 bits of each character. */) | ||
| 1138 | (Lisp_Object string) | 1136 | (Lisp_Object string) |
| 1139 | { | 1137 | { |
| 1140 | CHECK_STRING (string); | 1138 | CHECK_STRING (string); |
diff --git a/src/font.h b/src/font.h index 3720650a2e1..9ca0c97dc52 100644 --- a/src/font.h +++ b/src/font.h | |||
| @@ -647,7 +647,7 @@ struct font_driver | |||
| 647 | the font FONT and the sequence of glyph codes CODE, and store the | 647 | the font FONT and the sequence of glyph codes CODE, and store the |
| 648 | result in METRICS. */ | 648 | result in METRICS. */ |
| 649 | void (*text_extents) (struct font *font, | 649 | void (*text_extents) (struct font *font, |
| 650 | unsigned *code, int nglyphs, | 650 | const unsigned *code, int nglyphs, |
| 651 | struct font_metrics *metrics); | 651 | struct font_metrics *metrics); |
| 652 | 652 | ||
| 653 | #ifdef HAVE_WINDOW_SYSTEM | 653 | #ifdef HAVE_WINDOW_SYSTEM |
| @@ -894,7 +894,7 @@ extern Lisp_Object ftfont_shape (Lisp_Object); | |||
| 894 | extern unsigned ftfont_encode_char (struct font *, int); | 894 | extern unsigned ftfont_encode_char (struct font *, int); |
| 895 | extern void ftfont_close (struct font *); | 895 | extern void ftfont_close (struct font *); |
| 896 | extern void ftfont_filter_properties (Lisp_Object, Lisp_Object); | 896 | extern void ftfont_filter_properties (Lisp_Object, Lisp_Object); |
| 897 | extern void ftfont_text_extents (struct font *, unsigned *, int, | 897 | extern void ftfont_text_extents (struct font *, const unsigned *, int, |
| 898 | struct font_metrics *); | 898 | struct font_metrics *); |
| 899 | extern void syms_of_ftfont (void); | 899 | extern void syms_of_ftfont (void); |
| 900 | #endif /* HAVE_FREETYPE */ | 900 | #endif /* HAVE_FREETYPE */ |
diff --git a/src/frame.h b/src/frame.h index b8aed823afb..fa45a32d6b6 100644 --- a/src/frame.h +++ b/src/frame.h | |||
| @@ -1480,7 +1480,7 @@ FRAME_BOTTOM_DIVIDER_WIDTH (struct frame *f) | |||
| 1480 | - FRAME_TOTAL_FRINGE_WIDTH (f) \ | 1480 | - FRAME_TOTAL_FRINGE_WIDTH (f) \ |
| 1481 | - FRAME_SCROLL_BAR_AREA_WIDTH (f) \ | 1481 | - FRAME_SCROLL_BAR_AREA_WIDTH (f) \ |
| 1482 | - 2 * FRAME_INTERNAL_BORDER_WIDTH (f)) \ | 1482 | - 2 * FRAME_INTERNAL_BORDER_WIDTH (f)) \ |
| 1483 | / FRAME_COLUMN_WIDTH (f)) \ | 1483 | / FRAME_COLUMN_WIDTH (f)) |
| 1484 | 1484 | ||
| 1485 | #define FRAME_PIXEL_HEIGHT_TO_TEXT_LINES(f, height) \ | 1485 | #define FRAME_PIXEL_HEIGHT_TO_TEXT_LINES(f, height) \ |
| 1486 | (((height) \ | 1486 | (((height) \ |
| @@ -1626,7 +1626,7 @@ flush_frame (struct frame *f) | |||
| 1626 | #ifdef HAVE_WINDOW_SYSTEM | 1626 | #ifdef HAVE_WINDOW_SYSTEM |
| 1627 | 1627 | ||
| 1628 | struct MonitorInfo { | 1628 | struct MonitorInfo { |
| 1629 | XRectangle geom, work; | 1629 | Emacs_Rectangle geom, work; |
| 1630 | int mm_width, mm_height; | 1630 | int mm_width, mm_height; |
| 1631 | char *name; | 1631 | char *name; |
| 1632 | }; | 1632 | }; |
diff --git a/src/ftcrfont.c b/src/ftcrfont.c index e7c73eac4d3..9686cec0e8c 100644 --- a/src/ftcrfont.c +++ b/src/ftcrfont.c | |||
| @@ -79,7 +79,6 @@ ftcrfont_glyph_extents (struct font *font, | |||
| 79 | cairo_glyph_t cr_glyph = {.index = glyph}; | 79 | cairo_glyph_t cr_glyph = {.index = glyph}; |
| 80 | cairo_text_extents_t extents; | 80 | cairo_text_extents_t extents; |
| 81 | 81 | ||
| 82 | FT_Activate_Size (ftcrfont_info->ft_size_draw); | ||
| 83 | cairo_scaled_font_glyph_extents (ftcrfont_info->cr_scaled_font, | 82 | cairo_scaled_font_glyph_extents (ftcrfont_info->cr_scaled_font, |
| 84 | &cr_glyph, 1, &extents); | 83 | &cr_glyph, 1, &extents); |
| 85 | cache->lbearing = floor (extents.x_bearing); | 84 | cache->lbearing = floor (extents.x_bearing); |
| @@ -118,103 +117,159 @@ ftcrfont_match (struct frame *f, Lisp_Object spec) | |||
| 118 | static Lisp_Object | 117 | static Lisp_Object |
| 119 | ftcrfont_open (struct frame *f, Lisp_Object entity, int pixel_size) | 118 | ftcrfont_open (struct frame *f, Lisp_Object entity, int pixel_size) |
| 120 | { | 119 | { |
| 121 | Lisp_Object font_object; | 120 | FcResult result; |
| 122 | 121 | Lisp_Object val, filename, font_object; | |
| 123 | FT_UInt size = XFIXNUM (AREF (entity, FONT_SIZE_INDEX)); | 122 | FcPattern *pat, *match; |
| 123 | struct font_info *ftcrfont_info; | ||
| 124 | struct font *font; | ||
| 125 | double size = 0; | ||
| 126 | cairo_font_face_t *font_face; | ||
| 127 | cairo_font_extents_t extents; | ||
| 128 | FT_Face ft_face; | ||
| 129 | FcMatrix *matrix; | ||
| 130 | |||
| 131 | val = assq_no_quit (QCfont_entity, AREF (entity, FONT_EXTRA_INDEX)); | ||
| 132 | if (! CONSP (val)) | ||
| 133 | return Qnil; | ||
| 134 | val = XCDR (val); | ||
| 135 | filename = XCAR (val); | ||
| 136 | size = XFIXNUM (AREF (entity, FONT_SIZE_INDEX)); | ||
| 124 | if (size == 0) | 137 | if (size == 0) |
| 125 | size = pixel_size; | 138 | size = pixel_size; |
| 139 | |||
| 140 | block_input (); | ||
| 141 | |||
| 142 | pat = ftfont_entity_pattern (entity, pixel_size); | ||
| 143 | FcConfigSubstitute (NULL, pat, FcMatchPattern); | ||
| 144 | FcDefaultSubstitute (pat); | ||
| 145 | match = FcFontMatch (NULL, pat, &result); | ||
| 146 | ftfont_fix_match (pat, match); | ||
| 147 | |||
| 148 | FcPatternDestroy (pat); | ||
| 149 | font_face = cairo_ft_font_face_create_for_pattern (match); | ||
| 150 | if (!font_face) | ||
| 151 | { | ||
| 152 | unblock_input (); | ||
| 153 | FcPatternDestroy (match); | ||
| 154 | return Qnil; | ||
| 155 | } | ||
| 156 | cairo_matrix_t font_matrix, ctm; | ||
| 157 | cairo_matrix_init_scale (&font_matrix, pixel_size, pixel_size); | ||
| 158 | cairo_matrix_init_identity (&ctm); | ||
| 159 | cairo_font_options_t *options = cairo_font_options_create (); | ||
| 160 | cairo_scaled_font_t *scaled_font | ||
| 161 | = cairo_scaled_font_create (font_face, &font_matrix, &ctm, options); | ||
| 162 | cairo_font_face_destroy (font_face); | ||
| 163 | cairo_font_options_destroy (options); | ||
| 164 | unblock_input (); | ||
| 165 | |||
| 126 | font_object = font_build_object (VECSIZE (struct font_info), | 166 | font_object = font_build_object (VECSIZE (struct font_info), |
| 127 | Qftcr, entity, size); | 167 | Qftcr, entity, size); |
| 168 | ASET (font_object, FONT_FILE_INDEX, filename); | ||
| 169 | font = XFONT_OBJECT (font_object); | ||
| 170 | font->pixel_size = size; | ||
| 171 | font->driver = &ftcrfont_driver; | ||
| 172 | font->encoding_charset = font->repertory_charset = -1; | ||
| 173 | |||
| 174 | ftcrfont_info = (struct font_info *) font; | ||
| 175 | ftcrfont_info->cr_scaled_font = scaled_font; | ||
| 176 | |||
| 177 | /* This means that there's no need of transformation. */ | ||
| 178 | ftcrfont_info->matrix.xx = 0; | ||
| 179 | if (FcPatternGetMatrix (match, FC_MATRIX, 0, &matrix) == FcResultMatch) | ||
| 180 | { | ||
| 181 | ftcrfont_info->matrix.xx = 0x10000L * matrix->xx; | ||
| 182 | ftcrfont_info->matrix.yy = 0x10000L * matrix->yy; | ||
| 183 | ftcrfont_info->matrix.xy = 0x10000L * matrix->xy; | ||
| 184 | ftcrfont_info->matrix.yx = 0x10000L * matrix->yx; | ||
| 185 | } | ||
| 186 | |||
| 187 | ftcrfont_info->metrics = NULL; | ||
| 188 | ftcrfont_info->metrics_nrows = 0; | ||
| 189 | |||
| 128 | block_input (); | 190 | block_input (); |
| 129 | font_object = ftfont_open2 (f, entity, pixel_size, font_object); | 191 | cairo_glyph_t stack_glyph; |
| 130 | if (FONT_OBJECT_P (font_object)) | 192 | int n = 0; |
| 193 | font->min_width = font->average_width = font->space_width = 0; | ||
| 194 | for (char c = 32; c < 127; c++) | ||
| 131 | { | 195 | { |
| 132 | struct font *font = XFONT_OBJECT (font_object); | 196 | cairo_glyph_t *glyphs = &stack_glyph; |
| 133 | struct font_info *ftcrfont_info = (struct font_info *) font; | 197 | int num_glyphs = 1; |
| 134 | FT_Face ft_face = ftcrfont_info->ft_size->face; | 198 | cairo_status_t status = |
| 135 | 199 | cairo_scaled_font_text_to_glyphs (ftcrfont_info->cr_scaled_font, | |
| 136 | font->driver = &ftcrfont_driver; | 200 | 0, 0, &c, 1, &glyphs, &num_glyphs, |
| 137 | FT_New_Size (ft_face, &ftcrfont_info->ft_size_draw); | 201 | NULL, NULL, NULL); |
| 138 | FT_Activate_Size (ftcrfont_info->ft_size_draw); | 202 | |
| 139 | if (ftcrfont_info->bitmap_strike_index < 0) | 203 | if (status == CAIRO_STATUS_SUCCESS) |
| 140 | FT_Set_Pixel_Sizes (ft_face, 0, font->pixel_size); | ||
| 141 | else | ||
| 142 | FT_Select_Size (ft_face, ftcrfont_info->bitmap_strike_index); | ||
| 143 | cairo_font_face_t *font_face = | ||
| 144 | cairo_ft_font_face_create_for_ft_face (ft_face, 0); | ||
| 145 | cairo_matrix_t font_matrix, ctm; | ||
| 146 | cairo_matrix_init_scale (&font_matrix, pixel_size, pixel_size); | ||
| 147 | cairo_matrix_init_identity (&ctm); | ||
| 148 | cairo_font_options_t *options = cairo_font_options_create (); | ||
| 149 | ftcrfont_info->cr_scaled_font = | ||
| 150 | cairo_scaled_font_create (font_face, &font_matrix, &ctm, options); | ||
| 151 | cairo_font_face_destroy (font_face); | ||
| 152 | cairo_font_options_destroy (options); | ||
| 153 | ftcrfont_info->metrics = NULL; | ||
| 154 | ftcrfont_info->metrics_nrows = 0; | ||
| 155 | if (ftcrfont_info->bitmap_strike_index >= 0) | ||
| 156 | { | 204 | { |
| 157 | /* Several members of struct font/font_info set by | 205 | if (glyphs != &stack_glyph) |
| 158 | ftfont_open2 are bogus. Recalculate them with cairo | 206 | cairo_glyph_free (glyphs); |
| 159 | scaled font functions. */ | 207 | else if (stack_glyph.index) |
| 160 | cairo_font_extents_t extents; | ||
| 161 | cairo_scaled_font_extents (ftcrfont_info->cr_scaled_font, &extents); | ||
| 162 | font->ascent = lround (extents.ascent); | ||
| 163 | Lisp_Object val = assq_no_quit (QCminspace, | ||
| 164 | AREF (entity, FONT_EXTRA_INDEX)); | ||
| 165 | if (!(CONSP (val) && NILP (XCDR (val)))) | ||
| 166 | { | ||
| 167 | font->descent = lround (extents.descent); | ||
| 168 | font->height = font->ascent + font->descent; | ||
| 169 | } | ||
| 170 | else | ||
| 171 | { | 208 | { |
| 172 | font->height = lround (extents.height); | 209 | int this_width = ftcrfont_glyph_extents (font, stack_glyph.index, |
| 173 | font->descent = font->height - font->ascent; | 210 | NULL); |
| 211 | |||
| 212 | if (this_width > 0 | ||
| 213 | && (! font->min_width | ||
| 214 | || font->min_width > this_width)) | ||
| 215 | font->min_width = this_width; | ||
| 216 | if (c == 32) | ||
| 217 | font->space_width = this_width; | ||
| 218 | font->average_width += this_width; | ||
| 219 | n++; | ||
| 174 | } | 220 | } |
| 221 | } | ||
| 222 | } | ||
| 223 | if (n > 0) | ||
| 224 | font->average_width /= n; | ||
| 175 | 225 | ||
| 176 | cairo_glyph_t stack_glyph; | 226 | cairo_scaled_font_extents (ftcrfont_info->cr_scaled_font, &extents); |
| 177 | int n = 0; | 227 | font->ascent = lround (extents.ascent); |
| 178 | font->min_width = font->average_width = font->space_width = 0; | 228 | val = assq_no_quit (QCminspace, AREF (entity, FONT_EXTRA_INDEX)); |
| 179 | for (char c = 32; c < 127; c++) | 229 | if (!(CONSP (val) && NILP (XCDR (val)))) |
| 180 | { | 230 | { |
| 181 | cairo_glyph_t *glyphs = &stack_glyph; | 231 | font->descent = lround (extents.descent); |
| 182 | int num_glyphs = 1; | 232 | font->height = font->ascent + font->descent; |
| 183 | cairo_status_t status = | 233 | } |
| 184 | cairo_scaled_font_text_to_glyphs (ftcrfont_info->cr_scaled_font, | 234 | else |
| 185 | 0, 0, &c, 1, | 235 | { |
| 186 | &glyphs, &num_glyphs, | 236 | font->height = lround (extents.height); |
| 187 | NULL, NULL, NULL); | 237 | font->descent = font->height - font->ascent; |
| 188 | 238 | } | |
| 189 | if (status == CAIRO_STATUS_SUCCESS) | ||
| 190 | { | ||
| 191 | if (glyphs != &stack_glyph) | ||
| 192 | cairo_glyph_free (glyphs); | ||
| 193 | else | ||
| 194 | { | ||
| 195 | int this_width = | ||
| 196 | ftcrfont_glyph_extents (font, stack_glyph.index, NULL); | ||
| 197 | |||
| 198 | if (this_width > 0 | ||
| 199 | && (! font->min_width | ||
| 200 | || font->min_width > this_width)) | ||
| 201 | font->min_width = this_width; | ||
| 202 | if (c == 32) | ||
| 203 | font->space_width = this_width; | ||
| 204 | font->average_width += this_width; | ||
| 205 | n++; | ||
| 206 | } | ||
| 207 | } | ||
| 208 | } | ||
| 209 | if (n > 0) | ||
| 210 | font->average_width /= n; | ||
| 211 | 239 | ||
| 212 | font->underline_position = -1; | 240 | ft_face = cairo_ft_scaled_font_lock_face (scaled_font); |
| 213 | font->underline_thickness = 0; | 241 | if (XFIXNUM (AREF (entity, FONT_SIZE_INDEX)) == 0) |
| 214 | } | 242 | { |
| 243 | int upEM = ft_face->units_per_EM; | ||
| 244 | |||
| 245 | font->underline_position = -ft_face->underline_position * size / upEM; | ||
| 246 | font->underline_thickness = ft_face->underline_thickness * size / upEM; | ||
| 247 | if (font->underline_thickness > 2) | ||
| 248 | font->underline_position -= font->underline_thickness / 2; | ||
| 249 | } | ||
| 250 | else | ||
| 251 | { | ||
| 252 | font->underline_position = -1; | ||
| 253 | font->underline_thickness = 0; | ||
| 215 | } | 254 | } |
| 255 | #ifdef HAVE_LIBOTF | ||
| 256 | ftcrfont_info->maybe_otf = (ft_face->face_flags & FT_FACE_FLAG_SFNT) != 0; | ||
| 257 | ftcrfont_info->otf = NULL; | ||
| 258 | #endif /* HAVE_LIBOTF */ | ||
| 259 | if (ft_face->units_per_EM) | ||
| 260 | ftcrfont_info->bitmap_position_unit = 0; | ||
| 261 | else | ||
| 262 | ftcrfont_info->bitmap_position_unit = (extents.height | ||
| 263 | / ft_face->size->metrics.height); | ||
| 264 | cairo_ft_scaled_font_unlock_face (scaled_font); | ||
| 265 | ftcrfont_info->ft_size = NULL; | ||
| 216 | unblock_input (); | 266 | unblock_input (); |
| 217 | 267 | ||
| 268 | font->baseline_offset = 0; | ||
| 269 | font->relative_compose = 0; | ||
| 270 | font->default_ascent = 0; | ||
| 271 | font->vertical_centering = false; | ||
| 272 | |||
| 218 | return font_object; | 273 | return font_object; |
| 219 | } | 274 | } |
| 220 | 275 | ||
| @@ -225,24 +280,63 @@ ftcrfont_close (struct font *font) | |||
| 225 | return; | 280 | return; |
| 226 | 281 | ||
| 227 | struct font_info *ftcrfont_info = (struct font_info *) font; | 282 | struct font_info *ftcrfont_info = (struct font_info *) font; |
| 228 | int i; | ||
| 229 | 283 | ||
| 230 | block_input (); | 284 | block_input (); |
| 231 | for (i = 0; i < ftcrfont_info->metrics_nrows; i++) | 285 | #ifdef HAVE_LIBOTF |
| 286 | if (ftcrfont_info->otf) | ||
| 287 | { | ||
| 288 | OTF_close (ftcrfont_info->otf); | ||
| 289 | ftcrfont_info->otf = NULL; | ||
| 290 | } | ||
| 291 | #endif | ||
| 292 | for (int i = 0; i < ftcrfont_info->metrics_nrows; i++) | ||
| 232 | if (ftcrfont_info->metrics[i]) | 293 | if (ftcrfont_info->metrics[i]) |
| 233 | xfree (ftcrfont_info->metrics[i]); | 294 | xfree (ftcrfont_info->metrics[i]); |
| 234 | if (ftcrfont_info->metrics) | 295 | if (ftcrfont_info->metrics) |
| 235 | xfree (ftcrfont_info->metrics); | 296 | xfree (ftcrfont_info->metrics); |
| 236 | FT_Done_Size (ftcrfont_info->ft_size_draw); | ||
| 237 | cairo_scaled_font_destroy (ftcrfont_info->cr_scaled_font); | 297 | cairo_scaled_font_destroy (ftcrfont_info->cr_scaled_font); |
| 238 | unblock_input (); | 298 | unblock_input (); |
| 299 | } | ||
| 300 | |||
| 301 | static int | ||
| 302 | ftcrfont_has_char (Lisp_Object font, int c) | ||
| 303 | { | ||
| 304 | if (FONT_ENTITY_P (font)) | ||
| 305 | return ftfont_has_char (font, c); | ||
| 239 | 306 | ||
| 240 | ftfont_close (font); | 307 | return -1; |
| 308 | } | ||
| 309 | |||
| 310 | static unsigned | ||
| 311 | ftcrfont_encode_char (struct font *font, int c) | ||
| 312 | { | ||
| 313 | struct font_info *ftcrfont_info = (struct font_info *) font; | ||
| 314 | unsigned code = FONT_INVALID_CODE; | ||
| 315 | unsigned char utf8[MAX_MULTIBYTE_LENGTH]; | ||
| 316 | unsigned char *p = utf8; | ||
| 317 | cairo_glyph_t stack_glyph; | ||
| 318 | cairo_glyph_t *glyphs = &stack_glyph; | ||
| 319 | int num_glyphs = 1; | ||
| 320 | |||
| 321 | CHAR_STRING_ADVANCE (c, p); | ||
| 322 | if (cairo_scaled_font_text_to_glyphs (ftcrfont_info->cr_scaled_font, 0, 0, | ||
| 323 | (char *) utf8, p - utf8, | ||
| 324 | &glyphs, &num_glyphs, | ||
| 325 | NULL, NULL, NULL) | ||
| 326 | == CAIRO_STATUS_SUCCESS) | ||
| 327 | { | ||
| 328 | if (glyphs != &stack_glyph) | ||
| 329 | cairo_glyph_free (glyphs); | ||
| 330 | else if (stack_glyph.index) | ||
| 331 | code = stack_glyph.index; | ||
| 332 | } | ||
| 333 | |||
| 334 | return code; | ||
| 241 | } | 335 | } |
| 242 | 336 | ||
| 243 | static void | 337 | static void |
| 244 | ftcrfont_text_extents (struct font *font, | 338 | ftcrfont_text_extents (struct font *font, |
| 245 | unsigned *code, | 339 | const unsigned *code, |
| 246 | int nglyphs, | 340 | int nglyphs, |
| 247 | struct font_metrics *metrics) | 341 | struct font_metrics *metrics) |
| 248 | { | 342 | { |
| @@ -280,10 +374,18 @@ ftcrfont_get_bitmap (struct font *font, unsigned int code, | |||
| 280 | { | 374 | { |
| 281 | struct font_info *ftcrfont_info = (struct font_info *) font; | 375 | struct font_info *ftcrfont_info = (struct font_info *) font; |
| 282 | 376 | ||
| 283 | if (ftcrfont_info->bitmap_strike_index < 0) | 377 | if (ftcrfont_info->bitmap_position_unit) |
| 284 | return ftfont_get_bitmap (font, code, bitmap, bits_per_pixel); | 378 | return -1; |
| 285 | 379 | ||
| 286 | return -1; | 380 | cairo_scaled_font_t *scaled_font = ftcrfont_info->cr_scaled_font; |
| 381 | FT_Face ft_face = cairo_ft_scaled_font_lock_face (scaled_font); | ||
| 382 | |||
| 383 | ftcrfont_info->ft_size = ft_face->size; | ||
| 384 | int result = ftfont_get_bitmap (font, code, bitmap, bits_per_pixel); | ||
| 385 | cairo_ft_scaled_font_unlock_face (scaled_font); | ||
| 386 | ftcrfont_info->ft_size = NULL; | ||
| 387 | |||
| 388 | return result; | ||
| 287 | } | 389 | } |
| 288 | 390 | ||
| 289 | static int | 391 | static int |
| @@ -292,25 +394,75 @@ ftcrfont_anchor_point (struct font *font, unsigned int code, int idx, | |||
| 292 | { | 394 | { |
| 293 | struct font_info *ftcrfont_info = (struct font_info *) font; | 395 | struct font_info *ftcrfont_info = (struct font_info *) font; |
| 294 | 396 | ||
| 295 | if (ftcrfont_info->bitmap_strike_index < 0) | 397 | if (ftcrfont_info->bitmap_position_unit) |
| 296 | return ftfont_anchor_point (font, code, idx, x, y); | 398 | return -1; |
| 297 | 399 | ||
| 298 | return -1; | 400 | cairo_scaled_font_t *scaled_font = ftcrfont_info->cr_scaled_font; |
| 401 | FT_Face ft_face = cairo_ft_scaled_font_lock_face (scaled_font); | ||
| 402 | |||
| 403 | ftcrfont_info->ft_size = ft_face->size; | ||
| 404 | int result = ftfont_anchor_point (font, code, idx, x, y); | ||
| 405 | cairo_ft_scaled_font_unlock_face (scaled_font); | ||
| 406 | ftcrfont_info->ft_size = NULL; | ||
| 407 | |||
| 408 | return result; | ||
| 299 | } | 409 | } |
| 300 | 410 | ||
| 411 | #ifdef HAVE_LIBOTF | ||
| 301 | static Lisp_Object | 412 | static Lisp_Object |
| 302 | ftcrfont_shape (Lisp_Object lgstring) | 413 | ftcrfont_otf_capability (struct font *font) |
| 303 | { | 414 | { |
| 415 | struct font_info *ftcrfont_info = (struct font_info *) font; | ||
| 416 | cairo_scaled_font_t *scaled_font = ftcrfont_info->cr_scaled_font; | ||
| 417 | FT_Face ft_face = cairo_ft_scaled_font_lock_face (scaled_font); | ||
| 418 | |||
| 419 | ftcrfont_info->ft_size = ft_face->size; | ||
| 420 | Lisp_Object result = ftfont_otf_capability (font); | ||
| 421 | cairo_ft_scaled_font_unlock_face (scaled_font); | ||
| 422 | ftcrfont_info->ft_size = NULL; | ||
| 423 | |||
| 424 | return result; | ||
| 425 | } | ||
| 426 | #endif | ||
| 427 | |||
| 304 | #if defined HAVE_M17N_FLT && defined HAVE_LIBOTF | 428 | #if defined HAVE_M17N_FLT && defined HAVE_LIBOTF |
| 429 | static Lisp_Object | ||
| 430 | ftcrfont_shape (Lisp_Object lgstring) | ||
| 431 | { | ||
| 305 | struct font *font = CHECK_FONT_GET_OBJECT (LGSTRING_FONT (lgstring)); | 432 | struct font *font = CHECK_FONT_GET_OBJECT (LGSTRING_FONT (lgstring)); |
| 306 | struct font_info *ftcrfont_info = (struct font_info *) font; | 433 | struct font_info *ftcrfont_info = (struct font_info *) font; |
| 307 | 434 | ||
| 308 | if (ftcrfont_info->bitmap_strike_index < 0) | 435 | if (ftcrfont_info->bitmap_position_unit) |
| 309 | return ftfont_shape (lgstring); | 436 | return make_fixnum (0); |
| 437 | |||
| 438 | cairo_scaled_font_t *scaled_font = ftcrfont_info->cr_scaled_font; | ||
| 439 | FT_Face ft_face = cairo_ft_scaled_font_lock_face (scaled_font); | ||
| 440 | |||
| 441 | ftcrfont_info->ft_size = ft_face->size; | ||
| 442 | Lisp_Object result = ftfont_shape (lgstring); | ||
| 443 | cairo_ft_scaled_font_unlock_face (scaled_font); | ||
| 444 | ftcrfont_info->ft_size = NULL; | ||
| 445 | |||
| 446 | return result; | ||
| 447 | } | ||
| 310 | #endif | 448 | #endif |
| 311 | 449 | ||
| 312 | return make_fixnum (0); | 450 | #ifdef HAVE_OTF_GET_VARIATION_GLYPHS |
| 451 | static int | ||
| 452 | ftcrfont_variation_glyphs (struct font *font, int c, unsigned variations[256]) | ||
| 453 | { | ||
| 454 | struct font_info *ftcrfont_info = (struct font_info *) font; | ||
| 455 | cairo_scaled_font_t *scaled_font = ftcrfont_info->cr_scaled_font; | ||
| 456 | FT_Face ft_face = cairo_ft_scaled_font_lock_face (scaled_font); | ||
| 457 | |||
| 458 | ftcrfont_info->ft_size = ft_face->size; | ||
| 459 | int result = ftfont_variation_glyphs (font, c, variations); | ||
| 460 | cairo_ft_scaled_font_unlock_face (scaled_font); | ||
| 461 | ftcrfont_info->ft_size = NULL; | ||
| 462 | |||
| 463 | return result; | ||
| 313 | } | 464 | } |
| 465 | #endif /* HAVE_OTF_GET_VARIATION_GLYPHS */ | ||
| 314 | 466 | ||
| 315 | static int | 467 | static int |
| 316 | ftcrfont_draw (struct glyph_string *s, | 468 | ftcrfont_draw (struct glyph_string *s, |
| @@ -321,8 +473,6 @@ ftcrfont_draw (struct glyph_string *s, | |||
| 321 | struct font_info *ftcrfont_info = (struct font_info *) s->font; | 473 | struct font_info *ftcrfont_info = (struct font_info *) s->font; |
| 322 | cairo_t *cr; | 474 | cairo_t *cr; |
| 323 | cairo_glyph_t *glyphs; | 475 | cairo_glyph_t *glyphs; |
| 324 | cairo_surface_t *surface; | ||
| 325 | cairo_surface_type_t surface_type; | ||
| 326 | int len = to - from; | 476 | int len = to - from; |
| 327 | int i; | 477 | int i; |
| 328 | 478 | ||
| @@ -341,28 +491,17 @@ ftcrfont_draw (struct glyph_string *s, | |||
| 341 | glyphs = alloca (sizeof (cairo_glyph_t) * len); | 491 | glyphs = alloca (sizeof (cairo_glyph_t) * len); |
| 342 | for (i = 0; i < len; i++) | 492 | for (i = 0; i < len; i++) |
| 343 | { | 493 | { |
| 344 | unsigned code = ((XCHAR2B_BYTE1 (s->char2b + from + i) << 8) | 494 | glyphs[i].index = s->char2b[from + i]; |
| 345 | | XCHAR2B_BYTE2 (s->char2b + from + i)); | ||
| 346 | |||
| 347 | glyphs[i].index = code; | ||
| 348 | glyphs[i].x = x; | 495 | glyphs[i].x = x; |
| 349 | glyphs[i].y = y; | 496 | glyphs[i].y = y; |
| 350 | x += (s->padding_p ? 1 : ftcrfont_glyph_extents (s->font, code, NULL)); | 497 | x += (s->padding_p ? 1 : ftcrfont_glyph_extents (s->font, |
| 498 | glyphs[i].index, | ||
| 499 | NULL)); | ||
| 351 | } | 500 | } |
| 352 | 501 | ||
| 353 | x_set_cr_source_with_gc_foreground (f, s->gc); | 502 | x_set_cr_source_with_gc_foreground (f, s->gc); |
| 354 | cairo_set_scaled_font (cr, ftcrfont_info->cr_scaled_font); | 503 | cairo_set_scaled_font (cr, ftcrfont_info->cr_scaled_font); |
| 355 | |||
| 356 | FT_Activate_Size (ftcrfont_info->ft_size_draw); | ||
| 357 | cairo_show_glyphs (cr, glyphs, len); | 504 | cairo_show_glyphs (cr, glyphs, len); |
| 358 | surface = cairo_get_target (cr); | ||
| 359 | /* XXX: It used to be necessary to flush when exporting. It might | ||
| 360 | be the case that this is no longer necessary. */ | ||
| 361 | surface_type = cairo_surface_get_type (surface); | ||
| 362 | if (surface_type != CAIRO_SURFACE_TYPE_XLIB | ||
| 363 | && (surface_type != CAIRO_SURFACE_TYPE_IMAGE | ||
| 364 | || cairo_image_surface_get_format (surface) != CAIRO_FORMAT_ARGB32)) | ||
| 365 | cairo_surface_flush (surface); | ||
| 366 | 505 | ||
| 367 | x_end_cr_clip (f); | 506 | x_end_cr_clip (f); |
| 368 | 507 | ||
| @@ -384,18 +523,20 @@ struct font_driver const ftcrfont_driver = | |||
| 384 | .list_family = ftfont_list_family, | 523 | .list_family = ftfont_list_family, |
| 385 | .open = ftcrfont_open, | 524 | .open = ftcrfont_open, |
| 386 | .close = ftcrfont_close, | 525 | .close = ftcrfont_close, |
| 387 | .has_char = ftfont_has_char, | 526 | .has_char = ftcrfont_has_char, |
| 388 | .encode_char = ftfont_encode_char, | 527 | .encode_char = ftcrfont_encode_char, |
| 389 | .text_extents = ftcrfont_text_extents, | 528 | .text_extents = ftcrfont_text_extents, |
| 390 | .draw = ftcrfont_draw, | 529 | .draw = ftcrfont_draw, |
| 391 | .get_bitmap = ftcrfont_get_bitmap, | 530 | .get_bitmap = ftcrfont_get_bitmap, |
| 392 | .anchor_point = ftcrfont_anchor_point, | 531 | .anchor_point = ftcrfont_anchor_point, |
| 393 | #ifdef HAVE_LIBOTF | 532 | #ifdef HAVE_LIBOTF |
| 394 | .otf_capability = ftfont_otf_capability, | 533 | .otf_capability = ftcrfont_otf_capability, |
| 395 | #endif | 534 | #endif |
| 535 | #if defined HAVE_M17N_FLT && defined HAVE_LIBOTF | ||
| 396 | .shape = ftcrfont_shape, | 536 | .shape = ftcrfont_shape, |
| 537 | #endif | ||
| 397 | #ifdef HAVE_OTF_GET_VARIATION_GLYPHS | 538 | #ifdef HAVE_OTF_GET_VARIATION_GLYPHS |
| 398 | .get_variation_glyphs = ftfont_variation_glyphs, | 539 | .get_variation_glyphs = ftcrfont_variation_glyphs, |
| 399 | #endif | 540 | #endif |
| 400 | .filter_properties = ftfont_filter_properties, | 541 | .filter_properties = ftfont_filter_properties, |
| 401 | .combining_capability = ftfont_combining_capability, | 542 | .combining_capability = ftfont_combining_capability, |
diff --git a/src/ftfont.c b/src/ftfont.c index 4770c3c40b3..d8b510d7032 100644 --- a/src/ftfont.c +++ b/src/ftfont.c | |||
| @@ -1079,12 +1079,159 @@ ftfont_list_family (struct frame *f) | |||
| 1079 | return list; | 1079 | return list; |
| 1080 | } | 1080 | } |
| 1081 | 1081 | ||
| 1082 | void | ||
| 1083 | ftfont_fix_match (FcPattern *pat, FcPattern *match) | ||
| 1084 | { | ||
| 1085 | /* These values are not used for matching (except antialias), but for | ||
| 1086 | rendering, so make sure they are carried over to the match. | ||
| 1087 | We also put antialias here because most fonts are antialiased, so | ||
| 1088 | the match will have antialias true. */ | ||
| 1089 | |||
| 1090 | FcBool b = FcTrue; | ||
| 1091 | int i; | ||
| 1092 | double dpi; | ||
| 1093 | |||
| 1094 | FcPatternGetBool (pat, FC_ANTIALIAS, 0, &b); | ||
| 1095 | if (! b) | ||
| 1096 | { | ||
| 1097 | FcPatternDel (match, FC_ANTIALIAS); | ||
| 1098 | FcPatternAddBool (match, FC_ANTIALIAS, FcFalse); | ||
| 1099 | } | ||
| 1100 | FcPatternGetBool (pat, FC_HINTING, 0, &b); | ||
| 1101 | if (! b) | ||
| 1102 | { | ||
| 1103 | FcPatternDel (match, FC_HINTING); | ||
| 1104 | FcPatternAddBool (match, FC_HINTING, FcFalse); | ||
| 1105 | } | ||
| 1106 | #ifndef FC_HINT_STYLE | ||
| 1107 | # define FC_HINT_STYLE "hintstyle" | ||
| 1108 | #endif | ||
| 1109 | if (FcResultMatch == FcPatternGetInteger (pat, FC_HINT_STYLE, 0, &i)) | ||
| 1110 | { | ||
| 1111 | FcPatternDel (match, FC_HINT_STYLE); | ||
| 1112 | FcPatternAddInteger (match, FC_HINT_STYLE, i); | ||
| 1113 | } | ||
| 1114 | #ifndef FC_LCD_FILTER | ||
| 1115 | /* Older fontconfig versions don't have FC_LCD_FILTER. */ | ||
| 1116 | #define FC_LCD_FILTER "lcdfilter" | ||
| 1117 | #endif | ||
| 1118 | if (FcResultMatch == FcPatternGetInteger (pat, FC_LCD_FILTER, 0, &i)) | ||
| 1119 | { | ||
| 1120 | FcPatternDel (match, FC_LCD_FILTER); | ||
| 1121 | FcPatternAddInteger (match, FC_LCD_FILTER, i); | ||
| 1122 | } | ||
| 1123 | if (FcResultMatch == FcPatternGetInteger (pat, FC_RGBA, 0, &i)) | ||
| 1124 | { | ||
| 1125 | FcPatternDel (match, FC_RGBA); | ||
| 1126 | FcPatternAddInteger (match, FC_RGBA, i); | ||
| 1127 | } | ||
| 1128 | if (FcResultMatch == FcPatternGetDouble (pat, FC_DPI, 0, &dpi)) | ||
| 1129 | { | ||
| 1130 | FcPatternDel (match, FC_DPI); | ||
| 1131 | FcPatternAddDouble (match, FC_DPI, dpi); | ||
| 1132 | } | ||
| 1133 | } | ||
| 1134 | |||
| 1135 | void | ||
| 1136 | ftfont_add_rendering_parameters (FcPattern *pat, Lisp_Object entity) | ||
| 1137 | { | ||
| 1138 | Lisp_Object tail; | ||
| 1139 | int ival; | ||
| 1140 | |||
| 1141 | for (tail = AREF (entity, FONT_EXTRA_INDEX); CONSP (tail); tail = XCDR (tail)) | ||
| 1142 | { | ||
| 1143 | Lisp_Object key = XCAR (XCAR (tail)); | ||
| 1144 | Lisp_Object val = XCDR (XCAR (tail)); | ||
| 1145 | |||
| 1146 | if (EQ (key, QCantialias)) | ||
| 1147 | FcPatternAddBool (pat, FC_ANTIALIAS, NILP (val) ? FcFalse : FcTrue); | ||
| 1148 | else if (EQ (key, QChinting)) | ||
| 1149 | FcPatternAddBool (pat, FC_HINTING, NILP (val) ? FcFalse : FcTrue); | ||
| 1150 | else if (EQ (key, QCautohint)) | ||
| 1151 | FcPatternAddBool (pat, FC_AUTOHINT, NILP (val) ? FcFalse : FcTrue); | ||
| 1152 | else if (EQ (key, QChintstyle)) | ||
| 1153 | { | ||
| 1154 | if (FIXNUMP (val)) | ||
| 1155 | FcPatternAddInteger (pat, FC_HINT_STYLE, XFIXNUM (val)); | ||
| 1156 | else if (SYMBOLP (val) | ||
| 1157 | && FcNameConstant (SDATA (SYMBOL_NAME (val)), &ival)) | ||
| 1158 | FcPatternAddInteger (pat, FC_HINT_STYLE, ival); | ||
| 1159 | } | ||
| 1160 | else if (EQ (key, QCrgba)) | ||
| 1161 | { | ||
| 1162 | if (FIXNUMP (val)) | ||
| 1163 | FcPatternAddInteger (pat, FC_RGBA, XFIXNUM (val)); | ||
| 1164 | else if (SYMBOLP (val) | ||
| 1165 | && FcNameConstant (SDATA (SYMBOL_NAME (val)), &ival)) | ||
| 1166 | FcPatternAddInteger (pat, FC_RGBA, ival); | ||
| 1167 | } | ||
| 1168 | else if (EQ (key, QClcdfilter)) | ||
| 1169 | { | ||
| 1170 | if (FIXNUMP (val)) | ||
| 1171 | FcPatternAddInteger (pat, FC_LCD_FILTER, ival = XFIXNUM (val)); | ||
| 1172 | else if (SYMBOLP (val) | ||
| 1173 | && FcNameConstant (SDATA (SYMBOL_NAME (val)), &ival)) | ||
| 1174 | FcPatternAddInteger (pat, FC_LCD_FILTER, ival); | ||
| 1175 | } | ||
| 1176 | #ifdef FC_EMBOLDEN | ||
| 1177 | else if (EQ (key, QCembolden)) | ||
| 1178 | FcPatternAddBool (pat, FC_EMBOLDEN, NILP (val) ? FcFalse : FcTrue); | ||
| 1179 | #endif | ||
| 1180 | } | ||
| 1181 | } | ||
| 1182 | |||
| 1183 | FcPattern * | ||
| 1184 | ftfont_entity_pattern (Lisp_Object entity, int pixel_size) | ||
| 1185 | { | ||
| 1186 | Lisp_Object val, filename, idx; | ||
| 1187 | FcPattern *pat; | ||
| 1188 | int i; | ||
| 1189 | |||
| 1190 | val = assq_no_quit (QCfont_entity, AREF (entity, FONT_EXTRA_INDEX)); | ||
| 1191 | eassert (CONSP (val)); | ||
| 1192 | val = XCDR (val); | ||
| 1193 | filename = XCAR (val); | ||
| 1194 | idx = XCDR (val); | ||
| 1195 | pat = FcPatternCreate (); | ||
| 1196 | FcPatternAddInteger (pat, FC_WEIGHT, FONT_WEIGHT_NUMERIC (entity)); | ||
| 1197 | i = FONT_SLANT_NUMERIC (entity) - 100; | ||
| 1198 | if (i < 0) i = 0; | ||
| 1199 | FcPatternAddInteger (pat, FC_SLANT, i); | ||
| 1200 | FcPatternAddInteger (pat, FC_WIDTH, FONT_WIDTH_NUMERIC (entity)); | ||
| 1201 | FcPatternAddDouble (pat, FC_PIXEL_SIZE, pixel_size); | ||
| 1202 | val = AREF (entity, FONT_FAMILY_INDEX); | ||
| 1203 | if (! NILP (val)) | ||
| 1204 | FcPatternAddString (pat, FC_FAMILY, (FcChar8 *) SDATA (SYMBOL_NAME (val))); | ||
| 1205 | val = AREF (entity, FONT_FOUNDRY_INDEX); | ||
| 1206 | if (! NILP (val)) | ||
| 1207 | FcPatternAddString (pat, FC_FOUNDRY, (FcChar8 *) SDATA (SYMBOL_NAME (val))); | ||
| 1208 | val = AREF (entity, FONT_SPACING_INDEX); | ||
| 1209 | if (! NILP (val)) | ||
| 1210 | FcPatternAddInteger (pat, FC_SPACING, XFIXNUM (val)); | ||
| 1211 | val = AREF (entity, FONT_DPI_INDEX); | ||
| 1212 | if (! NILP (val)) | ||
| 1213 | { | ||
| 1214 | double dbl = XFIXNUM (val); | ||
| 1215 | |||
| 1216 | FcPatternAddDouble (pat, FC_DPI, dbl); | ||
| 1217 | } | ||
| 1218 | val = AREF (entity, FONT_AVGWIDTH_INDEX); | ||
| 1219 | if (FIXNUMP (val) && XFIXNUM (val) == 0) | ||
| 1220 | FcPatternAddBool (pat, FC_SCALABLE, FcTrue); | ||
| 1221 | /* This is necessary to identify the exact font (e.g. 10x20.pcf.gz | ||
| 1222 | over 10x20-ISO8859-1.pcf.gz). */ | ||
| 1223 | FcPatternAddCharSet (pat, FC_CHARSET, ftfont_get_fc_charset (entity)); | ||
| 1224 | |||
| 1225 | ftfont_add_rendering_parameters (pat, entity); | ||
| 1226 | |||
| 1227 | FcPatternAddString (pat, FC_FILE, (FcChar8 *) SDATA (filename)); | ||
| 1228 | FcPatternAddInteger (pat, FC_INDEX, XFIXNUM (idx)); | ||
| 1229 | |||
| 1230 | return pat; | ||
| 1231 | } | ||
| 1082 | 1232 | ||
| 1083 | Lisp_Object | 1233 | Lisp_Object |
| 1084 | ftfont_open2 (struct frame *f, | 1234 | ftfont_open (struct frame *f, Lisp_Object entity, int pixel_size) |
| 1085 | Lisp_Object entity, | ||
| 1086 | int pixel_size, | ||
| 1087 | Lisp_Object font_object) | ||
| 1088 | { | 1235 | { |
| 1089 | struct font_info *ftfont_info; | 1236 | struct font_info *ftfont_info; |
| 1090 | struct font *font; | 1237 | struct font *font; |
| @@ -1092,12 +1239,11 @@ ftfont_open2 (struct frame *f, | |||
| 1092 | FT_Face ft_face; | 1239 | FT_Face ft_face; |
| 1093 | FT_Size ft_size; | 1240 | FT_Size ft_size; |
| 1094 | FT_UInt size; | 1241 | FT_UInt size; |
| 1095 | Lisp_Object val, filename, idx, cache; | 1242 | Lisp_Object val, filename, idx, cache, font_object; |
| 1096 | bool scalable; | 1243 | bool scalable; |
| 1097 | int spacing; | 1244 | int spacing; |
| 1098 | int i; | 1245 | int i; |
| 1099 | double upEM; | 1246 | double upEM; |
| 1100 | FT_Int strike_index = -1; | ||
| 1101 | 1247 | ||
| 1102 | val = assq_no_quit (QCfont_entity, AREF (entity, FONT_EXTRA_INDEX)); | 1248 | val = assq_no_quit (QCfont_entity, AREF (entity, FONT_EXTRA_INDEX)); |
| 1103 | if (! CONSP (val)) | 1249 | if (! CONSP (val)) |
| @@ -1126,35 +1272,17 @@ ftfont_open2 (struct frame *f, | |||
| 1126 | size = pixel_size; | 1272 | size = pixel_size; |
| 1127 | if (FT_Set_Pixel_Sizes (ft_face, size, size) != 0) | 1273 | if (FT_Set_Pixel_Sizes (ft_face, size, size) != 0) |
| 1128 | { | 1274 | { |
| 1129 | int min_distance = INT_MAX; | 1275 | if (cache_data->face_refcount == 0) |
| 1130 | bool magnify = true; | ||
| 1131 | |||
| 1132 | for (FT_Int i = 0; i < ft_face->num_fixed_sizes; i++) | ||
| 1133 | { | ||
| 1134 | int distance = ft_face->available_sizes[i].height - (int) size; | ||
| 1135 | |||
| 1136 | /* Prefer down-scaling to upscaling. */ | ||
| 1137 | if (magnify == (distance < 0) ? abs (distance) <= min_distance | ||
| 1138 | : magnify) | ||
| 1139 | { | ||
| 1140 | magnify = distance < 0; | ||
| 1141 | min_distance = abs (distance); | ||
| 1142 | strike_index = i; | ||
| 1143 | } | ||
| 1144 | } | ||
| 1145 | |||
| 1146 | if (strike_index < 0 || FT_Select_Size (ft_face, strike_index) != 0) | ||
| 1147 | { | 1276 | { |
| 1148 | if (cache_data->face_refcount == 0) | 1277 | FT_Done_Face (ft_face); |
| 1149 | { | 1278 | cache_data->ft_face = NULL; |
| 1150 | FT_Done_Face (ft_face); | ||
| 1151 | cache_data->ft_face = NULL; | ||
| 1152 | } | ||
| 1153 | return Qnil; | ||
| 1154 | } | 1279 | } |
| 1280 | return Qnil; | ||
| 1155 | } | 1281 | } |
| 1156 | cache_data->face_refcount++; | 1282 | cache_data->face_refcount++; |
| 1157 | 1283 | ||
| 1284 | font_object = font_build_object (VECSIZE (struct font_info), | ||
| 1285 | Qfreetype, entity, size); | ||
| 1158 | ASET (font_object, FONT_FILE_INDEX, filename); | 1286 | ASET (font_object, FONT_FILE_INDEX, filename); |
| 1159 | font = XFONT_OBJECT (font_object); | 1287 | font = XFONT_OBJECT (font_object); |
| 1160 | ftfont_info = (struct font_info *) font; | 1288 | ftfont_info = (struct font_info *) font; |
| @@ -1164,7 +1292,6 @@ ftfont_open2 (struct frame *f, | |||
| 1164 | ftfont_info->maybe_otf = (ft_face->face_flags & FT_FACE_FLAG_SFNT) != 0; | 1292 | ftfont_info->maybe_otf = (ft_face->face_flags & FT_FACE_FLAG_SFNT) != 0; |
| 1165 | ftfont_info->otf = NULL; | 1293 | ftfont_info->otf = NULL; |
| 1166 | #endif /* HAVE_LIBOTF */ | 1294 | #endif /* HAVE_LIBOTF */ |
| 1167 | ftfont_info->bitmap_strike_index = strike_index; | ||
| 1168 | /* This means that there's no need of transformation. */ | 1295 | /* This means that there's no need of transformation. */ |
| 1169 | ftfont_info->matrix.xx = 0; | 1296 | ftfont_info->matrix.xx = 0; |
| 1170 | font->pixel_size = size; | 1297 | font->pixel_size = size; |
| @@ -1258,31 +1385,6 @@ ftfont_open2 (struct frame *f, | |||
| 1258 | return font_object; | 1385 | return font_object; |
| 1259 | } | 1386 | } |
| 1260 | 1387 | ||
| 1261 | Lisp_Object | ||
| 1262 | ftfont_open (struct frame *f, Lisp_Object entity, int pixel_size) | ||
| 1263 | { | ||
| 1264 | Lisp_Object font_object; | ||
| 1265 | FT_UInt size; | ||
| 1266 | size = XFIXNUM (AREF (entity, FONT_SIZE_INDEX)); | ||
| 1267 | if (size == 0) | ||
| 1268 | size = pixel_size; | ||
| 1269 | font_object = font_build_object (VECSIZE (struct font_info), | ||
| 1270 | Qfreetype, entity, size); | ||
| 1271 | font_object = ftfont_open2 (f, entity, pixel_size, font_object); | ||
| 1272 | if (FONT_OBJECT_P (font_object)) | ||
| 1273 | { | ||
| 1274 | struct font *font = XFONT_OBJECT (font_object); | ||
| 1275 | struct font_info *ftfont_info = (struct font_info *) font; | ||
| 1276 | |||
| 1277 | if (ftfont_info->bitmap_strike_index >= 0) | ||
| 1278 | { | ||
| 1279 | ftfont_close (font); | ||
| 1280 | font_object = Qnil; | ||
| 1281 | } | ||
| 1282 | } | ||
| 1283 | return font_object; | ||
| 1284 | } | ||
| 1285 | |||
| 1286 | void | 1388 | void |
| 1287 | ftfont_close (struct font *font) | 1389 | ftfont_close (struct font *font) |
| 1288 | { | 1390 | { |
| @@ -1353,7 +1455,7 @@ ftfont_encode_char (struct font *font, int c) | |||
| 1353 | } | 1455 | } |
| 1354 | 1456 | ||
| 1355 | void | 1457 | void |
| 1356 | ftfont_text_extents (struct font *font, unsigned int *code, | 1458 | ftfont_text_extents (struct font *font, const unsigned int *code, |
| 1357 | int nglyphs, struct font_metrics *metrics) | 1459 | int nglyphs, struct font_metrics *metrics) |
| 1358 | { | 1460 | { |
| 1359 | struct font_info *ftfont_info = (struct font_info *) font; | 1461 | struct font_info *ftfont_info = (struct font_info *) font; |
| @@ -2789,6 +2891,14 @@ syms_of_ftfont (void) | |||
| 2789 | /* The boolean-valued font property key specifying the use of leading. */ | 2891 | /* The boolean-valued font property key specifying the use of leading. */ |
| 2790 | DEFSYM (QCminspace, ":minspace"); | 2892 | DEFSYM (QCminspace, ":minspace"); |
| 2791 | 2893 | ||
| 2894 | /* Fontconfig's rendering parameters. */ | ||
| 2895 | DEFSYM (QChinting, ":hinting"); | ||
| 2896 | DEFSYM (QCautohint, ":autohint"); | ||
| 2897 | DEFSYM (QChintstyle, ":hintstyle"); | ||
| 2898 | DEFSYM (QCrgba, ":rgba"); | ||
| 2899 | DEFSYM (QCembolden, ":embolden"); | ||
| 2900 | DEFSYM (QClcdfilter, ":lcdfilter"); | ||
| 2901 | |||
| 2792 | staticpro (&freetype_font_cache); | 2902 | staticpro (&freetype_font_cache); |
| 2793 | freetype_font_cache = list1 (Qt); | 2903 | freetype_font_cache = list1 (Qt); |
| 2794 | 2904 | ||
diff --git a/src/ftfont.h b/src/ftfont.h index adbda49ff1c..7860469491f 100644 --- a/src/ftfont.h +++ b/src/ftfont.h | |||
| @@ -37,10 +37,9 @@ along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>. */ | |||
| 37 | #endif /* HAVE_LIBOTF */ | 37 | #endif /* HAVE_LIBOTF */ |
| 38 | 38 | ||
| 39 | extern FcCharSet *ftfont_get_fc_charset (Lisp_Object); | 39 | extern FcCharSet *ftfont_get_fc_charset (Lisp_Object); |
| 40 | extern Lisp_Object ftfont_open2 (struct frame *f, | 40 | extern void ftfont_fix_match (FcPattern *, FcPattern *); |
| 41 | Lisp_Object entity, | 41 | extern void ftfont_add_rendering_parameters (FcPattern *, Lisp_Object); |
| 42 | int pixel_size, | 42 | extern FcPattern *ftfont_entity_pattern (Lisp_Object, int); |
| 43 | Lisp_Object font_object); | ||
| 44 | 43 | ||
| 45 | /* This struct is shared by the XFT, Freetype, and Cairo font | 44 | /* This struct is shared by the XFT, Freetype, and Cairo font |
| 46 | backends. Members up to and including 'matrix' are common, the | 45 | backends. Members up to and including 'matrix' are common, the |
| @@ -54,17 +53,14 @@ struct font_info | |||
| 54 | #endif /* HAVE_LIBOTF */ | 53 | #endif /* HAVE_LIBOTF */ |
| 55 | FT_Size ft_size; | 54 | FT_Size ft_size; |
| 56 | int index; | 55 | int index; |
| 57 | /* Index of the bitmap strike used as a fallback for | ||
| 58 | FT_Set_Pixel_Sizes failure. If the value is non-negative, then | ||
| 59 | ft_size is not of the requested size. Otherwise it is -1. */ | ||
| 60 | FT_Int bitmap_strike_index; | ||
| 61 | FT_Matrix matrix; | 56 | FT_Matrix matrix; |
| 62 | 57 | ||
| 63 | #ifdef USE_CAIRO | 58 | #ifdef USE_CAIRO |
| 64 | cairo_scaled_font_t *cr_scaled_font; | 59 | cairo_scaled_font_t *cr_scaled_font; |
| 65 | /* To prevent cairo from cluttering the activated FT_Size maintained | 60 | /* Scale factor from the bitmap strike metrics in 1/64 pixels, used |
| 66 | in ftfont.c, we activate this special FT_Size before drawing. */ | 61 | as the hb_position_t value in HarfBuzz, to those in (scaled) |
| 67 | FT_Size ft_size_draw; | 62 | pixels. The value is 0 for scalable fonts. */ |
| 63 | double bitmap_position_unit; | ||
| 68 | /* Font metrics cache. */ | 64 | /* Font metrics cache. */ |
| 69 | struct font_metrics **metrics; | 65 | struct font_metrics **metrics; |
| 70 | short metrics_nrows; | 66 | short metrics_nrows; |
diff --git a/src/ftxfont.c b/src/ftxfont.c index f9a69c35151..8bce7f10f1e 100644 --- a/src/ftxfont.c +++ b/src/ftxfont.c | |||
| @@ -252,7 +252,7 @@ ftxfont_draw (struct glyph_string *s, int from, int to, int x, int y, | |||
| 252 | struct font *font = s->font; | 252 | struct font *font = s->font; |
| 253 | XPoint p[0x700]; | 253 | XPoint p[0x700]; |
| 254 | int n[7]; | 254 | int n[7]; |
| 255 | unsigned *code; | 255 | unsigned *code = s->char2b + from; |
| 256 | int len = to - from; | 256 | int len = to - from; |
| 257 | int i; | 257 | int i; |
| 258 | GC *gcs; | 258 | GC *gcs; |
| @@ -260,14 +260,9 @@ ftxfont_draw (struct glyph_string *s, int from, int to, int x, int y, | |||
| 260 | 260 | ||
| 261 | n[0] = n[1] = n[2] = n[3] = n[4] = n[5] = n[6] = 0; | 261 | n[0] = n[1] = n[2] = n[3] = n[4] = n[5] = n[6] = 0; |
| 262 | 262 | ||
| 263 | USE_SAFE_ALLOCA; | ||
| 264 | SAFE_NALLOCA (code, 1, len); | ||
| 265 | block_input (); | 263 | block_input (); |
| 266 | if (with_background) | 264 | if (with_background) |
| 267 | ftxfont_draw_background (f, font, s->gc, x, y, s->width); | 265 | ftxfont_draw_background (f, font, s->gc, x, y, s->width); |
| 268 | for (i = 0; i < len; i++) | ||
| 269 | code[i] = ((XCHAR2B_BYTE1 (s->char2b + from + i) << 8) | ||
| 270 | | XCHAR2B_BYTE2 (s->char2b + from + i)); | ||
| 271 | 266 | ||
| 272 | if (face->gc == s->gc) | 267 | if (face->gc == s->gc) |
| 273 | { | 268 | { |
| @@ -312,7 +307,6 @@ ftxfont_draw (struct glyph_string *s, int from, int to, int x, int y, | |||
| 312 | } | 307 | } |
| 313 | 308 | ||
| 314 | unblock_input (); | 309 | unblock_input (); |
| 315 | SAFE_FREE (); | ||
| 316 | 310 | ||
| 317 | return len; | 311 | return len; |
| 318 | } | 312 | } |
diff --git a/src/gtkutil.c b/src/gtkutil.c index 48233576531..43918dd3da5 100644 --- a/src/gtkutil.c +++ b/src/gtkutil.c | |||
| @@ -520,7 +520,7 @@ get_utf8_string (const char *str) | |||
| 520 | bool | 520 | bool |
| 521 | xg_check_special_colors (struct frame *f, | 521 | xg_check_special_colors (struct frame *f, |
| 522 | const char *color_name, | 522 | const char *color_name, |
| 523 | XColor *color) | 523 | Emacs_Color *color) |
| 524 | { | 524 | { |
| 525 | bool success_p = 0; | 525 | bool success_p = 0; |
| 526 | bool get_bg = strcmp ("gtk_selection_bg_color", color_name) == 0; | 526 | bool get_bg = strcmp ("gtk_selection_bg_color", color_name) == 0; |
diff --git a/src/gtkutil.h b/src/gtkutil.h index ec899781ca8..229aa08f817 100644 --- a/src/gtkutil.h +++ b/src/gtkutil.h | |||
| @@ -166,7 +166,7 @@ extern void xg_free_frame_widgets (struct frame *f); | |||
| 166 | extern void xg_set_background_color (struct frame *f, unsigned long bg); | 166 | extern void xg_set_background_color (struct frame *f, unsigned long bg); |
| 167 | extern bool xg_check_special_colors (struct frame *f, | 167 | extern bool xg_check_special_colors (struct frame *f, |
| 168 | const char *color_name, | 168 | const char *color_name, |
| 169 | XColor *color); | 169 | Emacs_Color *color); |
| 170 | 170 | ||
| 171 | extern void xg_set_frame_icon (struct frame *f, | 171 | extern void xg_set_frame_icon (struct frame *f, |
| 172 | Pixmap icon_pixmap, | 172 | Pixmap icon_pixmap, |
diff --git a/src/image.c b/src/image.c index 071b92a741e..699bdfd4fa1 100644 --- a/src/image.c +++ b/src/image.c | |||
| @@ -132,17 +132,17 @@ static unsigned long *colors_in_color_table (int *n); | |||
| 132 | #ifdef HAVE_NS | 132 | #ifdef HAVE_NS |
| 133 | /* Use with images created by ns_image_for_XPM. */ | 133 | /* Use with images created by ns_image_for_XPM. */ |
| 134 | static unsigned long | 134 | static unsigned long |
| 135 | XGetPixel (XImagePtr ximage, int x, int y) | 135 | XGetPixel (Emacs_Pix_Container image, int x, int y) |
| 136 | { | 136 | { |
| 137 | return ns_get_pixel (ximage, x, y); | 137 | return ns_get_pixel (image, x, y); |
| 138 | } | 138 | } |
| 139 | 139 | ||
| 140 | /* Use with images created by ns_image_for_XPM; alpha set to 1; | 140 | /* Use with images created by ns_image_for_XPM; alpha set to 1; |
| 141 | pixel is assumed to be in RGB form. */ | 141 | pixel is assumed to be in RGB form. */ |
| 142 | static void | 142 | static void |
| 143 | XPutPixel (XImagePtr ximage, int x, int y, unsigned long pixel) | 143 | XPutPixel (Emacs_Pix_Container image, int x, int y, unsigned long pixel) |
| 144 | { | 144 | { |
| 145 | ns_put_pixel (ximage, x, y, pixel); | 145 | ns_put_pixel (image, x, y, pixel); |
| 146 | } | 146 | } |
| 147 | #endif /* HAVE_NS */ | 147 | #endif /* HAVE_NS */ |
| 148 | 148 | ||
| @@ -228,7 +228,7 @@ image_create_bitmap_from_data (struct frame *f, char *bits, | |||
| 228 | 228 | ||
| 229 | #ifdef HAVE_NTGUI | 229 | #ifdef HAVE_NTGUI |
| 230 | Lisp_Object frame UNINIT; /* The value is not used. */ | 230 | Lisp_Object frame UNINIT; /* The value is not used. */ |
| 231 | Pixmap bitmap; | 231 | Emacs_Pixmap bitmap; |
| 232 | bitmap = CreateBitmap (width, height, | 232 | bitmap = CreateBitmap (width, height, |
| 233 | FRAME_DISPLAY_INFO (XFRAME (frame))->n_planes, | 233 | FRAME_DISPLAY_INFO (XFRAME (frame))->n_planes, |
| 234 | FRAME_DISPLAY_INFO (XFRAME (frame))->n_cbits, | 234 | FRAME_DISPLAY_INFO (XFRAME (frame))->n_cbits, |
| @@ -412,17 +412,19 @@ typedef void Picture; | |||
| 412 | #endif | 412 | #endif |
| 413 | 413 | ||
| 414 | static bool image_create_x_image_and_pixmap_1 (struct frame *, int, int, int, | 414 | static bool image_create_x_image_and_pixmap_1 (struct frame *, int, int, int, |
| 415 | XImagePtr *, Pixmap *, Picture *); | 415 | Emacs_Pix_Container *, |
| 416 | static void image_destroy_x_image (XImagePtr ximg); | 416 | Emacs_Pixmap *, Picture *); |
| 417 | static void image_destroy_x_image (Emacs_Pix_Container); | ||
| 417 | 418 | ||
| 418 | #ifdef HAVE_NTGUI | 419 | #ifdef HAVE_NTGUI |
| 419 | static XImagePtr_or_DC image_get_x_image_or_dc (struct frame *, struct image *, | 420 | static HDC image_get_x_image_or_dc (struct frame *, struct image *, |
| 420 | bool, HGDIOBJ *); | 421 | bool, HGDIOBJ *); |
| 421 | static void image_unget_x_image_or_dc (struct image *, bool, XImagePtr_or_DC, | 422 | static void image_unget_x_image_or_dc (struct image *, bool, |
| 422 | HGDIOBJ); | 423 | HDC, HGDIOBJ); |
| 423 | #else | 424 | #else |
| 424 | static XImagePtr image_get_x_image (struct frame *, struct image *, bool); | 425 | static Emacs_Pix_Container image_get_x_image (struct frame *, struct image *, |
| 425 | static void image_unget_x_image (struct image *, bool, XImagePtr); | 426 | bool); |
| 427 | static void image_unget_x_image (struct image *, bool, Emacs_Pix_Container); | ||
| 426 | #define image_get_x_image_or_dc(f, img, mask_p, dummy) \ | 428 | #define image_get_x_image_or_dc(f, img, mask_p, dummy) \ |
| 427 | image_get_x_image (f, img, mask_p) | 429 | image_get_x_image (f, img, mask_p) |
| 428 | #define image_unget_x_image_or_dc(img, mask_p, ximg, dummy) \ | 430 | #define image_unget_x_image_or_dc(img, mask_p, ximg, dummy) \ |
| @@ -436,7 +438,7 @@ static void image_sync_to_pixmaps (struct frame *, struct image *); | |||
| 436 | /* Useful functions defined in the section | 438 | /* Useful functions defined in the section |
| 437 | `Image type independent image structures' below. */ | 439 | `Image type independent image structures' below. */ |
| 438 | 440 | ||
| 439 | static unsigned long four_corners_best (XImagePtr ximg, | 441 | static unsigned long four_corners_best (XImage *ximg, |
| 440 | int *corners, | 442 | int *corners, |
| 441 | unsigned long width, | 443 | unsigned long width, |
| 442 | unsigned long height); | 444 | unsigned long height); |
| @@ -449,7 +451,7 @@ void | |||
| 449 | x_create_bitmap_mask (struct frame *f, ptrdiff_t id) | 451 | x_create_bitmap_mask (struct frame *f, ptrdiff_t id) |
| 450 | { | 452 | { |
| 451 | Pixmap pixmap, mask; | 453 | Pixmap pixmap, mask; |
| 452 | XImagePtr ximg, mask_img; | 454 | XImage *ximg, *mask_img; |
| 453 | unsigned long width, height; | 455 | unsigned long width, height; |
| 454 | bool result; | 456 | bool result; |
| 455 | unsigned long bg; | 457 | unsigned long bg; |
| @@ -1076,10 +1078,10 @@ image_ascent (struct image *img, struct face *face, struct glyph_slice *slice) | |||
| 1076 | 1078 | ||
| 1077 | #ifdef USE_CAIRO | 1079 | #ifdef USE_CAIRO |
| 1078 | static uint32_t | 1080 | static uint32_t |
| 1079 | xcolor_to_argb32 (XColor xc) | 1081 | emacs_color_to_argb32 (Emacs_Color *ec) |
| 1080 | { | 1082 | { |
| 1081 | return ((0xffu << 24) | ((xc.red / 256) << 16) | 1083 | return ((0xffu << 24) | ((ec->red / 256) << 16) |
| 1082 | | ((xc.green / 256) << 8) | (xc.blue / 256)); | 1084 | | ((ec->green / 256) << 8) | (ec->blue / 256)); |
| 1083 | } | 1085 | } |
| 1084 | 1086 | ||
| 1085 | static uint32_t | 1087 | static uint32_t |
| @@ -1087,11 +1089,11 @@ get_spec_bg_or_alpha_as_argb (struct image *img, | |||
| 1087 | struct frame *f) | 1089 | struct frame *f) |
| 1088 | { | 1090 | { |
| 1089 | uint32_t bgcolor = 0; | 1091 | uint32_t bgcolor = 0; |
| 1090 | XColor xbgcolor; | 1092 | Emacs_Color xbgcolor; |
| 1091 | Lisp_Object bg = image_spec_value (img->spec, QCbackground, NULL); | 1093 | Lisp_Object bg = image_spec_value (img->spec, QCbackground, NULL); |
| 1092 | 1094 | ||
| 1093 | if (STRINGP (bg) && x_parse_color (f, SSDATA (bg), &xbgcolor)) | 1095 | if (STRINGP (bg) && x_parse_color (f, SSDATA (bg), &xbgcolor)) |
| 1094 | bgcolor = xcolor_to_argb32 (xbgcolor); | 1096 | bgcolor = emacs_color_to_argb32 (&xbgcolor); |
| 1095 | 1097 | ||
| 1096 | return bgcolor; | 1098 | return bgcolor; |
| 1097 | } | 1099 | } |
| @@ -1121,10 +1123,10 @@ set_cairo_image_surface (struct image *img, cairo_surface_t *surface) | |||
| 1121 | /* Image background colors. */ | 1123 | /* Image background colors. */ |
| 1122 | 1124 | ||
| 1123 | /* Find the "best" corner color of a bitmap. | 1125 | /* Find the "best" corner color of a bitmap. |
| 1124 | On W32, XIMG is assumed to a device context with the bitmap selected. */ | 1126 | On W32, PIMG is assumed to a device context with the bitmap selected. */ |
| 1125 | 1127 | ||
| 1126 | static RGB_PIXEL_COLOR | 1128 | static RGB_PIXEL_COLOR |
| 1127 | four_corners_best (XImagePtr_or_DC ximg, int *corners, | 1129 | four_corners_best (Emacs_Pix_Context pimg, int *corners, |
| 1128 | unsigned long width, unsigned long height) | 1130 | unsigned long width, unsigned long height) |
| 1129 | { | 1131 | { |
| 1130 | RGB_PIXEL_COLOR corner_pixels[4]; | 1132 | RGB_PIXEL_COLOR corner_pixels[4]; |
| @@ -1133,19 +1135,19 @@ four_corners_best (XImagePtr_or_DC ximg, int *corners, | |||
| 1133 | 1135 | ||
| 1134 | if (corners && corners[BOT_CORNER] >= 0) | 1136 | if (corners && corners[BOT_CORNER] >= 0) |
| 1135 | { | 1137 | { |
| 1136 | /* Get the colors at the corner_pixels of ximg. */ | 1138 | /* Get the colors at the corner_pixels of pimg. */ |
| 1137 | corner_pixels[0] = GET_PIXEL (ximg, corners[LEFT_CORNER], corners[TOP_CORNER]); | 1139 | corner_pixels[0] = GET_PIXEL (pimg, corners[LEFT_CORNER], corners[TOP_CORNER]); |
| 1138 | corner_pixels[1] = GET_PIXEL (ximg, corners[RIGHT_CORNER] - 1, corners[TOP_CORNER]); | 1140 | corner_pixels[1] = GET_PIXEL (pimg, corners[RIGHT_CORNER] - 1, corners[TOP_CORNER]); |
| 1139 | corner_pixels[2] = GET_PIXEL (ximg, corners[RIGHT_CORNER] - 1, corners[BOT_CORNER] - 1); | 1141 | corner_pixels[2] = GET_PIXEL (pimg, corners[RIGHT_CORNER] - 1, corners[BOT_CORNER] - 1); |
| 1140 | corner_pixels[3] = GET_PIXEL (ximg, corners[LEFT_CORNER], corners[BOT_CORNER] - 1); | 1142 | corner_pixels[3] = GET_PIXEL (pimg, corners[LEFT_CORNER], corners[BOT_CORNER] - 1); |
| 1141 | } | 1143 | } |
| 1142 | else | 1144 | else |
| 1143 | { | 1145 | { |
| 1144 | /* Get the colors at the corner_pixels of ximg. */ | 1146 | /* Get the colors at the corner_pixels of pimg. */ |
| 1145 | corner_pixels[0] = GET_PIXEL (ximg, 0, 0); | 1147 | corner_pixels[0] = GET_PIXEL (pimg, 0, 0); |
| 1146 | corner_pixels[1] = GET_PIXEL (ximg, width - 1, 0); | 1148 | corner_pixels[1] = GET_PIXEL (pimg, width - 1, 0); |
| 1147 | corner_pixels[2] = GET_PIXEL (ximg, width - 1, height - 1); | 1149 | corner_pixels[2] = GET_PIXEL (pimg, width - 1, height - 1); |
| 1148 | corner_pixels[3] = GET_PIXEL (ximg, 0, height - 1); | 1150 | corner_pixels[3] = GET_PIXEL (pimg, 0, height - 1); |
| 1149 | } | 1151 | } |
| 1150 | /* Choose the most frequently found color as background. */ | 1152 | /* Choose the most frequently found color as background. */ |
| 1151 | for (i = best_count = 0; i < 4; ++i) | 1153 | for (i = best_count = 0; i < 4; ++i) |
| @@ -1165,27 +1167,27 @@ four_corners_best (XImagePtr_or_DC ximg, int *corners, | |||
| 1165 | 1167 | ||
| 1166 | /* Return the `background' field of IMG. If IMG doesn't have one yet, | 1168 | /* Return the `background' field of IMG. If IMG doesn't have one yet, |
| 1167 | it is guessed heuristically. If non-zero, XIMG is an existing | 1169 | it is guessed heuristically. If non-zero, XIMG is an existing |
| 1168 | XImage object (or device context with the image selected on W32) to | 1170 | Emacs_Pix_Context object (device context with the image selected on |
| 1169 | use for the heuristic. */ | 1171 | W32) to use for the heuristic. */ |
| 1170 | 1172 | ||
| 1171 | RGB_PIXEL_COLOR | 1173 | RGB_PIXEL_COLOR |
| 1172 | image_background (struct image *img, struct frame *f, XImagePtr_or_DC ximg) | 1174 | image_background (struct image *img, struct frame *f, Emacs_Pix_Context pimg) |
| 1173 | { | 1175 | { |
| 1174 | if (! img->background_valid) | 1176 | if (! img->background_valid) |
| 1175 | /* IMG doesn't have a background yet, try to guess a reasonable value. */ | 1177 | /* IMG doesn't have a background yet, try to guess a reasonable value. */ |
| 1176 | { | 1178 | { |
| 1177 | bool free_ximg = !ximg; | 1179 | bool free_pimg = !pimg; |
| 1178 | #ifdef HAVE_NTGUI | 1180 | #ifdef HAVE_NTGUI |
| 1179 | HGDIOBJ prev; | 1181 | HGDIOBJ prev; |
| 1180 | #endif /* HAVE_NTGUI */ | 1182 | #endif /* HAVE_NTGUI */ |
| 1181 | 1183 | ||
| 1182 | if (free_ximg) | 1184 | if (free_pimg) |
| 1183 | ximg = image_get_x_image_or_dc (f, img, 0, &prev); | 1185 | pimg = image_get_x_image_or_dc (f, img, 0, &prev); |
| 1184 | 1186 | ||
| 1185 | img->background = four_corners_best (ximg, img->corners, img->width, img->height); | 1187 | img->background = four_corners_best (pimg, img->corners, img->width, img->height); |
| 1186 | 1188 | ||
| 1187 | if (free_ximg) | 1189 | if (free_pimg) |
| 1188 | image_unget_x_image_or_dc (img, 0, ximg, prev); | 1190 | image_unget_x_image_or_dc (img, 0, pimg, prev); |
| 1189 | 1191 | ||
| 1190 | img->background_valid = 1; | 1192 | img->background_valid = 1; |
| 1191 | } | 1193 | } |
| @@ -1195,10 +1197,12 @@ image_background (struct image *img, struct frame *f, XImagePtr_or_DC ximg) | |||
| 1195 | 1197 | ||
| 1196 | /* Return the `background_transparent' field of IMG. If IMG doesn't | 1198 | /* Return the `background_transparent' field of IMG. If IMG doesn't |
| 1197 | have one yet, it is guessed heuristically. If non-zero, MASK is an | 1199 | have one yet, it is guessed heuristically. If non-zero, MASK is an |
| 1198 | existing XImage object to use for the heuristic. */ | 1200 | existing Emacs_Pix_Context (XImage* on X) object to use for the |
| 1201 | heuristic. */ | ||
| 1199 | 1202 | ||
| 1200 | int | 1203 | int |
| 1201 | image_background_transparent (struct image *img, struct frame *f, XImagePtr_or_DC mask) | 1204 | image_background_transparent (struct image *img, struct frame *f, |
| 1205 | Emacs_Pix_Context mask) | ||
| 1202 | { | 1206 | { |
| 1203 | if (! img->background_transparent_valid) | 1207 | if (! img->background_transparent_valid) |
| 1204 | /* IMG doesn't have a background yet, try to guess a reasonable value. */ | 1208 | /* IMG doesn't have a background yet, try to guess a reasonable value. */ |
| @@ -1321,7 +1325,7 @@ static unsigned long | |||
| 1321 | image_alloc_image_color (struct frame *f, struct image *img, | 1325 | image_alloc_image_color (struct frame *f, struct image *img, |
| 1322 | Lisp_Object color_name, unsigned long dflt) | 1326 | Lisp_Object color_name, unsigned long dflt) |
| 1323 | { | 1327 | { |
| 1324 | XColor color; | 1328 | Emacs_Color color; |
| 1325 | unsigned long result; | 1329 | unsigned long result; |
| 1326 | 1330 | ||
| 1327 | eassert (STRINGP (color_name)); | 1331 | eassert (STRINGP (color_name)); |
| @@ -2001,7 +2005,7 @@ mark_image_cache (struct image_cache *c) | |||
| 2001 | WIDTH and HEIGHT must both be positive. | 2005 | WIDTH and HEIGHT must both be positive. |
| 2002 | If XIMG is null, assume it is a bitmap. */ | 2006 | If XIMG is null, assume it is a bitmap. */ |
| 2003 | static bool | 2007 | static bool |
| 2004 | image_check_image_size (XImagePtr ximg, int width, int height) | 2008 | image_check_image_size (Emacs_Pix_Container ximg, int width, int height) |
| 2005 | { | 2009 | { |
| 2006 | #ifdef HAVE_X_WINDOWS | 2010 | #ifdef HAVE_X_WINDOWS |
| 2007 | /* Respect Xlib's limits: it cannot deal with images that have more | 2011 | /* Respect Xlib's limits: it cannot deal with images that have more |
| @@ -2035,18 +2039,20 @@ image_check_image_size (XImagePtr ximg, int width, int height) | |||
| 2035 | #endif | 2039 | #endif |
| 2036 | } | 2040 | } |
| 2037 | 2041 | ||
| 2038 | /* Create an XImage and a pixmap of size WIDTH x HEIGHT for use on | 2042 | /* Create an Emacs_Pix_Container and a pixmap of size WIDTH x |
| 2039 | frame F. Set *XIMG and *PIXMAP to the XImage and Pixmap created. | 2043 | HEIGHT for use on frame F. Set *PIMG and *PIXMAP to the |
| 2040 | Set (*XIMG)->data to a raster of WIDTH x HEIGHT pixels allocated | 2044 | Emacs_Pix_Container and Emacs_Pixmap created. Set (*PIMG)->data |
| 2041 | via xmalloc. Print error messages via image_error if an error | 2045 | to a raster of WIDTH x HEIGHT pixels allocated via xmalloc. Print |
| 2042 | occurs. Value is true if successful. | 2046 | error messages via image_error if an error occurs. Value is true |
| 2047 | if successful. | ||
| 2043 | 2048 | ||
| 2044 | On W32, a DEPTH of zero signifies a 24 bit image, otherwise DEPTH | 2049 | On W32, a DEPTH of zero signifies a 24 bit image, otherwise DEPTH |
| 2045 | should indicate the bit depth of the image. */ | 2050 | should indicate the bit depth of the image. */ |
| 2046 | 2051 | ||
| 2047 | static bool | 2052 | static bool |
| 2048 | image_create_x_image_and_pixmap_1 (struct frame *f, int width, int height, int depth, | 2053 | image_create_x_image_and_pixmap_1 (struct frame *f, int width, int height, int depth, |
| 2049 | XImagePtr *ximg, Pixmap *pixmap, Picture *picture) | 2054 | Emacs_Pix_Container *pimg, |
| 2055 | Emacs_Pixmap *pixmap, Picture *picture) | ||
| 2050 | { | 2056 | { |
| 2051 | #ifdef HAVE_X_WINDOWS | 2057 | #ifdef HAVE_X_WINDOWS |
| 2052 | Display *display = FRAME_X_DISPLAY (f); | 2058 | Display *display = FRAME_X_DISPLAY (f); |
| @@ -2057,33 +2063,33 @@ image_create_x_image_and_pixmap_1 (struct frame *f, int width, int height, int d | |||
| 2057 | 2063 | ||
| 2058 | if (depth <= 0) | 2064 | if (depth <= 0) |
| 2059 | depth = DefaultDepthOfScreen (screen); | 2065 | depth = DefaultDepthOfScreen (screen); |
| 2060 | *ximg = XCreateImage (display, DefaultVisualOfScreen (screen), | 2066 | *pimg = XCreateImage (display, DefaultVisualOfScreen (screen), |
| 2061 | depth, ZPixmap, 0, NULL, width, height, | 2067 | depth, ZPixmap, 0, NULL, width, height, |
| 2062 | depth > 16 ? 32 : depth > 8 ? 16 : 8, 0); | 2068 | depth > 16 ? 32 : depth > 8 ? 16 : 8, 0); |
| 2063 | if (*ximg == NULL) | 2069 | if (*pimg == NULL) |
| 2064 | { | 2070 | { |
| 2065 | image_error ("Unable to allocate X image"); | 2071 | image_error ("Unable to allocate X image"); |
| 2066 | return 0; | 2072 | return 0; |
| 2067 | } | 2073 | } |
| 2068 | 2074 | ||
| 2069 | if (! image_check_image_size (*ximg, width, height)) | 2075 | if (! image_check_image_size (*pimg, width, height)) |
| 2070 | { | 2076 | { |
| 2071 | image_destroy_x_image (*ximg); | 2077 | image_destroy_x_image (*pimg); |
| 2072 | *ximg = NULL; | 2078 | *pimg = NULL; |
| 2073 | image_error ("Image too large (%dx%d)", | 2079 | image_error ("Image too large (%dx%d)", |
| 2074 | make_fixnum (width), make_fixnum (height)); | 2080 | make_fixnum (width), make_fixnum (height)); |
| 2075 | return 0; | 2081 | return 0; |
| 2076 | } | 2082 | } |
| 2077 | 2083 | ||
| 2078 | /* Allocate image raster. */ | 2084 | /* Allocate image raster. */ |
| 2079 | (*ximg)->data = xmalloc ((*ximg)->bytes_per_line * height); | 2085 | (*pimg)->data = xmalloc ((*pimg)->bytes_per_line * height); |
| 2080 | 2086 | ||
| 2081 | /* Allocate a pixmap of the same size. */ | 2087 | /* Allocate a pixmap of the same size. */ |
| 2082 | *pixmap = XCreatePixmap (display, drawable, width, height, depth); | 2088 | *pixmap = XCreatePixmap (display, drawable, width, height, depth); |
| 2083 | if (*pixmap == NO_PIXMAP) | 2089 | if (*pixmap == NO_PIXMAP) |
| 2084 | { | 2090 | { |
| 2085 | image_destroy_x_image (*ximg); | 2091 | image_destroy_x_image (*pimg); |
| 2086 | *ximg = NULL; | 2092 | *pimg = NULL; |
| 2087 | image_error ("Unable to create X pixmap"); | 2093 | image_error ("Unable to create X pixmap"); |
| 2088 | return 0; | 2094 | return 0; |
| 2089 | } | 2095 | } |
| @@ -2150,10 +2156,10 @@ image_create_x_image_and_pixmap_1 (struct frame *f, int width, int height, int d | |||
| 2150 | if (depth < 16) | 2156 | if (depth < 16) |
| 2151 | palette_colors = 1 << (depth - 1); | 2157 | palette_colors = 1 << (depth - 1); |
| 2152 | 2158 | ||
| 2153 | *ximg = xmalloc (sizeof (XImage) + palette_colors * sizeof (RGBQUAD)); | 2159 | *pimg = xmalloc (sizeof (XImage) + palette_colors * sizeof (RGBQUAD)); |
| 2154 | 2160 | ||
| 2155 | header = &(*ximg)->info.bmiHeader; | 2161 | header = &(*pimg)->info.bmiHeader; |
| 2156 | memset (&(*ximg)->info, 0, sizeof (BITMAPINFO)); | 2162 | memset (&(*pimg)->info, 0, sizeof (BITMAPINFO)); |
| 2157 | header->biSize = sizeof (*header); | 2163 | header->biSize = sizeof (*header); |
| 2158 | header->biWidth = width; | 2164 | header->biWidth = width; |
| 2159 | header->biHeight = -height; /* negative indicates a top-down bitmap. */ | 2165 | header->biHeight = -height; /* negative indicates a top-down bitmap. */ |
| @@ -2165,10 +2171,10 @@ image_create_x_image_and_pixmap_1 (struct frame *f, int width, int height, int d | |||
| 2165 | /* TODO: fill in palette. */ | 2171 | /* TODO: fill in palette. */ |
| 2166 | if (depth == 1) | 2172 | if (depth == 1) |
| 2167 | { | 2173 | { |
| 2168 | (*ximg)->info.bmiColors[0].rgbBlue = 0; | 2174 | (*pimg)->info.bmiColors[0].rgbBlue = 0; |
| 2169 | (*ximg)->info.bmiColors[0].rgbGreen = 0; | 2175 | (*pimg)->info.bmiColors[0].rgbGreen = 0; |
| 2170 | (*ximg)->info.bmiColors[0].rgbRed = 0; | 2176 | (*pimg)->info.bmiColors[0].rgbRed = 0; |
| 2171 | (*ximg)->info.bmiColors[0].rgbReserved = 0; | 2177 | (*pimg)->info.bmiColors[0].rgbReserved = 0; |
| 2172 | /* bmiColors is a variable-length array declared by w32api | 2178 | /* bmiColors is a variable-length array declared by w32api |
| 2173 | headers as bmiColors[1], which triggers a warning under | 2179 | headers as bmiColors[1], which triggers a warning under |
| 2174 | -Warray-bounds; shut that up. */ | 2180 | -Warray-bounds; shut that up. */ |
| @@ -2176,10 +2182,10 @@ image_create_x_image_and_pixmap_1 (struct frame *f, int width, int height, int d | |||
| 2176 | # pragma GCC push_options | 2182 | # pragma GCC push_options |
| 2177 | # pragma GCC diagnostic ignored "-Warray-bounds" | 2183 | # pragma GCC diagnostic ignored "-Warray-bounds" |
| 2178 | # endif | 2184 | # endif |
| 2179 | (*ximg)->info.bmiColors[1].rgbBlue = 255; | 2185 | (*pimg)->info.bmiColors[1].rgbBlue = 255; |
| 2180 | (*ximg)->info.bmiColors[1].rgbGreen = 255; | 2186 | (*pimg)->info.bmiColors[1].rgbGreen = 255; |
| 2181 | (*ximg)->info.bmiColors[1].rgbRed = 255; | 2187 | (*pimg)->info.bmiColors[1].rgbRed = 255; |
| 2182 | (*ximg)->info.bmiColors[1].rgbReserved = 0; | 2188 | (*pimg)->info.bmiColors[1].rgbReserved = 0; |
| 2183 | # if GNUC_PREREQ (4, 4, 0) | 2189 | # if GNUC_PREREQ (4, 4, 0) |
| 2184 | # pragma GCC pop_options | 2190 | # pragma GCC pop_options |
| 2185 | # endif | 2191 | # endif |
| @@ -2189,10 +2195,10 @@ image_create_x_image_and_pixmap_1 (struct frame *f, int width, int height, int d | |||
| 2189 | 2195 | ||
| 2190 | /* Create a DIBSection and raster array for the bitmap, | 2196 | /* Create a DIBSection and raster array for the bitmap, |
| 2191 | and store its handle in *pixmap. */ | 2197 | and store its handle in *pixmap. */ |
| 2192 | *pixmap = CreateDIBSection (hdc, &((*ximg)->info), | 2198 | *pixmap = CreateDIBSection (hdc, &((*pimg)->info), |
| 2193 | (depth < 16) ? DIB_PAL_COLORS : DIB_RGB_COLORS, | 2199 | (depth < 16) ? DIB_PAL_COLORS : DIB_RGB_COLORS, |
| 2194 | /* casting avoids a GCC warning */ | 2200 | /* casting avoids a GCC warning */ |
| 2195 | (void **)&((*ximg)->data), NULL, 0); | 2201 | (void **)&((*pimg)->data), NULL, 0); |
| 2196 | 2202 | ||
| 2197 | /* Realize display palette and garbage all frames. */ | 2203 | /* Realize display palette and garbage all frames. */ |
| 2198 | release_frame_dc (f, hdc); | 2204 | release_frame_dc (f, hdc); |
| @@ -2204,8 +2210,8 @@ image_create_x_image_and_pixmap_1 (struct frame *f, int width, int height, int d | |||
| 2204 | /* All system errors are < 10000, so the following is safe. */ | 2210 | /* All system errors are < 10000, so the following is safe. */ |
| 2205 | XSETINT (errcode, err); | 2211 | XSETINT (errcode, err); |
| 2206 | image_error ("Unable to create bitmap, error code %d", errcode); | 2212 | image_error ("Unable to create bitmap, error code %d", errcode); |
| 2207 | image_destroy_x_image (*ximg); | 2213 | image_destroy_x_image (*pimg); |
| 2208 | *ximg = NULL; | 2214 | *pimg = NULL; |
| 2209 | return 0; | 2215 | return 0; |
| 2210 | } | 2216 | } |
| 2211 | 2217 | ||
| @@ -2217,69 +2223,70 @@ image_create_x_image_and_pixmap_1 (struct frame *f, int width, int height, int d | |||
| 2217 | *pixmap = ns_image_for_XPM (width, height, depth); | 2223 | *pixmap = ns_image_for_XPM (width, height, depth); |
| 2218 | if (*pixmap == 0) | 2224 | if (*pixmap == 0) |
| 2219 | { | 2225 | { |
| 2220 | *ximg = NULL; | 2226 | *pimg = NULL; |
| 2221 | image_error ("Unable to allocate NSImage for XPM pixmap"); | 2227 | image_error ("Unable to allocate NSImage for XPM pixmap"); |
| 2222 | return 0; | 2228 | return 0; |
| 2223 | } | 2229 | } |
| 2224 | *ximg = *pixmap; | 2230 | *pimg = *pixmap; |
| 2225 | return 1; | 2231 | return 1; |
| 2226 | #endif | 2232 | #endif |
| 2227 | } | 2233 | } |
| 2228 | 2234 | ||
| 2229 | 2235 | ||
| 2230 | /* Destroy XImage XIMG. Free XIMG->data. */ | 2236 | /* Destroy Emacs_Pix_Container PIMG. Free data associated with PIMG. */ |
| 2231 | 2237 | ||
| 2232 | static void | 2238 | static void |
| 2233 | image_destroy_x_image (XImagePtr ximg) | 2239 | image_destroy_x_image (Emacs_Pix_Container pimg) |
| 2234 | { | 2240 | { |
| 2235 | eassert (input_blocked_p ()); | 2241 | eassert (input_blocked_p ()); |
| 2236 | if (ximg) | 2242 | if (pimg) |
| 2237 | { | 2243 | { |
| 2238 | #ifdef HAVE_X_WINDOWS | 2244 | #ifdef HAVE_X_WINDOWS |
| 2239 | xfree (ximg->data); | 2245 | xfree (pimg->data); |
| 2240 | ximg->data = NULL; | 2246 | pimg->data = NULL; |
| 2241 | XDestroyImage (ximg); | 2247 | XDestroyImage (pimg); |
| 2242 | #endif /* HAVE_X_WINDOWS */ | 2248 | #endif /* HAVE_X_WINDOWS */ |
| 2243 | #ifdef HAVE_NTGUI | 2249 | #ifdef HAVE_NTGUI |
| 2244 | /* Data will be freed by DestroyObject. */ | 2250 | /* Data will be freed by DestroyObject. */ |
| 2245 | ximg->data = NULL; | 2251 | pimg->data = NULL; |
| 2246 | xfree (ximg); | 2252 | xfree (pimg); |
| 2247 | #endif /* HAVE_NTGUI */ | 2253 | #endif /* HAVE_NTGUI */ |
| 2248 | #ifdef HAVE_NS | 2254 | #ifdef HAVE_NS |
| 2249 | ns_release_object (ximg); | 2255 | ns_release_object (pimg); |
| 2250 | #endif /* HAVE_NS */ | 2256 | #endif /* HAVE_NS */ |
| 2251 | } | 2257 | } |
| 2252 | } | 2258 | } |
| 2253 | 2259 | ||
| 2254 | 2260 | ||
| 2255 | /* Put XImage XIMG into pixmap PIXMAP on frame F. WIDTH and HEIGHT | 2261 | /* Put Emacs_Pix_Container PIMG into pixmap PIXMAP on frame F. |
| 2256 | are width and height of both the image and pixmap. */ | 2262 | WIDTH and HEIGHT are width and height of both the image and |
| 2263 | pixmap. */ | ||
| 2257 | 2264 | ||
| 2258 | static void | 2265 | static void |
| 2259 | gui_put_x_image (struct frame *f, XImagePtr ximg, Pixmap pixmap, | 2266 | gui_put_x_image (struct frame *f, Emacs_Pix_Container pimg, |
| 2260 | int width, int height) | 2267 | Emacs_Pixmap pixmap, int width, int height) |
| 2261 | { | 2268 | { |
| 2262 | #ifdef HAVE_X_WINDOWS | 2269 | #ifdef HAVE_X_WINDOWS |
| 2263 | GC gc; | 2270 | GC gc; |
| 2264 | 2271 | ||
| 2265 | eassert (input_blocked_p ()); | 2272 | eassert (input_blocked_p ()); |
| 2266 | gc = XCreateGC (FRAME_X_DISPLAY (f), pixmap, 0, NULL); | 2273 | gc = XCreateGC (FRAME_X_DISPLAY (f), pixmap, 0, NULL); |
| 2267 | XPutImage (FRAME_X_DISPLAY (f), pixmap, gc, ximg, 0, 0, 0, 0, | 2274 | XPutImage (FRAME_X_DISPLAY (f), pixmap, gc, pimg, 0, 0, 0, 0, |
| 2268 | ximg->width, ximg->height); | 2275 | pimg->width, pimg->height); |
| 2269 | XFreeGC (FRAME_X_DISPLAY (f), gc); | 2276 | XFreeGC (FRAME_X_DISPLAY (f), gc); |
| 2270 | #endif /* HAVE_X_WINDOWS */ | 2277 | #endif /* HAVE_X_WINDOWS */ |
| 2271 | 2278 | ||
| 2272 | #ifdef HAVE_NTGUI | 2279 | #ifdef HAVE_NTGUI |
| 2273 | #if 0 /* I don't think this is necessary looking at where it is used. */ | 2280 | #if 0 /* I don't think this is necessary looking at where it is used. */ |
| 2274 | HDC hdc = get_frame_dc (f); | 2281 | HDC hdc = get_frame_dc (f); |
| 2275 | SetDIBits (hdc, pixmap, 0, height, ximg->data, &(ximg->info), DIB_RGB_COLORS); | 2282 | SetDIBits (hdc, pixmap, 0, height, pimg->data, &(pimg->info), DIB_RGB_COLORS); |
| 2276 | release_frame_dc (f, hdc); | 2283 | release_frame_dc (f, hdc); |
| 2277 | #endif | 2284 | #endif |
| 2278 | #endif /* HAVE_NTGUI */ | 2285 | #endif /* HAVE_NTGUI */ |
| 2279 | 2286 | ||
| 2280 | #ifdef HAVE_NS | 2287 | #ifdef HAVE_NS |
| 2281 | eassert (ximg == pixmap); | 2288 | eassert (pimg == pixmap); |
| 2282 | ns_retain_object (ximg); | 2289 | ns_retain_object (pimg); |
| 2283 | #endif | 2290 | #endif |
| 2284 | } | 2291 | } |
| 2285 | 2292 | ||
| @@ -2289,7 +2296,7 @@ gui_put_x_image (struct frame *f, XImagePtr ximg, Pixmap pixmap, | |||
| 2289 | static bool | 2296 | static bool |
| 2290 | image_create_x_image_and_pixmap (struct frame *f, struct image *img, | 2297 | image_create_x_image_and_pixmap (struct frame *f, struct image *img, |
| 2291 | int width, int height, int depth, | 2298 | int width, int height, int depth, |
| 2292 | XImagePtr *ximg, bool mask_p) | 2299 | Emacs_Pix_Container *ximg, bool mask_p) |
| 2293 | { | 2300 | { |
| 2294 | eassert ((!mask_p ? img->pixmap : img->mask) == NO_PIXMAP); | 2301 | eassert ((!mask_p ? img->pixmap : img->mask) == NO_PIXMAP); |
| 2295 | 2302 | ||
| @@ -2302,14 +2309,14 @@ image_create_x_image_and_pixmap (struct frame *f, struct image *img, | |||
| 2302 | picture); | 2309 | picture); |
| 2303 | } | 2310 | } |
| 2304 | 2311 | ||
| 2305 | /* Put X image XIMG into image IMG on frame F, as a mask if and only | 2312 | /* Put pixel image PIMG into image IMG on frame F, as a mask if and only |
| 2306 | if MASK_P. On X, this simply records XIMG on a member of IMG, so | 2313 | if MASK_P. On X, this simply records PIMG on a member of IMG, so |
| 2307 | it can be put into the pixmap afterwards via image_sync_to_pixmaps. | 2314 | it can be put into the pixmap afterwards via image_sync_to_pixmaps. |
| 2308 | On the other platforms, it puts XIMG into the pixmap, then frees | 2315 | On the other platforms, it puts PIMG into the pixmap, then frees |
| 2309 | the X image and its buffer. */ | 2316 | the pixel image and its buffer. */ |
| 2310 | 2317 | ||
| 2311 | static void | 2318 | static void |
| 2312 | image_put_x_image (struct frame *f, struct image *img, XImagePtr ximg, | 2319 | image_put_x_image (struct frame *f, struct image *img, Emacs_Pix_Container ximg, |
| 2313 | bool mask_p) | 2320 | bool mask_p) |
| 2314 | { | 2321 | { |
| 2315 | #ifdef HAVE_X_WINDOWS | 2322 | #ifdef HAVE_X_WINDOWS |
| @@ -2357,12 +2364,12 @@ image_sync_to_pixmaps (struct frame *f, struct image *img) | |||
| 2357 | currently selected GDI object into *PREV for future restoration by | 2364 | currently selected GDI object into *PREV for future restoration by |
| 2358 | image_unget_x_image_or_dc. */ | 2365 | image_unget_x_image_or_dc. */ |
| 2359 | 2366 | ||
| 2360 | static XImagePtr_or_DC | 2367 | static HDC |
| 2361 | image_get_x_image_or_dc (struct frame *f, struct image *img, bool mask_p, | 2368 | image_get_x_image_or_dc (struct frame *f, struct image *img, bool mask_p, |
| 2362 | HGDIOBJ *prev) | 2369 | HGDIOBJ *prev) |
| 2363 | { | 2370 | { |
| 2364 | HDC frame_dc = get_frame_dc (f); | 2371 | HDC frame_dc = get_frame_dc (f); |
| 2365 | XImagePtr_or_DC ximg = CreateCompatibleDC (frame_dc); | 2372 | HDC ximg = CreateCompatibleDC (frame_dc); |
| 2366 | 2373 | ||
| 2367 | release_frame_dc (f, frame_dc); | 2374 | release_frame_dc (f, frame_dc); |
| 2368 | *prev = SelectObject (ximg, !mask_p ? img->pixmap : img->mask); | 2375 | *prev = SelectObject (ximg, !mask_p ? img->pixmap : img->mask); |
| @@ -2372,7 +2379,7 @@ image_get_x_image_or_dc (struct frame *f, struct image *img, bool mask_p, | |||
| 2372 | 2379 | ||
| 2373 | static void | 2380 | static void |
| 2374 | image_unget_x_image_or_dc (struct image *img, bool mask_p, | 2381 | image_unget_x_image_or_dc (struct image *img, bool mask_p, |
| 2375 | XImagePtr_or_DC ximg, HGDIOBJ prev) | 2382 | HDC ximg, HGDIOBJ prev) |
| 2376 | { | 2383 | { |
| 2377 | SelectObject (ximg, prev); | 2384 | SelectObject (ximg, prev); |
| 2378 | DeleteDC (ximg); | 2385 | DeleteDC (ximg); |
| @@ -2381,11 +2388,11 @@ image_unget_x_image_or_dc (struct image *img, bool mask_p, | |||
| 2381 | /* Get the X image for IMG on frame F. The resulting X image data | 2388 | /* Get the X image for IMG on frame F. The resulting X image data |
| 2382 | should be treated as read-only at least on X. */ | 2389 | should be treated as read-only at least on X. */ |
| 2383 | 2390 | ||
| 2384 | static XImagePtr | 2391 | static Emacs_Pix_Container |
| 2385 | image_get_x_image (struct frame *f, struct image *img, bool mask_p) | 2392 | image_get_x_image (struct frame *f, struct image *img, bool mask_p) |
| 2386 | { | 2393 | { |
| 2387 | #ifdef HAVE_X_WINDOWS | 2394 | #ifdef HAVE_X_WINDOWS |
| 2388 | XImagePtr ximg_in_img = !mask_p ? img->ximg : img->mask_img; | 2395 | XImage *ximg_in_img = !mask_p ? img->ximg : img->mask_img; |
| 2389 | 2396 | ||
| 2390 | if (ximg_in_img) | 2397 | if (ximg_in_img) |
| 2391 | return ximg_in_img; | 2398 | return ximg_in_img; |
| @@ -2393,7 +2400,7 @@ image_get_x_image (struct frame *f, struct image *img, bool mask_p) | |||
| 2393 | return XGetImage (FRAME_X_DISPLAY (f), !mask_p ? img->pixmap : img->mask, | 2400 | return XGetImage (FRAME_X_DISPLAY (f), !mask_p ? img->pixmap : img->mask, |
| 2394 | 0, 0, img->width, img->height, ~0, ZPixmap); | 2401 | 0, 0, img->width, img->height, ~0, ZPixmap); |
| 2395 | #elif defined (HAVE_NS) | 2402 | #elif defined (HAVE_NS) |
| 2396 | XImagePtr pixmap = !mask_p ? img->pixmap : img->mask; | 2403 | Emacs_Pix_Container pixmap = !mask_p ? img->pixmap : img->mask; |
| 2397 | 2404 | ||
| 2398 | ns_retain_object (pixmap); | 2405 | ns_retain_object (pixmap); |
| 2399 | return pixmap; | 2406 | return pixmap; |
| @@ -2401,10 +2408,10 @@ image_get_x_image (struct frame *f, struct image *img, bool mask_p) | |||
| 2401 | } | 2408 | } |
| 2402 | 2409 | ||
| 2403 | static void | 2410 | static void |
| 2404 | image_unget_x_image (struct image *img, bool mask_p, XImagePtr ximg) | 2411 | image_unget_x_image (struct image *img, bool mask_p, Emacs_Pix_Container ximg) |
| 2405 | { | 2412 | { |
| 2406 | #ifdef HAVE_X_WINDOWS | 2413 | #ifdef HAVE_X_WINDOWS |
| 2407 | XImagePtr ximg_in_img = !mask_p ? img->ximg : img->mask_img; | 2414 | XImage *ximg_in_img = !mask_p ? img->ximg : img->mask_img; |
| 2408 | 2415 | ||
| 2409 | if (ximg_in_img) | 2416 | if (ximg_in_img) |
| 2410 | eassert (ximg == ximg_in_img); | 2417 | eassert (ximg == ximg_in_img); |
| @@ -4201,7 +4208,7 @@ xpm_load_image (struct frame *f, | |||
| 4201 | #ifndef HAVE_NS | 4208 | #ifndef HAVE_NS |
| 4202 | bool have_mask = false; | 4209 | bool have_mask = false; |
| 4203 | #endif | 4210 | #endif |
| 4204 | XImagePtr ximg = NULL, mask_img = NULL; | 4211 | Emacs_Pix_Container ximg = NULL, mask_img = NULL; |
| 4205 | 4212 | ||
| 4206 | #define match() \ | 4213 | #define match() \ |
| 4207 | LA1 = xpm_scan (&s, end, &beg, &len) | 4214 | LA1 = xpm_scan (&s, end, &beg, &len) |
| @@ -4286,7 +4293,7 @@ xpm_load_image (struct frame *f, | |||
| 4286 | char *color, *max_color; | 4293 | char *color, *max_color; |
| 4287 | int key, next_key, max_key = 0; | 4294 | int key, next_key, max_key = 0; |
| 4288 | Lisp_Object symbol_color = Qnil, color_val; | 4295 | Lisp_Object symbol_color = Qnil, color_val; |
| 4289 | XColor cdef; | 4296 | Emacs_Color cdef; |
| 4290 | 4297 | ||
| 4291 | expect (XPM_TK_STRING); | 4298 | expect (XPM_TK_STRING); |
| 4292 | if (len <= chars_per_pixel || len >= BUFSIZ + chars_per_pixel) | 4299 | if (len <= chars_per_pixel || len >= BUFSIZ + chars_per_pixel) |
| @@ -4772,18 +4779,18 @@ static int laplace_matrix[9] = { | |||
| 4772 | #define COLOR_INTENSITY(R, G, B) ((2 * (R) + 3 * (G) + (B)) / 6) | 4779 | #define COLOR_INTENSITY(R, G, B) ((2 * (R) + 3 * (G) + (B)) / 6) |
| 4773 | 4780 | ||
| 4774 | 4781 | ||
| 4775 | /* On frame F, return an array of XColor structures describing image | 4782 | /* On frame F, return an array of Emacs_Color structures describing image |
| 4776 | IMG->pixmap. Each XColor structure has its pixel color set. RGB_P | 4783 | IMG->pixmap. Each Emacs_Color structure has its pixel color set. RGB_P |
| 4777 | means also fill the red/green/blue members of the XColor | 4784 | means also fill the red/green/blue members of the Emacs_Color |
| 4778 | structures. Value is a pointer to the array of XColors structures, | 4785 | structures. Value is a pointer to the array of Emacs_Color structures, |
| 4779 | allocated with xmalloc; it must be freed by the caller. */ | 4786 | allocated with xmalloc; it must be freed by the caller. */ |
| 4780 | 4787 | ||
| 4781 | static XColor * | 4788 | static Emacs_Color * |
| 4782 | image_to_xcolors (struct frame *f, struct image *img, bool rgb_p) | 4789 | image_to_emacs_colors (struct frame *f, struct image *img, bool rgb_p) |
| 4783 | { | 4790 | { |
| 4784 | int x, y; | 4791 | int x, y; |
| 4785 | XColor *colors, *p; | 4792 | Emacs_Color *colors, *p; |
| 4786 | XImagePtr_or_DC ximg; | 4793 | Emacs_Pix_Context ximg; |
| 4787 | ptrdiff_t nbytes; | 4794 | ptrdiff_t nbytes; |
| 4788 | #ifdef HAVE_NTGUI | 4795 | #ifdef HAVE_NTGUI |
| 4789 | HGDIOBJ prev; | 4796 | HGDIOBJ prev; |
| @@ -4798,13 +4805,13 @@ image_to_xcolors (struct frame *f, struct image *img, bool rgb_p) | |||
| 4798 | /* Get the X image or create a memory device context for IMG. */ | 4805 | /* Get the X image or create a memory device context for IMG. */ |
| 4799 | ximg = image_get_x_image_or_dc (f, img, 0, &prev); | 4806 | ximg = image_get_x_image_or_dc (f, img, 0, &prev); |
| 4800 | 4807 | ||
| 4801 | /* Fill the `pixel' members of the XColor array. I wished there | 4808 | /* Fill the `pixel' members of the Emacs_Color array. I wished there |
| 4802 | were an easy and portable way to circumvent XGetPixel. */ | 4809 | were an easy and portable way to circumvent XGetPixel. */ |
| 4803 | p = colors; | 4810 | p = colors; |
| 4804 | for (y = 0; y < img->height; ++y) | 4811 | for (y = 0; y < img->height; ++y) |
| 4805 | { | 4812 | { |
| 4806 | #if defined (HAVE_X_WINDOWS) || defined (HAVE_NTGUI) | 4813 | #if defined (HAVE_X_WINDOWS) || defined (HAVE_NTGUI) |
| 4807 | XColor *row = p; | 4814 | Emacs_Color *row = p; |
| 4808 | for (x = 0; x < img->width; ++x, ++p) | 4815 | for (x = 0; x < img->width; ++x, ++p) |
| 4809 | p->pixel = GET_PIXEL (ximg, x, y); | 4816 | p->pixel = GET_PIXEL (ximg, x, y); |
| 4810 | if (rgb_p) | 4817 | if (rgb_p) |
| @@ -4839,7 +4846,7 @@ image_to_xcolors (struct frame *f, struct image *img, bool rgb_p) | |||
| 4839 | stored in ximg->data. */ | 4846 | stored in ximg->data. */ |
| 4840 | 4847 | ||
| 4841 | static void | 4848 | static void |
| 4842 | XPutPixel (XImagePtr ximg, int x, int y, COLORREF color) | 4849 | XPutPixel (XImage *ximg, int x, int y, COLORREF color) |
| 4843 | { | 4850 | { |
| 4844 | int width = ximg->info.bmiHeader.biWidth; | 4851 | int width = ximg->info.bmiHeader.biWidth; |
| 4845 | unsigned char * pixel; | 4852 | unsigned char * pixel; |
| @@ -4878,16 +4885,16 @@ XPutPixel (XImagePtr ximg, int x, int y, COLORREF color) | |||
| 4878 | 4885 | ||
| 4879 | #endif /* HAVE_NTGUI */ | 4886 | #endif /* HAVE_NTGUI */ |
| 4880 | 4887 | ||
| 4881 | /* Create IMG->pixmap from an array COLORS of XColor structures, whose | 4888 | /* Create IMG->pixmap from an array COLORS of Emacs_Color structures, whose |
| 4882 | RGB members are set. F is the frame on which this all happens. | 4889 | RGB members are set. F is the frame on which this all happens. |
| 4883 | COLORS will be freed; an existing IMG->pixmap will be freed, too. */ | 4890 | COLORS will be freed; an existing IMG->pixmap will be freed, too. */ |
| 4884 | 4891 | ||
| 4885 | static void | 4892 | static void |
| 4886 | image_from_xcolors (struct frame *f, struct image *img, XColor *colors) | 4893 | image_from_emacs_colors (struct frame *f, struct image *img, Emacs_Color *colors) |
| 4887 | { | 4894 | { |
| 4888 | int x, y; | 4895 | int x, y; |
| 4889 | XImagePtr oimg = NULL; | 4896 | Emacs_Pix_Container oimg = NULL; |
| 4890 | XColor *p; | 4897 | Emacs_Color *p; |
| 4891 | 4898 | ||
| 4892 | init_color_table (); | 4899 | init_color_table (); |
| 4893 | 4900 | ||
| @@ -4925,8 +4932,8 @@ static void | |||
| 4925 | image_detect_edges (struct frame *f, struct image *img, | 4932 | image_detect_edges (struct frame *f, struct image *img, |
| 4926 | int *matrix, int color_adjust) | 4933 | int *matrix, int color_adjust) |
| 4927 | { | 4934 | { |
| 4928 | XColor *colors = image_to_xcolors (f, img, 1); | 4935 | Emacs_Color *colors = image_to_emacs_colors (f, img, 1); |
| 4929 | XColor *new, *p; | 4936 | Emacs_Color *new, *p; |
| 4930 | int x, y, i, sum; | 4937 | int x, y, i, sum; |
| 4931 | ptrdiff_t nbytes; | 4938 | ptrdiff_t nbytes; |
| 4932 | 4939 | ||
| @@ -4969,7 +4976,7 @@ image_detect_edges (struct frame *f, struct image *img, | |||
| 4969 | for (xx = x - 1; xx < x + 2; ++xx, ++i) | 4976 | for (xx = x - 1; xx < x + 2; ++xx, ++i) |
| 4970 | if (matrix[i]) | 4977 | if (matrix[i]) |
| 4971 | { | 4978 | { |
| 4972 | XColor *t = COLOR (colors, xx, yy); | 4979 | Emacs_Color *t = COLOR (colors, xx, yy); |
| 4973 | r += matrix[i] * t->red; | 4980 | r += matrix[i] * t->red; |
| 4974 | g += matrix[i] * t->green; | 4981 | g += matrix[i] * t->green; |
| 4975 | b += matrix[i] * t->blue; | 4982 | b += matrix[i] * t->blue; |
| @@ -4983,7 +4990,7 @@ image_detect_edges (struct frame *f, struct image *img, | |||
| 4983 | } | 4990 | } |
| 4984 | 4991 | ||
| 4985 | xfree (colors); | 4992 | xfree (colors); |
| 4986 | image_from_xcolors (f, img, new); | 4993 | image_from_emacs_colors (f, img, new); |
| 4987 | 4994 | ||
| 4988 | #undef COLOR | 4995 | #undef COLOR |
| 4989 | } | 4996 | } |
| @@ -5066,8 +5073,8 @@ image_disable_image (struct frame *f, struct image *img) | |||
| 5066 | /* Color (or grayscale). Convert to gray, and equalize. Just | 5073 | /* Color (or grayscale). Convert to gray, and equalize. Just |
| 5067 | drawing such images with a stipple can look very odd, so | 5074 | drawing such images with a stipple can look very odd, so |
| 5068 | we're using this method instead. */ | 5075 | we're using this method instead. */ |
| 5069 | XColor *colors = image_to_xcolors (f, img, 1); | 5076 | Emacs_Color *colors = image_to_emacs_colors (f, img, 1); |
| 5070 | XColor *p, *end; | 5077 | Emacs_Color *p, *end; |
| 5071 | const int h = 15000; | 5078 | const int h = 15000; |
| 5072 | const int l = 30000; | 5079 | const int l = 30000; |
| 5073 | 5080 | ||
| @@ -5080,7 +5087,7 @@ image_disable_image (struct frame *f, struct image *img) | |||
| 5080 | p->red = p->green = p->blue = i2; | 5087 | p->red = p->green = p->blue = i2; |
| 5081 | } | 5088 | } |
| 5082 | 5089 | ||
| 5083 | image_from_xcolors (f, img, colors); | 5090 | image_from_emacs_colors (f, img, colors); |
| 5084 | } | 5091 | } |
| 5085 | 5092 | ||
| 5086 | /* Draw a cross over the disabled image, if we must or if we | 5093 | /* Draw a cross over the disabled image, if we must or if we |
| @@ -5158,13 +5165,13 @@ static void | |||
| 5158 | image_build_heuristic_mask (struct frame *f, struct image *img, | 5165 | image_build_heuristic_mask (struct frame *f, struct image *img, |
| 5159 | Lisp_Object how) | 5166 | Lisp_Object how) |
| 5160 | { | 5167 | { |
| 5161 | XImagePtr_or_DC ximg; | 5168 | Emacs_Pix_Context ximg; |
| 5162 | #ifdef HAVE_NTGUI | 5169 | #ifdef HAVE_NTGUI |
| 5163 | HGDIOBJ prev; | 5170 | HGDIOBJ prev; |
| 5164 | char *mask_img; | 5171 | char *mask_img; |
| 5165 | int row_width; | 5172 | int row_width; |
| 5166 | #elif !defined HAVE_NS | 5173 | #elif !defined HAVE_NS |
| 5167 | XImagePtr mask_img; | 5174 | Emacs_Pix_Container mask_img; |
| 5168 | #endif | 5175 | #endif |
| 5169 | int x, y; | 5176 | int x, y; |
| 5170 | bool use_img_background; | 5177 | bool use_img_background; |
| @@ -5400,7 +5407,7 @@ pbm_load (struct frame *f, struct image *img) | |||
| 5400 | char *contents = NULL; | 5407 | char *contents = NULL; |
| 5401 | char *end, *p; | 5408 | char *end, *p; |
| 5402 | #ifndef USE_CAIRO | 5409 | #ifndef USE_CAIRO |
| 5403 | XImagePtr ximg; | 5410 | Emacs_Pix_Container ximg; |
| 5404 | #endif | 5411 | #endif |
| 5405 | 5412 | ||
| 5406 | specified_file = image_spec_value (img->spec, QCfile, NULL); | 5413 | specified_file = image_spec_value (img->spec, QCfile, NULL); |
| @@ -5522,7 +5529,7 @@ pbm_load (struct frame *f, struct image *img) | |||
| 5522 | unsigned long fg = FRAME_FOREGROUND_PIXEL (f); | 5529 | unsigned long fg = FRAME_FOREGROUND_PIXEL (f); |
| 5523 | unsigned long bg = FRAME_BACKGROUND_PIXEL (f); | 5530 | unsigned long bg = FRAME_BACKGROUND_PIXEL (f); |
| 5524 | #ifdef USE_CAIRO | 5531 | #ifdef USE_CAIRO |
| 5525 | XColor xfg, xbg; | 5532 | Emacs_Color xfg, xbg; |
| 5526 | int fga32, bga32; | 5533 | int fga32, bga32; |
| 5527 | #endif | 5534 | #endif |
| 5528 | /* Parse the image specification. */ | 5535 | /* Parse the image specification. */ |
| @@ -5542,7 +5549,7 @@ pbm_load (struct frame *f, struct image *img) | |||
| 5542 | xfg.pixel = fg; | 5549 | xfg.pixel = fg; |
| 5543 | x_query_colors (f, &xfg, 1); | 5550 | x_query_colors (f, &xfg, 1); |
| 5544 | } | 5551 | } |
| 5545 | fga32 = xcolor_to_argb32 (xfg); | 5552 | fga32 = emacs_color_to_argb32 (&xfg); |
| 5546 | 5553 | ||
| 5547 | if (! fmt[PBM_BACKGROUND].count | 5554 | if (! fmt[PBM_BACKGROUND].count |
| 5548 | || ! STRINGP (fmt[PBM_BACKGROUND].value) | 5555 | || ! STRINGP (fmt[PBM_BACKGROUND].value) |
| @@ -5555,7 +5562,7 @@ pbm_load (struct frame *f, struct image *img) | |||
| 5555 | xbg.pixel = bg; | 5562 | xbg.pixel = bg; |
| 5556 | x_query_colors (f, &xbg, 1); | 5563 | x_query_colors (f, &xbg, 1); |
| 5557 | } | 5564 | } |
| 5558 | bga32 = xcolor_to_argb32 (xbg); | 5565 | bga32 = emacs_color_to_argb32 (&xbg); |
| 5559 | #else | 5566 | #else |
| 5560 | if (fmt[PBM_FOREGROUND].count | 5567 | if (fmt[PBM_FOREGROUND].count |
| 5561 | && STRINGP (fmt[PBM_FOREGROUND].value)) | 5568 | && STRINGP (fmt[PBM_FOREGROUND].value)) |
| @@ -5700,7 +5707,7 @@ pbm_load (struct frame *f, struct image *img) | |||
| 5700 | #else | 5707 | #else |
| 5701 | if (NILP (image_spec_value (img->spec, QCbackground, NULL))) | 5708 | if (NILP (image_spec_value (img->spec, QCbackground, NULL))) |
| 5702 | /* Casting avoids a GCC warning. */ | 5709 | /* Casting avoids a GCC warning. */ |
| 5703 | IMAGE_BACKGROUND (img, f, (XImagePtr_or_DC)ximg); | 5710 | IMAGE_BACKGROUND (img, f, (Emacs_Pix_Context)ximg); |
| 5704 | 5711 | ||
| 5705 | /* Put ximg into the image. */ | 5712 | /* Put ximg into the image. */ |
| 5706 | image_put_x_image (f, img, ximg, 0); | 5713 | image_put_x_image (f, img, ximg, 0); |
| @@ -5795,6 +5802,7 @@ DEF_DLL_FN (png_uint_32, png_get_valid, (png_structp, png_infop, png_uint_32)); | |||
| 5795 | DEF_DLL_FN (void, png_set_strip_16, (png_structp)); | 5802 | DEF_DLL_FN (void, png_set_strip_16, (png_structp)); |
| 5796 | DEF_DLL_FN (void, png_set_expand, (png_structp)); | 5803 | DEF_DLL_FN (void, png_set_expand, (png_structp)); |
| 5797 | DEF_DLL_FN (void, png_set_gray_to_rgb, (png_structp)); | 5804 | DEF_DLL_FN (void, png_set_gray_to_rgb, (png_structp)); |
| 5805 | DEF_DLL_FN (int, png_set_interlace_handling, (png_structp)); | ||
| 5798 | DEF_DLL_FN (void, png_set_background, | 5806 | DEF_DLL_FN (void, png_set_background, |
| 5799 | (png_structp, png_color_16p, int, int, double)); | 5807 | (png_structp, png_color_16p, int, int, double)); |
| 5800 | DEF_DLL_FN (png_uint_32, png_get_bKGD, | 5808 | DEF_DLL_FN (png_uint_32, png_get_bKGD, |
| @@ -5833,6 +5841,7 @@ init_png_functions (void) | |||
| 5833 | LOAD_DLL_FN (library, png_set_strip_16); | 5841 | LOAD_DLL_FN (library, png_set_strip_16); |
| 5834 | LOAD_DLL_FN (library, png_set_expand); | 5842 | LOAD_DLL_FN (library, png_set_expand); |
| 5835 | LOAD_DLL_FN (library, png_set_gray_to_rgb); | 5843 | LOAD_DLL_FN (library, png_set_gray_to_rgb); |
| 5844 | LOAD_DLL_FN (library, png_set_interlace_handling); | ||
| 5836 | LOAD_DLL_FN (library, png_set_background); | 5845 | LOAD_DLL_FN (library, png_set_background); |
| 5837 | LOAD_DLL_FN (library, png_get_bKGD); | 5846 | LOAD_DLL_FN (library, png_get_bKGD); |
| 5838 | LOAD_DLL_FN (library, png_read_update_info); | 5847 | LOAD_DLL_FN (library, png_read_update_info); |
| @@ -5868,6 +5877,7 @@ init_png_functions (void) | |||
| 5868 | # undef png_set_background | 5877 | # undef png_set_background |
| 5869 | # undef png_set_expand | 5878 | # undef png_set_expand |
| 5870 | # undef png_set_gray_to_rgb | 5879 | # undef png_set_gray_to_rgb |
| 5880 | # undef png_set_interlace_handling | ||
| 5871 | # undef png_set_longjmp_fn | 5881 | # undef png_set_longjmp_fn |
| 5872 | # undef png_set_read_fn | 5882 | # undef png_set_read_fn |
| 5873 | # undef png_set_sig_bytes | 5883 | # undef png_set_sig_bytes |
| @@ -5892,6 +5902,7 @@ init_png_functions (void) | |||
| 5892 | # define png_set_background fn_png_set_background | 5902 | # define png_set_background fn_png_set_background |
| 5893 | # define png_set_expand fn_png_set_expand | 5903 | # define png_set_expand fn_png_set_expand |
| 5894 | # define png_set_gray_to_rgb fn_png_set_gray_to_rgb | 5904 | # define png_set_gray_to_rgb fn_png_set_gray_to_rgb |
| 5905 | # define png_set_interlace_handling fn_png_set_interlace_handling | ||
| 5895 | # define png_set_longjmp_fn fn_png_set_longjmp_fn | 5906 | # define png_set_longjmp_fn fn_png_set_longjmp_fn |
| 5896 | # define png_set_read_fn fn_png_set_read_fn | 5907 | # define png_set_read_fn fn_png_set_read_fn |
| 5897 | # define png_set_sig_bytes fn_png_set_sig_bytes | 5908 | # define png_set_sig_bytes fn_png_set_sig_bytes |
| @@ -6022,7 +6033,7 @@ png_load_body (struct frame *f, struct image *img, struct png_load_context *c) | |||
| 6022 | cairo_surface_t *surface; | 6033 | cairo_surface_t *surface; |
| 6023 | uint32_t *dataptr; | 6034 | uint32_t *dataptr; |
| 6024 | #else | 6035 | #else |
| 6025 | XImagePtr ximg, mask_img = NULL; | 6036 | Emacs_Pix_Container ximg, mask_img = NULL; |
| 6026 | #endif | 6037 | #endif |
| 6027 | 6038 | ||
| 6028 | /* Find out what file to load. */ | 6039 | /* Find out what file to load. */ |
| @@ -6180,7 +6191,7 @@ png_load_body (struct frame *f, struct image *img, struct png_load_context *c) | |||
| 6180 | /* png_color_16 *image_bg; */ | 6191 | /* png_color_16 *image_bg; */ |
| 6181 | Lisp_Object specified_bg | 6192 | Lisp_Object specified_bg |
| 6182 | = image_spec_value (img->spec, QCbackground, NULL); | 6193 | = image_spec_value (img->spec, QCbackground, NULL); |
| 6183 | XColor color; | 6194 | Emacs_Color color; |
| 6184 | 6195 | ||
| 6185 | /* If the user specified a color, try to use it; if not, use the | 6196 | /* If the user specified a color, try to use it; if not, use the |
| 6186 | current frame background, ignoring any default background | 6197 | current frame background, ignoring any default background |
| @@ -6206,7 +6217,7 @@ png_load_body (struct frame *f, struct image *img, struct png_load_context *c) | |||
| 6206 | } | 6217 | } |
| 6207 | } | 6218 | } |
| 6208 | 6219 | ||
| 6209 | /* Update info structure. */ | 6220 | png_set_interlace_handling (png_ptr); |
| 6210 | png_read_update_info (png_ptr, info_ptr); | 6221 | png_read_update_info (png_ptr, info_ptr); |
| 6211 | 6222 | ||
| 6212 | /* Get number of channels. Valid values are 1 for grayscale images | 6223 | /* Get number of channels. Valid values are 1 for grayscale images |
| @@ -6335,7 +6346,7 @@ png_load_body (struct frame *f, struct image *img, struct png_load_context *c) | |||
| 6335 | #else | 6346 | #else |
| 6336 | /* Maybe fill in the background field while we have ximg handy. | 6347 | /* Maybe fill in the background field while we have ximg handy. |
| 6337 | Casting avoids a GCC warning. */ | 6348 | Casting avoids a GCC warning. */ |
| 6338 | IMAGE_BACKGROUND (img, f, (XImagePtr_or_DC)ximg); | 6349 | IMAGE_BACKGROUND (img, f, (Emacs_Pix_Context)ximg); |
| 6339 | 6350 | ||
| 6340 | /* Put ximg into the image. */ | 6351 | /* Put ximg into the image. */ |
| 6341 | image_put_x_image (f, img, ximg, 0); | 6352 | image_put_x_image (f, img, ximg, 0); |
| @@ -6345,7 +6356,7 @@ png_load_body (struct frame *f, struct image *img, struct png_load_context *c) | |||
| 6345 | { | 6356 | { |
| 6346 | /* Fill in the background_transparent field while we have the | 6357 | /* Fill in the background_transparent field while we have the |
| 6347 | mask handy. Casting avoids a GCC warning. */ | 6358 | mask handy. Casting avoids a GCC warning. */ |
| 6348 | image_background_transparent (img, f, (XImagePtr_or_DC)mask_img); | 6359 | image_background_transparent (img, f, (Emacs_Pix_Context)mask_img); |
| 6349 | 6360 | ||
| 6350 | image_put_x_image (f, img, mask_img, 1); | 6361 | image_put_x_image (f, img, mask_img, 1); |
| 6351 | } | 6362 | } |
| @@ -6765,7 +6776,7 @@ jpeg_load_body (struct frame *f, struct image *img, | |||
| 6765 | int i, ir, ig, ib; | 6776 | int i, ir, ig, ib; |
| 6766 | #ifndef USE_CAIRO | 6777 | #ifndef USE_CAIRO |
| 6767 | unsigned long *colors; | 6778 | unsigned long *colors; |
| 6768 | XImagePtr ximg = NULL; | 6779 | Emacs_Pix_Container ximg = NULL; |
| 6769 | #endif | 6780 | #endif |
| 6770 | 6781 | ||
| 6771 | /* Open the JPEG file. */ | 6782 | /* Open the JPEG file. */ |
| @@ -6955,7 +6966,7 @@ jpeg_load_body (struct frame *f, struct image *img, | |||
| 6955 | /* Maybe fill in the background field while we have ximg handy. */ | 6966 | /* Maybe fill in the background field while we have ximg handy. */ |
| 6956 | if (NILP (image_spec_value (img->spec, QCbackground, NULL))) | 6967 | if (NILP (image_spec_value (img->spec, QCbackground, NULL))) |
| 6957 | /* Casting avoids a GCC warning. */ | 6968 | /* Casting avoids a GCC warning. */ |
| 6958 | IMAGE_BACKGROUND (img, f, (XImagePtr_or_DC)ximg); | 6969 | IMAGE_BACKGROUND (img, f, (Emacs_Pix_Context)ximg); |
| 6959 | 6970 | ||
| 6960 | /* Put ximg into the image. */ | 6971 | /* Put ximg into the image. */ |
| 6961 | image_put_x_image (f, img, ximg, 0); | 6972 | image_put_x_image (f, img, ximg, 0); |
| @@ -7255,7 +7266,7 @@ tiff_load (struct frame *f, struct image *img) | |||
| 7255 | int width, height, x, y, count; | 7266 | int width, height, x, y, count; |
| 7256 | uint32 *buf; | 7267 | uint32 *buf; |
| 7257 | int rc; | 7268 | int rc; |
| 7258 | XImagePtr ximg; | 7269 | Emacs_Pix_Container ximg; |
| 7259 | tiff_memory_source memsrc; | 7270 | tiff_memory_source memsrc; |
| 7260 | Lisp_Object image; | 7271 | Lisp_Object image; |
| 7261 | 7272 | ||
| @@ -7425,7 +7436,7 @@ tiff_load (struct frame *f, struct image *img) | |||
| 7425 | /* Maybe fill in the background field while we have ximg handy. */ | 7436 | /* Maybe fill in the background field while we have ximg handy. */ |
| 7426 | if (NILP (image_spec_value (img->spec, QCbackground, NULL))) | 7437 | if (NILP (image_spec_value (img->spec, QCbackground, NULL))) |
| 7427 | /* Casting avoids a GCC warning on W32. */ | 7438 | /* Casting avoids a GCC warning on W32. */ |
| 7428 | IMAGE_BACKGROUND (img, f, (XImagePtr_or_DC)ximg); | 7439 | IMAGE_BACKGROUND (img, f, (Emacs_Pix_Context)ximg); |
| 7429 | 7440 | ||
| 7430 | /* Put ximg into the image. */ | 7441 | /* Put ximg into the image. */ |
| 7431 | image_put_x_image (f, img, ximg, 0); | 7442 | image_put_x_image (f, img, ximg, 0); |
| @@ -7813,7 +7824,7 @@ gif_load (struct frame *f, struct image *img) | |||
| 7813 | uint32_t *data32 = (uint32_t *) cairo_image_surface_get_data (surface); | 7824 | uint32_t *data32 = (uint32_t *) cairo_image_surface_get_data (surface); |
| 7814 | if (STRINGP (specified_bg)) | 7825 | if (STRINGP (specified_bg)) |
| 7815 | { | 7826 | { |
| 7816 | XColor color; | 7827 | Emacs_Color color; |
| 7817 | if (FRAME_TERMINAL (f)->defined_color_hook | 7828 | if (FRAME_TERMINAL (f)->defined_color_hook |
| 7818 | (f, SSDATA (specified_bg), &color, false, false)) | 7829 | (f, SSDATA (specified_bg), &color, false, false)) |
| 7819 | { | 7830 | { |
| @@ -7829,7 +7840,7 @@ gif_load (struct frame *f, struct image *img) | |||
| 7829 | } | 7840 | } |
| 7830 | #else | 7841 | #else |
| 7831 | /* Create the X image and pixmap. */ | 7842 | /* Create the X image and pixmap. */ |
| 7832 | XImagePtr ximg; | 7843 | Emacs_Pix_Container ximg; |
| 7833 | if (!image_create_x_image_and_pixmap (f, img, width, height, 0, &ximg, 0)) | 7844 | if (!image_create_x_image_and_pixmap (f, img, width, height, 0, &ximg, 0)) |
| 7834 | { | 7845 | { |
| 7835 | gif_close (gif, NULL); | 7846 | gif_close (gif, NULL); |
| @@ -8059,7 +8070,7 @@ gif_load (struct frame *f, struct image *img) | |||
| 8059 | /* Maybe fill in the background field while we have ximg handy. */ | 8070 | /* Maybe fill in the background field while we have ximg handy. */ |
| 8060 | if (NILP (image_spec_value (img->spec, QCbackground, NULL))) | 8071 | if (NILP (image_spec_value (img->spec, QCbackground, NULL))) |
| 8061 | /* Casting avoids a GCC warning. */ | 8072 | /* Casting avoids a GCC warning. */ |
| 8062 | IMAGE_BACKGROUND (img, f, (XImagePtr_or_DC)ximg); | 8073 | IMAGE_BACKGROUND (img, f, (Emacs_Pix_Context)ximg); |
| 8063 | 8074 | ||
| 8064 | /* Put ximg into the image. */ | 8075 | /* Put ximg into the image. */ |
| 8065 | image_put_x_image (f, img, ximg, 0); | 8076 | image_put_x_image (f, img, ximg, 0); |
| @@ -8443,7 +8454,7 @@ imagemagick_load_image (struct frame *f, struct image *img, | |||
| 8443 | size_t image_width, image_height; | 8454 | size_t image_width, image_height; |
| 8444 | MagickBooleanType status; | 8455 | MagickBooleanType status; |
| 8445 | #ifndef USE_CAIRO | 8456 | #ifndef USE_CAIRO |
| 8446 | XImagePtr ximg; | 8457 | Emacs_Pix_Container ximg; |
| 8447 | #endif | 8458 | #endif |
| 8448 | int x, y; | 8459 | int x, y; |
| 8449 | MagickWand *image_wand; | 8460 | MagickWand *image_wand; |
| @@ -8548,7 +8559,7 @@ imagemagick_load_image (struct frame *f, struct image *img, | |||
| 8548 | 8559 | ||
| 8549 | /* Retrieve the frame's background color, for use later. */ | 8560 | /* Retrieve the frame's background color, for use later. */ |
| 8550 | { | 8561 | { |
| 8551 | XColor bgcolor; | 8562 | Emacs_Color bgcolor; |
| 8552 | Lisp_Object specified_bg; | 8563 | Lisp_Object specified_bg; |
| 8553 | 8564 | ||
| 8554 | specified_bg = image_spec_value (img->spec, QCbackground, NULL); | 8565 | specified_bg = image_spec_value (img->spec, QCbackground, NULL); |
| @@ -9274,7 +9285,7 @@ svg_load_image (struct frame *f, struct image *img, char *contents, | |||
| 9274 | g_object_unref (pixbuf); | 9285 | g_object_unref (pixbuf); |
| 9275 | #else | 9286 | #else |
| 9276 | /* Try to create a x pixmap to hold the svg pixmap. */ | 9287 | /* Try to create a x pixmap to hold the svg pixmap. */ |
| 9277 | XImagePtr ximg; | 9288 | Emacs_Pix_Container ximg; |
| 9278 | if (!image_create_x_image_and_pixmap (f, img, width, height, 0, &ximg, 0)) | 9289 | if (!image_create_x_image_and_pixmap (f, img, width, height, 0, &ximg, 0)) |
| 9279 | { | 9290 | { |
| 9280 | g_object_unref (pixbuf); | 9291 | g_object_unref (pixbuf); |
| @@ -9285,7 +9296,7 @@ svg_load_image (struct frame *f, struct image *img, char *contents, | |||
| 9285 | 9296 | ||
| 9286 | /* Handle alpha channel by combining the image with a background | 9297 | /* Handle alpha channel by combining the image with a background |
| 9287 | color. */ | 9298 | color. */ |
| 9288 | XColor background; | 9299 | Emacs_Color background; |
| 9289 | Lisp_Object specified_bg = image_spec_value (img->spec, QCbackground, NULL); | 9300 | Lisp_Object specified_bg = image_spec_value (img->spec, QCbackground, NULL); |
| 9290 | if (!STRINGP (specified_bg) | 9301 | if (!STRINGP (specified_bg) |
| 9291 | || !FRAME_TERMINAL (f)->defined_color_hook (f, | 9302 | || !FRAME_TERMINAL (f)->defined_color_hook (f, |
| @@ -9341,7 +9352,7 @@ svg_load_image (struct frame *f, struct image *img, char *contents, | |||
| 9341 | 9352 | ||
| 9342 | /* Maybe fill in the background field while we have ximg handy. | 9353 | /* Maybe fill in the background field while we have ximg handy. |
| 9343 | Casting avoids a GCC warning. */ | 9354 | Casting avoids a GCC warning. */ |
| 9344 | IMAGE_BACKGROUND (img, f, (XImagePtr_or_DC)ximg); | 9355 | IMAGE_BACKGROUND (img, f, (Emacs_Pix_Context)ximg); |
| 9345 | 9356 | ||
| 9346 | /* Put ximg into the image. */ | 9357 | /* Put ximg into the image. */ |
| 9347 | image_put_x_image (f, img, ximg, 0); | 9358 | image_put_x_image (f, img, ximg, 0); |
| @@ -9569,7 +9580,7 @@ x_kill_gs_process (Pixmap pixmap, struct frame *f) | |||
| 9569 | img->pixmap. */ | 9580 | img->pixmap. */ |
| 9570 | if (x_mutable_colormap (FRAME_X_VISUAL (f))) | 9581 | if (x_mutable_colormap (FRAME_X_VISUAL (f))) |
| 9571 | { | 9582 | { |
| 9572 | XImagePtr ximg; | 9583 | XImage *ximg; |
| 9573 | 9584 | ||
| 9574 | block_input (); | 9585 | block_input (); |
| 9575 | 9586 | ||
diff --git a/src/keyboard.c b/src/keyboard.c index 5f2b7afe6d1..bb4d185c914 100644 --- a/src/keyboard.c +++ b/src/keyboard.c | |||
| @@ -3909,7 +3909,7 @@ kbd_buffer_get_event (KBOARD **kbp, | |||
| 3909 | case END_SESSION_EVENT: | 3909 | case END_SESSION_EVENT: |
| 3910 | case LANGUAGE_CHANGE_EVENT: | 3910 | case LANGUAGE_CHANGE_EVENT: |
| 3911 | #endif | 3911 | #endif |
| 3912 | #if defined (HAVE_X11) || defined (HAVE_NTGUI) || defined (HAVE_NS) | 3912 | #ifdef HAVE_WINDOW_SYSTEM |
| 3913 | case DELETE_WINDOW_EVENT: | 3913 | case DELETE_WINDOW_EVENT: |
| 3914 | case ICONIFY_EVENT: | 3914 | case ICONIFY_EVENT: |
| 3915 | case DEICONIFY_EVENT: | 3915 | case DEICONIFY_EVENT: |
| @@ -5283,7 +5283,7 @@ make_lispy_event (struct input_event *event) | |||
| 5283 | 5283 | ||
| 5284 | switch (event->kind) | 5284 | switch (event->kind) |
| 5285 | { | 5285 | { |
| 5286 | #if defined (HAVE_X11) || defined (HAVE_NTGUI) || defined (HAVE_NS) | 5286 | #ifdef HAVE_WINDOW_SYSTEM |
| 5287 | case DELETE_WINDOW_EVENT: | 5287 | case DELETE_WINDOW_EVENT: |
| 5288 | /* Make an event (delete-frame (FRAME)). */ | 5288 | /* Make an event (delete-frame (FRAME)). */ |
| 5289 | return list2 (Qdelete_frame, list1 (event->frame_or_window)); | 5289 | return list2 (Qdelete_frame, list1 (event->frame_or_window)); |
diff --git a/src/lisp.h b/src/lisp.h index 876b757bf3f..6db90596899 100644 --- a/src/lisp.h +++ b/src/lisp.h | |||
| @@ -2679,7 +2679,7 @@ struct Lisp_Buffer_Objfwd | |||
| 2679 | { | 2679 | { |
| 2680 | enum Lisp_Fwd_Type type; /* = Lisp_Fwd_Buffer_Obj */ | 2680 | enum Lisp_Fwd_Type type; /* = Lisp_Fwd_Buffer_Obj */ |
| 2681 | int offset; | 2681 | int offset; |
| 2682 | /* One of Qnil, Qfixnump, Qsymbolp, Qstringp, Qfloatp or Qnumberp. */ | 2682 | /* One of Qnil, Qintegerp, Qsymbolp, Qstringp, Qfloatp or Qnumberp. */ |
| 2683 | Lisp_Object predicate; | 2683 | Lisp_Object predicate; |
| 2684 | }; | 2684 | }; |
| 2685 | 2685 | ||
diff --git a/src/macfont.m b/src/macfont.m index 0ade77e7337..f825e6291d3 100644 --- a/src/macfont.m +++ b/src/macfont.m | |||
| @@ -1639,7 +1639,7 @@ static Lisp_Object macfont_open (struct frame *, Lisp_Object, int); | |||
| 1639 | static void macfont_close (struct font *); | 1639 | static void macfont_close (struct font *); |
| 1640 | static int macfont_has_char (Lisp_Object, int); | 1640 | static int macfont_has_char (Lisp_Object, int); |
| 1641 | static unsigned macfont_encode_char (struct font *, int); | 1641 | static unsigned macfont_encode_char (struct font *, int); |
| 1642 | static void macfont_text_extents (struct font *, unsigned int *, int, | 1642 | static void macfont_text_extents (struct font *, const unsigned int *, int, |
| 1643 | struct font_metrics *); | 1643 | struct font_metrics *); |
| 1644 | static int macfont_draw (struct glyph_string *, int, int, int, int, bool); | 1644 | static int macfont_draw (struct glyph_string *, int, int, int, int, bool); |
| 1645 | static Lisp_Object macfont_shape (Lisp_Object); | 1645 | static Lisp_Object macfont_shape (Lisp_Object); |
| @@ -2735,7 +2735,7 @@ macfont_encode_char (struct font *font, int c) | |||
| 2735 | } | 2735 | } |
| 2736 | 2736 | ||
| 2737 | static void | 2737 | static void |
| 2738 | macfont_text_extents (struct font *font, unsigned int *code, int nglyphs, | 2738 | macfont_text_extents (struct font *font, const unsigned int *code, int nglyphs, |
| 2739 | struct font_metrics *metrics) | 2739 | struct font_metrics *metrics) |
| 2740 | { | 2740 | { |
| 2741 | int width, i; | 2741 | int width, i; |
| @@ -2818,7 +2818,18 @@ macfont_draw (struct glyph_string *s, int from, int to, int x, int y, | |||
| 2818 | } | 2818 | } |
| 2819 | } | 2819 | } |
| 2820 | 2820 | ||
| 2821 | context = [[NSGraphicsContext currentContext] graphicsPort]; | 2821 | #if MAC_OS_X_VERSION_MAX_ALLOWED >= 101000 |
| 2822 | #if MAC_OS_X_VERSION_MIN_REQUIRED < 101000 | ||
| 2823 | if ([[NSGraphicsContext currentContext] respondsToSelector:@selector(CGContext)]) | ||
| 2824 | #endif | ||
| 2825 | context = [[NSGraphicsContext currentContext] CGContext]; | ||
| 2826 | #if MAC_OS_X_VERSION_MIN_REQUIRED < 101000 | ||
| 2827 | else | ||
| 2828 | #endif | ||
| 2829 | #endif | ||
| 2830 | #if MAC_OS_X_VERSION_MIN_REQUIRED < 101000 | ||
| 2831 | context = [[NSGraphicsContext currentContext] graphicsPort]; | ||
| 2832 | #endif | ||
| 2822 | CGContextSaveGState (context); | 2833 | CGContextSaveGState (context); |
| 2823 | 2834 | ||
| 2824 | if (!CGRectIsNull (background_rect)) | 2835 | if (!CGRectIsNull (background_rect)) |
diff --git a/src/msdos.h b/src/msdos.h index 90ceea8e3d2..3614c94dd0e 100644 --- a/src/msdos.h +++ b/src/msdos.h | |||
| @@ -86,7 +86,6 @@ typedef int GC; | |||
| 86 | typedef int Pixmap; | 86 | typedef int Pixmap; |
| 87 | typedef int Display; | 87 | typedef int Display; |
| 88 | typedef int Window; | 88 | typedef int Window; |
| 89 | typedef int XRectangle; | ||
| 90 | #define PIX_TYPE unsigned long | 89 | #define PIX_TYPE unsigned long |
| 91 | #define XDISPLAY | 90 | #define XDISPLAY |
| 92 | 91 | ||
diff --git a/src/nsfont.m b/src/nsfont.m index 9721e489357..eca97ab86cc 100644 --- a/src/nsfont.m +++ b/src/nsfont.m | |||
| @@ -945,7 +945,7 @@ nsfont_encode_char (struct font *font, int c) | |||
| 945 | of METRICS. The glyphs are specified by their glyph codes in | 945 | of METRICS. The glyphs are specified by their glyph codes in |
| 946 | CODE (length NGLYPHS). */ | 946 | CODE (length NGLYPHS). */ |
| 947 | static void | 947 | static void |
| 948 | nsfont_text_extents (struct font *font, unsigned int *code, | 948 | nsfont_text_extents (struct font *font, const unsigned int *code, |
| 949 | int nglyphs, struct font_metrics *metrics) | 949 | int nglyphs, struct font_metrics *metrics) |
| 950 | { | 950 | { |
| 951 | struct nsfont_info *font_info = (struct nsfont_info *)font; | 951 | struct nsfont_info *font_info = (struct nsfont_info *)font; |
diff --git a/src/nsgui.h b/src/nsgui.h index ab6cdff1e5c..c21953593ad 100644 --- a/src/nsgui.h +++ b/src/nsgui.h | |||
| @@ -58,72 +58,23 @@ typedef struct _XCharStruct | |||
| 58 | int descent; | 58 | int descent; |
| 59 | } XCharStruct; | 59 | } XCharStruct; |
| 60 | 60 | ||
| 61 | /* Fake structure from Xlib.h to represent two-byte characters. */ | ||
| 62 | #ifndef __OBJC__ | ||
| 63 | typedef unsigned short unichar; | ||
| 64 | #endif | ||
| 65 | typedef unichar XChar2b; | ||
| 66 | |||
| 67 | #define STORE_XCHAR2B(chp, b1, b2) \ | ||
| 68 | (*(chp) = ((XChar2b)((((b1) & 0x00ff) << 8) | ((b2) & 0x00ff)))) | ||
| 69 | |||
| 70 | #define XCHAR2B_BYTE1(chp) \ | ||
| 71 | ((*(chp) & 0xff00) >> 8) | ||
| 72 | |||
| 73 | #define XCHAR2B_BYTE2(chp) \ | ||
| 74 | (*(chp) & 0x00ff) | ||
| 75 | |||
| 76 | /* Used in xdisp.c when comparing faces and frame colors. */ | 61 | /* Used in xdisp.c when comparing faces and frame colors. */ |
| 77 | extern unsigned long ns_color_index_to_rgba(int idx, struct frame *f); | 62 | extern unsigned long ns_color_index_to_rgba(int idx, struct frame *f); |
| 78 | 63 | ||
| 79 | /* XXX: xfaces requires these structures, but the question is are we | ||
| 80 | forced to use them? */ | ||
| 81 | typedef struct _XGCValues | ||
| 82 | { | ||
| 83 | unsigned long foreground; | ||
| 84 | unsigned long background; | ||
| 85 | #ifdef __OBJC__ | 64 | #ifdef __OBJC__ |
| 86 | struct ns_font *font; | 65 | typedef id Emacs_Pixmap; |
| 87 | #else | 66 | #else |
| 88 | void *font; | 67 | typedef void *Emacs_Pixmap; |
| 89 | #endif | 68 | #endif |
| 90 | } XGCValues; | ||
| 91 | |||
| 92 | typedef XGCValues * GC; | ||
| 93 | |||
| 94 | #define GCForeground 0x01 | ||
| 95 | #define GCBackground 0x02 | ||
| 96 | #define GCFont 0x03 | ||
| 97 | 69 | ||
| 98 | #ifdef __OBJC__ | 70 | #ifdef __OBJC__ |
| 99 | typedef id Pixmap; | 71 | typedef NSCursor *Emacs_Cursor; |
| 100 | #else | 72 | #else |
| 101 | typedef void *Pixmap; | 73 | typedef void *Emacs_Cursor; |
| 102 | #endif | 74 | #endif |
| 103 | 75 | ||
| 104 | #ifdef __OBJC__ | ||
| 105 | typedef NSCursor * Cursor; | ||
| 106 | #else | ||
| 107 | typedef void *Cursor; | ||
| 108 | #endif | ||
| 109 | |||
| 110 | #define No_Cursor (0) | ||
| 111 | |||
| 112 | #ifdef __OBJC__ | ||
| 113 | typedef NSColor * Color; | ||
| 114 | #else | ||
| 115 | typedef void * Color; | ||
| 116 | #endif | ||
| 117 | typedef int Window; | 76 | typedef int Window; |
| 118 | 77 | ||
| 119 | |||
| 120 | /* Some sort of attempt to normalize rectangle handling. Seems a bit | ||
| 121 | much for what is accomplished. */ | ||
| 122 | typedef struct { | ||
| 123 | int x, y; | ||
| 124 | unsigned width, height; | ||
| 125 | } XRectangle; | ||
| 126 | |||
| 127 | #ifndef __OBJC__ | 78 | #ifndef __OBJC__ |
| 128 | #if defined (__LP64__) && __LP64__ | 79 | #if defined (__LP64__) && __LP64__ |
| 129 | typedef double CGFloat; | 80 | typedef double CGFloat; |
| @@ -137,13 +88,13 @@ typedef struct _NSRect { NSPoint origin; NSSize size; } NSRect; | |||
| 137 | 88 | ||
| 138 | #define NativeRectangle NSRect | 89 | #define NativeRectangle NSRect |
| 139 | 90 | ||
| 140 | #define CONVERT_TO_XRECT(xr, nr) \ | 91 | #define CONVERT_TO_EMACS_RECT(xr, nr) \ |
| 141 | ((xr).x = (nr).origin.x, \ | 92 | ((xr).x = (nr).origin.x, \ |
| 142 | (xr).y = (nr).origin.y, \ | 93 | (xr).y = (nr).origin.y, \ |
| 143 | (xr).width = (nr).size.width, \ | 94 | (xr).width = (nr).size.width, \ |
| 144 | (xr).height = (nr).size.height) | 95 | (xr).height = (nr).size.height) |
| 145 | 96 | ||
| 146 | #define CONVERT_FROM_XRECT(xr, nr) \ | 97 | #define CONVERT_FROM_EMACS_RECT(xr, nr) \ |
| 147 | ((nr).origin.x = (xr).x, \ | 98 | ((nr).origin.x = (xr).x, \ |
| 148 | (nr).origin.y = (xr).y, \ | 99 | (nr).origin.y = (xr).y, \ |
| 149 | (nr).size.width = (xr).width, \ | 100 | (nr).size.width = (xr).width, \ |
diff --git a/src/nsimage.m b/src/nsimage.m index 33236c48d42..0249d22acae 100644 --- a/src/nsimage.m +++ b/src/nsimage.m | |||
| @@ -313,8 +313,8 @@ ns_set_alpha (void *img, int x, int y, unsigned char a) | |||
| 313 | if (bmRep == nil || color == nil) | 313 | if (bmRep == nil || color == nil) |
| 314 | return self; | 314 | return self; |
| 315 | 315 | ||
| 316 | if ([color colorSpaceName] != NSCalibratedRGBColorSpace) | 316 | if ([color colorSpace] != [NSColorSpace deviceRGBColorSpace]) |
| 317 | rgbColor = [color colorUsingColorSpaceName: NSCalibratedRGBColorSpace]; | 317 | rgbColor = [color colorUsingColorSpace:[NSColorSpace deviceRGBColorSpace]]; |
| 318 | else | 318 | else |
| 319 | rgbColor = color; | 319 | rgbColor = color; |
| 320 | 320 | ||
diff --git a/src/nsmenu.m b/src/nsmenu.m index fd1323344b3..3fe06cda02a 100644 --- a/src/nsmenu.m +++ b/src/nsmenu.m | |||
| @@ -668,9 +668,9 @@ ns_activate_menubar (struct frame *f) | |||
| 668 | /* Draw radio buttons and tickboxes. */ | 668 | /* Draw radio buttons and tickboxes. */ |
| 669 | if (wv->selected && (wv->button_type == BUTTON_TYPE_TOGGLE || | 669 | if (wv->selected && (wv->button_type == BUTTON_TYPE_TOGGLE || |
| 670 | wv->button_type == BUTTON_TYPE_RADIO)) | 670 | wv->button_type == BUTTON_TYPE_RADIO)) |
| 671 | [item setState: NSOnState]; | 671 | [item setState: NSControlStateValueOn]; |
| 672 | else | 672 | else |
| 673 | [item setState: NSOffState]; | 673 | [item setState: NSControlStateValueOff]; |
| 674 | 674 | ||
| 675 | [item setTag: (NSInteger)wv->call_data]; | 675 | [item setTag: (NSInteger)wv->call_data]; |
| 676 | } | 676 | } |
| @@ -1594,7 +1594,7 @@ ns_popup_dialog (struct frame *f, Lisp_Object header, Lisp_Object contents) | |||
| 1594 | [cell setBordered: NO]; | 1594 | [cell setBordered: NO]; |
| 1595 | [cell setEnabled: NO]; | 1595 | [cell setEnabled: NO]; |
| 1596 | [cell setCellAttribute: NSCellIsInsetButton to: 8]; | 1596 | [cell setCellAttribute: NSCellIsInsetButton to: 8]; |
| 1597 | [cell setBezelStyle: NSRoundedBezelStyle]; | 1597 | [cell setBezelStyle: NSBezelStyleRounded]; |
| 1598 | 1598 | ||
| 1599 | matrix = [[NSMatrix alloc] initWithFrame: contentRect | 1599 | matrix = [[NSMatrix alloc] initWithFrame: contentRect |
| 1600 | mode: NSHighlightModeMatrix | 1600 | mode: NSHighlightModeMatrix |
| @@ -1607,7 +1607,6 @@ ns_popup_dialog (struct frame *f, Lisp_Object header, Lisp_Object contents) | |||
| 1607 | [matrix autorelease]; | 1607 | [matrix autorelease]; |
| 1608 | 1608 | ||
| 1609 | [[self contentView] addSubview: matrix]; | 1609 | [[self contentView] addSubview: matrix]; |
| 1610 | [self setOneShot: YES]; | ||
| 1611 | [self setReleasedWhenClosed: YES]; | 1610 | [self setReleasedWhenClosed: YES]; |
| 1612 | [self setHidesOnDeactivate: YES]; | 1611 | [self setHidesOnDeactivate: YES]; |
| 1613 | return self; | 1612 | return self; |
diff --git a/src/nsselect.m b/src/nsselect.m index cf36c869eb1..b044fe6f32d 100644 --- a/src/nsselect.m +++ b/src/nsselect.m | |||
| @@ -57,7 +57,7 @@ symbol_to_nsstring (Lisp_Object sym) | |||
| 57 | if (EQ (sym, QCLIPBOARD)) return NSPasteboardNameGeneral; | 57 | if (EQ (sym, QCLIPBOARD)) return NSPasteboardNameGeneral; |
| 58 | if (EQ (sym, QPRIMARY)) return NXPrimaryPboard; | 58 | if (EQ (sym, QPRIMARY)) return NXPrimaryPboard; |
| 59 | if (EQ (sym, QSECONDARY)) return NXSecondaryPboard; | 59 | if (EQ (sym, QSECONDARY)) return NXSecondaryPboard; |
| 60 | if (EQ (sym, QTEXT)) return NSStringPboardType; | 60 | if (EQ (sym, QTEXT)) return NSPasteboardTypeString; |
| 61 | return [NSString stringWithUTF8String: SSDATA (SYMBOL_NAME (sym))]; | 61 | return [NSString stringWithUTF8String: SSDATA (SYMBOL_NAME (sym))]; |
| 62 | } | 62 | } |
| 63 | 63 | ||
| @@ -76,11 +76,11 @@ ns_string_to_symbol (NSString *t) | |||
| 76 | return QPRIMARY; | 76 | return QPRIMARY; |
| 77 | if ([t isEqualToString: NXSecondaryPboard]) | 77 | if ([t isEqualToString: NXSecondaryPboard]) |
| 78 | return QSECONDARY; | 78 | return QSECONDARY; |
| 79 | if ([t isEqualToString: NSStringPboardType]) | 79 | if ([t isEqualToString: NSPasteboardTypeString]) |
| 80 | return QTEXT; | 80 | return QTEXT; |
| 81 | if ([t isEqualToString: NSFilenamesPboardType]) | 81 | if ([t isEqualToString: NSFilenamesPboardType]) |
| 82 | return QFILE_NAME; | 82 | return QFILE_NAME; |
| 83 | if ([t isEqualToString: NSTabularTextPboardType]) | 83 | if ([t isEqualToString: NSPasteboardTypeTabularText]) |
| 84 | return QTEXT; | 84 | return QTEXT; |
| 85 | return intern ([t UTF8String]); | 85 | return intern ([t UTF8String]); |
| 86 | } | 86 | } |
| @@ -193,7 +193,7 @@ ns_string_to_pasteboard_internal (id pb, Lisp_Object str, NSString *gtype) | |||
| 193 | else | 193 | else |
| 194 | { | 194 | { |
| 195 | // Used for ns-own-selection-internal. | 195 | // Used for ns-own-selection-internal. |
| 196 | eassert (gtype == NSStringPboardType); | 196 | eassert (gtype == NSPasteboardTypeString); |
| 197 | [pb setString: nsStr forType: gtype]; | 197 | [pb setString: nsStr forType: gtype]; |
| 198 | } | 198 | } |
| 199 | [nsStr release]; | 199 | [nsStr release]; |
| @@ -345,7 +345,7 @@ anything that the functions on `selection-converter-alist' know about. */) | |||
| 345 | } | 345 | } |
| 346 | 346 | ||
| 347 | /* We only support copy of text. */ | 347 | /* We only support copy of text. */ |
| 348 | type = NSStringPboardType; | 348 | type = NSPasteboardTypeString; |
| 349 | target_symbol = ns_string_to_symbol (type); | 349 | target_symbol = ns_string_to_symbol (type); |
| 350 | if (STRINGP (value)) | 350 | if (STRINGP (value)) |
| 351 | { | 351 | { |
| @@ -472,9 +472,9 @@ nxatoms_of_nsselect (void) | |||
| 472 | [NSNumber numberWithLong:0], NSPasteboardNameGeneral, | 472 | [NSNumber numberWithLong:0], NSPasteboardNameGeneral, |
| 473 | [NSNumber numberWithLong:0], NXPrimaryPboard, | 473 | [NSNumber numberWithLong:0], NXPrimaryPboard, |
| 474 | [NSNumber numberWithLong:0], NXSecondaryPboard, | 474 | [NSNumber numberWithLong:0], NXSecondaryPboard, |
| 475 | [NSNumber numberWithLong:0], NSStringPboardType, | 475 | [NSNumber numberWithLong:0], NSPasteboardTypeString, |
| 476 | [NSNumber numberWithLong:0], NSFilenamesPboardType, | 476 | [NSNumber numberWithLong:0], NSFilenamesPboardType, |
| 477 | [NSNumber numberWithLong:0], NSTabularTextPboardType, | 477 | [NSNumber numberWithLong:0], NSPasteboardTypeTabularText, |
| 478 | nil] retain]; | 478 | nil] retain]; |
| 479 | } | 479 | } |
| 480 | 480 | ||
diff --git a/src/nsterm.h b/src/nsterm.h index ffaf809785e..1e56276ca3c 100644 --- a/src/nsterm.h +++ b/src/nsterm.h | |||
| @@ -872,10 +872,10 @@ struct ns_display_info | |||
| 872 | Lisp_Object rdb; | 872 | Lisp_Object rdb; |
| 873 | 873 | ||
| 874 | /* The cursor to use for vertical scroll bars. */ | 874 | /* The cursor to use for vertical scroll bars. */ |
| 875 | Cursor vertical_scroll_bar_cursor; | 875 | Emacs_Cursor vertical_scroll_bar_cursor; |
| 876 | 876 | ||
| 877 | /* The cursor to use for horizontal scroll bars. */ | 877 | /* The cursor to use for horizontal scroll bars. */ |
| 878 | Cursor horizontal_scroll_bar_cursor; | 878 | Emacs_Cursor horizontal_scroll_bar_cursor; |
| 879 | 879 | ||
| 880 | /* Information about the range of text currently shown in | 880 | /* Information about the range of text currently shown in |
| 881 | mouse-face. */ | 881 | mouse-face. */ |
| @@ -931,24 +931,24 @@ struct ns_output | |||
| 931 | #endif | 931 | #endif |
| 932 | 932 | ||
| 933 | /* NSCursors are initialized in initFrameFromEmacs. */ | 933 | /* NSCursors are initialized in initFrameFromEmacs. */ |
| 934 | Cursor text_cursor; | 934 | Emacs_Cursor text_cursor; |
| 935 | Cursor nontext_cursor; | 935 | Emacs_Cursor nontext_cursor; |
| 936 | Cursor modeline_cursor; | 936 | Emacs_Cursor modeline_cursor; |
| 937 | Cursor hand_cursor; | 937 | Emacs_Cursor hand_cursor; |
| 938 | Cursor hourglass_cursor; | 938 | Emacs_Cursor hourglass_cursor; |
| 939 | Cursor horizontal_drag_cursor; | 939 | Emacs_Cursor horizontal_drag_cursor; |
| 940 | Cursor vertical_drag_cursor; | 940 | Emacs_Cursor vertical_drag_cursor; |
| 941 | Cursor left_edge_cursor; | 941 | Emacs_Cursor left_edge_cursor; |
| 942 | Cursor top_left_corner_cursor; | 942 | Emacs_Cursor top_left_corner_cursor; |
| 943 | Cursor top_edge_cursor; | 943 | Emacs_Cursor top_edge_cursor; |
| 944 | Cursor top_right_corner_cursor; | 944 | Emacs_Cursor top_right_corner_cursor; |
| 945 | Cursor right_edge_cursor; | 945 | Emacs_Cursor right_edge_cursor; |
| 946 | Cursor bottom_right_corner_cursor; | 946 | Emacs_Cursor bottom_right_corner_cursor; |
| 947 | Cursor bottom_edge_cursor; | 947 | Emacs_Cursor bottom_edge_cursor; |
| 948 | Cursor bottom_left_corner_cursor; | 948 | Emacs_Cursor bottom_left_corner_cursor; |
| 949 | 949 | ||
| 950 | /* NS-specific */ | 950 | /* NS-specific */ |
| 951 | Cursor current_pointer; | 951 | Emacs_Cursor current_pointer; |
| 952 | 952 | ||
| 953 | /* lord knows why Emacs needs to know about our Window ids.. */ | 953 | /* lord knows why Emacs needs to know about our Window ids.. */ |
| 954 | Window window_desc, parent_desc; | 954 | Window window_desc, parent_desc; |
| @@ -1134,10 +1134,10 @@ extern void ns_set_doc_edited (void); | |||
| 1134 | extern bool | 1134 | extern bool |
| 1135 | ns_defined_color (struct frame *f, | 1135 | ns_defined_color (struct frame *f, |
| 1136 | const char *name, | 1136 | const char *name, |
| 1137 | XColor *color_def, bool alloc, | 1137 | Emacs_Color *color_def, bool alloc, |
| 1138 | bool makeIndex); | 1138 | bool makeIndex); |
| 1139 | extern void | 1139 | extern void |
| 1140 | ns_query_color (void *col, XColor *color_def, bool setPixel); | 1140 | ns_query_color (void *col, Emacs_Color *color_def, bool setPixel); |
| 1141 | 1141 | ||
| 1142 | #ifdef __OBJC__ | 1142 | #ifdef __OBJC__ |
| 1143 | extern int ns_lisp_to_color (Lisp_Object color, NSColor **col); | 1143 | extern int ns_lisp_to_color (Lisp_Object color, NSColor **col); |
| @@ -1165,10 +1165,6 @@ extern void ns_release_autorelease_pool (void *); | |||
| 1165 | extern const char *ns_get_defaults_value (const char *key); | 1165 | extern const char *ns_get_defaults_value (const char *key); |
| 1166 | extern void ns_init_locale (void); | 1166 | extern void ns_init_locale (void); |
| 1167 | 1167 | ||
| 1168 | #ifdef NS_IMPL_COCOA | ||
| 1169 | extern void ns_enable_screen_updates (void); | ||
| 1170 | #endif | ||
| 1171 | |||
| 1172 | /* in nsmenu */ | 1168 | /* in nsmenu */ |
| 1173 | extern void update_frame_tool_bar (struct frame *f); | 1169 | extern void update_frame_tool_bar (struct frame *f); |
| 1174 | extern void free_frame_tool_bar (struct frame *f); | 1170 | extern void free_frame_tool_bar (struct frame *f); |
| @@ -1336,4 +1332,14 @@ enum NSWindowTabbingMode | |||
| 1336 | /* Deprecated in macOS 10.13. */ | 1332 | /* Deprecated in macOS 10.13. */ |
| 1337 | #define NSPasteboardNameGeneral NSGeneralPboard | 1333 | #define NSPasteboardNameGeneral NSGeneralPboard |
| 1338 | #endif | 1334 | #endif |
| 1335 | |||
| 1336 | #if !defined (NS_IMPL_COCOA) || !defined (MAC_OS_X_VERSION_10_14) | ||
| 1337 | /* Deprecated in macOS 10.14. */ | ||
| 1338 | #define NSPasteboardTypeString NSStringPboardType | ||
| 1339 | #define NSPasteboardTypeTabularText NSTabularTextPboardType | ||
| 1340 | #define NSPasteboardTypeURL NSURLPboardType | ||
| 1341 | #define NSControlStateValueOn NSOnState | ||
| 1342 | #define NSControlStateValueOff NSOffState | ||
| 1343 | #define NSBezelStyleRounded NSRoundedBezelStyle | ||
| 1344 | #endif | ||
| 1339 | #endif /* HAVE_NS */ | 1345 | #endif /* HAVE_NS */ |
diff --git a/src/nsterm.m b/src/nsterm.m index d688aceca53..0cae5e9d448 100644 --- a/src/nsterm.m +++ b/src/nsterm.m | |||
| @@ -160,20 +160,28 @@ char const * nstrace_fullscreen_type_name (int fs_type) | |||
| 160 | 160 | ||
| 161 | - (NSColor *)colorUsingDefaultColorSpace | 161 | - (NSColor *)colorUsingDefaultColorSpace |
| 162 | { | 162 | { |
| 163 | /* FIXMES: We're checking for colorWithSRGBRed here so this will | 163 | /* FIXME: We're checking for colorWithSRGBRed here so this will only |
| 164 | only work in the same place as in the method above. It should | 164 | work in the same place as in the method above. It should really |
| 165 | really be a check whether we're on macOS 10.7 or above. */ | 165 | be a check whether we're on macOS 10.7 or above. */ |
| 166 | #if defined (NS_IMPL_COCOA) \ | 166 | #if defined (NS_IMPL_COCOA) \ |
| 167 | && MAC_OS_X_VERSION_MAX_ALLOWED >= 1070 | 167 | && MAC_OS_X_VERSION_MAX_ALLOWED >= 1070 |
| 168 | if (ns_use_srgb_colorspace | ||
| 169 | #if MAC_OS_X_VERSION_MIN_REQUIRED < 1070 | 168 | #if MAC_OS_X_VERSION_MIN_REQUIRED < 1070 |
| 170 | && [NSColor respondsToSelector: | 169 | if ([NSColor respondsToSelector: |
| 171 | @selector(colorWithSRGBRed:green:blue:alpha:)] | 170 | @selector(colorWithSRGBRed:green:blue:alpha:)]) |
| 172 | #endif | 171 | #endif |
| 173 | ) | 172 | { |
| 174 | return [self colorUsingColorSpace: [NSColorSpace sRGBColorSpace]]; | 173 | if (ns_use_srgb_colorspace) |
| 174 | return [self colorUsingColorSpace: [NSColorSpace sRGBColorSpace]]; | ||
| 175 | else | ||
| 176 | return [self colorUsingColorSpace: [NSColorSpace deviceRGBColorSpace]]; | ||
| 177 | } | ||
| 178 | #if MAC_OS_X_VERSION_MIN_REQUIRED < 1070 | ||
| 179 | else | ||
| 175 | #endif | 180 | #endif |
| 181 | #endif /* NS_IMPL_COCOA && MAC_OS_X_VERSION_MAX_ALLOWED >= 1070 */ | ||
| 182 | #if defined (NS_IMPL_GNUSTEP) || MAC_OS_X_VERSION_MIN_REQUIRED < 1070 | ||
| 176 | return [self colorUsingColorSpaceName: NSCalibratedRGBColorSpace]; | 183 | return [self colorUsingColorSpaceName: NSCalibratedRGBColorSpace]; |
| 184 | #endif | ||
| 177 | } | 185 | } |
| 178 | 186 | ||
| 179 | @end | 187 | @end |
| @@ -283,9 +291,6 @@ static int ns_window_num = 0; | |||
| 283 | static BOOL ns_fake_keydown = NO; | 291 | static BOOL ns_fake_keydown = NO; |
| 284 | #ifdef NS_IMPL_COCOA | 292 | #ifdef NS_IMPL_COCOA |
| 285 | static BOOL ns_menu_bar_is_hidden = NO; | 293 | static BOOL ns_menu_bar_is_hidden = NO; |
| 286 | |||
| 287 | /* The number of times NSDisableScreenUpdates has been called. */ | ||
| 288 | static int disable_screen_updates_count = 0; | ||
| 289 | #endif | 294 | #endif |
| 290 | /* static int debug_lock = 0; */ | 295 | /* static int debug_lock = 0; */ |
| 291 | 296 | ||
| @@ -688,40 +693,6 @@ ns_release_autorelease_pool (void *pool) | |||
| 688 | } | 693 | } |
| 689 | 694 | ||
| 690 | 695 | ||
| 691 | #ifdef NS_IMPL_COCOA | ||
| 692 | /* Disabling screen updates can be used to make several actions appear | ||
| 693 | "atomic" to the end user. It seems some actions can still update | ||
| 694 | the display, though. | ||
| 695 | |||
| 696 | When we re-enable screen updates the number of calls to | ||
| 697 | NSEnableScreenUpdates should match the number to | ||
| 698 | NSDisableScreenUpdates. | ||
| 699 | |||
| 700 | We use these functions to prevent the user seeing a blank frame | ||
| 701 | after it has been resized. ns_set_window_size disables updates and | ||
| 702 | when redisplay completes unwind_redisplay enables them again | ||
| 703 | (bug#30699). */ | ||
| 704 | |||
| 705 | static void | ||
| 706 | ns_disable_screen_updates (void) | ||
| 707 | { | ||
| 708 | NSDisableScreenUpdates (); | ||
| 709 | disable_screen_updates_count++; | ||
| 710 | } | ||
| 711 | |||
| 712 | void | ||
| 713 | ns_enable_screen_updates (void) | ||
| 714 | /* Re-enable screen updates. Called from unwind_redisplay. */ | ||
| 715 | { | ||
| 716 | while (disable_screen_updates_count > 0) | ||
| 717 | { | ||
| 718 | NSEnableScreenUpdates (); | ||
| 719 | disable_screen_updates_count--; | ||
| 720 | } | ||
| 721 | } | ||
| 722 | #endif | ||
| 723 | |||
| 724 | |||
| 725 | static BOOL | 696 | static BOOL |
| 726 | ns_menu_bar_should_be_hidden (void) | 697 | ns_menu_bar_should_be_hidden (void) |
| 727 | /* True, if the menu bar should be hidden. */ | 698 | /* True, if the menu bar should be hidden. */ |
| @@ -1779,15 +1750,6 @@ ns_set_window_size (struct frame *f, | |||
| 1779 | 1750 | ||
| 1780 | block_input (); | 1751 | block_input (); |
| 1781 | 1752 | ||
| 1782 | #ifdef NS_IMPL_COCOA | ||
| 1783 | /* To prevent showing the user a blank frame, stop updates being | ||
| 1784 | flushed to the screen until after redisplay has completed. This | ||
| 1785 | breaks live resize (resizing with a mouse), so don't do it if | ||
| 1786 | we're in a live resize loop. */ | ||
| 1787 | if (![view inLiveResize]) | ||
| 1788 | ns_disable_screen_updates (); | ||
| 1789 | #endif | ||
| 1790 | |||
| 1791 | if (pixelwise) | 1753 | if (pixelwise) |
| 1792 | { | 1754 | { |
| 1793 | pixelwidth = FRAME_TEXT_TO_PIXEL_WIDTH (f, width); | 1755 | pixelwidth = FRAME_TEXT_TO_PIXEL_WIDTH (f, width); |
| @@ -2327,7 +2289,7 @@ ns_color_index_to_rgba(int idx, struct frame *f) | |||
| 2327 | } | 2289 | } |
| 2328 | 2290 | ||
| 2329 | void | 2291 | void |
| 2330 | ns_query_color(void *col, XColor *color_def, bool setPixel) | 2292 | ns_query_color(void *col, Emacs_Color *color_def, bool setPixel) |
| 2331 | /* -------------------------------------------------------------------------- | 2293 | /* -------------------------------------------------------------------------- |
| 2332 | Get ARGB values out of NSColor col and put them into color_def. | 2294 | Get ARGB values out of NSColor col and put them into color_def. |
| 2333 | If setPixel, set the pixel to a concatenated version. | 2295 | If setPixel, set the pixel to a concatenated version. |
| @@ -2350,7 +2312,7 @@ ns_query_color(void *col, XColor *color_def, bool setPixel) | |||
| 2350 | bool | 2312 | bool |
| 2351 | ns_defined_color (struct frame *f, | 2313 | ns_defined_color (struct frame *f, |
| 2352 | const char *name, | 2314 | const char *name, |
| 2353 | XColor *color_def, | 2315 | Emacs_Color *color_def, |
| 2354 | bool alloc, | 2316 | bool alloc, |
| 2355 | bool makeIndex) | 2317 | bool makeIndex) |
| 2356 | /* -------------------------------------------------------------------------- | 2318 | /* -------------------------------------------------------------------------- |
| @@ -2378,7 +2340,7 @@ ns_defined_color (struct frame *f, | |||
| 2378 | } | 2340 | } |
| 2379 | 2341 | ||
| 2380 | static void | 2342 | static void |
| 2381 | ns_query_frame_background_color (struct frame *f, XColor *bgcolor) | 2343 | ns_query_frame_background_color (struct frame *f, Emacs_Color *bgcolor) |
| 2382 | /* -------------------------------------------------------------------------- | 2344 | /* -------------------------------------------------------------------------- |
| 2383 | External (hook): Store F's background color into *BGCOLOR | 2345 | External (hook): Store F's background color into *BGCOLOR |
| 2384 | -------------------------------------------------------------------------- */ | 2346 | -------------------------------------------------------------------------- */ |
| @@ -2576,7 +2538,7 @@ ns_frame_up_to_date (struct frame *f) | |||
| 2576 | 2538 | ||
| 2577 | 2539 | ||
| 2578 | static void | 2540 | static void |
| 2579 | ns_define_frame_cursor (struct frame *f, Cursor cursor) | 2541 | ns_define_frame_cursor (struct frame *f, Emacs_Cursor cursor) |
| 2580 | /* -------------------------------------------------------------------------- | 2542 | /* -------------------------------------------------------------------------- |
| 2581 | External (RIF): set frame mouse pointer type. | 2543 | External (RIF): set frame mouse pointer type. |
| 2582 | -------------------------------------------------------------------------- */ | 2544 | -------------------------------------------------------------------------- */ |
| @@ -4972,7 +4934,7 @@ ns_judge_scroll_bars (struct frame *f) | |||
| 4972 | ========================================================================== */ | 4934 | ========================================================================== */ |
| 4973 | 4935 | ||
| 4974 | static void | 4936 | static void |
| 4975 | ns_free_pixmap (struct frame *_f, Pixmap pixmap) | 4937 | ns_free_pixmap (struct frame *_f, Emacs_Pixmap pixmap) |
| 4976 | { | 4938 | { |
| 4977 | ns_release_object (pixmap); | 4939 | ns_release_object (pixmap); |
| 4978 | } | 4940 | } |
| @@ -5459,14 +5421,14 @@ ns_term_init (Lisp_Object display_name) | |||
| 5459 | 5421 | ||
| 5460 | NSTRACE_MSG ("Input/output types"); | 5422 | NSTRACE_MSG ("Input/output types"); |
| 5461 | 5423 | ||
| 5462 | ns_send_types = [[NSArray arrayWithObjects: NSStringPboardType, nil] retain]; | 5424 | ns_send_types = [[NSArray arrayWithObjects: NSPasteboardTypeString, nil] retain]; |
| 5463 | ns_return_types = [[NSArray arrayWithObjects: NSStringPboardType, nil] | 5425 | ns_return_types = [[NSArray arrayWithObjects: NSPasteboardTypeString, nil] |
| 5464 | retain]; | 5426 | retain]; |
| 5465 | ns_drag_types = [[NSArray arrayWithObjects: | 5427 | ns_drag_types = [[NSArray arrayWithObjects: |
| 5466 | NSStringPboardType, | 5428 | NSPasteboardTypeString, |
| 5467 | NSTabularTextPboardType, | 5429 | NSPasteboardTypeTabularText, |
| 5468 | NSFilenamesPboardType, | 5430 | NSFilenamesPboardType, |
| 5469 | NSURLPboardType, nil] retain]; | 5431 | NSPasteboardTypeURL, nil] retain]; |
| 5470 | 5432 | ||
| 5471 | /* If fullscreen is in init/default-frame-alist, focus isn't set | 5433 | /* If fullscreen is in init/default-frame-alist, focus isn't set |
| 5472 | right for fullscreen windows, so set this. */ | 5434 | right for fullscreen windows, so set this. */ |
| @@ -8276,6 +8238,9 @@ not_in_argv (NSString *arg) | |||
| 8276 | { | 8238 | { |
| 8277 | return NO; | 8239 | return NO; |
| 8278 | } | 8240 | } |
| 8241 | /* FIXME: NSFilenamesPboardType is deprecated in 10.14, but the | ||
| 8242 | NSURL method can only handle one file at a time. Stick with the | ||
| 8243 | existing code at the moment. */ | ||
| 8279 | else if ([type isEqualToString: NSFilenamesPboardType]) | 8244 | else if ([type isEqualToString: NSFilenamesPboardType]) |
| 8280 | { | 8245 | { |
| 8281 | NSArray *files; | 8246 | NSArray *files; |
| @@ -8370,8 +8335,8 @@ not_in_argv (NSString *arg) | |||
| 8370 | 8335 | ||
| 8371 | NSTRACE ("[EmacsView writeSelectionToPasteboard:types:]"); | 8336 | NSTRACE ("[EmacsView writeSelectionToPasteboard:types:]"); |
| 8372 | 8337 | ||
| 8373 | /* We only support NSStringPboardType. */ | 8338 | /* We only support NSPasteboardTypeString. */ |
| 8374 | if ([types containsObject:NSStringPboardType] == NO) { | 8339 | if ([types containsObject:NSPasteboardTypeString] == NO) { |
| 8375 | return NO; | 8340 | return NO; |
| 8376 | } | 8341 | } |
| 8377 | 8342 | ||
| @@ -8385,7 +8350,7 @@ not_in_argv (NSString *arg) | |||
| 8385 | if (! STRINGP (val)) | 8350 | if (! STRINGP (val)) |
| 8386 | return NO; | 8351 | return NO; |
| 8387 | 8352 | ||
| 8388 | typesDeclared = [NSArray arrayWithObject:NSStringPboardType]; | 8353 | typesDeclared = [NSArray arrayWithObject:NSPasteboardTypeString]; |
| 8389 | [pb declareTypes:typesDeclared owner:nil]; | 8354 | [pb declareTypes:typesDeclared owner:nil]; |
| 8390 | ns_string_to_pasteboard (pb, val); | 8355 | ns_string_to_pasteboard (pb, val); |
| 8391 | return YES; | 8356 | return YES; |
| @@ -9047,10 +9012,12 @@ not_in_argv (NSString *arg) | |||
| 9047 | last_hit_part = horizontal ? scroll_bar_before_handle : scroll_bar_above_handle; break; | 9012 | last_hit_part = horizontal ? scroll_bar_before_handle : scroll_bar_above_handle; break; |
| 9048 | case NSScrollerIncrementPage: | 9013 | case NSScrollerIncrementPage: |
| 9049 | last_hit_part = horizontal ? scroll_bar_after_handle : scroll_bar_below_handle; break; | 9014 | last_hit_part = horizontal ? scroll_bar_after_handle : scroll_bar_below_handle; break; |
| 9015 | #if defined (NS_IMPL_GNUSTEP) || MAC_OS_X_VERSION_MIN_REQUIRED < 1070 | ||
| 9050 | case NSScrollerDecrementLine: | 9016 | case NSScrollerDecrementLine: |
| 9051 | last_hit_part = horizontal ? scroll_bar_left_arrow : scroll_bar_up_arrow; break; | 9017 | last_hit_part = horizontal ? scroll_bar_left_arrow : scroll_bar_up_arrow; break; |
| 9052 | case NSScrollerIncrementLine: | 9018 | case NSScrollerIncrementLine: |
| 9053 | last_hit_part = horizontal ? scroll_bar_right_arrow : scroll_bar_down_arrow; break; | 9019 | last_hit_part = horizontal ? scroll_bar_right_arrow : scroll_bar_down_arrow; break; |
| 9020 | #endif | ||
| 9054 | case NSScrollerKnob: | 9021 | case NSScrollerKnob: |
| 9055 | last_hit_part = horizontal ? scroll_bar_horizontal_handle : scroll_bar_handle; break; | 9022 | last_hit_part = horizontal ? scroll_bar_horizontal_handle : scroll_bar_handle; break; |
| 9056 | case NSScrollerKnobSlot: /* GNUstep-only */ | 9023 | case NSScrollerKnobSlot: /* GNUstep-only */ |
diff --git a/src/regex-emacs.c b/src/regex-emacs.c index 8dc69805024..4cb17037c26 100644 --- a/src/regex-emacs.c +++ b/src/regex-emacs.c | |||
| @@ -3432,7 +3432,7 @@ static bool bcmp_translate (re_char *, re_char *, ptrdiff_t, | |||
| 3432 | { \ | 3432 | { \ |
| 3433 | d = string2; \ | 3433 | d = string2; \ |
| 3434 | dend = end_match_2; \ | 3434 | dend = end_match_2; \ |
| 3435 | } \ | 3435 | } |
| 3436 | 3436 | ||
| 3437 | /* Test if at very beginning or at very end of the virtual concatenation | 3437 | /* Test if at very beginning or at very end of the virtual concatenation |
| 3438 | of STRING1 and STRING2. If only one string, it's STRING2. */ | 3438 | of STRING1 and STRING2. If only one string, it's STRING2. */ |
diff --git a/src/search.c b/src/search.c index dfbae5c9628..8a0f707b723 100644 --- a/src/search.c +++ b/src/search.c | |||
| @@ -1324,12 +1324,7 @@ search_buffer_non_re (Lisp_Object string, ptrdiff_t pos, | |||
| 1324 | } | 1324 | } |
| 1325 | else | 1325 | else |
| 1326 | { | 1326 | { |
| 1327 | /* Converting multibyte to single-byte. | 1327 | /* Converting multibyte to single-byte. */ |
| 1328 | |||
| 1329 | ??? Perhaps this conversion should be done in a special way | ||
| 1330 | by subtracting nonascii-insert-offset from each non-ASCII char, | ||
| 1331 | so that only the multibyte chars which really correspond to | ||
| 1332 | the chosen single-byte character set can possibly match. */ | ||
| 1333 | raw_pattern_size = SCHARS (string); | 1328 | raw_pattern_size = SCHARS (string); |
| 1334 | raw_pattern_size_byte = SCHARS (string); | 1329 | raw_pattern_size_byte = SCHARS (string); |
| 1335 | raw_pattern = SAFE_ALLOCA (raw_pattern_size + 1); | 1330 | raw_pattern = SAFE_ALLOCA (raw_pattern_size + 1); |
diff --git a/src/termhooks.h b/src/termhooks.h index 0962add0817..f1827128f19 100644 --- a/src/termhooks.h +++ b/src/termhooks.h | |||
| @@ -496,7 +496,7 @@ struct terminal | |||
| 496 | 496 | ||
| 497 | If MAKEINDEX (on NS), set COLOR_DEF pixel to ARGB. */ | 497 | If MAKEINDEX (on NS), set COLOR_DEF pixel to ARGB. */ |
| 498 | bool (*defined_color_hook) (struct frame *f, const char *color_name, | 498 | bool (*defined_color_hook) (struct frame *f, const char *color_name, |
| 499 | XColor *color_def, | 499 | Emacs_Color *color_def, |
| 500 | bool alloc, | 500 | bool alloc, |
| 501 | bool makeIndex); | 501 | bool makeIndex); |
| 502 | 502 | ||
| @@ -515,13 +515,13 @@ struct terminal | |||
| 515 | 515 | ||
| 516 | /* This hook is called to store the frame's background color into | 516 | /* This hook is called to store the frame's background color into |
| 517 | BGCOLOR. */ | 517 | BGCOLOR. */ |
| 518 | void (*query_frame_background_color) (struct frame *f, XColor *bgcolor); | 518 | void (*query_frame_background_color) (struct frame *f, Emacs_Color *bgcolor); |
| 519 | 519 | ||
| 520 | #if defined (HAVE_X_WINDOWS) || defined (HAVE_NTGUI) | 520 | #if defined (HAVE_X_WINDOWS) || defined (HAVE_NTGUI) |
| 521 | /* On frame F, translate pixel colors to RGB values for the NCOLORS | 521 | /* On frame F, translate pixel colors to RGB values for the NCOLORS |
| 522 | colors in COLORS. Use cached information, if available. */ | 522 | colors in COLORS. Use cached information, if available. */ |
| 523 | 523 | ||
| 524 | void (*query_colors) (struct frame *f, XColor *colors, int ncolors); | 524 | void (*query_colors) (struct frame *f, Emacs_Color *colors, int ncolors); |
| 525 | #endif | 525 | #endif |
| 526 | /* Return the current position of the mouse. | 526 | /* Return the current position of the mouse. |
| 527 | 527 | ||
| @@ -744,7 +744,7 @@ struct terminal | |||
| 744 | /* Image hooks */ | 744 | /* Image hooks */ |
| 745 | #ifdef HAVE_WINDOW_SYSTEM | 745 | #ifdef HAVE_WINDOW_SYSTEM |
| 746 | /* Free the pixmap PIXMAP on F. */ | 746 | /* Free the pixmap PIXMAP on F. */ |
| 747 | void (*free_pixmap) (struct frame *f, Pixmap pixmap); | 747 | void (*free_pixmap) (struct frame *f, Emacs_Pixmap pixmap); |
| 748 | 748 | ||
| 749 | #endif | 749 | #endif |
| 750 | 750 | ||
diff --git a/src/w32fns.c b/src/w32fns.c index 525642bfaab..bb74fcc1640 100644 --- a/src/w32fns.c +++ b/src/w32fns.c | |||
| @@ -1174,7 +1174,7 @@ gamma_correct (struct frame *f, COLORREF *color) | |||
| 1174 | If ALLOC is nonzero, allocate a new colormap cell. */ | 1174 | If ALLOC is nonzero, allocate a new colormap cell. */ |
| 1175 | 1175 | ||
| 1176 | bool | 1176 | bool |
| 1177 | w32_defined_color (struct frame *f, const char *color, XColor *color_def, | 1177 | w32_defined_color (struct frame *f, const char *color, Emacs_Color *color_def, |
| 1178 | bool alloc_p, bool _makeIndex) | 1178 | bool alloc_p, bool _makeIndex) |
| 1179 | { | 1179 | { |
| 1180 | register Lisp_Object tem; | 1180 | register Lisp_Object tem; |
| @@ -1248,7 +1248,7 @@ w32_defined_color (struct frame *f, const char *color, XColor *color_def, | |||
| 1248 | static int | 1248 | static int |
| 1249 | w32_decode_color (struct frame *f, Lisp_Object arg, int def) | 1249 | w32_decode_color (struct frame *f, Lisp_Object arg, int def) |
| 1250 | { | 1250 | { |
| 1251 | XColor cdef; | 1251 | Emacs_Color cdef; |
| 1252 | 1252 | ||
| 1253 | CHECK_STRING (arg); | 1253 | CHECK_STRING (arg); |
| 1254 | 1254 | ||
| @@ -2247,15 +2247,15 @@ w32_set_z_group (struct frame *f, Lisp_Object new_value, Lisp_Object old_value) | |||
| 2247 | 2247 | ||
| 2248 | /* Subroutines for creating a frame. */ | 2248 | /* Subroutines for creating a frame. */ |
| 2249 | 2249 | ||
| 2250 | Cursor w32_load_cursor (LPCTSTR); | 2250 | HCURSOR w32_load_cursor (LPCTSTR); |
| 2251 | 2251 | ||
| 2252 | Cursor | 2252 | HCURSOR |
| 2253 | w32_load_cursor (LPCTSTR name) | 2253 | w32_load_cursor (LPCTSTR name) |
| 2254 | { | 2254 | { |
| 2255 | /* Try first to load cursor from application resource. */ | 2255 | /* Try first to load cursor from application resource. */ |
| 2256 | Cursor cursor = LoadImage ((HINSTANCE) GetModuleHandle (NULL), | 2256 | HCURSOR cursor = LoadImage ((HINSTANCE) GetModuleHandle (NULL), |
| 2257 | name, IMAGE_CURSOR, 0, 0, | 2257 | name, IMAGE_CURSOR, 0, 0, |
| 2258 | LR_DEFAULTCOLOR | LR_DEFAULTSIZE | LR_SHARED); | 2258 | LR_DEFAULTCOLOR | LR_DEFAULTSIZE | LR_SHARED); |
| 2259 | if (!cursor) | 2259 | if (!cursor) |
| 2260 | { | 2260 | { |
| 2261 | /* Then try to load a shared predefined cursor. */ | 2261 | /* Then try to load a shared predefined cursor. */ |
| @@ -5217,7 +5217,7 @@ w32_wnd_proc (HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) | |||
| 5217 | 5217 | ||
| 5218 | case WM_EMACS_SETCURSOR: | 5218 | case WM_EMACS_SETCURSOR: |
| 5219 | { | 5219 | { |
| 5220 | Cursor cursor = (Cursor) wParam; | 5220 | HCURSOR cursor = (HCURSOR) wParam; |
| 5221 | f = w32_window_to_frame (dpyinfo, hwnd); | 5221 | f = w32_window_to_frame (dpyinfo, hwnd); |
| 5222 | if (f && cursor) | 5222 | if (f && cursor) |
| 5223 | { | 5223 | { |
| @@ -5559,22 +5559,19 @@ w32_icon (struct frame *f, Lisp_Object parms) | |||
| 5559 | static void | 5559 | static void |
| 5560 | w32_make_gc (struct frame *f) | 5560 | w32_make_gc (struct frame *f) |
| 5561 | { | 5561 | { |
| 5562 | XGCValues gc_values; | 5562 | Emacs_GC gc_values; |
| 5563 | 5563 | ||
| 5564 | block_input (); | 5564 | block_input (); |
| 5565 | 5565 | ||
| 5566 | /* Create the GC's of this frame. | 5566 | /* Create the GC's of this frame. |
| 5567 | Note that many default values are used. */ | 5567 | Note that many default values are used. */ |
| 5568 | 5568 | ||
| 5569 | /* Normal video */ | ||
| 5570 | gc_values.font = FRAME_FONT (f); | ||
| 5571 | |||
| 5572 | /* Cursor has cursor-color background, background-color foreground. */ | 5569 | /* Cursor has cursor-color background, background-color foreground. */ |
| 5573 | gc_values.foreground = FRAME_BACKGROUND_PIXEL (f); | 5570 | gc_values.foreground = FRAME_BACKGROUND_PIXEL (f); |
| 5574 | gc_values.background = f->output_data.w32->cursor_pixel; | 5571 | gc_values.background = f->output_data.w32->cursor_pixel; |
| 5575 | f->output_data.w32->cursor_gc | 5572 | f->output_data.w32->cursor_gc |
| 5576 | = XCreateGC (NULL, FRAME_W32_WINDOW (f), | 5573 | = XCreateGC (NULL, FRAME_W32_WINDOW (f), |
| 5577 | (GCFont | GCForeground | GCBackground), | 5574 | (GCForeground | GCBackground), |
| 5578 | &gc_values); | 5575 | &gc_values); |
| 5579 | 5576 | ||
| 5580 | /* Reliefs. */ | 5577 | /* Reliefs. */ |
| @@ -6100,7 +6097,7 @@ DEFUN ("xw-color-defined-p", Fxw_color_defined_p, Sxw_color_defined_p, 1, 2, 0, | |||
| 6100 | doc: /* SKIP: real doc in xfns.c. */) | 6097 | doc: /* SKIP: real doc in xfns.c. */) |
| 6101 | (Lisp_Object color, Lisp_Object frame) | 6098 | (Lisp_Object color, Lisp_Object frame) |
| 6102 | { | 6099 | { |
| 6103 | XColor foo; | 6100 | Emacs_Color foo; |
| 6104 | struct frame *f = decode_window_system_frame (frame); | 6101 | struct frame *f = decode_window_system_frame (frame); |
| 6105 | 6102 | ||
| 6106 | CHECK_STRING (color); | 6103 | CHECK_STRING (color); |
| @@ -6115,7 +6112,7 @@ DEFUN ("xw-color-values", Fxw_color_values, Sxw_color_values, 1, 2, 0, | |||
| 6115 | doc: /* SKIP: real doc in xfns.c. */) | 6112 | doc: /* SKIP: real doc in xfns.c. */) |
| 6116 | (Lisp_Object color, Lisp_Object frame) | 6113 | (Lisp_Object color, Lisp_Object frame) |
| 6117 | { | 6114 | { |
| 6118 | XColor foo; | 6115 | Emacs_Color foo; |
| 6119 | struct frame *f = decode_window_system_frame (frame); | 6116 | struct frame *f = decode_window_system_frame (frame); |
| 6120 | 6117 | ||
| 6121 | CHECK_STRING (color); | 6118 | CHECK_STRING (color); |
diff --git a/src/w32font.c b/src/w32font.c index 848016da1ca..47a33aec35f 100644 --- a/src/w32font.c +++ b/src/w32font.c | |||
| @@ -433,7 +433,7 @@ w32font_encode_char (struct font *font, int c) | |||
| 433 | CODE (length NGLYPHS). Apparently metrics can be NULL, in this | 433 | CODE (length NGLYPHS). Apparently metrics can be NULL, in this |
| 434 | case just return the overall width. */ | 434 | case just return the overall width. */ |
| 435 | void | 435 | void |
| 436 | w32font_text_extents (struct font *font, unsigned *code, | 436 | w32font_text_extents (struct font *font, const unsigned *code, |
| 437 | int nglyphs, struct font_metrics *metrics) | 437 | int nglyphs, struct font_metrics *metrics) |
| 438 | { | 438 | { |
| 439 | int i; | 439 | int i; |
| @@ -704,11 +704,23 @@ w32font_draw (struct glyph_string *s, int from, int to, | |||
| 704 | int i; | 704 | int i; |
| 705 | 705 | ||
| 706 | for (i = 0; i < len; i++) | 706 | for (i = 0; i < len; i++) |
| 707 | ExtTextOutW (s->hdc, x + i, y, options, NULL, | 707 | { |
| 708 | s->char2b + from + i, 1, NULL); | 708 | WCHAR c = s->char2b[from + i] & 0xFFFF; |
| 709 | ExtTextOutW (s->hdc, x + i, y, options, NULL, &c, 1, NULL); | ||
| 710 | } | ||
| 709 | } | 711 | } |
| 710 | else | 712 | else |
| 711 | ExtTextOutW (s->hdc, x, y, options, NULL, s->char2b + from, len, NULL); | 713 | { |
| 714 | /* The number of glyphs in a glyph_string cannot be larger than | ||
| 715 | the maximum value of the 'used' member of a glyph_row, so we | ||
| 716 | are OK using alloca here. */ | ||
| 717 | eassert (len <= SHRT_MAX); | ||
| 718 | WCHAR *chars = alloca (len * sizeof (WCHAR)); | ||
| 719 | int j; | ||
| 720 | for (j = 0; j < len; j++) | ||
| 721 | chars[j] = s->char2b[from + j] & 0xFFFF; | ||
| 722 | ExtTextOutW (s->hdc, x, y, options, NULL, chars, len, NULL); | ||
| 723 | } | ||
| 712 | 724 | ||
| 713 | /* Restore clip region. */ | 725 | /* Restore clip region. */ |
| 714 | if (s->num_clips > 0) | 726 | if (s->num_clips > 0) |
diff --git a/src/w32font.h b/src/w32font.h index 65f42a3178d..c7bb7f30570 100644 --- a/src/w32font.h +++ b/src/w32font.h | |||
| @@ -74,7 +74,7 @@ int w32font_open_internal (struct frame *f, Lisp_Object font_entity, | |||
| 74 | int pixel_size, Lisp_Object font_object); | 74 | int pixel_size, Lisp_Object font_object); |
| 75 | void w32font_close (struct font *font); | 75 | void w32font_close (struct font *font); |
| 76 | int w32font_has_char (Lisp_Object entity, int c); | 76 | int w32font_has_char (Lisp_Object entity, int c); |
| 77 | void w32font_text_extents (struct font *font, unsigned *code, int nglyphs, | 77 | void w32font_text_extents (struct font *font, const unsigned *code, int nglyphs, |
| 78 | struct font_metrics *metrics); | 78 | struct font_metrics *metrics); |
| 79 | int w32font_draw (struct glyph_string *s, int from, int to, | 79 | int w32font_draw (struct glyph_string *s, int from, int to, |
| 80 | int x, int y, bool with_background); | 80 | int x, int y, bool with_background); |
diff --git a/src/w32gui.h b/src/w32gui.h index 5dcbbd95166..62bad33c19b 100644 --- a/src/w32gui.h +++ b/src/w32gui.h | |||
| @@ -27,41 +27,11 @@ along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>. */ | |||
| 27 | #define local_alloc(n) (HeapAlloc (local_heap, HEAP_ZERO_MEMORY, (n))) | 27 | #define local_alloc(n) (HeapAlloc (local_heap, HEAP_ZERO_MEMORY, (n))) |
| 28 | #define local_free(p) (HeapFree (local_heap, 0, ((LPVOID) (p)))) | 28 | #define local_free(p) (HeapFree (local_heap, 0, ((LPVOID) (p)))) |
| 29 | 29 | ||
| 30 | /* Emulate X GC's by keeping color and font info in a structure. */ | 30 | typedef HBITMAP Emacs_Pixmap; |
| 31 | typedef struct _XGCValues | ||
| 32 | { | ||
| 33 | COLORREF foreground; | ||
| 34 | COLORREF background; | ||
| 35 | struct font *font; | ||
| 36 | } XGCValues; | ||
| 37 | |||
| 38 | #define GCForeground 0x01 | ||
| 39 | #define GCBackground 0x02 | ||
| 40 | #define GCFont 0x03 | ||
| 41 | |||
| 42 | typedef HBITMAP Pixmap; | ||
| 43 | typedef HBITMAP Bitmap; | ||
| 44 | 31 | ||
| 45 | typedef XGCValues * GC; | ||
| 46 | typedef COLORREF Color; | ||
| 47 | typedef HWND Window; | 32 | typedef HWND Window; |
| 48 | typedef HDC Display; /* HDC so it doesn't conflict with xpm lib. */ | 33 | typedef HDC Display; /* HDC so it doesn't conflict with xpm lib. */ |
| 49 | typedef HCURSOR Cursor; | 34 | typedef HCURSOR Emacs_Cursor; |
| 50 | |||
| 51 | #define No_Cursor (0) | ||
| 52 | |||
| 53 | #define XChar2b wchar_t | ||
| 54 | |||
| 55 | /* Dealing with bits of wchar_t as if they were an XChar2b. */ | ||
| 56 | #define STORE_XCHAR2B(chp, byte1, byte2) \ | ||
| 57 | ((*(chp)) = ((XChar2b)((((byte1) & 0x00ff) << 8) | ((byte2) & 0x00ff)))) | ||
| 58 | |||
| 59 | #define XCHAR2B_BYTE1(chp) \ | ||
| 60 | (((*(chp)) & 0xff00) >> 8) | ||
| 61 | |||
| 62 | #define XCHAR2B_BYTE2(chp) \ | ||
| 63 | ((*(chp)) & 0x00ff) | ||
| 64 | |||
| 65 | 35 | ||
| 66 | /* Windows equivalent of XImage. */ | 36 | /* Windows equivalent of XImage. */ |
| 67 | typedef struct _XImage | 37 | typedef struct _XImage |
| @@ -110,20 +80,15 @@ extern HINSTANCE hinst; | |||
| 110 | #define PBaseSize (1L << 8) /* program specified base for incrementing */ | 80 | #define PBaseSize (1L << 8) /* program specified base for incrementing */ |
| 111 | #define PWinGravity (1L << 9) /* program specified window gravity */ | 81 | #define PWinGravity (1L << 9) /* program specified window gravity */ |
| 112 | 82 | ||
| 113 | typedef struct { | ||
| 114 | int x, y; | ||
| 115 | unsigned width, height; | ||
| 116 | } XRectangle; | ||
| 117 | |||
| 118 | #define NativeRectangle RECT | 83 | #define NativeRectangle RECT |
| 119 | 84 | ||
| 120 | #define CONVERT_TO_XRECT(xr,nr) \ | 85 | #define CONVERT_TO_EMACS_RECT(xr,nr) \ |
| 121 | ((xr).x = (nr).left, \ | 86 | ((xr).x = (nr).left, \ |
| 122 | (xr).y = (nr).top, \ | 87 | (xr).y = (nr).top, \ |
| 123 | (xr).width = ((nr).right - (nr).left), \ | 88 | (xr).width = ((nr).right - (nr).left), \ |
| 124 | (xr).height = ((nr).bottom - (nr).top)) | 89 | (xr).height = ((nr).bottom - (nr).top)) |
| 125 | 90 | ||
| 126 | #define CONVERT_FROM_XRECT(xr,nr) \ | 91 | #define CONVERT_FROM_EMACS_RECT(xr,nr) \ |
| 127 | ((nr).left = (xr).x, \ | 92 | ((nr).left = (xr).x, \ |
| 128 | (nr).top = (xr).y, \ | 93 | (nr).top = (xr).y, \ |
| 129 | (nr).right = ((xr).x + (xr).width), \ | 94 | (nr).right = ((xr).x + (xr).width), \ |
diff --git a/src/w32term.c b/src/w32term.c index 435455e1a6d..5726124b0ed 100644 --- a/src/w32term.c +++ b/src/w32term.c | |||
| @@ -85,7 +85,7 @@ static int any_help_event_p; | |||
| 85 | extern unsigned int msh_mousewheel; | 85 | extern unsigned int msh_mousewheel; |
| 86 | 86 | ||
| 87 | extern int w32_codepage_for_font (char *fontname); | 87 | extern int w32_codepage_for_font (char *fontname); |
| 88 | extern Cursor w32_load_cursor (LPCTSTR name); | 88 | extern HCURSOR w32_load_cursor (LPCTSTR name); |
| 89 | 89 | ||
| 90 | 90 | ||
| 91 | /* This is display since w32 does not support multiple ones. */ | 91 | /* This is display since w32 does not support multiple ones. */ |
| @@ -166,7 +166,7 @@ int w32_message_fd = -1; | |||
| 166 | 166 | ||
| 167 | static void w32_handle_tool_bar_click (struct frame *, | 167 | static void w32_handle_tool_bar_click (struct frame *, |
| 168 | struct input_event *); | 168 | struct input_event *); |
| 169 | static void w32_define_cursor (Window, Cursor); | 169 | static void w32_define_cursor (Window, Emacs_Cursor); |
| 170 | 170 | ||
| 171 | static void w32_scroll_bar_clear (struct frame *); | 171 | static void w32_scroll_bar_clear (struct frame *); |
| 172 | static void w32_raise_frame (struct frame *); | 172 | static void w32_raise_frame (struct frame *); |
| @@ -237,23 +237,21 @@ record_event (char *locus, int type) | |||
| 237 | 237 | ||
| 238 | 238 | ||
| 239 | static void | 239 | static void |
| 240 | XChangeGC (void *ignore, XGCValues *gc, unsigned long mask, | 240 | XChangeGC (void *ignore, Emacs_GC *gc, unsigned long mask, |
| 241 | XGCValues *xgcv) | 241 | Emacs_GC *egc) |
| 242 | { | 242 | { |
| 243 | if (mask & GCForeground) | 243 | if (mask & GCForeground) |
| 244 | gc->foreground = xgcv->foreground; | 244 | gc->foreground = egc->foreground; |
| 245 | if (mask & GCBackground) | 245 | if (mask & GCBackground) |
| 246 | gc->background = xgcv->background; | 246 | gc->background = egc->background; |
| 247 | if (mask & GCFont) | ||
| 248 | gc->font = xgcv->font; | ||
| 249 | } | 247 | } |
| 250 | 248 | ||
| 251 | XGCValues * | 249 | Emacs_GC * |
| 252 | XCreateGC (void *ignore, HWND wignore, unsigned long mask, XGCValues *xgcv) | 250 | XCreateGC (void *ignore, HWND wignore, unsigned long mask, Emacs_GC *egc) |
| 253 | { | 251 | { |
| 254 | XGCValues *gc = xzalloc (sizeof (XGCValues)); | 252 | Emacs_GC *gc = xzalloc (sizeof (*gc)); |
| 255 | 253 | ||
| 256 | XChangeGC (ignore, gc, mask, xgcv); | 254 | XChangeGC (ignore, gc, mask, egc); |
| 257 | 255 | ||
| 258 | return gc; | 256 | return gc; |
| 259 | } | 257 | } |
| @@ -337,7 +335,7 @@ w32_draw_underwave (struct glyph_string *s, COLORREF color) | |||
| 337 | 335 | ||
| 338 | int wave_height = 3 * scale_y, wave_length = 2 * scale_x, thickness = scale_y; | 336 | int wave_height = 3 * scale_y, wave_length = 2 * scale_x, thickness = scale_y; |
| 339 | int dx, dy, x0, y0, width, x1, y1, x2, y2, odd, xmax; | 337 | int dx, dy, x0, y0, width, x1, y1, x2, y2, odd, xmax; |
| 340 | XRectangle wave_clip, string_clip, final_clip; | 338 | Emacs_Rectangle wave_clip, string_clip, final_clip; |
| 341 | RECT w32_final_clip, w32_string_clip; | 339 | RECT w32_final_clip, w32_string_clip; |
| 342 | HPEN hp, oldhp; | 340 | HPEN hp, oldhp; |
| 343 | 341 | ||
| @@ -356,14 +354,14 @@ w32_draw_underwave (struct glyph_string *s, COLORREF color) | |||
| 356 | wave_clip.height = wave_height; | 354 | wave_clip.height = wave_height; |
| 357 | 355 | ||
| 358 | get_glyph_string_clip_rect (s, &w32_string_clip); | 356 | get_glyph_string_clip_rect (s, &w32_string_clip); |
| 359 | CONVERT_TO_XRECT (string_clip, w32_string_clip); | 357 | CONVERT_TO_EMACS_RECT (string_clip, w32_string_clip); |
| 360 | 358 | ||
| 361 | if (!gui_intersect_rectangles (&wave_clip, &string_clip, &final_clip)) | 359 | if (!gui_intersect_rectangles (&wave_clip, &string_clip, &final_clip)) |
| 362 | return; | 360 | return; |
| 363 | 361 | ||
| 364 | hp = CreatePen (PS_SOLID, thickness, color); | 362 | hp = CreatePen (PS_SOLID, thickness, color); |
| 365 | oldhp = SelectObject (s->hdc, hp); | 363 | oldhp = SelectObject (s->hdc, hp); |
| 366 | CONVERT_FROM_XRECT (final_clip, w32_final_clip); | 364 | CONVERT_FROM_EMACS_RECT (final_clip, w32_final_clip); |
| 367 | w32_set_clip_rectangle (s->hdc, &w32_final_clip); | 365 | w32_set_clip_rectangle (s->hdc, &w32_final_clip); |
| 368 | 366 | ||
| 369 | /* Draw the waves */ | 367 | /* Draw the waves */ |
| @@ -396,7 +394,7 @@ w32_draw_underwave (struct glyph_string *s, COLORREF color) | |||
| 396 | 394 | ||
| 397 | /* Draw a hollow rectangle at the specified position. */ | 395 | /* Draw a hollow rectangle at the specified position. */ |
| 398 | static void | 396 | static void |
| 399 | w32_draw_rectangle (HDC hdc, XGCValues *gc, int x, int y, | 397 | w32_draw_rectangle (HDC hdc, Emacs_GC *gc, int x, int y, |
| 400 | int width, int height) | 398 | int width, int height) |
| 401 | { | 399 | { |
| 402 | HBRUSH hb, oldhb; | 400 | HBRUSH hb, oldhb; |
| @@ -906,38 +904,37 @@ w32_set_cursor_gc (struct glyph_string *s) | |||
| 906 | else | 904 | else |
| 907 | { | 905 | { |
| 908 | /* Cursor on non-default face: must merge. */ | 906 | /* Cursor on non-default face: must merge. */ |
| 909 | XGCValues xgcv; | 907 | Emacs_GC egc; |
| 910 | unsigned long mask; | 908 | unsigned long mask; |
| 911 | 909 | ||
| 912 | xgcv.background = s->f->output_data.w32->cursor_pixel; | 910 | egc.background = s->f->output_data.w32->cursor_pixel; |
| 913 | xgcv.foreground = s->face->background; | 911 | egc.foreground = s->face->background; |
| 914 | 912 | ||
| 915 | /* If the glyph would be invisible, try a different foreground. */ | 913 | /* If the glyph would be invisible, try a different foreground. */ |
| 916 | if (xgcv.foreground == xgcv.background) | 914 | if (egc.foreground == egc.background) |
| 917 | xgcv.foreground = s->face->foreground; | 915 | egc.foreground = s->face->foreground; |
| 918 | if (xgcv.foreground == xgcv.background) | 916 | if (egc.foreground == egc.background) |
| 919 | xgcv.foreground = s->f->output_data.w32->cursor_foreground_pixel; | 917 | egc.foreground = s->f->output_data.w32->cursor_foreground_pixel; |
| 920 | if (xgcv.foreground == xgcv.background) | 918 | if (egc.foreground == egc.background) |
| 921 | xgcv.foreground = s->face->foreground; | 919 | egc.foreground = s->face->foreground; |
| 922 | 920 | ||
| 923 | /* Make sure the cursor is distinct from text in this face. */ | 921 | /* Make sure the cursor is distinct from text in this face. */ |
| 924 | if (xgcv.background == s->face->background | 922 | if (egc.background == s->face->background |
| 925 | && xgcv.foreground == s->face->foreground) | 923 | && egc.foreground == s->face->foreground) |
| 926 | { | 924 | { |
| 927 | xgcv.background = s->face->foreground; | 925 | egc.background = s->face->foreground; |
| 928 | xgcv.foreground = s->face->background; | 926 | egc.foreground = s->face->background; |
| 929 | } | 927 | } |
| 930 | 928 | ||
| 931 | IF_DEBUG (w32_check_font (s->f, s->font)); | 929 | IF_DEBUG (w32_check_font (s->f, s->font)); |
| 932 | xgcv.font = s->font; | 930 | mask = GCForeground | GCBackground; |
| 933 | mask = GCForeground | GCBackground | GCFont; | ||
| 934 | 931 | ||
| 935 | if (FRAME_DISPLAY_INFO (s->f)->scratch_cursor_gc) | 932 | if (FRAME_DISPLAY_INFO (s->f)->scratch_cursor_gc) |
| 936 | XChangeGC (NULL, FRAME_DISPLAY_INFO (s->f)->scratch_cursor_gc, | 933 | XChangeGC (NULL, FRAME_DISPLAY_INFO (s->f)->scratch_cursor_gc, |
| 937 | mask, &xgcv); | 934 | mask, &egc); |
| 938 | else | 935 | else |
| 939 | FRAME_DISPLAY_INFO (s->f)->scratch_cursor_gc | 936 | FRAME_DISPLAY_INFO (s->f)->scratch_cursor_gc |
| 940 | = XCreateGC (NULL, FRAME_W32_WINDOW (s->f), mask, &xgcv); | 937 | = XCreateGC (NULL, FRAME_W32_WINDOW (s->f), mask, &egc); |
| 941 | 938 | ||
| 942 | s->gc = FRAME_DISPLAY_INFO (s->f)->scratch_cursor_gc; | 939 | s->gc = FRAME_DISPLAY_INFO (s->f)->scratch_cursor_gc; |
| 943 | } | 940 | } |
| @@ -972,21 +969,20 @@ w32_set_mouse_face_gc (struct glyph_string *s) | |||
| 972 | { | 969 | { |
| 973 | /* Otherwise construct scratch_cursor_gc with values from FACE | 970 | /* Otherwise construct scratch_cursor_gc with values from FACE |
| 974 | but font FONT. */ | 971 | but font FONT. */ |
| 975 | XGCValues xgcv; | 972 | Emacs_GC egc; |
| 976 | unsigned long mask; | 973 | unsigned long mask; |
| 977 | 974 | ||
| 978 | xgcv.background = s->face->background; | 975 | egc.background = s->face->background; |
| 979 | xgcv.foreground = s->face->foreground; | 976 | egc.foreground = s->face->foreground; |
| 980 | IF_DEBUG (w32_check_font (s->f, s->font)); | 977 | IF_DEBUG (w32_check_font (s->f, s->font)); |
| 981 | xgcv.font = s->font; | 978 | mask = GCForeground | GCBackground; |
| 982 | mask = GCForeground | GCBackground | GCFont; | ||
| 983 | 979 | ||
| 984 | if (FRAME_DISPLAY_INFO (s->f)->scratch_cursor_gc) | 980 | if (FRAME_DISPLAY_INFO (s->f)->scratch_cursor_gc) |
| 985 | XChangeGC (NULL, FRAME_DISPLAY_INFO (s->f)->scratch_cursor_gc, | 981 | XChangeGC (NULL, FRAME_DISPLAY_INFO (s->f)->scratch_cursor_gc, |
| 986 | mask, &xgcv); | 982 | mask, &egc); |
| 987 | else | 983 | else |
| 988 | FRAME_DISPLAY_INFO (s->f)->scratch_cursor_gc | 984 | FRAME_DISPLAY_INFO (s->f)->scratch_cursor_gc |
| 989 | = XCreateGC (NULL, FRAME_W32_WINDOW (s->f), mask, &xgcv); | 985 | = XCreateGC (NULL, FRAME_W32_WINDOW (s->f), mask, &egc); |
| 990 | 986 | ||
| 991 | s->gc = FRAME_DISPLAY_INFO (s->f)->scratch_cursor_gc; | 987 | s->gc = FRAME_DISPLAY_INFO (s->f)->scratch_cursor_gc; |
| 992 | } | 988 | } |
| @@ -1101,14 +1097,10 @@ w32_compute_glyph_string_overhangs (struct glyph_string *s) | |||
| 1101 | && s->first_glyph->type == CHAR_GLYPH | 1097 | && s->first_glyph->type == CHAR_GLYPH |
| 1102 | && !s->font_not_found_p) | 1098 | && !s->font_not_found_p) |
| 1103 | { | 1099 | { |
| 1104 | unsigned *code = alloca (sizeof (unsigned) * s->nchars); | ||
| 1105 | struct font *font = s->font; | 1100 | struct font *font = s->font; |
| 1106 | struct font_metrics metrics; | 1101 | struct font_metrics metrics; |
| 1107 | int i; | ||
| 1108 | 1102 | ||
| 1109 | for (i = 0; i < s->nchars; i++) | 1103 | font->driver->text_extents (font, s->char2b, s->nchars, &metrics); |
| 1110 | code[i] = s->char2b[i]; | ||
| 1111 | font->driver->text_extents (font, code, s->nchars, &metrics); | ||
| 1112 | s->right_overhang = (metrics.rbearing > metrics.width | 1104 | s->right_overhang = (metrics.rbearing > metrics.width |
| 1113 | ? metrics.rbearing - metrics.width : 0); | 1105 | ? metrics.rbearing - metrics.width : 0); |
| 1114 | s->left_overhang = metrics.lbearing < 0 ? -metrics.lbearing : 0; | 1106 | s->left_overhang = metrics.lbearing < 0 ? -metrics.lbearing : 0; |
| @@ -1353,7 +1345,7 @@ static void | |||
| 1353 | w32_draw_glyphless_glyph_string_foreground (struct glyph_string *s) | 1345 | w32_draw_glyphless_glyph_string_foreground (struct glyph_string *s) |
| 1354 | { | 1346 | { |
| 1355 | struct glyph *glyph = s->first_glyph; | 1347 | struct glyph *glyph = s->first_glyph; |
| 1356 | XChar2b char2b[8]; | 1348 | unsigned char2b[8]; |
| 1357 | int x, i, j; | 1349 | int x, i, j; |
| 1358 | bool with_background; | 1350 | bool with_background; |
| 1359 | 1351 | ||
| @@ -1410,16 +1402,12 @@ w32_draw_glyphless_glyph_string_foreground (struct glyph_string *s) | |||
| 1410 | { | 1402 | { |
| 1411 | struct font *font = s->font; | 1403 | struct font *font = s->font; |
| 1412 | int upper_len = (len + 1) / 2; | 1404 | int upper_len = (len + 1) / 2; |
| 1413 | unsigned code; | ||
| 1414 | HFONT old_font; | 1405 | HFONT old_font; |
| 1415 | 1406 | ||
| 1416 | old_font = SelectObject (s->hdc, FONT_HANDLE (font)); | 1407 | old_font = SelectObject (s->hdc, FONT_HANDLE (font)); |
| 1417 | /* It is certain that all LEN characters in STR are ASCII. */ | 1408 | /* It is certain that all LEN characters in STR are ASCII. */ |
| 1418 | for (j = 0; j < len; j++) | 1409 | for (j = 0; j < len; j++) |
| 1419 | { | 1410 | char2b[j] = font->driver->encode_char (font, str[j]) & 0xFFFF; |
| 1420 | code = font->driver->encode_char (font, str[j]); | ||
| 1421 | STORE_XCHAR2B (char2b + j, code >> 8, code & 0xFF); | ||
| 1422 | } | ||
| 1423 | font->driver->draw (s, 0, upper_len, | 1411 | font->driver->draw (s, 0, upper_len, |
| 1424 | x + glyph->slice.glyphless.upper_xoff, | 1412 | x + glyph->slice.glyphless.upper_xoff, |
| 1425 | s->ybase + glyph->slice.glyphless.upper_yoff, | 1413 | s->ybase + glyph->slice.glyphless.upper_yoff, |
| @@ -1517,7 +1505,7 @@ w32_alloc_lighter_color (struct frame *f, COLORREF *color, | |||
| 1517 | colors in COLORS. On W32, we no longer try to map colors to | 1505 | colors in COLORS. On W32, we no longer try to map colors to |
| 1518 | a palette. */ | 1506 | a palette. */ |
| 1519 | static void | 1507 | static void |
| 1520 | w32_query_colors (struct frame *f, XColor *colors, int ncolors) | 1508 | w32_query_colors (struct frame *f, Emacs_Color *colors, int ncolors) |
| 1521 | { | 1509 | { |
| 1522 | int i; | 1510 | int i; |
| 1523 | 1511 | ||
| @@ -1534,7 +1522,7 @@ w32_query_colors (struct frame *f, XColor *colors, int ncolors) | |||
| 1534 | /* Store F's background color into *BGCOLOR. */ | 1522 | /* Store F's background color into *BGCOLOR. */ |
| 1535 | 1523 | ||
| 1536 | static void | 1524 | static void |
| 1537 | w32_query_frame_background_color (struct frame *f, XColor *bgcolor) | 1525 | w32_query_frame_background_color (struct frame *f, Emacs_Color *bgcolor) |
| 1538 | { | 1526 | { |
| 1539 | bgcolor->pixel = FRAME_BACKGROUND_PIXEL (f); | 1527 | bgcolor->pixel = FRAME_BACKGROUND_PIXEL (f); |
| 1540 | w32_query_colors (f, bgcolor, 1); | 1528 | w32_query_colors (f, bgcolor, 1); |
| @@ -1551,7 +1539,7 @@ static void | |||
| 1551 | w32_setup_relief_color (struct frame *f, struct relief *relief, double factor, | 1539 | w32_setup_relief_color (struct frame *f, struct relief *relief, double factor, |
| 1552 | int delta, COLORREF default_pixel) | 1540 | int delta, COLORREF default_pixel) |
| 1553 | { | 1541 | { |
| 1554 | XGCValues xgcv; | 1542 | Emacs_GC egc; |
| 1555 | struct w32_output *di = f->output_data.w32; | 1543 | struct w32_output *di = f->output_data.w32; |
| 1556 | unsigned long mask = GCForeground; | 1544 | unsigned long mask = GCForeground; |
| 1557 | COLORREF pixel; | 1545 | COLORREF pixel; |
| @@ -1563,22 +1551,21 @@ w32_setup_relief_color (struct frame *f, struct relief *relief, double factor, | |||
| 1563 | /* TODO: Free colors (if using palette)? */ | 1551 | /* TODO: Free colors (if using palette)? */ |
| 1564 | 1552 | ||
| 1565 | /* Allocate new color. */ | 1553 | /* Allocate new color. */ |
| 1566 | xgcv.foreground = default_pixel; | 1554 | egc.foreground = default_pixel; |
| 1567 | pixel = background; | 1555 | pixel = background; |
| 1568 | if (w32_alloc_lighter_color (f, &pixel, factor, delta)) | 1556 | if (w32_alloc_lighter_color (f, &pixel, factor, delta)) |
| 1569 | xgcv.foreground = relief->pixel = pixel; | 1557 | egc.foreground = relief->pixel = pixel; |
| 1570 | 1558 | ||
| 1571 | xgcv.font = NULL; /* avoid compiler warnings */ | ||
| 1572 | if (relief->gc == 0) | 1559 | if (relief->gc == 0) |
| 1573 | { | 1560 | { |
| 1574 | #if 0 /* TODO: stipple */ | 1561 | #if 0 /* TODO: stipple */ |
| 1575 | xgcv.stipple = dpyinfo->gray; | 1562 | egc.stipple = dpyinfo->gray; |
| 1576 | mask |= GCStipple; | 1563 | mask |= GCStipple; |
| 1577 | #endif | 1564 | #endif |
| 1578 | relief->gc = XCreateGC (NULL, FRAME_W32_WINDOW (f), mask, &xgcv); | 1565 | relief->gc = XCreateGC (NULL, FRAME_W32_WINDOW (f), mask, &egc); |
| 1579 | } | 1566 | } |
| 1580 | else | 1567 | else |
| 1581 | XChangeGC (NULL, relief->gc, mask, &xgcv); | 1568 | XChangeGC (NULL, relief->gc, mask, &egc); |
| 1582 | } | 1569 | } |
| 1583 | 1570 | ||
| 1584 | 1571 | ||
| @@ -1627,7 +1614,7 @@ w32_draw_relief_rect (struct frame *f, | |||
| 1627 | RECT *clip_rect) | 1614 | RECT *clip_rect) |
| 1628 | { | 1615 | { |
| 1629 | int i; | 1616 | int i; |
| 1630 | XGCValues gc; | 1617 | Emacs_GC gc; |
| 1631 | HDC hdc = get_frame_dc (f); | 1618 | HDC hdc = get_frame_dc (f); |
| 1632 | 1619 | ||
| 1633 | if (raised_p) | 1620 | if (raised_p) |
| @@ -2286,7 +2273,7 @@ w32_draw_stretch_glyph_string (struct glyph_string *s) | |||
| 2286 | /* Clear rest using the GC of the original non-cursor face. */ | 2273 | /* Clear rest using the GC of the original non-cursor face. */ |
| 2287 | if (width < background_width) | 2274 | if (width < background_width) |
| 2288 | { | 2275 | { |
| 2289 | XGCValues *gc = s->face->gc; | 2276 | Emacs_GC *gc = s->face->gc; |
| 2290 | int y = s->y; | 2277 | int y = s->y; |
| 2291 | int w = background_width - width, h = s->height; | 2278 | int w = background_width - width, h = s->height; |
| 2292 | RECT r; | 2279 | RECT r; |
| @@ -3429,7 +3416,7 @@ static void w32_horizontal_scroll_bar_report_motion (struct frame **, Lisp_Objec | |||
| 3429 | Lisp_Object *, Lisp_Object *, | 3416 | Lisp_Object *, Lisp_Object *, |
| 3430 | Time *); | 3417 | Time *); |
| 3431 | static void | 3418 | static void |
| 3432 | w32_define_cursor (Window window, Cursor cursor) | 3419 | w32_define_cursor (Window window, Emacs_Cursor cursor) |
| 3433 | { | 3420 | { |
| 3434 | PostMessage (window, WM_EMACS_SETCURSOR, (WPARAM) cursor, 0); | 3421 | PostMessage (window, WM_EMACS_SETCURSOR, (WPARAM) cursor, 0); |
| 3435 | } | 3422 | } |
| @@ -5806,7 +5793,7 @@ w32_draw_bar_cursor (struct window *w, struct glyph_row *row, | |||
| 5806 | /* RIF: Define cursor CURSOR on frame F. */ | 5793 | /* RIF: Define cursor CURSOR on frame F. */ |
| 5807 | 5794 | ||
| 5808 | static void | 5795 | static void |
| 5809 | w32_define_frame_cursor (struct frame *f, Cursor cursor) | 5796 | w32_define_frame_cursor (struct frame *f, Emacs_Cursor cursor) |
| 5810 | { | 5797 | { |
| 5811 | w32_define_cursor (FRAME_W32_WINDOW (f), cursor); | 5798 | w32_define_cursor (FRAME_W32_WINDOW (f), cursor); |
| 5812 | } | 5799 | } |
| @@ -6947,7 +6934,7 @@ w32_toggle_invisible_pointer (struct frame *f, bool invisible) | |||
| 6947 | ***********************************************************************/ | 6934 | ***********************************************************************/ |
| 6948 | 6935 | ||
| 6949 | static void | 6936 | static void |
| 6950 | w32_free_pixmap (struct frame *_f, Pixmap pixmap) | 6937 | w32_free_pixmap (struct frame *_f, Emacs_Pixmap pixmap) |
| 6951 | { | 6938 | { |
| 6952 | DeleteObject (pixmap); | 6939 | DeleteObject (pixmap); |
| 6953 | } | 6940 | } |
| @@ -7208,7 +7195,7 @@ w32_term_init (Lisp_Object display_name, char *xrm_option, char *resource_name) | |||
| 7208 | 7195 | ||
| 7209 | /* initialize palette with white and black */ | 7196 | /* initialize palette with white and black */ |
| 7210 | { | 7197 | { |
| 7211 | XColor color; | 7198 | Emacs_Color color; |
| 7212 | w32_defined_color (0, "white", &color, true, false); | 7199 | w32_defined_color (0, "white", &color, true, false); |
| 7213 | w32_defined_color (0, "black", &color, true, false); | 7200 | w32_defined_color (0, "black", &color, true, false); |
| 7214 | } | 7201 | } |
diff --git a/src/w32term.h b/src/w32term.h index a03b9fd3311..729e8d0fd49 100644 --- a/src/w32term.h +++ b/src/w32term.h | |||
| @@ -56,7 +56,7 @@ extern BOOL bUseDflt; | |||
| 56 | 56 | ||
| 57 | struct w32_bitmap_record | 57 | struct w32_bitmap_record |
| 58 | { | 58 | { |
| 59 | Pixmap pixmap; | 59 | Emacs_Pixmap pixmap; |
| 60 | char *file; | 60 | char *file; |
| 61 | HINSTANCE hinst; /* Used to load the file */ | 61 | HINSTANCE hinst; /* Used to load the file */ |
| 62 | int refcount; | 62 | int refcount; |
| @@ -114,10 +114,10 @@ struct w32_display_info | |||
| 114 | Window root_window; | 114 | Window root_window; |
| 115 | 115 | ||
| 116 | /* The cursor to use for vertical scroll bars. */ | 116 | /* The cursor to use for vertical scroll bars. */ |
| 117 | Cursor vertical_scroll_bar_cursor; | 117 | HCURSOR vertical_scroll_bar_cursor; |
| 118 | 118 | ||
| 119 | /* The cursor to use for horizontal scroll bars. */ | 119 | /* The cursor to use for horizontal scroll bars. */ |
| 120 | Cursor horizontal_scroll_bar_cursor; | 120 | HCURSOR horizontal_scroll_bar_cursor; |
| 121 | 121 | ||
| 122 | /* Resource data base */ | 122 | /* Resource data base */ |
| 123 | const char *rdb; | 123 | const char *rdb; |
| @@ -142,7 +142,7 @@ struct w32_display_info | |||
| 142 | int smallest_font_height; | 142 | int smallest_font_height; |
| 143 | 143 | ||
| 144 | /* Reusable Graphics Context for drawing a cursor in a non-default face. */ | 144 | /* Reusable Graphics Context for drawing a cursor in a non-default face. */ |
| 145 | XGCValues *scratch_cursor_gc; | 145 | Emacs_GC *scratch_cursor_gc; |
| 146 | 146 | ||
| 147 | /* Information about the range of text currently shown in | 147 | /* Information about the range of text currently shown in |
| 148 | mouse-face. */ | 148 | mouse-face. */ |
| @@ -241,7 +241,7 @@ extern void w32_set_scroll_bar_default_height (struct frame *); | |||
| 241 | 241 | ||
| 242 | extern struct w32_display_info *w32_term_init (Lisp_Object, | 242 | extern struct w32_display_info *w32_term_init (Lisp_Object, |
| 243 | char *, char *); | 243 | char *, char *); |
| 244 | extern bool w32_defined_color (struct frame *, const char *, XColor *, | 244 | extern bool w32_defined_color (struct frame *, const char *, Emacs_Color *, |
| 245 | bool, bool); | 245 | bool, bool); |
| 246 | extern int w32_display_pixel_height (struct w32_display_info *); | 246 | extern int w32_display_pixel_height (struct w32_display_info *); |
| 247 | extern int w32_display_pixel_width (struct w32_display_info *); | 247 | extern int w32_display_pixel_width (struct w32_display_info *); |
| @@ -308,7 +308,7 @@ struct w32_output | |||
| 308 | HPALETTE old_palette; | 308 | HPALETTE old_palette; |
| 309 | 309 | ||
| 310 | /* Here are the Graphics Contexts for the default font. */ | 310 | /* Here are the Graphics Contexts for the default font. */ |
| 311 | XGCValues *cursor_gc; /* cursor drawing */ | 311 | Emacs_GC *cursor_gc; /* cursor drawing */ |
| 312 | 312 | ||
| 313 | /* The window used for this frame. | 313 | /* The window used for this frame. |
| 314 | May be zero while the frame object is being created | 314 | May be zero while the frame object is being created |
| @@ -348,27 +348,27 @@ struct w32_output | |||
| 348 | COLORREF scroll_bar_background_pixel; | 348 | COLORREF scroll_bar_background_pixel; |
| 349 | 349 | ||
| 350 | /* Descriptor for the cursor in use for this window. */ | 350 | /* Descriptor for the cursor in use for this window. */ |
| 351 | Cursor text_cursor; | 351 | HCURSOR text_cursor; |
| 352 | Cursor nontext_cursor; | 352 | HCURSOR nontext_cursor; |
| 353 | Cursor modeline_cursor; | 353 | HCURSOR modeline_cursor; |
| 354 | Cursor hand_cursor; | 354 | HCURSOR hand_cursor; |
| 355 | Cursor hourglass_cursor; | 355 | HCURSOR hourglass_cursor; |
| 356 | Cursor horizontal_drag_cursor; | 356 | HCURSOR horizontal_drag_cursor; |
| 357 | Cursor vertical_drag_cursor; | 357 | HCURSOR vertical_drag_cursor; |
| 358 | Cursor left_edge_cursor; | 358 | HCURSOR left_edge_cursor; |
| 359 | Cursor top_left_corner_cursor; | 359 | HCURSOR top_left_corner_cursor; |
| 360 | Cursor top_edge_cursor; | 360 | HCURSOR top_edge_cursor; |
| 361 | Cursor top_right_corner_cursor; | 361 | HCURSOR top_right_corner_cursor; |
| 362 | Cursor right_edge_cursor; | 362 | HCURSOR right_edge_cursor; |
| 363 | Cursor bottom_right_corner_cursor; | 363 | HCURSOR bottom_right_corner_cursor; |
| 364 | Cursor bottom_edge_cursor; | 364 | HCURSOR bottom_edge_cursor; |
| 365 | Cursor bottom_left_corner_cursor; | 365 | HCURSOR bottom_left_corner_cursor; |
| 366 | 366 | ||
| 367 | /* Non-zero means hourglass cursor is currently displayed. */ | 367 | /* Non-zero means hourglass cursor is currently displayed. */ |
| 368 | unsigned hourglass_p : 1; | 368 | unsigned hourglass_p : 1; |
| 369 | 369 | ||
| 370 | /* Non-hourglass cursor that is currently active. */ | 370 | /* Non-hourglass cursor that is currently active. */ |
| 371 | Cursor current_cursor; | 371 | HCURSOR current_cursor; |
| 372 | 372 | ||
| 373 | DWORD dwStyle; | 373 | DWORD dwStyle; |
| 374 | 374 | ||
| @@ -388,7 +388,7 @@ struct w32_output | |||
| 388 | /* Relief GCs, colors etc. */ | 388 | /* Relief GCs, colors etc. */ |
| 389 | struct relief | 389 | struct relief |
| 390 | { | 390 | { |
| 391 | XGCValues *gc; | 391 | Emacs_GC *gc; |
| 392 | unsigned long pixel; | 392 | unsigned long pixel; |
| 393 | } | 393 | } |
| 394 | black_relief, white_relief; | 394 | black_relief, white_relief; |
| @@ -721,7 +721,7 @@ extern void complete_deferred_msg (HWND hwnd, UINT msg, LRESULT result); | |||
| 721 | extern BOOL parse_button (int, int, int *, int *); | 721 | extern BOOL parse_button (int, int, int *, int *); |
| 722 | 722 | ||
| 723 | extern void w32_sys_ring_bell (struct frame *f); | 723 | extern void w32_sys_ring_bell (struct frame *f); |
| 724 | extern void w32_query_color (struct frame *, XColor *); | 724 | extern void w32_query_color (struct frame *, Emacs_Color *); |
| 725 | extern void w32_delete_display (struct w32_display_info *dpyinfo); | 725 | extern void w32_delete_display (struct w32_display_info *dpyinfo); |
| 726 | 726 | ||
| 727 | #define FILE_NOTIFICATIONS_SIZE 16384 | 727 | #define FILE_NOTIFICATIONS_SIZE 16384 |
| @@ -805,7 +805,7 @@ typedef struct tagTRACKMOUSEEVENT | |||
| 805 | struct image; | 805 | struct image; |
| 806 | struct face; | 806 | struct face; |
| 807 | 807 | ||
| 808 | XGCValues *XCreateGC (void *, HWND, unsigned long, XGCValues *); | 808 | Emacs_GC *XCreateGC (void *, HWND, unsigned long, Emacs_GC *); |
| 809 | 809 | ||
| 810 | typedef DWORD (WINAPI * ClipboardSequence_Proc) (void); | 810 | typedef DWORD (WINAPI * ClipboardSequence_Proc) (void); |
| 811 | typedef BOOL (WINAPI * AppendMenuW_Proc) ( | 811 | typedef BOOL (WINAPI * AppendMenuW_Proc) ( |
diff --git a/src/window.c b/src/window.c index 30ffad0e513..deeb4f63fe0 100644 --- a/src/window.c +++ b/src/window.c | |||
| @@ -3947,8 +3947,8 @@ set_window_buffer (Lisp_Object window, Lisp_Object buffer, | |||
| 3947 | b->display_error_modiff = 0; | 3947 | b->display_error_modiff = 0; |
| 3948 | 3948 | ||
| 3949 | /* Update time stamps of buffer display. */ | 3949 | /* Update time stamps of buffer display. */ |
| 3950 | if (FIXNUMP (BVAR (b, display_count))) | 3950 | if (INTEGERP (BVAR (b, display_count))) |
| 3951 | bset_display_count (b, make_fixnum (XFIXNUM (BVAR (b, display_count)) + 1)); | 3951 | bset_display_count (b, Fadd1 (BVAR (b, display_count))); |
| 3952 | bset_display_time (b, Fcurrent_time ()); | 3952 | bset_display_time (b, Fcurrent_time ()); |
| 3953 | 3953 | ||
| 3954 | w->window_end_pos = 0; | 3954 | w->window_end_pos = 0; |
| @@ -4089,7 +4089,7 @@ displaying that buffer. */) | |||
| 4089 | return Qt; | 4089 | return Qt; |
| 4090 | } | 4090 | } |
| 4091 | 4091 | ||
| 4092 | if (WINDOWP (object)) | 4092 | if (WINDOW_LIVE_P (object)) |
| 4093 | { | 4093 | { |
| 4094 | struct window *w = XWINDOW (object); | 4094 | struct window *w = XWINDOW (object); |
| 4095 | mark_window_display_accurate (object, false); | 4095 | mark_window_display_accurate (object, false); |
diff --git a/src/window.h b/src/window.h index fdef407041b..6b0f0e5d07c 100644 --- a/src/window.h +++ b/src/window.h | |||
| @@ -595,7 +595,7 @@ wset_next_buffers (struct window *w, Lisp_Object val) | |||
| 595 | #define WINDOW_BUFFER(W) \ | 595 | #define WINDOW_BUFFER(W) \ |
| 596 | (WINDOW_LEAF_P(W) \ | 596 | (WINDOW_LEAF_P(W) \ |
| 597 | ? (W)->contents \ | 597 | ? (W)->contents \ |
| 598 | : Qnil) \ | 598 | : Qnil) |
| 599 | 599 | ||
| 600 | /* Return the canonical column width of the frame of window W. */ | 600 | /* Return the canonical column width of the frame of window W. */ |
| 601 | #define WINDOW_FRAME_COLUMN_WIDTH(W) \ | 601 | #define WINDOW_FRAME_COLUMN_WIDTH(W) \ |
| @@ -649,7 +649,7 @@ wset_next_buffers (struct window *w, Lisp_Object val) | |||
| 649 | #define WINDOW_RIGHTMOST_P(W) \ | 649 | #define WINDOW_RIGHTMOST_P(W) \ |
| 650 | (WINDOW_RIGHT_PIXEL_EDGE (W) \ | 650 | (WINDOW_RIGHT_PIXEL_EDGE (W) \ |
| 651 | == (WINDOW_RIGHT_PIXEL_EDGE \ | 651 | == (WINDOW_RIGHT_PIXEL_EDGE \ |
| 652 | (XWINDOW (FRAME_ROOT_WINDOW (WINDOW_XFRAME (W)))))) \ | 652 | (XWINDOW (FRAME_ROOT_WINDOW (WINDOW_XFRAME (W)))))) |
| 653 | 653 | ||
| 654 | /* True if window W has no other windows below it on its frame (the | 654 | /* True if window W has no other windows below it on its frame (the |
| 655 | minibuffer window is not counted in this respect unless W itself is a | 655 | minibuffer window is not counted in this respect unless W itself is a |
| @@ -657,13 +657,13 @@ wset_next_buffers (struct window *w, Lisp_Object val) | |||
| 657 | #define WINDOW_BOTTOMMOST_P(W) \ | 657 | #define WINDOW_BOTTOMMOST_P(W) \ |
| 658 | (WINDOW_BOTTOM_PIXEL_EDGE (W) \ | 658 | (WINDOW_BOTTOM_PIXEL_EDGE (W) \ |
| 659 | == (WINDOW_BOTTOM_PIXEL_EDGE \ | 659 | == (WINDOW_BOTTOM_PIXEL_EDGE \ |
| 660 | (XWINDOW (FRAME_ROOT_WINDOW (WINDOW_XFRAME (W)))))) \ | 660 | (XWINDOW (FRAME_ROOT_WINDOW (WINDOW_XFRAME (W)))))) |
| 661 | 661 | ||
| 662 | /* True if window W takes up the full width of its frame. */ | 662 | /* True if window W takes up the full width of its frame. */ |
| 663 | #define WINDOW_FULL_WIDTH_P(W) \ | 663 | #define WINDOW_FULL_WIDTH_P(W) \ |
| 664 | (WINDOW_PIXEL_WIDTH (W) \ | 664 | (WINDOW_PIXEL_WIDTH (W) \ |
| 665 | == (WINDOW_PIXEL_WIDTH \ | 665 | == (WINDOW_PIXEL_WIDTH \ |
| 666 | (XWINDOW (FRAME_ROOT_WINDOW (WINDOW_XFRAME (W)))))) \ | 666 | (XWINDOW (FRAME_ROOT_WINDOW (WINDOW_XFRAME (W)))))) |
| 667 | 667 | ||
| 668 | /* Width of right divider of window W. */ | 668 | /* Width of right divider of window W. */ |
| 669 | #define WINDOW_RIGHT_DIVIDER_WIDTH(W) \ | 669 | #define WINDOW_RIGHT_DIVIDER_WIDTH(W) \ |
| @@ -1122,7 +1122,7 @@ struct glyph *get_phys_cursor_glyph (struct window *w); | |||
| 1122 | 1122 | ||
| 1123 | /* True if WINDOW is a valid window. */ | 1123 | /* True if WINDOW is a valid window. */ |
| 1124 | #define WINDOW_VALID_P(WINDOW) \ | 1124 | #define WINDOW_VALID_P(WINDOW) \ |
| 1125 | (WINDOWP (WINDOW) && !NILP (XWINDOW (WINDOW)->contents)) \ | 1125 | (WINDOWP (WINDOW) && !NILP (XWINDOW (WINDOW)->contents)) |
| 1126 | 1126 | ||
| 1127 | /* A window of any sort, leaf or interior, is "valid" if its | 1127 | /* A window of any sort, leaf or interior, is "valid" if its |
| 1128 | contents slot is non-nil. */ | 1128 | contents slot is non-nil. */ |
diff --git a/src/xdisp.c b/src/xdisp.c index 1aa677fcc78..5f438152341 100644 --- a/src/xdisp.c +++ b/src/xdisp.c | |||
| @@ -376,17 +376,26 @@ static Lisp_Object list_of_error; | |||
| 376 | || it->s[IT_BYTEPOS (*it)] == '\t')) \ | 376 | || it->s[IT_BYTEPOS (*it)] == '\t')) \ |
| 377 | || (IT_BYTEPOS (*it) < ZV_BYTE \ | 377 | || (IT_BYTEPOS (*it) < ZV_BYTE \ |
| 378 | && (*BYTE_POS_ADDR (IT_BYTEPOS (*it)) == ' ' \ | 378 | && (*BYTE_POS_ADDR (IT_BYTEPOS (*it)) == ' ' \ |
| 379 | || *BYTE_POS_ADDR (IT_BYTEPOS (*it)) == '\t')))) \ | 379 | || *BYTE_POS_ADDR (IT_BYTEPOS (*it)) == '\t')))) |
| 380 | 380 | ||
| 381 | /* Test all the conditions needed to print the fill column indicator. */ | 381 | /* If all the conditions needed to print the fill column indicator are |
| 382 | #define FILL_COLUMN_INDICATOR_NEEDED(it) \ | 382 | met, return the (nonnegative) column number, else return a negative |
| 383 | Vdisplay_fill_column_indicator \ | 383 | value. */ |
| 384 | && (it->continuation_lines_width == 0) \ | 384 | static int |
| 385 | && (!NILP (Vdisplay_fill_column_indicator_column)) \ | 385 | fill_column_indicator_column (struct it *it) |
| 386 | && FIXNATP (Vdisplay_fill_column_indicator_character) \ | 386 | { |
| 387 | && ((EQ (Vdisplay_fill_column_indicator_column, Qt) \ | 387 | if (Vdisplay_fill_column_indicator |
| 388 | && FIXNATP (BVAR (current_buffer, fill_column))) \ | 388 | && it->continuation_lines_width == 0 |
| 389 | || (FIXNATP (Vdisplay_fill_column_indicator_column))) | 389 | && CHARACTERP (Vdisplay_fill_column_indicator_character)) |
| 390 | { | ||
| 391 | Lisp_Object col = (EQ (Vdisplay_fill_column_indicator_column, Qt) | ||
| 392 | ? BVAR (current_buffer, fill_column) | ||
| 393 | : Vdisplay_fill_column_indicator_column); | ||
| 394 | if (RANGED_FIXNUMP (0, col, INT_MAX)) | ||
| 395 | return XFIXNUM (col); | ||
| 396 | } | ||
| 397 | return -1; | ||
| 398 | } | ||
| 390 | 399 | ||
| 391 | /* True means print newline to stdout before next mini-buffer message. */ | 400 | /* True means print newline to stdout before next mini-buffer message. */ |
| 392 | 401 | ||
| @@ -2080,7 +2089,7 @@ frame_to_window_pixel_xy (struct window *w, int *x, int *y) | |||
| 2080 | int | 2089 | int |
| 2081 | get_glyph_string_clip_rects (struct glyph_string *s, NativeRectangle *rects, int n) | 2090 | get_glyph_string_clip_rects (struct glyph_string *s, NativeRectangle *rects, int n) |
| 2082 | { | 2091 | { |
| 2083 | XRectangle r; | 2092 | Emacs_Rectangle r; |
| 2084 | 2093 | ||
| 2085 | if (n <= 0) | 2094 | if (n <= 0) |
| 2086 | return 0; | 2095 | return 0; |
| @@ -2142,7 +2151,7 @@ get_glyph_string_clip_rects (struct glyph_string *s, NativeRectangle *rects, int | |||
| 2142 | take the intersection with the rectangle of the cursor. */ | 2151 | take the intersection with the rectangle of the cursor. */ |
| 2143 | if (s->for_overlaps & OVERLAPS_ERASED_CURSOR) | 2152 | if (s->for_overlaps & OVERLAPS_ERASED_CURSOR) |
| 2144 | { | 2153 | { |
| 2145 | XRectangle rc, r_save = r; | 2154 | Emacs_Rectangle rc, r_save = r; |
| 2146 | 2155 | ||
| 2147 | rc.x = WINDOW_TEXT_TO_FRAME_PIXEL_X (s->w, s->w->phys_cursor.x); | 2156 | rc.x = WINDOW_TEXT_TO_FRAME_PIXEL_X (s->w, s->w->phys_cursor.x); |
| 2148 | rc.y = s->w->phys_cursor.y; | 2157 | rc.y = s->w->phys_cursor.y; |
| @@ -2208,7 +2217,7 @@ get_glyph_string_clip_rects (struct glyph_string *s, NativeRectangle *rects, int | |||
| 2208 | 2217 | ||
| 2209 | if (s->row->clip) | 2218 | if (s->row->clip) |
| 2210 | { | 2219 | { |
| 2211 | XRectangle r_save = r; | 2220 | Emacs_Rectangle r_save = r; |
| 2212 | 2221 | ||
| 2213 | if (! gui_intersect_rectangles (&r_save, s->row->clip, &r)) | 2222 | if (! gui_intersect_rectangles (&r_save, s->row->clip, &r)) |
| 2214 | r.width = 0; | 2223 | r.width = 0; |
| @@ -2217,8 +2226,8 @@ get_glyph_string_clip_rects (struct glyph_string *s, NativeRectangle *rects, int | |||
| 2217 | if ((s->for_overlaps & OVERLAPS_BOTH) == 0 | 2226 | if ((s->for_overlaps & OVERLAPS_BOTH) == 0 |
| 2218 | || ((s->for_overlaps & OVERLAPS_BOTH) == OVERLAPS_BOTH && n == 1)) | 2227 | || ((s->for_overlaps & OVERLAPS_BOTH) == OVERLAPS_BOTH && n == 1)) |
| 2219 | { | 2228 | { |
| 2220 | #ifdef CONVERT_FROM_XRECT | 2229 | #ifdef CONVERT_FROM_EMACS_RECT |
| 2221 | CONVERT_FROM_XRECT (r, *rects); | 2230 | CONVERT_FROM_EMACS_RECT (r, *rects); |
| 2222 | #else | 2231 | #else |
| 2223 | *rects = r; | 2232 | *rects = r; |
| 2224 | #endif | 2233 | #endif |
| @@ -2230,10 +2239,10 @@ get_glyph_string_clip_rects (struct glyph_string *s, NativeRectangle *rects, int | |||
| 2230 | multiple clipping rectangles, we exclude the row of the glyph | 2239 | multiple clipping rectangles, we exclude the row of the glyph |
| 2231 | string from the clipping rectangle. This is to avoid drawing | 2240 | string from the clipping rectangle. This is to avoid drawing |
| 2232 | the same text on the environment with anti-aliasing. */ | 2241 | the same text on the environment with anti-aliasing. */ |
| 2233 | #ifdef CONVERT_FROM_XRECT | 2242 | #ifdef CONVERT_FROM_EMACS_RECT |
| 2234 | XRectangle rs[2]; | 2243 | Emacs_Rectangle rs[2]; |
| 2235 | #else | 2244 | #else |
| 2236 | XRectangle *rs = rects; | 2245 | Emacs_Rectangle *rs = rects; |
| 2237 | #endif | 2246 | #endif |
| 2238 | int i = 0, row_y = WINDOW_TO_FRAME_PIXEL_Y (s->w, s->row->y); | 2247 | int i = 0, row_y = WINDOW_TO_FRAME_PIXEL_Y (s->w, s->row->y); |
| 2239 | 2248 | ||
| @@ -2266,9 +2275,9 @@ get_glyph_string_clip_rects (struct glyph_string *s, NativeRectangle *rects, int | |||
| 2266 | } | 2275 | } |
| 2267 | 2276 | ||
| 2268 | n = i; | 2277 | n = i; |
| 2269 | #ifdef CONVERT_FROM_XRECT | 2278 | #ifdef CONVERT_FROM_EMACS_RECT |
| 2270 | for (i = 0; i < n; i++) | 2279 | for (i = 0; i < n; i++) |
| 2271 | CONVERT_FROM_XRECT (rs[i], rects[i]); | 2280 | CONVERT_FROM_EMACS_RECT (rs[i], rects[i]); |
| 2272 | #endif | 2281 | #endif |
| 2273 | return n; | 2282 | return n; |
| 2274 | } | 2283 | } |
| @@ -13986,12 +13995,6 @@ redisplay_internal (void) | |||
| 13986 | #if defined (USE_X_TOOLKIT) || defined (USE_GTK) || defined (HAVE_NS) | 13995 | #if defined (USE_X_TOOLKIT) || defined (USE_GTK) || defined (HAVE_NS) |
| 13987 | if (popup_activated ()) | 13996 | if (popup_activated ()) |
| 13988 | { | 13997 | { |
| 13989 | #ifdef NS_IMPL_COCOA | ||
| 13990 | /* On macOS we may have disabled screen updates due to window | ||
| 13991 | resizing. We should re-enable them so the popup can be | ||
| 13992 | displayed. */ | ||
| 13993 | ns_enable_screen_updates (); | ||
| 13994 | #endif | ||
| 13995 | return; | 13998 | return; |
| 13996 | } | 13999 | } |
| 13997 | #endif | 14000 | #endif |
| @@ -14794,12 +14797,6 @@ unwind_redisplay (void) | |||
| 14794 | { | 14797 | { |
| 14795 | redisplaying_p = false; | 14798 | redisplaying_p = false; |
| 14796 | unblock_buffer_flips (); | 14799 | unblock_buffer_flips (); |
| 14797 | #ifdef NS_IMPL_COCOA | ||
| 14798 | /* On macOS we may have disabled screen updates due to window | ||
| 14799 | resizing. When redisplay completes we want to re-enable | ||
| 14800 | them. */ | ||
| 14801 | ns_enable_screen_updates (); | ||
| 14802 | #endif | ||
| 14803 | } | 14800 | } |
| 14804 | 14801 | ||
| 14805 | 14802 | ||
| @@ -20172,18 +20169,11 @@ append_space_for_newline (struct it *it, bool default_face_p) | |||
| 20172 | /* Corner case for when display-fill-column-indicator-mode | 20169 | /* Corner case for when display-fill-column-indicator-mode |
| 20173 | is active and the extra character should be added in the | 20170 | is active and the extra character should be added in the |
| 20174 | same place than the line. */ | 20171 | same place than the line. */ |
| 20175 | if ((it->w->pseudo_window_p == 0) | 20172 | int indicator_column = (it->w->pseudo_window_p == 0 |
| 20176 | && FILL_COLUMN_INDICATOR_NEEDED(it)) | 20173 | ? fill_column_indicator_column (it) |
| 20174 | : -1); | ||
| 20175 | if (0 <= indicator_column) | ||
| 20177 | { | 20176 | { |
| 20178 | int fill_column_indicator_column = -1; | ||
| 20179 | |||
| 20180 | if (EQ (Vdisplay_fill_column_indicator_column, Qt)) | ||
| 20181 | fill_column_indicator_column = | ||
| 20182 | XFIXNAT (BVAR (current_buffer, fill_column)); | ||
| 20183 | else | ||
| 20184 | fill_column_indicator_column = | ||
| 20185 | XFIXNAT (Vdisplay_fill_column_indicator_column); | ||
| 20186 | |||
| 20187 | struct font *font = | 20177 | struct font *font = |
| 20188 | default_face->font ? | 20178 | default_face->font ? |
| 20189 | default_face->font : FRAME_FONT (it->f); | 20179 | default_face->font : FRAME_FONT (it->f); |
| @@ -20191,18 +20181,19 @@ append_space_for_newline (struct it *it, bool default_face_p) | |||
| 20191 | font->average_width ? | 20181 | font->average_width ? |
| 20192 | font->average_width : font->space_width; | 20182 | font->average_width : font->space_width; |
| 20193 | 20183 | ||
| 20194 | const int column_x = | 20184 | int column_x; |
| 20195 | char_width * fill_column_indicator_column + | 20185 | if (!INT_MULTIPLY_WRAPV (indicator_column, char_width, |
| 20196 | it->lnum_pixel_width; | 20186 | &column_x) |
| 20197 | 20187 | && !INT_ADD_WRAPV (it->lnum_pixel_width, column_x, | |
| 20198 | if (it->current_x == column_x) | 20188 | &column_x) |
| 20189 | && it->current_x == column_x) | ||
| 20199 | { | 20190 | { |
| 20200 | it->c = it->char_to_display = | 20191 | it->c = it->char_to_display = |
| 20201 | XFIXNAT (Vdisplay_fill_column_indicator_character); | 20192 | XFIXNAT (Vdisplay_fill_column_indicator_character); |
| 20202 | it->face_id = | 20193 | it->face_id = |
| 20203 | merge_faces (it->w, Qfill_column_indicator, | 20194 | merge_faces (it->w, Qfill_column_indicator, |
| 20204 | 0, saved_face_id); | 20195 | 0, saved_face_id); |
| 20205 | face = FACE_FROM_ID(it->f, it->face_id); | 20196 | face = FACE_FROM_ID (it->f, it->face_id); |
| 20206 | goto produce_glyphs; | 20197 | goto produce_glyphs; |
| 20207 | } | 20198 | } |
| 20208 | } | 20199 | } |
| @@ -20434,30 +20425,22 @@ extend_face_to_end_of_line (struct it *it) | |||
| 20434 | /* Display fill column indicator if not in modeline or | 20425 | /* Display fill column indicator if not in modeline or |
| 20435 | toolbar and display fill column indicator mode is | 20426 | toolbar and display fill column indicator mode is |
| 20436 | active. */ | 20427 | active. */ |
| 20437 | if ((it->w->pseudo_window_p == 0) | 20428 | int indicator_column = (it->w->pseudo_window_p == 0 |
| 20438 | && FILL_COLUMN_INDICATOR_NEEDED(it)) | 20429 | ? fill_column_indicator_column (it) |
| 20430 | : -1); | ||
| 20431 | if (0 <= indicator_column) | ||
| 20439 | { | 20432 | { |
| 20440 | int fill_column_indicator_column = -1; | ||
| 20441 | |||
| 20442 | if (EQ (Vdisplay_fill_column_indicator_column, Qt)) | ||
| 20443 | fill_column_indicator_column = | ||
| 20444 | XFIXNAT (BVAR (current_buffer, fill_column)); | ||
| 20445 | else | ||
| 20446 | fill_column_indicator_column = | ||
| 20447 | XFIXNAT (Vdisplay_fill_column_indicator_column); | ||
| 20448 | |||
| 20449 | struct font *font = | 20433 | struct font *font = |
| 20450 | default_face->font ? default_face->font : FRAME_FONT (f); | 20434 | default_face->font ? default_face->font : FRAME_FONT (f); |
| 20451 | const int char_width = | 20435 | const int char_width = |
| 20452 | font->average_width ? | 20436 | font->average_width ? |
| 20453 | font->average_width : font->space_width; | 20437 | font->average_width : font->space_width; |
| 20454 | 20438 | ||
| 20455 | const int column_x = | 20439 | int column_x; |
| 20456 | char_width * fill_column_indicator_column + | 20440 | if (!INT_MULTIPLY_WRAPV (indicator_column, char_width, &column_x) |
| 20457 | it->lnum_pixel_width; | 20441 | && !INT_ADD_WRAPV (it->lnum_pixel_width, column_x, &column_x) |
| 20458 | 20442 | && it->current_x <= column_x | |
| 20459 | if ((it->current_x <= column_x) | 20443 | && column_x <= it->last_visible_x) |
| 20460 | && (column_x <= it->last_visible_x)) | ||
| 20461 | { | 20444 | { |
| 20462 | const char saved_char = it->char_to_display; | 20445 | const char saved_char = it->char_to_display; |
| 20463 | const struct text_pos saved_pos = it->position; | 20446 | const struct text_pos saved_pos = it->position; |
| @@ -20637,45 +20620,33 @@ extend_face_to_end_of_line (struct it *it) | |||
| 20637 | it->face_id = face->id; | 20620 | it->face_id = face->id; |
| 20638 | 20621 | ||
| 20639 | /* Display fill-column indicator if needed. */ | 20622 | /* Display fill-column indicator if needed. */ |
| 20640 | if (FILL_COLUMN_INDICATOR_NEEDED(it)) | 20623 | int indicator_column = fill_column_indicator_column (it); |
| 20624 | if (0 <= indicator_column | ||
| 20625 | && INT_ADD_WRAPV (it->lnum_pixel_width, indicator_column, | ||
| 20626 | &indicator_column)) | ||
| 20627 | indicator_column = -1; | ||
| 20628 | do | ||
| 20641 | { | 20629 | { |
| 20642 | int fill_column_indicator_column = -1; | 20630 | int saved_face_id; |
| 20631 | bool indicate = it->current_x == indicator_column; | ||
| 20632 | if (indicate) | ||
| 20633 | { | ||
| 20634 | saved_face_id = it->face_id; | ||
| 20635 | it->face_id = | ||
| 20636 | merge_faces (it->w, Qfill_column_indicator, 0, saved_face_id); | ||
| 20637 | it->c = it->char_to_display = | ||
| 20638 | XFIXNAT (Vdisplay_fill_column_indicator_character); | ||
| 20639 | } | ||
| 20643 | 20640 | ||
| 20644 | /* Vdisplay_fill_column_indicator_column accepts the special | 20641 | PRODUCE_GLYPHS (it); |
| 20645 | value t to use the default fill-column variable. The | ||
| 20646 | conditions are all defined in the macro | ||
| 20647 | FILL_COLUMN_INDICATOR_NEEDED. */ | ||
| 20648 | if (EQ (Vdisplay_fill_column_indicator_column, Qt)) | ||
| 20649 | fill_column_indicator_column = | ||
| 20650 | XFIXNAT (BVAR (current_buffer, fill_column)) + it->lnum_pixel_width; | ||
| 20651 | else | ||
| 20652 | fill_column_indicator_column = | ||
| 20653 | XFIXNAT (Vdisplay_fill_column_indicator_column) + it->lnum_pixel_width; | ||
| 20654 | 20642 | ||
| 20655 | do | 20643 | if (indicate) |
| 20656 | { | 20644 | { |
| 20657 | if (it->current_x == fill_column_indicator_column) | 20645 | it->face_id = saved_face_id; |
| 20658 | { | 20646 | it->c = it->char_to_display = ' '; |
| 20659 | const int saved_face_id = it->face_id; | 20647 | } |
| 20660 | it->face_id = | ||
| 20661 | merge_faces (it->w, Qfill_column_indicator, 0, saved_face_id); | ||
| 20662 | it->c = it->char_to_display = | ||
| 20663 | XFIXNAT (Vdisplay_fill_column_indicator_character); | ||
| 20664 | PRODUCE_GLYPHS (it); | ||
| 20665 | it->face_id = saved_face_id; | ||
| 20666 | it->c = it->char_to_display = ' '; | ||
| 20667 | } | ||
| 20668 | else | ||
| 20669 | PRODUCE_GLYPHS (it); | ||
| 20670 | } while (it->current_x <= it->last_visible_x); | ||
| 20671 | } | 20648 | } |
| 20672 | else | 20649 | while (it->current_x <= it->last_visible_x); |
| 20673 | { | ||
| 20674 | do | ||
| 20675 | { | ||
| 20676 | PRODUCE_GLYPHS (it); | ||
| 20677 | } while (it->current_x <= it->last_visible_x); | ||
| 20678 | } | ||
| 20679 | 20650 | ||
| 20680 | if (WINDOW_RIGHT_MARGIN_WIDTH (it->w) > 0 | 20651 | if (WINDOW_RIGHT_MARGIN_WIDTH (it->w) > 0 |
| 20681 | && (it->glyph_row->used[RIGHT_MARGIN_AREA] | 20652 | && (it->glyph_row->used[RIGHT_MARGIN_AREA] |
| @@ -25914,7 +25885,7 @@ dump_glyph_string (struct glyph_string *s) | |||
| 25914 | #endif /* GLYPH_DEBUG */ | 25885 | #endif /* GLYPH_DEBUG */ |
| 25915 | 25886 | ||
| 25916 | /* Initialize glyph string S. CHAR2B is a suitably allocated vector | 25887 | /* Initialize glyph string S. CHAR2B is a suitably allocated vector |
| 25917 | of XChar2b structures for S; it can't be allocated in | 25888 | of 2-byte unsigned integers for S; it can't be allocated in |
| 25918 | init_glyph_string because it must be allocated via `alloca'. W | 25889 | init_glyph_string because it must be allocated via `alloca'. W |
| 25919 | is the window on which S is drawn. ROW and AREA are the glyph row | 25890 | is the window on which S is drawn. ROW and AREA are the glyph row |
| 25920 | and area within the row from which S is constructed. START is the | 25891 | and area within the row from which S is constructed. START is the |
| @@ -25944,7 +25915,7 @@ init_glyph_string (struct glyph_string *s, | |||
| 25944 | #ifdef HAVE_NTGUI | 25915 | #ifdef HAVE_NTGUI |
| 25945 | HDC hdc, | 25916 | HDC hdc, |
| 25946 | #endif | 25917 | #endif |
| 25947 | XChar2b *char2b, struct window *w, struct glyph_row *row, | 25918 | unsigned *char2b, struct window *w, struct glyph_row *row, |
| 25948 | enum glyph_row_area area, int start, enum draw_glyphs_face hl) | 25919 | enum glyph_row_area area, int start, enum draw_glyphs_face hl) |
| 25949 | { | 25920 | { |
| 25950 | memset (s, 0, sizeof *s); | 25921 | memset (s, 0, sizeof *s); |
| @@ -26023,7 +25994,7 @@ append_glyph_string (struct glyph_string **head, struct glyph_string **tail, | |||
| 26023 | 25994 | ||
| 26024 | static struct face * | 25995 | static struct face * |
| 26025 | get_char_face_and_encoding (struct frame *f, int c, int face_id, | 25996 | get_char_face_and_encoding (struct frame *f, int c, int face_id, |
| 26026 | XChar2b *char2b, bool display_p) | 25997 | unsigned *char2b, bool display_p) |
| 26027 | { | 25998 | { |
| 26028 | struct face *face = FACE_FROM_ID (f, face_id); | 25999 | struct face *face = FACE_FROM_ID (f, face_id); |
| 26029 | unsigned code = 0; | 26000 | unsigned code = 0; |
| @@ -26035,7 +26006,8 @@ get_char_face_and_encoding (struct frame *f, int c, int face_id, | |||
| 26035 | if (code == FONT_INVALID_CODE) | 26006 | if (code == FONT_INVALID_CODE) |
| 26036 | code = 0; | 26007 | code = 0; |
| 26037 | } | 26008 | } |
| 26038 | STORE_XCHAR2B (char2b, (code >> 8), (code & 0xFF)); | 26009 | /* Ensure that the code is only 2 bytes wide. */ |
| 26010 | *char2b = code & 0xFFFF; | ||
| 26039 | 26011 | ||
| 26040 | /* Make sure X resources of the face are allocated. */ | 26012 | /* Make sure X resources of the face are allocated. */ |
| 26041 | #ifdef HAVE_X_WINDOWS | 26013 | #ifdef HAVE_X_WINDOWS |
| @@ -26056,7 +26028,7 @@ get_char_face_and_encoding (struct frame *f, int c, int face_id, | |||
| 26056 | 26028 | ||
| 26057 | static struct face * | 26029 | static struct face * |
| 26058 | get_glyph_face_and_encoding (struct frame *f, struct glyph *glyph, | 26030 | get_glyph_face_and_encoding (struct frame *f, struct glyph *glyph, |
| 26059 | XChar2b *char2b) | 26031 | unsigned *char2b) |
| 26060 | { | 26032 | { |
| 26061 | struct face *face; | 26033 | struct face *face; |
| 26062 | unsigned code = 0; | 26034 | unsigned code = 0; |
| @@ -26078,7 +26050,8 @@ get_glyph_face_and_encoding (struct frame *f, struct glyph *glyph, | |||
| 26078 | code = 0; | 26050 | code = 0; |
| 26079 | } | 26051 | } |
| 26080 | 26052 | ||
| 26081 | STORE_XCHAR2B (char2b, (code >> 8), (code & 0xFF)); | 26053 | /* Ensure that the code is only 2 bytes wide. */ |
| 26054 | *char2b = code & 0xFFFF; | ||
| 26082 | return face; | 26055 | return face; |
| 26083 | } | 26056 | } |
| 26084 | 26057 | ||
| @@ -26087,7 +26060,7 @@ get_glyph_face_and_encoding (struct frame *f, struct glyph *glyph, | |||
| 26087 | Return true iff FONT has a glyph for C. */ | 26060 | Return true iff FONT has a glyph for C. */ |
| 26088 | 26061 | ||
| 26089 | static bool | 26062 | static bool |
| 26090 | get_char_glyph_code (int c, struct font *font, XChar2b *char2b) | 26063 | get_char_glyph_code (int c, struct font *font, unsigned *char2b) |
| 26091 | { | 26064 | { |
| 26092 | unsigned code; | 26065 | unsigned code; |
| 26093 | 26066 | ||
| @@ -26098,7 +26071,9 @@ get_char_glyph_code (int c, struct font *font, XChar2b *char2b) | |||
| 26098 | 26071 | ||
| 26099 | if (code == FONT_INVALID_CODE) | 26072 | if (code == FONT_INVALID_CODE) |
| 26100 | return false; | 26073 | return false; |
| 26101 | STORE_XCHAR2B (char2b, (code >> 8), (code & 0xFF)); | 26074 | |
| 26075 | /* Ensure that the code is only 2 bytes wide. */ | ||
| 26076 | *char2b = code & 0xFFFF; | ||
| 26102 | return true; | 26077 | return true; |
| 26103 | } | 26078 | } |
| 26104 | 26079 | ||
| @@ -26211,7 +26186,8 @@ fill_gstring_glyph_string (struct glyph_string *s, int face_id, | |||
| 26211 | Lisp_Object lglyph = LGSTRING_GLYPH (lgstring, i); | 26186 | Lisp_Object lglyph = LGSTRING_GLYPH (lgstring, i); |
| 26212 | unsigned code = LGLYPH_CODE (lglyph); | 26187 | unsigned code = LGLYPH_CODE (lglyph); |
| 26213 | 26188 | ||
| 26214 | STORE_XCHAR2B ((s->char2b + i), code >> 8, code & 0xFF); | 26189 | /* Ensure that the code is only 2 bytes wide. */ |
| 26190 | s->char2b[i] = code & 0xFFFF; | ||
| 26215 | } | 26191 | } |
| 26216 | s->width = composition_gstring_width (lgstring, s->cmp_from, s->cmp_to, NULL); | 26192 | s->width = composition_gstring_width (lgstring, s->cmp_from, s->cmp_to, NULL); |
| 26217 | return glyph - s->row->glyphs[s->area]; | 26193 | return glyph - s->row->glyphs[s->area]; |
| @@ -26390,17 +26366,16 @@ fill_stretch_glyph_string (struct glyph_string *s, int start, int end) | |||
| 26390 | } | 26366 | } |
| 26391 | 26367 | ||
| 26392 | static struct font_metrics * | 26368 | static struct font_metrics * |
| 26393 | get_per_char_metric (struct font *font, XChar2b *char2b) | 26369 | get_per_char_metric (struct font *font, const unsigned *char2b) |
| 26394 | { | 26370 | { |
| 26395 | static struct font_metrics metrics; | 26371 | static struct font_metrics metrics; |
| 26396 | unsigned code; | ||
| 26397 | 26372 | ||
| 26398 | if (! font) | 26373 | if (! font) |
| 26399 | return NULL; | 26374 | return NULL; |
| 26400 | code = (XCHAR2B_BYTE1 (char2b) << 8) | XCHAR2B_BYTE2 (char2b); | 26375 | if (*char2b == FONT_INVALID_CODE) |
| 26401 | if (code == FONT_INVALID_CODE) | ||
| 26402 | return NULL; | 26376 | return NULL; |
| 26403 | font->driver->text_extents (font, &code, 1, &metrics); | 26377 | |
| 26378 | font->driver->text_extents (font, char2b, 1, &metrics); | ||
| 26404 | return &metrics; | 26379 | return &metrics; |
| 26405 | } | 26380 | } |
| 26406 | 26381 | ||
| @@ -26418,7 +26393,7 @@ normal_char_ascent_descent (struct font *font, int c, int *ascent, int *descent) | |||
| 26418 | 26393 | ||
| 26419 | if (FONT_TOO_HIGH (font)) | 26394 | if (FONT_TOO_HIGH (font)) |
| 26420 | { | 26395 | { |
| 26421 | XChar2b char2b; | 26396 | unsigned char2b; |
| 26422 | 26397 | ||
| 26423 | /* Get metrics of C, defaulting to a reasonably sized ASCII | 26398 | /* Get metrics of C, defaulting to a reasonably sized ASCII |
| 26424 | character. */ | 26399 | character. */ |
| @@ -26465,7 +26440,7 @@ gui_get_glyph_overhangs (struct glyph *glyph, struct frame *f, int *left, int *r | |||
| 26465 | 26440 | ||
| 26466 | if (glyph->type == CHAR_GLYPH) | 26441 | if (glyph->type == CHAR_GLYPH) |
| 26467 | { | 26442 | { |
| 26468 | XChar2b char2b; | 26443 | unsigned char2b; |
| 26469 | struct face *face = get_glyph_face_and_encoding (f, glyph, &char2b); | 26444 | struct face *face = get_glyph_face_and_encoding (f, glyph, &char2b); |
| 26470 | if (face->font) | 26445 | if (face->font) |
| 26471 | { | 26446 | { |
| @@ -26779,7 +26754,7 @@ compute_overhangs_and_x (struct glyph_string *s, int x, bool backward_p) | |||
| 26779 | do \ | 26754 | do \ |
| 26780 | { \ | 26755 | { \ |
| 26781 | int face_id; \ | 26756 | int face_id; \ |
| 26782 | XChar2b *char2b; \ | 26757 | unsigned *char2b; \ |
| 26783 | \ | 26758 | \ |
| 26784 | face_id = (row)->glyphs[area][START].face_id; \ | 26759 | face_id = (row)->glyphs[area][START].face_id; \ |
| 26785 | \ | 26760 | \ |
| @@ -26808,7 +26783,7 @@ compute_overhangs_and_x (struct glyph_string *s, int x, bool backward_p) | |||
| 26808 | struct face *base_face = FACE_FROM_ID (f, face_id); \ | 26783 | struct face *base_face = FACE_FROM_ID (f, face_id); \ |
| 26809 | ptrdiff_t cmp_id = (row)->glyphs[area][START].u.cmp.id; \ | 26784 | ptrdiff_t cmp_id = (row)->glyphs[area][START].u.cmp.id; \ |
| 26810 | struct composition *cmp = composition_table[cmp_id]; \ | 26785 | struct composition *cmp = composition_table[cmp_id]; \ |
| 26811 | XChar2b *char2b; \ | 26786 | unsigned *char2b; \ |
| 26812 | struct glyph_string *first_s = NULL; \ | 26787 | struct glyph_string *first_s = NULL; \ |
| 26813 | int n; \ | 26788 | int n; \ |
| 26814 | \ | 26789 | \ |
| @@ -26840,7 +26815,7 @@ compute_overhangs_and_x (struct glyph_string *s, int x, bool backward_p) | |||
| 26840 | #define BUILD_GSTRING_GLYPH_STRING(START, END, HEAD, TAIL, HL, X, LAST_X) \ | 26815 | #define BUILD_GSTRING_GLYPH_STRING(START, END, HEAD, TAIL, HL, X, LAST_X) \ |
| 26841 | do { \ | 26816 | do { \ |
| 26842 | int face_id; \ | 26817 | int face_id; \ |
| 26843 | XChar2b *char2b; \ | 26818 | unsigned *char2b; \ |
| 26844 | Lisp_Object gstring; \ | 26819 | Lisp_Object gstring; \ |
| 26845 | \ | 26820 | \ |
| 26846 | face_id = (row)->glyphs[area][START].face_id; \ | 26821 | face_id = (row)->glyphs[area][START].face_id; \ |
| @@ -28433,7 +28408,7 @@ gui_produce_glyphs (struct it *it) | |||
| 28433 | 28408 | ||
| 28434 | if (it->what == IT_CHARACTER) | 28409 | if (it->what == IT_CHARACTER) |
| 28435 | { | 28410 | { |
| 28436 | XChar2b char2b; | 28411 | unsigned char2b; |
| 28437 | struct face *face = FACE_FROM_ID (it->f, it->face_id); | 28412 | struct face *face = FACE_FROM_ID (it->f, it->face_id); |
| 28438 | struct font *font = face->font; | 28413 | struct font *font = face->font; |
| 28439 | struct font_metrics *pcm = NULL; | 28414 | struct font_metrics *pcm = NULL; |
| @@ -28832,7 +28807,7 @@ gui_produce_glyphs (struct it *it) | |||
| 28832 | int lbearing, rbearing; | 28807 | int lbearing, rbearing; |
| 28833 | int i, width, ascent, descent; | 28808 | int i, width, ascent, descent; |
| 28834 | int c; | 28809 | int c; |
| 28835 | XChar2b char2b; | 28810 | unsigned char2b; |
| 28836 | struct font_metrics *pcm; | 28811 | struct font_metrics *pcm; |
| 28837 | ptrdiff_t pos; | 28812 | ptrdiff_t pos; |
| 28838 | 28813 | ||
| @@ -31153,7 +31128,7 @@ Returns the alist element for the first matching AREA in MAP. */) | |||
| 31153 | 31128 | ||
| 31154 | /* Display frame CURSOR, optionally using shape defined by POINTER. */ | 31129 | /* Display frame CURSOR, optionally using shape defined by POINTER. */ |
| 31155 | static void | 31130 | static void |
| 31156 | define_frame_cursor1 (struct frame *f, Cursor cursor, Lisp_Object pointer) | 31131 | define_frame_cursor1 (struct frame *f, Emacs_Cursor cursor, Lisp_Object pointer) |
| 31157 | { | 31132 | { |
| 31158 | #ifdef HAVE_WINDOW_SYSTEM | 31133 | #ifdef HAVE_WINDOW_SYSTEM |
| 31159 | if (!FRAME_WINDOW_P (f)) | 31134 | if (!FRAME_WINDOW_P (f)) |
| @@ -31205,7 +31180,7 @@ note_mode_line_or_margin_highlight (Lisp_Object window, int x, int y, | |||
| 31205 | struct window *w = XWINDOW (window); | 31180 | struct window *w = XWINDOW (window); |
| 31206 | struct frame *f = XFRAME (w->frame); | 31181 | struct frame *f = XFRAME (w->frame); |
| 31207 | Mouse_HLInfo *hlinfo = MOUSE_HL_INFO (f); | 31182 | Mouse_HLInfo *hlinfo = MOUSE_HL_INFO (f); |
| 31208 | Cursor cursor = No_Cursor; | 31183 | Emacs_Cursor cursor = No_Cursor; |
| 31209 | Lisp_Object pointer = Qnil; | 31184 | Lisp_Object pointer = Qnil; |
| 31210 | int dx, dy, width, height; | 31185 | int dx, dy, width, height; |
| 31211 | ptrdiff_t charpos; | 31186 | ptrdiff_t charpos; |
| @@ -31518,7 +31493,7 @@ note_mouse_highlight (struct frame *f, int x, int y) | |||
| 31518 | enum window_part part = ON_NOTHING; | 31493 | enum window_part part = ON_NOTHING; |
| 31519 | Lisp_Object window; | 31494 | Lisp_Object window; |
| 31520 | struct window *w; | 31495 | struct window *w; |
| 31521 | Cursor cursor = No_Cursor; | 31496 | Emacs_Cursor cursor = No_Cursor; |
| 31522 | Lisp_Object pointer = Qnil; /* Takes precedence over cursor! */ | 31497 | Lisp_Object pointer = Qnil; /* Takes precedence over cursor! */ |
| 31523 | struct buffer *b; | 31498 | struct buffer *b; |
| 31524 | 31499 | ||
| @@ -32137,7 +32112,7 @@ cancel_mouse_face (struct frame *f) | |||
| 32137 | which intersects rectangle R. R is in window-relative coordinates. */ | 32112 | which intersects rectangle R. R is in window-relative coordinates. */ |
| 32138 | 32113 | ||
| 32139 | static void | 32114 | static void |
| 32140 | expose_area (struct window *w, struct glyph_row *row, XRectangle *r, | 32115 | expose_area (struct window *w, struct glyph_row *row, const Emacs_Rectangle *r, |
| 32141 | enum glyph_row_area area) | 32116 | enum glyph_row_area area) |
| 32142 | { | 32117 | { |
| 32143 | struct glyph *first = row->glyphs[area]; | 32118 | struct glyph *first = row->glyphs[area]; |
| @@ -32195,7 +32170,7 @@ expose_area (struct window *w, struct glyph_row *row, XRectangle *r, | |||
| 32195 | true if mouse-face was overwritten. */ | 32170 | true if mouse-face was overwritten. */ |
| 32196 | 32171 | ||
| 32197 | static bool | 32172 | static bool |
| 32198 | expose_line (struct window *w, struct glyph_row *row, XRectangle *r) | 32173 | expose_line (struct window *w, struct glyph_row *row, const Emacs_Rectangle *r) |
| 32199 | { | 32174 | { |
| 32200 | eassert (row->enabled_p); | 32175 | eassert (row->enabled_p); |
| 32201 | 32176 | ||
| @@ -32230,7 +32205,7 @@ static void | |||
| 32230 | expose_overlaps (struct window *w, | 32205 | expose_overlaps (struct window *w, |
| 32231 | struct glyph_row *first_overlapping_row, | 32206 | struct glyph_row *first_overlapping_row, |
| 32232 | struct glyph_row *last_overlapping_row, | 32207 | struct glyph_row *last_overlapping_row, |
| 32233 | XRectangle *r) | 32208 | const Emacs_Rectangle *r) |
| 32234 | { | 32209 | { |
| 32235 | struct glyph_row *row; | 32210 | struct glyph_row *row; |
| 32236 | 32211 | ||
| @@ -32256,9 +32231,9 @@ expose_overlaps (struct window *w, | |||
| 32256 | /* Return true if W's cursor intersects rectangle R. */ | 32231 | /* Return true if W's cursor intersects rectangle R. */ |
| 32257 | 32232 | ||
| 32258 | static bool | 32233 | static bool |
| 32259 | phys_cursor_in_rect_p (struct window *w, XRectangle *r) | 32234 | phys_cursor_in_rect_p (struct window *w, const Emacs_Rectangle *r) |
| 32260 | { | 32235 | { |
| 32261 | XRectangle cr, result; | 32236 | Emacs_Rectangle cr, result; |
| 32262 | struct glyph *cursor_glyph; | 32237 | struct glyph *cursor_glyph; |
| 32263 | struct glyph_row *row; | 32238 | struct glyph_row *row; |
| 32264 | 32239 | ||
| @@ -32416,10 +32391,10 @@ gui_draw_bottom_divider (struct window *w) | |||
| 32416 | mouse-face. */ | 32391 | mouse-face. */ |
| 32417 | 32392 | ||
| 32418 | static bool | 32393 | static bool |
| 32419 | expose_window (struct window *w, XRectangle *fr) | 32394 | expose_window (struct window *w, const Emacs_Rectangle *fr) |
| 32420 | { | 32395 | { |
| 32421 | struct frame *f = XFRAME (w->frame); | 32396 | struct frame *f = XFRAME (w->frame); |
| 32422 | XRectangle wr, r; | 32397 | Emacs_Rectangle wr, r; |
| 32423 | bool mouse_face_overwritten_p = false; | 32398 | bool mouse_face_overwritten_p = false; |
| 32424 | 32399 | ||
| 32425 | /* If window is not yet fully initialized, do nothing. This can | 32400 | /* If window is not yet fully initialized, do nothing. This can |
| @@ -32578,7 +32553,7 @@ expose_window (struct window *w, XRectangle *fr) | |||
| 32578 | true if the exposure overwrites mouse-face. */ | 32553 | true if the exposure overwrites mouse-face. */ |
| 32579 | 32554 | ||
| 32580 | static bool | 32555 | static bool |
| 32581 | expose_window_tree (struct window *w, XRectangle *r) | 32556 | expose_window_tree (struct window *w, const Emacs_Rectangle *r) |
| 32582 | { | 32557 | { |
| 32583 | struct frame *f = XFRAME (w->frame); | 32558 | struct frame *f = XFRAME (w->frame); |
| 32584 | bool mouse_face_overwritten_p = false; | 32559 | bool mouse_face_overwritten_p = false; |
| @@ -32606,7 +32581,7 @@ expose_window_tree (struct window *w, XRectangle *r) | |||
| 32606 | void | 32581 | void |
| 32607 | expose_frame (struct frame *f, int x, int y, int w, int h) | 32582 | expose_frame (struct frame *f, int x, int y, int w, int h) |
| 32608 | { | 32583 | { |
| 32609 | XRectangle r; | 32584 | Emacs_Rectangle r; |
| 32610 | bool mouse_face_overwritten_p = false; | 32585 | bool mouse_face_overwritten_p = false; |
| 32611 | 32586 | ||
| 32612 | TRACE ((stderr, "expose_frame ")); | 32587 | TRACE ((stderr, "expose_frame ")); |
| @@ -32693,10 +32668,11 @@ expose_frame (struct frame *f, int x, int y, int w, int h) | |||
| 32693 | empty. */ | 32668 | empty. */ |
| 32694 | 32669 | ||
| 32695 | bool | 32670 | bool |
| 32696 | gui_intersect_rectangles (XRectangle *r1, XRectangle *r2, XRectangle *result) | 32671 | gui_intersect_rectangles (const Emacs_Rectangle *r1, const Emacs_Rectangle *r2, |
| 32672 | Emacs_Rectangle *result) | ||
| 32697 | { | 32673 | { |
| 32698 | XRectangle *left, *right; | 32674 | const Emacs_Rectangle *left, *right; |
| 32699 | XRectangle *upper, *lower; | 32675 | const Emacs_Rectangle *upper, *lower; |
| 32700 | bool intersection_p = false; | 32676 | bool intersection_p = false; |
| 32701 | 32677 | ||
| 32702 | /* Rearrange so that R1 is the left-most rectangle. */ | 32678 | /* Rearrange so that R1 is the left-most rectangle. */ |
diff --git a/src/xfaces.c b/src/xfaces.c index 5c2414b7b0e..d211ec8c460 100644 --- a/src/xfaces.c +++ b/src/xfaces.c | |||
| @@ -348,7 +348,7 @@ static void free_face_cache (struct face_cache *); | |||
| 348 | static bool merge_face_ref (struct window *w, | 348 | static bool merge_face_ref (struct window *w, |
| 349 | struct frame *, Lisp_Object, Lisp_Object *, | 349 | struct frame *, Lisp_Object, Lisp_Object *, |
| 350 | bool, struct named_merge_point *); | 350 | bool, struct named_merge_point *); |
| 351 | static int color_distance (XColor *x, XColor *y); | 351 | static int color_distance (Emacs_Color *x, Emacs_Color *y); |
| 352 | 352 | ||
| 353 | #ifdef HAVE_WINDOW_SYSTEM | 353 | #ifdef HAVE_WINDOW_SYSTEM |
| 354 | static void set_font_frame_param (Lisp_Object, Lisp_Object); | 354 | static void set_font_frame_param (Lisp_Object, Lisp_Object); |
| @@ -513,12 +513,12 @@ x_free_gc (struct frame *f, GC gc) | |||
| 513 | #ifdef HAVE_NTGUI | 513 | #ifdef HAVE_NTGUI |
| 514 | /* W32 emulation of GCs */ | 514 | /* W32 emulation of GCs */ |
| 515 | 515 | ||
| 516 | static GC | 516 | static Emacs_GC * |
| 517 | x_create_gc (struct frame *f, unsigned long mask, XGCValues *xgcv) | 517 | x_create_gc (struct frame *f, unsigned long mask, Emacs_GC *egc) |
| 518 | { | 518 | { |
| 519 | GC gc; | 519 | Emacs_GC *gc; |
| 520 | block_input (); | 520 | block_input (); |
| 521 | gc = XCreateGC (NULL, FRAME_W32_WINDOW (f), mask, xgcv); | 521 | gc = XCreateGC (NULL, FRAME_W32_WINDOW (f), mask, egc); |
| 522 | unblock_input (); | 522 | unblock_input (); |
| 523 | IF_DEBUG (++ngcs); | 523 | IF_DEBUG (++ngcs); |
| 524 | return gc; | 524 | return gc; |
| @@ -528,7 +528,7 @@ x_create_gc (struct frame *f, unsigned long mask, XGCValues *xgcv) | |||
| 528 | /* Free GC which was used on frame F. */ | 528 | /* Free GC which was used on frame F. */ |
| 529 | 529 | ||
| 530 | static void | 530 | static void |
| 531 | x_free_gc (struct frame *f, GC gc) | 531 | x_free_gc (struct frame *f, Emacs_GC *gc) |
| 532 | { | 532 | { |
| 533 | IF_DEBUG ((--ngcs, eassert (ngcs >= 0))); | 533 | IF_DEBUG ((--ngcs, eassert (ngcs >= 0))); |
| 534 | xfree (gc); | 534 | xfree (gc); |
| @@ -539,18 +539,18 @@ x_free_gc (struct frame *f, GC gc) | |||
| 539 | #ifdef HAVE_NS | 539 | #ifdef HAVE_NS |
| 540 | /* NS emulation of GCs */ | 540 | /* NS emulation of GCs */ |
| 541 | 541 | ||
| 542 | static GC | 542 | static Emacs_GC * |
| 543 | x_create_gc (struct frame *f, | 543 | x_create_gc (struct frame *f, |
| 544 | unsigned long mask, | 544 | unsigned long mask, |
| 545 | XGCValues *xgcv) | 545 | Emacs_GC *egc) |
| 546 | { | 546 | { |
| 547 | GC gc = xmalloc (sizeof *gc); | 547 | Emacs_GC *gc = xmalloc (sizeof *gc); |
| 548 | *gc = *xgcv; | 548 | *gc = *egc; |
| 549 | return gc; | 549 | return gc; |
| 550 | } | 550 | } |
| 551 | 551 | ||
| 552 | static void | 552 | static void |
| 553 | x_free_gc (struct frame *f, GC gc) | 553 | x_free_gc (struct frame *f, Emacs_GC *gc) |
| 554 | { | 554 | { |
| 555 | xfree (gc); | 555 | xfree (gc); |
| 556 | } | 556 | } |
| @@ -802,7 +802,7 @@ load_pixmap (struct frame *f, Lisp_Object name) | |||
| 802 | 802 | ||
| 803 | 803 | ||
| 804 | /*********************************************************************** | 804 | /*********************************************************************** |
| 805 | X Colors | 805 | Color Handling |
| 806 | ***********************************************************************/ | 806 | ***********************************************************************/ |
| 807 | 807 | ||
| 808 | /* Parse RGB_LIST, and fill in the RGB fields of COLOR. | 808 | /* Parse RGB_LIST, and fill in the RGB fields of COLOR. |
| @@ -810,7 +810,7 @@ load_pixmap (struct frame *f, Lisp_Object name) | |||
| 810 | Return true iff RGB_LIST is OK. */ | 810 | Return true iff RGB_LIST is OK. */ |
| 811 | 811 | ||
| 812 | static bool | 812 | static bool |
| 813 | parse_rgb_list (Lisp_Object rgb_list, XColor *color) | 813 | parse_rgb_list (Lisp_Object rgb_list, Emacs_Color *color) |
| 814 | { | 814 | { |
| 815 | #define PARSE_RGB_LIST_FIELD(field) \ | 815 | #define PARSE_RGB_LIST_FIELD(field) \ |
| 816 | if (CONSP (rgb_list) && FIXNUMP (XCAR (rgb_list))) \ | 816 | if (CONSP (rgb_list) && FIXNUMP (XCAR (rgb_list))) \ |
| @@ -835,8 +835,8 @@ parse_rgb_list (Lisp_Object rgb_list, XColor *color) | |||
| 835 | returned in it. */ | 835 | returned in it. */ |
| 836 | 836 | ||
| 837 | static bool | 837 | static bool |
| 838 | tty_lookup_color (struct frame *f, Lisp_Object color, XColor *tty_color, | 838 | tty_lookup_color (struct frame *f, Lisp_Object color, Emacs_Color *tty_color, |
| 839 | XColor *std_color) | 839 | Emacs_Color *std_color) |
| 840 | { | 840 | { |
| 841 | Lisp_Object frame, color_desc; | 841 | Lisp_Object frame, color_desc; |
| 842 | 842 | ||
| @@ -897,7 +897,7 @@ tty_lookup_color (struct frame *f, Lisp_Object color, XColor *tty_color, | |||
| 897 | 897 | ||
| 898 | bool | 898 | bool |
| 899 | tty_defined_color (struct frame *f, const char *color_name, | 899 | tty_defined_color (struct frame *f, const char *color_name, |
| 900 | XColor *color_def, bool alloc, bool _makeIndex) | 900 | Emacs_Color *color_def, bool alloc, bool _makeIndex) |
| 901 | { | 901 | { |
| 902 | bool status = true; | 902 | bool status = true; |
| 903 | 903 | ||
| @@ -965,7 +965,7 @@ tty_color_name (struct frame *f, int idx) | |||
| 965 | static bool | 965 | static bool |
| 966 | face_color_gray_p (struct frame *f, const char *color_name) | 966 | face_color_gray_p (struct frame *f, const char *color_name) |
| 967 | { | 967 | { |
| 968 | XColor color; | 968 | Emacs_Color color; |
| 969 | bool gray_p; | 969 | bool gray_p; |
| 970 | 970 | ||
| 971 | if (FRAME_TERMINAL (f)->defined_color_hook | 971 | if (FRAME_TERMINAL (f)->defined_color_hook |
| @@ -994,7 +994,7 @@ face_color_supported_p (struct frame *f, const char *color_name, | |||
| 994 | bool background_p) | 994 | bool background_p) |
| 995 | { | 995 | { |
| 996 | Lisp_Object frame; | 996 | Lisp_Object frame; |
| 997 | XColor not_used; | 997 | Emacs_Color not_used; |
| 998 | 998 | ||
| 999 | XSETFRAME (frame, f); | 999 | XSETFRAME (frame, f); |
| 1000 | return | 1000 | return |
| @@ -1043,7 +1043,7 @@ COLOR must be a valid color name. */) | |||
| 1043 | 1043 | ||
| 1044 | static unsigned long | 1044 | static unsigned long |
| 1045 | load_color2 (struct frame *f, struct face *face, Lisp_Object name, | 1045 | load_color2 (struct frame *f, struct face *face, Lisp_Object name, |
| 1046 | enum lface_attribute_index target_index, XColor *color) | 1046 | enum lface_attribute_index target_index, Emacs_Color *color) |
| 1047 | { | 1047 | { |
| 1048 | eassert (STRINGP (name)); | 1048 | eassert (STRINGP (name)); |
| 1049 | eassert (target_index == LFACE_FOREGROUND_INDEX | 1049 | eassert (target_index == LFACE_FOREGROUND_INDEX |
| @@ -1117,7 +1117,7 @@ unsigned long | |||
| 1117 | load_color (struct frame *f, struct face *face, Lisp_Object name, | 1117 | load_color (struct frame *f, struct face *face, Lisp_Object name, |
| 1118 | enum lface_attribute_index target_index) | 1118 | enum lface_attribute_index target_index) |
| 1119 | { | 1119 | { |
| 1120 | XColor color; | 1120 | Emacs_Color color; |
| 1121 | return load_color2 (f, face, name, target_index, &color); | 1121 | return load_color2 (f, face, name, target_index, &color); |
| 1122 | } | 1122 | } |
| 1123 | 1123 | ||
| @@ -1134,7 +1134,7 @@ load_face_colors (struct frame *f, struct face *face, | |||
| 1134 | Lisp_Object attrs[LFACE_VECTOR_SIZE]) | 1134 | Lisp_Object attrs[LFACE_VECTOR_SIZE]) |
| 1135 | { | 1135 | { |
| 1136 | Lisp_Object fg, bg, dfg; | 1136 | Lisp_Object fg, bg, dfg; |
| 1137 | XColor xfg, xbg; | 1137 | Emacs_Color xfg, xbg; |
| 1138 | 1138 | ||
| 1139 | bg = attrs[LFACE_BACKGROUND_INDEX]; | 1139 | bg = attrs[LFACE_BACKGROUND_INDEX]; |
| 1140 | fg = attrs[LFACE_FOREGROUND_INDEX]; | 1140 | fg = attrs[LFACE_FOREGROUND_INDEX]; |
| @@ -4140,25 +4140,25 @@ prepare_face_for_display (struct frame *f, struct face *face) | |||
| 4140 | 4140 | ||
| 4141 | if (face->gc == 0) | 4141 | if (face->gc == 0) |
| 4142 | { | 4142 | { |
| 4143 | XGCValues xgcv; | 4143 | Emacs_GC egc; |
| 4144 | unsigned long mask = GCForeground | GCBackground | GCGraphicsExposures; | 4144 | unsigned long mask = GCForeground | GCBackground | GCGraphicsExposures; |
| 4145 | 4145 | ||
| 4146 | xgcv.foreground = face->foreground; | 4146 | egc.foreground = face->foreground; |
| 4147 | xgcv.background = face->background; | 4147 | egc.background = face->background; |
| 4148 | #ifdef HAVE_X_WINDOWS | 4148 | #ifdef HAVE_X_WINDOWS |
| 4149 | xgcv.graphics_exposures = False; | 4149 | egc.graphics_exposures = False; |
| 4150 | #endif | 4150 | #endif |
| 4151 | 4151 | ||
| 4152 | block_input (); | 4152 | block_input (); |
| 4153 | #ifdef HAVE_X_WINDOWS | 4153 | #ifdef HAVE_X_WINDOWS |
| 4154 | if (face->stipple) | 4154 | if (face->stipple) |
| 4155 | { | 4155 | { |
| 4156 | xgcv.fill_style = FillOpaqueStippled; | 4156 | egc.fill_style = FillOpaqueStippled; |
| 4157 | xgcv.stipple = image_bitmap_pixmap (f, face->stipple); | 4157 | egc.stipple = image_bitmap_pixmap (f, face->stipple); |
| 4158 | mask |= GCFillStyle | GCStipple; | 4158 | mask |= GCFillStyle | GCStipple; |
| 4159 | } | 4159 | } |
| 4160 | #endif | 4160 | #endif |
| 4161 | face->gc = x_create_gc (f, mask, &xgcv); | 4161 | face->gc = x_create_gc (f, mask, &egc); |
| 4162 | if (face->font) | 4162 | if (face->font) |
| 4163 | font_prepare_for_face (f, face); | 4163 | font_prepare_for_face (f, face); |
| 4164 | unblock_input (); | 4164 | unblock_input (); |
| @@ -4170,7 +4170,7 @@ prepare_face_for_display (struct frame *f, struct face *face) | |||
| 4170 | /* Returns the `distance' between the colors X and Y. */ | 4170 | /* Returns the `distance' between the colors X and Y. */ |
| 4171 | 4171 | ||
| 4172 | static int | 4172 | static int |
| 4173 | color_distance (XColor *x, XColor *y) | 4173 | color_distance (Emacs_Color *x, Emacs_Color *y) |
| 4174 | { | 4174 | { |
| 4175 | /* This formula is from a paper titled `Colour metric' by Thiadmer Riemersma. | 4175 | /* This formula is from a paper titled `Colour metric' by Thiadmer Riemersma. |
| 4176 | Quoting from that paper: | 4176 | Quoting from that paper: |
| @@ -4205,7 +4205,7 @@ two lists of the form (RED GREEN BLUE) aforementioned. */) | |||
| 4205 | Lisp_Object metric) | 4205 | Lisp_Object metric) |
| 4206 | { | 4206 | { |
| 4207 | struct frame *f = decode_live_frame (frame); | 4207 | struct frame *f = decode_live_frame (frame); |
| 4208 | XColor cdef1, cdef2; | 4208 | Emacs_Color cdef1, cdef2; |
| 4209 | 4209 | ||
| 4210 | if (!(CONSP (color1) && parse_rgb_list (color1, &cdef1)) | 4210 | if (!(CONSP (color1) && parse_rgb_list (color1, &cdef1)) |
| 4211 | && !(STRINGP (color1) | 4211 | && !(STRINGP (color1) |
| @@ -4885,8 +4885,8 @@ tty_supports_face_attributes_p (struct frame *f, | |||
| 4885 | { | 4885 | { |
| 4886 | int weight, slant; | 4886 | int weight, slant; |
| 4887 | Lisp_Object val, fg, bg; | 4887 | Lisp_Object val, fg, bg; |
| 4888 | XColor fg_tty_color, fg_std_color; | 4888 | Emacs_Color fg_tty_color, fg_std_color; |
| 4889 | XColor bg_tty_color, bg_std_color; | 4889 | Emacs_Color bg_tty_color, bg_std_color; |
| 4890 | unsigned test_caps = 0; | 4890 | unsigned test_caps = 0; |
| 4891 | Lisp_Object *def_attrs = def_face->lface; | 4891 | Lisp_Object *def_attrs = def_face->lface; |
| 4892 | 4892 | ||
| @@ -4988,7 +4988,7 @@ tty_supports_face_attributes_p (struct frame *f, | |||
| 4988 | else | 4988 | else |
| 4989 | /* Make sure the color is really different than the default. */ | 4989 | /* Make sure the color is really different than the default. */ |
| 4990 | { | 4990 | { |
| 4991 | XColor def_fg_color; | 4991 | Emacs_Color def_fg_color; |
| 4992 | if (tty_lookup_color (f, def_fg, &def_fg_color, 0) | 4992 | if (tty_lookup_color (f, def_fg, &def_fg_color, 0) |
| 4993 | && (color_distance (&fg_tty_color, &def_fg_color) | 4993 | && (color_distance (&fg_tty_color, &def_fg_color) |
| 4994 | <= TTY_SAME_COLOR_THRESHOLD)) | 4994 | <= TTY_SAME_COLOR_THRESHOLD)) |
| @@ -5012,7 +5012,7 @@ tty_supports_face_attributes_p (struct frame *f, | |||
| 5012 | else | 5012 | else |
| 5013 | /* Make sure the color is really different than the default. */ | 5013 | /* Make sure the color is really different than the default. */ |
| 5014 | { | 5014 | { |
| 5015 | XColor def_bg_color; | 5015 | Emacs_Color def_bg_color; |
| 5016 | if (tty_lookup_color (f, def_bg, &def_bg_color, 0) | 5016 | if (tty_lookup_color (f, def_bg, &def_bg_color, 0) |
| 5017 | && (color_distance (&bg_tty_color, &def_bg_color) | 5017 | && (color_distance (&bg_tty_color, &def_bg_color) |
| 5018 | <= TTY_SAME_COLOR_THRESHOLD)) | 5018 | <= TTY_SAME_COLOR_THRESHOLD)) |
diff --git a/src/xfns.c b/src/xfns.c index c8cc1704a47..4195980d33e 100644 --- a/src/xfns.c +++ b/src/xfns.c | |||
| @@ -653,7 +653,7 @@ gamma_correct (struct frame *f, XColor *color) | |||
| 653 | 653 | ||
| 654 | bool | 654 | bool |
| 655 | x_defined_color (struct frame *f, const char *color_name, | 655 | x_defined_color (struct frame *f, const char *color_name, |
| 656 | XColor *color, bool alloc_p, bool _makeIndex) | 656 | Emacs_Color *color, bool alloc_p, bool _makeIndex) |
| 657 | { | 657 | { |
| 658 | bool success_p = false; | 658 | bool success_p = false; |
| 659 | Colormap cmap = FRAME_X_COLORMAP (f); | 659 | Colormap cmap = FRAME_X_COLORMAP (f); |
diff --git a/src/xfont.c b/src/xfont.c index ff80df407d7..81808e7a62e 100644 --- a/src/xfont.c +++ b/src/xfont.c | |||
| @@ -46,18 +46,20 @@ struct xfont_info | |||
| 46 | 46 | ||
| 47 | /* Prototypes of support functions. */ | 47 | /* Prototypes of support functions. */ |
| 48 | 48 | ||
| 49 | static XCharStruct *xfont_get_pcm (XFontStruct *, XChar2b *); | 49 | static XCharStruct *xfont_get_pcm (XFontStruct *, unsigned char2b); |
| 50 | 50 | ||
| 51 | /* Get metrics of character CHAR2B in XFONT. Value is null if CHAR2B | 51 | /* Get metrics of character CHAR2B in XFONT. Value is null if CHAR2B |
| 52 | is not contained in the font. */ | 52 | is not contained in the font. */ |
| 53 | 53 | ||
| 54 | static XCharStruct * | 54 | static XCharStruct * |
| 55 | xfont_get_pcm (XFontStruct *xfont, XChar2b *char2b) | 55 | xfont_get_pcm (XFontStruct *xfont, unsigned char2b) |
| 56 | { | 56 | { |
| 57 | /* The result metric information. */ | 57 | /* The result metric information. */ |
| 58 | XCharStruct *pcm = NULL; | 58 | XCharStruct *pcm = NULL; |
| 59 | const unsigned char byte1 = char2b >> 8; | ||
| 60 | const unsigned char byte2 = char2b & 0xFF; | ||
| 59 | 61 | ||
| 60 | eassert (xfont && char2b); | 62 | eassert (xfont); |
| 61 | 63 | ||
| 62 | if (xfont->per_char != NULL) | 64 | if (xfont->per_char != NULL) |
| 63 | { | 65 | { |
| @@ -66,13 +68,13 @@ xfont_get_pcm (XFontStruct *xfont, XChar2b *char2b) | |||
| 66 | /* min_char_or_byte2 specifies the linear character index | 68 | /* min_char_or_byte2 specifies the linear character index |
| 67 | corresponding to the first element of the per_char array, | 69 | corresponding to the first element of the per_char array, |
| 68 | max_char_or_byte2 is the index of the last character. A | 70 | max_char_or_byte2 is the index of the last character. A |
| 69 | character with non-zero CHAR2B->byte1 is not in the font. | 71 | character with non-zero byte1 is not in the font. |
| 70 | A character with byte2 less than min_char_or_byte2 or | 72 | A character with byte2 less than min_char_or_byte2 or |
| 71 | greater max_char_or_byte2 is not in the font. */ | 73 | greater max_char_or_byte2 is not in the font. */ |
| 72 | if (char2b->byte1 == 0 | 74 | if (byte1 == 0 |
| 73 | && char2b->byte2 >= xfont->min_char_or_byte2 | 75 | && byte2 >= xfont->min_char_or_byte2 |
| 74 | && char2b->byte2 <= xfont->max_char_or_byte2) | 76 | && byte2 <= xfont->max_char_or_byte2) |
| 75 | pcm = xfont->per_char + char2b->byte2 - xfont->min_char_or_byte2; | 77 | pcm = xfont->per_char + byte2 - xfont->min_char_or_byte2; |
| 76 | } | 78 | } |
| 77 | else | 79 | else |
| 78 | { | 80 | { |
| @@ -89,14 +91,14 @@ xfont_get_pcm (XFontStruct *xfont, XChar2b *char2b) | |||
| 89 | D = max_char_or_byte2 - min_char_or_byte2 + 1 | 91 | D = max_char_or_byte2 - min_char_or_byte2 + 1 |
| 90 | / = integer division | 92 | / = integer division |
| 91 | \ = integer modulus */ | 93 | \ = integer modulus */ |
| 92 | if (char2b->byte1 >= xfont->min_byte1 | 94 | if (byte1 >= xfont->min_byte1 |
| 93 | && char2b->byte1 <= xfont->max_byte1 | 95 | && byte1 <= xfont->max_byte1 |
| 94 | && char2b->byte2 >= xfont->min_char_or_byte2 | 96 | && byte2 >= xfont->min_char_or_byte2 |
| 95 | && char2b->byte2 <= xfont->max_char_or_byte2) | 97 | && byte2 <= xfont->max_char_or_byte2) |
| 96 | pcm = (xfont->per_char | 98 | pcm = (xfont->per_char |
| 97 | + ((xfont->max_char_or_byte2 - xfont->min_char_or_byte2 + 1) | 99 | + ((xfont->max_char_or_byte2 - xfont->min_char_or_byte2 + 1) |
| 98 | * (char2b->byte1 - xfont->min_byte1)) | 100 | * (byte1 - xfont->min_byte1)) |
| 99 | + (char2b->byte2 - xfont->min_char_or_byte2)); | 101 | + (byte2 - xfont->min_char_or_byte2)); |
| 100 | } | 102 | } |
| 101 | } | 103 | } |
| 102 | else | 104 | else |
| @@ -104,8 +106,8 @@ xfont_get_pcm (XFontStruct *xfont, XChar2b *char2b) | |||
| 104 | /* If the per_char pointer is null, all glyphs between the first | 106 | /* If the per_char pointer is null, all glyphs between the first |
| 105 | and last character indexes inclusive have the same | 107 | and last character indexes inclusive have the same |
| 106 | information, as given by both min_bounds and max_bounds. */ | 108 | information, as given by both min_bounds and max_bounds. */ |
| 107 | if (char2b->byte2 >= xfont->min_char_or_byte2 | 109 | if (byte2 >= xfont->min_char_or_byte2 |
| 108 | && char2b->byte2 <= xfont->max_char_or_byte2) | 110 | && byte2 <= xfont->max_char_or_byte2) |
| 109 | pcm = &xfont->max_bounds; | 111 | pcm = &xfont->max_bounds; |
| 110 | } | 112 | } |
| 111 | 113 | ||
| @@ -193,7 +195,6 @@ xfont_chars_supported (Lisp_Object chars, XFontStruct *xfont, | |||
| 193 | { | 195 | { |
| 194 | int c = XFIXNUM (XCAR (chars)); | 196 | int c = XFIXNUM (XCAR (chars)); |
| 195 | unsigned code = ENCODE_CHAR (charset, c); | 197 | unsigned code = ENCODE_CHAR (charset, c); |
| 196 | XChar2b char2b; | ||
| 197 | 198 | ||
| 198 | if (code == CHARSET_INVALID_CODE (charset)) | 199 | if (code == CHARSET_INVALID_CODE (charset)) |
| 199 | break; | 200 | break; |
| @@ -201,9 +202,7 @@ xfont_chars_supported (Lisp_Object chars, XFontStruct *xfont, | |||
| 201 | continue; | 202 | continue; |
| 202 | if (code >= 0x10000) | 203 | if (code >= 0x10000) |
| 203 | break; | 204 | break; |
| 204 | char2b.byte1 = code >> 8; | 205 | if (! xfont_get_pcm (xfont, code)) |
| 205 | char2b.byte2 = code & 0xFF; | ||
| 206 | if (! xfont_get_pcm (xfont, &char2b)) | ||
| 207 | break; | 206 | break; |
| 208 | } | 207 | } |
| 209 | return (NILP (chars)); | 208 | return (NILP (chars)); |
| @@ -216,7 +215,6 @@ xfont_chars_supported (Lisp_Object chars, XFontStruct *xfont, | |||
| 216 | { | 215 | { |
| 217 | int c = XFIXNUM (AREF (chars, i)); | 216 | int c = XFIXNUM (AREF (chars, i)); |
| 218 | unsigned code = ENCODE_CHAR (charset, c); | 217 | unsigned code = ENCODE_CHAR (charset, c); |
| 219 | XChar2b char2b; | ||
| 220 | 218 | ||
| 221 | if (code == CHARSET_INVALID_CODE (charset)) | 219 | if (code == CHARSET_INVALID_CODE (charset)) |
| 222 | continue; | 220 | continue; |
| @@ -224,9 +222,7 @@ xfont_chars_supported (Lisp_Object chars, XFontStruct *xfont, | |||
| 224 | break; | 222 | break; |
| 225 | if (code >= 0x10000) | 223 | if (code >= 0x10000) |
| 226 | continue; | 224 | continue; |
| 227 | char2b.byte1 = code >> 8; | 225 | if (xfont_get_pcm (xfont, code)) |
| 228 | char2b.byte2 = code & 0xFF; | ||
| 229 | if (xfont_get_pcm (xfont, &char2b)) | ||
| 230 | break; | 226 | break; |
| 231 | } | 227 | } |
| 232 | return (i >= 0); | 228 | return (i >= 0); |
| @@ -801,11 +797,9 @@ xfont_open (struct frame *f, Lisp_Object entity, int pixel_size) | |||
| 801 | else | 797 | else |
| 802 | { | 798 | { |
| 803 | XCharStruct *pcm; | 799 | XCharStruct *pcm; |
| 804 | XChar2b char2b; | ||
| 805 | Lisp_Object val; | 800 | Lisp_Object val; |
| 806 | 801 | ||
| 807 | char2b.byte1 = 0x00, char2b.byte2 = 0x20; | 802 | pcm = xfont_get_pcm (xfont, 0x20); |
| 808 | pcm = xfont_get_pcm (xfont, &char2b); | ||
| 809 | if (pcm) | 803 | if (pcm) |
| 810 | font->space_width = pcm->width; | 804 | font->space_width = pcm->width; |
| 811 | else | 805 | else |
| @@ -823,8 +817,8 @@ xfont_open (struct frame *f, Lisp_Object entity, int pixel_size) | |||
| 823 | { | 817 | { |
| 824 | int width = font->space_width, n = pcm != NULL; | 818 | int width = font->space_width, n = pcm != NULL; |
| 825 | 819 | ||
| 826 | for (char2b.byte2 = 33; char2b.byte2 <= 126; char2b.byte2++) | 820 | for (unsigned char2b = 33; char2b <= 126; ++char2b) |
| 827 | if ((pcm = xfont_get_pcm (xfont, &char2b)) != NULL) | 821 | if ((pcm = xfont_get_pcm (xfont, char2b)) != NULL) |
| 828 | width += pcm->width, n++; | 822 | width += pcm->width, n++; |
| 829 | if (n > 0) | 823 | if (n > 0) |
| 830 | font->average_width = width / n; | 824 | font->average_width = width / n; |
| @@ -934,7 +928,6 @@ xfont_encode_char (struct font *font, int c) | |||
| 934 | XFontStruct *xfont = ((struct xfont_info *) font)->xfont; | 928 | XFontStruct *xfont = ((struct xfont_info *) font)->xfont; |
| 935 | struct charset *charset; | 929 | struct charset *charset; |
| 936 | unsigned code; | 930 | unsigned code; |
| 937 | XChar2b char2b; | ||
| 938 | 931 | ||
| 939 | charset = CHARSET_FROM_ID (font->encoding_charset); | 932 | charset = CHARSET_FROM_ID (font->encoding_charset); |
| 940 | code = ENCODE_CHAR (charset, c); | 933 | code = ENCODE_CHAR (charset, c); |
| @@ -946,13 +939,11 @@ xfont_encode_char (struct font *font, int c) | |||
| 946 | return (ENCODE_CHAR (charset, c) != CHARSET_INVALID_CODE (charset) | 939 | return (ENCODE_CHAR (charset, c) != CHARSET_INVALID_CODE (charset) |
| 947 | ? code : FONT_INVALID_CODE); | 940 | ? code : FONT_INVALID_CODE); |
| 948 | } | 941 | } |
| 949 | char2b.byte1 = code >> 8; | 942 | return (xfont_get_pcm (xfont, code) ? code : FONT_INVALID_CODE); |
| 950 | char2b.byte2 = code & 0xFF; | ||
| 951 | return (xfont_get_pcm (xfont, &char2b) ? code : FONT_INVALID_CODE); | ||
| 952 | } | 943 | } |
| 953 | 944 | ||
| 954 | static void | 945 | static void |
| 955 | xfont_text_extents (struct font *font, unsigned int *code, | 946 | xfont_text_extents (struct font *font, const unsigned int *code, |
| 956 | int nglyphs, struct font_metrics *metrics) | 947 | int nglyphs, struct font_metrics *metrics) |
| 957 | { | 948 | { |
| 958 | XFontStruct *xfont = ((struct xfont_info *) font)->xfont; | 949 | XFontStruct *xfont = ((struct xfont_info *) font)->xfont; |
| @@ -961,13 +952,11 @@ xfont_text_extents (struct font *font, unsigned int *code, | |||
| 961 | 952 | ||
| 962 | for (i = 0, first = true; i < nglyphs; i++) | 953 | for (i = 0, first = true; i < nglyphs; i++) |
| 963 | { | 954 | { |
| 964 | XChar2b char2b; | ||
| 965 | static XCharStruct *pcm; | 955 | static XCharStruct *pcm; |
| 966 | 956 | ||
| 967 | if (code[i] >= 0x10000) | 957 | if (code[i] >= 0x10000) |
| 968 | continue; | 958 | continue; |
| 969 | char2b.byte1 = code[i] >> 8, char2b.byte2 = code[i] & 0xFF; | 959 | pcm = xfont_get_pcm (xfont, code[i]); |
| 970 | pcm = xfont_get_pcm (xfont, &char2b); | ||
| 971 | if (! pcm) | 960 | if (! pcm) |
| 972 | continue; | 961 | continue; |
| 973 | if (first) | 962 | if (first) |
| @@ -1017,7 +1006,7 @@ xfont_draw (struct glyph_string *s, int from, int to, int x, int y, | |||
| 1017 | USE_SAFE_ALLOCA; | 1006 | USE_SAFE_ALLOCA; |
| 1018 | char *str = SAFE_ALLOCA (len); | 1007 | char *str = SAFE_ALLOCA (len); |
| 1019 | for (i = 0; i < len ; i++) | 1008 | for (i = 0; i < len ; i++) |
| 1020 | str[i] = XCHAR2B_BYTE2 (s->char2b + from + i); | 1009 | str[i] = s->char2b[from + i] & 0xFF; |
| 1021 | block_input (); | 1010 | block_input (); |
| 1022 | if (with_background) | 1011 | if (with_background) |
| 1023 | { | 1012 | { |
| @@ -1049,21 +1038,51 @@ xfont_draw (struct glyph_string *s, int from, int to, int x, int y, | |||
| 1049 | { | 1038 | { |
| 1050 | if (s->padding_p) | 1039 | if (s->padding_p) |
| 1051 | for (i = 0; i < len; i++) | 1040 | for (i = 0; i < len; i++) |
| 1052 | XDrawImageString16 (display, FRAME_X_DRAWABLE (s->f), | 1041 | { |
| 1053 | gc, x + i, y, s->char2b + from + i, 1); | 1042 | const unsigned code = s->char2b[from + i]; |
| 1043 | const XChar2b char2b = { .byte1 = code >> 8, | ||
| 1044 | .byte2 = code & 0xFF }; | ||
| 1045 | XDrawImageString16 (display, FRAME_X_DRAWABLE (s->f), | ||
| 1046 | gc, x + i, y, &char2b, 1); | ||
| 1047 | } | ||
| 1054 | else | 1048 | else |
| 1055 | XDrawImageString16 (display, FRAME_X_DRAWABLE (s->f), | 1049 | { |
| 1056 | gc, x, y, s->char2b + from, len); | 1050 | USE_SAFE_ALLOCA; |
| 1051 | const unsigned *code = s->char2b + from; | ||
| 1052 | XChar2b *char2b; | ||
| 1053 | SAFE_NALLOCA (char2b, 1, len); | ||
| 1054 | for (int i = 0; i < len; ++i) | ||
| 1055 | char2b[i] = (XChar2b) { .byte1 = code[i] >> 8, | ||
| 1056 | .byte2 = code[i] & 0xFF }; | ||
| 1057 | XDrawImageString16 (display, FRAME_X_DRAWABLE (s->f), | ||
| 1058 | gc, x, y, char2b, len); | ||
| 1059 | SAFE_FREE (); | ||
| 1060 | } | ||
| 1057 | } | 1061 | } |
| 1058 | else | 1062 | else |
| 1059 | { | 1063 | { |
| 1060 | if (s->padding_p) | 1064 | if (s->padding_p) |
| 1061 | for (i = 0; i < len; i++) | 1065 | for (i = 0; i < len; i++) |
| 1062 | XDrawString16 (display, FRAME_X_DRAWABLE (s->f), | 1066 | { |
| 1063 | gc, x + i, y, s->char2b + from + i, 1); | 1067 | const unsigned code = s->char2b[from + i]; |
| 1068 | const XChar2b char2b = { .byte1 = code >> 8, | ||
| 1069 | .byte2 = code & 0xFF }; | ||
| 1070 | XDrawString16 (display, FRAME_X_DRAWABLE (s->f), | ||
| 1071 | gc, x + i, y, &char2b, 1); | ||
| 1072 | } | ||
| 1064 | else | 1073 | else |
| 1065 | XDrawString16 (display, FRAME_X_DRAWABLE (s->f), | 1074 | { |
| 1066 | gc, x, y, s->char2b + from, len); | 1075 | USE_SAFE_ALLOCA; |
| 1076 | const unsigned *code = s->char2b + from; | ||
| 1077 | XChar2b *char2b; | ||
| 1078 | SAFE_NALLOCA (char2b, 1, len); | ||
| 1079 | for (int i = 0; i < len; ++i) | ||
| 1080 | char2b[i] = (XChar2b) { .byte1 = code[i] >> 8, | ||
| 1081 | .byte2 = code[i] & 0xFF }; | ||
| 1082 | XDrawString16 (display, FRAME_X_DRAWABLE (s->f), | ||
| 1083 | gc, x, y, char2b, len); | ||
| 1084 | SAFE_FREE (); | ||
| 1085 | } | ||
| 1067 | } | 1086 | } |
| 1068 | unblock_input (); | 1087 | unblock_input (); |
| 1069 | 1088 | ||
diff --git a/src/xftfont.c b/src/xftfont.c index 8a4516f7f91..4f0a0d81d85 100644 --- a/src/xftfont.c +++ b/src/xftfont.c | |||
| @@ -127,120 +127,18 @@ xftfont_match (struct frame *f, Lisp_Object spec) | |||
| 127 | 127 | ||
| 128 | static FcChar8 ascii_printable[95]; | 128 | static FcChar8 ascii_printable[95]; |
| 129 | 129 | ||
| 130 | static void | ||
| 131 | xftfont_fix_match (FcPattern *pat, FcPattern *match) | ||
| 132 | { | ||
| 133 | /* These values are not used for matching (except antialias), but for | ||
| 134 | rendering, so make sure they are carried over to the match. | ||
| 135 | We also put antialias here because most fonts are antialiased, so | ||
| 136 | the match will have antialias true. */ | ||
| 137 | |||
| 138 | FcBool b = FcTrue; | ||
| 139 | int i; | ||
| 140 | double dpi; | ||
| 141 | |||
| 142 | FcPatternGetBool (pat, FC_ANTIALIAS, 0, &b); | ||
| 143 | if (! b) | ||
| 144 | { | ||
| 145 | FcPatternDel (match, FC_ANTIALIAS); | ||
| 146 | FcPatternAddBool (match, FC_ANTIALIAS, FcFalse); | ||
| 147 | } | ||
| 148 | FcPatternGetBool (pat, FC_HINTING, 0, &b); | ||
| 149 | if (! b) | ||
| 150 | { | ||
| 151 | FcPatternDel (match, FC_HINTING); | ||
| 152 | FcPatternAddBool (match, FC_HINTING, FcFalse); | ||
| 153 | } | ||
| 154 | #ifndef FC_HINT_STYLE | ||
| 155 | # define FC_HINT_STYLE "hintstyle" | ||
| 156 | #endif | ||
| 157 | if (FcResultMatch == FcPatternGetInteger (pat, FC_HINT_STYLE, 0, &i)) | ||
| 158 | { | ||
| 159 | FcPatternDel (match, FC_HINT_STYLE); | ||
| 160 | FcPatternAddInteger (match, FC_HINT_STYLE, i); | ||
| 161 | } | ||
| 162 | #ifndef FC_LCD_FILTER | ||
| 163 | /* Older fontconfig versions don't have FC_LCD_FILTER. */ | ||
| 164 | #define FC_LCD_FILTER "lcdfilter" | ||
| 165 | #endif | ||
| 166 | if (FcResultMatch == FcPatternGetInteger (pat, FC_LCD_FILTER, 0, &i)) | ||
| 167 | { | ||
| 168 | FcPatternDel (match, FC_LCD_FILTER); | ||
| 169 | FcPatternAddInteger (match, FC_LCD_FILTER, i); | ||
| 170 | } | ||
| 171 | if (FcResultMatch == FcPatternGetInteger (pat, FC_RGBA, 0, &i)) | ||
| 172 | { | ||
| 173 | FcPatternDel (match, FC_RGBA); | ||
| 174 | FcPatternAddInteger (match, FC_RGBA, i); | ||
| 175 | } | ||
| 176 | if (FcResultMatch == FcPatternGetDouble (pat, FC_DPI, 0, &dpi)) | ||
| 177 | { | ||
| 178 | FcPatternDel (match, FC_DPI); | ||
| 179 | FcPatternAddDouble (match, FC_DPI, dpi); | ||
| 180 | } | ||
| 181 | } | ||
| 182 | |||
| 183 | static void | ||
| 184 | xftfont_add_rendering_parameters (FcPattern *pat, Lisp_Object entity) | ||
| 185 | { | ||
| 186 | Lisp_Object tail; | ||
| 187 | int ival; | ||
| 188 | |||
| 189 | for (tail = AREF (entity, FONT_EXTRA_INDEX); CONSP (tail); tail = XCDR (tail)) | ||
| 190 | { | ||
| 191 | Lisp_Object key = XCAR (XCAR (tail)); | ||
| 192 | Lisp_Object val = XCDR (XCAR (tail)); | ||
| 193 | |||
| 194 | if (EQ (key, QCantialias)) | ||
| 195 | FcPatternAddBool (pat, FC_ANTIALIAS, NILP (val) ? FcFalse : FcTrue); | ||
| 196 | else if (EQ (key, QChinting)) | ||
| 197 | FcPatternAddBool (pat, FC_HINTING, NILP (val) ? FcFalse : FcTrue); | ||
| 198 | else if (EQ (key, QCautohint)) | ||
| 199 | FcPatternAddBool (pat, FC_AUTOHINT, NILP (val) ? FcFalse : FcTrue); | ||
| 200 | else if (EQ (key, QChintstyle)) | ||
| 201 | { | ||
| 202 | if (FIXNUMP (val)) | ||
| 203 | FcPatternAddInteger (pat, FC_HINT_STYLE, XFIXNUM (val)); | ||
| 204 | else if (SYMBOLP (val) | ||
| 205 | && FcNameConstant (SDATA (SYMBOL_NAME (val)), &ival)) | ||
| 206 | FcPatternAddInteger (pat, FC_HINT_STYLE, ival); | ||
| 207 | } | ||
| 208 | else if (EQ (key, QCrgba)) | ||
| 209 | { | ||
| 210 | if (FIXNUMP (val)) | ||
| 211 | FcPatternAddInteger (pat, FC_RGBA, XFIXNUM (val)); | ||
| 212 | else if (SYMBOLP (val) | ||
| 213 | && FcNameConstant (SDATA (SYMBOL_NAME (val)), &ival)) | ||
| 214 | FcPatternAddInteger (pat, FC_RGBA, ival); | ||
| 215 | } | ||
| 216 | else if (EQ (key, QClcdfilter)) | ||
| 217 | { | ||
| 218 | if (FIXNUMP (val)) | ||
| 219 | FcPatternAddInteger (pat, FC_LCD_FILTER, ival = XFIXNUM (val)); | ||
| 220 | else if (SYMBOLP (val) | ||
| 221 | && FcNameConstant (SDATA (SYMBOL_NAME (val)), &ival)) | ||
| 222 | FcPatternAddInteger (pat, FC_LCD_FILTER, ival); | ||
| 223 | } | ||
| 224 | #ifdef FC_EMBOLDEN | ||
| 225 | else if (EQ (key, QCembolden)) | ||
| 226 | FcPatternAddBool (pat, FC_EMBOLDEN, NILP (val) ? FcFalse : FcTrue); | ||
| 227 | #endif | ||
| 228 | } | ||
| 229 | } | ||
| 230 | |||
| 231 | static Lisp_Object | 130 | static Lisp_Object |
| 232 | xftfont_open (struct frame *f, Lisp_Object entity, int pixel_size) | 131 | xftfont_open (struct frame *f, Lisp_Object entity, int pixel_size) |
| 233 | { | 132 | { |
| 234 | FcResult result; | 133 | FcResult result; |
| 235 | Display *display = FRAME_X_DISPLAY (f); | 134 | Display *display = FRAME_X_DISPLAY (f); |
| 236 | Lisp_Object val, filename, idx, font_object; | 135 | Lisp_Object val, filename, font_object; |
| 237 | FcPattern *pat = NULL, *match; | 136 | FcPattern *pat = NULL, *match; |
| 238 | struct font_info *xftfont_info = NULL; | 137 | struct font_info *xftfont_info = NULL; |
| 239 | struct font *font; | 138 | struct font *font; |
| 240 | double size = 0; | 139 | double size = 0; |
| 241 | XftFont *xftfont = NULL; | 140 | XftFont *xftfont = NULL; |
| 242 | int spacing; | 141 | int spacing; |
| 243 | int i; | ||
| 244 | XGlyphInfo extents; | 142 | XGlyphInfo extents; |
| 245 | FT_Face ft_face; | 143 | FT_Face ft_face; |
| 246 | FcMatrix *matrix; | 144 | FcMatrix *matrix; |
| @@ -250,52 +148,17 @@ xftfont_open (struct frame *f, Lisp_Object entity, int pixel_size) | |||
| 250 | return Qnil; | 148 | return Qnil; |
| 251 | val = XCDR (val); | 149 | val = XCDR (val); |
| 252 | filename = XCAR (val); | 150 | filename = XCAR (val); |
| 253 | idx = XCDR (val); | ||
| 254 | size = XFIXNUM (AREF (entity, FONT_SIZE_INDEX)); | 151 | size = XFIXNUM (AREF (entity, FONT_SIZE_INDEX)); |
| 255 | if (size == 0) | 152 | if (size == 0) |
| 256 | size = pixel_size; | 153 | size = pixel_size; |
| 257 | pat = FcPatternCreate (); | ||
| 258 | FcPatternAddInteger (pat, FC_WEIGHT, FONT_WEIGHT_NUMERIC (entity)); | ||
| 259 | i = FONT_SLANT_NUMERIC (entity) - 100; | ||
| 260 | if (i < 0) i = 0; | ||
| 261 | FcPatternAddInteger (pat, FC_SLANT, i); | ||
| 262 | FcPatternAddInteger (pat, FC_WIDTH, FONT_WIDTH_NUMERIC (entity)); | ||
| 263 | FcPatternAddDouble (pat, FC_PIXEL_SIZE, pixel_size); | ||
| 264 | val = AREF (entity, FONT_FAMILY_INDEX); | ||
| 265 | if (! NILP (val)) | ||
| 266 | FcPatternAddString (pat, FC_FAMILY, (FcChar8 *) SDATA (SYMBOL_NAME (val))); | ||
| 267 | val = AREF (entity, FONT_FOUNDRY_INDEX); | ||
| 268 | if (! NILP (val)) | ||
| 269 | FcPatternAddString (pat, FC_FOUNDRY, (FcChar8 *) SDATA (SYMBOL_NAME (val))); | ||
| 270 | val = AREF (entity, FONT_SPACING_INDEX); | ||
| 271 | if (! NILP (val)) | ||
| 272 | FcPatternAddInteger (pat, FC_SPACING, XFIXNUM (val)); | ||
| 273 | val = AREF (entity, FONT_DPI_INDEX); | ||
| 274 | if (! NILP (val)) | ||
| 275 | { | ||
| 276 | double dbl = XFIXNUM (val); | ||
| 277 | |||
| 278 | FcPatternAddDouble (pat, FC_DPI, dbl); | ||
| 279 | } | ||
| 280 | val = AREF (entity, FONT_AVGWIDTH_INDEX); | ||
| 281 | if (FIXNUMP (val) && XFIXNUM (val) == 0) | ||
| 282 | FcPatternAddBool (pat, FC_SCALABLE, FcTrue); | ||
| 283 | /* This is necessary to identify the exact font (e.g. 10x20.pcf.gz | ||
| 284 | over 10x20-ISO8859-1.pcf.gz). */ | ||
| 285 | FcPatternAddCharSet (pat, FC_CHARSET, ftfont_get_fc_charset (entity)); | ||
| 286 | |||
| 287 | xftfont_add_rendering_parameters (pat, entity); | ||
| 288 | |||
| 289 | FcPatternAddString (pat, FC_FILE, (FcChar8 *) SDATA (filename)); | ||
| 290 | FcPatternAddInteger (pat, FC_INDEX, XFIXNUM (idx)); | ||
| 291 | |||
| 292 | 154 | ||
| 293 | block_input (); | 155 | block_input (); |
| 294 | 156 | ||
| 157 | pat = ftfont_entity_pattern (entity, pixel_size); | ||
| 295 | /* Substitute in values from X resources and XftDefaultSet. */ | 158 | /* Substitute in values from X resources and XftDefaultSet. */ |
| 296 | XftDefaultSubstitute (display, FRAME_X_SCREEN_NUMBER (f), pat); | 159 | XftDefaultSubstitute (display, FRAME_X_SCREEN_NUMBER (f), pat); |
| 297 | match = XftFontMatch (display, FRAME_X_SCREEN_NUMBER (f), pat, &result); | 160 | match = XftFontMatch (display, FRAME_X_SCREEN_NUMBER (f), pat, &result); |
| 298 | xftfont_fix_match (pat, match); | 161 | ftfont_fix_match (pat, match); |
| 299 | 162 | ||
| 300 | FcPatternDestroy (pat); | 163 | FcPatternDestroy (pat); |
| 301 | xftfont = XftFontOpenPattern (display, match); | 164 | xftfont = XftFontOpenPattern (display, match); |
| @@ -536,7 +399,7 @@ xftfont_encode_char (struct font *font, int c) | |||
| 536 | } | 399 | } |
| 537 | 400 | ||
| 538 | static void | 401 | static void |
| 539 | xftfont_text_extents (struct font *font, unsigned int *code, | 402 | xftfont_text_extents (struct font *font, const unsigned int *code, |
| 540 | int nglyphs, struct font_metrics *metrics) | 403 | int nglyphs, struct font_metrics *metrics) |
| 541 | { | 404 | { |
| 542 | struct font_info *xftfont_info = (struct font_info *) font; | 405 | struct font_info *xftfont_info = (struct font_info *) font; |
| @@ -621,8 +484,7 @@ xftfont_draw (struct glyph_string *s, int from, int to, int x, int y, | |||
| 621 | } | 484 | } |
| 622 | code = alloca (sizeof (FT_UInt) * len); | 485 | code = alloca (sizeof (FT_UInt) * len); |
| 623 | for (i = 0; i < len; i++) | 486 | for (i = 0; i < len; i++) |
| 624 | code[i] = ((XCHAR2B_BYTE1 (s->char2b + from + i) << 8) | 487 | code[i] = s->char2b[from + i]; |
| 625 | | XCHAR2B_BYTE2 (s->char2b + from + i)); | ||
| 626 | 488 | ||
| 627 | if (s->padding_p) | 489 | if (s->padding_p) |
| 628 | for (i = 0; i < len; i++) | 490 | for (i = 0; i < len; i++) |
| @@ -696,7 +558,7 @@ xftfont_cached_font_ok (struct frame *f, Lisp_Object font_object, | |||
| 696 | bool ok = false; | 558 | bool ok = false; |
| 697 | int i1, i2, r1, r2; | 559 | int i1, i2, r1, r2; |
| 698 | 560 | ||
| 699 | xftfont_add_rendering_parameters (pat, entity); | 561 | ftfont_add_rendering_parameters (pat, entity); |
| 700 | XftDefaultSubstitute (display, FRAME_X_SCREEN_NUMBER (f), pat); | 562 | XftDefaultSubstitute (display, FRAME_X_SCREEN_NUMBER (f), pat); |
| 701 | 563 | ||
| 702 | r1 = FcPatternGetBool (pat, FC_ANTIALIAS, 0, &b1); | 564 | r1 = FcPatternGetBool (pat, FC_ANTIALIAS, 0, &b1); |
| @@ -769,12 +631,6 @@ void | |||
| 769 | syms_of_xftfont (void) | 631 | syms_of_xftfont (void) |
| 770 | { | 632 | { |
| 771 | DEFSYM (Qxft, "xft"); | 633 | DEFSYM (Qxft, "xft"); |
| 772 | DEFSYM (QChinting, ":hinting"); | ||
| 773 | DEFSYM (QCautohint, ":autohint"); | ||
| 774 | DEFSYM (QChintstyle, ":hintstyle"); | ||
| 775 | DEFSYM (QCrgba, ":rgba"); | ||
| 776 | DEFSYM (QCembolden, ":embolden"); | ||
| 777 | DEFSYM (QClcdfilter, ":lcdfilter"); | ||
| 778 | 634 | ||
| 779 | DEFVAR_BOOL ("xft-font-ascent-descent-override", | 635 | DEFVAR_BOOL ("xft-font-ascent-descent-override", |
| 780 | xft_font_ascent_descent_override, | 636 | xft_font_ascent_descent_override, |
diff --git a/src/xterm.c b/src/xterm.c index 4f4a1d6d02a..559d1b48924 100644 --- a/src/xterm.c +++ b/src/xterm.c | |||
| @@ -1599,13 +1599,8 @@ x_compute_glyph_string_overhangs (struct glyph_string *s) | |||
| 1599 | 1599 | ||
| 1600 | if (s->first_glyph->type == CHAR_GLYPH) | 1600 | if (s->first_glyph->type == CHAR_GLYPH) |
| 1601 | { | 1601 | { |
| 1602 | unsigned *code = alloca (sizeof (unsigned) * s->nchars); | ||
| 1603 | struct font *font = s->font; | 1602 | struct font *font = s->font; |
| 1604 | int i; | 1603 | font->driver->text_extents (font, s->char2b, s->nchars, &metrics); |
| 1605 | |||
| 1606 | for (i = 0; i < s->nchars; i++) | ||
| 1607 | code[i] = (s->char2b[i].byte1 << 8) | s->char2b[i].byte2; | ||
| 1608 | font->driver->text_extents (font, code, s->nchars, &metrics); | ||
| 1609 | } | 1604 | } |
| 1610 | else | 1605 | else |
| 1611 | { | 1606 | { |
| @@ -1831,7 +1826,7 @@ static void | |||
| 1831 | x_draw_glyphless_glyph_string_foreground (struct glyph_string *s) | 1826 | x_draw_glyphless_glyph_string_foreground (struct glyph_string *s) |
| 1832 | { | 1827 | { |
| 1833 | struct glyph *glyph = s->first_glyph; | 1828 | struct glyph *glyph = s->first_glyph; |
| 1834 | XChar2b char2b[8]; | 1829 | unsigned char2b[8]; |
| 1835 | int x, i, j; | 1830 | int x, i, j; |
| 1836 | 1831 | ||
| 1837 | /* If first glyph of S has a left box line, start drawing the text | 1832 | /* If first glyph of S has a left box line, start drawing the text |
| @@ -1882,14 +1877,10 @@ x_draw_glyphless_glyph_string_foreground (struct glyph_string *s) | |||
| 1882 | if (str) | 1877 | if (str) |
| 1883 | { | 1878 | { |
| 1884 | int upper_len = (len + 1) / 2; | 1879 | int upper_len = (len + 1) / 2; |
| 1885 | unsigned code; | ||
| 1886 | 1880 | ||
| 1887 | /* It is assured that all LEN characters in STR is ASCII. */ | 1881 | /* It is assured that all LEN characters in STR is ASCII. */ |
| 1888 | for (j = 0; j < len; j++) | 1882 | for (j = 0; j < len; j++) |
| 1889 | { | 1883 | char2b[j] = s->font->driver->encode_char (s->font, str[j]) & 0xFFFF; |
| 1890 | code = s->font->driver->encode_char (s->font, str[j]); | ||
| 1891 | STORE_XCHAR2B (char2b + j, code >> 8, code & 0xFF); | ||
| 1892 | } | ||
| 1893 | s->font->driver->draw (s, 0, upper_len, | 1884 | s->font->driver->draw (s, 0, upper_len, |
| 1894 | x + glyph->slice.glyphless.upper_xoff, | 1885 | x + glyph->slice.glyphless.upper_xoff, |
| 1895 | s->ybase + glyph->slice.glyphless.upper_yoff, | 1886 | s->ybase + glyph->slice.glyphless.upper_yoff, |
| @@ -8200,7 +8191,7 @@ handle_one_xevent (struct x_display_info *dpyinfo, | |||
| 8200 | fit in 81 bytes. So, we must prepare sufficient | 8191 | fit in 81 bytes. So, we must prepare sufficient |
| 8201 | bytes for copy_buffer. 513 bytes (256 chars for | 8192 | bytes for copy_buffer. 513 bytes (256 chars for |
| 8202 | two-byte character set) seems to be a fairly good | 8193 | two-byte character set) seems to be a fairly good |
| 8203 | approximation. -- 2000.8.10 handa@etl.go.jp */ | 8194 | approximation. -- 2000.8.10 handa@gnu.org */ |
| 8204 | unsigned char copy_buffer[513]; | 8195 | unsigned char copy_buffer[513]; |
| 8205 | unsigned char *copy_bufptr = copy_buffer; | 8196 | unsigned char *copy_bufptr = copy_buffer; |
| 8206 | int copy_bufsiz = sizeof (copy_buffer); | 8197 | int copy_bufsiz = sizeof (copy_buffer); |
| @@ -9356,7 +9347,7 @@ x_draw_bar_cursor (struct window *w, struct glyph_row *row, int width, enum text | |||
| 9356 | /* RIF: Define cursor CURSOR on frame F. */ | 9347 | /* RIF: Define cursor CURSOR on frame F. */ |
| 9357 | 9348 | ||
| 9358 | static void | 9349 | static void |
| 9359 | x_define_frame_cursor (struct frame *f, Cursor cursor) | 9350 | x_define_frame_cursor (struct frame *f, Emacs_Cursor cursor) |
| 9360 | { | 9351 | { |
| 9361 | if (!f->pointer_invisible | 9352 | if (!f->pointer_invisible |
| 9362 | && f->output_data.x->current_cursor != cursor) | 9353 | && f->output_data.x->current_cursor != cursor) |
| @@ -12161,7 +12152,7 @@ x_check_font (struct frame *f, struct font *font) | |||
| 12161 | ***********************************************************************/ | 12152 | ***********************************************************************/ |
| 12162 | 12153 | ||
| 12163 | static void | 12154 | static void |
| 12164 | x_free_pixmap (struct frame *f, Pixmap pixmap) | 12155 | x_free_pixmap (struct frame *f, Emacs_Pixmap pixmap) |
| 12165 | { | 12156 | { |
| 12166 | XFreePixmap (FRAME_X_DISPLAY (f), pixmap); | 12157 | XFreePixmap (FRAME_X_DISPLAY (f), pixmap); |
| 12167 | } | 12158 | } |
diff --git a/src/xterm.h b/src/xterm.h index 84030d5c25e..ce1443c381c 100644 --- a/src/xterm.h +++ b/src/xterm.h | |||
| @@ -731,8 +731,6 @@ struct x_output | |||
| 731 | #endif | 731 | #endif |
| 732 | }; | 732 | }; |
| 733 | 733 | ||
| 734 | #define No_Cursor (None) | ||
| 735 | |||
| 736 | enum | 734 | enum |
| 737 | { | 735 | { |
| 738 | /* Values for focus_state, used as bit mask. | 736 | /* Values for focus_state, used as bit mask. |
| @@ -1224,7 +1222,8 @@ extern void destroy_frame_xic (struct frame *); | |||
| 1224 | extern void xic_set_preeditarea (struct window *, int, int); | 1222 | extern void xic_set_preeditarea (struct window *, int, int); |
| 1225 | extern void xic_set_statusarea (struct frame *); | 1223 | extern void xic_set_statusarea (struct frame *); |
| 1226 | extern void xic_set_xfontset (struct frame *, const char *); | 1224 | extern void xic_set_xfontset (struct frame *, const char *); |
| 1227 | extern bool x_defined_color (struct frame *, const char *, XColor *, bool, bool); | 1225 | extern bool x_defined_color (struct frame *, const char *, Emacs_Color *, |
| 1226 | bool, bool); | ||
| 1228 | #ifdef HAVE_X_I18N | 1227 | #ifdef HAVE_X_I18N |
| 1229 | extern void free_frame_xic (struct frame *); | 1228 | extern void free_frame_xic (struct frame *); |
| 1230 | # if defined HAVE_X_WINDOWS && defined USE_X_TOOLKIT | 1229 | # if defined HAVE_X_WINDOWS && defined USE_X_TOOLKIT |
| @@ -1263,15 +1262,6 @@ extern void x_session_close (void); | |||
| 1263 | 1262 | ||
| 1264 | #define FRAME_X_EMBEDDED_P(f) (FRAME_X_OUTPUT(f)->explicit_parent != 0) | 1263 | #define FRAME_X_EMBEDDED_P(f) (FRAME_X_OUTPUT(f)->explicit_parent != 0) |
| 1265 | 1264 | ||
| 1266 | #define STORE_XCHAR2B(chp, b1, b2) \ | ||
| 1267 | ((chp)->byte1 = (b1), (chp)->byte2 = (b2)) | ||
| 1268 | |||
| 1269 | #define XCHAR2B_BYTE1(chp) \ | ||
| 1270 | ((chp)->byte1) | ||
| 1271 | |||
| 1272 | #define XCHAR2B_BYTE2(chp) \ | ||
| 1273 | ((chp)->byte2) | ||
| 1274 | |||
| 1275 | #define STORE_NATIVE_RECT(nr,rx,ry,rwidth,rheight) \ | 1265 | #define STORE_NATIVE_RECT(nr,rx,ry,rwidth,rheight) \ |
| 1276 | ((nr).x = (rx), \ | 1266 | ((nr).x = (rx), \ |
| 1277 | (nr).y = (ry), \ | 1267 | (nr).y = (ry), \ |
diff --git a/test/lisp/autorevert-tests.el b/test/lisp/autorevert-tests.el index 0cc5b9c4e9d..5024a2daf0a 100644 --- a/test/lisp/autorevert-tests.el +++ b/test/lisp/autorevert-tests.el | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | ;;; auto-revert-tests.el --- Tests of auto-revert | 1 | ;;; auto-revert-tests.el --- Tests of auto-revert -*- lexical-binding: t -*- |
| 2 | 2 | ||
| 3 | ;; Copyright (C) 2015-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 2015-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| @@ -150,7 +150,7 @@ This expects `auto-revert--messages' to be bound by | |||
| 150 | (tramp-dissect-file-name temporary-file-directory) nil 'keep-password) | 150 | (tramp-dissect-file-name temporary-file-directory) nil 'keep-password) |
| 151 | (condition-case err | 151 | (condition-case err |
| 152 | (funcall (ert-test-body ert-test)) | 152 | (funcall (ert-test-body ert-test)) |
| 153 | (error (message "%s" err) (signal car err cdr err)))))) | 153 | (error (message "%s" err) (signal (car err) (cdr err))))))) |
| 154 | 154 | ||
| 155 | (ert-deftest auto-revert-test00-auto-revert-mode () | 155 | (ert-deftest auto-revert-test00-auto-revert-mode () |
| 156 | "Check autorevert for a file." | 156 | "Check autorevert for a file." |
| @@ -310,8 +310,9 @@ This expects `auto-revert--messages' to be bound by | |||
| 310 | ;; notification should be disabled, falling back to | 310 | ;; notification should be disabled, falling back to |
| 311 | ;; polling. | 311 | ;; polling. |
| 312 | (should (string-match "any text" (buffer-string))) | 312 | (should (string-match "any text" (buffer-string))) |
| 313 | ;; With w32notify, the 'stopped' events are not sent. | 313 | ;; With w32notify, and on emba, the `stopped' events are not sent. |
| 314 | (or (eq file-notify--library 'w32notify) | 314 | (or (eq file-notify--library 'w32notify) |
| 315 | (getenv "EMACS_EMBA_CI") | ||
| 315 | (should-not auto-revert-notify-watch-descriptor)) | 316 | (should-not auto-revert-notify-watch-descriptor)) |
| 316 | 317 | ||
| 317 | ;; Once the file has been recreated, the buffer shall be | 318 | ;; Once the file has been recreated, the buffer shall be |
| @@ -435,6 +436,111 @@ This expects `auto-revert--messages' to be bound by | |||
| 435 | (auto-revert--deftest-remote auto-revert-test04-auto-revert-mode-dired | 436 | (auto-revert--deftest-remote auto-revert-test04-auto-revert-mode-dired |
| 436 | "Check remote autorevert for dired.") | 437 | "Check remote autorevert for dired.") |
| 437 | 438 | ||
| 439 | (defun auto-revert-test--write-file (string file) | ||
| 440 | "Write STRING to FILE." | ||
| 441 | (write-region string nil file nil 'no-message)) | ||
| 442 | |||
| 443 | (defun auto-revert-test--buffer-string (buffer) | ||
| 444 | "Contents of BUFFER as a string." | ||
| 445 | (with-current-buffer buffer | ||
| 446 | (buffer-string))) | ||
| 447 | |||
| 448 | (defun auto-revert-test--wait-for (pred max-wait) | ||
| 449 | "Wait until PRED is true, or MAX-WAIT seconds elapsed." | ||
| 450 | (let ((ct (current-time))) | ||
| 451 | (while (and (< (float-time (time-subtract (current-time) ct)) max-wait) | ||
| 452 | (not (funcall pred))) | ||
| 453 | (read-event nil nil 0.1)))) | ||
| 454 | |||
| 455 | (defun auto-revert-test--wait-for-buffer-text (buffer string max-wait) | ||
| 456 | "Wait until BUFFER has the contents STRING, or MAX-WAIT seconds elapsed." | ||
| 457 | (auto-revert-test--wait-for | ||
| 458 | (lambda () (string-equal (auto-revert-test--buffer-string buffer) string)) | ||
| 459 | max-wait)) | ||
| 460 | |||
| 461 | (ert-deftest auto-revert-test05-global-notify () | ||
| 462 | "Test `global-auto-revert-mode' without polling." | ||
| 463 | :tags '(:expensive-test) | ||
| 464 | (skip-unless (or file-notify--library | ||
| 465 | (file-remote-p temporary-file-directory))) | ||
| 466 | (let* ((auto-revert-use-notify t) | ||
| 467 | (auto-revert-avoid-polling t) | ||
| 468 | (was-in-global-auto-revert-mode global-auto-revert-mode) | ||
| 469 | (file-1 (make-temp-file "global-auto-revert-test-1")) | ||
| 470 | (file-2 (make-temp-file "global-auto-revert-test-2")) | ||
| 471 | (file-3 (make-temp-file "global-auto-revert-test-3")) | ||
| 472 | (file-2b (concat file-2 "-b")) | ||
| 473 | buf-1 buf-2 buf-3) | ||
| 474 | (unwind-protect | ||
| 475 | (progn | ||
| 476 | (setq buf-1 (find-file-noselect file-1)) | ||
| 477 | (setq buf-2 (find-file-noselect file-2)) | ||
| 478 | (auto-revert-test--write-file "1-a" file-1) | ||
| 479 | (should (equal (auto-revert-test--buffer-string buf-1) "")) | ||
| 480 | |||
| 481 | (global-auto-revert-mode 1) ; Turn it on. | ||
| 482 | |||
| 483 | (should (buffer-local-value | ||
| 484 | 'auto-revert-notify-watch-descriptor buf-1)) | ||
| 485 | (should (buffer-local-value | ||
| 486 | 'auto-revert-notify-watch-descriptor buf-2)) | ||
| 487 | |||
| 488 | ;; buf-1 should have been reverted immediately when the mode | ||
| 489 | ;; was enabled. | ||
| 490 | (should (equal (auto-revert-test--buffer-string buf-1) "1-a")) | ||
| 491 | |||
| 492 | ;; Alter a file. | ||
| 493 | (auto-revert-test--write-file "2-a" file-2) | ||
| 494 | ;; Allow for some time to handle notification events. | ||
| 495 | (auto-revert-test--wait-for-buffer-text buf-2 "2-a" 1) | ||
| 496 | (should (equal (auto-revert-test--buffer-string buf-2) "2-a")) | ||
| 497 | |||
| 498 | ;; Visit a file, and modify it on disk. | ||
| 499 | (setq buf-3 (find-file-noselect file-3)) | ||
| 500 | ;; Newly opened buffers won't be use notification until the | ||
| 501 | ;; first poll cycle; wait for it. | ||
| 502 | (auto-revert-test--wait-for | ||
| 503 | (lambda () (buffer-local-value | ||
| 504 | 'auto-revert-notify-watch-descriptor buf-3)) | ||
| 505 | (+ auto-revert-interval 1)) | ||
| 506 | (should (buffer-local-value | ||
| 507 | 'auto-revert-notify-watch-descriptor buf-3)) | ||
| 508 | (auto-revert-test--write-file "3-a" file-3) | ||
| 509 | (auto-revert-test--wait-for-buffer-text buf-3 "3-a" 1) | ||
| 510 | (should (equal (auto-revert-test--buffer-string buf-3) "3-a")) | ||
| 511 | |||
| 512 | ;; Delete a visited file, and re-create it with new contents. | ||
| 513 | (delete-file file-1) | ||
| 514 | (sleep-for 0.5) | ||
| 515 | (should (equal (auto-revert-test--buffer-string buf-1) "1-a")) | ||
| 516 | (auto-revert-test--write-file "1-b" file-1) | ||
| 517 | (auto-revert-test--wait-for-buffer-text buf-1 "1-b" | ||
| 518 | (+ auto-revert-interval 1)) | ||
| 519 | (should (buffer-local-value | ||
| 520 | 'auto-revert-notify-watch-descriptor buf-1)) | ||
| 521 | |||
| 522 | ;; Write a buffer to a new file, then modify the new file on disk. | ||
| 523 | (with-current-buffer buf-2 | ||
| 524 | (write-file file-2b)) | ||
| 525 | (should (equal (auto-revert-test--buffer-string buf-2) "2-a")) | ||
| 526 | (auto-revert-test--write-file "2-b" file-2b) | ||
| 527 | (auto-revert-test--wait-for-buffer-text buf-2 "2-b" | ||
| 528 | (+ auto-revert-interval 1)) | ||
| 529 | (should (buffer-local-value | ||
| 530 | 'auto-revert-notify-watch-descriptor buf-2))) | ||
| 531 | |||
| 532 | ;; Clean up. | ||
| 533 | (unless was-in-global-auto-revert-mode | ||
| 534 | (global-auto-revert-mode 0)) ; Turn it off. | ||
| 535 | (dolist (buf (list buf-1 buf-2 buf-3)) | ||
| 536 | (ignore-errors (kill-buffer buf))) | ||
| 537 | (dolist (file (list file-1 file-2 file-2b file-3)) | ||
| 538 | (ignore-errors (delete-file file))) | ||
| 539 | ))) | ||
| 540 | |||
| 541 | (auto-revert--deftest-remote auto-revert-test04-auto-revert-mode-dired | ||
| 542 | "Test `global-auto-revert-mode' without polling for remote buffers.") | ||
| 543 | |||
| 438 | (defun auto-revert-test-all (&optional interactive) | 544 | (defun auto-revert-test-all (&optional interactive) |
| 439 | "Run all tests for \\[auto-revert]." | 545 | "Run all tests for \\[auto-revert]." |
| 440 | (interactive "p") | 546 | (interactive "p") |
diff --git a/test/lisp/delim-col-tests.el b/test/lisp/delim-col-tests.el new file mode 100644 index 00000000000..f2a0377b07b --- /dev/null +++ b/test/lisp/delim-col-tests.el | |||
| @@ -0,0 +1,181 @@ | |||
| 1 | ;;; delim-col-tests.el --- Tests for delim-col.el -*- lexical-binding: t; -*- | ||
| 2 | |||
| 3 | ;; Copyright (C) 2019 Free Software Foundation, Inc. | ||
| 4 | |||
| 5 | ;; Author: Stefan Kangas <stefankangas@gmail.com> | ||
| 6 | |||
| 7 | ;; This file is part of GNU Emacs. | ||
| 8 | |||
| 9 | ;; GNU Emacs is free software: you can redistribute it and/or modify | ||
| 10 | ;; it under the terms of the GNU General Public License as published by | ||
| 11 | ;; the Free Software Foundation, either version 3 of the License, or | ||
| 12 | ;; (at your option) any later version. | ||
| 13 | |||
| 14 | ;; GNU Emacs is distributed in the hope that it will be useful, | ||
| 15 | ;; but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 16 | ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 17 | ;; GNU General Public License for more details. | ||
| 18 | |||
| 19 | ;; You should have received a copy of the GNU General Public License | ||
| 20 | ;; along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>. | ||
| 21 | |||
| 22 | ;;; Commentary: | ||
| 23 | |||
| 24 | ;;; Code: | ||
| 25 | |||
| 26 | (require 'ert) | ||
| 27 | (require 'delim-col) | ||
| 28 | |||
| 29 | (ert-deftest delim-col-tests-delimit-columns () | ||
| 30 | (with-temp-buffer | ||
| 31 | (insert "a b c\n") | ||
| 32 | (delimit-columns-region (point-min) (point-max)) | ||
| 33 | (should (equal (buffer-string) "a, b, c\n"))) | ||
| 34 | (with-temp-buffer | ||
| 35 | (insert "a b c d\n" | ||
| 36 | "aaaa bb ccc ddddd\n" | ||
| 37 | "aaa bbb cccc dddd\n" | ||
| 38 | "aa bb ccccccc ddd\n") | ||
| 39 | (delimit-columns-region (point-min) (point-max)) | ||
| 40 | (should (equal (buffer-string) | ||
| 41 | (concat "a, b, c, d \n" | ||
| 42 | "aaaa, bb, ccc, ddddd\n" | ||
| 43 | "aaa, bbb, cccc, dddd \n" | ||
| 44 | "aa, bb, ccccccc, ddd \n"))))) | ||
| 45 | |||
| 46 | (ert-deftest delim-col-tests-delimit-rectangle () | ||
| 47 | (with-temp-buffer | ||
| 48 | (insert "a b c d\n" | ||
| 49 | "aaaa bb ccc ddddd\n" | ||
| 50 | "aaa bbb cccc dddd\n" | ||
| 51 | "aa bb ccccccc ddd\n") | ||
| 52 | (delimit-columns-rectangle 3 58) ; from first b to last c | ||
| 53 | (should (equal (buffer-string) | ||
| 54 | (concat "a b, c d\n" | ||
| 55 | "aaaa bb, ccc ddddd\n" | ||
| 56 | "aaa bbb, cccc dddd\n" | ||
| 57 | "aa bb, ccccccc ddd\n"))))) | ||
| 58 | |||
| 59 | (ert-deftest delim-col-tests-delimit-columns-str-separator () | ||
| 60 | (let ((delimit-columns-str-separator ":")) | ||
| 61 | (with-temp-buffer | ||
| 62 | (insert "a b\n") | ||
| 63 | (delimit-columns-region (point-min) (point-max)) | ||
| 64 | (should (equal (buffer-string) "a:b\n"))) | ||
| 65 | (with-temp-buffer | ||
| 66 | (insert "a b c d\n" | ||
| 67 | "aa bb cc dd\n") | ||
| 68 | (delimit-columns-rectangle 3 16) ; from first b to last c | ||
| 69 | (should (equal (buffer-string) | ||
| 70 | (concat "a b: c d\n" | ||
| 71 | "aa bb:cc dd\n")))))) | ||
| 72 | |||
| 73 | (ert-deftest delim-col-tests-delimit-columns-str-before-after () | ||
| 74 | (let ((delimit-columns-str-before "[ ") | ||
| 75 | (delimit-columns-str-after " ]")) | ||
| 76 | (with-temp-buffer | ||
| 77 | (insert "a b c\n") | ||
| 78 | (delimit-columns-region (point-min) (point-max)) | ||
| 79 | (should (equal (buffer-string) "[ a, b, c ]\n"))) | ||
| 80 | (with-temp-buffer | ||
| 81 | (insert "a b c d\n" | ||
| 82 | "aaaa bb ccc ddddd\n" | ||
| 83 | "aaa bbb cccc dddd\n" | ||
| 84 | "aa bb ccccccc ddd\n") | ||
| 85 | (delimit-columns-region (point-min) (point-max)) | ||
| 86 | (should (equal (buffer-string) | ||
| 87 | (concat "[ a, b, c, d ]\n" | ||
| 88 | "[ aaaa, bb, ccc, ddddd ]\n" | ||
| 89 | "[ aaa, bbb, cccc, dddd ]\n" | ||
| 90 | "[ aa, bb, ccccccc, ddd ]\n")))) | ||
| 91 | (with-temp-buffer | ||
| 92 | (insert "a b c d\n" | ||
| 93 | "aaaa bb ccc ddddd\n" | ||
| 94 | "aaa bbb cccc dddd\n" | ||
| 95 | "aa bb ccccccc ddd\n") | ||
| 96 | (delimit-columns-rectangle 3 58) ; from first b to last c | ||
| 97 | (should (equal (buffer-string) | ||
| 98 | (concat "a [ b, c ] d\n" | ||
| 99 | "aaaa [ bb, ccc ] ddddd\n" | ||
| 100 | "aaa [ bbb, cccc ] dddd\n" | ||
| 101 | "aa [ bb, ccccccc ] ddd\n")))))) | ||
| 102 | |||
| 103 | (ert-deftest delim-col-tests-delimit-colummns-before-after () | ||
| 104 | (let ((delimit-columns-before "<") | ||
| 105 | (delimit-columns-after ">")) | ||
| 106 | (with-temp-buffer | ||
| 107 | (insert "a b\n") | ||
| 108 | (delimit-columns-region (point-min) (point-max)) | ||
| 109 | (should (equal (buffer-string) "<a>, <b>\n"))) | ||
| 110 | (with-temp-buffer | ||
| 111 | (insert "a b c d\n" | ||
| 112 | "aa bb cc dd\n") | ||
| 113 | (delimit-columns-rectangle 3 17) | ||
| 114 | (should (equal (buffer-string) | ||
| 115 | (concat "a <b>, <c> d\n" | ||
| 116 | "aa <bb>, <cc> dd\n")))))) | ||
| 117 | |||
| 118 | (ert-deftest delim-col-tests-delimit-columns-separator () | ||
| 119 | (let ((delimit-columns-separator ",")) | ||
| 120 | (with-temp-buffer | ||
| 121 | (insert "a,b,c\n") | ||
| 122 | (delimit-columns-region (point-min) (point-max)) | ||
| 123 | (should (equal (buffer-string) "a, b, c\n"))))) | ||
| 124 | |||
| 125 | (ert-deftest delim-col-tests-delimit-columns-format/nil () | ||
| 126 | (let ((delimit-columns-format nil)) | ||
| 127 | (with-temp-buffer | ||
| 128 | (insert "a b\n" | ||
| 129 | "aa bb\n") | ||
| 130 | (delimit-columns-region (point-min) (point-max)) | ||
| 131 | (should (equal (buffer-string) | ||
| 132 | (concat "a, b\n" | ||
| 133 | "aa, bb\n")))) | ||
| 134 | (with-temp-buffer | ||
| 135 | (insert "a b c d\n" | ||
| 136 | "aa bb cc dd\n") | ||
| 137 | (delimit-columns-rectangle 3 17) ; from first b to last c | ||
| 138 | (should (equal (buffer-string) | ||
| 139 | (concat "a b, c d\n" | ||
| 140 | "aa bb, cc dd\n")))))) | ||
| 141 | |||
| 142 | (ert-deftest delim-col-tests-delimit-columns-format/separator () | ||
| 143 | (let ((delimit-columns-format 'separator) | ||
| 144 | (delimit-columns-before "<") | ||
| 145 | (delimit-columns-after ">")) | ||
| 146 | (with-temp-buffer | ||
| 147 | (insert "a b\n" | ||
| 148 | "aa bb\n") | ||
| 149 | (delimit-columns-region (point-min) (point-max)) | ||
| 150 | (should (equal (buffer-string) | ||
| 151 | (concat "<a> , <b> \n" | ||
| 152 | "<aa>, <bb>\n")))) | ||
| 153 | (with-temp-buffer | ||
| 154 | (insert "a b c d\n" | ||
| 155 | "aa bb cc dd\n") | ||
| 156 | (delimit-columns-rectangle 3 17) ; from first b to last c | ||
| 157 | (should (equal (buffer-string) | ||
| 158 | (concat "a <b> , <c> d\n" | ||
| 159 | "aa <bb>, <cc> dd\n")))))) | ||
| 160 | |||
| 161 | (ert-deftest delim-col-tests-delimit-columns-format/padding () | ||
| 162 | (let ((delimit-columns-format 'padding) | ||
| 163 | (delimit-columns-before "<") | ||
| 164 | (delimit-columns-after ">")) | ||
| 165 | (with-temp-buffer | ||
| 166 | (insert "a b\n" | ||
| 167 | "aa bb\n") | ||
| 168 | (delimit-columns-region (point-min) (point-max)) | ||
| 169 | (should (equal (buffer-string) | ||
| 170 | (concat "<a >, <b >\n" | ||
| 171 | "<aa>, <bb>\n")))) | ||
| 172 | (with-temp-buffer | ||
| 173 | (insert "a b c d\n" | ||
| 174 | "aa bb cc dd\n") | ||
| 175 | (delimit-columns-rectangle 3 17) ; from first b to last c | ||
| 176 | (should (equal (buffer-string) | ||
| 177 | (concat "a <b >, <c > d\n" | ||
| 178 | "aa <bb>, <cc> dd\n")))))) | ||
| 179 | |||
| 180 | (provide 'delim-col-tests) | ||
| 181 | ;;; delim-col-tests.el ends here | ||
diff --git a/test/lisp/emacs-lisp/map-tests.el b/test/lisp/emacs-lisp/map-tests.el index a54af8059b3..5e044d4be81 100644 --- a/test/lisp/emacs-lisp/map-tests.el +++ b/test/lisp/emacs-lisp/map-tests.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 2015-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 2015-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: Nicolas Petton <nicolas@petton.fr> | 5 | ;; Author: Nicolas Petton <nicolas@petton.fr> |
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | 6 | ||
| 8 | ;; This file is part of GNU Emacs. | 7 | ;; This file is part of GNU Emacs. |
| 9 | 8 | ||
diff --git a/test/lisp/emacs-lisp/rx-tests.el b/test/lisp/emacs-lisp/rx-tests.el index 4a5919edf02..6f392d616d1 100644 --- a/test/lisp/emacs-lisp/rx-tests.el +++ b/test/lisp/emacs-lisp/rx-tests.el | |||
| @@ -107,7 +107,13 @@ | |||
| 107 | "ab")) | 107 | "ab")) |
| 108 | (should (equal (and (string-match (rx (or "a" "ab" "abc")) s) | 108 | (should (equal (and (string-match (rx (or "a" "ab" "abc")) s) |
| 109 | (match-string 0 s)) | 109 | (match-string 0 s)) |
| 110 | "a")))) | 110 | "a"))) |
| 111 | ;; Test zero-argument `or'. | ||
| 112 | (should (equal (rx (or)) regexp-unmatchable))) | ||
| 113 | |||
| 114 | (ert-deftest rx-seq () | ||
| 115 | ;; Test zero-argument `seq'. | ||
| 116 | (should (equal (rx (seq)) ""))) | ||
| 111 | 117 | ||
| 112 | (provide 'rx-tests) | 118 | (provide 'rx-tests) |
| 113 | ;; rx-tests.el ends here. | 119 | ;; rx-tests.el ends here. |
diff --git a/test/lisp/emacs-lisp/seq-tests.el b/test/lisp/emacs-lisp/seq-tests.el index ef05e2b389d..8f66ba4f92f 100644 --- a/test/lisp/emacs-lisp/seq-tests.el +++ b/test/lisp/emacs-lisp/seq-tests.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 2014-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 2014-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: Nicolas Petton <nicolas@petton.fr> | 5 | ;; Author: Nicolas Petton <nicolas@petton.fr> |
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | 6 | ||
| 8 | ;; This file is part of GNU Emacs. | 7 | ;; This file is part of GNU Emacs. |
| 9 | 8 | ||
diff --git a/test/lisp/emacs-lisp/thunk-tests.el b/test/lisp/emacs-lisp/thunk-tests.el index caa2c415460..69bfc196383 100644 --- a/test/lisp/emacs-lisp/thunk-tests.el +++ b/test/lisp/emacs-lisp/thunk-tests.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 2015-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 2015-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: Nicolas Petton <nicolas@petton.fr> | 5 | ;; Author: Nicolas Petton <nicolas@petton.fr> |
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | 6 | ||
| 8 | ;; This file is part of GNU Emacs. | 7 | ;; This file is part of GNU Emacs. |
| 9 | 8 | ||
diff --git a/test/lisp/help-fns-tests.el b/test/lisp/help-fns-tests.el index e31ac6a4d48..2e9483074e0 100644 --- a/test/lisp/help-fns-tests.el +++ b/test/lisp/help-fns-tests.el | |||
| @@ -2,8 +2,6 @@ | |||
| 2 | 2 | ||
| 3 | ;; Copyright (C) 2014-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 2014-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Maintainer: emacs-devel@gnu.org | ||
| 6 | |||
| 7 | ;; This file is part of GNU Emacs. | 5 | ;; This file is part of GNU Emacs. |
| 8 | 6 | ||
| 9 | ;; GNU Emacs is free software: you can redistribute it and/or modify | 7 | ;; GNU Emacs is free software: you can redistribute it and/or modify |
diff --git a/test/lisp/md4-tests.el b/test/lisp/md4-tests.el index 9712411419a..56b09c14de5 100644 --- a/test/lisp/md4-tests.el +++ b/test/lisp/md4-tests.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 2017-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 2017-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: Mark Oteiza <mvoteiza@udel.edu> | 5 | ;; Author: Mark Oteiza <mvoteiza@udel.edu> |
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | 6 | ||
| 8 | ;; This file is part of GNU Emacs. | 7 | ;; This file is part of GNU Emacs. |
| 9 | 8 | ||
diff --git a/test/lisp/org/org-tests.el b/test/lisp/org/org-tests.el index 4b82aa8382f..33f9e459464 100644 --- a/test/lisp/org/org-tests.el +++ b/test/lisp/org/org-tests.el | |||
| @@ -2,8 +2,6 @@ | |||
| 2 | 2 | ||
| 3 | ;; Copyright (C) 2018-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 2018-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Maintainer: emacs-devel@gnu.org | ||
| 6 | |||
| 7 | ;; This file is part of GNU Emacs. | 5 | ;; This file is part of GNU Emacs. |
| 8 | 6 | ||
| 9 | ;; GNU Emacs is free software: you can redistribute it and/or modify | 7 | ;; GNU Emacs is free software: you can redistribute it and/or modify |
diff --git a/test/lisp/soundex-tests.el b/test/lisp/soundex-tests.el index d8d79b85cea..4de45f9d53a 100644 --- a/test/lisp/soundex-tests.el +++ b/test/lisp/soundex-tests.el | |||
| @@ -2,8 +2,6 @@ | |||
| 2 | 2 | ||
| 3 | ;; Copyright (C) 2017-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 2017-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Maintainer: emacs-devel@gnu.org | ||
| 6 | |||
| 7 | ;; This file is part of GNU Emacs. | 5 | ;; This file is part of GNU Emacs. |
| 8 | 6 | ||
| 9 | ;; GNU Emacs is free software: you can redistribute it and/or modify | 7 | ;; GNU Emacs is free software: you can redistribute it and/or modify |
diff --git a/test/lisp/tempo-tests.el b/test/lisp/tempo-tests.el new file mode 100644 index 00000000000..6e610ffa6ea --- /dev/null +++ b/test/lisp/tempo-tests.el | |||
| @@ -0,0 +1,228 @@ | |||
| 1 | ;;; tempo-tests.el --- Test suite for tempo.el -*- lexical-binding: t; -*- | ||
| 2 | |||
| 3 | ;; Copyright (C) 2019 Free Software Foundation, Inc. | ||
| 4 | |||
| 5 | ;; Author: Federico Tedin <federicotedin@gmail.com> | ||
| 6 | ;; Keywords: abbrev | ||
| 7 | |||
| 8 | ;; This file is part of GNU Emacs. | ||
| 9 | |||
| 10 | ;; GNU Emacs is free software: you can redistribute it and/or modify | ||
| 11 | ;; it under the terms of the GNU General Public License as published by | ||
| 12 | ;; the Free Software Foundation, either version 3 of the License, or | ||
| 13 | ;; (at your option) any later version. | ||
| 14 | |||
| 15 | ;; GNU Emacs is distributed in the hope that it will be useful, | ||
| 16 | ;; but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 17 | ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 18 | ;; GNU General Public License for more details. | ||
| 19 | |||
| 20 | ;; You should have received a copy of the GNU General Public License | ||
| 21 | ;; along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>. | ||
| 22 | |||
| 23 | ;;; Code: | ||
| 24 | |||
| 25 | (require 'tempo) | ||
| 26 | (eval-when-compile (require 'cl-lib)) | ||
| 27 | |||
| 28 | (ert-deftest tempo-string-element-test () | ||
| 29 | "Test a template containing a string element." | ||
| 30 | (with-temp-buffer | ||
| 31 | (tempo-define-template "test" '("GNU Emacs Tempo test")) | ||
| 32 | (tempo-insert-template 'tempo-template-test nil) | ||
| 33 | (should (equal (buffer-string) "GNU Emacs Tempo test")))) | ||
| 34 | |||
| 35 | (ert-deftest tempo-p-bare-element-test () | ||
| 36 | "Test a template containing a bare `p' element." | ||
| 37 | (with-temp-buffer | ||
| 38 | (tempo-define-template "test" '("abcde" p)) | ||
| 39 | (tempo-insert-template 'tempo-template-test nil) | ||
| 40 | (tempo-forward-mark) | ||
| 41 | (should (equal (point) 6)))) | ||
| 42 | |||
| 43 | (ert-deftest tempo-r-bare-element-test () | ||
| 44 | "Test a template containing a bare `r' element." | ||
| 45 | (with-temp-buffer | ||
| 46 | (tempo-define-template "test" '("abcde" r "ghijk")) | ||
| 47 | (insert "F") | ||
| 48 | (set-mark (point)) | ||
| 49 | (goto-char (point-min)) | ||
| 50 | (tempo-insert-template 'tempo-template-test t) | ||
| 51 | (should (equal (buffer-string) "abcdeFghijk")))) | ||
| 52 | |||
| 53 | (ert-deftest tempo-p-element-test () | ||
| 54 | "Testing template containing a `p' (prompt) element." | ||
| 55 | (with-temp-buffer | ||
| 56 | (tempo-define-template "test" '("hello " (p ">"))) | ||
| 57 | (let ((tempo-interactive t)) | ||
| 58 | (cl-letf (((symbol-function 'read-string) (lambda (&rest _) "world"))) | ||
| 59 | (tempo-insert-template 'tempo-template-test nil)) | ||
| 60 | (should (equal (buffer-string) "hello world"))))) | ||
| 61 | |||
| 62 | (ert-deftest tempo-P-element-test () | ||
| 63 | "Testing template containing a `P' (prompt) element." | ||
| 64 | (with-temp-buffer | ||
| 65 | (tempo-define-template "test" '("hello " (P ">"))) | ||
| 66 | ;; By default, `tempo-interactive' is nil, `P' should ignore this. | ||
| 67 | (cl-letf (((symbol-function 'read-string) (lambda (&rest _) "world"))) | ||
| 68 | (tempo-insert-template 'tempo-template-test nil)) | ||
| 69 | (should (equal (buffer-string) "hello world")))) | ||
| 70 | |||
| 71 | (ert-deftest tempo-r-element-test () | ||
| 72 | "Testing template containing an `r' (with prompt) element." | ||
| 73 | (with-temp-buffer | ||
| 74 | (tempo-define-template "test" '("abcde" (r ">") "ghijk")) | ||
| 75 | (let ((tempo-interactive t)) | ||
| 76 | (cl-letf (((symbol-function 'read-string) (lambda (&rest _) "F"))) | ||
| 77 | (tempo-insert-template 'tempo-template-test nil)) | ||
| 78 | (should (equal (buffer-string) "abcdeFghijk"))))) | ||
| 79 | |||
| 80 | (ert-deftest tempo-s-element-test () | ||
| 81 | "Testing template containing an `s' element." | ||
| 82 | (with-temp-buffer | ||
| 83 | (tempo-define-template "test" '("hello " (p ">" P1) " " (s P1))) | ||
| 84 | (let ((tempo-interactive t)) | ||
| 85 | (cl-letf (((symbol-function 'read-string) (lambda (&rest _) "world!"))) | ||
| 86 | (tempo-insert-template 'tempo-template-test nil)) | ||
| 87 | (should (equal (buffer-string) "hello world! world!"))))) | ||
| 88 | |||
| 89 | (ert-deftest tempo-&-element-test () | ||
| 90 | "Testing template containing an `&' element." | ||
| 91 | (tempo-define-template "test" '(& "test")) | ||
| 92 | (with-temp-buffer | ||
| 93 | (insert " ") | ||
| 94 | (tempo-insert-template 'tempo-template-test nil) | ||
| 95 | (should (equal (buffer-string) " test"))) | ||
| 96 | (with-temp-buffer | ||
| 97 | (insert "hello") | ||
| 98 | (tempo-insert-template 'tempo-template-test nil) | ||
| 99 | (should (equal (buffer-string) "hello\ntest")))) | ||
| 100 | |||
| 101 | (ert-deftest tempo-%-element-test () | ||
| 102 | "Testing template containing an `%' element." | ||
| 103 | (tempo-define-template "test" '("test" %)) | ||
| 104 | (with-temp-buffer | ||
| 105 | (tempo-insert-template 'tempo-template-test nil) | ||
| 106 | (should (equal (buffer-string) "test"))) | ||
| 107 | (with-temp-buffer | ||
| 108 | (insert "hello") | ||
| 109 | (goto-char (point-min)) | ||
| 110 | (tempo-insert-template 'tempo-template-test nil) | ||
| 111 | (should (equal (buffer-string) "test\nhello")))) | ||
| 112 | |||
| 113 | (ert-deftest tempo-n-element-test () | ||
| 114 | "Testing template containing an `n' element." | ||
| 115 | (tempo-define-template "test" '("test" n "test")) | ||
| 116 | (with-temp-buffer | ||
| 117 | (tempo-insert-template 'tempo-template-test nil) | ||
| 118 | (should (equal (buffer-string) "test\ntest")))) | ||
| 119 | |||
| 120 | (ert-deftest tempo-n>-element-test () | ||
| 121 | "Testing template containing an `n>' element." | ||
| 122 | (tempo-define-template "test" '("(progn" n> "(list 1 2 3))")) | ||
| 123 | (with-temp-buffer | ||
| 124 | (emacs-lisp-mode) | ||
| 125 | (tempo-insert-template 'tempo-template-test nil) | ||
| 126 | ;; Tempo should have inserted two spaces before (list 1 2 3) | ||
| 127 | (should (equal (buffer-string) "(progn\n (list 1 2 3))")))) | ||
| 128 | |||
| 129 | (ert-deftest tempo->-element-test () | ||
| 130 | "Testing template containing a `>' element." | ||
| 131 | (with-temp-buffer | ||
| 132 | (emacs-lisp-mode) | ||
| 133 | (insert "(progn\n)") | ||
| 134 | (backward-char) | ||
| 135 | (tempo-define-template "test" '("(list 1 2 3)" >)) | ||
| 136 | (tempo-insert-template 'tempo-template-test nil) | ||
| 137 | ;; Tempo should have inserted two spaces before (list 1 2 3) | ||
| 138 | (should (equal (buffer-string) "(progn\n (list 1 2 3))")))) | ||
| 139 | |||
| 140 | (ert-deftest tempo-r>-bare-element-test () | ||
| 141 | "Testing template containing a bare `r>' element." | ||
| 142 | (with-temp-buffer | ||
| 143 | (tempo-define-template "test" '("(progn" n r> ")")) | ||
| 144 | (emacs-lisp-mode) | ||
| 145 | (insert "(list 1 2 3)") | ||
| 146 | (set-mark (point)) | ||
| 147 | (goto-char (point-min)) | ||
| 148 | (tempo-insert-template 'tempo-template-test t) | ||
| 149 | ;; Tempo should have inserted two spaces before (list 1 2 3) | ||
| 150 | (should (equal (buffer-string) "(progn\n (list 1 2 3))")))) | ||
| 151 | |||
| 152 | (ert-deftest tempo-r>-element-test () | ||
| 153 | "Testing template containing an `r>' (with prompt) element." | ||
| 154 | (tempo-define-template "test" '("(progn" n (r> ":") ")")) | ||
| 155 | (with-temp-buffer | ||
| 156 | ;; Test on-region use | ||
| 157 | (emacs-lisp-mode) | ||
| 158 | (insert "(list 1 2 3)") | ||
| 159 | (set-mark (point)) | ||
| 160 | (goto-char (point-min)) | ||
| 161 | (tempo-insert-template 'tempo-template-test t) | ||
| 162 | (should (equal (buffer-string) "(progn\n (list 1 2 3))"))) | ||
| 163 | (with-temp-buffer | ||
| 164 | ;; Test interactive use | ||
| 165 | (emacs-lisp-mode) | ||
| 166 | (let ((tempo-interactive t)) | ||
| 167 | (cl-letf (((symbol-function 'read-string) (lambda (&rest _) " (list 1 2 3)"))) | ||
| 168 | (tempo-insert-template 'tempo-template-test nil)) | ||
| 169 | (should (equal (buffer-string) "(progn\n (list 1 2 3))"))))) | ||
| 170 | |||
| 171 | (ert-deftest tempo-o-element-test () | ||
| 172 | "Testing template containing an `o' element." | ||
| 173 | (with-temp-buffer | ||
| 174 | (tempo-define-template "test" '("test" o)) | ||
| 175 | (insert "hello") | ||
| 176 | (goto-char (point-min)) | ||
| 177 | (tempo-insert-template 'tempo-template-test nil) | ||
| 178 | (should (equal (buffer-string) "test\nhello")) | ||
| 179 | (should (equal (point) 5)))) | ||
| 180 | |||
| 181 | (ert-deftest tempo-nil-element-test () | ||
| 182 | "Testing template with nil elements." | ||
| 183 | (with-temp-buffer | ||
| 184 | (tempo-define-template "test" '("Hello," nil " World!")) | ||
| 185 | (tempo-insert-template 'tempo-template-test nil) | ||
| 186 | (should (equal (buffer-string) "Hello, World!")))) | ||
| 187 | |||
| 188 | (ert-deftest tempo-eval-element-test () | ||
| 189 | "Testing template with Emacs Lisp expressions." | ||
| 190 | (with-temp-buffer | ||
| 191 | (tempo-define-template "test" '((int-to-string (+ 1 1)) "=" (concat "1" "+1"))) | ||
| 192 | (tempo-insert-template 'tempo-template-test nil) | ||
| 193 | (should (equal (buffer-string) "2=1+1")))) | ||
| 194 | |||
| 195 | (ert-deftest tempo-l-element-test () | ||
| 196 | "Testing template containing an `l' element." | ||
| 197 | (with-temp-buffer | ||
| 198 | (tempo-define-template "test" '("list: " (l "1, " "2, " (int-to-string (+ 1 2))))) | ||
| 199 | (tempo-insert-template 'tempo-template-test nil) | ||
| 200 | (should (equal (buffer-string) "list: 1, 2, 3")))) | ||
| 201 | |||
| 202 | (ert-deftest tempo-tempo-user-elements-test () | ||
| 203 | "Testing a template with elements for `tempo-user-elements'." | ||
| 204 | (with-temp-buffer | ||
| 205 | (make-local-variable 'tempo-user-elements) | ||
| 206 | (add-to-list 'tempo-user-elements (lambda (x) (int-to-string (* x x)))) | ||
| 207 | (tempo-define-template "test" '(1 " " 2 " " 3 " " 4)) | ||
| 208 | (tempo-insert-template 'tempo-template-test nil) | ||
| 209 | (should (equal (buffer-string) "1 4 9 16")))) | ||
| 210 | |||
| 211 | (ert-deftest tempo-expand-tag-test () | ||
| 212 | "Testing expansion of a template with a tag." | ||
| 213 | (with-temp-buffer | ||
| 214 | (tempo-define-template "test" '("Hello, World!") "hello") | ||
| 215 | (insert "hello") | ||
| 216 | (tempo-complete-tag) | ||
| 217 | (should (equal (buffer-string) "Hello, World!")))) | ||
| 218 | |||
| 219 | (ert-deftest tempo-expand-partial-tag-test () | ||
| 220 | "Testing expansion of a template with a tag, with a partial match." | ||
| 221 | (with-temp-buffer | ||
| 222 | (tempo-define-template "test" '("Hello, World!") "hello") | ||
| 223 | (insert "hel") | ||
| 224 | (tempo-complete-tag) | ||
| 225 | (should (equal (buffer-string) "Hello, World!")))) | ||
| 226 | |||
| 227 | (provide 'tempo-tests) | ||
| 228 | ;;; tempo-tests.el ends here | ||
diff --git a/test/lisp/textmodes/sgml-mode-tests.el b/test/lisp/textmodes/sgml-mode-tests.el index a900e8dcf22..1b8965e3440 100644 --- a/test/lisp/textmodes/sgml-mode-tests.el +++ b/test/lisp/textmodes/sgml-mode-tests.el | |||
| @@ -165,6 +165,10 @@ The point is set to the beginning of the buffer." | |||
| 165 | (sgml-mode) | 165 | (sgml-mode) |
| 166 | (insert "a\"b <tag>c'd</tag>") | 166 | (insert "a\"b <tag>c'd</tag>") |
| 167 | (should (= 1 (car (syntax-ppss (1- (point-max)))))) | 167 | (should (= 1 (car (syntax-ppss (1- (point-max)))))) |
| 168 | (should (= 0 (car (syntax-ppss (point-max))))) | ||
| 169 | (erase-buffer) | ||
| 170 | (insert "<tag>c>d</tag>") | ||
| 171 | (should (= 1 (car (syntax-ppss (1- (point-max)))))) | ||
| 168 | (should (= 0 (car (syntax-ppss (point-max))))))) | 172 | (should (= 0 (car (syntax-ppss (point-max))))))) |
| 169 | 173 | ||
| 170 | (provide 'sgml-mode-tests) | 174 | (provide 'sgml-mode-tests) |
diff --git a/test/lisp/vc/diff-mode-tests.el b/test/lisp/vc/diff-mode-tests.el index 676d461076b..d809b64634f 100644 --- a/test/lisp/vc/diff-mode-tests.el +++ b/test/lisp/vc/diff-mode-tests.el | |||
| @@ -1,7 +1,6 @@ | |||
| 1 | ;; Copyright (C) 2017-2019 Free Software Foundation, Inc. | 1 | ;; Copyright (C) 2017-2019 Free Software Foundation, Inc. |
| 2 | 2 | ||
| 3 | ;; Author: Dima Kogan <dima@secretsauce.net> | 3 | ;; Author: Dima Kogan <dima@secretsauce.net> |
| 4 | ;; Maintainer: emacs-devel@gnu.org | ||
| 5 | 4 | ||
| 6 | ;; This file is part of GNU Emacs. | 5 | ;; This file is part of GNU Emacs. |
| 7 | 6 | ||
diff --git a/test/lisp/vc/smerge-mode-tests.el b/test/lisp/vc/smerge-mode-tests.el index 032afa9dc24..67f64689220 100644 --- a/test/lisp/vc/smerge-mode-tests.el +++ b/test/lisp/vc/smerge-mode-tests.el | |||
| @@ -1,7 +1,5 @@ | |||
| 1 | ;; Copyright (C) 2017-2019 Free Software Foundation, Inc. | 1 | ;; Copyright (C) 2017-2019 Free Software Foundation, Inc. |
| 2 | 2 | ||
| 3 | ;; Maintainer: emacs-devel@gnu.org | ||
| 4 | |||
| 5 | ;; This file is part of GNU Emacs. | 3 | ;; This file is part of GNU Emacs. |
| 6 | 4 | ||
| 7 | ;; GNU Emacs is free software: you can redistribute it and/or modify | 5 | ;; GNU Emacs is free software: you can redistribute it and/or modify |
diff --git a/test/lisp/vc/vc-bzr-tests.el b/test/lisp/vc/vc-bzr-tests.el index 8fa16cdccb1..04c869ed935 100644 --- a/test/lisp/vc/vc-bzr-tests.el +++ b/test/lisp/vc/vc-bzr-tests.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 2011-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 2011-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: Glenn Morris <rgm@gnu.org> | 5 | ;; Author: Glenn Morris <rgm@gnu.org> |
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | 6 | ||
| 8 | ;; This file is part of GNU Emacs. | 7 | ;; This file is part of GNU Emacs. |
| 9 | 8 | ||
diff --git a/test/lisp/vc/vc-hg-tests.el b/test/lisp/vc/vc-hg-tests.el index 1bdc3204c03..7fc84610a01 100644 --- a/test/lisp/vc/vc-hg-tests.el +++ b/test/lisp/vc/vc-hg-tests.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 2016-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 2016-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: Dmitry Gutov <dgutov@yandex.ru> | 5 | ;; Author: Dmitry Gutov <dgutov@yandex.ru> |
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | 6 | ||
| 8 | ;; This file is part of GNU Emacs. | 7 | ;; This file is part of GNU Emacs. |
| 9 | 8 | ||
diff --git a/test/lisp/xdg-tests.el b/test/lisp/xdg-tests.el index 9c815065b2a..b8bd606ec11 100644 --- a/test/lisp/xdg-tests.el +++ b/test/lisp/xdg-tests.el | |||
| @@ -2,7 +2,6 @@ | |||
| 2 | 2 | ||
| 3 | ;; Copyright (C) 2017-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 2017-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Maintainer: emacs-devel@gnu.org | ||
| 6 | ;; Author: Mark Oteiza <mvoteiza@udel.edu> | 5 | ;; Author: Mark Oteiza <mvoteiza@udel.edu> |
| 7 | 6 | ||
| 8 | ;; This file is part of GNU Emacs. | 7 | ;; This file is part of GNU Emacs. |
diff --git a/test/manual/biditest.el b/test/manual/biditest.el index d813642f780..f257910877b 100644 --- a/test/manual/biditest.el +++ b/test/manual/biditest.el | |||
| @@ -3,7 +3,6 @@ | |||
| 3 | ;; Copyright (C) 2013-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 2013-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: Eli Zaretskii | 5 | ;; Author: Eli Zaretskii |
| 6 | ;; Maintainer: emacs-devel@gnu.org | ||
| 7 | ;; Package: emacs | 6 | ;; Package: emacs |
| 8 | 7 | ||
| 9 | ;; This program is free software: you can redistribute it and/or modify | 8 | ;; This program is free software: you can redistribute it and/or modify |
diff --git a/test/manual/etags/el-src/emacs/lisp/progmodes/etags.el b/test/manual/etags/el-src/emacs/lisp/progmodes/etags.el index 250aeb1cf26..30ad34099b7 100644 --- a/test/manual/etags/el-src/emacs/lisp/progmodes/etags.el +++ b/test/manual/etags/el-src/emacs/lisp/progmodes/etags.el | |||
| @@ -4,7 +4,6 @@ | |||
| 4 | ;; Software Foundation, Inc. | 4 | ;; Software Foundation, Inc. |
| 5 | 5 | ||
| 6 | ;; Author: Roland McGrath <roland@gnu.org> | 6 | ;; Author: Roland McGrath <roland@gnu.org> |
| 7 | ;; Maintainer: emacs-devel@gnu.org | ||
| 8 | ;; Keywords: tools | 7 | ;; Keywords: tools |
| 9 | 8 | ||
| 10 | ;; This file is part of GNU Emacs. | 9 | ;; This file is part of GNU Emacs. |
diff --git a/test/src/lcms-tests.el b/test/src/lcms-tests.el index f1d1110283d..d92ebcbeab5 100644 --- a/test/src/lcms-tests.el +++ b/test/src/lcms-tests.el | |||
| @@ -2,8 +2,6 @@ | |||
| 2 | 2 | ||
| 3 | ;; Copyright (C) 2017-2019 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 2017-2019 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Maintainer: emacs-devel@gnu.org | ||
| 6 | |||
| 7 | ;; This file is part of GNU Emacs. | 5 | ;; This file is part of GNU Emacs. |
| 8 | 6 | ||
| 9 | ;; GNU Emacs is free software: you can redistribute it and/or modify | 7 | ;; GNU Emacs is free software: you can redistribute it and/or modify |