svn commit: r261547 - head/sys/teken
Ronald Klop
ronald-lists at klop.ws
Thu Feb 6 12:24:59 UTC 2014
On Thu, 06 Feb 2014 12:38:40 +0100, Aleksandr Rybalko <ray at freebsd.org>
wrote:
> Author: ray
> Date: Thu Feb 6 11:38:39 2014
> New Revision: 261547
> URL: http://svnweb.freebsd.org/changeset/base/261547
>
> Log:
> Fix crash on load of bigger font. It reduce width and height of
> terminal, but
> current cursor position stay bigger that terminal window size, so next
> input
> triggers assert.
> Reported by: emaste
> Sponsored by: The FreeBSD Foundation
>
> Modified:
> head/sys/teken/teken.c
>
> Modified: head/sys/teken/teken.c
> ==============================================================================
> --- head/sys/teken/teken.c Thu Feb 6 10:52:51 2014 (r261546)
> +++ head/sys/teken/teken.c Thu Feb 6 11:38:39 2014 (r261547)
> @@ -338,10 +338,26 @@ teken_get_winsize(teken_t *t)
> return (&t->t_winsize);
> }
> +static void
> +taken_trim_cursor_pos(teken_t *t, const teken_pos_t *new)
Was teken... already taken?
Ronald.
> +{
> + const teken_pos_t *cur;
> +
> + cur = &t->t_winsize;
> +
> + if (cur->tp_row < new->tp_row || cur->tp_col < new->tp_col)
> + return;
> + if (t->t_cursor.tp_row >= new->tp_row)
> + t->t_cursor.tp_row = new->tp_row - 1;
> + if (t->t_cursor.tp_col >= new->tp_col)
> + t->t_cursor.tp_col = new->tp_col - 1;
> +}
> +
> void
> teken_set_winsize(teken_t *t, const teken_pos_t *p)
> {
> + taken_trim_cursor_pos(t, p);
> t->t_winsize = *p;
> teken_subr_do_reset(t);
> }
> @@ -350,6 +366,7 @@ void
> teken_set_winsize_noreset(teken_t *t, const teken_pos_t *p)
> {
> + taken_trim_cursor_pos(t, p);
> t->t_winsize = *p;
> teken_subr_do_resize(t);
> }
> _______________________________________________
> svn-src-all at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/svn-src-all
> To unsubscribe, send any mail to "svn-src-all-unsubscribe at freebsd.org"
More information about the svn-src-all
mailing list