svn commit: trunk/busybox/editors

vda at busybox.net vda at busybox.net
Sat Mar 10 17:22:14 UTC 2007


Author: vda
Date: 2007-03-10 09:22:14 -0800 (Sat, 10 Mar 2007)
New Revision: 18063

Log:
awk: support multiple -v options


Modified:
   trunk/busybox/editors/awk.c


Changeset:
Modified: trunk/busybox/editors/awk.c
===================================================================
--- trunk/busybox/editors/awk.c	2007-03-10 16:58:49 UTC (rev 18062)
+++ trunk/busybox/editors/awk.c	2007-03-10 17:22:14 UTC (rev 18063)
@@ -2648,7 +2648,8 @@
 int awk_main(int argc, char **argv)
 {
 	unsigned opt;
-	char *opt_F, *opt_v, *opt_W;
+	char *opt_F, *opt_W;
+	llist_t *opt_v = NULL;
 	int i, j, flen;
 	var *v;
 	var tv;
@@ -2701,12 +2702,16 @@
 		}
 		free(s);
 	}
-
+	opt_complementary = "v::";
 	opt = getopt32(argc, argv, "F:v:f:W:", &opt_F, &opt_v, &programname, &opt_W);
 	argv += optind;
 	argc -= optind;
 	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
 		char *s = s; /* die, gcc, die */
 		FILE *from_file = afopen(programname, "r");




More information about the busybox-cvs mailing list