summaryrefslogtreecommitdiff
path: root/render/html.c
diff options
context:
space:
mode:
authorJohn Mark Bell <jmb@netsurf-browser.org>2004-03-24 00:07:21 +0000
committerJohn Mark Bell <jmb@netsurf-browser.org>2004-03-24 00:07:21 +0000
commit9c723a5924ef5ef05d56b1addba42dafb3ca5c37 (patch)
tree7ca831a1119f68536259165dc740f9273af89ecc /render/html.c
parent2d42fc01f98cb053918f8a1cc23975e08b902614 (diff)
downloadnetsurf-9c723a5924ef5ef05d56b1addba42dafb3ca5c37.tar.gz
netsurf-9c723a5924ef5ef05d56b1addba42dafb3ca5c37.tar.bz2
[project @ 2004-03-24 00:07:21 by jmb]
Add URL rewriting for most URLs. Still TODO: 1) rewriting of @import rules 2) Objects used by embedded html pages NB. This change means that the XML parse tree is kept in memory until the content is freed. svn path=/import/netsurf/; revision=659
Diffstat (limited to 'render/html.c')
-rw-r--r--render/html.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/render/html.c b/render/html.c
index e028e523d..7e3fb834c 100644
--- a/render/html.c
+++ b/render/html.c
@@ -69,6 +69,7 @@ void html_create(struct content *c, const char *params[])
}
html->parser = htmlCreatePushParserCtxt(0, 0, "", 0, 0, html->encoding);
+ html->document = 0;
html->base_url = xstrdup(c->url);
html->layout = 0;
html->background_colour = TRANSPARENT;
@@ -139,7 +140,7 @@ int html_convert(struct content *c, unsigned int width, unsigned int height)
/* finish parsing */
htmlParseChunk(c->data.html.parser, "", 0, 1);
- document = c->data.html.parser->myDoc;
+ document = c->data.html.document = c->data.html.parser->myDoc;
/*xmlDebugDumpDocument(stderr, c->data.html.parser->myDoc);*/
htmlFreeParserCtxt(c->data.html.parser);
c->data.html.parser = 0;
@@ -181,7 +182,7 @@ int html_convert(struct content *c, unsigned int width, unsigned int height)
/*box_dump(c->data.html.layout->children, 0);*/
/* XML tree not required past this point */
- xmlFreeDoc(document);
+ //xmlFreeDoc(document);
/* layout the box tree */
sprintf(c->status_message, messages_get("Formatting"));
@@ -755,6 +756,9 @@ void html_destroy(struct content *c)
if (c->data.html.parser)
htmlFreeParserCtxt(c->data.html.parser);
+ if (c->data.html.document)
+ xmlFreeDoc(c->data.html.document);
+
free(c->data.html.base_url);
if (c->data.html.layout)