- From: <html-tidy@war-of-the-worlds.org>
- Date: Tue, 12 Oct 1999 09:26:27 -0500
- To: html-tidy@w3.org
I found a problem with FixEmptyRow(). In some cases where there was
content inside TABLE that was not within neither a TD nor TR, it
would move the content to before the TABLE (successfully if TABLE was
not the first child of its container -- addressed in earlier, big
patch, as a fix to MoveBeforeTable()), but would still put a <TR><TD>
in its place. The fix was to test if the TR was actually in the
document or was generated by Tidy. This is performed by testing the
->implicit field of the TR's Node.
The fixed FixEmptyRow() function is below.
/*
if a table row is empty then insert an empty cell
this practice is consistent with browser behavior
and avoids potential problems with row spanning cells
*/
void FixEmptyRow(Lexer *lexer, Node *row)
{
Node *cell;
if (!row->implicit) {
if (row->content == null)
{
cell = InferredTag(lexer, "td");
InsertNode(row, cell);
ReportWarning(lexer, row, cell, MISSING_STARTTAG);
}
}
else
/*
If row is implicit, then it was not in original, so there's no
spanning issue requiring its preservation, so don't imply a TD,
instead remove it if it is empty.
*/
TrimEmptyElement(lexer, row);
}
--
,=<#)-=# <http://www.war-of-the-worlds.org/>
,_--//--_,
_-~_-(####)-_~-_ "Did you see that Parkins boy's body in the tunnels?" "Just
(#>_--'~--~`--_<#) the photos. Worst thing I've ever seen; kid had no face."
Received on Tuesday, 12 October 1999 10:29:08 UTC