summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/deh_io.c13
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;
}
}