#!/usr/local/bin/perl
#
# LDP.list  JF.list ͡INDEXե
#
###################################################
# ѿ
###################################################

$LPATH = "/home/ono/JF";          # listեΤǥ쥯ȥ
$LDPLIST = "$LPATH/LDP.list";     # LDPlistե
$JFLIST = "$LPATH/JF.list";       # JFlistե

$LDPLFILE = "$LPATH/listLDP";     # LDPνϥե(JF-ML)
$JFLFILE = "$LPATH/listJF";       # JFνϥե(JF-ML)
$FTPINDEX = "$LPATH/INDEX.euc";   # A-ftpѤINDEXե
$JFINDEX = "$LPATH/JF-INDEX.euc"; # JF-INDEX (̤)
$JFHTML = "$LPATH/JF-INDEX.html"; # JF-INDEXhtml
$JFTODO = "$LPATH/JF-TODO";       # JF-TODO (LDPJF)
$TRNS = "$LPATH/translist";       # 줿ե̾ΰ
$HSGML = "$LPATH/INDEX.sub";      # include file for HOWTO-INDEXJ

$HOME = "/usr2/ftp/pub";          # A-ftppublicǥ쥯ȥ
$JFPATH = "$HOME/JF";             # JFʸΤǥ쥯ȥ 
$LDPPATH = "$HOME/HOWTO";         # LDPʸΤǥ쥯ȥ

###################################################
# listեɤ߹
###################################################

$i = 0;
open(LDPLIST);
while(<LDPLIST>) {
  chop;
  if($_ =~ /^$/) { $i++;}
  ($tag, $text) = /^([^: ]*): *(.*)/;
  $tag =~ /^TITL$/i && ($titl[$i] = $text);
  $tag =~ /^ATRB$/i && ($atrb[$i] = $text);
  $tag =~ /^LINK$/i && ($link[$i] = $text);
  $tag =~ /^NAME$/i && ($name[$i] = $text);
  $tag =~ /^NAMH$/i && ($namh[$i] = $text);
  $tag =~ /^NAMS$/i && ($nams[$i] = $text);
  $tag =~ /^NAMD$/i && ($namd[$i] = $text);
  $tag =~ /^NAMP$/i && ($namp[$i] = $text);
  $tag =~ /^NAMA$/i && ($nama[$i] = $text);
  $tag =~ /^PATH$/i && ($path[$i] = $text);
  $tag =~ /^DATE$/i && ($date[$i] = $text);
  $tag =~ /^CONT$/i && ($cont[$i] = $text);
  $tag =~ /^KEY1$/i && ($key1[$i] = $text);
  $tag =~ /^KEY2$/i && ($key2[$i] = $text);
  $tag =~ /^KEY3$/i && ($key3[$i] = $text);
  $tag =~ /^KEY4$/i && ($key4[$i] = $text);
  $tag =~ /^KEY5$/i && ($key5[$i] = $text);
  $tag =~ /^AUTH$/i && ($auth[$i] = $text);
  $tag =~ /^AUT2$/i && ($aut2[$i] = $text);
  $tag =~ /^AUT3$/i && ($aut3[$i] = $text);
}
$ldpn = $i;
print "LDPϿ = $ldpn\n";
close(LDPLIST);

$i = 0;
open(JFLIST);
while(<JFLIST>) {
  chop;
  if($_ =~ /^$/) { $i++;}
  ($tag, $text) = /^([^: ]*): *(.*)/;
  $tag =~ /^TITL$/i && ($jtitl[$i] = $text);
  $tag =~ /^ATRB$/i && ($jatrb[$i] = $text);
  $tag =~ /^LINK$/i && ($jlink[$i] = $text);
  $tag =~ /^NAMT$/i && ($jnamt[$i] = $text);
  $tag =~ /^NAMH$/i && ($jnamh[$i] = $text);
  $tag =~ /^NAMS$/i && ($jnams[$i] = $text);
  $tag =~ /^NAMD$/i && ($jnamd[$i] = $text);
  $tag =~ /^NAMP$/i && ($jnamp[$i] = $text);
  $tag =~ /^NAMA$/i && ($jnama[$i] = $text);
  $tag =~ /^PATH$/i && ($jpath[$i] = $text);
  $tag =~ /^DATE$/i && ($jdate[$i] = $text);
  $tag =~ /^TDAT$/i && ($jtdat[$i] = $text);
  $tag =~ /^CONT$/i && ($jcont[$i] = $text);
  $tag =~ /^KEY1$/i && ($jkey1[$i] = $text);
  $tag =~ /^KEY2$/i && ($jkey2[$i] = $text);
  $tag =~ /^KEY3$/i && ($jkey3[$i] = $text);
  $tag =~ /^KEY4$/i && ($jkey4[$i] = $text);
  $tag =~ /^KEY5$/i && ($jkey5[$i] = $text);
  $tag =~ /^ITEM$/i && ($jitem[$i] = $text);
  $tag =~ /^AUTH$/i && ($jauth[$i] = $text);
  $tag =~ /^AUT2$/i && ($jaut2[$i] = $text);
  $tag =~ /^AUT3$/i && ($jaut3[$i] = $text);
  $tag =~ /^HREF$/i && ($jhref[$i] = $text);
  $tag =~ /^HNAM$/i && ($jhnam[$i] = $text);
}
$jfn = $i;
print "JFϿ = $jfn\n";
close(JFLIST);

