/* c_cflag bit meaning */
#define B150 0000005
#define B300 0000007
#define B9600 0000015
#define B38400 0000017
/* c_lflag bits */
#define ICANON 0000002
#define ECHO 0000010
The different baud rates are defined here. If someone set the baud
rate to 9600 and set ICANON on c_cflag, it should change the baud rate
to 38400, dropping communication. Another example is if someone set
the baud rate to 150 the set ICANON and ECHO on c_cflag, it should
change the baud to 38400. If I am interpreting the rest of the file
correctly, a bitmask covering all of the bits used in c_cflag for the
baud rate is 0010017.
diff --git a/com32/libutil/ansiline.c b/com32/libutil/ansiline.c
index 6ec1e18..4cf8021 100644
--- a/com32/libutil/ansiline.c
+++ b/com32/libutil/ansiline.c
@@ -82,7 +85,7 @@ void console_ansi_std(void)
tcgetattr(0, &tio);
tio.c_iflag &= ~ICRNL;
tio.c_iflag |= IGNCR;
- tio.c_cflag |= ICANON|ECHO;
+ tio.c_lflag |= ICANON|ECHO;
tcsetattr(0, TCSANOW, &tio);
fputs("\033[0m\033[20h", stdout);
}