[PHP-CVS] svn: /php/php-src/ branches/PHP_5_4/main/output.c branches/PHP_5_4/main/php_output.h trunk/main/output.c trunk/main/php_output.h

2012-01-25 Thread Michael Wallner
mike Wed, 25 Jan 2012 17:22:46 +

Revision: http://svn.php.net/viewvc?view=revisionrevision=322743

Log:
fix crash with display_startup_errors=1

Changed paths:
U   php/php-src/branches/PHP_5_4/main/output.c
U   php/php-src/branches/PHP_5_4/main/php_output.h
U   php/php-src/trunk/main/output.c
U   php/php-src/trunk/main/php_output.h

Modified: php/php-src/branches/PHP_5_4/main/output.c
===
--- php/php-src/branches/PHP_5_4/main/output.c  2012-01-25 15:59:08 UTC (rev 
322742)
+++ php/php-src/branches/PHP_5_4/main/output.c  2012-01-25 17:22:46 UTC (rev 
322743)
@@ -85,6 +85,18 @@
 }
 /* }}} */

+/* {{{ stderr writer if not PHP_OUTPUT_ACTIVATED */
+static int php_output_stderr(const char *str, size_t str_len)
+{
+   fwrite(str, 1, str_len, stderr);
+/* See http://support.microsoft.com/kb/190351 */
+#ifdef PHP_WIN32
+   fflush(stderr);
+#endif
+   return str_len;
+}
+/* }}} */
+
 /* {{{ void php_output_startup(void)
  * Set up module globals and initalize the conflict and reverse conflict hash 
tables */
 PHPAPI void php_output_startup(void)
@@ -117,6 +129,7 @@
 #endif

zend_stack_init(OG(handlers));
+   OG(flags) |= PHP_OUTPUT_ACTIVATED;

return SUCCESS;
 }
@@ -139,6 +152,8 @@
}
zend_stack_destroy(OG(handlers));
}
+
+   OG(flags) ^= PHP_OUTPUT_ACTIVATED;
 }
 /* }}} */

@@ -174,9 +189,11 @@
  * Get output control status */
 PHPAPI int php_output_get_status(TSRMLS_D)
 {
-   return OG(flags)
-   | (OG(active) ? PHP_OUTPUT_ACTIVE : 0)
-   | (OG(running)? PHP_OUTPUT_LOCKED : 0);
+   return (
+   OG(flags)
+   |   (OG(active) ? PHP_OUTPUT_ACTIVE : 0)
+   |   (OG(running)? PHP_OUTPUT_LOCKED : 0)
+   )  0xff;
 }
 /* }}} */

@@ -187,7 +204,10 @@
if (OG(flags)  PHP_OUTPUT_DISABLED) {
return 0;
}
-   return sapi_module.ub_write(str, len TSRMLS_CC);
+   if (OG(flags)  PHP_OUTPUT_ACTIVATED) {
+   return sapi_module.ub_write(str, len TSRMLS_CC);
+   }
+   return php_output_stderr(str, len);
 }
 /* }}} */

@@ -198,8 +218,11 @@
if (OG(flags)  PHP_OUTPUT_DISABLED) {
return 0;
}
-   php_output_op(PHP_OUTPUT_HANDLER_WRITE, str, len TSRMLS_CC);
-   return (int) len;
+   if (OG(flags)  PHP_OUTPUT_ACTIVATED) {
+   php_output_op(PHP_OUTPUT_HANDLER_WRITE, str, len TSRMLS_CC);
+   return (int) len;
+   }
+   return php_output_stderr(str, len);
 }
 /* }}} */


Modified: php/php-src/branches/PHP_5_4/main/php_output.h
===
--- php/php-src/branches/PHP_5_4/main/php_output.h  2012-01-25 15:59:08 UTC 
(rev 322742)
+++ php/php-src/branches/PHP_5_4/main/php_output.h  2012-01-25 17:22:46 UTC 
(rev 322743)
@@ -67,6 +67,8 @@
 /* supplementary flags for php_output_get_status() */
 #define PHP_OUTPUT_ACTIVE  0x10
 #define PHP_OUTPUT_LOCKED  0x20
