diff options
author | Damien <damien.p.george@gmail.com> | 2013-11-03 18:20:56 +0000 |
---|---|---|
committer | Damien <damien.p.george@gmail.com> | 2013-11-03 18:20:56 +0000 |
commit | 2f06c57f8a17dc7cfb66288387b62a42aacafe94 (patch) | |
tree | 65278e27a97bc7a6946d41c0731819b375116c72 /py/vstr.c | |
parent | 0e496733fed6311f78410891a22e75ac8086c689 (diff) |
Add simple var-arg functions; add simple string.format.
Diffstat (limited to 'py/vstr.c')
-rw-r--r-- | py/vstr.c | 12 |
1 files changed, 7 insertions, 5 deletions
@@ -154,8 +154,14 @@ void vstr_cut_tail(vstr_t *vstr, int len) { } } -/* void vstr_printf(vstr_t *vstr, const char *fmt, ...) { + va_list ap; + va_start(ap, fmt); + vstr_vprintf(vstr, fmt, ap); + va_end(ap); +} + +void vstr_vprintf(vstr_t *vstr, const char *fmt, va_list ap) { if (vstr->had_error || !vstr_ensure_extra(vstr, strlen(fmt))) { return; } @@ -163,10 +169,7 @@ void vstr_printf(vstr_t *vstr, const char *fmt, ...) { while (1) { // try to print in the allocated space int size = vstr->alloc - vstr->len; - va_list ap; - va_start(ap, fmt); int n = vsnprintf(vstr->buf + vstr->len, size, fmt, ap); - va_end(ap); // if that worked, return if (n > -1 && n < size) { @@ -188,7 +191,6 @@ void vstr_printf(vstr_t *vstr, const char *fmt, ...) { } } } -*/ /** testing *****************************************************/ |