From 0ea6ae0a0c3dccd2277a7500163d0145aeb39d94 Mon Sep 17 00:00:00 2001 From: "Richard M. Stallman" Date: Tue, 16 Nov 2004 17:00:59 +0000 Subject: [PATCH] (Fmap_keymap): New arg SORT-FIRST. Use map-keymap-internal to implement that. --- src/keymap.c | 12 ++++++++---- 1 file 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; } -- 2.39.2