Subversion Repositories planix.SVN

Rev

Blame | Last modification | View Log | RSS feed

#!/bin/rc
# doctype:  synthesize proper command line for troff

troff=troff
eqn=eqn
prefer=prefer
opt=''
dev=''
while(~ $1 -*){
        switch($1){
        case -n;
                troff=nroff
                eqn=neqn
                prefer='prefer -n'
        case -T
                dev=$1
        case -*
                opt=$opt' $1'
        }
        shift
}
ifs='
'{
        files=`{echo $*}
}
grep -h '\$LIST|\|reference|Jp|^\.(EQ|TS|\[|PS|IS|GS|G1|GD|PP|BM|LP|BP|PI|cstart|begin|TH...|TI)|^\.P$' $* |
sort -u |
awk '
BEGIN   { files = "'$"files'" }
/\$LIST/ { e++ }
/^\.PP/ { ms++ }
/^\.LP/ { ms++ }
/^\.EQ/ { eqn++ }
/^\.TS/ { tbl++ }
/^\.PS/ { pic++ }
/^\.IS/ { ideal++ }
/^\.GS/ { tped++ }
/^\.G1/ { grap++; pic++ }
/^\.GD/ { dag++; pic++ }
/^\.\[/ { refer++ }
/\|reference/ { prefer++ }
/^\.cstart/ { chem++; pic++ }
/^\.begin +dformat/ { dformat++; pic++ }
/^\.TH.../ { man++ }
/^\.BM/ { lbits++ }
/^\.P$/ { mm++ }
/^\.BP/ { pictures++ }
/^\.PI/ { pictures++ }
/^\.TI/ { mcs++ }
/^\.ft *Jp|\\f\(Jp/ { nihongo++ }
END {
        x = ""
        if (refer) {
                if (e)  x = "refer -e " files " | "
                else    x =  "refer " files "| "
                files = ""
        }
        else if (prefer) { x = "cat " files "| '$prefer'| "; files = "" }
        if (tped)  { x = x "tped " files " | "; files = "" }
        if (dag)  { x = x "dag " files " | "; files = "" }
        if (ideal) { x = x "ideal -q " files " | "; files = "" }
        if (grap)  { x = x "grap " files " | "; files = "" }
        if (chem)  { x = x "chem " files " | "; files = "" }
        if (dformat)  { x = x "dformat " files " | "; files = "" }
        if (pic)   { x = x "pic " files " | "; files = "" }
        if (tbl)   { x = x "tbl " files " | "; files = "" }
        if (eqn)   { x = x "'$eqn' '$dev' " files " | "; files = "" }
        x = x "'$troff' "
        if (man) x = x "-man"
        else if (ms) x = x "-ms"
        else if (mm) x = x "-mm"
        if (mcs) x = x " -mcs"
        if (lbits) x = x " -mbits"
        if (pictures) x = x " -mpictures"
        if (nihongo) x = x " -mnihongo"
        x = x " '$opt' '$dev' " files
        print x
}'