From: Daniel Stenberg Date: Wed, 23 Nov 2022 10:24:26 +0000 (+0100) Subject: tool_operate: override the numeric locale and set "C" by force X-Git-Tag: curl-7_87_0~114 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=975efec61b83b840cf18ab2ee23b9202c60ca8a7;p=thirdparty%2Fcurl.git tool_operate: override the numeric locale and set "C" by force Makes curl always use dot as decimal separator for options, independently of what the locale says. Makes scripts and command lines portable. Updated docs accordingly. Reported-by: Daniel Faust Fixes #9969 Closes #9972 --- diff --git a/docs/cmdline-opts/connect-timeout.d b/docs/cmdline-opts/connect-timeout.d index 6a2889d216..002e96a064 100644 --- a/docs/cmdline-opts/connect-timeout.d +++ b/docs/cmdline-opts/connect-timeout.d @@ -14,3 +14,6 @@ Maximum time in seconds that you allow curl's connection to take. This only limits the connection phase, so if curl connects within the given period it will continue - if not it will exit. Since version 7.32.0, this option accepts decimal values. + +The decimal value needs to provided using a dot (.) as decimal separator - not +the local version even if it might be using another separator. diff --git a/docs/cmdline-opts/expect100-timeout.d b/docs/cmdline-opts/expect100-timeout.d index 93e3c633e1..279b90b29f 100644 --- a/docs/cmdline-opts/expect100-timeout.d +++ b/docs/cmdline-opts/expect100-timeout.d @@ -14,3 +14,6 @@ Maximum time in seconds that you allow curl to wait for a 100-continue response when curl emits an Expects: 100-continue header in its request. By default curl will wait one second. This option accepts decimal values! When curl stops waiting, it will continue as if the response has been received. + +The decimal value needs to provided using a dot (.) as decimal separator - not +the local version even if it might be using another separator. diff --git a/docs/cmdline-opts/max-time.d b/docs/cmdline-opts/max-time.d index 8efef12796..e50fb53bc3 100644 --- a/docs/cmdline-opts/max-time.d +++ b/docs/cmdline-opts/max-time.d @@ -20,3 +20,6 @@ timeout increases in decimal precision. If you enable retrying the transfer (--retry) then the maximum time counter is reset each time the transfer is retried. You can use --retry-max-time to limit the retry time. + +The decimal value needs to provided using a dot (.) as decimal separator - not +the local version even if it might be using another separator. diff --git a/src/tool_operate.c b/src/tool_operate.c index cd137ec10d..7af73a266c 100644 --- a/src/tool_operate.c +++ b/src/tool_operate.c @@ -2638,9 +2638,10 @@ CURLcode operate(struct GlobalConfig *global, int argc, argv_item_t argv[]) CURLcode result = CURLE_OK; char *first_arg = argc > 1 ? curlx_convert_tchar_to_UTF8(argv[1]) : NULL; - /* Setup proper locale from environment */ #ifdef HAVE_SETLOCALE + /* Override locale for number parsing (only) */ setlocale(LC_ALL, ""); + setlocale(LC_NUMERIC, "C"); #endif /* Parse .curlrc if necessary */