diff options
author | James Bursa <james@netsurf-browser.org> | 2004-03-11 02:19:14 +0000 |
---|---|---|
committer | James Bursa <james@netsurf-browser.org> | 2004-03-11 02:19:14 +0000 |
commit | fba46de9cbe8778919f68a7d24e242c7ee3f1331 (patch) | |
tree | 8fb266a75da3b79c2a2285d0d9e6fb8b8e9d8f91 /render/html.c | |
parent | 24da56f25d8986484d2294d8ada3348acf12c0b1 (diff) | |
download | netsurf-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.c | 20 |
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) |