From: Martin Ling Date: Tue, 19 Nov 2013 20:46:52 +0000 (+0000) Subject: Retrieve XON/XOFF setting on Unix. X-Git-Tag: libserialport-0.1.0~93 X-Git-Url: https://sigrok.org/gitaction?a=commitdiff_plain;h=e29b93a572d68ba18b40a948ffc17934f0a1146c;p=libserialport.git Retrieve XON/XOFF setting on Unix. --- diff --git a/serialport.c b/serialport.c index 9ef3cd3..89a6e2f 100644 --- a/serialport.c +++ b/serialport.c @@ -704,8 +704,17 @@ static enum sp_return get_config(struct sp_port *port, struct port_data *data, config->dtr = (data->controlbits & TIOCM_DTR) ? SP_DTR_ON : SP_DTR_OFF; config->dsr = SP_DSR_IGNORE; - /* FIXME: Set config->xon_xoff properly, depending on data->term. */ - config->xon_xoff = SP_XONXOFF_DISABLED; + if (data->term.c_iflag & IXOFF) { + if (data->term.c_iflag & IXON) + config->xon_xoff = SP_XONXOFF_INOUT; + else + config->xon_xoff = SP_XONXOFF_IN; + } else { + if (data->term.c_iflag & IXON) + config->xon_xoff = SP_XONXOFF_OUT; + else + config->xon_xoff = SP_XONXOFF_DISABLED; + } #endif return SP_OK;