1
0
mirror of https://gitlab.gnome.org/GNOME/libxml2.git synced 2025-07-29 11:41:22 +03:00

more code cleanup, especially around error messages, the HTML parser has

* HTMLparser.c Makefile.am legacy.c parser.c parserInternals.c
  include/libxml/xmlerror.h: more code cleanup, especially around
  error messages, the HTML parser has now been upgraded to the new
  handling.
* result/HTML/*: a few changes in the resulting error messages
Daniel
This commit is contained in:
Daniel Veillard
2003-10-05 13:51:35 +00:00
parent 24eb97851d
commit f403d298c3
14 changed files with 708 additions and 817 deletions

View File

@ -1,3 +1,11 @@
Sun Oct 5 15:49:14 CEST 2003 Daniel Veillard <daniel@veillard.com>
* HTMLparser.c Makefile.am legacy.c parser.c parserInternals.c
include/libxml/xmlerror.h: more code cleanup, especially around
error messages, the HTML parser has now been upgraded to the new
handling.
* result/HTML/*: a few changes in the resulting error messages
Sat Oct 4 23:06:41 CEST 2003 Daniel Veillard <daniel@veillard.com> Sat Oct 4 23:06:41 CEST 2003 Daniel Veillard <daniel@veillard.com>
* parser.c include/libxml/xmlerror.h: more error/warning * parser.c include/libxml/xmlerror.h: more error/warning

File diff suppressed because it is too large Load Diff

View File

@ -559,10 +559,10 @@ SAXtests : testSAX$(EXEEXT)
if [ ! -d $$i ] ; then \ if [ ! -d $$i ] ; then \
if [ ! -f $(srcdir)/result/$$name.sax ] ; then \ if [ ! -f $(srcdir)/result/$$name.sax ] ; then \
echo New test file $$name ; \ echo New test file $$name ; \
$(CHECKER) $(top_builddir)/testSAX $$i > $(srcdir)/result/$$name.sax ; \ $(CHECKER) $(top_builddir)/testSAX $$i > $(srcdir)/result/$$name.sax 2> /dev/null ; \
grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
else \ else \
log=`$(CHECKER) $(top_builddir)/testSAX $$i > result.$$name ; \ log=`$(CHECKER) $(top_builddir)/testSAX $$i > result.$$name 2> /dev/null ; \
grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
diff $(srcdir)/result/$$name.sax result.$$name` ; \ diff $(srcdir)/result/$$name.sax result.$$name` ; \
if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \ if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \

View File

@ -247,7 +247,9 @@ typedef enum {
XML_WAR_UNKNOWN_VERSION, XML_WAR_UNKNOWN_VERSION,
XML_WAR_LANG_VALUE, XML_WAR_LANG_VALUE,
XML_WAR_NS_URI, XML_WAR_NS_URI,
XML_WAR_NS_URI_RELATIVE XML_WAR_NS_URI_RELATIVE,
XML_HTML_STRUCURE_ERROR,
XML_HTML_UNKNOWN_TAG
} xmlParserErrors; } xmlParserErrors;
/** /**

136
legacy.c
View File

@ -17,6 +17,7 @@
#include <libxml/entities.h> #include <libxml/entities.h>
#include <libxml/SAX.h> #include <libxml/SAX.h>
#include <libxml/parserInternals.h> #include <libxml/parserInternals.h>
#include <libxml/HTMLparser.h>
void xmlUpgradeOldNs(xmlDocPtr doc); void xmlUpgradeOldNs(xmlDocPtr doc);
@ -26,13 +27,49 @@ void xmlUpgradeOldNs(xmlDocPtr doc);
* * * *
************************************************************************/ ************************************************************************/
xmlChar *htmlDecodeEntities(htmlParserCtxtPtr ctxt, int len, xmlChar end,
xmlChar end2, xmlChar end3);
/**
* htmlDecodeEntities:
* @ctxt: the parser context
* @len: the len to decode (in bytes !), -1 for no size limit
* @end: an end marker xmlChar, 0 if none
* @end2: an end marker xmlChar, 0 if none
* @end3: an end marker xmlChar, 0 if none
*
* Substitute the HTML entities by their value
*
* DEPRECATED !!!!
*
* Returns A newly allocated string with the substitution done. The caller
* must deallocate it !
*/
xmlChar *
htmlDecodeEntities(htmlParserCtxtPtr ctxt ATTRIBUTE_UNUSED,
int len ATTRIBUTE_UNUSED, xmlChar end ATTRIBUTE_UNUSED,
xmlChar end2 ATTRIBUTE_UNUSED,
xmlChar end3 ATTRIBUTE_UNUSED)
{
static int deprecated = 0;
if (!deprecated) {
xmlGenericError(xmlGenericErrorContext,
"htmlDecodeEntities() deprecated function reached\n");
deprecated = 1;
}
return (NULL);
}
/** /**
* xmlInitializePredefinedEntities: * xmlInitializePredefinedEntities:
* *
* Set up the predefined entities. * Set up the predefined entities.
* Deprecated call * Deprecated call
*/ */
void xmlInitializePredefinedEntities(void) { void
xmlInitializePredefinedEntities(void)
{
} }
/** /**
@ -41,7 +78,9 @@ void xmlInitializePredefinedEntities(void) {
* Cleanup up the predefined entities table. * Cleanup up the predefined entities table.
* Deprecated call * Deprecated call
*/ */
void xmlCleanupPredefinedEntities(void) { void
xmlCleanupPredefinedEntities(void)
{
} }
static const char *xmlFeaturesList[] = { static const char *xmlFeaturesList[] = {
@ -101,7 +140,8 @@ static const char *xmlFeaturesList[] = {
* strings must not be deallocated * strings must not be deallocated
*/ */
int int
xmlGetFeaturesList(int *len, const char **result) { xmlGetFeaturesList(int *len, const char **result)
{
int ret, i; int ret, i;
ret = sizeof(xmlFeaturesList) / sizeof(xmlFeaturesList[0]); ret = sizeof(xmlFeaturesList) / sizeof(xmlFeaturesList[0]);
@ -127,7 +167,8 @@ xmlGetFeaturesList(int *len, const char **result) {
* Returns -1 in case or error, 0 otherwise * Returns -1 in case or error, 0 otherwise
*/ */
int int
xmlGetFeature(xmlParserCtxtPtr ctxt, const char *name, void *result) { xmlGetFeature(xmlParserCtxtPtr ctxt, const char *name, void *result)
{
if ((ctxt == NULL) || (name == NULL) || (result == NULL)) if ((ctxt == NULL) || (name == NULL) || (result == NULL))
return (-1); return (-1);
@ -162,9 +203,11 @@ xmlGetFeature(xmlParserCtxtPtr ctxt, const char *name, void *result) {
} else if (!strcmp(name, "SAX function isStandalone")) { } else if (!strcmp(name, "SAX function isStandalone")) {
*((isStandaloneSAXFunc *) result) = ctxt->sax->isStandalone; *((isStandaloneSAXFunc *) result) = ctxt->sax->isStandalone;
} else if (!strcmp(name, "SAX function hasInternalSubset")) { } else if (!strcmp(name, "SAX function hasInternalSubset")) {
*((hasInternalSubsetSAXFunc *) result) = ctxt->sax->hasInternalSubset; *((hasInternalSubsetSAXFunc *) result) =
ctxt->sax->hasInternalSubset;
} else if (!strcmp(name, "SAX function hasExternalSubset")) { } else if (!strcmp(name, "SAX function hasExternalSubset")) {
*((hasExternalSubsetSAXFunc *) result) = ctxt->sax->hasExternalSubset; *((hasExternalSubsetSAXFunc *) result) =
ctxt->sax->hasExternalSubset;
} else if (!strcmp(name, "SAX function resolveEntity")) { } else if (!strcmp(name, "SAX function resolveEntity")) {
*((resolveEntitySAXFunc *) result) = ctxt->sax->resolveEntity; *((resolveEntitySAXFunc *) result) = ctxt->sax->resolveEntity;
} else if (!strcmp(name, "SAX function getEntity")) { } else if (!strcmp(name, "SAX function getEntity")) {
@ -178,9 +221,11 @@ xmlGetFeature(xmlParserCtxtPtr ctxt, const char *name, void *result) {
} else if (!strcmp(name, "SAX function elementDecl")) { } else if (!strcmp(name, "SAX function elementDecl")) {
*((elementDeclSAXFunc *) result) = ctxt->sax->elementDecl; *((elementDeclSAXFunc *) result) = ctxt->sax->elementDecl;
} else if (!strcmp(name, "SAX function unparsedEntityDecl")) { } else if (!strcmp(name, "SAX function unparsedEntityDecl")) {
*((unparsedEntityDeclSAXFunc *) result) = ctxt->sax->unparsedEntityDecl; *((unparsedEntityDeclSAXFunc *) result) =
ctxt->sax->unparsedEntityDecl;
} else if (!strcmp(name, "SAX function setDocumentLocator")) { } else if (!strcmp(name, "SAX function setDocumentLocator")) {
*((setDocumentLocatorSAXFunc *) result) = ctxt->sax->setDocumentLocator; *((setDocumentLocatorSAXFunc *) result) =
ctxt->sax->setDocumentLocator;
} else if (!strcmp(name, "SAX function startDocument")) { } else if (!strcmp(name, "SAX function startDocument")) {
*((startDocumentSAXFunc *) result) = ctxt->sax->startDocument; *((startDocumentSAXFunc *) result) = ctxt->sax->startDocument;
} else if (!strcmp(name, "SAX function endDocument")) { } else if (!strcmp(name, "SAX function endDocument")) {
@ -194,9 +239,11 @@ xmlGetFeature(xmlParserCtxtPtr ctxt, const char *name, void *result) {
} else if (!strcmp(name, "SAX function characters")) { } else if (!strcmp(name, "SAX function characters")) {
*((charactersSAXFunc *) result) = ctxt->sax->characters; *((charactersSAXFunc *) result) = ctxt->sax->characters;
} else if (!strcmp(name, "SAX function ignorableWhitespace")) { } else if (!strcmp(name, "SAX function ignorableWhitespace")) {
*((ignorableWhitespaceSAXFunc *) result) = ctxt->sax->ignorableWhitespace; *((ignorableWhitespaceSAXFunc *) result) =
ctxt->sax->ignorableWhitespace;
} else if (!strcmp(name, "SAX function processingInstruction")) { } else if (!strcmp(name, "SAX function processingInstruction")) {
*((processingInstructionSAXFunc *) result) = ctxt->sax->processingInstruction; *((processingInstructionSAXFunc *) result) =
ctxt->sax->processingInstruction;
} else if (!strcmp(name, "SAX function comment")) { } else if (!strcmp(name, "SAX function comment")) {
*((commentSAXFunc *) result) = ctxt->sax->comment; *((commentSAXFunc *) result) = ctxt->sax->comment;
} else if (!strcmp(name, "SAX function warning")) { } else if (!strcmp(name, "SAX function warning")) {
@ -206,7 +253,8 @@ xmlGetFeature(xmlParserCtxtPtr ctxt, const char *name, void *result) {
} else if (!strcmp(name, "SAX function fatalError")) { } else if (!strcmp(name, "SAX function fatalError")) {
*((fatalErrorSAXFunc *) result) = ctxt->sax->fatalError; *((fatalErrorSAXFunc *) result) = ctxt->sax->fatalError;
} else if (!strcmp(name, "SAX function getParameterEntity")) { } else if (!strcmp(name, "SAX function getParameterEntity")) {
*((getParameterEntitySAXFunc *) result) = ctxt->sax->getParameterEntity; *((getParameterEntitySAXFunc *) result) =
ctxt->sax->getParameterEntity;
} else if (!strcmp(name, "SAX function cdataBlock")) { } else if (!strcmp(name, "SAX function cdataBlock")) {
*((cdataBlockSAXFunc *) result) = ctxt->sax->cdataBlock; *((cdataBlockSAXFunc *) result) = ctxt->sax->cdataBlock;
} else if (!strcmp(name, "SAX function externalSubset")) { } else if (!strcmp(name, "SAX function externalSubset")) {
@ -228,12 +276,14 @@ xmlGetFeature(xmlParserCtxtPtr ctxt, const char *name, void *result) {
* Returns -1 in case or error, 0 otherwise * Returns -1 in case or error, 0 otherwise
*/ */
int int
xmlSetFeature(xmlParserCtxtPtr ctxt, const char *name, void *value) { xmlSetFeature(xmlParserCtxtPtr ctxt, const char *name, void *value)
{
if ((ctxt == NULL) || (name == NULL) || (value == NULL)) if ((ctxt == NULL) || (name == NULL) || (value == NULL))
return (-1); return (-1);
if (!strcmp(name, "validate")) { if (!strcmp(name, "validate")) {
int newvalidate = *((int *) value); int newvalidate = *((int *) value);
if ((!ctxt->validate) && (newvalidate != 0)) { if ((!ctxt->validate) && (newvalidate != 0)) {
if (ctxt->vctxt.warning == NULL) if (ctxt->vctxt.warning == NULL)
ctxt->vctxt.warning = xmlParserValidityWarning; ctxt->vctxt.warning = xmlParserValidityWarning;
@ -271,9 +321,11 @@ xmlSetFeature(xmlParserCtxtPtr ctxt, const char *name, void *value) {
} else if (!strcmp(name, "SAX function isStandalone")) { } else if (!strcmp(name, "SAX function isStandalone")) {
ctxt->sax->isStandalone = *((isStandaloneSAXFunc *) value); ctxt->sax->isStandalone = *((isStandaloneSAXFunc *) value);
} else if (!strcmp(name, "SAX function hasInternalSubset")) { } else if (!strcmp(name, "SAX function hasInternalSubset")) {
ctxt->sax->hasInternalSubset = *((hasInternalSubsetSAXFunc *) value); ctxt->sax->hasInternalSubset =
*((hasInternalSubsetSAXFunc *) value);
} else if (!strcmp(name, "SAX function hasExternalSubset")) { } else if (!strcmp(name, "SAX function hasExternalSubset")) {
ctxt->sax->hasExternalSubset = *((hasExternalSubsetSAXFunc *) value); ctxt->sax->hasExternalSubset =
*((hasExternalSubsetSAXFunc *) value);
} else if (!strcmp(name, "SAX function resolveEntity")) { } else if (!strcmp(name, "SAX function resolveEntity")) {
ctxt->sax->resolveEntity = *((resolveEntitySAXFunc *) value); ctxt->sax->resolveEntity = *((resolveEntitySAXFunc *) value);
} else if (!strcmp(name, "SAX function getEntity")) { } else if (!strcmp(name, "SAX function getEntity")) {
@ -287,9 +339,11 @@ xmlSetFeature(xmlParserCtxtPtr ctxt, const char *name, void *value) {
} else if (!strcmp(name, "SAX function elementDecl")) { } else if (!strcmp(name, "SAX function elementDecl")) {
ctxt->sax->elementDecl = *((elementDeclSAXFunc *) value); ctxt->sax->elementDecl = *((elementDeclSAXFunc *) value);
} else if (!strcmp(name, "SAX function unparsedEntityDecl")) { } else if (!strcmp(name, "SAX function unparsedEntityDecl")) {
ctxt->sax->unparsedEntityDecl = *((unparsedEntityDeclSAXFunc *) value); ctxt->sax->unparsedEntityDecl =
*((unparsedEntityDeclSAXFunc *) value);
} else if (!strcmp(name, "SAX function setDocumentLocator")) { } else if (!strcmp(name, "SAX function setDocumentLocator")) {
ctxt->sax->setDocumentLocator = *((setDocumentLocatorSAXFunc *) value); ctxt->sax->setDocumentLocator =
*((setDocumentLocatorSAXFunc *) value);
} else if (!strcmp(name, "SAX function startDocument")) { } else if (!strcmp(name, "SAX function startDocument")) {
ctxt->sax->startDocument = *((startDocumentSAXFunc *) value); ctxt->sax->startDocument = *((startDocumentSAXFunc *) value);
} else if (!strcmp(name, "SAX function endDocument")) { } else if (!strcmp(name, "SAX function endDocument")) {
@ -303,9 +357,11 @@ xmlSetFeature(xmlParserCtxtPtr ctxt, const char *name, void *value) {
} else if (!strcmp(name, "SAX function characters")) { } else if (!strcmp(name, "SAX function characters")) {
ctxt->sax->characters = *((charactersSAXFunc *) value); ctxt->sax->characters = *((charactersSAXFunc *) value);
} else if (!strcmp(name, "SAX function ignorableWhitespace")) { } else if (!strcmp(name, "SAX function ignorableWhitespace")) {
ctxt->sax->ignorableWhitespace = *((ignorableWhitespaceSAXFunc *) value); ctxt->sax->ignorableWhitespace =
*((ignorableWhitespaceSAXFunc *) value);
} else if (!strcmp(name, "SAX function processingInstruction")) { } else if (!strcmp(name, "SAX function processingInstruction")) {
ctxt->sax->processingInstruction = *((processingInstructionSAXFunc *) value); ctxt->sax->processingInstruction =
*((processingInstructionSAXFunc *) value);
} else if (!strcmp(name, "SAX function comment")) { } else if (!strcmp(name, "SAX function comment")) {
ctxt->sax->comment = *((commentSAXFunc *) value); ctxt->sax->comment = *((commentSAXFunc *) value);
} else if (!strcmp(name, "SAX function warning")) { } else if (!strcmp(name, "SAX function warning")) {
@ -315,7 +371,8 @@ xmlSetFeature(xmlParserCtxtPtr ctxt, const char *name, void *value) {
} else if (!strcmp(name, "SAX function fatalError")) { } else if (!strcmp(name, "SAX function fatalError")) {
ctxt->sax->fatalError = *((fatalErrorSAXFunc *) value); ctxt->sax->fatalError = *((fatalErrorSAXFunc *) value);
} else if (!strcmp(name, "SAX function getParameterEntity")) { } else if (!strcmp(name, "SAX function getParameterEntity")) {
ctxt->sax->getParameterEntity = *((getParameterEntitySAXFunc *) value); ctxt->sax->getParameterEntity =
*((getParameterEntitySAXFunc *) value);
} else if (!strcmp(name, "SAX function cdataBlock")) { } else if (!strcmp(name, "SAX function cdataBlock")) {
ctxt->sax->cdataBlock = *((cdataBlockSAXFunc *) value); ctxt->sax->cdataBlock = *((cdataBlockSAXFunc *) value);
} else if (!strcmp(name, "SAX function externalSubset")) { } else if (!strcmp(name, "SAX function externalSubset")) {
@ -666,7 +723,8 @@ xmlUpgradeOldNs(xmlDocPtr doc ATTRIBUTE_UNUSED)
*/ */
const xmlChar * const xmlChar *
xmlEncodeEntities(xmlDocPtr doc ATTRIBUTE_UNUSED, xmlEncodeEntities(xmlDocPtr doc ATTRIBUTE_UNUSED,
const xmlChar *input ATTRIBUTE_UNUSED) { const xmlChar * input ATTRIBUTE_UNUSED)
{
static int warning = 1; static int warning = 1;
if (warning) { if (warning) {
@ -857,7 +915,8 @@ externalSubset(void *ctx, const xmlChar *name,
* Returns the xmlParserInputPtr if inlined or NULL for DOM behaviour. * Returns the xmlParserInputPtr if inlined or NULL for DOM behaviour.
*/ */
xmlParserInputPtr xmlParserInputPtr
resolveEntity(void *ctx, const xmlChar *publicId, const xmlChar *systemId) resolveEntity(void *ctx, const xmlChar * publicId,
const xmlChar * systemId)
{ {
DEPRECATED("resolveEntity") DEPRECATED("resolveEntity")
return (xmlSAX2ResolveEntity(ctx, publicId, systemId)); return (xmlSAX2ResolveEntity(ctx, publicId, systemId));
@ -912,7 +971,8 @@ getParameterEntity(void *ctx, const xmlChar *name)
*/ */
void void
entityDecl(void *ctx, const xmlChar * name, int type, entityDecl(void *ctx, const xmlChar * name, int type,
const xmlChar *publicId, const xmlChar *systemId, xmlChar *content) const xmlChar * publicId, const xmlChar * systemId,
xmlChar * content)
{ {
DEPRECATED("entityDecl") DEPRECATED("entityDecl")
xmlSAX2EntityDecl(ctx, name, type, publicId, systemId, content); xmlSAX2EntityDecl(ctx, name, type, publicId, systemId, content);
@ -937,7 +997,8 @@ attributeDecl(void *ctx, const xmlChar *elem, const xmlChar *fullname,
xmlEnumerationPtr tree) xmlEnumerationPtr tree)
{ {
DEPRECATED("attributeDecl") DEPRECATED("attributeDecl")
xmlSAX2AttributeDecl(ctx, elem, fullname, type, def, defaultValue, tree); xmlSAX2AttributeDecl(ctx, elem, fullname, type, def, defaultValue,
tree);
} }
/** /**
@ -993,7 +1054,8 @@ unparsedEntityDecl(void *ctx, const xmlChar *name,
const xmlChar * notationName) const xmlChar * notationName)
{ {
DEPRECATED("unparsedEntityDecl") DEPRECATED("unparsedEntityDecl")
xmlSAX2UnparsedEntityDecl(ctx, name, publicId, systemId, notationName); xmlSAX2UnparsedEntityDecl(ctx, name, publicId, systemId,
notationName);
} }
/** /**
@ -1006,7 +1068,8 @@ unparsedEntityDecl(void *ctx, const xmlChar *name,
* DEPRECATED * DEPRECATED
*/ */
void void
setDocumentLocator(void *ctx ATTRIBUTE_UNUSED, xmlSAXLocatorPtr loc ATTRIBUTE_UNUSED) setDocumentLocator(void *ctx ATTRIBUTE_UNUSED,
xmlSAXLocatorPtr loc ATTRIBUTE_UNUSED)
{ {
DEPRECATED("setDocumentLocator") DEPRECATED("setDocumentLocator")
} }
@ -1052,7 +1115,9 @@ endDocument(void *ctx)
* DEPRECATED: use xmlSAX2Attribute() * DEPRECATED: use xmlSAX2Attribute()
*/ */
void void
attribute(void *ctx ATTRIBUTE_UNUSED, const xmlChar *fullname ATTRIBUTE_UNUSED, const xmlChar *value ATTRIBUTE_UNUSED) attribute(void *ctx ATTRIBUTE_UNUSED,
const xmlChar * fullname ATTRIBUTE_UNUSED,
const xmlChar * value ATTRIBUTE_UNUSED)
{ {
DEPRECATED("attribute") DEPRECATED("attribute")
} }
@ -1130,7 +1195,9 @@ characters(void *ctx, const xmlChar *ch, int len)
* DEPRECATED: use xmlSAX2IgnorableWhitespace() * DEPRECATED: use xmlSAX2IgnorableWhitespace()
*/ */
void void
ignorableWhitespace(void *ctx ATTRIBUTE_UNUSED, const xmlChar *ch ATTRIBUTE_UNUSED, int len ATTRIBUTE_UNUSED) ignorableWhitespace(void *ctx ATTRIBUTE_UNUSED,
const xmlChar * ch ATTRIBUTE_UNUSED,
int len ATTRIBUTE_UNUSED)
{ {
DEPRECATED("ignorableWhitespace") DEPRECATED("ignorableWhitespace")
} }
@ -1162,7 +1229,9 @@ processingInstruction(void *ctx, const xmlChar *target,
* DEPRECATED * DEPRECATED
*/ */
void void
globalNamespace(void *ctx ATTRIBUTE_UNUSED, const xmlChar *href ATTRIBUTE_UNUSED, const xmlChar *prefix ATTRIBUTE_UNUSED) globalNamespace(void *ctx ATTRIBUTE_UNUSED,
const xmlChar * href ATTRIBUTE_UNUSED,
const xmlChar * prefix ATTRIBUTE_UNUSED)
{ {
DEPRECATED("globalNamespace") DEPRECATED("globalNamespace")
} }
@ -1177,7 +1246,8 @@ globalNamespace(void *ctx ATTRIBUTE_UNUSED, const xmlChar *href ATTRIBUTE_UNUSED
*/ */
void void
setNamespace(void *ctx ATTRIBUTE_UNUSED, const xmlChar *name ATTRIBUTE_UNUSED) setNamespace(void *ctx ATTRIBUTE_UNUSED,
const xmlChar * name ATTRIBUTE_UNUSED)
{ {
DEPRECATED("setNamespace") DEPRECATED("setNamespace")
} }
@ -1212,7 +1282,8 @@ getNamespace(void *ctx ATTRIBUTE_UNUSED)
*/ */
int int
checkNamespace(void *ctx ATTRIBUTE_UNUSED, xmlChar *namespace ATTRIBUTE_UNUSED) checkNamespace(void *ctx ATTRIBUTE_UNUSED,
xmlChar * namespace ATTRIBUTE_UNUSED)
{ {
DEPRECATED("checkNamespace") DEPRECATED("checkNamespace")
return (0); return (0);
@ -1228,7 +1299,9 @@ checkNamespace(void *ctx ATTRIBUTE_UNUSED, xmlChar *namespace ATTRIBUTE_UNUSED)
* DEPRECATED * DEPRECATED
*/ */
void void
namespaceDecl(void *ctx ATTRIBUTE_UNUSED, const xmlChar *href ATTRIBUTE_UNUSED, const xmlChar *prefix ATTRIBUTE_UNUSED) namespaceDecl(void *ctx ATTRIBUTE_UNUSED,
const xmlChar * href ATTRIBUTE_UNUSED,
const xmlChar * prefix ATTRIBUTE_UNUSED)
{ {
DEPRECATED("namespaceDecl") DEPRECATED("namespaceDecl")
} }
@ -1263,6 +1336,5 @@ cdataBlock(void *ctx, const xmlChar *value, int len)
DEPRECATED("cdataBlock") DEPRECATED("cdataBlock")
xmlSAX2CDataBlock(ctx, value, len); xmlSAX2CDataBlock(ctx, value, len);
} }
#endif /* LIBXML_LEGACY_ENABLED */ #endif /* LIBXML_LEGACY_ENABLED */

174
parser.c
View File

@ -128,7 +128,6 @@ xmlParseBalancedChunkMemoryInternal(xmlParserCtxtPtr oldctxt,
* * * *
************************************************************************/ ************************************************************************/
/** /**
* xmlErrMemory: * xmlErrMemory:
* @ctxt: an XML parser context * @ctxt: an XML parser context
@ -471,6 +470,32 @@ xmlFatalErrMsgInt(xmlParserCtxtPtr ctxt, xmlParserErrors error,
ctxt->disableSAX = 1; ctxt->disableSAX = 1;
} }
/**
* xmlFatalErrMsgStrIntStr:
* @ctxt: an XML parser context
* @error: the error number
* @msg: the error message
* @str1: an string info
* @val: an integer value
* @str2: an string info
*
* Handle a fatal parser error, i.e. violating Well-Formedness constraints
*/
static void
xmlFatalErrMsgStrIntStr(xmlParserCtxtPtr ctxt, xmlParserErrors error,
const char *msg, const xmlChar *str1, int val,
const xmlChar *str2)
{
ctxt->errNo = error;
__xmlRaiseError(NULL, NULL,
ctxt, NULL, XML_FROM_PARSER, error, XML_ERR_FATAL,
NULL, 0, (const char *) str1, (const char *) str2,
NULL, val, 0, msg, str1, val, str2);
ctxt->wellFormed = 0;
if (ctxt->recovery == 0)
ctxt->disableSAX = 1;
}
/** /**
* xmlFatalErrMsgStr: * xmlFatalErrMsgStr:
* @ctxt: an XML parser context * @ctxt: an XML parser context
@ -494,6 +519,26 @@ xmlFatalErrMsgStr(xmlParserCtxtPtr ctxt, xmlParserErrors error,
ctxt->disableSAX = 1; ctxt->disableSAX = 1;
} }
/**
* xmlErrMsgStr:
* @ctxt: an XML parser context
* @error: the error number
* @msg: the error message
* @val: a string value
*
* Handle a non fatal parser error
*/
static void
xmlErrMsgStr(xmlParserCtxtPtr ctxt, xmlParserErrors error,
const char *msg, const xmlChar * val)
{
ctxt->errNo = error;
__xmlRaiseError(NULL, NULL, ctxt, NULL,
XML_FROM_PARSER, error, XML_ERR_ERROR,
NULL, 0, (const char *) val, NULL, NULL, 0, 0, msg,
val);
}
/** /**
* xmlNsErr: * xmlNsErr:
* @ctxt: an XML parser context * @ctxt: an XML parser context
@ -1849,9 +1894,8 @@ xmlStringLenDecodeEntities(xmlParserCtxtPtr ctxt, const xmlChar *str, int len,
if (ent->content != NULL) { if (ent->content != NULL) {
COPY_BUF(0,buffer,nbchars,ent->content[0]); COPY_BUF(0,buffer,nbchars,ent->content[0]);
} else { } else {
if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL)) xmlFatalErrMsg(ctxt, XML_ERR_INTERNAL_ERROR,
ctxt->sax->error(ctxt->userData, "predefined entity has no content\n");
"internal error entity has no content\n");
} }
} else if ((ent != NULL) && (ent->content != NULL)) { } else if ((ent != NULL) && (ent->content != NULL)) {
xmlChar *rep; xmlChar *rep;
@ -4244,11 +4288,7 @@ xmlParseEntityDecl(xmlParserCtxtPtr ctxt) {
uri = xmlParseURI((const char *) URI); uri = xmlParseURI((const char *) URI);
if (uri == NULL) { if (uri == NULL) {
ctxt->errNo = XML_ERR_INVALID_URI; xmlErrMsgStr(ctxt, XML_ERR_INVALID_URI,
if ((ctxt->sax != NULL) &&
(!ctxt->disableSAX) &&
(ctxt->sax->error != NULL))
ctxt->sax->error(ctxt->userData,
"Invalid URI: %s\n", URI); "Invalid URI: %s\n", URI);
/* /*
* This really ought to be a well formedness error * This really ought to be a well formedness error
@ -4307,11 +4347,7 @@ xmlParseEntityDecl(xmlParserCtxtPtr ctxt) {
uri = xmlParseURI((const char *)URI); uri = xmlParseURI((const char *)URI);
if (uri == NULL) { if (uri == NULL) {
ctxt->errNo = XML_ERR_INVALID_URI; xmlErrMsgStr(ctxt, XML_ERR_INVALID_URI,
if ((ctxt->sax != NULL) &&
(!ctxt->disableSAX) &&
(ctxt->sax->error != NULL))
ctxt->sax->error(ctxt->userData,
"Invalid URI: %s\n", URI); "Invalid URI: %s\n", URI);
/* /*
* This really ought to be a well formedness error * This really ought to be a well formedness error
@ -5361,18 +5397,12 @@ xmlParseElementDecl(xmlParserCtxtPtr ctxt) {
*/ */
if ((RAW == '%') && (ctxt->external == 0) && if ((RAW == '%') && (ctxt->external == 0) &&
(ctxt->inputNr == 1)) { (ctxt->inputNr == 1)) {
ctxt->errNo = XML_ERR_PEREF_IN_INT_SUBSET; xmlFatalErrMsg(ctxt, XML_ERR_PEREF_IN_INT_SUBSET,
if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
ctxt->sax->error(ctxt->userData,
"PEReference: forbidden within markup decl in internal subset\n"); "PEReference: forbidden within markup decl in internal subset\n");
} else { } else {
ctxt->errNo = XML_ERR_ELEMCONTENT_NOT_STARTED; xmlFatalErrMsg(ctxt, XML_ERR_ELEMCONTENT_NOT_STARTED,
if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
ctxt->sax->error(ctxt->userData,
"xmlParseElementDecl: 'EMPTY', 'ANY' or '(' expected\n"); "xmlParseElementDecl: 'EMPTY', 'ANY' or '(' expected\n");
} }
ctxt->wellFormed = 0;
if (ctxt->recovery == 0) ctxt->disableSAX = 1;
return(-1); return(-1);
} }
@ -5886,9 +5916,8 @@ xmlParseReference(xmlParserCtxtPtr ctxt) {
ctxt->depth--; ctxt->depth--;
} else { } else {
ret = XML_ERR_ENTITY_PE_INTERNAL; ret = XML_ERR_ENTITY_PE_INTERNAL;
if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL)) xmlErrMsgStr(ctxt, XML_ERR_INTERNAL_ERROR,
ctxt->sax->error(ctxt->userData, "invalid entity type found\n", NULL);
"Internal: invalid entity type\n");
} }
if (ret == XML_ERR_ENTITY_LOOP) { if (ret == XML_ERR_ENTITY_LOOP) {
xmlFatalErr(ctxt, XML_ERR_ENTITY_LOOP, NULL); xmlFatalErr(ctxt, XML_ERR_ENTITY_LOOP, NULL);
@ -6161,14 +6190,11 @@ xmlParseEntityRef(xmlParserCtxtPtr ctxt) {
(ctxt->hasPErefs == 0))) { (ctxt->hasPErefs == 0))) {
xmlFatalErrMsgStr(ctxt, XML_ERR_UNDECLARED_ENTITY, xmlFatalErrMsgStr(ctxt, XML_ERR_UNDECLARED_ENTITY,
"Entity '%s' not defined\n", name); "Entity '%s' not defined\n", name);
ctxt->valid = 0;
} else { } else {
ctxt->errNo = XML_WAR_UNDECLARED_ENTITY; xmlErrMsgStr(ctxt, XML_WAR_UNDECLARED_ENTITY,
if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
ctxt->sax->error(ctxt->userData,
"Entity '%s' not defined\n", name); "Entity '%s' not defined\n", name);
ctxt->valid = 0;
} }
ctxt->valid = 0;
} }
/* /*
@ -6330,9 +6356,9 @@ xmlParseStringEntityRef(xmlParserCtxtPtr ctxt, const xmlChar ** str) {
xmlFatalErrMsgStr(ctxt, XML_ERR_UNDECLARED_ENTITY, xmlFatalErrMsgStr(ctxt, XML_ERR_UNDECLARED_ENTITY,
"Entity '%s' not defined\n", name); "Entity '%s' not defined\n", name);
} else { } else {
xmlWarningMsg(ctxt, XML_WAR_UNDECLARED_ENTITY, xmlErrMsgStr(ctxt, XML_WAR_UNDECLARED_ENTITY,
"Entity '%s' not defined\n", "Entity '%s' not defined\n",
name, NULL); name);
} }
/* TODO ? check regressions ctxt->valid = 0; */ /* TODO ? check regressions ctxt->valid = 0; */
} }
@ -6343,12 +6369,8 @@ xmlParseStringEntityRef(xmlParserCtxtPtr ctxt, const xmlChar ** str) {
* unparsed entity * unparsed entity
*/ */
else if (ent->etype == XML_EXTERNAL_GENERAL_UNPARSED_ENTITY) { else if (ent->etype == XML_EXTERNAL_GENERAL_UNPARSED_ENTITY) {
ctxt->errNo = XML_ERR_UNPARSED_ENTITY; xmlFatalErrMsgStr(ctxt, XML_ERR_UNPARSED_ENTITY,
if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
ctxt->sax->error(ctxt->userData,
"Entity reference to unparsed entity %s\n", name); "Entity reference to unparsed entity %s\n", name);
ctxt->wellFormed = 0;
if (ctxt->recovery == 0) ctxt->disableSAX = 1;
} }
/* /*
@ -6358,12 +6380,8 @@ xmlParseStringEntityRef(xmlParserCtxtPtr ctxt, const xmlChar ** str) {
*/ */
else if ((ctxt->instate == XML_PARSER_ATTRIBUTE_VALUE) && else if ((ctxt->instate == XML_PARSER_ATTRIBUTE_VALUE) &&
(ent->etype == XML_EXTERNAL_GENERAL_PARSED_ENTITY)) { (ent->etype == XML_EXTERNAL_GENERAL_PARSED_ENTITY)) {
ctxt->errNo = XML_ERR_ENTITY_IS_EXTERNAL; xmlFatalErrMsgStr(ctxt, XML_ERR_ENTITY_IS_EXTERNAL,
if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
ctxt->sax->error(ctxt->userData,
"Attribute references external entity '%s'\n", name); "Attribute references external entity '%s'\n", name);
ctxt->wellFormed = 0;
if (ctxt->recovery == 0) ctxt->disableSAX = 1;
} }
/* /*
* [ WFC: No < in Attribute Values ] * [ WFC: No < in Attribute Values ]
@ -6376,12 +6394,9 @@ xmlParseStringEntityRef(xmlParserCtxtPtr ctxt, const xmlChar ** str) {
(!xmlStrEqual(ent->name, BAD_CAST "lt")) && (!xmlStrEqual(ent->name, BAD_CAST "lt")) &&
(ent->content != NULL) && (ent->content != NULL) &&
(xmlStrchr(ent->content, '<'))) { (xmlStrchr(ent->content, '<'))) {
ctxt->errNo = XML_ERR_LT_IN_ATTRIBUTE; xmlFatalErrMsgStr(ctxt, XML_ERR_LT_IN_ATTRIBUTE,
if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL)) "'<' in entity '%s' is not allowed in attributes values\n",
ctxt->sax->error(ctxt->userData, name);
"'<' in entity '%s' is not allowed in attributes values\n", name);
ctxt->wellFormed = 0;
if (ctxt->recovery == 0) ctxt->disableSAX = 1;
} }
/* /*
@ -6391,12 +6406,9 @@ xmlParseStringEntityRef(xmlParserCtxtPtr ctxt, const xmlChar ** str) {
switch (ent->etype) { switch (ent->etype) {
case XML_INTERNAL_PARAMETER_ENTITY: case XML_INTERNAL_PARAMETER_ENTITY:
case XML_EXTERNAL_PARAMETER_ENTITY: case XML_EXTERNAL_PARAMETER_ENTITY:
ctxt->errNo = XML_ERR_ENTITY_IS_PARAMETER; xmlFatalErrMsgStr(ctxt, XML_ERR_ENTITY_IS_PARAMETER,
if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL)) "Attempt to reference the parameter entity '%s'\n",
ctxt->sax->error(ctxt->userData, name);
"Attempt to reference the parameter entity '%s'\n", name);
ctxt->wellFormed = 0;
if (ctxt->recovery == 0) ctxt->disableSAX = 1;
break; break;
default: default:
break; break;
@ -6820,7 +6832,7 @@ xmlParseAttribute(xmlParserCtxtPtr ctxt, xmlChar **value) {
GROW; GROW;
name = xmlParseName(ctxt); name = xmlParseName(ctxt);
if (name == NULL) { if (name == NULL) {
xmlFatalErrMsg(ctxt, XML_ERR_SPACE_REQUIRED, xmlFatalErrMsg(ctxt, XML_ERR_NAME_REQUIRED,
"error parsing attribute name\n"); "error parsing attribute name\n");
return(NULL); return(NULL);
} }
@ -7049,7 +7061,7 @@ xmlParseEndTag1(xmlParserCtxtPtr ctxt, int line) {
GROW; GROW;
if ((RAW != '<') || (NXT(1) != '/')) { if ((RAW != '<') || (NXT(1) != '/')) {
xmlFatalErrMsg(ctxt, XML_ERR_SPACE_REQUIRED, xmlFatalErrMsg(ctxt, XML_ERR_LTSLASH_REQUIRED,
"xmlParseEndTag: '</' not found\n"); "xmlParseEndTag: '</' not found\n");
return; return;
} }
@ -7074,20 +7086,10 @@ xmlParseEndTag1(xmlParserCtxtPtr ctxt, int line) {
* *
*/ */
if (name != (xmlChar*)1) { if (name != (xmlChar*)1) {
ctxt->errNo = XML_ERR_TAG_NAME_MISMATCH; if (name == NULL) name = BAD_CAST "unparseable";
if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL)) { xmlFatalErrMsgStrIntStr(ctxt, XML_ERR_TAG_NAME_MISMATCH,
if (name != NULL) {
ctxt->sax->error(ctxt->userData,
"Opening and ending tag mismatch: %s line %d and %s\n", "Opening and ending tag mismatch: %s line %d and %s\n",
ctxt->name, line, name); ctxt->name, line, name);
} else {
ctxt->sax->error(ctxt->userData,
"Ending tag error for: %s line %d\n", ctxt->name, line);
}
}
ctxt->wellFormed = 0;
if (ctxt->recovery == 0) ctxt->disableSAX = 1;
} }
/* /*
@ -8033,20 +8035,10 @@ xmlParseEndTag2(xmlParserCtxtPtr ctxt, const xmlChar *prefix,
* *
*/ */
if (name != (xmlChar*)1) { if (name != (xmlChar*)1) {
ctxt->errNo = XML_ERR_TAG_NAME_MISMATCH; if (name == NULL) name = BAD_CAST "unparseable";
if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL)) { xmlFatalErrMsgStrIntStr(ctxt, XML_ERR_TAG_NAME_MISMATCH,
if (name != NULL) {
ctxt->sax->error(ctxt->userData,
"Opening and ending tag mismatch: %s line %d and %s\n", "Opening and ending tag mismatch: %s line %d and %s\n",
ctxt->name, line, name); ctxt->name, line, name);
} else {
ctxt->sax->error(ctxt->userData,
"Ending tag error for: %s line %d\n", ctxt->name, line);
}
}
ctxt->wellFormed = 0;
if (ctxt->recovery == 0) ctxt->disableSAX = 1;
} }
/* /*
@ -8341,13 +8333,9 @@ xmlParseElement(xmlParserCtxtPtr ctxt) {
if (RAW == '>') { if (RAW == '>') {
NEXT1; NEXT1;
} else { } else {
ctxt->errNo = XML_ERR_GT_REQUIRED; xmlFatalErrMsgStrIntStr(ctxt, XML_ERR_GT_REQUIRED,
if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
ctxt->sax->error(ctxt->userData,
"Couldn't find end of Start Tag %s line %d\n", "Couldn't find end of Start Tag %s line %d\n",
name, line); name, line, NULL);
ctxt->wellFormed = 0;
if (ctxt->recovery == 0) ctxt->disableSAX = 1;
/* /*
* end of parsing of this node. * end of parsing of this node.
@ -8376,12 +8364,10 @@ xmlParseElement(xmlParserCtxtPtr ctxt) {
*/ */
xmlParseContent(ctxt); xmlParseContent(ctxt);
if (!IS_BYTE_CHAR(RAW)) { if (!IS_BYTE_CHAR(RAW)) {
ctxt->errNo = XML_ERR_TAG_NOT_FINISHED; xmlFatalErrMsgStrIntStr(ctxt, XML_ERR_TAG_NOT_FINISHED,
if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL)) "Premature end of data in tag %s line %d\n"
ctxt->sax->error(ctxt->userData, "Couldn't find end of Start Tag %s line %d\n",
"Premature end of data in tag %s line %d\n", name, line); name, line, NULL);
ctxt->wellFormed = 0;
if (ctxt->recovery == 0) ctxt->disableSAX = 1;
/* /*
* end of parsing of this node. * end of parsing of this node.
@ -8649,9 +8635,7 @@ xmlParseEncodingDecl(xmlParserCtxtPtr ctxt) {
if (handler != NULL) { if (handler != NULL) {
xmlSwitchToEncoding(ctxt, handler); xmlSwitchToEncoding(ctxt, handler);
} else { } else {
ctxt->errNo = XML_ERR_UNSUPPORTED_ENCODING; xmlFatalErrMsgStr(ctxt, XML_ERR_UNSUPPORTED_ENCODING,
if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
ctxt->sax->error(ctxt->userData,
"Unsupported encoding %s\n", encoding); "Unsupported encoding %s\n", encoding);
return(NULL); return(NULL);
} }

View File

@ -1045,7 +1045,7 @@ xmlCurrentChar(xmlParserCtxtPtr ctxt, int *len) {
(ctxt->sax->error != NULL)) (ctxt->sax->error != NULL))
ctxt->sax->error(ctxt->userData, ctxt->sax->error(ctxt->userData,
"Char 0x%X out of allowed range\n", val); "Char 0x%X out of allowed range\n", val);
ctxt->errNo = XML_ERR_INVALID_ENCODING; ctxt->errNo = XML_ERR_INVALID_CHAR;
ctxt->wellFormed = 0; ctxt->wellFormed = 0;
if (ctxt->recovery == 0) ctxt->disableSAX = 1; if (ctxt->recovery == 0) ctxt->disableSAX = 1;
} }

View File

@ -1,3 +1,3 @@
./test/HTML/doc2.htm:10: error: Misplaced DOCTYPE declaration ./test/HTML/doc2.htm:10: HTML parser error : Misplaced DOCTYPE declaration
<!-- END Naviscope Javascript --><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Tra <!-- END Naviscope Javascript --><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Tra
^ ^

View File

@ -1,69 +1,70 @@
./test/HTML/doc3.htm:10: error: Misplaced DOCTYPE declaration ./test/HTML/doc3.htm:10: HTML parser error : Misplaced DOCTYPE declaration
<!-- END Naviscope Javascript --><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN <!-- END Naviscope Javascript --><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN
^ ^
./test/HTML/doc3.htm:52: error: htmlParseEntityRef: expecting ';' ./test/HTML/doc3.htm:52: HTML parser error : htmlParseEntityRef: expecting ';'
href="http://ads.gamesquad.net/addclick.exe/adclick.cgi?REGION=game|tech|ent&id href="http://ads.gamesquad.net/addclick.exe/adclick.cgi?REGION=game|tech|ent&id
^ ^
./test/HTML/doc3.htm:52: error: htmlParseEntityRef: expecting ';' ./test/HTML/doc3.htm:52: HTML parser error : htmlParseEntityRef: expecting ';'
_top"><img src="http://ads.gamesquad.net/addclick.exe/adcycle.cgi?group=52&media _top"><img src="http://ads.gamesquad.net/addclick.exe/adcycle.cgi?group=52&media
^ ^
./test/HTML/doc3.htm:52: error: htmlParseEntityRef: expecting ';' ./test/HTML/doc3.htm:52: HTML parser error : htmlParseEntityRef: expecting ';'
><img src="http://ads.gamesquad.net/addclick.exe/adcycle.cgi?group=52&media=1&id ><img src="http://ads.gamesquad.net/addclick.exe/adcycle.cgi?group=52&media=1&id
^ ^
./test/HTML/doc3.htm:145: error: error parsing attribute name ./test/HTML/doc3.htm:145: HTML parser error : error parsing attribute name
width=70 Gentus?.?></A><BR><A width=70 Gentus?.?></A><BR><A
^ ^
./test/HTML/doc3.htm:148: error: Unexpected end tag : p ./test/HTML/doc3.htm:148: HTML parser error : Unexpected end tag : p
</P></TD></TR></TBODY></TABLE></CENTER></TD></TR></TBODY></TABLE></CENTER></P> </P></TD></TR></TBODY></TABLE></CENTER></TD></TR></TBODY></TABLE></CENTER></P>
^ ^
./test/HTML/doc3.htm:236: error: Unexpected end tag : font ./test/HTML/doc3.htm:236: HTML parser error : Unexpected end tag : font
Specials<BR><BR></FONT></A><BR></FONT></A><B><FONT color=yellow Specials<BR><BR></FONT></A><BR></FONT></A><B><FONT color=yellow
^ ^
./test/HTML/doc3.htm:236: error: Unexpected end tag : a ./test/HTML/doc3.htm:236: HTML parser error : Unexpected end tag : a
Specials<BR><BR></FONT></A><BR></FONT></A><B><FONT color=yellow Specials<BR><BR></FONT></A><BR></FONT></A><B><FONT color=yellow
^ ^
./test/HTML/doc3.htm:747: error: htmlParseEntityRef: expecting ';' ./test/HTML/doc3.htm:747: HTML parser error : htmlParseEntityRef: expecting ';'
er=0 alt="Advertisement" src="http://ads.adflight.com/ad_static.asp?pid=2097&sid er=0 alt="Advertisement" src="http://ads.adflight.com/ad_static.asp?pid=2097&sid
^ ^
./test/HTML/doc3.htm:747: error: htmlParseEntityRef: expecting ';' ./test/HTML/doc3.htm:747: HTML parser error : htmlParseEntityRef: expecting ';'
Advertisement" src="http://ads.adflight.com/ad_static.asp?pid=2097&sid=1881&asid Advertisement" src="http://ads.adflight.com/ad_static.asp?pid=2097&sid=1881&asid
^ ^
./test/HTML/doc3.htm:747: error: Unexpected end tag : li ./test/HTML/doc3.htm:747: HTML parser error : Unexpected end tag : li
light.com/ad_static.asp?pid=2097&sid=1881&asid=7708"></a></IFRAME></CENTER></LI> light.com/ad_static.asp?pid=2097&sid=1881&asid=7708"></a></IFRAME></CENTER></LI>
^ ^
./test/HTML/doc3.htm:747: error: Unexpected end tag : font ./test/HTML/doc3.htm:747: HTML parser error : Unexpected end tag : font
om/ad_static.asp?pid=2097&sid=1881&asid=7708"></a></IFRAME></CENTER></LI></FONT> om/ad_static.asp?pid=2097&sid=1881&asid=7708"></a></IFRAME></CENTER></LI></FONT>
^ ^
./test/HTML/doc3.htm:747: error: Unexpected end tag : p ./test/HTML/doc3.htm:747: HTML parser error : Unexpected end tag : p
=7708"></a></IFRAME></CENTER></LI></FONT></TD></TR></TBODY></TABLE></CENTER></P> =7708"></a></IFRAME></CENTER></LI></FONT></TD></TR></TBODY></TABLE></CENTER></P>
^ ^
./test/HTML/doc3.htm:772: error: Unexpected end tag : form ./test/HTML/doc3.htm:772: HTML parser error : Unexpected end tag : form
archive</A></FONT> </FORM></CENTER></TD></TR></TBODY></TABLE><!-- archive</A></FONT> </FORM></CENTER></TD></TR></TBODY></TABLE><!--
^ ^
./test/HTML/doc3.htm:820: error: Unexpected end tag : a ./test/HTML/doc3.htm:820: HTML parser error : Unexpected end tag : a
</A></A></B><B></NOSCRIPT></B><B><!-- END GoTo.com Search Box --></B </A></A></B><B></NOSCRIPT></B><B><!-- END GoTo.com Search Box --></B
^ ^
./test/HTML/doc3.htm:820: error: Unexpected end tag : noscript ./test/HTML/doc3.htm:820: HTML parser error : Unexpected end tag : noscript
</A></A></B><B></NOSCRIPT></B><B><!-- END GoTo.com Search Box --></B </A></A></B><B></NOSCRIPT></B><B><!-- END GoTo.com Search Box --></B
^ ^
./test/HTML/doc3.htm:826: error: Opening and ending tag mismatch: form and center ID submit already defined
./test/HTML/doc3.htm:826: HTML parser error : Opening and ending tag mismatch: (null) and (null)
</FORM><!-- Pricewatch Search Box --><A </FORM><!-- Pricewatch Search Box --><A
^ ^
./test/HTML/doc3.htm:833: error: Unexpected end tag : p ./test/HTML/doc3.htm:833: HTML parser error : Unexpected end tag : p
Special<BR>Code:BP6-hd</FONT></A> </P></CENTER></TD></TR></TBODY></T Special<BR>Code:BP6-hd</FONT></A> </P></CENTER></TD></TR></TBODY></T
^ ^
./test/HTML/doc3.htm:833: error: Opening and ending tag mismatch: center and td ./test/HTML/doc3.htm:833: HTML parser error : Opening and ending tag mismatch: center and td
Special<BR>Code:BP6-hd</FONT></A> </P></CENTER></TD></TR></TBODY></T Special<BR>Code:BP6-hd</FONT></A> </P></CENTER></TD></TR></TBODY></T
^ ^
./test/HTML/doc3.htm:839: error: Unexpected end tag : p ./test/HTML/doc3.htm:839: HTML parser error : Unexpected end tag : p
width="100%">&nbsp;</TD></TR></TBODY></TABLE></P></CENTER></TR></TBODY></TABLE>< width="100%">&nbsp;</TD></TR></TBODY></TABLE></P></CENTER></TR></TBODY></TABLE><
^ ^
./test/HTML/doc3.htm:840: error: Unexpected end tag : td ./test/HTML/doc3.htm:840: HTML parser error : Unexpected end tag : td
<CENTER></CENTER></TD></TR><TR><TD COLSPAN="3" VALIGN="TOP" <CENTER></CENTER></TD></TR><TR><TD COLSPAN="3" VALIGN="TOP"
^ ^
./test/HTML/doc3.htm:840: error: Unexpected end tag : tr ./test/HTML/doc3.htm:840: HTML parser error : Unexpected end tag : tr
<CENTER></CENTER></TD></TR><TR><TD COLSPAN="3" VALIGN="TOP" <CENTER></CENTER></TD></TR><TR><TD COLSPAN="3" VALIGN="TOP"
^ ^
./test/HTML/doc3.htm:841: error: Unexpected end tag : table ./test/HTML/doc3.htm:841: HTML parser error : Unexpected end tag : table
HEIGHT="70">&nbsp;</TD> </TR></TABLE> HEIGHT="70">&nbsp;</TD> </TR></TABLE>
^ ^

View File

@ -1,12 +1,12 @@
./test/HTML/entities.html:1: error: htmlParseEntityRef: expecting ';' ./test/HTML/entities.html:1: HTML parser error : htmlParseEntityRef: expecting ';'
<p tst="a&amp;b" tst2="a&b" tst3="a & b"> <p tst="a&amp;b" tst2="a&b" tst3="a & b">
^ ^
./test/HTML/entities.html:1: error: htmlParseEntityRef: no name ./test/HTML/entities.html:1: HTML parser error : htmlParseEntityRef: no name
<p tst="a&amp;b" tst2="a&b" tst3="a & b"> <p tst="a&amp;b" tst2="a&b" tst3="a & b">
^ ^
./test/HTML/entities.html:3: error: htmlParseEntityRef: expecting ';' ./test/HTML/entities.html:3: HTML parser error : htmlParseEntityRef: expecting ';'
a&b a&b
^ ^
./test/HTML/entities.html:4: error: htmlParseEntityRef: no name ./test/HTML/entities.html:4: HTML parser error : htmlParseEntityRef: no name
a & b a & b
^ ^

View File

@ -1,3 +1,3 @@
./test/HTML/fp40.htm:153: error: htmlParseEntityRef: no name ./test/HTML/fp40.htm:153: HTML parser error : htmlParseEntityRef: no name
technical articles from Microsoft's extensive Knowledge Base, FAQs, & troublesho technical articles from Microsoft's extensive Knowledge Base, FAQs, & troublesho
^ ^

View File

@ -1,3 +1,3 @@
./test/HTML/reg4.html:10: error: Unexpected end tag : p ./test/HTML/reg4.html:10: HTML parser error : Unexpected end tag : p
</p> </p>
^ ^

View File

@ -1,12 +1,12 @@
./test/HTML/test3.html:6: error: Unexpected end tag : p ./test/HTML/test3.html:6: HTML parser error : Unexpected end tag : p
</a><p><hr></p> </a><p><hr></p>
^ ^
./test/HTML/test3.html:13: error: Unexpected end tag : p ./test/HTML/test3.html:13: HTML parser error : Unexpected end tag : p
<p><hr></p> <p><hr></p>
^ ^
./test/HTML/test3.html:27: error: Opening and ending tag mismatch: h4 and b ./test/HTML/test3.html:27: HTML parser error : Opening and ending tag mismatch: (null) and (null)
<h4><b>Links</h4></b> <h4><b>Links</h4></b>
^ ^
./test/HTML/test3.html:27: error: Unexpected end tag : b ./test/HTML/test3.html:27: HTML parser error : Unexpected end tag : b
<h4><b>Links</h4></b> <h4><b>Links</h4></b>
^ ^

View File

@ -1,249 +1,249 @@
./test/HTML/wired.html:6: error: htmlParseEntityRef: expecting ';' ./test/HTML/wired.html:6: HTML parser error : htmlParseEntityRef: expecting ';'
<FORM METHOD=GET ACTION="http://nsads.hotwired.com/event.ng/Type=click&ProfileID <FORM METHOD=GET ACTION="http://nsads.hotwired.com/event.ng/Type=click&ProfileID
^ ^
./test/HTML/wired.html:6: error: htmlParseEntityRef: expecting ';' ./test/HTML/wired.html:6: HTML parser error : htmlParseEntityRef: expecting ';'
D=GET ACTION="http://nsads.hotwired.com/event.ng/Type=click&ProfileID=9688&RunID D=GET ACTION="http://nsads.hotwired.com/event.ng/Type=click&ProfileID=9688&RunID
^ ^
./test/HTML/wired.html:6: error: htmlParseEntityRef: expecting ';' ./test/HTML/wired.html:6: HTML parser error : htmlParseEntityRef: expecting ';'
N="http://nsads.hotwired.com/event.ng/Type=click&ProfileID=9688&RunID=14074&AdID N="http://nsads.hotwired.com/event.ng/Type=click&ProfileID=9688&RunID=14074&AdID
^ ^
./test/HTML/wired.html:6: error: htmlParseEntityRef: expecting ';' ./test/HTML/wired.html:6: HTML parser error : htmlParseEntityRef: expecting ';'
s.hotwired.com/event.ng/Type=click&ProfileID=9688&RunID=14074&AdID=22584&GroupID s.hotwired.com/event.ng/Type=click&ProfileID=9688&RunID=14074&AdID=22584&GroupID
^ ^
./test/HTML/wired.html:6: error: htmlParseEntityRef: expecting ';' ./test/HTML/wired.html:6: HTML parser error : htmlParseEntityRef: expecting ';'
com/event.ng/Type=click&ProfileID=9688&RunID=14074&AdID=22584&GroupID=1&FamilyID com/event.ng/Type=click&ProfileID=9688&RunID=14074&AdID=22584&GroupID=1&FamilyID
^ ^
./test/HTML/wired.html:6: error: htmlParseEntityRef: expecting ';' ./test/HTML/wired.html:6: HTML parser error : htmlParseEntityRef: expecting ';'
pe=click&ProfileID=9688&RunID=14074&AdID=22584&GroupID=1&FamilyID=2684&TagValues pe=click&ProfileID=9688&RunID=14074&AdID=22584&GroupID=1&FamilyID=2684&TagValues
^ ^
./test/HTML/wired.html:52: error: htmlParseEntityRef: expecting ';' ./test/HTML/wired.html:52: HTML parser error : htmlParseEntityRef: expecting ';'
" align="RIGHT"><a href="http://nsads.hotwired.com/event.ng/Type=click&ProfileID " align="RIGHT"><a href="http://nsads.hotwired.com/event.ng/Type=click&ProfileID
^ ^
./test/HTML/wired.html:52: error: htmlParseEntityRef: expecting ';' ./test/HTML/wired.html:52: HTML parser error : htmlParseEntityRef: expecting ';'
GHT"><a href="http://nsads.hotwired.com/event.ng/Type=click&ProfileID=5597&RunID GHT"><a href="http://nsads.hotwired.com/event.ng/Type=click&ProfileID=5597&RunID
^ ^
./test/HTML/wired.html:52: error: htmlParseEntityRef: expecting ';' ./test/HTML/wired.html:52: HTML parser error : htmlParseEntityRef: expecting ';'
f="http://nsads.hotwired.com/event.ng/Type=click&ProfileID=5597&RunID=17167&AdID f="http://nsads.hotwired.com/event.ng/Type=click&ProfileID=5597&RunID=17167&AdID
^ ^
./test/HTML/wired.html:52: error: htmlParseEntityRef: expecting ';' ./test/HTML/wired.html:52: HTML parser error : htmlParseEntityRef: expecting ';'
s.hotwired.com/event.ng/Type=click&ProfileID=5597&RunID=17167&AdID=22588&GroupID s.hotwired.com/event.ng/Type=click&ProfileID=5597&RunID=17167&AdID=22588&GroupID
^ ^
./test/HTML/wired.html:52: error: htmlParseEntityRef: expecting ';' ./test/HTML/wired.html:52: HTML parser error : htmlParseEntityRef: expecting ';'
com/event.ng/Type=click&ProfileID=5597&RunID=17167&AdID=22588&GroupID=1&FamilyID com/event.ng/Type=click&ProfileID=5597&RunID=17167&AdID=22588&GroupID=1&FamilyID
^ ^
./test/HTML/wired.html:52: error: htmlParseEntityRef: expecting ';' ./test/HTML/wired.html:52: HTML parser error : htmlParseEntityRef: expecting ';'
pe=click&ProfileID=5597&RunID=17167&AdID=22588&GroupID=1&FamilyID=3228&TagValues pe=click&ProfileID=5597&RunID=17167&AdID=22588&GroupID=1&FamilyID=3228&TagValues
^ ^
./test/HTML/wired.html:70: error: Tag nobr invalid ./test/HTML/wired.html:70: HTML parser error : Tag nobr invalid
<td bgcolor="#FF0000" align="left" valign="center"><nobr><img src="http://static <td bgcolor="#FF0000" align="left" valign="center"><nobr><img src="http://static
^ ^
./test/HTML/wired.html:89: error: htmlParseEntityRef: expecting ';' ./test/HTML/wired.html:89: HTML parser error : htmlParseEntityRef: expecting ';'
on value="http://search.hotwired.com/search97/s97.vts?Action=FilterSearch&Filter on value="http://search.hotwired.com/search97/s97.vts?Action=FilterSearch&Filter
^ ^
./test/HTML/wired.html:89: error: htmlParseEntityRef: expecting ';' ./test/HTML/wired.html:89: HTML parser error : htmlParseEntityRef: expecting ';'
d.com/search97/s97.vts?Action=FilterSearch&Filter=docs_filter.hts&ResultTemplate d.com/search97/s97.vts?Action=FilterSearch&Filter=docs_filter.hts&ResultTemplate
^ ^
./test/HTML/wired.html:89: error: htmlParseEntityRef: expecting ';' ./test/HTML/wired.html:89: HTML parser error : htmlParseEntityRef: expecting ';'
ction=FilterSearch&Filter=docs_filter.hts&ResultTemplate=vignette.hts&Collection ction=FilterSearch&Filter=docs_filter.hts&ResultTemplate=vignette.hts&Collection
^ ^
./test/HTML/wired.html:89: error: htmlParseEntityRef: expecting ';' ./test/HTML/wired.html:89: HTML parser error : htmlParseEntityRef: expecting ';'
Filter=docs_filter.hts&ResultTemplate=vignette.hts&Collection=vignette&QueryMode Filter=docs_filter.hts&ResultTemplate=vignette.hts&Collection=vignette&QueryMode
^ ^
./test/HTML/wired.html:89: error: htmlParseEntityRef: expecting ';' ./test/HTML/wired.html:89: HTML parser error : htmlParseEntityRef: expecting ';'
ter.hts&ResultTemplate=vignette.hts&Collection=vignette&QueryMode=Internet&Query ter.hts&ResultTemplate=vignette.hts&Collection=vignette&QueryMode=Internet&Query
^ ^
./test/HTML/wired.html:90: error: htmlParseEntityRef: expecting ';' ./test/HTML/wired.html:90: HTML parser error : htmlParseEntityRef: expecting ';'
on value="http://search.hotwired.com/search97/s97.vts?Action=FilterSearch&Filter on value="http://search.hotwired.com/search97/s97.vts?Action=FilterSearch&Filter
^ ^
./test/HTML/wired.html:90: error: htmlParseEntityRef: expecting ';' ./test/HTML/wired.html:90: HTML parser error : htmlParseEntityRef: expecting ';'
d.com/search97/s97.vts?Action=FilterSearch&Filter=docs_filter.hts&ResultTemplate d.com/search97/s97.vts?Action=FilterSearch&Filter=docs_filter.hts&ResultTemplate
^ ^
./test/HTML/wired.html:90: error: htmlParseEntityRef: expecting ';' ./test/HTML/wired.html:90: HTML parser error : htmlParseEntityRef: expecting ';'
tion=FilterSearch&Filter=docs_filter.hts&ResultTemplate=webmonkey.hts&Collection tion=FilterSearch&Filter=docs_filter.hts&ResultTemplate=webmonkey.hts&Collection
^ ^
./test/HTML/wired.html:90: error: htmlParseEntityRef: expecting ';' ./test/HTML/wired.html:90: HTML parser error : htmlParseEntityRef: expecting ';'
lter=docs_filter.hts&ResultTemplate=webmonkey.hts&Collection=webmonkey&QueryMode lter=docs_filter.hts&ResultTemplate=webmonkey.hts&Collection=webmonkey&QueryMode
^ ^
./test/HTML/wired.html:90: error: htmlParseEntityRef: expecting ';' ./test/HTML/wired.html:90: HTML parser error : htmlParseEntityRef: expecting ';'
r.hts&ResultTemplate=webmonkey.hts&Collection=webmonkey&QueryMode=Internet&Query r.hts&ResultTemplate=webmonkey.hts&Collection=webmonkey&QueryMode=Internet&Query
^ ^
./test/HTML/wired.html:91: error: htmlParseEntityRef: expecting ';' ./test/HTML/wired.html:91: HTML parser error : htmlParseEntityRef: expecting ';'
="http://search.hotwired.com/search97/s97.vts?collection=webmonkey_guides&Action ="http://search.hotwired.com/search97/s97.vts?collection=webmonkey_guides&Action
^ ^
./test/HTML/wired.html:91: error: htmlParseEntityRef: expecting ';' ./test/HTML/wired.html:91: HTML parser error : htmlParseEntityRef: expecting ';'
ired.com/search97/s97.vts?collection=webmonkey_guides&Action=FilterSearch&filter ired.com/search97/s97.vts?collection=webmonkey_guides&Action=FilterSearch&filter
^ ^
./test/HTML/wired.html:91: error: htmlParseEntityRef: expecting ';' ./test/HTML/wired.html:91: HTML parser error : htmlParseEntityRef: expecting ';'
ction=webmonkey_guides&Action=FilterSearch&filter=docs_filter.hts&ResultTemplate ction=webmonkey_guides&Action=FilterSearch&filter=docs_filter.hts&ResultTemplate
^ ^
./test/HTML/wired.html:91: error: htmlParseEntityRef: expecting ';' ./test/HTML/wired.html:91: HTML parser error : htmlParseEntityRef: expecting ';'
ilterSearch&filter=docs_filter.hts&ResultTemplate=webmonkey_guides.hts&QueryMode ilterSearch&filter=docs_filter.hts&ResultTemplate=webmonkey_guides.hts&QueryMode
^ ^
./test/HTML/wired.html:91: error: htmlParseEntityRef: expecting ';' ./test/HTML/wired.html:91: HTML parser error : htmlParseEntityRef: expecting ';'
ter=docs_filter.hts&ResultTemplate=webmonkey_guides.hts&QueryMode=Internet&Query ter=docs_filter.hts&ResultTemplate=webmonkey_guides.hts&QueryMode=Internet&Query
^ ^
./test/HTML/wired.html:92: error: htmlParseEntityRef: expecting ';' ./test/HTML/wired.html:92: HTML parser error : htmlParseEntityRef: expecting ';'
on value="http://search.hotwired.com/search97/s97.vts?collection=hotwired&Action on value="http://search.hotwired.com/search97/s97.vts?collection=hotwired&Action
^ ^
./test/HTML/wired.html:92: error: htmlParseEntityRef: expecting ';' ./test/HTML/wired.html:92: HTML parser error : htmlParseEntityRef: expecting ';'
rch.hotwired.com/search97/s97.vts?collection=hotwired&Action=FilterSearch&filter rch.hotwired.com/search97/s97.vts?collection=hotwired&Action=FilterSearch&filter
^ ^
./test/HTML/wired.html:92: error: htmlParseEntityRef: expecting ';' ./test/HTML/wired.html:92: HTML parser error : htmlParseEntityRef: expecting ';'
ts?collection=hotwired&Action=FilterSearch&filter=docs_filter.hts&ResultTemplate ts?collection=hotwired&Action=FilterSearch&filter=docs_filter.hts&ResultTemplate
^ ^
./test/HTML/wired.html:92: error: htmlParseEntityRef: expecting ';' ./test/HTML/wired.html:92: HTML parser error : htmlParseEntityRef: expecting ';'
ilterSearch&filter=docs_filter.hts&ResultTemplate=hotwired_archive.hts&QueryMode ilterSearch&filter=docs_filter.hts&ResultTemplate=hotwired_archive.hts&QueryMode
^ ^
./test/HTML/wired.html:92: error: htmlParseEntityRef: expecting ';' ./test/HTML/wired.html:92: HTML parser error : htmlParseEntityRef: expecting ';'
ter=docs_filter.hts&ResultTemplate=hotwired_archive.hts&QueryMode=Internet&Query ter=docs_filter.hts&ResultTemplate=hotwired_archive.hts&QueryMode=Internet&Query
^ ^
./test/HTML/wired.html:93: error: htmlParseEntityRef: expecting ';' ./test/HTML/wired.html:93: HTML parser error : htmlParseEntityRef: expecting ';'
on value="http://search.hotwired.com/search97/s97.vts?Action=FilterSearch&Filter on value="http://search.hotwired.com/search97/s97.vts?Action=FilterSearch&Filter
^ ^
./test/HTML/wired.html:93: error: htmlParseEntityRef: expecting ';' ./test/HTML/wired.html:93: HTML parser error : htmlParseEntityRef: expecting ';'
d.com/search97/s97.vts?Action=FilterSearch&Filter=docs_filter.hts&ResultTemplate d.com/search97/s97.vts?Action=FilterSearch&Filter=docs_filter.hts&ResultTemplate
^ ^
./test/HTML/wired.html:93: error: htmlParseEntityRef: expecting ';' ./test/HTML/wired.html:93: HTML parser error : htmlParseEntityRef: expecting ';'
ction=FilterSearch&Filter=docs_filter.hts&ResultTemplate=magazine.hts&Collection ction=FilterSearch&Filter=docs_filter.hts&ResultTemplate=magazine.hts&Collection
^ ^
./test/HTML/wired.html:93: error: htmlParseEntityRef: expecting ';' ./test/HTML/wired.html:93: HTML parser error : htmlParseEntityRef: expecting ';'
Filter=docs_filter.hts&ResultTemplate=magazine.hts&Collection=magazine&QueryMode Filter=docs_filter.hts&ResultTemplate=magazine.hts&Collection=magazine&QueryMode
^ ^
./test/HTML/wired.html:93: error: htmlParseEntityRef: expecting ';' ./test/HTML/wired.html:93: HTML parser error : htmlParseEntityRef: expecting ';'
ter.hts&ResultTemplate=magazine.hts&Collection=magazine&QueryMode=Internet&Query ter.hts&ResultTemplate=magazine.hts&Collection=magazine&QueryMode=Internet&Query
^ ^
./test/HTML/wired.html:94: error: htmlParseEntityRef: expecting ';' ./test/HTML/wired.html:94: HTML parser error : htmlParseEntityRef: expecting ';'
on value="http://search.hotwired.com/search97/s97.vts?Action=FilterSearch&Filter on value="http://search.hotwired.com/search97/s97.vts?Action=FilterSearch&Filter
^ ^
./test/HTML/wired.html:94: error: htmlParseEntityRef: expecting ';' ./test/HTML/wired.html:94: HTML parser error : htmlParseEntityRef: expecting ';'
d.com/search97/s97.vts?Action=FilterSearch&Filter=docs_filter.hts&ResultTemplate d.com/search97/s97.vts?Action=FilterSearch&Filter=docs_filter.hts&ResultTemplate
^ ^
./test/HTML/wired.html:94: error: htmlParseEntityRef: expecting ';' ./test/HTML/wired.html:94: HTML parser error : htmlParseEntityRef: expecting ';'
tion=FilterSearch&Filter=docs_filter.hts&ResultTemplate=animation.hts&Collection tion=FilterSearch&Filter=docs_filter.hts&ResultTemplate=animation.hts&Collection
^ ^
./test/HTML/wired.html:94: error: htmlParseEntityRef: expecting ';' ./test/HTML/wired.html:94: HTML parser error : htmlParseEntityRef: expecting ';'
lter=docs_filter.hts&ResultTemplate=animation.hts&Collection=animation&QueryMode lter=docs_filter.hts&ResultTemplate=animation.hts&Collection=animation&QueryMode
^ ^
./test/HTML/wired.html:94: error: htmlParseEntityRef: expecting ';' ./test/HTML/wired.html:94: HTML parser error : htmlParseEntityRef: expecting ';'
r.hts&ResultTemplate=animation.hts&Collection=animation&QueryMode=Internet&Query r.hts&ResultTemplate=animation.hts&Collection=animation&QueryMode=Internet&Query
^ ^
./test/HTML/wired.html:95: error: htmlParseEntityRef: expecting ';' ./test/HTML/wired.html:95: HTML parser error : htmlParseEntityRef: expecting ';'
option value="http://search.hotwired.com/search97/s97.vts?collection=suck&Action option value="http://search.hotwired.com/search97/s97.vts?collection=suck&Action
^ ^
./test/HTML/wired.html:95: error: htmlParseEntityRef: expecting ';' ./test/HTML/wired.html:95: HTML parser error : htmlParseEntityRef: expecting ';'
/search.hotwired.com/search97/s97.vts?collection=suck&Action=FilterSearch&filter /search.hotwired.com/search97/s97.vts?collection=suck&Action=FilterSearch&filter
^ ^
./test/HTML/wired.html:95: error: htmlParseEntityRef: expecting ';' ./test/HTML/wired.html:95: HTML parser error : htmlParseEntityRef: expecting ';'
97.vts?collection=suck&Action=FilterSearch&filter=docs_filter.hts&ResultTemplate 97.vts?collection=suck&Action=FilterSearch&filter=docs_filter.hts&ResultTemplate
^ ^
./test/HTML/wired.html:95: error: htmlParseEntityRef: expecting ';' ./test/HTML/wired.html:95: HTML parser error : htmlParseEntityRef: expecting ';'
uck&Action=FilterSearch&filter=docs_filter.hts&ResultTemplate=suck.hts&QueryMode uck&Action=FilterSearch&filter=docs_filter.hts&ResultTemplate=suck.hts&QueryMode
^ ^
./test/HTML/wired.html:95: error: htmlParseEntityRef: expecting ';' ./test/HTML/wired.html:95: HTML parser error : htmlParseEntityRef: expecting ';'
erSearch&filter=docs_filter.hts&ResultTemplate=suck.hts&QueryMode=Internet&Query erSearch&filter=docs_filter.hts&ResultTemplate=suck.hts&QueryMode=Internet&Query
^ ^
./test/HTML/wired.html:96: error: htmlParseEntityRef: expecting ';' ./test/HTML/wired.html:96: HTML parser error : htmlParseEntityRef: expecting ';'
lue="http://search.hotwired.com/search97/s97.vts?collection=uber_hotwired&Action lue="http://search.hotwired.com/search97/s97.vts?collection=uber_hotwired&Action
^ ^
./test/HTML/wired.html:96: error: htmlParseEntityRef: expecting ';' ./test/HTML/wired.html:96: HTML parser error : htmlParseEntityRef: expecting ';'
otwired.com/search97/s97.vts?collection=uber_hotwired&Action=FilterSearch&filter otwired.com/search97/s97.vts?collection=uber_hotwired&Action=FilterSearch&filter
^ ^
./test/HTML/wired.html:96: error: htmlParseEntityRef: expecting ';' ./test/HTML/wired.html:96: HTML parser error : htmlParseEntityRef: expecting ';'
llection=uber_hotwired&Action=FilterSearch&filter=docs_filter.hts&ResultTemplate llection=uber_hotwired&Action=FilterSearch&filter=docs_filter.hts&ResultTemplate
^ ^
./test/HTML/wired.html:96: error: htmlParseEntityRef: expecting ';' ./test/HTML/wired.html:96: HTML parser error : htmlParseEntityRef: expecting ';'
n=FilterSearch&filter=docs_filter.hts&ResultTemplate=uber_hotwired.hts&QueryMode n=FilterSearch&filter=docs_filter.hts&ResultTemplate=uber_hotwired.hts&QueryMode
^ ^
./test/HTML/wired.html:96: error: htmlParseEntityRef: expecting ';' ./test/HTML/wired.html:96: HTML parser error : htmlParseEntityRef: expecting ';'
filter=docs_filter.hts&ResultTemplate=uber_hotwired.hts&QueryMode=Internet&Query filter=docs_filter.hts&ResultTemplate=uber_hotwired.hts&QueryMode=Internet&Query
^ ^
./test/HTML/wired.html:97: error: htmlParseEntityRef: expecting ';' ./test/HTML/wired.html:97: HTML parser error : htmlParseEntityRef: expecting ';'
<option value="http://www.hotbot.com/?SM=MC&DV=0&LG=any&RD=RG&DC=10&DE=2&_v=2&O <option value="http://www.hotbot.com/?SM=MC&DV=0&LG=any&RD=RG&DC=10&DE=2&_v=2&O
^ ^
./test/HTML/wired.html:97: error: htmlParseEntityRef: expecting ';' ./test/HTML/wired.html:97: HTML parser error : htmlParseEntityRef: expecting ';'
<option value="http://www.hotbot.com/?SM=MC&DV=0&LG=any&RD=RG&DC=10&DE=2&_v=2&O <option value="http://www.hotbot.com/?SM=MC&DV=0&LG=any&RD=RG&DC=10&DE=2&_v=2&O
^ ^
./test/HTML/wired.html:97: error: htmlParseEntityRef: expecting ';' ./test/HTML/wired.html:97: HTML parser error : htmlParseEntityRef: expecting ';'
<option value="http://www.hotbot.com/?SM=MC&DV=0&LG=any&RD=RG&DC=10&DE=2&_v=2&O <option value="http://www.hotbot.com/?SM=MC&DV=0&LG=any&RD=RG&DC=10&DE=2&_v=2&O
^ ^
./test/HTML/wired.html:97: error: htmlParseEntityRef: expecting ';' ./test/HTML/wired.html:97: HTML parser error : htmlParseEntityRef: expecting ';'
<option value="http://www.hotbot.com/?SM=MC&DV=0&LG=any&RD=RG&DC=10&DE=2&_v=2&O <option value="http://www.hotbot.com/?SM=MC&DV=0&LG=any&RD=RG&DC=10&DE=2&_v=2&O
^ ^
./test/HTML/wired.html:97: error: htmlParseEntityRef: expecting ';' ./test/HTML/wired.html:97: HTML parser error : htmlParseEntityRef: expecting ';'
<option value="http://www.hotbot.com/?SM=MC&DV=0&LG=any&RD=RG&DC=10&DE=2&_v=2&O <option value="http://www.hotbot.com/?SM=MC&DV=0&LG=any&RD=RG&DC=10&DE=2&_v=2&O
^ ^
./test/HTML/wired.html:97: error: htmlParseEntityRef: expecting ';' ./test/HTML/wired.html:97: HTML parser error : htmlParseEntityRef: expecting ';'
<option value="http://www.hotbot.com/?SM=MC&DV=0&LG=any&RD=RG&DC=10&DE=2&_v=2&O <option value="http://www.hotbot.com/?SM=MC&DV=0&LG=any&RD=RG&DC=10&DE=2&_v=2&O
^ ^
./test/HTML/wired.html:97: error: htmlParseEntityRef: expecting ';' ./test/HTML/wired.html:97: HTML parser error : htmlParseEntityRef: expecting ';'
option value="http://www.hotbot.com/?SM=MC&DV=0&LG=any&RD=RG&DC=10&DE=2&_v=2&OPs option value="http://www.hotbot.com/?SM=MC&DV=0&LG=any&RD=RG&DC=10&DE=2&_v=2&OPs
^ ^
./test/HTML/wired.html:97: error: htmlParseEntityRef: expecting ';' ./test/HTML/wired.html:97: HTML parser error : htmlParseEntityRef: expecting ';'
lue="http://www.hotbot.com/?SM=MC&DV=0&LG=any&RD=RG&DC=10&DE=2&_v=2&OPs=MDRTP&MT lue="http://www.hotbot.com/?SM=MC&DV=0&LG=any&RD=RG&DC=10&DE=2&_v=2&OPs=MDRTP&MT
^ ^
./test/HTML/wired.html:170: error: Unexpected end tag : form ./test/HTML/wired.html:170: HTML parser error : Unexpected end tag : form
</tr> </form> </tr> </form>
^ ^
./test/HTML/wired.html:248: error: htmlParseEntityRef: expecting ';' ./test/HTML/wired.html:248: HTML parser error : htmlParseEntityRef: expecting ';'
MG SRC="http://barnesandnoble.bfast.com/booklink/serve?sourceid=383471&is_search MG SRC="http://barnesandnoble.bfast.com/booklink/serve?sourceid=383471&is_search
^ ^
./test/HTML/wired.html:265: error: Unexpected end tag : form ./test/HTML/wired.html:265: HTML parser error : Unexpected end tag : form
</tr> </form> </tr> </form>
^ ^
./test/HTML/wired.html:346: error: Opening and ending tag mismatch: td and font ./test/HTML/wired.html:346: HTML parser error : Opening and ending tag mismatch: (null) and (null)
</td> </td>
^ ^
./test/HTML/wired.html:374: error: htmlParseEntityRef: no name ./test/HTML/wired.html:374: HTML parser error : htmlParseEntityRef: no name
a, sans-serif"><b><a href="/news/commentarySection/0,1292,31926,00.html">Rants & a, sans-serif"><b><a href="/news/commentarySection/0,1292,31926,00.html">Rants &
^ ^
./test/HTML/wired.html:374: error: Opening and ending tag mismatch: td and font ./test/HTML/wired.html:374: HTML parser error : Opening and ending tag mismatch: (null) and (null)
Readers on Apple's G4 ... AOL's passwords ... MS vs. Linux.</font><br><br> </td Readers on Apple's G4 ... AOL's passwords ... MS vs. Linux.</font><br><br> </td
^ ^
./test/HTML/wired.html:374: error: Opening and ending tag mismatch: td and font ./test/HTML/wired.html:374: HTML parser error : Opening and ending tag mismatch: (null) and (null)
Readers on Apple's G4 ... AOL's passwords ... MS vs. Linux.</font><br><br> </td Readers on Apple's G4 ... AOL's passwords ... MS vs. Linux.</font><br><br> </td
^ ^
./test/HTML/wired.html:402: error: Opening and ending tag mismatch: a and font ./test/HTML/wired.html:402: HTML parser error : Opening and ending tag mismatch: (null) and (null)
w.vignette.com/" style="text-decoration:none"><font color="#000000">Vignette</a> w.vignette.com/" style="text-decoration:none"><font color="#000000">Vignette</a>
^ ^
./test/HTML/wired.html:407: error: htmlParseEntityRef: expecting ';' ./test/HTML/wired.html:407: HTML parser error : htmlParseEntityRef: expecting ';'
ervlet/appservlet?from=/wired/sprint/&template=/security/security.html&SITE= ervlet/appservlet?from=/wired/sprint/&template=/security/security.html&SITE=
^ ^
./test/HTML/wired.html:407: error: htmlParseEntityRef: expecting ';' ./test/HTML/wired.html:407: HTML parser error : htmlParseEntityRef: expecting ';'
ervlet/appservlet?from=/wired/sprint/&template=/security/security.html&SITE= ervlet/appservlet?from=/wired/sprint/&template=/security/security.html&SITE=
^ ^
./test/HTML/wired.html:408: error: htmlParseEntityRef: expecting ';' ./test/HTML/wired.html:408: HTML parser error : htmlParseEntityRef: expecting ';'
wired.com&BANNER=Sprint" style="text-decoration:none"><font color="#000000">Spri wired.com&BANNER=Sprint" style="text-decoration:none"><font color="#000000">Spri
^ ^
./test/HTML/wired.html:408: error: Opening and ending tag mismatch: a and font ./test/HTML/wired.html:408: HTML parser error : Opening and ending tag mismatch: (null) and (null)
com&BANNER=Sprint" style="text-decoration:none"><font color="#000000">Sprint</a> com&BANNER=Sprint" style="text-decoration:none"><font color="#000000">Sprint</a>
^ ^
./test/HTML/wired.html:408: error: End tag : expected '>' ./test/HTML/wired.html:408: HTML parser error : End tag : expected '>'
=Sprint" style="text-decoration:none"><font color="#000000">Sprint</a></i></font =Sprint" style="text-decoration:none"><font color="#000000">Sprint</a></i></font
^ ^
./test/HTML/wired.html:414: error: Opening and ending tag mismatch: td and font ./test/HTML/wired.html:414: HTML parser error : Opening and ending tag mismatch: (null) and (null)
</td> </td>
^ ^
./test/HTML/wired.html:414: error: Opening and ending tag mismatch: td and font ./test/HTML/wired.html:414: HTML parser error : Opening and ending tag mismatch: (null) and (null)
</td> </td>
^ ^
./test/HTML/wired.html:414: error: Opening and ending tag mismatch: td and font ./test/HTML/wired.html:414: HTML parser error : Opening and ending tag mismatch: (null) and (null)
</td> </td>
^ ^
./test/HTML/wired.html:414: error: Opening and ending tag mismatch: td and font ./test/HTML/wired.html:414: HTML parser error : Opening and ending tag mismatch: (null) and (null)
</td> </td>
^ ^
./test/HTML/wired.html:414: error: Opening and ending tag mismatch: td and font ./test/HTML/wired.html:414: HTML parser error : Opening and ending tag mismatch: (null) and (null)
</td> </td>
^ ^
./test/HTML/wired.html:414: error: Opening and ending tag mismatch: td and font ./test/HTML/wired.html:414: HTML parser error : Opening and ending tag mismatch: (null) and (null)
</td> </td>
^ ^
./test/HTML/wired.html:414: error: Opening and ending tag mismatch: td and font ./test/HTML/wired.html:414: HTML parser error : Opening and ending tag mismatch: (null) and (null)
</td> </td>
^ ^
./test/HTML/wired.html:414: error: Opening and ending tag mismatch: td and font ./test/HTML/wired.html:414: HTML parser error : Opening and ending tag mismatch: (null) and (null)
</td> </td>
^ ^
./test/HTML/wired.html:432: error: htmlParseEntityRef: expecting ';' ./test/HTML/wired.html:432: HTML parser error : htmlParseEntityRef: expecting ';'
href="http://www.lycos.com/news/flash/hitlerbunker.html?v=wn1015&lpv=1">Lycos</a href="http://www.lycos.com/news/flash/hitlerbunker.html?v=wn1015&lpv=1">Lycos</a
^ ^