diff options
author | Thomas Adam <thomas@xteddy.org> | 2020-02-15 16:01:25 +0000 |
---|---|---|
committer | Thomas Adam <thomas@xteddy.org> | 2020-02-15 16:01:25 +0000 |
commit | 0c6c8c4efca03f1ebd864aef467715b2cf1e18a4 (patch) | |
tree | 5e106c75f1a75bc28f1abdeb71ffd2992b70baaa /cmd-list-keys.c | |
parent | c391d50cbb79407be95204a41713f0ab66fbc7e6 (diff) | |
parent | a1f6bd55b652cd1658a005f96bbb667d637fe347 (diff) | |
download | rtmux-0c6c8c4efca03f1ebd864aef467715b2cf1e18a4.tar.gz rtmux-0c6c8c4efca03f1ebd864aef467715b2cf1e18a4.tar.bz2 rtmux-0c6c8c4efca03f1ebd864aef467715b2cf1e18a4.zip |
Merge branch 'obsd-master'
Diffstat (limited to 'cmd-list-keys.c')
-rw-r--r-- | cmd-list-keys.c | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/cmd-list-keys.c b/cmd-list-keys.c index e9e75a72..34ed43bf 100644 --- a/cmd-list-keys.c +++ b/cmd-list-keys.c @@ -36,8 +36,8 @@ const struct cmd_entry cmd_list_keys_entry = { .name = "list-keys", .alias = "lsk", - .args = { "1NP:T:", 0, 1 }, - .usage = "[-1N] [-P prefix-string] [-T key-table] [key]", + .args = { "1aNP:T:", 0, 1 }, + .usage = "[-1aN] [-P prefix-string] [-T key-table] [key]", .flags = CMD_STARTSERVER|CMD_AFTERHOOK, .exec = cmd_list_keys_exec @@ -89,7 +89,7 @@ cmd_list_keys_print_notes(struct cmdq_item *item, struct args *args, struct key_table *table; struct key_binding *bd; const char *key; - char *tmp; + char *tmp, *note; int found = 0; table = key_bindings_get_table(tablename, 0); @@ -99,19 +99,24 @@ cmd_list_keys_print_notes(struct cmdq_item *item, struct args *args, while (bd != NULL) { if ((only != KEYC_UNKNOWN && bd->key != only) || KEYC_IS_MOUSE(bd->key) || - bd->note == NULL) { + (bd->note == NULL && !args_has(args, 'a'))) { bd = key_bindings_next(table, bd); continue; } found = 1; key = key_string_lookup_key(bd->key); + if (bd->note == NULL) + note = cmd_list_print(bd->cmdlist, 1); + else + note = xstrdup(bd->note); tmp = utf8_padcstr(key, keywidth + 1); if (args_has(args, '1') && c != NULL) - status_message_set(c, "%s%s%s", prefix, tmp, bd->note); + status_message_set(c, "%s%s%s", prefix, tmp, note); else - cmdq_print(item, "%s%s%s", prefix, tmp, bd->note); + cmdq_print(item, "%s%s%s", prefix, tmp, note); free(tmp); + free(note); if (args_has(args, '1')) break; |