Issue #498 - parser.c - if a <table> in a <table> just close.
The previous action was to discard the second, while it is the second table that browsers will render. This conforms to the principle that the html output by tidy should render in a browser like the original html.
This commit is contained in:
parent
d07134140a
commit
a49890ee55
15
src/parser.c
15
src/parser.c
|
@ -3019,9 +3019,22 @@ void TY_(ParseTableTag)(TidyDocImpl* doc, Node *table, GetTokenMode ARG_UNUSED(m
|
||||||
|
|
||||||
while ((node = TY_(GetToken)(doc, IgnoreWhitespace)) != NULL)
|
while ((node = TY_(GetToken)(doc, IgnoreWhitespace)) != NULL)
|
||||||
{
|
{
|
||||||
if (node->tag == table->tag && node->type == EndTag)
|
if (node->tag == table->tag )
|
||||||
|
{
|
||||||
|
if (node->type == EndTag)
|
||||||
{
|
{
|
||||||
TY_(FreeNode)(doc, node);
|
TY_(FreeNode)(doc, node);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
/* Issue #498 - If a <table> in a <table>
|
||||||
|
* just close the current table, and issue a
|
||||||
|
* warning. The previous action was to discard
|
||||||
|
* this second <table>
|
||||||
|
*/
|
||||||
|
TY_(UngetToken)(doc);
|
||||||
|
TY_(ReportError)(doc, table, node, TAG_NOT_ALLOWED_IN);
|
||||||
|
}
|
||||||
lexer->istackbase = istackbase;
|
lexer->istackbase = istackbase;
|
||||||
table->closed = yes;
|
table->closed = yes;
|
||||||
#if !defined(NDEBUG) && defined(_MSC_VER)
|
#if !defined(NDEBUG) && defined(_MSC_VER)
|
||||||
|
|
Loading…
Reference in a new issue