Subject: kern/7124: wsemul_vt100 botches tabs.
To: None <gnats-bugs@gnats.netbsd.org>
From: Bill Sommerfeld <sommerfeld@orchard.arlington.ma.us>
List: netbsd-bugs
Date: 03/10/1999 18:17:32
>Number: 7124
>Category: kern
>Synopsis: wsemul_vt100 botches tabs.
>Confidential: no
>Severity: serious
>Priority: high
>Responsible: kern-bug-people (Kernel Bug People)
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Wed Mar 10 10:20:02 1999
>Last-Modified:
>Originator: Bill Sommerfeld
>Organization:
none
>Release: 19990309
>Environment:
System: NetBSD orchard.arlington.ma.us 1.3K NetBSD 1.3K (ORCHARDII) #28: Wed Mar 10 01:46:31 EST 1999 sommerfeld@orchard.arlington.ma.us:/usr/src/sys/arch/i386/compile/ORCHARDII i386
>Description:
When printing tabs, the vt100 emulation erases the characters
moved over.
I am certain that, on real vt100's, a tab does *not* erase the
characters moved over; it merely moves the cursor
(this is based on fairly vivid memories of how emacs behaved on
a vt100 which had hard tabs set every 10 characters...).
>How-To-Repeat:
run emacs on console while stty -oxtabs is in effect.
note that it often overwrites parts of the screen with spaces.
investigate, notice that its display optimization code uses
TAB for non-destructive forward cursor motion when moving the
cursor to a tab stop.
>Fix:
remove code which does the erasing.
Index: wsemul_vt100.c
===================================================================
RCS file: /cvsroot/src/sys/dev/wscons/wsemul_vt100.c,v
retrieving revision 1.10
diff -u -r1.10 wsemul_vt100.c
--- wsemul_vt100.c 1999/01/17 15:44:57 1.10
+++ wsemul_vt100.c 1999/03/10 18:06:47
@@ -394,8 +394,10 @@
} else {
n = edp->ccol + min(8 - (edp->ccol & 7), COLS_LEFT);
}
+#if 0
ERASECOLS(edp->ccol, n - edp->ccol,
kernel ? edp->kernattr : edp->curattr);
+#endif
edp->ccol = n;
break;
case ASCII_SO: /* LS1 */
>Audit-Trail:
>Unformatted: