2007-09-14 Samuel Thibault <samuel.thibault@ens-lyon.org>

Fix termios bit macros.
	Move *DLY definitions where they belong, in termios.h.
	Add *[0-3] definitions.
	Fixes confusion between VT and FF.
	* bits/ioctls.h (NL0, NL1, TAB0, TAB1, TAB2, CR0, CR1, CR2, CR3, FF0,
	FF1, BS0, BS1): Undefine these at start if they are already defined to
	avoid collision with termios.h.
	(NLDLY, TABDLY, TAB3, CRDLY, VTDLY, BSDLY): Remove macros.
	* bits/termios.h [__USE_MISC || __USE_XOPEN] (NL0, NL1, TAB0,
	TAB1, TAB2, CR0, CR1, CR2, CR3, FF0, FF1, BS0, BS1): Likewise.
	[__USE_BSD || __USE_XOPEN] (OCRNL, ONOCR, ONLRET): New macros.
	[__USE_MISC || __USE_XOPEN] (NLDLY, NL0, NL1, TABDLY, TAB0, TAB1, TAB2,
	TAB3, CRDLY, CR0, CR1, CR2, CR3, FFDLY, FF0, FF1, BSDLY, BS0, BS1,
	VTDLY, VT0, VT1): New macros.
	[__USE_GNU] (OLCUC): Change value of macro.
	[__USE_XOPEN] (OFILL): New macro.
	[__USE_BSD] (CRTSCTS): Change value.
	(CRTS_IFLOW, CCTS_OFLOW): Change into compatibility macros.
	[__USE_BSD] (CDTRCTS, CHWFLOW): New macros.
	(B7200, B14400, B28800, B76800): New macros.
This commit is contained in:
Roland McGrath 2008-05-05 23:06:01 +00:00
parent a86a7a3946
commit 45d5ac9cae

View File

@ -24,6 +24,50 @@
/* These macros are also defined in some <bits/ioctls.h> files (with /* These macros are also defined in some <bits/ioctls.h> files (with
numerically identical values), but this serves to shut up cpp's numerically identical values), but this serves to shut up cpp's
complaining. */ complaining. */
#if defined __USE_MISC || defined __USE_XOPEN
# ifdef NL0
# undef NL0
# endif
# ifdef NL1
# undef NL1
# endif
# ifdef TAB0
# undef TAB0
# endif
# ifdef TAB1
# undef TAB1
# endif
# ifdef TAB2
# undef TAB2
# endif
# ifdef CR0
# undef CR0
# endif
# ifdef CR1
# undef CR1
# endif
# ifdef CR2
# undef CR2
# endif
# ifdef CR3
# undef CR3
# endif
# ifdef FF0
# undef FF0
# endif
# ifdef FF1
# undef FF1
# endif
# ifdef BS0
# undef BS0
# endif
# ifdef BS1
# undef BS1
# endif
#endif /* __USE_MISC || __USE_XOPEN */
#ifdef __USE_BSD #ifdef __USE_BSD
# ifdef MDMBUF # ifdef MDMBUF
@ -93,11 +137,43 @@ struct termios
#define OPOST (1 << 0) /* Perform output processing. */ #define OPOST (1 << 0) /* Perform output processing. */
#ifdef __USE_BSD #ifdef __USE_BSD
# define ONLCR (1 << 1) /* Map NL to CR-NL on output. */ # define ONLCR (1 << 1) /* Map NL to CR-NL on output. */
# define OXTABS (1 << 2) /* Expand tabs to spaces. */ # define OXTABS TAB3 /* Expand tabs to spaces. */
# define ONOEOT (1 << 3) /* Discard EOT (^D) on output. */ # define ONOEOT (1 << 3) /* Discard EOT (^D) on output. */
#endif #endif
#if defined __USE_BSD || defined __USE_XOPEN
# define OCRNL (1 << 4) /* Map CR to NL. */
# define ONOCR (1 << 5) /* Discard CR's when on column 0. */
# define ONLRET (1 << 6) /* Move to column 0 on NL. */
#endif
#if defined __USE_MISC || defined __USE_XOPEN
# define NLDLY (3 << 8) /* NL delay. */
# define NL0 (0 << 8) /* NL type 0. */
# define NL1 (1 << 8) /* NL type 1. */
# define TABDLY (3 << 10) /* TAB delay. */
# define TAB0 (0 << 10) /* TAB delay type 0. */
# define TAB1 (1 << 10) /* TAB delay type 1. */
# define TAB2 (2 << 10) /* TAB delay type 2. */
# define TAB3 (1 << 2) /* Expand tabs to spaces. */
# define CRDLY (3 << 12) /* CR delay. */
# define CR0 (0 << 12) /* CR delay type 0. */
# define CR1 (1 << 12) /* CR delay type 1. */
# define CR2 (2 << 12) /* CR delay type 2. */
# define CR3 (3 << 12) /* CR delay type 3. */
# define FFDLY (1 << 14) /* FF delay. */
# define FF0 (0 << 14) /* FF delay type 0. */
# define FF1 (1 << 14) /* FF delay type 1. */
# define BSDLY (1 << 15) /* BS delay. */
# define BS0 (0 << 15) /* BS delay type 0. */
# define BS1 (1 << 15) /* BS delay type 1. */
# define VTDLY (1 << 16) /* VT delay. */
# define VT0 (0 << 16) /* VT delay type 0. */
# define VT1 (1 << 16) /* VT delay type 1. */
#endif /* __USE_MISC || __USE_XOPEN */
#ifdef __USE_GNU #ifdef __USE_GNU
# define OLCUC (1 << 9) /* Translate lower case output to upper case */ # define OLCUC (1 << 17) /* Translate lower case output to upper case */
#endif
#ifdef __USE_XOPEN
# define OFILL (1 << 18) /* Send fill characters for delays. */
#endif #endif
/* Control modes. */ /* Control modes. */
@ -117,10 +193,12 @@ struct termios
#define HUPCL (1 << 14) /* Hang up on last close. */ #define HUPCL (1 << 14) /* Hang up on last close. */
#define CLOCAL (1 << 15) /* Ignore modem status lines. */ #define CLOCAL (1 << 15) /* Ignore modem status lines. */
#ifdef __USE_BSD #ifdef __USE_BSD
# define CCTS_OFLOW (1 << 16) /* CTS flow control of output. */ # define CRTSCTS (1 << 16) /* RTS/CTS flow control. */
# define CRTS_IFLOW (1 << 17) /* RTS flow control of input. */ # define CRTS_IFLOW CRTSCTS /* Compatibility. */
# define CRTSCTS (CCTS_OFLOW|CRTS_IFLOW) /* CTS/RTS flow control. */ # define CCTS_OFLOW CRTSCTS /* Compatibility. */
# define MDMBUF (1 << 20) /* Carrier flow control of output. */ # define CDTRCTS (1 << 17) /* DTR/CTS flow control. */
# define MDMBUF (1 << 20) /* DTR/DCD flow control. */
# define CHWFLOW (MDMBUF|CRTSCTS|CDTRCTS) /* All types of flow control. */
#endif #endif
/* Local modes. */ /* Local modes. */
@ -210,13 +288,17 @@ struct termios
#define B2400 2400 /* 2400 baud. */ #define B2400 2400 /* 2400 baud. */
#define B4800 4800 /* 4800 baud. */ #define B4800 4800 /* 4800 baud. */
#define B9600 9600 /* 9600 baud. */ #define B9600 9600 /* 9600 baud. */
#define B7200 7200 /* 7200 baud. */
#define B14400 14400 /* 14400 baud. */
#define B19200 19200 /* 19200 baud. */ #define B19200 19200 /* 19200 baud. */
#define B28800 28800 /* 28800 baud. */
#define B38400 38400 /* 38400 baud. */ #define B38400 38400 /* 38400 baud. */
#ifdef __USE_MISC #ifdef __USE_MISC
# define EXTA 19200 # define EXTA 19200
# define EXTB 38400 # define EXTB 38400
#endif #endif
#define B57600 57600 #define B57600 57600
#define B76800 76800
#define B115200 115200 #define B115200 115200
#define B230400 230400 #define B230400 230400
#define B460800 460800 #define B460800 460800