CHECK_PORT();
- if (flags > (SP_MODE_READ | SP_MODE_WRITE))
+ if (flags > SP_MODE_READ_WRITE)
RETURN_ERROR(SP_ERR_ARG, "Invalid flags");
DEBUG_FMT("Opening port %s", port->name);
int flags_local = O_NONBLOCK | O_NOCTTY;
/* Map 'flags' to the OS-specific settings. */
- if (flags & (SP_MODE_READ | SP_MODE_WRITE))
+ if ((flags & SP_MODE_READ_WRITE) == SP_MODE_READ_WRITE)
flags_local |= O_RDWR;
else if (flags & SP_MODE_READ)
flags_local |= O_RDONLY;
RETURN_FAIL("PurgeComm() failed");
#else
int flags = 0;
- if (buffers & SP_BUF_BOTH)
+ if (buffers == SP_BUF_BOTH)
flags = TCIOFLUSH;
- else if (buffers & SP_BUF_INPUT)
+ else if (buffers == SP_BUF_INPUT)
flags = TCIFLUSH;
- else if (buffers & SP_BUF_OUTPUT)
+ else if (buffers == SP_BUF_OUTPUT)
flags = TCOFLUSH;
/* Returns 0 upon success, -1 upon failure. */