From: Zeev Suraski Date: Sat, 25 Mar 2000 19:10:07 +0000 (+0000) Subject: - Some header dependencies cleanup X-Git-Tag: PHP-4.0-RC1~37 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=5dba477467304ae627f4a1766e92fe8b74de11ce;p=php - Some header dependencies cleanup - Generalize zval_print() and zval_print_r() --- diff --git a/Zend/zend-parser.y b/Zend/zend-parser.y index 1938e0949b..c6e7fc3c23 100644 --- a/Zend/zend-parser.y +++ b/Zend/zend-parser.y @@ -33,8 +33,6 @@ #include "zend_list.h" #include "zend_globals.h" #include "zend_API.h" -#include "zend_variables.h" -#include "zend_operators.h" #define YYERROR_VERBOSE #define YYSTYPE znode diff --git a/Zend/zend.c b/Zend/zend.c index 3f18b9284e..b8f145c4d5 100644 --- a/Zend/zend.c +++ b/Zend/zend.c @@ -19,8 +19,6 @@ #include "zend.h" -#include "zend_operators.h" -#include "zend_variables.h" #include "zend_extensions.h" #include "modules.h" #include "zend_constants.h" @@ -41,7 +39,7 @@ /* true multithread-shared globals */ ZEND_API zend_class_entry zend_standard_class_def; ZEND_API int (*zend_printf)(const char *format, ...); -ZEND_API int (*zend_write)(const char *str, uint str_length); +ZEND_API zend_write_func_t zend_write; ZEND_API void (*zend_error)(int type, const char *format, ...); ZEND_API FILE *(*zend_fopen)(const char *filename, char **opened_path); ZEND_API void (*zend_block_interruptions)(void); @@ -162,6 +160,12 @@ ZEND_API void zend_make_printable_zval(zval *expr, zval *expr_copy, int *use_cop ZEND_API int zend_print_zval(zval *expr, int indent) +{ + return zend_print_zval_ex(zend_write, expr, indent); +} + + +ZEND_API int zend_print_zval_ex(zend_write_func_t write_func, zval *expr, int indent) { zval expr_copy; int use_copy; @@ -176,7 +180,7 @@ ZEND_API int zend_print_zval(zval *expr, int indent) } return 0; } - ZEND_WRITE(expr->value.str.val,expr->value.str.len); + write_func(expr->value.str.val,expr->value.str.len); if (use_copy) { zval_dtor(expr); } @@ -184,7 +188,13 @@ ZEND_API int zend_print_zval(zval *expr, int indent) } -ZEND_API void zend_print_zval_r(zval *expr, int indent) +ZEND_API void zend_print_zval_r(zval *expr, int indent) +{ + zend_print_zval_r_ex(zend_write, expr, indent); +} + + +ZEND_API void zend_print_zval_r_ex(zend_write_func_t write_func, zval *expr, int indent) { switch(expr->type) { case IS_ARRAY: @@ -298,7 +308,7 @@ int zend_startup(zend_utility_functions *utility_functions, char **extensions, i /* Set up utility functions and values */ zend_error = utility_functions->error_function; zend_printf = utility_functions->printf_function; - zend_write = utility_functions->write_function; + zend_write = (zend_write_func_t) utility_functions->write_function; zend_fopen = utility_functions->fopen_function; if (!zend_fopen) { zend_fopen = zend_fopen_wrapper; diff --git a/Zend/zend.h b/Zend/zend.h index 64f2c57870..bce477c006 100644 --- a/Zend/zend.h +++ b/Zend/zend.h @@ -237,6 +237,9 @@ typedef struct _zend_utility_values { } zend_utility_values; +typedef int (*zend_write_func_t)(const char *str, uint str_length); + + #undef MIN #undef MAX #define MAX(a,b) (((a)>(b))?(a):(b)) @@ -282,7 +285,9 @@ ZEND_API char *get_zend_version(void); ZEND_API void zend_make_printable_zval(zval *expr, zval *expr_copy, int *use_copy); ZEND_API int zend_print_zval(zval *expr, int indent); +ZEND_API int zend_print_zval_ex(zend_write_func_t write_func, zval *expr, int indent); ZEND_API void zend_print_zval_r(zval *expr, int indent); +ZEND_API void zend_print_zval_r_ex(zend_write_func_t write_func, zval *expr, int indent); ZEND_API extern char *empty_string; @@ -302,9 +307,10 @@ ZEND_API extern char *empty_string; #define ZEND_PUTS(str) zend_write((str), strlen((str))) #define ZEND_PUTC(c) zend_write(&(c), 1), (c) + BEGIN_EXTERN_C() extern ZEND_API int (*zend_printf)(const char *format, ...); -extern ZEND_API int (*zend_write)(const char *str, uint str_length); +extern ZEND_API zend_write_func_t zend_write; extern ZEND_API void (*zend_error)(int type, const char *format, ...); extern ZEND_API FILE *(*zend_fopen)(const char *filename, char **opened_path); extern ZEND_API void (*zend_block_interruptions)(void); diff --git a/Zend/zend_API.c b/Zend/zend_API.c index ecf62e0f39..862a298058 100644 --- a/Zend/zend_API.c +++ b/Zend/zend_API.c @@ -19,12 +19,10 @@ #include "zend.h" -#include "zend_variables.h" #include "zend_execute.h" #include "zend_API.h" #include "modules.h" #include "zend_constants.h" -#include "zend_operators.h" #ifdef HAVE_STDARG_H # include diff --git a/Zend/zend_API.h b/Zend/zend_API.h index ffb3b212e1..117eeea813 100644 --- a/Zend/zend_API.h +++ b/Zend/zend_API.h @@ -24,6 +24,8 @@ #include "modules.h" #include "zend_list.h" #include "zend_fast_cache.h" +#include "zend_operators.h" +#include "zend_variables.h" #define ZEND_NAMED_FUNCTION(name) void name(INTERNAL_FUNCTION_PARAMETERS) diff --git a/Zend/zend_builtin_functions.c b/Zend/zend_builtin_functions.c index 9ae62e2502..d8d826c105 100644 --- a/Zend/zend_builtin_functions.c +++ b/Zend/zend_builtin_functions.c @@ -21,8 +21,6 @@ #include "zend.h" #include "zend_API.h" #include "zend_builtin_functions.h" -#include "zend_operators.h" -#include "zend_variables.h" #include "zend_constants.h" #undef ZEND_TEST_EXCEPTIONS diff --git a/Zend/zend_compile.c b/Zend/zend_compile.c index 4e77ca438d..85c0a0bb65 100644 --- a/Zend/zend_compile.c +++ b/Zend/zend_compile.c @@ -23,8 +23,6 @@ #include "zend_compile.h" #include "zend_llist.h" #include "zend_API.h" -#include "zend_variables.h" -#include "zend_operators.h" #include "zend_fast_cache.h" diff --git a/Zend/zend_execute.c b/Zend/zend_execute.c index 47e0795a89..1986e1c43a 100644 --- a/Zend/zend_execute.c +++ b/Zend/zend_execute.c @@ -27,8 +27,6 @@ #include "zend_execute.h" #include "zend_API.h" #include "zend_ptr_stack.h" -#include "zend_variables.h" -#include "zend_operators.h" #include "zend_constants.h" #include "zend_extensions.h" #include "zend_fast_cache.h" diff --git a/Zend/zend_execute_API.c b/Zend/zend_execute_API.c index cd25435841..40d62bada1 100644 --- a/Zend/zend_execute_API.c +++ b/Zend/zend_execute_API.c @@ -26,8 +26,6 @@ #include "zend_execute.h" #include "zend_API.h" #include "zend_ptr_stack.h" -#include "zend_variables.h" -#include "zend_operators.h" #include "zend_constants.h" #include "zend_extensions.h" #include "zend_execute_locks.h" diff --git a/Zend/zend_opcode.c b/Zend/zend_opcode.c index 92e30acadc..faaa54f0d0 100644 --- a/Zend/zend_opcode.c +++ b/Zend/zend_opcode.c @@ -23,8 +23,6 @@ #include "zend.h" #include "zend_alloc.h" #include "zend_compile.h" -#include "zend_variables.h" -#include "zend_operators.h" #include "zend_extensions.h" #include "zend_API.h" diff --git a/Zend/zend_variables.c b/Zend/zend_variables.c index a87cb7b139..6c0a882cdf 100644 --- a/Zend/zend_variables.c +++ b/Zend/zend_variables.c @@ -23,7 +23,6 @@ #include "zend_API.h" #include "zend_globals.h" #include "zend_constants.h" -#include "zend_variables.h" #include "zend_list.h" ZEND_API char *empty_string = ""; /* in order to save emalloc() and efree() time for