###################################################
# եνߤΥå
###################################################

@howto = `ls -lL $LDPPATH/HOWTO/`;
@mini = `ls -lL $LDPPATH/HOWTO/mini/`;
@faq = `ls -lL $LDPPATH/faqs/`;
@misc = `ls -lL $LDPPATH/misc/`;

for($i = 0; $i <= $ldpn; $i++) {
  if($atrb[$i] =~ /^HOWTO$/i) {
    $found = 0;
    for($j = 0; $j <= $#howto; $j++) {
      chop;
      $a = @howto[$j];
      @b = split(/\s+/, $a);
      if($b[8] eq $name[$i]) {
        $fsize[$i] = $b[4];
        $found = 1;
      }
    }
    if($found == 0) {
      print "HOWTO/$name[$i] is not found.\n";
      exit 1;
    }
  } elsif($atrb[$i] =~ /^MINI$/i) {
    $found = 0;
    for($j = 0; $j <= $#mini; $j++) {
      chop;
      $a = @mini[$j];
      @b = split(/\s+/, $a);
      if($b[8] eq $name[$i]) {
        $fsize[$i] = $b[4];
        $found = 1;
      }
    }
    if($found == 0) {
      print "HOWTO/mini/$name[$i] is not found.\n";
      exit 1;
    }
  } elsif($atrb[$i] =~ /^FAQ$/i) {
    $found = 0;
    for($j = 0; $j <= $#faq; $j++) {
      chop;
      $a = @faq[$j];
      @b = split(/\s+/, $a);
      if($b[8] eq $name[$i]) {
        $fsize[$i] = $b[4];
        $found = 1;
      }
    }
    if($found == 0) {
      if($path[$i] =~ /^$/) {
        print "faqs/$name[$i] is not found.\n";
        exit 1;
      } else {
        if(-f "$LDPPATH/faqs/$path[$i]$name[$i]") {
          @a = `ls -lL $LDPPATH/faqs/$path[$i]$name[$i]`;
          @b = split(/\s+/, $a[0]);
          $fsize[$i] = $b[4];
        }
      }
    }
  } elsif($atrb[$i] =~ /^BOOK$/i) {
    $dir = "$LDPPATH/$path[$i]";
    if (!-d $dir) {
      print "$titl[$i]: HOWTO/$path[$i] is not found.\n";
      exit 1;
    }
  } else {
    $found = 0;
    for($j = 0; $j <= $#misc; $j++) {
      chop;
      $a = $misc[$j];
      @b = split(/\s+/, $a);
      if($b[8] eq $name[$i]) {
        $fsize[$i] = $b[4];
        $found = 1;
      }
    }
    if($found == 0) {
      if($path[$i] =~ /^$/) {
        print "misc/$name[$i] is not found.\n";
        exit 1;
      } else {
        if(-f "$LDPPATH/$path/$name[$i]") {
          @a = `ls -lL $LDPPATH/$path[$i]$name[$i]`;
          @b = split(/\s+/, $a[0]);
          $fsize[$i] = $b[4];
        }
      }
    }
  }
}
print "LDPνߥå\n";

#########################################

@jf = `ls -lL $JFPATH/euc/`;

for($i = 0; $i <= $jfn; $i++) {
  if($jpath[$i] =~ /^$/i) {
    $found = 0;
    for($j = 0; $j <= $#jf; $j++) {
      chop;
      $a = $jf[$j];
      @b = split(/\s+/, $a);
      if($b[8] eq $jnamt[$i]) {
        $jfsize[$i] = $b[4];
        $found = 1;
      }
    }
    if($found == 0) {
      print "JF/euc/$jnamt[$i] is not found.\n";
      exit 1;
    }
  } else {
    if($jatrb[$i] =~ /^BOOK/) {
      @a = `ls -lL $JFPATH/$jpath[$i]$jnama[$i]`;
      @b = split(/\s+/, $a[0]);
      if($b[8] =~ /^$JFPATH\/$jpath[$i]$jnama[$i]$/) {
        $jfsize[$i] = $b[4];
      } else {
        print "JF/$jpath[$i]$jnama[$i] is not found.\n";
        exit 1;
      }
    } else {
      @a = `ls -lL $JFPATH/euc/$jpath[$i]$jnamt[$i]`;
      @b = split(/\s+/, $a[0]);
      if($b[8] =~ /^$JFPATH\/euc\/$jpath[$i]$jnamt[$i]$/) {
        $jfsize[$i] = $b[4];
      } else {
        print "JF/euc/$jpath[$i]$jnamt[$i] is not found.\n";
        exit 1;
      }
    }
  }
}

print "JFνߥå\n";

###################################################
# LINKΥå
###################################################

for($i = 0; $i <= $jfn; $i++) {
  if(!($jlink[$i] =~ /^$/i)) {
    $check = 0;
    for($j = 0; $j < $ldpn; $j++) {
      if($jlink[$i] eq $titl[$j]) {
        $link[$j] = $i;
        if($jcont[$i] =~ /^$/) {
          $jcont[$i] = $cont[$j];
        }
        if($jtitl[$i] =~ /^$/) {
          $jtitl[$i] = $titl[$j];
        }
        $jlenum[$i] = $j;
        $jle[$i] = 1;
        $check = 1;
      }
    }
    for($j = 0; $j <= $jfn; $j++) {
      if($jlink[$i] eq $jtitl[$j] && !($jtitl[$j] =~ /^$/)) {
        $jljnum[$i] = $j;
        $jlj[$i] = 1;
        $check = 1;
      }
    }
    if($check == 0) {
      print "$jlink[$i] is not found.\n";
      exit 1;
    }
  }
}
print "LINKå\n";

###################################################
# INDEXκ
###################################################

if(!open(LDPLFILE, "> $LDPLFILE")) {
  print "Can't open $LDPLFILE.\n";
  exit 1;
}
print LDPLFILE "FILENAME                  SIZE   DATE    CONTENTS\n";
print LDPLFILE "------------------------ ------ -------- -----------------------------------\n";
print LDPLFILE "docs/HOWTO/\n";
for($i = 0; $i <= $ldpn; $i++) {
  if($atrb[$i] =~ /^HOWTO/i) {
    printf LDPLFILE "%-24s %6d %-8s %-36s\n",
           $name[$i], $fsize[$i], $date[$i], $cont[$i];
  }
}
print LDPLFILE "\ndocs/HOWTO/mini/\n";
for($i = 0; $i <= $ldpn; $i++) {
  if($atrb[$i] =~ /^MINI/i) {
    printf LDPLFILE "%-24s %6d %-8s %-36s\n",
           $name[$i], $fsize[$i], $date[$i], $cont[$i];    
  }
}
print LDPLFILE "\ndocs/faqs/\n";
for($i = 0; $i <= $ldpn; $i++) {
  if($atrb[$i] =~ /^FAQ/i) {
    printf LDPLFILE "%-24s %6d %-8s %-36s\n",
           $name[$i], $fsize[$i], $date[$i], $cont[$i];    
  }
}
print LDPLFILE "\ndocs/LDP/\n";
for($i = 0; $i <= $ldpn; $i++) {
  if($atrb[$i] =~ /^BOOK/i) {
    $path2[$i] = $path[$i];
    substr($path2[$i], 0, 4) = "";
    printf LDPLFILE "%-24s        %-8s %-36s\n",
           $path2[$i], $date[$i], $cont[$i];
  }
}
for($i = 0; $i <= $ldpn; $i++) {
  if($atrb[$i] =~ /^MISC/i && !($path[$i] =~ /^misc/)) {
    print LDPLFILE "\ndocs/$path[$i]\n";
    printf LDPLFILE "%-24s %6d %-8s %-36s\n",
           $name[$i], $fsize[$i], $date[$i], $cont[$i];    
  }
}
print LDPLFILE "\ndocs/misc/\n";
for($i = 0; $i <= $ldpn; $i++) {
  if($atrb[$i] =~ /^MISC/i && $path[$i] =~ /^misc/) {
    printf LDPLFILE "%-24s %6d %-8s %-36s\n",
           $name[$i], $fsize[$i], $date[$i], $cont[$i];    
  }
}
close(LDPLFILE);
print "$LDPLFILE\n";

################################################

if(!open(JFLFILE, "> $JFLFILE")) {
  print "Can't open $JFLFILE.\n";
  exit 1;
}
print JFLFILE "FILENAME                  SIZE   DATE    CONTENTS\n";
print JFLFILE "------------------------ ------ -------- -----------------------------------\n";
print JFLFILE "euc/\n";
for($i = 0; $i <= $jfn; $i++) {
  if($jpath[$i] =~ /^$/) {
    printf JFLFILE "%-24s %6d %-8s %-36s\n",
           $jnamt[$i], $jfsize[$i], $jtdat[$i], $jcont[$i];
  } elsif ($jpath[$i] =~ /^XF86READ.ME\/$/) {
    $a = $jpath[$i].$jnamt[$i];
    printf JFLFILE "%-24s %6d %-8s %-36s\n",
           $a, $jfsize[$i], $jtdat[$i], $jcont[$i];
  } elsif (!($jatrb[$i] =~ /^BOOK/)){
    @a = `ls -lL $JFPATH/euc/$jnama[$i]`;
    @b = split(/\s+/, $a[0]);
    printf JFLFILE "%-24s %6d %-8s %-36s\n",
           $jnama[$i], $b[4], $jtdat[$i], $jcont[$i];
  }
}
for($i = 0; $i <= $jfn; $i++) {
  if($jatrb[$i] =~ /^BOOK/) {
    print JFLFILE "\n$jpath[$i]\n";
    printf JFLFILE "%-24s %6d %-8s %-36s\n",
           $jnama[$i], $jfsize[$i], $jtdat[$i], $jcont[$i];
  }
}
close(JFLFILE);
print "$JFLFILE\n";

#####################################################

