nroff/troff question...
Chet Ramey
chet at cwns1.INS.CWRU.Edu
Fri Oct 19 06:04:52 AEST 1990
In article <14147 at smoke.BRL.MIL> gwyn at smoke.BRL.MIL (Doug Gwyn) writes:
>However, assuming one of the standard ones is involved, you might
>be able to tell by seeing what macros it appears to be using. The
>following "doctype" script demonstrates this, as well as finding
>other useful information of the same general nature.
This is a nice script. Here's a version that works with groff and
recognizes -me. I took out some of the stuff in Doug's version that
we don't have and groff doesn't provide.
Chet
#!/bin/bash
# gdoctype -- synthesize proper command line for groff
# adapted from Kernighan & Pike
#
# Chet Ramey chet at ins.CWRU.Edu
# Originally from: D A Gwyn
#
# changed to work with groff 10/16/90
# support for recognizing -me and gremlin 10/17/90
#
# Caveats:
# o we test for gremlin, but since I don't have it, this doesn't
# do anything
# o this always runs groff -v
#
PATH=/usr/ucb:/bin:/usr/bin:/usr/local/bin/gnu:/usr/local/bin
MACDIR=/usr/lib/tmac
eopt=
macs=
opts=
topt=
for i
do
case "$i" in
-e) eopt="$i"; shift;;
-m*) macs="$macs $i"; shift;;
-T*) topt="$i"; shift;;
--) shift; break;;
-) break;;
-*) opts="$opts $i"; shift;;
*) break;;
esac
done
if [ $# -gt 0 ]
then s="cat $* | "
else s=
fi
t=`cat $* |
egrep '^\.(EQ|TS|\[|P|LP|G1|IS|SH|pp|GS)' |
sort -u |
awk '
/^\.SH *(NAME|SYNOPSIS|DESCRIPTION)/ { man++ }
/^\.P$/ { mm++ }
/^\.[LP]P/ { ms++ }
/^\.pp/ { me++ }
/^\.EQ/ { eqn++ }
/^\.TS/ { tbl++ }
/^\.P[FS]/ { pic++ }
/^\.G1/ { grap++ }
/^\.IS/ { ideal++ }
/^\.\[/ { refer++ }
/^\.GS/ { gremlin++ }
END {
if (refer > 0) printf "refer | "
if (grap > 0) printf "grap | "
if (ideal > 0) printf "ideal | "
printf "groff -v "
if (pic > 0) printf "-p "
if (tbl > 0) printf "-t "
if (eqn > 0) printf "-e "
if (man > 0) printf " -man"
if (mm > 0 && man == 0) printf " -mm"
if (ms > 0 && mm == 0 && man == 0) printf " -ms"
if (me > 0 && ms == 0 && mm == 0 && man == 0) printf " -me"
printf "\n"
} '`
#
# Add any -Tdev options
#
if [ -n "$topt" ] ; then
t="$t $topt"
fi
#
# Add any miscellaneous options for groff
#
if [ -n "$opts" ] ; then
t="$t $opts"
fi
#
# Add any additional macro packages
#
if [ -n "$macs" ] ; then
t="$t $macs"
fi
#
# Add use of standard input
#
t="$t -"
if [ -n "$eopt" ] ; then
eval "$s$t"
else
echo $s$t
fi
exit 0
--
Chet Ramey ``As I recall, Doug was keen on boxing. But
Network Services Group when he learned to walk, he took up puttin'
Case Western Reserve University the boot in the groin.''
chet at ins.CWRU.Edu
More information about the Comp.unix.questions
mailing list