+/* output layer is ready to use */
+#define PHP_OUTPUT_ACTIVATED   0x10

 /* handler hooks */
 typedef enum _php_output_handler_hook_t {

Modified: php/php-src/trunk/main/output.c
===
--- php/php-src/trunk/main/output.c 2012-01-25 15:59:08 UTC (rev 322742)
+++ php/php-src/trunk/main/output.c 2012-01-25 17:22:46 UTC (rev 322743)
@@ -85,6 +85,18 @@
 }
 /* }}} */

+/* {{{ stderr writer if not PHP_OUTPUT_ACTIVATED */
+static int php_output_stderr(const char *str, size_t str_len)
+{
+   fwrite(str, 1, str_len, stderr);
+/* See http://support.microsoft.com/kb/190351 */
+#ifdef PHP_WIN32
+   fflush(stderr);
+#endif
+   return str_len;
+}
+/* }}} */
+
 /* {{{ void php_output_startup(void)
  * Set up module globals and initalize the conflict and reverse conflict hash 
tables */
 PHPAPI void php_output_startup(void)
@@ -117,6 +129,7 @@
 #endif

zend_stack_init(OG(handlers));
+   OG(flags) |= PHP_OUTPUT_ACTIVATED;

return SUCCESS;
 }
@@ -139,6 +152,8 @@
}
zend_stack_destroy(OG(handlers));
}
+
+   OG(flags) ^= PHP_OUTPUT_ACTIVATED;
 }
 /* }}} */

@@ -174,9 +189,11 @@
  * Get output control status */
 PHPAPI int php_output_get_status(TSRMLS_D)
 {
-   return OG(flags)
-   | (OG(active) ? PHP_OUTPUT_ACTIVE : 0)
-   | (OG(running)? PHP_OUTPUT_LOCKED : 0);
+   return (
+   OG(flags)
+   |   (OG(active) ? PHP_OUTPUT_ACTIVE : 0)
+   |   (OG(running)? PHP_OUTPUT_LOCKED : 0)
+   )  0xff;
 }
 /* }}} */

@@ -187,7 +204,10 @@
if (OG(flags)  PHP_OUTPUT_DISABLED) {
return 0;
}
-   return 

[PHP-CVS] svn: /php/php-src/ branches/PHP_5_4/main/output.c branches/PHP_5_4/main/php_output.h trunk/main/output.c trunk/main/php_output.h

2011-12-30 Thread Dmitry Stogov
dmitry   Fri, 30 Dec 2011 08:50:49 +

Revision: http://svn.php.net/viewvc?view=revisionrevision=321550

Log:
Added an API call to return active output handler

Changed paths:
U   php/php-src/branches/PHP_5_4/main/output.c
U   php/php-src/branches/PHP_5_4/main/php_output.h
U   php/php-src/trunk/main/output.c
U   php/php-src/trunk/main/php_output.h

Modified: php/php-src/branches/PHP_5_4/main/output.c
===
--- php/php-src/branches/PHP_5_4/main/output.c  2011-12-30 07:52:04 UTC (rev 
321549)
+++ php/php-src/branches/PHP_5_4/main/output.c  2011-12-30 08:50:49 UTC (rev 
321550)
@@ -1502,6 +1502,14 @@
 }
 /* }}} */

