summaryrefslogtreecommitdiff
path: root/arscan.c
diff options
context:
space:
mode:
authorRoland McGrath <roland@redhat.com>1994-07-04 21:51:49 +0000
committerRoland McGrath <roland@redhat.com>1994-07-04 21:51:49 +0000
commit30c146526571d09788abb409a040fae7ee1c12b5 (patch)
tree27f99528a3eaf7f8f18f913a97a865089c13eca8 /arscan.c
parentb574b8ea5a2c91bee40dc8c5f1b8f938928b162a (diff)
downloadgunmake-30c146526571d09788abb409a040fae7ee1c12b5.tar.gz
(ar_member_touch) [EINTR]: Do EINTR looping around fstat.
Diffstat (limited to 'arscan.c')
-rw-r--r--arscan.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/arscan.c b/arscan.c
index da9428d..48fbaa8 100644
--- a/arscan.c
+++ b/arscan.c
@@ -495,7 +495,11 @@ ar_member_touch (arname, memname)
if (AR_HDR_SIZE != write (fd, (char *) &ar_hdr, AR_HDR_SIZE))
goto lose;
/* The file's mtime is the time we we want. */
+#ifdef EINTR
+ while (fstat (fd, &statbuf) < 0 && errno == EINTR);
+#else
fstat (fd, &statbuf);
+#endif
#if defined(ARFMAG) || defined(AIAMAG)
/* Advance member's time to that time */
for (i = 0; i < sizeof ar_hdr.ar_date; i++)