diff --git a/serial_posix.c b/serial_posix.c index 982bc24..abe0d76 100644 --- a/serial_posix.c +++ b/serial_posix.c @@ -511,10 +511,13 @@ serial_flush (serial *device, int queue) switch (queue) { case SERIAL_QUEUE_INPUT: flags = TCIFLUSH; + break; case SERIAL_QUEUE_OUTPUT: flags = TCOFLUSH; + break; default: flags = TCIOFLUSH; + break; } if (tcflush (device->fd, flags) != 0) { diff --git a/serial_win32.c b/serial_win32.c index fa2d6c1..bfb4f9d 100644 --- a/serial_win32.c +++ b/serial_win32.c @@ -355,10 +355,13 @@ serial_flush (serial* device, int queue) switch (queue) { case SERIAL_QUEUE_INPUT: flags = PURGE_RXABORT | PURGE_RXCLEAR; + break; case SERIAL_QUEUE_OUTPUT: flags = PURGE_TXABORT | PURGE_TXCLEAR; + break; default: flags = PURGE_RXABORT | PURGE_RXCLEAR | PURGE_TXABORT | PURGE_TXCLEAR; + break; } if (!PurgeComm (device->hFile, flags)) {