diff src/keymap.c @ 90046:b637c617432f

Revision: miles@gnu.org--gnu-2004/emacs--unicode--0--patch-72 Merge from emacs--cvs-trunk--0 Patches applied: * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-693 - miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-695 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-696 Merge from gnus--rel--5.10 * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-697 - miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-702 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-703 Merge from gnus--rel--5.10 * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-704 - miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-708 Update from CVS * miles@gnu.org--gnu-2004/gnus--rel--5.10--patch-72 Update from CVS * miles@gnu.org--gnu-2004/gnus--rel--5.10--patch-73 Merge from emacs--cvs-trunk--0
author Miles Bader <miles@gnu.org>
date Fri, 19 Nov 2004 06:55:13 +0000
parents cb7f41387eb3 8b3b0ccbe80b
children f2ebccfa87d4
line wrap: on
line diff
--- a/src/keymap.c	Fri Nov 12 07:43:06 2004 +0000
+++ b/src/keymap.c	Fri Nov 19 06:55:13 2004 +0000
@@ -703,19 +703,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;
 }