diff options
Diffstat (limited to 'ext/xsl/xsltprocessor.c')
-rw-r--r-- | ext/xsl/xsltprocessor.c | 122 |
1 files changed, 61 insertions, 61 deletions
diff --git a/ext/xsl/xsltprocessor.c b/ext/xsl/xsltprocessor.c index 487585892e..f66ea05d70 100644 --- a/ext/xsl/xsltprocessor.c +++ b/ext/xsl/xsltprocessor.c @@ -81,10 +81,10 @@ ZEND_END_ARG_INFO(); /* }}} */ /* -* class xsl_xsltprocessor +* class xsl_xsltprocessor * * URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html# -* Since: +* Since: */ const zend_function_entry php_xsl_xsltprocessor_class_functions[] = { @@ -111,9 +111,9 @@ static char *php_xsl_xslt_string_to_xpathexpr(const char *str) xmlChar *value; int str_len; - + str_len = xmlStrlen(string) + 3; - + if (xmlStrchr(string, '"')) { if (xmlStrchr(string, '\'')) { php_error_docref(NULL, E_WARNING, "Cannot create XPath expression (string contains both quote and double-quotes)"); @@ -133,7 +133,7 @@ static char *php_xsl_xslt_string_to_xpathexpr(const char *str) Translates a PHP array to a libxslt parameters array */ static char **php_xsl_xslt_make_params(HashTable *parht, int xpath_params) { - + int parsize; zval *value; char *xpath_expr; @@ -156,7 +156,7 @@ static char **php_xsl_xslt_make_params(HashTable *parht, int xpath_params) SEPARATE_ZVAL(value); convert_to_string(value); } - + if (!xpath_params) { xpath_expr = php_xsl_xslt_string_to_xpathexpr(Z_STRVAL_P(value)); } else { @@ -188,7 +188,7 @@ static void xsl_ext_function_php(xmlXPathParserContextPtr ctxt, int nargs, int t char *str; xsl_object *intern; zend_string *callable = NULL; - + if (! zend_is_executing()) { xsltGenericError(xsltGenericErrorContext, @@ -214,7 +214,7 @@ static void xsl_ext_function_php(xmlXPathParserContextPtr ctxt, int nargs, int t } } } - + if (error == 1) { for (i = nargs - 1; i >= 0; i--) { obj = valuePop(ctxt); @@ -222,7 +222,7 @@ static void xsl_ext_function_php(xmlXPathParserContextPtr ctxt, int nargs, int t } return; } - + fci.param_count = nargs - 1; if (fci.param_count > 0) { args = safe_emalloc(fci.param_count, sizeof(zval), 0); @@ -257,7 +257,7 @@ static void xsl_ext_function_php(xmlXPathParserContextPtr ctxt, int nargs, int t if (node->type == XML_NAMESPACE_DECL) { xmlNsPtr curns; xmlNodePtr nsparent; - + nsparent = node->_private; curns = xmlNewNs(NULL, node->name, NULL); if (node->children) { @@ -288,7 +288,7 @@ static void xsl_ext_function_php(xmlXPathParserContextPtr ctxt, int nargs, int t } xmlXPathFreeObject(obj); } - + fci.size = sizeof(fci); fci.function_table = EG(function_table); if (fci.param_count > 0) { @@ -297,7 +297,7 @@ static void xsl_ext_function_php(xmlXPathParserContextPtr ctxt, int nargs, int t fci.params = NULL; } - + obj = valuePop(ctxt); if (obj->stringval == NULL) { php_error_docref(NULL, E_WARNING, "Handler name must be a string"); @@ -309,11 +309,11 @@ static void xsl_ext_function_php(xmlXPathParserContextPtr ctxt, int nargs, int t } efree(args); } - return; + return; } ZVAL_STRING(&handler, obj->stringval); xmlXPathFreeObject(obj); - + ZVAL_COPY_VALUE(&fci.function_name, &handler); fci.symbol_table = NULL; fci.object = NULL; @@ -323,7 +323,7 @@ static void xsl_ext_function_php(xmlXPathParserContextPtr ctxt, int nargs, int t if (!zend_make_callable(&handler, &callable)) { php_error_docref(NULL, E_WARNING, "Unable to call handler %s()", callable->val); valuePush(ctxt, xmlXPathNewString("")); - } else if ( intern->registerPhpFunctions == 2 && zend_hash_exists(intern->registered_phpfunctions, callable) == 0) { + } else if ( intern->registerPhpFunctions == 2 && zend_hash_exists(intern->registered_phpfunctions, callable) == 0) { php_error_docref(NULL, E_WARNING, "Not allowed to call handler '%s()'", callable->val); /* Push an empty string, so that we at least have an xslt result... */ valuePush(ctxt, xmlXPathNewString("")); @@ -386,7 +386,7 @@ void xsl_ext_function_object_php(xmlXPathParserContextPtr ctxt, int nargs) /* {{ /* {{{ proto void xsl_xsltprocessor_import_stylesheet(domdocument doc); URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html# -Since: +Since: */ PHP_FUNCTION(xsl_xsltprocessor_import_stylesheet) { @@ -398,13 +398,13 @@ PHP_FUNCTION(xsl_xsltprocessor_import_stylesheet) xmlNode *nodep = NULL; zend_object_handlers *std_hnd; zval *cloneDocu, member, rv; - + if (zend_parse_method_parameters(ZEND_NUM_ARGS(), getThis(), "Oo", &id, xsl_xsltprocessor_class_entry, &docp) == FAILURE) { RETURN_FALSE; } nodep = php_libxml_import_node(docp); - + if (nodep) { doc = nodep->doc; } @@ -413,7 +413,7 @@ PHP_FUNCTION(xsl_xsltprocessor_import_stylesheet) RETURN_FALSE; } - /* libxslt uses _private, so we must copy the imported + /* libxslt uses _private, so we must copy the imported stylesheet document otherwise the node proxies will be a mess */ newdoc = xmlCopyDoc(doc, 1); xmlNodeSetBase((xmlNodePtr) newdoc, (xmlChar *)doc->URL); @@ -430,7 +430,7 @@ PHP_FUNCTION(xsl_xsltprocessor_import_stylesheet) RETURN_FALSE; } - intern = Z_XSL_P(id); + intern = Z_XSL_P(id); std_hnd = zend_get_std_object_handlers(); ZVAL_STRING(&member, "cloneDocument"); @@ -456,10 +456,10 @@ PHP_FUNCTION(xsl_xsltprocessor_import_stylesheet) intern->hasKeys = clone_docu; } - if ((oldsheetp = (xsltStylesheetPtr)intern->ptr)) { + if ((oldsheetp = (xsltStylesheetPtr)intern->ptr)) { /* free wrapper */ if (((xsltStylesheetPtr) intern->ptr)->_private != NULL) { - ((xsltStylesheetPtr) intern->ptr)->_private = NULL; + ((xsltStylesheetPtr) intern->ptr)->_private = NULL; } xsltFreeStylesheet((xsltStylesheetPtr) intern->ptr); intern->ptr = NULL; @@ -487,7 +487,7 @@ static xmlDocPtr php_xsl_apply_stylesheet(zval *id, xsl_object *intern, xsltStyl xsltSecurityPrefsPtr secPrefs = NULL; node = php_libxml_import_node(docp); - + if (node) { doc = node->doc; } @@ -500,7 +500,7 @@ static xmlDocPtr php_xsl_apply_stylesheet(zval *id, xsl_object *intern, xsltStyl php_error_docref(NULL, E_WARNING, "No stylesheet associated to this object"); return NULL; } - + if (intern->profiling) { if (php_check_open_basedir(intern->profiling)) { f = NULL; @@ -510,7 +510,7 @@ static xmlDocPtr php_xsl_apply_stylesheet(zval *id, xsl_object *intern, xsltStyl } else { f = NULL; } - + if (intern->parameter) { params = php_xsl_xslt_make_params(intern->parameter, 0); } @@ -541,7 +541,7 @@ static xmlDocPtr php_xsl_apply_stylesheet(zval *id, xsl_object *intern, xsltStyl zval_ptr_dtor(&member); secPrefsValue = intern->securityPrefs; - + /* This whole if block can be removed, when we remove the xsl.security_prefs php.ini option in PHP 6+ */ secPrefsIni= INI_INT("xsl.security_prefs"); /* if secPrefsIni has the same value as secPrefsValue, all is fine */ @@ -561,38 +561,38 @@ static xmlDocPtr php_xsl_apply_stylesheet(zval *id, xsl_object *intern, xsltStyl /* if securityPrefs is set to NONE, we don't have to do any checks, but otherwise... */ if (secPrefsValue != XSL_SECPREF_NONE) { - secPrefs = xsltNewSecurityPrefs(); - if (secPrefsValue & XSL_SECPREF_READ_FILE ) { - if (0 != xsltSetSecurityPrefs(secPrefs, XSLT_SECPREF_READ_FILE, xsltSecurityForbid)) { + secPrefs = xsltNewSecurityPrefs(); + if (secPrefsValue & XSL_SECPREF_READ_FILE ) { + if (0 != xsltSetSecurityPrefs(secPrefs, XSLT_SECPREF_READ_FILE, xsltSecurityForbid)) { secPrefsError = 1; } } - if (secPrefsValue & XSL_SECPREF_WRITE_FILE ) { - if (0 != xsltSetSecurityPrefs(secPrefs, XSLT_SECPREF_WRITE_FILE, xsltSecurityForbid)) { + if (secPrefsValue & XSL_SECPREF_WRITE_FILE ) { + if (0 != xsltSetSecurityPrefs(secPrefs, XSLT_SECPREF_WRITE_FILE, xsltSecurityForbid)) { secPrefsError = 1; } } - if (secPrefsValue & XSL_SECPREF_CREATE_DIRECTORY ) { - if (0 != xsltSetSecurityPrefs(secPrefs, XSLT_SECPREF_CREATE_DIRECTORY, xsltSecurityForbid)) { + if (secPrefsValue & XSL_SECPREF_CREATE_DIRECTORY ) { + if (0 != xsltSetSecurityPrefs(secPrefs, XSLT_SECPREF_CREATE_DIRECTORY, xsltSecurityForbid)) { secPrefsError = 1; } } - if (secPrefsValue & XSL_SECPREF_READ_NETWORK) { - if (0 != xsltSetSecurityPrefs(secPrefs, XSLT_SECPREF_READ_NETWORK, xsltSecurityForbid)) { + if (secPrefsValue & XSL_SECPREF_READ_NETWORK) { + if (0 != xsltSetSecurityPrefs(secPrefs, XSLT_SECPREF_READ_NETWORK, xsltSecurityForbid)) { secPrefsError = 1; } } - if (secPrefsValue & XSL_SECPREF_WRITE_NETWORK) { - if (0 != xsltSetSecurityPrefs(secPrefs, XSLT_SECPREF_WRITE_NETWORK, xsltSecurityForbid)) { + if (secPrefsValue & XSL_SECPREF_WRITE_NETWORK) { + if (0 != xsltSetSecurityPrefs(secPrefs, XSLT_SECPREF_WRITE_NETWORK, xsltSecurityForbid)) { secPrefsError = 1; } } - - if (0 != xsltSetCtxtSecurityPrefs(secPrefs, ctxt)) { + + if (0 != xsltSetCtxtSecurityPrefs(secPrefs, ctxt)) { secPrefsError = 1; } } - + if (secPrefsError == 1) { php_error_docref(NULL, E_WARNING, "Can't set libxslt security properties, not doing transformation for security reasons"); } else { @@ -601,7 +601,7 @@ static xmlDocPtr php_xsl_apply_stylesheet(zval *id, xsl_object *intern, xsltStyl if (f) { fclose(f); } - + xsltFreeTransformContext(ctxt); if (secPrefs) { xsltFreeSecurityPrefs(secPrefs); @@ -609,7 +609,7 @@ static xmlDocPtr php_xsl_apply_stylesheet(zval *id, xsl_object *intern, xsltStyl if (intern->node_list != NULL) { zend_hash_destroy(intern->node_list); - FREE_HASHTABLE(intern->node_list); + FREE_HASHTABLE(intern->node_list); intern->node_list = NULL; } @@ -632,7 +632,7 @@ static xmlDocPtr php_xsl_apply_stylesheet(zval *id, xsl_object *intern, xsltStyl /* {{{ proto domdocument xsl_xsltprocessor_transform_to_doc(domnode doc); URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html# -Since: +Since: */ PHP_FUNCTION(xsl_xsltprocessor_transform_to_doc) { @@ -667,13 +667,13 @@ PHP_FUNCTION(xsl_xsltprocessor_transform_to_doc) ce = zend_lookup_class(ret_class); if (ce == NULL || !instanceof_function(ce, curce)) { xmlFreeDoc(newdocp); - php_error_docref(NULL, E_WARNING, + php_error_docref(NULL, E_WARNING, "Expecting class compatible with %s, '%s' given", curclass_name->val, ret_class->val); RETURN_FALSE; } object_init_ex(return_value, ce); - + interndoc = Z_LIBXML_NODE_P(return_value); php_libxml_increment_doc_ref(interndoc, newdocp); php_libxml_increment_node_ptr(interndoc, (xmlNodePtr)newdocp, (void *)interndoc); @@ -683,7 +683,7 @@ PHP_FUNCTION(xsl_xsltprocessor_transform_to_doc) } else { RETURN_FALSE; } - + } /* }}} end xsl_xsltprocessor_transform_to_doc */ @@ -698,7 +698,7 @@ PHP_FUNCTION(xsl_xsltprocessor_transform_to_uri) size_t uri_len; char *uri; xsl_object *intern; - + id = getThis(); intern = Z_XSL_P(id); sheetp = (xsltStylesheetPtr) intern->ptr; @@ -730,7 +730,7 @@ PHP_FUNCTION(xsl_xsltprocessor_transform_to_xml) xmlChar *doc_txt_ptr; int doc_txt_len; xsl_object *intern; - + id = getThis(); intern = Z_XSL_P(id); sheetp = (xsltStylesheetPtr) intern->ptr; @@ -761,7 +761,7 @@ PHP_FUNCTION(xsl_xsltprocessor_transform_to_xml) */ PHP_FUNCTION(xsl_xsltprocessor_set_parameter) { - + zval *id; zval *array_value, *entry, new_string; xsl_object *intern; @@ -782,22 +782,22 @@ PHP_FUNCTION(xsl_xsltprocessor_set_parameter) convert_to_string_ex(entry); if (Z_REFCOUNTED_P(entry)) { Z_ADDREF_P(entry); - } + } zend_hash_update(intern->parameter, string_key, entry); } ZEND_HASH_FOREACH_END(); RETURN_TRUE; } else if (zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS(), "sSS", &namespace, &namespace_len, &name, &value) == SUCCESS) { - + intern = Z_XSL_P(id); - + ZVAL_STR_COPY(&new_string, value); - + zend_hash_update(intern->parameter, name, &new_string); RETURN_TRUE; } else { WRONG_PARAM_COUNT; } - + } /* }}} end xsl_xsltprocessor_set_parameter */ @@ -813,7 +813,7 @@ PHP_FUNCTION(xsl_xsltprocessor_get_parameter) xsl_object *intern; DOM_GET_THIS(id); - + if (zend_parse_parameters(ZEND_NUM_ARGS(), "sS", &namespace, &namespace_len, &name) == FAILURE) { RETURN_FALSE; } @@ -838,7 +838,7 @@ PHP_FUNCTION(xsl_xsltprocessor_remove_parameter) xsl_object *intern; DOM_GET_THIS(id); - + if (zend_parse_parameters(ZEND_NUM_ARGS(), "sS", &namespace, &namespace_len, &name) == FAILURE) { RETURN_FALSE; } @@ -861,7 +861,7 @@ PHP_FUNCTION(xsl_xsltprocessor_register_php_functions) zend_string *name; DOM_GET_THIS(id); - + if (zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS(), "a", &array_value) == SUCCESS) { intern = Z_XSL_P(id); @@ -875,16 +875,16 @@ PHP_FUNCTION(xsl_xsltprocessor_register_php_functions) intern->registerPhpFunctions = 2; } else if (zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS(), "S", &name) == SUCCESS) { intern = Z_XSL_P(id); - + ZVAL_LONG(&new_string,1); zend_hash_update(intern->registered_phpfunctions, name, &new_string); intern->registerPhpFunctions = 2; - + } else { intern = Z_XSL_P(id); intern->registerPhpFunctions = 1; } - + } /* }}} end xsl_xsltprocessor_register_php_functions(); */ @@ -926,7 +926,7 @@ PHP_FUNCTION(xsl_xsltprocessor_set_security_prefs) return; } intern = Z_XSL_P(id); - oldSecurityPrefs = intern->securityPrefs; + oldSecurityPrefs = intern->securityPrefs; intern->securityPrefs = securityPrefs; /* set this to 1 so that we know, it was set through this method. Can be removed, when we remove the ini setting */ intern->securityPrefsSet = 1; |