summaryrefslogtreecommitdiff
path: root/usr.bin/make
diff options
context:
space:
mode:
authorBruce Evans <bde@FreeBSD.org>1996-09-12 03:03:25 +0000
committerBruce Evans <bde@FreeBSD.org>1996-09-12 03:03:25 +0000
commitd25a64252b08180a7815d2f7fbdbca01facf8698 (patch)
tree8c8030335ccf9f36a7353d7c9f151a0570d74716 /usr.bin/make
parent4d55cbc522c3a558507ac52445076c511d62c8a3 (diff)
Notes
Diffstat (limited to 'usr.bin/make')
-rw-r--r--usr.bin/make/parse.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/usr.bin/make/parse.c b/usr.bin/make/parse.c
index b0454a660e37..f99f186990a3 100644
--- a/usr.bin/make/parse.c
+++ b/usr.bin/make/parse.c
@@ -1428,17 +1428,18 @@ Parse_DoVar (line, ctxt)
while(((pid = wait(&status)) != cpid) && (pid >= 0))
continue;
- res = (char *)Buf_GetAll (buf, &cc);
- Buf_Destroy (buf, FALSE);
-
- if (cc == 0) {
+ if (cc == -1) {
/*
- * Couldn't read the child's output -- tell the user and
- * set the variable to null
+ * Couldn't read all of the child's output -- tell the user
+ * but still use whatever we read. Null output isn't an
+ * error unless there was an error reading it.
*/
Parse_Error(PARSE_WARNING, "Couldn't read shell's output");
}
+ res = (char *)Buf_GetAll (buf, &cc);
+ Buf_Destroy (buf, FALSE);
+
if (status) {
/*
* Child returned an error -- tell the user but still use