#
c0450488 |
| 21-Aug-2024 |
Viktor Szakats |
src: fix potential macro confusion in cmake unity builds Sources used `lib/curlx.h` with both `ENABLE_CURLX_PRINTF` set and unset before including it. In a cmake "unity" batch w
src: fix potential macro confusion in cmake unity builds Sources used `lib/curlx.h` with both `ENABLE_CURLX_PRINTF` set and unset before including it. In a cmake "unity" batch where the first included source had it unset, the next sources did not get the macros requested with `ENABLE_CURLX_PRINTF` because `lib/curl.x` had already been included without them. Fix it by by making the macros enabled permanently and globally for internal sources, and dropping `ENABLE_CURLX_PRINTF`. This came up while testing unity builds with smaller batches. The full, default unity build where all `src` is bundled up in a single unit, was not affected. Fixes: ``` $ cmake -B build -DCMAKE_UNITY_BUILD=ON -DCMAKE_UNITY_BUILD_BATCH_SIZE=15 $ make -C build ... curl/src/tool_getparam.c: In function ‘getparameter’: curl/src/tool_getparam.c:2409:11: error: implicit declaration of function ‘msnprintf’; did you mean ‘vsnprintf’? [-Wimplicit-function-declaration] 2409 | msnprintf(buffer, sizeof(buffer), "%" CURL_FORMAT_CURL_OFF_T "-", | ^~~~~~~~~ | vsnprintf curl/src/tool_getparam.c:2409:11: warning: nested extern declaration of ‘msnprintf’ [-Wnested-externs] [...] ``` Reported-by: Daniel Stenberg Bug: https://github.com/curl/curl/pull/14626#issuecomment-2301663491 Closes #14632
show more ...
|
#
c074ba64 |
| 01-Jul-2024 |
Daniel Stenberg |
code: language cleanup in comments Based on the standards and guidelines we use for our documentation. - expand contractions (they're => they are etc) - host name = > hostname
code: language cleanup in comments Based on the standards and guidelines we use for our documentation. - expand contractions (they're => they are etc) - host name = > hostname - file name => filename - user name = username - man page => manpage - run-time => runtime - set-up => setup - back-end => backend - a HTTP => an HTTP - Two spaces after a period => one space after period Closes #14073
show more ...
|
#
4464c9f2 |
| 10-Jun-2024 |
Daniel Stenberg |
tool_writeout: bsearch the variable name As the list of variable names grows, doing a simple loop to find the name get increasingly worse. This switches to a bsearch. Also: do a
tool_writeout: bsearch the variable name As the list of variable names grows, doing a simple loop to find the name get increasingly worse. This switches to a bsearch. Also: do a case sensitive check for the variable name. The names have not been documented to be case insensitive and there is no point in having them so. Closes #13914
show more ...
|
#
1a895383 |
| 13-May-2024 |
Viktor Szakats |
src: tidy up types, add necessary casts Cherry-picked from #13489 Closes #13614
|
#
6c7da815 |
| 01-Dec-2023 |
Emanuele Torre |
tool_writeout_json: fix JSON encoding of non-ascii bytes char variables if unspecified can be either signed or unsigned depending on the platform according to the C standard; in most pla
tool_writeout_json: fix JSON encoding of non-ascii bytes char variables if unspecified can be either signed or unsigned depending on the platform according to the C standard; in most platforms, they are signed. This meant that the *i<32 waas always true for bytes with the top bit set. So they were always getting encoded as \uXXXX, and then since they were also signed negative, they were getting extended with 1s causing '\xe2' to be expanded to \uffffffe2, for example: $ curl --variable 'v=“' --expand-write-out '{{v:json}}\n' file:///dev/null \uffffffe2\uffffff80\uffffff9c I fixed this bug by making the code use explicitly unsigned char* variables instead of char* variables. Test 268 verifies Reported-by: iconoclasthero Closes #12434
show more ...
|
#
2e160c9c |
| 31-Jul-2023 |
Daniel Stenberg |
tool: add "variable" support Add support for command line variables. Set variables with --variable name=content or --variable name@file (where "file" can be stdin if set to a single
tool: add "variable" support Add support for command line variables. Set variables with --variable name=content or --variable name@file (where "file" can be stdin if set to a single dash (-)). Variable content is expanded in option parameters using "{{name}}" (without the quotes) if the option name is prefixed with "--expand-". This gets the contents of the variable "name" inserted, or a blank if the name does not exist as a variable. Insert "{{" verbatim in the string by prefixing it with a backslash, like "\\{{". Import an environment variable with --variable %name. It makes curl exit with an error if the environment variable is not set. It can also rather get a default value if the variable does not exist, using =content or @file like shown above. Example: get the USER environment variable into the URL: --variable %USER --expand-url = "https://example.com/api/{{USER}}/method" When expanding variables, curl supports a set of functions that can make the variable contents more convenient to use. It can trim leading and trailing white space with "trim", output the contents as a JSON quoted string with "json", URL encode it with "url" and base 64 encode it with "b64". To apply functions to a variable expansion, add them colon separated to the right side of the variable. They are then performed in a left to right order. Example: get the contents of a file called $HOME/.secret into a variable called "fix". Make sure that the content is trimmed and percent-encoded sent as POST data: --variable %HOME=/home/default --expand-variable fix@{{HOME}}/.secret --expand-data "{{fix:trim:url}}" https://example.com/ Documented. Many new test cases. Co-brainstormed-by: Emanuele Torre Assisted-by: Jat Satiro Closes #11346
show more ...
|
#
8484ad09 |
| 09-Jul-2023 |
Emanuele Torre |
tool_writeout_json: fix encoding of control characters Control characters without a special escape sequence e.g. %00 or %06 were being encoded as "u0006" instead of "\u0006". Re
tool_writeout_json: fix encoding of control characters Control characters without a special escape sequence e.g. %00 or %06 were being encoded as "u0006" instead of "\u0006". Ref: https://github.com/curl/trurl/pull/214#discussion_r1257487858 Closes #11414
show more ...
|
#
d567cca1 |
| 27-Apr-2023 |
Daniel Stenberg |
checksrc: fix SPACEBEFOREPAREN for conditions starting with "*" The open paren check wants to warn for spaces before open parenthesis for if/while/for but also for any function call. In
checksrc: fix SPACEBEFOREPAREN for conditions starting with "*" The open paren check wants to warn for spaces before open parenthesis for if/while/for but also for any function call. In order to avoid catching function pointer declarations, the logic allows a space if the first character after the open parenthesis is an asterisk. I also spotted what we did not include "switch" in the check but we should. This check is a little lame, but we reduce this problem by not allowing that space for if/while/for/switch. Reported-by: Emanuele Torre Closes #11044
show more ...
|
#
842be672 |
| 07-Mar-2023 |
Daniel Stenberg |
tool_writeout_json. fix the output for duplicate header names Header entries with index != 0 are handled at the index 0 level so they should then be skipped when iterated over.
tool_writeout_json. fix the output for duplicate header names Header entries with index != 0 are handled at the index 0 level so they should then be skipped when iterated over. Reported-by: Boris Okunskiy Fixes #10704 Closes #10707
show more ...
|
#
2bc1d775 |
| 02-Jan-2023 |
Daniel Stenberg |
copyright: update all copyright lines and remove year ranges - they are mostly pointless in all major jurisdictions - many big corporations and projects already don't use them - save
copyright: update all copyright lines and remove year ranges - they are mostly pointless in all major jurisdictions - many big corporations and projects already don't use them - saves us from pointless churn - git keeps history for us - the year range is kept in COPYING checksrc is updated to allow non-year using copyright statements Closes #10205
show more ...
|
#
ad9bc597 |
| 17-May-2022 |
max.mehl |
copyright: make repository REUSE compliant Add licensing and copyright information for all files in this repository. This either happens in the file itself as a comment header or in the
copyright: make repository REUSE compliant Add licensing and copyright information for all files in this repository. This either happens in the file itself as a comment header or in the file `.reuse/dep5`. This commit also adds a Github workflow to check pull requests and adapts copyright.pl to the changes. Closes #8869
show more ...
|
#
e7793cb5 |
| 25-Mar-2022 |
Daniel Stenberg |
curl/header_json: output the header names in lowercase To better allow json[“header”]. Reported-by: Peter Korsgaard Bug: https://daniel.haxx.se/blog/2022/03/24/easier-header-pic
curl/header_json: output the header names in lowercase To better allow json[“header”]. Reported-by: Peter Korsgaard Bug: https://daniel.haxx.se/blog/2022/03/24/easier-header-picking-with-curl/comment-page-1/#comment-25878 Closes #8633
show more ...
|
#
4133a69f |
| 17-Mar-2022 |
Daniel Stenberg |
curl: add %{header_json} support in -w handling Outputs all response headers as a JSON object.
|
Revision tags: curl-7_76_1, curl-7_76_0 |
|
#
85e69756 |
| 27-Mar-2021 |
Daniel Stenberg |
copyright: update copyright year ranges to 2021 Reviewed-by: Emil Engler Closes #6802
|
Revision tags: curl-7_75_0 |
|
#
65ca2294 |
| 28-Jan-2021 |
Jay Satiro |
tool_writeout: refactor write-out and write-out json - Deduplicate the logic used by write-out and write-out json. Rather than have separate writeLong, writeString, etc, logic for
tool_writeout: refactor write-out and write-out json - Deduplicate the logic used by write-out and write-out json. Rather than have separate writeLong, writeString, etc, logic for each of write-out and write-out json instead have respective shared functions that can output either format and a 'use_json' parameter to indicate whether it is json that is output. This will make it easier to maintain. Rather than have to go through two sets of logic now we only have to go through one. - Support write-out %{errormsg} and %{exitcode} in json. - Clarify in the doc that %{exitcode} is the exit code of the transfer. Prior to this change it just said "The numerical exitcode" which implies it's the exit code of the tool, and it's not necessarily that. Closes https://github.com/curl/curl/pull/6544
show more ...
|
#
8ab78f72 |
| 26-Dec-2020 |
Daniel Stenberg |
misc: fix "warning: empty expression statement has no effect" Turned several macros into do-while(0) style to allow their use to work find with semicolon. Bug: https://github.co
misc: fix "warning: empty expression statement has no effect" Turned several macros into do-while(0) style to allow their use to work find with semicolon. Bug: https://github.com/curl/curl/commit/08e8455dddc5e48e58a12ade3815c01ae3da3b64#commitcomment-45433279 Follow-up to 08e8455dddc5e4 Reported-by: Gisle Vanem Closes #6376
show more ...
|
Revision tags: curl-7_74_0 |
|
#
4d2f8006 |
| 04-Nov-2020 |
Daniel Stenberg |
curl.se: new home Closes #6172
|
Revision tags: curl-7_73_0 |
|
#
0c1e767e |
| 09-Sep-2020 |
anio |
tool_writeout: add new writeout variable, %{num_headers} This variable gives the number of headers. Closes #5947
|
Revision tags: tiny-curl-7_72_0, curl-7_72_0, curl-7_71_1, curl-7_71_0, curl-7_70_0 |
|
#
884de1a7 |
| 26-Mar-2020 |
Michael Kaufmann |
writeout_json: Fix data type issues Load long values correctly (e.g. for http_code). Use curl_off_t (not long) for: - size_download (CURLINFO_SIZE_DOWNLOAD_T) - size_upload
writeout_json: Fix data type issues Load long values correctly (e.g. for http_code). Use curl_off_t (not long) for: - size_download (CURLINFO_SIZE_DOWNLOAD_T) - size_upload (CURLINFO_SIZE_UPLOAD_T) The unit for these values is bytes/second, not microseconds: - speed_download (CURLINFO_SPEED_DOWNLOAD_T) - speed_upload (CURLINFO_SPEED_UPLOAD_T) Fixes #5131 Closes #5152
show more ...
|
#
8d9802b0 |
| 17-Mar-2020 |
Daniel Stenberg |
writeout_json: use curl_off_t printf() option for the time output Follow-up to: 04c03416e68fd635a15 Closes #5115
|
#
ab9dc5ae |
| 17-Mar-2020 |
Daniel Stenberg |
writeout_json: add missing comma to fix the HTTP version Follow-up to 04c03416e68fd635a15
|
Revision tags: curl-7_69_1, curl-7_69_0 |
|
#
04c03416 |
| 01-Feb-2020 |
Mathias Gumz |
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 m
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
show more ...
|