pstarget="/tmp/$.libcdoc.ps"
pdftarget_noidx="/tmp/$.$pdftarget"
pdfindex="/tmp/$.pdfindex.info"
sorted_index="$index.sorted"
keywords="/tmp/$.keywords"
paths="$mandir/man2 $mandir/man3"
for i in `find $paths -name "*.gz"`; do
if zgrep -q '.Lb libc' $i && zgrep -q '.Sh LIBRARY' $i; then
for j in `gettitles $i`; do
cat $index | sort -n | uniq | awk -F: 'BEGIN { prev = "" } {
for i in `cat $index`; do
fname=`echo $i | cut -d: -f2`
grep $fname $index | sort -n | awk -F: 'BEGIN {n = 0} {
done | sort -n | uniq > $index.tmp
for i in `cat $index`; do
fname=`echo $i | cut -d: -f2`
kwords=`echo $i | cut -d: -f1`
nextp=`mandoc -T ps $fname|egrep '%%Pages: [0-9]+'|cut -d: -f2`
echo "$kwords:$currp:$fname" >> $index.tmp
currp=`expr $currp + $nextp`
for i in `cat $index | sed -E 's/(^[^:]+):.*/1/' | tr ',' ' '`; do
done | sort -n > $keywords
for i in `cat $keywords`; do
page=`grep -w $i $index | tail -1 | cut -d: -f 2`
for i in `cat $index`; do
fname=`echo $i | cut -d: -f3`
zcat $fname | sed -e 's/^.Dd.*$/.Dd __PAGENO__/'
-e '/.Os.*/d' | mandoc -T ps >> $pstarget
echo "Table of Contents" >> $tocin
for i in `cat $sorted_index`; do
kword=`echo $i | cut -d: -f 1`
page=`echo $i | cut -d: -f 2`
page=`expr $content_offset + $page`
printf ".XA $pagen$kwordn" >> $tocin
content_offset=`groff -T ps -ms $tocin | egrep '%%Pages: [0-9]+' |
content_offset=`expr $content_offset + 0`
groff -T ps -ms $tocin > $tmp
printf "[/Page 1 /View [/XYZ null null null] " > $pdfindex
printf "/Title (Table of Contents) /OUT pdfmarkn" >> $pdfindex
for i in `cat $sorted_index`; do
kword=`echo $i | cut -d: -f 1`
page=`echo $i | cut -d: -f 2`
page=`expr $page + $content_offset`
printf "[/Page $page /View " >> $pdfindex
printf "[/XYZ null null null] " >> $pdfindex
printf "/Title ($kword) /OUT pdfmarkn" >> $pdfindex
zcat $1 | sed -n '/.Sh NAME/,/.Sh LIBRARY/p' |
egrep '^.Nm [^ ]+' | cut -d" " -f 2 | sort -n | uniq
cat $pstarget | awk -v p=$content_offset '{
if ($0 ~ /(__PAGENO__)/) {
t = sprintf("(%s)", ++p);
mv $pstarget.tmp $pstarget
ps2pdf $pstarget $pdftarget_noidx
gs -sDEVICE=pdfwrite -q -dBATCH -dNOPAUSE -sOutputFile=$pdftarget $pdfindex