From: Rui Hirokawa Date: Sat, 6 Jan 2001 08:37:00 +0000 (+0000) Subject: linked with libexpat. it's necessary to use sablot-0.50. added xslt_set_encoding... X-Git-Tag: php-4.0.5RC1~713 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=20aa57ec0d5277b334c217e70e01066ddff599d0;p=php linked with libexpat. it's necessary to use sablot-0.50. added xslt_set_encoding() function. --- diff --git a/ext/sablot/config.m4 b/ext/sablot/config.m4 index 665d3015ec..038dad7563 100644 --- a/ext/sablot/config.m4 +++ b/ext/sablot/config.m4 @@ -26,8 +26,15 @@ if test "$PHP_SABLOT" != "no"; then PHP_SUBST(SABLOT_SHARED_LIBADD) AC_ADD_LIBRARY_WITH_PATH(sablot, $SABLOT_DIR/lib, SABLOT_SHARED_LIBADD) - AC_ADD_LIBRARY(xmlparse) - AC_ADD_LIBRARY(xmltok) + + if test -f $SABLOT_DIR/lib/libexpat.a -o -f $SABLOT_DIR/lib/libexpat.so ; then + AC_ADD_LIBRARY(expat) + AC_CHECK_LIB(sablot, SablotSetEncoding, + AC_DEFINE(HAVE_SABLOT_SET_ENCODING,1,[ ])) + else + AC_ADD_LIBRARY(xmlparse) + AC_ADD_LIBRARY(xmltok) + fi AC_DEFINE(HAVE_SABLOT,1,[ ]) diff --git a/ext/sablot/php_sablot.h b/ext/sablot/php_sablot.h index 79f9566b13..6e1d1f3007 100644 --- a/ext/sablot/php_sablot.h +++ b/ext/sablot/php_sablot.h @@ -53,6 +53,9 @@ PHP_FUNCTION(xslt_create); PHP_FUNCTION(xslt_run); PHP_FUNCTION(xslt_set_sax_handler); PHP_FUNCTION(xslt_set_error_handler); +#ifdef HAVE_SABLOT_SET_ENCODING +PHP_FUNCTION(xslt_set_encoding); +#endif PHP_FUNCTION(xslt_fetch_result); PHP_FUNCTION(xslt_free); diff --git a/ext/sablot/sablot.c b/ext/sablot/sablot.c index e0f1c6ae28..5e607b3827 100644 --- a/ext/sablot/sablot.c +++ b/ext/sablot/sablot.c @@ -150,6 +150,9 @@ function_entry sablot_functions[] = { PHP_FE(xslt_closelog, NULL) PHP_FE(xslt_set_sax_handler, NULL) PHP_FE(xslt_set_error_handler, NULL) +#ifdef HAVE_SABLOT_SET_ENCODING + PHP_FE(xslt_set_encoding, NULL) +#endif PHP_FE(xslt_free, NULL) PHP_FE(xslt_error, NULL) PHP_FE(xslt_errno, NULL) @@ -976,6 +979,33 @@ static void _php_sablot_handler_pair(php_sablot *handle, zval **first_func, zval } /* }}} */ +#ifdef HAVE_SABLOT_SET_ENCODING +/* {{{ proto void xslt_set_encoding(resource xh, string encoding) + Sets output encoding to be used for Sablotron regardless of the + encoding specified by the stylesheet. To unset, call with + encoding_ NULL. */ +PHP_FUNCTION(xslt_set_encoding) +{ + zval **xh, **encoding; + php_sablot *handle; + int ret = 0, + loglevel = 0, + argc = ZEND_NUM_ARGS(); + SABLOTLS_FETCH(); + + if (argc != 2 || + zend_get_parameters_ex(argc, &xh, &encoding) == FAILURE) { + WRONG_PARAM_COUNT; + } + ZEND_FETCH_RESOURCE(handle, php_sablot *, xh, -1, "PHP-Sablotron", le_sablot); + convert_to_string_ex(encoding); + + SablotSetEncoding(handle->p, (char *)Z_STRVAL_PP(encoding)); + +} +/* }}} */ +#endif + /* {{{ _php_sablot_call_handler_function() Call a sablot call handler function, wrapper for call_user_function() */ static void _php_sablot_call_handler_function(zval *handlerName, int argc, zval **args, char *function_name)