From 2077918805c175ecefeb25dd38f78d2d5b3a3ca2 Mon Sep 17 00:00:00 2001 From: John Mark Bell Date: Thu, 9 Sep 2010 21:45:59 +0000 Subject: Merge branches/vince/netsurf-file-fetcher to trunk r=jmb svn path=/trunk/netsurf/; revision=10750 --- utils/url.c | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) (limited to 'utils/url.c') 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. -- cgit v1.2.3