diff options
-rw-r--r-- | lib/io/src/get_line.c | 7 | ||||
-rw-r--r-- | lib/io/test/get_line.c | 2 |
2 files changed, 4 insertions, 5 deletions
diff --git a/lib/io/src/get_line.c b/lib/io/src/get_line.c index 19af208..1159037 100644 --- a/lib/io/src/get_line.c +++ b/lib/io/src/get_line.c @@ -71,10 +71,6 @@ int istream_get_line(istream_t *strm, char **out, if (i < strm->buffer_used) { count = i++; - - if (count > 0 && strm->buffer[count - 1] == '\r') - --count; - have_line = true; } else { count = i; @@ -93,6 +89,9 @@ int istream_get_line(istream_t *strm, char **out, strm->buffer_used -= i; if (have_line) { + if (line_len > 0 && line[line_len - 1] == '\r') + line[--line_len] = '\0'; + line_len = trim(line, flags); if (line_len == 0 && diff --git a/lib/io/test/get_line.c b/lib/io/test/get_line.c index bb06b3e..0ce67ac 100644 --- a/lib/io/test/get_line.c +++ b/lib/io/test/get_line.c @@ -20,7 +20,7 @@ static void run_test_case(const char *raw, const line_t *lines, size_t count, char *line; int ret; - fp = istream_memory_create("lines.txt", 512, raw, strlen(raw)); + fp = istream_memory_create("lines.txt", 2, raw, strlen(raw)); TEST_NOT_NULL(fp); line_num = 1; |