From d25a64252b08180a7815d2f7fbdbca01facf8698 Mon Sep 17 00:00:00 2001 From: Bruce Evans Date: Thu, 12 Sep 1996 03:03:25 +0000 Subject: Fixed handling of `!=' assignment. Don't warn if the shell's output is null, but warn if there was an error reading it. --- usr.bin/make/parse.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) (limited to 'usr.bin/make/parse.c') 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 -- cgit v1.3