* 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.
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);
}
}
(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)
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
")))))