aboutsummaryrefslogtreecommitdiff
path: root/sys/libfmt/vprint.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/libfmt/vprint.c')
-rw-r--r--sys/libfmt/vprint.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/sys/libfmt/vprint.c b/sys/libfmt/vprint.c
new file mode 100644
index 0000000..bb3076b
--- /dev/null
+++ b/sys/libfmt/vprint.c
@@ -0,0 +1,19 @@
+#include "internal.h"
+
+int
+fmt·vprint(char *fmt, va_list args)
+{
+ fmt·State io;
+ int n;
+ char buf[256];
+
+ fmt·open(1, sizeof(buf), buf, &io);
+
+ va_copy(io.args, args);
+ n = fmt·do(&io, fmt);
+ va_end(io.args);
+
+ if(n > 0 && io.flush(&io) < 0)
+ return -1;
+ return n;
+}