summaryrefslogtreecommitdiff
path: root/render
diff options
context:
space:
mode:
authorMichael Drake <tlsa@netsurf-browser.org>2016-01-21 14:09:57 +0000
committerMichael Drake <tlsa@netsurf-browser.org>2016-01-21 14:09:57 +0000
commit3dcf7d80a140d5c02a56423dbc3575bbdf51ff82 (patch)
treef93222049f2acd3eace968a33e6e435af8aa907b /render
parentad273a41e894adea3dfb5e66ecb40574be2d7485 (diff)
downloadnetsurf-3dcf7d80a140d5c02a56423dbc3575bbdf51ff82.tar.gz
netsurf-3dcf7d80a140d5c02a56423dbc3575bbdf51ff82.tar.bz2
Pass html_content to box_extract_link.
Diffstat (limited to 'render')
-rw-r--r--render/box.h3
-rw-r--r--render/box_construct.c23
-rw-r--r--render/imagemap.c7
3 files changed, 18 insertions, 15 deletions
diff --git a/render/box.h b/render/box.h
index 5501f88c8..1f35adad9 100644
--- a/render/box.h
+++ b/render/box.h
@@ -334,7 +334,8 @@ struct box *box_pick_text_box(struct html_content *html,
struct box *box_find_by_id(struct box *box, lwc_string *id);
bool box_visible(struct box *box);
void box_dump(FILE *stream, struct box *box, unsigned int depth, bool style);
-bool box_extract_link(const char *rel, struct nsurl *base, struct nsurl **result);
+bool box_extract_link(const struct html_content *content,
+ const char *rel, struct nsurl *base, struct nsurl **result);
bool box_handle_scrollbars(struct content *c, struct box *box,
bool bottom, bool right);
diff --git a/render/box_construct.c b/render/box_construct.c
index 2ad5eb26c..ad39684a1 100644
--- a/render/box_construct.c
+++ b/render/box_construct.c
@@ -1476,7 +1476,7 @@ bool box_a(BOX_SPECIAL_PARAMS)
err = dom_element_get_attribute(n, corestring_dom_href, &s);
if (err == DOM_NO_ERR && s != NULL) {
- ok = box_extract_link(dom_string_data(s),
+ ok = box_extract_link(content, dom_string_data(s),
content->base_url, &url);
dom_string_unref(s);
if (!ok)
@@ -1590,7 +1590,7 @@ bool box_image(BOX_SPECIAL_PARAMS)
if (err != DOM_NO_ERR || s == NULL)
return true;
- if (box_extract_link(dom_string_data(s), content->base_url,
+ if (box_extract_link(content, dom_string_data(s), content->base_url,
&url) == false) {
dom_string_unref(s);
return false;
@@ -1691,7 +1691,7 @@ bool box_object(BOX_SPECIAL_PARAMS)
* (codebase is the base for the other two) */
err = dom_element_get_attribute(n, corestring_dom_codebase, &codebase);
if (err == DOM_NO_ERR && codebase != NULL) {
- if (box_extract_link(dom_string_data(codebase),
+ if (box_extract_link(content, dom_string_data(codebase),
content->base_url,
&params->codebase) == false) {
dom_string_unref(codebase);
@@ -1704,8 +1704,8 @@ bool box_object(BOX_SPECIAL_PARAMS)
err = dom_element_get_attribute(n, corestring_dom_classid, &classid);
if (err == DOM_NO_ERR && classid != NULL) {
- if (box_extract_link(dom_string_data(classid), params->codebase,
- &params->classid) == false) {
+ if (box_extract_link(content, dom_string_data(classid),
+ params->codebase, &params->classid) == false) {
dom_string_unref(classid);
return false;
}
@@ -1714,8 +1714,8 @@ bool box_object(BOX_SPECIAL_PARAMS)
err = dom_element_get_attribute(n, corestring_dom_data, &data);
if (err == DOM_NO_ERR && data != NULL) {
- if (box_extract_link(dom_string_data(data), params->codebase,
- &params->data) == false) {
+ if (box_extract_link(content, dom_string_data(data),
+ params->codebase, &params->data) == false) {
dom_string_unref(data);
return false;
}
@@ -2134,7 +2134,7 @@ bool box_create_frameset(struct content_html_frames *f, dom_node *n,
url = NULL;
err = dom_element_get_attribute(c, corestring_dom_src, &s);
if (err == DOM_NO_ERR && s != NULL) {
- box_extract_link(dom_string_data(s),
+ box_extract_link(content, dom_string_data(s),
content->base_url, &url);
dom_string_unref(s);
}
@@ -2270,7 +2270,7 @@ bool box_iframe(BOX_SPECIAL_PARAMS)
err = dom_element_get_attribute(n, corestring_dom_src, &s);
if (err != DOM_NO_ERR || s == NULL)
return true;
- if (box_extract_link(dom_string_data(s), content->base_url,
+ if (box_extract_link(content, dom_string_data(s), content->base_url,
&url) == false) {
dom_string_unref(s);
return false;
@@ -2843,7 +2843,7 @@ bool box_embed(BOX_SPECIAL_PARAMS)
err = dom_element_get_attribute(n, corestring_dom_src, &src);
if (err != DOM_NO_ERR || src == NULL)
return true;
- if (box_extract_link(dom_string_data(src), content->base_url,
+ if (box_extract_link(content, dom_string_data(src), content->base_url,
&params->data) == false) {
dom_string_unref(src);
return false;
@@ -2996,7 +2996,8 @@ bool box_get_attribute(dom_node *n, const char *attribute,
* \return true on success, false on memory exhaustion
*/
-bool box_extract_link(const char *rel, nsurl *base, nsurl **result)
+bool box_extract_link(const html_content *content,
+ const char *rel, nsurl *base, nsurl **result)
{
char *s, *s1, *apos0 = 0, *apos1 = 0, *quot0 = 0, *quot1 = 0;
unsigned int i, j, end;
diff --git a/render/imagemap.c b/render/imagemap.c
index 2e84bd0cf..b1cb8241c 100644
--- a/render/imagemap.c
+++ b/render/imagemap.c
@@ -274,6 +274,7 @@ void imagemap_dump(html_content *c)
/**
* Adds an imagemap entry to the list
*
+ * \param c The html content that the imagemap belongs to
* \param n The xmlNode representing the entry to add
* \param base_url Base URL for resolving relative URLs
* \param entry Pointer to list of entries
@@ -281,7 +282,7 @@ void imagemap_dump(html_content *c)
* \return false on memory exhaustion, true otherwise
*/
static bool
-imagemap_addtolist(dom_node *n, nsurl *base_url,
+imagemap_addtolist(const struct html_content *c, dom_node *n, nsurl *base_url,
struct mapentry **entry, dom_string *tagtype)
{
dom_exception exc;
@@ -346,7 +347,7 @@ imagemap_addtolist(dom_node *n, nsurl *base_url,
else
goto bad_out;
- if (box_extract_link(dom_string_data(href),
+ if (box_extract_link(c, dom_string_data(href),
base_url, &new_map->url) == false)
goto bad_out;
@@ -537,7 +538,7 @@ imagemap_extract_map_entries(dom_node *node, html_content *c,
dom_nodelist_unref(nlist);
return false;
}
- if (imagemap_addtolist(subnode, c->base_url,
+ if (imagemap_addtolist(c, subnode, c->base_url,
entry, tname) == false) {
dom_node_unref(subnode);
dom_nodelist_unref(nlist);