Skip to content

Commit cff76a9

Browse files
authored
zend_smart_string: Add smart_string_append_printf() (#18160)
This is for API parity with `smart_str_append_printf()`.
1 parent a519a03 commit cff76a9

File tree

3 files changed

+12
-0
lines changed

3 files changed

+12
-0
lines changed

UPGRADING.INTERNALS

+2
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@ PHP 8.5 INTERNALS UPGRADE NOTES
2121
could interfere.
2222
. zend_get_callable_name() now returns the name of the underlying function
2323
for fake closures.
24+
. Added smart_string_append_printf() matching smart_str_append_printf() for
25+
char* instead of zend_string*-based smart strings.
2426

2527
========================
2628
2. Build system changes

Zend/zend_smart_str.c

+7
Original file line numberDiff line numberDiff line change
@@ -131,6 +131,13 @@ ZEND_API void smart_str_append_printf(smart_str *dest, const char *format, ...)
131131
va_end(arg);
132132
}
133133

134+
ZEND_API void smart_string_append_printf(smart_string *dest, const char *format, ...) {
135+
va_list arg;
136+
va_start(arg, format);
137+
zend_printf_to_smart_string(dest, format, arg);
138+
va_end(arg);
139+
}
140+
134141
#define SMART_STRING_OVERHEAD (ZEND_MM_OVERHEAD + 1)
135142
#define SMART_STRING_START_SIZE 256
136143
#define SMART_STRING_START_LEN (SMART_STRING_START_SIZE - SMART_STRING_OVERHEAD)

Zend/zend_smart_string.h

+3
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,9 @@
4848
#define smart_string_append_unsigned(str, val) \
4949
smart_string_append_unsigned_ex((str), (val), 0)
5050

51+
ZEND_API void smart_string_append_printf(smart_string *dest, const char *format, ...)
52+
ZEND_ATTRIBUTE_FORMAT(printf, 2, 3);
53+
5154
ZEND_API void ZEND_FASTCALL _smart_string_alloc_persistent(smart_string *str, size_t len);
5255
ZEND_API void ZEND_FASTCALL _smart_string_alloc(smart_string *str, size_t len);
5356

0 commit comments

Comments
 (0)