From: ceriel Date: Thu, 8 Jan 1987 16:04:20 +0000 (+0000) Subject: rd_arhdr now returns 1 if it succeeds, and 0 at end-of-file. X-Git-Tag: release-5-5~5031 X-Git-Url: https://git.ndcode.org/public/gitweb.cgi?a=commitdiff_plain;h=4219306f55145605721854a2461a05de38acfde7;p=ack.git rd_arhdr now returns 1 if it succeeds, and 0 at end-of-file. --- diff --git a/modules/src/object/rd_arhdr.c b/modules/src/object/rd_arhdr.c index 00a1ca7e1..691799fb5 100644 --- a/modules/src/object/rd_arhdr.c +++ b/modules/src/object/rd_arhdr.c @@ -1,6 +1,7 @@ #include #include "object.h" +int rd_arhdr(fd, arhdr) register struct ar_hdr *arhdr; { @@ -11,9 +12,14 @@ rd_arhdr(fd, arhdr) char buf[AR_TOTAL]; register char *c = buf; register char *p = arhdr->ar_name; - register int i = 14; + register int i; - rd_bytes(fd, c, (long) AR_TOTAL); + i = read(fd, c, AR_TOTAL); + if (i == 0) return 0; + if (i < 0 || i != AR_TOTAL) { + rd_fatal(); + } + i = 14; while (i--) { *p++ = *c++; } @@ -24,6 +30,12 @@ rd_arhdr(fd, arhdr) arhdr->ar_size = get4(c); } #if ! (BYTES_REVERSED || WORDS_REVERSED) - else rd_bytes(fd, (char *) arhdr, (long) AR_TOTAL); + else { + register int i; + i = read(fd, (char *) arhdr, AR_TOTAL); + if (i == 0) return 0; + if (i < 0 || i != AR_TOTAL) rd_fatal(); + } #endif + return 1; }