summaryrefslogtreecommitdiff
path: root/main/php.h
diff options
context:
space:
mode:
authorSascha Schumann <sas@php.net>2003-04-19 18:35:31 +0000
committerSascha Schumann <sas@php.net>2003-04-19 18:35:31 +0000
commit652b61543823f6acfe4f2ae7e3cc60fb353d7ffa (patch)
tree2536a56bd39bf3ecb4d8947a8350c6363a74fb82 /main/php.h
parentdc27fbd90f5bc67c968bcf71b6c0481e6d59ba9d (diff)
downloadphp-git-652b61543823f6acfe4f2ae7e3cc60fb353d7ffa.tar.gz
Fix PUTS/PUTS_H to only evaluate their argument once.
Diffstat (limited to 'main/php.h')
-rw-r--r--main/php.h12
1 files changed, 10 insertions, 2 deletions
diff --git a/main/php.h b/main/php.h
index 55970a5d80..ddf99a814f 100644
--- a/main/php.h
+++ b/main/php.h
@@ -344,10 +344,18 @@ PHPAPI int cfg_get_string(char *varname, char **result);
/* 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