Blame


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