|
|
| File: [Development] / projects / ogl-sample / main / doc / man / tools / mmdoc (download)
Revision 1.1.1.1 (vendor branch), Wed Jan 26 10:30:39 2000 UTC (17 years, 9 months ago) by ljp
Imported from P4 |
#! /bin/sh
# @(#)mmdoc 1.21 /doccenter/tmadm/src/shell/s.mmdoc
# general documentation generator
#
# Files begining with a ".TH" macro are treated as manual pages.
# Files whose first line is
# '\" x
# where "x" is a string begining with "c", "e", "t" are also treated as
# manual pages.
# Files whose first line is
# '\"! text
# are processed by the command line "text" with the file provided
# as the standard input.
# Files whose first line is
# '\"macro name
# where "name" is the name of a file in TMMACRO will be run off with
# that macro package. "name"s begining "-" will be flag arguments
# to nroff.
# All others are handed to nroff with -cm and mmdoc
#
# Assumes mdate.pl will be found by the current search path.
#
umask 0 # nroff must be able to write into files it closes
while [ -n "$1" ]
do
case $1 in
-D )
DrafT=-rC3
export DrafT
;;
-T* )
TERM=`expr $1 : '-T\(.*\)'`
case ${TERM} in
eps)
post="|deps"
flavor=troff
;;
aps)
post="|apsend b=m305"
flavor=troff
;;
Aps) # This is a fake out so that collections
# can be sent as a unit to APS-5
# instead of series of calls. Used only by
# collection routine 'tcol_final'
post=
flavor=troff
TERM=aps
;;
image)
post="|apsend b=m305 d=i"
flavor=troff
TERM=aps
;;
i300)
post="|dimpress"
flavor=troff
;;
8300)
post="|dimpress"
flavor=troff
TERM=aps
;;
psc)
post="|psdit |lp -oh"
flavor=troff
export TERM
;;
PS)
post="|psdit"
flavor=troff
TERM=psc
export TERM
;;
X100)
post=""
flavor=troff
TERM=X100
export TERM
;;
*)
post=
flavor=nroff
;;
esac
export post flavor
;;
-r[ymd]* )
DocdatE="$DocdatE $1"
export DocdatE
dateset=yes
;;
-?* )
flags="$flags $1"
export flags
;;
- | * )
break
esac
shift
done
if [ $# = 0 ]
then
set -- -
fi
for i
{
if [ "$i" != "-" -a ! -s "$i" ]
then
echo "Cannot input file: $i"
continue
fi
case $i in
- )
;;
* )
Line1=`line <$i`
if [ ! "${dateset}" ]
then
# DocdatE is intentionally capitalized that way
# to cut the possibility of env name collision.
DocdatE=`mdate.pl $i`
export DocdatE
fi
esac
MacrO=${TMMACRO}
case "${Line1}" in
.TH* | "'\\\" "[cet]* )
man -T${TERM} -d ${DocdatE} $*
;;
"'\\\"!"* )
cmd=`echo "${Line1}" | sed 's/^....//'`
if [ "$flavor" != troff ]
then
cmd=`echo " ${cmd} " | sed 's/ eqn / neqn /'`
fi
Line1=`sed -n -e 2p -e 2q ${i}`
export Line1
if [ "$flavor" = troff ]
then
eval '<$i' $cmd
#eval `parse "$cmd" ${i}`
else
TERM=lp
eval '<$i' $cmd
fi
;;
"'\\\"macro"* )
cmd=`echo "${Line1}" |
sed ' s/.."macro//'"
s:[ ]\([^- ]\): ${TMMACRO?}/\1:g"`
cmd=`echo $cmd|sed "s;[ ]*.*/stdmacro;${MacrO?}/strings.mm ${MacrO?}/stdmacro;"`
cmd="$cmd $OTHERFILES"
if [ "$flavor" = troff ]
then
case "$cmd" in
*stdmacro*)
case "$flags" in
*-rs[0-9]*)
;;
*)
flags="${flags} -rs1"
esac
esac
eval troff -T${TERM} ${DrafT} ${DocdatE} ${flags} ${cmd} $i ${post}
else
eval nroff ${DrafT} ${DocdatE} ${flags} ${cmd} $i
fi
;;
"'\\\"text"* )
cmd=`echo "${Line1}" |
sed ' s/.."text//'"
s:[ ]\([^- ]\): ${TMMACRO?}/\1:g"`
cmd=`echo $cmd|sed "s;[ ]*.*/docmacs;${MacrO?}/docmacs;"`
if [ "$flavor" = troff ]
then
eval troff -T${TERM} ${DrafT} ${DocdatE} ${flags} ${cmd} $i ${post}
else
eval nroff ${DrafT} ${DocdatE} ${flags} ${cmd} $i
fi
;;
.tH* )
# Right now 2/12/85 this stuff not used for DSG work.
# No enhancements to do troff done yet.
# Will do as necessary
if [ -r ${TMMACRO}/mandocvar ]
then
. ${TMMACRO}/mandocvar
fi
nroff -T${TERM} ${DocdatE} ${flags} \
-can ${MacrO?}/mandoc ${i} |
col
;;
.pH* | '' | * )
if [ -r ${TMMACRO}/mmdocvar ]
then
. ${TMMACRO}/mmdocvar
fi
if [ "$flavor" = troff ]
then
eval troff -T${TERM} -rW${Width:-5}i \
-rL${Length:-8.5}i \
${DocdatE} ${DrafT} ${flags} \
/usr/bin/mmt $i ${post}
else
TERM=lp
nroff -T${TERM} -u${Overstrike:-1} -rW${Width:-79} \
-rO${Offset:-0} -rL${Length:-66} \
${DocdatE} ${DrafT} ${flags} \
${MacrO?}/newmm \
${MacrO?}/mmdoc ${TMMACRO}/custom $i |
col
fi
;;
esac
}