curl/docs
Viktor Szakats e512fbfa67
printf: fix mingw-w64 format checks
Change mingw-w64 printf format checks in public curl headers to use
`__MINGW_PRINTF_FORMAT` instead of `gnu_printf`. This syncs the format
checker with format string macros published via `curl/system.h`. (Also
disable format checks for mingw-w64 older than 3.0.0 (2013-09-20) and
classic-mingw, which do not support this macro.)

This fixes bogus format checker `-Wformat` warnings in 3rd party code
using curl format strings with the curl printf functions, when using
mingw-w64 7.0.0 (2019-11-10) and older (with GCC, MSVCRT).

It also allows to delete two workaounds for this within curl itself:
- setting `-D__USE_MINGW_ANSI_STDIO=1` for mingw-w64 via cmake and
  configure for `docs/examples` and `tests/http/clients`.
  Ref: c730c8549b #14640

The format check macro is incompatible (depending on mingw-w64 version
and configuration) with the C99 `%z` (`size_t`) format string used
internally by curl.

To work around this problem, override the format check style in curl
public headers to use `gnu_printf`. This is compatible with `%z` in all
mingw-w64 versions and allows keeping the C99 format strings internally.

Also:
- lib/ws.c: add missing space to an error message.
- docs/examples/ftpgetinfo.c: fix to use standard printf.

Ref: #14643 (take 1)
Follow-up to 3829759bd0 #12489

