[PATCH 1/1] fix parse_duration_str with LOCALE_SUPPORT
Maxim Kochetkov
fido_max at inbox.ru
Mon Mar 22 05:22:08 UTC 2021
Signed-off-by: Maxim Kochetkov <fido_max at inbox.ru>
---
coreutils/sleep.c | 4 ----
libbb/duration.c | 7 +++++++
2 files changed, 7 insertions(+), 4 deletions(-)
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/libbb/duration.c b/libbb/duration.c
index 086da15fb..cbbb7336d 100644
--- a/libbb/duration.c
+++ b/libbb/duration.c
@@ -33,6 +33,10 @@ static const struct suffix_mult duration_suffixes[] ALIGN_SUFFIX = {
duration_t FAST_FUNC parse_duration_str(char *str)
{
duration_t duration;
+# if ENABLE_LOCALE_SUPPORT
+ /* undo busybox.c setlocale */
+ setlocale(LC_NUMERIC, "C");
+# endif
if (strchr(str, '.')) {
double d;
@@ -54,6 +58,9 @@ duration_t FAST_FUNC parse_duration_str(char *str)
duration = xatoul_sfx(str, duration_suffixes);
}
+#if ENABLE_LOCALE_SUPPORT
+ setlocale(LC_NUMERIC, "");
+#endif
return duration;
}
void FAST_FUNC sleep_for_duration(duration_t duration)
--
2.30.2
More information about the busybox
mailing list