summaryrefslogtreecommitdiff
path: root/ext/standard/basic_functions.c
diff options
context:
space:
mode:
Diffstat (limited to 'ext/standard/basic_functions.c')
-rw-r--r--ext/standard/basic_functions.c50
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;
}