if(!open(FTPINDEX, "> $FTPINDEX")) {
  print "Can't open $FTPINDEX.\n";
  exit 1;
}
print FTPINDEX "FILENAME                    DATE      CONTENTS\n";
print FTPINDEX "--------------------------  --------  -----------------------------------\n";
print FTPINDEX "euc/\n";
for($i = 0; $i <= $jfn; $i++) {
  if($jpath[$i] =~ /^$/) {
    printf FTPINDEX "%-26s  %-8s  %-36s\n",
           $jnamt[$i], $jtdat[$i], $jcont[$i];
  } elsif ($jpath[$i] =~ /^XF86READ.ME\/$/) {
    $a = $jpath[$i].$jnamt[$i];
    printf FTPINDEX "%-26s  %-8s  %-36s\n",
           $a, $jtdat[$i], $jcont[$i];
  } elsif (!($jatrb[$i] =~ /^BOOK/)){
    printf FTPINDEX "%-26s  %-8s  %-36s\n",
           $jnama[$i], $jtdat[$i], $jcont[$i];
  }
}
for($i = 0; $i <= $jfn; $i++) {
  if($jatrb[$i] =~ /^BOOK/) {
    print FTPINDEX "\n$jpath[$i]\n";
    printf FTPINDEX "%-26s  %-8s  %-36s\n",
           $jnama[$i], $jtdat[$i], $jcont[$i];
  }
}
close(FTPINDEX);
print "$FTPINDEX\n";

################################################
#$JFINDEX = "$LPATH/JF-INDEX.sjs"; # JF-INDEX (̤)

if(!open(JFINDEX, "> $JFINDEX")) {
  print "Can't open $JFINDEX.\n";
  exit 1;
}
if(!open(TRNS, "> $TRNS")) {
  print "Can't open $TRNS.\n";
  exit 1;
}
$a = `date`;
print JFINDEX "                  JF-INDEX                 $a";
print JFINDEX "                               By  Ű <ono\@jf.gee.kyoto-u.ac.jp>\n\n";
print JFINDEX " ʸϡJFΥɥȤ򥫥ƥ꡼̤ʬΤǤñʥ\n Ȥˤ꼫ưŪʬषƤΤǡʬλʤɤΤ⤢뤫⤷\n ޤ󤬸λ\n\n";
print JFINDEX "ڣJFΥɥȥꥹ\n";
print JFINDEX "\n  LinuxξҲȥ󥹥ȡ\n";
do makeindex("install");
print JFINDEX "\n  INDEXFAQ\n";
do makeindex("faq");
print JFINDEX "\n  ɤȥ塼ȥꥢ\n";
do makeindex("guide");
print JFINDEX "\n  ϡɥȥɥ饤С\n";
do makeindex("hardware");
print JFINDEX "\n  ͥåȥ\n";
do makeindex("network");
print JFINDEX "\n  XFree86\n";
do makeindex("xfree");
print JFINDEX "\n  ġβ\n";
do makeindex("tool");
print JFINDEX "\n  ͥϢ\n";
do makeindex("kernel");
print JFINDEX "\n  ¾\n";
do makeindex("etc");

print JFINDEX "\n\nڣJFκԡԥꥹ\n\n";
for($i = 0; $i <= $jfn; $i++) {
  if($jatrb[$i] =~ /^MISC/ || $jauth[$i] =~ /^$/) {
     break;
  } else {
    printf JFINDEX "   %-24s %s\n", $jtitl[$i], $jauth[$i];
    if(!($jaut2[$i] =~ /^$/)) {
      printf JFINDEX "                            %s\n", $jaut2[$i];
    }
    if(!($jaut3[$i] =~ /^$/)) {
      printf JFINDEX "                            %s\n", $jaut3[$i];
    }
  }
}

