]> granicus.if.org Git - php/commitdiff
flush output buffer when/if highlight_string()/php_strip_whitespace()/highlight_strin...
authorAntony Dovgal <tony2001@php.net>
Thu, 10 May 2007 16:27:16 +0000 (16:27 +0000)
committerAntony Dovgal <tony2001@php.net>
Thu, 10 May 2007 16:27:16 +0000 (16:27 +0000)
ext/standard/basic_functions.c
ext/standard/tests/strings/005.phpt [new file with mode: 0644]
ext/standard/tests/strings/006.phpt [new file with mode: 0644]
ext/standard/tests/strings/007.phpt [new file with mode: 0644]

index 833b75d738f177a7d305d41d7628309a3fd4dbd8..a0e710f5846c455f11cf3d5facc31c7f58e5aa68 100644 (file)
@@ -5380,6 +5380,9 @@ PHP_FUNCTION(highlight_file)
        }
 
        if (ret == FAILURE) {
+               if (i) {
+                       php_output_end(TSRMLS_C);
+               }
                RETURN_FALSE;
        }
 
@@ -5420,6 +5423,7 @@ PHP_FUNCTION(php_strip_whitespace)
        file_handle.opened_path = NULL;
        zend_save_lexical_state(&original_lex_state TSRMLS_CC);
        if (open_file_for_scanning(&file_handle TSRMLS_CC)==FAILURE) {
+               php_output_end(TSRMLS_C);
                if (filename_type == IS_UNICODE) {
                        efree(filename);
                }
@@ -5478,6 +5482,10 @@ PHP_FUNCTION(highlight_string)
 
        if (highlight_string(*expr, &syntax_highlighter_ini, hicompiled_string_description TSRMLS_CC) == FAILURE) {
                efree(hicompiled_string_description);
+               EG(error_reporting) = old_error_reporting;
+               if (i) {
+                       php_output_end(TSRMLS_C); 
+               }
                RETURN_FALSE;
        }
        efree(hicompiled_string_description);
diff --git a/ext/standard/tests/strings/005.phpt b/ext/standard/tests/strings/005.phpt
new file mode 100644 (file)
index 0000000..a69ff49
--- /dev/null
@@ -0,0 +1,24 @@
+--TEST--
+highlight_string(), output buffer and error level
+--INI--
+error_reporting=8192
+--FILE--
+<?php
+
+echo "hello\n";
+
+$string = str_repeat("A", 1024);
+
+var_dump(error_reporting());
+highlight_string($string, true);
+var_dump(ob_get_contents());
+var_dump(error_reporting());
+
+echo "Done\n";
+?>
+--EXPECTF--    
+hello
+int(8192)
+bool(false)
+int(8192)
+Done
diff --git a/ext/standard/tests/strings/006.phpt b/ext/standard/tests/strings/006.phpt
new file mode 100644 (file)
index 0000000..f0156cc
--- /dev/null
@@ -0,0 +1,19 @@
+--TEST--
+highlight_file() and output buffer
+--FILE--
+<?php
+
+$file = str_repeat("A", 1024);
+
+var_dump(highlight_file($file, true));
+var_dump(ob_get_contents());
+
+echo "Done\n";
+?>
+--EXPECTF--    
+Warning: highlight_file(AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA in %s on line %d
+
+Warning: highlight_file(): Failed opening 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA in %s on line %d
+bool(false)
+bool(false)
+Done
diff --git a/ext/standard/tests/strings/007.phpt b/ext/standard/tests/strings/007.phpt
new file mode 100644 (file)
index 0000000..e0e5163
--- /dev/null
@@ -0,0 +1,17 @@
+--TEST--
+php_strip_whitespace() and output buffer
+--FILE--
+<?php
+
+$file = str_repeat("A", 1024);
+
+var_dump(php_strip_whitespace($file));
+var_dump(ob_get_contents());
+
+echo "Done\n";
+?>
+--EXPECTF--    
+Warning: php_strip_whitespace(AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA in %s on line %d
+string(0) ""
+bool(false)
+Done