2000-05-02 00:50:32 +00:00
|
|
|
#!/usr/bin/perl -w
|
|
|
|
# -*- Mode: perl; indent-tabs-mode: nil -*-
|
|
|
|
|
|
|
|
#
|
|
|
|
# Nautilus
|
|
|
|
#
|
|
|
|
# Copyright (C) 2000 Eazel, Inc.
|
|
|
|
#
|
|
|
|
# This library 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 of the
|
|
|
|
# License, or (at your option) any later version.
|
|
|
|
#
|
|
|
|
# This library 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 library; if not, write to the Free Software
|
|
|
|
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
|
|
|
#
|
|
|
|
# Author: Darin Adler <darin@eazel.com>,
|
|
|
|
#
|
|
|
|
|
|
|
|
# check-config-h.pl: Search for .c files where someone forgot to
|
|
|
|
# put an include for <config.h> in.
|
|
|
|
|
|
|
|
use diagnostics;
|
|
|
|
use strict;
|
|
|
|
|
|
|
|
use Getopt::Long;
|
|
|
|
|
|
|
|
my $edit = 0;
|
|
|
|
&GetOptions("edit" => \$edit);
|
|
|
|
|
|
|
|
# default to all the files starting from the current directory
|
|
|
|
if (!@ARGV)
|
|
|
|
{
|
2000-05-09 00:57:17 +00:00
|
|
|
@ARGV = `find . -name '*.c' -print`;
|
2000-05-02 00:50:32 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
# locate all of the target lines
|
|
|
|
my @missing_files;
|
|
|
|
FILE: foreach my $file (@ARGV)
|
|
|
|
{
|
|
|
|
chomp $file;
|
|
|
|
open FILE, $file or die "can't open $file";
|
|
|
|
while (<FILE>)
|
|
|
|
{
|
|
|
|
next FILE if /generated by/;
|
|
|
|
next FILE if /^\s*\#\s*include\s*[<\"]config\.h[>\"]/;
|
|
|
|
}
|
|
|
|
close FILE;
|
|
|
|
push @missing_files, $file;
|
|
|
|
}
|
|
|
|
|
|
|
|
if (@missing_files)
|
|
|
|
{
|
2000-05-02 20:04:26 +00:00
|
|
|
print "\n", scalar(@missing_files), " C files don't have <config.h> includes:\n\n";
|
2000-05-02 00:50:32 +00:00
|
|
|
if (!$edit)
|
|
|
|
{
|
|
|
|
print join("\n", @missing_files), "\n";
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
foreach my $file (@missing_files)
|
|
|
|
{
|
|
|
|
open OLD, $file or die "can't open $file";
|
|
|
|
open NEW, "> $file.new" or die "can't open $file.new";
|
|
|
|
while (<OLD>)
|
|
|
|
{
|
|
|
|
if (/^\s*\#\s*include\s/)
|
|
|
|
{
|
|
|
|
print NEW "$&<config.h>\n";
|
|
|
|
print NEW;
|
|
|
|
last;
|
|
|
|
}
|
|
|
|
print NEW;
|
|
|
|
}
|
|
|
|
print NEW <OLD>;
|
|
|
|
close NEW;
|
|
|
|
close OLD;
|
|
|
|
rename "$file.new", $file or die "can't rename $file";
|
|
|
|
print "edited $file\n";
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|