Re: cvs: php4 /ext/standard basic_functions.c var.c /main output.c

From: Date: Thu, 03 Oct 2002 13:57:44 +0000
Subject: Re: cvs: php4 /ext/standard basic_functions.c var.c /main output.c
References: 1  Groups: php.cvs 
Request: Send a blank email to php-cvs+get-14482@lists.php.net to get a copy of this message
Yasuo, Can you explain how come the output buffering code pays any attention to implicit_flush, when I repeatedly said that output buffering and implicit_flush are COMPLETELY unrelated? Zeev At 16:32 03/10/2002, Yasuo Ohgaki wrote:
yohgaki         Thu Oct  3 09:32:02 2002 EDT
Modified files:
    /php4/ext/standard  basic_functions.c var.c
    /php4/main  output.c
Log: Fixed broken code by Derick. ob_implicit_flush() and ob_flush_all() are stopped working. var_dump() and hightlisht_string() outputs buffer contents wrongly with ob_implicit_flush(). Everyone should be happy now. It was only OG(implicit_flush) interpretation issue after all. Index: php4/ext/standard/basic_functions.c diff -u php4/ext/standard/basic_functions.c:1.521 php4/ext/standard/basic_functions.c:1.522 --- php4/ext/standard/basic_functions.c:1.521 Thu Oct 3 06:42:57 2002 +++ php4/ext/standard/basic_functions.c Thu Oct 3 09:31:59 2002 @@ -17,7 +17,7 @@
    +----------------------------------------------------------------------+
*/ -/* $Id: basic_functions.c,v 1.521 2002/10/03 10:42:57 andrey Exp $ */ +/* $Id: basic_functions.c,v 1.522 2002/10/03 13:31:59 yohgaki Exp $ */ #include "php.h" #include "php_streams.h" @@ -2077,6 +2077,7 @@
        convert_to_string(expr);
        if (i) {
+               php_output_set_status(0 TSRMLS_CC);
                php_start_ob_buffer (NULL, 0, 1 TSRMLS_CC);
        }
@@ -2093,6 +2094,7 @@
        if (i) {
                php_ob_get_buffer (return_value TSRMLS_CC);
                php_end_ob_buffer (0, 0 TSRMLS_CC);
+               php_output_set_status(1 TSRMLS_CC);
        } else {
                RETURN_TRUE;
        }
Index: php4/ext/standard/var.c diff -u php4/ext/standard/var.c:1.147 php4/ext/standard/var.c:1.148
--- php4/ext/standard/var.c:1.147       Thu Oct  3 06:35:33 2002
+++ php4/ext/standard/var.c     Thu Oct  3 09:32:00 2002
@@ -342,21 +342,23 @@ PHP_FUNCTION(var_export) {
        zval *var;
-       zend_bool i = 0;
+       zend_bool return_output = 0;
-       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "z|b", &var, &i) == FAILURE) {
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "z|b", &var, &return_output) == FAILURE) {
                return;
        }
-       if (i) {
+       if (return_output) {
+               php_output_set_status(0 TSRMLS_CC);
                php_start_ob_buffer (NULL, 0, 1 TSRMLS_CC);
        }
        php_var_export(&var, 1 TSRMLS_CC);
-       if (i) {
+       if (return_output) {
                php_ob_get_buffer (return_value TSRMLS_CC);
                php_end_ob_buffer (0, 0 TSRMLS_CC);
+               php_output_set_status(1 TSRMLS_CC);
        }
} /* }}} */ Index: php4/main/output.c diff -u php4/main/output.c:1.137 php4/main/output.c:1.138
--- php4/main/output.c:1.137    Thu Oct  3 07:56:10 2002
+++ php4/main/output.c Thu Oct 3 09:32:01 2002 @@ -18,7 +18,7 @@
    +----------------------------------------------------------------------+
*/ -/* $Id: output.c,v 1.137 2002/10/03 11:56:10 jmoore Exp $ */ +/* $Id: output.c,v 1.138 2002/10/03 13:32:01 yohgaki Exp $ */ #include "php.h" #include "ext/standard/head.h" @@ -591,10 +591,12 @@
        memcpy(target, text, text_length);
        target[text_length]=0;
-       if (OG(active_ob_buffer).chunk_size
-                       && OG(active_ob_buffer).text_length >= OG(active_ob_buffer).chunk_size) {
+       /* If implicit_flush is On, send contents to next buffer and return. */
+       if (OG(implicit_flush) || OG(active_ob_buffer).chunk_size
+               && OG(active_ob_buffer).text_length >= OG(active_ob_buffer).chunk_size)
+       {
                zval *output_handler = OG(active_ob_buffer).output_handler;
- +
                if (output_handler) {
                        output_handler->refcount++;
                }
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php


« previous php.cvs (#14482) next »