Make the doctype handling work the way it should.
This commit is contained in:
parent
9412ef6eba
commit
c331917c31
17
src/lexer.c
17
src/lexer.c
|
@ -119,9 +119,8 @@ int TY_(HTMLVersion)(TidyDocImpl* doc)
|
|||
!cfgBool(doc, TidyHtmlOut);
|
||||
Bool html4 = dtmode == TidyDoctypeStrict || dtmode == TidyDoctypeLoose || VERS_FROM40 & dtver;
|
||||
|
||||
// don't mess with <!doctype html>
|
||||
if (HT50) return HT50;
|
||||
if (XH50) return XH50;
|
||||
if (xhtml && dtver == VERS_UNKNOWN) return XH50;
|
||||
if (dtver == VERS_UNKNOWN) return HT50;
|
||||
|
||||
for (i = 0; W3C_Doctypes[i].name; ++i)
|
||||
{
|
||||
|
@ -1552,6 +1551,8 @@ Bool TY_(SetXHTMLDocType)( TidyDocImpl* doc )
|
|||
TidyDoctypeModes dtmode = (TidyDoctypeModes)cfg(doc, TidyDoctypeMode);
|
||||
ctmbstr pub = "PUBLIC";
|
||||
ctmbstr sys = "SYSTEM";
|
||||
Bool xhtml = (cfgBool(doc, TidyXmlOut) || doc->lexer->isvoyager) &&
|
||||
!cfgBool(doc, TidyHtmlOut);
|
||||
|
||||
lexer->versionEmitted = TY_(ApparentVersion)( doc );
|
||||
|
||||
|
@ -1595,7 +1596,11 @@ Bool TY_(SetXHTMLDocType)( TidyDocImpl* doc )
|
|||
TY_(RepairAttrValue)(doc, doctype, sys, "");
|
||||
break;
|
||||
case TidyDoctypeAuto:
|
||||
if (lexer->versions & XH11 && lexer->doctype == XH11)
|
||||
if (xhtml && lexer->doctype == VERS_UNKNOWN) {
|
||||
lexer->versionEmitted = XH50;
|
||||
return yes;
|
||||
}
|
||||
else if (lexer->versions & XH11 && lexer->doctype == XH11)
|
||||
{
|
||||
if (!TY_(GetAttrByName)(doctype, sys))
|
||||
TY_(RepairAttrValue)(doc, doctype, sys, GetSIFromVers(XH11));
|
||||
|
@ -1633,10 +1638,6 @@ Bool TY_(SetXHTMLDocType)( TidyDocImpl* doc )
|
|||
TY_(RepairAttrValue)(doc, doctype, sys, GetSIFromVers(X10T));
|
||||
lexer->versionEmitted = X10T;
|
||||
}
|
||||
else if (lexer->versions & XH50)
|
||||
{
|
||||
lexer->versionEmitted = XH50;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (doctype)
|
||||
|
|
|
@ -194,7 +194,7 @@ typedef enum
|
|||
/* special flag */
|
||||
#define VERS_XML 65536u
|
||||
|
||||
/* "HTML5" */
|
||||
/* HTML5 */
|
||||
#define HT50 131072u
|
||||
#define XH50 262144u
|
||||
|
||||
|
|
Loading…
Reference in a new issue