+/* {{{ php_output_handler* php_get_active_output_handler(TSRMLS_D)
+ * Get active output handler */
+PHPAPI php_output_handler* php_get_active_output_handler(TSRMLS_D)
+{
+   return OG(active);
+}
+/* }}} */
+
 /*
  * Local variables:
  * tab-width: 4

Modified: php/php-src/branches/PHP_5_4/main/php_output.h
===
--- php/php-src/branches/PHP_5_4/main/php_output.h  2011-12-30 07:52:04 UTC 
(rev 321549)
+++ php/php-src/branches/PHP_5_4/main/php_output.h  2011-12-30 08:50:49 UTC 
(rev 321550)
@@ -242,6 +242,7 @@

 PHPAPI php_output_handler_alias_ctor_t *php_output_handler_alias(const char 
*handler_name, size_t handler_name_len TSRMLS_DC);
 PHPAPI int php_output_handler_alias_register(const char *handler_name, size_t 
handler_name_len, php_output_handler_alias_ctor_t func TSRMLS_DC);
+PHPAPI php_output_handler* php_get_active_output_handler(TSRMLS_D);

 END_EXTERN_C()


Modified: php/php-src/trunk/main/output.c
===
--- php/php-src/trunk/main/output.c 2011-12-30 07:52:04 UTC (rev 321549)
+++ php/php-src/trunk/main/output.c 2011-12-30 08:50:49 UTC (rev 321550)
@@ -1502,6 +1502,14 @@
 }
 /* }}} */

+/* {{{ php_output_handler* php_get_active_output_handler(TSRMLS_D)
+ * Get active output handler */
+PHPAPI php_output_handler* php_get_active_output_handler(TSRMLS_D)
+{
+   return OG(active);
+}
+/* }}} */
+
 /*
  * Local variables:
  * tab-width: 4

Modified: php/php-src/trunk/main/php_output.h
===
--- php/php-src/trunk/main/php_output.h 2011-12-30 07:52:04 UTC (rev 321549)
+++ php/php-src/trunk/main/php_output.h 2011-12-30 08:50:49 UTC (rev 321550)
@@ -242,6 +242,7 @@

 PHPAPI php_output_handler_alias_ctor_t *php_output_handler_alias(const char 
*handler_name, size_t handler_name_len TSRMLS_DC);
 PHPAPI int php_output_handler_alias_register(const char *handler_name, size_t 
handler_name_len, php_output_handler_alias_ctor_t func TSRMLS_DC);
+PHPAPI php_output_handler* php_get_active_output_handler(TSRMLS_D);

 END_EXTERN_C()


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

[PHP-CVS] svn: /php/php-src/ branches/PHP_5_4/main/output.c branches/PHP_5_4/main/php_output.h trunk/main/output.c trunk/main/php_output.h

2011-12-30 Thread Michael Wallner
mike Fri, 30 Dec 2011 09:20:07 +

Revision: http://svn.php.net/viewvc?view=revisionrevision=321551

Log:
follow naming convention

Changed paths:
U   php/php-src/branches/PHP_5_4/main/output.c
U   php/php-src/branches/PHP_5_4/main/php_output.h
U   php/php-src/trunk/main/output.c
U   php/php-src/trunk/main/php_output.h

Modified: php/php-src/branches/PHP_5_4/main/output.c
===
--- php/php-src/branches/PHP_5_4/main/output.c  2011-12-30 08:50:49 UTC (rev 
321550)
+++ php/php-src/branches/PHP_5_4/main/output.c  2011-12-30 09:20:07 UTC (rev 
321551)
@@ -338,6 +338,14 @@
 }
 /* }}} */

+/* {{{ php_output_handler* php_output_get_active_handler(TSRMLS_D)
+ * Get active output handler */
+PHPAPI php_output_handler* php_output_get_active_handler(TSRMLS_D)
+{
+   return OG(active);
+}
+/* }}} */
+
 /* {{{ SUCCESS|FAILURE php_output_handler_start_default(TSRMLS_D)
  * Start a default output handler */
 PHPAPI int php_output_start_default(TSRMLS_D)
@@ -1502,14 +1510,6 @@
 }
 /* }}} */

