version 1.4, 2009/07/14 07:23:36 |
version 1.5, 2009/07/22 16:45:31 |
|
|
|
|
#include <sys/types.h> |
#include <sys/types.h> |
|
|
|
#include <string.h> |
|
|
#include "tmux.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 |
void |
tty_write_cmd(struct window_pane *wp, enum tty_cmd cmd, ...) |
tty_writenum(struct window_pane *wp, enum tty_cmd cmd, u_int num) |
{ |
{ |
va_list ap; |
struct tty_ctx ctx; |
|
|
va_start(ap, cmd); |
memset(&ctx, 0, sizeof ctx); |
tty_vwrite_cmd(wp, cmd, ap); |
ctx.wp = wp; |
va_end(ap); |
ctx.num = num; |
|
tty_write_cmd(cmd, &ctx); |
} |
} |
|
|
void |
void |
tty_vwrite_cmd(struct window_pane *wp, enum tty_cmd cmd, va_list ap) |
tty_writeptr(struct window_pane *wp, enum tty_cmd cmd, void *ptr) |
{ |
{ |
struct client *c; |
struct tty_ctx ctx; |
va_list aq; |
|
u_int i; |
|
|
|
|
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) |
if (wp == NULL) |
return; |
return; |
|
|
|
|
if (c->session->curw->window == wp->window) { |
if (c->session->curw->window == wp->window) { |
tty_update_mode(&c->tty, c->tty.mode & ~MODE_CURSOR); |
tty_update_mode(&c->tty, c->tty.mode & ~MODE_CURSOR); |
|
|
va_copy(aq, ap); |
tty_write(&c->tty, cmd, ctx); |
tty_vwrite(&c->tty, wp, cmd, aq); |
|
va_end(aq); |
|
} |
} |
} |
} |
} |
} |