timeout,top,watch,ping: parse NN.N fractional duration in locales with other separators
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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) */
|
||||
|
||||
Reference in New Issue
Block a user