diff options
author | Richard M. Stallman <rms@gnu.org> | 2004-11-16 17:00:59 +0000 |
---|---|---|
committer | Richard M. Stallman <rms@gnu.org> | 2004-11-16 17:00:59 +0000 |
commit | 0ea6ae0a0c3dccd2277a7500163d0145aeb39d94 (patch) | |
tree | 313779f65fbb725809fa76b9f831377a1389c109 /src/keymap.c | |
parent | 6df7142943fd0c7928723cea5c0e17086e918a47 (diff) | |
download | emacs-0ea6ae0a0c3dccd2277a7500163d0145aeb39d94.tar.gz |
(Fmap_keymap): New arg SORT-FIRST. Use
map-keymap-internal to implement that.
Diffstat (limited to 'src/keymap.c')
-rw-r--r-- | src/keymap.c | 12 |
1 files changed, 8 insertions, 4 deletions
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; } |