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