From 56f8c953dd609bc5c94011fe4acdd9ef6b875747 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Sat, 19 Jun 2004 01:01:09 +0000 Subject: some more work on the cli git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@24 fefdeb5f-60dc-0310-8127-8f9354f1896f --- src/strbuf.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'src/strbuf.c') diff --git a/src/strbuf.c b/src/strbuf.c index 97c451c1..9ce67ec3 100644 --- a/src/strbuf.c +++ b/src/strbuf.c @@ -7,6 +7,7 @@ struct chunk { struct chunk *next; + size_t length; char text[]; }; @@ -43,12 +44,13 @@ char *strbuf_tostring(struct strbuf *sb) { assert(t); e = t; - *e = 0; for (c = sb->head; c; c = c->next) { - strcpy(e, c->text); - e = strchr(e, 0); + memcpy(e, c->text, c->length); + e += c->length; } + *e = 0; + return t; } @@ -70,7 +72,8 @@ void strbuf_puts(struct strbuf *sb, const char *t) { assert(c); c->next = NULL; - strcpy(c->text, t); + c->length = l; + memcpy(c->text, t, l); if (sb->tail) { assert(sb->head); @@ -101,6 +104,7 @@ int strbuf_printf(struct strbuf *sb, const char *format, ...) { va_end(ap); if (r > -1 && r < size) { + c->length = r; c->next = NULL; if (sb->tail) { -- cgit