1
0
mirror of https://gitlab.gnome.org/GNOME/libxml2.git synced 2025-07-28 00:21:53 +03:00

when creating a DOCTYPE use "html" lowercase by default instead of "HTML"

* HTMLparser.c: when creating a DOCTYPE use "html" lowercase
  by default instead of "HTML"
* parser.c xmlreader.c: optimization, gain a few % parsing speed by
  avoiding calls to "areBlanks" when not needed.
* include/libxml/parser.h include/libxml/tree.h: some structure
  extensions for future work on using per-document dictionaries.
Daniel
This commit is contained in:
Daniel Veillard
2003-09-03 13:28:32 +00:00
parent 4b1577f14a
commit 40412cda44
6 changed files with 30 additions and 13 deletions

View File

@ -1,3 +1,12 @@
Wed Sep 3 15:24:41 CEST 2003 Daniel Veillard <daniel@veillard.com>
* HTMLparser.c: when creating a DOCTYPE use "html" lowercase
by default instead of "HTML"
* parser.c xmlreader.c: optimization, gain a few % parsing speed by
avoiding calls to "areBlanks" when not needed.
* include/libxml/parser.h include/libxml/tree.h: some structure
extensions for future work on using per-document dictionaries.
Wed Sep 3 15:08:06 CEST 2003 Daniel Veillard <daniel@veillard.com>
* Makefile.am results/*.sax SAXResult/*: removing the SAXresults

View File

@ -2137,7 +2137,7 @@ htmlNewDocNoDtD(const xmlChar *URI, const xmlChar *ExternalID) {
cur->_private = NULL;
if ((ExternalID != NULL) ||
(URI != NULL))
xmlCreateIntSubset(cur, BAD_CAST "HTML", ExternalID, URI);
xmlCreateIntSubset(cur, BAD_CAST "html", ExternalID, URI);
return(cur);
}
@ -4002,7 +4002,7 @@ htmlParseDocument(htmlParserCtxtPtr ctxt) {
dtd = xmlGetIntSubset(ctxt->myDoc);
if (dtd == NULL)
ctxt->myDoc->intSubset =
xmlCreateIntSubset(ctxt->myDoc, BAD_CAST "HTML",
xmlCreateIntSubset(ctxt->myDoc, BAD_CAST "html",
BAD_CAST "-//W3C//DTD HTML 4.0 Transitional//EN",
BAD_CAST "http://www.w3.org/TR/REC-html40/loose.dtd");
}
@ -5058,7 +5058,7 @@ done:
dtd = xmlGetIntSubset(ctxt->myDoc);
if (dtd == NULL)
ctxt->myDoc->intSubset =
xmlCreateIntSubset(ctxt->myDoc, BAD_CAST "HTML",
xmlCreateIntSubset(ctxt->myDoc, BAD_CAST "html",
BAD_CAST "-//W3C//DTD HTML 4.0 Transitional//EN",
BAD_CAST "http://www.w3.org/TR/REC-html40/loose.dtd");
}

View File

@ -239,6 +239,7 @@ struct _xmlParserCtxt {
xmlDictPtr dict; /* dictionnary for the parser */
const xmlChar * *atts; /* array for the attributes callbacks */
int maxatts; /* the size of the array */
int docdict; /* use strings from dict to build tree */
};
/**

View File

@ -476,6 +476,7 @@ struct _xmlNode {
#define XML_GET_LINE(n) \
((n)->type == XML_ELEMENT_NODE ? (int) (n)->content : 0)
/**
* xmlDoc:
*
@ -507,6 +508,7 @@ struct _xmlDoc {
const xmlChar *URL; /* The URI for that document */
int charset; /* encoding of the in-memory content
actually an xmlCharEncoding */
struct _xmlDict *dict; /* dict used to allocate names or NULL */
};
/**

View File

@ -2799,18 +2799,18 @@ get_more:
}
nbchar = in - ctxt->input->cur;
if (nbchar > 0) {
if (IS_BLANK(*ctxt->input->cur)) {
if ((ctxt->sax->ignorableWhitespace !=
ctxt->sax->characters) &&
(IS_BLANK(*ctxt->input->cur))) {
const xmlChar *tmp = ctxt->input->cur;
ctxt->input->cur = in;
if (areBlanks(ctxt, tmp, nbchar)) {
if (ctxt->sax->ignorableWhitespace != NULL)
ctxt->sax->ignorableWhitespace(ctxt->userData,
tmp, nbchar);
} else {
if (ctxt->sax->characters != NULL)
} else if (ctxt->sax->characters != NULL)
ctxt->sax->characters(ctxt->userData,
tmp, nbchar);
}
line = ctxt->input->line;
col = ctxt->input->col;
} else {

View File

@ -1125,6 +1125,7 @@ xmlNewTextReader(xmlParserInputBufferPtr input, const char *URI) {
ret->sax->endElement = xmlTextReaderEndElement;
ret->characters = ret->sax->characters;
ret->sax->characters = xmlTextReaderCharacters;
ret->sax->ignorableWhitespace = xmlTextReaderCharacters;
ret->cdataBlock = ret->sax->cdataBlock;
ret->sax->cdataBlock = xmlTextReaderCDataBlock;
@ -1152,6 +1153,10 @@ xmlNewTextReader(xmlParserInputBufferPtr input, const char *URI) {
ret->ctxt->_private = ret;
ret->ctxt->linenumbers = 1;
ret->allocs = XML_TEXTREADER_CTXT;
/*
* use the parser dictionnary to allocate all elements and attributes names
*/
ret->ctxt->docdict = 1;
return(ret);
}