=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/tmux/key-bindings.c,v retrieving revision 1.34 retrieving revision 1.35 diff -u -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 +1,4 @@ -/* $OpenBSD: key-bindings.c,v 1.34 2013/01/17 00:11:22 nicm Exp $ */ +/* $OpenBSD: key-bindings.c,v 1.35 2013/03/22 15:49:55 nicm Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott @@ -262,28 +262,29 @@ void 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.curclient = c; + 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; + 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"); + key_bindings_info(ctx, "client is read-only"); return; } - cmd_list_exec(bd->cmdlist, &ctx); + cmd_list_exec(bd->cmdlist, ctx); + cmd_free_ctx(ctx); }