summaryrefslogtreecommitdiff
path: root/editors/awk.c
diff options
context:
space:
mode:
authorDenis Vlasenko <vda.linux@googlemail.com>2007-03-10 17:22:14 +0000
committerDenis Vlasenko <vda.linux@googlemail.com>2007-03-10 17:22:14 +0000
commitbe644a81e91bcfacfc8948a39e5184fa6cba663e (patch)
tree7158aa9443a54b29464d83305a85c5aafe9a9917 /editors/awk.c
parent49622d784672bf2f7b2fe80589714cdef5adde0c (diff)
downloadbusybox-w32-be644a81e91bcfacfc8948a39e5184fa6cba663e.tar.gz
busybox-w32-be644a81e91bcfacfc8948a39e5184fa6cba663e.tar.bz2
busybox-w32-be644a81e91bcfacfc8948a39e5184fa6cba663e.zip
awk: support multiple -v options
Diffstat (limited to '')
-rw-r--r--editors/awk.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/editors/awk.c b/editors/awk.c
index d0b03c373..a18025ef0 100644
--- a/editors/awk.c
+++ b/editors/awk.c
@@ -2648,7 +2648,8 @@ int awk_main(int argc, char **argv);
2648int awk_main(int argc, char **argv) 2648int awk_main(int argc, char **argv)
2649{ 2649{
2650 unsigned opt; 2650 unsigned opt;
2651 char *opt_F, *opt_v, *opt_W; 2651 char *opt_F, *opt_W;
2652 llist_t *opt_v = NULL;
2652 int i, j, flen; 2653 int i, j, flen;
2653 var *v; 2654 var *v;
2654 var tv; 2655 var tv;
@@ -2701,12 +2702,16 @@ int awk_main(int argc, char **argv)
2701 } 2702 }
2702 free(s); 2703 free(s);
2703 } 2704 }
2704 2705 opt_complementary = "v::";
2705 opt = getopt32(argc, argv, "F:v:f:W:", &opt_F, &opt_v, &programname, &opt_W); 2706 opt = getopt32(argc, argv, "F:v:f:W:", &opt_F, &opt_v, &programname, &opt_W);
2706 argv += optind; 2707 argv += optind;
2707 argc -= optind; 2708 argc -= optind;
2708 if (opt & 0x1) setvar_s(V[FS], opt_F); // -F 2709 if (opt & 0x1) setvar_s(V[FS], opt_F); // -F
2709 if (opt & 0x2) if (!is_assignment(opt_v)) bb_show_usage(); // -v 2710 opt_v = llist_rev(opt_v);
2711 while (opt_v) { /* -v */
2712 if (!is_assignment(llist_pop(&opt_v)))
2713 bb_show_usage();
2714 }
2710 if (opt & 0x4) { // -f 2715 if (opt & 0x4) { // -f
2711 char *s = s; /* die, gcc, die */ 2716 char *s = s; /* die, gcc, die */
2712 FILE *from_file = afopen(programname, "r"); 2717 FILE *from_file = afopen(programname, "r");