xref: /plan9-contrib/rc/bin/doctype (revision fe823997cd457a4a94c97ff60c92547d532973aa)
13e12c5d1SDavid du Colombier#!/bin/rc
23e12c5d1SDavid du Colombier# doctype:  synthesize proper command line for troff
33e12c5d1SDavid du Colombier
43e12c5d1SDavid du Colombiertroff=troff
53e12c5d1SDavid du Colombiereqn=eqn
63e12c5d1SDavid du Colombierprefer=prefer
73e12c5d1SDavid du Colombieropt=''
83e12c5d1SDavid du Colombierdev=''
93e12c5d1SDavid du Colombierwhile(~ $1 -*){
103e12c5d1SDavid du Colombier	switch($1){
113e12c5d1SDavid du Colombier	case -n;
123e12c5d1SDavid du Colombier		troff=nroff
133e12c5d1SDavid du Colombier		eqn=neqn
143e12c5d1SDavid du Colombier		prefer='prefer -n'
153e12c5d1SDavid du Colombier	case -T
163e12c5d1SDavid du Colombier		dev=$1
173e12c5d1SDavid du Colombier	case -*
183e12c5d1SDavid du Colombier		opt=$opt' $1'
193e12c5d1SDavid du Colombier	}
203e12c5d1SDavid du Colombier	shift
213e12c5d1SDavid du Colombier}
223e12c5d1SDavid du Colombierifs='
233e12c5d1SDavid du Colombier'{
243e12c5d1SDavid du Colombier	files=`{echo $*}
253e12c5d1SDavid du Colombier}
26e887ea33SDavid du Colombiergrep -h '\$LIST|\|reference|Jp|^\.(EQ|TS|\[|PS|IS|GS|G1|GD|PP|BM|LP|BP|PI|cstart|begin|TH...|TI)|^\.P$' $* |
273e12c5d1SDavid du Colombiersort -u |
283e12c5d1SDavid du Colombierawk '
29e887ea33SDavid du ColombierBEGIN	{ files = "'$"files'" }
303e12c5d1SDavid du Colombier/\$LIST/ { e++ }
313e12c5d1SDavid du Colombier/^\.PP/	{ ms++ }
323e12c5d1SDavid du Colombier/^\.LP/	{ ms++ }
333e12c5d1SDavid du Colombier/^\.EQ/	{ eqn++ }
343e12c5d1SDavid du Colombier/^\.TS/	{ tbl++ }
353e12c5d1SDavid du Colombier/^\.PS/	{ pic++ }
363e12c5d1SDavid du Colombier/^\.IS/	{ ideal++ }
373e12c5d1SDavid du Colombier/^\.GS/ { tped++ }
383e12c5d1SDavid du Colombier/^\.G1/ { grap++; pic++ }
393e12c5d1SDavid du Colombier/^\.GD/ { dag++; pic++ }
403e12c5d1SDavid du Colombier/^\.\[/	{ refer++ }
413e12c5d1SDavid du Colombier/\|reference/ { prefer++ }
423e12c5d1SDavid du Colombier/^\.cstart/ { chem++; pic++ }
433e12c5d1SDavid du Colombier/^\.begin +dformat/ { dformat++; pic++ }
443e12c5d1SDavid du Colombier/^\.TH.../ { man++ }
453e12c5d1SDavid du Colombier/^\.BM/ { lbits++ }
463e12c5d1SDavid du Colombier/^\.P$/	{ mm++ }
473e12c5d1SDavid du Colombier/^\.BP/	{ pictures++ }
483e12c5d1SDavid du Colombier/^\.PI/	{ pictures++ }
49e887ea33SDavid du Colombier/^\.TI/	{ mcs++ }
50b08d585eSDavid du Colombier/^\.ft *Jp|\\f\(Jp/ { nihongo++ }
513e12c5d1SDavid du ColombierEND {
523e12c5d1SDavid du Colombier	x = ""
533e12c5d1SDavid du Colombier	if (refer) {
54*fe823997SDavid du Colombier		if (e)	x = "refer -e " files " | "
55*fe823997SDavid du Colombier		else	x =  "refer " files "| "
563e12c5d1SDavid du Colombier		files = ""
573e12c5d1SDavid du Colombier	}
583e12c5d1SDavid du Colombier	else if (prefer) { x = "cat " files "| '$prefer'| "; files = "" }
593e12c5d1SDavid du Colombier	if (tped)  { x = x "tped " files " | "; files = "" }
603e12c5d1SDavid du Colombier	if (dag)  { x = x "dag " files " | "; files = "" }
613e12c5d1SDavid du Colombier	if (ideal) { x = x "ideal -q " files " | "; files = "" }
623e12c5d1SDavid du Colombier	if (grap)  { x = x "grap " files " | "; files = "" }
633e12c5d1SDavid du Colombier	if (chem)  { x = x "chem " files " | "; files = "" }
643e12c5d1SDavid du Colombier	if (dformat)  { x = x "dformat " files " | "; files = "" }
653e12c5d1SDavid du Colombier	if (pic)   { x = x "pic " files " | "; files = "" }
663e12c5d1SDavid du Colombier	if (tbl)   { x = x "tbl " files " | "; files = "" }
673e12c5d1SDavid du Colombier	if (eqn)   { x = x "'$eqn' '$dev' " files " | "; files = "" }
683e12c5d1SDavid du Colombier	x = x "'$troff' "
693e12c5d1SDavid du Colombier	if (man) x = x "-man"
703e12c5d1SDavid du Colombier	else if (ms) x = x "-ms"
713e12c5d1SDavid du Colombier	else if (mm) x = x "-mm"
72e887ea33SDavid du Colombier	if (mcs) x = x " -mcs"
733e12c5d1SDavid du Colombier	if (lbits) x = x " -mbits"
743e12c5d1SDavid du Colombier	if (pictures) x = x " -mpictures"
75b08d585eSDavid du Colombier	if (nihongo) x = x " -mnihongo"
763e12c5d1SDavid du Colombier	x = x " '$opt' '$dev' " files
773e12c5d1SDavid du Colombier	print x
783e12c5d1SDavid du Colombier}'
79