mirror of
https://github.com/tmate-io/tmate.git
synced 2026-01-23 02:24:06 +00:00
Use a macro-based mask for obtaining a key or modifier-set from the
combination. Display C-@, etc, as C-Space, in list-keys. By Micah Cowan.
This commit is contained in:
parent
4e3bed2035
commit
dcc100f165
3 changed files with 17 additions and 4 deletions
11
key-string.c
11
key-string.c
|
|
@ -184,6 +184,15 @@ key_string_lookup_key(int key)
|
|||
|
||||
*out = '\0';
|
||||
|
||||
/*
|
||||
* Special case: display C-@ as C-Space. Could do this below in
|
||||
* the (key >= 0 && key <= 32), but this way we let it be found
|
||||
* in key_string_table, for the unlikely chance that we might
|
||||
* change its name.
|
||||
*/
|
||||
if ((key & KEYC_MASK_KEY) == 0)
|
||||
key = ' ' | KEYC_CTRL | (key & KEYC_MASK_MOD);
|
||||
|
||||
/* Fill in the modifiers. */
|
||||
if (key & KEYC_CTRL)
|
||||
strlcat(out, "C-", sizeof out);
|
||||
|
|
@ -191,7 +200,7 @@ key_string_lookup_key(int key)
|
|||
strlcat(out, "M-", sizeof out);
|
||||
if (key & KEYC_SHIFT)
|
||||
strlcat(out, "S-", sizeof out);
|
||||
key &= ~(KEYC_CTRL|KEYC_ESCAPE|KEYC_SHIFT);
|
||||
key &= KEYC_MASK_KEY;
|
||||
|
||||
/* Try the key against the string table. */
|
||||
for (i = 0; i < nitems(key_string_table); i++) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue