diff options
Diffstat (limited to 'tty-write.c')
-rw-r--r-- | tty-write.c | 48 |
1 files changed, 34 insertions, 14 deletions
diff --git a/tty-write.c b/tty-write.c index 5f13bbda..08c2981b 100644 --- a/tty-write.c +++ b/tty-write.c @@ -1,4 +1,4 @@ -/* $Id: tty-write.c,v 1.19 2009-07-15 17:42:44 nicm Exp $ */ +/* $Id: tty-write.c,v 1.20 2009-07-22 18:08:56 tcunha Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net> @@ -18,26 +18,48 @@ #include <sys/types.h> +#include <string.h> + #include "tmux.h" -void tty_vwrite_cmd(struct window_pane *, enum tty_cmd, va_list); +void +tty_write0(struct window_pane *wp, enum tty_cmd cmd) +{ + struct tty_ctx ctx; + + memset(&ctx, 0, sizeof ctx); + ctx.wp = wp; + tty_write_cmd(cmd, &ctx); +} + +void +tty_writenum(struct window_pane *wp, enum tty_cmd cmd, u_int num) +{ + struct tty_ctx ctx; + + memset(&ctx, 0, sizeof ctx); + ctx.wp = wp; + ctx.num = num; + tty_write_cmd(cmd, &ctx); +} void -tty_write_cmd(struct window_pane *wp, enum tty_cmd cmd, ...) +tty_writeptr(struct window_pane *wp, enum tty_cmd cmd, void *ptr) { - va_list ap; + struct tty_ctx ctx; - va_start(ap, cmd); - tty_vwrite_cmd(wp, cmd, ap); - va_end(ap); + memset(&ctx, 0, sizeof ctx); + ctx.wp = wp; + ctx.ptr = ptr; + tty_write_cmd(cmd, &ctx); } void -tty_vwrite_cmd(struct window_pane *wp, enum tty_cmd cmd, va_list ap) +tty_write_cmd(enum tty_cmd cmd, struct tty_ctx *ctx) { - struct client *c; - va_list aq; - u_int i; + struct window_pane *wp = ctx->wp; + struct client *c; + u_int i; if (wp == NULL) return; @@ -57,9 +79,7 @@ tty_vwrite_cmd(struct window_pane *wp, enum tty_cmd cmd, va_list ap) if (c->session->curw->window == wp->window) { tty_update_mode(&c->tty, c->tty.mode & ~MODE_CURSOR); - va_copy(aq, ap); - tty_vwrite(&c->tty, wp, cmd, aq); - va_end(aq); + tty_write(&c->tty, cmd, ctx); } } } |