diff options
author | John Mark Bell <jmb@netsurf-browser.org> | 2010-09-09 21:45:59 +0000 |
---|---|---|
committer | John Mark Bell <jmb@netsurf-browser.org> | 2010-09-09 21:45:59 +0000 |
commit | 2077918805c175ecefeb25dd38f78d2d5b3a3ca2 (patch) | |
tree | 73fd0d27d042d97aa9fe67032697bd21f8deee9a /utils/url.c | |
parent | b9773d34bb523d3bac09f328900e60b02feea97b (diff) | |
download | netsurf-2077918805c175ecefeb25dd38f78d2d5b3a3ca2.tar.gz netsurf-2077918805c175ecefeb25dd38f78d2d5b3a3ca2.tar.bz2 |
Merge branches/vince/netsurf-file-fetcher to trunk
r=jmb
svn path=/trunk/netsurf/; revision=10750
Diffstat (limited to 'utils/url.c')
-rw-r--r-- | utils/url.c | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/utils/url.c b/utils/url.c index 5cb7305e8..cd731c97c 100644 --- a/utils/url.c +++ b/utils/url.c @@ -902,6 +902,31 @@ no_path: return URL_FUNC_FAILED; } +/** + * Convert an escaped string to plain. + * \param result unescaped string owned by caller must be freed with free() + * \return URL_FUNC_OK on success + */ +url_func_result url_unescape(const char *str, char **result) +{ + char *curlstr; + char *retstr; + + curlstr = curl_unescape(str, 0); + if (curlstr == NULL) { + return URL_FUNC_NOMEM; + } + + retstr = strdup(curlstr); + curl_free(curlstr); + + if (retstr == NULL) { + return URL_FUNC_NOMEM; + } + + *result = retstr; + return URL_FUNC_OK; +} /** * Escape a string suitable for inclusion in an URL. |