Sync OpenBSD patchset 159:

There are relatively few arguments to tty_cmd_* functions now, so tidy them up
by using a struct rather than hiding everything with varargs.
This commit is contained in:
Tiago Cunha
2009-07-22 18:08:56 +00:00
parent 75a44d856e
commit b6afa30c39
4 changed files with 155 additions and 130 deletions

View File

@@ -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_write_cmd(struct window_pane *wp, enum tty_cmd cmd, ...)
tty_write0(struct window_pane *wp, enum tty_cmd cmd)
{
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;
tty_write_cmd(cmd, &ctx);
}
void
tty_vwrite_cmd(struct window_pane *wp, enum tty_cmd cmd, va_list ap)
tty_writenum(struct window_pane *wp, enum tty_cmd cmd, u_int num)
{
struct client *c;
va_list aq;
u_int i;
struct tty_ctx ctx;
memset(&ctx, 0, sizeof ctx);
ctx.wp = wp;
ctx.num = num;
tty_write_cmd(cmd, &ctx);
}
void
tty_writeptr(struct window_pane *wp, enum tty_cmd cmd, void *ptr)
{
struct tty_ctx ctx;
memset(&ctx, 0, sizeof ctx);
ctx.wp = wp;
ctx.ptr = ptr;
tty_write_cmd(cmd, &ctx);
}
void
tty_write_cmd(enum tty_cmd cmd, struct tty_ctx *ctx)
{
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);
}
}
}