Commit 0ea6ae0a authored by Richard M. Stallman's avatar Richard M. Stallman

(Fmap_keymap): New arg SORT-FIRST. Use

map-keymap-internal to implement that.
parent 6df71429
...@@ -728,19 +728,23 @@ map_keymap_call (key, val, fun, dummy) ...@@ -728,19 +728,23 @@ map_keymap_call (key, val, fun, dummy)
call2 (fun, key, val); 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. doc: /* Call FUNCTION for every binding in KEYMAP.
FUNCTION is called with two arguments: the event and its binding. FUNCTION is called with two arguments: the event and its binding.
If KEYMAP has a parent, the parent's bindings are included as well. 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 This works recursively: if the parent has itself a parent, then the
grandparent's bindings are also included and so on. */) grandparent's bindings are also included and so on.
(function, keymap) usage: (map-keymap FUNCTION KEYMAP) */)
Lisp_Object function, keymap; (function, keymap, sort_first)
Lisp_Object function, keymap, sort_first;
{ {
if (INTEGERP (function)) if (INTEGERP (function))
/* We have to stop integers early since map_keymap gives them special /* We have to stop integers early since map_keymap gives them special
significance. */ significance. */
Fsignal (Qinvalid_function, Fcons (function, Qnil)); 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); map_keymap (keymap, map_keymap_call, function, NULL, 1);
return Qnil; return Qnil;
} }
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment