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> Wed Sep 3 15:08:06 CEST 2003 Daniel Veillard <daniel@veillard.com>
* Makefile.am results/*.sax SAXResult/*: removing the SAXresults * Makefile.am results/*.sax SAXResult/*: removing the SAXresults

View File

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

View File

@ -237,8 +237,9 @@ struct _xmlParserCtxt {
int recovery; /* run in recovery mode */ int recovery; /* run in recovery mode */
int progressive; /* is this a progressive parsing */ int progressive; /* is this a progressive parsing */
xmlDictPtr dict; /* dictionnary for the parser */ xmlDictPtr dict; /* dictionnary for the parser */
const xmlChar * *atts; /* array for the attributes callbacks */ const xmlChar * *atts; /* array for the attributes callbacks */
int maxatts; /* the size of the array */ 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) \ #define XML_GET_LINE(n) \
((n)->type == XML_ELEMENT_NODE ? (int) (n)->content : 0) ((n)->type == XML_ELEMENT_NODE ? (int) (n)->content : 0)
/** /**
* xmlDoc: * xmlDoc:
* *
@ -507,6 +508,7 @@ struct _xmlDoc {
const xmlChar *URL; /* The URI for that document */ const xmlChar *URL; /* The URI for that document */
int charset; /* encoding of the in-memory content int charset; /* encoding of the in-memory content
actually an xmlCharEncoding */ 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; nbchar = in - ctxt->input->cur;
if (nbchar > 0) { 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; const xmlChar *tmp = ctxt->input->cur;
ctxt->input->cur = in; ctxt->input->cur = in;
if (areBlanks(ctxt, tmp, nbchar)) { if (areBlanks(ctxt, tmp, nbchar)) {
if (ctxt->sax->ignorableWhitespace != NULL) ctxt->sax->ignorableWhitespace(ctxt->userData,
ctxt->sax->ignorableWhitespace(ctxt->userData, tmp, nbchar);
tmp, nbchar); } else if (ctxt->sax->characters != NULL)
} else { ctxt->sax->characters(ctxt->userData,
if (ctxt->sax->characters != NULL) tmp, nbchar);
ctxt->sax->characters(ctxt->userData,
tmp, nbchar);
}
line = ctxt->input->line; line = ctxt->input->line;
col = ctxt->input->col; col = ctxt->input->col;
} else { } else {

View File

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