scpi_serial: Rephrase NL and NL+CR line termination check.

Rearrange the check for line termination in SCPI receive data, and add a
comment in that spot. Keep related conditions together, avoid line breaks
for complex terms. This shall simplify review, and raise awareness during
maintenance. This change amends commit a0ade2f933.
This commit is contained in:
Gerhard Sittig 2020-08-17 18:48:50 +02:00
parent 4e5ff004d8
commit 6dc0007c71
1 changed files with 13 additions and 13 deletions

View File

@ -181,22 +181,22 @@ static int scpi_serial_read_data(void *priv, char *buf, int maxlen)
/* Try to read new data into the buffer. */
ret = serial_read_nonblocking(sscpi->serial, buf, maxlen);
if (ret < 0)
return ret;
if (ret > 0) {
if (buf[ret - 1] == '\n') {
sscpi->got_newline = TRUE;
sr_spew("Received NL terminator");
} else if (ret > 1 &&
buf[ret - 2] == '\n' && buf[ret - 1] == '\r') {
sscpi->got_newline = TRUE;
sr_spew("Received NL+CR terminator");
ret--;
} else {
sscpi->got_newline = FALSE;
}
/*
* Check for line termination at the end of the receive data.
* Handle the usual case of NL, as well as the unusual NL+CR
* combination (some GWInstek DMMs were found to do this).
*/
sscpi->got_newline = FALSE;
if (ret >= 1 && buf[ret - 1] == '\n') {
sscpi->got_newline = TRUE;
sr_spew("Received NL terminator");
} else if (ret >= 2 && buf[ret - 2] == '\n' && buf[ret - 1] == '\r') {
ret--;
sscpi->got_newline = TRUE;
sr_spew("Received NL+CR terminator");
}
return ret;