rrichards Fri Aug 29 11:29:25 2003 EDT
Modified files: (Branch: PHP_4_3)
/php-src/ext/domxml php_domxml.c
Log:
workaround for bug #25268. libxslt issue with xsl:key
Index: php-src/ext/domxml/php_domxml.c
diff -u php-src/ext/domxml/php_domxml.c:1.218.2.28
php-src/ext/domxml/php_domxml.c:1.218.2.29
--- php-src/ext/domxml/php_domxml.c:1.218.2.28 Thu Aug 7 12:44:11 2003
+++ php-src/ext/domxml/php_domxml.c Fri Aug 29 11:29:24 2003
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: php_domxml.c,v 1.218.2.28 2003/08/07 16:44:11 zeev Exp $ */
+/* $Id: php_domxml.c,v 1.218.2.29 2003/08/29 15:29:24 rrichards Exp $ */
/* TODO
* - Support Notation Nodes
@@ -5349,7 +5349,7 @@
xmlDocPtr xmldocp;
xmlDocPtr docp;
char **params = NULL;
- int ret;
+ int ret, clone = 0;
char *filename;
int filename_len = 0;
@@ -5361,7 +5361,7 @@
RETURN_FALSE;
}
- if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "o|abs", &idxml,
&idparams, &xpath_params, &filename, &filename_len) == FAILURE) {
+ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "o|a!b!s!l", &idxml,
&idparams, &xpath_params, &filename, &filename_len, &clone) == FAILURE) {
RETURN_FALSE;
}
@@ -5371,6 +5371,10 @@
params = php_domxslt_make_params(idparams, xpath_params TSRMLS_CC);
}
+ if (clone == 1) {
+ xmldocp = xmlCopyDoc(xmldocp, 1);
+ }
+
if (filename_len) {
FILE *f;
f = fopen (filename,"w");
@@ -5378,6 +5382,10 @@
fclose(f);
} else {
docp = xsltApplyStylesheet(xsltstp, xmldocp, (const char**)params);
+ }
+
+ if (clone == 1) {
+ xmlFreeDoc(xmldocp);
}
if (params) {
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php