mirror of https://gitee.com/Nocallback/glibc.git
3 changed files with 99 additions and 3 deletions
@ -0,0 +1,47 @@ |
|||
#!/usr/bin/perl |
|||
|
|||
use strict; |
|||
use warnings; |
|||
|
|||
# Check __BEGIN_NAMESPACE ... __END_NAMESPACE pairing in an include file. |
|||
|
|||
my $code = 0; |
|||
for my $path (@ARGV) { |
|||
my $localcode = 0; |
|||
my @stack; |
|||
|
|||
open my $in, '<', $path |
|||
or die "open $path failed: $!"; |
|||
|
|||
while (<$in>) { |
|||
if ( /^\s*__BEGIN_(.*)\b/ ) { |
|||
push @stack, $1; |
|||
} |
|||
elsif ( /^\s*__END_(.*)\b/ ) { |
|||
if (@stack) { |
|||
my $tag = pop @stack; |
|||
if ($1 ne $tag) { |
|||
print "$path:$.: BEGIN $tag paired with END $1\n"; |
|||
$localcode = 1; |
|||
} |
|||
} |
|||
else { |
|||
print "$path:$.: END $1 does not match a begin\n"; |
|||
$localcode = 1; |
|||
} |
|||
} |
|||
} |
|||
|
|||
if (@stack) { |
|||
print "$path: Unmatched begin tags " . join (' ', @stack) ."\n"; |
|||
$localcode = 1; |
|||
} |
|||
|
|||
if ($localcode == 0) { |
|||
print "$path: OK\n"; |
|||
} else { |
|||
$code = $localcode; |
|||
} |
|||
} |
|||
|
|||
exit $code; |
|||
Loading…
Reference in new issue