From a10cca6c90b3366f3000b06ce1fa226277da0ea4 Mon Sep 17 00:00:00 2001 From: Stefan Monnier Date: Tue, 25 Mar 2008 19:42:34 +0000 Subject: [PATCH] * subr.el (map-keymap-sorted): Rename from map-keymap-internal. Remove `sort-first' argument. * keymap.c (Fmap_keymap): Use `map-keymap-sorted. --- lisp/ChangeLog | 3 +++ lisp/subr.el | 32 +++++++++++++++----------------- src/ChangeLog | 2 ++ src/keymap.c | 2 +- 4 files changed, 21 insertions(+), 18 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index b052448c6a..8ffa1c9d92 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,5 +1,8 @@ 2008-03-25 Stefan Monnier + * subr.el (map-keymap-sorted): Rename from map-keymap-internal. + Remove `sort-first' argument. + * subr.el (redisplay-end-trigger-functions) (window-redisplay-end-trigger, set-window-redisplay-end-trigger) (process-filter-multibyte-p, set-process-filter-multibyte): diff --git a/lisp/subr.el b/lisp/subr.el index 1a6f2a9dc7..b23ca35806 100644 --- a/lisp/subr.el +++ b/lisp/subr.el @@ -532,25 +532,23 @@ The order of bindings in a keymap matters when it is used as a menu." (setq inserted t))) (setq tail (cdr tail))))) -(defun map-keymap-internal (function keymap &optional sort-first) +(defun map-keymap-sorted (function keymap) "Implement `map-keymap' with sorting. Don't call this function; it is for internal use only." - (if sort-first - (let (list) - (map-keymap (lambda (a b) (push (cons a b) list)) - keymap) - (setq list (sort list - (lambda (a b) - (setq a (car a) b (car b)) - (if (integerp a) - (if (integerp b) (< a b) - t) - (if (integerp b) t - ;; string< also accepts symbols. - (string< a b)))))) - (dolist (p list) - (funcall function (car p) (cdr p)))) - (map-keymap function keymap))) + (let (list) + (map-keymap (lambda (a b) (push (cons a b) list)) + keymap) + (setq list (sort list + (lambda (a b) + (setq a (car a) b (car b)) + (if (integerp a) + (if (integerp b) (< a b) + t) + (if (integerp b) t + ;; string< also accepts symbols. + (string< a b)))))) + (dolist (p list) + (funcall function (car p) (cdr p))))) (put 'keyboard-translate-table 'char-table-extra-slots 0) diff --git a/src/ChangeLog b/src/ChangeLog index 6ebc93e66d..15cbb094d6 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,5 +1,7 @@ 2008-03-25 Stefan Monnier + * keymap.c (Fmap_keymap): Use `map-keymap-sorted. + * frame.c (Fmodify_frame_parameters, x_set_frame_parameters): Use XCAR/XCDR. diff --git a/src/keymap.c b/src/keymap.c index e91df88aaf..310b46b23b 100644 --- a/src/keymap.c +++ b/src/keymap.c @@ -735,7 +735,7 @@ usage: (map-keymap FUNCTION KEYMAP) */) significance. */ xsignal1 (Qinvalid_function, function); if (! NILP (sort_first)) - return call3 (intern ("map-keymap-internal"), function, keymap, Qt); + return call2 (intern ("map-keymap-sorted"), function, keymap); map_keymap (keymap, map_keymap_call, function, NULL, 1); return Qnil; -- 2.20.1