BSD 4_3_Net_2 release
[unix-history] / usr / src / usr.bin / window / wwprintf.c
index 2ab4449..8e99dd1 100644 (file)
@@ -1,57 +1,57 @@
+/*
+ * Copyright (c) 1983 Regents of the University of California.
+ * All rights reserved.
+ *
+ * This code is derived from software contributed to Berkeley by
+ * Edward Wang at The University of California, Berkeley.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *     This product includes software developed by the University of
+ *     California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
 #ifndef lint
 #ifndef lint
-static char *sccsid = "@(#)wwprintf.c  1.4 83/07/22";
-#endif
+static char sccsid[] = "@(#)wwprintf.c 3.11 (Berkeley) 6/6/90";
+#endif /* not lint */
 
 #include "ww.h"
 
 #include "ww.h"
+#include <varargs.h>
 
 
-wwprintf(w, fmt, args)
+/*VARARGS2*/
+wwprintf(w, fmt, va_alist)
 struct ww *w;
 char *fmt;
 struct ww *w;
 char *fmt;
+va_dcl
 {
 {
-       struct _iobuf _wwbuf;
-       static char buf[1024];
-
-       /*
-        * A danger is that when buf overflows, _flsbuf() will be
-        * called automatically.  It doesn't check for _IOSTR.
-        * We set the file descriptor to -1 so no actual io will be done.
-        */
-       _wwbuf._flag = _IOWRT+_IOSTRG;
-       _wwbuf._base = _wwbuf._ptr = buf;
-       _wwbuf._cnt = sizeof buf;
-       _wwbuf._file = -1;                      /* safe */
-       _doprnt(fmt, &args, &_wwbuf);
-       return wwwrite(w, buf, _wwbuf._ptr - buf);
-}
+       char buf[1024];
+       va_list ap;
 
 
-/*
-wwprintf(w, fmt, args)
-struct ww *w;
-char *fmt;
-{
-       _doprnt(fmt, &args, w);
-       return 0;
-}
-
-_strout(count, string, adjust, file, fillch)
-register char *string;
-register count;
-int adjust;
-register struct ww *file;
-{
-       while (adjust < 0) {
-               if (*string=='-' && fillch=='0') {
-                       wputc(*string++, file);
-                       count--;
-               }
-               wputc(fillch, file);
-               adjust++;
-       }
-       while (--count>=0)
-               wputc(*string++, file);
-       while (adjust) {
-               wputc(fillch, file);
-               adjust--;
-       }
+       va_start(ap);
+       /* buffer can overflow */
+       (void) wwwrite(w, buf, vsprintf(buf, fmt, ap));
+       va_end(ap);
 }
 }
-*/