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.
This commit is contained in:
Stefan Kangas 2022-10-05 15:23:39 +02:00
parent 1720ebecc7
commit 9449e0740c

View file

@ -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);