mike            Sun Jun  4 10:01:58 2006 UTC

  Added files:                 
    /php-src/tests/output       ob_017.phpt 

  Modified files:              
    /php-src/main       output.c 
  Log:
  - fix output handler seeing buffered data when it gets discarded
  - add test
  
  
http://cvs.php.net/viewcvs.cgi/php-src/main/output.c?r1=1.179&r2=1.180&diff_format=u
Index: php-src/main/output.c
diff -u php-src/main/output.c:1.179 php-src/main/output.c:1.180
--- php-src/main/output.c:1.179 Sat Jun  3 11:19:44 2006
+++ php-src/main/output.c       Sun Jun  4 10:01:57 2006
@@ -19,7 +19,7 @@
    +----------------------------------------------------------------------+
 */
 
-/* $Id: output.c,v 1.179 2006/06/03 11:19:44 mike Exp $ */
+/* $Id: output.c,v 1.180 2006/06/04 10:01:57 mike Exp $ */
 
 #ifndef PHP_OUTPUT_DEBUG
 #      define PHP_OUTPUT_DEBUG 0
@@ -1181,6 +1181,7 @@
                        /* signal that we're cleaning up */
                        if (discard) {
                                context.op |= PHP_OUTPUT_HANDLER_CLEAN;
+                               orphan->buffer.used = 0;
                        }
                        php_output_handler_op(orphan, &context);
                }

http://cvs.php.net/viewcvs.cgi/php-src/tests/output/ob_017.phpt?view=markup&rev=1.1
Index: php-src/tests/output/ob_017.phpt
+++ php-src/tests/output/ob_017.phpt
--TEST--
output buffering - stati
--FILE--
<?php
$stati = array();
function oh($str, $flags) {
        global $stati;
        $stati[] = "$flags: $str";
        return $str;
}
ob_start("oh", 3);
echo "yes";
echo "!\n";
ob_flush();
echo "no";
ob_clean();
echo "yes!\n";
echo "no";
ob_end_clean();
print_r($stati);
?>
--EXPECT--
yes!
yes!
Array
(
    [0] => 1: yes
    [1] => 4: !

    [2] => 2: 
    [3] => 0: yes!

    [4] => 10: 
)



-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to