diff options
author | Thomas Adam <thomas@xteddy.org> | 2016-10-16 20:01:10 +0100 |
---|---|---|
committer | Thomas Adam <thomas@xteddy.org> | 2016-10-16 20:01:10 +0100 |
commit | c67b7025882ee6bc2b3d5112dbc630c191f1fa2a (patch) | |
tree | 4c36124e376eac0235accd523be6545ccdccf6af /key-bindings.c | |
parent | 3d8efdf310f475a6b9ed83814182c966de2bdab3 (diff) | |
parent | ddc4512d2e0eda6c705e002cb5dbf80719d709e1 (diff) | |
download | rtmux-c67b7025882ee6bc2b3d5112dbc630c191f1fa2a.tar.gz rtmux-c67b7025882ee6bc2b3d5112dbc630c191f1fa2a.tar.bz2 rtmux-c67b7025882ee6bc2b3d5112dbc630c191f1fa2a.zip |
Merge branch 'obsd-master'
Diffstat (limited to 'key-bindings.c')
-rw-r--r-- | key-bindings.c | 22 |
1 files changed, 12 insertions, 10 deletions
diff --git a/key-bindings.c b/key-bindings.c index b464c199..af53720c 100644 --- a/key-bindings.c +++ b/key-bindings.c @@ -377,18 +377,22 @@ key_bindings_init(void) struct cmd_list *cmdlist; char *cause; int error; - struct cmd_q *cmdq; - cmdq = cmdq_new(NULL); for (i = 0; i < nitems(defaults); i++) { error = cmd_string_parse(defaults[i], &cmdlist, "<default-keys>", i, &cause); if (error != 0) fatalx("bad default key"); - cmdq_run(cmdq, cmdlist, NULL); + cmdq_append(NULL, cmdq_get_command(cmdlist, NULL, NULL, 0)); cmd_list_free(cmdlist); } - cmdq_free(cmdq); +} + +static enum cmd_retval +key_bindings_read_only(struct cmd_q *cmdq, __unused void *data) +{ + cmdq_error(cmdq, "client is read-only"); + return (CMD_RETURN_ERROR); } void @@ -403,10 +407,8 @@ key_bindings_dispatch(struct key_binding *bd, struct client *c, if (!(cmd->entry->flags & CMD_READONLY)) readonly = 0; } - if (!readonly && (c->flags & CLIENT_READONLY)) { - cmdq_error(c->cmdq, "client is read-only"); - return; - } - - cmdq_run(c->cmdq, bd->cmdlist, m); + if (!readonly && (c->flags & CLIENT_READONLY)) + cmdq_append(c, cmdq_get_callback(key_bindings_read_only, NULL)); + else + cmdq_append(c, cmdq_get_command(bd->cmdlist, NULL, m, 0)); } |