]> granicus.if.org Git - php/commitdiff
Patch by Morus Walter, concerning some dtd/entity expanding stuff.
authorChristian Stocker <chregu@php.net>
Mon, 28 Oct 2002 08:54:30 +0000 (08:54 +0000)
committerChristian Stocker <chregu@php.net>
Mon, 28 Oct 2002 08:54:30 +0000 (08:54 +0000)
ext/domxml/php_domxml.c

index 77ce4c86eb1928071691d514aedefb62a9c642c4..afaf910339795e8f37b5b2d8b850a72dafcd74e5 100644 (file)
@@ -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;