Closes #14703
2024-09-02 21:03:01 +02:00
..
cmdline-opts cmdline-opts: language fix for expect100-timeout.md and max-time.md 2024-08-30 11:19:30 +02:00
examples printf: fix mingw-w64 format checks 2024-09-02 21:03:01 +02:00
internals internals/SPLAY.md: internal API documentation 2024-08-16 17:13:37 +02:00
libcurl curl_easy_handler.md: fix language 2024-09-02 10:45:12 +02:00
.gitignore docs: add RELEASE-TOOLS.md.dist to .gitignore 2024-07-01 22:49:55 +02:00
BINDINGS.md BINDINGS: add zig binding 2024-08-07 14:51:09 +02:00
BUG-BOUNTY.md BUG-BOUNTY.md: clarify the third party situation 2024-05-14 16:23:42 +02:00
BUGS.md reuse: add copyright + license info to individual docs/*.md files 2024-03-31 12:01:18 +02:00
CIPHERS-TLS12.md docs: update CIPHERS.md 2024-08-12 23:35:56 +02:00
CIPHERS.md docs: update CIPHERS.md 2024-08-12 23:35:56 +02:00
CMakeLists.txt cmake: more syntax tidy-up 2024-08-07 23:41:27 +02:00
CODE_OF_CONDUCT.md reuse: add copyright + license info to individual docs/*.md files 2024-03-31 12:01:18 +02:00
CODE_REVIEW.md docs: misc language polish 2024-07-01 16:45:17 +02:00
CONTRIBUTE.md CONTRIBUTE: polished 2024-08-26 15:04:01 +02:00
curl-config.md curldown: make 'added-in:' a mandatory header field 2024-07-18 18:04:09 +02:00
CURL-DISABLE.md build: add options to disable SHA-512/256 hash algo 2024-09-01 22:13:49 +02:00
CURLDOWN.md curldown: fixups 2024-07-19 17:03:25 +02:00
DEPRECATE.md DEPRECATE.md: remove hyper after February 2025 2024-08-12 09:55:56 +02:00
DISTROS.md DISTROS: add AlmaLinux package source link 2024-07-11 12:52:58 -07:00
EARLY-RELEASE.md reuse: add copyright + license info to individual docs/*.md files 2024-03-31 12:01:18 +02:00
ECH.md tidy-up: adjust casing of project names 2024-07-12 13:56:16 +02:00
EXPERIMENTAL.md tidy-up: spelling quiche and Rustls 2024-08-20 00:44:10 +02:00
FAQ tidy-up: OS names 2024-08-04 19:17:45 +02:00
FEATURES.md FEATURES.md: fix typo 2024-08-23 08:46:09 +02:00
GOVERNANCE.md reuse: add copyright + license info to individual docs/*.md files 2024-03-31 12:01:18 +02:00
HELP-US.md reuse: add copyright + license info to individual docs/*.md files 2024-03-31 12:01:18 +02:00
HISTORY.md tidy-up: spelling quiche and Rustls 2024-08-20 00:44:10 +02:00
HTTP3.md HTTP3.md: cleanup markup and language 2024-08-28 13:56:40 +02:00
HTTP-COOKIES.md reuse: add copyright + license info to individual docs/*.md files 2024-03-31 12:01:18 +02:00
INSTALL
INSTALL-CMAKE.md tidy-up: adjust casing of project names 2024-07-12 13:56:16 +02:00
INSTALL.md tidy-up: OS names 2024-08-04 19:17:45 +02:00
INTERNALS.md tidy-up: OS names 2024-08-04 19:17:45 +02:00
IPFS.md reuse: add copyright + license info to individual docs/*.md files 2024-03-31 12:01:18 +02:00
KNOWN_BUGS tidy-up: spelling quiche and Rustls 2024-08-20 00:44:10 +02:00
MAIL-ETIQUETTE.md docs/MAIL-ETIQUETTE: convert to markdown 2024-03-31 15:32:27 +02:00
Makefile.am internals/SPLAY.md: internal API documentation 2024-08-16 17:13:37 +02:00
MANUAL.md MANUAL.md: wrap two example urls that overrun styling 2024-07-10 23:39:39 +02:00
mk-ca-bundle.md curldown: make 'added-in:' a mandatory header field 2024-07-18 18:04:09 +02:00
options-in-versions curl: add --skip-existing 2024-08-04 23:28:09 +02:00
README.md reuse: add copyright + license info to individual docs/*.md files 2024-03-31 12:01:18 +02:00
RELEASE-PROCEDURE.md RELEASE-PROCEDURE.md: restore next release date 2024-07-24 09:10:53 +02:00
ROADMAP.md CI: add whitespace checker 2024-06-27 13:33:30 +02:00
RUSTLS.md tidy-up: spelling quiche and Rustls 2024-08-20 00:44:10 +02:00
SECURITY-ADVISORY.md reuse: add copyright + license info to individual docs/*.md files 2024-03-31 12:01:18 +02:00
SPONSORS.md reuse: add copyright + license info to individual docs/*.md files 2024-03-31 12:01:18 +02:00
SSL-PROBLEMS.md reuse: add copyright + license info to individual docs/*.md files 2024-03-31 12:01:18 +02:00
SSLCERTS.md docs/SSLCERTS: rewrite 2024-08-21 07:48:57 +02:00
THANKS THANKS: add names from the 8.9.1 release notes 2024-07-31 08:50:04 +02:00
THANKS-filter THANKS: add names from the 8.9.1 release notes 2024-07-31 08:50:04 +02:00
TheArtOfHttpScripting.md code: language cleanup in comments 2024-07-01 22:58:55 +02:00
TODO ftp: always offer line end conversions 2024-08-29 20:24:37 +02:00
URL-SYNTAX.md tidy-up: misc spelling (bit, ASCII) 2024-08-15 15:30:09 +02:00
VERSIONS.md reuse: add copyright + license info to individual docs/*.md files 2024-03-31 12:01:18 +02:00
VULN-DISCLOSURE-POLICY.md VULN-DISCLOSURE-POLICY.md: small typo fix 2024-08-05 17:15:31 +02:00

curl logo

Documentation

You find a mix of various documentation in this directory and subdirectories, using several different formats. Some of them are not ideal for reading directly in your browser.

If you would rather see the rendered version of the documentation, check out the curl website's documentation section for general curl stuff or the libcurl section for libcurl related documentation.