Merge from origin/emacs-28

e632b83a28 Update authors.el for Emacs 28
e9fdb11903 ; * ChangeLog.3: Some additional fixes.
8fa4749df1 ; * ChangeLog.3: Filename fixes.
ea5a90b4f4 * lisp/repeat.el: Fix long-standing problem when a random ...
ef4954b69c * lisp/repeat.el (repeat-keep-prefix): Change default to nil.
6d5886e780 * test/lisp/repeat-tests.el (repeat-tests-call-b): Test fo...
9e16c6a96d ; * src/comp.c (syms_of_comp) <comp-no-native-file-h>: Doc...
9aa8fd6e62 * src/callint.c (Fcall_interactively): Fix inhibit_mouse_e...
70c229b1fc Fix regression in gdb-frame-handler
cd9dd26d24 Format and index concept 'predicate' in ELisp Intro
ab291656d0 ; * ChangeLog.3: Fix typos.
354f6c5609 ; * ChangeLog.3: Formatting fixes.
6192525a96 ; make change-history-commit
This commit is contained in:
Stefan Kangas 2021-12-01 06:30:22 +01:00
commit 93d9bc09f4
8 changed files with 88680 additions and 79 deletions

88585
ChangeLog.3

File diff suppressed because it is too large Load diff

View file

