aboutsummaryrefslogtreecommitdiff
path: root/strbuf.c
diff options
context:
space:
mode:
Diffstat (limited to 'strbuf.c')
-rw-r--r--strbuf.c25
1 files changed, 18 insertions, 7 deletions
diff --git a/strbuf.c b/strbuf.c
index b6227fc..7a53a52 100644
--- a/strbuf.c
+++ b/strbuf.c
@@ -175,13 +175,6 @@ void strbuf_resize(strbuf_t *s, int len)
175 s->reallocs++; 175 s->reallocs++;
176} 176}
177 177
178void strbuf_append_mem(strbuf_t *s, const char *c, int len)
179{
180 strbuf_ensure_empty_length(s, len);
181 memcpy(s->buf + s->length, c, len);
182 s->length += len;
183}
184
185void strbuf_append_string(strbuf_t *s, const char *str) 178void strbuf_append_string(strbuf_t *s, const char *str)
186{ 179{
187 int space, i; 180 int space, i;
@@ -200,6 +193,24 @@ void strbuf_append_string(strbuf_t *s, const char *str)
200 } 193 }
201} 194}
202 195
196void strbuf_append_number(strbuf_t *s, double number)
197{
198 int len;
199
200 /* Lowest double printed with %.14g is 21 characters long:
201 * -1.7976931348623e+308
202 *
203 * Use 32 to include the \0, and a few extra just in case..
204 */
205 strbuf_ensure_empty_length(s, 32);
206
207 len = sprintf(s->buf + s->length, "%.14g", number);
208 if (len < 0)
209 die("BUG: Unable to convert number"); /* This should never happen.. */
210
211 s->length += len;
212}
213
203void strbuf_append_fmt(strbuf_t *s, const char *fmt, ...) 214void strbuf_append_fmt(strbuf_t *s, const char *fmt, ...)
204{ 215{
205 va_list arg; 216 va_list arg;