Re: [BUGFIX] Tidy supplies obsolete DOCTYPE

On Wed, 23 Feb 2000, J. David Bryan wrote:

> This report is for the Tidy version of 13th January 2000.
> 
> When Tidy is asked to supply a DOCTYPE (e.g., with the configuration option 
> "doctype: strict"), it will supply one for HTML 4.0, which is obsolete.
> The error is in lexer.c, lines 51-67):
> 
>   struct _vers
>   {
>       char *name;
>       char *voyager_name;
>       char *profile;
>       int code;
>   } W3C_Version[] =
>   {
>       {"HTML 2.0", "XHTML 1.0 Strict", voyager_strict, VERS_HTML20},
>       {"HTML 3.2", "XHTML 1.0 Transitional", voyager_loose, VERS_HTML32},
>       {"HTML 4.0", "XHTML 1.0 Strict", voyager_strict, VERS_HTML40_STRICT},
>       {"HTML 4.0 Transitional", "XHTML 1.0 Transitional", voyager_loose, VERS_HTML40_LOOSE},
>       {"HTML 4.0 Frameset", "XHTML 1.0 Frameset", voyager_frameset, VERS_FRAMES},
>       {"HTML 4.01", "XHTML 1.0 Strict", voyager_strict, VERS_HTML40_STRICT},
>       {"HTML 4.01 Transitional", "XHTML 1.0 Transitional", voyager_loose, VERS_HTML40_LOOSE},
>       {"HTML 4.01 Frameset", "XHTML 1.0 Frameset", voyager_frameset, VERS_FRAMES}
>   };
> 
> Because the HTML 4.0 and 4.01 DOCTYPE strings carry the same internal 
> version flags (e.g., VERS_HTML40_STRICT), Tidy uses the first string 
> encountered with the desired version flag when generating the requested 
> DOCTYPE.  As the HTML 4.0 strings are first, they are used in preference to 
> the 4.01 strings.  Placing the 4.01 strings ahead of the 4.0 strings solves 
> the problem.

Thanks for spotting this. I will reverse the order of the entries in
this table to correct this. I plan to make a new release within the
next 2 weeks.

Regards,

-- Dave Raggett <dsr@w3.org> http://www.w3.org/People/Raggett
tel/fax: +44 122 578 3011 (or 2521) +44 385 320 444 (mobile)
World Wide Web Consortium (on assignment from HP Labs)

Received on Tuesday, 29 February 2000 08:05:52 UTC