diff options
author | Roland McGrath <roland@redhat.com> | 1993-12-14 20:09:51 +0000 |
---|---|---|
committer | Roland McGrath <roland@redhat.com> | 1993-12-14 20:09:51 +0000 |
commit | d519e2c19be51b628b3d505cea77b8fb98798e0a (patch) | |
tree | fb5226aa93595d0759ebe5e8d49184bc023ca6de /read.c | |
parent | cf9bc4ae2fb8cd473766dce8bf66982c3a842b47 (diff) | |
download | make-d519e2c19be51b628b3d505cea77b8fb98798e0a.tar.gz |
Formerly read.c.~71~
Diffstat (limited to 'read.c')
-rw-r--r-- | read.c | 24 |
1 files changed, 15 insertions, 9 deletions
@@ -1648,18 +1648,21 @@ readline (linebuffer, stream, filename, lineno) *p = '\0'; - while (1) + while (fgets (p, end - p, stream) != 0) { - if (fgets (p, end - p, stream) == 0) - if (feof (stream)) - break; - else - pfatal_with_name (filename); - len = strlen (p); if (len == 0) - /* This only happens when the first thing on the line is a '\0'. */ - makefile_fatal (filename, lineno, "NUL not allowed in makefile"); + { + /* This only happens when the first thing on the line is a '\0'. + It is a pretty hopeless case, but (wonder of wonders) Athena + lossage strikes again! (xmkmf puts NULs in its makefiles.) + There is nothing really to be done; we synthesize a newline so + the following line doesn't appear to be part of this line. */ + makefile_error (filename, lineno, + "warning: NUL character seen; rest of line ignored"); + p[0] = '\n'; + len = 1; + } p += len; if (p[-1] != '\n') @@ -1715,6 +1718,9 @@ readline (linebuffer, stream, filename, lineno) } } + if (ferror (stream)) + pfatal_with_name (filename); + return nlines; } |