diff options
author | Felix Fietkau <nbd@openwrt.org> | 2007-01-26 19:57:51 +0000 |
---|---|---|
committer | Felix Fietkau <nbd@openwrt.org> | 2007-01-26 19:57:51 +0000 |
commit | 7e0d6fc308ff1c1a25472751fa926fd7206f5dbc (patch) | |
tree | 8cb8091150fcab3e66b477c2ff16e25dd93042bb | |
parent | fbaae65ab4dae142c8b159f1b7794a5bba1581e9 (diff) | |
download | upstream-7e0d6fc308ff1c1a25472751fa926fd7206f5dbc.tar.gz upstream-7e0d6fc308ff1c1a25472751fa926fd7206f5dbc.tar.bz2 upstream-7e0d6fc308ff1c1a25472751fa926fd7206f5dbc.zip |
another fix for the awk command line parsing - should finally work properly now
SVN-Revision: 6210
-rw-r--r-- | package/busybox/patches/400-revert_awk_getopt.patch | 22 |
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 cb758bab77..9aa747bfca 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"); |