Hi all,
as I'm working on Windows and I don't have Microsoft Visual Studio C++ 2008 (VS2008) Standard
Edition compiler, I can't run makefiles.
So I ask you, if somebody can run OpenJDK7\jdk\make\java\nio\Makefile for me, to generate source of
sun.nio.cs.StandardCharsets.java (output of > \jdk\make\java\nio\genCharsetProvider.sh).
Additionally I have modified (see attachment):
OpenJDK7\jdk\make\java\nio\genCharsetProvider.sh
OpenJDK7\jdk\src\share\classes\sun\nio\cs\standard-charsets
Please too run the makefile with my modifications, and send me the resulting output
sun.nio.cs.StandardCharsets.java.
If there are some syntax errors (I'm not familiar with make syntax) in my modified
genCharsetProvider.sh, please try to correct them.
Thanks in advance for your investigation,
-Ulf
P.S.: please send your answer via the mailing list, so nobody would do the work
twice.
#! /bin/sh
#
# Copyright 2004-2008 Sun Microsystems, Inc. All Rights Reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License version 2 only, as
# published by the Free Software Foundation. Sun designates this
# particular file as subject to the "Classpath" exception as provided
# by Sun in the LICENSE file that accompanied this code.
#
# This code is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
# version 2 for more details (a copy is included in the LICENSE file that
# accompanied this code).
#
# You should have received a copy of the GNU General Public License version
# 2 along with this work; if not, write to the Free Software Foundation,
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
# CA 95054 USA or visit www.sun.com if you need additional information or
# have any questions.
#
# Generate a charset provider class
# Required environment variables
# NAWK awk tool
# TEMPDIR temporary directory
# HASHER Hasher program
SPEC=$1; shift
DST=$1; shift
eval `$NAWK <$SPEC '
/^[ \t]*copyright / { printf "COPYRIGHT_YEARS=%s\n", $2; }
/^[ \t]*package / { printf "PKG=%s\n", $2; }
/^[ \t]*class / { printf "CLASS=%s\n", $2; }
'`
OUT=$DST/$CLASS.java
echo '-->' $OUT
# Header
#
$SH ./addNotices.sh "$COPYRIGHT_YEARS" > $OUT
cat <<__END__ >>$OUT
// -- This file was mechanically generated: Do not edit! -- //
package $PKG;
import java.nio.charset.*;
public class $CLASS
extends FastCharsetProvider
{
__END__
# Alias tables
#
$NAWK <$SPEC >>$OUT '
printAliasesArray = false;
BEGIN { n = 1; m = 1; }
/^[ \t]*charset / {
csn = $2; cln = $3;
lcsn = tolower(csn);
lcsns[n++] = lcsn;
csns[lcsn] = csn;
if (cln.equals("%S"))
cache[lcsn] = SINGLE_BYTE_CLN;
else
cache[lcsn] = cln;
if (printAliasesArray)
printf " };\n\n";
printAliasesArray = cln.indexOf(\'%\') != 0;
if (printAliasesArray)
printf " static final String[] aliases_%s = new String[] {\n", cln;
}
/^[ \t]*alias / {
acsns[m++] = tolower($2);
lowCanonicalMap[tolower($2)] = lcsn;
if (printAliasesArray)
printf " \"%s\",\n", $2;
}
END {
if (printAliasesArray)
printf " };\n\n";
}
'
# Prehashed alias and class maps
#
$NAWK <$SPEC >$TEMPDIR/aliases '
/^[ \t]*charset / {
csn = $2;
lcsn = tolower(csn);
}
/^[ \t]*alias / {
an = tolower($2);
printf "%-20s \"%s\"\n", an, lcsn;
}
'
$NAWK <$SPEC >$TEMPDIR/classes '
/^[ \t]*charset / {
csn = $2; cln = $3;
lcsn = tolower(csn);
if (cln.equals("%S"))
printf "%-20s SINGLE_BYTE_CLN\n", lcsn;
else
printf "%-20s \"%s\"\n", lcsn, cln;
}
'
${HASHER} -i Aliases <$TEMPDIR/aliases >>$OUT
${HASHER} -i Classes <$TEMPDIR/classes >>$OUT
# Constructor
#
cat <<__END__ >>$OUT
public $CLASS() {
super("$PKG", new Aliases(), new Classes());
}
}
__END__
# @(#)standard-charsets 1.30 06/01/20
#
# Contributors: Ulf Zibis, Germany, Ulf.Zibis @ CoSoCo.de
# Standard charsets provided by StandardCharsets provider.
#
# Note that these "standard" charsets listed here are not
# necessary to be the "Standard charsets" defined in the
# specification of java.nio.charset.Charset. Instead these
# are the charsets that this implementation believes should
# be packaged into the charsets provider class "StandardCharsets"
# which is initialized at startup time by java.nio.charset.Charset,
# compared to the charsets packaged in "ExtendedCharsets" provider,
# which is lazy initialized.
# After keyword 'charset' first the canonical name is listed, followed
# by the class name. %S is abreviation for SingleByteCharset.
package sun.nio.cs
class StandardCharsets
id 1.30
date 06/01/20
charset US-ASCII %S
historicalName ASCII
# IANA aliases
alias iso-ir-6
alias ANSI_X3.4-1986
alias ISO_646.irv:1991
alias ASCII
alias ISO646-US
alias us
alias IBM367
alias cp367
alias csASCII
alias default
# Other aliases
alias 646 # Solaris POSIX locale
alias iso_646.irv:1983
alias ANSI_X3.4-1968 # Linux POSIX locale (RedHat)
alias ascii7
charset UTF-8 UTF_8
historicalName UTF8
alias UTF8
alias unicode-1-1-utf-8
charset UTF-16 UTF_16
historicalName UTF-16
alias UTF_16
alias utf16
alias unicode
alias UnicodeBig
charset UTF-16BE UTF_16BE
historicalName UnicodeBigUnmarked
alias UTF_16BE
alias ISO-10646-UCS-2
alias X-UTF-16BE
alias UnicodeBigUnmarked
charset UTF-16LE UTF_16LE
historicalName UnicodeLittleUnmarked
alias UTF_16LE
alias X-UTF-16LE
alias UnicodeLittleUnmarked
charset x-UTF-16LE-BOM UTF_16LE_BOM
historicalName UnicodeLittle
alias UnicodeLittle
charset UTF-32 UTF_32
alias UTF_32
alias UTF32
charset UTF-32LE UTF_32LE
alias UTF_32LE
alias X-UTF-32LE
charset UTF-32BE UTF_32BE
alias UTF_32BE
alias X-UTF-32BE
charset X-UTF-32LE-BOM UTF_32LE_BOM
alias UTF_32LE_BOM
alias UTF-32LE-BOM
charset X-UTF-32BE-BOM UTF_32BE_BOM
alias UTF_32BE_BOM
alias UTF-32BE-BOM
charset ISO-8859-1 %S
historicalName ISO8859_1
# IANA aliases
alias iso-ir-100
alias ISO_8859-1
alias latin1
alias l1
alias IBM819
alias cp819
alias csISOLatin1
# Other aliases
alias 819
alias IBM-819
alias ISO8859_1
alias ISO_8859-1:1987
alias ISO_8859_1
alias 8859_1
alias ISO8859-1
charset ISO-8859-2 %S
historicalName ISO8859_2
alias iso8859_2
alias 8859_2
alias iso-ir-101
alias ISO_8859-2
alias ISO_8859-2:1987
alias ISO8859-2
alias latin2
alias l2
alias ibm912
alias ibm-912
alias cp912
alias 912
alias csISOLatin2
charset ISO-8859-4 %S
historicalName ISO8859_4
alias iso8859_4
alias iso8859-4
alias 8859_4
alias iso-ir-110
alias ISO_8859-4
alias ISO_8859-4:1988
alias latin4
alias l4
alias ibm914
alias ibm-914
alias cp914
alias 914
alias csISOLatin4
charset ISO-8859-5 %S
historicalName ISO8859_5
alias iso8859_5
alias 8859_5
alias iso-ir-144
alias ISO_8859-5
alias ISO_8859-5:1988
alias ISO8859-5
alias cyrillic
alias ibm915
alias ibm-915
alias cp915
alias 915
alias csISOLatinCyrillic
charset ISO-8859-7 %S
historicalName ISO8859_7
alias iso8859_7
alias 8859_7
alias iso-ir-126
alias ISO_8859-7
alias ISO_8859-7:1987
alias ELOT_928
alias ECMA-118
alias greek
alias greek8
alias csISOLatinGreek
alias sun_eu_greek # Solaris 7/8 compatibility
alias ibm813
alias ibm-813
alias 813
alias cp813
alias iso8859-7 # Solaris 9 compatibility
charset ISO-8859-9 %S
historicalName ISO8859_9
alias iso8859_9
alias 8859_9
alias iso-ir-148
alias ISO_8859-9
alias ISO_8859-9:1989
alias ISO8859-9
alias latin5
alias l5
alias ibm920
alias ibm-920
alias 920
alias cp920
alias csISOLatin5
charset ISO-8859-13 %S
historicalName ISO8859_13
alias iso8859_13
alias 8859_13
alias iso_8859-13
alias ISO8859-13
charset ISO-8859-15 %S
historicalName ISO8859_15
# IANA alias
alias ISO_8859-15
# Other aliases
alias 8859_15
alias ISO8859_15
alias ISO8859-15
alias IBM923
alias IBM-923
alias cp923
alias 923
alias LATIN0
alias LATIN9
alias L9
alias csISOlatin0
alias csISOlatin9
alias ISO8859_15_FDIS
charset KOI8-R %S
historicalName KOI8_R
alias koi8_r
alias koi8
alias cskoi8r
charset KOI8-U %S
alias koi8_u
charset windows-1250 %S
historicalName Cp1250
alias cp1250
alias cp5346 # Euro IBM CCSID
charset windows-1251 %S
historicalName Cp1251
alias cp1251
alias cp5347 # Euro IBM CCSID
alias ansi-1251 # Solaris compatibility
charset windows-1252 %S
historicalName Cp1252
alias cp1252
alias cp5348 # Euro IBM CCSID
charset windows-1253 %S
historicalName Cp1253
alias cp1253
alias cp5349 # Euro IBM CCSID
charset windows-1254 %S
historicalName Cp1254
alias cp1254
alias cp5350 # Euro IBM CCSID
charset windows-1257 %S
historicalName Cp1257
alias cp1257
alias cp5353 # Euro IBM CCSID
charset IBM437 %S
historicalName Cp437
alias cp437
alias ibm-437
alias 437
alias cspc8codepage437
alias windows-437
charset x-IBM737 %S
historicalName Cp737
alias cp737
alias ibm737
alias ibm-737
alias 737
charset IBM775 %S
historicalName Cp775
alias cp775
alias ibm-775
alias 775
charset IBM850 %S
historicalName Cp850
alias cp850
alias ibm-850
alias 850
alias cspc850multilingual
charset IBM852 %S
historicalName Cp852
alias cp852
alias ibm-852
alias 852
alias csPCp852
charset IBM855 %S
historicalName Cp855
alias cp855
alias ibm-855
alias 855
alias cspcp855
charset IBM857 %S
historicalName Cp857
alias cp857
alias ibm-857
alias 857
alias csIBM857
charset IBM00858 %S
historicalName Cp858
alias cp858
alias ccsid00858
alias cp00858
alias 858
charset IBM862 %S
historicalName Cp862
alias cp862
alias ibm-862
alias 862
alias csIBM862
alias cspc862latinhebrew
charset IBM866 %S
historicalName Cp866
alias cp866
alias ibm-866
alias 866
alias csIBM866
charset x-IBM874 %S
historicalName Cp874
alias cp874
alias ibm874
alias ibm-874
alias 874