print JFINDEX "\n\nڣLDPΥɥȥꥹ\n\n";
print JFINDEX "  ե̾                                                 \n";
print JFINDEX "  ------------------------ -------- -------------------------------------- -\n";
print JFINDEX " HOWTO\n";
for($i = 0; $i <= $ldpn; $i++) {
  if($atrb[$i] =~ /^HOWTO/i) {
    if($link[$i] =~ /^$/) {
      printf JFINDEX "  %-24s %-8s %-38s\n",
             $name[$i], $date[$i], $cont[$i];
    } else {
      printf JFINDEX "  %-24s %-8s %-38s O\n",
             $name[$i], $date[$i], $cont[$i];
      print TRNS "$name[$i]\n";
    }
  }
}
print JFINDEX "\n mini-HOWTO\n";
print TRNS "\n";
for($i = 0; $i <= $ldpn; $i++) {
  if($atrb[$i] =~ /^MINI/i) {
    if($link[$i] =~ /^$/) {
      printf JFINDEX "  %-24s %-8s %-38s\n",
             $name[$i], $date[$i], $cont[$i];
    } else {
      printf JFINDEX "  %-24s %-8s %-38s O\n",
             $name[$i], $date[$i], $cont[$i];
      print TRNS "$name[$i]\n";
    }   
  }
}
print JFINDEX "\n FAQ\n";
print TRNS "\n";
for($i = 0; $i <= $ldpn; $i++) {
  if($atrb[$i] =~ /^FAQ/i) {
    if($link[$i] =~ /^$/) {
      printf JFINDEX "  %-24s %-8s %-38s\n",
             $name[$i], $date[$i], $cont[$i];
    } else {
      printf JFINDEX "  %-24s %-8s %-38s O\n",
             $name[$i], $date[$i], $cont[$i];
      print TRNS "$name[$i]\n";
    }    
  }
}
print JFINDEX "\n BOOK\n";
for($i = 0; $i <= $ldpn; $i++) {
  if($atrb[$i] =~ /^BOOK/i) {
    $path2[$i] = $path[$i];
    substr($path2[$i], 0, 4) = "";
    if($link[$i] =~ /^$/) {
      printf JFINDEX "  %-24s %-8s %-38s\n",
             $path2[$i], $date[$i], $cont[$i];
    } else {
      printf JFINDEX "  %-24s %-8s %-38s O\n",
             $path2[$i], $date[$i], $cont[$i];
    }
  }
}
print JFINDEX "\n ¾\n";
for($i = 0; $i <= $ldpn; $i++) {
  if($atrb[$i] =~ /^MISC/i) {
    if($link[$i] =~ /^$/) {
      printf JFINDEX "  %-24s %-8s %-38s\n",
             $name[$i], $date[$i], $cont[$i];
    } else {
      printf JFINDEX "  %-24s %-8s %-38s O\n",
             $name[$i], $date[$i], $cont[$i];
    }
  }
}

close(TRNS);
close(JFINDEX);
print "$JFINDEX\n";

##########################################################
#$JFHTML = "$LPATH/JF-INDEX.html"; # JF-INDEXhtml

if(!open(JFHTML, "> $JFHTML")) {
  print "Can't open $JFHTML.\n";
  exit 1;
}
$a = `date`;
print JFHTML "<title>";
print JFHTML "JF-INDEX";
print JFHTML "</title>";
print JFHTML "<A name=\"TOP\"><Pre><HR>";
print JFHTML "<H1>\n";
print JFHTML "                              JF-INDEX\n";
print JFHTML "</H1>\n";
print JFHTML "By  Ű (ono\@jf.gee.kyoto-u.ac.jp)  $a";
print JFHTML "<HR>\n\n";
#
print JFHTML "<H3> ʸϡJFΥɥȤ򥫥ƥ꡼̤ʬΤǤñʥ\n ץȤˤ꼫ưŪʬषƤΤǡʬλʤɤΤ⤢\n 뤫⤷ޤ󤬸λ</H3>\n";
print JFHTML "<UL><H2>\n";
print JFHTML "<LI> <a href=\"#JFLIST\">JFΥɥȥꥹ</a>\n";
print JFHTML "<LI> <a href=\"#AUTHOR\">JFκԡԥꥹ</a>\n";
print JFHTML "<LI> <a href=\"http://www.gee.kyoto-u.ac.jp/LDP/\">LDPΥɥ</a>\n";
print JFHTML "</UL></H2>\n";
print JFHTML "<HR>\n";
#
print JFHTML "<H1>\n";
print JFHTML "<A name=\"JFLIST\">JFΥɥȥꥹ\n";
print JFHTML "</H1><UL>\n";
print JFHTML "<LI><H2> LinuxξҲȥ󥹥ȡ</H2>\n";
do makehtml("install");
print JFHTML "<LI><H2> INDEXFAQ</H2>\n";
do makehtml("faq");
print JFHTML "<LI><H2> ɤȥ塼ȥꥢ</H2>\n";
do makehtml("guide");
print JFHTML "<LI><H2> ϡɥȥɥ饤С</H2>\n";
do makehtml("hardware");
print JFHTML "<LI><H2> ͥåȥ</H2>\n";
do makehtml("network");
print JFHTML "<LI><H2> XFree86</H2>\n";
do makehtml("xfree");
print JFHTML "<LI><H2> ġβ</H2>\n";
do makehtml("tool");
print JFHTML "<LI><H2> ͥϢ</H2>\n";
do makehtml("kernel");
print JFHTML "<LI><H2> ¾</H2>\n";
do makehtml("etc");
print JFHTML "</UL>\n";
#
print JFHTML "<HR>\n";
print JFHTML "<H1>\n";
print JFHTML "<A name=\"AUTHOR\">JFκԡԥꥹ\n";
print JFHTML "</H1>\n";
for($i = 0; $i <= $jfn; $i++) {
  if($jatrb[$i] =~ /^MISC/ || $jauth[$i] =~ /^$/) {
     break;
  } else {
    @a = split(/([<,>])/, $jauth[$i]);
    printf JFHTML "   %-24s <a href=\"mailto:%s\">%s</a>\n",
	$jtitl[$i], $a[2], $a[0];
    if(!($jaut2[$i] =~ /^$/)) {
      @a = split(/([<,>])/, $jaut2[$i]);
      printf JFHTML "                            <a href=\"mailto:%s\">%s</a>\n", $a[2], $a[0];
    }
    if(!($jaut3[$i] =~ /^$/)) {
      @a = split(/([<,>])/, $jaut3[$i]);
      printf JFHTML "                            <a href=\"mailto:%s\">%s</a>\n", $a[2], $a[0];
    }
  }
}
print JFHTML "</Pre>\n";
print JFHTML "<H3><a href=\"#TOP\">Go to TOP</a></H3>\n";
close(JFHTML);
print "$JFHTML\n";

