diff options
author | Mark Pulford <mark@kyne.com.au> | 2011-05-02 18:53:16 +0400 |
---|---|---|
committer | Mark Pulford <mark@kyne.com.au> | 2011-05-02 18:53:16 +0400 |
commit | b07c4162f4e1c5056e73500147a17f4e63abaaf4 (patch) | |
tree | 8af0d3575c205efbe4582eb5aa18e8075c535110 /strbuf.h | |
parent | f89fb30058a7d2d6a896ace242fc612bfe4e2c34 (diff) |
Add strbuf_append_number()
The separate strbuf_append_number() function avoids a potential double
call to the slow vsnprintf() function required by strbuf_append_fmt().
Also inline strbuf_append_mem() since it is very simple and will
be used often.
Diffstat (limited to 'strbuf.h')
-rw-r--r-- | strbuf.h | 10 |
1 files changed, 9 insertions, 1 deletions
@@ -66,8 +66,9 @@ static void strbuf_ensure_empty_length(strbuf_t *s, int len); /* Update */ extern void strbuf_append_fmt(strbuf_t *s, const char *format, ...); -extern void strbuf_append_mem(strbuf_t *s, const char *c, int len); +static void strbuf_append_mem(strbuf_t *s, const char *c, int len); extern void strbuf_append_string(strbuf_t *s, const char *str); +extern void strbuf_append_number(strbuf_t *s, double number); static void strbuf_append_char(strbuf_t *s, const char c); static void strbuf_ensure_null(strbuf_t *s); @@ -100,6 +101,13 @@ static inline void strbuf_append_char_unsafe(strbuf_t *s, const char c) s->buf[s->length++] = c; } +static inline void strbuf_append_mem(strbuf_t *s, const char *c, int len) +{ + strbuf_ensure_empty_length(s, len); + memcpy(s->buf + s->length, c, len); + s->length += len; +} + static inline void strbuf_ensure_null(strbuf_t *s) { s->buf[s->length] = 0; |