xref: /plan9/rc/bin/doctype (revision fe823997cd457a4a94c97ff60c92547d532973aa)
1#!/bin/rc
2# doctype:  synthesize proper command line for troff
3
4troff=troff
5eqn=eqn
6prefer=prefer
7opt=''
8dev=''
9while(~ $1 -*){
10	switch($1){
11	case -n;
12		troff=nroff
13		eqn=neqn
14		prefer='prefer -n'
15	case -T
16		dev=$1
17	case -*
18		opt=$opt' $1'
19	}
20	shift
21}
22ifs='
23'{
24	files=`{echo $*}
25}
26grep -h '\$LIST|\|reference|Jp|^\.(EQ|TS|\[|PS|IS|GS|G1|GD|PP|BM|LP|BP|PI|cstart|begin|TH...|TI)|^\.P$' $* |
27sort -u |
28awk '
29BEGIN	{ files = "'$"files'" }
30/\$LIST/ { e++ }
31/^\.PP/	{ ms++ }
32/^\.LP/	{ ms++ }
33/^\.EQ/	{ eqn++ }
34/^\.TS/	{ tbl++ }
35/^\.PS/	{ pic++ }
36/^\.IS/	{ ideal++ }
37/^\.GS/ { tped++ }
38/^\.G1/ { grap++; pic++ }
39/^\.GD/ { dag++; pic++ }
40/^\.\[/	{ refer++ }
41/\|reference/ { prefer++ }
42/^\.cstart/ { chem++; pic++ }
43/^\.begin +dformat/ { dformat++; pic++ }
44/^\.TH.../ { man++ }
45/^\.BM/ { lbits++ }
46/^\.P$/	{ mm++ }
47/^\.BP/	{ pictures++ }
48/^\.PI/	{ pictures++ }
49/^\.TI/	{ mcs++ }
50/^\.ft *Jp|\\f\(Jp/ { nihongo++ }
51END {
52	x = ""
53	if (refer) {
54		if (e)	x = "refer -e " files " | "
55		else	x =  "refer " files "| "
56		files = ""
57	}
58	else if (prefer) { x = "cat " files "| '$prefer'| "; files = "" }
59	if (tped)  { x = x "tped " files " | "; files = "" }
60	if (dag)  { x = x "dag " files " | "; files = "" }
61	if (ideal) { x = x "ideal -q " files " | "; files = "" }
62	if (grap)  { x = x "grap " files " | "; files = "" }
63	if (chem)  { x = x "chem " files " | "; files = "" }
64	if (dformat)  { x = x "dformat " files " | "; files = "" }
65	if (pic)   { x = x "pic " files " | "; files = "" }
66	if (tbl)   { x = x "tbl " files " | "; files = "" }
67	if (eqn)   { x = x "'$eqn' '$dev' " files " | "; files = "" }
68	x = x "'$troff' "
69	if (man) x = x "-man"
70	else if (ms) x = x "-ms"
71	else if (mm) x = x "-mm"
72	if (mcs) x = x " -mcs"
73	if (lbits) x = x " -mbits"
74	if (pictures) x = x " -mpictures"
75	if (nihongo) x = x " -mnihongo"
76	x = x " '$opt' '$dev' " files
77	print x
78}'
79