Never draw last character: stops stray scrolling sometimes should status line be disabled.

This commit is contained in:
Nicholas Marriott 2009-02-12 00:18:05 +00:00
parent 5a04f74d81
commit e6ed1cc44f
3 changed files with 11 additions and 8 deletions

View File

@ -1,4 +1,4 @@
/* $Id: screen-redraw.c,v 1.24 2009-02-11 23:16:41 nicm Exp $ */
/* $Id: screen-redraw.c,v 1.25 2009-02-12 00:18:05 nicm Exp $ */
/*
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
@ -134,11 +134,6 @@ screen_redraw_line(struct client *c, struct screen *s, u_int oy, u_int py)
sx = screen_size_x(s);
if (sx > c->tty.sx)
sx = c->tty.sx;
if (c->tty.term->flags & TERM_EARLYWRAP) {
/* Work around weirdness by omitting bottom right character. */
if (oy + py == c->tty.sy - 1 && sx == c->tty.sx)
sx--;
}
for (i = 0; i < sx; i++) {
gc = grid_view_peek_cell(s->grid, i, py);
tty_cursor(&c->tty, i, py, oy);

View File

@ -1,4 +1,4 @@
/* $Id: tty-term.c,v 1.13 2009-02-11 23:16:44 nicm Exp $ */
/* $Id: tty-term.c,v 1.14 2009-02-12 00:18:05 nicm Exp $ */
/*
* Copyright (c) 2008 Nicholas Marriott <nicm@users.sourceforge.net>
@ -218,6 +218,9 @@ tty_term_find(char *name, int fd, char **cause)
for (i = 0; i < NTTYCODE; i++) {
ent = &tty_term_codes[i];
// if (ent->code == TTYC_CSR)/*XXX*/
// continue;
code = &term->codes[ent->code];
code->type = TTYCODE_NONE;
switch (ent->type) {

7
tty.c
View File

@ -1,4 +1,4 @@
/* $Id: tty.c,v 1.72 2009-02-12 00:03:58 nicm Exp $ */
/* $Id: tty.c,v 1.73 2009-02-12 00:18:05 nicm Exp $ */
/*
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
@ -735,6 +735,11 @@ tty_cell(struct tty *tty, const struct grid_cell *gc)
u_int i, width;
u_char out[4];
/* Skip last character if terminal is stupid. */
if (c->tty.term->flags & TERM_EARLYWRAP &&
tty->cy == tty->sy - 1 && tty->cx == tty->sx - 1)
return;
/* If this is a padding character, do nothing. */
if (gc->flags & GRID_FLAG_PADDING)
return;