#!/bin/sh # toc -- run troff in three passes : ${TROFF:=troff} SED='sed -n /^(toc)/{s///;p}' RM=rm trap '$RM; RM=; exit 130' INT trap '$RM' EXIT tmp() { x=`mktemp` || exit $? RM=$RM\ $x eval $1=\$x } if [ ! -t 0 ]; then tmp f cat > $f set -- "$@" $f fi tmp g tmp h $TROFF -rte=1 -rto=0 "$@" 2>&1 1>/dev/null | $SED >$g $TROFF -rte=1 -rto=1 "$@" <$g 2>&1 1>/dev/null | $SED >$h $TROFF -rte=0 -rto=1 "$@" <$h s=$? exit $s