@ -41,10 +41,14 @@ files.")
(defconst authors-aliases
'(
(nil "A\\. N\\. Other") ; unknown author 2014-12-03, later removed
(nil "Anticrisis")
(nil "akater")
("Aaron S. Hawley" "Aaron Hawley")
("Alan Third" "Alan J Third")
("Alexander Gramiak" "Alex Gramiak")
("Alexandru Harsanyi" "Alex Harsanyi")
("Álvar Jesús Ibeas Martín" "Álvar Ibeas")
("Andrea Corallo" "AndreaCorallo")
("Andrew Csillag" "Drew Csillag")
("Anna M. Bigatti" "Anna Bigatti")
("Aurélien Aptel" "Aurelien Aptel")
@ -61,6 +65,7 @@ files.")
("Brian Sniffen" "Brian T. Sniffen")
(nil "castor@my-dejanews")
(nil "chengang31@gmail.com")
(nil "chuntaro")
("David Abrahams" "Dave Abrahams")
("David J. Biesack" "David Biesack")
("David De La Harpe Golden" "David Golden")
@ -70,8 +75,10 @@ files.")
("David M. Koppelman" "David Koppelman")
("David M. Smith" "David Smith" "David M Smith")
("David O'Toole" "David T. O'Toole")
(nil "dalanicolai")
(nil "deech@deech")
("Deepak Goel" "D. Goel")
("Earl Hyatt" "Earl" "ej32u@protonmail.com")
("Ed L. Cashin" "Ed L Cashin")
("Edward M. Reingold" "Ed\\(ward\\( M\\)?\\)? Reingold" "Reingold Edward M")
("Emilio C. Lopes" "Emilio Lopes")
@ -93,22 +100,27 @@ files.")
(nil "immerrr")
(nil "aaa bbb")
(nil "Code Extracted") ; lisp/newcomment.el's "Author:" header
(nil "jakanakaevangeli")
("J. Alexander Branham" "Alex Branham")
("Jaeyoun Chung" "Jae-youn Chung" "Jae-you Chung" "Chung Jae-youn")
("Jan Djärv" "Jan D." "Jan Djarv")
("Jay K. Adams" "Jay Adams")
("Jérôme Marant" "Jérôme Marant" "Jerome Marant")
("Jens-Ulrik Holger Petersen" "Jens-Ulrik Petersen")
("Jeremy Bertram Maitin-Shepard" "Jeremy Maitin-Shepard")
("Jimmy Aguilar Mena" "Ergus")
("Johan Bockgård" "Johan Bockgard")
("John F. Carr" "John F Carr")
("John J Foerch" "John Foerch")
("John W. Eaton" "John Eaton")
("Jonathan I. Kamens" "Jonathan Kamens")
("Jorgen Schäfer" "Jorgen Schaefer")
("Jose A. Ortega Ruiz" "Jose A Ortega Ruiz")
("Joseph Arceneaux" "Joe Arceneaux")
("Joseph M. Kelsey" "Joe Kelsey") ; FIXME ?
("Juan León Lahoz García" "Juan-Leon Lahoz Garcia")
("Jürgen Hötzel" "Juergen Hoetzel")
(nil "k3tu0isui")
("K. Shane Hartman" "Shane Hartman")
("Kai Großjohann" "Kai Grossjohann")
("Karl Berry" "K. Berry")
@ -120,15 +132,18 @@ files.")
("Kim F. Storm" "Kim Storm")
("Kyle Jones" "Kyle E. Jones")
("Lars Magne Ingebrigtsen" "Lars Ingebrigtsen")
(nil "leo")
(nil "LynX@bk.ru")
(nil "lu4nx")
("Marcus G. Daniels" "Marcus Daniels")
("Mark D. Baushke" "Mark D Baushke")
("Mark E. Shoulson" "Mark Shoulson")
("Marko Kohtala" "Kohtala Marko")
("Maxim Nikulin" "Max Nikulin")
("Agustín Martín" "Agustin Martin" "Agustín Martín Domingo")
("Martin Lorentzon" "Martin Lorentzson")
("Matt Swift" "Matthew Swift")
(nil "Madhu")
(nil "mu@magi.net.ru")
("Maxime Edouard Robert Froumentin" "Max Froumentin")
("Michael R. Mauger" "Michael Mauger")
@ -137,11 +152,13 @@ files.")
("Michael I. Bushnell" "Michael I Bushnell" "Michael I. Bushnell, p/BSG")
("Michael R. Cook" "Michael Cook")
("Michael Sperber" "Mike Sperber" "Michael Sperber \\[Mr. Preprocessor\\]")
("Michalis V" "mvar")
("Mikio Nakajima" "Nakajima Mikio")
("Nelson Jose dos Santos Ferreira" "Nelson Ferreira")
("Noorul Islam" "Noorul Islam K M")
;;; ("Tetsurou Okazaki" "OKAZAKI Tetsurou") ; FIXME?
("Óscar Fuentes" "Oscar Fuentes")
(nil "pillule")
(nil "psyberbits@gmail.com")
("Paul Eggert" "Paul R\\. Eggert")
("Pavel Janík" "Pavel Janík Ml." "Pavel Janik Ml." "Pavel Janik")
@ -151,8 +168,10 @@ files.")
("Peter J. Weisberg" "PJ Weisberg")
("Peter S. Galbraith" "Peter S Galbraith" "Peter Galbraith")
("Peter Runestig" "Peter 'luna' Runestig")
("Philip Kaludercic" "Philip K\\." "Philip K")
("Philipp Stephani" "Philipp .*phst@google")
("Piotr Zieliński" "Piotr Zielinski")
("Po Lu" "Po Lu Via") ; looks like a mistake
("Przemysław Wojnowski" "Przemyslaw Wojnowski")
("R. Bernstein" "rb@dustyfeet.com")
("Rainer Schöpf" "Rainer Schoepf")
@ -187,6 +206,7 @@ files.")
("Takaaki Ota" "Tak Ota")
("Takahashi Naoto" "Naoto Takahashi")
("Teodor Zlatanov" "Ted Zlatanov")
(nil "TEC")
(nil "The PCL-CVS Trust")
("Thomas Dye" "Tom Dye")
("Thomas Horsley" "Tom Horsley") ; FIXME ?
@ -212,7 +232,7 @@ files.")
("Carlos Pita" "memeplex")
("Vinicius Jose Latorre" "viniciusjl")
("Gaby Launay" "galaunay")
("Dick R. Chiang" "dickmao")
("Dick R. Chiang" "dickmao" "dick")
)
"Alist of author aliases.
@ -328,7 +348,7 @@ Changes to files matching one of the regexps in this list are not listed.")
"install.sh" "install-sh" "missing" "mkinstalldirs"
"termcap.dat" "termcap.src" "termcap.ucb" "termcap"
"ChangeLog.nextstep" "Emacs.clr" "spec.txt"
"gfdl.1"
"gfdl.1" "ledit.l"
"texi/Makefile.in"
"autodeps.mk"
"lwlib/autodeps.mk"
@ -350,6 +370,8 @@ Changes to files matching one of the regexps in this list are not listed.")
"cedet/tests/test.py"
"cedet/tests/teststruct.cpp"
"subdirs.el"
"etc/facemenu-removal.txt"
"src/bytecode.h"
"*.el"
;; Autogen:
"cus-load.el" "finder-inf.el" "ldefs-boot.el" "loaddefs-boot.el"
@ -365,6 +387,10 @@ Changes to files matching one of the regexps in this list are not listed.")
;; Only existed briefly, then renamed:
"images/icons/allout-widgets-dark-bg"
"images/icons/allout-widgets-light-bg"
"lisp/shorthand.el"
"test/lisp/shorthand-tests.el"
"lisp/net/link.el"
"lisp/net/connection.el"
;; Never had any meaningful changes logged, now deleted:
"lib/stdarg.in.h" "lib/stdbool.in.h"
"unidata/bidimirror.awk" "unidata/biditype.awk"
@ -424,6 +450,10 @@ Changes to files matching one of the regexps in this list are not listed.")
"info/dir"
;; Not in gnulib anymore
"lib/qset-acl.c" "lib/qcopy-acl.c" "lib/file-has-acl.c" "lib/secure_getenv.c"
"lib/malloca.c" "lib/malloca.h"
;; Briefly added to repository from gnulib, but not used
"lib/localtime-buffer.c"
"lib/localtime-buffer.h"
;; files from old MS Windows build procedures
"nt/gnulib-modules-to-delete.cfg"
"makefile.w32-in"
@ -468,6 +498,9 @@ Changes to files matching one of the regexps in this list are not listed.")
"WHY-FREE"
"MORE.STUFF"
"notes/font-backend"
"src/ftxfont.c"
"src/ptr-bounds.h"
"obsolete/options.el"
;; ada-mode has been deleted, now in GNU ELPA
"ada-mode.texi"
"doc/misc/ada-mode.texi"
@ -485,6 +518,16 @@ Changes to files matching one of the regexps in this list are not listed.")
"src/mini-gmp-emacs.c"
"lib/dosname.h"
"lib/putenv.c"
;; Moved to the org-contrib repo
"ob-asymptote.el"
"ob-shen.el"
"ob-picolisp.el"
"ob-io.el"
"ob-mscgen.el"
"ob-ledger.el"
"lisp/org/ob-abc.el"
"lisp/org/ob-ebnf.el"
"lisp/org/ob-J.el"
)
"List of files and directories to ignore.
Changes to files in this list are not listed.")
@ -1140,6 +1183,11 @@ in the repository.")
("src/mini-gmp.c" . "lib/mini-gmp.c")
("src/mini-gmp.h" . "lib/mini-gmp.h")
("sysdep.c" . "src/sysdep.c")
("lisp/gnus/nnir.el" . "nnir.el")
("src/regex.c" . "emacs-regex.c")
("src/regex.h" . "emacs-regex.h")
("erc-compat.el" . "erc-compat.el")
("semantic-utest-fmt.el" . "format-tests.el")
)
"Alist of files which have been renamed during their lifetime.
Elements are (OLDNAME . NEWNAME).")

