wmem: Add wmem_strbuf_append_c_count()

This commit is contained in:
João Valverde 2022-12-14 19:50:30 +00:00
parent 1f34529839
commit ea8b5fb024
3 changed files with 19 additions and 0 deletions

View File

@ -217,6 +217,17 @@ wmem_strbuf_append_c(wmem_strbuf_t *strbuf, const gchar c)
strbuf->str[strbuf->len] = '\0';
}
void
wmem_strbuf_append_c_count(wmem_strbuf_t *strbuf, const gchar c, size_t count)
{
wmem_strbuf_grow(strbuf, count);
while (count-- > 0) {
strbuf->str[strbuf->len++] = c;
}
strbuf->str[strbuf->len] = '\0';
}
void
wmem_strbuf_append_unichar(wmem_strbuf_t *strbuf, const gunichar c)
{

View File

@ -98,6 +98,10 @@ WS_DLL_PUBLIC
void
wmem_strbuf_append_c(wmem_strbuf_t *strbuf, const gchar c);
WS_DLL_PUBLIC
void
wmem_strbuf_append_c_count(wmem_strbuf_t *strbuf, const gchar c, size_t count);
WS_DLL_PUBLIC
void
wmem_strbuf_append_unichar(wmem_strbuf_t *strbuf, const gunichar c);

View File

@ -1112,6 +1112,10 @@ wmem_test_strbuf(void)
g_assert_cmpstr(wmem_strbuf_get_str(strbuf), ==, "TESTFUZZ3aq\xC2\xA9");
g_assert_cmpuint(wmem_strbuf_get_len(strbuf), ==, 13);
wmem_strbuf_append_c_count(strbuf, '+', 8);
g_assert_cmpstr(wmem_strbuf_get_str(strbuf), ==, "TESTFUZZ3aq\xC2\xA9++++++++");
g_assert_cmpuint(wmem_strbuf_get_len(strbuf), ==, 21);
wmem_strbuf_truncate(strbuf, 32);
wmem_strbuf_truncate(strbuf, 24);
wmem_strbuf_truncate(strbuf, 16);