aboutsummaryrefslogtreecommitdiff
path: root/toc/toc
blob: 9544934ec42e4d0a3b2df024ef49cbc17a72ca3c (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 -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