summaryrefslogtreecommitdiff
path: root/epan/emem.c
diff options
context:
space:
mode:
authorGerald Combs <gerald@wireshark.org>2009-03-28 00:27:03 +0000
committerGerald Combs <gerald@wireshark.org>2009-03-28 00:27:03 +0000
commit21e87a963fdbed79b03e3abe614330cb6a9c5c2f (patch)
tree8106c7d217677c1e1d5a11c7f06bb8605652305f /epan/emem.c
parent446d43351ce4f4b03cc9b85831445d7e48e72dc6 (diff)
downloadwireshark-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.c29
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;