blob: 9ae67543d4bb95c9e1042b027349385345f17ddf [file] [log] [blame] [raw]
#!/bin/bash
# Script to get the table of contents out of Postscript file
# generated by groff from all man pages.
if test $# -ne 1; then
echo "Usage:" `basename $0` "manfile.ps" 1>&2
exit 0;
fi
if ! test -f $1; then
echo "File not found: $1" 1>&2
exit 1;
fi
grep -A5 "^%%Page:" $1 | tr '\\' '*' | sed "s/*214/fi/" |
awk '/^\/F0 /{printf "%s", $0; next} {print}' |
awk '
BEGIN {
p=0
prevname="no";
}
/^%%Page: / {
p=$2;
}
/\/F0 [0-9.]*\/Times-Roman\@0 SF[]?[0-9.]?/ {
i=0;
for (n=3; n <= NF; n++)
{
prev="";
for(x=1; x<=length($n); x++)
{
c=substr($n, x, 1);
if (i==0)
{
if (c == "(")
{
i=1;
continue;
}
}
else if (i==1)
{
if (c == ")")
{
if (prev == "*")
{
name=name ")"
i=2;
}
else
i=0;
}
}
if ((i==1) && (c != "*"))
name=name c;
prev=c;
}
}
if (name != prevname)
{
print name " " p+1;
print ".br"
}
prevname=name;
name="";
}'