Fix some miscalculations when clearing to start of screen: the number of lines

to the cursor is cy not cy - 1, and the current cursor cell should be included.
This commit is contained in:
Nicholas Marriott 2009-06-25 15:50:48 +00:00
parent dff949747c
commit 49477de55c
2 changed files with 5 additions and 5 deletions

View File

@ -1,4 +1,4 @@
/* $OpenBSD: screen-write.c,v 1.3 2009/06/03 16:54:26 nicm Exp $ */
/* $OpenBSD: screen-write.c,v 1.4 2009/06/03 23:26:56 nicm Exp $ */
/*
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
@ -605,11 +605,11 @@ screen_write_clearstartofscreen(struct screen_write_ctx *ctx)
sx = screen_size_x(s);
if (s->cy > 0)
grid_view_clear(s->grid, 0, 0, sx, s->cy - 1);
grid_view_clear(s->grid, 0, 0, sx, s->cy);
if (s->cx > sx - 1)
grid_view_clear(s->grid, 0, s->cy, sx, 1);
else
grid_view_clear(s->grid, 0, s->cy, s->cx, 1);
grid_view_clear(s->grid, 0, s->cy, s->cx + 1, 1);
tty_write_cmd(ctx->wp, TTY_CLEARSTARTOFSCREEN);
}

4
tty.c
View File

@ -1,4 +1,4 @@
/* $Id: tty.c,v 1.100 2009-06-24 17:31:03 nicm Exp $ */
/* $OpenBSD: tty.c,v 1.3 2009/06/03 23:26:56 nicm Exp $ */
/*
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
@ -807,7 +807,7 @@ tty_cmd_clearstartofscreen(
tty_putc(tty, ' ');
}
}
for (i = 0; i < s->old_cx; i++)
for (i = 0; i <= s->old_cx; i++)
tty_putc(tty, ' ');
}