changeset 58271:8b3b0ccbe80b

(Fmap_keymap): New arg SORT-FIRST. Use map-keymap-internal to implement that.
author Richard M. Stallman <rms@gnu.org>
date Tue, 16 Nov 2004 17:00:59 +0000
parents 1bc0c9f25148
children ca2809f6625b
files src/keymap.c
diffstat 1 files changed, 8 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/src/keymap.c	Tue Nov 16 16:58:16 2004 +0000
+++ b/src/keymap.c	Tue Nov 16 17:00:59 2004 +0000
@@ -728,19 +728,23 @@
   call2 (fun, key, val);
 }
 
-DEFUN ("map-keymap", Fmap_keymap, Smap_keymap, 2, 2, 0,
+DEFUN ("map-keymap", Fmap_keymap, Smap_keymap, 2, 3, 0,
        doc: /* Call FUNCTION for every binding in KEYMAP.
 FUNCTION is called with two arguments: the event and its binding.
 If KEYMAP has a parent, the parent's bindings are included as well.
 This works recursively: if the parent has itself a parent, then the
-grandparent's bindings are also included and so on.  */)
-     (function, keymap)
-     Lisp_Object function, keymap;
+grandparent's bindings are also included and so on.
+usage: (map-keymap FUNCTION KEYMAP)  */)
+     (function, keymap, sort_first)
+     Lisp_Object function, keymap, sort_first;
 {
   if (INTEGERP (function))
     /* We have to stop integers early since map_keymap gives them special
        significance.  */
     Fsignal (Qinvalid_function, Fcons (function, Qnil));
+  if (! NILP (sort_first))
+    return call3 (intern ("map-keymap-internal"), function, keymap, Qt);
+      
   map_keymap (keymap, map_keymap_call, function, NULL, 1);
   return Qnil;
 }