summaryrefslogtreecommitdiff
path: root/util/et/vfprintf.c
diff options
context:
space:
mode:
authorGravatar Craig Fields <cfields@mit.edu>1994-08-18 16:48:22 +0000
committerGravatar Craig Fields <cfields@mit.edu>1994-08-18 16:48:22 +0000
commit7ccbe4609af7a4292f4155873ead82d94918ef68 (patch)
treef35965df838c6980e4c8cc9955d0749ce62e19cb /util/et/vfprintf.c
parent6d85e8458e7fefb2984b9167853f3d73d933ecc7 (diff)
Initial revision
Diffstat (limited to 'util/et/vfprintf.c')
-rw-r--r--util/et/vfprintf.c45
1 files changed, 45 insertions, 0 deletions
diff --git a/util/et/vfprintf.c b/util/et/vfprintf.c
new file mode 100644
index 0000000..6558992
--- /dev/null
+++ b/util/et/vfprintf.c
@@ -0,0 +1,45 @@
+/*
+ * Copyright (c) 1988 Regents of the University of California.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms are permitted
+ * provided that the above copyright notice and this paragraph are
+ * duplicated in all such forms and that any documentation,
+ * advertising materials, and other materials related to such
+ * distribution and use acknowledge that the software was developed
+ * by the University of California, Berkeley. The name of the
+ * University may not be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
+ * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+ */
+
+/* based on @(#)vfprintf.c 5.2 (Berkeley) 6/27/88 */
+
+#include <stdio.h>
+#include <varargs.h>
+
+int
+vfprintf(iop, fmt, ap)
+ FILE *iop;
+ char *fmt;
+ va_list ap;
+{
+ int len;
+ char localbuf[BUFSIZ];
+
+ if (iop->_flag & _IONBF) {
+ iop->_flag &= ~_IONBF;
+ iop->_ptr = iop->_base = localbuf;
+ len = _doprnt(fmt, ap, iop);
+ (void) fflush(iop);
+ iop->_flag |= _IONBF;
+ iop->_base = NULL;
+ iop->_bufsiz = 0;
+ iop->_cnt = 0;
+ } else
+ len = _doprnt(fmt, ap, iop);
+
+ return (ferror(iop) ? EOF : len);
+}