summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLars Ingebrigtsen <larsi@gnus.org>2022-01-31 17:31:09 +0100
committerLars Ingebrigtsen <larsi@gnus.org>2022-01-31 17:32:26 +0100
commitdbf08491a5a45d88048082ba6ece1b61bdbc622b (patch)
tree78de737ed5696fbaebd6e25ebf053fa3290c98f2
parent1d1b664fbb9232aa40d8daa54a689cfd63d38aa9 (diff)
downloademacs-dbf08491a5a45d88048082ba6ece1b61bdbc622b.tar.gz
Make more ranges sort properly in describe-keymap
* lisp/subr.el (keymap-canonicalize): Don't consider two-character ranges as a range (bug#11325).
-rw-r--r--lisp/subr.el13
-rw-r--r--test/lisp/help-tests.el4
2 files changed, 13 insertions, 4 deletions
diff --git a/lisp/subr.el b/lisp/subr.el
index fccd75361bd..a1eb6fe3afb 100644
--- a/lisp/subr.el
+++ b/lisp/subr.el
@@ -1149,8 +1149,17 @@ Subkeymaps may be modified but are not canonicalized."
(setq map (map-keymap ;; -internal
(lambda (key item)
(if (consp key)
- ;; Treat char-ranges specially.
- (push (cons key item) ranges)
+ (if (= (car key) (1- (cdr key)))
+ ;; If we have a two-character range, then
+ ;; treat it as two separate characters
+ ;; (because this makes `describe-bindings'
+ ;; look better and shouldn't affect
+ ;; anything else).
+ (progn
+ (push (cons (car key) item) bindings)
+ (push (cons (cdr key) item) bindings))
+ ;; Treat char-ranges specially.
+ (push (cons key item) ranges))
(push (cons key item) bindings)))
map)))
;; Create the new map.
diff --git a/test/lisp/help-tests.el b/test/lisp/help-tests.el
index d27e3d7cd4d..9c9dddcd19c 100644
--- a/test/lisp/help-tests.el
+++ b/test/lisp/help-tests.el
@@ -286,11 +286,11 @@ M-g M-c switch-to-completions
"
Key Binding
-+
-( .. ) short-range
1 .. 4 foo-range
a .. c foo-other-range
C-e foo-something
+( .. ) short-range
x foo-original
<F1> foo-function-key1
"))))
@@ -304,12 +304,12 @@ x foo-original
"
Key Binding
-+
-( .. ) short-range
1 .. 4 foo-range
a .. c foo-other-range
C-e foo-something
(this binding is currently shadowed)
+( .. ) short-range
x foo-original
(this binding is currently shadowed)
<F1> foo-function-key1