php-developer-list | 2000111
--- php-4.0.4_20001027/ext/standard/basic_functions.c.orig Thu Nov 2 17:20:38 2000
+++ php-4.0.4_20001027/ext/standard/basic_functions.c Thu Nov 2 17:41:57 2000
@@ -1951,7 +1951,7 @@
WRONG_PARAM_COUNT;
}
- zend_print_pval_r(*expr, 0);
+ zend_print_pval_r(*expr, 0, *expr);
RETURN_TRUE;
}
--- php-4.0.4_20001027/Zend/zend.c.orig Thu Nov 2 17:38:19 2000
+++ php-4.0.4_20001027/Zend/zend.c Thu Nov 2 17:41:07 2000
@@ -75,7 +75,7 @@
#define PRINT_ZVAL_INDENT 4
-static void print_hash(HashTable *ht, int indent)
+static void print_hash(HashTable *ht, int indent, zval *initial)
{
zval **tmp;
char *string_key;
@@ -103,7 +103,14 @@
break;
}
ZEND_PUTS("] => ");
- zend_print_zval_r(*tmp, indent+PRINT_ZVAL_INDENT);
+ if (*tmp!=initial)
+ {
+ zend_print_zval_r(*tmp, indent+PRINT_ZVAL_INDENT, initial);
+ }
+ else
+ {
+ ZEND_PUTS("(recursion)");
+ }
ZEND_PUTS("\n");
zend_hash_move_forward(ht);
}
@@ -187,22 +194,22 @@
}
-ZEND_API void zend_print_zval_r(zval *expr, int indent)
+ZEND_API void zend_print_zval_r(zval *expr, int indent, zval *initial)
{
- zend_print_zval_r_ex(zend_write, expr, indent);
+ zend_print_zval_r_ex(zend_write, expr, indent, initial);
}
-ZEND_API void zend_print_zval_r_ex(zend_write_func_t write_func, zval *expr, int indent)
+ZEND_API void zend_print_zval_r_ex(zend_write_func_t write_func, zval *expr, int indent, zval *initial)
{
switch(expr->type) {
case IS_ARRAY:
ZEND_PUTS("Array\n");
- print_hash(expr->value.ht,indent);
+ print_hash(expr->value.ht, indent, initial);
break;
case IS_OBJECT:
zend_printf("%s Object\n", expr->value.obj.ce->name);
- print_hash(expr->value.obj.properties, indent);
+ print_hash(expr->value.obj.properties, indent, initial);
break;
default:
zend_print_variable(expr);

