#!/bin/sh
#
#   Desc   : make whatis database for JM man pages (roff source only)
#   Date   : 5 Aug 1997
#   author : Nakano Takeo <nakano@apm.seikei.ac.jp>
#
#   Modified 7 Aug 1997
#	gzip'ed format handling.
#	corresponding to canna manual formats (Tnx: tati@tky.threewebnet.or.jp)
#
WHATIS="./whatis"
SECTIONS="1 2 3 4 5 6 7 8 n"

if [ -f ${WHATIS} ]
then
    mv -f ${WHATIS} ${WHATIS}.orig
fi

for SEC in ${SECTIONS}
do
    if [ ! -d man${SEC} ]; then
	continue;
    fi
    for MAN in man${SEC}/*
    do
	MAN_SUFFIX=`basename ${MAN} | awk -F. '{print $NF}'`
	case ${MAN_SUFFIX} in
		gz) CATCMD="zcat ${MAN}";;
		Z)  CATCMD="zcat ${MAN}";;
		z)  CATCMD="zcat ${MAN}";;
		F)  CATCMD="fcat ${MAN}";;
		*)  CATCMD="cat  ${MAN}";;
	esac

        ${CATCMD} | awk '
            BEGIN{
                SEC = ARGV[1]
		ARGC--
                FS = "\\\\-"
            }
            /^.[Ss][Hh] .*̾[]/ || /^.[Ss][Hh] [Nn][Aa][Mm][Ee]/{
                getline
                while (match($0, /^\.\\/)!=0) getline # skip comments

                if (match($0, /^\.[Nn][Mm]/)!=0){
                     PAGE = substr($0, RLENGTH+2) " " # "pagename "
                     getline
                     match($0, /^\.[Nn][Dd]/)
                     DESC = substr($0, RLENGTH+1)     # " ..."
                }
                else{
                     PAGE = $1
                     DESC = $2
                }

                printf("%s(%s) -%s\n", PAGE, SEC, DESC)
            }
         ' ${SEC} >> ${WHATIS}
    done
done

exit 0
