From eb20a30f456c30ff03c39c046f6c9eff2ab17525 Mon Sep 17 00:00:00 2001 From: Daniel Mendler Date: Mon, 16 Jan 2023 15:52:52 +0100 Subject: Add test for keymap-set-after --- compat-29.el | 2 +- compat-tests.el | 9 +++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) 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) ;; +(compat-defun keymap-set-after (keymap key definition &optional 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]) -- cgit v1.0