/* 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); }