diff options
-rw-r--r-- | src/deh_io.c | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/src/deh_io.c b/src/deh_io.c index 77cc40a1..3386a6fa 100644 --- a/src/deh_io.c +++ b/src/deh_io.c @@ -142,7 +142,7 @@ char *DEH_ReadLine(deh_context_t *context) int c; int pos; - for (pos=0; ; ++pos) + for (pos = 0;;) { c = DEH_GetChar(context); @@ -153,11 +153,6 @@ char *DEH_ReadLine(deh_context_t *context) return NULL; } - if (c == '\0') - { - return NULL; - } - // cope with lines of any length: increase the buffer size if (pos >= context->readbuffer_size) @@ -172,9 +167,13 @@ char *DEH_ReadLine(deh_context_t *context) context->readbuffer[pos] = '\0'; break; } - else + else if (c != '\0') { + // normal character; don't allow NUL characters to be + // added. + context->readbuffer[pos] = (char) c; + ++pos; } } |