summaryrefslogtreecommitdiff
path: root/render/html.c
diff options
context:
space:
mode:
authorJames Bursa <james@netsurf-browser.org>2004-03-11 02:19:14 +0000
committerJames Bursa <james@netsurf-browser.org>2004-03-11 02:19:14 +0000
commitfba46de9cbe8778919f68a7d24e242c7ee3f1331 (patch)
tree8fb266a75da3b79c2a2285d0d9e6fb8b8e9d8f91 /render/html.c
parent24da56f25d8986484d2294d8ada3348acf12c0b1 (diff)
downloadnetsurf-fba46de9cbe8778919f68a7d24e242c7ee3f1331.tar.gz
netsurf-fba46de9cbe8778919f68a7d24e242c7ee3f1331.tar.bz2
[project @ 2004-03-11 02:19:13 by bursa]
Add source_data to content structure and remove equivalents from individual contents. svn path=/import/netsurf/; revision=606
Diffstat (limited to 'render/html.c')
-rw-r--r--render/html.c20
1 files changed, 6 insertions, 14 deletions
diff --git a/render/html.c b/render/html.c
index aaf0c4bf6..5a6d4dd0c 100644
--- a/render/html.c
+++ b/render/html.c
@@ -69,8 +69,6 @@ void html_create(struct content *c, const char *params[])
}
html->parser = htmlCreatePushParserCtxt(0, 0, "", 0, 0, html->encoding);
- html->source = xcalloc(0, 1);
- html->length = 0;
html->base_url = xstrdup(c->url);
html->layout = 0;
html->background_colour = TRANSPARENT;
@@ -98,21 +96,16 @@ void html_process_data(struct content *c, char *data, unsigned long size)
unsigned long x;
LOG(("content %s, size %lu", c->url, size));
/*cache_dump();*/
- c->data.html.source = xrealloc(c->data.html.source, c->data.html.length + size);
- memcpy(c->data.html.source + c->data.html.length, data, size);
- c->data.html.length += size;
- c->size += size;
- /* First time through, check if we need to get the encoding
+ /* First time through, check if we need to get the encoding
* if so, get it and reset the parser instance with it.
* if it fails, assume Latin1
*/
if (c->data.html.getenc) {
- c->data.html.encoding = xmlDetectCharEncoding(c->data.html.source, c->data.html.length);
- if (c->data.html.encoding == XML_CHAR_ENCODING_ERROR ||
- c->data.html.encoding == XML_CHAR_ENCODING_NONE) {
- c->data.html.encoding = XML_CHAR_ENCODING_8859_1;
- }
- xmlSwitchEncoding((xmlParserCtxtPtr)c->data.html.parser, c->data.html.encoding);
+ c->data.html.encoding = xmlDetectCharEncoding(data, size);
+ if (c->data.html.encoding == XML_CHAR_ENCODING_ERROR ||
+ c->data.html.encoding == XML_CHAR_ENCODING_NONE)
+ c->data.html.encoding = XML_CHAR_ENCODING_8859_1;
+ xmlSwitchEncoding(c->data.html.parser, c->data.html.encoding);
c->data.html.getenc = false;
LOG(("Encoding: %s", xmlGetCharEncodingName(c->data.html.encoding)));
}
@@ -758,7 +751,6 @@ void html_destroy(struct content *c)
if (c->data.html.parser)
htmlFreeParserCtxt(c->data.html.parser);
- free(c->data.html.source);
free(c->data.html.base_url);
if (c->data.html.layout)