diff options
author | Thomas Adam <thomas@xteddy.org> | 2015-04-22 10:05:54 +0100 |
---|---|---|
committer | Thomas Adam <thomas@xteddy.org> | 2015-04-22 10:05:54 +0100 |
commit | 0a88377086329786c438d4973365fdb21186f4e4 (patch) | |
tree | df5b091b400df84974f58bbfbb78ee26ccb9a5f6 /cmd-bind-key.c | |
parent | b25dc423b0b1369aaec5dee8e051d541bd55043f (diff) | |
parent | 3909aff06aa6de748ae057cab1e723eec2387edd (diff) | |
download | rtmux-0a88377086329786c438d4973365fdb21186f4e4.tar.gz rtmux-0a88377086329786c438d4973365fdb21186f4e4.tar.bz2 rtmux-0a88377086329786c438d4973365fdb21186f4e4.zip |
Merge branch 'obsd-master'
Diffstat (limited to 'cmd-bind-key.c')
-rw-r--r-- | cmd-bind-key.c | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/cmd-bind-key.c b/cmd-bind-key.c index 47c58e51..fda39efc 100644 --- a/cmd-bind-key.c +++ b/cmd-bind-key.c @@ -33,8 +33,8 @@ enum cmd_retval cmd_bind_key_mode_table(struct cmd *, struct cmd_q *, int); const struct cmd_entry cmd_bind_key_entry = { "bind-key", "bind", - "cnrt:", 1, -1, - "[-cnr] [-t mode-table] key command [arguments]", + "cnrt:T:", 1, -1, + "[-cnr] [-t mode-table] [-T key-table] key command [arguments]", 0, cmd_bind_key_exec }; @@ -46,6 +46,7 @@ cmd_bind_key_exec(struct cmd *self, struct cmd_q *cmdq) char *cause; struct cmd_list *cmdlist; int key; + const char *tablename; if (args_has(args, 't')) { if (args->argc != 2 && args->argc != 3) { @@ -68,6 +69,13 @@ cmd_bind_key_exec(struct cmd *self, struct cmd_q *cmdq) if (args_has(args, 't')) return (cmd_bind_key_mode_table(self, cmdq, key)); + if (args_has(args, 'T')) + tablename = args_get(args, 'T'); + else if (args_has(args, 'n')) + tablename = "root"; + else + tablename = "prefix"; + cmdlist = cmd_list_parse(args->argc - 1, args->argv + 1, NULL, 0, &cause); if (cmdlist == NULL) { @@ -76,9 +84,7 @@ cmd_bind_key_exec(struct cmd *self, struct cmd_q *cmdq) return (CMD_RETURN_ERROR); } - if (!args_has(args, 'n')) - key |= KEYC_PREFIX; - key_bindings_add(key, args_has(args, 'r'), cmdlist); + key_bindings_add(tablename, key, args_has(args, 'r'), cmdlist); return (CMD_RETURN_NORMAL); } |