From 82a8d372e5fcbee52769f2c376fad34fec4bf63e Mon Sep 17 00:00:00 2001 From: Yasuo Ohgaki Date: Fri, 1 Mar 2002 03:05:50 +0000 Subject: Added ob_get_status() to get array of buffers and it's status. (DO NOT document this function yet) Fixed crash bug with ob_end_*() function. ob_end_*() will not delete buffers that may not be deleted. php_start_ob_buffer() and php_ob_set_internal_handler() takes parameter for if the buffer created may be deleted or not. Added 3rd parameter "bool erase" to ob_start(). If FALSE, buffer may not be deleted until script finshes. Changed ob_*() function that have void return type to bool. All ob_*() functions return TRUE for success, FALSE for failure. @ - Added ob_get_status() to get array of buffers and it's status. (Yasuo) @ - Fixed crash bug with ob_end_*() function. ob_end_*() will not delete @ buffers that may not be deleted. (Yasuo) @ - Added 3rd parameter "bool erase" to ob_start(). If FALSE, buffer may not be @ deleted until script finshes. (Yasuo) @ - Changed ob_*() function that have void return type to bool. All ob_*() @ functions return TRUE for success, FALSE for failure. (Yasuo) --- main/php_output.h | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) (limited to 'main/php_output.h') diff --git a/main/php_output.h b/main/php_output.h index 4a6b5f1ae2..f1a8069ce1 100644 --- a/main/php_output.h +++ b/main/php_output.h @@ -29,7 +29,7 @@ PHPAPI void php_output_set_status(zend_bool status TSRMLS_DC); void php_output_register_constants(TSRMLS_D); PHPAPI int php_body_write(const char *str, uint str_length TSRMLS_DC); PHPAPI int php_header_write(const char *str, uint str_length TSRMLS_DC); -PHPAPI int php_start_ob_buffer(zval *output_handler, uint chunk_size TSRMLS_DC); +PHPAPI int php_start_ob_buffer(zval *output_handler, uint chunk_size, zend_bool erase TSRMLS_DC); PHPAPI void php_end_ob_buffer(zend_bool send_buffer, zend_bool just_flush TSRMLS_DC); PHPAPI void php_end_ob_buffers(zend_bool send_buffer TSRMLS_DC); PHPAPI int php_ob_get_buffer(zval *p TSRMLS_DC); @@ -38,7 +38,7 @@ PHPAPI void php_start_implicit_flush(TSRMLS_D); PHPAPI void php_end_implicit_flush(TSRMLS_D); PHPAPI char *php_get_output_start_filename(TSRMLS_D); PHPAPI int php_get_output_start_lineno(TSRMLS_D); -PHPAPI void php_ob_set_internal_handler(php_output_handler_func_t internal_output_handler, uint buffer_size TSRMLS_DC); +PHPAPI void php_ob_set_internal_handler(php_output_handler_func_t internal_output_handler, uint buffer_size, char *handler_name, zend_bool erase TSRMLS_DC); PHP_FUNCTION(ob_start); PHP_FUNCTION(ob_flush); @@ -48,6 +48,7 @@ PHP_FUNCTION(ob_end_clean); PHP_FUNCTION(ob_get_contents); PHP_FUNCTION(ob_get_length); PHP_FUNCTION(ob_get_level); +PHP_FUNCTION(ob_get_status); PHP_FUNCTION(ob_implicit_flush); typedef struct _php_ob_buffer { @@ -61,6 +62,8 @@ typedef struct _php_ob_buffer { php_output_handler_func_t internal_output_handler; char *internal_output_handler_buffer; uint internal_output_handler_buffer_size; + char *handler_name; + zend_bool erase; } php_ob_buffer; typedef struct _php_output_globals { @@ -76,7 +79,6 @@ typedef struct _php_output_globals { zend_bool disable_output; } php_output_globals; - #ifdef ZTS #define OG(v) TSRMG(output_globals_id, php_output_globals *, v) ZEND_API extern int output_globals_id; @@ -89,4 +91,8 @@ ZEND_API extern php_output_globals output_globals; #define PHP_OUTPUT_HANDLER_CONT (1<<1) #define PHP_OUTPUT_HANDLER_END (1<<2) +#define PHP_OUTPUT_HANDLER_INTERNAL 0 +#define PHP_OUTPUT_HANDLER_USER 1 + + #endif /* PHP_OUTPUT_H */ -- cgit v1.2.1