Lines Matching refs:str
6 #include "str.h"
18 string_t *str_new_const(pool_t pool, const char *str, size_t len)
22 i_assert(str[len] == '\0');
25 buffer_create_from_const_data(ret, str, len + 1);
35 string_t *t_str_new_const(const char *str, size_t len)
37 return str_new_const(pool_datastack_create(), str, len);
40 void str_free(string_t **str)
42 if (str == NULL || *str == NULL)
45 buffer_free(str);
48 static void str_add_nul(string_t *str)
50 const unsigned char *data = str_data(str);
51 size_t len = str_len(str);
52 size_t alloc = buffer_get_size(str);
55 buffer_write(str, len, "", 1);
57 buffer_set_used_size(str, len);
61 char *str_free_without_data(string_t **str)
63 str_add_nul(*str);
64 return buffer_free_without_data(str);
67 const char *str_c(string_t *str)
69 str_add_nul(str);
70 return str->data;
73 char *str_c_modifiable(string_t *str)
75 str_add_nul(str);
76 return buffer_get_modifiable_data(str, NULL);
87 void str_append_n(string_t *str, const void *cstr, size_t max_len)
97 buffer_append(str, cstr, len);
100 void str_printfa(string_t *str, const char *fmt, ...)
105 str_vprintfa(str, fmt, args);
109 void str_vprintfa(string_t *str, const char *fmt, va_list args)
115 size_t pos = str->used;
127 if (pos+init_size > buffer_get_writable_size(str) &&
128 pos < buffer_get_writable_size(str)) {
131 init_size = buffer_get_writable_size(str)-pos;
133 tmp = buffer_get_space_unsafe(str, pos, init_size);
140 tmp = buffer_get_space_unsafe(str, pos, ret + 1);
147 buffer_set_used_size(str, pos + ret);