##########################################################
# HTML.src  ѥեꥹ
if(!open(HTMLS, "> /usr/lib/httpd/cgi-bin/SSE-1.0/HTML.src")) {
  print "Can't open HTML.src.\n";
  exit 1;
}
for($i = 0; $i <= $jfn; $i++) {
  if(!($jnamh[$i] =~ /^$/)) {
    chop($dir = `dirname /usr2/JF/pub/other-formats/$jnamh[$i]`);
    $list = `ls $dir/*.html`;
    print HTMLS $list;
  } elsif (!($jnamt[$i] =~ /^$/)) {
    print HTMLS "/usr2/JF/pub/euc/$jpath[$i]$jnamt[$i]\n";
  }
}
close(HTMLS);
print "HTML.src\n";

##########################################################
#$JFTODO = "$LPATH/JF-TODO";       # JF-TODO (LDPJF)

if(!open(JFTODO, "> $JFTODO")) {
  print "Can't open $JFTODO.\n";
  exit 1;
}
print JFTODO "                  JF-TODO                 $a";
print JFTODO "                               By  Ű <ono\@jf.gee.kyoto-u.ac.jp>\n\n";
if(!open(TODO_1, "< $JFTODO.1")) {
  print "Can't open $JFTODO.1.\n";
  exit 1;
}
while(<TODO_1>) {
  print JFTODO $_;
}
close(TODO_1);
print JFTODO "\nڣHOWTOʤɤ\n
1.1 LDPʸ\n
JFLDP˴ؤꥹȤ򸵤ξĴ٤ޤ\n
ϺǿʤƤ뤳Ȥ򼨤ޤ
ϤƤ뤬ǿΤΤǤϤʤȤ򼨤ޤ
ߤƤʤΤ򼨤ޤ
ǤϤʤहΤΤǤ\n\n";
print JFTODO "  ե̾               ǿ      \n";
print JFTODO "  ------------------------ -------- -------- --\n";
print JFTODO " HOWTO\n";
for($i = 0; $i <= $ldpn; $i++) {
  if($atrb[$i] =~ /^HOWTO/i) {
    if($link[$i] =~ /^$/) {
      printf JFTODO "  %-24s %-8s          \n",
             $name[$i], $date[$i];
    } elsif ($date[$i] =~ $jdate[$link[$i]]) {
      printf JFTODO "  %-24s %-8s %-8s \n",
             $name[$i], $date[$i], $jdate[$link[$i]];
    } elsif ($jdate[$link[$i]] =~ /^$/) {
      printf JFTODO "  %-24s %-8s          \n",
             $name[$i], $date[$i];
    } else {
      printf JFTODO "  %-24s %-8s %-8s \n",
             $name[$i], $date[$i], $jdate[$link[$i]];
    }
  }
}
print JFTODO "\n mini-HOWTO\n";
for($i = 0; $i <= $ldpn; $i++) {
  if($atrb[$i] =~ /^MINI/i) {
    if($link[$i] =~ /^$/) {
      printf JFTODO "  %-24s %-8s          \n",
             $name[$i], $date[$i];
    } elsif ($date[$i] =~ $jdate[$link[$i]]) {
      printf JFTODO "  %-24s %-8s %-8s \n",
             $name[$i], $date[$i], $jdate[$link[$i]];
    } elsif ($jdate[$link[$i]] =~ /^$/) {
      printf JFTODO "  %-24s %-8s          \n",
             $name[$i], $date[$i];
    } else {
      printf JFTODO "  %-24s %-8s %-8s \n",
             $name[$i], $date[$i], $jdate[$link[$i]];
    }
  }
}
print JFTODO "\n FAQ\n";
for($i = 0; $i <= $ldpn; $i++) {
  if($atrb[$i] =~ /^FAQ/i) {
    if($link[$i] =~ /^$/) {
      printf JFTODO "  %-24s %-8s          \n",
             $name[$i], $date[$i];
    } elsif ($date[$i] =~ $jdate[$link[$i]]) {
      printf JFTODO "  %-24s %-8s %-8s \n",
             $name[$i], $date[$i], $jdate[$link[$i]];
    } elsif ($jdate[$link[$i]] =~ /^$/) {
      printf JFTODO "  %-24s %-8s          \n",
             $name[$i], $date[$i];
    } else {
      printf JFTODO "  %-24s %-8s %-8s \n",
             $name[$i], $date[$i], $jdate[$link[$i]];
    }
  }
}
print JFTODO "\n BOOK\n";
for($i = 0; $i <= $ldpn; $i++) {
  if($atrb[$i] =~ /^BOOK/i) {
    $path2[$i] = $path[$i];
    substr($path2[$i], 0, 4) = "";
    if($link[$i] =~ /^$/) {
      printf JFTODO "  %-24s %-8s          \n",
             $path2[$i], $date[$i];
    } elsif ($date[$i] =~ $jdate[$link[$i]]) {
      printf JFTODO "  %-24s %-8s %-8s \n",
             $path2[$i], $date[$i], $jdate[$link[$i]];
    } elsif ($jdate[$link[$i]] =~ /^$/) {
      printf JFTODO "  %-24s %-8s          \n",
             $path2[$i], $date[$i];
    } else {
      printf JFTODO "  %-24s %-8s %-8s \n",
             $path2[$i], $date[$i], $jdate[$link[$i]];
    }
  }
}
print JFTODO "\n ¾\n";
for($i = 0; $i <= $ldpn; $i++) {
  if($atrb[$i] =~ /^MISC/i) {
    if($link[$i] =~ /^$/) {
      printf JFTODO "  %-24s %-8s          \n",
             $name[$i], $date[$i];
    } elsif ($date[$i] =~ $jdate[$link[$i]]) {
      printf JFTODO "  %-24s %-8s %-8s \n",
             $name[$i], $date[$i], $jdate[$link[$i]];
    } elsif ($jdate[$link[$i]] =~ /^$/) {
      printf JFTODO "  %-24s %-8s          \n",
             $name[$i], $date[$i];
    } else {
      printf JFTODO "  %-24s %-8s %-8s \n",
             $name[$i], $date[$i], $jdate[$link[$i]];
    }
  }
}
print JFTODO "\nˤΥɥȤ̤ǤꡢǿǤɿ路Ƥʤ
¿ȤȤ狼Ȼפޤ򸫤Ƥդʤ򴶤
ϡɤɤ򤷤ޤ礦\n
ꥹȤα̤꤬äŦƲ\n
1.2 LDPʳΥɥȤ\n
LDPΰʳˤLinux˴Ϣ¿ΥɥȤ
ꡢʲΥꥹȤΤ褦ˤ¿ʤƤޤºLinux
ѤǤġLinuxѤΥġˤ󤢤ꡢˤ
󲿤餫ΥɥȤĤƤ櫓Ǥ٤ΤϤ
Ǥ⤢ޤ
˴Ƥʤͤϡޤ϶̣äġΥɥȤ
ߤȤΤ⤤⤷ޤ\n\n";

