tech-userlevel archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: FYI: POSIX update - SIGWINCH and 'struct winsize' (etc) to be added
On Sat, Oct 21, 2017 at 03:42:20PM +0700, Robert Elz wrote:
> Date: Sat, 21 Oct 2017 02:49:33 +0000 (UTC)
> From: christos%astron.com@localhost (Christos Zoulas)
> Message-ID: <osecjt$ot$1%blaine.gmane.org@localhost>
>
> | That is <sys/termios.h> already; termios.h is a symlink to that.
> | Try to move it there. I doubt it will cause any disruption. We might
> | be able to save creating another header.
>
> After reflection, maybe not, struct winsize used to be obtained from
> <sys/ioctl.h>, tty(4) still says that's where to get it from (that can
> perhaps be updated, sometime after winsize becomes exposed by termios.h,
> I don't thing pushing progs to include sys/ttycom.h would be rational.)
That can be changed. In fact, tty.4 should be updated to refer to the
new functions the same way it refers to tcgetattr/tcsetattr.
There is really not very much software that manipulates the window
size without also manipulating the terminal settings, and therefore
already includes termios.h, so source-level breakage will be limited
to:
- crap software that thinks it should be issuing TIOCGETA (etc.)
itself without including termios.h (should be patched or taken
out and shot for everyone's benefit)
- really ancient software that manipulates the window size but uses
uses sgtty.h to manipulate the terminal settings (should also be
patched)
I think we can tolerate this, but it might be a good idea to run a
bulk build to see just how much, if anything, breaks.
> It looks as if a new header (sad as it may seem for such a trivial purpose)
> is needed after all.
>
> If that happens, would it be reasonable to make the new header #error
> if it isn't being included from either termios.h or ttycom.h ? (ie:
> no-one else is supposed to know it exists...)
Yes, although I tend to think that the setup required to cause #error
is not worthwhile and that it's sufficient to put a notice like
/*
* This header file is not a supported public interface.
* Application code that wants to use the declarations in it
* should include <termios.h>. You have been warned.
*/
at the top of the header and let idiots hang themselves if they
insist.
--
David A. Holland
dholland%netbsd.org@localhost
Home |
Main Index |
Thread Index |
Old Index