- if (ret > 0)
- sr_spew("Read %d bytes into buffer.", ret);
- }
-
- /* Return as many bytes as possible from buffer, excluding any trailing newline. */
- if (sscpi->read < sscpi->count) {
- len = sscpi->count - sscpi->read;
- if (len > maxlen)
- len = maxlen;
- if (sscpi->buffer[sscpi->read + len - 1] == '\n')
- len--;
- sr_spew("Returning %d bytes from buffer.", len);
- memcpy(buf, sscpi->buffer + sscpi->read, len);
- sscpi->read += len;
- if (sscpi->read == BUFFER_SIZE) {
- sr_spew("Resetting buffer.");
- sscpi->count = 0;
- sscpi->read = 0;
+ if (buf[ret - 1] == '\n') {
+ sscpi->got_newline = TRUE;
+ sr_spew("Received terminator");
+ } else {
+ sscpi->got_newline = FALSE;