-/* {{{ php_output_handler* php_get_active_output_handler(TSRMLS_D)
- * Get active output handler */
-PHPAPI php_output_handler* php_get_active_output_handler(TSRMLS_D)
-{
-   return OG(active);
-}
-/* }}} */
-
 /*
  * Local variables:
  * tab-width: 4

Modified: php/php-src/branches/PHP_5_4/main/php_output.h
===
--- php/php-src/branches/PHP_5_4/main/php_output.h  2011-12-30 08:50:49 UTC 
(rev 321550)
+++ php/php-src/branches/PHP_5_4/main/php_output.h  2011-12-30 09:20:07 UTC 
(rev 321551)
@@ -219,6 +219,7 @@
 PHPAPI int php_output_get_contents(zval *p TSRMLS_DC);
 PHPAPI int php_output_get_length(zval *p TSRMLS_DC);
 PHPAPI int php_output_get_level(TSRMLS_D);
+PHPAPI php_output_handler* php_output_get_active_handler(TSRMLS_D);

 PHPAPI int php_output_start_default(TSRMLS_D);
 PHPAPI int php_output_start_devnull(TSRMLS_D);
@@ -242,7 +243,6 @@

 PHPAPI php_output_handler_alias_ctor_t *php_output_handler_alias(const char 
*handler_name, size_t handler_name_len TSRMLS_DC);
 PHPAPI int php_output_handler_alias_register(const char *handler_name, size_t 
handler_name_len, php_output_handler_alias_ctor_t func TSRMLS_DC);
-PHPAPI php_output_handler* php_get_active_output_handler(TSRMLS_D);

 END_EXTERN_C()


Modified: php/php-src/trunk/main/output.c
===
--- php/php-src/trunk/main/output.c 2011-12-30 08:50:49 UTC (rev 321550)
+++ php/php-src/trunk/main/output.c 2011-12-30 09:20:07 UTC (rev 321551)
@@ -338,6 +338,14 @@
 }
 /* }}} */

+/* {{{ php_output_handler* php_output_get_active_handler(TSRMLS_D)
+ * Get active output handler */
+PHPAPI php_output_handler* php_output_get_active_handler(TSRMLS_D)
+{
+   return OG(active);
+}
+/* }}} */
+
 /* {{{ SUCCESS|FAILURE php_output_handler_start_default(TSRMLS_D)
  * Start a default output handler */
 PHPAPI int php_output_start_default(TSRMLS_D)
@@ -1502,14 +1510,6 @@
 }
 /* }}} */

-/* {{{ php_output_handler* php_get_active_output_handler(TSRMLS_D)
- * Get active output handler */
-PHPAPI php_output_handler* php_get_active_output_handler(TSRMLS_D)
-{
-   return OG(active);
-}
-/* }}} */
-
 /*
  * Local variables:
  * tab-width: 4

Modified: php/php-src/trunk/main/php_output.h
===
--- php/php-src/trunk/main/php_output.h 2011-12-30 08:50:49 UTC (rev 321550)
+++ php/php-src/trunk/main/php_output.h 2011-12-30 09:20:07 UTC (rev 321551)
@@ -219,6 +219,7 @@
 PHPAPI int php_output_get_contents(zval *p TSRMLS_DC);
 PHPAPI int php_output_get_length(zval *p TSRMLS_DC);
 PHPAPI int php_output_get_level(TSRMLS_D);
+PHPAPI php_output_handler* php_output_get_active_handler(TSRMLS_D);

 PHPAPI int php_output_start_default(TSRMLS_D);
 PHPAPI int php_output_start_devnull(TSRMLS_D);
@@ -242,7 +243,6 @@

 PHPAPI php_output_handler_alias_ctor_t *php_output_handler_alias(const char 
*handler_name, size_t handler_name_len TSRMLS_DC);
 PHPAPI int php_output_handler_alias_register(const char *handler_name, size_t 
handler_name_len, php_output_handler_alias_ctor_t func TSRMLS_DC);
-PHPAPI php_output_handler* php_get_active_output_handler(TSRMLS_D);

 END_EXTERN_C()


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