mirror of
https://github.com/anope/anope.git
synced 2026-07-02 13:13:13 +02:00
55bf4dbcab
git-svn-id: svn://svn.anope.org/anope/trunk@1 31f1291d-b8d6-0310-a050-a5561fc1590b git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/trunk@1 5417fbe8-f217-4b02-8779-1006273d7864
130 lines
2.2 KiB
Perl
Executable File
130 lines
2.2 KiB
Perl
Executable File
#!/usr/bin/perl
|
|
#
|
|
# Checks a language file against the reference language (en_us), and
|
|
# finds #define string diferences
|
|
#
|
|
my $srcfile = $ARGV[0];
|
|
my $engfile = "en_us.l";
|
|
my %is_there= ();
|
|
my $pos=0;
|
|
my $wc=0;
|
|
my $edef="";
|
|
my $sdef="";
|
|
|
|
my @efile;
|
|
my @sfile;
|
|
my @defs;
|
|
|
|
sub error {
|
|
|
|
my $msg = shift ;
|
|
print "*** Error: $msg \n";
|
|
exit ;
|
|
}
|
|
|
|
sub not_del {
|
|
$line = shift;
|
|
if ($is_there{$line}) {
|
|
return 1;
|
|
} else {
|
|
return 0;
|
|
}
|
|
|
|
}
|
|
|
|
sub get_format {
|
|
my $fmt="";
|
|
|
|
my $str=shift;
|
|
|
|
while ($str =~ m/%\w/g) {
|
|
$fmt .= $&;
|
|
}
|
|
|
|
return $fmt;
|
|
}
|
|
|
|
# Could not think of a worse of doing this...
|
|
sub get_def {
|
|
my $ndef;
|
|
my $start=0;
|
|
my $found=0;
|
|
|
|
$buf = shift;
|
|
$def = shift;
|
|
for (@$buf) {
|
|
my $line = $_;
|
|
chomp $line;
|
|
|
|
if (/^[A-Z]/) {
|
|
$start=0;
|
|
last if $found;
|
|
}
|
|
|
|
if ($start) {
|
|
$found=1;
|
|
$ndef.=$_;
|
|
}
|
|
|
|
if ($line eq $def) {
|
|
$start=1;
|
|
}
|
|
|
|
}
|
|
return $ndef;
|
|
}
|
|
|
|
error("Usage $0 [lang.l]") unless ($srcfile);
|
|
error("Can't find language file: $srcfile") if (! -f $srcfile);
|
|
error("Can't find language file: $engfile") if (! -f $engfile);
|
|
|
|
open (EFILE, "< $engfile");
|
|
while (<EFILE>) {
|
|
my $line = $_;
|
|
push(@efile, $line);
|
|
chomp $line;
|
|
if (/^[A-Z]/) {
|
|
$wc = push (@defs, $line);
|
|
$is_there{$line} = 1;
|
|
}
|
|
}
|
|
close(EFILE);
|
|
|
|
open (SFILE, "< $srcfile");
|
|
while (<SFILE>) {
|
|
push(@sfile, $_);
|
|
}
|
|
close(SFILE);
|
|
|
|
#for (@defs) {
|
|
# $is_there{$_} = 1;
|
|
#}
|
|
|
|
for (@sfile) {
|
|
my $line = $_;
|
|
chomp $line;
|
|
if (/^[A-Z]/) {
|
|
if (not_del($line)) {
|
|
while ($line ne $defs[$pos]) {
|
|
print "ADD: $defs[$pos]\n";
|
|
$pos++;
|
|
}
|
|
if (! /^STRFTIME/ ) {
|
|
$edef = get_format(get_def(\@efile, $line)) ;
|
|
$sdef = get_format(get_def(\@sfile, $line)) ;
|
|
if ( $edef ne $sdef ) {
|
|
print "FORMAT: $line (expecting '$edef' and got '$sdef')\n";
|
|
}
|
|
}
|
|
$pos++;
|
|
} else {
|
|
print "DEL: $line\n";
|
|
}
|
|
}
|
|
}
|
|
|
|
for($pos ; $pos < $wc; $pos++) {
|
|
print "ADD: $defs[$pos]\n";
|
|
}
|
|
|