Begin migration towards "one output function to rule them all." Consolidated
the basic reporting functions that share the same signature. This also resulted in eliminating a string, and adding a new string to disambiguate between errors and warnings.
This commit is contained in:
parent
7badd93417
commit
e5eb09198d
|
@ -260,7 +260,6 @@ extern "C" {
|
||||||
FN(BAD_SURROGATE_TAIL) \
|
FN(BAD_SURROGATE_TAIL) \
|
||||||
/* ReportWarning */ \
|
/* ReportWarning */ \
|
||||||
FN(BAD_SUMMARY_HTML5) \
|
FN(BAD_SUMMARY_HTML5) \
|
||||||
FN(COERCE_TO_ENDTAG_WARN) \
|
|
||||||
FN(NESTED_EMPHASIS) \
|
FN(NESTED_EMPHASIS) \
|
||||||
FN(NESTED_QUOTATION) \
|
FN(NESTED_QUOTATION) \
|
||||||
FN(OBSOLETE_ELEMENT) \
|
FN(OBSOLETE_ELEMENT) \
|
||||||
|
@ -271,6 +270,7 @@ extern "C" {
|
||||||
FN(ELEMENT_NOT_EMPTY) \
|
FN(ELEMENT_NOT_EMPTY) \
|
||||||
FN(UNEXPECTED_END_OF_FILE) \
|
FN(UNEXPECTED_END_OF_FILE) \
|
||||||
FN(UNEXPECTED_ENDTAG) \
|
FN(UNEXPECTED_ENDTAG) \
|
||||||
|
FN(UNEXPECTED_ENDTAG_ERR) \
|
||||||
FN(MOVED_STYLE_TO_HEAD) \
|
FN(MOVED_STYLE_TO_HEAD) \
|
||||||
FN(FOUND_STYLE_IN_BODY)
|
FN(FOUND_STYLE_IN_BODY)
|
||||||
|
|
||||||
|
|
|
@ -1986,7 +1986,7 @@ void TY_(CleanWord2000)( TidyDocImpl* doc, Node *node)
|
||||||
* meaning this result would not ordinarily be displayed.
|
* meaning this result would not ordinarily be displayed.
|
||||||
*/
|
*/
|
||||||
Node* next;
|
Node* next;
|
||||||
TY_(ReportError)(doc, NULL, node, PROPRIETARY_ELEMENT);
|
TY_(ReportNotice)(doc, NULL, node, PROPRIETARY_ELEMENT);
|
||||||
DiscardContainer( doc, node, &next );
|
DiscardContainer( doc, node, &next );
|
||||||
node = next;
|
node = next;
|
||||||
continue;
|
continue;
|
||||||
|
|
|
@ -1891,17 +1891,17 @@ static languageDefinition language_en = { whichPluralForm_en, {
|
||||||
{ BAD_SURROGATE_TAIL, 0, "Leading (High) surrogate pair U+%04X, with no trailing (Low) entity, replaced with U+FFFD." }, /* ReportSurrogateError */
|
{ BAD_SURROGATE_TAIL, 0, "Leading (High) surrogate pair U+%04X, with no trailing (Low) entity, replaced with U+FFFD." }, /* ReportSurrogateError */
|
||||||
|
|
||||||
{ BAD_SUMMARY_HTML5, 0, "The summary attribute on the %s element is obsolete in HTML5" }, /* ReportWarning */
|
{ BAD_SUMMARY_HTML5, 0, "The summary attribute on the %s element is obsolete in HTML5" }, /* ReportWarning */
|
||||||
{ COERCE_TO_ENDTAG_WARN, 0, "<%s> is probably intended as </%s>" }, /* ReportWarning */
|
|
||||||
{ NESTED_EMPHASIS, 0, "nested emphasis %s" }, /* ReportWarning */
|
{ NESTED_EMPHASIS, 0, "nested emphasis %s" }, /* ReportWarning */
|
||||||
{ NESTED_QUOTATION, 0, "nested q elements, possible typo." }, /* ReportWarning */
|
{ NESTED_QUOTATION, 0, "nested q elements, possible typo." }, /* ReportWarning */
|
||||||
{ OBSOLETE_ELEMENT, 0, "replacing obsolete element %s with %s" }, /* ReportWarning */
|
{ OBSOLETE_ELEMENT, 0, "replacing obsolete element %s with %s" }, /* ReportWarning */
|
||||||
{ REMOVED_HTML5, 0, "%s element removed from HTML5" }, /* ReportWarning */
|
{ REMOVED_HTML5, 0, "%s element removed from HTML5" }, /* ReportWarning */
|
||||||
{ XML_DECLARATION_DETECTED, 0, "An XML declaration was detected. Did you mean to use input-xml?" }, /* ReportWarning */
|
{ XML_DECLARATION_DETECTED, 0, "An XML declaration was detected. Did you mean to use input-xml?" }, /* ReportWarning */
|
||||||
|
|
||||||
{ COERCE_TO_ENDTAG, 0, "<%s> is probably intended as </%s>" }, /* ReportError, ReportWarning */
|
{ COERCE_TO_ENDTAG, 0, "<%s> is probably intended as </%s>" }, /* ReportWarning */
|
||||||
{ ELEMENT_NOT_EMPTY, 0, "%s element not empty or not closed" }, /* ReportError, ReportAttrError */
|
{ ELEMENT_NOT_EMPTY, 0, "%s element not empty or not closed" }, /* ReportError, ReportAttrError */
|
||||||
{ UNEXPECTED_END_OF_FILE, 0, "unexpected end of file %s" }, /* ReportError, ReportAttrError */
|
{ UNEXPECTED_END_OF_FILE, 0, "unexpected end of file %s" }, /* ReportError, ReportAttrError */
|
||||||
{ UNEXPECTED_ENDTAG, 0, "unexpected </%s>" }, /* ReportError, ReportFatal */
|
{ UNEXPECTED_ENDTAG, 0, "unexpected </%s>" }, /* ReportWarning */
|
||||||
|
{ UNEXPECTED_ENDTAG_ERR, 0, "unexpected </%s>" }, /* ReportError */
|
||||||
{ MOVED_STYLE_TO_HEAD, 0, "moved <style> tag to <head>! fix-style-tags: no to avoid." }, /* ReportWarning */
|
{ MOVED_STYLE_TO_HEAD, 0, "moved <style> tag to <head>! fix-style-tags: no to avoid." }, /* ReportWarning */
|
||||||
{ FOUND_STYLE_IN_BODY, 0, "found <style> tag in <body>! fix-style-tags: yes to move." }, /* ReportWarning */
|
{ FOUND_STYLE_IN_BODY, 0, "found <style> tag in <body>! fix-style-tags: yes to move." }, /* ReportWarning */
|
||||||
|
|
||||||
|
|
|
@ -874,7 +874,6 @@ static languageDefinition language_fr = { whichPluralForm_fr, {
|
||||||
"+FFFD."
|
"+FFFD."
|
||||||
},
|
},
|
||||||
{ BAD_SUMMARY_HTML5, 0, "L'attribut summary sur l'élément %s est obsolète avec HTML5" },
|
{ BAD_SUMMARY_HTML5, 0, "L'attribut summary sur l'élément %s est obsolète avec HTML5" },
|
||||||
{ COERCE_TO_ENDTAG_WARN, 0, "<%s> est probablement destiné à </%s>" },
|
|
||||||
{ NESTED_EMPHASIS, 0, "accentuation imbriquée %s" },
|
{ NESTED_EMPHASIS, 0, "accentuation imbriquée %s" },
|
||||||
{ NESTED_QUOTATION, 0, "éléments \"q\" imbriqués, erreur typographique possible" },
|
{ NESTED_QUOTATION, 0, "éléments \"q\" imbriqués, erreur typographique possible" },
|
||||||
{ OBSOLETE_ELEMENT, 0, "remplacement de l'élément obsolète %s par %s" },
|
{ OBSOLETE_ELEMENT, 0, "remplacement de l'élément obsolète %s par %s" },
|
||||||
|
@ -884,6 +883,7 @@ static languageDefinition language_fr = { whichPluralForm_fr, {
|
||||||
{ ELEMENT_NOT_EMPTY, 0, "%s élément non vide ou non fermé" },
|
{ ELEMENT_NOT_EMPTY, 0, "%s élément non vide ou non fermé" },
|
||||||
{ UNEXPECTED_END_OF_FILE, 0, "fin de fichier inattendue %s" },
|
{ UNEXPECTED_END_OF_FILE, 0, "fin de fichier inattendue %s" },
|
||||||
{ UNEXPECTED_ENDTAG, 0, "</%s> inattendu" },
|
{ UNEXPECTED_ENDTAG, 0, "</%s> inattendu" },
|
||||||
|
{ UNEXPECTED_ENDTAG_ERR, 0, "</%s> inattendu" },
|
||||||
|
|
||||||
#if SUPPORT_ACCESSIBILITY_CHECKS
|
#if SUPPORT_ACCESSIBILITY_CHECKS
|
||||||
{ IMG_MISSING_ALT, 0, "[1.1.1.1]: <img> texte manquant 'alt'." },
|
{ IMG_MISSING_ALT, 0, "[1.1.1.1]: <img> texte manquant 'alt'." },
|
||||||
|
|
22
src/lexer.c
22
src/lexer.c
|
@ -2454,7 +2454,7 @@ static Node *GetCDATA( TidyDocImpl* doc, Node *container )
|
||||||
if ((TY_(IsJavaScript)(container)) && cfgBool(doc, TidyEscapeScripts))
|
if ((TY_(IsJavaScript)(container)) && cfgBool(doc, TidyEscapeScripts))
|
||||||
{
|
{
|
||||||
/* Issue #281 - only warn if adding the escape! */
|
/* Issue #281 - only warn if adding the escape! */
|
||||||
TY_(ReportError)(doc, NULL, NULL, BAD_CDATA_CONTENT);
|
TY_(ReportNotice)(doc, NULL, NULL, BAD_CDATA_CONTENT);
|
||||||
|
|
||||||
for (i = lexer->lexsize; i > start-1; --i)
|
for (i = lexer->lexsize; i > start-1; --i)
|
||||||
lexer->lexbuf[i] = lexer->lexbuf[i-1];
|
lexer->lexbuf[i] = lexer->lexbuf[i-1];
|
||||||
|
@ -2472,7 +2472,7 @@ static Node *GetCDATA( TidyDocImpl* doc, Node *container )
|
||||||
lexer->txtend = lexer->lexsize;
|
lexer->txtend = lexer->lexsize;
|
||||||
|
|
||||||
if (c == EndOfStream)
|
if (c == EndOfStream)
|
||||||
TY_(ReportError)(doc, container, NULL, MISSING_ENDTAG_FOR );
|
TY_(ReportNotice)(doc, container, NULL, MISSING_ENDTAG_FOR );
|
||||||
|
|
||||||
/* this was disabled for some reason... */
|
/* this was disabled for some reason... */
|
||||||
#if 0
|
#if 0
|
||||||
|
@ -2764,7 +2764,7 @@ static Node* GetTokenFromStream( TidyDocImpl* doc, GetTokenMode mode )
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
TY_(ReportError)(doc, NULL, NULL, MALFORMED_COMMENT );
|
TY_(ReportNotice)(doc, NULL, NULL, MALFORMED_COMMENT );
|
||||||
}
|
}
|
||||||
else if (c == 'd' || c == 'D')
|
else if (c == 'd' || c == 'D')
|
||||||
{
|
{
|
||||||
|
@ -3013,9 +3013,9 @@ static Node* GetTokenFromStream( TidyDocImpl* doc, GetTokenMode mode )
|
||||||
for older HTML, because it's not truly supported
|
for older HTML, because it's not truly supported
|
||||||
by the standard, although Tidy will allow it. */
|
by the standard, although Tidy will allow it. */
|
||||||
if ( (doc->lexer->doctype & VERS_HTML5) > 0 && TY_(elementIsAutonomousCustomFormat)( lexer->token->element ) )
|
if ( (doc->lexer->doctype & VERS_HTML5) > 0 && TY_(elementIsAutonomousCustomFormat)( lexer->token->element ) )
|
||||||
TY_(ReportFatal)( doc, NULL, lexer->token, UNKNOWN_ELEMENT_LOOKS_CUSTOM );
|
TY_(ReportNotice)( doc, NULL, lexer->token, UNKNOWN_ELEMENT_LOOKS_CUSTOM );
|
||||||
else
|
else
|
||||||
TY_(ReportFatal)( doc, NULL, lexer->token, UNKNOWN_ELEMENT );
|
TY_(ReportNotice)( doc, NULL, lexer->token, UNKNOWN_ELEMENT );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if ( !cfgBool(doc, TidyXmlTags) )
|
else if ( !cfgBool(doc, TidyXmlTags) )
|
||||||
|
@ -3048,7 +3048,7 @@ static Node* GetTokenFromStream( TidyDocImpl* doc, GetTokenMode mode )
|
||||||
if (c == '>')
|
if (c == '>')
|
||||||
{
|
{
|
||||||
if (badcomment)
|
if (badcomment)
|
||||||
TY_(ReportError)(doc, NULL, NULL, MALFORMED_COMMENT );
|
TY_(ReportNotice)(doc, NULL, NULL, MALFORMED_COMMENT );
|
||||||
|
|
||||||
/* do not store closing -- in lexbuf */
|
/* do not store closing -- in lexbuf */
|
||||||
lexer->lexsize -= 2;
|
lexer->lexsize -= 2;
|
||||||
|
@ -3163,7 +3163,7 @@ static Node* GetTokenFromStream( TidyDocImpl* doc, GetTokenMode mode )
|
||||||
|
|
||||||
if (c == EndOfStream)
|
if (c == EndOfStream)
|
||||||
{
|
{
|
||||||
TY_(ReportError)(doc, NULL, NULL, UNEXPECTED_END_OF_FILE );
|
TY_(ReportNotice)(doc, NULL, NULL, UNEXPECTED_END_OF_FILE );
|
||||||
TY_(UngetChar)(c, doc->docIn);
|
TY_(UngetChar)(c, doc->docIn);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
@ -3474,7 +3474,7 @@ static Node* GetTokenFromStream( TidyDocImpl* doc, GetTokenMode mode )
|
||||||
else if (lexer->state == LEX_COMMENT) /* comment */
|
else if (lexer->state == LEX_COMMENT) /* comment */
|
||||||
{
|
{
|
||||||
if (c == EndOfStream)
|
if (c == EndOfStream)
|
||||||
TY_(ReportError)(doc, NULL, NULL, MALFORMED_COMMENT );
|
TY_(ReportNotice)(doc, NULL, NULL, MALFORMED_COMMENT );
|
||||||
|
|
||||||
lexer->txtend = lexer->lexsize;
|
lexer->txtend = lexer->lexsize;
|
||||||
lexer->lexbuf[lexer->lexsize] = '\0';
|
lexer->lexbuf[lexer->lexsize] = '\0';
|
||||||
|
@ -4111,7 +4111,7 @@ static tmbstr ParseValue( TidyDocImpl* doc, ctmbstr name,
|
||||||
!(TY_(IsUrl)(doc, name) && TY_(tmbstrncmp)(lexer->lexbuf+start, "javascript:", 11) == 0) &&
|
!(TY_(IsUrl)(doc, name) && TY_(tmbstrncmp)(lexer->lexbuf+start, "javascript:", 11) == 0) &&
|
||||||
!(TY_(tmbstrncmp)(lexer->lexbuf+start, "<xml ", 5) == 0)
|
!(TY_(tmbstrncmp)(lexer->lexbuf+start, "<xml ", 5) == 0)
|
||||||
)
|
)
|
||||||
TY_(ReportFatal)( doc, NULL, NULL, SUSPECTED_MISSING_QUOTE );
|
TY_(ReportNotice)( doc, NULL, NULL, SUSPECTED_MISSING_QUOTE );
|
||||||
}
|
}
|
||||||
|
|
||||||
len = lexer->lexsize - start;
|
len = lexer->lexsize - start;
|
||||||
|
@ -4383,7 +4383,7 @@ static Node *ParseDocTypeDecl(TidyDocImpl* doc)
|
||||||
|
|
||||||
if (!node->element || !IsValidXMLElemName(node->element))
|
if (!node->element || !IsValidXMLElemName(node->element))
|
||||||
{
|
{
|
||||||
TY_(ReportError)(doc, NULL, NULL, MALFORMED_DOCTYPE);
|
TY_(ReportNotice)(doc, NULL, NULL, MALFORMED_DOCTYPE);
|
||||||
TY_(FreeNode)(doc, node);
|
TY_(FreeNode)(doc, node);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
@ -4469,7 +4469,7 @@ static Node *ParseDocTypeDecl(TidyDocImpl* doc)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* document type declaration not finished */
|
/* document type declaration not finished */
|
||||||
TY_(ReportError)(doc, NULL, NULL, MALFORMED_DOCTYPE);
|
TY_(ReportNotice)(doc, NULL, NULL, MALFORMED_DOCTYPE);
|
||||||
TY_(FreeNode)(doc, node);
|
TY_(FreeNode)(doc, node);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
252
src/message.c
252
src/message.c
|
@ -209,18 +209,56 @@ static void messageOut( TidyMessageImpl *message )
|
||||||
void TY_(ReportNotice)(TidyDocImpl* doc, Node *element, Node *node, uint code)
|
void TY_(ReportNotice)(TidyDocImpl* doc, Node *element, Node *node, uint code)
|
||||||
{
|
{
|
||||||
TidyMessageImpl *message = NULL;
|
TidyMessageImpl *message = NULL;
|
||||||
|
TidyMessageImpl *message2 = NULL; /* extra, when TidyShowWarnings */
|
||||||
Node* rpt = ( element ? element : node );
|
Node* rpt = ( element ? element : node );
|
||||||
char nodedesc[256] = { 0 };
|
char nodedesc[256] = { 0 };
|
||||||
char elemdesc[256] = { 0 };
|
char elemdesc[256] = { 0 };
|
||||||
|
uint versionEmitted, declared, version;
|
||||||
|
ctmbstr extra_string = NULL;
|
||||||
ctmbstr tagtype;
|
ctmbstr tagtype;
|
||||||
|
|
||||||
TagToString(node, nodedesc, sizeof(nodedesc));
|
TagToString(node, nodedesc, sizeof(nodedesc));
|
||||||
|
|
||||||
switch (code)
|
switch (code)
|
||||||
{
|
{
|
||||||
|
case INSERTING_TAG:
|
||||||
|
case MISSING_STARTTAG:
|
||||||
|
case TOO_MANY_ELEMENTS:
|
||||||
|
case UNEXPECTED_ENDTAG:
|
||||||
|
message = TY_(tidyMessageCreateWithNode)(doc, node, code, TidyWarning, node->element );
|
||||||
|
break;
|
||||||
|
|
||||||
|
case CANT_BE_NESTED:
|
||||||
|
case NOFRAMES_CONTENT:
|
||||||
|
case PROPRIETARY_ELEMENT:
|
||||||
|
case UNESCAPED_ELEMENT:
|
||||||
|
case USING_BR_INPLACE_OF:
|
||||||
|
message = TY_(tidyMessageCreateWithNode)(doc, node, code, TidyWarning, nodedesc );
|
||||||
|
break;
|
||||||
|
|
||||||
|
case ELEMENT_NOT_EMPTY:
|
||||||
|
case FOUND_STYLE_IN_BODY:
|
||||||
|
case ILLEGAL_NESTING:
|
||||||
|
case MOVED_STYLE_TO_HEAD:
|
||||||
case TRIM_EMPTY_ELEMENT:
|
case TRIM_EMPTY_ELEMENT:
|
||||||
TagToString(element, elemdesc, sizeof(nodedesc));
|
case UNEXPECTED_END_OF_FILE:
|
||||||
message = TY_(tidyMessageCreateWithNode)(doc, element, code, TidyWarning, elemdesc );
|
TagToString(element, elemdesc, sizeof(elemdesc));
|
||||||
|
message = TY_(tidyMessageCreateWithNode)(doc, element, code, TidyWarning, elemdesc);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case BAD_CDATA_CONTENT:
|
||||||
|
case BAD_COMMENT_CHARS:
|
||||||
|
case BAD_XML_COMMENT:
|
||||||
|
case CONTENT_AFTER_BODY:
|
||||||
|
case DOCTYPE_AFTER_TAGS:
|
||||||
|
case DTYPE_NOT_UPPER_CASE:
|
||||||
|
case INCONSISTENT_NAMESPACE:
|
||||||
|
case INCONSISTENT_VERSION:
|
||||||
|
case MALFORMED_COMMENT:
|
||||||
|
case MALFORMED_DOCTYPE:
|
||||||
|
case MISSING_TITLE_ELEMENT:
|
||||||
|
case NESTED_QUOTATION:
|
||||||
|
message = TY_(tidyMessageCreateWithNode)(doc, rpt, code, TidyWarning );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case REPLACING_ELEMENT:
|
case REPLACING_ELEMENT:
|
||||||
|
@ -228,9 +266,51 @@ void TY_(ReportNotice)(TidyDocImpl* doc, Node *element, Node *node, uint code)
|
||||||
message = TY_(tidyMessageCreateWithNode)(doc, rpt, code, TidyWarning, elemdesc, nodedesc );
|
message = TY_(tidyMessageCreateWithNode)(doc, rpt, code, TidyWarning, elemdesc, nodedesc );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case OBSOLETE_ELEMENT:
|
||||||
|
case REPLACING_UNEX_ELEMENT:
|
||||||
|
TagToString(element, elemdesc, sizeof(elemdesc));
|
||||||
|
message = TY_(tidyMessageCreateWithNode)(doc, rpt, code, TidyWarning, elemdesc, nodedesc );
|
||||||
|
break;
|
||||||
|
|
||||||
|
case MISSING_ENDTAG_FOR:
|
||||||
|
message = TY_(tidyMessageCreateWithNode)(doc, rpt, code, TidyWarning, element->element );
|
||||||
|
break;
|
||||||
|
|
||||||
|
case MISSING_ENDTAG_BEFORE:
|
||||||
|
message = TY_(tidyMessageCreateWithNode)(doc, rpt, code, TidyWarning, element->element, nodedesc );
|
||||||
|
break;
|
||||||
|
|
||||||
|
case BAD_SUMMARY_HTML5:
|
||||||
|
case NESTED_EMPHASIS:
|
||||||
|
case REMOVED_HTML5:
|
||||||
|
message = TY_(tidyMessageCreateWithNode)(doc, rpt, code, TidyWarning, nodedesc );
|
||||||
|
break;
|
||||||
|
|
||||||
|
case COERCE_TO_ENDTAG:
|
||||||
|
case NON_MATCHING_ENDTAG:
|
||||||
|
message = TY_(tidyMessageCreateWithNode)(doc, rpt, code, TidyWarning, node->element, node->element );
|
||||||
|
break;
|
||||||
|
|
||||||
|
case ENCODING_IO_CONFLICT:
|
||||||
|
case MISSING_DOCTYPE:
|
||||||
|
case SPACE_PRECEDING_XMLDECL:
|
||||||
|
case XML_DECLARATION_DETECTED:
|
||||||
|
message = TY_(tidyMessageCreateWithNode)(doc, node, code, TidyWarning );
|
||||||
|
break;
|
||||||
|
|
||||||
|
case ELEMENT_VERS_MISMATCH_WARN:
|
||||||
|
versionEmitted = doc->lexer->versionEmitted;
|
||||||
|
declared = doc->lexer->doctype;
|
||||||
|
version = versionEmitted == 0 ? declared : versionEmitted;
|
||||||
|
extra_string = TY_(HTMLVersionNameFromCode)(version, 0);
|
||||||
|
if (!extra_string)
|
||||||
|
extra_string = tidyLocalizedString(STRING_HTML_PROPRIETARY);
|
||||||
|
message = TY_(tidyMessageCreateWithNode)(doc, node, code, TidyWarning, nodedesc, extra_string );
|
||||||
|
break;
|
||||||
|
|
||||||
case CUSTOM_TAG_DETECTED:
|
case CUSTOM_TAG_DETECTED:
|
||||||
TagToString(element, elemdesc, sizeof(elemdesc));
|
TagToString(element, elemdesc, sizeof(elemdesc));
|
||||||
|
|
||||||
switch ( cfg( doc, TidyUseCustomTags ) )
|
switch ( cfg( doc, TidyUseCustomTags ) )
|
||||||
{
|
{
|
||||||
case TidyCustomBlocklevel:
|
case TidyCustomBlocklevel:
|
||||||
|
@ -249,92 +329,6 @@ void TY_(ReportNotice)(TidyDocImpl* doc, Node *element, Node *node, uint code)
|
||||||
}
|
}
|
||||||
message = TY_(tidyMessageCreateWithNode)(doc, element, code, TidyInfo, elemdesc, tagtype );
|
message = TY_(tidyMessageCreateWithNode)(doc, element, code, TidyInfo, elemdesc, tagtype );
|
||||||
break;
|
break;
|
||||||
case MOVED_STYLE_TO_HEAD:
|
|
||||||
case FOUND_STYLE_IN_BODY:
|
|
||||||
TagToString(element, elemdesc, sizeof(elemdesc));
|
|
||||||
message = TY_(tidyMessageCreateWithNode)(doc, element, code, TidyWarning, elemdesc);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
messageOut( message );
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void TY_(ReportWarning)(TidyDocImpl* doc, Node *element, Node *node, uint code)
|
|
||||||
{
|
|
||||||
TidyMessageImpl *message = NULL;
|
|
||||||
Node* rpt = (element ? element : node);
|
|
||||||
char nodedesc[256] = { 0 };
|
|
||||||
char elemdesc[256] = { 0 };
|
|
||||||
|
|
||||||
TagToString(node, nodedesc, sizeof(nodedesc));
|
|
||||||
|
|
||||||
switch (code)
|
|
||||||
{
|
|
||||||
case NESTED_QUOTATION:
|
|
||||||
message = TY_(tidyMessageCreateWithNode)(doc, rpt, code, TidyWarning );
|
|
||||||
break;
|
|
||||||
|
|
||||||
case OBSOLETE_ELEMENT:
|
|
||||||
TagToString(element, elemdesc, sizeof(elemdesc));
|
|
||||||
message = TY_(tidyMessageCreateWithNode)(doc, rpt, code, TidyWarning, elemdesc, nodedesc );
|
|
||||||
break;
|
|
||||||
|
|
||||||
case NESTED_EMPHASIS:
|
|
||||||
case REMOVED_HTML5:
|
|
||||||
case BAD_SUMMARY_HTML5:
|
|
||||||
message = TY_(tidyMessageCreateWithNode)(doc, rpt, code, TidyWarning, nodedesc );
|
|
||||||
break;
|
|
||||||
case COERCE_TO_ENDTAG_WARN:
|
|
||||||
message = TY_(tidyMessageCreateWithNode)(doc, rpt, code, TidyWarning, node->element, node->element );
|
|
||||||
break;
|
|
||||||
case XML_DECLARATION_DETECTED:
|
|
||||||
message = TY_(tidyMessageCreateWithNode)(doc, node, code, TidyWarning );
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
messageOut( message );
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void TY_(ReportError)(TidyDocImpl* doc, Node *element, Node *node, uint code)
|
|
||||||
{
|
|
||||||
TidyMessageImpl *message = NULL;
|
|
||||||
TidyMessageImpl *message2 = NULL; /* extra, when TidyShowWarnings */
|
|
||||||
char nodedesc[ 256 ] = {0};
|
|
||||||
char elemdesc[ 256 ] = {0};
|
|
||||||
Node* rpt = ( element ? element : node );
|
|
||||||
uint versionEmitted, declared, version;
|
|
||||||
ctmbstr extra_string = NULL;
|
|
||||||
|
|
||||||
TagToString(node, nodedesc, sizeof(nodedesc));
|
|
||||||
|
|
||||||
switch ( code )
|
|
||||||
{
|
|
||||||
case MISSING_STARTTAG:
|
|
||||||
case UNEXPECTED_ENDTAG:
|
|
||||||
case TOO_MANY_ELEMENTS:
|
|
||||||
case INSERTING_TAG:
|
|
||||||
message = TY_(tidyMessageCreateWithNode)(doc, node, code, TidyWarning, node->element );
|
|
||||||
break;
|
|
||||||
|
|
||||||
case USING_BR_INPLACE_OF:
|
|
||||||
case CANT_BE_NESTED:
|
|
||||||
case PROPRIETARY_ELEMENT:
|
|
||||||
case UNESCAPED_ELEMENT:
|
|
||||||
case NOFRAMES_CONTENT:
|
|
||||||
message = TY_(tidyMessageCreateWithNode)(doc, node, code, TidyWarning, nodedesc );
|
|
||||||
break;
|
|
||||||
|
|
||||||
case ELEMENT_VERS_MISMATCH_WARN:
|
|
||||||
versionEmitted = doc->lexer->versionEmitted;
|
|
||||||
declared = doc->lexer->doctype;
|
|
||||||
version = versionEmitted == 0 ? declared : versionEmitted;
|
|
||||||
extra_string = TY_(HTMLVersionNameFromCode)(version, 0);
|
|
||||||
if (!extra_string)
|
|
||||||
extra_string = tidyLocalizedString(STRING_HTML_PROPRIETARY);
|
|
||||||
message = TY_(tidyMessageCreateWithNode)(doc, node, code, TidyWarning, nodedesc, extra_string );
|
|
||||||
break;
|
|
||||||
|
|
||||||
case ELEMENT_VERS_MISMATCH_ERROR:
|
case ELEMENT_VERS_MISMATCH_ERROR:
|
||||||
versionEmitted = doc->lexer->versionEmitted;
|
versionEmitted = doc->lexer->versionEmitted;
|
||||||
|
@ -346,54 +340,11 @@ void TY_(ReportError)(TidyDocImpl* doc, Node *element, Node *node, uint code)
|
||||||
message = TY_(tidyMessageCreateWithNode)(doc, node, code, TidyError, nodedesc, extra_string );
|
message = TY_(tidyMessageCreateWithNode)(doc, node, code, TidyError, nodedesc, extra_string );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case MISSING_TITLE_ELEMENT:
|
|
||||||
case INCONSISTENT_VERSION:
|
|
||||||
case MALFORMED_DOCTYPE:
|
|
||||||
case CONTENT_AFTER_BODY:
|
|
||||||
case MALFORMED_COMMENT:
|
|
||||||
case BAD_COMMENT_CHARS:
|
|
||||||
case BAD_XML_COMMENT:
|
|
||||||
case BAD_CDATA_CONTENT:
|
|
||||||
case INCONSISTENT_NAMESPACE:
|
|
||||||
case DOCTYPE_AFTER_TAGS:
|
|
||||||
case DTYPE_NOT_UPPER_CASE:
|
|
||||||
message = TY_(tidyMessageCreateWithNode)(doc, rpt, code, TidyWarning );
|
|
||||||
break;
|
|
||||||
|
|
||||||
case COERCE_TO_ENDTAG:
|
|
||||||
case NON_MATCHING_ENDTAG:
|
|
||||||
message = TY_(tidyMessageCreateWithNode)(doc, rpt, code, TidyWarning, node->element, node->element );
|
|
||||||
break;
|
|
||||||
|
|
||||||
case UNEXPECTED_ENDTAG_IN:
|
|
||||||
case TOO_MANY_ELEMENTS_IN:
|
case TOO_MANY_ELEMENTS_IN:
|
||||||
message = TY_(tidyMessageCreateWithNode)(doc, node, code, TidyWarning, node->element, node->element );
|
message = TY_(tidyMessageCreateWithNode)(doc, node, code, TidyWarning, node->element, node->element );
|
||||||
message2 = TY_(tidyMessageCreateWithNode)(doc, node, PREVIOUS_LOCATION, TidyInfo, element->element );
|
message2 = TY_(tidyMessageCreateWithNode)(doc, node, PREVIOUS_LOCATION, TidyInfo, element->element );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ENCODING_IO_CONFLICT:
|
|
||||||
case MISSING_DOCTYPE:
|
|
||||||
case SPACE_PRECEDING_XMLDECL:
|
|
||||||
message = TY_(tidyMessageCreateWithNode)(doc, node, code, TidyWarning );
|
|
||||||
break;
|
|
||||||
|
|
||||||
case TRIM_EMPTY_ELEMENT:
|
|
||||||
case ILLEGAL_NESTING:
|
|
||||||
case UNEXPECTED_END_OF_FILE:
|
|
||||||
case ELEMENT_NOT_EMPTY:
|
|
||||||
TagToString(element, elemdesc, sizeof(elemdesc));
|
|
||||||
message = TY_(tidyMessageCreateWithNode)(doc, element, code, TidyWarning, elemdesc );
|
|
||||||
break;
|
|
||||||
|
|
||||||
|
|
||||||
case MISSING_ENDTAG_FOR:
|
|
||||||
message = TY_(tidyMessageCreateWithNode)(doc, rpt, code, TidyWarning, element->element );
|
|
||||||
break;
|
|
||||||
|
|
||||||
case MISSING_ENDTAG_BEFORE:
|
|
||||||
message = TY_(tidyMessageCreateWithNode)(doc, rpt, code, TidyWarning, element->element, nodedesc );
|
|
||||||
break;
|
|
||||||
|
|
||||||
case DISCARDING_UNEXPECTED:
|
case DISCARDING_UNEXPECTED:
|
||||||
/* Force error if in a bad form, or
|
/* Force error if in a bad form, or
|
||||||
Issue #166 - repeated <main> element
|
Issue #166 - repeated <main> element
|
||||||
|
@ -405,35 +356,9 @@ void TY_(ReportError)(TidyDocImpl* doc, Node *element, Node *node, uint code)
|
||||||
message = TY_(tidyMessageCreateWithNode)(doc, node, code, TidyWarning, nodedesc, element->element );
|
message = TY_(tidyMessageCreateWithNode)(doc, node, code, TidyWarning, nodedesc, element->element );
|
||||||
message2 = TY_(tidyMessageCreateWithNode)(doc, element, PREVIOUS_LOCATION, TidyInfo, element->element );
|
message2 = TY_(tidyMessageCreateWithNode)(doc, element, PREVIOUS_LOCATION, TidyInfo, element->element );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case REPLACING_UNEX_ELEMENT:
|
|
||||||
TagToString(element, elemdesc, sizeof(elemdesc));
|
|
||||||
message = TY_(tidyMessageCreateWithNode)(doc, rpt, code, TidyWarning, elemdesc, nodedesc );
|
|
||||||
break;
|
|
||||||
case REMOVED_HTML5:
|
|
||||||
message = TY_(tidyMessageCreateWithNode)(doc, rpt, code, TidyError, nodedesc );
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
messageOut( message );
|
|
||||||
|
|
||||||
/* Although the callback is always executed for message2, it's only
|
|
||||||
added to the output sink TidyShowWarnings is enabled. */
|
|
||||||
if (cfgBool( doc, TidyShowWarnings ))
|
|
||||||
messageOut( message2 );
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void TY_(ReportFatal)( TidyDocImpl* doc, Node *element, Node *node, uint code)
|
|
||||||
{
|
|
||||||
TidyMessageImpl *message = NULL;
|
|
||||||
char nodedesc[ 256 ] = {0};
|
|
||||||
Node* rpt = ( element ? element : node );
|
|
||||||
|
|
||||||
switch ( code )
|
|
||||||
{
|
|
||||||
case SUSPECTED_MISSING_QUOTE:
|
|
||||||
case DUPLICATE_FRAMESET:
|
case DUPLICATE_FRAMESET:
|
||||||
|
case SUSPECTED_MISSING_QUOTE:
|
||||||
message = TY_(tidyMessageCreateWithNode)(doc, rpt, code, TidyError );
|
message = TY_(tidyMessageCreateWithNode)(doc, rpt, code, TidyError );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -447,12 +372,17 @@ void TY_(ReportFatal)( TidyDocImpl* doc, Node *element, Node *node, uint code)
|
||||||
message = TY_(tidyMessageCreateWithNode)(doc, node, code, TidyError, node->element, element->element );
|
message = TY_(tidyMessageCreateWithNode)(doc, node, code, TidyError, node->element, element->element );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case UNEXPECTED_ENDTAG: /* generated by XML docs */
|
case UNEXPECTED_ENDTAG_ERR: /* generated by XML docs */
|
||||||
message = TY_(tidyMessageCreateWithNode)(doc, node, code, TidyError, node->element );
|
message = TY_(tidyMessageCreateWithNode)(doc, node, code, TidyError, node->element );
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
messageOut( message );
|
messageOut( message );
|
||||||
|
|
||||||
|
/* Although the callback is always executed for message2, it's only
|
||||||
|
added to the output sink TidyShowWarnings is enabled. */
|
||||||
|
if (cfgBool( doc, TidyShowWarnings ))
|
||||||
|
messageOut( message2 );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -49,9 +49,6 @@ ctmbstr TY_(tidyLibraryVersion)(void);
|
||||||
|
|
||||||
|
|
||||||
void TY_(ReportNotice)(TidyDocImpl* doc, Node *element, Node *node, uint code);
|
void TY_(ReportNotice)(TidyDocImpl* doc, Node *element, Node *node, uint code);
|
||||||
void TY_(ReportWarning)(TidyDocImpl* doc, Node *element, Node *node, uint code);
|
|
||||||
void TY_(ReportError)(TidyDocImpl* doc, Node* element, Node* node, uint code);
|
|
||||||
void TY_(ReportFatal)(TidyDocImpl* doc, Node* element, Node* node, uint code);
|
|
||||||
|
|
||||||
|
|
||||||
/** @} */
|
/** @} */
|
||||||
|
|
362
src/parser.c
362
src/parser.c
File diff suppressed because it is too large
Load diff
|
@ -990,7 +990,7 @@ void CheckTABLE( TidyDocImpl* doc, Node *node )
|
||||||
if (HasSummary && isHTML5)
|
if (HasSummary && isHTML5)
|
||||||
{
|
{
|
||||||
/* #210 - has summary, and is HTML5, then report obsolete */
|
/* #210 - has summary, and is HTML5, then report obsolete */
|
||||||
TY_(ReportWarning)(doc, node, node, BAD_SUMMARY_HTML5);
|
TY_(ReportNotice)(doc, node, node, BAD_SUMMARY_HTML5);
|
||||||
}
|
}
|
||||||
else if (!HasSummary && !isHTML5)
|
else if (!HasSummary && !isHTML5)
|
||||||
{
|
{
|
||||||
|
|
|
@ -1640,7 +1640,7 @@ void TY_(CheckHTML5)( TidyDocImpl* doc, Node* node )
|
||||||
TY_(CoerceNode)(doc, node, TidyTag_ABBR, warn, no);
|
TY_(CoerceNode)(doc, node, TidyTag_ABBR, warn, no);
|
||||||
} else {
|
} else {
|
||||||
if ( !already_strict )
|
if ( !already_strict )
|
||||||
TY_(ReportWarning)(doc, node, node, REMOVED_HTML5);
|
TY_(ReportNotice)(doc, node, node, REMOVED_HTML5);
|
||||||
}
|
}
|
||||||
} else
|
} else
|
||||||
if ( nodeIsAPPLET(node) ) {
|
if ( nodeIsAPPLET(node) ) {
|
||||||
|
@ -1651,7 +1651,7 @@ void TY_(CheckHTML5)( TidyDocImpl* doc, Node* node )
|
||||||
TY_(CoerceNode)(doc, node, TidyTag_OBJECT, warn, no);
|
TY_(CoerceNode)(doc, node, TidyTag_OBJECT, warn, no);
|
||||||
} else {
|
} else {
|
||||||
if ( !already_strict )
|
if ( !already_strict )
|
||||||
TY_(ReportWarning)(doc, node, node, REMOVED_HTML5);
|
TY_(ReportNotice)(doc, node, node, REMOVED_HTML5);
|
||||||
}
|
}
|
||||||
} else
|
} else
|
||||||
if ( nodeIsBASEFONT(node) ) {
|
if ( nodeIsBASEFONT(node) ) {
|
||||||
|
@ -1664,7 +1664,7 @@ void TY_(CheckHTML5)( TidyDocImpl* doc, Node* node )
|
||||||
* - For now just report a warning
|
* - For now just report a warning
|
||||||
*/
|
*/
|
||||||
if ( !already_strict )
|
if ( !already_strict )
|
||||||
TY_(ReportWarning)(doc, node, node, REMOVED_HTML5);
|
TY_(ReportNotice)(doc, node, node, REMOVED_HTML5);
|
||||||
} else
|
} else
|
||||||
if ( nodeIsBIG(node) ) {
|
if ( nodeIsBIG(node) ) {
|
||||||
/* big: CSS equivalent 'font-size:larger'
|
/* big: CSS equivalent 'font-size:larger'
|
||||||
|
@ -1686,7 +1686,7 @@ void TY_(CheckHTML5)( TidyDocImpl* doc, Node* node )
|
||||||
TY_(CoerceNode)(doc, node, TidyTag_SPAN, warn, no);
|
TY_(CoerceNode)(doc, node, TidyTag_SPAN, warn, no);
|
||||||
} else {
|
} else {
|
||||||
if ( !already_strict )
|
if ( !already_strict )
|
||||||
TY_(ReportWarning)(doc, node, node, REMOVED_HTML5);
|
TY_(ReportNotice)(doc, node, node, REMOVED_HTML5);
|
||||||
}
|
}
|
||||||
} else
|
} else
|
||||||
if ( nodeIsCENTER(node) ) {
|
if ( nodeIsCENTER(node) ) {
|
||||||
|
@ -1697,7 +1697,7 @@ void TY_(CheckHTML5)( TidyDocImpl* doc, Node* node )
|
||||||
* see: static Bool Center2Div( TidyDocImpl* doc, Node *node, Node **pnode)
|
* see: static Bool Center2Div( TidyDocImpl* doc, Node *node, Node **pnode)
|
||||||
*/
|
*/
|
||||||
if ( !already_strict )
|
if ( !already_strict )
|
||||||
TY_(ReportWarning)(doc, node, node, REMOVED_HTML5);
|
TY_(ReportNotice)(doc, node, node, REMOVED_HTML5);
|
||||||
} else
|
} else
|
||||||
if ( nodeIsDIR(node) ) {
|
if ( nodeIsDIR(node) ) {
|
||||||
/* dir: replace by <ul>
|
/* dir: replace by <ul>
|
||||||
|
@ -1705,7 +1705,7 @@ void TY_(CheckHTML5)( TidyDocImpl* doc, Node* node )
|
||||||
* Should this be CHANGED???
|
* Should this be CHANGED???
|
||||||
*/
|
*/
|
||||||
if ( !already_strict )
|
if ( !already_strict )
|
||||||
TY_(ReportWarning)(doc, node, node, REMOVED_HTML5);
|
TY_(ReportNotice)(doc, node, node, REMOVED_HTML5);
|
||||||
} else
|
} else
|
||||||
if ( nodeIsFONT(node) ) {
|
if ( nodeIsFONT(node) ) {
|
||||||
/* Tidy already handles this -
|
/* Tidy already handles this -
|
||||||
|
@ -1714,13 +1714,13 @@ void TY_(CheckHTML5)( TidyDocImpl* doc, Node* node )
|
||||||
* done in Bool Font2Span( TidyDocImpl* doc, Node *node, Node **pnode ) (I think?)
|
* done in Bool Font2Span( TidyDocImpl* doc, Node *node, Node **pnode ) (I think?)
|
||||||
*/
|
*/
|
||||||
if ( !already_strict )
|
if ( !already_strict )
|
||||||
TY_(ReportWarning)(doc, node, node, REMOVED_HTML5);
|
TY_(ReportNotice)(doc, node, node, REMOVED_HTML5);
|
||||||
} else
|
} else
|
||||||
if (( nodesIsFRAME(node) ) || ( nodeIsFRAMESET(node) ) || ( nodeIsNOFRAMES(node) )) {
|
if (( nodesIsFRAME(node) ) || ( nodeIsFRAMESET(node) ) || ( nodeIsNOFRAMES(node) )) {
|
||||||
/* YOW: What to do here?????? Maybe <iframe>????
|
/* YOW: What to do here?????? Maybe <iframe>????
|
||||||
*/
|
*/
|
||||||
if ( !already_strict )
|
if ( !already_strict )
|
||||||
TY_(ReportWarning)(doc, node, node, REMOVED_HTML5);
|
TY_(ReportNotice)(doc, node, node, REMOVED_HTML5);
|
||||||
} else
|
} else
|
||||||
if ( nodeIsSTRIKE(node) ) {
|
if ( nodeIsSTRIKE(node) ) {
|
||||||
/* strike: CSS equivalent 'text-decoration:line-through'
|
/* strike: CSS equivalent 'text-decoration:line-through'
|
||||||
|
@ -1731,7 +1731,7 @@ void TY_(CheckHTML5)( TidyDocImpl* doc, Node* node )
|
||||||
TY_(CoerceNode)(doc, node, TidyTag_SPAN, warn, no);
|
TY_(CoerceNode)(doc, node, TidyTag_SPAN, warn, no);
|
||||||
} else {
|
} else {
|
||||||
if ( !already_strict )
|
if ( !already_strict )
|
||||||
TY_(ReportWarning)(doc, node, node, REMOVED_HTML5);
|
TY_(ReportNotice)(doc, node, node, REMOVED_HTML5);
|
||||||
}
|
}
|
||||||
} else
|
} else
|
||||||
if ( nodeIsTT(node) ) {
|
if ( nodeIsTT(node) ) {
|
||||||
|
@ -1745,14 +1745,14 @@ void TY_(CheckHTML5)( TidyDocImpl* doc, Node* node )
|
||||||
TY_(CoerceNode)(doc, node, TidyTag_SPAN, warn, no);
|
TY_(CoerceNode)(doc, node, TidyTag_SPAN, warn, no);
|
||||||
} else {
|
} else {
|
||||||
if ( !already_strict )
|
if ( !already_strict )
|
||||||
TY_(ReportWarning)(doc, node, node, REMOVED_HTML5);
|
TY_(ReportNotice)(doc, node, node, REMOVED_HTML5);
|
||||||
}
|
}
|
||||||
} else
|
} else
|
||||||
if (TY_(nodeIsElement)(node)) {
|
if (TY_(nodeIsElement)(node)) {
|
||||||
if (node->tag) {
|
if (node->tag) {
|
||||||
if ( (!(node->tag->versions & VERS_HTML5) && !(node->tag->versions & VERS_PROPRIETARY)) || (inRemovedInfo(node->tag->id)) ) {
|
if ( (!(node->tag->versions & VERS_HTML5) && !(node->tag->versions & VERS_PROPRIETARY)) || (inRemovedInfo(node->tag->id)) ) {
|
||||||
if ( !already_strict )
|
if ( !already_strict )
|
||||||
TY_(ReportWarning)(doc, node, node, REMOVED_HTML5);
|
TY_(ReportNotice)(doc, node, node, REMOVED_HTML5);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1805,7 +1805,7 @@ void TY_(CheckHTMLTagsAttribsVersions)( TidyDocImpl* doc, Node* node )
|
||||||
/* Version mismatches take priority. */
|
/* Version mismatches take priority. */
|
||||||
if ( check_versions && !(node->tag->versions & version) )
|
if ( check_versions && !(node->tag->versions & version) )
|
||||||
{
|
{
|
||||||
TY_(ReportError)(doc, NULL, node, tagReportType );
|
TY_(ReportNotice)(doc, NULL, node, tagReportType );
|
||||||
}
|
}
|
||||||
/* If it's not mismatched, it could still be proprietary. */
|
/* If it's not mismatched, it could still be proprietary. */
|
||||||
else if ( node->tag->versions & VERS_PROPRIETARY )
|
else if ( node->tag->versions & VERS_PROPRIETARY )
|
||||||
|
@ -1825,7 +1825,7 @@ void TY_(CheckHTMLTagsAttribsVersions)( TidyDocImpl* doc, Node* node )
|
||||||
|
|
||||||
if ( (htmlIs5 && !tagLooksCustom) || !htmlIs5 )
|
if ( (htmlIs5 && !tagLooksCustom) || !htmlIs5 )
|
||||||
{
|
{
|
||||||
TY_(ReportError)(doc, NULL, node, PROPRIETARY_ELEMENT );
|
TY_(ReportNotice)(doc, NULL, node, PROPRIETARY_ELEMENT );
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( nodeIsLAYER(node) )
|
if ( nodeIsLAYER(node) )
|
||||||
|
@ -2140,7 +2140,7 @@ int tidyDocCleanAndRepair( TidyDocImpl* doc )
|
||||||
|
|
||||||
if ( !doc->lexer->isvoyager && doc->xmlDetected )
|
if ( !doc->lexer->isvoyager && doc->xmlDetected )
|
||||||
{
|
{
|
||||||
TY_(ReportWarning)(doc, NULL, TY_(FindXmlDecl)(doc), XML_DECLARATION_DETECTED );
|
TY_(ReportNotice)(doc, NULL, TY_(FindXmlDecl)(doc), XML_DECLARATION_DETECTED );
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue