version 1.16, 2009/12/10 09:16:52 |
version 1.17, 2010/02/06 22:55:31 |
|
|
void |
void |
key_bindings_dispatch(struct key_binding *bd, struct client *c) |
key_bindings_dispatch(struct key_binding *bd, struct client *c) |
{ |
{ |
struct cmd_ctx ctx; |
struct cmd_ctx ctx; |
|
struct cmd *cmd; |
|
int readonly; |
|
|
ctx.msgdata = NULL; |
ctx.msgdata = NULL; |
ctx.curclient = c; |
ctx.curclient = c; |
|
|
ctx.info = key_bindings_info; |
ctx.info = key_bindings_info; |
|
|
ctx.cmdclient = NULL; |
ctx.cmdclient = NULL; |
|
|
|
readonly = 1; |
|
TAILQ_FOREACH(cmd, bd->cmdlist, qentry) { |
|
if (!(cmd->entry->flags & CMD_READONLY)) |
|
readonly = 0; |
|
} |
|
if (!readonly && c->flags & CLIENT_READONLY) { |
|
key_bindings_info(&ctx, "Client is read-only"); |
|
return; |
|
} |
|
|
cmd_list_exec(bd->cmdlist, &ctx); |
cmd_list_exec(bd->cmdlist, &ctx); |
} |
} |