#!/usr/bin/perl -w
$use_archive = 0; # ignore the archive for now.
&read_archive_files();
$dummy_file = "first";
$file = $dummy_file;
$site = "";
$author = "";
$ellfile = $ARGV[0];
$counts = `grep '^;;;' $ellfile | wc -l`;
($num_entries) = $counts =~ /(\d+)/;
$first_entry = 1; $last_file = "";
### Print out header info.
$date = localtime;
print < Last updated: $date $num_entries entries Mail me (sje30\@cam.ac.uk)
with any suggestions for changes to this list. View recent changes to the list.Emacs Lisp List
Sat 24 Jun 2006. Update ell.el to point to ELL at Cambridge.
Mon 20 Sep 2004. Nascif Abousalh-Neto has fixed a bug in ell.el - some entries were not found. The new version of ell.el now parses the XML file rather than html.
Fri 22 Nov 2002. Visit the EmacsWiki if you are looking for somewhere to upload your lisp file. (Do post it to gnu.emacs.sources too.)
Wed 23 Oct 2002. Thanks to the efforts of Nascif Abousalh-Neto,
the list can now be viewed by the date when an entry for a lisp file
was updated. Please see the list sorted by
date.
END1
print <
Quick jump to first entry with this letter:\n"; for ('a' .. 'z') { print "$_\n"; } print "
\n"; } sub write_record { return if $file eq $dummy_file; $filename = "xx.el"; #print "file is $file\n"; if (!defined($author)) { printf STDERR "author not defined - line %d\n", $.; exit(-1); } if (!defined($site)) { printf STDERR "site not defined - line %d\n", $.; exit(-1); } if (($filename, $desc) = $file =~ /^(\S+)\s+(.+)$/) { ## For comparing filename with previous, we need to remove ## .el and turn entries into lowercase. $sfilename = $filename; $sfilename =~ s/\.el$//; # remove .el if it exists. $sfilename = lc $sfilename; # turn lower. if ((!$first_entry) && ($last_file gt $sfilename)) { print STDERR "warning: $last_file gt $sfilename\n"; } $last_file = $sfilename; $first_entry = 0; $first = substr($filename, 0, 1); if ($first ge $next_letter) { ##print "found first instance of $next_letter\n"; ##print "\n\n"; print "\n$filename\n$desc";
} else {
print STDERR "error parsing $file, space at start of line?\n";
}
# Use a neutral term like contact rather than author, so that it covers
# multiple authors.
print "
\nContact: $author";
if (defined $note) {
print "
\nNote: $note";
}
print "\n";
if ($use_archive && exists($archive{$filename})) {
##print "$filename is in the archive\n";
##print "
Archived\n";
print "
Archived\n";
}
### remove values from perl now...
undef $site; undef $filename; undef $desc; undef $author; undef $file;
undef $note;
}
sub write_footer
{
print <