diff options
author | Michael Drake <tlsa@netsurf-browser.org> | 2011-10-03 15:56:47 +0000 |
---|---|---|
committer | Michael Drake <tlsa@netsurf-browser.org> | 2011-10-03 15:56:47 +0000 |
commit | 36eff6da2bfe5b183c2b4876bb2afe9dedec9b39 (patch) | |
tree | 6cc96c71499d22745947113db5c6fc118c286d1f /css/internal.c | |
parent | a595d7c4bbe44f7de6c565a4fbbdcff735f0ce99 (diff) | |
download | netsurf-36eff6da2bfe5b183c2b4876bb2afe9dedec9b39.tar.gz netsurf-36eff6da2bfe5b183c2b4876bb2afe9dedec9b39.tar.bz2 |
Port more internals to nsurl. Front ends may need updating.
svn path=/trunk/netsurf/; revision=12926
Diffstat (limited to 'css/internal.c')
-rw-r--r-- | css/internal.c | 35 |
1 files changed, 19 insertions, 16 deletions
diff --git a/css/internal.c b/css/internal.c index 4c80e639e..bf9e1844f 100644 --- a/css/internal.c +++ b/css/internal.c @@ -20,7 +20,7 @@ #include "css/internal.h" -#include "utils/url.h" +#include "utils/nsurl.h" /** * URL resolution callback for libcss @@ -37,33 +37,36 @@ css_error nscss_resolve_url(void *pw, const char *base, lwc_string *rel, lwc_string **abs) { lwc_error lerror; - char *abs_url, *norm_url; - url_func_result res; + nserror error; + nsurl *nsbase; + nsurl *nsabs; - /* Resolve URI */ - res = url_join(lwc_string_data(rel), base, &abs_url); - if (res != URL_FUNC_OK) { - return res == URL_FUNC_NOMEM ? CSS_NOMEM : CSS_INVALID; + /* Create nsurl from base */ + /* TODO: avoid this */ + error = nsurl_create(base, &nsbase); + if (error != NSERROR_OK) { + return error == NSERROR_NOMEM ? CSS_NOMEM : CSS_INVALID; } - /* Normalise it */ - res = url_normalize(abs_url, &norm_url); - if (res != URL_FUNC_OK) { - free(abs_url); - return res == URL_FUNC_NOMEM ? CSS_NOMEM : CSS_INVALID; + /* Resolve URI */ + error = nsurl_join(nsbase, lwc_string_data(rel), &nsabs); + if (error != NSERROR_OK) { + nsurl_unref(nsbase); + return error == NSERROR_NOMEM ? CSS_NOMEM : CSS_INVALID; } - free(abs_url); + nsurl_unref(nsbase); /* Intern it */ - lerror = lwc_intern_string(norm_url, strlen(norm_url), abs); + lerror = lwc_intern_string(nsurl_access(nsabs), + strlen(nsurl_access(nsabs)), abs); if (lerror != lwc_error_ok) { *abs = NULL; - free(norm_url); + nsurl_unref(nsabs); return lerror == lwc_error_oom ? CSS_NOMEM : CSS_INVALID; } - free(norm_url); + nsurl_unref(nsabs); return CSS_OK; } |