summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Veillard <veillard@redhat.com>2014-06-11 16:59:16 +0800
committerDaniel Veillard <veillard@redhat.com>2014-06-11 17:00:39 +0800
commitc35af8b18dddd0bdfb137ad6a056837a3d5ea651 (patch)
tree734ea3cfa462a9c2999116059aba0ca7cb7e20d5
parentdd8367da17c2948981a51e52c8a6beb445edf825 (diff)
downloadlibxml2-c35af8b18dddd0bdfb137ad6a056837a3d5ea651.tar.gz
Fixes for xmlInitParserCtxt
let's make sure that parser options are updated too when a corrsponding global variable or other field of the context is set.
-rw-r--r--parserInternals.c14
1 files changed, 13 insertions, 1 deletions
diff --git a/parserInternals.c b/parserInternals.c
index 98a58364..df204fde 100644
--- a/parserInternals.c
+++ b/parserInternals.c
@@ -1691,12 +1691,20 @@ xmlInitParserCtxt(xmlParserCtxtPtr ctxt)
ctxt->nsWellFormed = 1;
ctxt->valid = 1;
ctxt->loadsubset = xmlLoadExtDtdDefaultValue;
+ if (ctxt->loadsubset) {
+ ctxt->options |= XML_PARSE_DTDLOAD;
+ }
ctxt->validate = xmlDoValidityCheckingDefaultValue;
ctxt->pedantic = xmlPedanticParserDefaultValue;
+ if (ctxt->pedantic) {
+ ctxt->options |= XML_PARSE_PEDANTIC;
+ }
ctxt->linenumbers = xmlLineNumbersDefaultValue;
ctxt->keepBlanks = xmlKeepBlanksDefaultValue;
- if (ctxt->keepBlanks == 0)
+ if (ctxt->keepBlanks == 0) {
ctxt->sax->ignorableWhitespace = xmlSAX2IgnorableWhitespace;
+ ctxt->options |= XML_PARSE_NOBLANKS;
+ }
ctxt->vctxt.finishDtd = XML_CTXT_FINISH_DTD_0;
ctxt->vctxt.userData = ctxt;
@@ -1708,8 +1716,12 @@ xmlInitParserCtxt(xmlParserCtxtPtr ctxt)
else
ctxt->vctxt.warning = xmlParserValidityWarning;
ctxt->vctxt.nodeMax = 0;
+ ctxt->options |= XML_PARSE_DTDVALID;
}
ctxt->replaceEntities = xmlSubstituteEntitiesDefaultValue;
+ if (ctxt->replaceEntities) {
+ ctxt->options |= XML_PARSE_NOENT;
+ }
ctxt->record_info = 0;
ctxt->nbChars = 0;
ctxt->checkIndex = 0;