aboutsummaryrefslogtreecommitdiff
path: root/src/libfmt/vfprint.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/libfmt/vfprint.c')
-rw-r--r--src/libfmt/vfprint.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/libfmt/vfprint.c b/src/libfmt/vfprint.c
new file mode 100644
index 0000000..4306ea7
--- /dev/null
+++ b/src/libfmt/vfprint.c
@@ -0,0 +1,19 @@
+#include "internal.h"
+
+int
+fmt·vfprint(int fd, char *fmt, va_list args)
+{
+ int n;
+ fmt·State io;
+ char buf[256];
+
+ fmt·open(fd, 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;
+}