mike                                     Mon, 30 Jan 2012 12:17:51 +0000

Revision: http://svn.php.net/viewvc?view=revision&revision=322931

Log:
use stderr before, stdout after php_output_startup() and sapi_module.ub_write() 
after php_output_activate()

- fixes Bug #60920  CLI: php -v on STDERR
- fixes Bug #60923  Failing tests for sapi/cli

Bugs: https://bugs.php.net/60920 (Critical) CLI: php -v on STDERR
      https://bugs.php.net/60923 (Critical) Failing tests for sapi/cli
      
Changed paths:
    U   php/php-src/branches/PHP_5_4/main/output.c
    U   php/php-src/trunk/main/output.c

Modified: php/php-src/branches/PHP_5_4/main/output.c
===================================================================
--- php/php-src/branches/PHP_5_4/main/output.c  2012-01-30 11:36:37 UTC (rev 
322930)
+++ php/php-src/branches/PHP_5_4/main/output.c  2012-01-30 12:17:51 UTC (rev 
322931)
@@ -85,7 +85,12 @@
 }
 /* }}} */

-/* {{{ stderr writer if not PHP_OUTPUT_ACTIVATED */
+/* {{{ stderr/stdout writer if not PHP_OUTPUT_ACTIVATED */
+static int php_output_stdout(const char *str, size_t str_len)
+{
+       fwrite(str, 1, str_len, stdout);
+       return str_len;
+}
 static int php_output_stderr(const char *str, size_t str_len)
 {
        fwrite(str, 1, str_len, stderr);
@@ -95,6 +100,7 @@
 #endif
        return str_len;
 }
+static int (*php_output_direct)(const char *str, size_t str_len) = 
php_output_stderr;
 /* }}} */

 /* {{{ void php_output_startup(void)
@@ -105,6 +111,7 @@
        zend_hash_init(&php_output_handler_aliases, 0, NULL, NULL, 1);
        zend_hash_init(&php_output_handler_conflicts, 0, NULL, NULL, 1);
        zend_hash_init(&php_output_handler_reverse_conflicts, 0, NULL, (void 
(*)(void *)) zend_hash_destroy, 1);
+       php_output_direct = php_output_stdout;
 }
 /* }}} */

@@ -112,6 +119,7 @@
  * Destroy module globals and the conflict and reverse conflict hash tables */
 PHPAPI void php_output_shutdown(void)
 {
+       php_output_direct = php_output_stderr;
        zend_hash_destroy(&php_output_handler_aliases);
        zend_hash_destroy(&php_output_handler_conflicts);
        zend_hash_destroy(&php_output_handler_reverse_conflicts);
@@ -207,7 +215,7 @@
        if (OG(flags) & PHP_OUTPUT_ACTIVATED) {
                return sapi_module.ub_write(str, len TSRMLS_CC);
        }
-       return php_output_stderr(str, len);
+       return php_output_direct(str, len);
 }
 /* }}} */

@@ -222,7 +230,7 @@
                php_output_op(PHP_OUTPUT_HANDLER_WRITE, str, len TSRMLS_CC);
                return (int) len;
        }
-       return php_output_stderr(str, len);
+       return php_output_direct(str, len);
 }
 /* }}} */


Modified: php/php-src/trunk/main/output.c
===================================================================
--- php/php-src/trunk/main/output.c     2012-01-30 11:36:37 UTC (rev 322930)
+++ php/php-src/trunk/main/output.c     2012-01-30 12:17:51 UTC (rev 322931)
@@ -85,7 +85,12 @@
 }
 /* }}} */

-/* {{{ stderr writer if not PHP_OUTPUT_ACTIVATED */
+/* {{{ stderr/stdout writer if not PHP_OUTPUT_ACTIVATED */
+static int php_output_stdout(const char *str, size_t str_len)
+{
+       fwrite(str, 1, str_len, stdout);
+       return str_len;
+}
 static int php_output_stderr(const char *str, size_t str_len)
 {
        fwrite(str, 1, str_len, stderr);
@@ -95,6 +100,7 @@
 #endif
        return str_len;
 }
+static int (*php_output_direct)(const char *str, size_t str_len) = 
php_output_stderr;
 /* }}} */

 /* {{{ void php_output_startup(void)
@@ -105,6 +111,7 @@
        zend_hash_init(&php_output_handler_aliases, 0, NULL, NULL, 1);
        zend_hash_init(&php_output_handler_conflicts, 0, NULL, NULL, 1);
        zend_hash_init(&php_output_handler_reverse_conflicts, 0, NULL, (void 
(*)(void *)) zend_hash_destroy, 1);
+       php_output_direct = php_output_stdout;
 }
 /* }}} */

@@ -112,6 +119,7 @@
  * Destroy module globals and the conflict and reverse conflict hash tables */
 PHPAPI void php_output_shutdown(void)
 {
+       php_output_direct = php_output_stderr;
        zend_hash_destroy(&php_output_handler_aliases);
        zend_hash_destroy(&php_output_handler_conflicts);
        zend_hash_destroy(&php_output_handler_reverse_conflicts);
@@ -207,7 +215,7 @@
        if (OG(flags) & PHP_OUTPUT_ACTIVATED) {
                return sapi_module.ub_write(str, len TSRMLS_CC);
        }
-       return php_output_stderr(str, len);
+       return php_output_direct(str, len);
 }
 /* }}} */

@@ -222,7 +230,7 @@
                php_output_op(PHP_OUTPUT_HANDLER_WRITE, str, len TSRMLS_CC);
                return (int) len;
        }
-       return php_output_stderr(str, len);
+       return php_output_direct(str, len);
 }
 /* }}} */


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

Reply via email to