/* Output support */
#include "main/php_output.h"
#define PHPWRITE(str, str_len) php_body_write((str), (str_len) TSRMLS_CC)
-#define PUTS(str) php_body_write((str), strlen((str)) TSRMLS_CC)
+#define PUTS(str) do { \
+ const char *__str = (str); \
+ php_body_write(__str, strlen(__str) TSRMLS_CC); \
+} while (0)
+
#define PUTC(c) (php_body_write(&(c), 1 TSRMLS_CC), (c))
#define PHPWRITE_H(str, str_len) php_header_write((str), (str_len) TSRMLS_CC)
-#define PUTS_H(str) php_header_write((str), strlen((str)) TSRMLS_CC)
+#define PUTS_H(str) do { \
+ const char *__str = (str); \
+ php_header_write(__str, strlen(__str) TSRMLS_CC); \
+} while (0)
+
#define PUTC_H(c) (php_header_write(&(c), 1 TSRMLS_CC), (c))
#ifdef ZTS