]> git.lizzy.rs Git - plan9front.git/blob - sys/src/cmd/htmlroff/main.c
fix ref822 again: remove uniqarray(), fix case with many entries in 'n'.
[plan9front.git] / sys / src / cmd / htmlroff / main.c
1 /*
2  * Convert troff -ms input to HTML.
3  */
4
5 #include "a.h"
6
7 Biobuf  bout;
8 char*   tmacdir;
9 int             verbose;
10 int             utf8 = 0;
11
12 void
13 usage(void)
14 {
15         fprint(2, "usage: htmlroff [-iuv] [-m mac] [-r an] [file...]\n");
16         exits("usage");
17 }
18
19 void
20 main(int argc, char **argv)
21 {
22         int i, dostdin;
23         char *p;
24         Rune *r;
25         Rune buf[2];
26         
27         Binit(&bout, 1, OWRITE);
28         fmtinstall('L', linefmt);
29         quotefmtinstall();
30         
31         tmacdir = "/sys/lib/tmac";
32         dostdin = 0;
33         ARGBEGIN{
34         case 'i':
35                 dostdin = 1;
36                 break;
37         case 'm':
38                 r = erunesmprint("%s/tmac.%s", tmacdir, EARGF(usage()));
39                 if(queueinputfile(r) < 0)
40                         fprint(2, "%S: %r\n", r);
41                 break;
42         case 'r':
43                 p = EARGF(usage());
44                 p += chartorune(buf, p);
45                 buf[1] = 0;
46                 _nr(buf, erunesmprint("%s", p+1));
47                 break;
48         case 'u':
49                 utf8 = 1;
50                 break;
51         case 'v':
52                 verbose = 1;
53                 break;
54         default:
55                 usage();
56         }ARGEND
57
58         for(i=0; i<argc; i++){
59                 if(strcmp(argv[i], "-") == 0)
60                         queuestdin();
61                 else
62                         queueinputfile(erunesmprint("%s", argv[i]));
63         }
64         if(argc == 0 || dostdin)
65                 queuestdin();
66         
67         run();
68         Bprint(&bout, "\n");
69         Bterm(&bout);
70         exits(nil);
71 }
72