Subject: bin/11882: 1.5 'vi' seems to do something insane instead of beeping.
To: None <>
From: None <>
List: netbsd-bugs
Date: 01/03/2001 11:00:16
>Number:         11882
>Category:       bin
>Synopsis:       1.5 'vi' seems to do something insane instead of beeping.
>Confidential:   no
>Severity:       critical
>Priority:       high
>Responsible:    bin-bug-people
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Wed Jan 03 11:00:01 PST 2001
>Originator:     Chris Demetriou
>Release:        NetBSD 1.5.
Hair Pullers Anonymous
NetBSD 1.5 NetBSD 1.5 (GENERIC) #3: Tue Jan  2 22:35:41 PST 2001 i386

NetBSD 1.5's vi -- and possibly other programs -- seems to do something
Bad instead of emitting a bell, which confuses my xterms (1.4.x, and
Solaris 2.6 -- i've not tried 1.5 xterms).

Instead of emitting a bell, the end result is that the
"reverse video" setting of the xterm seems to be turned off.

It would appear that what's happening is that vi's "flash" setting
is enabled, and the new termcap handling of longer termcaps (?)
allows it to pick up the xterm 'vb' setting, and so it's
trying to use that to flash.

I don't know for sure what the escape codes are trying to do, but
i'd guess that they turn reverse-video on, then off.

by default, my reverse video setting is 'on', so this has the
overall effect of destroying my normal xterm appearance, much to
the displeasure of my eyes.

Start an xterm with reverse video on.

run vi
use :set all to make sure that 'flash' is set (the default).
hit escape to make it beep/flash.

Note that your reverse-video setting is now clobbered.

Remove the 'vb' setting from termcap for xterm
seems to be my choice.  If users want visual bell, they can
set their xterm configuration to use it.

Also, the "new-ish" presence of the setting in the useful part of the
termcap entry (i.e., now that the whole entry is used) means that
behaviour expected by people will change, so it's probably desirable
to remove it to get behavioural compatibility.

a somewhat severe workaround is to set term to be vt100, but i consider
that inadequate.  I've gotta do that on linux to make it work with
other systems' xterms, though, so it's not unprecedented...  *sigh*