xref: /plan9-contrib/sys/src/cmd/unix/u9fs/print.c (revision 9a747e4fd48b9f4522c70c07e8f882a15030f964)
1 #include <plan9.h>
2 
3 #define	SIZE	4096
4 extern	int	printcol;
5 
6 int
7 print(char *fmt, ...)
8 {
9 	char buf[SIZE], *out;
10 	va_list arg;
11 	int n;
12 
13 	va_start(arg, fmt);
14 	out = doprint(buf, buf+SIZE, fmt, arg);
15 	va_end(arg);
16 	n = write(1, buf, (long)(out-buf));
17 	return n;
18 }
19 
20 int
21 fprint(int f, char *fmt, ...)
22 {
23 	char buf[SIZE], *out;
24 	va_list arg;
25 	int n;
26 
27 	va_start(arg, fmt);
28 	out = doprint(buf, buf+SIZE, fmt, arg);
29 	va_end(arg);
30 	n = write(f, buf, (long)(out-buf));
31 	return n;
32 }
33 
34 int
35 sprint(char *buf, char *fmt, ...)
36 {
37 	char *out;
38 	va_list arg;
39 	int scol;
40 
41 	scol = printcol;
42 	va_start(arg, fmt);
43 	out = doprint(buf, buf+SIZE, fmt, arg);
44 	va_end(arg);
45 	printcol = scol;
46 	return out-buf;
47 }
48 
49 int
50 snprint(char *buf, int len, char *fmt, ...)
51 {
52 	char *out;
53 	va_list arg;
54 	int scol;
55 
56 	scol = printcol;
57 	va_start(arg, fmt);
58 	out = doprint(buf, buf+len, fmt, arg);
59 	va_end(arg);
60 	printcol = scol;
61 	return out-buf;
62 }
63 
64 char*
65 seprint(char *buf, char *e, char *fmt, ...)
66 {
67 	char *out;
68 	va_list arg;
69 	int scol;
70 
71 	scol = printcol;
72 	va_start(arg, fmt);
73 	out = doprint(buf, e, fmt, arg);
74 	va_end(arg);
75 	printcol = scol;
76 	return out;
77 }
78