diff options
author | des <des@FreeBSD.org> | 2009-09-25 22:45:59 +0000 |
---|---|---|
committer | des <des@FreeBSD.org> | 2009-09-25 22:45:59 +0000 |
commit | bf5117185e83a178d672946c3f7053d0ef92be27 (patch) | |
tree | 394fcfe01b613c0b5b5edbfc414a17c73481ad5d /sys/teken/teken_subr.h | |
parent | b79ff8160af6fa640e29ce784e59acd49cd1e7fc (diff) | |
parent | 5c2742e3dae3ef549329b770ec44b16ca930dc1f (diff) | |
download | FreeBSD-src-bf5117185e83a178d672946c3f7053d0ef92be27.zip FreeBSD-src-bf5117185e83a178d672946c3f7053d0ef92be27.tar.gz |
Sync with head
Diffstat (limited to 'sys/teken/teken_subr.h')
-rw-r--r-- | sys/teken/teken_subr.h | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/sys/teken/teken_subr.h b/sys/teken/teken_subr.h index ab3e759..7d8cd0c 100644 --- a/sys/teken/teken_subr.h +++ b/sys/teken/teken_subr.h @@ -397,6 +397,11 @@ teken_subr_delete_line(teken_t *t, unsigned int nrows) { teken_rect_t tr; + /* Ignore if outside scrolling region. */ + if (t->t_cursor.tp_row < t->t_scrollreg.ts_begin || + t->t_cursor.tp_row >= t->t_scrollreg.ts_end) + return; + tr.tr_begin.tp_col = 0; tr.tr_end.tp_row = t->t_scrollreg.ts_end; tr.tr_end.tp_col = t->t_winsize.tp_col; @@ -656,6 +661,11 @@ teken_subr_insert_line(teken_t *t, unsigned int nrows) { teken_rect_t tr; + /* Ignore if outside scrolling region. */ + if (t->t_cursor.tp_row < t->t_scrollreg.ts_begin || + t->t_cursor.tp_row >= t->t_scrollreg.ts_end) + return; + tr.tr_begin.tp_row = t->t_cursor.tp_row; tr.tr_begin.tp_col = 0; tr.tr_end.tp_col = t->t_winsize.tp_col; @@ -802,8 +812,9 @@ teken_subr_regular_character(teken_t *t, teken_char_t c) int width; if (t->t_stateflags & TS_8BIT) { - if (!(t->t_stateflags & TS_CONS25) && c <= 0x1B) + if (!(t->t_stateflags & TS_CONS25) && (c <= 0x1b || c == 0x7f)) return; + c = teken_scs_process(t, c); width = 1; } else { c = teken_scs_process(t, c); |