Commit fb9326b4 authored by Stefan Kangas's avatar Stefan Kangas

Say which command shadows a key binding

* src/keymap.c (describe_vector): Say which command shadows this
binding.  (Bug#9293)
* test/src/keymap-tests.el
(help--describe-vector/bug-9293-one-shadowed-in-range): Adapt
test.
parent 84dd5c9b
Pipeline #7878 failed with stage
in 10 minutes and 33 seconds
......@@ -3223,7 +3223,13 @@ describe_vector (Lisp_Object vector, Lisp_Object prefix, Lisp_Object args,
if (this_shadowed)
{
SET_PT (PT - 1);
insert_string (" (binding currently shadowed)");
static char const fmt[] = " (currently shadowed by `%s')";
USE_SAFE_ALLOCA;
char *buffer = SAFE_ALLOCA (sizeof fmt +
SBYTES (SYMBOL_NAME (shadowed_by)));
esprintf (buffer, fmt, SDATA (SYMBOL_NAME (shadowed_by)));
insert_string (buffer);
SAFE_FREE();
SET_PT (PT + 1);
}
}
......
......@@ -58,7 +58,6 @@
(let* (menu-item-filter-ran
(object `(menu-item "2" identity
:filter ,(lambda (cmd)
(message "foo")
(setq menu-item-filter-ran t)
cmd))))
(keymap--get-keyelt object t)
......@@ -213,14 +212,15 @@ commit 86c19714b097aa477d339ed99ffb5136c755a046."
map))
(shadow-map (let ((map (make-keymap)))
(define-key map "f" 'bar)
map)))
map))
(text-quoting-style 'grave))
(with-temp-buffer
(help--describe-vector (cadr orig-map) nil #'help--describe-command
t shadow-map orig-map t)
(should (equal (buffer-string)
"
e foo
f foo (binding currently shadowed)
f foo (currently shadowed by `bar')
g .. h foo
")))))
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment