summaryrefslogtreecommitdiffhomepage
path: root/coreutils
diff options
context:
space:
mode:
authorDenys Vlasenko <vda.linux@googlemail.com>2021-03-23 13:50:02 +0100
committerDenys Vlasenko <vda.linux@googlemail.com>2021-03-23 13:50:02 +0100
commitc2bd0b680667c7ec4956552f75d9ff7d040ac941 (patch)
tree8d117fedfebe03f6f97071ebc522d4ac03f08c47 /coreutils
parent14ed4ec8a416a60a214bf40f9185aa227ac44598 (diff)
timeout,top,watch,ping: parse NN.N fractional duration in locales with other separators
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'coreutils')
-rw-r--r--coreutils/printf.c1
-rw-r--r--coreutils/sleep.c4
-rw-r--r--coreutils/sort.c1
3 files changed, 2 insertions, 4 deletions
diff --git a/coreutils/printf.c b/coreutils/printf.c
index a20fc3301..dd94c8ade 100644
--- a/coreutils/printf.c
+++ b/coreutils/printf.c
@@ -122,6 +122,7 @@ static void FAST_FUNC conv_strtod(const char *arg, void *result)
char *end;
/* Well, this one allows leading whitespace... so what? */
/* What I like much less is that "-" accepted too! :( */
+//TODO: needs setlocale(LC_NUMERIC, "C")?
*(double*)result = strtod(arg, &end);
if (end[0]) {
errno = ERANGE;
diff --git a/coreutils/sleep.c b/coreutils/sleep.c
index 7bfaab920..2658e84df 100644
--- a/coreutils/sleep.c
+++ b/coreutils/sleep.c
@@ -74,10 +74,6 @@ int sleep_main(int argc UNUSED_PARAM, char **argv)
sleep(INT_MAX);
#if ENABLE_FEATURE_FANCY_SLEEP
-# if ENABLE_FLOAT_DURATION
- /* undo busybox.c setlocale */
- setlocale(LC_NUMERIC, "C");
-# endif
duration = 0;
do {
duration += parse_duration_str(*argv);
diff --git a/coreutils/sort.c b/coreutils/sort.c
index b194847d1..6c4e3038c 100644
--- a/coreutils/sort.c
+++ b/coreutils/sort.c
@@ -295,6 +295,7 @@ static int compare_keys(const void *xarg, const void *yarg)
#if ENABLE_FEATURE_SORT_BIG
case FLAG_g: {
char *xx, *yy;
+//TODO: needs setlocale(LC_NUMERIC, "C")?
double dx = strtod(x, &xx);
double dy = strtod(y, &yy);
/* not numbers < NaN < -infinity < numbers < +infinity) */