awk: undo locale setting for numbers - or else parsing
authorDenis Vlasenko <vda.linux@googlemail.com>
Mon, 1 Jan 2007 23:53:12 +0000 (23:53 -0000)
committerDenis Vlasenko <vda.linux@googlemail.com>
Mon, 1 Jan 2007 23:53:12 +0000 (23:53 -0000)
can act quite mysteriously
date: add if(ENABLE_LOCALE_SUPPORT)

coreutils/date.c
editors/awk.c

index 37ccfd5ba45d780b4e08c02a6ed5493414d8886a..a6690e8bdee8429168f026706ce77fde8e5ff9dd 100644 (file)
@@ -212,7 +212,8 @@ format_utc:
                        }
                } else if (opt & DATE_OPT_RFC2822) {
                        /* Undo busybox.c for date -R */
-                       setlocale(LC_TIME, "C");
+                       if (ENABLE_LOCALE_SUPPORT)
+                               setlocale(LC_TIME, "C");
                        strcpy(date_fmt, "%a, %d %b %Y %H:%M:%S ");
                        i = 22;
                        goto format_utc;
index 97e78163cd926efda8ef7bb5977bc9e461148678..f48b0e43fba084e452492b3c59aaddd5fbbe9777 100644 (file)
@@ -2652,6 +2652,11 @@ int awk_main(int argc, char **argv)
        char *vnames = (char *)vNames; /* cheat */
        char *vvalues = (char *)vValues;
 
+        /* Undo busybox.c, or else strtod may eat ','! This breaks parsing:
+        * $1,$2 == '$1,' '$2', NOT '$1' ',' '$2' */
+       if (ENABLE_LOCALE_SUPPORT)
+               setlocale(LC_NUMERIC, "C");
+
        zero_out_var(&tv);
 
        /* allocate global buffer */