#!/bin/perl

foreach (</ade/man/cat?/*.0>)
{
  open(IN, $_) || die "cannot open $_\n";
  while (<IN>)
  {
  s/\r//g;
  chop;
  if ($naming)
  {
    s/_\cH//g;
    if (/^\S/)
    {
      $_ = $name;
      s/([a-z][A-z])-\s+/$1/;
      s/([a-zA-Z0-9,])\s+/$1 /g;
      s/\W*(\w*)\W*(.*)\s+-\s+(.*)\s*/$2 ($1) - $3/;
      push(@list, "$_\n");
      $naming = 0;
      last;
    }
    else
    {
      $name .= $_;
    }
  }
  elsif (/^\s*(\w+)\((\S+)\)\s.*\s(\w+)\(\S+\)\s*$/)
  {
    if ($1 eq $3)
    {
      $name = $2;
    }
  }
  elsif (/^(N\cHNA\cHAM\cHME\cHE|NAME)/)
  {
    $naming = 1;
  }
  }
}

open(OUT, ">/ade/man/whatis.db") || die "cannot open /ade/man/whatis.db\n";
print OUT sort icmp @list;
exit 0;

sub icmp
{
  $aa = $a;
  $aa =~ tr/[A-Z]/[a-z]/;
  $bb = $b;
  $bb =~ tr/[A-Z]/[a-z]/;
  $aa cmp $bb;
}
