diff options
author | Lennart Poettering <lennart@poettering.net> | 2004-06-19 01:01:09 +0000 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2004-06-19 01:01:09 +0000 |
commit | 56f8c953dd609bc5c94011fe4acdd9ef6b875747 (patch) | |
tree | 9fb30d4fa48eea2b66f81bd84e16ebc22a9b09c6 /src/strbuf.c | |
parent | 382e7aefd471a4600010a04e6497d4bfd2fd8663 (diff) |
some more work on the cli
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@24 fefdeb5f-60dc-0310-8127-8f9354f1896f
Diffstat (limited to 'src/strbuf.c')
-rw-r--r-- | src/strbuf.c | 12 |
1 files changed, 8 insertions, 4 deletions
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) { |