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