summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNikita Popov <nikic@php.net>2016-12-18 17:31:00 +0100
committerNikita Popov <nikic@php.net>2017-01-01 21:28:20 +0100
commitc7742e280a4edcc8b216d7b798c805c9a439d663 (patch)
tree50cf8b5c8ca25827faaad56a0b5bc10d5afddfac
parent38f72cea1bcfecc2a04c055418e4518bfd05c04a (diff)
downloadphp-git-c7742e280a4edcc8b216d7b798c805c9a439d663.tar.gz
Export zend_s(tr)pprintf
It's annoying that in Zend you have to use zend_strpprintf instead of strpprintf, while in PHP you have to use strpprintf instead of zend_strpprintf. Make zend_s(tr)pprintf always available and keep s(tr)pprintf as macro aliases.
-rw-r--r--Zend/zend.c24
-rw-r--r--Zend/zend.h3
-rw-r--r--Zend/zend_exceptions.c24
-rw-r--r--Zend/zend_exceptions.h4
-rw-r--r--main/spprintf.c24
-rw-r--r--main/spprintf.h8
6 files changed, 30 insertions, 57 deletions
diff --git a/Zend/zend.c b/Zend/zend.c
index 5858fb3ac8..4dadcd73b7 100644
--- a/Zend/zend.c
+++ b/Zend/zend.c
@@ -159,6 +159,30 @@ static uint32_t zend_version_info_length;
#define ZEND_CORE_VERSION_INFO "Zend Engine v" ZEND_VERSION ", Copyright (c) 1998-2016 Zend Technologies\n"
#define PRINT_ZVAL_INDENT 4
+ZEND_API size_t zend_spprintf(char **message, size_t max_len, const char *format, ...) /* {{{ */
+{
+ va_list arg;
+ size_t len;
+
+ va_start(arg, format);
+ len = zend_vspprintf(message, max_len, format, arg);
+ va_end(arg);
+ return len;
+}
+/* }}} */
+
+ZEND_API zend_string *zend_strpprintf(size_t max_len, const char *format, ...) /* {{{ */
+{
+ va_list arg;
+ zend_string *str;
+
+ va_start(arg, format);
+ str = zend_vstrpprintf(max_len, format, arg);
+ va_end(arg);
+ return str;
+}
+/* }}} */
+
static void zend_print_zval_r_to_buf(smart_str *buf, zval *expr, int indent);
static void print_hash(smart_str *buf, HashTable *ht, int indent, zend_bool is_object) /* {{{ */
diff --git a/Zend/zend.h b/Zend/zend.h
index 59d906d24a..e398dac9a1 100644
--- a/Zend/zend.h
+++ b/Zend/zend.h
@@ -226,6 +226,9 @@ void zend_set_utility_values(zend_utility_values *utility_values);
ZEND_API ZEND_COLD void _zend_bailout(char *filename, uint32_t lineno);
+ZEND_API size_t zend_spprintf(char **message, size_t max_len, const char *format, ...) ZEND_ATTRIBUTE_FORMAT(printf, 3, 4);
+ZEND_API zend_string *zend_strpprintf(size_t max_len, const char *format, ...) ZEND_ATTRIBUTE_FORMAT(printf, 2, 3);
+
ZEND_API char *get_zend_version(void);
ZEND_API int zend_make_printable_zval(zval *expr, zval *expr_copy);
ZEND_API size_t zend_print_zval(zval *expr, int indent);
diff --git a/Zend/zend_exceptions.c b/Zend/zend_exceptions.c
index 0aaca540fb..3072b182ce 100644
--- a/Zend/zend_exceptions.c
+++ b/Zend/zend_exceptions.c
@@ -651,30 +651,6 @@ ZEND_METHOD(exception, getPrevious)
ZVAL_COPY(return_value, GET_PROPERTY_SILENT(getThis(), ZEND_STR_PREVIOUS));
} /* }}} */
-size_t zend_spprintf(char **message, size_t max_len, const char *format, ...) /* {{{ */
-{
- va_list arg;
- size_t len;
-
- va_start(arg, format);
- len = zend_vspprintf(message, max_len, format, arg);
- va_end(arg);
- return len;
-}
-/* }}} */
-
-zend_string *zend_strpprintf(size_t max_len, const char *format, ...) /* {{{ */
-{
- va_list arg;
- zend_string *str;
-
- va_start(arg, format);
- str = zend_vstrpprintf(max_len, format, arg);
- va_end(arg);
- return str;
-}
-/* }}} */
-
/* {{{ proto string Exception|Error::__toString()
Obtain the string representation of the Exception object */
ZEND_METHOD(exception, __toString)
diff --git a/Zend/zend_exceptions.h b/Zend/zend_exceptions.h
index e88b5e1db7..61f9500506 100644
--- a/Zend/zend_exceptions.h
+++ b/Zend/zend_exceptions.h
@@ -68,10 +68,6 @@ extern ZEND_API void (*zend_throw_exception_hook)(zval *ex);
/* show an exception using zend_error(severity,...), severity should be E_ERROR */
ZEND_API ZEND_COLD void zend_exception_error(zend_object *exception, int severity);
-/* do not export, in php it's available thru spprintf directly */
-size_t zend_spprintf(char **message, size_t max_len, const char *format, ...) ZEND_ATTRIBUTE_FORMAT(printf, 3, 4);
-zend_string *zend_strpprintf(size_t max_len, const char *format, ...) ZEND_ATTRIBUTE_FORMAT(printf, 2, 3);
-
#include "zend_globals.h"
static zend_always_inline void zend_rethrow_exception(zend_execute_data *execute_data)
diff --git a/main/spprintf.c b/main/spprintf.c
index 5a8ce07720..8f141c9978 100644
--- a/main/spprintf.c
+++ b/main/spprintf.c
@@ -857,18 +857,6 @@ PHPAPI size_t vspprintf(char **pbuf, size_t max_len, const char *format, va_list
}
/* }}} */
-PHPAPI size_t spprintf(char **pbuf, size_t max_len, const char *format, ...) /* {{{ */
-{
- size_t cc;
- va_list ap;
-
- va_start(ap, format);
- cc = vspprintf(pbuf, max_len, format, ap);
- va_end(ap);
- return (cc);
-}
-/* }}} */
-
PHPAPI zend_string *vstrpprintf(size_t max_len, const char *format, va_list ap) /* {{{ */
{
smart_str buf = {0};
@@ -888,18 +876,6 @@ PHPAPI zend_string *vstrpprintf(size_t max_len, const char *format, va_list ap)
}
/* }}} */
-PHPAPI zend_string *strpprintf(size_t max_len, const char *format, ...) /* {{{ */
-{
- va_list ap;
- zend_string *str;
-
- va_start(ap, format);
- str = vstrpprintf(max_len, format, ap);
- va_end(ap);
- return str;
-}
-/* }}} */
-
/*
* Local variables:
* tab-width: 4
diff --git a/main/spprintf.h b/main/spprintf.h
index 82d2e2378c..db684c2be8 100644
--- a/main/spprintf.h
+++ b/main/spprintf.h
@@ -37,15 +37,13 @@ There is also snprintf: See difference explained in snprintf.h
#include "snprintf.h"
BEGIN_EXTERN_C()
-PHPAPI size_t spprintf( char **pbuf, size_t max_len, const char *format, ...) PHP_ATTRIBUTE_FORMAT(printf, 3, 4);
-
PHPAPI size_t vspprintf(char **pbuf, size_t max_len, const char *format, va_list ap) PHP_ATTRIBUTE_FORMAT(printf, 3, 0);
-
PHPAPI zend_string *vstrpprintf(size_t max_len, const char *format, va_list ap) PHP_ATTRIBUTE_FORMAT(printf, 2, 0);
-
-PHPAPI zend_string *strpprintf(size_t max_len, const char *format, ...) PHP_ATTRIBUTE_FORMAT(printf, 2, 3);
END_EXTERN_C()
+#define spprintf zend_spprintf
+#define strpprintf zend_strpprintf
+
#endif /* SNPRINTF_H */
/*