added subtargets to x86
[openwrt-10.03/.git] / package / busybox / patches / 400-revert_awk_getopt.patch
index cb758bab770fe5f2f865dc5d5da470a4297d5515..33c6790fe123113b4c49197fe5350317274fceba 100644 (file)
@@ -1,6 +1,7 @@
-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
+Index: busybox-1.4.2/editors/awk.c
+===================================================================
+--- busybox-1.4.2.orig/editors/awk.c   2007-06-15 23:43:26.460690280 +0200
++++ busybox-1.4.2/editors/awk.c        2007-06-15 23:45:26.283474448 +0200
 @@ -2639,14 +2639,13 @@
  
  int awk_main(int argc, char **argv)
@@ -17,7 +18,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,56 @@
                free(s);
        }
  
@@ -39,6 +40,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':
@@ -81,16 +83,21 @@ diff -ur busybox.old/editors/awk.c busybox.dev/editors/awk.c
 -              parse_program(s + 1);
 -              free(s);
 -      } 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) {
+               if (!argc)
+                       bb_show_usage();
+               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");