12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- #! @PERL@
- #+##############################################################################
- #
- # check_texinfo.pl: Extract texinfo commands from files
- #
- # Copyright (C) 2002 Free Software Foundation, Inc.
- #
- # This program 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 3 of the License,
- # or (at your option) any later version.
- #
- # This program 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 this program. If not, see <http://www.gnu.org/licenses/>.
- #
- # Code taken from the texi2html file in 2003.
- #
- #-##############################################################################
- # This requires perl version 5 or higher
- require 5.0;
- use strict;
- use Getopt::Long;
- my $verbose;
- if (!GetOptions ("verbose" => \$verbose))
- {
- die "usage: $0 [-v] file...\n";
- }
- die "Need file to check\n" unless @ARGV > 0;
- my (%seen, %context);
- while (<>)
- {
- if (/\@(\*|\.|\:|\@|\{|\})/)
- {
- $seen{$&}++;
- $context{$&} .= "> $_" if $verbose;
- $_ = "$`XX$'";
- redo;
- }
- if (/\@(\w+)/)
- {
- my ($before, $match, $after);
- ($before, $match, $after) = ($`, $&, $');
- if ($before =~ /\b[-\w]+$/ && $after =~ /^[-\w.]*\b/)
- { # e-mail address
- $seen{'e-mail address'}++;
- $context{'e-mail address'} .= "> $_" if $verbose;
- }
- else
- {
- $seen{$match}++;
- $context{$match} .= "> $_" if $verbose;
- }
- $match =~ s/^\@/X/;
- $_ = "$before$match$after";
- redo;
- }
- }
- foreach (sort(keys(%seen)))
- {
- if ($verbose)
- {
- print "$_\n";
- print $context{$_};
- }
- else
- {
- print "$_ ($seen{$_})\n";
- }
- }
|