commit 60c7eab51eb00b3123f6644fe52d8cfb5a5e38c1
parent a70327662183619906f80e32669eb536aa4e31fc
Author: Roberto E. Vargas Caballero <k0ga@shike2.com>
Date: Mon, 19 Feb 2018 16:51:52 +0000
[ar] Use a haslist variable
This variable marks when the original command line had a list of
members. We cannot use the list itself because it is modified
by the program.
Diffstat:
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/ar/main.c b/ar/main.c
@@ -15,7 +15,7 @@ static char sccsid[] = "@(#) ./ar/main.c";
char *argv0;
-static int bflag, iflag, vflag, cflag, lflag, uflag, aflag;
+static int bflag, iflag, vflag, cflag, lflag, uflag, aflag, haslist;
static char *posname, *tmpafile1, *tmpafile2;
struct arop {
@@ -278,7 +278,7 @@ extract(struct arop *op, char *files[])
long siz;
FILE *fp;
- if (*files && !inlist(op->fname, files))
+ if (haslist && !inlist(op->fname, files))
return;
if (vflag)
printf("x - %s\n", op->fname);
@@ -308,7 +308,7 @@ print(struct arop *op, char *files[])
long siz;
int c;
- if (*files && !inlist(op->fname, files))
+ if (haslist && !inlist(op->fname, files))
return;
if (vflag)
printf("\n<%s>\n\n", op->fname);
@@ -324,7 +324,7 @@ list(struct arop *op, char *files[])
struct ar_hdr *hdr = &op->hdr;
char mtime[30];
- if (*files && !inlist(op->fname, files))
+ if (haslist && !inlist(op->fname, files))
return;
if (!vflag) {
printf("%s\n", op->fname);
@@ -517,6 +517,7 @@ doit(int key, char *afile, FILE *fp, char *flist[])
}
return;
}
+ haslist = *flist != NULL;
switch (key) {
case 'r':