diff options
Diffstat (limited to 'app-text/po4a/files/compare-po.pl')
-rw-r--r-- | app-text/po4a/files/compare-po.pl | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/app-text/po4a/files/compare-po.pl b/app-text/po4a/files/compare-po.pl new file mode 100644 index 000000000000..c01b9b8f31ee --- /dev/null +++ b/app-text/po4a/files/compare-po.pl @@ -0,0 +1,37 @@ +#! /usr/bin/perl +# Remove header entry of two PO files and compare them + +my $f1 = shift(@ARGV); +my $f2 = shift(@ARGV); + +open IN1, "<", $f1 or die "Unable to read 1st file: $!\n"; +open IN2, "<", $f2 or die "Unable to read 2nd file: $!\n"; +my $inMsgstr = 0; +my $lineno = 0; +while (<IN1>) { + $lineno ++; + if (m/^msgstr/) { + $inMsgstr = 1; + } elsif ($inMsgstr == 1 && $_ !~ /^"/) { + last; + } +} +$inMsgstr = 0; +while (<IN2>) { + if (m/^msgstr/) { + $inMsgstr = 1; + } elsif ($inMsgstr == 1 && $_ !~ /^"/) { + last; + } +} + +# Now compare lines +while (<IN1>) { + $lineno ++; + my $l2 = <IN2> or die "Unexpected EOF found when reading $f2\n"; + $_ eq $l2 or die "Files $f1 and $f2 differ at line $lineno:\n-$_+$l2\n"; +} +close IN1; +die "EOF expected at 2nd file\n" unless eof(IN2); +close IN2; +exit 0; |