diff options
Diffstat (limited to 'libsylph/html.c')
-rw-r--r-- | libsylph/html.c | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/libsylph/html.c b/libsylph/html.c index e61ea7cf..7799549a 100644 --- a/libsylph/html.c +++ b/libsylph/html.c @@ -621,16 +621,22 @@ static void html_get_parenthesis(HTMLParser *parser, gchar *buf, gint len) } if (!g_ascii_strncasecmp(parser->bufp, "<style", 6)) { parser->bufp += 6; - while ((p = strcasestr(parser->bufp, "</style>")) == NULL) + while ((p = strcasestr(parser->bufp, "</style")) == NULL) if (html_read_line(parser) == HTML_EOF) return; - parser->bufp = p + 8; + parser->bufp = p + 7; + while ((p = strchr(parser->bufp, '>')) == NULL) + if (html_read_line(parser) == HTML_EOF) return; + parser->bufp = p + 1; return; } if (!g_ascii_strncasecmp(parser->bufp, "<script", 7)) { parser->bufp += 7; - while ((p = strcasestr(parser->bufp, "</script>")) == NULL) + while ((p = strcasestr(parser->bufp, "</script")) == NULL) + if (html_read_line(parser) == HTML_EOF) return; + parser->bufp = p + 8; + while ((p = strchr(parser->bufp, '>')) == NULL) if (html_read_line(parser) == HTML_EOF) return; - parser->bufp = p + 9; + parser->bufp = p + 1; return; } |