curl/lib/curlx
Viktor Szakats 64f28b8f88
curlx: add local snprintf() helper that always nul-terminates (Windows)
Make the helper use `vsnprintf()` internally on all supported Windows
toolchains (dropping `_snprintf()` and `snprintf()`), ensure to
nul-terminate. Omit the return value to avoid complexity.

Use the helper from `mprintf.c` / `out_double()`, from tests/server code
and the tests/server-specific build of `curlx_inet_ntop()`,
`curlx_strerror()` functions. In the single call (in tests) where the
returned length was used previously, determine it with `strlen()`.

Refs:
https://github.com/libssh2/libssh2/blob/libssh2-1.11.1/src/misc.c#L57-L79
https://learn.microsoft.com/cpp/c-runtime-library/reference/snprintf-snprintf-snprintf-l-snwprintf-snwprintf-l
https://learn.microsoft.com/cpp/c-runtime-library/reference/vsnprintf-vsnprintf-vsnprintf-l-vsnwprintf-vsnwprintf-l

Assisted-by: Jay Satiro
Follow-up to fa8bd1cc09 #20761
Follow-up to 8ab468c8aa #15997

Closes #20765
2026-03-02 21:30:36 +01:00
..
base64.c clang-tidy: enable readability-math-missing-parentheses, adjust code 2026-02-23 18:57:40 +01:00
base64.h curlx: rename Curl_-prefixed symbols to curlx_ 2025-12-22 01:47:22 +01:00
basename.c lib: use lib source directory as base include path 2026-02-23 16:00:42 +01:00
basename.h lib: use lib source directory as base include path 2026-02-23 16:00:42 +01:00
curlx.h lib: use lib source directory as base include path 2026-02-23 16:00:42 +01:00
dynbuf.c lib: use lib source directory as base include path 2026-02-23 16:00:42 +01:00
dynbuf.h build: drop duplicate include curl/curl.h and others 2025-12-19 10:58:11 +01:00
fopen.c lib: use lib source directory as base include path 2026-02-23 16:00:42 +01:00
fopen.h lib: use lib source directory as base include path 2026-02-23 16:00:42 +01:00
inet_ntop.c lib: use lib source directory as base include path 2026-02-23 16:00:42 +01:00
inet_ntop.h lib: use lib source directory as base include path 2026-02-23 16:00:42 +01:00
inet_pton.c clang-tidy: enable bugprone-signed-char-misuse, fix fallouts 2026-02-25 14:44:56 +01:00
inet_pton.h clang-tidy: add arg names to prototypes where missing (cont.) 2026-02-23 17:03:01 +01:00
multibyte.c lib: use lib source directory as base include path 2026-02-23 16:00:42 +01:00
multibyte.h lib: use lib source directory as base include path 2026-02-23 16:00:42 +01:00
nonblock.c lib: use lib source directory as base include path 2026-02-23 16:00:42 +01:00
nonblock.h build: drop duplicate include curl/curl.h and others 2025-12-19 10:58:11 +01:00
snprintf.c curlx: add local snprintf() helper that always nul-terminates (Windows) 2026-03-02 21:30:36 +01:00
snprintf.h curlx: add local snprintf() helper that always nul-terminates (Windows) 2026-03-02 21:30:36 +01:00
strcopy.c lib: use lib source directory as base include path 2026-02-23 16:00:42 +01:00
strcopy.h curlx: curlx_strcopy() instead of strcpy() 2025-12-22 23:01:05 +01:00
strdup.c lib: use lib source directory as base include path 2026-02-23 16:00:42 +01:00
strdup.h lib: use lib source directory as base include path 2026-02-23 16:00:42 +01:00
strerr.c clang-tidy: fix readability-suspicious-call-argument 2026-03-02 15:28:25 +01:00
strerr.h curlx: move Curl_strerror, use in src and tests, ban strerror globally 2025-10-06 09:44:23 +02:00
strparse.c clang-tidy: enable readability-math-missing-parentheses, adjust code 2026-02-23 18:57:40 +01:00
strparse.h lib: use lib source directory as base include path 2026-02-23 16:00:42 +01:00
timediff.c lib: use lib source directory as base include path 2026-02-23 16:00:42 +01:00
timediff.h lib: use lib source directory as base include path 2026-02-23 16:00:42 +01:00
timeval.c tidy-up: miscellaneous 2026-02-25 14:44:56 +01:00
timeval.h lib: use lib source directory as base include path 2026-02-23 16:00:42 +01:00
version_win32.c lib: use lib source directory as base include path 2026-02-23 16:00:42 +01:00
version_win32.h lib: use lib source directory as base include path 2026-02-23 16:00:42 +01:00
wait.c lib: use lib source directory as base include path 2026-02-23 16:00:42 +01:00
wait.h lib: use lib source directory as base include path 2026-02-23 16:00:42 +01:00
warnless.c lib: use lib source directory as base include path 2026-02-23 16:00:42 +01:00
warnless.h clang-tidy: sync argument names in prototype and definition 2026-02-19 12:44:37 +01:00
winapi.c lib: use lib source directory as base include path 2026-02-23 16:00:42 +01:00
winapi.h windows: use native error code types more 2025-10-06 12:12:44 +02:00