From c7217c708076e7a342c30a4e08fac3995006636a Mon Sep 17 00:00:00 2001 From: Martin Donlon Date: Tue, 21 Dec 2021 23:35:41 -0800 Subject: [PATCH] Handle dos-style line endings in FileReadLIne (#496) --- file_io.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/file_io.cpp b/file_io.cpp index b647901..2912b51 100644 --- a/file_io.cpp +++ b/file_io.cpp @@ -1809,16 +1809,19 @@ bool FileOpenTextReader( fileTextReader *reader, const char *filename ) return false; } +#define IS_NEWLINE(c) (((c) == '\r') || ((c) == '\n')) +#define IS_WHITESPACE(c) (IS_NEWLINE(c) || ((c) == ' ') || ((c) == '\t')) + const char *FileReadLine(fileTextReader *reader) { const char *end = reader->buffer + reader->size; while (reader->pos < end) { char *st = reader->pos; - while ((reader->pos < end) && *reader->pos && (*reader->pos != 10)) + while ((reader->pos < end) && *reader->pos && !IS_NEWLINE(*reader->pos)) reader->pos++; *reader->pos = 0; - while (*st == ' ' || *st == '\t' || *st == 13) + while (IS_WHITESPACE(*st)) st++; if (*st == '#' || *st == ';' || !*st) {