From f172cb38525edd1c6bdf1c41fe3a74ece42cbcd7 Mon Sep 17 00:00:00 2001 From: Aaron Campbell Date: Sun, 11 Jun 2000 18:57:36 +0000 Subject: Better fix for the scrolling region problem. Fixes PR/1271. --- sys/arch/i386/isa/pcvt/pcvt_out.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'sys/arch') diff --git a/sys/arch/i386/isa/pcvt/pcvt_out.c b/sys/arch/i386/isa/pcvt/pcvt_out.c index 4c7b10157d5..5d54bc5cd1d 100644 --- a/sys/arch/i386/isa/pcvt/pcvt_out.c +++ b/sys/arch/i386/isa/pcvt/pcvt_out.c @@ -1,4 +1,4 @@ -/* $OpenBSD: pcvt_out.c,v 1.22 2000/06/04 18:09:16 aaron Exp $ */ +/* $OpenBSD: pcvt_out.c,v 1.23 2000/06/11 18:57:35 aaron Exp $ */ /* * Copyright (c) 1992, 1995 Hellmuth Michaelis and Joerg Wunsch. @@ -1300,11 +1300,17 @@ vt_coldmalloc(void) static void check_scroll(struct video_state *svsp) { + int region_size; + + region_size = (svsp->scrr_end + 1) * svsp->maxcol; + if(!svsp->abs_write) { /* we write within scroll region */ - if(svsp->cur_offset == ((svsp->scrr_end + 1) * svsp->maxcol)) + if((svsp->cur_offset == region_size) || + (svsp->cur_offset > region_size && (svsp->scrr_end == + svsp->screen_rows - 1))) { /* the following piece of code has to be protected */ /* from trying to switch to another virtual screen */ -- cgit v1.2.3