diff options
Diffstat (limited to 'ext/standard/basic_functions.c')
-rw-r--r-- | ext/standard/basic_functions.c | 50 |
1 files changed, 21 insertions, 29 deletions
diff --git a/ext/standard/basic_functions.c b/ext/standard/basic_functions.c index fd16d4a123..c48c01e781 100644 --- a/ext/standard/basic_functions.c +++ b/ext/standard/basic_functions.c @@ -5055,7 +5055,7 @@ ZEND_API void php_get_highlight_struct(zend_syntax_highlighter_ini *syntax_highl PHP_FUNCTION(highlight_file) { char *filename; - int filename_len; + int filename_len, ret; zend_syntax_highlighter_ini syntax_highlighter_ini; zend_bool i = 0; @@ -5068,32 +5068,23 @@ PHP_FUNCTION(highlight_file) } if (i) { - php_start_ob_buffer (NULL, 0, 1 TSRMLS_CC); + php_output_start_default(TSRMLS_C); } php_get_highlight_struct(&syntax_highlighter_ini); - if (highlight_file(filename, &syntax_highlighter_ini TSRMLS_CC) == FAILURE) { - if (i) { - int res = php_ob_get_buffer(return_value TSRMLS_CC); + ret = highlight_file(filename, &syntax_highlighter_ini TSRMLS_CC); - /* flush the buffer only if there is something to flush */ - if (res == SUCCESS && Z_STRLEN_P(return_value) > 0) { - php_end_ob_buffer (1, 0 TSRMLS_CC); - zval_dtor(return_value); - } else { - php_end_ob_buffer (0, 0 TSRMLS_CC); - if (res == SUCCESS) { - zval_dtor(return_value); - } - } + if (ret == FAILURE) { + if (i) { + php_output_end(TSRMLS_C); } RETURN_FALSE; } if (i) { - php_ob_get_buffer (return_value TSRMLS_CC); - php_end_ob_buffer (0, 0 TSRMLS_CC); + php_output_get_contents(return_value TSRMLS_CC); + php_output_discard(TSRMLS_C); } else { RETURN_TRUE; } @@ -5113,25 +5104,26 @@ PHP_FUNCTION(php_strip_whitespace) RETURN_FALSE; } + php_output_start_default(TSRMLS_C); + file_handle.type = ZEND_HANDLE_FILENAME; file_handle.filename = filename; file_handle.free_filename = 0; file_handle.opened_path = NULL; zend_save_lexical_state(&original_lex_state TSRMLS_CC); - if (open_file_for_scanning(&file_handle TSRMLS_CC)==FAILURE) { + if (open_file_for_scanning(&file_handle TSRMLS_CC) == FAILURE) { zend_restore_lexical_state(&original_lex_state TSRMLS_CC); + php_output_end(TSRMLS_C); RETURN_EMPTY_STRING(); } - php_start_ob_buffer(NULL, 0, 1 TSRMLS_CC); - zend_strip(TSRMLS_C); zend_destroy_file_handle(&file_handle TSRMLS_CC); zend_restore_lexical_state(&original_lex_state TSRMLS_CC); - php_ob_get_buffer(return_value TSRMLS_CC); - php_end_ob_buffer(0, 0 TSRMLS_CC); + php_output_get_contents(return_value TSRMLS_CC); + php_output_discard(TSRMLS_C); } /* }}} */ @@ -5151,7 +5143,7 @@ PHP_FUNCTION(highlight_string) convert_to_string_ex(expr); if (i) { - php_start_ob_buffer (NULL, 0, 1 TSRMLS_CC); + php_output_start_default(TSRMLS_C); } EG(error_reporting) = E_ERROR; @@ -5164,7 +5156,7 @@ PHP_FUNCTION(highlight_string) efree(hicompiled_string_description); EG(error_reporting) = old_error_reporting; if (i) { - php_end_ob_buffer (1, 0 TSRMLS_CC); + php_output_end(TSRMLS_C); } RETURN_FALSE; } @@ -5173,8 +5165,8 @@ PHP_FUNCTION(highlight_string) EG(error_reporting) = old_error_reporting; if (i) { - php_ob_get_buffer (return_value TSRMLS_CC); - php_end_ob_buffer (0, 0 TSRMLS_CC); + php_output_get_contents(return_value TSRMLS_CC); + php_output_discard(TSRMLS_C); } else { RETURN_TRUE; } @@ -5416,14 +5408,14 @@ PHP_FUNCTION(print_r) } if (do_return) { - php_start_ob_buffer (NULL, 0, 1 TSRMLS_CC); + php_output_start_default(TSRMLS_C); } zend_print_zval_r(var, 0 TSRMLS_CC); if (do_return) { - php_ob_get_buffer (return_value TSRMLS_CC); - php_end_ob_buffer (0, 0 TSRMLS_CC); + php_output_get_contents(return_value TSRMLS_CC); + php_output_discard(TSRMLS_C); } else { RETURN_TRUE; } |