Mercurial > emacs
changeset 16556:3a1df67c6677
(define-key-after): If AFTER is t, always put new binding at the end.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Sun, 10 Nov 1996 05:02:38 +0000 |
parents | 6aea522a93c7 |
children | 4ff6a0f0f5c7 |
files | lisp/subr.el |
diffstat | 1 files changed, 11 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/subr.el Sun Nov 10 00:26:03 1996 +0000 +++ b/lisp/subr.el Sun Nov 10 05:02:38 1996 +0000 @@ -181,10 +181,16 @@ "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 @@ ;; 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