misc/127428: [patch] Add check-script for share/misc/iso639
Edwin Groothuis
edwin at mavetju.org
Wed Sep 17 02:10:02 UTC 2008
>Number: 127428
>Category: misc
>Synopsis: [patch] Add check-script for share/misc/iso639
>Confidential: no
>Severity: non-critical
>Priority: low
>Responsible: freebsd-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: change-request
>Submitter-Id: current-users
>Arrival-Date: Wed Sep 17 02:10:01 UTC 2008
>Closed-Date:
>Last-Modified:
>Originator: Edwin Groothuis
>Release: FreeBSD 7.0-RELEASE-p1 i386
>Organization:
-
>Environment:
System: FreeBSD k7.mavetju 7.0-RELEASE-p1 FreeBSD 7.0-RELEASE-p1 #2: Wed May 28 08:12:56 EST 2008 edwin at k7.mavetju:/usr/src/sys/i386/compile/k7 i386
>Description:
Small perl script for in head/tools/tools/iso.
>How-To-Repeat:
>Fix:
--- share/misc/iso639.old 2008-09-17 12:04:50.000000000 +1000
+++ share/misc/iso639 2008-09-17 12:05:52.000000000 +1000
@@ -27,9 +27,17 @@
#
# For general discussion about ISO language codes, write to: iso639 at dkuug.dk
+#
+# Download the file http://www.loc.gov/standards/iso639-2/ISO-639-2_utf-8.txt
+# and run head/tools/tools/iso/check-iso639.pl to see if everything is up
+# to date.
+#
+
+#
# a2: ISO 639-1 Alpha-2 code
# bib: ISO 639-2/B bibliographic code
# term: ISO 639-2/B terminology code
+#
# a2 bib term name
aa aar aar Afar
[~/iso] edwin at k7>cat check-iso639.pl
#!/usr/bin/perl -w
#
# $FreeBSD$
#
# This script compares the file iso639 (from head/share/misc) with the file
# ISO-639-2_8859-1.txt (from
# http://www.loc.gov/standards/iso639-2/ISO-639-2_utf-8.txt) to see if there
# any differences.
#
# Created by Edwin Groothuis <edwin at FreeBSD.org> for the FreeBSD project.
#
use strict;
use Data::Dumper;
my %old = ();
{
open(FIN, "iso639") or die "Cannot open iso639 (should be in head/share/misc)";
my @lines = <FIN>;
close(FIN);
chomp(@lines);
foreach my $l (@lines) {
next if ($l =~ /^#/);
next if ($l eq "");
die "Bad line: $l\n"
if ($l !~ /^([a-z\-]*)[ \t]+([a-z\-]+)[ \t]+([a-z\-]+)[ \t]+(.*)/);
my $a2 = $1;
my $bib = $2;
my $term = $3;
my $name = $4;
$old{$bib}{a2} = $a2;
$old{$bib}{bib} = $bib;
$old{$bib}{term} = $term;
$old{$bib}{name} = $name;
}
}
my %new = ();
{
open(FIN, "ISO-639-2_8859-1.txt") or die "Cannot open ISO-639-2_8859-1.txt, which can be retrieved from http://www.loc.gov/standards/iso639-2/ISO-639-2_utf-8.txt";
my @lines = <FIN>;
close(FIN);
chomp(@lines);
foreach my $l (@lines) {
my @a = split(/\|/, $l);
my $a2 = $a[2];
my $bib = $a[0];
my $term = $a[1];
my $name = $a[3];
$term = $bib if ($term eq "");
$new{$bib}{a2} = $a2;
$new{$bib}{bib} = $bib;
$new{$bib}{term} = $term;
$new{$bib}{name} = $name;
}
}
{
my $c = 0;
foreach my $bib (sort(keys(%old))) {
next if (defined $new{$bib});
print "In old but not new: $old{$bib}{a2}\t$old{$bib}{bib}\t$old{$bib}{term}\t$old{$bib}{name}\n";
$c++;
}
print "Found $c issues\n";
}
{
my $c = 0;
foreach my $bib (sort(keys(%new))) {
next if (defined $old{$bib});
print "In new but not old: $new{$bib}{a2}\t$new{$bib}{bib}\t$new{$bib}{term}\t$new{$bib}{name}\n";
$c++;
}
print "Found $c issues\n";
}
{
my $c = 0;
foreach my $bib (sort(keys(%old))) {
next if (!defined $new{$bib});
next if ($old{$bib}{a2} eq $new{$bib}{a2} &&
$old{$bib}{bib} eq $new{$bib}{bib} &&
$old{$bib}{term} eq $new{$bib}{term} &&
$old{$bib}{name} eq $new{$bib}{name});
print "In old: $old{$bib}{a2}\t$old{$bib}{bib}\t$old{$bib}{term}\t$old{$bib}{name}\n";
print "In new: $new{$bib}{a2}\t$new{$bib}{bib}\t$new{$bib}{term}\t$new{$bib}{name}\n";
$c++;
}
print "Found $c issues\n";
}
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-bugs
mailing list