From 65d0fdfa264aefe3cd73493b55afca39b87811be Mon Sep 17 00:00:00 2001 From: tromey Date: Wed, 2 Aug 2000 19:56:53 +0000 Subject: * 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@35432 138bc75d-0d04-0410-961f-82ee72b054a4 --- libjava/scripts/encodings.pl | 62 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 libjava/scripts/encodings.pl (limited to 'libjava/scripts') diff --git a/libjava/scripts/encodings.pl b/libjava/scripts/encodings.pl new file mode 100644 index 00000000000..f2f649959ce --- /dev/null +++ b/libjava/scripts/encodings.pl @@ -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 () +{ + 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); -- cgit v1.2.3