aboutsummaryrefslogtreecommitdiff
path: root/py/vstr.c
diff options
context:
space:
mode:
authorDamien <damien.p.george@gmail.com>2013-11-03 18:20:56 +0000
committerDamien <damien.p.george@gmail.com>2013-11-03 18:20:56 +0000
commit2f06c57f8a17dc7cfb66288387b62a42aacafe94 (patch)
tree65278e27a97bc7a6946d41c0731819b375116c72 /py/vstr.c
parent0e496733fed6311f78410891a22e75ac8086c689 (diff)
Add simple var-arg functions; add simple string.format.
Diffstat (limited to 'py/vstr.c')
-rw-r--r--py/vstr.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/py/vstr.c b/py/vstr.c
index 076c3a30d..f6652e6f1 100644
--- a/py/vstr.c
+++ b/py/vstr.c
@@ -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 *****************************************************/