aboutsummaryrefslogtreecommitdiff
path: root/src/lib9/fmt/fmtvprint.c
diff options
context:
space:
mode:
authorrsc <devnull@localhost>2004-02-29 22:11:15 +0000
committerrsc <devnull@localhost>2004-02-29 22:11:15 +0000
commit91c13e54b5d631b65e2f8344d5e0abd058f78ba1 (patch)
tree81d77fc6a74f182543603032462e865e34e43335 /src/lib9/fmt/fmtvprint.c
parent5a8e63b2f016735364d17866d5e2bcb35d20c78b (diff)
downloadplan9port-91c13e54b5d631b65e2f8344d5e0abd058f78ba1.tar.gz
plan9port-91c13e54b5d631b65e2f8344d5e0abd058f78ba1.tar.bz2
plan9port-91c13e54b5d631b65e2f8344d5e0abd058f78ba1.zip
Move utf, fmt. Small header file changes.
Diffstat (limited to 'src/lib9/fmt/fmtvprint.c')
-rw-r--r--src/lib9/fmt/fmtvprint.c46
1 files changed, 46 insertions, 0 deletions
diff --git a/src/lib9/fmt/fmtvprint.c b/src/lib9/fmt/fmtvprint.c
new file mode 100644
index 00000000..6aed013d
--- /dev/null
+++ b/src/lib9/fmt/fmtvprint.c
@@ -0,0 +1,46 @@
+/*
+ * The authors of this software are Rob Pike and Ken Thompson.
+ * Copyright (c) 2002 by Lucent Technologies.
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose without fee is hereby granted, provided that this entire notice
+ * is included in all copies of any software which is or includes a copy
+ * or modification of this software and in all copies of the supporting
+ * documentation for such software.
+ * THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR IMPLIED
+ * WARRANTY. IN PARTICULAR, NEITHER THE AUTHORS NOR LUCENT TECHNOLOGIES MAKE ANY
+ * REPRESENTATION OR WARRANTY OF ANY KIND CONCERNING THE MERCHANTABILITY
+ * OF THIS SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE.
+ */
+#include <stdarg.h>
+#include <string.h>
+#include "utf.h"
+#include "fmt.h"
+#include "fmtdef.h"
+
+
+/*
+ * format a string into the output buffer
+ * designed for formats which themselves call fmt,
+ * but ignore any width flags
+ */
+int
+fmtvprint(Fmt *f, char *fmt, va_list args)
+{
+ va_list va;
+ int n;
+
+ f->flags = 0;
+ f->width = 0;
+ f->prec = 0;
+ va = f->args;
+ f->args = args;
+ n = dofmt(f, fmt);
+ f->flags = 0;
+ f->width = 0;
+ f->prec = 0;
+ f->args = va;
+ if(n >= 0)
+ return 0;
+ return n;
+}
+