summaryrefslogtreecommitdiff
path: root/css/select.c
diff options
context:
space:
mode:
authorMichael Drake <tlsa@netsurf-browser.org>2011-10-05 20:22:56 +0000
committerMichael Drake <tlsa@netsurf-browser.org>2011-10-05 20:22:56 +0000
commit201dcddff8cd53f83ac1ff3b2957fdf0bbfa5582 (patch)
treebeabc015f9f5ee2065e69fd59d6470b836c7378e /css/select.c
parent1203c4baf2b7dc5821fde7b87b7e6c374b740947 (diff)
downloadnetsurf-201dcddff8cd53f83ac1ff3b2957fdf0bbfa5582.tar.gz
netsurf-201dcddff8cd53f83ac1ff3b2957fdf0bbfa5582.tar.bz2
Port disabled :visited support to nsurl.
svn path=/trunk/netsurf/; revision=12961
Diffstat (limited to 'css/select.c')
-rw-r--r--css/select.c36
1 files changed, 13 insertions, 23 deletions
diff --git a/css/select.c b/css/select.c
index 1ec675e1f..a192078bc 100644
--- a/css/select.c
+++ b/css/select.c
@@ -1418,41 +1418,31 @@ css_error node_is_visited(void *pw, void *node, bool *match)
xmlNode *n = node;
if (strcasecmp((const char *) n->name, "a") == 0) {
- char *url, *nurl;
- url_func_result res;
+ nsurl *url;
+ nserror error;
+ const struct url_data *data;
xmlChar *href = xmlGetProp(n, (const xmlChar *) "href");
if (href == NULL)
return CSS_OK;
/* Make href absolute */
- res = url_join((const char *) href, ctx->base_url, &url);
+ /* TODO: this duplicates what we do for box->href */
+ error = nsurl_join(ctx->base_url, (const char *)href, &url);
xmlFree(href);
-
- if (res == URL_FUNC_NOMEM) {
+ if (error != NSERROR_OK) {
return CSS_NOMEM;
- } else if (res == URL_FUNC_OK) {
- /* Normalize it */
- res = url_normalize(url, &nurl);
-
- free(url);
-
- if (res == URL_FUNC_NOMEM) {
- return CSS_NOMEM;
- } else if (res == URL_FUNC_OK) {
- const struct url_data *data;
+ }
- data = urldb_get_url_data(nurl);
+ data = urldb_get_url_data(nsurl_access(url));
- /* Visited if in the db and has
- * non-zero visit count */
- if (data != NULL && data->visits > 0)
- *match = true;
+ /* Visited if in the db and has
+ * non-zero visit count */
+ if (data != NULL && data->visits > 0)
+ *match = true;
- free(nurl);
- }
- }
+ nsurl_unref(url);
}
#endif