static void _eina_strbuf_init(Eina_Strbuf *buf);
static int _eina_strbuf_resize(Eina_Strbuf *buf, size_t size);
+#define _eina_strbuf_grow(buf, size) \
+ if (size > buf->size) _eina_strbuf_resize(buf, size)
Eina_Bool
eina_strbuf_init(void)
EINA_MAGIC_CHECK_STRBUF(buf);
len = strlen(str);
- _eina_strbuf_resize(buf, buf->len + len);
+ _eina_strbuf_grow(buf, buf->len + len);
eina_strlcpy(buf->buf + buf->len, str, buf->size - buf->len);
buf->len += len;
}
esc = eina_str_escape(str);
len = strlen(esc);
- _eina_strbuf_resize(buf, buf->len + len);
+ _eina_strbuf_grow(buf, buf->len + len);
eina_strlcpy(buf->buf + buf->len, esc, buf->size - buf->len);
buf->len += len;
free(esc);
len = strlen(str);
if (len > maxlen) len = maxlen;
- _eina_strbuf_resize(buf, buf->len + len);
+ _eina_strbuf_grow(buf, buf->len + len);
eina_strlcpy(buf->buf + buf->len, str, len + 1); // + 1 for '\0'
buf->len += len;
* resize the buffer if necessary
*/
len = strlen(str);
- if (!_eina_strbuf_resize(buf, buf->len + len))
+ if (!_eina_strbuf_grow(buf, buf->len + len))
return;
/* move the existing text */
memmove(buf->buf + len + pos, buf->buf + pos, buf->len - pos);
{
EINA_MAGIC_CHECK_STRBUF(buf);
- _eina_strbuf_resize(buf, buf->len + 1);
+ _eina_strbuf_grow(buf, buf->len + 1);
buf->buf[(buf->len)++] = c;
buf->buf[buf->len] = '\0';
}
if (len1 != len2)
{
/* resize the buffer if necessary */
- if (!_eina_strbuf_resize(buf, buf->len - len1 + len2))
+ if (!_eina_strbuf_grow(buf, buf->len - len1 + len2))
return 0;
/* move the existing text */
memmove(buf->buf + pos + len2, buf->buf + pos + len1,
n++;
len = (len + len2) - len1;
/* resize the buffer if necessary */
- if (!_eina_strbuf_resize(buf, len))
+ if (!_eina_strbuf_grow(buf, len))
{
/* we have to stop replacing here, because we haven't enough
* memory to go on */