mirror of
https://github.com/curl/curl.git
synced 2026-01-26 15:03:21 +00:00
- add local API `toolx_localtime()` to wrap the banned function `localtime()`. Used from libcurl, libtests and test servers. - auto-detect and use `localtime_r()` where available (e.g. Linux). Also to support multi-threading. - use `localtime_s()` on Windows. It requires MSVC or mingw-w64 v4+. Also to support multi-threading. Use local workaround to also support mingw-w64 v3. - add `src/toolx` to keep internal APIs used by the curl tool and tests, but not by libcurl. `toolx_localtime()` is the first API in it. - replace `localtime()` calls with `toolx_localtime()`. Except in examples. - note Windows XP's default `msvcrt.dll` doesn't offer secure CRT APIs. XP likely needs a newer version of this DLL, or may not run. - note that `localtime()` mirrors `gmtime()`, with the difference that `gmtime()`'s internal wrapper lives in curlx. Also: - drop redundant `int` casts. Refs: https://learn.microsoft.com/cpp/c-runtime-library/reference/localtime-localtime32-localtime64 https://learn.microsoft.com/cpp/c-runtime-library/reference/localtime-s-localtime32-s-localtime64-s https://pubs.opengroup.org/onlinepubs/9799919799/functions/localtime.html https://linux.die.net/man/3/localtime_r Ref: #19955 (for `gmtime_r()`) Follow-up to 54d9f060b4b0a8fb5fa006813e4db1ca5c1a07e8 Closes #19957