void TY_(ReportEntityError)( TidyDocImpl* doc, uint code, ctmbstr entity, int ARG_UNUSED(c) ) { ctmbstr fmt; ctmbstr entityname = ( entity ? entity : "NULL" ); fmt = tidyLocalizedString(code); if (fmt) messageLexer( doc, TidyWarning, code, fmt, entityname ); }
void TY_(ReportEncodingWarning)(TidyDocImpl* doc, uint code, uint encoding) { switch(code) { case ENCODING_MISMATCH: messageLexer(doc, TidyWarning, code, tidyLocalizedString(code), TY_(CharEncodingName)(doc->docIn->encoding), TY_(CharEncodingName)(encoding)); doc->badChars |= BC_ENCODING_MISMATCH; break; } }
void TY_(ReportEncodingError)(TidyDocImpl* doc, uint code, uint c, Bool discarded) { char buf[ 32 ] = {'\0'}; ctmbstr action = tidyLocalizedString(discarded ? STRING_DISCARDING : STRING_REPLACING); ctmbstr fmt = tidyLocalizedString(code); /* An encoding mismatch is currently treated as a non-fatal error */ switch (code) { case VENDOR_SPECIFIC_CHARS: NtoS(c, buf); doc->badChars |= BC_VENDOR_SPECIFIC_CHARS; break; case INVALID_SGML_CHARS: NtoS(c, buf); doc->badChars |= BC_INVALID_SGML_CHARS; break; case INVALID_UTF8: TY_(tmbsnprintf)(buf, sizeof(buf), "U+%04X", c); doc->badChars |= BC_INVALID_UTF8; break; #if SUPPORT_UTF16_ENCODINGS case INVALID_UTF16: TY_(tmbsnprintf)(buf, sizeof(buf), "U+%04X", c); doc->badChars |= BC_INVALID_UTF16; break; #endif case INVALID_NCR: NtoS(c, buf); doc->badChars |= BC_INVALID_NCR; break; } if (fmt) messageLexer( doc, TidyWarning, code, fmt, action, buf ); }
void TY_(ReportAttrError)(TidyDocImpl* doc, Node *node, AttVal *av, uint code) { char const *name = "NULL", *value = "NULL"; char tagdesc[64]; ctmbstr fmt = tidyLocalizedString(code); uint version; ctmbstr extra_string; assert( fmt != NULL ); TagToString(node, tagdesc, sizeof(tagdesc)); if (av) { if (av->attribute) name = av->attribute; if (av->value) value = av->value; } switch (code) { case UNKNOWN_ATTRIBUTE: case INSERTING_ATTRIBUTE: case MISSING_ATTR_VALUE: case XML_ATTRIBUTE_VALUE: case PROPRIETARY_ATTRIBUTE: case JOINING_ATTRIBUTE: messageNode(doc, TidyWarning, code, node, fmt, tagdesc, name); break; case MISMATCHED_ATTRIBUTE_WARN: version = doc->lexer->versionEmitted == 0 ? doc->lexer->doctype : doc->lexer->versionEmitted; extra_string = TY_(HTMLVersionNameFromCode)(version, 0); if (!extra_string) extra_string = tidyLocalizedString(STRING_HTML_PROPRIETARY); messageNode(doc, TidyWarning, code, node, fmt, tagdesc, name, extra_string); break; case MISMATCHED_ATTRIBUTE_ERROR: version = doc->lexer->versionEmitted == 0 ? doc->lexer->doctype : doc->lexer->versionEmitted; extra_string = TY_(HTMLVersionNameFromCode)(version, 0); if (!extra_string) extra_string = tidyLocalizedString(STRING_HTML_PROPRIETARY); messageNode(doc, TidyError, code, node, fmt, tagdesc, name, extra_string); break; case BAD_ATTRIBUTE_VALUE: case BAD_ATTRIBUTE_VALUE_REPLACED: case INVALID_ATTRIBUTE: case INSERTING_AUTO_ATTRIBUTE: messageNode(doc, TidyWarning, code, node, fmt, tagdesc, name, value); break; case UNEXPECTED_QUOTEMARK: case MISSING_QUOTEMARK: case ID_NAME_MISMATCH: case BACKSLASH_IN_URI: case FIXED_BACKSLASH: case ILLEGAL_URI_REFERENCE: case ESCAPED_ILLEGAL_URI: case NEWLINE_IN_URI: case WHITE_IN_URI: case UNEXPECTED_GT: case INVALID_XML_ID: case UNEXPECTED_EQUALSIGN: messageNode(doc, TidyWarning, code, node, fmt, tagdesc); break; case XML_ID_SYNTAX: case PROPRIETARY_ATTR_VALUE: case ANCHOR_NOT_UNIQUE: case ATTR_VALUE_NOT_LCASE: messageNode(doc, TidyWarning, code, node, fmt, tagdesc, value); break; case MISSING_IMAGEMAP: messageNode(doc, TidyWarning, code, node, fmt, tagdesc); doc->badAccess |= BA_MISSING_IMAGE_MAP; break; case REPEATED_ATTRIBUTE: messageNode(doc, TidyWarning, code, node, fmt, tagdesc, value, name); break; case UNEXPECTED_END_OF_FILE_ATTR: /* on end of file adjust reported position to end of input */ doc->lexer->lines = doc->docIn->curline; doc->lexer->columns = doc->docIn->curcol; messageLexer(doc, TidyWarning, code, fmt, tagdesc); break; } }
void TY_(ReportSurrogateError)(TidyDocImpl* doc, uint code, uint c1, uint c2) { ctmbstr fmt = tidyLocalizedString(code); if (fmt) messageLexer(doc, TidyWarning, code, fmt, c1, c2); }