diff options
author | Stefan Kangas <stefankangas@gmail.com> | 2022-10-05 15:23:39 +0200 |
---|---|---|
committer | Stefan Kangas <stefankangas@gmail.com> | 2022-10-05 15:23:39 +0200 |
commit | 9449e0740cd97bbcdbaeb4713dc2dd51e65994fd (patch) | |
tree | 13dd19a4aa8e40b228421f2d80a03e7e928bce9d /src/keyboard.c | |
parent | 1720ebecc7670903129de70fee1a72c875c42d95 (diff) | |
download | emacs-9449e0740cd97bbcdbaeb4713dc2dd51e65994fd.tar.gz emacs-9449e0740cd97bbcdbaeb4713dc2dd51e65994fd.tar.bz2 emacs-9449e0740cd97bbcdbaeb4713dc2dd51e65994fd.zip |
Add face help-key-binding in help-char echo
* src/keyboard.c (echo_add_key): Add help-key-binding face to the
"?" key in 'help-char' echo. (Bug#57906)
(syms_of_keyboard) <Qhelp_key_binding>: New DEFSYM.
Diffstat (limited to 'src/keyboard.c')
-rw-r--r-- | src/keyboard.c | 25 |
1 files changed, 9 insertions, 16 deletions
diff --git a/src/keyboard.c b/src/keyboard.c index da244904a4a..8ab4a451b45 100644 --- a/src/keyboard.c +++ b/src/keyboard.c @@ -499,27 +499,18 @@ echo_add_key (Lisp_Object c) STRING_MULTIBYTE (name), 1); } + Lisp_Object new_string = make_string (buffer, ptr - buffer); if ((NILP (echo_string) || SCHARS (echo_string) == 0) && help_char_p (c)) { - static const char text[] = " (Type ? for further options)"; - int len = sizeof text - 1; - - if (size - (ptr - buffer) < len) - { - ptrdiff_t offset = ptr - buffer; - size += len; - buffer = SAFE_ALLOCA (size); - ptr = buffer + offset; - } - - memcpy (ptr, text, len); - ptr += len; + AUTO_STRING (str, " (Type ? for further options)"); + AUTO_LIST2 (props, Qface, Qhelp_key_binding); + Fadd_text_properties (make_fixnum (7), make_fixnum (8), props, str); + new_string = concat2 (new_string, str); } - kset_echo_string - (current_kboard, - concat2 (echo_string, make_string (buffer, ptr - buffer))); + kset_echo_string (current_kboard, + concat2 (echo_string, new_string)); SAFE_FREE (); } @@ -12252,6 +12243,8 @@ syms_of_keyboard (void) DEFSYM (Qhelp_form_show, "help-form-show"); + DEFSYM (Qhelp_key_binding, "help-key-binding"); + DEFSYM (Qecho_keystrokes, "echo-keystrokes"); Fset (Qinput_method_exit_on_first_char, Qnil); |