summaryrefslogtreecommitdiff
path: root/render/html.c
diff options
context:
space:
mode:
authorJohn Mark Bell <jmb@netsurf-browser.org>2006-01-28 16:01:19 +0000
committerJohn Mark Bell <jmb@netsurf-browser.org>2006-01-28 16:01:19 +0000
commitb9de635dab672a829a298b95154cc42095b4411e (patch)
treecff47f5455c1a7eb0aa5800b2b01ad27afb0e34c /render/html.c
parent8fc96b98625c196cc6ffc4d616e40cd343aa84b5 (diff)
downloadnetsurf-b9de635dab672a829a298b95154cc42095b4411e.tar.gz
netsurf-b9de635dab672a829a298b95154cc42095b4411e.tar.bz2
[project @ 2006-01-28 16:01:19 by jmb]
Fix meta-refresh implementation svn path=/import/netsurf/; revision=2049
Diffstat (limited to 'render/html.c')
-rw-r--r--render/html.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/render/html.c b/render/html.c
index cfcb789ea..0290dd2a6 100644
--- a/render/html.c
+++ b/render/html.c
@@ -372,6 +372,8 @@ bool html_convert(struct content *c, int width, int height)
/**
* Search for meta refresh
*
+ * http://wp.netscape.com/assist/net_sites/pushpull.html
+ *
* \param c content structure
* \param head xml node of head element
* \return true on success, false otherwise (error reported)
@@ -411,6 +413,22 @@ bool html_meta_refresh(struct content *c, xmlNode *head)
msg_data.delay = (int)strtol((char *) content, &url, 10);
+ if (url == end) {
+ /* Just delay specified, so refresh current page */
+ xmlFree(content);
+
+ c->refresh = talloc_strdup(c, c->url);
+ if (!c->refresh) {
+ msg_data.error = messages_get("NoMemory");
+ content_broadcast(c,
+ CONTENT_MSG_ERROR, msg_data);
+ return false;
+ }
+
+ content_broadcast(c, CONTENT_MSG_REFRESH, msg_data);
+ break;
+ }
+
for ( ; url <= end - 4; url++) {
if (!strncasecmp(url, "url=", 4))
break;