summaryrefslogtreecommitdiffstats
path: root/cmd-bind-key.c
diff options
context:
space:
mode:
Diffstat (limited to 'cmd-bind-key.c')
-rw-r--r--cmd-bind-key.c19
1 files changed, 12 insertions, 7 deletions
diff --git a/cmd-bind-key.c b/cmd-bind-key.c
index ed2f69d1..2af15d29 100644
--- a/cmd-bind-key.c
+++ b/cmd-bind-key.c
@@ -44,14 +44,16 @@ const struct cmd_entry cmd_bind_key_entry = {
static enum cmd_retval
cmd_bind_key_exec(struct cmd *self, struct cmdq_item *item)
{
- struct args *args = self->args;
- key_code key;
- const char *tablename;
- struct cmd_parse_result *pr;
+ struct args *args = self->args;
+ key_code key;
+ const char *tablename;
+ struct cmd_parse_result *pr;
+ char **argv = args->argv;
+ int argc = args->argc;
- key = key_string_lookup_string(args->argv[0]);
+ key = key_string_lookup_string(argv[0]);
if (key == KEYC_NONE || key == KEYC_UNKNOWN) {
- cmdq_error(item, "unknown key: %s", args->argv[0]);
+ cmdq_error(item, "unknown key: %s", argv[0]);
return (CMD_RETURN_ERROR);
}
@@ -62,7 +64,10 @@ cmd_bind_key_exec(struct cmd *self, struct cmdq_item *item)
else
tablename = "prefix";
- pr = cmd_parse_from_arguments(args->argc - 1, args->argv + 1, NULL);
+ if (argc == 2)
+ pr = cmd_parse_from_string(argv[1], NULL);
+ else
+ pr = cmd_parse_from_arguments(argc - 1, argv + 1, NULL);
switch (pr->status) {
case CMD_PARSE_EMPTY:
cmdq_error(item, "empty command");