aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStefan Monnier2008-03-25 19:42:34 +0000
committerStefan Monnier2008-03-25 19:42:34 +0000
commita10cca6c90b3366f3000b06ce1fa226277da0ea4 (patch)
treeeb4a9bd5afea8697a16a2eeaf15333639687fbc0
parentd7b10f4c2efd05dfeb9526686cb76e1df70527bb (diff)
downloademacs-a10cca6c90b3366f3000b06ce1fa226277da0ea4.tar.gz
emacs-a10cca6c90b3366f3000b06ce1fa226277da0ea4.zip
* subr.el (map-keymap-sorted): Rename from map-keymap-internal.
Remove `sort-first' argument. * keymap.c (Fmap_keymap): Use `map-keymap-sorted.
-rw-r--r--lisp/ChangeLog3
-rw-r--r--lisp/subr.el32
-rw-r--r--src/ChangeLog2
-rw-r--r--src/keymap.c2
4 files changed, 21 insertions, 18 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index b052448c6ab..8ffa1c9d92c 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,5 +1,8 @@
12008-03-25 Stefan Monnier <monnier@iro.umontreal.ca> 12008-03-25 Stefan Monnier <monnier@iro.umontreal.ca>
2 2
3 * subr.el (map-keymap-sorted): Rename from map-keymap-internal.
4 Remove `sort-first' argument.
5
3 * subr.el (redisplay-end-trigger-functions) 6 * subr.el (redisplay-end-trigger-functions)
4 (window-redisplay-end-trigger, set-window-redisplay-end-trigger) 7 (window-redisplay-end-trigger, set-window-redisplay-end-trigger)
5 (process-filter-multibyte-p, set-process-filter-multibyte): 8 (process-filter-multibyte-p, set-process-filter-multibyte):
diff --git a/lisp/subr.el b/lisp/subr.el
index 1a6f2a9dc74..b23ca358060 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."
532 (setq inserted t))) 532 (setq inserted t)))
533 (setq tail (cdr tail))))) 533 (setq tail (cdr tail)))))
534 534
535(defun map-keymap-internal (function keymap &optional sort-first) 535(defun map-keymap-sorted (function keymap)
536 "Implement `map-keymap' with sorting. 536 "Implement `map-keymap' with sorting.
537Don't call this function; it is for internal use only." 537Don't call this function; it is for internal use only."
538 (if sort-first 538 (let (list)
539 (let (list) 539 (map-keymap (lambda (a b) (push (cons a b) list))
540 (map-keymap (lambda (a b) (push (cons a b) list)) 540 keymap)
541 keymap) 541 (setq list (sort list
542 (setq list (sort list 542 (lambda (a b)
543 (lambda (a b) 543 (setq a (car a) b (car b))
544 (setq a (car a) b (car b)) 544 (if (integerp a)
545 (if (integerp a) 545 (if (integerp b) (< a b)
546 (if (integerp b) (< a b) 546 t)
547 t) 547 (if (integerp b) t
548 (if (integerp b) t 548 ;; string< also accepts symbols.
549 ;; string< also accepts symbols. 549 (string< a b))))))
550 (string< a b)))))) 550 (dolist (p list)
551 (dolist (p list) 551 (funcall function (car p) (cdr p)))))
552 (funcall function (car p) (cdr p))))
553 (map-keymap function keymap)))
554 552
555(put 'keyboard-translate-table 'char-table-extra-slots 0) 553(put 'keyboard-translate-table 'char-table-extra-slots 0)
556 554
diff --git a/src/ChangeLog b/src/ChangeLog
index 6ebc93e66d8..15cbb094d6a 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,5 +1,7 @@
12008-03-25 Stefan Monnier <monnier@iro.umontreal.ca> 12008-03-25 Stefan Monnier <monnier@iro.umontreal.ca>
2 2
3 * keymap.c (Fmap_keymap): Use `map-keymap-sorted.
4
3 * frame.c (Fmodify_frame_parameters, x_set_frame_parameters): 5 * frame.c (Fmodify_frame_parameters, x_set_frame_parameters):
4 Use XCAR/XCDR. 6 Use XCAR/XCDR.
5 7
diff --git a/src/keymap.c b/src/keymap.c
index e91df88aaff..310b46b23bf 100644
--- a/src/keymap.c
+++ b/src/keymap.c
@@ -735,7 +735,7 @@ usage: (map-keymap FUNCTION KEYMAP) */)
735 significance. */ 735 significance. */
736 xsignal1 (Qinvalid_function, function); 736 xsignal1 (Qinvalid_function, function);
737 if (! NILP (sort_first)) 737 if (! NILP (sort_first))
738 return call3 (intern ("map-keymap-internal"), function, keymap, Qt); 738 return call2 (intern ("map-keymap-sorted"), function, keymap);
739 739
740 map_keymap (keymap, map_keymap_call, function, NULL, 1); 740 map_keymap (keymap, map_keymap_call, function, NULL, 1);
741 return Qnil; 741 return Qnil;