From 63b6455f7365507ce502369b738ecc09e54e25ed Mon Sep 17 00:00:00 2001 From: James Bursa Date: Sun, 13 Apr 2003 12:50:10 +0000 Subject: [project @ 2003-04-13 12:50:10 by bursa] style element, CSS fixes, id selectors. svn path=/import/netsurf/; revision=124 --- render/html.c | 100 ++++++++++++++++++++++++++++++++++++++++------------------ 1 file changed, 69 insertions(+), 31 deletions(-) (limited to 'render/html.c') diff --git a/render/html.c b/render/html.c index f3f547e88..9b38b7378 100644 --- a/render/html.c +++ b/render/html.c @@ -1,5 +1,5 @@ /** - * $Id: html.c,v 1.13 2003/04/11 21:06:51 bursa Exp $ + * $Id: html.c,v 1.14 2003/04/13 12:50:10 bursa Exp $ */ #include @@ -91,22 +91,10 @@ int html_convert(struct content *c, unsigned int width, unsigned int height) html_title(c, head); /* get stylesheets */ - html_find_stylesheets(c, head); - c->data.html.stylesheet_content = xcalloc(c->data.html.stylesheet_count, - sizeof(*c->data.html.stylesheet_content)); - c->error = 0; c->active = 0; - for (i = 0; i != c->data.html.stylesheet_count; i++) { - fetch_data = xcalloc(1, sizeof(*fetch_data)); - fetch_data->c = c; - fetch_data->i = i; - c->active++; - fetchcache(c->data.html.stylesheet_url[i], c->url, - html_convert_css_callback, - fetch_data, width, height, 1 << CONTENT_CSS); - } + html_find_stylesheets(c, head); while (c->active != 0) { if (c->status_callback != 0) { @@ -142,12 +130,11 @@ int html_convert(struct content *c, unsigned int width, unsigned int height) xmlFreeDoc(document); cache_free(c->data.html.stylesheet_content[0]); - for (i = 1; i != c->data.html.stylesheet_count; i++) { + if (c->data.html.stylesheet_content[1] != 0) + content_destroy(c->data.html.stylesheet_content[1]); + for (i = 2; i != c->data.html.stylesheet_count; i++) if (c->data.html.stylesheet_content[i] != 0) cache_free(c->data.html.stylesheet_content[i]); - xfree(c->data.html.stylesheet_url[i]); - } - xfree(c->data.html.stylesheet_url); xfree(c->data.html.stylesheet_content); c->status_callback(c->status_p, "Formatting document"); @@ -171,7 +158,7 @@ void html_convert_css_callback(fetchcache_msg msg, struct content *css, switch (msg) { case FETCHCACHE_OK: free(data); - LOG(("got stylesheet '%s'", c->data.html.stylesheet_url[i])); + LOG(("got stylesheet '%s'", css->url)); c->data.html.stylesheet_content[i] = css; /*css_dump_stylesheet(css->data.css);*/ c->active--; @@ -214,12 +201,22 @@ void html_title(struct content *c, xmlNode *head) void html_find_stylesheets(struct content *c, xmlNode *head) { xmlNode *node; - char *rel, *type, *media, *href; - unsigned int count = 1; + char *rel, *type, *media, *href, *data, *url; + unsigned int i = 2; + struct fetch_data *fetch_data; + + /* stylesheet 0 is the base style sheet, stylesheet 1 is any