NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: lib/58151: Should Curses getnstr() family handle erase and kill characters when input is not a tty?



The following reply was made to PR lib/58151; it has been noted by GNATS.

From: Anthony Howe <achowe%snert.com@localhost>
To: gnats-bugs%netbsd.org@localhost
Cc: 
Subject: Re: lib/58151: Should Curses getnstr() family handle erase and kill
 characters when input is not a tty?
Date: Tue, 16 Apr 2024 06:05:08 -0400

 This is a multi-part message in MIME format.
 --------------0YUG8VAdVE0WkSAil0E23vm1
 Content-Type: text/plain; charset=UTF-8; format=flowed
 Content-Transfer-Encoding: 7bit
 
 On 2024-04-15 22:40, David Holland wrote:
 > The following reply was made to PR lib/58151; it has been noted by GNATS.
 > 
 > From: David Holland <dholland-bugs%netbsd.org@localhost>
 > To: gnats-bugs%netbsd.org@localhost
 > Cc:
 > Subject: Re: lib/58151: Should Curses getnstr() family handle erase and kill
 >   characters when input is not a tty?
 > Date: Tue, 16 Apr 2024 02:36:31 +0000
 > 
 >   On Tue, Apr 16, 2024 at 02:10:02AM +0000, David Holland wrote:
 >    >  One could argue that getnstr/mvgetnstr in cbreak mode should handle
 >    >  simple line editing, but it does not, and there are problems with
 >    >  doing so. (For example: how simple? Tty cooked mode editing is fairly
 >    >  straightforward, but also not particularly useful or adequate since
 >    >  it's no longer 1983, but anything more complicated gets into religious
 >    >  questions like whether you should move to the beginning of the line
 >    >  with ^A or esc-^-i or what.)
 >   
 >   Hmm. I take it back, apparently it does. This behavior is
 >   undocumented, and that's a bug. It's also lacking support for werase.
 >   And EOF, and REPRINT. And what about STATUS? Or INTR/QUIT/SUSP?
 
 Historically Curses does not handle werase.  There is no equivalent of 
 erasechar() or killchar() for werase.
 
 INTR/QUIT/SUSP are signals (not line editing) which are handled by cbreak() and 
 raw() family.
 
 Curses has never supported `readline` for vi/emacs line editing.  That would be 
 an extension to historical behaviour.
 
 >   The whole thing seems like a can of worms and a mistake, if you ask
 >   me.
 
 Nope.  Historical.
 
 >   Anyway, it appears that if curses thinks it's not on a tty, both
 >   erasechar() and killchar() return 0. What happens if you send 0 down
 >   the pipe? If that causes an erase, and it looks like it will, that
 >   seems like undesirable behavior and erasechar() ought to default to ^H
 >   or ^? when not on a tty. (But, which?)
 
 By definition BS = backspace = ^H.  And kill typically defaults to stty ^U.  The 
 problem when stdin is not a tty, is that termios does not apply so all the 
 special keys are zero.
 
 In theory, Curses could `open(ctermid(NULL), ...)` a separate tty to get the 
 user's stty settings then apply them to the redirected stdin.
 
 -- 
 Anthony C Howe
 achowe%snert.com@localhost                                   BarricadeMX & Milters
 http://nanozen.snert.com/                          http://software.snert.com/
 
 --------------0YUG8VAdVE0WkSAil0E23vm1
 Content-Type: application/pgp-keys; name="OpenPGP_0xA550323B6ED894D7.asc"
 Content-Disposition: attachment; filename="OpenPGP_0xA550323B6ED894D7.asc"
 Content-Description: OpenPGP public key
 Content-Transfer-Encoding: 7bit
 
 -----BEGIN PGP PUBLIC KEY BLOCK-----
 
 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
 iQ==
 =W6M6
 -----END PGP PUBLIC KEY BLOCK-----
 
 
 --------------0YUG8VAdVE0WkSAil0E23vm1--
 



Home | Main Index | Thread Index | Old Index