diff options
Diffstat (limited to 'www/php4/patches/patch-ar')
-rw-r--r-- | www/php4/patches/patch-ar | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/www/php4/patches/patch-ar b/www/php4/patches/patch-ar new file mode 100644 index 00000000000..0f0c4012088 --- /dev/null +++ b/www/php4/patches/patch-ar @@ -0,0 +1,55 @@ +$NetBSD: patch-ar,v 1.1.2.2 2006/04/19 00:12:27 salo Exp $ + +--- ext/standard/info.c.orig 2006-01-01 14:46:57.000000000 +0100 ++++ ext/standard/info.c +@@ -58,6 +58,23 @@ ZEND_EXTERN_MODULE_GLOBALS(iconv) + + PHPAPI extern char *php_ini_opened_path; + PHPAPI extern char *php_ini_scanned_files; ++ ++static int php_info_write_wrapper(const char *str, uint str_length) ++{ ++ int new_len, written; ++ char *elem_esc; ++ ++ TSRMLS_FETCH(); ++ ++ elem_esc = php_escape_html_entities((char *)str, str_length, &new_len, 0, ENT_QUOTES, NULL TSRMLS_CC); ++ ++ written = php_body_write(elem_esc, new_len TSRMLS_CC); ++ ++ efree(elem_esc); ++ ++ return written; ++} ++ + + /* {{{ _display_module_info + */ +@@ -133,23 +150,12 @@ static void php_print_gpcse_array(char * + PUTS(" => "); + } + if (Z_TYPE_PP(tmp) == IS_ARRAY) { +- zval *tmp3; +- MAKE_STD_ZVAL(tmp3); + if (!sapi_module.phpinfo_as_text) { + PUTS("<pre>"); +- } +- php_start_ob_buffer(NULL, 4096, 1 TSRMLS_CC); +- zend_print_zval_r(*tmp, 0); +- php_ob_get_buffer(tmp3 TSRMLS_CC); +- php_end_ob_buffer(0, 0 TSRMLS_CC); +- +- elem_esc = php_info_html_esc(Z_STRVAL_P(tmp3) TSRMLS_CC); +- PUTS(elem_esc); +- efree(elem_esc); +- zval_ptr_dtor(&tmp3); +- +- if (!sapi_module.phpinfo_as_text) { ++ zend_print_zval_ex((zend_write_func_t) php_info_write_wrapper, *tmp, 0); + PUTS("</pre>"); ++ } else { ++ zend_print_zval_r(*tmp, 0 TSRMLS_CC); + } + } else if (Z_TYPE_PP(tmp) != IS_STRING) { + tmp2 = **tmp; |