diff options
author | Denys Vlasenko <vda.linux@googlemail.com> | 2021-03-23 13:50:02 +0100 |
---|---|---|
committer | Denys Vlasenko <vda.linux@googlemail.com> | 2021-03-23 13:50:02 +0100 |
commit | c2bd0b680667c7ec4956552f75d9ff7d040ac941 (patch) | |
tree | 8d117fedfebe03f6f97071ebc522d4ac03f08c47 /coreutils | |
parent | 14ed4ec8a416a60a214bf40f9185aa227ac44598 (diff) | |
download | busybox-w32-c2bd0b680667c7ec4956552f75d9ff7d040ac941.tar.gz busybox-w32-c2bd0b680667c7ec4956552f75d9ff7d040ac941.tar.bz2 busybox-w32-c2bd0b680667c7ec4956552f75d9ff7d040ac941.zip |
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.c | 1 | ||||
-rw-r--r-- | coreutils/sleep.c | 4 | ||||
-rw-r--r-- | coreutils/sort.c | 1 |
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) | |||
122 | char *end; | 122 | char *end; |
123 | /* Well, this one allows leading whitespace... so what? */ | 123 | /* Well, this one allows leading whitespace... so what? */ |
124 | /* What I like much less is that "-" accepted too! :( */ | 124 | /* What I like much less is that "-" accepted too! :( */ |
125 | //TODO: needs setlocale(LC_NUMERIC, "C")? | ||
125 | *(double*)result = strtod(arg, &end); | 126 | *(double*)result = strtod(arg, &end); |
126 | if (end[0]) { | 127 | if (end[0]) { |
127 | errno = ERANGE; | 128 | 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) | |||
74 | sleep(INT_MAX); | 74 | sleep(INT_MAX); |
75 | 75 | ||
76 | #if ENABLE_FEATURE_FANCY_SLEEP | 76 | #if ENABLE_FEATURE_FANCY_SLEEP |
77 | # if ENABLE_FLOAT_DURATION | ||
78 | /* undo busybox.c setlocale */ | ||
79 | setlocale(LC_NUMERIC, "C"); | ||
80 | # endif | ||
81 | duration = 0; | 77 | duration = 0; |
82 | do { | 78 | do { |
83 | duration += parse_duration_str(*argv); | 79 | 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) | |||
295 | #if ENABLE_FEATURE_SORT_BIG | 295 | #if ENABLE_FEATURE_SORT_BIG |
296 | case FLAG_g: { | 296 | case FLAG_g: { |
297 | char *xx, *yy; | 297 | char *xx, *yy; |
298 | //TODO: needs setlocale(LC_NUMERIC, "C")? | ||
298 | double dx = strtod(x, &xx); | 299 | double dx = strtod(x, &xx); |
299 | double dy = strtod(y, &yy); | 300 | double dy = strtod(y, &yy); |
300 | /* not numbers < NaN < -infinity < numbers < +infinity) */ | 301 | /* not numbers < NaN < -infinity < numbers < +infinity) */ |