1 #include <u.h>
2 #include <libc.h>
3 #include <bio.h>
4 #include <draw.h>
5 #include <html.h>
6 #include "dat.h"
7 
8 char *url = "";
9 int aflag;
10 int width = 70;
11 int defcharset;
12 
13 void
usage(void)14 usage(void)
15 {
16 	fprint(2, "usage: htmlfmt [-c charset] [-u URL] [-a] [-l length] [file ...]\n");
17 	exits("usage");
18 }
19 
20 void
main(int argc,char * argv[])21 main(int argc, char *argv[])
22 {
23 	int i, fd;
24 	char *p, *err, *file;
25 	char errbuf[ERRMAX];
26 
27 	ARGBEGIN{
28 	case 'a':
29 		aflag++;
30 		break;
31 	case 'c':
32 		p = smprint("<meta charset=\"%s\">", EARGF(usage()));
33 		defcharset = charset(p);
34 		free(p);
35 		break;
36 	case 'l': case 'w':
37 		err = EARGF(usage());
38 		width = atoi(err);
39 		if(width <= 0)
40 			usage();
41 		break;
42 	case 'u':
43 		url = EARGF(usage());
44 		aflag++;
45 		break;
46 	default:
47 		usage();
48 	}ARGEND
49 
50 	err = nil;
51 	file = "<stdin>";
52 	if(argc == 0)
53 		err = loadhtml(0);
54 	else
55 		for(i=0; err==nil && i<argc; i++){
56 			file = argv[i];
57 			fd = open(file, OREAD);
58 			if(fd < 0){
59 				errstr(errbuf, sizeof errbuf);
60 				err = errbuf;
61 				break;
62 			}
63 			err = loadhtml(fd);
64 			close(fd);
65 			if(err)
66 				break;
67 		}
68 	if(err)
69 		fprint(2, "htmlfmt: processing %s: %s\n", file, err);
70 	exits(err);
71 }
72