From 21eecea26d5ee3d556f6e205982741ac09effe06 Mon Sep 17 00:00:00 2001 From: Roland McGrath Date: Tue, 14 Dec 1993 21:06:33 +0000 Subject: [PATCH] Formerly ar.c.~6~ --- ar.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/ar.c b/ar.c index 29ee43b7..c1fda066 100644 --- a/ar.c +++ b/ar.c @@ -83,19 +83,24 @@ ar_member_date (name) ar_parse_name (name, &arname, &memname); - /* Make sure we know the modtime of the archive itself because - we are likely to be called just before commands to remake a - member are run, and they will change the archive itself. */ + /* Make sure we know the modtime of the archive itself because we are + likely to be called just before commands to remake a member are run, + and they will change the archive itself. + + But we must be careful not to enter_file the archive itself if it does + not exist, because pattern_search assumes that files found in the data + base exist or can be made. */ { struct file *arfile; arfile = lookup_file (arname); - if (arfile == 0) + if (arfile == 0 && file_exists_p (arname)) { arfile = enter_file (arname); arname_used = 1; } - (void) f_mtime (arfile, 0); + if (arfile != 0) + (void) f_mtime (arfile, 0); } val = ar_scan (arname, ar_member_date_1, (long int) memname);