summaryrefslogtreecommitdiff
path: root/src/keyboard.c
diff options
context:
space:
mode:
authorStefan Kangas <stefankangas@gmail.com>2022-10-05 15:23:39 +0200
committerStefan Kangas <stefankangas@gmail.com>2022-10-05 15:23:39 +0200
commit9449e0740cd97bbcdbaeb4713dc2dd51e65994fd (patch)
tree13dd19a4aa8e40b228421f2d80a03e7e928bce9d /src/keyboard.c
parent1720ebecc7670903129de70fee1a72c875c42d95 (diff)
downloademacs-9449e0740cd97bbcdbaeb4713dc2dd51e65994fd.tar.gz
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.c25
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);