1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2024-12-25 10:47:00 +00:00

(define-key-after): If AFTER is t, always put new binding at the end.

This commit is contained in:
Richard M. Stallman 1996-11-10 05:02:38 +00:00
parent 4d047f502e
commit c34a9d34a6

View File

@ -181,10 +181,16 @@ in KEYMAP as NEWDEF those chars which are defined as OLDDEF in OLDMAP."
"Add binding in KEYMAP for KEY => DEFINITION, right after AFTER's binding.
This is like `define-key' except that the binding for KEY is placed
just after the binding for the event AFTER, instead of at the beginning
of the map.
The order matters when the keymap is used as a menu.
of the map. Note that AFTER must be an event type (like KEY), NOT a command
\(like DEFINITION).
If AFTER is t, the new binding goes at the end of the keymap.
KEY must contain just one event type--that is to say, it must be
a string or vector of length 1."
a string or vector of length 1.
The order of bindings in a keymap matters when it is used as a menu."
(or (keymapp keymap)
(signal 'wrong-type-argument (list 'keymapp keymap)))
(if (> (length key) 1)
@ -198,7 +204,8 @@ a string or vector of length 1."
;; When we reach AFTER's binding, insert the new binding after.
;; If we reach an inherited keymap, insert just before that.
;; If we reach the end of this keymap, insert at the end.
(if (or (eq (car-safe (car tail)) after)
(if (or (and (eq (car-safe (car tail)) after)
(not (eq after t)))
(eq (car (cdr tail)) 'keymap)
(null (cdr tail)))
(progn