|
Packit |
437b5e |
/*
|
|
Packit |
437b5e |
* POSIX library for Lua 5.1, 5.2 & 5.3.
|
|
Packit |
437b5e |
* (c) Gary V. Vaughan <gary@vaughan.pe>, 2013-2015
|
|
Packit |
437b5e |
* (c) Reuben Thomas <rrt@sc3d.org> 2010-2013
|
|
Packit |
437b5e |
* (c) Natanael Copa <natanael.copa@gmail.com> 2008-2010
|
|
Packit |
437b5e |
* Clean up and bug fixes by Leo Razoumov <slonik.az@gmail.com> 2006-10-11
|
|
Packit |
437b5e |
* Luiz Henrique de Figueiredo <lhf@tecgraf.puc-rio.br> 07 Apr 2006 23:17:49
|
|
Packit |
437b5e |
* Based on original by Claudio Terra for Lua 3.x.
|
|
Packit |
437b5e |
* With contributions by Roberto Ierusalimschy.
|
|
Packit |
437b5e |
* With documentation from Steve Donovan 2012
|
|
Packit |
437b5e |
*/
|
|
Packit |
437b5e |
/***
|
|
Packit |
437b5e |
Control Terminal I/O.
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
Functions and constants for controlling terminal behaviour.
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
@module posix.termio
|
|
Packit |
437b5e |
*/
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
#include <config.h>
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
#include <termios.h>
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
#include "_helpers.c"
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
/***
|
|
Packit |
437b5e |
Control characters.
|
|
Packit |
437b5e |
The field names below are not strings, but index constants each
|
|
Packit |
437b5e |
referring to a terminal control character.
|
|
Packit |
437b5e |
@table ccs
|
|
Packit |
437b5e |
@int VINTR interrupt control character
|
|
Packit |
437b5e |
@int VQUIT quit control character
|
|
Packit |
437b5e |
@int WERASE erase control character
|
|
Packit |
437b5e |
@int VKILL kill control character
|
|
Packit |
437b5e |
@int VEOF end-of-file control character
|
|
Packit |
437b5e |
@int VEOL end-of-line control charactor
|
|
Packit |
437b5e |
@int VEOL2 another end-of-line control charactor
|
|
Packit |
437b5e |
@int VMIN 1
|
|
Packit |
437b5e |
@int VTIME 0
|
|
Packit |
437b5e |
@int VSTART xon/xoff start control character
|
|
Packit |
437b5e |
@int VSTOP xon/xoff stop control character
|
|
Packit |
437b5e |
@int VSUSP suspend control character
|
|
Packit |
437b5e |
*/
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
/***
|
|
Packit |
437b5e |
Terminal attributes.
|
|
Packit |
437b5e |
The constants named below are all available in this submodule's namespace,
|
|
Packit |
437b5e |
as long as they are supported by the underlying system.
|
|
Packit |
437b5e |
@table termios
|
|
Packit |
437b5e |
@int cflag bitwise OR of zero or more of `B0`, `B50`, `B75`, `B110`,
|
|
Packit |
437b5e |
`B134`, `B150`, `B200`, `B300`, `B600`, `B1200`, `B1800`, `B2400`,
|
|
Packit |
437b5e |
`B4800`, `B9600`, `B19200`, `B38400`, `B57600`, `B115200`, `CSIZE`,
|
|
Packit |
437b5e |
`CS5`, `CS6`, `CS7`, `CS8`, `CSTOPB`, `CREAD`, `PARENB`, `PARODD`,
|
|
Packit |
437b5e |
`HUPCL`, `CLOCAL` and `CRTSCTS`
|
|
Packit |
437b5e |
@int iflag input flags; bitwise OR of zero or more of `IGNBRK`, `BRKINT`,
|
|
Packit |
437b5e |
`IGNPAR`, `PARMRK`, `INPCK`, `ISTRIP`, `INLCR`, `IGNCR`, `ICRNL`,
|
|
Packit |
437b5e |
`IXON`, `IXOFF`, `IXANY`, `IMAXBEL` and `IUTF8`
|
|
Packit |
437b5e |
@int lflags local flags; bitwise OR of zero or more of `ISIG`, `ICANON`,
|
|
Packit |
437b5e |
`ECHO`, `ECHOE`, `ECHOK', 'ECHONL`, `NOFLSH`, `IEXTEN` and `TOSTOP`
|
|
Packit |
437b5e |
@int oflag output flags; bitwise OR of zero or more of `OPOST`, `ONLCR`,
|
|
Packit |
437b5e |
`OXTABS`, `ONOEOT`, `OCRNL`, `ONOCR`, `ONLRET`, `OFILL`, `NLDLY`,
|
|
Packit |
437b5e |
`TABDLY`, `CRDLY`, `FFDLY`, `BSDLY`, `VTDLY` and `OFDEL`
|
|
Packit |
437b5e |
@tfield ccs cc array of terminal control characters
|
|
Packit |
437b5e |
*/
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
/***
|
|
Packit |
437b5e |
Wait for all written output to reach the terminal.
|
|
Packit |
437b5e |
@function tcdrain
|
|
Packit |
437b5e |
@int fd terminal descriptor to act on
|
|
Packit |
437b5e |
@treturn[1] int `0`, if successful
|
|
Packit |
437b5e |
@return[2] nil
|
|
Packit |
437b5e |
@treturn[2] string error message
|
|
Packit |
437b5e |
@treturn[2] int errnum
|
|
Packit |
437b5e |
@see tcdrain(3)
|
|
Packit |
437b5e |
*/
|
|
Packit |
437b5e |
static int
|
|
Packit |
437b5e |
Ptcdrain(lua_State *L)
|
|
Packit |
437b5e |
{
|
|
Packit |
437b5e |
int fd = checkint(L, 1);
|
|
Packit |
437b5e |
checknargs(L, 1);
|
|
Packit |
437b5e |
return pushresult(L, tcdrain(fd), NULL);
|
|
Packit |
437b5e |
}
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
/***
|
|
Packit |
437b5e |
Suspend transmission or receipt of data.
|
|
Packit |
437b5e |
@function tcflow
|
|
Packit |
437b5e |
@int fd terminal descriptor to act on
|
|
Packit |
437b5e |
@int action one of `TCOOFF`, `TCOON`, `TCIOFF` or `TCION`
|
|
Packit |
437b5e |
@treturn[1] int `0`, if successful
|
|
Packit |
437b5e |
@return[2] nil
|
|
Packit |
437b5e |
@treturn[2] string error message
|
|
Packit |
437b5e |
@treturn[2] int errnum
|
|
Packit |
437b5e |
@see tcflow(3)
|
|
Packit |
437b5e |
*/
|
|
Packit |
437b5e |
static int
|
|
Packit |
437b5e |
Ptcflow(lua_State *L)
|
|
Packit |
437b5e |
{
|
|
Packit |
437b5e |
int fd = checkint(L, 1);
|
|
Packit |
437b5e |
int action = checkint(L, 2);
|
|
Packit |
437b5e |
checknargs(L, 2);
|
|
Packit |
437b5e |
return pushresult(L, tcflow(fd, action), NULL);
|
|
Packit |
437b5e |
}
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
/***
|
|
Packit |
437b5e |
Discard any data already written but not yet sent to the terminal.
|
|
Packit |
437b5e |
@function tcflush
|
|
Packit |
437b5e |
@int fd terminal descriptor to act on
|
|
Packit |
437b5e |
@int action one of `TCIFLUSH`, `TCOFLUSH`, `TCIOFLUSH`
|
|
Packit |
437b5e |
@treturn[1] int `0`, if successful
|
|
Packit |
437b5e |
@return[2] nil
|
|
Packit |
437b5e |
@treturn[2] string error message
|
|
Packit |
437b5e |
@treturn[2] int errnum
|
|
Packit |
437b5e |
@see tcflush(3)
|
|
Packit |
437b5e |
*/
|
|
Packit |
437b5e |
static int
|
|
Packit |
437b5e |
Ptcflush(lua_State *L)
|
|
Packit |
437b5e |
{
|
|
Packit |
437b5e |
int fd = checkint(L, 1);
|
|
Packit |
437b5e |
int qs = checkint(L, 2);
|
|
Packit |
437b5e |
checknargs(L, 2);
|
|
Packit |
437b5e |
return pushresult(L, tcflush(fd, qs), NULL);
|
|
Packit |
437b5e |
}
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
/***
|
|
Packit |
437b5e |
Get termios state.
|
|
Packit |
437b5e |
@function tcgetattr
|
|
Packit |
437b5e |
@int fd terminal descriptor
|
|
Packit |
437b5e |
@treturn[1] termios terminal attributes, if successful
|
|
Packit |
437b5e |
@return[2] nil
|
|
Packit |
437b5e |
@treturn[2] string error message
|
|
Packit |
437b5e |
@treturn[2] int errnum
|
|
Packit |
437b5e |
@return error message if failed
|
|
Packit |
437b5e |
@see tcgetattr(3)
|
|
Packit |
437b5e |
@usage
|
|
Packit |
437b5e |
local termios, errmsg = tcgetattr (fd)
|
|
Packit |
437b5e |
*/
|
|
Packit |
437b5e |
static int
|
|
Packit |
437b5e |
Ptcgetattr(lua_State *L)
|
|
Packit |
437b5e |
{
|
|
Packit |
437b5e |
int r, i;
|
|
Packit |
437b5e |
struct termios t;
|
|
Packit |
437b5e |
int fd = checkint(L, 1);
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
checknargs(L, 1);
|
|
Packit |
437b5e |
r = tcgetattr(fd, &t);
|
|
Packit |
437b5e |
if (r == -1) return pusherror(L, NULL);
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
lua_newtable(L);
|
|
Packit |
437b5e |
pushintegerfield("iflag", t.c_iflag);
|
|
Packit |
437b5e |
pushintegerfield("oflag", t.c_oflag);
|
|
Packit |
437b5e |
pushintegerfield("lflag", t.c_lflag);
|
|
Packit |
437b5e |
pushintegerfield("cflag", t.c_cflag);
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
lua_newtable(L);
|
|
Packit |
437b5e |
for (i=0; i
|
|
Packit |
437b5e |
{
|
|
Packit |
437b5e |
lua_pushinteger(L, i);
|
|
Packit |
437b5e |
lua_pushinteger(L, t.c_cc[i]);
|
|
Packit |
437b5e |
lua_settable(L, -3);
|
|
Packit |
437b5e |
}
|
|
Packit |
437b5e |
lua_setfield(L, -2, "cc");
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
return 1;
|
|
Packit |
437b5e |
}
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
/***
|
|
Packit |
437b5e |
Send a stream of zero valued bits.
|
|
Packit |
437b5e |
@function tcsendbreak
|
|
Packit |
437b5e |
@see tcsendbreak(3)
|
|
Packit |
437b5e |
@int fd terminal descriptor
|
|
Packit |
437b5e |
@int duration if non-zero, stream for some implementation defined time
|
|
Packit |
437b5e |
@return 0 if successful, otherwise nil
|
|
Packit |
437b5e |
@return error message if failed
|
|
Packit |
437b5e |
*/
|
|
Packit |
437b5e |
static int
|
|
Packit |
437b5e |
Ptcsendbreak(lua_State *L)
|
|
Packit |
437b5e |
{
|
|
Packit |
437b5e |
int fd = checkint(L, 1);
|
|
Packit |
437b5e |
int duration = checkint(L, 2);
|
|
Packit |
437b5e |
checknargs(L, 2);
|
|
Packit |
437b5e |
return pushresult(L, tcsendbreak(fd, duration), NULL);
|
|
Packit |
437b5e |
}
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
/***
|
|
Packit |
437b5e |
Set termios state.
|
|
Packit |
437b5e |
@function tcsetattr
|
|
Packit |
437b5e |
@int fd terminal descriptor to act on
|
|
Packit |
437b5e |
@int actions bitwise OR of one or more of `TCSANOW`, `TCSADRAIN`,
|
|
Packit |
437b5e |
`TCSAFLUSH` and `TSASOFT`
|
|
Packit |
437b5e |
@tparam termios a table with fields from iflag, oflag, cflag, lflag and cc,
|
|
Packit |
437b5e |
each formed by `bor` operations with various posix constants
|
|
Packit |
437b5e |
@return 0 if successful, otherwise nil
|
|
Packit |
437b5e |
@return error message if failed
|
|
Packit |
437b5e |
@see tcsetattr(3)
|
|
Packit |
437b5e |
@usage
|
|
Packit |
437b5e |
ok, errmsg = tcsetattr (fd, 0, { cc = { [P.VTIME] = 0, [P.VMIN] = 1 })
|
|
Packit |
437b5e |
*/
|
|
Packit |
437b5e |
static int
|
|
Packit |
437b5e |
Ptcsetattr(lua_State *L)
|
|
Packit |
437b5e |
{
|
|
Packit |
437b5e |
struct termios t;
|
|
Packit |
437b5e |
int i;
|
|
Packit |
437b5e |
int fd = checkint(L, 1);
|
|
Packit |
437b5e |
int act = checkint(L, 2);
|
|
Packit |
437b5e |
luaL_checktype(L, 3, LUA_TTABLE);
|
|
Packit |
437b5e |
checknargs(L, 3);
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
lua_getfield(L, 3, "iflag"); t.c_iflag = optint(L, -1, 0); lua_pop(L, 1);
|
|
Packit |
437b5e |
lua_getfield(L, 3, "oflag"); t.c_oflag = optint(L, -1, 0); lua_pop(L, 1);
|
|
Packit |
437b5e |
lua_getfield(L, 3, "cflag"); t.c_cflag = optint(L, -1, 0); lua_pop(L, 1);
|
|
Packit |
437b5e |
lua_getfield(L, 3, "lflag"); t.c_lflag = optint(L, -1, 0); lua_pop(L, 1);
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
lua_getfield(L, 3, "cc");
|
|
Packit |
437b5e |
for (i=0; i
|
|
Packit |
437b5e |
{
|
|
Packit |
437b5e |
lua_pushinteger(L, i);
|
|
Packit |
437b5e |
lua_gettable(L, -2);
|
|
Packit |
437b5e |
t.c_cc[i] = optint(L, -1, 0);
|
|
Packit |
437b5e |
lua_pop(L, 1);
|
|
Packit |
437b5e |
}
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
return pushresult(L, tcsetattr(fd, act, &t), NULL);
|
|
Packit |
437b5e |
}
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
static const luaL_Reg posix_termio_fns[] =
|
|
Packit |
437b5e |
{
|
|
Packit |
437b5e |
LPOSIX_FUNC( Ptcdrain ),
|
|
Packit |
437b5e |
LPOSIX_FUNC( Ptcflow ),
|
|
Packit |
437b5e |
LPOSIX_FUNC( Ptcflush ),
|
|
Packit |
437b5e |
LPOSIX_FUNC( Ptcgetattr ),
|
|
Packit |
437b5e |
LPOSIX_FUNC( Ptcsendbreak ),
|
|
Packit |
437b5e |
LPOSIX_FUNC( Ptcsetattr ),
|
|
Packit |
437b5e |
{NULL, NULL}
|
|
Packit |
437b5e |
};
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
LUALIB_API int
|
|
Packit |
437b5e |
luaopen_posix_termio(lua_State *L)
|
|
Packit |
437b5e |
{
|
|
Packit |
437b5e |
luaL_register(L, "posix.termio", posix_termio_fns);
|
|
Packit |
437b5e |
lua_pushliteral(L, "posix.termio for " LUA_VERSION " / " PACKAGE_STRING);
|
|
Packit |
437b5e |
lua_setfield(L, -2, "version");
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
/* tcsetattr */
|
|
Packit |
437b5e |
LPOSIX_CONST( TCSANOW );
|
|
Packit |
437b5e |
LPOSIX_CONST( TCSADRAIN );
|
|
Packit |
437b5e |
LPOSIX_CONST( TCSAFLUSH );
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
/* tcflush */
|
|
Packit |
437b5e |
LPOSIX_CONST( TCIFLUSH );
|
|
Packit |
437b5e |
LPOSIX_CONST( TCOFLUSH );
|
|
Packit |
437b5e |
LPOSIX_CONST( TCIOFLUSH );
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
/* tcflow() */
|
|
Packit |
437b5e |
LPOSIX_CONST( TCOOFF );
|
|
Packit |
437b5e |
LPOSIX_CONST( TCOON );
|
|
Packit |
437b5e |
LPOSIX_CONST( TCIOFF );
|
|
Packit |
437b5e |
LPOSIX_CONST( TCION );
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
/* cflag */
|
|
Packit |
437b5e |
#ifdef B0
|
|
Packit |
437b5e |
LPOSIX_CONST( B0 );
|
|
Packit |
437b5e |
#endif
|
|
Packit |
437b5e |
#ifdef B50
|
|
Packit |
437b5e |
LPOSIX_CONST( B50 );
|
|
Packit |
437b5e |
#endif
|
|
Packit |
437b5e |
#ifdef B75
|
|
Packit |
437b5e |
LPOSIX_CONST( B75 );
|
|
Packit |
437b5e |
#endif
|
|
Packit |
437b5e |
#ifdef B110
|
|
Packit |
437b5e |
LPOSIX_CONST( B110 );
|
|
Packit |
437b5e |
#endif
|
|
Packit |
437b5e |
#ifdef B134
|
|
Packit |
437b5e |
LPOSIX_CONST( B134 );
|
|
Packit |
437b5e |
#endif
|
|
Packit |
437b5e |
#ifdef B150
|
|
Packit |
437b5e |
LPOSIX_CONST( B150 );
|
|
Packit |
437b5e |
#endif
|
|
Packit |
437b5e |
#ifdef B200
|
|
Packit |
437b5e |
LPOSIX_CONST( B200 );
|
|
Packit |
437b5e |
#endif
|
|
Packit |
437b5e |
#ifdef B300
|
|
Packit |
437b5e |
LPOSIX_CONST( B300 );
|
|
Packit |
437b5e |
#endif
|
|
Packit |
437b5e |
#ifdef B600
|
|
Packit |
437b5e |
LPOSIX_CONST( B600 );
|
|
Packit |
437b5e |
#endif
|
|
Packit |
437b5e |
#ifdef B1200
|
|
Packit |
437b5e |
LPOSIX_CONST( B1200 );
|
|
Packit |
437b5e |
#endif
|
|
Packit |
437b5e |
#ifdef B1800
|
|
Packit |
437b5e |
LPOSIX_CONST( B1800 );
|
|
Packit |
437b5e |
#endif
|
|
Packit |
437b5e |
#ifdef B2400
|
|
Packit |
437b5e |
LPOSIX_CONST( B2400 );
|
|
Packit |
437b5e |
#endif
|
|
Packit |
437b5e |
#ifdef B4800
|
|
Packit |
437b5e |
LPOSIX_CONST( B4800 );
|
|
Packit |
437b5e |
#endif
|
|
Packit |
437b5e |
#ifdef B9600
|
|
Packit |
437b5e |
LPOSIX_CONST( B9600 );
|
|
Packit |
437b5e |
#endif
|
|
Packit |
437b5e |
#ifdef B19200
|
|
Packit |
437b5e |
LPOSIX_CONST( B19200 );
|
|
Packit |
437b5e |
#endif
|
|
Packit |
437b5e |
#ifdef B38400
|
|
Packit |
437b5e |
LPOSIX_CONST( B38400 );
|
|
Packit |
437b5e |
#endif
|
|
Packit |
437b5e |
#ifdef B57600
|
|
Packit |
437b5e |
LPOSIX_CONST( B57600 );
|
|
Packit |
437b5e |
#endif
|
|
Packit |
437b5e |
#ifdef B115200
|
|
Packit |
437b5e |
LPOSIX_CONST( B115200 );
|
|
Packit |
437b5e |
#endif
|
|
Packit |
437b5e |
#ifdef CSIZE
|
|
Packit |
437b5e |
LPOSIX_CONST( CSIZE );
|
|
Packit |
437b5e |
#endif
|
|
Packit |
437b5e |
#ifdef BS5
|
|
Packit |
437b5e |
LPOSIX_CONST( CS5 );
|
|
Packit |
437b5e |
#endif
|
|
Packit |
437b5e |
#ifdef CS6
|
|
Packit |
437b5e |
LPOSIX_CONST( CS6 );
|
|
Packit |
437b5e |
#endif
|
|
Packit |
437b5e |
#ifdef CS7
|
|
Packit |
437b5e |
LPOSIX_CONST( CS7 );
|
|
Packit |
437b5e |
#endif
|
|
Packit |
437b5e |
#ifdef CS8
|
|
Packit |
437b5e |
LPOSIX_CONST( CS8 );
|
|
Packit |
437b5e |
#endif
|
|
Packit |
437b5e |
#ifdef CSTOPB
|
|
Packit |
437b5e |
LPOSIX_CONST( CSTOPB );
|
|
Packit |
437b5e |
#endif
|
|
Packit |
437b5e |
#ifdef CREAD
|
|
Packit |
437b5e |
LPOSIX_CONST( CREAD );
|
|
Packit |
437b5e |
#endif
|
|
Packit |
437b5e |
#ifdef PARENB
|
|
Packit |
437b5e |
LPOSIX_CONST( PARENB );
|
|
Packit |
437b5e |
#endif
|
|
Packit |
437b5e |
#ifdef PARODD
|
|
Packit |
437b5e |
LPOSIX_CONST( PARODD );
|
|
Packit |
437b5e |
#endif
|
|
Packit |
437b5e |
#ifdef HUPCL
|
|
Packit |
437b5e |
LPOSIX_CONST( HUPCL );
|
|
Packit |
437b5e |
#endif
|
|
Packit |
437b5e |
#ifdef CLOCAL
|
|
Packit |
437b5e |
LPOSIX_CONST( CLOCAL );
|
|
Packit |
437b5e |
#endif
|
|
Packit |
437b5e |
#ifdef CRTSCTS
|
|
Packit |
437b5e |
LPOSIX_CONST( CRTSCTS );
|
|
Packit |
437b5e |
#endif
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
/* lflag */
|
|
Packit |
437b5e |
#ifdef ISIG
|
|
Packit |
437b5e |
LPOSIX_CONST( ISIG );
|
|
Packit |
437b5e |
#endif
|
|
Packit |
437b5e |
#ifdef ICANON
|
|
Packit |
437b5e |
LPOSIX_CONST( ICANON );
|
|
Packit |
437b5e |
#endif
|
|
Packit |
437b5e |
#ifdef ECHO
|
|
Packit |
437b5e |
LPOSIX_CONST( ECHO );
|
|
Packit |
437b5e |
#endif
|
|
Packit |
437b5e |
#ifdef ECHOE
|
|
Packit |
437b5e |
LPOSIX_CONST( ECHOE );
|
|
Packit |
437b5e |
#endif
|
|
Packit |
437b5e |
#ifdef ECHOK
|
|
Packit |
437b5e |
LPOSIX_CONST( ECHOK );
|
|
Packit |
437b5e |
#endif
|
|
Packit |
437b5e |
#ifdef ECHONL
|
|
Packit |
437b5e |
LPOSIX_CONST( ECHONL );
|
|
Packit |
437b5e |
#endif
|
|
Packit |
437b5e |
#ifdef NOFLSH
|
|
Packit |
437b5e |
LPOSIX_CONST( NOFLSH );
|
|
Packit |
437b5e |
#endif
|
|
Packit |
437b5e |
#ifdef IEXTEN
|
|
Packit |
437b5e |
LPOSIX_CONST( IEXTEN );
|
|
Packit |
437b5e |
#endif
|
|
Packit |
437b5e |
#ifdef TOSTOP
|
|
Packit |
437b5e |
LPOSIX_CONST( TOSTOP );
|
|
Packit |
437b5e |
#endif
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
/* iflag */
|
|
Packit |
437b5e |
#ifdef INPCK
|
|
Packit |
437b5e |
LPOSIX_CONST( INPCK );
|
|
Packit |
437b5e |
#endif
|
|
Packit |
437b5e |
#ifdef IGNPAR
|
|
Packit |
437b5e |
LPOSIX_CONST( IGNPAR );
|
|
Packit |
437b5e |
#endif
|
|
Packit |
437b5e |
#ifdef PARMRK
|
|
Packit |
437b5e |
LPOSIX_CONST( PARMRK );
|
|
Packit |
437b5e |
#endif
|
|
Packit |
437b5e |
#ifdef ISTRIP
|
|
Packit |
437b5e |
LPOSIX_CONST( ISTRIP );
|
|
Packit |
437b5e |
#endif
|
|
Packit |
437b5e |
#ifdef IXON
|
|
Packit |
437b5e |
LPOSIX_CONST( IXON );
|
|
Packit |
437b5e |
#endif
|
|
Packit |
437b5e |
#ifdef IXOFF
|
|
Packit |
437b5e |
LPOSIX_CONST( IXOFF );
|
|
Packit |
437b5e |
#endif
|
|
Packit |
437b5e |
#ifdef IXANY
|
|
Packit |
437b5e |
LPOSIX_CONST( IXANY );
|
|
Packit |
437b5e |
#endif
|
|
Packit |
437b5e |
#ifdef IGNBRK
|
|
Packit |
437b5e |
LPOSIX_CONST( IGNBRK );
|
|
Packit |
437b5e |
#endif
|
|
Packit |
437b5e |
#ifdef BRKINT
|
|
Packit |
437b5e |
LPOSIX_CONST( BRKINT );
|
|
Packit |
437b5e |
#endif
|
|
Packit |
437b5e |
#ifdef INLCR
|
|
Packit |
437b5e |
LPOSIX_CONST( INLCR );
|
|
Packit |
437b5e |
#endif
|
|
Packit |
437b5e |
#ifdef IGNCR
|
|
Packit |
437b5e |
LPOSIX_CONST( IGNCR );
|
|
Packit |
437b5e |
#endif
|
|
Packit |
437b5e |
#ifdef ICRNL
|
|
Packit |
437b5e |
LPOSIX_CONST( ICRNL );
|
|
Packit |
437b5e |
#endif
|
|
Packit |
437b5e |
#ifdef IMAXBEL
|
|
Packit |
437b5e |
LPOSIX_CONST( IMAXBEL );
|
|
Packit |
437b5e |
#endif
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
/* oflag */
|
|
Packit |
437b5e |
#ifdef OPOST
|
|
Packit |
437b5e |
LPOSIX_CONST( OPOST );
|
|
Packit |
437b5e |
#endif
|
|
Packit |
437b5e |
#ifdef ONLCR
|
|
Packit |
437b5e |
LPOSIX_CONST( ONLCR );
|
|
Packit |
437b5e |
#endif
|
|
Packit |
437b5e |
#ifdef OCRNL
|
|
Packit |
437b5e |
LPOSIX_CONST( OCRNL );
|
|
Packit |
437b5e |
#endif
|
|
Packit |
437b5e |
#ifdef ONLRET
|
|
Packit |
437b5e |
LPOSIX_CONST( ONLRET );
|
|
Packit |
437b5e |
#endif
|
|
Packit |
437b5e |
#ifdef OFILL
|
|
Packit |
437b5e |
LPOSIX_CONST( OFILL );
|
|
Packit |
437b5e |
#endif
|
|
Packit |
437b5e |
#ifdef OFDEL
|
|
Packit |
437b5e |
LPOSIX_CONST( OFDEL );
|
|
Packit |
437b5e |
#endif
|
|
Packit |
437b5e |
#ifdef NLDLY
|
|
Packit |
437b5e |
LPOSIX_CONST( NLDLY );
|
|
Packit |
437b5e |
#endif
|
|
Packit |
437b5e |
#ifdef NL0
|
|
Packit |
437b5e |
LPOSIX_CONST( NL0 );
|
|
Packit |
437b5e |
#endif
|
|
Packit |
437b5e |
#ifdef NL1
|
|
Packit |
437b5e |
LPOSIX_CONST( NL1 );
|
|
Packit |
437b5e |
#endif
|
|
Packit |
437b5e |
#ifdef CRDLY
|
|
Packit |
437b5e |
LPOSIX_CONST( CRDLY );
|
|
Packit |
437b5e |
#endif
|
|
Packit |
437b5e |
#ifdef CR0
|
|
Packit |
437b5e |
LPOSIX_CONST( CR0 );
|
|
Packit |
437b5e |
#endif
|
|
Packit |
437b5e |
#ifdef CR1
|
|
Packit |
437b5e |
LPOSIX_CONST( CR1 );
|
|
Packit |
437b5e |
#endif
|
|
Packit |
437b5e |
#ifdef CR2
|
|
Packit |
437b5e |
LPOSIX_CONST( CR2 );
|
|
Packit |
437b5e |
#endif
|
|
Packit |
437b5e |
#ifdef CR3
|
|
Packit |
437b5e |
LPOSIX_CONST( CR3 );
|
|
Packit |
437b5e |
#endif
|
|
Packit |
437b5e |
#ifdef TABDLY
|
|
Packit |
437b5e |
LPOSIX_CONST( TABDLY );
|
|
Packit |
437b5e |
#endif
|
|
Packit |
437b5e |
#ifdef TAB0
|
|
Packit |
437b5e |
LPOSIX_CONST( TAB0 );
|
|
Packit |
437b5e |
#endif
|
|
Packit |
437b5e |
#ifdef TAB1
|
|
Packit |
437b5e |
LPOSIX_CONST( TAB1 );
|
|
Packit |
437b5e |
#endif
|
|
Packit |
437b5e |
#ifdef TAB2
|
|
Packit |
437b5e |
LPOSIX_CONST( TAB2 );
|
|
Packit |
437b5e |
#endif
|
|
Packit |
437b5e |
#ifdef TAB3
|
|
Packit |
437b5e |
LPOSIX_CONST( TAB3 );
|
|
Packit |
437b5e |
#endif
|
|
Packit |
437b5e |
#ifdef BSDLY
|
|
Packit |
437b5e |
LPOSIX_CONST( BSDLY );
|
|
Packit |
437b5e |
#endif
|
|
Packit |
437b5e |
#ifdef BS0
|
|
Packit |
437b5e |
LPOSIX_CONST( BS0 );
|
|
Packit |
437b5e |
#endif
|
|
Packit |
437b5e |
#ifdef BS1
|
|
Packit |
437b5e |
LPOSIX_CONST( BS1 );
|
|
Packit |
437b5e |
#endif
|
|
Packit |
437b5e |
#ifdef VTDLY
|
|
Packit |
437b5e |
LPOSIX_CONST( VTDLY );
|
|
Packit |
437b5e |
#endif
|
|
Packit |
437b5e |
#ifdef VT0
|
|
Packit |
437b5e |
LPOSIX_CONST( VT0 );
|
|
Packit |
437b5e |
#endif
|
|
Packit |
437b5e |
#ifdef VT1
|
|
Packit |
437b5e |
LPOSIX_CONST( VT1 );
|
|
Packit |
437b5e |
#endif
|
|
Packit |
437b5e |
#ifdef FFDLY
|
|
Packit |
437b5e |
LPOSIX_CONST( FFDLY );
|
|
Packit |
437b5e |
#endif
|
|
Packit |
437b5e |
#ifdef FF0
|
|
Packit |
437b5e |
LPOSIX_CONST( FF0 );
|
|
Packit |
437b5e |
#endif
|
|
Packit |
437b5e |
#ifdef FF1
|
|
Packit |
437b5e |
LPOSIX_CONST( FF1 );
|
|
Packit |
437b5e |
#endif
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
/* cc */
|
|
Packit |
437b5e |
#ifdef VINTR
|
|
Packit |
437b5e |
LPOSIX_CONST( VINTR );
|
|
Packit |
437b5e |
#endif
|
|
Packit |
437b5e |
#ifdef VQUIT
|
|
Packit |
437b5e |
LPOSIX_CONST( VQUIT );
|
|
Packit |
437b5e |
#endif
|
|
Packit |
437b5e |
#ifdef VERASE
|
|
Packit |
437b5e |
LPOSIX_CONST( VERASE );
|
|
Packit |
437b5e |
#endif
|
|
Packit |
437b5e |
#ifdef VKILL
|
|
Packit |
437b5e |
LPOSIX_CONST( VKILL );
|
|
Packit |
437b5e |
#endif
|
|
Packit |
437b5e |
#ifdef VEOF
|
|
Packit |
437b5e |
LPOSIX_CONST( VEOF );
|
|
Packit |
437b5e |
#endif
|
|
Packit |
437b5e |
#ifdef VEOL
|
|
Packit |
437b5e |
LPOSIX_CONST( VEOL );
|
|
Packit |
437b5e |
#endif
|
|
Packit |
437b5e |
#ifdef VEOL2
|
|
Packit |
437b5e |
LPOSIX_CONST( VEOL2 );
|
|
Packit |
437b5e |
#endif
|
|
Packit |
437b5e |
#ifdef VMIN
|
|
Packit |
437b5e |
LPOSIX_CONST( VMIN );
|
|
Packit |
437b5e |
#endif
|
|
Packit |
437b5e |
#ifdef VTIME
|
|
Packit |
437b5e |
LPOSIX_CONST( VTIME );
|
|
Packit |
437b5e |
#endif
|
|
Packit |
437b5e |
#ifdef VSTART
|
|
Packit |
437b5e |
LPOSIX_CONST( VSTART );
|
|
Packit |
437b5e |
#endif
|
|
Packit |
437b5e |
#ifdef VSTOP
|
|
Packit |
437b5e |
LPOSIX_CONST( VSTOP );
|
|
Packit |
437b5e |
#endif
|
|
Packit |
437b5e |
#ifdef VSUSP
|
|
Packit |
437b5e |
LPOSIX_CONST( VSUSP );
|
|
Packit |
437b5e |
#endif
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
/* XSI extensions - don't use these if you care about portability
|
|
Packit |
437b5e |
* to strict POSIX conforming machines, such as Mac OS X.
|
|
Packit |
437b5e |
*/
|
|
Packit |
437b5e |
#ifdef CBAUD
|
|
Packit |
437b5e |
LPOSIX_CONST( CBAUD );
|
|
Packit |
437b5e |
#endif
|
|
Packit |
437b5e |
#ifdef EXTA
|
|
Packit |
437b5e |
LPOSIX_CONST( EXTA );
|
|
Packit |
437b5e |
#endif
|
|
Packit |
437b5e |
#ifdef EXTB
|
|
Packit |
437b5e |
LPOSIX_CONST( EXTB );
|
|
Packit |
437b5e |
#endif
|
|
Packit |
437b5e |
#ifdef DEFECHO
|
|
Packit |
437b5e |
LPOSIX_CONST( DEFECHO );
|
|
Packit |
437b5e |
#endif
|
|
Packit |
437b5e |
#ifdef ECHOCTL
|
|
Packit |
437b5e |
LPOSIX_CONST( ECHOCTL );
|
|
Packit |
437b5e |
#endif
|
|
Packit |
437b5e |
#ifdef ECHOPRT
|
|
Packit |
437b5e |
LPOSIX_CONST( ECHOPRT );
|
|
Packit |
437b5e |
#endif
|
|
Packit |
437b5e |
#ifdef ECHOKE
|
|
Packit |
437b5e |
LPOSIX_CONST( ECHOKE );
|
|
Packit |
437b5e |
#endif
|
|
Packit |
437b5e |
#ifdef FLUSHO
|
|
Packit |
437b5e |
LPOSIX_CONST( FLUSHO );
|
|
Packit |
437b5e |
#endif
|
|
Packit |
437b5e |
#ifdef PENDIN
|
|
Packit |
437b5e |
LPOSIX_CONST( PENDIN );
|
|
Packit |
437b5e |
#endif
|
|
Packit |
437b5e |
#ifdef LOBLK
|
|
Packit |
437b5e |
LPOSIX_CONST( LOBLK );
|
|
Packit |
437b5e |
#endif
|
|
Packit |
437b5e |
#ifdef SWTCH
|
|
Packit |
437b5e |
LPOSIX_CONST( SWTCH );
|
|
Packit |
437b5e |
#endif
|
|
Packit |
437b5e |
#ifdef VDISCARD
|
|
Packit |
437b5e |
LPOSIX_CONST( VDISCARD );
|
|
Packit |
437b5e |
#endif
|
|
Packit |
437b5e |
#ifdef VDSUSP
|
|
Packit |
437b5e |
LPOSIX_CONST( VDSUSP );
|
|
Packit |
437b5e |
#endif
|
|
Packit |
437b5e |
#ifdef VLNEXT
|
|
Packit |
437b5e |
LPOSIX_CONST( VLNEXT );
|
|
Packit |
437b5e |
#endif
|
|
Packit |
437b5e |
#ifdef VREPRINT
|
|
Packit |
437b5e |
LPOSIX_CONST( VREPRINT );
|
|
Packit |
437b5e |
#endif
|
|
Packit |
437b5e |
#ifdef VSTATUS
|
|
Packit |
437b5e |
LPOSIX_CONST( VSTATUS );
|
|
Packit |
437b5e |
#endif
|
|
Packit |
437b5e |
#ifdef VWERASE
|
|
Packit |
437b5e |
LPOSIX_CONST( VWERASE );
|
|
Packit |
437b5e |
#endif
|
|
Packit |
437b5e |
|
|
Packit |
437b5e |
return 1;
|
|
Packit |
437b5e |
}
|