From 4219306f55145605721854a2461a05de38acfde7 Mon Sep 17 00:00:00 2001 From: ceriel Date: Thu, 8 Jan 1987 16:04:20 +0000 Subject: [PATCH] rd_arhdr now returns 1 if it succeeds, and 0 at end-of-file. --- modules/src/object/rd_arhdr.c | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) 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; } -- 2.34.1