X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/26a7af26aa149017e2b16a0b96d74d3bacc7a7f1..54d13604fa7521d7879c5552d56c197d6f542467:/packaging/var-checker diff --git a/packaging/var-checker b/packaging/var-checker index eb8b32e1..7c017252 100755 --- a/packaging/var-checker +++ b/packaging/var-checker @@ -1,18 +1,83 @@ #!/usr/bin/perl -# This script finds extraneous "extern" variables in the *.c files. -# Run it from inside the main rsync directory. +# This script checks the *.c files for extraneous "extern" variables, +# for vars that are defined but not used, and for inconsistent array +# sizes. Run it from inside the main rsync directory. use strict; +use warnings; + +my %add_syscall_c = map { $_ => 1 } qw( t_stub.c t_unsafe.c tls.c trimslash.c ); +my %add_compat_c = map { $_ => 1 } qw( t_stub.c tls.c trimslash.c wildtest.c ); +my %add_util_c = map { $_ => 1 } qw( t_stub.c t_unsafe.c ); +my %sizes; + +open(IN, '<', 'syscall.c') or die $!; +undef $/; my $syscall_c = ; $/ = "\n"; +close IN; +$syscall_c =~ s/^extern\s.*//mg; + +open(IN, '<', 'lib/compat.c') or die $!; +undef $/; my $compat_c = ; $/ = "\n"; +close IN; +$compat_c =~ s/^extern\s.*//mg; + +open(IN, '<', 'util.c') or die $!; +undef $/; my $util_c = ; $/ = "\n"; +close IN; +$util_c =~ s/^extern\s.*//mg; my @files = glob('*.c'); foreach my $fn (@files) { - open(IN, '<', $fn) or die; + open(IN, '<', $fn) or die $!; undef $/; $_ = ; $/ = "\n"; close IN; - my @externs = /^extern .*?([^[\s(*;&.]+)(?:\[.*?\])?;/mg; - foreach my $find (@externs) { - my @matches = /(?