From dfc16043b155d13d8ae562dcc268e4b73b1f59f1 Mon Sep 17 00:00:00 2001 From: Gerd Moellmann Date: Wed, 5 Jan 2000 14:29:52 +0000 Subject: [PATCH] *** empty log message *** --- lispref/ChangeLog | 4 ++ lispref/tindex.pl | 125 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 129 insertions(+) create mode 100755 lispref/tindex.pl diff --git a/lispref/ChangeLog b/lispref/ChangeLog index a0b19b8908..44dcbe5ffb 100644 --- a/lispref/ChangeLog +++ b/lispref/ChangeLog @@ -1,3 +1,7 @@ +2000-01-05 Gerd Moellmann + + * tindex.pl: New script. + 1999-12-03 Dave Love * Makefile.in (MAKEINFO): New parameter. diff --git a/lispref/tindex.pl b/lispref/tindex.pl new file mode 100755 index 0000000000..c138f5d66f --- /dev/null +++ b/lispref/tindex.pl @@ -0,0 +1,125 @@ +#! /usr/bin/perl + +# Copyright (C) 2000 Free Software Foundation, Inc. +# +# This file is part of GNU Emacs. +# +# GNU Emacs is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. +# +# GNU Emacs is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with GNU Emacs; see the file COPYING. If not, write to the +# Free Software Foundation, Inc., 59 Temple Place - Suite 330, +# Boston, MA 02111-1307, USA. + +require 5; +use Getopt::Long; + +my $USAGE = < \$help, 'version' => \$version, + 'old=s' => \$old); +if ($version) { + print "0.1\n"; + exit 0; +} elsif (!$rc || !$old || @ARGV) { + print $USAGE; + exit 1; +} elsif ($help) { + print $USAGE; + exit 0; +} + +# Fill the hash %tindex with associations VAR -> COUNT where +# the keys VAR are identifiers mentioned in @tindex lines in the older +# files to process and COUNT is the number of times they are seen in +# the files. + +my %tindex; +my %removed; +my @old_files = glob "$old/*.texi"; +my @new_files = glob "*.texi"; +fatal ("No Texinfo files found in `$old'") unless @old_files; +fatal ("No Texinfo files found in current directory") unless @new_files; + +print "Scanning old files for \@tindex lines\n"; +foreach $file (@old_files) { + open (IN, "<$file") or fatal "Cannot open $file: $!"; + while () { + ++$tindex{$1} if /^\s*\@tindex\s+(\S+)/; + } + close IN; +} + +# Process current files and remove those @tindex lines which we +# know were already present in the files scanned above. + +print "Removing old \@tindex lines\n"; +foreach $file (@new_files) { + my $modified = 0; + my $contents = ""; + + open (IN, "< $file") or fatal "Cannot open $file.orig for reading: $!"; + while () { + if (/^\s*\@tindex\s+(\S+)/ && $tindex{$1}) { + ++$removed{$1}; + $modified = 1; + } else { + $contents = $contents . $_; + } + } + + close IN; + + if ($modified) { + print " $file\n"; + system ("cp $file $file.orig") == 0 or fatal "Cannot backup $file: $!"; + open (OUT, ">$file") or fatal "Cannot open $file for writing: $!"; + print OUT $contents; + close OUT; + } +} + +# Print a list of identifiers removed. + +print "Removed \@tindex commands for:\n"; +my $key; +foreach $key (keys %removed) { + print " $key\n"; +} + -- 2.20.1