From: Richard M. Stallman Date: Tue, 16 Nov 2004 17:00:59 +0000 (+0000) Subject: (Fmap_keymap): New arg SORT-FIRST. Use X-Git-Tag: ttn-vms-21-2-B4~3890 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=0ea6ae0a0c3dccd2277a7500163d0145aeb39d94;p=emacs.git (Fmap_keymap): New arg SORT-FIRST. Use map-keymap-internal to implement that. --- diff --git a/src/keymap.c b/src/keymap.c index a0d5c3b5be5..4062ff34ee9 100644 --- a/src/keymap.c +++ b/src/keymap.c @@ -728,19 +728,23 @@ map_keymap_call (key, val, fun, dummy) 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; }