aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Mendler <mail@daniel-mendler.de>2023-01-16 15:52:52 +0100
committerDaniel Mendler <mail@daniel-mendler.de>2023-01-16 15:55:00 +0100
commiteb20a30f456c30ff03c39c046f6c9eff2ab17525 (patch)
treee310f4d570b08520ac4c1e88cfbdfd1c2dc1a626
parentf7acde710a1e0e610f1063a38817a91be74ed848 (diff)
Add test for keymap-set-after
-rw-r--r--compat-29.el2
-rw-r--r--compat-tests.el9
2 files changed, 10 insertions, 1 deletions
diff --git a/compat-29.el b/compat-29.el
index 86ea558..a01d466 100644
--- a/compat-29.el
+++ b/compat-29.el
@@ -716,7 +716,7 @@ in a cleaner way with command remapping, like this:
(substitute-key-definition-key defn olddef newdef prefix1 keymap))
scan)))
-(compat-defun keymap-set-after (keymap key definition &optional after) ;; <UNTESTED>
+(compat-defun keymap-set-after (keymap key definition &optional after) ;; <compat-tests:keymap-set-after>
"Add binding in KEYMAP for KEY => DEFINITION, right after AFTER's binding.
This is like `keymap-set' except that the binding for KEY is placed
just after the binding for the event AFTER, instead of at the beginning
diff --git a/compat-tests.el b/compat-tests.el
index 169fc35..61b2e8f 100644
--- a/compat-tests.el
+++ b/compat-tests.el
@@ -419,6 +419,15 @@
(should-equal compat-tests--map-1 compat-tests--map-3)
(should-equal compat-tests--map-1 compat-tests--map-4))
+(ert-deftest keymap-set-after ()
+ (let ((map (make-sparse-keymap)))
+ (define-key-after map "d" 'd "a")
+ (define-key-after map "a" 'a)
+ (define-key-after map "b" 'b)
+ (define-key-after map "c" 'c)
+ (define-key-after map "d" 'd "b") ;; TODO the after argument has no effect?!
+ (should-equal map '(keymap (?a . a) (?b . b) (?c . c) (?d . d)))))
+
(ert-deftest key-parse ()
(should-equal (key-parse "f") [?f])
(should-equal (key-parse "X") [?X])