#!/usr/bin/perl # Copyright (c) May 1997 Wolfram Schneider , Berlin. # # atoz - create automatically an `A-Z Index' from a pre-sorted database # (sort -uf) with the format `|' # # $FreeBSD$ # The FreeBSD French Documentation Project # Original revision: 1.5 if ($ARGV[0] eq '-u' && $#ARGV > 0) { $urlprefix = $ARGV[1]; shift; shift; # prefix for relative URLs } elsif ($ARGV[0] =~ /^-/) { die "usage: $0 [-u urlprefix] files ...\n" } $top = 'ruebezahl'; # HTML tag name for `go to top of page' $hr = "
\n\n"; $h2 = 'H2'; $table = 1; # use table output for alphabet sub eol { "\n\n" } $firstold = ''; @az = (); @list = (); while(<>) { chop; next if /^\s*#/ || /^\s*$/; # ignore comments $first = substr($_, 0, 1); $first =~ y/a-z/A-Z/; if ($firstold ne $first) { # a new alphabet character push(@az, $first); push(@list, &eol) if $#az > 0; # close previous list push(@list, qq{<$h2>$first\n
    \n}); } $firstold = $first; ($title, $url) = split('\|', $_); $url =~ s/^\s+//; $url =~ s/\s+$//; $url = $urlprefix . $url unless ($url =~ m%^/% || $url =~ /^(news|mailto|ftp|http|telnet):/oi); push(@list, qq{
  • $title\n}); } push(@list, &eol); # close last list # Output header, list, and copyright print qq{\n}; print qq{\n} if $table; foreach (@az) { if ($table) { print qq{\n}; } else { print qq{$_\n}; } } print "
    $_
    \n" if $table; print $hr; print @list; #print qq{\n};