Subject: Re: bin/10116: vi somewhat easily confused by suspension
To: None <gnats-bugs@gnats.netbsd.org, tech-userlevel@netbsd.org>
From: ITOH Yasufumi <itohy@netbsd.org>
List: tech-userlevel
Date: 05/19/2000 12:45:37
J.D.Coleman@newcastle.ac.uk writes:

> We previously always sent the enable sequences when the program started - in
> __startwin(), but the documentation states that the initial state is FALSE -
> 
>   http://www.opengroup.org/onlinepubs/007908799/xcurses/keypad.html
> 
> - so I also changed that.  Agreed, this means that a program may get an
> unknown key if it calls wgetch() before it calls keypad().

Okay, conforming the standard is more important than small local reform.
Programs can still interpret the key sequence by their own in Solaris
implementation using  keypad(stdscr, TRUE); keypad(win, FALSE);  pair.

>                                                 Not sure if we should worry
> about this or not.  My inclination was not.  There are a few corner cases
> where it is possible to cause curses to send unnecessary (but not harmful)
> sequences.

I agree they are corner cases, but
I can't conclude that no program interprets keypad char by its own.

If the "disable keypad" sequence is sent by keypad(win, FALSE),
such a program can't know the sequence sent by a keypad key.

>             However, adding code to avoid sending the unnecessary sequences
> in these instances may also prevent the correct thing happening at other
> times.

Nvi depends on the behavior of old and obsolete BSD curses.
Now we have new curses.  Why don't we fix nvi?

How does it work if just undef HAVE_BSD_CURSES?
(I havn't tried it, yet.)
-- 
ITOH, Yasufumi