X-Git-Url: http://sigrok.org/gitweb/?a=blobdiff_plain;f=serialport.c;h=4f42740a2388fe398034f13722e3aaaa9f4f2121;hb=59182fbbbf79b31552f84f875485bfaee1a34270;hp=4dc1b83d0146917fcfc5927db51df905645351f5;hpb=7890cef6cf4f8496888f2a86593f9eff55244456;p=libserialport.git diff --git a/serialport.c b/serialport.c index 4dc1b83..4f42740 100644 --- a/serialport.c +++ b/serialport.c @@ -402,7 +402,7 @@ SP_API enum sp_return sp_open(struct sp_port *port, enum sp_mode flags) 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); @@ -479,7 +479,7 @@ SP_API enum sp_return sp_open(struct sp_port *port, enum sp_mode flags) 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; @@ -618,11 +618,11 @@ SP_API enum sp_return sp_flush(struct sp_port *port, enum sp_buffer buffers) 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. */