commit 6a413b886d2691ec1dafc191823800724e5a1cc0
parent 6ad681664a23b9268016e779a94f83413127ad98
Author: Andrej Kacian <ticho@claws-mail.org>
Date: Fri, 1 Jun 2018 08:01:05 +0200
Fix HTML <hX> header handling.
Fix one-by-off error in detection of the end tag,
and add an extra newline at the beginning to make
the heading stand out visually.
Diffstat:
1 file changed, 8 insertions(+), 3 deletions(-)
diff --git a/src/html.c b/src/html.c
@@ -395,8 +395,7 @@ static SC_HTMLState sc_html_parse_tag(SC_HTMLParser *parser)
!strcmp(tag->name, "li") ||
!strcmp(tag->name, "table") ||
!strcmp(tag->name, "dd") ||
- !strcmp(tag->name, "tr") ||
- (tag->name[0] == 'h' && g_ascii_isdigit(tag->name[1]))) {
+ !strcmp(tag->name, "tr")) {
if (!parser->newline) {
parser->space = FALSE;
sc_html_append_char(parser, '\n');
@@ -405,6 +404,12 @@ static SC_HTMLState sc_html_parse_tag(SC_HTMLParser *parser)
sc_html_append_str(parser, LI_STR, -1);
}
parser->state = SC_HTML_NORMAL;
+ } else if (tag->name[0] == 'h' && g_ascii_isdigit(tag->name[1])) {
+ if (!parser->newline) {
+ parser->space = FALSE;
+ sc_html_append_char(parser, '\n');
+ }
+ sc_html_append_char(parser, '\n');
} else if (!strcmp(tag->name, "blockquote")) {
parser->state = SC_HTML_NORMAL;
parser->indent++;
@@ -414,7 +419,7 @@ static SC_HTMLState sc_html_parse_tag(SC_HTMLParser *parser)
} else if (!strcmp(tag->name, "/table") ||
(tag->name[0] == '/' &&
tag->name[1] == 'h' &&
- g_ascii_isdigit(tag->name[1]))) {
+ g_ascii_isdigit(tag->name[2]))) {
if (!parser->empty_line) {
parser->space = FALSE;
if (!parser->newline) sc_html_append_char(parser, '\n');