- From: Gary L Peskin <garyp@firstech.com>
- Date: Thu, 21 Dec 2000 13:53:36 -0800
- To: Html-Tidy <html-tidy@w3.org>
The following HTML page:
<html>
<body>
<font size="2"><font face="Arial">This is a test </font>
<hr>Example
</body>
</html>
produces the following erroneous output in Tidy:
<html>
<head>
<meta name="generator" content="HTML Tidy, see www.w3.org">
<title></title>
</head>
<body>
<font size="2"><font face="Arial">This is a test</font></font>
<hr>
<font size="2">E xample</font>
</body>
</html>
Note the space between the "E" and the "x" in Example. This is due to
the trailing space from "This is a test " being moved into the following
element. However, the following element, <hr>, is defined as an empty
block tag in tags.c. Due to the order of tests in parser::ParseTag,
lexer.insertspace never gets reset and the space eventually gets
inserted in the wrong place.
The following change corrects this problem:
In Tidy 04aug2000, parser.c at line 421, change:
if (node->tag->model & CM_EMPTY)
{
lexer->waswhite = no;
return;
}
else if (!(node->tag->model & CM_INLINE))
lexer->insertspace = no;
to:
if (!(node->tag->model & CM_INLINE))
lexer->insertspace = no;
if (node->tag->model & CM_EMPTY)
{
lexer->waswhite = no;
return;
}
Gary
Received on Thursday, 21 December 2000 16:53:47 UTC