=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/tmux/key-bindings.c,v retrieving revision 1.34 retrieving revision 1.35 diff -c -r1.34 -r1.35 *** src/usr.bin/tmux/key-bindings.c 2013/01/17 00:11:22 1.34 --- src/usr.bin/tmux/key-bindings.c 2013/03/22 15:49:55 1.35 *************** *** 1,4 **** ! /* $OpenBSD: key-bindings.c,v 1.34 2013/01/17 00:11:22 nicm Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott --- 1,4 ---- ! /* $OpenBSD: key-bindings.c,v 1.35 2013/03/22 15:49:55 nicm Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott *************** *** 262,289 **** void key_bindings_dispatch(struct key_binding *bd, struct client *c) { ! struct cmd_ctx ctx; struct cmd *cmd; int readonly; ! ctx.msgdata = NULL; ! ctx.curclient = c; ! ctx.error = key_bindings_error; ! ctx.print = key_bindings_print; ! ctx.info = key_bindings_info; - ctx.cmdclient = NULL; - readonly = 1; TAILQ_FOREACH(cmd, &bd->cmdlist->list, 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); } --- 262,290 ---- void key_bindings_dispatch(struct key_binding *bd, struct client *c) { ! struct cmd_ctx *ctx; struct cmd *cmd; int readonly; ! ctx = cmd_get_ctx(); ! ctx->msgdata = NULL; ! ctx->cmdclient = NULL; ! ctx->curclient = c; ! ctx->error = key_bindings_error; ! ctx->print = key_bindings_print; ! ctx->info = key_bindings_info; readonly = 1; TAILQ_FOREACH(cmd, &bd->cmdlist->list, 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_free_ctx(ctx); }