summaryrefslogtreecommitdiff
path: root/ext/domxml/php_domxml.c
diff options
context:
space:
mode:
authorChristian Stocker <chregu@php.net>2002-10-28 08:54:30 +0000
committerChristian Stocker <chregu@php.net>2002-10-28 08:54:30 +0000
commitfe34195288af2a9c15513269661c0e37c13db3d0 (patch)
tree8596a55917f465dbb412851214482161d26e2e71 /ext/domxml/php_domxml.c
parent728eacbf52b7b1dbc45af06d622d1fe7e4c01793 (diff)
downloadphp-git-fe34195288af2a9c15513269661c0e37c13db3d0.tar.gz
Patch by Morus Walter, concerning some dtd/entity expanding stuff.
Diffstat (limited to 'ext/domxml/php_domxml.c')
-rw-r--r--ext/domxml/php_domxml.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/ext/domxml/php_domxml.c b/ext/domxml/php_domxml.c
index 77ce4c86eb..afaf910339 100644
--- a/ext/domxml/php_domxml.c
+++ b/ext/domxml/php_domxml.c
@@ -3777,6 +3777,7 @@ PHP_FUNCTION(xmldoc)
int mode = 0, prevSubstValue;
int oldvalue = xmlDoValidityCheckingDefaultValue;
int oldvalue_keepblanks;
+ int prevLoadExtDtdValue = xmlLoadExtDtdDefaultValue;
zval *errors ;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s|lz", &buffer, &buffer_len, &mode, &errors) == FAILURE) {
@@ -3831,6 +3832,7 @@ PHP_FUNCTION(xmldoc)
}
xmlSubstituteEntitiesDefault (prevSubstValue);
xmlDoValidityCheckingDefaultValue = oldvalue;
+ xmlLoadExtDtdDefaultValue = prevLoadExtDtdValue;
xmlKeepBlanksDefault(oldvalue_keepblanks);
if (!docp)
@@ -4955,13 +4957,21 @@ PHP_FUNCTION(domxml_xslt_stylesheet)
int ret;
char *buffer;
int buffer_len;
+ int prevSubstValue, prevExtDtdValue;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &buffer, &buffer_len) == FAILURE) {
RETURN_FALSE;
}
+ prevSubstValue = xmlSubstituteEntitiesDefault (1);
+ prevExtDtdValue = xmlLoadExtDtdDefaultValue;
+ xmlLoadExtDtdDefaultValue = XML_DETECT_IDS | XML_COMPLETE_ATTRS;
+
docp = xmlParseDoc(buffer);
+ xmlSubstituteEntitiesDefault (prevSubstValue);
+ xmlLoadExtDtdDefaultValue = prevExtDtdValue;
+
if (!docp)
RETURN_FALSE;
@@ -5014,13 +5024,21 @@ PHP_FUNCTION(domxml_xslt_stylesheet_file)
xsltStylesheetPtr sheetp;
int ret, file_len;
char *file;
+ int prevSubstValue, prevExtDtdValue;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &file, &file_len) == FAILURE) {
RETURN_FALSE;
}
+ prevSubstValue = xmlSubstituteEntitiesDefault (1);
+ prevExtDtdValue = xmlLoadExtDtdDefaultValue;
+ xmlLoadExtDtdDefaultValue = XML_DETECT_IDS | XML_COMPLETE_ATTRS;
+
sheetp = xsltParseStylesheetFile(file);
+ xmlSubstituteEntitiesDefault (prevSubstValue);
+ xmlLoadExtDtdDefaultValue = prevExtDtdValue;
+
if (!sheetp)
RETURN_FALSE;