writeout: support to generate JSON output

This commit adds support to generate JSON via the writeout feature:

    -w "%{json}"

It leverages the existing infrastructure as much as possible. Thus,
generating the JSON on STDERR is possible by:

    -w "%{stderr}%{json}"

This implements a variant of
https://github.com/curl/curl/wiki/JSON#--write-out-json.

Closes #4870
This commit is contained in:
Mathias Gumz 2020-02-01 18:55:24 +01:00 committed by Daniel Stenberg
parent d83402813b
commit 04c03416e6
No known key found for this signature in database
GPG key ID: 5CC908FDB71E12C2
8 changed files with 361 additions and 83 deletions

View file

@ -127,6 +127,16 @@ char *curl_version(void)
int i = 0;
int j;
#ifdef DEBUGBUILD
/* Override version string when environment variable CURL_VERSION is set */
const char *debugversion = getenv("CURL_VERSION");
if(debugversion) {
strncpy(out, debugversion, sizeof(out)-1);
out[sizeof(out)-1] = '\0';
return out;
}
#endif
src[i++] = LIBCURL_NAME "/" LIBCURL_VERSION;
#ifdef USE_SSL
Curl_ssl_version(ssl_version, sizeof(ssl_version));