workaround broken links in html
[claws.git] / src / html.c
index f7b0ac42f1293781cc407f9204dac8454f2070ca..19cb52c843ff64ed81d4a04ebc5ac5fcd9a5e199 100644 (file)
@@ -445,7 +445,7 @@ static SC_HTMLState sc_html_read_line(SC_HTMLParser *parser)
        if (parser->fp == NULL)
                return SC_HTML_EOF;
 
-       n = fread(buf, 1, sizeof(buf), parser->fp);
+       n = fread(buf, 1, sizeof(buf) - 1, parser->fp);
        if (n == 0) {
                parser->state = SC_HTML_EOF;
                return SC_HTML_EOF;
@@ -572,7 +572,7 @@ static SC_HTMLTag *sc_html_get_tag(const gchar *str)
                                tmpp++;
                                attr_value = tmpp;
                                if ((p = strchr(attr_value, quote)) == NULL) {
-                                       g_warning("sc_html_get_tag(): syntax error in tag: '%s'\n", str);
+                                       g_warning("sc_html_get_tag(): syntax error in tag: '%s'", str);
                                        return tag;
                                }
                                tmpp = p;
@@ -643,7 +643,7 @@ static SC_HTMLState sc_html_parse_tag(SC_HTMLParser *parser)
        parser->state = SC_HTML_UNKNOWN;
        if (!tag) return SC_HTML_UNKNOWN;
 
-       if (!strcmp(tag->name, "br")) {
+       if (!strcmp(tag->name, "br") || !strcmp(tag->name, "br/")) {
                parser->space = FALSE;
                sc_html_append_char(parser, '\n');
                parser->state = SC_HTML_BR;
@@ -658,6 +658,7 @@ static SC_HTMLState sc_html_parse_tag(SC_HTMLParser *parser)
                                break;
                        }
                }
+               parser->state = SC_HTML_HREF_BEG;
        } else if (!strcmp(tag->name, "/a")) {
                parser->state = SC_HTML_HREF;
        } else if (!strcmp(tag->name, "p")) {