| Karim Belabas on Sun, 15 Dec 2013 12:13:11 +0100 |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
| Re: small patch for src/languages/es.c |
* Bill Allombert [2013-12-15 00:38]:
> We also need 'struct winsize' but it should be in the same header file.
>
> Apparently TIOCGWINSZ was defined in sys/termios.h in some SunOS system which
> did not carry termios.h.
Here's the precise reference:
http://www.manpages.info/sunos/termio.7.html
[...]
Terminal Size
The number of lines and columns on the terminal's display is
specified in the winsize structure defined by sys/termios.h
and includes the following members:
unsigned short ws_row; /* rows, in characters */
unsigned short ws_col; /* columns, in characters */
I also found this bug report (for Taskwarrior):
http://taskwarrior.org/issues/785
from 2011 so it's not that obscure:
[...]
I had to modify interactive.cpp to #include sys/termios.h to get access to
TIOCGWINSZ. sys/ioctl.h and sys/termios.h are in the SUNWhea package [...]
I'm assuming that TIOCGWINSZ is defined in sys/ioctl.h on other platforms.
$ uname -a
SunOS <hostname_snipped> 5.10 Generic_127127-11 sun4u sparc SUNW,Sun-Blade-1500
[...]
I found the sys/termios.h header file here:
http://www.ualberta.ca/dept/aict/uts/software/solaris9/sparc/patches/solaris/9_Recommended/122300-28/SUNWhea/reloc/usr/include/sys/termios.h
which indeed defines both TIOCGWINSZ and struct winsize *unless* one of
_POSIX_C_SOURCE
_XOPEN_SOURCE
is defined. It does not declare the function 'ioctl()' itself, though.
I also found older reports on Cygwin
http://www.zsh.org/mla/workers/2005/msg00899.html
which implies that [some time ago] Cygwin defined 'TIOCGWINSZ' in <termios.h>
and declared 'ioctl()' in <sys/ioctl.h>.
I checked in recent versions: now (since 2006) <sys/ioctl.h> includes
<sys/termios.h> which contains the needed stuff. (And prior versions will
indeed fail.)
OK, I'll go for
#ifdef __sun
# include <sys/termios.h>
#endif
#include <sys/ioctl.h>
Thanks for the discussion !
Cheers,
K.B.
--
Karim Belabas, IMB (UMR 5251) Tel: (+33) (0)5 40 00 26 17
Universite Bordeaux 1 Fax: (+33) (0)5 40 00 69 50
351, cours de la Liberation http://www.math.u-bordeaux1.fr/~kbelabas/
F-33405 Talence (France) http://pari.math.u-bordeaux1.fr/ [PARI/GP]
`