for($i = 0; $i <= $jfn; $i++) {
  if($jatrb[$i] =~ /^OTHER/i) {
    printf JFTODO "  %-24s %-38s\n", $jtitl[$i], $jcont[$i];
  }
}

if(!open(TODO_2, "< $JFTODO.2")) {
  print "Can't open $JFTODO.2.\n";
  exit 1;
}
while(<TODO_2>) {
  print JFTODO $_;
}
close(TODO_2);

for($i = 0; $i <= $jfn; $i++) {
  if($jatrb[$i] =~ /^ORIGINAL/i) {
    printf JFTODO "  %-24s %-38s\n", $jtitl[$i], $jcont[$i];
  }
}

if(!open(TODO_3, "< $JFTODO.3")) {
  print "Can't open $JFTODO.3.\n";
  exit 1;
}
while(<TODO_3>) {
  print JFTODO $_;
}
close(TODO_3);

close(JFTODO);
print "$JFTODO\n";

##########################################################
#$HSGML = "$LPATH/INDEX.sub";

if(!open(HSGML, "| nkf -e > $HSGML")) {
  print "Can't open $HSGML.\n";
  exit 1;
}

print HSGML "<itemize>\n";

for($i = 0; $i <= $ldpn; $i++) {
  @aname = split(/([<,>])/, $auth[$i]);
  if($atrb[$i] =~ /^HOWTO/i) {
    print HSGML "<item><htmlurl url=\"$name[$i]\" name=\"$titl[$i]\">\n";
    print HSGML "$aname[0], &lt;$aname[2]&gt; \n";
    print HSGML "$cont[$i] $date[$i]";
    if($link[$i] =~ /^$/) {
      print HSGML "\n\n";
    } else {
      print HSGML "<newline>\n";
      print HSGML "<htmlurl url=\"../../euc/$jnamt[$link[$i]]\" name=\"\">\n";
      print HSGML "$jdate[$link[$i]]\n\n";
    }
  }
}

print HSGML "</itemize>\n\n";

print HSGML "ʲ mini-HOWTOs ѤǤޤ(ץ졼ƥȤǤ)\n";
print HSGML "\n<itemize>\n";

for($i = 0; $i <= $ldpn; $i++) {
  @aname = split(/([<,>])/, $auth[$i]);
  if($atrb[$i] =~ /^MINI/i) {
    print HSGML "<item><htmlurl url=\"mini/$name[$i]\" name=\"$titl[$i]\">\n";
    print HSGML "$aname[0], &lt;$aname[2]&gt; \n";
    print HSGML "$cont[$i] $date[$i]";
    if($link[$i] =~ /^$/) {
      print HSGML "\n\n";
    } else {
      print HSGML "<newline>\n";
      print HSGML "<htmlurl url=\"../../euc/$jnamt[$link[$i]]\" name=\"\">\n";
      print HSGML "$jdate[$link[$i]]\n\n";
    }
  }
}

