From: Stefan Kangas Date: Wed, 5 Oct 2022 13:23:39 +0000 (+0200) Subject: Add face help-key-binding in help-char echo X-Git-Tag: emacs-29.0.90~1856^2~4 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=9449e0740cd97bbcdbaeb4713dc2dd51e65994fd;p=emacs.git 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) : New DEFSYM. --- 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);