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