mirror of
https://github.com/tmux/tmux.git
synced 2025-09-16 08:18:18 +00:00
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:
50
tty-write.c
50
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_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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user