From: Nikita Popov Date: Sun, 18 Dec 2016 16:31:00 +0000 (+0100) Subject: Export zend_s(tr)pprintf X-Git-Tag: php-7.2.0alpha1~689^2~3 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=c7742e280a4edcc8b216d7b798c805c9a439d663;p=php 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. --- 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 */ /*