From 0abe3145c39427f0edaa556c9c4bb6cc575d0be7 Mon Sep 17 00:00:00 2001 From: Ed Schouten Date: Mon, 9 Aug 2010 18:07:15 +0000 Subject: [PATCH] Make ^L with cons25 and origin mode bit more sane. Even though cons25 normally doesn't support origin regions, this emulator does allow you to do it. It makes more sense to blank only the origin region when emitting ^L instead of blanking the entire screen. Apart from that, we should always place the cursor inside the origin region, which doesn't happen right now. --- sys/teken/teken_subr.h | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/sys/teken/teken_subr.h b/sys/teken/teken_subr.h index 6bad71e3656..c84679a3660 100644 --- a/sys/teken/teken_subr.h +++ b/sys/teken/teken_subr.h @@ -725,11 +725,17 @@ teken_subr_newpage(teken_t *t) if (t->t_stateflags & TS_CONS25) { teken_rect_t tr; - tr.tr_begin.tp_row = tr.tr_begin.tp_col = 0; - tr.tr_end = t->t_winsize; + /* Clear screen. */ + tr.tr_begin.tp_row = t->t_originreg.ts_begin; + tr.tr_begin.tp_col = 0; + tr.tr_end.tp_row = t->t_originreg.ts_end; + tr.tr_end.tp_col = t->t_winsize.tp_col; teken_funcs_fill(t, &tr, BLANK, &t->t_curattr); - t->t_cursor.tp_row = t->t_cursor.tp_col = 0; + /* Cursor at top left. */ + t->t_cursor.tp_row = t->t_originreg.ts_begin; + t->t_cursor.tp_col = 0; + t->t_stateflags &= ~TS_WRAPPED; teken_funcs_cursor(t); } else { teken_subr_newline(t);