encodings.pl: New file.
* scripts/encodings.pl: New file. * Makefile.in: Rebuilt. * Makefile.am (convert_source_files): Added IOConverter.java. * gnu/gcj/convert/UnicodeToBytes.java (UnicodeToBytes): Extend IOConverter. (getDefaultDecodingClass): Canonicalize default encoding name. (getEncoder): Likewise. * gnu/gcj/convert/BytesToUnicode.java (BytesToUnicode): Extend IOConverter. (getDefaultDecodingClass): Canonicalize default encoding name. (getDecoder): Likewise. * gnu/gcj/convert/IOConverter.java: New file. From-SVN: r35432
This commit is contained in:
parent
5f51a7528f
commit
f9427d1704
7 changed files with 186 additions and 30 deletions
62
libjava/scripts/encodings.pl
Normal file
62
libjava/scripts/encodings.pl
Normal file
|
@ -0,0 +1,62 @@
|
|||
# encodings.pl - Download IANA text and compute alias list.
|
||||
# Assumes you are running this program from gnu/gcj/convert/.
|
||||
# Output suitable for direct inclusion in IOConverter.java.
|
||||
|
||||
# Map IANA canonical names onto our canonical names.
|
||||
%map = (
|
||||
'ISO_8859-1:1987' => '8859_1',
|
||||
'UTF-8' => 'UTF8',
|
||||
'Shift_JIS' => 'SJIS',
|
||||
'Extended_UNIX_Code_Packed_Format_for_Japanese' => 'EUCJIS'
|
||||
);
|
||||
|
||||
if ($ARGV[0] eq '')
|
||||
{
|
||||
$file = 'character-sets';
|
||||
if (! -f $file)
|
||||
{
|
||||
# Too painful to figure out how to get Perl to do it.
|
||||
system 'wget -o .wget-log http://www.isi.edu/in-notes/iana/assignments/character-sets';
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$file = $ARGV[0];
|
||||
}
|
||||
|
||||
open (INPUT, "< $file") || die "couldn't open $file: $!";
|
||||
|
||||
$body = 0;
|
||||
$current = '';
|
||||
while (<INPUT>)
|
||||
{
|
||||
chop;
|
||||
$body = 1 if /^Name:/;
|
||||
next unless $body;
|
||||
|
||||
if (/^$/)
|
||||
{
|
||||
$current = '';
|
||||
next;
|
||||
}
|
||||
|
||||
($type, $name) = split (/\s+/);
|
||||
if ($type eq 'Name:')
|
||||
{
|
||||
$current = $map{$name};
|
||||
if ($current)
|
||||
{
|
||||
print " hash.put (\"$name\", \"$current\");\n";
|
||||
}
|
||||
}
|
||||
elsif ($type eq 'Alias:')
|
||||
{
|
||||
# The IANA list has some ugliness.
|
||||
if ($name ne '' && $name ne 'NONE' && $current)
|
||||
{
|
||||
print " hash.put (\"$name\", \"$current\");\n";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
close (INPUT);
|
Loading…
Add table
Add a link
Reference in a new issue