summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authornbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>2007-01-26 19:57:51 +0000
committernbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>2007-01-26 19:57:51 +0000
commit6c0e77acf3e17c6e76b8b68c1b54b5d4b57e541d (patch)
tree97e8e7fcd32a986adb4b3debdcc2f801a5da5f4f
parent600f114c01e3324d296879632b53b3e1fdcec9e3 (diff)
another fix for the awk command line parsing - should finally work properly now
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@6210 3c298f89-4303-0410-b956-a3cf2f4a3e73
-rw-r--r--package/busybox/patches/400-revert_awk_getopt.patch22
1 files changed, 14 insertions, 8 deletions
diff --git a/package/busybox/patches/400-revert_awk_getopt.patch b/package/busybox/patches/400-revert_awk_getopt.patch
index cb758bab7..9aa747bfc 100644
--- a/package/busybox/patches/400-revert_awk_getopt.patch
+++ b/package/busybox/patches/400-revert_awk_getopt.patch
@@ -1,6 +1,6 @@
diff -ur busybox.old/editors/awk.c busybox.dev/editors/awk.c
--- busybox.old/editors/awk.c 2007-01-19 22:23:12.000000000 +0100
-+++ busybox.dev/editors/awk.c 2007-01-25 20:01:26.000000000 +0100
++++ busybox.dev/editors/awk.c 2007-01-26 20:09:45.000000000 +0100
@@ -2639,14 +2639,13 @@
int awk_main(int argc, char **argv)
@@ -17,7 +17,7 @@ diff -ur busybox.old/editors/awk.c busybox.dev/editors/awk.c
/* Undo busybox.c, or else strtod may eat ','! This breaks parsing:
* $1,$2 == '$1,' '$2', NOT '$1' ',' '$2' */
-@@ -2694,39 +2693,46 @@
+@@ -2694,40 +2693,54 @@
free(s);
}
@@ -39,6 +39,7 @@ diff -ur busybox.old/editors/awk.c busybox.dev/editors/awk.c
- for (i = j = 1; j > 0; i += j) {
- s = xrealloc(s, i + 4096);
- j = fread(s + i, 1, 4094, from_file);
++ programname = NULL;
+ while((c = getopt(argc, argv, "F:v:f:W:")) != EOF) {
+ switch (c) {
+ case 'F':
@@ -83,14 +84,19 @@ diff -ur busybox.old/editors/awk.c busybox.dev/editors/awk.c
- } else { // no -f: take program from 1st parameter
- if (!argc)
- bb_show_usage();
-- programname = "cmd. line";
-- parse_program(*argv++);
-- argc--;
++ }
++ argc -= optind;
++ argv += optind;
++
++ if (!programname) {
+ programname = "cmd. line";
+ parse_program(*argv++);
+ argc--;
}
- if (opt & 0x8) // -W
- bb_error_msg("warning: unrecognized option '-W %s' ignored", opt_W);
-+ argc -= optind;
-+ argv += optind;
-
+-
++
/* fill in ARGV array */
setvar_i(V[ARGC], argc + 1);
+ setari_u(V[ARGV], 0, "awk");