Implement the DEC alignment test. With the last change this is enough for the

first cursor test in vttest (in ports) to pass; it still shops a few more
problems though.
This commit is contained in:
Nicholas Marriott
2009-06-03 23:30:40 +00:00
parent ebe07c2726
commit 52ec9b9ec4
4 changed files with 69 additions and 5 deletions

20
tty.c
View File

@ -38,6 +38,7 @@ void tty_attributes(struct tty *, const struct grid_cell *);
void tty_attributes_fg(struct tty *, const struct grid_cell *);
void tty_attributes_bg(struct tty *, const struct grid_cell *);
void tty_cmd_alignmenttest(struct tty *, struct window_pane *, va_list);
void tty_cmd_cell(struct tty *, struct window_pane *, va_list);
void tty_cmd_clearendofline(struct tty *, struct window_pane *, va_list);
void tty_cmd_clearendofscreen(struct tty *, struct window_pane *, va_list);
@ -54,6 +55,7 @@ void tty_cmd_raw(struct tty *, struct window_pane *, va_list);
void tty_cmd_reverseindex(struct tty *, struct window_pane *, va_list);
void (*tty_cmds[])(struct tty *, struct window_pane *, va_list) = {
tty_cmd_alignmenttest,
tty_cmd_cell,
tty_cmd_clearendofline,
tty_cmd_clearendofscreen,
@ -830,6 +832,24 @@ tty_cmd_clearscreen(
}
}
void
tty_cmd_alignmenttest(
struct tty *tty, struct window_pane *wp, unused va_list ap)
{
struct screen *s = wp->screen;
u_int i, j;
tty_reset(tty);
tty_region(tty, 0, screen_size_y(s) - 1, wp->yoff);
for (j = 0; j < screen_size_y(s); j++) {
tty_cursor(tty, 0, j, wp->xoff, wp->yoff);
for (i = 0; i < screen_size_x(s); i++)
tty_putc(tty, 'E');
}
}
void
tty_cmd_cell(struct tty *tty, struct window_pane *wp, va_list ap)
{