summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--desktop/browser.c1
-rwxr-xr-xfrontends/amiga/misc.c2
-rw-r--r--frontends/atari/file.c4
-rw-r--r--frontends/beos/gui.cpp13
-rw-r--r--frontends/riscos/download.c10
-rw-r--r--frontends/riscos/gui.c4
-rw-r--r--frontends/windows/download.c4
-rw-r--r--frontends/windows/file.c4
-rw-r--r--frontends/windows/findfile.c3
-rw-r--r--test/Makefile2
-rw-r--r--test/llcache.c14
-rw-r--r--test/urldbtest.c2
-rw-r--r--utils/file.c4
-rw-r--r--utils/url.c4
-rw-r--r--utils/url.h5
15 files changed, 39 insertions, 37 deletions
diff --git a/desktop/browser.c b/desktop/browser.c
index 453db2f39..5f99a845b 100644
--- a/desktop/browser.c
+++ b/desktop/browser.c
@@ -59,7 +59,6 @@
#include "render/form_internal.h"
#include "render/html.h"
#include "render/box.h"
-#include "curl/curl.h"
#include "javascript/js.h"
#include "desktop/browser_history.h"
diff --git a/frontends/amiga/misc.c b/frontends/amiga/misc.c
index 1fc037332..39a4bbf88 100755
--- a/frontends/amiga/misc.c
+++ b/frontends/amiga/misc.c
@@ -217,7 +217,7 @@ static nserror amiga_nsurl_to_path(struct nsurl *url, char **path_out)
return NSERROR_BAD_PARAMETER;
}
- res = url_unescape(lwc_string_data(urlpath) + 1, &path);
+ res = url_unescape(lwc_string_data(urlpath) + 1, 0, &path);
lwc_string_unref(urlpath);
if (res != NSERROR_OK) {
return res;
diff --git a/frontends/atari/file.c b/frontends/atari/file.c
index 499edd627..7bc11dabc 100644
--- a/frontends/atari/file.c
+++ b/frontends/atari/file.c
@@ -138,7 +138,9 @@ static nserror atari_nsurl_to_path(struct nsurl *url, char **path_out)
return NSERROR_BAD_PARAMETER;
}
- res = url_unescape(lwc_string_data(urlpath), &path);
+ res = url_unescape(lwc_string_data(urlpath),
+ lwc_string_length(urlpath),
+ &path);
lwc_string_unref(urlpath);
if (res != NSERROR_OK) {
return res;
diff --git a/frontends/beos/gui.cpp b/frontends/beos/gui.cpp
index 93b304a5c..53387ad07 100644
--- a/frontends/beos/gui.cpp
+++ b/frontends/beos/gui.cpp
@@ -30,7 +30,6 @@
#include <sys/select.h>
#include <sys/stat.h>
#include <sys/types.h>
-#include <curl/curl.h>
#include <Alert.h>
#include <Application.h>
@@ -795,12 +794,14 @@ static void gui_quit(void)
static char *url_to_path(const char *url)
{
- char *url_path = curl_unescape(url, 0);
- char *path;
+ char *url_path;
+ char *path = NULL;
- /* return the absolute path including leading / */
- path = strdup(url_path + (FILE_SCHEME_PREFIX_LEN - 1));
- curl_free(url_path);
+ if (url_unescape(url, 0, &url_path) == NSERROR_OK) {
+ /* return the absolute path including leading / */
+ path = strdup(url_path + (FILE_SCHEME_PREFIX_LEN - 1));
+ free(url_path);
+ }
return path;
}
diff --git a/frontends/riscos/download.c b/frontends/riscos/download.c
index 7dd61b7b4..1a0249e20 100644
--- a/frontends/riscos/download.c
+++ b/frontends/riscos/download.c
@@ -33,7 +33,6 @@
#include <assert.h>
#include <string.h>
#include <time.h>
-#include <curl/curl.h>
#include <libwapcaplet/libwapcaplet.h>
#include "oslib/mimemap.h"
@@ -53,6 +52,7 @@
#include "utils/utf8.h"
#include "utils/utils.h"
#include "utils/string.h"
+#include "utils/url.h"
#include "utils/corestrings.h"
#include "netsurf/download.h"
#include "desktop/download.h"
@@ -239,11 +239,11 @@ static nserror download_ro_filetype(download_context *ctx, bits *ftype_out)
lwc_string *path = nsurl_get_component(url, NSURL_PATH);
if (path != NULL && lwc_string_length(path) != 0) {
char *raw_path;
- raw_path = curl_unescape(lwc_string_data(path),
- lwc_string_length(path));
- if (raw_path != NULL) {
+ if (url_unescape(lwc_string_data(path),
+ lwc_string_length(path),
+ &raw_path) == NSERROR_OK) {
ftype = ro_filetype_from_unix_path(raw_path);
- curl_free(raw_path);
+ free(raw_path);
}
}
}
diff --git a/frontends/riscos/gui.c b/frontends/riscos/gui.c
index 2b369ec8c..f55392f99 100644
--- a/frontends/riscos/gui.c
+++ b/frontends/riscos/gui.c
@@ -1513,7 +1513,9 @@ static nserror ro_nsurl_to_path(struct nsurl *url, char **path_out)
return NSERROR_BAD_PARAMETER;
}
- res = url_unescape(lwc_string_data(urlpath), &unpath);
+ res = url_unescape(lwc_string_data(urlpath),
+ lwc_string_length(urlpath),
+ &unpath);
lwc_string_unref(urlpath);
if (res != NSERROR_OK) {
return res;
diff --git a/frontends/windows/download.c b/frontends/windows/download.c
index f1a02870c..9c8cefa8d 100644
--- a/frontends/windows/download.c
+++ b/frontends/windows/download.c
@@ -17,9 +17,7 @@
*/
#include <limits.h>
-
-#include "utils/config.h"
-
+#include "utils/inet.h" /* get correct winsock ordering */
#include <shlobj.h>
#include <windows.h>
diff --git a/frontends/windows/file.c b/frontends/windows/file.c
index 5c5b1f061..7583790e9 100644
--- a/frontends/windows/file.c
+++ b/frontends/windows/file.c
@@ -141,7 +141,9 @@ static nserror windows_nsurl_to_path(struct nsurl *url, char **path_out)
return NSERROR_BAD_PARAMETER;
}
- res = url_unescape(lwc_string_data(urlpath), &path);
+ res = url_unescape(lwc_string_data(urlpath),
+ lwc_string_length(urlpath),
+ &path);
lwc_string_unref(urlpath);
if (res != NSERROR_OK) {
return res;
diff --git a/frontends/windows/findfile.c b/frontends/windows/findfile.c
index 8c8906a80..e1c9595eb 100644
--- a/frontends/windows/findfile.c
+++ b/frontends/windows/findfile.c
@@ -27,9 +27,6 @@
#include <stdlib.h>
#include <string.h>
-
-#include <curl/curl.h>
-
#include "utils/log.h"
#include "utils/url.h"
#include "utils/utils.h"
diff --git a/test/Makefile b/test/Makefile
index 66b8aa78e..9fdb3f210 100644
--- a/test/Makefile
+++ b/test/Makefile
@@ -80,7 +80,7 @@ TESTCFLAGS := -std=c99 -g -Wall \
-D_BSD_SOURCE \
-D_POSIX_C_SOURCE=200809L \
-D_XOPEN_SOURCE=600 \
- -Itest -Iinclude -Ifrontends -I. -I.. \
+ -Itest -Iinclude -Icontent/handlers -Ifrontends -I. -I.. \
-Dnsgtk \
$(shell pkg-config --cflags libcurl libparserutils libwapcaplet libdom libnsutils libutf8proc libidn) \
$(LIB_CFLAGS) \
diff --git a/test/llcache.c b/test/llcache.c
index 850f0608c..df51386a5 100644
--- a/test/llcache.c
+++ b/test/llcache.c
@@ -20,8 +20,6 @@
#include <stdlib.h>
#include <string.h>
-#include <curl/curl.h>
-
#include "content/fetch.h"
#include "content/llcache.h"
#include "utils/ring.h"
@@ -94,12 +92,14 @@ char *path_to_url(const char *path)
/* utils/url.h */
char *url_to_path(const char *url)
{
- char *url_path = curl_unescape(url, 0);
- char *path;
+ char *url_path;
+ char *path = NULL;
- /* return the absolute path including leading / */
- path = strdup(url_path + (FILE_SCHEME_PREFIX_LEN - 1));
- curl_free(url_path);
+ if (url_unescape(url, 0, &url_path) == NSERROR_OK) {
+ /* return the absolute path including leading / */
+ path = strdup(url_path + (FILE_SCHEME_PREFIX_LEN - 1));
+ free(url_path);
+ }
return path;
}
diff --git a/test/urldbtest.c b/test/urldbtest.c
index 2d14c0fbb..338ce1f66 100644
--- a/test/urldbtest.c
+++ b/test/urldbtest.c
@@ -27,8 +27,6 @@
#include <strings.h>
#include <time.h>
-#include <curl/curl.h>
-
#include "utils/errors.h"
#include "utils/nsurl.h"
#include "netsurf/bitmap.h"
diff --git a/utils/file.c b/utils/file.c
index 888811004..6224d1c3c 100644
--- a/utils/file.c
+++ b/utils/file.c
@@ -136,7 +136,9 @@ static nserror posix_nsurl_to_path(struct nsurl *url, char **path_out)
return NSERROR_BAD_PARAMETER;
}
- res = url_unescape(lwc_string_data(urlpath), &path);
+ res = url_unescape(lwc_string_data(urlpath),
+ lwc_string_length(urlpath),
+ &path);
lwc_string_unref(urlpath);
if (res != NSERROR_OK) {
return res;
diff --git a/utils/url.c b/utils/url.c
index 1e3ef423c..4fcbccd1a 100644
--- a/utils/url.c
+++ b/utils/url.c
@@ -33,12 +33,12 @@
/* exported interface documented in utils/url.h */
-nserror url_unescape(const char *str, char **result)
+nserror url_unescape(const char *str, int length, char **result)
{
char *curlstr;
char *retstr;
- curlstr = curl_unescape(str, 0);
+ curlstr = curl_unescape(str, length);
if (curlstr == NULL) {
return NSERROR_NOMEM;
}
diff --git a/utils/url.h b/utils/url.h
index aafdf1e15..94579e39e 100644
--- a/utils/url.h
+++ b/utils/url.h
@@ -46,9 +46,10 @@ nserror url_escape(const char *unescaped, size_t toskip, bool sptoplus,
* Convert an escaped string to plain.
*
* \param[in] str String to unescape.
+ * \parm[in] length Length of string or 0 to use strlen
* \param[out] result unescaped string owned by caller must be freed with free()
- * \return NSERROR_OK on success
+ * \return NSERROR_OK on success
*/
-nserror url_unescape(const char *str, char **result);
+nserror url_unescape(const char *str, int length, char **result);
#endif