print HSGML "</itemize>\n";

close(HSGML);
print "$HSGML\n";

##########################################################
# ؿ  makeindex (type)
#########################################################
sub makeindex
{
  local($type) = @_;

  for($i = 0; $i <= $jfn; $i++) {
    if($jatrb[$i] =~ /^MISC/) {
      next;
    }
    if($jitem[$i] =~ /^$type/) {
      $tmp1 = "".$jtitl[$i]."";
      if($jnamt[$i] =~ /^$/) {
	if($jnamh[$i] =~ /^$/) {
          $tmp2 = "(".$jnama[$i].")";
        } else {
          $tmp2 = "(other-formats/".$jnamh[$i].")";
        }
      } else {
        $tmp2 = "(".$jnamt[$i].")";
      }
      printf JFINDEX "\n  %-30s$    %-36s\n", $tmp1, $jcont[$i];
      printf JFINDEX "   %s %s", $tmp2, $jtdat[$i];
      if($jatrb[$i] =~ LDP || $jatrb[$i] =~ OTHER) {
        print JFINDEX " ()";
      }
      print JFINDEX "\n";
      if( !($jlink[$i] =~ /^$/) && !($jlink[$i] eq $jtitl[$i]) ) {
        print JFINDEX "   : $jlink[$i]\n";
      }
    }
  }
}


##########################################################
# ؿ  makehtml (type)
#########################################################
sub makehtml
{
  local($type) = @_;

  print JFHTML "\n";
  for($i = 0; $i <= $jfn; $i++) {
    if($jatrb[$i] =~ /^MISC/) {
      next;
    }
    if($jitem[$i] =~ /^$type/) {
      $tmp1 = "".$jtitl[$i]."";
      if(!($jnamh[$i] =~ /^$/)) {
        $tmp3 = $jnamh[$i];
        if ($jnamt[$i] =~ /^$/) {
	  $tmp2 = $jnamh[$i];
        } else {
          $tmp2 = "../euc/".$jpath[$i].$jnamt[$i];
        }
      } elsif($jnamt[$i] =~ /^$/) {
        $tmp2 = "../".$jpath[$i].$jnama[$i];
      } else {
        $tmp2 = "../euc/".$jpath[$i].$jnamt[$i];
      }
      $n = 28 - length($tmp1);
      $dummy = "";
      for($j = 0; $j < $n; $j++) {
        $dummy = $dummy." ";
      }
      printf JFHTML "<a href=\"%s\">%s</a>%s %-36s",
           $tmp2, $tmp1, $dummy, $jcont[$i];
      if($jle[$i] == 1 && $jatrb[$i] eq "LDP") {
        if($atrb[$jlenum[$i]] =~ /^HOWTO/) {
          print JFHTML " <a href=\"../../LDP/HOWTO/$name[$jlenum[$i]]\">(LDP)</a>";
        } elsif($atrb[$jlenum[$i]] =~ /^MINI/) {
          print JFHTML " <a href=\"../../LDP/HOWTO/mini/$name[$jlenum[$i]]\">(LDP)</a>";
        } elsif($atrb[$jlenum[$i]] =~ /^FAQ/) {
          print JFHTML " <a href=\"../../LDP/faqs/$name[$jlenum[$i]]\">(LDP)</a>";
        } else {
          print JFHTML " (LDP)";
        }
        
      }
      print JFHTML "\n($jtdat[$i])";
      if(!($jnamh[$i] =~ /^$/)) {
	print JFHTML "         <a href=\"$tmp3\"> HTML </a>";
      } else {
        print JFHTML "         ";
      }
      if( !($jlink[$i] =~ /^$/) && !($jlink[$i] eq $jtitl[$i])) {
        if( $jlj[$i] == 1) {
          if($jatrb[$i] =~ /^ORIGINAL/) {
            print JFHTML "   : <a href=\"../euc/$jpath[$i]$jnamt[$jljnum[$i]]\">$jlink[$i]</a>\n";
          } elsif($jatrb[$i] =~ /^BOOK/) {
            print JFHTML "   : <a href=\"../$jpath[$i]$jnamt[$jljnum[$i]]\">$jlink[$i]</a>\n";
          } else {
            print JFHTML "   : $jlink[$i]\n";
          }
        } else {
          if($atrb[$jlenum[$i]] =~ /^HOWTO/) {
            print JFHTML "   : <a href=\"../../LDP/HOWTO/$name[$jlenum[$i]]\">$jlink[$i]</a>\n";
          } elsif($atrb[$jlenum[$i]] =~ /^MINI/) {
            print JFHTML "   : <a href=\"../../LDP/HOWTO/mini/$name[$jlenum[$i]]\">$jlink[$i]</a>\n";
          }  else {
            print JFHTML "   : $jlink[$i]\n";
          }
        }
      } elsif (!($jhref[$i] =~ /^$/)) {
        print JFHTML "   : <a href=\"$jhref[$i]\"> $jhnam[$i] </a>\n";
      } else {
        print JFHTML "\n";
      }
    }
  }
  print JFHTML "\n<H3><a href=\"#TOP\">Go to TOP</a></H3>\n\n";
}
