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>
