enum tty_cmd is only used as an index into the array of command function

pointers, so remove it and use the function pointers directly to represent
themselves.
This commit is contained in:
Nicholas Marriott
2009-07-22 18:02:23 +00:00
parent 6a309c53a8
commit 2ec2837daa
4 changed files with 89 additions and 134 deletions

View File

@@ -23,39 +23,39 @@
#include "tmux.h"
void
tty_write0(struct window_pane *wp, enum tty_cmd cmd)
tty_write0(struct window_pane *wp, tty_cmd_func *cmdfn)
{
struct tty_ctx ctx;
memset(&ctx, 0, sizeof ctx);
ctx.wp = wp;
tty_write_cmd(cmd, &ctx);
tty_write(cmdfn, &ctx);
}
void
tty_writenum(struct window_pane *wp, enum tty_cmd cmd, u_int num)
tty_writenum(struct window_pane *wp, tty_cmd_func *cmdfn, u_int num)
{
struct tty_ctx ctx;
memset(&ctx, 0, sizeof ctx);
ctx.wp = wp;
ctx.num = num;
tty_write_cmd(cmd, &ctx);
tty_write(cmdfn, &ctx);
}
void
tty_writeptr(struct window_pane *wp, enum tty_cmd cmd, void *ptr)
tty_writeptr(struct window_pane *wp, tty_cmd_func *cmdfn, void *ptr)
{
struct tty_ctx ctx;
memset(&ctx, 0, sizeof ctx);
ctx.wp = wp;
ctx.ptr = ptr;
tty_write_cmd(cmd, &ctx);
tty_write(cmdfn, &ctx);
}
void
tty_write_cmd(enum tty_cmd cmd, struct tty_ctx *ctx)
tty_write(tty_cmd_func *cmdfn, struct tty_ctx *ctx)
{
struct window_pane *wp = ctx->wp;
struct client *c;
@@ -77,9 +77,10 @@ tty_write_cmd(enum tty_cmd cmd, struct tty_ctx *ctx)
continue;
if (c->session->curw->window == wp->window) {
if (c->tty.flags & TTY_FREEZE || c->tty.term == NULL)
continue;
tty_update_mode(&c->tty, c->tty.mode & ~MODE_CURSOR);
tty_write(&c->tty, cmd, ctx);
cmdfn(&c->tty, ctx);
}
}
}