diff options
author | Gerald Combs <gerald@wireshark.org> | 2009-03-28 00:27:03 +0000 |
---|---|---|
committer | Gerald Combs <gerald@wireshark.org> | 2009-03-28 00:27:03 +0000 |
commit | 21e87a963fdbed79b03e3abe614330cb6a9c5c2f (patch) | |
tree | 8106c7d217677c1e1d5a11c7f06bb8605652305f /epan/emem.c | |
parent | 446d43351ce4f4b03cc9b85831445d7e48e72dc6 (diff) | |
download | wireshark-21e87a963fdbed79b03e3abe614330cb6a9c5c2f.tar.gz |
Replace a lot of pointer tracking and some GStrings with emem_strbufs. Add
ep_strbuf_printf and ep_strbuf_append_c.
svn path=/trunk/; revision=27873
Diffstat (limited to 'epan/emem.c')
-rw-r--r-- | epan/emem.c | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/epan/emem.c b/epan/emem.c index 38ab1005a6..1a0f9ef254 100644 --- a/epan/emem.c +++ b/epan/emem.c @@ -1797,6 +1797,35 @@ ep_strbuf_append_printf(emem_strbuf_t *strbuf, const gchar *format, ...) { } void +ep_strbuf_printf(emem_strbuf_t *strbuf, const gchar *format, ...) { + va_list ap; + if (!strbuf) { + return; + } + + strbuf->len = 0; + + va_start(ap, format); + ep_strbuf_append_vprintf(strbuf, format, ap); + va_end(ap); +} + +void +ep_strbuf_append_c(emem_strbuf_t *strbuf, const gchar c) { + if (!strbuf) { + return; + } + + ep_strbuf_grow(strbuf, strbuf->len + 1); + + if (strbuf->alloc_len > strbuf->len + 1) { + strbuf->str[strbuf->len] = c; + strbuf->len++; + strbuf->str[strbuf->len] = '\0'; + } +} + +void ep_strbuf_truncate(emem_strbuf_t *strbuf, gsize len) { if (!strbuf || len >= strbuf->len) { return; |