check-module: revive
authorJim Meyering <meyering@redhat.com>
Fri, 21 Aug 2009 21:12:35 +0000 (23:12 +0200)
committerJim Meyering <meyering@redhat.com>
Fri, 21 Aug 2009 21:13:09 +0000 (23:13 +0200)
* check-module: Ignore legit, duplicate-inclusion violations.

check-module

index 6961cd0..3a81bb5 100755 (executable)
@@ -1,7 +1,7 @@
 #!/usr/bin/perl -w
 # Check a gnulib module.
 
-# Copyright (C) 2005, 2006, 2007 Free Software Foundation, Inc.
+# Copyright (C) 2005, 2006, 2007, 2009 Free Software Foundation, Inc.
 
 # This file is free software: you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by
@@ -37,6 +37,7 @@
 
 use strict;
 use Getopt::Long;
+use File::Basename;
 #use Coda;
 
 my $COPYRIGHT_NOTICE = "Copyright (C) 2006 Free Software Foundation, Inc.\n".
@@ -158,7 +159,16 @@ sub find_included_lib_files ($)
 
   # Special cases...
   my %special_non_dup = ( 'fnmatch_loop.c' => 1,
-                         'regex.c' => 1, 'at-func.c' => 1 );
+                         'regex.c' => 1, 'at-func.c' => 1,
+                         'vasnprintf.c' => 1
+                       );
+  my %dup_include_ok;
+  $dup_include_ok{'vasnprintf.c'}{'isnand-nolibm.h'} = 1;
+  $dup_include_ok{'vasnprintf.c'}{'isnanl-nolibm.h'} = 1;
+  $dup_include_ok{'vasnprintf.c'}{'fpucw.h'} = 1;
+  $dup_include_ok{'gen-uni-tables.c'}{'3level.h'} = 1;
+  $dup_include_ok{'csharpexec.c'}{'classpath.c'} = 1;
+  $dup_include_ok{'csharpexec.c'}{'classpath.h'} = 1;
 
   my %inc;
   open FH, '<', $file
@@ -176,6 +186,7 @@ sub find_included_lib_files ($)
       chomp $line;
       $line =~ s/".*//;
       exists $inc{$line} && ! exists $special_non_dup{$line}
+         && ! exists $dup_include_ok{basename $file}{$line}
        and warn "$ME: $file: duplicate inclusion of $line\n";
 
       $inc{$line} = 1;