Split most of tty_cmd_cell off to tty_cell. First step on making tty_cmd_* take

a window_pane for later use emulating scroll region.
This commit is contained in:
Nicholas Marriott 2009-02-11 06:50:16 +00:00
parent c6be7d3ee6
commit e444b0b92a
3 changed files with 17 additions and 7 deletions

View File

@ -1,4 +1,4 @@
/* $Id: screen-redraw.c,v 1.20 2009-01-19 20:14:55 nicm Exp $ */
/* $Id: screen-redraw.c,v 1.21 2009-02-11 06:50:15 nicm Exp $ */
/*
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
@ -142,8 +142,8 @@ screen_redraw_line(struct client *c, struct screen *s, u_int oy, u_int py)
if (screen_check_selection(s, i, py)) {
memcpy(&tc, &s->sel.cell, sizeof tc);
tc.data = gc->data;
tty_write(&c->tty, s, oy, TTY_CELL, &tc);
tty_cell(&c->tty, s, oy, &tc);
} else
tty_write(&c->tty, s, oy, TTY_CELL, gc);
tty_cell(&c->tty, s, oy, gc);
}
}

4
tmux.h
View File

@ -1,4 +1,4 @@
/* $Id: tmux.h,v 1.264 2009-02-11 06:31:09 nicm Exp $ */
/* $Id: tmux.h,v 1.265 2009-02-11 06:50:15 nicm Exp $ */
/*
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
@ -1012,6 +1012,8 @@ long long options_get_number(struct options *, const char *);
/* tty.c */
void tty_cursor(struct tty *, u_int, u_int, u_int);
void tty_cell(
struct tty *, struct screen *, u_int, struct grid_cell *);
void tty_putcode(struct tty *, enum tty_code_code);
void tty_putcode1(struct tty *, enum tty_code_code, int);
void tty_putcode2(struct tty *, enum tty_code_code, int, int);

14
tty.c
View File

@ -1,4 +1,4 @@
/* $Id: tty.c,v 1.65 2009-02-07 00:05:23 nicm Exp $ */
/* $Id: tty.c,v 1.66 2009-02-11 06:50:16 nicm Exp $ */
/*
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
@ -629,6 +629,16 @@ tty_cmd_clearscreen(
void
tty_cmd_cell(struct tty *tty, struct screen *s, u_int oy, va_list ap)
{
struct grid_cell *gc;
gc = va_arg(ap, struct grid_cell *);
tty_cell(tty, s, oy, gc);
}
void
tty_cell(struct tty *tty, struct screen *s, u_int oy, struct grid_cell *gc)
{
struct grid_cell *gc;
u_int i, width;
@ -636,8 +646,6 @@ tty_cmd_cell(struct tty *tty, struct screen *s, u_int oy, va_list ap)
tty_cursor(tty, s->cx, s->cy, oy);
gc = va_arg(ap, struct grid_cell *);
/* If this is a padding character, do nothing. */
if (gc->flags & GRID_FLAG_PADDING)
return;