mirror of
https://github.com/php/php-src.git
synced 2025-08-19 08:49:28 +02:00
* implement new output API, fixing some bugs and implementing some feature
requests--let's see what I can dig out of the bugtracker for NEWS-- and while crossing the road: * implemented new zlib API * fixed up ext/tidy (what was "s&" in zend_parse_parameters() supposed to do?) Thanks to Jani and Felipe for pioneering.
This commit is contained in:
parent
27299b7e40
commit
11d24c1593
85 changed files with 3561 additions and 2701 deletions
|
@ -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;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue