awk: support multiple -v options
This commit is contained in:
parent
49622d7846
commit
be644a81e9
@ -2648,7 +2648,8 @@ int awk_main(int argc, char **argv);
|
|||||||
int awk_main(int argc, char **argv)
|
int awk_main(int argc, char **argv)
|
||||||
{
|
{
|
||||||
unsigned opt;
|
unsigned opt;
|
||||||
char *opt_F, *opt_v, *opt_W;
|
char *opt_F, *opt_W;
|
||||||
|
llist_t *opt_v = NULL;
|
||||||
int i, j, flen;
|
int i, j, flen;
|
||||||
var *v;
|
var *v;
|
||||||
var tv;
|
var tv;
|
||||||
@ -2701,12 +2702,16 @@ int awk_main(int argc, char **argv)
|
|||||||
}
|
}
|
||||||
free(s);
|
free(s);
|
||||||
}
|
}
|
||||||
|
opt_complementary = "v::";
|
||||||
opt = getopt32(argc, argv, "F:v:f:W:", &opt_F, &opt_v, &programname, &opt_W);
|
opt = getopt32(argc, argv, "F:v:f:W:", &opt_F, &opt_v, &programname, &opt_W);
|
||||||
argv += optind;
|
argv += optind;
|
||||||
argc -= optind;
|
argc -= optind;
|
||||||
if (opt & 0x1) setvar_s(V[FS], opt_F); // -F
|
if (opt & 0x1) setvar_s(V[FS], opt_F); // -F
|
||||||
if (opt & 0x2) if (!is_assignment(opt_v)) bb_show_usage(); // -v
|
opt_v = llist_rev(opt_v);
|
||||||
|
while (opt_v) { /* -v */
|
||||||
|
if (!is_assignment(llist_pop(&opt_v)))
|
||||||
|
bb_show_usage();
|
||||||
|
}
|
||||||
if (opt & 0x4) { // -f
|
if (opt & 0x4) { // -f
|
||||||
char *s = s; /* die, gcc, die */
|
char *s = s; /* die, gcc, die */
|
||||||
FILE *from_file = afopen(programname, "r");
|
FILE *from_file = afopen(programname, "r");
|
||||||
|
Loading…
Reference in New Issue
Block a user