From 6dc6ebbf44f01f31b683ddde36f0ba694b98bbdd Mon Sep 17 00:00:00 2001 From: Denis Vlasenko Date: Mon, 1 Jan 2007 23:53:12 +0000 Subject: [PATCH] awk: undo locale setting for numbers - or else parsing can act quite mysteriously date: add if(ENABLE_LOCALE_SUPPORT) --- coreutils/date.c | 3 ++- editors/awk.c | 5 +++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/coreutils/date.c b/coreutils/date.c index 37ccfd5ba..a6690e8bd 100644 --- a/coreutils/date.c +++ b/coreutils/date.c @@ -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; diff --git a/editors/awk.c b/editors/awk.c index 97e78163c..f48b0e43f 100644 --- a/editors/awk.c +++ b/editors/awk.c @@ -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 */