View file

@ -2146,9 +2146,10 @@ number---the number of characters the location is from the beginning
of the buffer.) In Emacs Lisp, @code{+} can be used to add the
numeric value of marker positions as numbers.
@cindex @samp{predicate} defined
The @samp{p} of @code{number-or-marker-p} is the embodiment of a
practice started in the early days of Lisp programming. The @samp{p}
stands for ``predicate''. In the jargon used by the early Lisp
stands for @dfn{predicate}. In the jargon used by the early Lisp
researchers, a predicate refers to a function to determine whether some
property is true or false. So the @samp{p} tells us that
@code{number-or-marker-p} is the name of a function that determines

View file

@ -4611,7 +4611,9 @@ overlay arrow in source buffer."
(let ((frame (gdb-mi--field (gdb-mi--partial-output) 'frame)))
(when frame
(setq gdb-selected-frame (gdb-mi--field frame 'func))
(setq gdb-selected-file (file-local-name (gdb-mi--field frame 'fullname)))
(setq gdb-selected-file
(when-let ((full (gdb-mi--field frame 'fullname)))
(file-local-name full)))
(setq gdb-frame-number (gdb-mi--field frame 'level))
(setq gdb-frame-address (gdb-mi--field frame 'addr))
(let ((line (gdb-mi--field frame 'line)))

View file

@ -354,12 +354,30 @@ of the specified number of seconds."
(defvar repeat-exit-timer nil
"Timer activated after the last key typed in the repeating key sequence.")
(defcustom repeat-keep-prefix t
(defcustom repeat-keep-prefix nil
"Whether to keep the prefix arg of the previous command when repeating."
:type 'boolean
:group 'convenience
:version "28.1")
(defcustom repeat-check-key t
"Whether to check that the last key exists in the repeat map.
When non-nil and the last typed key (with or without modifiers)
doesn't exist in the keymap attached by the `repeat-map' property,
then don't activate that keymap for the next command. So only the
same keys among repeatable keys are allowed in the repeating sequence.
For example, with a non-nil value, only `C-x u u' repeats undo,
whereas `C-/ u' doesn't.
You can also set the property `repeat-check-key' on the command symbol.
This property can override the value of this variable.
When the variable value is non-nil, but the property value is `no',
then don't check the last key. Also when the variable value is nil,
but the property value is `t', then check the last key."
:type 'boolean
:group 'convenience
:version "28.1")
(defcustom repeat-echo-function #'repeat-echo-message
"Function to display a hint about available keys.
Function is called after every repeatable command with one argument:
@ -405,16 +423,26 @@ See `describe-repeat-maps' for a list of all repeatable commands."
(defvar repeat--prev-mb '(0)
"Previous minibuffer state.")
(defun repeat--command-property (property)
(or (and (symbolp this-command)
(get this-command property))
(and (symbolp real-this-command)
(get real-this-command property))))
(defun repeat-check-key (key map)
"Check if the last key is suitable to activate the repeating MAP."
(let ((property (repeat--command-property 'repeat-check-key)))
(or (if repeat-check-key (eq property 'no) (not (eq property t)))
(lookup-key map (vector key))
;; Try without modifiers:
(lookup-key map (vector (event-basic-type key))))))
(defun repeat-post-hook ()
"Function run after commands to set transient keymap for repeatable keys."
(let ((was-in-progress repeat-in-progress))
(setq repeat-in-progress nil)
(when repeat-mode
(let ((rep-map (or repeat-map
(and (symbolp this-command)
(get this-command 'repeat-map))
(and (symbolp real-this-command)
(get real-this-command 'repeat-map)))))
(let ((rep-map (or repeat-map (repeat--command-property 'repeat-map))))
(when rep-map
(when (and (symbolp rep-map) (boundp rep-map))
(setq rep-map (symbol-value rep-map)))
@ -426,10 +454,8 @@ See `describe-repeat-maps' for a list of all repeatable commands."
;; in the middle of repeating sequence (bug#47566).
(or (< (minibuffer-depth) (car repeat--prev-mb))
(eq current-minibuffer-command (cdr repeat--prev-mb)))
;; Exit when the last char is not among repeatable keys,
;; so e.g. `C-x u u' repeats undo, whereas `C-/ u' doesn't.
(or (lookup-key map (this-command-keys-vector))
prefix-arg))
(or (not repeat-keep-prefix) prefix-arg)
(repeat-check-key last-command-event map))
;; Messaging
(unless prefix-arg

View file

@ -364,11 +364,14 @@ invoke it (via an `interactive' spec that contains, for instance, an
/* The index of the next element of this_command_keys to examine for
the 'e' interactive code. Initialize it to point to the first
event with parameters. */
ptrdiff_t next_event;
for (next_event = 0; next_event < key_count; next_event++)
if (EVENT_HAS_PARAMETERS (AREF (keys, next_event)))
break;
event with parameters. When `inhibit_mouse_event_check' is non-nil,
the command can accept an event without parameters,
so don't search for the event with parameters in this case. */
ptrdiff_t next_event = 0;
if (!inhibit_mouse_event_check)
for (; next_event < key_count; next_event++)
if (EVENT_HAS_PARAMETERS (AREF (keys, next_event)))
break;
/* Handle special starting chars `*' and `@'. Also `-'. */
/* Note that `+' is reserved for user extensions. */
@ -606,7 +609,7 @@ invoke it (via an `interactive' spec that contains, for instance, an
break;
case 'e': /* The invoking event. */
if (!inhibit_mouse_event_check && next_event >= key_count)
if (next_event >= key_count)
error ("%s must be bound to an event with parameters",
(SYMBOLP (function)
? SSDATA (SYMBOL_NAME (function))
@ -614,11 +617,15 @@ invoke it (via an `interactive' spec that contains, for instance, an
args[i] = AREF (keys, next_event);
varies[i] = -1;
/* Find the next parameterized event. */
do
/* `inhibit_mouse_event_check' allows non-parameterized events. */
if (inhibit_mouse_event_check)
next_event++;
while (next_event < key_count
&& ! EVENT_HAS_PARAMETERS (AREF (keys, next_event)));
else
/* Find the next parameterized event. */
do
next_event++;
while (next_event < key_count
&& ! EVENT_HAS_PARAMETERS (AREF (keys, next_event)));
break;

View file

@ -5513,9 +5513,9 @@ protect the trampolines against GC. */);
Vcomp_installed_trampolines_h = CALLN (Fmake_hash_table);
DEFVAR_LISP ("comp-no-native-file-h", V_comp_no_native_file_h,
doc: /* Files for which no deferred compilation has to
be performed because the bytecode version was explicitly requested by
the user during load.
doc: /* Files for which no deferred compilation has to be performed.
These files' compilation should not be deferred because the bytecode
version was explicitly requested by the user during load.
For internal use. */);
V_comp_no_native_file_h = CALLN (Fmake_hash_table, QCtest, Qequal);

View file

@ -37,6 +37,8 @@
(defvar repeat-tests-map
(let ((map (make-sparse-keymap)))
(define-key map (kbd "C-x w a") 'repeat-tests-call-a)
(define-key map (kbd "M-C-a") 'repeat-tests-call-a)
(define-key map (kbd "M-C-z") 'repeat-tests-call-a)
map)
"Keymap for keys that initiate repeating sequences.")
@ -47,7 +49,7 @@
map)
"Keymap for repeating sequences.")
(put 'repeat-tests-call-a 'repeat-map 'repeat-tests-repeat-map)
(put 'repeat-tests-call-b 'repeat-map 'repeat-tests-repeat-map)
(put 'repeat-tests-call-b 'repeat-map repeat-tests-repeat-map)
(defmacro with-repeat-mode (&rest body)
"Create environment for testing `repeat-mode'."
@ -70,6 +72,38 @@
;; Check for self-inserting keys
(should (equal (buffer-string) inserted)))
(ert-deftest repeat-tests-check-key ()
(with-repeat-mode
(let ((repeat-echo-function 'ignore))
(let ((repeat-check-key t))
(repeat-tests--check
"C-x w a b a c"
'((1 a) (1 b) (1 a)) "c")
(repeat-tests--check
"M-C-a b a c"
'((1 a) (1 b) (1 a)) "c")
(repeat-tests--check
"M-C-z b a c"
'((1 a)) "bac")
(unwind-protect
(progn
(put 'repeat-tests-call-a 'repeat-check-key 'no)
(repeat-tests--check
"M-C-z b a c"
'((1 a) (1 b) (1 a)) "c"))
(put 'repeat-tests-call-a 'repeat-check-key nil)))
(let ((repeat-check-key nil))
(repeat-tests--check
"M-C-z b a c"
'((1 a) (1 b) (1 a)) "c")
(unwind-protect
(progn
(put 'repeat-tests-call-a 'repeat-check-key t)
(repeat-tests--check
"M-C-z b a c"
'((1 a)) "bac"))
(put 'repeat-tests-call-a 'repeat-check-key nil))))))
(ert-deftest repeat-tests-exit-key ()
(with-repeat-mode
(let ((repeat-echo-function 'ignore))