'What is the first parameter of curl_easy_escape for?
The curl_easy_escape
function of curl takes a CURL*
as its first parameter, as curl’s documentation indicates:
char *curl_easy_escape(CURL *curl, const char *string, int length);
↑
I don’t understand what this parameter is used for, since escaping a URL shouldn’t need a curl handle. In fact, curl’s source code ignores this parameter.
Is it safe to simply use NULL
for this parameter if I need to escape an URL without having a curl handle beforehand, as the implementation of curl_escape
does?
Solution 1:[1]
It is for backward ABI compatibility. CURL *curl
was used 6 years ago: curl_easy_escape, Curl_convert_to_network.
It was always and is now safe to pass NULL
: curl_escape, curl_easy_escape.
The history is interesting. char *curl_unescape(const char *string, int length)
was the first function. Later char *curl_easy_escape(CURL *handle, const char *string, int inlength)
was introduced for supporting all extended ASCII charsets with help of iconv
. And finally curl_easy_escape
code was almost rollbacked to curl_unescape
and stopped using CURL *handle
.
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Source |
---|---|
Solution 1 |