Date: Thu, 31 Oct 2013 09:44:48 +0000 (UTC) From: Aleksandr Rybalko <ray@FreeBSD.org> To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r257431 - in user/ed/newcons/sys: kern teken Message-ID: <201310310944.r9V9im7k022079@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: ray Date: Thu Oct 31 09:44:48 2013 New Revision: 257431 URL: http://svnweb.freebsd.org/changeset/base/257431 Log: Add teken_subr_do_resize new method, to update taken sizes w/o reset positions and use it in case we update terminal size not touching existing data. Sponsored by: The FreeBSD Foundation Modified: user/ed/newcons/sys/kern/subr_terminal.c user/ed/newcons/sys/teken/teken.c user/ed/newcons/sys/teken/teken.h user/ed/newcons/sys/teken/teken_subr.h Modified: user/ed/newcons/sys/kern/subr_terminal.c ============================================================================== --- user/ed/newcons/sys/kern/subr_terminal.c Thu Oct 31 09:29:37 2013 (r257430) +++ user/ed/newcons/sys/kern/subr_terminal.c Thu Oct 31 09:44:48 2013 (r257431) @@ -201,11 +201,7 @@ terminal_set_winsize_blank(struct termin TERMINAL_LOCK(tm); if (blank == 0) - /* - * Assigned directly, to avoid terminal reset in the - * teken_set_winsize. - */ - tm->tm_emulator.t_winsize = r.tr_end; + teken_set_winsize_noreset(&tm->tm_emulator, &r.tr_end); else teken_set_winsize(&tm->tm_emulator, &r.tr_end); TERMINAL_UNLOCK(tm); Modified: user/ed/newcons/sys/teken/teken.c ============================================================================== --- user/ed/newcons/sys/teken/teken.c Thu Oct 31 09:29:37 2013 (r257430) +++ user/ed/newcons/sys/teken/teken.c Thu Oct 31 09:44:48 2013 (r257431) @@ -347,6 +347,14 @@ teken_set_winsize(teken_t *t, const teke } void +teken_set_winsize_noreset(teken_t *t, const teken_pos_t *p) +{ + + t->t_winsize = *p; + teken_subr_do_resize(t); +} + +void teken_set_8bit(teken_t *t) { Modified: user/ed/newcons/sys/teken/teken.h ============================================================================== --- user/ed/newcons/sys/teken/teken.h Thu Oct 31 09:29:37 2013 (r257430) +++ user/ed/newcons/sys/teken/teken.h Thu Oct 31 09:44:48 2013 (r257431) @@ -168,6 +168,7 @@ void teken_set_cursor(teken_t *, const t void teken_set_curattr(teken_t *, const teken_attr_t *); void teken_set_defattr(teken_t *, const teken_attr_t *); void teken_set_winsize(teken_t *, const teken_pos_t *); +void teken_set_winsize_noreset(teken_t *, const teken_pos_t *); /* Key input escape sequences. */ #define TKEY_UP 0x00 Modified: user/ed/newcons/sys/teken/teken_subr.h ============================================================================== --- user/ed/newcons/sys/teken/teken_subr.h Thu Oct 31 09:29:37 2013 (r257430) +++ user/ed/newcons/sys/teken/teken_subr.h Thu Oct 31 09:44:48 2013 (r257431) @@ -956,6 +956,15 @@ teken_subr_reset_mode(teken_t *t, unsign } static void +teken_subr_do_resize(teken_t *t) +{ + + t->t_scrollreg.ts_begin = 0; + t->t_scrollreg.ts_end = t->t_winsize.tp_row; + t->t_originreg = t->t_scrollreg; +} + +static void teken_subr_do_reset(teken_t *t) {
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201310310944.r9V9im7k022079>