|
@@ -157,16 +157,20 @@ void tty_termios_encode_baud_rate(struct ktermios *termios,
|
|
|
termios->c_ospeed = obaud;
|
|
|
|
|
|
#ifdef BOTHER
|
|
|
+ if ((termios->c_cflag >> IBSHIFT) & CBAUD)
|
|
|
+ ibinput = 1; /* An input speed was specified */
|
|
|
+
|
|
|
/* If the user asked for a precise weird speed give a precise weird
|
|
|
answer. If they asked for a Bfoo speed they may have problems
|
|
|
digesting non-exact replies so fuzz a bit */
|
|
|
|
|
|
- if ((termios->c_cflag & CBAUD) == BOTHER)
|
|
|
+ if ((termios->c_cflag & CBAUD) == BOTHER) {
|
|
|
oclose = 0;
|
|
|
+ if (!ibinput)
|
|
|
+ iclose = 0;
|
|
|
+ }
|
|
|
if (((termios->c_cflag >> IBSHIFT) & CBAUD) == BOTHER)
|
|
|
iclose = 0;
|
|
|
- if ((termios->c_cflag >> IBSHIFT) & CBAUD)
|
|
|
- ibinput = 1; /* An input speed was specified */
|
|
|
#endif
|
|
|
termios->c_cflag &= ~CBAUD;
|
|
|
#ifdef IBSHIFT
|