#include #include #include #include #include #include "dat.h" char *url = ""; int aflag; int width = 70; char *defcharset = "latin1"; int uhtml(int fd) { int p[2]; if(pipe(p) < 0) return fd; switch(fork()){ case -1: break; case 0: dup(fd, 0); dup(p[1], 1); close(p[1]); close(p[0]); execl("/bin/uhtml", "uhtml", "-c", defcharset, nil); execl("/bin/cat", "cat", nil); exits("exec"); default: dup(p[0], fd); break; } close(p[0]); close(p[1]); return fd; } void usage(void) { fprint(2, "usage: htmlfmt [-c charset] [-u URL] [-a] [-l length] [file ...]\n"); exits("usage"); } void main(int argc, char *argv[]) { int i, fd; char *err, *file; char errbuf[ERRMAX]; ARGBEGIN{ case 'a': aflag++; break; case 'c': defcharset = EARGF(usage()); break; case 'l': case 'w': err = EARGF(usage()); width = atoi(err); if(width <= 0) usage(); break; case 'u': url = EARGF(usage()); aflag++; break; default: usage(); }ARGEND err = nil; file = ""; if(argc == 0) err = loadhtml(uhtml(0)); else for(i=0; err==nil && i