19a747e4fSDavid du Colombier #include <plan9.h>
29a747e4fSDavid du Colombier
39a747e4fSDavid du Colombier #define SIZE 4096
49a747e4fSDavid du Colombier extern int printcol;
59a747e4fSDavid du Colombier
69a747e4fSDavid du Colombier int
print(char * fmt,...)79a747e4fSDavid du Colombier print(char *fmt, ...)
89a747e4fSDavid du Colombier {
99a747e4fSDavid du Colombier char buf[SIZE], *out;
10*9df35464SDavid du Colombier va_list arg, temp;
119a747e4fSDavid du Colombier int n;
129a747e4fSDavid du Colombier
139a747e4fSDavid du Colombier va_start(arg, fmt);
14*9df35464SDavid du Colombier va_copy(temp, arg);
15*9df35464SDavid du Colombier out = doprint(buf, buf+SIZE, fmt, &temp);
16*9df35464SDavid du Colombier va_end(temp);
179a747e4fSDavid du Colombier va_end(arg);
189a747e4fSDavid du Colombier n = write(1, buf, (long)(out-buf));
199a747e4fSDavid du Colombier return n;
209a747e4fSDavid du Colombier }
219a747e4fSDavid du Colombier
229a747e4fSDavid du Colombier int
fprint(int f,char * fmt,...)239a747e4fSDavid du Colombier fprint(int f, char *fmt, ...)
249a747e4fSDavid du Colombier {
259a747e4fSDavid du Colombier char buf[SIZE], *out;
26*9df35464SDavid du Colombier va_list arg, temp;
279a747e4fSDavid du Colombier int n;
289a747e4fSDavid du Colombier
299a747e4fSDavid du Colombier va_start(arg, fmt);
30*9df35464SDavid du Colombier va_copy(temp, arg);
31*9df35464SDavid du Colombier out = doprint(buf, buf+SIZE, fmt, &temp);
32*9df35464SDavid du Colombier va_end(temp);
339a747e4fSDavid du Colombier va_end(arg);
349a747e4fSDavid du Colombier n = write(f, buf, (long)(out-buf));
359a747e4fSDavid du Colombier return n;
369a747e4fSDavid du Colombier }
379a747e4fSDavid du Colombier
389a747e4fSDavid du Colombier int
sprint(char * buf,char * fmt,...)399a747e4fSDavid du Colombier sprint(char *buf, char *fmt, ...)
409a747e4fSDavid du Colombier {
419a747e4fSDavid du Colombier char *out;
42*9df35464SDavid du Colombier va_list arg, temp;
439a747e4fSDavid du Colombier int scol;
449a747e4fSDavid du Colombier
459a747e4fSDavid du Colombier scol = printcol;
469a747e4fSDavid du Colombier va_start(arg, fmt);
47*9df35464SDavid du Colombier va_copy(temp, arg);
48*9df35464SDavid du Colombier out = doprint(buf, buf+SIZE, fmt, &temp);
49*9df35464SDavid du Colombier va_end(temp);
509a747e4fSDavid du Colombier va_end(arg);
519a747e4fSDavid du Colombier printcol = scol;
529a747e4fSDavid du Colombier return out-buf;
539a747e4fSDavid du Colombier }
549a747e4fSDavid du Colombier
559a747e4fSDavid du Colombier int
snprint(char * buf,int len,char * fmt,...)569a747e4fSDavid du Colombier snprint(char *buf, int len, char *fmt, ...)
579a747e4fSDavid du Colombier {
589a747e4fSDavid du Colombier char *out;
59*9df35464SDavid du Colombier va_list arg, temp;
609a747e4fSDavid du Colombier int scol;
619a747e4fSDavid du Colombier
629a747e4fSDavid du Colombier scol = printcol;
639a747e4fSDavid du Colombier va_start(arg, fmt);
64*9df35464SDavid du Colombier va_copy(temp, arg);
65*9df35464SDavid du Colombier out = doprint(buf, buf+len, fmt, &temp);
66*9df35464SDavid du Colombier va_end(temp);
679a747e4fSDavid du Colombier va_end(arg);
689a747e4fSDavid du Colombier printcol = scol;
699a747e4fSDavid du Colombier return out-buf;
709a747e4fSDavid du Colombier }
719a747e4fSDavid du Colombier
729a747e4fSDavid du Colombier char*
seprint(char * buf,char * e,char * fmt,...)739a747e4fSDavid du Colombier seprint(char *buf, char *e, char *fmt, ...)
749a747e4fSDavid du Colombier {
759a747e4fSDavid du Colombier char *out;
76*9df35464SDavid du Colombier va_list arg, temp;
779a747e4fSDavid du Colombier int scol;
789a747e4fSDavid du Colombier
799a747e4fSDavid du Colombier scol = printcol;
809a747e4fSDavid du Colombier va_start(arg, fmt);
81*9df35464SDavid du Colombier va_copy(temp, arg);
82*9df35464SDavid du Colombier out = doprint(buf, e, fmt, &temp);
83*9df35464SDavid du Colombier va_end(temp);
849a747e4fSDavid du Colombier va_end(arg);
859a747e4fSDavid du Colombier printcol = scol;
869a747e4fSDavid du Colombier return out;
879a747e4fSDavid du Colombier }
88