Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 05 Dec 1999 19:16:41 +0900
From:      Kazutaka YOKOTA <yokota@zodiac.mech.utsunomiya-u.ac.jp>
To:        stable@freebsd.org
Cc:        sobomax@altavista.net, jhb@freebsd.org, ticso@cicely.de, Alexander@leidinger.net, Cejka Rudolf <cejkar@dcse.fee.vutbr.cz>, yokota@zodiac.mech.utsunomiya-u.ac.jp
Subject:   Re: Problem with syscons in VESA mode 
Message-ID:  <199912051016.TAA28697@zodiac.mech.utsunomiya-u.ac.jp>
In-Reply-To: Your message of "Fri, 03 Dec 1999 13:32:45 %2B0200." <3847AA5D.5947E0EE@altavista.net> 
References:  <19991203105728.A68768@dcse.fee.vutbr.cz>  <3847AA5D.5947E0EE@altavista.net> 

next in thread | previous in thread | raw e-mail | index | archive | help
I modified Cejka Rudolf's patch for -STABLE.  Would people care to
test this in your -STABLE boxes?  I don't have a -STABLE test box
handy right now.

Kazu

Index: syscons.c
===================================================================
RCS file: /src/CVS/src/sys/dev/syscons/syscons.c,v
retrieving revision 1.293.2.9
diff -u -r1.293.2.9 syscons.c
--- syscons.c	1999/11/29 02:38:39	1.293.2.9
+++ syscons.c	1999/12/05 07:02:04
@@ -3368,11 +3368,12 @@
 	case 0x09:  /* non-destructive tab */
 	    mark_for_update(scp, scp->cursor_pos - scp->scr_buf);
 	    scp->cursor_pos += (8 - scp->xpos % 8u);
-	    mark_for_update(scp, scp->cursor_pos - scp->scr_buf);
 	    if ((scp->xpos += (8 - scp->xpos % 8u)) >= scp->xsize) {
 	        scp->xpos = 0;
 	        scp->ypos++;
+		scp->cursor_pos = scp->scr_buf + scp->ypos * scp->xsize;
 	    }
+	    mark_for_update(scp, scp->cursor_pos - scp->scr_buf);
 	    break;
 
 	case 0x0a:  /* newline, same pos */

>Cejka Rudolf wrote:
>
>> Kazutaka YOKOTA wrote (1999/12/03):
>> > This strange behavior was reported several times in the past.  It must
>> > be related to screen update logic in syscons. But, I don't think we
>> > have successfully fixed it at that time :-(
>> > It's time to analyze the problem again...
>>
>> Yes. I know about this problem too but I have no time to fix and test
>> it. Is anybody interested in bug reports? ;-)
>>
>> * Left margin moving to the right is related to the screen width not
>>   divisible by 8 and an use of tabulators at the end of line after the
>>   last valid tab position. So the same problem could be seen for
>>   example with screen width 90, which is accessible for all
>>   -current users: Let's suppose that cursor range is 0..89: If the
>>   cursor is on 80..87, it will move to position 88 and everything is ok.
>>   If the cursor is on 88..89, the position is calculated properly (you
>>   can switch to another console then return and cursor will be on
>>   the right position on column 0), but cursor is moved incorrectly
>>   on column 8 on the next line and next lines are moved to the left too
>>   until you switch between consoles.
>>   I think the fix should be trivial (syscons.c,v 1.327) - but it is
>>   speculated right now without testing:
>>
>> --
>> *** syscons.c   Sun Nov 28 15:29:28 1999
>> --- /tmp/syscons.c      Fri Dec  3 10:28:59 1999
>> ***************
>> *** 2946,2956 ****
>>   [...]
>
>Thanks! It seems fixed my problems with syscons.
>
>-Maxim


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-stable" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199912051016.TAA28697>