summaryrefslogtreecommitdiff
path: root/www/php4/patches/patch-ar
blob: bfdc845b1b01260d3bc3e295d4fefc8dbdb47779 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
$NetBSD: patch-ar,v 1.1 2006/04/14 13:48:33 cube 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;