diff options
author | cinap_lenrek <cinap_lenrek@gmx.de> | 2012-07-05 14:52:38 +0200 |
---|---|---|
committer | cinap_lenrek <cinap_lenrek@gmx.de> | 2012-07-05 14:52:38 +0200 |
commit | 7c197c8e730a3040d9718f9d2c3ad5f44a988a57 (patch) | |
tree | c63e6e32d545e2c04a8b55f8842193c1888b26d6 /sys/src/cmd/tput.c | |
parent | acce478d8ee70ead531a0a49d69404b0652cccf6 (diff) |
tput(1) manpage, add -b buflen option, exit status
Diffstat (limited to 'sys/src/cmd/tput.c')
-rw-r--r-- | sys/src/cmd/tput.c | 35 |
1 files changed, 26 insertions, 9 deletions
diff --git a/sys/src/cmd/tput.c b/sys/src/cmd/tput.c index 47ef99b89..cd34c5871 100644 --- a/sys/src/cmd/tput.c +++ b/sys/src/cmd/tput.c @@ -1,23 +1,41 @@ #include <u.h> #include <libc.h> -enum {buflen = 4096}; +int dopipe; +int buflen = 8192; +uvlong bc, sec; + +void +usage(void) +{ + fprint(2, "usage: %s [-b buflen] [-p]\n", argv0); + exits("usage"); +} void main(int argc, char **argv) { - int rc, cpid, fd, dopipe; - static char buf[buflen]; - static uvlong bc, sec; double speed; + int rc, cpid; + char *buf; - dopipe = 0; ARGBEGIN { - case 'p': dopipe = 1; + case 'b': + buflen = atoi(EARGF(usage())); + break; + case 'p': + dopipe = 1; + break; + default: + usage(); } ARGEND + + if(argc != 0) + usage(); bc = 0; sec = 0; + buf = sbrk(buflen); cpid = rfork(RFPROC | RFMEM); if(cpid == 0) { while(1) { @@ -35,8 +53,7 @@ main(int argc, char **argv) if(dopipe) write(1, buf, rc); bc += rc; } - sprint(buf, "/proc/%d/note", cpid); - fd = open(buf, OWRITE); - write(fd, "kill", 4); + postnote(PNPROC, cpid, "kill"); if(rc < 0) sysfatal("%r"); + exits(0); } |