fixed in HTMLParser: </nofilter> tag was printed

This commit is contained in:
Tomasz Sowa 2021-10-13 00:40:55 +02:00
parent 17d2c0fb25
commit c54c398828
1 changed files with 13 additions and 8 deletions

View File

@ -1126,7 +1126,7 @@ return true;
void HTMLParser::PutClosingTag(const Item & item) void HTMLParser::PutClosingTag(const Item & item)
{ {
if( skip_tags || !IsTagSafe(item.name) ) if( skip_tags || !IsTagSafe(item.name) || IsNameEqual(no_filter_tag, LastItem().name) )
return; return;
if( item.is_commentary ) if( item.is_commentary )
@ -1945,17 +1945,22 @@ void HTMLParser::CheckClosingTags()
{ {
CheckWhiteCharsExceptions(pstack[z]); CheckWhiteCharsExceptions(pstack[z]);
if( !skip_tags && pstack[z].new_line ) if( !skip_tags && IsTagSafe(LastItem().name) && !IsNameEqual(no_filter_tag, LastItem().name) )
{ {
if( current_white_char_mode() == WHITE_MODE_TREE ) if( pstack[z].new_line )
{ {
Put(10); if( current_white_char_mode() == WHITE_MODE_TREE )
PutTabs(pstack[z].tree_index); {
Put(10);
PutTabs(pstack[z].tree_index);
}
} }
}
PutClosingTag(pstack[z]); // IMPROVEME
pstack[z].Clear(); // in PutClosingTag we test IsTagSafe() and no_filter_tag too
PutClosingTag(pstack[z]);
pstack[z].Clear();
}
} }
// invalidate items on the stack // invalidate items on the stack