aboutsummaryrefslogtreecommitdiff
path: root/toc/toc
blob: d3de1a5eef0dabebc8f24845bce028748e97fa8b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#!/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 -dtf= "$@"	2>&1 1>/dev/null	| $SED >$g
$TROFF -rte=1 -dtf=$g "$@"	2>&1 1>/dev/null	| $SED >$h
$TROFF -rte=0 -dtf=$h "$@"

s=$?

exit $s