2 c42a1d3d 2006-02-21 devnull * Convert troff -ms input to HTML.
5 c42a1d3d 2006-02-21 devnull #include "a.h"
7 c42a1d3d 2006-02-21 devnull Biobuf bout;
8 c42a1d3d 2006-02-21 devnull char* tmacdir;
9 c42a1d3d 2006-02-21 devnull int verbose;
10 c42a1d3d 2006-02-21 devnull int utf8 = 0;
13 c42a1d3d 2006-02-21 devnull usage(void)
15 c42a1d3d 2006-02-21 devnull fprint(2, "usage: htmlroff [-iuv] [-m mac] [-r an] [file...]\n");
16 c42a1d3d 2006-02-21 devnull exits("usage");
20 c42a1d3d 2006-02-21 devnull main(int argc, char **argv)
22 c42a1d3d 2006-02-21 devnull int i, dostdin;
25 c42a1d3d 2006-02-21 devnull Rune buf[2];
27 c42a1d3d 2006-02-21 devnull Binit(&bout, 1, OWRITE);
28 c42a1d3d 2006-02-21 devnull fmtinstall('L', linefmt);
29 c42a1d3d 2006-02-21 devnull quotefmtinstall();
31 c42a1d3d 2006-02-21 devnull tmacdir = unsharp("#9/tmac");
32 c42a1d3d 2006-02-21 devnull dostdin = 0;
33 c42a1d3d 2006-02-21 devnull ARGBEGIN{
34 c42a1d3d 2006-02-21 devnull case 'i':
35 c42a1d3d 2006-02-21 devnull dostdin = 1;
37 c42a1d3d 2006-02-21 devnull case 'm':
38 c42a1d3d 2006-02-21 devnull r = erunesmprint("%s/tmac.%s", tmacdir, EARGF(usage()));
39 c42a1d3d 2006-02-21 devnull if(queueinputfile(r) < 0)
40 c42a1d3d 2006-02-21 devnull fprint(2, "%S: %r\n", r);
42 c42a1d3d 2006-02-21 devnull case 'r':
43 c42a1d3d 2006-02-21 devnull p = EARGF(usage());
44 c42a1d3d 2006-02-21 devnull p += chartorune(buf, p);
45 c42a1d3d 2006-02-21 devnull buf[1] = 0;
46 c42a1d3d 2006-02-21 devnull _nr(buf, erunesmprint("%s", p+1));
48 c42a1d3d 2006-02-21 devnull case 'u':
49 c42a1d3d 2006-02-21 devnull utf8 = 1;
51 c42a1d3d 2006-02-21 devnull case 'v':
52 c42a1d3d 2006-02-21 devnull verbose = 1;
58 c42a1d3d 2006-02-21 devnull for(i=0; i<argc; i++){
59 c42a1d3d 2006-02-21 devnull if(strcmp(argv[i], "-") == 0)
60 c42a1d3d 2006-02-21 devnull queuestdin();
62 c42a1d3d 2006-02-21 devnull queueinputfile(erunesmprint("%s", argv[i]));
64 c42a1d3d 2006-02-21 devnull if(argc == 0 || dostdin)
65 c42a1d3d 2006-02-21 devnull queuestdin();
68 c42a1d3d 2006-02-21 devnull Bprint(&bout, "\n");
69 c42a1d3d 2006-02-21 devnull Bterm(&bout);
70 c42a1d3d 2006-02-21 devnull exits(nil);