#!/usr/local/bin/perl -w open(NEED,") { if (/\b([A-Z])\b\s*_?(.*)$/) { if ($1 ne 'U') { $def{$2} = $1; } else { $ref{$2} = 1; } } } close(NEED); @ARGV = <*.h>; while (<>) { if (/(extern|EXTERN|COREXT)\s*(.*)\s(\w+)\s+_ANSI_ARGS_/) { my $kind = $1; if (!exists($def{$3})) { if ($kind ne 'COREXT') { print STDERR "$ARGV:$.: $kind $3 not defined\n"; } print "$ARGV:$.: $3 not defined"; print " - but not referenced" unless (exists($ref{$3})); print "\n"; } } elsif (/(extern|EXTERN|COREXT)\s*(.*)\s(\w+)\s*;/) { my $kind = $1; if (!exists($def{$3})) { if ($kind ne 'COREXT') { print STDERR "$ARGV:$.: $kind $3 not defined\n"; } print "$ARGV:$.: $3 not defined"; print " - but not referenced" unless (exists($ref{$3})); print "\n"; } } $. = 0 if (eof); }