summaryrefslogtreecommitdiff
path: root/soltools/cpp/_lex.c
diff options
context:
space:
mode:
Diffstat (limited to 'soltools/cpp/_lex.c')
-rw-r--r--soltools/cpp/_lex.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/soltools/cpp/_lex.c b/soltools/cpp/_lex.c
index 135c36ca4f93..28fae7a548ec 100644
--- a/soltools/cpp/_lex.c
+++ b/soltools/cpp/_lex.c
@@ -624,10 +624,14 @@ int
int
fillbuf(Source * s)
{
- int n;
+ int n = 0;
- if (s->fd < 0 || (n = read(s->fd, (char *) s->inl, INS / 8)) <= 0)
- n = 0;
+ if (s->fd >= 0)
+ {
+ n = read(s->fd, (char *) s->inl, INS / 8);
+ if (n <= 0)
+ n = 0;
+ }
s->inl += n;
s->inl[0] = s->inl[1] = s->inl[2] = s->inl[3] = EOB;
if (n == 0)