17#ifndef ZEND_SMART_STR_H
18#define ZEND_SMART_STR_H
32 smart_str *str,
double num,
int precision,
bool zero_fraction);
42 goto do_smart_str_realloc;
44 len += ZSTR_LEN(str->s);
45 if (UNEXPECTED(len >= str->a)) {
48 smart_str_realloc(str, len);
50 smart_str_erealloc(str, len);
66 return smart_str_extend_ex(dest, length,
false);
79 smart_str_free_ex(str,
false);
102 smart_str_trim_to_size_ex(dest,
false);
120 return smart_str_extract_ex(dest,
false);
124 size_t new_len = smart_str_alloc(dest, 1,
persistent);
147 char *
result = zend_print_long_to_buf(
buf +
sizeof(
buf) - 1, num);
153 smart_str_append_long_ex(dest, num,
false);
158 char *
result = zend_print_ulong_to_buf(
buf +
sizeof(
buf) - 1, num);
164 smart_str_append_unsigned_ex(dest, num,
false);
169 smart_str_appendl_ex(dest, src, length,
false);
177 smart_str_appendl_ex(dest, src,
strlen(src),
false);
181 smart_str_append_ex(dest, src,
false);
185 smart_str_appendc_ex(dest,
ch,
false);
189 smart_str_append_smart_str_ex(dest, src,
false);
193 smart_str_free(dest);
194 smart_str_appendl(dest, src,
len);
199 smart_str_setl(dest, src,
strlen(src));
printf(string $format, mixed ... $values)
zend_ffi_ctype_name_buf buf
zend_string_release_ex(func->internal_function.function_name, 0)
struct _zend_string zend_string
#define zend_always_inline
#define ZEND_ATTRIBUTE_FORMAT(type, idx, first)
#define UNEXPECTED(condition)
ZEND_API void ZEND_FASTCALL smart_str_realloc(smart_str *str, size_t len)
ZEND_API void ZEND_FASTCALL smart_str_append_escaped_truncated(smart_str *str, const zend_string *value, size_t length)
ZEND_API void ZEND_FASTCALL smart_str_erealloc(smart_str *str, size_t len)
ZEND_API void ZEND_FASTCALL smart_str_append_double(smart_str *str, double num, int precision, bool zero_fraction)
ZEND_API void ZEND_FASTCALL smart_str_append_escaped(smart_str *str, const char *s, size_t l)
ZEND_API zend_result ZEND_FASTCALL smart_str_append_zval(smart_str *dest, const zval *value, size_t truncate)
ZEND_API void smart_str_append_printf(smart_str *dest, const char *format,...)
ZEND_API void ZEND_FASTCALL smart_str_append_scalar(smart_str *dest, const zval *value, size_t truncate)
#define ZSTR_EMPTY_ALLOC()
ZEND_RESULT_CODE zend_result