diff options
author | Nicholas Marriott <nicm@openbsd.org> | 2009-07-24 14:52:47 +0000 |
---|---|---|
committer | Nicholas Marriott <nicm@openbsd.org> | 2009-07-24 14:52:47 +0000 |
commit | 5a1a1066371328f9d53a9bc5e5c4c53acb26c2b2 (patch) | |
tree | b9b54a76352420ff03b31146ad0846e438332949 /cmd-bind-key.c | |
parent | ce4eb6559e1aabb67e08a367a7c5e049e800c7ed (diff) | |
download | rtmux-5a1a1066371328f9d53a9bc5e5c4c53acb26c2b2.tar.gz rtmux-5a1a1066371328f9d53a9bc5e5c4c53acb26c2b2.tar.bz2 rtmux-5a1a1066371328f9d53a9bc5e5c4c53acb26c2b2.zip |
Permit commands to be bound to key presses without the prefix key first. The
new -n flag to bind-key and unbind-key sets or removes these bindings, and
list-key shows them in []s.
Diffstat (limited to 'cmd-bind-key.c')
-rw-r--r-- | cmd-bind-key.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/cmd-bind-key.c b/cmd-bind-key.c index 14a93831..82ab14b0 100644 --- a/cmd-bind-key.c +++ b/cmd-bind-key.c @@ -39,7 +39,7 @@ struct cmd_bind_key_data { const struct cmd_entry cmd_bind_key_entry = { "bind-key", "bind", - "[-r] key command [arguments]", + "[-nr] key command [arguments]", 0, 0, NULL, cmd_bind_key_parse, @@ -54,14 +54,17 @@ int cmd_bind_key_parse(struct cmd *self, int argc, char **argv, char **cause) { struct cmd_bind_key_data *data; - int opt; + int opt, no_prefix = 0; self->data = data = xmalloc(sizeof *data); data->can_repeat = 0; data->cmdlist = NULL; - while ((opt = getopt(argc, argv, "r")) != -1) { + while ((opt = getopt(argc, argv, "nr")) != -1) { switch (opt) { + case 'n': + no_prefix = 1; + break; case 'r': data->can_repeat = 1; break; @@ -78,6 +81,8 @@ cmd_bind_key_parse(struct cmd *self, int argc, char **argv, char **cause) xasprintf(cause, "unknown key: %s", argv[0]); goto error; } + if (!no_prefix) + data->key |= KEYC_PREFIX; argc--; argv++; |