#!/usr/bin/perl
# This script finds extraneous "extern" variables in the *.c files.
# Run it from inside the main rsync directory.

use strict;

my @files = glob('*.c');

foreach my $fn (@files) {
    open(IN, '<', $fn) or die;
    undef $/; $_ = <IN>; $/ = "\n";
    close IN;
    my @externs = /^extern .*?([^[\s(*;&.]+)(?:\[.*?\])?;/mg;
    foreach my $find (@externs) {
	my @matches = /(?<!\sstruct )\b(\Q$find\E)\b/g;
	print $fn, ': ', $find, "\n" if @matches == 1;
    }
}
