aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/io/src/get_line.c7
-rw-r--r--lib/io/test/get_line.c2
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;