diff options
author | Nicholas Marriott <nicholas.marriott@gmail.com> | 2009-06-25 15:51:54 +0000 |
---|---|---|
committer | Nicholas Marriott <nicholas.marriott@gmail.com> | 2009-06-25 15:51:54 +0000 |
commit | 93631b3ca755638c480321b2eaebaeea99075450 (patch) | |
tree | 92b77576206ed71dab9f0fcadea6850ba0d7330c /tty.c | |
parent | 49477de55c8578ac7eac265c1557f47c6107940d (diff) | |
download | rtmux-93631b3ca755638c480321b2eaebaeea99075450.tar.gz rtmux-93631b3ca755638c480321b2eaebaeea99075450.tar.bz2 rtmux-93631b3ca755638c480321b2eaebaeea99075450.zip |
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.
Diffstat (limited to 'tty.c')
-rw-r--r-- | tty.c | 22 |
1 files changed, 21 insertions, 1 deletions
@@ -1,4 +1,4 @@ -/* $OpenBSD: tty.c,v 1.3 2009/06/03 23:26:56 nicm Exp $ */ +/* $OpenBSD: tty.c,v 1.4 2009/06/03 23:30:40 nicm Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net> @@ -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, @@ -841,6 +843,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) { struct screen *s = wp->screen; |