ref: 59ec69003f284ff73480ce2724e50fe7ee178f98
parent: 8bc7d1659de95ce7d93c588821ff2f038918fb01
author: Roberto E. Vargas Caballero <k0ga@shike2.com>
date: Mon Feb 19 10:30:20 EST 2018
[ar] Do always the check of pending members If there is some member in the list of members for some operation then ar must fail.
--- a/ar/main.c
+++ b/ar/main.c
@@ -532,10 +532,6 @@
tmp1 = opentmp("ar.tmp1", &tmpafile1);
run(fp, tmp1, NULL, flist, update);
- if (*flist == NULL) {
- closetmp(tmp1, &tmpafile1, afile);
- break;
- }
if (!posname) {
append(tmp1, flist);
break;
@@ -569,10 +565,6 @@
tmp2 = opentmp("ar.tmp2", &tmpafile2);
run(fp, tmp1, tmp2, flist, split);
- if (*flist) {
- fprintf(stderr, "ar: entry '%s' not found\n", *flist);
- exit(1);
- }
fp = openar(afile);
fseek(tmp1, SARMAG, SEEK_SET);
fseek(tmp2, SARMAG, SEEK_SET);
@@ -585,7 +577,12 @@
closetmp(tmp2, &tmpafile2, NULL);
break;
}
+ if (*flist == NULL)
+ return;
+ while (*flist)
+ fprintf(stderr, "ar: No member named '%s\n", *flist++);
+ exit(1);
}
int