From 9d9f5afb8eae2f5dff7738de075517fd1c90673e Mon Sep 17 00:00:00 2001 From: Andrew Brygin Date: Fri, 25 Jul 2008 14:46:38 +0400 Subject: [PATCH 001/110] 6687968: PNGImageReader leaks native memory through an Inflater Reviewed-by: igor, prr --- .../imageio/plugins/png/PNGImageReader.java | 30 +++++++++++-- .../imageio/plugins/png/PNGImageWriter.java | 43 +++++++++++-------- 2 files changed, 50 insertions(+), 23 deletions(-) diff --git a/jdk/src/share/classes/com/sun/imageio/plugins/png/PNGImageReader.java b/jdk/src/share/classes/com/sun/imageio/plugins/png/PNGImageReader.java index 0f5407075a7..e0a9a92a039 100644 --- a/jdk/src/share/classes/com/sun/imageio/plugins/png/PNGImageReader.java +++ b/jdk/src/share/classes/com/sun/imageio/plugins/png/PNGImageReader.java @@ -616,10 +616,15 @@ public class PNGImageReader extends ImageReader { private static String inflate(byte[] b) throws IOException { InputStream bais = new ByteArrayInputStream(b); InputStream iis = new InflaterInputStream(bais); + StringBuilder sb = new StringBuilder(80); int c; - while ((c = iis.read()) != -1) { - sb.append((char)c); + try { + while ((c = iis.read()) != -1) { + sb.append((char)c); + } + } finally { + iis.close(); } return sb.toString(); } @@ -1244,13 +1249,26 @@ public class PNGImageReader extends ImageReader { destinationBands = param.getDestinationBands(); destinationOffset = param.getDestinationOffset(); } - + Inflater inf = null; try { stream.seek(imageStartPosition); Enumeration e = new PNGImageDataEnumeration(stream); InputStream is = new SequenceInputStream(e); - is = new InflaterInputStream(is, new Inflater()); + + /* InflaterInputStream uses an Inflater instance which consumes + * native (non-GC visible) resources. This is normally implicitly + * freed when the stream is closed. However since the + * InflaterInputStream wraps a client-supplied input stream, + * we cannot close it. + * But the app may depend on GC finalization to close the stream. + * Therefore to ensure timely freeing of native resources we + * explicitly create the Inflater instance and free its resources + * when we are done with the InflaterInputStream by calling + * inf.end(); + */ + inf = new Inflater(); + is = new InflaterInputStream(is, inf); is = new BufferedInputStream(is); this.pixelStream = new DataInputStream(is); @@ -1283,6 +1301,10 @@ public class PNGImageReader extends ImageReader { } } catch (IOException e) { throw new IIOException("Error reading PNG image data", e); + } finally { + if (inf != null) { + inf.end(); + } } } diff --git a/jdk/src/share/classes/com/sun/imageio/plugins/png/PNGImageWriter.java b/jdk/src/share/classes/com/sun/imageio/plugins/png/PNGImageWriter.java index 60db32fa10e..b4849e8aa4c 100644 --- a/jdk/src/share/classes/com/sun/imageio/plugins/png/PNGImageWriter.java +++ b/jdk/src/share/classes/com/sun/imageio/plugins/png/PNGImageWriter.java @@ -244,13 +244,17 @@ final class IDATOutputStream extends ImageOutputStreamImpl { } public void finish() throws IOException { - if (!def.finished()) { - def.finish(); - while (!def.finished()) { - deflate(); + try { + if (!def.finished()) { + def.finish(); + while (!def.finished()) { + deflate(); + } } + finishChunk(); + } finally { + def.end(); } - finishChunk(); } protected void finalize() throws Throwable { @@ -928,23 +932,24 @@ public class PNGImageWriter extends ImageWriter { // Use sourceXOffset, etc. private void write_IDAT(RenderedImage image) throws IOException { IDATOutputStream ios = new IDATOutputStream(stream, 32768); - - if (metadata.IHDR_interlaceMethod == 1) { - for (int i = 0; i < 7; i++) { - encodePass(ios, image, - PNGImageReader.adam7XOffset[i], - PNGImageReader.adam7YOffset[i], - PNGImageReader.adam7XSubsampling[i], - PNGImageReader.adam7YSubsampling[i]); - if (abortRequested()) { - break; + try { + if (metadata.IHDR_interlaceMethod == 1) { + for (int i = 0; i < 7; i++) { + encodePass(ios, image, + PNGImageReader.adam7XOffset[i], + PNGImageReader.adam7YOffset[i], + PNGImageReader.adam7XSubsampling[i], + PNGImageReader.adam7YSubsampling[i]); + if (abortRequested()) { + break; + } } + } else { + encodePass(ios, image, 0, 0, 1, 1); } - } else { - encodePass(ios, image, 0, 0, 1, 1); + } finally { + ios.finish(); } - - ios.finish(); } private void writeIEND() throws IOException { From 609c288c72c308128ad1c9873fb000c399179c46 Mon Sep 17 00:00:00 2001 From: Igor Nekrestyanov Date: Mon, 4 Aug 2008 18:50:43 +0400 Subject: [PATCH 002/110] 4356282: RFE: T2K should be used to rasterize CID/CFF fonts Reviewed-by: bae, prr --- .../share/classes/sun/font/FontManager.java | 2 +- .../share/classes/sun/font/TrueTypeFont.java | 2 + .../sun/java2d/SunGraphicsEnvironment.java | 34 +++--------- jdk/src/windows/native/sun/font/fontpath.c | 54 +++++++++++-------- 4 files changed, 42 insertions(+), 50 deletions(-) diff --git a/jdk/src/share/classes/sun/font/FontManager.java b/jdk/src/share/classes/sun/font/FontManager.java index a9a7257e42a..8a0ee3fdd8d 100644 --- a/jdk/src/share/classes/sun/font/FontManager.java +++ b/jdk/src/share/classes/sun/font/FontManager.java @@ -3344,7 +3344,7 @@ public final class FontManager { int fontFormat = FONTFORMAT_NONE; int fontRank = Font2D.UNKNOWN_RANK; - if (ext.equals(".ttf") || isTTC) { + if (ext.equals(".ttf") || ext.equals(".otf") || isTTC) { fontFormat = FONTFORMAT_TRUETYPE; fontRank = Font2D.TTF_RANK; } else if (ext.equals(".pfa") || ext.equals(".pfb")) { diff --git a/jdk/src/share/classes/sun/font/TrueTypeFont.java b/jdk/src/share/classes/sun/font/TrueTypeFont.java index 8a8309efab4..0edd04162a5 100644 --- a/jdk/src/share/classes/sun/font/TrueTypeFont.java +++ b/jdk/src/share/classes/sun/font/TrueTypeFont.java @@ -90,6 +90,7 @@ public class TrueTypeFont extends FileFont { public static final int ttcfTag = 0x74746366; // 'ttcf' - TTC file public static final int v1ttTag = 0x00010000; // 'v1tt' - Version 1 TT font public static final int trueTag = 0x74727565; // 'true' - Version 2 TT font + public static final int ottoTag = 0x4f54544f; // 'otto' - OpenType font /* -- ID's used in the 'name' table */ public static final int MS_PLATFORM_ID = 3; @@ -490,6 +491,7 @@ public class TrueTypeFont extends FileFont { case v1ttTag: case trueTag: + case ottoTag: break; default: diff --git a/jdk/src/share/classes/sun/java2d/SunGraphicsEnvironment.java b/jdk/src/share/classes/sun/java2d/SunGraphicsEnvironment.java index e0e03d36a2a..95b79e6e273 100644 --- a/jdk/src/share/classes/sun/java2d/SunGraphicsEnvironment.java +++ b/jdk/src/share/classes/sun/java2d/SunGraphicsEnvironment.java @@ -812,7 +812,9 @@ public abstract class SunGraphicsEnvironment extends GraphicsEnvironment return(name.startsWith(".ttf", offset) || name.startsWith(".TTF", offset) || name.startsWith(".ttc", offset) || - name.startsWith(".TTC", offset)); + name.startsWith(".TTC", offset) || + name.startsWith(".otf", offset) || + name.startsWith(".OTF", offset)); } } } @@ -835,31 +837,11 @@ public abstract class SunGraphicsEnvironment extends GraphicsEnvironment } } - public static class TTorT1Filter implements FilenameFilter { - public boolean accept(File dir, String name) { - - /* all conveniently have the same suffix length */ - int offset = name.length()-4; - if (offset <= 0) { /* must be at least A.ttf or A.pfa */ - return false; - } else { - boolean isTT = - name.startsWith(".ttf", offset) || - name.startsWith(".TTF", offset) || - name.startsWith(".ttc", offset) || - name.startsWith(".TTC", offset); - if (isTT) { - return true; - } else if (noType1Font) { - return false; - } else { - return(name.startsWith(".pfa", offset) || - name.startsWith(".pfb", offset) || - name.startsWith(".PFA", offset) || - name.startsWith(".PFB", offset)); - } - } - } + public static class TTorT1Filter implements FilenameFilter { + public boolean accept(File dir, String name) { + return SunGraphicsEnvironment.ttFilter.accept(dir, name) || + SunGraphicsEnvironment.t1Filter.accept(dir, name); + } } /* No need to keep consing up new instances - reuse a singleton. diff --git a/jdk/src/windows/native/sun/font/fontpath.c b/jdk/src/windows/native/sun/font/fontpath.c index 71b1da85f17..2fd3c3af9be 100644 --- a/jdk/src/windows/native/sun/font/fontpath.c +++ b/jdk/src/windows/native/sun/font/fontpath.c @@ -153,7 +153,8 @@ static int CALLBACK EnumFontFacesInFamilyProcA( JNIEnv *env = fmi->env; jstring fullname, fullnameLC; - if (FontType != TRUETYPE_FONTTYPE) { + /* Both Vista and XP return DEVICE_FONTTYPE for OTF fonts */ + if (FontType != TRUETYPE_FONTTYPE && FontType != DEVICE_FONTTYPE) { return 1; } @@ -227,7 +228,8 @@ static int CALLBACK EnumFontFacesInFamilyProcW( JNIEnv *env = fmi->env; jstring fullname, fullnameLC; - if (FontType != TRUETYPE_FONTTYPE) { + /* Both Vista and XP return DEVICE_FONTTYPE for OTF fonts */ + if (FontType != TRUETYPE_FONTTYPE && FontType != DEVICE_FONTTYPE) { return 1; } @@ -274,7 +276,8 @@ static int CALLBACK EnumFamilyNamesA( jstring familyLC; LOGFONTA lfa; - if (FontType != TRUETYPE_FONTTYPE) { + /* Both Vista and XP return DEVICE_FONTTYPE for OTF fonts */ + if (FontType != TRUETYPE_FONTTYPE && FontType != DEVICE_FONTTYPE) { return 1; } @@ -323,7 +326,8 @@ static int CALLBACK EnumFamilyNamesW( int slen; LOGFONTW lfw; - if (FontType != TRUETYPE_FONTTYPE) { + /* Both Vista and XP return DEVICE_FONTTYPE for OTF fonts */ + if (FontType != TRUETYPE_FONTTYPE && FontType != DEVICE_FONTTYPE) { return 1; } /* wprintf(L"FAMILY=%s charset=%d FULL=%s\n", */ @@ -383,15 +387,16 @@ static int CALLBACK EnumFamilyNamesW( * Also if a Font has a name for this locale that name also * exists in the registry using the appropriate platform encoding. * What do we do then? + * + * Note: OpenType fonts seems to have " (TrueType)" suffix on Vista + * but " (OpenType)" on XP. */ -/* static const wchar_t W_TTSUFFIX[] = L" (TrueType)"; */ -/* static const char C_TTSUFFIX[] = " (TrueType)"; */ -/* static int TTSLEN = 11; hard-coded - be careful */ -static BOOL RegistryToBaseTTNameA(LPCSTR name) { +static BOOL RegistryToBaseTTNameA(LPSTR name) { static const char TTSUFFIX[] = " (TrueType)"; + static const char OTSUFFIX[] = " (OpenType)"; int TTSLEN = strlen(TTSUFFIX); - char *match; + char *suffix; int len = strlen(name); if (len == 0) { @@ -403,19 +408,21 @@ static BOOL RegistryToBaseTTNameA(LPCSTR name) { if (len <= TTSLEN) { return FALSE; } - match = strstr(name, TTSUFFIX); - if ((match != NULL) && (match == name+(len-TTSLEN))) { - match[0] = '\0'; /* truncate name */ + + /* suffix length is the same for truetype and opentype fonts */ + suffix = name + len - TTSLEN; + if (strcmp(suffix, TTSUFFIX) == 0 || strcmp(suffix, OTSUFFIX) == 0) { + suffix[0] = '\0'; /* truncate name */ return TRUE; - } else { - return FALSE; } + return FALSE; } static BOOL RegistryToBaseTTNameW(LPWSTR name) { static const wchar_t TTSUFFIX[] = L" (TrueType)"; + static const wchar_t OTSUFFIX[] = L" (OpenType)"; int TTSLEN = wcslen(TTSUFFIX); - wchar_t *match; + wchar_t *suffix; int len = wcslen(name); if (len == 0) { @@ -427,13 +434,13 @@ static BOOL RegistryToBaseTTNameW(LPWSTR name) { if (len <= TTSLEN) { return FALSE; } - match = wcsstr(name, TTSUFFIX); - if ((match != NULL) && (match == name+(len-TTSLEN))) { - match[0] = L'\0'; /* truncate name */ + /* suffix length is the same for truetype and opentype fonts */ + suffix = name + (len - TTSLEN); + if (wcscmp(suffix, TTSUFFIX) == 0 || wcscmp(suffix, OTSUFFIX) == 0) { + suffix[0] = L'\0'; /* truncate name */ return TRUE; - } else { - return FALSE; } + return FALSE; } static void registerFontA(GdiFontMapInfo *fmi, jobject fontToFileMap, @@ -675,18 +682,19 @@ Java_sun_font_FontManager_populateFontFileNameMap } if (IS_NT) { if (!RegistryToBaseTTNameW((LPWSTR)wname) ) { - /* If the filename ends with ".ttf" also accept it. + /* If the filename ends with ".ttf" or ".otf" also accept it. * Not expecting to need to do this for .ttc files. * Also note this code is not mirrored in the "A" (win9x) path. */ LPWSTR dot = wcsrchr((LPWSTR)data, L'.'); - if (dot == NULL || (wcsicmp(dot, L".ttf") != 0)) { + if (dot == NULL || ((wcsicmp(dot, L".ttf") != 0) + && (wcsicmp(dot, L".otf") != 0))) { continue; /* not a TT font... */ } } registerFontW(&fmi, fontToFileMap, (LPWSTR)wname, (LPWSTR)data); } else { - if (!RegistryToBaseTTNameA(cname) ) { + if (!RegistryToBaseTTNameA((LPSTR)cname)) { continue; /* not a TT font... */ } registerFontA(&fmi, fontToFileMap, cname, (LPCSTR)data); From c2fe3112f6c4d18cc49a35ea7fb719bed5683b7f Mon Sep 17 00:00:00 2001 From: Dmitri Trembovetski Date: Mon, 4 Aug 2008 11:29:28 -0700 Subject: [PATCH 003/110] 6728834: D3D/OGL: LCD AA text becomes bold and blurred when rendering to a non-opaque destination Reviewed-by: campbell --- .../sun/java2d/opengl/OGLSurfaceData.java | 4 +- .../sun/java2d/d3d/D3DSurfaceData.java | 4 +- .../NonOpaqueDestLCDAATest.java | 174 ++++++++++++++++++ 3 files changed, 180 insertions(+), 2 deletions(-) create mode 100644 jdk/test/sun/java2d/DirectX/NonOpaqueDestLCDAATest/NonOpaqueDestLCDAATest.java diff --git a/jdk/src/share/classes/sun/java2d/opengl/OGLSurfaceData.java b/jdk/src/share/classes/sun/java2d/opengl/OGLSurfaceData.java index 78f16f7dcca..ceafbe3fb74 100644 --- a/jdk/src/share/classes/sun/java2d/opengl/OGLSurfaceData.java +++ b/jdk/src/share/classes/sun/java2d/opengl/OGLSurfaceData.java @@ -401,6 +401,7 @@ public abstract class OGLSurfaceData extends SurfaceData * - the fragment shader extension is available, and * - blending is disabled, and * - the source color is opaque + * - and the destination is opaque * * Eventually, we could enhance the native OGL text rendering code * and remove the above restrictions, but that would require significantly @@ -410,7 +411,8 @@ public abstract class OGLSurfaceData extends SurfaceData return graphicsConfig.isCapPresent(CAPS_EXT_LCD_SHADER) && sg2d.compositeState <= SunGraphics2D.COMP_ISCOPY && - sg2d.paintState <= SunGraphics2D.PAINT_OPAQUECOLOR; + sg2d.paintState <= SunGraphics2D.PAINT_OPAQUECOLOR && + sg2d.surfaceData.getTransparency() == Transparency.OPAQUE; } public void validatePipe(SunGraphics2D sg2d) { diff --git a/jdk/src/windows/classes/sun/java2d/d3d/D3DSurfaceData.java b/jdk/src/windows/classes/sun/java2d/d3d/D3DSurfaceData.java index 3d1457c721f..18f049f2de5 100644 --- a/jdk/src/windows/classes/sun/java2d/d3d/D3DSurfaceData.java +++ b/jdk/src/windows/classes/sun/java2d/d3d/D3DSurfaceData.java @@ -501,12 +501,14 @@ public class D3DSurfaceData extends SurfaceData implements AccelSurface { * - the pixel shaders are available, and * - blending is disabled, and * - the source color is opaque + * - and the destination is opaque */ public boolean canRenderLCDText(SunGraphics2D sg2d) { return graphicsDevice.isCapPresent(CAPS_LCD_SHADER) && sg2d.compositeState <= SunGraphics2D.COMP_ISCOPY && - sg2d.paintState <= SunGraphics2D.PAINT_OPAQUECOLOR; + sg2d.paintState <= SunGraphics2D.PAINT_OPAQUECOLOR && + sg2d.surfaceData.getTransparency() == Transparency.OPAQUE; } public void validatePipe(SunGraphics2D sg2d) { diff --git a/jdk/test/sun/java2d/DirectX/NonOpaqueDestLCDAATest/NonOpaqueDestLCDAATest.java b/jdk/test/sun/java2d/DirectX/NonOpaqueDestLCDAATest/NonOpaqueDestLCDAATest.java new file mode 100644 index 00000000000..116c91e95ec --- /dev/null +++ b/jdk/test/sun/java2d/DirectX/NonOpaqueDestLCDAATest/NonOpaqueDestLCDAATest.java @@ -0,0 +1,174 @@ +/* + * Copyright 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. + * + * 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. + */ + +/* + * @test + * @bug 6728834 + * @summary Tests that LCD AA text rendering works properly with destinations + * being VolatileImage of all transparency types + * @author Dmitri.Trembovetski: area=Graphics + * @run main/manual/othervm NonOpaqueDestLCDAATest + * @run main/manual/othervm -Dsun.java2d.opengl=True NonOpaqueDestLCDAATest + */ + +import java.awt.AlphaComposite; +import java.awt.Color; +import java.awt.Dimension; +import java.awt.EventQueue; +import java.awt.Graphics; +import java.awt.Graphics2D; +import java.awt.GraphicsConfiguration; +import java.awt.RenderingHints; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.awt.event.ComponentAdapter; +import java.awt.event.ComponentEvent; +import java.awt.event.WindowAdapter; +import java.awt.event.WindowEvent; +import java.awt.image.VolatileImage; +import java.io.File; +import java.util.concurrent.CountDownLatch; +import javax.imageio.ImageIO; +import javax.swing.JButton; +import javax.swing.JFrame; +import javax.swing.JPanel; +import javax.swing.JTextArea; +import static java.awt.Transparency.*; + +public class NonOpaqueDestLCDAATest extends JFrame implements ActionListener { + private static volatile boolean passed = true; + private static CountDownLatch complete = new CountDownLatch(1); + + public NonOpaqueDestLCDAATest() { + JTextArea desc = new JTextArea(); + desc.setText( + "\n Instructions: the three text strings below should appear\n" + + " readable, without smudges or misshapen bold glyphs.\n\n" + + " If they look fine the test PASSED otherwise it FAILED.\n"); + desc.setEditable(false); + desc.setBackground(Color.black); + desc.setForeground(Color.green); + add("North", desc); + JPanel renderPanel = new JPanel() { + public void paintComponent(Graphics g) { + render(g, getWidth(), getHeight()); + } + }; + renderPanel.setPreferredSize(new Dimension(350, 150)); + renderPanel.addComponentListener(new ComponentAdapter() { + public void componentResized(ComponentEvent e) { + images = null; + } + }); + add("Center", renderPanel); + + JButton passed = new JButton("Passed"); + JButton failed = new JButton("Failed"); + passed.addActionListener(this); + failed.addActionListener(this); + JPanel p = new JPanel(); + p.add(passed); + p.add(failed); + add("South", p); + addWindowListener(new WindowAdapter() { + public void windowClosing(WindowEvent e) { + complete.countDown(); + } + }); + setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); + } + + public void render(Graphics g, int w, int h) { + initImages(w, h); + + Graphics2D g2d = (Graphics2D) g.create(); + for (VolatileImage vi : images) { + g2d.drawImage(vi, 0, 0, null); + g2d.translate(0, vi.getHeight()); + } + } + + String tr[] = { "OPAQUE", "BITMASK", "TRANSLUCENT" }; + public void actionPerformed(ActionEvent e) { + if (e.getActionCommand().equals("Passed")) { + passed = true; + System.out.println("Test Passed"); + } else if (e.getActionCommand().equals("Failed")) { + System.out.println("Test Failed"); + for (int i = 0; i < images.length; i++) { + String f = "NonOpaqueDestLCDAATest_"+tr[i]+".png"; + try { + ImageIO.write(images[i].getSnapshot(), "png", new File(f)); + System.out.printf("Dumped %s image to %s\n", tr[i], f); + } catch (Throwable t) {} + } + passed = false; + } + dispose(); + complete.countDown(); + } + + static void clear(Graphics2D g, int w, int h) { + Graphics2D gg = (Graphics2D) g.create(); + gg.setColor(new Color(0, 0, 0, 0)); + gg.setComposite(AlphaComposite.Src); + gg.fillRect(0, 0, w, h); + } + + VolatileImage images[]; + private void initImages(int w, int h) { + if (images == null) { + images = new VolatileImage[3]; + GraphicsConfiguration gc = getGraphicsConfiguration(); + for (int i = OPAQUE; i <= TRANSLUCENT; i++) { + VolatileImage vi = + gc.createCompatibleVolatileImage(w,h/3,i); + images[i-1] = vi; + vi.validate(gc); + Graphics2D g2d = (Graphics2D) vi.getGraphics(); + if (i > OPAQUE) { + clear(g2d, vi.getWidth(), vi.getHeight()); + } + g2d.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, + RenderingHints.VALUE_TEXT_ANTIALIAS_LCD_HRGB); + String s = "LCD AA Text rendered to "+tr[i-1]+ " destination"; + g2d.drawString(s, 10, vi.getHeight()/2); + } + } + } + + public static void main(String[] args) throws InterruptedException { + EventQueue.invokeLater(new Runnable() { + public void run() { + NonOpaqueDestLCDAATest t = new NonOpaqueDestLCDAATest(); + t.pack(); + t.setVisible(true); + } + }); + + complete.await(); + if (!passed) { + throw new RuntimeException("Test Failed!"); + } + } +} From 449d7efefda9d7bc80922168624f4a9bd1965be4 Mon Sep 17 00:00:00 2001 From: Dmitri Trembovetski Date: Mon, 4 Aug 2008 11:31:46 -0700 Subject: [PATCH 004/110] 6717988: D3D: rendering problems with JConsole on [Nvidia FX 5200] Reviewed-by: campbell --- jdk/src/windows/native/sun/java2d/d3d/D3DBadHardware.h | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/jdk/src/windows/native/sun/java2d/d3d/D3DBadHardware.h b/jdk/src/windows/native/sun/java2d/d3d/D3DBadHardware.h index 52629d1a5d0..19b235e656e 100644 --- a/jdk/src/windows/native/sun/java2d/d3d/D3DBadHardware.h +++ b/jdk/src/windows/native/sun/java2d/d3d/D3DBadHardware.h @@ -85,6 +85,15 @@ static const ADAPTER_INFO badHardware[] = { { 0x1002, 0x71C5, D_VERSION(6,14,10,6706), OS_WINXP }, { 0x1002, 0x71C5, D_VERSION(7,14,10,0567), OS_VISTA }, + // Nvidia FX 5200 + // Reason: workaround for 6717988 + { 0x10DE, 0x0322, D_VERSION(6,14,11,6921), OS_WINXP }, + + // Nvidia FX Go5600, Go5700 + // Reason: workaround for 6714579 + { 0x10DE, 0x031A, D_VERSION(6,14,11,6921), OS_WINXP }, + { 0x10DE, 0x0347, D_VERSION(6,14,11,6921), OS_WINXP }, + // Nvidia Quadro NVS 110M // Reason: workaround for 6629891 { 0x10DE, 0x01D7, D_VERSION(6,14,11,5665), OS_WINXP }, From 0c7e3a5aafa9791c71efba1e41b7871d8a996d3e Mon Sep 17 00:00:00 2001 From: Dmitri Trembovetski Date: Tue, 5 Aug 2008 09:37:03 -0700 Subject: [PATCH 005/110] 6733718: test /java/awt/FullScreen/UninitializedDisplayModeChangeTest/ fails Reviewed-by: igor --- .../DisplayModeChanger.java | 93 +++++++++++++++++++ 1 file changed, 93 insertions(+) create mode 100644 jdk/test/java/awt/FullScreen/UninitializedDisplayModeChangeTest/DisplayModeChanger.java diff --git a/jdk/test/java/awt/FullScreen/UninitializedDisplayModeChangeTest/DisplayModeChanger.java b/jdk/test/java/awt/FullScreen/UninitializedDisplayModeChangeTest/DisplayModeChanger.java new file mode 100644 index 00000000000..e73457f128d --- /dev/null +++ b/jdk/test/java/awt/FullScreen/UninitializedDisplayModeChangeTest/DisplayModeChanger.java @@ -0,0 +1,93 @@ +/* + * Copyright 2006-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. + * + * 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. + */ + +import java.awt.DisplayMode; +import java.awt.EventQueue; +import java.awt.Frame; +import java.awt.GraphicsDevice; +import java.awt.GraphicsEnvironment; +import java.lang.reflect.InvocationTargetException; + +/** + * Used by the UninitializedDisplayModeChangeTest to change the + * display mode. + */ +public class DisplayModeChanger { + + public static void main(String[] args) + throws InterruptedException, InvocationTargetException + { + final GraphicsDevice gd = + GraphicsEnvironment.getLocalGraphicsEnvironment(). + getDefaultScreenDevice(); + + EventQueue.invokeAndWait(new Runnable() { + public void run() { + Frame f = null; + if (gd.isFullScreenSupported()) { + try { + f = new Frame("DisplayChanger Frame"); + gd.setFullScreenWindow(f); + if (gd.isDisplayChangeSupported()) { + DisplayMode dm = findDisplayMode(gd); + if (gd != null) { + gd.setDisplayMode(dm); + } + } + try { + Thread.sleep(1000); + } catch (InterruptedException ex) { + ex.printStackTrace(); + } + gd.setFullScreenWindow(null); + } finally { + if (f != null) { + f.dispose(); + } + } + } + } + }); + } + + /** + * Finds a display mode that is different from the current display + * mode and is likely to cause a display change event. + */ + private static DisplayMode findDisplayMode(GraphicsDevice gd) { + DisplayMode dms[] = gd.getDisplayModes(); + DisplayMode currentDM = gd.getDisplayMode(); + for (DisplayMode dm : dms) { + if (!dm.equals(currentDM) && + dm.getRefreshRate() == currentDM.getRefreshRate()) + { + // different from the current dm and refresh rate is the same + // means that something else is different => more likely to + // cause a DM change event + return dm; + } + } + return null; + } + +} From 3630a38b8fc588633b85753d4ab33574c439e976 Mon Sep 17 00:00:00 2001 From: Jennifer Godinez Date: Thu, 7 Aug 2008 11:19:06 -0700 Subject: [PATCH 006/110] 6731937: javax/print/CheckDupFlavor.java fails Reviewed-by: campbell, tdv --- .../classes/sun/print/IPPPrintService.java | 36 ++++------ jdk/test/javax/print/CheckDupFlavor.java | 67 +++++++++++++++++++ 2 files changed, 81 insertions(+), 22 deletions(-) create mode 100644 jdk/test/javax/print/CheckDupFlavor.java diff --git a/jdk/src/solaris/classes/sun/print/IPPPrintService.java b/jdk/src/solaris/classes/sun/print/IPPPrintService.java index 6dbb8131ca9..35f4b80b45a 100644 --- a/jdk/src/solaris/classes/sun/print/IPPPrintService.java +++ b/jdk/src/solaris/classes/sun/print/IPPPrintService.java @@ -57,6 +57,7 @@ import java.io.InputStreamReader; import java.nio.charset.Charset; import java.util.Iterator; +import java.util.HashSet; public class IPPPrintService implements PrintService, SunPrinterJobService { @@ -822,7 +823,7 @@ public class IPPPrintService implements PrintService, SunPrinterJobService { boolean psSupported = false; String[] docFlavors = attribClass.getArrayOfStringValues(); DocFlavor[] flavors; - ArrayList docList = new ArrayList(); + HashSet docList = new HashSet(); int j; String hostEnc = DocFlavor.hostEncoding. toLowerCase(Locale.ENGLISH); @@ -839,18 +840,6 @@ public class IPPPrintService implements PrintService, SunPrinterJobService { docList.addAll(Arrays.asList(flavors)); - if (isCupsPrinter) { - /* - Always add Pageable and Printable for CUPS - since it uses Filters to convert from Postscript - to device printer language. - */ - docList.add( - DocFlavor.SERVICE_FORMATTED.PAGEABLE); - docList.add( - DocFlavor.SERVICE_FORMATTED.PRINTABLE); - } - if (mimeType.equals("text/plain") && addHostEncoding) { docList.add(Arrays.asList(textPlainHost)); @@ -880,16 +869,19 @@ public class IPPPrintService implements PrintService, SunPrinterJobService { } // check if we need to add image DocFlavors + // and Pageable/Printable flavors if (psSupported || isCupsPrinter) { - if (!jpgImagesAdded) { - docList.addAll(Arrays.asList(imageJPG)); - } - if (!pngImagesAdded) { - docList.addAll(Arrays.asList(imagePNG)); - } - if (!gifImagesAdded) { - docList.addAll(Arrays.asList(imageGIF)); - } + /* + Always add Pageable and Printable for CUPS + since it uses Filters to convert from Postscript + to device printer language. + */ + docList.add(DocFlavor.SERVICE_FORMATTED.PAGEABLE); + docList.add(DocFlavor.SERVICE_FORMATTED.PRINTABLE); + + docList.addAll(Arrays.asList(imageJPG)); + docList.addAll(Arrays.asList(imagePNG)); + docList.addAll(Arrays.asList(imageGIF)); } supportedDocFlavors = new DocFlavor[docList.size()]; docList.toArray(supportedDocFlavors); diff --git a/jdk/test/javax/print/CheckDupFlavor.java b/jdk/test/javax/print/CheckDupFlavor.java new file mode 100644 index 00000000000..5317e503918 --- /dev/null +++ b/jdk/test/javax/print/CheckDupFlavor.java @@ -0,0 +1,67 @@ +/* + * 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. + * + * 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. + */ + +/* + * @test + * @bug 4996318 6731937 + * @summary There should be no duplicates returned by getSupportedDocFlavors. + * @run main CheckDupFlavor + */ +import javax.print.*; +import javax.print.attribute.*; +import javax.print.attribute.standard.*; +import java.util.ArrayList; + + +public class CheckDupFlavor { + public static void main(String[] args){ + PrintService pservice = + PrintServiceLookup.lookupDefaultPrintService(); + + if (pservice == null) { + System.out.println("No default PrintService found. Test ABORTED."); + return; + } + + System.out.println("Default service = "+pservice); + + DocFlavor[] flavors = pservice.getSupportedDocFlavors(); + if (flavors==null) { + System.out.println("No flavors supported. Test PASSED."); + return; + } + + + ArrayList flavorList = new ArrayList(); + for (int i=0; i Date: Tue, 19 Aug 2008 16:04:06 -0700 Subject: [PATCH 007/110] 6731826: race condition in UnixPrintServiceLookup Reviewed-by: campbell, tdv --- .../classes/sun/print/IPPPrintService.java | 6 ++- jdk/test/javax/print/TestRaceCond.java | 53 +++++++++++++++++++ 2 files changed, 58 insertions(+), 1 deletion(-) create mode 100644 jdk/test/javax/print/TestRaceCond.java diff --git a/jdk/src/solaris/classes/sun/print/IPPPrintService.java b/jdk/src/solaris/classes/sun/print/IPPPrintService.java index 1fb88adcc82..7a2cfecb08d 100644 --- a/jdk/src/solaris/classes/sun/print/IPPPrintService.java +++ b/jdk/src/solaris/classes/sun/print/IPPPrintService.java @@ -1,5 +1,5 @@ /* - * Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2003-2007 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 @@ -1864,4 +1864,8 @@ public class IPPPrintService implements PrintService, SunPrinterJobService { (obj instanceof IPPPrintService && ((IPPPrintService)obj).getName().equals(getName()))); } + + public int hashCode() { + return this.getClass().hashCode()+getName().hashCode(); + } } diff --git a/jdk/test/javax/print/TestRaceCond.java b/jdk/test/javax/print/TestRaceCond.java new file mode 100644 index 00000000000..9a97a245e56 --- /dev/null +++ b/jdk/test/javax/print/TestRaceCond.java @@ -0,0 +1,53 @@ +/* + * Copyright 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. + * + * 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. + */ + +/* + * @test + * @bug 6731826 + * @summary There should be no RuntimeException. + * @run main TestRaceCond + */ + +import javax.print.PrintService; +import javax.print.PrintServiceLookup; + + +public class TestRaceCond { + + public static void main(String argv[]) { + trial(); + } + + static void trial() { + PrintService pserv1 = PrintServiceLookup.lookupDefaultPrintService(); + PrintService[] pservs = PrintServiceLookup.lookupPrintServices(null, null); + PrintService pserv2 = PrintServiceLookup.lookupDefaultPrintService(); + + if (pserv1.hashCode() != pserv2.hashCode()) { + throw new RuntimeException("Different hashCodes for equal print " + + "services: " + pserv1.hashCode() + " " + + pserv2.hashCode()); + } + } +} + From bef3a59d4cf5ae3793fee13b27536b3b3e2eeaca Mon Sep 17 00:00:00 2001 From: Dmitri Trembovetski Date: Thu, 28 Aug 2008 11:27:14 -0700 Subject: [PATCH 008/110] 6739267: D3D/OGL: add missing ThreeByteBgr to texture upload blit loop Reviewed-by: campbell, flar --- .../sun/java2d/opengl/OGLBlitLoops.java | 12 +- .../sun/java2d/opengl/OGLSurfaceData.java | 1 + .../src/j2dbench/tests/ImageTests.java | 257 ++++++++++++++---- .../native/sun/java2d/opengl/OGLBlitLoops.c | 74 ++++- .../native/sun/java2d/opengl/OGLSurfaceData.c | 3 +- .../classes/sun/java2d/d3d/D3DBlitLoops.java | 8 + .../sun/java2d/d3d/D3DSurfaceData.java | 1 + .../native/sun/java2d/d3d/D3DBlitLoops.cpp | 6 + .../native/sun/java2d/d3d/D3DSurfaceData.h | 1 + 9 files changed, 292 insertions(+), 71 deletions(-) diff --git a/jdk/src/share/classes/sun/java2d/opengl/OGLBlitLoops.java b/jdk/src/share/classes/sun/java2d/opengl/OGLBlitLoops.java index 5be4fec72dd..37dce4264b2 100644 --- a/jdk/src/share/classes/sun/java2d/opengl/OGLBlitLoops.java +++ b/jdk/src/share/classes/sun/java2d/opengl/OGLBlitLoops.java @@ -25,17 +25,13 @@ package sun.java2d.opengl; -import java.awt.AlphaComposite; -import java.awt.Color; import java.awt.Composite; import java.awt.Transparency; import java.awt.geom.AffineTransform; import java.awt.image.AffineTransformOp; import java.awt.image.BufferedImage; import java.awt.image.BufferedImageOp; -import java.awt.image.ColorModel; import java.lang.ref.WeakReference; -import sun.awt.image.BufImgSurfaceData; import sun.java2d.SurfaceData; import sun.java2d.loops.Blit; import sun.java2d.loops.CompositeType; @@ -84,6 +80,8 @@ class OGLBlitLoops { OGLSurfaceData.PF_INT_BGR), new OGLSwToSurfaceBlit(SurfaceType.IntBgrx, OGLSurfaceData.PF_INT_BGRX), + new OGLSwToSurfaceBlit(SurfaceType.ThreeByteBgr, + OGLSurfaceData.PF_3BYTE_BGR), new OGLSwToSurfaceBlit(SurfaceType.Ushort565Rgb, OGLSurfaceData.PF_USHORT_565_RGB), new OGLSwToSurfaceBlit(SurfaceType.Ushort555Rgb, @@ -106,6 +104,8 @@ class OGLBlitLoops { OGLSurfaceData.PF_INT_BGR), new OGLSwToSurfaceScale(SurfaceType.IntBgrx, OGLSurfaceData.PF_INT_BGRX), + new OGLSwToSurfaceScale(SurfaceType.ThreeByteBgr, + OGLSurfaceData.PF_3BYTE_BGR), new OGLSwToSurfaceScale(SurfaceType.Ushort565Rgb, OGLSurfaceData.PF_USHORT_565_RGB), new OGLSwToSurfaceScale(SurfaceType.Ushort555Rgb, @@ -127,6 +127,8 @@ class OGLBlitLoops { OGLSurfaceData.PF_INT_BGR), new OGLSwToSurfaceTransform(SurfaceType.IntBgrx, OGLSurfaceData.PF_INT_BGRX), + new OGLSwToSurfaceTransform(SurfaceType.ThreeByteBgr, + OGLSurfaceData.PF_3BYTE_BGR), new OGLSwToSurfaceTransform(SurfaceType.Ushort565Rgb, OGLSurfaceData.PF_USHORT_565_RGB), new OGLSwToSurfaceTransform(SurfaceType.Ushort555Rgb, @@ -155,6 +157,8 @@ class OGLBlitLoops { OGLSurfaceData.PF_INT_BGR), new OGLSwToTextureBlit(SurfaceType.IntBgrx, OGLSurfaceData.PF_INT_BGRX), + new OGLSwToTextureBlit(SurfaceType.ThreeByteBgr, + OGLSurfaceData.PF_3BYTE_BGR), new OGLSwToTextureBlit(SurfaceType.Ushort565Rgb, OGLSurfaceData.PF_USHORT_565_RGB), new OGLSwToTextureBlit(SurfaceType.Ushort555Rgb, diff --git a/jdk/src/share/classes/sun/java2d/opengl/OGLSurfaceData.java b/jdk/src/share/classes/sun/java2d/opengl/OGLSurfaceData.java index ceafbe3fb74..dc509a71af4 100644 --- a/jdk/src/share/classes/sun/java2d/opengl/OGLSurfaceData.java +++ b/jdk/src/share/classes/sun/java2d/opengl/OGLSurfaceData.java @@ -120,6 +120,7 @@ public abstract class OGLSurfaceData extends SurfaceData public static final int PF_USHORT_555_RGBX = 8; public static final int PF_BYTE_GRAY = 9; public static final int PF_USHORT_GRAY = 10; + public static final int PF_3BYTE_BGR = 11; /** * SurfaceTypes diff --git a/jdk/src/share/demo/java2d/J2DBench/src/j2dbench/tests/ImageTests.java b/jdk/src/share/demo/java2d/J2DBench/src/j2dbench/tests/ImageTests.java index 51c4828e83c..ab06b9f4924 100644 --- a/jdk/src/share/demo/java2d/J2DBench/src/j2dbench/tests/ImageTests.java +++ b/jdk/src/share/demo/java2d/J2DBench/src/j2dbench/tests/ImageTests.java @@ -60,6 +60,9 @@ import java.awt.image.VolatileImage; import java.awt.image.WritableRaster; import java.awt.Transparency; import java.awt.geom.AffineTransform; +import java.awt.image.DataBufferByte; +import java.awt.image.DataBufferInt; +import java.awt.image.DataBufferShort; import java.util.ArrayList; import javax.swing.JComponent; @@ -84,6 +87,7 @@ public abstract class ImageTests extends GraphicsTests { static Group.EnableSet bufimgsrcroot; static Group imgtestroot; + static Group imgoptionsroot; static Group imageOpRoot; static Group imageOpOptRoot; @@ -92,6 +96,7 @@ public abstract class ImageTests extends GraphicsTests { static Group bufImgOpTestRoot; static Group rasterOpTestRoot; static Option opList; + static Option doTouchSrc; static String transNodeNames[] = { null, "opaque", "bitmask", "translucent", @@ -105,9 +110,19 @@ public abstract class ImageTests extends GraphicsTests { imageroot = new Group(graphicsroot, "imaging", "Imaging Benchmarks"); imageroot.setTabbed(); + imgsrcroot = new Group.EnableSet(imageroot, "src", "Image Rendering Sources"); imgsrcroot.setBordered(true); + + imgoptionsroot = new Group(imgsrcroot, "options", + "Image Source Options"); + imgoptionsroot.setBordered(true); + doTouchSrc = + new Option.Toggle(imgoptionsroot, "touchsrc", + "Touch src image before every operation", + Option.Toggle.Off); + imgtestroot = new Group(imageroot, "tests", "Image Rendering Tests"); imgtestroot.setBordered(true); @@ -131,7 +146,11 @@ public abstract class ImageTests extends GraphicsTests { new BufImg(BufferedImage.TYPE_INT_RGB); new BufImg(BufferedImage.TYPE_INT_ARGB); new BufImg(BufferedImage.TYPE_BYTE_GRAY); + new BufImg(BufferedImage.TYPE_3BYTE_BGR); new BmByteIndexBufImg(); + new BufImg(BufferedImage.TYPE_INT_RGB, true); + new BufImg(BufferedImage.TYPE_INT_ARGB, true); + new BufImg(BufferedImage.TYPE_3BYTE_BGR, true); imageOpRoot = new Group(imageroot, "imageops", "Image Op Benchmarks"); @@ -193,6 +212,7 @@ public abstract class ImageTests extends GraphicsTests { } public static class Context extends GraphicsTests.Context { + boolean touchSrc; Image src; AffineTransform tx; } @@ -206,6 +226,7 @@ public abstract class ImageTests extends GraphicsTests { { super(parent, nodeName, description); addDependency(imgsrcroot, srcFilter); + addDependency(doTouchSrc); } public GraphicsTests.Context createContext() { @@ -217,6 +238,7 @@ public abstract class ImageTests extends GraphicsTests { ImageTests.Context ictx = (ImageTests.Context) ctx; ictx.src = env.getSrcImage(); + ictx.touchSrc = env.isEnabled(doTouchSrc); } public abstract static class TriStateImageType extends Group { @@ -272,13 +294,6 @@ public abstract class ImageTests extends GraphicsTests { public static class CompatImg extends TriStateImageType { int transparency; - public static String Descriptions[] = { - "Default Compatible Image", - "Opaque Compatible Image", - "Bitmask Compatible Image", - "Translucent Compatible Image", - }; - public CompatImg(int transparency) { super(imgsrcroot, Destinations.CompatImg.ShortNames[transparency], @@ -296,6 +311,7 @@ public abstract class ImageTests extends GraphicsTests { public static class BufImg extends TriStateImageType { int type; + boolean unmanaged; static int Transparencies[] = { Transparency.TRANSLUCENT, // "custom", @@ -315,15 +331,37 @@ public abstract class ImageTests extends GraphicsTests { }; public BufImg(int type) { + this(type, false); + } + + public BufImg(int type, boolean unmanaged) { super(bufimgsrcroot, + (unmanaged ? "unmanaged" : "") + Destinations.BufImg.ShortNames[type], + (unmanaged ? "Unmanaged " : "") + Destinations.BufImg.Descriptions[type], Transparencies[type]); this.type = type; + this.unmanaged = unmanaged; } public Image makeImage(TestEnvironment env, int w, int h) { - return new BufferedImage(w, h, type); + BufferedImage img = new BufferedImage(w, h, type); + if (unmanaged) { + DataBuffer db = img.getRaster().getDataBuffer(); + if (db instanceof DataBufferInt) { + ((DataBufferInt)db).getData(); + } else if (db instanceof DataBufferShort) { + ((DataBufferShort)db).getData(); + } else if (db instanceof DataBufferByte) { + ((DataBufferByte)db).getData(); + } else { + try { + img.setAccelerationPriority(0.0f); + } catch (Throwable e) {} + } + } + return img; } } @@ -471,15 +509,33 @@ public abstract class ImageTests extends GraphicsTests { g.translate(ictx.orgX, ictx.orgY); Image src = ictx.src; if (ictx.animate) { - do { - g.drawImage(src, x, y, null); - if ((x -= 3) < 0) x += ictx.maxX; - if ((y -= 1) < 0) y += ictx.maxY; - } while (--numReps > 0); + if (ictx.touchSrc) { + Graphics srcG = src.getGraphics(); + do { + srcG.fillRect(0, 0, 1, 1); + g.drawImage(src, x, y, null); + if ((x -= 3) < 0) x += ictx.maxX; + if ((y -= 1) < 0) y += ictx.maxY; + } while (--numReps > 0); + } else { + do { + g.drawImage(src, x, y, null); + if ((x -= 3) < 0) x += ictx.maxX; + if ((y -= 1) < 0) y += ictx.maxY; + } while (--numReps > 0); + } } else { - do { - g.drawImage(src, x, y, null); - } while (--numReps > 0); + if (ictx.touchSrc) { + Graphics srcG = src.getGraphics(); + do { + srcG.fillRect(0, 0, 1, 1); + g.drawImage(src, x, y, null); + } while (--numReps > 0); + } else { + do { + g.drawImage(src, x, y, null); + } while (--numReps > 0); + } } g.translate(-ictx.orgX, -ictx.orgY); } @@ -505,15 +561,33 @@ public abstract class ImageTests extends GraphicsTests { Image src = ictx.src; Color bg = Color.orange; if (ictx.animate) { - do { - g.drawImage(src, x, y, bg, null); - if ((x -= 3) < 0) x += ictx.maxX; - if ((y -= 1) < 0) y += ictx.maxY; - } while (--numReps > 0); + if (ictx.touchSrc) { + Graphics srcG = src.getGraphics(); + do { + srcG.fillRect(0, 0, 1, 1); + g.drawImage(src, x, y, bg, null); + if ((x -= 3) < 0) x += ictx.maxX; + if ((y -= 1) < 0) y += ictx.maxY; + } while (--numReps > 0); + } else { + do { + g.drawImage(src, x, y, bg, null); + if ((x -= 3) < 0) x += ictx.maxX; + if ((y -= 1) < 0) y += ictx.maxY; + } while (--numReps > 0); + } } else { - do { - g.drawImage(src, x, y, bg, null); - } while (--numReps > 0); + if (ictx.touchSrc) { + Graphics srcG = src.getGraphics(); + do { + srcG.fillRect(0, 0, 1, 1); + g.drawImage(src, x, y, bg, null); + } while (--numReps > 0); + } else { + do { + g.drawImage(src, x, y, bg, null); + } while (--numReps > 0); + } } g.translate(-ictx.orgX, -ictx.orgY); } @@ -524,7 +598,7 @@ public abstract class ImageTests extends GraphicsTests { public DrawImageScale(String dir, float scale) { super(imgtestroot, "drawimagescale"+dir, - "drawImage(img, x, y, w*"+scale+", h*"+scale+", obs);"); + "drawImage(img, x, y, w*"+scale+", h*"+scale+", obs);"); this.scale = scale; } @@ -546,15 +620,33 @@ public abstract class ImageTests extends GraphicsTests { g.translate(ictx.orgX, ictx.orgY); Image src = ictx.src; if (ictx.animate) { - do { - g.drawImage(src, x, y, w, h, null); - if ((x -= 3) < 0) x += ictx.maxX; - if ((y -= 1) < 0) y += ictx.maxY; - } while (--numReps > 0); + if (ictx.touchSrc) { + Graphics srcG = src.getGraphics(); + do { + srcG.fillRect(0, 0, 1, 1); + g.drawImage(src, x, y, w, h, null); + if ((x -= 3) < 0) x += ictx.maxX; + if ((y -= 1) < 0) y += ictx.maxY; + } while (--numReps > 0); + } else { + do { + g.drawImage(src, x, y, w, h, null); + if ((x -= 3) < 0) x += ictx.maxX; + if ((y -= 1) < 0) y += ictx.maxY; + } while (--numReps > 0); + } } else { - do { - g.drawImage(src, x, y, w, h, null); - } while (--numReps > 0); + Graphics srcG = src.getGraphics(); + if (ictx.touchSrc) { + do { + srcG.fillRect(0, 0, 1, 1); + g.drawImage(src, x, y, w, h, null); + } while (--numReps > 0); + } else { + do { + g.drawImage(src, x, y, w, h, null); + } while (--numReps > 0); + } } g.translate(-ictx.orgX, -ictx.orgY); } @@ -588,17 +680,36 @@ public abstract class ImageTests extends GraphicsTests { Image src = ictx.src; AffineTransform tx = ictx.tx; if (ictx.animate) { - do { - tx.setTransform(1.0, 0.1, 0.1, 1.0, x, y); - g.drawImage(src, tx, null); - if ((x -= 3) < 0) x += ictx.maxX; - if ((y -= 1) < 0) y += ictx.maxY; - } while (--numReps > 0); + if (ictx.touchSrc) { + Graphics srcG = src.getGraphics(); + do { + tx.setTransform(1.0, 0.1, 0.1, 1.0, x, y); + srcG.fillRect(0, 0, 1, 1); + g.drawImage(src, tx, null); + if ((x -= 3) < 0) x += ictx.maxX; + if ((y -= 1) < 0) y += ictx.maxY; + } while (--numReps > 0); + } else { + do { + tx.setTransform(1.0, 0.1, 0.1, 1.0, x, y); + g.drawImage(src, tx, null); + if ((x -= 3) < 0) x += ictx.maxX; + if ((y -= 1) < 0) y += ictx.maxY; + } while (--numReps > 0); + } } else { tx.setTransform(1.0, 0.1, 0.1, 1.0, x, y); - do { - g.drawImage(src, tx, null); - } while (--numReps > 0); + if (ictx.touchSrc) { + Graphics srcG = src.getGraphics(); + do { + srcG.fillRect(0, 0, 1, 1); + g.drawImage(src, tx, null); + } while (--numReps > 0); + } else { + do { + g.drawImage(src, tx, null); + } while (--numReps > 0); + } } g.translate(-ictx.orgX, -ictx.orgY); } @@ -736,15 +847,33 @@ public abstract class ImageTests extends GraphicsTests { Graphics2D g2 = (Graphics2D)ictx.graphics; g2.translate(ictx.orgX, ictx.orgY); if (ictx.animate) { - do { - g2.drawImage(src, op, x, y); - if ((x -= 3) < 0) x += ictx.maxX; - if ((y -= 1) < 0) y += ictx.maxY; - } while (--numReps > 0); + if (ictx.touchSrc) { + Graphics gSrc = src.getGraphics(); + do { + gSrc.fillRect(0, 0, 1, 1); + g2.drawImage(src, op, x, y); + if ((x -= 3) < 0) x += ictx.maxX; + if ((y -= 1) < 0) y += ictx.maxY; + } while (--numReps > 0); + } else { + do { + g2.drawImage(src, op, x, y); + if ((x -= 3) < 0) x += ictx.maxX; + if ((y -= 1) < 0) y += ictx.maxY; + } while (--numReps > 0); + } } else { - do { - g2.drawImage(src, op, x, y); - } while (--numReps > 0); + if (ictx.touchSrc) { + Graphics gSrc = src.getGraphics(); + do { + gSrc.fillRect(0, 0, 1, 1); + g2.drawImage(src, op, x, y); + } while (--numReps > 0); + } else { + do { + g2.drawImage(src, op, x, y); + } while (--numReps > 0); + } } g2.translate(-ictx.orgX, -ictx.orgY); } @@ -778,9 +907,17 @@ public abstract class ImageTests extends GraphicsTests { BufferedImageOp op = ictx.bufImgOp; BufferedImage src = ictx.bufSrc; BufferedImage dst = ictx.bufDst; - do { - op.filter(src, dst); - } while (--numReps > 0); + if (ictx.touchSrc) { + Graphics gSrc = src.getGraphics(); + do { + gSrc.fillRect(0, 0, 1, 1); + op.filter(src, dst); + } while (--numReps > 0); + } else { + do { + op.filter(src, dst); + } while (--numReps > 0); + } } } @@ -814,9 +951,17 @@ public abstract class ImageTests extends GraphicsTests { RasterOp op = ictx.rasterOp; Raster src = ictx.rasSrc; WritableRaster dst = ictx.rasDst; - do { - op.filter(src, dst); - } while (--numReps > 0); + if (ictx.touchSrc) { + Graphics gSrc = ictx.bufSrc.getGraphics(); + do { + gSrc.fillRect(0, 0, 1, 1); + op.filter(src, dst); + } while (--numReps > 0); + } else { + do { + op.filter(src, dst); + } while (--numReps > 0); + } } } } diff --git a/jdk/src/share/native/sun/java2d/opengl/OGLBlitLoops.c b/jdk/src/share/native/sun/java2d/opengl/OGLBlitLoops.c index 0a16a2b737c..a9f98c80c5a 100644 --- a/jdk/src/share/native/sun/java2d/opengl/OGLBlitLoops.c +++ b/jdk/src/share/native/sun/java2d/opengl/OGLBlitLoops.c @@ -203,7 +203,24 @@ OGLBlitSwToSurface(OGLContext *oglc, SurfaceDataRasInfo *srcInfo, j2d_glBitmap(0, 0, 0, 0, (GLfloat)dx1, (GLfloat)-dy1, NULL); j2d_glPixelZoom(scalex, -scaley); - j2d_glDrawPixels(sx2-sx1, sy2-sy1, pf->format, pf->type, srcInfo->rasBase); + + // in case pixel stride is not a multiple of scanline stride the copy + // has to be done line by line (see 6207877) + if (srcInfo->scanStride % srcInfo->pixelStride != 0) { + jint width = sx2-sx1; + jint height = sy2-sy1; + GLvoid *pSrc = srcInfo->rasBase; + + while (height > 0) { + j2d_glDrawPixels(width, 1, pf->format, pf->type, pSrc); + j2d_glBitmap(0, 0, 0, 0, (GLfloat)0, (GLfloat)-1, NULL); + pSrc = PtrAddBytes(pSrc, srcInfo->scanStride); + height--; + } + } else { + j2d_glDrawPixels(sx2-sx1, sy2-sy1, pf->format, pf->type, srcInfo->rasBase); + } + j2d_glPixelZoom(1.0, 1.0); if (oglc->extraAlpha != 1.0f) { @@ -250,6 +267,7 @@ OGLBlitToSurfaceViaTexture(OGLContext *oglc, SurfaceDataRasInfo *srcInfo, jint sx, sy, sw, sh; GLint glhint = (hint == OGLSD_XFORM_BILINEAR) ? GL_LINEAR : GL_NEAREST; jboolean adjustAlpha = (pf != NULL && !pf->hasAlpha); + jboolean slowPath; if (oglc->blitTextureID == 0) { if (!OGLContext_InitBlitTileTexture(oglc)) { @@ -279,6 +297,10 @@ OGLBlitToSurfaceViaTexture(OGLContext *oglc, SurfaceDataRasInfo *srcInfo, j2d_glPixelTransferf(GL_ALPHA_BIAS, 1.0f); } + // in case pixel stride is not a multiple of scanline stride the copy + // has to be done line by line (see 6207877) + slowPath = srcInfo->scanStride % srcInfo->pixelStride != 0; + for (sy = sy1, dy = dy1; sy < sy2; sy += th, dy += cdh) { sh = ((sy + th) > sy2) ? (sy2 - sy) : th; dh = ((dy + cdh) > dy2) ? (dy2 - dy) : cdh; @@ -291,13 +313,29 @@ OGLBlitToSurfaceViaTexture(OGLContext *oglc, SurfaceDataRasInfo *srcInfo, ty2 = ((GLdouble)sh) / th; if (swsurface) { - j2d_glPixelStorei(GL_UNPACK_SKIP_PIXELS, sx); - j2d_glPixelStorei(GL_UNPACK_SKIP_ROWS, sy); + if (slowPath) { + jint tmph = sh; + GLvoid *pSrc = PtrCoord(srcInfo->rasBase, + sx, srcInfo->pixelStride, + sy, srcInfo->scanStride); - j2d_glTexSubImage2D(GL_TEXTURE_2D, 0, - 0, 0, sw, sh, - pf->format, pf->type, - srcInfo->rasBase); + while (tmph > 0) { + j2d_glTexSubImage2D(GL_TEXTURE_2D, 0, + 0, sh - tmph, sw, 1, + pf->format, pf->type, + pSrc); + pSrc = PtrAddBytes(pSrc, srcInfo->scanStride); + tmph--; + } + } else { + j2d_glPixelStorei(GL_UNPACK_SKIP_PIXELS, sx); + j2d_glPixelStorei(GL_UNPACK_SKIP_ROWS, sy); + + j2d_glTexSubImage2D(GL_TEXTURE_2D, 0, + 0, 0, sw, sh, + pf->format, pf->type, + srcInfo->rasBase); + } // the texture image is "right side up", so we align the // upper-left texture corner with the upper-left quad corner @@ -356,9 +394,25 @@ OGLBlitSwToTexture(SurfaceDataRasInfo *srcInfo, OGLPixelFormat *pf, jint dx1, jint dy1, jint dx2, jint dy2) { j2d_glBindTexture(dstOps->textureTarget, dstOps->textureID); - j2d_glTexSubImage2D(dstOps->textureTarget, 0, - dx1, dy1, dx2-dx1, dy2-dy1, - pf->format, pf->type, srcInfo->rasBase); + // in case pixel stride is not a multiple of scanline stride the copy + // has to be done line by line (see 6207877) + if (srcInfo->scanStride % srcInfo->pixelStride != 0) { + jint width = dx2 - dx1; + jint height = dy2 - dy1; + GLvoid *pSrc = srcInfo->rasBase; + + while (height > 0) { + j2d_glTexSubImage2D(dstOps->textureTarget, 0, + dx1, dy2 - height, width, 1, + pf->format, pf->type, pSrc); + pSrc = PtrAddBytes(pSrc, srcInfo->scanStride); + height--; + } + } else { + j2d_glTexSubImage2D(dstOps->textureTarget, 0, + dx1, dy1, dx2-dx1, dy2-dy1, + pf->format, pf->type, srcInfo->rasBase); + } } /** diff --git a/jdk/src/share/native/sun/java2d/opengl/OGLSurfaceData.c b/jdk/src/share/native/sun/java2d/opengl/OGLSurfaceData.c index 2b45a610be3..0cb11d105af 100644 --- a/jdk/src/share/native/sun/java2d/opengl/OGLSurfaceData.c +++ b/jdk/src/share/native/sun/java2d/opengl/OGLSurfaceData.c @@ -73,7 +73,8 @@ OGLPixelFormat PixelFormats[] = { 1, 0, 1, }, /* 9 - ByteGray */ { GL_LUMINANCE, GL_UNSIGNED_SHORT, 2, 0, 1, }, /*10 - UshortGray */ -}; + { GL_BGR, GL_UNSIGNED_BYTE, + 1, 0, 1, }, /*11 - ThreeByteBgr */}; /** * Given a starting value and a maximum limit, returns the first power-of-two diff --git a/jdk/src/windows/classes/sun/java2d/d3d/D3DBlitLoops.java b/jdk/src/windows/classes/sun/java2d/d3d/D3DBlitLoops.java index 459a197fab6..45d6cd8fdd0 100644 --- a/jdk/src/windows/classes/sun/java2d/d3d/D3DBlitLoops.java +++ b/jdk/src/windows/classes/sun/java2d/d3d/D3DBlitLoops.java @@ -85,6 +85,8 @@ class D3DBlitLoops { D3DSurfaceData.ST_INT_RGB), new D3DSwToSurfaceBlit(SurfaceType.IntBgr, D3DSurfaceData.ST_INT_BGR), + new D3DSwToSurfaceBlit(SurfaceType.ThreeByteBgr, + D3DSurfaceData.ST_3BYTE_BGR), new D3DSwToSurfaceBlit(SurfaceType.Ushort565Rgb, D3DSurfaceData.ST_USHORT_565_RGB), new D3DSwToSurfaceBlit(SurfaceType.Ushort555Rgb, @@ -106,6 +108,8 @@ class D3DBlitLoops { D3DSurfaceData.ST_INT_RGB), new D3DSwToSurfaceScale(SurfaceType.IntBgr, D3DSurfaceData.ST_INT_BGR), + new D3DSwToSurfaceScale(SurfaceType.ThreeByteBgr, + D3DSurfaceData.ST_3BYTE_BGR), new D3DSwToSurfaceScale(SurfaceType.Ushort565Rgb, D3DSurfaceData.ST_USHORT_565_RGB), new D3DSwToSurfaceScale(SurfaceType.Ushort555Rgb, @@ -124,6 +128,8 @@ class D3DBlitLoops { D3DSurfaceData.ST_INT_RGB), new D3DSwToSurfaceTransform(SurfaceType.IntBgr, D3DSurfaceData.ST_INT_BGR), + new D3DSwToSurfaceTransform(SurfaceType.ThreeByteBgr, + D3DSurfaceData.ST_3BYTE_BGR), new D3DSwToSurfaceTransform(SurfaceType.Ushort565Rgb, D3DSurfaceData.ST_USHORT_565_RGB), new D3DSwToSurfaceTransform(SurfaceType.Ushort555Rgb, @@ -147,6 +153,8 @@ class D3DBlitLoops { D3DSurfaceData.ST_INT_ARGB), new D3DSwToTextureBlit(SurfaceType.IntBgr, D3DSurfaceData.ST_INT_BGR), + new D3DSwToTextureBlit(SurfaceType.ThreeByteBgr, + D3DSurfaceData.ST_3BYTE_BGR), new D3DSwToTextureBlit(SurfaceType.Ushort565Rgb, D3DSurfaceData.ST_USHORT_565_RGB), new D3DSwToTextureBlit(SurfaceType.Ushort555Rgb, diff --git a/jdk/src/windows/classes/sun/java2d/d3d/D3DSurfaceData.java b/jdk/src/windows/classes/sun/java2d/d3d/D3DSurfaceData.java index 18f049f2de5..722440a77bd 100644 --- a/jdk/src/windows/classes/sun/java2d/d3d/D3DSurfaceData.java +++ b/jdk/src/windows/classes/sun/java2d/d3d/D3DSurfaceData.java @@ -135,6 +135,7 @@ public class D3DSurfaceData extends SurfaceData implements AccelSurface { public static final int ST_USHORT_555_RGB = 6; public static final int ST_BYTE_INDEXED = 7; public static final int ST_BYTE_INDEXED_BM = 8; + public static final int ST_3BYTE_BGR = 9; /** Equals to D3DSWAPEFFECT_DISCARD */ public static final int SWAP_DISCARD = 1; diff --git a/jdk/src/windows/native/sun/java2d/d3d/D3DBlitLoops.cpp b/jdk/src/windows/native/sun/java2d/d3d/D3DBlitLoops.cpp index 6792a444a7d..3a729a19741 100644 --- a/jdk/src/windows/native/sun/java2d/d3d/D3DBlitLoops.cpp +++ b/jdk/src/windows/native/sun/java2d/d3d/D3DBlitLoops.cpp @@ -47,6 +47,7 @@ extern "C" BlitFunc IntArgbToIntArgbPreConvert; extern "C" BlitFunc IntArgbPreToIntArgbConvert; extern "C" BlitFunc IntArgbBmToIntArgbConvert; extern "C" BlitFunc IntRgbToIntArgbConvert; +extern "C" BlitFunc ThreeByteBgrToIntArgbConvert; extern "C" BlitFunc Ushort565RgbToIntArgbConvert; extern "C" BlitFunc Ushort555RgbToIntArgbConvert; extern "C" BlitFunc IntBgrToIntArgbConvert; @@ -268,6 +269,11 @@ D3DBL_CopyImageToIntXrgbSurface(SurfaceDataRasInfo *pSrcInfo, srcWidth, srcHeight, pSrcInfo, &dstInfo, NULL, NULL); break; + case ST_3BYTE_BGR: + ThreeByteBgrToIntArgbConvert(pSrcBase, pDstBase, + srcWidth, srcHeight, + pSrcInfo, &dstInfo, NULL, NULL); + break; case ST_USHORT_555_RGB: Ushort555RgbToIntArgbConvert(pSrcBase, pDstBase, srcWidth, srcHeight, diff --git a/jdk/src/windows/native/sun/java2d/d3d/D3DSurfaceData.h b/jdk/src/windows/native/sun/java2d/d3d/D3DSurfaceData.h index 22a89bc156d..b115ed837e9 100644 --- a/jdk/src/windows/native/sun/java2d/d3d/D3DSurfaceData.h +++ b/jdk/src/windows/native/sun/java2d/d3d/D3DSurfaceData.h @@ -68,6 +68,7 @@ struct _D3DSDOps { #define ST_USHORT_555_RGB sun_java2d_d3d_D3DSurfaceData_ST_USHORT_555_RGB #define ST_BYTE_INDEXED sun_java2d_d3d_D3DSurfaceData_ST_BYTE_INDEXED #define ST_BYTE_INDEXED_BM sun_java2d_d3d_D3DSurfaceData_ST_BYTE_INDEXED_BM +#define ST_3BYTE_BGR sun_java2d_d3d_D3DSurfaceData_ST_3BYTE_BGR /** * These are defined to be the same as ExtendedBufferCapabilities.VSyncType From fc36794c8ef31e27f1f49fbb790629d439010be6 Mon Sep 17 00:00:00 2001 From: Roman Kennke Date: Fri, 12 Sep 2008 15:01:45 -0700 Subject: [PATCH 009/110] 6748082: remove platform-specific code from SwingUtilities2.isDisplayLocal Reviewed-by: prr, tdv --- .../sun/java2d/SunGraphicsEnvironment.java | 7 ++++++ .../classes/sun/swing/SwingUtilities2.java | 23 +++++++------------ .../sun/awt/X11GraphicsEnvironment.java | 5 ++-- jdk/src/solaris/native/sun/awt/fontpath.c | 2 +- .../sun/awt/Win32GraphicsEnvironment.java | 5 ++++ 5 files changed, 24 insertions(+), 18 deletions(-) diff --git a/jdk/src/share/classes/sun/java2d/SunGraphicsEnvironment.java b/jdk/src/share/classes/sun/java2d/SunGraphicsEnvironment.java index 95b79e6e273..14029a0f8bb 100644 --- a/jdk/src/share/classes/sun/java2d/SunGraphicsEnvironment.java +++ b/jdk/src/share/classes/sun/java2d/SunGraphicsEnvironment.java @@ -1272,6 +1272,13 @@ public abstract class SunGraphicsEnvironment extends GraphicsEnvironment displayChanger.notifyPaletteChanged(); } + /** + * Returns true when the display is local, false for remote displays. + * + * @return true when the display is local, false for remote displays + */ + public abstract boolean isDisplayLocal(); + /* * ----DISPLAY CHANGE SUPPORT---- */ diff --git a/jdk/src/share/classes/sun/swing/SwingUtilities2.java b/jdk/src/share/classes/sun/swing/SwingUtilities2.java index f0165be3ea9..61a822db97d 100644 --- a/jdk/src/share/classes/sun/swing/SwingUtilities2.java +++ b/jdk/src/share/classes/sun/swing/SwingUtilities2.java @@ -55,6 +55,7 @@ import java.io.*; import java.util.*; import sun.font.FontDesignMetrics; import sun.font.FontManager; +import sun.java2d.SunGraphicsEnvironment; import java.util.concurrent.Callable; import java.util.concurrent.Future; @@ -1482,22 +1483,14 @@ public class SwingUtilities2 { * appear capable of performing gamma correction needed for LCD text. */ public static boolean isLocalDisplay() { - try { - // On Windows just return true. Permission to read os.name - // is granted to all code but wrapped in try to be safe. - if (OSInfo.getOSType() == OSInfo.OSType.WINDOWS) { - return true; - } - // Else probably Solaris or Linux in which case may be remote X11 - Class x11Class = Class.forName("sun.awt.X11GraphicsEnvironment"); - Method isDisplayLocalMethod = x11Class.getMethod( - "isDisplayLocal", new Class[0]); - return (Boolean)isDisplayLocalMethod.invoke(null, (Object[])null); - } catch (Throwable t) { + boolean isLocal; + GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment(); + if (ge instanceof SunGraphicsEnvironment) { + isLocal = ((SunGraphicsEnvironment) ge).isDisplayLocal(); + } else { + isLocal = true; } - // If we get here we're most likely being run on some other O/S - // or we didn't properly detect Windows. - return true; + return isLocal; } /** diff --git a/jdk/src/solaris/classes/sun/awt/X11GraphicsEnvironment.java b/jdk/src/solaris/classes/sun/awt/X11GraphicsEnvironment.java index dadfe84d71f..47ca64f1daa 100644 --- a/jdk/src/solaris/classes/sun/awt/X11GraphicsEnvironment.java +++ b/jdk/src/solaris/classes/sun/awt/X11GraphicsEnvironment.java @@ -209,7 +209,7 @@ public class X11GraphicsEnvironment private static native int checkShmExt(); private static native String getDisplayString(); - private static Boolean isDisplayLocal; + private Boolean isDisplayLocal; /** * This should only be called from the static initializer, so no need for @@ -234,7 +234,8 @@ public class X11GraphicsEnvironment return getScreenDevices()[getDefaultScreenNum()]; } - public static boolean isDisplayLocal() { + @Override + public boolean isDisplayLocal() { if (isDisplayLocal == null) { SunToolkit.awtLock(); try { diff --git a/jdk/src/solaris/native/sun/awt/fontpath.c b/jdk/src/solaris/native/sun/awt/fontpath.c index 8f9f3d9a894..18efe1c1f06 100644 --- a/jdk/src/solaris/native/sun/awt/fontpath.c +++ b/jdk/src/solaris/native/sun/awt/fontpath.c @@ -156,7 +156,7 @@ jboolean isDisplayLocal(JNIEnv *env) { isLocal = JNU_CallStaticMethodByName(env, NULL, "sun/awt/X11GraphicsEnvironment", - "isDisplayLocal", + "_isDisplayLocal", "()Z").z; isLocalSet = True; return isLocal; diff --git a/jdk/src/windows/classes/sun/awt/Win32GraphicsEnvironment.java b/jdk/src/windows/classes/sun/awt/Win32GraphicsEnvironment.java index 80ee7747004..73b73dbb033 100644 --- a/jdk/src/windows/classes/sun/awt/Win32GraphicsEnvironment.java +++ b/jdk/src/windows/classes/sun/awt/Win32GraphicsEnvironment.java @@ -393,4 +393,9 @@ public class Win32GraphicsEnvironment private static void dwmCompositionChanged(boolean enabled) { isDWMCompositionEnabled = enabled; } + + @Override + public boolean isDisplayLocal() { + return true; + } } From ffbeca8c2e4cf5c4b751d29b481ff7d8544df6c5 Mon Sep 17 00:00:00 2001 From: Phil Race Date: Wed, 24 Sep 2008 11:58:21 -0700 Subject: [PATCH 010/110] 6751621: TextLayout.getBounds() doesn't account for strike through Reviewed-by: igor, dougfelt --- .../share/classes/sun/font/Decoration.java | 10 +- jdk/src/share/classes/sun/font/Underline.java | 4 +- .../font/TextLayout/DecorationBoundsTest.java | 98 +++++++++++++++++++ 3 files changed, 108 insertions(+), 4 deletions(-) create mode 100644 jdk/test/java/awt/font/TextLayout/DecorationBoundsTest.java diff --git a/jdk/src/share/classes/sun/font/Decoration.java b/jdk/src/share/classes/sun/font/Decoration.java index ebdf7c49ac6..b33afc273ac 100644 --- a/jdk/src/share/classes/sun/font/Decoration.java +++ b/jdk/src/share/classes/sun/font/Decoration.java @@ -267,7 +267,9 @@ public class Decoration { CoreMetrics cm = label.getCoreMetrics(); if (strikethrough) { Stroke savedStroke = g2d.getStroke(); - g2d.setStroke(new BasicStroke(cm.strikethroughThickness)); + g2d.setStroke(new BasicStroke(cm.strikethroughThickness, + BasicStroke.CAP_BUTT, + BasicStroke.JOIN_MITER)); float strikeY = y + cm.strikethroughOffset; g2d.draw(new Line2D.Float(x1, strikeY, x2, strikeY)); g2d.setStroke(savedStroke); @@ -341,7 +343,7 @@ public class Decoration { Rectangle2D visBounds = label.handleGetVisualBounds(); - if (swapColors || bgPaint != null + if (swapColors || bgPaint != null || strikethrough || stdUnderline != null || imUnderline != null) { float minX = 0; @@ -390,7 +392,9 @@ public class Decoration { } if (strikethrough) { - Stroke stStroke = new BasicStroke(cm.strikethroughThickness); + Stroke stStroke = new BasicStroke(cm.strikethroughThickness, + BasicStroke.CAP_BUTT, + BasicStroke.JOIN_MITER); float shiftY = y + cm.strikethroughOffset; Line2D line = new Line2D.Float(x1, shiftY, x2, shiftY); Area slArea = new Area(stStroke.createStrokedShape(line)); diff --git a/jdk/src/share/classes/sun/font/Underline.java b/jdk/src/share/classes/sun/font/Underline.java index efe78985da8..ad1910b8412 100644 --- a/jdk/src/share/classes/sun/font/Underline.java +++ b/jdk/src/share/classes/sun/font/Underline.java @@ -126,7 +126,9 @@ abstract class Underline { private BasicStroke createStroke(float lineThickness) { if (dashPattern == null) { - return new BasicStroke(lineThickness); + return new BasicStroke(lineThickness, + BasicStroke.CAP_BUTT, + BasicStroke.JOIN_MITER); } else { return new BasicStroke(lineThickness, diff --git a/jdk/test/java/awt/font/TextLayout/DecorationBoundsTest.java b/jdk/test/java/awt/font/TextLayout/DecorationBoundsTest.java new file mode 100644 index 00000000000..286b75d8bfb --- /dev/null +++ b/jdk/test/java/awt/font/TextLayout/DecorationBoundsTest.java @@ -0,0 +1,98 @@ +/* + * Copyright 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. + * + * 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. + */ + +/* @test + * @summary verify bounds enclose rendering of decorations. + * @bug 6751621 + */ + +import java.awt.*; +import java.awt.font.*; +import java.awt.geom.*; +import java.awt.image.*; +import java.util.*; + +public class DecorationBoundsTest { + + public static void main(String[] args) { + BufferedImage bi = + new BufferedImage(600, 300, BufferedImage.TYPE_INT_RGB); + Graphics2D g2d = bi.createGraphics(); + g2d.setColor(Color.white); + g2d.fillRect(0, 0, 600, 300); + + float x = 10; + float y = 90; + Map map = new HashMap(); + map.put(TextAttribute.STRIKETHROUGH, + TextAttribute.STRIKETHROUGH_ON); + map.put(TextAttribute.SIZE, new Float(80)); + + FontRenderContext frc = g2d.getFontRenderContext(); + + String text = "Welcome to "; + TextLayout tl = new TextLayout(text, map, frc); + g2d.translate(x, y); + g2d.setColor(Color.RED); + tl.draw(g2d, 0, 0); + g2d.setColor(Color.GREEN); + Rectangle2D bds = tl.getBounds(); + /* Since due to pixelisation the glyphs may touch above + * or below the theoretical outline bounds, pad in the + * y direction to avoid spurious failures. + */ + bds.setRect(bds.getX(), bds.getY()-1, + bds.getWidth(), bds.getHeight()+2); + g2d.fill(bds); + + map = new HashMap(); + map.put(TextAttribute.UNDERLINE, TextAttribute.UNDERLINE_ON); + map.put(TextAttribute.SIZE, new Float(80)); + tl = new TextLayout(text, map, frc); + g2d.translate(0, 100); + g2d.setColor(Color.RED); + tl.draw(g2d, 0, 0); + + g2d.setColor(Color.GREEN); + bds = tl.getBounds(); + bds.setRect(bds.getX(), bds.getY()-1, + bds.getWidth(), bds.getHeight()+2); + g2d.fill(bds); + + checkBI(bi, Color.RED); + } + + static void checkBI(BufferedImage bi, Color badColor) { + int badrgb = badColor.getRGB(); + int w = bi.getWidth(null); + int h = bi.getHeight(null); + for (int x=0; x Date: Thu, 9 Oct 2008 17:12:50 -0700 Subject: [PATCH 011/110] 6749060: LCD AA text rendered incorrectly when destination is non opaque (sw pipeline only) Reviewed-by: campbell, prr --- .../share/classes/sun/java2d/SurfaceData.java | 3 +- .../NonOpaqueDestLCDAATest.java | 98 +++++++++++++------ 2 files changed, 70 insertions(+), 31 deletions(-) diff --git a/jdk/src/share/classes/sun/java2d/SurfaceData.java b/jdk/src/share/classes/sun/java2d/SurfaceData.java index 84acfbd8f0f..65a04c23220 100644 --- a/jdk/src/share/classes/sun/java2d/SurfaceData.java +++ b/jdk/src/share/classes/sun/java2d/SurfaceData.java @@ -449,7 +449,8 @@ public abstract class SurfaceData // For now the answer can only be true in the following cases: if (sg2d.compositeState <= SunGraphics2D.COMP_ISCOPY && sg2d.paintState <= SunGraphics2D.PAINT_ALPHACOLOR && - sg2d.clipState <= SunGraphics2D.CLIP_RECTANGULAR) + sg2d.clipState <= SunGraphics2D.CLIP_RECTANGULAR && + sg2d.surfaceData.getTransparency() == Transparency.OPAQUE) { if (haveLCDLoop == LCDLOOP_UNKNOWN) { DrawGlyphListLCD loop = diff --git a/jdk/test/sun/java2d/DirectX/NonOpaqueDestLCDAATest/NonOpaqueDestLCDAATest.java b/jdk/test/sun/java2d/DirectX/NonOpaqueDestLCDAATest/NonOpaqueDestLCDAATest.java index 116c91e95ec..23235708f59 100644 --- a/jdk/test/sun/java2d/DirectX/NonOpaqueDestLCDAATest/NonOpaqueDestLCDAATest.java +++ b/jdk/test/sun/java2d/DirectX/NonOpaqueDestLCDAATest/NonOpaqueDestLCDAATest.java @@ -23,10 +23,11 @@ /* * @test - * @bug 6728834 + * @bug 6728834 6749060 * @summary Tests that LCD AA text rendering works properly with destinations * being VolatileImage of all transparency types * @author Dmitri.Trembovetski: area=Graphics + * @run main/manual/othervm -Dsun.java2d.d3d=false NonOpaqueDestLCDAATest * @run main/manual/othervm NonOpaqueDestLCDAATest * @run main/manual/othervm -Dsun.java2d.opengl=True NonOpaqueDestLCDAATest */ @@ -35,9 +36,11 @@ import java.awt.AlphaComposite; import java.awt.Color; import java.awt.Dimension; import java.awt.EventQueue; +import java.awt.Font; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.GraphicsConfiguration; +import java.awt.Image; import java.awt.RenderingHints; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; @@ -45,6 +48,7 @@ import java.awt.event.ComponentAdapter; import java.awt.event.ComponentEvent; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; +import java.awt.image.BufferedImage; import java.awt.image.VolatileImage; import java.io.File; import java.util.concurrent.CountDownLatch; @@ -62,35 +66,43 @@ public class NonOpaqueDestLCDAATest extends JFrame implements ActionListener { public NonOpaqueDestLCDAATest() { JTextArea desc = new JTextArea(); desc.setText( - "\n Instructions: the three text strings below should appear\n" + - " readable, without smudges or misshapen bold glyphs.\n\n" + - " If they look fine the test PASSED otherwise it FAILED.\n"); + "\n Instructions: the three text strings below should appear" + + " readable, without smudges or misshapen bold glyphs.\n" + + " You may need a magnifier to notice some bad colorfringing in "+ + " in SW Translucent case, especially in vertical stems.\n\n"+ + " Basically text rendered to TRANSLUCENT destination should look"+ + " similar to one rendered to OPAQUE - it may differ in whether or" + + " not it's LCD, but it should look 'correct'\n\n"+ + "If the text looks fine the test PASSED otherwise it FAILED.\n"); desc.setEditable(false); desc.setBackground(Color.black); desc.setForeground(Color.green); add("North", desc); JPanel renderPanel = new JPanel() { + @Override public void paintComponent(Graphics g) { render(g, getWidth(), getHeight()); } }; - renderPanel.setPreferredSize(new Dimension(350, 150)); + renderPanel.setPreferredSize(new Dimension(1024, 650)); renderPanel.addComponentListener(new ComponentAdapter() { + @Override public void componentResized(ComponentEvent e) { images = null; } }); add("Center", renderPanel); - JButton passed = new JButton("Passed"); - JButton failed = new JButton("Failed"); - passed.addActionListener(this); - failed.addActionListener(this); + JButton passedBtn = new JButton("Passed"); + JButton failedBtn = new JButton("Failed"); + passedBtn.addActionListener(this); + failedBtn.addActionListener(this); JPanel p = new JPanel(); - p.add(passed); - p.add(failed); + p.add(passedBtn); + p.add(failedBtn); add("South", p); addWindowListener(new WindowAdapter() { + @Override public void windowClosing(WindowEvent e) { complete.countDown(); } @@ -101,14 +113,18 @@ public class NonOpaqueDestLCDAATest extends JFrame implements ActionListener { public void render(Graphics g, int w, int h) { initImages(w, h); + g.setColor(new Color(0xAD, 0xD8, 0xE6)); + g.fillRect(0, 0, w, h); + Graphics2D g2d = (Graphics2D) g.create(); - for (VolatileImage vi : images) { - g2d.drawImage(vi, 0, 0, null); - g2d.translate(0, vi.getHeight()); + for (Image im : images) { + g2d.drawImage(im, 0, 0, null); + g2d.translate(0, im.getHeight(null)); } } String tr[] = { "OPAQUE", "BITMASK", "TRANSLUCENT" }; + @Override public void actionPerformed(ActionEvent e) { if (e.getActionCommand().equals("Passed")) { passed = true; @@ -116,9 +132,17 @@ public class NonOpaqueDestLCDAATest extends JFrame implements ActionListener { } else if (e.getActionCommand().equals("Failed")) { System.out.println("Test Failed"); for (int i = 0; i < images.length; i++) { - String f = "NonOpaqueDestLCDAATest_"+tr[i]+".png"; + String f = "NonOpaqueDestLCDAATest_"+tr[i]; try { - ImageIO.write(images[i].getSnapshot(), "png", new File(f)); + if (images[i] instanceof VolatileImage) { + f += "_vi.png"; + ImageIO.write(((VolatileImage)images[i]). + getSnapshot(), "png", new File(f)); + } else { + f += "_bi.png"; + ImageIO.write((BufferedImage)images[i], + "png", new File(f)); + } System.out.printf("Dumped %s image to %s\n", tr[i], f); } catch (Throwable t) {} } @@ -128,37 +152,51 @@ public class NonOpaqueDestLCDAATest extends JFrame implements ActionListener { complete.countDown(); } - static void clear(Graphics2D g, int w, int h) { + static void clear(Graphics2D g, int type, int w, int h) { Graphics2D gg = (Graphics2D) g.create(); - gg.setColor(new Color(0, 0, 0, 0)); - gg.setComposite(AlphaComposite.Src); + if (type > OPAQUE) { + gg.setColor(new Color(0, 0, 0, 0)); + gg.setComposite(AlphaComposite.Src); + } else { + gg.setColor(new Color(0xAD, 0xD8, 0xE6)); + } gg.fillRect(0, 0, w, h); } - VolatileImage images[]; + private void render(Image im, int type, String s) { + Graphics2D g2d = (Graphics2D) im.getGraphics(); + clear(g2d, type, im.getWidth(null), im.getHeight(null)); + g2d.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, + RenderingHints.VALUE_TEXT_ANTIALIAS_LCD_HRGB); + Font f = new Font("Dialog", Font.BOLD, 40);// g2d.getFont().deriveFont(32.0f); + g2d.setColor(Color.white); + g2d.setFont(g2d.getFont().deriveFont(36.0f)); + g2d.drawString(s, 10, im.getHeight(null) / 2); + } + + Image images[]; private void initImages(int w, int h) { if (images == null) { - images = new VolatileImage[3]; + images = new Image[6]; GraphicsConfiguration gc = getGraphicsConfiguration(); for (int i = OPAQUE; i <= TRANSLUCENT; i++) { VolatileImage vi = - gc.createCompatibleVolatileImage(w,h/3,i); + gc.createCompatibleVolatileImage(w,h/images.length,i); images[i-1] = vi; vi.validate(gc); - Graphics2D g2d = (Graphics2D) vi.getGraphics(); - if (i > OPAQUE) { - clear(g2d, vi.getWidth(), vi.getHeight()); - } - g2d.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, - RenderingHints.VALUE_TEXT_ANTIALIAS_LCD_HRGB); - String s = "LCD AA Text rendered to "+tr[i-1]+ " destination"; - g2d.drawString(s, 10, vi.getHeight()/2); + String s = "LCD AA Text rendered to " + tr[i - 1] + " HW destination"; + render(vi, i, s); + + s = "LCD AA Text rendered to " + tr[i - 1] + " SW destination"; + images[i-1+3] = gc.createCompatibleImage(w, h/images.length, i); + render(images[i-1+3], i, s); } } } public static void main(String[] args) throws InterruptedException { EventQueue.invokeLater(new Runnable() { + @Override public void run() { NonOpaqueDestLCDAATest t = new NonOpaqueDestLCDAATest(); t.pack(); From 2549cb015c6f917caac10f600f32efc3f5915837 Mon Sep 17 00:00:00 2001 From: Jennifer Godinez Date: Mon, 13 Oct 2008 15:41:31 -0700 Subject: [PATCH 012/110] 6732647: isAttributeValueSupported() is not consistant with getSupportedValues() for Copies, TEXT flavor Reviewed-by: tdv, prr --- .../classes/sun/print/IPPPrintService.java | 51 +++++++++---------- .../classes/sun/print/UnixPrintService.java | 42 +++++---------- .../print/attribute/PSCopiesFlavorTest.java | 10 +++- 3 files changed, 46 insertions(+), 57 deletions(-) diff --git a/jdk/src/solaris/classes/sun/print/IPPPrintService.java b/jdk/src/solaris/classes/sun/print/IPPPrintService.java index 7a2cfecb08d..8d42f195e77 100644 --- a/jdk/src/solaris/classes/sun/print/IPPPrintService.java +++ b/jdk/src/solaris/classes/sun/print/IPPPrintService.java @@ -487,28 +487,26 @@ public class IPPPrintService implements PrintService, SunPrinterJobService { /* Test if the flavor is compatible with the category */ if ((category == Copies.class) || (category == CopiesSupported.class)) { - CopiesSupported cs = new CopiesSupported(1, MAXCOPIES); - AttributeClass attribClass = (getAttMap != null) ? - (AttributeClass)getAttMap.get(cs.getName()) : null; - if (attribClass != null) { - int[] range = attribClass.getIntRangeValue(); - cs = new CopiesSupported(range[0], range[1]); + if (flavor == null || + !(flavor.equals(DocFlavor.INPUT_STREAM.POSTSCRIPT) || + flavor.equals(DocFlavor.URL.POSTSCRIPT) || + flavor.equals(DocFlavor.BYTE_ARRAY.POSTSCRIPT))) { + CopiesSupported cs = new CopiesSupported(1, MAXCOPIES); + AttributeClass attribClass = (getAttMap != null) ? + (AttributeClass)getAttMap.get(cs.getName()) : null; + if (attribClass != null) { + int[] range = attribClass.getIntRangeValue(); + cs = new CopiesSupported(range[0], range[1]); + } + return cs; + } else { + return null; } - return cs; } else if (category == Chromaticity.class) { if (flavor == null || flavor.equals(DocFlavor.SERVICE_FORMATTED.PAGEABLE) || flavor.equals(DocFlavor.SERVICE_FORMATTED.PRINTABLE) || - flavor.equals(DocFlavor.BYTE_ARRAY.GIF) || - flavor.equals(DocFlavor.INPUT_STREAM.GIF) || - flavor.equals(DocFlavor.URL.GIF) || - flavor.equals(DocFlavor.BYTE_ARRAY.JPEG) || - flavor.equals(DocFlavor.INPUT_STREAM.JPEG) || - flavor.equals(DocFlavor.URL.JPEG) || - flavor.equals(DocFlavor.BYTE_ARRAY.PNG) || - flavor.equals(DocFlavor.INPUT_STREAM.PNG) || - flavor.equals(DocFlavor.URL.PNG)) { - + !isIPPSupportedImages(flavor.getMimeType())) { Chromaticity[]arr = new Chromaticity[1]; arr[0] = Chromaticity.COLOR; return (arr); @@ -1220,7 +1218,7 @@ public class IPPPrintService implements PrintService, SunPrinterJobService { } - public boolean isAttributeValueSupported(Attribute attr, + public boolean isAttributeValueSupported(Attribute attr, DocFlavor flavor, AttributeSet attributes) { if (attr == null) { @@ -1249,21 +1247,18 @@ public class IPPPrintService implements PrintService, SunPrinterJobService { if ((flavor == null) || flavor.equals(DocFlavor.SERVICE_FORMATTED.PAGEABLE) || flavor.equals(DocFlavor.SERVICE_FORMATTED.PRINTABLE) || - flavor.equals(DocFlavor.BYTE_ARRAY.GIF) || - flavor.equals(DocFlavor.INPUT_STREAM.GIF) || - flavor.equals(DocFlavor.URL.GIF) || - flavor.equals(DocFlavor.BYTE_ARRAY.JPEG) || - flavor.equals(DocFlavor.INPUT_STREAM.JPEG) || - flavor.equals(DocFlavor.URL.JPEG) || - flavor.equals(DocFlavor.BYTE_ARRAY.PNG) || - flavor.equals(DocFlavor.INPUT_STREAM.PNG) || - flavor.equals(DocFlavor.URL.PNG)) { + !isIPPSupportedImages(flavor.getMimeType())) { return attr == Chromaticity.COLOR; } else { return false; } } else if (attr.getCategory() == Copies.class) { - return isSupportedCopies((Copies)attr); + return (flavor == null || + !(flavor.equals(DocFlavor.INPUT_STREAM.POSTSCRIPT) || + flavor.equals(DocFlavor.URL.POSTSCRIPT) || + flavor.equals(DocFlavor.BYTE_ARRAY.POSTSCRIPT))) && + isSupportedCopies((Copies)attr); + } else if (attr.getCategory() == Destination.class) { if (flavor == null || flavor.equals(DocFlavor.SERVICE_FORMATTED.PAGEABLE) || diff --git a/jdk/src/solaris/classes/sun/print/UnixPrintService.java b/jdk/src/solaris/classes/sun/print/UnixPrintService.java index f451f804c7a..30d2dc82ca8 100644 --- a/jdk/src/solaris/classes/sun/print/UnixPrintService.java +++ b/jdk/src/solaris/classes/sun/print/UnixPrintService.java @@ -686,19 +686,7 @@ public class UnixPrintService implements PrintService, AttributeUpdater, } if (category == Chromaticity.class) { - if (flavor == null || - flavor.equals(DocFlavor.SERVICE_FORMATTED.PAGEABLE) || - flavor.equals(DocFlavor.SERVICE_FORMATTED.PRINTABLE) || - flavor.equals(DocFlavor.BYTE_ARRAY.GIF) || - flavor.equals(DocFlavor.INPUT_STREAM.GIF) || - flavor.equals(DocFlavor.URL.GIF) || - flavor.equals(DocFlavor.BYTE_ARRAY.JPEG) || - flavor.equals(DocFlavor.INPUT_STREAM.JPEG) || - flavor.equals(DocFlavor.URL.JPEG) || - flavor.equals(DocFlavor.BYTE_ARRAY.PNG) || - flavor.equals(DocFlavor.INPUT_STREAM.PNG) || - flavor.equals(DocFlavor.URL.PNG)) { - + if (flavor == null || isServiceFormattedFlavor(flavor)) { Chromaticity[]arr = new Chromaticity[1]; arr[0] = Chromaticity.COLOR; return (arr); @@ -730,18 +718,7 @@ public class UnixPrintService implements PrintService, AttributeUpdater, } return new RequestingUserName(userName, null); } else if (category == OrientationRequested.class) { - if (flavor == null || - flavor.equals(DocFlavor.SERVICE_FORMATTED.PAGEABLE) || - flavor.equals(DocFlavor.SERVICE_FORMATTED.PRINTABLE) || - flavor.equals(DocFlavor.INPUT_STREAM.GIF) || - flavor.equals(DocFlavor.INPUT_STREAM.JPEG) || - flavor.equals(DocFlavor.INPUT_STREAM.PNG) || - flavor.equals(DocFlavor.BYTE_ARRAY.GIF) || - flavor.equals(DocFlavor.BYTE_ARRAY.JPEG) || - flavor.equals(DocFlavor.BYTE_ARRAY.PNG) || - flavor.equals(DocFlavor.URL.GIF) || - flavor.equals(DocFlavor.URL.JPEG) || - flavor.equals(DocFlavor.URL.PNG)) { + if (flavor == null || isServiceFormattedFlavor(flavor)) { OrientationRequested []arr = new OrientationRequested[3]; arr[0] = OrientationRequested.PORTRAIT; arr[1] = OrientationRequested.LANDSCAPE; @@ -752,7 +729,14 @@ public class UnixPrintService implements PrintService, AttributeUpdater, } } else if ((category == Copies.class) || (category == CopiesSupported.class)) { - return new CopiesSupported(1, MAXCOPIES); + if (flavor == null || + !(flavor.equals(DocFlavor.INPUT_STREAM.POSTSCRIPT) || + flavor.equals(DocFlavor.URL.POSTSCRIPT) || + flavor.equals(DocFlavor.BYTE_ARRAY.POSTSCRIPT))) { + return new CopiesSupported(1, MAXCOPIES); + } else { + return null; + } } else if (category == Media.class) { Media []arr = new Media[mediaSizes.length]; System.arraycopy(mediaSizes, 0, arr, 0, mediaSizes.length); @@ -917,8 +901,10 @@ public class UnixPrintService implements PrintService, AttributeUpdater, } } else if (attr.getCategory() == Copies.class) { - return - (flavor == null || isServiceFormattedFlavor(flavor)) && + return (flavor == null || + !(flavor.equals(DocFlavor.INPUT_STREAM.POSTSCRIPT) || + flavor.equals(DocFlavor.URL.POSTSCRIPT) || + flavor.equals(DocFlavor.BYTE_ARRAY.POSTSCRIPT))) && isSupportedCopies((Copies)attr); } else if (attr.getCategory() == Destination.class) { URI uri = ((Destination)attr).getURI(); diff --git a/jdk/test/javax/print/attribute/PSCopiesFlavorTest.java b/jdk/test/javax/print/attribute/PSCopiesFlavorTest.java index f4dc8ca0c07..a90f79d27d0 100644 --- a/jdk/test/javax/print/attribute/PSCopiesFlavorTest.java +++ b/jdk/test/javax/print/attribute/PSCopiesFlavorTest.java @@ -23,7 +23,7 @@ /** * @test - * @bug 6527316 + * @bug 6527316 6732647 * @summary Copies isn't supported for PS flavors. * @run main PSCopiesFlavorTest */ @@ -50,5 +50,13 @@ public class PSCopiesFlavorTest { if (suppVal || us == null) { throw new RuntimeException("Copies should be unsupported value"); } + + Object value = ps.getSupportedAttributeValues(Copies.class, flavor, null); + + //Copies Supported + if(value instanceof CopiesSupported) { + throw new RuntimeException("Copies should have no supported values."); + } + } } From ed94b2e90be72a659cf788f60a84818e8e8cbba4 Mon Sep 17 00:00:00 2001 From: Phil Race Date: Thu, 16 Oct 2008 06:28:37 -0700 Subject: [PATCH 013/110] 6751616: outline for underline in TextLayout with underline is off rasterized underline Reviewed-by: dougfelt, igor --- .../share/classes/sun/font/Decoration.java | 7 +- .../TextLayout/UnderlinePositionTest.java | 88 +++++++++++++++++++ 2 files changed, 93 insertions(+), 2 deletions(-) create mode 100644 jdk/test/java/awt/font/TextLayout/UnderlinePositionTest.java diff --git a/jdk/src/share/classes/sun/font/Decoration.java b/jdk/src/share/classes/sun/font/Decoration.java index b33afc273ac..647baf45ea5 100644 --- a/jdk/src/share/classes/sun/font/Decoration.java +++ b/jdk/src/share/classes/sun/font/Decoration.java @@ -379,6 +379,7 @@ public class Decoration { // NOTE: The performace of the following code may // be very poor. float ulThickness = cm.underlineThickness; + float ulOffset = cm.underlineOffset; Rectangle2D lb = label.getLogicalBounds(); float x1 = x; @@ -387,7 +388,8 @@ public class Decoration { Area area = null; if (stdUnderline != null) { - Shape ul = stdUnderline.getUnderlineShape(ulThickness, x1, x2, y); + Shape ul = stdUnderline.getUnderlineShape(ulThickness, + x1, x2, y+ulOffset); area = new Area(ul); } @@ -406,7 +408,8 @@ public class Decoration { } if (imUnderline != null) { - Shape ul = imUnderline.getUnderlineShape(ulThickness, x1, x2, y); + Shape ul = imUnderline.getUnderlineShape(ulThickness, + x1, x2, y+ulOffset); Area ulArea = new Area(ul); if (area == null) { area = ulArea; diff --git a/jdk/test/java/awt/font/TextLayout/UnderlinePositionTest.java b/jdk/test/java/awt/font/TextLayout/UnderlinePositionTest.java new file mode 100644 index 00000000000..9d0ff989b45 --- /dev/null +++ b/jdk/test/java/awt/font/TextLayout/UnderlinePositionTest.java @@ -0,0 +1,88 @@ +/* + * Copyright 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. + * + * 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. + */ + +/* @test + * @summary verify outline and stroking of underline match. + * @bug 6751616 + */ + +import java.awt.*; +import java.awt.font.*; +import java.awt.geom.*; +import java.awt.image.*; +import java.util.*; + +public class UnderlinePositionTest { + + public static void main(String[] args) { + BufferedImage bi = + new BufferedImage(600, 150, BufferedImage.TYPE_INT_RGB); + Graphics2D g2d = bi.createGraphics(); + g2d.setColor(Color.white); + g2d.fillRect(0, 0, 600, 150); + + float x = 10; + float y = 90; + Map map = new HashMap(); + map.put(TextAttribute.UNDERLINE, TextAttribute.UNDERLINE_ON); + map.put(TextAttribute.SIZE, new Float(80)); + + FontRenderContext frc = g2d.getFontRenderContext(); + + // Use all spaces for the text so we know we are dealing + // only with pixels from the underline. + String text = " "; + TextLayout tl = new TextLayout(text, map, frc); + Shape outline = tl.getOutline(null); + Rectangle2D bounds = outline.getBounds(); + + g2d.translate(x, y); + g2d.setColor(Color.RED); + tl.draw(g2d, 0, 0); + + /* By getting the outline, then its bounds, then filling + * according to the same pixelisation rules, this ought to + * match the position of the original underline. If any + * red pixels are left, then the test will fail. + */ + g2d.setColor(Color.BLUE); + g2d.fill(bounds); + g2d.dispose(); + + checkBI(bi, Color.RED); + } + + static void checkBI(BufferedImage bi, Color badColor) { + int badrgb = badColor.getRGB(); + int w = bi.getWidth(null); + int h = bi.getHeight(null); + for (int x=0; x Date: Tue, 21 Oct 2008 08:25:38 -0700 Subject: [PATCH 014/110] 6755274: 6u10b33 2d tests fails on sles10x64 with jvm crash Reviewed-by: campbell --- .../sun/java2d/opengl/GLXGraphicsConfig.java | 14 ++++++++------ .../sun/java2d/opengl/WGLGraphicsConfig.java | 14 ++++++++------ 2 files changed, 16 insertions(+), 12 deletions(-) diff --git a/jdk/src/solaris/classes/sun/java2d/opengl/GLXGraphicsConfig.java b/jdk/src/solaris/classes/sun/java2d/opengl/GLXGraphicsConfig.java index 8e8e18448b6..d21e177542d 100644 --- a/jdk/src/solaris/classes/sun/java2d/opengl/GLXGraphicsConfig.java +++ b/jdk/src/solaris/classes/sun/java2d/opengl/GLXGraphicsConfig.java @@ -120,12 +120,14 @@ public class GLXGraphicsConfig new GLXGetConfigInfo(device.getScreen(), visualnum); rq.flushAndInvokeNow(action); cfginfo = action.getConfigInfo(); - OGLContext.setScratchSurface(cfginfo); - rq.flushAndInvokeNow(new Runnable() { - public void run() { - ids[0] = OGLContext.getOGLIdString(); - } - }); + if (cfginfo != 0L) { + OGLContext.setScratchSurface(cfginfo); + rq.flushAndInvokeNow(new Runnable() { + public void run() { + ids[0] = OGLContext.getOGLIdString(); + } + }); + } } finally { rq.unlock(); } diff --git a/jdk/src/windows/classes/sun/java2d/opengl/WGLGraphicsConfig.java b/jdk/src/windows/classes/sun/java2d/opengl/WGLGraphicsConfig.java index 7ff7e1e8d09..bdd0ade4638 100644 --- a/jdk/src/windows/classes/sun/java2d/opengl/WGLGraphicsConfig.java +++ b/jdk/src/windows/classes/sun/java2d/opengl/WGLGraphicsConfig.java @@ -127,12 +127,14 @@ public class WGLGraphicsConfig new WGLGetConfigInfo(device.getScreen(), pixfmt); rq.flushAndInvokeNow(action); cfginfo = action.getConfigInfo(); - OGLContext.setScratchSurface(cfginfo); - rq.flushAndInvokeNow(new Runnable() { - public void run() { - ids[0] = OGLContext.getOGLIdString(); - } - }); + if (cfginfo != 0L) { + OGLContext.setScratchSurface(cfginfo); + rq.flushAndInvokeNow(new Runnable() { + public void run() { + ids[0] = OGLContext.getOGLIdString(); + } + }); + } } finally { rq.unlock(); } From 66b3af8b02e3fb7116f19100c66c1ba105491a05 Mon Sep 17 00:00:00 2001 From: Phil Race Date: Tue, 28 Oct 2008 14:40:58 -0700 Subject: [PATCH 015/110] 6764543: SIGSEGV in libfontconfig.so starting from jdk7b33 Reviewed-by: campbell, igor --- jdk/src/solaris/native/sun/awt/fontpath.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/jdk/src/solaris/native/sun/awt/fontpath.c b/jdk/src/solaris/native/sun/awt/fontpath.c index 18efe1c1f06..b944ff93360 100644 --- a/jdk/src/solaris/native/sun/awt/fontpath.c +++ b/jdk/src/solaris/native/sun/awt/fontpath.c @@ -1233,7 +1233,7 @@ Java_sun_font_FontManager_getFontConfig for (j=0; jfonts[j]; FcChar8 *fontformat; - FcCharSet *unionCharset, *charset; + FcCharSet *unionCharset = NULL, *charset; fontformat = NULL; (*FcPatternGetString)(fontPattern, FC_FONTFORMAT, 0, &fontformat); @@ -1256,7 +1256,7 @@ Java_sun_font_FontManager_getFontConfig if (nfonts==10) { minGlyphs = 50; } - if (j == 0) { + if (unionCharset == NULL) { unionCharset = charset; } else { if ((*FcCharSetSubtractCount)(charset, unionCharset) From 285a7ec5e318f975a9c965e7e96be9105cae0bab Mon Sep 17 00:00:00 2001 From: Dmitri Trembovetski Date: Tue, 28 Oct 2008 14:47:14 -0700 Subject: [PATCH 016/110] 6764257: D3D/OGL: color is not reset properly after save/restoreState() [RSL] Reviewed-by: campbell --- .../sun/java2d/pipe/BufferedContext.java | 13 ++- .../RSLContextInvalidationTest.java | 107 ++++++++++++++++++ 2 files changed, 115 insertions(+), 5 deletions(-) create mode 100644 jdk/test/sun/java2d/pipe/hw/RSLContextInvalidationTest/RSLContextInvalidationTest.java diff --git a/jdk/src/share/classes/sun/java2d/pipe/BufferedContext.java b/jdk/src/share/classes/sun/java2d/pipe/BufferedContext.java index 05989523083..886ba1e11d4 100644 --- a/jdk/src/share/classes/sun/java2d/pipe/BufferedContext.java +++ b/jdk/src/share/classes/sun/java2d/pipe/BufferedContext.java @@ -90,7 +90,8 @@ public abstract class BufferedContext { private Region validatedClip; private Composite validatedComp; private Paint validatedPaint; - private boolean isValidatedPaintAColor; + // renamed from isValidatedPaintAColor as part of a work around for 6764257 + private boolean isValidatedPaintJustAColor; private int validatedRGB; private int validatedFlags; private boolean xformInUse; @@ -182,7 +183,7 @@ public abstract class BufferedContext { if (paint instanceof Color) { // REMIND: not 30-bit friendly int newRGB = ((Color)paint).getRGB(); - if (isValidatedPaintAColor) { + if (isValidatedPaintJustAColor) { if (newRGB != validatedRGB) { validatedRGB = newRGB; updatePaint = true; @@ -190,13 +191,13 @@ public abstract class BufferedContext { } else { validatedRGB = newRGB; updatePaint = true; - isValidatedPaintAColor = true; + isValidatedPaintJustAColor = true; } } else if (validatedPaint != paint) { updatePaint = true; // this should be set when we are switching from paint to color // in which case this condition will be true - isValidatedPaintAColor = false; + isValidatedPaintJustAColor = false; } if ((currentContext != this) || @@ -281,7 +282,7 @@ public abstract class BufferedContext { txChanged = true; } // non-Color paints may require paint revalidation - if (!isValidatedPaintAColor && txChanged) { + if (!isValidatedPaintJustAColor && txChanged) { updatePaint = true; } @@ -427,10 +428,12 @@ public abstract class BufferedContext { resetTransform(); resetComposite(); resetClip(); + BufferedPaints.resetPaint(rq); invalidateSurfaces(); validatedComp = null; validatedClip = null; validatedPaint = null; + isValidatedPaintJustAColor = false; xformInUse = false; } diff --git a/jdk/test/sun/java2d/pipe/hw/RSLContextInvalidationTest/RSLContextInvalidationTest.java b/jdk/test/sun/java2d/pipe/hw/RSLContextInvalidationTest/RSLContextInvalidationTest.java new file mode 100644 index 00000000000..1a895c3c550 --- /dev/null +++ b/jdk/test/sun/java2d/pipe/hw/RSLContextInvalidationTest/RSLContextInvalidationTest.java @@ -0,0 +1,107 @@ +/* + * Copyright 2007-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. + * + * 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. + */ + +/* + * @test + * @bug 6764257 + * @summary Tests that the color is reset properly after save/restore context + * @author Dmitri.Trembovetski@sun.com: area=Graphics + * @compile -XDignore.symbol.file=true RSLContextInvalidationTest.java + * @run main/othervm RSLContextInvalidationTest + * @run main/othervm -Dsun.java2d.noddraw=true RSLContextInvalidationTest + * @run main/othervm -Dsun.java2d.opengl=True RSLContextInvalidationTest + */ + +import java.awt.Color; +import java.awt.Graphics; +import java.awt.GraphicsConfiguration; +import java.awt.GraphicsDevice; +import java.awt.GraphicsEnvironment; +import java.awt.image.BufferedImage; +import java.awt.image.VolatileImage; +import sun.java2d.DestSurfaceProvider; +import sun.java2d.Surface; +import sun.java2d.pipe.RenderQueue; +import sun.java2d.pipe.hw.*; + +public class RSLContextInvalidationTest { + + public static void main(String[] args) { + GraphicsEnvironment ge = + GraphicsEnvironment.getLocalGraphicsEnvironment(); + GraphicsDevice gd = ge.getDefaultScreenDevice(); + GraphicsConfiguration gc = gd.getDefaultConfiguration(); + VolatileImage vi = gc.createCompatibleVolatileImage(100, 100); + vi.validate(gc); + VolatileImage vi1 = gc.createCompatibleVolatileImage(100, 100); + vi1.validate(gc); + + if (!(vi instanceof DestSurfaceProvider)) { + System.out.println("Test considered PASSED: no HW acceleration"); + return; + } + + DestSurfaceProvider p = (DestSurfaceProvider)vi; + Surface s = p.getDestSurface(); + if (!(s instanceof AccelSurface)) { + System.out.println("Test considered PASSED: no HW acceleration"); + return; + } + AccelSurface dst = (AccelSurface)s; + + Graphics g = vi.createGraphics(); + g.drawImage(vi1, 95, 95, null); + g.setColor(Color.red); + g.fillRect(0, 0, 100, 100); + g.setColor(Color.black); + g.fillRect(0, 0, 100, 100); + // after this the validated context color is black + + RenderQueue rq = dst.getContext().getRenderQueue(); + rq.lock(); + try { + dst.getContext().saveState(); + dst.getContext().restoreState(); + } finally { + rq.unlock(); + } + + // this will cause ResetPaint (it will set color to extended EA=ff, + // which is ffffffff==Color.white) + g.drawImage(vi1, 95, 95, null); + + // now try filling with black again, but it will come up as white + // because this fill rect won't validate the color properly + g.setColor(Color.black); + g.fillRect(0, 0, 100, 100); + + BufferedImage bi = vi.getSnapshot(); + if (bi.getRGB(50, 50) != Color.black.getRGB()) { + throw new RuntimeException("Test FAILED: found color="+ + Integer.toHexString(bi.getRGB(50, 50))+" instead of "+ + Integer.toHexString(Color.black.getRGB())); + } + + System.out.println("Test PASSED."); + } +} From df32a451dabe19d135e2adaf1803dfbbbc640577 Mon Sep 17 00:00:00 2001 From: Igor Nekrestyanov Date: Wed, 29 Oct 2008 01:52:22 +0300 Subject: [PATCH 017/110] 6761856: OpenJDK: vertical text metrics may be significanly different from those returned by Sun JDK Reviewed-by: bae, prr --- jdk/src/share/native/sun/font/freetypeScaler.c | 2 +- jdk/test/java/awt/font/TextLayout/TextLayoutBounds.java | 9 +++++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/jdk/src/share/native/sun/font/freetypeScaler.c b/jdk/src/share/native/sun/font/freetypeScaler.c index 5f6385b2868..59c1a180c29 100644 --- a/jdk/src/share/native/sun/font/freetypeScaler.c +++ b/jdk/src/share/native/sun/font/freetypeScaler.c @@ -1281,7 +1281,7 @@ Java_sun_font_FreetypeFontScaler_getGlyphOutlineBoundsNative( sunFontIDs.rect2DFloatClass, sunFontIDs.rect2DFloatCtr4, F26Dot6ToFloat(bbox.xMin), - F26Dot6ToFloat(bbox.yMax), + F26Dot6ToFloat(-bbox.yMax), F26Dot6ToFloat(bbox.xMax-bbox.xMin), F26Dot6ToFloat(bbox.yMax-bbox.yMin)); } diff --git a/jdk/test/java/awt/font/TextLayout/TextLayoutBounds.java b/jdk/test/java/awt/font/TextLayout/TextLayoutBounds.java index 6abd40bce01..38cfc220d97 100644 --- a/jdk/test/java/awt/font/TextLayout/TextLayoutBounds.java +++ b/jdk/test/java/awt/font/TextLayout/TextLayoutBounds.java @@ -22,7 +22,7 @@ */ /* @test * @summary verify TextLayout.getBounds() return visual bounds - * @bug 6323611 + * @bug 6323611 6761856 */ import java.awt.*; @@ -39,10 +39,15 @@ public class TextLayoutBounds { Rectangle2D tlBounds = tl.getBounds(); GlyphVector gv = f.createGlyphVector(frc, s); Rectangle2D gvvBounds = gv.getVisualBounds(); + Rectangle2D oBounds = tl.getOutline(null).getBounds2D(); System.out.println("tlbounds="+tlBounds); System.out.println("gvbounds="+gvvBounds); + System.out.println("outlineBounds="+oBounds); if (!gvvBounds.equals(tlBounds)) { - throw new RuntimeException("Bounds differ"); + throw new RuntimeException("Bounds differ [gvv != tl]"); + } + if (!tlBounds.equals(oBounds)) { + throw new RuntimeException("Bounds differ [tl != outline]"); } } } From f0bc3cdc91d88c8397543db58522476040fd9a6a Mon Sep 17 00:00:00 2001 From: Andrew Brygin Date: Sat, 1 Nov 2008 20:42:18 +0300 Subject: [PATCH 018/110] 6541476: PNG imageio plugin incorrectly handles iTXt chunk Reviewed-by: igor, prr --- .../imageio/plugins/png/PNGImageReader.java | 42 ++-- .../imageio/plugins/png/PNGImageWriter.java | 47 ++-- .../sun/imageio/plugins/png/PNGMetadata.java | 61 +++-- .../javax/imageio/plugins/png/ITXtTest.java | 236 ++++++++++++++++++ 4 files changed, 313 insertions(+), 73 deletions(-) create mode 100644 jdk/test/javax/imageio/plugins/png/ITXtTest.java diff --git a/jdk/src/share/classes/com/sun/imageio/plugins/png/PNGImageReader.java b/jdk/src/share/classes/com/sun/imageio/plugins/png/PNGImageReader.java index e0a9a92a039..84a593264be 100644 --- a/jdk/src/share/classes/com/sun/imageio/plugins/png/PNGImageReader.java +++ b/jdk/src/share/classes/com/sun/imageio/plugins/png/PNGImageReader.java @@ -44,7 +44,6 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.Enumeration; import java.util.Iterator; -import java.util.List; import java.util.zip.Inflater; import java.util.zip.InflaterInputStream; import javax.imageio.IIOException; @@ -57,6 +56,7 @@ import javax.imageio.stream.ImageInputStream; import com.sun.imageio.plugins.common.InputStreamAdapter; import com.sun.imageio.plugins.common.ReaderUtil; import com.sun.imageio.plugins.common.SubImageInputStream; +import java.io.ByteArrayOutputStream; import sun.awt.image.ByteInterleavedRaster; class PNGImageDataEnumeration implements Enumeration { @@ -207,6 +207,15 @@ public class PNGImageReader extends ImageReader { resetStreamSettings(); } + private String readNullTerminatedString(String charset) throws IOException { + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + int b; + while ((b = stream.read()) != 0) { + baos.write(b); + } + return new String(baos.toByteArray(), charset); + } + private String readNullTerminatedString() throws IOException { StringBuilder b = new StringBuilder(); int c; @@ -445,26 +454,27 @@ public class PNGImageReader extends ImageReader { metadata.iTXt_keyword.add(keyword); int compressionFlag = stream.readUnsignedByte(); - metadata.iTXt_compressionFlag.add(new Integer(compressionFlag)); + metadata.iTXt_compressionFlag.add(Boolean.valueOf(compressionFlag == 1)); int compressionMethod = stream.readUnsignedByte(); - metadata.iTXt_compressionMethod.add(new Integer(compressionMethod)); + metadata.iTXt_compressionMethod.add(Integer.valueOf(compressionMethod)); - String languageTag = readNullTerminatedString(); + String languageTag = readNullTerminatedString("UTF8"); metadata.iTXt_languageTag.add(languageTag); - String translatedKeyword = stream.readUTF(); + String translatedKeyword = + readNullTerminatedString("UTF8"); metadata.iTXt_translatedKeyword.add(translatedKeyword); - stream.skipBytes(1); // Null separator String text; + long pos = stream.getStreamPosition(); + byte[] b = new byte[(int)(chunkStart + chunkLength - pos)]; + stream.readFully(b); + if (compressionFlag == 1) { // Decompress the text - long pos = stream.getStreamPosition(); - byte[] b = new byte[(int)(chunkStart + chunkLength - pos)]; - stream.readFully(b); - text = inflate(b); + text = new String(inflate(b), "UTF8"); } else { - text = stream.readUTF(); + text = new String(b, "UTF8"); } metadata.iTXt_text.add(text); } @@ -613,20 +623,20 @@ public class PNGImageReader extends ImageReader { metadata.tRNS_present = true; } - private static String inflate(byte[] b) throws IOException { + private static byte[] inflate(byte[] b) throws IOException { InputStream bais = new ByteArrayInputStream(b); InputStream iis = new InflaterInputStream(bais); + ByteArrayOutputStream baos = new ByteArrayOutputStream(); - StringBuilder sb = new StringBuilder(80); int c; try { while ((c = iis.read()) != -1) { - sb.append((char)c); + baos.write(c); } } finally { iis.close(); } - return sb.toString(); + return baos.toByteArray(); } private void parse_zTXt_chunk(int chunkLength) throws IOException { @@ -638,7 +648,7 @@ public class PNGImageReader extends ImageReader { byte[] b = new byte[chunkLength - keyword.length() - 2]; stream.readFully(b); - metadata.zTXt_text.add(inflate(b)); + metadata.zTXt_text.add(new String(inflate(b))); } private void readMetadata() throws IIOException { diff --git a/jdk/src/share/classes/com/sun/imageio/plugins/png/PNGImageWriter.java b/jdk/src/share/classes/com/sun/imageio/plugins/png/PNGImageWriter.java index b4849e8aa4c..ea4233a68ea 100644 --- a/jdk/src/share/classes/com/sun/imageio/plugins/png/PNGImageWriter.java +++ b/jdk/src/share/classes/com/sun/imageio/plugins/png/PNGImageWriter.java @@ -671,13 +671,13 @@ public class PNGImageWriter extends ImageWriter { } } - private byte[] deflate(String s) throws IOException { + private byte[] deflate(byte[] b) throws IOException { ByteArrayOutputStream baos = new ByteArrayOutputStream(); DeflaterOutputStream dos = new DeflaterOutputStream(baos); - int len = s.length(); + int len = b.length; for (int i = 0; i < len; i++) { - dos.write((int)s.charAt(i)); + dos.write((int)(0xff & b[i])); } dos.close(); @@ -685,38 +685,37 @@ public class PNGImageWriter extends ImageWriter { } private void write_iTXt() throws IOException { - Iterator keywordIter = metadata.iTXt_keyword.iterator(); - Iterator flagIter = metadata.iTXt_compressionFlag.iterator(); - Iterator methodIter = metadata.iTXt_compressionMethod.iterator(); - Iterator languageIter = metadata.iTXt_languageTag.iterator(); - Iterator translatedKeywordIter = + Iterator keywordIter = metadata.iTXt_keyword.iterator(); + Iterator flagIter = metadata.iTXt_compressionFlag.iterator(); + Iterator methodIter = metadata.iTXt_compressionMethod.iterator(); + Iterator languageIter = metadata.iTXt_languageTag.iterator(); + Iterator translatedKeywordIter = metadata.iTXt_translatedKeyword.iterator(); - Iterator textIter = metadata.iTXt_text.iterator(); + Iterator textIter = metadata.iTXt_text.iterator(); while (keywordIter.hasNext()) { ChunkStream cs = new ChunkStream(PNGImageReader.iTXt_TYPE, stream); - String keyword = (String)keywordIter.next(); - cs.writeBytes(keyword); + + cs.writeBytes(keywordIter.next()); cs.writeByte(0); - int flag = ((Integer)flagIter.next()).intValue(); - cs.writeByte(flag); - int method = ((Integer)methodIter.next()).intValue(); - cs.writeByte(method); + Boolean compressed = flagIter.next(); + cs.writeByte(compressed ? 1 : 0); - String languageTag = (String)languageIter.next(); - cs.writeBytes(languageTag); + cs.writeByte(methodIter.next().intValue()); + + cs.writeBytes(languageIter.next()); cs.writeByte(0); - String translatedKeyword = (String)translatedKeywordIter.next(); - cs.writeBytes(translatedKeyword); + + cs.write(translatedKeywordIter.next().getBytes("UTF8")); cs.writeByte(0); - String text = (String)textIter.next(); - if (flag == 1) { - cs.write(deflate(text)); + String text = textIter.next(); + if (compressed) { + cs.write(deflate(text.getBytes("UTF8"))); } else { - cs.writeUTF(text); + cs.write(text.getBytes("UTF8")); } cs.finish(); } @@ -737,7 +736,7 @@ public class PNGImageWriter extends ImageWriter { cs.writeByte(compressionMethod); String text = (String)textIter.next(); - cs.write(deflate(text)); + cs.write(deflate(text.getBytes())); cs.finish(); } } diff --git a/jdk/src/share/classes/com/sun/imageio/plugins/png/PNGMetadata.java b/jdk/src/share/classes/com/sun/imageio/plugins/png/PNGMetadata.java index 19f4f67013e..5475fc79651 100644 --- a/jdk/src/share/classes/com/sun/imageio/plugins/png/PNGMetadata.java +++ b/jdk/src/share/classes/com/sun/imageio/plugins/png/PNGMetadata.java @@ -174,12 +174,12 @@ public class PNGMetadata extends IIOMetadata implements Cloneable { public byte[] iCCP_compressedProfile; // iTXt chunk - public ArrayList iTXt_keyword = new ArrayList(); // Strings - public ArrayList iTXt_compressionFlag = new ArrayList(); // Integers - public ArrayList iTXt_compressionMethod = new ArrayList(); // Integers - public ArrayList iTXt_languageTag = new ArrayList(); // Strings - public ArrayList iTXt_translatedKeyword = new ArrayList(); // Strings - public ArrayList iTXt_text = new ArrayList(); // Strings + public ArrayList iTXt_keyword = new ArrayList(); + public ArrayList iTXt_compressionFlag = new ArrayList(); + public ArrayList iTXt_compressionMethod = new ArrayList(); + public ArrayList iTXt_languageTag = new ArrayList(); + public ArrayList iTXt_translatedKeyword = new ArrayList(); + public ArrayList iTXt_text = new ArrayList(); // pHYs chunk public boolean pHYs_present; @@ -597,19 +597,17 @@ public class PNGMetadata extends IIOMetadata implements Cloneable { if (iTXt_keyword.size() > 0) { IIOMetadataNode iTXt_parent = new IIOMetadataNode("iTXt"); for (int i = 0; i < iTXt_keyword.size(); i++) { - Integer val; - IIOMetadataNode iTXt_node = new IIOMetadataNode("iTXtEntry"); - iTXt_node.setAttribute("keyword", (String)iTXt_keyword.get(i)); - val = (Integer)iTXt_compressionFlag.get(i); - iTXt_node.setAttribute("compressionFlag", val.toString()); - val = (Integer)iTXt_compressionMethod.get(i); - iTXt_node.setAttribute("compressionMethod", val.toString()); + iTXt_node.setAttribute("keyword", iTXt_keyword.get(i)); + iTXt_node.setAttribute("compressionFlag", + iTXt_compressionFlag.get(i) ? "1" : "0"); + iTXt_node.setAttribute("compressionMethod", + iTXt_compressionMethod.get(i).toString()); iTXt_node.setAttribute("languageTag", - (String)iTXt_languageTag.get(i)); + iTXt_languageTag.get(i)); iTXt_node.setAttribute("translatedKeyword", - (String)iTXt_translatedKeyword.get(i)); - iTXt_node.setAttribute("text", (String)iTXt_text.get(i)); + iTXt_translatedKeyword.get(i)); + iTXt_node.setAttribute("text", iTXt_text.get(i)); iTXt_parent.appendChild(iTXt_node); } @@ -1037,11 +1035,11 @@ public class PNGMetadata extends IIOMetadata implements Cloneable { for (int i = 0; i < iTXt_keyword.size(); i++) { node = new IIOMetadataNode("TextEntry"); - node.setAttribute("keyword", (String)iTXt_keyword.get(i)); - node.setAttribute("value", (String)iTXt_text.get(i)); + node.setAttribute("keyword", iTXt_keyword.get(i)); + node.setAttribute("value", iTXt_text.get(i)); node.setAttribute("language", - (String)iTXt_languageTag.get(i)); - if (((Integer)iTXt_compressionFlag.get(i)).intValue() == 1) { + iTXt_languageTag.get(i)); + if (iTXt_compressionFlag.get(i)) { node.setAttribute("compression", "deflate"); } else { node.setAttribute("compression", "none"); @@ -1427,11 +1425,11 @@ public class PNGMetadata extends IIOMetadata implements Cloneable { boolean compressionFlag = getBooleanAttribute(iTXt_node, "compressionFlag"); - iTXt_compressionFlag.add(new Boolean(compressionFlag)); + iTXt_compressionFlag.add(Boolean.valueOf(compressionFlag)); String compressionMethod = getAttribute(iTXt_node, "compressionMethod"); - iTXt_compressionMethod.add(compressionMethod); + iTXt_compressionMethod.add(Integer.valueOf(compressionMethod)); String languageTag = getAttribute(iTXt_node, "languageTag"); @@ -1950,13 +1948,10 @@ public class PNGMetadata extends IIOMetadata implements Cloneable { tEXt_text.add(value); } } else { - int flag = compression.equals("zip") ? - 1 : 0; - // Use an iTXt node iTXt_keyword.add(keyword); - iTXt_compressionFlag.add(new Integer(flag)); - iTXt_compressionMethod.add(new Integer(0)); + iTXt_compressionFlag.add(Boolean.valueOf(compression.equals("zip"))); + iTXt_compressionMethod.add(Integer.valueOf(0)); iTXt_languageTag.add(language); iTXt_translatedKeyword.add(keyword); // fake it iTXt_text.add(value); @@ -1993,12 +1988,12 @@ public class PNGMetadata extends IIOMetadata implements Cloneable { gAMA_present = false; hIST_present = false; iCCP_present = false; - iTXt_keyword = new ArrayList(); - iTXt_compressionFlag = new ArrayList(); - iTXt_compressionMethod = new ArrayList(); - iTXt_languageTag = new ArrayList(); - iTXt_translatedKeyword = new ArrayList(); - iTXt_text = new ArrayList(); + iTXt_keyword = new ArrayList(); + iTXt_compressionFlag = new ArrayList(); + iTXt_compressionMethod = new ArrayList(); + iTXt_languageTag = new ArrayList(); + iTXt_translatedKeyword = new ArrayList(); + iTXt_text = new ArrayList(); pHYs_present = false; sBIT_present = false; sPLT_present = false; diff --git a/jdk/test/javax/imageio/plugins/png/ITXtTest.java b/jdk/test/javax/imageio/plugins/png/ITXtTest.java new file mode 100644 index 00000000000..9bace746227 --- /dev/null +++ b/jdk/test/javax/imageio/plugins/png/ITXtTest.java @@ -0,0 +1,236 @@ +/* + * Copyright 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. + * + * 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. + */ + +/** + * @test + * @bug 6541476 + * @summary Test verifies that ImageIO PNG plugin correcly handles the + * iTxt chunk (International textual data). + * + * @run main ITXtTest + */ + + +import java.awt.Color; +import java.awt.Graphics2D; +import java.awt.image.BufferedImage; +import java.io.File; + +import javax.imageio.ImageIO; +import javax.imageio.ImageReader; +import javax.imageio.IIOImage; +import javax.imageio.ImageTypeSpecifier; +import javax.imageio.ImageWriter; +import javax.imageio.metadata.IIOMetadata; +import javax.imageio.metadata.IIOMetadataNode; +import javax.imageio.stream.ImageOutputStream; +import javax.imageio.stream.ImageInputStream; + +import org.w3c.dom.Node; + +public class ITXtTest { + static public void main(String args[]) { + ITXtTest t_en = new ITXtTest(); + t_en.description = "xml - en"; + t_en.keyword = "XML:com.adobe.xmp"; + t_en.isCompressed = false; + t_en.compression = 0; + t_en.language = "en"; + t_en.trasKeyword = "XML:com.adobe.xmp"; + t_en.text = "Something"; + + doTest(t_en); + + // check compression case + t_en.isCompressed = true; + t_en.description = "xml - en - compressed"; + + doTest(t_en); + + ITXtTest t_ru = new ITXtTest(); + t_ru.description = "xml - ru"; + t_ru.keyword = "XML:com.adobe.xmp"; + t_ru.isCompressed = false; + t_ru.compression = 0; + t_ru.language = "ru"; + t_ru.trasKeyword = "\u0410\u0410\u0410\u0410\u0410 XML"; + t_ru.text = "\u042A\u042F\u042F\u042F\u042F\u042F\u042F"; + + doTest(t_ru); + + t_ru.isCompressed = true; + t_ru.description = "xml - ru - compressed"; + + doTest(t_ru); + } + + + String description; + + String keyword; + boolean isCompressed; + int compression; + String language; + String trasKeyword; + String text; + + + public IIOMetadataNode getNode() { + IIOMetadataNode iTXt = new IIOMetadataNode("iTXt"); + IIOMetadataNode iTXtEntry = new IIOMetadataNode("iTXtEntry"); + iTXtEntry.setAttribute("keyword", keyword); + iTXtEntry.setAttribute("compressionFlag", + isCompressed ? "true" : "false"); + iTXtEntry.setAttribute("compressionMethod", + Integer.toString(compression)); + iTXtEntry.setAttribute("languageTag", language); + iTXtEntry.setAttribute("translatedKeyword", + trasKeyword); + iTXtEntry.setAttribute("text", text); + iTXt.appendChild(iTXtEntry); + return iTXt; + } + + public static ITXtTest getFromNode(IIOMetadataNode n) { + ITXtTest t = new ITXtTest(); + + if (!"iTXt".equals(n.getNodeName())) { + throw new RuntimeException("Invalid node"); + } + IIOMetadataNode e = (IIOMetadataNode)n.getFirstChild(); + if (!"iTXtEntry".equals(e.getNodeName())) { + throw new RuntimeException("Invalid entry node"); + } + t.keyword = e.getAttribute("keyword"); + t.isCompressed = + (Integer.valueOf(e.getAttribute("compressionFlag")).intValue() == 1); + t.compression = + Integer.valueOf(e.getAttribute("compressionMethod")).intValue(); + t.language = e.getAttribute("languageTag"); + t.trasKeyword = e.getAttribute("translatedKeyword"); + t.text = e.getAttribute("text"); + + return t; + } + + @Override + public boolean equals(Object o) { + if (! (o instanceof ITXtTest)) { + return false; + } + ITXtTest t = (ITXtTest)o; + if (!keyword.equals(t.keyword)) { return false; } + if (isCompressed != t.isCompressed) { return false; } + if (compression != t.compression) { return false; } + if (!language.equals(t.language)) { return false; } + if (!trasKeyword.equals(t.trasKeyword)) { return false; } + if (!text.equals(t.text)) { return false; } + + return true; + } + + + + private static void doTest(ITXtTest src) { + + System.out.println("Test: " + src.description); + + File file = new File("test.png"); + + writeTo(file, src); + ITXtTest dst = readFrom(file); + + if (dst == null || !dst.equals(src)) { + throw new RuntimeException("Test failed."); + } + + System.out.println("Test passed."); + } + + private static void writeTo(File f, ITXtTest t) { + BufferedImage src = createBufferedImage(); + try { + ImageOutputStream imageOutputStream = + ImageIO.createImageOutputStream(f); + + ImageTypeSpecifier imageTypeSpecifier = + new ImageTypeSpecifier(src); + ImageWriter imageWriter = + ImageIO.getImageWritersByFormatName("PNG").next(); + + imageWriter.setOutput(imageOutputStream); + + IIOMetadata m = + imageWriter.getDefaultImageMetadata(imageTypeSpecifier, null); + + String format = m.getNativeMetadataFormatName(); + Node root = m.getAsTree(format); + + IIOMetadataNode iTXt = t.getNode(); + root.appendChild(iTXt); + m.setFromTree(format, root); + + imageWriter.write(new IIOImage(src, null, m)); + imageOutputStream.close(); + System.out.println("Writing done."); + } catch (Throwable e) { + throw new RuntimeException("Writing test failed.", e); + } + } + + private static ITXtTest readFrom(File f) { + try { + ImageInputStream iis = ImageIO.createImageInputStream(f); + ImageReader r = ImageIO.getImageReaders(iis).next(); + r.setInput(iis); + + IIOImage dst = r.readAll(0, null); + + // look for iTXt node + IIOMetadata m = dst.getMetadata(); + Node root = m.getAsTree(m.getNativeMetadataFormatName()); + Node n = root.getFirstChild(); + while (n != null && !"iTXt".equals(n.getNodeName())) { + n = n.getNextSibling(); + } + if (n == null) { + throw new RuntimeException("No iTXt node!"); + } + ITXtTest t = ITXtTest.getFromNode((IIOMetadataNode)n); + return t; + } catch (Throwable e) { + throw new RuntimeException("Reading test failed.", e); + } + } + + private static BufferedImage createBufferedImage() { + BufferedImage image = new BufferedImage(128, 128, + BufferedImage.TYPE_4BYTE_ABGR_PRE); + Graphics2D graph = image.createGraphics(); + graph.setPaintMode(); + graph.setColor(Color.orange); + graph.fillRect(32, 32, 64, 64); + graph.dispose(); + return image; + } +} From e7b4bb5f00c694a5ea7f52e817c1ebc28e09176f Mon Sep 17 00:00:00 2001 From: Dmitri Trembovetski Date: Tue, 18 Nov 2008 17:16:27 -0800 Subject: [PATCH 019/110] 6758179: D3D: AlphaComposite is applied incorrectly for uncached opaque BufferedImage Reviewed-by: campbell, flar --- .../native/sun/java2d/d3d/D3DBlitLoops.cpp | 6 +- .../OpaqueImageToSurfaceBlitTest.java | 75 +++++++++++++++++++ 2 files changed, 80 insertions(+), 1 deletion(-) create mode 100644 jdk/test/sun/java2d/DirectX/OpaqueImageToSurfaceBlitTest/OpaqueImageToSurfaceBlitTest.java diff --git a/jdk/src/windows/native/sun/java2d/d3d/D3DBlitLoops.cpp b/jdk/src/windows/native/sun/java2d/d3d/D3DBlitLoops.cpp index 3a729a19741..f632d195b72 100644 --- a/jdk/src/windows/native/sun/java2d/d3d/D3DBlitLoops.cpp +++ b/jdk/src/windows/native/sun/java2d/d3d/D3DBlitLoops.cpp @@ -252,11 +252,15 @@ D3DBL_CopyImageToIntXrgbSurface(SurfaceDataRasInfo *pSrcInfo, pSrcInfo, &dstInfo, NULL, NULL); break; case ST_INT_ARGB_PRE: - case ST_INT_RGB: AnyIntIsomorphicCopy(pSrcBase, pDstBase, srcWidth, srcHeight, pSrcInfo, &dstInfo, NULL, NULL); break; + case ST_INT_RGB: + IntRgbToIntArgbConvert(pSrcBase, pDstBase, + srcWidth, srcHeight, + pSrcInfo, &dstInfo, NULL, NULL); + break; case ST_INT_ARGB_BM: // REMIND: we don't have such sw loop // so this path is disabled for now on java level diff --git a/jdk/test/sun/java2d/DirectX/OpaqueImageToSurfaceBlitTest/OpaqueImageToSurfaceBlitTest.java b/jdk/test/sun/java2d/DirectX/OpaqueImageToSurfaceBlitTest/OpaqueImageToSurfaceBlitTest.java new file mode 100644 index 00000000000..2135fa75ec1 --- /dev/null +++ b/jdk/test/sun/java2d/DirectX/OpaqueImageToSurfaceBlitTest/OpaqueImageToSurfaceBlitTest.java @@ -0,0 +1,75 @@ +/* + * Copyright 2007-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. + * + * 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. + */ + +/* + * @test + * @bug 6764257 + * @summary Tests that the alpha in opaque images doesn't affect result of alpha + * compositing + * @author Dmitri.Trembovetski@sun.com: area=Graphics + * @run main/othervm OpaqueImageToSurfaceBlitTest + * @run main/othervm -Dsun.java2d.noddraw=true OpaqueImageToSurfaceBlitTest + * @run main/othervm -Dsun.java2d.opengl=True OpaqueImageToSurfaceBlitTest + */ + +import java.awt.AlphaComposite; +import java.awt.Graphics2D; +import java.awt.GraphicsConfiguration; +import java.awt.GraphicsDevice; +import java.awt.GraphicsEnvironment; +import java.awt.image.BufferedImage; +import java.awt.image.DataBufferInt; +import java.awt.image.VolatileImage; + +public class OpaqueImageToSurfaceBlitTest { + + public static void main(String[] args) { + + GraphicsEnvironment ge = + GraphicsEnvironment.getLocalGraphicsEnvironment(); + GraphicsDevice gd = ge.getDefaultScreenDevice(); + GraphicsConfiguration gc = gd.getDefaultConfiguration(); + VolatileImage vi = gc.createCompatibleVolatileImage(16, 16); + vi.validate(gc); + + BufferedImage bi = + new BufferedImage(2, 2, BufferedImage.TYPE_INT_RGB); + int data[] = ((DataBufferInt)bi.getRaster().getDataBuffer()).getData(); + data[0] = 0x0000007f; + data[1] = 0x0000007f; + data[2] = 0xff00007f; + data[3] = 0xff00007f; + Graphics2D g = vi.createGraphics(); + g.setComposite(AlphaComposite.SrcOver.derive(0.999f)); + g.drawImage(bi, 0, 0, null); + + bi = vi.getSnapshot(); + if (bi.getRGB(0, 0) != bi.getRGB(1, 1)) { + throw new RuntimeException("Test FAILED: color at 0x0 ="+ + Integer.toHexString(bi.getRGB(0, 0))+" differs from 1x1 ="+ + Integer.toHexString(bi.getRGB(1,1))); + } + + System.out.println("Test PASSED."); + } +} From 72f113616147870e780ebea54c9a577f46569a71 Mon Sep 17 00:00:00 2001 From: Dmitri Trembovetski Date: Tue, 18 Nov 2008 18:32:31 -0800 Subject: [PATCH 020/110] 6757527: D3D: serious rendering issues on Nvidia boards with driver version 178.13 on Vista Reviewed-by: campbell --- .../native/sun/java2d/d3d/D3DBlitLoops.cpp | 17 ++++++++++++----- .../native/sun/java2d/d3d/D3DContext.cpp | 9 ++++----- 2 files changed, 16 insertions(+), 10 deletions(-) diff --git a/jdk/src/windows/native/sun/java2d/d3d/D3DBlitLoops.cpp b/jdk/src/windows/native/sun/java2d/d3d/D3DBlitLoops.cpp index f632d195b72..c8a5d786144 100644 --- a/jdk/src/windows/native/sun/java2d/d3d/D3DBlitLoops.cpp +++ b/jdk/src/windows/native/sun/java2d/d3d/D3DBlitLoops.cpp @@ -221,12 +221,17 @@ D3DBL_CopyImageToIntXrgbSurface(SurfaceDataRasInfo *pSrcInfo, " srctype=%d rect={%-4d, %-4d, %-4d, %-4d}", srctype, r.left, r.top, r.right, r.bottom); - if (pDesc->Usage == D3DUSAGE_DYNAMIC && - dstx == 0 && dstx == 0 && - srcWidth == pDesc->Width && srcHeight == pDesc->Height) - { + if (pDesc->Usage == D3DUSAGE_DYNAMIC) { + // it is safe to lock with discard because we don't care about the + // contents of dynamic textures, and some drivers are happier if + // dynamic textures are always locked with DISCARD dwLockFlags |= D3DLOCK_DISCARD; pR = NULL; + } else { + // in non-DYNAMIC case we lock the exact rect so there's no need to + // offset the destination pointer + dstx = 0; + dsty = 0; } res = pDstSurface->LockRect(&lockedRect, pR, dwLockFlags); @@ -243,7 +248,9 @@ D3DBL_CopyImageToIntXrgbSurface(SurfaceDataRasInfo *pSrcInfo, void *pSrcBase = PtrCoord(pSrcInfo->rasBase, srcx, pSrcInfo->pixelStride, srcy, pSrcInfo->scanStride); - void *pDstBase = lockedRect.pBits; + void *pDstBase = PtrCoord(lockedRect.pBits, + dstx, dstInfo.pixelStride, + dsty, dstInfo.scanStride); switch (srctype) { case ST_INT_ARGB: diff --git a/jdk/src/windows/native/sun/java2d/d3d/D3DContext.cpp b/jdk/src/windows/native/sun/java2d/d3d/D3DContext.cpp index e3937b8d3e9..186f4d7557c 100644 --- a/jdk/src/windows/native/sun/java2d/d3d/D3DContext.cpp +++ b/jdk/src/windows/native/sun/java2d/d3d/D3DContext.cpp @@ -1174,11 +1174,10 @@ D3DContext::UploadTileToTexture(D3DResource *pTextureRes, void *pixels, " rect={%-4d, %-4d, %-4d, %-4d}", r.left, r.top, r.right, r.bottom); - // REMIND: we should also check for dstx, dsty being 0 here, - // but they're always 0 in dynamic texture case - if (pDesc->Usage == D3DUSAGE_DYNAMIC && - srcWidth == pDesc->Width && srcHeight == pDesc->Height) - { + if (pDesc->Usage == D3DUSAGE_DYNAMIC) { + // it is safe to lock with discard because we don't care about the + // contents of dynamic textures and dstx,dsty for this case is + // always 0,0 because we are uploading into a tile texture dwLockFlags |= D3DLOCK_DISCARD; pR = NULL; } From df043132210466dc482fd875ff6428de157b6381 Mon Sep 17 00:00:00 2001 From: Xueming Shen Date: Wed, 19 Nov 2008 14:29:12 -0800 Subject: [PATCH 021/110] 6714428: 'os.name' system property shows wrong value on 64-bit Windows XP Update to detect the correct os.name for 64-bit XP Reviewed-by: darcy --- .../windows/native/java/lang/java_props_md.c | 46 ++++++++++++++++++- 1 file changed, 44 insertions(+), 2 deletions(-) diff --git a/jdk/src/windows/native/java/lang/java_props_md.c b/jdk/src/windows/native/java/lang/java_props_md.c index 3069580da9c..f75721f9f71 100644 --- a/jdk/src/windows/native/java/lang/java_props_md.c +++ b/jdk/src/windows/native/java/lang/java_props_md.c @@ -38,6 +38,12 @@ #define VER_PLATFORM_WIN32_WINDOWS 1 #endif +#ifndef PROCESSOR_ARCHITECTURE_AMD64 +#define PROCESSOR_ARCHITECTURE_AMD64 9 +#endif + +typedef void (WINAPI *PGNSI)(LPSYSTEM_INFO); + #define SHELL_KEY "Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Shell Folders" /* Encodings for Windows language groups. According to @@ -674,9 +680,22 @@ GetJavaProperties(JNIEnv* env) { char buf[100]; OSVERSIONINFOEX ver; + SYSTEM_INFO si; + PGNSI pGNSI; + ver.dwOSVersionInfoSize = sizeof(ver); GetVersionEx((OSVERSIONINFO *) &ver); + ZeroMemory(&si, sizeof(SYSTEM_INFO)); + // Call GetNativeSystemInfo if supported or GetSystemInfo otherwise. + pGNSI = (PGNSI) GetProcAddress( + GetModuleHandle(TEXT("kernel32.dll")), + "GetNativeSystemInfo"); + if(NULL != pGNSI) + pGNSI(&si); + else + GetSystemInfo(&si); + /* * From msdn page on OSVERSIONINFOEX, current as of this * writing, decoding of dwMajorVersion and dwMinorVersion. @@ -690,9 +709,14 @@ GetJavaProperties(JNIEnv* env) * Windows 3.51 3 51 * Windows NT 4.0 4 0 * Windows 2000 5 0 - * Windows XP 5 1 + * Windows XP 32 bit 5 1 * Windows Server 2003 family 5 2 + * Windows XP 64 bit 5 2 + * where ((&ver.wServicePackMinor) + 2) = 1 + * and si.wProcessorArchitecture = 9 * Windows Vista family 6 0 + * Windows 2008 6 0 + * where ((&ver.wServicePackMinor) + 2) = 1 * * This mapping will presumably be augmented as new Windows * versions are released. @@ -720,7 +744,25 @@ GetJavaProperties(JNIEnv* env) switch (ver.dwMinorVersion) { case 0: sprops.os_name = "Windows 2000"; break; case 1: sprops.os_name = "Windows XP"; break; - case 2: sprops.os_name = "Windows 2003"; break; + case 2: + /* + * From MSDN OSVERSIONINFOEX and SYSTEM_INFO documentation: + * + * "Because the version numbers for Windows Server 2003 + * and Windows XP 6u4 bit are identical, you must also test + * whether the wProductType member is VER_NT_WORKSTATION. + * and si.wProcessorArchitecture is + * PROCESSOR_ARCHITECTURE_AMD64 (which is 9) + * If it is, the operating system is Windows XP 64 bit; + * otherwise, it is Windows Server 2003." + */ + if(ver.wProductType == VER_NT_WORKSTATION && + si.wProcessorArchitecture == PROCESSOR_ARCHITECTURE_AMD64) { + sprops.os_name = "Windows XP"; /* 64 bit */ + } else { + sprops.os_name = "Windows 2003"; + } + break; default: sprops.os_name = "Windows NT (unknown)"; break; } } else if (ver.dwMajorVersion == 6) { From 4d6c508c349f6fce0475ab57c80639d9b48a90c5 Mon Sep 17 00:00:00 2001 From: Eamonn McManus Date: Thu, 20 Nov 2008 10:10:48 +0100 Subject: [PATCH 022/110] 6772779: @NotificationInfo does not create MBeanNotificationInfo in the MBean's MBeanInfo 6773593: CompositeDataSupport constructor javadoc is not in sync with the implementation Reviewed-by: sjiang --- .../DefaultMBeanServerInterceptor.java | 5 +- .../jmx/mbeanserver/MBeanIntrospector.java | 30 +++---- .../openmbean/CompositeDataSupport.java | 2 +- .../AnnotatedNotificationInfoTest.java | 79 ++++++++++++++----- 4 files changed, 82 insertions(+), 34 deletions(-) diff --git a/jdk/src/share/classes/com/sun/jmx/interceptor/DefaultMBeanServerInterceptor.java b/jdk/src/share/classes/com/sun/jmx/interceptor/DefaultMBeanServerInterceptor.java index 3d80a09eccb..6a261994bb4 100644 --- a/jdk/src/share/classes/com/sun/jmx/interceptor/DefaultMBeanServerInterceptor.java +++ b/jdk/src/share/classes/com/sun/jmx/interceptor/DefaultMBeanServerInterceptor.java @@ -70,6 +70,7 @@ import javax.management.JMRuntimeException; import javax.management.ListenerNotFoundException; import javax.management.MBeanException; import javax.management.MBeanInfo; +import javax.management.MBeanNotificationInfo; import javax.management.MBeanPermission; import javax.management.MBeanRegistration; import javax.management.MBeanRegistrationException; @@ -1045,8 +1046,10 @@ public class DefaultMBeanServerInterceptor Object resource = getResource(mbean); MBeanInjector.inject(resource, mbs, name); if (MBeanInjector.injectsSendNotification(resource)) { + MBeanNotificationInfo[] mbnis = + mbean.getMBeanInfo().getNotifications(); NotificationBroadcasterSupport nbs = - new NotificationBroadcasterSupport(); + new NotificationBroadcasterSupport(mbnis); MBeanInjector.injectSendNotification(resource, nbs); mbean = NotifySupport.wrap(mbean, nbs); } diff --git a/jdk/src/share/classes/com/sun/jmx/mbeanserver/MBeanIntrospector.java b/jdk/src/share/classes/com/sun/jmx/mbeanserver/MBeanIntrospector.java index 99aaa85466d..781320d9b80 100644 --- a/jdk/src/share/classes/com/sun/jmx/mbeanserver/MBeanIntrospector.java +++ b/jdk/src/share/classes/com/sun/jmx/mbeanserver/MBeanIntrospector.java @@ -44,6 +44,7 @@ import javax.management.Descriptor; import javax.management.ImmutableDescriptor; import javax.management.IntrospectionException; import javax.management.InvalidAttributeValueException; +import javax.management.JMX; import javax.management.MBean; import javax.management.MBeanAttributeInfo; import javax.management.MBeanConstructorInfo; @@ -538,21 +539,22 @@ abstract class MBeanIntrospector { } static MBeanNotificationInfo[] findNotifications(Object moi) { - if (!(moi instanceof NotificationBroadcaster)) - return null; - MBeanNotificationInfo[] mbn = - ((NotificationBroadcaster) moi).getNotificationInfo(); - if (mbn == null || mbn.length == 0) - return findNotificationsFromAnnotations(moi.getClass()); - MBeanNotificationInfo[] result = - new MBeanNotificationInfo[mbn.length]; - for (int i = 0; i < mbn.length; i++) { - MBeanNotificationInfo ni = mbn[i]; - if (ni.getClass() != MBeanNotificationInfo.class) - ni = (MBeanNotificationInfo) ni.clone(); - result[i] = ni; + if (moi instanceof NotificationBroadcaster) { + MBeanNotificationInfo[] mbn = + ((NotificationBroadcaster) moi).getNotificationInfo(); + if (mbn != null && mbn.length > 0) { + MBeanNotificationInfo[] result = + new MBeanNotificationInfo[mbn.length]; + for (int i = 0; i < mbn.length; i++) { + MBeanNotificationInfo ni = mbn[i]; + if (ni.getClass() != MBeanNotificationInfo.class) + ni = (MBeanNotificationInfo) ni.clone(); + result[i] = ni; + } + return result; + } } - return result; + return findNotificationsFromAnnotations(moi.getClass()); } private static MBeanNotificationInfo[] findNotificationsFromAnnotations( diff --git a/jdk/src/share/classes/javax/management/openmbean/CompositeDataSupport.java b/jdk/src/share/classes/javax/management/openmbean/CompositeDataSupport.java index bd7c77af9b4..9a2f307fd79 100644 --- a/jdk/src/share/classes/javax/management/openmbean/CompositeDataSupport.java +++ b/jdk/src/share/classes/javax/management/openmbean/CompositeDataSupport.java @@ -101,7 +101,7 @@ public class CompositeDataSupport * the same size as itemNames; must not be null. * * @throws IllegalArgumentException compositeType is null, or - * itemNames[] or itemValues[] is null or empty, or one + * itemNames[] or itemValues[] is null, or one * of the elements in itemNames[] is a null or empty string, or * itemNames[] and itemValues[] are not of the same size. * diff --git a/jdk/test/javax/management/Introspector/AnnotatedNotificationInfoTest.java b/jdk/test/javax/management/Introspector/AnnotatedNotificationInfoTest.java index 3db55b74471..a995ee59b60 100644 --- a/jdk/test/javax/management/Introspector/AnnotatedNotificationInfoTest.java +++ b/jdk/test/javax/management/Introspector/AnnotatedNotificationInfoTest.java @@ -22,8 +22,8 @@ */ /* - * @test %M% %I% - * @bug 6323980 + * @test + * @bug 6323980 6772779 * @summary Test @NotificationInfo annotation * @author Eamonn McManus * @run main/othervm -ea AnnotatedNotificationInfoTest @@ -32,6 +32,7 @@ import java.io.Serializable; import java.lang.management.ManagementFactory; import java.lang.reflect.Field; +import java.util.Arrays; import javax.annotation.Resource; import javax.management.AttributeChangeNotification; import javax.management.Description; @@ -134,6 +135,23 @@ public class AnnotatedNotificationInfoTest { private static Object mbeanIntf5 = new Intf5Impl(); + @NotificationInfo( + types = {"foo", "bar"}, + notificationClass = AttributeChangeNotification.class, + description = @Description( + value = "description", + bundleBaseName = "bundle", + key = "key"), + descriptorFields = {"foo=bar"}) + public static interface Intf6MBean {} + + public static class Intf6 implements Intf6MBean { + @Resource + private volatile SendNotification send; + } + + private static Object mbeanIntf6 = new Intf6(); + public static interface Impl1MBean {} @NotificationInfo( @@ -202,22 +220,21 @@ public class AnnotatedNotificationInfoTest { private static Object mbeanMBean2 = new MBean2(); - // Following disabled until we support it -// @MBean -// @NotificationInfo( -// types = {"foo", "bar"}, -// notificationClass = AttributeChangeNotification.class, -// description = @Description( -// value = "description", -// bundleBaseName = "bundle", -// key = "key"), -// descriptorFields = {"foo=bar"}) -// public static class MBean3 { -// @Resource -// private volatile SendNotification send; -// } -// -// private static Object mbeanMBean3 = new MBean3(); + @MBean + @NotificationInfo( + types = {"foo", "bar"}, + notificationClass = AttributeChangeNotification.class, + description = @Description( + value = "description", + bundleBaseName = "bundle", + key = "key"), + descriptorFields = {"foo=bar"}) + public static class MBean3 { + @Resource + private volatile SendNotification send; + } + + private static Object mbeanMBean3 = new MBean3(); @MXBean @NotificationInfo( @@ -237,6 +254,23 @@ public class AnnotatedNotificationInfoTest { private static Object mbeanMXBean2 = new MXBean2(); + // Classes for the second test. This tests the simplest case, which is + // the first example in the javadoc for @NotificationInfo. Notice that + // this MBean is not a NotificationBroadcaster and does not inject a + // SendNotification! That should possibly be an error, but it's currently + // allowed by the spec. + @NotificationInfo(types={"com.example.notifs.create", + "com.example.notifs.destroy"}) + public static interface CacheMBean { + public int getCachedNum(); + } + + public static class Cache implements CacheMBean { + public int getCachedNum() { + return 0; + } + } + public static void main(String[] args) throws Exception { if (!AnnotatedNotificationInfoTest.class.desiredAssertionStatus()) throw new Exception("Test must be run with -ea"); @@ -267,5 +301,14 @@ public class AnnotatedNotificationInfoTest { assert mbnis[0].equals(expected) : mbnis[0]; mbs.unregisterMBean(on); } + + mbs.registerMBean(new Cache(), on); + MBeanInfo mbi = mbs.getMBeanInfo(on); + MBeanNotificationInfo[] mbnis = mbi.getNotifications(); + assert mbnis.length == 1 : mbnis.length; + String[] types = mbnis[0].getNotifTypes(); + String[] expectedTypes = + CacheMBean.class.getAnnotation(NotificationInfo.class).types(); + assert Arrays.equals(types, expectedTypes) : Arrays.toString(types); } } From db6bef2c706fe2e9ccfc082d3828835f9006485f Mon Sep 17 00:00:00 2001 From: "Y. Srinivas Ramakrishna" Date: Thu, 20 Nov 2008 12:27:41 -0800 Subject: [PATCH 023/110] 6722113: CMS: Incorrect overflow handling during precleaning of Reference lists When we encounter marking stack overflow during precleaning of Reference lists, we were using the overflow list mechanism, which can cause problems on account of mutating the mark word of the header because of conflicts with mutator accesses and updates of that field. Instead we should use the usual mechanism for overflow handling in concurrent phases, namely dirtying of the card on which the overflowed object lies. Since precleaning effectively does a form of discovered list processing, albeit with discovery enabled, we needed to adjust some code to be correct in the face of interleaved processing and discovery. Reviewed-by: apetrusenko, jcoomes --- .../concurrentMarkSweep/cmsOopClosures.hpp | 12 +++- .../concurrentMarkSweepGeneration.cpp | 46 ++++++++++--- .../concurrentMarkSweepGeneration.hpp | 14 +++- .../share/vm/memory/referenceProcessor.cpp | 69 ++++++++++--------- hotspot/src/share/vm/runtime/globals.hpp | 2 +- 5 files changed, 95 insertions(+), 48 deletions(-) diff --git a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/cmsOopClosures.hpp b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/cmsOopClosures.hpp index 3115b6b1127..de5955d503e 100644 --- a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/cmsOopClosures.hpp +++ b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/cmsOopClosures.hpp @@ -325,24 +325,30 @@ class Par_PushOrMarkClosure: public OopClosure { // For objects in CMS generation, this closure marks // given objects (transitively) as being reachable/live. // This is currently used during the (weak) reference object -// processing phase of the CMS final checkpoint step. +// processing phase of the CMS final checkpoint step, as +// well as during the concurrent precleaning of the discovered +// reference lists. class CMSKeepAliveClosure: public OopClosure { private: CMSCollector* _collector; const MemRegion _span; CMSMarkStack* _mark_stack; CMSBitMap* _bit_map; + bool _concurrent_precleaning; protected: DO_OOP_WORK_DEFN public: CMSKeepAliveClosure(CMSCollector* collector, MemRegion span, - CMSBitMap* bit_map, CMSMarkStack* mark_stack): + CMSBitMap* bit_map, CMSMarkStack* mark_stack, + bool cpc): _collector(collector), _span(span), _bit_map(bit_map), - _mark_stack(mark_stack) { + _mark_stack(mark_stack), + _concurrent_precleaning(cpc) { assert(!_span.is_empty(), "Empty span could spell trouble"); } + bool concurrent_precleaning() const { return _concurrent_precleaning; } virtual void do_oop(oop* p); virtual void do_oop(narrowOop* p); inline void do_oop_nv(oop* p) { CMSKeepAliveClosure::do_oop_work(p); } diff --git a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp index db40a525454..cd2ccd10945 100644 --- a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp +++ b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp @@ -538,6 +538,7 @@ CMSCollector::CMSCollector(ConcurrentMarkSweepGeneration* cmsGen, _survivor_chunk_capacity(0), // -- ditto -- _survivor_chunk_index(0), // -- ditto -- _ser_pmc_preclean_ovflw(0), + _ser_kac_preclean_ovflw(0), _ser_pmc_remark_ovflw(0), _par_pmc_remark_ovflw(0), _ser_kac_ovflw(0), @@ -4388,10 +4389,10 @@ size_t CMSCollector::preclean_work(bool clean_refs, bool clean_survivor) { CMSPrecleanRefsYieldClosure yield_cl(this); assert(rp->span().equals(_span), "Spans should be equal"); CMSKeepAliveClosure keep_alive(this, _span, &_markBitMap, - &_markStack); + &_markStack, true /* preclean */); CMSDrainMarkingStackClosure complete_trace(this, - _span, &_markBitMap, &_markStack, - &keep_alive); + _span, &_markBitMap, &_markStack, + &keep_alive, true /* preclean */); // We don't want this step to interfere with a young // collection because we don't want to take CPU @@ -4852,17 +4853,19 @@ void CMSCollector::checkpointRootsFinalWork(bool asynch, // recurrence of that condition. assert(_markStack.isEmpty(), "No grey objects"); size_t ser_ovflw = _ser_pmc_remark_ovflw + _ser_pmc_preclean_ovflw + - _ser_kac_ovflw; + _ser_kac_ovflw + _ser_kac_preclean_ovflw; if (ser_ovflw > 0) { if (PrintCMSStatistics != 0) { gclog_or_tty->print_cr("Marking stack overflow (benign) " - "(pmc_pc="SIZE_FORMAT", pmc_rm="SIZE_FORMAT", kac="SIZE_FORMAT")", + "(pmc_pc="SIZE_FORMAT", pmc_rm="SIZE_FORMAT", kac="SIZE_FORMAT + ", kac_preclean="SIZE_FORMAT")", _ser_pmc_preclean_ovflw, _ser_pmc_remark_ovflw, - _ser_kac_ovflw); + _ser_kac_ovflw, _ser_kac_preclean_ovflw); } _markStack.expand(); _ser_pmc_remark_ovflw = 0; _ser_pmc_preclean_ovflw = 0; + _ser_kac_preclean_ovflw = 0; _ser_kac_ovflw = 0; } if (_par_pmc_remark_ovflw > 0 || _par_kac_ovflw > 0) { @@ -5693,10 +5696,10 @@ void CMSCollector::refProcessingWork(bool asynch, bool clear_all_soft_refs) { ReferenceProcessor* rp = ref_processor(); assert(rp->span().equals(_span), "Spans should be equal"); CMSKeepAliveClosure cmsKeepAliveClosure(this, _span, &_markBitMap, - &_markStack); + &_markStack, false /* !preclean */); CMSDrainMarkingStackClosure cmsDrainMarkingStackClosure(this, _span, &_markBitMap, &_markStack, - &cmsKeepAliveClosure); + &cmsKeepAliveClosure, false /* !preclean */); { TraceTime t("weak refs processing", PrintGCDetails, false, gclog_or_tty); if (rp->processing_is_mt()) { @@ -8302,8 +8305,29 @@ void CMSKeepAliveClosure::do_oop(oop obj) { } ) if (simulate_overflow || !_mark_stack->push(obj)) { - _collector->push_on_overflow_list(obj); - _collector->_ser_kac_ovflw++; + if (_concurrent_precleaning) { + // We dirty the overflown object and let the remark + // phase deal with it. + assert(_collector->overflow_list_is_empty(), "Error"); + // In the case of object arrays, we need to dirty all of + // the cards that the object spans. No locking or atomics + // are needed since no one else can be mutating the mod union + // table. + if (obj->is_objArray()) { + size_t sz = obj->size(); + HeapWord* end_card_addr = + (HeapWord*)round_to((intptr_t)(addr+sz), CardTableModRefBS::card_size); + MemRegion redirty_range = MemRegion(addr, end_card_addr); + assert(!redirty_range.is_empty(), "Arithmetical tautology"); + _collector->_modUnionTable.mark_range(redirty_range); + } else { + _collector->_modUnionTable.mark(addr); + } + _collector->_ser_kac_preclean_ovflw++; + } else { + _collector->push_on_overflow_list(obj); + _collector->_ser_kac_ovflw++; + } } } } @@ -8400,6 +8424,8 @@ const char* CMSExpansionCause::to_string(CMSExpansionCause::Cause cause) { void CMSDrainMarkingStackClosure::do_void() { // the max number to take from overflow list at a time const size_t num = _mark_stack->capacity()/4; + assert(!_concurrent_precleaning || _collector->overflow_list_is_empty(), + "Overflow list should be NULL during concurrent phases"); while (!_mark_stack->isEmpty() || // if stack is empty, check the overflow list _collector->take_from_overflow_list(num, _mark_stack)) { diff --git a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.hpp b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.hpp index 9abc84c6a31..44ef14e8db3 100644 --- a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.hpp +++ b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.hpp @@ -592,6 +592,7 @@ class CMSCollector: public CHeapObj { size_t _ser_pmc_preclean_ovflw; size_t _ser_pmc_remark_ovflw; size_t _par_pmc_remark_ovflw; + size_t _ser_kac_preclean_ovflw; size_t _ser_kac_ovflw; size_t _par_kac_ovflw; NOT_PRODUCT(size_t _num_par_pushes;) @@ -1749,21 +1750,30 @@ class SweepClosure: public BlkClosureCareful { // work-routine/closure used to complete transitive // marking of objects as live after a certain point // in which an initial set has been completely accumulated. +// This closure is currently used both during the final +// remark stop-world phase, as well as during the concurrent +// precleaning of the discovered reference lists. class CMSDrainMarkingStackClosure: public VoidClosure { CMSCollector* _collector; MemRegion _span; CMSMarkStack* _mark_stack; CMSBitMap* _bit_map; CMSKeepAliveClosure* _keep_alive; + bool _concurrent_precleaning; public: CMSDrainMarkingStackClosure(CMSCollector* collector, MemRegion span, CMSBitMap* bit_map, CMSMarkStack* mark_stack, - CMSKeepAliveClosure* keep_alive): + CMSKeepAliveClosure* keep_alive, + bool cpc): _collector(collector), _span(span), _bit_map(bit_map), _mark_stack(mark_stack), - _keep_alive(keep_alive) { } + _keep_alive(keep_alive), + _concurrent_precleaning(cpc) { + assert(_concurrent_precleaning == _keep_alive->concurrent_precleaning(), + "Mismatch"); + } void do_void(); }; diff --git a/hotspot/src/share/vm/memory/referenceProcessor.cpp b/hotspot/src/share/vm/memory/referenceProcessor.cpp index ba024b91730..98da052b35b 100644 --- a/hotspot/src/share/vm/memory/referenceProcessor.cpp +++ b/hotspot/src/share/vm/memory/referenceProcessor.cpp @@ -47,7 +47,9 @@ public: } bool empty() const { return head() == ReferenceProcessor::sentinel_ref(); } size_t length() { return _len; } - void set_length(size_t len) { _len = len; } + void set_length(size_t len) { _len = len; } + void inc_length(size_t inc) { _len += inc; assert(_len > 0, "Error"); } + void dec_length(size_t dec) { _len -= dec; } private: // Set value depending on UseCompressedOops. This could be a template class // but then we have to fix all the instantiations and declarations that use this class. @@ -436,13 +438,13 @@ public: // The "allow_null_referent" argument tells us to allow for the possibility // of a NULL referent in the discovered Reference object. This typically // happens in the case of concurrent collectors that may have done the - // discovery concurrently or interleaved with mutator execution. + // discovery concurrently, or interleaved, with mutator execution. inline void load_ptrs(DEBUG_ONLY(bool allow_null_referent)); // Move to the next discovered reference. inline void next(); - // Remove the current reference from the list and move to the next. + // Remove the current reference from the list inline void remove(); // Make the Reference object active again. @@ -476,7 +478,6 @@ public: inline size_t removed() const { return _removed; } ) -private: inline void move_to_next(); private: @@ -553,7 +554,7 @@ inline void DiscoveredListIterator::remove() { oopDesc::store_heap_oop((oop*)_prev_next, _next); } NOT_PRODUCT(_removed++); - move_to_next(); + _refs_list.dec_length(1); } inline void DiscoveredListIterator::move_to_next() { @@ -591,12 +592,13 @@ ReferenceProcessor::process_phase1(DiscoveredList& refs_list, gclog_or_tty->print_cr("Dropping reference (" INTPTR_FORMAT ": %s" ") by policy", iter.obj(), iter.obj()->blueprint()->internal_name()); } + // Remove Reference object from list + iter.remove(); // Make the Reference object active again iter.make_active(); // keep the referent around iter.make_referent_alive(); - // Remove Reference object from list - iter.remove(); + iter.move_to_next(); } else { iter.next(); } @@ -629,12 +631,13 @@ ReferenceProcessor::pp2_work(DiscoveredList& refs_list, iter.obj(), iter.obj()->blueprint()->internal_name()); } // The referent is reachable after all. + // Remove Reference object from list. + iter.remove(); // Update the referent pointer as necessary: Note that this // should not entail any recursive marking because the // referent must already have been traversed. iter.make_referent_alive(); - // Remove Reference object from list - iter.remove(); + iter.move_to_next(); } else { iter.next(); } @@ -670,6 +673,7 @@ ReferenceProcessor::pp2_work_concurrent_discovery(DiscoveredList& refs_list, } else { keep_alive->do_oop((oop*)next_addr); } + iter.move_to_next(); } else { iter.next(); } @@ -832,9 +836,9 @@ void ReferenceProcessor::balance_queues(DiscoveredList ref_lists[]) } java_lang_ref_Reference::set_discovered(move_tail, ref_lists[to_idx].head()); ref_lists[to_idx].set_head(move_head); - ref_lists[to_idx].set_length(ref_lists[to_idx].length() + refs_to_move); + ref_lists[to_idx].inc_length(refs_to_move); ref_lists[from_idx].set_head(new_head); - ref_lists[from_idx].set_length(ref_lists[from_idx].length() - refs_to_move); + ref_lists[from_idx].dec_length(refs_to_move); } else { ++to_idx; } @@ -923,7 +927,6 @@ void ReferenceProcessor::clean_up_discovered_references() { void ReferenceProcessor::clean_up_discovered_reflist(DiscoveredList& refs_list) { assert(!discovery_is_atomic(), "Else why call this method?"); DiscoveredListIterator iter(refs_list, NULL, NULL); - size_t length = refs_list.length(); while (iter.has_next()) { iter.load_ptrs(DEBUG_ONLY(true /* allow_null_referent */)); oop next = java_lang_ref_Reference::next(iter.obj()); @@ -941,12 +944,11 @@ void ReferenceProcessor::clean_up_discovered_reflist(DiscoveredList& refs_list) ) // Remove Reference object from list iter.remove(); - --length; + iter.move_to_next(); } else { iter.next(); } } - refs_list.set_length(length); NOT_PRODUCT( if (PrintGCDetails && TraceReferenceGC) { gclog_or_tty->print( @@ -1024,7 +1026,7 @@ ReferenceProcessor::add_to_discovered_list_mt(DiscoveredList& refs_list, // We have separate lists for enqueueing so no synchronization // is necessary. refs_list.set_head(obj); - refs_list.set_length(refs_list.length() + 1); + refs_list.inc_length(1); if (_discovered_list_needs_barrier) { _bs->write_ref_field((void*)discovered_addr, current_head); guarantee(false, "Needs to be fixed: YSR"); } @@ -1168,7 +1170,7 @@ bool ReferenceProcessor::discover_reference(oop obj, ReferenceType rt) { _bs->write_ref_field((oop*)discovered_addr, current_head); } list->set_head(obj); - list->set_length(list->length() + 1); + list->inc_length(1); } // In the MT discovery case, it is currently possible to see @@ -1209,45 +1211,48 @@ void ReferenceProcessor::preclean_discovered_references( TraceTime tt("Preclean SoftReferences", PrintGCDetails && PrintReferenceGC, false, gclog_or_tty); for (int i = 0; i < _num_q; i++) { + if (yield->should_return()) { + return; + } preclean_discovered_reflist(_discoveredSoftRefs[i], is_alive, keep_alive, complete_gc, yield); } } - if (yield->should_return()) { - return; - } // Weak references { TraceTime tt("Preclean WeakReferences", PrintGCDetails && PrintReferenceGC, false, gclog_or_tty); for (int i = 0; i < _num_q; i++) { + if (yield->should_return()) { + return; + } preclean_discovered_reflist(_discoveredWeakRefs[i], is_alive, keep_alive, complete_gc, yield); } } - if (yield->should_return()) { - return; - } // Final references { TraceTime tt("Preclean FinalReferences", PrintGCDetails && PrintReferenceGC, false, gclog_or_tty); for (int i = 0; i < _num_q; i++) { + if (yield->should_return()) { + return; + } preclean_discovered_reflist(_discoveredFinalRefs[i], is_alive, keep_alive, complete_gc, yield); } } - if (yield->should_return()) { - return; - } // Phantom references { TraceTime tt("Preclean PhantomReferences", PrintGCDetails && PrintReferenceGC, false, gclog_or_tty); for (int i = 0; i < _num_q; i++) { + if (yield->should_return()) { + return; + } preclean_discovered_reflist(_discoveredPhantomRefs[i], is_alive, keep_alive, complete_gc, yield); } @@ -1256,9 +1261,12 @@ void ReferenceProcessor::preclean_discovered_references( // Walk the given discovered ref list, and remove all reference objects // whose referents are still alive, whose referents are NULL or which -// are not active (have a non-NULL next field). NOTE: For this to work -// correctly, refs discovery can not be happening concurrently with this -// step. +// are not active (have a non-NULL next field). NOTE: When we are +// thus precleaning the ref lists (which happens single-threaded today), +// we do not disable refs discovery to honour the correct semantics of +// java.lang.Reference. As a result, we need to be careful below +// that ref removal steps interleave safely with ref discovery steps +// (in this thread). void ReferenceProcessor::preclean_discovered_reflist(DiscoveredList& refs_list, BoolObjectClosure* is_alive, @@ -1266,7 +1274,6 @@ ReferenceProcessor::preclean_discovered_reflist(DiscoveredList& refs_list, VoidClosure* complete_gc, YieldClosure* yield) { DiscoveredListIterator iter(refs_list, keep_alive, is_alive); - size_t length = refs_list.length(); while (iter.has_next()) { iter.load_ptrs(DEBUG_ONLY(true /* allow_null_referent */)); oop obj = iter.obj(); @@ -1281,7 +1288,6 @@ ReferenceProcessor::preclean_discovered_reflist(DiscoveredList& refs_list, } // Remove Reference object from list iter.remove(); - --length; // Keep alive its cohort. iter.make_referent_alive(); if (UseCompressedOops) { @@ -1291,12 +1297,11 @@ ReferenceProcessor::preclean_discovered_reflist(DiscoveredList& refs_list, oop* next_addr = (oop*)java_lang_ref_Reference::next_addr(obj); keep_alive->do_oop(next_addr); } + iter.move_to_next(); } else { iter.next(); } } - refs_list.set_length(length); - // Close the reachable set complete_gc->do_void(); diff --git a/hotspot/src/share/vm/runtime/globals.hpp b/hotspot/src/share/vm/runtime/globals.hpp index a2476f9c707..2766a3e335b 100644 --- a/hotspot/src/share/vm/runtime/globals.hpp +++ b/hotspot/src/share/vm/runtime/globals.hpp @@ -1474,7 +1474,7 @@ class CommandLineFlags { "CMSPrecleanNumerator:CMSPrecleanDenominator yields convergence" \ " ratio") \ \ - product(bool, CMSPrecleanRefLists1, false, \ + product(bool, CMSPrecleanRefLists1, true, \ "Preclean ref lists during (initial) preclean phase") \ \ product(bool, CMSPrecleanRefLists2, false, \ From 9f247462f60f66a1a5780a3363e0683ba8cbc207 Mon Sep 17 00:00:00 2001 From: Xueming Shen Date: Thu, 20 Nov 2008 14:06:19 -0800 Subject: [PATCH 024/110] 6745216: missing 4 chraset aliases in sun.nio.cs package Added "834" into x-IBM834's aliase list. Reviewed-by: alanb --- jdk/src/share/classes/sun/nio/cs/ext/ExtendedCharsets.java | 1 + 1 file changed, 1 insertion(+) diff --git a/jdk/src/share/classes/sun/nio/cs/ext/ExtendedCharsets.java b/jdk/src/share/classes/sun/nio/cs/ext/ExtendedCharsets.java index 04434f1f563..bb6c16417a8 100644 --- a/jdk/src/share/classes/sun/nio/cs/ext/ExtendedCharsets.java +++ b/jdk/src/share/classes/sun/nio/cs/ext/ExtendedCharsets.java @@ -770,6 +770,7 @@ public class ExtendedCharsets new String[] { "cp834", "ibm834", + "834", "ibm-834" }); From 7d7cf3f8affe1b15d65fc5c8c9399a4e923c7b32 Mon Sep 17 00:00:00 2001 From: "Y. Srinivas Ramakrishna" Date: Thu, 20 Nov 2008 16:56:09 -0800 Subject: [PATCH 025/110] 6684579: SoftReference processing can be made more efficient For current soft-ref clearing policies, we can decide at marking time if a soft-reference will definitely not be cleared, postponing the decision of whether it will definitely be cleared to the final reference processing phase. This can be especially beneficial in the case of concurrent collectors where the marking is usually concurrent but reference processing is usually not. Reviewed-by: jmasa --- .../concurrentMarkSweepGeneration.cpp | 45 +++++++------------ .../gc_implementation/g1/concurrentMark.cpp | 24 +++------- .../gc_implementation/g1/g1CollectedHeap.cpp | 3 +- .../vm/gc_implementation/g1/g1MarkSweep.cpp | 26 ++++------- .../parNew/parNewGeneration.cpp | 34 ++++++-------- .../parallelScavenge/psMarkSweep.cpp | 16 ++----- .../parallelScavenge/psParallelCompact.cpp | 19 ++------ .../parallelScavenge/psScavenge.cpp | 15 ++----- hotspot/src/share/vm/includeDB_core | 1 + .../src/share/vm/memory/defNewGeneration.cpp | 14 ++---- .../src/share/vm/memory/genCollectedHeap.cpp | 3 +- hotspot/src/share/vm/memory/genMarkSweep.cpp | 18 ++------ .../src/share/vm/memory/referencePolicy.cpp | 10 +++++ .../src/share/vm/memory/referencePolicy.hpp | 8 +++- .../share/vm/memory/referenceProcessor.cpp | 42 ++++++++++++----- .../share/vm/memory/referenceProcessor.hpp | 19 ++++++-- hotspot/src/share/vm/memory/universe.cpp | 2 +- hotspot/src/share/vm/utilities/macros.hpp | 2 + 18 files changed, 137 insertions(+), 164 deletions(-) diff --git a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp index cd2ccd10945..e2e27c0f353 100644 --- a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp +++ b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp @@ -1961,6 +1961,7 @@ void CMSCollector::do_compaction_work(bool clear_all_soft_refs) { ref_processor()->set_enqueuing_is_done(false); ref_processor()->enable_discovery(); + ref_processor()->snap_policy(clear_all_soft_refs); // If an asynchronous collection finishes, the _modUnionTable is // all clear. If we are assuming the collection from an asynchronous // collection, clear the _modUnionTable. @@ -2384,6 +2385,9 @@ void CMSCollector::collect_in_foreground(bool clear_all_soft_refs) { Universe::verify(true); } + // Snapshot the soft reference policy to be used in this collection cycle. + ref_processor()->snap_policy(clear_all_soft_refs); + bool init_mark_was_synchronous = false; // until proven otherwise while (_collectorState != Idling) { if (TraceCMSState) { @@ -4591,11 +4595,11 @@ size_t CMSCollector::preclean_mod_union_table( if (!dirtyRegion.is_empty()) { assert(numDirtyCards > 0, "consistency check"); HeapWord* stop_point = NULL; + stopTimer(); + CMSTokenSyncWithLocks ts(true, gen->freelistLock(), + bitMapLock()); + startTimer(); { - stopTimer(); - CMSTokenSyncWithLocks ts(true, gen->freelistLock(), - bitMapLock()); - startTimer(); verify_work_stacks_empty(); verify_overflow_empty(); sample_eden(); @@ -4612,10 +4616,6 @@ size_t CMSCollector::preclean_mod_union_table( assert((CMSPermGenPrecleaningEnabled && (gen == _permGen)) || (_collectorState == AbortablePreclean && should_abort_preclean()), "Unparsable objects should only be in perm gen."); - - stopTimer(); - CMSTokenSyncWithLocks ts(true, bitMapLock()); - startTimer(); _modUnionTable.mark_range(MemRegion(stop_point, dirtyRegion.end())); if (should_abort_preclean()) { break; // out of preclean loop @@ -5678,23 +5678,14 @@ void CMSCollector::refProcessingWork(bool asynch, bool clear_all_soft_refs) { ResourceMark rm; HandleMark hm; - ReferencePolicy* soft_ref_policy; - - assert(!ref_processor()->enqueuing_is_done(), "Enqueuing should not be complete"); - // Process weak references. - if (clear_all_soft_refs) { - soft_ref_policy = new AlwaysClearPolicy(); - } else { -#ifdef COMPILER2 - soft_ref_policy = new LRUMaxHeapPolicy(); -#else - soft_ref_policy = new LRUCurrentHeapPolicy(); -#endif // COMPILER2 - } - verify_work_stacks_empty(); ReferenceProcessor* rp = ref_processor(); assert(rp->span().equals(_span), "Spans should be equal"); + assert(!rp->enqueuing_is_done(), "Enqueuing should not be complete"); + // Process weak references. + rp->snap_policy(clear_all_soft_refs); + verify_work_stacks_empty(); + CMSKeepAliveClosure cmsKeepAliveClosure(this, _span, &_markBitMap, &_markStack, false /* !preclean */); CMSDrainMarkingStackClosure cmsDrainMarkingStackClosure(this, @@ -5704,14 +5695,12 @@ void CMSCollector::refProcessingWork(bool asynch, bool clear_all_soft_refs) { TraceTime t("weak refs processing", PrintGCDetails, false, gclog_or_tty); if (rp->processing_is_mt()) { CMSRefProcTaskExecutor task_executor(*this); - rp->process_discovered_references(soft_ref_policy, - &_is_alive_closure, + rp->process_discovered_references(&_is_alive_closure, &cmsKeepAliveClosure, &cmsDrainMarkingStackClosure, &task_executor); } else { - rp->process_discovered_references(soft_ref_policy, - &_is_alive_closure, + rp->process_discovered_references(&_is_alive_closure, &cmsKeepAliveClosure, &cmsDrainMarkingStackClosure, NULL); @@ -6166,8 +6155,8 @@ void CMSCollector::verify_ok_to_terminate() const { #endif size_t CMSCollector::block_size_using_printezis_bits(HeapWord* addr) const { - assert(_markBitMap.isMarked(addr) && _markBitMap.isMarked(addr + 1), - "missing Printezis mark?"); + assert(_markBitMap.isMarked(addr) && _markBitMap.isMarked(addr + 1), + "missing Printezis mark?"); HeapWord* nextOneAddr = _markBitMap.getNextMarkedWordAddress(addr + 2); size_t size = pointer_delta(nextOneAddr + 1, addr); assert(size == CompactibleFreeListSpace::adjustObjectSize(size), diff --git a/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp b/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp index 036e0e7fcf3..65f64e2ad16 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp +++ b/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp @@ -811,6 +811,7 @@ void ConcurrentMark::checkpointRootsInitialPost() { ReferenceProcessor* rp = g1h->ref_processor(); rp->verify_no_references_recorded(); rp->enable_discovery(); // enable ("weak") refs discovery + rp->snap_policy(false); // snapshot the soft ref policy to be used in this cycle SATBMarkQueueSet& satb_mq_set = JavaThread::satb_mark_queue_set(); satb_mq_set.set_process_completed_threshold(G1SATBProcessCompletedThreshold); @@ -1829,32 +1830,21 @@ class G1CMDrainMarkingStackClosure: public VoidClosure { void ConcurrentMark::weakRefsWork(bool clear_all_soft_refs) { ResourceMark rm; HandleMark hm; - ReferencePolicy* soft_ref_policy; + G1CollectedHeap* g1h = G1CollectedHeap::heap(); + ReferenceProcessor* rp = g1h->ref_processor(); // Process weak references. - if (clear_all_soft_refs) { - soft_ref_policy = new AlwaysClearPolicy(); - } else { -#ifdef COMPILER2 - soft_ref_policy = new LRUMaxHeapPolicy(); -#else - soft_ref_policy = new LRUCurrentHeapPolicy(); -#endif - } + rp->snap_policy(clear_all_soft_refs); assert(_markStack.isEmpty(), "mark stack should be empty"); - G1CollectedHeap* g1 = G1CollectedHeap::heap(); - G1CMIsAliveClosure g1IsAliveClosure(g1); - - G1CMKeepAliveClosure g1KeepAliveClosure(g1, this, nextMarkBitMap()); + G1CMIsAliveClosure g1IsAliveClosure (g1h); + G1CMKeepAliveClosure g1KeepAliveClosure(g1h, this, nextMarkBitMap()); G1CMDrainMarkingStackClosure g1DrainMarkingStackClosure(nextMarkBitMap(), &_markStack, &g1KeepAliveClosure); // XXXYYY Also: copy the parallel ref processing code from CMS. - ReferenceProcessor* rp = g1->ref_processor(); - rp->process_discovered_references(soft_ref_policy, - &g1IsAliveClosure, + rp->process_discovered_references(&g1IsAliveClosure, &g1KeepAliveClosure, &g1DrainMarkingStackClosure, NULL); diff --git a/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp b/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp index 370745f36e1..5aaa483b91c 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp +++ b/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp @@ -891,6 +891,7 @@ void G1CollectedHeap::do_collection(bool full, bool clear_all_soft_refs, ReferenceProcessorIsAliveMutator rp_is_alive_null(ref_processor(), NULL); ref_processor()->enable_discovery(); + ref_processor()->snap_policy(clear_all_soft_refs); // Do collection work { @@ -2463,7 +2464,7 @@ G1CollectedHeap::do_collection_pause_at_safepoint(HeapRegion* popular_region) { COMPILER2_PRESENT(DerivedPointerTable::clear()); - // We want to turn off ref discovere, if necessary, and turn it back on + // We want to turn off ref discovery, if necessary, and turn it back on // on again later if we do. bool was_enabled = ref_processor()->discovery_enabled(); if (was_enabled) ref_processor()->disable_discovery(); diff --git a/hotspot/src/share/vm/gc_implementation/g1/g1MarkSweep.cpp b/hotspot/src/share/vm/gc_implementation/g1/g1MarkSweep.cpp index 3c5eccb4a7b..4aa08a2319e 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/g1MarkSweep.cpp +++ b/hotspot/src/share/vm/gc_implementation/g1/g1MarkSweep.cpp @@ -33,8 +33,9 @@ void G1MarkSweep::invoke_at_safepoint(ReferenceProcessor* rp, // hook up weak ref data so it can be used during Mark-Sweep assert(GenMarkSweep::ref_processor() == NULL, "no stomping"); - GenMarkSweep::_ref_processor = rp; assert(rp != NULL, "should be non-NULL"); + GenMarkSweep::_ref_processor = rp; + rp->snap_policy(clear_all_softrefs); // When collecting the permanent generation methodOops may be moving, // so we either have to flush all bcp data or convert it into bci. @@ -121,23 +122,12 @@ void G1MarkSweep::mark_sweep_phase1(bool& marked_for_unloading, &GenMarkSweep::follow_root_closure); // Process reference objects found during marking - ReferencePolicy *soft_ref_policy; - if (clear_all_softrefs) { - soft_ref_policy = new AlwaysClearPolicy(); - } else { -#ifdef COMPILER2 - soft_ref_policy = new LRUMaxHeapPolicy(); -#else - soft_ref_policy = new LRUCurrentHeapPolicy(); -#endif - } - assert(soft_ref_policy != NULL,"No soft reference policy"); - GenMarkSweep::ref_processor()->process_discovered_references( - soft_ref_policy, - &GenMarkSweep::is_alive, - &GenMarkSweep::keep_alive, - &GenMarkSweep::follow_stack_closure, - NULL); + ReferenceProcessor* rp = GenMarkSweep::ref_processor(); + rp->snap_policy(clear_all_softrefs); + rp->process_discovered_references(&GenMarkSweep::is_alive, + &GenMarkSweep::keep_alive, + &GenMarkSweep::follow_stack_closure, + NULL); // Follow system dictionary roots and unload classes bool purged_class = SystemDictionary::do_unloading(&GenMarkSweep::is_alive); diff --git a/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp b/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp index 7803f08b56a..aca77d20634 100644 --- a/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp +++ b/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp @@ -759,17 +759,12 @@ void ParNewGeneration::collect(bool full, thread_state_set.steals(), thread_state_set.pops()+thread_state_set.steals()); } - assert(thread_state_set.pushes() == thread_state_set.pops() + thread_state_set.steals(), + assert(thread_state_set.pushes() == thread_state_set.pops() + + thread_state_set.steals(), "Or else the queues are leaky."); - // For now, process discovered weak refs sequentially. -#ifdef COMPILER2 - ReferencePolicy *soft_ref_policy = new LRUMaxHeapPolicy(); -#else - ReferencePolicy *soft_ref_policy = new LRUCurrentHeapPolicy(); -#endif // COMPILER2 - // Process (weak) reference objects found during scavenge. + ReferenceProcessor* rp = ref_processor(); IsAliveClosure is_alive(this); ScanWeakRefClosure scan_weak_ref(this); KeepAliveClosure keep_alive(&scan_weak_ref); @@ -778,18 +773,17 @@ void ParNewGeneration::collect(bool full, set_promo_failure_scan_stack_closure(&scan_without_gc_barrier); EvacuateFollowersClosureGeneral evacuate_followers(gch, _level, &scan_without_gc_barrier, &scan_with_gc_barrier); - if (ref_processor()->processing_is_mt()) { + rp->snap_policy(clear_all_soft_refs); + if (rp->processing_is_mt()) { ParNewRefProcTaskExecutor task_executor(*this, thread_state_set); - ref_processor()->process_discovered_references( - soft_ref_policy, &is_alive, &keep_alive, &evacuate_followers, - &task_executor); + rp->process_discovered_references(&is_alive, &keep_alive, + &evacuate_followers, &task_executor); } else { thread_state_set.flush(); gch->set_par_threads(0); // 0 ==> non-parallel. gch->save_marks(); - ref_processor()->process_discovered_references( - soft_ref_policy, &is_alive, &keep_alive, &evacuate_followers, - NULL); + rp->process_discovered_references(&is_alive, &keep_alive, + &evacuate_followers, NULL); } if (!promotion_failed()) { // Swap the survivor spaces. @@ -851,14 +845,14 @@ void ParNewGeneration::collect(bool full, SpecializationStats::print(); - ref_processor()->set_enqueuing_is_done(true); - if (ref_processor()->processing_is_mt()) { + rp->set_enqueuing_is_done(true); + if (rp->processing_is_mt()) { ParNewRefProcTaskExecutor task_executor(*this, thread_state_set); - ref_processor()->enqueue_discovered_references(&task_executor); + rp->enqueue_discovered_references(&task_executor); } else { - ref_processor()->enqueue_discovered_references(NULL); + rp->enqueue_discovered_references(NULL); } - ref_processor()->verify_no_references_recorded(); + rp->verify_no_references_recorded(); } static int sum; diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psMarkSweep.cpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psMarkSweep.cpp index 97d9e31b7e3..5134f47e7a5 100644 --- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psMarkSweep.cpp +++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psMarkSweep.cpp @@ -172,6 +172,7 @@ void PSMarkSweep::invoke_no_policy(bool clear_all_softrefs) { COMPILER2_PRESENT(DerivedPointerTable::clear()); ref_processor()->enable_discovery(); + ref_processor()->snap_policy(clear_all_softrefs); mark_sweep_phase1(clear_all_softrefs); @@ -517,20 +518,9 @@ void PSMarkSweep::mark_sweep_phase1(bool clear_all_softrefs) { // Process reference objects found during marking { - ReferencePolicy *soft_ref_policy; - if (clear_all_softrefs) { - soft_ref_policy = new AlwaysClearPolicy(); - } else { -#ifdef COMPILER2 - soft_ref_policy = new LRUMaxHeapPolicy(); -#else - soft_ref_policy = new LRUCurrentHeapPolicy(); -#endif // COMPILER2 - } - assert(soft_ref_policy != NULL,"No soft reference policy"); + ref_processor()->snap_policy(clear_all_softrefs); ref_processor()->process_discovered_references( - soft_ref_policy, is_alive_closure(), mark_and_push_closure(), - follow_stack_closure(), NULL); + is_alive_closure(), mark_and_push_closure(), follow_stack_closure(), NULL); } // Follow system dictionary roots and unload classes diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp index a84a955f0d3..9ca6b6c804c 100644 --- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp +++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp @@ -1578,6 +1578,7 @@ void PSParallelCompact::invoke_no_policy(bool maximum_heap_compaction) { COMPILER2_PRESENT(DerivedPointerTable::clear()); ref_processor()->enable_discovery(); + ref_processor()->snap_policy(maximum_heap_compaction); bool marked_for_unloading = false; @@ -1894,26 +1895,14 @@ void PSParallelCompact::marking_phase(ParCompactionManager* cm, // Process reference objects found during marking { TraceTime tm_r("reference processing", print_phases(), true, gclog_or_tty); - ReferencePolicy *soft_ref_policy; - if (maximum_heap_compaction) { - soft_ref_policy = new AlwaysClearPolicy(); - } else { -#ifdef COMPILER2 - soft_ref_policy = new LRUMaxHeapPolicy(); -#else - soft_ref_policy = new LRUCurrentHeapPolicy(); -#endif // COMPILER2 - } - assert(soft_ref_policy != NULL, "No soft reference policy"); if (ref_processor()->processing_is_mt()) { RefProcTaskExecutor task_executor; ref_processor()->process_discovered_references( - soft_ref_policy, is_alive_closure(), &mark_and_push_closure, - &follow_stack_closure, &task_executor); + is_alive_closure(), &mark_and_push_closure, &follow_stack_closure, + &task_executor); } else { ref_processor()->process_discovered_references( - soft_ref_policy, is_alive_closure(), &mark_and_push_closure, - &follow_stack_closure, NULL); + is_alive_closure(), &mark_and_push_closure, &follow_stack_closure, NULL); } } diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psScavenge.cpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psScavenge.cpp index 090b15f64ba..4aa7d5afe38 100644 --- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psScavenge.cpp +++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psScavenge.cpp @@ -330,6 +330,7 @@ bool PSScavenge::invoke_no_policy() { COMPILER2_PRESENT(DerivedPointerTable::clear()); reference_processor()->enable_discovery(); + reference_processor()->snap_policy(false); // We track how much was promoted to the next generation for // the AdaptiveSizePolicy. @@ -394,24 +395,16 @@ bool PSScavenge::invoke_no_policy() { // Process reference objects discovered during scavenge { -#ifdef COMPILER2 - ReferencePolicy *soft_ref_policy = new LRUMaxHeapPolicy(); -#else - ReferencePolicy *soft_ref_policy = new LRUCurrentHeapPolicy(); -#endif // COMPILER2 - + reference_processor()->snap_policy(false); // not always_clear PSKeepAliveClosure keep_alive(promotion_manager); PSEvacuateFollowersClosure evac_followers(promotion_manager); - assert(soft_ref_policy != NULL,"No soft reference policy"); if (reference_processor()->processing_is_mt()) { PSRefProcTaskExecutor task_executor; reference_processor()->process_discovered_references( - soft_ref_policy, &_is_alive_closure, &keep_alive, &evac_followers, - &task_executor); + &_is_alive_closure, &keep_alive, &evac_followers, &task_executor); } else { reference_processor()->process_discovered_references( - soft_ref_policy, &_is_alive_closure, &keep_alive, &evac_followers, - NULL); + &_is_alive_closure, &keep_alive, &evac_followers, NULL); } } diff --git a/hotspot/src/share/vm/includeDB_core b/hotspot/src/share/vm/includeDB_core index 3b4dd2e38fe..ed59dfeed1d 100644 --- a/hotspot/src/share/vm/includeDB_core +++ b/hotspot/src/share/vm/includeDB_core @@ -3434,6 +3434,7 @@ referenceProcessor.cpp referenceProcessor.hpp referenceProcessor.cpp systemDictionary.hpp referenceProcessor.hpp instanceRefKlass.hpp +referenceProcessor.hpp referencePolicy.hpp reflection.cpp arguments.hpp reflection.cpp handles.inline.hpp diff --git a/hotspot/src/share/vm/memory/defNewGeneration.cpp b/hotspot/src/share/vm/memory/defNewGeneration.cpp index 63278cee703..e953e7545b5 100644 --- a/hotspot/src/share/vm/memory/defNewGeneration.cpp +++ b/hotspot/src/share/vm/memory/defNewGeneration.cpp @@ -540,14 +540,6 @@ void DefNewGeneration::collect(bool full, assert(gch->no_allocs_since_save_marks(0), "save marks have not been newly set."); - // Weak refs. - // FIXME: Are these storage leaks, or are they resource objects? -#ifdef COMPILER2 - ReferencePolicy *soft_ref_policy = new LRUMaxHeapPolicy(); -#else - ReferencePolicy *soft_ref_policy = new LRUCurrentHeapPolicy(); -#endif // COMPILER2 - // Not very pretty. CollectorPolicy* cp = gch->collector_policy(); @@ -574,8 +566,10 @@ void DefNewGeneration::collect(bool full, evacuate_followers.do_void(); FastKeepAliveClosure keep_alive(this, &scan_weak_ref); - ref_processor()->process_discovered_references( - soft_ref_policy, &is_alive, &keep_alive, &evacuate_followers, NULL); + ReferenceProcessor* rp = ref_processor(); + rp->snap_policy(clear_all_soft_refs); + rp->process_discovered_references(&is_alive, &keep_alive, &evacuate_followers, + NULL); if (!promotion_failed()) { // Swap the survivor spaces. eden()->clear(SpaceDecorator::Mangle); diff --git a/hotspot/src/share/vm/memory/genCollectedHeap.cpp b/hotspot/src/share/vm/memory/genCollectedHeap.cpp index 0cfa60bd2b9..f411d4d7bfa 100644 --- a/hotspot/src/share/vm/memory/genCollectedHeap.cpp +++ b/hotspot/src/share/vm/memory/genCollectedHeap.cpp @@ -525,8 +525,9 @@ void GenCollectedHeap::do_collection(bool full, if (rp->discovery_is_atomic()) { rp->verify_no_references_recorded(); rp->enable_discovery(); + rp->snap_policy(clear_all_soft_refs); } else { - // collect() will enable discovery as appropriate + // collect() below will enable discovery as appropriate } _gens[i]->collect(full, clear_all_soft_refs, size, is_tlab); if (!rp->enqueuing_is_done()) { diff --git a/hotspot/src/share/vm/memory/genMarkSweep.cpp b/hotspot/src/share/vm/memory/genMarkSweep.cpp index 50562ab2e99..f0c41d75c00 100644 --- a/hotspot/src/share/vm/memory/genMarkSweep.cpp +++ b/hotspot/src/share/vm/memory/genMarkSweep.cpp @@ -31,8 +31,9 @@ void GenMarkSweep::invoke_at_safepoint(int level, ReferenceProcessor* rp, // hook up weak ref data so it can be used during Mark-Sweep assert(ref_processor() == NULL, "no stomping"); - _ref_processor = rp; assert(rp != NULL, "should be non-NULL"); + _ref_processor = rp; + rp->snap_policy(clear_all_softrefs); TraceTime t1("Full GC", PrintGC && !PrintGCDetails, true, gclog_or_tty); @@ -245,20 +246,9 @@ void GenMarkSweep::mark_sweep_phase1(int level, // Process reference objects found during marking { - ReferencePolicy *soft_ref_policy; - if (clear_all_softrefs) { - soft_ref_policy = new AlwaysClearPolicy(); - } else { -#ifdef COMPILER2 - soft_ref_policy = new LRUMaxHeapPolicy(); -#else - soft_ref_policy = new LRUCurrentHeapPolicy(); -#endif // COMPILER2 - } - assert(soft_ref_policy != NULL,"No soft reference policy"); + ref_processor()->snap_policy(clear_all_softrefs); ref_processor()->process_discovered_references( - soft_ref_policy, &is_alive, &keep_alive, - &follow_stack_closure, NULL); + &is_alive, &keep_alive, &follow_stack_closure, NULL); } // Follow system dictionary roots and unload classes diff --git a/hotspot/src/share/vm/memory/referencePolicy.cpp b/hotspot/src/share/vm/memory/referencePolicy.cpp index 08fa2a15767..0d23d1ddf36 100644 --- a/hotspot/src/share/vm/memory/referencePolicy.cpp +++ b/hotspot/src/share/vm/memory/referencePolicy.cpp @@ -26,6 +26,11 @@ # include "incls/_referencePolicy.cpp.incl" LRUCurrentHeapPolicy::LRUCurrentHeapPolicy() { + snap(); +} + +// Capture state (of-the-VM) information needed to evaluate the policy +void LRUCurrentHeapPolicy::snap() { _max_interval = (Universe::get_heap_free_at_last_gc() / M) * SoftRefLRUPolicyMSPerMB; assert(_max_interval >= 0,"Sanity check"); } @@ -47,6 +52,11 @@ bool LRUCurrentHeapPolicy::should_clear_reference(oop p) { /////////////////////// MaxHeap ////////////////////// LRUMaxHeapPolicy::LRUMaxHeapPolicy() { + snap(); +} + +// Capture state (of-the-VM) information needed to evaluate the policy +void LRUMaxHeapPolicy::snap() { size_t max_heap = MaxHeapSize; max_heap -= Universe::get_heap_used_at_last_gc(); max_heap /= M; diff --git a/hotspot/src/share/vm/memory/referencePolicy.hpp b/hotspot/src/share/vm/memory/referencePolicy.hpp index 5645d060d5f..538ab183a0c 100644 --- a/hotspot/src/share/vm/memory/referencePolicy.hpp +++ b/hotspot/src/share/vm/memory/referencePolicy.hpp @@ -26,9 +26,11 @@ // should be cleared. -class ReferencePolicy : public ResourceObj { +class ReferencePolicy : public CHeapObj { public: virtual bool should_clear_reference(oop p) { ShouldNotReachHere(); return true; } + // Capture state (of-the-VM) information needed to evaluate the policy + virtual void snap() { /* do nothing */ } }; class NeverClearPolicy : public ReferencePolicy { @@ -48,6 +50,8 @@ class LRUCurrentHeapPolicy : public ReferencePolicy { public: LRUCurrentHeapPolicy(); + // Capture state (of-the-VM) information needed to evaluate the policy + void snap(); bool should_clear_reference(oop p); }; @@ -58,5 +62,7 @@ class LRUMaxHeapPolicy : public ReferencePolicy { public: LRUMaxHeapPolicy(); + // Capture state (of-the-VM) information needed to evaluate the policy + void snap(); bool should_clear_reference(oop p); }; diff --git a/hotspot/src/share/vm/memory/referenceProcessor.cpp b/hotspot/src/share/vm/memory/referenceProcessor.cpp index 98da052b35b..648fbbd4736 100644 --- a/hotspot/src/share/vm/memory/referenceProcessor.cpp +++ b/hotspot/src/share/vm/memory/referenceProcessor.cpp @@ -25,6 +25,11 @@ # include "incls/_precompiled.incl" # include "incls/_referenceProcessor.cpp.incl" +ReferencePolicy* ReferenceProcessor::_always_clear_soft_ref_policy = NULL; +ReferencePolicy* ReferenceProcessor::_default_soft_ref_policy = NULL; +oop ReferenceProcessor::_sentinelRef = NULL; +const int subclasses_of_ref = REF_PHANTOM - REF_OTHER; + // List of discovered references. class DiscoveredList { public: @@ -58,10 +63,6 @@ private: size_t _len; }; -oop ReferenceProcessor::_sentinelRef = NULL; - -const int subclasses_of_ref = REF_PHANTOM - REF_OTHER; - void referenceProcessor_init() { ReferenceProcessor::init_statics(); } @@ -82,6 +83,12 @@ void ReferenceProcessor::init_statics() { } assert(_sentinelRef != NULL && _sentinelRef->is_oop(), "Just constructed it!"); + _always_clear_soft_ref_policy = new AlwaysClearPolicy(); + _default_soft_ref_policy = new COMPILER2_PRESENT(LRUMaxHeapPolicy()) + NOT_COMPILER2(LRUCurrentHeapPolicy()); + if (_always_clear_soft_ref_policy == NULL || _default_soft_ref_policy == NULL) { + vm_exit_during_initialization("Could not allocate reference policy object"); + } guarantee(RefDiscoveryPolicy == ReferenceBasedDiscovery || RefDiscoveryPolicy == ReferentBasedDiscovery, "Unrecongnized RefDiscoveryPolicy"); @@ -108,6 +115,7 @@ ReferenceProcessor::create_ref_processor(MemRegion span, vm_exit_during_initialization("Could not allocate ReferenceProcessor object"); } rp->set_is_alive_non_header(is_alive_non_header); + rp->snap_policy(false /* default soft ref policy */); return rp; } @@ -194,7 +202,6 @@ void ReferenceProcessor::update_soft_ref_master_clock() { } void ReferenceProcessor::process_discovered_references( - ReferencePolicy* policy, BoolObjectClosure* is_alive, OopClosure* keep_alive, VoidClosure* complete_gc, @@ -209,7 +216,7 @@ void ReferenceProcessor::process_discovered_references( // Soft references { TraceTime tt("SoftReference", trace_time, false, gclog_or_tty); - process_discovered_reflist(_discoveredSoftRefs, policy, true, + process_discovered_reflist(_discoveredSoftRefs, _current_soft_ref_policy, true, is_alive, keep_alive, complete_gc, task_executor); } @@ -1092,15 +1099,28 @@ bool ReferenceProcessor::discover_reference(oop obj, ReferenceType rt) { // reachable. if (is_alive_non_header() != NULL) { oop referent = java_lang_ref_Reference::referent(obj); - // We'd like to assert the following: - // assert(referent != NULL, "Refs with null referents already filtered"); - // However, since this code may be executed concurrently with - // mutators, which can clear() the referent, it is not - // guaranteed that the referent is non-NULL. + // In the case of non-concurrent discovery, the last + // disjunct below should hold. It may not hold in the + // case of concurrent discovery because mutators may + // concurrently clear() a Reference. + assert(UseConcMarkSweepGC || UseG1GC || referent != NULL, + "Refs with null referents already filtered"); if (is_alive_non_header()->do_object_b(referent)) { return false; // referent is reachable } } + if (rt == REF_SOFT) { + // For soft refs we can decide now if these are not + // current candidates for clearing, in which case we + // can mark through them now, rather than delaying that + // to the reference-processing phase. Since all current + // time-stamp policies advance the soft-ref clock only + // at a major collection cycle, this is always currently + // accurate. + if (!_current_soft_ref_policy->should_clear_reference(obj)) { + return false; + } + } HeapWord* const discovered_addr = java_lang_ref_Reference::discovered_addr(obj); const oop discovered = java_lang_ref_Reference::discovered(obj); diff --git a/hotspot/src/share/vm/memory/referenceProcessor.hpp b/hotspot/src/share/vm/memory/referenceProcessor.hpp index c07c4e34388..d4ebec200fa 100644 --- a/hotspot/src/share/vm/memory/referenceProcessor.hpp +++ b/hotspot/src/share/vm/memory/referenceProcessor.hpp @@ -23,7 +23,7 @@ */ // ReferenceProcessor class encapsulates the per-"collector" processing -// of "weak" references for GC. The interface is useful for supporting +// of java.lang.Reference objects for GC. The interface is useful for supporting // a generational abstraction, in particular when there are multiple // generations that are being independently collected -- possibly // concurrently and/or incrementally. Note, however, that the @@ -75,6 +75,14 @@ class ReferenceProcessor : public CHeapObj { // all collectors but the CMS collector). BoolObjectClosure* _is_alive_non_header; + // Soft ref clearing policies + // . the default policy + static ReferencePolicy* _default_soft_ref_policy; + // . the "clear all" policy + static ReferencePolicy* _always_clear_soft_ref_policy; + // . the current policy below is either one of the above + ReferencePolicy* _current_soft_ref_policy; + // The discovered ref lists themselves // The MT'ness degree of the queues below @@ -90,6 +98,12 @@ class ReferenceProcessor : public CHeapObj { DiscoveredList* discovered_soft_refs() { return _discoveredSoftRefs; } static oop sentinel_ref() { return _sentinelRef; } static oop* adr_sentinel_ref() { return &_sentinelRef; } + ReferencePolicy* snap_policy(bool always_clear) { + _current_soft_ref_policy = always_clear ? + _always_clear_soft_ref_policy : _default_soft_ref_policy; + _current_soft_ref_policy->snap(); // snapshot the policy threshold + return _current_soft_ref_policy; + } public: // Process references with a certain reachability level. @@ -297,8 +311,7 @@ class ReferenceProcessor : public CHeapObj { bool discover_reference(oop obj, ReferenceType rt); // Process references found during GC (called by the garbage collector) - void process_discovered_references(ReferencePolicy* policy, - BoolObjectClosure* is_alive, + void process_discovered_references(BoolObjectClosure* is_alive, OopClosure* keep_alive, VoidClosure* complete_gc, AbstractRefProcTaskExecutor* task_executor); diff --git a/hotspot/src/share/vm/memory/universe.cpp b/hotspot/src/share/vm/memory/universe.cpp index 651e9668041..ffe583ecc16 100644 --- a/hotspot/src/share/vm/memory/universe.cpp +++ b/hotspot/src/share/vm/memory/universe.cpp @@ -96,7 +96,7 @@ bool Universe::_bootstrapping = false; bool Universe::_fully_initialized = false; size_t Universe::_heap_capacity_at_last_gc; -size_t Universe::_heap_used_at_last_gc; +size_t Universe::_heap_used_at_last_gc = 0; CollectedHeap* Universe::_collectedHeap = NULL; address Universe::_heap_base = NULL; diff --git a/hotspot/src/share/vm/utilities/macros.hpp b/hotspot/src/share/vm/utilities/macros.hpp index 770ac0b3876..20b2871c583 100644 --- a/hotspot/src/share/vm/utilities/macros.hpp +++ b/hotspot/src/share/vm/utilities/macros.hpp @@ -65,8 +65,10 @@ // COMPILER2 variant #ifdef COMPILER2 #define COMPILER2_PRESENT(code) code +#define NOT_COMPILER2(code) #else // COMPILER2 #define COMPILER2_PRESENT(code) +#define NOT_COMPILER2(code) code #endif // COMPILER2 From 50a5499c502548175b44bc81fd95c704fd89cd25 Mon Sep 17 00:00:00 2001 From: Coleen Phillimore Date: Fri, 21 Nov 2008 08:09:11 -0800 Subject: [PATCH 026/110] 6676175: BigApps crash JVM Client VM (build 10.0-b22, mixed mode, sharing) with SIGSEGV (0xb) Add test for biased locking epoch before walking own thread stack in case of rare race Reviewed-by: phh, never --- hotspot/src/share/vm/runtime/biasedLocking.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/hotspot/src/share/vm/runtime/biasedLocking.cpp b/hotspot/src/share/vm/runtime/biasedLocking.cpp index a16a96dfdb6..21d2ea7da87 100644 --- a/hotspot/src/share/vm/runtime/biasedLocking.cpp +++ b/hotspot/src/share/vm/runtime/biasedLocking.cpp @@ -582,13 +582,19 @@ BiasedLocking::Condition BiasedLocking::revoke_and_rebias(Handle obj, bool attem if (heuristics == HR_NOT_BIASED) { return NOT_BIASED; } else if (heuristics == HR_SINGLE_REVOKE) { - if (mark->biased_locker() == THREAD) { + Klass *k = Klass::cast(obj->klass()); + markOop prototype_header = k->prototype_header(); + if (mark->biased_locker() == THREAD && + prototype_header->bias_epoch() == mark->bias_epoch()) { // A thread is trying to revoke the bias of an object biased // toward it, again likely due to an identity hash code // computation. We can again avoid a safepoint in this case // since we are only going to walk our own stack. There are no // races with revocations occurring in other threads because we // reach no safepoints in the revocation path. + // Also check the epoch because even if threads match, another thread + // can come in with a CAS to steal the bias of an object that has a + // stale epoch. ResourceMark rm; if (TraceBiasedLocking) { tty->print_cr("Revoking bias by walking my own stack:"); From 9f61f3723c508dc647dc114b54d950fe279cd9c3 Mon Sep 17 00:00:00 2001 From: Daniel Fuchs Date: Fri, 21 Nov 2008 18:18:00 +0100 Subject: [PATCH 027/110] 6774170: LocalRMIServerSocketFactory should protect against ServerSocket.accept().getInetAddress() being null Reviewed-by: emcmanus, jfdenise --- .../LocalRMIServerSocketFactory.java | 33 +++- .../LocalRMIServerSocketFactoryTest.java | 145 ++++++++++++++++++ 2 files changed, 172 insertions(+), 6 deletions(-) create mode 100644 jdk/test/sun/management/jmxremote/LocalRMIServerSocketFactoryTest.java diff --git a/jdk/src/share/classes/sun/management/jmxremote/LocalRMIServerSocketFactory.java b/jdk/src/share/classes/sun/management/jmxremote/LocalRMIServerSocketFactory.java index edb15539b23..0a239201ee7 100644 --- a/jdk/src/share/classes/sun/management/jmxremote/LocalRMIServerSocketFactory.java +++ b/jdk/src/share/classes/sun/management/jmxremote/LocalRMIServerSocketFactory.java @@ -49,13 +49,34 @@ public final class LocalRMIServerSocketFactory implements RMIServerSocketFactory return new ServerSocket(port) { @Override public Socket accept() throws IOException { - Socket socket = super.accept(); - InetAddress remoteAddr = socket.getInetAddress(); + final Socket socket = super.accept(); + final InetAddress remoteAddr = socket.getInetAddress(); final String msg = "The server sockets created using the " + - "LocalRMIServerSocketFactory only accept connections " + - "from clients running on the host where the RMI " + - "remote objects have been exported."; - if (remoteAddr.isAnyLocalAddress()) { + "LocalRMIServerSocketFactory only accept connections " + + "from clients running on the host where the RMI " + + "remote objects have been exported."; + + if (remoteAddr == null) { + // Though unlikeky, the socket could be already + // closed... Send a more detailed message in + // this case. Also avoid throwing NullPointerExceptiion + // + String details = ""; + if (socket.isClosed()) { + details = " Socket is closed."; + } else if (!socket.isConnected()) { + details = " Socket is not connected"; + } + try { + socket.close(); + } catch (Exception ok) { + // ok - this is just cleanup before throwing detailed + // exception. + } + throw new IOException(msg + + " Couldn't determine client address." + + details); + } else if (remoteAddr.isLoopbackAddress()) { // local address: accept the connection. return socket; } diff --git a/jdk/test/sun/management/jmxremote/LocalRMIServerSocketFactoryTest.java b/jdk/test/sun/management/jmxremote/LocalRMIServerSocketFactoryTest.java new file mode 100644 index 00000000000..614c68fb14e --- /dev/null +++ b/jdk/test/sun/management/jmxremote/LocalRMIServerSocketFactoryTest.java @@ -0,0 +1,145 @@ +/* + * Copyright 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. + * + * 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. + */ + +/** + * @test LocalRMIServerSocketFactoryTest.java + * @bug 6774170 + * @summary Connect to a server socket returned by the LocalRMIServerSocketFactory. + * + * @author Daniel Fuchs + * + * @run compile -XDignore.symbol.file=true -source 1.6 -g LocalRMIServerSocketFactoryTest.java + * @run main LocalRMIServerSocketFactoryTest + */ + +import sun.management.jmxremote.LocalRMIServerSocketFactory; +import java.io.IOException; +import java.net.InetAddress; +import java.net.NetworkInterface; +import java.net.ServerSocket; +import java.net.Socket; +import java.util.concurrent.SynchronousQueue; + +public class LocalRMIServerSocketFactoryTest { + + private static final SynchronousQueue queue = + new SynchronousQueue(); + + static final class Result extends Exception { + + private Result() { + super("SUCCESS: No exception was thrown"); + } + static final Result SUCCESS = new Result(); + } + + private static void checkError(String message) throws Exception { + + // Wait for the server to set the error field. + final Exception x = queue.take(); + + if (x == Result.SUCCESS) { + return; + } + + + // case of 6674166: this is very unlikely to happen, even if + // both 6674166 and 6774170 aren't fixed. If it happens + // however, it might indicate that neither defects are fixed. + + if (x instanceof NullPointerException) { + throw new Exception(message + " - " + + "Congratulations! it seems you have triggered 6674166. " + + "Neither 6674166 nor 6774170 seem to be fixed: " + x, x); + } else if (x instanceof IOException) { + throw new Exception(message + " - " + + "Unexpected IOException. Maybe you triggered 6674166? " + + x, x); + } else if (x != null) { + throw new Exception(message + " - " + + "Ouch, that's bad. " + + "This is a new kind of unexpected exception " + + x, x); + } + } + + public static void main(String[] args) throws Exception { + final LocalRMIServerSocketFactory f = + new LocalRMIServerSocketFactory(); + final ServerSocket s = f.createServerSocket(0); + final int port = s.getLocalPort(); + Thread t = new Thread() { + + public void run() { + while (true) { + Exception error = Result.SUCCESS; + try { + System.err.println("Accepting: "); + final Socket ss = s.accept(); + System.err.println(ss.getInetAddress() + " accepted"); + } catch (Exception x) { + x.printStackTrace(); + error = x; + } finally { + try { + // wait for the client to get the exception. + queue.put(error); + } catch (Exception x) { + // too bad! + System.err.println("Could't send result to client!"); + x.printStackTrace(); + return; + } + } + } + } + }; + t.setDaemon(true); + t.start(); + + System.err.println("new Socket((String)null, port)"); + final Socket s1 = new Socket((String) null, port); + checkError("new Socket((String)null, port)"); + s1.close(); + System.err.println("new Socket((String)null, port): PASSED"); + + System.err.println("new Socket(InetAddress.getByName(null), port)"); + final Socket s2 = new Socket(InetAddress.getByName(null), port); + checkError("new Socket(InetAddress.getByName(null), port)"); + s2.close(); + System.err.println("new Socket(InetAddress.getByName(null), port): PASSED"); + + System.err.println("new Socket(localhost, port)"); + final Socket s3 = new Socket("localhost", port); + checkError("new Socket(localhost, port)"); + s3.close(); + System.err.println("new Socket(localhost, port): PASSED"); + + System.err.println("new Socket(127.0.0.1, port)"); + final Socket s4 = new Socket("127.0.0.1", port); + checkError("new Socket(127.0.0.1, port)"); + s4.close(); + System.err.println("new Socket(127.0.0.1, port): PASSED"); + + } +} From 85138023c105e8a10c02fabfb9d770813f61fd0d Mon Sep 17 00:00:00 2001 From: Xiaobin Lu Date: Sat, 22 Nov 2008 00:16:09 -0800 Subject: [PATCH 028/110] 6554406: Change switch UseVMInterruptibleIO default to false (sol) The default value of UseVMInterruptibleIO is changed to false for JDK 7, but the default isn't changed for JDK 6 and earlier. Reviewed-by: never, acorn, dholmes, kamg, alanb --- hotspot/src/share/vm/runtime/arguments.cpp | 7 ++++++- hotspot/src/share/vm/runtime/globals.hpp | 5 +++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/hotspot/src/share/vm/runtime/arguments.cpp b/hotspot/src/share/vm/runtime/arguments.cpp index fa2ba23383b..831218796cf 100644 --- a/hotspot/src/share/vm/runtime/arguments.cpp +++ b/hotspot/src/share/vm/runtime/arguments.cpp @@ -2322,7 +2322,12 @@ SOLARIS_ONLY( return JNI_ERR; } } - + // Change the default value for flags which have different default values + // when working with older JDKs. + if (JDK_Version::current().compare_major(6) <= 0 && + FLAG_IS_DEFAULT(UseVMInterruptibleIO)) { + FLAG_SET_DEFAULT(UseVMInterruptibleIO, true); + } return JNI_OK; } diff --git a/hotspot/src/share/vm/runtime/globals.hpp b/hotspot/src/share/vm/runtime/globals.hpp index a2476f9c707..85689054e3c 100644 --- a/hotspot/src/share/vm/runtime/globals.hpp +++ b/hotspot/src/share/vm/runtime/globals.hpp @@ -3262,9 +3262,10 @@ class CommandLineFlags { diagnostic(bool, PrintDTraceDOF, false, \ "Print the DTrace DOF passed to the system for JSDT probes") \ \ - product(bool, UseVMInterruptibleIO, true, \ + product(bool, UseVMInterruptibleIO, false, \ "(Unstable, Solaris-specific) Thread interrupt before or with " \ - "EINTR for I/O operations results in OS_INTRPT") + "EINTR for I/O operations results in OS_INTRPT. The default value"\ + " of this flag is true for JDK 6 and earliers") /* From 8dc49502e35d2d25873ebbb8e48d81ce8aa23980 Mon Sep 17 00:00:00 2001 From: Martin Buchholz Date: Sun, 23 Nov 2008 09:56:39 -0800 Subject: [PATCH 029/110] 6775152: freetype version check program problem main arg order Fix all compiler warnings Reviewed-by: ohair, tbell --- jdk/make/common/shared/Sanity.gmk | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/jdk/make/common/shared/Sanity.gmk b/jdk/make/common/shared/Sanity.gmk index b2cbab12b3f..d0ced74ee33 100644 --- a/jdk/make/common/shared/Sanity.gmk +++ b/jdk/make/common/shared/Sanity.gmk @@ -1350,10 +1350,11 @@ $(ALSA_VERSION_CHECK): $(ALSA_VERSION_CHECK).c $(ALSA_VERSION_CHECK).c: @$(prep-target) @$(ECHO) "#include \n" \ - "int main(char** argv, int argc) {\n" \ - " printf(\"%s\", SND_LIB_VERSION_STR);\n" \ - " return 0;\n" \ - "}\n" \ + "#include \n" \ + "int main(int argc, char** argv) {\n" \ + " printf(\"%s\", SND_LIB_VERSION_STR);\n" \ + " return 0;\n" \ + "}\n" \ > $@ endif From 6c53645a84570eceb23b64ca69ff1b4a35c42c7c Mon Sep 17 00:00:00 2001 From: "Y. Srinivas Ramakrishna" Date: Mon, 24 Nov 2008 09:53:31 -0800 Subject: [PATCH 030/110] 6774607: SIGSEGV or (!is_null(v),"oop value can never be zero") assertion when running with CMS and COOPs Use the more permissive set_klass_or_null() and klass_or_null() interfaces in ParNew's workqueue overflow code that manipulates the klass-word. Reviewed-by: coleenp --- .../src/share/vm/gc_implementation/parNew/parNewGeneration.cpp | 2 +- hotspot/src/share/vm/oops/oop.inline.hpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp b/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp index aca77d20634..0c0196f253d 100644 --- a/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp +++ b/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp @@ -1205,7 +1205,7 @@ ParNewGeneration::take_from_overflow_list(ParScanThreadState* par_scan_state) { int n = 0; while (cur != NULL) { oop obj_to_push = cur->forwardee(); - oop next = oop(cur->klass()); + oop next = oop(cur->klass_or_null()); cur->set_klass(obj_to_push->klass()); if (par_scan_state->should_be_partially_scanned(obj_to_push, cur)) { obj_to_push = cur; diff --git a/hotspot/src/share/vm/oops/oop.inline.hpp b/hotspot/src/share/vm/oops/oop.inline.hpp index 722a0393003..0c7a3967f48 100644 --- a/hotspot/src/share/vm/oops/oop.inline.hpp +++ b/hotspot/src/share/vm/oops/oop.inline.hpp @@ -92,7 +92,7 @@ inline void oopDesc::set_klass_to_list_ptr(oop k) { // This is only to be used during GC, for from-space objects, so no // barrier is needed. if (UseCompressedOops) { - _metadata._compressed_klass = encode_heap_oop_not_null(k); + _metadata._compressed_klass = encode_heap_oop(k); // may be null (parnew overflow handling) } else { _metadata._klass = (klassOop)k; } From f58e193de06655fb6e31942d8ea1e7a340c75ec1 Mon Sep 17 00:00:00 2001 From: Coleen Phillimore Date: Mon, 24 Nov 2008 14:45:47 -0500 Subject: [PATCH 031/110] 6474243: suspicious jvmti code that uses oop unsafely across GC point Oop stored in unsafely in Lscratch noticed by visual inspection will not be updated by GC. Reviewed-by: kamg, never, kvn --- hotspot/src/cpu/sparc/vm/templateTable_sparc.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/hotspot/src/cpu/sparc/vm/templateTable_sparc.cpp b/hotspot/src/cpu/sparc/vm/templateTable_sparc.cpp index 73de2de94f3..6ba85859c2b 100644 --- a/hotspot/src/cpu/sparc/vm/templateTable_sparc.cpp +++ b/hotspot/src/cpu/sparc/vm/templateTable_sparc.cpp @@ -2085,7 +2085,7 @@ void TemplateTable::jvmti_post_field_access(Register Rcache, } else { if (has_tos) { // save object pointer before call_VM() clobbers it - __ mov(Otos_i, Lscratch); + __ push_ptr(Otos_i); // put object on tos where GC wants it. } else { // Load top of stack (do not pop the value off the stack); __ ld_ptr(Lesp, Interpreter::expr_offset_in_bytes(0), Otos_i); @@ -2097,7 +2097,7 @@ void TemplateTable::jvmti_post_field_access(Register Rcache, __ call_VM(noreg, CAST_FROM_FN_PTR(address, InterpreterRuntime::post_field_access), Otos_i, Rcache); if (!is_static && has_tos) { - __ mov(Lscratch, Otos_i); // restore object pointer + __ pop_ptr(Otos_i); // restore object pointer __ verify_oop(Otos_i); } __ get_cache_and_index_at_bcp(Rcache, index, 1); From 93225a0b6085c1ead59207a58e446cc89d1685ee Mon Sep 17 00:00:00 2001 From: Sean Mullan Date: Tue, 25 Nov 2008 10:17:00 -0500 Subject: [PATCH 032/110] 6728890: Add SwissSign root certificates to the JDK 6732157: Add VeriSign TSA Root Cert to the JDK 6754779: Add Camerfirma root certificates to the JDK 6768559: Add t-systems root CA certificate (Deutsche Telekom Root CA 2) to the JRE Reviewed-by: vinnie --- .../lib/security/cacerts/VerifyCACerts.java | 94 +++++++++++++++++-- 1 file changed, 86 insertions(+), 8 deletions(-) diff --git a/jdk/test/lib/security/cacerts/VerifyCACerts.java b/jdk/test/lib/security/cacerts/VerifyCACerts.java index 774908cca54..a5559a0e755 100644 --- a/jdk/test/lib/security/cacerts/VerifyCACerts.java +++ b/jdk/test/lib/security/cacerts/VerifyCACerts.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2002-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 @@ -23,11 +23,12 @@ /** * @test - * @bug 4400624 6321453 + * @bug 4400624 6321453 6728890 6732157 6754779 6768559 * @summary Make sure all self-signed root cert signatures are valid */ import java.io.FileInputStream; import java.security.KeyStore; +import java.security.MessageDigest; import java.security.cert.*; import java.util.*; @@ -39,25 +40,102 @@ public class VerifyCACerts { System.getProperty("file.separator") + "security" + System.getProperty("file.separator") + "cacerts"; - public static void main(String[] args) throws Exception { + private static boolean atLeastOneFailed = false; - // pull all the trusted self-signed CA certs out of the cacerts file - // and verify their signatures + private static MessageDigest md; + + // map of cert alias to SHA1 fingerprint + private static Map fpMap = new HashMap(); + + private static String[][] entries = { + { "swisssignsilverg2ca", "9B:AA:E5:9F:56:EE:21:CB:43:5A:BE:25:93:DF:A7:F0:40:D1:1D:CB"}, + { "swisssigngoldg2ca", "D8:C5:38:8A:B7:30:1B:1B:6E:D4:7A:E6:45:25:3A:6F:9F:1A:27:61"}, + { "swisssignplatinumg2ca", "56:E0:FA:C0:3B:8F:18:23:55:18:E5:D3:11:CA:E8:C2:43:31:AB:66"}, + { "verisigntsaca", "BE:36:A4:56:2F:B2:EE:05:DB:B3:D3:23:23:AD:F4:45:08:4E:D6:56"}, + { "camerfirmachambersignca", "4A:BD:EE:EC:95:0D:35:9C:89:AE:C7:52:A1:2C:5B:29:F6:D6:AA:0C"}, + { "camerfirmachambersca", "78:6A:74:AC:76:AB:14:7F:9C:6A:30:50:BA:9E:A8:7E:FE:9A:CE:3C"}, + { "camerfirmachamberscommerceca", "6E:3A:55:A4:19:0C:19:5C:93:84:3C:C0:DB:72:2E:31:30:61:F0:B1"}, + { "deutschetelekomrootca2", "85:A4:08:C0:9C:19:3E:5D:51:58:7D:CD:D6:13:30:FD:8C:DE:37:BF"}, + }; + + static { + for (String[] entry : entries) { + fpMap.put(entry[0], entry[1]); + } + }; + + public static void main(String[] args) throws Exception { + md = MessageDigest.getInstance("SHA1"); KeyStore ks = KeyStore.getInstance("JKS"); ks.load(new FileInputStream(cacertsFileName), "changeit".toCharArray()); + + // check that all entries in the map are in the keystore + for (String alias : fpMap.keySet()) { + if (!ks.isCertificateEntry(alias)) { + atLeastOneFailed = true; + System.err.println(alias + " is not in cacerts"); + } + } + // pull all the trusted self-signed CA certs out of the cacerts file + // and verify their signatures Enumeration aliases = ks.aliases(); while (aliases.hasMoreElements()) { String alias = aliases.nextElement(); System.out.println("Verifying " + alias); - if (!ks.isCertificateEntry(alias)) - throw new Exception(alias + " is not a trusted cert entry"); + if (!ks.isCertificateEntry(alias)) { + atLeastOneFailed = true; + System.err.println(alias + " is not a trusted cert entry"); + } Certificate cert = ks.getCertificate(alias); // remember the GTE CyberTrust CA cert for further tests if (alias.equals("gtecybertrustca")) { - throw new Exception + atLeastOneFailed = true; + System.err.println ("gtecybertrustca is expired and should be deleted"); } cert.verify(cert.getPublicKey()); + if (!checkFingerprint(alias, cert)) { + atLeastOneFailed = true; + System.err.println + (alias + " SHA1 fingerprint is incorrect"); + } + } + + if (atLeastOneFailed) { + throw new Exception("At least one cacert test failed"); } } + + private static boolean checkFingerprint(String alias, Certificate cert) + throws Exception { + String fingerprint = fpMap.get(alias); + if (fingerprint == null) { + // no entry for alias + return true; + } + System.out.println("Checking fingerprint of " + alias); + byte[] digest = md.digest(cert.getEncoded()); + return fingerprint.equals(toHexString(digest)); + } + + private static String toHexString(byte[] block) { + StringBuffer buf = new StringBuffer(); + int len = block.length; + for (int i = 0; i < len; i++) { + byte2hex(block[i], buf); + if (i < len-1) { + buf.append(":"); + } + } + return buf.toString(); + } + + private static void byte2hex(byte b, StringBuffer buf) { + char[] hexChars = { '0', '1', '2', '3', '4', '5', '6', '7', '8', + '9', 'A', 'B', 'C', 'D', 'E', 'F' }; + int high = ((b & 0xf0) >> 4); + int low = (b & 0x0f); + buf.append(hexChars[high]); + buf.append(hexChars[low]); + } } From b9638d0527ff0f66cd0f209e1f5da1e3ae6b779c Mon Sep 17 00:00:00 2001 From: Xueming Shen Date: Tue, 25 Nov 2008 10:09:26 -0800 Subject: [PATCH 033/110] 6774710: spp.sh used by genBasic.sh/genCopyDirectMemory.sh Update the scripts to use java version of spp Reviewed-by: alanb --- jdk/test/java/nio/Buffer/genBasic.sh | 6 ++++-- jdk/test/java/nio/Buffer/genCopyDirectMemory.sh | 5 +++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/jdk/test/java/nio/Buffer/genBasic.sh b/jdk/test/java/nio/Buffer/genBasic.sh index b0455670597..4696f05a244 100644 --- a/jdk/test/java/nio/Buffer/genBasic.sh +++ b/jdk/test/java/nio/Buffer/genBasic.sh @@ -23,10 +23,10 @@ # have any questions. # -SPP='sh ../../../../make/java/nio/spp.sh' +javac -d . ../../../../make/tools/src/build/tools/spp/Spp.java > Spp.java gen() { - $SPP -K$1 -Dtype=$1 -DType=$2 -DFulltype=$3 Basic$2.java + java build.tools.spp.Spp -K$1 -Dtype=$1 -DType=$2 -DFulltype=$3 Basic$2.java } gen byte Byte Byte @@ -36,3 +36,5 @@ gen int Int Integer gen long Long Long gen float Float Float gen double Double Double + +rm -rf build diff --git a/jdk/test/java/nio/Buffer/genCopyDirectMemory.sh b/jdk/test/java/nio/Buffer/genCopyDirectMemory.sh index 588a1790c8b..8bdc8409552 100644 --- a/jdk/test/java/nio/Buffer/genCopyDirectMemory.sh +++ b/jdk/test/java/nio/Buffer/genCopyDirectMemory.sh @@ -23,10 +23,10 @@ # have any questions. # -SPP='sh ../../../../make/java/nio/spp.sh' +javac -d . ../../../../make/tools/src/build/tools/spp/Spp.java > Spp.java gen() { - $SPP -K$1 -Dtype=$1 -DType=$2 -DFulltype=$3CopyDirect$2Memory.java + java build.tools.spp.Spp -K$1 -Dtype=$1 -DType=$2 -DFulltype=$3CopyDirect$2Memory.java } gen byte Byte Byte @@ -37,3 +37,4 @@ gen long Long Long gen float Float Float gen double Double Double +rm -rf build From efd62d5c812764a9d390a9a528cc1de8f3fb1293 Mon Sep 17 00:00:00 2001 From: Alan Bateman Date: Tue, 25 Nov 2008 19:26:54 +0000 Subject: [PATCH 034/110] 6593946: (bf) X-Buffer.compact() does not discard mark as specified InvalidMarkException now correctly thrown. Thanks to keiths@redhat.com for the bug report and initial fix. Reviewed-by: sherman, darcy --- jdk/src/share/classes/java/nio/Buffer.java | 4 ++ .../java/nio/ByteBufferAs-X-Buffer.java | 1 + .../classes/java/nio/Direct-X-Buffer.java | 1 + .../share/classes/java/nio/Heap-X-Buffer.java | 1 + jdk/test/java/nio/Buffer/Basic-X.java | 42 +++++++++++++++++-- jdk/test/java/nio/Buffer/Basic.java | 2 +- jdk/test/java/nio/Buffer/BasicByte.java | 42 +++++++++++++++++-- jdk/test/java/nio/Buffer/BasicChar.java | 40 +++++++++++++++++- jdk/test/java/nio/Buffer/BasicDouble.java | 40 +++++++++++++++++- jdk/test/java/nio/Buffer/BasicFloat.java | 40 +++++++++++++++++- jdk/test/java/nio/Buffer/BasicInt.java | 40 +++++++++++++++++- jdk/test/java/nio/Buffer/BasicLong.java | 40 +++++++++++++++++- jdk/test/java/nio/Buffer/BasicShort.java | 40 +++++++++++++++++- jdk/test/java/nio/Buffer/genBasic.sh | 2 +- 14 files changed, 315 insertions(+), 20 deletions(-) diff --git a/jdk/src/share/classes/java/nio/Buffer.java b/jdk/src/share/classes/java/nio/Buffer.java index 3804057974f..923f9d75c5c 100644 --- a/jdk/src/share/classes/java/nio/Buffer.java +++ b/jdk/src/share/classes/java/nio/Buffer.java @@ -543,6 +543,10 @@ public abstract class Buffer { return mark; } + final void discardMark() { // package-private + mark = -1; + } + static void checkBounds(int off, int len, int size) { // package-private if ((off | len | (off + len) | (size - (off + len))) < 0) throw new IndexOutOfBoundsException(); diff --git a/jdk/src/share/classes/java/nio/ByteBufferAs-X-Buffer.java b/jdk/src/share/classes/java/nio/ByteBufferAs-X-Buffer.java index 54deb4c8f3e..15626425a0e 100644 --- a/jdk/src/share/classes/java/nio/ByteBufferAs-X-Buffer.java +++ b/jdk/src/share/classes/java/nio/ByteBufferAs-X-Buffer.java @@ -150,6 +150,7 @@ class ByteBufferAs$Type$Buffer$RW$$BO$ // package-private sb.compact(); position(rem); limit(capacity()); + discardMark(); return this; #else[rw] throw new ReadOnlyBufferException(); diff --git a/jdk/src/share/classes/java/nio/Direct-X-Buffer.java b/jdk/src/share/classes/java/nio/Direct-X-Buffer.java index 26b31956a31..5f738b7811e 100644 --- a/jdk/src/share/classes/java/nio/Direct-X-Buffer.java +++ b/jdk/src/share/classes/java/nio/Direct-X-Buffer.java @@ -365,6 +365,7 @@ class Direct$Type$Buffer$RW$$BO$ unsafe.copyMemory(ix(pos), ix(0), rem << $LG_BYTES_PER_VALUE$); position(rem); limit(capacity()); + discardMark(); return this; #else[rw] throw new ReadOnlyBufferException(); diff --git a/jdk/src/share/classes/java/nio/Heap-X-Buffer.java b/jdk/src/share/classes/java/nio/Heap-X-Buffer.java index 28f1ca8abe1..b615ba3c633 100644 --- a/jdk/src/share/classes/java/nio/Heap-X-Buffer.java +++ b/jdk/src/share/classes/java/nio/Heap-X-Buffer.java @@ -222,6 +222,7 @@ class Heap$Type$Buffer$RW$ System.arraycopy(hb, ix(position()), hb, ix(0), remaining()); position(remaining()); limit(capacity()); + discardMark(); return this; #else[rw] throw new ReadOnlyBufferException(); diff --git a/jdk/test/java/nio/Buffer/Basic-X.java b/jdk/test/java/nio/Buffer/Basic-X.java index a28793ce208..7a5957092f8 100644 --- a/jdk/test/java/nio/Buffer/Basic-X.java +++ b/jdk/test/java/nio/Buffer/Basic-X.java @@ -31,6 +31,7 @@ #warn This file is preprocessed before being compiled import java.nio.*; +import java.lang.reflect.Method; public class Basic$Type$ @@ -184,32 +185,57 @@ public class Basic$Type$ b.position(p); } + private static void compact(Buffer b) { + try { + Class cl = b.getClass(); + Method m = cl.getDeclaredMethod("compact"); + m.setAccessible(true); + m.invoke(b); + } catch (Exception e) { + fail(e.getMessage(), b); + } + } + + private static void checkInvalidMarkException(final Buffer b) { + tryCatch(b, InvalidMarkException.class, new Runnable() { + public void run() { + b.mark(); + compact(b); + b.reset(); + }}); + } + private static void testViews(int level, ByteBuffer b, boolean direct) { ShortBuffer sb = b.asShortBuffer(); BasicShort.test(level, sb, direct); checkBytes(b, new byte[] { 0, (byte)ic(0) }); + checkInvalidMarkException(sb); CharBuffer cb = b.asCharBuffer(); BasicChar.test(level, cb, direct); checkBytes(b, new byte[] { 0, (byte)ic(0) }); + checkInvalidMarkException(cb); IntBuffer ib = b.asIntBuffer(); BasicInt.test(level, ib, direct); checkBytes(b, new byte[] { 0, 0, 0, (byte)ic(0) }); + checkInvalidMarkException(ib); LongBuffer lb = b.asLongBuffer(); BasicLong.test(level, lb, direct); checkBytes(b, new byte[] { 0, 0, 0, 0, 0, 0, 0, (byte)ic(0) }); + checkInvalidMarkException(lb); FloatBuffer fb = b.asFloatBuffer(); BasicFloat.test(level, fb, direct); checkBytes(b, new byte[] { 0x42, (byte)0xc2, 0, 0 }); + checkInvalidMarkException(fb); DoubleBuffer db = b.asDoubleBuffer(); BasicDouble.test(level, db, direct); checkBytes(b, new byte[] { 0x40, 0x58, 0x40, 0, 0, 0, 0, 0 }); - + checkInvalidMarkException(db); } private static void testHet(int level, ByteBuffer b) { @@ -288,8 +314,11 @@ public class Basic$Type$ try { thunk.run(); } catch (Throwable x) { - if (ex.isAssignableFrom(x.getClass())) + if (ex.isAssignableFrom(x.getClass())) { caught = true; + } else { + fail(x.getMessage() + " not expected"); + } } if (!caught) fail(ex.getName() + " not thrown", b); @@ -356,7 +385,6 @@ public class Basic$Type$ // Exceptions - boolean caught = false; relPut(b); b.limit(b.capacity() / 2); b.position(b.limit()); @@ -386,6 +414,14 @@ public class Basic$Type$ b.put(b.limit(), ($type$)42); }}); + tryCatch(b, InvalidMarkException.class, new Runnable() { + public void run() { + b.position(0); + b.mark(); + b.compact(); + b.reset(); + }}); + // Values b.clear(); diff --git a/jdk/test/java/nio/Buffer/Basic.java b/jdk/test/java/nio/Buffer/Basic.java index 0716a5b8229..2b37048ff97 100644 --- a/jdk/test/java/nio/Buffer/Basic.java +++ b/jdk/test/java/nio/Buffer/Basic.java @@ -25,7 +25,7 @@ * @summary Unit test for buffers * @bug 4413135 4414911 4416536 4416562 4418782 4471053 4472779 4490253 4523725 * 4526177 4463011 4660660 4661219 4663521 4782970 4804304 4938424 6231529 - * 6221101 6234263 6535542 6591971 + * 6221101 6234263 6535542 6591971 6593946 * @author Mark Reinhold */ diff --git a/jdk/test/java/nio/Buffer/BasicByte.java b/jdk/test/java/nio/Buffer/BasicByte.java index 539af2c62d0..37da213b7f9 100644 --- a/jdk/test/java/nio/Buffer/BasicByte.java +++ b/jdk/test/java/nio/Buffer/BasicByte.java @@ -31,6 +31,7 @@ // -- This file was mechanically generated: Do not edit! -- // import java.nio.*; +import java.lang.reflect.Method; public class BasicByte @@ -184,32 +185,57 @@ public class BasicByte b.position(p); } + private static void compact(Buffer b) { + try { + Class cl = b.getClass(); + Method m = cl.getDeclaredMethod("compact"); + m.setAccessible(true); + m.invoke(b); + } catch (Exception e) { + fail(e.getMessage(), b); + } + } + + private static void checkInvalidMarkException(final Buffer b) { + tryCatch(b, InvalidMarkException.class, new Runnable() { + public void run() { + b.mark(); + compact(b); + b.reset(); + }}); + } + private static void testViews(int level, ByteBuffer b, boolean direct) { ShortBuffer sb = b.asShortBuffer(); BasicShort.test(level, sb, direct); checkBytes(b, new byte[] { 0, (byte)ic(0) }); + checkInvalidMarkException(sb); CharBuffer cb = b.asCharBuffer(); BasicChar.test(level, cb, direct); checkBytes(b, new byte[] { 0, (byte)ic(0) }); + checkInvalidMarkException(cb); IntBuffer ib = b.asIntBuffer(); BasicInt.test(level, ib, direct); checkBytes(b, new byte[] { 0, 0, 0, (byte)ic(0) }); + checkInvalidMarkException(ib); LongBuffer lb = b.asLongBuffer(); BasicLong.test(level, lb, direct); checkBytes(b, new byte[] { 0, 0, 0, 0, 0, 0, 0, (byte)ic(0) }); + checkInvalidMarkException(lb); FloatBuffer fb = b.asFloatBuffer(); BasicFloat.test(level, fb, direct); checkBytes(b, new byte[] { 0x42, (byte)0xc2, 0, 0 }); + checkInvalidMarkException(fb); DoubleBuffer db = b.asDoubleBuffer(); BasicDouble.test(level, db, direct); checkBytes(b, new byte[] { 0x40, 0x58, 0x40, 0, 0, 0, 0, 0 }); - + checkInvalidMarkException(db); } private static void testHet(int level, ByteBuffer b) { @@ -288,8 +314,11 @@ public class BasicByte try { thunk.run(); } catch (Throwable x) { - if (ex.isAssignableFrom(x.getClass())) + if (ex.isAssignableFrom(x.getClass())) { caught = true; + } else { + fail(x.getMessage() + " not expected"); + } } if (!caught) fail(ex.getName() + " not thrown", b); @@ -356,7 +385,6 @@ public class BasicByte // Exceptions - boolean caught = false; relPut(b); b.limit(b.capacity() / 2); b.position(b.limit()); @@ -386,6 +414,14 @@ public class BasicByte b.put(b.limit(), (byte)42); }}); + tryCatch(b, InvalidMarkException.class, new Runnable() { + public void run() { + b.position(0); + b.mark(); + b.compact(); + b.reset(); + }}); + // Values b.clear(); diff --git a/jdk/test/java/nio/Buffer/BasicChar.java b/jdk/test/java/nio/Buffer/BasicChar.java index 10111cc71a3..423a88cb776 100644 --- a/jdk/test/java/nio/Buffer/BasicChar.java +++ b/jdk/test/java/nio/Buffer/BasicChar.java @@ -31,6 +31,7 @@ // -- This file was mechanically generated: Do not edit! -- // import java.nio.*; +import java.lang.reflect.Method; public class BasicChar @@ -262,6 +263,31 @@ public class BasicChar + + + + + + + + + + + + + + + + + + + + + + + + + @@ -288,8 +314,11 @@ public class BasicChar try { thunk.run(); } catch (Throwable x) { - if (ex.isAssignableFrom(x.getClass())) + if (ex.isAssignableFrom(x.getClass())) { caught = true; + } else { + fail(x.getMessage() + " not expected"); + } } if (!caught) fail(ex.getName() + " not thrown", b); @@ -356,7 +385,6 @@ public class BasicChar // Exceptions - boolean caught = false; relPut(b); b.limit(b.capacity() / 2); b.position(b.limit()); @@ -386,6 +414,14 @@ public class BasicChar b.put(b.limit(), (char)42); }}); + tryCatch(b, InvalidMarkException.class, new Runnable() { + public void run() { + b.position(0); + b.mark(); + b.compact(); + b.reset(); + }}); + // Values b.clear(); diff --git a/jdk/test/java/nio/Buffer/BasicDouble.java b/jdk/test/java/nio/Buffer/BasicDouble.java index 3da239652fd..1aef0665f16 100644 --- a/jdk/test/java/nio/Buffer/BasicDouble.java +++ b/jdk/test/java/nio/Buffer/BasicDouble.java @@ -31,6 +31,7 @@ // -- This file was mechanically generated: Do not edit! -- // import java.nio.*; +import java.lang.reflect.Method; public class BasicDouble @@ -262,6 +263,31 @@ public class BasicDouble + + + + + + + + + + + + + + + + + + + + + + + + + @@ -288,8 +314,11 @@ public class BasicDouble try { thunk.run(); } catch (Throwable x) { - if (ex.isAssignableFrom(x.getClass())) + if (ex.isAssignableFrom(x.getClass())) { caught = true; + } else { + fail(x.getMessage() + " not expected"); + } } if (!caught) fail(ex.getName() + " not thrown", b); @@ -356,7 +385,6 @@ public class BasicDouble // Exceptions - boolean caught = false; relPut(b); b.limit(b.capacity() / 2); b.position(b.limit()); @@ -386,6 +414,14 @@ public class BasicDouble b.put(b.limit(), (double)42); }}); + tryCatch(b, InvalidMarkException.class, new Runnable() { + public void run() { + b.position(0); + b.mark(); + b.compact(); + b.reset(); + }}); + // Values b.clear(); diff --git a/jdk/test/java/nio/Buffer/BasicFloat.java b/jdk/test/java/nio/Buffer/BasicFloat.java index 9bd702bc1bf..1a902f6aea1 100644 --- a/jdk/test/java/nio/Buffer/BasicFloat.java +++ b/jdk/test/java/nio/Buffer/BasicFloat.java @@ -31,6 +31,7 @@ // -- This file was mechanically generated: Do not edit! -- // import java.nio.*; +import java.lang.reflect.Method; public class BasicFloat @@ -262,6 +263,31 @@ public class BasicFloat + + + + + + + + + + + + + + + + + + + + + + + + + @@ -288,8 +314,11 @@ public class BasicFloat try { thunk.run(); } catch (Throwable x) { - if (ex.isAssignableFrom(x.getClass())) + if (ex.isAssignableFrom(x.getClass())) { caught = true; + } else { + fail(x.getMessage() + " not expected"); + } } if (!caught) fail(ex.getName() + " not thrown", b); @@ -356,7 +385,6 @@ public class BasicFloat // Exceptions - boolean caught = false; relPut(b); b.limit(b.capacity() / 2); b.position(b.limit()); @@ -386,6 +414,14 @@ public class BasicFloat b.put(b.limit(), (float)42); }}); + tryCatch(b, InvalidMarkException.class, new Runnable() { + public void run() { + b.position(0); + b.mark(); + b.compact(); + b.reset(); + }}); + // Values b.clear(); diff --git a/jdk/test/java/nio/Buffer/BasicInt.java b/jdk/test/java/nio/Buffer/BasicInt.java index 4a5887131b2..d5e9e15550c 100644 --- a/jdk/test/java/nio/Buffer/BasicInt.java +++ b/jdk/test/java/nio/Buffer/BasicInt.java @@ -31,6 +31,7 @@ // -- This file was mechanically generated: Do not edit! -- // import java.nio.*; +import java.lang.reflect.Method; public class BasicInt @@ -262,6 +263,31 @@ public class BasicInt + + + + + + + + + + + + + + + + + + + + + + + + + @@ -288,8 +314,11 @@ public class BasicInt try { thunk.run(); } catch (Throwable x) { - if (ex.isAssignableFrom(x.getClass())) + if (ex.isAssignableFrom(x.getClass())) { caught = true; + } else { + fail(x.getMessage() + " not expected"); + } } if (!caught) fail(ex.getName() + " not thrown", b); @@ -356,7 +385,6 @@ public class BasicInt // Exceptions - boolean caught = false; relPut(b); b.limit(b.capacity() / 2); b.position(b.limit()); @@ -386,6 +414,14 @@ public class BasicInt b.put(b.limit(), (int)42); }}); + tryCatch(b, InvalidMarkException.class, new Runnable() { + public void run() { + b.position(0); + b.mark(); + b.compact(); + b.reset(); + }}); + // Values b.clear(); diff --git a/jdk/test/java/nio/Buffer/BasicLong.java b/jdk/test/java/nio/Buffer/BasicLong.java index 0ef145c8f40..660b3999545 100644 --- a/jdk/test/java/nio/Buffer/BasicLong.java +++ b/jdk/test/java/nio/Buffer/BasicLong.java @@ -31,6 +31,7 @@ // -- This file was mechanically generated: Do not edit! -- // import java.nio.*; +import java.lang.reflect.Method; public class BasicLong @@ -262,6 +263,31 @@ public class BasicLong + + + + + + + + + + + + + + + + + + + + + + + + + @@ -288,8 +314,11 @@ public class BasicLong try { thunk.run(); } catch (Throwable x) { - if (ex.isAssignableFrom(x.getClass())) + if (ex.isAssignableFrom(x.getClass())) { caught = true; + } else { + fail(x.getMessage() + " not expected"); + } } if (!caught) fail(ex.getName() + " not thrown", b); @@ -356,7 +385,6 @@ public class BasicLong // Exceptions - boolean caught = false; relPut(b); b.limit(b.capacity() / 2); b.position(b.limit()); @@ -386,6 +414,14 @@ public class BasicLong b.put(b.limit(), (long)42); }}); + tryCatch(b, InvalidMarkException.class, new Runnable() { + public void run() { + b.position(0); + b.mark(); + b.compact(); + b.reset(); + }}); + // Values b.clear(); diff --git a/jdk/test/java/nio/Buffer/BasicShort.java b/jdk/test/java/nio/Buffer/BasicShort.java index 42fe98b8673..acd4740216d 100644 --- a/jdk/test/java/nio/Buffer/BasicShort.java +++ b/jdk/test/java/nio/Buffer/BasicShort.java @@ -31,6 +31,7 @@ // -- This file was mechanically generated: Do not edit! -- // import java.nio.*; +import java.lang.reflect.Method; public class BasicShort @@ -262,6 +263,31 @@ public class BasicShort + + + + + + + + + + + + + + + + + + + + + + + + + @@ -288,8 +314,11 @@ public class BasicShort try { thunk.run(); } catch (Throwable x) { - if (ex.isAssignableFrom(x.getClass())) + if (ex.isAssignableFrom(x.getClass())) { caught = true; + } else { + fail(x.getMessage() + " not expected"); + } } if (!caught) fail(ex.getName() + " not thrown", b); @@ -356,7 +385,6 @@ public class BasicShort // Exceptions - boolean caught = false; relPut(b); b.limit(b.capacity() / 2); b.position(b.limit()); @@ -386,6 +414,14 @@ public class BasicShort b.put(b.limit(), (short)42); }}); + tryCatch(b, InvalidMarkException.class, new Runnable() { + public void run() { + b.position(0); + b.mark(); + b.compact(); + b.reset(); + }}); + // Values b.clear(); diff --git a/jdk/test/java/nio/Buffer/genBasic.sh b/jdk/test/java/nio/Buffer/genBasic.sh index 4696f05a244..d546cec5d2f 100644 --- a/jdk/test/java/nio/Buffer/genBasic.sh +++ b/jdk/test/java/nio/Buffer/genBasic.sh @@ -23,7 +23,7 @@ # have any questions. # -javac -d . ../../../../make/tools/src/build/tools/spp/Spp.java > Spp.java +javac -d . ../../../../make/tools/src/build/tools/spp/Spp.java gen() { java build.tools.spp.Spp -K$1 -Dtype=$1 -DType=$2 -DFulltype=$3 Basic$2.java From 2bba3afabc1ab7dcf2da350b1dfdee7a8f7780ff Mon Sep 17 00:00:00 2001 From: Tom Rodriguez Date: Tue, 25 Nov 2008 13:14:07 -0800 Subject: [PATCH 035/110] 6756768: C1 generates invalid code Reviewed-by: kvn, jrose --- hotspot/src/share/vm/c1/c1_GraphBuilder.cpp | 31 +---- hotspot/src/share/vm/c1/c1_GraphBuilder.hpp | 2 - hotspot/src/share/vm/c1/c1_ValueMap.hpp | 116 +++++++++++------- .../test/compiler/6756768/Test6756768.java | 55 +++++++++ .../test/compiler/6756768/Test6756768_2.java | 55 +++++++++ 5 files changed, 184 insertions(+), 75 deletions(-) create mode 100644 hotspot/test/compiler/6756768/Test6756768.java create mode 100644 hotspot/test/compiler/6756768/Test6756768_2.java diff --git a/hotspot/src/share/vm/c1/c1_GraphBuilder.cpp b/hotspot/src/share/vm/c1/c1_GraphBuilder.cpp index efa25e3915f..050823dbde9 100644 --- a/hotspot/src/share/vm/c1/c1_GraphBuilder.cpp +++ b/hotspot/src/share/vm/c1/c1_GraphBuilder.cpp @@ -676,21 +676,6 @@ GraphBuilder::ScopeData::ScopeData(ScopeData* parent) } -void GraphBuilder::kill_field(ciField* field) { - if (UseLocalValueNumbering) { - vmap()->kill_field(field); - } -} - - -void GraphBuilder::kill_array(Value value) { - if (UseLocalValueNumbering) { - vmap()->kill_array(value->type()); - } - _memory->store_value(value); -} - - void GraphBuilder::kill_all() { if (UseLocalValueNumbering) { vmap()->kill_all(); @@ -987,8 +972,8 @@ void GraphBuilder::store_indexed(BasicType type) { length = append(new ArrayLength(array, lock_stack())); } StoreIndexed* result = new StoreIndexed(array, index, length, type, value, lock_stack()); - kill_array(value); // invalidate all CSEs that are memory accesses of the same type append(result); + _memory->store_value(value); } @@ -1478,9 +1463,6 @@ void GraphBuilder::access_field(Bytecodes::Code code) { case Bytecodes::_putstatic: { Value val = pop(type); append(new StoreField(append(obj), offset, field, val, true, lock_stack(), state_copy, is_loaded, is_initialized)); - if (UseLocalValueNumbering) { - vmap()->kill_field(field); // invalidate all CSEs that are memory accesses - } } break; case Bytecodes::_getfield : @@ -1503,7 +1485,6 @@ void GraphBuilder::access_field(Bytecodes::Code code) { if (is_loaded) store = _memory->store(store); if (store != NULL) { append(store); - kill_field(field); // invalidate all CSEs that are accesses of this field } } break; @@ -1900,6 +1881,8 @@ Instruction* GraphBuilder::append_with_bci(Instruction* instr, int bci) { assert(i2->bci() != -1, "should already be linked"); return i2; } + ValueNumberingEffects vne(vmap()); + i1->visit(&vne); } if (i1->as_Phi() == NULL && i1->as_Local() == NULL) { @@ -1926,14 +1909,8 @@ Instruction* GraphBuilder::append_with_bci(Instruction* instr, int bci) { assert(_last == i1, "adjust code below"); StateSplit* s = i1->as_StateSplit(); if (s != NULL && i1->as_BlockEnd() == NULL) { - // Continue CSE across certain intrinsics - Intrinsic* intrinsic = s->as_Intrinsic(); - if (UseLocalValueNumbering) { - if (intrinsic == NULL || !intrinsic->preserves_state()) { - vmap()->kill_all(); // for now, hopefully we need this only for calls eventually - } - } if (EliminateFieldAccess) { + Intrinsic* intrinsic = s->as_Intrinsic(); if (s->as_Invoke() != NULL || (intrinsic && !intrinsic->preserves_state())) { _memory->kill(); } diff --git a/hotspot/src/share/vm/c1/c1_GraphBuilder.hpp b/hotspot/src/share/vm/c1/c1_GraphBuilder.hpp index 46786748b5e..7f185ef4b96 100644 --- a/hotspot/src/share/vm/c1/c1_GraphBuilder.hpp +++ b/hotspot/src/share/vm/c1/c1_GraphBuilder.hpp @@ -283,8 +283,6 @@ class GraphBuilder VALUE_OBJ_CLASS_SPEC { Dependencies* dependency_recorder() const; // = compilation()->dependencies() bool direct_compare(ciKlass* k); - void kill_field(ciField* field); - void kill_array(Value value); void kill_all(); ValueStack* lock_stack(); diff --git a/hotspot/src/share/vm/c1/c1_ValueMap.hpp b/hotspot/src/share/vm/c1/c1_ValueMap.hpp index efc32200910..94823245875 100644 --- a/hotspot/src/share/vm/c1/c1_ValueMap.hpp +++ b/hotspot/src/share/vm/c1/c1_ValueMap.hpp @@ -133,53 +133,77 @@ class ValueNumberingVisitor: public InstructionVisitor { virtual void kill_array(ValueType* type) = 0; // visitor functions - void do_StoreField (StoreField* x) { kill_field(x->field()); }; - void do_StoreIndexed (StoreIndexed* x) { kill_array(x->type()); }; - void do_MonitorEnter (MonitorEnter* x) { kill_memory(); }; - void do_MonitorExit (MonitorExit* x) { kill_memory(); }; - void do_Invoke (Invoke* x) { kill_memory(); }; - void do_UnsafePutRaw (UnsafePutRaw* x) { kill_memory(); }; - void do_UnsafePutObject(UnsafePutObject* x) { kill_memory(); }; - void do_Intrinsic (Intrinsic* x) { if (!x->preserves_state()) kill_memory(); }; + void do_StoreField (StoreField* x) { + if (!x->is_initialized()) { + kill_memory(); + } else { + kill_field(x->field()); + } + } + void do_StoreIndexed (StoreIndexed* x) { kill_array(x->type()); } + void do_MonitorEnter (MonitorEnter* x) { kill_memory(); } + void do_MonitorExit (MonitorExit* x) { kill_memory(); } + void do_Invoke (Invoke* x) { kill_memory(); } + void do_UnsafePutRaw (UnsafePutRaw* x) { kill_memory(); } + void do_UnsafePutObject(UnsafePutObject* x) { kill_memory(); } + void do_Intrinsic (Intrinsic* x) { if (!x->preserves_state()) kill_memory(); } - void do_Phi (Phi* x) { /* nothing to do */ }; - void do_Local (Local* x) { /* nothing to do */ }; - void do_Constant (Constant* x) { /* nothing to do */ }; - void do_LoadField (LoadField* x) { /* nothing to do */ }; - void do_ArrayLength (ArrayLength* x) { /* nothing to do */ }; - void do_LoadIndexed (LoadIndexed* x) { /* nothing to do */ }; - void do_NegateOp (NegateOp* x) { /* nothing to do */ }; - void do_ArithmeticOp (ArithmeticOp* x) { /* nothing to do */ }; - void do_ShiftOp (ShiftOp* x) { /* nothing to do */ }; - void do_LogicOp (LogicOp* x) { /* nothing to do */ }; - void do_CompareOp (CompareOp* x) { /* nothing to do */ }; - void do_IfOp (IfOp* x) { /* nothing to do */ }; - void do_Convert (Convert* x) { /* nothing to do */ }; - void do_NullCheck (NullCheck* x) { /* nothing to do */ }; - void do_NewInstance (NewInstance* x) { /* nothing to do */ }; - void do_NewTypeArray (NewTypeArray* x) { /* nothing to do */ }; - void do_NewObjectArray (NewObjectArray* x) { /* nothing to do */ }; - void do_NewMultiArray (NewMultiArray* x) { /* nothing to do */ }; - void do_CheckCast (CheckCast* x) { /* nothing to do */ }; - void do_InstanceOf (InstanceOf* x) { /* nothing to do */ }; - void do_BlockBegin (BlockBegin* x) { /* nothing to do */ }; - void do_Goto (Goto* x) { /* nothing to do */ }; - void do_If (If* x) { /* nothing to do */ }; - void do_IfInstanceOf (IfInstanceOf* x) { /* nothing to do */ }; - void do_TableSwitch (TableSwitch* x) { /* nothing to do */ }; - void do_LookupSwitch (LookupSwitch* x) { /* nothing to do */ }; - void do_Return (Return* x) { /* nothing to do */ }; - void do_Throw (Throw* x) { /* nothing to do */ }; - void do_Base (Base* x) { /* nothing to do */ }; - void do_OsrEntry (OsrEntry* x) { /* nothing to do */ }; - void do_ExceptionObject(ExceptionObject* x) { /* nothing to do */ }; - void do_RoundFP (RoundFP* x) { /* nothing to do */ }; - void do_UnsafeGetRaw (UnsafeGetRaw* x) { /* nothing to do */ }; - void do_UnsafeGetObject(UnsafeGetObject* x) { /* nothing to do */ }; - void do_UnsafePrefetchRead (UnsafePrefetchRead* x) { /* nothing to do */ }; - void do_UnsafePrefetchWrite(UnsafePrefetchWrite* x) { /* nothing to do */ }; - void do_ProfileCall (ProfileCall* x) { /* nothing to do */ }; - void do_ProfileCounter (ProfileCounter* x) { /* nothing to do */ }; + void do_Phi (Phi* x) { /* nothing to do */ } + void do_Local (Local* x) { /* nothing to do */ } + void do_Constant (Constant* x) { /* nothing to do */ } + void do_LoadField (LoadField* x) { + if (!x->is_initialized()) { + kill_memory(); + } + } + void do_ArrayLength (ArrayLength* x) { /* nothing to do */ } + void do_LoadIndexed (LoadIndexed* x) { /* nothing to do */ } + void do_NegateOp (NegateOp* x) { /* nothing to do */ } + void do_ArithmeticOp (ArithmeticOp* x) { /* nothing to do */ } + void do_ShiftOp (ShiftOp* x) { /* nothing to do */ } + void do_LogicOp (LogicOp* x) { /* nothing to do */ } + void do_CompareOp (CompareOp* x) { /* nothing to do */ } + void do_IfOp (IfOp* x) { /* nothing to do */ } + void do_Convert (Convert* x) { /* nothing to do */ } + void do_NullCheck (NullCheck* x) { /* nothing to do */ } + void do_NewInstance (NewInstance* x) { /* nothing to do */ } + void do_NewTypeArray (NewTypeArray* x) { /* nothing to do */ } + void do_NewObjectArray (NewObjectArray* x) { /* nothing to do */ } + void do_NewMultiArray (NewMultiArray* x) { /* nothing to do */ } + void do_CheckCast (CheckCast* x) { /* nothing to do */ } + void do_InstanceOf (InstanceOf* x) { /* nothing to do */ } + void do_BlockBegin (BlockBegin* x) { /* nothing to do */ } + void do_Goto (Goto* x) { /* nothing to do */ } + void do_If (If* x) { /* nothing to do */ } + void do_IfInstanceOf (IfInstanceOf* x) { /* nothing to do */ } + void do_TableSwitch (TableSwitch* x) { /* nothing to do */ } + void do_LookupSwitch (LookupSwitch* x) { /* nothing to do */ } + void do_Return (Return* x) { /* nothing to do */ } + void do_Throw (Throw* x) { /* nothing to do */ } + void do_Base (Base* x) { /* nothing to do */ } + void do_OsrEntry (OsrEntry* x) { /* nothing to do */ } + void do_ExceptionObject(ExceptionObject* x) { /* nothing to do */ } + void do_RoundFP (RoundFP* x) { /* nothing to do */ } + void do_UnsafeGetRaw (UnsafeGetRaw* x) { /* nothing to do */ } + void do_UnsafeGetObject(UnsafeGetObject* x) { /* nothing to do */ } + void do_UnsafePrefetchRead (UnsafePrefetchRead* x) { /* nothing to do */ } + void do_UnsafePrefetchWrite(UnsafePrefetchWrite* x) { /* nothing to do */ } + void do_ProfileCall (ProfileCall* x) { /* nothing to do */ } + void do_ProfileCounter (ProfileCounter* x) { /* nothing to do */ } +}; + + +class ValueNumberingEffects: public ValueNumberingVisitor { + private: + ValueMap* _map; + + public: + // implementation for abstract methods of ValueNumberingVisitor + void kill_memory() { _map->kill_memory(); } + void kill_field(ciField* field) { _map->kill_field(field); } + void kill_array(ValueType* type) { _map->kill_array(type); } + + ValueNumberingEffects(ValueMap* map): _map(map) {} }; diff --git a/hotspot/test/compiler/6756768/Test6756768.java b/hotspot/test/compiler/6756768/Test6756768.java new file mode 100644 index 00000000000..83215381b17 --- /dev/null +++ b/hotspot/test/compiler/6756768/Test6756768.java @@ -0,0 +1,55 @@ +/* + * Copyright 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. + * + * 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. + */ + +/** + * @test + * @bug 6756768 + * @summary C1 generates invalid code + * + * @run main/othervm -Xcomp Test6756768 + */ + +class Test6756768a +{ + static boolean var_1 = true; +} + +final class Test6756768b +{ + static boolean var_24 = false; + static int var_25 = 0; + + static boolean var_temp1 = Test6756768a.var_1 = false; +} + +public final class Test6756768 extends Test6756768a +{ + final static int var = var_1 ^ (Test6756768b.var_24 ? var_1 : var_1) ? Test6756768b.var_25 : 1; + + static public void main(String[] args) { + if (var != 0) { + throw new InternalError("var = " + var); + } + } + +} diff --git a/hotspot/test/compiler/6756768/Test6756768_2.java b/hotspot/test/compiler/6756768/Test6756768_2.java new file mode 100644 index 00000000000..fbf9c0323ea --- /dev/null +++ b/hotspot/test/compiler/6756768/Test6756768_2.java @@ -0,0 +1,55 @@ +/* + * Copyright 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. + * + * 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. + */ + +/** + * @test + * @bug 6756768 + * @summary C1 generates invalid code + * + * @run main/othervm -Xcomp Test6756768_2 + */ + +class Test6756768_2a { + static int var = ++Test6756768_2.var; +} + +public class Test6756768_2 { + static int var = 1; + + static Object d2 = null; + + static void test_static_field() { + int v = var; + int v2 = Test6756768_2a.var; + int v3 = var; + var = v3; + } + + public static void main(String[] args) { + var = 1; + test_static_field(); + if (var != 2) { + throw new InternalError(); + } + } +} From 21883705f7ee372685a4de7b18de3be72ecbe1e1 Mon Sep 17 00:00:00 2001 From: Jennifer Godinez Date: Tue, 25 Nov 2008 14:38:36 -0800 Subject: [PATCH 036/110] 6653384: Variable "initialized" in class CUPSPrinter is static by mistake Reviewed-by: tdv, prr --- .../classes/sun/print/CUPSPrinter.java | 10 ++-- .../classes/sun/print/IPPPrintService.java | 33 +++++++++---- .../awt/print/PrinterJob/GetMediasTest.java | 46 +++++++++++++++++++ 3 files changed, 76 insertions(+), 13 deletions(-) create mode 100644 jdk/test/java/awt/print/PrinterJob/GetMediasTest.java diff --git a/jdk/src/solaris/classes/sun/print/CUPSPrinter.java b/jdk/src/solaris/classes/sun/print/CUPSPrinter.java index cd7de38b260..a8c0dd0d3ea 100644 --- a/jdk/src/solaris/classes/sun/print/CUPSPrinter.java +++ b/jdk/src/solaris/classes/sun/print/CUPSPrinter.java @@ -46,9 +46,9 @@ import javax.print.attribute.standard.PrinterName; public class CUPSPrinter { - + private static final String debugPrefix = "CUPSPrinter>> "; private static final double PRINTER_DPI = 72.0; - private static boolean initialized; + private boolean initialized; private static native String getCupsServer(); private static native int getCupsPort(); private static native boolean canConnect(String server, int port); @@ -156,7 +156,7 @@ public class CUPSPrinter { /** * Initialize media by translating PPD info to PrintService attributes. */ - private void initMedia() { + private synchronized void initMedia() { if (initialized) { return; } else { @@ -392,9 +392,9 @@ public class CUPSPrinter { * Detects if CUPS is running. */ public static boolean isCupsRunning() { - IPPPrintService.debug_println("libFound "+libFound); + IPPPrintService.debug_println(debugPrefix+"libFound "+libFound); if (libFound) { - IPPPrintService.debug_println("CUPS server "+getServer()+ + IPPPrintService.debug_println(debugPrefix+"CUPS server "+getServer()+ " port "+getPort()); return canConnect(getServer(), getPort()); } else { diff --git a/jdk/src/solaris/classes/sun/print/IPPPrintService.java b/jdk/src/solaris/classes/sun/print/IPPPrintService.java index 8d42f195e77..07b68b18fa8 100644 --- a/jdk/src/solaris/classes/sun/print/IPPPrintService.java +++ b/jdk/src/solaris/classes/sun/print/IPPPrintService.java @@ -62,14 +62,23 @@ import java.util.HashSet; public class IPPPrintService implements PrintService, SunPrinterJobService { - public static boolean debugPrint = false; - private static String debugPrefix = "IPPPrintService>> "; + public static final boolean debugPrint; + private static final String debugPrefix = "IPPPrintService>> "; protected static void debug_println(String str) { if (debugPrint) { System.out.println(str); } } + private static final String FORCE_PIPE_PROP = "sun.print.ippdebug"; + + static { + String debugStr = + (String)java.security.AccessController.doPrivileged( + new sun.security.action.GetPropertyAction(FORCE_PIPE_PROP)); + + debugPrint = "true".equalsIgnoreCase(debugStr); + } private String printer; private URI myURI; @@ -383,7 +392,7 @@ public class IPPPrintService implements PrintService, SunPrinterJobService { if ((urlConnection = getIPPConnection(myURL)) == null) { mediaSizeNames = new MediaSizeName[0]; mediaTrays = new MediaTray[0]; - debug_println("NULL urlConnection "); + debug_println(debugPrefix+"initAttributes, NULL urlConnection "); init = true; return; } @@ -408,7 +417,7 @@ public class IPPPrintService implements PrintService, SunPrinterJobService { return; } catch (Exception e) { IPPPrintService.debug_println(debugPrefix+ - " error creating CUPSPrinter e="+e); + "initAttributes, error creating CUPSPrinter e="+e); } } @@ -912,6 +921,9 @@ public class IPPPrintService implements PrintService, SunPrinterJobService { * Finds matching CustomMediaSizeName of given media. */ public CustomMediaSizeName findCustomMedia(MediaSizeName media) { + if (customMediaSizeNames == null) { + return null; + } for (int i=0; i< customMediaSizeNames.length; i++) { CustomMediaSizeName custom = (CustomMediaSizeName)customMediaSizeNames[i]; @@ -1193,7 +1205,7 @@ public class IPPPrintService implements PrintService, SunPrinterJobService { return true; } for (int i=0; i= GRPTAG_OP_ATTRIBUTES) && (response[0] <= GRPTAG_PRINTER_ATTRIBUTES) && (response[0] != GRPTAG_END_ATTRIBUTES)) { - debug_println(debugPrefix+"checking group tag, response[0]= "+ + debug_println(debugPrefix+"readIPPResponse, checking group tag, response[0]= "+ response[0]); outObj = new ByteArrayOutputStream(); @@ -1773,6 +1786,7 @@ public class IPPPrintService implements PrintService, SunPrinterJobService { outArray); responseMap.put(ac.getName(), ac); + debug_println(debugPrefix+ "readIPPResponse "+ac); } outObj = new ByteArrayOutputStream(); @@ -1845,6 +1859,9 @@ public class IPPPrintService implements PrintService, SunPrinterJobService { } catch (java.io.IOException e) { debug_println(debugPrefix+"readIPPResponse: "+e); + if (debugPrint) { + e.printStackTrace(); + } return null; } } diff --git a/jdk/test/java/awt/print/PrinterJob/GetMediasTest.java b/jdk/test/java/awt/print/PrinterJob/GetMediasTest.java new file mode 100644 index 00000000000..530d877972c --- /dev/null +++ b/jdk/test/java/awt/print/PrinterJob/GetMediasTest.java @@ -0,0 +1,46 @@ +/* + * Copyright 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. + * + * 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. + */ + +/** + * @test + * @bug 6653384 + * @summary No exception should be thrown. + * @run main GetMediasTest + */ +import javax.print.PrintService; +import javax.print.PrintServiceLookup; +import javax.print.attribute.standard.Media; + +public class GetMediasTest { + public static void main(String[] args) { + PrintService[] services = PrintServiceLookup.lookupPrintServices(null, null); + for(final PrintService service: services) { + Thread thread = new Thread() { + public void run() { + service.getSupportedAttributeValues(Media.class, null, null); + } + }; + thread.start(); + } + } +} From c0500f7d7452b902f98ae73aff1b63bc534538e8 Mon Sep 17 00:00:00 2001 From: Chris Hegarty Date: Wed, 26 Nov 2008 15:37:14 +0000 Subject: [PATCH 037/110] 6720866: Slow performance using HttpURLConnection for upload Reviewed-by: michaelm --- .../sun/net/www/http/ChunkedOutputStream.java | 289 ++++++++++-------- 1 file changed, 166 insertions(+), 123 deletions(-) diff --git a/jdk/src/share/classes/sun/net/www/http/ChunkedOutputStream.java b/jdk/src/share/classes/sun/net/www/http/ChunkedOutputStream.java index ed8d7b3f5ae..ac97667b912 100644 --- a/jdk/src/share/classes/sun/net/www/http/ChunkedOutputStream.java +++ b/jdk/src/share/classes/sun/net/www/http/ChunkedOutputStream.java @@ -29,32 +29,58 @@ import java.io.*; /** * OutputStream that sends the output to the underlying stream using chunked * encoding as specified in RFC 2068. - * - * @author Alan Bateman */ public class ChunkedOutputStream extends PrintStream { /* Default chunk size (including chunk header) if not specified */ static final int DEFAULT_CHUNK_SIZE = 4096; + private static final byte[] CRLF = {'\r', '\n'}; + private static final int CRLF_SIZE = CRLF.length; + private static final byte[] FOOTER = CRLF; + private static final int FOOTER_SIZE = CRLF_SIZE; + private static final byte[] EMPTY_CHUNK_HEADER = getHeader(0); + private static final int EMPTY_CHUNK_HEADER_SIZE = getHeaderSize(0); /* internal buffer */ private byte buf[]; + /* size of data (excluding footers and headers) already stored in buf */ + private int size; + /* current index in buf (i.e. buf[count] */ private int count; + /* number of bytes to be filled up to complete a data chunk + * currently being built */ + private int spaceInCurrentChunk; /* underlying stream */ private PrintStream out; /* the chunk size we use */ - private int preferredChunkSize; - - /* if the users write buffer is bigger than this size, we - * write direct from the users buffer instead of copying - */ - static final int MAX_BUF_SIZE = 10 * 1024; + private int preferredChunkDataSize; + private int preferedHeaderSize; + private int preferredChunkGrossSize; + /* header for a complete Chunk */ + private byte[] completeHeader; /* return the size of the header for a particular chunk size */ - private int headerSize(int size) { - return 2 + (Integer.toHexString(size)).length(); + private static int getHeaderSize(int size) { + return (Integer.toHexString(size)).length() + CRLF_SIZE; + } + + /* return a header for a particular chunk size */ + private static byte[] getHeader(int size){ + try { + String hexStr = Integer.toHexString(size); + byte[] hexBytes = hexStr.getBytes("US-ASCII"); + byte[] header = new byte[getHeaderSize(size)]; + for (int i=0; i 0) { - int adjusted_size = size - headerSize(size); - if (adjusted_size + headerSize(adjusted_size) < size) { + int adjusted_size = size - getHeaderSize(size) - FOOTER_SIZE; + if (getHeaderSize(adjusted_size+1) < getHeaderSize(size)){ adjusted_size++; } size = adjusted_size; } if (size > 0) { - preferredChunkSize = size; + preferredChunkDataSize = size; } else { - preferredChunkSize = DEFAULT_CHUNK_SIZE - headerSize(DEFAULT_CHUNK_SIZE); + preferredChunkDataSize = DEFAULT_CHUNK_SIZE - + getHeaderSize(DEFAULT_CHUNK_SIZE) - FOOTER_SIZE; } + preferedHeaderSize = getHeaderSize(preferredChunkDataSize); + preferredChunkGrossSize = preferedHeaderSize + preferredChunkDataSize + + FOOTER_SIZE; + completeHeader = getHeader(preferredChunkDataSize); + /* start with an initial buffer */ - buf = new byte[preferredChunkSize + 32]; + buf = new byte[preferredChunkDataSize + 32]; + reset(); } /* - * If flushAll is true, then all data is flushed in one chunk. - * - * If false and the size of the buffer data exceeds the preferred - * chunk size then chunks are flushed to the output stream. - * If there isn't enough data to make up a complete chunk, - * then the method returns. + * Flush a buffered, completed chunk to an underlying stream. If the data in + * the buffer is insufficient to build up a chunk of "preferredChunkSize" + * then the data do not get flushed unless flushAll is true. If flushAll is + * true then the remaining data builds up a last chunk which size is smaller + * than preferredChunkSize, and then the last chunk gets flushed to + * underlying stream. If flushAll is true and there is no data in a buffer + * at all then an empty chunk (containing a header only) gets flushed to + * underlying stream. */ - private void flush(byte[] buf, boolean flushAll) { - flush (buf, flushAll, 0); - } - - private void flush(byte[] buf, boolean flushAll, int offset) { - int chunkSize; - - do { - if (count < preferredChunkSize) { - if (!flushAll) { - break; - } - chunkSize = count; - } else { - chunkSize = preferredChunkSize; - } - - byte[] bytes = null; - try { - bytes = (Integer.toHexString(chunkSize)).getBytes("US-ASCII"); - } catch (java.io.UnsupportedEncodingException e) { - //This should never happen. - throw new InternalError(e.getMessage()); - } - - out.write(bytes, 0, bytes.length); - out.write((byte)'\r'); - out.write((byte)'\n'); - if (chunkSize > 0) { - out.write(buf, offset, chunkSize); - out.write((byte)'\r'); - out.write((byte)'\n'); - } + private void flush(boolean flushAll) { + if (spaceInCurrentChunk == 0) { + /* flush a completed chunk to underlying stream */ + out.write(buf, 0, preferredChunkGrossSize); out.flush(); - if (checkError()) { - break; - } - if (chunkSize > 0) { - count -= chunkSize; - offset += chunkSize; - } - } while (count > 0); + reset(); + } else if (flushAll){ + /* complete the last chunk and flush it to underlying stream */ + if (size > 0){ + /* adjust a header start index in case the header of the last + * chunk is shorter then preferedHeaderSize */ - if (!checkError() && count > 0) { - System.arraycopy(buf, offset, this.buf, 0, count); - } + int adjustedHeaderStartIndex = preferedHeaderSize - + getHeaderSize(size); + + /* write header */ + System.arraycopy(getHeader(size), 0, buf, + adjustedHeaderStartIndex, getHeaderSize(size)); + + /* write footer */ + buf[count++] = FOOTER[0]; + buf[count++] = FOOTER[1]; + + //send the last chunk to underlying stream + out.write(buf, adjustedHeaderStartIndex, count - adjustedHeaderStartIndex); + } else { + //send an empty chunk (containing just a header) to underlying stream + out.write(EMPTY_CHUNK_HEADER, 0, EMPTY_CHUNK_HEADER_SIZE); + } + + out.flush(); + reset(); + } } + @Override public boolean checkError() { return out.checkError(); } - /* - * Check if we have enough data for a chunk and if so flush to the - * underlying output stream. - */ - private void checkFlush() { - if (count >= preferredChunkSize) { - flush(buf, false); - } - } - /* Check that the output stream is still open */ private void ensureOpen() { if (out == null) setError(); } + /* + * Writes data from b[] to an internal buffer and stores the data as data + * chunks of a following format: {Data length in Hex}{CRLF}{data}{CRLF} + * The size of the data is preferredChunkSize. As soon as a completed chunk + * is read from b[] a process of reading from b[] suspends, the chunk gets + * flushed to the underlying stream and then the reading process from b[] + * continues. When there is no more sufficient data in b[] to build up a + * chunk of preferredChunkSize size the data get stored as an incomplete + * chunk of a following format: {space for data length}{CRLF}{data} + * The size of the data is of course smaller than preferredChunkSize. + */ + @Override public synchronized void write(byte b[], int off, int len) { ensureOpen(); if ((off < 0) || (off > b.length) || (len < 0) || @@ -177,81 +206,95 @@ public class ChunkedOutputStream extends PrintStream { return; } - int l = preferredChunkSize - count; + /* if b[] contains enough data then one loop cycle creates one complete + * data chunk with a header, body and a footer, and then flushes the + * chunk to the underlying stream. Otherwise, the last loop cycle + * creates incomplete data chunk with empty header and with no footer + * and stores this incomplete chunk in an internal buffer buf[] + */ + int bytesToWrite = len; + int inputIndex = off; /* the index of the byte[] currently being written */ - if ((len > MAX_BUF_SIZE) && (len > l)) { - /* current chunk is empty just write the data */ - if (count == 0) { - count = len; - flush (b, false, off); - return; + do { + /* enough data to complete a chunk */ + if (bytesToWrite >= spaceInCurrentChunk) { + + /* header */ + for (int i=0; i 0) { - System.arraycopy(b, off, buf, count, l); - count = preferredChunkSize; - flush(buf, false); - } + /* not enough data to build a chunk */ + else { + /* header */ + /* do not write header if not enough bytes to build a chunk yet */ - count = len - l; - /* Now write the rest of the data */ - flush (b, false, l+off); - } else { - int newcount = count + len; + /* data */ + System.arraycopy(b, inputIndex, buf, count, bytesToWrite); + count += bytesToWrite; + size += bytesToWrite; + spaceInCurrentChunk -= bytesToWrite; + bytesToWrite = 0; - if (newcount > buf.length) { - byte newbuf[] = new byte[Math.max(buf.length << 1, newcount)]; - System.arraycopy(buf, 0, newbuf, 0, count); - buf = newbuf; + /* footer */ + /* do not write header if not enough bytes to build a chunk yet */ } - System.arraycopy(b, off, buf, count, len); - count = newcount; - checkFlush(); - } + } while (bytesToWrite > 0); } - public synchronized void write(int b) { - ensureOpen(); - int newcount = count + 1; - if (newcount > buf.length) { - byte newbuf[] = new byte[Math.max(buf.length << 1, newcount)]; - System.arraycopy(buf, 0, newbuf, 0, count); - buf = newbuf; - } - buf[count] = (byte)b; - count = newcount; - checkFlush(); + @Override + public synchronized void write(int _b) { + byte b[] = {(byte)_b}; + write(b, 0, 1); } public synchronized void reset() { - count = 0; + count = preferedHeaderSize; + size = 0; + spaceInCurrentChunk = preferredChunkDataSize; } public int size() { - return count; + return size; } + @Override public synchronized void close() { ensureOpen(); /* if we have buffer a chunked send it */ - if (count > 0) { - flush(buf, true); + if (size > 0) { + flush(true); } /* send a zero length chunk */ - flush(buf, true); + flush(true); /* don't close the underlying stream */ out = null; } + @Override public synchronized void flush() { ensureOpen(); - if (count > 0) { - flush(buf, true); + if (size > 0) { + flush(true); } } - } From 70624128b46196c9ed8a04981cae5c9ad9b033b3 Mon Sep 17 00:00:00 2001 From: Eamonn McManus Date: Thu, 27 Nov 2008 15:44:32 +0100 Subject: [PATCH 038/110] 6776225: JMX.isNotificationSource wrong when DynamicWrapperMBean + SendNotification injection Reviewed-by: dfuchs, jfdenise --- .../jmx/mbeanserver/MBeanIntrospector.java | 4 +- .../share/classes/javax/management/JMX.java | 17 +- .../management/StandardEmitterMBean.java | 31 ++- .../javax/management/StandardMBean.java | 6 +- .../MBeanServer/DynamicWrapperMBeanTest.java | 261 +++++++++++++++++- 5 files changed, 289 insertions(+), 30 deletions(-) diff --git a/jdk/src/share/classes/com/sun/jmx/mbeanserver/MBeanIntrospector.java b/jdk/src/share/classes/com/sun/jmx/mbeanserver/MBeanIntrospector.java index 781320d9b80..3f2a9cc91a0 100644 --- a/jdk/src/share/classes/com/sun/jmx/mbeanserver/MBeanIntrospector.java +++ b/jdk/src/share/classes/com/sun/jmx/mbeanserver/MBeanIntrospector.java @@ -80,7 +80,7 @@ import javax.management.ReflectionException; * ancestor with ConvertingMethod. But that would mean an extra object * for every Method in every Standard MBean interface. */ -abstract class MBeanIntrospector { +public abstract class MBeanIntrospector { static final class PerInterfaceMap extends WeakHashMap, WeakReference>> {} @@ -557,7 +557,7 @@ abstract class MBeanIntrospector { return findNotificationsFromAnnotations(moi.getClass()); } - private static MBeanNotificationInfo[] findNotificationsFromAnnotations( + public static MBeanNotificationInfo[] findNotificationsFromAnnotations( Class mbeanClass) { Class c = getAnnotatedNotificationInfoClass(mbeanClass); if (c == null) diff --git a/jdk/src/share/classes/javax/management/JMX.java b/jdk/src/share/classes/javax/management/JMX.java index 60b9605b315..d9329e0c3d4 100644 --- a/jdk/src/share/classes/javax/management/JMX.java +++ b/jdk/src/share/classes/javax/management/JMX.java @@ -51,8 +51,6 @@ public class JMX { * this class. */ static final JMX proof = new JMX(); - private static final ClassLogger logger = - new ClassLogger("javax.management.misc", "JMX"); private JMX() {} @@ -824,11 +822,16 @@ public class JMX { */ public static boolean isNotificationSource(Object mbean) throws NotCompliantMBeanException { - if (mbean instanceof NotificationBroadcaster) - return true; - Object resource = (mbean instanceof DynamicWrapperMBean) ? - ((DynamicWrapperMBean) mbean).getWrappedObject() : mbean; - return (MBeanInjector.injectsSendNotification(resource)); + for (int i = 0; i < 2; i++) { + if (mbean instanceof NotificationBroadcaster || + MBeanInjector.injectsSendNotification(mbean)) + return true; + if (mbean instanceof DynamicWrapperMBean) + mbean = ((DynamicWrapperMBean) mbean).getWrappedObject(); + else + break; + } + return false; } /** diff --git a/jdk/src/share/classes/javax/management/StandardEmitterMBean.java b/jdk/src/share/classes/javax/management/StandardEmitterMBean.java index da5f991f427..abce5b202eb 100644 --- a/jdk/src/share/classes/javax/management/StandardEmitterMBean.java +++ b/jdk/src/share/classes/javax/management/StandardEmitterMBean.java @@ -26,6 +26,7 @@ package javax.management; import com.sun.jmx.mbeanserver.MBeanInjector; +import com.sun.jmx.mbeanserver.MBeanIntrospector; import static javax.management.JMX.MBeanOptions; /** @@ -195,10 +196,12 @@ public class StandardEmitterMBean extends StandardMBean MBeanOptions options, NotificationEmitter emitter) { super(implementation, mbeanInterface, options); + MBeanNotificationInfo[] defaultMBNIs = defaultMBNIs(implementation); if (emitter == null) - emitter = defaultEmitter(); + emitter = defaultEmitter(defaultMBNIs); this.emitter = emitter; - this.notificationInfo = emitter.getNotificationInfo(); + this.notificationInfo = + firstNonEmpty(emitter.getNotificationInfo(), defaultMBNIs); injectEmitter(); } @@ -320,15 +323,23 @@ public class StandardEmitterMBean extends StandardMBean protected StandardEmitterMBean(Class mbeanInterface, MBeanOptions options, NotificationEmitter emitter) { super(mbeanInterface, options); + MBeanNotificationInfo[] defaultMBNIs = defaultMBNIs(this); if (emitter == null) - emitter = defaultEmitter(); + emitter = defaultEmitter(defaultMBNIs); this.emitter = emitter; - this.notificationInfo = emitter.getNotificationInfo(); + this.notificationInfo = + firstNonEmpty(emitter.getNotificationInfo(), defaultMBNIs); injectEmitter(); } - private NotificationEmitter defaultEmitter() { - MBeanNotificationInfo[] mbnis = getNotificationInfo(); + private static MBeanNotificationInfo[] defaultMBNIs(Object mbean) { + return MBeanIntrospector.findNotificationsFromAnnotations( + mbean.getClass()); + } + + private NotificationEmitter defaultEmitter(MBeanNotificationInfo[] defaultMBNIs) { + MBeanNotificationInfo[] mbnis = + firstNonEmpty(getNotificationInfo(), defaultMBNIs); // Will be null unless getNotificationInfo() is overridden, // since the notificationInfo field has not been set at this point. if (mbnis == null) @@ -336,6 +347,14 @@ public class StandardEmitterMBean extends StandardMBean return new NotificationBroadcasterSupport(mbnis); } + private static T[] firstNonEmpty(T[]... items) { + for (T[] t : items) { + if (t != null && t.length != 0) + return t; + } + return null; + } + private void injectEmitter() { if (emitter instanceof SendNotification) { try { diff --git a/jdk/src/share/classes/javax/management/StandardMBean.java b/jdk/src/share/classes/javax/management/StandardMBean.java index 492b259d189..45badeac6c7 100644 --- a/jdk/src/share/classes/javax/management/StandardMBean.java +++ b/jdk/src/share/classes/javax/management/StandardMBean.java @@ -1058,10 +1058,6 @@ public class StandardMBean implements DynamicWrapperMBean, MBeanRegistration { cachedMBeanInfo = info; } - private boolean isMXBean() { - return mbean.isMXBean(); - } - private static boolean identicalArrays(T[] a, T[] b) { if (a == b) return true; @@ -1466,7 +1462,7 @@ public class StandardMBean implements DynamicWrapperMBean, MBeanRegistration { // Check for "MBeanNotificationInfo[] getNotificationInfo()" // method. // - // This method is only taken into account for the MBeanInfo + // This method is taken into account for the MBeanInfo // immutability checks if and only if the given subclass is // StandardEmitterMBean itself or can be assigned to // StandardEmitterMBean. diff --git a/jdk/test/javax/management/MBeanServer/DynamicWrapperMBeanTest.java b/jdk/test/javax/management/MBeanServer/DynamicWrapperMBeanTest.java index 793419abf65..fc52711c7fe 100644 --- a/jdk/test/javax/management/MBeanServer/DynamicWrapperMBeanTest.java +++ b/jdk/test/javax/management/MBeanServer/DynamicWrapperMBeanTest.java @@ -23,14 +23,27 @@ /* * @test DynamicWrapperMBeanTest - * @bug 6624232 + * @bug 6624232 6776225 * @summary Test the DynamicWrapperMBean interface * @author Eamonn McManus */ import java.lang.management.ManagementFactory; +import javax.annotation.Resource; +import javax.management.JMX; +import javax.management.ListenerNotFoundException; +import javax.management.MBeanNotificationInfo; import javax.management.MBeanServer; +import javax.management.Notification; +import javax.management.NotificationBroadcaster; +import javax.management.NotificationBroadcasterSupport; +import javax.management.NotificationEmitter; +import javax.management.NotificationFilter; +import javax.management.NotificationInfo; +import javax.management.NotificationListener; import javax.management.ObjectName; +import javax.management.SendNotification; +import javax.management.StandardEmitterMBean; import javax.management.StandardMBean; import javax.management.modelmbean.ModelMBeanInfo; import javax.management.modelmbean.ModelMBeanInfoSupport; @@ -39,6 +52,25 @@ import javax.management.modelmbean.RequiredModelMBean; import static javax.management.StandardMBean.Options; public class DynamicWrapperMBeanTest { + private static String failure; + + public static void main(String[] args) throws Exception { + wrapTest(); + notifTest(); + + if (failure == null) + System.out.println("TEST PASSED"); + else + throw new Exception("TEST FAILED: " + failure); + } + + private static final Options wrappedVisOpts = new Options(); + private static final Options wrappedInvisOpts = new Options(); + static { + wrappedVisOpts.setWrappedObjectVisible(true); + wrappedInvisOpts.setWrappedObjectVisible(false); + } + public static interface WrappedMBean { public void sayHello(); } @@ -48,19 +80,13 @@ public class DynamicWrapperMBeanTest { } } - private static String failure; - - public static void main(String[] args) throws Exception { + private static void wrapTest() throws Exception { if (Wrapped.class.getClassLoader() == StandardMBean.class.getClassLoader()) { throw new Exception( "TEST ERROR: Resource and StandardMBean have same ClassLoader"); } - Options wrappedVisOpts = new Options(); - wrappedVisOpts.setWrappedObjectVisible(true); - Options wrappedInvisOpts = new Options(); - wrappedInvisOpts.setWrappedObjectVisible(false); assertEquals("Options withWrappedObjectVisible(false)", new Options(), wrappedInvisOpts); @@ -138,8 +164,223 @@ public class DynamicWrapperMBeanTest { assertEquals("isInstanceOf(RequiredModelMBean) for invisible resource", true, mbs.isInstanceOf(invisibleName, RequiredModelMBean.class.getName())); - if (failure != null) - throw new Exception("TEST FAILED: " + failure); + mbs.unregisterMBean(visibleName); + mbs.unregisterMBean(invisibleName); + } + + private static enum WrapType { + NBS("NotificationBroadcasterSupport"), + INJ("@Resource SendNotification"), + STD_MBEAN_NBS("StandardMBean delegating to NotificationBroadcasterSupport"), + STD_MBEAN_INJ("StandardMBean delegating to @Resource SendNotification"), + STD_MBEAN_SUB_NBS("StandardMBean subclass implementing NotificationBroadcaster"), + STD_MBEAN_SUB_INJ("StandardMBean subclass with @Resource SendNotification"), + STD_EMIT_MBEAN_NBS("StandardEmitterMBean delegating to NotificationBroadcasterSupport"), + STD_EMIT_MBEAN_INJ("StandardEmitterMBean delegating to @Resource SendNotification"), + STD_EMIT_MBEAN_SUB("StandardEmitterMBean subclass"), + STD_EMIT_MBEAN_SUB_INJ("StandardEmitterMBean subclass with @Resource SendNotification"); + + WrapType(String s) { + this.s = s; + } + + @Override + public String toString() { + return s; + } + + private final String s; + } + + @NotificationInfo( + types = {"foo", "bar"} + ) + public static interface BroadcasterMBean { + public void send(Notification n); + } + + public static class Broadcaster + extends NotificationBroadcasterSupport implements BroadcasterMBean { + public void send(Notification n) { + super.sendNotification(n); + } + } + + public static interface SendNotifMBean extends BroadcasterMBean { + } + + public static class SendNotif implements SendNotifMBean { + @Resource + private volatile SendNotification sendNotif; + + public void send(Notification n) { + sendNotif.sendNotification(n); + } + } + + public static class StdBroadcaster + extends StandardMBean + implements BroadcasterMBean, NotificationBroadcaster { + private final NotificationBroadcasterSupport nbs = + new NotificationBroadcasterSupport(); + + public StdBroadcaster() throws Exception { + super(BroadcasterMBean.class); + } + + public void send(Notification n) { + nbs.sendNotification(n); + } + + public void addNotificationListener(NotificationListener listener, + NotificationFilter filter, Object handback) { + nbs.addNotificationListener(listener, filter, handback); + } + + public MBeanNotificationInfo[] getNotificationInfo() { + return null; + } + + public void removeNotificationListener(NotificationListener listener) + throws ListenerNotFoundException { + nbs.removeNotificationListener(listener); + } + } + + public static class StdSendNotif + extends StandardMBean implements SendNotifMBean { + @Resource + private volatile SendNotification sendNotif; + + public StdSendNotif() throws Exception { + super(SendNotifMBean.class); + } + + public void send(Notification n) { + sendNotif.sendNotification(n); + } + } + + public static class StdEmitterBroadcaster // :-) + extends StandardEmitterMBean + implements BroadcasterMBean { + + public StdEmitterBroadcaster() throws Exception { + super(BroadcasterMBean.class, null); + } + + public void send(Notification n) { + super.sendNotification(n); + } + } + + // This case is unlikely - if you're using @Resource SendNotification + // then there's no point in using StandardEmitterMBean, since + // StandardMBean would suffice. + public static class StdEmitterSendNotif + extends StandardEmitterMBean implements SendNotifMBean { + @Resource + private volatile SendNotification sendNotif; + + public StdEmitterSendNotif() { + super(SendNotifMBean.class, null); + } + + public void send(Notification n) { + sendNotif.sendNotification(n); + } + } + + // Test that JMX.isNotificationSource and + // mbs.isInstanceOf("NotificationBroadcaster") work correctly even when + // the MBean is a broadcaster by virtue of its wrapped resource. + // Test that we find the MBeanNotificationInfo[] from the @NotificationInfo + // annotation on BroadcasterMBean. We cover a large number of different + // MBean types, but all ultimately implement that interface. + private static void notifTest() throws Exception { + System.out.println("===Testing notification senders==="); + + for (WrapType wrapType : WrapType.values()) { + System.out.println("---" + wrapType); + + final Object mbean; + + switch (wrapType) { + case NBS: + // An MBean that extends NotificationBroadcasterSupport + mbean = new Broadcaster(); + break; + case INJ: + // An MBean that injects SendNotification + mbean = new SendNotif(); + break; + case STD_MBEAN_NBS: + // A StandardMBean that delegates to a NotificationBroadcasterSupport + mbean = new StandardMBean( + new Broadcaster(), BroadcasterMBean.class, wrappedVisOpts); + break; + case STD_MBEAN_INJ: + // A StandardMBean that delegates to an object that injects + // SendNotification + mbean = new StandardMBean( + new SendNotif(), BroadcasterMBean.class, wrappedVisOpts); + break; + case STD_EMIT_MBEAN_NBS: { + // A StandardEmitterMBean that delegates to a NotificationBroadcasterSupport + Broadcaster broadcaster = new Broadcaster(); + mbean = new StandardEmitterMBean( + broadcaster, BroadcasterMBean.class, wrappedVisOpts, + broadcaster); + break; + } + case STD_EMIT_MBEAN_INJ: { + // A StandardEmitterMBean that delegates to an object that injects + // SendNotification + SendNotif sendNotif = new SendNotif(); + mbean = new StandardEmitterMBean( + sendNotif, BroadcasterMBean.class, wrappedVisOpts, + null); + break; + } + case STD_MBEAN_SUB_NBS: + // A subclass of StandardMBean that implements NotificationBroadcaster + mbean = new StdBroadcaster(); + break; + case STD_MBEAN_SUB_INJ: + // A subclass of StandardMBean that injects SendNotification + mbean = new StdSendNotif(); + break; + case STD_EMIT_MBEAN_SUB: + // A subclass of StandardEmitterMBean + mbean = new StdEmitterBroadcaster(); + break; + case STD_EMIT_MBEAN_SUB_INJ: + // A subclass of StandardEmitterMBean that injects SendNotification + // (which is a rather strange thing to do and probably a user + // misunderstanding but we should do the right thing anyway). + mbean = new StdEmitterSendNotif(); + break; + default: + throw new AssertionError(); + } + + MBeanServer mbs = ManagementFactory.getPlatformMBeanServer(); + + final ObjectName name = new ObjectName("a:type=Sender"); + mbs.registerMBean(mbean, name); + boolean isBroadcaster = mbs.isInstanceOf( + name, NotificationBroadcaster.class.getName()); + assertEquals("JMX.isNotificationSource(mbean)", + true, JMX.isNotificationSource(mbean)); + assertEquals("isInstanceOf(NotificationBroadcaster)", + true, isBroadcaster); + MBeanNotificationInfo[] mbnis = + mbs.getMBeanInfo(name).getNotifications(); + assertEquals("MBeanNotificationInfo not empty", + true, (mbnis.length > 0)); + + mbs.unregisterMBean(name); + } } private static void assertEquals(String what, Object expect, Object actual) { From 569029da790c1245a2fa4e4f4a7e1853312741b3 Mon Sep 17 00:00:00 2001 From: Poonam Bajaj Date: Thu, 27 Nov 2008 18:19:23 -0800 Subject: [PATCH 039/110] 6743339: Enable building sa-jdi.jar and sawindbg.dll on Windows with hotspot build These changes enable the SA binaries build with hotspot build on Windows Reviewed-by: swamyv --- hotspot/make/windows/build.make | 23 ----------------------- hotspot/make/windows/makefiles/defs.make | 2 +- hotspot/make/windows/makefiles/sa.make | 19 +++++++++++-------- 3 files changed, 12 insertions(+), 32 deletions(-) diff --git a/hotspot/make/windows/build.make b/hotspot/make/windows/build.make index 66ad19289e2..1e8a857f418 100644 --- a/hotspot/make/windows/build.make +++ b/hotspot/make/windows/build.make @@ -200,29 +200,6 @@ BUILD_WIN_SA = 0 checkSA:: @echo Not building SA: ARCH = ia64 -!elseif exist("$(MSVCDIR)\PlatformSDK\Include\dbgeng.h") -# These don't have to be set because the default -# setting of INCLUDE and LIB already contain the needed dirs. -SA_INCLUDE = -SA_LIB = - -!elseif exist("$(SYSTEMROOT)\..\Program Files\Microsoft SDK\include\dbgeng.h") -# These don't have to be set because the default -# setting of INCLUDE and LIB already contain the needed dirs. -SA_INCLUDE = -SA_LIB = - -!else -checkSA:: - @echo . - @echo ERROR: Can't build SA because dbgeng.h does not exist here: - @echo $(MSVCDIR)\PlatformSDK\Include\dbgeng.h - @echo nor here: - @echo $(SYSTEMROOT)\..\Program Files\Microsoft SDK\include\dbgeng.h - @echo You must use Vis. Studio .Net 2003 on Win 32, and you must - @echo have the Microsoft SDK installed on Win amd64. - @echo You can disable building of SA by specifying BUILD_WIN_SA = 0 - @echo . && false !endif # ! "$(BUILD_WIN_SA)" != "1" ######################################################################### diff --git a/hotspot/make/windows/makefiles/defs.make b/hotspot/make/windows/makefiles/defs.make index c264f9fd103..ee6de0c9e03 100644 --- a/hotspot/make/windows/makefiles/defs.make +++ b/hotspot/make/windows/makefiles/defs.make @@ -119,7 +119,7 @@ endif # we want to release it. If we build it here, # the SDK makefiles will copy it over and put it into # the created image. -BUILD_WIN_SA = 0 +BUILD_WIN_SA = 1 ifneq ($(ALT_BUILD_WIN_SA),) BUILD_WIN_SA = $(ALT_BUILD_WIN_SA) endif diff --git a/hotspot/make/windows/makefiles/sa.make b/hotspot/make/windows/makefiles/sa.make index 01886c13804..c1956057188 100644 --- a/hotspot/make/windows/makefiles/sa.make +++ b/hotspot/make/windows/makefiles/sa.make @@ -49,6 +49,9 @@ SA_PROPERTIES = $(SA_CLASSDIR)\sa.properties default:: $(GENERATED)\sa-jdi.jar +# Remove the space between $(SA_BUILD_VERSION_PROP) and > below as it adds a white space +# at the end of SA version string and causes a version mismatch with the target VM version. + $(GENERATED)\sa-jdi.jar: $(AGENT_FILES1:/=\) $(AGENT_FILES2:/=\) @if not exist $(SA_CLASSDIR) mkdir $(SA_CLASSDIR) @echo ...Building sa-jdi.jar @@ -56,15 +59,15 @@ $(GENERATED)\sa-jdi.jar: $(AGENT_FILES1:/=\) $(AGENT_FILES2:/=\) @$(COMPILE_JAVAC) -source 1.4 -classpath $(SA_CLASSPATH) -sourcepath $(AGENT_SRC_DIR) -g -d $(SA_CLASSDIR) $(AGENT_FILES1:/=\) @$(COMPILE_JAVAC) -source 1.4 -classpath $(SA_CLASSPATH) -sourcepath $(AGENT_SRC_DIR) -g -d $(SA_CLASSDIR) $(AGENT_FILES2:/=\) $(COMPILE_RMIC) -classpath $(SA_CLASSDIR) -d $(SA_CLASSDIR) sun.jvm.hotspot.debugger.remote.RemoteDebuggerServer - $(QUIETLY) echo $(SA_BUILD_VERSION_PROP) > $(SA_PROPERTIES) - $(RUN_JAR) cf $@ -C saclasses . - $(RUN_JAR) uf $@ -C $(AGENT_SRC_DIR:/=\) META-INF\services\com.sun.jdi.connect.Connector + $(QUIETLY) echo $(SA_BUILD_VERSION_PROP)> $(SA_PROPERTIES) $(QUIETLY) rm -f $(SA_CLASSDIR)/sun/jvm/hotspot/utilities/soql/sa.js $(QUIETLY) cp $(AGENT_SRC_DIR)/sun/jvm/hotspot/utilities/soql/sa.js $(SA_CLASSDIR)/sun/jvm/hotspot/utilities/soql - $(QUIETLY) mkdir -p $(SA_CLASSDIR)/sun/jvm/hotspot/ui/resources - $(QUIETLY) rm -f $(SA_CLASSDIR)/sun/jvm/hotspot/ui/resources/* - $(QUIETLY) cp $(AGENT_SRC_DIR)/sun/jvm/hotspot/ui/resources/*.png $(SA_CLASSDIR)/sun/jvm/hotspot/ui/resources/ - $(QUIETLY) cp -r $(AGENT_SRC_DIR)/images/* $(SA_CLASSDIR)/ + $(QUIETLY) rm -rf $(SA_CLASSDIR)/sun/jvm/hotspot/ui/resources + $(QUIETLY) mkdir $(SA_CLASSDIR)\sun\jvm\hotspot\ui\resources + $(QUIETLY) cp $(AGENT_SRC_DIR)/sun/jvm/hotspot/ui/resources/*.png $(SA_CLASSDIR)/sun/jvm/hotspot/ui/resources + $(QUIETLY) cp -r $(AGENT_SRC_DIR)/images/* $(SA_CLASSDIR) + $(RUN_JAR) cf $@ -C saclasses . + $(RUN_JAR) uf $@ -C $(AGENT_SRC_DIR:/=\) META-INF\services\com.sun.jdi.connect.Connector $(RUN_JAVAH) -classpath $(SA_CLASSDIR) -jni sun.jvm.hotspot.debugger.windbg.WindbgDebuggerLocal $(RUN_JAVAH) -classpath $(SA_CLASSDIR) -jni sun.jvm.hotspot.debugger.x86.X86ThreadContext $(RUN_JAVAH) -classpath $(SA_CLASSDIR) -jni sun.jvm.hotspot.debugger.ia64.IA64ThreadContext @@ -93,7 +96,7 @@ SA_LINK_FLAGS = bufferoverflowU.lib SA_CFLAGS = /nologo $(MS_RUNTIME_OPTION) /W3 /Gm $(GX_OPTION) /ZI /Od /D "WIN32" /D "_WINDOWS" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c !endif !if "$(MT)" != "" - SA_LINK_FLAGS = /manifest $(SA_LINK_FLAGS) +SA_LINK_FLAGS = /manifest $(SA_LINK_FLAGS) !endif SASRCFILE = $(AGENT_DIR)/src/os/win32/windbg/sawindbg.cpp SA_LFLAGS = $(SA_LINK_FLAGS) /nologo /subsystem:console /map /debug /machine:$(MACHINE) From b596dd66fa85b63eba932555175fd5b7c04c05ec Mon Sep 17 00:00:00 2001 From: Xueming Shen Date: Sat, 29 Nov 2008 20:55:29 -0800 Subject: [PATCH 040/110] 6725399: (ch) Channels.newInputStream should check for null Update to check null arg for all Channels methods Reviewed-by: alanb --- .../classes/java/nio/channels/Channels.java | 25 +++-- .../java/nio/channels/Channels/Basic.java | 105 ++++++++++++++++-- 2 files changed, 110 insertions(+), 20 deletions(-) diff --git a/jdk/src/share/classes/java/nio/channels/Channels.java b/jdk/src/share/classes/java/nio/channels/Channels.java index b259bd99150..cab96048629 100644 --- a/jdk/src/share/classes/java/nio/channels/Channels.java +++ b/jdk/src/share/classes/java/nio/channels/Channels.java @@ -65,6 +65,10 @@ public final class Channels { private Channels() { } // No instantiation + private static void checkNotNull(Object o, String name) { + if (o == null) + throw new NullPointerException("\"" + name + "\" is null!"); + } /** * Write all remaining bytes in buffer to the given channel. @@ -120,6 +124,7 @@ public final class Channels { * @return A new input stream */ public static InputStream newInputStream(ReadableByteChannel ch) { + checkNotNull(ch, "ch"); return new sun.nio.ch.ChannelInputStream(ch); } @@ -138,6 +143,8 @@ public final class Channels { * @return A new output stream */ public static OutputStream newOutputStream(final WritableByteChannel ch) { + checkNotNull(ch, "ch"); + return new OutputStream() { private ByteBuffer bb = null; @@ -193,9 +200,7 @@ public final class Channels { * @return A new readable byte channel */ public static ReadableByteChannel newChannel(final InputStream in) { - if (in == null) { - throw new NullPointerException(); - } + checkNotNull(in, "in"); if (in instanceof FileInputStream && FileInputStream.class.equals(in.getClass())) { @@ -270,9 +275,7 @@ public final class Channels { * @return A new writable byte channel */ public static WritableByteChannel newChannel(final OutputStream out) { - if (out == null) { - throw new NullPointerException(); - } + checkNotNull(out, "out"); if (out instanceof FileOutputStream && FileOutputStream.class.equals(out.getClass())) { @@ -357,8 +360,8 @@ public final class Channels { CharsetDecoder dec, int minBufferCap) { - dec.reset(); - return StreamDecoder.forDecoder(ch, dec, minBufferCap); + checkNotNull(ch, "ch"); + return StreamDecoder.forDecoder(ch, dec.reset(), minBufferCap); } /** @@ -393,6 +396,7 @@ public final class Channels { public static Reader newReader(ReadableByteChannel ch, String csName) { + checkNotNull(csName, "csName"); return newReader(ch, Charset.forName(csName).newDecoder(), -1); } @@ -425,8 +429,8 @@ public final class Channels { final CharsetEncoder enc, final int minBufferCap) { - enc.reset(); - return StreamEncoder.forEncoder(ch, enc, minBufferCap); + checkNotNull(ch, "ch"); + return StreamEncoder.forEncoder(ch, enc.reset(), minBufferCap); } /** @@ -461,6 +465,7 @@ public final class Channels { public static Writer newWriter(WritableByteChannel ch, String csName) { + checkNotNull(csName, "csName"); return newWriter(ch, Charset.forName(csName).newEncoder(), -1); } diff --git a/jdk/test/java/nio/channels/Channels/Basic.java b/jdk/test/java/nio/channels/Channels/Basic.java index 9d1a5dcd070..b4d3544b477 100644 --- a/jdk/test/java/nio/channels/Channels/Basic.java +++ b/jdk/test/java/nio/channels/Channels/Basic.java @@ -22,12 +22,13 @@ */ /* @test - * @bug 4417152 4481572 6248930 + * @bug 4417152 4481572 6248930 6725399 * @summary Test Channels basic functionality */ import java.io.*; import java.nio.*; +import java.nio.charset.*; import java.nio.channels.*; @@ -50,22 +51,106 @@ public class Basic { test(); } + static void failNpeExpected() { + throw new RuntimeException("Did not get the expected NullPointerException."); + } + private static void test() throws Exception { + //Test if methods of Channels throw NPE with null argument(s) + try { + Channels.newInputStream((ReadableByteChannel)null); + failNpeExpected(); + } catch (NullPointerException npe) {} + + try { + Channels.newOutputStream((WritableByteChannel)null); + failNpeExpected(); + } catch (NullPointerException npe) {} + try { ReadableByteChannel channel = Channels.newChannel((InputStream)null); - - throw new RuntimeException("Did not get the expected NullPointerException."); - } catch (NullPointerException ne) { - // OK. As expected. - } + failNpeExpected(); + } catch (NullPointerException ne) {} // OK. As expected. try { WritableByteChannel channel = Channels.newChannel((OutputStream)null); + failNpeExpected(); + } catch (NullPointerException ne) {} // OK. As expected. + + WritableByteChannel wbc = new WritableByteChannel() { + public int write(ByteBuffer src) { return 0; } + public void close() throws IOException { } + public boolean isOpen() { return true; } + }; + + ReadableByteChannel rbc = new ReadableByteChannel() { + public int read(ByteBuffer dst) { return 0; } + public void close() {} + public boolean isOpen() { return true; } + }; + + try { + Channels.newReader((ReadableByteChannel)null, + Charset.defaultCharset().newDecoder(), + -1); + failNpeExpected(); + } catch (NullPointerException npe) {} + + try { + Channels.newReader(rbc, (CharsetDecoder)null, -1); + failNpeExpected(); + } catch (NullPointerException npe) {} + + try { + Channels.newReader((ReadableByteChannel)null, + Charset.defaultCharset().name()); + failNpeExpected(); + } catch (NullPointerException npe) {} + + try { + Channels.newReader(rbc, null); + failNpeExpected(); + } catch (NullPointerException npe) {} + + + try { + Channels.newReader(null, null); + failNpeExpected(); + } catch (NullPointerException npe) {} + + try { + Channels.newWriter((WritableByteChannel)null, + Charset.defaultCharset().newEncoder(), + -1); + failNpeExpected(); + } catch (NullPointerException npe) {} + + try { + Channels.newWriter(null, null, -1); + failNpeExpected(); + } catch (NullPointerException npe) {} + + try { + Channels.newWriter(wbc, null, -1); + failNpeExpected(); + } catch (NullPointerException npe) {} + + try { + Channels.newWriter((WritableByteChannel)null, + Charset.defaultCharset().name()); + failNpeExpected(); + } catch (NullPointerException npe) {} + + try { + Channels.newWriter(wbc, null); + failNpeExpected(); + } catch (NullPointerException npe) {} + + try { + Channels.newWriter(null, null); + failNpeExpected(); + } catch (NullPointerException npe) {} - throw new RuntimeException("Did not get the expected NullPointerException."); - } catch (NullPointerException ne) { - // OK. As expected. - } try { blah = File.createTempFile("blah", null); From 16aa57cb4b28dc63269976c825f7df827688c7ed Mon Sep 17 00:00:00 2001 From: "Y. Srinivas Ramakrishna" Date: Mon, 1 Dec 2008 23:25:24 -0800 Subject: [PATCH 041/110] 6778647: snap(), snap_policy() should be renamed setup(), setup_policy() Renamed Reference{Policy,Pocessor} methods from snap{,_policy}() to setup{,_policy}() Reviewed-by: apetrusenko --- .../concurrentMarkSweep/concurrentMarkSweepGeneration.cpp | 6 +++--- .../src/share/vm/gc_implementation/g1/concurrentMark.cpp | 4 ++-- .../src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp | 2 +- hotspot/src/share/vm/gc_implementation/g1/g1MarkSweep.cpp | 4 ++-- .../vm/gc_implementation/parNew/parNewGeneration.cpp | 2 +- .../vm/gc_implementation/parallelScavenge/psMarkSweep.cpp | 4 ++-- .../parallelScavenge/psParallelCompact.cpp | 2 +- .../vm/gc_implementation/parallelScavenge/psScavenge.cpp | 4 ++-- hotspot/src/share/vm/memory/defNewGeneration.cpp | 2 +- hotspot/src/share/vm/memory/genCollectedHeap.cpp | 2 +- hotspot/src/share/vm/memory/genMarkSweep.cpp | 4 ++-- hotspot/src/share/vm/memory/referencePolicy.cpp | 8 ++++---- hotspot/src/share/vm/memory/referencePolicy.hpp | 6 +++--- hotspot/src/share/vm/memory/referenceProcessor.cpp | 2 +- hotspot/src/share/vm/memory/referenceProcessor.hpp | 4 ++-- 15 files changed, 28 insertions(+), 28 deletions(-) diff --git a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp index e2e27c0f353..e8344107659 100644 --- a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp +++ b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp @@ -1961,7 +1961,7 @@ void CMSCollector::do_compaction_work(bool clear_all_soft_refs) { ref_processor()->set_enqueuing_is_done(false); ref_processor()->enable_discovery(); - ref_processor()->snap_policy(clear_all_soft_refs); + ref_processor()->setup_policy(clear_all_soft_refs); // If an asynchronous collection finishes, the _modUnionTable is // all clear. If we are assuming the collection from an asynchronous // collection, clear the _modUnionTable. @@ -2386,7 +2386,7 @@ void CMSCollector::collect_in_foreground(bool clear_all_soft_refs) { } // Snapshot the soft reference policy to be used in this collection cycle. - ref_processor()->snap_policy(clear_all_soft_refs); + ref_processor()->setup_policy(clear_all_soft_refs); bool init_mark_was_synchronous = false; // until proven otherwise while (_collectorState != Idling) { @@ -5683,7 +5683,7 @@ void CMSCollector::refProcessingWork(bool asynch, bool clear_all_soft_refs) { assert(rp->span().equals(_span), "Spans should be equal"); assert(!rp->enqueuing_is_done(), "Enqueuing should not be complete"); // Process weak references. - rp->snap_policy(clear_all_soft_refs); + rp->setup_policy(clear_all_soft_refs); verify_work_stacks_empty(); CMSKeepAliveClosure cmsKeepAliveClosure(this, _span, &_markBitMap, diff --git a/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp b/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp index 65f64e2ad16..646804205c7 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp +++ b/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp @@ -811,7 +811,7 @@ void ConcurrentMark::checkpointRootsInitialPost() { ReferenceProcessor* rp = g1h->ref_processor(); rp->verify_no_references_recorded(); rp->enable_discovery(); // enable ("weak") refs discovery - rp->snap_policy(false); // snapshot the soft ref policy to be used in this cycle + rp->setup_policy(false); // snapshot the soft ref policy to be used in this cycle SATBMarkQueueSet& satb_mq_set = JavaThread::satb_mark_queue_set(); satb_mq_set.set_process_completed_threshold(G1SATBProcessCompletedThreshold); @@ -1834,7 +1834,7 @@ void ConcurrentMark::weakRefsWork(bool clear_all_soft_refs) { ReferenceProcessor* rp = g1h->ref_processor(); // Process weak references. - rp->snap_policy(clear_all_soft_refs); + rp->setup_policy(clear_all_soft_refs); assert(_markStack.isEmpty(), "mark stack should be empty"); G1CMIsAliveClosure g1IsAliveClosure (g1h); diff --git a/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp b/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp index 5aaa483b91c..f0cad8ed231 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp +++ b/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp @@ -891,7 +891,7 @@ void G1CollectedHeap::do_collection(bool full, bool clear_all_soft_refs, ReferenceProcessorIsAliveMutator rp_is_alive_null(ref_processor(), NULL); ref_processor()->enable_discovery(); - ref_processor()->snap_policy(clear_all_soft_refs); + ref_processor()->setup_policy(clear_all_soft_refs); // Do collection work { diff --git a/hotspot/src/share/vm/gc_implementation/g1/g1MarkSweep.cpp b/hotspot/src/share/vm/gc_implementation/g1/g1MarkSweep.cpp index 4aa08a2319e..d94c6f97cc6 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/g1MarkSweep.cpp +++ b/hotspot/src/share/vm/gc_implementation/g1/g1MarkSweep.cpp @@ -35,7 +35,7 @@ void G1MarkSweep::invoke_at_safepoint(ReferenceProcessor* rp, assert(GenMarkSweep::ref_processor() == NULL, "no stomping"); assert(rp != NULL, "should be non-NULL"); GenMarkSweep::_ref_processor = rp; - rp->snap_policy(clear_all_softrefs); + rp->setup_policy(clear_all_softrefs); // When collecting the permanent generation methodOops may be moving, // so we either have to flush all bcp data or convert it into bci. @@ -123,7 +123,7 @@ void G1MarkSweep::mark_sweep_phase1(bool& marked_for_unloading, // Process reference objects found during marking ReferenceProcessor* rp = GenMarkSweep::ref_processor(); - rp->snap_policy(clear_all_softrefs); + rp->setup_policy(clear_all_softrefs); rp->process_discovered_references(&GenMarkSweep::is_alive, &GenMarkSweep::keep_alive, &GenMarkSweep::follow_stack_closure, diff --git a/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp b/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp index 0c0196f253d..72907679905 100644 --- a/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp +++ b/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp @@ -773,7 +773,7 @@ void ParNewGeneration::collect(bool full, set_promo_failure_scan_stack_closure(&scan_without_gc_barrier); EvacuateFollowersClosureGeneral evacuate_followers(gch, _level, &scan_without_gc_barrier, &scan_with_gc_barrier); - rp->snap_policy(clear_all_soft_refs); + rp->setup_policy(clear_all_soft_refs); if (rp->processing_is_mt()) { ParNewRefProcTaskExecutor task_executor(*this, thread_state_set); rp->process_discovered_references(&is_alive, &keep_alive, diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psMarkSweep.cpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psMarkSweep.cpp index 5134f47e7a5..ea0c20b0148 100644 --- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psMarkSweep.cpp +++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psMarkSweep.cpp @@ -172,7 +172,7 @@ void PSMarkSweep::invoke_no_policy(bool clear_all_softrefs) { COMPILER2_PRESENT(DerivedPointerTable::clear()); ref_processor()->enable_discovery(); - ref_processor()->snap_policy(clear_all_softrefs); + ref_processor()->setup_policy(clear_all_softrefs); mark_sweep_phase1(clear_all_softrefs); @@ -518,7 +518,7 @@ void PSMarkSweep::mark_sweep_phase1(bool clear_all_softrefs) { // Process reference objects found during marking { - ref_processor()->snap_policy(clear_all_softrefs); + ref_processor()->setup_policy(clear_all_softrefs); ref_processor()->process_discovered_references( is_alive_closure(), mark_and_push_closure(), follow_stack_closure(), NULL); } diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp index 9ca6b6c804c..1ad78f84c56 100644 --- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp +++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp @@ -1578,7 +1578,7 @@ void PSParallelCompact::invoke_no_policy(bool maximum_heap_compaction) { COMPILER2_PRESENT(DerivedPointerTable::clear()); ref_processor()->enable_discovery(); - ref_processor()->snap_policy(maximum_heap_compaction); + ref_processor()->setup_policy(maximum_heap_compaction); bool marked_for_unloading = false; diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psScavenge.cpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psScavenge.cpp index 4aa7d5afe38..6357362b0f7 100644 --- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psScavenge.cpp +++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psScavenge.cpp @@ -330,7 +330,7 @@ bool PSScavenge::invoke_no_policy() { COMPILER2_PRESENT(DerivedPointerTable::clear()); reference_processor()->enable_discovery(); - reference_processor()->snap_policy(false); + reference_processor()->setup_policy(false); // We track how much was promoted to the next generation for // the AdaptiveSizePolicy. @@ -395,7 +395,7 @@ bool PSScavenge::invoke_no_policy() { // Process reference objects discovered during scavenge { - reference_processor()->snap_policy(false); // not always_clear + reference_processor()->setup_policy(false); // not always_clear PSKeepAliveClosure keep_alive(promotion_manager); PSEvacuateFollowersClosure evac_followers(promotion_manager); if (reference_processor()->processing_is_mt()) { diff --git a/hotspot/src/share/vm/memory/defNewGeneration.cpp b/hotspot/src/share/vm/memory/defNewGeneration.cpp index e953e7545b5..93a2e57e346 100644 --- a/hotspot/src/share/vm/memory/defNewGeneration.cpp +++ b/hotspot/src/share/vm/memory/defNewGeneration.cpp @@ -567,7 +567,7 @@ void DefNewGeneration::collect(bool full, FastKeepAliveClosure keep_alive(this, &scan_weak_ref); ReferenceProcessor* rp = ref_processor(); - rp->snap_policy(clear_all_soft_refs); + rp->setup_policy(clear_all_soft_refs); rp->process_discovered_references(&is_alive, &keep_alive, &evacuate_followers, NULL); if (!promotion_failed()) { diff --git a/hotspot/src/share/vm/memory/genCollectedHeap.cpp b/hotspot/src/share/vm/memory/genCollectedHeap.cpp index f411d4d7bfa..832a3331e19 100644 --- a/hotspot/src/share/vm/memory/genCollectedHeap.cpp +++ b/hotspot/src/share/vm/memory/genCollectedHeap.cpp @@ -525,7 +525,7 @@ void GenCollectedHeap::do_collection(bool full, if (rp->discovery_is_atomic()) { rp->verify_no_references_recorded(); rp->enable_discovery(); - rp->snap_policy(clear_all_soft_refs); + rp->setup_policy(clear_all_soft_refs); } else { // collect() below will enable discovery as appropriate } diff --git a/hotspot/src/share/vm/memory/genMarkSweep.cpp b/hotspot/src/share/vm/memory/genMarkSweep.cpp index f0c41d75c00..ba42d5d2143 100644 --- a/hotspot/src/share/vm/memory/genMarkSweep.cpp +++ b/hotspot/src/share/vm/memory/genMarkSweep.cpp @@ -33,7 +33,7 @@ void GenMarkSweep::invoke_at_safepoint(int level, ReferenceProcessor* rp, assert(ref_processor() == NULL, "no stomping"); assert(rp != NULL, "should be non-NULL"); _ref_processor = rp; - rp->snap_policy(clear_all_softrefs); + rp->setup_policy(clear_all_softrefs); TraceTime t1("Full GC", PrintGC && !PrintGCDetails, true, gclog_or_tty); @@ -246,7 +246,7 @@ void GenMarkSweep::mark_sweep_phase1(int level, // Process reference objects found during marking { - ref_processor()->snap_policy(clear_all_softrefs); + ref_processor()->setup_policy(clear_all_softrefs); ref_processor()->process_discovered_references( &is_alive, &keep_alive, &follow_stack_closure, NULL); } diff --git a/hotspot/src/share/vm/memory/referencePolicy.cpp b/hotspot/src/share/vm/memory/referencePolicy.cpp index 0d23d1ddf36..26aef4a2fd4 100644 --- a/hotspot/src/share/vm/memory/referencePolicy.cpp +++ b/hotspot/src/share/vm/memory/referencePolicy.cpp @@ -26,11 +26,11 @@ # include "incls/_referencePolicy.cpp.incl" LRUCurrentHeapPolicy::LRUCurrentHeapPolicy() { - snap(); + setup(); } // Capture state (of-the-VM) information needed to evaluate the policy -void LRUCurrentHeapPolicy::snap() { +void LRUCurrentHeapPolicy::setup() { _max_interval = (Universe::get_heap_free_at_last_gc() / M) * SoftRefLRUPolicyMSPerMB; assert(_max_interval >= 0,"Sanity check"); } @@ -52,11 +52,11 @@ bool LRUCurrentHeapPolicy::should_clear_reference(oop p) { /////////////////////// MaxHeap ////////////////////// LRUMaxHeapPolicy::LRUMaxHeapPolicy() { - snap(); + setup(); } // Capture state (of-the-VM) information needed to evaluate the policy -void LRUMaxHeapPolicy::snap() { +void LRUMaxHeapPolicy::setup() { size_t max_heap = MaxHeapSize; max_heap -= Universe::get_heap_used_at_last_gc(); max_heap /= M; diff --git a/hotspot/src/share/vm/memory/referencePolicy.hpp b/hotspot/src/share/vm/memory/referencePolicy.hpp index 538ab183a0c..2cf22c825ab 100644 --- a/hotspot/src/share/vm/memory/referencePolicy.hpp +++ b/hotspot/src/share/vm/memory/referencePolicy.hpp @@ -30,7 +30,7 @@ class ReferencePolicy : public CHeapObj { public: virtual bool should_clear_reference(oop p) { ShouldNotReachHere(); return true; } // Capture state (of-the-VM) information needed to evaluate the policy - virtual void snap() { /* do nothing */ } + virtual void setup() { /* do nothing */ } }; class NeverClearPolicy : public ReferencePolicy { @@ -51,7 +51,7 @@ class LRUCurrentHeapPolicy : public ReferencePolicy { LRUCurrentHeapPolicy(); // Capture state (of-the-VM) information needed to evaluate the policy - void snap(); + void setup(); bool should_clear_reference(oop p); }; @@ -63,6 +63,6 @@ class LRUMaxHeapPolicy : public ReferencePolicy { LRUMaxHeapPolicy(); // Capture state (of-the-VM) information needed to evaluate the policy - void snap(); + void setup(); bool should_clear_reference(oop p); }; diff --git a/hotspot/src/share/vm/memory/referenceProcessor.cpp b/hotspot/src/share/vm/memory/referenceProcessor.cpp index 648fbbd4736..073886f2f93 100644 --- a/hotspot/src/share/vm/memory/referenceProcessor.cpp +++ b/hotspot/src/share/vm/memory/referenceProcessor.cpp @@ -115,7 +115,7 @@ ReferenceProcessor::create_ref_processor(MemRegion span, vm_exit_during_initialization("Could not allocate ReferenceProcessor object"); } rp->set_is_alive_non_header(is_alive_non_header); - rp->snap_policy(false /* default soft ref policy */); + rp->setup_policy(false /* default soft ref policy */); return rp; } diff --git a/hotspot/src/share/vm/memory/referenceProcessor.hpp b/hotspot/src/share/vm/memory/referenceProcessor.hpp index d4ebec200fa..6d82e524d8a 100644 --- a/hotspot/src/share/vm/memory/referenceProcessor.hpp +++ b/hotspot/src/share/vm/memory/referenceProcessor.hpp @@ -98,10 +98,10 @@ class ReferenceProcessor : public CHeapObj { DiscoveredList* discovered_soft_refs() { return _discoveredSoftRefs; } static oop sentinel_ref() { return _sentinelRef; } static oop* adr_sentinel_ref() { return &_sentinelRef; } - ReferencePolicy* snap_policy(bool always_clear) { + ReferencePolicy* setup_policy(bool always_clear) { _current_soft_ref_policy = always_clear ? _always_clear_soft_ref_policy : _default_soft_ref_policy; - _current_soft_ref_policy->snap(); // snapshot the policy threshold + _current_soft_ref_policy->setup(); // snapshot the policy threshold return _current_soft_ref_policy; } From e936f852bfd903a2024343a3d63390d4fa1c44ad Mon Sep 17 00:00:00 2001 From: Bradford Wetmore Date: Tue, 2 Dec 2008 14:53:52 -0800 Subject: [PATCH 042/110] 6778613: Update javax.crypto.Cipher.getMaxAllowedKeyLength to point to proper Appendix after doc reorg Reviewed-by: mullan --- jdk/src/share/classes/javax/crypto/Cipher.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jdk/src/share/classes/javax/crypto/Cipher.java b/jdk/src/share/classes/javax/crypto/Cipher.java index f99a43cf511..899b3523312 100644 --- a/jdk/src/share/classes/javax/crypto/Cipher.java +++ b/jdk/src/share/classes/javax/crypto/Cipher.java @@ -2377,7 +2377,7 @@ public class Cipher { * For more information on default key size in JCE jurisdiction * policy files, please see Appendix E in the * + * "{@docRoot}/../technotes/guides/security/crypto/CryptoSpec.html#AppC"> * Java Cryptography Architecture Reference Guide. * * @param transformation the cipher transformation. From f2f18a01e514d7a923a7c54d69e8e012afd3f137 Mon Sep 17 00:00:00 2001 From: Vladimir Kozlov Date: Wed, 3 Dec 2008 13:41:37 -0800 Subject: [PATCH 043/110] 6775880: EA +DeoptimizeALot: assert(mon_info->owner()->is_locked(),"object must be locked now") Create new "eliminated" BoxLock node for monitor debug info when corresponding locks are eliminated. Reviewed-by: never --- hotspot/src/share/vm/opto/callnode.cpp | 18 +++- hotspot/src/share/vm/opto/callnode.hpp | 7 +- hotspot/src/share/vm/opto/compile.cpp | 5 - hotspot/src/share/vm/opto/escape.cpp | 3 +- hotspot/src/share/vm/opto/locknode.cpp | 7 +- hotspot/src/share/vm/opto/locknode.hpp | 2 +- hotspot/src/share/vm/opto/macro.cpp | 116 ++++++++++++++++++------ hotspot/src/share/vm/opto/output.cpp | 7 +- hotspot/test/compiler/6775880/Test.java | 67 ++++++++++++++ 9 files changed, 188 insertions(+), 44 deletions(-) create mode 100644 hotspot/test/compiler/6775880/Test.java diff --git a/hotspot/src/share/vm/opto/callnode.cpp b/hotspot/src/share/vm/opto/callnode.cpp index b9e9cbd5587..7dff291fc1c 100644 --- a/hotspot/src/share/vm/opto/callnode.cpp +++ b/hotspot/src/share/vm/opto/callnode.cpp @@ -395,7 +395,13 @@ void JVMState::format(PhaseRegAlloc *regalloc, const Node *n, outputStream* st) OptoReg::regname(OptoReg::c_frame_pointer), regalloc->reg2offset(box_reg)); } - format_helper( regalloc, st, obj, "MON-OBJ[", i, &scobjs ); + const char* obj_msg = "MON-OBJ["; + if (EliminateLocks) { + while( !box->is_BoxLock() ) box = box->in(1); + if (box->as_BoxLock()->is_eliminated()) + obj_msg = "MON-OBJ(LOCK ELIMINATED)["; + } + format_helper( regalloc, st, obj, obj_msg, i, &scobjs ); } for (i = 0; i < (uint)scobjs.length(); i++) { @@ -908,8 +914,9 @@ void SafePointNode::push_monitor(const FastLockNode *lock) { add_req(lock->box_node()); add_req(lock->obj_node()); } else { - add_req(NULL); - add_req(NULL); + Node* top = Compile::current()->top(); + add_req(top); + add_req(top); } jvms()->set_scloff(nextmon+MonitorEdges); jvms()->set_endoff(req()); @@ -1382,7 +1389,7 @@ Node *LockNode::Ideal(PhaseGVN *phase, bool can_reshape) { // // If we are locking an unescaped object, the lock/unlock is unnecessary // - ConnectionGraph *cgr = Compile::current()->congraph(); + ConnectionGraph *cgr = phase->C->congraph(); PointsToNode::EscapeState es = PointsToNode::GlobalEscape; if (cgr != NULL) es = cgr->escape_state(obj_node(), phase); @@ -1450,6 +1457,7 @@ Node *LockNode::Ideal(PhaseGVN *phase, bool can_reshape) { // Mark it eliminated to update any counters lock->set_eliminated(); + lock->set_coarsened(); } } else if (result != NULL && ctrl->is_Region() && iter->_worklist.member(ctrl)) { @@ -1484,7 +1492,7 @@ Node *UnlockNode::Ideal(PhaseGVN *phase, bool can_reshape) { // // If we are unlocking an unescaped object, the lock/unlock is unnecessary. // - ConnectionGraph *cgr = Compile::current()->congraph(); + ConnectionGraph *cgr = phase->C->congraph(); PointsToNode::EscapeState es = PointsToNode::GlobalEscape; if (cgr != NULL) es = cgr->escape_state(obj_node(), phase); diff --git a/hotspot/src/share/vm/opto/callnode.hpp b/hotspot/src/share/vm/opto/callnode.hpp index 45b6dd2148b..06c783364c0 100644 --- a/hotspot/src/share/vm/opto/callnode.hpp +++ b/hotspot/src/share/vm/opto/callnode.hpp @@ -780,7 +780,8 @@ public: //------------------------------AbstractLockNode----------------------------------- class AbstractLockNode: public CallNode { private: - bool _eliminate; // indicates this lock can be safely eliminated + bool _eliminate; // indicates this lock can be safely eliminated + bool _coarsened; // indicates this lock was coarsened #ifndef PRODUCT NamedCounter* _counter; #endif @@ -801,6 +802,7 @@ protected: public: AbstractLockNode(const TypeFunc *tf) : CallNode(tf, NULL, TypeRawPtr::BOTTOM), + _coarsened(false), _eliminate(false) { #ifndef PRODUCT @@ -819,6 +821,9 @@ public: // mark node as eliminated and update the counter if there is one void set_eliminated(); + bool is_coarsened() { return _coarsened; } + void set_coarsened() { _coarsened = true; } + // locking does not modify its arguments virtual bool may_modify(const TypePtr *addr_t, PhaseTransform *phase){ return false;} diff --git a/hotspot/src/share/vm/opto/compile.cpp b/hotspot/src/share/vm/opto/compile.cpp index 42eae3063d9..f9b3392d0f2 100644 --- a/hotspot/src/share/vm/opto/compile.cpp +++ b/hotspot/src/share/vm/opto/compile.cpp @@ -1532,11 +1532,6 @@ void Compile::Optimize() { if (failing()) return; - // get rid of the connection graph since it's information is not - // updated by optimizations - _congraph = NULL; - - // Loop transforms on the ideal graph. Range Check Elimination, // peeling, unrolling, etc. diff --git a/hotspot/src/share/vm/opto/escape.cpp b/hotspot/src/share/vm/opto/escape.cpp index 1c1d5d8223f..bccfb9c64ba 100644 --- a/hotspot/src/share/vm/opto/escape.cpp +++ b/hotspot/src/share/vm/opto/escape.cpp @@ -199,7 +199,8 @@ PointsToNode::EscapeState ConnectionGraph::escape_state(Node *n, PhaseTransform es = ptnode_adr(idx)->escape_state(); // if we have already computed a value, return it - if (es != PointsToNode::UnknownEscape) + if (es != PointsToNode::UnknownEscape && + ptnode_adr(idx)->node_type() == PointsToNode::JavaObject) return es; // PointsTo() calls n->uncast() which can return a new ideal node. diff --git a/hotspot/src/share/vm/opto/locknode.cpp b/hotspot/src/share/vm/opto/locknode.cpp index 5a74fd09001..0099284a701 100644 --- a/hotspot/src/share/vm/opto/locknode.cpp +++ b/hotspot/src/share/vm/opto/locknode.cpp @@ -44,10 +44,15 @@ BoxLockNode::BoxLockNode( int slot ) : Node( Compile::current()->root() ), _inmask.Insert(reg); } +//-----------------------------hash-------------------------------------------- +uint BoxLockNode::hash() const { + return Node::hash() + _slot + (_is_eliminated ? Compile::current()->fixed_slots() : 0); +} + //------------------------------cmp-------------------------------------------- uint BoxLockNode::cmp( const Node &n ) const { const BoxLockNode &bn = (const BoxLockNode &)n; - return bn._slot == _slot; + return bn._slot == _slot && bn._is_eliminated == _is_eliminated; } OptoReg::Name BoxLockNode::stack_slot(Node* box_node) { diff --git a/hotspot/src/share/vm/opto/locknode.hpp b/hotspot/src/share/vm/opto/locknode.hpp index 113de601538..5361933828a 100644 --- a/hotspot/src/share/vm/opto/locknode.hpp +++ b/hotspot/src/share/vm/opto/locknode.hpp @@ -36,7 +36,7 @@ public: virtual const RegMask &in_RegMask(uint) const; virtual const RegMask &out_RegMask() const; virtual uint size_of() const; - virtual uint hash() const { return Node::hash() + _slot; } + virtual uint hash() const; virtual uint cmp( const Node &n ) const; virtual const class Type *bottom_type() const { return TypeRawPtr::BOTTOM; } virtual uint ideal_reg() const { return Op_RegP; } diff --git a/hotspot/src/share/vm/opto/macro.cpp b/hotspot/src/share/vm/opto/macro.cpp index 37cee0697bb..1152917d907 100644 --- a/hotspot/src/share/vm/opto/macro.cpp +++ b/hotspot/src/share/vm/opto/macro.cpp @@ -59,7 +59,7 @@ void PhaseMacroExpand::copy_call_debug_info(CallNode *oldcall, CallNode * newcal for (uint i = old_dbg_start; i < oldcall->req(); i++) { Node* old_in = oldcall->in(i); // Clone old SafePointScalarObjectNodes, adjusting their field contents. - if (old_in->is_SafePointScalarObject()) { + if (old_in != NULL && old_in->is_SafePointScalarObject()) { SafePointScalarObjectNode* old_sosn = old_in->as_SafePointScalarObject(); uint old_unique = C->unique(); Node* new_in = old_sosn->clone(jvms_adj, sosn_map); @@ -1509,21 +1509,63 @@ bool PhaseMacroExpand::eliminate_locking_node(AbstractLockNode *alock) { if (!alock->is_eliminated()) { return false; } - // Mark the box lock as eliminated if all correspondent locks are eliminated - // to construct correct debug info. - BoxLockNode* box = alock->box_node()->as_BoxLock(); - if (!box->is_eliminated()) { - bool eliminate = true; - for (DUIterator_Fast imax, i = box->fast_outs(imax); i < imax; i++) { - Node *lck = box->fast_out(i); - if (lck->is_Lock() && !lck->as_AbstractLock()->is_eliminated()) { - eliminate = false; - break; - } - } - if (eliminate) - box->set_eliminated(); - } + if (alock->is_Lock() && !alock->is_coarsened()) { + // Create new "eliminated" BoxLock node and use it + // in monitor debug info for the same object. + BoxLockNode* oldbox = alock->box_node()->as_BoxLock(); + Node* obj = alock->obj_node(); + if (!oldbox->is_eliminated()) { + BoxLockNode* newbox = oldbox->clone()->as_BoxLock(); + newbox->set_eliminated(); + transform_later(newbox); + // Replace old box node with new box for all users + // of the same object. + for (uint i = 0; i < oldbox->outcnt();) { + + bool next_edge = true; + Node* u = oldbox->raw_out(i); + if (u == alock) { + i++; + continue; // It will be removed below + } + if (u->is_Lock() && + u->as_Lock()->obj_node() == obj && + // oldbox could be referenced in debug info also + u->as_Lock()->box_node() == oldbox) { + assert(u->as_Lock()->is_eliminated(), "sanity"); + _igvn.hash_delete(u); + u->set_req(TypeFunc::Parms + 1, newbox); + next_edge = false; +#ifdef ASSERT + } else if (u->is_Unlock() && u->as_Unlock()->obj_node() == obj) { + assert(u->as_Unlock()->is_eliminated(), "sanity"); +#endif + } + // Replace old box in monitor debug info. + if (u->is_SafePoint() && u->as_SafePoint()->jvms()) { + SafePointNode* sfn = u->as_SafePoint(); + JVMState* youngest_jvms = sfn->jvms(); + int max_depth = youngest_jvms->depth(); + for (int depth = 1; depth <= max_depth; depth++) { + JVMState* jvms = youngest_jvms->of_depth(depth); + int num_mon = jvms->nof_monitors(); + // Loop over monitors + for (int idx = 0; idx < num_mon; idx++) { + Node* obj_node = sfn->monitor_obj(jvms, idx); + Node* box_node = sfn->monitor_box(jvms, idx); + if (box_node == oldbox && obj_node == obj) { + int j = jvms->monitor_box_offset(idx); + _igvn.hash_delete(u); + u->set_req(j, newbox); + next_edge = false; + } + } // for (int idx = 0; + } // for (int depth = 1; + } // if (u->is_SafePoint() + if (next_edge) i++; + } // for (uint i = 0; i < oldbox->outcnt();) + } // if (!oldbox->is_eliminated()) + } // if (alock->is_Lock() && !lock->is_coarsened()) #ifndef PRODUCT if (PrintEliminateLocks) { @@ -1562,6 +1604,15 @@ bool PhaseMacroExpand::eliminate_locking_node(AbstractLockNode *alock) { _igvn.subsume_node(ctrlproj, fallthroughproj); _igvn.hash_delete(memproj); _igvn.subsume_node(memproj, memproj_fallthrough); + + // Delete FastLock node also if this Lock node is unique user + // (a loop peeling may clone a Lock node). + Node* flock = alock->as_Lock()->fastlock_node(); + if (flock->outcnt() == 1) { + assert(flock->unique_out() == alock, "sanity"); + _igvn.hash_delete(flock); + _igvn.subsume_node(flock, top()); + } } // Seach for MemBarRelease node and delete it also. @@ -1887,8 +1938,28 @@ void PhaseMacroExpand::expand_unlock_node(UnlockNode *unlock) { bool PhaseMacroExpand::expand_macro_nodes() { if (C->macro_count() == 0) return false; - // attempt to eliminate allocations + // First, attempt to eliminate locks bool progress = true; + while (progress) { + progress = false; + for (int i = C->macro_count(); i > 0; i--) { + Node * n = C->macro_node(i-1); + bool success = false; + debug_only(int old_macro_count = C->macro_count();); + if (n->is_AbstractLock()) { + success = eliminate_locking_node(n->as_AbstractLock()); + } else if (n->Opcode() == Op_Opaque1 || n->Opcode() == Op_Opaque2) { + _igvn.add_users_to_worklist(n); + _igvn.hash_delete(n); + _igvn.subsume_node(n, n->in(1)); + success = true; + } + assert(success == (C->macro_count() < old_macro_count), "elimination reduces macro count"); + progress = progress || success; + } + } + // Next, attempt to eliminate allocations + progress = true; while (progress) { progress = false; for (int i = C->macro_count(); i > 0; i--) { @@ -1902,17 +1973,10 @@ bool PhaseMacroExpand::expand_macro_nodes() { break; case Node::Class_Lock: case Node::Class_Unlock: - success = eliminate_locking_node(n->as_AbstractLock()); + assert(!n->as_AbstractLock()->is_eliminated(), "sanity"); break; default: - if (n->Opcode() == Op_Opaque1 || n->Opcode() == Op_Opaque2) { - _igvn.add_users_to_worklist(n); - _igvn.hash_delete(n); - _igvn.subsume_node(n, n->in(1)); - success = true; - } else { - assert(false, "unknown node type in macro list"); - } + assert(false, "unknown node type in macro list"); } assert(success == (C->macro_count() < old_macro_count), "elimination reduces macro count"); progress = progress || success; diff --git a/hotspot/src/share/vm/opto/output.cpp b/hotspot/src/share/vm/opto/output.cpp index 604ab7536ad..7d6482ccd3c 100644 --- a/hotspot/src/share/vm/opto/output.cpp +++ b/hotspot/src/share/vm/opto/output.cpp @@ -849,10 +849,8 @@ void Compile::Process_OopMap_Node(MachNode *mach, int current_offset) { // Loop over monitors and insert into array for(idx = 0; idx < num_mon; idx++) { // Grab the node that defines this monitor - Node* box_node; - Node* obj_node; - box_node = sfn->monitor_box(jvms, idx); - obj_node = sfn->monitor_obj(jvms, idx); + Node* box_node = sfn->monitor_box(jvms, idx); + Node* obj_node = sfn->monitor_obj(jvms, idx); // Create ScopeValue for object ScopeValue *scval = NULL; @@ -890,6 +888,7 @@ void Compile::Process_OopMap_Node(MachNode *mach, int current_offset) { OptoReg::Name box_reg = BoxLockNode::stack_slot(box_node); Location basic_lock = Location::new_stk_loc(Location::normal,_regalloc->reg2offset(box_reg)); + while( !box_node->is_BoxLock() ) box_node = box_node->in(1); monarray->append(new MonitorValue(scval, basic_lock, box_node->as_BoxLock()->is_eliminated())); } diff --git a/hotspot/test/compiler/6775880/Test.java b/hotspot/test/compiler/6775880/Test.java new file mode 100644 index 00000000000..7c952ec4530 --- /dev/null +++ b/hotspot/test/compiler/6775880/Test.java @@ -0,0 +1,67 @@ +/* + * Copyright 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. + * + * 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. + * + */ + +/* + * @test + * @bug 6775880 + * @summary EA +DeoptimizeALot: assert(mon_info->owner()->is_locked(),"object must be locked now") + * @compile -source 1.4 -target 1.4 Test.java + * @run main/othervm -server -Xbatch -XX:+DoEscapeAnalysis -XX:+DeoptimizeALot -XX:CompileCommand=exclude,java.lang.AbstractStringBuilder::append Test + */ + +public class Test { + + int cnt; + int b[]; + String s; + + String test() { + String res=""; + for (int i=0; i < cnt; i++) { + if (i != 0) { + res = res +"."; + } + res = res + b[i]; + } + return res; + } + + public static void main(String[] args) { + Test t = new Test(); + t.cnt = 3; + t.b = new int[3]; + t.b[0] = 0; + t.b[1] = 1; + t.b[2] = 2; + int j=0; + t.s = ""; + for (int i=0; i<10001; i++) { + t.s = "c"; + t.s = t.test(); + } + System.out.println("After s=" + t.s); + } +} + + From af509dd90da88faf0f6db9907c5a0f42f9f71634 Mon Sep 17 00:00:00 2001 From: Igor Veresov Date: Wed, 3 Dec 2008 14:18:57 -0800 Subject: [PATCH 044/110] 6779436: NUMA allocator: libnuma expects certain size of the buffer in numa_node_to_cpus() In os::Linux::rebuild_cpu_to_node_map() fix the size of the CPU bitmap. Fixed arithmetic in MutableNUMASpace::adaptive_chunk_size() that could cause overflows and underflows of the chunk_size variable. Reviewed-by: apetrusenko --- hotspot/src/os/linux/vm/os_linux.cpp | 55 +++++++++++++++---- hotspot/src/os/linux/vm/os_linux.hpp | 14 ++++- hotspot/src/os/solaris/vm/os_solaris.cpp | 24 ++++++-- hotspot/src/os/solaris/vm/os_solaris.hpp | 2 +- hotspot/src/os/windows/vm/os_windows.cpp | 4 ++ .../shared/mutableNUMASpace.cpp | 15 ++++- hotspot/src/share/vm/runtime/globals.hpp | 3 + 7 files changed, 96 insertions(+), 21 deletions(-) diff --git a/hotspot/src/os/linux/vm/os_linux.cpp b/hotspot/src/os/linux/vm/os_linux.cpp index 3e93e6d5983..6331bf4aca5 100644 --- a/hotspot/src/os/linux/vm/os_linux.cpp +++ b/hotspot/src/os/linux/vm/os_linux.cpp @@ -2272,7 +2272,9 @@ void os::free_memory(char *addr, size_t bytes) { uncommit_memory(addr, bytes); } -void os::numa_make_global(char *addr, size_t bytes) { } +void os::numa_make_global(char *addr, size_t bytes) { + Linux::numa_interleave_memory(addr, bytes); +} void os::numa_make_local(char *addr, size_t bytes, int lgrp_hint) { Linux::numa_tonode_memory(addr, bytes, lgrp_hint); @@ -2314,7 +2316,7 @@ char *os::scan_pages(char *start, char* end, page_info* page_expected, page_info extern "C" void numa_warn(int number, char *where, ...) { } extern "C" void numa_error(char *where) { } -void os::Linux::libnuma_init() { +bool os::Linux::libnuma_init() { // sched_getcpu() should be in libc. set_sched_getcpu(CAST_TO_FN_PTR(sched_getcpu_func_t, dlsym(RTLD_DEFAULT, "sched_getcpu"))); @@ -2330,31 +2332,51 @@ void os::Linux::libnuma_init() { dlsym(handle, "numa_available"))); set_numa_tonode_memory(CAST_TO_FN_PTR(numa_tonode_memory_func_t, dlsym(handle, "numa_tonode_memory"))); + set_numa_interleave_memory(CAST_TO_FN_PTR(numa_interleave_memory_func_t, + dlsym(handle, "numa_interleave_memory"))); + + if (numa_available() != -1) { + set_numa_all_nodes((unsigned long*)dlsym(handle, "numa_all_nodes")); // Create a cpu -> node mapping _cpu_to_node = new (ResourceObj::C_HEAP) GrowableArray(0, true); rebuild_cpu_to_node_map(); + return true; } } } + return false; } // rebuild_cpu_to_node_map() constructs a table mapping cpud id to node id. // The table is later used in get_node_by_cpu(). void os::Linux::rebuild_cpu_to_node_map() { - int cpu_num = os::active_processor_count(); + const size_t NCPUS = 32768; // Since the buffer size computation is very obscure + // in libnuma (possible values are starting from 16, + // and continuing up with every other power of 2, but less + // than the maximum number of CPUs supported by kernel), and + // is a subject to change (in libnuma version 2 the requirements + // are more reasonable) we'll just hardcode the number they use + // in the library. + const size_t BitsPerCLong = sizeof(long) * CHAR_BIT; + + size_t cpu_num = os::active_processor_count(); + size_t cpu_map_size = NCPUS / BitsPerCLong; + size_t cpu_map_valid_size = + MIN2((cpu_num + BitsPerCLong - 1) / BitsPerCLong, cpu_map_size); + cpu_to_node()->clear(); cpu_to_node()->at_grow(cpu_num - 1); - int node_num = numa_get_groups_num(); - int cpu_map_size = (cpu_num + BitsPerLong - 1) / BitsPerLong; + size_t node_num = numa_get_groups_num(); + unsigned long *cpu_map = NEW_C_HEAP_ARRAY(unsigned long, cpu_map_size); - for (int i = 0; i < node_num; i++) { + for (size_t i = 0; i < node_num; i++) { if (numa_node_to_cpus(i, cpu_map, cpu_map_size * sizeof(unsigned long)) != -1) { - for (int j = 0; j < cpu_map_size; j++) { + for (size_t j = 0; j < cpu_map_valid_size; j++) { if (cpu_map[j] != 0) { - for (int k = 0; k < BitsPerLong; k++) { + for (size_t k = 0; k < BitsPerCLong; k++) { if (cpu_map[j] & (1UL << k)) { - cpu_to_node()->at_put(j * BitsPerLong + k, i); + cpu_to_node()->at_put(j * BitsPerCLong + k, i); } } } @@ -2377,7 +2399,8 @@ os::Linux::numa_node_to_cpus_func_t os::Linux::_numa_node_to_cpus; os::Linux::numa_max_node_func_t os::Linux::_numa_max_node; os::Linux::numa_available_func_t os::Linux::_numa_available; os::Linux::numa_tonode_memory_func_t os::Linux::_numa_tonode_memory; - +os::Linux::numa_interleave_memory_func_t os::Linux::_numa_interleave_memory; +unsigned long* os::Linux::_numa_all_nodes; bool os::uncommit_memory(char* addr, size_t size) { return ::mmap(addr, size, @@ -3695,7 +3718,17 @@ jint os::init_2(void) } if (UseNUMA) { - Linux::libnuma_init(); + if (!Linux::libnuma_init()) { + UseNUMA = false; + } else { + if ((Linux::numa_max_node() < 1)) { + // There's only one node(they start from 0), disable NUMA. + UseNUMA = false; + } + } + if (!UseNUMA && ForceNUMA) { + UseNUMA = true; + } } if (MaxFDLimit) { diff --git a/hotspot/src/os/linux/vm/os_linux.hpp b/hotspot/src/os/linux/vm/os_linux.hpp index baa412501f3..ebd8c931b2b 100644 --- a/hotspot/src/os/linux/vm/os_linux.hpp +++ b/hotspot/src/os/linux/vm/os_linux.hpp @@ -146,7 +146,7 @@ class Linux { static bool is_floating_stack() { return _is_floating_stack; } static void libpthread_init(); - static void libnuma_init(); + static bool libnuma_init(); // Minimum stack size a thread can be created with (allowing // the VM to completely create the thread and enter user code) @@ -240,20 +240,23 @@ private: typedef int (*numa_max_node_func_t)(void); typedef int (*numa_available_func_t)(void); typedef int (*numa_tonode_memory_func_t)(void *start, size_t size, int node); - + typedef void (*numa_interleave_memory_func_t)(void *start, size_t size, unsigned long *nodemask); static sched_getcpu_func_t _sched_getcpu; static numa_node_to_cpus_func_t _numa_node_to_cpus; static numa_max_node_func_t _numa_max_node; static numa_available_func_t _numa_available; static numa_tonode_memory_func_t _numa_tonode_memory; + static numa_interleave_memory_func_t _numa_interleave_memory; + static unsigned long* _numa_all_nodes; static void set_sched_getcpu(sched_getcpu_func_t func) { _sched_getcpu = func; } static void set_numa_node_to_cpus(numa_node_to_cpus_func_t func) { _numa_node_to_cpus = func; } static void set_numa_max_node(numa_max_node_func_t func) { _numa_max_node = func; } static void set_numa_available(numa_available_func_t func) { _numa_available = func; } static void set_numa_tonode_memory(numa_tonode_memory_func_t func) { _numa_tonode_memory = func; } - + static void set_numa_interleave_memory(numa_interleave_memory_func_t func) { _numa_interleave_memory = func; } + static void set_numa_all_nodes(unsigned long* ptr) { _numa_all_nodes = ptr; } public: static int sched_getcpu() { return _sched_getcpu != NULL ? _sched_getcpu() : -1; } static int numa_node_to_cpus(int node, unsigned long *buffer, int bufferlen) { @@ -264,6 +267,11 @@ public: static int numa_tonode_memory(void *start, size_t size, int node) { return _numa_tonode_memory != NULL ? _numa_tonode_memory(start, size, node) : -1; } + static void numa_interleave_memory(void *start, size_t size) { + if (_numa_interleave_memory != NULL && _numa_all_nodes != NULL) { + _numa_interleave_memory(start, size, _numa_all_nodes); + } + } static int get_node_by_cpu(int cpu_id); }; diff --git a/hotspot/src/os/solaris/vm/os_solaris.cpp b/hotspot/src/os/solaris/vm/os_solaris.cpp index 05940869e48..7225f3be425 100644 --- a/hotspot/src/os/solaris/vm/os_solaris.cpp +++ b/hotspot/src/os/solaris/vm/os_solaris.cpp @@ -4638,7 +4638,7 @@ void os::Solaris::synchronization_init() { } } -void os::Solaris::liblgrp_init() { +bool os::Solaris::liblgrp_init() { void *handle = dlopen("liblgrp.so.1", RTLD_LAZY); if (handle != NULL) { os::Solaris::set_lgrp_home(CAST_TO_FN_PTR(lgrp_home_func_t, dlsym(handle, "lgrp_home"))); @@ -4653,9 +4653,9 @@ void os::Solaris::liblgrp_init() { lgrp_cookie_t c = lgrp_init(LGRP_VIEW_CALLER); set_lgrp_cookie(c); - } else { - warning("your OS does not support NUMA"); + return true; } + return false; } void os::Solaris::misc_sym_init() { @@ -4824,9 +4824,25 @@ jint os::init_2(void) { vm_page_size())); Solaris::libthread_init(); + if (UseNUMA) { - Solaris::liblgrp_init(); + if (!Solaris::liblgrp_init()) { + UseNUMA = false; + } else { + size_t lgrp_limit = os::numa_get_groups_num(); + int *lgrp_ids = NEW_C_HEAP_ARRAY(int, lgrp_limit); + size_t lgrp_num = os::numa_get_leaf_groups(lgrp_ids, lgrp_limit); + FREE_C_HEAP_ARRAY(int, lgrp_ids); + if (lgrp_num < 2) { + // There's only one locality group, disable NUMA. + UseNUMA = false; + } + } + if (!UseNUMA && ForceNUMA) { + UseNUMA = true; + } } + Solaris::misc_sym_init(); Solaris::signal_sets_init(); Solaris::init_signal_mem(); diff --git a/hotspot/src/os/solaris/vm/os_solaris.hpp b/hotspot/src/os/solaris/vm/os_solaris.hpp index cffe4ee80ac..8e322456d89 100644 --- a/hotspot/src/os/solaris/vm/os_solaris.hpp +++ b/hotspot/src/os/solaris/vm/os_solaris.hpp @@ -176,7 +176,7 @@ class Solaris { public: static void libthread_init(); static void synchronization_init(); - static void liblgrp_init(); + static bool liblgrp_init(); // Load miscellaneous symbols. static void misc_sym_init(); // This boolean allows users to forward their own non-matching signals diff --git a/hotspot/src/os/windows/vm/os_windows.cpp b/hotspot/src/os/windows/vm/os_windows.cpp index bc86280bd87..5de68d07ce7 100644 --- a/hotspot/src/os/windows/vm/os_windows.cpp +++ b/hotspot/src/os/windows/vm/os_windows.cpp @@ -3353,6 +3353,10 @@ jint os::init_2(void) { // initialize thread priority policy prio_init(); + if (UseNUMA && !ForceNUMA) { + UseNUMA = false; // Currently unsupported. + } + return JNI_OK; } diff --git a/hotspot/src/share/vm/gc_implementation/shared/mutableNUMASpace.cpp b/hotspot/src/share/vm/gc_implementation/shared/mutableNUMASpace.cpp index 697e00de0ab..0f38b70ee69 100644 --- a/hotspot/src/share/vm/gc_implementation/shared/mutableNUMASpace.cpp +++ b/hotspot/src/share/vm/gc_implementation/shared/mutableNUMASpace.cpp @@ -414,9 +414,20 @@ size_t MutableNUMASpace::adaptive_chunk_size(int i, size_t limit) { if (limit > 0) { limit = round_down(limit, page_size()); if (chunk_size > current_chunk_size(i)) { - chunk_size = MIN2((off_t)chunk_size, (off_t)current_chunk_size(i) + (off_t)limit); + size_t upper_bound = pages_available * page_size(); + if (upper_bound > limit && + current_chunk_size(i) < upper_bound - limit) { + // The resulting upper bound should not exceed the available + // amount of memory (pages_available * page_size()). + upper_bound = current_chunk_size(i) + limit; + } + chunk_size = MIN2(chunk_size, upper_bound); } else { - chunk_size = MAX2((off_t)chunk_size, (off_t)current_chunk_size(i) - (off_t)limit); + size_t lower_bound = page_size(); + if (current_chunk_size(i) > limit) { // lower_bound shouldn't underflow. + lower_bound = current_chunk_size(i) - limit; + } + chunk_size = MAX2(chunk_size, lower_bound); } } assert(chunk_size <= pages_available * page_size(), "Chunk size out of range"); diff --git a/hotspot/src/share/vm/runtime/globals.hpp b/hotspot/src/share/vm/runtime/globals.hpp index c4272a56aa9..5d08a653bd5 100644 --- a/hotspot/src/share/vm/runtime/globals.hpp +++ b/hotspot/src/share/vm/runtime/globals.hpp @@ -342,6 +342,9 @@ class CommandLineFlags { product(bool, UseNUMA, false, \ "Use NUMA if available") \ \ + product(bool, ForceNUMA, false, \ + "Force NUMA optimizations on single-node/UMA systems") \ + \ product(intx, NUMAChunkResizeWeight, 20, \ "Percentage (0-100) used to weight the current sample when " \ "computing exponentially decaying average for " \ From 3123299828eb739e5a4d87418d1cd81ef780094f Mon Sep 17 00:00:00 2001 From: Daniel Fuchs Date: Thu, 4 Dec 2008 17:58:10 +0100 Subject: [PATCH 045/110] 6319823: new mbean register/unregister notification for groups of mbeans 6779698: Merge error caused duplicate example code in MBeanServerNotification Reviewed-by: emcmanus --- .../management/MBeanServerNotification.java | 68 +++++++++++++++++-- 1 file changed, 61 insertions(+), 7 deletions(-) diff --git a/jdk/src/share/classes/javax/management/MBeanServerNotification.java b/jdk/src/share/classes/javax/management/MBeanServerNotification.java index d19c73a555a..e9fe12ad9d6 100644 --- a/jdk/src/share/classes/javax/management/MBeanServerNotification.java +++ b/jdk/src/share/classes/javax/management/MBeanServerNotification.java @@ -57,15 +57,55 @@ package javax.management; * what = "Unknown type " + n.getType(); * System.out.println("Received MBean Server notification: " + what + ": " + * mbsn.getMBeanName()); + * } * }; * * ... * mbeanServer.addNotificationListener( * MBeanServerDelegate.DELEGATE_NAME, printListener, null, null); * - * - *

The following code prints a message every time an MBean is registered - * or unregistered in the MBean Server {@code mbeanServer}:

+ *

+ * An MBean which is not an {@link MBeanServerDelegate} may also emit + * MBeanServerNotifications. In particular, a custom subclass of the + * {@link javax.management.namespace.JMXDomain JMXDomain} MBean or a custom + * subclass of the {@link javax.management.namespace.JMXNamespace JMXNamespace} + * MBean may emit an MBeanServerNotification for a group of MBeans.
+ * An MBeanServerNotification emitted to denote the registration or + * unregistration of a group of MBeans has the following characteristics: + *

  • Its {@linkplain Notification#getType() notification type} is + * {@code "JMX.mbean.registered.group"} or + * {@code "JMX.mbean.unregistered.group"}, which can also be written {@link + * MBeanServerNotification#REGISTRATION_NOTIFICATION}{@code + ".group"} or + * {@link + * MBeanServerNotification#UNREGISTRATION_NOTIFICATION}{@code + ".group"}. + *
  • + *
  • Its {@linkplain #getMBeanName() MBean name} is an ObjectName pattern + * that selects the set (or a superset) of the MBeans being registered + * or unregistered
  • + *
  • Its {@linkplain Notification#getUserData() user data} can optionally + * be set to an array of ObjectNames containing the names of all MBeans + * being registered or unregistered.
  • + *
+ *

+ *

+ * MBeans which emit these group registration/unregistration notifications will + * declare them in their {@link MBeanInfo#getNotifications() + * MBeanNotificationInfo}. + *

+ *

+ * To receive a group MBeanServerNotification, you need to register a listener + * with the MBean that emits it. For instance, assuming that the {@link + * javax.management.namespace.JMXNamespace JMXNamespace} MBean handling + * namespace {@code "foo"} has declared that it emits such a notification, + * you will need to register your notification listener with that MBean, which + * will be named {@link + * javax.management.namespace.JMXNamespaces#getNamespaceObjectName(java.lang.String) + * foo//:type=JMXNamespace}. + *

+ *

The following code prints a message every time a group of MBean is + * registered or unregistered in the namespace {@code "foo"}, assumimg its + * {@link javax.management.namespace.JMXNamespace handler} supports + * group MBeanServerNotifications:

* *
  * private static final NotificationListener printListener = new NotificationListener() {
@@ -76,19 +116,33 @@ package javax.management;
  *         }
  *         MBeanServerNotification mbsn = (MBeanServerNotification) n;
  *         String what;
- *         if (n.getType().equals(MBeanServerNotification.REGISTRATION_NOTIFICATION))
+ *         ObjectName[] names = null;
+ *         if (n.getType().equals(MBeanServerNotification.REGISTRATION_NOTIFICATION)) {
  *             what = "MBean registered";
- *         else if (n.getType().equals(MBeanServerNotification.UNREGISTRATION_NOTIFICATION))
+ *         } else if (n.getType().equals(MBeanServerNotification.UNREGISTRATION_NOTIFICATION)) {
  *             what = "MBean unregistered";
- *         else
+ *         } else if (n.getType().equals(MBeanServerNotification.REGISTRATION_NOTIFICATION+".group")) {
+ *             what = "Group of MBeans registered matching";
+ *             if (mbsn.getUserData() instanceof ObjectName[])
+ *                names =  (ObjectName[]) mbsn.getUserData();
+ *         } else if (n.getType().equals(MBeanServerNotification.UNREGISTRATION_NOTIFICATION+".group")) {
+ *             what = "Group of MBeans unregistered matching";
+ *             if (mbsn.getUserData() instanceof ObjectName[])
+ *                names = (ObjectName[]) mbsn.getUserData();
+ *         } else
  *             what = "Unknown type " + n.getType();
  *         System.out.println("Received MBean Server notification: " + what + ": " +
  *                 mbsn.getMBeanName());
+ *         if (names != null) {
+ *              for (ObjectName mb : names)
+ *                  System.out.println("\t"+mb);
+ *         }
+ *     }
  * };
  *
  * ...
  *     mbeanServer.addNotificationListener(
- *             MBeanServerDelegate.DELEGATE_NAME, printListener, null, null);
+ *             JMXNamespaces.getNamespaceObjectName("foo"), printListener, null, null);
  * 
* * @since 1.5 From 80de0f058a22e0cacad0dbda7a937725804aef26 Mon Sep 17 00:00:00 2001 From: Jennifer Godinez Date: Thu, 4 Dec 2008 10:05:36 -0800 Subject: [PATCH 046/110] 6587245: Import declaration not used in sun.print.* Reviewed-by: tdv, prr --- jdk/src/share/classes/javax/print/Doc.java | 2 -- jdk/src/share/classes/javax/print/DocFlavor.java | 1 - jdk/src/share/classes/javax/print/DocPrintJob.java | 1 - jdk/src/share/classes/javax/print/MultiDocPrintService.java | 5 ----- jdk/src/share/classes/javax/print/PrintServiceLookup.java | 1 - jdk/src/share/classes/javax/print/attribute/URISyntax.java | 1 - .../javax/print/event/PrintServiceAttributeEvent.java | 1 - jdk/src/share/classes/sun/print/PSPathGraphics.java | 1 - .../share/classes/sun/print/PrintJobAttributeException.java | 1 - jdk/src/share/classes/sun/print/SunMinMaxPage.java | 1 - jdk/src/share/classes/sun/print/SunPageSelection.java | 1 - 11 files changed, 16 deletions(-) diff --git a/jdk/src/share/classes/javax/print/Doc.java b/jdk/src/share/classes/javax/print/Doc.java index ef1bdb5550e..01fe4a064a2 100644 --- a/jdk/src/share/classes/javax/print/Doc.java +++ b/jdk/src/share/classes/javax/print/Doc.java @@ -28,9 +28,7 @@ package javax.print; import java.io.InputStream; import java.io.IOException; import java.io.Reader; -import java.io.UnsupportedEncodingException; -import javax.print.attribute.AttributeSet; import javax.print.attribute.DocAttributeSet; diff --git a/jdk/src/share/classes/javax/print/DocFlavor.java b/jdk/src/share/classes/javax/print/DocFlavor.java index bda24a70d80..e72970c9f45 100644 --- a/jdk/src/share/classes/javax/print/DocFlavor.java +++ b/jdk/src/share/classes/javax/print/DocFlavor.java @@ -30,7 +30,6 @@ import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.io.Serializable; -import java.util.Map; /** * Class DocFlavor encapsulates an object that specifies the diff --git a/jdk/src/share/classes/javax/print/DocPrintJob.java b/jdk/src/share/classes/javax/print/DocPrintJob.java index 57040658d61..671a51d6e19 100644 --- a/jdk/src/share/classes/javax/print/DocPrintJob.java +++ b/jdk/src/share/classes/javax/print/DocPrintJob.java @@ -25,7 +25,6 @@ package javax.print; -import javax.print.attribute.AttributeSet; import javax.print.attribute.PrintJobAttributeSet; import javax.print.attribute.PrintRequestAttributeSet; import javax.print.event.PrintJobAttributeListener; diff --git a/jdk/src/share/classes/javax/print/MultiDocPrintService.java b/jdk/src/share/classes/javax/print/MultiDocPrintService.java index 4c6e31c0876..e8262086991 100644 --- a/jdk/src/share/classes/javax/print/MultiDocPrintService.java +++ b/jdk/src/share/classes/javax/print/MultiDocPrintService.java @@ -25,11 +25,6 @@ package javax.print; -import java.util.Map; - -import javax.print.attribute.Attribute; -import javax.print.event.PrintServiceAttributeListener; - /** Interface MultiPrintService is the factory for a MultiDocPrintJob. * A MultiPrintService diff --git a/jdk/src/share/classes/javax/print/PrintServiceLookup.java b/jdk/src/share/classes/javax/print/PrintServiceLookup.java index 1a78eded166..33bc357beef 100644 --- a/jdk/src/share/classes/javax/print/PrintServiceLookup.java +++ b/jdk/src/share/classes/javax/print/PrintServiceLookup.java @@ -28,7 +28,6 @@ package javax.print; import java.util.ArrayList; import java.util.Iterator; -import java.util.List; import javax.print.attribute.AttributeSet; import sun.awt.AppContext; diff --git a/jdk/src/share/classes/javax/print/attribute/URISyntax.java b/jdk/src/share/classes/javax/print/attribute/URISyntax.java index e4bfa9de2f6..3ae7acc988e 100644 --- a/jdk/src/share/classes/javax/print/attribute/URISyntax.java +++ b/jdk/src/share/classes/javax/print/attribute/URISyntax.java @@ -28,7 +28,6 @@ package javax.print.attribute; import java.io.Serializable; import java.net.URI; -import java.net.URISyntaxException; /** * Class URISyntax is an abstract base class providing the common diff --git a/jdk/src/share/classes/javax/print/event/PrintServiceAttributeEvent.java b/jdk/src/share/classes/javax/print/event/PrintServiceAttributeEvent.java index 3ab488ffebd..d65d1376e83 100644 --- a/jdk/src/share/classes/javax/print/event/PrintServiceAttributeEvent.java +++ b/jdk/src/share/classes/javax/print/event/PrintServiceAttributeEvent.java @@ -25,7 +25,6 @@ package javax.print.event; -import java.util.List; import javax.print.PrintService; import javax.print.attribute.AttributeSetUtilities; import javax.print.attribute.PrintServiceAttributeSet; diff --git a/jdk/src/share/classes/sun/print/PSPathGraphics.java b/jdk/src/share/classes/sun/print/PSPathGraphics.java index 15bea939df4..3e7b057b83e 100644 --- a/jdk/src/share/classes/sun/print/PSPathGraphics.java +++ b/jdk/src/share/classes/sun/print/PSPathGraphics.java @@ -30,7 +30,6 @@ import java.awt.Font; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.Image; -import java.awt.Paint; import java.awt.Shape; import java.awt.Transparency; diff --git a/jdk/src/share/classes/sun/print/PrintJobAttributeException.java b/jdk/src/share/classes/sun/print/PrintJobAttributeException.java index 7a29690c4e3..52a939f86b9 100644 --- a/jdk/src/share/classes/sun/print/PrintJobAttributeException.java +++ b/jdk/src/share/classes/sun/print/PrintJobAttributeException.java @@ -25,7 +25,6 @@ package sun.print; -import javax.print.DocFlavor; import javax.print.AttributeException; import javax.print.PrintException; import javax.print.attribute.Attribute; diff --git a/jdk/src/share/classes/sun/print/SunMinMaxPage.java b/jdk/src/share/classes/sun/print/SunMinMaxPage.java index 19962c56eeb..0bd9acb2a73 100644 --- a/jdk/src/share/classes/sun/print/SunMinMaxPage.java +++ b/jdk/src/share/classes/sun/print/SunMinMaxPage.java @@ -25,7 +25,6 @@ package sun.print; -import javax.print.attribute.EnumSyntax; import javax.print.attribute.PrintRequestAttribute; /* diff --git a/jdk/src/share/classes/sun/print/SunPageSelection.java b/jdk/src/share/classes/sun/print/SunPageSelection.java index 2c2d82b8da9..f51f26e9233 100644 --- a/jdk/src/share/classes/sun/print/SunPageSelection.java +++ b/jdk/src/share/classes/sun/print/SunPageSelection.java @@ -26,7 +26,6 @@ package sun.print; import javax.print.attribute.PrintRequestAttribute; -import javax.print.attribute.standard.Media; /* * A class used to determine the range of pages to be printed. From 59ae4174f020d577c18ad17d9a369ee63bafa1ee Mon Sep 17 00:00:00 2001 From: Xiomara Jayasena Date: Thu, 4 Dec 2008 11:10:08 -0800 Subject: [PATCH 047/110] Added tag jdk7-b41 for changeset 9d3c7a336f93 --- .hgtags-top-repo | 1 + 1 file changed, 1 insertion(+) diff --git a/.hgtags-top-repo b/.hgtags-top-repo index 75e4e323fcb..db14d6be8bb 100644 --- a/.hgtags-top-repo +++ b/.hgtags-top-repo @@ -15,3 +15,4 @@ bb1ef4ee3d2c8cbf43a37d372325a7952be590b9 jdk7-b33 cc47a76899ed33a2c513cb688348244c9b5a1288 jdk7-b38 ab523b49de1fc73fefe6855ce1e0349bdbd7af29 jdk7-b39 44be42de6693063fb191989bf0e188de2fa51e7c jdk7-b40 +541bdc5ad32fc33255944d0a044ad992f3d915e8 jdk7-b41 From 03b38c0c8ddade03920ae1d30d240bf36b2528b7 Mon Sep 17 00:00:00 2001 From: Xiomara Jayasena Date: Thu, 4 Dec 2008 11:10:09 -0800 Subject: [PATCH 048/110] Added tag jdk7-b41 for changeset fc8a80d3e672 --- corba/.hgtags | 1 + 1 file changed, 1 insertion(+) diff --git a/corba/.hgtags b/corba/.hgtags index 73edf0f70c4..ef73173d9d2 100644 --- a/corba/.hgtags +++ b/corba/.hgtags @@ -15,3 +15,4 @@ ef6af34d75a7b44e77083f1d4ee47631fa09d3b4 jdk7-b31 08be802754b0296c91a7713b6d85a015dbcd5349 jdk7-b38 55078b6661e286e90387d1d9950bd865f5cc436e jdk7-b39 184e21992f47a8d730df1adc5b21a108f3125489 jdk7-b40 +c90eeda9594ed2983403e2049aed8d503126c62e jdk7-b41 From 868fd3b0439e9e039a9c6a1d9ef9a27c4bcdfbe4 Mon Sep 17 00:00:00 2001 From: Xiomara Jayasena Date: Thu, 4 Dec 2008 11:10:13 -0800 Subject: [PATCH 049/110] Added tag jdk7-b41 for changeset 49f1a8464e11 --- hotspot/.hgtags | 1 + 1 file changed, 1 insertion(+) diff --git a/hotspot/.hgtags b/hotspot/.hgtags index 89714434ad8..90191ff65d0 100644 --- a/hotspot/.hgtags +++ b/hotspot/.hgtags @@ -15,3 +15,4 @@ e91159f921a58af3698e6479ea1fc5818da66d09 jdk7-b36 d9bc824aa078573829bb66572af847e26e1bd12e jdk7-b38 49ca90d77f34571b0757ebfcb8a7848ef2696b88 jdk7-b39 81a0cbe3b28460ce836109934ece03db7afaf9cc jdk7-b40 +f9d938ede1960d18cb7cf23c645b026519c1a678 jdk7-b41 From 62267e3f0277200880a118dfc8071d9ea143c360 Mon Sep 17 00:00:00 2001 From: Xiomara Jayasena Date: Thu, 4 Dec 2008 11:10:17 -0800 Subject: [PATCH 050/110] Added tag jdk7-b41 for changeset ff9b7f94082a --- jaxp/.hgtags | 1 + 1 file changed, 1 insertion(+) diff --git a/jaxp/.hgtags b/jaxp/.hgtags index 45dc322f9f8..21d9f6758e4 100644 --- a/jaxp/.hgtags +++ b/jaxp/.hgtags @@ -15,3 +15,4 @@ af49591bc486d82aa04b832257de0d18adc9af52 jdk7-b37 e9f750f0a3a00413a7b77028b2ecdabb7129ae32 jdk7-b38 831b80be6cea8e7d7da197ccdac5fd4c701a5033 jdk7-b39 54946f466e2c047c44c903f1bec400b685c2508e jdk7-b40 +0758bd3e2852e4f931ba211cc4d48f589450eeb4 jdk7-b41 From 211621e750de68b378d948e9f0a6a270c24f1d0a Mon Sep 17 00:00:00 2001 From: Xiomara Jayasena Date: Thu, 4 Dec 2008 11:10:19 -0800 Subject: [PATCH 051/110] Added tag jdk7-b41 for changeset c2c85c9ad771 --- jaxws/.hgtags | 1 + 1 file changed, 1 insertion(+) diff --git a/jaxws/.hgtags b/jaxws/.hgtags index e6485b246c2..22c78532543 100644 --- a/jaxws/.hgtags +++ b/jaxws/.hgtags @@ -15,3 +15,4 @@ a2a6f9edf761934faf59ea60d7fe7178371302cd jdk7-b37 9ce439969184c753a9ba3caf8ed277b05230f2e5 jdk7-b38 077bc9b1b035a409a76bd5366f73ed9dd9846934 jdk7-b39 70a6ac6dd737fe45c2fadb57646195b2b4fe269d jdk7-b40 +a8379d24aa03386610169cb0f4e4b8ed266a2e8d jdk7-b41 From 606d3d6cd104a25c9902e96b892bed5ba120a38d Mon Sep 17 00:00:00 2001 From: Xiomara Jayasena Date: Thu, 4 Dec 2008 11:10:25 -0800 Subject: [PATCH 052/110] Added tag jdk7-b41 for changeset d255ae63f83c --- jdk/.hgtags | 1 + 1 file changed, 1 insertion(+) diff --git a/jdk/.hgtags b/jdk/.hgtags index 66dce59a9b2..37ed278825a 100644 --- a/jdk/.hgtags +++ b/jdk/.hgtags @@ -15,3 +15,4 @@ cf4894b78ceb966326e93bf221db0c2d14d59218 jdk7-b35 cc5f810b5af8a3a83b0df5a29d9e24d7a0ff8086 jdk7-b38 4e51997582effa006dde5c6d8b8820b2045b9c7f jdk7-b39 2201dad60231a3c3e0346e3a0250d69ca3b71fd4 jdk7-b40 +44941f893cea95ecdd5987b12e548069bd803849 jdk7-b41 From 5d3228cbb3b01bf36ff48ce6e5323334b573d46d Mon Sep 17 00:00:00 2001 From: Clemens Eisserer Date: Thu, 4 Dec 2008 11:21:26 -0800 Subject: [PATCH 053/110] 6708580: Java applications slow when EXA enabled Reviewed-by: prr, tdv --- jdk/make/sun/awt/mapfile-mawt-vers | 1 + jdk/make/sun/xawt/mapfile-vers | 1 + .../sun/java2d/x11/X11SurfaceData.java | 19 +++++++++++++++++-- .../native/sun/java2d/x11/X11SurfaceData.c | 17 +++++++++++++++++ 4 files changed, 36 insertions(+), 2 deletions(-) diff --git a/jdk/make/sun/awt/mapfile-mawt-vers b/jdk/make/sun/awt/mapfile-mawt-vers index ca3b430c57b..7eeef21f278 100644 --- a/jdk/make/sun/awt/mapfile-mawt-vers +++ b/jdk/make/sun/awt/mapfile-mawt-vers @@ -407,6 +407,7 @@ SUNWprivate_1.1 { Java_sun_java2d_x11_X11SurfaceData_initSurface; Java_sun_java2d_x11_X11SurfaceData_isDrawableValid; Java_sun_java2d_x11_X11SurfaceData_isDgaAvailable; + Java_sun_java2d_x11_X11SurfaceData_isShmPMAvailable; Java_sun_java2d_x11_X11SurfaceData_setInvalid; Java_sun_java2d_x11_X11SurfaceData_flushNativeSurface; Java_sun_java2d_x11_X11SurfaceData_XCreateGC; diff --git a/jdk/make/sun/xawt/mapfile-vers b/jdk/make/sun/xawt/mapfile-vers index 9e0b434b557..d4b5b6e32ba 100644 --- a/jdk/make/sun/xawt/mapfile-vers +++ b/jdk/make/sun/xawt/mapfile-vers @@ -337,6 +337,7 @@ SUNWprivate_1.1 { Java_sun_java2d_x11_X11SurfaceData_initIDs; Java_sun_java2d_x11_X11SurfaceData_isDrawableValid; Java_sun_java2d_x11_X11SurfaceData_isDgaAvailable; + Java_sun_java2d_x11_X11SurfaceData_isShmPMAvailable; Java_sun_java2d_x11_X11SurfaceData_initOps; Java_sun_java2d_x11_X11SurfaceData_initSurface; Java_sun_java2d_x11_X11SurfaceData_flushNativeSurface; diff --git a/jdk/src/solaris/classes/sun/java2d/x11/X11SurfaceData.java b/jdk/src/solaris/classes/sun/java2d/x11/X11SurfaceData.java index 986f1b51e20..54f79769343 100644 --- a/jdk/src/solaris/classes/sun/java2d/x11/X11SurfaceData.java +++ b/jdk/src/solaris/classes/sun/java2d/x11/X11SurfaceData.java @@ -50,6 +50,7 @@ import sun.awt.image.PixelConverter; import sun.font.X11TextRenderer; import sun.java2d.InvalidPipeException; import sun.java2d.SunGraphics2D; +import sun.java2d.SunGraphicsEnvironment; import sun.java2d.SurfaceData; import sun.java2d.SurfaceDataProxy; import sun.java2d.loops.SurfaceType; @@ -240,6 +241,11 @@ public abstract class X11SurfaceData extends SurfaceData { */ public static native boolean isDgaAvailable(); + /** + * Returns true if shared memory pixmaps are available + */ + private static native boolean isShmPMAvailable(); + public static boolean isAccelerationEnabled() { if (accelerationEnabled == null) { @@ -253,8 +259,17 @@ public abstract class X11SurfaceData extends SurfaceData { // true iff prop==true, false otherwise accelerationEnabled = Boolean.valueOf(prop); } else { - // use pixmaps if there is no dga, no matter local or remote - accelerationEnabled = Boolean.valueOf(!isDgaAvailable()); + boolean isDisplayLocal = false; + GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment(); + if (ge instanceof SunGraphicsEnvironment) { + isDisplayLocal = ((SunGraphicsEnvironment) ge).isDisplayLocal(); + } + + // EXA based drivers tend to place pixmaps in VRAM, slowing down readbacks. + // Don't use pixmaps if dga is available, + // or we are local and shared memory Pixmaps are not available. + accelerationEnabled = + !(isDgaAvailable() || (isDisplayLocal && !isShmPMAvailable())); } } } diff --git a/jdk/src/solaris/native/sun/java2d/x11/X11SurfaceData.c b/jdk/src/solaris/native/sun/java2d/x11/X11SurfaceData.c index 8b275bc91a8..8423f1eee04 100644 --- a/jdk/src/solaris/native/sun/java2d/x11/X11SurfaceData.c +++ b/jdk/src/solaris/native/sun/java2d/x11/X11SurfaceData.c @@ -208,6 +208,23 @@ Java_sun_java2d_x11_X11SurfaceData_isDgaAvailable(JNIEnv *env, jobject this) #endif /* HEADLESS */ } + +/* + * Class: sun_java2d_x11_X11SurfaceData + * Method: isShmPMAvailable + * Signature: ()Z + */ +JNIEXPORT jboolean JNICALL +Java_sun_java2d_x11_X11SurfaceData_isShmPMAvailable(JNIEnv *env, jobject this) +{ +#if defined(HEADLESS) || !defined(MITSHM) + return JNI_FALSE; +#else + return useMitShmPixmaps; +#endif /* HEADLESS, MITSHM */ +} + + /* * Class: sun_java2d_x11_X11SurfaceData * Method: initOps From eddda26255a72fb327c353661e84c068f810b999 Mon Sep 17 00:00:00 2001 From: Poonam Bajaj Date: Thu, 4 Dec 2008 17:29:56 -0800 Subject: [PATCH 054/110] 6739363: Xcheck jni doesn't check native function arguments Fix adds support for verifying arguments with -Xcheck:jni. Reviewed-by: coleenp --- hotspot/src/os/windows/vm/os_windows.cpp | 18 +++------ hotspot/src/share/vm/includeDB_core | 1 + hotspot/src/share/vm/includeDB_features | 2 + hotspot/src/share/vm/prims/jniCheck.cpp | 12 ------ hotspot/src/share/vm/prims/jniCheck.hpp | 13 ++++++ hotspot/src/share/vm/runtime/javaCalls.cpp | 40 +++++++++++++++---- hotspot/src/share/vm/runtime/javaCalls.hpp | 2 +- .../src/share/vm/runtime/sharedRuntime.cpp | 11 +++-- 8 files changed, 63 insertions(+), 36 deletions(-) diff --git a/hotspot/src/os/windows/vm/os_windows.cpp b/hotspot/src/os/windows/vm/os_windows.cpp index bc86280bd87..be46a68e87a 100644 --- a/hotspot/src/os/windows/vm/os_windows.cpp +++ b/hotspot/src/os/windows/vm/os_windows.cpp @@ -2217,15 +2217,10 @@ LONG WINAPI topLevelExceptionFilter(struct _EXCEPTION_POINTERS* exceptionInfo) { // We only expect null pointers in the stubs (vtable) // the rest are checked explicitly now. // - CodeBlob* cb = CodeCache::find_blob(pc); - if (cb != NULL) { - if (VtableStubs::stub_containing(pc) != NULL) { - if (((uintptr_t)addr) < os::vm_page_size() ) { - // an access to the first page of VM--assume it is a null pointer - return Handle_Exception(exceptionInfo, - SharedRuntime::continuation_for_implicit_exception(thread, pc, SharedRuntime::IMPLICIT_NULL)); - } - } + if (((uintptr_t)addr) < os::vm_page_size() ) { + // an access to the first page of VM--assume it is a null pointer + address stub = SharedRuntime::continuation_for_implicit_exception(thread, pc, SharedRuntime::IMPLICIT_NULL); + if (stub != NULL) return Handle_Exception(exceptionInfo, stub); } } } // in_java @@ -2241,9 +2236,8 @@ LONG WINAPI topLevelExceptionFilter(struct _EXCEPTION_POINTERS* exceptionInfo) { // Windows 98 reports faulting addresses incorrectly if (!MacroAssembler::needs_explicit_null_check((intptr_t)addr) || !os::win32::is_nt()) { - - return Handle_Exception(exceptionInfo, - SharedRuntime::continuation_for_implicit_exception(thread, pc, SharedRuntime::IMPLICIT_NULL)); + address stub = SharedRuntime::continuation_for_implicit_exception(thread, pc, SharedRuntime::IMPLICIT_NULL); + if (stub != NULL) return Handle_Exception(exceptionInfo, stub); } report_error(t, exception_code, pc, exceptionInfo->ExceptionRecord, exceptionInfo->ContextRecord); diff --git a/hotspot/src/share/vm/includeDB_core b/hotspot/src/share/vm/includeDB_core index 3b4dd2e38fe..169176dbd78 100644 --- a/hotspot/src/share/vm/includeDB_core +++ b/hotspot/src/share/vm/includeDB_core @@ -2303,6 +2303,7 @@ javaCalls.cpp handles.inline.hpp javaCalls.cpp interfaceSupport.hpp javaCalls.cpp interpreter.hpp javaCalls.cpp javaCalls.hpp +javaCalls.cpp jniCheck.hpp javaCalls.cpp linkResolver.hpp javaCalls.cpp mutexLocker.hpp javaCalls.cpp nmethod.hpp diff --git a/hotspot/src/share/vm/includeDB_features b/hotspot/src/share/vm/includeDB_features index ddf2389a453..d783a04e55b 100644 --- a/hotspot/src/share/vm/includeDB_features +++ b/hotspot/src/share/vm/includeDB_features @@ -115,6 +115,8 @@ heapInspection.cpp klassOop.hpp heapInspection.cpp os.hpp heapInspection.cpp resourceArea.hpp +javaCalls.cpp jniCheck.hpp + jniCheck.cpp fieldDescriptor.hpp jniCheck.cpp handles.hpp jniCheck.cpp instanceKlass.hpp diff --git a/hotspot/src/share/vm/prims/jniCheck.cpp b/hotspot/src/share/vm/prims/jniCheck.cpp index ed26eabe642..5a905843103 100644 --- a/hotspot/src/share/vm/prims/jniCheck.cpp +++ b/hotspot/src/share/vm/prims/jniCheck.cpp @@ -112,18 +112,6 @@ static const char * fatal_instance_field_mismatch = "Field type (instance) misma static const char * fatal_non_string = "JNI string operation received a non-string"; - -// Report a JNI failure caught by -Xcheck:jni. Perform a core dump. -// Note: two variations -- one to be called when in VM state (e.g. when -// within IN_VM macro), one to be called when in NATIVE state. - -// When in VM state: -static void ReportJNIFatalError(JavaThread* thr, const char *msg) { - tty->print_cr("FATAL ERROR in native method: %s", msg); - thr->print_stack(); - os::abort(true); -} - // When in VM state: static void ReportJNIWarning(JavaThread* thr, const char *msg) { tty->print_cr("WARNING in native method: %s", msg); diff --git a/hotspot/src/share/vm/prims/jniCheck.hpp b/hotspot/src/share/vm/prims/jniCheck.hpp index c682d0908b8..f78ace017bd 100644 --- a/hotspot/src/share/vm/prims/jniCheck.hpp +++ b/hotspot/src/share/vm/prims/jniCheck.hpp @@ -22,6 +22,19 @@ * */ +extern "C" { + // Report a JNI failure caught by -Xcheck:jni. Perform a core dump. + // Note: two variations -- one to be called when in VM state (e.g. when + // within IN_VM macro), one to be called when in NATIVE state. + + // When in VM state: + static void ReportJNIFatalError(JavaThread* thr, const char *msg) { + tty->print_cr("FATAL ERROR in native method: %s", msg); + thr->print_stack(); + os::abort(true); + } +} + // // Checked JNI routines that are useful for outside of checked JNI // diff --git a/hotspot/src/share/vm/runtime/javaCalls.cpp b/hotspot/src/share/vm/runtime/javaCalls.cpp index 444bc7f77c7..38ad6973feb 100644 --- a/hotspot/src/share/vm/runtime/javaCalls.cpp +++ b/hotspot/src/share/vm/runtime/javaCalls.cpp @@ -309,8 +309,12 @@ void JavaCalls::call_helper(JavaValue* result, methodHandle* m, JavaCallArgument CHECK_UNHANDLED_OOPS_ONLY(thread->clear_unhandled_oops();) - // Make sure that the arguments have the right type - debug_only(args->verify(method, result->get_type(), thread)); + // Verify the arguments + + if (CheckJNICalls) { + args->verify(method, result->get_type(), thread); + } + else debug_only(args->verify(method, result->get_type(), thread)); // Ignore call if method is empty if (method->is_empty_method()) { @@ -431,24 +435,26 @@ intptr_t* JavaCallArguments::parameters() { return TaggedStackInterpreter ? _parameters : _value; } -//-------------------------------------------------------------------------------------- -// Non-Product code -#ifndef PRODUCT class SignatureChekker : public SignatureIterator { private: bool *_is_oop; int _pos; BasicType _return_type; + intptr_t* _value; + Thread* _thread; public: bool _is_return; - SignatureChekker(symbolHandle signature, BasicType return_type, bool is_static, bool* is_oop) : SignatureIterator(signature) { + SignatureChekker(symbolHandle signature, BasicType return_type, bool is_static, bool* is_oop, intptr_t* value, Thread* thread) : SignatureIterator(signature) { _is_oop = is_oop; _is_return = false; _return_type = return_type; _pos = 0; + _value = value; + _thread = thread; + if (!is_static) { check_value(true); // Receiver must be an oop } @@ -489,6 +495,24 @@ class SignatureChekker : public SignatureIterator { check_return_type(t); return; } + + // verify handle and the oop pointed to by handle + int p = _pos; + bool bad = false; + // If argument is oop + if (_is_oop[p]) { + intptr_t v = _value[p]; + if (v != 0 ) { + size_t t = (size_t)v; + bad = (t < (size_t)os::vm_page_size() ) || !(*(oop*)v)->is_oop_or_null(true); + if (CheckJNICalls && bad) { + ReportJNIFatalError((JavaThread*)_thread, "Bad JNI oop argument"); + } + } + // for the regular debug case. + assert(!bad, "Bad JNI oop argument"); + } + check_value(true); } @@ -505,6 +529,7 @@ class SignatureChekker : public SignatureIterator { void do_array(int begin, int end) { check_obj(T_OBJECT); } }; + void JavaCallArguments::verify(methodHandle method, BasicType return_type, Thread *thread) { guarantee(method->size_of_parameters() == size_of_parameters(), "wrong no. of arguments pushed"); @@ -515,10 +540,9 @@ void JavaCallArguments::verify(methodHandle method, BasicType return_type, // Check that oop information is correct symbolHandle signature (thread, method->signature()); - SignatureChekker sc(signature, return_type, method->is_static(),_is_oop); + SignatureChekker sc(signature, return_type, method->is_static(),_is_oop, _value, thread); sc.iterate_parameters(); sc.check_doing_return(true); sc.iterate_returntype(); } -#endif // PRODUCT diff --git a/hotspot/src/share/vm/runtime/javaCalls.hpp b/hotspot/src/share/vm/runtime/javaCalls.hpp index 5923430a533..60648c64866 100644 --- a/hotspot/src/share/vm/runtime/javaCalls.hpp +++ b/hotspot/src/share/vm/runtime/javaCalls.hpp @@ -150,7 +150,7 @@ class JavaCallArguments : public StackObj { int size_of_parameters() const { return _size; } // Verify that pushed arguments fits a given method - void verify(methodHandle method, BasicType return_type, Thread *thread) PRODUCT_RETURN; + void verify(methodHandle method, BasicType return_type, Thread *thread); }; // All calls to Java have to go via JavaCalls. Sets up the stack frame diff --git a/hotspot/src/share/vm/runtime/sharedRuntime.cpp b/hotspot/src/share/vm/runtime/sharedRuntime.cpp index ff4fe2a4f8e..76067dc8ee1 100644 --- a/hotspot/src/share/vm/runtime/sharedRuntime.cpp +++ b/hotspot/src/share/vm/runtime/sharedRuntime.cpp @@ -556,7 +556,10 @@ address SharedRuntime::continuation_for_implicit_exception(JavaThread* thread, // the caller was at a call site, it's safe to destroy all // caller-saved registers, as these entry points do. VtableStub* vt_stub = VtableStubs::stub_containing(pc); - guarantee(vt_stub != NULL, "unable to find SEGVing vtable stub"); + + // If vt_stub is NULL, then return NULL to signal handler to report the SEGV error. + if (vt_stub == NULL) return NULL; + if (vt_stub->is_abstract_method_error(pc)) { assert(!vt_stub->is_vtable_stub(), "should never see AbstractMethodErrors from vtable-type VtableStubs"); return StubRoutines::throw_AbstractMethodError_entry(); @@ -565,7 +568,9 @@ address SharedRuntime::continuation_for_implicit_exception(JavaThread* thread, } } else { CodeBlob* cb = CodeCache::find_blob(pc); - guarantee(cb != NULL, "exception happened outside interpreter, nmethods and vtable stubs (1)"); + + // If code blob is NULL, then return NULL to signal handler to report the SEGV error. + if (cb == NULL) return NULL; // Exception happened in CodeCache. Must be either: // 1. Inline-cache check in C2I handler blob, @@ -574,7 +579,7 @@ address SharedRuntime::continuation_for_implicit_exception(JavaThread* thread, if (!cb->is_nmethod()) { guarantee(cb->is_adapter_blob(), - "exception happened outside interpreter, nmethods and vtable stubs (2)"); + "exception happened outside interpreter, nmethods and vtable stubs (1)"); // There is no handler here, so we will simply unwind. return StubRoutines::throw_NullPointerException_at_call_entry(); } From 745c0e32485e7f71f26a4372e8ca55f3b40789a6 Mon Sep 17 00:00:00 2001 From: Mandy Chung Date: Fri, 5 Dec 2008 10:28:15 -0800 Subject: [PATCH 055/110] 6764062: Revise usage of java.io.*.close Handle closing multiple open I/O streams in case close() throws IOException Reviewed-by: ksrini --- .../classes/com/sun/servicetag/Installer.java | 53 ++++++++++--------- .../com/sun/servicetag/SunConnection.java | 14 +++-- .../classes/com/sun/servicetag/Util.java | 13 +++-- .../servicetag/WindowsSystemEnvironment.java | 16 ++++-- 4 files changed, 58 insertions(+), 38 deletions(-) diff --git a/jdk/src/share/classes/com/sun/servicetag/Installer.java b/jdk/src/share/classes/com/sun/servicetag/Installer.java index 0cda7afe3d6..17555b913e9 100644 --- a/jdk/src/share/classes/com/sun/servicetag/Installer.java +++ b/jdk/src/share/classes/com/sun/servicetag/Installer.java @@ -475,7 +475,7 @@ public class Installer { String filename = "/com/sun/servicetag/resources/javase_" + version + "_swordfish.properties"; - InputStream in = Installer.class.getClass().getResourceAsStream(filename); + InputStream in = Installer.class.getResourceAsStream(filename); if (in == null) { return null; } @@ -813,7 +813,7 @@ public class Installer { locale, String.valueOf(version)).toString(); try { - in = Installer.class.getClass().getResourceAsStream(resource + ".html"); + in = Installer.class.getResourceAsStream(resource + ".html"); if (in == null) { // if the resource file is missing if (isVerbose()) { @@ -825,34 +825,39 @@ public class Installer { System.out.println("Generating " + f + " from " + resource + ".html"); } - br = new BufferedReader(new InputStreamReader(in, "UTF-8")); - pw = new PrintWriter(f, "UTF-8"); - String line = null; - while ((line = br.readLine()) != null) { - String output = line; - if (line.contains(JDK_VERSION_KEY)) { - output = line.replace(JDK_VERSION_KEY, jdkVersion); - } else if (line.contains(JDK_HEADER_PNG_KEY)) { - output = line.replace(JDK_HEADER_PNG_KEY, headerImageSrc); - } else if (line.contains(REGISTRATION_URL_KEY)) { - output = line.replace(REGISTRATION_URL_KEY, registerURL); - } else if (line.contains(REGISTRATION_PAYLOAD_KEY)) { - output = line.replace(REGISTRATION_PAYLOAD_KEY, payload.toString()); + try { + br = new BufferedReader(new InputStreamReader(in, "UTF-8")); + pw = new PrintWriter(f, "UTF-8"); + String line = null; + while ((line = br.readLine()) != null) { + String output = line; + if (line.contains(JDK_VERSION_KEY)) { + output = line.replace(JDK_VERSION_KEY, jdkVersion); + } else if (line.contains(JDK_HEADER_PNG_KEY)) { + output = line.replace(JDK_HEADER_PNG_KEY, headerImageSrc); + } else if (line.contains(REGISTRATION_URL_KEY)) { + output = line.replace(REGISTRATION_URL_KEY, registerURL); + } else if (line.contains(REGISTRATION_PAYLOAD_KEY)) { + output = line.replace(REGISTRATION_PAYLOAD_KEY, payload.toString()); + } + pw.println(output); + } + f.setReadOnly(); + pw.flush(); + } finally { + // It's safe for this finally block to have two close statements + // consecutively as PrintWriter.close doesn't throw IOException. + if (pw != null) { + pw.close(); + } + if (br!= null) { + br.close(); } - pw.println(output); } - f.setReadOnly(); - pw.flush(); } finally { - if (pw != null) { - pw.close(); - } if (in != null) { in.close(); } - if (br!= null) { - br.close(); - } } } } diff --git a/jdk/src/share/classes/com/sun/servicetag/SunConnection.java b/jdk/src/share/classes/com/sun/servicetag/SunConnection.java index 8bcddbe9714..b05657866a5 100644 --- a/jdk/src/share/classes/com/sun/servicetag/SunConnection.java +++ b/jdk/src/share/classes/com/sun/servicetag/SunConnection.java @@ -213,10 +213,16 @@ class SunConnection { con.setRequestProperty("Content-Type", "text/xml;charset=\"utf-8\""); con.connect(); - OutputStream out = con.getOutputStream(); - registration.storeToXML(out); - out.flush(); - out.close(); + OutputStream out = null; + try { + out = con.getOutputStream(); + registration.storeToXML(out); + out.flush(); + } finally { + if (out != null) { + out.close(); + } + } int returnCode = con.getResponseCode(); if (Util.isVerbose()) { diff --git a/jdk/src/share/classes/com/sun/servicetag/Util.java b/jdk/src/share/classes/com/sun/servicetag/Util.java index 9e32111a2fc..7d58d116e44 100644 --- a/jdk/src/share/classes/com/sun/servicetag/Util.java +++ b/jdk/src/share/classes/com/sun/servicetag/Util.java @@ -140,11 +140,14 @@ class Util { } return e.getMessage(); } finally { - if (r != null) { - r.close(); - } - if (err != null) { - err.close(); + try { + if (r != null) { + r.close(); + } + } finally { + if (err != null) { + err.close(); + } } } } diff --git a/jdk/src/share/classes/com/sun/servicetag/WindowsSystemEnvironment.java b/jdk/src/share/classes/com/sun/servicetag/WindowsSystemEnvironment.java index 1fff0ea7df7..aa9b83cdb6c 100644 --- a/jdk/src/share/classes/com/sun/servicetag/WindowsSystemEnvironment.java +++ b/jdk/src/share/classes/com/sun/servicetag/WindowsSystemEnvironment.java @@ -107,11 +107,17 @@ class WindowsSystemEnvironment extends SystemEnvironment { Process p = pb.start(); // need this for executing windows commands (at least // needed for executing wmic command) - BufferedWriter bw = new BufferedWriter( - new OutputStreamWriter(p.getOutputStream())); - bw.write(13); - bw.flush(); - bw.close(); + BufferedWriter bw = null; + try { + bw = new BufferedWriter( + new OutputStreamWriter(p.getOutputStream())); + bw.write(13); + bw.flush(); + } finally { + if (bw != null) { + bw.close(); + } + } p.waitFor(); if (p.exitValue() == 0) { From ee0229874300d86a03ecfc39da4714b386013455 Mon Sep 17 00:00:00 2001 From: Mandy Chung Date: Fri, 5 Dec 2008 10:30:29 -0800 Subject: [PATCH 056/110] 6750389: The cpuManufactorer does not correctly recognized for Solaris 10 Fix the correct SMBIOS type (4) to obtain CPU manufacturer Reviewed-by: ksrini --- .../classes/com/sun/servicetag/SolarisSystemEnvironment.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/jdk/src/share/classes/com/sun/servicetag/SolarisSystemEnvironment.java b/jdk/src/share/classes/com/sun/servicetag/SolarisSystemEnvironment.java index f9f10684fdd..877fe039349 100644 --- a/jdk/src/share/classes/com/sun/servicetag/SolarisSystemEnvironment.java +++ b/jdk/src/share/classes/com/sun/servicetag/SolarisSystemEnvironment.java @@ -62,8 +62,8 @@ class SolarisSystemEnvironment extends SystemEnvironment { return "Sun Microsystems, Inc"; } - // if we're here, then we'll try smbios (type 3) - return getSmbiosData("3", "Manufacturer: "); + // if we're here, then we'll try smbios (type 4) + return getSmbiosData("4", "Manufacturer: "); } /** From ec343fa4bc0483a6184a4ee79f74f77d5ae8b754 Mon Sep 17 00:00:00 2001 From: Erik Trimble Date: Fri, 5 Dec 2008 15:45:24 -0800 Subject: [PATCH 057/110] 6781742: Bump HS14 build number to 09 Update Hotspot 14 build number to b09 Reviewed-by: jcoomes --- hotspot/make/hotspot_version | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hotspot/make/hotspot_version b/hotspot/make/hotspot_version index fe716dd3731..a932f652954 100644 --- a/hotspot/make/hotspot_version +++ b/hotspot/make/hotspot_version @@ -35,7 +35,7 @@ HOTSPOT_VM_COPYRIGHT=Copyright 2008 HS_MAJOR_VER=14 HS_MINOR_VER=0 -HS_BUILD_NUMBER=08 +HS_BUILD_NUMBER=09 JDK_MAJOR_VER=1 JDK_MINOR_VER=7 From d90b02d794371b75d8127184ccac40feb2353a90 Mon Sep 17 00:00:00 2001 From: Kelly O'Hair Date: Fri, 5 Dec 2008 17:18:04 -0800 Subject: [PATCH 058/110] 6781784: Fix ant link in build readme Reviewed-by: michaelm --- README-builds.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README-builds.html b/README-builds.html index ce77a659f11..1f4a498958b 100644 --- a/README-builds.html +++ b/README-builds.html @@ -839,7 +839,7 @@
All OpenJDK builds require access to least Ant 1.6.5. The Ant tool is available from the - + Ant download site. You should always make sure ant is in your PATH, and on Windows you may also need to set From 2f8d598ab16b2fbc3910bfb4c8b5fc7593e69e5f Mon Sep 17 00:00:00 2001 From: Jennifer Godinez Date: Mon, 8 Dec 2008 10:23:53 -0800 Subject: [PATCH 059/110] 6665212: PrinterJob class, method lookupStreamPrintServices(), "fos" in docs is unknown Reviewed-by: tdv, prr --- jdk/src/share/classes/java/awt/print/PrinterJob.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/jdk/src/share/classes/java/awt/print/PrinterJob.java b/jdk/src/share/classes/java/awt/print/PrinterJob.java index 28e500db79d..f0ec3152bb3 100644 --- a/jdk/src/share/classes/java/awt/print/PrinterJob.java +++ b/jdk/src/share/classes/java/awt/print/PrinterJob.java @@ -117,15 +117,18 @@ public abstract class PrinterJob { * FileOutputStream outstream; * StreamPrintService psPrinter; * String psMimeType = "application/postscript"; + * PrinterJob pj = PrinterJob.getPrinterJob(); * * StreamPrintServiceFactory[] factories = * PrinterJob.lookupStreamPrintServices(psMimeType); * if (factories.length > 0) { * try { * outstream = new File("out.ps"); - * psPrinter = factories[0].getPrintService(fos); + * psPrinter = factories[0].getPrintService(outstream); * // psPrinter can now be set as the service on a PrinterJob - * } catch (FileNotFoundException e) { + * pj.setPrintService(psPrinter) + * } catch (Exception e) { + * e.printStackTrace(); * } * } * From c07de94ae310df04fdde2f7ee158e22bed411c5f Mon Sep 17 00:00:00 2001 From: Coleen Phillimore Date: Mon, 8 Dec 2008 15:50:55 -0500 Subject: [PATCH 060/110] 6773838: There is no calling stack for Compiler thread in hs_err file on x86 On solaris, the inline assembly wasn't being processed. Added volatile to il file fixed it. Reviewed-by: phh, kvn --- hotspot/src/os_cpu/solaris_x86/vm/os_solaris_x86.cpp | 4 ++-- hotspot/src/os_cpu/solaris_x86/vm/solaris_x86_32.il | 6 +++--- hotspot/src/os_cpu/solaris_x86/vm/solaris_x86_64.il | 6 +++--- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/hotspot/src/os_cpu/solaris_x86/vm/os_solaris_x86.cpp b/hotspot/src/os_cpu/solaris_x86/vm/os_solaris_x86.cpp index b21206dd227..011b671e850 100644 --- a/hotspot/src/os_cpu/solaris_x86/vm/os_solaris_x86.cpp +++ b/hotspot/src/os_cpu/solaris_x86/vm/os_solaris_x86.cpp @@ -203,10 +203,10 @@ frame os::get_sender_for_C_frame(frame* fr) { return frame(fr->sender_sp(), fr->link(), fr->sender_pc()); } -extern "C" intptr_t *_get_previous_fp(); // in .il file. +extern "C" intptr_t *_get_current_fp(); // in .il file frame os::current_frame() { - intptr_t* fp = _get_previous_fp(); + intptr_t* fp = _get_current_fp(); // it's inlined so want current fp frame myframe((intptr_t*)os::current_stack_pointer(), (intptr_t*)fp, CAST_FROM_FN_PTR(address, os::current_frame)); diff --git a/hotspot/src/os_cpu/solaris_x86/vm/solaris_x86_32.il b/hotspot/src/os_cpu/solaris_x86/vm/solaris_x86_32.il index 49ae97729fe..9e1d6ce8ed3 100644 --- a/hotspot/src/os_cpu/solaris_x86/vm/solaris_x86_32.il +++ b/hotspot/src/os_cpu/solaris_x86/vm/solaris_x86_32.il @@ -37,10 +37,10 @@ movl %gs:0, %eax .end - // Get callers fp - .inline _get_previous_fp,0 + // Get current fp + .inline _get_current_fp,0 + .volatile movl %ebp, %eax - movl %eax, %eax .end // Support for jint Atomic::add(jint inc, volatile jint* dest) diff --git a/hotspot/src/os_cpu/solaris_x86/vm/solaris_x86_64.il b/hotspot/src/os_cpu/solaris_x86/vm/solaris_x86_64.il index 89ed2c87b68..169bebc9984 100644 --- a/hotspot/src/os_cpu/solaris_x86/vm/solaris_x86_64.il +++ b/hotspot/src/os_cpu/solaris_x86/vm/solaris_x86_64.il @@ -30,10 +30,10 @@ movq %fs:0, %rax .end - // Get the frame pointer from previous frame. - .inline _get_previous_fp,0 + // Get the frame pointer from current frame. + .inline _get_current_fp,0 + .volatile movq %rbp, %rax - movq %rax, %rax .end // Support for jint Atomic::add(jint add_value, volatile jint* dest) From 463acdac66042d6bd15d268fc364b2e430836a38 Mon Sep 17 00:00:00 2001 From: Dmitri Trembovetski Date: Mon, 8 Dec 2008 17:04:22 -0800 Subject: [PATCH 061/110] 6772137: D3D: Dragging the scroll bar of a JScrollPane containing a JTree causes incorrect red Reviewed-by: campbell --- .../native/sun/java2d/d3d/D3DBadHardware.h | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/jdk/src/windows/native/sun/java2d/d3d/D3DBadHardware.h b/jdk/src/windows/native/sun/java2d/d3d/D3DBadHardware.h index 19b235e656e..20c9ad1e378 100644 --- a/jdk/src/windows/native/sun/java2d/d3d/D3DBadHardware.h +++ b/jdk/src/windows/native/sun/java2d/d3d/D3DBadHardware.h @@ -85,6 +85,10 @@ static const ADAPTER_INFO badHardware[] = { { 0x1002, 0x71C5, D_VERSION(6,14,10,6706), OS_WINXP }, { 0x1002, 0x71C5, D_VERSION(7,14,10,0567), OS_VISTA }, + // ATI Mobility Radeon 9700 + // Reason: workaround for 6773336 + { 0x1002, 0x4E50, D_VERSION(6,14,10,6561), OS_WINXP }, + // Nvidia FX 5200 // Reason: workaround for 6717988 { 0x10DE, 0x0322, D_VERSION(6,14,11,6921), OS_WINXP }, @@ -102,6 +106,32 @@ static const ADAPTER_INFO badHardware[] = { // Reason: workaround for 6653860 { 0x10DE, 0x00FD, D_VERSION(6,14,10,6573), OS_WINXP }, + // Nvidia Quadro FX family + // Reason: workaround for 6772137 + { 0x10DE, 0x00F8, D_VERSION(6,14,10,9381), OS_WINXP }, + { 0x10DE, 0x009D, D_VERSION(6,14,10,9381), OS_WINXP }, + { 0x10DE, 0x029C, D_VERSION(6,14,10,9381), OS_WINXP }, + { 0x10DE, 0x029D, D_VERSION(6,14,10,9381), OS_WINXP }, + { 0x10DE, 0x029E, D_VERSION(6,14,10,9381), OS_WINXP }, + { 0x10DE, 0x029F, D_VERSION(6,14,10,9381), OS_WINXP }, + { 0x10DE, 0x01DE, D_VERSION(6,14,10,9381), OS_WINXP }, + { 0x10DE, 0x039E, D_VERSION(6,14,10,9381), OS_WINXP }, + { 0x10DE, 0x019D, D_VERSION(6,14,10,9381), OS_WINXP }, + { 0x10DE, 0x019E, D_VERSION(6,14,10,9381), OS_WINXP }, + { 0x10DE, 0x040A, D_VERSION(6,14,10,9381), OS_WINXP }, + { 0x10DE, 0x040E, D_VERSION(6,14,10,9381), OS_WINXP }, + { 0x10DE, 0x040F, D_VERSION(6,14,10,9381), OS_WINXP }, + { 0x10DE, 0x061A, D_VERSION(6,14,10,9381), OS_WINXP }, + { 0x10DE, 0x06F9, D_VERSION(6,14,10,9381), OS_WINXP }, + { 0x10DE, 0x05FD, D_VERSION(6,14,10,9381), OS_WINXP }, + { 0x10DE, 0x05FE, D_VERSION(6,14,10,9381), OS_WINXP }, + { 0x10DE, 0x004E, D_VERSION(6,14,10,9381), OS_WINXP }, + { 0x10DE, 0x00CD, D_VERSION(6,14,10,9381), OS_WINXP }, + { 0x10DE, 0x00CE, D_VERSION(6,14,10,9381), OS_WINXP }, + { 0x10DE, 0x014C, D_VERSION(6,14,10,9381), OS_WINXP }, + { 0x10DE, 0x014D, D_VERSION(6,14,10,9381), OS_WINXP }, + { 0x10DE, 0x014E, D_VERSION(6,14,10,9381), OS_WINXP }, + // Nvidia GeForce 6200 TurboCache(TM) // Reason: workaround for 6588384 { 0x10DE, 0x0161, NO_VERSION, OS_VISTA }, From e50f766540eefd04aa43ae9e7d67e51f11acd6cd Mon Sep 17 00:00:00 2001 From: John R Rose Date: Mon, 8 Dec 2008 17:15:02 -0800 Subject: [PATCH 062/110] 6779339: turn off LinkWellKnownClasses by default pending further testing Temporarily turn off LinkWellKnownClasses optimization Reviewed-by: never, kvn --- hotspot/src/share/vm/classfile/classFileParser.cpp | 9 ++++++--- hotspot/src/share/vm/runtime/globals.hpp | 2 +- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/hotspot/src/share/vm/classfile/classFileParser.cpp b/hotspot/src/share/vm/classfile/classFileParser.cpp index 45d0147fa7d..703217f9255 100644 --- a/hotspot/src/share/vm/classfile/classFileParser.cpp +++ b/hotspot/src/share/vm/classfile/classFileParser.cpp @@ -581,7 +581,8 @@ objArrayHandle ClassFileParser::parse_interfaces(constantPoolHandle cp, interf = KlassHandle(THREAD, k); vmtimer->resume(); - cp->klass_at_put(interface_index, interf()); // eagerly resolve + if (LinkWellKnownClasses) // my super type is well known to me + cp->klass_at_put(interface_index, interf()); // eagerly resolve } if (!Klass::cast(interf())->is_interface()) { @@ -2699,7 +2700,8 @@ instanceKlassHandle ClassFileParser::parseClassFile(symbolHandle name, CHECK_(nullHandle)); KlassHandle kh (THREAD, k); super_klass = instanceKlassHandle(THREAD, kh()); - cp->klass_at_put(super_class_index, super_klass()); // eagerly resolve + if (LinkWellKnownClasses) // my super class is well known to me + cp->klass_at_put(super_class_index, super_klass()); // eagerly resolve } if (super_klass.not_null()) { if (super_klass->is_interface()) { @@ -3128,7 +3130,8 @@ instanceKlassHandle ClassFileParser::parseClassFile(symbolHandle name, this_klass->set_method_ordering(method_ordering()); this_klass->set_initial_method_idnum(methods->length()); this_klass->set_name(cp->klass_name_at(this_class_index)); - cp->klass_at_put(this_class_index, this_klass()); // eagerly resolve + if (LinkWellKnownClasses) // I am well known to myself + cp->klass_at_put(this_class_index, this_klass()); // eagerly resolve this_klass->set_protection_domain(protection_domain()); this_klass->set_fields_annotations(fields_annotations()); this_klass->set_methods_annotations(methods_annotations()); diff --git a/hotspot/src/share/vm/runtime/globals.hpp b/hotspot/src/share/vm/runtime/globals.hpp index c4272a56aa9..a6a48be196d 100644 --- a/hotspot/src/share/vm/runtime/globals.hpp +++ b/hotspot/src/share/vm/runtime/globals.hpp @@ -815,7 +815,7 @@ class CommandLineFlags { product(bool, ClassUnloading, true, \ "Do unloading of classes") \ \ - diagnostic(bool, LinkWellKnownClasses, true, \ + diagnostic(bool, LinkWellKnownClasses, false, \ "Resolve a well known class as soon as its name is seen") \ \ develop(bool, DisableStartThread, false, \ From 5588717cc48fdb82e2f6c23f4ff61d7553e5be51 Mon Sep 17 00:00:00 2001 From: Eamonn McManus Date: Tue, 9 Dec 2008 12:01:07 +0100 Subject: [PATCH 063/110] 6774918: @NotificationInfo is ineffective on MBeans that cannot send notifications Reviewed-by: jfdenise --- .../sun/jmx/mbeanserver/MBeanInjector.java | 4 + .../jmx/mbeanserver/MBeanIntrospector.java | 16 +- .../javax/management/NotificationInfo.java | 24 ++- .../AnnotatedNotificationInfoTest.java | 180 +++++++++++++++--- 4 files changed, 194 insertions(+), 30 deletions(-) diff --git a/jdk/src/share/classes/com/sun/jmx/mbeanserver/MBeanInjector.java b/jdk/src/share/classes/com/sun/jmx/mbeanserver/MBeanInjector.java index 8ef296a1a4c..4917d089e8d 100644 --- a/jdk/src/share/classes/com/sun/jmx/mbeanserver/MBeanInjector.java +++ b/jdk/src/share/classes/com/sun/jmx/mbeanserver/MBeanInjector.java @@ -47,6 +47,10 @@ import java.util.List; import javax.management.SendNotification; public class MBeanInjector { + // There are no instances of this class + private MBeanInjector() { + } + private static Class[] injectedClasses = { MBeanServer.class, ObjectName.class, SendNotification.class, }; diff --git a/jdk/src/share/classes/com/sun/jmx/mbeanserver/MBeanIntrospector.java b/jdk/src/share/classes/com/sun/jmx/mbeanserver/MBeanIntrospector.java index 3f2a9cc91a0..d1968b514ee 100644 --- a/jdk/src/share/classes/com/sun/jmx/mbeanserver/MBeanIntrospector.java +++ b/jdk/src/share/classes/com/sun/jmx/mbeanserver/MBeanIntrospector.java @@ -44,7 +44,6 @@ import javax.management.Descriptor; import javax.management.ImmutableDescriptor; import javax.management.IntrospectionException; import javax.management.InvalidAttributeValueException; -import javax.management.JMX; import javax.management.MBean; import javax.management.MBeanAttributeInfo; import javax.management.MBeanConstructorInfo; @@ -538,6 +537,14 @@ public abstract class MBeanIntrospector { } } + /* + * Return the array of MBeanNotificationInfo for the given MBean object. + * If the object implements NotificationBroadcaster and its + * getNotificationInfo() method returns a non-empty array, then that + * is the result. Otherwise, if the object has a @NotificationInfo + * or @NotificationInfos annotation, then its contents form the result. + * Otherwise, the result is null. + */ static MBeanNotificationInfo[] findNotifications(Object moi) { if (moi instanceof NotificationBroadcaster) { MBeanNotificationInfo[] mbn = @@ -553,6 +560,13 @@ public abstract class MBeanIntrospector { } return result; } + } else { + try { + if (!MBeanInjector.injectsSendNotification(moi)) + return null; + } catch (NotCompliantMBeanException e) { + throw new RuntimeException(e); + } } return findNotificationsFromAnnotations(moi.getClass()); } diff --git a/jdk/src/share/classes/javax/management/NotificationInfo.java b/jdk/src/share/classes/javax/management/NotificationInfo.java index 29712c5b2d3..a5c2f46ac03 100644 --- a/jdk/src/share/classes/javax/management/NotificationInfo.java +++ b/jdk/src/share/classes/javax/management/NotificationInfo.java @@ -44,7 +44,13 @@ import java.lang.annotation.Target; * "com.example.notifs.destroy"}) * public interface CacheMBean {...} * - * public class Cache implements CacheMBean {...} + * public class Cache + * extends NotificationBroadcasterSupport implements CacheMBean { + * public Cache() { + * super(); // do not supply any MBeanNotificationInfo[] + * } + * ... + * } * * *
@@ -52,7 +58,11 @@ import java.lang.annotation.Target;
  * {@link MBean @MBean}
  * {@code @NotificationInfo}(types={"com.example.notifs.create",
  *                          "com.example.notifs.destroy"})
- * public class Cache {...}
+ * public class Cache {
+ *     {@code @Resource}
+ *     private volatile SendNotification sendNotification;
+ *     ...
+ * }
  * 
* *

Each {@code @NotificationInfo} produces an {@link @@ -64,6 +74,13 @@ import java.lang.annotation.Target; * several {@code @NotificationInfo} annotations into a containing * {@link NotificationInfos @NotificationInfos} annotation. * + *

The {@code @NotificationInfo} and {@code @NotificationInfos} annotations + * are ignored on an MBean that is not a {@linkplain JMX#isNotificationSource + * notification source} or that implements {@link NotificationBroadcaster} and + * returns a non-empty array from its {@link + * NotificationBroadcaster#getNotificationInfo() getNotificationInfo()} + * method.

+ * *

The {@code NotificationInfo} and {@code NotificationInfos} * annotations can be applied to the MBean implementation class, or to * any parent class or interface. These annotations on a class take @@ -71,7 +88,8 @@ import java.lang.annotation.Target; * If an MBean does not have these annotations on its class or any * superclass, then superinterfaces are examined. It is an error for * more than one superinterface to have these annotations, unless one - * of them is a child of all the others.

+ * of them is a descendant of all the others; registering such an erroneous + * MBean will cause a {@link NotCompliantMBeanException}.

*/ @Documented @Inherited diff --git a/jdk/test/javax/management/Introspector/AnnotatedNotificationInfoTest.java b/jdk/test/javax/management/Introspector/AnnotatedNotificationInfoTest.java index a995ee59b60..aa9b34b3cdb 100644 --- a/jdk/test/javax/management/Introspector/AnnotatedNotificationInfoTest.java +++ b/jdk/test/javax/management/Introspector/AnnotatedNotificationInfoTest.java @@ -38,19 +38,34 @@ import javax.management.AttributeChangeNotification; import javax.management.Description; import javax.management.Descriptor; import javax.management.ImmutableDescriptor; +import javax.management.ListenerNotFoundException; import javax.management.MBean; import javax.management.MBeanInfo; import javax.management.MBeanNotificationInfo; import javax.management.MBeanServer; import javax.management.MXBean; +import javax.management.Notification; +import javax.management.NotificationBroadcaster; import javax.management.NotificationBroadcasterSupport; +import javax.management.NotificationFilter; import javax.management.NotificationInfo; import javax.management.NotificationInfos; +import javax.management.NotificationListener; import javax.management.ObjectName; import javax.management.SendNotification; public class AnnotatedNotificationInfoTest { - // Data for the first test. This tests that MBeanNotificationInfo + + static final Descriptor expectedDescriptor = new ImmutableDescriptor( + "foo=bar", "descriptionResourceBundleBaseName=bundle", + "descriptionResourceKey=key"); + static final MBeanNotificationInfo expected = new MBeanNotificationInfo( + new String[] {"foo", "bar"}, + AttributeChangeNotification.class.getName(), + "description", + expectedDescriptor); + + // Data for the first kind of test. This tests that MBeanNotificationInfo // is correctly derived from @NotificationInfo. // Every static field called mbean* is expected to be an MBean // with a single MBeanNotificationInfo that has the same value @@ -254,11 +269,48 @@ public class AnnotatedNotificationInfoTest { private static Object mbeanMXBean2 = new MXBean2(); - // Classes for the second test. This tests the simplest case, which is - // the first example in the javadoc for @NotificationInfo. Notice that - // this MBean is not a NotificationBroadcaster and does not inject a - // SendNotification! That should possibly be an error, but it's currently - // allowed by the spec. + // Test that @NotificationInfo and @NotificationInfos are ignored if + // the MBean returns a non-empty MBeanNotificationInfo[] from its + // NotificationBroadcaster.getNotifications() implementation. + + @NotificationInfo(types={"blim", "blam"}) + public static interface Explicit1MBean {} + + public static class Explicit1 + extends NotificationBroadcasterSupport implements Explicit1MBean { + public Explicit1() { + super(expected); + } + } + + private static Object mbeanExplicit1 = new Explicit1(); + + @NotificationInfos( + { + @NotificationInfo(types="blim"), @NotificationInfo(types="blam") + } + ) + public static interface Explicit2MXBean {} + + public static class Explicit2 + implements NotificationBroadcaster, Explicit2MXBean { + public void addNotificationListener(NotificationListener listener, + NotificationFilter filter, Object handback) {} + + public void removeNotificationListener(NotificationListener listener) + throws ListenerNotFoundException {} + + public MBeanNotificationInfo[] getNotificationInfo() { + return new MBeanNotificationInfo[] {expected}; + } + } + + // Data for the second kind of test. This tests that @NotificationInfo is + // ignored if the MBean is not a notification source. Every static + // field called ignoredMBean* is expected to be an MBean on which + // isInstanceOf(NotificationBroadcaster.class.getName() is false, + // addNotificationListener produces an exception, and the + // MBeanNotificationInfo array is empty. @NotificationInfo(types={"com.example.notifs.create", "com.example.notifs.destroy"}) public static interface CacheMBean { @@ -271,6 +323,73 @@ public class AnnotatedNotificationInfoTest { } } + private static Object ignoredMBean1 = new Cache(); + + @NotificationInfos( + @NotificationInfo(types={"foo", "bar"}) + ) + public static interface Cache2MBean { + public int getCachedNum(); + } + + public static class Cache2 implements Cache2MBean { + public int getCachedNum() { + return 0; + } + } + + private static Object ignoredMBean2 = new Cache2(); + + private static final NotificationListener nullListener = + new NotificationListener() { + public void handleNotification( + Notification notification, Object handback) {} + }; + + // Test that inheriting inconsistent @NotificationInfo annotations is + // an error, but not if they are overridden by a non-empty getNotifications() + + @NotificationInfo(types={"blim"}) + public static interface Inconsistent1 {} + + @NotificationInfo(types={"blam"}) + public static interface Inconsistent2 {} + + public static interface InconsistentMBean extends Inconsistent1, Inconsistent2 {} + + public static class Inconsistent + extends NotificationBroadcasterSupport implements InconsistentMBean {} + + public static class Consistent + extends Inconsistent implements NotificationBroadcaster { + public void addNotificationListener(NotificationListener listener, + NotificationFilter filter, Object handback) {} + + public void removeNotificationListener(NotificationListener listener) + throws ListenerNotFoundException {} + + public MBeanNotificationInfo[] getNotificationInfo() { + return new MBeanNotificationInfo[] {expected}; + } + } + + private static Object mbeanConsistent = new Consistent(); + + @NotificationInfo( + types = {"foo", "bar"}, + notificationClass = AttributeChangeNotification.class, + description = @Description( + value = "description", + bundleBaseName = "bundle", + key = "key"), + descriptorFields = {"foo=bar"}) + public static interface Consistent2MBean extends Inconsistent1, Inconsistent2 {} + + public static class Consistent2 + extends NotificationBroadcasterSupport implements Consistent2MBean {} + + private static Object mbeanConsistent2 = new Consistent2(); + public static void main(String[] args) throws Exception { if (!AnnotatedNotificationInfoTest.class.desiredAssertionStatus()) throw new Exception("Test must be run with -ea"); @@ -278,37 +397,46 @@ public class AnnotatedNotificationInfoTest { MBeanServer mbs = ManagementFactory.getPlatformMBeanServer(); ObjectName on = new ObjectName("a:b=c"); - Descriptor expectedDescriptor = new ImmutableDescriptor( - "foo=bar", "descriptionResourceBundleBaseName=bundle", - "descriptionResourceKey=key"); - MBeanNotificationInfo expected = new MBeanNotificationInfo( - new String[] {"foo", "bar"}, - AttributeChangeNotification.class.getName(), - "description", - expectedDescriptor); - System.out.println("Testing MBeans..."); for (Field mbeanField : AnnotatedNotificationInfoTest.class.getDeclaredFields()) { - if (!mbeanField.getName().startsWith("mbean")) + boolean notifier; + if (mbeanField.getName().startsWith("mbean")) + notifier = true; + else if (mbeanField.getName().startsWith("ignoredMBean")) + notifier = false; + else continue; System.out.println("..." + mbeanField.getName()); Object mbean = mbeanField.get(null); mbs.registerMBean(mbean, on); MBeanInfo mbi = mbs.getMBeanInfo(on); MBeanNotificationInfo[] mbnis = mbi.getNotifications(); - assert mbnis.length == 1 : mbnis.length; - assert mbnis[0].equals(expected) : mbnis[0]; + if (notifier) { + assert mbnis.length == 1 : mbnis.length; + assert mbnis[0].equals(expected) : mbnis[0]; + } else { + assert mbnis.length == 0 : mbnis.length; + assert !mbs.isInstanceOf(on, NotificationBroadcaster.class.getName()); + try { + mbs.addNotificationListener(on, nullListener, null, null); + assert false : "addNotificationListener works"; + } catch (Exception e) { + // OK: addNL correctly refused + } + } mbs.unregisterMBean(on); } - mbs.registerMBean(new Cache(), on); - MBeanInfo mbi = mbs.getMBeanInfo(on); - MBeanNotificationInfo[] mbnis = mbi.getNotifications(); - assert mbnis.length == 1 : mbnis.length; - String[] types = mbnis[0].getNotifTypes(); - String[] expectedTypes = - CacheMBean.class.getAnnotation(NotificationInfo.class).types(); - assert Arrays.equals(types, expectedTypes) : Arrays.toString(types); + // Test that inconsistent @NotificationInfo annotations produce an + // error. + try { + mbs.registerMBean(new Inconsistent(), on); + System.out.println(mbs.getMBeanInfo(on)); + assert false : "Inconsistent @NotificationInfo not detected"; + } catch (Exception e) { + System.out.println( + "Inconsistent @NotificationInfo correctly produced " + e); + } } } From 049436370fd35ebb2b294c37b5d28cc005ff456b Mon Sep 17 00:00:00 2001 From: Jean-Francois Denise Date: Tue, 9 Dec 2008 14:44:42 +0100 Subject: [PATCH 064/110] 6501362: DescriptorSupport(String) could recognize "name=value" as well as XML format Reviewed-by: emcmanus --- .../modelmbean/DescriptorSupport.java | 50 +++++++++++++------ .../descriptor/DescriptorConstructorTest.java | 46 +++++++++++++++++ 2 files changed, 82 insertions(+), 14 deletions(-) create mode 100644 jdk/test/javax/management/descriptor/DescriptorConstructorTest.java diff --git a/jdk/src/share/classes/javax/management/modelmbean/DescriptorSupport.java b/jdk/src/share/classes/javax/management/modelmbean/DescriptorSupport.java index ee8e3030e54..aa364c226dd 100644 --- a/jdk/src/share/classes/javax/management/modelmbean/DescriptorSupport.java +++ b/jdk/src/share/classes/javax/management/modelmbean/DescriptorSupport.java @@ -229,9 +229,10 @@ public class DescriptorSupport init(inDescr.descriptorMap); } - /** - *

Descriptor constructor taking an XML String.

+ *

Descriptor constructor taking an XML String or a + * fieldName=fieldValue format String. The String parameter is + * parsed as XML if it begins with a '<' character.

* *

The format of the XML string is not defined, but an * implementation must ensure that the string returned by @@ -244,17 +245,20 @@ public class DescriptorSupport * programmer will have to reset or convert these fields * correctly.

* - * @param inStr An XML-formatted string used to populate this - * Descriptor. The format is not defined, but any + * @param inStr An XML-format or a fieldName=fieldValue formatted string + * used to populate this Descriptor. The XML format is not defined, but any * implementation must ensure that the string returned by * method {@link #toXMLString toXMLString} on an existing * descriptor can be used to instantiate an equivalent * descriptor when instantiated using this constructor. * - * @exception RuntimeOperationsException If the String inStr - * passed in parameter is null + * @exception RuntimeOperationsException If the String inStr passed in + * parameter is null or, when it is not an XML string, if the field name or + * field value is illegal. If inStr is not an XML string then it must + * contain an "=". "fieldValue", "fieldName", and "fieldValue" are illegal. + * FieldName cannot be empty. "fieldName=" will cause the value to be empty. * @exception XMLParseException XML parsing problem while parsing - * the input String + * the XML-format input String * @exception MBeanException Wraps a distributed communication Exception. */ /* At some stage we should rewrite this code to be cleverer. Using @@ -283,14 +287,27 @@ public class DescriptorSupport throw new RuntimeOperationsException(iae, msg); } + // parse parameter string into structures + + init(null); + + if(!inStr.startsWith("<")) { + parseNamesValues(inStr); + if (MODELMBEAN_LOGGER.isLoggable(Level.FINEST)) { + MODELMBEAN_LOGGER.logp(Level.FINEST, + DescriptorSupport.class.getName(), + "Descriptor(name=value)", "Exit"); + } + return; + } + final String lowerInStr = inStr.toLowerCase(); if (!lowerInStr.startsWith("") || !lowerInStr.endsWith("")) { throw new XMLParseException("No , pair"); } - // parse xmlstring into structures - init(null); + // create dummy descriptor: should have same size // as number of fields in xmlstring // loop through structures and put them in descriptor @@ -454,6 +471,16 @@ public class DescriptorSupport init(null); + parseNamesValues(fields); + + if (MODELMBEAN_LOGGER.isLoggable(Level.FINEST)) { + MODELMBEAN_LOGGER.logp(Level.FINEST, + DescriptorSupport.class.getName(), + "Descriptor(String... fields)", "Exit"); + } + } + + private void parseNamesValues(String... fields) { for (int i=0; i < fields.length; i++) { if ((fields[i] == null) || (fields[i].equals(""))) { continue; @@ -495,11 +522,6 @@ public class DescriptorSupport setField(fieldName,fieldValue); } - if (MODELMBEAN_LOGGER.isLoggable(Level.FINEST)) { - MODELMBEAN_LOGGER.logp(Level.FINEST, - DescriptorSupport.class.getName(), - "Descriptor(String... fields)", "Exit"); - } } private void init(Map initMap) { diff --git a/jdk/test/javax/management/descriptor/DescriptorConstructorTest.java b/jdk/test/javax/management/descriptor/DescriptorConstructorTest.java new file mode 100644 index 00000000000..0906cead4a5 --- /dev/null +++ b/jdk/test/javax/management/descriptor/DescriptorConstructorTest.java @@ -0,0 +1,46 @@ +/* + * Copyright 2004-2005 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. + * + * 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. + */ + +/* + * @test + * @bug 6501362 + * @summary DescriptorSupport(String) could recognize "name=value" as well as XML format + * @author Jean-Francois Denise + * @run clean DescriptorConstructorTest + * @run build DescriptorConstructorTest + * @run main DescriptorConstructorTest + */ + +import javax.management.modelmbean.DescriptorSupport; + +public class DescriptorConstructorTest { + public static void main(String[] args) throws Exception { + DescriptorSupport d1 = new DescriptorSupport("MyName1=MyValue1"); + if(!d1.getFieldValue("MyName1").equals("MyValue1")) + throw new Exception("Invalid parsing"); + DescriptorSupport d2 = new DescriptorSupport("" + + ""); + if(!d2.getFieldValue("MyName2").equals("MyValue2")) + throw new Exception("Invalid parsing"); + } +} From 04950cd8463f130e211e26ddd573ce9d11565263 Mon Sep 17 00:00:00 2001 From: Jean-Francois Denise Date: Tue, 9 Dec 2008 15:36:14 +0100 Subject: [PATCH 065/110] 6250014: MBeanOperationInfo Descriptor field for exceptions Reviewed-by: emcmanus --- .../sun/jmx/mbeanserver/ConvertingMethod.java | 2 +- .../com/sun/jmx/mbeanserver/Introspector.java | 41 ++- .../jmx/mbeanserver/MBeanIntrospector.java | 2 +- .../jmx/mbeanserver/MXBeanIntrospector.java | 2 +- .../classes/javax/management/Descriptor.java | 15 ++ .../share/classes/javax/management/JMX.java | 12 + .../javax/management/MBeanAttributeInfo.java | 6 +- .../management/MBeanConstructorInfo.java | 2 +- .../javax/management/MBeanOperationInfo.java | 2 +- .../ExceptionsDescriptorTest.java | 245 ++++++++++++++++++ 10 files changed, 320 insertions(+), 9 deletions(-) create mode 100644 jdk/test/javax/management/Introspector/ExceptionsDescriptorTest.java diff --git a/jdk/src/share/classes/com/sun/jmx/mbeanserver/ConvertingMethod.java b/jdk/src/share/classes/com/sun/jmx/mbeanserver/ConvertingMethod.java index 1f802ca76d0..62239b5a984 100644 --- a/jdk/src/share/classes/com/sun/jmx/mbeanserver/ConvertingMethod.java +++ b/jdk/src/share/classes/com/sun/jmx/mbeanserver/ConvertingMethod.java @@ -53,7 +53,7 @@ final class ConvertingMethod { } Descriptor getDescriptor() { - return Introspector.descriptorForElement(method); + return Introspector.descriptorForElement(method, false); } Type getGenericReturnType() { diff --git a/jdk/src/share/classes/com/sun/jmx/mbeanserver/Introspector.java b/jdk/src/share/classes/com/sun/jmx/mbeanserver/Introspector.java index da4209cd2b3..dbf45b9997a 100644 --- a/jdk/src/share/classes/com/sun/jmx/mbeanserver/Introspector.java +++ b/jdk/src/share/classes/com/sun/jmx/mbeanserver/Introspector.java @@ -63,7 +63,10 @@ import java.beans.BeanInfo; import java.beans.PropertyDescriptor; import java.lang.reflect.Array; import java.lang.reflect.InvocationTargetException; +import java.util.LinkedHashSet; +import java.util.Set; import javax.management.AttributeNotFoundException; +import javax.management.JMX; import javax.management.openmbean.CompositeData; import javax.management.openmbean.MXBeanMappingFactory; @@ -462,11 +465,31 @@ public class Introspector { return null; } - public static Descriptor descriptorForElement(final AnnotatedElement elmt) { + public static Descriptor descriptorForElement(final AnnotatedElement elmt, + boolean isSetter) { if (elmt == null) return ImmutableDescriptor.EMPTY_DESCRIPTOR; final Annotation[] annots = elmt.getAnnotations(); - return descriptorForAnnotations(annots); + Descriptor descr = descriptorForAnnotations(annots); + String[] exceptions = {}; + if(elmt instanceof Method) + exceptions = getAllExceptions(((Method) elmt).getExceptionTypes()); + else + if(elmt instanceof Constructor) + exceptions = getAllExceptions(((Constructor) elmt). + getExceptionTypes()); + + if(exceptions.length > 0 ) { + String fieldName = isSetter ? JMX.SET_EXCEPTIONS_FIELD : + JMX.EXCEPTIONS_FIELD; + + String[] fieldNames = {fieldName}; + Object[] fieldValues = {exceptions}; + descr = ImmutableDescriptor.union(descr, + new ImmutableDescriptor(fieldNames, fieldValues)); + } + + return descr; } public static Descriptor descriptorForAnnotation(Annotation annot) { @@ -489,6 +512,20 @@ public class Introspector { return new ImmutableDescriptor(descriptorMap); } + /** + * Array of thrown excepions. + * @param exceptions can be null; + * @return An Array of Exception class names. Size is 0 if method is null. + */ + private static String[] getAllExceptions(Class[] exceptions) { + Set set = new LinkedHashSet(); + for(Classex : exceptions) + set.add(ex.getName()); + + String[] arr = new String[set.size()]; + return set.toArray(arr); + } + private static void addDescriptorFieldsToMap( Map descriptorMap, DescriptorFields df) { for (String field : df.value()) { diff --git a/jdk/src/share/classes/com/sun/jmx/mbeanserver/MBeanIntrospector.java b/jdk/src/share/classes/com/sun/jmx/mbeanserver/MBeanIntrospector.java index d1968b514ee..50ce702e871 100644 --- a/jdk/src/share/classes/com/sun/jmx/mbeanserver/MBeanIntrospector.java +++ b/jdk/src/share/classes/com/sun/jmx/mbeanserver/MBeanIntrospector.java @@ -403,7 +403,7 @@ public abstract class MBeanIntrospector { new ImmutableDescriptor(interfaceClassName); final Descriptor mbeanDescriptor = getBasicMBeanDescriptor(); final Descriptor annotatedDescriptor = - Introspector.descriptorForElement(mbeanInterface); + Introspector.descriptorForElement(mbeanInterface, false); final Descriptor descriptor = DescriptorCache.getInstance().union( classNameDescriptor, diff --git a/jdk/src/share/classes/com/sun/jmx/mbeanserver/MXBeanIntrospector.java b/jdk/src/share/classes/com/sun/jmx/mbeanserver/MXBeanIntrospector.java index af5420c38f3..fb9b3ccb093 100644 --- a/jdk/src/share/classes/com/sun/jmx/mbeanserver/MXBeanIntrospector.java +++ b/jdk/src/share/classes/com/sun/jmx/mbeanserver/MXBeanIntrospector.java @@ -292,7 +292,7 @@ class MXBeanIntrospector extends MBeanIntrospector { Descriptor descriptor = typeDescriptor(returnType, originalReturnType); descriptor = ImmutableDescriptor.union(descriptor, - Introspector.descriptorForElement(method)); + Introspector.descriptorForElement(method, false)); final MBeanOperationInfo oi; if (openReturnType && openParameterTypes) { /* If the return value and all the parameters can be faithfully diff --git a/jdk/src/share/classes/javax/management/Descriptor.java b/jdk/src/share/classes/javax/management/Descriptor.java index b9c98f4068b..a9161903c64 100644 --- a/jdk/src/share/classes/javax/management/Descriptor.java +++ b/jdk/src/share/classes/javax/management/Descriptor.java @@ -147,6 +147,14 @@ import javax.management.openmbean.OpenType; * might be disabled if it cannot currently be emitted but could be in * other circumstances. * + * exceptionsString[] + * MBeanAttributeInfo, MBeanConstructorInfo, MBeanOperationInfo + * + * The class names of the exceptions that can be thrown when invoking a + * constructor or operation, or getting an attribute. Exceptions thrown when + * setting an attribute are specified by the field + * {@code setExceptions}. + * * immutableInfoString * MBeanInfo * @@ -270,6 +278,13 @@ import javax.management.openmbean.OpenType; * href="MXBean.html#type-names">Type Names of the MXBean * specification.

* + * setExceptionsString[] + * MBeanAttributeInfo + * + * The class names of the exceptions that can be thrown when setting + * an attribute. Exceptions thrown when getting an attribute are specified + * by the field {@code exceptions}. + * * severityString
Integer * MBeanNotificationInfo * diff --git a/jdk/src/share/classes/javax/management/JMX.java b/jdk/src/share/classes/javax/management/JMX.java index d9329e0c3d4..3e551f3902f 100644 --- a/jdk/src/share/classes/javax/management/JMX.java +++ b/jdk/src/share/classes/javax/management/JMX.java @@ -75,6 +75,12 @@ public class JMX { public static final String DESCRIPTION_RESOURCE_KEY_FIELD = "descriptionResourceKey"; + /** + * The name of the {@code + * exceptions} field. + */ + public static final String EXCEPTIONS_FIELD = "exceptions"; + /** * The name of the {@code * immutableInfo} field. @@ -137,6 +143,12 @@ public class JMX { */ public static final String ORIGINAL_TYPE_FIELD = "originalType"; + /** + * The name of the {@code + * setExceptions} field. + */ + public static final String SET_EXCEPTIONS_FIELD = "setExceptions"; + /** *

Options to apply to an MBean proxy or to an instance of {@link * StandardMBean}.

diff --git a/jdk/src/share/classes/javax/management/MBeanAttributeInfo.java b/jdk/src/share/classes/javax/management/MBeanAttributeInfo.java index 2566c3e48a2..b4bcfaf4585 100644 --- a/jdk/src/share/classes/javax/management/MBeanAttributeInfo.java +++ b/jdk/src/share/classes/javax/management/MBeanAttributeInfo.java @@ -186,8 +186,10 @@ public class MBeanAttributeInfo extends MBeanFeatureInfo implements Cloneable { (getter != null), (setter != null), isIs(getter), - ImmutableDescriptor.union(Introspector.descriptorForElement(getter), - Introspector.descriptorForElement(setter))); + ImmutableDescriptor.union(Introspector. + descriptorForElement(getter, false), + Introspector.descriptorForElement(setter, + true))); } /** diff --git a/jdk/src/share/classes/javax/management/MBeanConstructorInfo.java b/jdk/src/share/classes/javax/management/MBeanConstructorInfo.java index 872c723e3af..e3e210318d8 100644 --- a/jdk/src/share/classes/javax/management/MBeanConstructorInfo.java +++ b/jdk/src/share/classes/javax/management/MBeanConstructorInfo.java @@ -67,7 +67,7 @@ public class MBeanConstructorInfo extends MBeanFeatureInfo implements Cloneable public MBeanConstructorInfo(String description, Constructor constructor) { this(constructor.getName(), description, constructorSignature(constructor), - Introspector.descriptorForElement(constructor)); + Introspector.descriptorForElement(constructor, false)); } /** diff --git a/jdk/src/share/classes/javax/management/MBeanOperationInfo.java b/jdk/src/share/classes/javax/management/MBeanOperationInfo.java index 006fc345d93..c3ee5382612 100644 --- a/jdk/src/share/classes/javax/management/MBeanOperationInfo.java +++ b/jdk/src/share/classes/javax/management/MBeanOperationInfo.java @@ -113,7 +113,7 @@ public class MBeanOperationInfo extends MBeanFeatureInfo implements Cloneable { methodSignature(method), method.getReturnType().getName(), UNKNOWN, - Introspector.descriptorForElement(method)); + Introspector.descriptorForElement(method, false)); } /** diff --git a/jdk/test/javax/management/Introspector/ExceptionsDescriptorTest.java b/jdk/test/javax/management/Introspector/ExceptionsDescriptorTest.java new file mode 100644 index 00000000000..5b931ba7294 --- /dev/null +++ b/jdk/test/javax/management/Introspector/ExceptionsDescriptorTest.java @@ -0,0 +1,245 @@ +/* + * Copyright 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. + * + * 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. + */ + +/* + * @test %M% %I% + * @bug 6250014 + * @summary Test that Exceptions are added to the MbeanInfo + * @author Jean-Francois Denise + * @run main/othervm ExceptionsDescriptorTest + */ +import java.lang.management.ManagementFactory; +import java.util.HashSet; +import java.util.Set; +import javax.management.Descriptor; +import javax.management.JMX; +import javax.management.MBeanAttributeInfo; +import javax.management.MBeanConstructorInfo; +import javax.management.MBeanInfo; +import javax.management.MBeanOperationInfo; +import javax.management.ObjectName; + +public class ExceptionsDescriptorTest { + + private static final ObjectName OBJECT_NAME = ObjectName.valueOf(":type=Foo"); + final static String EXCEPTION_NAME = Exception.class.getName(); + final static String ILLEGAL_ARGUMENT_EXCEPTION_NAME = + IllegalArgumentException.class.getName(); + final static Set ONE_EXCEPTION = new HashSet(); + final static Set TWO_EXCEPTION = new HashSet(); + static { + ONE_EXCEPTION.add(EXCEPTION_NAME); + TWO_EXCEPTION.add(EXCEPTION_NAME); + TWO_EXCEPTION.add(ILLEGAL_ARGUMENT_EXCEPTION_NAME); + } + public interface TestMBean { + + public void doIt(); + + public void doIt(String str) throws Exception; + + public void doIt(String str, boolean b) throws Exception, + IllegalArgumentException; + + public String getThat(); + + public void setThat(String that); + + public String getThe() throws Exception; + + public void setThe(String the); + + public String getThese(); + + public void setThese(String the) throws Exception; + + public String getIt() throws Exception; + + public void setIt(String str) throws Exception; + + public String getThis() throws Exception, IllegalArgumentException; + + public void setThose(String str) throws Exception, + IllegalArgumentException; + } + + public static class Test implements TestMBean { + + public Test() { + } + + public Test(int i) throws Exception { + } + + public Test(int i, int j) throws Exception, IllegalArgumentException { + } + + public void doIt() { + throw new UnsupportedOperationException("Not supported yet."); + } + + public void doIt(String str) throws Exception { + throw new UnsupportedOperationException("Not supported yet."); + } + + public void doIt(String str, boolean b) throws Exception, IllegalArgumentException { + throw new UnsupportedOperationException("Not supported yet."); + } + + public String getThat() { + throw new UnsupportedOperationException("Not supported yet."); + } + + public void setThat(String that) { + throw new UnsupportedOperationException("Not supported yet."); + } + + public String getThe() throws Exception { + throw new UnsupportedOperationException("Not supported yet."); + } + + public void setThe(String the) { + throw new UnsupportedOperationException("Not supported yet."); + } + + public String getThese() { + throw new UnsupportedOperationException("Not supported yet."); + } + + public void setThese(String the) throws Exception { + throw new UnsupportedOperationException("Not supported yet."); + } + + public String getIt() throws Exception { + throw new UnsupportedOperationException("Not supported yet."); + } + + public void setIt(String str) throws Exception { + throw new UnsupportedOperationException("Not supported yet."); + } + + public String getThis() throws Exception, IllegalArgumentException { + throw new UnsupportedOperationException("Not supported yet."); + } + + public void setThose(String str) throws Exception, IllegalArgumentException { + throw new UnsupportedOperationException("Not supported yet."); + } + } + + private static void check(Descriptor d, + Set exceptionsExpectedValue, + boolean exceptionsExpected, + Set setExceptionsExpectedValue, + boolean setExceptionsExpected) throws Exception { + String[] exceptionsValues = (String[]) d.getFieldValue(JMX.EXCEPTIONS_FIELD); + String[] setExceptionsValues = (String[]) d.getFieldValue(JMX.SET_EXCEPTIONS_FIELD); + + if (exceptionsExpected && exceptionsValues == null) { + throw new Exception("exceptions is expected but null value"); + } + if (!exceptionsExpected && exceptionsValues != null) { + throw new Exception("exceptions is not expected but non null value"); + } + if (setExceptionsExpected && setExceptionsValues == null) { + throw new Exception("setExceptions is expected but null value"); + } + if (!setExceptionsExpected && setExceptionsValues != null) { + throw new Exception("setExceptions is not expected but non null value"); + } + + if (exceptionsExpected) { + checkValues(exceptionsExpectedValue, exceptionsValues); + } + if (setExceptionsExpected) { + checkValues(setExceptionsExpectedValue, setExceptionsValues); + } + } + + private static void checkValues(Set expectedValuesSet, + String[] realValues) throws Exception { + + Set realValuesSet = new HashSet(); + for (String ex : realValues) { + realValuesSet.add(ex); + } + if (!realValuesSet.equals(expectedValuesSet)) { + throw new Exception("Invalid content for exceptions. Was expecting " + + expectedValuesSet + ". Found " + realValuesSet); + } + } + + public static void main(String[] args) throws Exception { + Test t = new Test(); + ManagementFactory.getPlatformMBeanServer().registerMBean(t, OBJECT_NAME); + MBeanInfo info = ManagementFactory.getPlatformMBeanServer(). + getMBeanInfo(OBJECT_NAME); + //Constructors + for (MBeanConstructorInfo ctr : info.getConstructors()) { + if (ctr.getSignature().length == 0) { + check(ctr.getDescriptor(), null, false, null, false); + } + if (ctr.getSignature().length == 1) { + check(ctr.getDescriptor(), ONE_EXCEPTION, true, null, false); + } + if (ctr.getSignature().length == 2) { + check(ctr.getDescriptor(),TWO_EXCEPTION,true, null, false); + } + } + //Attributes + for (MBeanAttributeInfo attr : info.getAttributes()) { + if (attr.getName().equals("That")) { + check(attr.getDescriptor(), null, false, null, false); + } + if (attr.getName().equals("The")) { + check(attr.getDescriptor(), ONE_EXCEPTION,true,null, false); + } + if (attr.getName().equals("These")) { + check(attr.getDescriptor(), null, false, ONE_EXCEPTION,true); + } + if (attr.getName().equals("It")) { + check(attr.getDescriptor(), ONE_EXCEPTION,true,ONE_EXCEPTION, + true); + } + if (attr.getName().equals("This")) { + check(attr.getDescriptor(), TWO_EXCEPTION,true,null,false); + } + if (attr.getName().equals("Those")) { + check(attr.getDescriptor(), null,false,TWO_EXCEPTION,true); + } + } + //Operations + for (MBeanOperationInfo oper : info.getOperations()) { + if (oper.getSignature().length == 0) { + check(oper.getDescriptor(), null, false, null, false); + } + if (oper.getSignature().length == 1) { + check(oper.getDescriptor(), ONE_EXCEPTION, true, null, false); + } + if (oper.getSignature().length == 2) { + check(oper.getDescriptor(), TWO_EXCEPTION,true, null, false); + } + } + System.out.println("Test passed"); + } +} From 36f5b8dd54c8678f3d7ce460bd405f4ac085d80f Mon Sep 17 00:00:00 2001 From: Coleen Phillimore Date: Tue, 9 Dec 2008 09:55:39 -0500 Subject: [PATCH 066/110] 6689685: Hotspot crash error message should include libraries version Print out JDK/JRE version that hotspot knows about. Reviewed-by: kamg, blacklion, acorn, alanb --- hotspot/src/share/vm/utilities/vmError.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/hotspot/src/share/vm/utilities/vmError.cpp b/hotspot/src/share/vm/utilities/vmError.cpp index a9d7a72f1cd..d2a0161a7cc 100644 --- a/hotspot/src/share/vm/utilities/vmError.cpp +++ b/hotspot/src/share/vm/utilities/vmError.cpp @@ -332,6 +332,8 @@ void VMError::report(outputStream* st) { // VM version st->print_cr("#"); + JDK_Version::current().to_string(buf, sizeof(buf)); + st->print_cr("# JRE version: %s", buf); st->print_cr("# Java VM: %s (%s %s %s %s)", Abstract_VM_Version::vm_name(), Abstract_VM_Version::vm_release(), From b14fec697346025192512a64e1b3d5ffa8452335 Mon Sep 17 00:00:00 2001 From: Jean-Francois Denise Date: Tue, 9 Dec 2008 15:57:09 +0100 Subject: [PATCH 067/110] 6675526: Define an Annotation to name registered MBeans Reviewed-by: emcmanus --- .../DefaultMBeanServerInterceptor.java | 6 + .../com/sun/jmx/mbeanserver/Introspector.java | 48 ++- .../classes/javax/management/Descriptor.java | 7 + .../share/classes/javax/management/JMX.java | 6 + .../classes/javax/management/MBeanServer.java | 9 +- .../management/MBeanServerConnection.java | 46 ++- .../javax/management/ObjectNameTemplate.java | 131 +++++++ .../Introspector/ObjectNameTemplateTest.java | 343 ++++++++++++++++++ 8 files changed, 575 insertions(+), 21 deletions(-) create mode 100644 jdk/src/share/classes/javax/management/ObjectNameTemplate.java create mode 100644 jdk/test/javax/management/Introspector/ObjectNameTemplateTest.java diff --git a/jdk/src/share/classes/com/sun/jmx/interceptor/DefaultMBeanServerInterceptor.java b/jdk/src/share/classes/com/sun/jmx/interceptor/DefaultMBeanServerInterceptor.java index 6a261994bb4..faa39e7656f 100644 --- a/jdk/src/share/classes/com/sun/jmx/interceptor/DefaultMBeanServerInterceptor.java +++ b/jdk/src/share/classes/com/sun/jmx/interceptor/DefaultMBeanServerInterceptor.java @@ -919,6 +919,12 @@ public class DefaultMBeanServerInterceptor DynamicMBean mbean = Introspector.makeDynamicMBean(object); + //Access the ObjectName template value only if the provided name is null + if(name == null) { + name = Introspector.templateToObjectName(mbean.getMBeanInfo(). + getDescriptor(), mbean); + } + return registerDynamicMBean(classname, mbean, name); } diff --git a/jdk/src/share/classes/com/sun/jmx/mbeanserver/Introspector.java b/jdk/src/share/classes/com/sun/jmx/mbeanserver/Introspector.java index dbf45b9997a..ba27f6e8398 100644 --- a/jdk/src/share/classes/com/sun/jmx/mbeanserver/Introspector.java +++ b/jdk/src/share/classes/com/sun/jmx/mbeanserver/Introspector.java @@ -65,8 +65,12 @@ import java.lang.reflect.Array; import java.lang.reflect.InvocationTargetException; import java.util.LinkedHashSet; import java.util.Set; +import java.util.regex.Matcher; +import java.util.regex.Pattern; import javax.management.AttributeNotFoundException; import javax.management.JMX; +import javax.management.ObjectName; +import javax.management.ObjectNameTemplate; import javax.management.openmbean.CompositeData; import javax.management.openmbean.MXBeanMappingFactory; @@ -78,7 +82,13 @@ import javax.management.openmbean.MXBeanMappingFactory; */ public class Introspector { - + /** + * Pattern used to extract Attribute Names from ObjectNameTemplate Annotation + * For example, in the following example, the Name attribute value is + * retrieved : ":type=MyType, name={Name}" + */ + private static Pattern OBJECT_NAME_PATTERN_TEMPLATE = + Pattern.compile("(\\{[^\\}]+\\})|(=\"\\{[^\\}]+\\}\")"); /* * ------------------------------------------ * PRIVATE CONSTRUCTORS @@ -392,6 +402,42 @@ public class Introspector { return getStandardMBeanInterface(baseClass); } + public static ObjectName templateToObjectName(Descriptor descriptor, + DynamicMBean mbean) + throws NotCompliantMBeanException { + String template = (String) + descriptor.getFieldValue(JMX.OBJECT_NAME_TEMPLATE); + if(template == null) return null; + try { + Matcher m = OBJECT_NAME_PATTERN_TEMPLATE.matcher(template); + while (m.find()){ + String grp = m.group(); + System.out.println("GROUP " + grp); + String attributeName = null; + boolean quote = false; + if(grp.startsWith("=\"{")) { + attributeName = grp.substring(3, grp.length() - 2); + quote = true; + } else + attributeName = grp.substring(1, grp.length() - 1); + + Object attributeValue = mbean.getAttribute(attributeName); + String validValue = quote ? + "=" + ObjectName.quote(attributeValue.toString()) : + attributeValue.toString(); + template = template.replace(grp, validValue); + } + return new ObjectName(template); + }catch(Exception ex) { + NotCompliantMBeanException ncex = new + NotCompliantMBeanException(ObjectNameTemplate.class. + getSimpleName() + " annotation value [" + template + "] " + + "is invalid. " + ex); + ncex.initCause(ex); + throw ncex; + } + } + /* * ------------------------------------------ * PRIVATE METHODS diff --git a/jdk/src/share/classes/javax/management/Descriptor.java b/jdk/src/share/classes/javax/management/Descriptor.java index a9161903c64..30c6a5f5264 100644 --- a/jdk/src/share/classes/javax/management/Descriptor.java +++ b/jdk/src/share/classes/javax/management/Descriptor.java @@ -245,6 +245,13 @@ import javax.management.openmbean.OpenType; * MXBean, if it was not the {@linkplain MXBeanMappingFactory#DEFAULT default} * one. * + * objectNameTemplate + * String + * MBeanInfo + * + * The template to use to name this MBean. Its value must be compliant with + * the specification of the {@link ObjectNameTemplate} annotation. + * * openType{@link OpenType} * MBeanAttributeInfo
MBeanOperationInfo
MBeanParameterInfo * diff --git a/jdk/src/share/classes/javax/management/JMX.java b/jdk/src/share/classes/javax/management/JMX.java index 3e551f3902f..297b5a74cc4 100644 --- a/jdk/src/share/classes/javax/management/JMX.java +++ b/jdk/src/share/classes/javax/management/JMX.java @@ -149,6 +149,12 @@ public class JMX { */ public static final String SET_EXCEPTIONS_FIELD = "setExceptions"; + /** + * The name of the {@code + * objectNameTemplate} field. + */ + public static final String OBJECT_NAME_TEMPLATE = "objectNameTemplate"; + /** *

Options to apply to an MBean proxy or to an instance of {@link * StandardMBean}.

diff --git a/jdk/src/share/classes/javax/management/MBeanServer.java b/jdk/src/share/classes/javax/management/MBeanServer.java index e6d79e5bd94..e82650288bb 100644 --- a/jdk/src/share/classes/javax/management/MBeanServer.java +++ b/jdk/src/share/classes/javax/management/MBeanServer.java @@ -351,11 +351,14 @@ public interface MBeanServer extends MBeanServerConnection { /** *

Registers a pre-existing object as an MBean with the MBean - * server. If the object name given is null, the MBean must - * provide its own name by implementing the {@link + * server. If the object name given is null, the + * MBean must provide its own name in one or both of two ways: by implementing the {@link * javax.management.MBeanRegistration MBeanRegistration} interface * and returning the name from the {@link - * MBeanRegistration#preRegister preRegister} method.

+ * MBeanRegistration#preRegister preRegister} method; or by defining + * an {@code objectNameTemplate} field in its {@link Descriptor}, + * typically using the {@link ObjectNameTemplate @ObjectNameTemplate} + * annotation.

* *

If this method successfully registers an MBean, a notification * is sent as described above.

diff --git a/jdk/src/share/classes/javax/management/MBeanServerConnection.java b/jdk/src/share/classes/javax/management/MBeanServerConnection.java index fadebc10730..add96cfcb94 100644 --- a/jdk/src/share/classes/javax/management/MBeanServerConnection.java +++ b/jdk/src/share/classes/javax/management/MBeanServerConnection.java @@ -46,11 +46,14 @@ public interface MBeanServerConnection extends NotificationManager { * MBean server will use its {@link * javax.management.loading.ClassLoaderRepository Default Loader * Repository} to load the class of the MBean. An object name is - * associated to the MBean. If the object name given is null, the - * MBean must provide its own name by implementing the {@link + * associated with the MBean. If the object name given is null, the + * MBean must provide its own name in one or both of two ways: by implementing the {@link * javax.management.MBeanRegistration MBeanRegistration} interface * and returning the name from the {@link - * MBeanRegistration#preRegister preRegister} method.

+ * MBeanRegistration#preRegister preRegister} method; or by defining + * an {@code objectNameTemplate} field in its {@link Descriptor}, + * typically using the {@link ObjectNameTemplate @ObjectNameTemplate} + * annotation.

* *

This method is equivalent to {@link * #createMBean(String,ObjectName,Object[],String[]) @@ -117,13 +120,16 @@ public interface MBeanServerConnection extends NotificationManager { /** *

Instantiates and registers an MBean in the MBean server. The * class loader to be used is identified by its object name. An - * object name is associated to the MBean. If the object name of + * object name is associated with the MBean. If the object name of * the loader is null, the ClassLoader that loaded the MBean - * server will be used. If the MBean's object name given is null, - * the MBean must provide its own name by implementing the {@link + * server will be used. If the object name given is null, the + * MBean must provide its own name in one or both of two ways: by implementing the {@link * javax.management.MBeanRegistration MBeanRegistration} interface * and returning the name from the {@link - * MBeanRegistration#preRegister preRegister} method.

+ * MBeanRegistration#preRegister preRegister} method; or by defining + * an {@code objectNameTemplate} field in its {@link Descriptor}, + * typically using the {@link ObjectNameTemplate @ObjectNameTemplate} + * annotation.

* *

This method is equivalent to {@link * #createMBean(String,ObjectName,ObjectName,Object[],String[]) @@ -198,11 +204,14 @@ public interface MBeanServerConnection extends NotificationManager { * MBean server will use its {@link * javax.management.loading.ClassLoaderRepository Default Loader * Repository} to load the class of the MBean. An object name is - * associated to the MBean. If the object name given is null, the - * MBean must provide its own name by implementing the {@link + * associated with the MBean. If the object name given is null, the + * MBean must provide its own name in one or both of two ways: by implementing the {@link * javax.management.MBeanRegistration MBeanRegistration} interface * and returning the name from the {@link - * MBeanRegistration#preRegister preRegister} method. + * MBeanRegistration#preRegister preRegister} method; or by defining + * an {@code objectNameTemplate} field in its {@link Descriptor}, + * typically using the {@link ObjectNameTemplate @ObjectNameTemplate} + * annotation.

* * @param className The class name of the MBean to be instantiated. * @param name The object name of the MBean. May be null. @@ -267,15 +276,18 @@ public interface MBeanServerConnection extends NotificationManager { NotCompliantMBeanException, IOException; /** - * Instantiates and registers an MBean in the MBean server. The + *

Instantiates and registers an MBean in the MBean server. The * class loader to be used is identified by its object name. An - * object name is associated to the MBean. If the object name of + * object name is associated with the MBean. If the object name of * the loader is not specified, the ClassLoader that loaded the - * MBean server will be used. If the MBean object name given is - * null, the MBean must provide its own name by implementing the - * {@link javax.management.MBeanRegistration MBeanRegistration} - * interface and returning the name from the {@link - * MBeanRegistration#preRegister preRegister} method. + * MBean server will be used. If the object name given is null, the + * MBean must provide its own name in one or both of two ways: by implementing the {@link + * javax.management.MBeanRegistration MBeanRegistration} interface + * and returning the name from the {@link + * MBeanRegistration#preRegister preRegister} method; or by defining + * an {@code objectNameTemplate} field in its {@link Descriptor}, + * typically using the {@link ObjectNameTemplate @ObjectNameTemplate} + * annotation.

* * @param className The class name of the MBean to be instantiated. * @param name The object name of the MBean. May be null. diff --git a/jdk/src/share/classes/javax/management/ObjectNameTemplate.java b/jdk/src/share/classes/javax/management/ObjectNameTemplate.java new file mode 100644 index 00000000000..97e0c900fb3 --- /dev/null +++ b/jdk/src/share/classes/javax/management/ObjectNameTemplate.java @@ -0,0 +1,131 @@ +/* + * Copyright 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. + */ +package javax.management; + +import java.lang.annotation.Documented; +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * Annotation to allow an MBean to provide its name. + * This annotation can be used on the following types: + *
    + *
  • MBean or MXBean Java interface.
  • + *
  • Java class annotated with {@link javax.management.MBean @MBean} + * annotation.
  • + *
  • Java class annotated with {@link javax.management.MXBean @MXBean} + * annotation.
  • + *
+ * + *

The value of this annotation is used to build the ObjectName + * when instances of the annotated type are registered in + * an MBeanServer and no explicit name is given to the + * {@code createMBean} or {@code registerMBean} method (the {@code ObjectName} + * is {@code null}).

+ * + *

For Dynamic MBeans, which define their own {@code MBeanInfo}, you can + * produce the same effect as this annotation by including a field + * {@code objectNameTemplate} + * in the {@link Descriptor} for the {@code MBeanInfo} returned by + * {@link DynamicMBean#getMBeanInfo()}.

+ * + *

For Standard MBeans and MXBeans, this annotation automatically produces + * an {@code objectNameTemplate} field in the {@code Descriptor}.

+ * + *

The template can contain variables so that the name of the MBean + * depends on the value of one or more of its attributes. + * A variable that identifies an MBean attribute is of the form + * {attribute name}. For example, to make an MBean name + * depend on the Name attribute, use the variable + * {Name}. Attribute names are case sensitive. + * Naming attributes can be of any type. The String returned by + * toString() is included in the constructed name.

+ * + *

If you need the attribute value to be quoted + * by a call to {@link ObjectName#quote(String) ObjectName.quote}, + * surround the variable with quotes. Quoting only applies to key values. + * For example, @ObjectNameTemplate("java.lang:type=MemoryPool,name=\"{Name}\""), + * quotes the Name attribute value. You can notice the "\" + * character needed to escape a quote within a String. A name + * produced by this template might look like + * {@code java.lang:type=MemoryPool,name="Code Cache"}.

+ * + *

Variables can be used anywhere in the String. + * Be sure to make the template derived name comply with + * {@link ObjectName ObjectName} syntax.

+ * + *

If an MBean is registered with a null name and it implements + * {@link javax.management.MBeanRegistration MBeanRegistration}, then + * the computed name is provided to the preRegister method. + * Similarly, + * if the MBean uses resource + * injection to discover its name, it is the computed name that will + * be injected.

+ *

All of the above can be used with the {@link StandardMBean} class and + * the annotation is effective in that case too.

+ *

If any exception occurs (such as unknown attribute, invalid syntax or + * exception + * thrown by the MBean) when the name is computed it is wrapped in a + * NotCompliantMBeanException.

+ *

Some ObjectName template examples: + *

  • "com.example:type=Memory". Fixed ObjectName. Used to name a + * singleton MBean.
  • + *
  • "com.example:type=MemoryPool,name={Name}". Variable ObjectName. + * Name attribute is retrieved to compose the name + * key value.
  • + *
  • "com.example:type=SomeType,name={InstanceName},id={InstanceId}". + * Variable ObjectName. + * InstanceName and InstanceId attributes are + * retrieved to compose respectively + * the name and id key values.
  • + *
  • "com.example:type=OtherType,name=\"{ComplexName}\"". Variable ObjectName. + * ComplexName attribute is retrieved to compose the + * name key quoted value.
  • + *
  • "com.example:{TypeKey}=SomeOtherType". Variable ObjectName. + * TypeKey attribute is retrieved to compose the + * first key name.
  • + * *
  • "{Domain}:type=YetAnotherType". Variable ObjectName. + * Domain attribute is retrieved to compose the + * management domain.
  • + *
  • "{Naming}". Variable ObjectName. + * Naming attribute is retrieved to compose the + * complete name.
  • + *
+ *

+ */ +@Documented +@Retention(RetentionPolicy.RUNTIME) +@Target(ElementType.TYPE) +public @interface ObjectNameTemplate { + + /** + * The MBean name template. + * @return The MBean name template. + */ + @DescriptorKey("objectNameTemplate") + public String value(); +} diff --git a/jdk/test/javax/management/Introspector/ObjectNameTemplateTest.java b/jdk/test/javax/management/Introspector/ObjectNameTemplateTest.java new file mode 100644 index 00000000000..2abcaf08585 --- /dev/null +++ b/jdk/test/javax/management/Introspector/ObjectNameTemplateTest.java @@ -0,0 +1,343 @@ +/* + * Copyright 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. + * + * 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. + */ + +/* + * @test %M% %I% + * @bug 6675526 + * @summary Test MBeans named with @ObjectNameTemplate + * @author Jean-Francois Denise + * @run main/othervm ObjectNameTemplateTest + */ +import java.lang.management.ManagementFactory; +import java.lang.reflect.Constructor; +import java.util.ArrayList; +import java.util.List; +import javax.management.Attribute; +import javax.management.AttributeList; +import javax.management.AttributeNotFoundException; +import javax.management.DynamicMBean; +import javax.management.ImmutableDescriptor; +import javax.management.InvalidAttributeValueException; +import javax.management.JMX; +import javax.management.MBeanException; +import javax.management.MBeanInfo; +import javax.management.MBeanServer; +import javax.management.MXBean; +import javax.management.MBean; +import javax.management.ManagedAttribute; +import javax.management.NotCompliantMBeanException; +import javax.management.ObjectName; +import javax.management.ObjectNameTemplate; +import javax.management.ReflectionException; +import javax.management.StandardMBean; + +public class ObjectNameTemplateTest { + + private static MBeanServer mbs = ManagementFactory.getPlatformMBeanServer(); + private static final String NAME_TEMPLATE_MULTI = + "com.example:type=MultiStdCache,name={Name}"; + private static final String NAME_TEMPLATE_MONO = + "com.example:{Type}={TypeValue}"; + private static final String NAME_TEMPLATE_QUOTED = + "com.example:type=Quotted,name=\"{Name}\""; + private static final String NAME_TEMPLATE_WRAPPED = + "com.example:type=MgtInterface,id={Id}"; + private static final String NAME_TEMPLATE_FULL = + "{Naming}"; + private static final String FULL_NAME = "com.example:type=NotAdvised"; + private static final String NAME1 = "toto1"; + private static final String NAME2 = "toto2"; + private static final String TYPE_KEY = "thisIsTheType"; + private static final String TYPE_VALUE = "aTypeValue"; + private static final String INVALID_NAME = "?,=*,\n, "; + private static final int ID = 999; + private static Object[] EMPTY_PARAMS = {}; + private static String[] EMPTY_SIGNATURE = {}; + private static final ObjectName OBJECTNAME_CACHE = + ObjectName.valueOf("com.example:type=Cache"); + private static final ObjectName OBJECTNAME_SUBCACHE = + ObjectName.valueOf("com.example:type=SubCache"); + private static final ObjectName OBJECTNAME_CACHEMX = + ObjectName.valueOf("com.example:type=CacheMX"); + private static final ObjectName OBJECTNAME_SUBCACHEMX = + ObjectName.valueOf("com.example:type=SubCacheMX"); + private static final ObjectName OBJECTNAME_DYNACACHE = + ObjectName.valueOf("com.example:type=DynaCache"); + private static final ObjectName OBJECTNAME_STDCACHE = + ObjectName.valueOf("com.example:type=StdCache"); + private static final ObjectName OBJECTNAME_STDCACHEMX = + ObjectName.valueOf("com.example:type=StdCacheMX"); + private static final ObjectName OBJECTNAME_MULTI_1 = + ObjectName.valueOf("com.example:" + + "type=MultiStdCache,name=" + NAME1); + private static final ObjectName OBJECTNAME_MULTI_2 = + ObjectName.valueOf("com.example:" + + "type=MultiStdCache,name=" + NAME2); + private static final ObjectName OBJECTNAME_MONO = + ObjectName.valueOf("com.example:" + TYPE_KEY + "=" + + TYPE_VALUE); + private static final ObjectName OBJECTNAME_QUOTED = + ObjectName.valueOf("com.example:type=Quotted," + + "name="+ObjectName.quote(INVALID_NAME)); + private static final ObjectName OBJECTNAME_WRAPPED_RESOURCE = + ObjectName.valueOf("com.example:type=MgtInterface,id=" + ID); + private static final ObjectName OBJECTNAME_FULL = + ObjectName.valueOf(FULL_NAME); + + private static void test(Class mbean, Object[] params, + String[] signature, ObjectName name, String template) + throws Exception { + mbs.createMBean(mbean.getName(), null, params, signature); + test(name, template); + List> parameters = new ArrayList>(); + for (String sig : signature) { + parameters.add(Class.forName(sig)); + } + Class classes[] = new Class[parameters.size()]; + Constructor ctr = mbean.getConstructor(parameters.toArray(classes)); + Object inst = ctr.newInstance(params); + test(inst, name, template); + } + + private static void test(Object obj, ObjectName name, String template) + throws Exception { + mbs.registerMBean(obj, null); + test(name, template); + } + + private static void test(ObjectName name, String template) + throws Exception { + if (!mbs.isRegistered(name)) { + throw new Exception("Wrong " + name + " name"); + } + if (template != null && !mbs.getMBeanInfo(name).getDescriptor(). + getFieldValue("objectNameTemplate").equals(template)) { + throw new Exception("Invalid Derscriptor"); + } + mbs.unregisterMBean(name); + } + + public static void main(String[] args) throws Exception { + test(Cache.class, EMPTY_PARAMS, EMPTY_SIGNATURE, OBJECTNAME_CACHE, + OBJECTNAME_CACHE.toString()); + + test(CacheMX.class, EMPTY_PARAMS, EMPTY_SIGNATURE, OBJECTNAME_CACHEMX, + OBJECTNAME_CACHEMX.toString()); + + test(SubCache.class, EMPTY_PARAMS, EMPTY_SIGNATURE, OBJECTNAME_SUBCACHE, + OBJECTNAME_SUBCACHE.toString()); + + test(SubCacheMX.class, EMPTY_PARAMS, EMPTY_SIGNATURE, OBJECTNAME_SUBCACHEMX, + OBJECTNAME_SUBCACHEMX.toString()); + + test(DynaCache.class, EMPTY_PARAMS, EMPTY_SIGNATURE, OBJECTNAME_DYNACACHE, + null); + + test(StdCacheMX.class, EMPTY_PARAMS, EMPTY_SIGNATURE, OBJECTNAME_STDCACHEMX, + OBJECTNAME_STDCACHEMX.toString()); + + test(StdCache.class, EMPTY_PARAMS, EMPTY_SIGNATURE, OBJECTNAME_STDCACHE, + OBJECTNAME_STDCACHE.toString()); + String[] sig = {String.class.getName()}; + Object[] params = {NAME1}; + test(MultiStdCache.class, params, sig, OBJECTNAME_MULTI_1, + NAME_TEMPLATE_MULTI); + Object[] params2 = {NAME2}; + test(MultiStdCache.class, params2, sig, OBJECTNAME_MULTI_2, + NAME_TEMPLATE_MULTI); + + test(MonoStdCache.class, EMPTY_PARAMS, EMPTY_SIGNATURE, OBJECTNAME_MONO, + NAME_TEMPLATE_MONO); + + test(Quoted.class, EMPTY_PARAMS, EMPTY_SIGNATURE, OBJECTNAME_QUOTED, + NAME_TEMPLATE_QUOTED); + + test(new StandardMBean(new WrappedResource(), MgtInterface.class), + OBJECTNAME_WRAPPED_RESOURCE, NAME_TEMPLATE_WRAPPED); + + test(FullName.class, EMPTY_PARAMS, EMPTY_SIGNATURE, OBJECTNAME_FULL, + NAME_TEMPLATE_FULL); + try { + test(Wrong.class, EMPTY_PARAMS, EMPTY_SIGNATURE, null, null); + throw new Exception("No treceived expected Exception"); + } catch (NotCompliantMBeanException ncex) { + if (!(ncex.getCause() instanceof AttributeNotFoundException)) { + throw new Exception("Invalid initCause"); + } + } + } + + @MBean + @ObjectNameTemplate("{Naming}") + public static class FullName { + + @ManagedAttribute + public String getNaming() { + return FULL_NAME; + } + } + + @ObjectNameTemplate("com.example:type=MgtInterface,id={Id}") + public interface MgtInterface { + + public int getId(); + } + + public static class WrappedResource implements MgtInterface { + + public int getId() { + return ID; + } + } + + @MBean + @ObjectNameTemplate("com.example:type=Cache") + public static class Cache { + } + + @ObjectNameTemplate("com.example:type=SubCache") + public static class SubCache extends Cache { + } + + @MXBean + @ObjectNameTemplate("com.example:type=CacheMX") + public static class CacheMX { + } + + @ObjectNameTemplate("com.example:type=SubCacheMX") + public static class SubCacheMX extends CacheMX { + } + + @ObjectNameTemplate("com.example:type=StdCache") + public interface StdCacheMBean { + } + + public static class StdCache implements StdCacheMBean { + } + + @ObjectNameTemplate("com.example:type=StdCacheMX") + public interface StdCacheMXBean { + } + + public static class StdCacheMX implements StdCacheMXBean { + } + + public static class DynaCache implements DynamicMBean { + + public Object getAttribute(String attribute) throws AttributeNotFoundException, MBeanException, ReflectionException { + throw new UnsupportedOperationException("Not supported yet."); + } + + public void setAttribute(Attribute attribute) throws AttributeNotFoundException, InvalidAttributeValueException, MBeanException, ReflectionException { + throw new UnsupportedOperationException("Not supported yet."); + } + + public AttributeList getAttributes(String[] attributes) { + throw new UnsupportedOperationException("Not supported yet."); + } + + public AttributeList setAttributes(AttributeList attributes) { + throw new UnsupportedOperationException("Not supported yet."); + } + + public Object invoke(String actionName, Object[] params, String[] signature) throws MBeanException, ReflectionException { + throw new UnsupportedOperationException("Not supported yet."); + } + + public MBeanInfo getMBeanInfo() { + ImmutableDescriptor d = new ImmutableDescriptor(JMX.OBJECT_NAME_TEMPLATE + "=com.example:type=DynaCache"); + + return new MBeanInfo("DynaCache", "Description", null, null, null, null, d); + } + } + + @ObjectNameTemplate("com.example:type=MultiStdCache,name={Name}") + public interface MultiStdCacheMXBean { + + public String getName(); + } + + public static class MultiStdCache implements MultiStdCacheMXBean { + + private String name; + + public MultiStdCache(String name) { + this.name = name; + } + + public String getName() { + return name; + } + } + + @ObjectNameTemplate("com.example:{Type}={TypeValue}") + public interface MonoStdCacheMXBean { + + public String getTypeValue(); + + public String getType(); + } + + public static class MonoStdCache implements MonoStdCacheMXBean { + + public String getTypeValue() { + return TYPE_VALUE; + } + + public String getType() { + return TYPE_KEY; + } + } + + @ObjectNameTemplate("com.example:type=Quotted,name=\"{Name}\"") + public interface QuottedMXBean { + + public String getName(); + } + + public static class Quoted implements QuottedMXBean { + + public String getName() { + return INVALID_NAME; + } + } + + @ObjectNameTemplate("com.example:{Type}={TypeValue}, name={Name}") + public interface WrongMXBean { + + public String getTypeValue(); + + public String getType(); + } + + public static class Wrong implements WrongMXBean { + + public String getTypeValue() { + return TYPE_VALUE; + } + + public String getType() { + return TYPE_KEY; + } + } +} From ef7000f82e4d6e885def2b2c4698157fc5896e45 Mon Sep 17 00:00:00 2001 From: Jean-Francois Denise Date: Tue, 9 Dec 2008 16:14:53 +0100 Subject: [PATCH 068/110] 6450834: RFE: allow StandardMBean to call MBeanRegistration methods on its wrapped resource 6373143: MonitorNotification should have a public constructor Reviewed-by: emcmanus --- .../javax/management/StandardMBean.java | 107 ++++++++++++++++-- .../monitor/MonitorNotification.java | 2 +- .../InstantiateMonitorNotificationTest.java | 52 +++++++++ .../standardmbean/RegistrationTest.java | 91 +++++++++++++++ 4 files changed, 240 insertions(+), 12 deletions(-) create mode 100644 jdk/test/javax/management/monitor/InstantiateMonitorNotificationTest.java create mode 100644 jdk/test/javax/management/standardmbean/RegistrationTest.java diff --git a/jdk/src/share/classes/javax/management/StandardMBean.java b/jdk/src/share/classes/javax/management/StandardMBean.java index 45badeac6c7..f3edc95d742 100644 --- a/jdk/src/share/classes/javax/management/StandardMBean.java +++ b/jdk/src/share/classes/javax/management/StandardMBean.java @@ -135,6 +135,7 @@ public class StandardMBean implements DynamicWrapperMBean, MBeanRegistration { private static final long serialVersionUID = 5107355471177517164L; private boolean wrappedVisible; + private boolean forwardRegistration; /** *

Construct an {@code Options} object where all options have @@ -177,15 +178,56 @@ public class StandardMBean implements DynamicWrapperMBean, MBeanRegistration { this.wrappedVisible = visible; } - // Canonical objects for each of (MXBean,!MXBean) x (WVisible,!WVisible) + /** + *

Defines whether the {@link MBeanRegistration MBeanRegistration} + * callbacks are forwarded to the wrapped object.

+ * + *

If this option is true, then + * {@link #preRegister(MBeanServer, ObjectName) preRegister}, + * {@link #postRegister(Boolean) postRegister}, + * {@link #preDeregister preDeregister} and + * {@link #postDeregister postDeregister} methods are forwarded + * to the wrapped object, in addition to the behaviour specified + * for the StandardMBean instance itself. + * The default value is false for compatibility reasons, but true + * is a better value for most new code.

+ * + * @return true if the MBeanRegistration callbacks + * are forwarded to the wrapped object. + */ + public boolean isMBeanRegistrationForwarded() { + return this.forwardRegistration; + } + + /** + *

Set the + * {@link #isMBeanRegistrationForwarded MBeanRegistrationForwarded} + * option to the given value.

+ * @param forward the new value. + */ + public void setMBeanRegistrationForwarded(boolean forward) { + this.forwardRegistration = forward; + } + + // Canonical objects for each of + // (MXBean,!MXBean) x (WVisible,!WVisible) x (Forward,!Forward) private static final Options[] CANONICALS = { new Options(), new Options(), new Options(), new Options(), + new Options(), new Options(), new Options(), new Options(), }; static { CANONICALS[1].setMXBeanMappingFactory(MXBeanMappingFactory.DEFAULT); CANONICALS[2].setWrappedObjectVisible(true); CANONICALS[3].setMXBeanMappingFactory(MXBeanMappingFactory.DEFAULT); CANONICALS[3].setWrappedObjectVisible(true); + CANONICALS[4].setMBeanRegistrationForwarded(true); + CANONICALS[5].setMXBeanMappingFactory(MXBeanMappingFactory.DEFAULT); + CANONICALS[5].setMBeanRegistrationForwarded(true); + CANONICALS[6].setWrappedObjectVisible(true); + CANONICALS[6].setMBeanRegistrationForwarded(true); + CANONICALS[7].setMXBeanMappingFactory(MXBeanMappingFactory.DEFAULT); + CANONICALS[7].setWrappedObjectVisible(true); + CANONICALS[7].setMBeanRegistrationForwarded(true); } @Override MBeanOptions[] canonicals() { @@ -195,7 +237,8 @@ public class StandardMBean implements DynamicWrapperMBean, MBeanRegistration { @Override boolean same(MBeanOptions opts) { return (super.same(opts) && opts instanceof Options && - ((Options) opts).wrappedVisible == wrappedVisible); + ((Options) opts).wrappedVisible == wrappedVisible && + ((Options) opts).forwardRegistration ==forwardRegistration); } } @@ -477,7 +520,9 @@ public class StandardMBean implements DynamicWrapperMBean, MBeanRegistration { * * @exception IllegalArgumentException if the given * implementation is null. - * + * @exception IllegalStateException if the + * {@link Options#isMBeanRegistrationForwarded MBeanRegistrationForwarded} + * option is true. * @exception NotCompliantMBeanException if the given * implementation does not implement the * Standard MBean (or MXBean) interface that was @@ -490,6 +535,12 @@ public class StandardMBean implements DynamicWrapperMBean, MBeanRegistration { if (implementation == null) throw new IllegalArgumentException("implementation is null"); + + if(options instanceof Options && + ((Options) options).isMBeanRegistrationForwarded()) + throw new IllegalStateException("Implementation can't be changed " + + "because MBeanRegistrationForwarded option is true"); + setImplementation2(implementation); } @@ -1273,10 +1324,14 @@ public class StandardMBean implements DynamicWrapperMBean, MBeanRegistration { * registered in the MBean server.

* *

The default implementation of this method returns the {@code name} - * parameter. It does nothing else for - * Standard MBeans. For MXBeans, it records the {@code MBeanServer} - * and {@code ObjectName} parameters so they can be used to translate - * inter-MXBean references.

+ * parameter. If the + * {@link Options#isMBeanRegistrationForwarded MBeanRegistrationForwarded} + * option is set to true, then this method is forwarded to the object + * returned by the {@link #getImplementation getImplementation()} method. + * The name returned by this call is then returned by this method. + * It does nothing else for Standard MBeans. For MXBeans, it records + * the {@code MBeanServer} and {@code ObjectName} parameters so they can + * be used to translate inter-MXBean references.

* *

It is good practice for a subclass that overrides this method * to call the overridden method via {@code super.preRegister(...)}. @@ -1311,6 +1366,11 @@ public class StandardMBean implements DynamicWrapperMBean, MBeanRegistration { */ public ObjectName preRegister(MBeanServer server, ObjectName name) throws Exception { + // Forward preRegister before to call register and + // inject parameters. + if(shouldForwardMBeanRegistration()) + name = ((MBeanRegistration)getImplementation()). + preRegister(server, name); mbean.register(server, name); MBeanInjector.inject(mbean.getWrappedObject(), server, name); return name; @@ -1320,7 +1380,11 @@ public class StandardMBean implements DynamicWrapperMBean, MBeanRegistration { *

Allows the MBean to perform any operations needed after having been * registered in the MBean server or after the registration has failed.

* - *

The default implementation of this method does nothing for + *

If the + * {@link Options#isMBeanRegistrationForwarded MBeanRegistrationForwarded} + * option is set to true, then this method is forwarded to the object + * returned by the {@link #getImplementation getImplementation()} method. + * The default implementation of this method does nothing else for * Standard MBeans. For MXBeans, it undoes any work done by * {@link #preRegister preRegister} if registration fails.

* @@ -1338,16 +1402,24 @@ public class StandardMBean implements DynamicWrapperMBean, MBeanRegistration { public void postRegister(Boolean registrationDone) { if (!registrationDone) mbean.unregister(); + if(shouldForwardMBeanRegistration()) + ((MBeanRegistration)getImplementation()). + postRegister(registrationDone); } /** *

Allows the MBean to perform any operations it needs before * being unregistered by the MBean server.

* - *

The default implementation of this method does nothing.

+ *

If the + * {@link Options#isMBeanRegistrationForwarded MBeanRegistrationForwarded} + * option is set to true, then this method is forwarded to the object + * returned by the {@link #getImplementation getImplementation()} method. + * Other than that, the default implementation of this method does nothing. + *

* *

It is good practice for a subclass that overrides this method - * to call the overridden method via {@code super.preDeegister(...)}.

+ * to call the overridden method via {@code super.preDeregister(...)}.

* * @throws Exception no checked exceptions are throw by this method * but {@code Exception} is declared so that subclasses can override @@ -1356,13 +1428,19 @@ public class StandardMBean implements DynamicWrapperMBean, MBeanRegistration { * @since 1.6 */ public void preDeregister() throws Exception { + if(shouldForwardMBeanRegistration()) + ((MBeanRegistration)getImplementation()).preDeregister(); } /** *

Allows the MBean to perform any operations needed after having been * unregistered in the MBean server.

* - *

The default implementation of this method does nothing for + *

If the + * {@link Options#isMBeanRegistrationForwarded MBeanRegistrationForwarded} + * option is set to true, then this method is forwarded to the object + * returned by the {@link #getImplementation getImplementation()} method. + * The default implementation of this method does nothing else for * Standard MBeans. For MXBeans, it removes any information that * was recorded by the {@link #preRegister preRegister} method.

* @@ -1375,8 +1453,15 @@ public class StandardMBean implements DynamicWrapperMBean, MBeanRegistration { */ public void postDeregister() { mbean.unregister(); + if(shouldForwardMBeanRegistration()) + ((MBeanRegistration)getImplementation()).postDeregister(); } + private boolean shouldForwardMBeanRegistration() { + return (getImplementation() instanceof MBeanRegistration) && + (options instanceof Options && + ((Options) options).isMBeanRegistrationForwarded()); + } // // MBeanInfo immutability // diff --git a/jdk/src/share/classes/javax/management/monitor/MonitorNotification.java b/jdk/src/share/classes/javax/management/monitor/MonitorNotification.java index 744d7434f1f..f0d65c6da17 100644 --- a/jdk/src/share/classes/javax/management/monitor/MonitorNotification.java +++ b/jdk/src/share/classes/javax/management/monitor/MonitorNotification.java @@ -201,7 +201,7 @@ public class MonitorNotification extends javax.management.Notification { * @param derGauge The derived gauge. * @param trigger The threshold/string (depending on the monitor type) that triggered the notification. */ - MonitorNotification(String type, Object source, long sequenceNumber, long timeStamp, String msg, + public MonitorNotification(String type, Object source, long sequenceNumber, long timeStamp, String msg, ObjectName obsObj, String obsAtt, Object derGauge, Object trigger) { super(type, source, sequenceNumber, timeStamp, msg); diff --git a/jdk/test/javax/management/monitor/InstantiateMonitorNotificationTest.java b/jdk/test/javax/management/monitor/InstantiateMonitorNotificationTest.java new file mode 100644 index 00000000000..ae16858d241 --- /dev/null +++ b/jdk/test/javax/management/monitor/InstantiateMonitorNotificationTest.java @@ -0,0 +1,52 @@ + +import javax.management.ObjectName; +import javax.management.monitor.MonitorNotification; + +/* + * Copyright 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. + * + * 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. + */ + +/* + * @test + * @bug 6373143 + * @summary Test MonitorNotification public constructor + * @author JFDenise + * @run clean InstantiateMonitorNotificationTest + * @run build InstantiateMonitorNotificationTest + * @run main InstantiateMonitorNotificationTest + */ + +public class InstantiateMonitorNotificationTest { + + public static void main(String[] args) throws Exception { + MonitorNotification notif = new MonitorNotification("com.foo.test", + ObjectName.valueOf(":type=Monitor"), + 999, + 999, + "A message", + ObjectName.valueOf(":type=Observed"), + "MyAttribute", + Integer.valueOf(14), + Integer.valueOf(15)); + System.out.println("Test passed"); + } +} diff --git a/jdk/test/javax/management/standardmbean/RegistrationTest.java b/jdk/test/javax/management/standardmbean/RegistrationTest.java new file mode 100644 index 00000000000..9ca0c464f00 --- /dev/null +++ b/jdk/test/javax/management/standardmbean/RegistrationTest.java @@ -0,0 +1,91 @@ +/* + * Copyright 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. + * + * 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. + */ + +/* + * @test + * @bug 6450834 + * @summary Forward MBeanRegistration calls + * @author JF Denise + * @run main RegistrationTest + */ + +import java.io.Serializable; +import java.lang.management.ManagementFactory; +import javax.management.*; + +public class RegistrationTest { + static boolean preRegisterCalled; + static boolean postRegisterCalled; + static boolean preDeregisterCalled; + static boolean postDeregisterCalled; + + static void checkResult(boolean expected) throws Exception { + if((preRegisterCalled != expected || + postRegisterCalled != expected || + preDeregisterCalled != expected || + postDeregisterCalled != expected)) + throw new Exception("Mismatch preRegisterCalled = " + + preRegisterCalled + ", postRegisterCalled = " + + postRegisterCalled + ", preDeregisterCalled = " + + preDeregisterCalled + ", postDeregisterCalled = " + + postDeregisterCalled); + } + static class Wrapped implements MBeanRegistration,Serializable { + + public ObjectName preRegister(MBeanServer server, ObjectName name) + throws Exception { + preRegisterCalled = true; + return name; + } + + public void postRegister(Boolean registrationDone) { + postRegisterCalled = true; + } + + public void preDeregister() throws Exception { + preDeregisterCalled = true; + } + + public void postDeregister() { + postDeregisterCalled = true; + } + + } + + public static void main(String[] args) throws Exception { + StandardMBean std = new StandardMBean(new Wrapped(), + Serializable.class); + ObjectName name = ObjectName.valueOf(":type=Test"); + ManagementFactory.getPlatformMBeanServer().registerMBean(std,name); + ManagementFactory.getPlatformMBeanServer().unregisterMBean(name); + checkResult(false); + StandardMBean.Options opt = new StandardMBean.Options(); + opt.setMBeanRegistrationForwarded(true); + std = new StandardMBean(new Wrapped(), + Serializable.class, opt ); + ManagementFactory.getPlatformMBeanServer().registerMBean(std,name); + ManagementFactory.getPlatformMBeanServer().unregisterMBean(name); + checkResult(true); + System.out.println("Test OK"); + } +} From 85e1e1e290ef9d63bc05988e8796cce21826d7f3 Mon Sep 17 00:00:00 2001 From: Jean-Francois Denise Date: Tue, 9 Dec 2008 16:26:30 +0100 Subject: [PATCH 069/110] 6287328: Add methods to StandardMBean to retrieve a method based on MBean{Attribute|Operation}Info Reviewed-by: emcmanus --- .../jmx/mbeanserver/MBeanInstantiator.java | 9 + .../jmx/mbeanserver/MBeanIntrospector.java | 2 +- .../javax/management/StandardMBean.java | 146 +++++++ .../standardmbean/FindMethodTest.java | 384 ++++++++++++++++++ 4 files changed, 540 insertions(+), 1 deletion(-) create mode 100644 jdk/test/javax/management/standardmbean/FindMethodTest.java diff --git a/jdk/src/share/classes/com/sun/jmx/mbeanserver/MBeanInstantiator.java b/jdk/src/share/classes/com/sun/jmx/mbeanserver/MBeanInstantiator.java index 789fd661aa9..4a6949dc868 100644 --- a/jdk/src/share/classes/com/sun/jmx/mbeanserver/MBeanInstantiator.java +++ b/jdk/src/share/classes/com/sun/jmx/mbeanserver/MBeanInstantiator.java @@ -613,6 +613,15 @@ public class MBeanInstantiator { return clr; } + /** + * Returns the class of a primitive type. + * @param name The type for which we the associated class. + * @return the class, or null if name is not primitive. + */ + public static Class primitiveType(String name) { + return primitiveClasses.get(name); + } + /** * Load a class with the specified loader, or with this object * class loader if the specified loader is null. diff --git a/jdk/src/share/classes/com/sun/jmx/mbeanserver/MBeanIntrospector.java b/jdk/src/share/classes/com/sun/jmx/mbeanserver/MBeanIntrospector.java index 50ce702e871..e98b41bbaa9 100644 --- a/jdk/src/share/classes/com/sun/jmx/mbeanserver/MBeanIntrospector.java +++ b/jdk/src/share/classes/com/sun/jmx/mbeanserver/MBeanIntrospector.java @@ -518,7 +518,7 @@ public abstract class MBeanIntrospector { * see the version of the @ManagedAttribute (or ...Operation) annotation * from that method, which might have a different description or whatever. */ - private static void getAnnotatedMethods(Class c, List methods) + public static void getAnnotatedMethods(Class c, List methods) throws Exception { Class sup = c.getSuperclass(); if (sup != null) diff --git a/jdk/src/share/classes/javax/management/StandardMBean.java b/jdk/src/share/classes/javax/management/StandardMBean.java index f3edc95d742..0d015ec19f8 100644 --- a/jdk/src/share/classes/javax/management/StandardMBean.java +++ b/jdk/src/share/classes/javax/management/StandardMBean.java @@ -28,14 +28,21 @@ package javax.management; import com.sun.jmx.mbeanserver.DescriptorCache; import com.sun.jmx.mbeanserver.Introspector; import com.sun.jmx.mbeanserver.MBeanInjector; +import com.sun.jmx.mbeanserver.MBeanInstantiator; +import com.sun.jmx.mbeanserver.MBeanIntrospector; import com.sun.jmx.mbeanserver.MBeanSupport; import com.sun.jmx.mbeanserver.MXBeanSupport; import com.sun.jmx.mbeanserver.StandardMBeanSupport; import com.sun.jmx.mbeanserver.Util; +import java.lang.reflect.Method; import java.security.AccessController; import java.security.PrivilegedAction; +import java.util.ArrayList; import java.util.HashMap; +import java.util.HashSet; +import java.util.List; import java.util.Map; +import java.util.Set; import java.util.WeakHashMap; import java.util.logging.Level; import javax.management.openmbean.MXBeanMappingFactory; @@ -1316,6 +1323,145 @@ public class StandardMBean implements DynamicWrapperMBean, MBeanRegistration { return natts; } + // ------------------------------------------------------------------ + // Resolve from a type name to a Class. + // ------------------------------------------------------------------ + private static Class resolveClass(MBeanFeatureInfo info, String type, + Class mbeanItf) + throws ClassNotFoundException { + String t = (String) info.getDescriptor(). + getFieldValue(JMX.ORIGINAL_TYPE_FIELD); + if (t == null) { + t = type; + } + Class clazz = MBeanInstantiator.primitiveType(t); + if(clazz == null) + clazz = Class.forName(t, false, mbeanItf.getClassLoader()); + return clazz; + } + + // ------------------------------------------------------------------ + // Return the subset of valid Management methods + // ------------------------------------------------------------------ + private static Method getManagementMethod(final Class mbeanType, + String opName, Class... parameters) throws NoSuchMethodException, + SecurityException { + Method m = mbeanType.getMethod(opName, parameters); + if (mbeanType.isInterface()) { + return m; + } + final List methods = new ArrayList(); + try { + MBeanIntrospector.getAnnotatedMethods(mbeanType, methods); + }catch (SecurityException ex) { + throw ex; + }catch (NoSuchMethodException ex) { + throw ex; + }catch (Exception ex) { + NoSuchMethodException nsme = + new NoSuchMethodException(ex.toString()); + nsme.initCause(ex); + throw nsme; + } + + if(methods.contains(m)) return m; + + throw new NoSuchMethodException("Operation " + opName + + " not found in management interface " + mbeanType.getName()); + } + /** + * Retrieve the set of MBean attribute accessor Methods + * located in the mbeanInterface MBean interface that + * correspond to the attr MBeanAttributeInfo + * parameter. + * @param mbeanInterface the management interface. + * Can be a standard MBean or MXBean interface, or a Java class + * annotated with {@link MBean @MBean} or {@link MXBean @MXBean}. + * @param attr The attribute we want the accessors for. + * @return The set of accessors. + * @throws java.lang.NoSuchMethodException if no accessor exists + * for the given {@link MBeanAttributeInfo MBeanAttributeInfo}. + * @throws java.lang.IllegalArgumentException if at least one + * of the two parameters is null. + * @throws java.lang.ClassNotFoundException if the class named in the + * attribute type is not found. + * @throws java.lang.SecurityException if this exception is + * encountered while introspecting the MBean interface. + */ + public static Set findAttributeAccessors(Class mbeanInterface, + MBeanAttributeInfo attr) + throws NoSuchMethodException, + ClassNotFoundException { + if (mbeanInterface == null || attr == null) { + throw new IllegalArgumentException("mbeanInterface or attr " + + "parameter is null"); + } + String attributeName = attr.getName(); + Set methods = new HashSet(); + Class clazz = resolveClass(attr, attr.getType(), mbeanInterface); + if (attr.isReadable()) { + String radical = "get"; + if(attr.isIs()) radical = "is"; + Method getter = getManagementMethod(mbeanInterface, radical + + attributeName); + if (getter.getReturnType().equals(clazz)) { + methods.add(getter); + } else { + throw new NoSuchMethodException("Invalid getter return type, " + + "should be " + clazz + ", found " + + getter.getReturnType()); + } + } + if (attr.isWritable()) { + Method setter = getManagementMethod(mbeanInterface, "set" + + attributeName, + clazz); + if (setter.getReturnType().equals(Void.TYPE)) { + methods.add(setter); + } else { + throw new NoSuchMethodException("Invalid setter return type, " + + "should be void, found " + setter.getReturnType()); + } + } + return methods; + } + + /** + * Retrieve the MBean operation Method + * located in the mbeanInterface MBean interface that + * corresponds to the provided op + * MBeanOperationInfo parameter. + * @param mbeanInterface the management interface. + * Can be a standard MBean or MXBean interface, or a Java class + * annotated with {@link MBean @MBean} or {@link MXBean @MXBean}. + * @param op The operation we want the method for. + * @return the method corresponding to the provided MBeanOperationInfo. + * @throws java.lang.NoSuchMethodException if no method exists + * for the given {@link MBeanOperationInfo MBeanOperationInfo}. + * @throws java.lang.IllegalArgumentException if at least one + * of the two parameters is null. + * @throws java.lang.ClassNotFoundException if one of the + * classes named in the operation signature array is not found. + * @throws java.lang.SecurityException if this exception is + * encountered while introspecting the MBean interface. + */ + public static Method findOperationMethod(Class mbeanInterface, + MBeanOperationInfo op) + throws ClassNotFoundException, NoSuchMethodException { + if (mbeanInterface == null || op == null) { + throw new IllegalArgumentException("mbeanInterface or op " + + "parameter is null"); + } + List> classes = new ArrayList>(); + for (MBeanParameterInfo info : op.getSignature()) { + Class clazz = resolveClass(info, info.getType(), mbeanInterface); + classes.add(clazz); + } + Class[] signature = new Class[classes.size()]; + classes.toArray(signature); + return getManagementMethod(mbeanInterface, op.getName(), signature); + } + /** *

Allows the MBean to perform any operations it needs before * being registered in the MBean server. If the name of the MBean diff --git a/jdk/test/javax/management/standardmbean/FindMethodTest.java b/jdk/test/javax/management/standardmbean/FindMethodTest.java new file mode 100644 index 00000000000..b568d70ac88 --- /dev/null +++ b/jdk/test/javax/management/standardmbean/FindMethodTest.java @@ -0,0 +1,384 @@ +/* + * Copyright 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. + * + * 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. + */ + +/* + * @test + * @bug 6287328 + * @summary Add methods to StandardMBean to retrieve a method based on + * MBean{Attribute|Operation}Info + * @author Jean-Francois Denise + * @run main FindMethodTest + */ + +import java.lang.management.ManagementFactory; +import java.lang.management.MemoryMXBean; +import java.lang.management.ThreadMXBean; +import java.lang.reflect.Method; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Map; +import java.util.Set; +import javax.management.MBean; +import javax.management.MBeanAttributeInfo; +import javax.management.MBeanInfo; +import javax.management.MBeanOperationInfo; +import javax.management.MBeanParameterInfo; +import javax.management.MBeanServer; +import javax.management.ManagedAttribute; +import javax.management.ManagedOperation; +import javax.management.ObjectName; +import javax.management.StandardMBean; + +public class FindMethodTest { + + private static MBeanServer server = + ManagementFactory.getPlatformMBeanServer(); + + private static Map> expectedMapping = + new HashMap>(); + private static Set STATE_SET = new HashSet(); + private static Set ENABLED_SET = new HashSet(); + private static Set DOIT_SET = new HashSet(); + private static Set STATUS_SET = new HashSet(); + private static Set HEAPMEMORYUSAGE_SET = new HashSet(); + private static Set THREADINFO_SET = new HashSet(); + private static Set DOIT_ANNOTATED_SET = new HashSet(); + private static Set IT_ANNOTATED_SET = new HashSet(); + private static HashSet> TEST_MBEAN_SET = + new HashSet>(); + private static HashSet> ANNOTATED_MBEAN_SET = + new HashSet>(); + private static HashSet> MEMORY_MBEAN_SET = + new HashSet>(); + private static HashSet> THREAD_MBEAN_SET = + new HashSet>(); + + public interface TestMBean { + + public void doIt(); + + public void setState(String str); + + public String getState(); + + public boolean isEnabled(); + + public void setStatus(int i); + } + + public interface FaultyTestMBean { + + public void doIt(String doIt); + + public long getState(); + + public void setEnabled(boolean b); + + public int getStatus(); + + public String setWrong(int i); + } + + @MBean + public static class AnnotatedTest { + @ManagedOperation + public void doItAnnotated() { + + } + + public void dontDoIt() { + + } + + @ManagedAttribute + public String getItAnnotated() { + return null; + } + @ManagedAttribute + public void setItAnnotated(String str) { + + } + + public String getItNot() { + return null; + } + + } + + static class Test implements TestMBean { + + public void doIt() { + throw new UnsupportedOperationException("Not supported yet."); + } + + public void setState(String str) { + throw new UnsupportedOperationException("Not supported yet."); + } + + public String getState() { + throw new UnsupportedOperationException("Not supported yet."); + } + + public boolean isEnabled() { + throw new UnsupportedOperationException("Not supported yet."); + } + + public void setStatus(int i) { + throw new UnsupportedOperationException("Not supported yet."); + } + } + + + static { + try { + ENABLED_SET.add(TestMBean.class.getDeclaredMethod("isEnabled")); + + STATE_SET.add(TestMBean.class.getDeclaredMethod("getState")); + STATE_SET.add(TestMBean.class.getDeclaredMethod("setState", + String.class)); + STATUS_SET.add(TestMBean.class.getDeclaredMethod("setStatus", + int.class)); + + DOIT_SET.add(TestMBean.class.getDeclaredMethod("doIt")); + + DOIT_ANNOTATED_SET.add(AnnotatedTest.class.getDeclaredMethod("doItAnnotated")); + + IT_ANNOTATED_SET.add(AnnotatedTest.class.getDeclaredMethod("getItAnnotated")); + IT_ANNOTATED_SET.add(AnnotatedTest.class.getDeclaredMethod("setItAnnotated", String.class)); + + THREADINFO_SET.add(ThreadMXBean.class.getDeclaredMethod("dumpAllThreads", boolean.class, + boolean.class)); + + HEAPMEMORYUSAGE_SET.add(MemoryMXBean.class.getDeclaredMethod("getHeapMemoryUsage")); + + TEST_MBEAN_SET.add(ENABLED_SET); + TEST_MBEAN_SET.add(STATE_SET); + TEST_MBEAN_SET.add(STATUS_SET); + TEST_MBEAN_SET.add(DOIT_SET); + + ANNOTATED_MBEAN_SET.add(DOIT_ANNOTATED_SET); + ANNOTATED_MBEAN_SET.add(IT_ANNOTATED_SET); + + MEMORY_MBEAN_SET.add(HEAPMEMORYUSAGE_SET); + + THREAD_MBEAN_SET.add(THREADINFO_SET); + + expectedMapping.put("State", STATE_SET); + expectedMapping.put("Enabled", ENABLED_SET); + expectedMapping.put("Status", STATUS_SET); + expectedMapping.put("doIt", DOIT_SET); + expectedMapping.put("HeapMemoryUsage", HEAPMEMORYUSAGE_SET); + expectedMapping.put("dumpAllThreads", THREADINFO_SET); + expectedMapping.put("doItAnnotated", DOIT_ANNOTATED_SET); + expectedMapping.put("ItAnnotated", IT_ANNOTATED_SET); + + } catch (Exception ex) { + ex.printStackTrace(); + throw new RuntimeException("Initialization failed"); + } + } + + private static void testMBean(ObjectName name, Class itf, + HashSet> expectMappings) + throws Exception { + + Set> expectedMappings = + (Set>) expectMappings.clone(); + + MBeanInfo info = server.getMBeanInfo(name); + for (MBeanAttributeInfo attr : info.getAttributes()) { + Set expected = expectedMapping.get(attr.getName()); + if (expected == null) { + continue; + } + if (!expectedMappings.remove(expected)) { + throw new Exception("The mapping to use is not the expected " + + "one for " + attr); + } + System.out.println("Expected : " + expected); + Set found = + StandardMBean.findAttributeAccessors(itf, attr); + System.out.println("Found : " + found); + if (!found.equals(expected)) { + throw new Exception("Mapping error."); + } + } + for (MBeanOperationInfo op : info.getOperations()) { + Set expected = expectedMapping.get(op.getName()); + if (expected == null) { + continue; + } + if (!expectedMappings.remove(expected)) { + throw new Exception("The mapping to use is not the expected " + + "one for " + op); + } + System.out.println("Expected : " + expected); + Method method = + StandardMBean.findOperationMethod(itf, op); + Set found = new HashSet(); + found.add(method); + System.out.println("Found : " + found); + if (!found.equals(expected)) { + throw new Exception("Mapping error."); + } + } + + if (expectedMappings.size() != 0) { + throw new Exception("Some mapping have not been found " + + expectedMappings); + } else { + System.out.println("All mappings have been found"); + } + } + + public static void main(String[] args) throws Exception { + // Positive tests + Test t = new Test(); + ObjectName name = ObjectName.valueOf(":type=Test"); + server.registerMBean(t, name); + AnnotatedTest at = new AnnotatedTest(); + ObjectName annotatedName = ObjectName.valueOf(":type=AnnotatedTest"); + server.registerMBean(at, annotatedName); + + testMBean(name, TestMBean.class, TEST_MBEAN_SET); + + testMBean(annotatedName, AnnotatedTest.class, ANNOTATED_MBEAN_SET); + + ObjectName memoryName = + ObjectName.valueOf(ManagementFactory.MEMORY_MXBEAN_NAME); + testMBean(memoryName, MemoryMXBean.class, MEMORY_MBEAN_SET); + + ObjectName threadName = + ObjectName.valueOf(ManagementFactory.THREAD_MXBEAN_NAME); + testMBean(threadName, ThreadMXBean.class, THREAD_MBEAN_SET); + + // Negative tests + try { + StandardMBean.findOperationMethod(null, + new MBeanOperationInfo("Test", + TestMBean.class.getDeclaredMethod("doIt"))); + throw new Exception("Expected exception not found"); + } catch (IllegalArgumentException ex) { + System.out.println("OK received expected exception " + ex); + } + try { + StandardMBean.findOperationMethod(TestMBean.class, null); + throw new Exception("Expected exception not found"); + } catch (IllegalArgumentException ex) { + System.out.println("OK received expected exception " + ex); + } + try { + StandardMBean.findAttributeAccessors(null, + new MBeanAttributeInfo("Test", "Test", + TestMBean.class.getDeclaredMethod("getState"), + TestMBean.class.getDeclaredMethod("setState", + String.class))); + throw new Exception("Expected exception not found"); + } catch (IllegalArgumentException ex) { + System.out.println("OK received expected exception " + ex); + } + try { + StandardMBean.findAttributeAccessors(TestMBean.class, null); + throw new Exception("Expected exception not found"); + } catch (IllegalArgumentException ex) { + System.out.println("OK received expected exception " + ex); + } + //Wrong operation signature + try { + StandardMBean.findOperationMethod(TestMBean.class, + new MBeanOperationInfo("FaultyTest", + FaultyTestMBean.class.getDeclaredMethod("doIt", + String.class))); + throw new Exception("Expected exception not found"); + } catch (NoSuchMethodException ex) { + System.out.println("OK received expected exception " + ex); + } + //Wrong attribute accessor + try { + StandardMBean.findAttributeAccessors(TestMBean.class, + new MBeanAttributeInfo("FaultyTest", "FaultyTest", null, + FaultyTestMBean.class.getDeclaredMethod("setEnabled", + String.class))); + throw new Exception("Expected exception not found"); + } catch (NoSuchMethodException ex) { + System.out.println("OK received expected exception " + ex); + } + //Wrong attribute type + try { + StandardMBean.findAttributeAccessors(TestMBean.class, + new MBeanAttributeInfo("State", "toto.FaultType", + "FaultyTest", true, true, false)); + throw new Exception("Expected exception not found"); + } catch (ClassNotFoundException ex) { + System.out.println("OK received expected exception " + ex); + } + //Wrong operation parameter type + try { + MBeanParameterInfo[] p = {new MBeanParameterInfo("p1", + "toto.FaultType2", "FaultyParameter") + }; + StandardMBean.findOperationMethod(TestMBean.class, + new MBeanOperationInfo("doIt", "FaultyMethod", p, "void", + 0)); + throw new Exception("Expected exception not found"); + } catch (ClassNotFoundException ex) { + System.out.println("OK received expected exception " + ex); + } + // Check that not annotated attributes are not found + try { + StandardMBean.findAttributeAccessors(AnnotatedTest.class, + new MBeanAttributeInfo("ItNot", String.class.getName(), + "FaultyTest", true, false, false)); + throw new Exception("Expected exception not found"); + } catch (NoSuchMethodException ex) { + System.out.println("OK received expected exception " + ex); + } + // Check that not annotated operations are not found + try { + StandardMBean.findOperationMethod(AnnotatedTest.class, + new MBeanOperationInfo("dontDoIt","dontDoIt",null, + Void.TYPE.getName(),0)); + throw new Exception("Expected exception not found"); + } catch (NoSuchMethodException ex) { + System.out.println("OK received expected exception " + ex); + } + // Check that wrong getter return type throws Exception + try { + StandardMBean.findAttributeAccessors(AnnotatedTest.class, + new MBeanAttributeInfo("ItAnnotated", Long.class.getName(), + "FaultyTest", true, false, false)); + throw new Exception("Expected exception not found"); + } catch (NoSuchMethodException ex) { + System.out.println("OK received expected exception " + ex); + } + // Check that wrong setter return type throws Exception + try { + StandardMBean.findAttributeAccessors(FaultyTestMBean.class, + new MBeanAttributeInfo("Wrong", String.class.getName(), + "FaultyTest", true, true, false)); + throw new Exception("Expected exception not found"); + } catch (NoSuchMethodException ex) { + System.out.println("OK received expected exception " + ex); + } + } +} From 34982c7509f8793a94f33ab7284204c412c832b1 Mon Sep 17 00:00:00 2001 From: Shanliang Jiang Date: Tue, 9 Dec 2008 17:41:04 +0100 Subject: [PATCH 070/110] 6405891: MLet: could be improved to load a native lib Reviewed-by: emcmanus --- jdk/src/share/classes/javax/management/loading/MLet.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/jdk/src/share/classes/javax/management/loading/MLet.java b/jdk/src/share/classes/javax/management/loading/MLet.java index c006dc09b11..ffc5ce0afa1 100644 --- a/jdk/src/share/classes/javax/management/loading/MLet.java +++ b/jdk/src/share/classes/javax/management/loading/MLet.java @@ -1165,9 +1165,10 @@ public class MLet extends java.net.URLClassLoader file.deleteOnExit(); FileOutputStream fileOutput = new FileOutputStream(file); try { - int c; - while ((c = is.read()) != -1) { - fileOutput.write(c); + byte[] buf = new byte[4096]; + int n; + while ((n = is.read(buf)) >= 0) { + fileOutput.write(buf, 0, n); } } finally { fileOutput.close(); From ccf03a6e2c100092c38a049811530402551809b9 Mon Sep 17 00:00:00 2001 From: Eamonn McManus Date: Tue, 9 Dec 2008 18:30:27 +0100 Subject: [PATCH 071/110] 6780803: Wrong parameter name in description of EventClient::addListeners() 6470295: Misleading exception message says context classloader when it isn't 6714954: Description of MBeanPermission checking in MBeanServer javadoc is inaccurate 6732037: Event Service spec needs more detail about Executor use 6740900: Specify that listeners invoked via SendNotification should not block 6778436: Typo in @NotificationInfos spec Reviewed-by: dfuchs --- .../com/sun/jmx/mbeanserver/MBeanInstantiator.java | 2 +- .../classes/javax/management/MBeanRegistration.java | 3 +++ .../share/classes/javax/management/MBeanServer.java | 6 +++--- .../classes/javax/management/event/EventClient.java | 9 +++++---- .../javax/management/event/FetchingEventRelay.java | 12 ++++++++++-- 5 files changed, 22 insertions(+), 10 deletions(-) diff --git a/jdk/src/share/classes/com/sun/jmx/mbeanserver/MBeanInstantiator.java b/jdk/src/share/classes/com/sun/jmx/mbeanserver/MBeanInstantiator.java index 4a6949dc868..f3bd67e2f23 100644 --- a/jdk/src/share/classes/com/sun/jmx/mbeanserver/MBeanInstantiator.java +++ b/jdk/src/share/classes/com/sun/jmx/mbeanserver/MBeanInstantiator.java @@ -645,7 +645,7 @@ public class MBeanInstantiator { } } catch (ClassNotFoundException e) { throw new ReflectionException(e, - "The MBean class could not be loaded by the context classloader"); + "The MBean class could not be loaded"); } return theClass; } diff --git a/jdk/src/share/classes/javax/management/MBeanRegistration.java b/jdk/src/share/classes/javax/management/MBeanRegistration.java index 723045acc93..93d391d7f17 100644 --- a/jdk/src/share/classes/javax/management/MBeanRegistration.java +++ b/jdk/src/share/classes/javax/management/MBeanRegistration.java @@ -79,6 +79,9 @@ package javax.management; * } * * + *

(Listeners may be invoked in the same thread as the caller of + * {@code sender.sendNotification}.)

+ * *

A field to be injected must not be static. It is recommended that * such fields be declared {@code volatile}.

* diff --git a/jdk/src/share/classes/javax/management/MBeanServer.java b/jdk/src/share/classes/javax/management/MBeanServer.java index e82650288bb..6e4ee0a69c3 100644 --- a/jdk/src/share/classes/javax/management/MBeanServer.java +++ b/jdk/src/share/classes/javax/management/MBeanServer.java @@ -186,11 +186,11 @@ import javax.management.loading.ClassLoaderRepository; * caller's permissions must imply {@link * MBeanPermission#MBeanPermission(String,String,String,ObjectName,String) * MBeanPermission(mbeanServerName, null, null, null, "queryMBeans")}. - * Additionally, for each MBean that matches name, + * Additionally, for each MBean n that matches name, * if the caller's permissions do not imply {@link * MBeanPermission#MBeanPermission(String,String,String,ObjectName,String) - * MBeanPermission(mbeanServerName, className, null, name, "queryMBeans")}, the - * MBean server will behave as if that MBean did not exist.

+ * MBeanPermission(mbeanServerName, className, null, n, "queryMBeans")}, + * the MBean server will behave as if that MBean did not exist.

* *

Certain query elements perform operations on the MBean server. * If the caller does not have the required permissions for a given diff --git a/jdk/src/share/classes/javax/management/event/EventClient.java b/jdk/src/share/classes/javax/management/event/EventClient.java index a2f6bc617fe..2688b94937f 100644 --- a/jdk/src/share/classes/javax/management/event/EventClient.java +++ b/jdk/src/share/classes/javax/management/event/EventClient.java @@ -187,9 +187,10 @@ public class EventClient implements EventConsumer, NotificationManager { * forwarded by the {@link EventClientDelegateMBean}. If {@code null}, a * {@link FetchingEventRelay} object will be used. * @param distributingExecutor Used to distribute notifications to local - * listeners. If {@code null}, the thread that calls {@link - * EventReceiver#receive EventReceiver.receive} from the {@link EventRelay} - * object is used. + * listeners. Only one job at a time will be submitted to this Executor. + * If {@code distributingExecutor} is {@code null}, the thread that calls + * {@link EventReceiver#receive EventReceiver.receive} from the {@link + * EventRelay} object is used. * @param leaseScheduler An object that will be used to schedule the * periodic {@linkplain EventClientDelegateMBean#lease lease updates}. * If {@code null}, a default scheduler will be used. @@ -545,7 +546,7 @@ public class EventClient implements EventConsumer, NotificationManager { * *

The method returns the listeners which were added successfully. The * elements in the returned collection are a subset of the elements in - * {@code infoList}. If all listeners were added successfully, the two + * {@code listeners}. If all listeners were added successfully, the two * collections are the same. If no listener was added successfully, the * returned collection is empty.

* diff --git a/jdk/src/share/classes/javax/management/event/FetchingEventRelay.java b/jdk/src/share/classes/javax/management/event/FetchingEventRelay.java index e4c8d81d87b..cbec8aa82be 100644 --- a/jdk/src/share/classes/javax/management/event/FetchingEventRelay.java +++ b/jdk/src/share/classes/javax/management/event/FetchingEventRelay.java @@ -39,10 +39,18 @@ import javax.management.MBeanException; import javax.management.remote.NotificationResult; /** - * This class is an implementation of the {@link EventRelay} interface. It calls + *

This class is an implementation of the {@link EventRelay} interface. It calls * {@link EventClientDelegateMBean#fetchNotifications * fetchNotifications(String, long, int, long)} to get - * notifications and then forwards them to an {@link EventReceiver} object. + * notifications and then forwards them to an {@link EventReceiver} object.

+ * + *

A {@code fetchExecutor} parameter can be specified when creating a + * {@code FetchingEventRelay}. That is then the {@code Executor} that will + * be used to perform the {@code fetchNotifications} operation. Only one + * job at a time will be submitted to this {@code Executor}. The behavior + * is unspecified if {@link Executor#execute} throws an exception, including + * {@link java.util.concurrent.RejectedExecutionException + * RejectedExecutionException}. * * @since JMX 2.0 */ From d2c931b22261ed13315609cffba52c8861d75044 Mon Sep 17 00:00:00 2001 From: Shanliang Jiang Date: Tue, 9 Dec 2008 18:42:13 +0100 Subject: [PATCH 072/110] 6760712: Provide a connector server option that causes it not to prevent the VM from exiting Reviewed-by: emcmanus --- .../com/sun/jmx/remote/util/EnvHelp.java | 19 +++ .../remote/rmi/RMIJRMPServerImpl.java | 26 +++- .../connection/DaemonRMIExporterTest.java | 123 ++++++++++++++++++ 3 files changed, 164 insertions(+), 4 deletions(-) create mode 100644 jdk/test/javax/management/remote/mandatory/connection/DaemonRMIExporterTest.java diff --git a/jdk/src/share/classes/com/sun/jmx/remote/util/EnvHelp.java b/jdk/src/share/classes/com/sun/jmx/remote/util/EnvHelp.java index c86df1c88ee..683359ba950 100644 --- a/jdk/src/share/classes/com/sun/jmx/remote/util/EnvHelp.java +++ b/jdk/src/share/classes/com/sun/jmx/remote/util/EnvHelp.java @@ -1,3 +1,4 @@ + /* * Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. @@ -798,6 +799,24 @@ public class EnvHelp { JMXConnectorServer.DELEGATE_TO_EVENT_SERVICE, true, true); } + /** + *

Name of the attribute that specifies whether a connector server + * should not prevent the VM from exiting + */ + public static final String JMX_SERVER_DAEMON = "jmx.remote.x.daemon"; + + /** + * Returns true if {@value SERVER_DAEMON} is specified in the {@code env} + * as a key and its value is a String and it is equal to true ignoring case. + * + * @param env + * @return + */ + public static boolean isServerDaemon(Map env) { + return (env != null) && + ("true".equalsIgnoreCase((String)env.get(JMX_SERVER_DAEMON))); + } + // /** // *

Name of the attribute that specifies an EventRelay object to use. // */ diff --git a/jdk/src/share/classes/javax/management/remote/rmi/RMIJRMPServerImpl.java b/jdk/src/share/classes/javax/management/remote/rmi/RMIJRMPServerImpl.java index bf8c5ca4fae..ef4f5e988a9 100644 --- a/jdk/src/share/classes/javax/management/remote/rmi/RMIJRMPServerImpl.java +++ b/jdk/src/share/classes/javax/management/remote/rmi/RMIJRMPServerImpl.java @@ -38,6 +38,9 @@ import java.util.Collections; import javax.security.auth.Subject; import com.sun.jmx.remote.internal.RMIExporter; +import com.sun.jmx.remote.util.EnvHelp; +import sun.rmi.server.UnicastServerRef; +import sun.rmi.server.UnicastServerRef2; /** *

An {@link RMIServer} object that is exported through JRMP and that @@ -93,12 +96,27 @@ public class RMIJRMPServerImpl extends RMIServerImpl { } private void export(Remote obj) throws RemoteException { - RMIExporter exporter = + final RMIExporter exporter = (RMIExporter) env.get(RMIExporter.EXPORTER_ATTRIBUTE); - if (exporter == null) - UnicastRemoteObject.exportObject(obj, port, csf, ssf); - else + final boolean daemon = EnvHelp.isServerDaemon(env); + + if (daemon && exporter != null) { + throw new IllegalArgumentException("If "+EnvHelp.JMX_SERVER_DAEMON+ + " is specified as true, "+RMIExporter.EXPORTER_ATTRIBUTE+ + " cannot be used to specify an exporter!"); + } + + if (daemon) { + if (csf == null && ssf == null) { + new UnicastServerRef(port).exportObject(obj, null, true); + } else { + new UnicastServerRef2(port, csf, ssf).exportObject(obj, null, true); + } + } else if (exporter != null) { exporter.exportObject(obj, port, csf, ssf); + } else { + UnicastRemoteObject.exportObject(obj, port, csf, ssf); + } } private void unexport(Remote obj, boolean force) diff --git a/jdk/test/javax/management/remote/mandatory/connection/DaemonRMIExporterTest.java b/jdk/test/javax/management/remote/mandatory/connection/DaemonRMIExporterTest.java new file mode 100644 index 00000000000..3ee6066b0e5 --- /dev/null +++ b/jdk/test/javax/management/remote/mandatory/connection/DaemonRMIExporterTest.java @@ -0,0 +1,123 @@ +/* + * Copyright 2003-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. + * + * 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. + */ + + +/* + * @test + * @bug 6760712 + * @summary test the connector server option that causes it not to prevent the + * VM from exiting + * @author Shanliang JIANG, Eamonn McManus + * @run main/othervm DaemonRMIExporterTest + */ +import java.util.Arrays; +import java.util.Collections; +import java.util.HashSet; +import java.util.Map; +import java.util.Set; + +import javax.management.MBeanServerFactory; +import javax.management.remote.JMXConnector; +import javax.management.remote.JMXConnectorFactory; +import javax.management.remote.JMXServiceURL; +import javax.management.remote.JMXConnectorServer; +import javax.management.remote.JMXConnectorServerFactory; + +// Test the connector server option that causes it not to prevent the VM +// from exiting. It's tricky to test exactly that, though possible. If +// we're being run from within jtreg, then jtreg has threads of its own +// that will prevent the VM from exiting. What's more it will kill all +// threads that the test created as soon as the main method returns, +// including the ones that would prevent the VM from exiting without the +// special option. +// Here we check that the test code does not create +// any permanent non-daemon threads, by recording the initial set of +// non-daemon threads (including at least one from jtreg), doing our stuff, +// then waiting for there to be no non-daemon threads that were not in +// the initial set. +public class DaemonRMIExporterTest { + public static void main(String[] args) throws Exception { + Set initialNonDaemonThreads = getNonDaemonThreads(); + + JMXServiceURL addr = new JMXServiceURL("rmi", null, 0); + System.out.println("DaemonRMIExporterTest: Creating a RMIConnectorServer on " + addr); + Map env = + Collections.singletonMap("jmx.remote.x.daemon", "true"); + JMXConnectorServer server = + JMXConnectorServerFactory.newJMXConnectorServer(addr, + env, + MBeanServerFactory.createMBeanServer()); + server.start(); + System.out.println("DaemonRMIExporterTest: Started the server on " + server.getAddress()); + + System.out.println("DaemonRMIExporterTest: Connecting a client to the server ..."); + final JMXConnector conn = JMXConnectorFactory.connect(server.getAddress()); + conn.getMBeanServerConnection().getDefaultDomain(); + + System.out.println("DaemonRMIExporterTest: Closing the client ..."); + conn.close(); + + System.out.println("DaemonRMIExporterTest No more user code to execute, the VM should " + + "exit normally, otherwise will be blocked forever if the bug is not fixed."); + + long deadline = System.currentTimeMillis() + 10000; + ok: { + while (System.currentTimeMillis() < deadline) { + Set nonDaemonThreads = getNonDaemonThreads(); + nonDaemonThreads.removeAll(initialNonDaemonThreads); + if (nonDaemonThreads.isEmpty()) + break ok; + System.out.println("Non-daemon threads: " + nonDaemonThreads); + try { + Thread.sleep(500); + } catch (InterruptedException e) { + throw new AssertionError(e); + } + } + throw new Exception("TEST FAILED: non-daemon threads remain"); + } + + System.out.println("TEST PASSED"); + } + + private static Set getNonDaemonThreads() { + ThreadGroup tg = Thread.currentThread().getThreadGroup(); + while (tg.getParent() != null) + tg = tg.getParent(); + Thread[] threads = null; + for (int size = 10; size < 10000; size *= 2) { + threads = new Thread[size]; + int n = tg.enumerate(threads, true); + if (n < size) { + threads = Arrays.copyOf(threads, n); + break; + } + } + Set ndThreads = new HashSet(); + for (Thread t : threads) { + if (!t.isDaemon()) + ndThreads.add(t); + } + return ndThreads; + } +} From 6a4903d458653cca4ff277993952f6c5363233c1 Mon Sep 17 00:00:00 2001 From: Shanliang Jiang Date: Tue, 9 Dec 2008 19:44:22 +0100 Subject: [PATCH 073/110] 6332907: Add ability for connector server to close individual connections Reviewed-by: emcmanus --- .../com/sun/jmx/remote/util/EnvHelp.java | 2 +- .../management/remote/JMXConnectorServer.java | 28 +++ .../remote/rmi/RMIConnectorServer.java | 20 ++ .../management/remote/rmi/RMIServerImpl.java | 57 ++++- .../connectorServer/CloseConnectionTest.java | 217 ++++++++++++++++++ 5 files changed, 321 insertions(+), 3 deletions(-) create mode 100644 jdk/test/javax/management/remote/mandatory/connectorServer/CloseConnectionTest.java diff --git a/jdk/src/share/classes/com/sun/jmx/remote/util/EnvHelp.java b/jdk/src/share/classes/com/sun/jmx/remote/util/EnvHelp.java index 683359ba950..e95c1e049df 100644 --- a/jdk/src/share/classes/com/sun/jmx/remote/util/EnvHelp.java +++ b/jdk/src/share/classes/com/sun/jmx/remote/util/EnvHelp.java @@ -812,7 +812,7 @@ public class EnvHelp { * @param env * @return */ - public static boolean isServerDaemon(Map env) { + public static boolean isServerDaemon(Map env) { return (env != null) && ("true".equalsIgnoreCase((String)env.get(JMX_SERVER_DAEMON))); } diff --git a/jdk/src/share/classes/javax/management/remote/JMXConnectorServer.java b/jdk/src/share/classes/javax/management/remote/JMXConnectorServer.java index c9b4721911b..056114cfc76 100644 --- a/jdk/src/share/classes/javax/management/remote/JMXConnectorServer.java +++ b/jdk/src/share/classes/javax/management/remote/JMXConnectorServer.java @@ -386,6 +386,34 @@ public abstract class JMXConnectorServer return false; } + /** + * Closes a client connection. If the connection is successfully closed, + * the method {@link #connectionClosed} is called to notify interested parties. + *

Not all connector servers support this method. For those that do, it + * should be possible to cause a new client connection to fail before it + * can be used, by calling this method from within a + * {@link javax.management.NotificationListener} + * when it receives a {@link JMXConnectionNotification#OPENED} notification. + * This allows the owner of a connector server to deny certain connections, + * typically based on the information in the connection id. + *

The implementation of this method in {@code JMXConnectorServer} throws + * {@code UnsupportedOperationException}. Subclasses can override this + * method to support closing a specified client connection. + * + * @param connectionId the id of the client connection to be closed. + * @throws IllegalStateException if the server is not started or is closed. + * @throws IllegalArgumentException if {@code connectionId} is null or is + * not the id of any open connection. + * @throws java.io.IOException if an I/O error appears when closing the + * connection. + * + * @since 1.7 + */ + public void closeConnection(String connectionId) + throws IOException { + throw new UnsupportedOperationException(); + } + /** *

Install {@link MBeanServerForwarder}s in the system chain * based on the attributes in the given {@code Map}. A connector diff --git a/jdk/src/share/classes/javax/management/remote/rmi/RMIConnectorServer.java b/jdk/src/share/classes/javax/management/remote/rmi/RMIConnectorServer.java index 9d38c7e8944..7acc02adbd5 100644 --- a/jdk/src/share/classes/javax/management/remote/rmi/RMIConnectorServer.java +++ b/jdk/src/share/classes/javax/management/remote/rmi/RMIConnectorServer.java @@ -602,6 +602,26 @@ public class RMIConnectorServer extends JMXConnectorServer { return true; } + /** + * {@inheritDoc} + *

The {@code RMIConnectorServer} class does support closing a specified + * client connection. + * @throws IllegalStateException if the server is not started or is closed. + * @throws IllegalArgumentException if {@code connectionId} is null or is + * not the id of any open connection. + * @since 1.7 + */ + @Override + public void closeConnection(String connectionId) + throws IOException { + if (isActive()) { + rmiServerImpl.closeConnection(connectionId); + } else { + throw new IllegalStateException( + "The server is not started or is closed."); + } + } + /* We repeat the definitions of connection{Opened,Closed,Failed} here so that they are accessible to other classes in this package even though they have protected access. */ diff --git a/jdk/src/share/classes/javax/management/remote/rmi/RMIServerImpl.java b/jdk/src/share/classes/javax/management/remote/rmi/RMIServerImpl.java index d87b1d0544b..6fbc9a2b120 100644 --- a/jdk/src/share/classes/javax/management/remote/rmi/RMIServerImpl.java +++ b/jdk/src/share/classes/javax/management/remote/rmi/RMIServerImpl.java @@ -249,20 +249,73 @@ public abstract class RMIServerImpl implements Closeable, RMIServer { RMIConnection client = makeClient(connectionId, subject); - connServer.connectionOpened(connectionId, "Connection opened", null); - dropDeadReferences(); WeakReference wr = new WeakReference(client); synchronized (clientList) { clientList.add(wr); } + connServer.connectionOpened(connectionId, "Connection opened", null); + + synchronized (clientList) { + if (!clientList.contains(wr)) { + // can be removed only by a JMXConnectionNotification listener + throw new IOException("The connection is refused."); + } + } + if (tracing) logger.trace("newClient","new connection done: " + connectionId ); return client; } + /** + * Closes a client connection. + * @param connectionId the id of the client connection to be closed. + * @throws IllegalArgumentException if {@code connectionId} is null or is + * not the id of any open connection. + * @throws java.io.IOException if an I/O error appears when closing the + * connection. + * + * @since 1.7 + */ + public void closeConnection(String connectionId) + throws IOException { + final boolean debug = logger.debugOn(); + + if (debug) logger.trace("closeConnection","cconnectionId="+connectionId); + + if (connectionId == null) + throw new IllegalArgumentException("Null connectionId."); + + RMIConnection client = null; + synchronized (clientList) { + dropDeadReferences(); + for (Iterator> it = clientList.iterator(); + it.hasNext(); ) { + client = it.next().get(); + if (client != null && connectionId.equals(client.getConnectionId())) { + it.remove(); + break; + } + } + } + + if (client == null) { + throw new IllegalArgumentException("Unknown id: "+connectionId); + } + + if (debug) logger.trace("closeConnection", "closing client connection."); + closeClient(client); + + if (debug) logger.trace("closeConnection", "sending notif"); + connServer.connectionClosed(connectionId, + "Client connection closed", null); + + if (debug) logger.trace("closeConnection","done"); + } + /** *

Creates a new client connection. This method is called by * the public method {@link #newClient(Object)}.

diff --git a/jdk/test/javax/management/remote/mandatory/connectorServer/CloseConnectionTest.java b/jdk/test/javax/management/remote/mandatory/connectorServer/CloseConnectionTest.java new file mode 100644 index 00000000000..54d05f84273 --- /dev/null +++ b/jdk/test/javax/management/remote/mandatory/connectorServer/CloseConnectionTest.java @@ -0,0 +1,217 @@ +/* + * Copyright 2003-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. + * + * 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. + */ + + +/* + * @test + * @bug 6332907 + * @summary test the ability for connector server to close individual connections + * @author Shanliang JIANG + * @run clean CloseConnectionTest + * @run build CloseConnectionTest + * @run main CloseConnectionTest + */ +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import javax.management.MBeanServerFactory; + +import javax.management.Notification; +import javax.management.NotificationListener; +import javax.management.remote.JMXConnectionNotification; +import javax.management.remote.JMXConnector; +import javax.management.remote.JMXConnectorFactory; +import javax.management.remote.JMXServiceURL; +import javax.management.remote.JMXConnectorServer; +import javax.management.remote.JMXConnectorServerFactory; + +public class CloseConnectionTest { + + public static void main(String[] args) throws Exception { + System.out.println(">>> Test the ability for connector server to close " + + "individual connections."); + + final String[] protos = new String[]{"rmi", "iiop", "jmxmp"}; + for (String p : protos) { + System.out.println("\n>>> Testing the protocol " + p); + JMXServiceURL addr = new JMXServiceURL(p, null, 0); + System.out.println(">>> Creating a JMXConnectorServer on " + addr); + JMXConnectorServer server = null; + try { + server = JMXConnectorServerFactory.newJMXConnectorServer(addr, + null, + MBeanServerFactory.createMBeanServer()); + } catch (Exception e) { + System.out.println(">>> Skip the protocol: " + p); + continue; + } + + test1(server); + test2(server); + + server.stop(); + } + + System.out.println(">>> Bye bye!"); + } + + private static void test1(JMXConnectorServer server) throws Exception { + try { + server.closeConnection("toto"); + // not started, known id + throw new RuntimeException("An IllegalArgumentException is not thrown."); + } catch (IllegalStateException e) { + System.out.println(">>> Test1: Got expected IllegalStateException: " + e); + } + + server.start(); + System.out.println(">>>Test1 Started the server on " + server.getAddress()); + + try { + server.closeConnection("toto"); + throw new RuntimeException("An IllegalArgumentException is not thrown."); + } catch (IllegalArgumentException e) { + System.out.println(">> Test1: Got expected IllegalArgumentException: " + e); + } + + MyListener listener = new MyListener(); + server.addNotificationListener(listener, null, null); + + System.out.println(">>> Test1: Connecting a client to the server ..."); + final JMXConnector conn = JMXConnectorFactory.connect(server.getAddress()); + conn.getMBeanServerConnection().getDefaultDomain(); + final String id1 = conn.getConnectionId(); + + listener.wait(JMXConnectionNotification.OPENED, timeout); + + System.out.println(">>> Test1: Closing the connection: " + conn.getConnectionId()); + server.closeConnection(id1); + listener.wait(JMXConnectionNotification.CLOSED, timeout); + + System.out.println(">>> Test1: Using again the connector whose connection " + + "should be closed by the server, it should reconnect " + + "automatically to the server and get a new connection id."); + conn.getMBeanServerConnection().getDefaultDomain(); + final String id2 = conn.getConnectionId(); + listener.wait(JMXConnectionNotification.OPENED, timeout); + + if (id1.equals(id2)) { + throw new RuntimeException("Failed, the first client connection is not closed."); + } + + System.out.println(">>> Test1: Greate, we get a new connection id " + id2 + + ", the first one is closed as expected."); + + System.out.println(">>> Test1: Closing the client."); + conn.close(); + System.out.println(">>> Test1: Stopping the server."); + server.removeNotificationListener(listener); + } + + private static void test2(JMXConnectorServer server) throws Exception { + System.out.println(">>> Test2 close a connection before " + + "the client can use it..."); + final Killer killer = new Killer(server); + server.addNotificationListener(killer, null, null); + + System.out.println(">>> Test2 Connecting a client to the server ..."); + final JMXConnector conn; + try { + conn = JMXConnectorFactory.connect(server.getAddress()); + throw new RuntimeException(">>> Failed, do not receive an " + + "IOException telling the connection is refused."); + } catch (IOException ioe) { + System.out.println(">>> Test2 got expected IOException: "+ioe); + } + } + + private static class MyListener implements NotificationListener { + public void handleNotification(Notification n, Object hb) { + if (n instanceof JMXConnectionNotification) { + synchronized (received) { + received.add((JMXConnectionNotification) n); + received.notify(); + } + } + } + + public JMXConnectionNotification wait(String type, long timeout) + throws Exception { + JMXConnectionNotification waited = null; + long toWait = timeout; + long deadline = System.currentTimeMillis() + timeout; + synchronized (received) { + while (waited == null && toWait > 0) { + received.wait(toWait); + for (JMXConnectionNotification n : received) { + if (type.equals(n.getType())) { + waited = n; + break; + } + } + received.clear(); + toWait = deadline - System.currentTimeMillis(); + } + } + + if (waited == null) { + throw new RuntimeException("Do not receive expected notification " + type); + } else { + System.out.println(">>> Received expected notif: "+type+ + " "+waited.getConnectionId()); + } + + return waited; + } + + final List received = + new ArrayList(); + } + + private static class Killer implements NotificationListener { + public Killer(JMXConnectorServer server) { + this.server = server; + } + public void handleNotification(Notification n, Object hb) { + if (n instanceof JMXConnectionNotification) { + if (JMXConnectionNotification.OPENED.equals(n.getType())) { + final JMXConnectionNotification cn = + (JMXConnectionNotification)n; + try { + System.out.println(">>> Killer: close the connection "+ + cn.getConnectionId()); + server.closeConnection(cn.getConnectionId()); + } catch (Exception e) { + // impossible? + e.printStackTrace(); + System.exit(1); + } + } + } + } + + private final JMXConnectorServer server; + } + + private static final long timeout = 6000; +} From 2064095b24f9d3460a33404471bcbecf08b52f9d Mon Sep 17 00:00:00 2001 From: Daniel Fuchs Date: Tue, 9 Dec 2008 20:20:48 +0100 Subject: [PATCH 074/110] 6768935: Clarify the behaviour of ObjectName pattern matching with regards to namespaces Reviewed-by: emcmanus --- .../jmx/interceptor/DispatchInterceptor.java | 16 +-- .../DomainDispatchInterceptor.java | 30 ++--- .../NamespaceDispatchInterceptor.java | 125 +++++++++++++----- .../com/sun/jmx/mbeanserver/MXBeanLookup.java | 11 +- .../classes/com/sun/jmx/mbeanserver/Util.java | 1 - .../sun/jmx/namespace/DomainInterceptor.java | 11 +- .../jmx/namespace/NamespaceInterceptor.java | 9 +- .../sun/jmx/namespace/ObjectNameRouter.java | 13 +- .../RoutingMBeanServerConnection.java | 31 ++--- .../com/sun/jmx/namespace/RoutingProxy.java | 6 +- .../classes/javax/management/MBeanServer.java | 10 +- .../management/MBeanServerConnection.java | 34 ++++- .../classes/javax/management/ObjectName.java | 106 ++++++++++++--- .../javax/management/namespace/JMXDomain.java | 10 +- .../namespace/JMXNamespacePermission.java | 38 +----- .../management/namespace/JMXNamespaces.java | 12 +- .../management/namespace/package-info.java | 36 ++++- .../namespace/LeadingSeparatorsTest.java | 23 +++- .../namespace/NullDomainObjectNameTest.java | 35 ++++- .../namespace/NullObjectNameTest.java | 29 +++- .../management/namespace/QueryNamesTest.java | 66 ++++++++- 21 files changed, 441 insertions(+), 211 deletions(-) diff --git a/jdk/src/share/classes/com/sun/jmx/interceptor/DispatchInterceptor.java b/jdk/src/share/classes/com/sun/jmx/interceptor/DispatchInterceptor.java index 4a79567fed1..f68e539d2fc 100644 --- a/jdk/src/share/classes/com/sun/jmx/interceptor/DispatchInterceptor.java +++ b/jdk/src/share/classes/com/sun/jmx/interceptor/DispatchInterceptor.java @@ -44,7 +44,6 @@ import javax.management.MBeanException; import javax.management.MBeanInfo; import javax.management.MBeanRegistrationException; import javax.management.MBeanServer; -import javax.management.MalformedObjectNameException; import javax.management.NotCompliantMBeanException; import javax.management.NotificationFilter; import javax.management.NotificationListener; @@ -205,8 +204,7 @@ public abstract class DispatchInterceptor // Returns the ObjectName of the JMXNamespace (or JMXDomain) for that // key (a namespace or a domain name). - abstract ObjectName getHandlerNameFor(String key) - throws MalformedObjectNameException; + abstract ObjectName getHandlerNameFor(String key); // Creates an interceptor for the given key, name, JMXNamespace (or // JMXDomain). Note: this will be either a NamespaceInterceptor @@ -263,14 +261,10 @@ public abstract class DispatchInterceptor void validateHandlerNameFor(String key, ObjectName name) { if (key == null || key.equals("")) throw new IllegalArgumentException("invalid key for "+name+": "+key); - try { - final ObjectName handlerName = getHandlerNameFor(key); - if (!name.equals(handlerName)) - throw new IllegalArgumentException("bad handler name: "+name+ - ". Should be: "+handlerName); - } catch (MalformedObjectNameException x) { - throw new IllegalArgumentException(name.toString(),x); - } + final ObjectName handlerName = getHandlerNameFor(key); + if (!name.equals(handlerName)) + throw new IllegalArgumentException("bad handler name: "+name+ + ". Should be: "+handlerName); } // Called by the DefaultMBeanServerInterceptor when an instance diff --git a/jdk/src/share/classes/com/sun/jmx/interceptor/DomainDispatchInterceptor.java b/jdk/src/share/classes/com/sun/jmx/interceptor/DomainDispatchInterceptor.java index 9b9b1d6b19c..388af6b21dd 100644 --- a/jdk/src/share/classes/com/sun/jmx/interceptor/DomainDispatchInterceptor.java +++ b/jdk/src/share/classes/com/sun/jmx/interceptor/DomainDispatchInterceptor.java @@ -38,7 +38,6 @@ import java.util.logging.Logger; import javax.management.MBeanServer; import javax.management.MBeanServerDelegate; -import javax.management.MalformedObjectNameException; import javax.management.ObjectName; import javax.management.QueryExp; import javax.management.namespace.JMXDomain; @@ -248,21 +247,17 @@ class DomainDispatchInterceptor if (pattern == null) return true; if (pattern.isDomainPattern()) return true; - try { - // case b) above. - // - // This is a bit of a hack. If there's any chance that a JMXDomain - // MBean name is selected by the given pattern then we must include - // the local namespace in our search. - // - // Returning true will have this effect. see 2. above. - // - if (pattern.apply(ALL_DOMAINS.withDomain(pattern.getDomain()))) - return true; - } catch (MalformedObjectNameException x) { - // should not happen - throw new IllegalArgumentException(String.valueOf(pattern), x); - } + // case b) above. + // + // This is a bit of a hack. If there's any chance that a JMXDomain + // MBean name is selected by the given pattern then we must include + // the local namespace in our search. + // + // Returning true will have this effect. see 2. above. + // + if (pattern.apply(ALL_DOMAINS.withDomain(pattern.getDomain()))) + return true; + return false; } @@ -291,8 +286,7 @@ class DomainDispatchInterceptor } @Override - final ObjectName getHandlerNameFor(String key) - throws MalformedObjectNameException { + final ObjectName getHandlerNameFor(String key) { return JMXDomain.getDomainObjectName(key); } diff --git a/jdk/src/share/classes/com/sun/jmx/interceptor/NamespaceDispatchInterceptor.java b/jdk/src/share/classes/com/sun/jmx/interceptor/NamespaceDispatchInterceptor.java index d86c787b898..5ab61f8933a 100644 --- a/jdk/src/share/classes/com/sun/jmx/interceptor/NamespaceDispatchInterceptor.java +++ b/jdk/src/share/classes/com/sun/jmx/interceptor/NamespaceDispatchInterceptor.java @@ -37,8 +37,8 @@ import java.util.logging.Logger; import javax.management.MBeanServer; import javax.management.MBeanServerDelegate; -import javax.management.MalformedObjectNameException; import javax.management.ObjectName; +import javax.management.RuntimeOperationsException; import javax.management.namespace.JMXDomain; import javax.management.namespace.JMXNamespace; import static javax.management.namespace.JMXNamespaces.NAMESPACE_SEPARATOR; @@ -60,6 +60,7 @@ public class NamespaceDispatchInterceptor private static final int NAMESPACE_SEPARATOR_LENGTH = NAMESPACE_SEPARATOR.length(); + private static final ObjectName X3 = ObjectName.valueOf("x:x=x"); private final DomainDispatchInterceptor nextInterceptor; private final String serverName; @@ -89,27 +90,38 @@ public class NamespaceDispatchInterceptor serverName = Util.getMBeanServerSecurityName(delegate); } - // TODO: Should move that to JMXNamespace? or to ObjectName? /** * Get first name space in ObjectName path. Ignore leading namespace - * separators. + * separators. Includes the trailing //. + * + * Examples: + *
+     *  For ObjectName:                   Returns:
+     *  foo//bar//baz:x=x         ->      "foo//"
+     *  foo//:type=JMXNamespace   ->      "foo//"
+     *  foo//:x=x                 ->      "foo//"
+     *  foo////:x=x               ->      "foo//"
+     *  //foo//bar//baz:x=x       ->      "//"
+     *  ////foo//bar//baz:x=x     ->      "//"
+     *  //:x=x                    ->      "//"
+     *  foo:x=x                   ->      ""
+     *  (null)                    ->      ""
+     *  :x=x                      ->      ""
+     *
+     * 
**/ - static String getFirstNamespace(ObjectName name) { + static String getFirstNamespaceWithSlash(ObjectName name) { if (name == null) return ""; final String domain = name.getDomain(); if (domain.equals("")) return ""; - // skip leading separators - int first = 0; - while (domain.startsWith(NAMESPACE_SEPARATOR,first)) - first += NAMESPACE_SEPARATOR_LENGTH; - // go to next separator - final int end = domain.indexOf(NAMESPACE_SEPARATOR,first); + final int end = domain.indexOf(NAMESPACE_SEPARATOR); if (end == -1) return ""; // no namespace // This is the first element in the namespace path. - final String namespace = domain.substring(first,end); + final String namespace = + domain.substring(0,end+NAMESPACE_SEPARATOR_LENGTH); return namespace; } @@ -130,27 +142,49 @@ public class NamespaceDispatchInterceptor resource.getClass().getName()); } - final boolean isLocalHandlerNameFor(String namespace, - ObjectName handlerName) { - return handlerName.getDomain().equals(namespace+NAMESPACE_SEPARATOR) && - JMXNamespace.TYPE_ASSIGNMENT.equals( - handlerName.getKeyPropertyListString()); + // Removes the trailing //. namespaceWithSlash should be either + // "" or a namespace path ending with //. + // + private final String getKeyFor(String namespaceWithSlash) { + final int end = namespaceWithSlash.length() - + NAMESPACE_SEPARATOR_LENGTH; + if (end <= 0) return ""; + final String key = namespaceWithSlash.substring(0,end); + return key; } @Override final MBeanServer getInterceptorOrNullFor(ObjectName name) { - final String namespace = getFirstNamespace(name); - if (namespace.equals("") || isLocalHandlerNameFor(namespace,name) || - name.getDomain().equals(namespace+NAMESPACE_SEPARATOR)) { + final String namespace = getFirstNamespaceWithSlash(name); + + // Leading separators should trigger instance not found exception. + // returning null here has this effect. + // + if (namespace.equals(NAMESPACE_SEPARATOR)) { + LOG.finer("ObjectName starts with: "+namespace); + return null; + } + + // namespace="" means that there was no namespace path in the + // ObjectName. => delegate to the next interceptor (local MBS) + // name.getDomain()=namespace means that we have an ObjectName of + // the form blah//:x=x. This is either a JMXNamespace or a non + // existent MBean. => delegate to the next interceptor (local MBS) + if (namespace.equals("") || name.getDomain().equals(namespace)) { LOG.finer("dispatching to local name space"); return nextInterceptor; } - final NamespaceInterceptor ns = getInterceptor(namespace); + + // There was a namespace path in the ObjectName. Returns the + // interceptor that handles it, or null if there is no such + // interceptor. + final String key = getKeyFor(namespace); + final NamespaceInterceptor ns = getInterceptor(key); if (LOG.isLoggable(Level.FINER)) { if (ns != null) { - LOG.finer("dispatching to name space: " + namespace); + LOG.finer("dispatching to name space: " + key); } else { - LOG.finer("no handler for: " + namespace); + LOG.finer("no handler for: " + key); } } return ns; @@ -158,18 +192,44 @@ public class NamespaceDispatchInterceptor @Override final QueryInterceptor getInterceptorForQuery(ObjectName pattern) { - final String namespace = getFirstNamespace(pattern); - if (namespace.equals("") || isLocalHandlerNameFor(namespace,pattern) || - pattern.getDomain().equals(namespace+NAMESPACE_SEPARATOR)) { + final String namespace = getFirstNamespaceWithSlash(pattern); + + // Leading separators should trigger instance not found exception. + // returning null here has this effect. + // + if (namespace.equals(NAMESPACE_SEPARATOR)) { + LOG.finer("ObjectName starts with: "+namespace); + return null; + } + + // namespace="" means that there was no namespace path in the + // ObjectName. => delegate to the next interceptor (local MBS) + // name.getDomain()=namespace means that we have an ObjectName of + // the form blah//:x=x. This is either a JMXNamespace or a non + // existent MBean. => delegate to the next interceptor (local MBS) + if (namespace.equals("") || pattern.getDomain().equals(namespace)) { LOG.finer("dispatching to local name space"); return new QueryInterceptor(nextInterceptor); } - final NamespaceInterceptor ns = getInterceptor(namespace); + + // This is a 'hack' to check whether the first namespace is a pattern. + // We wan to throw RTOE wrapping IAE in that case + if (X3.withDomain(namespace).isDomainPattern()) { + throw new RuntimeOperationsException( + new IllegalArgumentException("Pattern not allowed in namespace path")); + } + + // There was a namespace path in the ObjectName. Returns the + // interceptor that handles it, or null if there is no such + // interceptor. + // + final String key = getKeyFor(namespace); + final NamespaceInterceptor ns = getInterceptor(key); if (LOG.isLoggable(Level.FINER)) { if (ns != null) { - LOG.finer("dispatching to name space: " + namespace); + LOG.finer("dispatching to name space: " + key); } else { - LOG.finer("no handler for: " + namespace); + LOG.finer("no handler for: " + key); } } if (ns == null) return null; @@ -177,15 +237,16 @@ public class NamespaceDispatchInterceptor } @Override - final ObjectName getHandlerNameFor(String key) - throws MalformedObjectNameException { - return ObjectName.getInstance(key+NAMESPACE_SEPARATOR, + final ObjectName getHandlerNameFor(String key) { + return ObjectName.valueOf(key+NAMESPACE_SEPARATOR, "type", JMXNamespace.TYPE); } @Override final public String getHandlerKey(ObjectName name) { - return getFirstNamespace(name); + final String namespace = getFirstNamespaceWithSlash(name); + // namespace is either "" or a namespace ending with // + return getKeyFor(namespace); } @Override diff --git a/jdk/src/share/classes/com/sun/jmx/mbeanserver/MXBeanLookup.java b/jdk/src/share/classes/com/sun/jmx/mbeanserver/MXBeanLookup.java index 227c1eec990..605c67f16b4 100644 --- a/jdk/src/share/classes/com/sun/jmx/mbeanserver/MXBeanLookup.java +++ b/jdk/src/share/classes/com/sun/jmx/mbeanserver/MXBeanLookup.java @@ -37,7 +37,6 @@ import javax.management.InstanceAlreadyExistsException; import javax.management.JMX; import javax.management.MBeanServerConnection; import javax.management.MBeanServerInvocationHandler; -import javax.management.MalformedObjectNameException; import javax.management.ObjectName; import javax.management.openmbean.OpenDataException; @@ -225,7 +224,7 @@ public abstract class MXBeanLookup { String domain = prefix + name.getDomain(); try { name = name.withDomain(domain); - } catch (MalformedObjectNameException e) { + } catch (IllegalArgumentException e) { throw EnvHelp.initCause( new InvalidObjectException(e.getMessage()), e); } @@ -239,12 +238,14 @@ public abstract class MXBeanLookup { String domain = name.getDomain(); if (!domain.startsWith(prefix)) { throw new OpenDataException( - "Proxy's name does not start with " + prefix + ": " + name); + "Proxy's name does not start with " + + prefix + ": " + name); } try { name = name.withDomain(domain.substring(prefix.length())); - } catch (MalformedObjectNameException e) { - throw EnvHelp.initCause(new OpenDataException(e.getMessage()), e); + } catch (IllegalArgumentException e) { + throw EnvHelp.initCause( + new OpenDataException(e.getMessage()), e); } return name; } diff --git a/jdk/src/share/classes/com/sun/jmx/mbeanserver/Util.java b/jdk/src/share/classes/com/sun/jmx/mbeanserver/Util.java index 5fe4d1542cc..1e575e419d2 100644 --- a/jdk/src/share/classes/com/sun/jmx/mbeanserver/Util.java +++ b/jdk/src/share/classes/com/sun/jmx/mbeanserver/Util.java @@ -48,7 +48,6 @@ import java.util.logging.Level; import javax.management.MBeanServer; import javax.management.MBeanServerDelegate; import javax.management.MBeanServerFactory; -import javax.management.MalformedObjectNameException; import javax.management.ObjectInstance; import javax.management.ObjectName; import javax.management.loading.ClassLoaderRepository; diff --git a/jdk/src/share/classes/com/sun/jmx/namespace/DomainInterceptor.java b/jdk/src/share/classes/com/sun/jmx/namespace/DomainInterceptor.java index 7b88087a81c..6e56c8385e8 100644 --- a/jdk/src/share/classes/com/sun/jmx/namespace/DomainInterceptor.java +++ b/jdk/src/share/classes/com/sun/jmx/namespace/DomainInterceptor.java @@ -42,7 +42,6 @@ import javax.management.ListenerNotFoundException; import javax.management.MBeanPermission; import javax.management.MBeanServerDelegate; import javax.management.MBeanServerNotification; -import javax.management.MalformedObjectNameException; import javax.management.Notification; import javax.management.NotificationFilter; import javax.management.NotificationListener; @@ -268,13 +267,9 @@ public class DomainInterceptor extends HandlerInterceptor { // When we reach here, it has been verified that 'name' matches our domain // name (done by DomainDispatchInterceptor) private ObjectName getPatternFor(final ObjectName name) { - try { - if (name == null) return ALL; - if (name.getDomain().equals(domainName)) return name; - return name.withDomain(domainName); - } catch (MalformedObjectNameException x) { - throw new IllegalArgumentException(String.valueOf(name),x); - } + if (name == null) return ALL; + if (name.getDomain().equals(domainName)) return name; + return name.withDomain(domainName); } @Override diff --git a/jdk/src/share/classes/com/sun/jmx/namespace/NamespaceInterceptor.java b/jdk/src/share/classes/com/sun/jmx/namespace/NamespaceInterceptor.java index 6862066d2bc..df03ed5ecba 100644 --- a/jdk/src/share/classes/com/sun/jmx/namespace/NamespaceInterceptor.java +++ b/jdk/src/share/classes/com/sun/jmx/namespace/NamespaceInterceptor.java @@ -24,15 +24,12 @@ */ package com.sun.jmx.namespace; -import com.sun.jmx.defaults.JmxProperties; import java.util.ArrayList; import java.util.List; -import java.util.logging.Logger; import javax.management.Attribute; import javax.management.AttributeList; import javax.management.MBeanServer; -import javax.management.MalformedObjectNameException; import javax.management.ObjectName; import javax.management.namespace.JMXNamespace; import javax.management.namespace.JMXNamespacePermission; @@ -114,14 +111,12 @@ public class NamespaceInterceptor extends HandlerInterceptor { } @Override - protected ObjectName toSource(ObjectName targetName) - throws MalformedObjectNameException { + protected ObjectName toSource(ObjectName targetName) { return proc.toSourceContext(targetName, true); } @Override - protected ObjectName toTarget(ObjectName sourceName) - throws MalformedObjectNameException { + protected ObjectName toTarget(ObjectName sourceName) { return proc.toTargetContext(sourceName, false); } diff --git a/jdk/src/share/classes/com/sun/jmx/namespace/ObjectNameRouter.java b/jdk/src/share/classes/com/sun/jmx/namespace/ObjectNameRouter.java index 7d668169fc7..55a6465407c 100644 --- a/jdk/src/share/classes/com/sun/jmx/namespace/ObjectNameRouter.java +++ b/jdk/src/share/classes/com/sun/jmx/namespace/ObjectNameRouter.java @@ -27,7 +27,6 @@ package com.sun.jmx.namespace; import static javax.management.namespace.JMXNamespaces.NAMESPACE_SEPARATOR; -import javax.management.MalformedObjectNameException; import javax.management.ObjectInstance; import javax.management.ObjectName; @@ -83,11 +82,7 @@ public class ObjectNameRouter { } final String targetDomain = (tlen>0?targetPrefix+NAMESPACE_SEPARATOR+srcDomain:srcDomain); - try { - return sourceName.withDomain(targetDomain); - } catch (MalformedObjectNameException x) { - throw new IllegalArgumentException(String.valueOf(sourceName),x); - } + return sourceName.withDomain(targetDomain); } public final ObjectName toSourceContext(ObjectName targetName, @@ -113,11 +108,7 @@ public class ObjectNameRouter { final String sourceDomain = (slen>0?sourcePrefix+NAMESPACE_SEPARATOR+targetDomain: targetDomain); - try { - return targetName.withDomain(sourceDomain); - } catch (MalformedObjectNameException x) { - throw new IllegalArgumentException(String.valueOf(targetName),x); - } + return targetName.withDomain(sourceDomain); } public final ObjectInstance toTargetContext(ObjectInstance sourceMoi, diff --git a/jdk/src/share/classes/com/sun/jmx/namespace/RoutingMBeanServerConnection.java b/jdk/src/share/classes/com/sun/jmx/namespace/RoutingMBeanServerConnection.java index 7022e7e2973..49b8290046b 100644 --- a/jdk/src/share/classes/com/sun/jmx/namespace/RoutingMBeanServerConnection.java +++ b/jdk/src/share/classes/com/sun/jmx/namespace/RoutingMBeanServerConnection.java @@ -46,7 +46,6 @@ import javax.management.MBeanException; import javax.management.MBeanInfo; import javax.management.MBeanRegistrationException; import javax.management.MBeanServerConnection; -import javax.management.MalformedObjectNameException; import javax.management.NotCompliantMBeanException; import javax.management.NotificationFilter; import javax.management.NotificationListener; @@ -100,18 +99,17 @@ public abstract class RoutingMBeanServerConnection public T source() { return source; } @Override - public ObjectName toSource(ObjectName targetName) - throws MalformedObjectNameException { + public ObjectName toSource(ObjectName targetName) { if (targetName == null) return null; if (targetName.getDomain().equals("") && targetNs.equals("")) { try { @@ -229,8 +228,7 @@ public abstract class RoutingProxy } @Override - public ObjectName toTarget(ObjectName sourceName) - throws MalformedObjectNameException { + public ObjectName toTarget(ObjectName sourceName) { if (sourceName == null) return null; return router.toTargetContext(sourceName,false); } diff --git a/jdk/src/share/classes/javax/management/MBeanServer.java b/jdk/src/share/classes/javax/management/MBeanServer.java index 6e4ee0a69c3..d602eadbcc5 100644 --- a/jdk/src/share/classes/javax/management/MBeanServer.java +++ b/jdk/src/share/classes/javax/management/MBeanServer.java @@ -424,10 +424,16 @@ public interface MBeanServer extends MBeanServerConnection { public ObjectInstance getObjectInstance(ObjectName name) throws InstanceNotFoundException; - // doc comment inherited from MBeanServerConnection + /** + * {@inheritDoc} + * @throws RuntimeOperationsException {@inheritDoc} + */ public Set queryMBeans(ObjectName name, QueryExp query); - // doc comment inherited from MBeanServerConnection + /** + * {@inheritDoc} + * @throws RuntimeOperationsException {@inheritDoc} + */ public Set queryNames(ObjectName name, QueryExp query); // doc comment inherited from MBeanServerConnection diff --git a/jdk/src/share/classes/javax/management/MBeanServerConnection.java b/jdk/src/share/classes/javax/management/MBeanServerConnection.java index add96cfcb94..11509df53c3 100644 --- a/jdk/src/share/classes/javax/management/MBeanServerConnection.java +++ b/jdk/src/share/classes/javax/management/MBeanServerConnection.java @@ -436,7 +436,17 @@ public interface MBeanServerConnection extends NotificationManager { * specified, all the MBeans registered will be retrieved. * @param query The query expression to be applied for selecting * MBeans. If null no query expression will be applied for - * selecting MBeans. + * selecting MBeans. ObjectName patterns that may be contained in the + * query expression will be + * evaluated in the context of the + * {@link javax.management.namespace namespace} + * in which the MBeans selected by {@code name} are registered. + * Thus, in the {@code query} parameter, no ObjectName pattern containing a + * namespace path can match any of the MBean names selected by {@code name}. + * See the + * namespaces documentation for more details. * * @return A set containing the ObjectInstance * objects for the selected MBeans. If no MBean satisfies the @@ -444,6 +454,11 @@ public interface MBeanServerConnection extends NotificationManager { * * @exception IOException A communication problem occurred when * talking to the MBean server. + * @exception RuntimeOperationsException Wraps a + * java.lang.IllegalArgumentException: The name + * parameter contains an invalid pattern. See the + * namespaces documentation for more details. */ public Set queryMBeans(ObjectName name, QueryExp query) throws IOException; @@ -464,7 +479,17 @@ public interface MBeanServerConnection extends NotificationManager { * specified, the name of all registered MBeans will be retrieved. * @param query The query expression to be applied for selecting * MBeans. If null no query expression will be applied for - * selecting MBeans. + * selecting MBeans. ObjectName patterns that may be contained in the + * query expression will be + * evaluated in the context of the + * {@link javax.management.namespace namespace} + * in which the MBeans slected by {@code name} are registered. + * Thus, in the {@code query} parameter, no ObjectName pattern containing a + * namespace path can match any of the MBean names selected by {@code name}. + * See the + * namespaces documentation for more details. * * @return A set containing the ObjectNames for the MBeans * selected. If no MBean satisfies the query, an empty list is @@ -472,6 +497,11 @@ public interface MBeanServerConnection extends NotificationManager { * * @exception IOException A communication problem occurred when * talking to the MBean server. + * @exception RuntimeOperationsException Wraps a + * java.lang.IllegalArgumentException: The name + * parameter contains an invalid pattern. See the + * namespaces documentation for more details. */ public Set queryNames(ObjectName name, QueryExp query) throws IOException; diff --git a/jdk/src/share/classes/javax/management/ObjectName.java b/jdk/src/share/classes/javax/management/ObjectName.java index 8185edc2742..41025a7688a 100644 --- a/jdk/src/share/classes/javax/management/ObjectName.java +++ b/jdk/src/share/classes/javax/management/ObjectName.java @@ -56,14 +56,38 @@ import java.util.Map; * properties.

* *

The domain is a string of characters not including - * the character colon (:). It is recommended that the domain - * should not contain the string "{@code //}", which is reserved for future use. + * the character colon (:).

+ *

Starting with the version 2.0 of the JMX specification, the + * domain can also start with a {@linkplain + * javax.management.namespace#NamespacePrefix namespace prefix} identifying + * the {@linkplain javax.management.namespace namespace} in which the + * MBean is registered. A namespace prefix is a path string where + * elements are separated by a double slash (//). + * It identifies the {@linkplain javax.management.namespace namespace} in + * which the MBean so named is registered.

+ * + *

For instance the ObjectName bar//baz:k=v identifiies an MBean + * named baz:k=v in the namespace bar. Similarly the + * ObjectName foo//bar//baz:k=v identifiies an MBean named + * baz:k=v in the namespace foo//bar. See the {@linkplain + * javax.management.namespace namespace} documentation for more details.

* *

If the domain includes at least one occurrence of the wildcard * characters asterisk (*) or question mark * (?), then the object name is a pattern. The asterisk * matches any sequence of zero or more characters, while the question - * mark matches any single character.

+ * mark matches any single character.
+ * A namespace separator // does not match wildcard + * characters unless it is at the very end of the domain string. + * So foo*bar*:* does not match foo//bar:k=v but it + * does match fooxbar//:k=v. + *

+ * + *

When included in a namespace path the special path element + * ** matches any number of sub namespaces + * recursively, but only if used as a complete namespace path element, + * as in **//b//c//D:k=v or a//**//c//D:k=v + * - see below. * *

If the domain is empty, it will be replaced in certain contexts * by the default domain of the MBean server in which the @@ -171,6 +195,51 @@ import java.util.Map; * with {@code \}. * * + *

Pattern and namespaces:

+ *

In an object name pattern, a path element + * of exactly ** corresponds to a meta + * wildcard that will match any number of sub namespaces.
Hence:

+ * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + *
patternmatchesdoesn't match
  • **//D:k=v
a//D:k=v
+ * a//b//D:k=v
+ * a//b//c//D:k=v
D:k=v
  • a//**//D:k=v
a//b//D:k=v
+ * a//b//c//D:k=v
b//b//c//D:k=v
+ * a//D:k=v
+ * D:k=v
  • a//**//e//D:k=v
a//b//e//D:k=v
+ * a//b//c//e//D:k=v
a//b//c//c//D:k=v
+ * b//b//c//e//D:k=v
+ * a//e//D:k=v
+ * e//D:k=v
  • a//b**//e//D:k=v
a//b//e//D:k=va//b//c//e//D:k=v
+ * because in that case b**
+ * is not a meta-wildcard - and b**
+ * is thus equivalent to b*.
+ * + *

+ *

+ * Note: Although ObjectName patterns where the characters + * * and ? appear in the namespace path are legal, + * they are not valid in the {@code name} parameter of the MBean Server's + * {@link MBeanServer#queryNames queryNames} and {@link MBeanServer#queryMBeans + * queryMBeans} methods. See the + * namespaces documentation for more details. + *

+ * *

An ObjectName can be written as a String with the following * elements in order:

* @@ -439,11 +508,6 @@ public class ObjectName implements Comparable, QueryExp { _propertyList = aname._propertyList; _property_list_pattern = aname._property_list_pattern; _property_value_pattern = aname._property_value_pattern; - // TODO remove this hack - // if (toString().endsWith("//javax.management.service:type1=event_client_delegeate_mbean,type2=default")) { - // Thread.currentThread().dumpStack(); - // throw new Error("************************ Gotcha!"); - //} } // Instance private fields <======================================= @@ -1096,11 +1160,10 @@ public class ObjectName implements Comparable, QueryExp { */ private boolean isDomain(String domain) { if (domain == null) return true; - final char[] d=domain.toCharArray(); - final int len = d.length; + final int len = domain.length(); int next = 0; while (next < len) { - final char c = d[next++]; + final char c = domain.charAt(next++); switch (c) { case ':' : case '\n' : @@ -1234,12 +1297,6 @@ public class ObjectName implements Comparable, QueryExp { if (!nw.equals("")) { nameString = nw + NAMESPACE_SEPARATOR + nameString; } - // TODO remove this hack - // if (nameString.endsWith("//javax.management.service:type1=event_client_delegeate_mbean,type2=default")) { - // System.err.println("old="+old+", nw="+nw); - // Thread.currentThread().dumpStack(); - // throw new Error("************************ Gotcha!"); - // } return nameString; } @@ -1584,13 +1641,18 @@ public class ObjectName implements Comparable, QueryExp { * @return A new {@code ObjectName} that is the same as {@code this} * except the domain is {@code newDomain}. * @throws NullPointerException if {@code newDomain} is null. - * @throws MalformedObjectNameException if the new domain is syntactically - * illegal. + * @exception IllegalArgumentException The {@code newDomain} passed as a + * parameter does not have the right format. The {@linkplain + * Throwable#getCause() cause} of this exception will be a + * {@link MalformedObjectNameException}. * @since 1.7 **/ - public final ObjectName withDomain(String newDomain) - throws MalformedObjectNameException { - return new ObjectName(newDomain, this); + public final ObjectName withDomain(String newDomain) { + try { + return new ObjectName(newDomain, this); + } catch (MalformedObjectNameException x) { + throw new IllegalArgumentException(x.getMessage(),x); + } } /** diff --git a/jdk/src/share/classes/javax/management/namespace/JMXDomain.java b/jdk/src/share/classes/javax/management/namespace/JMXDomain.java index bff3c137062..ca108bf126b 100644 --- a/jdk/src/share/classes/javax/management/namespace/JMXDomain.java +++ b/jdk/src/share/classes/javax/management/namespace/JMXDomain.java @@ -35,7 +35,6 @@ import static javax.management.namespace.JMXNamespaces.NAMESPACE_SEPARATOR; import javax.management.InstanceNotFoundException; import javax.management.MBeanServer; import javax.management.MBeanServerDelegate; -import javax.management.MalformedObjectNameException; import javax.management.ObjectName; /** @@ -291,12 +290,9 @@ public class JMXDomain extends JMXNamespace { public static ObjectName getDomainObjectName(String domain) { if (domain == null) return null; if (domain.contains(NAMESPACE_SEPARATOR)) - throw new IllegalArgumentException(domain); - try { - return ObjectName.getInstance(domain, "type", TYPE); - } catch (MalformedObjectNameException x) { - throw new IllegalArgumentException(domain,x); - } + throw new IllegalArgumentException("domain contains " + + NAMESPACE_SEPARATOR+": "+domain); + return ObjectName.valueOf(domain, "type", TYPE); } diff --git a/jdk/src/share/classes/javax/management/namespace/JMXNamespacePermission.java b/jdk/src/share/classes/javax/management/namespace/JMXNamespacePermission.java index 5dd012672b3..62608cb0610 100644 --- a/jdk/src/share/classes/javax/management/namespace/JMXNamespacePermission.java +++ b/jdk/src/share/classes/javax/management/namespace/JMXNamespacePermission.java @@ -136,7 +136,8 @@ import java.security.Permission; * ** matches any number of sub namespaces * recursively, but only if used as a complete namespace path element, * as in **//b//c//D:k=v or a//**//c//D:k=v - * - see below. + * - see ObjectName documentation + * for more details. *

* * @@ -270,38 +271,9 @@ import java.security.Permission; * *

Note on wildcards: In an object name pattern, a path element * of exactly ** corresponds to a meta - * wildcard that will match any number of sub namespaces. Hence:

- *
    - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - *
    patternmatchesdoesn't match
    **//D:k=va//D:k=v
    - * a//b//D:k=v
    - * a//b//c//D:k=v
    D:k=v
    a//**//D:k=va//b//D:k=v
    - * a//b//c//D:k=v
    b//b//c//D:k=v
    - * a//D:k=v
    - * D:k=v
    a//**//e//D:k=va//b//e//D:k=v
    - * a//b//c//e//D:k=v
    a//b//c//c//D:k=v
    - * b//b//c//e//D:k=v
    - * a//e//D:k=v
    - * e//D:k=v
    a//b**//e//D:k=va//b//e//D:k=va//b//c//e//D:k=v
    - * because in that case b**
    - * is not a meta-wildcard - and b**
    - * is thus equivalent to b*.
    - *
+ * wildcard that will match any number of sub namespaces. + * See ObjectName documentation + * for more details.

* *

If {@code ::} is omitted, then one of * member or object name may be omitted. diff --git a/jdk/src/share/classes/javax/management/namespace/JMXNamespaces.java b/jdk/src/share/classes/javax/management/namespace/JMXNamespaces.java index f19dfa570e4..ca7244abd28 100644 --- a/jdk/src/share/classes/javax/management/namespace/JMXNamespaces.java +++ b/jdk/src/share/classes/javax/management/namespace/JMXNamespaces.java @@ -292,17 +292,13 @@ public class JMXNamespaces { if (path == null || to == null) throw new IllegalArgumentException("Null argument"); checkTrailingSlashes(path); - try { - String prefix = path; - if (!prefix.equals("")) prefix = - ObjectNameRouter.normalizeNamespacePath( + String prefix = path; + if (!prefix.equals("")) + prefix = ObjectNameRouter.normalizeNamespacePath( prefix + NAMESPACE_SEPARATOR,false,false,false); - return to.withDomain( + return to.withDomain( ObjectNameRouter.normalizeDomain( prefix+to.getDomain(),false)); - } catch (MalformedObjectNameException x) { - throw new IllegalArgumentException(path+": "+x,x); - } } /** diff --git a/jdk/src/share/classes/javax/management/namespace/package-info.java b/jdk/src/share/classes/javax/management/namespace/package-info.java index df8354bab63..5c014286d4d 100644 --- a/jdk/src/share/classes/javax/management/namespace/package-info.java +++ b/jdk/src/share/classes/javax/management/namespace/package-info.java @@ -204,7 +204,38 @@ * * An easier way to access MBeans contained in a name space is to * cd inside the name space, as shown in the following paragraph. - *

+ *

+ * Although ObjectName patterns where the characters + * * and ? appear in the namespace path are + * legal, they are not valid in the {@code name} parameter of the + * MBean Server {@link + * javax.management.MBeanServer#queryNames queryNames} and {@link + * javax.management.MBeanServer#queryMBeans queryMBeans} methods.
+ * When invoking queryNames or queryMBeans, + * only ObjectNames of the form:
+ * [namespace-without-pattern//]*[pattern-without-namespace]:key-properties-with-or-without-pattern + * are valid.
+ * In other words: in the case of {@link + * javax.management.MBeanServer#queryNames queryNames} and {@link + * javax.management.MBeanServer#queryMBeans queryMBeans}, if a + * namespace path is present, it must not contain any pattern. + *

+ * There is no such restriction for the {@code query} parameter of these + * methods. However, it must be noted that the {@code query} parameter + * will be evaluated in the context of the namespace where the MBeans + * selected by the pattern specified in {@code name} are located. + * This means that if {@code query} parameter is an ObjectName pattern that + * contains a namespace path, no MBean name will match and the result of + * the query will be empty.
+ * In other words:

+ *
  • {@code queryNames("foo//bar//?a?:*","b?z:type=Monitor,*")} will select + * all MBeans in namespace foo//bar whose names match both + * ?a?:* and b?z:type=Monitor,*, but
  • + *
  • {@code queryNames("foo//bar//?a?:*","foo//bar//b?z:type=Monitor,*")} + * will select nothing because no name matching ?a?:* will + * also match foo//bar//b?z:type=Monitor,*. + *
  • + *
* *

Narrowing Down Into a Name Spaces

*

@@ -228,7 +259,8 @@ * to name space {@code "foo"} behaves just like a regular MBean server. * However, it may sometimes throw an {@link * java.lang.UnsupportedOperationException UnsupportedOperationException} - * wrapped in a JMX exception if you try to call an operation which is not + * wrapped in a {@link javax.management.RuntimeOperationsException + * RuntimeOperationsException} if you try to call an operation which is not * supported by the underlying name space handler. *
For instance, {@link javax.management.MBeanServer#registerMBean * registerMBean} is not supported for name spaces mounted from remote diff --git a/jdk/test/javax/management/namespace/LeadingSeparatorsTest.java b/jdk/test/javax/management/namespace/LeadingSeparatorsTest.java index 5660b275317..6f931ffd46d 100644 --- a/jdk/test/javax/management/namespace/LeadingSeparatorsTest.java +++ b/jdk/test/javax/management/namespace/LeadingSeparatorsTest.java @@ -24,7 +24,7 @@ * @test LeadingSeparatorsTest.java * @summary Test that the semantics of a leading // in ObjectName is respected. * @author Daniel Fuchs - * @bug 5072476 + * @bug 5072476 6768935 * @run clean LeadingSeparatorsTest Wombat WombatMBean * @compile -XDignore.symbol.file=true LeadingSeparatorsTest.java * @run build LeadingSeparatorsTest Wombat WombatMBean @@ -36,6 +36,7 @@ import java.util.Arrays; import java.util.Set; import java.util.HashSet; import java.util.logging.Logger; +import javax.management.InstanceNotFoundException; import javax.management.MBeanServer; import javax.management.MBeanServerFactory; import javax.management.NotCompliantMBeanException; @@ -121,19 +122,29 @@ public class LeadingSeparatorsTest { // register wombat using an object name with a leading // final Object obj = new MyWombat(); // check that returned object name doesn't have the leading // - assertEquals(n2,top.registerMBean(obj, n1).getObjectName()); + assertEquals(n2,top.registerMBean(obj, n2).getObjectName()); System.out.println(n1+" registered"); // check that the registered Wombat can be accessed with all its // names. System.out.println(n2+" mood is: "+top.getAttribute(n2, "Mood")); - System.out.println(n1+" mood is: "+top.getAttribute(n1, "Mood")); + try { + System.out.println(n1+" mood is: "+top.getAttribute(n1, "Mood")); + throw new Exception("Excepected exception not thrown for "+n1); + } catch (InstanceNotFoundException x) { + System.out.println("OK: "+x); + } System.out.println(n4+" mood is: "+top.getAttribute(n4, "Mood")); - System.out.println(n3+" mood is: "+top.getAttribute(n3, "Mood")); + try { + System.out.println(n3+" mood is: "+top.getAttribute(n3, "Mood")); + throw new Exception("Excepected exception not thrown for "+n3); + } catch (InstanceNotFoundException x) { + System.out.println("OK: "+x); + } // call listMatching. The result should not contain any prefix. final Set res = (Set) - top.invoke(n3, "listMatching", + top.invoke(n4, "listMatching", // remove rmi// from rmi//*:* JMXNamespaces.deepReplaceHeadNamespace( new Object[] {ObjectName.WILDCARD.withDomain("rmi//*")}, @@ -158,7 +169,7 @@ public class LeadingSeparatorsTest { // //niark//niark// // final Set res4 = (Set) - top.invoke(n3, "untrue", + top.invoke(n4, "untrue", // remove niark//niark : should remove nothing since // our ObjectName begins with a leading // JMXNamespaces.deepReplaceHeadNamespace( diff --git a/jdk/test/javax/management/namespace/NullDomainObjectNameTest.java b/jdk/test/javax/management/namespace/NullDomainObjectNameTest.java index 6b1ad51c252..fa8455e2a15 100644 --- a/jdk/test/javax/management/namespace/NullDomainObjectNameTest.java +++ b/jdk/test/javax/management/namespace/NullDomainObjectNameTest.java @@ -40,6 +40,7 @@ import javax.management.MBeanServerFactory; import javax.management.NotCompliantMBeanException; import javax.management.ObjectInstance; import javax.management.ObjectName; +import javax.management.RuntimeOperationsException; import javax.management.namespace.JMXNamespaces; import javax.management.namespace.JMXRemoteNamespace; import javax.management.namespace.JMXNamespace; @@ -215,9 +216,20 @@ public class NullDomainObjectNameTest { assertEquals(proxy.queryNames( new ObjectName(":*"),null). contains(moi3.getObjectName()),true); - failed("queryNames(null,null) should have failed for faked//"); - } catch (IllegalArgumentException x) { - System.out.println("Received expected exception for faked//: "+x); + failed("queryNames(new ObjectName(\":*\"),null) " + + "should have failed for faked//"); + } catch (RuntimeOperationsException x) { + if (x.getCause() instanceof IllegalArgumentException) + System.out.println( + "Received expected exception for faked//: "+x); + else { + System.err.println( + "Expected exception has unexpected cause " + + "for faked//: "+x.getCause()); + x.printStackTrace(); + failed("queryNames(new ObjectName(\":*\"),null)" + + " failed with unexpected cause for faked//"); + } } // These should fail because the ObjectName doesn't start // with "faked//" @@ -226,9 +238,20 @@ public class NullDomainObjectNameTest { "new ObjectName(\":*\"),null) with faked//"); assertEquals(proxy.queryMBeans( new ObjectName(":*"),null).contains(moi3),true); - failed("queryMBeans(null,null) should have failed for faked//"); - } catch (IllegalArgumentException x) { - System.out.println("Received expected exception for faked//: "+x); + failed("queryMBeans(new ObjectName(\":*\"),null)" + + " should have failed for faked//"); + } catch (RuntimeOperationsException x) { + if (x.getCause() instanceof IllegalArgumentException) + System.out.println( + "Received expected exception for faked//: "+x); + else { + System.err.println( + "Expected exception has unexpected cause " + + "for faked//: "+x.getCause()); + x.printStackTrace(); + failed("queryMBeans(new ObjectName(\":*\"),null) " + + "failed with unexpected cause for faked//"); + } } System.out.println("Checking queryNames(faked//*:*,null)"); diff --git a/jdk/test/javax/management/namespace/NullObjectNameTest.java b/jdk/test/javax/management/namespace/NullObjectNameTest.java index 0e645dc1e3c..5cf99a230e5 100644 --- a/jdk/test/javax/management/namespace/NullObjectNameTest.java +++ b/jdk/test/javax/management/namespace/NullObjectNameTest.java @@ -41,6 +41,7 @@ import javax.management.MBeanServerFactory; import javax.management.NotCompliantMBeanException; import javax.management.ObjectInstance; import javax.management.ObjectName; +import javax.management.RuntimeOperationsException; import javax.management.namespace.JMXNamespaces; import javax.management.namespace.JMXRemoteNamespace; import javax.management.namespace.JMXNamespace; @@ -189,15 +190,35 @@ public class NullObjectNameTest { assertEquals(proxy.queryNames(null,null). contains(moi3.getObjectName()),true); failed("queryNames(null,null) should have failed for faked//"); - } catch (IllegalArgumentException x) { - System.out.println("Received expected exception for faked//: "+x); + } catch (RuntimeOperationsException x) { + if (x.getCause() instanceof IllegalArgumentException) + System.out.println( + "Received expected exception for faked//: "+x); + else { + System.err.println( + "Expected exception has unexpected cause " + + "for faked//: "+x.getCause()); + x.printStackTrace(); + failed("queryNames(null,null) failed with unexpected " + + "cause for faked//"); + } } try { System.out.println("Checking queryMBeans(null,null) with faked//"); assertEquals(proxy.queryMBeans(null,null).contains(moi3),true); failed("queryMBeans(null,null) should have failed for faked//"); - } catch (IllegalArgumentException x) { - System.out.println("Received expected exception for faked//: "+x); + } catch (RuntimeOperationsException x) { + if (x.getCause() instanceof IllegalArgumentException) + System.out.println( + "Received expected exception for faked//: "+x); + else { + System.err.println( + "Expected exception has unexpected cause " + + "for faked//: "+x.getCause()); + x.printStackTrace(); + failed("queryMBeans(null,null) failed with unexpected " + + "cause for faked//"); + } } System.out.println("Checking queryNames(faked//*:*,null)"); assertEquals(proxy.queryNames(new ObjectName("faked//*:*"),null). diff --git a/jdk/test/javax/management/namespace/QueryNamesTest.java b/jdk/test/javax/management/namespace/QueryNamesTest.java index 1af597aceb9..5b507644600 100644 --- a/jdk/test/javax/management/namespace/QueryNamesTest.java +++ b/jdk/test/javax/management/namespace/QueryNamesTest.java @@ -25,7 +25,7 @@ * @test QueryNamesTest.java 1.4 * @summary Test how queryNames works with Namespaces. * @author Daniel Fuchs - * @bug 5072476 + * @bug 5072476 6768935 * @run clean QueryNamesTest Wombat WombatMBean * @run build QueryNamesTest Wombat WombatMBean * @run main QueryNamesTest @@ -34,6 +34,7 @@ import java.io.IOException; import java.lang.management.ManagementFactory; +import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.HashMap; @@ -52,7 +53,9 @@ import javax.management.MBeanServer; import javax.management.MBeanServerConnection; import javax.management.MBeanServerFactory; import javax.management.MalformedObjectNameException; +import javax.management.ObjectInstance; import javax.management.ObjectName; +import javax.management.RuntimeOperationsException; import javax.management.namespace.JMXNamespace; import javax.management.namespace.JMXNamespaces; @@ -366,6 +369,66 @@ public class QueryNamesTest { return res; } + private static void checkNsPattern(MBeanServer server) throws Exception { + final List list = new ArrayList(); + for (String s : namespaces) { + final String[] cmpnt = s.split("//"); + for (int i=0;i res = new HashSet(); + + try { + res.addAll(server.queryNames(ObjectName.valueOf(s),null)); + } catch (RuntimeOperationsException x) { + if (x.getCause() instanceof IllegalArgumentException) { + System.out.println("queryNames("+s+"): OK - received "+x.getCause()); + continue; + } + System.err.println("queryNames("+s+"): Bad cause: "+x.getCause()); + throw x; + } catch (Exception x) { + System.err.println("queryNames("+s+"): Bad exception: "+x); + throw x; + } + System.err.println("queryNames("+s+"): Bad result: "+res); + System.err.println("queryNames("+s+"): Excpected exception not thrown."); + throw new Exception("queryNames("+s+"): Excpected exception not thrown."); + } + for (String s : list) { + final Set res = new HashSet(); + + try { + res.addAll(server.queryMBeans(ObjectName.valueOf(s),null)); + } catch (RuntimeOperationsException x) { + if (x.getCause() instanceof IllegalArgumentException) { + System.out.println("queryMBeans("+s+"): OK - received "+x.getCause()); + continue; + } + System.err.println("queryMBeans("+s+"): Bad cause: "+x.getCause()); + throw x; + } catch (Exception x) { + System.err.println("queryMBeans("+s+"): Bad exception: "+x); + throw x; + } + System.err.println("queryMBeans("+s+"): Bad result: "+res); + System.err.println("queryMBeans("+s+"): Excpected exception not thrown."); + throw new Exception("queryMBeans("+s+"): Excpected exception not thrown."); + } + } + public static void main(String[] args) throws Exception { final MBeanServer server = ManagementFactory.getPlatformMBeanServer(); @@ -378,6 +441,7 @@ public class QueryNamesTest { System.out.println("Domains: " +Arrays.asList(server.getDomains())); checkRegistration(server); checkNsQuery(server); + checkNsPattern(server); } finally { boolean res = true; res = res && removeWombats(server, wombats); From 16870a77673599f36fb9d40d10d0cf4a48ed0089 Mon Sep 17 00:00:00 2001 From: Shanliang Jiang Date: Tue, 9 Dec 2008 20:50:45 +0100 Subject: [PATCH 075/110] 6336980: NotificationBroadcasterSupport: to tell whether there are listeners and to do clear Reviewed-by: emcmanus --- .../NotificationBroadcasterSupport.java | 20 +++++ .../notification/SupportClearTest.java | 80 +++++++++++++++++++ 2 files changed, 100 insertions(+) create mode 100644 jdk/test/javax/management/notification/SupportClearTest.java diff --git a/jdk/src/share/classes/javax/management/NotificationBroadcasterSupport.java b/jdk/src/share/classes/javax/management/NotificationBroadcasterSupport.java index 33df9606450..44f5a506477 100644 --- a/jdk/src/share/classes/javax/management/NotificationBroadcasterSupport.java +++ b/jdk/src/share/classes/javax/management/NotificationBroadcasterSupport.java @@ -249,6 +249,26 @@ public class NotificationBroadcasterSupport } } } + /** + * Returns true if there are any listeners. + * + * @return true if there is at least one listener that has been added with + * {@code addNotificationListener} and not subsequently removed with + * {@code removeNotificationListener} or {@code removeAllNotificationListeners}. + * @since 1.7 + */ + public boolean isListenedTo() { + return listenerList.size() > 0; + } + + /** + * Removes all listeners. + * + * @since 1.7 + */ + public void removeAllNotificationListeners() { + listenerList.clear(); + } /** *

This method is called by {@link #sendNotification diff --git a/jdk/test/javax/management/notification/SupportClearTest.java b/jdk/test/javax/management/notification/SupportClearTest.java new file mode 100644 index 00000000000..56712cf482b --- /dev/null +++ b/jdk/test/javax/management/notification/SupportClearTest.java @@ -0,0 +1,80 @@ +/* + * Copyright 2005 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. + * + * 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. + */ + +/* + * @test + * @bug 6336980 + * @summary test 2 new methods: isListenedTo() and clear() + * @author Shanliang JIANG + * @run clean SupportClearTest + * @run build SupportClearTest + * @run main SupportClearTest + */ + +import javax.management.*; + +public class SupportClearTest { + private static boolean received = false; + + public static void main(String[] args) throws Exception { + System.out.println(">>> test 2 new methods: isListenedTo() and clear()."); + + final NotificationListener listener = new NotificationListener() { + public void handleNotification(Notification n, Object hb) { + received = true; + } + }; + + final NotificationBroadcasterSupport broadcaster = + new NotificationBroadcasterSupport(); + + System.out.println(">>> testing the method \"isListenedTo\"..."); + if (broadcaster.isListenedTo()) { + throw new RuntimeException( + "Bad implementation of the method \"isListenedTo\"!"); + } + + broadcaster.addNotificationListener(listener, null, null); + + if (!broadcaster.isListenedTo()) { + throw new RuntimeException( + "Bad implementation of the method \"isListenedTo\"!"); + } + + System.out.println(">>> testing the method \"clear\"..."); + broadcaster.removeAllNotificationListeners(); + if (broadcaster.isListenedTo()) { + throw new RuntimeException( + "Bad implementation of the method \"clear\"!"); + } + + broadcaster.sendNotification(new Notification("", "", 1L)); + + if (received) { + throw new RuntimeException( + "Bad implementation of the method \"clear\"!"); + } + + System.out.println(">>> PASSED!"); + } +} From 67464baa7a21b0c91570316f181b1350906c27d5 Mon Sep 17 00:00:00 2001 From: John R Rose Date: Tue, 9 Dec 2008 12:41:26 -0800 Subject: [PATCH 076/110] 6771309: debugging AD files is difficult without #line directives in generated code More and better #line and #define directives in the generated code; ADLC itself accepts #line directives Reviewed-by: never, kvn --- hotspot/make/linux/adlc_updater | 12 +- hotspot/make/linux/makefiles/adlc.make | 31 +++- hotspot/make/solaris/adlc_updater | 12 +- hotspot/make/solaris/makefiles/adlc.make | 31 +++- hotspot/src/share/vm/adlc/adlparse.cpp | 189 +++++++++++++++++++---- hotspot/src/share/vm/adlc/adlparse.hpp | 9 +- hotspot/src/share/vm/adlc/archDesc.cpp | 2 +- hotspot/src/share/vm/adlc/dfa.cpp | 17 +- hotspot/src/share/vm/adlc/filebuff.hpp | 1 + hotspot/src/share/vm/adlc/formssel.cpp | 5 +- 10 files changed, 255 insertions(+), 54 deletions(-) diff --git a/hotspot/make/linux/adlc_updater b/hotspot/make/linux/adlc_updater index 6a97b79931d..b54f783d6ee 100644 --- a/hotspot/make/linux/adlc_updater +++ b/hotspot/make/linux/adlc_updater @@ -7,5 +7,13 @@ # # adlc-updater # -[ -f $3/$1 ] && cmp -s $2/$1 $3/$1 || \ -( [ -f $3/$1 ]; echo Updating $3/$1 ; touch $2/made-change ; mv $2/$1 $3/$1 ) +fix_lines() { + # repair bare #line directives in $1 to refer to $2 + awk < $1 > $1+ ' + /^#line 999999$/ {print "#line " (NR+1) " \"" F2 "\""; next} + {print} + ' F2=$2 + mv $1+ $1 +} +[ -f $3/$1 ] && (fix_lines $2/$1 $3/$1; cmp -s $2/$1 $3/$1) || \ +( [ -f $3/$1 ] && echo Updating $3/$1 ; touch $2/made-change ; mv $2/$1 $3/$1 ) diff --git a/hotspot/make/linux/makefiles/adlc.make b/hotspot/make/linux/makefiles/adlc.make index 5349f5bd323..5e48fed1567 100644 --- a/hotspot/make/linux/makefiles/adlc.make +++ b/hotspot/make/linux/makefiles/adlc.make @@ -54,10 +54,12 @@ VPATH += $(Src_Dirs_V:%=%:) Src_Dirs_I = ${Src_Dirs} $(GENERATED) INCLUDES += $(Src_Dirs_I:%=-I%) -# Force assertions on. -SYSDEFS += -DASSERT +# set flags for adlc compilation CPPFLAGS = $(SYSDEFS) $(INCLUDES) +# Force assertions on. +CPPFLAGS += -DASSERT + # CFLAGS_WARN holds compiler options to suppress/enable warnings. # Suppress warnings (for now) CFLAGS_WARN = -w @@ -125,7 +127,15 @@ $(GENERATEDFILES): refresh_adfiles # Note that product files are updated via "mv", which is atomic. TEMPDIR := $(OUTDIR)/mktmp$(shell echo $$$$) -ADLCFLAGS = -q -T +# Pass -D flags into ADLC. +ADLCFLAGS += $(SYSDEFS) + +# Note "+="; it is a hook so flags.make can add more flags, like -g or -DFOO. +ADLCFLAGS += -q -T + +# Normally, debugging is done directly on the ad_*.cpp files. +# But -g will put #line directives in those files pointing back to .ad. +#ADLCFLAGS += -g ifdef LP64 ADLCFLAGS += -D_LP64 @@ -140,6 +150,8 @@ endif # ADLC_UPDATER_DIRECTORY = $(GAMMADIR)/make/$(OS) ADLC_UPDATER = adlc_updater +$(ADLC_UPDATER): $(ADLC_UPDATER_DIRECTORY)/$(ADLC_UPDATER) + $(QUIETLY) cp $< $@; chmod +x $@ # This action refreshes all generated adlc files simultaneously. # The way it works is this: @@ -149,9 +161,8 @@ ADLC_UPDATER = adlc_updater # 4) call $(ADLC_UPDATER) on each generated adlc file. It will selectively update changed or missing files. # 5) If we actually updated any files, echo a notice. # -refresh_adfiles: $(EXEC) $(SOURCE.AD) +refresh_adfiles: $(EXEC) $(SOURCE.AD) $(ADLC_UPDATER) @rm -rf $(TEMPDIR); mkdir $(TEMPDIR) - $(QUIETLY) [ -f $(ADLC_UPDATER) ] || ( cp $(ADLC_UPDATER_DIRECTORY)/$(ADLC_UPDATER) . ; chmod +x $(ADLC_UPDATER) ) $(QUIETLY) $(EXEC) $(ADLCFLAGS) $(SOURCE.AD) \ -c$(TEMPDIR)/ad_$(Platform_arch_model).cpp -h$(TEMPDIR)/ad_$(Platform_arch_model).hpp -a$(TEMPDIR)/dfa_$(Platform_arch_model).cpp -v$(TEMPDIR)/adGlobals_$(Platform_arch_model).hpp \ || { rm -rf $(TEMPDIR); exit 1; } @@ -174,7 +185,15 @@ refresh_adfiles: $(EXEC) $(SOURCE.AD) # ######################################################################### $(SOURCE.AD): $(SOURCES.AD) - $(QUIETLY) cat $(SOURCES.AD) > $(SOURCE.AD) + $(QUIETLY) $(PROCESS_AD_FILES) $(SOURCES.AD) > $(SOURCE.AD) + +#PROCESS_AD_FILES = cat +# Pass through #line directives, in case user enables -g option above: +PROCESS_AD_FILES = awk '{ \ + if (CUR_FN != FILENAME) { CUR_FN=FILENAME; NR_BASE=NR-1; need_lineno=1 } \ + if (need_lineno && $$0 !~ /\/\//) \ + { print "\n\n\#line " (NR-NR_BASE) " \"" FILENAME "\""; need_lineno=0 }; \ + print }' $(OUTDIR)/%.o: %.cpp @echo Compiling $< diff --git a/hotspot/make/solaris/adlc_updater b/hotspot/make/solaris/adlc_updater index 6a97b79931d..b54f783d6ee 100644 --- a/hotspot/make/solaris/adlc_updater +++ b/hotspot/make/solaris/adlc_updater @@ -7,5 +7,13 @@ # # adlc-updater # -[ -f $3/$1 ] && cmp -s $2/$1 $3/$1 || \ -( [ -f $3/$1 ]; echo Updating $3/$1 ; touch $2/made-change ; mv $2/$1 $3/$1 ) +fix_lines() { + # repair bare #line directives in $1 to refer to $2 + awk < $1 > $1+ ' + /^#line 999999$/ {print "#line " (NR+1) " \"" F2 "\""; next} + {print} + ' F2=$2 + mv $1+ $1 +} +[ -f $3/$1 ] && (fix_lines $2/$1 $3/$1; cmp -s $2/$1 $3/$1) || \ +( [ -f $3/$1 ] && echo Updating $3/$1 ; touch $2/made-change ; mv $2/$1 $3/$1 ) diff --git a/hotspot/make/solaris/makefiles/adlc.make b/hotspot/make/solaris/makefiles/adlc.make index f746d77494d..2d1a87a20b4 100644 --- a/hotspot/make/solaris/makefiles/adlc.make +++ b/hotspot/make/solaris/makefiles/adlc.make @@ -54,10 +54,12 @@ VPATH += $(Src_Dirs_V:%=%:) Src_Dirs_I = ${Src_Dirs} $(GENERATED) INCLUDES += $(Src_Dirs_I:%=-I%) -# Force assertions on. -SYSDEFS += -DASSERT +# set flags for adlc compilation CPPFLAGS = $(SYSDEFS) $(INCLUDES) +# Force assertions on. +CPPFLAGS += -DASSERT + ifndef USE_GCC # We need libCstd.so for adlc CFLAGS += -library=Cstd -g @@ -141,7 +143,15 @@ $(GENERATEDFILES): refresh_adfiles # Note that product files are updated via "mv", which is atomic. TEMPDIR := $(OUTDIR)/mktmp$(shell echo $$$$) -ADLCFLAGS = -q -T +# Pass -D flags into ADLC. +ADLCFLAGS += $(SYSDEFS) + +# Note "+="; it is a hook so flags.make can add more flags, like -g or -DFOO. +ADLCFLAGS += -q -T + +# Normally, debugging is done directly on the ad_*.cpp files. +# But -g will put #line directives in those files pointing back to .ad. +#ADLCFLAGS += -g ifdef LP64 ADLCFLAGS += -D_LP64 @@ -156,6 +166,8 @@ endif # ADLC_UPDATER_DIRECTORY = $(GAMMADIR)/make/$(OS) ADLC_UPDATER = adlc_updater +$(ADLC_UPDATER): $(ADLC_UPDATER_DIRECTORY)/$(ADLC_UPDATER) + $(QUIETLY) cp $< $@; chmod +x $@ # This action refreshes all generated adlc files simultaneously. # The way it works is this: @@ -165,9 +177,8 @@ ADLC_UPDATER = adlc_updater # 4) call $(ADLC_UPDATER) on each generated adlc file. It will selectively update changed or missing files. # 5) If we actually updated any files, echo a notice. # -refresh_adfiles: $(EXEC) $(SOURCE.AD) +refresh_adfiles: $(EXEC) $(SOURCE.AD) $(ADLC_UPDATER) @rm -rf $(TEMPDIR); mkdir $(TEMPDIR) - $(QUIETLY) [ -f $(ADLC_UPDATER) ] || ( cp $(ADLC_UPDATER_DIRECTORY)/$(ADLC_UPDATER) . ; chmod +x $(ADLC_UPDATER) ) $(QUIETLY) $(EXEC) $(ADLCFLAGS) $(SOURCE.AD) \ -c$(TEMPDIR)/ad_$(Platform_arch_model).cpp -h$(TEMPDIR)/ad_$(Platform_arch_model).hpp -a$(TEMPDIR)/dfa_$(Platform_arch_model).cpp -v$(TEMPDIR)/adGlobals_$(Platform_arch_model).hpp \ || { rm -rf $(TEMPDIR); exit 1; } @@ -190,7 +201,15 @@ refresh_adfiles: $(EXEC) $(SOURCE.AD) # ######################################################################### $(SOURCE.AD): $(SOURCES.AD) - $(QUIETLY) cat $(SOURCES.AD) > $(SOURCE.AD) + $(QUIETLY) $(PROCESS_AD_FILES) $(SOURCES.AD) > $(SOURCE.AD) + +#PROCESS_AD_FILES = cat +# Pass through #line directives, in case user enables -g option above: +PROCESS_AD_FILES = awk '{ \ + if (CUR_FN != FILENAME) { CUR_FN=FILENAME; NR_BASE=NR-1; need_lineno=1 } \ + if (need_lineno && $$0 !~ /\/\//) \ + { print "\n\n\#line " (NR-NR_BASE) " \"" FILENAME "\""; need_lineno=0 }; \ + print }' $(OUTDIR)/%.o: %.cpp @echo Compiling $< diff --git a/hotspot/src/share/vm/adlc/adlparse.cpp b/hotspot/src/share/vm/adlc/adlparse.cpp index c266df104c8..cc02b5d3177 100644 --- a/hotspot/src/share/vm/adlc/adlparse.cpp +++ b/hotspot/src/share/vm/adlc/adlparse.cpp @@ -108,6 +108,7 @@ void ADLParser::parse() { else if (!strcmp(ident, "pipeline")) pipe_parse(); else if (!strcmp(ident, "definitions")) definitions_parse(); else if (!strcmp(ident, "peephole")) peep_parse(); + else if (!strcmp(ident, "#line")) preproc_line(); else if (!strcmp(ident, "#define")) preproc_define(); else if (!strcmp(ident, "#undef")) preproc_undef(); else { @@ -786,9 +787,11 @@ void ADLParser::reg_parse(void) { parse_err(SYNERR, "missing identifier inside register block.\n"); return; } - if (strcmp(token,"reg_def")==0) { reg_def_parse(); } - if (strcmp(token,"reg_class")==0) { reg_class_parse(); } - if (strcmp(token,"alloc_class")==0) { alloc_class_parse(); } + if (strcmp(token,"reg_def")==0) { reg_def_parse(); } + else if (strcmp(token,"reg_class")==0) { reg_class_parse(); } + else if (strcmp(token,"alloc_class")==0) { alloc_class_parse(); } + else if (strcmp(token,"#define")==0) { preproc_define(); } + else { parse_err(SYNERR, "bad token %s inside register block.\n", token); break; } skipws(); } } @@ -903,11 +906,7 @@ void ADLParser::enc_class_parse_block(EncClass* encoding, char* ec_name) { skipws_no_preproc(); // Skip leading whitespace // Prepend location descriptor, for debugging; cf. ADLParser::find_cpp_block if (_AD._adlocation_debug) { - const char* file = _AD._ADL_file._name; - int line = linenum(); - char* location = (char *)malloc(strlen(file) + 100); - sprintf(location, "#line %d \"%s\"\n", line, file); - encoding->add_code(location); + encoding->add_code(get_line_string()); } // Collect the parts of the encode description @@ -948,6 +947,10 @@ void ADLParser::enc_class_parse_block(EncClass* encoding, char* ec_name) { skipws(); + if (_AD._adlocation_debug) { + encoding->add_code(end_line_marker()); + } + // Debug Stuff if (_AD._adl_debug > 1) fprintf(stderr,"EncodingClass Form: %s\n", ec_name); } @@ -2349,7 +2352,11 @@ void ADLParser::reg_class_parse(void) { return; } RegDef *regDef = _AD._register->getRegDef(rname); - reg_class->addReg(regDef); // add regDef to regClass + if (!regDef) { + parse_err(SEMERR, "unknown identifier %s inside reg_class list.\n", rname); + } else { + reg_class->addReg(regDef); // add regDef to regClass + } // Check for ',' and position to next token. skipws(); @@ -2746,7 +2753,8 @@ Predicate *ADLParser::pred_parse(void) { char *rule = NULL; // String representation of predicate skipws(); // Skip leading whitespace - if ( (rule = get_paren_expr("pred expression")) == NULL ) { + int line = linenum(); + if ( (rule = get_paren_expr("pred expression", true)) == NULL ) { parse_err(SYNERR, "incorrect or missing expression for 'predicate'\n"); return NULL; } @@ -3407,7 +3415,12 @@ FormatRule* ADLParser::format_parse(void) { // Check if there is a string to pass through to output char *start = _ptr; // Record start of the next string while ((_curchar != '$') && (_curchar != '"') && (_curchar != '%') && (_curchar != '\n')) { - if (_curchar == '\\') next_char(); // superquote + if (_curchar == '\\') { + next_char(); // superquote + if ((_curchar == '$') || (_curchar == '%')) + // hack to avoid % escapes and warnings about undefined \ escapes + *(_ptr-1) = _curchar; + } if (_curchar == '\n') parse_err(SYNERR, "newline in string"); // unimplemented! next_char(); } @@ -3942,8 +3955,7 @@ char* ADLParser::find_cpp_block(const char* description) { next_char(); // Skip block delimiter skipws_no_preproc(); // Skip leading whitespace cppBlock = _ptr; // Point to start of expression - const char* file = _AD._ADL_file._name; - int line = linenum(); + int line = linenum(); next = _ptr + 1; while(((_curchar != '%') || (*next != '}')) && (_curchar != '\0')) { next_char_or_line(); @@ -3958,15 +3970,16 @@ char* ADLParser::find_cpp_block(const char* description) { _curchar = *_ptr; // Maintain invariant // Prepend location descriptor, for debugging. - char* location = (char *)malloc(strlen(file) + 100); - *location = '\0'; - if (_AD._adlocation_debug) - sprintf(location, "#line %d \"%s\"\n", line, file); - char* result = (char *)malloc(strlen(location) + strlen(cppBlock) + 1); - strcpy(result, location); - strcat(result, cppBlock); - cppBlock = result; - free(location); + if (_AD._adlocation_debug) { + char* location = get_line_string(line); + char* end_loc = end_line_marker(); + char* result = (char *)malloc(strlen(location) + strlen(cppBlock) + strlen(end_loc) + 1); + strcpy(result, location); + strcat(result, cppBlock); + strcat(result, end_loc); + cppBlock = result; + free(location); + } } return cppBlock; @@ -4036,13 +4049,26 @@ char* ADLParser::get_expr(const char *desc, const char *stop_chars) { // Helper function around get_expr // Sets _curchar to '(' so that get_paren_expr will search for a matching ')' -char *ADLParser::get_paren_expr(const char *description) { +char *ADLParser::get_paren_expr(const char *description, bool include_location) { + int line = linenum(); if (_curchar != '(') // Escape if not valid starting position return NULL; next_char(); // Skip the required initial paren. char *token2 = get_expr(description, ")"); if (_curchar == ')') next_char(); // Skip required final paren. + int junk = 0; + if (include_location && _AD._adlocation_debug && !is_int_token(token2, junk)) { + // Prepend location descriptor, for debugging. + char* location = get_line_string(line); + char* end_loc = end_line_marker(); + char* result = (char *)malloc(strlen(location) + strlen(token2) + strlen(end_loc) + 1); + strcpy(result, location); + strcat(result, token2); + strcat(result, end_loc); + token2 = result; + free(location); + } return token2; } @@ -4082,10 +4108,16 @@ char *ADLParser::get_ident_common(bool do_preproc) { if (do_preproc && start != NULL) { const char* def = _AD.get_preproc_def(start); if (def != NULL && strcmp(def, start)) { - const char* def2 = _AD.get_preproc_def(def); - if (def2 != NULL && strcmp(def2, def)) { - parse_err(SYNERR, "unimplemented: using %s defined as %s => %s", - start, def, def2); + const char* def1 = def; + const char* def2 = _AD.get_preproc_def(def1); + // implement up to 2 levels of #define + if (def2 != NULL && strcmp(def2, def1)) { + def = def2; + const char* def3 = _AD.get_preproc_def(def2); + if (def3 != NULL && strcmp(def3, def2) && strcmp(def3, def1)) { + parse_err(SYNERR, "unimplemented: using %s defined as %s => %s => %s", + start, def1, def2, def3); + } } start = strdup(def); } @@ -4431,6 +4463,35 @@ void ADLParser::get_effectlist(FormDict &effects, FormDict &operands) { } +//-------------------------------preproc_line---------------------------------- +// A "#line" keyword has been seen, so parse the rest of the line. +void ADLParser::preproc_line(void) { + int line = get_int(); + skipws_no_preproc(); + const char* file = NULL; + if (_curchar == '"') { + next_char(); // Move past the initial '"' + file = _ptr; + while (true) { + if (_curchar == '\n') { + parse_err(SYNERR, "missing '\"' at end of #line directive"); + return; + } + if (_curchar == '"') { + *_ptr = '\0'; // Terminate the string + next_char(); + skipws_no_preproc(); + break; + } + next_char(); + } + } + ensure_end_of_line(); + if (file != NULL) + _AD._ADL_file._name = file; + _buf.set_linenum(line); +} + //------------------------------preproc_define--------------------------------- // A "#define" keyword has been seen, so parse the rest of the line. void ADLParser::preproc_define(void) { @@ -4494,6 +4555,7 @@ void ADLParser::parse_err(int flag, const char *fmt, ...) { // A preprocessor directive has been encountered. Be sure it has fallen at // the begining of a line, or else report an error. void ADLParser::ensure_start_of_line(void) { + if (_curchar == '\n') { next_line(); return; } assert( _ptr >= _curline && _ptr < _curline+strlen(_curline), "Must be able to find which line we are in" ); @@ -4662,6 +4724,7 @@ char ADLParser::cur_char() { //---------------------------next_char----------------------------------------- void ADLParser::next_char() { + if (_curchar == '\n') parse_err(WARN, "must call next_line!"); _curchar = *++_ptr; // if ( _curchar == '\n' ) { // next_line(); @@ -4682,6 +4745,18 @@ void ADLParser::next_char_or_line() { //---------------------------next_line----------------------------------------- void ADLParser::next_line() { _curline = _buf.get_line(); + _curchar = ' '; +} + +//------------------------get_line_string-------------------------------------- +// Prepended location descriptor, for debugging. +// Must return a malloced string (that can be freed if desired). +char* ADLParser::get_line_string(int linenum) { + const char* file = _AD._ADL_file._name; + int line = linenum ? linenum : this->linenum(); + char* location = (char *)malloc(strlen(file) + 100); + sprintf(location, "\n#line %d \"%s\"\n", line, file); + return location; } //-------------------------is_literal_constant--------------------------------- @@ -4722,6 +4797,66 @@ bool ADLParser::is_int_token(const char* token, int& intval) { return true; } +static const char* skip_expr_ws(const char* str) { + const char * cp = str; + while (cp[0]) { + if (cp[0] <= ' ') { + ++cp; + } else if (cp[0] == '#') { + ++cp; + while (cp[0] == ' ') ++cp; + assert(0 == strncmp(cp, "line", 4), "must be a #line directive"); + const char* eol = strchr(cp, '\n'); + assert(eol != NULL, "must find end of line"); + if (eol == NULL) eol = cp + strlen(cp); + cp = eol; + } else { + break; + } + } + return cp; +} + +//-----------------------equivalent_expressions-------------------------------- +bool ADLParser::equivalent_expressions(const char* str1, const char* str2) { + if (str1 == str2) + return true; + else if (str1 == NULL || str2 == NULL) + return false; + const char* cp1 = str1; + const char* cp2 = str2; + char in_quote = '\0'; + while (cp1[0] && cp2[0]) { + if (!in_quote) { + // skip spaces and/or cpp directives + const char* cp1a = skip_expr_ws(cp1); + const char* cp2a = skip_expr_ws(cp2); + if (cp1a > cp1 && cp2a > cp2) { + cp1 = cp1a; cp2 = cp2a; + continue; + } + if (cp1a > cp1 || cp2a > cp2) break; // fail + } + // match one non-space char + if (cp1[0] != cp2[0]) break; // fail + char ch = cp1[0]; + cp1++; cp2++; + // watch for quotes + if (in_quote && ch == '\\') { + if (cp1[0] != cp2[0]) break; // fail + if (!cp1[0]) break; + cp1++; cp2++; + } + if (in_quote && ch == in_quote) { + in_quote = '\0'; + } else if (!in_quote && (ch == '"' || ch == '\'')) { + in_quote = ch; + } + } + return (!cp1[0] && !cp2[0]); +} + + //-------------------------------trim------------------------------------------ void ADLParser::trim(char* &token) { while (*token <= ' ') token++; diff --git a/hotspot/src/share/vm/adlc/adlparse.hpp b/hotspot/src/share/vm/adlc/adlparse.hpp index 42329ac279e..22aa772d0e9 100644 --- a/hotspot/src/share/vm/adlc/adlparse.hpp +++ b/hotspot/src/share/vm/adlc/adlparse.hpp @@ -93,6 +93,7 @@ protected: void pipe_parse(void); // Parse pipeline section void definitions_parse(void); // Parse definitions section void peep_parse(void); // Parse peephole rule definitions + void preproc_line(void); // Parse a #line statement void preproc_define(void); // Parse a #define statement void preproc_undef(void); // Parse an #undef statement @@ -226,7 +227,7 @@ protected: void get_effectlist(FormDict &effects, FormDict &operands); // Parse effect-operand pairs // Return the contents of a parenthesized expression. // Requires initial '(' and consumes final ')', which is replaced by '\0'. - char *get_paren_expr(const char *description); + char *get_paren_expr(const char *description, bool include_location = false); // Return expression up to next stop-char, which terminator replaces. // Does not require initial '('. Does not consume final stop-char. // Final stop-char is left in _curchar, but is also is replaced by '\0'. @@ -234,6 +235,11 @@ protected: char *find_cpp_block(const char *description); // Parse a C++ code block // Issue parser error message & go to EOL void parse_err(int flag, const char *fmt, ...); + // Create a location marker for this file and line. + char *get_line_string(int linenum = 0); + // Return a location marker which tells the C preprocessor to + // forget the previous location marker. (Requires awk postprocessing.) + char *end_line_marker() { return (char*)"\n#line 999999\n"; } // Return pointer to current character inline char cur_char(void); @@ -268,5 +274,6 @@ public: static bool is_literal_constant(const char *hex_string); static bool is_hex_digit(char digit); static bool is_int_token(const char* token, int& intval); + static bool equivalent_expressions(const char* str1, const char* str2); static void trim(char* &token); // trim leading & trailing spaces }; diff --git a/hotspot/src/share/vm/adlc/archDesc.cpp b/hotspot/src/share/vm/adlc/archDesc.cpp index 9702fb47730..a73ad76da23 100644 --- a/hotspot/src/share/vm/adlc/archDesc.cpp +++ b/hotspot/src/share/vm/adlc/archDesc.cpp @@ -140,7 +140,7 @@ bool MatchList::search(const char *opc, const char *res, const char *lch, if ((rch == _rchild) || (rch && _rchild && !strcmp(rch, _rchild))) { char * predStr = get_pred(); char * prStr = pr?pr->_pred:NULL; - if ((prStr == predStr) || (prStr && predStr && !strcmp(prStr, predStr))) { + if (ADLParser::equivalent_expressions(prStr, predStr)) { return true; } } diff --git a/hotspot/src/share/vm/adlc/dfa.cpp b/hotspot/src/share/vm/adlc/dfa.cpp index 36d56062cfd..1075c9da774 100644 --- a/hotspot/src/share/vm/adlc/dfa.cpp +++ b/hotspot/src/share/vm/adlc/dfa.cpp @@ -458,7 +458,7 @@ void ArchDesc::buildDFA(FILE* fp) { class dfa_shared_preds { - enum { count = 2 }; + enum { count = 4 }; static bool _found[count]; static const char* _type [count]; @@ -479,12 +479,15 @@ class dfa_shared_preds { char c = *prev; switch( c ) { case ' ': + case '\n': return dfa_shared_preds::valid_loc(pred, prev); case '!': case '(': case '<': case '=': return true; + case '"': // such as: #line 10 "myfile.ad"\n mypredicate + return true; case '|': if( prev != pred && *(prev-1) == '|' ) return true; case '&': @@ -564,10 +567,14 @@ public: } }; // shared predicates, _var and _pred entry should be the same length -bool dfa_shared_preds::_found[dfa_shared_preds::count] = { false, false }; -const char* dfa_shared_preds::_type[dfa_shared_preds::count] = { "int", "bool" }; -const char* dfa_shared_preds::_var [dfa_shared_preds::count] = { "_n_get_int__", "Compile__current____select_24_bit_instr__" }; -const char* dfa_shared_preds::_pred[dfa_shared_preds::count] = { "n->get_int()", "Compile::current()->select_24_bit_instr()" }; +bool dfa_shared_preds::_found[dfa_shared_preds::count] + = { false, false, false, false }; +const char* dfa_shared_preds::_type[dfa_shared_preds::count] + = { "int", "jlong", "intptr_t", "bool" }; +const char* dfa_shared_preds::_var [dfa_shared_preds::count] + = { "_n_get_int__", "_n_get_long__", "_n_get_intptr_t__", "Compile__current____select_24_bit_instr__" }; +const char* dfa_shared_preds::_pred[dfa_shared_preds::count] + = { "n->get_int()", "n->get_long()", "n->get_intptr_t()", "Compile::current()->select_24_bit_instr()" }; void ArchDesc::gen_dfa_state_body(FILE* fp, Dict &minimize, ProductionState &status, Dict &operands_chained_from, int i) { diff --git a/hotspot/src/share/vm/adlc/filebuff.hpp b/hotspot/src/share/vm/adlc/filebuff.hpp index c36fdbaf3fa..4c69bacee39 100644 --- a/hotspot/src/share/vm/adlc/filebuff.hpp +++ b/hotspot/src/share/vm/adlc/filebuff.hpp @@ -68,6 +68,7 @@ class FileBuff { // and increments bufeol and filepos to point at the end of that line. char *get_line(void); int linenum() const { return _linenum; } + void set_linenum(int line) { _linenum = line; } // This converts a pointer into the buffer to a file offset. It only works // when the pointer is valid (i.e. just obtained from getline()). diff --git a/hotspot/src/share/vm/adlc/formssel.cpp b/hotspot/src/share/vm/adlc/formssel.cpp index fb91d83d2f6..65b511bcdb1 100644 --- a/hotspot/src/share/vm/adlc/formssel.cpp +++ b/hotspot/src/share/vm/adlc/formssel.cpp @@ -1102,10 +1102,7 @@ bool equivalent_predicates( const InstructForm *instr1, const InstructForm *inst } if( pred1 != NULL && pred2 != NULL ) { // compare the predicates - const char *str1 = pred1->_pred; - const char *str2 = pred2->_pred; - if( (str1 == NULL && str2 == NULL) - || (str1 != NULL && str2 != NULL && strcmp(str1,str2) == 0) ) { + if (ADLParser::equivalent_expressions(pred1->_pred, pred2->_pred)) { return true; } } From 871bbff9cecc4319eeaf267ca072a83a6c473e81 Mon Sep 17 00:00:00 2001 From: Eamonn McManus Date: Wed, 10 Dec 2008 11:59:32 +0100 Subject: [PATCH 077/110] 6456269: Add a GenericMBeanException so clients don't have to have server's exception classes present Reviewed-by: jfdenise, dfuchs --- .../classes/javax/management/Descriptor.java | 34 +++ .../management/GenericMBeanException.java | 276 +++++++++++++++++ .../javax/management/MBeanException.java | 64 +++- .../interop/MBeanExceptionInteropTest.java | 166 +++++++++++ .../openmbean/GenericMBeanExceptionTest.java | 278 ++++++++++++++++++ 5 files changed, 807 insertions(+), 11 deletions(-) create mode 100644 jdk/src/share/classes/javax/management/GenericMBeanException.java create mode 100644 jdk/test/javax/management/interop/MBeanExceptionInteropTest.java create mode 100644 jdk/test/javax/management/openmbean/GenericMBeanExceptionTest.java diff --git a/jdk/src/share/classes/javax/management/Descriptor.java b/jdk/src/share/classes/javax/management/Descriptor.java index 30c6a5f5264..573f8fdbed9 100644 --- a/jdk/src/share/classes/javax/management/Descriptor.java +++ b/jdk/src/share/classes/javax/management/Descriptor.java @@ -155,6 +155,23 @@ import javax.management.openmbean.OpenType; * setting an attribute are specified by the field * {@code setExceptions}. * + * exceptionErrorCodesString[] + * MBeanAttributeInfo
MBeanConstructorInfo
MBeanOperationInfo + * + * The {@linkplain GenericMBeanException#getErrorCode() error codes} + * that can appear in a {@link GenericMBeanException} thrown when getting + * this attribute or invoking this operation or constructor. See also + * {@code setExceptionErrorCodes}. + * + * exceptionUserDataTypes + * {@link javax.management.openmbean.CompositeType}[] + * MBeanAttributeInfo
MBeanConstructorInfo
MBeanOperationInfo + * + * The types of {@linkplain GenericMBeanException#getUserData() userData} + * that can appear in a {@link GenericMBeanException} thrown when getting + * this attribute or invoking this operation or constructor. See also + * {@code setExceptionUserDataTypes}. + * * immutableInfoString * MBeanInfo * @@ -292,6 +309,23 @@ import javax.management.openmbean.OpenType; * an attribute. Exceptions thrown when getting an attribute are specified * by the field {@code exceptions}. * + * setExceptionErrorCodes + * String[]MBeanAttributeInfo + * + * The {@linkplain GenericMBeanException#getErrorCode() error codes} + * that can appear in a {@link GenericMBeanException} thrown when setting + * this attribute. See also + * {@code exceptionErrorCodes}. + * + * setExceptionUserDataTypes + * {@link javax.management.openmbean.CompositeType}[] + * MBeanAttributeInfo + * + * The types of {@linkplain GenericMBeanException#getUserData() userData} + * that can appear in a {@link GenericMBeanException} thrown when setting + * this attribute. See also + * {@code exceptionUserDataTypes}. + * * severityString
Integer * MBeanNotificationInfo * diff --git a/jdk/src/share/classes/javax/management/GenericMBeanException.java b/jdk/src/share/classes/javax/management/GenericMBeanException.java new file mode 100644 index 00000000000..dd0f96e78b1 --- /dev/null +++ b/jdk/src/share/classes/javax/management/GenericMBeanException.java @@ -0,0 +1,276 @@ +/* + * Copyright 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. + */ + +package javax.management; + +import javax.management.openmbean.CompositeData; + +/** + *

A customizable exception that has an optional error code string and + * payload. By using this exception in an MBean, you can avoid requiring + * clients of the MBean to have custom exception classes.

+ * + *

An instance of this class has an optional {@linkplain #getErrorCode() + * error code}, and an optional {@linkplain #getUserData() payload} known as + * {@code userData}. This allows you to distinguish between different + * sorts of exception while still using this class for all of them.

+ * + *

To produce a suitable {@code userData}, it is often simplest to use + * the MXBean framework. For example, suppose you want to convey a severity + * and a subsystem with your exception, which are respectively an int and a + * String. You could define a class like this:

+ * + *
+ * public class ExceptionDetails {
+ *     private final int severity;
+ *     private final String subsystem;
+ *
+ *     {@link java.beans.ConstructorProperties @ConstructorProperties}({"severity", "subsystem"})
+ *     public ExceptionDetails(int severity, String subsystem) {
+ *         this.severity = severity;
+ *         this.subsystem = subsystem;
+ *     }
+ *
+ *     public int getSeverity() {
+ *         return severity;
+ *     }
+ *
+ *     public String getSubsystem() {
+ *         return subsystem;
+ *     }
+ * }
+ * 
+ * + *

Then you can get the MXBean framework to transform {@code ExceptionDetails} + * into {@link CompositeData} like this:

+ * + *
+ * static final {@link javax.management.openmbean.MXBeanMapping MXBeanMapping} exceptionDetailsMapping = {@link javax.management.openmbean.MXBeanMappingFactory#DEFAULT
+ *     MXBeanMappingFactory.DEFAULT}.mappingForType(
+ *         ExceptionDetails.class, MXBeanMappingFactory.DEFAULT);
+ *
+ * public static GenericMBeanException newGenericMBeanException(
+ *         String message, String errorCode, int severity, String subsystem) {
+ *     ExceptionDetails details = new ExceptionDetails(severity, subsystem);
+ *     CompositeData userData = (CompositeData)
+ *             exceptionDetailsMapping.toOpenValue(details);
+ *     return new GenericMBeanException(
+ *             message, errorCode, userData, (Throwable) null);
+ * }
+ *
+ * ...
+ *     throw newGenericMBeanException(message, errorCode, 25, "foosystem");
+ * 
+ * + *

A client that knows the {@code ExceptionDetails} class can convert + * back from the {@code userData} of a {@code GenericMBeanException} + * that was generated as above:

+ * + *
+ * ...
+ *     try {
+ *         mbeanProxy.foo();
+ *     } catch (GenericMBeanException e) {
+ *         CompositeData userData = e.getUserData();
+ *         ExceptionDetails details = (ExceptionDetails)
+ *                 exceptionDetailsMapping.fromOpenValue(userData);
+ *         System.out.println("Exception Severity: " + details.getSeverity());
+ *     }
+ * ...
+ * 
+ * + *

The Descriptor field exceptionErrorCodes can be used to specify in the + * {@link MBeanOperationInfo} for an operation what the possible + * {@linkplain #getErrorCode() error codes} are when that operation throws + * {@code GenericMBeanException}. It can also be used in an {@link + * MBeanConstructorInfo} or {@link MBeanAttributeInfo} to specify what the + * possible error codes are for {@code GenericMBeanException} when invoking + * that constructor or getting that attribute, respectively. The field + * setExceptionErrorCodes can be used to specify what the possible + * error codes are when setting an attribute.

+ * + *

You may want to use the {@link DescriptorKey @DescriptorKey} facility + * to define annotations that allow you to specify the error codes. If you + * define...

+ * + *
+ * {@link java.lang.annotation.Documented @Documented}
+ * {@link java.lang.annotation.Target @Target}(ElementType.METHOD)
+ * {@link java.lang.annotation.Retention @Retention}(RetentionPolicy.RUNTIME)
+ * public @interface ErrorCodes {
+ *     @DescriptorKey("exceptionErrorCodes")
+ *     String[] value();
+ * }
+ * 
+ * + *

...then you can write MBean interfaces like this...

+ * + *
+ * public interface FooMBean {  // or FooMXBean
+ *     @ErrorCodes({"com.example.bad", "com.example.worse"})
+ *     public void foo() throws GenericMBeanException;
+ * }
+ * 
+ * + *

The Descriptor field exceptionUserDataTypes can be used to specify in the + * {@link MBeanOperationInfo} for an operation what the possible types of + * {@linkplain #getUserData() userData} are when that operation throws + * {@code GenericMBeanException}. It is an array of + * {@link javax.management.openmbean.CompositeType CompositeType} values + * describing the possible {@link CompositeData} formats. This field can also be used + * in an {@link MBeanConstructorInfo} or {@link MBeanAttributeInfo} to specify + * the possible types of user data for {@code GenericMBeanException} when + * invoking that constructor or getting that attribute, respectively. The + * field + * setExceptionUserDataTypes + * can be used to specify the possible types of user data for exceptions when + * setting an attribute. If a Descriptor has both {@code exceptionErrorCodes} + * and {@code exceptionUserDataTypes} then the two arrays should be the + * same size; each pair of corresponding elements describes one kind + * of exception. Similarly for {@code setExceptionErrorCodes} and {@code + * setExceptionUserDataTypes}. + * + * + *

Serialization

+ * + *

For compatibility reasons, instances of this class are serialized as + * instances of {@link MBeanException}. Special logic in that class converts + * them back to instances of this class at deserialization time. If the + * serialized object is deserialized in an earlier version of the JMX API + * that does not include this class, then it will appear as just an {@code + * MBeanException} and the error code or userData will not be available.

+ * + * @since 1.7 + */ +public class GenericMBeanException extends MBeanException { + private static final long serialVersionUID = -1560202003985932823L; + + /** + *

Constructs a new {@code GenericMBeanException} with the given + * detail message. This constructor is + * equivalent to {@link #GenericMBeanException(String, String, + * CompositeData, Throwable) GenericMBeanException(message, "", + * null, null)}.

+ * + * @param message the exception detail message. + */ + public GenericMBeanException(String message) { + this(message, "", null, null); + } + + /** + *

Constructs a new {@code GenericMBeanException} with the given + * detail message and cause. This constructor is + * equivalent to {@link #GenericMBeanException(String, String, + * CompositeData, Throwable) GenericMBeanException(message, "", + * null, cause)}.

+ * + * @param message the exception detail message. + * @param cause the cause of this exception. Can be null. + */ + public GenericMBeanException(String message, Throwable cause) { + this(message, "", null, cause); + } + + /** + *

Constructs a new {@code GenericMBeanException} with the given + * detail message, error code, and user data. This constructor is + * equivalent to {@link #GenericMBeanException(String, String, + * CompositeData, Throwable) GenericMBeanException(message, errorCode, + * userData, null)}.

+ * + * @param message the exception detail message. + * @param errorCode the exception error code. Specifying a null value + * is equivalent to specifying an empty string. It is recommended to use + * the same reverse domain name convention as package names, for example + * "com.example.foo.UnexpectedFailure". There is no requirement that the + * error code be a syntactically valid Java identifier. + * @param userData extra information about the exception. Can be null. + */ + public GenericMBeanException( + String message, String errorCode, CompositeData userData) { + this(message, errorCode, userData, null); + } + + /** + *

Constructs a new {@code GenericMBeanException} with the given + * detail message, error code, user data, and cause.

+ * + * @param message the exception detail message. + * @param errorCode the exception error code. Specifying a null value + * is equivalent to specifying an empty string. It is recommended to use + * the same reverse domain name convention as package names, for example + * "com.example.foo.UnexpectedFailure". There is no requirement that the + * error code be a syntactically valid Java identifier. + * @param userData extra information about the exception. Can be null. + * @param cause the cause of this exception. Can be null. + */ + public GenericMBeanException( + String message, String errorCode, CompositeData userData, + Throwable cause) { + super(message, (errorCode == null) ? "" : errorCode, userData, cause); + } + + /** + *

Returns the error code of this exception.

+ * + * @return the error code. This value is never null. + */ + public String getErrorCode() { + return errorCode; + } + + /** + *

Returns the userData of this exception.

+ * + * @return the userData. Can be null. + */ + public CompositeData getUserData() { + return userData; + } + + /** + *

Instances of this class are serialized as instances of + * {@link MBeanException}. {@code MBeanException} has private fields that can + * not be set by its public constructors. They can only be set in objects + * returned by this method. When an {@code MBeanException} instance is + * deserialized, if those fields are present then its {@code readResolve} + * method will substitute a {@code GenericMBeanException} equivalent to + * this one.

+ */ + Object writeReplace() { + MBeanException x = new MBeanException( + getMessage(), errorCode, userData, getCause()); + x.setStackTrace(this.getStackTrace()); + return x; + } +} diff --git a/jdk/src/share/classes/javax/management/MBeanException.java b/jdk/src/share/classes/javax/management/MBeanException.java index 839daa5dd31..7edc6639a6b 100644 --- a/jdk/src/share/classes/javax/management/MBeanException.java +++ b/jdk/src/share/classes/javax/management/MBeanException.java @@ -25,6 +25,8 @@ package javax.management; +import javax.management.openmbean.CompositeData; + /** * Represents "user defined" exceptions thrown by MBean methods @@ -40,6 +42,26 @@ public class MBeanException extends JMException { /* Serial version */ private static final long serialVersionUID = 4066342430588744142L; + /** + * @serial This field is null for instances of this class that were + * produced by its public constructors. It is non-null for instances + * of this class that represent serialized instances of {@link + * GenericMBeanException}. + * + * @see GenericMBeanException#getErrorCode() + */ + final String errorCode; + + /** + * @serial This field is null for instances of this class that were + * produced by its public constructors. It may be non-null for instances + * of this class that represent serialized instances of {@link + * GenericMBeanException}. + * + * @see GenericMBeanException#getUserData() + */ + final CompositeData userData; + /** * @serial Encapsulated {@link Exception} */ @@ -51,9 +73,8 @@ public class MBeanException extends JMException { * * @param e the wrapped exception. */ - public MBeanException(java.lang.Exception e) { - super() ; - exception = e ; + public MBeanException(Exception e) { + this(null, null, null, e); } /** @@ -63,11 +84,19 @@ public class MBeanException extends JMException { * @param e the wrapped exception. * @param message the detail message. */ - public MBeanException(java.lang.Exception e, String message) { - super(message) ; - exception = e ; + public MBeanException(Exception e, String message) { + this(message, null, null, e); } + MBeanException( + String message, String errorCode, CompositeData userData, Throwable cause) { + super(message); + initCause(cause); + if (cause instanceof Exception) + this.exception = (Exception) cause; + this.errorCode = errorCode; + this.userData = userData; + } /** * Return the actual {@link Exception} thrown. @@ -79,11 +108,24 @@ public class MBeanException extends JMException { } /** - * Return the actual {@link Exception} thrown. - * - * @return the wrapped exception. + * This method is invoked when deserializing instances of this class. + * If the {@code errorCode} field of the deserialized instance is not + * null, this method returns an instance of {@link GenericMBeanException} + * instead. Otherwise it returns {@code this}. + * @return {@code this}, or a {@code GenericMBeanException}. */ - public Throwable getCause() { - return exception; + Object readResolve() { + if (errorCode == null) { + // serial compatibility: earlier versions did not set + // Throwable.cause because they overrode getCause(). + if (getCause() == null && exception != null) + initCause(exception); + return this; + } else { + Throwable t = new GenericMBeanException( + getMessage(), errorCode, userData, getCause()); + t.setStackTrace(this.getStackTrace()); + return t; + } } } diff --git a/jdk/test/javax/management/interop/MBeanExceptionInteropTest.java b/jdk/test/javax/management/interop/MBeanExceptionInteropTest.java new file mode 100644 index 00000000000..dff6d9639d3 --- /dev/null +++ b/jdk/test/javax/management/interop/MBeanExceptionInteropTest.java @@ -0,0 +1,166 @@ +/* + * Copyright 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. + * + * 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. + */ + +/* + * @test + * @bug 6456269 + * @summary Test that an MBeanException serialized on JDK 6 deserializes + * correctly on JDK 7. + * @author Eamonn McManus + */ + +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.io.ObjectInputStream; +import java.io.ObjectOutputStream; +import javax.management.MBeanException; + +// In JDK 6, the Throwable.cause field was always null for an MBeanException, +// but it didn't matter because we overrode getCause() to return +// MBeanException.exception instead. In JDK 7, we no longer override getCause() +// because MBeanException doubles as the serial form of GenericMBeanException. +// So we need some care to make sure that objects deserialized from JDK 6 +// have the right getCause() behaviour. +public class MBeanExceptionInteropTest { + private static final byte[] SERIALIZED_MBEAN_EXCEPTION = { + -84,-19,0,5,115,114,0,31,106,97,118,97,120,46,109,97, + 110,97,103,101,109,101,110,116,46,77,66,101,97,110,69,120, + 99,101,112,116,105,111,110,56,110,-116,-27,110,87,49,-50,2, + 0,1,76,0,9,101,120,99,101,112,116,105,111,110,116,0, + 21,76,106,97,118,97,47,108,97,110,103,47,69,120,99,101, + 112,116,105,111,110,59,120,114,0,28,106,97,118,97,120,46, + 109,97,110,97,103,101,109,101,110,116,46,74,77,69,120,99, + 101,112,116,105,111,110,4,-35,76,-20,-109,-99,126,113,2,0, + 0,120,114,0,19,106,97,118,97,46,108,97,110,103,46,69, + 120,99,101,112,116,105,111,110,-48,-3,31,62,26,59,28,-60, + 2,0,0,120,114,0,19,106,97,118,97,46,108,97,110,103, + 46,84,104,114,111,119,97,98,108,101,-43,-58,53,39,57,119, + -72,-53,3,0,3,76,0,5,99,97,117,115,101,116,0,21, + 76,106,97,118,97,47,108,97,110,103,47,84,104,114,111,119, + 97,98,108,101,59,76,0,13,100,101,116,97,105,108,77,101, + 115,115,97,103,101,116,0,18,76,106,97,118,97,47,108,97, + 110,103,47,83,116,114,105,110,103,59,91,0,10,115,116,97, + 99,107,84,114,97,99,101,116,0,30,91,76,106,97,118,97, + 47,108,97,110,103,47,83,116,97,99,107,84,114,97,99,101, + 69,108,101,109,101,110,116,59,120,112,113,0,126,0,8,116, + 0,7,79,104,32,100,101,97,114,117,114,0,30,91,76,106, + 97,118,97,46,108,97,110,103,46,83,116,97,99,107,84,114, + 97,99,101,69,108,101,109,101,110,116,59,2,70,42,60,60, + -3,34,57,2,0,0,120,112,0,0,0,2,115,114,0,27, + 106,97,118,97,46,108,97,110,103,46,83,116,97,99,107,84, + 114,97,99,101,69,108,101,109,101,110,116,97,9,-59,-102,38, + 54,-35,-123,2,0,4,73,0,10,108,105,110,101,78,117,109, + 98,101,114,76,0,14,100,101,99,108,97,114,105,110,103,67, + 108,97,115,115,113,0,126,0,6,76,0,8,102,105,108,101, + 78,97,109,101,113,0,126,0,6,76,0,10,109,101,116,104, + 111,100,78,97,109,101,113,0,126,0,6,120,112,0,0,0, + 63,116,0,25,77,66,101,97,110,69,120,99,101,112,116,105, + 111,110,73,110,116,101,114,111,112,84,101,115,116,116,0,30, + 77,66,101,97,110,69,120,99,101,112,116,105,111,110,73,110, + 116,101,114,111,112,84,101,115,116,46,106,97,118,97,116,0, + 5,119,114,105,116,101,115,113,0,126,0,12,0,0,0,46, + 113,0,126,0,14,113,0,126,0,15,116,0,4,109,97,105, + 110,120,115,114,0,34,106,97,118,97,46,108,97,110,103,46, + 73,108,108,101,103,97,108,65,114,103,117,109,101,110,116,69, + 120,99,101,112,116,105,111,110,-75,-119,115,-45,125,102,-113,-68, + 2,0,0,120,114,0,26,106,97,118,97,46,108,97,110,103, + 46,82,117,110,116,105,109,101,69,120,99,101,112,116,105,111, + 110,-98,95,6,71,10,52,-125,-27,2,0,0,120,113,0,126, + 0,3,113,0,126,0,21,116,0,3,66,97,100,117,113,0, + 126,0,10,0,0,0,2,115,113,0,126,0,12,0,0,0, + 62,113,0,126,0,14,113,0,126,0,15,113,0,126,0,16, + 115,113,0,126,0,12,0,0,0,46,113,0,126,0,14,113, + 0,126,0,15,113,0,126,0,18,120, + }; + + private static volatile String failure; + + public static void main(String[] args) throws Exception { + if (args.length > 0) { + if (args[0].equals("write") && args.length == 1) { + write(); + return; + } else { + System.err.println( + "Usage: java MBeanExceptionInteropTest"); + System.err.println( + "or: java MBeanExceptionInteropTest write"); + System.exit(1); + } + } + + // Read the serialized object and check it is correct. + ByteArrayInputStream bin = + new ByteArrayInputStream(SERIALIZED_MBEAN_EXCEPTION); + ObjectInputStream oin = new ObjectInputStream(bin); + MBeanException mbeanEx = (MBeanException) oin.readObject(); + assertEquals("MBeanException message", "Oh dear", mbeanEx.getMessage()); + System.out.println("getCause(): " + mbeanEx.getCause() + "; " + + "getTargetException(): " + mbeanEx.getTargetException()); + for (Throwable t : + new Throwable[] {mbeanEx.getCause(), mbeanEx.getTargetException()}) { + if (!(t instanceof IllegalArgumentException)) + fail("Nested exception not an IllegalArgumentException: " + t); + else + assertEquals("Nested exception message", "Bad", t.getMessage()); + } + + if (failure == null) + System.out.println("TEST PASSED"); + else + throw new Exception("TEST FAILED: " + failure); + } + + // Write a file that can be inserted into this source file as the + // contents of the SERIALIZED_MBEAN_EXCEPTION array. Run this program + // on JDK 6 to generate the array, then test on JDK 7. + private static void write() throws Exception { + Exception wrapped = new IllegalArgumentException("Bad"); + MBeanException mbeanEx = new MBeanException(wrapped, "Oh dear"); + ByteArrayOutputStream bout = new ByteArrayOutputStream(); + ObjectOutputStream oout = new ObjectOutputStream(bout); + oout.writeObject(mbeanEx); + oout.close(); + byte[] bytes = bout.toByteArray(); + for (int i = 0; i < bytes.length; i++) { + System.out.printf("%d,", bytes[i]); + if (i % 16 == 15) + System.out.println(); + } + if (bytes.length % 16 != 0) + System.out.println(); + } + + private static void assertEquals(String what, Object expect, Object actual) { + boolean equal = (expect == null) ? (actual == null) : expect.equals(actual); + if (equal) + System.out.println("OK: " + what + ": " + expect); + else + fail(what + ": expected " + expect + ", got " + actual); + } + + private static void fail(String why) { + System.out.println("FAIL: " + why); + failure = why; + } +} diff --git a/jdk/test/javax/management/openmbean/GenericMBeanExceptionTest.java b/jdk/test/javax/management/openmbean/GenericMBeanExceptionTest.java new file mode 100644 index 00000000000..fa682d0d0d7 --- /dev/null +++ b/jdk/test/javax/management/openmbean/GenericMBeanExceptionTest.java @@ -0,0 +1,278 @@ +/* + * Copyright 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. + * + * 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. + */ + +/* + * @test + * @bug 6456269 + * @summary Test GenericMBeanException + * @author Eamonn McManus + */ + +import java.beans.ConstructorProperties; +import java.lang.management.ManagementFactory; +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; +import javax.management.GenericMBeanException; +import javax.management.JMX; +import javax.management.MBeanServer; +import javax.management.MBeanServerConnection; +import javax.management.ObjectName; +import javax.management.openmbean.CompositeData; +import javax.management.openmbean.CompositeType; +import javax.management.openmbean.MXBeanMapping; +import javax.management.openmbean.MXBeanMappingFactory; +import javax.management.remote.JMXConnector; +import javax.management.remote.JMXConnectorFactory; +import javax.management.remote.JMXConnectorServer; +import javax.management.remote.JMXConnectorServerFactory; +import javax.management.remote.JMXServiceURL; + +public class GenericMBeanExceptionTest { + private static volatile String failure = null; + + public static interface ThrowerMBean { + public void throwGeneric() throws GenericMBeanException; + public void throwGeneric(Throwable cause) throws GenericMBeanException; + public void throwGeneric(String errorCode) throws GenericMBeanException; + public void throwGeneric(CompositeData userData) throws GenericMBeanException; + public void throwGeneric(String errorCode, CompositeData userData) + throws GenericMBeanException; + public void throwGeneric(String errorCode, CompositeData userData, Throwable cause) + throws GenericMBeanException; + } + + public static class Thrower implements ThrowerMBean { + + public void throwGeneric() throws GenericMBeanException { + throw new GenericMBeanException("Message"); + } + + public void throwGeneric(Throwable cause) throws GenericMBeanException { + throw new GenericMBeanException("Message", cause); + } + + public void throwGeneric(String errorCode) throws GenericMBeanException { + throw new GenericMBeanException("Message", errorCode, null); + } + + public void throwGeneric(CompositeData userData) throws GenericMBeanException { + throw new GenericMBeanException("Message", null, userData); + } + + public void throwGeneric(String errorCode, CompositeData userData) + throws GenericMBeanException { + throw new GenericMBeanException("Message", errorCode, userData); + } + + public void throwGeneric(String errorCode, CompositeData userData, + Throwable cause) throws GenericMBeanException { + throw new GenericMBeanException("Message", errorCode, userData, cause); + } + } + + public static class Payload { + private final int severity; + private final String subsystem; + + @ConstructorProperties({"severity", "subsystem"}) + public Payload(int severity, String subsystem) { + this.severity = severity; + this.subsystem = subsystem; + } + + public int getSeverity() { + return severity; + } + + public String getSubsystem() { + return subsystem; + } + + @Override + public boolean equals(Object x) { + if (!(x instanceof Payload)) + return false; + Payload p = (Payload) x; + return (severity == p.severity && + (subsystem == null) ? + p.subsystem == null : subsystem.equals(p.subsystem)); + } + + @Override + public int hashCode() { + return severity + subsystem.hashCode(); + } + + @Override + public String toString() { + return "Payload{severity: " + severity + ", subsystem: " + subsystem + "}"; + } + } + + public static void main(String[] args) throws Exception { + MBeanServer mbs = ManagementFactory.getPlatformMBeanServer(); + ObjectName name = new ObjectName("test:type=Thrower"); + Thrower thrower = new Thrower(); + mbs.registerMBean(thrower, name); + + if (args.length > 0) { + System.out.println("Attach client now, hit return to exit"); + System.in.read(); + return; + } + + JMXServiceURL url = new JMXServiceURL("service:jmx:rmi://"); + JMXConnectorServer cs = JMXConnectorServerFactory.newJMXConnectorServer( + url, null, mbs); + cs.start(); + JMXServiceURL addr = cs.getAddress(); + + JMXConnector cc = JMXConnectorFactory.connect(addr); + MBeanServerConnection mbsc = cc.getMBeanServerConnection(); + + ThrowerMBean throwerProxy = JMX.newMBeanProxy(mbsc, name, ThrowerMBean.class); + + Payload payload = new Payload(5, "modular modulizer"); + MXBeanMapping payloadMapping = MXBeanMappingFactory.DEFAULT.mappingForType( + Payload.class, MXBeanMappingFactory.DEFAULT); + CompositeData userData = (CompositeData) + payloadMapping.toOpenValue(payload); + Throwable cause = new IllegalArgumentException("Badness"); + + Object[][] testCases = { + {}, + {"code1"}, + {userData}, + {"code2", userData}, + {(String) null, userData}, + {"code99", userData, cause}, + {(String) null, userData, cause}, + }; + + for (Object[] testCase : testCases) { + System.out.println("Test case: " + testCaseString(testCase)); + + // Find which ThrowerMBean method it corresponds to + Method testMethod = null; +search: + for (Method m : ThrowerMBean.class.getMethods()) { + Class[] paramTypes = m.getParameterTypes(); + if (paramTypes.length != testCase.length) + continue; + for (int i = 0; i < paramTypes.length; i++) { + if (testCase[i] != null && !paramTypes[i].isInstance(testCase[i])) + continue search; + } + testMethod = m; + } + + if (testMethod == null) { + throw new Exception("TEST ERROR: no method corresponds: " + + testCaseString(testCase)); + } + + try { + testMethod.invoke(throwerProxy, testCase); + fail("Did not throw exception", testCase); + continue; + } catch (InvocationTargetException e) { + Throwable iteCause = e.getCause(); + if (!(iteCause instanceof GenericMBeanException)) { + iteCause.printStackTrace(System.out); + fail("Threw wrong exception " + iteCause, testCase); + continue; + } + GenericMBeanException ge = (GenericMBeanException) iteCause; + if (!ge.getMessage().equals("Message")) + fail("Wrong message: " + ge.getMessage(), testCase); + + Class[] paramTypes = testMethod.getParameterTypes(); + for (int i = 0; i < paramTypes.length; i++) { + Class paramType = paramTypes[i]; + + if (paramType == Throwable.class) { // cause + Throwable geCause = ge.getCause(); + if (!(geCause instanceof IllegalArgumentException)) + fail("Wrong cause: " + geCause, testCase); + else if (!geCause.getMessage().equals("Badness")) + fail("Wrong cause message: " + geCause.getMessage(), testCase); + } else if (paramType == String.class) { // errorCode + String errorCode = ge.getErrorCode(); + String expectedErrorCode = + (testCase[i] == null) ? "" : (String) testCase[i]; + if (!expectedErrorCode.equals(errorCode)) + fail("Wrong error code: " + ge.getErrorCode(), testCase); + } else if (paramType == CompositeData.class) { // userData + CompositeData userData2 = ge.getUserData(); + if (!userData.equals(userData2)) + fail("Wrong userData: " + userData2, testCase); + Payload payload2 = (Payload) payloadMapping.fromOpenValue(userData2); + if (!payload.equals(payload2)) + fail("Wrong payload: " + payload2, testCase); + } else + throw new Exception("TEST ERROR: unknown parameter type: " + paramType); + } + } + } + + if (failure == null) + System.out.println("TEST PASSED"); + else + throw new Exception("TEST FAILED: " + failure); + } + + private static String testCaseString(Object[] testCase) { + StringBuilder sb = new StringBuilder("["); + String sep = ""; + for (Object x : testCase) { + sb.append(sep); + String xs = (x instanceof CompositeData) ? + compositeDataString((CompositeData) x) : String.valueOf(x); + sb.append(xs); + sep = ", "; + } + sb.append("]"); + return sb.toString(); + } + + private static String compositeDataString(CompositeData cd) { + StringBuilder sb = new StringBuilder("CompositeData{"); + CompositeType ct = cd.getCompositeType(); + String sep = ""; + for (String key : ct.keySet()) { + sb.append(sep).append(key).append(": ").append(cd.get(key)); + sep = ", "; + } + sb.append("}"); + return sb.toString(); + } + + private static void fail(String why, Object[] testCase) { + fail(testCaseString(testCase) + ": " + why); + } + + private static void fail(String why) { + failure = why; + System.out.println("FAIL: " + why); + } +} From 89fa477ecf236750aed9e017e21f535462ef06f0 Mon Sep 17 00:00:00 2001 From: Xueming Shen Date: Wed, 10 Dec 2008 14:03:15 -0800 Subject: [PATCH 078/110] 6642323: Speeding up Single Byte Decoders 6642328: Speeding up Single Byte Encoders Re-implementation of mapping based sbcs charts Reviewed-by: alanb --- jdk/make/java/nio/FILES_java.gmk | 33 +- jdk/make/java/nio/Makefile | 15 +- jdk/make/sun/nio/FILES_java.gmk | 76 ++- jdk/make/sun/nio/Makefile | 16 +- jdk/make/tools/CharsetMapping/IBM037.c2b | 1 + jdk/make/tools/CharsetMapping/IBM037.map | 257 +++++++++++ jdk/make/tools/CharsetMapping/IBM037.nr | 1 + jdk/make/tools/CharsetMapping/IBM1006.map | 257 +++++++++++ jdk/make/tools/CharsetMapping/IBM1025.c2b | 1 + jdk/make/tools/CharsetMapping/IBM1025.map | 257 +++++++++++ jdk/make/tools/CharsetMapping/IBM1025.nr | 1 + jdk/make/tools/CharsetMapping/IBM1026.c2b | 1 + jdk/make/tools/CharsetMapping/IBM1026.map | 257 +++++++++++ jdk/make/tools/CharsetMapping/IBM1026.nr | 1 + jdk/make/tools/CharsetMapping/IBM1046.map | 257 +++++++++++ jdk/make/tools/CharsetMapping/IBM1047.map | 257 +++++++++++ jdk/make/tools/CharsetMapping/IBM1097.map | 257 +++++++++++ jdk/make/tools/CharsetMapping/IBM1098.map | 257 +++++++++++ jdk/make/tools/CharsetMapping/IBM1112.c2b | 1 + jdk/make/tools/CharsetMapping/IBM1112.map | 257 +++++++++++ jdk/make/tools/CharsetMapping/IBM1112.nr | 1 + jdk/make/tools/CharsetMapping/IBM1122.c2b | 1 + jdk/make/tools/CharsetMapping/IBM1122.map | 257 +++++++++++ jdk/make/tools/CharsetMapping/IBM1122.nr | 1 + jdk/make/tools/CharsetMapping/IBM1123.c2b | 1 + jdk/make/tools/CharsetMapping/IBM1123.map | 257 +++++++++++ jdk/make/tools/CharsetMapping/IBM1123.nr | 1 + jdk/make/tools/CharsetMapping/IBM1124.map | 257 +++++++++++ jdk/make/tools/CharsetMapping/IBM1140.c2b | 1 + jdk/make/tools/CharsetMapping/IBM1140.map | 257 +++++++++++ jdk/make/tools/CharsetMapping/IBM1141.c2b | 1 + jdk/make/tools/CharsetMapping/IBM1141.map | 257 +++++++++++ jdk/make/tools/CharsetMapping/IBM1142.c2b | 1 + jdk/make/tools/CharsetMapping/IBM1142.map | 257 +++++++++++ jdk/make/tools/CharsetMapping/IBM1143.c2b | 1 + jdk/make/tools/CharsetMapping/IBM1143.map | 257 +++++++++++ jdk/make/tools/CharsetMapping/IBM1144.c2b | 1 + jdk/make/tools/CharsetMapping/IBM1144.map | 257 +++++++++++ jdk/make/tools/CharsetMapping/IBM1145.c2b | 1 + jdk/make/tools/CharsetMapping/IBM1145.map | 257 +++++++++++ jdk/make/tools/CharsetMapping/IBM1146.c2b | 1 + jdk/make/tools/CharsetMapping/IBM1146.map | 257 +++++++++++ jdk/make/tools/CharsetMapping/IBM1147.c2b | 1 + jdk/make/tools/CharsetMapping/IBM1147.map | 257 +++++++++++ jdk/make/tools/CharsetMapping/IBM1148.c2b | 1 + jdk/make/tools/CharsetMapping/IBM1148.map | 257 +++++++++++ jdk/make/tools/CharsetMapping/IBM1149.c2b | 1 + jdk/make/tools/CharsetMapping/IBM1149.map | 257 +++++++++++ jdk/make/tools/CharsetMapping/IBM273.c2b | 1 + jdk/make/tools/CharsetMapping/IBM273.map | 257 +++++++++++ jdk/make/tools/CharsetMapping/IBM273.nr | 1 + jdk/make/tools/CharsetMapping/IBM277.c2b | 1 + jdk/make/tools/CharsetMapping/IBM277.map | 257 +++++++++++ jdk/make/tools/CharsetMapping/IBM277.nr | 1 + jdk/make/tools/CharsetMapping/IBM278.c2b | 1 + jdk/make/tools/CharsetMapping/IBM278.map | 257 +++++++++++ jdk/make/tools/CharsetMapping/IBM278.nr | 1 + jdk/make/tools/CharsetMapping/IBM280.c2b | 1 + jdk/make/tools/CharsetMapping/IBM280.map | 257 +++++++++++ jdk/make/tools/CharsetMapping/IBM280.nr | 1 + jdk/make/tools/CharsetMapping/IBM284.c2b | 1 + jdk/make/tools/CharsetMapping/IBM284.map | 257 +++++++++++ jdk/make/tools/CharsetMapping/IBM284.nr | 1 + jdk/make/tools/CharsetMapping/IBM285.c2b | 1 + jdk/make/tools/CharsetMapping/IBM285.map | 257 +++++++++++ jdk/make/tools/CharsetMapping/IBM285.nr | 1 + jdk/make/tools/CharsetMapping/IBM297.c2b | 1 + jdk/make/tools/CharsetMapping/IBM297.map | 257 +++++++++++ jdk/make/tools/CharsetMapping/IBM297.nr | 1 + jdk/make/tools/CharsetMapping/IBM420.c2b | 1 + jdk/make/tools/CharsetMapping/IBM420.map | 257 +++++++++++ jdk/make/tools/CharsetMapping/IBM420.nr | 1 + jdk/make/tools/CharsetMapping/IBM424.c2b | 1 + jdk/make/tools/CharsetMapping/IBM424.map | 257 +++++++++++ jdk/make/tools/CharsetMapping/IBM424.nr | 1 + jdk/make/tools/CharsetMapping/IBM437.map | 257 +++++++++++ jdk/make/tools/CharsetMapping/IBM500.c2b | 1 + jdk/make/tools/CharsetMapping/IBM500.map | 257 +++++++++++ jdk/make/tools/CharsetMapping/IBM500.nr | 1 + jdk/make/tools/CharsetMapping/IBM737.map | 257 +++++++++++ jdk/make/tools/CharsetMapping/IBM775.map | 257 +++++++++++ jdk/make/tools/CharsetMapping/IBM838.c2b | 1 + jdk/make/tools/CharsetMapping/IBM838.map | 257 +++++++++++ jdk/make/tools/CharsetMapping/IBM838.nr | 6 + jdk/make/tools/CharsetMapping/IBM850.map | 257 +++++++++++ jdk/make/tools/CharsetMapping/IBM852.map | 257 +++++++++++ jdk/make/tools/CharsetMapping/IBM855.map | 257 +++++++++++ jdk/make/tools/CharsetMapping/IBM856.map | 257 +++++++++++ jdk/make/tools/CharsetMapping/IBM857.map | 257 +++++++++++ jdk/make/tools/CharsetMapping/IBM858.map | 257 +++++++++++ jdk/make/tools/CharsetMapping/IBM860.map | 257 +++++++++++ jdk/make/tools/CharsetMapping/IBM861.map | 257 +++++++++++ jdk/make/tools/CharsetMapping/IBM862.map | 257 +++++++++++ jdk/make/tools/CharsetMapping/IBM863.map | 257 +++++++++++ jdk/make/tools/CharsetMapping/IBM864.map | 257 +++++++++++ jdk/make/tools/CharsetMapping/IBM865.map | 257 +++++++++++ jdk/make/tools/CharsetMapping/IBM866.map | 257 +++++++++++ jdk/make/tools/CharsetMapping/IBM868.map | 257 +++++++++++ jdk/make/tools/CharsetMapping/IBM869.map | 257 +++++++++++ jdk/make/tools/CharsetMapping/IBM870.c2b | 1 + jdk/make/tools/CharsetMapping/IBM870.map | 257 +++++++++++ jdk/make/tools/CharsetMapping/IBM870.nr | 1 + jdk/make/tools/CharsetMapping/IBM871.c2b | 1 + jdk/make/tools/CharsetMapping/IBM871.map | 257 +++++++++++ jdk/make/tools/CharsetMapping/IBM871.nr | 1 + jdk/make/tools/CharsetMapping/IBM874.map | 257 +++++++++++ jdk/make/tools/CharsetMapping/IBM874.nr | 5 + jdk/make/tools/CharsetMapping/IBM875.c2b | 1 + jdk/make/tools/CharsetMapping/IBM875.map | 257 +++++++++++ jdk/make/tools/CharsetMapping/IBM875.nr | 1 + jdk/make/tools/CharsetMapping/IBM918.c2b | 1 + jdk/make/tools/CharsetMapping/IBM918.map | 257 +++++++++++ jdk/make/tools/CharsetMapping/IBM918.nr | 1 + jdk/make/tools/CharsetMapping/IBM921.map | 257 +++++++++++ jdk/make/tools/CharsetMapping/IBM922.map | 257 +++++++++++ jdk/make/tools/CharsetMapping/ISO_8859_11.map | 257 +++++++++++ jdk/make/tools/CharsetMapping/ISO_8859_13.map | 257 +++++++++++ jdk/make/tools/CharsetMapping/ISO_8859_15.map | 257 +++++++++++ jdk/make/tools/CharsetMapping/ISO_8859_2.map | 257 +++++++++++ jdk/make/tools/CharsetMapping/ISO_8859_3.map | 257 +++++++++++ jdk/make/tools/CharsetMapping/ISO_8859_4.map | 257 +++++++++++ jdk/make/tools/CharsetMapping/ISO_8859_5.map | 257 +++++++++++ jdk/make/tools/CharsetMapping/ISO_8859_6.map | 257 +++++++++++ jdk/make/tools/CharsetMapping/ISO_8859_7.map | 257 +++++++++++ jdk/make/tools/CharsetMapping/ISO_8859_8.map | 257 +++++++++++ jdk/make/tools/CharsetMapping/ISO_8859_9.map | 257 +++++++++++ jdk/make/tools/CharsetMapping/JIS_X_0201.map | 257 +++++++++++ jdk/make/tools/CharsetMapping/KOI8_R.map | 257 +++++++++++ jdk/make/tools/CharsetMapping/KOI8_U.map | 257 +++++++++++ jdk/make/tools/CharsetMapping/MS1250.map | 257 +++++++++++ jdk/make/tools/CharsetMapping/MS1251.map | 257 +++++++++++ jdk/make/tools/CharsetMapping/MS1252.map | 257 +++++++++++ jdk/make/tools/CharsetMapping/MS1253.map | 257 +++++++++++ jdk/make/tools/CharsetMapping/MS1254.map | 257 +++++++++++ jdk/make/tools/CharsetMapping/MS1255.map | 257 +++++++++++ jdk/make/tools/CharsetMapping/MS1256.map | 257 +++++++++++ jdk/make/tools/CharsetMapping/MS1257.map | 257 +++++++++++ jdk/make/tools/CharsetMapping/MS1258.map | 257 +++++++++++ jdk/make/tools/CharsetMapping/MS874.map | 257 +++++++++++ jdk/make/tools/CharsetMapping/MacArabic.map | 257 +++++++++++ .../tools/CharsetMapping/MacCentralEurope.map | 257 +++++++++++ jdk/make/tools/CharsetMapping/MacCroatian.map | 257 +++++++++++ jdk/make/tools/CharsetMapping/MacCyrillic.map | 257 +++++++++++ jdk/make/tools/CharsetMapping/MacDingbat.map | 257 +++++++++++ jdk/make/tools/CharsetMapping/MacGreek.map | 257 +++++++++++ jdk/make/tools/CharsetMapping/MacHebrew.map | 257 +++++++++++ jdk/make/tools/CharsetMapping/MacIceland.map | 257 +++++++++++ jdk/make/tools/CharsetMapping/MacRoman.map | 257 +++++++++++ jdk/make/tools/CharsetMapping/MacRomania.map | 257 +++++++++++ jdk/make/tools/CharsetMapping/MacSymbol.map | 257 +++++++++++ jdk/make/tools/CharsetMapping/MacThai.map | 257 +++++++++++ jdk/make/tools/CharsetMapping/MacTurkish.map | 257 +++++++++++ jdk/make/tools/CharsetMapping/MacUkraine.map | 257 +++++++++++ .../tools/CharsetMapping/SingleByte-X.java | 83 ++++ jdk/make/tools/CharsetMapping/TIS_620.map | 257 +++++++++++ jdk/make/tools/CharsetMapping/extsbcs | 74 +++ jdk/make/tools/CharsetMapping/sbcs | 28 ++ .../tools/charsetmapping/GenerateMapping.java | 3 +- .../tools/charsetmapping/GenerateSBCS.java | 262 +++++++++++ .../share/classes/sun/io/ByteToCharCp850.java | 6 +- .../classes/sun/io/CharToByteJIS0201.java | 16 +- .../classes/sun/io/CharToByteSingleByte.java | 33 +- jdk/src/share/classes/sun/nio/cs/IBM437.java | 368 --------------- jdk/src/share/classes/sun/nio/cs/IBM737.java | 321 ------------- jdk/src/share/classes/sun/nio/cs/IBM775.java | 326 ------------- jdk/src/share/classes/sun/nio/cs/IBM850.java | 299 ------------ jdk/src/share/classes/sun/nio/cs/IBM852.java | 274 ----------- jdk/src/share/classes/sun/nio/cs/IBM855.java | 304 ------------ jdk/src/share/classes/sun/nio/cs/IBM857.java | 263 ----------- jdk/src/share/classes/sun/nio/cs/IBM858.java | 264 ----------- jdk/src/share/classes/sun/nio/cs/IBM862.java | 396 ---------------- jdk/src/share/classes/sun/nio/cs/IBM866.java | 332 -------------- jdk/src/share/classes/sun/nio/cs/IBM874.java | 252 ---------- .../share/classes/sun/nio/cs/ISO_8859_13.java | 266 ----------- .../share/classes/sun/nio/cs/ISO_8859_15.java | 249 ---------- .../share/classes/sun/nio/cs/ISO_8859_2.java | 246 ---------- .../share/classes/sun/nio/cs/ISO_8859_4.java | 244 ---------- .../share/classes/sun/nio/cs/ISO_8859_5.java | 271 ----------- .../share/classes/sun/nio/cs/ISO_8859_7.java | 255 ---------- .../share/classes/sun/nio/cs/ISO_8859_9.java | 233 ---------- jdk/src/share/classes/sun/nio/cs/KOI8_R.java | 344 -------------- jdk/src/share/classes/sun/nio/cs/KOI8_U.java | 323 ------------- jdk/src/share/classes/sun/nio/cs/MS1250.java | 304 ------------ jdk/src/share/classes/sun/nio/cs/MS1251.java | 306 ------------ jdk/src/share/classes/sun/nio/cs/MS1252.java | 304 ------------ jdk/src/share/classes/sun/nio/cs/MS1253.java | 303 ------------ jdk/src/share/classes/sun/nio/cs/MS1254.java | 305 ------------ jdk/src/share/classes/sun/nio/cs/MS1257.java | 304 ------------ .../share/classes/sun/nio/cs/SingleByte.java | 241 ++++++++++ .../share/classes/sun/nio/cs/ext/IBM037.java | 221 --------- .../share/classes/sun/nio/cs/ext/IBM1006.java | 336 -------------- .../share/classes/sun/nio/cs/ext/IBM1025.java | 272 ----------- .../share/classes/sun/nio/cs/ext/IBM1026.java | 233 ---------- .../share/classes/sun/nio/cs/ext/IBM1046.java | 335 -------------- .../share/classes/sun/nio/cs/ext/IBM1047.java | 221 --------- .../share/classes/sun/nio/cs/ext/IBM1097.java | 342 -------------- .../share/classes/sun/nio/cs/ext/IBM1098.java | 362 --------------- .../share/classes/sun/nio/cs/ext/IBM1112.java | 266 ----------- .../share/classes/sun/nio/cs/ext/IBM1122.java | 262 ----------- .../share/classes/sun/nio/cs/ext/IBM1123.java | 272 ----------- .../share/classes/sun/nio/cs/ext/IBM1124.java | 272 ----------- .../share/classes/sun/nio/cs/ext/IBM1140.java | 191 -------- .../share/classes/sun/nio/cs/ext/IBM1141.java | 189 -------- .../share/classes/sun/nio/cs/ext/IBM1142.java | 190 -------- .../share/classes/sun/nio/cs/ext/IBM1143.java | 190 -------- .../share/classes/sun/nio/cs/ext/IBM1144.java | 190 -------- .../share/classes/sun/nio/cs/ext/IBM1145.java | 190 -------- .../share/classes/sun/nio/cs/ext/IBM1146.java | 190 -------- .../share/classes/sun/nio/cs/ext/IBM1147.java | 190 -------- .../share/classes/sun/nio/cs/ext/IBM1148.java | 190 -------- .../share/classes/sun/nio/cs/ext/IBM1149.java | 190 -------- .../share/classes/sun/nio/cs/ext/IBM273.java | 221 --------- .../share/classes/sun/nio/cs/ext/IBM277.java | 221 --------- .../share/classes/sun/nio/cs/ext/IBM278.java | 221 --------- .../share/classes/sun/nio/cs/ext/IBM280.java | 221 --------- .../share/classes/sun/nio/cs/ext/IBM284.java | 221 --------- .../share/classes/sun/nio/cs/ext/IBM285.java | 221 --------- .../share/classes/sun/nio/cs/ext/IBM297.java | 221 --------- .../share/classes/sun/nio/cs/ext/IBM420.java | 315 ------------- .../share/classes/sun/nio/cs/ext/IBM424.java | 256 ----------- .../share/classes/sun/nio/cs/ext/IBM500.java | 221 --------- .../share/classes/sun/nio/cs/ext/IBM838.java | 243 ---------- .../share/classes/sun/nio/cs/ext/IBM856.java | 288 ------------ .../share/classes/sun/nio/cs/ext/IBM860.java | 348 -------------- .../share/classes/sun/nio/cs/ext/IBM861.java | 369 --------------- .../share/classes/sun/nio/cs/ext/IBM863.java | 373 --------------- .../share/classes/sun/nio/cs/ext/IBM864.java | 342 -------------- .../share/classes/sun/nio/cs/ext/IBM865.java | 369 --------------- .../share/classes/sun/nio/cs/ext/IBM868.java | 359 --------------- .../share/classes/sun/nio/cs/ext/IBM869.java | 290 ------------ .../share/classes/sun/nio/cs/ext/IBM870.java | 244 ---------- .../share/classes/sun/nio/cs/ext/IBM871.java | 221 --------- .../share/classes/sun/nio/cs/ext/IBM875.java | 258 ----------- .../share/classes/sun/nio/cs/ext/IBM918.java | 336 -------------- .../share/classes/sun/nio/cs/ext/IBM921.java | 266 ----------- .../share/classes/sun/nio/cs/ext/IBM922.java | 262 ----------- .../classes/sun/nio/cs/ext/ISO_8859_11.java | 215 --------- .../classes/sun/nio/cs/ext/ISO_8859_3.java | 243 ---------- .../classes/sun/nio/cs/ext/ISO_8859_6.java | 246 ---------- .../classes/sun/nio/cs/ext/ISO_8859_8.java | 259 ----------- .../share/classes/sun/nio/cs/ext/MS1255.java | 333 -------------- .../share/classes/sun/nio/cs/ext/MS1256.java | 334 -------------- .../share/classes/sun/nio/cs/ext/MS1258.java | 340 -------------- .../share/classes/sun/nio/cs/ext/MS874.java | 267 ----------- .../classes/sun/nio/cs/ext/MacArabic.java | 279 ----------- .../sun/nio/cs/ext/MacCentralEurope.java | 346 -------------- .../classes/sun/nio/cs/ext/MacCroatian.java | 402 ---------------- .../classes/sun/nio/cs/ext/MacCyrillic.java | 361 --------------- .../classes/sun/nio/cs/ext/MacDingbat.java | 316 ------------- .../classes/sun/nio/cs/ext/MacGreek.java | 327 ------------- .../classes/sun/nio/cs/ext/MacHebrew.java | 289 ------------ .../classes/sun/nio/cs/ext/MacIceland.java | 402 ---------------- .../classes/sun/nio/cs/ext/MacRoman.java | 434 ------------------ .../classes/sun/nio/cs/ext/MacRomania.java | 402 ---------------- .../classes/sun/nio/cs/ext/MacSymbol.java | 425 ----------------- .../share/classes/sun/nio/cs/ext/MacThai.java | 338 -------------- .../classes/sun/nio/cs/ext/MacTurkish.java | 402 ---------------- .../classes/sun/nio/cs/ext/MacUkraine.java | 361 --------------- .../share/classes/sun/nio/cs/ext/TIS_620.java | 244 ---------- 259 files changed, 25853 insertions(+), 27446 deletions(-) create mode 100644 jdk/make/tools/CharsetMapping/IBM037.c2b create mode 100644 jdk/make/tools/CharsetMapping/IBM037.map create mode 100644 jdk/make/tools/CharsetMapping/IBM037.nr create mode 100644 jdk/make/tools/CharsetMapping/IBM1006.map create mode 100644 jdk/make/tools/CharsetMapping/IBM1025.c2b create mode 100644 jdk/make/tools/CharsetMapping/IBM1025.map create mode 100644 jdk/make/tools/CharsetMapping/IBM1025.nr create mode 100644 jdk/make/tools/CharsetMapping/IBM1026.c2b create mode 100644 jdk/make/tools/CharsetMapping/IBM1026.map create mode 100644 jdk/make/tools/CharsetMapping/IBM1026.nr create mode 100644 jdk/make/tools/CharsetMapping/IBM1046.map create mode 100644 jdk/make/tools/CharsetMapping/IBM1047.map create mode 100644 jdk/make/tools/CharsetMapping/IBM1097.map create mode 100644 jdk/make/tools/CharsetMapping/IBM1098.map create mode 100644 jdk/make/tools/CharsetMapping/IBM1112.c2b create mode 100644 jdk/make/tools/CharsetMapping/IBM1112.map create mode 100644 jdk/make/tools/CharsetMapping/IBM1112.nr create mode 100644 jdk/make/tools/CharsetMapping/IBM1122.c2b create mode 100644 jdk/make/tools/CharsetMapping/IBM1122.map create mode 100644 jdk/make/tools/CharsetMapping/IBM1122.nr create mode 100644 jdk/make/tools/CharsetMapping/IBM1123.c2b create mode 100644 jdk/make/tools/CharsetMapping/IBM1123.map create mode 100644 jdk/make/tools/CharsetMapping/IBM1123.nr create mode 100644 jdk/make/tools/CharsetMapping/IBM1124.map create mode 100644 jdk/make/tools/CharsetMapping/IBM1140.c2b create mode 100644 jdk/make/tools/CharsetMapping/IBM1140.map create mode 100644 jdk/make/tools/CharsetMapping/IBM1141.c2b create mode 100644 jdk/make/tools/CharsetMapping/IBM1141.map create mode 100644 jdk/make/tools/CharsetMapping/IBM1142.c2b create mode 100644 jdk/make/tools/CharsetMapping/IBM1142.map create mode 100644 jdk/make/tools/CharsetMapping/IBM1143.c2b create mode 100644 jdk/make/tools/CharsetMapping/IBM1143.map create mode 100644 jdk/make/tools/CharsetMapping/IBM1144.c2b create mode 100644 jdk/make/tools/CharsetMapping/IBM1144.map create mode 100644 jdk/make/tools/CharsetMapping/IBM1145.c2b create mode 100644 jdk/make/tools/CharsetMapping/IBM1145.map create mode 100644 jdk/make/tools/CharsetMapping/IBM1146.c2b create mode 100644 jdk/make/tools/CharsetMapping/IBM1146.map create mode 100644 jdk/make/tools/CharsetMapping/IBM1147.c2b create mode 100644 jdk/make/tools/CharsetMapping/IBM1147.map create mode 100644 jdk/make/tools/CharsetMapping/IBM1148.c2b create mode 100644 jdk/make/tools/CharsetMapping/IBM1148.map create mode 100644 jdk/make/tools/CharsetMapping/IBM1149.c2b create mode 100644 jdk/make/tools/CharsetMapping/IBM1149.map create mode 100644 jdk/make/tools/CharsetMapping/IBM273.c2b create mode 100644 jdk/make/tools/CharsetMapping/IBM273.map create mode 100644 jdk/make/tools/CharsetMapping/IBM273.nr create mode 100644 jdk/make/tools/CharsetMapping/IBM277.c2b create mode 100644 jdk/make/tools/CharsetMapping/IBM277.map create mode 100644 jdk/make/tools/CharsetMapping/IBM277.nr create mode 100644 jdk/make/tools/CharsetMapping/IBM278.c2b create mode 100644 jdk/make/tools/CharsetMapping/IBM278.map create mode 100644 jdk/make/tools/CharsetMapping/IBM278.nr create mode 100644 jdk/make/tools/CharsetMapping/IBM280.c2b create mode 100644 jdk/make/tools/CharsetMapping/IBM280.map create mode 100644 jdk/make/tools/CharsetMapping/IBM280.nr create mode 100644 jdk/make/tools/CharsetMapping/IBM284.c2b create mode 100644 jdk/make/tools/CharsetMapping/IBM284.map create mode 100644 jdk/make/tools/CharsetMapping/IBM284.nr create mode 100644 jdk/make/tools/CharsetMapping/IBM285.c2b create mode 100644 jdk/make/tools/CharsetMapping/IBM285.map create mode 100644 jdk/make/tools/CharsetMapping/IBM285.nr create mode 100644 jdk/make/tools/CharsetMapping/IBM297.c2b create mode 100644 jdk/make/tools/CharsetMapping/IBM297.map create mode 100644 jdk/make/tools/CharsetMapping/IBM297.nr create mode 100644 jdk/make/tools/CharsetMapping/IBM420.c2b create mode 100644 jdk/make/tools/CharsetMapping/IBM420.map create mode 100644 jdk/make/tools/CharsetMapping/IBM420.nr create mode 100644 jdk/make/tools/CharsetMapping/IBM424.c2b create mode 100644 jdk/make/tools/CharsetMapping/IBM424.map create mode 100644 jdk/make/tools/CharsetMapping/IBM424.nr create mode 100644 jdk/make/tools/CharsetMapping/IBM437.map create mode 100644 jdk/make/tools/CharsetMapping/IBM500.c2b create mode 100644 jdk/make/tools/CharsetMapping/IBM500.map create mode 100644 jdk/make/tools/CharsetMapping/IBM500.nr create mode 100644 jdk/make/tools/CharsetMapping/IBM737.map create mode 100644 jdk/make/tools/CharsetMapping/IBM775.map create mode 100644 jdk/make/tools/CharsetMapping/IBM838.c2b create mode 100644 jdk/make/tools/CharsetMapping/IBM838.map create mode 100644 jdk/make/tools/CharsetMapping/IBM838.nr create mode 100644 jdk/make/tools/CharsetMapping/IBM850.map create mode 100644 jdk/make/tools/CharsetMapping/IBM852.map create mode 100644 jdk/make/tools/CharsetMapping/IBM855.map create mode 100644 jdk/make/tools/CharsetMapping/IBM856.map create mode 100644 jdk/make/tools/CharsetMapping/IBM857.map create mode 100644 jdk/make/tools/CharsetMapping/IBM858.map create mode 100644 jdk/make/tools/CharsetMapping/IBM860.map create mode 100644 jdk/make/tools/CharsetMapping/IBM861.map create mode 100644 jdk/make/tools/CharsetMapping/IBM862.map create mode 100644 jdk/make/tools/CharsetMapping/IBM863.map create mode 100644 jdk/make/tools/CharsetMapping/IBM864.map create mode 100644 jdk/make/tools/CharsetMapping/IBM865.map create mode 100644 jdk/make/tools/CharsetMapping/IBM866.map create mode 100644 jdk/make/tools/CharsetMapping/IBM868.map create mode 100644 jdk/make/tools/CharsetMapping/IBM869.map create mode 100644 jdk/make/tools/CharsetMapping/IBM870.c2b create mode 100644 jdk/make/tools/CharsetMapping/IBM870.map create mode 100644 jdk/make/tools/CharsetMapping/IBM870.nr create mode 100644 jdk/make/tools/CharsetMapping/IBM871.c2b create mode 100644 jdk/make/tools/CharsetMapping/IBM871.map create mode 100644 jdk/make/tools/CharsetMapping/IBM871.nr create mode 100644 jdk/make/tools/CharsetMapping/IBM874.map create mode 100644 jdk/make/tools/CharsetMapping/IBM874.nr create mode 100644 jdk/make/tools/CharsetMapping/IBM875.c2b create mode 100644 jdk/make/tools/CharsetMapping/IBM875.map create mode 100644 jdk/make/tools/CharsetMapping/IBM875.nr create mode 100644 jdk/make/tools/CharsetMapping/IBM918.c2b create mode 100644 jdk/make/tools/CharsetMapping/IBM918.map create mode 100644 jdk/make/tools/CharsetMapping/IBM918.nr create mode 100644 jdk/make/tools/CharsetMapping/IBM921.map create mode 100644 jdk/make/tools/CharsetMapping/IBM922.map create mode 100644 jdk/make/tools/CharsetMapping/ISO_8859_11.map create mode 100644 jdk/make/tools/CharsetMapping/ISO_8859_13.map create mode 100644 jdk/make/tools/CharsetMapping/ISO_8859_15.map create mode 100644 jdk/make/tools/CharsetMapping/ISO_8859_2.map create mode 100644 jdk/make/tools/CharsetMapping/ISO_8859_3.map create mode 100644 jdk/make/tools/CharsetMapping/ISO_8859_4.map create mode 100644 jdk/make/tools/CharsetMapping/ISO_8859_5.map create mode 100644 jdk/make/tools/CharsetMapping/ISO_8859_6.map create mode 100644 jdk/make/tools/CharsetMapping/ISO_8859_7.map create mode 100644 jdk/make/tools/CharsetMapping/ISO_8859_8.map create mode 100644 jdk/make/tools/CharsetMapping/ISO_8859_9.map create mode 100644 jdk/make/tools/CharsetMapping/JIS_X_0201.map create mode 100644 jdk/make/tools/CharsetMapping/KOI8_R.map create mode 100644 jdk/make/tools/CharsetMapping/KOI8_U.map create mode 100644 jdk/make/tools/CharsetMapping/MS1250.map create mode 100644 jdk/make/tools/CharsetMapping/MS1251.map create mode 100644 jdk/make/tools/CharsetMapping/MS1252.map create mode 100644 jdk/make/tools/CharsetMapping/MS1253.map create mode 100644 jdk/make/tools/CharsetMapping/MS1254.map create mode 100644 jdk/make/tools/CharsetMapping/MS1255.map create mode 100644 jdk/make/tools/CharsetMapping/MS1256.map create mode 100644 jdk/make/tools/CharsetMapping/MS1257.map create mode 100644 jdk/make/tools/CharsetMapping/MS1258.map create mode 100644 jdk/make/tools/CharsetMapping/MS874.map create mode 100644 jdk/make/tools/CharsetMapping/MacArabic.map create mode 100644 jdk/make/tools/CharsetMapping/MacCentralEurope.map create mode 100644 jdk/make/tools/CharsetMapping/MacCroatian.map create mode 100644 jdk/make/tools/CharsetMapping/MacCyrillic.map create mode 100644 jdk/make/tools/CharsetMapping/MacDingbat.map create mode 100644 jdk/make/tools/CharsetMapping/MacGreek.map create mode 100644 jdk/make/tools/CharsetMapping/MacHebrew.map create mode 100644 jdk/make/tools/CharsetMapping/MacIceland.map create mode 100644 jdk/make/tools/CharsetMapping/MacRoman.map create mode 100644 jdk/make/tools/CharsetMapping/MacRomania.map create mode 100644 jdk/make/tools/CharsetMapping/MacSymbol.map create mode 100644 jdk/make/tools/CharsetMapping/MacThai.map create mode 100644 jdk/make/tools/CharsetMapping/MacTurkish.map create mode 100644 jdk/make/tools/CharsetMapping/MacUkraine.map create mode 100644 jdk/make/tools/CharsetMapping/SingleByte-X.java create mode 100644 jdk/make/tools/CharsetMapping/TIS_620.map create mode 100644 jdk/make/tools/CharsetMapping/extsbcs create mode 100644 jdk/make/tools/CharsetMapping/sbcs create mode 100644 jdk/make/tools/src/build/tools/charsetmapping/GenerateSBCS.java delete mode 100644 jdk/src/share/classes/sun/nio/cs/IBM437.java delete mode 100644 jdk/src/share/classes/sun/nio/cs/IBM737.java delete mode 100644 jdk/src/share/classes/sun/nio/cs/IBM775.java delete mode 100644 jdk/src/share/classes/sun/nio/cs/IBM850.java delete mode 100644 jdk/src/share/classes/sun/nio/cs/IBM852.java delete mode 100644 jdk/src/share/classes/sun/nio/cs/IBM855.java delete mode 100644 jdk/src/share/classes/sun/nio/cs/IBM857.java delete mode 100644 jdk/src/share/classes/sun/nio/cs/IBM858.java delete mode 100644 jdk/src/share/classes/sun/nio/cs/IBM862.java delete mode 100644 jdk/src/share/classes/sun/nio/cs/IBM866.java delete mode 100644 jdk/src/share/classes/sun/nio/cs/IBM874.java delete mode 100644 jdk/src/share/classes/sun/nio/cs/ISO_8859_13.java delete mode 100644 jdk/src/share/classes/sun/nio/cs/ISO_8859_15.java delete mode 100644 jdk/src/share/classes/sun/nio/cs/ISO_8859_2.java delete mode 100644 jdk/src/share/classes/sun/nio/cs/ISO_8859_4.java delete mode 100644 jdk/src/share/classes/sun/nio/cs/ISO_8859_5.java delete mode 100644 jdk/src/share/classes/sun/nio/cs/ISO_8859_7.java delete mode 100644 jdk/src/share/classes/sun/nio/cs/ISO_8859_9.java delete mode 100644 jdk/src/share/classes/sun/nio/cs/KOI8_R.java delete mode 100644 jdk/src/share/classes/sun/nio/cs/KOI8_U.java delete mode 100644 jdk/src/share/classes/sun/nio/cs/MS1250.java delete mode 100644 jdk/src/share/classes/sun/nio/cs/MS1251.java delete mode 100644 jdk/src/share/classes/sun/nio/cs/MS1252.java delete mode 100644 jdk/src/share/classes/sun/nio/cs/MS1253.java delete mode 100644 jdk/src/share/classes/sun/nio/cs/MS1254.java delete mode 100644 jdk/src/share/classes/sun/nio/cs/MS1257.java create mode 100644 jdk/src/share/classes/sun/nio/cs/SingleByte.java delete mode 100644 jdk/src/share/classes/sun/nio/cs/ext/IBM037.java delete mode 100644 jdk/src/share/classes/sun/nio/cs/ext/IBM1006.java delete mode 100644 jdk/src/share/classes/sun/nio/cs/ext/IBM1025.java delete mode 100644 jdk/src/share/classes/sun/nio/cs/ext/IBM1026.java delete mode 100644 jdk/src/share/classes/sun/nio/cs/ext/IBM1046.java delete mode 100644 jdk/src/share/classes/sun/nio/cs/ext/IBM1047.java delete mode 100644 jdk/src/share/classes/sun/nio/cs/ext/IBM1097.java delete mode 100644 jdk/src/share/classes/sun/nio/cs/ext/IBM1098.java delete mode 100644 jdk/src/share/classes/sun/nio/cs/ext/IBM1112.java delete mode 100644 jdk/src/share/classes/sun/nio/cs/ext/IBM1122.java delete mode 100644 jdk/src/share/classes/sun/nio/cs/ext/IBM1123.java delete mode 100644 jdk/src/share/classes/sun/nio/cs/ext/IBM1124.java delete mode 100644 jdk/src/share/classes/sun/nio/cs/ext/IBM1140.java delete mode 100644 jdk/src/share/classes/sun/nio/cs/ext/IBM1141.java delete mode 100644 jdk/src/share/classes/sun/nio/cs/ext/IBM1142.java delete mode 100644 jdk/src/share/classes/sun/nio/cs/ext/IBM1143.java delete mode 100644 jdk/src/share/classes/sun/nio/cs/ext/IBM1144.java delete mode 100644 jdk/src/share/classes/sun/nio/cs/ext/IBM1145.java delete mode 100644 jdk/src/share/classes/sun/nio/cs/ext/IBM1146.java delete mode 100644 jdk/src/share/classes/sun/nio/cs/ext/IBM1147.java delete mode 100644 jdk/src/share/classes/sun/nio/cs/ext/IBM1148.java delete mode 100644 jdk/src/share/classes/sun/nio/cs/ext/IBM1149.java delete mode 100644 jdk/src/share/classes/sun/nio/cs/ext/IBM273.java delete mode 100644 jdk/src/share/classes/sun/nio/cs/ext/IBM277.java delete mode 100644 jdk/src/share/classes/sun/nio/cs/ext/IBM278.java delete mode 100644 jdk/src/share/classes/sun/nio/cs/ext/IBM280.java delete mode 100644 jdk/src/share/classes/sun/nio/cs/ext/IBM284.java delete mode 100644 jdk/src/share/classes/sun/nio/cs/ext/IBM285.java delete mode 100644 jdk/src/share/classes/sun/nio/cs/ext/IBM297.java delete mode 100644 jdk/src/share/classes/sun/nio/cs/ext/IBM420.java delete mode 100644 jdk/src/share/classes/sun/nio/cs/ext/IBM424.java delete mode 100644 jdk/src/share/classes/sun/nio/cs/ext/IBM500.java delete mode 100644 jdk/src/share/classes/sun/nio/cs/ext/IBM838.java delete mode 100644 jdk/src/share/classes/sun/nio/cs/ext/IBM856.java delete mode 100644 jdk/src/share/classes/sun/nio/cs/ext/IBM860.java delete mode 100644 jdk/src/share/classes/sun/nio/cs/ext/IBM861.java delete mode 100644 jdk/src/share/classes/sun/nio/cs/ext/IBM863.java delete mode 100644 jdk/src/share/classes/sun/nio/cs/ext/IBM864.java delete mode 100644 jdk/src/share/classes/sun/nio/cs/ext/IBM865.java delete mode 100644 jdk/src/share/classes/sun/nio/cs/ext/IBM868.java delete mode 100644 jdk/src/share/classes/sun/nio/cs/ext/IBM869.java delete mode 100644 jdk/src/share/classes/sun/nio/cs/ext/IBM870.java delete mode 100644 jdk/src/share/classes/sun/nio/cs/ext/IBM871.java delete mode 100644 jdk/src/share/classes/sun/nio/cs/ext/IBM875.java delete mode 100644 jdk/src/share/classes/sun/nio/cs/ext/IBM918.java delete mode 100644 jdk/src/share/classes/sun/nio/cs/ext/IBM921.java delete mode 100644 jdk/src/share/classes/sun/nio/cs/ext/IBM922.java delete mode 100644 jdk/src/share/classes/sun/nio/cs/ext/ISO_8859_11.java delete mode 100644 jdk/src/share/classes/sun/nio/cs/ext/ISO_8859_3.java delete mode 100644 jdk/src/share/classes/sun/nio/cs/ext/ISO_8859_6.java delete mode 100644 jdk/src/share/classes/sun/nio/cs/ext/ISO_8859_8.java delete mode 100644 jdk/src/share/classes/sun/nio/cs/ext/MS1255.java delete mode 100644 jdk/src/share/classes/sun/nio/cs/ext/MS1256.java delete mode 100644 jdk/src/share/classes/sun/nio/cs/ext/MS1258.java delete mode 100644 jdk/src/share/classes/sun/nio/cs/ext/MS874.java delete mode 100644 jdk/src/share/classes/sun/nio/cs/ext/MacArabic.java delete mode 100644 jdk/src/share/classes/sun/nio/cs/ext/MacCentralEurope.java delete mode 100644 jdk/src/share/classes/sun/nio/cs/ext/MacCroatian.java delete mode 100644 jdk/src/share/classes/sun/nio/cs/ext/MacCyrillic.java delete mode 100644 jdk/src/share/classes/sun/nio/cs/ext/MacDingbat.java delete mode 100644 jdk/src/share/classes/sun/nio/cs/ext/MacGreek.java delete mode 100644 jdk/src/share/classes/sun/nio/cs/ext/MacHebrew.java delete mode 100644 jdk/src/share/classes/sun/nio/cs/ext/MacIceland.java delete mode 100644 jdk/src/share/classes/sun/nio/cs/ext/MacRoman.java delete mode 100644 jdk/src/share/classes/sun/nio/cs/ext/MacRomania.java delete mode 100644 jdk/src/share/classes/sun/nio/cs/ext/MacSymbol.java delete mode 100644 jdk/src/share/classes/sun/nio/cs/ext/MacThai.java delete mode 100644 jdk/src/share/classes/sun/nio/cs/ext/MacTurkish.java delete mode 100644 jdk/src/share/classes/sun/nio/cs/ext/MacUkraine.java delete mode 100644 jdk/src/share/classes/sun/nio/cs/ext/TIS_620.java diff --git a/jdk/make/java/nio/FILES_java.gmk b/jdk/make/java/nio/FILES_java.gmk index 0e8c70906aa..29f1f8f42c4 100644 --- a/jdk/make/java/nio/FILES_java.gmk +++ b/jdk/make/java/nio/FILES_java.gmk @@ -113,8 +113,7 @@ FILES_src = \ sun/nio/cs/FastCharsetProvider.java \ sun/nio/cs/HistoricallyNamedCharset.java \ sun/nio/cs/ISO_8859_1.java \ - sun/nio/cs/ISO_8859_15.java \ - sun/nio/cs/MS1252.java \ + sun/nio/cs/SingleByte.java \ sun/nio/cs/SingleByteDecoder.java \ sun/nio/cs/SingleByteEncoder.java \ sun/nio/cs/StreamEncoder.java \ @@ -268,6 +267,34 @@ FILES_gen_ex = \ java/nio/charset/IllegalCharsetNameException.java \ java/nio/charset/UnsupportedCharsetException.java +FILES_gen_sbcs = \ + sun/nio/cs/ISO_8859_2.java \ + sun/nio/cs/ISO_8859_4.java \ + sun/nio/cs/ISO_8859_5.java \ + sun/nio/cs/ISO_8859_7.java \ + sun/nio/cs/ISO_8859_9.java \ + sun/nio/cs/ISO_8859_13.java \ + sun/nio/cs/ISO_8859_15.java \ + sun/nio/cs/IBM437.java \ + sun/nio/cs/IBM737.java \ + sun/nio/cs/IBM775.java \ + sun/nio/cs/IBM850.java \ + sun/nio/cs/IBM852.java \ + sun/nio/cs/IBM855.java \ + sun/nio/cs/IBM857.java \ + sun/nio/cs/IBM858.java \ + sun/nio/cs/IBM862.java \ + sun/nio/cs/IBM866.java \ + sun/nio/cs/IBM874.java \ + sun/nio/cs/KOI8_R.java \ + sun/nio/cs/KOI8_U.java \ + sun/nio/cs/MS1250.java \ + sun/nio/cs/MS1251.java \ + sun/nio/cs/MS1252.java \ + sun/nio/cs/MS1253.java \ + sun/nio/cs/MS1254.java \ + sun/nio/cs/MS1257.java + FILES_gen_csp = sun/nio/cs/StandardCharsets.java FILES_gen_sor = sun/nio/ch/SocketOptionRegistry.java @@ -275,4 +302,4 @@ FILES_gen_sor = sun/nio/ch/SocketOptionRegistry.java FILES_gen = $(FILES_gen_coder) $(FILES_gen_buffer) $(FILES_gen_ex) \ $(FILES_gen_csp) $(FILES_gen_sor) -FILES_java = $(FILES_src) $(FILES_gen) +FILES_java = $(FILES_src) $(FILES_gen) $(FILES_gen_sbcs) diff --git a/jdk/make/java/nio/Makefile b/jdk/make/java/nio/Makefile index 26c2f2fc68d..bf7bc2e0236 100644 --- a/jdk/make/java/nio/Makefile +++ b/jdk/make/java/nio/Makefile @@ -182,7 +182,9 @@ CS_GEN=$(NIO_GEN)/charset SCH_GEN=$(SNIO_GEN)/ch SCS_GEN=$(SNIO_GEN)/cs -sources: $(SPP_JARFILE) $(FILES_genout) +FILES_gensbcs_out = $(FILES_gen_sbcs:%.java=$(GENSRCDIR)/%.java) + +sources: $(SPP_JARFILE) $(FILES_genout) $(FILES_gensbcs_out) # # Generated buffer classes @@ -657,4 +659,15 @@ $(SCH_GEN)/SocketOptionRegistry.java: $(GENSOR_EXE) NAWK="$(NAWK)" SH="$(SH)" $(SH) -e addNotices.sh $(SOR_COPYRIGHT_YEARS) > $@ $(GENSOR_EXE) >> $@ +# +# Generated sun.nio.cs SingleByte classes +# +GENCSSRC = $(BUILDDIR)/tools/CharsetMapping +CHARSETMAPPING_JARFILE = $(BUILDTOOLJARDIR)/charsetmapping.jar + +$(FILES_gensbcs_out): $(GENCSSRC)/SingleByte-X.java $(GENCSSRC)/sbcs + @$(prep-target) + $(BOOT_JAVA_CMD) -cp $(CHARSETMAPPING_JARFILE) build.tools.charsetmapping.GenerateSBCS \ + $(GENCSSRC) $(SCS_GEN) sbcs + .PHONY: sources diff --git a/jdk/make/sun/nio/FILES_java.gmk b/jdk/make/sun/nio/FILES_java.gmk index 21a95a8cffd..250c8a812fe 100644 --- a/jdk/make/sun/nio/FILES_java.gmk +++ b/jdk/make/sun/nio/FILES_java.gmk @@ -29,7 +29,7 @@ # Core character converters are built from make/java/java. # -FILES_java = \ +FILES_src = \ sun/io/ByteToCharDoubleByte.java \ sun/io/ByteToCharDBCS_ASCII.java \ sun/io/ByteToCharDBCS_EBCDIC.java \ @@ -303,3 +303,77 @@ FILES_java = \ sun/io/CharToByteMacTurkish.java \ sun/io/CharToByteMacUkraine.java \ sun/io/CharToByteTIS620.java + +FILES_gen_extsbcs = \ + sun/nio/cs/ext/IBM037.java \ + sun/nio/cs/ext/IBM1006.java \ + sun/nio/cs/ext/IBM1025.java \ + sun/nio/cs/ext/IBM1026.java \ + sun/nio/cs/ext/IBM1046.java \ + sun/nio/cs/ext/IBM1047.java \ + sun/nio/cs/ext/IBM1097.java \ + sun/nio/cs/ext/IBM1098.java \ + sun/nio/cs/ext/IBM1112.java \ + sun/nio/cs/ext/IBM1122.java \ + sun/nio/cs/ext/IBM1123.java \ + sun/nio/cs/ext/IBM1124.java \ + sun/nio/cs/ext/IBM1140.java \ + sun/nio/cs/ext/IBM1141.java \ + sun/nio/cs/ext/IBM1142.java \ + sun/nio/cs/ext/IBM1143.java \ + sun/nio/cs/ext/IBM1144.java \ + sun/nio/cs/ext/IBM1145.java \ + sun/nio/cs/ext/IBM1146.java \ + sun/nio/cs/ext/IBM1147.java \ + sun/nio/cs/ext/IBM1148.java \ + sun/nio/cs/ext/IBM1149.java \ + sun/nio/cs/ext/IBM273.java \ + sun/nio/cs/ext/IBM277.java \ + sun/nio/cs/ext/IBM278.java \ + sun/nio/cs/ext/IBM280.java \ + sun/nio/cs/ext/IBM284.java \ + sun/nio/cs/ext/IBM285.java \ + sun/nio/cs/ext/IBM297.java \ + sun/nio/cs/ext/IBM420.java \ + sun/nio/cs/ext/IBM424.java \ + sun/nio/cs/ext/IBM500.java \ + sun/nio/cs/ext/IBM838.java \ + sun/nio/cs/ext/IBM856.java \ + sun/nio/cs/ext/IBM860.java \ + sun/nio/cs/ext/IBM861.java \ + sun/nio/cs/ext/IBM863.java \ + sun/nio/cs/ext/IBM864.java \ + sun/nio/cs/ext/IBM865.java \ + sun/nio/cs/ext/IBM868.java \ + sun/nio/cs/ext/IBM869.java \ + sun/nio/cs/ext/IBM870.java \ + sun/nio/cs/ext/IBM871.java \ + sun/nio/cs/ext/IBM875.java \ + sun/nio/cs/ext/IBM918.java \ + sun/nio/cs/ext/IBM921.java \ + sun/nio/cs/ext/IBM922.java \ + sun/nio/cs/ext/ISO_8859_11.java \ + sun/nio/cs/ext/ISO_8859_3.java \ + sun/nio/cs/ext/ISO_8859_6.java \ + sun/nio/cs/ext/ISO_8859_8.java \ + sun/nio/cs/ext/MS1255.java \ + sun/nio/cs/ext/MS1256.java \ + sun/nio/cs/ext/MS1258.java \ + sun/nio/cs/ext/MS874.java \ + sun/nio/cs/ext/MacArabic.java \ + sun/nio/cs/ext/MacCentralEurope.java \ + sun/nio/cs/ext/MacCroatian.java \ + sun/nio/cs/ext/MacCyrillic.java \ + sun/nio/cs/ext/MacDingbat.java \ + sun/nio/cs/ext/MacGreek.java \ + sun/nio/cs/ext/MacHebrew.java \ + sun/nio/cs/ext/MacIceland.java \ + sun/nio/cs/ext/MacRoman.java \ + sun/nio/cs/ext/MacRomania.java \ + sun/nio/cs/ext/MacSymbol.java \ + sun/nio/cs/ext/MacThai.java \ + sun/nio/cs/ext/MacTurkish.java \ + sun/nio/cs/ext/MacUkraine.java \ + sun/nio/cs/ext/TIS_620.java + +FILES_java = $(FILES_src) $(FILES_gen_extsbcs) \ No newline at end of file diff --git a/jdk/make/sun/nio/Makefile b/jdk/make/sun/nio/Makefile index 8dd1f98ccfb..f149b8510ce 100644 --- a/jdk/make/sun/nio/Makefile +++ b/jdk/make/sun/nio/Makefile @@ -60,12 +60,15 @@ endif # PLATFORM # this define is for the rule: CHARSETS_JAR = $(LIBDIR)/charsets.jar +# extsbcs +FILES_genout_extsbcs = $(FILES_gen_extsbcs:%.java=$(GENSRCDIR)/%.java) + # # Rules # include $(BUILDDIR)/common/Classes.gmk -build: $(CHARSETS_JAR) +build: $(FILES_genout_extsbcs) $(CHARSETS_JAR) # # Extra rules to build character converters. @@ -74,6 +77,8 @@ SERVICE_DESCRIPTION = java.nio.charset.spi.CharsetProvider SERVICE_DESCRIPTION_PATH = META-INF/services/$(SERVICE_DESCRIPTION) GENCSDATASRC = $(BUILDDIR)/tools/CharsetMapping +GENCSEXT = $(GENSRCDIR)/sun/nio/cs/ext + FILES_MAP = $(GENCSDATASRC)/sjis0213.map FILES_DAT = $(CLASSDESTDIR)/sun/nio/cs/ext/sjis0213.dat CHARSETMAPPING_JARFILE = $(BUILDTOOLJARDIR)/charsetmapping.jar @@ -83,6 +88,15 @@ $(FILES_DAT): $(FILES_MAP) $(BOOT_JAVA_CMD) -jar $(CHARSETMAPPING_JARFILE) \ $(FILES_MAP) $(FILES_DAT) + +$(FILES_genout_extsbcs): $(GENCSDATASRC)/SingleByte-X.java $(GENCSDATASRC)/extsbcs + @$(prep-target) + $(RM) -r $(GENCSEXT) + $(MKDIR) -p $(GENCSEXT) + $(BOOT_JAVA_CMD) -cp $(CHARSETMAPPING_JARFILE) build.tools.charsetmapping.GenerateSBCS \ + $(GENCSDATASRC) $(GENCSEXT) extsbcs + + $(CLASSDESTDIR)/$(SERVICE_DESCRIPTION_PATH): \ $(SHARE_SRC)/classes/sun/nio/cs/ext/$(SERVICE_DESCRIPTION_PATH) $(install-file) diff --git a/jdk/make/tools/CharsetMapping/IBM037.c2b b/jdk/make/tools/CharsetMapping/IBM037.c2b new file mode 100644 index 00000000000..6cb38028124 --- /dev/null +++ b/jdk/make/tools/CharsetMapping/IBM037.c2b @@ -0,0 +1 @@ +0x15 U+0085 diff --git a/jdk/make/tools/CharsetMapping/IBM037.map b/jdk/make/tools/CharsetMapping/IBM037.map new file mode 100644 index 00000000000..f542aa42d29 --- /dev/null +++ b/jdk/make/tools/CharsetMapping/IBM037.map @@ -0,0 +1,257 @@ +#Generated from IBM037.java +0x00 U+0000 +0x01 U+0001 +0x02 U+0002 +0x03 U+0003 +0x04 U+009c +0x05 U+0009 +0x06 U+0086 +0x07 U+007f +0x08 U+0097 +0x09 U+008d +0x0a U+008e +0x0b U+000b +0x0c U+000c +0x0d U+000d +0x0e U+000e +0x0f U+000f +0x10 U+0010 +0x11 U+0011 +0x12 U+0012 +0x13 U+0013 +0x14 U+009d +0x15 U+000a +0x16 U+0008 +0x17 U+0087 +0x18 U+0018 +0x19 U+0019 +0x1a U+0092 +0x1b U+008f +0x1c U+001c +0x1d U+001d +0x1e U+001e +0x1f U+001f +0x20 U+0080 +0x21 U+0081 +0x22 U+0082 +0x23 U+0083 +0x24 U+0084 +0x25 U+000a +0x26 U+0017 +0x27 U+001b +0x28 U+0088 +0x29 U+0089 +0x2a U+008a +0x2b U+008b +0x2c U+008c +0x2d U+0005 +0x2e U+0006 +0x2f U+0007 +0x30 U+0090 +0x31 U+0091 +0x32 U+0016 +0x33 U+0093 +0x34 U+0094 +0x35 U+0095 +0x36 U+0096 +0x37 U+0004 +0x38 U+0098 +0x39 U+0099 +0x3a U+009a +0x3b U+009b +0x3c U+0014 +0x3d U+0015 +0x3e U+009e +0x3f U+001a +0x40 U+0020 +0x41 U+00a0 +0x42 U+00e2 +0x43 U+00e4 +0x44 U+00e0 +0x45 U+00e1 +0x46 U+00e3 +0x47 U+00e5 +0x48 U+00e7 +0x49 U+00f1 +0x4a U+00a2 +0x4b U+002e +0x4c U+003c +0x4d U+0028 +0x4e U+002b +0x4f U+007c +0x50 U+0026 +0x51 U+00e9 +0x52 U+00ea +0x53 U+00eb +0x54 U+00e8 +0x55 U+00ed +0x56 U+00ee +0x57 U+00ef +0x58 U+00ec +0x59 U+00df +0x5a U+0021 +0x5b U+0024 +0x5c U+002a +0x5d U+0029 +0x5e U+003b +0x5f U+00ac +0x60 U+002d +0x61 U+002f +0x62 U+00c2 +0x63 U+00c4 +0x64 U+00c0 +0x65 U+00c1 +0x66 U+00c3 +0x67 U+00c5 +0x68 U+00c7 +0x69 U+00d1 +0x6a U+00a6 +0x6b U+002c +0x6c U+0025 +0x6d U+005f +0x6e U+003e +0x6f U+003f +0x70 U+00f8 +0x71 U+00c9 +0x72 U+00ca +0x73 U+00cb +0x74 U+00c8 +0x75 U+00cd +0x76 U+00ce +0x77 U+00cf +0x78 U+00cc +0x79 U+0060 +0x7a U+003a +0x7b U+0023 +0x7c U+0040 +0x7d U+0027 +0x7e U+003d +0x7f U+0022 +0x80 U+00d8 +0x81 U+0061 +0x82 U+0062 +0x83 U+0063 +0x84 U+0064 +0x85 U+0065 +0x86 U+0066 +0x87 U+0067 +0x88 U+0068 +0x89 U+0069 +0x8a U+00ab +0x8b U+00bb +0x8c U+00f0 +0x8d U+00fd +0x8e U+00fe +0x8f U+00b1 +0x90 U+00b0 +0x91 U+006a +0x92 U+006b +0x93 U+006c +0x94 U+006d +0x95 U+006e +0x96 U+006f +0x97 U+0070 +0x98 U+0071 +0x99 U+0072 +0x9a U+00aa +0x9b U+00ba +0x9c U+00e6 +0x9d U+00b8 +0x9e U+00c6 +0x9f U+00a4 +0xa0 U+00b5 +0xa1 U+007e +0xa2 U+0073 +0xa3 U+0074 +0xa4 U+0075 +0xa5 U+0076 +0xa6 U+0077 +0xa7 U+0078 +0xa8 U+0079 +0xa9 U+007a +0xaa U+00a1 +0xab U+00bf +0xac U+00d0 +0xad U+00dd +0xae U+00de +0xaf U+00ae +0xb0 U+005e +0xb1 U+00a3 +0xb2 U+00a5 +0xb3 U+00b7 +0xb4 U+00a9 +0xb5 U+00a7 +0xb6 U+00b6 +0xb7 U+00bc +0xb8 U+00bd +0xb9 U+00be +0xba U+005b +0xbb U+005d +0xbc U+00af +0xbd U+00a8 +0xbe U+00b4 +0xbf U+00d7 +0xc0 U+007b +0xc1 U+0041 +0xc2 U+0042 +0xc3 U+0043 +0xc4 U+0044 +0xc5 U+0045 +0xc6 U+0046 +0xc7 U+0047 +0xc8 U+0048 +0xc9 U+0049 +0xca U+00ad +0xcb U+00f4 +0xcc U+00f6 +0xcd U+00f2 +0xce U+00f3 +0xcf U+00f5 +0xd0 U+007d +0xd1 U+004a +0xd2 U+004b +0xd3 U+004c +0xd4 U+004d +0xd5 U+004e +0xd6 U+004f +0xd7 U+0050 +0xd8 U+0051 +0xd9 U+0052 +0xda U+00b9 +0xdb U+00fb +0xdc U+00fc +0xdd U+00f9 +0xde U+00fa +0xdf U+00ff +0xe0 U+005c +0xe1 U+00f7 +0xe2 U+0053 +0xe3 U+0054 +0xe4 U+0055 +0xe5 U+0056 +0xe6 U+0057 +0xe7 U+0058 +0xe8 U+0059 +0xe9 U+005a +0xea U+00b2 +0xeb U+00d4 +0xec U+00d6 +0xed U+00d2 +0xee U+00d3 +0xef U+00d5 +0xf0 U+0030 +0xf1 U+0031 +0xf2 U+0032 +0xf3 U+0033 +0xf4 U+0034 +0xf5 U+0035 +0xf6 U+0036 +0xf7 U+0037 +0xf8 U+0038 +0xf9 U+0039 +0xfa U+00b3 +0xfb U+00db +0xfc U+00dc +0xfd U+00d9 +0xfe U+00da +0xff U+009f diff --git a/jdk/make/tools/CharsetMapping/IBM037.nr b/jdk/make/tools/CharsetMapping/IBM037.nr new file mode 100644 index 00000000000..675451906d4 --- /dev/null +++ b/jdk/make/tools/CharsetMapping/IBM037.nr @@ -0,0 +1 @@ +0x25 U+000a diff --git a/jdk/make/tools/CharsetMapping/IBM1006.map b/jdk/make/tools/CharsetMapping/IBM1006.map new file mode 100644 index 00000000000..9ae5537d4b3 --- /dev/null +++ b/jdk/make/tools/CharsetMapping/IBM1006.map @@ -0,0 +1,257 @@ +#Generated from IBM1006.java +0x00 U+0000 +0x01 U+0001 +0x02 U+0002 +0x03 U+0003 +0x04 U+0004 +0x05 U+0005 +0x06 U+0006 +0x07 U+0007 +0x08 U+0008 +0x09 U+0009 +0x0a U+000a +0x0b U+000b +0x0c U+000c +0x0d U+000d +0x0e U+000e +0x0f U+000f +0x10 U+0010 +0x11 U+0011 +0x12 U+0012 +0x13 U+0013 +0x14 U+0014 +0x15 U+0015 +0x16 U+0016 +0x17 U+0017 +0x18 U+0018 +0x19 U+0019 +0x1a U+001a +0x1b U+001b +0x1c U+001c +0x1d U+001d +0x1e U+001e +0x1f U+001f +0x20 U+0020 +0x21 U+0021 +0x22 U+0022 +0x23 U+0023 +0x24 U+0024 +0x25 U+0025 +0x26 U+0026 +0x27 U+0027 +0x28 U+0028 +0x29 U+0029 +0x2a U+002a +0x2b U+002b +0x2c U+002c +0x2d U+002d +0x2e U+002e +0x2f U+002f +0x30 U+0030 +0x31 U+0031 +0x32 U+0032 +0x33 U+0033 +0x34 U+0034 +0x35 U+0035 +0x36 U+0036 +0x37 U+0037 +0x38 U+0038 +0x39 U+0039 +0x3a U+003a +0x3b U+003b +0x3c U+003c +0x3d U+003d +0x3e U+003e +0x3f U+003f +0x40 U+0040 +0x41 U+0041 +0x42 U+0042 +0x43 U+0043 +0x44 U+0044 +0x45 U+0045 +0x46 U+0046 +0x47 U+0047 +0x48 U+0048 +0x49 U+0049 +0x4a U+004a +0x4b U+004b +0x4c U+004c +0x4d U+004d +0x4e U+004e +0x4f U+004f +0x50 U+0050 +0x51 U+0051 +0x52 U+0052 +0x53 U+0053 +0x54 U+0054 +0x55 U+0055 +0x56 U+0056 +0x57 U+0057 +0x58 U+0058 +0x59 U+0059 +0x5a U+005a +0x5b U+005b +0x5c U+005c +0x5d U+005d +0x5e U+005e +0x5f U+005f +0x60 U+0060 +0x61 U+0061 +0x62 U+0062 +0x63 U+0063 +0x64 U+0064 +0x65 U+0065 +0x66 U+0066 +0x67 U+0067 +0x68 U+0068 +0x69 U+0069 +0x6a U+006a +0x6b U+006b +0x6c U+006c +0x6d U+006d +0x6e U+006e +0x6f U+006f +0x70 U+0070 +0x71 U+0071 +0x72 U+0072 +0x73 U+0073 +0x74 U+0074 +0x75 U+0075 +0x76 U+0076 +0x77 U+0077 +0x78 U+0078 +0x79 U+0079 +0x7a U+007a +0x7b U+007b +0x7c U+007c +0x7d U+007d +0x7e U+007e +0x7f U+007f +0x80 U+0080 +0x81 U+0081 +0x82 U+0082 +0x83 U+0083 +0x84 U+0084 +0x85 U+0085 +0x86 U+0086 +0x87 U+0087 +0x88 U+0088 +0x89 U+0089 +0x8a U+008a +0x8b U+008b +0x8c U+008c +0x8d U+008d +0x8e U+008e +0x8f U+008f +0x90 U+0090 +0x91 U+0091 +0x92 U+0092 +0x93 U+0093 +0x94 U+0094 +0x95 U+0095 +0x96 U+0096 +0x97 U+0097 +0x98 U+0098 +0x99 U+0099 +0x9a U+009a +0x9b U+009b +0x9c U+009c +0x9d U+009d +0x9e U+009e +0x9f U+009f +0xa0 U+00a0 +0xa1 U+06f0 +0xa2 U+06f1 +0xa3 U+06f2 +0xa4 U+06f3 +0xa5 U+06f4 +0xa6 U+06f5 +0xa7 U+06f6 +0xa8 U+06f7 +0xa9 U+06f8 +0xaa U+06f9 +0xab U+060c +0xac U+061b +0xad U+00ad +0xae U+061f +0xaf U+fe81 +0xb0 U+fe8d +0xb1 U+fe8e +0xb2 U+f8fb +0xb3 U+fe8f +0xb4 U+fe91 +0xb5 U+fb56 +0xb6 U+fb58 +0xb7 U+fe93 +0xb8 U+fe95 +0xb9 U+fe97 +0xba U+fb66 +0xbb U+fb68 +0xbc U+fe99 +0xbd U+fe9b +0xbe U+fe9d +0xbf U+fe9f +0xc0 U+fb7a +0xc1 U+fb7c +0xc2 U+fea1 +0xc3 U+fea3 +0xc4 U+fea5 +0xc5 U+fea7 +0xc6 U+fea9 +0xc7 U+fb88 +0xc8 U+feab +0xc9 U+fead +0xca U+fb8c +0xcb U+feaf +0xcc U+fb8a +0xcd U+feb1 +0xce U+feb3 +0xcf U+feb5 +0xd0 U+feb7 +0xd1 U+feb9 +0xd2 U+febb +0xd3 U+febd +0xd4 U+febf +0xd5 U+fec3 +0xd6 U+fec7 +0xd7 U+fec9 +0xd8 U+feca +0xd9 U+fecb +0xda U+fecc +0xdb U+fecd +0xdc U+fece +0xdd U+fecf +0xde U+fed0 +0xdf U+fed1 +0xe0 U+fed3 +0xe1 U+fed5 +0xe2 U+fed7 +0xe3 U+fb8e +0xe4 U+fedb +0xe5 U+fb92 +0xe6 U+fb94 +0xe7 U+fedd +0xe8 U+fedf +0xe9 U+fee0 +0xea U+fee1 +0xeb U+fee3 +0xec U+fb9e +0xed U+fee5 +0xee U+fee7 +0xef U+fe85 +0xf0 U+feed +0xf1 U+fba6 +0xf2 U+fba8 +0xf3 U+fba9 +0xf4 U+fbaa +0xf5 U+fe80 +0xf6 U+fe89 +0xf7 U+fe8a +0xf8 U+fe8b +0xf9 U+fbfc +0xfa U+fbfd +0xfb U+fbfe +0xfc U+fbb0 +0xfd U+fbae +0xfe U+fe7c +0xff U+fe7d diff --git a/jdk/make/tools/CharsetMapping/IBM1025.c2b b/jdk/make/tools/CharsetMapping/IBM1025.c2b new file mode 100644 index 00000000000..6cb38028124 --- /dev/null +++ b/jdk/make/tools/CharsetMapping/IBM1025.c2b @@ -0,0 +1 @@ +0x15 U+0085 diff --git a/jdk/make/tools/CharsetMapping/IBM1025.map b/jdk/make/tools/CharsetMapping/IBM1025.map new file mode 100644 index 00000000000..e56dbe08107 --- /dev/null +++ b/jdk/make/tools/CharsetMapping/IBM1025.map @@ -0,0 +1,257 @@ +#Generated from IBM1025.java +0x00 U+0000 +0x01 U+0001 +0x02 U+0002 +0x03 U+0003 +0x04 U+009c +0x05 U+0009 +0x06 U+0086 +0x07 U+007f +0x08 U+0097 +0x09 U+008d +0x0a U+008e +0x0b U+000b +0x0c U+000c +0x0d U+000d +0x0e U+000e +0x0f U+000f +0x10 U+0010 +0x11 U+0011 +0x12 U+0012 +0x13 U+0013 +0x14 U+009d +0x15 U+000a +0x16 U+0008 +0x17 U+0087 +0x18 U+0018 +0x19 U+0019 +0x1a U+0092 +0x1b U+008f +0x1c U+001c +0x1d U+001d +0x1e U+001e +0x1f U+001f +0x20 U+0080 +0x21 U+0081 +0x22 U+0082 +0x23 U+0083 +0x24 U+0084 +0x25 U+000a +0x26 U+0017 +0x27 U+001b +0x28 U+0088 +0x29 U+0089 +0x2a U+008a +0x2b U+008b +0x2c U+008c +0x2d U+0005 +0x2e U+0006 +0x2f U+0007 +0x30 U+0090 +0x31 U+0091 +0x32 U+0016 +0x33 U+0093 +0x34 U+0094 +0x35 U+0095 +0x36 U+0096 +0x37 U+0004 +0x38 U+0098 +0x39 U+0099 +0x3a U+009a +0x3b U+009b +0x3c U+0014 +0x3d U+0015 +0x3e U+009e +0x3f U+001a +0x40 U+0020 +0x41 U+00a0 +0x42 U+0452 +0x43 U+0453 +0x44 U+0451 +0x45 U+0454 +0x46 U+0455 +0x47 U+0456 +0x48 U+0457 +0x49 U+0458 +0x4a U+005b +0x4b U+002e +0x4c U+003c +0x4d U+0028 +0x4e U+002b +0x4f U+0021 +0x50 U+0026 +0x51 U+0459 +0x52 U+045a +0x53 U+045b +0x54 U+045c +0x55 U+045e +0x56 U+045f +0x57 U+042a +0x58 U+2116 +0x59 U+0402 +0x5a U+005d +0x5b U+0024 +0x5c U+002a +0x5d U+0029 +0x5e U+003b +0x5f U+005e +0x60 U+002d +0x61 U+002f +0x62 U+0403 +0x63 U+0401 +0x64 U+0404 +0x65 U+0405 +0x66 U+0406 +0x67 U+0407 +0x68 U+0408 +0x69 U+0409 +0x6a U+007c +0x6b U+002c +0x6c U+0025 +0x6d U+005f +0x6e U+003e +0x6f U+003f +0x70 U+040a +0x71 U+040b +0x72 U+040c +0x73 U+00ad +0x74 U+040e +0x75 U+040f +0x76 U+044e +0x77 U+0430 +0x78 U+0431 +0x79 U+0060 +0x7a U+003a +0x7b U+0023 +0x7c U+0040 +0x7d U+0027 +0x7e U+003d +0x7f U+0022 +0x80 U+0446 +0x81 U+0061 +0x82 U+0062 +0x83 U+0063 +0x84 U+0064 +0x85 U+0065 +0x86 U+0066 +0x87 U+0067 +0x88 U+0068 +0x89 U+0069 +0x8a U+0434 +0x8b U+0435 +0x8c U+0444 +0x8d U+0433 +0x8e U+0445 +0x8f U+0438 +0x90 U+0439 +0x91 U+006a +0x92 U+006b +0x93 U+006c +0x94 U+006d +0x95 U+006e +0x96 U+006f +0x97 U+0070 +0x98 U+0071 +0x99 U+0072 +0x9a U+043a +0x9b U+043b +0x9c U+043c +0x9d U+043d +0x9e U+043e +0x9f U+043f +0xa0 U+044f +0xa1 U+007e +0xa2 U+0073 +0xa3 U+0074 +0xa4 U+0075 +0xa5 U+0076 +0xa6 U+0077 +0xa7 U+0078 +0xa8 U+0079 +0xa9 U+007a +0xaa U+0440 +0xab U+0441 +0xac U+0442 +0xad U+0443 +0xae U+0436 +0xaf U+0432 +0xb0 U+044c +0xb1 U+044b +0xb2 U+0437 +0xb3 U+0448 +0xb4 U+044d +0xb5 U+0449 +0xb6 U+0447 +0xb7 U+044a +0xb8 U+042e +0xb9 U+0410 +0xba U+0411 +0xbb U+0426 +0xbc U+0414 +0xbd U+0415 +0xbe U+0424 +0xbf U+0413 +0xc0 U+007b +0xc1 U+0041 +0xc2 U+0042 +0xc3 U+0043 +0xc4 U+0044 +0xc5 U+0045 +0xc6 U+0046 +0xc7 U+0047 +0xc8 U+0048 +0xc9 U+0049 +0xca U+0425 +0xcb U+0418 +0xcc U+0419 +0xcd U+041a +0xce U+041b +0xcf U+041c +0xd0 U+007d +0xd1 U+004a +0xd2 U+004b +0xd3 U+004c +0xd4 U+004d +0xd5 U+004e +0xd6 U+004f +0xd7 U+0050 +0xd8 U+0051 +0xd9 U+0052 +0xda U+041d +0xdb U+041e +0xdc U+041f +0xdd U+042f +0xde U+0420 +0xdf U+0421 +0xe0 U+005c +0xe1 U+00a7 +0xe2 U+0053 +0xe3 U+0054 +0xe4 U+0055 +0xe5 U+0056 +0xe6 U+0057 +0xe7 U+0058 +0xe8 U+0059 +0xe9 U+005a +0xea U+0422 +0xeb U+0423 +0xec U+0416 +0xed U+0412 +0xee U+042c +0xef U+042b +0xf0 U+0030 +0xf1 U+0031 +0xf2 U+0032 +0xf3 U+0033 +0xf4 U+0034 +0xf5 U+0035 +0xf6 U+0036 +0xf7 U+0037 +0xf8 U+0038 +0xf9 U+0039 +0xfa U+0417 +0xfb U+0428 +0xfc U+042d +0xfd U+0429 +0xfe U+0427 +0xff U+009f diff --git a/jdk/make/tools/CharsetMapping/IBM1025.nr b/jdk/make/tools/CharsetMapping/IBM1025.nr new file mode 100644 index 00000000000..675451906d4 --- /dev/null +++ b/jdk/make/tools/CharsetMapping/IBM1025.nr @@ -0,0 +1 @@ +0x25 U+000a diff --git a/jdk/make/tools/CharsetMapping/IBM1026.c2b b/jdk/make/tools/CharsetMapping/IBM1026.c2b new file mode 100644 index 00000000000..6cb38028124 --- /dev/null +++ b/jdk/make/tools/CharsetMapping/IBM1026.c2b @@ -0,0 +1 @@ +0x15 U+0085 diff --git a/jdk/make/tools/CharsetMapping/IBM1026.map b/jdk/make/tools/CharsetMapping/IBM1026.map new file mode 100644 index 00000000000..56fa74a05b3 --- /dev/null +++ b/jdk/make/tools/CharsetMapping/IBM1026.map @@ -0,0 +1,257 @@ +#Generated from IBM1026.java +0x00 U+0000 +0x01 U+0001 +0x02 U+0002 +0x03 U+0003 +0x04 U+009c +0x05 U+0009 +0x06 U+0086 +0x07 U+007f +0x08 U+0097 +0x09 U+008d +0x0a U+008e +0x0b U+000b +0x0c U+000c +0x0d U+000d +0x0e U+000e +0x0f U+000f +0x10 U+0010 +0x11 U+0011 +0x12 U+0012 +0x13 U+0013 +0x14 U+009d +0x15 U+000a +0x16 U+0008 +0x17 U+0087 +0x18 U+0018 +0x19 U+0019 +0x1a U+0092 +0x1b U+008f +0x1c U+001c +0x1d U+001d +0x1e U+001e +0x1f U+001f +0x20 U+0080 +0x21 U+0081 +0x22 U+0082 +0x23 U+0083 +0x24 U+0084 +0x25 U+000a +0x26 U+0017 +0x27 U+001b +0x28 U+0088 +0x29 U+0089 +0x2a U+008a +0x2b U+008b +0x2c U+008c +0x2d U+0005 +0x2e U+0006 +0x2f U+0007 +0x30 U+0090 +0x31 U+0091 +0x32 U+0016 +0x33 U+0093 +0x34 U+0094 +0x35 U+0095 +0x36 U+0096 +0x37 U+0004 +0x38 U+0098 +0x39 U+0099 +0x3a U+009a +0x3b U+009b +0x3c U+0014 +0x3d U+0015 +0x3e U+009e +0x3f U+001a +0x40 U+0020 +0x41 U+00a0 +0x42 U+00e2 +0x43 U+00e4 +0x44 U+00e0 +0x45 U+00e1 +0x46 U+00e3 +0x47 U+00e5 +0x48 U+007b +0x49 U+00f1 +0x4a U+00c7 +0x4b U+002e +0x4c U+003c +0x4d U+0028 +0x4e U+002b +0x4f U+0021 +0x50 U+0026 +0x51 U+00e9 +0x52 U+00ea +0x53 U+00eb +0x54 U+00e8 +0x55 U+00ed +0x56 U+00ee +0x57 U+00ef +0x58 U+00ec +0x59 U+00df +0x5a U+011e +0x5b U+0130 +0x5c U+002a +0x5d U+0029 +0x5e U+003b +0x5f U+005e +0x60 U+002d +0x61 U+002f +0x62 U+00c2 +0x63 U+00c4 +0x64 U+00c0 +0x65 U+00c1 +0x66 U+00c3 +0x67 U+00c5 +0x68 U+005b +0x69 U+00d1 +0x6a U+015f +0x6b U+002c +0x6c U+0025 +0x6d U+005f +0x6e U+003e +0x6f U+003f +0x70 U+00f8 +0x71 U+00c9 +0x72 U+00ca +0x73 U+00cb +0x74 U+00c8 +0x75 U+00cd +0x76 U+00ce +0x77 U+00cf +0x78 U+00cc +0x79 U+0131 +0x7a U+003a +0x7b U+00d6 +0x7c U+015e +0x7d U+0027 +0x7e U+003d +0x7f U+00dc +0x80 U+00d8 +0x81 U+0061 +0x82 U+0062 +0x83 U+0063 +0x84 U+0064 +0x85 U+0065 +0x86 U+0066 +0x87 U+0067 +0x88 U+0068 +0x89 U+0069 +0x8a U+00ab +0x8b U+00bb +0x8c U+007d +0x8d U+0060 +0x8e U+00a6 +0x8f U+00b1 +0x90 U+00b0 +0x91 U+006a +0x92 U+006b +0x93 U+006c +0x94 U+006d +0x95 U+006e +0x96 U+006f +0x97 U+0070 +0x98 U+0071 +0x99 U+0072 +0x9a U+00aa +0x9b U+00ba +0x9c U+00e6 +0x9d U+00b8 +0x9e U+00c6 +0x9f U+00a4 +0xa0 U+00b5 +0xa1 U+00f6 +0xa2 U+0073 +0xa3 U+0074 +0xa4 U+0075 +0xa5 U+0076 +0xa6 U+0077 +0xa7 U+0078 +0xa8 U+0079 +0xa9 U+007a +0xaa U+00a1 +0xab U+00bf +0xac U+005d +0xad U+0024 +0xae U+0040 +0xaf U+00ae +0xb0 U+00a2 +0xb1 U+00a3 +0xb2 U+00a5 +0xb3 U+00b7 +0xb4 U+00a9 +0xb5 U+00a7 +0xb6 U+00b6 +0xb7 U+00bc +0xb8 U+00bd +0xb9 U+00be +0xba U+00ac +0xbb U+007c +0xbc U+00af +0xbd U+00a8 +0xbe U+00b4 +0xbf U+00d7 +0xc0 U+00e7 +0xc1 U+0041 +0xc2 U+0042 +0xc3 U+0043 +0xc4 U+0044 +0xc5 U+0045 +0xc6 U+0046 +0xc7 U+0047 +0xc8 U+0048 +0xc9 U+0049 +0xca U+00ad +0xcb U+00f4 +0xcc U+007e +0xcd U+00f2 +0xce U+00f3 +0xcf U+00f5 +0xd0 U+011f +0xd1 U+004a +0xd2 U+004b +0xd3 U+004c +0xd4 U+004d +0xd5 U+004e +0xd6 U+004f +0xd7 U+0050 +0xd8 U+0051 +0xd9 U+0052 +0xda U+00b9 +0xdb U+00fb +0xdc U+005c +0xdd U+00f9 +0xde U+00fa +0xdf U+00ff +0xe0 U+00fc +0xe1 U+00f7 +0xe2 U+0053 +0xe3 U+0054 +0xe4 U+0055 +0xe5 U+0056 +0xe6 U+0057 +0xe7 U+0058 +0xe8 U+0059 +0xe9 U+005a +0xea U+00b2 +0xeb U+00d4 +0xec U+0023 +0xed U+00d2 +0xee U+00d3 +0xef U+00d5 +0xf0 U+0030 +0xf1 U+0031 +0xf2 U+0032 +0xf3 U+0033 +0xf4 U+0034 +0xf5 U+0035 +0xf6 U+0036 +0xf7 U+0037 +0xf8 U+0038 +0xf9 U+0039 +0xfa U+00b3 +0xfb U+00db +0xfc U+0022 +0xfd U+00d9 +0xfe U+00da +0xff U+009f diff --git a/jdk/make/tools/CharsetMapping/IBM1026.nr b/jdk/make/tools/CharsetMapping/IBM1026.nr new file mode 100644 index 00000000000..675451906d4 --- /dev/null +++ b/jdk/make/tools/CharsetMapping/IBM1026.nr @@ -0,0 +1 @@ +0x25 U+000a diff --git a/jdk/make/tools/CharsetMapping/IBM1046.map b/jdk/make/tools/CharsetMapping/IBM1046.map new file mode 100644 index 00000000000..28a25d772d0 --- /dev/null +++ b/jdk/make/tools/CharsetMapping/IBM1046.map @@ -0,0 +1,257 @@ +#Generated from IBM1046.java +0x00 U+0000 +0x01 U+0001 +0x02 U+0002 +0x03 U+0003 +0x04 U+0004 +0x05 U+0005 +0x06 U+0006 +0x07 U+0007 +0x08 U+0008 +0x09 U+0009 +0x0a U+000a +0x0b U+000b +0x0c U+000c +0x0d U+000d +0x0e U+000e +0x0f U+000f +0x10 U+0010 +0x11 U+0011 +0x12 U+0012 +0x13 U+0013 +0x14 U+0014 +0x15 U+0015 +0x16 U+0016 +0x17 U+0017 +0x18 U+0018 +0x19 U+0019 +0x1a U+001a +0x1b U+001b +0x1c U+001c +0x1d U+001d +0x1e U+001e +0x1f U+001f +0x20 U+0020 +0x21 U+0021 +0x22 U+0022 +0x23 U+0023 +0x24 U+0024 +0x25 U+0025 +0x26 U+0026 +0x27 U+0027 +0x28 U+0028 +0x29 U+0029 +0x2a U+002a +0x2b U+002b +0x2c U+002c +0x2d U+002d +0x2e U+002e +0x2f U+002f +0x30 U+0030 +0x31 U+0031 +0x32 U+0032 +0x33 U+0033 +0x34 U+0034 +0x35 U+0035 +0x36 U+0036 +0x37 U+0037 +0x38 U+0038 +0x39 U+0039 +0x3a U+003a +0x3b U+003b +0x3c U+003c +0x3d U+003d +0x3e U+003e +0x3f U+003f +0x40 U+0040 +0x41 U+0041 +0x42 U+0042 +0x43 U+0043 +0x44 U+0044 +0x45 U+0045 +0x46 U+0046 +0x47 U+0047 +0x48 U+0048 +0x49 U+0049 +0x4a U+004a +0x4b U+004b +0x4c U+004c +0x4d U+004d +0x4e U+004e +0x4f U+004f +0x50 U+0050 +0x51 U+0051 +0x52 U+0052 +0x53 U+0053 +0x54 U+0054 +0x55 U+0055 +0x56 U+0056 +0x57 U+0057 +0x58 U+0058 +0x59 U+0059 +0x5a U+005a +0x5b U+005b +0x5c U+005c +0x5d U+005d +0x5e U+005e +0x5f U+005f +0x60 U+0060 +0x61 U+0061 +0x62 U+0062 +0x63 U+0063 +0x64 U+0064 +0x65 U+0065 +0x66 U+0066 +0x67 U+0067 +0x68 U+0068 +0x69 U+0069 +0x6a U+006a +0x6b U+006b +0x6c U+006c +0x6d U+006d +0x6e U+006e +0x6f U+006f +0x70 U+0070 +0x71 U+0071 +0x72 U+0072 +0x73 U+0073 +0x74 U+0074 +0x75 U+0075 +0x76 U+0076 +0x77 U+0077 +0x78 U+0078 +0x79 U+0079 +0x7a U+007a +0x7b U+007b +0x7c U+007c +0x7d U+007d +0x7e U+007e +0x7f U+007f +0x80 U+fe88 +0x81 U+00d7 +0x82 U+00f7 +0x83 U+f8f6 +0x84 U+f8f5 +0x85 U+f8f4 +0x86 U+f8f7 +0x87 U+fe71 +0x88 U+0088 +0x89 U+25a0 +0x8a U+2502 +0x8b U+2500 +0x8c U+2510 +0x8d U+250c +0x8e U+2514 +0x8f U+2518 +0x90 U+fe79 +0x91 U+fe7b +0x92 U+fe7d +0x93 U+fe7f +0x94 U+fe77 +0x95 U+fe8a +0x96 U+fef0 +0x97 U+fef3 +0x98 U+fef2 +0x99 U+fece +0x9a U+fecf +0x9b U+fed0 +0x9c U+fef6 +0x9d U+fef8 +0x9e U+fefa +0x9f U+fefc +0xa0 U+00a0 +0xa1 U+f8fa +0xa2 U+f8f9 +0xa3 U+f8f8 +0xa4 U+00a4 +0xa5 U+f8fb +0xa6 U+fe8b +0xa7 U+fe91 +0xa8 U+fe97 +0xa9 U+fe9b +0xaa U+fe9f +0xab U+fea3 +0xac U+060c +0xad U+00ad +0xae U+fea7 +0xaf U+feb3 +0xb0 U+0660 +0xb1 U+0661 +0xb2 U+0662 +0xb3 U+0663 +0xb4 U+0664 +0xb5 U+0665 +0xb6 U+0666 +0xb7 U+0667 +0xb8 U+0668 +0xb9 U+0669 +0xba U+feb7 +0xbb U+061b +0xbc U+febb +0xbd U+febf +0xbe U+feca +0xbf U+061f +0xc0 U+fecb +0xc1 U+fe80 +0xc2 U+fe81 +0xc3 U+fe83 +0xc4 U+fe85 +0xc5 U+fe87 +0xc6 U+fe89 +0xc7 U+fe8d +0xc8 U+fe8f +0xc9 U+fe93 +0xca U+fe95 +0xcb U+fe99 +0xcc U+fe9d +0xcd U+fea1 +0xce U+fea5 +0xcf U+fea9 +0xd0 U+feab +0xd1 U+fead +0xd2 U+feaf +0xd3 U+feb1 +0xd4 U+feb5 +0xd5 U+feb9 +0xd6 U+febd +0xd7 U+fec3 +0xd8 U+fec7 +0xd9 U+fec9 +0xda U+fecd +0xdb U+fecc +0xdc U+fe82 +0xdd U+fe84 +0xde U+fe8e +0xdf U+fed3 +0xe0 U+0640 +0xe1 U+fed1 +0xe2 U+fed5 +0xe3 U+fed9 +0xe4 U+fedd +0xe5 U+fee1 +0xe6 U+fee5 +0xe7 U+feeb +0xe8 U+feed +0xe9 U+feef +0xea U+fef1 +0xeb U+fe70 +0xec U+fe72 +0xed U+fe74 +0xee U+fe76 +0xef U+fe78 +0xf0 U+fe7a +0xf1 U+fe7c +0xf2 U+fe7e +0xf3 U+fed7 +0xf4 U+fedb +0xf5 U+fedf +0xf6 U+f8fc +0xf7 U+fef5 +0xf8 U+fef7 +0xf9 U+fef9 +0xfa U+fefb +0xfb U+fee3 +0xfc U+fee7 +0xfd U+feec +0xfe U+fee9 +0xff U+fffd diff --git a/jdk/make/tools/CharsetMapping/IBM1047.map b/jdk/make/tools/CharsetMapping/IBM1047.map new file mode 100644 index 00000000000..fcbae725c89 --- /dev/null +++ b/jdk/make/tools/CharsetMapping/IBM1047.map @@ -0,0 +1,257 @@ +#Generated from IBM1047.java +0x00 U+0000 +0x01 U+0001 +0x02 U+0002 +0x03 U+0003 +0x04 U+009c +0x05 U+0009 +0x06 U+0086 +0x07 U+007f +0x08 U+0097 +0x09 U+008d +0x0a U+008e +0x0b U+000b +0x0c U+000c +0x0d U+000d +0x0e U+000e +0x0f U+000f +0x10 U+0010 +0x11 U+0011 +0x12 U+0012 +0x13 U+0013 +0x14 U+009d +0x15 U+000a +0x16 U+0008 +0x17 U+0087 +0x18 U+0018 +0x19 U+0019 +0x1a U+0092 +0x1b U+008f +0x1c U+001c +0x1d U+001d +0x1e U+001e +0x1f U+001f +0x20 U+0080 +0x21 U+0081 +0x22 U+0082 +0x23 U+0083 +0x24 U+0084 +0x25 U+0085 +0x26 U+0017 +0x27 U+001b +0x28 U+0088 +0x29 U+0089 +0x2a U+008a +0x2b U+008b +0x2c U+008c +0x2d U+0005 +0x2e U+0006 +0x2f U+0007 +0x30 U+0090 +0x31 U+0091 +0x32 U+0016 +0x33 U+0093 +0x34 U+0094 +0x35 U+0095 +0x36 U+0096 +0x37 U+0004 +0x38 U+0098 +0x39 U+0099 +0x3a U+009a +0x3b U+009b +0x3c U+0014 +0x3d U+0015 +0x3e U+009e +0x3f U+001a +0x40 U+0020 +0x41 U+00a0 +0x42 U+00e2 +0x43 U+00e4 +0x44 U+00e0 +0x45 U+00e1 +0x46 U+00e3 +0x47 U+00e5 +0x48 U+00e7 +0x49 U+00f1 +0x4a U+00a2 +0x4b U+002e +0x4c U+003c +0x4d U+0028 +0x4e U+002b +0x4f U+007c +0x50 U+0026 +0x51 U+00e9 +0x52 U+00ea +0x53 U+00eb +0x54 U+00e8 +0x55 U+00ed +0x56 U+00ee +0x57 U+00ef +0x58 U+00ec +0x59 U+00df +0x5a U+0021 +0x5b U+0024 +0x5c U+002a +0x5d U+0029 +0x5e U+003b +0x5f U+005e +0x60 U+002d +0x61 U+002f +0x62 U+00c2 +0x63 U+00c4 +0x64 U+00c0 +0x65 U+00c1 +0x66 U+00c3 +0x67 U+00c5 +0x68 U+00c7 +0x69 U+00d1 +0x6a U+00a6 +0x6b U+002c +0x6c U+0025 +0x6d U+005f +0x6e U+003e +0x6f U+003f +0x70 U+00f8 +0x71 U+00c9 +0x72 U+00ca +0x73 U+00cb +0x74 U+00c8 +0x75 U+00cd +0x76 U+00ce +0x77 U+00cf +0x78 U+00cc +0x79 U+0060 +0x7a U+003a +0x7b U+0023 +0x7c U+0040 +0x7d U+0027 +0x7e U+003d +0x7f U+0022 +0x80 U+00d8 +0x81 U+0061 +0x82 U+0062 +0x83 U+0063 +0x84 U+0064 +0x85 U+0065 +0x86 U+0066 +0x87 U+0067 +0x88 U+0068 +0x89 U+0069 +0x8a U+00ab +0x8b U+00bb +0x8c U+00f0 +0x8d U+00fd +0x8e U+00fe +0x8f U+00b1 +0x90 U+00b0 +0x91 U+006a +0x92 U+006b +0x93 U+006c +0x94 U+006d +0x95 U+006e +0x96 U+006f +0x97 U+0070 +0x98 U+0071 +0x99 U+0072 +0x9a U+00aa +0x9b U+00ba +0x9c U+00e6 +0x9d U+00b8 +0x9e U+00c6 +0x9f U+00a4 +0xa0 U+00b5 +0xa1 U+007e +0xa2 U+0073 +0xa3 U+0074 +0xa4 U+0075 +0xa5 U+0076 +0xa6 U+0077 +0xa7 U+0078 +0xa8 U+0079 +0xa9 U+007a +0xaa U+00a1 +0xab U+00bf +0xac U+00d0 +0xad U+005b +0xae U+00de +0xaf U+00ae +0xb0 U+00ac +0xb1 U+00a3 +0xb2 U+00a5 +0xb3 U+00b7 +0xb4 U+00a9 +0xb5 U+00a7 +0xb6 U+00b6 +0xb7 U+00bc +0xb8 U+00bd +0xb9 U+00be +0xba U+00dd +0xbb U+00a8 +0xbc U+00af +0xbd U+005d +0xbe U+00b4 +0xbf U+00d7 +0xc0 U+007b +0xc1 U+0041 +0xc2 U+0042 +0xc3 U+0043 +0xc4 U+0044 +0xc5 U+0045 +0xc6 U+0046 +0xc7 U+0047 +0xc8 U+0048 +0xc9 U+0049 +0xca U+00ad +0xcb U+00f4 +0xcc U+00f6 +0xcd U+00f2 +0xce U+00f3 +0xcf U+00f5 +0xd0 U+007d +0xd1 U+004a +0xd2 U+004b +0xd3 U+004c +0xd4 U+004d +0xd5 U+004e +0xd6 U+004f +0xd7 U+0050 +0xd8 U+0051 +0xd9 U+0052 +0xda U+00b9 +0xdb U+00fb +0xdc U+00fc +0xdd U+00f9 +0xde U+00fa +0xdf U+00ff +0xe0 U+005c +0xe1 U+00f7 +0xe2 U+0053 +0xe3 U+0054 +0xe4 U+0055 +0xe5 U+0056 +0xe6 U+0057 +0xe7 U+0058 +0xe8 U+0059 +0xe9 U+005a +0xea U+00b2 +0xeb U+00d4 +0xec U+00d6 +0xed U+00d2 +0xee U+00d3 +0xef U+00d5 +0xf0 U+0030 +0xf1 U+0031 +0xf2 U+0032 +0xf3 U+0033 +0xf4 U+0034 +0xf5 U+0035 +0xf6 U+0036 +0xf7 U+0037 +0xf8 U+0038 +0xf9 U+0039 +0xfa U+00b3 +0xfb U+00db +0xfc U+00dc +0xfd U+00d9 +0xfe U+00da +0xff U+009f diff --git a/jdk/make/tools/CharsetMapping/IBM1097.map b/jdk/make/tools/CharsetMapping/IBM1097.map new file mode 100644 index 00000000000..4bffa824c92 --- /dev/null +++ b/jdk/make/tools/CharsetMapping/IBM1097.map @@ -0,0 +1,257 @@ +#Generated from IBM1097.java +0x00 U+0000 +0x01 U+0001 +0x02 U+0002 +0x03 U+0003 +0x04 U+009c +0x05 U+0009 +0x06 U+0086 +0x07 U+007f +0x08 U+0097 +0x09 U+008d +0x0a U+008e +0x0b U+000b +0x0c U+000c +0x0d U+000d +0x0e U+000e +0x0f U+000f +0x10 U+0010 +0x11 U+0011 +0x12 U+0012 +0x13 U+0013 +0x14 U+009d +0x15 U+0085 +0x16 U+0008 +0x17 U+0087 +0x18 U+0018 +0x19 U+0019 +0x1a U+0092 +0x1b U+008f +0x1c U+001c +0x1d U+001d +0x1e U+001e +0x1f U+001f +0x20 U+0080 +0x21 U+0081 +0x22 U+0082 +0x23 U+0083 +0x24 U+0084 +0x25 U+000a +0x26 U+0017 +0x27 U+001b +0x28 U+0088 +0x29 U+0089 +0x2a U+008a +0x2b U+008b +0x2c U+008c +0x2d U+0005 +0x2e U+0006 +0x2f U+0007 +0x30 U+0090 +0x31 U+0091 +0x32 U+0016 +0x33 U+0093 +0x34 U+0094 +0x35 U+0095 +0x36 U+0096 +0x37 U+0004 +0x38 U+0098 +0x39 U+0099 +0x3a U+009a +0x3b U+009b +0x3c U+0014 +0x3d U+0015 +0x3e U+009e +0x3f U+001a +0x40 U+0020 +0x41 U+00a0 +0x42 U+060c +0x43 U+064b +0x44 U+fe81 +0x45 U+fe82 +0x46 U+f8fa +0x47 U+fe8d +0x48 U+fe8e +0x49 U+f8fb +0x4a U+00a4 +0x4b U+002e +0x4c U+003c +0x4d U+0028 +0x4e U+002b +0x4f U+007c +0x50 U+0026 +0x51 U+fe80 +0x52 U+fe83 +0x53 U+fe84 +0x54 U+f8f9 +0x55 U+fe85 +0x56 U+fe8b +0x57 U+fe8f +0x58 U+fe91 +0x59 U+fb56 +0x5a U+0021 +0x5b U+0024 +0x5c U+002a +0x5d U+0029 +0x5e U+003b +0x5f U+00ac +0x60 U+002d +0x61 U+002f +0x62 U+fb58 +0x63 U+fe95 +0x64 U+fe97 +0x65 U+fe99 +0x66 U+fe9b +0x67 U+fe9d +0x68 U+fe9f +0x69 U+fb7a +0x6a U+061b +0x6b U+002c +0x6c U+0025 +0x6d U+005f +0x6e U+003e +0x6f U+003f +0x70 U+fb7c +0x71 U+fea1 +0x72 U+fea3 +0x73 U+fea5 +0x74 U+fea7 +0x75 U+fea9 +0x76 U+feab +0x77 U+fead +0x78 U+feaf +0x79 U+0060 +0x7a U+003a +0x7b U+0023 +0x7c U+0040 +0x7d U+0027 +0x7e U+003d +0x7f U+0022 +0x80 U+fb8a +0x81 U+0061 +0x82 U+0062 +0x83 U+0063 +0x84 U+0064 +0x85 U+0065 +0x86 U+0066 +0x87 U+0067 +0x88 U+0068 +0x89 U+0069 +0x8a U+00ab +0x8b U+00bb +0x8c U+feb1 +0x8d U+feb3 +0x8e U+feb5 +0x8f U+feb7 +0x90 U+feb9 +0x91 U+006a +0x92 U+006b +0x93 U+006c +0x94 U+006d +0x95 U+006e +0x96 U+006f +0x97 U+0070 +0x98 U+0071 +0x99 U+0072 +0x9a U+febb +0x9b U+febd +0x9c U+febf +0x9d U+fec1 +0x9e U+fec3 +0x9f U+fec5 +0xa0 U+fec7 +0xa1 U+007e +0xa2 U+0073 +0xa3 U+0074 +0xa4 U+0075 +0xa5 U+0076 +0xa6 U+0077 +0xa7 U+0078 +0xa8 U+0079 +0xa9 U+007a +0xaa U+fec9 +0xab U+feca +0xac U+fecb +0xad U+fecc +0xae U+fecd +0xaf U+fece +0xb0 U+fecf +0xb1 U+fed0 +0xb2 U+fed1 +0xb3 U+fed3 +0xb4 U+fed5 +0xb5 U+fed7 +0xb6 U+fb8e +0xb7 U+fedb +0xb8 U+fb92 +0xb9 U+fb94 +0xba U+005b +0xbb U+005d +0xbc U+fedd +0xbd U+fedf +0xbe U+fee1 +0xbf U+00d7 +0xc0 U+007b +0xc1 U+0041 +0xc2 U+0042 +0xc3 U+0043 +0xc4 U+0044 +0xc5 U+0045 +0xc6 U+0046 +0xc7 U+0047 +0xc8 U+0048 +0xc9 U+0049 +0xca U+00ad +0xcb U+fee3 +0xcc U+fee5 +0xcd U+fee7 +0xce U+feed +0xcf U+fee9 +0xd0 U+007d +0xd1 U+004a +0xd2 U+004b +0xd3 U+004c +0xd4 U+004d +0xd5 U+004e +0xd6 U+004f +0xd7 U+0050 +0xd8 U+0051 +0xd9 U+0052 +0xda U+feeb +0xdb U+feec +0xdc U+fba4 +0xdd U+fbfc +0xde U+fbfd +0xdf U+fbfe +0xe0 U+005c +0xe1 U+061f +0xe2 U+0053 +0xe3 U+0054 +0xe4 U+0055 +0xe5 U+0056 +0xe6 U+0057 +0xe7 U+0058 +0xe8 U+0059 +0xe9 U+005a +0xea U+0640 +0xeb U+06f0 +0xec U+06f1 +0xed U+06f2 +0xee U+06f3 +0xef U+06f4 +0xf0 U+0030 +0xf1 U+0031 +0xf2 U+0032 +0xf3 U+0033 +0xf4 U+0034 +0xf5 U+0035 +0xf6 U+0036 +0xf7 U+0037 +0xf8 U+0038 +0xf9 U+0039 +0xfa U+06f5 +0xfb U+06f6 +0xfc U+06f7 +0xfd U+06f8 +0xfe U+06f9 +0xff U+009f diff --git a/jdk/make/tools/CharsetMapping/IBM1098.map b/jdk/make/tools/CharsetMapping/IBM1098.map new file mode 100644 index 00000000000..6996d6ab250 --- /dev/null +++ b/jdk/make/tools/CharsetMapping/IBM1098.map @@ -0,0 +1,257 @@ +#Generated from IBM1098.java +0x00 U+0000 +0x01 U+0001 +0x02 U+0002 +0x03 U+0003 +0x04 U+0004 +0x05 U+0005 +0x06 U+0006 +0x07 U+0007 +0x08 U+0008 +0x09 U+0009 +0x0a U+000a +0x0b U+000b +0x0c U+000c +0x0d U+000d +0x0e U+000e +0x0f U+000f +0x10 U+0010 +0x11 U+0011 +0x12 U+0012 +0x13 U+0013 +0x14 U+0014 +0x15 U+0015 +0x16 U+0016 +0x17 U+0017 +0x18 U+0018 +0x19 U+0019 +0x1a U+001a +0x1b U+001b +0x1c U+001c +0x1d U+001d +0x1e U+001e +0x1f U+001f +0x20 U+0020 +0x21 U+0021 +0x22 U+0022 +0x23 U+0023 +0x24 U+0024 +0x25 U+0025 +0x26 U+0026 +0x27 U+0027 +0x28 U+0028 +0x29 U+0029 +0x2a U+002a +0x2b U+002b +0x2c U+002c +0x2d U+002d +0x2e U+002e +0x2f U+002f +0x30 U+0030 +0x31 U+0031 +0x32 U+0032 +0x33 U+0033 +0x34 U+0034 +0x35 U+0035 +0x36 U+0036 +0x37 U+0037 +0x38 U+0038 +0x39 U+0039 +0x3a U+003a +0x3b U+003b +0x3c U+003c +0x3d U+003d +0x3e U+003e +0x3f U+003f +0x40 U+0040 +0x41 U+0041 +0x42 U+0042 +0x43 U+0043 +0x44 U+0044 +0x45 U+0045 +0x46 U+0046 +0x47 U+0047 +0x48 U+0048 +0x49 U+0049 +0x4a U+004a +0x4b U+004b +0x4c U+004c +0x4d U+004d +0x4e U+004e +0x4f U+004f +0x50 U+0050 +0x51 U+0051 +0x52 U+0052 +0x53 U+0053 +0x54 U+0054 +0x55 U+0055 +0x56 U+0056 +0x57 U+0057 +0x58 U+0058 +0x59 U+0059 +0x5a U+005a +0x5b U+005b +0x5c U+005c +0x5d U+005d +0x5e U+005e +0x5f U+005f +0x60 U+0060 +0x61 U+0061 +0x62 U+0062 +0x63 U+0063 +0x64 U+0064 +0x65 U+0065 +0x66 U+0066 +0x67 U+0067 +0x68 U+0068 +0x69 U+0069 +0x6a U+006a +0x6b U+006b +0x6c U+006c +0x6d U+006d +0x6e U+006e +0x6f U+006f +0x70 U+0070 +0x71 U+0071 +0x72 U+0072 +0x73 U+0073 +0x74 U+0074 +0x75 U+0075 +0x76 U+0076 +0x77 U+0077 +0x78 U+0078 +0x79 U+0079 +0x7a U+007a +0x7b U+007b +0x7c U+007c +0x7d U+007d +0x7e U+007e +0x7f U+007f +0x80 U+fffd +0x81 U+fffd +0x82 U+060c +0x83 U+061b +0x84 U+061f +0x85 U+064b +0x86 U+fe81 +0x87 U+fe82 +0x88 U+f8fa +0x89 U+fe8d +0x8a U+fe8e +0x8b U+f8fb +0x8c U+fe80 +0x8d U+fe83 +0x8e U+fe84 +0x8f U+f8f9 +0x90 U+fe85 +0x91 U+fe8b +0x92 U+fe8f +0x93 U+fe91 +0x94 U+fb56 +0x95 U+fb58 +0x96 U+fe95 +0x97 U+fe97 +0x98 U+fe99 +0x99 U+fe9b +0x9a U+fe9d +0x9b U+fe9f +0x9c U+fb7a +0x9d U+fb7c +0x9e U+00d7 +0x9f U+fea1 +0xa0 U+fea3 +0xa1 U+fea5 +0xa2 U+fea7 +0xa3 U+fea9 +0xa4 U+feab +0xa5 U+fead +0xa6 U+feaf +0xa7 U+fb8a +0xa8 U+feb1 +0xa9 U+feb3 +0xaa U+feb5 +0xab U+feb7 +0xac U+feb9 +0xad U+febb +0xae U+00ab +0xaf U+00bb +0xb0 U+2591 +0xb1 U+2592 +0xb2 U+2593 +0xb3 U+2502 +0xb4 U+2524 +0xb5 U+febd +0xb6 U+febf +0xb7 U+fec1 +0xb8 U+fec3 +0xb9 U+2563 +0xba U+2551 +0xbb U+2557 +0xbc U+255d +0xbd U+00a4 +0xbe U+fec5 +0xbf U+2510 +0xc0 U+2514 +0xc1 U+2534 +0xc2 U+252c +0xc3 U+251c +0xc4 U+2500 +0xc5 U+253c +0xc6 U+fec7 +0xc7 U+fec9 +0xc8 U+255a +0xc9 U+2554 +0xca U+2569 +0xcb U+2566 +0xcc U+2560 +0xcd U+2550 +0xce U+256c +0xcf U+fffd +0xd0 U+feca +0xd1 U+fecb +0xd2 U+fecc +0xd3 U+fecd +0xd4 U+fece +0xd5 U+fecf +0xd6 U+fed0 +0xd7 U+fed1 +0xd8 U+fed3 +0xd9 U+2518 +0xda U+250c +0xdb U+2588 +0xdc U+2584 +0xdd U+fed5 +0xde U+fed7 +0xdf U+2580 +0xe0 U+fb8e +0xe1 U+fedb +0xe2 U+fb92 +0xe3 U+fb94 +0xe4 U+fedd +0xe5 U+fedf +0xe6 U+fee1 +0xe7 U+fee3 +0xe8 U+fee5 +0xe9 U+fee7 +0xea U+feed +0xeb U+fee9 +0xec U+feeb +0xed U+feec +0xee U+fba4 +0xef U+fbfc +0xf0 U+00ad +0xf1 U+fbfd +0xf2 U+fbfe +0xf3 U+0640 +0xf4 U+06f0 +0xf5 U+06f1 +0xf6 U+06f2 +0xf7 U+06f3 +0xf8 U+06f4 +0xf9 U+06f5 +0xfa U+06f6 +0xfb U+06f7 +0xfc U+06f8 +0xfd U+06f9 +0xfe U+25a0 +0xff U+00a0 diff --git a/jdk/make/tools/CharsetMapping/IBM1112.c2b b/jdk/make/tools/CharsetMapping/IBM1112.c2b new file mode 100644 index 00000000000..6cb38028124 --- /dev/null +++ b/jdk/make/tools/CharsetMapping/IBM1112.c2b @@ -0,0 +1 @@ +0x15 U+0085 diff --git a/jdk/make/tools/CharsetMapping/IBM1112.map b/jdk/make/tools/CharsetMapping/IBM1112.map new file mode 100644 index 00000000000..2439ea21c92 --- /dev/null +++ b/jdk/make/tools/CharsetMapping/IBM1112.map @@ -0,0 +1,257 @@ +#Generated from IBM1112.java +0x00 U+0000 +0x01 U+0001 +0x02 U+0002 +0x03 U+0003 +0x04 U+009c +0x05 U+0009 +0x06 U+0086 +0x07 U+007f +0x08 U+0097 +0x09 U+008d +0x0a U+008e +0x0b U+000b +0x0c U+000c +0x0d U+000d +0x0e U+000e +0x0f U+000f +0x10 U+0010 +0x11 U+0011 +0x12 U+0012 +0x13 U+0013 +0x14 U+009d +0x15 U+000a +0x16 U+0008 +0x17 U+0087 +0x18 U+0018 +0x19 U+0019 +0x1a U+0092 +0x1b U+008f +0x1c U+001c +0x1d U+001d +0x1e U+001e +0x1f U+001f +0x20 U+0080 +0x21 U+0081 +0x22 U+0082 +0x23 U+0083 +0x24 U+0084 +0x25 U+000a +0x26 U+0017 +0x27 U+001b +0x28 U+0088 +0x29 U+0089 +0x2a U+008a +0x2b U+008b +0x2c U+008c +0x2d U+0005 +0x2e U+0006 +0x2f U+0007 +0x30 U+0090 +0x31 U+0091 +0x32 U+0016 +0x33 U+0093 +0x34 U+0094 +0x35 U+0095 +0x36 U+0096 +0x37 U+0004 +0x38 U+0098 +0x39 U+0099 +0x3a U+009a +0x3b U+009b +0x3c U+0014 +0x3d U+0015 +0x3e U+009e +0x3f U+001a +0x40 U+0020 +0x41 U+00a0 +0x42 U+0161 +0x43 U+00e4 +0x44 U+0105 +0x45 U+012f +0x46 U+016b +0x47 U+00e5 +0x48 U+0113 +0x49 U+017e +0x4a U+00a2 +0x4b U+002e +0x4c U+003c +0x4d U+0028 +0x4e U+002b +0x4f U+007c +0x50 U+0026 +0x51 U+00e9 +0x52 U+0119 +0x53 U+0117 +0x54 U+010d +0x55 U+0173 +0x56 U+201e +0x57 U+201c +0x58 U+0123 +0x59 U+00df +0x5a U+0021 +0x5b U+0024 +0x5c U+002a +0x5d U+0029 +0x5e U+003b +0x5f U+00ac +0x60 U+002d +0x61 U+002f +0x62 U+0160 +0x63 U+00c4 +0x64 U+0104 +0x65 U+012e +0x66 U+016a +0x67 U+00c5 +0x68 U+0112 +0x69 U+017d +0x6a U+00a6 +0x6b U+002c +0x6c U+0025 +0x6d U+005f +0x6e U+003e +0x6f U+003f +0x70 U+00f8 +0x71 U+00c9 +0x72 U+0118 +0x73 U+0116 +0x74 U+010c +0x75 U+0172 +0x76 U+012a +0x77 U+013b +0x78 U+0122 +0x79 U+0060 +0x7a U+003a +0x7b U+0023 +0x7c U+0040 +0x7d U+0027 +0x7e U+003d +0x7f U+0022 +0x80 U+00d8 +0x81 U+0061 +0x82 U+0062 +0x83 U+0063 +0x84 U+0064 +0x85 U+0065 +0x86 U+0066 +0x87 U+0067 +0x88 U+0068 +0x89 U+0069 +0x8a U+00ab +0x8b U+00bb +0x8c U+0101 +0x8d U+017c +0x8e U+0144 +0x8f U+00b1 +0x90 U+00b0 +0x91 U+006a +0x92 U+006b +0x93 U+006c +0x94 U+006d +0x95 U+006e +0x96 U+006f +0x97 U+0070 +0x98 U+0071 +0x99 U+0072 +0x9a U+0156 +0x9b U+0157 +0x9c U+00e6 +0x9d U+0137 +0x9e U+00c6 +0x9f U+00a4 +0xa0 U+00b5 +0xa1 U+007e +0xa2 U+0073 +0xa3 U+0074 +0xa4 U+0075 +0xa5 U+0076 +0xa6 U+0077 +0xa7 U+0078 +0xa8 U+0079 +0xa9 U+007a +0xaa U+201d +0xab U+017a +0xac U+0100 +0xad U+017b +0xae U+0143 +0xaf U+00ae +0xb0 U+005e +0xb1 U+00a3 +0xb2 U+012b +0xb3 U+00b7 +0xb4 U+00a9 +0xb5 U+00a7 +0xb6 U+00b6 +0xb7 U+00bc +0xb8 U+00bd +0xb9 U+00be +0xba U+005b +0xbb U+005d +0xbc U+0179 +0xbd U+0136 +0xbe U+013c +0xbf U+00d7 +0xc0 U+007b +0xc1 U+0041 +0xc2 U+0042 +0xc3 U+0043 +0xc4 U+0044 +0xc5 U+0045 +0xc6 U+0046 +0xc7 U+0047 +0xc8 U+0048 +0xc9 U+0049 +0xca U+00ad +0xcb U+014d +0xcc U+00f6 +0xcd U+0146 +0xce U+00f3 +0xcf U+00f5 +0xd0 U+007d +0xd1 U+004a +0xd2 U+004b +0xd3 U+004c +0xd4 U+004d +0xd5 U+004e +0xd6 U+004f +0xd7 U+0050 +0xd8 U+0051 +0xd9 U+0052 +0xda U+00b9 +0xdb U+0107 +0xdc U+00fc +0xdd U+0142 +0xde U+015b +0xdf U+2019 +0xe0 U+005c +0xe1 U+00f7 +0xe2 U+0053 +0xe3 U+0054 +0xe4 U+0055 +0xe5 U+0056 +0xe6 U+0057 +0xe7 U+0058 +0xe8 U+0059 +0xe9 U+005a +0xea U+00b2 +0xeb U+014c +0xec U+00d6 +0xed U+0145 +0xee U+00d3 +0xef U+00d5 +0xf0 U+0030 +0xf1 U+0031 +0xf2 U+0032 +0xf3 U+0033 +0xf4 U+0034 +0xf5 U+0035 +0xf6 U+0036 +0xf7 U+0037 +0xf8 U+0038 +0xf9 U+0039 +0xfa U+00b3 +0xfb U+0106 +0xfc U+00dc +0xfd U+0141 +0xfe U+015a +0xff U+009f diff --git a/jdk/make/tools/CharsetMapping/IBM1112.nr b/jdk/make/tools/CharsetMapping/IBM1112.nr new file mode 100644 index 00000000000..675451906d4 --- /dev/null +++ b/jdk/make/tools/CharsetMapping/IBM1112.nr @@ -0,0 +1 @@ +0x25 U+000a diff --git a/jdk/make/tools/CharsetMapping/IBM1122.c2b b/jdk/make/tools/CharsetMapping/IBM1122.c2b new file mode 100644 index 00000000000..6cb38028124 --- /dev/null +++ b/jdk/make/tools/CharsetMapping/IBM1122.c2b @@ -0,0 +1 @@ +0x15 U+0085 diff --git a/jdk/make/tools/CharsetMapping/IBM1122.map b/jdk/make/tools/CharsetMapping/IBM1122.map new file mode 100644 index 00000000000..3dfb45f0de5 --- /dev/null +++ b/jdk/make/tools/CharsetMapping/IBM1122.map @@ -0,0 +1,257 @@ +#Generated from IBM1122.java +0x00 U+0000 +0x01 U+0001 +0x02 U+0002 +0x03 U+0003 +0x04 U+009c +0x05 U+0009 +0x06 U+0086 +0x07 U+007f +0x08 U+0097 +0x09 U+008d +0x0a U+008e +0x0b U+000b +0x0c U+000c +0x0d U+000d +0x0e U+000e +0x0f U+000f +0x10 U+0010 +0x11 U+0011 +0x12 U+0012 +0x13 U+0013 +0x14 U+009d +0x15 U+000a +0x16 U+0008 +0x17 U+0087 +0x18 U+0018 +0x19 U+0019 +0x1a U+0092 +0x1b U+008f +0x1c U+001c +0x1d U+001d +0x1e U+001e +0x1f U+001f +0x20 U+0080 +0x21 U+0081 +0x22 U+0082 +0x23 U+0083 +0x24 U+0084 +0x25 U+000a +0x26 U+0017 +0x27 U+001b +0x28 U+0088 +0x29 U+0089 +0x2a U+008a +0x2b U+008b +0x2c U+008c +0x2d U+0005 +0x2e U+0006 +0x2f U+0007 +0x30 U+0090 +0x31 U+0091 +0x32 U+0016 +0x33 U+0093 +0x34 U+0094 +0x35 U+0095 +0x36 U+0096 +0x37 U+0004 +0x38 U+0098 +0x39 U+0099 +0x3a U+009a +0x3b U+009b +0x3c U+0014 +0x3d U+0015 +0x3e U+009e +0x3f U+001a +0x40 U+0020 +0x41 U+00a0 +0x42 U+00e2 +0x43 U+007b +0x44 U+00e0 +0x45 U+00e1 +0x46 U+00e3 +0x47 U+007d +0x48 U+00e7 +0x49 U+00f1 +0x4a U+00a7 +0x4b U+002e +0x4c U+003c +0x4d U+0028 +0x4e U+002b +0x4f U+0021 +0x50 U+0026 +0x51 U+0060 +0x52 U+00ea +0x53 U+00eb +0x54 U+00e8 +0x55 U+00ed +0x56 U+00ee +0x57 U+00ef +0x58 U+00ec +0x59 U+00df +0x5a U+00a4 +0x5b U+00c5 +0x5c U+002a +0x5d U+0029 +0x5e U+003b +0x5f U+005e +0x60 U+002d +0x61 U+002f +0x62 U+00c2 +0x63 U+0023 +0x64 U+00c0 +0x65 U+00c1 +0x66 U+00c3 +0x67 U+0024 +0x68 U+00c7 +0x69 U+00d1 +0x6a U+00f6 +0x6b U+002c +0x6c U+0025 +0x6d U+005f +0x6e U+003e +0x6f U+003f +0x70 U+00f8 +0x71 U+005c +0x72 U+00ca +0x73 U+00cb +0x74 U+00c8 +0x75 U+00cd +0x76 U+00ce +0x77 U+00cf +0x78 U+00cc +0x79 U+00e9 +0x7a U+003a +0x7b U+00c4 +0x7c U+00d6 +0x7d U+0027 +0x7e U+003d +0x7f U+0022 +0x80 U+00d8 +0x81 U+0061 +0x82 U+0062 +0x83 U+0063 +0x84 U+0064 +0x85 U+0065 +0x86 U+0066 +0x87 U+0067 +0x88 U+0068 +0x89 U+0069 +0x8a U+00ab +0x8b U+00bb +0x8c U+0161 +0x8d U+00fd +0x8e U+017e +0x8f U+00b1 +0x90 U+00b0 +0x91 U+006a +0x92 U+006b +0x93 U+006c +0x94 U+006d +0x95 U+006e +0x96 U+006f +0x97 U+0070 +0x98 U+0071 +0x99 U+0072 +0x9a U+00aa +0x9b U+00ba +0x9c U+00e6 +0x9d U+00b8 +0x9e U+00c6 +0x9f U+005d +0xa0 U+00b5 +0xa1 U+00fc +0xa2 U+0073 +0xa3 U+0074 +0xa4 U+0075 +0xa5 U+0076 +0xa6 U+0077 +0xa7 U+0078 +0xa8 U+0079 +0xa9 U+007a +0xaa U+00a1 +0xab U+00bf +0xac U+0160 +0xad U+00dd +0xae U+017d +0xaf U+00ae +0xb0 U+00a2 +0xb1 U+00a3 +0xb2 U+00a5 +0xb3 U+00b7 +0xb4 U+00a9 +0xb5 U+005b +0xb6 U+00b6 +0xb7 U+00bc +0xb8 U+00bd +0xb9 U+00be +0xba U+00ac +0xbb U+007c +0xbc U+203e +0xbd U+00a8 +0xbe U+00b4 +0xbf U+00d7 +0xc0 U+00e4 +0xc1 U+0041 +0xc2 U+0042 +0xc3 U+0043 +0xc4 U+0044 +0xc5 U+0045 +0xc6 U+0046 +0xc7 U+0047 +0xc8 U+0048 +0xc9 U+0049 +0xca U+00ad +0xcb U+00f4 +0xcc U+00a6 +0xcd U+00f2 +0xce U+00f3 +0xcf U+00f5 +0xd0 U+00e5 +0xd1 U+004a +0xd2 U+004b +0xd3 U+004c +0xd4 U+004d +0xd5 U+004e +0xd6 U+004f +0xd7 U+0050 +0xd8 U+0051 +0xd9 U+0052 +0xda U+00b9 +0xdb U+00fb +0xdc U+007e +0xdd U+00f9 +0xde U+00fa +0xdf U+00ff +0xe0 U+00c9 +0xe1 U+00f7 +0xe2 U+0053 +0xe3 U+0054 +0xe4 U+0055 +0xe5 U+0056 +0xe6 U+0057 +0xe7 U+0058 +0xe8 U+0059 +0xe9 U+005a +0xea U+00b2 +0xeb U+00d4 +0xec U+0040 +0xed U+00d2 +0xee U+00d3 +0xef U+00d5 +0xf0 U+0030 +0xf1 U+0031 +0xf2 U+0032 +0xf3 U+0033 +0xf4 U+0034 +0xf5 U+0035 +0xf6 U+0036 +0xf7 U+0037 +0xf8 U+0038 +0xf9 U+0039 +0xfa U+00b3 +0xfb U+00db +0xfc U+00dc +0xfd U+00d9 +0xfe U+00da +0xff U+009f diff --git a/jdk/make/tools/CharsetMapping/IBM1122.nr b/jdk/make/tools/CharsetMapping/IBM1122.nr new file mode 100644 index 00000000000..675451906d4 --- /dev/null +++ b/jdk/make/tools/CharsetMapping/IBM1122.nr @@ -0,0 +1 @@ +0x25 U+000a diff --git a/jdk/make/tools/CharsetMapping/IBM1123.c2b b/jdk/make/tools/CharsetMapping/IBM1123.c2b new file mode 100644 index 00000000000..6cb38028124 --- /dev/null +++ b/jdk/make/tools/CharsetMapping/IBM1123.c2b @@ -0,0 +1 @@ +0x15 U+0085 diff --git a/jdk/make/tools/CharsetMapping/IBM1123.map b/jdk/make/tools/CharsetMapping/IBM1123.map new file mode 100644 index 00000000000..16857071ab8 --- /dev/null +++ b/jdk/make/tools/CharsetMapping/IBM1123.map @@ -0,0 +1,257 @@ +#Generated from IBM1123.java +0x00 U+0000 +0x01 U+0001 +0x02 U+0002 +0x03 U+0003 +0x04 U+009c +0x05 U+0009 +0x06 U+0086 +0x07 U+007f +0x08 U+0097 +0x09 U+008d +0x0a U+008e +0x0b U+000b +0x0c U+000c +0x0d U+000d +0x0e U+000e +0x0f U+000f +0x10 U+0010 +0x11 U+0011 +0x12 U+0012 +0x13 U+0013 +0x14 U+009d +0x15 U+000a +0x16 U+0008 +0x17 U+0087 +0x18 U+0018 +0x19 U+0019 +0x1a U+0092 +0x1b U+008f +0x1c U+001c +0x1d U+001d +0x1e U+001e +0x1f U+001f +0x20 U+0080 +0x21 U+0081 +0x22 U+0082 +0x23 U+0083 +0x24 U+0084 +0x25 U+000a +0x26 U+0017 +0x27 U+001b +0x28 U+0088 +0x29 U+0089 +0x2a U+008a +0x2b U+008b +0x2c U+008c +0x2d U+0005 +0x2e U+0006 +0x2f U+0007 +0x30 U+0090 +0x31 U+0091 +0x32 U+0016 +0x33 U+0093 +0x34 U+0094 +0x35 U+0095 +0x36 U+0096 +0x37 U+0004 +0x38 U+0098 +0x39 U+0099 +0x3a U+009a +0x3b U+009b +0x3c U+0014 +0x3d U+0015 +0x3e U+009e +0x3f U+001a +0x40 U+0020 +0x41 U+00a0 +0x42 U+0452 +0x43 U+0491 +0x44 U+0451 +0x45 U+0454 +0x46 U+0455 +0x47 U+0456 +0x48 U+0457 +0x49 U+0458 +0x4a U+005b +0x4b U+002e +0x4c U+003c +0x4d U+0028 +0x4e U+002b +0x4f U+0021 +0x50 U+0026 +0x51 U+0459 +0x52 U+045a +0x53 U+045b +0x54 U+045c +0x55 U+045e +0x56 U+045f +0x57 U+042a +0x58 U+2116 +0x59 U+0402 +0x5a U+005d +0x5b U+0024 +0x5c U+002a +0x5d U+0029 +0x5e U+003b +0x5f U+005e +0x60 U+002d +0x61 U+002f +0x62 U+0490 +0x63 U+0401 +0x64 U+0404 +0x65 U+0405 +0x66 U+0406 +0x67 U+0407 +0x68 U+0408 +0x69 U+0409 +0x6a U+007c +0x6b U+002c +0x6c U+0025 +0x6d U+005f +0x6e U+003e +0x6f U+003f +0x70 U+040a +0x71 U+040b +0x72 U+040c +0x73 U+00ad +0x74 U+040e +0x75 U+040f +0x76 U+044e +0x77 U+0430 +0x78 U+0431 +0x79 U+0060 +0x7a U+003a +0x7b U+0023 +0x7c U+0040 +0x7d U+0027 +0x7e U+003d +0x7f U+0022 +0x80 U+0446 +0x81 U+0061 +0x82 U+0062 +0x83 U+0063 +0x84 U+0064 +0x85 U+0065 +0x86 U+0066 +0x87 U+0067 +0x88 U+0068 +0x89 U+0069 +0x8a U+0434 +0x8b U+0435 +0x8c U+0444 +0x8d U+0433 +0x8e U+0445 +0x8f U+0438 +0x90 U+0439 +0x91 U+006a +0x92 U+006b +0x93 U+006c +0x94 U+006d +0x95 U+006e +0x96 U+006f +0x97 U+0070 +0x98 U+0071 +0x99 U+0072 +0x9a U+043a +0x9b U+043b +0x9c U+043c +0x9d U+043d +0x9e U+043e +0x9f U+043f +0xa0 U+044f +0xa1 U+007e +0xa2 U+0073 +0xa3 U+0074 +0xa4 U+0075 +0xa5 U+0076 +0xa6 U+0077 +0xa7 U+0078 +0xa8 U+0079 +0xa9 U+007a +0xaa U+0440 +0xab U+0441 +0xac U+0442 +0xad U+0443 +0xae U+0436 +0xaf U+0432 +0xb0 U+044c +0xb1 U+044b +0xb2 U+0437 +0xb3 U+0448 +0xb4 U+044d +0xb5 U+0449 +0xb6 U+0447 +0xb7 U+044a +0xb8 U+042e +0xb9 U+0410 +0xba U+0411 +0xbb U+0426 +0xbc U+0414 +0xbd U+0415 +0xbe U+0424 +0xbf U+0413 +0xc0 U+007b +0xc1 U+0041 +0xc2 U+0042 +0xc3 U+0043 +0xc4 U+0044 +0xc5 U+0045 +0xc6 U+0046 +0xc7 U+0047 +0xc8 U+0048 +0xc9 U+0049 +0xca U+0425 +0xcb U+0418 +0xcc U+0419 +0xcd U+041a +0xce U+041b +0xcf U+041c +0xd0 U+007d +0xd1 U+004a +0xd2 U+004b +0xd3 U+004c +0xd4 U+004d +0xd5 U+004e +0xd6 U+004f +0xd7 U+0050 +0xd8 U+0051 +0xd9 U+0052 +0xda U+041d +0xdb U+041e +0xdc U+041f +0xdd U+042f +0xde U+0420 +0xdf U+0421 +0xe0 U+005c +0xe1 U+00a7 +0xe2 U+0053 +0xe3 U+0054 +0xe4 U+0055 +0xe5 U+0056 +0xe6 U+0057 +0xe7 U+0058 +0xe8 U+0059 +0xe9 U+005a +0xea U+0422 +0xeb U+0423 +0xec U+0416 +0xed U+0412 +0xee U+042c +0xef U+042b +0xf0 U+0030 +0xf1 U+0031 +0xf2 U+0032 +0xf3 U+0033 +0xf4 U+0034 +0xf5 U+0035 +0xf6 U+0036 +0xf7 U+0037 +0xf8 U+0038 +0xf9 U+0039 +0xfa U+0417 +0xfb U+0428 +0xfc U+042d +0xfd U+0429 +0xfe U+0427 +0xff U+009f diff --git a/jdk/make/tools/CharsetMapping/IBM1123.nr b/jdk/make/tools/CharsetMapping/IBM1123.nr new file mode 100644 index 00000000000..675451906d4 --- /dev/null +++ b/jdk/make/tools/CharsetMapping/IBM1123.nr @@ -0,0 +1 @@ +0x25 U+000a diff --git a/jdk/make/tools/CharsetMapping/IBM1124.map b/jdk/make/tools/CharsetMapping/IBM1124.map new file mode 100644 index 00000000000..4cca8021b11 --- /dev/null +++ b/jdk/make/tools/CharsetMapping/IBM1124.map @@ -0,0 +1,257 @@ +#Generated from IBM1124.java +0x00 U+0000 +0x01 U+0001 +0x02 U+0002 +0x03 U+0003 +0x04 U+0004 +0x05 U+0005 +0x06 U+0006 +0x07 U+0007 +0x08 U+0008 +0x09 U+0009 +0x0a U+000a +0x0b U+000b +0x0c U+000c +0x0d U+000d +0x0e U+000e +0x0f U+000f +0x10 U+0010 +0x11 U+0011 +0x12 U+0012 +0x13 U+0013 +0x14 U+0014 +0x15 U+0015 +0x16 U+0016 +0x17 U+0017 +0x18 U+0018 +0x19 U+0019 +0x1a U+001a +0x1b U+001b +0x1c U+001c +0x1d U+001d +0x1e U+001e +0x1f U+001f +0x20 U+0020 +0x21 U+0021 +0x22 U+0022 +0x23 U+0023 +0x24 U+0024 +0x25 U+0025 +0x26 U+0026 +0x27 U+0027 +0x28 U+0028 +0x29 U+0029 +0x2a U+002a +0x2b U+002b +0x2c U+002c +0x2d U+002d +0x2e U+002e +0x2f U+002f +0x30 U+0030 +0x31 U+0031 +0x32 U+0032 +0x33 U+0033 +0x34 U+0034 +0x35 U+0035 +0x36 U+0036 +0x37 U+0037 +0x38 U+0038 +0x39 U+0039 +0x3a U+003a +0x3b U+003b +0x3c U+003c +0x3d U+003d +0x3e U+003e +0x3f U+003f +0x40 U+0040 +0x41 U+0041 +0x42 U+0042 +0x43 U+0043 +0x44 U+0044 +0x45 U+0045 +0x46 U+0046 +0x47 U+0047 +0x48 U+0048 +0x49 U+0049 +0x4a U+004a +0x4b U+004b +0x4c U+004c +0x4d U+004d +0x4e U+004e +0x4f U+004f +0x50 U+0050 +0x51 U+0051 +0x52 U+0052 +0x53 U+0053 +0x54 U+0054 +0x55 U+0055 +0x56 U+0056 +0x57 U+0057 +0x58 U+0058 +0x59 U+0059 +0x5a U+005a +0x5b U+005b +0x5c U+005c +0x5d U+005d +0x5e U+005e +0x5f U+005f +0x60 U+0060 +0x61 U+0061 +0x62 U+0062 +0x63 U+0063 +0x64 U+0064 +0x65 U+0065 +0x66 U+0066 +0x67 U+0067 +0x68 U+0068 +0x69 U+0069 +0x6a U+006a +0x6b U+006b +0x6c U+006c +0x6d U+006d +0x6e U+006e +0x6f U+006f +0x70 U+0070 +0x71 U+0071 +0x72 U+0072 +0x73 U+0073 +0x74 U+0074 +0x75 U+0075 +0x76 U+0076 +0x77 U+0077 +0x78 U+0078 +0x79 U+0079 +0x7a U+007a +0x7b U+007b +0x7c U+007c +0x7d U+007d +0x7e U+007e +0x7f U+007f +0x80 U+0080 +0x81 U+0081 +0x82 U+0082 +0x83 U+0083 +0x84 U+0084 +0x85 U+0085 +0x86 U+0086 +0x87 U+0087 +0x88 U+0088 +0x89 U+0089 +0x8a U+008a +0x8b U+008b +0x8c U+008c +0x8d U+008d +0x8e U+008e +0x8f U+008f +0x90 U+0090 +0x91 U+0091 +0x92 U+0092 +0x93 U+0093 +0x94 U+0094 +0x95 U+0095 +0x96 U+0096 +0x97 U+0097 +0x98 U+0098 +0x99 U+0099 +0x9a U+009a +0x9b U+009b +0x9c U+009c +0x9d U+009d +0x9e U+009e +0x9f U+009f +0xa0 U+00a0 +0xa1 U+0401 +0xa2 U+0402 +0xa3 U+0490 +0xa4 U+0404 +0xa5 U+0405 +0xa6 U+0406 +0xa7 U+0407 +0xa8 U+0408 +0xa9 U+0409 +0xaa U+040a +0xab U+040b +0xac U+040c +0xad U+00ad +0xae U+040e +0xaf U+040f +0xb0 U+0410 +0xb1 U+0411 +0xb2 U+0412 +0xb3 U+0413 +0xb4 U+0414 +0xb5 U+0415 +0xb6 U+0416 +0xb7 U+0417 +0xb8 U+0418 +0xb9 U+0419 +0xba U+041a +0xbb U+041b +0xbc U+041c +0xbd U+041d +0xbe U+041e +0xbf U+041f +0xc0 U+0420 +0xc1 U+0421 +0xc2 U+0422 +0xc3 U+0423 +0xc4 U+0424 +0xc5 U+0425 +0xc6 U+0426 +0xc7 U+0427 +0xc8 U+0428 +0xc9 U+0429 +0xca U+042a +0xcb U+042b +0xcc U+042c +0xcd U+042d +0xce U+042e +0xcf U+042f +0xd0 U+0430 +0xd1 U+0431 +0xd2 U+0432 +0xd3 U+0433 +0xd4 U+0434 +0xd5 U+0435 +0xd6 U+0436 +0xd7 U+0437 +0xd8 U+0438 +0xd9 U+0439 +0xda U+043a +0xdb U+043b +0xdc U+043c +0xdd U+043d +0xde U+043e +0xdf U+043f +0xe0 U+0440 +0xe1 U+0441 +0xe2 U+0442 +0xe3 U+0443 +0xe4 U+0444 +0xe5 U+0445 +0xe6 U+0446 +0xe7 U+0447 +0xe8 U+0448 +0xe9 U+0449 +0xea U+044a +0xeb U+044b +0xec U+044c +0xed U+044d +0xee U+044e +0xef U+044f +0xf0 U+2116 +0xf1 U+0451 +0xf2 U+0452 +0xf3 U+0491 +0xf4 U+0454 +0xf5 U+0455 +0xf6 U+0456 +0xf7 U+0457 +0xf8 U+0458 +0xf9 U+0459 +0xfa U+045a +0xfb U+045b +0xfc U+045c +0xfd U+00a7 +0xfe U+045e +0xff U+045f diff --git a/jdk/make/tools/CharsetMapping/IBM1140.c2b b/jdk/make/tools/CharsetMapping/IBM1140.c2b new file mode 100644 index 00000000000..6cb38028124 --- /dev/null +++ b/jdk/make/tools/CharsetMapping/IBM1140.c2b @@ -0,0 +1 @@ +0x15 U+0085 diff --git a/jdk/make/tools/CharsetMapping/IBM1140.map b/jdk/make/tools/CharsetMapping/IBM1140.map new file mode 100644 index 00000000000..6a79f6cba5a --- /dev/null +++ b/jdk/make/tools/CharsetMapping/IBM1140.map @@ -0,0 +1,257 @@ +#Generated from IBM037.java with 0x9f <-> u+20ac +0x00 U+0000 +0x01 U+0001 +0x02 U+0002 +0x03 U+0003 +0x04 U+009c +0x05 U+0009 +0x06 U+0086 +0x07 U+007f +0x08 U+0097 +0x09 U+008d +0x0a U+008e +0x0b U+000b +0x0c U+000c +0x0d U+000d +0x0e U+000e +0x0f U+000f +0x10 U+0010 +0x11 U+0011 +0x12 U+0012 +0x13 U+0013 +0x14 U+009d +0x15 U+000a +0x16 U+0008 +0x17 U+0087 +0x18 U+0018 +0x19 U+0019 +0x1a U+0092 +0x1b U+008f +0x1c U+001c +0x1d U+001d +0x1e U+001e +0x1f U+001f +0x20 U+0080 +0x21 U+0081 +0x22 U+0082 +0x23 U+0083 +0x24 U+0084 +0x25 U+000a +0x26 U+0017 +0x27 U+001b +0x28 U+0088 +0x29 U+0089 +0x2a U+008a +0x2b U+008b +0x2c U+008c +0x2d U+0005 +0x2e U+0006 +0x2f U+0007 +0x30 U+0090 +0x31 U+0091 +0x32 U+0016 +0x33 U+0093 +0x34 U+0094 +0x35 U+0095 +0x36 U+0096 +0x37 U+0004 +0x38 U+0098 +0x39 U+0099 +0x3a U+009a +0x3b U+009b +0x3c U+0014 +0x3d U+0015 +0x3e U+009e +0x3f U+001a +0x40 U+0020 +0x41 U+00a0 +0x42 U+00e2 +0x43 U+00e4 +0x44 U+00e0 +0x45 U+00e1 +0x46 U+00e3 +0x47 U+00e5 +0x48 U+00e7 +0x49 U+00f1 +0x4a U+00a2 +0x4b U+002e +0x4c U+003c +0x4d U+0028 +0x4e U+002b +0x4f U+007c +0x50 U+0026 +0x51 U+00e9 +0x52 U+00ea +0x53 U+00eb +0x54 U+00e8 +0x55 U+00ed +0x56 U+00ee +0x57 U+00ef +0x58 U+00ec +0x59 U+00df +0x5a U+0021 +0x5b U+0024 +0x5c U+002a +0x5d U+0029 +0x5e U+003b +0x5f U+00ac +0x60 U+002d +0x61 U+002f +0x62 U+00c2 +0x63 U+00c4 +0x64 U+00c0 +0x65 U+00c1 +0x66 U+00c3 +0x67 U+00c5 +0x68 U+00c7 +0x69 U+00d1 +0x6a U+00a6 +0x6b U+002c +0x6c U+0025 +0x6d U+005f +0x6e U+003e +0x6f U+003f +0x70 U+00f8 +0x71 U+00c9 +0x72 U+00ca +0x73 U+00cb +0x74 U+00c8 +0x75 U+00cd +0x76 U+00ce +0x77 U+00cf +0x78 U+00cc +0x79 U+0060 +0x7a U+003a +0x7b U+0023 +0x7c U+0040 +0x7d U+0027 +0x7e U+003d +0x7f U+0022 +0x80 U+00d8 +0x81 U+0061 +0x82 U+0062 +0x83 U+0063 +0x84 U+0064 +0x85 U+0065 +0x86 U+0066 +0x87 U+0067 +0x88 U+0068 +0x89 U+0069 +0x8a U+00ab +0x8b U+00bb +0x8c U+00f0 +0x8d U+00fd +0x8e U+00fe +0x8f U+00b1 +0x90 U+00b0 +0x91 U+006a +0x92 U+006b +0x93 U+006c +0x94 U+006d +0x95 U+006e +0x96 U+006f +0x97 U+0070 +0x98 U+0071 +0x99 U+0072 +0x9a U+00aa +0x9b U+00ba +0x9c U+00e6 +0x9d U+00b8 +0x9e U+00c6 +0x9f U+20ac +0xa0 U+00b5 +0xa1 U+007e +0xa2 U+0073 +0xa3 U+0074 +0xa4 U+0075 +0xa5 U+0076 +0xa6 U+0077 +0xa7 U+0078 +0xa8 U+0079 +0xa9 U+007a +0xaa U+00a1 +0xab U+00bf +0xac U+00d0 +0xad U+00dd +0xae U+00de +0xaf U+00ae +0xb0 U+005e +0xb1 U+00a3 +0xb2 U+00a5 +0xb3 U+00b7 +0xb4 U+00a9 +0xb5 U+00a7 +0xb6 U+00b6 +0xb7 U+00bc +0xb8 U+00bd +0xb9 U+00be +0xba U+005b +0xbb U+005d +0xbc U+00af +0xbd U+00a8 +0xbe U+00b4 +0xbf U+00d7 +0xc0 U+007b +0xc1 U+0041 +0xc2 U+0042 +0xc3 U+0043 +0xc4 U+0044 +0xc5 U+0045 +0xc6 U+0046 +0xc7 U+0047 +0xc8 U+0048 +0xc9 U+0049 +0xca U+00ad +0xcb U+00f4 +0xcc U+00f6 +0xcd U+00f2 +0xce U+00f3 +0xcf U+00f5 +0xd0 U+007d +0xd1 U+004a +0xd2 U+004b +0xd3 U+004c +0xd4 U+004d +0xd5 U+004e +0xd6 U+004f +0xd7 U+0050 +0xd8 U+0051 +0xd9 U+0052 +0xda U+00b9 +0xdb U+00fb +0xdc U+00fc +0xdd U+00f9 +0xde U+00fa +0xdf U+00ff +0xe0 U+005c +0xe1 U+00f7 +0xe2 U+0053 +0xe3 U+0054 +0xe4 U+0055 +0xe5 U+0056 +0xe6 U+0057 +0xe7 U+0058 +0xe8 U+0059 +0xe9 U+005a +0xea U+00b2 +0xeb U+00d4 +0xec U+00d6 +0xed U+00d2 +0xee U+00d3 +0xef U+00d5 +0xf0 U+0030 +0xf1 U+0031 +0xf2 U+0032 +0xf3 U+0033 +0xf4 U+0034 +0xf5 U+0035 +0xf6 U+0036 +0xf7 U+0037 +0xf8 U+0038 +0xf9 U+0039 +0xfa U+00b3 +0xfb U+00db +0xfc U+00dc +0xfd U+00d9 +0xfe U+00da +0xff U+009f diff --git a/jdk/make/tools/CharsetMapping/IBM1141.c2b b/jdk/make/tools/CharsetMapping/IBM1141.c2b new file mode 100644 index 00000000000..6cb38028124 --- /dev/null +++ b/jdk/make/tools/CharsetMapping/IBM1141.c2b @@ -0,0 +1 @@ +0x15 U+0085 diff --git a/jdk/make/tools/CharsetMapping/IBM1141.map b/jdk/make/tools/CharsetMapping/IBM1141.map new file mode 100644 index 00000000000..b524b109f2b --- /dev/null +++ b/jdk/make/tools/CharsetMapping/IBM1141.map @@ -0,0 +1,257 @@ +#Generated from IBM273.java with 0x9f <-> u+20ac +0x00 U+0000 +0x01 U+0001 +0x02 U+0002 +0x03 U+0003 +0x04 U+009c +0x05 U+0009 +0x06 U+0086 +0x07 U+007f +0x08 U+0097 +0x09 U+008d +0x0a U+008e +0x0b U+000b +0x0c U+000c +0x0d U+000d +0x0e U+000e +0x0f U+000f +0x10 U+0010 +0x11 U+0011 +0x12 U+0012 +0x13 U+0013 +0x14 U+009d +0x15 U+000a +0x16 U+0008 +0x17 U+0087 +0x18 U+0018 +0x19 U+0019 +0x1a U+0092 +0x1b U+008f +0x1c U+001c +0x1d U+001d +0x1e U+001e +0x1f U+001f +0x20 U+0080 +0x21 U+0081 +0x22 U+0082 +0x23 U+0083 +0x24 U+0084 +0x25 U+000a +0x26 U+0017 +0x27 U+001b +0x28 U+0088 +0x29 U+0089 +0x2a U+008a +0x2b U+008b +0x2c U+008c +0x2d U+0005 +0x2e U+0006 +0x2f U+0007 +0x30 U+0090 +0x31 U+0091 +0x32 U+0016 +0x33 U+0093 +0x34 U+0094 +0x35 U+0095 +0x36 U+0096 +0x37 U+0004 +0x38 U+0098 +0x39 U+0099 +0x3a U+009a +0x3b U+009b +0x3c U+0014 +0x3d U+0015 +0x3e U+009e +0x3f U+001a +0x40 U+0020 +0x41 U+00a0 +0x42 U+00e2 +0x43 U+007b +0x44 U+00e0 +0x45 U+00e1 +0x46 U+00e3 +0x47 U+00e5 +0x48 U+00e7 +0x49 U+00f1 +0x4a U+00c4 +0x4b U+002e +0x4c U+003c +0x4d U+0028 +0x4e U+002b +0x4f U+0021 +0x50 U+0026 +0x51 U+00e9 +0x52 U+00ea +0x53 U+00eb +0x54 U+00e8 +0x55 U+00ed +0x56 U+00ee +0x57 U+00ef +0x58 U+00ec +0x59 U+007e +0x5a U+00dc +0x5b U+0024 +0x5c U+002a +0x5d U+0029 +0x5e U+003b +0x5f U+005e +0x60 U+002d +0x61 U+002f +0x62 U+00c2 +0x63 U+005b +0x64 U+00c0 +0x65 U+00c1 +0x66 U+00c3 +0x67 U+00c5 +0x68 U+00c7 +0x69 U+00d1 +0x6a U+00f6 +0x6b U+002c +0x6c U+0025 +0x6d U+005f +0x6e U+003e +0x6f U+003f +0x70 U+00f8 +0x71 U+00c9 +0x72 U+00ca +0x73 U+00cb +0x74 U+00c8 +0x75 U+00cd +0x76 U+00ce +0x77 U+00cf +0x78 U+00cc +0x79 U+0060 +0x7a U+003a +0x7b U+0023 +0x7c U+00a7 +0x7d U+0027 +0x7e U+003d +0x7f U+0022 +0x80 U+00d8 +0x81 U+0061 +0x82 U+0062 +0x83 U+0063 +0x84 U+0064 +0x85 U+0065 +0x86 U+0066 +0x87 U+0067 +0x88 U+0068 +0x89 U+0069 +0x8a U+00ab +0x8b U+00bb +0x8c U+00f0 +0x8d U+00fd +0x8e U+00fe +0x8f U+00b1 +0x90 U+00b0 +0x91 U+006a +0x92 U+006b +0x93 U+006c +0x94 U+006d +0x95 U+006e +0x96 U+006f +0x97 U+0070 +0x98 U+0071 +0x99 U+0072 +0x9a U+00aa +0x9b U+00ba +0x9c U+00e6 +0x9d U+00b8 +0x9e U+00c6 +0x9f U+20ac +0xa0 U+00b5 +0xa1 U+00df +0xa2 U+0073 +0xa3 U+0074 +0xa4 U+0075 +0xa5 U+0076 +0xa6 U+0077 +0xa7 U+0078 +0xa8 U+0079 +0xa9 U+007a +0xaa U+00a1 +0xab U+00bf +0xac U+00d0 +0xad U+00dd +0xae U+00de +0xaf U+00ae +0xb0 U+00a2 +0xb1 U+00a3 +0xb2 U+00a5 +0xb3 U+00b7 +0xb4 U+00a9 +0xb5 U+0040 +0xb6 U+00b6 +0xb7 U+00bc +0xb8 U+00bd +0xb9 U+00be +0xba U+00ac +0xbb U+007c +0xbc U+00af +0xbd U+00a8 +0xbe U+00b4 +0xbf U+00d7 +0xc0 U+00e4 +0xc1 U+0041 +0xc2 U+0042 +0xc3 U+0043 +0xc4 U+0044 +0xc5 U+0045 +0xc6 U+0046 +0xc7 U+0047 +0xc8 U+0048 +0xc9 U+0049 +0xca U+00ad +0xcb U+00f4 +0xcc U+00a6 +0xcd U+00f2 +0xce U+00f3 +0xcf U+00f5 +0xd0 U+00fc +0xd1 U+004a +0xd2 U+004b +0xd3 U+004c +0xd4 U+004d +0xd5 U+004e +0xd6 U+004f +0xd7 U+0050 +0xd8 U+0051 +0xd9 U+0052 +0xda U+00b9 +0xdb U+00fb +0xdc U+007d +0xdd U+00f9 +0xde U+00fa +0xdf U+00ff +0xe0 U+00d6 +0xe1 U+00f7 +0xe2 U+0053 +0xe3 U+0054 +0xe4 U+0055 +0xe5 U+0056 +0xe6 U+0057 +0xe7 U+0058 +0xe8 U+0059 +0xe9 U+005a +0xea U+00b2 +0xeb U+00d4 +0xec U+005c +0xed U+00d2 +0xee U+00d3 +0xef U+00d5 +0xf0 U+0030 +0xf1 U+0031 +0xf2 U+0032 +0xf3 U+0033 +0xf4 U+0034 +0xf5 U+0035 +0xf6 U+0036 +0xf7 U+0037 +0xf8 U+0038 +0xf9 U+0039 +0xfa U+00b3 +0xfb U+00db +0xfc U+005d +0xfd U+00d9 +0xfe U+00da +0xff U+009f diff --git a/jdk/make/tools/CharsetMapping/IBM1142.c2b b/jdk/make/tools/CharsetMapping/IBM1142.c2b new file mode 100644 index 00000000000..6cb38028124 --- /dev/null +++ b/jdk/make/tools/CharsetMapping/IBM1142.c2b @@ -0,0 +1 @@ +0x15 U+0085 diff --git a/jdk/make/tools/CharsetMapping/IBM1142.map b/jdk/make/tools/CharsetMapping/IBM1142.map new file mode 100644 index 00000000000..8ebdb3b5d6a --- /dev/null +++ b/jdk/make/tools/CharsetMapping/IBM1142.map @@ -0,0 +1,257 @@ +#Generated from IBM277.java with 0x5a <-> u+20ac +0x00 U+0000 +0x01 U+0001 +0x02 U+0002 +0x03 U+0003 +0x04 U+009c +0x05 U+0009 +0x06 U+0086 +0x07 U+007f +0x08 U+0097 +0x09 U+008d +0x0a U+008e +0x0b U+000b +0x0c U+000c +0x0d U+000d +0x0e U+000e +0x0f U+000f +0x10 U+0010 +0x11 U+0011 +0x12 U+0012 +0x13 U+0013 +0x14 U+009d +0x15 U+000a +0x16 U+0008 +0x17 U+0087 +0x18 U+0018 +0x19 U+0019 +0x1a U+0092 +0x1b U+008f +0x1c U+001c +0x1d U+001d +0x1e U+001e +0x1f U+001f +0x20 U+0080 +0x21 U+0081 +0x22 U+0082 +0x23 U+0083 +0x24 U+0084 +0x25 U+000a +0x26 U+0017 +0x27 U+001b +0x28 U+0088 +0x29 U+0089 +0x2a U+008a +0x2b U+008b +0x2c U+008c +0x2d U+0005 +0x2e U+0006 +0x2f U+0007 +0x30 U+0090 +0x31 U+0091 +0x32 U+0016 +0x33 U+0093 +0x34 U+0094 +0x35 U+0095 +0x36 U+0096 +0x37 U+0004 +0x38 U+0098 +0x39 U+0099 +0x3a U+009a +0x3b U+009b +0x3c U+0014 +0x3d U+0015 +0x3e U+009e +0x3f U+001a +0x40 U+0020 +0x41 U+00a0 +0x42 U+00e2 +0x43 U+00e4 +0x44 U+00e0 +0x45 U+00e1 +0x46 U+00e3 +0x47 U+007d +0x48 U+00e7 +0x49 U+00f1 +0x4a U+0023 +0x4b U+002e +0x4c U+003c +0x4d U+0028 +0x4e U+002b +0x4f U+0021 +0x50 U+0026 +0x51 U+00e9 +0x52 U+00ea +0x53 U+00eb +0x54 U+00e8 +0x55 U+00ed +0x56 U+00ee +0x57 U+00ef +0x58 U+00ec +0x59 U+00df +0x5a U+20ac +0x5b U+00c5 +0x5c U+002a +0x5d U+0029 +0x5e U+003b +0x5f U+005e +0x60 U+002d +0x61 U+002f +0x62 U+00c2 +0x63 U+00c4 +0x64 U+00c0 +0x65 U+00c1 +0x66 U+00c3 +0x67 U+0024 +0x68 U+00c7 +0x69 U+00d1 +0x6a U+00f8 +0x6b U+002c +0x6c U+0025 +0x6d U+005f +0x6e U+003e +0x6f U+003f +0x70 U+00a6 +0x71 U+00c9 +0x72 U+00ca +0x73 U+00cb +0x74 U+00c8 +0x75 U+00cd +0x76 U+00ce +0x77 U+00cf +0x78 U+00cc +0x79 U+0060 +0x7a U+003a +0x7b U+00c6 +0x7c U+00d8 +0x7d U+0027 +0x7e U+003d +0x7f U+0022 +0x80 U+0040 +0x81 U+0061 +0x82 U+0062 +0x83 U+0063 +0x84 U+0064 +0x85 U+0065 +0x86 U+0066 +0x87 U+0067 +0x88 U+0068 +0x89 U+0069 +0x8a U+00ab +0x8b U+00bb +0x8c U+00f0 +0x8d U+00fd +0x8e U+00fe +0x8f U+00b1 +0x90 U+00b0 +0x91 U+006a +0x92 U+006b +0x93 U+006c +0x94 U+006d +0x95 U+006e +0x96 U+006f +0x97 U+0070 +0x98 U+0071 +0x99 U+0072 +0x9a U+00aa +0x9b U+00ba +0x9c U+007b +0x9d U+00b8 +0x9e U+005b +0x9f U+005d +0xa0 U+00b5 +0xa1 U+00fc +0xa2 U+0073 +0xa3 U+0074 +0xa4 U+0075 +0xa5 U+0076 +0xa6 U+0077 +0xa7 U+0078 +0xa8 U+0079 +0xa9 U+007a +0xaa U+00a1 +0xab U+00bf +0xac U+00d0 +0xad U+00dd +0xae U+00de +0xaf U+00ae +0xb0 U+00a2 +0xb1 U+00a3 +0xb2 U+00a5 +0xb3 U+00b7 +0xb4 U+00a9 +0xb5 U+00a7 +0xb6 U+00b6 +0xb7 U+00bc +0xb8 U+00bd +0xb9 U+00be +0xba U+00ac +0xbb U+007c +0xbc U+00af +0xbd U+00a8 +0xbe U+00b4 +0xbf U+00d7 +0xc0 U+00e6 +0xc1 U+0041 +0xc2 U+0042 +0xc3 U+0043 +0xc4 U+0044 +0xc5 U+0045 +0xc6 U+0046 +0xc7 U+0047 +0xc8 U+0048 +0xc9 U+0049 +0xca U+00ad +0xcb U+00f4 +0xcc U+00f6 +0xcd U+00f2 +0xce U+00f3 +0xcf U+00f5 +0xd0 U+00e5 +0xd1 U+004a +0xd2 U+004b +0xd3 U+004c +0xd4 U+004d +0xd5 U+004e +0xd6 U+004f +0xd7 U+0050 +0xd8 U+0051 +0xd9 U+0052 +0xda U+00b9 +0xdb U+00fb +0xdc U+007e +0xdd U+00f9 +0xde U+00fa +0xdf U+00ff +0xe0 U+005c +0xe1 U+00f7 +0xe2 U+0053 +0xe3 U+0054 +0xe4 U+0055 +0xe5 U+0056 +0xe6 U+0057 +0xe7 U+0058 +0xe8 U+0059 +0xe9 U+005a +0xea U+00b2 +0xeb U+00d4 +0xec U+00d6 +0xed U+00d2 +0xee U+00d3 +0xef U+00d5 +0xf0 U+0030 +0xf1 U+0031 +0xf2 U+0032 +0xf3 U+0033 +0xf4 U+0034 +0xf5 U+0035 +0xf6 U+0036 +0xf7 U+0037 +0xf8 U+0038 +0xf9 U+0039 +0xfa U+00b3 +0xfb U+00db +0xfc U+00dc +0xfd U+00d9 +0xfe U+00da +0xff U+009f diff --git a/jdk/make/tools/CharsetMapping/IBM1143.c2b b/jdk/make/tools/CharsetMapping/IBM1143.c2b new file mode 100644 index 00000000000..6cb38028124 --- /dev/null +++ b/jdk/make/tools/CharsetMapping/IBM1143.c2b @@ -0,0 +1 @@ +0x15 U+0085 diff --git a/jdk/make/tools/CharsetMapping/IBM1143.map b/jdk/make/tools/CharsetMapping/IBM1143.map new file mode 100644 index 00000000000..3bac32ae83e --- /dev/null +++ b/jdk/make/tools/CharsetMapping/IBM1143.map @@ -0,0 +1,257 @@ +#Generated from IBM278.java with 0x5a <-> u+20ac +0x00 U+0000 +0x01 U+0001 +0x02 U+0002 +0x03 U+0003 +0x04 U+009c +0x05 U+0009 +0x06 U+0086 +0x07 U+007f +0x08 U+0097 +0x09 U+008d +0x0a U+008e +0x0b U+000b +0x0c U+000c +0x0d U+000d +0x0e U+000e +0x0f U+000f +0x10 U+0010 +0x11 U+0011 +0x12 U+0012 +0x13 U+0013 +0x14 U+009d +0x15 U+000a +0x16 U+0008 +0x17 U+0087 +0x18 U+0018 +0x19 U+0019 +0x1a U+0092 +0x1b U+008f +0x1c U+001c +0x1d U+001d +0x1e U+001e +0x1f U+001f +0x20 U+0080 +0x21 U+0081 +0x22 U+0082 +0x23 U+0083 +0x24 U+0084 +0x25 U+000a +0x26 U+0017 +0x27 U+001b +0x28 U+0088 +0x29 U+0089 +0x2a U+008a +0x2b U+008b +0x2c U+008c +0x2d U+0005 +0x2e U+0006 +0x2f U+0007 +0x30 U+0090 +0x31 U+0091 +0x32 U+0016 +0x33 U+0093 +0x34 U+0094 +0x35 U+0095 +0x36 U+0096 +0x37 U+0004 +0x38 U+0098 +0x39 U+0099 +0x3a U+009a +0x3b U+009b +0x3c U+0014 +0x3d U+0015 +0x3e U+009e +0x3f U+001a +0x40 U+0020 +0x41 U+00a0 +0x42 U+00e2 +0x43 U+007b +0x44 U+00e0 +0x45 U+00e1 +0x46 U+00e3 +0x47 U+007d +0x48 U+00e7 +0x49 U+00f1 +0x4a U+00a7 +0x4b U+002e +0x4c U+003c +0x4d U+0028 +0x4e U+002b +0x4f U+0021 +0x50 U+0026 +0x51 U+0060 +0x52 U+00ea +0x53 U+00eb +0x54 U+00e8 +0x55 U+00ed +0x56 U+00ee +0x57 U+00ef +0x58 U+00ec +0x59 U+00df +0x5a U+20ac +0x5b U+00c5 +0x5c U+002a +0x5d U+0029 +0x5e U+003b +0x5f U+005e +0x60 U+002d +0x61 U+002f +0x62 U+00c2 +0x63 U+0023 +0x64 U+00c0 +0x65 U+00c1 +0x66 U+00c3 +0x67 U+0024 +0x68 U+00c7 +0x69 U+00d1 +0x6a U+00f6 +0x6b U+002c +0x6c U+0025 +0x6d U+005f +0x6e U+003e +0x6f U+003f +0x70 U+00f8 +0x71 U+005c +0x72 U+00ca +0x73 U+00cb +0x74 U+00c8 +0x75 U+00cd +0x76 U+00ce +0x77 U+00cf +0x78 U+00cc +0x79 U+00e9 +0x7a U+003a +0x7b U+00c4 +0x7c U+00d6 +0x7d U+0027 +0x7e U+003d +0x7f U+0022 +0x80 U+00d8 +0x81 U+0061 +0x82 U+0062 +0x83 U+0063 +0x84 U+0064 +0x85 U+0065 +0x86 U+0066 +0x87 U+0067 +0x88 U+0068 +0x89 U+0069 +0x8a U+00ab +0x8b U+00bb +0x8c U+00f0 +0x8d U+00fd +0x8e U+00fe +0x8f U+00b1 +0x90 U+00b0 +0x91 U+006a +0x92 U+006b +0x93 U+006c +0x94 U+006d +0x95 U+006e +0x96 U+006f +0x97 U+0070 +0x98 U+0071 +0x99 U+0072 +0x9a U+00aa +0x9b U+00ba +0x9c U+00e6 +0x9d U+00b8 +0x9e U+00c6 +0x9f U+005d +0xa0 U+00b5 +0xa1 U+00fc +0xa2 U+0073 +0xa3 U+0074 +0xa4 U+0075 +0xa5 U+0076 +0xa6 U+0077 +0xa7 U+0078 +0xa8 U+0079 +0xa9 U+007a +0xaa U+00a1 +0xab U+00bf +0xac U+00d0 +0xad U+00dd +0xae U+00de +0xaf U+00ae +0xb0 U+00a2 +0xb1 U+00a3 +0xb2 U+00a5 +0xb3 U+00b7 +0xb4 U+00a9 +0xb5 U+005b +0xb6 U+00b6 +0xb7 U+00bc +0xb8 U+00bd +0xb9 U+00be +0xba U+00ac +0xbb U+007c +0xbc U+00af +0xbd U+00a8 +0xbe U+00b4 +0xbf U+00d7 +0xc0 U+00e4 +0xc1 U+0041 +0xc2 U+0042 +0xc3 U+0043 +0xc4 U+0044 +0xc5 U+0045 +0xc6 U+0046 +0xc7 U+0047 +0xc8 U+0048 +0xc9 U+0049 +0xca U+00ad +0xcb U+00f4 +0xcc U+00a6 +0xcd U+00f2 +0xce U+00f3 +0xcf U+00f5 +0xd0 U+00e5 +0xd1 U+004a +0xd2 U+004b +0xd3 U+004c +0xd4 U+004d +0xd5 U+004e +0xd6 U+004f +0xd7 U+0050 +0xd8 U+0051 +0xd9 U+0052 +0xda U+00b9 +0xdb U+00fb +0xdc U+007e +0xdd U+00f9 +0xde U+00fa +0xdf U+00ff +0xe0 U+00c9 +0xe1 U+00f7 +0xe2 U+0053 +0xe3 U+0054 +0xe4 U+0055 +0xe5 U+0056 +0xe6 U+0057 +0xe7 U+0058 +0xe8 U+0059 +0xe9 U+005a +0xea U+00b2 +0xeb U+00d4 +0xec U+0040 +0xed U+00d2 +0xee U+00d3 +0xef U+00d5 +0xf0 U+0030 +0xf1 U+0031 +0xf2 U+0032 +0xf3 U+0033 +0xf4 U+0034 +0xf5 U+0035 +0xf6 U+0036 +0xf7 U+0037 +0xf8 U+0038 +0xf9 U+0039 +0xfa U+00b3 +0xfb U+00db +0xfc U+00dc +0xfd U+00d9 +0xfe U+00da +0xff U+009f diff --git a/jdk/make/tools/CharsetMapping/IBM1144.c2b b/jdk/make/tools/CharsetMapping/IBM1144.c2b new file mode 100644 index 00000000000..6cb38028124 --- /dev/null +++ b/jdk/make/tools/CharsetMapping/IBM1144.c2b @@ -0,0 +1 @@ +0x15 U+0085 diff --git a/jdk/make/tools/CharsetMapping/IBM1144.map b/jdk/make/tools/CharsetMapping/IBM1144.map new file mode 100644 index 00000000000..6c1ea6e5776 --- /dev/null +++ b/jdk/make/tools/CharsetMapping/IBM1144.map @@ -0,0 +1,257 @@ +#Generated from IBM280.java with 0x9f <-> u+20ac +0x00 U+0000 +0x01 U+0001 +0x02 U+0002 +0x03 U+0003 +0x04 U+009c +0x05 U+0009 +0x06 U+0086 +0x07 U+007f +0x08 U+0097 +0x09 U+008d +0x0a U+008e +0x0b U+000b +0x0c U+000c +0x0d U+000d +0x0e U+000e +0x0f U+000f +0x10 U+0010 +0x11 U+0011 +0x12 U+0012 +0x13 U+0013 +0x14 U+009d +0x15 U+000a +0x16 U+0008 +0x17 U+0087 +0x18 U+0018 +0x19 U+0019 +0x1a U+0092 +0x1b U+008f +0x1c U+001c +0x1d U+001d +0x1e U+001e +0x1f U+001f +0x20 U+0080 +0x21 U+0081 +0x22 U+0082 +0x23 U+0083 +0x24 U+0084 +0x25 U+000a +0x26 U+0017 +0x27 U+001b +0x28 U+0088 +0x29 U+0089 +0x2a U+008a +0x2b U+008b +0x2c U+008c +0x2d U+0005 +0x2e U+0006 +0x2f U+0007 +0x30 U+0090 +0x31 U+0091 +0x32 U+0016 +0x33 U+0093 +0x34 U+0094 +0x35 U+0095 +0x36 U+0096 +0x37 U+0004 +0x38 U+0098 +0x39 U+0099 +0x3a U+009a +0x3b U+009b +0x3c U+0014 +0x3d U+0015 +0x3e U+009e +0x3f U+001a +0x40 U+0020 +0x41 U+00a0 +0x42 U+00e2 +0x43 U+00e4 +0x44 U+007b +0x45 U+00e1 +0x46 U+00e3 +0x47 U+00e5 +0x48 U+005c +0x49 U+00f1 +0x4a U+00b0 +0x4b U+002e +0x4c U+003c +0x4d U+0028 +0x4e U+002b +0x4f U+0021 +0x50 U+0026 +0x51 U+005d +0x52 U+00ea +0x53 U+00eb +0x54 U+007d +0x55 U+00ed +0x56 U+00ee +0x57 U+00ef +0x58 U+007e +0x59 U+00df +0x5a U+00e9 +0x5b U+0024 +0x5c U+002a +0x5d U+0029 +0x5e U+003b +0x5f U+005e +0x60 U+002d +0x61 U+002f +0x62 U+00c2 +0x63 U+00c4 +0x64 U+00c0 +0x65 U+00c1 +0x66 U+00c3 +0x67 U+00c5 +0x68 U+00c7 +0x69 U+00d1 +0x6a U+00f2 +0x6b U+002c +0x6c U+0025 +0x6d U+005f +0x6e U+003e +0x6f U+003f +0x70 U+00f8 +0x71 U+00c9 +0x72 U+00ca +0x73 U+00cb +0x74 U+00c8 +0x75 U+00cd +0x76 U+00ce +0x77 U+00cf +0x78 U+00cc +0x79 U+00f9 +0x7a U+003a +0x7b U+00a3 +0x7c U+00a7 +0x7d U+0027 +0x7e U+003d +0x7f U+0022 +0x80 U+00d8 +0x81 U+0061 +0x82 U+0062 +0x83 U+0063 +0x84 U+0064 +0x85 U+0065 +0x86 U+0066 +0x87 U+0067 +0x88 U+0068 +0x89 U+0069 +0x8a U+00ab +0x8b U+00bb +0x8c U+00f0 +0x8d U+00fd +0x8e U+00fe +0x8f U+00b1 +0x90 U+005b +0x91 U+006a +0x92 U+006b +0x93 U+006c +0x94 U+006d +0x95 U+006e +0x96 U+006f +0x97 U+0070 +0x98 U+0071 +0x99 U+0072 +0x9a U+00aa +0x9b U+00ba +0x9c U+00e6 +0x9d U+00b8 +0x9e U+00c6 +0x9f U+20ac +0xa0 U+00b5 +0xa1 U+00ec +0xa2 U+0073 +0xa3 U+0074 +0xa4 U+0075 +0xa5 U+0076 +0xa6 U+0077 +0xa7 U+0078 +0xa8 U+0079 +0xa9 U+007a +0xaa U+00a1 +0xab U+00bf +0xac U+00d0 +0xad U+00dd +0xae U+00de +0xaf U+00ae +0xb0 U+00a2 +0xb1 U+0023 +0xb2 U+00a5 +0xb3 U+00b7 +0xb4 U+00a9 +0xb5 U+0040 +0xb6 U+00b6 +0xb7 U+00bc +0xb8 U+00bd +0xb9 U+00be +0xba U+00ac +0xbb U+007c +0xbc U+00af +0xbd U+00a8 +0xbe U+00b4 +0xbf U+00d7 +0xc0 U+00e0 +0xc1 U+0041 +0xc2 U+0042 +0xc3 U+0043 +0xc4 U+0044 +0xc5 U+0045 +0xc6 U+0046 +0xc7 U+0047 +0xc8 U+0048 +0xc9 U+0049 +0xca U+00ad +0xcb U+00f4 +0xcc U+00f6 +0xcd U+00a6 +0xce U+00f3 +0xcf U+00f5 +0xd0 U+00e8 +0xd1 U+004a +0xd2 U+004b +0xd3 U+004c +0xd4 U+004d +0xd5 U+004e +0xd6 U+004f +0xd7 U+0050 +0xd8 U+0051 +0xd9 U+0052 +0xda U+00b9 +0xdb U+00fb +0xdc U+00fc +0xdd U+0060 +0xde U+00fa +0xdf U+00ff +0xe0 U+00e7 +0xe1 U+00f7 +0xe2 U+0053 +0xe3 U+0054 +0xe4 U+0055 +0xe5 U+0056 +0xe6 U+0057 +0xe7 U+0058 +0xe8 U+0059 +0xe9 U+005a +0xea U+00b2 +0xeb U+00d4 +0xec U+00d6 +0xed U+00d2 +0xee U+00d3 +0xef U+00d5 +0xf0 U+0030 +0xf1 U+0031 +0xf2 U+0032 +0xf3 U+0033 +0xf4 U+0034 +0xf5 U+0035 +0xf6 U+0036 +0xf7 U+0037 +0xf8 U+0038 +0xf9 U+0039 +0xfa U+00b3 +0xfb U+00db +0xfc U+00dc +0xfd U+00d9 +0xfe U+00da +0xff U+009f diff --git a/jdk/make/tools/CharsetMapping/IBM1145.c2b b/jdk/make/tools/CharsetMapping/IBM1145.c2b new file mode 100644 index 00000000000..6cb38028124 --- /dev/null +++ b/jdk/make/tools/CharsetMapping/IBM1145.c2b @@ -0,0 +1 @@ +0x15 U+0085 diff --git a/jdk/make/tools/CharsetMapping/IBM1145.map b/jdk/make/tools/CharsetMapping/IBM1145.map new file mode 100644 index 00000000000..e009383b3d0 --- /dev/null +++ b/jdk/make/tools/CharsetMapping/IBM1145.map @@ -0,0 +1,257 @@ +#Generated from IBM284.java with 0x9f <-> u+20ac +0x00 U+0000 +0x01 U+0001 +0x02 U+0002 +0x03 U+0003 +0x04 U+009c +0x05 U+0009 +0x06 U+0086 +0x07 U+007f +0x08 U+0097 +0x09 U+008d +0x0a U+008e +0x0b U+000b +0x0c U+000c +0x0d U+000d +0x0e U+000e +0x0f U+000f +0x10 U+0010 +0x11 U+0011 +0x12 U+0012 +0x13 U+0013 +0x14 U+009d +0x15 U+000a +0x16 U+0008 +0x17 U+0087 +0x18 U+0018 +0x19 U+0019 +0x1a U+0092 +0x1b U+008f +0x1c U+001c +0x1d U+001d +0x1e U+001e +0x1f U+001f +0x20 U+0080 +0x21 U+0081 +0x22 U+0082 +0x23 U+0083 +0x24 U+0084 +0x25 U+000a +0x26 U+0017 +0x27 U+001b +0x28 U+0088 +0x29 U+0089 +0x2a U+008a +0x2b U+008b +0x2c U+008c +0x2d U+0005 +0x2e U+0006 +0x2f U+0007 +0x30 U+0090 +0x31 U+0091 +0x32 U+0016 +0x33 U+0093 +0x34 U+0094 +0x35 U+0095 +0x36 U+0096 +0x37 U+0004 +0x38 U+0098 +0x39 U+0099 +0x3a U+009a +0x3b U+009b +0x3c U+0014 +0x3d U+0015 +0x3e U+009e +0x3f U+001a +0x40 U+0020 +0x41 U+00a0 +0x42 U+00e2 +0x43 U+00e4 +0x44 U+00e0 +0x45 U+00e1 +0x46 U+00e3 +0x47 U+00e5 +0x48 U+00e7 +0x49 U+00a6 +0x4a U+005b +0x4b U+002e +0x4c U+003c +0x4d U+0028 +0x4e U+002b +0x4f U+007c +0x50 U+0026 +0x51 U+00e9 +0x52 U+00ea +0x53 U+00eb +0x54 U+00e8 +0x55 U+00ed +0x56 U+00ee +0x57 U+00ef +0x58 U+00ec +0x59 U+00df +0x5a U+005d +0x5b U+0024 +0x5c U+002a +0x5d U+0029 +0x5e U+003b +0x5f U+00ac +0x60 U+002d +0x61 U+002f +0x62 U+00c2 +0x63 U+00c4 +0x64 U+00c0 +0x65 U+00c1 +0x66 U+00c3 +0x67 U+00c5 +0x68 U+00c7 +0x69 U+0023 +0x6a U+00f1 +0x6b U+002c +0x6c U+0025 +0x6d U+005f +0x6e U+003e +0x6f U+003f +0x70 U+00f8 +0x71 U+00c9 +0x72 U+00ca +0x73 U+00cb +0x74 U+00c8 +0x75 U+00cd +0x76 U+00ce +0x77 U+00cf +0x78 U+00cc +0x79 U+0060 +0x7a U+003a +0x7b U+00d1 +0x7c U+0040 +0x7d U+0027 +0x7e U+003d +0x7f U+0022 +0x80 U+00d8 +0x81 U+0061 +0x82 U+0062 +0x83 U+0063 +0x84 U+0064 +0x85 U+0065 +0x86 U+0066 +0x87 U+0067 +0x88 U+0068 +0x89 U+0069 +0x8a U+00ab +0x8b U+00bb +0x8c U+00f0 +0x8d U+00fd +0x8e U+00fe +0x8f U+00b1 +0x90 U+00b0 +0x91 U+006a +0x92 U+006b +0x93 U+006c +0x94 U+006d +0x95 U+006e +0x96 U+006f +0x97 U+0070 +0x98 U+0071 +0x99 U+0072 +0x9a U+00aa +0x9b U+00ba +0x9c U+00e6 +0x9d U+00b8 +0x9e U+00c6 +0x9f U+20ac +0xa0 U+00b5 +0xa1 U+00a8 +0xa2 U+0073 +0xa3 U+0074 +0xa4 U+0075 +0xa5 U+0076 +0xa6 U+0077 +0xa7 U+0078 +0xa8 U+0079 +0xa9 U+007a +0xaa U+00a1 +0xab U+00bf +0xac U+00d0 +0xad U+00dd +0xae U+00de +0xaf U+00ae +0xb0 U+00a2 +0xb1 U+00a3 +0xb2 U+00a5 +0xb3 U+00b7 +0xb4 U+00a9 +0xb5 U+00a7 +0xb6 U+00b6 +0xb7 U+00bc +0xb8 U+00bd +0xb9 U+00be +0xba U+005e +0xbb U+0021 +0xbc U+00af +0xbd U+007e +0xbe U+00b4 +0xbf U+00d7 +0xc0 U+007b +0xc1 U+0041 +0xc2 U+0042 +0xc3 U+0043 +0xc4 U+0044 +0xc5 U+0045 +0xc6 U+0046 +0xc7 U+0047 +0xc8 U+0048 +0xc9 U+0049 +0xca U+00ad +0xcb U+00f4 +0xcc U+00f6 +0xcd U+00f2 +0xce U+00f3 +0xcf U+00f5 +0xd0 U+007d +0xd1 U+004a +0xd2 U+004b +0xd3 U+004c +0xd4 U+004d +0xd5 U+004e +0xd6 U+004f +0xd7 U+0050 +0xd8 U+0051 +0xd9 U+0052 +0xda U+00b9 +0xdb U+00fb +0xdc U+00fc +0xdd U+00f9 +0xde U+00fa +0xdf U+00ff +0xe0 U+005c +0xe1 U+00f7 +0xe2 U+0053 +0xe3 U+0054 +0xe4 U+0055 +0xe5 U+0056 +0xe6 U+0057 +0xe7 U+0058 +0xe8 U+0059 +0xe9 U+005a +0xea U+00b2 +0xeb U+00d4 +0xec U+00d6 +0xed U+00d2 +0xee U+00d3 +0xef U+00d5 +0xf0 U+0030 +0xf1 U+0031 +0xf2 U+0032 +0xf3 U+0033 +0xf4 U+0034 +0xf5 U+0035 +0xf6 U+0036 +0xf7 U+0037 +0xf8 U+0038 +0xf9 U+0039 +0xfa U+00b3 +0xfb U+00db +0xfc U+00dc +0xfd U+00d9 +0xfe U+00da +0xff U+009f diff --git a/jdk/make/tools/CharsetMapping/IBM1146.c2b b/jdk/make/tools/CharsetMapping/IBM1146.c2b new file mode 100644 index 00000000000..6cb38028124 --- /dev/null +++ b/jdk/make/tools/CharsetMapping/IBM1146.c2b @@ -0,0 +1 @@ +0x15 U+0085 diff --git a/jdk/make/tools/CharsetMapping/IBM1146.map b/jdk/make/tools/CharsetMapping/IBM1146.map new file mode 100644 index 00000000000..8ce57843f40 --- /dev/null +++ b/jdk/make/tools/CharsetMapping/IBM1146.map @@ -0,0 +1,257 @@ +#Generated from IBM285.java with 0x9f <-> u+20ac +0x00 U+0000 +0x01 U+0001 +0x02 U+0002 +0x03 U+0003 +0x04 U+009c +0x05 U+0009 +0x06 U+0086 +0x07 U+007f +0x08 U+0097 +0x09 U+008d +0x0a U+008e +0x0b U+000b +0x0c U+000c +0x0d U+000d +0x0e U+000e +0x0f U+000f +0x10 U+0010 +0x11 U+0011 +0x12 U+0012 +0x13 U+0013 +0x14 U+009d +0x15 U+000a +0x16 U+0008 +0x17 U+0087 +0x18 U+0018 +0x19 U+0019 +0x1a U+0092 +0x1b U+008f +0x1c U+001c +0x1d U+001d +0x1e U+001e +0x1f U+001f +0x20 U+0080 +0x21 U+0081 +0x22 U+0082 +0x23 U+0083 +0x24 U+0084 +0x25 U+000a +0x26 U+0017 +0x27 U+001b +0x28 U+0088 +0x29 U+0089 +0x2a U+008a +0x2b U+008b +0x2c U+008c +0x2d U+0005 +0x2e U+0006 +0x2f U+0007 +0x30 U+0090 +0x31 U+0091 +0x32 U+0016 +0x33 U+0093 +0x34 U+0094 +0x35 U+0095 +0x36 U+0096 +0x37 U+0004 +0x38 U+0098 +0x39 U+0099 +0x3a U+009a +0x3b U+009b +0x3c U+0014 +0x3d U+0015 +0x3e U+009e +0x3f U+001a +0x40 U+0020 +0x41 U+00a0 +0x42 U+00e2 +0x43 U+00e4 +0x44 U+00e0 +0x45 U+00e1 +0x46 U+00e3 +0x47 U+00e5 +0x48 U+00e7 +0x49 U+00f1 +0x4a U+0024 +0x4b U+002e +0x4c U+003c +0x4d U+0028 +0x4e U+002b +0x4f U+007c +0x50 U+0026 +0x51 U+00e9 +0x52 U+00ea +0x53 U+00eb +0x54 U+00e8 +0x55 U+00ed +0x56 U+00ee +0x57 U+00ef +0x58 U+00ec +0x59 U+00df +0x5a U+0021 +0x5b U+00a3 +0x5c U+002a +0x5d U+0029 +0x5e U+003b +0x5f U+00ac +0x60 U+002d +0x61 U+002f +0x62 U+00c2 +0x63 U+00c4 +0x64 U+00c0 +0x65 U+00c1 +0x66 U+00c3 +0x67 U+00c5 +0x68 U+00c7 +0x69 U+00d1 +0x6a U+00a6 +0x6b U+002c +0x6c U+0025 +0x6d U+005f +0x6e U+003e +0x6f U+003f +0x70 U+00f8 +0x71 U+00c9 +0x72 U+00ca +0x73 U+00cb +0x74 U+00c8 +0x75 U+00cd +0x76 U+00ce +0x77 U+00cf +0x78 U+00cc +0x79 U+0060 +0x7a U+003a +0x7b U+0023 +0x7c U+0040 +0x7d U+0027 +0x7e U+003d +0x7f U+0022 +0x80 U+00d8 +0x81 U+0061 +0x82 U+0062 +0x83 U+0063 +0x84 U+0064 +0x85 U+0065 +0x86 U+0066 +0x87 U+0067 +0x88 U+0068 +0x89 U+0069 +0x8a U+00ab +0x8b U+00bb +0x8c U+00f0 +0x8d U+00fd +0x8e U+00fe +0x8f U+00b1 +0x90 U+00b0 +0x91 U+006a +0x92 U+006b +0x93 U+006c +0x94 U+006d +0x95 U+006e +0x96 U+006f +0x97 U+0070 +0x98 U+0071 +0x99 U+0072 +0x9a U+00aa +0x9b U+00ba +0x9c U+00e6 +0x9d U+00b8 +0x9e U+00c6 +0x9f U+20ac +0xa0 U+00b5 +0xa1 U+00af +0xa2 U+0073 +0xa3 U+0074 +0xa4 U+0075 +0xa5 U+0076 +0xa6 U+0077 +0xa7 U+0078 +0xa8 U+0079 +0xa9 U+007a +0xaa U+00a1 +0xab U+00bf +0xac U+00d0 +0xad U+00dd +0xae U+00de +0xaf U+00ae +0xb0 U+00a2 +0xb1 U+005b +0xb2 U+00a5 +0xb3 U+00b7 +0xb4 U+00a9 +0xb5 U+00a7 +0xb6 U+00b6 +0xb7 U+00bc +0xb8 U+00bd +0xb9 U+00be +0xba U+005e +0xbb U+005d +0xbc U+007e +0xbd U+00a8 +0xbe U+00b4 +0xbf U+00d7 +0xc0 U+007b +0xc1 U+0041 +0xc2 U+0042 +0xc3 U+0043 +0xc4 U+0044 +0xc5 U+0045 +0xc6 U+0046 +0xc7 U+0047 +0xc8 U+0048 +0xc9 U+0049 +0xca U+00ad +0xcb U+00f4 +0xcc U+00f6 +0xcd U+00f2 +0xce U+00f3 +0xcf U+00f5 +0xd0 U+007d +0xd1 U+004a +0xd2 U+004b +0xd3 U+004c +0xd4 U+004d +0xd5 U+004e +0xd6 U+004f +0xd7 U+0050 +0xd8 U+0051 +0xd9 U+0052 +0xda U+00b9 +0xdb U+00fb +0xdc U+00fc +0xdd U+00f9 +0xde U+00fa +0xdf U+00ff +0xe0 U+005c +0xe1 U+00f7 +0xe2 U+0053 +0xe3 U+0054 +0xe4 U+0055 +0xe5 U+0056 +0xe6 U+0057 +0xe7 U+0058 +0xe8 U+0059 +0xe9 U+005a +0xea U+00b2 +0xeb U+00d4 +0xec U+00d6 +0xed U+00d2 +0xee U+00d3 +0xef U+00d5 +0xf0 U+0030 +0xf1 U+0031 +0xf2 U+0032 +0xf3 U+0033 +0xf4 U+0034 +0xf5 U+0035 +0xf6 U+0036 +0xf7 U+0037 +0xf8 U+0038 +0xf9 U+0039 +0xfa U+00b3 +0xfb U+00db +0xfc U+00dc +0xfd U+00d9 +0xfe U+00da +0xff U+009f diff --git a/jdk/make/tools/CharsetMapping/IBM1147.c2b b/jdk/make/tools/CharsetMapping/IBM1147.c2b new file mode 100644 index 00000000000..6cb38028124 --- /dev/null +++ b/jdk/make/tools/CharsetMapping/IBM1147.c2b @@ -0,0 +1 @@ +0x15 U+0085 diff --git a/jdk/make/tools/CharsetMapping/IBM1147.map b/jdk/make/tools/CharsetMapping/IBM1147.map new file mode 100644 index 00000000000..415628a435b --- /dev/null +++ b/jdk/make/tools/CharsetMapping/IBM1147.map @@ -0,0 +1,257 @@ +#Generated from IBM297.java 0x9f <-> u+20ac +0x00 U+0000 +0x01 U+0001 +0x02 U+0002 +0x03 U+0003 +0x04 U+009c +0x05 U+0009 +0x06 U+0086 +0x07 U+007f +0x08 U+0097 +0x09 U+008d +0x0a U+008e +0x0b U+000b +0x0c U+000c +0x0d U+000d +0x0e U+000e +0x0f U+000f +0x10 U+0010 +0x11 U+0011 +0x12 U+0012 +0x13 U+0013 +0x14 U+009d +0x15 U+000a +0x16 U+0008 +0x17 U+0087 +0x18 U+0018 +0x19 U+0019 +0x1a U+0092 +0x1b U+008f +0x1c U+001c +0x1d U+001d +0x1e U+001e +0x1f U+001f +0x20 U+0080 +0x21 U+0081 +0x22 U+0082 +0x23 U+0083 +0x24 U+0084 +0x25 U+000a +0x26 U+0017 +0x27 U+001b +0x28 U+0088 +0x29 U+0089 +0x2a U+008a +0x2b U+008b +0x2c U+008c +0x2d U+0005 +0x2e U+0006 +0x2f U+0007 +0x30 U+0090 +0x31 U+0091 +0x32 U+0016 +0x33 U+0093 +0x34 U+0094 +0x35 U+0095 +0x36 U+0096 +0x37 U+0004 +0x38 U+0098 +0x39 U+0099 +0x3a U+009a +0x3b U+009b +0x3c U+0014 +0x3d U+0015 +0x3e U+009e +0x3f U+001a +0x40 U+0020 +0x41 U+00a0 +0x42 U+00e2 +0x43 U+00e4 +0x44 U+0040 +0x45 U+00e1 +0x46 U+00e3 +0x47 U+00e5 +0x48 U+005c +0x49 U+00f1 +0x4a U+00b0 +0x4b U+002e +0x4c U+003c +0x4d U+0028 +0x4e U+002b +0x4f U+0021 +0x50 U+0026 +0x51 U+007b +0x52 U+00ea +0x53 U+00eb +0x54 U+007d +0x55 U+00ed +0x56 U+00ee +0x57 U+00ef +0x58 U+00ec +0x59 U+00df +0x5a U+00a7 +0x5b U+0024 +0x5c U+002a +0x5d U+0029 +0x5e U+003b +0x5f U+005e +0x60 U+002d +0x61 U+002f +0x62 U+00c2 +0x63 U+00c4 +0x64 U+00c0 +0x65 U+00c1 +0x66 U+00c3 +0x67 U+00c5 +0x68 U+00c7 +0x69 U+00d1 +0x6a U+00f9 +0x6b U+002c +0x6c U+0025 +0x6d U+005f +0x6e U+003e +0x6f U+003f +0x70 U+00f8 +0x71 U+00c9 +0x72 U+00ca +0x73 U+00cb +0x74 U+00c8 +0x75 U+00cd +0x76 U+00ce +0x77 U+00cf +0x78 U+00cc +0x79 U+00b5 +0x7a U+003a +0x7b U+00a3 +0x7c U+00e0 +0x7d U+0027 +0x7e U+003d +0x7f U+0022 +0x80 U+00d8 +0x81 U+0061 +0x82 U+0062 +0x83 U+0063 +0x84 U+0064 +0x85 U+0065 +0x86 U+0066 +0x87 U+0067 +0x88 U+0068 +0x89 U+0069 +0x8a U+00ab +0x8b U+00bb +0x8c U+00f0 +0x8d U+00fd +0x8e U+00fe +0x8f U+00b1 +0x90 U+005b +0x91 U+006a +0x92 U+006b +0x93 U+006c +0x94 U+006d +0x95 U+006e +0x96 U+006f +0x97 U+0070 +0x98 U+0071 +0x99 U+0072 +0x9a U+00aa +0x9b U+00ba +0x9c U+00e6 +0x9d U+00b8 +0x9e U+00c6 +0x9f U+20ac +0xa0 U+0060 +0xa1 U+00a8 +0xa2 U+0073 +0xa3 U+0074 +0xa4 U+0075 +0xa5 U+0076 +0xa6 U+0077 +0xa7 U+0078 +0xa8 U+0079 +0xa9 U+007a +0xaa U+00a1 +0xab U+00bf +0xac U+00d0 +0xad U+00dd +0xae U+00de +0xaf U+00ae +0xb0 U+00a2 +0xb1 U+0023 +0xb2 U+00a5 +0xb3 U+00b7 +0xb4 U+00a9 +0xb5 U+005d +0xb6 U+00b6 +0xb7 U+00bc +0xb8 U+00bd +0xb9 U+00be +0xba U+00ac +0xbb U+007c +0xbc U+00af +0xbd U+007e +0xbe U+00b4 +0xbf U+00d7 +0xc0 U+00e9 +0xc1 U+0041 +0xc2 U+0042 +0xc3 U+0043 +0xc4 U+0044 +0xc5 U+0045 +0xc6 U+0046 +0xc7 U+0047 +0xc8 U+0048 +0xc9 U+0049 +0xca U+00ad +0xcb U+00f4 +0xcc U+00f6 +0xcd U+00f2 +0xce U+00f3 +0xcf U+00f5 +0xd0 U+00e8 +0xd1 U+004a +0xd2 U+004b +0xd3 U+004c +0xd4 U+004d +0xd5 U+004e +0xd6 U+004f +0xd7 U+0050 +0xd8 U+0051 +0xd9 U+0052 +0xda U+00b9 +0xdb U+00fb +0xdc U+00fc +0xdd U+00a6 +0xde U+00fa +0xdf U+00ff +0xe0 U+00e7 +0xe1 U+00f7 +0xe2 U+0053 +0xe3 U+0054 +0xe4 U+0055 +0xe5 U+0056 +0xe6 U+0057 +0xe7 U+0058 +0xe8 U+0059 +0xe9 U+005a +0xea U+00b2 +0xeb U+00d4 +0xec U+00d6 +0xed U+00d2 +0xee U+00d3 +0xef U+00d5 +0xf0 U+0030 +0xf1 U+0031 +0xf2 U+0032 +0xf3 U+0033 +0xf4 U+0034 +0xf5 U+0035 +0xf6 U+0036 +0xf7 U+0037 +0xf8 U+0038 +0xf9 U+0039 +0xfa U+00b3 +0xfb U+00db +0xfc U+00dc +0xfd U+00d9 +0xfe U+00da +0xff U+009f diff --git a/jdk/make/tools/CharsetMapping/IBM1148.c2b b/jdk/make/tools/CharsetMapping/IBM1148.c2b new file mode 100644 index 00000000000..6cb38028124 --- /dev/null +++ b/jdk/make/tools/CharsetMapping/IBM1148.c2b @@ -0,0 +1 @@ +0x15 U+0085 diff --git a/jdk/make/tools/CharsetMapping/IBM1148.map b/jdk/make/tools/CharsetMapping/IBM1148.map new file mode 100644 index 00000000000..3f58284847c --- /dev/null +++ b/jdk/make/tools/CharsetMapping/IBM1148.map @@ -0,0 +1,257 @@ +#Generated from IBM500.java 0x9f <-> u+20ac +0x00 U+0000 +0x01 U+0001 +0x02 U+0002 +0x03 U+0003 +0x04 U+009c +0x05 U+0009 +0x06 U+0086 +0x07 U+007f +0x08 U+0097 +0x09 U+008d +0x0a U+008e +0x0b U+000b +0x0c U+000c +0x0d U+000d +0x0e U+000e +0x0f U+000f +0x10 U+0010 +0x11 U+0011 +0x12 U+0012 +0x13 U+0013 +0x14 U+009d +0x15 U+000a +0x16 U+0008 +0x17 U+0087 +0x18 U+0018 +0x19 U+0019 +0x1a U+0092 +0x1b U+008f +0x1c U+001c +0x1d U+001d +0x1e U+001e +0x1f U+001f +0x20 U+0080 +0x21 U+0081 +0x22 U+0082 +0x23 U+0083 +0x24 U+0084 +0x25 U+000a +0x26 U+0017 +0x27 U+001b +0x28 U+0088 +0x29 U+0089 +0x2a U+008a +0x2b U+008b +0x2c U+008c +0x2d U+0005 +0x2e U+0006 +0x2f U+0007 +0x30 U+0090 +0x31 U+0091 +0x32 U+0016 +0x33 U+0093 +0x34 U+0094 +0x35 U+0095 +0x36 U+0096 +0x37 U+0004 +0x38 U+0098 +0x39 U+0099 +0x3a U+009a +0x3b U+009b +0x3c U+0014 +0x3d U+0015 +0x3e U+009e +0x3f U+001a +0x40 U+0020 +0x41 U+00a0 +0x42 U+00e2 +0x43 U+00e4 +0x44 U+00e0 +0x45 U+00e1 +0x46 U+00e3 +0x47 U+00e5 +0x48 U+00e7 +0x49 U+00f1 +0x4a U+005b +0x4b U+002e +0x4c U+003c +0x4d U+0028 +0x4e U+002b +0x4f U+0021 +0x50 U+0026 +0x51 U+00e9 +0x52 U+00ea +0x53 U+00eb +0x54 U+00e8 +0x55 U+00ed +0x56 U+00ee +0x57 U+00ef +0x58 U+00ec +0x59 U+00df +0x5a U+005d +0x5b U+0024 +0x5c U+002a +0x5d U+0029 +0x5e U+003b +0x5f U+005e +0x60 U+002d +0x61 U+002f +0x62 U+00c2 +0x63 U+00c4 +0x64 U+00c0 +0x65 U+00c1 +0x66 U+00c3 +0x67 U+00c5 +0x68 U+00c7 +0x69 U+00d1 +0x6a U+00a6 +0x6b U+002c +0x6c U+0025 +0x6d U+005f +0x6e U+003e +0x6f U+003f +0x70 U+00f8 +0x71 U+00c9 +0x72 U+00ca +0x73 U+00cb +0x74 U+00c8 +0x75 U+00cd +0x76 U+00ce +0x77 U+00cf +0x78 U+00cc +0x79 U+0060 +0x7a U+003a +0x7b U+0023 +0x7c U+0040 +0x7d U+0027 +0x7e U+003d +0x7f U+0022 +0x80 U+00d8 +0x81 U+0061 +0x82 U+0062 +0x83 U+0063 +0x84 U+0064 +0x85 U+0065 +0x86 U+0066 +0x87 U+0067 +0x88 U+0068 +0x89 U+0069 +0x8a U+00ab +0x8b U+00bb +0x8c U+00f0 +0x8d U+00fd +0x8e U+00fe +0x8f U+00b1 +0x90 U+00b0 +0x91 U+006a +0x92 U+006b +0x93 U+006c +0x94 U+006d +0x95 U+006e +0x96 U+006f +0x97 U+0070 +0x98 U+0071 +0x99 U+0072 +0x9a U+00aa +0x9b U+00ba +0x9c U+00e6 +0x9d U+00b8 +0x9e U+00c6 +0x9f U+20ac +0xa0 U+00b5 +0xa1 U+007e +0xa2 U+0073 +0xa3 U+0074 +0xa4 U+0075 +0xa5 U+0076 +0xa6 U+0077 +0xa7 U+0078 +0xa8 U+0079 +0xa9 U+007a +0xaa U+00a1 +0xab U+00bf +0xac U+00d0 +0xad U+00dd +0xae U+00de +0xaf U+00ae +0xb0 U+00a2 +0xb1 U+00a3 +0xb2 U+00a5 +0xb3 U+00b7 +0xb4 U+00a9 +0xb5 U+00a7 +0xb6 U+00b6 +0xb7 U+00bc +0xb8 U+00bd +0xb9 U+00be +0xba U+00ac +0xbb U+007c +0xbc U+00af +0xbd U+00a8 +0xbe U+00b4 +0xbf U+00d7 +0xc0 U+007b +0xc1 U+0041 +0xc2 U+0042 +0xc3 U+0043 +0xc4 U+0044 +0xc5 U+0045 +0xc6 U+0046 +0xc7 U+0047 +0xc8 U+0048 +0xc9 U+0049 +0xca U+00ad +0xcb U+00f4 +0xcc U+00f6 +0xcd U+00f2 +0xce U+00f3 +0xcf U+00f5 +0xd0 U+007d +0xd1 U+004a +0xd2 U+004b +0xd3 U+004c +0xd4 U+004d +0xd5 U+004e +0xd6 U+004f +0xd7 U+0050 +0xd8 U+0051 +0xd9 U+0052 +0xda U+00b9 +0xdb U+00fb +0xdc U+00fc +0xdd U+00f9 +0xde U+00fa +0xdf U+00ff +0xe0 U+005c +0xe1 U+00f7 +0xe2 U+0053 +0xe3 U+0054 +0xe4 U+0055 +0xe5 U+0056 +0xe6 U+0057 +0xe7 U+0058 +0xe8 U+0059 +0xe9 U+005a +0xea U+00b2 +0xeb U+00d4 +0xec U+00d6 +0xed U+00d2 +0xee U+00d3 +0xef U+00d5 +0xf0 U+0030 +0xf1 U+0031 +0xf2 U+0032 +0xf3 U+0033 +0xf4 U+0034 +0xf5 U+0035 +0xf6 U+0036 +0xf7 U+0037 +0xf8 U+0038 +0xf9 U+0039 +0xfa U+00b3 +0xfb U+00db +0xfc U+00dc +0xfd U+00d9 +0xfe U+00da +0xff U+009f diff --git a/jdk/make/tools/CharsetMapping/IBM1149.c2b b/jdk/make/tools/CharsetMapping/IBM1149.c2b new file mode 100644 index 00000000000..6cb38028124 --- /dev/null +++ b/jdk/make/tools/CharsetMapping/IBM1149.c2b @@ -0,0 +1 @@ +0x15 U+0085 diff --git a/jdk/make/tools/CharsetMapping/IBM1149.map b/jdk/make/tools/CharsetMapping/IBM1149.map new file mode 100644 index 00000000000..8d452004860 --- /dev/null +++ b/jdk/make/tools/CharsetMapping/IBM1149.map @@ -0,0 +1,257 @@ +#Generated from IBM871.java 0x9f <-> u+20ac +0x00 U+0000 +0x01 U+0001 +0x02 U+0002 +0x03 U+0003 +0x04 U+009c +0x05 U+0009 +0x06 U+0086 +0x07 U+007f +0x08 U+0097 +0x09 U+008d +0x0a U+008e +0x0b U+000b +0x0c U+000c +0x0d U+000d +0x0e U+000e +0x0f U+000f +0x10 U+0010 +0x11 U+0011 +0x12 U+0012 +0x13 U+0013 +0x14 U+009d +0x15 U+000a +0x16 U+0008 +0x17 U+0087 +0x18 U+0018 +0x19 U+0019 +0x1a U+0092 +0x1b U+008f +0x1c U+001c +0x1d U+001d +0x1e U+001e +0x1f U+001f +0x20 U+0080 +0x21 U+0081 +0x22 U+0082 +0x23 U+0083 +0x24 U+0084 +0x25 U+000a +0x26 U+0017 +0x27 U+001b +0x28 U+0088 +0x29 U+0089 +0x2a U+008a +0x2b U+008b +0x2c U+008c +0x2d U+0005 +0x2e U+0006 +0x2f U+0007 +0x30 U+0090 +0x31 U+0091 +0x32 U+0016 +0x33 U+0093 +0x34 U+0094 +0x35 U+0095 +0x36 U+0096 +0x37 U+0004 +0x38 U+0098 +0x39 U+0099 +0x3a U+009a +0x3b U+009b +0x3c U+0014 +0x3d U+0015 +0x3e U+009e +0x3f U+001a +0x40 U+0020 +0x41 U+00a0 +0x42 U+00e2 +0x43 U+00e4 +0x44 U+00e0 +0x45 U+00e1 +0x46 U+00e3 +0x47 U+00e5 +0x48 U+00e7 +0x49 U+00f1 +0x4a U+00de +0x4b U+002e +0x4c U+003c +0x4d U+0028 +0x4e U+002b +0x4f U+0021 +0x50 U+0026 +0x51 U+00e9 +0x52 U+00ea +0x53 U+00eb +0x54 U+00e8 +0x55 U+00ed +0x56 U+00ee +0x57 U+00ef +0x58 U+00ec +0x59 U+00df +0x5a U+00c6 +0x5b U+0024 +0x5c U+002a +0x5d U+0029 +0x5e U+003b +0x5f U+00d6 +0x60 U+002d +0x61 U+002f +0x62 U+00c2 +0x63 U+00c4 +0x64 U+00c0 +0x65 U+00c1 +0x66 U+00c3 +0x67 U+00c5 +0x68 U+00c7 +0x69 U+00d1 +0x6a U+00a6 +0x6b U+002c +0x6c U+0025 +0x6d U+005f +0x6e U+003e +0x6f U+003f +0x70 U+00f8 +0x71 U+00c9 +0x72 U+00ca +0x73 U+00cb +0x74 U+00c8 +0x75 U+00cd +0x76 U+00ce +0x77 U+00cf +0x78 U+00cc +0x79 U+00f0 +0x7a U+003a +0x7b U+0023 +0x7c U+00d0 +0x7d U+0027 +0x7e U+003d +0x7f U+0022 +0x80 U+00d8 +0x81 U+0061 +0x82 U+0062 +0x83 U+0063 +0x84 U+0064 +0x85 U+0065 +0x86 U+0066 +0x87 U+0067 +0x88 U+0068 +0x89 U+0069 +0x8a U+00ab +0x8b U+00bb +0x8c U+0060 +0x8d U+00fd +0x8e U+007b +0x8f U+00b1 +0x90 U+00b0 +0x91 U+006a +0x92 U+006b +0x93 U+006c +0x94 U+006d +0x95 U+006e +0x96 U+006f +0x97 U+0070 +0x98 U+0071 +0x99 U+0072 +0x9a U+00aa +0x9b U+00ba +0x9c U+007d +0x9d U+00b8 +0x9e U+005d +0x9f U+20ac +0xa0 U+00b5 +0xa1 U+00f6 +0xa2 U+0073 +0xa3 U+0074 +0xa4 U+0075 +0xa5 U+0076 +0xa6 U+0077 +0xa7 U+0078 +0xa8 U+0079 +0xa9 U+007a +0xaa U+00a1 +0xab U+00bf +0xac U+0040 +0xad U+00dd +0xae U+005b +0xaf U+00ae +0xb0 U+00a2 +0xb1 U+00a3 +0xb2 U+00a5 +0xb3 U+00b7 +0xb4 U+00a9 +0xb5 U+00a7 +0xb6 U+00b6 +0xb7 U+00bc +0xb8 U+00bd +0xb9 U+00be +0xba U+00ac +0xbb U+007c +0xbc U+00af +0xbd U+00a8 +0xbe U+005c +0xbf U+00d7 +0xc0 U+00fe +0xc1 U+0041 +0xc2 U+0042 +0xc3 U+0043 +0xc4 U+0044 +0xc5 U+0045 +0xc6 U+0046 +0xc7 U+0047 +0xc8 U+0048 +0xc9 U+0049 +0xca U+00ad +0xcb U+00f4 +0xcc U+007e +0xcd U+00f2 +0xce U+00f3 +0xcf U+00f5 +0xd0 U+00e6 +0xd1 U+004a +0xd2 U+004b +0xd3 U+004c +0xd4 U+004d +0xd5 U+004e +0xd6 U+004f +0xd7 U+0050 +0xd8 U+0051 +0xd9 U+0052 +0xda U+00b9 +0xdb U+00fb +0xdc U+00fc +0xdd U+00f9 +0xde U+00fa +0xdf U+00ff +0xe0 U+00b4 +0xe1 U+00f7 +0xe2 U+0053 +0xe3 U+0054 +0xe4 U+0055 +0xe5 U+0056 +0xe6 U+0057 +0xe7 U+0058 +0xe8 U+0059 +0xe9 U+005a +0xea U+00b2 +0xeb U+00d4 +0xec U+005e +0xed U+00d2 +0xee U+00d3 +0xef U+00d5 +0xf0 U+0030 +0xf1 U+0031 +0xf2 U+0032 +0xf3 U+0033 +0xf4 U+0034 +0xf5 U+0035 +0xf6 U+0036 +0xf7 U+0037 +0xf8 U+0038 +0xf9 U+0039 +0xfa U+00b3 +0xfb U+00db +0xfc U+00dc +0xfd U+00d9 +0xfe U+00da +0xff U+009f diff --git a/jdk/make/tools/CharsetMapping/IBM273.c2b b/jdk/make/tools/CharsetMapping/IBM273.c2b new file mode 100644 index 00000000000..6cb38028124 --- /dev/null +++ b/jdk/make/tools/CharsetMapping/IBM273.c2b @@ -0,0 +1 @@ +0x15 U+0085 diff --git a/jdk/make/tools/CharsetMapping/IBM273.map b/jdk/make/tools/CharsetMapping/IBM273.map new file mode 100644 index 00000000000..690858d0263 --- /dev/null +++ b/jdk/make/tools/CharsetMapping/IBM273.map @@ -0,0 +1,257 @@ +#Generated from IBM273.java +0x00 U+0000 +0x01 U+0001 +0x02 U+0002 +0x03 U+0003 +0x04 U+009c +0x05 U+0009 +0x06 U+0086 +0x07 U+007f +0x08 U+0097 +0x09 U+008d +0x0a U+008e +0x0b U+000b +0x0c U+000c +0x0d U+000d +0x0e U+000e +0x0f U+000f +0x10 U+0010 +0x11 U+0011 +0x12 U+0012 +0x13 U+0013 +0x14 U+009d +0x15 U+000a +0x16 U+0008 +0x17 U+0087 +0x18 U+0018 +0x19 U+0019 +0x1a U+0092 +0x1b U+008f +0x1c U+001c +0x1d U+001d +0x1e U+001e +0x1f U+001f +0x20 U+0080 +0x21 U+0081 +0x22 U+0082 +0x23 U+0083 +0x24 U+0084 +0x25 U+000a +0x26 U+0017 +0x27 U+001b +0x28 U+0088 +0x29 U+0089 +0x2a U+008a +0x2b U+008b +0x2c U+008c +0x2d U+0005 +0x2e U+0006 +0x2f U+0007 +0x30 U+0090 +0x31 U+0091 +0x32 U+0016 +0x33 U+0093 +0x34 U+0094 +0x35 U+0095 +0x36 U+0096 +0x37 U+0004 +0x38 U+0098 +0x39 U+0099 +0x3a U+009a +0x3b U+009b +0x3c U+0014 +0x3d U+0015 +0x3e U+009e +0x3f U+001a +0x40 U+0020 +0x41 U+00a0 +0x42 U+00e2 +0x43 U+007b +0x44 U+00e0 +0x45 U+00e1 +0x46 U+00e3 +0x47 U+00e5 +0x48 U+00e7 +0x49 U+00f1 +0x4a U+00c4 +0x4b U+002e +0x4c U+003c +0x4d U+0028 +0x4e U+002b +0x4f U+0021 +0x50 U+0026 +0x51 U+00e9 +0x52 U+00ea +0x53 U+00eb +0x54 U+00e8 +0x55 U+00ed +0x56 U+00ee +0x57 U+00ef +0x58 U+00ec +0x59 U+007e +0x5a U+00dc +0x5b U+0024 +0x5c U+002a +0x5d U+0029 +0x5e U+003b +0x5f U+005e +0x60 U+002d +0x61 U+002f +0x62 U+00c2 +0x63 U+005b +0x64 U+00c0 +0x65 U+00c1 +0x66 U+00c3 +0x67 U+00c5 +0x68 U+00c7 +0x69 U+00d1 +0x6a U+00f6 +0x6b U+002c +0x6c U+0025 +0x6d U+005f +0x6e U+003e +0x6f U+003f +0x70 U+00f8 +0x71 U+00c9 +0x72 U+00ca +0x73 U+00cb +0x74 U+00c8 +0x75 U+00cd +0x76 U+00ce +0x77 U+00cf +0x78 U+00cc +0x79 U+0060 +0x7a U+003a +0x7b U+0023 +0x7c U+00a7 +0x7d U+0027 +0x7e U+003d +0x7f U+0022 +0x80 U+00d8 +0x81 U+0061 +0x82 U+0062 +0x83 U+0063 +0x84 U+0064 +0x85 U+0065 +0x86 U+0066 +0x87 U+0067 +0x88 U+0068 +0x89 U+0069 +0x8a U+00ab +0x8b U+00bb +0x8c U+00f0 +0x8d U+00fd +0x8e U+00fe +0x8f U+00b1 +0x90 U+00b0 +0x91 U+006a +0x92 U+006b +0x93 U+006c +0x94 U+006d +0x95 U+006e +0x96 U+006f +0x97 U+0070 +0x98 U+0071 +0x99 U+0072 +0x9a U+00aa +0x9b U+00ba +0x9c U+00e6 +0x9d U+00b8 +0x9e U+00c6 +0x9f U+00a4 +0xa0 U+00b5 +0xa1 U+00df +0xa2 U+0073 +0xa3 U+0074 +0xa4 U+0075 +0xa5 U+0076 +0xa6 U+0077 +0xa7 U+0078 +0xa8 U+0079 +0xa9 U+007a +0xaa U+00a1 +0xab U+00bf +0xac U+00d0 +0xad U+00dd +0xae U+00de +0xaf U+00ae +0xb0 U+00a2 +0xb1 U+00a3 +0xb2 U+00a5 +0xb3 U+00b7 +0xb4 U+00a9 +0xb5 U+0040 +0xb6 U+00b6 +0xb7 U+00bc +0xb8 U+00bd +0xb9 U+00be +0xba U+00ac +0xbb U+007c +0xbc U+00af +0xbd U+00a8 +0xbe U+00b4 +0xbf U+00d7 +0xc0 U+00e4 +0xc1 U+0041 +0xc2 U+0042 +0xc3 U+0043 +0xc4 U+0044 +0xc5 U+0045 +0xc6 U+0046 +0xc7 U+0047 +0xc8 U+0048 +0xc9 U+0049 +0xca U+00ad +0xcb U+00f4 +0xcc U+00a6 +0xcd U+00f2 +0xce U+00f3 +0xcf U+00f5 +0xd0 U+00fc +0xd1 U+004a +0xd2 U+004b +0xd3 U+004c +0xd4 U+004d +0xd5 U+004e +0xd6 U+004f +0xd7 U+0050 +0xd8 U+0051 +0xd9 U+0052 +0xda U+00b9 +0xdb U+00fb +0xdc U+007d +0xdd U+00f9 +0xde U+00fa +0xdf U+00ff +0xe0 U+00d6 +0xe1 U+00f7 +0xe2 U+0053 +0xe3 U+0054 +0xe4 U+0055 +0xe5 U+0056 +0xe6 U+0057 +0xe7 U+0058 +0xe8 U+0059 +0xe9 U+005a +0xea U+00b2 +0xeb U+00d4 +0xec U+005c +0xed U+00d2 +0xee U+00d3 +0xef U+00d5 +0xf0 U+0030 +0xf1 U+0031 +0xf2 U+0032 +0xf3 U+0033 +0xf4 U+0034 +0xf5 U+0035 +0xf6 U+0036 +0xf7 U+0037 +0xf8 U+0038 +0xf9 U+0039 +0xfa U+00b3 +0xfb U+00db +0xfc U+005d +0xfd U+00d9 +0xfe U+00da +0xff U+009f diff --git a/jdk/make/tools/CharsetMapping/IBM273.nr b/jdk/make/tools/CharsetMapping/IBM273.nr new file mode 100644 index 00000000000..675451906d4 --- /dev/null +++ b/jdk/make/tools/CharsetMapping/IBM273.nr @@ -0,0 +1 @@ +0x25 U+000a diff --git a/jdk/make/tools/CharsetMapping/IBM277.c2b b/jdk/make/tools/CharsetMapping/IBM277.c2b new file mode 100644 index 00000000000..6cb38028124 --- /dev/null +++ b/jdk/make/tools/CharsetMapping/IBM277.c2b @@ -0,0 +1 @@ +0x15 U+0085 diff --git a/jdk/make/tools/CharsetMapping/IBM277.map b/jdk/make/tools/CharsetMapping/IBM277.map new file mode 100644 index 00000000000..957f516c3a5 --- /dev/null +++ b/jdk/make/tools/CharsetMapping/IBM277.map @@ -0,0 +1,257 @@ +#Generated from IBM277.java +0x00 U+0000 +0x01 U+0001 +0x02 U+0002 +0x03 U+0003 +0x04 U+009c +0x05 U+0009 +0x06 U+0086 +0x07 U+007f +0x08 U+0097 +0x09 U+008d +0x0a U+008e +0x0b U+000b +0x0c U+000c +0x0d U+000d +0x0e U+000e +0x0f U+000f +0x10 U+0010 +0x11 U+0011 +0x12 U+0012 +0x13 U+0013 +0x14 U+009d +0x15 U+000a +0x16 U+0008 +0x17 U+0087 +0x18 U+0018 +0x19 U+0019 +0x1a U+0092 +0x1b U+008f +0x1c U+001c +0x1d U+001d +0x1e U+001e +0x1f U+001f +0x20 U+0080 +0x21 U+0081 +0x22 U+0082 +0x23 U+0083 +0x24 U+0084 +0x25 U+000a +0x26 U+0017 +0x27 U+001b +0x28 U+0088 +0x29 U+0089 +0x2a U+008a +0x2b U+008b +0x2c U+008c +0x2d U+0005 +0x2e U+0006 +0x2f U+0007 +0x30 U+0090 +0x31 U+0091 +0x32 U+0016 +0x33 U+0093 +0x34 U+0094 +0x35 U+0095 +0x36 U+0096 +0x37 U+0004 +0x38 U+0098 +0x39 U+0099 +0x3a U+009a +0x3b U+009b +0x3c U+0014 +0x3d U+0015 +0x3e U+009e +0x3f U+001a +0x40 U+0020 +0x41 U+00a0 +0x42 U+00e2 +0x43 U+00e4 +0x44 U+00e0 +0x45 U+00e1 +0x46 U+00e3 +0x47 U+007d +0x48 U+00e7 +0x49 U+00f1 +0x4a U+0023 +0x4b U+002e +0x4c U+003c +0x4d U+0028 +0x4e U+002b +0x4f U+0021 +0x50 U+0026 +0x51 U+00e9 +0x52 U+00ea +0x53 U+00eb +0x54 U+00e8 +0x55 U+00ed +0x56 U+00ee +0x57 U+00ef +0x58 U+00ec +0x59 U+00df +0x5a U+00a4 +0x5b U+00c5 +0x5c U+002a +0x5d U+0029 +0x5e U+003b +0x5f U+005e +0x60 U+002d +0x61 U+002f +0x62 U+00c2 +0x63 U+00c4 +0x64 U+00c0 +0x65 U+00c1 +0x66 U+00c3 +0x67 U+0024 +0x68 U+00c7 +0x69 U+00d1 +0x6a U+00f8 +0x6b U+002c +0x6c U+0025 +0x6d U+005f +0x6e U+003e +0x6f U+003f +0x70 U+00a6 +0x71 U+00c9 +0x72 U+00ca +0x73 U+00cb +0x74 U+00c8 +0x75 U+00cd +0x76 U+00ce +0x77 U+00cf +0x78 U+00cc +0x79 U+0060 +0x7a U+003a +0x7b U+00c6 +0x7c U+00d8 +0x7d U+0027 +0x7e U+003d +0x7f U+0022 +0x80 U+0040 +0x81 U+0061 +0x82 U+0062 +0x83 U+0063 +0x84 U+0064 +0x85 U+0065 +0x86 U+0066 +0x87 U+0067 +0x88 U+0068 +0x89 U+0069 +0x8a U+00ab +0x8b U+00bb +0x8c U+00f0 +0x8d U+00fd +0x8e U+00fe +0x8f U+00b1 +0x90 U+00b0 +0x91 U+006a +0x92 U+006b +0x93 U+006c +0x94 U+006d +0x95 U+006e +0x96 U+006f +0x97 U+0070 +0x98 U+0071 +0x99 U+0072 +0x9a U+00aa +0x9b U+00ba +0x9c U+007b +0x9d U+00b8 +0x9e U+005b +0x9f U+005d +0xa0 U+00b5 +0xa1 U+00fc +0xa2 U+0073 +0xa3 U+0074 +0xa4 U+0075 +0xa5 U+0076 +0xa6 U+0077 +0xa7 U+0078 +0xa8 U+0079 +0xa9 U+007a +0xaa U+00a1 +0xab U+00bf +0xac U+00d0 +0xad U+00dd +0xae U+00de +0xaf U+00ae +0xb0 U+00a2 +0xb1 U+00a3 +0xb2 U+00a5 +0xb3 U+00b7 +0xb4 U+00a9 +0xb5 U+00a7 +0xb6 U+00b6 +0xb7 U+00bc +0xb8 U+00bd +0xb9 U+00be +0xba U+00ac +0xbb U+007c +0xbc U+00af +0xbd U+00a8 +0xbe U+00b4 +0xbf U+00d7 +0xc0 U+00e6 +0xc1 U+0041 +0xc2 U+0042 +0xc3 U+0043 +0xc4 U+0044 +0xc5 U+0045 +0xc6 U+0046 +0xc7 U+0047 +0xc8 U+0048 +0xc9 U+0049 +0xca U+00ad +0xcb U+00f4 +0xcc U+00f6 +0xcd U+00f2 +0xce U+00f3 +0xcf U+00f5 +0xd0 U+00e5 +0xd1 U+004a +0xd2 U+004b +0xd3 U+004c +0xd4 U+004d +0xd5 U+004e +0xd6 U+004f +0xd7 U+0050 +0xd8 U+0051 +0xd9 U+0052 +0xda U+00b9 +0xdb U+00fb +0xdc U+007e +0xdd U+00f9 +0xde U+00fa +0xdf U+00ff +0xe0 U+005c +0xe1 U+00f7 +0xe2 U+0053 +0xe3 U+0054 +0xe4 U+0055 +0xe5 U+0056 +0xe6 U+0057 +0xe7 U+0058 +0xe8 U+0059 +0xe9 U+005a +0xea U+00b2 +0xeb U+00d4 +0xec U+00d6 +0xed U+00d2 +0xee U+00d3 +0xef U+00d5 +0xf0 U+0030 +0xf1 U+0031 +0xf2 U+0032 +0xf3 U+0033 +0xf4 U+0034 +0xf5 U+0035 +0xf6 U+0036 +0xf7 U+0037 +0xf8 U+0038 +0xf9 U+0039 +0xfa U+00b3 +0xfb U+00db +0xfc U+00dc +0xfd U+00d9 +0xfe U+00da +0xff U+009f diff --git a/jdk/make/tools/CharsetMapping/IBM277.nr b/jdk/make/tools/CharsetMapping/IBM277.nr new file mode 100644 index 00000000000..675451906d4 --- /dev/null +++ b/jdk/make/tools/CharsetMapping/IBM277.nr @@ -0,0 +1 @@ +0x25 U+000a diff --git a/jdk/make/tools/CharsetMapping/IBM278.c2b b/jdk/make/tools/CharsetMapping/IBM278.c2b new file mode 100644 index 00000000000..6cb38028124 --- /dev/null +++ b/jdk/make/tools/CharsetMapping/IBM278.c2b @@ -0,0 +1 @@ +0x15 U+0085 diff --git a/jdk/make/tools/CharsetMapping/IBM278.map b/jdk/make/tools/CharsetMapping/IBM278.map new file mode 100644 index 00000000000..51eac1ffa4d --- /dev/null +++ b/jdk/make/tools/CharsetMapping/IBM278.map @@ -0,0 +1,257 @@ +#Generated from IBM278.java +0x00 U+0000 +0x01 U+0001 +0x02 U+0002 +0x03 U+0003 +0x04 U+009c +0x05 U+0009 +0x06 U+0086 +0x07 U+007f +0x08 U+0097 +0x09 U+008d +0x0a U+008e +0x0b U+000b +0x0c U+000c +0x0d U+000d +0x0e U+000e +0x0f U+000f +0x10 U+0010 +0x11 U+0011 +0x12 U+0012 +0x13 U+0013 +0x14 U+009d +0x15 U+000a +0x16 U+0008 +0x17 U+0087 +0x18 U+0018 +0x19 U+0019 +0x1a U+0092 +0x1b U+008f +0x1c U+001c +0x1d U+001d +0x1e U+001e +0x1f U+001f +0x20 U+0080 +0x21 U+0081 +0x22 U+0082 +0x23 U+0083 +0x24 U+0084 +0x25 U+000a +0x26 U+0017 +0x27 U+001b +0x28 U+0088 +0x29 U+0089 +0x2a U+008a +0x2b U+008b +0x2c U+008c +0x2d U+0005 +0x2e U+0006 +0x2f U+0007 +0x30 U+0090 +0x31 U+0091 +0x32 U+0016 +0x33 U+0093 +0x34 U+0094 +0x35 U+0095 +0x36 U+0096 +0x37 U+0004 +0x38 U+0098 +0x39 U+0099 +0x3a U+009a +0x3b U+009b +0x3c U+0014 +0x3d U+0015 +0x3e U+009e +0x3f U+001a +0x40 U+0020 +0x41 U+00a0 +0x42 U+00e2 +0x43 U+007b +0x44 U+00e0 +0x45 U+00e1 +0x46 U+00e3 +0x47 U+007d +0x48 U+00e7 +0x49 U+00f1 +0x4a U+00a7 +0x4b U+002e +0x4c U+003c +0x4d U+0028 +0x4e U+002b +0x4f U+0021 +0x50 U+0026 +0x51 U+0060 +0x52 U+00ea +0x53 U+00eb +0x54 U+00e8 +0x55 U+00ed +0x56 U+00ee +0x57 U+00ef +0x58 U+00ec +0x59 U+00df +0x5a U+00a4 +0x5b U+00c5 +0x5c U+002a +0x5d U+0029 +0x5e U+003b +0x5f U+005e +0x60 U+002d +0x61 U+002f +0x62 U+00c2 +0x63 U+0023 +0x64 U+00c0 +0x65 U+00c1 +0x66 U+00c3 +0x67 U+0024 +0x68 U+00c7 +0x69 U+00d1 +0x6a U+00f6 +0x6b U+002c +0x6c U+0025 +0x6d U+005f +0x6e U+003e +0x6f U+003f +0x70 U+00f8 +0x71 U+005c +0x72 U+00ca +0x73 U+00cb +0x74 U+00c8 +0x75 U+00cd +0x76 U+00ce +0x77 U+00cf +0x78 U+00cc +0x79 U+00e9 +0x7a U+003a +0x7b U+00c4 +0x7c U+00d6 +0x7d U+0027 +0x7e U+003d +0x7f U+0022 +0x80 U+00d8 +0x81 U+0061 +0x82 U+0062 +0x83 U+0063 +0x84 U+0064 +0x85 U+0065 +0x86 U+0066 +0x87 U+0067 +0x88 U+0068 +0x89 U+0069 +0x8a U+00ab +0x8b U+00bb +0x8c U+00f0 +0x8d U+00fd +0x8e U+00fe +0x8f U+00b1 +0x90 U+00b0 +0x91 U+006a +0x92 U+006b +0x93 U+006c +0x94 U+006d +0x95 U+006e +0x96 U+006f +0x97 U+0070 +0x98 U+0071 +0x99 U+0072 +0x9a U+00aa +0x9b U+00ba +0x9c U+00e6 +0x9d U+00b8 +0x9e U+00c6 +0x9f U+005d +0xa0 U+00b5 +0xa1 U+00fc +0xa2 U+0073 +0xa3 U+0074 +0xa4 U+0075 +0xa5 U+0076 +0xa6 U+0077 +0xa7 U+0078 +0xa8 U+0079 +0xa9 U+007a +0xaa U+00a1 +0xab U+00bf +0xac U+00d0 +0xad U+00dd +0xae U+00de +0xaf U+00ae +0xb0 U+00a2 +0xb1 U+00a3 +0xb2 U+00a5 +0xb3 U+00b7 +0xb4 U+00a9 +0xb5 U+005b +0xb6 U+00b6 +0xb7 U+00bc +0xb8 U+00bd +0xb9 U+00be +0xba U+00ac +0xbb U+007c +0xbc U+00af +0xbd U+00a8 +0xbe U+00b4 +0xbf U+00d7 +0xc0 U+00e4 +0xc1 U+0041 +0xc2 U+0042 +0xc3 U+0043 +0xc4 U+0044 +0xc5 U+0045 +0xc6 U+0046 +0xc7 U+0047 +0xc8 U+0048 +0xc9 U+0049 +0xca U+00ad +0xcb U+00f4 +0xcc U+00a6 +0xcd U+00f2 +0xce U+00f3 +0xcf U+00f5 +0xd0 U+00e5 +0xd1 U+004a +0xd2 U+004b +0xd3 U+004c +0xd4 U+004d +0xd5 U+004e +0xd6 U+004f +0xd7 U+0050 +0xd8 U+0051 +0xd9 U+0052 +0xda U+00b9 +0xdb U+00fb +0xdc U+007e +0xdd U+00f9 +0xde U+00fa +0xdf U+00ff +0xe0 U+00c9 +0xe1 U+00f7 +0xe2 U+0053 +0xe3 U+0054 +0xe4 U+0055 +0xe5 U+0056 +0xe6 U+0057 +0xe7 U+0058 +0xe8 U+0059 +0xe9 U+005a +0xea U+00b2 +0xeb U+00d4 +0xec U+0040 +0xed U+00d2 +0xee U+00d3 +0xef U+00d5 +0xf0 U+0030 +0xf1 U+0031 +0xf2 U+0032 +0xf3 U+0033 +0xf4 U+0034 +0xf5 U+0035 +0xf6 U+0036 +0xf7 U+0037 +0xf8 U+0038 +0xf9 U+0039 +0xfa U+00b3 +0xfb U+00db +0xfc U+00dc +0xfd U+00d9 +0xfe U+00da +0xff U+009f diff --git a/jdk/make/tools/CharsetMapping/IBM278.nr b/jdk/make/tools/CharsetMapping/IBM278.nr new file mode 100644 index 00000000000..675451906d4 --- /dev/null +++ b/jdk/make/tools/CharsetMapping/IBM278.nr @@ -0,0 +1 @@ +0x25 U+000a diff --git a/jdk/make/tools/CharsetMapping/IBM280.c2b b/jdk/make/tools/CharsetMapping/IBM280.c2b new file mode 100644 index 00000000000..6cb38028124 --- /dev/null +++ b/jdk/make/tools/CharsetMapping/IBM280.c2b @@ -0,0 +1 @@ +0x15 U+0085 diff --git a/jdk/make/tools/CharsetMapping/IBM280.map b/jdk/make/tools/CharsetMapping/IBM280.map new file mode 100644 index 00000000000..77fe94f5e8c --- /dev/null +++ b/jdk/make/tools/CharsetMapping/IBM280.map @@ -0,0 +1,257 @@ +#Generated from IBM280.java +0x00 U+0000 +0x01 U+0001 +0x02 U+0002 +0x03 U+0003 +0x04 U+009c +0x05 U+0009 +0x06 U+0086 +0x07 U+007f +0x08 U+0097 +0x09 U+008d +0x0a U+008e +0x0b U+000b +0x0c U+000c +0x0d U+000d +0x0e U+000e +0x0f U+000f +0x10 U+0010 +0x11 U+0011 +0x12 U+0012 +0x13 U+0013 +0x14 U+009d +0x15 U+000a +0x16 U+0008 +0x17 U+0087 +0x18 U+0018 +0x19 U+0019 +0x1a U+0092 +0x1b U+008f +0x1c U+001c +0x1d U+001d +0x1e U+001e +0x1f U+001f +0x20 U+0080 +0x21 U+0081 +0x22 U+0082 +0x23 U+0083 +0x24 U+0084 +0x25 U+000a +0x26 U+0017 +0x27 U+001b +0x28 U+0088 +0x29 U+0089 +0x2a U+008a +0x2b U+008b +0x2c U+008c +0x2d U+0005 +0x2e U+0006 +0x2f U+0007 +0x30 U+0090 +0x31 U+0091 +0x32 U+0016 +0x33 U+0093 +0x34 U+0094 +0x35 U+0095 +0x36 U+0096 +0x37 U+0004 +0x38 U+0098 +0x39 U+0099 +0x3a U+009a +0x3b U+009b +0x3c U+0014 +0x3d U+0015 +0x3e U+009e +0x3f U+001a +0x40 U+0020 +0x41 U+00a0 +0x42 U+00e2 +0x43 U+00e4 +0x44 U+007b +0x45 U+00e1 +0x46 U+00e3 +0x47 U+00e5 +0x48 U+005c +0x49 U+00f1 +0x4a U+00b0 +0x4b U+002e +0x4c U+003c +0x4d U+0028 +0x4e U+002b +0x4f U+0021 +0x50 U+0026 +0x51 U+005d +0x52 U+00ea +0x53 U+00eb +0x54 U+007d +0x55 U+00ed +0x56 U+00ee +0x57 U+00ef +0x58 U+007e +0x59 U+00df +0x5a U+00e9 +0x5b U+0024 +0x5c U+002a +0x5d U+0029 +0x5e U+003b +0x5f U+005e +0x60 U+002d +0x61 U+002f +0x62 U+00c2 +0x63 U+00c4 +0x64 U+00c0 +0x65 U+00c1 +0x66 U+00c3 +0x67 U+00c5 +0x68 U+00c7 +0x69 U+00d1 +0x6a U+00f2 +0x6b U+002c +0x6c U+0025 +0x6d U+005f +0x6e U+003e +0x6f U+003f +0x70 U+00f8 +0x71 U+00c9 +0x72 U+00ca +0x73 U+00cb +0x74 U+00c8 +0x75 U+00cd +0x76 U+00ce +0x77 U+00cf +0x78 U+00cc +0x79 U+00f9 +0x7a U+003a +0x7b U+00a3 +0x7c U+00a7 +0x7d U+0027 +0x7e U+003d +0x7f U+0022 +0x80 U+00d8 +0x81 U+0061 +0x82 U+0062 +0x83 U+0063 +0x84 U+0064 +0x85 U+0065 +0x86 U+0066 +0x87 U+0067 +0x88 U+0068 +0x89 U+0069 +0x8a U+00ab +0x8b U+00bb +0x8c U+00f0 +0x8d U+00fd +0x8e U+00fe +0x8f U+00b1 +0x90 U+005b +0x91 U+006a +0x92 U+006b +0x93 U+006c +0x94 U+006d +0x95 U+006e +0x96 U+006f +0x97 U+0070 +0x98 U+0071 +0x99 U+0072 +0x9a U+00aa +0x9b U+00ba +0x9c U+00e6 +0x9d U+00b8 +0x9e U+00c6 +0x9f U+00a4 +0xa0 U+00b5 +0xa1 U+00ec +0xa2 U+0073 +0xa3 U+0074 +0xa4 U+0075 +0xa5 U+0076 +0xa6 U+0077 +0xa7 U+0078 +0xa8 U+0079 +0xa9 U+007a +0xaa U+00a1 +0xab U+00bf +0xac U+00d0 +0xad U+00dd +0xae U+00de +0xaf U+00ae +0xb0 U+00a2 +0xb1 U+0023 +0xb2 U+00a5 +0xb3 U+00b7 +0xb4 U+00a9 +0xb5 U+0040 +0xb6 U+00b6 +0xb7 U+00bc +0xb8 U+00bd +0xb9 U+00be +0xba U+00ac +0xbb U+007c +0xbc U+00af +0xbd U+00a8 +0xbe U+00b4 +0xbf U+00d7 +0xc0 U+00e0 +0xc1 U+0041 +0xc2 U+0042 +0xc3 U+0043 +0xc4 U+0044 +0xc5 U+0045 +0xc6 U+0046 +0xc7 U+0047 +0xc8 U+0048 +0xc9 U+0049 +0xca U+00ad +0xcb U+00f4 +0xcc U+00f6 +0xcd U+00a6 +0xce U+00f3 +0xcf U+00f5 +0xd0 U+00e8 +0xd1 U+004a +0xd2 U+004b +0xd3 U+004c +0xd4 U+004d +0xd5 U+004e +0xd6 U+004f +0xd7 U+0050 +0xd8 U+0051 +0xd9 U+0052 +0xda U+00b9 +0xdb U+00fb +0xdc U+00fc +0xdd U+0060 +0xde U+00fa +0xdf U+00ff +0xe0 U+00e7 +0xe1 U+00f7 +0xe2 U+0053 +0xe3 U+0054 +0xe4 U+0055 +0xe5 U+0056 +0xe6 U+0057 +0xe7 U+0058 +0xe8 U+0059 +0xe9 U+005a +0xea U+00b2 +0xeb U+00d4 +0xec U+00d6 +0xed U+00d2 +0xee U+00d3 +0xef U+00d5 +0xf0 U+0030 +0xf1 U+0031 +0xf2 U+0032 +0xf3 U+0033 +0xf4 U+0034 +0xf5 U+0035 +0xf6 U+0036 +0xf7 U+0037 +0xf8 U+0038 +0xf9 U+0039 +0xfa U+00b3 +0xfb U+00db +0xfc U+00dc +0xfd U+00d9 +0xfe U+00da +0xff U+009f diff --git a/jdk/make/tools/CharsetMapping/IBM280.nr b/jdk/make/tools/CharsetMapping/IBM280.nr new file mode 100644 index 00000000000..675451906d4 --- /dev/null +++ b/jdk/make/tools/CharsetMapping/IBM280.nr @@ -0,0 +1 @@ +0x25 U+000a diff --git a/jdk/make/tools/CharsetMapping/IBM284.c2b b/jdk/make/tools/CharsetMapping/IBM284.c2b new file mode 100644 index 00000000000..6cb38028124 --- /dev/null +++ b/jdk/make/tools/CharsetMapping/IBM284.c2b @@ -0,0 +1 @@ +0x15 U+0085 diff --git a/jdk/make/tools/CharsetMapping/IBM284.map b/jdk/make/tools/CharsetMapping/IBM284.map new file mode 100644 index 00000000000..c3be08c8475 --- /dev/null +++ b/jdk/make/tools/CharsetMapping/IBM284.map @@ -0,0 +1,257 @@ +#Generated from IBM284.java +0x00 U+0000 +0x01 U+0001 +0x02 U+0002 +0x03 U+0003 +0x04 U+009c +0x05 U+0009 +0x06 U+0086 +0x07 U+007f +0x08 U+0097 +0x09 U+008d +0x0a U+008e +0x0b U+000b +0x0c U+000c +0x0d U+000d +0x0e U+000e +0x0f U+000f +0x10 U+0010 +0x11 U+0011 +0x12 U+0012 +0x13 U+0013 +0x14 U+009d +0x15 U+000a +0x16 U+0008 +0x17 U+0087 +0x18 U+0018 +0x19 U+0019 +0x1a U+0092 +0x1b U+008f +0x1c U+001c +0x1d U+001d +0x1e U+001e +0x1f U+001f +0x20 U+0080 +0x21 U+0081 +0x22 U+0082 +0x23 U+0083 +0x24 U+0084 +0x25 U+000a +0x26 U+0017 +0x27 U+001b +0x28 U+0088 +0x29 U+0089 +0x2a U+008a +0x2b U+008b +0x2c U+008c +0x2d U+0005 +0x2e U+0006 +0x2f U+0007 +0x30 U+0090 +0x31 U+0091 +0x32 U+0016 +0x33 U+0093 +0x34 U+0094 +0x35 U+0095 +0x36 U+0096 +0x37 U+0004 +0x38 U+0098 +0x39 U+0099 +0x3a U+009a +0x3b U+009b +0x3c U+0014 +0x3d U+0015 +0x3e U+009e +0x3f U+001a +0x40 U+0020 +0x41 U+00a0 +0x42 U+00e2 +0x43 U+00e4 +0x44 U+00e0 +0x45 U+00e1 +0x46 U+00e3 +0x47 U+00e5 +0x48 U+00e7 +0x49 U+00a6 +0x4a U+005b +0x4b U+002e +0x4c U+003c +0x4d U+0028 +0x4e U+002b +0x4f U+007c +0x50 U+0026 +0x51 U+00e9 +0x52 U+00ea +0x53 U+00eb +0x54 U+00e8 +0x55 U+00ed +0x56 U+00ee +0x57 U+00ef +0x58 U+00ec +0x59 U+00df +0x5a U+005d +0x5b U+0024 +0x5c U+002a +0x5d U+0029 +0x5e U+003b +0x5f U+00ac +0x60 U+002d +0x61 U+002f +0x62 U+00c2 +0x63 U+00c4 +0x64 U+00c0 +0x65 U+00c1 +0x66 U+00c3 +0x67 U+00c5 +0x68 U+00c7 +0x69 U+0023 +0x6a U+00f1 +0x6b U+002c +0x6c U+0025 +0x6d U+005f +0x6e U+003e +0x6f U+003f +0x70 U+00f8 +0x71 U+00c9 +0x72 U+00ca +0x73 U+00cb +0x74 U+00c8 +0x75 U+00cd +0x76 U+00ce +0x77 U+00cf +0x78 U+00cc +0x79 U+0060 +0x7a U+003a +0x7b U+00d1 +0x7c U+0040 +0x7d U+0027 +0x7e U+003d +0x7f U+0022 +0x80 U+00d8 +0x81 U+0061 +0x82 U+0062 +0x83 U+0063 +0x84 U+0064 +0x85 U+0065 +0x86 U+0066 +0x87 U+0067 +0x88 U+0068 +0x89 U+0069 +0x8a U+00ab +0x8b U+00bb +0x8c U+00f0 +0x8d U+00fd +0x8e U+00fe +0x8f U+00b1 +0x90 U+00b0 +0x91 U+006a +0x92 U+006b +0x93 U+006c +0x94 U+006d +0x95 U+006e +0x96 U+006f +0x97 U+0070 +0x98 U+0071 +0x99 U+0072 +0x9a U+00aa +0x9b U+00ba +0x9c U+00e6 +0x9d U+00b8 +0x9e U+00c6 +0x9f U+00a4 +0xa0 U+00b5 +0xa1 U+00a8 +0xa2 U+0073 +0xa3 U+0074 +0xa4 U+0075 +0xa5 U+0076 +0xa6 U+0077 +0xa7 U+0078 +0xa8 U+0079 +0xa9 U+007a +0xaa U+00a1 +0xab U+00bf +0xac U+00d0 +0xad U+00dd +0xae U+00de +0xaf U+00ae +0xb0 U+00a2 +0xb1 U+00a3 +0xb2 U+00a5 +0xb3 U+00b7 +0xb4 U+00a9 +0xb5 U+00a7 +0xb6 U+00b6 +0xb7 U+00bc +0xb8 U+00bd +0xb9 U+00be +0xba U+005e +0xbb U+0021 +0xbc U+00af +0xbd U+007e +0xbe U+00b4 +0xbf U+00d7 +0xc0 U+007b +0xc1 U+0041 +0xc2 U+0042 +0xc3 U+0043 +0xc4 U+0044 +0xc5 U+0045 +0xc6 U+0046 +0xc7 U+0047 +0xc8 U+0048 +0xc9 U+0049 +0xca U+00ad +0xcb U+00f4 +0xcc U+00f6 +0xcd U+00f2 +0xce U+00f3 +0xcf U+00f5 +0xd0 U+007d +0xd1 U+004a +0xd2 U+004b +0xd3 U+004c +0xd4 U+004d +0xd5 U+004e +0xd6 U+004f +0xd7 U+0050 +0xd8 U+0051 +0xd9 U+0052 +0xda U+00b9 +0xdb U+00fb +0xdc U+00fc +0xdd U+00f9 +0xde U+00fa +0xdf U+00ff +0xe0 U+005c +0xe1 U+00f7 +0xe2 U+0053 +0xe3 U+0054 +0xe4 U+0055 +0xe5 U+0056 +0xe6 U+0057 +0xe7 U+0058 +0xe8 U+0059 +0xe9 U+005a +0xea U+00b2 +0xeb U+00d4 +0xec U+00d6 +0xed U+00d2 +0xee U+00d3 +0xef U+00d5 +0xf0 U+0030 +0xf1 U+0031 +0xf2 U+0032 +0xf3 U+0033 +0xf4 U+0034 +0xf5 U+0035 +0xf6 U+0036 +0xf7 U+0037 +0xf8 U+0038 +0xf9 U+0039 +0xfa U+00b3 +0xfb U+00db +0xfc U+00dc +0xfd U+00d9 +0xfe U+00da +0xff U+009f diff --git a/jdk/make/tools/CharsetMapping/IBM284.nr b/jdk/make/tools/CharsetMapping/IBM284.nr new file mode 100644 index 00000000000..675451906d4 --- /dev/null +++ b/jdk/make/tools/CharsetMapping/IBM284.nr @@ -0,0 +1 @@ +0x25 U+000a diff --git a/jdk/make/tools/CharsetMapping/IBM285.c2b b/jdk/make/tools/CharsetMapping/IBM285.c2b new file mode 100644 index 00000000000..6cb38028124 --- /dev/null +++ b/jdk/make/tools/CharsetMapping/IBM285.c2b @@ -0,0 +1 @@ +0x15 U+0085 diff --git a/jdk/make/tools/CharsetMapping/IBM285.map b/jdk/make/tools/CharsetMapping/IBM285.map new file mode 100644 index 00000000000..3fca86cd558 --- /dev/null +++ b/jdk/make/tools/CharsetMapping/IBM285.map @@ -0,0 +1,257 @@ +#Generated from IBM285.java +0x00 U+0000 +0x01 U+0001 +0x02 U+0002 +0x03 U+0003 +0x04 U+009c +0x05 U+0009 +0x06 U+0086 +0x07 U+007f +0x08 U+0097 +0x09 U+008d +0x0a U+008e +0x0b U+000b +0x0c U+000c +0x0d U+000d +0x0e U+000e +0x0f U+000f +0x10 U+0010 +0x11 U+0011 +0x12 U+0012 +0x13 U+0013 +0x14 U+009d +0x15 U+000a +0x16 U+0008 +0x17 U+0087 +0x18 U+0018 +0x19 U+0019 +0x1a U+0092 +0x1b U+008f +0x1c U+001c +0x1d U+001d +0x1e U+001e +0x1f U+001f +0x20 U+0080 +0x21 U+0081 +0x22 U+0082 +0x23 U+0083 +0x24 U+0084 +0x25 U+000a +0x26 U+0017 +0x27 U+001b +0x28 U+0088 +0x29 U+0089 +0x2a U+008a +0x2b U+008b +0x2c U+008c +0x2d U+0005 +0x2e U+0006 +0x2f U+0007 +0x30 U+0090 +0x31 U+0091 +0x32 U+0016 +0x33 U+0093 +0x34 U+0094 +0x35 U+0095 +0x36 U+0096 +0x37 U+0004 +0x38 U+0098 +0x39 U+0099 +0x3a U+009a +0x3b U+009b +0x3c U+0014 +0x3d U+0015 +0x3e U+009e +0x3f U+001a +0x40 U+0020 +0x41 U+00a0 +0x42 U+00e2 +0x43 U+00e4 +0x44 U+00e0 +0x45 U+00e1 +0x46 U+00e3 +0x47 U+00e5 +0x48 U+00e7 +0x49 U+00f1 +0x4a U+0024 +0x4b U+002e +0x4c U+003c +0x4d U+0028 +0x4e U+002b +0x4f U+007c +0x50 U+0026 +0x51 U+00e9 +0x52 U+00ea +0x53 U+00eb +0x54 U+00e8 +0x55 U+00ed +0x56 U+00ee +0x57 U+00ef +0x58 U+00ec +0x59 U+00df +0x5a U+0021 +0x5b U+00a3 +0x5c U+002a +0x5d U+0029 +0x5e U+003b +0x5f U+00ac +0x60 U+002d +0x61 U+002f +0x62 U+00c2 +0x63 U+00c4 +0x64 U+00c0 +0x65 U+00c1 +0x66 U+00c3 +0x67 U+00c5 +0x68 U+00c7 +0x69 U+00d1 +0x6a U+00a6 +0x6b U+002c +0x6c U+0025 +0x6d U+005f +0x6e U+003e +0x6f U+003f +0x70 U+00f8 +0x71 U+00c9 +0x72 U+00ca +0x73 U+00cb +0x74 U+00c8 +0x75 U+00cd +0x76 U+00ce +0x77 U+00cf +0x78 U+00cc +0x79 U+0060 +0x7a U+003a +0x7b U+0023 +0x7c U+0040 +0x7d U+0027 +0x7e U+003d +0x7f U+0022 +0x80 U+00d8 +0x81 U+0061 +0x82 U+0062 +0x83 U+0063 +0x84 U+0064 +0x85 U+0065 +0x86 U+0066 +0x87 U+0067 +0x88 U+0068 +0x89 U+0069 +0x8a U+00ab +0x8b U+00bb +0x8c U+00f0 +0x8d U+00fd +0x8e U+00fe +0x8f U+00b1 +0x90 U+00b0 +0x91 U+006a +0x92 U+006b +0x93 U+006c +0x94 U+006d +0x95 U+006e +0x96 U+006f +0x97 U+0070 +0x98 U+0071 +0x99 U+0072 +0x9a U+00aa +0x9b U+00ba +0x9c U+00e6 +0x9d U+00b8 +0x9e U+00c6 +0x9f U+00a4 +0xa0 U+00b5 +0xa1 U+00af +0xa2 U+0073 +0xa3 U+0074 +0xa4 U+0075 +0xa5 U+0076 +0xa6 U+0077 +0xa7 U+0078 +0xa8 U+0079 +0xa9 U+007a +0xaa U+00a1 +0xab U+00bf +0xac U+00d0 +0xad U+00dd +0xae U+00de +0xaf U+00ae +0xb0 U+00a2 +0xb1 U+005b +0xb2 U+00a5 +0xb3 U+00b7 +0xb4 U+00a9 +0xb5 U+00a7 +0xb6 U+00b6 +0xb7 U+00bc +0xb8 U+00bd +0xb9 U+00be +0xba U+005e +0xbb U+005d +0xbc U+007e +0xbd U+00a8 +0xbe U+00b4 +0xbf U+00d7 +0xc0 U+007b +0xc1 U+0041 +0xc2 U+0042 +0xc3 U+0043 +0xc4 U+0044 +0xc5 U+0045 +0xc6 U+0046 +0xc7 U+0047 +0xc8 U+0048 +0xc9 U+0049 +0xca U+00ad +0xcb U+00f4 +0xcc U+00f6 +0xcd U+00f2 +0xce U+00f3 +0xcf U+00f5 +0xd0 U+007d +0xd1 U+004a +0xd2 U+004b +0xd3 U+004c +0xd4 U+004d +0xd5 U+004e +0xd6 U+004f +0xd7 U+0050 +0xd8 U+0051 +0xd9 U+0052 +0xda U+00b9 +0xdb U+00fb +0xdc U+00fc +0xdd U+00f9 +0xde U+00fa +0xdf U+00ff +0xe0 U+005c +0xe1 U+00f7 +0xe2 U+0053 +0xe3 U+0054 +0xe4 U+0055 +0xe5 U+0056 +0xe6 U+0057 +0xe7 U+0058 +0xe8 U+0059 +0xe9 U+005a +0xea U+00b2 +0xeb U+00d4 +0xec U+00d6 +0xed U+00d2 +0xee U+00d3 +0xef U+00d5 +0xf0 U+0030 +0xf1 U+0031 +0xf2 U+0032 +0xf3 U+0033 +0xf4 U+0034 +0xf5 U+0035 +0xf6 U+0036 +0xf7 U+0037 +0xf8 U+0038 +0xf9 U+0039 +0xfa U+00b3 +0xfb U+00db +0xfc U+00dc +0xfd U+00d9 +0xfe U+00da +0xff U+009f diff --git a/jdk/make/tools/CharsetMapping/IBM285.nr b/jdk/make/tools/CharsetMapping/IBM285.nr new file mode 100644 index 00000000000..675451906d4 --- /dev/null +++ b/jdk/make/tools/CharsetMapping/IBM285.nr @@ -0,0 +1 @@ +0x25 U+000a diff --git a/jdk/make/tools/CharsetMapping/IBM297.c2b b/jdk/make/tools/CharsetMapping/IBM297.c2b new file mode 100644 index 00000000000..6cb38028124 --- /dev/null +++ b/jdk/make/tools/CharsetMapping/IBM297.c2b @@ -0,0 +1 @@ +0x15 U+0085 diff --git a/jdk/make/tools/CharsetMapping/IBM297.map b/jdk/make/tools/CharsetMapping/IBM297.map new file mode 100644 index 00000000000..148087df03b --- /dev/null +++ b/jdk/make/tools/CharsetMapping/IBM297.map @@ -0,0 +1,257 @@ +#Generated from IBM297.java +0x00 U+0000 +0x01 U+0001 +0x02 U+0002 +0x03 U+0003 +0x04 U+009c +0x05 U+0009 +0x06 U+0086 +0x07 U+007f +0x08 U+0097 +0x09 U+008d +0x0a U+008e +0x0b U+000b +0x0c U+000c +0x0d U+000d +0x0e U+000e +0x0f U+000f +0x10 U+0010 +0x11 U+0011 +0x12 U+0012 +0x13 U+0013 +0x14 U+009d +0x15 U+000a +0x16 U+0008 +0x17 U+0087 +0x18 U+0018 +0x19 U+0019 +0x1a U+0092 +0x1b U+008f +0x1c U+001c +0x1d U+001d +0x1e U+001e +0x1f U+001f +0x20 U+0080 +0x21 U+0081 +0x22 U+0082 +0x23 U+0083 +0x24 U+0084 +0x25 U+000a +0x26 U+0017 +0x27 U+001b +0x28 U+0088 +0x29 U+0089 +0x2a U+008a +0x2b U+008b +0x2c U+008c +0x2d U+0005 +0x2e U+0006 +0x2f U+0007 +0x30 U+0090 +0x31 U+0091 +0x32 U+0016 +0x33 U+0093 +0x34 U+0094 +0x35 U+0095 +0x36 U+0096 +0x37 U+0004 +0x38 U+0098 +0x39 U+0099 +0x3a U+009a +0x3b U+009b +0x3c U+0014 +0x3d U+0015 +0x3e U+009e +0x3f U+001a +0x40 U+0020 +0x41 U+00a0 +0x42 U+00e2 +0x43 U+00e4 +0x44 U+0040 +0x45 U+00e1 +0x46 U+00e3 +0x47 U+00e5 +0x48 U+005c +0x49 U+00f1 +0x4a U+00b0 +0x4b U+002e +0x4c U+003c +0x4d U+0028 +0x4e U+002b +0x4f U+0021 +0x50 U+0026 +0x51 U+007b +0x52 U+00ea +0x53 U+00eb +0x54 U+007d +0x55 U+00ed +0x56 U+00ee +0x57 U+00ef +0x58 U+00ec +0x59 U+00df +0x5a U+00a7 +0x5b U+0024 +0x5c U+002a +0x5d U+0029 +0x5e U+003b +0x5f U+005e +0x60 U+002d +0x61 U+002f +0x62 U+00c2 +0x63 U+00c4 +0x64 U+00c0 +0x65 U+00c1 +0x66 U+00c3 +0x67 U+00c5 +0x68 U+00c7 +0x69 U+00d1 +0x6a U+00f9 +0x6b U+002c +0x6c U+0025 +0x6d U+005f +0x6e U+003e +0x6f U+003f +0x70 U+00f8 +0x71 U+00c9 +0x72 U+00ca +0x73 U+00cb +0x74 U+00c8 +0x75 U+00cd +0x76 U+00ce +0x77 U+00cf +0x78 U+00cc +0x79 U+00b5 +0x7a U+003a +0x7b U+00a3 +0x7c U+00e0 +0x7d U+0027 +0x7e U+003d +0x7f U+0022 +0x80 U+00d8 +0x81 U+0061 +0x82 U+0062 +0x83 U+0063 +0x84 U+0064 +0x85 U+0065 +0x86 U+0066 +0x87 U+0067 +0x88 U+0068 +0x89 U+0069 +0x8a U+00ab +0x8b U+00bb +0x8c U+00f0 +0x8d U+00fd +0x8e U+00fe +0x8f U+00b1 +0x90 U+005b +0x91 U+006a +0x92 U+006b +0x93 U+006c +0x94 U+006d +0x95 U+006e +0x96 U+006f +0x97 U+0070 +0x98 U+0071 +0x99 U+0072 +0x9a U+00aa +0x9b U+00ba +0x9c U+00e6 +0x9d U+00b8 +0x9e U+00c6 +0x9f U+00a4 +0xa0 U+0060 +0xa1 U+00a8 +0xa2 U+0073 +0xa3 U+0074 +0xa4 U+0075 +0xa5 U+0076 +0xa6 U+0077 +0xa7 U+0078 +0xa8 U+0079 +0xa9 U+007a +0xaa U+00a1 +0xab U+00bf +0xac U+00d0 +0xad U+00dd +0xae U+00de +0xaf U+00ae +0xb0 U+00a2 +0xb1 U+0023 +0xb2 U+00a5 +0xb3 U+00b7 +0xb4 U+00a9 +0xb5 U+005d +0xb6 U+00b6 +0xb7 U+00bc +0xb8 U+00bd +0xb9 U+00be +0xba U+00ac +0xbb U+007c +0xbc U+00af +0xbd U+007e +0xbe U+00b4 +0xbf U+00d7 +0xc0 U+00e9 +0xc1 U+0041 +0xc2 U+0042 +0xc3 U+0043 +0xc4 U+0044 +0xc5 U+0045 +0xc6 U+0046 +0xc7 U+0047 +0xc8 U+0048 +0xc9 U+0049 +0xca U+00ad +0xcb U+00f4 +0xcc U+00f6 +0xcd U+00f2 +0xce U+00f3 +0xcf U+00f5 +0xd0 U+00e8 +0xd1 U+004a +0xd2 U+004b +0xd3 U+004c +0xd4 U+004d +0xd5 U+004e +0xd6 U+004f +0xd7 U+0050 +0xd8 U+0051 +0xd9 U+0052 +0xda U+00b9 +0xdb U+00fb +0xdc U+00fc +0xdd U+00a6 +0xde U+00fa +0xdf U+00ff +0xe0 U+00e7 +0xe1 U+00f7 +0xe2 U+0053 +0xe3 U+0054 +0xe4 U+0055 +0xe5 U+0056 +0xe6 U+0057 +0xe7 U+0058 +0xe8 U+0059 +0xe9 U+005a +0xea U+00b2 +0xeb U+00d4 +0xec U+00d6 +0xed U+00d2 +0xee U+00d3 +0xef U+00d5 +0xf0 U+0030 +0xf1 U+0031 +0xf2 U+0032 +0xf3 U+0033 +0xf4 U+0034 +0xf5 U+0035 +0xf6 U+0036 +0xf7 U+0037 +0xf8 U+0038 +0xf9 U+0039 +0xfa U+00b3 +0xfb U+00db +0xfc U+00dc +0xfd U+00d9 +0xfe U+00da +0xff U+009f diff --git a/jdk/make/tools/CharsetMapping/IBM297.nr b/jdk/make/tools/CharsetMapping/IBM297.nr new file mode 100644 index 00000000000..675451906d4 --- /dev/null +++ b/jdk/make/tools/CharsetMapping/IBM297.nr @@ -0,0 +1 @@ +0x25 U+000a diff --git a/jdk/make/tools/CharsetMapping/IBM420.c2b b/jdk/make/tools/CharsetMapping/IBM420.c2b new file mode 100644 index 00000000000..6cb38028124 --- /dev/null +++ b/jdk/make/tools/CharsetMapping/IBM420.c2b @@ -0,0 +1 @@ +0x15 U+0085 diff --git a/jdk/make/tools/CharsetMapping/IBM420.map b/jdk/make/tools/CharsetMapping/IBM420.map new file mode 100644 index 00000000000..d4ce19249b3 --- /dev/null +++ b/jdk/make/tools/CharsetMapping/IBM420.map @@ -0,0 +1,257 @@ +#Generated from IBM420.java +0x00 U+0000 +0x01 U+0001 +0x02 U+0002 +0x03 U+0003 +0x04 U+009c +0x05 U+0009 +0x06 U+0086 +0x07 U+007f +0x08 U+0097 +0x09 U+008d +0x0a U+008e +0x0b U+000b +0x0c U+000c +0x0d U+000d +0x0e U+000e +0x0f U+000f +0x10 U+0010 +0x11 U+0011 +0x12 U+0012 +0x13 U+0013 +0x14 U+009d +0x15 U+000a +0x16 U+0008 +0x17 U+0087 +0x18 U+0018 +0x19 U+0019 +0x1a U+0092 +0x1b U+008f +0x1c U+001c +0x1d U+001d +0x1e U+001e +0x1f U+001f +0x20 U+0080 +0x21 U+0081 +0x22 U+0082 +0x23 U+0083 +0x24 U+0084 +0x25 U+000a +0x26 U+0017 +0x27 U+001b +0x28 U+0088 +0x29 U+0089 +0x2a U+008a +0x2b U+008b +0x2c U+008c +0x2d U+0005 +0x2e U+0006 +0x2f U+0007 +0x30 U+0090 +0x31 U+0091 +0x32 U+0016 +0x33 U+0093 +0x34 U+0094 +0x35 U+0095 +0x36 U+0096 +0x37 U+0004 +0x38 U+0098 +0x39 U+0099 +0x3a U+009a +0x3b U+009b +0x3c U+0014 +0x3d U+0015 +0x3e U+009e +0x3f U+001a +0x40 U+0020 +0x41 U+00a0 +0x42 U+fe7c +0x43 U+fe7d +0x44 U+0640 +0x45 U+f8fc +0x46 U+fe80 +0x47 U+fe81 +0x48 U+fe82 +0x49 U+fe83 +0x4a U+00a2 +0x4b U+002e +0x4c U+003c +0x4d U+0028 +0x4e U+002b +0x4f U+007c +0x50 U+0026 +0x51 U+fe84 +0x52 U+fe85 +0x53 U+fffd +0x54 U+fffd +0x55 U+fe8b +0x56 U+fe8d +0x57 U+fe8e +0x58 U+fe8f +0x59 U+fe91 +0x5a U+0021 +0x5b U+0024 +0x5c U+002a +0x5d U+0029 +0x5e U+003b +0x5f U+00ac +0x60 U+002d +0x61 U+002f +0x62 U+fe93 +0x63 U+fe95 +0x64 U+fe97 +0x65 U+fe99 +0x66 U+fe9b +0x67 U+fe9d +0x68 U+fe9f +0x69 U+fea1 +0x6a U+00a6 +0x6b U+002c +0x6c U+0025 +0x6d U+005f +0x6e U+003e +0x6f U+003f +0x70 U+fea3 +0x71 U+fea5 +0x72 U+fea7 +0x73 U+fea9 +0x74 U+feab +0x75 U+fead +0x76 U+feaf +0x77 U+f8f6 +0x78 U+feb3 +0x79 U+060c +0x7a U+003a +0x7b U+0023 +0x7c U+0040 +0x7d U+0027 +0x7e U+003d +0x7f U+0022 +0x80 U+f8f5 +0x81 U+0061 +0x82 U+0062 +0x83 U+0063 +0x84 U+0064 +0x85 U+0065 +0x86 U+0066 +0x87 U+0067 +0x88 U+0068 +0x89 U+0069 +0x8a U+feb7 +0x8b U+f8f4 +0x8c U+febb +0x8d U+f8f7 +0x8e U+febf +0x8f U+fec3 +0x90 U+fec7 +0x91 U+006a +0x92 U+006b +0x93 U+006c +0x94 U+006d +0x95 U+006e +0x96 U+006f +0x97 U+0070 +0x98 U+0071 +0x99 U+0072 +0x9a U+fec9 +0x9b U+feca +0x9c U+fecb +0x9d U+fecc +0x9e U+fecd +0x9f U+fece +0xa0 U+fecf +0xa1 U+00f7 +0xa2 U+0073 +0xa3 U+0074 +0xa4 U+0075 +0xa5 U+0076 +0xa6 U+0077 +0xa7 U+0078 +0xa8 U+0079 +0xa9 U+007a +0xaa U+fed0 +0xab U+fed1 +0xac U+fed3 +0xad U+fed5 +0xae U+fed7 +0xaf U+fed9 +0xb0 U+fedb +0xb1 U+fedd +0xb2 U+fef5 +0xb3 U+fef6 +0xb4 U+fef7 +0xb5 U+fef8 +0xb6 U+fffd +0xb7 U+fffd +0xb8 U+fefb +0xb9 U+fefc +0xba U+fedf +0xbb U+fee1 +0xbc U+fee3 +0xbd U+fee5 +0xbe U+fee7 +0xbf U+fee9 +0xc0 U+061b +0xc1 U+0041 +0xc2 U+0042 +0xc3 U+0043 +0xc4 U+0044 +0xc5 U+0045 +0xc6 U+0046 +0xc7 U+0047 +0xc8 U+0048 +0xc9 U+0049 +0xca U+00ad +0xcb U+feeb +0xcc U+fffd +0xcd U+feec +0xce U+fffd +0xcf U+feed +0xd0 U+061f +0xd1 U+004a +0xd2 U+004b +0xd3 U+004c +0xd4 U+004d +0xd5 U+004e +0xd6 U+004f +0xd7 U+0050 +0xd8 U+0051 +0xd9 U+0052 +0xda U+feef +0xdb U+fef0 +0xdc U+fef1 +0xdd U+fef2 +0xde U+fef3 +0xdf U+0660 +0xe0 U+00d7 +0xe1 U+2007 +0xe2 U+0053 +0xe3 U+0054 +0xe4 U+0055 +0xe5 U+0056 +0xe6 U+0057 +0xe7 U+0058 +0xe8 U+0059 +0xe9 U+005a +0xea U+0661 +0xeb U+0662 +0xec U+fffd +0xed U+0663 +0xee U+0664 +0xef U+0665 +0xf0 U+0030 +0xf1 U+0031 +0xf2 U+0032 +0xf3 U+0033 +0xf4 U+0034 +0xf5 U+0035 +0xf6 U+0036 +0xf7 U+0037 +0xf8 U+0038 +0xf9 U+0039 +0xfa U+fffd +0xfb U+0666 +0xfc U+0667 +0xfd U+0668 +0xfe U+0669 +0xff U+009f diff --git a/jdk/make/tools/CharsetMapping/IBM420.nr b/jdk/make/tools/CharsetMapping/IBM420.nr new file mode 100644 index 00000000000..675451906d4 --- /dev/null +++ b/jdk/make/tools/CharsetMapping/IBM420.nr @@ -0,0 +1 @@ +0x25 U+000a diff --git a/jdk/make/tools/CharsetMapping/IBM424.c2b b/jdk/make/tools/CharsetMapping/IBM424.c2b new file mode 100644 index 00000000000..6cb38028124 --- /dev/null +++ b/jdk/make/tools/CharsetMapping/IBM424.c2b @@ -0,0 +1 @@ +0x15 U+0085 diff --git a/jdk/make/tools/CharsetMapping/IBM424.map b/jdk/make/tools/CharsetMapping/IBM424.map new file mode 100644 index 00000000000..da580c5d232 --- /dev/null +++ b/jdk/make/tools/CharsetMapping/IBM424.map @@ -0,0 +1,257 @@ +#Generated from IBM424.java +0x00 U+0000 +0x01 U+0001 +0x02 U+0002 +0x03 U+0003 +0x04 U+009c +0x05 U+0009 +0x06 U+0086 +0x07 U+007f +0x08 U+0097 +0x09 U+008d +0x0a U+008e +0x0b U+000b +0x0c U+000c +0x0d U+000d +0x0e U+000e +0x0f U+000f +0x10 U+0010 +0x11 U+0011 +0x12 U+0012 +0x13 U+0013 +0x14 U+009d +0x15 U+000a +0x16 U+0008 +0x17 U+0087 +0x18 U+0018 +0x19 U+0019 +0x1a U+0092 +0x1b U+008f +0x1c U+001c +0x1d U+001d +0x1e U+001e +0x1f U+001f +0x20 U+0080 +0x21 U+0081 +0x22 U+0082 +0x23 U+0083 +0x24 U+0084 +0x25 U+000a +0x26 U+0017 +0x27 U+001b +0x28 U+0088 +0x29 U+0089 +0x2a U+008a +0x2b U+008b +0x2c U+008c +0x2d U+0005 +0x2e U+0006 +0x2f U+0007 +0x30 U+0090 +0x31 U+0091 +0x32 U+0016 +0x33 U+0093 +0x34 U+0094 +0x35 U+0095 +0x36 U+0096 +0x37 U+0004 +0x38 U+0098 +0x39 U+0099 +0x3a U+009a +0x3b U+009b +0x3c U+0014 +0x3d U+0015 +0x3e U+009e +0x3f U+001a +0x40 U+0020 +0x41 U+05d0 +0x42 U+05d1 +0x43 U+05d2 +0x44 U+05d3 +0x45 U+05d4 +0x46 U+05d5 +0x47 U+05d6 +0x48 U+05d7 +0x49 U+05d8 +0x4a U+00a2 +0x4b U+002e +0x4c U+003c +0x4d U+0028 +0x4e U+002b +0x4f U+007c +0x50 U+0026 +0x51 U+05d9 +0x52 U+05da +0x53 U+05db +0x54 U+05dc +0x55 U+05dd +0x56 U+05de +0x57 U+05df +0x58 U+05e0 +0x59 U+05e1 +0x5a U+0021 +0x5b U+0024 +0x5c U+002a +0x5d U+0029 +0x5e U+003b +0x5f U+00ac +0x60 U+002d +0x61 U+002f +0x62 U+05e2 +0x63 U+05e3 +0x64 U+05e4 +0x65 U+05e5 +0x66 U+05e6 +0x67 U+05e7 +0x68 U+05e8 +0x69 U+05e9 +0x6a U+00a6 +0x6b U+002c +0x6c U+0025 +0x6d U+005f +0x6e U+003e +0x6f U+003f +0x70 U+fffd +0x71 U+05ea +0x72 U+fffd +0x73 U+fffd +0x74 U+00a0 +0x75 U+fffd +0x76 U+fffd +0x77 U+fffd +0x78 U+2017 +0x79 U+0060 +0x7a U+003a +0x7b U+0023 +0x7c U+0040 +0x7d U+0027 +0x7e U+003d +0x7f U+0022 +0x80 U+fffd +0x81 U+0061 +0x82 U+0062 +0x83 U+0063 +0x84 U+0064 +0x85 U+0065 +0x86 U+0066 +0x87 U+0067 +0x88 U+0068 +0x89 U+0069 +0x8a U+00ab +0x8b U+00bb +0x8c U+fffd +0x8d U+fffd +0x8e U+fffd +0x8f U+00b1 +0x90 U+00b0 +0x91 U+006a +0x92 U+006b +0x93 U+006c +0x94 U+006d +0x95 U+006e +0x96 U+006f +0x97 U+0070 +0x98 U+0071 +0x99 U+0072 +0x9a U+fffd +0x9b U+fffd +0x9c U+fffd +0x9d U+00b8 +0x9e U+fffd +0x9f U+00a4 +0xa0 U+00b5 +0xa1 U+007e +0xa2 U+0073 +0xa3 U+0074 +0xa4 U+0075 +0xa5 U+0076 +0xa6 U+0077 +0xa7 U+0078 +0xa8 U+0079 +0xa9 U+007a +0xaa U+fffd +0xab U+fffd +0xac U+fffd +0xad U+fffd +0xae U+fffd +0xaf U+00ae +0xb0 U+005e +0xb1 U+00a3 +0xb2 U+00a5 +0xb3 U+2022 +0xb4 U+00a9 +0xb5 U+00a7 +0xb6 U+00b6 +0xb7 U+00bc +0xb8 U+00bd +0xb9 U+00be +0xba U+005b +0xbb U+005d +0xbc U+203e +0xbd U+00a8 +0xbe U+00b4 +0xbf U+00d7 +0xc0 U+007b +0xc1 U+0041 +0xc2 U+0042 +0xc3 U+0043 +0xc4 U+0044 +0xc5 U+0045 +0xc6 U+0046 +0xc7 U+0047 +0xc8 U+0048 +0xc9 U+0049 +0xca U+00ad +0xcb U+fffd +0xcc U+fffd +0xcd U+fffd +0xce U+fffd +0xcf U+fffd +0xd0 U+007d +0xd1 U+004a +0xd2 U+004b +0xd3 U+004c +0xd4 U+004d +0xd5 U+004e +0xd6 U+004f +0xd7 U+0050 +0xd8 U+0051 +0xd9 U+0052 +0xda U+00b9 +0xdb U+fffd +0xdc U+fffd +0xdd U+fffd +0xde U+fffd +0xdf U+fffd +0xe0 U+005c +0xe1 U+00f7 +0xe2 U+0053 +0xe3 U+0054 +0xe4 U+0055 +0xe5 U+0056 +0xe6 U+0057 +0xe7 U+0058 +0xe8 U+0059 +0xe9 U+005a +0xea U+00b2 +0xeb U+fffd +0xec U+fffd +0xed U+fffd +0xee U+fffd +0xef U+fffd +0xf0 U+0030 +0xf1 U+0031 +0xf2 U+0032 +0xf3 U+0033 +0xf4 U+0034 +0xf5 U+0035 +0xf6 U+0036 +0xf7 U+0037 +0xf8 U+0038 +0xf9 U+0039 +0xfa U+00b3 +0xfb U+fffd +0xfc U+fffd +0xfd U+fffd +0xfe U+fffd +0xff U+009f diff --git a/jdk/make/tools/CharsetMapping/IBM424.nr b/jdk/make/tools/CharsetMapping/IBM424.nr new file mode 100644 index 00000000000..675451906d4 --- /dev/null +++ b/jdk/make/tools/CharsetMapping/IBM424.nr @@ -0,0 +1 @@ +0x25 U+000a diff --git a/jdk/make/tools/CharsetMapping/IBM437.map b/jdk/make/tools/CharsetMapping/IBM437.map new file mode 100644 index 00000000000..2ef0f79cd3b --- /dev/null +++ b/jdk/make/tools/CharsetMapping/IBM437.map @@ -0,0 +1,257 @@ +#Generated from IBM437.java +0x00 U+0000 +0x01 U+0001 +0x02 U+0002 +0x03 U+0003 +0x04 U+0004 +0x05 U+0005 +0x06 U+0006 +0x07 U+0007 +0x08 U+0008 +0x09 U+0009 +0x0a U+000a +0x0b U+000b +0x0c U+000c +0x0d U+000d +0x0e U+000e +0x0f U+000f +0x10 U+0010 +0x11 U+0011 +0x12 U+0012 +0x13 U+0013 +0x14 U+0014 +0x15 U+0015 +0x16 U+0016 +0x17 U+0017 +0x18 U+0018 +0x19 U+0019 +0x1a U+001a +0x1b U+001b +0x1c U+001c +0x1d U+001d +0x1e U+001e +0x1f U+001f +0x20 U+0020 +0x21 U+0021 +0x22 U+0022 +0x23 U+0023 +0x24 U+0024 +0x25 U+0025 +0x26 U+0026 +0x27 U+0027 +0x28 U+0028 +0x29 U+0029 +0x2a U+002a +0x2b U+002b +0x2c U+002c +0x2d U+002d +0x2e U+002e +0x2f U+002f +0x30 U+0030 +0x31 U+0031 +0x32 U+0032 +0x33 U+0033 +0x34 U+0034 +0x35 U+0035 +0x36 U+0036 +0x37 U+0037 +0x38 U+0038 +0x39 U+0039 +0x3a U+003a +0x3b U+003b +0x3c U+003c +0x3d U+003d +0x3e U+003e +0x3f U+003f +0x40 U+0040 +0x41 U+0041 +0x42 U+0042 +0x43 U+0043 +0x44 U+0044 +0x45 U+0045 +0x46 U+0046 +0x47 U+0047 +0x48 U+0048 +0x49 U+0049 +0x4a U+004a +0x4b U+004b +0x4c U+004c +0x4d U+004d +0x4e U+004e +0x4f U+004f +0x50 U+0050 +0x51 U+0051 +0x52 U+0052 +0x53 U+0053 +0x54 U+0054 +0x55 U+0055 +0x56 U+0056 +0x57 U+0057 +0x58 U+0058 +0x59 U+0059 +0x5a U+005a +0x5b U+005b +0x5c U+005c +0x5d U+005d +0x5e U+005e +0x5f U+005f +0x60 U+0060 +0x61 U+0061 +0x62 U+0062 +0x63 U+0063 +0x64 U+0064 +0x65 U+0065 +0x66 U+0066 +0x67 U+0067 +0x68 U+0068 +0x69 U+0069 +0x6a U+006a +0x6b U+006b +0x6c U+006c +0x6d U+006d +0x6e U+006e +0x6f U+006f +0x70 U+0070 +0x71 U+0071 +0x72 U+0072 +0x73 U+0073 +0x74 U+0074 +0x75 U+0075 +0x76 U+0076 +0x77 U+0077 +0x78 U+0078 +0x79 U+0079 +0x7a U+007a +0x7b U+007b +0x7c U+007c +0x7d U+007d +0x7e U+007e +0x7f U+007f +0x80 U+00c7 +0x81 U+00fc +0x82 U+00e9 +0x83 U+00e2 +0x84 U+00e4 +0x85 U+00e0 +0x86 U+00e5 +0x87 U+00e7 +0x88 U+00ea +0x89 U+00eb +0x8a U+00e8 +0x8b U+00ef +0x8c U+00ee +0x8d U+00ec +0x8e U+00c4 +0x8f U+00c5 +0x90 U+00c9 +0x91 U+00e6 +0x92 U+00c6 +0x93 U+00f4 +0x94 U+00f6 +0x95 U+00f2 +0x96 U+00fb +0x97 U+00f9 +0x98 U+00ff +0x99 U+00d6 +0x9a U+00dc +0x9b U+00a2 +0x9c U+00a3 +0x9d U+00a5 +0x9e U+20a7 +0x9f U+0192 +0xa0 U+00e1 +0xa1 U+00ed +0xa2 U+00f3 +0xa3 U+00fa +0xa4 U+00f1 +0xa5 U+00d1 +0xa6 U+00aa +0xa7 U+00ba +0xa8 U+00bf +0xa9 U+2310 +0xaa U+00ac +0xab U+00bd +0xac U+00bc +0xad U+00a1 +0xae U+00ab +0xaf U+00bb +0xb0 U+2591 +0xb1 U+2592 +0xb2 U+2593 +0xb3 U+2502 +0xb4 U+2524 +0xb5 U+2561 +0xb6 U+2562 +0xb7 U+2556 +0xb8 U+2555 +0xb9 U+2563 +0xba U+2551 +0xbb U+2557 +0xbc U+255d +0xbd U+255c +0xbe U+255b +0xbf U+2510 +0xc0 U+2514 +0xc1 U+2534 +0xc2 U+252c +0xc3 U+251c +0xc4 U+2500 +0xc5 U+253c +0xc6 U+255e +0xc7 U+255f +0xc8 U+255a +0xc9 U+2554 +0xca U+2569 +0xcb U+2566 +0xcc U+2560 +0xcd U+2550 +0xce U+256c +0xcf U+2567 +0xd0 U+2568 +0xd1 U+2564 +0xd2 U+2565 +0xd3 U+2559 +0xd4 U+2558 +0xd5 U+2552 +0xd6 U+2553 +0xd7 U+256b +0xd8 U+256a +0xd9 U+2518 +0xda U+250c +0xdb U+2588 +0xdc U+2584 +0xdd U+258c +0xde U+2590 +0xdf U+2580 +0xe0 U+03b1 +0xe1 U+00df +0xe2 U+0393 +0xe3 U+03c0 +0xe4 U+03a3 +0xe5 U+03c3 +0xe6 U+00b5 +0xe7 U+03c4 +0xe8 U+03a6 +0xe9 U+0398 +0xea U+03a9 +0xeb U+03b4 +0xec U+221e +0xed U+03c6 +0xee U+03b5 +0xef U+2229 +0xf0 U+2261 +0xf1 U+00b1 +0xf2 U+2265 +0xf3 U+2264 +0xf4 U+2320 +0xf5 U+2321 +0xf6 U+00f7 +0xf7 U+2248 +0xf8 U+00b0 +0xf9 U+2219 +0xfa U+00b7 +0xfb U+221a +0xfc U+207f +0xfd U+00b2 +0xfe U+25a0 +0xff U+00a0 diff --git a/jdk/make/tools/CharsetMapping/IBM500.c2b b/jdk/make/tools/CharsetMapping/IBM500.c2b new file mode 100644 index 00000000000..6cb38028124 --- /dev/null +++ b/jdk/make/tools/CharsetMapping/IBM500.c2b @@ -0,0 +1 @@ +0x15 U+0085 diff --git a/jdk/make/tools/CharsetMapping/IBM500.map b/jdk/make/tools/CharsetMapping/IBM500.map new file mode 100644 index 00000000000..31d11e2d10e --- /dev/null +++ b/jdk/make/tools/CharsetMapping/IBM500.map @@ -0,0 +1,257 @@ +#Generated from IBM500.java +0x00 U+0000 +0x01 U+0001 +0x02 U+0002 +0x03 U+0003 +0x04 U+009c +0x05 U+0009 +0x06 U+0086 +0x07 U+007f +0x08 U+0097 +0x09 U+008d +0x0a U+008e +0x0b U+000b +0x0c U+000c +0x0d U+000d +0x0e U+000e +0x0f U+000f +0x10 U+0010 +0x11 U+0011 +0x12 U+0012 +0x13 U+0013 +0x14 U+009d +0x15 U+000a +0x16 U+0008 +0x17 U+0087 +0x18 U+0018 +0x19 U+0019 +0x1a U+0092 +0x1b U+008f +0x1c U+001c +0x1d U+001d +0x1e U+001e +0x1f U+001f +0x20 U+0080 +0x21 U+0081 +0x22 U+0082 +0x23 U+0083 +0x24 U+0084 +0x25 U+000a +0x26 U+0017 +0x27 U+001b +0x28 U+0088 +0x29 U+0089 +0x2a U+008a +0x2b U+008b +0x2c U+008c +0x2d U+0005 +0x2e U+0006 +0x2f U+0007 +0x30 U+0090 +0x31 U+0091 +0x32 U+0016 +0x33 U+0093 +0x34 U+0094 +0x35 U+0095 +0x36 U+0096 +0x37 U+0004 +0x38 U+0098 +0x39 U+0099 +0x3a U+009a +0x3b U+009b +0x3c U+0014 +0x3d U+0015 +0x3e U+009e +0x3f U+001a +0x40 U+0020 +0x41 U+00a0 +0x42 U+00e2 +0x43 U+00e4 +0x44 U+00e0 +0x45 U+00e1 +0x46 U+00e3 +0x47 U+00e5 +0x48 U+00e7 +0x49 U+00f1 +0x4a U+005b +0x4b U+002e +0x4c U+003c +0x4d U+0028 +0x4e U+002b +0x4f U+0021 +0x50 U+0026 +0x51 U+00e9 +0x52 U+00ea +0x53 U+00eb +0x54 U+00e8 +0x55 U+00ed +0x56 U+00ee +0x57 U+00ef +0x58 U+00ec +0x59 U+00df +0x5a U+005d +0x5b U+0024 +0x5c U+002a +0x5d U+0029 +0x5e U+003b +0x5f U+005e +0x60 U+002d +0x61 U+002f +0x62 U+00c2 +0x63 U+00c4 +0x64 U+00c0 +0x65 U+00c1 +0x66 U+00c3 +0x67 U+00c5 +0x68 U+00c7 +0x69 U+00d1 +0x6a U+00a6 +0x6b U+002c +0x6c U+0025 +0x6d U+005f +0x6e U+003e +0x6f U+003f +0x70 U+00f8 +0x71 U+00c9 +0x72 U+00ca +0x73 U+00cb +0x74 U+00c8 +0x75 U+00cd +0x76 U+00ce +0x77 U+00cf +0x78 U+00cc +0x79 U+0060 +0x7a U+003a +0x7b U+0023 +0x7c U+0040 +0x7d U+0027 +0x7e U+003d +0x7f U+0022 +0x80 U+00d8 +0x81 U+0061 +0x82 U+0062 +0x83 U+0063 +0x84 U+0064 +0x85 U+0065 +0x86 U+0066 +0x87 U+0067 +0x88 U+0068 +0x89 U+0069 +0x8a U+00ab +0x8b U+00bb +0x8c U+00f0 +0x8d U+00fd +0x8e U+00fe +0x8f U+00b1 +0x90 U+00b0 +0x91 U+006a +0x92 U+006b +0x93 U+006c +0x94 U+006d +0x95 U+006e +0x96 U+006f +0x97 U+0070 +0x98 U+0071 +0x99 U+0072 +0x9a U+00aa +0x9b U+00ba +0x9c U+00e6 +0x9d U+00b8 +0x9e U+00c6 +0x9f U+00a4 +0xa0 U+00b5 +0xa1 U+007e +0xa2 U+0073 +0xa3 U+0074 +0xa4 U+0075 +0xa5 U+0076 +0xa6 U+0077 +0xa7 U+0078 +0xa8 U+0079 +0xa9 U+007a +0xaa U+00a1 +0xab U+00bf +0xac U+00d0 +0xad U+00dd +0xae U+00de +0xaf U+00ae +0xb0 U+00a2 +0xb1 U+00a3 +0xb2 U+00a5 +0xb3 U+00b7 +0xb4 U+00a9 +0xb5 U+00a7 +0xb6 U+00b6 +0xb7 U+00bc +0xb8 U+00bd +0xb9 U+00be +0xba U+00ac +0xbb U+007c +0xbc U+00af +0xbd U+00a8 +0xbe U+00b4 +0xbf U+00d7 +0xc0 U+007b +0xc1 U+0041 +0xc2 U+0042 +0xc3 U+0043 +0xc4 U+0044 +0xc5 U+0045 +0xc6 U+0046 +0xc7 U+0047 +0xc8 U+0048 +0xc9 U+0049 +0xca U+00ad +0xcb U+00f4 +0xcc U+00f6 +0xcd U+00f2 +0xce U+00f3 +0xcf U+00f5 +0xd0 U+007d +0xd1 U+004a +0xd2 U+004b +0xd3 U+004c +0xd4 U+004d +0xd5 U+004e +0xd6 U+004f +0xd7 U+0050 +0xd8 U+0051 +0xd9 U+0052 +0xda U+00b9 +0xdb U+00fb +0xdc U+00fc +0xdd U+00f9 +0xde U+00fa +0xdf U+00ff +0xe0 U+005c +0xe1 U+00f7 +0xe2 U+0053 +0xe3 U+0054 +0xe4 U+0055 +0xe5 U+0056 +0xe6 U+0057 +0xe7 U+0058 +0xe8 U+0059 +0xe9 U+005a +0xea U+00b2 +0xeb U+00d4 +0xec U+00d6 +0xed U+00d2 +0xee U+00d3 +0xef U+00d5 +0xf0 U+0030 +0xf1 U+0031 +0xf2 U+0032 +0xf3 U+0033 +0xf4 U+0034 +0xf5 U+0035 +0xf6 U+0036 +0xf7 U+0037 +0xf8 U+0038 +0xf9 U+0039 +0xfa U+00b3 +0xfb U+00db +0xfc U+00dc +0xfd U+00d9 +0xfe U+00da +0xff U+009f diff --git a/jdk/make/tools/CharsetMapping/IBM500.nr b/jdk/make/tools/CharsetMapping/IBM500.nr new file mode 100644 index 00000000000..675451906d4 --- /dev/null +++ b/jdk/make/tools/CharsetMapping/IBM500.nr @@ -0,0 +1 @@ +0x25 U+000a diff --git a/jdk/make/tools/CharsetMapping/IBM737.map b/jdk/make/tools/CharsetMapping/IBM737.map new file mode 100644 index 00000000000..c171b421f4e --- /dev/null +++ b/jdk/make/tools/CharsetMapping/IBM737.map @@ -0,0 +1,257 @@ +#Generated from IBM737.java +0x00 U+0000 +0x01 U+0001 +0x02 U+0002 +0x03 U+0003 +0x04 U+0004 +0x05 U+0005 +0x06 U+0006 +0x07 U+0007 +0x08 U+0008 +0x09 U+0009 +0x0a U+000a +0x0b U+000b +0x0c U+000c +0x0d U+000d +0x0e U+000e +0x0f U+000f +0x10 U+0010 +0x11 U+0011 +0x12 U+0012 +0x13 U+0013 +0x14 U+0014 +0x15 U+0015 +0x16 U+0016 +0x17 U+0017 +0x18 U+0018 +0x19 U+0019 +0x1a U+001a +0x1b U+001b +0x1c U+001c +0x1d U+001d +0x1e U+001e +0x1f U+001f +0x20 U+0020 +0x21 U+0021 +0x22 U+0022 +0x23 U+0023 +0x24 U+0024 +0x25 U+0025 +0x26 U+0026 +0x27 U+0027 +0x28 U+0028 +0x29 U+0029 +0x2a U+002a +0x2b U+002b +0x2c U+002c +0x2d U+002d +0x2e U+002e +0x2f U+002f +0x30 U+0030 +0x31 U+0031 +0x32 U+0032 +0x33 U+0033 +0x34 U+0034 +0x35 U+0035 +0x36 U+0036 +0x37 U+0037 +0x38 U+0038 +0x39 U+0039 +0x3a U+003a +0x3b U+003b +0x3c U+003c +0x3d U+003d +0x3e U+003e +0x3f U+003f +0x40 U+0040 +0x41 U+0041 +0x42 U+0042 +0x43 U+0043 +0x44 U+0044 +0x45 U+0045 +0x46 U+0046 +0x47 U+0047 +0x48 U+0048 +0x49 U+0049 +0x4a U+004a +0x4b U+004b +0x4c U+004c +0x4d U+004d +0x4e U+004e +0x4f U+004f +0x50 U+0050 +0x51 U+0051 +0x52 U+0052 +0x53 U+0053 +0x54 U+0054 +0x55 U+0055 +0x56 U+0056 +0x57 U+0057 +0x58 U+0058 +0x59 U+0059 +0x5a U+005a +0x5b U+005b +0x5c U+005c +0x5d U+005d +0x5e U+005e +0x5f U+005f +0x60 U+0060 +0x61 U+0061 +0x62 U+0062 +0x63 U+0063 +0x64 U+0064 +0x65 U+0065 +0x66 U+0066 +0x67 U+0067 +0x68 U+0068 +0x69 U+0069 +0x6a U+006a +0x6b U+006b +0x6c U+006c +0x6d U+006d +0x6e U+006e +0x6f U+006f +0x70 U+0070 +0x71 U+0071 +0x72 U+0072 +0x73 U+0073 +0x74 U+0074 +0x75 U+0075 +0x76 U+0076 +0x77 U+0077 +0x78 U+0078 +0x79 U+0079 +0x7a U+007a +0x7b U+007b +0x7c U+007c +0x7d U+007d +0x7e U+007e +0x7f U+007f +0x80 U+0391 +0x81 U+0392 +0x82 U+0393 +0x83 U+0394 +0x84 U+0395 +0x85 U+0396 +0x86 U+0397 +0x87 U+0398 +0x88 U+0399 +0x89 U+039a +0x8a U+039b +0x8b U+039c +0x8c U+039d +0x8d U+039e +0x8e U+039f +0x8f U+03a0 +0x90 U+03a1 +0x91 U+03a3 +0x92 U+03a4 +0x93 U+03a5 +0x94 U+03a6 +0x95 U+03a7 +0x96 U+03a8 +0x97 U+03a9 +0x98 U+03b1 +0x99 U+03b2 +0x9a U+03b3 +0x9b U+03b4 +0x9c U+03b5 +0x9d U+03b6 +0x9e U+03b7 +0x9f U+03b8 +0xa0 U+03b9 +0xa1 U+03ba +0xa2 U+03bb +0xa3 U+03bc +0xa4 U+03bd +0xa5 U+03be +0xa6 U+03bf +0xa7 U+03c0 +0xa8 U+03c1 +0xa9 U+03c3 +0xaa U+03c2 +0xab U+03c4 +0xac U+03c5 +0xad U+03c6 +0xae U+03c7 +0xaf U+03c8 +0xb0 U+2591 +0xb1 U+2592 +0xb2 U+2593 +0xb3 U+2502 +0xb4 U+2524 +0xb5 U+2561 +0xb6 U+2562 +0xb7 U+2556 +0xb8 U+2555 +0xb9 U+2563 +0xba U+2551 +0xbb U+2557 +0xbc U+255d +0xbd U+255c +0xbe U+255b +0xbf U+2510 +0xc0 U+2514 +0xc1 U+2534 +0xc2 U+252c +0xc3 U+251c +0xc4 U+2500 +0xc5 U+253c +0xc6 U+255e +0xc7 U+255f +0xc8 U+255a +0xc9 U+2554 +0xca U+2569 +0xcb U+2566 +0xcc U+2560 +0xcd U+2550 +0xce U+256c +0xcf U+2567 +0xd0 U+2568 +0xd1 U+2564 +0xd2 U+2565 +0xd3 U+2559 +0xd4 U+2558 +0xd5 U+2552 +0xd6 U+2553 +0xd7 U+256b +0xd8 U+256a +0xd9 U+2518 +0xda U+250c +0xdb U+2588 +0xdc U+2584 +0xdd U+258c +0xde U+2590 +0xdf U+2580 +0xe0 U+03c9 +0xe1 U+03ac +0xe2 U+03ad +0xe3 U+03ae +0xe4 U+03ca +0xe5 U+03af +0xe6 U+03cc +0xe7 U+03cd +0xe8 U+03cb +0xe9 U+03ce +0xea U+0386 +0xeb U+0388 +0xec U+0389 +0xed U+038a +0xee U+038c +0xef U+038e +0xf0 U+038f +0xf1 U+00b1 +0xf2 U+2265 +0xf3 U+2264 +0xf4 U+03aa +0xf5 U+03ab +0xf6 U+00f7 +0xf7 U+2248 +0xf8 U+00b0 +0xf9 U+2219 +0xfa U+00b7 +0xfb U+221a +0xfc U+207f +0xfd U+00b2 +0xfe U+25a0 +0xff U+00a0 diff --git a/jdk/make/tools/CharsetMapping/IBM775.map b/jdk/make/tools/CharsetMapping/IBM775.map new file mode 100644 index 00000000000..a023d0e1bf1 --- /dev/null +++ b/jdk/make/tools/CharsetMapping/IBM775.map @@ -0,0 +1,257 @@ +#Generated from IBM775.java +0x00 U+0000 +0x01 U+0001 +0x02 U+0002 +0x03 U+0003 +0x04 U+0004 +0x05 U+0005 +0x06 U+0006 +0x07 U+0007 +0x08 U+0008 +0x09 U+0009 +0x0a U+000a +0x0b U+000b +0x0c U+000c +0x0d U+000d +0x0e U+000e +0x0f U+000f +0x10 U+0010 +0x11 U+0011 +0x12 U+0012 +0x13 U+0013 +0x14 U+0014 +0x15 U+0015 +0x16 U+0016 +0x17 U+0017 +0x18 U+0018 +0x19 U+0019 +0x1a U+001a +0x1b U+001b +0x1c U+001c +0x1d U+001d +0x1e U+001e +0x1f U+001f +0x20 U+0020 +0x21 U+0021 +0x22 U+0022 +0x23 U+0023 +0x24 U+0024 +0x25 U+0025 +0x26 U+0026 +0x27 U+0027 +0x28 U+0028 +0x29 U+0029 +0x2a U+002a +0x2b U+002b +0x2c U+002c +0x2d U+002d +0x2e U+002e +0x2f U+002f +0x30 U+0030 +0x31 U+0031 +0x32 U+0032 +0x33 U+0033 +0x34 U+0034 +0x35 U+0035 +0x36 U+0036 +0x37 U+0037 +0x38 U+0038 +0x39 U+0039 +0x3a U+003a +0x3b U+003b +0x3c U+003c +0x3d U+003d +0x3e U+003e +0x3f U+003f +0x40 U+0040 +0x41 U+0041 +0x42 U+0042 +0x43 U+0043 +0x44 U+0044 +0x45 U+0045 +0x46 U+0046 +0x47 U+0047 +0x48 U+0048 +0x49 U+0049 +0x4a U+004a +0x4b U+004b +0x4c U+004c +0x4d U+004d +0x4e U+004e +0x4f U+004f +0x50 U+0050 +0x51 U+0051 +0x52 U+0052 +0x53 U+0053 +0x54 U+0054 +0x55 U+0055 +0x56 U+0056 +0x57 U+0057 +0x58 U+0058 +0x59 U+0059 +0x5a U+005a +0x5b U+005b +0x5c U+005c +0x5d U+005d +0x5e U+005e +0x5f U+005f +0x60 U+0060 +0x61 U+0061 +0x62 U+0062 +0x63 U+0063 +0x64 U+0064 +0x65 U+0065 +0x66 U+0066 +0x67 U+0067 +0x68 U+0068 +0x69 U+0069 +0x6a U+006a +0x6b U+006b +0x6c U+006c +0x6d U+006d +0x6e U+006e +0x6f U+006f +0x70 U+0070 +0x71 U+0071 +0x72 U+0072 +0x73 U+0073 +0x74 U+0074 +0x75 U+0075 +0x76 U+0076 +0x77 U+0077 +0x78 U+0078 +0x79 U+0079 +0x7a U+007a +0x7b U+007b +0x7c U+007c +0x7d U+007d +0x7e U+007e +0x7f U+007f +0x80 U+0106 +0x81 U+00fc +0x82 U+00e9 +0x83 U+0101 +0x84 U+00e4 +0x85 U+0123 +0x86 U+00e5 +0x87 U+0107 +0x88 U+0142 +0x89 U+0113 +0x8a U+0156 +0x8b U+0157 +0x8c U+012b +0x8d U+0179 +0x8e U+00c4 +0x8f U+00c5 +0x90 U+00c9 +0x91 U+00e6 +0x92 U+00c6 +0x93 U+014d +0x94 U+00f6 +0x95 U+0122 +0x96 U+00a2 +0x97 U+015a +0x98 U+015b +0x99 U+00d6 +0x9a U+00dc +0x9b U+00f8 +0x9c U+00a3 +0x9d U+00d8 +0x9e U+00d7 +0x9f U+00a4 +0xa0 U+0100 +0xa1 U+012a +0xa2 U+00f3 +0xa3 U+017b +0xa4 U+017c +0xa5 U+017a +0xa6 U+201d +0xa7 U+00a6 +0xa8 U+00a9 +0xa9 U+00ae +0xaa U+00ac +0xab U+00bd +0xac U+00bc +0xad U+0141 +0xae U+00ab +0xaf U+00bb +0xb0 U+2591 +0xb1 U+2592 +0xb2 U+2593 +0xb3 U+2502 +0xb4 U+2524 +0xb5 U+0104 +0xb6 U+010c +0xb7 U+0118 +0xb8 U+0116 +0xb9 U+2563 +0xba U+2551 +0xbb U+2557 +0xbc U+255d +0xbd U+012e +0xbe U+0160 +0xbf U+2510 +0xc0 U+2514 +0xc1 U+2534 +0xc2 U+252c +0xc3 U+251c +0xc4 U+2500 +0xc5 U+253c +0xc6 U+0172 +0xc7 U+016a +0xc8 U+255a +0xc9 U+2554 +0xca U+2569 +0xcb U+2566 +0xcc U+2560 +0xcd U+2550 +0xce U+256c +0xcf U+017d +0xd0 U+0105 +0xd1 U+010d +0xd2 U+0119 +0xd3 U+0117 +0xd4 U+012f +0xd5 U+0161 +0xd6 U+0173 +0xd7 U+016b +0xd8 U+017e +0xd9 U+2518 +0xda U+250c +0xdb U+2588 +0xdc U+2584 +0xdd U+258c +0xde U+2590 +0xdf U+2580 +0xe0 U+00d3 +0xe1 U+00df +0xe2 U+014c +0xe3 U+0143 +0xe4 U+00f5 +0xe5 U+00d5 +0xe6 U+00b5 +0xe7 U+0144 +0xe8 U+0136 +0xe9 U+0137 +0xea U+013b +0xeb U+013c +0xec U+0146 +0xed U+0112 +0xee U+0145 +0xef U+2019 +0xf0 U+00ad +0xf1 U+00b1 +0xf2 U+201c +0xf3 U+00be +0xf4 U+00b6 +0xf5 U+00a7 +0xf6 U+00f7 +0xf7 U+201e +0xf8 U+00b0 +0xf9 U+2219 +0xfa U+00b7 +0xfb U+00b9 +0xfc U+00b3 +0xfd U+00b2 +0xfe U+25a0 +0xff U+00a0 diff --git a/jdk/make/tools/CharsetMapping/IBM838.c2b b/jdk/make/tools/CharsetMapping/IBM838.c2b new file mode 100644 index 00000000000..6cb38028124 --- /dev/null +++ b/jdk/make/tools/CharsetMapping/IBM838.c2b @@ -0,0 +1 @@ +0x15 U+0085 diff --git a/jdk/make/tools/CharsetMapping/IBM838.map b/jdk/make/tools/CharsetMapping/IBM838.map new file mode 100644 index 00000000000..eb587e71fc8 --- /dev/null +++ b/jdk/make/tools/CharsetMapping/IBM838.map @@ -0,0 +1,257 @@ +#Generated from IBM838.java +0x00 U+0000 +0x01 U+0001 +0x02 U+0002 +0x03 U+0003 +0x04 U+009c +0x05 U+0009 +0x06 U+0086 +0x07 U+007f +0x08 U+0097 +0x09 U+008d +0x0a U+008e +0x0b U+000b +0x0c U+000c +0x0d U+000d +0x0e U+000e +0x0f U+000f +0x10 U+0010 +0x11 U+0011 +0x12 U+0012 +0x13 U+0013 +0x14 U+009d +0x15 U+000a +0x16 U+0008 +0x17 U+0087 +0x18 U+0018 +0x19 U+0019 +0x1a U+0092 +0x1b U+008f +0x1c U+001c +0x1d U+001d +0x1e U+001e +0x1f U+001f +0x20 U+0080 +0x21 U+0081 +0x22 U+0082 +0x23 U+0083 +0x24 U+0084 +0x25 U+000a +0x26 U+0017 +0x27 U+001b +0x28 U+0088 +0x29 U+0089 +0x2a U+008a +0x2b U+008b +0x2c U+008c +0x2d U+0005 +0x2e U+0006 +0x2f U+0007 +0x30 U+0090 +0x31 U+0091 +0x32 U+0016 +0x33 U+0093 +0x34 U+0094 +0x35 U+0095 +0x36 U+0096 +0x37 U+0004 +0x38 U+0098 +0x39 U+0099 +0x3a U+009a +0x3b U+009b +0x3c U+0014 +0x3d U+0015 +0x3e U+009e +0x3f U+001a +0x40 U+0020 +0x41 U+00a0 +0x42 U+0e01 +0x43 U+0e02 +0x44 U+0e03 +0x45 U+0e04 +0x46 U+0e05 +0x47 U+0e06 +0x48 U+0e07 +0x49 U+005b +0x4a U+00a2 +0x4b U+002e +0x4c U+003c +0x4d U+0028 +0x4e U+002b +0x4f U+007c +0x50 U+0026 +0x51 U+0e48 +0x52 U+0e08 +0x53 U+0e09 +0x54 U+0e0a +0x55 U+0e0b +0x56 U+0e0c +0x57 U+0e0d +0x58 U+0e0e +0x59 U+005d +0x5a U+0021 +0x5b U+0024 +0x5c U+002a +0x5d U+0029 +0x5e U+003b +0x5f U+00ac +0x60 U+002d +0x61 U+002f +0x62 U+0e0f +0x63 U+0e10 +0x64 U+0e11 +0x65 U+0e12 +0x66 U+0e13 +0x67 U+0e14 +0x68 U+0e15 +0x69 U+005e +0x6a U+00a6 +0x6b U+002c +0x6c U+0025 +0x6d U+005f +0x6e U+003e +0x6f U+003f +0x70 U+0e3f +0x71 U+0e4e +0x72 U+0e16 +0x73 U+0e17 +0x74 U+0e18 +0x75 U+0e19 +0x76 U+0e1a +0x77 U+0e1b +0x78 U+0e1c +0x79 U+0060 +0x7a U+003a +0x7b U+0023 +0x7c U+0040 +0x7d U+0027 +0x7e U+003d +0x7f U+0022 +0x80 U+0e4f +0x81 U+0061 +0x82 U+0062 +0x83 U+0063 +0x84 U+0064 +0x85 U+0065 +0x86 U+0066 +0x87 U+0067 +0x88 U+0068 +0x89 U+0069 +0x8a U+0e1d +0x8b U+0e1e +0x8c U+0e1f +0x8d U+0e20 +0x8e U+0e21 +0x8f U+0e22 +0x90 U+0e5a +0x91 U+006a +0x92 U+006b +0x93 U+006c +0x94 U+006d +0x95 U+006e +0x96 U+006f +0x97 U+0070 +0x98 U+0071 +0x99 U+0072 +0x9a U+0e23 +0x9b U+0e24 +0x9c U+0e25 +0x9d U+0e26 +0x9e U+0e27 +0x9f U+0e28 +0xa0 U+0e5b +0xa1 U+007e +0xa2 U+0073 +0xa3 U+0074 +0xa4 U+0075 +0xa5 U+0076 +0xa6 U+0077 +0xa7 U+0078 +0xa8 U+0079 +0xa9 U+007a +0xaa U+0e29 +0xab U+0e2a +0xac U+0e2b +0xad U+0e2c +0xae U+0e2d +0xaf U+0e2e +0xb0 U+0e50 +0xb1 U+0e51 +0xb2 U+0e52 +0xb3 U+0e53 +0xb4 U+0e54 +0xb5 U+0e55 +0xb6 U+0e56 +0xb7 U+0e57 +0xb8 U+0e58 +0xb9 U+0e59 +0xba U+0e2f +0xbb U+0e30 +0xbc U+0e31 +0xbd U+0e32 +0xbe U+0e33 +0xbf U+0e34 +0xc0 U+007b +0xc1 U+0041 +0xc2 U+0042 +0xc3 U+0043 +0xc4 U+0044 +0xc5 U+0045 +0xc6 U+0046 +0xc7 U+0047 +0xc8 U+0048 +0xc9 U+0049 +0xca U+0e49 +0xcb U+0e35 +0xcc U+0e36 +0xcd U+0e37 +0xce U+0e38 +0xcf U+0e39 +0xd0 U+007d +0xd1 U+004a +0xd2 U+004b +0xd3 U+004c +0xd4 U+004d +0xd5 U+004e +0xd6 U+004f +0xd7 U+0050 +0xd8 U+0051 +0xd9 U+0052 +0xda U+0e3a +0xdb U+0e40 +0xdc U+0e41 +0xdd U+0e42 +0xde U+0e43 +0xdf U+0e44 +0xe0 U+005c +0xe1 U+0e4a +0xe2 U+0053 +0xe3 U+0054 +0xe4 U+0055 +0xe5 U+0056 +0xe6 U+0057 +0xe7 U+0058 +0xe8 U+0059 +0xe9 U+005a +0xea U+0e45 +0xeb U+0e46 +0xec U+0e47 +0xed U+0e48 +0xee U+0e49 +0xef U+0e4a +0xf0 U+0030 +0xf1 U+0031 +0xf2 U+0032 +0xf3 U+0033 +0xf4 U+0034 +0xf5 U+0035 +0xf6 U+0036 +0xf7 U+0037 +0xf8 U+0038 +0xf9 U+0039 +0xfa U+0e4b +0xfb U+0e4c +0xfc U+0e4d +0xfd U+0e4b +0xfe U+0e4c +0xff U+009f diff --git a/jdk/make/tools/CharsetMapping/IBM838.nr b/jdk/make/tools/CharsetMapping/IBM838.nr new file mode 100644 index 00000000000..3b3d08b0d16 --- /dev/null +++ b/jdk/make/tools/CharsetMapping/IBM838.nr @@ -0,0 +1,6 @@ +0x25 U+000a +0x51 U+0e48 +0xca U+0e49 +0xe1 U+0e4a +0xfd U+0e4b +0xfe U+0e4c diff --git a/jdk/make/tools/CharsetMapping/IBM850.map b/jdk/make/tools/CharsetMapping/IBM850.map new file mode 100644 index 00000000000..981356f85b2 --- /dev/null +++ b/jdk/make/tools/CharsetMapping/IBM850.map @@ -0,0 +1,257 @@ +#Generated from IBM850.java +0x00 U+0000 +0x01 U+0001 +0x02 U+0002 +0x03 U+0003 +0x04 U+0004 +0x05 U+0005 +0x06 U+0006 +0x07 U+0007 +0x08 U+0008 +0x09 U+0009 +0x0a U+000a +0x0b U+000b +0x0c U+000c +0x0d U+000d +0x0e U+000e +0x0f U+000f +0x10 U+0010 +0x11 U+0011 +0x12 U+0012 +0x13 U+0013 +0x14 U+0014 +0x15 U+0015 +0x16 U+0016 +0x17 U+0017 +0x18 U+0018 +0x19 U+0019 +0x1a U+001a +0x1b U+001b +0x1c U+001c +0x1d U+001d +0x1e U+001e +0x1f U+001f +0x20 U+0020 +0x21 U+0021 +0x22 U+0022 +0x23 U+0023 +0x24 U+0024 +0x25 U+0025 +0x26 U+0026 +0x27 U+0027 +0x28 U+0028 +0x29 U+0029 +0x2a U+002a +0x2b U+002b +0x2c U+002c +0x2d U+002d +0x2e U+002e +0x2f U+002f +0x30 U+0030 +0x31 U+0031 +0x32 U+0032 +0x33 U+0033 +0x34 U+0034 +0x35 U+0035 +0x36 U+0036 +0x37 U+0037 +0x38 U+0038 +0x39 U+0039 +0x3a U+003a +0x3b U+003b +0x3c U+003c +0x3d U+003d +0x3e U+003e +0x3f U+003f +0x40 U+0040 +0x41 U+0041 +0x42 U+0042 +0x43 U+0043 +0x44 U+0044 +0x45 U+0045 +0x46 U+0046 +0x47 U+0047 +0x48 U+0048 +0x49 U+0049 +0x4a U+004a +0x4b U+004b +0x4c U+004c +0x4d U+004d +0x4e U+004e +0x4f U+004f +0x50 U+0050 +0x51 U+0051 +0x52 U+0052 +0x53 U+0053 +0x54 U+0054 +0x55 U+0055 +0x56 U+0056 +0x57 U+0057 +0x58 U+0058 +0x59 U+0059 +0x5a U+005a +0x5b U+005b +0x5c U+005c +0x5d U+005d +0x5e U+005e +0x5f U+005f +0x60 U+0060 +0x61 U+0061 +0x62 U+0062 +0x63 U+0063 +0x64 U+0064 +0x65 U+0065 +0x66 U+0066 +0x67 U+0067 +0x68 U+0068 +0x69 U+0069 +0x6a U+006a +0x6b U+006b +0x6c U+006c +0x6d U+006d +0x6e U+006e +0x6f U+006f +0x70 U+0070 +0x71 U+0071 +0x72 U+0072 +0x73 U+0073 +0x74 U+0074 +0x75 U+0075 +0x76 U+0076 +0x77 U+0077 +0x78 U+0078 +0x79 U+0079 +0x7a U+007a +0x7b U+007b +0x7c U+007c +0x7d U+007d +0x7e U+007e +0x7f U+007f +0x80 U+00c7 +0x81 U+00fc +0x82 U+00e9 +0x83 U+00e2 +0x84 U+00e4 +0x85 U+00e0 +0x86 U+00e5 +0x87 U+00e7 +0x88 U+00ea +0x89 U+00eb +0x8a U+00e8 +0x8b U+00ef +0x8c U+00ee +0x8d U+00ec +0x8e U+00c4 +0x8f U+00c5 +0x90 U+00c9 +0x91 U+00e6 +0x92 U+00c6 +0x93 U+00f4 +0x94 U+00f6 +0x95 U+00f2 +0x96 U+00fb +0x97 U+00f9 +0x98 U+00ff +0x99 U+00d6 +0x9a U+00dc +0x9b U+00f8 +0x9c U+00a3 +0x9d U+00d8 +0x9e U+00d7 +0x9f U+0192 +0xa0 U+00e1 +0xa1 U+00ed +0xa2 U+00f3 +0xa3 U+00fa +0xa4 U+00f1 +0xa5 U+00d1 +0xa6 U+00aa +0xa7 U+00ba +0xa8 U+00bf +0xa9 U+00ae +0xaa U+00ac +0xab U+00bd +0xac U+00bc +0xad U+00a1 +0xae U+00ab +0xaf U+00bb +0xb0 U+2591 +0xb1 U+2592 +0xb2 U+2593 +0xb3 U+2502 +0xb4 U+2524 +0xb5 U+00c1 +0xb6 U+00c2 +0xb7 U+00c0 +0xb8 U+00a9 +0xb9 U+2563 +0xba U+2551 +0xbb U+2557 +0xbc U+255d +0xbd U+00a2 +0xbe U+00a5 +0xbf U+2510 +0xc0 U+2514 +0xc1 U+2534 +0xc2 U+252c +0xc3 U+251c +0xc4 U+2500 +0xc5 U+253c +0xc6 U+00e3 +0xc7 U+00c3 +0xc8 U+255a +0xc9 U+2554 +0xca U+2569 +0xcb U+2566 +0xcc U+2560 +0xcd U+2550 +0xce U+256c +0xcf U+00a4 +0xd0 U+00f0 +0xd1 U+00d0 +0xd2 U+00ca +0xd3 U+00cb +0xd4 U+00c8 +0xd5 U+0131 +0xd6 U+00cd +0xd7 U+00ce +0xd8 U+00cf +0xd9 U+2518 +0xda U+250c +0xdb U+2588 +0xdc U+2584 +0xdd U+00a6 +0xde U+00cc +0xdf U+2580 +0xe0 U+00d3 +0xe1 U+00df +0xe2 U+00d4 +0xe3 U+00d2 +0xe4 U+00f5 +0xe5 U+00d5 +0xe6 U+00b5 +0xe7 U+00fe +0xe8 U+00de +0xe9 U+00da +0xea U+00db +0xeb U+00d9 +0xec U+00fd +0xed U+00dd +0xee U+00af +0xef U+00b4 +0xf0 U+00ad +0xf1 U+00b1 +0xf2 U+2017 +0xf3 U+00be +0xf4 U+00b6 +0xf5 U+00a7 +0xf6 U+00f7 +0xf7 U+00b8 +0xf8 U+00b0 +0xf9 U+00a8 +0xfa U+00b7 +0xfb U+00b9 +0xfc U+00b3 +0xfd U+00b2 +0xfe U+25a0 +0xff U+00a0 diff --git a/jdk/make/tools/CharsetMapping/IBM852.map b/jdk/make/tools/CharsetMapping/IBM852.map new file mode 100644 index 00000000000..1c5768a01b6 --- /dev/null +++ b/jdk/make/tools/CharsetMapping/IBM852.map @@ -0,0 +1,257 @@ +#Generated from IBM852.java +0x00 U+0000 +0x01 U+0001 +0x02 U+0002 +0x03 U+0003 +0x04 U+0004 +0x05 U+0005 +0x06 U+0006 +0x07 U+0007 +0x08 U+0008 +0x09 U+0009 +0x0a U+000a +0x0b U+000b +0x0c U+000c +0x0d U+000d +0x0e U+000e +0x0f U+000f +0x10 U+0010 +0x11 U+0011 +0x12 U+0012 +0x13 U+0013 +0x14 U+0014 +0x15 U+0015 +0x16 U+0016 +0x17 U+0017 +0x18 U+0018 +0x19 U+0019 +0x1a U+001a +0x1b U+001b +0x1c U+001c +0x1d U+001d +0x1e U+001e +0x1f U+001f +0x20 U+0020 +0x21 U+0021 +0x22 U+0022 +0x23 U+0023 +0x24 U+0024 +0x25 U+0025 +0x26 U+0026 +0x27 U+0027 +0x28 U+0028 +0x29 U+0029 +0x2a U+002a +0x2b U+002b +0x2c U+002c +0x2d U+002d +0x2e U+002e +0x2f U+002f +0x30 U+0030 +0x31 U+0031 +0x32 U+0032 +0x33 U+0033 +0x34 U+0034 +0x35 U+0035 +0x36 U+0036 +0x37 U+0037 +0x38 U+0038 +0x39 U+0039 +0x3a U+003a +0x3b U+003b +0x3c U+003c +0x3d U+003d +0x3e U+003e +0x3f U+003f +0x40 U+0040 +0x41 U+0041 +0x42 U+0042 +0x43 U+0043 +0x44 U+0044 +0x45 U+0045 +0x46 U+0046 +0x47 U+0047 +0x48 U+0048 +0x49 U+0049 +0x4a U+004a +0x4b U+004b +0x4c U+004c +0x4d U+004d +0x4e U+004e +0x4f U+004f +0x50 U+0050 +0x51 U+0051 +0x52 U+0052 +0x53 U+0053 +0x54 U+0054 +0x55 U+0055 +0x56 U+0056 +0x57 U+0057 +0x58 U+0058 +0x59 U+0059 +0x5a U+005a +0x5b U+005b +0x5c U+005c +0x5d U+005d +0x5e U+005e +0x5f U+005f +0x60 U+0060 +0x61 U+0061 +0x62 U+0062 +0x63 U+0063 +0x64 U+0064 +0x65 U+0065 +0x66 U+0066 +0x67 U+0067 +0x68 U+0068 +0x69 U+0069 +0x6a U+006a +0x6b U+006b +0x6c U+006c +0x6d U+006d +0x6e U+006e +0x6f U+006f +0x70 U+0070 +0x71 U+0071 +0x72 U+0072 +0x73 U+0073 +0x74 U+0074 +0x75 U+0075 +0x76 U+0076 +0x77 U+0077 +0x78 U+0078 +0x79 U+0079 +0x7a U+007a +0x7b U+007b +0x7c U+007c +0x7d U+007d +0x7e U+007e +0x7f U+007f +0x80 U+00c7 +0x81 U+00fc +0x82 U+00e9 +0x83 U+00e2 +0x84 U+00e4 +0x85 U+016f +0x86 U+0107 +0x87 U+00e7 +0x88 U+0142 +0x89 U+00eb +0x8a U+0150 +0x8b U+0151 +0x8c U+00ee +0x8d U+0179 +0x8e U+00c4 +0x8f U+0106 +0x90 U+00c9 +0x91 U+0139 +0x92 U+013a +0x93 U+00f4 +0x94 U+00f6 +0x95 U+013d +0x96 U+013e +0x97 U+015a +0x98 U+015b +0x99 U+00d6 +0x9a U+00dc +0x9b U+0164 +0x9c U+0165 +0x9d U+0141 +0x9e U+00d7 +0x9f U+010d +0xa0 U+00e1 +0xa1 U+00ed +0xa2 U+00f3 +0xa3 U+00fa +0xa4 U+0104 +0xa5 U+0105 +0xa6 U+017d +0xa7 U+017e +0xa8 U+0118 +0xa9 U+0119 +0xaa U+00ac +0xab U+017a +0xac U+010c +0xad U+015f +0xae U+00ab +0xaf U+00bb +0xb0 U+2591 +0xb1 U+2592 +0xb2 U+2593 +0xb3 U+2502 +0xb4 U+2524 +0xb5 U+00c1 +0xb6 U+00c2 +0xb7 U+011a +0xb8 U+015e +0xb9 U+2563 +0xba U+2551 +0xbb U+2557 +0xbc U+255d +0xbd U+017b +0xbe U+017c +0xbf U+2510 +0xc0 U+2514 +0xc1 U+2534 +0xc2 U+252c +0xc3 U+251c +0xc4 U+2500 +0xc5 U+253c +0xc6 U+0102 +0xc7 U+0103 +0xc8 U+255a +0xc9 U+2554 +0xca U+2569 +0xcb U+2566 +0xcc U+2560 +0xcd U+2550 +0xce U+256c +0xcf U+00a4 +0xd0 U+0111 +0xd1 U+0110 +0xd2 U+010e +0xd3 U+00cb +0xd4 U+010f +0xd5 U+0147 +0xd6 U+00cd +0xd7 U+00ce +0xd8 U+011b +0xd9 U+2518 +0xda U+250c +0xdb U+2588 +0xdc U+2584 +0xdd U+0162 +0xde U+016e +0xdf U+2580 +0xe0 U+00d3 +0xe1 U+00df +0xe2 U+00d4 +0xe3 U+0143 +0xe4 U+0144 +0xe5 U+0148 +0xe6 U+0160 +0xe7 U+0161 +0xe8 U+0154 +0xe9 U+00da +0xea U+0155 +0xeb U+0170 +0xec U+00fd +0xed U+00dd +0xee U+0163 +0xef U+00b4 +0xf0 U+00ad +0xf1 U+02dd +0xf2 U+02db +0xf3 U+02c7 +0xf4 U+02d8 +0xf5 U+00a7 +0xf6 U+00f7 +0xf7 U+00b8 +0xf8 U+00b0 +0xf9 U+00a8 +0xfa U+02d9 +0xfb U+0171 +0xfc U+0158 +0xfd U+0159 +0xfe U+25a0 +0xff U+00a0 diff --git a/jdk/make/tools/CharsetMapping/IBM855.map b/jdk/make/tools/CharsetMapping/IBM855.map new file mode 100644 index 00000000000..4efc220a97c --- /dev/null +++ b/jdk/make/tools/CharsetMapping/IBM855.map @@ -0,0 +1,257 @@ +#Generated from IBM855.java +0x00 U+0000 +0x01 U+0001 +0x02 U+0002 +0x03 U+0003 +0x04 U+0004 +0x05 U+0005 +0x06 U+0006 +0x07 U+0007 +0x08 U+0008 +0x09 U+0009 +0x0a U+000a +0x0b U+000b +0x0c U+000c +0x0d U+000d +0x0e U+000e +0x0f U+000f +0x10 U+0010 +0x11 U+0011 +0x12 U+0012 +0x13 U+0013 +0x14 U+0014 +0x15 U+0015 +0x16 U+0016 +0x17 U+0017 +0x18 U+0018 +0x19 U+0019 +0x1a U+001a +0x1b U+001b +0x1c U+001c +0x1d U+001d +0x1e U+001e +0x1f U+001f +0x20 U+0020 +0x21 U+0021 +0x22 U+0022 +0x23 U+0023 +0x24 U+0024 +0x25 U+0025 +0x26 U+0026 +0x27 U+0027 +0x28 U+0028 +0x29 U+0029 +0x2a U+002a +0x2b U+002b +0x2c U+002c +0x2d U+002d +0x2e U+002e +0x2f U+002f +0x30 U+0030 +0x31 U+0031 +0x32 U+0032 +0x33 U+0033 +0x34 U+0034 +0x35 U+0035 +0x36 U+0036 +0x37 U+0037 +0x38 U+0038 +0x39 U+0039 +0x3a U+003a +0x3b U+003b +0x3c U+003c +0x3d U+003d +0x3e U+003e +0x3f U+003f +0x40 U+0040 +0x41 U+0041 +0x42 U+0042 +0x43 U+0043 +0x44 U+0044 +0x45 U+0045 +0x46 U+0046 +0x47 U+0047 +0x48 U+0048 +0x49 U+0049 +0x4a U+004a +0x4b U+004b +0x4c U+004c +0x4d U+004d +0x4e U+004e +0x4f U+004f +0x50 U+0050 +0x51 U+0051 +0x52 U+0052 +0x53 U+0053 +0x54 U+0054 +0x55 U+0055 +0x56 U+0056 +0x57 U+0057 +0x58 U+0058 +0x59 U+0059 +0x5a U+005a +0x5b U+005b +0x5c U+005c +0x5d U+005d +0x5e U+005e +0x5f U+005f +0x60 U+0060 +0x61 U+0061 +0x62 U+0062 +0x63 U+0063 +0x64 U+0064 +0x65 U+0065 +0x66 U+0066 +0x67 U+0067 +0x68 U+0068 +0x69 U+0069 +0x6a U+006a +0x6b U+006b +0x6c U+006c +0x6d U+006d +0x6e U+006e +0x6f U+006f +0x70 U+0070 +0x71 U+0071 +0x72 U+0072 +0x73 U+0073 +0x74 U+0074 +0x75 U+0075 +0x76 U+0076 +0x77 U+0077 +0x78 U+0078 +0x79 U+0079 +0x7a U+007a +0x7b U+007b +0x7c U+007c +0x7d U+007d +0x7e U+007e +0x7f U+007f +0x80 U+0452 +0x81 U+0402 +0x82 U+0453 +0x83 U+0403 +0x84 U+0451 +0x85 U+0401 +0x86 U+0454 +0x87 U+0404 +0x88 U+0455 +0x89 U+0405 +0x8a U+0456 +0x8b U+0406 +0x8c U+0457 +0x8d U+0407 +0x8e U+0458 +0x8f U+0408 +0x90 U+0459 +0x91 U+0409 +0x92 U+045a +0x93 U+040a +0x94 U+045b +0x95 U+040b +0x96 U+045c +0x97 U+040c +0x98 U+045e +0x99 U+040e +0x9a U+045f +0x9b U+040f +0x9c U+044e +0x9d U+042e +0x9e U+044a +0x9f U+042a +0xa0 U+0430 +0xa1 U+0410 +0xa2 U+0431 +0xa3 U+0411 +0xa4 U+0446 +0xa5 U+0426 +0xa6 U+0434 +0xa7 U+0414 +0xa8 U+0435 +0xa9 U+0415 +0xaa U+0444 +0xab U+0424 +0xac U+0433 +0xad U+0413 +0xae U+00ab +0xaf U+00bb +0xb0 U+2591 +0xb1 U+2592 +0xb2 U+2593 +0xb3 U+2502 +0xb4 U+2524 +0xb5 U+0445 +0xb6 U+0425 +0xb7 U+0438 +0xb8 U+0418 +0xb9 U+2563 +0xba U+2551 +0xbb U+2557 +0xbc U+255d +0xbd U+0439 +0xbe U+0419 +0xbf U+2510 +0xc0 U+2514 +0xc1 U+2534 +0xc2 U+252c +0xc3 U+251c +0xc4 U+2500 +0xc5 U+253c +0xc6 U+043a +0xc7 U+041a +0xc8 U+255a +0xc9 U+2554 +0xca U+2569 +0xcb U+2566 +0xcc U+2560 +0xcd U+2550 +0xce U+256c +0xcf U+00a4 +0xd0 U+043b +0xd1 U+041b +0xd2 U+043c +0xd3 U+041c +0xd4 U+043d +0xd5 U+041d +0xd6 U+043e +0xd7 U+041e +0xd8 U+043f +0xd9 U+2518 +0xda U+250c +0xdb U+2588 +0xdc U+2584 +0xdd U+041f +0xde U+044f +0xdf U+2580 +0xe0 U+042f +0xe1 U+0440 +0xe2 U+0420 +0xe3 U+0441 +0xe4 U+0421 +0xe5 U+0442 +0xe6 U+0422 +0xe7 U+0443 +0xe8 U+0423 +0xe9 U+0436 +0xea U+0416 +0xeb U+0432 +0xec U+0412 +0xed U+044c +0xee U+042c +0xef U+2116 +0xf0 U+00ad +0xf1 U+044b +0xf2 U+042b +0xf3 U+0437 +0xf4 U+0417 +0xf5 U+0448 +0xf6 U+0428 +0xf7 U+044d +0xf8 U+042d +0xf9 U+0449 +0xfa U+0429 +0xfb U+0447 +0xfc U+0427 +0xfd U+00a7 +0xfe U+25a0 +0xff U+00a0 diff --git a/jdk/make/tools/CharsetMapping/IBM856.map b/jdk/make/tools/CharsetMapping/IBM856.map new file mode 100644 index 00000000000..8e703c6e53e --- /dev/null +++ b/jdk/make/tools/CharsetMapping/IBM856.map @@ -0,0 +1,257 @@ +#Generated from IBM856.java +0x00 U+0000 +0x01 U+0001 +0x02 U+0002 +0x03 U+0003 +0x04 U+0004 +0x05 U+0005 +0x06 U+0006 +0x07 U+0007 +0x08 U+0008 +0x09 U+0009 +0x0a U+000a +0x0b U+000b +0x0c U+000c +0x0d U+000d +0x0e U+000e +0x0f U+000f +0x10 U+0010 +0x11 U+0011 +0x12 U+0012 +0x13 U+0013 +0x14 U+0014 +0x15 U+0015 +0x16 U+0016 +0x17 U+0017 +0x18 U+0018 +0x19 U+0019 +0x1a U+001a +0x1b U+001b +0x1c U+001c +0x1d U+001d +0x1e U+001e +0x1f U+001f +0x20 U+0020 +0x21 U+0021 +0x22 U+0022 +0x23 U+0023 +0x24 U+0024 +0x25 U+0025 +0x26 U+0026 +0x27 U+0027 +0x28 U+0028 +0x29 U+0029 +0x2a U+002a +0x2b U+002b +0x2c U+002c +0x2d U+002d +0x2e U+002e +0x2f U+002f +0x30 U+0030 +0x31 U+0031 +0x32 U+0032 +0x33 U+0033 +0x34 U+0034 +0x35 U+0035 +0x36 U+0036 +0x37 U+0037 +0x38 U+0038 +0x39 U+0039 +0x3a U+003a +0x3b U+003b +0x3c U+003c +0x3d U+003d +0x3e U+003e +0x3f U+003f +0x40 U+0040 +0x41 U+0041 +0x42 U+0042 +0x43 U+0043 +0x44 U+0044 +0x45 U+0045 +0x46 U+0046 +0x47 U+0047 +0x48 U+0048 +0x49 U+0049 +0x4a U+004a +0x4b U+004b +0x4c U+004c +0x4d U+004d +0x4e U+004e +0x4f U+004f +0x50 U+0050 +0x51 U+0051 +0x52 U+0052 +0x53 U+0053 +0x54 U+0054 +0x55 U+0055 +0x56 U+0056 +0x57 U+0057 +0x58 U+0058 +0x59 U+0059 +0x5a U+005a +0x5b U+005b +0x5c U+005c +0x5d U+005d +0x5e U+005e +0x5f U+005f +0x60 U+0060 +0x61 U+0061 +0x62 U+0062 +0x63 U+0063 +0x64 U+0064 +0x65 U+0065 +0x66 U+0066 +0x67 U+0067 +0x68 U+0068 +0x69 U+0069 +0x6a U+006a +0x6b U+006b +0x6c U+006c +0x6d U+006d +0x6e U+006e +0x6f U+006f +0x70 U+0070 +0x71 U+0071 +0x72 U+0072 +0x73 U+0073 +0x74 U+0074 +0x75 U+0075 +0x76 U+0076 +0x77 U+0077 +0x78 U+0078 +0x79 U+0079 +0x7a U+007a +0x7b U+007b +0x7c U+007c +0x7d U+007d +0x7e U+007e +0x7f U+007f +0x80 U+05d0 +0x81 U+05d1 +0x82 U+05d2 +0x83 U+05d3 +0x84 U+05d4 +0x85 U+05d5 +0x86 U+05d6 +0x87 U+05d7 +0x88 U+05d8 +0x89 U+05d9 +0x8a U+05da +0x8b U+05db +0x8c U+05dc +0x8d U+05dd +0x8e U+05de +0x8f U+05df +0x90 U+05e0 +0x91 U+05e1 +0x92 U+05e2 +0x93 U+05e3 +0x94 U+05e4 +0x95 U+05e5 +0x96 U+05e6 +0x97 U+05e7 +0x98 U+05e8 +0x99 U+05e9 +0x9a U+05ea +0x9b U+fffd +0x9c U+00a3 +0x9d U+fffd +0x9e U+00d7 +0x9f U+fffd +0xa0 U+fffd +0xa1 U+fffd +0xa2 U+fffd +0xa3 U+fffd +0xa4 U+fffd +0xa5 U+fffd +0xa6 U+fffd +0xa7 U+fffd +0xa8 U+fffd +0xa9 U+00ae +0xaa U+00ac +0xab U+00bd +0xac U+00bc +0xad U+fffd +0xae U+00ab +0xaf U+00bb +0xb0 U+2591 +0xb1 U+2592 +0xb2 U+2593 +0xb3 U+2502 +0xb4 U+2524 +0xb5 U+fffd +0xb6 U+fffd +0xb7 U+fffd +0xb8 U+00a9 +0xb9 U+2563 +0xba U+2551 +0xbb U+2557 +0xbc U+255d +0xbd U+00a2 +0xbe U+00a5 +0xbf U+2510 +0xc0 U+2514 +0xc1 U+2534 +0xc2 U+252c +0xc3 U+251c +0xc4 U+2500 +0xc5 U+253c +0xc6 U+fffd +0xc7 U+fffd +0xc8 U+255a +0xc9 U+2554 +0xca U+2569 +0xcb U+2566 +0xcc U+2560 +0xcd U+2550 +0xce U+256c +0xcf U+00a4 +0xd0 U+fffd +0xd1 U+fffd +0xd2 U+fffd +0xd3 U+fffd +0xd4 U+fffd +0xd5 U+fffd +0xd6 U+fffd +0xd7 U+fffd +0xd8 U+fffd +0xd9 U+2518 +0xda U+250c +0xdb U+2588 +0xdc U+2584 +0xdd U+00a6 +0xde U+fffd +0xdf U+2580 +0xe0 U+fffd +0xe1 U+fffd +0xe2 U+fffd +0xe3 U+fffd +0xe4 U+fffd +0xe5 U+fffd +0xe6 U+00b5 +0xe7 U+fffd +0xe8 U+fffd +0xe9 U+fffd +0xea U+fffd +0xeb U+fffd +0xec U+fffd +0xed U+fffd +0xee U+203e +0xef U+00b4 +0xf0 U+00ad +0xf1 U+00b1 +0xf2 U+2017 +0xf3 U+00be +0xf4 U+00b6 +0xf5 U+00a7 +0xf6 U+00f7 +0xf7 U+00b8 +0xf8 U+00b0 +0xf9 U+00a8 +0xfa U+2022 +0xfb U+00b9 +0xfc U+00b3 +0xfd U+00b2 +0xfe U+25a0 +0xff U+00a0 diff --git a/jdk/make/tools/CharsetMapping/IBM857.map b/jdk/make/tools/CharsetMapping/IBM857.map new file mode 100644 index 00000000000..e85b12bc7fd --- /dev/null +++ b/jdk/make/tools/CharsetMapping/IBM857.map @@ -0,0 +1,257 @@ +#Generated from IBM857.java +0x00 U+0000 +0x01 U+0001 +0x02 U+0002 +0x03 U+0003 +0x04 U+0004 +0x05 U+0005 +0x06 U+0006 +0x07 U+0007 +0x08 U+0008 +0x09 U+0009 +0x0a U+000a +0x0b U+000b +0x0c U+000c +0x0d U+000d +0x0e U+000e +0x0f U+000f +0x10 U+0010 +0x11 U+0011 +0x12 U+0012 +0x13 U+0013 +0x14 U+0014 +0x15 U+0015 +0x16 U+0016 +0x17 U+0017 +0x18 U+0018 +0x19 U+0019 +0x1a U+001a +0x1b U+001b +0x1c U+001c +0x1d U+001d +0x1e U+001e +0x1f U+001f +0x20 U+0020 +0x21 U+0021 +0x22 U+0022 +0x23 U+0023 +0x24 U+0024 +0x25 U+0025 +0x26 U+0026 +0x27 U+0027 +0x28 U+0028 +0x29 U+0029 +0x2a U+002a +0x2b U+002b +0x2c U+002c +0x2d U+002d +0x2e U+002e +0x2f U+002f +0x30 U+0030 +0x31 U+0031 +0x32 U+0032 +0x33 U+0033 +0x34 U+0034 +0x35 U+0035 +0x36 U+0036 +0x37 U+0037 +0x38 U+0038 +0x39 U+0039 +0x3a U+003a +0x3b U+003b +0x3c U+003c +0x3d U+003d +0x3e U+003e +0x3f U+003f +0x40 U+0040 +0x41 U+0041 +0x42 U+0042 +0x43 U+0043 +0x44 U+0044 +0x45 U+0045 +0x46 U+0046 +0x47 U+0047 +0x48 U+0048 +0x49 U+0049 +0x4a U+004a +0x4b U+004b +0x4c U+004c +0x4d U+004d +0x4e U+004e +0x4f U+004f +0x50 U+0050 +0x51 U+0051 +0x52 U+0052 +0x53 U+0053 +0x54 U+0054 +0x55 U+0055 +0x56 U+0056 +0x57 U+0057 +0x58 U+0058 +0x59 U+0059 +0x5a U+005a +0x5b U+005b +0x5c U+005c +0x5d U+005d +0x5e U+005e +0x5f U+005f +0x60 U+0060 +0x61 U+0061 +0x62 U+0062 +0x63 U+0063 +0x64 U+0064 +0x65 U+0065 +0x66 U+0066 +0x67 U+0067 +0x68 U+0068 +0x69 U+0069 +0x6a U+006a +0x6b U+006b +0x6c U+006c +0x6d U+006d +0x6e U+006e +0x6f U+006f +0x70 U+0070 +0x71 U+0071 +0x72 U+0072 +0x73 U+0073 +0x74 U+0074 +0x75 U+0075 +0x76 U+0076 +0x77 U+0077 +0x78 U+0078 +0x79 U+0079 +0x7a U+007a +0x7b U+007b +0x7c U+007c +0x7d U+007d +0x7e U+007e +0x7f U+007f +0x80 U+00c7 +0x81 U+00fc +0x82 U+00e9 +0x83 U+00e2 +0x84 U+00e4 +0x85 U+00e0 +0x86 U+00e5 +0x87 U+00e7 +0x88 U+00ea +0x89 U+00eb +0x8a U+00e8 +0x8b U+00ef +0x8c U+00ee +0x8d U+0131 +0x8e U+00c4 +0x8f U+00c5 +0x90 U+00c9 +0x91 U+00e6 +0x92 U+00c6 +0x93 U+00f4 +0x94 U+00f6 +0x95 U+00f2 +0x96 U+00fb +0x97 U+00f9 +0x98 U+0130 +0x99 U+00d6 +0x9a U+00dc +0x9b U+00f8 +0x9c U+00a3 +0x9d U+00d8 +0x9e U+015e +0x9f U+015f +0xa0 U+00e1 +0xa1 U+00ed +0xa2 U+00f3 +0xa3 U+00fa +0xa4 U+00f1 +0xa5 U+00d1 +0xa6 U+011e +0xa7 U+011f +0xa8 U+00bf +0xa9 U+00ae +0xaa U+00ac +0xab U+00bd +0xac U+00bc +0xad U+00a1 +0xae U+00ab +0xaf U+00bb +0xb0 U+2591 +0xb1 U+2592 +0xb2 U+2593 +0xb3 U+2502 +0xb4 U+2524 +0xb5 U+00c1 +0xb6 U+00c2 +0xb7 U+00c0 +0xb8 U+00a9 +0xb9 U+2563 +0xba U+2551 +0xbb U+2557 +0xbc U+255d +0xbd U+00a2 +0xbe U+00a5 +0xbf U+2510 +0xc0 U+2514 +0xc1 U+2534 +0xc2 U+252c +0xc3 U+251c +0xc4 U+2500 +0xc5 U+253c +0xc6 U+00e3 +0xc7 U+00c3 +0xc8 U+255a +0xc9 U+2554 +0xca U+2569 +0xcb U+2566 +0xcc U+2560 +0xcd U+2550 +0xce U+256c +0xcf U+00a4 +0xd0 U+00ba +0xd1 U+00aa +0xd2 U+00ca +0xd3 U+00cb +0xd4 U+00c8 +0xd5 U+fffd +0xd6 U+00cd +0xd7 U+00ce +0xd8 U+00cf +0xd9 U+2518 +0xda U+250c +0xdb U+2588 +0xdc U+2584 +0xdd U+00a6 +0xde U+00cc +0xdf U+2580 +0xe0 U+00d3 +0xe1 U+00df +0xe2 U+00d4 +0xe3 U+00d2 +0xe4 U+00f5 +0xe5 U+00d5 +0xe6 U+00b5 +0xe7 U+fffd +0xe8 U+00d7 +0xe9 U+00da +0xea U+00db +0xeb U+00d9 +0xec U+00ec +0xed U+00ff +0xee U+00af +0xef U+00b4 +0xf0 U+00ad +0xf1 U+00b1 +0xf2 U+fffd +0xf3 U+00be +0xf4 U+00b6 +0xf5 U+00a7 +0xf6 U+00f7 +0xf7 U+00b8 +0xf8 U+00b0 +0xf9 U+00a8 +0xfa U+00b7 +0xfb U+00b9 +0xfc U+00b3 +0xfd U+00b2 +0xfe U+25a0 +0xff U+00a0 diff --git a/jdk/make/tools/CharsetMapping/IBM858.map b/jdk/make/tools/CharsetMapping/IBM858.map new file mode 100644 index 00000000000..c2878044020 --- /dev/null +++ b/jdk/make/tools/CharsetMapping/IBM858.map @@ -0,0 +1,257 @@ +#Generated from IBM858.java +0x00 U+0000 +0x01 U+0001 +0x02 U+0002 +0x03 U+0003 +0x04 U+0004 +0x05 U+0005 +0x06 U+0006 +0x07 U+0007 +0x08 U+0008 +0x09 U+0009 +0x0a U+000a +0x0b U+000b +0x0c U+000c +0x0d U+000d +0x0e U+000e +0x0f U+000f +0x10 U+0010 +0x11 U+0011 +0x12 U+0012 +0x13 U+0013 +0x14 U+0014 +0x15 U+0015 +0x16 U+0016 +0x17 U+0017 +0x18 U+0018 +0x19 U+0019 +0x1a U+001a +0x1b U+001b +0x1c U+001c +0x1d U+001d +0x1e U+001e +0x1f U+001f +0x20 U+0020 +0x21 U+0021 +0x22 U+0022 +0x23 U+0023 +0x24 U+0024 +0x25 U+0025 +0x26 U+0026 +0x27 U+0027 +0x28 U+0028 +0x29 U+0029 +0x2a U+002a +0x2b U+002b +0x2c U+002c +0x2d U+002d +0x2e U+002e +0x2f U+002f +0x30 U+0030 +0x31 U+0031 +0x32 U+0032 +0x33 U+0033 +0x34 U+0034 +0x35 U+0035 +0x36 U+0036 +0x37 U+0037 +0x38 U+0038 +0x39 U+0039 +0x3a U+003a +0x3b U+003b +0x3c U+003c +0x3d U+003d +0x3e U+003e +0x3f U+003f +0x40 U+0040 +0x41 U+0041 +0x42 U+0042 +0x43 U+0043 +0x44 U+0044 +0x45 U+0045 +0x46 U+0046 +0x47 U+0047 +0x48 U+0048 +0x49 U+0049 +0x4a U+004a +0x4b U+004b +0x4c U+004c +0x4d U+004d +0x4e U+004e +0x4f U+004f +0x50 U+0050 +0x51 U+0051 +0x52 U+0052 +0x53 U+0053 +0x54 U+0054 +0x55 U+0055 +0x56 U+0056 +0x57 U+0057 +0x58 U+0058 +0x59 U+0059 +0x5a U+005a +0x5b U+005b +0x5c U+005c +0x5d U+005d +0x5e U+005e +0x5f U+005f +0x60 U+0060 +0x61 U+0061 +0x62 U+0062 +0x63 U+0063 +0x64 U+0064 +0x65 U+0065 +0x66 U+0066 +0x67 U+0067 +0x68 U+0068 +0x69 U+0069 +0x6a U+006a +0x6b U+006b +0x6c U+006c +0x6d U+006d +0x6e U+006e +0x6f U+006f +0x70 U+0070 +0x71 U+0071 +0x72 U+0072 +0x73 U+0073 +0x74 U+0074 +0x75 U+0075 +0x76 U+0076 +0x77 U+0077 +0x78 U+0078 +0x79 U+0079 +0x7a U+007a +0x7b U+007b +0x7c U+007c +0x7d U+007d +0x7e U+007e +0x7f U+007f +0x80 U+00c7 +0x81 U+00fc +0x82 U+00e9 +0x83 U+00e2 +0x84 U+00e4 +0x85 U+00e0 +0x86 U+00e5 +0x87 U+00e7 +0x88 U+00ea +0x89 U+00eb +0x8a U+00e8 +0x8b U+00ef +0x8c U+00ee +0x8d U+00ec +0x8e U+00c4 +0x8f U+00c5 +0x90 U+00c9 +0x91 U+00e6 +0x92 U+00c6 +0x93 U+00f4 +0x94 U+00f6 +0x95 U+00f2 +0x96 U+00fb +0x97 U+00f9 +0x98 U+00ff +0x99 U+00d6 +0x9a U+00dc +0x9b U+00f8 +0x9c U+00a3 +0x9d U+00d8 +0x9e U+00d7 +0x9f U+0192 +0xa0 U+00e1 +0xa1 U+00ed +0xa2 U+00f3 +0xa3 U+00fa +0xa4 U+00f1 +0xa5 U+00d1 +0xa6 U+00aa +0xa7 U+00ba +0xa8 U+00bf +0xa9 U+00ae +0xaa U+00ac +0xab U+00bd +0xac U+00bc +0xad U+00a1 +0xae U+00ab +0xaf U+00bb +0xb0 U+2591 +0xb1 U+2592 +0xb2 U+2593 +0xb3 U+2502 +0xb4 U+2524 +0xb5 U+00c1 +0xb6 U+00c2 +0xb7 U+00c0 +0xb8 U+00a9 +0xb9 U+2563 +0xba U+2551 +0xbb U+2557 +0xbc U+255d +0xbd U+00a2 +0xbe U+00a5 +0xbf U+2510 +0xc0 U+2514 +0xc1 U+2534 +0xc2 U+252c +0xc3 U+251c +0xc4 U+2500 +0xc5 U+253c +0xc6 U+00e3 +0xc7 U+00c3 +0xc8 U+255a +0xc9 U+2554 +0xca U+2569 +0xcb U+2566 +0xcc U+2560 +0xcd U+2550 +0xce U+256c +0xcf U+00a4 +0xd0 U+00f0 +0xd1 U+00d0 +0xd2 U+00ca +0xd3 U+00cb +0xd4 U+00c8 +0xd5 U+20ac +0xd6 U+00cd +0xd7 U+00ce +0xd8 U+00cf +0xd9 U+2518 +0xda U+250c +0xdb U+2588 +0xdc U+2584 +0xdd U+00a6 +0xde U+00cc +0xdf U+2580 +0xe0 U+00d3 +0xe1 U+00df +0xe2 U+00d4 +0xe3 U+00d2 +0xe4 U+00f5 +0xe5 U+00d5 +0xe6 U+00b5 +0xe7 U+00fe +0xe8 U+00de +0xe9 U+00da +0xea U+00db +0xeb U+00d9 +0xec U+00fd +0xed U+00dd +0xee U+00af +0xef U+00b4 +0xf0 U+00ad +0xf1 U+00b1 +0xf2 U+2017 +0xf3 U+00be +0xf4 U+00b6 +0xf5 U+00a7 +0xf6 U+00f7 +0xf7 U+00b8 +0xf8 U+00b0 +0xf9 U+00a8 +0xfa U+00b7 +0xfb U+00b9 +0xfc U+00b3 +0xfd U+00b2 +0xfe U+25a0 +0xff U+00a0 diff --git a/jdk/make/tools/CharsetMapping/IBM860.map b/jdk/make/tools/CharsetMapping/IBM860.map new file mode 100644 index 00000000000..88ddee06894 --- /dev/null +++ b/jdk/make/tools/CharsetMapping/IBM860.map @@ -0,0 +1,257 @@ +#Generated from IBM860.java +0x00 U+0000 +0x01 U+0001 +0x02 U+0002 +0x03 U+0003 +0x04 U+0004 +0x05 U+0005 +0x06 U+0006 +0x07 U+0007 +0x08 U+0008 +0x09 U+0009 +0x0a U+000a +0x0b U+000b +0x0c U+000c +0x0d U+000d +0x0e U+000e +0x0f U+000f +0x10 U+0010 +0x11 U+0011 +0x12 U+0012 +0x13 U+0013 +0x14 U+0014 +0x15 U+0015 +0x16 U+0016 +0x17 U+0017 +0x18 U+0018 +0x19 U+0019 +0x1a U+001a +0x1b U+001b +0x1c U+001c +0x1d U+001d +0x1e U+001e +0x1f U+001f +0x20 U+0020 +0x21 U+0021 +0x22 U+0022 +0x23 U+0023 +0x24 U+0024 +0x25 U+0025 +0x26 U+0026 +0x27 U+0027 +0x28 U+0028 +0x29 U+0029 +0x2a U+002a +0x2b U+002b +0x2c U+002c +0x2d U+002d +0x2e U+002e +0x2f U+002f +0x30 U+0030 +0x31 U+0031 +0x32 U+0032 +0x33 U+0033 +0x34 U+0034 +0x35 U+0035 +0x36 U+0036 +0x37 U+0037 +0x38 U+0038 +0x39 U+0039 +0x3a U+003a +0x3b U+003b +0x3c U+003c +0x3d U+003d +0x3e U+003e +0x3f U+003f +0x40 U+0040 +0x41 U+0041 +0x42 U+0042 +0x43 U+0043 +0x44 U+0044 +0x45 U+0045 +0x46 U+0046 +0x47 U+0047 +0x48 U+0048 +0x49 U+0049 +0x4a U+004a +0x4b U+004b +0x4c U+004c +0x4d U+004d +0x4e U+004e +0x4f U+004f +0x50 U+0050 +0x51 U+0051 +0x52 U+0052 +0x53 U+0053 +0x54 U+0054 +0x55 U+0055 +0x56 U+0056 +0x57 U+0057 +0x58 U+0058 +0x59 U+0059 +0x5a U+005a +0x5b U+005b +0x5c U+005c +0x5d U+005d +0x5e U+005e +0x5f U+005f +0x60 U+0060 +0x61 U+0061 +0x62 U+0062 +0x63 U+0063 +0x64 U+0064 +0x65 U+0065 +0x66 U+0066 +0x67 U+0067 +0x68 U+0068 +0x69 U+0069 +0x6a U+006a +0x6b U+006b +0x6c U+006c +0x6d U+006d +0x6e U+006e +0x6f U+006f +0x70 U+0070 +0x71 U+0071 +0x72 U+0072 +0x73 U+0073 +0x74 U+0074 +0x75 U+0075 +0x76 U+0076 +0x77 U+0077 +0x78 U+0078 +0x79 U+0079 +0x7a U+007a +0x7b U+007b +0x7c U+007c +0x7d U+007d +0x7e U+007e +0x7f U+007f +0x80 U+00c7 +0x81 U+00fc +0x82 U+00e9 +0x83 U+00e2 +0x84 U+00e3 +0x85 U+00e0 +0x86 U+00c1 +0x87 U+00e7 +0x88 U+00ea +0x89 U+00ca +0x8a U+00e8 +0x8b U+00cd +0x8c U+00d4 +0x8d U+00ec +0x8e U+00c3 +0x8f U+00c2 +0x90 U+00c9 +0x91 U+00c0 +0x92 U+00c8 +0x93 U+00f4 +0x94 U+00f5 +0x95 U+00f2 +0x96 U+00da +0x97 U+00f9 +0x98 U+00cc +0x99 U+00d5 +0x9a U+00dc +0x9b U+00a2 +0x9c U+00a3 +0x9d U+00d9 +0x9e U+20a7 +0x9f U+00d3 +0xa0 U+00e1 +0xa1 U+00ed +0xa2 U+00f3 +0xa3 U+00fa +0xa4 U+00f1 +0xa5 U+00d1 +0xa6 U+00aa +0xa7 U+00ba +0xa8 U+00bf +0xa9 U+00d2 +0xaa U+00ac +0xab U+00bd +0xac U+00bc +0xad U+00a1 +0xae U+00ab +0xaf U+00bb +0xb0 U+2591 +0xb1 U+2592 +0xb2 U+2593 +0xb3 U+2502 +0xb4 U+2524 +0xb5 U+2561 +0xb6 U+2562 +0xb7 U+2556 +0xb8 U+2555 +0xb9 U+2563 +0xba U+2551 +0xbb U+2557 +0xbc U+255d +0xbd U+255c +0xbe U+255b +0xbf U+2510 +0xc0 U+2514 +0xc1 U+2534 +0xc2 U+252c +0xc3 U+251c +0xc4 U+2500 +0xc5 U+253c +0xc6 U+255e +0xc7 U+255f +0xc8 U+255a +0xc9 U+2554 +0xca U+2569 +0xcb U+2566 +0xcc U+2560 +0xcd U+2550 +0xce U+256c +0xcf U+2567 +0xd0 U+2568 +0xd1 U+2564 +0xd2 U+2565 +0xd3 U+2559 +0xd4 U+2558 +0xd5 U+2552 +0xd6 U+2553 +0xd7 U+256b +0xd8 U+256a +0xd9 U+2518 +0xda U+250c +0xdb U+2588 +0xdc U+2584 +0xdd U+258c +0xde U+2590 +0xdf U+2580 +0xe0 U+03b1 +0xe1 U+00df +0xe2 U+0393 +0xe3 U+03c0 +0xe4 U+03a3 +0xe5 U+03c3 +0xe6 U+00b5 +0xe7 U+03c4 +0xe8 U+03a6 +0xe9 U+0398 +0xea U+03a9 +0xeb U+03b4 +0xec U+221e +0xed U+03c6 +0xee U+03b5 +0xef U+2229 +0xf0 U+2261 +0xf1 U+00b1 +0xf2 U+2265 +0xf3 U+2264 +0xf4 U+2320 +0xf5 U+2321 +0xf6 U+00f7 +0xf7 U+2248 +0xf8 U+00b0 +0xf9 U+2219 +0xfa U+00b7 +0xfb U+221a +0xfc U+207f +0xfd U+00b2 +0xfe U+25a0 +0xff U+00a0 diff --git a/jdk/make/tools/CharsetMapping/IBM861.map b/jdk/make/tools/CharsetMapping/IBM861.map new file mode 100644 index 00000000000..05a1f5b0bb9 --- /dev/null +++ b/jdk/make/tools/CharsetMapping/IBM861.map @@ -0,0 +1,257 @@ +#Generated from IBM861.java +0x00 U+0000 +0x01 U+0001 +0x02 U+0002 +0x03 U+0003 +0x04 U+0004 +0x05 U+0005 +0x06 U+0006 +0x07 U+0007 +0x08 U+0008 +0x09 U+0009 +0x0a U+000a +0x0b U+000b +0x0c U+000c +0x0d U+000d +0x0e U+000e +0x0f U+000f +0x10 U+0010 +0x11 U+0011 +0x12 U+0012 +0x13 U+0013 +0x14 U+0014 +0x15 U+0015 +0x16 U+0016 +0x17 U+0017 +0x18 U+0018 +0x19 U+0019 +0x1a U+001a +0x1b U+001b +0x1c U+001c +0x1d U+001d +0x1e U+001e +0x1f U+001f +0x20 U+0020 +0x21 U+0021 +0x22 U+0022 +0x23 U+0023 +0x24 U+0024 +0x25 U+0025 +0x26 U+0026 +0x27 U+0027 +0x28 U+0028 +0x29 U+0029 +0x2a U+002a +0x2b U+002b +0x2c U+002c +0x2d U+002d +0x2e U+002e +0x2f U+002f +0x30 U+0030 +0x31 U+0031 +0x32 U+0032 +0x33 U+0033 +0x34 U+0034 +0x35 U+0035 +0x36 U+0036 +0x37 U+0037 +0x38 U+0038 +0x39 U+0039 +0x3a U+003a +0x3b U+003b +0x3c U+003c +0x3d U+003d +0x3e U+003e +0x3f U+003f +0x40 U+0040 +0x41 U+0041 +0x42 U+0042 +0x43 U+0043 +0x44 U+0044 +0x45 U+0045 +0x46 U+0046 +0x47 U+0047 +0x48 U+0048 +0x49 U+0049 +0x4a U+004a +0x4b U+004b +0x4c U+004c +0x4d U+004d +0x4e U+004e +0x4f U+004f +0x50 U+0050 +0x51 U+0051 +0x52 U+0052 +0x53 U+0053 +0x54 U+0054 +0x55 U+0055 +0x56 U+0056 +0x57 U+0057 +0x58 U+0058 +0x59 U+0059 +0x5a U+005a +0x5b U+005b +0x5c U+005c +0x5d U+005d +0x5e U+005e +0x5f U+005f +0x60 U+0060 +0x61 U+0061 +0x62 U+0062 +0x63 U+0063 +0x64 U+0064 +0x65 U+0065 +0x66 U+0066 +0x67 U+0067 +0x68 U+0068 +0x69 U+0069 +0x6a U+006a +0x6b U+006b +0x6c U+006c +0x6d U+006d +0x6e U+006e +0x6f U+006f +0x70 U+0070 +0x71 U+0071 +0x72 U+0072 +0x73 U+0073 +0x74 U+0074 +0x75 U+0075 +0x76 U+0076 +0x77 U+0077 +0x78 U+0078 +0x79 U+0079 +0x7a U+007a +0x7b U+007b +0x7c U+007c +0x7d U+007d +0x7e U+007e +0x7f U+007f +0x80 U+00c7 +0x81 U+00fc +0x82 U+00e9 +0x83 U+00e2 +0x84 U+00e4 +0x85 U+00e0 +0x86 U+00e5 +0x87 U+00e7 +0x88 U+00ea +0x89 U+00eb +0x8a U+00e8 +0x8b U+00d0 +0x8c U+00f0 +0x8d U+00de +0x8e U+00c4 +0x8f U+00c5 +0x90 U+00c9 +0x91 U+00e6 +0x92 U+00c6 +0x93 U+00f4 +0x94 U+00f6 +0x95 U+00fe +0x96 U+00fb +0x97 U+00dd +0x98 U+00fd +0x99 U+00d6 +0x9a U+00dc +0x9b U+00f8 +0x9c U+00a3 +0x9d U+00d8 +0x9e U+20a7 +0x9f U+0192 +0xa0 U+00e1 +0xa1 U+00ed +0xa2 U+00f3 +0xa3 U+00fa +0xa4 U+00c1 +0xa5 U+00cd +0xa6 U+00d3 +0xa7 U+00da +0xa8 U+00bf +0xa9 U+2310 +0xaa U+00ac +0xab U+00bd +0xac U+00bc +0xad U+00a1 +0xae U+00ab +0xaf U+00bb +0xb0 U+2591 +0xb1 U+2592 +0xb2 U+2593 +0xb3 U+2502 +0xb4 U+2524 +0xb5 U+2561 +0xb6 U+2562 +0xb7 U+2556 +0xb8 U+2555 +0xb9 U+2563 +0xba U+2551 +0xbb U+2557 +0xbc U+255d +0xbd U+255c +0xbe U+255b +0xbf U+2510 +0xc0 U+2514 +0xc1 U+2534 +0xc2 U+252c +0xc3 U+251c +0xc4 U+2500 +0xc5 U+253c +0xc6 U+255e +0xc7 U+255f +0xc8 U+255a +0xc9 U+2554 +0xca U+2569 +0xcb U+2566 +0xcc U+2560 +0xcd U+2550 +0xce U+256c +0xcf U+2567 +0xd0 U+2568 +0xd1 U+2564 +0xd2 U+2565 +0xd3 U+2559 +0xd4 U+2558 +0xd5 U+2552 +0xd6 U+2553 +0xd7 U+256b +0xd8 U+256a +0xd9 U+2518 +0xda U+250c +0xdb U+2588 +0xdc U+2584 +0xdd U+258c +0xde U+2590 +0xdf U+2580 +0xe0 U+03b1 +0xe1 U+00df +0xe2 U+0393 +0xe3 U+03c0 +0xe4 U+03a3 +0xe5 U+03c3 +0xe6 U+00b5 +0xe7 U+03c4 +0xe8 U+03a6 +0xe9 U+0398 +0xea U+03a9 +0xeb U+03b4 +0xec U+221e +0xed U+03c6 +0xee U+03b5 +0xef U+2229 +0xf0 U+2261 +0xf1 U+00b1 +0xf2 U+2265 +0xf3 U+2264 +0xf4 U+2320 +0xf5 U+2321 +0xf6 U+00f7 +0xf7 U+2248 +0xf8 U+00b0 +0xf9 U+2219 +0xfa U+00b7 +0xfb U+221a +0xfc U+207f +0xfd U+00b2 +0xfe U+25a0 +0xff U+00a0 diff --git a/jdk/make/tools/CharsetMapping/IBM862.map b/jdk/make/tools/CharsetMapping/IBM862.map new file mode 100644 index 00000000000..de3c0d16b5a --- /dev/null +++ b/jdk/make/tools/CharsetMapping/IBM862.map @@ -0,0 +1,257 @@ +#Generated from IBM862.java +0x00 U+0000 +0x01 U+0001 +0x02 U+0002 +0x03 U+0003 +0x04 U+0004 +0x05 U+0005 +0x06 U+0006 +0x07 U+0007 +0x08 U+0008 +0x09 U+0009 +0x0a U+000a +0x0b U+000b +0x0c U+000c +0x0d U+000d +0x0e U+000e +0x0f U+000f +0x10 U+0010 +0x11 U+0011 +0x12 U+0012 +0x13 U+0013 +0x14 U+0014 +0x15 U+0015 +0x16 U+0016 +0x17 U+0017 +0x18 U+0018 +0x19 U+0019 +0x1a U+001a +0x1b U+001b +0x1c U+001c +0x1d U+001d +0x1e U+001e +0x1f U+001f +0x20 U+0020 +0x21 U+0021 +0x22 U+0022 +0x23 U+0023 +0x24 U+0024 +0x25 U+0025 +0x26 U+0026 +0x27 U+0027 +0x28 U+0028 +0x29 U+0029 +0x2a U+002a +0x2b U+002b +0x2c U+002c +0x2d U+002d +0x2e U+002e +0x2f U+002f +0x30 U+0030 +0x31 U+0031 +0x32 U+0032 +0x33 U+0033 +0x34 U+0034 +0x35 U+0035 +0x36 U+0036 +0x37 U+0037 +0x38 U+0038 +0x39 U+0039 +0x3a U+003a +0x3b U+003b +0x3c U+003c +0x3d U+003d +0x3e U+003e +0x3f U+003f +0x40 U+0040 +0x41 U+0041 +0x42 U+0042 +0x43 U+0043 +0x44 U+0044 +0x45 U+0045 +0x46 U+0046 +0x47 U+0047 +0x48 U+0048 +0x49 U+0049 +0x4a U+004a +0x4b U+004b +0x4c U+004c +0x4d U+004d +0x4e U+004e +0x4f U+004f +0x50 U+0050 +0x51 U+0051 +0x52 U+0052 +0x53 U+0053 +0x54 U+0054 +0x55 U+0055 +0x56 U+0056 +0x57 U+0057 +0x58 U+0058 +0x59 U+0059 +0x5a U+005a +0x5b U+005b +0x5c U+005c +0x5d U+005d +0x5e U+005e +0x5f U+005f +0x60 U+0060 +0x61 U+0061 +0x62 U+0062 +0x63 U+0063 +0x64 U+0064 +0x65 U+0065 +0x66 U+0066 +0x67 U+0067 +0x68 U+0068 +0x69 U+0069 +0x6a U+006a +0x6b U+006b +0x6c U+006c +0x6d U+006d +0x6e U+006e +0x6f U+006f +0x70 U+0070 +0x71 U+0071 +0x72 U+0072 +0x73 U+0073 +0x74 U+0074 +0x75 U+0075 +0x76 U+0076 +0x77 U+0077 +0x78 U+0078 +0x79 U+0079 +0x7a U+007a +0x7b U+007b +0x7c U+007c +0x7d U+007d +0x7e U+007e +0x7f U+007f +0x80 U+05d0 +0x81 U+05d1 +0x82 U+05d2 +0x83 U+05d3 +0x84 U+05d4 +0x85 U+05d5 +0x86 U+05d6 +0x87 U+05d7 +0x88 U+05d8 +0x89 U+05d9 +0x8a U+05da +0x8b U+05db +0x8c U+05dc +0x8d U+05dd +0x8e U+05de +0x8f U+05df +0x90 U+05e0 +0x91 U+05e1 +0x92 U+05e2 +0x93 U+05e3 +0x94 U+05e4 +0x95 U+05e5 +0x96 U+05e6 +0x97 U+05e7 +0x98 U+05e8 +0x99 U+05e9 +0x9a U+05ea +0x9b U+00a2 +0x9c U+00a3 +0x9d U+00a5 +0x9e U+20a7 +0x9f U+0192 +0xa0 U+00e1 +0xa1 U+00ed +0xa2 U+00f3 +0xa3 U+00fa +0xa4 U+00f1 +0xa5 U+00d1 +0xa6 U+00aa +0xa7 U+00ba +0xa8 U+00bf +0xa9 U+2310 +0xaa U+00ac +0xab U+00bd +0xac U+00bc +0xad U+00a1 +0xae U+00ab +0xaf U+00bb +0xb0 U+2591 +0xb1 U+2592 +0xb2 U+2593 +0xb3 U+2502 +0xb4 U+2524 +0xb5 U+2561 +0xb6 U+2562 +0xb7 U+2556 +0xb8 U+2555 +0xb9 U+2563 +0xba U+2551 +0xbb U+2557 +0xbc U+255d +0xbd U+255c +0xbe U+255b +0xbf U+2510 +0xc0 U+2514 +0xc1 U+2534 +0xc2 U+252c +0xc3 U+251c +0xc4 U+2500 +0xc5 U+253c +0xc6 U+255e +0xc7 U+255f +0xc8 U+255a +0xc9 U+2554 +0xca U+2569 +0xcb U+2566 +0xcc U+2560 +0xcd U+2550 +0xce U+256c +0xcf U+2567 +0xd0 U+2568 +0xd1 U+2564 +0xd2 U+2565 +0xd3 U+2559 +0xd4 U+2558 +0xd5 U+2552 +0xd6 U+2553 +0xd7 U+256b +0xd8 U+256a +0xd9 U+2518 +0xda U+250c +0xdb U+2588 +0xdc U+2584 +0xdd U+258c +0xde U+2590 +0xdf U+2580 +0xe0 U+03b1 +0xe1 U+00df +0xe2 U+0393 +0xe3 U+03c0 +0xe4 U+03a3 +0xe5 U+03c3 +0xe6 U+00b5 +0xe7 U+03c4 +0xe8 U+03a6 +0xe9 U+0398 +0xea U+03a9 +0xeb U+03b4 +0xec U+221e +0xed U+03c6 +0xee U+03b5 +0xef U+2229 +0xf0 U+2261 +0xf1 U+00b1 +0xf2 U+2265 +0xf3 U+2264 +0xf4 U+2320 +0xf5 U+2321 +0xf6 U+00f7 +0xf7 U+2248 +0xf8 U+00b0 +0xf9 U+2219 +0xfa U+00b7 +0xfb U+221a +0xfc U+207f +0xfd U+00b2 +0xfe U+25a0 +0xff U+00a0 diff --git a/jdk/make/tools/CharsetMapping/IBM863.map b/jdk/make/tools/CharsetMapping/IBM863.map new file mode 100644 index 00000000000..e6bd5e77d80 --- /dev/null +++ b/jdk/make/tools/CharsetMapping/IBM863.map @@ -0,0 +1,257 @@ +#Generated from IBM863.java +0x00 U+0000 +0x01 U+0001 +0x02 U+0002 +0x03 U+0003 +0x04 U+0004 +0x05 U+0005 +0x06 U+0006 +0x07 U+0007 +0x08 U+0008 +0x09 U+0009 +0x0a U+000a +0x0b U+000b +0x0c U+000c +0x0d U+000d +0x0e U+000e +0x0f U+000f +0x10 U+0010 +0x11 U+0011 +0x12 U+0012 +0x13 U+0013 +0x14 U+0014 +0x15 U+0015 +0x16 U+0016 +0x17 U+0017 +0x18 U+0018 +0x19 U+0019 +0x1a U+001a +0x1b U+001b +0x1c U+001c +0x1d U+001d +0x1e U+001e +0x1f U+001f +0x20 U+0020 +0x21 U+0021 +0x22 U+0022 +0x23 U+0023 +0x24 U+0024 +0x25 U+0025 +0x26 U+0026 +0x27 U+0027 +0x28 U+0028 +0x29 U+0029 +0x2a U+002a +0x2b U+002b +0x2c U+002c +0x2d U+002d +0x2e U+002e +0x2f U+002f +0x30 U+0030 +0x31 U+0031 +0x32 U+0032 +0x33 U+0033 +0x34 U+0034 +0x35 U+0035 +0x36 U+0036 +0x37 U+0037 +0x38 U+0038 +0x39 U+0039 +0x3a U+003a +0x3b U+003b +0x3c U+003c +0x3d U+003d +0x3e U+003e +0x3f U+003f +0x40 U+0040 +0x41 U+0041 +0x42 U+0042 +0x43 U+0043 +0x44 U+0044 +0x45 U+0045 +0x46 U+0046 +0x47 U+0047 +0x48 U+0048 +0x49 U+0049 +0x4a U+004a +0x4b U+004b +0x4c U+004c +0x4d U+004d +0x4e U+004e +0x4f U+004f +0x50 U+0050 +0x51 U+0051 +0x52 U+0052 +0x53 U+0053 +0x54 U+0054 +0x55 U+0055 +0x56 U+0056 +0x57 U+0057 +0x58 U+0058 +0x59 U+0059 +0x5a U+005a +0x5b U+005b +0x5c U+005c +0x5d U+005d +0x5e U+005e +0x5f U+005f +0x60 U+0060 +0x61 U+0061 +0x62 U+0062 +0x63 U+0063 +0x64 U+0064 +0x65 U+0065 +0x66 U+0066 +0x67 U+0067 +0x68 U+0068 +0x69 U+0069 +0x6a U+006a +0x6b U+006b +0x6c U+006c +0x6d U+006d +0x6e U+006e +0x6f U+006f +0x70 U+0070 +0x71 U+0071 +0x72 U+0072 +0x73 U+0073 +0x74 U+0074 +0x75 U+0075 +0x76 U+0076 +0x77 U+0077 +0x78 U+0078 +0x79 U+0079 +0x7a U+007a +0x7b U+007b +0x7c U+007c +0x7d U+007d +0x7e U+007e +0x7f U+007f +0x80 U+00c7 +0x81 U+00fc +0x82 U+00e9 +0x83 U+00e2 +0x84 U+00c2 +0x85 U+00e0 +0x86 U+00b6 +0x87 U+00e7 +0x88 U+00ea +0x89 U+00eb +0x8a U+00e8 +0x8b U+00ef +0x8c U+00ee +0x8d U+2017 +0x8e U+00c0 +0x8f U+00a7 +0x90 U+00c9 +0x91 U+00c8 +0x92 U+00ca +0x93 U+00f4 +0x94 U+00cb +0x95 U+00cf +0x96 U+00fb +0x97 U+00f9 +0x98 U+00a4 +0x99 U+00d4 +0x9a U+00dc +0x9b U+00a2 +0x9c U+00a3 +0x9d U+00d9 +0x9e U+00db +0x9f U+0192 +0xa0 U+00a6 +0xa1 U+00b4 +0xa2 U+00f3 +0xa3 U+00fa +0xa4 U+00a8 +0xa5 U+00b8 +0xa6 U+00b3 +0xa7 U+00af +0xa8 U+00ce +0xa9 U+2310 +0xaa U+00ac +0xab U+00bd +0xac U+00bc +0xad U+00be +0xae U+00ab +0xaf U+00bb +0xb0 U+2591 +0xb1 U+2592 +0xb2 U+2593 +0xb3 U+2502 +0xb4 U+2524 +0xb5 U+2561 +0xb6 U+2562 +0xb7 U+2556 +0xb8 U+2555 +0xb9 U+2563 +0xba U+2551 +0xbb U+2557 +0xbc U+255d +0xbd U+255c +0xbe U+255b +0xbf U+2510 +0xc0 U+2514 +0xc1 U+2534 +0xc2 U+252c +0xc3 U+251c +0xc4 U+2500 +0xc5 U+253c +0xc6 U+255e +0xc7 U+255f +0xc8 U+255a +0xc9 U+2554 +0xca U+2569 +0xcb U+2566 +0xcc U+2560 +0xcd U+2550 +0xce U+256c +0xcf U+2567 +0xd0 U+2568 +0xd1 U+2564 +0xd2 U+2565 +0xd3 U+2559 +0xd4 U+2558 +0xd5 U+2552 +0xd6 U+2553 +0xd7 U+256b +0xd8 U+256a +0xd9 U+2518 +0xda U+250c +0xdb U+2588 +0xdc U+2584 +0xdd U+258c +0xde U+2590 +0xdf U+2580 +0xe0 U+03b1 +0xe1 U+00df +0xe2 U+0393 +0xe3 U+03c0 +0xe4 U+03a3 +0xe5 U+03c3 +0xe6 U+00b5 +0xe7 U+03c4 +0xe8 U+03a6 +0xe9 U+0398 +0xea U+03a9 +0xeb U+03b4 +0xec U+221e +0xed U+03c6 +0xee U+03b5 +0xef U+2229 +0xf0 U+2261 +0xf1 U+00b1 +0xf2 U+2265 +0xf3 U+2264 +0xf4 U+2320 +0xf5 U+2321 +0xf6 U+00f7 +0xf7 U+2248 +0xf8 U+00b0 +0xf9 U+2219 +0xfa U+00b7 +0xfb U+221a +0xfc U+207f +0xfd U+00b2 +0xfe U+25a0 +0xff U+00a0 diff --git a/jdk/make/tools/CharsetMapping/IBM864.map b/jdk/make/tools/CharsetMapping/IBM864.map new file mode 100644 index 00000000000..9ca27253c10 --- /dev/null +++ b/jdk/make/tools/CharsetMapping/IBM864.map @@ -0,0 +1,257 @@ +#Generated from IBM864.java +0x00 U+0000 +0x01 U+0001 +0x02 U+0002 +0x03 U+0003 +0x04 U+0004 +0x05 U+0005 +0x06 U+0006 +0x07 U+0007 +0x08 U+0008 +0x09 U+0009 +0x0a U+000a +0x0b U+000b +0x0c U+000c +0x0d U+000d +0x0e U+000e +0x0f U+000f +0x10 U+0010 +0x11 U+0011 +0x12 U+0012 +0x13 U+0013 +0x14 U+0014 +0x15 U+0015 +0x16 U+0016 +0x17 U+0017 +0x18 U+0018 +0x19 U+0019 +0x1a U+001a +0x1b U+001b +0x1c U+001c +0x1d U+001d +0x1e U+001e +0x1f U+001f +0x20 U+0020 +0x21 U+0021 +0x22 U+0022 +0x23 U+0023 +0x24 U+0024 +0x25 U+066a +0x26 U+0026 +0x27 U+0027 +0x28 U+0028 +0x29 U+0029 +0x2a U+002a +0x2b U+002b +0x2c U+002c +0x2d U+002d +0x2e U+002e +0x2f U+002f +0x30 U+0030 +0x31 U+0031 +0x32 U+0032 +0x33 U+0033 +0x34 U+0034 +0x35 U+0035 +0x36 U+0036 +0x37 U+0037 +0x38 U+0038 +0x39 U+0039 +0x3a U+003a +0x3b U+003b +0x3c U+003c +0x3d U+003d +0x3e U+003e +0x3f U+003f +0x40 U+0040 +0x41 U+0041 +0x42 U+0042 +0x43 U+0043 +0x44 U+0044 +0x45 U+0045 +0x46 U+0046 +0x47 U+0047 +0x48 U+0048 +0x49 U+0049 +0x4a U+004a +0x4b U+004b +0x4c U+004c +0x4d U+004d +0x4e U+004e +0x4f U+004f +0x50 U+0050 +0x51 U+0051 +0x52 U+0052 +0x53 U+0053 +0x54 U+0054 +0x55 U+0055 +0x56 U+0056 +0x57 U+0057 +0x58 U+0058 +0x59 U+0059 +0x5a U+005a +0x5b U+005b +0x5c U+005c +0x5d U+005d +0x5e U+005e +0x5f U+005f +0x60 U+0060 +0x61 U+0061 +0x62 U+0062 +0x63 U+0063 +0x64 U+0064 +0x65 U+0065 +0x66 U+0066 +0x67 U+0067 +0x68 U+0068 +0x69 U+0069 +0x6a U+006a +0x6b U+006b +0x6c U+006c +0x6d U+006d +0x6e U+006e +0x6f U+006f +0x70 U+0070 +0x71 U+0071 +0x72 U+0072 +0x73 U+0073 +0x74 U+0074 +0x75 U+0075 +0x76 U+0076 +0x77 U+0077 +0x78 U+0078 +0x79 U+0079 +0x7a U+007a +0x7b U+007b +0x7c U+007c +0x7d U+007d +0x7e U+007e +0x7f U+007f +0x80 U+00b0 +0x81 U+00b7 +0x82 U+2219 +0x83 U+221a +0x84 U+2592 +0x85 U+2500 +0x86 U+2502 +0x87 U+253c +0x88 U+2524 +0x89 U+252c +0x8a U+251c +0x8b U+2534 +0x8c U+2510 +0x8d U+250c +0x8e U+2514 +0x8f U+2518 +0x90 U+03b2 +0x91 U+221e +0x92 U+03c6 +0x93 U+00b1 +0x94 U+00bd +0x95 U+00bc +0x96 U+2248 +0x97 U+00ab +0x98 U+00bb +0x99 U+fef7 +0x9a U+fef8 +0x9b U+fffd +0x9c U+fffd +0x9d U+fefb +0x9e U+fefc +0x9f U+fffd +0xa0 U+00a0 +0xa1 U+00ad +0xa2 U+fe82 +0xa3 U+00a3 +0xa4 U+00a4 +0xa5 U+fe84 +0xa6 U+fffd +0xa7 U+fffd +0xa8 U+fe8e +0xa9 U+fe8f +0xaa U+fe95 +0xab U+fe99 +0xac U+060c +0xad U+fe9d +0xae U+fea1 +0xaf U+fea5 +0xb0 U+0660 +0xb1 U+0661 +0xb2 U+0662 +0xb3 U+0663 +0xb4 U+0664 +0xb5 U+0665 +0xb6 U+0666 +0xb7 U+0667 +0xb8 U+0668 +0xb9 U+0669 +0xba U+fed1 +0xbb U+061b +0xbc U+feb1 +0xbd U+feb5 +0xbe U+feb9 +0xbf U+061f +0xc0 U+00a2 +0xc1 U+fe80 +0xc2 U+fe81 +0xc3 U+fe83 +0xc4 U+fe85 +0xc5 U+feca +0xc6 U+fe8b +0xc7 U+fe8d +0xc8 U+fe91 +0xc9 U+fe93 +0xca U+fe97 +0xcb U+fe9b +0xcc U+fe9f +0xcd U+fea3 +0xce U+fea7 +0xcf U+fea9 +0xd0 U+feab +0xd1 U+fead +0xd2 U+feaf +0xd3 U+feb3 +0xd4 U+feb7 +0xd5 U+febb +0xd6 U+febf +0xd7 U+fec1 +0xd8 U+fec5 +0xd9 U+fecb +0xda U+fecf +0xdb U+00a6 +0xdc U+00ac +0xdd U+00f7 +0xde U+00d7 +0xdf U+fec9 +0xe0 U+0640 +0xe1 U+fed3 +0xe2 U+fed7 +0xe3 U+fedb +0xe4 U+fedf +0xe5 U+fee3 +0xe6 U+fee7 +0xe7 U+feeb +0xe8 U+feed +0xe9 U+feef +0xea U+fef3 +0xeb U+febd +0xec U+fecc +0xed U+fece +0xee U+fecd +0xef U+fee1 +0xf0 U+fe7d +0xf1 U+0651 +0xf2 U+fee5 +0xf3 U+fee9 +0xf4 U+feec +0xf5 U+fef0 +0xf6 U+fef2 +0xf7 U+fed0 +0xf8 U+fed5 +0xf9 U+fef5 +0xfa U+fef6 +0xfb U+fedd +0xfc U+fed9 +0xfd U+fef1 +0xfe U+25a0 +0xff U+fffd diff --git a/jdk/make/tools/CharsetMapping/IBM865.map b/jdk/make/tools/CharsetMapping/IBM865.map new file mode 100644 index 00000000000..7271013f0f5 --- /dev/null +++ b/jdk/make/tools/CharsetMapping/IBM865.map @@ -0,0 +1,257 @@ +#Generated from IBM865.java +0x00 U+0000 +0x01 U+0001 +0x02 U+0002 +0x03 U+0003 +0x04 U+0004 +0x05 U+0005 +0x06 U+0006 +0x07 U+0007 +0x08 U+0008 +0x09 U+0009 +0x0a U+000a +0x0b U+000b +0x0c U+000c +0x0d U+000d +0x0e U+000e +0x0f U+000f +0x10 U+0010 +0x11 U+0011 +0x12 U+0012 +0x13 U+0013 +0x14 U+0014 +0x15 U+0015 +0x16 U+0016 +0x17 U+0017 +0x18 U+0018 +0x19 U+0019 +0x1a U+001a +0x1b U+001b +0x1c U+001c +0x1d U+001d +0x1e U+001e +0x1f U+001f +0x20 U+0020 +0x21 U+0021 +0x22 U+0022 +0x23 U+0023 +0x24 U+0024 +0x25 U+0025 +0x26 U+0026 +0x27 U+0027 +0x28 U+0028 +0x29 U+0029 +0x2a U+002a +0x2b U+002b +0x2c U+002c +0x2d U+002d +0x2e U+002e +0x2f U+002f +0x30 U+0030 +0x31 U+0031 +0x32 U+0032 +0x33 U+0033 +0x34 U+0034 +0x35 U+0035 +0x36 U+0036 +0x37 U+0037 +0x38 U+0038 +0x39 U+0039 +0x3a U+003a +0x3b U+003b +0x3c U+003c +0x3d U+003d +0x3e U+003e +0x3f U+003f +0x40 U+0040 +0x41 U+0041 +0x42 U+0042 +0x43 U+0043 +0x44 U+0044 +0x45 U+0045 +0x46 U+0046 +0x47 U+0047 +0x48 U+0048 +0x49 U+0049 +0x4a U+004a +0x4b U+004b +0x4c U+004c +0x4d U+004d +0x4e U+004e +0x4f U+004f +0x50 U+0050 +0x51 U+0051 +0x52 U+0052 +0x53 U+0053 +0x54 U+0054 +0x55 U+0055 +0x56 U+0056 +0x57 U+0057 +0x58 U+0058 +0x59 U+0059 +0x5a U+005a +0x5b U+005b +0x5c U+005c +0x5d U+005d +0x5e U+005e +0x5f U+005f +0x60 U+0060 +0x61 U+0061 +0x62 U+0062 +0x63 U+0063 +0x64 U+0064 +0x65 U+0065 +0x66 U+0066 +0x67 U+0067 +0x68 U+0068 +0x69 U+0069 +0x6a U+006a +0x6b U+006b +0x6c U+006c +0x6d U+006d +0x6e U+006e +0x6f U+006f +0x70 U+0070 +0x71 U+0071 +0x72 U+0072 +0x73 U+0073 +0x74 U+0074 +0x75 U+0075 +0x76 U+0076 +0x77 U+0077 +0x78 U+0078 +0x79 U+0079 +0x7a U+007a +0x7b U+007b +0x7c U+007c +0x7d U+007d +0x7e U+007e +0x7f U+007f +0x80 U+00c7 +0x81 U+00fc +0x82 U+00e9 +0x83 U+00e2 +0x84 U+00e4 +0x85 U+00e0 +0x86 U+00e5 +0x87 U+00e7 +0x88 U+00ea +0x89 U+00eb +0x8a U+00e8 +0x8b U+00ef +0x8c U+00ee +0x8d U+00ec +0x8e U+00c4 +0x8f U+00c5 +0x90 U+00c9 +0x91 U+00e6 +0x92 U+00c6 +0x93 U+00f4 +0x94 U+00f6 +0x95 U+00f2 +0x96 U+00fb +0x97 U+00f9 +0x98 U+00ff +0x99 U+00d6 +0x9a U+00dc +0x9b U+00f8 +0x9c U+00a3 +0x9d U+00d8 +0x9e U+20a7 +0x9f U+0192 +0xa0 U+00e1 +0xa1 U+00ed +0xa2 U+00f3 +0xa3 U+00fa +0xa4 U+00f1 +0xa5 U+00d1 +0xa6 U+00aa +0xa7 U+00ba +0xa8 U+00bf +0xa9 U+2310 +0xaa U+00ac +0xab U+00bd +0xac U+00bc +0xad U+00a1 +0xae U+00ab +0xaf U+00a4 +0xb0 U+2591 +0xb1 U+2592 +0xb2 U+2593 +0xb3 U+2502 +0xb4 U+2524 +0xb5 U+2561 +0xb6 U+2562 +0xb7 U+2556 +0xb8 U+2555 +0xb9 U+2563 +0xba U+2551 +0xbb U+2557 +0xbc U+255d +0xbd U+255c +0xbe U+255b +0xbf U+2510 +0xc0 U+2514 +0xc1 U+2534 +0xc2 U+252c +0xc3 U+251c +0xc4 U+2500 +0xc5 U+253c +0xc6 U+255e +0xc7 U+255f +0xc8 U+255a +0xc9 U+2554 +0xca U+2569 +0xcb U+2566 +0xcc U+2560 +0xcd U+2550 +0xce U+256c +0xcf U+2567 +0xd0 U+2568 +0xd1 U+2564 +0xd2 U+2565 +0xd3 U+2559 +0xd4 U+2558 +0xd5 U+2552 +0xd6 U+2553 +0xd7 U+256b +0xd8 U+256a +0xd9 U+2518 +0xda U+250c +0xdb U+2588 +0xdc U+2584 +0xdd U+258c +0xde U+2590 +0xdf U+2580 +0xe0 U+03b1 +0xe1 U+00df +0xe2 U+0393 +0xe3 U+03c0 +0xe4 U+03a3 +0xe5 U+03c3 +0xe6 U+00b5 +0xe7 U+03c4 +0xe8 U+03a6 +0xe9 U+0398 +0xea U+03a9 +0xeb U+03b4 +0xec U+221e +0xed U+03c6 +0xee U+03b5 +0xef U+2229 +0xf0 U+2261 +0xf1 U+00b1 +0xf2 U+2265 +0xf3 U+2264 +0xf4 U+2320 +0xf5 U+2321 +0xf6 U+00f7 +0xf7 U+2248 +0xf8 U+00b0 +0xf9 U+2219 +0xfa U+00b7 +0xfb U+221a +0xfc U+207f +0xfd U+00b2 +0xfe U+25a0 +0xff U+00a0 diff --git a/jdk/make/tools/CharsetMapping/IBM866.map b/jdk/make/tools/CharsetMapping/IBM866.map new file mode 100644 index 00000000000..1e28b46764e --- /dev/null +++ b/jdk/make/tools/CharsetMapping/IBM866.map @@ -0,0 +1,257 @@ +#Generated from IBM866.java +0x00 U+0000 +0x01 U+0001 +0x02 U+0002 +0x03 U+0003 +0x04 U+0004 +0x05 U+0005 +0x06 U+0006 +0x07 U+0007 +0x08 U+0008 +0x09 U+0009 +0x0a U+000a +0x0b U+000b +0x0c U+000c +0x0d U+000d +0x0e U+000e +0x0f U+000f +0x10 U+0010 +0x11 U+0011 +0x12 U+0012 +0x13 U+0013 +0x14 U+0014 +0x15 U+0015 +0x16 U+0016 +0x17 U+0017 +0x18 U+0018 +0x19 U+0019 +0x1a U+001a +0x1b U+001b +0x1c U+001c +0x1d U+001d +0x1e U+001e +0x1f U+001f +0x20 U+0020 +0x21 U+0021 +0x22 U+0022 +0x23 U+0023 +0x24 U+0024 +0x25 U+0025 +0x26 U+0026 +0x27 U+0027 +0x28 U+0028 +0x29 U+0029 +0x2a U+002a +0x2b U+002b +0x2c U+002c +0x2d U+002d +0x2e U+002e +0x2f U+002f +0x30 U+0030 +0x31 U+0031 +0x32 U+0032 +0x33 U+0033 +0x34 U+0034 +0x35 U+0035 +0x36 U+0036 +0x37 U+0037 +0x38 U+0038 +0x39 U+0039 +0x3a U+003a +0x3b U+003b +0x3c U+003c +0x3d U+003d +0x3e U+003e +0x3f U+003f +0x40 U+0040 +0x41 U+0041 +0x42 U+0042 +0x43 U+0043 +0x44 U+0044 +0x45 U+0045 +0x46 U+0046 +0x47 U+0047 +0x48 U+0048 +0x49 U+0049 +0x4a U+004a +0x4b U+004b +0x4c U+004c +0x4d U+004d +0x4e U+004e +0x4f U+004f +0x50 U+0050 +0x51 U+0051 +0x52 U+0052 +0x53 U+0053 +0x54 U+0054 +0x55 U+0055 +0x56 U+0056 +0x57 U+0057 +0x58 U+0058 +0x59 U+0059 +0x5a U+005a +0x5b U+005b +0x5c U+005c +0x5d U+005d +0x5e U+005e +0x5f U+005f +0x60 U+0060 +0x61 U+0061 +0x62 U+0062 +0x63 U+0063 +0x64 U+0064 +0x65 U+0065 +0x66 U+0066 +0x67 U+0067 +0x68 U+0068 +0x69 U+0069 +0x6a U+006a +0x6b U+006b +0x6c U+006c +0x6d U+006d +0x6e U+006e +0x6f U+006f +0x70 U+0070 +0x71 U+0071 +0x72 U+0072 +0x73 U+0073 +0x74 U+0074 +0x75 U+0075 +0x76 U+0076 +0x77 U+0077 +0x78 U+0078 +0x79 U+0079 +0x7a U+007a +0x7b U+007b +0x7c U+007c +0x7d U+007d +0x7e U+007e +0x7f U+007f +0x80 U+0410 +0x81 U+0411 +0x82 U+0412 +0x83 U+0413 +0x84 U+0414 +0x85 U+0415 +0x86 U+0416 +0x87 U+0417 +0x88 U+0418 +0x89 U+0419 +0x8a U+041a +0x8b U+041b +0x8c U+041c +0x8d U+041d +0x8e U+041e +0x8f U+041f +0x90 U+0420 +0x91 U+0421 +0x92 U+0422 +0x93 U+0423 +0x94 U+0424 +0x95 U+0425 +0x96 U+0426 +0x97 U+0427 +0x98 U+0428 +0x99 U+0429 +0x9a U+042a +0x9b U+042b +0x9c U+042c +0x9d U+042d +0x9e U+042e +0x9f U+042f +0xa0 U+0430 +0xa1 U+0431 +0xa2 U+0432 +0xa3 U+0433 +0xa4 U+0434 +0xa5 U+0435 +0xa6 U+0436 +0xa7 U+0437 +0xa8 U+0438 +0xa9 U+0439 +0xaa U+043a +0xab U+043b +0xac U+043c +0xad U+043d +0xae U+043e +0xaf U+043f +0xb0 U+2591 +0xb1 U+2592 +0xb2 U+2593 +0xb3 U+2502 +0xb4 U+2524 +0xb5 U+2561 +0xb6 U+2562 +0xb7 U+2556 +0xb8 U+2555 +0xb9 U+2563 +0xba U+2551 +0xbb U+2557 +0xbc U+255d +0xbd U+255c +0xbe U+255b +0xbf U+2510 +0xc0 U+2514 +0xc1 U+2534 +0xc2 U+252c +0xc3 U+251c +0xc4 U+2500 +0xc5 U+253c +0xc6 U+255e +0xc7 U+255f +0xc8 U+255a +0xc9 U+2554 +0xca U+2569 +0xcb U+2566 +0xcc U+2560 +0xcd U+2550 +0xce U+256c +0xcf U+2567 +0xd0 U+2568 +0xd1 U+2564 +0xd2 U+2565 +0xd3 U+2559 +0xd4 U+2558 +0xd5 U+2552 +0xd6 U+2553 +0xd7 U+256b +0xd8 U+256a +0xd9 U+2518 +0xda U+250c +0xdb U+2588 +0xdc U+2584 +0xdd U+258c +0xde U+2590 +0xdf U+2580 +0xe0 U+0440 +0xe1 U+0441 +0xe2 U+0442 +0xe3 U+0443 +0xe4 U+0444 +0xe5 U+0445 +0xe6 U+0446 +0xe7 U+0447 +0xe8 U+0448 +0xe9 U+0449 +0xea U+044a +0xeb U+044b +0xec U+044c +0xed U+044d +0xee U+044e +0xef U+044f +0xf0 U+0401 +0xf1 U+0451 +0xf2 U+0404 +0xf3 U+0454 +0xf4 U+0407 +0xf5 U+0457 +0xf6 U+040e +0xf7 U+045e +0xf8 U+00b0 +0xf9 U+2219 +0xfa U+00b7 +0xfb U+221a +0xfc U+2116 +0xfd U+00a4 +0xfe U+25a0 +0xff U+00a0 diff --git a/jdk/make/tools/CharsetMapping/IBM868.map b/jdk/make/tools/CharsetMapping/IBM868.map new file mode 100644 index 00000000000..cb5a1737c19 --- /dev/null +++ b/jdk/make/tools/CharsetMapping/IBM868.map @@ -0,0 +1,257 @@ +#Generated from IBM868.java +0x00 U+0000 +0x01 U+0001 +0x02 U+0002 +0x03 U+0003 +0x04 U+0004 +0x05 U+0005 +0x06 U+0006 +0x07 U+0007 +0x08 U+0008 +0x09 U+0009 +0x0a U+000a +0x0b U+000b +0x0c U+000c +0x0d U+000d +0x0e U+000e +0x0f U+000f +0x10 U+0010 +0x11 U+0011 +0x12 U+0012 +0x13 U+0013 +0x14 U+0014 +0x15 U+0015 +0x16 U+0016 +0x17 U+0017 +0x18 U+0018 +0x19 U+0019 +0x1a U+001a +0x1b U+001b +0x1c U+001c +0x1d U+001d +0x1e U+001e +0x1f U+001f +0x20 U+0020 +0x21 U+0021 +0x22 U+0022 +0x23 U+0023 +0x24 U+0024 +0x25 U+0025 +0x26 U+0026 +0x27 U+0027 +0x28 U+0028 +0x29 U+0029 +0x2a U+002a +0x2b U+002b +0x2c U+002c +0x2d U+002d +0x2e U+002e +0x2f U+002f +0x30 U+0030 +0x31 U+0031 +0x32 U+0032 +0x33 U+0033 +0x34 U+0034 +0x35 U+0035 +0x36 U+0036 +0x37 U+0037 +0x38 U+0038 +0x39 U+0039 +0x3a U+003a +0x3b U+003b +0x3c U+003c +0x3d U+003d +0x3e U+003e +0x3f U+003f +0x40 U+0040 +0x41 U+0041 +0x42 U+0042 +0x43 U+0043 +0x44 U+0044 +0x45 U+0045 +0x46 U+0046 +0x47 U+0047 +0x48 U+0048 +0x49 U+0049 +0x4a U+004a +0x4b U+004b +0x4c U+004c +0x4d U+004d +0x4e U+004e +0x4f U+004f +0x50 U+0050 +0x51 U+0051 +0x52 U+0052 +0x53 U+0053 +0x54 U+0054 +0x55 U+0055 +0x56 U+0056 +0x57 U+0057 +0x58 U+0058 +0x59 U+0059 +0x5a U+005a +0x5b U+005b +0x5c U+005c +0x5d U+005d +0x5e U+005e +0x5f U+005f +0x60 U+0060 +0x61 U+0061 +0x62 U+0062 +0x63 U+0063 +0x64 U+0064 +0x65 U+0065 +0x66 U+0066 +0x67 U+0067 +0x68 U+0068 +0x69 U+0069 +0x6a U+006a +0x6b U+006b +0x6c U+006c +0x6d U+006d +0x6e U+006e +0x6f U+006f +0x70 U+0070 +0x71 U+0071 +0x72 U+0072 +0x73 U+0073 +0x74 U+0074 +0x75 U+0075 +0x76 U+0076 +0x77 U+0077 +0x78 U+0078 +0x79 U+0079 +0x7a U+007a +0x7b U+007b +0x7c U+007c +0x7d U+007d +0x7e U+007e +0x7f U+007f +0x80 U+06f0 +0x81 U+06f1 +0x82 U+06f2 +0x83 U+06f3 +0x84 U+06f4 +0x85 U+06f5 +0x86 U+06f6 +0x87 U+06f7 +0x88 U+06f8 +0x89 U+06f9 +0x8a U+060c +0x8b U+061b +0x8c U+061f +0x8d U+fe81 +0x8e U+fe8d +0x8f U+fe8e +0x90 U+f8fb +0x91 U+fe8f +0x92 U+fe91 +0x93 U+fb56 +0x94 U+fb58 +0x95 U+fe93 +0x96 U+fe95 +0x97 U+fe97 +0x98 U+fb66 +0x99 U+fb68 +0x9a U+fe99 +0x9b U+fe9b +0x9c U+fe9d +0x9d U+fe9f +0x9e U+fb7a +0x9f U+fb7c +0xa0 U+fea1 +0xa1 U+fea3 +0xa2 U+fea5 +0xa3 U+fea7 +0xa4 U+fea9 +0xa5 U+fb88 +0xa6 U+feab +0xa7 U+fead +0xa8 U+fb8c +0xa9 U+feaf +0xaa U+fb8a +0xab U+feb1 +0xac U+feb3 +0xad U+feb5 +0xae U+00ab +0xaf U+00bb +0xb0 U+2591 +0xb1 U+2592 +0xb2 U+2593 +0xb3 U+2502 +0xb4 U+2524 +0xb5 U+feb7 +0xb6 U+feb9 +0xb7 U+febb +0xb8 U+febd +0xb9 U+2563 +0xba U+2551 +0xbb U+2557 +0xbc U+255d +0xbd U+febf +0xbe U+fec3 +0xbf U+2510 +0xc0 U+2514 +0xc1 U+2534 +0xc2 U+252c +0xc3 U+251c +0xc4 U+2500 +0xc5 U+253c +0xc6 U+fec7 +0xc7 U+fec9 +0xc8 U+255a +0xc9 U+2554 +0xca U+2569 +0xcb U+2566 +0xcc U+2560 +0xcd U+2550 +0xce U+256c +0xcf U+feca +0xd0 U+fecb +0xd1 U+fecc +0xd2 U+fecd +0xd3 U+fece +0xd4 U+fecf +0xd5 U+fed0 +0xd6 U+fed1 +0xd7 U+fed3 +0xd8 U+fed5 +0xd9 U+2518 +0xda U+250c +0xdb U+2588 +0xdc U+2584 +0xdd U+fed7 +0xde U+fb8e +0xdf U+2580 +0xe0 U+fedb +0xe1 U+fb92 +0xe2 U+fb94 +0xe3 U+fedd +0xe4 U+fedf +0xe5 U+fee0 +0xe6 U+fee1 +0xe7 U+fee3 +0xe8 U+fb9e +0xe9 U+fee5 +0xea U+fee7 +0xeb U+fe85 +0xec U+feed +0xed U+fba6 +0xee U+fba8 +0xef U+fba9 +0xf0 U+00ad +0xf1 U+fbaa +0xf2 U+fe80 +0xf3 U+fe89 +0xf4 U+fe8a +0xf5 U+fe8b +0xf6 U+fbfc +0xf7 U+fbfd +0xf8 U+fbfe +0xf9 U+fbb0 +0xfa U+fbae +0xfb U+fe7c +0xfc U+fe7d +0xfd U+fffd +0xfe U+25a0 +0xff U+00a0 diff --git a/jdk/make/tools/CharsetMapping/IBM869.map b/jdk/make/tools/CharsetMapping/IBM869.map new file mode 100644 index 00000000000..097967484f4 --- /dev/null +++ b/jdk/make/tools/CharsetMapping/IBM869.map @@ -0,0 +1,257 @@ +#Generated from IBM869.java +0x00 U+0000 +0x01 U+0001 +0x02 U+0002 +0x03 U+0003 +0x04 U+0004 +0x05 U+0005 +0x06 U+0006 +0x07 U+0007 +0x08 U+0008 +0x09 U+0009 +0x0a U+000a +0x0b U+000b +0x0c U+000c +0x0d U+000d +0x0e U+000e +0x0f U+000f +0x10 U+0010 +0x11 U+0011 +0x12 U+0012 +0x13 U+0013 +0x14 U+0014 +0x15 U+0015 +0x16 U+0016 +0x17 U+0017 +0x18 U+0018 +0x19 U+0019 +0x1a U+001a +0x1b U+001b +0x1c U+001c +0x1d U+001d +0x1e U+001e +0x1f U+001f +0x20 U+0020 +0x21 U+0021 +0x22 U+0022 +0x23 U+0023 +0x24 U+0024 +0x25 U+0025 +0x26 U+0026 +0x27 U+0027 +0x28 U+0028 +0x29 U+0029 +0x2a U+002a +0x2b U+002b +0x2c U+002c +0x2d U+002d +0x2e U+002e +0x2f U+002f +0x30 U+0030 +0x31 U+0031 +0x32 U+0032 +0x33 U+0033 +0x34 U+0034 +0x35 U+0035 +0x36 U+0036 +0x37 U+0037 +0x38 U+0038 +0x39 U+0039 +0x3a U+003a +0x3b U+003b +0x3c U+003c +0x3d U+003d +0x3e U+003e +0x3f U+003f +0x40 U+0040 +0x41 U+0041 +0x42 U+0042 +0x43 U+0043 +0x44 U+0044 +0x45 U+0045 +0x46 U+0046 +0x47 U+0047 +0x48 U+0048 +0x49 U+0049 +0x4a U+004a +0x4b U+004b +0x4c U+004c +0x4d U+004d +0x4e U+004e +0x4f U+004f +0x50 U+0050 +0x51 U+0051 +0x52 U+0052 +0x53 U+0053 +0x54 U+0054 +0x55 U+0055 +0x56 U+0056 +0x57 U+0057 +0x58 U+0058 +0x59 U+0059 +0x5a U+005a +0x5b U+005b +0x5c U+005c +0x5d U+005d +0x5e U+005e +0x5f U+005f +0x60 U+0060 +0x61 U+0061 +0x62 U+0062 +0x63 U+0063 +0x64 U+0064 +0x65 U+0065 +0x66 U+0066 +0x67 U+0067 +0x68 U+0068 +0x69 U+0069 +0x6a U+006a +0x6b U+006b +0x6c U+006c +0x6d U+006d +0x6e U+006e +0x6f U+006f +0x70 U+0070 +0x71 U+0071 +0x72 U+0072 +0x73 U+0073 +0x74 U+0074 +0x75 U+0075 +0x76 U+0076 +0x77 U+0077 +0x78 U+0078 +0x79 U+0079 +0x7a U+007a +0x7b U+007b +0x7c U+007c +0x7d U+007d +0x7e U+007e +0x7f U+007f +0x80 U+fffd +0x81 U+fffd +0x82 U+fffd +0x83 U+fffd +0x84 U+fffd +0x85 U+fffd +0x86 U+0386 +0x87 U+fffd +0x88 U+00b7 +0x89 U+00ac +0x8a U+00a6 +0x8b U+2018 +0x8c U+2019 +0x8d U+0388 +0x8e U+2015 +0x8f U+0389 +0x90 U+038a +0x91 U+03aa +0x92 U+038c +0x93 U+fffd +0x94 U+fffd +0x95 U+038e +0x96 U+03ab +0x97 U+00a9 +0x98 U+038f +0x99 U+00b2 +0x9a U+00b3 +0x9b U+03ac +0x9c U+00a3 +0x9d U+03ad +0x9e U+03ae +0x9f U+03af +0xa0 U+03ca +0xa1 U+0390 +0xa2 U+03cc +0xa3 U+03cd +0xa4 U+0391 +0xa5 U+0392 +0xa6 U+0393 +0xa7 U+0394 +0xa8 U+0395 +0xa9 U+0396 +0xaa U+0397 +0xab U+00bd +0xac U+0398 +0xad U+0399 +0xae U+00ab +0xaf U+00bb +0xb0 U+2591 +0xb1 U+2592 +0xb2 U+2593 +0xb3 U+2502 +0xb4 U+2524 +0xb5 U+039a +0xb6 U+039b +0xb7 U+039c +0xb8 U+039d +0xb9 U+2563 +0xba U+2551 +0xbb U+2557 +0xbc U+255d +0xbd U+039e +0xbe U+039f +0xbf U+2510 +0xc0 U+2514 +0xc1 U+2534 +0xc2 U+252c +0xc3 U+251c +0xc4 U+2500 +0xc5 U+253c +0xc6 U+03a0 +0xc7 U+03a1 +0xc8 U+255a +0xc9 U+2554 +0xca U+2569 +0xcb U+2566 +0xcc U+2560 +0xcd U+2550 +0xce U+256c +0xcf U+03a3 +0xd0 U+03a4 +0xd1 U+03a5 +0xd2 U+03a6 +0xd3 U+03a7 +0xd4 U+03a8 +0xd5 U+03a9 +0xd6 U+03b1 +0xd7 U+03b2 +0xd8 U+03b3 +0xd9 U+2518 +0xda U+250c +0xdb U+2588 +0xdc U+2584 +0xdd U+03b4 +0xde U+03b5 +0xdf U+2580 +0xe0 U+03b6 +0xe1 U+03b7 +0xe2 U+03b8 +0xe3 U+03b9 +0xe4 U+03ba +0xe5 U+03bb +0xe6 U+03bc +0xe7 U+03bd +0xe8 U+03be +0xe9 U+03bf +0xea U+03c0 +0xeb U+03c1 +0xec U+03c3 +0xed U+03c2 +0xee U+03c4 +0xef U+0384 +0xf0 U+00ad +0xf1 U+00b1 +0xf2 U+03c5 +0xf3 U+03c6 +0xf4 U+03c7 +0xf5 U+00a7 +0xf6 U+03c8 +0xf7 U+0385 +0xf8 U+00b0 +0xf9 U+00a8 +0xfa U+03c9 +0xfb U+03cb +0xfc U+03b0 +0xfd U+03ce +0xfe U+25a0 +0xff U+00a0 diff --git a/jdk/make/tools/CharsetMapping/IBM870.c2b b/jdk/make/tools/CharsetMapping/IBM870.c2b new file mode 100644 index 00000000000..6cb38028124 --- /dev/null +++ b/jdk/make/tools/CharsetMapping/IBM870.c2b @@ -0,0 +1 @@ +0x15 U+0085 diff --git a/jdk/make/tools/CharsetMapping/IBM870.map b/jdk/make/tools/CharsetMapping/IBM870.map new file mode 100644 index 00000000000..a6b1a2dd24c --- /dev/null +++ b/jdk/make/tools/CharsetMapping/IBM870.map @@ -0,0 +1,257 @@ +#Generated from IBM870.java +0x00 U+0000 +0x01 U+0001 +0x02 U+0002 +0x03 U+0003 +0x04 U+009c +0x05 U+0009 +0x06 U+0086 +0x07 U+007f +0x08 U+0097 +0x09 U+008d +0x0a U+008e +0x0b U+000b +0x0c U+000c +0x0d U+000d +0x0e U+000e +0x0f U+000f +0x10 U+0010 +0x11 U+0011 +0x12 U+0012 +0x13 U+0013 +0x14 U+009d +0x15 U+000a +0x16 U+0008 +0x17 U+0087 +0x18 U+0018 +0x19 U+0019 +0x1a U+0092 +0x1b U+008f +0x1c U+001c +0x1d U+001d +0x1e U+001e +0x1f U+001f +0x20 U+0080 +0x21 U+0081 +0x22 U+0082 +0x23 U+0083 +0x24 U+0084 +0x25 U+000a +0x26 U+0017 +0x27 U+001b +0x28 U+0088 +0x29 U+0089 +0x2a U+008a +0x2b U+008b +0x2c U+008c +0x2d U+0005 +0x2e U+0006 +0x2f U+0007 +0x30 U+0090 +0x31 U+0091 +0x32 U+0016 +0x33 U+0093 +0x34 U+0094 +0x35 U+0095 +0x36 U+0096 +0x37 U+0004 +0x38 U+0098 +0x39 U+0099 +0x3a U+009a +0x3b U+009b +0x3c U+0014 +0x3d U+0015 +0x3e U+009e +0x3f U+001a +0x40 U+0020 +0x41 U+00a0 +0x42 U+00e2 +0x43 U+00e4 +0x44 U+0163 +0x45 U+00e1 +0x46 U+0103 +0x47 U+010d +0x48 U+00e7 +0x49 U+0107 +0x4a U+005b +0x4b U+002e +0x4c U+003c +0x4d U+0028 +0x4e U+002b +0x4f U+0021 +0x50 U+0026 +0x51 U+00e9 +0x52 U+0119 +0x53 U+00eb +0x54 U+016f +0x55 U+00ed +0x56 U+00ee +0x57 U+013e +0x58 U+013a +0x59 U+00df +0x5a U+005d +0x5b U+0024 +0x5c U+002a +0x5d U+0029 +0x5e U+003b +0x5f U+005e +0x60 U+002d +0x61 U+002f +0x62 U+00c2 +0x63 U+00c4 +0x64 U+02dd +0x65 U+00c1 +0x66 U+0102 +0x67 U+010c +0x68 U+00c7 +0x69 U+0106 +0x6a U+007c +0x6b U+002c +0x6c U+0025 +0x6d U+005f +0x6e U+003e +0x6f U+003f +0x70 U+02c7 +0x71 U+00c9 +0x72 U+0118 +0x73 U+00cb +0x74 U+016e +0x75 U+00cd +0x76 U+00ce +0x77 U+013d +0x78 U+0139 +0x79 U+0060 +0x7a U+003a +0x7b U+0023 +0x7c U+0040 +0x7d U+0027 +0x7e U+003d +0x7f U+0022 +0x80 U+02d8 +0x81 U+0061 +0x82 U+0062 +0x83 U+0063 +0x84 U+0064 +0x85 U+0065 +0x86 U+0066 +0x87 U+0067 +0x88 U+0068 +0x89 U+0069 +0x8a U+015b +0x8b U+0148 +0x8c U+0111 +0x8d U+00fd +0x8e U+0159 +0x8f U+015f +0x90 U+00b0 +0x91 U+006a +0x92 U+006b +0x93 U+006c +0x94 U+006d +0x95 U+006e +0x96 U+006f +0x97 U+0070 +0x98 U+0071 +0x99 U+0072 +0x9a U+0142 +0x9b U+0144 +0x9c U+0161 +0x9d U+00b8 +0x9e U+02db +0x9f U+00a4 +0xa0 U+0105 +0xa1 U+007e +0xa2 U+0073 +0xa3 U+0074 +0xa4 U+0075 +0xa5 U+0076 +0xa6 U+0077 +0xa7 U+0078 +0xa8 U+0079 +0xa9 U+007a +0xaa U+015a +0xab U+0147 +0xac U+0110 +0xad U+00dd +0xae U+0158 +0xaf U+015e +0xb0 U+02d9 +0xb1 U+0104 +0xb2 U+017c +0xb3 U+0162 +0xb4 U+017b +0xb5 U+00a7 +0xb6 U+017e +0xb7 U+017a +0xb8 U+017d +0xb9 U+0179 +0xba U+0141 +0xbb U+0143 +0xbc U+0160 +0xbd U+00a8 +0xbe U+00b4 +0xbf U+00d7 +0xc0 U+007b +0xc1 U+0041 +0xc2 U+0042 +0xc3 U+0043 +0xc4 U+0044 +0xc5 U+0045 +0xc6 U+0046 +0xc7 U+0047 +0xc8 U+0048 +0xc9 U+0049 +0xca U+00ad +0xcb U+00f4 +0xcc U+00f6 +0xcd U+0155 +0xce U+00f3 +0xcf U+0151 +0xd0 U+007d +0xd1 U+004a +0xd2 U+004b +0xd3 U+004c +0xd4 U+004d +0xd5 U+004e +0xd6 U+004f +0xd7 U+0050 +0xd8 U+0051 +0xd9 U+0052 +0xda U+011a +0xdb U+0171 +0xdc U+00fc +0xdd U+0165 +0xde U+00fa +0xdf U+011b +0xe0 U+005c +0xe1 U+00f7 +0xe2 U+0053 +0xe3 U+0054 +0xe4 U+0055 +0xe5 U+0056 +0xe6 U+0057 +0xe7 U+0058 +0xe8 U+0059 +0xe9 U+005a +0xea U+010f +0xeb U+00d4 +0xec U+00d6 +0xed U+0154 +0xee U+00d3 +0xef U+0150 +0xf0 U+0030 +0xf1 U+0031 +0xf2 U+0032 +0xf3 U+0033 +0xf4 U+0034 +0xf5 U+0035 +0xf6 U+0036 +0xf7 U+0037 +0xf8 U+0038 +0xf9 U+0039 +0xfa U+010e +0xfb U+0170 +0xfc U+00dc +0xfd U+0164 +0xfe U+00da +0xff U+009f diff --git a/jdk/make/tools/CharsetMapping/IBM870.nr b/jdk/make/tools/CharsetMapping/IBM870.nr new file mode 100644 index 00000000000..675451906d4 --- /dev/null +++ b/jdk/make/tools/CharsetMapping/IBM870.nr @@ -0,0 +1 @@ +0x25 U+000a diff --git a/jdk/make/tools/CharsetMapping/IBM871.c2b b/jdk/make/tools/CharsetMapping/IBM871.c2b new file mode 100644 index 00000000000..6cb38028124 --- /dev/null +++ b/jdk/make/tools/CharsetMapping/IBM871.c2b @@ -0,0 +1 @@ +0x15 U+0085 diff --git a/jdk/make/tools/CharsetMapping/IBM871.map b/jdk/make/tools/CharsetMapping/IBM871.map new file mode 100644 index 00000000000..0227f335d64 --- /dev/null +++ b/jdk/make/tools/CharsetMapping/IBM871.map @@ -0,0 +1,257 @@ +#Generated from IBM871.java +0x00 U+0000 +0x01 U+0001 +0x02 U+0002 +0x03 U+0003 +0x04 U+009c +0x05 U+0009 +0x06 U+0086 +0x07 U+007f +0x08 U+0097 +0x09 U+008d +0x0a U+008e +0x0b U+000b +0x0c U+000c +0x0d U+000d +0x0e U+000e +0x0f U+000f +0x10 U+0010 +0x11 U+0011 +0x12 U+0012 +0x13 U+0013 +0x14 U+009d +0x15 U+000a +0x16 U+0008 +0x17 U+0087 +0x18 U+0018 +0x19 U+0019 +0x1a U+0092 +0x1b U+008f +0x1c U+001c +0x1d U+001d +0x1e U+001e +0x1f U+001f +0x20 U+0080 +0x21 U+0081 +0x22 U+0082 +0x23 U+0083 +0x24 U+0084 +0x25 U+000a +0x26 U+0017 +0x27 U+001b +0x28 U+0088 +0x29 U+0089 +0x2a U+008a +0x2b U+008b +0x2c U+008c +0x2d U+0005 +0x2e U+0006 +0x2f U+0007 +0x30 U+0090 +0x31 U+0091 +0x32 U+0016 +0x33 U+0093 +0x34 U+0094 +0x35 U+0095 +0x36 U+0096 +0x37 U+0004 +0x38 U+0098 +0x39 U+0099 +0x3a U+009a +0x3b U+009b +0x3c U+0014 +0x3d U+0015 +0x3e U+009e +0x3f U+001a +0x40 U+0020 +0x41 U+00a0 +0x42 U+00e2 +0x43 U+00e4 +0x44 U+00e0 +0x45 U+00e1 +0x46 U+00e3 +0x47 U+00e5 +0x48 U+00e7 +0x49 U+00f1 +0x4a U+00de +0x4b U+002e +0x4c U+003c +0x4d U+0028 +0x4e U+002b +0x4f U+0021 +0x50 U+0026 +0x51 U+00e9 +0x52 U+00ea +0x53 U+00eb +0x54 U+00e8 +0x55 U+00ed +0x56 U+00ee +0x57 U+00ef +0x58 U+00ec +0x59 U+00df +0x5a U+00c6 +0x5b U+0024 +0x5c U+002a +0x5d U+0029 +0x5e U+003b +0x5f U+00d6 +0x60 U+002d +0x61 U+002f +0x62 U+00c2 +0x63 U+00c4 +0x64 U+00c0 +0x65 U+00c1 +0x66 U+00c3 +0x67 U+00c5 +0x68 U+00c7 +0x69 U+00d1 +0x6a U+00a6 +0x6b U+002c +0x6c U+0025 +0x6d U+005f +0x6e U+003e +0x6f U+003f +0x70 U+00f8 +0x71 U+00c9 +0x72 U+00ca +0x73 U+00cb +0x74 U+00c8 +0x75 U+00cd +0x76 U+00ce +0x77 U+00cf +0x78 U+00cc +0x79 U+00f0 +0x7a U+003a +0x7b U+0023 +0x7c U+00d0 +0x7d U+0027 +0x7e U+003d +0x7f U+0022 +0x80 U+00d8 +0x81 U+0061 +0x82 U+0062 +0x83 U+0063 +0x84 U+0064 +0x85 U+0065 +0x86 U+0066 +0x87 U+0067 +0x88 U+0068 +0x89 U+0069 +0x8a U+00ab +0x8b U+00bb +0x8c U+0060 +0x8d U+00fd +0x8e U+007b +0x8f U+00b1 +0x90 U+00b0 +0x91 U+006a +0x92 U+006b +0x93 U+006c +0x94 U+006d +0x95 U+006e +0x96 U+006f +0x97 U+0070 +0x98 U+0071 +0x99 U+0072 +0x9a U+00aa +0x9b U+00ba +0x9c U+007d +0x9d U+00b8 +0x9e U+005d +0x9f U+00a4 +0xa0 U+00b5 +0xa1 U+00f6 +0xa2 U+0073 +0xa3 U+0074 +0xa4 U+0075 +0xa5 U+0076 +0xa6 U+0077 +0xa7 U+0078 +0xa8 U+0079 +0xa9 U+007a +0xaa U+00a1 +0xab U+00bf +0xac U+0040 +0xad U+00dd +0xae U+005b +0xaf U+00ae +0xb0 U+00a2 +0xb1 U+00a3 +0xb2 U+00a5 +0xb3 U+00b7 +0xb4 U+00a9 +0xb5 U+00a7 +0xb6 U+00b6 +0xb7 U+00bc +0xb8 U+00bd +0xb9 U+00be +0xba U+00ac +0xbb U+007c +0xbc U+00af +0xbd U+00a8 +0xbe U+005c +0xbf U+00d7 +0xc0 U+00fe +0xc1 U+0041 +0xc2 U+0042 +0xc3 U+0043 +0xc4 U+0044 +0xc5 U+0045 +0xc6 U+0046 +0xc7 U+0047 +0xc8 U+0048 +0xc9 U+0049 +0xca U+00ad +0xcb U+00f4 +0xcc U+007e +0xcd U+00f2 +0xce U+00f3 +0xcf U+00f5 +0xd0 U+00e6 +0xd1 U+004a +0xd2 U+004b +0xd3 U+004c +0xd4 U+004d +0xd5 U+004e +0xd6 U+004f +0xd7 U+0050 +0xd8 U+0051 +0xd9 U+0052 +0xda U+00b9 +0xdb U+00fb +0xdc U+00fc +0xdd U+00f9 +0xde U+00fa +0xdf U+00ff +0xe0 U+00b4 +0xe1 U+00f7 +0xe2 U+0053 +0xe3 U+0054 +0xe4 U+0055 +0xe5 U+0056 +0xe6 U+0057 +0xe7 U+0058 +0xe8 U+0059 +0xe9 U+005a +0xea U+00b2 +0xeb U+00d4 +0xec U+005e +0xed U+00d2 +0xee U+00d3 +0xef U+00d5 +0xf0 U+0030 +0xf1 U+0031 +0xf2 U+0032 +0xf3 U+0033 +0xf4 U+0034 +0xf5 U+0035 +0xf6 U+0036 +0xf7 U+0037 +0xf8 U+0038 +0xf9 U+0039 +0xfa U+00b3 +0xfb U+00db +0xfc U+00dc +0xfd U+00d9 +0xfe U+00da +0xff U+009f diff --git a/jdk/make/tools/CharsetMapping/IBM871.nr b/jdk/make/tools/CharsetMapping/IBM871.nr new file mode 100644 index 00000000000..675451906d4 --- /dev/null +++ b/jdk/make/tools/CharsetMapping/IBM871.nr @@ -0,0 +1 @@ +0x25 U+000a diff --git a/jdk/make/tools/CharsetMapping/IBM874.map b/jdk/make/tools/CharsetMapping/IBM874.map new file mode 100644 index 00000000000..403e9ba70f5 --- /dev/null +++ b/jdk/make/tools/CharsetMapping/IBM874.map @@ -0,0 +1,257 @@ +#Generated from IBM874.java +0x00 U+0000 +0x01 U+0001 +0x02 U+0002 +0x03 U+0003 +0x04 U+0004 +0x05 U+0005 +0x06 U+0006 +0x07 U+0007 +0x08 U+0008 +0x09 U+0009 +0x0a U+000a +0x0b U+000b +0x0c U+000c +0x0d U+000d +0x0e U+000e +0x0f U+000f +0x10 U+0010 +0x11 U+0011 +0x12 U+0012 +0x13 U+0013 +0x14 U+0014 +0x15 U+0015 +0x16 U+0016 +0x17 U+0017 +0x18 U+0018 +0x19 U+0019 +0x1a U+001a +0x1b U+001b +0x1c U+001c +0x1d U+001d +0x1e U+001e +0x1f U+001f +0x20 U+0020 +0x21 U+0021 +0x22 U+0022 +0x23 U+0023 +0x24 U+0024 +0x25 U+0025 +0x26 U+0026 +0x27 U+0027 +0x28 U+0028 +0x29 U+0029 +0x2a U+002a +0x2b U+002b +0x2c U+002c +0x2d U+002d +0x2e U+002e +0x2f U+002f +0x30 U+0030 +0x31 U+0031 +0x32 U+0032 +0x33 U+0033 +0x34 U+0034 +0x35 U+0035 +0x36 U+0036 +0x37 U+0037 +0x38 U+0038 +0x39 U+0039 +0x3a U+003a +0x3b U+003b +0x3c U+003c +0x3d U+003d +0x3e U+003e +0x3f U+003f +0x40 U+0040 +0x41 U+0041 +0x42 U+0042 +0x43 U+0043 +0x44 U+0044 +0x45 U+0045 +0x46 U+0046 +0x47 U+0047 +0x48 U+0048 +0x49 U+0049 +0x4a U+004a +0x4b U+004b +0x4c U+004c +0x4d U+004d +0x4e U+004e +0x4f U+004f +0x50 U+0050 +0x51 U+0051 +0x52 U+0052 +0x53 U+0053 +0x54 U+0054 +0x55 U+0055 +0x56 U+0056 +0x57 U+0057 +0x58 U+0058 +0x59 U+0059 +0x5a U+005a +0x5b U+005b +0x5c U+005c +0x5d U+005d +0x5e U+005e +0x5f U+005f +0x60 U+0060 +0x61 U+0061 +0x62 U+0062 +0x63 U+0063 +0x64 U+0064 +0x65 U+0065 +0x66 U+0066 +0x67 U+0067 +0x68 U+0068 +0x69 U+0069 +0x6a U+006a +0x6b U+006b +0x6c U+006c +0x6d U+006d +0x6e U+006e +0x6f U+006f +0x70 U+0070 +0x71 U+0071 +0x72 U+0072 +0x73 U+0073 +0x74 U+0074 +0x75 U+0075 +0x76 U+0076 +0x77 U+0077 +0x78 U+0078 +0x79 U+0079 +0x7a U+007a +0x7b U+007b +0x7c U+007c +0x7d U+007d +0x7e U+007e +0x7f U+007f +0x80 U+20ac +0x81 U+fffd +0x82 U+fffd +0x83 U+fffd +0x84 U+fffd +0x85 U+fffd +0x86 U+fffd +0x87 U+fffd +0x88 U+fffd +0x89 U+fffd +0x8a U+fffd +0x8b U+fffd +0x8c U+fffd +0x8d U+fffd +0x8e U+fffd +0x8f U+fffd +0x90 U+fffd +0x91 U+fffd +0x92 U+fffd +0x93 U+fffd +0x94 U+fffd +0x95 U+fffd +0x96 U+fffd +0x97 U+fffd +0x98 U+fffd +0x99 U+fffd +0x9a U+fffd +0x9b U+fffd +0x9c U+fffd +0x9d U+fffd +0x9e U+fffd +0x9f U+fffd +0xa0 U+0e48 +0xa1 U+0e01 +0xa2 U+0e02 +0xa3 U+0e03 +0xa4 U+0e04 +0xa5 U+0e05 +0xa6 U+0e06 +0xa7 U+0e07 +0xa8 U+0e08 +0xa9 U+0e09 +0xaa U+0e0a +0xab U+0e0b +0xac U+0e0c +0xad U+0e0d +0xae U+0e0e +0xaf U+0e0f +0xb0 U+0e10 +0xb1 U+0e11 +0xb2 U+0e12 +0xb3 U+0e13 +0xb4 U+0e14 +0xb5 U+0e15 +0xb6 U+0e16 +0xb7 U+0e17 +0xb8 U+0e18 +0xb9 U+0e19 +0xba U+0e1a +0xbb U+0e1b +0xbc U+0e1c +0xbd U+0e1d +0xbe U+0e1e +0xbf U+0e1f +0xc0 U+0e20 +0xc1 U+0e21 +0xc2 U+0e22 +0xc3 U+0e23 +0xc4 U+0e24 +0xc5 U+0e25 +0xc6 U+0e26 +0xc7 U+0e27 +0xc8 U+0e28 +0xc9 U+0e29 +0xca U+0e2a +0xcb U+0e2b +0xcc U+0e2c +0xcd U+0e2d +0xce U+0e2e +0xcf U+0e2f +0xd0 U+0e30 +0xd1 U+0e31 +0xd2 U+0e32 +0xd3 U+0e33 +0xd4 U+0e34 +0xd5 U+0e35 +0xd6 U+0e36 +0xd7 U+0e37 +0xd8 U+0e38 +0xd9 U+0e39 +0xda U+0e3a +0xdb U+0e49 +0xdc U+0e4a +0xdd U+0e4b +0xde U+0e4c +0xdf U+0e3f +0xe0 U+0e40 +0xe1 U+0e41 +0xe2 U+0e42 +0xe3 U+0e43 +0xe4 U+0e44 +0xe5 U+0e45 +0xe6 U+0e46 +0xe7 U+0e47 +0xe8 U+0e48 +0xe9 U+0e49 +0xea U+0e4a +0xeb U+0e4b +0xec U+0e4c +0xed U+0e4d +0xee U+0e4e +0xef U+0e4f +0xf0 U+0e50 +0xf1 U+0e51 +0xf2 U+0e52 +0xf3 U+0e53 +0xf4 U+0e54 +0xf5 U+0e55 +0xf6 U+0e56 +0xf7 U+0e57 +0xf8 U+0e58 +0xf9 U+0e59 +0xfa U+0e5a +0xfb U+0e5b +0xfc U+00a2 +0xfd U+00ac +0xfe U+00a6 +0xff U+00a0 diff --git a/jdk/make/tools/CharsetMapping/IBM874.nr b/jdk/make/tools/CharsetMapping/IBM874.nr new file mode 100644 index 00000000000..88afffb6f22 --- /dev/null +++ b/jdk/make/tools/CharsetMapping/IBM874.nr @@ -0,0 +1,5 @@ +0xa0 U+0e48 +0xdb U+0e49 +0xdc U+0e4a +0xdd U+0e4b +0xde U+0e4c diff --git a/jdk/make/tools/CharsetMapping/IBM875.c2b b/jdk/make/tools/CharsetMapping/IBM875.c2b new file mode 100644 index 00000000000..6cb38028124 --- /dev/null +++ b/jdk/make/tools/CharsetMapping/IBM875.c2b @@ -0,0 +1 @@ +0x15 U+0085 diff --git a/jdk/make/tools/CharsetMapping/IBM875.map b/jdk/make/tools/CharsetMapping/IBM875.map new file mode 100644 index 00000000000..35f7d5a1a04 --- /dev/null +++ b/jdk/make/tools/CharsetMapping/IBM875.map @@ -0,0 +1,257 @@ +#Generated from IBM875.java +0x00 U+0000 +0x01 U+0001 +0x02 U+0002 +0x03 U+0003 +0x04 U+009c +0x05 U+0009 +0x06 U+0086 +0x07 U+007f +0x08 U+0097 +0x09 U+008d +0x0a U+008e +0x0b U+000b +0x0c U+000c +0x0d U+000d +0x0e U+000e +0x0f U+000f +0x10 U+0010 +0x11 U+0011 +0x12 U+0012 +0x13 U+0013 +0x14 U+009d +0x15 U+000a +0x16 U+0008 +0x17 U+0087 +0x18 U+0018 +0x19 U+0019 +0x1a U+0092 +0x1b U+008f +0x1c U+001c +0x1d U+001d +0x1e U+001e +0x1f U+001f +0x20 U+0080 +0x21 U+0081 +0x22 U+0082 +0x23 U+0083 +0x24 U+0084 +0x25 U+000a +0x26 U+0017 +0x27 U+001b +0x28 U+0088 +0x29 U+0089 +0x2a U+008a +0x2b U+008b +0x2c U+008c +0x2d U+0005 +0x2e U+0006 +0x2f U+0007 +0x30 U+0090 +0x31 U+0091 +0x32 U+0016 +0x33 U+0093 +0x34 U+0094 +0x35 U+0095 +0x36 U+0096 +0x37 U+0004 +0x38 U+0098 +0x39 U+0099 +0x3a U+009a +0x3b U+009b +0x3c U+0014 +0x3d U+0015 +0x3e U+009e +0x3f U+001a +0x40 U+0020 +0x41 U+0391 +0x42 U+0392 +0x43 U+0393 +0x44 U+0394 +0x45 U+0395 +0x46 U+0396 +0x47 U+0397 +0x48 U+0398 +0x49 U+0399 +0x4a U+005b +0x4b U+002e +0x4c U+003c +0x4d U+0028 +0x4e U+002b +0x4f U+0021 +0x50 U+0026 +0x51 U+039a +0x52 U+039b +0x53 U+039c +0x54 U+039d +0x55 U+039e +0x56 U+039f +0x57 U+03a0 +0x58 U+03a1 +0x59 U+03a3 +0x5a U+005d +0x5b U+0024 +0x5c U+002a +0x5d U+0029 +0x5e U+003b +0x5f U+005e +0x60 U+002d +0x61 U+002f +0x62 U+03a4 +0x63 U+03a5 +0x64 U+03a6 +0x65 U+03a7 +0x66 U+03a8 +0x67 U+03a9 +0x68 U+03aa +0x69 U+03ab +0x6a U+007c +0x6b U+002c +0x6c U+0025 +0x6d U+005f +0x6e U+003e +0x6f U+003f +0x70 U+00a8 +0x71 U+0386 +0x72 U+0388 +0x73 U+0389 +0x74 U+00a0 +0x75 U+038a +0x76 U+038c +0x77 U+038e +0x78 U+038f +0x79 U+0060 +0x7a U+003a +0x7b U+0023 +0x7c U+0040 +0x7d U+0027 +0x7e U+003d +0x7f U+0022 +0x80 U+0385 +0x81 U+0061 +0x82 U+0062 +0x83 U+0063 +0x84 U+0064 +0x85 U+0065 +0x86 U+0066 +0x87 U+0067 +0x88 U+0068 +0x89 U+0069 +0x8a U+03b1 +0x8b U+03b2 +0x8c U+03b3 +0x8d U+03b4 +0x8e U+03b5 +0x8f U+03b6 +0x90 U+00b0 +0x91 U+006a +0x92 U+006b +0x93 U+006c +0x94 U+006d +0x95 U+006e +0x96 U+006f +0x97 U+0070 +0x98 U+0071 +0x99 U+0072 +0x9a U+03b7 +0x9b U+03b8 +0x9c U+03b9 +0x9d U+03ba +0x9e U+03bb +0x9f U+03bc +0xa0 U+00b4 +0xa1 U+007e +0xa2 U+0073 +0xa3 U+0074 +0xa4 U+0075 +0xa5 U+0076 +0xa6 U+0077 +0xa7 U+0078 +0xa8 U+0079 +0xa9 U+007a +0xaa U+03bd +0xab U+03be +0xac U+03bf +0xad U+03c0 +0xae U+03c1 +0xaf U+03c3 +0xb0 U+00a3 +0xb1 U+03ac +0xb2 U+03ad +0xb3 U+03ae +0xb4 U+03ca +0xb5 U+03af +0xb6 U+03cc +0xb7 U+03cd +0xb8 U+03cb +0xb9 U+03ce +0xba U+03c2 +0xbb U+03c4 +0xbc U+03c5 +0xbd U+03c6 +0xbe U+03c7 +0xbf U+03c8 +0xc0 U+007b +0xc1 U+0041 +0xc2 U+0042 +0xc3 U+0043 +0xc4 U+0044 +0xc5 U+0045 +0xc6 U+0046 +0xc7 U+0047 +0xc8 U+0048 +0xc9 U+0049 +0xca U+00ad +0xcb U+03c9 +0xcc U+0390 +0xcd U+03b0 +0xce U+2018 +0xcf U+2015 +0xd0 U+007d +0xd1 U+004a +0xd2 U+004b +0xd3 U+004c +0xd4 U+004d +0xd5 U+004e +0xd6 U+004f +0xd7 U+0050 +0xd8 U+0051 +0xd9 U+0052 +0xda U+00b1 +0xdb U+00bd +0xdc U+fffd +0xdd U+0387 +0xde U+2019 +0xdf U+00a6 +0xe0 U+005c +0xe1 U+fffd +0xe2 U+0053 +0xe3 U+0054 +0xe4 U+0055 +0xe5 U+0056 +0xe6 U+0057 +0xe7 U+0058 +0xe8 U+0059 +0xe9 U+005a +0xea U+00b2 +0xeb U+00a7 +0xec U+fffd +0xed U+fffd +0xee U+00ab +0xef U+00ac +0xf0 U+0030 +0xf1 U+0031 +0xf2 U+0032 +0xf3 U+0033 +0xf4 U+0034 +0xf5 U+0035 +0xf6 U+0036 +0xf7 U+0037 +0xf8 U+0038 +0xf9 U+0039 +0xfa U+00b3 +0xfb U+00a9 +0xfc U+fffd +0xfd U+fffd +0xfe U+00bb +0xff U+009f diff --git a/jdk/make/tools/CharsetMapping/IBM875.nr b/jdk/make/tools/CharsetMapping/IBM875.nr new file mode 100644 index 00000000000..675451906d4 --- /dev/null +++ b/jdk/make/tools/CharsetMapping/IBM875.nr @@ -0,0 +1 @@ +0x25 U+000a diff --git a/jdk/make/tools/CharsetMapping/IBM918.c2b b/jdk/make/tools/CharsetMapping/IBM918.c2b new file mode 100644 index 00000000000..6cb38028124 --- /dev/null +++ b/jdk/make/tools/CharsetMapping/IBM918.c2b @@ -0,0 +1 @@ +0x15 U+0085 diff --git a/jdk/make/tools/CharsetMapping/IBM918.map b/jdk/make/tools/CharsetMapping/IBM918.map new file mode 100644 index 00000000000..23739314781 --- /dev/null +++ b/jdk/make/tools/CharsetMapping/IBM918.map @@ -0,0 +1,257 @@ +#Generated from IBM918.java +0x00 U+0000 +0x01 U+0001 +0x02 U+0002 +0x03 U+0003 +0x04 U+009c +0x05 U+0009 +0x06 U+0086 +0x07 U+007f +0x08 U+0097 +0x09 U+008d +0x0a U+008e +0x0b U+000b +0x0c U+000c +0x0d U+000d +0x0e U+000e +0x0f U+000f +0x10 U+0010 +0x11 U+0011 +0x12 U+0012 +0x13 U+0013 +0x14 U+009d +0x15 U+000a +0x16 U+0008 +0x17 U+0087 +0x18 U+0018 +0x19 U+0019 +0x1a U+0092 +0x1b U+008f +0x1c U+001c +0x1d U+001d +0x1e U+001e +0x1f U+001f +0x20 U+0080 +0x21 U+0081 +0x22 U+0082 +0x23 U+0083 +0x24 U+0084 +0x25 U+000a +0x26 U+0017 +0x27 U+001b +0x28 U+0088 +0x29 U+0089 +0x2a U+008a +0x2b U+008b +0x2c U+008c +0x2d U+0005 +0x2e U+0006 +0x2f U+0007 +0x30 U+0090 +0x31 U+0091 +0x32 U+0016 +0x33 U+0093 +0x34 U+0094 +0x35 U+0095 +0x36 U+0096 +0x37 U+0004 +0x38 U+0098 +0x39 U+0099 +0x3a U+009a +0x3b U+009b +0x3c U+0014 +0x3d U+0015 +0x3e U+009e +0x3f U+001a +0x40 U+0020 +0x41 U+00a0 +0x42 U+060c +0x43 U+061b +0x44 U+061f +0x45 U+fe81 +0x46 U+fe8d +0x47 U+fe8e +0x48 U+f8fb +0x49 U+fe8f +0x4a U+005b +0x4b U+002e +0x4c U+003c +0x4d U+0028 +0x4e U+002b +0x4f U+0021 +0x50 U+0026 +0x51 U+fe91 +0x52 U+fb56 +0x53 U+fb58 +0x54 U+fe93 +0x55 U+fe95 +0x56 U+fe97 +0x57 U+fb66 +0x58 U+fb68 +0x59 U+fe99 +0x5a U+005d +0x5b U+0024 +0x5c U+002a +0x5d U+0029 +0x5e U+003b +0x5f U+005e +0x60 U+002d +0x61 U+002f +0x62 U+fe9b +0x63 U+fe9d +0x64 U+fe9f +0x65 U+fb7a +0x66 U+fb7c +0x67 U+fea1 +0x68 U+fea3 +0x69 U+fea5 +0x6a U+0060 +0x6b U+002c +0x6c U+0025 +0x6d U+005f +0x6e U+003e +0x6f U+003f +0x70 U+06f0 +0x71 U+06f1 +0x72 U+06f2 +0x73 U+06f3 +0x74 U+06f4 +0x75 U+06f5 +0x76 U+06f6 +0x77 U+06f7 +0x78 U+06f8 +0x79 U+06f9 +0x7a U+003a +0x7b U+0023 +0x7c U+0040 +0x7d U+0027 +0x7e U+003d +0x7f U+0022 +0x80 U+fea7 +0x81 U+0061 +0x82 U+0062 +0x83 U+0063 +0x84 U+0064 +0x85 U+0065 +0x86 U+0066 +0x87 U+0067 +0x88 U+0068 +0x89 U+0069 +0x8a U+fea9 +0x8b U+fb88 +0x8c U+feab +0x8d U+fead +0x8e U+fb8c +0x8f U+feaf +0x90 U+fb8a +0x91 U+006a +0x92 U+006b +0x93 U+006c +0x94 U+006d +0x95 U+006e +0x96 U+006f +0x97 U+0070 +0x98 U+0071 +0x99 U+0072 +0x9a U+feb1 +0x9b U+feb3 +0x9c U+feb5 +0x9d U+feb7 +0x9e U+feb9 +0x9f U+febb +0xa0 U+febd +0xa1 U+007e +0xa2 U+0073 +0xa3 U+0074 +0xa4 U+0075 +0xa5 U+0076 +0xa6 U+0077 +0xa7 U+0078 +0xa8 U+0079 +0xa9 U+007a +0xaa U+febf +0xab U+fec3 +0xac U+fec7 +0xad U+fec9 +0xae U+feca +0xaf U+fecb +0xb0 U+fecc +0xb1 U+fecd +0xb2 U+fece +0xb3 U+fecf +0xb4 U+fed0 +0xb5 U+fed1 +0xb6 U+fed3 +0xb7 U+fed5 +0xb8 U+fed7 +0xb9 U+fb8e +0xba U+fedb +0xbb U+007c +0xbc U+fb92 +0xbd U+fb94 +0xbe U+fedd +0xbf U+fedf +0xc0 U+007b +0xc1 U+0041 +0xc2 U+0042 +0xc3 U+0043 +0xc4 U+0044 +0xc5 U+0045 +0xc6 U+0046 +0xc7 U+0047 +0xc8 U+0048 +0xc9 U+0049 +0xca U+00ad +0xcb U+fee0 +0xcc U+fee1 +0xcd U+fee3 +0xce U+fb9e +0xcf U+fee5 +0xd0 U+007d +0xd1 U+004a +0xd2 U+004b +0xd3 U+004c +0xd4 U+004d +0xd5 U+004e +0xd6 U+004f +0xd7 U+0050 +0xd8 U+0051 +0xd9 U+0052 +0xda U+fee7 +0xdb U+fe85 +0xdc U+feed +0xdd U+fba6 +0xde U+fba8 +0xdf U+fba9 +0xe0 U+005c +0xe1 U+fbaa +0xe2 U+0053 +0xe3 U+0054 +0xe4 U+0055 +0xe5 U+0056 +0xe6 U+0057 +0xe7 U+0058 +0xe8 U+0059 +0xe9 U+005a +0xea U+fe80 +0xeb U+fe89 +0xec U+fe8a +0xed U+fe8b +0xee U+fbfc +0xef U+fbfd +0xf0 U+0030 +0xf1 U+0031 +0xf2 U+0032 +0xf3 U+0033 +0xf4 U+0034 +0xf5 U+0035 +0xf6 U+0036 +0xf7 U+0037 +0xf8 U+0038 +0xf9 U+0039 +0xfa U+fbfe +0xfb U+fbb0 +0xfc U+fbae +0xfd U+fe7c +0xfe U+fe7d +0xff U+009f diff --git a/jdk/make/tools/CharsetMapping/IBM918.nr b/jdk/make/tools/CharsetMapping/IBM918.nr new file mode 100644 index 00000000000..675451906d4 --- /dev/null +++ b/jdk/make/tools/CharsetMapping/IBM918.nr @@ -0,0 +1 @@ +0x25 U+000a diff --git a/jdk/make/tools/CharsetMapping/IBM921.map b/jdk/make/tools/CharsetMapping/IBM921.map new file mode 100644 index 00000000000..48487754d94 --- /dev/null +++ b/jdk/make/tools/CharsetMapping/IBM921.map @@ -0,0 +1,257 @@ +#Generated from IBM921.java +0x00 U+0000 +0x01 U+0001 +0x02 U+0002 +0x03 U+0003 +0x04 U+0004 +0x05 U+0005 +0x06 U+0006 +0x07 U+0007 +0x08 U+0008 +0x09 U+0009 +0x0a U+000a +0x0b U+000b +0x0c U+000c +0x0d U+000d +0x0e U+000e +0x0f U+000f +0x10 U+0010 +0x11 U+0011 +0x12 U+0012 +0x13 U+0013 +0x14 U+0014 +0x15 U+0015 +0x16 U+0016 +0x17 U+0017 +0x18 U+0018 +0x19 U+0019 +0x1a U+001a +0x1b U+001b +0x1c U+001c +0x1d U+001d +0x1e U+001e +0x1f U+001f +0x20 U+0020 +0x21 U+0021 +0x22 U+0022 +0x23 U+0023 +0x24 U+0024 +0x25 U+0025 +0x26 U+0026 +0x27 U+0027 +0x28 U+0028 +0x29 U+0029 +0x2a U+002a +0x2b U+002b +0x2c U+002c +0x2d U+002d +0x2e U+002e +0x2f U+002f +0x30 U+0030 +0x31 U+0031 +0x32 U+0032 +0x33 U+0033 +0x34 U+0034 +0x35 U+0035 +0x36 U+0036 +0x37 U+0037 +0x38 U+0038 +0x39 U+0039 +0x3a U+003a +0x3b U+003b +0x3c U+003c +0x3d U+003d +0x3e U+003e +0x3f U+003f +0x40 U+0040 +0x41 U+0041 +0x42 U+0042 +0x43 U+0043 +0x44 U+0044 +0x45 U+0045 +0x46 U+0046 +0x47 U+0047 +0x48 U+0048 +0x49 U+0049 +0x4a U+004a +0x4b U+004b +0x4c U+004c +0x4d U+004d +0x4e U+004e +0x4f U+004f +0x50 U+0050 +0x51 U+0051 +0x52 U+0052 +0x53 U+0053 +0x54 U+0054 +0x55 U+0055 +0x56 U+0056 +0x57 U+0057 +0x58 U+0058 +0x59 U+0059 +0x5a U+005a +0x5b U+005b +0x5c U+005c +0x5d U+005d +0x5e U+005e +0x5f U+005f +0x60 U+0060 +0x61 U+0061 +0x62 U+0062 +0x63 U+0063 +0x64 U+0064 +0x65 U+0065 +0x66 U+0066 +0x67 U+0067 +0x68 U+0068 +0x69 U+0069 +0x6a U+006a +0x6b U+006b +0x6c U+006c +0x6d U+006d +0x6e U+006e +0x6f U+006f +0x70 U+0070 +0x71 U+0071 +0x72 U+0072 +0x73 U+0073 +0x74 U+0074 +0x75 U+0075 +0x76 U+0076 +0x77 U+0077 +0x78 U+0078 +0x79 U+0079 +0x7a U+007a +0x7b U+007b +0x7c U+007c +0x7d U+007d +0x7e U+007e +0x7f U+007f +0x80 U+0080 +0x81 U+0081 +0x82 U+0082 +0x83 U+0083 +0x84 U+0084 +0x85 U+0085 +0x86 U+0086 +0x87 U+0087 +0x88 U+0088 +0x89 U+0089 +0x8a U+008a +0x8b U+008b +0x8c U+008c +0x8d U+008d +0x8e U+008e +0x8f U+008f +0x90 U+0090 +0x91 U+0091 +0x92 U+0092 +0x93 U+0093 +0x94 U+0094 +0x95 U+0095 +0x96 U+0096 +0x97 U+0097 +0x98 U+0098 +0x99 U+0099 +0x9a U+009a +0x9b U+009b +0x9c U+009c +0x9d U+009d +0x9e U+009e +0x9f U+009f +0xa0 U+00a0 +0xa1 U+201d +0xa2 U+00a2 +0xa3 U+00a3 +0xa4 U+00a4 +0xa5 U+201e +0xa6 U+00a6 +0xa7 U+00a7 +0xa8 U+00d8 +0xa9 U+00a9 +0xaa U+0156 +0xab U+00ab +0xac U+00ac +0xad U+00ad +0xae U+00ae +0xaf U+00c6 +0xb0 U+00b0 +0xb1 U+00b1 +0xb2 U+00b2 +0xb3 U+00b3 +0xb4 U+201c +0xb5 U+00b5 +0xb6 U+00b6 +0xb7 U+00b7 +0xb8 U+00f8 +0xb9 U+00b9 +0xba U+0157 +0xbb U+00bb +0xbc U+00bc +0xbd U+00bd +0xbe U+00be +0xbf U+00e6 +0xc0 U+0104 +0xc1 U+012e +0xc2 U+0100 +0xc3 U+0106 +0xc4 U+00c4 +0xc5 U+00c5 +0xc6 U+0118 +0xc7 U+0112 +0xc8 U+010c +0xc9 U+00c9 +0xca U+0179 +0xcb U+0116 +0xcc U+0122 +0xcd U+0136 +0xce U+012a +0xcf U+013b +0xd0 U+0160 +0xd1 U+0143 +0xd2 U+0145 +0xd3 U+00d3 +0xd4 U+014c +0xd5 U+00d5 +0xd6 U+00d6 +0xd7 U+00d7 +0xd8 U+0172 +0xd9 U+0141 +0xda U+015a +0xdb U+016a +0xdc U+00dc +0xdd U+017b +0xde U+017d +0xdf U+00df +0xe0 U+0105 +0xe1 U+012f +0xe2 U+0101 +0xe3 U+0107 +0xe4 U+00e4 +0xe5 U+00e5 +0xe6 U+0119 +0xe7 U+0113 +0xe8 U+010d +0xe9 U+00e9 +0xea U+017a +0xeb U+0117 +0xec U+0123 +0xed U+0137 +0xee U+012b +0xef U+013c +0xf0 U+0161 +0xf1 U+0144 +0xf2 U+0146 +0xf3 U+00f3 +0xf4 U+014d +0xf5 U+00f5 +0xf6 U+00f6 +0xf7 U+00f7 +0xf8 U+0173 +0xf9 U+0142 +0xfa U+015b +0xfb U+016b +0xfc U+00fc +0xfd U+017c +0xfe U+017e +0xff U+2019 diff --git a/jdk/make/tools/CharsetMapping/IBM922.map b/jdk/make/tools/CharsetMapping/IBM922.map new file mode 100644 index 00000000000..bda95197706 --- /dev/null +++ b/jdk/make/tools/CharsetMapping/IBM922.map @@ -0,0 +1,257 @@ +#Generated from IBM922.java +0x00 U+0000 +0x01 U+0001 +0x02 U+0002 +0x03 U+0003 +0x04 U+0004 +0x05 U+0005 +0x06 U+0006 +0x07 U+0007 +0x08 U+0008 +0x09 U+0009 +0x0a U+000a +0x0b U+000b +0x0c U+000c +0x0d U+000d +0x0e U+000e +0x0f U+000f +0x10 U+0010 +0x11 U+0011 +0x12 U+0012 +0x13 U+0013 +0x14 U+0014 +0x15 U+0015 +0x16 U+0016 +0x17 U+0017 +0x18 U+0018 +0x19 U+0019 +0x1a U+001a +0x1b U+001b +0x1c U+001c +0x1d U+001d +0x1e U+001e +0x1f U+001f +0x20 U+0020 +0x21 U+0021 +0x22 U+0022 +0x23 U+0023 +0x24 U+0024 +0x25 U+0025 +0x26 U+0026 +0x27 U+0027 +0x28 U+0028 +0x29 U+0029 +0x2a U+002a +0x2b U+002b +0x2c U+002c +0x2d U+002d +0x2e U+002e +0x2f U+002f +0x30 U+0030 +0x31 U+0031 +0x32 U+0032 +0x33 U+0033 +0x34 U+0034 +0x35 U+0035 +0x36 U+0036 +0x37 U+0037 +0x38 U+0038 +0x39 U+0039 +0x3a U+003a +0x3b U+003b +0x3c U+003c +0x3d U+003d +0x3e U+003e +0x3f U+003f +0x40 U+0040 +0x41 U+0041 +0x42 U+0042 +0x43 U+0043 +0x44 U+0044 +0x45 U+0045 +0x46 U+0046 +0x47 U+0047 +0x48 U+0048 +0x49 U+0049 +0x4a U+004a +0x4b U+004b +0x4c U+004c +0x4d U+004d +0x4e U+004e +0x4f U+004f +0x50 U+0050 +0x51 U+0051 +0x52 U+0052 +0x53 U+0053 +0x54 U+0054 +0x55 U+0055 +0x56 U+0056 +0x57 U+0057 +0x58 U+0058 +0x59 U+0059 +0x5a U+005a +0x5b U+005b +0x5c U+005c +0x5d U+005d +0x5e U+005e +0x5f U+005f +0x60 U+0060 +0x61 U+0061 +0x62 U+0062 +0x63 U+0063 +0x64 U+0064 +0x65 U+0065 +0x66 U+0066 +0x67 U+0067 +0x68 U+0068 +0x69 U+0069 +0x6a U+006a +0x6b U+006b +0x6c U+006c +0x6d U+006d +0x6e U+006e +0x6f U+006f +0x70 U+0070 +0x71 U+0071 +0x72 U+0072 +0x73 U+0073 +0x74 U+0074 +0x75 U+0075 +0x76 U+0076 +0x77 U+0077 +0x78 U+0078 +0x79 U+0079 +0x7a U+007a +0x7b U+007b +0x7c U+007c +0x7d U+007d +0x7e U+007e +0x7f U+007f +0x80 U+0080 +0x81 U+0081 +0x82 U+0082 +0x83 U+0083 +0x84 U+0084 +0x85 U+0085 +0x86 U+0086 +0x87 U+0087 +0x88 U+0088 +0x89 U+0089 +0x8a U+008a +0x8b U+008b +0x8c U+008c +0x8d U+008d +0x8e U+008e +0x8f U+008f +0x90 U+0090 +0x91 U+0091 +0x92 U+0092 +0x93 U+0093 +0x94 U+0094 +0x95 U+0095 +0x96 U+0096 +0x97 U+0097 +0x98 U+0098 +0x99 U+0099 +0x9a U+009a +0x9b U+009b +0x9c U+009c +0x9d U+009d +0x9e U+009e +0x9f U+009f +0xa0 U+00a0 +0xa1 U+00a1 +0xa2 U+00a2 +0xa3 U+00a3 +0xa4 U+00a4 +0xa5 U+00a5 +0xa6 U+00a6 +0xa7 U+00a7 +0xa8 U+00a8 +0xa9 U+00a9 +0xaa U+00aa +0xab U+00ab +0xac U+00ac +0xad U+00ad +0xae U+00ae +0xaf U+203e +0xb0 U+00b0 +0xb1 U+00b1 +0xb2 U+00b2 +0xb3 U+00b3 +0xb4 U+00b4 +0xb5 U+00b5 +0xb6 U+00b6 +0xb7 U+00b7 +0xb8 U+00b8 +0xb9 U+00b9 +0xba U+00ba +0xbb U+00bb +0xbc U+00bc +0xbd U+00bd +0xbe U+00be +0xbf U+00bf +0xc0 U+00c0 +0xc1 U+00c1 +0xc2 U+00c2 +0xc3 U+00c3 +0xc4 U+00c4 +0xc5 U+00c5 +0xc6 U+00c6 +0xc7 U+00c7 +0xc8 U+00c8 +0xc9 U+00c9 +0xca U+00ca +0xcb U+00cb +0xcc U+00cc +0xcd U+00cd +0xce U+00ce +0xcf U+00cf +0xd0 U+0160 +0xd1 U+00d1 +0xd2 U+00d2 +0xd3 U+00d3 +0xd4 U+00d4 +0xd5 U+00d5 +0xd6 U+00d6 +0xd7 U+00d7 +0xd8 U+00d8 +0xd9 U+00d9 +0xda U+00da +0xdb U+00db +0xdc U+00dc +0xdd U+00dd +0xde U+017d +0xdf U+00df +0xe0 U+00e0 +0xe1 U+00e1 +0xe2 U+00e2 +0xe3 U+00e3 +0xe4 U+00e4 +0xe5 U+00e5 +0xe6 U+00e6 +0xe7 U+00e7 +0xe8 U+00e8 +0xe9 U+00e9 +0xea U+00ea +0xeb U+00eb +0xec U+00ec +0xed U+00ed +0xee U+00ee +0xef U+00ef +0xf0 U+0161 +0xf1 U+00f1 +0xf2 U+00f2 +0xf3 U+00f3 +0xf4 U+00f4 +0xf5 U+00f5 +0xf6 U+00f6 +0xf7 U+00f7 +0xf8 U+00f8 +0xf9 U+00f9 +0xfa U+00fa +0xfb U+00fb +0xfc U+00fc +0xfd U+00fd +0xfe U+017e +0xff U+00ff diff --git a/jdk/make/tools/CharsetMapping/ISO_8859_11.map b/jdk/make/tools/CharsetMapping/ISO_8859_11.map new file mode 100644 index 00000000000..67f75d851cf --- /dev/null +++ b/jdk/make/tools/CharsetMapping/ISO_8859_11.map @@ -0,0 +1,257 @@ +#Generated from ISO_8859_11.java +0x00 U+0000 +0x01 U+0001 +0x02 U+0002 +0x03 U+0003 +0x04 U+0004 +0x05 U+0005 +0x06 U+0006 +0x07 U+0007 +0x08 U+0008 +0x09 U+0009 +0x0a U+000a +0x0b U+000b +0x0c U+000c +0x0d U+000d +0x0e U+000e +0x0f U+000f +0x10 U+0010 +0x11 U+0011 +0x12 U+0012 +0x13 U+0013 +0x14 U+0014 +0x15 U+0015 +0x16 U+0016 +0x17 U+0017 +0x18 U+0018 +0x19 U+0019 +0x1a U+001a +0x1b U+001b +0x1c U+001c +0x1d U+001d +0x1e U+001e +0x1f U+001f +0x20 U+0020 +0x21 U+0021 +0x22 U+0022 +0x23 U+0023 +0x24 U+0024 +0x25 U+0025 +0x26 U+0026 +0x27 U+0027 +0x28 U+0028 +0x29 U+0029 +0x2a U+002a +0x2b U+002b +0x2c U+002c +0x2d U+002d +0x2e U+002e +0x2f U+002f +0x30 U+0030 +0x31 U+0031 +0x32 U+0032 +0x33 U+0033 +0x34 U+0034 +0x35 U+0035 +0x36 U+0036 +0x37 U+0037 +0x38 U+0038 +0x39 U+0039 +0x3a U+003a +0x3b U+003b +0x3c U+003c +0x3d U+003d +0x3e U+003e +0x3f U+003f +0x40 U+0040 +0x41 U+0041 +0x42 U+0042 +0x43 U+0043 +0x44 U+0044 +0x45 U+0045 +0x46 U+0046 +0x47 U+0047 +0x48 U+0048 +0x49 U+0049 +0x4a U+004a +0x4b U+004b +0x4c U+004c +0x4d U+004d +0x4e U+004e +0x4f U+004f +0x50 U+0050 +0x51 U+0051 +0x52 U+0052 +0x53 U+0053 +0x54 U+0054 +0x55 U+0055 +0x56 U+0056 +0x57 U+0057 +0x58 U+0058 +0x59 U+0059 +0x5a U+005a +0x5b U+005b +0x5c U+005c +0x5d U+005d +0x5e U+005e +0x5f U+005f +0x60 U+0060 +0x61 U+0061 +0x62 U+0062 +0x63 U+0063 +0x64 U+0064 +0x65 U+0065 +0x66 U+0066 +0x67 U+0067 +0x68 U+0068 +0x69 U+0069 +0x6a U+006a +0x6b U+006b +0x6c U+006c +0x6d U+006d +0x6e U+006e +0x6f U+006f +0x70 U+0070 +0x71 U+0071 +0x72 U+0072 +0x73 U+0073 +0x74 U+0074 +0x75 U+0075 +0x76 U+0076 +0x77 U+0077 +0x78 U+0078 +0x79 U+0079 +0x7a U+007a +0x7b U+007b +0x7c U+007c +0x7d U+007d +0x7e U+007e +0x7f U+007f +0x80 U+0080 +0x81 U+0081 +0x82 U+0082 +0x83 U+0083 +0x84 U+0084 +0x85 U+0085 +0x86 U+0086 +0x87 U+0087 +0x88 U+0088 +0x89 U+0089 +0x8a U+008a +0x8b U+008b +0x8c U+008c +0x8d U+008d +0x8e U+008e +0x8f U+008f +0x90 U+0090 +0x91 U+0091 +0x92 U+0092 +0x93 U+0093 +0x94 U+0094 +0x95 U+0095 +0x96 U+0096 +0x97 U+0097 +0x98 U+0098 +0x99 U+0099 +0x9a U+009a +0x9b U+009b +0x9c U+009c +0x9d U+009d +0x9e U+009e +0x9f U+009f +0xa0 U+00a0 +0xa1 U+0e01 +0xa2 U+0e02 +0xa3 U+0e03 +0xa4 U+0e04 +0xa5 U+0e05 +0xa6 U+0e06 +0xa7 U+0e07 +0xa8 U+0e08 +0xa9 U+0e09 +0xaa U+0e0a +0xab U+0e0b +0xac U+0e0c +0xad U+0e0d +0xae U+0e0e +0xaf U+0e0f +0xb0 U+0e10 +0xb1 U+0e11 +0xb2 U+0e12 +0xb3 U+0e13 +0xb4 U+0e14 +0xb5 U+0e15 +0xb6 U+0e16 +0xb7 U+0e17 +0xb8 U+0e18 +0xb9 U+0e19 +0xba U+0e1a +0xbb U+0e1b +0xbc U+0e1c +0xbd U+0e1d +0xbe U+0e1e +0xbf U+0e1f +0xc0 U+0e20 +0xc1 U+0e21 +0xc2 U+0e22 +0xc3 U+0e23 +0xc4 U+0e24 +0xc5 U+0e25 +0xc6 U+0e26 +0xc7 U+0e27 +0xc8 U+0e28 +0xc9 U+0e29 +0xca U+0e2a +0xcb U+0e2b +0xcc U+0e2c +0xcd U+0e2d +0xce U+0e2e +0xcf U+0e2f +0xd0 U+0e30 +0xd1 U+0e31 +0xd2 U+0e32 +0xd3 U+0e33 +0xd4 U+0e34 +0xd5 U+0e35 +0xd6 U+0e36 +0xd7 U+0e37 +0xd8 U+0e38 +0xd9 U+0e39 +0xda U+0e3a +0xdb U+fffd +0xdc U+fffd +0xdd U+fffd +0xde U+fffd +0xdf U+0e3f +0xe0 U+0e40 +0xe1 U+0e41 +0xe2 U+0e42 +0xe3 U+0e43 +0xe4 U+0e44 +0xe5 U+0e45 +0xe6 U+0e46 +0xe7 U+0e47 +0xe8 U+0e48 +0xe9 U+0e49 +0xea U+0e4a +0xeb U+0e4b +0xec U+0e4c +0xed U+0e4d +0xee U+0e4e +0xef U+0e4f +0xf0 U+0e50 +0xf1 U+0e51 +0xf2 U+0e52 +0xf3 U+0e53 +0xf4 U+0e54 +0xf5 U+0e55 +0xf6 U+0e56 +0xf7 U+0e57 +0xf8 U+0e58 +0xf9 U+0e59 +0xfa U+0e5a +0xfb U+0e5b +0xfc U+fffd +0xfd U+fffd +0xfe U+fffd +0xff U+fffd diff --git a/jdk/make/tools/CharsetMapping/ISO_8859_13.map b/jdk/make/tools/CharsetMapping/ISO_8859_13.map new file mode 100644 index 00000000000..b06dc749c29 --- /dev/null +++ b/jdk/make/tools/CharsetMapping/ISO_8859_13.map @@ -0,0 +1,257 @@ +#Generated from ISO_8859_13.java +0x00 U+0000 +0x01 U+0001 +0x02 U+0002 +0x03 U+0003 +0x04 U+0004 +0x05 U+0005 +0x06 U+0006 +0x07 U+0007 +0x08 U+0008 +0x09 U+0009 +0x0a U+000a +0x0b U+000b +0x0c U+000c +0x0d U+000d +0x0e U+000e +0x0f U+000f +0x10 U+0010 +0x11 U+0011 +0x12 U+0012 +0x13 U+0013 +0x14 U+0014 +0x15 U+0015 +0x16 U+0016 +0x17 U+0017 +0x18 U+0018 +0x19 U+0019 +0x1a U+001a +0x1b U+001b +0x1c U+001c +0x1d U+001d +0x1e U+001e +0x1f U+001f +0x20 U+0020 +0x21 U+0021 +0x22 U+0022 +0x23 U+0023 +0x24 U+0024 +0x25 U+0025 +0x26 U+0026 +0x27 U+0027 +0x28 U+0028 +0x29 U+0029 +0x2a U+002a +0x2b U+002b +0x2c U+002c +0x2d U+002d +0x2e U+002e +0x2f U+002f +0x30 U+0030 +0x31 U+0031 +0x32 U+0032 +0x33 U+0033 +0x34 U+0034 +0x35 U+0035 +0x36 U+0036 +0x37 U+0037 +0x38 U+0038 +0x39 U+0039 +0x3a U+003a +0x3b U+003b +0x3c U+003c +0x3d U+003d +0x3e U+003e +0x3f U+003f +0x40 U+0040 +0x41 U+0041 +0x42 U+0042 +0x43 U+0043 +0x44 U+0044 +0x45 U+0045 +0x46 U+0046 +0x47 U+0047 +0x48 U+0048 +0x49 U+0049 +0x4a U+004a +0x4b U+004b +0x4c U+004c +0x4d U+004d +0x4e U+004e +0x4f U+004f +0x50 U+0050 +0x51 U+0051 +0x52 U+0052 +0x53 U+0053 +0x54 U+0054 +0x55 U+0055 +0x56 U+0056 +0x57 U+0057 +0x58 U+0058 +0x59 U+0059 +0x5a U+005a +0x5b U+005b +0x5c U+005c +0x5d U+005d +0x5e U+005e +0x5f U+005f +0x60 U+0060 +0x61 U+0061 +0x62 U+0062 +0x63 U+0063 +0x64 U+0064 +0x65 U+0065 +0x66 U+0066 +0x67 U+0067 +0x68 U+0068 +0x69 U+0069 +0x6a U+006a +0x6b U+006b +0x6c U+006c +0x6d U+006d +0x6e U+006e +0x6f U+006f +0x70 U+0070 +0x71 U+0071 +0x72 U+0072 +0x73 U+0073 +0x74 U+0074 +0x75 U+0075 +0x76 U+0076 +0x77 U+0077 +0x78 U+0078 +0x79 U+0079 +0x7a U+007a +0x7b U+007b +0x7c U+007c +0x7d U+007d +0x7e U+007e +0x7f U+007f +0x80 U+0080 +0x81 U+0081 +0x82 U+0082 +0x83 U+0083 +0x84 U+0084 +0x85 U+0085 +0x86 U+0086 +0x87 U+0087 +0x88 U+0088 +0x89 U+0089 +0x8a U+008a +0x8b U+008b +0x8c U+008c +0x8d U+008d +0x8e U+008e +0x8f U+008f +0x90 U+0090 +0x91 U+0091 +0x92 U+0092 +0x93 U+0093 +0x94 U+0094 +0x95 U+0095 +0x96 U+0096 +0x97 U+0097 +0x98 U+0098 +0x99 U+0099 +0x9a U+009a +0x9b U+009b +0x9c U+009c +0x9d U+009d +0x9e U+009e +0x9f U+009f +0xa0 U+00a0 +0xa1 U+201d +0xa2 U+00a2 +0xa3 U+00a3 +0xa4 U+00a4 +0xa5 U+201e +0xa6 U+00a6 +0xa7 U+00a7 +0xa8 U+00d8 +0xa9 U+00a9 +0xaa U+0156 +0xab U+00ab +0xac U+00ac +0xad U+00ad +0xae U+00ae +0xaf U+00c6 +0xb0 U+00b0 +0xb1 U+00b1 +0xb2 U+00b2 +0xb3 U+00b3 +0xb4 U+201c +0xb5 U+00b5 +0xb6 U+00b6 +0xb7 U+00b7 +0xb8 U+00f8 +0xb9 U+00b9 +0xba U+0157 +0xbb U+00bb +0xbc U+00bc +0xbd U+00bd +0xbe U+00be +0xbf U+00e6 +0xc0 U+0104 +0xc1 U+012e +0xc2 U+0100 +0xc3 U+0106 +0xc4 U+00c4 +0xc5 U+00c5 +0xc6 U+0118 +0xc7 U+0112 +0xc8 U+010c +0xc9 U+00c9 +0xca U+0179 +0xcb U+0116 +0xcc U+0122 +0xcd U+0136 +0xce U+012a +0xcf U+013b +0xd0 U+0160 +0xd1 U+0143 +0xd2 U+0145 +0xd3 U+00d3 +0xd4 U+014c +0xd5 U+00d5 +0xd6 U+00d6 +0xd7 U+00d7 +0xd8 U+0172 +0xd9 U+0141 +0xda U+015a +0xdb U+016a +0xdc U+00dc +0xdd U+017b +0xde U+017d +0xdf U+00df +0xe0 U+0105 +0xe1 U+012f +0xe2 U+0101 +0xe3 U+0107 +0xe4 U+00e4 +0xe5 U+00e5 +0xe6 U+0119 +0xe7 U+0113 +0xe8 U+010d +0xe9 U+00e9 +0xea U+017a +0xeb U+0117 +0xec U+0123 +0xed U+0137 +0xee U+012b +0xef U+013c +0xf0 U+0161 +0xf1 U+0144 +0xf2 U+0146 +0xf3 U+00f3 +0xf4 U+014d +0xf5 U+00f5 +0xf6 U+00f6 +0xf7 U+00f7 +0xf8 U+0173 +0xf9 U+0142 +0xfa U+015b +0xfb U+016b +0xfc U+00fc +0xfd U+017c +0xfe U+017e +0xff U+2019 diff --git a/jdk/make/tools/CharsetMapping/ISO_8859_15.map b/jdk/make/tools/CharsetMapping/ISO_8859_15.map new file mode 100644 index 00000000000..b75e3c6a342 --- /dev/null +++ b/jdk/make/tools/CharsetMapping/ISO_8859_15.map @@ -0,0 +1,257 @@ +#Generated from ISO_8859_15.java +0x00 U+0000 +0x01 U+0001 +0x02 U+0002 +0x03 U+0003 +0x04 U+0004 +0x05 U+0005 +0x06 U+0006 +0x07 U+0007 +0x08 U+0008 +0x09 U+0009 +0x0a U+000a +0x0b U+000b +0x0c U+000c +0x0d U+000d +0x0e U+000e +0x0f U+000f +0x10 U+0010 +0x11 U+0011 +0x12 U+0012 +0x13 U+0013 +0x14 U+0014 +0x15 U+0015 +0x16 U+0016 +0x17 U+0017 +0x18 U+0018 +0x19 U+0019 +0x1a U+001a +0x1b U+001b +0x1c U+001c +0x1d U+001d +0x1e U+001e +0x1f U+001f +0x20 U+0020 +0x21 U+0021 +0x22 U+0022 +0x23 U+0023 +0x24 U+0024 +0x25 U+0025 +0x26 U+0026 +0x27 U+0027 +0x28 U+0028 +0x29 U+0029 +0x2a U+002a +0x2b U+002b +0x2c U+002c +0x2d U+002d +0x2e U+002e +0x2f U+002f +0x30 U+0030 +0x31 U+0031 +0x32 U+0032 +0x33 U+0033 +0x34 U+0034 +0x35 U+0035 +0x36 U+0036 +0x37 U+0037 +0x38 U+0038 +0x39 U+0039 +0x3a U+003a +0x3b U+003b +0x3c U+003c +0x3d U+003d +0x3e U+003e +0x3f U+003f +0x40 U+0040 +0x41 U+0041 +0x42 U+0042 +0x43 U+0043 +0x44 U+0044 +0x45 U+0045 +0x46 U+0046 +0x47 U+0047 +0x48 U+0048 +0x49 U+0049 +0x4a U+004a +0x4b U+004b +0x4c U+004c +0x4d U+004d +0x4e U+004e +0x4f U+004f +0x50 U+0050 +0x51 U+0051 +0x52 U+0052 +0x53 U+0053 +0x54 U+0054 +0x55 U+0055 +0x56 U+0056 +0x57 U+0057 +0x58 U+0058 +0x59 U+0059 +0x5a U+005a +0x5b U+005b +0x5c U+005c +0x5d U+005d +0x5e U+005e +0x5f U+005f +0x60 U+0060 +0x61 U+0061 +0x62 U+0062 +0x63 U+0063 +0x64 U+0064 +0x65 U+0065 +0x66 U+0066 +0x67 U+0067 +0x68 U+0068 +0x69 U+0069 +0x6a U+006a +0x6b U+006b +0x6c U+006c +0x6d U+006d +0x6e U+006e +0x6f U+006f +0x70 U+0070 +0x71 U+0071 +0x72 U+0072 +0x73 U+0073 +0x74 U+0074 +0x75 U+0075 +0x76 U+0076 +0x77 U+0077 +0x78 U+0078 +0x79 U+0079 +0x7a U+007a +0x7b U+007b +0x7c U+007c +0x7d U+007d +0x7e U+007e +0x7f U+007f +0x80 U+0080 +0x81 U+0081 +0x82 U+0082 +0x83 U+0083 +0x84 U+0084 +0x85 U+0085 +0x86 U+0086 +0x87 U+0087 +0x88 U+0088 +0x89 U+0089 +0x8a U+008a +0x8b U+008b +0x8c U+008c +0x8d U+008d +0x8e U+008e +0x8f U+008f +0x90 U+0090 +0x91 U+0091 +0x92 U+0092 +0x93 U+0093 +0x94 U+0094 +0x95 U+0095 +0x96 U+0096 +0x97 U+0097 +0x98 U+0098 +0x99 U+0099 +0x9a U+009a +0x9b U+009b +0x9c U+009c +0x9d U+009d +0x9e U+009e +0x9f U+009f +0xa0 U+00a0 +0xa1 U+00a1 +0xa2 U+00a2 +0xa3 U+00a3 +0xa4 U+20ac +0xa5 U+00a5 +0xa6 U+0160 +0xa7 U+00a7 +0xa8 U+0161 +0xa9 U+00a9 +0xaa U+00aa +0xab U+00ab +0xac U+00ac +0xad U+00ad +0xae U+00ae +0xaf U+00af +0xb0 U+00b0 +0xb1 U+00b1 +0xb2 U+00b2 +0xb3 U+00b3 +0xb4 U+017d +0xb5 U+00b5 +0xb6 U+00b6 +0xb7 U+00b7 +0xb8 U+017e +0xb9 U+00b9 +0xba U+00ba +0xbb U+00bb +0xbc U+0152 +0xbd U+0153 +0xbe U+0178 +0xbf U+00bf +0xc0 U+00c0 +0xc1 U+00c1 +0xc2 U+00c2 +0xc3 U+00c3 +0xc4 U+00c4 +0xc5 U+00c5 +0xc6 U+00c6 +0xc7 U+00c7 +0xc8 U+00c8 +0xc9 U+00c9 +0xca U+00ca +0xcb U+00cb +0xcc U+00cc +0xcd U+00cd +0xce U+00ce +0xcf U+00cf +0xd0 U+00d0 +0xd1 U+00d1 +0xd2 U+00d2 +0xd3 U+00d3 +0xd4 U+00d4 +0xd5 U+00d5 +0xd6 U+00d6 +0xd7 U+00d7 +0xd8 U+00d8 +0xd9 U+00d9 +0xda U+00da +0xdb U+00db +0xdc U+00dc +0xdd U+00dd +0xde U+00de +0xdf U+00df +0xe0 U+00e0 +0xe1 U+00e1 +0xe2 U+00e2 +0xe3 U+00e3 +0xe4 U+00e4 +0xe5 U+00e5 +0xe6 U+00e6 +0xe7 U+00e7 +0xe8 U+00e8 +0xe9 U+00e9 +0xea U+00ea +0xeb U+00eb +0xec U+00ec +0xed U+00ed +0xee U+00ee +0xef U+00ef +0xf0 U+00f0 +0xf1 U+00f1 +0xf2 U+00f2 +0xf3 U+00f3 +0xf4 U+00f4 +0xf5 U+00f5 +0xf6 U+00f6 +0xf7 U+00f7 +0xf8 U+00f8 +0xf9 U+00f9 +0xfa U+00fa +0xfb U+00fb +0xfc U+00fc +0xfd U+00fd +0xfe U+00fe +0xff U+00ff diff --git a/jdk/make/tools/CharsetMapping/ISO_8859_2.map b/jdk/make/tools/CharsetMapping/ISO_8859_2.map new file mode 100644 index 00000000000..e3c264b0141 --- /dev/null +++ b/jdk/make/tools/CharsetMapping/ISO_8859_2.map @@ -0,0 +1,257 @@ +#Generated from ISO_8859_2.java +0x00 U+0000 +0x01 U+0001 +0x02 U+0002 +0x03 U+0003 +0x04 U+0004 +0x05 U+0005 +0x06 U+0006 +0x07 U+0007 +0x08 U+0008 +0x09 U+0009 +0x0a U+000a +0x0b U+000b +0x0c U+000c +0x0d U+000d +0x0e U+000e +0x0f U+000f +0x10 U+0010 +0x11 U+0011 +0x12 U+0012 +0x13 U+0013 +0x14 U+0014 +0x15 U+0015 +0x16 U+0016 +0x17 U+0017 +0x18 U+0018 +0x19 U+0019 +0x1a U+001a +0x1b U+001b +0x1c U+001c +0x1d U+001d +0x1e U+001e +0x1f U+001f +0x20 U+0020 +0x21 U+0021 +0x22 U+0022 +0x23 U+0023 +0x24 U+0024 +0x25 U+0025 +0x26 U+0026 +0x27 U+0027 +0x28 U+0028 +0x29 U+0029 +0x2a U+002a +0x2b U+002b +0x2c U+002c +0x2d U+002d +0x2e U+002e +0x2f U+002f +0x30 U+0030 +0x31 U+0031 +0x32 U+0032 +0x33 U+0033 +0x34 U+0034 +0x35 U+0035 +0x36 U+0036 +0x37 U+0037 +0x38 U+0038 +0x39 U+0039 +0x3a U+003a +0x3b U+003b +0x3c U+003c +0x3d U+003d +0x3e U+003e +0x3f U+003f +0x40 U+0040 +0x41 U+0041 +0x42 U+0042 +0x43 U+0043 +0x44 U+0044 +0x45 U+0045 +0x46 U+0046 +0x47 U+0047 +0x48 U+0048 +0x49 U+0049 +0x4a U+004a +0x4b U+004b +0x4c U+004c +0x4d U+004d +0x4e U+004e +0x4f U+004f +0x50 U+0050 +0x51 U+0051 +0x52 U+0052 +0x53 U+0053 +0x54 U+0054 +0x55 U+0055 +0x56 U+0056 +0x57 U+0057 +0x58 U+0058 +0x59 U+0059 +0x5a U+005a +0x5b U+005b +0x5c U+005c +0x5d U+005d +0x5e U+005e +0x5f U+005f +0x60 U+0060 +0x61 U+0061 +0x62 U+0062 +0x63 U+0063 +0x64 U+0064 +0x65 U+0065 +0x66 U+0066 +0x67 U+0067 +0x68 U+0068 +0x69 U+0069 +0x6a U+006a +0x6b U+006b +0x6c U+006c +0x6d U+006d +0x6e U+006e +0x6f U+006f +0x70 U+0070 +0x71 U+0071 +0x72 U+0072 +0x73 U+0073 +0x74 U+0074 +0x75 U+0075 +0x76 U+0076 +0x77 U+0077 +0x78 U+0078 +0x79 U+0079 +0x7a U+007a +0x7b U+007b +0x7c U+007c +0x7d U+007d +0x7e U+007e +0x7f U+007f +0x80 U+0080 +0x81 U+0081 +0x82 U+0082 +0x83 U+0083 +0x84 U+0084 +0x85 U+0085 +0x86 U+0086 +0x87 U+0087 +0x88 U+0088 +0x89 U+0089 +0x8a U+008a +0x8b U+008b +0x8c U+008c +0x8d U+008d +0x8e U+008e +0x8f U+008f +0x90 U+0090 +0x91 U+0091 +0x92 U+0092 +0x93 U+0093 +0x94 U+0094 +0x95 U+0095 +0x96 U+0096 +0x97 U+0097 +0x98 U+0098 +0x99 U+0099 +0x9a U+009a +0x9b U+009b +0x9c U+009c +0x9d U+009d +0x9e U+009e +0x9f U+009f +0xa0 U+00a0 +0xa1 U+0104 +0xa2 U+02d8 +0xa3 U+0141 +0xa4 U+00a4 +0xa5 U+013d +0xa6 U+015a +0xa7 U+00a7 +0xa8 U+00a8 +0xa9 U+0160 +0xaa U+015e +0xab U+0164 +0xac U+0179 +0xad U+00ad +0xae U+017d +0xaf U+017b +0xb0 U+00b0 +0xb1 U+0105 +0xb2 U+02db +0xb3 U+0142 +0xb4 U+00b4 +0xb5 U+013e +0xb6 U+015b +0xb7 U+02c7 +0xb8 U+00b8 +0xb9 U+0161 +0xba U+015f +0xbb U+0165 +0xbc U+017a +0xbd U+02dd +0xbe U+017e +0xbf U+017c +0xc0 U+0154 +0xc1 U+00c1 +0xc2 U+00c2 +0xc3 U+0102 +0xc4 U+00c4 +0xc5 U+0139 +0xc6 U+0106 +0xc7 U+00c7 +0xc8 U+010c +0xc9 U+00c9 +0xca U+0118 +0xcb U+00cb +0xcc U+011a +0xcd U+00cd +0xce U+00ce +0xcf U+010e +0xd0 U+0110 +0xd1 U+0143 +0xd2 U+0147 +0xd3 U+00d3 +0xd4 U+00d4 +0xd5 U+0150 +0xd6 U+00d6 +0xd7 U+00d7 +0xd8 U+0158 +0xd9 U+016e +0xda U+00da +0xdb U+0170 +0xdc U+00dc +0xdd U+00dd +0xde U+0162 +0xdf U+00df +0xe0 U+0155 +0xe1 U+00e1 +0xe2 U+00e2 +0xe3 U+0103 +0xe4 U+00e4 +0xe5 U+013a +0xe6 U+0107 +0xe7 U+00e7 +0xe8 U+010d +0xe9 U+00e9 +0xea U+0119 +0xeb U+00eb +0xec U+011b +0xed U+00ed +0xee U+00ee +0xef U+010f +0xf0 U+0111 +0xf1 U+0144 +0xf2 U+0148 +0xf3 U+00f3 +0xf4 U+00f4 +0xf5 U+0151 +0xf6 U+00f6 +0xf7 U+00f7 +0xf8 U+0159 +0xf9 U+016f +0xfa U+00fa +0xfb U+0171 +0xfc U+00fc +0xfd U+00fd +0xfe U+0163 +0xff U+02d9 diff --git a/jdk/make/tools/CharsetMapping/ISO_8859_3.map b/jdk/make/tools/CharsetMapping/ISO_8859_3.map new file mode 100644 index 00000000000..748bd267f90 --- /dev/null +++ b/jdk/make/tools/CharsetMapping/ISO_8859_3.map @@ -0,0 +1,257 @@ +#Generated from ISO_8859_3.java +0x00 U+0000 +0x01 U+0001 +0x02 U+0002 +0x03 U+0003 +0x04 U+0004 +0x05 U+0005 +0x06 U+0006 +0x07 U+0007 +0x08 U+0008 +0x09 U+0009 +0x0a U+000a +0x0b U+000b +0x0c U+000c +0x0d U+000d +0x0e U+000e +0x0f U+000f +0x10 U+0010 +0x11 U+0011 +0x12 U+0012 +0x13 U+0013 +0x14 U+0014 +0x15 U+0015 +0x16 U+0016 +0x17 U+0017 +0x18 U+0018 +0x19 U+0019 +0x1a U+001a +0x1b U+001b +0x1c U+001c +0x1d U+001d +0x1e U+001e +0x1f U+001f +0x20 U+0020 +0x21 U+0021 +0x22 U+0022 +0x23 U+0023 +0x24 U+0024 +0x25 U+0025 +0x26 U+0026 +0x27 U+0027 +0x28 U+0028 +0x29 U+0029 +0x2a U+002a +0x2b U+002b +0x2c U+002c +0x2d U+002d +0x2e U+002e +0x2f U+002f +0x30 U+0030 +0x31 U+0031 +0x32 U+0032 +0x33 U+0033 +0x34 U+0034 +0x35 U+0035 +0x36 U+0036 +0x37 U+0037 +0x38 U+0038 +0x39 U+0039 +0x3a U+003a +0x3b U+003b +0x3c U+003c +0x3d U+003d +0x3e U+003e +0x3f U+003f +0x40 U+0040 +0x41 U+0041 +0x42 U+0042 +0x43 U+0043 +0x44 U+0044 +0x45 U+0045 +0x46 U+0046 +0x47 U+0047 +0x48 U+0048 +0x49 U+0049 +0x4a U+004a +0x4b U+004b +0x4c U+004c +0x4d U+004d +0x4e U+004e +0x4f U+004f +0x50 U+0050 +0x51 U+0051 +0x52 U+0052 +0x53 U+0053 +0x54 U+0054 +0x55 U+0055 +0x56 U+0056 +0x57 U+0057 +0x58 U+0058 +0x59 U+0059 +0x5a U+005a +0x5b U+005b +0x5c U+005c +0x5d U+005d +0x5e U+005e +0x5f U+005f +0x60 U+0060 +0x61 U+0061 +0x62 U+0062 +0x63 U+0063 +0x64 U+0064 +0x65 U+0065 +0x66 U+0066 +0x67 U+0067 +0x68 U+0068 +0x69 U+0069 +0x6a U+006a +0x6b U+006b +0x6c U+006c +0x6d U+006d +0x6e U+006e +0x6f U+006f +0x70 U+0070 +0x71 U+0071 +0x72 U+0072 +0x73 U+0073 +0x74 U+0074 +0x75 U+0075 +0x76 U+0076 +0x77 U+0077 +0x78 U+0078 +0x79 U+0079 +0x7a U+007a +0x7b U+007b +0x7c U+007c +0x7d U+007d +0x7e U+007e +0x7f U+007f +0x80 U+0080 +0x81 U+0081 +0x82 U+0082 +0x83 U+0083 +0x84 U+0084 +0x85 U+0085 +0x86 U+0086 +0x87 U+0087 +0x88 U+0088 +0x89 U+0089 +0x8a U+008a +0x8b U+008b +0x8c U+008c +0x8d U+008d +0x8e U+008e +0x8f U+008f +0x90 U+0090 +0x91 U+0091 +0x92 U+0092 +0x93 U+0093 +0x94 U+0094 +0x95 U+0095 +0x96 U+0096 +0x97 U+0097 +0x98 U+0098 +0x99 U+0099 +0x9a U+009a +0x9b U+009b +0x9c U+009c +0x9d U+009d +0x9e U+009e +0x9f U+009f +0xa0 U+00a0 +0xa1 U+0126 +0xa2 U+02d8 +0xa3 U+00a3 +0xa4 U+00a4 +0xa5 U+fffd +0xa6 U+0124 +0xa7 U+00a7 +0xa8 U+00a8 +0xa9 U+0130 +0xaa U+015e +0xab U+011e +0xac U+0134 +0xad U+00ad +0xae U+fffd +0xaf U+017b +0xb0 U+00b0 +0xb1 U+0127 +0xb2 U+00b2 +0xb3 U+00b3 +0xb4 U+00b4 +0xb5 U+00b5 +0xb6 U+0125 +0xb7 U+00b7 +0xb8 U+00b8 +0xb9 U+0131 +0xba U+015f +0xbb U+011f +0xbc U+0135 +0xbd U+00bd +0xbe U+fffd +0xbf U+017c +0xc0 U+00c0 +0xc1 U+00c1 +0xc2 U+00c2 +0xc3 U+fffd +0xc4 U+00c4 +0xc5 U+010a +0xc6 U+0108 +0xc7 U+00c7 +0xc8 U+00c8 +0xc9 U+00c9 +0xca U+00ca +0xcb U+00cb +0xcc U+00cc +0xcd U+00cd +0xce U+00ce +0xcf U+00cf +0xd0 U+fffd +0xd1 U+00d1 +0xd2 U+00d2 +0xd3 U+00d3 +0xd4 U+00d4 +0xd5 U+0120 +0xd6 U+00d6 +0xd7 U+00d7 +0xd8 U+011c +0xd9 U+00d9 +0xda U+00da +0xdb U+00db +0xdc U+00dc +0xdd U+016c +0xde U+015c +0xdf U+00df +0xe0 U+00e0 +0xe1 U+00e1 +0xe2 U+00e2 +0xe3 U+fffd +0xe4 U+00e4 +0xe5 U+010b +0xe6 U+0109 +0xe7 U+00e7 +0xe8 U+00e8 +0xe9 U+00e9 +0xea U+00ea +0xeb U+00eb +0xec U+00ec +0xed U+00ed +0xee U+00ee +0xef U+00ef +0xf0 U+fffd +0xf1 U+00f1 +0xf2 U+00f2 +0xf3 U+00f3 +0xf4 U+00f4 +0xf5 U+0121 +0xf6 U+00f6 +0xf7 U+00f7 +0xf8 U+011d +0xf9 U+00f9 +0xfa U+00fa +0xfb U+00fb +0xfc U+00fc +0xfd U+016d +0xfe U+015d +0xff U+02d9 diff --git a/jdk/make/tools/CharsetMapping/ISO_8859_4.map b/jdk/make/tools/CharsetMapping/ISO_8859_4.map new file mode 100644 index 00000000000..fe485427c46 --- /dev/null +++ b/jdk/make/tools/CharsetMapping/ISO_8859_4.map @@ -0,0 +1,257 @@ +#Generated from ISO_8859_4.java +0x00 U+0000 +0x01 U+0001 +0x02 U+0002 +0x03 U+0003 +0x04 U+0004 +0x05 U+0005 +0x06 U+0006 +0x07 U+0007 +0x08 U+0008 +0x09 U+0009 +0x0a U+000a +0x0b U+000b +0x0c U+000c +0x0d U+000d +0x0e U+000e +0x0f U+000f +0x10 U+0010 +0x11 U+0011 +0x12 U+0012 +0x13 U+0013 +0x14 U+0014 +0x15 U+0015 +0x16 U+0016 +0x17 U+0017 +0x18 U+0018 +0x19 U+0019 +0x1a U+001a +0x1b U+001b +0x1c U+001c +0x1d U+001d +0x1e U+001e +0x1f U+001f +0x20 U+0020 +0x21 U+0021 +0x22 U+0022 +0x23 U+0023 +0x24 U+0024 +0x25 U+0025 +0x26 U+0026 +0x27 U+0027 +0x28 U+0028 +0x29 U+0029 +0x2a U+002a +0x2b U+002b +0x2c U+002c +0x2d U+002d +0x2e U+002e +0x2f U+002f +0x30 U+0030 +0x31 U+0031 +0x32 U+0032 +0x33 U+0033 +0x34 U+0034 +0x35 U+0035 +0x36 U+0036 +0x37 U+0037 +0x38 U+0038 +0x39 U+0039 +0x3a U+003a +0x3b U+003b +0x3c U+003c +0x3d U+003d +0x3e U+003e +0x3f U+003f +0x40 U+0040 +0x41 U+0041 +0x42 U+0042 +0x43 U+0043 +0x44 U+0044 +0x45 U+0045 +0x46 U+0046 +0x47 U+0047 +0x48 U+0048 +0x49 U+0049 +0x4a U+004a +0x4b U+004b +0x4c U+004c +0x4d U+004d +0x4e U+004e +0x4f U+004f +0x50 U+0050 +0x51 U+0051 +0x52 U+0052 +0x53 U+0053 +0x54 U+0054 +0x55 U+0055 +0x56 U+0056 +0x57 U+0057 +0x58 U+0058 +0x59 U+0059 +0x5a U+005a +0x5b U+005b +0x5c U+005c +0x5d U+005d +0x5e U+005e +0x5f U+005f +0x60 U+0060 +0x61 U+0061 +0x62 U+0062 +0x63 U+0063 +0x64 U+0064 +0x65 U+0065 +0x66 U+0066 +0x67 U+0067 +0x68 U+0068 +0x69 U+0069 +0x6a U+006a +0x6b U+006b +0x6c U+006c +0x6d U+006d +0x6e U+006e +0x6f U+006f +0x70 U+0070 +0x71 U+0071 +0x72 U+0072 +0x73 U+0073 +0x74 U+0074 +0x75 U+0075 +0x76 U+0076 +0x77 U+0077 +0x78 U+0078 +0x79 U+0079 +0x7a U+007a +0x7b U+007b +0x7c U+007c +0x7d U+007d +0x7e U+007e +0x7f U+007f +0x80 U+0080 +0x81 U+0081 +0x82 U+0082 +0x83 U+0083 +0x84 U+0084 +0x85 U+0085 +0x86 U+0086 +0x87 U+0087 +0x88 U+0088 +0x89 U+0089 +0x8a U+008a +0x8b U+008b +0x8c U+008c +0x8d U+008d +0x8e U+008e +0x8f U+008f +0x90 U+0090 +0x91 U+0091 +0x92 U+0092 +0x93 U+0093 +0x94 U+0094 +0x95 U+0095 +0x96 U+0096 +0x97 U+0097 +0x98 U+0098 +0x99 U+0099 +0x9a U+009a +0x9b U+009b +0x9c U+009c +0x9d U+009d +0x9e U+009e +0x9f U+009f +0xa0 U+00a0 +0xa1 U+0104 +0xa2 U+0138 +0xa3 U+0156 +0xa4 U+00a4 +0xa5 U+0128 +0xa6 U+013b +0xa7 U+00a7 +0xa8 U+00a8 +0xa9 U+0160 +0xaa U+0112 +0xab U+0122 +0xac U+0166 +0xad U+00ad +0xae U+017d +0xaf U+00af +0xb0 U+00b0 +0xb1 U+0105 +0xb2 U+02db +0xb3 U+0157 +0xb4 U+00b4 +0xb5 U+0129 +0xb6 U+013c +0xb7 U+02c7 +0xb8 U+00b8 +0xb9 U+0161 +0xba U+0113 +0xbb U+0123 +0xbc U+0167 +0xbd U+014a +0xbe U+017e +0xbf U+014b +0xc0 U+0100 +0xc1 U+00c1 +0xc2 U+00c2 +0xc3 U+00c3 +0xc4 U+00c4 +0xc5 U+00c5 +0xc6 U+00c6 +0xc7 U+012e +0xc8 U+010c +0xc9 U+00c9 +0xca U+0118 +0xcb U+00cb +0xcc U+0116 +0xcd U+00cd +0xce U+00ce +0xcf U+012a +0xd0 U+0110 +0xd1 U+0145 +0xd2 U+014c +0xd3 U+0136 +0xd4 U+00d4 +0xd5 U+00d5 +0xd6 U+00d6 +0xd7 U+00d7 +0xd8 U+00d8 +0xd9 U+0172 +0xda U+00da +0xdb U+00db +0xdc U+00dc +0xdd U+0168 +0xde U+016a +0xdf U+00df +0xe0 U+0101 +0xe1 U+00e1 +0xe2 U+00e2 +0xe3 U+00e3 +0xe4 U+00e4 +0xe5 U+00e5 +0xe6 U+00e6 +0xe7 U+012f +0xe8 U+010d +0xe9 U+00e9 +0xea U+0119 +0xeb U+00eb +0xec U+0117 +0xed U+00ed +0xee U+00ee +0xef U+012b +0xf0 U+0111 +0xf1 U+0146 +0xf2 U+014d +0xf3 U+0137 +0xf4 U+00f4 +0xf5 U+00f5 +0xf6 U+00f6 +0xf7 U+00f7 +0xf8 U+00f8 +0xf9 U+0173 +0xfa U+00fa +0xfb U+00fb +0xfc U+00fc +0xfd U+0169 +0xfe U+016b +0xff U+02d9 diff --git a/jdk/make/tools/CharsetMapping/ISO_8859_5.map b/jdk/make/tools/CharsetMapping/ISO_8859_5.map new file mode 100644 index 00000000000..d7f80137ffb --- /dev/null +++ b/jdk/make/tools/CharsetMapping/ISO_8859_5.map @@ -0,0 +1,257 @@ +#Generated from ISO_8859_5.java +0x00 U+0000 +0x01 U+0001 +0x02 U+0002 +0x03 U+0003 +0x04 U+0004 +0x05 U+0005 +0x06 U+0006 +0x07 U+0007 +0x08 U+0008 +0x09 U+0009 +0x0a U+000a +0x0b U+000b +0x0c U+000c +0x0d U+000d +0x0e U+000e +0x0f U+000f +0x10 U+0010 +0x11 U+0011 +0x12 U+0012 +0x13 U+0013 +0x14 U+0014 +0x15 U+0015 +0x16 U+0016 +0x17 U+0017 +0x18 U+0018 +0x19 U+0019 +0x1a U+001a +0x1b U+001b +0x1c U+001c +0x1d U+001d +0x1e U+001e +0x1f U+001f +0x20 U+0020 +0x21 U+0021 +0x22 U+0022 +0x23 U+0023 +0x24 U+0024 +0x25 U+0025 +0x26 U+0026 +0x27 U+0027 +0x28 U+0028 +0x29 U+0029 +0x2a U+002a +0x2b U+002b +0x2c U+002c +0x2d U+002d +0x2e U+002e +0x2f U+002f +0x30 U+0030 +0x31 U+0031 +0x32 U+0032 +0x33 U+0033 +0x34 U+0034 +0x35 U+0035 +0x36 U+0036 +0x37 U+0037 +0x38 U+0038 +0x39 U+0039 +0x3a U+003a +0x3b U+003b +0x3c U+003c +0x3d U+003d +0x3e U+003e +0x3f U+003f +0x40 U+0040 +0x41 U+0041 +0x42 U+0042 +0x43 U+0043 +0x44 U+0044 +0x45 U+0045 +0x46 U+0046 +0x47 U+0047 +0x48 U+0048 +0x49 U+0049 +0x4a U+004a +0x4b U+004b +0x4c U+004c +0x4d U+004d +0x4e U+004e +0x4f U+004f +0x50 U+0050 +0x51 U+0051 +0x52 U+0052 +0x53 U+0053 +0x54 U+0054 +0x55 U+0055 +0x56 U+0056 +0x57 U+0057 +0x58 U+0058 +0x59 U+0059 +0x5a U+005a +0x5b U+005b +0x5c U+005c +0x5d U+005d +0x5e U+005e +0x5f U+005f +0x60 U+0060 +0x61 U+0061 +0x62 U+0062 +0x63 U+0063 +0x64 U+0064 +0x65 U+0065 +0x66 U+0066 +0x67 U+0067 +0x68 U+0068 +0x69 U+0069 +0x6a U+006a +0x6b U+006b +0x6c U+006c +0x6d U+006d +0x6e U+006e +0x6f U+006f +0x70 U+0070 +0x71 U+0071 +0x72 U+0072 +0x73 U+0073 +0x74 U+0074 +0x75 U+0075 +0x76 U+0076 +0x77 U+0077 +0x78 U+0078 +0x79 U+0079 +0x7a U+007a +0x7b U+007b +0x7c U+007c +0x7d U+007d +0x7e U+007e +0x7f U+007f +0x80 U+0080 +0x81 U+0081 +0x82 U+0082 +0x83 U+0083 +0x84 U+0084 +0x85 U+0085 +0x86 U+0086 +0x87 U+0087 +0x88 U+0088 +0x89 U+0089 +0x8a U+008a +0x8b U+008b +0x8c U+008c +0x8d U+008d +0x8e U+008e +0x8f U+008f +0x90 U+0090 +0x91 U+0091 +0x92 U+0092 +0x93 U+0093 +0x94 U+0094 +0x95 U+0095 +0x96 U+0096 +0x97 U+0097 +0x98 U+0098 +0x99 U+0099 +0x9a U+009a +0x9b U+009b +0x9c U+009c +0x9d U+009d +0x9e U+009e +0x9f U+009f +0xa0 U+00a0 +0xa1 U+0401 +0xa2 U+0402 +0xa3 U+0403 +0xa4 U+0404 +0xa5 U+0405 +0xa6 U+0406 +0xa7 U+0407 +0xa8 U+0408 +0xa9 U+0409 +0xaa U+040a +0xab U+040b +0xac U+040c +0xad U+00ad +0xae U+040e +0xaf U+040f +0xb0 U+0410 +0xb1 U+0411 +0xb2 U+0412 +0xb3 U+0413 +0xb4 U+0414 +0xb5 U+0415 +0xb6 U+0416 +0xb7 U+0417 +0xb8 U+0418 +0xb9 U+0419 +0xba U+041a +0xbb U+041b +0xbc U+041c +0xbd U+041d +0xbe U+041e +0xbf U+041f +0xc0 U+0420 +0xc1 U+0421 +0xc2 U+0422 +0xc3 U+0423 +0xc4 U+0424 +0xc5 U+0425 +0xc6 U+0426 +0xc7 U+0427 +0xc8 U+0428 +0xc9 U+0429 +0xca U+042a +0xcb U+042b +0xcc U+042c +0xcd U+042d +0xce U+042e +0xcf U+042f +0xd0 U+0430 +0xd1 U+0431 +0xd2 U+0432 +0xd3 U+0433 +0xd4 U+0434 +0xd5 U+0435 +0xd6 U+0436 +0xd7 U+0437 +0xd8 U+0438 +0xd9 U+0439 +0xda U+043a +0xdb U+043b +0xdc U+043c +0xdd U+043d +0xde U+043e +0xdf U+043f +0xe0 U+0440 +0xe1 U+0441 +0xe2 U+0442 +0xe3 U+0443 +0xe4 U+0444 +0xe5 U+0445 +0xe6 U+0446 +0xe7 U+0447 +0xe8 U+0448 +0xe9 U+0449 +0xea U+044a +0xeb U+044b +0xec U+044c +0xed U+044d +0xee U+044e +0xef U+044f +0xf0 U+2116 +0xf1 U+0451 +0xf2 U+0452 +0xf3 U+0453 +0xf4 U+0454 +0xf5 U+0455 +0xf6 U+0456 +0xf7 U+0457 +0xf8 U+0458 +0xf9 U+0459 +0xfa U+045a +0xfb U+045b +0xfc U+045c +0xfd U+00a7 +0xfe U+045e +0xff U+045f diff --git a/jdk/make/tools/CharsetMapping/ISO_8859_6.map b/jdk/make/tools/CharsetMapping/ISO_8859_6.map new file mode 100644 index 00000000000..ade727b84e5 --- /dev/null +++ b/jdk/make/tools/CharsetMapping/ISO_8859_6.map @@ -0,0 +1,257 @@ +#Generated from ISO_8859_6.java +0x00 U+0000 +0x01 U+0001 +0x02 U+0002 +0x03 U+0003 +0x04 U+0004 +0x05 U+0005 +0x06 U+0006 +0x07 U+0007 +0x08 U+0008 +0x09 U+0009 +0x0a U+000a +0x0b U+000b +0x0c U+000c +0x0d U+000d +0x0e U+000e +0x0f U+000f +0x10 U+0010 +0x11 U+0011 +0x12 U+0012 +0x13 U+0013 +0x14 U+0014 +0x15 U+0015 +0x16 U+0016 +0x17 U+0017 +0x18 U+0018 +0x19 U+0019 +0x1a U+001a +0x1b U+001b +0x1c U+001c +0x1d U+001d +0x1e U+001e +0x1f U+001f +0x20 U+0020 +0x21 U+0021 +0x22 U+0022 +0x23 U+0023 +0x24 U+0024 +0x25 U+0025 +0x26 U+0026 +0x27 U+0027 +0x28 U+0028 +0x29 U+0029 +0x2a U+002a +0x2b U+002b +0x2c U+002c +0x2d U+002d +0x2e U+002e +0x2f U+002f +0x30 U+0030 +0x31 U+0031 +0x32 U+0032 +0x33 U+0033 +0x34 U+0034 +0x35 U+0035 +0x36 U+0036 +0x37 U+0037 +0x38 U+0038 +0x39 U+0039 +0x3a U+003a +0x3b U+003b +0x3c U+003c +0x3d U+003d +0x3e U+003e +0x3f U+003f +0x40 U+0040 +0x41 U+0041 +0x42 U+0042 +0x43 U+0043 +0x44 U+0044 +0x45 U+0045 +0x46 U+0046 +0x47 U+0047 +0x48 U+0048 +0x49 U+0049 +0x4a U+004a +0x4b U+004b +0x4c U+004c +0x4d U+004d +0x4e U+004e +0x4f U+004f +0x50 U+0050 +0x51 U+0051 +0x52 U+0052 +0x53 U+0053 +0x54 U+0054 +0x55 U+0055 +0x56 U+0056 +0x57 U+0057 +0x58 U+0058 +0x59 U+0059 +0x5a U+005a +0x5b U+005b +0x5c U+005c +0x5d U+005d +0x5e U+005e +0x5f U+005f +0x60 U+0060 +0x61 U+0061 +0x62 U+0062 +0x63 U+0063 +0x64 U+0064 +0x65 U+0065 +0x66 U+0066 +0x67 U+0067 +0x68 U+0068 +0x69 U+0069 +0x6a U+006a +0x6b U+006b +0x6c U+006c +0x6d U+006d +0x6e U+006e +0x6f U+006f +0x70 U+0070 +0x71 U+0071 +0x72 U+0072 +0x73 U+0073 +0x74 U+0074 +0x75 U+0075 +0x76 U+0076 +0x77 U+0077 +0x78 U+0078 +0x79 U+0079 +0x7a U+007a +0x7b U+007b +0x7c U+007c +0x7d U+007d +0x7e U+007e +0x7f U+007f +0x80 U+0080 +0x81 U+0081 +0x82 U+0082 +0x83 U+0083 +0x84 U+0084 +0x85 U+0085 +0x86 U+0086 +0x87 U+0087 +0x88 U+0088 +0x89 U+0089 +0x8a U+008a +0x8b U+008b +0x8c U+008c +0x8d U+008d +0x8e U+008e +0x8f U+008f +0x90 U+0090 +0x91 U+0091 +0x92 U+0092 +0x93 U+0093 +0x94 U+0094 +0x95 U+0095 +0x96 U+0096 +0x97 U+0097 +0x98 U+0098 +0x99 U+0099 +0x9a U+009a +0x9b U+009b +0x9c U+009c +0x9d U+009d +0x9e U+009e +0x9f U+009f +0xa0 U+00a0 +0xa1 U+fffd +0xa2 U+fffd +0xa3 U+fffd +0xa4 U+00a4 +0xa5 U+fffd +0xa6 U+fffd +0xa7 U+fffd +0xa8 U+fffd +0xa9 U+fffd +0xaa U+fffd +0xab U+fffd +0xac U+060c +0xad U+00ad +0xae U+fffd +0xaf U+fffd +0xb0 U+fffd +0xb1 U+fffd +0xb2 U+fffd +0xb3 U+fffd +0xb4 U+fffd +0xb5 U+fffd +0xb6 U+fffd +0xb7 U+fffd +0xb8 U+fffd +0xb9 U+fffd +0xba U+fffd +0xbb U+061b +0xbc U+fffd +0xbd U+fffd +0xbe U+fffd +0xbf U+061f +0xc0 U+fffd +0xc1 U+0621 +0xc2 U+0622 +0xc3 U+0623 +0xc4 U+0624 +0xc5 U+0625 +0xc6 U+0626 +0xc7 U+0627 +0xc8 U+0628 +0xc9 U+0629 +0xca U+062a +0xcb U+062b +0xcc U+062c +0xcd U+062d +0xce U+062e +0xcf U+062f +0xd0 U+0630 +0xd1 U+0631 +0xd2 U+0632 +0xd3 U+0633 +0xd4 U+0634 +0xd5 U+0635 +0xd6 U+0636 +0xd7 U+0637 +0xd8 U+0638 +0xd9 U+0639 +0xda U+063a +0xdb U+fffd +0xdc U+fffd +0xdd U+fffd +0xde U+fffd +0xdf U+fffd +0xe0 U+0640 +0xe1 U+0641 +0xe2 U+0642 +0xe3 U+0643 +0xe4 U+0644 +0xe5 U+0645 +0xe6 U+0646 +0xe7 U+0647 +0xe8 U+0648 +0xe9 U+0649 +0xea U+064a +0xeb U+064b +0xec U+064c +0xed U+064d +0xee U+064e +0xef U+064f +0xf0 U+0650 +0xf1 U+0651 +0xf2 U+0652 +0xf3 U+fffd +0xf4 U+fffd +0xf5 U+fffd +0xf6 U+fffd +0xf7 U+fffd +0xf8 U+fffd +0xf9 U+fffd +0xfa U+fffd +0xfb U+fffd +0xfc U+fffd +0xfd U+fffd +0xfe U+fffd +0xff U+fffd diff --git a/jdk/make/tools/CharsetMapping/ISO_8859_7.map b/jdk/make/tools/CharsetMapping/ISO_8859_7.map new file mode 100644 index 00000000000..673902d99ec --- /dev/null +++ b/jdk/make/tools/CharsetMapping/ISO_8859_7.map @@ -0,0 +1,257 @@ +#Generated from ISO_8859_7.java +0x00 U+0000 +0x01 U+0001 +0x02 U+0002 +0x03 U+0003 +0x04 U+0004 +0x05 U+0005 +0x06 U+0006 +0x07 U+0007 +0x08 U+0008 +0x09 U+0009 +0x0a U+000a +0x0b U+000b +0x0c U+000c +0x0d U+000d +0x0e U+000e +0x0f U+000f +0x10 U+0010 +0x11 U+0011 +0x12 U+0012 +0x13 U+0013 +0x14 U+0014 +0x15 U+0015 +0x16 U+0016 +0x17 U+0017 +0x18 U+0018 +0x19 U+0019 +0x1a U+001a +0x1b U+001b +0x1c U+001c +0x1d U+001d +0x1e U+001e +0x1f U+001f +0x20 U+0020 +0x21 U+0021 +0x22 U+0022 +0x23 U+0023 +0x24 U+0024 +0x25 U+0025 +0x26 U+0026 +0x27 U+0027 +0x28 U+0028 +0x29 U+0029 +0x2a U+002a +0x2b U+002b +0x2c U+002c +0x2d U+002d +0x2e U+002e +0x2f U+002f +0x30 U+0030 +0x31 U+0031 +0x32 U+0032 +0x33 U+0033 +0x34 U+0034 +0x35 U+0035 +0x36 U+0036 +0x37 U+0037 +0x38 U+0038 +0x39 U+0039 +0x3a U+003a +0x3b U+003b +0x3c U+003c +0x3d U+003d +0x3e U+003e +0x3f U+003f +0x40 U+0040 +0x41 U+0041 +0x42 U+0042 +0x43 U+0043 +0x44 U+0044 +0x45 U+0045 +0x46 U+0046 +0x47 U+0047 +0x48 U+0048 +0x49 U+0049 +0x4a U+004a +0x4b U+004b +0x4c U+004c +0x4d U+004d +0x4e U+004e +0x4f U+004f +0x50 U+0050 +0x51 U+0051 +0x52 U+0052 +0x53 U+0053 +0x54 U+0054 +0x55 U+0055 +0x56 U+0056 +0x57 U+0057 +0x58 U+0058 +0x59 U+0059 +0x5a U+005a +0x5b U+005b +0x5c U+005c +0x5d U+005d +0x5e U+005e +0x5f U+005f +0x60 U+0060 +0x61 U+0061 +0x62 U+0062 +0x63 U+0063 +0x64 U+0064 +0x65 U+0065 +0x66 U+0066 +0x67 U+0067 +0x68 U+0068 +0x69 U+0069 +0x6a U+006a +0x6b U+006b +0x6c U+006c +0x6d U+006d +0x6e U+006e +0x6f U+006f +0x70 U+0070 +0x71 U+0071 +0x72 U+0072 +0x73 U+0073 +0x74 U+0074 +0x75 U+0075 +0x76 U+0076 +0x77 U+0077 +0x78 U+0078 +0x79 U+0079 +0x7a U+007a +0x7b U+007b +0x7c U+007c +0x7d U+007d +0x7e U+007e +0x7f U+007f +0x80 U+0080 +0x81 U+0081 +0x82 U+0082 +0x83 U+0083 +0x84 U+0084 +0x85 U+0085 +0x86 U+0086 +0x87 U+0087 +0x88 U+0088 +0x89 U+0089 +0x8a U+008a +0x8b U+008b +0x8c U+008c +0x8d U+008d +0x8e U+008e +0x8f U+008f +0x90 U+0090 +0x91 U+0091 +0x92 U+0092 +0x93 U+0093 +0x94 U+0094 +0x95 U+0095 +0x96 U+0096 +0x97 U+0097 +0x98 U+0098 +0x99 U+0099 +0x9a U+009a +0x9b U+009b +0x9c U+009c +0x9d U+009d +0x9e U+009e +0x9f U+009f +0xa0 U+00a0 +0xa1 U+2018 +0xa2 U+2019 +0xa3 U+00a3 +0xa4 U+20ac +0xa5 U+20af +0xa6 U+00a6 +0xa7 U+00a7 +0xa8 U+00a8 +0xa9 U+00a9 +0xaa U+037a +0xab U+00ab +0xac U+00ac +0xad U+00ad +0xae U+fffd +0xaf U+2015 +0xb0 U+00b0 +0xb1 U+00b1 +0xb2 U+00b2 +0xb3 U+00b3 +0xb4 U+0384 +0xb5 U+0385 +0xb6 U+0386 +0xb7 U+00b7 +0xb8 U+0388 +0xb9 U+0389 +0xba U+038a +0xbb U+00bb +0xbc U+038c +0xbd U+00bd +0xbe U+038e +0xbf U+038f +0xc0 U+0390 +0xc1 U+0391 +0xc2 U+0392 +0xc3 U+0393 +0xc4 U+0394 +0xc5 U+0395 +0xc6 U+0396 +0xc7 U+0397 +0xc8 U+0398 +0xc9 U+0399 +0xca U+039a +0xcb U+039b +0xcc U+039c +0xcd U+039d +0xce U+039e +0xcf U+039f +0xd0 U+03a0 +0xd1 U+03a1 +0xd2 U+fffd +0xd3 U+03a3 +0xd4 U+03a4 +0xd5 U+03a5 +0xd6 U+03a6 +0xd7 U+03a7 +0xd8 U+03a8 +0xd9 U+03a9 +0xda U+03aa +0xdb U+03ab +0xdc U+03ac +0xdd U+03ad +0xde U+03ae +0xdf U+03af +0xe0 U+03b0 +0xe1 U+03b1 +0xe2 U+03b2 +0xe3 U+03b3 +0xe4 U+03b4 +0xe5 U+03b5 +0xe6 U+03b6 +0xe7 U+03b7 +0xe8 U+03b8 +0xe9 U+03b9 +0xea U+03ba +0xeb U+03bb +0xec U+03bc +0xed U+03bd +0xee U+03be +0xef U+03bf +0xf0 U+03c0 +0xf1 U+03c1 +0xf2 U+03c2 +0xf3 U+03c3 +0xf4 U+03c4 +0xf5 U+03c5 +0xf6 U+03c6 +0xf7 U+03c7 +0xf8 U+03c8 +0xf9 U+03c9 +0xfa U+03ca +0xfb U+03cb +0xfc U+03cc +0xfd U+03cd +0xfe U+03ce +0xff U+fffd diff --git a/jdk/make/tools/CharsetMapping/ISO_8859_8.map b/jdk/make/tools/CharsetMapping/ISO_8859_8.map new file mode 100644 index 00000000000..aa05d5cbfa9 --- /dev/null +++ b/jdk/make/tools/CharsetMapping/ISO_8859_8.map @@ -0,0 +1,257 @@ +#Generated from ISO_8859_8.java +0x00 U+0000 +0x01 U+0001 +0x02 U+0002 +0x03 U+0003 +0x04 U+0004 +0x05 U+0005 +0x06 U+0006 +0x07 U+0007 +0x08 U+0008 +0x09 U+0009 +0x0a U+000a +0x0b U+000b +0x0c U+000c +0x0d U+000d +0x0e U+000e +0x0f U+000f +0x10 U+0010 +0x11 U+0011 +0x12 U+0012 +0x13 U+0013 +0x14 U+0014 +0x15 U+0015 +0x16 U+0016 +0x17 U+0017 +0x18 U+0018 +0x19 U+0019 +0x1a U+001a +0x1b U+001b +0x1c U+001c +0x1d U+001d +0x1e U+001e +0x1f U+001f +0x20 U+0020 +0x21 U+0021 +0x22 U+0022 +0x23 U+0023 +0x24 U+0024 +0x25 U+0025 +0x26 U+0026 +0x27 U+0027 +0x28 U+0028 +0x29 U+0029 +0x2a U+002a +0x2b U+002b +0x2c U+002c +0x2d U+002d +0x2e U+002e +0x2f U+002f +0x30 U+0030 +0x31 U+0031 +0x32 U+0032 +0x33 U+0033 +0x34 U+0034 +0x35 U+0035 +0x36 U+0036 +0x37 U+0037 +0x38 U+0038 +0x39 U+0039 +0x3a U+003a +0x3b U+003b +0x3c U+003c +0x3d U+003d +0x3e U+003e +0x3f U+003f +0x40 U+0040 +0x41 U+0041 +0x42 U+0042 +0x43 U+0043 +0x44 U+0044 +0x45 U+0045 +0x46 U+0046 +0x47 U+0047 +0x48 U+0048 +0x49 U+0049 +0x4a U+004a +0x4b U+004b +0x4c U+004c +0x4d U+004d +0x4e U+004e +0x4f U+004f +0x50 U+0050 +0x51 U+0051 +0x52 U+0052 +0x53 U+0053 +0x54 U+0054 +0x55 U+0055 +0x56 U+0056 +0x57 U+0057 +0x58 U+0058 +0x59 U+0059 +0x5a U+005a +0x5b U+005b +0x5c U+005c +0x5d U+005d +0x5e U+005e +0x5f U+005f +0x60 U+0060 +0x61 U+0061 +0x62 U+0062 +0x63 U+0063 +0x64 U+0064 +0x65 U+0065 +0x66 U+0066 +0x67 U+0067 +0x68 U+0068 +0x69 U+0069 +0x6a U+006a +0x6b U+006b +0x6c U+006c +0x6d U+006d +0x6e U+006e +0x6f U+006f +0x70 U+0070 +0x71 U+0071 +0x72 U+0072 +0x73 U+0073 +0x74 U+0074 +0x75 U+0075 +0x76 U+0076 +0x77 U+0077 +0x78 U+0078 +0x79 U+0079 +0x7a U+007a +0x7b U+007b +0x7c U+007c +0x7d U+007d +0x7e U+007e +0x7f U+007f +0x80 U+0080 +0x81 U+0081 +0x82 U+0082 +0x83 U+0083 +0x84 U+0084 +0x85 U+0085 +0x86 U+0086 +0x87 U+0087 +0x88 U+0088 +0x89 U+0089 +0x8a U+008a +0x8b U+008b +0x8c U+008c +0x8d U+008d +0x8e U+008e +0x8f U+008f +0x90 U+0090 +0x91 U+0091 +0x92 U+0092 +0x93 U+0093 +0x94 U+0094 +0x95 U+0095 +0x96 U+0096 +0x97 U+0097 +0x98 U+0098 +0x99 U+0099 +0x9a U+009a +0x9b U+009b +0x9c U+009c +0x9d U+009d +0x9e U+009e +0x9f U+009f +0xa0 U+00a0 +0xa1 U+fffd +0xa2 U+00a2 +0xa3 U+00a3 +0xa4 U+00a4 +0xa5 U+00a5 +0xa6 U+00a6 +0xa7 U+00a7 +0xa8 U+00a8 +0xa9 U+00a9 +0xaa U+00d7 +0xab U+00ab +0xac U+00ac +0xad U+00ad +0xae U+00ae +0xaf U+00af +0xb0 U+00b0 +0xb1 U+00b1 +0xb2 U+00b2 +0xb3 U+00b3 +0xb4 U+00b4 +0xb5 U+00b5 +0xb6 U+00b6 +0xb7 U+00b7 +0xb8 U+00b8 +0xb9 U+00b9 +0xba U+00f7 +0xbb U+00bb +0xbc U+00bc +0xbd U+00bd +0xbe U+00be +0xbf U+fffd +0xc0 U+fffd +0xc1 U+fffd +0xc2 U+fffd +0xc3 U+fffd +0xc4 U+fffd +0xc5 U+fffd +0xc6 U+fffd +0xc7 U+fffd +0xc8 U+fffd +0xc9 U+fffd +0xca U+fffd +0xcb U+fffd +0xcc U+fffd +0xcd U+fffd +0xce U+fffd +0xcf U+fffd +0xd0 U+fffd +0xd1 U+fffd +0xd2 U+fffd +0xd3 U+fffd +0xd4 U+fffd +0xd5 U+fffd +0xd6 U+fffd +0xd7 U+fffd +0xd8 U+fffd +0xd9 U+fffd +0xda U+fffd +0xdb U+fffd +0xdc U+fffd +0xdd U+fffd +0xde U+fffd +0xdf U+2017 +0xe0 U+05d0 +0xe1 U+05d1 +0xe2 U+05d2 +0xe3 U+05d3 +0xe4 U+05d4 +0xe5 U+05d5 +0xe6 U+05d6 +0xe7 U+05d7 +0xe8 U+05d8 +0xe9 U+05d9 +0xea U+05da +0xeb U+05db +0xec U+05dc +0xed U+05dd +0xee U+05de +0xef U+05df +0xf0 U+05e0 +0xf1 U+05e1 +0xf2 U+05e2 +0xf3 U+05e3 +0xf4 U+05e4 +0xf5 U+05e5 +0xf6 U+05e6 +0xf7 U+05e7 +0xf8 U+05e8 +0xf9 U+05e9 +0xfa U+05ea +0xfb U+fffd +0xfc U+fffd +0xfd U+200e +0xfe U+200f +0xff U+fffd diff --git a/jdk/make/tools/CharsetMapping/ISO_8859_9.map b/jdk/make/tools/CharsetMapping/ISO_8859_9.map new file mode 100644 index 00000000000..e3a8afb3d85 --- /dev/null +++ b/jdk/make/tools/CharsetMapping/ISO_8859_9.map @@ -0,0 +1,257 @@ +#Generated from ISO_8859_9.java +0x00 U+0000 +0x01 U+0001 +0x02 U+0002 +0x03 U+0003 +0x04 U+0004 +0x05 U+0005 +0x06 U+0006 +0x07 U+0007 +0x08 U+0008 +0x09 U+0009 +0x0a U+000a +0x0b U+000b +0x0c U+000c +0x0d U+000d +0x0e U+000e +0x0f U+000f +0x10 U+0010 +0x11 U+0011 +0x12 U+0012 +0x13 U+0013 +0x14 U+0014 +0x15 U+0015 +0x16 U+0016 +0x17 U+0017 +0x18 U+0018 +0x19 U+0019 +0x1a U+001a +0x1b U+001b +0x1c U+001c +0x1d U+001d +0x1e U+001e +0x1f U+001f +0x20 U+0020 +0x21 U+0021 +0x22 U+0022 +0x23 U+0023 +0x24 U+0024 +0x25 U+0025 +0x26 U+0026 +0x27 U+0027 +0x28 U+0028 +0x29 U+0029 +0x2a U+002a +0x2b U+002b +0x2c U+002c +0x2d U+002d +0x2e U+002e +0x2f U+002f +0x30 U+0030 +0x31 U+0031 +0x32 U+0032 +0x33 U+0033 +0x34 U+0034 +0x35 U+0035 +0x36 U+0036 +0x37 U+0037 +0x38 U+0038 +0x39 U+0039 +0x3a U+003a +0x3b U+003b +0x3c U+003c +0x3d U+003d +0x3e U+003e +0x3f U+003f +0x40 U+0040 +0x41 U+0041 +0x42 U+0042 +0x43 U+0043 +0x44 U+0044 +0x45 U+0045 +0x46 U+0046 +0x47 U+0047 +0x48 U+0048 +0x49 U+0049 +0x4a U+004a +0x4b U+004b +0x4c U+004c +0x4d U+004d +0x4e U+004e +0x4f U+004f +0x50 U+0050 +0x51 U+0051 +0x52 U+0052 +0x53 U+0053 +0x54 U+0054 +0x55 U+0055 +0x56 U+0056 +0x57 U+0057 +0x58 U+0058 +0x59 U+0059 +0x5a U+005a +0x5b U+005b +0x5c U+005c +0x5d U+005d +0x5e U+005e +0x5f U+005f +0x60 U+0060 +0x61 U+0061 +0x62 U+0062 +0x63 U+0063 +0x64 U+0064 +0x65 U+0065 +0x66 U+0066 +0x67 U+0067 +0x68 U+0068 +0x69 U+0069 +0x6a U+006a +0x6b U+006b +0x6c U+006c +0x6d U+006d +0x6e U+006e +0x6f U+006f +0x70 U+0070 +0x71 U+0071 +0x72 U+0072 +0x73 U+0073 +0x74 U+0074 +0x75 U+0075 +0x76 U+0076 +0x77 U+0077 +0x78 U+0078 +0x79 U+0079 +0x7a U+007a +0x7b U+007b +0x7c U+007c +0x7d U+007d +0x7e U+007e +0x7f U+007f +0x80 U+0080 +0x81 U+0081 +0x82 U+0082 +0x83 U+0083 +0x84 U+0084 +0x85 U+0085 +0x86 U+0086 +0x87 U+0087 +0x88 U+0088 +0x89 U+0089 +0x8a U+008a +0x8b U+008b +0x8c U+008c +0x8d U+008d +0x8e U+008e +0x8f U+008f +0x90 U+0090 +0x91 U+0091 +0x92 U+0092 +0x93 U+0093 +0x94 U+0094 +0x95 U+0095 +0x96 U+0096 +0x97 U+0097 +0x98 U+0098 +0x99 U+0099 +0x9a U+009a +0x9b U+009b +0x9c U+009c +0x9d U+009d +0x9e U+009e +0x9f U+009f +0xa0 U+00a0 +0xa1 U+00a1 +0xa2 U+00a2 +0xa3 U+00a3 +0xa4 U+00a4 +0xa5 U+00a5 +0xa6 U+00a6 +0xa7 U+00a7 +0xa8 U+00a8 +0xa9 U+00a9 +0xaa U+00aa +0xab U+00ab +0xac U+00ac +0xad U+00ad +0xae U+00ae +0xaf U+00af +0xb0 U+00b0 +0xb1 U+00b1 +0xb2 U+00b2 +0xb3 U+00b3 +0xb4 U+00b4 +0xb5 U+00b5 +0xb6 U+00b6 +0xb7 U+00b7 +0xb8 U+00b8 +0xb9 U+00b9 +0xba U+00ba +0xbb U+00bb +0xbc U+00bc +0xbd U+00bd +0xbe U+00be +0xbf U+00bf +0xc0 U+00c0 +0xc1 U+00c1 +0xc2 U+00c2 +0xc3 U+00c3 +0xc4 U+00c4 +0xc5 U+00c5 +0xc6 U+00c6 +0xc7 U+00c7 +0xc8 U+00c8 +0xc9 U+00c9 +0xca U+00ca +0xcb U+00cb +0xcc U+00cc +0xcd U+00cd +0xce U+00ce +0xcf U+00cf +0xd0 U+011e +0xd1 U+00d1 +0xd2 U+00d2 +0xd3 U+00d3 +0xd4 U+00d4 +0xd5 U+00d5 +0xd6 U+00d6 +0xd7 U+00d7 +0xd8 U+00d8 +0xd9 U+00d9 +0xda U+00da +0xdb U+00db +0xdc U+00dc +0xdd U+0130 +0xde U+015e +0xdf U+00df +0xe0 U+00e0 +0xe1 U+00e1 +0xe2 U+00e2 +0xe3 U+00e3 +0xe4 U+00e4 +0xe5 U+00e5 +0xe6 U+00e6 +0xe7 U+00e7 +0xe8 U+00e8 +0xe9 U+00e9 +0xea U+00ea +0xeb U+00eb +0xec U+00ec +0xed U+00ed +0xee U+00ee +0xef U+00ef +0xf0 U+011f +0xf1 U+00f1 +0xf2 U+00f2 +0xf3 U+00f3 +0xf4 U+00f4 +0xf5 U+00f5 +0xf6 U+00f6 +0xf7 U+00f7 +0xf8 U+00f8 +0xf9 U+00f9 +0xfa U+00fa +0xfb U+00fb +0xfc U+00fc +0xfd U+0131 +0xfe U+015f +0xff U+00ff diff --git a/jdk/make/tools/CharsetMapping/JIS_X_0201.map b/jdk/make/tools/CharsetMapping/JIS_X_0201.map new file mode 100644 index 00000000000..aaa8f1150a3 --- /dev/null +++ b/jdk/make/tools/CharsetMapping/JIS_X_0201.map @@ -0,0 +1,257 @@ +#Generated from JIS_X_0201.java +0x00 U+0000 +0x01 U+0001 +0x02 U+0002 +0x03 U+0003 +0x04 U+0004 +0x05 U+0005 +0x06 U+0006 +0x07 U+0007 +0x08 U+0008 +0x09 U+0009 +0x0a U+000a +0x0b U+000b +0x0c U+000c +0x0d U+000d +0x0e U+000e +0x0f U+000f +0x10 U+0010 +0x11 U+0011 +0x12 U+0012 +0x13 U+0013 +0x14 U+0014 +0x15 U+0015 +0x16 U+0016 +0x17 U+0017 +0x18 U+0018 +0x19 U+0019 +0x1a U+001a +0x1b U+001b +0x1c U+001c +0x1d U+001d +0x1e U+001e +0x1f U+001f +0x20 U+0020 +0x21 U+0021 +0x22 U+0022 +0x23 U+0023 +0x24 U+0024 +0x25 U+0025 +0x26 U+0026 +0x27 U+0027 +0x28 U+0028 +0x29 U+0029 +0x2a U+002a +0x2b U+002b +0x2c U+002c +0x2d U+002d +0x2e U+002e +0x2f U+002f +0x30 U+0030 +0x31 U+0031 +0x32 U+0032 +0x33 U+0033 +0x34 U+0034 +0x35 U+0035 +0x36 U+0036 +0x37 U+0037 +0x38 U+0038 +0x39 U+0039 +0x3a U+003a +0x3b U+003b +0x3c U+003c +0x3d U+003d +0x3e U+003e +0x3f U+003f +0x40 U+0040 +0x41 U+0041 +0x42 U+0042 +0x43 U+0043 +0x44 U+0044 +0x45 U+0045 +0x46 U+0046 +0x47 U+0047 +0x48 U+0048 +0x49 U+0049 +0x4a U+004a +0x4b U+004b +0x4c U+004c +0x4d U+004d +0x4e U+004e +0x4f U+004f +0x50 U+0050 +0x51 U+0051 +0x52 U+0052 +0x53 U+0053 +0x54 U+0054 +0x55 U+0055 +0x56 U+0056 +0x57 U+0057 +0x58 U+0058 +0x59 U+0059 +0x5a U+005a +0x5b U+005b +0x5c U+005c +0x5d U+005d +0x5e U+005e +0x5f U+005f +0x60 U+0060 +0x61 U+0061 +0x62 U+0062 +0x63 U+0063 +0x64 U+0064 +0x65 U+0065 +0x66 U+0066 +0x67 U+0067 +0x68 U+0068 +0x69 U+0069 +0x6a U+006a +0x6b U+006b +0x6c U+006c +0x6d U+006d +0x6e U+006e +0x6f U+006f +0x70 U+0070 +0x71 U+0071 +0x72 U+0072 +0x73 U+0073 +0x74 U+0074 +0x75 U+0075 +0x76 U+0076 +0x77 U+0077 +0x78 U+0078 +0x79 U+0079 +0x7a U+007a +0x7b U+007b +0x7c U+007c +0x7d U+007d +0x7e U+007e +0x7f U+007f +0x80 U+fffd +0x81 U+fffd +0x82 U+fffd +0x83 U+fffd +0x84 U+fffd +0x85 U+fffd +0x86 U+fffd +0x87 U+fffd +0x88 U+fffd +0x89 U+fffd +0x8a U+fffd +0x8b U+fffd +0x8c U+fffd +0x8d U+fffd +0x8e U+fffd +0x8f U+fffd +0x90 U+fffd +0x91 U+fffd +0x92 U+fffd +0x93 U+fffd +0x94 U+fffd +0x95 U+fffd +0x96 U+fffd +0x97 U+fffd +0x98 U+fffd +0x99 U+fffd +0x9a U+fffd +0x9b U+fffd +0x9c U+fffd +0x9d U+fffd +0x9e U+fffd +0x9f U+fffd +0xa0 U+fffd +0xa1 U+ff61 +0xa2 U+ff62 +0xa3 U+ff63 +0xa4 U+ff64 +0xa5 U+ff65 +0xa6 U+ff66 +0xa7 U+ff67 +0xa8 U+ff68 +0xa9 U+ff69 +0xaa U+ff6a +0xab U+ff6b +0xac U+ff6c +0xad U+ff6d +0xae U+ff6e +0xaf U+ff6f +0xb0 U+ff70 +0xb1 U+ff71 +0xb2 U+ff72 +0xb3 U+ff73 +0xb4 U+ff74 +0xb5 U+ff75 +0xb6 U+ff76 +0xb7 U+ff77 +0xb8 U+ff78 +0xb9 U+ff79 +0xba U+ff7a +0xbb U+ff7b +0xbc U+ff7c +0xbd U+ff7d +0xbe U+ff7e +0xbf U+ff7f +0xc0 U+ff80 +0xc1 U+ff81 +0xc2 U+ff82 +0xc3 U+ff83 +0xc4 U+ff84 +0xc5 U+ff85 +0xc6 U+ff86 +0xc7 U+ff87 +0xc8 U+ff88 +0xc9 U+ff89 +0xca U+ff8a +0xcb U+ff8b +0xcc U+ff8c +0xcd U+ff8d +0xce U+ff8e +0xcf U+ff8f +0xd0 U+ff90 +0xd1 U+ff91 +0xd2 U+ff92 +0xd3 U+ff93 +0xd4 U+ff94 +0xd5 U+ff95 +0xd6 U+ff96 +0xd7 U+ff97 +0xd8 U+ff98 +0xd9 U+ff99 +0xda U+ff9a +0xdb U+ff9b +0xdc U+ff9c +0xdd U+ff9d +0xde U+ff9e +0xdf U+ff9f +0xe0 U+fffd +0xe1 U+fffd +0xe2 U+fffd +0xe3 U+fffd +0xe4 U+fffd +0xe5 U+fffd +0xe6 U+fffd +0xe7 U+fffd +0xe8 U+fffd +0xe9 U+fffd +0xea U+fffd +0xeb U+fffd +0xec U+fffd +0xed U+fffd +0xee U+fffd +0xef U+fffd +0xf0 U+fffd +0xf1 U+fffd +0xf2 U+fffd +0xf3 U+fffd +0xf4 U+fffd +0xf5 U+fffd +0xf6 U+fffd +0xf7 U+fffd +0xf8 U+fffd +0xf9 U+fffd +0xfa U+fffd +0xfb U+fffd +0xfc U+fffd +0xfd U+fffd +0xfe U+fffd +0xff U+fffd diff --git a/jdk/make/tools/CharsetMapping/KOI8_R.map b/jdk/make/tools/CharsetMapping/KOI8_R.map new file mode 100644 index 00000000000..c13c38de4b3 --- /dev/null +++ b/jdk/make/tools/CharsetMapping/KOI8_R.map @@ -0,0 +1,257 @@ +#Generated from KOI8_R.java +0x00 U+0000 +0x01 U+0001 +0x02 U+0002 +0x03 U+0003 +0x04 U+0004 +0x05 U+0005 +0x06 U+0006 +0x07 U+0007 +0x08 U+0008 +0x09 U+0009 +0x0a U+000a +0x0b U+000b +0x0c U+000c +0x0d U+000d +0x0e U+000e +0x0f U+000f +0x10 U+0010 +0x11 U+0011 +0x12 U+0012 +0x13 U+0013 +0x14 U+0014 +0x15 U+0015 +0x16 U+0016 +0x17 U+0017 +0x18 U+0018 +0x19 U+0019 +0x1a U+001a +0x1b U+001b +0x1c U+001c +0x1d U+001d +0x1e U+001e +0x1f U+001f +0x20 U+0020 +0x21 U+0021 +0x22 U+0022 +0x23 U+0023 +0x24 U+0024 +0x25 U+0025 +0x26 U+0026 +0x27 U+0027 +0x28 U+0028 +0x29 U+0029 +0x2a U+002a +0x2b U+002b +0x2c U+002c +0x2d U+002d +0x2e U+002e +0x2f U+002f +0x30 U+0030 +0x31 U+0031 +0x32 U+0032 +0x33 U+0033 +0x34 U+0034 +0x35 U+0035 +0x36 U+0036 +0x37 U+0037 +0x38 U+0038 +0x39 U+0039 +0x3a U+003a +0x3b U+003b +0x3c U+003c +0x3d U+003d +0x3e U+003e +0x3f U+003f +0x40 U+0040 +0x41 U+0041 +0x42 U+0042 +0x43 U+0043 +0x44 U+0044 +0x45 U+0045 +0x46 U+0046 +0x47 U+0047 +0x48 U+0048 +0x49 U+0049 +0x4a U+004a +0x4b U+004b +0x4c U+004c +0x4d U+004d +0x4e U+004e +0x4f U+004f +0x50 U+0050 +0x51 U+0051 +0x52 U+0052 +0x53 U+0053 +0x54 U+0054 +0x55 U+0055 +0x56 U+0056 +0x57 U+0057 +0x58 U+0058 +0x59 U+0059 +0x5a U+005a +0x5b U+005b +0x5c U+005c +0x5d U+005d +0x5e U+005e +0x5f U+005f +0x60 U+0060 +0x61 U+0061 +0x62 U+0062 +0x63 U+0063 +0x64 U+0064 +0x65 U+0065 +0x66 U+0066 +0x67 U+0067 +0x68 U+0068 +0x69 U+0069 +0x6a U+006a +0x6b U+006b +0x6c U+006c +0x6d U+006d +0x6e U+006e +0x6f U+006f +0x70 U+0070 +0x71 U+0071 +0x72 U+0072 +0x73 U+0073 +0x74 U+0074 +0x75 U+0075 +0x76 U+0076 +0x77 U+0077 +0x78 U+0078 +0x79 U+0079 +0x7a U+007a +0x7b U+007b +0x7c U+007c +0x7d U+007d +0x7e U+007e +0x7f U+007f +0x80 U+2500 +0x81 U+2502 +0x82 U+250c +0x83 U+2510 +0x84 U+2514 +0x85 U+2518 +0x86 U+251c +0x87 U+2524 +0x88 U+252c +0x89 U+2534 +0x8a U+253c +0x8b U+2580 +0x8c U+2584 +0x8d U+2588 +0x8e U+258c +0x8f U+2590 +0x90 U+2591 +0x91 U+2592 +0x92 U+2593 +0x93 U+2320 +0x94 U+25a0 +0x95 U+2219 +0x96 U+221a +0x97 U+2248 +0x98 U+2264 +0x99 U+2265 +0x9a U+00a0 +0x9b U+2321 +0x9c U+00b0 +0x9d U+00b2 +0x9e U+00b7 +0x9f U+00f7 +0xa0 U+2550 +0xa1 U+2551 +0xa2 U+2552 +0xa3 U+0451 +0xa4 U+2553 +0xa5 U+2554 +0xa6 U+2555 +0xa7 U+2556 +0xa8 U+2557 +0xa9 U+2558 +0xaa U+2559 +0xab U+255a +0xac U+255b +0xad U+255c +0xae U+255d +0xaf U+255e +0xb0 U+255f +0xb1 U+2560 +0xb2 U+2561 +0xb3 U+0401 +0xb4 U+2562 +0xb5 U+2563 +0xb6 U+2564 +0xb7 U+2565 +0xb8 U+2566 +0xb9 U+2567 +0xba U+2568 +0xbb U+2569 +0xbc U+256a +0xbd U+256b +0xbe U+256c +0xbf U+00a9 +0xc0 U+044e +0xc1 U+0430 +0xc2 U+0431 +0xc3 U+0446 +0xc4 U+0434 +0xc5 U+0435 +0xc6 U+0444 +0xc7 U+0433 +0xc8 U+0445 +0xc9 U+0438 +0xca U+0439 +0xcb U+043a +0xcc U+043b +0xcd U+043c +0xce U+043d +0xcf U+043e +0xd0 U+043f +0xd1 U+044f +0xd2 U+0440 +0xd3 U+0441 +0xd4 U+0442 +0xd5 U+0443 +0xd6 U+0436 +0xd7 U+0432 +0xd8 U+044c +0xd9 U+044b +0xda U+0437 +0xdb U+0448 +0xdc U+044d +0xdd U+0449 +0xde U+0447 +0xdf U+044a +0xe0 U+042e +0xe1 U+0410 +0xe2 U+0411 +0xe3 U+0426 +0xe4 U+0414 +0xe5 U+0415 +0xe6 U+0424 +0xe7 U+0413 +0xe8 U+0425 +0xe9 U+0418 +0xea U+0419 +0xeb U+041a +0xec U+041b +0xed U+041c +0xee U+041d +0xef U+041e +0xf0 U+041f +0xf1 U+042f +0xf2 U+0420 +0xf3 U+0421 +0xf4 U+0422 +0xf5 U+0423 +0xf6 U+0416 +0xf7 U+0412 +0xf8 U+042c +0xf9 U+042b +0xfa U+0417 +0xfb U+0428 +0xfc U+042d +0xfd U+0429 +0xfe U+0427 +0xff U+042a diff --git a/jdk/make/tools/CharsetMapping/KOI8_U.map b/jdk/make/tools/CharsetMapping/KOI8_U.map new file mode 100644 index 00000000000..1f91e8f832d --- /dev/null +++ b/jdk/make/tools/CharsetMapping/KOI8_U.map @@ -0,0 +1,257 @@ +#Generated from KOI8_U.java +0x00 U+0000 +0x01 U+0001 +0x02 U+0002 +0x03 U+0003 +0x04 U+0004 +0x05 U+0005 +0x06 U+0006 +0x07 U+0007 +0x08 U+0008 +0x09 U+0009 +0x0a U+000a +0x0b U+000b +0x0c U+000c +0x0d U+000d +0x0e U+000e +0x0f U+000f +0x10 U+0010 +0x11 U+0011 +0x12 U+0012 +0x13 U+0013 +0x14 U+0014 +0x15 U+0015 +0x16 U+0016 +0x17 U+0017 +0x18 U+0018 +0x19 U+0019 +0x1a U+001a +0x1b U+001b +0x1c U+001c +0x1d U+001d +0x1e U+001e +0x1f U+001f +0x20 U+0020 +0x21 U+0021 +0x22 U+0022 +0x23 U+0023 +0x24 U+0024 +0x25 U+0025 +0x26 U+0026 +0x27 U+0027 +0x28 U+0028 +0x29 U+0029 +0x2a U+002a +0x2b U+002b +0x2c U+002c +0x2d U+002d +0x2e U+002e +0x2f U+002f +0x30 U+0030 +0x31 U+0031 +0x32 U+0032 +0x33 U+0033 +0x34 U+0034 +0x35 U+0035 +0x36 U+0036 +0x37 U+0037 +0x38 U+0038 +0x39 U+0039 +0x3a U+003a +0x3b U+003b +0x3c U+003c +0x3d U+003d +0x3e U+003e +0x3f U+003f +0x40 U+0040 +0x41 U+0041 +0x42 U+0042 +0x43 U+0043 +0x44 U+0044 +0x45 U+0045 +0x46 U+0046 +0x47 U+0047 +0x48 U+0048 +0x49 U+0049 +0x4a U+004a +0x4b U+004b +0x4c U+004c +0x4d U+004d +0x4e U+004e +0x4f U+004f +0x50 U+0050 +0x51 U+0051 +0x52 U+0052 +0x53 U+0053 +0x54 U+0054 +0x55 U+0055 +0x56 U+0056 +0x57 U+0057 +0x58 U+0058 +0x59 U+0059 +0x5a U+005a +0x5b U+005b +0x5c U+005c +0x5d U+005d +0x5e U+005e +0x5f U+005f +0x60 U+0060 +0x61 U+0061 +0x62 U+0062 +0x63 U+0063 +0x64 U+0064 +0x65 U+0065 +0x66 U+0066 +0x67 U+0067 +0x68 U+0068 +0x69 U+0069 +0x6a U+006a +0x6b U+006b +0x6c U+006c +0x6d U+006d +0x6e U+006e +0x6f U+006f +0x70 U+0070 +0x71 U+0071 +0x72 U+0072 +0x73 U+0073 +0x74 U+0074 +0x75 U+0075 +0x76 U+0076 +0x77 U+0077 +0x78 U+0078 +0x79 U+0079 +0x7a U+007a +0x7b U+007b +0x7c U+007c +0x7d U+007d +0x7e U+007e +0x7f U+007f +0x80 U+2500 +0x81 U+2502 +0x82 U+250c +0x83 U+2510 +0x84 U+2514 +0x85 U+2518 +0x86 U+251c +0x87 U+2524 +0x88 U+252c +0x89 U+2534 +0x8a U+253c +0x8b U+2580 +0x8c U+2584 +0x8d U+2588 +0x8e U+258c +0x8f U+2590 +0x90 U+2591 +0x91 U+2592 +0x92 U+2593 +0x93 U+2320 +0x94 U+25a0 +0x95 U+2219 +0x96 U+221a +0x97 U+2248 +0x98 U+2264 +0x99 U+2265 +0x9a U+00a0 +0x9b U+2321 +0x9c U+00b0 +0x9d U+00b2 +0x9e U+00b7 +0x9f U+00f7 +0xa0 U+2550 +0xa1 U+2551 +0xa2 U+2552 +0xa3 U+0451 +0xa4 U+0454 +0xa5 U+2554 +0xa6 U+0456 +0xa7 U+0457 +0xa8 U+2557 +0xa9 U+2558 +0xaa U+2559 +0xab U+255a +0xac U+255b +0xad U+0491 +0xae U+255d +0xaf U+255e +0xb0 U+255f +0xb1 U+2560 +0xb2 U+2561 +0xb3 U+0401 +0xb4 U+0404 +0xb5 U+2563 +0xb6 U+0406 +0xb7 U+0407 +0xb8 U+2566 +0xb9 U+2567 +0xba U+2568 +0xbb U+2569 +0xbc U+256a +0xbd U+0490 +0xbe U+256c +0xbf U+00a9 +0xc0 U+044e +0xc1 U+0430 +0xc2 U+0431 +0xc3 U+0446 +0xc4 U+0434 +0xc5 U+0435 +0xc6 U+0444 +0xc7 U+0433 +0xc8 U+0445 +0xc9 U+0438 +0xca U+0439 +0xcb U+043a +0xcc U+043b +0xcd U+043c +0xce U+043d +0xcf U+043e +0xd0 U+043f +0xd1 U+044f +0xd2 U+0440 +0xd3 U+0441 +0xd4 U+0442 +0xd5 U+0443 +0xd6 U+0436 +0xd7 U+0432 +0xd8 U+044c +0xd9 U+044b +0xda U+0437 +0xdb U+0448 +0xdc U+044d +0xdd U+0449 +0xde U+0447 +0xdf U+044a +0xe0 U+042e +0xe1 U+0410 +0xe2 U+0411 +0xe3 U+0426 +0xe4 U+0414 +0xe5 U+0415 +0xe6 U+0424 +0xe7 U+0413 +0xe8 U+0425 +0xe9 U+0418 +0xea U+0419 +0xeb U+041a +0xec U+041b +0xed U+041c +0xee U+041d +0xef U+041e +0xf0 U+041f +0xf1 U+042f +0xf2 U+0420 +0xf3 U+0421 +0xf4 U+0422 +0xf5 U+0423 +0xf6 U+0416 +0xf7 U+0412 +0xf8 U+042c +0xf9 U+042b +0xfa U+0417 +0xfb U+0428 +0xfc U+042d +0xfd U+0429 +0xfe U+0427 +0xff U+042a diff --git a/jdk/make/tools/CharsetMapping/MS1250.map b/jdk/make/tools/CharsetMapping/MS1250.map new file mode 100644 index 00000000000..b88030738d7 --- /dev/null +++ b/jdk/make/tools/CharsetMapping/MS1250.map @@ -0,0 +1,257 @@ +#Generated from MS1250.java +0x00 U+0000 +0x01 U+0001 +0x02 U+0002 +0x03 U+0003 +0x04 U+0004 +0x05 U+0005 +0x06 U+0006 +0x07 U+0007 +0x08 U+0008 +0x09 U+0009 +0x0a U+000a +0x0b U+000b +0x0c U+000c +0x0d U+000d +0x0e U+000e +0x0f U+000f +0x10 U+0010 +0x11 U+0011 +0x12 U+0012 +0x13 U+0013 +0x14 U+0014 +0x15 U+0015 +0x16 U+0016 +0x17 U+0017 +0x18 U+0018 +0x19 U+0019 +0x1a U+001a +0x1b U+001b +0x1c U+001c +0x1d U+001d +0x1e U+001e +0x1f U+001f +0x20 U+0020 +0x21 U+0021 +0x22 U+0022 +0x23 U+0023 +0x24 U+0024 +0x25 U+0025 +0x26 U+0026 +0x27 U+0027 +0x28 U+0028 +0x29 U+0029 +0x2a U+002a +0x2b U+002b +0x2c U+002c +0x2d U+002d +0x2e U+002e +0x2f U+002f +0x30 U+0030 +0x31 U+0031 +0x32 U+0032 +0x33 U+0033 +0x34 U+0034 +0x35 U+0035 +0x36 U+0036 +0x37 U+0037 +0x38 U+0038 +0x39 U+0039 +0x3a U+003a +0x3b U+003b +0x3c U+003c +0x3d U+003d +0x3e U+003e +0x3f U+003f +0x40 U+0040 +0x41 U+0041 +0x42 U+0042 +0x43 U+0043 +0x44 U+0044 +0x45 U+0045 +0x46 U+0046 +0x47 U+0047 +0x48 U+0048 +0x49 U+0049 +0x4a U+004a +0x4b U+004b +0x4c U+004c +0x4d U+004d +0x4e U+004e +0x4f U+004f +0x50 U+0050 +0x51 U+0051 +0x52 U+0052 +0x53 U+0053 +0x54 U+0054 +0x55 U+0055 +0x56 U+0056 +0x57 U+0057 +0x58 U+0058 +0x59 U+0059 +0x5a U+005a +0x5b U+005b +0x5c U+005c +0x5d U+005d +0x5e U+005e +0x5f U+005f +0x60 U+0060 +0x61 U+0061 +0x62 U+0062 +0x63 U+0063 +0x64 U+0064 +0x65 U+0065 +0x66 U+0066 +0x67 U+0067 +0x68 U+0068 +0x69 U+0069 +0x6a U+006a +0x6b U+006b +0x6c U+006c +0x6d U+006d +0x6e U+006e +0x6f U+006f +0x70 U+0070 +0x71 U+0071 +0x72 U+0072 +0x73 U+0073 +0x74 U+0074 +0x75 U+0075 +0x76 U+0076 +0x77 U+0077 +0x78 U+0078 +0x79 U+0079 +0x7a U+007a +0x7b U+007b +0x7c U+007c +0x7d U+007d +0x7e U+007e +0x7f U+007f +0x80 U+20ac +0x81 U+fffd +0x82 U+201a +0x83 U+fffd +0x84 U+201e +0x85 U+2026 +0x86 U+2020 +0x87 U+2021 +0x88 U+fffd +0x89 U+2030 +0x8a U+0160 +0x8b U+2039 +0x8c U+015a +0x8d U+0164 +0x8e U+017d +0x8f U+0179 +0x90 U+fffd +0x91 U+2018 +0x92 U+2019 +0x93 U+201c +0x94 U+201d +0x95 U+2022 +0x96 U+2013 +0x97 U+2014 +0x98 U+fffd +0x99 U+2122 +0x9a U+0161 +0x9b U+203a +0x9c U+015b +0x9d U+0165 +0x9e U+017e +0x9f U+017a +0xa0 U+00a0 +0xa1 U+02c7 +0xa2 U+02d8 +0xa3 U+0141 +0xa4 U+00a4 +0xa5 U+0104 +0xa6 U+00a6 +0xa7 U+00a7 +0xa8 U+00a8 +0xa9 U+00a9 +0xaa U+015e +0xab U+00ab +0xac U+00ac +0xad U+00ad +0xae U+00ae +0xaf U+017b +0xb0 U+00b0 +0xb1 U+00b1 +0xb2 U+02db +0xb3 U+0142 +0xb4 U+00b4 +0xb5 U+00b5 +0xb6 U+00b6 +0xb7 U+00b7 +0xb8 U+00b8 +0xb9 U+0105 +0xba U+015f +0xbb U+00bb +0xbc U+013d +0xbd U+02dd +0xbe U+013e +0xbf U+017c +0xc0 U+0154 +0xc1 U+00c1 +0xc2 U+00c2 +0xc3 U+0102 +0xc4 U+00c4 +0xc5 U+0139 +0xc6 U+0106 +0xc7 U+00c7 +0xc8 U+010c +0xc9 U+00c9 +0xca U+0118 +0xcb U+00cb +0xcc U+011a +0xcd U+00cd +0xce U+00ce +0xcf U+010e +0xd0 U+0110 +0xd1 U+0143 +0xd2 U+0147 +0xd3 U+00d3 +0xd4 U+00d4 +0xd5 U+0150 +0xd6 U+00d6 +0xd7 U+00d7 +0xd8 U+0158 +0xd9 U+016e +0xda U+00da +0xdb U+0170 +0xdc U+00dc +0xdd U+00dd +0xde U+0162 +0xdf U+00df +0xe0 U+0155 +0xe1 U+00e1 +0xe2 U+00e2 +0xe3 U+0103 +0xe4 U+00e4 +0xe5 U+013a +0xe6 U+0107 +0xe7 U+00e7 +0xe8 U+010d +0xe9 U+00e9 +0xea U+0119 +0xeb U+00eb +0xec U+011b +0xed U+00ed +0xee U+00ee +0xef U+010f +0xf0 U+0111 +0xf1 U+0144 +0xf2 U+0148 +0xf3 U+00f3 +0xf4 U+00f4 +0xf5 U+0151 +0xf6 U+00f6 +0xf7 U+00f7 +0xf8 U+0159 +0xf9 U+016f +0xfa U+00fa +0xfb U+0171 +0xfc U+00fc +0xfd U+00fd +0xfe U+0163 +0xff U+02d9 diff --git a/jdk/make/tools/CharsetMapping/MS1251.map b/jdk/make/tools/CharsetMapping/MS1251.map new file mode 100644 index 00000000000..97937f2d08e --- /dev/null +++ b/jdk/make/tools/CharsetMapping/MS1251.map @@ -0,0 +1,257 @@ +#Generated from MS1251.java +0x00 U+0000 +0x01 U+0001 +0x02 U+0002 +0x03 U+0003 +0x04 U+0004 +0x05 U+0005 +0x06 U+0006 +0x07 U+0007 +0x08 U+0008 +0x09 U+0009 +0x0a U+000a +0x0b U+000b +0x0c U+000c +0x0d U+000d +0x0e U+000e +0x0f U+000f +0x10 U+0010 +0x11 U+0011 +0x12 U+0012 +0x13 U+0013 +0x14 U+0014 +0x15 U+0015 +0x16 U+0016 +0x17 U+0017 +0x18 U+0018 +0x19 U+0019 +0x1a U+001a +0x1b U+001b +0x1c U+001c +0x1d U+001d +0x1e U+001e +0x1f U+001f +0x20 U+0020 +0x21 U+0021 +0x22 U+0022 +0x23 U+0023 +0x24 U+0024 +0x25 U+0025 +0x26 U+0026 +0x27 U+0027 +0x28 U+0028 +0x29 U+0029 +0x2a U+002a +0x2b U+002b +0x2c U+002c +0x2d U+002d +0x2e U+002e +0x2f U+002f +0x30 U+0030 +0x31 U+0031 +0x32 U+0032 +0x33 U+0033 +0x34 U+0034 +0x35 U+0035 +0x36 U+0036 +0x37 U+0037 +0x38 U+0038 +0x39 U+0039 +0x3a U+003a +0x3b U+003b +0x3c U+003c +0x3d U+003d +0x3e U+003e +0x3f U+003f +0x40 U+0040 +0x41 U+0041 +0x42 U+0042 +0x43 U+0043 +0x44 U+0044 +0x45 U+0045 +0x46 U+0046 +0x47 U+0047 +0x48 U+0048 +0x49 U+0049 +0x4a U+004a +0x4b U+004b +0x4c U+004c +0x4d U+004d +0x4e U+004e +0x4f U+004f +0x50 U+0050 +0x51 U+0051 +0x52 U+0052 +0x53 U+0053 +0x54 U+0054 +0x55 U+0055 +0x56 U+0056 +0x57 U+0057 +0x58 U+0058 +0x59 U+0059 +0x5a U+005a +0x5b U+005b +0x5c U+005c +0x5d U+005d +0x5e U+005e +0x5f U+005f +0x60 U+0060 +0x61 U+0061 +0x62 U+0062 +0x63 U+0063 +0x64 U+0064 +0x65 U+0065 +0x66 U+0066 +0x67 U+0067 +0x68 U+0068 +0x69 U+0069 +0x6a U+006a +0x6b U+006b +0x6c U+006c +0x6d U+006d +0x6e U+006e +0x6f U+006f +0x70 U+0070 +0x71 U+0071 +0x72 U+0072 +0x73 U+0073 +0x74 U+0074 +0x75 U+0075 +0x76 U+0076 +0x77 U+0077 +0x78 U+0078 +0x79 U+0079 +0x7a U+007a +0x7b U+007b +0x7c U+007c +0x7d U+007d +0x7e U+007e +0x7f U+007f +0x80 U+0402 +0x81 U+0403 +0x82 U+201a +0x83 U+0453 +0x84 U+201e +0x85 U+2026 +0x86 U+2020 +0x87 U+2021 +0x88 U+20ac +0x89 U+2030 +0x8a U+0409 +0x8b U+2039 +0x8c U+040a +0x8d U+040c +0x8e U+040b +0x8f U+040f +0x90 U+0452 +0x91 U+2018 +0x92 U+2019 +0x93 U+201c +0x94 U+201d +0x95 U+2022 +0x96 U+2013 +0x97 U+2014 +0x98 U+fffd +0x99 U+2122 +0x9a U+0459 +0x9b U+203a +0x9c U+045a +0x9d U+045c +0x9e U+045b +0x9f U+045f +0xa0 U+00a0 +0xa1 U+040e +0xa2 U+045e +0xa3 U+0408 +0xa4 U+00a4 +0xa5 U+0490 +0xa6 U+00a6 +0xa7 U+00a7 +0xa8 U+0401 +0xa9 U+00a9 +0xaa U+0404 +0xab U+00ab +0xac U+00ac +0xad U+00ad +0xae U+00ae +0xaf U+0407 +0xb0 U+00b0 +0xb1 U+00b1 +0xb2 U+0406 +0xb3 U+0456 +0xb4 U+0491 +0xb5 U+00b5 +0xb6 U+00b6 +0xb7 U+00b7 +0xb8 U+0451 +0xb9 U+2116 +0xba U+0454 +0xbb U+00bb +0xbc U+0458 +0xbd U+0405 +0xbe U+0455 +0xbf U+0457 +0xc0 U+0410 +0xc1 U+0411 +0xc2 U+0412 +0xc3 U+0413 +0xc4 U+0414 +0xc5 U+0415 +0xc6 U+0416 +0xc7 U+0417 +0xc8 U+0418 +0xc9 U+0419 +0xca U+041a +0xcb U+041b +0xcc U+041c +0xcd U+041d +0xce U+041e +0xcf U+041f +0xd0 U+0420 +0xd1 U+0421 +0xd2 U+0422 +0xd3 U+0423 +0xd4 U+0424 +0xd5 U+0425 +0xd6 U+0426 +0xd7 U+0427 +0xd8 U+0428 +0xd9 U+0429 +0xda U+042a +0xdb U+042b +0xdc U+042c +0xdd U+042d +0xde U+042e +0xdf U+042f +0xe0 U+0430 +0xe1 U+0431 +0xe2 U+0432 +0xe3 U+0433 +0xe4 U+0434 +0xe5 U+0435 +0xe6 U+0436 +0xe7 U+0437 +0xe8 U+0438 +0xe9 U+0439 +0xea U+043a +0xeb U+043b +0xec U+043c +0xed U+043d +0xee U+043e +0xef U+043f +0xf0 U+0440 +0xf1 U+0441 +0xf2 U+0442 +0xf3 U+0443 +0xf4 U+0444 +0xf5 U+0445 +0xf6 U+0446 +0xf7 U+0447 +0xf8 U+0448 +0xf9 U+0449 +0xfa U+044a +0xfb U+044b +0xfc U+044c +0xfd U+044d +0xfe U+044e +0xff U+044f diff --git a/jdk/make/tools/CharsetMapping/MS1252.map b/jdk/make/tools/CharsetMapping/MS1252.map new file mode 100644 index 00000000000..d339bc4988e --- /dev/null +++ b/jdk/make/tools/CharsetMapping/MS1252.map @@ -0,0 +1,257 @@ +#Generated from MS1252.java +0x00 U+0000 +0x01 U+0001 +0x02 U+0002 +0x03 U+0003 +0x04 U+0004 +0x05 U+0005 +0x06 U+0006 +0x07 U+0007 +0x08 U+0008 +0x09 U+0009 +0x0a U+000a +0x0b U+000b +0x0c U+000c +0x0d U+000d +0x0e U+000e +0x0f U+000f +0x10 U+0010 +0x11 U+0011 +0x12 U+0012 +0x13 U+0013 +0x14 U+0014 +0x15 U+0015 +0x16 U+0016 +0x17 U+0017 +0x18 U+0018 +0x19 U+0019 +0x1a U+001a +0x1b U+001b +0x1c U+001c +0x1d U+001d +0x1e U+001e +0x1f U+001f +0x20 U+0020 +0x21 U+0021 +0x22 U+0022 +0x23 U+0023 +0x24 U+0024 +0x25 U+0025 +0x26 U+0026 +0x27 U+0027 +0x28 U+0028 +0x29 U+0029 +0x2a U+002a +0x2b U+002b +0x2c U+002c +0x2d U+002d +0x2e U+002e +0x2f U+002f +0x30 U+0030 +0x31 U+0031 +0x32 U+0032 +0x33 U+0033 +0x34 U+0034 +0x35 U+0035 +0x36 U+0036 +0x37 U+0037 +0x38 U+0038 +0x39 U+0039 +0x3a U+003a +0x3b U+003b +0x3c U+003c +0x3d U+003d +0x3e U+003e +0x3f U+003f +0x40 U+0040 +0x41 U+0041 +0x42 U+0042 +0x43 U+0043 +0x44 U+0044 +0x45 U+0045 +0x46 U+0046 +0x47 U+0047 +0x48 U+0048 +0x49 U+0049 +0x4a U+004a +0x4b U+004b +0x4c U+004c +0x4d U+004d +0x4e U+004e +0x4f U+004f +0x50 U+0050 +0x51 U+0051 +0x52 U+0052 +0x53 U+0053 +0x54 U+0054 +0x55 U+0055 +0x56 U+0056 +0x57 U+0057 +0x58 U+0058 +0x59 U+0059 +0x5a U+005a +0x5b U+005b +0x5c U+005c +0x5d U+005d +0x5e U+005e +0x5f U+005f +0x60 U+0060 +0x61 U+0061 +0x62 U+0062 +0x63 U+0063 +0x64 U+0064 +0x65 U+0065 +0x66 U+0066 +0x67 U+0067 +0x68 U+0068 +0x69 U+0069 +0x6a U+006a +0x6b U+006b +0x6c U+006c +0x6d U+006d +0x6e U+006e +0x6f U+006f +0x70 U+0070 +0x71 U+0071 +0x72 U+0072 +0x73 U+0073 +0x74 U+0074 +0x75 U+0075 +0x76 U+0076 +0x77 U+0077 +0x78 U+0078 +0x79 U+0079 +0x7a U+007a +0x7b U+007b +0x7c U+007c +0x7d U+007d +0x7e U+007e +0x7f U+007f +0x80 U+20ac +0x81 U+fffd +0x82 U+201a +0x83 U+0192 +0x84 U+201e +0x85 U+2026 +0x86 U+2020 +0x87 U+2021 +0x88 U+02c6 +0x89 U+2030 +0x8a U+0160 +0x8b U+2039 +0x8c U+0152 +0x8d U+fffd +0x8e U+017d +0x8f U+fffd +0x90 U+fffd +0x91 U+2018 +0x92 U+2019 +0x93 U+201c +0x94 U+201d +0x95 U+2022 +0x96 U+2013 +0x97 U+2014 +0x98 U+02dc +0x99 U+2122 +0x9a U+0161 +0x9b U+203a +0x9c U+0153 +0x9d U+fffd +0x9e U+017e +0x9f U+0178 +0xa0 U+00a0 +0xa1 U+00a1 +0xa2 U+00a2 +0xa3 U+00a3 +0xa4 U+00a4 +0xa5 U+00a5 +0xa6 U+00a6 +0xa7 U+00a7 +0xa8 U+00a8 +0xa9 U+00a9 +0xaa U+00aa +0xab U+00ab +0xac U+00ac +0xad U+00ad +0xae U+00ae +0xaf U+00af +0xb0 U+00b0 +0xb1 U+00b1 +0xb2 U+00b2 +0xb3 U+00b3 +0xb4 U+00b4 +0xb5 U+00b5 +0xb6 U+00b6 +0xb7 U+00b7 +0xb8 U+00b8 +0xb9 U+00b9 +0xba U+00ba +0xbb U+00bb +0xbc U+00bc +0xbd U+00bd +0xbe U+00be +0xbf U+00bf +0xc0 U+00c0 +0xc1 U+00c1 +0xc2 U+00c2 +0xc3 U+00c3 +0xc4 U+00c4 +0xc5 U+00c5 +0xc6 U+00c6 +0xc7 U+00c7 +0xc8 U+00c8 +0xc9 U+00c9 +0xca U+00ca +0xcb U+00cb +0xcc U+00cc +0xcd U+00cd +0xce U+00ce +0xcf U+00cf +0xd0 U+00d0 +0xd1 U+00d1 +0xd2 U+00d2 +0xd3 U+00d3 +0xd4 U+00d4 +0xd5 U+00d5 +0xd6 U+00d6 +0xd7 U+00d7 +0xd8 U+00d8 +0xd9 U+00d9 +0xda U+00da +0xdb U+00db +0xdc U+00dc +0xdd U+00dd +0xde U+00de +0xdf U+00df +0xe0 U+00e0 +0xe1 U+00e1 +0xe2 U+00e2 +0xe3 U+00e3 +0xe4 U+00e4 +0xe5 U+00e5 +0xe6 U+00e6 +0xe7 U+00e7 +0xe8 U+00e8 +0xe9 U+00e9 +0xea U+00ea +0xeb U+00eb +0xec U+00ec +0xed U+00ed +0xee U+00ee +0xef U+00ef +0xf0 U+00f0 +0xf1 U+00f1 +0xf2 U+00f2 +0xf3 U+00f3 +0xf4 U+00f4 +0xf5 U+00f5 +0xf6 U+00f6 +0xf7 U+00f7 +0xf8 U+00f8 +0xf9 U+00f9 +0xfa U+00fa +0xfb U+00fb +0xfc U+00fc +0xfd U+00fd +0xfe U+00fe +0xff U+00ff diff --git a/jdk/make/tools/CharsetMapping/MS1253.map b/jdk/make/tools/CharsetMapping/MS1253.map new file mode 100644 index 00000000000..714e5cd8a9e --- /dev/null +++ b/jdk/make/tools/CharsetMapping/MS1253.map @@ -0,0 +1,257 @@ +#Generated from MS1253.java +0x00 U+0000 +0x01 U+0001 +0x02 U+0002 +0x03 U+0003 +0x04 U+0004 +0x05 U+0005 +0x06 U+0006 +0x07 U+0007 +0x08 U+0008 +0x09 U+0009 +0x0a U+000a +0x0b U+000b +0x0c U+000c +0x0d U+000d +0x0e U+000e +0x0f U+000f +0x10 U+0010 +0x11 U+0011 +0x12 U+0012 +0x13 U+0013 +0x14 U+0014 +0x15 U+0015 +0x16 U+0016 +0x17 U+0017 +0x18 U+0018 +0x19 U+0019 +0x1a U+001a +0x1b U+001b +0x1c U+001c +0x1d U+001d +0x1e U+001e +0x1f U+001f +0x20 U+0020 +0x21 U+0021 +0x22 U+0022 +0x23 U+0023 +0x24 U+0024 +0x25 U+0025 +0x26 U+0026 +0x27 U+0027 +0x28 U+0028 +0x29 U+0029 +0x2a U+002a +0x2b U+002b +0x2c U+002c +0x2d U+002d +0x2e U+002e +0x2f U+002f +0x30 U+0030 +0x31 U+0031 +0x32 U+0032 +0x33 U+0033 +0x34 U+0034 +0x35 U+0035 +0x36 U+0036 +0x37 U+0037 +0x38 U+0038 +0x39 U+0039 +0x3a U+003a +0x3b U+003b +0x3c U+003c +0x3d U+003d +0x3e U+003e +0x3f U+003f +0x40 U+0040 +0x41 U+0041 +0x42 U+0042 +0x43 U+0043 +0x44 U+0044 +0x45 U+0045 +0x46 U+0046 +0x47 U+0047 +0x48 U+0048 +0x49 U+0049 +0x4a U+004a +0x4b U+004b +0x4c U+004c +0x4d U+004d +0x4e U+004e +0x4f U+004f +0x50 U+0050 +0x51 U+0051 +0x52 U+0052 +0x53 U+0053 +0x54 U+0054 +0x55 U+0055 +0x56 U+0056 +0x57 U+0057 +0x58 U+0058 +0x59 U+0059 +0x5a U+005a +0x5b U+005b +0x5c U+005c +0x5d U+005d +0x5e U+005e +0x5f U+005f +0x60 U+0060 +0x61 U+0061 +0x62 U+0062 +0x63 U+0063 +0x64 U+0064 +0x65 U+0065 +0x66 U+0066 +0x67 U+0067 +0x68 U+0068 +0x69 U+0069 +0x6a U+006a +0x6b U+006b +0x6c U+006c +0x6d U+006d +0x6e U+006e +0x6f U+006f +0x70 U+0070 +0x71 U+0071 +0x72 U+0072 +0x73 U+0073 +0x74 U+0074 +0x75 U+0075 +0x76 U+0076 +0x77 U+0077 +0x78 U+0078 +0x79 U+0079 +0x7a U+007a +0x7b U+007b +0x7c U+007c +0x7d U+007d +0x7e U+007e +0x7f U+007f +0x80 U+20ac +0x81 U+fffd +0x82 U+201a +0x83 U+0192 +0x84 U+201e +0x85 U+2026 +0x86 U+2020 +0x87 U+2021 +0x88 U+fffd +0x89 U+2030 +0x8a U+fffd +0x8b U+2039 +0x8c U+fffd +0x8d U+fffd +0x8e U+fffd +0x8f U+fffd +0x90 U+fffd +0x91 U+2018 +0x92 U+2019 +0x93 U+201c +0x94 U+201d +0x95 U+2022 +0x96 U+2013 +0x97 U+2014 +0x98 U+fffd +0x99 U+2122 +0x9a U+fffd +0x9b U+203a +0x9c U+fffd +0x9d U+fffd +0x9e U+fffd +0x9f U+fffd +0xa0 U+00a0 +0xa1 U+0385 +0xa2 U+0386 +0xa3 U+00a3 +0xa4 U+00a4 +0xa5 U+00a5 +0xa6 U+00a6 +0xa7 U+00a7 +0xa8 U+00a8 +0xa9 U+00a9 +0xaa U+fffd +0xab U+00ab +0xac U+00ac +0xad U+00ad +0xae U+00ae +0xaf U+2015 +0xb0 U+00b0 +0xb1 U+00b1 +0xb2 U+00b2 +0xb3 U+00b3 +0xb4 U+0384 +0xb5 U+00b5 +0xb6 U+00b6 +0xb7 U+00b7 +0xb8 U+0388 +0xb9 U+0389 +0xba U+038a +0xbb U+00bb +0xbc U+038c +0xbd U+00bd +0xbe U+038e +0xbf U+038f +0xc0 U+0390 +0xc1 U+0391 +0xc2 U+0392 +0xc3 U+0393 +0xc4 U+0394 +0xc5 U+0395 +0xc6 U+0396 +0xc7 U+0397 +0xc8 U+0398 +0xc9 U+0399 +0xca U+039a +0xcb U+039b +0xcc U+039c +0xcd U+039d +0xce U+039e +0xcf U+039f +0xd0 U+03a0 +0xd1 U+03a1 +0xd2 U+fffd +0xd3 U+03a3 +0xd4 U+03a4 +0xd5 U+03a5 +0xd6 U+03a6 +0xd7 U+03a7 +0xd8 U+03a8 +0xd9 U+03a9 +0xda U+03aa +0xdb U+03ab +0xdc U+03ac +0xdd U+03ad +0xde U+03ae +0xdf U+03af +0xe0 U+03b0 +0xe1 U+03b1 +0xe2 U+03b2 +0xe3 U+03b3 +0xe4 U+03b4 +0xe5 U+03b5 +0xe6 U+03b6 +0xe7 U+03b7 +0xe8 U+03b8 +0xe9 U+03b9 +0xea U+03ba +0xeb U+03bb +0xec U+03bc +0xed U+03bd +0xee U+03be +0xef U+03bf +0xf0 U+03c0 +0xf1 U+03c1 +0xf2 U+03c2 +0xf3 U+03c3 +0xf4 U+03c4 +0xf5 U+03c5 +0xf6 U+03c6 +0xf7 U+03c7 +0xf8 U+03c8 +0xf9 U+03c9 +0xfa U+03ca +0xfb U+03cb +0xfc U+03cc +0xfd U+03cd +0xfe U+03ce +0xff U+fffd diff --git a/jdk/make/tools/CharsetMapping/MS1254.map b/jdk/make/tools/CharsetMapping/MS1254.map new file mode 100644 index 00000000000..d28277579b3 --- /dev/null +++ b/jdk/make/tools/CharsetMapping/MS1254.map @@ -0,0 +1,257 @@ +#Generated from MS1254.java +0x00 U+0000 +0x01 U+0001 +0x02 U+0002 +0x03 U+0003 +0x04 U+0004 +0x05 U+0005 +0x06 U+0006 +0x07 U+0007 +0x08 U+0008 +0x09 U+0009 +0x0a U+000a +0x0b U+000b +0x0c U+000c +0x0d U+000d +0x0e U+000e +0x0f U+000f +0x10 U+0010 +0x11 U+0011 +0x12 U+0012 +0x13 U+0013 +0x14 U+0014 +0x15 U+0015 +0x16 U+0016 +0x17 U+0017 +0x18 U+0018 +0x19 U+0019 +0x1a U+001a +0x1b U+001b +0x1c U+001c +0x1d U+001d +0x1e U+001e +0x1f U+001f +0x20 U+0020 +0x21 U+0021 +0x22 U+0022 +0x23 U+0023 +0x24 U+0024 +0x25 U+0025 +0x26 U+0026 +0x27 U+0027 +0x28 U+0028 +0x29 U+0029 +0x2a U+002a +0x2b U+002b +0x2c U+002c +0x2d U+002d +0x2e U+002e +0x2f U+002f +0x30 U+0030 +0x31 U+0031 +0x32 U+0032 +0x33 U+0033 +0x34 U+0034 +0x35 U+0035 +0x36 U+0036 +0x37 U+0037 +0x38 U+0038 +0x39 U+0039 +0x3a U+003a +0x3b U+003b +0x3c U+003c +0x3d U+003d +0x3e U+003e +0x3f U+003f +0x40 U+0040 +0x41 U+0041 +0x42 U+0042 +0x43 U+0043 +0x44 U+0044 +0x45 U+0045 +0x46 U+0046 +0x47 U+0047 +0x48 U+0048 +0x49 U+0049 +0x4a U+004a +0x4b U+004b +0x4c U+004c +0x4d U+004d +0x4e U+004e +0x4f U+004f +0x50 U+0050 +0x51 U+0051 +0x52 U+0052 +0x53 U+0053 +0x54 U+0054 +0x55 U+0055 +0x56 U+0056 +0x57 U+0057 +0x58 U+0058 +0x59 U+0059 +0x5a U+005a +0x5b U+005b +0x5c U+005c +0x5d U+005d +0x5e U+005e +0x5f U+005f +0x60 U+0060 +0x61 U+0061 +0x62 U+0062 +0x63 U+0063 +0x64 U+0064 +0x65 U+0065 +0x66 U+0066 +0x67 U+0067 +0x68 U+0068 +0x69 U+0069 +0x6a U+006a +0x6b U+006b +0x6c U+006c +0x6d U+006d +0x6e U+006e +0x6f U+006f +0x70 U+0070 +0x71 U+0071 +0x72 U+0072 +0x73 U+0073 +0x74 U+0074 +0x75 U+0075 +0x76 U+0076 +0x77 U+0077 +0x78 U+0078 +0x79 U+0079 +0x7a U+007a +0x7b U+007b +0x7c U+007c +0x7d U+007d +0x7e U+007e +0x7f U+007f +0x80 U+20ac +0x81 U+fffd +0x82 U+201a +0x83 U+0192 +0x84 U+201e +0x85 U+2026 +0x86 U+2020 +0x87 U+2021 +0x88 U+02c6 +0x89 U+2030 +0x8a U+0160 +0x8b U+2039 +0x8c U+0152 +0x8d U+fffd +0x8e U+fffd +0x8f U+fffd +0x90 U+fffd +0x91 U+2018 +0x92 U+2019 +0x93 U+201c +0x94 U+201d +0x95 U+2022 +0x96 U+2013 +0x97 U+2014 +0x98 U+02dc +0x99 U+2122 +0x9a U+0161 +0x9b U+203a +0x9c U+0153 +0x9d U+fffd +0x9e U+fffd +0x9f U+0178 +0xa0 U+00a0 +0xa1 U+00a1 +0xa2 U+00a2 +0xa3 U+00a3 +0xa4 U+00a4 +0xa5 U+00a5 +0xa6 U+00a6 +0xa7 U+00a7 +0xa8 U+00a8 +0xa9 U+00a9 +0xaa U+00aa +0xab U+00ab +0xac U+00ac +0xad U+00ad +0xae U+00ae +0xaf U+00af +0xb0 U+00b0 +0xb1 U+00b1 +0xb2 U+00b2 +0xb3 U+00b3 +0xb4 U+00b4 +0xb5 U+00b5 +0xb6 U+00b6 +0xb7 U+00b7 +0xb8 U+00b8 +0xb9 U+00b9 +0xba U+00ba +0xbb U+00bb +0xbc U+00bc +0xbd U+00bd +0xbe U+00be +0xbf U+00bf +0xc0 U+00c0 +0xc1 U+00c1 +0xc2 U+00c2 +0xc3 U+00c3 +0xc4 U+00c4 +0xc5 U+00c5 +0xc6 U+00c6 +0xc7 U+00c7 +0xc8 U+00c8 +0xc9 U+00c9 +0xca U+00ca +0xcb U+00cb +0xcc U+00cc +0xcd U+00cd +0xce U+00ce +0xcf U+00cf +0xd0 U+011e +0xd1 U+00d1 +0xd2 U+00d2 +0xd3 U+00d3 +0xd4 U+00d4 +0xd5 U+00d5 +0xd6 U+00d6 +0xd7 U+00d7 +0xd8 U+00d8 +0xd9 U+00d9 +0xda U+00da +0xdb U+00db +0xdc U+00dc +0xdd U+0130 +0xde U+015e +0xdf U+00df +0xe0 U+00e0 +0xe1 U+00e1 +0xe2 U+00e2 +0xe3 U+00e3 +0xe4 U+00e4 +0xe5 U+00e5 +0xe6 U+00e6 +0xe7 U+00e7 +0xe8 U+00e8 +0xe9 U+00e9 +0xea U+00ea +0xeb U+00eb +0xec U+00ec +0xed U+00ed +0xee U+00ee +0xef U+00ef +0xf0 U+011f +0xf1 U+00f1 +0xf2 U+00f2 +0xf3 U+00f3 +0xf4 U+00f4 +0xf5 U+00f5 +0xf6 U+00f6 +0xf7 U+00f7 +0xf8 U+00f8 +0xf9 U+00f9 +0xfa U+00fa +0xfb U+00fb +0xfc U+00fc +0xfd U+0131 +0xfe U+015f +0xff U+00ff diff --git a/jdk/make/tools/CharsetMapping/MS1255.map b/jdk/make/tools/CharsetMapping/MS1255.map new file mode 100644 index 00000000000..e2d2d3531a0 --- /dev/null +++ b/jdk/make/tools/CharsetMapping/MS1255.map @@ -0,0 +1,257 @@ +#Generated from MS1255.java +0x00 U+0000 +0x01 U+0001 +0x02 U+0002 +0x03 U+0003 +0x04 U+0004 +0x05 U+0005 +0x06 U+0006 +0x07 U+0007 +0x08 U+0008 +0x09 U+0009 +0x0a U+000a +0x0b U+000b +0x0c U+000c +0x0d U+000d +0x0e U+000e +0x0f U+000f +0x10 U+0010 +0x11 U+0011 +0x12 U+0012 +0x13 U+0013 +0x14 U+0014 +0x15 U+0015 +0x16 U+0016 +0x17 U+0017 +0x18 U+0018 +0x19 U+0019 +0x1a U+001a +0x1b U+001b +0x1c U+001c +0x1d U+001d +0x1e U+001e +0x1f U+001f +0x20 U+0020 +0x21 U+0021 +0x22 U+0022 +0x23 U+0023 +0x24 U+0024 +0x25 U+0025 +0x26 U+0026 +0x27 U+0027 +0x28 U+0028 +0x29 U+0029 +0x2a U+002a +0x2b U+002b +0x2c U+002c +0x2d U+002d +0x2e U+002e +0x2f U+002f +0x30 U+0030 +0x31 U+0031 +0x32 U+0032 +0x33 U+0033 +0x34 U+0034 +0x35 U+0035 +0x36 U+0036 +0x37 U+0037 +0x38 U+0038 +0x39 U+0039 +0x3a U+003a +0x3b U+003b +0x3c U+003c +0x3d U+003d +0x3e U+003e +0x3f U+003f +0x40 U+0040 +0x41 U+0041 +0x42 U+0042 +0x43 U+0043 +0x44 U+0044 +0x45 U+0045 +0x46 U+0046 +0x47 U+0047 +0x48 U+0048 +0x49 U+0049 +0x4a U+004a +0x4b U+004b +0x4c U+004c +0x4d U+004d +0x4e U+004e +0x4f U+004f +0x50 U+0050 +0x51 U+0051 +0x52 U+0052 +0x53 U+0053 +0x54 U+0054 +0x55 U+0055 +0x56 U+0056 +0x57 U+0057 +0x58 U+0058 +0x59 U+0059 +0x5a U+005a +0x5b U+005b +0x5c U+005c +0x5d U+005d +0x5e U+005e +0x5f U+005f +0x60 U+0060 +0x61 U+0061 +0x62 U+0062 +0x63 U+0063 +0x64 U+0064 +0x65 U+0065 +0x66 U+0066 +0x67 U+0067 +0x68 U+0068 +0x69 U+0069 +0x6a U+006a +0x6b U+006b +0x6c U+006c +0x6d U+006d +0x6e U+006e +0x6f U+006f +0x70 U+0070 +0x71 U+0071 +0x72 U+0072 +0x73 U+0073 +0x74 U+0074 +0x75 U+0075 +0x76 U+0076 +0x77 U+0077 +0x78 U+0078 +0x79 U+0079 +0x7a U+007a +0x7b U+007b +0x7c U+007c +0x7d U+007d +0x7e U+007e +0x7f U+007f +0x80 U+20ac +0x81 U+fffd +0x82 U+201a +0x83 U+0192 +0x84 U+201e +0x85 U+2026 +0x86 U+2020 +0x87 U+2021 +0x88 U+02c6 +0x89 U+2030 +0x8a U+fffd +0x8b U+2039 +0x8c U+fffd +0x8d U+fffd +0x8e U+fffd +0x8f U+fffd +0x90 U+fffd +0x91 U+2018 +0x92 U+2019 +0x93 U+201c +0x94 U+201d +0x95 U+2022 +0x96 U+2013 +0x97 U+2014 +0x98 U+02dc +0x99 U+2122 +0x9a U+fffd +0x9b U+203a +0x9c U+fffd +0x9d U+fffd +0x9e U+fffd +0x9f U+fffd +0xa0 U+00a0 +0xa1 U+00a1 +0xa2 U+00a2 +0xa3 U+00a3 +0xa4 U+20aa +0xa5 U+00a5 +0xa6 U+00a6 +0xa7 U+00a7 +0xa8 U+00a8 +0xa9 U+00a9 +0xaa U+00d7 +0xab U+00ab +0xac U+00ac +0xad U+00ad +0xae U+00ae +0xaf U+00af +0xb0 U+00b0 +0xb1 U+00b1 +0xb2 U+00b2 +0xb3 U+00b3 +0xb4 U+00b4 +0xb5 U+00b5 +0xb6 U+00b6 +0xb7 U+00b7 +0xb8 U+00b8 +0xb9 U+00b9 +0xba U+00f7 +0xbb U+00bb +0xbc U+00bc +0xbd U+00bd +0xbe U+00be +0xbf U+00bf +0xc0 U+05b0 +0xc1 U+05b1 +0xc2 U+05b2 +0xc3 U+05b3 +0xc4 U+05b4 +0xc5 U+05b5 +0xc6 U+05b6 +0xc7 U+05b7 +0xc8 U+05b8 +0xc9 U+05b9 +0xca U+fffd +0xcb U+05bb +0xcc U+05bc +0xcd U+05bd +0xce U+05be +0xcf U+05bf +0xd0 U+05c0 +0xd1 U+05c1 +0xd2 U+05c2 +0xd3 U+05c3 +0xd4 U+05f0 +0xd5 U+05f1 +0xd6 U+05f2 +0xd7 U+05f3 +0xd8 U+05f4 +0xd9 U+fffd +0xda U+fffd +0xdb U+fffd +0xdc U+fffd +0xdd U+fffd +0xde U+fffd +0xdf U+fffd +0xe0 U+05d0 +0xe1 U+05d1 +0xe2 U+05d2 +0xe3 U+05d3 +0xe4 U+05d4 +0xe5 U+05d5 +0xe6 U+05d6 +0xe7 U+05d7 +0xe8 U+05d8 +0xe9 U+05d9 +0xea U+05da +0xeb U+05db +0xec U+05dc +0xed U+05dd +0xee U+05de +0xef U+05df +0xf0 U+05e0 +0xf1 U+05e1 +0xf2 U+05e2 +0xf3 U+05e3 +0xf4 U+05e4 +0xf5 U+05e5 +0xf6 U+05e6 +0xf7 U+05e7 +0xf8 U+05e8 +0xf9 U+05e9 +0xfa U+05ea +0xfb U+fffd +0xfc U+fffd +0xfd U+200e +0xfe U+200f +0xff U+fffd diff --git a/jdk/make/tools/CharsetMapping/MS1256.map b/jdk/make/tools/CharsetMapping/MS1256.map new file mode 100644 index 00000000000..6e0142c4d18 --- /dev/null +++ b/jdk/make/tools/CharsetMapping/MS1256.map @@ -0,0 +1,257 @@ +#Generated from MS1256.java +0x00 U+0000 +0x01 U+0001 +0x02 U+0002 +0x03 U+0003 +0x04 U+0004 +0x05 U+0005 +0x06 U+0006 +0x07 U+0007 +0x08 U+0008 +0x09 U+0009 +0x0a U+000a +0x0b U+000b +0x0c U+000c +0x0d U+000d +0x0e U+000e +0x0f U+000f +0x10 U+0010 +0x11 U+0011 +0x12 U+0012 +0x13 U+0013 +0x14 U+0014 +0x15 U+0015 +0x16 U+0016 +0x17 U+0017 +0x18 U+0018 +0x19 U+0019 +0x1a U+001a +0x1b U+001b +0x1c U+001c +0x1d U+001d +0x1e U+001e +0x1f U+001f +0x20 U+0020 +0x21 U+0021 +0x22 U+0022 +0x23 U+0023 +0x24 U+0024 +0x25 U+0025 +0x26 U+0026 +0x27 U+0027 +0x28 U+0028 +0x29 U+0029 +0x2a U+002a +0x2b U+002b +0x2c U+002c +0x2d U+002d +0x2e U+002e +0x2f U+002f +0x30 U+0030 +0x31 U+0031 +0x32 U+0032 +0x33 U+0033 +0x34 U+0034 +0x35 U+0035 +0x36 U+0036 +0x37 U+0037 +0x38 U+0038 +0x39 U+0039 +0x3a U+003a +0x3b U+003b +0x3c U+003c +0x3d U+003d +0x3e U+003e +0x3f U+003f +0x40 U+0040 +0x41 U+0041 +0x42 U+0042 +0x43 U+0043 +0x44 U+0044 +0x45 U+0045 +0x46 U+0046 +0x47 U+0047 +0x48 U+0048 +0x49 U+0049 +0x4a U+004a +0x4b U+004b +0x4c U+004c +0x4d U+004d +0x4e U+004e +0x4f U+004f +0x50 U+0050 +0x51 U+0051 +0x52 U+0052 +0x53 U+0053 +0x54 U+0054 +0x55 U+0055 +0x56 U+0056 +0x57 U+0057 +0x58 U+0058 +0x59 U+0059 +0x5a U+005a +0x5b U+005b +0x5c U+005c +0x5d U+005d +0x5e U+005e +0x5f U+005f +0x60 U+0060 +0x61 U+0061 +0x62 U+0062 +0x63 U+0063 +0x64 U+0064 +0x65 U+0065 +0x66 U+0066 +0x67 U+0067 +0x68 U+0068 +0x69 U+0069 +0x6a U+006a +0x6b U+006b +0x6c U+006c +0x6d U+006d +0x6e U+006e +0x6f U+006f +0x70 U+0070 +0x71 U+0071 +0x72 U+0072 +0x73 U+0073 +0x74 U+0074 +0x75 U+0075 +0x76 U+0076 +0x77 U+0077 +0x78 U+0078 +0x79 U+0079 +0x7a U+007a +0x7b U+007b +0x7c U+007c +0x7d U+007d +0x7e U+007e +0x7f U+007f +0x80 U+20ac +0x81 U+067e +0x82 U+201a +0x83 U+0192 +0x84 U+201e +0x85 U+2026 +0x86 U+2020 +0x87 U+2021 +0x88 U+02c6 +0x89 U+2030 +0x8a U+0679 +0x8b U+2039 +0x8c U+0152 +0x8d U+0686 +0x8e U+0698 +0x8f U+0688 +0x90 U+06af +0x91 U+2018 +0x92 U+2019 +0x93 U+201c +0x94 U+201d +0x95 U+2022 +0x96 U+2013 +0x97 U+2014 +0x98 U+06a9 +0x99 U+2122 +0x9a U+0691 +0x9b U+203a +0x9c U+0153 +0x9d U+200c +0x9e U+200d +0x9f U+06ba +0xa0 U+00a0 +0xa1 U+060c +0xa2 U+00a2 +0xa3 U+00a3 +0xa4 U+00a4 +0xa5 U+00a5 +0xa6 U+00a6 +0xa7 U+00a7 +0xa8 U+00a8 +0xa9 U+00a9 +0xaa U+06be +0xab U+00ab +0xac U+00ac +0xad U+00ad +0xae U+00ae +0xaf U+00af +0xb0 U+00b0 +0xb1 U+00b1 +0xb2 U+00b2 +0xb3 U+00b3 +0xb4 U+00b4 +0xb5 U+00b5 +0xb6 U+00b6 +0xb7 U+00b7 +0xb8 U+00b8 +0xb9 U+00b9 +0xba U+061b +0xbb U+00bb +0xbc U+00bc +0xbd U+00bd +0xbe U+00be +0xbf U+061f +0xc0 U+06c1 +0xc1 U+0621 +0xc2 U+0622 +0xc3 U+0623 +0xc4 U+0624 +0xc5 U+0625 +0xc6 U+0626 +0xc7 U+0627 +0xc8 U+0628 +0xc9 U+0629 +0xca U+062a +0xcb U+062b +0xcc U+062c +0xcd U+062d +0xce U+062e +0xcf U+062f +0xd0 U+0630 +0xd1 U+0631 +0xd2 U+0632 +0xd3 U+0633 +0xd4 U+0634 +0xd5 U+0635 +0xd6 U+0636 +0xd7 U+00d7 +0xd8 U+0637 +0xd9 U+0638 +0xda U+0639 +0xdb U+063a +0xdc U+0640 +0xdd U+0641 +0xde U+0642 +0xdf U+0643 +0xe0 U+00e0 +0xe1 U+0644 +0xe2 U+00e2 +0xe3 U+0645 +0xe4 U+0646 +0xe5 U+0647 +0xe6 U+0648 +0xe7 U+00e7 +0xe8 U+00e8 +0xe9 U+00e9 +0xea U+00ea +0xeb U+00eb +0xec U+0649 +0xed U+064a +0xee U+00ee +0xef U+00ef +0xf0 U+064b +0xf1 U+064c +0xf2 U+064d +0xf3 U+064e +0xf4 U+00f4 +0xf5 U+064f +0xf6 U+0650 +0xf7 U+00f7 +0xf8 U+0651 +0xf9 U+00f9 +0xfa U+0652 +0xfb U+00fb +0xfc U+00fc +0xfd U+200e +0xfe U+200f +0xff U+06d2 diff --git a/jdk/make/tools/CharsetMapping/MS1257.map b/jdk/make/tools/CharsetMapping/MS1257.map new file mode 100644 index 00000000000..9315f2450f4 --- /dev/null +++ b/jdk/make/tools/CharsetMapping/MS1257.map @@ -0,0 +1,257 @@ +#Generated from MS1257.java +0x00 U+0000 +0x01 U+0001 +0x02 U+0002 +0x03 U+0003 +0x04 U+0004 +0x05 U+0005 +0x06 U+0006 +0x07 U+0007 +0x08 U+0008 +0x09 U+0009 +0x0a U+000a +0x0b U+000b +0x0c U+000c +0x0d U+000d +0x0e U+000e +0x0f U+000f +0x10 U+0010 +0x11 U+0011 +0x12 U+0012 +0x13 U+0013 +0x14 U+0014 +0x15 U+0015 +0x16 U+0016 +0x17 U+0017 +0x18 U+0018 +0x19 U+0019 +0x1a U+001a +0x1b U+001b +0x1c U+001c +0x1d U+001d +0x1e U+001e +0x1f U+001f +0x20 U+0020 +0x21 U+0021 +0x22 U+0022 +0x23 U+0023 +0x24 U+0024 +0x25 U+0025 +0x26 U+0026 +0x27 U+0027 +0x28 U+0028 +0x29 U+0029 +0x2a U+002a +0x2b U+002b +0x2c U+002c +0x2d U+002d +0x2e U+002e +0x2f U+002f +0x30 U+0030 +0x31 U+0031 +0x32 U+0032 +0x33 U+0033 +0x34 U+0034 +0x35 U+0035 +0x36 U+0036 +0x37 U+0037 +0x38 U+0038 +0x39 U+0039 +0x3a U+003a +0x3b U+003b +0x3c U+003c +0x3d U+003d +0x3e U+003e +0x3f U+003f +0x40 U+0040 +0x41 U+0041 +0x42 U+0042 +0x43 U+0043 +0x44 U+0044 +0x45 U+0045 +0x46 U+0046 +0x47 U+0047 +0x48 U+0048 +0x49 U+0049 +0x4a U+004a +0x4b U+004b +0x4c U+004c +0x4d U+004d +0x4e U+004e +0x4f U+004f +0x50 U+0050 +0x51 U+0051 +0x52 U+0052 +0x53 U+0053 +0x54 U+0054 +0x55 U+0055 +0x56 U+0056 +0x57 U+0057 +0x58 U+0058 +0x59 U+0059 +0x5a U+005a +0x5b U+005b +0x5c U+005c +0x5d U+005d +0x5e U+005e +0x5f U+005f +0x60 U+0060 +0x61 U+0061 +0x62 U+0062 +0x63 U+0063 +0x64 U+0064 +0x65 U+0065 +0x66 U+0066 +0x67 U+0067 +0x68 U+0068 +0x69 U+0069 +0x6a U+006a +0x6b U+006b +0x6c U+006c +0x6d U+006d +0x6e U+006e +0x6f U+006f +0x70 U+0070 +0x71 U+0071 +0x72 U+0072 +0x73 U+0073 +0x74 U+0074 +0x75 U+0075 +0x76 U+0076 +0x77 U+0077 +0x78 U+0078 +0x79 U+0079 +0x7a U+007a +0x7b U+007b +0x7c U+007c +0x7d U+007d +0x7e U+007e +0x7f U+007f +0x80 U+20ac +0x81 U+fffd +0x82 U+201a +0x83 U+fffd +0x84 U+201e +0x85 U+2026 +0x86 U+2020 +0x87 U+2021 +0x88 U+fffd +0x89 U+2030 +0x8a U+fffd +0x8b U+2039 +0x8c U+fffd +0x8d U+00a8 +0x8e U+02c7 +0x8f U+00b8 +0x90 U+fffd +0x91 U+2018 +0x92 U+2019 +0x93 U+201c +0x94 U+201d +0x95 U+2022 +0x96 U+2013 +0x97 U+2014 +0x98 U+fffd +0x99 U+2122 +0x9a U+fffd +0x9b U+203a +0x9c U+fffd +0x9d U+00af +0x9e U+02db +0x9f U+fffd +0xa0 U+00a0 +0xa1 U+fffd +0xa2 U+00a2 +0xa3 U+00a3 +0xa4 U+00a4 +0xa5 U+fffd +0xa6 U+00a6 +0xa7 U+00a7 +0xa8 U+00d8 +0xa9 U+00a9 +0xaa U+0156 +0xab U+00ab +0xac U+00ac +0xad U+00ad +0xae U+00ae +0xaf U+00c6 +0xb0 U+00b0 +0xb1 U+00b1 +0xb2 U+00b2 +0xb3 U+00b3 +0xb4 U+00b4 +0xb5 U+00b5 +0xb6 U+00b6 +0xb7 U+00b7 +0xb8 U+00f8 +0xb9 U+00b9 +0xba U+0157 +0xbb U+00bb +0xbc U+00bc +0xbd U+00bd +0xbe U+00be +0xbf U+00e6 +0xc0 U+0104 +0xc1 U+012e +0xc2 U+0100 +0xc3 U+0106 +0xc4 U+00c4 +0xc5 U+00c5 +0xc6 U+0118 +0xc7 U+0112 +0xc8 U+010c +0xc9 U+00c9 +0xca U+0179 +0xcb U+0116 +0xcc U+0122 +0xcd U+0136 +0xce U+012a +0xcf U+013b +0xd0 U+0160 +0xd1 U+0143 +0xd2 U+0145 +0xd3 U+00d3 +0xd4 U+014c +0xd5 U+00d5 +0xd6 U+00d6 +0xd7 U+00d7 +0xd8 U+0172 +0xd9 U+0141 +0xda U+015a +0xdb U+016a +0xdc U+00dc +0xdd U+017b +0xde U+017d +0xdf U+00df +0xe0 U+0105 +0xe1 U+012f +0xe2 U+0101 +0xe3 U+0107 +0xe4 U+00e4 +0xe5 U+00e5 +0xe6 U+0119 +0xe7 U+0113 +0xe8 U+010d +0xe9 U+00e9 +0xea U+017a +0xeb U+0117 +0xec U+0123 +0xed U+0137 +0xee U+012b +0xef U+013c +0xf0 U+0161 +0xf1 U+0144 +0xf2 U+0146 +0xf3 U+00f3 +0xf4 U+014d +0xf5 U+00f5 +0xf6 U+00f6 +0xf7 U+00f7 +0xf8 U+0173 +0xf9 U+0142 +0xfa U+015b +0xfb U+016b +0xfc U+00fc +0xfd U+017c +0xfe U+017e +0xff U+02d9 diff --git a/jdk/make/tools/CharsetMapping/MS1258.map b/jdk/make/tools/CharsetMapping/MS1258.map new file mode 100644 index 00000000000..b557cedeaa1 --- /dev/null +++ b/jdk/make/tools/CharsetMapping/MS1258.map @@ -0,0 +1,257 @@ +#Generated from MS1258.java +0x00 U+0000 +0x01 U+0001 +0x02 U+0002 +0x03 U+0003 +0x04 U+0004 +0x05 U+0005 +0x06 U+0006 +0x07 U+0007 +0x08 U+0008 +0x09 U+0009 +0x0a U+000a +0x0b U+000b +0x0c U+000c +0x0d U+000d +0x0e U+000e +0x0f U+000f +0x10 U+0010 +0x11 U+0011 +0x12 U+0012 +0x13 U+0013 +0x14 U+0014 +0x15 U+0015 +0x16 U+0016 +0x17 U+0017 +0x18 U+0018 +0x19 U+0019 +0x1a U+001a +0x1b U+001b +0x1c U+001c +0x1d U+001d +0x1e U+001e +0x1f U+001f +0x20 U+0020 +0x21 U+0021 +0x22 U+0022 +0x23 U+0023 +0x24 U+0024 +0x25 U+0025 +0x26 U+0026 +0x27 U+0027 +0x28 U+0028 +0x29 U+0029 +0x2a U+002a +0x2b U+002b +0x2c U+002c +0x2d U+002d +0x2e U+002e +0x2f U+002f +0x30 U+0030 +0x31 U+0031 +0x32 U+0032 +0x33 U+0033 +0x34 U+0034 +0x35 U+0035 +0x36 U+0036 +0x37 U+0037 +0x38 U+0038 +0x39 U+0039 +0x3a U+003a +0x3b U+003b +0x3c U+003c +0x3d U+003d +0x3e U+003e +0x3f U+003f +0x40 U+0040 +0x41 U+0041 +0x42 U+0042 +0x43 U+0043 +0x44 U+0044 +0x45 U+0045 +0x46 U+0046 +0x47 U+0047 +0x48 U+0048 +0x49 U+0049 +0x4a U+004a +0x4b U+004b +0x4c U+004c +0x4d U+004d +0x4e U+004e +0x4f U+004f +0x50 U+0050 +0x51 U+0051 +0x52 U+0052 +0x53 U+0053 +0x54 U+0054 +0x55 U+0055 +0x56 U+0056 +0x57 U+0057 +0x58 U+0058 +0x59 U+0059 +0x5a U+005a +0x5b U+005b +0x5c U+005c +0x5d U+005d +0x5e U+005e +0x5f U+005f +0x60 U+0060 +0x61 U+0061 +0x62 U+0062 +0x63 U+0063 +0x64 U+0064 +0x65 U+0065 +0x66 U+0066 +0x67 U+0067 +0x68 U+0068 +0x69 U+0069 +0x6a U+006a +0x6b U+006b +0x6c U+006c +0x6d U+006d +0x6e U+006e +0x6f U+006f +0x70 U+0070 +0x71 U+0071 +0x72 U+0072 +0x73 U+0073 +0x74 U+0074 +0x75 U+0075 +0x76 U+0076 +0x77 U+0077 +0x78 U+0078 +0x79 U+0079 +0x7a U+007a +0x7b U+007b +0x7c U+007c +0x7d U+007d +0x7e U+007e +0x7f U+007f +0x80 U+20ac +0x81 U+fffd +0x82 U+201a +0x83 U+0192 +0x84 U+201e +0x85 U+2026 +0x86 U+2020 +0x87 U+2021 +0x88 U+02c6 +0x89 U+2030 +0x8a U+fffd +0x8b U+2039 +0x8c U+0152 +0x8d U+fffd +0x8e U+fffd +0x8f U+fffd +0x90 U+fffd +0x91 U+2018 +0x92 U+2019 +0x93 U+201c +0x94 U+201d +0x95 U+2022 +0x96 U+2013 +0x97 U+2014 +0x98 U+02dc +0x99 U+2122 +0x9a U+fffd +0x9b U+203a +0x9c U+0153 +0x9d U+fffd +0x9e U+fffd +0x9f U+0178 +0xa0 U+00a0 +0xa1 U+00a1 +0xa2 U+00a2 +0xa3 U+00a3 +0xa4 U+00a4 +0xa5 U+00a5 +0xa6 U+00a6 +0xa7 U+00a7 +0xa8 U+00a8 +0xa9 U+00a9 +0xaa U+00aa +0xab U+00ab +0xac U+00ac +0xad U+00ad +0xae U+00ae +0xaf U+00af +0xb0 U+00b0 +0xb1 U+00b1 +0xb2 U+00b2 +0xb3 U+00b3 +0xb4 U+00b4 +0xb5 U+00b5 +0xb6 U+00b6 +0xb7 U+00b7 +0xb8 U+00b8 +0xb9 U+00b9 +0xba U+00ba +0xbb U+00bb +0xbc U+00bc +0xbd U+00bd +0xbe U+00be +0xbf U+00bf +0xc0 U+00c0 +0xc1 U+00c1 +0xc2 U+00c2 +0xc3 U+0102 +0xc4 U+00c4 +0xc5 U+00c5 +0xc6 U+00c6 +0xc7 U+00c7 +0xc8 U+00c8 +0xc9 U+00c9 +0xca U+00ca +0xcb U+00cb +0xcc U+0300 +0xcd U+00cd +0xce U+00ce +0xcf U+00cf +0xd0 U+0110 +0xd1 U+00d1 +0xd2 U+0309 +0xd3 U+00d3 +0xd4 U+00d4 +0xd5 U+01a0 +0xd6 U+00d6 +0xd7 U+00d7 +0xd8 U+00d8 +0xd9 U+00d9 +0xda U+00da +0xdb U+00db +0xdc U+00dc +0xdd U+01af +0xde U+0303 +0xdf U+00df +0xe0 U+00e0 +0xe1 U+00e1 +0xe2 U+00e2 +0xe3 U+0103 +0xe4 U+00e4 +0xe5 U+00e5 +0xe6 U+00e6 +0xe7 U+00e7 +0xe8 U+00e8 +0xe9 U+00e9 +0xea U+00ea +0xeb U+00eb +0xec U+0301 +0xed U+00ed +0xee U+00ee +0xef U+00ef +0xf0 U+0111 +0xf1 U+00f1 +0xf2 U+0323 +0xf3 U+00f3 +0xf4 U+00f4 +0xf5 U+01a1 +0xf6 U+00f6 +0xf7 U+00f7 +0xf8 U+00f8 +0xf9 U+00f9 +0xfa U+00fa +0xfb U+00fb +0xfc U+00fc +0xfd U+01b0 +0xfe U+20ab +0xff U+00ff diff --git a/jdk/make/tools/CharsetMapping/MS874.map b/jdk/make/tools/CharsetMapping/MS874.map new file mode 100644 index 00000000000..2e59d0c0ab7 --- /dev/null +++ b/jdk/make/tools/CharsetMapping/MS874.map @@ -0,0 +1,257 @@ +#Generated from MS874.java +0x00 U+0000 +0x01 U+0001 +0x02 U+0002 +0x03 U+0003 +0x04 U+0004 +0x05 U+0005 +0x06 U+0006 +0x07 U+0007 +0x08 U+0008 +0x09 U+0009 +0x0a U+000a +0x0b U+000b +0x0c U+000c +0x0d U+000d +0x0e U+000e +0x0f U+000f +0x10 U+0010 +0x11 U+0011 +0x12 U+0012 +0x13 U+0013 +0x14 U+0014 +0x15 U+0015 +0x16 U+0016 +0x17 U+0017 +0x18 U+0018 +0x19 U+0019 +0x1a U+001a +0x1b U+001b +0x1c U+001c +0x1d U+001d +0x1e U+001e +0x1f U+001f +0x20 U+0020 +0x21 U+0021 +0x22 U+0022 +0x23 U+0023 +0x24 U+0024 +0x25 U+0025 +0x26 U+0026 +0x27 U+0027 +0x28 U+0028 +0x29 U+0029 +0x2a U+002a +0x2b U+002b +0x2c U+002c +0x2d U+002d +0x2e U+002e +0x2f U+002f +0x30 U+0030 +0x31 U+0031 +0x32 U+0032 +0x33 U+0033 +0x34 U+0034 +0x35 U+0035 +0x36 U+0036 +0x37 U+0037 +0x38 U+0038 +0x39 U+0039 +0x3a U+003a +0x3b U+003b +0x3c U+003c +0x3d U+003d +0x3e U+003e +0x3f U+003f +0x40 U+0040 +0x41 U+0041 +0x42 U+0042 +0x43 U+0043 +0x44 U+0044 +0x45 U+0045 +0x46 U+0046 +0x47 U+0047 +0x48 U+0048 +0x49 U+0049 +0x4a U+004a +0x4b U+004b +0x4c U+004c +0x4d U+004d +0x4e U+004e +0x4f U+004f +0x50 U+0050 +0x51 U+0051 +0x52 U+0052 +0x53 U+0053 +0x54 U+0054 +0x55 U+0055 +0x56 U+0056 +0x57 U+0057 +0x58 U+0058 +0x59 U+0059 +0x5a U+005a +0x5b U+005b +0x5c U+005c +0x5d U+005d +0x5e U+005e +0x5f U+005f +0x60 U+0060 +0x61 U+0061 +0x62 U+0062 +0x63 U+0063 +0x64 U+0064 +0x65 U+0065 +0x66 U+0066 +0x67 U+0067 +0x68 U+0068 +0x69 U+0069 +0x6a U+006a +0x6b U+006b +0x6c U+006c +0x6d U+006d +0x6e U+006e +0x6f U+006f +0x70 U+0070 +0x71 U+0071 +0x72 U+0072 +0x73 U+0073 +0x74 U+0074 +0x75 U+0075 +0x76 U+0076 +0x77 U+0077 +0x78 U+0078 +0x79 U+0079 +0x7a U+007a +0x7b U+007b +0x7c U+007c +0x7d U+007d +0x7e U+007e +0x7f U+007f +0x80 U+20ac +0x81 U+fffd +0x82 U+fffd +0x83 U+fffd +0x84 U+fffd +0x85 U+2026 +0x86 U+fffd +0x87 U+fffd +0x88 U+fffd +0x89 U+fffd +0x8a U+fffd +0x8b U+fffd +0x8c U+fffd +0x8d U+fffd +0x8e U+fffd +0x8f U+fffd +0x90 U+fffd +0x91 U+2018 +0x92 U+2019 +0x93 U+201c +0x94 U+201d +0x95 U+2022 +0x96 U+2013 +0x97 U+2014 +0x98 U+fffd +0x99 U+fffd +0x9a U+fffd +0x9b U+fffd +0x9c U+fffd +0x9d U+fffd +0x9e U+fffd +0x9f U+fffd +0xa0 U+00a0 +0xa1 U+0e01 +0xa2 U+0e02 +0xa3 U+0e03 +0xa4 U+0e04 +0xa5 U+0e05 +0xa6 U+0e06 +0xa7 U+0e07 +0xa8 U+0e08 +0xa9 U+0e09 +0xaa U+0e0a +0xab U+0e0b +0xac U+0e0c +0xad U+0e0d +0xae U+0e0e +0xaf U+0e0f +0xb0 U+0e10 +0xb1 U+0e11 +0xb2 U+0e12 +0xb3 U+0e13 +0xb4 U+0e14 +0xb5 U+0e15 +0xb6 U+0e16 +0xb7 U+0e17 +0xb8 U+0e18 +0xb9 U+0e19 +0xba U+0e1a +0xbb U+0e1b +0xbc U+0e1c +0xbd U+0e1d +0xbe U+0e1e +0xbf U+0e1f +0xc0 U+0e20 +0xc1 U+0e21 +0xc2 U+0e22 +0xc3 U+0e23 +0xc4 U+0e24 +0xc5 U+0e25 +0xc6 U+0e26 +0xc7 U+0e27 +0xc8 U+0e28 +0xc9 U+0e29 +0xca U+0e2a +0xcb U+0e2b +0xcc U+0e2c +0xcd U+0e2d +0xce U+0e2e +0xcf U+0e2f +0xd0 U+0e30 +0xd1 U+0e31 +0xd2 U+0e32 +0xd3 U+0e33 +0xd4 U+0e34 +0xd5 U+0e35 +0xd6 U+0e36 +0xd7 U+0e37 +0xd8 U+0e38 +0xd9 U+0e39 +0xda U+0e3a +0xdb U+fffd +0xdc U+fffd +0xdd U+fffd +0xde U+fffd +0xdf U+0e3f +0xe0 U+0e40 +0xe1 U+0e41 +0xe2 U+0e42 +0xe3 U+0e43 +0xe4 U+0e44 +0xe5 U+0e45 +0xe6 U+0e46 +0xe7 U+0e47 +0xe8 U+0e48 +0xe9 U+0e49 +0xea U+0e4a +0xeb U+0e4b +0xec U+0e4c +0xed U+0e4d +0xee U+0e4e +0xef U+0e4f +0xf0 U+0e50 +0xf1 U+0e51 +0xf2 U+0e52 +0xf3 U+0e53 +0xf4 U+0e54 +0xf5 U+0e55 +0xf6 U+0e56 +0xf7 U+0e57 +0xf8 U+0e58 +0xf9 U+0e59 +0xfa U+0e5a +0xfb U+0e5b +0xfc U+fffd +0xfd U+fffd +0xfe U+fffd +0xff U+fffd diff --git a/jdk/make/tools/CharsetMapping/MacArabic.map b/jdk/make/tools/CharsetMapping/MacArabic.map new file mode 100644 index 00000000000..eff2b0fdb70 --- /dev/null +++ b/jdk/make/tools/CharsetMapping/MacArabic.map @@ -0,0 +1,257 @@ +#Generated from MacArabic.java +0x00 U+0000 +0x01 U+0001 +0x02 U+0002 +0x03 U+0003 +0x04 U+0004 +0x05 U+0005 +0x06 U+0006 +0x07 U+0007 +0x08 U+0008 +0x09 U+0009 +0x0a U+000a +0x0b U+000b +0x0c U+000c +0x0d U+000d +0x0e U+000e +0x0f U+000f +0x10 U+0010 +0x11 U+0011 +0x12 U+0012 +0x13 U+0013 +0x14 U+0014 +0x15 U+0015 +0x16 U+0016 +0x17 U+0017 +0x18 U+0018 +0x19 U+0019 +0x1a U+001a +0x1b U+001b +0x1c U+001c +0x1d U+001d +0x1e U+001e +0x1f U+001f +0x20 U+0020 +0x21 U+0021 +0x22 U+0022 +0x23 U+0023 +0x24 U+0024 +0x25 U+0025 +0x26 U+0026 +0x27 U+0027 +0x28 U+0028 +0x29 U+0029 +0x2a U+002a +0x2b U+002b +0x2c U+002c +0x2d U+002d +0x2e U+002e +0x2f U+002f +0x30 U+0030 +0x31 U+0031 +0x32 U+0032 +0x33 U+0033 +0x34 U+0034 +0x35 U+0035 +0x36 U+0036 +0x37 U+0037 +0x38 U+0038 +0x39 U+0039 +0x3a U+003a +0x3b U+003b +0x3c U+003c +0x3d U+003d +0x3e U+003e +0x3f U+003f +0x40 U+0040 +0x41 U+0041 +0x42 U+0042 +0x43 U+0043 +0x44 U+0044 +0x45 U+0045 +0x46 U+0046 +0x47 U+0047 +0x48 U+0048 +0x49 U+0049 +0x4a U+004a +0x4b U+004b +0x4c U+004c +0x4d U+004d +0x4e U+004e +0x4f U+004f +0x50 U+0050 +0x51 U+0051 +0x52 U+0052 +0x53 U+0053 +0x54 U+0054 +0x55 U+0055 +0x56 U+0056 +0x57 U+0057 +0x58 U+0058 +0x59 U+0059 +0x5a U+005a +0x5b U+005b +0x5c U+005c +0x5d U+005d +0x5e U+005e +0x5f U+005f +0x60 U+0060 +0x61 U+0061 +0x62 U+0062 +0x63 U+0063 +0x64 U+0064 +0x65 U+0065 +0x66 U+0066 +0x67 U+0067 +0x68 U+0068 +0x69 U+0069 +0x6a U+006a +0x6b U+006b +0x6c U+006c +0x6d U+006d +0x6e U+006e +0x6f U+006f +0x70 U+0070 +0x71 U+0071 +0x72 U+0072 +0x73 U+0073 +0x74 U+0074 +0x75 U+0075 +0x76 U+0076 +0x77 U+0077 +0x78 U+0078 +0x79 U+0079 +0x7a U+007a +0x7b U+007b +0x7c U+007c +0x7d U+007d +0x7e U+007e +0x7f U+007f +0x80 U+00c4 +0x81 U+00a0 +0x82 U+00c7 +0x83 U+00c9 +0x84 U+00d1 +0x85 U+00d6 +0x86 U+00dc +0x87 U+00e1 +0x88 U+00e0 +0x89 U+00e2 +0x8a U+00e4 +0x8b U+06ba +0x8c U+00ab +0x8d U+00e7 +0x8e U+00e9 +0x8f U+00e8 +0x90 U+00ea +0x91 U+00eb +0x92 U+00ed +0x93 U+2026 +0x94 U+00ee +0x95 U+00ef +0x96 U+00f1 +0x97 U+00f3 +0x98 U+00bb +0x99 U+00f4 +0x9a U+00f6 +0x9b U+00f7 +0x9c U+00fa +0x9d U+00f9 +0x9e U+00fb +0x9f U+00fc +0xa0 U+fffd +0xa1 U+fffd +0xa2 U+fffd +0xa3 U+fffd +0xa4 U+fffd +0xa5 U+066a +0xa6 U+fffd +0xa7 U+fffd +0xa8 U+fffd +0xa9 U+fffd +0xaa U+fffd +0xab U+fffd +0xac U+060c +0xad U+fffd +0xae U+fffd +0xaf U+fffd +0xb0 U+0660 +0xb1 U+0661 +0xb2 U+0662 +0xb3 U+0663 +0xb4 U+0664 +0xb5 U+0665 +0xb6 U+0666 +0xb7 U+0667 +0xb8 U+0668 +0xb9 U+0669 +0xba U+fffd +0xbb U+061b +0xbc U+fffd +0xbd U+fffd +0xbe U+fffd +0xbf U+061f +0xc0 U+066d +0xc1 U+0621 +0xc2 U+0622 +0xc3 U+0623 +0xc4 U+0624 +0xc5 U+0625 +0xc6 U+0626 +0xc7 U+0627 +0xc8 U+0628 +0xc9 U+0629 +0xca U+062a +0xcb U+062b +0xcc U+062c +0xcd U+062d +0xce U+062e +0xcf U+062f +0xd0 U+0630 +0xd1 U+0631 +0xd2 U+0632 +0xd3 U+0633 +0xd4 U+0634 +0xd5 U+0635 +0xd6 U+0636 +0xd7 U+0637 +0xd8 U+0638 +0xd9 U+0639 +0xda U+063a +0xdb U+fffd +0xdc U+fffd +0xdd U+fffd +0xde U+fffd +0xdf U+fffd +0xe0 U+0640 +0xe1 U+0641 +0xe2 U+0642 +0xe3 U+0643 +0xe4 U+0644 +0xe5 U+0645 +0xe6 U+0646 +0xe7 U+0647 +0xe8 U+0648 +0xe9 U+0649 +0xea U+064a +0xeb U+064b +0xec U+064c +0xed U+064d +0xee U+064e +0xef U+064f +0xf0 U+0650 +0xf1 U+0651 +0xf2 U+0652 +0xf3 U+067e +0xf4 U+0679 +0xf5 U+0686 +0xf6 U+06d5 +0xf7 U+06a4 +0xf8 U+06af +0xf9 U+0688 +0xfa U+0691 +0xfb U+fffd +0xfc U+fffd +0xfd U+fffd +0xfe U+0698 +0xff U+06d2 diff --git a/jdk/make/tools/CharsetMapping/MacCentralEurope.map b/jdk/make/tools/CharsetMapping/MacCentralEurope.map new file mode 100644 index 00000000000..0cc49633493 --- /dev/null +++ b/jdk/make/tools/CharsetMapping/MacCentralEurope.map @@ -0,0 +1,257 @@ +#Generated from MacCentralEurope.java +0x00 U+0000 +0x01 U+0001 +0x02 U+0002 +0x03 U+0003 +0x04 U+0004 +0x05 U+0005 +0x06 U+0006 +0x07 U+0007 +0x08 U+0008 +0x09 U+0009 +0x0a U+000a +0x0b U+000b +0x0c U+000c +0x0d U+000d +0x0e U+000e +0x0f U+000f +0x10 U+0010 +0x11 U+0011 +0x12 U+0012 +0x13 U+0013 +0x14 U+0014 +0x15 U+0015 +0x16 U+0016 +0x17 U+0017 +0x18 U+0018 +0x19 U+0019 +0x1a U+001a +0x1b U+001b +0x1c U+001c +0x1d U+001d +0x1e U+001e +0x1f U+001f +0x20 U+0020 +0x21 U+0021 +0x22 U+0022 +0x23 U+0023 +0x24 U+0024 +0x25 U+0025 +0x26 U+0026 +0x27 U+0027 +0x28 U+0028 +0x29 U+0029 +0x2a U+002a +0x2b U+002b +0x2c U+002c +0x2d U+002d +0x2e U+002e +0x2f U+002f +0x30 U+0030 +0x31 U+0031 +0x32 U+0032 +0x33 U+0033 +0x34 U+0034 +0x35 U+0035 +0x36 U+0036 +0x37 U+0037 +0x38 U+0038 +0x39 U+0039 +0x3a U+003a +0x3b U+003b +0x3c U+003c +0x3d U+003d +0x3e U+003e +0x3f U+003f +0x40 U+0040 +0x41 U+0041 +0x42 U+0042 +0x43 U+0043 +0x44 U+0044 +0x45 U+0045 +0x46 U+0046 +0x47 U+0047 +0x48 U+0048 +0x49 U+0049 +0x4a U+004a +0x4b U+004b +0x4c U+004c +0x4d U+004d +0x4e U+004e +0x4f U+004f +0x50 U+0050 +0x51 U+0051 +0x52 U+0052 +0x53 U+0053 +0x54 U+0054 +0x55 U+0055 +0x56 U+0056 +0x57 U+0057 +0x58 U+0058 +0x59 U+0059 +0x5a U+005a +0x5b U+005b +0x5c U+005c +0x5d U+005d +0x5e U+005e +0x5f U+005f +0x60 U+0060 +0x61 U+0061 +0x62 U+0062 +0x63 U+0063 +0x64 U+0064 +0x65 U+0065 +0x66 U+0066 +0x67 U+0067 +0x68 U+0068 +0x69 U+0069 +0x6a U+006a +0x6b U+006b +0x6c U+006c +0x6d U+006d +0x6e U+006e +0x6f U+006f +0x70 U+0070 +0x71 U+0071 +0x72 U+0072 +0x73 U+0073 +0x74 U+0074 +0x75 U+0075 +0x76 U+0076 +0x77 U+0077 +0x78 U+0078 +0x79 U+0079 +0x7a U+007a +0x7b U+007b +0x7c U+007c +0x7d U+007d +0x7e U+007e +0x7f U+007f +0x80 U+00c4 +0x81 U+0100 +0x82 U+0101 +0x83 U+00c9 +0x84 U+0104 +0x85 U+00d6 +0x86 U+00dc +0x87 U+00e1 +0x88 U+0105 +0x89 U+010c +0x8a U+00e4 +0x8b U+010d +0x8c U+0106 +0x8d U+0107 +0x8e U+00e9 +0x8f U+0179 +0x90 U+017a +0x91 U+010e +0x92 U+00ed +0x93 U+010f +0x94 U+0112 +0x95 U+0113 +0x96 U+0116 +0x97 U+00f3 +0x98 U+0117 +0x99 U+00f4 +0x9a U+00f6 +0x9b U+00f5 +0x9c U+00fa +0x9d U+011a +0x9e U+011b +0x9f U+00fc +0xa0 U+2020 +0xa1 U+00b0 +0xa2 U+0118 +0xa3 U+00a3 +0xa4 U+00a7 +0xa5 U+2022 +0xa6 U+00b6 +0xa7 U+00df +0xa8 U+00ae +0xa9 U+00a9 +0xaa U+2122 +0xab U+0119 +0xac U+00a8 +0xad U+2260 +0xae U+0123 +0xaf U+012e +0xb0 U+012f +0xb1 U+012a +0xb2 U+2264 +0xb3 U+2265 +0xb4 U+012b +0xb5 U+0136 +0xb6 U+2202 +0xb7 U+2211 +0xb8 U+0142 +0xb9 U+013b +0xba U+013c +0xbb U+013d +0xbc U+013e +0xbd U+0139 +0xbe U+013a +0xbf U+0145 +0xc0 U+0146 +0xc1 U+0143 +0xc2 U+00ac +0xc3 U+221a +0xc4 U+0144 +0xc5 U+0147 +0xc6 U+2206 +0xc7 U+00ab +0xc8 U+00bb +0xc9 U+2026 +0xca U+00a0 +0xcb U+0148 +0xcc U+0150 +0xcd U+00d5 +0xce U+0151 +0xcf U+014c +0xd0 U+2013 +0xd1 U+2014 +0xd2 U+201c +0xd3 U+201d +0xd4 U+2018 +0xd5 U+2019 +0xd6 U+00f7 +0xd7 U+25ca +0xd8 U+014d +0xd9 U+0154 +0xda U+0155 +0xdb U+0158 +0xdc U+2039 +0xdd U+203a +0xde U+0159 +0xdf U+0156 +0xe0 U+0157 +0xe1 U+0160 +0xe2 U+201a +0xe3 U+201e +0xe4 U+0161 +0xe5 U+015a +0xe6 U+015b +0xe7 U+00c1 +0xe8 U+0164 +0xe9 U+0165 +0xea U+00cd +0xeb U+017d +0xec U+017e +0xed U+016a +0xee U+00d3 +0xef U+00d4 +0xf0 U+016b +0xf1 U+016e +0xf2 U+00da +0xf3 U+016f +0xf4 U+0170 +0xf5 U+0171 +0xf6 U+0172 +0xf7 U+0173 +0xf8 U+00dd +0xf9 U+00fd +0xfa U+0137 +0xfb U+017b +0xfc U+0141 +0xfd U+017c +0xfe U+0122 +0xff U+02c7 diff --git a/jdk/make/tools/CharsetMapping/MacCroatian.map b/jdk/make/tools/CharsetMapping/MacCroatian.map new file mode 100644 index 00000000000..25b1bbf0850 --- /dev/null +++ b/jdk/make/tools/CharsetMapping/MacCroatian.map @@ -0,0 +1,257 @@ +#Generated from MacCroatian.java +0x00 U+0000 +0x01 U+0001 +0x02 U+0002 +0x03 U+0003 +0x04 U+0004 +0x05 U+0005 +0x06 U+0006 +0x07 U+0007 +0x08 U+0008 +0x09 U+0009 +0x0a U+000a +0x0b U+000b +0x0c U+000c +0x0d U+000d +0x0e U+000e +0x0f U+000f +0x10 U+0010 +0x11 U+0011 +0x12 U+0012 +0x13 U+0013 +0x14 U+0014 +0x15 U+0015 +0x16 U+0016 +0x17 U+0017 +0x18 U+0018 +0x19 U+0019 +0x1a U+001a +0x1b U+001b +0x1c U+001c +0x1d U+001d +0x1e U+001e +0x1f U+001f +0x20 U+0020 +0x21 U+0021 +0x22 U+0022 +0x23 U+0023 +0x24 U+0024 +0x25 U+0025 +0x26 U+0026 +0x27 U+0027 +0x28 U+0028 +0x29 U+0029 +0x2a U+002a +0x2b U+002b +0x2c U+002c +0x2d U+002d +0x2e U+002e +0x2f U+002f +0x30 U+0030 +0x31 U+0031 +0x32 U+0032 +0x33 U+0033 +0x34 U+0034 +0x35 U+0035 +0x36 U+0036 +0x37 U+0037 +0x38 U+0038 +0x39 U+0039 +0x3a U+003a +0x3b U+003b +0x3c U+003c +0x3d U+003d +0x3e U+003e +0x3f U+003f +0x40 U+0040 +0x41 U+0041 +0x42 U+0042 +0x43 U+0043 +0x44 U+0044 +0x45 U+0045 +0x46 U+0046 +0x47 U+0047 +0x48 U+0048 +0x49 U+0049 +0x4a U+004a +0x4b U+004b +0x4c U+004c +0x4d U+004d +0x4e U+004e +0x4f U+004f +0x50 U+0050 +0x51 U+0051 +0x52 U+0052 +0x53 U+0053 +0x54 U+0054 +0x55 U+0055 +0x56 U+0056 +0x57 U+0057 +0x58 U+0058 +0x59 U+0059 +0x5a U+005a +0x5b U+005b +0x5c U+005c +0x5d U+005d +0x5e U+005e +0x5f U+005f +0x60 U+0060 +0x61 U+0061 +0x62 U+0062 +0x63 U+0063 +0x64 U+0064 +0x65 U+0065 +0x66 U+0066 +0x67 U+0067 +0x68 U+0068 +0x69 U+0069 +0x6a U+006a +0x6b U+006b +0x6c U+006c +0x6d U+006d +0x6e U+006e +0x6f U+006f +0x70 U+0070 +0x71 U+0071 +0x72 U+0072 +0x73 U+0073 +0x74 U+0074 +0x75 U+0075 +0x76 U+0076 +0x77 U+0077 +0x78 U+0078 +0x79 U+0079 +0x7a U+007a +0x7b U+007b +0x7c U+007c +0x7d U+007d +0x7e U+007e +0x7f U+007f +0x80 U+00c4 +0x81 U+00c5 +0x82 U+00c7 +0x83 U+00c9 +0x84 U+00d1 +0x85 U+00d6 +0x86 U+00dc +0x87 U+00e1 +0x88 U+00e0 +0x89 U+00e2 +0x8a U+00e4 +0x8b U+00e3 +0x8c U+00e5 +0x8d U+00e7 +0x8e U+00e9 +0x8f U+00e8 +0x90 U+00ea +0x91 U+00eb +0x92 U+00ed +0x93 U+00ec +0x94 U+00ee +0x95 U+00ef +0x96 U+00f1 +0x97 U+00f3 +0x98 U+00f2 +0x99 U+00f4 +0x9a U+00f6 +0x9b U+00f5 +0x9c U+00fa +0x9d U+00f9 +0x9e U+00fb +0x9f U+00fc +0xa0 U+2020 +0xa1 U+00b0 +0xa2 U+00a2 +0xa3 U+00a3 +0xa4 U+00a7 +0xa5 U+2022 +0xa6 U+00b6 +0xa7 U+00df +0xa8 U+00ae +0xa9 U+0160 +0xaa U+2122 +0xab U+00b4 +0xac U+00a8 +0xad U+2260 +0xae U+017d +0xaf U+00d8 +0xb0 U+221e +0xb1 U+00b1 +0xb2 U+2264 +0xb3 U+2265 +0xb4 U+2206 +0xb5 U+00b5 +0xb6 U+2202 +0xb7 U+2211 +0xb8 U+220f +0xb9 U+0161 +0xba U+222b +0xbb U+00aa +0xbc U+00ba +0xbd U+2126 +0xbe U+017e +0xbf U+00f8 +0xc0 U+00bf +0xc1 U+00a1 +0xc2 U+00ac +0xc3 U+221a +0xc4 U+0192 +0xc5 U+2248 +0xc6 U+0106 +0xc7 U+00ab +0xc8 U+010c +0xc9 U+2026 +0xca U+00a0 +0xcb U+00c0 +0xcc U+00c3 +0xcd U+00d5 +0xce U+0152 +0xcf U+0153 +0xd0 U+0110 +0xd1 U+2014 +0xd2 U+201c +0xd3 U+201d +0xd4 U+2018 +0xd5 U+2019 +0xd6 U+00f7 +0xd7 U+25ca +0xd8 U+f8ff +0xd9 U+00a9 +0xda U+2044 +0xdb U+00a4 +0xdc U+2039 +0xdd U+203a +0xde U+00c6 +0xdf U+00bb +0xe0 U+2013 +0xe1 U+00b7 +0xe2 U+201a +0xe3 U+201e +0xe4 U+2030 +0xe5 U+00c2 +0xe6 U+0107 +0xe7 U+00c1 +0xe8 U+010d +0xe9 U+00c8 +0xea U+00cd +0xeb U+00ce +0xec U+00cf +0xed U+00cc +0xee U+00d3 +0xef U+00d4 +0xf0 U+0111 +0xf1 U+00d2 +0xf2 U+00da +0xf3 U+00db +0xf4 U+00d9 +0xf5 U+0131 +0xf6 U+02c6 +0xf7 U+02dc +0xf8 U+00af +0xf9 U+03c0 +0xfa U+00cb +0xfb U+02da +0xfc U+00b8 +0xfd U+00ca +0xfe U+00e6 +0xff U+02c7 diff --git a/jdk/make/tools/CharsetMapping/MacCyrillic.map b/jdk/make/tools/CharsetMapping/MacCyrillic.map new file mode 100644 index 00000000000..ab2ff857b0f --- /dev/null +++ b/jdk/make/tools/CharsetMapping/MacCyrillic.map @@ -0,0 +1,257 @@ +#Generated from MacCyrillic.java +0x00 U+0000 +0x01 U+0001 +0x02 U+0002 +0x03 U+0003 +0x04 U+0004 +0x05 U+0005 +0x06 U+0006 +0x07 U+0007 +0x08 U+0008 +0x09 U+0009 +0x0a U+000a +0x0b U+000b +0x0c U+000c +0x0d U+000d +0x0e U+000e +0x0f U+000f +0x10 U+0010 +0x11 U+0011 +0x12 U+0012 +0x13 U+0013 +0x14 U+0014 +0x15 U+0015 +0x16 U+0016 +0x17 U+0017 +0x18 U+0018 +0x19 U+0019 +0x1a U+001a +0x1b U+001b +0x1c U+001c +0x1d U+001d +0x1e U+001e +0x1f U+001f +0x20 U+0020 +0x21 U+0021 +0x22 U+0022 +0x23 U+0023 +0x24 U+0024 +0x25 U+0025 +0x26 U+0026 +0x27 U+0027 +0x28 U+0028 +0x29 U+0029 +0x2a U+002a +0x2b U+002b +0x2c U+002c +0x2d U+002d +0x2e U+002e +0x2f U+002f +0x30 U+0030 +0x31 U+0031 +0x32 U+0032 +0x33 U+0033 +0x34 U+0034 +0x35 U+0035 +0x36 U+0036 +0x37 U+0037 +0x38 U+0038 +0x39 U+0039 +0x3a U+003a +0x3b U+003b +0x3c U+003c +0x3d U+003d +0x3e U+003e +0x3f U+003f +0x40 U+0040 +0x41 U+0041 +0x42 U+0042 +0x43 U+0043 +0x44 U+0044 +0x45 U+0045 +0x46 U+0046 +0x47 U+0047 +0x48 U+0048 +0x49 U+0049 +0x4a U+004a +0x4b U+004b +0x4c U+004c +0x4d U+004d +0x4e U+004e +0x4f U+004f +0x50 U+0050 +0x51 U+0051 +0x52 U+0052 +0x53 U+0053 +0x54 U+0054 +0x55 U+0055 +0x56 U+0056 +0x57 U+0057 +0x58 U+0058 +0x59 U+0059 +0x5a U+005a +0x5b U+005b +0x5c U+005c +0x5d U+005d +0x5e U+005e +0x5f U+005f +0x60 U+0060 +0x61 U+0061 +0x62 U+0062 +0x63 U+0063 +0x64 U+0064 +0x65 U+0065 +0x66 U+0066 +0x67 U+0067 +0x68 U+0068 +0x69 U+0069 +0x6a U+006a +0x6b U+006b +0x6c U+006c +0x6d U+006d +0x6e U+006e +0x6f U+006f +0x70 U+0070 +0x71 U+0071 +0x72 U+0072 +0x73 U+0073 +0x74 U+0074 +0x75 U+0075 +0x76 U+0076 +0x77 U+0077 +0x78 U+0078 +0x79 U+0079 +0x7a U+007a +0x7b U+007b +0x7c U+007c +0x7d U+007d +0x7e U+007e +0x7f U+007f +0x80 U+0410 +0x81 U+0411 +0x82 U+0412 +0x83 U+0413 +0x84 U+0414 +0x85 U+0415 +0x86 U+0416 +0x87 U+0417 +0x88 U+0418 +0x89 U+0419 +0x8a U+041a +0x8b U+041b +0x8c U+041c +0x8d U+041d +0x8e U+041e +0x8f U+041f +0x90 U+0420 +0x91 U+0421 +0x92 U+0422 +0x93 U+0423 +0x94 U+0424 +0x95 U+0425 +0x96 U+0426 +0x97 U+0427 +0x98 U+0428 +0x99 U+0429 +0x9a U+042a +0x9b U+042b +0x9c U+042c +0x9d U+042d +0x9e U+042e +0x9f U+042f +0xa0 U+2020 +0xa1 U+00b0 +0xa2 U+00a2 +0xa3 U+00a3 +0xa4 U+00a7 +0xa5 U+2022 +0xa6 U+00b6 +0xa7 U+0406 +0xa8 U+00ae +0xa9 U+00a9 +0xaa U+2122 +0xab U+0402 +0xac U+0452 +0xad U+2260 +0xae U+0403 +0xaf U+0453 +0xb0 U+221e +0xb1 U+00b1 +0xb2 U+2264 +0xb3 U+2265 +0xb4 U+0456 +0xb5 U+00b5 +0xb6 U+2202 +0xb7 U+0408 +0xb8 U+0404 +0xb9 U+0454 +0xba U+0407 +0xbb U+0457 +0xbc U+0409 +0xbd U+0459 +0xbe U+040a +0xbf U+045a +0xc0 U+0458 +0xc1 U+0405 +0xc2 U+00ac +0xc3 U+221a +0xc4 U+0192 +0xc5 U+2248 +0xc6 U+2206 +0xc7 U+00ab +0xc8 U+00bb +0xc9 U+2026 +0xca U+00a0 +0xcb U+040b +0xcc U+045b +0xcd U+040c +0xce U+045c +0xcf U+0455 +0xd0 U+2013 +0xd1 U+2014 +0xd2 U+201c +0xd3 U+201d +0xd4 U+2018 +0xd5 U+2019 +0xd6 U+00f7 +0xd7 U+201e +0xd8 U+040e +0xd9 U+045e +0xda U+040f +0xdb U+045f +0xdc U+2116 +0xdd U+0401 +0xde U+0451 +0xdf U+044f +0xe0 U+0430 +0xe1 U+0431 +0xe2 U+0432 +0xe3 U+0433 +0xe4 U+0434 +0xe5 U+0435 +0xe6 U+0436 +0xe7 U+0437 +0xe8 U+0438 +0xe9 U+0439 +0xea U+043a +0xeb U+043b +0xec U+043c +0xed U+043d +0xee U+043e +0xef U+043f +0xf0 U+0440 +0xf1 U+0441 +0xf2 U+0442 +0xf3 U+0443 +0xf4 U+0444 +0xf5 U+0445 +0xf6 U+0446 +0xf7 U+0447 +0xf8 U+0448 +0xf9 U+0449 +0xfa U+044a +0xfb U+044b +0xfc U+044c +0xfd U+044d +0xfe U+044e +0xff U+00a4 diff --git a/jdk/make/tools/CharsetMapping/MacDingbat.map b/jdk/make/tools/CharsetMapping/MacDingbat.map new file mode 100644 index 00000000000..93abacaf434 --- /dev/null +++ b/jdk/make/tools/CharsetMapping/MacDingbat.map @@ -0,0 +1,257 @@ +#Generated from MacDingbat.java +0x00 U+0000 +0x01 U+0001 +0x02 U+0002 +0x03 U+0003 +0x04 U+0004 +0x05 U+0005 +0x06 U+0006 +0x07 U+0007 +0x08 U+0008 +0x09 U+0009 +0x0a U+000a +0x0b U+000b +0x0c U+000c +0x0d U+000d +0x0e U+000e +0x0f U+000f +0x10 U+0010 +0x11 U+0011 +0x12 U+0012 +0x13 U+0013 +0x14 U+0014 +0x15 U+0015 +0x16 U+0016 +0x17 U+0017 +0x18 U+0018 +0x19 U+0019 +0x1a U+001a +0x1b U+001b +0x1c U+001c +0x1d U+001d +0x1e U+001e +0x1f U+001f +0x20 U+0020 +0x21 U+2701 +0x22 U+2702 +0x23 U+2703 +0x24 U+2704 +0x25 U+260e +0x26 U+2706 +0x27 U+2707 +0x28 U+2708 +0x29 U+2709 +0x2a U+261b +0x2b U+261e +0x2c U+270c +0x2d U+270d +0x2e U+270e +0x2f U+270f +0x30 U+2710 +0x31 U+2711 +0x32 U+2712 +0x33 U+2713 +0x34 U+2714 +0x35 U+2715 +0x36 U+2716 +0x37 U+2717 +0x38 U+2718 +0x39 U+2719 +0x3a U+271a +0x3b U+271b +0x3c U+271c +0x3d U+271d +0x3e U+271e +0x3f U+271f +0x40 U+2720 +0x41 U+2721 +0x42 U+2722 +0x43 U+2723 +0x44 U+2724 +0x45 U+2725 +0x46 U+2726 +0x47 U+2727 +0x48 U+2605 +0x49 U+2729 +0x4a U+272a +0x4b U+272b +0x4c U+272c +0x4d U+272d +0x4e U+272e +0x4f U+272f +0x50 U+2730 +0x51 U+2731 +0x52 U+2732 +0x53 U+2733 +0x54 U+2734 +0x55 U+2735 +0x56 U+2736 +0x57 U+2737 +0x58 U+2738 +0x59 U+2739 +0x5a U+273a +0x5b U+273b +0x5c U+273c +0x5d U+273d +0x5e U+273e +0x5f U+273f +0x60 U+2740 +0x61 U+2741 +0x62 U+2742 +0x63 U+2743 +0x64 U+2744 +0x65 U+2745 +0x66 U+2746 +0x67 U+2747 +0x68 U+2748 +0x69 U+2749 +0x6a U+274a +0x6b U+274b +0x6c U+25cf +0x6d U+274d +0x6e U+25a0 +0x6f U+274f +0x70 U+2750 +0x71 U+2751 +0x72 U+2752 +0x73 U+25b2 +0x74 U+25bc +0x75 U+25c6 +0x76 U+2756 +0x77 U+25d7 +0x78 U+2758 +0x79 U+2759 +0x7a U+275a +0x7b U+275b +0x7c U+275c +0x7d U+275d +0x7e U+275e +0x7f U+007f +0x80 U+fffd +0x81 U+fffd +0x82 U+fffd +0x83 U+fffd +0x84 U+fffd +0x85 U+fffd +0x86 U+fffd +0x87 U+fffd +0x88 U+fffd +0x89 U+fffd +0x8a U+fffd +0x8b U+fffd +0x8c U+fffd +0x8d U+fffd +0x8e U+fffd +0x8f U+fffd +0x90 U+fffd +0x91 U+fffd +0x92 U+fffd +0x93 U+fffd +0x94 U+fffd +0x95 U+fffd +0x96 U+fffd +0x97 U+fffd +0x98 U+fffd +0x99 U+fffd +0x9a U+fffd +0x9b U+fffd +0x9c U+fffd +0x9d U+fffd +0x9e U+fffd +0x9f U+fffd +0xa0 U+fffd +0xa1 U+2761 +0xa2 U+2762 +0xa3 U+2763 +0xa4 U+2764 +0xa5 U+2765 +0xa6 U+2766 +0xa7 U+2767 +0xa8 U+2663 +0xa9 U+2666 +0xaa U+2665 +0xab U+2660 +0xac U+2460 +0xad U+2461 +0xae U+2462 +0xaf U+2463 +0xb0 U+2464 +0xb1 U+2465 +0xb2 U+2466 +0xb3 U+2467 +0xb4 U+2468 +0xb5 U+2469 +0xb6 U+2776 +0xb7 U+2777 +0xb8 U+2778 +0xb9 U+2779 +0xba U+277a +0xbb U+277b +0xbc U+277c +0xbd U+277d +0xbe U+277e +0xbf U+277f +0xc0 U+2780 +0xc1 U+2781 +0xc2 U+2782 +0xc3 U+2783 +0xc4 U+2784 +0xc5 U+2785 +0xc6 U+2786 +0xc7 U+2787 +0xc8 U+2788 +0xc9 U+2789 +0xca U+278a +0xcb U+278b +0xcc U+278c +0xcd U+278d +0xce U+278e +0xcf U+278f +0xd0 U+2790 +0xd1 U+2791 +0xd2 U+2792 +0xd3 U+2793 +0xd4 U+2794 +0xd5 U+2192 +0xd6 U+2194 +0xd7 U+2195 +0xd8 U+2798 +0xd9 U+2799 +0xda U+279a +0xdb U+279b +0xdc U+279c +0xdd U+279d +0xde U+279e +0xdf U+279f +0xe0 U+27a0 +0xe1 U+27a1 +0xe2 U+27a2 +0xe3 U+27a3 +0xe4 U+27a4 +0xe5 U+27a5 +0xe6 U+27a6 +0xe7 U+27a7 +0xe8 U+27a8 +0xe9 U+27a9 +0xea U+27aa +0xeb U+27ab +0xec U+27ac +0xed U+27ad +0xee U+27ae +0xef U+27af +0xf0 U+fffd +0xf1 U+27b1 +0xf2 U+27b2 +0xf3 U+27b3 +0xf4 U+27b4 +0xf5 U+27b5 +0xf6 U+27b6 +0xf7 U+27b7 +0xf8 U+27b8 +0xf9 U+27b9 +0xfa U+27ba +0xfb U+27bb +0xfc U+27bc +0xfd U+27bd +0xfe U+27be +0xff U+fffd diff --git a/jdk/make/tools/CharsetMapping/MacGreek.map b/jdk/make/tools/CharsetMapping/MacGreek.map new file mode 100644 index 00000000000..aa88a24314f --- /dev/null +++ b/jdk/make/tools/CharsetMapping/MacGreek.map @@ -0,0 +1,257 @@ +#Generated from MacGreek.java +0x00 U+0000 +0x01 U+0001 +0x02 U+0002 +0x03 U+0003 +0x04 U+0004 +0x05 U+0005 +0x06 U+0006 +0x07 U+0007 +0x08 U+0008 +0x09 U+0009 +0x0a U+000a +0x0b U+000b +0x0c U+000c +0x0d U+000d +0x0e U+000e +0x0f U+000f +0x10 U+0010 +0x11 U+0011 +0x12 U+0012 +0x13 U+0013 +0x14 U+0014 +0x15 U+0015 +0x16 U+0016 +0x17 U+0017 +0x18 U+0018 +0x19 U+0019 +0x1a U+001a +0x1b U+001b +0x1c U+001c +0x1d U+001d +0x1e U+001e +0x1f U+001f +0x20 U+0020 +0x21 U+0021 +0x22 U+0022 +0x23 U+0023 +0x24 U+0024 +0x25 U+0025 +0x26 U+0026 +0x27 U+0027 +0x28 U+0028 +0x29 U+0029 +0x2a U+002a +0x2b U+002b +0x2c U+002c +0x2d U+002d +0x2e U+002e +0x2f U+002f +0x30 U+0030 +0x31 U+0031 +0x32 U+0032 +0x33 U+0033 +0x34 U+0034 +0x35 U+0035 +0x36 U+0036 +0x37 U+0037 +0x38 U+0038 +0x39 U+0039 +0x3a U+003a +0x3b U+003b +0x3c U+003c +0x3d U+003d +0x3e U+003e +0x3f U+003f +0x40 U+0040 +0x41 U+0041 +0x42 U+0042 +0x43 U+0043 +0x44 U+0044 +0x45 U+0045 +0x46 U+0046 +0x47 U+0047 +0x48 U+0048 +0x49 U+0049 +0x4a U+004a +0x4b U+004b +0x4c U+004c +0x4d U+004d +0x4e U+004e +0x4f U+004f +0x50 U+0050 +0x51 U+0051 +0x52 U+0052 +0x53 U+0053 +0x54 U+0054 +0x55 U+0055 +0x56 U+0056 +0x57 U+0057 +0x58 U+0058 +0x59 U+0059 +0x5a U+005a +0x5b U+005b +0x5c U+005c +0x5d U+005d +0x5e U+005e +0x5f U+005f +0x60 U+0060 +0x61 U+0061 +0x62 U+0062 +0x63 U+0063 +0x64 U+0064 +0x65 U+0065 +0x66 U+0066 +0x67 U+0067 +0x68 U+0068 +0x69 U+0069 +0x6a U+006a +0x6b U+006b +0x6c U+006c +0x6d U+006d +0x6e U+006e +0x6f U+006f +0x70 U+0070 +0x71 U+0071 +0x72 U+0072 +0x73 U+0073 +0x74 U+0074 +0x75 U+0075 +0x76 U+0076 +0x77 U+0077 +0x78 U+0078 +0x79 U+0079 +0x7a U+007a +0x7b U+007b +0x7c U+007c +0x7d U+007d +0x7e U+007e +0x7f U+007f +0x80 U+00c4 +0x81 U+00b9 +0x82 U+00b2 +0x83 U+00c9 +0x84 U+00b3 +0x85 U+00d6 +0x86 U+00dc +0x87 U+0385 +0x88 U+00e0 +0x89 U+00e2 +0x8a U+00e4 +0x8b U+0384 +0x8c U+00a8 +0x8d U+00e7 +0x8e U+00e9 +0x8f U+00e8 +0x90 U+00ea +0x91 U+00eb +0x92 U+00a3 +0x93 U+2122 +0x94 U+00ee +0x95 U+00ef +0x96 U+2022 +0x97 U+00bd +0x98 U+2030 +0x99 U+00f4 +0x9a U+00f6 +0x9b U+00a6 +0x9c U+00ad +0x9d U+00f9 +0x9e U+00fb +0x9f U+00fc +0xa0 U+2020 +0xa1 U+0393 +0xa2 U+0394 +0xa3 U+0398 +0xa4 U+039b +0xa5 U+039e +0xa6 U+03a0 +0xa7 U+00df +0xa8 U+00ae +0xa9 U+00a9 +0xaa U+03a3 +0xab U+03aa +0xac U+00a7 +0xad U+2260 +0xae U+00b0 +0xaf U+0387 +0xb0 U+0391 +0xb1 U+00b1 +0xb2 U+2264 +0xb3 U+2265 +0xb4 U+00a5 +0xb5 U+0392 +0xb6 U+0395 +0xb7 U+0396 +0xb8 U+0397 +0xb9 U+0399 +0xba U+039a +0xbb U+039c +0xbc U+03a6 +0xbd U+03ab +0xbe U+03a8 +0xbf U+03a9 +0xc0 U+03ac +0xc1 U+039d +0xc2 U+00ac +0xc3 U+039f +0xc4 U+03a1 +0xc5 U+2248 +0xc6 U+03a4 +0xc7 U+00ab +0xc8 U+00bb +0xc9 U+2026 +0xca U+00a0 +0xcb U+03a5 +0xcc U+03a7 +0xcd U+0386 +0xce U+0388 +0xcf U+0153 +0xd0 U+2013 +0xd1 U+2015 +0xd2 U+201c +0xd3 U+201d +0xd4 U+2018 +0xd5 U+2019 +0xd6 U+00f7 +0xd7 U+0389 +0xd8 U+038a +0xd9 U+038c +0xda U+038e +0xdb U+03ad +0xdc U+03ae +0xdd U+03af +0xde U+03cc +0xdf U+038f +0xe0 U+03cd +0xe1 U+03b1 +0xe2 U+03b2 +0xe3 U+03c8 +0xe4 U+03b4 +0xe5 U+03b5 +0xe6 U+03c6 +0xe7 U+03b3 +0xe8 U+03b7 +0xe9 U+03b9 +0xea U+03be +0xeb U+03ba +0xec U+03bb +0xed U+03bc +0xee U+03bd +0xef U+03bf +0xf0 U+03c0 +0xf1 U+03ce +0xf2 U+03c1 +0xf3 U+03c3 +0xf4 U+03c4 +0xf5 U+03b8 +0xf6 U+03c9 +0xf7 U+03c2 +0xf8 U+03c7 +0xf9 U+03c5 +0xfa U+03b6 +0xfb U+03ca +0xfc U+03cb +0xfd U+0390 +0xfe U+03b0 +0xff U+fffd diff --git a/jdk/make/tools/CharsetMapping/MacHebrew.map b/jdk/make/tools/CharsetMapping/MacHebrew.map new file mode 100644 index 00000000000..d847d1cb683 --- /dev/null +++ b/jdk/make/tools/CharsetMapping/MacHebrew.map @@ -0,0 +1,257 @@ +#Generated from MacHebrew.java +0x00 U+0000 +0x01 U+0001 +0x02 U+0002 +0x03 U+0003 +0x04 U+0004 +0x05 U+0005 +0x06 U+0006 +0x07 U+0007 +0x08 U+0008 +0x09 U+0009 +0x0a U+000a +0x0b U+000b +0x0c U+000c +0x0d U+000d +0x0e U+000e +0x0f U+000f +0x10 U+0010 +0x11 U+0011 +0x12 U+0012 +0x13 U+0013 +0x14 U+0014 +0x15 U+0015 +0x16 U+0016 +0x17 U+0017 +0x18 U+0018 +0x19 U+0019 +0x1a U+001a +0x1b U+001b +0x1c U+001c +0x1d U+001d +0x1e U+001e +0x1f U+001f +0x20 U+0020 +0x21 U+0021 +0x22 U+0022 +0x23 U+0023 +0x24 U+0024 +0x25 U+0025 +0x26 U+0026 +0x27 U+0027 +0x28 U+0028 +0x29 U+0029 +0x2a U+002a +0x2b U+002b +0x2c U+002c +0x2d U+002d +0x2e U+002e +0x2f U+002f +0x30 U+0030 +0x31 U+0031 +0x32 U+0032 +0x33 U+0033 +0x34 U+0034 +0x35 U+0035 +0x36 U+0036 +0x37 U+0037 +0x38 U+0038 +0x39 U+0039 +0x3a U+003a +0x3b U+003b +0x3c U+003c +0x3d U+003d +0x3e U+003e +0x3f U+003f +0x40 U+0040 +0x41 U+0041 +0x42 U+0042 +0x43 U+0043 +0x44 U+0044 +0x45 U+0045 +0x46 U+0046 +0x47 U+0047 +0x48 U+0048 +0x49 U+0049 +0x4a U+004a +0x4b U+004b +0x4c U+004c +0x4d U+004d +0x4e U+004e +0x4f U+004f +0x50 U+0050 +0x51 U+0051 +0x52 U+0052 +0x53 U+0053 +0x54 U+0054 +0x55 U+0055 +0x56 U+0056 +0x57 U+0057 +0x58 U+0058 +0x59 U+0059 +0x5a U+005a +0x5b U+005b +0x5c U+005c +0x5d U+005d +0x5e U+005e +0x5f U+005f +0x60 U+0060 +0x61 U+0061 +0x62 U+0062 +0x63 U+0063 +0x64 U+0064 +0x65 U+0065 +0x66 U+0066 +0x67 U+0067 +0x68 U+0068 +0x69 U+0069 +0x6a U+006a +0x6b U+006b +0x6c U+006c +0x6d U+006d +0x6e U+006e +0x6f U+006f +0x70 U+0070 +0x71 U+0071 +0x72 U+0072 +0x73 U+0073 +0x74 U+0074 +0x75 U+0075 +0x76 U+0076 +0x77 U+0077 +0x78 U+0078 +0x79 U+0079 +0x7a U+007a +0x7b U+007b +0x7c U+007c +0x7d U+007d +0x7e U+007e +0x7f U+007f +0x80 U+00c4 +0x81 U+fb1f +0x82 U+00c7 +0x83 U+00c9 +0x84 U+00d1 +0x85 U+00d6 +0x86 U+00dc +0x87 U+00e1 +0x88 U+00e0 +0x89 U+00e2 +0x8a U+00e4 +0x8b U+00e3 +0x8c U+00e5 +0x8d U+00e7 +0x8e U+00e9 +0x8f U+00e8 +0x90 U+00ea +0x91 U+00eb +0x92 U+00ed +0x93 U+00ec +0x94 U+00ee +0x95 U+00ef +0x96 U+00f1 +0x97 U+00f3 +0x98 U+00f2 +0x99 U+00f4 +0x9a U+00f6 +0x9b U+00f5 +0x9c U+00fa +0x9d U+00f9 +0x9e U+00fb +0x9f U+00fc +0xa0 U+fffd +0xa1 U+fffd +0xa2 U+fffd +0xa3 U+fffd +0xa4 U+fffd +0xa5 U+fffd +0xa6 U+20aa +0xa7 U+fffd +0xa8 U+fffd +0xa9 U+fffd +0xaa U+fffd +0xab U+fffd +0xac U+fffd +0xad U+fffd +0xae U+fffd +0xaf U+fffd +0xb0 U+fffd +0xb1 U+fffd +0xb2 U+fffd +0xb3 U+fffd +0xb4 U+fffd +0xb5 U+fffd +0xb6 U+fffd +0xb7 U+fffd +0xb8 U+fffd +0xb9 U+fffd +0xba U+fffd +0xbb U+fffd +0xbc U+fffd +0xbd U+fffd +0xbe U+fffd +0xbf U+fffd +0xc0 U+fffd +0xc1 U+201e +0xc2 U+fffd +0xc3 U+fffd +0xc4 U+fffd +0xc5 U+fffd +0xc6 U+05bc +0xc7 U+fb4b +0xc8 U+fb35 +0xc9 U+2026 +0xca U+00a0 +0xcb U+05b8 +0xcc U+05b7 +0xcd U+05b5 +0xce U+05b6 +0xcf U+05b4 +0xd0 U+2013 +0xd1 U+2014 +0xd2 U+201c +0xd3 U+201d +0xd4 U+2018 +0xd5 U+2019 +0xd6 U+fb2a +0xd7 U+fb2b +0xd8 U+05bf +0xd9 U+05b0 +0xda U+05b2 +0xdb U+05b1 +0xdc U+05bb +0xdd U+05b9 +0xde U+fffd +0xdf U+05b3 +0xe0 U+05d0 +0xe1 U+05d1 +0xe2 U+05d2 +0xe3 U+05d3 +0xe4 U+05d4 +0xe5 U+05d5 +0xe6 U+05d6 +0xe7 U+05d7 +0xe8 U+05d8 +0xe9 U+05d9 +0xea U+05da +0xeb U+05db +0xec U+05dc +0xed U+05dd +0xee U+05de +0xef U+05df +0xf0 U+05e0 +0xf1 U+05e1 +0xf2 U+05e2 +0xf3 U+05e3 +0xf4 U+05e4 +0xf5 U+05e5 +0xf6 U+05e6 +0xf7 U+05e7 +0xf8 U+05e8 +0xf9 U+05e9 +0xfa U+05ea +0xfb U+fffd +0xfc U+fffd +0xfd U+fffd +0xfe U+fffd +0xff U+fffd diff --git a/jdk/make/tools/CharsetMapping/MacIceland.map b/jdk/make/tools/CharsetMapping/MacIceland.map new file mode 100644 index 00000000000..b47d11a814b --- /dev/null +++ b/jdk/make/tools/CharsetMapping/MacIceland.map @@ -0,0 +1,257 @@ +#Generated from MacIceland.java +0x00 U+0000 +0x01 U+0001 +0x02 U+0002 +0x03 U+0003 +0x04 U+0004 +0x05 U+0005 +0x06 U+0006 +0x07 U+0007 +0x08 U+0008 +0x09 U+0009 +0x0a U+000a +0x0b U+000b +0x0c U+000c +0x0d U+000d +0x0e U+000e +0x0f U+000f +0x10 U+0010 +0x11 U+0011 +0x12 U+0012 +0x13 U+0013 +0x14 U+0014 +0x15 U+0015 +0x16 U+0016 +0x17 U+0017 +0x18 U+0018 +0x19 U+0019 +0x1a U+001a +0x1b U+001b +0x1c U+001c +0x1d U+001d +0x1e U+001e +0x1f U+001f +0x20 U+0020 +0x21 U+0021 +0x22 U+0022 +0x23 U+0023 +0x24 U+0024 +0x25 U+0025 +0x26 U+0026 +0x27 U+0027 +0x28 U+0028 +0x29 U+0029 +0x2a U+002a +0x2b U+002b +0x2c U+002c +0x2d U+002d +0x2e U+002e +0x2f U+002f +0x30 U+0030 +0x31 U+0031 +0x32 U+0032 +0x33 U+0033 +0x34 U+0034 +0x35 U+0035 +0x36 U+0036 +0x37 U+0037 +0x38 U+0038 +0x39 U+0039 +0x3a U+003a +0x3b U+003b +0x3c U+003c +0x3d U+003d +0x3e U+003e +0x3f U+003f +0x40 U+0040 +0x41 U+0041 +0x42 U+0042 +0x43 U+0043 +0x44 U+0044 +0x45 U+0045 +0x46 U+0046 +0x47 U+0047 +0x48 U+0048 +0x49 U+0049 +0x4a U+004a +0x4b U+004b +0x4c U+004c +0x4d U+004d +0x4e U+004e +0x4f U+004f +0x50 U+0050 +0x51 U+0051 +0x52 U+0052 +0x53 U+0053 +0x54 U+0054 +0x55 U+0055 +0x56 U+0056 +0x57 U+0057 +0x58 U+0058 +0x59 U+0059 +0x5a U+005a +0x5b U+005b +0x5c U+005c +0x5d U+005d +0x5e U+005e +0x5f U+005f +0x60 U+0060 +0x61 U+0061 +0x62 U+0062 +0x63 U+0063 +0x64 U+0064 +0x65 U+0065 +0x66 U+0066 +0x67 U+0067 +0x68 U+0068 +0x69 U+0069 +0x6a U+006a +0x6b U+006b +0x6c U+006c +0x6d U+006d +0x6e U+006e +0x6f U+006f +0x70 U+0070 +0x71 U+0071 +0x72 U+0072 +0x73 U+0073 +0x74 U+0074 +0x75 U+0075 +0x76 U+0076 +0x77 U+0077 +0x78 U+0078 +0x79 U+0079 +0x7a U+007a +0x7b U+007b +0x7c U+007c +0x7d U+007d +0x7e U+007e +0x7f U+007f +0x80 U+00c4 +0x81 U+00c5 +0x82 U+00c7 +0x83 U+00c9 +0x84 U+00d1 +0x85 U+00d6 +0x86 U+00dc +0x87 U+00e1 +0x88 U+00e0 +0x89 U+00e2 +0x8a U+00e4 +0x8b U+00e3 +0x8c U+00e5 +0x8d U+00e7 +0x8e U+00e9 +0x8f U+00e8 +0x90 U+00ea +0x91 U+00eb +0x92 U+00ed +0x93 U+00ec +0x94 U+00ee +0x95 U+00ef +0x96 U+00f1 +0x97 U+00f3 +0x98 U+00f2 +0x99 U+00f4 +0x9a U+00f6 +0x9b U+00f5 +0x9c U+00fa +0x9d U+00f9 +0x9e U+00fb +0x9f U+00fc +0xa0 U+00dd +0xa1 U+00b0 +0xa2 U+00a2 +0xa3 U+00a3 +0xa4 U+00a7 +0xa5 U+2022 +0xa6 U+00b6 +0xa7 U+00df +0xa8 U+00ae +0xa9 U+00a9 +0xaa U+2122 +0xab U+00b4 +0xac U+00a8 +0xad U+2260 +0xae U+00c6 +0xaf U+00d8 +0xb0 U+221e +0xb1 U+00b1 +0xb2 U+2264 +0xb3 U+2265 +0xb4 U+00a5 +0xb5 U+00b5 +0xb6 U+2202 +0xb7 U+2211 +0xb8 U+220f +0xb9 U+03c0 +0xba U+222b +0xbb U+00aa +0xbc U+00ba +0xbd U+2126 +0xbe U+00e6 +0xbf U+00f8 +0xc0 U+00bf +0xc1 U+00a1 +0xc2 U+00ac +0xc3 U+221a +0xc4 U+0192 +0xc5 U+2248 +0xc6 U+2206 +0xc7 U+00ab +0xc8 U+00bb +0xc9 U+2026 +0xca U+00a0 +0xcb U+00c0 +0xcc U+00c3 +0xcd U+00d5 +0xce U+0152 +0xcf U+0153 +0xd0 U+2013 +0xd1 U+2014 +0xd2 U+201c +0xd3 U+201d +0xd4 U+2018 +0xd5 U+2019 +0xd6 U+00f7 +0xd7 U+25ca +0xd8 U+00ff +0xd9 U+0178 +0xda U+2044 +0xdb U+00a4 +0xdc U+00d0 +0xdd U+00f0 +0xde U+00de +0xdf U+00fe +0xe0 U+00fd +0xe1 U+00b7 +0xe2 U+201a +0xe3 U+201e +0xe4 U+2030 +0xe5 U+00c2 +0xe6 U+00ca +0xe7 U+00c1 +0xe8 U+00cb +0xe9 U+00c8 +0xea U+00cd +0xeb U+00ce +0xec U+00cf +0xed U+00cc +0xee U+00d3 +0xef U+00d4 +0xf0 U+f8ff +0xf1 U+00d2 +0xf2 U+00da +0xf3 U+00db +0xf4 U+00d9 +0xf5 U+0131 +0xf6 U+02c6 +0xf7 U+02dc +0xf8 U+00af +0xf9 U+02d8 +0xfa U+02d9 +0xfb U+02da +0xfc U+00b8 +0xfd U+02dd +0xfe U+02db +0xff U+02c7 diff --git a/jdk/make/tools/CharsetMapping/MacRoman.map b/jdk/make/tools/CharsetMapping/MacRoman.map new file mode 100644 index 00000000000..4d27bb812f6 --- /dev/null +++ b/jdk/make/tools/CharsetMapping/MacRoman.map @@ -0,0 +1,257 @@ +#Generated from MacRoman.java +0x00 U+0000 +0x01 U+0001 +0x02 U+0002 +0x03 U+0003 +0x04 U+0004 +0x05 U+0005 +0x06 U+0006 +0x07 U+0007 +0x08 U+0008 +0x09 U+0009 +0x0a U+000a +0x0b U+000b +0x0c U+000c +0x0d U+000d +0x0e U+000e +0x0f U+000f +0x10 U+0010 +0x11 U+0011 +0x12 U+0012 +0x13 U+0013 +0x14 U+0014 +0x15 U+0015 +0x16 U+0016 +0x17 U+0017 +0x18 U+0018 +0x19 U+0019 +0x1a U+001a +0x1b U+001b +0x1c U+001c +0x1d U+001d +0x1e U+001e +0x1f U+001f +0x20 U+0020 +0x21 U+0021 +0x22 U+0022 +0x23 U+0023 +0x24 U+0024 +0x25 U+0025 +0x26 U+0026 +0x27 U+0027 +0x28 U+0028 +0x29 U+0029 +0x2a U+002a +0x2b U+002b +0x2c U+002c +0x2d U+002d +0x2e U+002e +0x2f U+002f +0x30 U+0030 +0x31 U+0031 +0x32 U+0032 +0x33 U+0033 +0x34 U+0034 +0x35 U+0035 +0x36 U+0036 +0x37 U+0037 +0x38 U+0038 +0x39 U+0039 +0x3a U+003a +0x3b U+003b +0x3c U+003c +0x3d U+003d +0x3e U+003e +0x3f U+003f +0x40 U+0040 +0x41 U+0041 +0x42 U+0042 +0x43 U+0043 +0x44 U+0044 +0x45 U+0045 +0x46 U+0046 +0x47 U+0047 +0x48 U+0048 +0x49 U+0049 +0x4a U+004a +0x4b U+004b +0x4c U+004c +0x4d U+004d +0x4e U+004e +0x4f U+004f +0x50 U+0050 +0x51 U+0051 +0x52 U+0052 +0x53 U+0053 +0x54 U+0054 +0x55 U+0055 +0x56 U+0056 +0x57 U+0057 +0x58 U+0058 +0x59 U+0059 +0x5a U+005a +0x5b U+005b +0x5c U+005c +0x5d U+005d +0x5e U+005e +0x5f U+005f +0x60 U+0060 +0x61 U+0061 +0x62 U+0062 +0x63 U+0063 +0x64 U+0064 +0x65 U+0065 +0x66 U+0066 +0x67 U+0067 +0x68 U+0068 +0x69 U+0069 +0x6a U+006a +0x6b U+006b +0x6c U+006c +0x6d U+006d +0x6e U+006e +0x6f U+006f +0x70 U+0070 +0x71 U+0071 +0x72 U+0072 +0x73 U+0073 +0x74 U+0074 +0x75 U+0075 +0x76 U+0076 +0x77 U+0077 +0x78 U+0078 +0x79 U+0079 +0x7a U+007a +0x7b U+007b +0x7c U+007c +0x7d U+007d +0x7e U+007e +0x7f U+007f +0x80 U+00c4 +0x81 U+00c5 +0x82 U+00c7 +0x83 U+00c9 +0x84 U+00d1 +0x85 U+00d6 +0x86 U+00dc +0x87 U+00e1 +0x88 U+00e0 +0x89 U+00e2 +0x8a U+00e4 +0x8b U+00e3 +0x8c U+00e5 +0x8d U+00e7 +0x8e U+00e9 +0x8f U+00e8 +0x90 U+00ea +0x91 U+00eb +0x92 U+00ed +0x93 U+00ec +0x94 U+00ee +0x95 U+00ef +0x96 U+00f1 +0x97 U+00f3 +0x98 U+00f2 +0x99 U+00f4 +0x9a U+00f6 +0x9b U+00f5 +0x9c U+00fa +0x9d U+00f9 +0x9e U+00fb +0x9f U+00fc +0xa0 U+2020 +0xa1 U+00b0 +0xa2 U+00a2 +0xa3 U+00a3 +0xa4 U+00a7 +0xa5 U+2022 +0xa6 U+00b6 +0xa7 U+00df +0xa8 U+00ae +0xa9 U+00a9 +0xaa U+2122 +0xab U+00b4 +0xac U+00a8 +0xad U+2260 +0xae U+00c6 +0xaf U+00d8 +0xb0 U+221e +0xb1 U+00b1 +0xb2 U+2264 +0xb3 U+2265 +0xb4 U+00a5 +0xb5 U+00b5 +0xb6 U+2202 +0xb7 U+2211 +0xb8 U+220f +0xb9 U+03c0 +0xba U+222b +0xbb U+00aa +0xbc U+00ba +0xbd U+03a9 +0xbe U+00e6 +0xbf U+00f8 +0xc0 U+00bf +0xc1 U+00a1 +0xc2 U+00ac +0xc3 U+221a +0xc4 U+0192 +0xc5 U+2248 +0xc6 U+2206 +0xc7 U+00ab +0xc8 U+00bb +0xc9 U+2026 +0xca U+00a0 +0xcb U+00c0 +0xcc U+00c3 +0xcd U+00d5 +0xce U+0152 +0xcf U+0153 +0xd0 U+2013 +0xd1 U+2014 +0xd2 U+201c +0xd3 U+201d +0xd4 U+2018 +0xd5 U+2019 +0xd6 U+00f7 +0xd7 U+25ca +0xd8 U+00ff +0xd9 U+0178 +0xda U+2044 +0xdb U+20ac +0xdc U+2039 +0xdd U+203a +0xde U+fb01 +0xdf U+fb02 +0xe0 U+2021 +0xe1 U+00b7 +0xe2 U+201a +0xe3 U+201e +0xe4 U+2030 +0xe5 U+00c2 +0xe6 U+00ca +0xe7 U+00c1 +0xe8 U+00cb +0xe9 U+00c8 +0xea U+00cd +0xeb U+00ce +0xec U+00cf +0xed U+00cc +0xee U+00d3 +0xef U+00d4 +0xf0 U+f8ff +0xf1 U+00d2 +0xf2 U+00da +0xf3 U+00db +0xf4 U+00d9 +0xf5 U+0131 +0xf6 U+02c6 +0xf7 U+02dc +0xf8 U+00af +0xf9 U+02d8 +0xfa U+02d9 +0xfb U+02da +0xfc U+00b8 +0xfd U+02dd +0xfe U+02db +0xff U+02c7 diff --git a/jdk/make/tools/CharsetMapping/MacRomania.map b/jdk/make/tools/CharsetMapping/MacRomania.map new file mode 100644 index 00000000000..622bc636edd --- /dev/null +++ b/jdk/make/tools/CharsetMapping/MacRomania.map @@ -0,0 +1,257 @@ +#Generated from MacRomania.java +0x00 U+0000 +0x01 U+0001 +0x02 U+0002 +0x03 U+0003 +0x04 U+0004 +0x05 U+0005 +0x06 U+0006 +0x07 U+0007 +0x08 U+0008 +0x09 U+0009 +0x0a U+000a +0x0b U+000b +0x0c U+000c +0x0d U+000d +0x0e U+000e +0x0f U+000f +0x10 U+0010 +0x11 U+0011 +0x12 U+0012 +0x13 U+0013 +0x14 U+0014 +0x15 U+0015 +0x16 U+0016 +0x17 U+0017 +0x18 U+0018 +0x19 U+0019 +0x1a U+001a +0x1b U+001b +0x1c U+001c +0x1d U+001d +0x1e U+001e +0x1f U+001f +0x20 U+0020 +0x21 U+0021 +0x22 U+0022 +0x23 U+0023 +0x24 U+0024 +0x25 U+0025 +0x26 U+0026 +0x27 U+0027 +0x28 U+0028 +0x29 U+0029 +0x2a U+002a +0x2b U+002b +0x2c U+002c +0x2d U+002d +0x2e U+002e +0x2f U+002f +0x30 U+0030 +0x31 U+0031 +0x32 U+0032 +0x33 U+0033 +0x34 U+0034 +0x35 U+0035 +0x36 U+0036 +0x37 U+0037 +0x38 U+0038 +0x39 U+0039 +0x3a U+003a +0x3b U+003b +0x3c U+003c +0x3d U+003d +0x3e U+003e +0x3f U+003f +0x40 U+0040 +0x41 U+0041 +0x42 U+0042 +0x43 U+0043 +0x44 U+0044 +0x45 U+0045 +0x46 U+0046 +0x47 U+0047 +0x48 U+0048 +0x49 U+0049 +0x4a U+004a +0x4b U+004b +0x4c U+004c +0x4d U+004d +0x4e U+004e +0x4f U+004f +0x50 U+0050 +0x51 U+0051 +0x52 U+0052 +0x53 U+0053 +0x54 U+0054 +0x55 U+0055 +0x56 U+0056 +0x57 U+0057 +0x58 U+0058 +0x59 U+0059 +0x5a U+005a +0x5b U+005b +0x5c U+005c +0x5d U+005d +0x5e U+005e +0x5f U+005f +0x60 U+0060 +0x61 U+0061 +0x62 U+0062 +0x63 U+0063 +0x64 U+0064 +0x65 U+0065 +0x66 U+0066 +0x67 U+0067 +0x68 U+0068 +0x69 U+0069 +0x6a U+006a +0x6b U+006b +0x6c U+006c +0x6d U+006d +0x6e U+006e +0x6f U+006f +0x70 U+0070 +0x71 U+0071 +0x72 U+0072 +0x73 U+0073 +0x74 U+0074 +0x75 U+0075 +0x76 U+0076 +0x77 U+0077 +0x78 U+0078 +0x79 U+0079 +0x7a U+007a +0x7b U+007b +0x7c U+007c +0x7d U+007d +0x7e U+007e +0x7f U+007f +0x80 U+00c4 +0x81 U+00c5 +0x82 U+00c7 +0x83 U+00c9 +0x84 U+00d1 +0x85 U+00d6 +0x86 U+00dc +0x87 U+00e1 +0x88 U+00e0 +0x89 U+00e2 +0x8a U+00e4 +0x8b U+00e3 +0x8c U+00e5 +0x8d U+00e7 +0x8e U+00e9 +0x8f U+00e8 +0x90 U+00ea +0x91 U+00eb +0x92 U+00ed +0x93 U+00ec +0x94 U+00ee +0x95 U+00ef +0x96 U+00f1 +0x97 U+00f3 +0x98 U+00f2 +0x99 U+00f4 +0x9a U+00f6 +0x9b U+00f5 +0x9c U+00fa +0x9d U+00f9 +0x9e U+00fb +0x9f U+00fc +0xa0 U+2020 +0xa1 U+00b0 +0xa2 U+00a2 +0xa3 U+00a3 +0xa4 U+00a7 +0xa5 U+2022 +0xa6 U+00b6 +0xa7 U+00df +0xa8 U+00ae +0xa9 U+00a9 +0xaa U+2122 +0xab U+00b4 +0xac U+00a8 +0xad U+2260 +0xae U+0102 +0xaf U+015e +0xb0 U+221e +0xb1 U+00b1 +0xb2 U+2264 +0xb3 U+2265 +0xb4 U+00a5 +0xb5 U+00b5 +0xb6 U+2202 +0xb7 U+2211 +0xb8 U+220f +0xb9 U+03c0 +0xba U+222b +0xbb U+00aa +0xbc U+00ba +0xbd U+2126 +0xbe U+0103 +0xbf U+015f +0xc0 U+00bf +0xc1 U+00a1 +0xc2 U+00ac +0xc3 U+221a +0xc4 U+0192 +0xc5 U+2248 +0xc6 U+2206 +0xc7 U+00ab +0xc8 U+00bb +0xc9 U+2026 +0xca U+00a0 +0xcb U+00c0 +0xcc U+00c3 +0xcd U+00d5 +0xce U+0152 +0xcf U+0153 +0xd0 U+2013 +0xd1 U+2014 +0xd2 U+201c +0xd3 U+201d +0xd4 U+2018 +0xd5 U+2019 +0xd6 U+00f7 +0xd7 U+25ca +0xd8 U+00ff +0xd9 U+0178 +0xda U+2044 +0xdb U+00a4 +0xdc U+2039 +0xdd U+203a +0xde U+0162 +0xdf U+0163 +0xe0 U+2021 +0xe1 U+00b7 +0xe2 U+201a +0xe3 U+201e +0xe4 U+2030 +0xe5 U+00c2 +0xe6 U+00ca +0xe7 U+00c1 +0xe8 U+00cb +0xe9 U+00c8 +0xea U+00cd +0xeb U+00ce +0xec U+00cf +0xed U+00cc +0xee U+00d3 +0xef U+00d4 +0xf0 U+f8ff +0xf1 U+00d2 +0xf2 U+00da +0xf3 U+00db +0xf4 U+00d9 +0xf5 U+0131 +0xf6 U+02c6 +0xf7 U+02dc +0xf8 U+00af +0xf9 U+02d8 +0xfa U+02d9 +0xfb U+02da +0xfc U+00b8 +0xfd U+02dd +0xfe U+02db +0xff U+02c7 diff --git a/jdk/make/tools/CharsetMapping/MacSymbol.map b/jdk/make/tools/CharsetMapping/MacSymbol.map new file mode 100644 index 00000000000..c3750f2f641 --- /dev/null +++ b/jdk/make/tools/CharsetMapping/MacSymbol.map @@ -0,0 +1,257 @@ +#Generated from MacSymbol.java +0x00 U+0000 +0x01 U+0001 +0x02 U+0002 +0x03 U+0003 +0x04 U+0004 +0x05 U+0005 +0x06 U+0006 +0x07 U+0007 +0x08 U+0008 +0x09 U+0009 +0x0a U+000a +0x0b U+000b +0x0c U+000c +0x0d U+000d +0x0e U+000e +0x0f U+000f +0x10 U+0010 +0x11 U+0011 +0x12 U+0012 +0x13 U+0013 +0x14 U+0014 +0x15 U+0015 +0x16 U+0016 +0x17 U+0017 +0x18 U+0018 +0x19 U+0019 +0x1a U+001a +0x1b U+001b +0x1c U+001c +0x1d U+001d +0x1e U+001e +0x1f U+001f +0x20 U+0020 +0x21 U+0021 +0x22 U+2200 +0x23 U+0023 +0x24 U+2203 +0x25 U+0025 +0x26 U+0026 +0x27 U+220d +0x28 U+0028 +0x29 U+0029 +0x2a U+2217 +0x2b U+002b +0x2c U+002c +0x2d U+2212 +0x2e U+002e +0x2f U+002f +0x30 U+0030 +0x31 U+0031 +0x32 U+0032 +0x33 U+0033 +0x34 U+0034 +0x35 U+0035 +0x36 U+0036 +0x37 U+0037 +0x38 U+0038 +0x39 U+0039 +0x3a U+003a +0x3b U+003b +0x3c U+003c +0x3d U+003d +0x3e U+003e +0x3f U+003f +0x40 U+2245 +0x41 U+0391 +0x42 U+0392 +0x43 U+03a7 +0x44 U+0394 +0x45 U+0395 +0x46 U+03a6 +0x47 U+0393 +0x48 U+0397 +0x49 U+0399 +0x4a U+03d1 +0x4b U+039a +0x4c U+039b +0x4d U+039c +0x4e U+039d +0x4f U+039f +0x50 U+03a0 +0x51 U+0398 +0x52 U+03a1 +0x53 U+03a3 +0x54 U+03a4 +0x55 U+03a5 +0x56 U+03c2 +0x57 U+03a9 +0x58 U+039e +0x59 U+03a8 +0x5a U+0396 +0x5b U+005b +0x5c U+2234 +0x5d U+005d +0x5e U+22a5 +0x5f U+005f +0x60 U+f8e5 +0x61 U+03b1 +0x62 U+03b2 +0x63 U+03c7 +0x64 U+03b4 +0x65 U+03b5 +0x66 U+03c6 +0x67 U+03b3 +0x68 U+03b7 +0x69 U+03b9 +0x6a U+03d5 +0x6b U+03ba +0x6c U+03bb +0x6d U+03bc +0x6e U+03bd +0x6f U+03bf +0x70 U+03c0 +0x71 U+03b8 +0x72 U+03c1 +0x73 U+03c3 +0x74 U+03c4 +0x75 U+03c5 +0x76 U+03d6 +0x77 U+03c9 +0x78 U+03be +0x79 U+03c8 +0x7a U+03b6 +0x7b U+007b +0x7c U+007c +0x7d U+007d +0x7e U+223c +0x7f U+007f +0x80 U+fffd +0x81 U+fffd +0x82 U+fffd +0x83 U+fffd +0x84 U+fffd +0x85 U+fffd +0x86 U+fffd +0x87 U+fffd +0x88 U+fffd +0x89 U+fffd +0x8a U+fffd +0x8b U+fffd +0x8c U+fffd +0x8d U+fffd +0x8e U+fffd +0x8f U+fffd +0x90 U+fffd +0x91 U+fffd +0x92 U+fffd +0x93 U+fffd +0x94 U+fffd +0x95 U+fffd +0x96 U+fffd +0x97 U+fffd +0x98 U+fffd +0x99 U+fffd +0x9a U+fffd +0x9b U+fffd +0x9c U+fffd +0x9d U+fffd +0x9e U+fffd +0x9f U+fffd +0xa0 U+20ac +0xa1 U+03d2 +0xa2 U+2032 +0xa3 U+2264 +0xa4 U+2044 +0xa5 U+221e +0xa6 U+0192 +0xa7 U+2663 +0xa8 U+2666 +0xa9 U+2665 +0xaa U+2660 +0xab U+2194 +0xac U+2190 +0xad U+2191 +0xae U+2192 +0xaf U+2193 +0xb0 U+00b0 +0xb1 U+00b1 +0xb2 U+2033 +0xb3 U+2265 +0xb4 U+00d7 +0xb5 U+221d +0xb6 U+2202 +0xb7 U+2022 +0xb8 U+00f7 +0xb9 U+2260 +0xba U+2261 +0xbb U+2248 +0xbc U+2026 +0xbd U+f8e6 +0xbe U+f8e7 +0xbf U+21b5 +0xc0 U+2135 +0xc1 U+2111 +0xc2 U+211c +0xc3 U+2118 +0xc4 U+2297 +0xc5 U+2295 +0xc6 U+2205 +0xc7 U+2229 +0xc8 U+222a +0xc9 U+2283 +0xca U+2287 +0xcb U+2284 +0xcc U+2282 +0xcd U+2286 +0xce U+2208 +0xcf U+2209 +0xd0 U+2220 +0xd1 U+2207 +0xd2 U+00ae +0xd3 U+00a9 +0xd4 U+2122 +0xd5 U+220f +0xd6 U+221a +0xd7 U+22c5 +0xd8 U+00ac +0xd9 U+2227 +0xda U+2228 +0xdb U+21d4 +0xdc U+21d0 +0xdd U+21d1 +0xde U+21d2 +0xdf U+21d3 +0xe0 U+22c4 +0xe1 U+3008 +0xe2 U+fffd +0xe3 U+fffd +0xe4 U+fffd +0xe5 U+2211 +0xe6 U+fffd +0xe7 U+fffd +0xe8 U+fffd +0xe9 U+fffd +0xea U+fffd +0xeb U+fffd +0xec U+fffd +0xed U+fffd +0xee U+fffd +0xef U+f8f4 +0xf0 U+f8ff +0xf1 U+3009 +0xf2 U+222b +0xf3 U+2320 +0xf4 U+fffd +0xf5 U+2321 +0xf6 U+fffd +0xf7 U+fffd +0xf8 U+fffd +0xf9 U+fffd +0xfa U+fffd +0xfb U+fffd +0xfc U+fffd +0xfd U+fffd +0xfe U+fffd +0xff U+fffd diff --git a/jdk/make/tools/CharsetMapping/MacThai.map b/jdk/make/tools/CharsetMapping/MacThai.map new file mode 100644 index 00000000000..68cf8ba727e --- /dev/null +++ b/jdk/make/tools/CharsetMapping/MacThai.map @@ -0,0 +1,257 @@ +#Generated from MacThai.java +0x00 U+0000 +0x01 U+0001 +0x02 U+0002 +0x03 U+0003 +0x04 U+0004 +0x05 U+0005 +0x06 U+0006 +0x07 U+0007 +0x08 U+0008 +0x09 U+0009 +0x0a U+000a +0x0b U+000b +0x0c U+000c +0x0d U+000d +0x0e U+000e +0x0f U+000f +0x10 U+0010 +0x11 U+0011 +0x12 U+0012 +0x13 U+0013 +0x14 U+0014 +0x15 U+0015 +0x16 U+0016 +0x17 U+0017 +0x18 U+0018 +0x19 U+0019 +0x1a U+001a +0x1b U+001b +0x1c U+001c +0x1d U+001d +0x1e U+001e +0x1f U+001f +0x20 U+0020 +0x21 U+0021 +0x22 U+0022 +0x23 U+0023 +0x24 U+0024 +0x25 U+0025 +0x26 U+0026 +0x27 U+0027 +0x28 U+0028 +0x29 U+0029 +0x2a U+002a +0x2b U+002b +0x2c U+002c +0x2d U+002d +0x2e U+002e +0x2f U+002f +0x30 U+0030 +0x31 U+0031 +0x32 U+0032 +0x33 U+0033 +0x34 U+0034 +0x35 U+0035 +0x36 U+0036 +0x37 U+0037 +0x38 U+0038 +0x39 U+0039 +0x3a U+003a +0x3b U+003b +0x3c U+003c +0x3d U+003d +0x3e U+003e +0x3f U+003f +0x40 U+0040 +0x41 U+0041 +0x42 U+0042 +0x43 U+0043 +0x44 U+0044 +0x45 U+0045 +0x46 U+0046 +0x47 U+0047 +0x48 U+0048 +0x49 U+0049 +0x4a U+004a +0x4b U+004b +0x4c U+004c +0x4d U+004d +0x4e U+004e +0x4f U+004f +0x50 U+0050 +0x51 U+0051 +0x52 U+0052 +0x53 U+0053 +0x54 U+0054 +0x55 U+0055 +0x56 U+0056 +0x57 U+0057 +0x58 U+0058 +0x59 U+0059 +0x5a U+005a +0x5b U+005b +0x5c U+005c +0x5d U+005d +0x5e U+005e +0x5f U+005f +0x60 U+0060 +0x61 U+0061 +0x62 U+0062 +0x63 U+0063 +0x64 U+0064 +0x65 U+0065 +0x66 U+0066 +0x67 U+0067 +0x68 U+0068 +0x69 U+0069 +0x6a U+006a +0x6b U+006b +0x6c U+006c +0x6d U+006d +0x6e U+006e +0x6f U+006f +0x70 U+0070 +0x71 U+0071 +0x72 U+0072 +0x73 U+0073 +0x74 U+0074 +0x75 U+0075 +0x76 U+0076 +0x77 U+0077 +0x78 U+0078 +0x79 U+0079 +0x7a U+007a +0x7b U+007b +0x7c U+007c +0x7d U+007d +0x7e U+007e +0x7f U+007f +0x80 U+00ab +0x81 U+00bb +0x82 U+2026 +0x83 U+f88c +0x84 U+f88f +0x85 U+f892 +0x86 U+f895 +0x87 U+f898 +0x88 U+f88b +0x89 U+f88e +0x8a U+f891 +0x8b U+f894 +0x8c U+f897 +0x8d U+201c +0x8e U+201d +0x8f U+f899 +0x90 U+fffd +0x91 U+2022 +0x92 U+f884 +0x93 U+f889 +0x94 U+f885 +0x95 U+f886 +0x96 U+f887 +0x97 U+f888 +0x98 U+f88a +0x99 U+f88d +0x9a U+f890 +0x9b U+f893 +0x9c U+f896 +0x9d U+2018 +0x9e U+2019 +0x9f U+fffd +0xa0 U+00a0 +0xa1 U+0e01 +0xa2 U+0e02 +0xa3 U+0e03 +0xa4 U+0e04 +0xa5 U+0e05 +0xa6 U+0e06 +0xa7 U+0e07 +0xa8 U+0e08 +0xa9 U+0e09 +0xaa U+0e0a +0xab U+0e0b +0xac U+0e0c +0xad U+0e0d +0xae U+0e0e +0xaf U+0e0f +0xb0 U+0e10 +0xb1 U+0e11 +0xb2 U+0e12 +0xb3 U+0e13 +0xb4 U+0e14 +0xb5 U+0e15 +0xb6 U+0e16 +0xb7 U+0e17 +0xb8 U+0e18 +0xb9 U+0e19 +0xba U+0e1a +0xbb U+0e1b +0xbc U+0e1c +0xbd U+0e1d +0xbe U+0e1e +0xbf U+0e1f +0xc0 U+0e20 +0xc1 U+0e21 +0xc2 U+0e22 +0xc3 U+0e23 +0xc4 U+0e24 +0xc5 U+0e25 +0xc6 U+0e26 +0xc7 U+0e27 +0xc8 U+0e28 +0xc9 U+0e29 +0xca U+0e2a +0xcb U+0e2b +0xcc U+0e2c +0xcd U+0e2d +0xce U+0e2e +0xcf U+0e2f +0xd0 U+0e30 +0xd1 U+0e31 +0xd2 U+0e32 +0xd3 U+0e33 +0xd4 U+0e34 +0xd5 U+0e35 +0xd6 U+0e36 +0xd7 U+0e37 +0xd8 U+0e38 +0xd9 U+0e39 +0xda U+0e3a +0xdb U+feff +0xdc U+200b +0xdd U+2013 +0xde U+2014 +0xdf U+0e3f +0xe0 U+0e40 +0xe1 U+0e41 +0xe2 U+0e42 +0xe3 U+0e43 +0xe4 U+0e44 +0xe5 U+0e45 +0xe6 U+0e46 +0xe7 U+0e47 +0xe8 U+0e48 +0xe9 U+0e49 +0xea U+0e4a +0xeb U+0e4b +0xec U+0e4c +0xed U+0e4d +0xee U+2122 +0xef U+0e4f +0xf0 U+0e50 +0xf1 U+0e51 +0xf2 U+0e52 +0xf3 U+0e53 +0xf4 U+0e54 +0xf5 U+0e55 +0xf6 U+0e56 +0xf7 U+0e57 +0xf8 U+0e58 +0xf9 U+0e59 +0xfa U+00ae +0xfb U+00a9 +0xfc U+fffd +0xfd U+fffd +0xfe U+fffd +0xff U+fffd diff --git a/jdk/make/tools/CharsetMapping/MacTurkish.map b/jdk/make/tools/CharsetMapping/MacTurkish.map new file mode 100644 index 00000000000..d316ca2d592 --- /dev/null +++ b/jdk/make/tools/CharsetMapping/MacTurkish.map @@ -0,0 +1,257 @@ +#Generated from MacTurkish.java +0x00 U+0000 +0x01 U+0001 +0x02 U+0002 +0x03 U+0003 +0x04 U+0004 +0x05 U+0005 +0x06 U+0006 +0x07 U+0007 +0x08 U+0008 +0x09 U+0009 +0x0a U+000a +0x0b U+000b +0x0c U+000c +0x0d U+000d +0x0e U+000e +0x0f U+000f +0x10 U+0010 +0x11 U+0011 +0x12 U+0012 +0x13 U+0013 +0x14 U+0014 +0x15 U+0015 +0x16 U+0016 +0x17 U+0017 +0x18 U+0018 +0x19 U+0019 +0x1a U+001a +0x1b U+001b +0x1c U+001c +0x1d U+001d +0x1e U+001e +0x1f U+001f +0x20 U+0020 +0x21 U+0021 +0x22 U+0022 +0x23 U+0023 +0x24 U+0024 +0x25 U+0025 +0x26 U+0026 +0x27 U+0027 +0x28 U+0028 +0x29 U+0029 +0x2a U+002a +0x2b U+002b +0x2c U+002c +0x2d U+002d +0x2e U+002e +0x2f U+002f +0x30 U+0030 +0x31 U+0031 +0x32 U+0032 +0x33 U+0033 +0x34 U+0034 +0x35 U+0035 +0x36 U+0036 +0x37 U+0037 +0x38 U+0038 +0x39 U+0039 +0x3a U+003a +0x3b U+003b +0x3c U+003c +0x3d U+003d +0x3e U+003e +0x3f U+003f +0x40 U+0040 +0x41 U+0041 +0x42 U+0042 +0x43 U+0043 +0x44 U+0044 +0x45 U+0045 +0x46 U+0046 +0x47 U+0047 +0x48 U+0048 +0x49 U+0049 +0x4a U+004a +0x4b U+004b +0x4c U+004c +0x4d U+004d +0x4e U+004e +0x4f U+004f +0x50 U+0050 +0x51 U+0051 +0x52 U+0052 +0x53 U+0053 +0x54 U+0054 +0x55 U+0055 +0x56 U+0056 +0x57 U+0057 +0x58 U+0058 +0x59 U+0059 +0x5a U+005a +0x5b U+005b +0x5c U+005c +0x5d U+005d +0x5e U+005e +0x5f U+005f +0x60 U+0060 +0x61 U+0061 +0x62 U+0062 +0x63 U+0063 +0x64 U+0064 +0x65 U+0065 +0x66 U+0066 +0x67 U+0067 +0x68 U+0068 +0x69 U+0069 +0x6a U+006a +0x6b U+006b +0x6c U+006c +0x6d U+006d +0x6e U+006e +0x6f U+006f +0x70 U+0070 +0x71 U+0071 +0x72 U+0072 +0x73 U+0073 +0x74 U+0074 +0x75 U+0075 +0x76 U+0076 +0x77 U+0077 +0x78 U+0078 +0x79 U+0079 +0x7a U+007a +0x7b U+007b +0x7c U+007c +0x7d U+007d +0x7e U+007e +0x7f U+007f +0x80 U+00c4 +0x81 U+00c5 +0x82 U+00c7 +0x83 U+00c9 +0x84 U+00d1 +0x85 U+00d6 +0x86 U+00dc +0x87 U+00e1 +0x88 U+00e0 +0x89 U+00e2 +0x8a U+00e4 +0x8b U+00e3 +0x8c U+00e5 +0x8d U+00e7 +0x8e U+00e9 +0x8f U+00e8 +0x90 U+00ea +0x91 U+00eb +0x92 U+00ed +0x93 U+00ec +0x94 U+00ee +0x95 U+00ef +0x96 U+00f1 +0x97 U+00f3 +0x98 U+00f2 +0x99 U+00f4 +0x9a U+00f6 +0x9b U+00f5 +0x9c U+00fa +0x9d U+00f9 +0x9e U+00fb +0x9f U+00fc +0xa0 U+2020 +0xa1 U+00b0 +0xa2 U+00a2 +0xa3 U+00a3 +0xa4 U+00a7 +0xa5 U+2022 +0xa6 U+00b6 +0xa7 U+00df +0xa8 U+00ae +0xa9 U+00a9 +0xaa U+2122 +0xab U+00b4 +0xac U+00a8 +0xad U+2260 +0xae U+00c6 +0xaf U+00d8 +0xb0 U+221e +0xb1 U+00b1 +0xb2 U+2264 +0xb3 U+2265 +0xb4 U+00a5 +0xb5 U+00b5 +0xb6 U+2202 +0xb7 U+2211 +0xb8 U+220f +0xb9 U+03c0 +0xba U+222b +0xbb U+00aa +0xbc U+00ba +0xbd U+2126 +0xbe U+00e6 +0xbf U+00f8 +0xc0 U+00bf +0xc1 U+00a1 +0xc2 U+00ac +0xc3 U+221a +0xc4 U+0192 +0xc5 U+2248 +0xc6 U+2206 +0xc7 U+00ab +0xc8 U+00bb +0xc9 U+2026 +0xca U+00a0 +0xcb U+00c0 +0xcc U+00c3 +0xcd U+00d5 +0xce U+0152 +0xcf U+0153 +0xd0 U+2013 +0xd1 U+2014 +0xd2 U+201c +0xd3 U+201d +0xd4 U+2018 +0xd5 U+2019 +0xd6 U+00f7 +0xd7 U+25ca +0xd8 U+00ff +0xd9 U+0178 +0xda U+011e +0xdb U+011f +0xdc U+0130 +0xdd U+0131 +0xde U+015e +0xdf U+015f +0xe0 U+2021 +0xe1 U+00b7 +0xe2 U+201a +0xe3 U+201e +0xe4 U+2030 +0xe5 U+00c2 +0xe6 U+00ca +0xe7 U+00c1 +0xe8 U+00cb +0xe9 U+00c8 +0xea U+00cd +0xeb U+00ce +0xec U+00cf +0xed U+00cc +0xee U+00d3 +0xef U+00d4 +0xf0 U+f8ff +0xf1 U+00d2 +0xf2 U+00da +0xf3 U+00db +0xf4 U+00d9 +0xf5 U+fffd +0xf6 U+02c6 +0xf7 U+02dc +0xf8 U+00af +0xf9 U+02d8 +0xfa U+02d9 +0xfb U+02da +0xfc U+00b8 +0xfd U+02dd +0xfe U+02db +0xff U+02c7 diff --git a/jdk/make/tools/CharsetMapping/MacUkraine.map b/jdk/make/tools/CharsetMapping/MacUkraine.map new file mode 100644 index 00000000000..93f1dbf56e3 --- /dev/null +++ b/jdk/make/tools/CharsetMapping/MacUkraine.map @@ -0,0 +1,257 @@ +#Generated from MacUkraine.java +0x00 U+0000 +0x01 U+0001 +0x02 U+0002 +0x03 U+0003 +0x04 U+0004 +0x05 U+0005 +0x06 U+0006 +0x07 U+0007 +0x08 U+0008 +0x09 U+0009 +0x0a U+000a +0x0b U+000b +0x0c U+000c +0x0d U+000d +0x0e U+000e +0x0f U+000f +0x10 U+0010 +0x11 U+0011 +0x12 U+0012 +0x13 U+0013 +0x14 U+0014 +0x15 U+0015 +0x16 U+0016 +0x17 U+0017 +0x18 U+0018 +0x19 U+0019 +0x1a U+001a +0x1b U+001b +0x1c U+001c +0x1d U+001d +0x1e U+001e +0x1f U+001f +0x20 U+0020 +0x21 U+0021 +0x22 U+0022 +0x23 U+0023 +0x24 U+0024 +0x25 U+0025 +0x26 U+0026 +0x27 U+0027 +0x28 U+0028 +0x29 U+0029 +0x2a U+002a +0x2b U+002b +0x2c U+002c +0x2d U+002d +0x2e U+002e +0x2f U+002f +0x30 U+0030 +0x31 U+0031 +0x32 U+0032 +0x33 U+0033 +0x34 U+0034 +0x35 U+0035 +0x36 U+0036 +0x37 U+0037 +0x38 U+0038 +0x39 U+0039 +0x3a U+003a +0x3b U+003b +0x3c U+003c +0x3d U+003d +0x3e U+003e +0x3f U+003f +0x40 U+0040 +0x41 U+0041 +0x42 U+0042 +0x43 U+0043 +0x44 U+0044 +0x45 U+0045 +0x46 U+0046 +0x47 U+0047 +0x48 U+0048 +0x49 U+0049 +0x4a U+004a +0x4b U+004b +0x4c U+004c +0x4d U+004d +0x4e U+004e +0x4f U+004f +0x50 U+0050 +0x51 U+0051 +0x52 U+0052 +0x53 U+0053 +0x54 U+0054 +0x55 U+0055 +0x56 U+0056 +0x57 U+0057 +0x58 U+0058 +0x59 U+0059 +0x5a U+005a +0x5b U+005b +0x5c U+005c +0x5d U+005d +0x5e U+005e +0x5f U+005f +0x60 U+0060 +0x61 U+0061 +0x62 U+0062 +0x63 U+0063 +0x64 U+0064 +0x65 U+0065 +0x66 U+0066 +0x67 U+0067 +0x68 U+0068 +0x69 U+0069 +0x6a U+006a +0x6b U+006b +0x6c U+006c +0x6d U+006d +0x6e U+006e +0x6f U+006f +0x70 U+0070 +0x71 U+0071 +0x72 U+0072 +0x73 U+0073 +0x74 U+0074 +0x75 U+0075 +0x76 U+0076 +0x77 U+0077 +0x78 U+0078 +0x79 U+0079 +0x7a U+007a +0x7b U+007b +0x7c U+007c +0x7d U+007d +0x7e U+007e +0x7f U+007f +0x80 U+0410 +0x81 U+0411 +0x82 U+0412 +0x83 U+0413 +0x84 U+0414 +0x85 U+0415 +0x86 U+0416 +0x87 U+0417 +0x88 U+0418 +0x89 U+0419 +0x8a U+041a +0x8b U+041b +0x8c U+041c +0x8d U+041d +0x8e U+041e +0x8f U+041f +0x90 U+0420 +0x91 U+0421 +0x92 U+0422 +0x93 U+0423 +0x94 U+0424 +0x95 U+0425 +0x96 U+0426 +0x97 U+0427 +0x98 U+0428 +0x99 U+0429 +0x9a U+042a +0x9b U+042b +0x9c U+042c +0x9d U+042d +0x9e U+042e +0x9f U+042f +0xa0 U+2020 +0xa1 U+00b0 +0xa2 U+0490 +0xa3 U+00a3 +0xa4 U+00a7 +0xa5 U+2022 +0xa6 U+00b6 +0xa7 U+0406 +0xa8 U+00ae +0xa9 U+00a9 +0xaa U+2122 +0xab U+0402 +0xac U+0452 +0xad U+2260 +0xae U+0403 +0xaf U+0453 +0xb0 U+221e +0xb1 U+00b1 +0xb2 U+2264 +0xb3 U+2265 +0xb4 U+0456 +0xb5 U+00b5 +0xb6 U+0491 +0xb7 U+0408 +0xb8 U+0404 +0xb9 U+0454 +0xba U+0407 +0xbb U+0457 +0xbc U+0409 +0xbd U+0459 +0xbe U+040a +0xbf U+045a +0xc0 U+0458 +0xc1 U+0405 +0xc2 U+00ac +0xc3 U+221a +0xc4 U+0192 +0xc5 U+2248 +0xc6 U+2206 +0xc7 U+00ab +0xc8 U+00bb +0xc9 U+2026 +0xca U+00a0 +0xcb U+040b +0xcc U+045b +0xcd U+040c +0xce U+045c +0xcf U+0455 +0xd0 U+2013 +0xd1 U+2014 +0xd2 U+201c +0xd3 U+201d +0xd4 U+2018 +0xd5 U+2019 +0xd6 U+00f7 +0xd7 U+201e +0xd8 U+040e +0xd9 U+045e +0xda U+040f +0xdb U+045f +0xdc U+2116 +0xdd U+0401 +0xde U+0451 +0xdf U+044f +0xe0 U+0430 +0xe1 U+0431 +0xe2 U+0432 +0xe3 U+0433 +0xe4 U+0434 +0xe5 U+0435 +0xe6 U+0436 +0xe7 U+0437 +0xe8 U+0438 +0xe9 U+0439 +0xea U+043a +0xeb U+043b +0xec U+043c +0xed U+043d +0xee U+043e +0xef U+043f +0xf0 U+0440 +0xf1 U+0441 +0xf2 U+0442 +0xf3 U+0443 +0xf4 U+0444 +0xf5 U+0445 +0xf6 U+0446 +0xf7 U+0447 +0xf8 U+0448 +0xf9 U+0449 +0xfa U+044a +0xfb U+044b +0xfc U+044c +0xfd U+044d +0xfe U+044e +0xff U+00a4 diff --git a/jdk/make/tools/CharsetMapping/SingleByte-X.java b/jdk/make/tools/CharsetMapping/SingleByte-X.java new file mode 100644 index 00000000000..f6c080a20f0 --- /dev/null +++ b/jdk/make/tools/CharsetMapping/SingleByte-X.java @@ -0,0 +1,83 @@ +/* + * Copyright 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. + */ + +package $PACKAGE$; + +import java.nio.charset.Charset; +import java.nio.charset.CharsetDecoder; +import java.nio.charset.CharsetEncoder; +import sun.nio.cs.StandardCharsets; +import sun.nio.cs.SingleByte; +import sun.nio.cs.HistoricallyNamedCharset; +import static sun.nio.cs.CharsetMapping.*; + +public class $NAME_CLZ$ extends Charset implements HistoricallyNamedCharset +{ + public $NAME_CLZ$() { + super("$NAME_CS$", $NAME_ALIASES$); + } + + public String historicalName() { + return "$NAME_HIS$"; + } + + public boolean contains(Charset cs) { + $CONTAINS$; + } + + public CharsetDecoder newDecoder() { + return new SingleByte.Decoder(this, b2c); + } + + public CharsetEncoder newEncoder() { + return new SingleByte.Encoder(this, c2b, c2bIndex); + } + + public String getDecoderSingleByteMappings() { + return b2cTable; + } + + public char[] getEncoderIndex2() { + return c2b; + } + + public char[] getEncoderIndex1() { + return c2bIndex; + } + + private final static String b2cTable = $B2CTABLE$ + + private final static char[] b2c = b2cTable.toCharArray(); + private final static char[] c2b = new char[$C2BLENGTH$]; + private final static char[] c2bIndex = new char[0x100]; + + static { + char[] b2cMap = b2c; + char[] c2bNR = null; + $NONROUNDTRIP_B2C$ + $NONROUNDTRIP_C2B$ + SingleByte.initC2B(b2cMap, c2bNR, c2b, c2bIndex); + } +} diff --git a/jdk/make/tools/CharsetMapping/TIS_620.map b/jdk/make/tools/CharsetMapping/TIS_620.map new file mode 100644 index 00000000000..b832450a5ae --- /dev/null +++ b/jdk/make/tools/CharsetMapping/TIS_620.map @@ -0,0 +1,257 @@ +#Generated from TIS_620.java +0x00 U+0000 +0x01 U+0001 +0x02 U+0002 +0x03 U+0003 +0x04 U+0004 +0x05 U+0005 +0x06 U+0006 +0x07 U+0007 +0x08 U+0008 +0x09 U+0009 +0x0a U+000a +0x0b U+000b +0x0c U+000c +0x0d U+000d +0x0e U+000e +0x0f U+000f +0x10 U+0010 +0x11 U+0011 +0x12 U+0012 +0x13 U+0013 +0x14 U+0014 +0x15 U+0015 +0x16 U+0016 +0x17 U+0017 +0x18 U+0018 +0x19 U+0019 +0x1a U+001a +0x1b U+001b +0x1c U+001c +0x1d U+001d +0x1e U+001e +0x1f U+001f +0x20 U+0020 +0x21 U+0021 +0x22 U+0022 +0x23 U+0023 +0x24 U+0024 +0x25 U+0025 +0x26 U+0026 +0x27 U+0027 +0x28 U+0028 +0x29 U+0029 +0x2a U+002a +0x2b U+002b +0x2c U+002c +0x2d U+002d +0x2e U+002e +0x2f U+002f +0x30 U+0030 +0x31 U+0031 +0x32 U+0032 +0x33 U+0033 +0x34 U+0034 +0x35 U+0035 +0x36 U+0036 +0x37 U+0037 +0x38 U+0038 +0x39 U+0039 +0x3a U+003a +0x3b U+003b +0x3c U+003c +0x3d U+003d +0x3e U+003e +0x3f U+003f +0x40 U+0040 +0x41 U+0041 +0x42 U+0042 +0x43 U+0043 +0x44 U+0044 +0x45 U+0045 +0x46 U+0046 +0x47 U+0047 +0x48 U+0048 +0x49 U+0049 +0x4a U+004a +0x4b U+004b +0x4c U+004c +0x4d U+004d +0x4e U+004e +0x4f U+004f +0x50 U+0050 +0x51 U+0051 +0x52 U+0052 +0x53 U+0053 +0x54 U+0054 +0x55 U+0055 +0x56 U+0056 +0x57 U+0057 +0x58 U+0058 +0x59 U+0059 +0x5a U+005a +0x5b U+005b +0x5c U+005c +0x5d U+005d +0x5e U+005e +0x5f U+005f +0x60 U+0060 +0x61 U+0061 +0x62 U+0062 +0x63 U+0063 +0x64 U+0064 +0x65 U+0065 +0x66 U+0066 +0x67 U+0067 +0x68 U+0068 +0x69 U+0069 +0x6a U+006a +0x6b U+006b +0x6c U+006c +0x6d U+006d +0x6e U+006e +0x6f U+006f +0x70 U+0070 +0x71 U+0071 +0x72 U+0072 +0x73 U+0073 +0x74 U+0074 +0x75 U+0075 +0x76 U+0076 +0x77 U+0077 +0x78 U+0078 +0x79 U+0079 +0x7a U+007a +0x7b U+007b +0x7c U+007c +0x7d U+007d +0x7e U+007e +0x7f U+007f +0x80 U+fffd +0x81 U+fffd +0x82 U+fffd +0x83 U+fffd +0x84 U+fffd +0x85 U+fffd +0x86 U+fffd +0x87 U+fffd +0x88 U+fffd +0x89 U+fffd +0x8a U+fffd +0x8b U+fffd +0x8c U+fffd +0x8d U+fffd +0x8e U+fffd +0x8f U+fffd +0x90 U+fffd +0x91 U+fffd +0x92 U+fffd +0x93 U+fffd +0x94 U+fffd +0x95 U+fffd +0x96 U+fffd +0x97 U+fffd +0x98 U+fffd +0x99 U+fffd +0x9a U+fffd +0x9b U+fffd +0x9c U+fffd +0x9d U+fffd +0x9e U+fffd +0x9f U+fffd +0xa0 U+00a0 +0xa1 U+0e01 +0xa2 U+0e02 +0xa3 U+0e03 +0xa4 U+0e04 +0xa5 U+0e05 +0xa6 U+0e06 +0xa7 U+0e07 +0xa8 U+0e08 +0xa9 U+0e09 +0xaa U+0e0a +0xab U+0e0b +0xac U+0e0c +0xad U+0e0d +0xae U+0e0e +0xaf U+0e0f +0xb0 U+0e10 +0xb1 U+0e11 +0xb2 U+0e12 +0xb3 U+0e13 +0xb4 U+0e14 +0xb5 U+0e15 +0xb6 U+0e16 +0xb7 U+0e17 +0xb8 U+0e18 +0xb9 U+0e19 +0xba U+0e1a +0xbb U+0e1b +0xbc U+0e1c +0xbd U+0e1d +0xbe U+0e1e +0xbf U+0e1f +0xc0 U+0e20 +0xc1 U+0e21 +0xc2 U+0e22 +0xc3 U+0e23 +0xc4 U+0e24 +0xc5 U+0e25 +0xc6 U+0e26 +0xc7 U+0e27 +0xc8 U+0e28 +0xc9 U+0e29 +0xca U+0e2a +0xcb U+0e2b +0xcc U+0e2c +0xcd U+0e2d +0xce U+0e2e +0xcf U+0e2f +0xd0 U+0e30 +0xd1 U+0e31 +0xd2 U+0e32 +0xd3 U+0e33 +0xd4 U+0e34 +0xd5 U+0e35 +0xd6 U+0e36 +0xd7 U+0e37 +0xd8 U+0e38 +0xd9 U+0e39 +0xda U+0e3a +0xdb U+fffd +0xdc U+fffd +0xdd U+fffd +0xde U+fffd +0xdf U+0e3f +0xe0 U+0e40 +0xe1 U+0e41 +0xe2 U+0e42 +0xe3 U+0e43 +0xe4 U+0e44 +0xe5 U+0e45 +0xe6 U+0e46 +0xe7 U+0e47 +0xe8 U+0e48 +0xe9 U+0e49 +0xea U+0e4a +0xeb U+0e4b +0xec U+0e4c +0xed U+0e4d +0xee U+0e4e +0xef U+0e4f +0xf0 U+0e50 +0xf1 U+0e51 +0xf2 U+0e52 +0xf3 U+0e53 +0xf4 U+0e54 +0xf5 U+0e55 +0xf6 U+0e56 +0xf7 U+0e57 +0xf8 U+0e58 +0xf9 U+0e59 +0xfa U+0e5a +0xfb U+0e5b +0xfc U+fffd +0xfd U+fffd +0xfe U+fffd +0xff U+fffd diff --git a/jdk/make/tools/CharsetMapping/extsbcs b/jdk/make/tools/CharsetMapping/extsbcs new file mode 100644 index 00000000000..81a6acdf817 --- /dev/null +++ b/jdk/make/tools/CharsetMapping/extsbcs @@ -0,0 +1,74 @@ +# clzName csName hisName containASCII pkg +IBM037 IBM037 Cp037 false sun.nio.cs.ext +IBM1006 x-IBM1006 Cp1006 false sun.nio.cs.ext +IBM1025 x-IBM1025 Cp1025 false sun.nio.cs.ext +IBM1026 IBM1026 Cp1026 false sun.nio.cs.ext +IBM1046 x-IBM1046 Cp1046 false sun.nio.cs.ext +IBM1047 IBM1047 Cp1047 false sun.nio.cs.ext +IBM1097 x-IBM1097 Cp1097 false sun.nio.cs.ext +IBM1098 x-IBM1098 Cp1098 false sun.nio.cs.ext +IBM1112 x-IBM1112 Cp1112 false sun.nio.cs.ext +IBM1122 x-IBM1122 Cp1122 false sun.nio.cs.ext +IBM1123 x-IBM1123 Cp1123 false sun.nio.cs.ext +IBM1124 x-IBM1124 Cp1124 false sun.nio.cs.ext +# map tables for 1140-1149 are updated manualy with the u+20ac entry +IBM1140 IBM01140 Cp1140 false sun.nio.cs.ext +IBM1141 IBM01141 Cp1141 false sun.nio.cs.ext +IBM1142 IBM01142 Cp1142 false sun.nio.cs.ext +IBM1143 IBM01143 Cp1143 false sun.nio.cs.ext +IBM1144 IBM01144 Cp1144 false sun.nio.cs.ext +IBM1145 IBM01145 Cp1145 false sun.nio.cs.ext +IBM1146 IBM01146 Cp1146 false sun.nio.cs.ext +IBM1147 IBM01147 Cp1147 false sun.nio.cs.ext +IBM1148 IBM01148 Cp1148 false sun.nio.cs.ext +IBM1149 IBM01149 Cp1149 false sun.nio.cs.ext +IBM273 IBM273 Cp273 false sun.nio.cs.ext +IBM277 IBM277 Cp277 false sun.nio.cs.ext +IBM278 IBM278 Cp278 false sun.nio.cs.ext +IBM280 IBM280 Cp280 false sun.nio.cs.ext +IBM284 IBM284 Cp284 false sun.nio.cs.ext +IBM285 IBM285 Cp285 false sun.nio.cs.ext +IBM297 IBM297 Cp297 false sun.nio.cs.ext +IBM420 IBM420 Cp420 false sun.nio.cs.ext +IBM424 IBM424 Cp424 false sun.nio.cs.ext +IBM500 IBM500 Cp500 false sun.nio.cs.ext +IBM838 IBM-Thai Cp838 false sun.nio.cs.ext +IBM856 x-IBM856 Cp856 false sun.nio.cs.ext +IBM860 IBM860 Cp860 false sun.nio.cs.ext +IBM861 IBM861 Cp861 false sun.nio.cs.ext +IBM863 IBM863 Cp863 false sun.nio.cs.ext +IBM864 IBM864 Cp864 false sun.nio.cs.ext +IBM865 IBM865 Cp865 false sun.nio.cs.ext +IBM868 IBM868 Cp868 false sun.nio.cs.ext +IBM869 IBM869 Cp869 false sun.nio.cs.ext +IBM870 IBM870 Cp870 false sun.nio.cs.ext +IBM871 IBM871 Cp871 false sun.nio.cs.ext +IBM875 x-IBM875 Cp875 false sun.nio.cs.ext +IBM918 IBM918 Cp918 false sun.nio.cs.ext +IBM921 x-IBM921 Cp921 false sun.nio.cs.ext +IBM922 x-IBM922 Cp922 false sun.nio.cs.ext +# use name as hisname as well, cs did not support hisname prevously +ISO_8859_11 x-iso-8859-11 x-iso-8859-11 true sun.nio.cs.ext +ISO_8859_3 ISO-8859-3 ISO8859_3 true sun.nio.cs.ext +ISO_8859_6 ISO-8859-6 ISO8859_6 true sun.nio.cs.ext +ISO_8859_8 ISO-8859-8 ISO8859_8 true sun.nio.cs.ext +#JIS_X_0201 JIS_X0201 JIS_X0201 true sun.nio.cs.ext +MS1255 windows-1255 Cp1255 true sun.nio.cs.ext +MS1256 windows-1256 Cp1256 true sun.nio.cs.ext +MS1258 windows-1258 Cp1258 true sun.nio.cs.ext +MS874 x-windows-874 MS874 true sun.nio.cs.ext +MacArabic x-MacArabic MacArabic false sun.nio.cs.ext +MacCentralEurope x-MacCentralEurope MacCentralEurope false sun.nio.cs.ext +MacCroatian x-MacCroatian MacCroatian false sun.nio.cs.ext +MacCyrillic x-MacCyrillic MacCyrillic false sun.nio.cs.ext +MacDingbat x-MacDingbat MacDingbat false sun.nio.cs.ext +MacGreek x-MacGreek MacGreek false sun.nio.cs.ext +MacHebrew x-MacHebrew MacHebrew false sun.nio.cs.ext +MacIceland x-MacIceland MacIceland false sun.nio.cs.ext +MacRoman x-MacRoman MacRoman false sun.nio.cs.ext +MacRomania x-MacRomania MacRomania false sun.nio.cs.ext +MacSymbol x-MacSymbol MacSymbol false sun.nio.cs.ext +MacThai x-MacThai MacThai false sun.nio.cs.ext +MacTurkish x-MacTurkish MacTurkish false sun.nio.cs.ext +MacUkraine x-MacUkraine MacUkraine false sun.nio.cs.ext +TIS_620 TIS-620 TIS620 true sun.nio.cs.ext diff --git a/jdk/make/tools/CharsetMapping/sbcs b/jdk/make/tools/CharsetMapping/sbcs new file mode 100644 index 00000000000..0b11960411b --- /dev/null +++ b/jdk/make/tools/CharsetMapping/sbcs @@ -0,0 +1,28 @@ +# clzName csName hisName containASCII pkg +IBM437 IBM437 Cp437 false sun.nio.cs +IBM737 x-IBM737 Cp737 false sun.nio.cs +IBM775 IBM775 Cp775 false sun.nio.cs +IBM850 IBM850 Cp850 false sun.nio.cs +IBM852 IBM852 Cp852 false sun.nio.cs +IBM855 IBM855 Cp855 false sun.nio.cs +IBM857 IBM857 Cp857 false sun.nio.cs +IBM858 IBM00858 Cp858 false sun.nio.cs +IBM862 IBM862 Cp862 false sun.nio.cs +IBM866 IBM866 Cp866 false sun.nio.cs +IBM874 x-IBM874 Cp874 false sun.nio.cs +ISO_8859_2 ISO-8859-2 ISO8859_2 true sun.nio.cs +ISO_8859_4 ISO-8859-4 ISO8859_4 true sun.nio.cs +ISO_8859_5 ISO-8859-5 ISO8859_5 true sun.nio.cs +ISO_8859_7 ISO-8859-7 ISO8859_7 true sun.nio.cs +ISO_8859_9 ISO-8859-9 ISO8859_9 true sun.nio.cs +ISO_8859_13 ISO-8859-13 ISO8859_13 true sun.nio.cs +ISO_8859_15 ISO-8859-15 ISO8859_15 true sun.nio.cs +KOI8_R KOI8-R KOI8_R true sun.nio.cs +KOI8_U KOI8-U KOI8_U true sun.nio.cs +MS1250 windows-1250 Cp1250 true sun.nio.cs +MS1251 windows-1251 Cp1251 true sun.nio.cs +MS1252 windows-1252 Cp1252 true sun.nio.cs +MS1253 windows-1253 Cp1253 true sun.nio.cs +MS1254 windows-1254 Cp1254 true sun.nio.cs +MS1257 windows-1257 Cp1257 true sun.nio.cs + diff --git a/jdk/make/tools/src/build/tools/charsetmapping/GenerateMapping.java b/jdk/make/tools/src/build/tools/charsetmapping/GenerateMapping.java index e1f1d86ab79..6898820d873 100644 --- a/jdk/make/tools/src/build/tools/charsetmapping/GenerateMapping.java +++ b/jdk/make/tools/src/build/tools/charsetmapping/GenerateMapping.java @@ -27,12 +27,13 @@ package build.tools.charsetmapping; import java.io.*; import java.util.regex.*; +import build.tools.charsetmapping.GenerateSBCS; import static build.tools.charsetmapping.CharsetMapping.*; public class GenerateMapping { public static void main(String argv[]) throws IOException { if (argv.length < 2) { - System.out.println("Usage: java GenCSData fMap fDat"); + System.out.println("Usage: java GenerateMapping fMap fDat"); System.exit(1); } genDataJIS0213(new FileInputStream(argv[0]), diff --git a/jdk/make/tools/src/build/tools/charsetmapping/GenerateSBCS.java b/jdk/make/tools/src/build/tools/charsetmapping/GenerateSBCS.java new file mode 100644 index 00000000000..81b5d7be60f --- /dev/null +++ b/jdk/make/tools/src/build/tools/charsetmapping/GenerateSBCS.java @@ -0,0 +1,262 @@ +/* + * Copyright 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. + */ + +package build.tools.charsetmapping; + +import java.io.*; +import java.util.ArrayList; +import java.util.Scanner; +import java.util.Formatter; +import java.util.regex.*; +import java.nio.charset.*; +import static build.tools.charsetmapping.CharsetMapping.*; + +public class GenerateSBCS { + public static void main(String args[]) throws Exception { + if (args.length < 3) { + System.err.println("Usage: java GenSBCS srcDir dstDir config"); + System.exit(1); + } + + Scanner s = new Scanner(new File(args[0], args[2])); + while (s.hasNextLine()) { + String line = s.nextLine(); + if (line.startsWith("#") || line.length() == 0) + continue; + String[] fields = line.split("\\s+"); + if (fields.length < 5) { + System.err.println("Misconfiged sbcs line <" + line + ">?"); + continue; + } + String clzName = fields[0]; + String csName = fields[1]; + String hisName = fields[2]; + boolean isASCII = Boolean.valueOf(fields[3]); + String pkgName = fields[4]; + System.out.printf("%s,%s,%s,%b,%s%n", clzName, csName, hisName, isASCII, pkgName); + + StringBuilder b2c = new StringBuilder(); + int c2bLen = genB2C( + new FileInputStream(new File(args[0], clzName+".map")), b2c); + + String b2cNR = null; + File nrF = new File(args[0], clzName+".nr"); + if (nrF.exists()) { + b2cNR = genNR(new FileInputStream(nrF)); + } + + String c2bNR = null; + File c2bF = new File(args[0], clzName+".c2b"); + if (c2bF.exists()) { + c2bNR = genC2BNR(new FileInputStream(c2bF)); + } + + genSBCSClass(args[0], args[1], "SingleByte-X.java", + clzName, csName, hisName, pkgName, isASCII, + b2c.toString(), b2cNR, c2bNR, c2bLen); + } + } + + private static void toString(char[] sb, int off, int end, + Formatter out, String closure) { + while (off < end) { + out.format(" \""); + for (int j = 0; j < 8; j++) { + char c = sb[off++]; + switch (c) { + case '\b': + out.format("\\b"); break; + case '\t': + out.format("\\t"); break; + case '\n': + out.format("\\n"); break; + case '\f': + out.format("\\f"); break; + case '\r': + out.format("\\r"); break; + case '\"': + out.format("\\\""); break; + case '\'': + out.format("\\'"); break; + case '\\': + out.format("\\\\"); break; + default: + out.format("\\u%04X", c & 0xffff); + } + } + if (off == end) + out.format("\" %s // 0x%02x - 0x%02x%n", closure, off-8, off-1); + else + out.format("\" + // 0x%02x - 0x%02x%n", off-8, off-1); + } + } + + static Pattern sbmap = Pattern.compile("0x(\\p{XDigit}++)\\s++U\\+(\\p{XDigit}++)(\\s++#.*)?"); + private static int genB2C(InputStream in, StringBuilder out) + throws Exception + { + char[] sb = new char[0x100]; + int[] indexC2B = new int[0x100]; + + for (int i = 0; i < sb.length; i++) + sb[i] = UNMAPPABLE_DECODING; + + // parse the b2c mapping table + Parser p = new Parser(in, sbmap); + Entry e = null; + int off = 0; + while ((e = p.next()) != null) { + sb[e.bs] = (char)e.cp; + if (indexC2B[e.cp>>8] == 0) { + off += 0x100; + indexC2B[e.cp>>8] = 1; + } + } + + Formatter fm = new Formatter(out); + fm.format("%n"); + + // vm -server shows cc[byte + 128] access is much faster than + // cc[byte&0xff] so we output the upper segment first + toString(sb, 0x80, 0x100, fm, "+"); + toString(sb, 0x00, 0x80, fm, ";"); + + fm.close(); + return off; + } + + // generate non-roundtrip entries from xxx.nr file + private static String genNR(InputStream in) throws Exception + { + StringBuilder sb = new StringBuilder(); + Formatter fm = new Formatter(sb); + Parser p = new Parser(in, sbmap); + Entry e = null; + fm.format("// remove non-roundtrip entries%n"); + fm.format(" b2cMap = b2cTable.toCharArray();%n"); + while ((e = p.next()) != null) { + fm.format(" b2cMap[%d] = UNMAPPABLE_DECODING;%n", + (e.bs>=0x80)?(e.bs-0x80):(e.bs+0x80)); + } + fm.close(); + return sb.toString(); + } + + // generate c2b only entries from xxx.c2b file + private static String genC2BNR(InputStream in) throws Exception + { + StringBuilder sb = new StringBuilder(); + Formatter fm = new Formatter(sb); + Parser p = new Parser(in, sbmap); + ArrayList es = new ArrayList(); + Entry e = null; + while ((e = p.next()) != null) { + es.add(e); + } + + fm.format("// non-roundtrip c2b only entries%n"); + fm.format(" c2bNR = new char[%d];%n", es.size() * 2); + int i = 0; + for (Entry entry: es) { + fm.format(" c2bNR[%d] = 0x%x; c2bNR[%d] = 0x%x;%n", + i++, entry.bs, i++, entry.cp); + } + fm.close(); + return sb.toString(); + } + + private static void genSBCSClass(String srcDir, + String dstDir, + String template, + String clzName, + String csName, + String hisName, + String pkgName, + boolean isASCII, + String b2c, + String b2cNR, + String c2bNR, + int c2blen) + throws Exception + { + Scanner s = new Scanner(new File(srcDir, template)); + PrintStream out = new PrintStream(new FileOutputStream( + new File(dstDir, clzName + ".java"))); + + while (s.hasNextLine()) { + String line = s.nextLine(); + int i = line.indexOf("$"); + if (i == -1) { + out.println(line); + continue; + } + if (line.indexOf("$PACKAGE$", i) != -1) { + line = line.replace("$PACKAGE$", pkgName); + } + if (line.indexOf("$NAME_CLZ$", i) != -1) { + line = line.replace("$NAME_CLZ$", clzName); + } + if (line.indexOf("$NAME_CS$", i) != -1) { + line = line.replace("$NAME_CS$", csName); + } + if (line.indexOf("$NAME_ALIASES$", i) != -1) { + if ("sun.nio.cs".equals(pkgName)) + line = line.replace("$NAME_ALIASES$", + "StandardCharsets.aliases_" + clzName); + else + line = line.replace("$NAME_ALIASES$", + "ExtendedCharsets.aliasesFor(\"" + csName + "\")"); + } + if (line.indexOf("$NAME_HIS$", i) != -1) { + line = line.replace("$NAME_HIS$", hisName); + } + if (line.indexOf("$CONTAINS$", i) != -1) { + if (isASCII) + line = " return ((cs.name().equals(\"US-ASCII\")) || (cs instanceof " + clzName + "));"; + else + line = " return (cs instanceof " + clzName + ");"; + } + if (line.indexOf("$B2CTABLE$") != -1) { + line = line.replace("$B2CTABLE$", b2c); + } + if (line.indexOf("$C2BLENGTH$") != -1) { + line = line.replace("$C2BLENGTH$", "0x" + Integer.toString(c2blen, 16)); + } + if (line.indexOf("$NONROUNDTRIP_B2C$") != -1) { + if (b2cNR == null) + continue; + line = line.replace("$NONROUNDTRIP_B2C$", b2cNR); + } + + if (line.indexOf("$NONROUNDTRIP_C2B$") != -1) { + if (c2bNR == null) + continue; + line = line.replace("$NONROUNDTRIP_C2B$", c2bNR); + } + out.println(line); + } + out.close(); + } +} diff --git a/jdk/src/share/classes/sun/io/ByteToCharCp850.java b/jdk/src/share/classes/sun/io/ByteToCharCp850.java index c048a6b7ec1..62ceb3dba84 100644 --- a/jdk/src/share/classes/sun/io/ByteToCharCp850.java +++ b/jdk/src/share/classes/sun/io/ByteToCharCp850.java @@ -1,5 +1,5 @@ /* - * Copyright 1996-2005 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1996-2002 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 @@ -23,7 +23,6 @@ * have any questions. */ - package sun.io; import sun.nio.cs.IBM850; @@ -32,6 +31,7 @@ import sun.nio.cs.IBM850; * A table to convert to Cp850 to Unicode * * @author ConverterGenerator tool + * @version >= JDK1.1.6 */ public class ByteToCharCp850 extends ByteToCharSingleByte { @@ -41,6 +41,6 @@ public class ByteToCharCp850 extends ByteToCharSingleByte { } public ByteToCharCp850() { - super.byteToCharTable = IBM850.getDecoderSingleByteMappings(); + super.byteToCharTable = new IBM850().getDecoderSingleByteMappings(); } } diff --git a/jdk/src/share/classes/sun/io/CharToByteJIS0201.java b/jdk/src/share/classes/sun/io/CharToByteJIS0201.java index ea78fa7ddc4..ac85f5da75c 100644 --- a/jdk/src/share/classes/sun/io/CharToByteJIS0201.java +++ b/jdk/src/share/classes/sun/io/CharToByteJIS0201.java @@ -1,5 +1,5 @@ /* - * Copyright 1997-1998 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1996-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 @@ -29,6 +29,7 @@ package sun.io; * Tables and data to convert Unicode to JIS0201 * * @author ConverterGenerator tool + * @version >= JDK1.1.6 */ class CharToByteJIS0201 extends CharToByteSingleByte { @@ -41,8 +42,21 @@ class CharToByteJIS0201 extends CharToByteSingleByte { super.mask1 = 0xFF00; super.mask2 = 0x00FF; super.shift = 8; + /* super.index1 = index1; super.index2 = index2; + */ + } + + public byte getNative(char inputChar) { + return (byte)index2.charAt(index1[(inputChar & mask1) >> shift] + + (inputChar & mask2)); + } + + public boolean canConvert(char ch) { + if (index2.charAt(index1[((ch & mask1) >> shift)] + (ch & mask2)) != '\u0000') + return true; + return (ch == '\u0000'); } private final static String index2 = diff --git a/jdk/src/share/classes/sun/io/CharToByteSingleByte.java b/jdk/src/share/classes/sun/io/CharToByteSingleByte.java index 0812b6822e2..f56e3279a39 100644 --- a/jdk/src/share/classes/sun/io/CharToByteSingleByte.java +++ b/jdk/src/share/classes/sun/io/CharToByteSingleByte.java @@ -1,5 +1,5 @@ /* - * Copyright 1996-2002 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1996-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 @@ -25,6 +25,8 @@ package sun.io; +import static sun.nio.cs.CharsetMapping.*; + /** * A table driven conversion from char to byte for single byte * character sets. Tables will reside in the class CharToByteYYYYY, @@ -35,6 +37,7 @@ package sun.io; * * @author Lloyd Honomichl * @author Asmus Freytag +* @version 8/28/96 */ public abstract class CharToByteSingleByte extends CharToByteConverter { @@ -42,12 +45,12 @@ public abstract class CharToByteSingleByte extends CharToByteConverter { /* * 1st level index, provided by subclass */ - protected short index1[]; + protected char[] index1; /* * 2nd level index, provided by subclass */ - protected String index2; + protected char[] index2; /* * Mask to isolate bits for 1st level index, from subclass @@ -66,11 +69,11 @@ public abstract class CharToByteSingleByte extends CharToByteConverter { private char highHalfZoneCode; - public short[] getIndex1() { + public char[] getIndex1() { return index1; } - public String getIndex2() { + public char[] getIndex2() { return index2; } public int flush(byte[] output, int outStart, int outEnd) @@ -229,9 +232,18 @@ public abstract class CharToByteSingleByte extends CharToByteConverter { return 1; } + int encodeChar(char ch) { + char index = index1[ch >> 8]; + if (index == UNMAPPABLE_ENCODING) + return UNMAPPABLE_ENCODING; + return index2[index + (ch & 0xff)]; + } + public byte getNative(char inputChar) { - return (byte)index2.charAt(index1[(inputChar & mask1) >> shift] - + (inputChar & mask2)); + int b = encodeChar(inputChar); + if (b == UNMAPPABLE_ENCODING) + return 0; + return (byte)b; } /** @@ -248,11 +260,6 @@ public abstract class CharToByteSingleByte extends CharToByteConverter { * @return true if a character is mappable */ public boolean canConvert(char ch) { - // Look it up in the table - if (index2.charAt(index1[((ch & mask1) >> shift)] + (ch & mask2)) != '\u0000') - return true; - - // Nulls are always mappable - return (ch == '\u0000'); + return encodeChar(ch) != UNMAPPABLE_ENCODING; } } diff --git a/jdk/src/share/classes/sun/nio/cs/IBM437.java b/jdk/src/share/classes/sun/nio/cs/IBM437.java deleted file mode 100644 index bf4f77c6051..00000000000 --- a/jdk/src/share/classes/sun/nio/cs/IBM437.java +++ /dev/null @@ -1,368 +0,0 @@ -/* - * Copyright 2003-2005 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. - */ - -package sun.nio.cs; - - -import java.nio.charset.Charset; -import java.nio.charset.CharsetDecoder; -import java.nio.charset.CharsetEncoder; -import sun.nio.cs.StandardCharsets; -import sun.nio.cs.SingleByteDecoder; -import sun.nio.cs.SingleByteEncoder; -import sun.nio.cs.HistoricallyNamedCharset; - -public class IBM437 - extends Charset - implements HistoricallyNamedCharset -{ - - public IBM437() { - super("IBM437", StandardCharsets.aliases_IBM437); - } - - public String historicalName() { - return "Cp437"; - } - - public boolean contains(Charset cs) { - return (cs instanceof IBM437); - } - - public CharsetDecoder newDecoder() { - return new Decoder(this); - } - - public CharsetEncoder newEncoder() { - return new Encoder(this); - } - - - /** - * These accessors are temporarily supplied while sun.io - * converters co-exist with the sun.nio.cs.{ext} charset coders - * These facilitate sharing of conversion tables between the - * two co-existing implementations. When sun.io converters - * are made extinct these will be unncessary and should be removed - */ - - public String getDecoderSingleByteMappings() { - return Decoder.byteToCharTable; - - } - - public short[] getEncoderIndex1() { - return Encoder.index1; - - } - public String getEncoderIndex2() { - return Encoder.index2; - - } - - private static class Decoder extends SingleByteDecoder { - public Decoder(Charset cs) { - super(cs, byteToCharTable); - } - - private final static String byteToCharTable = - - "\u00C7\u00FC\u00E9\u00E2\u00E4\u00E0\u00E5\u00E7" + // 0x80 - 0x87 - "\u00EA\u00EB\u00E8\u00EF\u00EE\u00EC\u00C4\u00C5" + // 0x88 - 0x8F - "\u00C9\u00E6\u00C6\u00F4\u00F6\u00F2\u00FB\u00F9" + // 0x90 - 0x97 - "\u00FF\u00D6\u00DC\u00A2\u00A3\u00A5\u20A7\u0192" + // 0x98 - 0x9F - "\u00E1\u00ED\u00F3\u00FA\u00F1\u00D1\u00AA\u00BA" + // 0xA0 - 0xA7 - "\u00BF\u2310\u00AC\u00BD\u00BC\u00A1\u00AB\u00BB" + // 0xA8 - 0xAF - "\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556" + // 0xB0 - 0xB7 - "\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510" + // 0xB8 - 0xBF - "\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F" + // 0xC0 - 0xC7 - "\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567" + // 0xC8 - 0xCF - "\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B" + // 0xD0 - 0xD7 - "\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580" + // 0xD8 - 0xDF - "\u03B1\u00DF\u0393\u03C0\u03A3\u03C3\u00B5\u03C4" + // 0xE0 - 0xE7 - "\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229" + // 0xE8 - 0xEF - "\u2261\u00B1\u2265\u2264\u2320\u2321\u00F7\u2248" + // 0xF0 - 0xF7 - "\u00B0\u2219\u00B7\u221A\u207F\u00B2\u25A0\u00A0" + // 0xF8 - 0xFF - "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007" + // 0x00 - 0x07 - "\b\t\n\u000B\f\r\u000E\u000F" + // 0x08 - 0x0F - "\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017" + // 0x10 - 0x17 - "\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F" + // 0x18 - 0x1F - "\u0020\u0021\"\u0023\u0024\u0025\u0026\'" + // 0x20 - 0x27 - "\u0028\u0029\u002A\u002B\u002C\u002D\u002E\u002F" + // 0x28 - 0x2F - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + // 0x30 - 0x37 - "\u0038\u0039\u003A\u003B\u003C\u003D\u003E\u003F" + // 0x38 - 0x3F - "\u0040\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + // 0x40 - 0x47 - "\u0048\u0049\u004A\u004B\u004C\u004D\u004E\u004F" + // 0x48 - 0x4F - "\u0050\u0051\u0052\u0053\u0054\u0055\u0056\u0057" + // 0x50 - 0x57 - "\u0058\u0059\u005A\u005B\\\u005D\u005E\u005F" + // 0x58 - 0x5F - "\u0060\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + // 0x60 - 0x67 - "\u0068\u0069\u006A\u006B\u006C\u006D\u006E\u006F" + // 0x68 - 0x6F - "\u0070\u0071\u0072\u0073\u0074\u0075\u0076\u0077" + // 0x70 - 0x77 - "\u0078\u0079\u007A\u007B\u007C\u007D\u007E\u007F"; // 0x78 - 0x7F - - } - - private static class Encoder extends SingleByteEncoder { - public Encoder(Charset cs) { - super(cs, index1, index2, 0xFF00, 0x00FF, 8); - } - - private final static String index2 = - - - "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007" + - "\b\t\n\u000B\f\r\u000E\u000F" + - "\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017" + - "\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F" + - "\u0020\u0021\"\u0023\u0024\u0025\u0026\'" + - "\u0028\u0029\u002A\u002B\u002C\u002D\u002E\u002F" + - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + - "\u0038\u0039\u003A\u003B\u003C\u003D\u003E\u003F" + - "\u0040\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + - "\u0048\u0049\u004A\u004B\u004C\u004D\u004E\u004F" + - "\u0050\u0051\u0052\u0053\u0054\u0055\u0056\u0057" + - "\u0058\u0059\u005A\u005B\\\u005D\u005E\u005F" + - "\u0060\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + - "\u0068\u0069\u006A\u006B\u006C\u006D\u006E\u006F" + - "\u0070\u0071\u0072\u0073\u0074\u0075\u0076\u0077" + - "\u0078\u0079\u007A\u007B\u007C\u007D\u007E\u007F" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00FF\u00AD\u009B\u009C\u0000\u009D\u0000\u0000" + - "\u0000\u0000\u00A6\u00AE\u00AA\u0000\u0000\u0000" + - "\u00F8\u00F1\u00FD\u0000\u0000\u00E6\u0000\u00FA" + - "\u0000\u0000\u00A7\u00AF\u00AC\u00AB\u0000\u00A8" + - "\u0000\u0000\u0000\u0000\u008E\u008F\u0092\u0080" + - "\u0000\u0090\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u00A5\u0000\u0000\u0000\u0000\u0099\u0000" + - "\u0000\u0000\u0000\u0000\u009A\u0000\u0000\u00E1" + - "\u0085\u00A0\u0083\u0000\u0084\u0086\u0091\u0087" + - "\u008A\u0082\u0088\u0089\u008D\u00A1\u008C\u008B" + - "\u0000\u00A4\u0095\u00A2\u0093\u0000\u0094\u00F6" + - "\u0000\u0097\u00A3\u0096\u0081\u0000\u0000\u0098" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u009F\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u00E2\u0000\u0000\u0000\u0000" + - "\u00E9\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u00E4\u0000\u0000\u00E8\u0000" + - "\u0000\u00EA\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u00E0\u0000\u0000\u00EB\u00EE\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00E3\u0000\u0000\u00E5\u00E7\u0000\u00ED\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u00FC\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u009E\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u00F9" + - "\u00FB\u0000\u0000\u0000\u00EC\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u00EF" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u00F7\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u00F0" + - "\u0000\u0000\u00F3\u00F2\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u00A9\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u00F4\u00F5" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u00C4\u0000" + - "\u00B3\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u00DA\u0000\u0000\u0000\u00BF\u0000" + - "\u0000\u0000\u00C0\u0000\u0000\u0000\u00D9\u0000" + - "\u0000\u0000\u00C3\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u00B4\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u00C2\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u00C1\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u00C5\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u00CD\u00BA" + - "\u00D5\u00D6\u00C9\u00B8\u00B7\u00BB\u00D4\u00D3" + - "\u00C8\u00BE\u00BD\u00BC\u00C6\u00C7\u00CC\u00B5" + - "\u00B6\u00B9\u00D1\u00D2\u00CB\u00CF\u00D0\u00CA" + - "\u00D8\u00D7\u00CE\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u00DF\u0000" + - "\u0000\u0000\u00DC\u0000\u0000\u0000\u00DB\u0000" + - "\u0000\u0000\u00DD\u0000\u0000\u0000\u00DE\u00B0" + - "\u00B1\u00B2\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u00FE\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000"; - - private final static short index1[] = { - 0, 256, 403, 512, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 711, 403, 942, 1182, 403, 1438, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - - }; - } -} diff --git a/jdk/src/share/classes/sun/nio/cs/IBM737.java b/jdk/src/share/classes/sun/nio/cs/IBM737.java deleted file mode 100644 index 2d5b7509b2c..00000000000 --- a/jdk/src/share/classes/sun/nio/cs/IBM737.java +++ /dev/null @@ -1,321 +0,0 @@ -/* - * Copyright 2003-2005 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. - */ - -package sun.nio.cs; - - -import java.nio.charset.Charset; -import java.nio.charset.CharsetDecoder; -import java.nio.charset.CharsetEncoder; -import sun.nio.cs.StandardCharsets; -import sun.nio.cs.SingleByteDecoder; -import sun.nio.cs.SingleByteEncoder; -import sun.nio.cs.HistoricallyNamedCharset; - -public class IBM737 - extends Charset - implements HistoricallyNamedCharset -{ - - public IBM737() { - super("x-IBM737", StandardCharsets.aliases_IBM737); - } - - public String historicalName() { - return "Cp737"; - } - - public boolean contains(Charset cs) { - return (cs instanceof IBM737); - } - - public CharsetDecoder newDecoder() { - return new Decoder(this); - } - - public CharsetEncoder newEncoder() { - return new Encoder(this); - } - - - /** - * These accessors are temporarily supplied while sun.io - * converters co-exist with the sun.nio.cs.{ext} charset coders - * These facilitate sharing of conversion tables between the - * two co-existing implementations. When sun.io converters - * are made extinct these will be unncessary and should be removed - */ - - public String getDecoderSingleByteMappings() { - return Decoder.byteToCharTable; - - } - - public short[] getEncoderIndex1() { - return Encoder.index1; - - } - public String getEncoderIndex2() { - return Encoder.index2; - - } - - private static class Decoder extends SingleByteDecoder { - public Decoder(Charset cs) { - super(cs, byteToCharTable); - } - - private final static String byteToCharTable = - - "\u0391\u0392\u0393\u0394\u0395\u0396\u0397\u0398" + // 0x80 - 0x87 - "\u0399\u039A\u039B\u039C\u039D\u039E\u039F\u03A0" + // 0x88 - 0x8F - "\u03A1\u03A3\u03A4\u03A5\u03A6\u03A7\u03A8\u03A9" + // 0x90 - 0x97 - "\u03B1\u03B2\u03B3\u03B4\u03B5\u03B6\u03B7\u03B8" + // 0x98 - 0x9F - "\u03B9\u03BA\u03BB\u03BC\u03BD\u03BE\u03BF\u03C0" + // 0xA0 - 0xA7 - "\u03C1\u03C3\u03C2\u03C4\u03C5\u03C6\u03C7\u03C8" + // 0xA8 - 0xAF - "\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556" + // 0xB0 - 0xB7 - "\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510" + // 0xB8 - 0xBF - "\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F" + // 0xC0 - 0xC7 - "\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567" + // 0xC8 - 0xCF - "\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B" + // 0xD0 - 0xD7 - "\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580" + // 0xD8 - 0xDF - "\u03C9\u03AC\u03AD\u03AE\u03CA\u03AF\u03CC\u03CD" + // 0xE0 - 0xE7 - "\u03CB\u03CE\u0386\u0388\u0389\u038A\u038C\u038E" + // 0xE8 - 0xEF - "\u038F\u00B1\u2265\u2264\u03AA\u03AB\u00F7\u2248" + // 0xF0 - 0xF7 - "\u00B0\u2219\u00B7\u221A\u207F\u00B2\u25A0\u00A0" + // 0xF8 - 0xFF - "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007" + // 0x00 - 0x07 - "\b\t\n\u000B\f\r\u000E\u000F" + // 0x08 - 0x0F - "\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017" + // 0x10 - 0x17 - "\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F" + // 0x18 - 0x1F - "\u0020\u0021\"\u0023\u0024\u0025\u0026\'" + // 0x20 - 0x27 - "\u0028\u0029\u002A\u002B\u002C\u002D\u002E\u002F" + // 0x28 - 0x2F - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + // 0x30 - 0x37 - "\u0038\u0039\u003A\u003B\u003C\u003D\u003E\u003F" + // 0x38 - 0x3F - "\u0040\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + // 0x40 - 0x47 - "\u0048\u0049\u004A\u004B\u004C\u004D\u004E\u004F" + // 0x48 - 0x4F - "\u0050\u0051\u0052\u0053\u0054\u0055\u0056\u0057" + // 0x50 - 0x57 - "\u0058\u0059\u005A\u005B\\\u005D\u005E\u005F" + // 0x58 - 0x5F - "\u0060\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + // 0x60 - 0x67 - "\u0068\u0069\u006A\u006B\u006C\u006D\u006E\u006F" + // 0x68 - 0x6F - "\u0070\u0071\u0072\u0073\u0074\u0075\u0076\u0077" + // 0x70 - 0x77 - "\u0078\u0079\u007A\u007B\u007C\u007D\u007E\u007F"; // 0x78 - 0x7F - - } - - private static class Encoder extends SingleByteEncoder { - public Encoder(Charset cs) { - super(cs, index1, index2, 0xFF00, 0x00FF, 8); - } - - private final static String index2 = - - - "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007" + - "\b\t\n\u000B\f\r\u000E\u000F" + - "\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017" + - "\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F" + - "\u0020\u0021\"\u0023\u0024\u0025\u0026\'" + - "\u0028\u0029\u002A\u002B\u002C\u002D\u002E\u002F" + - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + - "\u0038\u0039\u003A\u003B\u003C\u003D\u003E\u003F" + - "\u0040\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + - "\u0048\u0049\u004A\u004B\u004C\u004D\u004E\u004F" + - "\u0050\u0051\u0052\u0053\u0054\u0055\u0056\u0057" + - "\u0058\u0059\u005A\u005B\\\u005D\u005E\u005F" + - "\u0060\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + - "\u0068\u0069\u006A\u006B\u006C\u006D\u006E\u006F" + - "\u0070\u0071\u0072\u0073\u0074\u0075\u0076\u0077" + - "\u0078\u0079\u007A\u007B\u007C\u007D\u007E\u007F" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00FF\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00F8\u00F1\u00FD\u0000\u0000\u0000\u0000\u00FA" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u00F6" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00EA\u0000\u00EB\u00EC\u00ED\u0000\u00EE\u0000" + - "\u00EF\u00F0\u0000\u0080\u0081\u0082\u0083\u0084" + - "\u0085\u0086\u0087\u0088\u0089\u008A\u008B\u008C" + - "\u008D\u008E\u008F\u0090\u0000\u0091\u0092\u0093" + - "\u0094\u0095\u0096\u0097\u00F4\u00F5\u00E1\u00E2" + - "\u00E3\u00E5\u0000\u0098\u0099\u009A\u009B\u009C" + - "\u009D\u009E\u009F\u00A0\u00A1\u00A2\u00A3\u00A4" + - "\u00A5\u00A6\u00A7\u00A8\u00AA\u00A9\u00AB\u00AC" + - "\u00AD\u00AE\u00AF\u00E0\u00E4\u00E8\u00E6\u00E7" + - "\u00E9\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00FC\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u00F9\u00FB\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00F7\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u00F3\u00F2\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00C4\u0000\u00B3\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u00DA\u0000\u0000\u0000" + - "\u00BF\u0000\u0000\u0000\u00C0\u0000\u0000\u0000" + - "\u00D9\u0000\u0000\u0000\u00C3\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u00B4\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u00C2\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u00C1\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u00C5\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00CD\u00BA\u00D5\u00D6\u00C9\u00B8\u00B7\u00BB" + - "\u00D4\u00D3\u00C8\u00BE\u00BD\u00BC\u00C6\u00C7" + - "\u00CC\u00B5\u00B6\u00B9\u00D1\u00D2\u00CB\u00CF" + - "\u00D0\u00CA\u00D8\u00D7\u00CE\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00DF\u0000\u0000\u0000\u00DC\u0000\u0000\u0000" + - "\u00DB\u0000\u0000\u0000\u00DD\u0000\u0000\u0000" + - "\u00DE\u00B0\u00B1\u00B2\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00FE\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"; - - private final static short index1[] = { - 0, 248, 248, 370, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 577, 248, 808, 248, 248, 1064, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - - }; - } -} diff --git a/jdk/src/share/classes/sun/nio/cs/IBM775.java b/jdk/src/share/classes/sun/nio/cs/IBM775.java deleted file mode 100644 index c0185c9ca6a..00000000000 --- a/jdk/src/share/classes/sun/nio/cs/IBM775.java +++ /dev/null @@ -1,326 +0,0 @@ -/* - * Copyright 2003-2005 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. - */ - -package sun.nio.cs; - - -import java.nio.charset.Charset; -import java.nio.charset.CharsetDecoder; -import java.nio.charset.CharsetEncoder; -import sun.nio.cs.StandardCharsets; -import sun.nio.cs.SingleByteDecoder; -import sun.nio.cs.SingleByteEncoder; -import sun.nio.cs.HistoricallyNamedCharset; - -public class IBM775 - extends Charset - implements HistoricallyNamedCharset -{ - - public IBM775() { - super("IBM775", StandardCharsets.aliases_IBM775); - } - - public String historicalName() { - return "Cp775"; - } - - public boolean contains(Charset cs) { - return (cs instanceof IBM775); - } - - public CharsetDecoder newDecoder() { - return new Decoder(this); - } - - public CharsetEncoder newEncoder() { - return new Encoder(this); - } - - - /** - * These accessors are temporarily supplied while sun.io - * converters co-exist with the sun.nio.cs.{ext} charset coders - * These facilitate sharing of conversion tables between the - * two co-existing implementations. When sun.io converters - * are made extinct these will be unncessary and should be removed - */ - - public String getDecoderSingleByteMappings() { - return Decoder.byteToCharTable; - - } - - public short[] getEncoderIndex1() { - return Encoder.index1; - - } - public String getEncoderIndex2() { - return Encoder.index2; - - } - - private static class Decoder extends SingleByteDecoder { - public Decoder(Charset cs) { - super(cs, byteToCharTable); - } - - private final static String byteToCharTable = - - "\u0106\u00FC\u00E9\u0101\u00E4\u0123\u00E5\u0107" + // 0x80 - 0x87 - "\u0142\u0113\u0156\u0157\u012B\u0179\u00C4\u00C5" + // 0x88 - 0x8F - "\u00C9\u00E6\u00C6\u014D\u00F6\u0122\u00A2\u015A" + // 0x90 - 0x97 - "\u015B\u00D6\u00DC\u00F8\u00A3\u00D8\u00D7\u00A4" + // 0x98 - 0x9F - "\u0100\u012A\u00F3\u017B\u017C\u017A\u201D\u00A6" + // 0xA0 - 0xA7 - "\u00A9\u00AE\u00AC\u00BD\u00BC\u0141\u00AB\u00BB" + // 0xA8 - 0xAF - "\u2591\u2592\u2593\u2502\u2524\u0104\u010C\u0118" + // 0xB0 - 0xB7 - "\u0116\u2563\u2551\u2557\u255D\u012E\u0160\u2510" + // 0xB8 - 0xBF - "\u2514\u2534\u252C\u251C\u2500\u253C\u0172\u016A" + // 0xC0 - 0xC7 - "\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u017D" + // 0xC8 - 0xCF - "\u0105\u010D\u0119\u0117\u012F\u0161\u0173\u016B" + // 0xD0 - 0xD7 - "\u017E\u2518\u250C\u2588\u2584\u258C\u2590\u2580" + // 0xD8 - 0xDF - "\u00D3\u00DF\u014C\u0143\u00F5\u00D5\u00B5\u0144" + // 0xE0 - 0xE7 - "\u0136\u0137\u013B\u013C\u0146\u0112\u0145\u2019" + // 0xE8 - 0xEF - "\u00AD\u00B1\u201C\u00BE\u00B6\u00A7\u00F7\u201E" + // 0xF0 - 0xF7 - "\u00B0\u2219\u00B7\u00B9\u00B3\u00B2\u25A0\u00A0" + // 0xF8 - 0xFF - "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007" + // 0x00 - 0x07 - "\b\t\n\u000B\f\r\u000E\u000F" + // 0x08 - 0x0F - "\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017" + // 0x10 - 0x17 - "\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F" + // 0x18 - 0x1F - "\u0020\u0021\"\u0023\u0024\u0025\u0026\'" + // 0x20 - 0x27 - "\u0028\u0029\u002A\u002B\u002C\u002D\u002E\u002F" + // 0x28 - 0x2F - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + // 0x30 - 0x37 - "\u0038\u0039\u003A\u003B\u003C\u003D\u003E\u003F" + // 0x38 - 0x3F - "\u0040\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + // 0x40 - 0x47 - "\u0048\u0049\u004A\u004B\u004C\u004D\u004E\u004F" + // 0x48 - 0x4F - "\u0050\u0051\u0052\u0053\u0054\u0055\u0056\u0057" + // 0x50 - 0x57 - "\u0058\u0059\u005A\u005B\\\u005D\u005E\u005F" + // 0x58 - 0x5F - "\u0060\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + // 0x60 - 0x67 - "\u0068\u0069\u006A\u006B\u006C\u006D\u006E\u006F" + // 0x68 - 0x6F - "\u0070\u0071\u0072\u0073\u0074\u0075\u0076\u0077" + // 0x70 - 0x77 - "\u0078\u0079\u007A\u007B\u007C\u007D\u007E\u007F"; // 0x78 - 0x7F - - } - - private static class Encoder extends SingleByteEncoder { - public Encoder(Charset cs) { - super(cs, index1, index2, 0xFF00, 0x00FF, 8); - } - - private final static String index2 = - - - "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007" + - "\b\t\n\u000B\f\r\u000E\u000F" + - "\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017" + - "\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F" + - "\u0020\u0021\"\u0023\u0024\u0025\u0026\'" + - "\u0028\u0029\u002A\u002B\u002C\u002D\u002E\u002F" + - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + - "\u0038\u0039\u003A\u003B\u003C\u003D\u003E\u003F" + - "\u0040\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + - "\u0048\u0049\u004A\u004B\u004C\u004D\u004E\u004F" + - "\u0050\u0051\u0052\u0053\u0054\u0055\u0056\u0057" + - "\u0058\u0059\u005A\u005B\\\u005D\u005E\u005F" + - "\u0060\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + - "\u0068\u0069\u006A\u006B\u006C\u006D\u006E\u006F" + - "\u0070\u0071\u0072\u0073\u0074\u0075\u0076\u0077" + - "\u0078\u0079\u007A\u007B\u007C\u007D\u007E\u007F" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00FF\u0000\u0096\u009C\u009F\u0000\u00A7\u00F5" + - "\u0000\u00A8\u0000\u00AE\u00AA\u00F0\u00A9\u0000" + - "\u00F8\u00F1\u00FD\u00FC\u0000\u00E6\u00F4\u00FA" + - "\u0000\u00FB\u0000\u00AF\u00AC\u00AB\u00F3\u0000" + - "\u0000\u0000\u0000\u0000\u008E\u008F\u0092\u0000" + - "\u0000\u0090\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u00E0\u0000\u00E5\u0099\u009E" + - "\u009D\u0000\u0000\u0000\u009A\u0000\u0000\u00E1" + - "\u0000\u0000\u0000\u0000\u0084\u0086\u0091\u0000" + - "\u0000\u0082\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u00A2\u0000\u00E4\u0094\u00F6" + - "\u009B\u0000\u0000\u0000\u0081\u0000\u0000\u0000" + - "\u00A0\u0083\u0000\u0000\u00B5\u00D0\u0080\u0087" + - "\u0000\u0000\u0000\u0000\u00B6\u00D1\u0000\u0000" + - "\u0000\u0000\u00ED\u0089\u0000\u0000\u00B8\u00D3" + - "\u00B7\u00D2\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0095\u0085\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u00A1\u008C\u0000\u0000\u00BD\u00D4" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u00E8\u00E9" + - "\u0000\u0000\u0000\u00EA\u00EB\u0000\u0000\u0000" + - "\u0000\u00AD\u0088\u00E3\u00E7\u00EE\u00EC\u0000" + - "\u0000\u0000\u0000\u0000\u00E2\u0093\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u008A\u008B" + - "\u0000\u0000\u0097\u0098\u0000\u0000\u0000\u0000" + - "\u00BE\u00D5\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u00C7\u00D7\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u00C6\u00D6\u0000\u0000\u0000\u0000" + - "\u0000\u008D\u00A5\u00A3\u00A4\u00CF\u00D8\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u00EF" + - "\u0000\u0000\u00F2\u00A6\u00F7\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u00F9\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u00C4\u0000\u00B3" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u00DA\u0000\u0000\u0000\u00BF\u0000\u0000" + - "\u0000\u00C0\u0000\u0000\u0000\u00D9\u0000\u0000" + - "\u0000\u00C3\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u00B4\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u00C2\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u00C1\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u00C5\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u00CD\u00BA\u0000" + - "\u0000\u00C9\u0000\u0000\u00BB\u0000\u0000\u00C8" + - "\u0000\u0000\u00BC\u0000\u0000\u00CC\u0000\u0000" + - "\u00B9\u0000\u0000\u00CB\u0000\u0000\u00CA\u0000" + - "\u0000\u00CE\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u00DF\u0000\u0000" + - "\u0000\u00DC\u0000\u0000\u0000\u00DB\u0000\u0000" + - "\u0000\u00DD\u0000\u0000\u0000\u00DE\u00B0\u00B1" + - "\u00B2\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u00FE\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000"; - - private final static short index1[] = { - 0, 256, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 614, 383, 845, 383, 383, 1101, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - - }; - } -} diff --git a/jdk/src/share/classes/sun/nio/cs/IBM850.java b/jdk/src/share/classes/sun/nio/cs/IBM850.java deleted file mode 100644 index 6bb2a0bae0a..00000000000 --- a/jdk/src/share/classes/sun/nio/cs/IBM850.java +++ /dev/null @@ -1,299 +0,0 @@ -/* - * Copyright 2003-2005 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. - */ - -package sun.nio.cs; - -import java.nio.charset.Charset; -import java.nio.charset.CharsetDecoder; -import java.nio.charset.CharsetEncoder; -import sun.nio.cs.StandardCharsets; -import sun.nio.cs.SingleByteDecoder; -import sun.nio.cs.SingleByteEncoder; -import sun.nio.cs.HistoricallyNamedCharset; - -public class IBM850 - extends Charset - implements HistoricallyNamedCharset -{ - - public IBM850() { - super("IBM850", StandardCharsets.aliases_IBM850); - } - - public String historicalName() { - return "Cp850"; - } - - public boolean contains(Charset cs) { - return (cs instanceof IBM850); - } - - public CharsetDecoder newDecoder() { - return new Decoder(this); - } - - public CharsetEncoder newEncoder() { - return new Encoder(this); - } - - - /** - * These accessors are temporarily supplied while sun.io - * converters co-exist with the sun.nio.cs.{ext} charset coders - * These facilitate sharing of conversion tables between the - * two co-existing implementations. When sun.io converters - * are made extinct these will be unncessary and should be removed - */ - - public static String getDecoderSingleByteMappings() { - return Decoder.byteToCharTable; - - } - - public short[] getEncoderIndex1() { - return Encoder.index1; - - } - public String getEncoderIndex2() { - return Encoder.index2; - - } - - protected static class Decoder extends SingleByteDecoder { - public Decoder(Charset cs) { - super(cs, byteToCharTable); - } - - private final static String byteToCharTable = - - "\u00C7\u00FC\u00E9\u00E2\u00E4\u00E0\u00E5\u00E7" + // 0x80 - 0x87 - "\u00EA\u00EB\u00E8\u00EF\u00EE\u00EC\u00C4\u00C5" + // 0x88 - 0x8F - "\u00C9\u00E6\u00C6\u00F4\u00F6\u00F2\u00FB\u00F9" + // 0x90 - 0x97 - "\u00FF\u00D6\u00DC\u00F8\u00A3\u00D8\u00D7\u0192" + // 0x98 - 0x9F - "\u00E1\u00ED\u00F3\u00FA\u00F1\u00D1\u00AA\u00BA" + // 0xA0 - 0xA7 - "\u00BF\u00AE\u00AC\u00BD\u00BC\u00A1\u00AB\u00BB" + // 0xA8 - 0xAF - "\u2591\u2592\u2593\u2502\u2524\u00C1\u00C2\u00C0" + // 0xB0 - 0xB7 - "\u00A9\u2563\u2551\u2557\u255D\u00A2\u00A5\u2510" + // 0xB8 - 0xBF - "\u2514\u2534\u252C\u251C\u2500\u253C\u00E3\u00C3" + // 0xC0 - 0xC7 - "\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u00A4" + // 0xC8 - 0xCF - "\u00F0\u00D0\u00CA\u00CB\u00C8\u0131\u00CD\u00CE" + // 0xD0 - 0xD7 - "\u00CF\u2518\u250C\u2588\u2584\u00A6\u00CC\u2580" + // 0xD8 - 0xDF - "\u00D3\u00DF\u00D4\u00D2\u00F5\u00D5\u00B5\u00FE" + // 0xE0 - 0xE7 - "\u00DE\u00DA\u00DB\u00D9\u00FD\u00DD\u00AF\u00B4" + // 0xE8 - 0xEF - "\u00AD\u00B1\u2017\u00BE\u00B6\u00A7\u00F7\u00B8" + // 0xF0 - 0xF7 - "\u00B0\u00A8\u00B7\u00B9\u00B3\u00B2\u25A0\u00A0" + // 0xF8 - 0xFF - "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007" + // 0x00 - 0x07 - "\b\t\n\u000B\f\r\u000E\u000F" + // 0x08 - 0x0F - "\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017" + // 0x10 - 0x17 - "\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F" + // 0x18 - 0x1F - "\u0020\u0021\"\u0023\u0024\u0025\u0026\'" + // 0x20 - 0x27 - "\u0028\u0029\u002A\u002B\u002C\u002D\u002E\u002F" + // 0x28 - 0x2F - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + // 0x30 - 0x37 - "\u0038\u0039\u003A\u003B\u003C\u003D\u003E\u003F" + // 0x38 - 0x3F - "\u0040\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + // 0x40 - 0x47 - "\u0048\u0049\u004A\u004B\u004C\u004D\u004E\u004F" + // 0x48 - 0x4F - "\u0050\u0051\u0052\u0053\u0054\u0055\u0056\u0057" + // 0x50 - 0x57 - "\u0058\u0059\u005A\u005B\\\u005D\u005E\u005F" + // 0x58 - 0x5F - "\u0060\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + // 0x60 - 0x67 - "\u0068\u0069\u006A\u006B\u006C\u006D\u006E\u006F" + // 0x68 - 0x6F - "\u0070\u0071\u0072\u0073\u0074\u0075\u0076\u0077" + // 0x70 - 0x77 - "\u0078\u0079\u007A\u007B\u007C\u007D\u007E\u007F"; // 0x78 - 0x7F - - } - - protected static class Encoder extends SingleByteEncoder { - public Encoder(Charset cs) { - super(cs, index1, index2, 0xFF00, 0x00FF, 8); - } - - private final static String index2 = - - - "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007" + - "\b\t\n\u000B\f\r\u000E\u000F" + - "\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017" + - "\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F" + - "\u0020\u0021\"\u0023\u0024\u0025\u0026\'" + - "\u0028\u0029\u002A\u002B\u002C\u002D\u002E\u002F" + - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + - "\u0038\u0039\u003A\u003B\u003C\u003D\u003E\u003F" + - "\u0040\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + - "\u0048\u0049\u004A\u004B\u004C\u004D\u004E\u004F" + - "\u0050\u0051\u0052\u0053\u0054\u0055\u0056\u0057" + - "\u0058\u0059\u005A\u005B\\\u005D\u005E\u005F" + - "\u0060\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + - "\u0068\u0069\u006A\u006B\u006C\u006D\u006E\u006F" + - "\u0070\u0071\u0072\u0073\u0074\u0075\u0076\u0077" + - "\u0078\u0079\u007A\u007B\u007C\u007D\u007E\u007F" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00FF\u00AD\u00BD\u009C\u00CF\u00BE\u00DD\u00F5" + - "\u00F9\u00B8\u00A6\u00AE\u00AA\u00F0\u00A9\u00EE" + - "\u00F8\u00F1\u00FD\u00FC\u00EF\u00E6\u00F4\u00FA" + - "\u00F7\u00FB\u00A7\u00AF\u00AC\u00AB\u00F3\u00A8" + - "\u00B7\u00B5\u00B6\u00C7\u008E\u008F\u0092\u0080" + - "\u00D4\u0090\u00D2\u00D3\u00DE\u00D6\u00D7\u00D8" + - "\u00D1\u00A5\u00E3\u00E0\u00E2\u00E5\u0099\u009E" + - "\u009D\u00EB\u00E9\u00EA\u009A\u00ED\u00E8\u00E1" + - "\u0085\u00A0\u0083\u00C6\u0084\u0086\u0091\u0087" + - "\u008A\u0082\u0088\u0089\u008D\u00A1\u008C\u008B" + - "\u00D0\u00A4\u0095\u00A2\u0093\u00E4\u0094\u00F6" + - "\u009B\u0097\u00A3\u0096\u0081\u00EC\u00E7\u0098" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u00D5\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u009F\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u00F2\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u00C4\u0000\u00B3\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00DA\u0000\u0000\u0000\u00BF\u0000\u0000\u0000" + - "\u00C0\u0000\u0000\u0000\u00D9\u0000\u0000\u0000" + - "\u00C3\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00B4\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00C2\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00C1\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00C5\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u00CD\u00BA\u0000\u0000" + - "\u00C9\u0000\u0000\u00BB\u0000\u0000\u00C8\u0000" + - "\u0000\u00BC\u0000\u0000\u00CC\u0000\u0000\u00B9" + - "\u0000\u0000\u00CB\u0000\u0000\u00CA\u0000\u0000" + - "\u00CE\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u00DF\u0000\u0000\u0000" + - "\u00DC\u0000\u0000\u0000\u00DB\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u00B0\u00B1\u00B2" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u00FE\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000"; - - private final static short index1[] = { - 0, 256, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 636, 403, 403, 403, 403, 892, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - - }; - } -} diff --git a/jdk/src/share/classes/sun/nio/cs/IBM852.java b/jdk/src/share/classes/sun/nio/cs/IBM852.java deleted file mode 100644 index c157d929d6f..00000000000 --- a/jdk/src/share/classes/sun/nio/cs/IBM852.java +++ /dev/null @@ -1,274 +0,0 @@ -/* - * Copyright 2003-2005 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. - */ - -package sun.nio.cs; - -import java.nio.charset.Charset; -import java.nio.charset.CharsetDecoder; -import java.nio.charset.CharsetEncoder; -import sun.nio.cs.StandardCharsets; -import sun.nio.cs.SingleByteDecoder; -import sun.nio.cs.SingleByteEncoder; -import sun.nio.cs.HistoricallyNamedCharset; - -public class IBM852 - extends Charset - implements HistoricallyNamedCharset -{ - - public IBM852() { - super("IBM852", StandardCharsets.aliases_IBM852); - } - - public String historicalName() { - return "Cp852"; - } - - public boolean contains(Charset cs) { - return (cs instanceof IBM852); - } - - public CharsetDecoder newDecoder() { - return new Decoder(this); - } - - public CharsetEncoder newEncoder() { - return new Encoder(this); - } - - - /** - * These accessors are temporarily supplied while sun.io - * converters co-exist with the sun.nio.cs.{ext} charset coders - * These facilitate sharing of conversion tables between the - * two co-existing implementations. When sun.io converters - * are made extinct these will be unncessary and should be removed - */ - - public String getDecoderSingleByteMappings() { - return Decoder.byteToCharTable; - - } - - public short[] getEncoderIndex1() { - return Encoder.index1; - - } - public String getEncoderIndex2() { - return Encoder.index2; - - } - - private static class Decoder extends SingleByteDecoder { - public Decoder(Charset cs) { - super(cs, byteToCharTable); - } - - private final static String byteToCharTable = - - "\u00C7\u00FC\u00E9\u00E2\u00E4\u016F\u0107\u00E7" + // 0x80 - 0x87 - "\u0142\u00EB\u0150\u0151\u00EE\u0179\u00C4\u0106" + // 0x88 - 0x8F - "\u00C9\u0139\u013A\u00F4\u00F6\u013D\u013E\u015A" + // 0x90 - 0x97 - "\u015B\u00D6\u00DC\u0164\u0165\u0141\u00D7\u010D" + // 0x98 - 0x9F - "\u00E1\u00ED\u00F3\u00FA\u0104\u0105\u017D\u017E" + // 0xA0 - 0xA7 - "\u0118\u0119\u00AC\u017A\u010C\u015F\u00AB\u00BB" + // 0xA8 - 0xAF - "\u2591\u2592\u2593\u2502\u2524\u00C1\u00C2\u011A" + // 0xB0 - 0xB7 - "\u015E\u2563\u2551\u2557\u255D\u017B\u017C\u2510" + // 0xB8 - 0xBF - "\u2514\u2534\u252C\u251C\u2500\u253C\u0102\u0103" + // 0xC0 - 0xC7 - "\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u00A4" + // 0xC8 - 0xCF - "\u0111\u0110\u010E\u00CB\u010F\u0147\u00CD\u00CE" + // 0xD0 - 0xD7 - "\u011B\u2518\u250C\u2588\u2584\u0162\u016E\u2580" + // 0xD8 - 0xDF - "\u00D3\u00DF\u00D4\u0143\u0144\u0148\u0160\u0161" + // 0xE0 - 0xE7 - "\u0154\u00DA\u0155\u0170\u00FD\u00DD\u0163\u00B4" + // 0xE8 - 0xEF - "\u00AD\u02DD\u02DB\u02C7\u02D8\u00A7\u00F7\u00B8" + // 0xF0 - 0xF7 - "\u00B0\u00A8\u02D9\u0171\u0158\u0159\u25A0\u00A0" + // 0xF8 - 0xFF - "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007" + // 0x00 - 0x07 - "\b\t\n\u000B\f\r\u000E\u000F" + // 0x08 - 0x0F - "\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017" + // 0x10 - 0x17 - "\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F" + // 0x18 - 0x1F - "\u0020\u0021\"\u0023\u0024\u0025\u0026\'" + // 0x20 - 0x27 - "\u0028\u0029\u002A\u002B\u002C\u002D\u002E\u002F" + // 0x28 - 0x2F - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + // 0x30 - 0x37 - "\u0038\u0039\u003A\u003B\u003C\u003D\u003E\u003F" + // 0x38 - 0x3F - "\u0040\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + // 0x40 - 0x47 - "\u0048\u0049\u004A\u004B\u004C\u004D\u004E\u004F" + // 0x48 - 0x4F - "\u0050\u0051\u0052\u0053\u0054\u0055\u0056\u0057" + // 0x50 - 0x57 - "\u0058\u0059\u005A\u005B\\\u005D\u005E\u005F" + // 0x58 - 0x5F - "\u0060\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + // 0x60 - 0x67 - "\u0068\u0069\u006A\u006B\u006C\u006D\u006E\u006F" + // 0x68 - 0x6F - "\u0070\u0071\u0072\u0073\u0074\u0075\u0076\u0077" + // 0x70 - 0x77 - "\u0078\u0079\u007A\u007B\u007C\u007D\u007E\u007F"; // 0x78 - 0x7F - - } - - private static class Encoder extends SingleByteEncoder { - public Encoder(Charset cs) { - super(cs, index1, index2, 0xFF00, 0x00FF, 8); - } - - private final static String index2 = - - - "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007" + - "\b\t\n\u000B\f\r\u000E\u000F" + - "\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017" + - "\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F" + - "\u0020\u0021\"\u0023\u0024\u0025\u0026\'" + - "\u0028\u0029\u002A\u002B\u002C\u002D\u002E\u002F" + - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + - "\u0038\u0039\u003A\u003B\u003C\u003D\u003E\u003F" + - "\u0040\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + - "\u0048\u0049\u004A\u004B\u004C\u004D\u004E\u004F" + - "\u0050\u0051\u0052\u0053\u0054\u0055\u0056\u0057" + - "\u0058\u0059\u005A\u005B\\\u005D\u005E\u005F" + - "\u0060\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + - "\u0068\u0069\u006A\u006B\u006C\u006D\u006E\u006F" + - "\u0070\u0071\u0072\u0073\u0074\u0075\u0076\u0077" + - "\u0078\u0079\u007A\u007B\u007C\u007D\u007E\u007F" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00FF\u0000\u0000\u0000\u00CF\u0000\u0000\u00F5" + - "\u00F9\u0000\u0000\u00AE\u00AA\u00F0\u0000\u0000" + - "\u00F8\u0000\u0000\u0000\u00EF\u0000\u0000\u0000" + - "\u00F7\u0000\u0000\u00AF\u0000\u0000\u0000\u0000" + - "\u0000\u00B5\u00B6\u0000\u008E\u0000\u0000\u0080" + - "\u0000\u0090\u0000\u00D3\u0000\u00D6\u00D7\u0000" + - "\u0000\u0000\u0000\u00E0\u00E2\u0000\u0099\u009E" + - "\u0000\u0000\u00E9\u0000\u009A\u00ED\u0000\u00E1" + - "\u0000\u00A0\u0083\u0000\u0084\u0000\u0000\u0087" + - "\u0000\u0082\u0000\u0089\u0000\u00A1\u008C\u0000" + - "\u0000\u0000\u0000\u00A2\u0093\u0000\u0094\u00F6" + - "\u0000\u0000\u00A3\u0000\u0081\u00EC\u0000\u0000" + - "\u00C6\u00C7\u00A4\u00A5\u008F\u0086\u0000\u0000" + - "\u0000\u0000\u00AC\u009F\u00D2\u00D4\u00D1\u00D0" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u00A8\u00A9" + - "\u00B7\u00D8\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0091" + - "\u0092\u0000\u0000\u0095\u0096\u0000\u0000\u009D" + - "\u0088\u00E3\u00E4\u0000\u0000\u00D5\u00E5\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u008A\u008B" + - "\u0000\u0000\u00E8\u00EA\u0000\u0000\u00FC\u00FD" + - "\u0097\u0098\u0000\u0000\u00B8\u00AD\u00E6\u00E7" + - "\u00DD\u00EE\u009B\u009C\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u00DE\u0085\u00EB\u00FB" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u008D" + - "\u00AB\u00BD\u00BE\u00A6\u00A7\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u00F3\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u00F4\u00FA" + - "\u0000\u00F2\u0000\u00F1\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u00C4\u0000" + - "\u00B3\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u00DA\u0000\u0000\u0000\u00BF\u0000" + - "\u0000\u0000\u00C0\u0000\u0000\u0000\u00D9\u0000" + - "\u0000\u0000\u00C3\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u00B4\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u00C2\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u00C1\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u00C5\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u00CD\u00BA" + - "\u0000\u0000\u00C9\u0000\u0000\u00BB\u0000\u0000" + - "\u00C8\u0000\u0000\u00BC\u0000\u0000\u00CC\u0000" + - "\u0000\u00B9\u0000\u0000\u00CB\u0000\u0000\u00CA" + - "\u0000\u0000\u00CE\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u00DF\u0000" + - "\u0000\u0000\u00DC\u0000\u0000\u0000\u00DB\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u00B0" + - "\u00B1\u00B2\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u00FE\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000"; - - private final static short index1[] = { - 0, 254, 438, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, - 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, - 381, 381, 381, 381, 381, 694, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, - 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, - 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, - 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, - 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, - 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, - 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, - 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, - 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, - 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, - 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, - 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, - 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, - 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, - - }; - } -} diff --git a/jdk/src/share/classes/sun/nio/cs/IBM855.java b/jdk/src/share/classes/sun/nio/cs/IBM855.java deleted file mode 100644 index f27b9900572..00000000000 --- a/jdk/src/share/classes/sun/nio/cs/IBM855.java +++ /dev/null @@ -1,304 +0,0 @@ -/* - * Copyright 2003-2005 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. - */ - -package sun.nio.cs; - -import java.nio.charset.Charset; -import java.nio.charset.CharsetDecoder; -import java.nio.charset.CharsetEncoder; -import sun.nio.cs.StandardCharsets; -import sun.nio.cs.SingleByteDecoder; -import sun.nio.cs.SingleByteEncoder; -import sun.nio.cs.HistoricallyNamedCharset; - -public class IBM855 - extends Charset - implements HistoricallyNamedCharset -{ - - public IBM855() { - super("IBM855", StandardCharsets.aliases_IBM855); - } - - public String historicalName() { - return "Cp855"; - } - - public boolean contains(Charset cs) { - return (cs instanceof IBM855); - } - - public CharsetDecoder newDecoder() { - return new Decoder(this); - } - - public CharsetEncoder newEncoder() { - return new Encoder(this); - } - - - /** - * These accessors are temporarily supplied while sun.io - * converters co-exist with the sun.nio.cs.{ext} charset coders - * These facilitate sharing of conversion tables between the - * two co-existing implementations. When sun.io converters - * are made extinct these will be unncessary and should be removed - */ - - public String getDecoderSingleByteMappings() { - return Decoder.byteToCharTable; - - } - - public short[] getEncoderIndex1() { - return Encoder.index1; - - } - public String getEncoderIndex2() { - return Encoder.index2; - - } - - private static class Decoder extends SingleByteDecoder { - public Decoder(Charset cs) { - super(cs, byteToCharTable); - } - - private final static String byteToCharTable = - - "\u0452\u0402\u0453\u0403\u0451\u0401\u0454\u0404" + // 0x80 - 0x87 - "\u0455\u0405\u0456\u0406\u0457\u0407\u0458\u0408" + // 0x88 - 0x8F - "\u0459\u0409\u045A\u040A\u045B\u040B\u045C\u040C" + // 0x90 - 0x97 - "\u045E\u040E\u045F\u040F\u044E\u042E\u044A\u042A" + // 0x98 - 0x9F - "\u0430\u0410\u0431\u0411\u0446\u0426\u0434\u0414" + // 0xA0 - 0xA7 - "\u0435\u0415\u0444\u0424\u0433\u0413\u00AB\u00BB" + // 0xA8 - 0xAF - "\u2591\u2592\u2593\u2502\u2524\u0445\u0425\u0438" + // 0xB0 - 0xB7 - "\u0418\u2563\u2551\u2557\u255D\u0439\u0419\u2510" + // 0xB8 - 0xBF - "\u2514\u2534\u252C\u251C\u2500\u253C\u043A\u041A" + // 0xC0 - 0xC7 - "\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u00A4" + // 0xC8 - 0xCF - "\u043B\u041B\u043C\u041C\u043D\u041D\u043E\u041E" + // 0xD0 - 0xD7 - "\u043F\u2518\u250C\u2588\u2584\u041F\u044F\u2580" + // 0xD8 - 0xDF - "\u042F\u0440\u0420\u0441\u0421\u0442\u0422\u0443" + // 0xE0 - 0xE7 - "\u0423\u0436\u0416\u0432\u0412\u044C\u042C\u2116" + // 0xE8 - 0xEF - "\u00AD\u044B\u042B\u0437\u0417\u0448\u0428\u044D" + // 0xF0 - 0xF7 - "\u042D\u0449\u0429\u0447\u0427\u00A7\u25A0\u00A0" + // 0xF8 - 0xFF - "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007" + // 0x00 - 0x07 - "\b\t\n\u000B\f\r\u000E\u000F" + // 0x08 - 0x0F - "\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017" + // 0x10 - 0x17 - "\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F" + // 0x18 - 0x1F - "\u0020\u0021\"\u0023\u0024\u0025\u0026\'" + // 0x20 - 0x27 - "\u0028\u0029\u002A\u002B\u002C\u002D\u002E\u002F" + // 0x28 - 0x2F - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + // 0x30 - 0x37 - "\u0038\u0039\u003A\u003B\u003C\u003D\u003E\u003F" + // 0x38 - 0x3F - "\u0040\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + // 0x40 - 0x47 - "\u0048\u0049\u004A\u004B\u004C\u004D\u004E\u004F" + // 0x48 - 0x4F - "\u0050\u0051\u0052\u0053\u0054\u0055\u0056\u0057" + // 0x50 - 0x57 - "\u0058\u0059\u005A\u005B\\\u005D\u005E\u005F" + // 0x58 - 0x5F - "\u0060\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + // 0x60 - 0x67 - "\u0068\u0069\u006A\u006B\u006C\u006D\u006E\u006F" + // 0x68 - 0x6F - "\u0070\u0071\u0072\u0073\u0074\u0075\u0076\u0077" + // 0x70 - 0x77 - "\u0078\u0079\u007A\u007B\u007C\u007D\u007E\u007F"; // 0x78 - 0x7F - - } - - private static class Encoder extends SingleByteEncoder { - public Encoder(Charset cs) { - super(cs, index1, index2, 0xFF00, 0x00FF, 8); - } - - private final static String index2 = - - - "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007" + - "\b\t\n\u000B\f\r\u000E\u000F" + - "\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017" + - "\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F" + - "\u0020\u0021\"\u0023\u0024\u0025\u0026\'" + - "\u0028\u0029\u002A\u002B\u002C\u002D\u002E\u002F" + - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + - "\u0038\u0039\u003A\u003B\u003C\u003D\u003E\u003F" + - "\u0040\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + - "\u0048\u0049\u004A\u004B\u004C\u004D\u004E\u004F" + - "\u0050\u0051\u0052\u0053\u0054\u0055\u0056\u0057" + - "\u0058\u0059\u005A\u005B\\\u005D\u005E\u005F" + - "\u0060\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + - "\u0068\u0069\u006A\u006B\u006C\u006D\u006E\u006F" + - "\u0070\u0071\u0072\u0073\u0074\u0075\u0076\u0077" + - "\u0078\u0079\u007A\u007B\u007C\u007D\u007E\u007F" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00FF\u0000\u0000\u0000\u00CF\u0000\u0000\u00FD" + - "\u0000\u0000\u0000\u00AE\u0000\u00F0\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u00AF\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0085\u0081\u0083\u0087" + - "\u0089\u008B\u008D\u008F\u0091\u0093\u0095\u0097" + - "\u0000\u0099\u009B\u00A1\u00A3\u00EC\u00AD\u00A7" + - "\u00A9\u00EA\u00F4\u00B8\u00BE\u00C7\u00D1\u00D3" + - "\u00D5\u00D7\u00DD\u00E2\u00E4\u00E6\u00E8\u00AB" + - "\u00B6\u00A5\u00FC\u00F6\u00FA\u009F\u00F2\u00EE" + - "\u00F8\u009D\u00E0\u00A0\u00A2\u00EB\u00AC\u00A6" + - "\u00A8\u00E9\u00F3\u00B7\u00BD\u00C6\u00D0\u00D2" + - "\u00D4\u00D6\u00D8\u00E1\u00E3\u00E5\u00E7\u00AA" + - "\u00B5\u00A4\u00FB\u00F5\u00F9\u009E\u00F1\u00ED" + - "\u00F7\u009C\u00DE\u0000\u0084\u0080\u0082\u0086" + - "\u0088\u008A\u008C\u008E\u0090\u0092\u0094\u0096" + - "\u0000\u0098\u009A\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u00EF\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u00C4\u0000\u00B3" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u00DA\u0000\u0000\u0000\u00BF\u0000\u0000" + - "\u0000\u00C0\u0000\u0000\u0000\u00D9\u0000\u0000" + - "\u0000\u00C3\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u00B4\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u00C2\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u00C1\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u00C5\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u00CD\u00BA\u0000" + - "\u0000\u00C9\u0000\u0000\u00BB\u0000\u0000\u00C8" + - "\u0000\u0000\u00BC\u0000\u0000\u00CC\u0000\u0000" + - "\u00B9\u0000\u0000\u00CB\u0000\u0000\u00CA\u0000" + - "\u0000\u00CE\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u00DF\u0000\u0000" + - "\u0000\u00DC\u0000\u0000\u0000\u00DB\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u00B0\u00B1" + - "\u00B2\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u00FE\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000"; - - private final static short index1[] = { - 0, 188, 188, 188, 443, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, - 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, - 188, 677, 188, 188, 188, 933, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, - 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, - 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, - 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, - 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, - 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, - 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, - 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, - 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, - 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, - 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, - 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, - 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, - 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, - - }; - } -} diff --git a/jdk/src/share/classes/sun/nio/cs/IBM857.java b/jdk/src/share/classes/sun/nio/cs/IBM857.java deleted file mode 100644 index 1462d6dc38d..00000000000 --- a/jdk/src/share/classes/sun/nio/cs/IBM857.java +++ /dev/null @@ -1,263 +0,0 @@ -/* - * Copyright 2003-2005 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. - */ - -package sun.nio.cs; - -import java.nio.charset.Charset; -import java.nio.charset.CharsetDecoder; -import java.nio.charset.CharsetEncoder; -import sun.nio.cs.StandardCharsets; -import sun.nio.cs.SingleByteDecoder; -import sun.nio.cs.SingleByteEncoder; -import sun.nio.cs.HistoricallyNamedCharset; - -public class IBM857 - extends Charset - implements HistoricallyNamedCharset -{ - - public IBM857() { - super("IBM857", StandardCharsets.aliases_IBM857); - } - - public String historicalName() { - return "Cp857"; - } - - public boolean contains(Charset cs) { - return (cs instanceof IBM857); - } - - public CharsetDecoder newDecoder() { - return new Decoder(this); - } - - public CharsetEncoder newEncoder() { - return new Encoder(this); - } - - - /** - * These accessors are temporarily supplied while sun.io - * converters co-exist with the sun.nio.cs.{ext} charset coders - * These facilitate sharing of conversion tables between the - * two co-existing implementations. When sun.io converters - * are made extinct these will be unncessary and should be removed - */ - - public String getDecoderSingleByteMappings() { - return Decoder.byteToCharTable; - - } - - public short[] getEncoderIndex1() { - return Encoder.index1; - - } - public String getEncoderIndex2() { - return Encoder.index2; - - } - - private static class Decoder extends SingleByteDecoder { - public Decoder(Charset cs) { - super(cs, byteToCharTable); - } - - private final static String byteToCharTable = - - "\u00C7\u00FC\u00E9\u00E2\u00E4\u00E0\u00E5\u00E7" + // 0x80 - 0x87 - "\u00EA\u00EB\u00E8\u00EF\u00EE\u0131\u00C4\u00C5" + // 0x88 - 0x8F - "\u00C9\u00E6\u00C6\u00F4\u00F6\u00F2\u00FB\u00F9" + // 0x90 - 0x97 - "\u0130\u00D6\u00DC\u00F8\u00A3\u00D8\u015E\u015F" + // 0x98 - 0x9F - "\u00E1\u00ED\u00F3\u00FA\u00F1\u00D1\u011E\u011F" + // 0xA0 - 0xA7 - "\u00BF\u00AE\u00AC\u00BD\u00BC\u00A1\u00AB\u00BB" + // 0xA8 - 0xAF - "\u2591\u2592\u2593\u2502\u2524\u00C1\u00C2\u00C0" + // 0xB0 - 0xB7 - "\u00A9\u2563\u2551\u2557\u255D\u00A2\u00A5\u2510" + // 0xB8 - 0xBF - "\u2514\u2534\u252C\u251C\u2500\u253C\u00E3\u00C3" + // 0xC0 - 0xC7 - "\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u00A4" + // 0xC8 - 0xCF - "\u00BA\u00AA\u00CA\u00CB\u00C8\uFFFD\u00CD\u00CE" + // 0xD0 - 0xD7 - "\u00CF\u2518\u250C\u2588\u2584\u00A6\u00CC\u2580" + // 0xD8 - 0xDF - "\u00D3\u00DF\u00D4\u00D2\u00F5\u00D5\u00B5\uFFFD" + // 0xE0 - 0xE7 - "\u00D7\u00DA\u00DB\u00D9\u00EC\u00FF\u00AF\u00B4" + // 0xE8 - 0xEF - "\u00AD\u00B1\uFFFD\u00BE\u00B6\u00A7\u00F7\u00B8" + // 0xF0 - 0xF7 - "\u00B0\u00A8\u00B7\u00B9\u00B3\u00B2\u25A0\u00A0" + // 0xF8 - 0xFF - "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007" + // 0x00 - 0x07 - "\b\t\n\u000B\f\r\u000E\u000F" + // 0x08 - 0x0F - "\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017" + // 0x10 - 0x17 - "\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F" + // 0x18 - 0x1F - "\u0020\u0021\"\u0023\u0024\u0025\u0026\'" + // 0x20 - 0x27 - "\u0028\u0029\u002A\u002B\u002C\u002D\u002E\u002F" + // 0x28 - 0x2F - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + // 0x30 - 0x37 - "\u0038\u0039\u003A\u003B\u003C\u003D\u003E\u003F" + // 0x38 - 0x3F - "\u0040\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + // 0x40 - 0x47 - "\u0048\u0049\u004A\u004B\u004C\u004D\u004E\u004F" + // 0x48 - 0x4F - "\u0050\u0051\u0052\u0053\u0054\u0055\u0056\u0057" + // 0x50 - 0x57 - "\u0058\u0059\u005A\u005B\\\u005D\u005E\u005F" + // 0x58 - 0x5F - "\u0060\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + // 0x60 - 0x67 - "\u0068\u0069\u006A\u006B\u006C\u006D\u006E\u006F" + // 0x68 - 0x6F - "\u0070\u0071\u0072\u0073\u0074\u0075\u0076\u0077" + // 0x70 - 0x77 - "\u0078\u0079\u007A\u007B\u007C\u007D\u007E\u007F"; // 0x78 - 0x7F - - } - - private static class Encoder extends SingleByteEncoder { - public Encoder(Charset cs) { - super(cs, index1, index2, 0xFF00, 0x00FF, 8); - } - - private final static String index2 = - - - "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007" + - "\b\t\n\u000B\f\r\u000E\u000F" + - "\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017" + - "\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F" + - "\u0020\u0021\"\u0023\u0024\u0025\u0026\'" + - "\u0028\u0029\u002A\u002B\u002C\u002D\u002E\u002F" + - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + - "\u0038\u0039\u003A\u003B\u003C\u003D\u003E\u003F" + - "\u0040\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + - "\u0048\u0049\u004A\u004B\u004C\u004D\u004E\u004F" + - "\u0050\u0051\u0052\u0053\u0054\u0055\u0056\u0057" + - "\u0058\u0059\u005A\u005B\\\u005D\u005E\u005F" + - "\u0060\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + - "\u0068\u0069\u006A\u006B\u006C\u006D\u006E\u006F" + - "\u0070\u0071\u0072\u0073\u0074\u0075\u0076\u0077" + - "\u0078\u0079\u007A\u007B\u007C\u007D\u007E\u007F" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00FF\u00AD\u00BD\u009C\u00CF\u00BE\u00DD\u00F5" + - "\u00F9\u00B8\u00D1\u00AE\u00AA\u00F0\u00A9\u00EE" + - "\u00F8\u00F1\u00FD\u00FC\u00EF\u00E6\u00F4\u00FA" + - "\u00F7\u00FB\u00D0\u00AF\u00AC\u00AB\u00F3\u00A8" + - "\u00B7\u00B5\u00B6\u00C7\u008E\u008F\u0092\u0080" + - "\u00D4\u0090\u00D2\u00D3\u00DE\u00D6\u00D7\u00D8" + - "\u0000\u00A5\u00E3\u00E0\u00E2\u00E5\u0099\u00E8" + - "\u009D\u00EB\u00E9\u00EA\u009A\u0000\u0000\u00E1" + - "\u0085\u00A0\u0083\u00C6\u0084\u0086\u0091\u0087" + - "\u008A\u0082\u0088\u0089\u00EC\u00A1\u008C\u008B" + - "\u0000\u00A4\u0095\u00A2\u0093\u00E4\u0094\u00F6" + - "\u009B\u0097\u00A3\u0096\u0081\u0000\u0000\u00ED" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u00A6\u00A7" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0098\u008D\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u009E\u009F" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00C4\u0000\u00B3\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u00DA\u0000\u0000\u0000" + - "\u00BF\u0000\u0000\u0000\u00C0\u0000\u0000\u0000" + - "\u00D9\u0000\u0000\u0000\u00C3\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u00B4\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u00C2\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u00C1\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u00C5\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00CD\u00BA\u0000\u0000\u00C9\u0000\u0000\u00BB" + - "\u0000\u0000\u00C8\u0000\u0000\u00BC\u0000\u0000" + - "\u00CC\u0000\u0000\u00B9\u0000\u0000\u00CB\u0000" + - "\u0000\u00CA\u0000\u0000\u00CE\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00DF\u0000\u0000\u0000\u00DC\u0000\u0000\u0000" + - "\u00DB\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u00B0\u00B1\u00B2\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00FE\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"; - - private final static short index1[] = { - 0, 256, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 608, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - - }; - } -} diff --git a/jdk/src/share/classes/sun/nio/cs/IBM858.java b/jdk/src/share/classes/sun/nio/cs/IBM858.java deleted file mode 100644 index ffe7ce0200a..00000000000 --- a/jdk/src/share/classes/sun/nio/cs/IBM858.java +++ /dev/null @@ -1,264 +0,0 @@ -/* - * Copyright 2003-2005 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. - */ - -package sun.nio.cs; - -import java.nio.charset.Charset; -import java.nio.charset.CharsetDecoder; -import java.nio.charset.CharsetEncoder; -import sun.nio.cs.StandardCharsets; -import sun.nio.cs.SingleByteDecoder; -import sun.nio.cs.SingleByteEncoder; -import sun.nio.cs.HistoricallyNamedCharset; - -public class IBM858 - extends Charset - implements HistoricallyNamedCharset -{ - - public IBM858() { - super("IBM00858", StandardCharsets.aliases_IBM858); - } - - public String historicalName() { - return "Cp858"; - } - - public boolean contains(Charset cs) { - return (cs instanceof IBM858); - } - - public CharsetDecoder newDecoder() { - return new Decoder(this); - } - - public CharsetEncoder newEncoder() { - return new Encoder(this); - } - - - /** - * These accessors are temporarily supplied while sun.io - * converters co-exist with the sun.nio.cs.{ext} charset coders - * These facilitate sharing of conversion tables between the - * two co-existing implementations. When sun.io converters - * are made extinct these will be unncessary and should be removed - */ - - public static String getDecoderSingleByteMappings() { - return IBM850.getDecoderSingleByteMappings(); - } - - public short[] getEncoderIndex1() { - return Encoder.index1; - - } - public String getEncoderIndex2() { - return Encoder.index2; - - } - - private static class Decoder extends IBM850.Decoder { - public Decoder(Charset cs) { - super(cs); - } - - public char decode(int byteIndex) { - return (byteIndex == (byte)0xD5) ? '\u20AC' : super.decode(byteIndex); - } - } - - private static class Encoder extends SingleByteEncoder { - public Encoder(Charset cs) { - super(cs, index1, index2, 0xFF00, 0x00FF, 8); - } - - private final static String index2 = - - "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007" + - "\b\t\n\u000B\f\r\u000E\u000F" + - "\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017" + - "\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F" + - "\u0020\u0021\"\u0023\u0024\u0025\u0026\'" + - "\u0028\u0029\u002A\u002B\u002C\u002D\u002E\u002F" + - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + - "\u0038\u0039\u003A\u003B\u003C\u003D\u003E\u003F" + - "\u0040\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + - "\u0048\u0049\u004A\u004B\u004C\u004D\u004E\u004F" + - "\u0050\u0051\u0052\u0053\u0054\u0055\u0056\u0057" + - "\u0058\u0059\u005A\u005B\\\u005D\u005E\u005F" + - "\u0060\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + - "\u0068\u0069\u006A\u006B\u006C\u006D\u006E\u006F" + - "\u0070\u0071\u0072\u0073\u0074\u0075\u0076\u0077" + - "\u0078\u0079\u007A\u007B\u007C\u007D\u007E\u007F" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00FF\u00AD\u00BD\u009C\u00CF\u00BE\u00DD\u00F5" + - "\u00F9\u00B8\u00A6\u00AE\u00AA\u00F0\u00A9\u00EE" + - "\u00F8\u00F1\u00FD\u00FC\u00EF\u00E6\u00F4\u00FA" + - "\u00F7\u00FB\u00A7\u00AF\u00AC\u00AB\u00F3\u00A8" + - "\u00B7\u00B5\u00B6\u00C7\u008E\u008F\u0092\u0080" + - "\u00D4\u0090\u00D2\u00D3\u00DE\u00D6\u00D7\u00D8" + - "\u00D1\u00A5\u00E3\u00E0\u00E2\u00E5\u0099\u009E" + - "\u009D\u00EB\u00E9\u00EA\u009A\u00ED\u00E8\u00E1" + - "\u0085\u00A0\u0083\u00C6\u0084\u0086\u0091\u0087" + - "\u008A\u0082\u0088\u0089\u008D\u00A1\u008C\u008B" + - "\u00D0\u00A4\u0095\u00A2\u0093\u00E4\u0094\u00F6" + - "\u009B\u0097\u00A3\u0096\u0081\u00EC\u00E7\u0098" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u009F\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u00F2\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00D5\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u00C4\u0000\u00B3\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00DA\u0000\u0000\u0000\u00BF\u0000\u0000\u0000" + - "\u00C0\u0000\u0000\u0000\u00D9\u0000\u0000\u0000" + - "\u00C3\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00B4\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00C2\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00C1\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00C5\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u00CD\u00BA\u0000\u0000" + - "\u00C9\u0000\u0000\u00BB\u0000\u0000\u00C8\u0000" + - "\u0000\u00BC\u0000\u0000\u00CC\u0000\u0000\u00B9" + - "\u0000\u0000\u00CB\u0000\u0000\u00CA\u0000\u0000" + - "\u00CE\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u00DF\u0000\u0000\u0000" + - "\u00DC\u0000\u0000\u0000\u00DB\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u00B0\u00B1\u00B2" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u00FE\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000"; - - private final static short index1[] = { - 0, 256, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 636, 403, 403, 403, 403, 892, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - }; - } -} diff --git a/jdk/src/share/classes/sun/nio/cs/IBM862.java b/jdk/src/share/classes/sun/nio/cs/IBM862.java deleted file mode 100644 index b6498447341..00000000000 --- a/jdk/src/share/classes/sun/nio/cs/IBM862.java +++ /dev/null @@ -1,396 +0,0 @@ -/* - * Copyright 2003-2005 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. - */ - -package sun.nio.cs; - -import java.nio.charset.Charset; -import java.nio.charset.CharsetDecoder; -import java.nio.charset.CharsetEncoder; -import sun.nio.cs.StandardCharsets; -import sun.nio.cs.SingleByteDecoder; -import sun.nio.cs.SingleByteEncoder; -import sun.nio.cs.HistoricallyNamedCharset; - -public class IBM862 - extends Charset - implements HistoricallyNamedCharset -{ - - public IBM862() { - super("IBM862", StandardCharsets.aliases_IBM862); - } - - public String historicalName() { - return "Cp862"; - } - - public boolean contains(Charset cs) { - return (cs instanceof IBM862); - } - - public CharsetDecoder newDecoder() { - return new Decoder(this); - } - - public CharsetEncoder newEncoder() { - return new Encoder(this); - } - - - /** - * These accessors are temporarily supplied while sun.io - * converters co-exist with the sun.nio.cs.{ext} charset coders - * These facilitate sharing of conversion tables between the - * two co-existing implementations. When sun.io converters - * are made extinct these will be unncessary and should be removed - */ - - public String getDecoderSingleByteMappings() { - return Decoder.byteToCharTable; - - } - - public short[] getEncoderIndex1() { - return Encoder.index1; - - } - public String getEncoderIndex2() { - return Encoder.index2; - - } - - private static class Decoder extends SingleByteDecoder { - public Decoder(Charset cs) { - super(cs, byteToCharTable); - } - - private final static String byteToCharTable = - - "\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5\u05D6\u05D7" + // 0x80 - 0x87 - "\u05D8\u05D9\u05DA\u05DB\u05DC\u05DD\u05DE\u05DF" + // 0x88 - 0x8F - "\u05E0\u05E1\u05E2\u05E3\u05E4\u05E5\u05E6\u05E7" + // 0x90 - 0x97 - "\u05E8\u05E9\u05EA\u00A2\u00A3\u00A5\u20A7\u0192" + // 0x98 - 0x9F - "\u00E1\u00ED\u00F3\u00FA\u00F1\u00D1\u00AA\u00BA" + // 0xA0 - 0xA7 - "\u00BF\u2310\u00AC\u00BD\u00BC\u00A1\u00AB\u00BB" + // 0xA8 - 0xAF - "\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556" + // 0xB0 - 0xB7 - "\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510" + // 0xB8 - 0xBF - "\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F" + // 0xC0 - 0xC7 - "\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567" + // 0xC8 - 0xCF - "\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B" + // 0xD0 - 0xD7 - "\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580" + // 0xD8 - 0xDF - "\u03B1\u00DF\u0393\u03C0\u03A3\u03C3\u00B5\u03C4" + // 0xE0 - 0xE7 - "\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229" + // 0xE8 - 0xEF - "\u2261\u00B1\u2265\u2264\u2320\u2321\u00F7\u2248" + // 0xF0 - 0xF7 - "\u00B0\u2219\u00B7\u221A\u207F\u00B2\u25A0\u00A0" + // 0xF8 - 0xFF - "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007" + // 0x00 - 0x07 - "\b\t\n\u000B\f\r\u000E\u000F" + // 0x08 - 0x0F - "\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017" + // 0x10 - 0x17 - "\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F" + // 0x18 - 0x1F - "\u0020\u0021\"\u0023\u0024\u0025\u0026\'" + // 0x20 - 0x27 - "\u0028\u0029\u002A\u002B\u002C\u002D\u002E\u002F" + // 0x28 - 0x2F - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + // 0x30 - 0x37 - "\u0038\u0039\u003A\u003B\u003C\u003D\u003E\u003F" + // 0x38 - 0x3F - "\u0040\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + // 0x40 - 0x47 - "\u0048\u0049\u004A\u004B\u004C\u004D\u004E\u004F" + // 0x48 - 0x4F - "\u0050\u0051\u0052\u0053\u0054\u0055\u0056\u0057" + // 0x50 - 0x57 - "\u0058\u0059\u005A\u005B\\\u005D\u005E\u005F" + // 0x58 - 0x5F - "\u0060\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + // 0x60 - 0x67 - "\u0068\u0069\u006A\u006B\u006C\u006D\u006E\u006F" + // 0x68 - 0x6F - "\u0070\u0071\u0072\u0073\u0074\u0075\u0076\u0077" + // 0x70 - 0x77 - "\u0078\u0079\u007A\u007B\u007C\u007D\u007E\u007F"; // 0x78 - 0x7F - - } - - private static class Encoder extends SingleByteEncoder { - public Encoder(Charset cs) { - super(cs, index1, index2, 0xFF00, 0x00FF, 8); - } - - private final static String index2 = - - - "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007" + - "\b\t\n\u000B\f\r\u000E\u000F" + - "\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017" + - "\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F" + - "\u0020\u0021\"\u0023\u0024\u0025\u0026\'" + - "\u0028\u0029\u002A\u002B\u002C\u002D\u002E\u002F" + - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + - "\u0038\u0039\u003A\u003B\u003C\u003D\u003E\u003F" + - "\u0040\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + - "\u0048\u0049\u004A\u004B\u004C\u004D\u004E\u004F" + - "\u0050\u0051\u0052\u0053\u0054\u0055\u0056\u0057" + - "\u0058\u0059\u005A\u005B\\\u005D\u005E\u005F" + - "\u0060\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + - "\u0068\u0069\u006A\u006B\u006C\u006D\u006E\u006F" + - "\u0070\u0071\u0072\u0073\u0074\u0075\u0076\u0077" + - "\u0078\u0079\u007A\u007B\u007C\u007D\u007E\u007F" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00FF\u00AD\u009B\u009C\u0000\u009D\u0000\u0000" + - "\u0000\u0000\u00A6\u00AE\u00AA\u0000\u0000\u0000" + - "\u00F8\u00F1\u00FD\u0000\u0000\u00E6\u0000\u00FA" + - "\u0000\u0000\u00A7\u00AF\u00AC\u00AB\u0000\u00A8" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u00A5\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u00E1" + - "\u0000\u00A0\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u00A1\u0000\u0000" + - "\u0000\u00A4\u0000\u00A2\u0000\u0000\u0000\u00F6" + - "\u0000\u0000\u00A3\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u009F\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u00E2\u0000" + - "\u0000\u0000\u0000\u00E9\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u00E4\u0000" + - "\u0000\u00E8\u0000\u0000\u00EA\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u00E0\u0000\u0000\u00EB" + - "\u00EE\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u00E3\u0000\u0000\u00E5\u00E7" + - "\u0000\u00ED\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0080\u0081\u0082\u0083\u0084\u0085" + - "\u0086\u0087\u0088\u0089\u008A\u008B\u008C\u008D" + - "\u008E\u008F\u0090\u0091\u0092\u0093\u0094\u0095" + - "\u0096\u0097\u0098\u0099\u009A\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u00FC\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u009E\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u00F9\u00FB\u0000" + - "\u0000\u0000\u00EC\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u00EF\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u00F7\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u00F0\u0000\u0000" + - "\u00F3\u00F2\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u00A9\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u00F4\u00F5\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u00C4\u0000\u00B3\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00DA\u0000\u0000\u0000\u00BF\u0000\u0000\u0000" + - "\u00C0\u0000\u0000\u0000\u00D9\u0000\u0000\u0000" + - "\u00C3\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00B4\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00C2\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00C1\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00C5\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u00CD\u00BA\u00D5\u00D6" + - "\u00C9\u00B8\u00B7\u00BB\u00D4\u00D3\u00C8\u00BE" + - "\u00BD\u00BC\u00C6\u00C7\u00CC\u00B5\u00B6\u00B9" + - "\u00D1\u00D2\u00CB\u00CF\u00D0\u00CA\u00D8\u00D7" + - "\u00CE\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u00DF\u0000\u0000\u0000" + - "\u00DC\u0000\u0000\u0000\u00DB\u0000\u0000\u0000" + - "\u00DD\u0000\u0000\u0000\u00DE\u00B0\u00B1\u00B2" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u00FE\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000"; - - private final static short index1[] = { - 0, 251, 398, 507, 398, 706, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, - 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, - 941, 398, 1172, 1412, 398, 1668, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, - 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, - 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, - 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, - 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, - 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, - 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, - 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, - 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, - 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, - 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, - 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, - 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, - 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, - - }; - } -} diff --git a/jdk/src/share/classes/sun/nio/cs/IBM866.java b/jdk/src/share/classes/sun/nio/cs/IBM866.java deleted file mode 100644 index 5211cb36161..00000000000 --- a/jdk/src/share/classes/sun/nio/cs/IBM866.java +++ /dev/null @@ -1,332 +0,0 @@ -/* - * Copyright 2003-2005 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. - */ - -package sun.nio.cs; - -import java.nio.charset.Charset; -import java.nio.charset.CharsetDecoder; -import java.nio.charset.CharsetEncoder; -import sun.nio.cs.StandardCharsets; -import sun.nio.cs.SingleByteDecoder; -import sun.nio.cs.SingleByteEncoder; -import sun.nio.cs.HistoricallyNamedCharset; - -public class IBM866 - extends Charset - implements HistoricallyNamedCharset -{ - - public IBM866() { - super("IBM866", StandardCharsets.aliases_IBM866); - } - - public String historicalName() { - return "Cp866"; - } - - public boolean contains(Charset cs) { - return (cs instanceof IBM866); - } - - public CharsetDecoder newDecoder() { - return new Decoder(this); - } - - public CharsetEncoder newEncoder() { - return new Encoder(this); - } - - - /** - * These accessors are temporarily supplied while sun.io - * converters co-exist with the sun.nio.cs.{ext} charset coders - * These facilitate sharing of conversion tables between the - * two co-existing implementations. When sun.io converters - * are made extinct these will be unncessary and should be removed - */ - - public String getDecoderSingleByteMappings() { - return Decoder.byteToCharTable; - - } - - public short[] getEncoderIndex1() { - return Encoder.index1; - - } - public String getEncoderIndex2() { - return Encoder.index2; - - } - - private static class Decoder extends SingleByteDecoder { - public Decoder(Charset cs) { - super(cs, byteToCharTable); - } - - private final static String byteToCharTable = - - "\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417" + // 0x80 - 0x87 - "\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F" + // 0x88 - 0x8F - "\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427" + // 0x90 - 0x97 - "\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F" + // 0x98 - 0x9F - "\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437" + // 0xA0 - 0xA7 - "\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F" + // 0xA8 - 0xAF - "\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556" + // 0xB0 - 0xB7 - "\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510" + // 0xB8 - 0xBF - "\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F" + // 0xC0 - 0xC7 - "\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567" + // 0xC8 - 0xCF - "\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B" + // 0xD0 - 0xD7 - "\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580" + // 0xD8 - 0xDF - "\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447" + // 0xE0 - 0xE7 - "\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F" + // 0xE8 - 0xEF - "\u0401\u0451\u0404\u0454\u0407\u0457\u040E\u045E" + // 0xF0 - 0xF7 - "\u00B0\u2219\u00B7\u221A\u2116\u00A4\u25A0\u00A0" + // 0xF8 - 0xFF - "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007" + // 0x00 - 0x07 - "\b\t\n\u000B\f\r\u000E\u000F" + // 0x08 - 0x0F - "\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017" + // 0x10 - 0x17 - "\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F" + // 0x18 - 0x1F - "\u0020\u0021\"\u0023\u0024\u0025\u0026\'" + // 0x20 - 0x27 - "\u0028\u0029\u002A\u002B\u002C\u002D\u002E\u002F" + // 0x28 - 0x2F - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + // 0x30 - 0x37 - "\u0038\u0039\u003A\u003B\u003C\u003D\u003E\u003F" + // 0x38 - 0x3F - "\u0040\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + // 0x40 - 0x47 - "\u0048\u0049\u004A\u004B\u004C\u004D\u004E\u004F" + // 0x48 - 0x4F - "\u0050\u0051\u0052\u0053\u0054\u0055\u0056\u0057" + // 0x50 - 0x57 - "\u0058\u0059\u005A\u005B\\\u005D\u005E\u005F" + // 0x58 - 0x5F - "\u0060\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + // 0x60 - 0x67 - "\u0068\u0069\u006A\u006B\u006C\u006D\u006E\u006F" + // 0x68 - 0x6F - "\u0070\u0071\u0072\u0073\u0074\u0075\u0076\u0077" + // 0x70 - 0x77 - "\u0078\u0079\u007A\u007B\u007C\u007D\u007E\u007F"; // 0x78 - 0x7F - - } - - private static class Encoder extends SingleByteEncoder { - public Encoder(Charset cs) { - super(cs, index1, index2, 0xFF00, 0x00FF, 8); - } - - private final static String index2 = - - - "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007" + - "\b\t\n\u000B\f\r\u000E\u000F" + - "\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017" + - "\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F" + - "\u0020\u0021\"\u0023\u0024\u0025\u0026\'" + - "\u0028\u0029\u002A\u002B\u002C\u002D\u002E\u002F" + - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + - "\u0038\u0039\u003A\u003B\u003C\u003D\u003E\u003F" + - "\u0040\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + - "\u0048\u0049\u004A\u004B\u004C\u004D\u004E\u004F" + - "\u0050\u0051\u0052\u0053\u0054\u0055\u0056\u0057" + - "\u0058\u0059\u005A\u005B\\\u005D\u005E\u005F" + - "\u0060\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + - "\u0068\u0069\u006A\u006B\u006C\u006D\u006E\u006F" + - "\u0070\u0071\u0072\u0073\u0074\u0075\u0076\u0077" + - "\u0078\u0079\u007A\u007B\u007C\u007D\u007E\u007F" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00FF\u0000\u0000\u0000\u00FD\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00F8\u0000\u0000\u0000\u0000\u0000\u0000\u00FA" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00F0\u0000\u0000\u00F2\u0000\u0000\u00F4\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u00F6\u0000\u0080" + - "\u0081\u0082\u0083\u0084\u0085\u0086\u0087\u0088" + - "\u0089\u008A\u008B\u008C\u008D\u008E\u008F\u0090" + - "\u0091\u0092\u0093\u0094\u0095\u0096\u0097\u0098" + - "\u0099\u009A\u009B\u009C\u009D\u009E\u009F\u00A0" + - "\u00A1\u00A2\u00A3\u00A4\u00A5\u00A6\u00A7\u00A8" + - "\u00A9\u00AA\u00AB\u00AC\u00AD\u00AE\u00AF\u00E0" + - "\u00E1\u00E2\u00E3\u00E4\u00E5\u00E6\u00E7\u00E8" + - "\u00E9\u00EA\u00EB\u00EC\u00ED\u00EE\u00EF\u0000" + - "\u00F1\u0000\u0000\u00F3\u0000\u0000\u00F5\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u00F7\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u00FC" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u00F9\u00FB\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00C4\u0000\u00B3\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u00DA\u0000\u0000\u0000" + - "\u00BF\u0000\u0000\u0000\u00C0\u0000\u0000\u0000" + - "\u00D9\u0000\u0000\u0000\u00C3\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u00B4\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u00C2\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u00C1\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u00C5\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00CD\u00BA\u00D5\u00D6\u00C9\u00B8\u00B7\u00BB" + - "\u00D4\u00D3\u00C8\u00BE\u00BD\u00BC\u00C6\u00C7" + - "\u00CC\u00B5\u00B6\u00B9\u00D1\u00D2\u00CB\u00CF" + - "\u00D0\u00CA\u00D8\u00D7\u00CE\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00DF\u0000\u0000\u0000\u00DC\u0000\u0000\u0000" + - "\u00DB\u0000\u0000\u0000\u00DD\u0000\u0000\u0000" + - "\u00DE\u00B0\u00B1\u00B2\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00FE\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"; - - private final static short index1[] = { - 0, 184, 184, 184, 439, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, - 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, - 184, 673, 904, 184, 184, 1160, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, - 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, - 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, - 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, - 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, - 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, - 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, - 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, - 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, - 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, - 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, - 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, - 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, - 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, - - }; - } -} diff --git a/jdk/src/share/classes/sun/nio/cs/IBM874.java b/jdk/src/share/classes/sun/nio/cs/IBM874.java deleted file mode 100644 index a1d9195a920..00000000000 --- a/jdk/src/share/classes/sun/nio/cs/IBM874.java +++ /dev/null @@ -1,252 +0,0 @@ -/* - * Copyright 2003-2005 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. - */ - -package sun.nio.cs; - -import java.nio.charset.Charset; -import java.nio.charset.CharsetDecoder; -import java.nio.charset.CharsetEncoder; -import sun.nio.cs.StandardCharsets; -import sun.nio.cs.SingleByteDecoder; -import sun.nio.cs.SingleByteEncoder; -import sun.nio.cs.HistoricallyNamedCharset; - -public class IBM874 - extends Charset - implements HistoricallyNamedCharset -{ - - public IBM874() { - super("x-IBM874", StandardCharsets.aliases_IBM874); - } - - public String historicalName() { - return "Cp874"; - } - - public boolean contains(Charset cs) { - return (cs instanceof IBM874); - } - - public CharsetDecoder newDecoder() { - return new Decoder(this); - } - - public CharsetEncoder newEncoder() { - return new Encoder(this); - } - - - /** - * These accessors are temporarily supplied while sun.io - * converters co-exist with the sun.nio.cs.{ext} charset coders - * These facilitate sharing of conversion tables between the - * two co-existing implementations. When sun.io converters - * are made extinct these will be unncessary and should be removed - */ - - public String getDecoderSingleByteMappings() { - return Decoder.byteToCharTable; - - } - - public short[] getEncoderIndex1() { - return Encoder.index1; - - } - public String getEncoderIndex2() { - return Encoder.index2; - - } - - private static class Decoder extends SingleByteDecoder { - public Decoder(Charset cs) { - super(cs, byteToCharTable); - } - - private final static String byteToCharTable = - - "\u20AC\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD" + // 0x80 - 0x87 - "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD" + // 0x88 - 0x8F - "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD" + // 0x90 - 0x97 - "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD" + // 0x98 - 0x9F - "\u0E48\u0E01\u0E02\u0E03\u0E04\u0E05\u0E06\u0E07" + // 0xA0 - 0xA7 - "\u0E08\u0E09\u0E0A\u0E0B\u0E0C\u0E0D\u0E0E\u0E0F" + // 0xA8 - 0xAF - "\u0E10\u0E11\u0E12\u0E13\u0E14\u0E15\u0E16\u0E17" + // 0xB0 - 0xB7 - "\u0E18\u0E19\u0E1A\u0E1B\u0E1C\u0E1D\u0E1E\u0E1F" + // 0xB8 - 0xBF - "\u0E20\u0E21\u0E22\u0E23\u0E24\u0E25\u0E26\u0E27" + // 0xC0 - 0xC7 - "\u0E28\u0E29\u0E2A\u0E2B\u0E2C\u0E2D\u0E2E\u0E2F" + // 0xC8 - 0xCF - "\u0E30\u0E31\u0E32\u0E33\u0E34\u0E35\u0E36\u0E37" + // 0xD0 - 0xD7 - "\u0E38\u0E39\u0E3A\u0E49\u0E4A\u0E4B\u0E4C\u0E3F" + // 0xD8 - 0xDF - "\u0E40\u0E41\u0E42\u0E43\u0E44\u0E45\u0E46\u0E47" + // 0xE0 - 0xE7 - "\u0E48\u0E49\u0E4A\u0E4B\u0E4C\u0E4D\u0E4E\u0E4F" + // 0xE8 - 0xEF - "\u0E50\u0E51\u0E52\u0E53\u0E54\u0E55\u0E56\u0E57" + // 0xF0 - 0xF7 - "\u0E58\u0E59\u0E5A\u0E5B\u00A2\u00AC\u00A6\u00A0" + // 0xF8 - 0xFF - "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007" + // 0x00 - 0x07 - "\b\t\n\u000B\f\r\u000E\u000F" + // 0x08 - 0x0F - "\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017" + // 0x10 - 0x17 - "\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F" + // 0x18 - 0x1F - "\u0020\u0021\"\u0023\u0024\u0025\u0026\'" + // 0x20 - 0x27 - "\u0028\u0029\u002A\u002B\u002C\u002D\u002E\u002F" + // 0x28 - 0x2F - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + // 0x30 - 0x37 - "\u0038\u0039\u003A\u003B\u003C\u003D\u003E\u003F" + // 0x38 - 0x3F - "\u0040\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + // 0x40 - 0x47 - "\u0048\u0049\u004A\u004B\u004C\u004D\u004E\u004F" + // 0x48 - 0x4F - "\u0050\u0051\u0052\u0053\u0054\u0055\u0056\u0057" + // 0x50 - 0x57 - "\u0058\u0059\u005A\u005B\\\u005D\u005E\u005F" + // 0x58 - 0x5F - "\u0060\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + // 0x60 - 0x67 - "\u0068\u0069\u006A\u006B\u006C\u006D\u006E\u006F" + // 0x68 - 0x6F - "\u0070\u0071\u0072\u0073\u0074\u0075\u0076\u0077" + // 0x70 - 0x77 - "\u0078\u0079\u007A\u007B\u007C\u007D\u007E\u007F"; // 0x78 - 0x7F - - } - - private static class Encoder extends SingleByteEncoder { - public Encoder(Charset cs) { - super(cs, index1, index2, 0xFF00, 0x00FF, 8); - } - - private final static String index2 = - - - "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007" + - "\b\t\n\u000B\f\r\u000E\u000F" + - "\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017" + - "\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F" + - "\u0020\u0021\"\u0023\u0024\u0025\u0026\'" + - "\u0028\u0029\u002A\u002B\u002C\u002D\u002E\u002F" + - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + - "\u0038\u0039\u003A\u003B\u003C\u003D\u003E\u003F" + - "\u0040\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + - "\u0048\u0049\u004A\u004B\u004C\u004D\u004E\u004F" + - "\u0050\u0051\u0052\u0053\u0054\u0055\u0056\u0057" + - "\u0058\u0059\u005A\u005B\\\u005D\u005E\u005F" + - "\u0060\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + - "\u0068\u0069\u006A\u006B\u006C\u006D\u006E\u006F" + - "\u0070\u0071\u0072\u0073\u0074\u0075\u0076\u0077" + - "\u0078\u0079\u007A\u007B\u007C\u007D\u007E\u007F" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00FF\u0000\u00FC\u0000\u0000\u0000\u00FE\u0000" + - "\u0000\u0000\u0000\u0000\u00FD\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u00A1\u00A2\u00A3" + - "\u00A4\u00A5\u00A6\u00A7\u00A8\u00A9\u00AA\u00AB" + - "\u00AC\u00AD\u00AE\u00AF\u00B0\u00B1\u00B2\u00B3" + - "\u00B4\u00B5\u00B6\u00B7\u00B8\u00B9\u00BA\u00BB" + - "\u00BC\u00BD\u00BE\u00BF\u00C0\u00C1\u00C2\u00C3" + - "\u00C4\u00C5\u00C6\u00C7\u00C8\u00C9\u00CA\u00CB" + - "\u00CC\u00CD\u00CE\u00CF\u00D0\u00D1\u00D2\u00D3" + - "\u00D4\u00D5\u00D6\u00D7\u00D8\u00D9\u00DA\u0000" + - "\u0000\u0000\u0000\u00DF\u00E0\u00E1\u00E2\u00E3" + - "\u00E4\u00E5\u00E6\u00E7\u00E8\u00E9\u00EA\u00EB" + - "\u00EC\u00ED\u00EE\u00EF\u00F0\u00F1\u00F2\u00F3" + - "\u00F4\u00F5\u00F6\u00F7\u00F8\u00F9\u00FA\u00FB" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0080\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"; - - private final static short index1[] = { - 0, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 428, 173, - 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, - 520, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, - 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, - 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, - 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, - 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, - 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, - 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, - 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, - 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, - 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, - 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, - 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, - 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, - 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, - - }; - } -} diff --git a/jdk/src/share/classes/sun/nio/cs/ISO_8859_13.java b/jdk/src/share/classes/sun/nio/cs/ISO_8859_13.java deleted file mode 100644 index e19c0610631..00000000000 --- a/jdk/src/share/classes/sun/nio/cs/ISO_8859_13.java +++ /dev/null @@ -1,266 +0,0 @@ -/* - * Copyright 2002-2004 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. - */ - -package sun.nio.cs; - -import java.nio.charset.Charset; -import java.nio.charset.CharsetDecoder; -import java.nio.charset.CharsetEncoder; -import sun.nio.cs.StandardCharsets; -import sun.nio.cs.SingleByteDecoder; -import sun.nio.cs.SingleByteEncoder; -import sun.nio.cs.HistoricallyNamedCharset; - -public class ISO_8859_13 - extends Charset - implements HistoricallyNamedCharset -{ - - public ISO_8859_13() { - super("ISO-8859-13", StandardCharsets.aliases_ISO_8859_13); - } - - public String historicalName() { - return "ISO8859_13"; - } - - public boolean contains(Charset cs) { - return ((cs.name().equals("US-ASCII")) - || (cs instanceof ISO_8859_13)); - } - - public CharsetDecoder newDecoder() { - return new Decoder(this); - } - - public CharsetEncoder newEncoder() { - return new Encoder(this); - } - - - /** - * These accessors are temporarily supplied while sun.io - * converters co-exist with the sun.nio.cs.{ext} charset coders - * These facilitate sharing of conversion tables between the - * two co-existing implementations. When sun.io converters - * are made extinct these will be unncessary and should be removed - */ - - public String getDecoderSingleByteMappings() { - return Decoder.byteToCharTable; - - } - - public short[] getEncoderIndex1() { - return Encoder.index1; - - } - public String getEncoderIndex2() { - return Encoder.index2; - - } - - - private static class Decoder extends SingleByteDecoder { - public Decoder(Charset cs) { - super(cs, byteToCharTable); - } - - private final static String byteToCharTable = - - "\u0080\u0081\u0082\u0083\u0084\u0085\u0086\u0087" + // 0x80 - 0x87 - "\u0088\u0089\u008A\u008B\u008C\u008D\u008E\u008F" + // 0x88 - 0x8F - "\u0090\u0091\u0092\u0093\u0094\u0095\u0096\u0097" + // 0x90 - 0x97 - "\u0098\u0099\u009A\u009B\u009C\u009D\u009E\u009F" + // 0x98 - 0x9F - "\u00A0\u201D\u00A2\u00A3\u00A4\u201E\u00A6\u00A7" + // 0xA0 - 0xA7 - "\u00D8\u00A9\u0156\u00AB\u00AC\u00AD\u00AE\u00C6" + // 0xA8 - 0xAF - "\u00B0\u00B1\u00B2\u00B3\u201C\u00B5\u00B6\u00B7" + // 0xB0 - 0xB7 - "\u00F8\u00B9\u0157\u00BB\u00BC\u00BD\u00BE\u00E6" + // 0xB8 - 0xBF - "\u0104\u012E\u0100\u0106\u00C4\u00C5\u0118\u0112" + // 0xC0 - 0xC7 - "\u010C\u00C9\u0179\u0116\u0122\u0136\u012A\u013B" + // 0xC8 - 0xCF - "\u0160\u0143\u0145\u00D3\u014C\u00D5\u00D6\u00D7" + // 0xD0 - 0xD7 - "\u0172\u0141\u015A\u016A\u00DC\u017B\u017D\u00DF" + // 0xD8 - 0xDF - "\u0105\u012F\u0101\u0107\u00E4\u00E5\u0119\u0113" + // 0xE0 - 0xE7 - "\u010D\u00E9\u017A\u0117\u0123\u0137\u012B\u013C" + // 0xE8 - 0xEF - "\u0161\u0144\u0146\u00F3\u014D\u00F5\u00F6\u00F7" + // 0xF0 - 0xF7 - "\u0173\u0142\u015B\u016B\u00FC\u017C\u017E\u2019" + // 0xF8 - 0xFF - "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007" + // 0x00 - 0x07 - "\b\t\n\u000B\f\r\u000E\u000F" + // 0x08 - 0x0F - "\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017" + // 0x10 - 0x17 - "\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F" + // 0x18 - 0x1F - "\u0020\u0021\"\u0023\u0024\u0025\u0026\'" + // 0x20 - 0x27 - "\u0028\u0029\u002A\u002B\u002C\u002D\u002E\u002F" + // 0x28 - 0x2F - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + // 0x30 - 0x37 - "\u0038\u0039\u003A\u003B\u003C\u003D\u003E\u003F" + // 0x38 - 0x3F - "\u0040\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + // 0x40 - 0x47 - "\u0048\u0049\u004A\u004B\u004C\u004D\u004E\u004F" + // 0x48 - 0x4F - "\u0050\u0051\u0052\u0053\u0054\u0055\u0056\u0057" + // 0x50 - 0x57 - "\u0058\u0059\u005A\u005B\\\u005D\u005E\u005F" + // 0x58 - 0x5F - "\u0060\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + // 0x60 - 0x67 - "\u0068\u0069\u006A\u006B\u006C\u006D\u006E\u006F" + // 0x68 - 0x6F - "\u0070\u0071\u0072\u0073\u0074\u0075\u0076\u0077" + // 0x70 - 0x77 - "\u0078\u0079\u007A\u007B\u007C\u007D\u007E\u007F"; // 0x78 - 0x7F - - - } - - private static class Encoder extends SingleByteEncoder { - public Encoder(Charset cs) { - super(cs, index1, index2, 0xFF00, 0x00FF, 8); - } - - private final static String index2 = - - "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007" + - "\b\t\n\u000B\f\r\u000E\u000F" + - "\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017" + - "\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F" + - "\u0020\u0021\"\u0023\u0024\u0025\u0026\'" + - "\u0028\u0029\u002A\u002B\u002C\u002D\u002E\u002F" + - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + - "\u0038\u0039\u003A\u003B\u003C\u003D\u003E\u003F" + - "\u0040\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + - "\u0048\u0049\u004A\u004B\u004C\u004D\u004E\u004F" + - "\u0050\u0051\u0052\u0053\u0054\u0055\u0056\u0057" + - "\u0058\u0059\u005A\u005B\\\u005D\u005E\u005F" + - "\u0060\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + - "\u0068\u0069\u006A\u006B\u006C\u006D\u006E\u006F" + - "\u0070\u0071\u0072\u0073\u0074\u0075\u0076\u0077" + - "\u0078\u0079\u007A\u007B\u007C\u007D\u007E\u007F" + - "\u0080\u0081\u0082\u0083\u0084\u0085\u0086\u0087" + - "\u0088\u0089\u008A\u008B\u008C\u008D\u008E\u008F" + - "\u0090\u0091\u0092\u0093\u0094\u0095\u0096\u0097" + - "\u0098\u0099\u009A\u009B\u009C\u009D\u009E\u009F" + - "\u00A0\u0000\u00A2\u00A3\u00A4\u0000\u00A6\u00A7" + - "\u0000\u00A9\u0000\u00AB\u00AC\u00AD\u00AE\u0000" + - "\u00B0\u00B1\u00B2\u00B3\u0000\u00B5\u00B6\u00B7" + - "\u0000\u00B9\u0000\u00BB\u00BC\u00BD\u00BE\u0000" + - "\u0000\u0000\u0000\u0000\u00C4\u00C5\u00AF\u0000" + - "\u0000\u00C9\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u00D3\u0000\u00D5\u00D6\u00D7" + - "\u00A8\u0000\u0000\u0000\u00DC\u0000\u0000\u00DF" + - "\u0000\u0000\u0000\u0000\u00E4\u00E5\u00BF\u0000" + - "\u0000\u00E9\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u00F3\u0000\u00F5\u00F6\u00F7" + - "\u00B8\u0000\u0000\u0000\u00FC\u0000\u0000\u0000" + - "\u00C2\u00E2\u0000\u0000\u00C0\u00E0\u00C3\u00E3" + - "\u0000\u0000\u0000\u0000\u00C8\u00E8\u0000\u0000" + - "\u0000\u0000\u00C7\u00E7\u0000\u0000\u00CB\u00EB" + - "\u00C6\u00E6\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u00CC\u00EC\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u00CE\u00EE\u0000\u0000\u00C1\u00E1" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u00CD\u00ED" + - "\u0000\u0000\u0000\u00CF\u00EF\u0000\u0000\u0000" + - "\u0000\u00D9\u00F9\u00D1\u00F1\u00D2\u00F2\u0000" + - "\u0000\u0000\u0000\u0000\u00D4\u00F4\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u00AA\u00BA" + - "\u0000\u0000\u00DA\u00FA\u0000\u0000\u0000\u0000" + - "\u00D0\u00F0\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u00DB\u00FB\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u00D8\u00F8\u0000\u0000\u0000\u0000" + - "\u0000\u00CA\u00EA\u00DD\u00FD\u00DE\u00FE\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u00FF" + - "\u0000\u0000\u00B4\u00A1\u00A5\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000"; - - private final static short index1[] = { - 0, 256, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 614, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - - }; - } -} diff --git a/jdk/src/share/classes/sun/nio/cs/ISO_8859_15.java b/jdk/src/share/classes/sun/nio/cs/ISO_8859_15.java deleted file mode 100644 index 0841c23fc44..00000000000 --- a/jdk/src/share/classes/sun/nio/cs/ISO_8859_15.java +++ /dev/null @@ -1,249 +0,0 @@ - -/* - * Copyright 2000-2004 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. - */ - -package sun.nio.cs; - -import java.nio.ByteBuffer; -import java.nio.CharBuffer; -import java.nio.charset.Charset; -import java.nio.charset.CharsetDecoder; -import java.nio.charset.CharsetEncoder; -import java.nio.charset.CharacterCodingException; -import java.nio.charset.MalformedInputException; -import java.nio.charset.UnmappableCharacterException; - - -public class ISO_8859_15 extends Charset implements HistoricallyNamedCharset -{ - - public ISO_8859_15() { - super("ISO-8859-15", StandardCharsets.aliases_ISO_8859_15); - } - - public String historicalName() { - return "ISO8859_15"; - } - - public boolean contains(Charset cs) { - return ((cs instanceof US_ASCII) - || (cs instanceof ISO_8859_1) - || (cs instanceof ISO_8859_15)); - } - - public CharsetDecoder newDecoder() { - return new Decoder(this); - } - - public CharsetEncoder newEncoder() { - return new Encoder(this); - } - - - /** - * These accessors are temporarily supplied while sun.io - * converters co-exist with the sun.nio.cs.{ext} charset coders - * These facilitate sharing of conversion tables between the - * two co-existing implementations. When sun.io converters - * are made extinct these will be unncessary and should be removed - */ - - public String getDecoderSingleByteMappings() { - return Decoder.byteToCharTable; - - } - - public short[] getEncoderIndex1() { - return Encoder.index1; - - } - public String getEncoderIndex2() { - return Encoder.index2; - - } - - private static class Decoder extends SingleByteDecoder { - - public Decoder(Charset cs) { - super(cs, byteToCharTable); - } - - private final static String byteToCharTable = - "\u0080\u0081\u0082\u0083\u0084\u0085\u0086\u0087" + // 0x80 - 0x87 - "\u0088\u0089\u008A\u008B\u008C\u008D\u008E\u008F" + // 0x88 - 0x8F - "\u0090\u0091\u0092\u0093\u0094\u0095\u0096\u0097" + // 0x90 - 0x97 - "\u0098\u0099\u009A\u009B\u009C\u009D\u009E\u009F" + // 0x98 - 0x9F - "\u00A0\u00A1\u00A2\u00A3\u20AC\u00A5\u0160\u00A7" + // 0xA0 - 0xA7 - "\u0161\u00A9\u00AA\u00AB\u00AC\u00AD\u00AE\u00AF" + // 0xA8 - 0xAF - "\u00B0\u00B1\u00B2\u00B3\u017D\u00B5\u00B6\u00B7" + // 0xB0 - 0xB7 - "\u017E\u00B9\u00BA\u00BB\u0152\u0153\u0178\u00BF" + // 0xB8 - 0xBF - "\u00C0\u00C1\u00C2\u00C3\u00C4\u00C5\u00C6\u00C7" + // 0xC0 - 0xC7 - "\u00C8\u00C9\u00CA\u00CB\u00CC\u00CD\u00CE\u00CF" + // 0xC8 - 0xCF - "\u00D0\u00D1\u00D2\u00D3\u00D4\u00D5\u00D6\u00D7" + // 0xD0 - 0xD7 - "\u00D8\u00D9\u00DA\u00DB\u00DC\u00DD\u00DE\u00DF" + // 0xD8 - 0xDF - "\u00E0\u00E1\u00E2\u00E3\u00E4\u00E5\u00E6\u00E7" + // 0xE0 - 0xE7 - "\u00E8\u00E9\u00EA\u00EB\u00EC\u00ED\u00EE\u00EF" + // 0xE8 - 0xEF - "\u00F0\u00F1\u00F2\u00F3\u00F4\u00F5\u00F6\u00F7" + // 0xF0 - 0xF7 - "\u00F8\u00F9\u00FA\u00FB\u00FC\u00FD\u00FE\u00FF" + // 0xF8 - 0xFF - "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007" + // 0x00 - 0x07 - "\b\t\n\u000B\f\r\u000E\u000F" + // 0x08 - 0x0F - "\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017" + // 0x10 - 0x17 - "\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F" + // 0x18 - 0x1F - "\u0020\u0021\"\u0023\u0024\u0025\u0026\'" + // 0x20 - 0x27 - "\u0028\u0029\u002A\u002B\u002C\u002D\u002E\u002F" + // 0x28 - 0x2F - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + // 0x30 - 0x37 - "\u0038\u0039\u003A\u003B\u003C\u003D\u003E\u003F" + // 0x38 - 0x3F - "\u0040\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + // 0x40 - 0x47 - "\u0048\u0049\u004A\u004B\u004C\u004D\u004E\u004F" + // 0x48 - 0x4F - "\u0050\u0051\u0052\u0053\u0054\u0055\u0056\u0057" + // 0x50 - 0x57 - "\u0058\u0059\u005A\u005B\\\u005D\u005E\u005F" + // 0x58 - 0x5F - "\u0060\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + // 0x60 - 0x67 - "\u0068\u0069\u006A\u006B\u006C\u006D\u006E\u006F" + // 0x68 - 0x6F - "\u0070\u0071\u0072\u0073\u0074\u0075\u0076\u0077" + // 0x70 - 0x77 - "\u0078\u0079\u007A\u007B\u007C\u007D\u007E\u007F"; // 0x78 - 0x7F - - } - - private static class Encoder extends SingleByteEncoder { - - public Encoder(Charset cs) { - super(cs, index1, index2, 0xFF00, 0x00FF, 8); - } - - private final static String index2 = - "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007" + - "\b\t\n\u000B\f\r\u000E\u000F" + - "\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017" + - "\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F" + - "\u0020\u0021\"\u0023\u0024\u0025\u0026\'" + - "\u0028\u0029\u002A\u002B\u002C\u002D\u002E\u002F" + - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + - "\u0038\u0039\u003A\u003B\u003C\u003D\u003E\u003F" + - "\u0040\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + - "\u0048\u0049\u004A\u004B\u004C\u004D\u004E\u004F" + - "\u0050\u0051\u0052\u0053\u0054\u0055\u0056\u0057" + - "\u0058\u0059\u005A\u005B\\\u005D\u005E\u005F" + - "\u0060\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + - "\u0068\u0069\u006A\u006B\u006C\u006D\u006E\u006F" + - "\u0070\u0071\u0072\u0073\u0074\u0075\u0076\u0077" + - "\u0078\u0079\u007A\u007B\u007C\u007D\u007E\u007F" + - "\u0080\u0081\u0082\u0083\u0084\u0085\u0086\u0087" + - "\u0088\u0089\u008A\u008B\u008C\u008D\u008E\u008F" + - "\u0090\u0091\u0092\u0093\u0094\u0095\u0096\u0097" + - "\u0098\u0099\u009A\u009B\u009C\u009D\u009E\u009F" + - "\u00A0\u00A1\u00A2\u00A3\u0000\u00A5\u0000\u00A7" + - "\u0000\u00A9\u00AA\u00AB\u00AC\u00AD\u00AE\u00AF" + - "\u00B0\u00B1\u00B2\u00B3\u0000\u00B5\u00B6\u00B7" + - "\u0000\u00B9\u00BA\u00BB\u0000\u0000\u0000\u00BF" + - "\u00C0\u00C1\u00C2\u00C3\u00C4\u00C5\u00C6\u00C7" + - "\u00C8\u00C9\u00CA\u00CB\u00CC\u00CD\u00CE\u00CF" + - "\u00D0\u00D1\u00D2\u00D3\u00D4\u00D5\u00D6\u00D7" + - "\u00D8\u00D9\u00DA\u00DB\u00DC\u00DD\u00DE\u00DF" + - "\u00E0\u00E1\u00E2\u00E3\u00E4\u00E5\u00E6\u00E7" + - "\u00E8\u00E9\u00EA\u00EB\u00EC\u00ED\u00EE\u00EF" + - "\u00F0\u00F1\u00F2\u00F3\u00F4\u00F5\u00F6\u00F7" + - "\u00F8\u00F9\u00FA\u00FB\u00FC\u00FD\u00FE\u00FF" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u00BC\u00BD\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00A6\u00A8\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00BE\u0000\u0000\u0000\u0000\u00B4\u00B8\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u00A4" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000"; - - private final static short index1[] = { - 0, 256, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 467, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - }; - - } - -} diff --git a/jdk/src/share/classes/sun/nio/cs/ISO_8859_2.java b/jdk/src/share/classes/sun/nio/cs/ISO_8859_2.java deleted file mode 100644 index 6f2d74f503e..00000000000 --- a/jdk/src/share/classes/sun/nio/cs/ISO_8859_2.java +++ /dev/null @@ -1,246 +0,0 @@ -/* - * Copyright 2002-2004 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. - */ - -package sun.nio.cs; - -import java.nio.ByteBuffer; -import java.nio.CharBuffer; -import java.nio.charset.Charset; -import java.nio.charset.CharsetDecoder; -import java.nio.charset.CharsetEncoder; -import java.nio.charset.CharacterCodingException; -import java.nio.charset.MalformedInputException; -import java.nio.charset.UnmappableCharacterException; -import sun.nio.cs.StandardCharsets; -import sun.nio.cs.SingleByteDecoder; -import sun.nio.cs.SingleByteEncoder; -import sun.nio.cs.HistoricallyNamedCharset; - - -public class ISO_8859_2 - extends Charset - implements HistoricallyNamedCharset -{ - - public ISO_8859_2() { - super("ISO-8859-2", StandardCharsets.aliases_ISO_8859_2); - } - - public String historicalName() { - return "ISO8859_2"; - } - - public boolean contains(Charset cs) { - return ((cs.name().equals("US-ASCII")) - || (cs instanceof ISO_8859_2)); - } - - public CharsetDecoder newDecoder() { - return new Decoder(this); - } - - public CharsetEncoder newEncoder() { - return new Encoder(this); - } - - - /** - * These accessors are temporarily supplied while sun.io - * converters co-exist with the sun.nio.cs.{ext} charset coders - * These facilitate sharing of conversion tables between the - * two co-existing implementations. When sun.io converters - * are made extinct these will be unncessary and should be removed - */ - - public String getDecoderSingleByteMappings() { - return Decoder.byteToCharTable; - - } - - public short[] getEncoderIndex1() { - return Encoder.index1; - - } - public String getEncoderIndex2() { - return Encoder.index2; - - } - - private static class Decoder extends SingleByteDecoder { - public Decoder(Charset cs) { - super(cs, byteToCharTable); - } - - private final static String byteToCharTable = - - "\u0080\u0081\u0082\u0083\u0084\u0085\u0086\u0087" + // 0x80 - 0x87 - "\u0088\u0089\u008A\u008B\u008C\u008D\u008E\u008F" + // 0x88 - 0x8F - "\u0090\u0091\u0092\u0093\u0094\u0095\u0096\u0097" + // 0x90 - 0x97 - "\u0098\u0099\u009A\u009B\u009C\u009D\u009E\u009F" + // 0x98 - 0x9F - "\u00A0\u0104\u02D8\u0141\u00A4\u013D\u015A\u00A7" + // 0xA0 - 0xA7 - "\u00A8\u0160\u015E\u0164\u0179\u00AD\u017D\u017B" + // 0xA8 - 0xAF - "\u00B0\u0105\u02DB\u0142\u00B4\u013E\u015B\u02C7" + // 0xB0 - 0xB7 - "\u00B8\u0161\u015F\u0165\u017A\u02DD\u017E\u017C" + // 0xB8 - 0xBF - "\u0154\u00C1\u00C2\u0102\u00C4\u0139\u0106\u00C7" + // 0xC0 - 0xC7 - "\u010C\u00C9\u0118\u00CB\u011A\u00CD\u00CE\u010E" + // 0xC8 - 0xCF - "\u0110\u0143\u0147\u00D3\u00D4\u0150\u00D6\u00D7" + // 0xD0 - 0xD7 - "\u0158\u016E\u00DA\u0170\u00DC\u00DD\u0162\u00DF" + // 0xD8 - 0xDF - "\u0155\u00E1\u00E2\u0103\u00E4\u013A\u0107\u00E7" + // 0xE0 - 0xE7 - "\u010D\u00E9\u0119\u00EB\u011B\u00ED\u00EE\u010F" + // 0xE8 - 0xEF - "\u0111\u0144\u0148\u00F3\u00F4\u0151\u00F6\u00F7" + // 0xF0 - 0xF7 - "\u0159\u016F\u00FA\u0171\u00FC\u00FD\u0163\u02D9" + // 0xF8 - 0xFF - "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007" + // 0x00 - 0x07 - "\b\t\n\u000B\f\r\u000E\u000F" + // 0x08 - 0x0F - "\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017" + // 0x10 - 0x17 - "\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F" + // 0x18 - 0x1F - "\u0020\u0021\"\u0023\u0024\u0025\u0026\'" + // 0x20 - 0x27 - "\u0028\u0029\u002A\u002B\u002C\u002D\u002E\u002F" + // 0x28 - 0x2F - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + // 0x30 - 0x37 - "\u0038\u0039\u003A\u003B\u003C\u003D\u003E\u003F" + // 0x38 - 0x3F - "\u0040\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + // 0x40 - 0x47 - "\u0048\u0049\u004A\u004B\u004C\u004D\u004E\u004F" + // 0x48 - 0x4F - "\u0050\u0051\u0052\u0053\u0054\u0055\u0056\u0057" + // 0x50 - 0x57 - "\u0058\u0059\u005A\u005B\\\u005D\u005E\u005F" + // 0x58 - 0x5F - "\u0060\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + // 0x60 - 0x67 - "\u0068\u0069\u006A\u006B\u006C\u006D\u006E\u006F" + // 0x68 - 0x6F - "\u0070\u0071\u0072\u0073\u0074\u0075\u0076\u0077" + // 0x70 - 0x77 - "\u0078\u0079\u007A\u007B\u007C\u007D\u007E\u007F"; // 0x78 - 0x7F - } - - private static class Encoder extends SingleByteEncoder { - public Encoder(Charset cs) { - super(cs, index1, index2, 0xFF00, 0x00FF, 8); - } - - private final static String index2 = - - "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007" + - "\b\t\n\u000B\f\r\u000E\u000F" + - "\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017" + - "\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F" + - "\u0020\u0021\"\u0023\u0024\u0025\u0026\'" + - "\u0028\u0029\u002A\u002B\u002C\u002D\u002E\u002F" + - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + - "\u0038\u0039\u003A\u003B\u003C\u003D\u003E\u003F" + - "\u0040\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + - "\u0048\u0049\u004A\u004B\u004C\u004D\u004E\u004F" + - "\u0050\u0051\u0052\u0053\u0054\u0055\u0056\u0057" + - "\u0058\u0059\u005A\u005B\\\u005D\u005E\u005F" + - "\u0060\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + - "\u0068\u0069\u006A\u006B\u006C\u006D\u006E\u006F" + - "\u0070\u0071\u0072\u0073\u0074\u0075\u0076\u0077" + - "\u0078\u0079\u007A\u007B\u007C\u007D\u007E\u007F" + - "\u0080\u0081\u0082\u0083\u0084\u0085\u0086\u0087" + - "\u0088\u0089\u008A\u008B\u008C\u008D\u008E\u008F" + - "\u0090\u0091\u0092\u0093\u0094\u0095\u0096\u0097" + - "\u0098\u0099\u009A\u009B\u009C\u009D\u009E\u009F" + - "\u00A0\u0000\u0000\u0000\u00A4\u0000\u0000\u00A7" + - "\u00A8\u0000\u0000\u0000\u0000\u00AD\u0000\u0000" + - "\u00B0\u0000\u0000\u0000\u00B4\u0000\u0000\u0000" + - "\u00B8\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u00C1\u00C2\u0000\u00C4\u0000\u0000\u00C7" + - "\u0000\u00C9\u0000\u00CB\u0000\u00CD\u00CE\u0000" + - "\u0000\u0000\u0000\u00D3\u00D4\u0000\u00D6\u00D7" + - "\u0000\u0000\u00DA\u0000\u00DC\u00DD\u0000\u00DF" + - "\u0000\u00E1\u00E2\u0000\u00E4\u0000\u0000\u00E7" + - "\u0000\u00E9\u0000\u00EB\u0000\u00ED\u00EE\u0000" + - "\u0000\u0000\u0000\u00F3\u00F4\u0000\u00F6\u00F7" + - "\u0000\u0000\u00FA\u0000\u00FC\u00FD\u0000\u0000" + - "\u00C3\u00E3\u00A1\u00B1\u00C6\u00E6\u0000\u0000" + - "\u0000\u0000\u00C8\u00E8\u00CF\u00EF\u00D0\u00F0" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u00CA\u00EA" + - "\u00CC\u00EC\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u00C5" + - "\u00E5\u0000\u0000\u00A5\u00B5\u0000\u0000\u00A3" + - "\u00B3\u00D1\u00F1\u0000\u0000\u00D2\u00F2\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u00D5\u00F5" + - "\u0000\u0000\u00C0\u00E0\u0000\u0000\u00D8\u00F8" + - "\u00A6\u00B6\u0000\u0000\u00AA\u00BA\u00A9\u00B9" + - "\u00DE\u00FE\u00AB\u00BB\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u00D9\u00F9\u00DB\u00FB" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u00AC" + - "\u00BC\u00AF\u00BF\u00AE\u00BE\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u00B7\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u00A2\u00FF" + - "\u0000\u00B2\u0000\u00BD\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000"; - - private final static short index1[] = { - 0, 254, 438, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, - 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, - 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, - 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, - 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, - 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, - 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, - 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, - 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, - 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, - 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, - 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, - 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, - 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, - 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, - 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, - }; - } -} diff --git a/jdk/src/share/classes/sun/nio/cs/ISO_8859_4.java b/jdk/src/share/classes/sun/nio/cs/ISO_8859_4.java deleted file mode 100644 index a3f87881550..00000000000 --- a/jdk/src/share/classes/sun/nio/cs/ISO_8859_4.java +++ /dev/null @@ -1,244 +0,0 @@ -/* - * Copyright 2002-2004 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. - */ - -package sun.nio.cs; - -import java.nio.charset.Charset; -import java.nio.charset.CharsetDecoder; -import java.nio.charset.CharsetEncoder; -import sun.nio.cs.StandardCharsets; -import sun.nio.cs.SingleByteDecoder; -import sun.nio.cs.SingleByteEncoder; -import sun.nio.cs.HistoricallyNamedCharset; - -public class ISO_8859_4 - extends Charset - implements HistoricallyNamedCharset -{ - - public ISO_8859_4() { - super("ISO-8859-4", StandardCharsets.aliases_ISO_8859_4); - } - - public String historicalName() { - return "ISO8859_4"; - } - - public boolean contains(Charset cs) { - return ((cs.name().equals("US-ASCII")) - || (cs instanceof ISO_8859_4)); - } - - public CharsetDecoder newDecoder() { - return new Decoder(this); - } - - public CharsetEncoder newEncoder() { - return new Encoder(this); - } - - - /** - * These accessors are temporarily supplied while sun.io - * converters co-exist with the sun.nio.cs.{ext} charset coders - * These facilitate sharing of conversion tables between the - * two co-existing implementations. When sun.io converters - * are made extinct these will be unncessary and should be removed - */ - - public String getDecoderSingleByteMappings() { - return Decoder.byteToCharTable; - - } - - public short[] getEncoderIndex1() { - return Encoder.index1; - - } - public String getEncoderIndex2() { - return Encoder.index2; - - } - - - private static class Decoder extends SingleByteDecoder { - public Decoder(Charset cs) { - super(cs, byteToCharTable); - } - - private final static String byteToCharTable = - - "\u0080\u0081\u0082\u0083\u0084\u0085\u0086\u0087" + // 0x80 - 0x87 - "\u0088\u0089\u008A\u008B\u008C\u008D\u008E\u008F" + // 0x88 - 0x8F - "\u0090\u0091\u0092\u0093\u0094\u0095\u0096\u0097" + // 0x90 - 0x97 - "\u0098\u0099\u009A\u009B\u009C\u009D\u009E\u009F" + // 0x98 - 0x9F - "\u00A0\u0104\u0138\u0156\u00A4\u0128\u013B\u00A7" + // 0xA0 - 0xA7 - "\u00A8\u0160\u0112\u0122\u0166\u00AD\u017D\u00AF" + // 0xA8 - 0xAF - "\u00B0\u0105\u02DB\u0157\u00B4\u0129\u013C\u02C7" + // 0xB0 - 0xB7 - "\u00B8\u0161\u0113\u0123\u0167\u014A\u017E\u014B" + // 0xB8 - 0xBF - "\u0100\u00C1\u00C2\u00C3\u00C4\u00C5\u00C6\u012E" + // 0xC0 - 0xC7 - "\u010C\u00C9\u0118\u00CB\u0116\u00CD\u00CE\u012A" + // 0xC8 - 0xCF - "\u0110\u0145\u014C\u0136\u00D4\u00D5\u00D6\u00D7" + // 0xD0 - 0xD7 - "\u00D8\u0172\u00DA\u00DB\u00DC\u0168\u016A\u00DF" + // 0xD8 - 0xDF - "\u0101\u00E1\u00E2\u00E3\u00E4\u00E5\u00E6\u012F" + // 0xE0 - 0xE7 - "\u010D\u00E9\u0119\u00EB\u0117\u00ED\u00EE\u012B" + // 0xE8 - 0xEF - "\u0111\u0146\u014D\u0137\u00F4\u00F5\u00F6\u00F7" + // 0xF0 - 0xF7 - "\u00F8\u0173\u00FA\u00FB\u00FC\u0169\u016B\u02D9" + // 0xF8 - 0xFF - "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007" + // 0x00 - 0x07 - "\b\t\n\u000B\f\r\u000E\u000F" + // 0x08 - 0x0F - "\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017" + // 0x10 - 0x17 - "\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F" + // 0x18 - 0x1F - "\u0020\u0021\"\u0023\u0024\u0025\u0026\'" + // 0x20 - 0x27 - "\u0028\u0029\u002A\u002B\u002C\u002D\u002E\u002F" + // 0x28 - 0x2F - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + // 0x30 - 0x37 - "\u0038\u0039\u003A\u003B\u003C\u003D\u003E\u003F" + // 0x38 - 0x3F - "\u0040\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + // 0x40 - 0x47 - "\u0048\u0049\u004A\u004B\u004C\u004D\u004E\u004F" + // 0x48 - 0x4F - "\u0050\u0051\u0052\u0053\u0054\u0055\u0056\u0057" + // 0x50 - 0x57 - "\u0058\u0059\u005A\u005B\\\u005D\u005E\u005F" + // 0x58 - 0x5F - "\u0060\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + // 0x60 - 0x67 - "\u0068\u0069\u006A\u006B\u006C\u006D\u006E\u006F" + // 0x68 - 0x6F - "\u0070\u0071\u0072\u0073\u0074\u0075\u0076\u0077" + // 0x70 - 0x77 - "\u0078\u0079\u007A\u007B\u007C\u007D\u007E\u007F"; // 0x78 - 0x7F - - - } - - private static class Encoder extends SingleByteEncoder { - public Encoder(Charset cs) { - super(cs, index1, index2, 0xFF00, 0x00FF, 8); - } - - private final static String index2 = - - "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007" + - "\b\t\n\u000B\f\r\u000E\u000F" + - "\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017" + - "\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F" + - "\u0020\u0021\"\u0023\u0024\u0025\u0026\'" + - "\u0028\u0029\u002A\u002B\u002C\u002D\u002E\u002F" + - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + - "\u0038\u0039\u003A\u003B\u003C\u003D\u003E\u003F" + - "\u0040\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + - "\u0048\u0049\u004A\u004B\u004C\u004D\u004E\u004F" + - "\u0050\u0051\u0052\u0053\u0054\u0055\u0056\u0057" + - "\u0058\u0059\u005A\u005B\\\u005D\u005E\u005F" + - "\u0060\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + - "\u0068\u0069\u006A\u006B\u006C\u006D\u006E\u006F" + - "\u0070\u0071\u0072\u0073\u0074\u0075\u0076\u0077" + - "\u0078\u0079\u007A\u007B\u007C\u007D\u007E\u007F" + - "\u0080\u0081\u0082\u0083\u0084\u0085\u0086\u0087" + - "\u0088\u0089\u008A\u008B\u008C\u008D\u008E\u008F" + - "\u0090\u0091\u0092\u0093\u0094\u0095\u0096\u0097" + - "\u0098\u0099\u009A\u009B\u009C\u009D\u009E\u009F" + - "\u00A0\u0000\u0000\u0000\u00A4\u0000\u0000\u00A7" + - "\u00A8\u0000\u0000\u0000\u0000\u00AD\u0000\u00AF" + - "\u00B0\u0000\u0000\u0000\u00B4\u0000\u0000\u0000" + - "\u00B8\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u00C1\u00C2\u00C3\u00C4\u00C5\u00C6\u0000" + - "\u0000\u00C9\u0000\u00CB\u0000\u00CD\u00CE\u0000" + - "\u0000\u0000\u0000\u0000\u00D4\u00D5\u00D6\u00D7" + - "\u00D8\u0000\u00DA\u00DB\u00DC\u0000\u0000\u00DF" + - "\u0000\u00E1\u00E2\u00E3\u00E4\u00E5\u00E6\u0000" + - "\u0000\u00E9\u0000\u00EB\u0000\u00ED\u00EE\u0000" + - "\u0000\u0000\u0000\u0000\u00F4\u00F5\u00F6\u00F7" + - "\u00F8\u0000\u00FA\u00FB\u00FC\u0000\u0000\u0000" + - "\u00C0\u00E0\u0000\u0000\u00A1\u00B1\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u00C8\u00E8\u0000\u0000" + - "\u00D0\u00F0\u00AA\u00BA\u0000\u0000\u00CC\u00EC" + - "\u00CA\u00EA\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u00AB\u00BB\u0000\u0000\u0000\u0000" + - "\u00A5\u00B5\u00CF\u00EF\u0000\u0000\u00C7\u00E7" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u00D3\u00F3" + - "\u00A2\u0000\u0000\u00A6\u00B6\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u00D1\u00F1\u0000" + - "\u0000\u0000\u00BD\u00BF\u00D2\u00F2\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u00A3\u00B3" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00A9\u00B9\u0000\u0000\u0000\u0000\u00AC\u00BC" + - "\u00DD\u00FD\u00DE\u00FE\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u00D9\u00F9\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u00AE\u00BE\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u00B7" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u00FF\u0000\u00B2\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"; - - private final static short index1[] = { - 0, 256, 440, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - - }; - } -} diff --git a/jdk/src/share/classes/sun/nio/cs/ISO_8859_5.java b/jdk/src/share/classes/sun/nio/cs/ISO_8859_5.java deleted file mode 100644 index cb7fb5e3d15..00000000000 --- a/jdk/src/share/classes/sun/nio/cs/ISO_8859_5.java +++ /dev/null @@ -1,271 +0,0 @@ -/* - * Copyright 2002-2004 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. - */ - -package sun.nio.cs; - -import java.nio.charset.Charset; -import java.nio.charset.CharsetDecoder; -import java.nio.charset.CharsetEncoder; -import sun.nio.cs.StandardCharsets; -import sun.nio.cs.SingleByteDecoder; -import sun.nio.cs.SingleByteEncoder; -import sun.nio.cs.HistoricallyNamedCharset; - -public class ISO_8859_5 - extends Charset - implements HistoricallyNamedCharset -{ - - public ISO_8859_5() { - super("ISO-8859-5", StandardCharsets.aliases_ISO_8859_5); - } - - public String historicalName() { - return "ISO8859_5"; - } - - public boolean contains(Charset cs) { - return ((cs.name().equals("US-ASCII")) - || (cs instanceof ISO_8859_5)); - } - - public CharsetDecoder newDecoder() { - return new Decoder(this); - } - - public CharsetEncoder newEncoder() { - return new Encoder(this); - } - - - /** - * These accessors are temporarily supplied while sun.io - * converters co-exist with the sun.nio.cs.{ext} charset coders - * These facilitate sharing of conversion tables between the - * two co-existing implementations. When sun.io converters - * are made extinct these will be unncessary and should be removed - */ - - public String getDecoderSingleByteMappings() { - return Decoder.byteToCharTable; - - } - - public short[] getEncoderIndex1() { - return Encoder.index1; - - } - public String getEncoderIndex2() { - return Encoder.index2; - - } - - private static class Decoder extends SingleByteDecoder { - public Decoder(Charset cs) { - super(cs, byteToCharTable); - } - - private final static String byteToCharTable = - - "\u0080\u0081\u0082\u0083\u0084\u0085\u0086\u0087" + // 0x80 - 0x87 - "\u0088\u0089\u008A\u008B\u008C\u008D\u008E\u008F" + // 0x88 - 0x8F - "\u0090\u0091\u0092\u0093\u0094\u0095\u0096\u0097" + // 0x90 - 0x97 - "\u0098\u0099\u009A\u009B\u009C\u009D\u009E\u009F" + // 0x98 - 0x9F - "\u00A0\u0401\u0402\u0403\u0404\u0405\u0406\u0407" + // 0xA0 - 0xA7 - "\u0408\u0409\u040A\u040B\u040C\u00AD\u040E\u040F" + // 0xA8 - 0xAF - "\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417" + // 0xB0 - 0xB7 - "\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F" + // 0xB8 - 0xBF - "\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427" + // 0xC0 - 0xC7 - "\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F" + // 0xC8 - 0xCF - "\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437" + // 0xD0 - 0xD7 - "\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F" + // 0xD8 - 0xDF - "\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447" + // 0xE0 - 0xE7 - "\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F" + // 0xE8 - 0xEF - "\u2116\u0451\u0452\u0453\u0454\u0455\u0456\u0457" + // 0xF0 - 0xF7 - "\u0458\u0459\u045A\u045B\u045C\u00A7\u045E\u045F" + // 0xF8 - 0xFF - "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007" + // 0x00 - 0x07 - "\b\t\n\u000B\f\r\u000E\u000F" + // 0x08 - 0x0F - "\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017" + // 0x10 - 0x17 - "\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F" + // 0x18 - 0x1F - "\u0020\u0021\"\u0023\u0024\u0025\u0026\'" + // 0x20 - 0x27 - "\u0028\u0029\u002A\u002B\u002C\u002D\u002E\u002F" + // 0x28 - 0x2F - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + // 0x30 - 0x37 - "\u0038\u0039\u003A\u003B\u003C\u003D\u003E\u003F" + // 0x38 - 0x3F - "\u0040\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + // 0x40 - 0x47 - "\u0048\u0049\u004A\u004B\u004C\u004D\u004E\u004F" + // 0x48 - 0x4F - "\u0050\u0051\u0052\u0053\u0054\u0055\u0056\u0057" + // 0x50 - 0x57 - "\u0058\u0059\u005A\u005B\\\u005D\u005E\u005F" + // 0x58 - 0x5F - "\u0060\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + // 0x60 - 0x67 - "\u0068\u0069\u006A\u006B\u006C\u006D\u006E\u006F" + // 0x68 - 0x6F - "\u0070\u0071\u0072\u0073\u0074\u0075\u0076\u0077" + // 0x70 - 0x77 - "\u0078\u0079\u007A\u007B\u007C\u007D\u007E\u007F"; // 0x78 - 0x7F - - - } - - private static class Encoder extends SingleByteEncoder { - public Encoder(Charset cs) { - super(cs, index1, index2, 0xFF00, 0x00FF, 8); - } - - private final static String index2 = - - "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007" + - "\b\t\n\u000B\f\r\u000E\u000F" + - "\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017" + - "\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F" + - "\u0020\u0021\"\u0023\u0024\u0025\u0026\'" + - "\u0028\u0029\u002A\u002B\u002C\u002D\u002E\u002F" + - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + - "\u0038\u0039\u003A\u003B\u003C\u003D\u003E\u003F" + - "\u0040\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + - "\u0048\u0049\u004A\u004B\u004C\u004D\u004E\u004F" + - "\u0050\u0051\u0052\u0053\u0054\u0055\u0056\u0057" + - "\u0058\u0059\u005A\u005B\\\u005D\u005E\u005F" + - "\u0060\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + - "\u0068\u0069\u006A\u006B\u006C\u006D\u006E\u006F" + - "\u0070\u0071\u0072\u0073\u0074\u0075\u0076\u0077" + - "\u0078\u0079\u007A\u007B\u007C\u007D\u007E\u007F" + - "\u0080\u0081\u0082\u0083\u0084\u0085\u0086\u0087" + - "\u0088\u0089\u008A\u008B\u008C\u008D\u008E\u008F" + - "\u0090\u0091\u0092\u0093\u0094\u0095\u0096\u0097" + - "\u0098\u0099\u009A\u009B\u009C\u009D\u009E\u009F" + - "\u00A0\u0000\u0000\u0000\u0000\u0000\u0000\u00FD" + - "\u0000\u0000\u0000\u0000\u0000\u00AD\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u00A1\u00A2" + - "\u00A3\u00A4\u00A5\u00A6\u00A7\u00A8\u00A9\u00AA" + - "\u00AB\u00AC\u0000\u00AE\u00AF\u00B0\u00B1\u00B2" + - "\u00B3\u00B4\u00B5\u00B6\u00B7\u00B8\u00B9\u00BA" + - "\u00BB\u00BC\u00BD\u00BE\u00BF\u00C0\u00C1\u00C2" + - "\u00C3\u00C4\u00C5\u00C6\u00C7\u00C8\u00C9\u00CA" + - "\u00CB\u00CC\u00CD\u00CE\u00CF\u00D0\u00D1\u00D2" + - "\u00D3\u00D4\u00D5\u00D6\u00D7\u00D8\u00D9\u00DA" + - "\u00DB\u00DC\u00DD\u00DE\u00DF\u00E0\u00E1\u00E2" + - "\u00E3\u00E4\u00E5\u00E6\u00E7\u00E8\u00E9\u00EA" + - "\u00EB\u00EC\u00ED\u00EE\u00EF\u0000\u00F1\u00F2" + - "\u00F3\u00F4\u00F5\u00F6\u00F7\u00F8\u00F9\u00FA" + - "\u00FB\u00FC\u0000\u00FE\u00FF\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u00F0\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000"; - - private final static short index1[] = { - 0, 174, 174, 174, 429, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 663, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - - }; - } -} diff --git a/jdk/src/share/classes/sun/nio/cs/ISO_8859_7.java b/jdk/src/share/classes/sun/nio/cs/ISO_8859_7.java deleted file mode 100644 index e0469fe8bc4..00000000000 --- a/jdk/src/share/classes/sun/nio/cs/ISO_8859_7.java +++ /dev/null @@ -1,255 +0,0 @@ -/* - * Copyright 2002-2006 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. - */ - -package sun.nio.cs; - -import java.nio.charset.Charset; -import java.nio.charset.CharsetDecoder; -import java.nio.charset.CharsetEncoder; -import sun.nio.cs.StandardCharsets; -import sun.nio.cs.SingleByteDecoder; -import sun.nio.cs.SingleByteEncoder; -import sun.nio.cs.HistoricallyNamedCharset; - -public class ISO_8859_7 - extends Charset - implements HistoricallyNamedCharset -{ - - public ISO_8859_7() { - super("ISO-8859-7", StandardCharsets.aliases_ISO_8859_7); - } - - public String historicalName() { - return "ISO8859_7"; - } - - public boolean contains(Charset cs) { - return ((cs.name().equals("US-ASCII")) - || (cs instanceof ISO_8859_7)); - } - - public CharsetDecoder newDecoder() { - return new Decoder(this); - } - - public CharsetEncoder newEncoder() { - return new Encoder(this); - } - - - /** - * These accessors are temporarily supplied while sun.io - * converters co-exist with the sun.nio.cs.{ext} charset coders - * These facilitate sharing of conversion tables between the - * two co-existing implementations. When sun.io converters - * are made extinct these will be unncessary and should be removed - */ - - public String getDecoderSingleByteMappings() { - return Decoder.byteToCharTable; - - } - - public short[] getEncoderIndex1() { - return Encoder.index1; - - } - public String getEncoderIndex2() { - return Encoder.index2; - - } - - private static class Decoder extends SingleByteDecoder { - public Decoder(Charset cs) { - super(cs, byteToCharTable); - } - - private final static String byteToCharTable = - - "\u0080\u0081\u0082\u0083\u0084\u0085\u0086\u0087" + // 0x80 - 0x87 - "\u0088\u0089\u008A\u008B\u008C\u008D\u008E\u008F" + // 0x88 - 0x8F - "\u0090\u0091\u0092\u0093\u0094\u0095\u0096\u0097" + // 0x90 - 0x97 - "\u0098\u0099\u009A\u009B\u009C\u009D\u009E\u009F" + // 0x98 - 0x9F - "\u00A0\u2018\u2019\u00A3\u20AC\u20AF\u00A6\u00A7" + // 0xA0 - 0xA7 - "\u00A8\u00A9\u037A\u00AB\u00AC\u00AD\uFFFD\u2015" + // 0xA8 - 0xAF - "\u00B0\u00B1\u00B2\u00B3\u0384\u0385\u0386\u00B7" + // 0xB0 - 0xB7 - "\u0388\u0389\u038A\u00BB\u038C\u00BD\u038E\u038F" + // 0xB8 - 0xBF - "\u0390\u0391\u0392\u0393\u0394\u0395\u0396\u0397" + // 0xC0 - 0xC7 - "\u0398\u0399\u039A\u039B\u039C\u039D\u039E\u039F" + // 0xC8 - 0xCF - "\u03A0\u03A1\uFFFD\u03A3\u03A4\u03A5\u03A6\u03A7" + // 0xD0 - 0xD7 - "\u03A8\u03A9\u03AA\u03AB\u03AC\u03AD\u03AE\u03AF" + // 0xD8 - 0xDF - "\u03B0\u03B1\u03B2\u03B3\u03B4\u03B5\u03B6\u03B7" + // 0xE0 - 0xE7 - "\u03B8\u03B9\u03BA\u03BB\u03BC\u03BD\u03BE\u03BF" + // 0xE8 - 0xEF - "\u03C0\u03C1\u03C2\u03C3\u03C4\u03C5\u03C6\u03C7" + // 0xF0 - 0xF7 - "\u03C8\u03C9\u03CA\u03CB\u03CC\u03CD\u03CE\uFFFD" + // 0xF8 - 0xFF - "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007" + // 0x00 - 0x07 - "\b\t\n\u000B\f\r\u000E\u000F" + // 0x08 - 0x0F - "\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017" + // 0x10 - 0x17 - "\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F" + // 0x18 - 0x1F - "\u0020\u0021\"\u0023\u0024\u0025\u0026\'" + // 0x20 - 0x27 - "\u0028\u0029\u002A\u002B\u002C\u002D\u002E\u002F" + // 0x28 - 0x2F - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + // 0x30 - 0x37 - "\u0038\u0039\u003A\u003B\u003C\u003D\u003E\u003F" + // 0x38 - 0x3F - "\u0040\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + // 0x40 - 0x47 - "\u0048\u0049\u004A\u004B\u004C\u004D\u004E\u004F" + // 0x48 - 0x4F - "\u0050\u0051\u0052\u0053\u0054\u0055\u0056\u0057" + // 0x50 - 0x57 - "\u0058\u0059\u005A\u005B\\\u005D\u005E\u005F" + // 0x58 - 0x5F - "\u0060\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + // 0x60 - 0x67 - "\u0068\u0069\u006A\u006B\u006C\u006D\u006E\u006F" + // 0x68 - 0x6F - "\u0070\u0071\u0072\u0073\u0074\u0075\u0076\u0077" + // 0x70 - 0x77 - "\u0078\u0079\u007A\u007B\u007C\u007D\u007E\u007F"; // 0x78 - 0x7F - } - - private static class Encoder extends SingleByteEncoder { - public Encoder(Charset cs) { - super(cs, index1, index2, 0xFF00, 0x00FF, 8); - } - - private final static String index2 = - - "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007" + - "\b\t\n\u000B\f\r\u000E\u000F" + - "\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017" + - "\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F" + - "\u0020\u0021\"\u0023\u0024\u0025\u0026\'" + - "\u0028\u0029\u002A\u002B\u002C\u002D\u002E\u002F" + - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + - "\u0038\u0039\u003A\u003B\u003C\u003D\u003E\u003F" + - "\u0040\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + - "\u0048\u0049\u004A\u004B\u004C\u004D\u004E\u004F" + - "\u0050\u0051\u0052\u0053\u0054\u0055\u0056\u0057" + - "\u0058\u0059\u005A\u005B\\\u005D\u005E\u005F" + - "\u0060\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + - "\u0068\u0069\u006A\u006B\u006C\u006D\u006E\u006F" + - "\u0070\u0071\u0072\u0073\u0074\u0075\u0076\u0077" + - "\u0078\u0079\u007A\u007B\u007C\u007D\u007E\u007F" + - "\u0080\u0081\u0082\u0083\u0084\u0085\u0086\u0087" + - "\u0088\u0089\u008A\u008B\u008C\u008D\u008E\u008F" + - "\u0090\u0091\u0092\u0093\u0094\u0095\u0096\u0097" + - "\u0098\u0099\u009A\u009B\u009C\u009D\u009E\u009F" + - "\u00A0\u0000\u0000\u00A3\u0000\u0000\u00A6\u00A7" + - "\u00A8\u00A9\u0000\u00AB\u00AC\u00AD\u0000\u0000" + - "\u00B0\u00B1\u00B2\u00B3\u0000\u0000\u0000\u00B7" + - "\u0000\u0000\u0000\u00BB\u0000\u00BD\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u00AA\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00B4\u00B5\u00B6\u0000\u00B8\u00B9\u00BA\u0000" + - "\u00BC\u0000\u00BE\u00BF\u00C0\u00C1\u00C2\u00C3" + - "\u00C4\u00C5\u00C6\u00C7\u00C8\u00C9\u00CA\u00CB" + - "\u00CC\u00CD\u00CE\u00CF\u00D0\u00D1\u0000\u00D3" + - "\u00D4\u00D5\u00D6\u00D7\u00D8\u00D9\u00DA\u00DB" + - "\u00DC\u00DD\u00DE\u00DF\u00E0\u00E1\u00E2\u00E3" + - "\u00E4\u00E5\u00E6\u00E7\u00E8\u00E9\u00EA\u00EB" + - "\u00EC\u00ED\u00EE\u00EF\u00F0\u00F1\u00F2\u00F3" + - "\u00F4\u00F5\u00F6\u00F7\u00F8\u00F9\u00FA\u00FB" + - "\u00FC\u00FD\u00FE\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u00AF\u0000\u0000\u00A1" + - "\u00A2\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u00A4\u0000\u0000\u00A5\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000"; - - private final static short index1[] = { - 0, 190, 190, 324, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, - 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, - 559, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, - 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, - 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, - 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, - 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, - 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, - 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, - 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, - 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, - 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, - 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, - 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, - 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, - 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, - }; - } -} diff --git a/jdk/src/share/classes/sun/nio/cs/ISO_8859_9.java b/jdk/src/share/classes/sun/nio/cs/ISO_8859_9.java deleted file mode 100644 index cc2c8121246..00000000000 --- a/jdk/src/share/classes/sun/nio/cs/ISO_8859_9.java +++ /dev/null @@ -1,233 +0,0 @@ -/* - * Copyright 2002-2004 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. - */ - -package sun.nio.cs; - -import java.nio.charset.Charset; -import java.nio.charset.CharsetDecoder; -import java.nio.charset.CharsetEncoder; -import sun.nio.cs.StandardCharsets; -import sun.nio.cs.SingleByteDecoder; -import sun.nio.cs.SingleByteEncoder; -import sun.nio.cs.HistoricallyNamedCharset; - -public class ISO_8859_9 - extends Charset - implements HistoricallyNamedCharset -{ - - public ISO_8859_9() { - super("ISO-8859-9", StandardCharsets.aliases_ISO_8859_9); - } - - public String historicalName() { - return "ISO8859_9"; - } - - public boolean contains(Charset cs) { - return ((cs.name().equals("US-ASCII")) - || (cs instanceof ISO_8859_9)); - } - - public CharsetDecoder newDecoder() { - return new Decoder(this); - } - - public CharsetEncoder newEncoder() { - return new Encoder(this); - } - - - /** - * These accessors are temporarily supplied while sun.io - * converters co-exist with the sun.nio.cs.{ext} charset coders - * These facilitate sharing of conversion tables between the - * two co-existing implementations. When sun.io converters - * are made extinct these will be unncessary and should be removed - */ - - public String getDecoderSingleByteMappings() { - return Decoder.byteToCharTable; - - } - - public short[] getEncoderIndex1() { - return Encoder.index1; - - } - public String getEncoderIndex2() { - return Encoder.index2; - - } - - - private static class Decoder extends SingleByteDecoder { - public Decoder(Charset cs) { - super(cs, byteToCharTable); - } - - private final static String byteToCharTable = - - "\u0080\u0081\u0082\u0083\u0084\u0085\u0086\u0087" + // 0x80 - 0x87 - "\u0088\u0089\u008A\u008B\u008C\u008D\u008E\u008F" + // 0x88 - 0x8F - "\u0090\u0091\u0092\u0093\u0094\u0095\u0096\u0097" + // 0x90 - 0x97 - "\u0098\u0099\u009A\u009B\u009C\u009D\u009E\u009F" + // 0x98 - 0x9F - "\u00A0\u00A1\u00A2\u00A3\u00A4\u00A5\u00A6\u00A7" + // 0xA0 - 0xA7 - "\u00A8\u00A9\u00AA\u00AB\u00AC\u00AD\u00AE\u00AF" + // 0xA8 - 0xAF - "\u00B0\u00B1\u00B2\u00B3\u00B4\u00B5\u00B6\u00B7" + // 0xB0 - 0xB7 - "\u00B8\u00B9\u00BA\u00BB\u00BC\u00BD\u00BE\u00BF" + // 0xB8 - 0xBF - "\u00C0\u00C1\u00C2\u00C3\u00C4\u00C5\u00C6\u00C7" + // 0xC0 - 0xC7 - "\u00C8\u00C9\u00CA\u00CB\u00CC\u00CD\u00CE\u00CF" + // 0xC8 - 0xCF - "\u011E\u00D1\u00D2\u00D3\u00D4\u00D5\u00D6\u00D7" + // 0xD0 - 0xD7 - "\u00D8\u00D9\u00DA\u00DB\u00DC\u0130\u015E\u00DF" + // 0xD8 - 0xDF - "\u00E0\u00E1\u00E2\u00E3\u00E4\u00E5\u00E6\u00E7" + // 0xE0 - 0xE7 - "\u00E8\u00E9\u00EA\u00EB\u00EC\u00ED\u00EE\u00EF" + // 0xE8 - 0xEF - "\u011F\u00F1\u00F2\u00F3\u00F4\u00F5\u00F6\u00F7" + // 0xF0 - 0xF7 - "\u00F8\u00F9\u00FA\u00FB\u00FC\u0131\u015F\u00FF" + // 0xF8 - 0xFF - "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007" + // 0x00 - 0x07 - "\b\t\n\u000B\f\r\u000E\u000F" + // 0x08 - 0x0F - "\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017" + // 0x10 - 0x17 - "\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F" + // 0x18 - 0x1F - "\u0020\u0021\"\u0023\u0024\u0025\u0026\'" + // 0x20 - 0x27 - "\u0028\u0029\u002A\u002B\u002C\u002D\u002E\u002F" + // 0x28 - 0x2F - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + // 0x30 - 0x37 - "\u0038\u0039\u003A\u003B\u003C\u003D\u003E\u003F" + // 0x38 - 0x3F - "\u0040\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + // 0x40 - 0x47 - "\u0048\u0049\u004A\u004B\u004C\u004D\u004E\u004F" + // 0x48 - 0x4F - "\u0050\u0051\u0052\u0053\u0054\u0055\u0056\u0057" + // 0x50 - 0x57 - "\u0058\u0059\u005A\u005B\\\u005D\u005E\u005F" + // 0x58 - 0x5F - "\u0060\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + // 0x60 - 0x67 - "\u0068\u0069\u006A\u006B\u006C\u006D\u006E\u006F" + // 0x68 - 0x6F - "\u0070\u0071\u0072\u0073\u0074\u0075\u0076\u0077" + // 0x70 - 0x77 - "\u0078\u0079\u007A\u007B\u007C\u007D\u007E\u007F"; // 0x78 - 0x7F - - - } - - private static class Encoder extends SingleByteEncoder { - public Encoder(Charset cs) { - super(cs, index1, index2, 0xFF00, 0x00FF, 8); - } - - private final static String index2 = - - "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007" + - "\b\t\n\u000B\f\r\u000E\u000F" + - "\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017" + - "\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F" + - "\u0020\u0021\"\u0023\u0024\u0025\u0026\'" + - "\u0028\u0029\u002A\u002B\u002C\u002D\u002E\u002F" + - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + - "\u0038\u0039\u003A\u003B\u003C\u003D\u003E\u003F" + - "\u0040\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + - "\u0048\u0049\u004A\u004B\u004C\u004D\u004E\u004F" + - "\u0050\u0051\u0052\u0053\u0054\u0055\u0056\u0057" + - "\u0058\u0059\u005A\u005B\\\u005D\u005E\u005F" + - "\u0060\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + - "\u0068\u0069\u006A\u006B\u006C\u006D\u006E\u006F" + - "\u0070\u0071\u0072\u0073\u0074\u0075\u0076\u0077" + - "\u0078\u0079\u007A\u007B\u007C\u007D\u007E\u007F" + - "\u0080\u0081\u0082\u0083\u0084\u0085\u0086\u0087" + - "\u0088\u0089\u008A\u008B\u008C\u008D\u008E\u008F" + - "\u0090\u0091\u0092\u0093\u0094\u0095\u0096\u0097" + - "\u0098\u0099\u009A\u009B\u009C\u009D\u009E\u009F" + - "\u00A0\u00A1\u00A2\u00A3\u00A4\u00A5\u00A6\u00A7" + - "\u00A8\u00A9\u00AA\u00AB\u00AC\u00AD\u00AE\u00AF" + - "\u00B0\u00B1\u00B2\u00B3\u00B4\u00B5\u00B6\u00B7" + - "\u00B8\u00B9\u00BA\u00BB\u00BC\u00BD\u00BE\u00BF" + - "\u00C0\u00C1\u00C2\u00C3\u00C4\u00C5\u00C6\u00C7" + - "\u00C8\u00C9\u00CA\u00CB\u00CC\u00CD\u00CE\u00CF" + - "\u0000\u00D1\u00D2\u00D3\u00D4\u00D5\u00D6\u00D7" + - "\u00D8\u00D9\u00DA\u00DB\u00DC\u0000\u0000\u00DF" + - "\u00E0\u00E1\u00E2\u00E3\u00E4\u00E5\u00E6\u00E7" + - "\u00E8\u00E9\u00EA\u00EB\u00EC\u00ED\u00EE\u00EF" + - "\u0000\u00F1\u00F2\u00F3\u00F4\u00F5\u00F6\u00F7" + - "\u00F8\u00F9\u00FA\u00FB\u00FC\u0000\u0000\u00FF" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u00D0\u00F0" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00DD\u00FD\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u00DE\u00FE" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"; - - private final static short index1[] = { - 0, 256, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - - }; - } -} diff --git a/jdk/src/share/classes/sun/nio/cs/KOI8_R.java b/jdk/src/share/classes/sun/nio/cs/KOI8_R.java deleted file mode 100644 index f237b361c26..00000000000 --- a/jdk/src/share/classes/sun/nio/cs/KOI8_R.java +++ /dev/null @@ -1,344 +0,0 @@ -/* - * Copyright 2002-2004 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. - */ - -package sun.nio.cs; - -import java.nio.ByteBuffer; -import java.nio.CharBuffer; -import java.nio.charset.Charset; -import java.nio.charset.CharsetDecoder; -import java.nio.charset.CharsetEncoder; -import java.nio.charset.CharacterCodingException; -import java.nio.charset.MalformedInputException; -import java.nio.charset.UnmappableCharacterException; -import sun.nio.cs.StandardCharsets; -import sun.nio.cs.SingleByteDecoder; -import sun.nio.cs.SingleByteEncoder; - - -public class KOI8_R - extends Charset - implements HistoricallyNamedCharset -{ - - public KOI8_R() { - super("KOI8-R", StandardCharsets.aliases_KOI8_R); - } - - public String historicalName() { - return "KOI8_R"; - } - - public boolean contains(Charset cs) { - return ((cs.name().equals("US-ASCII")) - || (cs instanceof KOI8_R)); - } - - public CharsetDecoder newDecoder() { - return new Decoder(this); - } - - public CharsetEncoder newEncoder() { - return new Encoder(this); - } - - - /** - * These accessors are temporarily supplied while sun.io - * converters co-exist with the sun.nio.cs.{ext} charset coders - * These facilitate sharing of conversion tables between the - * two co-existing implementations. When sun.io converters - * are made extinct these will be unncessary and should be removed - */ - - public String getDecoderSingleByteMappings() { - return Decoder.byteToCharTable; - - } - - public short[] getEncoderIndex1() { - return Encoder.index1; - - } - public String getEncoderIndex2() { - return Encoder.index2; - - } - - private static class Decoder extends SingleByteDecoder { - - public Decoder(Charset cs) { - super(cs, byteToCharTable); - } - - private final static String byteToCharTable = - - "\u2500\u2502\u250C\u2510\u2514\u2518\u251C\u2524" + // 0x80 - 0x87 - "\u252C\u2534\u253C\u2580\u2584\u2588\u258C\u2590" + // 0x88 - 0x8F - "\u2591\u2592\u2593\u2320\u25A0\u2219\u221A\u2248" + // 0x90 - 0x97 - "\u2264\u2265\u00A0\u2321\u00B0\u00B2\u00B7\u00F7" + // 0x98 - 0x9F - "\u2550\u2551\u2552\u0451\u2553\u2554\u2555\u2556" + // 0xA0 - 0xA7 - "\u2557\u2558\u2559\u255A\u255B\u255C\u255D\u255E" + // 0xA8 - 0xAF - "\u255F\u2560\u2561\u0401\u2562\u2563\u2564\u2565" + // 0xB0 - 0xB7 - "\u2566\u2567\u2568\u2569\u256A\u256B\u256C\u00A9" + // 0xB8 - 0xBF - "\u044E\u0430\u0431\u0446\u0434\u0435\u0444\u0433" + // 0xC0 - 0xC7 - "\u0445\u0438\u0439\u043A\u043B\u043C\u043D\u043E" + // 0xC8 - 0xCF - "\u043F\u044F\u0440\u0441\u0442\u0443\u0436\u0432" + // 0xD0 - 0xD7 - "\u044C\u044B\u0437\u0448\u044D\u0449\u0447\u044A" + // 0xD8 - 0xDF - "\u042E\u0410\u0411\u0426\u0414\u0415\u0424\u0413" + // 0xE0 - 0xE7 - "\u0425\u0418\u0419\u041A\u041B\u041C\u041D\u041E" + // 0xE8 - 0xEF - "\u041F\u042F\u0420\u0421\u0422\u0423\u0416\u0412" + // 0xF0 - 0xF7 - "\u042C\u042B\u0417\u0428\u042D\u0429\u0427\u042A" + // 0xF8 - 0xFF - "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007" + // 0x00 - 0x07 - "\b\t\n\u000B\f\r\u000E\u000F" + // 0x08 - 0x0F - "\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017" + // 0x10 - 0x17 - "\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F" + // 0x18 - 0x1F - "\u0020\u0021\"\u0023\u0024\u0025\u0026\'" + // 0x20 - 0x27 - "\u0028\u0029\u002A\u002B\u002C\u002D\u002E\u002F" + // 0x28 - 0x2F - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + // 0x30 - 0x37 - "\u0038\u0039\u003A\u003B\u003C\u003D\u003E\u003F" + // 0x38 - 0x3F - "\u0040\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + // 0x40 - 0x47 - "\u0048\u0049\u004A\u004B\u004C\u004D\u004E\u004F" + // 0x48 - 0x4F - "\u0050\u0051\u0052\u0053\u0054\u0055\u0056\u0057" + // 0x50 - 0x57 - "\u0058\u0059\u005A\u005B\\\u005D\u005E\u005F" + // 0x58 - 0x5F - "\u0060\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + // 0x60 - 0x67 - "\u0068\u0069\u006A\u006B\u006C\u006D\u006E\u006F" + // 0x68 - 0x6F - "\u0070\u0071\u0072\u0073\u0074\u0075\u0076\u0077" + // 0x70 - 0x77 - "\u0078\u0079\u007A\u007B\u007C\u007D\u007E\u007F"; // 0x78 - 0x7F - } - - private static class Encoder extends SingleByteEncoder { - - public Encoder(Charset cs) { - super(cs, index1, index2, 0xFF00, 0x00FF, 8); - } - - private final static String index2 = - - "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007" + - "\b\t\n\u000B\f\r\u000E\u000F" + - "\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017" + - "\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F" + - "\u0020\u0021\"\u0023\u0024\u0025\u0026\'" + - "\u0028\u0029\u002A\u002B\u002C\u002D\u002E\u002F" + - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + - "\u0038\u0039\u003A\u003B\u003C\u003D\u003E\u003F" + - "\u0040\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + - "\u0048\u0049\u004A\u004B\u004C\u004D\u004E\u004F" + - "\u0050\u0051\u0052\u0053\u0054\u0055\u0056\u0057" + - "\u0058\u0059\u005A\u005B\\\u005D\u005E\u005F" + - "\u0060\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + - "\u0068\u0069\u006A\u006B\u006C\u006D\u006E\u006F" + - "\u0070\u0071\u0072\u0073\u0074\u0075\u0076\u0077" + - "\u0078\u0079\u007A\u007B\u007C\u007D\u007E\u007F" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u009A\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u00BF\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u009C\u0000\u009D\u0000\u0000\u0000\u0000\u009E" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u009F" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00B3\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u00E1" + - "\u00E2\u00F7\u00E7\u00E4\u00E5\u00F6\u00FA\u00E9" + - "\u00EA\u00EB\u00EC\u00ED\u00EE\u00EF\u00F0\u00F2" + - "\u00F3\u00F4\u00F5\u00E6\u00E8\u00E3\u00FE\u00FB" + - "\u00FD\u00FF\u00F9\u00F8\u00FC\u00E0\u00F1\u00C1" + - "\u00C2\u00D7\u00C7\u00C4\u00C5\u00D6\u00DA\u00C9" + - "\u00CA\u00CB\u00CC\u00CD\u00CE\u00CF\u00D0\u00D2" + - "\u00D3\u00D4\u00D5\u00C6\u00C8\u00C3\u00DE\u00DB" + - "\u00DD\u00DF\u00D9\u00D8\u00DC\u00C0\u00D1\u0000" + - "\u00A3\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0095" + - "\u0096\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0097\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0098\u0099\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0093\u009B" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0080\u0000" + - "\u0081\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0082\u0000\u0000\u0000\u0083\u0000" + - "\u0000\u0000\u0084\u0000\u0000\u0000\u0085\u0000" + - "\u0000\u0000\u0086\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0087\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0088\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0089\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u008A\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u00A0\u00A1" + - "\u00A2\u00A4\u00A5\u00A6\u00A7\u00A8\u00A9\u00AA" + - "\u00AB\u00AC\u00AD\u00AE\u00AF\u00B0\u00B1\u00B2" + - "\u00B4\u00B5\u00B6\u00B7\u00B8\u00B9\u00BA\u00BB" + - "\u00BC\u00BD\u00BE\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u008B\u0000" + - "\u0000\u0000\u008C\u0000\u0000\u0000\u008D\u0000" + - "\u0000\u0000\u008E\u0000\u0000\u0000\u008F\u0090" + - "\u0091\u0092\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0094\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000"; - - private final static short index1[] = { - 0, 248, 248, 248, 503, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 734, 958, 248, 1214, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - }; - } -} diff --git a/jdk/src/share/classes/sun/nio/cs/KOI8_U.java b/jdk/src/share/classes/sun/nio/cs/KOI8_U.java deleted file mode 100644 index 26ad0c9d6cb..00000000000 --- a/jdk/src/share/classes/sun/nio/cs/KOI8_U.java +++ /dev/null @@ -1,323 +0,0 @@ -/* - * Copyright 2006 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. - */ - -package sun.nio.cs; - -import java.nio.ByteBuffer; -import java.nio.CharBuffer; -import java.nio.charset.Charset; -import java.nio.charset.CharsetDecoder; -import java.nio.charset.CharsetEncoder; -import java.nio.charset.CharacterCodingException; -import java.nio.charset.MalformedInputException; -import java.nio.charset.UnmappableCharacterException; -import sun.nio.cs.StandardCharsets; -import sun.nio.cs.SingleByteDecoder; -import sun.nio.cs.SingleByteEncoder; - -/* - * An implementation of charset KOI8_U as specified by - * http://www.net.ua/KOI8-U - */ - -public class KOI8_U - extends Charset - implements HistoricallyNamedCharset -{ - - public KOI8_U() { - super("KOI8-U", StandardCharsets.aliases_KOI8_U); - } - - public String historicalName() { - return "KOI8_U"; - } - - public boolean contains(Charset cs) { - return ((cs.name().equals("US-ASCII")) - || (cs instanceof KOI8_U)); - } - - public CharsetDecoder newDecoder() { - return new Decoder(this); - } - - public CharsetEncoder newEncoder() { - return new Encoder(this); - } - - private static class Decoder extends SingleByteDecoder { - - public Decoder(Charset cs) { - super(cs, byteToCharTable); - } - - private final static String byteToCharTable = - "\u2500\u2502\u250C\u2510\u2514\u2518\u251C\u2524" + // 0x80 - 0x87 - "\u252C\u2534\u253C\u2580\u2584\u2588\u258C\u2590" + // 0x88 - 0x8F - "\u2591\u2592\u2593\u2320\u25A0\u2219\u221A\u2248" + // 0x90 - 0x97 - "\u2264\u2265\u00A0\u2321\u00B0\u00B2\u00B7\u00F7" + // 0x98 - 0x9F - "\u2550\u2551\u2552\u0451\u0454\u2554\u0456\u0457" + // 0xA0 - 0xA7 - "\u2557\u2558\u2559\u255A\u255B\u0491\u255D\u255E" + // 0xA8 - 0xAF - "\u255F\u2560\u2561\u0401\u0404\u2563\u0406\u0407" + // 0xB0 - 0xB7 - "\u2566\u2567\u2568\u2569\u256A\u0490\u256C\u00A9" + // 0xB8 - 0xBF - "\u044E\u0430\u0431\u0446\u0434\u0435\u0444\u0433" + // 0xC0 - 0xC7 - "\u0445\u0438\u0439\u043A\u043B\u043C\u043D\u043E" + // 0xC8 - 0xCF - "\u043F\u044F\u0440\u0441\u0442\u0443\u0436\u0432" + // 0xD0 - 0xD7 - "\u044C\u044B\u0437\u0448\u044D\u0449\u0447\u044A" + // 0xD8 - 0xDF - "\u042E\u0410\u0411\u0426\u0414\u0415\u0424\u0413" + // 0xE0 - 0xE7 - "\u0425\u0418\u0419\u041A\u041B\u041C\u041D\u041E" + // 0xE8 - 0xEF - "\u041F\u042F\u0420\u0421\u0422\u0423\u0416\u0412" + // 0xF0 - 0xF7 - "\u042C\u042B\u0417\u0428\u042D\u0429\u0427\u042A" + // 0xF8 - 0xFF - "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007" + // 0x00 - 0x07 - "\b\t\n\u000B\f\r\u000E\u000F" + // 0x08 - 0x0F - "\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017" + // 0x10 - 0x17 - "\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F" + // 0x18 - 0x1F - "\u0020\u0021\"\u0023\u0024\u0025\u0026\'" + // 0x20 - 0x27 - "\u0028\u0029\u002A\u002B\u002C\u002D\u002E\u002F" + // 0x28 - 0x2F - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + // 0x30 - 0x37 - "\u0038\u0039\u003A\u003B\u003C\u003D\u003E\u003F" + // 0x38 - 0x3F - "\u0040\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + // 0x40 - 0x47 - "\u0048\u0049\u004A\u004B\u004C\u004D\u004E\u004F" + // 0x48 - 0x4F - "\u0050\u0051\u0052\u0053\u0054\u0055\u0056\u0057" + // 0x50 - 0x57 - "\u0058\u0059\u005A\u005B\\\u005D\u005E\u005F" + // 0x58 - 0x5F - "\u0060\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + // 0x60 - 0x67 - "\u0068\u0069\u006A\u006B\u006C\u006D\u006E\u006F" + // 0x68 - 0x6F - "\u0070\u0071\u0072\u0073\u0074\u0075\u0076\u0077" + // 0x70 - 0x77 - "\u0078\u0079\u007A\u007B\u007C\u007D\u007E\u007F"; // 0x78 - 0x7F - } - - private static class Encoder extends SingleByteEncoder { - - public Encoder(Charset cs) { - super(cs, index1, index2, 0xFF00, 0x00FF, 8); - } - - private final static String index2 = - "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007" + - "\b\t\n\u000B\f\r\u000E\u000F" + - "\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017" + - "\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F" + - "\u0020\u0021\"\u0023\u0024\u0025\u0026\'" + - "\u0028\u0029\u002A\u002B\u002C\u002D\u002E\u002F" + - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + - "\u0038\u0039\u003A\u003B\u003C\u003D\u003E\u003F" + - "\u0040\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + - "\u0048\u0049\u004A\u004B\u004C\u004D\u004E\u004F" + - "\u0050\u0051\u0052\u0053\u0054\u0055\u0056\u0057" + - "\u0058\u0059\u005A\u005B\\\u005D\u005E\u005F" + - "\u0060\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + - "\u0068\u0069\u006A\u006B\u006C\u006D\u006E\u006F" + - "\u0070\u0071\u0072\u0073\u0074\u0075\u0076\u0077" + - "\u0078\u0079\u007A\u007B\u007C\u007D\u007E\u007F" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u009A\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u00BF\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u009C\u0000\u009D\u0000\u0000\u0000\u0000\u009E" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u009F" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00B3\u0000\u0000\u00B4\u0000\u00B6\u00B7\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u00E1" + - "\u00E2\u00F7\u00E7\u00E4\u00E5\u00F6\u00FA\u00E9" + - "\u00EA\u00EB\u00EC\u00ED\u00EE\u00EF\u00F0\u00F2" + - "\u00F3\u00F4\u00F5\u00E6\u00E8\u00E3\u00FE\u00FB" + - "\u00FD\u00FF\u00F9\u00F8\u00FC\u00E0\u00F1\u00C1" + - "\u00C2\u00D7\u00C7\u00C4\u00C5\u00D6\u00DA\u00C9" + - "\u00CA\u00CB\u00CC\u00CD\u00CE\u00CF\u00D0\u00D2" + - "\u00D3\u00D4\u00D5\u00C6\u00C8\u00C3\u00DE\u00DB" + - "\u00DD\u00DF\u00D9\u00D8\u00DC\u00C0\u00D1\u0000" + - "\u00A3\u0000\u0000\u00A4\u0000\u00A6\u00A7\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u00BD" + - "\u00AD\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0095" + - "\u0096\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0097\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0098\u0099\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0093\u009B" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0080\u0000" + - "\u0081\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0082\u0000\u0000\u0000\u0083\u0000" + - "\u0000\u0000\u0084\u0000\u0000\u0000\u0085\u0000" + - "\u0000\u0000\u0086\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0087\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0088\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0089\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u008A\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u00A0\u00A1" + - "\u00A2\u0000\u00A5\u0000\u0000\u00A8\u00A9\u00AA" + - "\u00AB\u00AC\u0000\u00AE\u00AF\u00B0\u00B1\u00B2" + - "\u0000\u00B5\u0000\u0000\u00B8\u00B9\u00BA\u00BB" + - "\u00BC\u0000\u00BE\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u008B\u0000" + - "\u0000\u0000\u008C\u0000\u0000\u0000\u008D\u0000" + - "\u0000\u0000\u008E\u0000\u0000\u0000\u008F\u0090" + - "\u0091\u0092\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0094\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000"; - - private final static short index1[] = { - 0, 248, 248, 248, 503, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 734, 958, 248, 1214, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - }; - } -} diff --git a/jdk/src/share/classes/sun/nio/cs/MS1250.java b/jdk/src/share/classes/sun/nio/cs/MS1250.java deleted file mode 100644 index 51d97edca03..00000000000 --- a/jdk/src/share/classes/sun/nio/cs/MS1250.java +++ /dev/null @@ -1,304 +0,0 @@ -/* - * Copyright 2002-2004 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. - */ - -package sun.nio.cs; - -import java.nio.ByteBuffer; -import java.nio.CharBuffer; -import java.nio.charset.Charset; -import java.nio.charset.CharsetDecoder; -import java.nio.charset.CharsetEncoder; -import java.nio.charset.CharacterCodingException; -import java.nio.charset.MalformedInputException; -import java.nio.charset.UnmappableCharacterException; -import sun.nio.cs.StandardCharsets; -import sun.nio.cs.SingleByteDecoder; -import sun.nio.cs.SingleByteEncoder; -import sun.nio.cs.HistoricallyNamedCharset; - - -public class MS1250 - extends Charset - implements HistoricallyNamedCharset -{ - - public String historicalName() { - return "Cp1250"; - } - - public MS1250() { - super("windows-1250", StandardCharsets.aliases_MS1250); - } - - public boolean contains(Charset cs) { - return ((cs.name().equals("US-ASCII")) - || (cs instanceof MS1250)); - } - - public CharsetDecoder newDecoder() { - return new Decoder(this); - } - - public CharsetEncoder newEncoder() { - return new Encoder(this); - } - - - /** - * These accessors are temporarily supplied while sun.io - * converters co-exist with the sun.nio.cs.{ext} charset coders - * These facilitate sharing of conversion tables between the - * two co-existing implementations. When sun.io converters - * are made extinct these will be unncessary and should be removed - */ - - public String getDecoderSingleByteMappings() { - return Decoder.byteToCharTable; - - } - - public short[] getEncoderIndex1() { - return Encoder.index1; - - } - public String getEncoderIndex2() { - return Encoder.index2; - - } - - private static class Decoder extends SingleByteDecoder { - public Decoder(Charset cs) { - super(cs, byteToCharTable); - } - - private final static String byteToCharTable = - - "\u20AC\uFFFD\u201A\uFFFD\u201E\u2026\u2020\u2021" + // 0x80 - 0x87 - "\uFFFD\u2030\u0160\u2039\u015A\u0164\u017D\u0179" + // 0x88 - 0x8F - "\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014" + // 0x90 - 0x97 - "\uFFFD\u2122\u0161\u203A\u015B\u0165\u017E\u017A" + // 0x98 - 0x9F - "\u00A0\u02C7\u02D8\u0141\u00A4\u0104\u00A6\u00A7" + // 0xA0 - 0xA7 - "\u00A8\u00A9\u015E\u00AB\u00AC\u00AD\u00AE\u017B" + // 0xA8 - 0xAF - "\u00B0\u00B1\u02DB\u0142\u00B4\u00B5\u00B6\u00B7" + // 0xB0 - 0xB7 - "\u00B8\u0105\u015F\u00BB\u013D\u02DD\u013E\u017C" + // 0xB8 - 0xBF - "\u0154\u00C1\u00C2\u0102\u00C4\u0139\u0106\u00C7" + // 0xC0 - 0xC7 - "\u010C\u00C9\u0118\u00CB\u011A\u00CD\u00CE\u010E" + // 0xC8 - 0xCF - "\u0110\u0143\u0147\u00D3\u00D4\u0150\u00D6\u00D7" + // 0xD0 - 0xD7 - "\u0158\u016E\u00DA\u0170\u00DC\u00DD\u0162\u00DF" + // 0xD8 - 0xDF - "\u0155\u00E1\u00E2\u0103\u00E4\u013A\u0107\u00E7" + // 0xE0 - 0xE7 - "\u010D\u00E9\u0119\u00EB\u011B\u00ED\u00EE\u010F" + // 0xE8 - 0xEF - "\u0111\u0144\u0148\u00F3\u00F4\u0151\u00F6\u00F7" + // 0xF0 - 0xF7 - "\u0159\u016F\u00FA\u0171\u00FC\u00FD\u0163\u02D9" + // 0xF8 - 0xFF - "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007" + // 0x00 - 0x07 - "\b\t\n\u000B\f\r\u000E\u000F" + // 0x08 - 0x0F - "\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017" + // 0x10 - 0x17 - "\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F" + // 0x18 - 0x1F - "\u0020\u0021\"\u0023\u0024\u0025\u0026\'" + // 0x20 - 0x27 - "\u0028\u0029\u002A\u002B\u002C\u002D\u002E\u002F" + // 0x28 - 0x2F - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + // 0x30 - 0x37 - "\u0038\u0039\u003A\u003B\u003C\u003D\u003E\u003F" + // 0x38 - 0x3F - "\u0040\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + // 0x40 - 0x47 - "\u0048\u0049\u004A\u004B\u004C\u004D\u004E\u004F" + // 0x48 - 0x4F - "\u0050\u0051\u0052\u0053\u0054\u0055\u0056\u0057" + // 0x50 - 0x57 - "\u0058\u0059\u005A\u005B\\\u005D\u005E\u005F" + // 0x58 - 0x5F - "\u0060\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + // 0x60 - 0x67 - "\u0068\u0069\u006A\u006B\u006C\u006D\u006E\u006F" + // 0x68 - 0x6F - "\u0070\u0071\u0072\u0073\u0074\u0075\u0076\u0077" + // 0x70 - 0x77 - "\u0078\u0079\u007A\u007B\u007C\u007D\u007E\u007F"; // 0x78 - 0x7F - } - - private static class Encoder extends SingleByteEncoder { - public Encoder(Charset cs) { - super(cs, index1, index2, 0xFF00, 0x00FF, 8); - } - - private final static String index2 = - - "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007" + - "\b\t\n\u000B\f\r\u000E\u000F" + - "\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017" + - "\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F" + - "\u0020\u0021\"\u0023\u0024\u0025\u0026\'" + - "\u0028\u0029\u002A\u002B\u002C\u002D\u002E\u002F" + - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + - "\u0038\u0039\u003A\u003B\u003C\u003D\u003E\u003F" + - "\u0040\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + - "\u0048\u0049\u004A\u004B\u004C\u004D\u004E\u004F" + - "\u0050\u0051\u0052\u0053\u0054\u0055\u0056\u0057" + - "\u0058\u0059\u005A\u005B\\\u005D\u005E\u005F" + - "\u0060\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + - "\u0068\u0069\u006A\u006B\u006C\u006D\u006E\u006F" + - "\u0070\u0071\u0072\u0073\u0074\u0075\u0076\u0077" + - "\u0078\u0079\u007A\u007B\u007C\u007D\u007E\u007F" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00A0\u0000\u0000\u0000\u00A4\u0000\u00A6\u00A7" + - "\u00A8\u00A9\u0000\u00AB\u00AC\u00AD\u00AE\u0000" + - "\u00B0\u00B1\u0000\u0000\u00B4\u00B5\u00B6\u00B7" + - "\u00B8\u0000\u0000\u00BB\u0000\u0000\u0000\u0000" + - "\u0000\u00C1\u00C2\u0000\u00C4\u0000\u0000\u00C7" + - "\u0000\u00C9\u0000\u00CB\u0000\u00CD\u00CE\u0000" + - "\u0000\u0000\u0000\u00D3\u00D4\u0000\u00D6\u00D7" + - "\u0000\u0000\u00DA\u0000\u00DC\u00DD\u0000\u00DF" + - "\u0000\u00E1\u00E2\u0000\u00E4\u0000\u0000\u00E7" + - "\u0000\u00E9\u0000\u00EB\u0000\u00ED\u00EE\u0000" + - "\u0000\u0000\u0000\u00F3\u00F4\u0000\u00F6\u00F7" + - "\u0000\u0000\u00FA\u0000\u00FC\u00FD\u0000\u0000" + - "\u00C3\u00E3\u00A5\u00B9\u00C6\u00E6\u0000\u0000" + - "\u0000\u0000\u00C8\u00E8\u00CF\u00EF\u00D0\u00F0" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u00CA\u00EA" + - "\u00CC\u00EC\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u00C5" + - "\u00E5\u0000\u0000\u00BC\u00BE\u0000\u0000\u00A3" + - "\u00B3\u00D1\u00F1\u0000\u0000\u00D2\u00F2\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u00D5\u00F5" + - "\u0000\u0000\u00C0\u00E0\u0000\u0000\u00D8\u00F8" + - "\u008C\u009C\u0000\u0000\u00AA\u00BA\u008A\u009A" + - "\u00DE\u00FE\u008D\u009D\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u00D9\u00F9\u00DB\u00FB" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u008F" + - "\u009F\u00AF\u00BF\u008E\u009E\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u00A1\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u00A2\u00FF" + - "\u0000\u00B2\u0000\u00BD\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0096\u0097" + - "\u0000\u0000\u0000\u0091\u0092\u0082\u0000\u0093" + - "\u0094\u0084\u0000\u0086\u0087\u0095\u0000\u0000" + - "\u0000\u0085\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0089\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u008B\u009B\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0080" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0099\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000"; - - private final static short index1[] = { - 0, 254, 438, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, - 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, - 675, 897, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, - 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, - 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, - 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, - 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, - 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, - 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, - 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, - 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, - 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, - 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, - 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, - 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, - 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, - }; - } -} diff --git a/jdk/src/share/classes/sun/nio/cs/MS1251.java b/jdk/src/share/classes/sun/nio/cs/MS1251.java deleted file mode 100644 index 2120de45c6b..00000000000 --- a/jdk/src/share/classes/sun/nio/cs/MS1251.java +++ /dev/null @@ -1,306 +0,0 @@ -/* - * Copyright 2002-2004 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. - */ - -package sun.nio.cs; - -import java.nio.ByteBuffer; -import java.nio.CharBuffer; -import java.nio.charset.Charset; -import java.nio.charset.CharsetDecoder; -import java.nio.charset.CharsetEncoder; -import java.nio.charset.CharacterCodingException; -import java.nio.charset.MalformedInputException; -import java.nio.charset.UnmappableCharacterException; -import sun.nio.cs.StandardCharsets; -import sun.nio.cs.SingleByteDecoder; -import sun.nio.cs.SingleByteEncoder; -import sun.nio.cs.HistoricallyNamedCharset; - - -public class MS1251 - extends Charset - implements HistoricallyNamedCharset -{ - - public String historicalName() { - return "Cp1251"; - } - - public MS1251() { - super("windows-1251", StandardCharsets.aliases_MS1251); - } - - public boolean contains(Charset cs) { - return ((cs.name().equals("US-ASCII")) - || (cs instanceof MS1251)); - } - - public CharsetDecoder newDecoder() { - return new Decoder(this); - } - - public CharsetEncoder newEncoder() { - return new Encoder(this); - } - - - /** - * These accessors are temporarily supplied while sun.io - * converters co-exist with the sun.nio.cs.{ext} charset coders - * These facilitate sharing of conversion tables between the - * two co-existing implementations. When sun.io converters - * are made extinct these will be unncessary and should be removed - */ - - public String getDecoderSingleByteMappings() { - return Decoder.byteToCharTable; - - } - - public short[] getEncoderIndex1() { - return Encoder.index1; - - } - public String getEncoderIndex2() { - return Encoder.index2; - - } - - private static class Decoder extends SingleByteDecoder { - public Decoder(Charset cs) { - super(cs, byteToCharTable); - } - - private final static String byteToCharTable = - - "\u0402\u0403\u201A\u0453\u201E\u2026\u2020\u2021" + // 0x80 - 0x87 - "\u20AC\u2030\u0409\u2039\u040A\u040C\u040B\u040F" + // 0x88 - 0x8F - "\u0452\u2018\u2019\u201C\u201D\u2022\u2013\u2014" + // 0x90 - 0x97 - "\uFFFD\u2122\u0459\u203A\u045A\u045C\u045B\u045F" + // 0x98 - 0x9F - "\u00A0\u040E\u045E\u0408\u00A4\u0490\u00A6\u00A7" + // 0xA0 - 0xA7 - "\u0401\u00A9\u0404\u00AB\u00AC\u00AD\u00AE\u0407" + // 0xA8 - 0xAF - "\u00B0\u00B1\u0406\u0456\u0491\u00B5\u00B6\u00B7" + // 0xB0 - 0xB7 - "\u0451\u2116\u0454\u00BB\u0458\u0405\u0455\u0457" + // 0xB8 - 0xBF - "\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417" + // 0xC0 - 0xC7 - "\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F" + // 0xC8 - 0xCF - "\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427" + // 0xD0 - 0xD7 - "\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F" + // 0xD8 - 0xDF - "\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437" + // 0xE0 - 0xE7 - "\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F" + // 0xE8 - 0xEF - "\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447" + // 0xF0 - 0xF7 - "\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F" + // 0xF8 - 0xFF - "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007" + // 0x00 - 0x07 - "\b\t\n\u000B\f\r\u000E\u000F" + // 0x08 - 0x0F - "\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017" + // 0x10 - 0x17 - "\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F" + // 0x18 - 0x1F - "\u0020\u0021\"\u0023\u0024\u0025\u0026\'" + // 0x20 - 0x27 - "\u0028\u0029\u002A\u002B\u002C\u002D\u002E\u002F" + // 0x28 - 0x2F - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + // 0x30 - 0x37 - "\u0038\u0039\u003A\u003B\u003C\u003D\u003E\u003F" + // 0x38 - 0x3F - "\u0040\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + // 0x40 - 0x47 - "\u0048\u0049\u004A\u004B\u004C\u004D\u004E\u004F" + // 0x48 - 0x4F - "\u0050\u0051\u0052\u0053\u0054\u0055\u0056\u0057" + // 0x50 - 0x57 - "\u0058\u0059\u005A\u005B\\\u005D\u005E\u005F" + // 0x58 - 0x5F - "\u0060\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + // 0x60 - 0x67 - "\u0068\u0069\u006A\u006B\u006C\u006D\u006E\u006F" + // 0x68 - 0x6F - "\u0070\u0071\u0072\u0073\u0074\u0075\u0076\u0077" + // 0x70 - 0x77 - "\u0078\u0079\u007A\u007B\u007C\u007D\u007E\u007F"; // 0x78 - 0x7F - } - - private static class Encoder extends SingleByteEncoder { - public Encoder(Charset cs) { - super(cs, index1, index2, 0xFF00, 0x00FF, 8); - } - - private final static String index2 = - - "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007" + - "\b\t\n\u000B\f\r\u000E\u000F" + - "\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017" + - "\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F" + - "\u0020\u0021\"\u0023\u0024\u0025\u0026\'" + - "\u0028\u0029\u002A\u002B\u002C\u002D\u002E\u002F" + - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + - "\u0038\u0039\u003A\u003B\u003C\u003D\u003E\u003F" + - "\u0040\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + - "\u0048\u0049\u004A\u004B\u004C\u004D\u004E\u004F" + - "\u0050\u0051\u0052\u0053\u0054\u0055\u0056\u0057" + - "\u0058\u0059\u005A\u005B\\\u005D\u005E\u005F" + - "\u0060\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + - "\u0068\u0069\u006A\u006B\u006C\u006D\u006E\u006F" + - "\u0070\u0071\u0072\u0073\u0074\u0075\u0076\u0077" + - "\u0078\u0079\u007A\u007B\u007C\u007D\u007E\u007F" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00A0\u0000\u0000\u0000\u00A4\u0000\u00A6\u00A7" + - "\u0000\u00A9\u0000\u00AB\u00AC\u00AD\u00AE\u0000" + - "\u00B0\u00B1\u0000\u0000\u0000\u00B5\u00B6\u00B7" + - "\u0000\u0000\u0000\u00BB\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u00A8\u0080\u0081\u00AA" + - "\u00BD\u00B2\u00AF\u00A3\u008A\u008C\u008E\u008D" + - "\u0000\u00A1\u008F\u00C0\u00C1\u00C2\u00C3\u00C4" + - "\u00C5\u00C6\u00C7\u00C8\u00C9\u00CA\u00CB\u00CC" + - "\u00CD\u00CE\u00CF\u00D0\u00D1\u00D2\u00D3\u00D4" + - "\u00D5\u00D6\u00D7\u00D8\u00D9\u00DA\u00DB\u00DC" + - "\u00DD\u00DE\u00DF\u00E0\u00E1\u00E2\u00E3\u00E4" + - "\u00E5\u00E6\u00E7\u00E8\u00E9\u00EA\u00EB\u00EC" + - "\u00ED\u00EE\u00EF\u00F0\u00F1\u00F2\u00F3\u00F4" + - "\u00F5\u00F6\u00F7\u00F8\u00F9\u00FA\u00FB\u00FC" + - "\u00FD\u00FE\u00FF\u0000\u00B8\u0090\u0083\u00BA" + - "\u00BE\u00B3\u00BF\u00BC\u009A\u009C\u009E\u009D" + - "\u0000\u00A2\u009F\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u00A5\u00B4\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0096\u0097\u0000\u0000\u0000" + - "\u0091\u0092\u0082\u0000\u0093\u0094\u0084\u0000" + - "\u0086\u0087\u0095\u0000\u0000\u0000\u0085\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0089\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u008B\u009B\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0088\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00B9\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0099\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000"; - - private final static short index1[] = { - 0, 188, 188, 188, 443, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, - 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, - 680, 914, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, - 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, - 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, - 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, - 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, - 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, - 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, - 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, - 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, - 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, - 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, - 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, - 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, - 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, - }; - } -} diff --git a/jdk/src/share/classes/sun/nio/cs/MS1252.java b/jdk/src/share/classes/sun/nio/cs/MS1252.java deleted file mode 100644 index 728e7d7666e..00000000000 --- a/jdk/src/share/classes/sun/nio/cs/MS1252.java +++ /dev/null @@ -1,304 +0,0 @@ -/* - * Copyright 2000-2004 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. - */ - -package sun.nio.cs; - -import java.nio.ByteBuffer; -import java.nio.CharBuffer; -import java.nio.charset.Charset; -import java.nio.charset.CharsetDecoder; -import java.nio.charset.CharsetEncoder; -import java.nio.charset.CharacterCodingException; -import java.nio.charset.MalformedInputException; -import java.nio.charset.UnmappableCharacterException; - - -public class MS1252 - extends Charset - implements HistoricallyNamedCharset -{ - - public MS1252() { - super("windows-1252", StandardCharsets.aliases_MS1252); - } - - public String historicalName() { - return "Cp1252"; - } - - public boolean contains(Charset cs) { - return ((cs instanceof MS1252) - || (cs instanceof US_ASCII)); - } - - public CharsetDecoder newDecoder() { - return new Decoder(this); - } - - public CharsetEncoder newEncoder() { - return new Encoder(this); - } - - - /** - * These accessors are temporarily supplied while sun.io - * converters co-exist with the sun.nio.cs.{ext} charset coders - * These facilitate sharing of conversion tables between the - * two co-existing implementations. When sun.io converters - * are made extinct these will be unncessary and should be removed - */ - - public String getDecoderSingleByteMappings() { - return Decoder.byteToCharTable; - - } - - public short[] getEncoderIndex1() { - return Encoder.index1; - - } - public String getEncoderIndex2() { - return Encoder.index2; - - } - - private static class Decoder extends SingleByteDecoder { - - public Decoder(Charset cs) { - super(cs, byteToCharTable); - } - - private final static String byteToCharTable = - - "\u20AC\uFFFD\u201A\u0192\u201E\u2026\u2020\u2021" + // 0x80 - 0x87 - "\u02C6\u2030\u0160\u2039\u0152\uFFFD\u017D\uFFFD" + // 0x88 - 0x8F - "\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014" + // 0x90 - 0x97 - "\u02DC\u2122\u0161\u203A\u0153\uFFFD\u017E\u0178" + // 0x98 - 0x9F - "\u00A0\u00A1\u00A2\u00A3\u00A4\u00A5\u00A6\u00A7" + // 0xA0 - 0xA7 - "\u00A8\u00A9\u00AA\u00AB\u00AC\u00AD\u00AE\u00AF" + // 0xA8 - 0xAF - "\u00B0\u00B1\u00B2\u00B3\u00B4\u00B5\u00B6\u00B7" + // 0xB0 - 0xB7 - "\u00B8\u00B9\u00BA\u00BB\u00BC\u00BD\u00BE\u00BF" + // 0xB8 - 0xBF - "\u00C0\u00C1\u00C2\u00C3\u00C4\u00C5\u00C6\u00C7" + // 0xC0 - 0xC7 - "\u00C8\u00C9\u00CA\u00CB\u00CC\u00CD\u00CE\u00CF" + // 0xC8 - 0xCF - "\u00D0\u00D1\u00D2\u00D3\u00D4\u00D5\u00D6\u00D7" + // 0xD0 - 0xD7 - "\u00D8\u00D9\u00DA\u00DB\u00DC\u00DD\u00DE\u00DF" + // 0xD8 - 0xDF - "\u00E0\u00E1\u00E2\u00E3\u00E4\u00E5\u00E6\u00E7" + // 0xE0 - 0xE7 - "\u00E8\u00E9\u00EA\u00EB\u00EC\u00ED\u00EE\u00EF" + // 0xE8 - 0xEF - "\u00F0\u00F1\u00F2\u00F3\u00F4\u00F5\u00F6\u00F7" + // 0xF0 - 0xF7 - "\u00F8\u00F9\u00FA\u00FB\u00FC\u00FD\u00FE\u00FF" + // 0xF8 - 0xFF - "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007" + // 0x00 - 0x07 - "\b\t\n\u000B\f\r\u000E\u000F" + // 0x08 - 0x0F - "\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017" + // 0x10 - 0x17 - "\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F" + // 0x18 - 0x1F - "\u0020\u0021\"\u0023\u0024\u0025\u0026\'" + // 0x20 - 0x27 - "\u0028\u0029\u002A\u002B\u002C\u002D\u002E\u002F" + // 0x28 - 0x2F - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + // 0x30 - 0x37 - "\u0038\u0039\u003A\u003B\u003C\u003D\u003E\u003F" + // 0x38 - 0x3F - "\u0040\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + // 0x40 - 0x47 - "\u0048\u0049\u004A\u004B\u004C\u004D\u004E\u004F" + // 0x48 - 0x4F - "\u0050\u0051\u0052\u0053\u0054\u0055\u0056\u0057" + // 0x50 - 0x57 - "\u0058\u0059\u005A\u005B\\\u005D\u005E\u005F" + // 0x58 - 0x5F - "\u0060\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + // 0x60 - 0x67 - "\u0068\u0069\u006A\u006B\u006C\u006D\u006E\u006F" + // 0x68 - 0x6F - "\u0070\u0071\u0072\u0073\u0074\u0075\u0076\u0077" + // 0x70 - 0x77 - "\u0078\u0079\u007A\u007B\u007C\u007D\u007E\u007F"; // 0x78 - 0x7F - - } - - private static class Encoder extends SingleByteEncoder { - - public Encoder(Charset cs) { - super(cs, index1, index2, 0xFF00, 0x00FF, 8); - } - - private final static String index2 = - "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007" + - "\b\t\n\u000B\f\r\u000E\u000F" + - "\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017" + - "\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F" + - "\u0020\u0021\"\u0023\u0024\u0025\u0026\'" + - "\u0028\u0029\u002A\u002B\u002C\u002D\u002E\u002F" + - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + - "\u0038\u0039\u003A\u003B\u003C\u003D\u003E\u003F" + - "\u0040\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + - "\u0048\u0049\u004A\u004B\u004C\u004D\u004E\u004F" + - "\u0050\u0051\u0052\u0053\u0054\u0055\u0056\u0057" + - "\u0058\u0059\u005A\u005B\\\u005D\u005E\u005F" + - "\u0060\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + - "\u0068\u0069\u006A\u006B\u006C\u006D\u006E\u006F" + - "\u0070\u0071\u0072\u0073\u0074\u0075\u0076\u0077" + - "\u0078\u0079\u007A\u007B\u007C\u007D\u007E\u007F" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00A0\u00A1\u00A2\u00A3\u00A4\u00A5\u00A6\u00A7" + - "\u00A8\u00A9\u00AA\u00AB\u00AC\u00AD\u00AE\u00AF" + - "\u00B0\u00B1\u00B2\u00B3\u00B4\u00B5\u00B6\u00B7" + - "\u00B8\u00B9\u00BA\u00BB\u00BC\u00BD\u00BE\u00BF" + - "\u00C0\u00C1\u00C2\u00C3\u00C4\u00C5\u00C6\u00C7" + - "\u00C8\u00C9\u00CA\u00CB\u00CC\u00CD\u00CE\u00CF" + - "\u00D0\u00D1\u00D2\u00D3\u00D4\u00D5\u00D6\u00D7" + - "\u00D8\u00D9\u00DA\u00DB\u00DC\u00DD\u00DE\u00DF" + - "\u00E0\u00E1\u00E2\u00E3\u00E4\u00E5\u00E6\u00E7" + - "\u00E8\u00E9\u00EA\u00EB\u00EC\u00ED\u00EE\u00EF" + - "\u00F0\u00F1\u00F2\u00F3\u00F4\u00F5\u00F6\u00F7" + - "\u00F8\u00F9\u00FA\u00FB\u00FC\u00FD\u00FE\u00FF" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u008C\u009C\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u008A\u009A\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u009F\u0000\u0000\u0000\u0000\u008E\u009E\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0083\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0088\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0098\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0096\u0097\u0000" + - "\u0000\u0000\u0091\u0092\u0082\u0000\u0093\u0094" + - "\u0084\u0000\u0086\u0087\u0095\u0000\u0000\u0000" + - "\u0085\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0089\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u008B\u009B\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0080\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0099\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"; - - private final static short index1[] = { - 0, 256, 461, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 698, 920, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - }; - } -} diff --git a/jdk/src/share/classes/sun/nio/cs/MS1253.java b/jdk/src/share/classes/sun/nio/cs/MS1253.java deleted file mode 100644 index 41078f96a25..00000000000 --- a/jdk/src/share/classes/sun/nio/cs/MS1253.java +++ /dev/null @@ -1,303 +0,0 @@ -/* - * Copyright 2002-2004 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. - */ - -package sun.nio.cs; - -import java.nio.ByteBuffer; -import java.nio.CharBuffer; -import java.nio.charset.Charset; -import java.nio.charset.CharsetDecoder; -import java.nio.charset.CharsetEncoder; -import java.nio.charset.CharacterCodingException; -import java.nio.charset.MalformedInputException; -import java.nio.charset.UnmappableCharacterException; -import sun.nio.cs.StandardCharsets; -import sun.nio.cs.SingleByteDecoder; -import sun.nio.cs.SingleByteEncoder; -import sun.nio.cs.HistoricallyNamedCharset; - - -public class MS1253 - extends Charset - implements HistoricallyNamedCharset -{ - - public String historicalName() { - return "Cp1253"; - } - - public MS1253() { - super("windows-1253", StandardCharsets.aliases_MS1253); - } - - public boolean contains(Charset cs) { - return ((cs.name().equals("US-ASCII")) - || (cs instanceof MS1253)); - } - - public CharsetDecoder newDecoder() { - return new Decoder(this); - } - - public CharsetEncoder newEncoder() { - return new Encoder(this); - } - - - /** - * These accessors are temporarily supplied while sun.io - * converters co-exist with the sun.nio.cs.{ext} charset coders - * These facilitate sharing of conversion tables between the - * two co-existing implementations. When sun.io converters - * are made extinct these will be unncessary and should be removed - */ - - public String getDecoderSingleByteMappings() { - return Decoder.byteToCharTable; - - } - - public short[] getEncoderIndex1() { - return Encoder.index1; - - } - public String getEncoderIndex2() { - return Encoder.index2; - - } - private static class Decoder extends SingleByteDecoder { - public Decoder(Charset cs) { - super(cs, byteToCharTable); - } - - private final static String byteToCharTable = - - "\u20AC\uFFFD\u201A\u0192\u201E\u2026\u2020\u2021" + // 0x80 - 0x87 - "\uFFFD\u2030\uFFFD\u2039\uFFFD\uFFFD\uFFFD\uFFFD" + // 0x88 - 0x8F - "\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014" + // 0x90 - 0x97 - "\uFFFD\u2122\uFFFD\u203A\uFFFD\uFFFD\uFFFD\uFFFD" + // 0x98 - 0x9F - "\u00A0\u0385\u0386\u00A3\u00A4\u00A5\u00A6\u00A7" + // 0xA0 - 0xA7 - "\u00A8\u00A9\uFFFD\u00AB\u00AC\u00AD\u00AE\u2015" + // 0xA8 - 0xAF - "\u00B0\u00B1\u00B2\u00B3\u0384\u00B5\u00B6\u00B7" + // 0xB0 - 0xB7 - "\u0388\u0389\u038A\u00BB\u038C\u00BD\u038E\u038F" + // 0xB8 - 0xBF - "\u0390\u0391\u0392\u0393\u0394\u0395\u0396\u0397" + // 0xC0 - 0xC7 - "\u0398\u0399\u039A\u039B\u039C\u039D\u039E\u039F" + // 0xC8 - 0xCF - "\u03A0\u03A1\uFFFD\u03A3\u03A4\u03A5\u03A6\u03A7" + // 0xD0 - 0xD7 - "\u03A8\u03A9\u03AA\u03AB\u03AC\u03AD\u03AE\u03AF" + // 0xD8 - 0xDF - "\u03B0\u03B1\u03B2\u03B3\u03B4\u03B5\u03B6\u03B7" + // 0xE0 - 0xE7 - "\u03B8\u03B9\u03BA\u03BB\u03BC\u03BD\u03BE\u03BF" + // 0xE8 - 0xEF - "\u03C0\u03C1\u03C2\u03C3\u03C4\u03C5\u03C6\u03C7" + // 0xF0 - 0xF7 - "\u03C8\u03C9\u03CA\u03CB\u03CC\u03CD\u03CE\uFFFD" + // 0xF8 - 0xFF - "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007" + // 0x00 - 0x07 - "\b\t\n\u000B\f\r\u000E\u000F" + // 0x08 - 0x0F - "\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017" + // 0x10 - 0x17 - "\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F" + // 0x18 - 0x1F - "\u0020\u0021\"\u0023\u0024\u0025\u0026\'" + // 0x20 - 0x27 - "\u0028\u0029\u002A\u002B\u002C\u002D\u002E\u002F" + // 0x28 - 0x2F - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + // 0x30 - 0x37 - "\u0038\u0039\u003A\u003B\u003C\u003D\u003E\u003F" + // 0x38 - 0x3F - "\u0040\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + // 0x40 - 0x47 - "\u0048\u0049\u004A\u004B\u004C\u004D\u004E\u004F" + // 0x48 - 0x4F - "\u0050\u0051\u0052\u0053\u0054\u0055\u0056\u0057" + // 0x50 - 0x57 - "\u0058\u0059\u005A\u005B\\\u005D\u005E\u005F" + // 0x58 - 0x5F - "\u0060\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + // 0x60 - 0x67 - "\u0068\u0069\u006A\u006B\u006C\u006D\u006E\u006F" + // 0x68 - 0x6F - "\u0070\u0071\u0072\u0073\u0074\u0075\u0076\u0077" + // 0x70 - 0x77 - "\u0078\u0079\u007A\u007B\u007C\u007D\u007E\u007F"; // 0x78 - 0x7F - } - - private static class Encoder extends SingleByteEncoder { - public Encoder(Charset cs) { - super(cs, index1, index2, 0xFF00, 0x00FF, 8); - } - private final static String index2 = - "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007" + - "\b\t\n\u000B\f\r\u000E\u000F" + - "\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017" + - "\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F" + - "\u0020\u0021\"\u0023\u0024\u0025\u0026\'" + - "\u0028\u0029\u002A\u002B\u002C\u002D\u002E\u002F" + - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + - "\u0038\u0039\u003A\u003B\u003C\u003D\u003E\u003F" + - "\u0040\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + - "\u0048\u0049\u004A\u004B\u004C\u004D\u004E\u004F" + - "\u0050\u0051\u0052\u0053\u0054\u0055\u0056\u0057" + - "\u0058\u0059\u005A\u005B\\\u005D\u005E\u005F" + - "\u0060\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + - "\u0068\u0069\u006A\u006B\u006C\u006D\u006E\u006F" + - "\u0070\u0071\u0072\u0073\u0074\u0075\u0076\u0077" + - "\u0078\u0079\u007A\u007B\u007C\u007D\u007E\u007F" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00A0\u0000\u0000\u00A3\u00A4\u00A5\u00A6\u00A7" + - "\u00A8\u00A9\u0000\u00AB\u00AC\u00AD\u00AE\u0000" + - "\u00B0\u00B1\u00B2\u00B3\u0000\u00B5\u00B6\u00B7" + - "\u0000\u0000\u0000\u00BB\u0000\u00BD\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0083\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u00B4\u00A1\u00A2\u0000\u00B8\u00B9\u00BA" + - "\u0000\u00BC\u0000\u00BE\u00BF\u00C0\u00C1\u00C2" + - "\u00C3\u00C4\u00C5\u00C6\u00C7\u00C8\u00C9\u00CA" + - "\u00CB\u00CC\u00CD\u00CE\u00CF\u00D0\u00D1\u0000" + - "\u00D3\u00D4\u00D5\u00D6\u00D7\u00D8\u00D9\u00DA" + - "\u00DB\u00DC\u00DD\u00DE\u00DF\u00E0\u00E1\u00E2" + - "\u00E3\u00E4\u00E5\u00E6\u00E7\u00E8\u00E9\u00EA" + - "\u00EB\u00EC\u00ED\u00EE\u00EF\u00F0\u00F1\u00F2" + - "\u00F3\u00F4\u00F5\u00F6\u00F7\u00F8\u00F9\u00FA" + - "\u00FB\u00FC\u00FD\u00FE\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0096\u0097\u00AF" + - "\u0000\u0000\u0091\u0092\u0082\u0000\u0093\u0094" + - "\u0084\u0000\u0086\u0087\u0095\u0000\u0000\u0000" + - "\u0085\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0089\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u008B\u009B\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0080\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0099\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"; - - private final static short index1[] = { - 0, 190, 337, 461, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, - 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, - 698, 920, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, - 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, - 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, - 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, - 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, - 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, - 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, - 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, - 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, - 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, - 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, - 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, - 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, - 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, - }; - } -} diff --git a/jdk/src/share/classes/sun/nio/cs/MS1254.java b/jdk/src/share/classes/sun/nio/cs/MS1254.java deleted file mode 100644 index d542d706675..00000000000 --- a/jdk/src/share/classes/sun/nio/cs/MS1254.java +++ /dev/null @@ -1,305 +0,0 @@ -/* - * Copyright 2002-2004 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. - */ - -package sun.nio.cs; - -import java.nio.ByteBuffer; -import java.nio.CharBuffer; -import java.nio.charset.Charset; -import java.nio.charset.CharsetDecoder; -import java.nio.charset.CharsetEncoder; -import java.nio.charset.CharacterCodingException; -import java.nio.charset.MalformedInputException; -import java.nio.charset.UnmappableCharacterException; -import sun.nio.cs.StandardCharsets; -import sun.nio.cs.SingleByteDecoder; -import sun.nio.cs.SingleByteEncoder; -import sun.nio.cs.HistoricallyNamedCharset; - - -public class MS1254 - extends Charset - implements HistoricallyNamedCharset -{ - - public String historicalName() { - return "Cp1254"; - } - - public MS1254() { - super("windows-1254", StandardCharsets.aliases_MS1254); - } - - public boolean contains(Charset cs) { - return ((cs.name().equals("US-ASCII")) - || (cs instanceof MS1254)); - } - - public CharsetDecoder newDecoder() { - return new Decoder(this); - } - - public CharsetEncoder newEncoder() { - return new Encoder(this); - } - - - /** - * These accessors are temporarily supplied while sun.io - * converters co-exist with the sun.nio.cs.{ext} charset coders - * These facilitate sharing of conversion tables between the - * two co-existing implementations. When sun.io converters - * are made extinct these will be unncessary and should be removed - */ - - public String getDecoderSingleByteMappings() { - return Decoder.byteToCharTable; - - } - - public short[] getEncoderIndex1() { - return Encoder.index1; - - } - public String getEncoderIndex2() { - return Encoder.index2; - - } - - private static class Decoder extends SingleByteDecoder { - public Decoder(Charset cs) { - super(cs, byteToCharTable); - } - - private final static String byteToCharTable = - - "\u20AC\uFFFD\u201A\u0192\u201E\u2026\u2020\u2021" + // 0x80 - 0x87 - "\u02C6\u2030\u0160\u2039\u0152\uFFFD\uFFFD\uFFFD" + // 0x88 - 0x8F - "\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014" + // 0x90 - 0x97 - "\u02DC\u2122\u0161\u203A\u0153\uFFFD\uFFFD\u0178" + // 0x98 - 0x9F - "\u00A0\u00A1\u00A2\u00A3\u00A4\u00A5\u00A6\u00A7" + // 0xA0 - 0xA7 - "\u00A8\u00A9\u00AA\u00AB\u00AC\u00AD\u00AE\u00AF" + // 0xA8 - 0xAF - "\u00B0\u00B1\u00B2\u00B3\u00B4\u00B5\u00B6\u00B7" + // 0xB0 - 0xB7 - "\u00B8\u00B9\u00BA\u00BB\u00BC\u00BD\u00BE\u00BF" + // 0xB8 - 0xBF - "\u00C0\u00C1\u00C2\u00C3\u00C4\u00C5\u00C6\u00C7" + // 0xC0 - 0xC7 - "\u00C8\u00C9\u00CA\u00CB\u00CC\u00CD\u00CE\u00CF" + // 0xC8 - 0xCF - "\u011E\u00D1\u00D2\u00D3\u00D4\u00D5\u00D6\u00D7" + // 0xD0 - 0xD7 - "\u00D8\u00D9\u00DA\u00DB\u00DC\u0130\u015E\u00DF" + // 0xD8 - 0xDF - "\u00E0\u00E1\u00E2\u00E3\u00E4\u00E5\u00E6\u00E7" + // 0xE0 - 0xE7 - "\u00E8\u00E9\u00EA\u00EB\u00EC\u00ED\u00EE\u00EF" + // 0xE8 - 0xEF - "\u011F\u00F1\u00F2\u00F3\u00F4\u00F5\u00F6\u00F7" + // 0xF0 - 0xF7 - "\u00F8\u00F9\u00FA\u00FB\u00FC\u0131\u015F\u00FF" + // 0xF8 - 0xFF - "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007" + // 0x00 - 0x07 - "\b\t\n\u000B\f\r\u000E\u000F" + // 0x08 - 0x0F - "\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017" + // 0x10 - 0x17 - "\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F" + // 0x18 - 0x1F - "\u0020\u0021\"\u0023\u0024\u0025\u0026\'" + // 0x20 - 0x27 - "\u0028\u0029\u002A\u002B\u002C\u002D\u002E\u002F" + // 0x28 - 0x2F - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + // 0x30 - 0x37 - "\u0038\u0039\u003A\u003B\u003C\u003D\u003E\u003F" + // 0x38 - 0x3F - "\u0040\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + // 0x40 - 0x47 - "\u0048\u0049\u004A\u004B\u004C\u004D\u004E\u004F" + // 0x48 - 0x4F - "\u0050\u0051\u0052\u0053\u0054\u0055\u0056\u0057" + // 0x50 - 0x57 - "\u0058\u0059\u005A\u005B\\\u005D\u005E\u005F" + // 0x58 - 0x5F - "\u0060\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + // 0x60 - 0x67 - "\u0068\u0069\u006A\u006B\u006C\u006D\u006E\u006F" + // 0x68 - 0x6F - "\u0070\u0071\u0072\u0073\u0074\u0075\u0076\u0077" + // 0x70 - 0x77 - "\u0078\u0079\u007A\u007B\u007C\u007D\u007E\u007F"; // 0x78 - 0x7F - } - - private static class Encoder extends SingleByteEncoder { - public Encoder(Charset cs) { - super(cs, index1, index2, 0xFF00, 0x00FF, 8); - } - private final static String index2 = - - "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007" + - "\b\t\n\u000B\f\r\u000E\u000F" + - "\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017" + - "\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F" + - "\u0020\u0021\"\u0023\u0024\u0025\u0026\'" + - "\u0028\u0029\u002A\u002B\u002C\u002D\u002E\u002F" + - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + - "\u0038\u0039\u003A\u003B\u003C\u003D\u003E\u003F" + - "\u0040\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + - "\u0048\u0049\u004A\u004B\u004C\u004D\u004E\u004F" + - "\u0050\u0051\u0052\u0053\u0054\u0055\u0056\u0057" + - "\u0058\u0059\u005A\u005B\\\u005D\u005E\u005F" + - "\u0060\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + - "\u0068\u0069\u006A\u006B\u006C\u006D\u006E\u006F" + - "\u0070\u0071\u0072\u0073\u0074\u0075\u0076\u0077" + - "\u0078\u0079\u007A\u007B\u007C\u007D\u007E\u007F" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00A0\u00A1\u00A2\u00A3\u00A4\u00A5\u00A6\u00A7" + - "\u00A8\u00A9\u00AA\u00AB\u00AC\u00AD\u00AE\u00AF" + - "\u00B0\u00B1\u00B2\u00B3\u00B4\u00B5\u00B6\u00B7" + - "\u00B8\u00B9\u00BA\u00BB\u00BC\u00BD\u00BE\u00BF" + - "\u00C0\u00C1\u00C2\u00C3\u00C4\u00C5\u00C6\u00C7" + - "\u00C8\u00C9\u00CA\u00CB\u00CC\u00CD\u00CE\u00CF" + - "\u0000\u00D1\u00D2\u00D3\u00D4\u00D5\u00D6\u00D7" + - "\u00D8\u00D9\u00DA\u00DB\u00DC\u0000\u0000\u00DF" + - "\u00E0\u00E1\u00E2\u00E3\u00E4\u00E5\u00E6\u00E7" + - "\u00E8\u00E9\u00EA\u00EB\u00EC\u00ED\u00EE\u00EF" + - "\u0000\u00F1\u00F2\u00F3\u00F4\u00F5\u00F6\u00F7" + - "\u00F8\u00F9\u00FA\u00FB\u00FC\u0000\u0000\u00FF" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u00D0\u00F0" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00DD\u00FD\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u008C\u009C\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u00DE\u00FE" + - "\u008A\u009A\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u009F\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0083\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0088\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0098\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0096\u0097\u0000" + - "\u0000\u0000\u0091\u0092\u0082\u0000\u0093\u0094" + - "\u0084\u0000\u0086\u0087\u0095\u0000\u0000\u0000" + - "\u0085\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0089\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u008B\u009B\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0080\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0099\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"; - - private final static short index1[] = { - 0, 256, 461, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 698, 920, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - }; - } -} diff --git a/jdk/src/share/classes/sun/nio/cs/MS1257.java b/jdk/src/share/classes/sun/nio/cs/MS1257.java deleted file mode 100644 index 00f5dc9d287..00000000000 --- a/jdk/src/share/classes/sun/nio/cs/MS1257.java +++ /dev/null @@ -1,304 +0,0 @@ -/* - * Copyright 2002-2004 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. - */ - -package sun.nio.cs; - -import java.nio.ByteBuffer; -import java.nio.CharBuffer; -import java.nio.charset.Charset; -import java.nio.charset.CharsetDecoder; -import java.nio.charset.CharsetEncoder; -import java.nio.charset.CharacterCodingException; -import java.nio.charset.MalformedInputException; -import java.nio.charset.UnmappableCharacterException; -import sun.nio.cs.StandardCharsets; -import sun.nio.cs.SingleByteDecoder; -import sun.nio.cs.SingleByteEncoder; -import sun.nio.cs.HistoricallyNamedCharset; - - -public class MS1257 - extends Charset - implements HistoricallyNamedCharset -{ - - public String historicalName() { - return "Cp1257"; - } - - public MS1257() { - super("windows-1257", StandardCharsets.aliases_MS1257); - } - - public boolean contains(Charset cs) { - return ((cs.name().equals("US-ASCII")) - || (cs instanceof MS1257)); - } - - public CharsetDecoder newDecoder() { - return new Decoder(this); - } - - public CharsetEncoder newEncoder() { - return new Encoder(this); - } - - - /** - * These accessors are temporarily supplied while sun.io - * converters co-exist with the sun.nio.cs.{ext} charset coders - * These facilitate sharing of conversion tables between the - * two co-existing implementations. When sun.io converters - * are made extinct these will be unncessary and should be removed - */ - - public String getDecoderSingleByteMappings() { - return Decoder.byteToCharTable; - - } - - public short[] getEncoderIndex1() { - return Encoder.index1; - - } - public String getEncoderIndex2() { - return Encoder.index2; - - } - - private static class Decoder extends SingleByteDecoder { - public Decoder(Charset cs) { - super(cs, byteToCharTable); - } - - private final static String byteToCharTable = - - "\u20AC\uFFFD\u201A\uFFFD\u201E\u2026\u2020\u2021" + // 0x80 - 0x87 - "\uFFFD\u2030\uFFFD\u2039\uFFFD\u00A8\u02C7\u00B8" + // 0x88 - 0x8F - "\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014" + // 0x90 - 0x97 - "\uFFFD\u2122\uFFFD\u203A\uFFFD\u00AF\u02DB\uFFFD" + // 0x98 - 0x9F - "\u00A0\uFFFD\u00A2\u00A3\u00A4\uFFFD\u00A6\u00A7" + // 0xA0 - 0xA7 - "\u00D8\u00A9\u0156\u00AB\u00AC\u00AD\u00AE\u00C6" + // 0xA8 - 0xAF - "\u00B0\u00B1\u00B2\u00B3\u00B4\u00B5\u00B6\u00B7" + // 0xB0 - 0xB7 - "\u00F8\u00B9\u0157\u00BB\u00BC\u00BD\u00BE\u00E6" + // 0xB8 - 0xBF - "\u0104\u012E\u0100\u0106\u00C4\u00C5\u0118\u0112" + // 0xC0 - 0xC7 - "\u010C\u00C9\u0179\u0116\u0122\u0136\u012A\u013B" + // 0xC8 - 0xCF - "\u0160\u0143\u0145\u00D3\u014C\u00D5\u00D6\u00D7" + // 0xD0 - 0xD7 - "\u0172\u0141\u015A\u016A\u00DC\u017B\u017D\u00DF" + // 0xD8 - 0xDF - "\u0105\u012F\u0101\u0107\u00E4\u00E5\u0119\u0113" + // 0xE0 - 0xE7 - "\u010D\u00E9\u017A\u0117\u0123\u0137\u012B\u013C" + // 0xE8 - 0xEF - "\u0161\u0144\u0146\u00F3\u014D\u00F5\u00F6\u00F7" + // 0xF0 - 0xF7 - "\u0173\u0142\u015B\u016B\u00FC\u017C\u017E\u02D9" + // 0xF8 - 0xFF - "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007" + // 0x00 - 0x07 - "\b\t\n\u000B\f\r\u000E\u000F" + // 0x08 - 0x0F - "\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017" + // 0x10 - 0x17 - "\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F" + // 0x18 - 0x1F - "\u0020\u0021\"\u0023\u0024\u0025\u0026\'" + // 0x20 - 0x27 - "\u0028\u0029\u002A\u002B\u002C\u002D\u002E\u002F" + // 0x28 - 0x2F - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + // 0x30 - 0x37 - "\u0038\u0039\u003A\u003B\u003C\u003D\u003E\u003F" + // 0x38 - 0x3F - "\u0040\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + // 0x40 - 0x47 - "\u0048\u0049\u004A\u004B\u004C\u004D\u004E\u004F" + // 0x48 - 0x4F - "\u0050\u0051\u0052\u0053\u0054\u0055\u0056\u0057" + // 0x50 - 0x57 - "\u0058\u0059\u005A\u005B\\\u005D\u005E\u005F" + // 0x58 - 0x5F - "\u0060\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + // 0x60 - 0x67 - "\u0068\u0069\u006A\u006B\u006C\u006D\u006E\u006F" + // 0x68 - 0x6F - "\u0070\u0071\u0072\u0073\u0074\u0075\u0076\u0077" + // 0x70 - 0x77 - "\u0078\u0079\u007A\u007B\u007C\u007D\u007E\u007F"; // 0x78 - 0x7F - } - - private static class Encoder extends SingleByteEncoder { - public Encoder(Charset cs) { - super(cs, index1, index2, 0xFF00, 0x00FF, 8); - } - - private final static String index2 = - - "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007" + - "\b\t\n\u000B\f\r\u000E\u000F" + - "\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017" + - "\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F" + - "\u0020\u0021\"\u0023\u0024\u0025\u0026\'" + - "\u0028\u0029\u002A\u002B\u002C\u002D\u002E\u002F" + - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + - "\u0038\u0039\u003A\u003B\u003C\u003D\u003E\u003F" + - "\u0040\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + - "\u0048\u0049\u004A\u004B\u004C\u004D\u004E\u004F" + - "\u0050\u0051\u0052\u0053\u0054\u0055\u0056\u0057" + - "\u0058\u0059\u005A\u005B\\\u005D\u005E\u005F" + - "\u0060\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + - "\u0068\u0069\u006A\u006B\u006C\u006D\u006E\u006F" + - "\u0070\u0071\u0072\u0073\u0074\u0075\u0076\u0077" + - "\u0078\u0079\u007A\u007B\u007C\u007D\u007E\u007F" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00A0\u0000\u00A2\u00A3\u00A4\u0000\u00A6\u00A7" + - "\u008D\u00A9\u0000\u00AB\u00AC\u00AD\u00AE\u009D" + - "\u00B0\u00B1\u00B2\u00B3\u00B4\u00B5\u00B6\u00B7" + - "\u008F\u00B9\u0000\u00BB\u00BC\u00BD\u00BE\u0000" + - "\u0000\u0000\u0000\u0000\u00C4\u00C5\u00AF\u0000" + - "\u0000\u00C9\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u00D3\u0000\u00D5\u00D6\u00D7" + - "\u00A8\u0000\u0000\u0000\u00DC\u0000\u0000\u00DF" + - "\u0000\u0000\u0000\u0000\u00E4\u00E5\u00BF\u0000" + - "\u0000\u00E9\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u00F3\u0000\u00F5\u00F6\u00F7" + - "\u00B8\u0000\u0000\u0000\u00FC\u0000\u0000\u0000" + - "\u00C2\u00E2\u0000\u0000\u00C0\u00E0\u00C3\u00E3" + - "\u0000\u0000\u0000\u0000\u00C8\u00E8\u0000\u0000" + - "\u0000\u0000\u00C7\u00E7\u0000\u0000\u00CB\u00EB" + - "\u00C6\u00E6\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u00CC\u00EC\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u00CE\u00EE\u0000\u0000\u00C1\u00E1" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u00CD\u00ED" + - "\u0000\u0000\u0000\u00CF\u00EF\u0000\u0000\u0000" + - "\u0000\u00D9\u00F9\u00D1\u00F1\u00D2\u00F2\u0000" + - "\u0000\u0000\u0000\u0000\u00D4\u00F4\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u00AA\u00BA" + - "\u0000\u0000\u00DA\u00FA\u0000\u0000\u0000\u0000" + - "\u00D0\u00F0\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u00DB\u00FB\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u00D8\u00F8\u0000\u0000\u0000\u0000" + - "\u0000\u00CA\u00EA\u00DD\u00FD\u00DE\u00FE\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u008E" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u00FF\u0000\u009E\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0096\u0097\u0000\u0000\u0000\u0091\u0092\u0082" + - "\u0000\u0093\u0094\u0084\u0000\u0086\u0087\u0095" + - "\u0000\u0000\u0000\u0085\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0089\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u008B\u009B" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0080\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0099\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000"; - - private final static short index1[] = { - 0, 256, 440, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 677, 899, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - }; - } -} diff --git a/jdk/src/share/classes/sun/nio/cs/SingleByte.java b/jdk/src/share/classes/sun/nio/cs/SingleByte.java new file mode 100644 index 00000000000..fdbf4e3c643 --- /dev/null +++ b/jdk/src/share/classes/sun/nio/cs/SingleByte.java @@ -0,0 +1,241 @@ +/* + * Copyright 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. + */ + +package sun.nio.cs; + +import java.nio.Buffer; +import java.nio.ByteBuffer; +import java.nio.CharBuffer; +import java.nio.charset.Charset; +import java.nio.charset.CharsetDecoder; +import java.nio.charset.CharsetEncoder; +import java.nio.charset.CoderResult; +import static sun.nio.cs.CharsetMapping.*; + +public class SingleByte +{ + private static final CoderResult withResult(CoderResult cr, + Buffer src, int sp, + Buffer dst, int dp) + { + src.position(sp - src.arrayOffset()); + dst.position(dp - dst.arrayOffset()); + return cr; + } + + public static class Decoder extends CharsetDecoder { + private final char[] b2c; + + public Decoder(Charset cs, char[] b2c) { + super(cs, 1.0f, 1.0f); + this.b2c = b2c; + } + + private CoderResult decodeArrayLoop(ByteBuffer src, CharBuffer dst) { + byte[] sa = src.array(); + int sp = src.arrayOffset() + src.position(); + int sl = src.arrayOffset() + src.limit(); + + char[] da = dst.array(); + int dp = dst.arrayOffset() + dst.position(); + int dl = dst.arrayOffset() + dst.limit(); + + CoderResult cr = CoderResult.UNDERFLOW; + if ((dl - dp) < (sl - sp)) { + sl = sp + (dl - dp); + cr = CoderResult.OVERFLOW; + } + + while (sp < sl) { + char c = decode(sa[sp]); + if (c == UNMAPPABLE_DECODING) { + return withResult(CoderResult.unmappableForLength(1), + src, sp, dst, dp); + } + da[dp++] = c; + sp++; + } + return withResult(cr, src, sp, dst, dp); + } + + private CoderResult decodeBufferLoop(ByteBuffer src, CharBuffer dst) { + int mark = src.position(); + try { + while (src.hasRemaining()) { + char c = decode(src.get()); + if (c == UNMAPPABLE_DECODING) + return CoderResult.unmappableForLength(1); + if (!dst.hasRemaining()) + return CoderResult.OVERFLOW; + dst.put(c); + mark++; + } + return CoderResult.UNDERFLOW; + } finally { + src.position(mark); + } + } + + protected CoderResult decodeLoop(ByteBuffer src, CharBuffer dst) { + if (src.hasArray() && dst.hasArray()) + return decodeArrayLoop(src, dst); + else + return decodeBufferLoop(src, dst); + } + + private final char decode(int b) { + return b2c[b + 128]; + } + } + + public static class Encoder extends CharsetEncoder { + private Surrogate.Parser sgp; + private final char[] c2b; + private final char[] c2bIndex; + + public Encoder(Charset cs, char[] c2b, char[] c2bIndex) { + super(cs, 1.0f, 1.0f); + this.c2b = c2b; + this.c2bIndex = c2bIndex; + } + + public boolean canEncode(char c) { + return encode(c) != UNMAPPABLE_ENCODING; + } + + private CoderResult encodeArrayLoop(CharBuffer src, ByteBuffer dst) { + char[] sa = src.array(); + int sp = src.arrayOffset() + src.position(); + int sl = src.arrayOffset() + src.limit(); + + byte[] da = dst.array(); + int dp = dst.arrayOffset() + dst.position(); + int dl = dst.arrayOffset() + dst.limit(); + + CoderResult cr = CoderResult.UNDERFLOW; + if ((dl - dp) < (sl - sp)) { + sl = sp + (dl - dp); + cr = CoderResult.OVERFLOW; + } + + while (sp < sl) { + char c = sa[sp]; + int b = encode(c); + if (b == UNMAPPABLE_ENCODING) { + if (Surrogate.is(c)) { + if (sgp == null) + sgp = new Surrogate.Parser(); + if (sgp.parse(c, sa, sp, sl) < 0) + return withResult(sgp.error(), src, sp, dst, dp); + return withResult(sgp.unmappableResult(), src, sp, dst, dp); + } + return withResult(CoderResult.unmappableForLength(1), + src, sp, dst, dp); + } + da[dp++] = (byte)b; + sp++; + } + return withResult(cr, src, sp, dst, dp); + } + + private CoderResult encodeBufferLoop(CharBuffer src, ByteBuffer dst) { + int mark = src.position(); + try { + while (src.hasRemaining()) { + char c = src.get(); + int b = encode(c); + if (b == UNMAPPABLE_ENCODING) { + if (Surrogate.is(c)) { + if (sgp == null) + sgp = new Surrogate.Parser(); + if (sgp.parse(c, src) < 0) + return sgp.error(); + return sgp.unmappableResult(); + } + return CoderResult.unmappableForLength(1); + } + if (!dst.hasRemaining()) + return CoderResult.OVERFLOW; + dst.put((byte)b); + mark++; + } + return CoderResult.UNDERFLOW; + } finally { + src.position(mark); + } + } + + protected CoderResult encodeLoop(CharBuffer src, ByteBuffer dst) { + if (src.hasArray() && dst.hasArray()) + return encodeArrayLoop(src, dst); + else + return encodeBufferLoop(src, dst); + } + + private final int encode(char ch) { + char index = c2bIndex[ch >> 8]; + if (index == UNMAPPABLE_ENCODING) + return UNMAPPABLE_ENCODING; + return c2b[index + (ch & 0xff)]; + } + } + + // init the c2b and c2bIndex tables from b2c. + public static void initC2B(char[] b2c, char[] c2bNR, + char[] c2b, char[] c2bIndex) { + for (int i = 0; i < c2bIndex.length; i++) + c2bIndex[i] = UNMAPPABLE_ENCODING; + for (int i = 0; i < c2b.length; i++) + c2b[i] = UNMAPPABLE_ENCODING; + int off = 0; + for (int i = 0; i < b2c.length; i++) { + char c = b2c[i]; + if (c == UNMAPPABLE_DECODING) + continue; + int index = (c >> 8); + if (c2bIndex[index] == UNMAPPABLE_ENCODING) { + c2bIndex[index] = (char)off; + off += 0x100; + } + index = c2bIndex[index] + (c & 0xff); + c2b[index] = (char)((i>=0x80)?(i-0x80):(i+0x80)); + } + if (c2bNR != null) { + // c-->b nr entries + int i = 0; + while (i < c2bNR.length) { + char b = c2bNR[i++]; + char c = c2bNR[i++]; + int index = (c >> 8); + if (c2bIndex[index] == UNMAPPABLE_ENCODING) { + c2bIndex[index] = (char)off; + off += 0x100; + } + index = c2bIndex[index] + (c & 0xff); + c2b[index] = b; + } + } + } +} diff --git a/jdk/src/share/classes/sun/nio/cs/ext/IBM037.java b/jdk/src/share/classes/sun/nio/cs/ext/IBM037.java deleted file mode 100644 index 0de335fd40c..00000000000 --- a/jdk/src/share/classes/sun/nio/cs/ext/IBM037.java +++ /dev/null @@ -1,221 +0,0 @@ - -/* - * Copyright 2003-2004 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. - */ - -package sun.nio.cs.ext; - - -import java.nio.charset.Charset; -import java.nio.charset.CharsetDecoder; -import java.nio.charset.CharsetEncoder; -import sun.nio.cs.StandardCharsets; -import sun.nio.cs.SingleByteDecoder; -import sun.nio.cs.SingleByteEncoder; -import sun.nio.cs.HistoricallyNamedCharset; - -public class IBM037 - extends Charset - implements HistoricallyNamedCharset -{ - - public IBM037() { - super("IBM037", ExtendedCharsets.aliasesFor("IBM037")); - } - - public String historicalName() { - return "Cp037"; - } - - public boolean contains(Charset cs) { - return (cs instanceof IBM037); - } - - public CharsetDecoder newDecoder() { - return new Decoder(this); - } - - public CharsetEncoder newEncoder() { - return new Encoder(this); - } - - - /** - * These accessors are temporarily supplied while sun.io - * converters co-exist with the sun.nio.cs.{ext} charset coders - * These facilitate sharing of conversion tables between the - * two co-existing implementations. When sun.io converters - * are made extinct these will be unncessary and should be removed - */ - - public String getDecoderSingleByteMappings() { - return Decoder.byteToCharTable; - - } - - public short[] getEncoderIndex1() { - return Encoder.index1; - - } - public String getEncoderIndex2() { - return Encoder.index2; - - } - - protected static class Decoder extends SingleByteDecoder { - public Decoder(Charset cs) { - super(cs, byteToCharTable); - } - - private final static String byteToCharTable = - - "\u00D8\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + // 0x80 - 0x87 - "\u0068\u0069\u00AB\u00BB\u00F0\u00FD\u00FE\u00B1" + // 0x88 - 0x8F - "\u00B0\u006A\u006B\u006C\u006D\u006E\u006F\u0070" + // 0x90 - 0x97 - "\u0071\u0072\u00AA\u00BA\u00E6\u00B8\u00C6\u00A4" + // 0x98 - 0x9F - "\u00B5\u007E\u0073\u0074\u0075\u0076\u0077\u0078" + // 0xA0 - 0xA7 - "\u0079\u007A\u00A1\u00BF\u00D0\u00DD\u00DE\u00AE" + // 0xA8 - 0xAF - "\u005E\u00A3\u00A5\u00B7\u00A9\u00A7\u00B6\u00BC" + // 0xB0 - 0xB7 - "\u00BD\u00BE\u005B\u005D\u00AF\u00A8\u00B4\u00D7" + // 0xB8 - 0xBF - "\u007B\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + // 0xC0 - 0xC7 - "\u0048\u0049\u00AD\u00F4\u00F6\u00F2\u00F3\u00F5" + // 0xC8 - 0xCF - "\u007D\u004A\u004B\u004C\u004D\u004E\u004F\u0050" + // 0xD0 - 0xD7 - "\u0051\u0052\u00B9\u00FB\u00FC\u00F9\u00FA\u00FF" + // 0xD8 - 0xDF - "\\\u00F7\u0053\u0054\u0055\u0056\u0057\u0058" + // 0xE0 - 0xE7 - "\u0059\u005A\u00B2\u00D4\u00D6\u00D2\u00D3\u00D5" + // 0xE8 - 0xEF - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + // 0xF0 - 0xF7 - "\u0038\u0039\u00B3\u00DB\u00DC\u00D9\u00DA\u009F" + // 0xF8 - 0xFF - "\u0000\u0001\u0002\u0003\u009C\t\u0086\u007F" + // 0x00 - 0x07 - "\u0097\u008D\u008E\u000B\f\r\u000E\u000F" + // 0x08 - 0x0F - "\u0010\u0011\u0012\u0013\u009D\n\b\u0087" + // 0x10 - 0x17 - "\u0018\u0019\u0092\u008F\u001C\u001D\u001E\u001F" + // 0x18 - 0x1F - "\u0080\u0081\u0082\u0083\u0084\n\u0017\u001B" + // 0x20 - 0x27 - "\u0088\u0089\u008A\u008B\u008C\u0005\u0006\u0007" + // 0x28 - 0x2F - "\u0090\u0091\u0016\u0093\u0094\u0095\u0096\u0004" + // 0x30 - 0x37 - "\u0098\u0099\u009A\u009B\u0014\u0015\u009E\u001A" + // 0x38 - 0x3F - "\u0020\u00A0\u00E2\u00E4\u00E0\u00E1\u00E3\u00E5" + // 0x40 - 0x47 - "\u00E7\u00F1\u00A2\u002E\u003C\u0028\u002B\u007C" + // 0x48 - 0x4F - "\u0026\u00E9\u00EA\u00EB\u00E8\u00ED\u00EE\u00EF" + // 0x50 - 0x57 - "\u00EC\u00DF\u0021\u0024\u002A\u0029\u003B\u00AC" + // 0x58 - 0x5F - "\u002D\u002F\u00C2\u00C4\u00C0\u00C1\u00C3\u00C5" + // 0x60 - 0x67 - "\u00C7\u00D1\u00A6\u002C\u0025\u005F\u003E\u003F" + // 0x68 - 0x6F - "\u00F8\u00C9\u00CA\u00CB\u00C8\u00CD\u00CE\u00CF" + // 0x70 - 0x77 - "\u00CC\u0060\u003A\u0023\u0040\'\u003D\""; // 0x78 - 0x7F - - } - - protected static class Encoder extends SingleByteEncoder { - public Encoder(Charset cs) { - super(cs, index1, index2, 0xFF00, 0x00FF, 8); - } - - private final static String index2 = - - - "\u0000\u0001\u0002\u0003\u0037\u002D\u002E\u002F" + - "\u0016\u0005\u0015\u000B\f\r\u000E\u000F" + - "\u0010\u0011\u0012\u0013\u003C\u003D\u0032\u0026" + - "\u0018\u0019\u003F\'\u001C\u001D\u001E\u001F" + - "\u0040\u005A\u007F\u007B\u005B\u006C\u0050\u007D" + - "\u004D\u005D\\\u004E\u006B\u0060\u004B\u0061" + - "\u00F0\u00F1\u00F2\u00F3\u00F4\u00F5\u00F6\u00F7" + - "\u00F8\u00F9\u007A\u005E\u004C\u007E\u006E\u006F" + - "\u007C\u00C1\u00C2\u00C3\u00C4\u00C5\u00C6\u00C7" + - "\u00C8\u00C9\u00D1\u00D2\u00D3\u00D4\u00D5\u00D6" + - "\u00D7\u00D8\u00D9\u00E2\u00E3\u00E4\u00E5\u00E6" + - "\u00E7\u00E8\u00E9\u00BA\u00E0\u00BB\u00B0\u006D" + - "\u0079\u0081\u0082\u0083\u0084\u0085\u0086\u0087" + - "\u0088\u0089\u0091\u0092\u0093\u0094\u0095\u0096" + - "\u0097\u0098\u0099\u00A2\u00A3\u00A4\u00A5\u00A6" + - "\u00A7\u00A8\u00A9\u00C0\u004F\u00D0\u00A1\u0007" + - "\u0020\u0021\"\u0023\u0024\u0015\u0006\u0017" + - "\u0028\u0029\u002A\u002B\u002C\t\n\u001B" + - "\u0030\u0031\u001A\u0033\u0034\u0035\u0036\b" + - "\u0038\u0039\u003A\u003B\u0004\u0014\u003E\u00FF" + - "\u0041\u00AA\u004A\u00B1\u009F\u00B2\u006A\u00B5" + - "\u00BD\u00B4\u009A\u008A\u005F\u00CA\u00AF\u00BC" + - "\u0090\u008F\u00EA\u00FA\u00BE\u00A0\u00B6\u00B3" + - "\u009D\u00DA\u009B\u008B\u00B7\u00B8\u00B9\u00AB" + - "\u0064\u0065\u0062\u0066\u0063\u0067\u009E\u0068" + - "\u0074\u0071\u0072\u0073\u0078\u0075\u0076\u0077" + - "\u00AC\u0069\u00ED\u00EE\u00EB\u00EF\u00EC\u00BF" + - "\u0080\u00FD\u00FE\u00FB\u00FC\u00AD\u00AE\u0059" + - "\u0044\u0045\u0042\u0046\u0043\u0047\u009C\u0048" + - "\u0054\u0051\u0052\u0053\u0058\u0055\u0056\u0057" + - "\u008C\u0049\u00CD\u00CE\u00CB\u00CF\u00CC\u00E1" + - "\u0070\u00DD\u00DE\u00DB\u00DC\u008D\u008E\u00DF" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"; - - private final static short index1[] = { - 0, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - - }; - } -} diff --git a/jdk/src/share/classes/sun/nio/cs/ext/IBM1006.java b/jdk/src/share/classes/sun/nio/cs/ext/IBM1006.java deleted file mode 100644 index 4d30d6f4e7e..00000000000 --- a/jdk/src/share/classes/sun/nio/cs/ext/IBM1006.java +++ /dev/null @@ -1,336 +0,0 @@ - -/* - * Copyright 2003-2004 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. - */ - -package sun.nio.cs.ext; - - -import java.nio.charset.Charset; -import java.nio.charset.CharsetDecoder; -import java.nio.charset.CharsetEncoder; -import sun.nio.cs.StandardCharsets; -import sun.nio.cs.SingleByteDecoder; -import sun.nio.cs.SingleByteEncoder; -import sun.nio.cs.HistoricallyNamedCharset; - -public class IBM1006 - extends Charset - implements HistoricallyNamedCharset -{ - - public IBM1006() { - super("x-IBM1006", ExtendedCharsets.aliasesFor("x-IBM1006")); - } - - public String historicalName() { - return "Cp1006"; - } - - public boolean contains(Charset cs) { - return (cs instanceof IBM1006); - } - - public CharsetDecoder newDecoder() { - return new Decoder(this); - } - - public CharsetEncoder newEncoder() { - return new Encoder(this); - } - - - /** - * These accessors are temporarily supplied while sun.io - * converters co-exist with the sun.nio.cs.{ext} charset coders - * These facilitate sharing of conversion tables between the - * two co-existing implementations. When sun.io converters - * are made extinct these will be unncessary and should be removed - */ - - public String getDecoderSingleByteMappings() { - return Decoder.byteToCharTable; - - } - - public short[] getEncoderIndex1() { - return Encoder.index1; - - } - public String getEncoderIndex2() { - return Encoder.index2; - - } - - private static class Decoder extends SingleByteDecoder { - public Decoder(Charset cs) { - super(cs, byteToCharTable); - } - - private final static String byteToCharTable = - - "\u0080\u0081\u0082\u0083\u0084\u0085\u0086\u0087" + // 0x80 - 0x87 - "\u0088\u0089\u008A\u008B\u008C\u008D\u008E\u008F" + // 0x88 - 0x8F - "\u0090\u0091\u0092\u0093\u0094\u0095\u0096\u0097" + // 0x90 - 0x97 - "\u0098\u0099\u009A\u009B\u009C\u009D\u009E\u009F" + // 0x98 - 0x9F - "\u00A0\u06F0\u06F1\u06F2\u06F3\u06F4\u06F5\u06F6" + // 0xA0 - 0xA7 - "\u06F7\u06F8\u06F9\u060C\u061B\u00AD\u061F\uFE81" + // 0xA8 - 0xAF - "\uFE8D\uFE8E\uF8FB\uFE8F\uFE91\uFB56\uFB58\uFE93" + // 0xB0 - 0xB7 - "\uFE95\uFE97\uFB66\uFB68\uFE99\uFE9B\uFE9D\uFE9F" + // 0xB8 - 0xBF - "\uFB7A\uFB7C\uFEA1\uFEA3\uFEA5\uFEA7\uFEA9\uFB88" + // 0xC0 - 0xC7 - "\uFEAB\uFEAD\uFB8C\uFEAF\uFB8A\uFEB1\uFEB3\uFEB5" + // 0xC8 - 0xCF - "\uFEB7\uFEB9\uFEBB\uFEBD\uFEBF\uFEC3\uFEC7\uFEC9" + // 0xD0 - 0xD7 - "\uFECA\uFECB\uFECC\uFECD\uFECE\uFECF\uFED0\uFED1" + // 0xD8 - 0xDF - "\uFED3\uFED5\uFED7\uFB8E\uFEDB\uFB92\uFB94\uFEDD" + // 0xE0 - 0xE7 - "\uFEDF\uFEE0\uFEE1\uFEE3\uFB9E\uFEE5\uFEE7\uFE85" + // 0xE8 - 0xEF - "\uFEED\uFBA6\uFBA8\uFBA9\uFBAA\uFE80\uFE89\uFE8A" + // 0xF0 - 0xF7 - "\uFE8B\uFBFC\uFBFD\uFBFE\uFBB0\uFBAE\uFE7C\uFE7D" + // 0xF8 - 0xFF - "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007" + // 0x00 - 0x07 - "\b\t\n\u000B\f\r\u000E\u000F" + // 0x08 - 0x0F - "\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017" + // 0x10 - 0x17 - "\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F" + // 0x18 - 0x1F - "\u0020\u0021\"\u0023\u0024\u0025\u0026\'" + // 0x20 - 0x27 - "\u0028\u0029\u002A\u002B\u002C\u002D\u002E\u002F" + // 0x28 - 0x2F - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + // 0x30 - 0x37 - "\u0038\u0039\u003A\u003B\u003C\u003D\u003E\u003F" + // 0x38 - 0x3F - "\u0040\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + // 0x40 - 0x47 - "\u0048\u0049\u004A\u004B\u004C\u004D\u004E\u004F" + // 0x48 - 0x4F - "\u0050\u0051\u0052\u0053\u0054\u0055\u0056\u0057" + // 0x50 - 0x57 - "\u0058\u0059\u005A\u005B\\\u005D\u005E\u005F" + // 0x58 - 0x5F - "\u0060\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + // 0x60 - 0x67 - "\u0068\u0069\u006A\u006B\u006C\u006D\u006E\u006F" + // 0x68 - 0x6F - "\u0070\u0071\u0072\u0073\u0074\u0075\u0076\u0077" + // 0x70 - 0x77 - "\u0078\u0079\u007A\u007B\u007C\u007D\u007E\u007F"; // 0x78 - 0x7F - - } - - private static class Encoder extends SingleByteEncoder { - public Encoder(Charset cs) { - super(cs, index1, index2, 0xFF00, 0x00FF, 8); - } - - private final static String index2 = - - - "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007" + - "\b\t\n\u000B\f\r\u000E\u000F" + - "\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017" + - "\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F" + - "\u0020\u0021\"\u0023\u0024\u0025\u0026\'" + - "\u0028\u0029\u002A\u002B\u002C\u002D\u002E\u002F" + - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + - "\u0038\u0039\u003A\u003B\u003C\u003D\u003E\u003F" + - "\u0040\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + - "\u0048\u0049\u004A\u004B\u004C\u004D\u004E\u004F" + - "\u0050\u0051\u0052\u0053\u0054\u0055\u0056\u0057" + - "\u0058\u0059\u005A\u005B\\\u005D\u005E\u005F" + - "\u0060\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + - "\u0068\u0069\u006A\u006B\u006C\u006D\u006E\u006F" + - "\u0070\u0071\u0072\u0073\u0074\u0075\u0076\u0077" + - "\u0078\u0079\u007A\u007B\u007C\u007D\u007E\u007F" + - "\u0080\u0081\u0082\u0083\u0084\u0085\u0086\u0087" + - "\u0088\u0089\u008A\u008B\u008C\u008D\u008E\u008F" + - "\u0090\u0091\u0092\u0093\u0094\u0095\u0096\u0097" + - "\u0098\u0099\u009A\u009B\u009C\u009D\u009E\u009F" + - "\u00A0\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u00AD\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u00AB\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u00AC\u0000\u0000" + - "\u0000\u00AE\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u00A1\u00A2\u00A3\u00A4\u00A5\u00A6" + - "\u00A7\u00A8\u00A9\u00AA\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u00B2" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u00B5\u0000" + - "\u00B6\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u00BA\u0000" + - "\u00BB\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u00C0\u0000\u00C1\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00C7\u0000\u00CC\u0000\u00CA\u0000\u00E3\u0000" + - "\u0000\u0000\u00E5\u0000\u00E6\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u00EC\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u00F1\u0000" + - "\u00F2\u00F3\u00F4\u0000\u0000\u0000\u00FD\u0000" + - "\u00FC\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u00F9\u00FA\u00FB\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u00FE\u00FF\u0000\u0000\u00F5" + - "\u00AF\u0000\u0000\u0000\u00EF\u0000\u0000\u0000" + - "\u00F6\u00F7\u00F8\u0000\u00B0\u00B1\u00B3\u0000" + - "\u00B4\u0000\u00B7\u0000\u00B8\u0000\u00B9\u0000" + - "\u00BC\u0000\u00BD\u0000\u00BE\u0000\u00BF\u0000" + - "\u00C2\u0000\u00C3\u0000\u00C4\u0000\u00C5\u0000" + - "\u00C6\u0000\u00C8\u0000\u00C9\u0000\u00CB\u0000" + - "\u00CD\u0000\u00CE\u0000\u00CF\u0000\u00D0\u0000" + - "\u00D1\u0000\u00D2\u0000\u00D3\u0000\u00D4\u0000" + - "\u0000\u0000\u00D5\u0000\u0000\u0000\u00D6\u0000" + - "\u00D7\u00D8\u00D9\u00DA\u00DB\u00DC\u00DD\u00DE" + - "\u00DF\u0000\u00E0\u0000\u00E1\u0000\u00E2\u0000" + - "\u0000\u0000\u00E4\u0000\u00E7\u0000\u00E8\u00E9" + - "\u00EA\u0000\u00EB\u0000\u00ED\u0000\u00EE\u0000" + - "\u0000\u0000\u0000\u0000\u00F0\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000"; - - private final static short index1[] = { - 0, 174, 174, 174, 174, 174, 418, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 668, 174, 174, 920, 174, 174, 1175, 174, - - }; - } -} diff --git a/jdk/src/share/classes/sun/nio/cs/ext/IBM1025.java b/jdk/src/share/classes/sun/nio/cs/ext/IBM1025.java deleted file mode 100644 index 546234607b4..00000000000 --- a/jdk/src/share/classes/sun/nio/cs/ext/IBM1025.java +++ /dev/null @@ -1,272 +0,0 @@ - -/* - * Copyright 2003-2004 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. - */ - -package sun.nio.cs.ext; - - -import java.nio.charset.Charset; -import java.nio.charset.CharsetDecoder; -import java.nio.charset.CharsetEncoder; -import sun.nio.cs.StandardCharsets; -import sun.nio.cs.SingleByteDecoder; -import sun.nio.cs.SingleByteEncoder; -import sun.nio.cs.HistoricallyNamedCharset; - -public class IBM1025 - extends Charset - implements HistoricallyNamedCharset -{ - - public IBM1025() { - super("x-IBM1025", ExtendedCharsets.aliasesFor("x-IBM1025")); - } - - public String historicalName() { - return "Cp1025"; - } - - public boolean contains(Charset cs) { - return (cs instanceof IBM1025); - } - - public CharsetDecoder newDecoder() { - return new Decoder(this); - } - - public CharsetEncoder newEncoder() { - return new Encoder(this); - } - - - /** - * These accessors are temporarily supplied while sun.io - * converters co-exist with the sun.nio.cs.{ext} charset coders - * These facilitate sharing of conversion tables between the - * two co-existing implementations. When sun.io converters - * are made extinct these will be unncessary and should be removed - */ - - public String getDecoderSingleByteMappings() { - return Decoder.byteToCharTable; - - } - - public short[] getEncoderIndex1() { - return Encoder.index1; - - } - public String getEncoderIndex2() { - return Encoder.index2; - - } - - private static class Decoder extends SingleByteDecoder { - public Decoder(Charset cs) { - super(cs, byteToCharTable); - } - - private final static String byteToCharTable = - - "\u0446\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + // 0x80 - 0x87 - "\u0068\u0069\u0434\u0435\u0444\u0433\u0445\u0438" + // 0x88 - 0x8F - "\u0439\u006A\u006B\u006C\u006D\u006E\u006F\u0070" + // 0x90 - 0x97 - "\u0071\u0072\u043A\u043B\u043C\u043D\u043E\u043F" + // 0x98 - 0x9F - "\u044F\u007E\u0073\u0074\u0075\u0076\u0077\u0078" + // 0xA0 - 0xA7 - "\u0079\u007A\u0440\u0441\u0442\u0443\u0436\u0432" + // 0xA8 - 0xAF - "\u044C\u044B\u0437\u0448\u044D\u0449\u0447\u044A" + // 0xB0 - 0xB7 - "\u042E\u0410\u0411\u0426\u0414\u0415\u0424\u0413" + // 0xB8 - 0xBF - "\u007B\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + // 0xC0 - 0xC7 - "\u0048\u0049\u0425\u0418\u0419\u041A\u041B\u041C" + // 0xC8 - 0xCF - "\u007D\u004A\u004B\u004C\u004D\u004E\u004F\u0050" + // 0xD0 - 0xD7 - "\u0051\u0052\u041D\u041E\u041F\u042F\u0420\u0421" + // 0xD8 - 0xDF - "\\\u00A7\u0053\u0054\u0055\u0056\u0057\u0058" + // 0xE0 - 0xE7 - "\u0059\u005A\u0422\u0423\u0416\u0412\u042C\u042B" + // 0xE8 - 0xEF - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + // 0xF0 - 0xF7 - "\u0038\u0039\u0417\u0428\u042D\u0429\u0427\u009F" + // 0xF8 - 0xFF - "\u0000\u0001\u0002\u0003\u009C\t\u0086\u007F" + // 0x00 - 0x07 - "\u0097\u008D\u008E\u000B\f\r\u000E\u000F" + // 0x08 - 0x0F - "\u0010\u0011\u0012\u0013\u009D\n\b\u0087" + // 0x10 - 0x17 - "\u0018\u0019\u0092\u008F\u001C\u001D\u001E\u001F" + // 0x18 - 0x1F - "\u0080\u0081\u0082\u0083\u0084\n\u0017\u001B" + // 0x20 - 0x27 - "\u0088\u0089\u008A\u008B\u008C\u0005\u0006\u0007" + // 0x28 - 0x2F - "\u0090\u0091\u0016\u0093\u0094\u0095\u0096\u0004" + // 0x30 - 0x37 - "\u0098\u0099\u009A\u009B\u0014\u0015\u009E\u001A" + // 0x38 - 0x3F - "\u0020\u00A0\u0452\u0453\u0451\u0454\u0455\u0456" + // 0x40 - 0x47 - "\u0457\u0458\u005B\u002E\u003C\u0028\u002B\u0021" + // 0x48 - 0x4F - "\u0026\u0459\u045A\u045B\u045C\u045E\u045F\u042A" + // 0x50 - 0x57 - "\u2116\u0402\u005D\u0024\u002A\u0029\u003B\u005E" + // 0x58 - 0x5F - "\u002D\u002F\u0403\u0401\u0404\u0405\u0406\u0407" + // 0x60 - 0x67 - "\u0408\u0409\u007C\u002C\u0025\u005F\u003E\u003F" + // 0x68 - 0x6F - "\u040A\u040B\u040C\u00AD\u040E\u040F\u044E\u0430" + // 0x70 - 0x77 - "\u0431\u0060\u003A\u0023\u0040\'\u003D\""; // 0x78 - 0x7F - - } - - private static class Encoder extends SingleByteEncoder { - public Encoder(Charset cs) { - super(cs, index1, index2, 0xFF00, 0x00FF, 8); - } - - private final static String index2 = - - - "\u0000\u0001\u0002\u0003\u0037\u002D\u002E\u002F" + - "\u0016\u0005\u0015\u000B\f\r\u000E\u000F" + - "\u0010\u0011\u0012\u0013\u003C\u003D\u0032\u0026" + - "\u0018\u0019\u003F\'\u001C\u001D\u001E\u001F" + - "\u0040\u004F\u007F\u007B\u005B\u006C\u0050\u007D" + - "\u004D\u005D\\\u004E\u006B\u0060\u004B\u0061" + - "\u00F0\u00F1\u00F2\u00F3\u00F4\u00F5\u00F6\u00F7" + - "\u00F8\u00F9\u007A\u005E\u004C\u007E\u006E\u006F" + - "\u007C\u00C1\u00C2\u00C3\u00C4\u00C5\u00C6\u00C7" + - "\u00C8\u00C9\u00D1\u00D2\u00D3\u00D4\u00D5\u00D6" + - "\u00D7\u00D8\u00D9\u00E2\u00E3\u00E4\u00E5\u00E6" + - "\u00E7\u00E8\u00E9\u004A\u00E0\u005A\u005F\u006D" + - "\u0079\u0081\u0082\u0083\u0084\u0085\u0086\u0087" + - "\u0088\u0089\u0091\u0092\u0093\u0094\u0095\u0096" + - "\u0097\u0098\u0099\u00A2\u00A3\u00A4\u00A5\u00A6" + - "\u00A7\u00A8\u00A9\u00C0\u006A\u00D0\u00A1\u0007" + - "\u0020\u0021\"\u0023\u0024\u0015\u0006\u0017" + - "\u0028\u0029\u002A\u002B\u002C\t\n\u001B" + - "\u0030\u0031\u001A\u0033\u0034\u0035\u0036\b" + - "\u0038\u0039\u003A\u003B\u0004\u0014\u003E\u00FF" + - "\u0041\u0000\u0000\u0000\u0000\u0000\u0000\u00E1" + - "\u0000\u0000\u0000\u0000\u0000\u0073\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0063\u0059" + - "\u0062\u0064\u0065\u0066\u0067\u0068\u0069\u0070" + - "\u0071\u0072\u0000\u0074\u0075\u00B9\u00BA\u00ED" + - "\u00BF\u00BC\u00BD\u00EC\u00FA\u00CB\u00CC\u00CD" + - "\u00CE\u00CF\u00DA\u00DB\u00DC\u00DE\u00DF\u00EA" + - "\u00EB\u00BE\u00CA\u00BB\u00FE\u00FB\u00FD\u0057" + - "\u00EF\u00EE\u00FC\u00B8\u00DD\u0077\u0078\u00AF" + - "\u008D\u008A\u008B\u00AE\u00B2\u008F\u0090\u009A" + - "\u009B\u009C\u009D\u009E\u009F\u00AA\u00AB\u00AC" + - "\u00AD\u008C\u008E\u0080\u00B6\u00B3\u00B5\u00B7" + - "\u00B1\u00B0\u00B4\u0076\u00A0\u0000\u0044\u0042" + - "\u0043\u0045\u0046\u0047\u0048\u0049\u0051\u0052" + - "\u0053\u0054\u0000\u0055\u0056\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0058\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000"; - - private final static short index1[] = { - 0, 174, 174, 174, 429, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 663, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - - }; - } -} diff --git a/jdk/src/share/classes/sun/nio/cs/ext/IBM1026.java b/jdk/src/share/classes/sun/nio/cs/ext/IBM1026.java deleted file mode 100644 index 9e51569437e..00000000000 --- a/jdk/src/share/classes/sun/nio/cs/ext/IBM1026.java +++ /dev/null @@ -1,233 +0,0 @@ - -/* - * Copyright 2003-2004 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. - */ - -package sun.nio.cs.ext; - - -import java.nio.charset.Charset; -import java.nio.charset.CharsetDecoder; -import java.nio.charset.CharsetEncoder; -import sun.nio.cs.StandardCharsets; -import sun.nio.cs.SingleByteDecoder; -import sun.nio.cs.SingleByteEncoder; -import sun.nio.cs.HistoricallyNamedCharset; - -public class IBM1026 - extends Charset - implements HistoricallyNamedCharset -{ - - public IBM1026() { - super("IBM1026", ExtendedCharsets.aliasesFor("IBM1026")); - } - - public String historicalName() { - return "Cp1026"; - } - - public boolean contains(Charset cs) { - return (cs instanceof IBM1026); - } - - public CharsetDecoder newDecoder() { - return new Decoder(this); - } - - public CharsetEncoder newEncoder() { - return new Encoder(this); - } - - - /** - * These accessors are temporarily supplied while sun.io - * converters co-exist with the sun.nio.cs.{ext} charset coders - * These facilitate sharing of conversion tables between the - * two co-existing implementations. When sun.io converters - * are made extinct these will be unncessary and should be removed - */ - - public String getDecoderSingleByteMappings() { - return Decoder.byteToCharTable; - - } - - public short[] getEncoderIndex1() { - return Encoder.index1; - - } - public String getEncoderIndex2() { - return Encoder.index2; - - } - - private static class Decoder extends SingleByteDecoder { - public Decoder(Charset cs) { - super(cs, byteToCharTable); - } - - private final static String byteToCharTable = - - "\u00D8\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + // 0x80 - 0x87 - "\u0068\u0069\u00AB\u00BB\u007D\u0060\u00A6\u00B1" + // 0x88 - 0x8F - "\u00B0\u006A\u006B\u006C\u006D\u006E\u006F\u0070" + // 0x90 - 0x97 - "\u0071\u0072\u00AA\u00BA\u00E6\u00B8\u00C6\u00A4" + // 0x98 - 0x9F - "\u00B5\u00F6\u0073\u0074\u0075\u0076\u0077\u0078" + // 0xA0 - 0xA7 - "\u0079\u007A\u00A1\u00BF\u005D\u0024\u0040\u00AE" + // 0xA8 - 0xAF - "\u00A2\u00A3\u00A5\u00B7\u00A9\u00A7\u00B6\u00BC" + // 0xB0 - 0xB7 - "\u00BD\u00BE\u00AC\u007C\u00AF\u00A8\u00B4\u00D7" + // 0xB8 - 0xBF - "\u00E7\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + // 0xC0 - 0xC7 - "\u0048\u0049\u00AD\u00F4\u007E\u00F2\u00F3\u00F5" + // 0xC8 - 0xCF - "\u011F\u004A\u004B\u004C\u004D\u004E\u004F\u0050" + // 0xD0 - 0xD7 - "\u0051\u0052\u00B9\u00FB\\\u00F9\u00FA\u00FF" + // 0xD8 - 0xDF - "\u00FC\u00F7\u0053\u0054\u0055\u0056\u0057\u0058" + // 0xE0 - 0xE7 - "\u0059\u005A\u00B2\u00D4\u0023\u00D2\u00D3\u00D5" + // 0xE8 - 0xEF - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + // 0xF0 - 0xF7 - "\u0038\u0039\u00B3\u00DB\"\u00D9\u00DA\u009F" + // 0xF8 - 0xFF - "\u0000\u0001\u0002\u0003\u009C\t\u0086\u007F" + // 0x00 - 0x07 - "\u0097\u008D\u008E\u000B\f\r\u000E\u000F" + // 0x08 - 0x0F - "\u0010\u0011\u0012\u0013\u009D\n\b\u0087" + // 0x10 - 0x17 - "\u0018\u0019\u0092\u008F\u001C\u001D\u001E\u001F" + // 0x18 - 0x1F - "\u0080\u0081\u0082\u0083\u0084\n\u0017\u001B" + // 0x20 - 0x27 - "\u0088\u0089\u008A\u008B\u008C\u0005\u0006\u0007" + // 0x28 - 0x2F - "\u0090\u0091\u0016\u0093\u0094\u0095\u0096\u0004" + // 0x30 - 0x37 - "\u0098\u0099\u009A\u009B\u0014\u0015\u009E\u001A" + // 0x38 - 0x3F - "\u0020\u00A0\u00E2\u00E4\u00E0\u00E1\u00E3\u00E5" + // 0x40 - 0x47 - "\u007B\u00F1\u00C7\u002E\u003C\u0028\u002B\u0021" + // 0x48 - 0x4F - "\u0026\u00E9\u00EA\u00EB\u00E8\u00ED\u00EE\u00EF" + // 0x50 - 0x57 - "\u00EC\u00DF\u011E\u0130\u002A\u0029\u003B\u005E" + // 0x58 - 0x5F - "\u002D\u002F\u00C2\u00C4\u00C0\u00C1\u00C3\u00C5" + // 0x60 - 0x67 - "\u005B\u00D1\u015F\u002C\u0025\u005F\u003E\u003F" + // 0x68 - 0x6F - "\u00F8\u00C9\u00CA\u00CB\u00C8\u00CD\u00CE\u00CF" + // 0x70 - 0x77 - "\u00CC\u0131\u003A\u00D6\u015E\'\u003D\u00DC"; // 0x78 - 0x7F - - } - - private static class Encoder extends SingleByteEncoder { - public Encoder(Charset cs) { - super(cs, index1, index2, 0xFF00, 0x00FF, 8); - } - - private final static String index2 = - - - "\u0000\u0001\u0002\u0003\u0037\u002D\u002E\u002F" + - "\u0016\u0005\u0015\u000B\f\r\u000E\u000F" + - "\u0010\u0011\u0012\u0013\u003C\u003D\u0032\u0026" + - "\u0018\u0019\u003F\'\u001C\u001D\u001E\u001F" + - "\u0040\u004F\u00FC\u00EC\u00AD\u006C\u0050\u007D" + - "\u004D\u005D\\\u004E\u006B\u0060\u004B\u0061" + - "\u00F0\u00F1\u00F2\u00F3\u00F4\u00F5\u00F6\u00F7" + - "\u00F8\u00F9\u007A\u005E\u004C\u007E\u006E\u006F" + - "\u00AE\u00C1\u00C2\u00C3\u00C4\u00C5\u00C6\u00C7" + - "\u00C8\u00C9\u00D1\u00D2\u00D3\u00D4\u00D5\u00D6" + - "\u00D7\u00D8\u00D9\u00E2\u00E3\u00E4\u00E5\u00E6" + - "\u00E7\u00E8\u00E9\u0068\u00DC\u00AC\u005F\u006D" + - "\u008D\u0081\u0082\u0083\u0084\u0085\u0086\u0087" + - "\u0088\u0089\u0091\u0092\u0093\u0094\u0095\u0096" + - "\u0097\u0098\u0099\u00A2\u00A3\u00A4\u00A5\u00A6" + - "\u00A7\u00A8\u00A9\u0048\u00BB\u008C\u00CC\u0007" + - "\u0020\u0021\"\u0023\u0024\u0015\u0006\u0017" + - "\u0028\u0029\u002A\u002B\u002C\t\n\u001B" + - "\u0030\u0031\u001A\u0033\u0034\u0035\u0036\b" + - "\u0038\u0039\u003A\u003B\u0004\u0014\u003E\u00FF" + - "\u0041\u00AA\u00B0\u00B1\u009F\u00B2\u008E\u00B5" + - "\u00BD\u00B4\u009A\u008A\u00BA\u00CA\u00AF\u00BC" + - "\u0090\u008F\u00EA\u00FA\u00BE\u00A0\u00B6\u00B3" + - "\u009D\u00DA\u009B\u008B\u00B7\u00B8\u00B9\u00AB" + - "\u0064\u0065\u0062\u0066\u0063\u0067\u009E\u004A" + - "\u0074\u0071\u0072\u0073\u0078\u0075\u0076\u0077" + - "\u0000\u0069\u00ED\u00EE\u00EB\u00EF\u007B\u00BF" + - "\u0080\u00FD\u00FE\u00FB\u007F\u0000\u0000\u0059" + - "\u0044\u0045\u0042\u0046\u0043\u0047\u009C\u00C0" + - "\u0054\u0051\u0052\u0053\u0058\u0055\u0056\u0057" + - "\u0000\u0049\u00CD\u00CE\u00CB\u00CF\u00A1\u00E1" + - "\u0070\u00DD\u00DE\u00DB\u00E0\u0000\u0000\u00DF" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u005A\u00D0" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u005B\u0079\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u007C\u006A" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"; - - private final static short index1[] = { - 0, 256, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - - }; - } -} diff --git a/jdk/src/share/classes/sun/nio/cs/ext/IBM1046.java b/jdk/src/share/classes/sun/nio/cs/ext/IBM1046.java deleted file mode 100644 index 60e39ea6e28..00000000000 --- a/jdk/src/share/classes/sun/nio/cs/ext/IBM1046.java +++ /dev/null @@ -1,335 +0,0 @@ - -/* - * Copyright 2003-2004 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. - */ - -package sun.nio.cs.ext; - - -import java.nio.charset.Charset; -import java.nio.charset.CharsetDecoder; -import java.nio.charset.CharsetEncoder; -import sun.nio.cs.StandardCharsets; -import sun.nio.cs.SingleByteDecoder; -import sun.nio.cs.SingleByteEncoder; -import sun.nio.cs.HistoricallyNamedCharset; - -public class IBM1046 - extends Charset - implements HistoricallyNamedCharset -{ - - public IBM1046() { - super("x-IBM1046", ExtendedCharsets.aliasesFor("x-IBM1046")); - } - - public String historicalName() { - return "Cp1046"; - } - - public boolean contains(Charset cs) { - return (cs instanceof IBM1046); - } - - public CharsetDecoder newDecoder() { - return new Decoder(this); - } - - public CharsetEncoder newEncoder() { - return new Encoder(this); - } - - - /** - * These accessors are temporarily supplied while sun.io - * converters co-exist with the sun.nio.cs.{ext} charset coders - * These facilitate sharing of conversion tables between the - * two co-existing implementations. When sun.io converters - * are made extinct these will be unncessary and should be removed - */ - - public String getDecoderSingleByteMappings() { - return Decoder.byteToCharTable; - - } - - public short[] getEncoderIndex1() { - return Encoder.index1; - - } - public String getEncoderIndex2() { - return Encoder.index2; - - } - - private static class Decoder extends SingleByteDecoder { - public Decoder(Charset cs) { - super(cs, byteToCharTable); - } - - private final static String byteToCharTable = - - "\uFE88\u00D7\u00F7\uF8F6\uF8F5\uF8F4\uF8F7\uFE71" + // 0x80 - 0x87 - "\u0088\u25A0\u2502\u2500\u2510\u250C\u2514\u2518" + // 0x88 - 0x8F - "\uFE79\uFE7B\uFE7D\uFE7F\uFE77\uFE8A\uFEF0\uFEF3" + // 0x90 - 0x97 - "\uFEF2\uFECE\uFECF\uFED0\uFEF6\uFEF8\uFEFA\uFEFC" + // 0x98 - 0x9F - "\u00A0\uF8FA\uF8F9\uF8F8\u00A4\uF8FB\uFE8B\uFE91" + // 0xA0 - 0xA7 - "\uFE97\uFE9B\uFE9F\uFEA3\u060C\u00AD\uFEA7\uFEB3" + // 0xA8 - 0xAF - "\u0660\u0661\u0662\u0663\u0664\u0665\u0666\u0667" + // 0xB0 - 0xB7 - "\u0668\u0669\uFEB7\u061B\uFEBB\uFEBF\uFECA\u061F" + // 0xB8 - 0xBF - "\uFECB\uFE80\uFE81\uFE83\uFE85\uFE87\uFE89\uFE8D" + // 0xC0 - 0xC7 - "\uFE8F\uFE93\uFE95\uFE99\uFE9D\uFEA1\uFEA5\uFEA9" + // 0xC8 - 0xCF - "\uFEAB\uFEAD\uFEAF\uFEB1\uFEB5\uFEB9\uFEBD\uFEC3" + // 0xD0 - 0xD7 - "\uFEC7\uFEC9\uFECD\uFECC\uFE82\uFE84\uFE8E\uFED3" + // 0xD8 - 0xDF - "\u0640\uFED1\uFED5\uFED9\uFEDD\uFEE1\uFEE5\uFEEB" + // 0xE0 - 0xE7 - "\uFEED\uFEEF\uFEF1\uFE70\uFE72\uFE74\uFE76\uFE78" + // 0xE8 - 0xEF - "\uFE7A\uFE7C\uFE7E\uFED7\uFEDB\uFEDF\uF8FC\uFEF5" + // 0xF0 - 0xF7 - "\uFEF7\uFEF9\uFEFB\uFEE3\uFEE7\uFEEC\uFEE9\uFFFD" + // 0xF8 - 0xFF - "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007" + // 0x00 - 0x07 - "\b\t\n\u000B\f\r\u000E\u000F" + // 0x08 - 0x0F - "\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017" + // 0x10 - 0x17 - "\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F" + // 0x18 - 0x1F - "\u0020\u0021\"\u0023\u0024\u0025\u0026\'" + // 0x20 - 0x27 - "\u0028\u0029\u002A\u002B\u002C\u002D\u002E\u002F" + // 0x28 - 0x2F - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + // 0x30 - 0x37 - "\u0038\u0039\u003A\u003B\u003C\u003D\u003E\u003F" + // 0x38 - 0x3F - "\u0040\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + // 0x40 - 0x47 - "\u0048\u0049\u004A\u004B\u004C\u004D\u004E\u004F" + // 0x48 - 0x4F - "\u0050\u0051\u0052\u0053\u0054\u0055\u0056\u0057" + // 0x50 - 0x57 - "\u0058\u0059\u005A\u005B\\\u005D\u005E\u005F" + // 0x58 - 0x5F - "\u0060\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + // 0x60 - 0x67 - "\u0068\u0069\u006A\u006B\u006C\u006D\u006E\u006F" + // 0x68 - 0x6F - "\u0070\u0071\u0072\u0073\u0074\u0075\u0076\u0077" + // 0x70 - 0x77 - "\u0078\u0079\u007A\u007B\u007C\u007D\u007E\u007F"; // 0x78 - 0x7F - - } - - private static class Encoder extends SingleByteEncoder { - public Encoder(Charset cs) { - super(cs, index1, index2, 0xFF00, 0x00FF, 8); - } - - private final static String index2 = - - - "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007" + - "\b\t\n\u000B\f\r\u000E\u000F" + - "\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017" + - "\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F" + - "\u0020\u0021\"\u0023\u0024\u0025\u0026\'" + - "\u0028\u0029\u002A\u002B\u002C\u002D\u002E\u002F" + - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + - "\u0038\u0039\u003A\u003B\u003C\u003D\u003E\u003F" + - "\u0040\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + - "\u0048\u0049\u004A\u004B\u004C\u004D\u004E\u004F" + - "\u0050\u0051\u0052\u0053\u0054\u0055\u0056\u0057" + - "\u0058\u0059\u005A\u005B\\\u005D\u005E\u005F" + - "\u0060\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + - "\u0068\u0069\u006A\u006B\u006C\u006D\u006E\u006F" + - "\u0070\u0071\u0072\u0073\u0074\u0075\u0076\u0077" + - "\u0078\u0079\u007A\u007B\u007C\u007D\u007E\u007F" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0088\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00A0\u0000\u0000\u0000\u00A4\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u00AD\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0081" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0082" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00AC\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u00BB" + - "\u0000\u0000\u0000\u00BF\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u00E0\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u00B0\u00B1\u00B2\u00B3" + - "\u00B4\u00B5\u00B6\u00B7\u00B8\u00B9\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u008B\u0000\u008A\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u008D\u0000\u0000\u0000\u008C\u0000\u0000\u0000" + - "\u008E\u0000\u0000\u0000\u008F\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0089\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0085\u0084\u0083\u0086\u00A3\u00A2\u00A1" + - "\u00A5\u00F6\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u00EB\u0087\u00EC\u0000\u00ED\u0000" + - "\u00EE\u0094\u00EF\u0090\u00F0\u0091\u00F1\u0092" + - "\u00F2\u0093\u00C1\u00C2\u00DC\u00C3\u00DD\u00C4" + - "\u0000\u00C5\u0080\u00C6\u0095\u00A6\u0000\u00C7" + - "\u00DE\u00C8\u0000\u00A7\u0000\u00C9\u0000\u00CA" + - "\u0000\u00A8\u0000\u00CB\u0000\u00A9\u0000\u00CC" + - "\u0000\u00AA\u0000\u00CD\u0000\u00AB\u0000\u00CE" + - "\u0000\u00AE\u0000\u00CF\u0000\u00D0\u0000\u00D1" + - "\u0000\u00D2\u0000\u00D3\u0000\u00AF\u0000\u00D4" + - "\u0000\u00BA\u0000\u00D5\u0000\u00BC\u0000\u00D6" + - "\u0000\u00BD\u0000\u0000\u0000\u00D7\u0000\u0000" + - "\u0000\u00D8\u0000\u00D9\u00BE\u00C0\u00DB\u00DA" + - "\u0099\u009A\u009B\u00E1\u0000\u00DF\u0000\u00E2" + - "\u0000\u00F3\u0000\u00E3\u0000\u00F4\u0000\u00E4" + - "\u0000\u00F5\u0000\u00E5\u0000\u00FB\u0000\u00E6" + - "\u0000\u00FC\u0000\u00FE\u0000\u00E7\u00FD\u00E8" + - "\u0000\u00E9\u0096\u00EA\u0098\u0097\u0000\u00F7" + - "\u009C\u00F8\u009D\u00F9\u009E\u00FA\u009F\u0000" + - "\u0000\u0000"; - - private final static short index1[] = { - 0, 248, 248, 248, 248, 248, 492, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 748, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, 909, 248, 248, 248, 248, 248, 1162, 248, - - }; - } -} diff --git a/jdk/src/share/classes/sun/nio/cs/ext/IBM1047.java b/jdk/src/share/classes/sun/nio/cs/ext/IBM1047.java deleted file mode 100644 index 55eb9294b6b..00000000000 --- a/jdk/src/share/classes/sun/nio/cs/ext/IBM1047.java +++ /dev/null @@ -1,221 +0,0 @@ - -/* - * Copyright 2003-2004 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. - */ - -package sun.nio.cs.ext; - - -import java.nio.charset.Charset; -import java.nio.charset.CharsetDecoder; -import java.nio.charset.CharsetEncoder; -import sun.nio.cs.StandardCharsets; -import sun.nio.cs.SingleByteDecoder; -import sun.nio.cs.SingleByteEncoder; -import sun.nio.cs.HistoricallyNamedCharset; - -public class IBM1047 - extends Charset - implements HistoricallyNamedCharset -{ - - public IBM1047() { - super("IBM1047", ExtendedCharsets.aliasesFor("IBM1047")); - } - - public String historicalName() { - return "Cp1047"; - } - - public boolean contains(Charset cs) { - return (cs instanceof IBM1047); - } - - public CharsetDecoder newDecoder() { - return new Decoder(this); - } - - public CharsetEncoder newEncoder() { - return new Encoder(this); - } - - - /** - * These accessors are temporarily supplied while sun.io - * converters co-exist with the sun.nio.cs.{ext} charset coders - * These facilitate sharing of conversion tables between the - * two co-existing implementations. When sun.io converters - * are made extinct these will be unncessary and should be removed - */ - - public String getDecoderSingleByteMappings() { - return Decoder.byteToCharTable; - - } - - public short[] getEncoderIndex1() { - return Encoder.index1; - - } - public String getEncoderIndex2() { - return Encoder.index2; - - } - - private static class Decoder extends SingleByteDecoder { - public Decoder(Charset cs) { - super(cs, byteToCharTable); - } - - private final static String byteToCharTable = - - "\u00D8\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + // 0x80 - 0x87 - "\u0068\u0069\u00AB\u00BB\u00F0\u00FD\u00FE\u00B1" + // 0x88 - 0x8F - "\u00B0\u006A\u006B\u006C\u006D\u006E\u006F\u0070" + // 0x90 - 0x97 - "\u0071\u0072\u00AA\u00BA\u00E6\u00B8\u00C6\u00A4" + // 0x98 - 0x9F - "\u00B5\u007E\u0073\u0074\u0075\u0076\u0077\u0078" + // 0xA0 - 0xA7 - "\u0079\u007A\u00A1\u00BF\u00D0\u005B\u00DE\u00AE" + // 0xA8 - 0xAF - "\u00AC\u00A3\u00A5\u00B7\u00A9\u00A7\u00B6\u00BC" + // 0xB0 - 0xB7 - "\u00BD\u00BE\u00DD\u00A8\u00AF\u005D\u00B4\u00D7" + // 0xB8 - 0xBF - "\u007B\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + // 0xC0 - 0xC7 - "\u0048\u0049\u00AD\u00F4\u00F6\u00F2\u00F3\u00F5" + // 0xC8 - 0xCF - "\u007D\u004A\u004B\u004C\u004D\u004E\u004F\u0050" + // 0xD0 - 0xD7 - "\u0051\u0052\u00B9\u00FB\u00FC\u00F9\u00FA\u00FF" + // 0xD8 - 0xDF - "\\\u00F7\u0053\u0054\u0055\u0056\u0057\u0058" + // 0xE0 - 0xE7 - "\u0059\u005A\u00B2\u00D4\u00D6\u00D2\u00D3\u00D5" + // 0xE8 - 0xEF - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + // 0xF0 - 0xF7 - "\u0038\u0039\u00B3\u00DB\u00DC\u00D9\u00DA\u009F" + // 0xF8 - 0xFF - "\u0000\u0001\u0002\u0003\u009C\t\u0086\u007F" + // 0x00 - 0x07 - "\u0097\u008D\u008E\u000B\f\r\u000E\u000F" + // 0x08 - 0x0F - "\u0010\u0011\u0012\u0013\u009D\n\b\u0087" + // 0x10 - 0x17 - "\u0018\u0019\u0092\u008F\u001C\u001D\u001E\u001F" + // 0x18 - 0x1F - "\u0080\u0081\u0082\u0083\u0084\u0085\u0017\u001B" + // 0x20 - 0x27 - "\u0088\u0089\u008A\u008B\u008C\u0005\u0006\u0007" + // 0x28 - 0x2F - "\u0090\u0091\u0016\u0093\u0094\u0095\u0096\u0004" + // 0x30 - 0x37 - "\u0098\u0099\u009A\u009B\u0014\u0015\u009E\u001A" + // 0x38 - 0x3F - "\u0020\u00A0\u00E2\u00E4\u00E0\u00E1\u00E3\u00E5" + // 0x40 - 0x47 - "\u00E7\u00F1\u00A2\u002E\u003C\u0028\u002B\u007C" + // 0x48 - 0x4F - "\u0026\u00E9\u00EA\u00EB\u00E8\u00ED\u00EE\u00EF" + // 0x50 - 0x57 - "\u00EC\u00DF\u0021\u0024\u002A\u0029\u003B\u005E" + // 0x58 - 0x5F - "\u002D\u002F\u00C2\u00C4\u00C0\u00C1\u00C3\u00C5" + // 0x60 - 0x67 - "\u00C7\u00D1\u00A6\u002C\u0025\u005F\u003E\u003F" + // 0x68 - 0x6F - "\u00F8\u00C9\u00CA\u00CB\u00C8\u00CD\u00CE\u00CF" + // 0x70 - 0x77 - "\u00CC\u0060\u003A\u0023\u0040\'\u003D\""; // 0x78 - 0x7F - - } - - private static class Encoder extends SingleByteEncoder { - public Encoder(Charset cs) { - super(cs, index1, index2, 0xFF00, 0x00FF, 8); - } - - private final static String index2 = - - - "\u0000\u0001\u0002\u0003\u0037\u002D\u002E\u002F" + - "\u0016\u0005\u0015\u000B\f\r\u000E\u000F" + - "\u0010\u0011\u0012\u0013\u003C\u003D\u0032\u0026" + - "\u0018\u0019\u003F\'\u001C\u001D\u001E\u001F" + - "\u0040\u005A\u007F\u007B\u005B\u006C\u0050\u007D" + - "\u004D\u005D\\\u004E\u006B\u0060\u004B\u0061" + - "\u00F0\u00F1\u00F2\u00F3\u00F4\u00F5\u00F6\u00F7" + - "\u00F8\u00F9\u007A\u005E\u004C\u007E\u006E\u006F" + - "\u007C\u00C1\u00C2\u00C3\u00C4\u00C5\u00C6\u00C7" + - "\u00C8\u00C9\u00D1\u00D2\u00D3\u00D4\u00D5\u00D6" + - "\u00D7\u00D8\u00D9\u00E2\u00E3\u00E4\u00E5\u00E6" + - "\u00E7\u00E8\u00E9\u00AD\u00E0\u00BD\u005F\u006D" + - "\u0079\u0081\u0082\u0083\u0084\u0085\u0086\u0087" + - "\u0088\u0089\u0091\u0092\u0093\u0094\u0095\u0096" + - "\u0097\u0098\u0099\u00A2\u00A3\u00A4\u00A5\u00A6" + - "\u00A7\u00A8\u00A9\u00C0\u004F\u00D0\u00A1\u0007" + - "\u0020\u0021\"\u0023\u0024\u0025\u0006\u0017" + - "\u0028\u0029\u002A\u002B\u002C\t\n\u001B" + - "\u0030\u0031\u001A\u0033\u0034\u0035\u0036\b" + - "\u0038\u0039\u003A\u003B\u0004\u0014\u003E\u00FF" + - "\u0041\u00AA\u004A\u00B1\u009F\u00B2\u006A\u00B5" + - "\u00BB\u00B4\u009A\u008A\u00B0\u00CA\u00AF\u00BC" + - "\u0090\u008F\u00EA\u00FA\u00BE\u00A0\u00B6\u00B3" + - "\u009D\u00DA\u009B\u008B\u00B7\u00B8\u00B9\u00AB" + - "\u0064\u0065\u0062\u0066\u0063\u0067\u009E\u0068" + - "\u0074\u0071\u0072\u0073\u0078\u0075\u0076\u0077" + - "\u00AC\u0069\u00ED\u00EE\u00EB\u00EF\u00EC\u00BF" + - "\u0080\u00FD\u00FE\u00FB\u00FC\u00BA\u00AE\u0059" + - "\u0044\u0045\u0042\u0046\u0043\u0047\u009C\u0048" + - "\u0054\u0051\u0052\u0053\u0058\u0055\u0056\u0057" + - "\u008C\u0049\u00CD\u00CE\u00CB\u00CF\u00CC\u00E1" + - "\u0070\u00DD\u00DE\u00DB\u00DC\u008D\u008E\u00DF" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"; - - private final static short index1[] = { - 0, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - - }; - } -} diff --git a/jdk/src/share/classes/sun/nio/cs/ext/IBM1097.java b/jdk/src/share/classes/sun/nio/cs/ext/IBM1097.java deleted file mode 100644 index 7a04f1e171e..00000000000 --- a/jdk/src/share/classes/sun/nio/cs/ext/IBM1097.java +++ /dev/null @@ -1,342 +0,0 @@ - -/* - * Copyright 2003-2004 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. - */ - -package sun.nio.cs.ext; - - -import java.nio.charset.Charset; -import java.nio.charset.CharsetDecoder; -import java.nio.charset.CharsetEncoder; -import sun.nio.cs.StandardCharsets; -import sun.nio.cs.SingleByteDecoder; -import sun.nio.cs.SingleByteEncoder; -import sun.nio.cs.HistoricallyNamedCharset; - -public class IBM1097 - extends Charset - implements HistoricallyNamedCharset -{ - - public IBM1097() { - super("x-IBM1097", ExtendedCharsets.aliasesFor("x-IBM1097")); - } - - public String historicalName() { - return "Cp1097"; - } - - public boolean contains(Charset cs) { - return (cs instanceof IBM1097); - } - - public CharsetDecoder newDecoder() { - return new Decoder(this); - } - - public CharsetEncoder newEncoder() { - return new Encoder(this); - } - - - /** - * These accessors are temporarily supplied while sun.io - * converters co-exist with the sun.nio.cs.{ext} charset coders - * These facilitate sharing of conversion tables between the - * two co-existing implementations. When sun.io converters - * are made extinct these will be unncessary and should be removed - */ - - public String getDecoderSingleByteMappings() { - return Decoder.byteToCharTable; - - } - - public short[] getEncoderIndex1() { - return Encoder.index1; - - } - public String getEncoderIndex2() { - return Encoder.index2; - - } - - private static class Decoder extends SingleByteDecoder { - public Decoder(Charset cs) { - super(cs, byteToCharTable); - } - - private final static String byteToCharTable = - - "\uFB8A\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + // 0x80 - 0x87 - "\u0068\u0069\u00AB\u00BB\uFEB1\uFEB3\uFEB5\uFEB7" + // 0x88 - 0x8F - "\uFEB9\u006A\u006B\u006C\u006D\u006E\u006F\u0070" + // 0x90 - 0x97 - "\u0071\u0072\uFEBB\uFEBD\uFEBF\uFEC1\uFEC3\uFEC5" + // 0x98 - 0x9F - "\uFEC7\u007E\u0073\u0074\u0075\u0076\u0077\u0078" + // 0xA0 - 0xA7 - "\u0079\u007A\uFEC9\uFECA\uFECB\uFECC\uFECD\uFECE" + // 0xA8 - 0xAF - "\uFECF\uFED0\uFED1\uFED3\uFED5\uFED7\uFB8E\uFEDB" + // 0xB0 - 0xB7 - "\uFB92\uFB94\u005B\u005D\uFEDD\uFEDF\uFEE1\u00D7" + // 0xB8 - 0xBF - "\u007B\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + // 0xC0 - 0xC7 - "\u0048\u0049\u00AD\uFEE3\uFEE5\uFEE7\uFEED\uFEE9" + // 0xC8 - 0xCF - "\u007D\u004A\u004B\u004C\u004D\u004E\u004F\u0050" + // 0xD0 - 0xD7 - "\u0051\u0052\uFEEB\uFEEC\uFBA4\uFBFC\uFBFD\uFBFE" + // 0xD8 - 0xDF - "\\\u061F\u0053\u0054\u0055\u0056\u0057\u0058" + // 0xE0 - 0xE7 - "\u0059\u005A\u0640\u06F0\u06F1\u06F2\u06F3\u06F4" + // 0xE8 - 0xEF - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + // 0xF0 - 0xF7 - "\u0038\u0039\u06F5\u06F6\u06F7\u06F8\u06F9\u009F" + // 0xF8 - 0xFF - "\u0000\u0001\u0002\u0003\u009C\t\u0086\u007F" + // 0x00 - 0x07 - "\u0097\u008D\u008E\u000B\f\r\u000E\u000F" + // 0x08 - 0x0F - "\u0010\u0011\u0012\u0013\u009D\u0085\b\u0087" + // 0x10 - 0x17 - "\u0018\u0019\u0092\u008F\u001C\u001D\u001E\u001F" + // 0x18 - 0x1F - "\u0080\u0081\u0082\u0083\u0084\n\u0017\u001B" + // 0x20 - 0x27 - "\u0088\u0089\u008A\u008B\u008C\u0005\u0006\u0007" + // 0x28 - 0x2F - "\u0090\u0091\u0016\u0093\u0094\u0095\u0096\u0004" + // 0x30 - 0x37 - "\u0098\u0099\u009A\u009B\u0014\u0015\u009E\u001A" + // 0x38 - 0x3F - "\u0020\u00A0\u060C\u064B\uFE81\uFE82\uF8FA\uFE8D" + // 0x40 - 0x47 - "\uFE8E\uF8FB\u00A4\u002E\u003C\u0028\u002B\u007C" + // 0x48 - 0x4F - "\u0026\uFE80\uFE83\uFE84\uF8F9\uFE85\uFE8B\uFE8F" + // 0x50 - 0x57 - "\uFE91\uFB56\u0021\u0024\u002A\u0029\u003B\u00AC" + // 0x58 - 0x5F - "\u002D\u002F\uFB58\uFE95\uFE97\uFE99\uFE9B\uFE9D" + // 0x60 - 0x67 - "\uFE9F\uFB7A\u061B\u002C\u0025\u005F\u003E\u003F" + // 0x68 - 0x6F - "\uFB7C\uFEA1\uFEA3\uFEA5\uFEA7\uFEA9\uFEAB\uFEAD" + // 0x70 - 0x77 - "\uFEAF\u0060\u003A\u0023\u0040\'\u003D\""; // 0x78 - 0x7F - - } - - private static class Encoder extends SingleByteEncoder { - public Encoder(Charset cs) { - super(cs, index1, index2, 0xFF00, 0x00FF, 8); - } - - private final static String index2 = - - - "\u0000\u0001\u0002\u0003\u0037\u002D\u002E\u002F" + - "\u0016\u0005\u0025\u000B\f\r\u000E\u000F" + - "\u0010\u0011\u0012\u0013\u003C\u003D\u0032\u0026" + - "\u0018\u0019\u003F\'\u001C\u001D\u001E\u001F" + - "\u0040\u005A\u007F\u007B\u005B\u006C\u0050\u007D" + - "\u004D\u005D\\\u004E\u006B\u0060\u004B\u0061" + - "\u00F0\u00F1\u00F2\u00F3\u00F4\u00F5\u00F6\u00F7" + - "\u00F8\u00F9\u007A\u005E\u004C\u007E\u006E\u006F" + - "\u007C\u00C1\u00C2\u00C3\u00C4\u00C5\u00C6\u00C7" + - "\u00C8\u00C9\u00D1\u00D2\u00D3\u00D4\u00D5\u00D6" + - "\u00D7\u00D8\u00D9\u00E2\u00E3\u00E4\u00E5\u00E6" + - "\u00E7\u00E8\u00E9\u00BA\u00E0\u00BB\u0000\u006D" + - "\u0079\u0081\u0082\u0083\u0084\u0085\u0086\u0087" + - "\u0088\u0089\u0091\u0092\u0093\u0094\u0095\u0096" + - "\u0097\u0098\u0099\u00A2\u00A3\u00A4\u00A5\u00A6" + - "\u00A7\u00A8\u00A9\u00C0\u004F\u00D0\u00A1\u0007" + - "\u0020\u0021\"\u0023\u0024\u0015\u0006\u0017" + - "\u0028\u0029\u002A\u002B\u002C\t\n\u001B" + - "\u0030\u0031\u001A\u0033\u0034\u0035\u0036\b" + - "\u0038\u0039\u003A\u003B\u0004\u0014\u003E\u00FF" + - "\u0041\u0000\u0000\u0000\u004A\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u008A\u005F\u00CA\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u008B\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u00BF" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0042\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u006A" + - "\u0000\u0000\u0000\u00E1\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u00EA\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0043" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u00EB\u00EC\u00ED\u00EE" + - "\u00EF\u00FA\u00FB\u00FC\u00FD\u00FE\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0054" + - "\u0046\u0049\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0059\u0000\u0062\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0069\u0000\u0070\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0080\u0000\u0000\u0000" + - "\u00B6\u0000\u0000\u0000\u00B8\u0000\u00B9\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u00DC\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u00DD\u00DE" + - "\u00DF\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0051\u0044\u0045\u0052\u0053\u0055\u0000" + - "\u0000\u0000\u0000\u0000\u0056\u0000\u0047\u0048" + - "\u0057\u0000\u0058\u0000\u0000\u0000\u0063\u0000" + - "\u0064\u0000\u0065\u0000\u0066\u0000\u0067\u0000" + - "\u0068\u0000\u0071\u0000\u0072\u0000\u0073\u0000" + - "\u0074\u0000\u0075\u0000\u0076\u0000\u0077\u0000" + - "\u0078\u0000\u008C\u0000\u008D\u0000\u008E\u0000" + - "\u008F\u0000\u0090\u0000\u009A\u0000\u009B\u0000" + - "\u009C\u0000\u009D\u0000\u009E\u0000\u009F\u0000" + - "\u00A0\u0000\u00AA\u00AB\u00AC\u00AD\u00AE\u00AF" + - "\u00B0\u00B1\u00B2\u0000\u00B3\u0000\u00B4\u0000" + - "\u00B5\u0000\u0000\u0000\u00B7\u0000\u00BC\u0000" + - "\u00BD\u0000\u00BE\u0000\u00CB\u0000\u00CC\u0000" + - "\u00CD\u0000\u00CF\u0000\u00DA\u00DB\u00CE\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000"; - - private final static short index1[] = { - 0, 216, 216, 216, 216, 216, 460, 216, 216, 216, 216, 216, 216, 216, 216, 216, - 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, - 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, - 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, - 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, - 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, - 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, - 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, - 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, - 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, - 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, - 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, - 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, - 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, - 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, - 216, 216, 216, 216, 216, 216, 216, 216, 710, 216, 216, 962, 216, 216, 1217, 216, - - }; - } -} diff --git a/jdk/src/share/classes/sun/nio/cs/ext/IBM1098.java b/jdk/src/share/classes/sun/nio/cs/ext/IBM1098.java deleted file mode 100644 index e689023c146..00000000000 --- a/jdk/src/share/classes/sun/nio/cs/ext/IBM1098.java +++ /dev/null @@ -1,362 +0,0 @@ - -/* - * Copyright 2003-2004 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. - */ - -package sun.nio.cs.ext; - - -import java.nio.charset.Charset; -import java.nio.charset.CharsetDecoder; -import java.nio.charset.CharsetEncoder; -import sun.nio.cs.StandardCharsets; -import sun.nio.cs.SingleByteDecoder; -import sun.nio.cs.SingleByteEncoder; -import sun.nio.cs.HistoricallyNamedCharset; - -public class IBM1098 - extends Charset - implements HistoricallyNamedCharset -{ - - public IBM1098() { - super("x-IBM1098", ExtendedCharsets.aliasesFor("x-IBM1098")); - } - - public String historicalName() { - return "Cp1098"; - } - - public boolean contains(Charset cs) { - return (cs instanceof IBM1098); - } - - public CharsetDecoder newDecoder() { - return new Decoder(this); - } - - public CharsetEncoder newEncoder() { - return new Encoder(this); - } - - - /** - * These accessors are temporarily supplied while sun.io - * converters co-exist with the sun.nio.cs.{ext} charset coders - * These facilitate sharing of conversion tables between the - * two co-existing implementations. When sun.io converters - * are made extinct these will be unncessary and should be removed - */ - - public String getDecoderSingleByteMappings() { - return Decoder.byteToCharTable; - - } - - public short[] getEncoderIndex1() { - return Encoder.index1; - - } - public String getEncoderIndex2() { - return Encoder.index2; - - } - - private static class Decoder extends SingleByteDecoder { - public Decoder(Charset cs) { - super(cs, byteToCharTable); - } - - private final static String byteToCharTable = - - "\uFFFD\uFFFD\u060C\u061B\u061F\u064B\uFE81\uFE82" + // 0x80 - 0x87 - "\uF8FA\uFE8D\uFE8E\uF8FB\uFE80\uFE83\uFE84\uF8F9" + // 0x88 - 0x8F - "\uFE85\uFE8B\uFE8F\uFE91\uFB56\uFB58\uFE95\uFE97" + // 0x90 - 0x97 - "\uFE99\uFE9B\uFE9D\uFE9F\uFB7A\uFB7C\u00D7\uFEA1" + // 0x98 - 0x9F - "\uFEA3\uFEA5\uFEA7\uFEA9\uFEAB\uFEAD\uFEAF\uFB8A" + // 0xA0 - 0xA7 - "\uFEB1\uFEB3\uFEB5\uFEB7\uFEB9\uFEBB\u00AB\u00BB" + // 0xA8 - 0xAF - "\u2591\u2592\u2593\u2502\u2524\uFEBD\uFEBF\uFEC1" + // 0xB0 - 0xB7 - "\uFEC3\u2563\u2551\u2557\u255D\u00A4\uFEC5\u2510" + // 0xB8 - 0xBF - "\u2514\u2534\u252C\u251C\u2500\u253C\uFEC7\uFEC9" + // 0xC0 - 0xC7 - "\u255A\u2554\u2569\u2566\u2560\u2550\u256C\uFFFD" + // 0xC8 - 0xCF - "\uFECA\uFECB\uFECC\uFECD\uFECE\uFECF\uFED0\uFED1" + // 0xD0 - 0xD7 - "\uFED3\u2518\u250C\u2588\u2584\uFED5\uFED7\u2580" + // 0xD8 - 0xDF - "\uFB8E\uFEDB\uFB92\uFB94\uFEDD\uFEDF\uFEE1\uFEE3" + // 0xE0 - 0xE7 - "\uFEE5\uFEE7\uFEED\uFEE9\uFEEB\uFEEC\uFBA4\uFBFC" + // 0xE8 - 0xEF - "\u00AD\uFBFD\uFBFE\u0640\u06F0\u06F1\u06F2\u06F3" + // 0xF0 - 0xF7 - "\u06F4\u06F5\u06F6\u06F7\u06F8\u06F9\u25A0\u00A0" + // 0xF8 - 0xFF - "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007" + // 0x00 - 0x07 - "\b\t\n\u000B\f\r\u000E\u000F" + // 0x08 - 0x0F - "\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017" + // 0x10 - 0x17 - "\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F" + // 0x18 - 0x1F - "\u0020\u0021\"\u0023\u0024\u0025\u0026\'" + // 0x20 - 0x27 - "\u0028\u0029\u002A\u002B\u002C\u002D\u002E\u002F" + // 0x28 - 0x2F - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + // 0x30 - 0x37 - "\u0038\u0039\u003A\u003B\u003C\u003D\u003E\u003F" + // 0x38 - 0x3F - "\u0040\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + // 0x40 - 0x47 - "\u0048\u0049\u004A\u004B\u004C\u004D\u004E\u004F" + // 0x48 - 0x4F - "\u0050\u0051\u0052\u0053\u0054\u0055\u0056\u0057" + // 0x50 - 0x57 - "\u0058\u0059\u005A\u005B\\\u005D\u005E\u005F" + // 0x58 - 0x5F - "\u0060\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + // 0x60 - 0x67 - "\u0068\u0069\u006A\u006B\u006C\u006D\u006E\u006F" + // 0x68 - 0x6F - "\u0070\u0071\u0072\u0073\u0074\u0075\u0076\u0077" + // 0x70 - 0x77 - "\u0078\u0079\u007A\u007B\u007C\u007D\u007E\u007F"; // 0x78 - 0x7F - - } - - private static class Encoder extends SingleByteEncoder { - public Encoder(Charset cs) { - super(cs, index1, index2, 0xFF00, 0x00FF, 8); - } - - private final static String index2 = - - - "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007" + - "\b\t\n\u000B\f\r\u000E\u000F" + - "\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017" + - "\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F" + - "\u0020\u0021\"\u0023\u0024\u0025\u0026\'" + - "\u0028\u0029\u002A\u002B\u002C\u002D\u002E\u002F" + - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + - "\u0038\u0039\u003A\u003B\u003C\u003D\u003E\u003F" + - "\u0040\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + - "\u0048\u0049\u004A\u004B\u004C\u004D\u004E\u004F" + - "\u0050\u0051\u0052\u0053\u0054\u0055\u0056\u0057" + - "\u0058\u0059\u005A\u005B\\\u005D\u005E\u005F" + - "\u0060\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + - "\u0068\u0069\u006A\u006B\u006C\u006D\u006E\u006F" + - "\u0070\u0071\u0072\u0073\u0074\u0075\u0076\u0077" + - "\u0078\u0079\u007A\u007B\u007C\u007D\u007E\u007F" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00FF\u0000\u0000\u0000\u00BD\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u00AE\u0000\u00F0\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u00AF\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u009E" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0082\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0083" + - "\u0000\u0000\u0000\u0084\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u00F3\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0085" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u00F4\u00F5\u00F6\u00F7" + - "\u00F8\u00F9\u00FA\u00FB\u00FC\u00FD\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u00C4\u0000\u00B3\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00DA\u0000\u0000\u0000\u00BF\u0000\u0000\u0000" + - "\u00C0\u0000\u0000\u0000\u00D9\u0000\u0000\u0000" + - "\u00C3\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00B4\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00C2\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00C1\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00C5\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u00CD\u00BA\u0000\u0000" + - "\u00C9\u0000\u0000\u00BB\u0000\u0000\u00C8\u0000" + - "\u0000\u00BC\u0000\u0000\u00CC\u0000\u0000\u00B9" + - "\u0000\u0000\u00CB\u0000\u0000\u00CA\u0000\u0000" + - "\u00CE\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u00DF\u0000\u0000\u0000" + - "\u00DC\u0000\u0000\u0000\u00DB\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u00B0\u00B1\u00B2" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u00FE\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u008F\u0088" + - "\u008B\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0094" + - "\u0000\u0095\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u009C\u0000\u009D\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u00A7\u0000\u0000\u0000\u00E0" + - "\u0000\u0000\u0000\u00E2\u0000\u00E3\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u00EE\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u00EF\u00F1\u00F2" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u008C\u0086\u0087\u008D\u008E\u0090\u0000\u0000" + - "\u0000\u0000\u0000\u0091\u0000\u0089\u008A\u0092" + - "\u0000\u0093\u0000\u0000\u0000\u0096\u0000\u0097" + - "\u0000\u0098\u0000\u0099\u0000\u009A\u0000\u009B" + - "\u0000\u009F\u0000\u00A0\u0000\u00A1\u0000\u00A2" + - "\u0000\u00A3\u0000\u00A4\u0000\u00A5\u0000\u00A6" + - "\u0000\u00A8\u0000\u00A9\u0000\u00AA\u0000\u00AB" + - "\u0000\u00AC\u0000\u00AD\u0000\u00B5\u0000\u00B6" + - "\u0000\u00B7\u0000\u00B8\u0000\u00BE\u0000\u00C6" + - "\u0000\u00C7\u00D0\u00D1\u00D2\u00D3\u00D4\u00D5" + - "\u00D6\u00D7\u0000\u00D8\u0000\u00DD\u0000\u00DE" + - "\u0000\u0000\u0000\u00E1\u0000\u00E4\u0000\u00E5" + - "\u0000\u00E6\u0000\u00E7\u0000\u00E8\u0000\u00E9" + - "\u0000\u00EB\u0000\u00EC\u00ED\u00EA\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"; - - private final static short index1[] = { - 0, 216, 216, 216, 216, 216, 460, 216, 216, 216, 216, 216, 216, 216, 216, 216, - 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, - 216, 216, 216, 216, 216, 716, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, - 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, - 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, - 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, - 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, - 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, - 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, - 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, - 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, - 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, - 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, - 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, - 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, - 216, 216, 216, 216, 216, 216, 216, 216, 877, 216, 216, 1129, 216, 216, 1384, 216, - - }; - } -} diff --git a/jdk/src/share/classes/sun/nio/cs/ext/IBM1112.java b/jdk/src/share/classes/sun/nio/cs/ext/IBM1112.java deleted file mode 100644 index 478f3fadb22..00000000000 --- a/jdk/src/share/classes/sun/nio/cs/ext/IBM1112.java +++ /dev/null @@ -1,266 +0,0 @@ - -/* - * Copyright 2003-2004 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. - */ - -package sun.nio.cs.ext; - - -import java.nio.charset.Charset; -import java.nio.charset.CharsetDecoder; -import java.nio.charset.CharsetEncoder; -import sun.nio.cs.StandardCharsets; -import sun.nio.cs.SingleByteDecoder; -import sun.nio.cs.SingleByteEncoder; -import sun.nio.cs.HistoricallyNamedCharset; - -public class IBM1112 - extends Charset - implements HistoricallyNamedCharset -{ - - public IBM1112() { - super("x-IBM1112", ExtendedCharsets.aliasesFor("x-IBM1112")); - } - - public String historicalName() { - return "Cp1112"; - } - - public boolean contains(Charset cs) { - return (cs instanceof IBM1112); - } - - public CharsetDecoder newDecoder() { - return new Decoder(this); - } - - public CharsetEncoder newEncoder() { - return new Encoder(this); - } - - - /** - * These accessors are temporarily supplied while sun.io - * converters co-exist with the sun.nio.cs.{ext} charset coders - * These facilitate sharing of conversion tables between the - * two co-existing implementations. When sun.io converters - * are made extinct these will be unncessary and should be removed - */ - - public String getDecoderSingleByteMappings() { - return Decoder.byteToCharTable; - - } - - public short[] getEncoderIndex1() { - return Encoder.index1; - - } - public String getEncoderIndex2() { - return Encoder.index2; - - } - - private static class Decoder extends SingleByteDecoder { - public Decoder(Charset cs) { - super(cs, byteToCharTable); - } - - private final static String byteToCharTable = - - "\u00D8\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + // 0x80 - 0x87 - "\u0068\u0069\u00AB\u00BB\u0101\u017C\u0144\u00B1" + // 0x88 - 0x8F - "\u00B0\u006A\u006B\u006C\u006D\u006E\u006F\u0070" + // 0x90 - 0x97 - "\u0071\u0072\u0156\u0157\u00E6\u0137\u00C6\u00A4" + // 0x98 - 0x9F - "\u00B5\u007E\u0073\u0074\u0075\u0076\u0077\u0078" + // 0xA0 - 0xA7 - "\u0079\u007A\u201D\u017A\u0100\u017B\u0143\u00AE" + // 0xA8 - 0xAF - "\u005E\u00A3\u012B\u00B7\u00A9\u00A7\u00B6\u00BC" + // 0xB0 - 0xB7 - "\u00BD\u00BE\u005B\u005D\u0179\u0136\u013C\u00D7" + // 0xB8 - 0xBF - "\u007B\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + // 0xC0 - 0xC7 - "\u0048\u0049\u00AD\u014D\u00F6\u0146\u00F3\u00F5" + // 0xC8 - 0xCF - "\u007D\u004A\u004B\u004C\u004D\u004E\u004F\u0050" + // 0xD0 - 0xD7 - "\u0051\u0052\u00B9\u0107\u00FC\u0142\u015B\u2019" + // 0xD8 - 0xDF - "\\\u00F7\u0053\u0054\u0055\u0056\u0057\u0058" + // 0xE0 - 0xE7 - "\u0059\u005A\u00B2\u014C\u00D6\u0145\u00D3\u00D5" + // 0xE8 - 0xEF - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + // 0xF0 - 0xF7 - "\u0038\u0039\u00B3\u0106\u00DC\u0141\u015A\u009F" + // 0xF8 - 0xFF - "\u0000\u0001\u0002\u0003\u009C\t\u0086\u007F" + // 0x00 - 0x07 - "\u0097\u008D\u008E\u000B\f\r\u000E\u000F" + // 0x08 - 0x0F - "\u0010\u0011\u0012\u0013\u009D\n\b\u0087" + // 0x10 - 0x17 - "\u0018\u0019\u0092\u008F\u001C\u001D\u001E\u001F" + // 0x18 - 0x1F - "\u0080\u0081\u0082\u0083\u0084\n\u0017\u001B" + // 0x20 - 0x27 - "\u0088\u0089\u008A\u008B\u008C\u0005\u0006\u0007" + // 0x28 - 0x2F - "\u0090\u0091\u0016\u0093\u0094\u0095\u0096\u0004" + // 0x30 - 0x37 - "\u0098\u0099\u009A\u009B\u0014\u0015\u009E\u001A" + // 0x38 - 0x3F - "\u0020\u00A0\u0161\u00E4\u0105\u012F\u016B\u00E5" + // 0x40 - 0x47 - "\u0113\u017E\u00A2\u002E\u003C\u0028\u002B\u007C" + // 0x48 - 0x4F - "\u0026\u00E9\u0119\u0117\u010D\u0173\u201E\u201C" + // 0x50 - 0x57 - "\u0123\u00DF\u0021\u0024\u002A\u0029\u003B\u00AC" + // 0x58 - 0x5F - "\u002D\u002F\u0160\u00C4\u0104\u012E\u016A\u00C5" + // 0x60 - 0x67 - "\u0112\u017D\u00A6\u002C\u0025\u005F\u003E\u003F" + // 0x68 - 0x6F - "\u00F8\u00C9\u0118\u0116\u010C\u0172\u012A\u013B" + // 0x70 - 0x77 - "\u0122\u0060\u003A\u0023\u0040\'\u003D\""; // 0x78 - 0x7F - - } - - private static class Encoder extends SingleByteEncoder { - public Encoder(Charset cs) { - super(cs, index1, index2, 0xFF00, 0x00FF, 8); - } - - private final static String index2 = - - - "\u0000\u0001\u0002\u0003\u0037\u002D\u002E\u002F" + - "\u0016\u0005\u0015\u000B\f\r\u000E\u000F" + - "\u0010\u0011\u0012\u0013\u003C\u003D\u0032\u0026" + - "\u0018\u0019\u003F\'\u001C\u001D\u001E\u001F" + - "\u0040\u005A\u007F\u007B\u005B\u006C\u0050\u007D" + - "\u004D\u005D\\\u004E\u006B\u0060\u004B\u0061" + - "\u00F0\u00F1\u00F2\u00F3\u00F4\u00F5\u00F6\u00F7" + - "\u00F8\u00F9\u007A\u005E\u004C\u007E\u006E\u006F" + - "\u007C\u00C1\u00C2\u00C3\u00C4\u00C5\u00C6\u00C7" + - "\u00C8\u00C9\u00D1\u00D2\u00D3\u00D4\u00D5\u00D6" + - "\u00D7\u00D8\u00D9\u00E2\u00E3\u00E4\u00E5\u00E6" + - "\u00E7\u00E8\u00E9\u00BA\u00E0\u00BB\u00B0\u006D" + - "\u0079\u0081\u0082\u0083\u0084\u0085\u0086\u0087" + - "\u0088\u0089\u0091\u0092\u0093\u0094\u0095\u0096" + - "\u0097\u0098\u0099\u00A2\u00A3\u00A4\u00A5\u00A6" + - "\u00A7\u00A8\u00A9\u00C0\u004F\u00D0\u00A1\u0007" + - "\u0020\u0021\"\u0023\u0024\u0015\u0006\u0017" + - "\u0028\u0029\u002A\u002B\u002C\t\n\u001B" + - "\u0030\u0031\u001A\u0033\u0034\u0035\u0036\b" + - "\u0038\u0039\u003A\u003B\u0004\u0014\u003E\u00FF" + - "\u0041\u0000\u004A\u00B1\u009F\u0000\u006A\u00B5" + - "\u0000\u00B4\u0000\u008A\u005F\u00CA\u00AF\u0000" + - "\u0090\u008F\u00EA\u00FA\u0000\u00A0\u00B6\u00B3" + - "\u0000\u00DA\u0000\u008B\u00B7\u00B8\u00B9\u0000" + - "\u0000\u0000\u0000\u0000\u0063\u0067\u009E\u0000" + - "\u0000\u0071\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u00EE\u0000\u00EF\u00EC\u00BF" + - "\u0080\u0000\u0000\u0000\u00FC\u0000\u0000\u0059" + - "\u0000\u0000\u0000\u0000\u0043\u0047\u009C\u0000" + - "\u0000\u0051\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u00CE\u0000\u00CF\u00CC\u00E1" + - "\u0070\u0000\u0000\u0000\u00DC\u0000\u0000\u0000" + - "\u00AC\u008C\u0000\u0000\u0064\u0044\u00FB\u00DB" + - "\u0000\u0000\u0000\u0000\u0074\u0054\u0000\u0000" + - "\u0000\u0000\u0068\u0048\u0000\u0000\u0073\u0053" + - "\u0072\u0052\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0078\u0058\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0076\u00B2\u0000\u0000\u0065\u0045" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u00BD\u009D" + - "\u0000\u0000\u0000\u0077\u00BE\u0000\u0000\u0000" + - "\u0000\u00FD\u00DD\u00AE\u008E\u00ED\u00CD\u0000" + - "\u0000\u0000\u0000\u0000\u00EB\u00CB\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u009A\u009B" + - "\u0000\u0000\u00FE\u00DE\u0000\u0000\u0000\u0000" + - "\u0062\u0042\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0066\u0046\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0075\u0055\u0000\u0000\u0000\u0000" + - "\u0000\u00BC\u00AB\u00AD\u008D\u0069\u0049\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u00DF" + - "\u0000\u0000\u0057\u00AA\u0056\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000"; - - private final static short index1[] = { - 0, 256, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 614, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - - }; - } -} diff --git a/jdk/src/share/classes/sun/nio/cs/ext/IBM1122.java b/jdk/src/share/classes/sun/nio/cs/ext/IBM1122.java deleted file mode 100644 index ff9205b545b..00000000000 --- a/jdk/src/share/classes/sun/nio/cs/ext/IBM1122.java +++ /dev/null @@ -1,262 +0,0 @@ - -/* - * Copyright 2003-2004 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. - */ - -package sun.nio.cs.ext; - - -import java.nio.charset.Charset; -import java.nio.charset.CharsetDecoder; -import java.nio.charset.CharsetEncoder; -import sun.nio.cs.StandardCharsets; -import sun.nio.cs.SingleByteDecoder; -import sun.nio.cs.SingleByteEncoder; -import sun.nio.cs.HistoricallyNamedCharset; - -public class IBM1122 - extends Charset - implements HistoricallyNamedCharset -{ - - public IBM1122() { - super("x-IBM1122", ExtendedCharsets.aliasesFor("x-IBM1122")); - } - - public String historicalName() { - return "Cp1122"; - } - - public boolean contains(Charset cs) { - return (cs instanceof IBM1122); - } - - public CharsetDecoder newDecoder() { - return new Decoder(this); - } - - public CharsetEncoder newEncoder() { - return new Encoder(this); - } - - - /** - * These accessors are temporarily supplied while sun.io - * converters co-exist with the sun.nio.cs.{ext} charset coders - * These facilitate sharing of conversion tables between the - * two co-existing implementations. When sun.io converters - * are made extinct these will be unncessary and should be removed - */ - - public String getDecoderSingleByteMappings() { - return Decoder.byteToCharTable; - - } - - public short[] getEncoderIndex1() { - return Encoder.index1; - - } - public String getEncoderIndex2() { - return Encoder.index2; - - } - - private static class Decoder extends SingleByteDecoder { - public Decoder(Charset cs) { - super(cs, byteToCharTable); - } - - private final static String byteToCharTable = - - "\u00D8\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + // 0x80 - 0x87 - "\u0068\u0069\u00AB\u00BB\u0161\u00FD\u017E\u00B1" + // 0x88 - 0x8F - "\u00B0\u006A\u006B\u006C\u006D\u006E\u006F\u0070" + // 0x90 - 0x97 - "\u0071\u0072\u00AA\u00BA\u00E6\u00B8\u00C6\u005D" + // 0x98 - 0x9F - "\u00B5\u00FC\u0073\u0074\u0075\u0076\u0077\u0078" + // 0xA0 - 0xA7 - "\u0079\u007A\u00A1\u00BF\u0160\u00DD\u017D\u00AE" + // 0xA8 - 0xAF - "\u00A2\u00A3\u00A5\u00B7\u00A9\u005B\u00B6\u00BC" + // 0xB0 - 0xB7 - "\u00BD\u00BE\u00AC\u007C\u203E\u00A8\u00B4\u00D7" + // 0xB8 - 0xBF - "\u00E4\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + // 0xC0 - 0xC7 - "\u0048\u0049\u00AD\u00F4\u00A6\u00F2\u00F3\u00F5" + // 0xC8 - 0xCF - "\u00E5\u004A\u004B\u004C\u004D\u004E\u004F\u0050" + // 0xD0 - 0xD7 - "\u0051\u0052\u00B9\u00FB\u007E\u00F9\u00FA\u00FF" + // 0xD8 - 0xDF - "\u00C9\u00F7\u0053\u0054\u0055\u0056\u0057\u0058" + // 0xE0 - 0xE7 - "\u0059\u005A\u00B2\u00D4\u0040\u00D2\u00D3\u00D5" + // 0xE8 - 0xEF - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + // 0xF0 - 0xF7 - "\u0038\u0039\u00B3\u00DB\u00DC\u00D9\u00DA\u009F" + // 0xF8 - 0xFF - "\u0000\u0001\u0002\u0003\u009C\t\u0086\u007F" + // 0x00 - 0x07 - "\u0097\u008D\u008E\u000B\f\r\u000E\u000F" + // 0x08 - 0x0F - "\u0010\u0011\u0012\u0013\u009D\n\b\u0087" + // 0x10 - 0x17 - "\u0018\u0019\u0092\u008F\u001C\u001D\u001E\u001F" + // 0x18 - 0x1F - "\u0080\u0081\u0082\u0083\u0084\n\u0017\u001B" + // 0x20 - 0x27 - "\u0088\u0089\u008A\u008B\u008C\u0005\u0006\u0007" + // 0x28 - 0x2F - "\u0090\u0091\u0016\u0093\u0094\u0095\u0096\u0004" + // 0x30 - 0x37 - "\u0098\u0099\u009A\u009B\u0014\u0015\u009E\u001A" + // 0x38 - 0x3F - "\u0020\u00A0\u00E2\u007B\u00E0\u00E1\u00E3\u007D" + // 0x40 - 0x47 - "\u00E7\u00F1\u00A7\u002E\u003C\u0028\u002B\u0021" + // 0x48 - 0x4F - "\u0026\u0060\u00EA\u00EB\u00E8\u00ED\u00EE\u00EF" + // 0x50 - 0x57 - "\u00EC\u00DF\u00A4\u00C5\u002A\u0029\u003B\u005E" + // 0x58 - 0x5F - "\u002D\u002F\u00C2\u0023\u00C0\u00C1\u00C3\u0024" + // 0x60 - 0x67 - "\u00C7\u00D1\u00F6\u002C\u0025\u005F\u003E\u003F" + // 0x68 - 0x6F - "\u00F8\\\u00CA\u00CB\u00C8\u00CD\u00CE\u00CF" + // 0x70 - 0x77 - "\u00CC\u00E9\u003A\u00C4\u00D6\'\u003D\""; // 0x78 - 0x7F - - } - - private static class Encoder extends SingleByteEncoder { - public Encoder(Charset cs) { - super(cs, index1, index2, 0xFF00, 0x00FF, 8); - } - - private final static String index2 = - - - "\u0000\u0001\u0002\u0003\u0037\u002D\u002E\u002F" + - "\u0016\u0005\u0015\u000B\f\r\u000E\u000F" + - "\u0010\u0011\u0012\u0013\u003C\u003D\u0032\u0026" + - "\u0018\u0019\u003F\'\u001C\u001D\u001E\u001F" + - "\u0040\u004F\u007F\u0063\u0067\u006C\u0050\u007D" + - "\u004D\u005D\\\u004E\u006B\u0060\u004B\u0061" + - "\u00F0\u00F1\u00F2\u00F3\u00F4\u00F5\u00F6\u00F7" + - "\u00F8\u00F9\u007A\u005E\u004C\u007E\u006E\u006F" + - "\u00EC\u00C1\u00C2\u00C3\u00C4\u00C5\u00C6\u00C7" + - "\u00C8\u00C9\u00D1\u00D2\u00D3\u00D4\u00D5\u00D6" + - "\u00D7\u00D8\u00D9\u00E2\u00E3\u00E4\u00E5\u00E6" + - "\u00E7\u00E8\u00E9\u00B5\u0071\u009F\u005F\u006D" + - "\u0051\u0081\u0082\u0083\u0084\u0085\u0086\u0087" + - "\u0088\u0089\u0091\u0092\u0093\u0094\u0095\u0096" + - "\u0097\u0098\u0099\u00A2\u00A3\u00A4\u00A5\u00A6" + - "\u00A7\u00A8\u00A9\u0043\u00BB\u0047\u00DC\u0007" + - "\u0020\u0021\"\u0023\u0024\u0015\u0006\u0017" + - "\u0028\u0029\u002A\u002B\u002C\t\n\u001B" + - "\u0030\u0031\u001A\u0033\u0034\u0035\u0036\b" + - "\u0038\u0039\u003A\u003B\u0004\u0014\u003E\u00FF" + - "\u0041\u00AA\u00B0\u00B1\u005A\u00B2\u00CC\u004A" + - "\u00BD\u00B4\u009A\u008A\u00BA\u00CA\u00AF\u0000" + - "\u0090\u008F\u00EA\u00FA\u00BE\u00A0\u00B6\u00B3" + - "\u009D\u00DA\u009B\u008B\u00B7\u00B8\u00B9\u00AB" + - "\u0064\u0065\u0062\u0066\u007B\u005B\u009E\u0068" + - "\u0074\u00E0\u0072\u0073\u0078\u0075\u0076\u0077" + - "\u0000\u0069\u00ED\u00EE\u00EB\u00EF\u007C\u00BF" + - "\u0080\u00FD\u00FE\u00FB\u00FC\u00AD\u0000\u0059" + - "\u0044\u0045\u0042\u0046\u00C0\u00D0\u009C\u0048" + - "\u0054\u0079\u0052\u0053\u0058\u0055\u0056\u0057" + - "\u0000\u0049\u00CD\u00CE\u00CB\u00CF\u006A\u00E1" + - "\u0070\u00DD\u00DE\u00DB\u00A1\u008D\u0000\u00DF" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00AC\u008C\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u00AE\u008E\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u00BC" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000"; - - private final static short index1[] = { - 0, 256, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 577, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - - }; - } -} diff --git a/jdk/src/share/classes/sun/nio/cs/ext/IBM1123.java b/jdk/src/share/classes/sun/nio/cs/ext/IBM1123.java deleted file mode 100644 index 595277d5c54..00000000000 --- a/jdk/src/share/classes/sun/nio/cs/ext/IBM1123.java +++ /dev/null @@ -1,272 +0,0 @@ - -/* - * Copyright 2003-2004 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. - */ - -package sun.nio.cs.ext; - - -import java.nio.charset.Charset; -import java.nio.charset.CharsetDecoder; -import java.nio.charset.CharsetEncoder; -import sun.nio.cs.StandardCharsets; -import sun.nio.cs.SingleByteDecoder; -import sun.nio.cs.SingleByteEncoder; -import sun.nio.cs.HistoricallyNamedCharset; - -public class IBM1123 - extends Charset - implements HistoricallyNamedCharset -{ - - public IBM1123() { - super("x-IBM1123", ExtendedCharsets.aliasesFor("x-IBM1123")); - } - - public String historicalName() { - return "Cp1123"; - } - - public boolean contains(Charset cs) { - return (cs instanceof IBM1123); - } - - public CharsetDecoder newDecoder() { - return new Decoder(this); - } - - public CharsetEncoder newEncoder() { - return new Encoder(this); - } - - - /** - * These accessors are temporarily supplied while sun.io - * converters co-exist with the sun.nio.cs.{ext} charset coders - * These facilitate sharing of conversion tables between the - * two co-existing implementations. When sun.io converters - * are made extinct these will be unncessary and should be removed - */ - - public String getDecoderSingleByteMappings() { - return Decoder.byteToCharTable; - - } - - public short[] getEncoderIndex1() { - return Encoder.index1; - - } - public String getEncoderIndex2() { - return Encoder.index2; - - } - - private static class Decoder extends SingleByteDecoder { - public Decoder(Charset cs) { - super(cs, byteToCharTable); - } - - private final static String byteToCharTable = - - "\u0446\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + // 0x80 - 0x87 - "\u0068\u0069\u0434\u0435\u0444\u0433\u0445\u0438" + // 0x88 - 0x8F - "\u0439\u006A\u006B\u006C\u006D\u006E\u006F\u0070" + // 0x90 - 0x97 - "\u0071\u0072\u043A\u043B\u043C\u043D\u043E\u043F" + // 0x98 - 0x9F - "\u044F\u007E\u0073\u0074\u0075\u0076\u0077\u0078" + // 0xA0 - 0xA7 - "\u0079\u007A\u0440\u0441\u0442\u0443\u0436\u0432" + // 0xA8 - 0xAF - "\u044C\u044B\u0437\u0448\u044D\u0449\u0447\u044A" + // 0xB0 - 0xB7 - "\u042E\u0410\u0411\u0426\u0414\u0415\u0424\u0413" + // 0xB8 - 0xBF - "\u007B\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + // 0xC0 - 0xC7 - "\u0048\u0049\u0425\u0418\u0419\u041A\u041B\u041C" + // 0xC8 - 0xCF - "\u007D\u004A\u004B\u004C\u004D\u004E\u004F\u0050" + // 0xD0 - 0xD7 - "\u0051\u0052\u041D\u041E\u041F\u042F\u0420\u0421" + // 0xD8 - 0xDF - "\\\u00A7\u0053\u0054\u0055\u0056\u0057\u0058" + // 0xE0 - 0xE7 - "\u0059\u005A\u0422\u0423\u0416\u0412\u042C\u042B" + // 0xE8 - 0xEF - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + // 0xF0 - 0xF7 - "\u0038\u0039\u0417\u0428\u042D\u0429\u0427\u009F" + // 0xF8 - 0xFF - "\u0000\u0001\u0002\u0003\u009C\t\u0086\u007F" + // 0x00 - 0x07 - "\u0097\u008D\u008E\u000B\f\r\u000E\u000F" + // 0x08 - 0x0F - "\u0010\u0011\u0012\u0013\u009D\n\b\u0087" + // 0x10 - 0x17 - "\u0018\u0019\u0092\u008F\u001C\u001D\u001E\u001F" + // 0x18 - 0x1F - "\u0080\u0081\u0082\u0083\u0084\n\u0017\u001B" + // 0x20 - 0x27 - "\u0088\u0089\u008A\u008B\u008C\u0005\u0006\u0007" + // 0x28 - 0x2F - "\u0090\u0091\u0016\u0093\u0094\u0095\u0096\u0004" + // 0x30 - 0x37 - "\u0098\u0099\u009A\u009B\u0014\u0015\u009E\u001A" + // 0x38 - 0x3F - "\u0020\u00A0\u0452\u0491\u0451\u0454\u0455\u0456" + // 0x40 - 0x47 - "\u0457\u0458\u005B\u002E\u003C\u0028\u002B\u0021" + // 0x48 - 0x4F - "\u0026\u0459\u045A\u045B\u045C\u045E\u045F\u042A" + // 0x50 - 0x57 - "\u2116\u0402\u005D\u0024\u002A\u0029\u003B\u005E" + // 0x58 - 0x5F - "\u002D\u002F\u0490\u0401\u0404\u0405\u0406\u0407" + // 0x60 - 0x67 - "\u0408\u0409\u007C\u002C\u0025\u005F\u003E\u003F" + // 0x68 - 0x6F - "\u040A\u040B\u040C\u00AD\u040E\u040F\u044E\u0430" + // 0x70 - 0x77 - "\u0431\u0060\u003A\u0023\u0040\'\u003D\""; // 0x78 - 0x7F - - } - - private static class Encoder extends SingleByteEncoder { - public Encoder(Charset cs) { - super(cs, index1, index2, 0xFF00, 0x00FF, 8); - } - - private final static String index2 = - - - "\u0000\u0001\u0002\u0003\u0037\u002D\u002E\u002F" + - "\u0016\u0005\u0015\u000B\f\r\u000E\u000F" + - "\u0010\u0011\u0012\u0013\u003C\u003D\u0032\u0026" + - "\u0018\u0019\u003F\'\u001C\u001D\u001E\u001F" + - "\u0040\u004F\u007F\u007B\u005B\u006C\u0050\u007D" + - "\u004D\u005D\\\u004E\u006B\u0060\u004B\u0061" + - "\u00F0\u00F1\u00F2\u00F3\u00F4\u00F5\u00F6\u00F7" + - "\u00F8\u00F9\u007A\u005E\u004C\u007E\u006E\u006F" + - "\u007C\u00C1\u00C2\u00C3\u00C4\u00C5\u00C6\u00C7" + - "\u00C8\u00C9\u00D1\u00D2\u00D3\u00D4\u00D5\u00D6" + - "\u00D7\u00D8\u00D9\u00E2\u00E3\u00E4\u00E5\u00E6" + - "\u00E7\u00E8\u00E9\u004A\u00E0\u005A\u005F\u006D" + - "\u0079\u0081\u0082\u0083\u0084\u0085\u0086\u0087" + - "\u0088\u0089\u0091\u0092\u0093\u0094\u0095\u0096" + - "\u0097\u0098\u0099\u00A2\u00A3\u00A4\u00A5\u00A6" + - "\u00A7\u00A8\u00A9\u00C0\u006A\u00D0\u00A1\u0007" + - "\u0020\u0021\"\u0023\u0024\u0015\u0006\u0017" + - "\u0028\u0029\u002A\u002B\u002C\t\n\u001B" + - "\u0030\u0031\u001A\u0033\u0034\u0035\u0036\b" + - "\u0038\u0039\u003A\u003B\u0004\u0014\u003E\u00FF" + - "\u0041\u0000\u0000\u0000\u0000\u0000\u0000\u00E1" + - "\u0000\u0000\u0000\u0000\u0000\u0073\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0063\u0059" + - "\u0000\u0064\u0065\u0066\u0067\u0068\u0069\u0070" + - "\u0071\u0072\u0000\u0074\u0075\u00B9\u00BA\u00ED" + - "\u00BF\u00BC\u00BD\u00EC\u00FA\u00CB\u00CC\u00CD" + - "\u00CE\u00CF\u00DA\u00DB\u00DC\u00DE\u00DF\u00EA" + - "\u00EB\u00BE\u00CA\u00BB\u00FE\u00FB\u00FD\u0057" + - "\u00EF\u00EE\u00FC\u00B8\u00DD\u0077\u0078\u00AF" + - "\u008D\u008A\u008B\u00AE\u00B2\u008F\u0090\u009A" + - "\u009B\u009C\u009D\u009E\u009F\u00AA\u00AB\u00AC" + - "\u00AD\u008C\u008E\u0080\u00B6\u00B3\u00B5\u00B7" + - "\u00B1\u00B0\u00B4\u0076\u00A0\u0000\u0044\u0042" + - "\u0000\u0045\u0046\u0047\u0048\u0049\u0051\u0052" + - "\u0053\u0054\u0000\u0055\u0056\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0062\u0043\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0058\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000"; - - private final static short index1[] = { - 0, 174, 174, 174, 429, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 663, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - - }; - } -} diff --git a/jdk/src/share/classes/sun/nio/cs/ext/IBM1124.java b/jdk/src/share/classes/sun/nio/cs/ext/IBM1124.java deleted file mode 100644 index 8f7a112f5b5..00000000000 --- a/jdk/src/share/classes/sun/nio/cs/ext/IBM1124.java +++ /dev/null @@ -1,272 +0,0 @@ - -/* - * Copyright 2003-2004 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. - */ - -package sun.nio.cs.ext; - - -import java.nio.charset.Charset; -import java.nio.charset.CharsetDecoder; -import java.nio.charset.CharsetEncoder; -import sun.nio.cs.StandardCharsets; -import sun.nio.cs.SingleByteDecoder; -import sun.nio.cs.SingleByteEncoder; -import sun.nio.cs.HistoricallyNamedCharset; - -public class IBM1124 - extends Charset - implements HistoricallyNamedCharset -{ - - public IBM1124() { - super("x-IBM1124", ExtendedCharsets.aliasesFor("x-IBM1124")); - } - - public String historicalName() { - return "Cp1124"; - } - - public boolean contains(Charset cs) { - return (cs instanceof IBM1124); - } - - public CharsetDecoder newDecoder() { - return new Decoder(this); - } - - public CharsetEncoder newEncoder() { - return new Encoder(this); - } - - - /** - * These accessors are temporarily supplied while sun.io - * converters co-exist with the sun.nio.cs.{ext} charset coders - * These facilitate sharing of conversion tables between the - * two co-existing implementations. When sun.io converters - * are made extinct these will be unncessary and should be removed - */ - - public String getDecoderSingleByteMappings() { - return Decoder.byteToCharTable; - - } - - public short[] getEncoderIndex1() { - return Encoder.index1; - - } - public String getEncoderIndex2() { - return Encoder.index2; - - } - - private static class Decoder extends SingleByteDecoder { - public Decoder(Charset cs) { - super(cs, byteToCharTable); - } - - private final static String byteToCharTable = - - "\u0080\u0081\u0082\u0083\u0084\u0085\u0086\u0087" + // 0x80 - 0x87 - "\u0088\u0089\u008A\u008B\u008C\u008D\u008E\u008F" + // 0x88 - 0x8F - "\u0090\u0091\u0092\u0093\u0094\u0095\u0096\u0097" + // 0x90 - 0x97 - "\u0098\u0099\u009A\u009B\u009C\u009D\u009E\u009F" + // 0x98 - 0x9F - "\u00A0\u0401\u0402\u0490\u0404\u0405\u0406\u0407" + // 0xA0 - 0xA7 - "\u0408\u0409\u040A\u040B\u040C\u00AD\u040E\u040F" + // 0xA8 - 0xAF - "\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417" + // 0xB0 - 0xB7 - "\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F" + // 0xB8 - 0xBF - "\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427" + // 0xC0 - 0xC7 - "\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F" + // 0xC8 - 0xCF - "\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437" + // 0xD0 - 0xD7 - "\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F" + // 0xD8 - 0xDF - "\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447" + // 0xE0 - 0xE7 - "\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F" + // 0xE8 - 0xEF - "\u2116\u0451\u0452\u0491\u0454\u0455\u0456\u0457" + // 0xF0 - 0xF7 - "\u0458\u0459\u045A\u045B\u045C\u00A7\u045E\u045F" + // 0xF8 - 0xFF - "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007" + // 0x00 - 0x07 - "\b\t\n\u000B\f\r\u000E\u000F" + // 0x08 - 0x0F - "\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017" + // 0x10 - 0x17 - "\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F" + // 0x18 - 0x1F - "\u0020\u0021\"\u0023\u0024\u0025\u0026\'" + // 0x20 - 0x27 - "\u0028\u0029\u002A\u002B\u002C\u002D\u002E\u002F" + // 0x28 - 0x2F - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + // 0x30 - 0x37 - "\u0038\u0039\u003A\u003B\u003C\u003D\u003E\u003F" + // 0x38 - 0x3F - "\u0040\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + // 0x40 - 0x47 - "\u0048\u0049\u004A\u004B\u004C\u004D\u004E\u004F" + // 0x48 - 0x4F - "\u0050\u0051\u0052\u0053\u0054\u0055\u0056\u0057" + // 0x50 - 0x57 - "\u0058\u0059\u005A\u005B\\\u005D\u005E\u005F" + // 0x58 - 0x5F - "\u0060\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + // 0x60 - 0x67 - "\u0068\u0069\u006A\u006B\u006C\u006D\u006E\u006F" + // 0x68 - 0x6F - "\u0070\u0071\u0072\u0073\u0074\u0075\u0076\u0077" + // 0x70 - 0x77 - "\u0078\u0079\u007A\u007B\u007C\u007D\u007E\u007F"; // 0x78 - 0x7F - - } - - private static class Encoder extends SingleByteEncoder { - public Encoder(Charset cs) { - super(cs, index1, index2, 0xFF00, 0x00FF, 8); - } - - private final static String index2 = - - - "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007" + - "\b\t\n\u000B\f\r\u000E\u000F" + - "\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017" + - "\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F" + - "\u0020\u0021\"\u0023\u0024\u0025\u0026\'" + - "\u0028\u0029\u002A\u002B\u002C\u002D\u002E\u002F" + - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + - "\u0038\u0039\u003A\u003B\u003C\u003D\u003E\u003F" + - "\u0040\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + - "\u0048\u0049\u004A\u004B\u004C\u004D\u004E\u004F" + - "\u0050\u0051\u0052\u0053\u0054\u0055\u0056\u0057" + - "\u0058\u0059\u005A\u005B\\\u005D\u005E\u005F" + - "\u0060\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + - "\u0068\u0069\u006A\u006B\u006C\u006D\u006E\u006F" + - "\u0070\u0071\u0072\u0073\u0074\u0075\u0076\u0077" + - "\u0078\u0079\u007A\u007B\u007C\u007D\u007E\u007F" + - "\u0080\u0081\u0082\u0083\u0084\u0085\u0086\u0087" + - "\u0088\u0089\u008A\u008B\u008C\u008D\u008E\u008F" + - "\u0090\u0091\u0092\u0093\u0094\u0095\u0096\u0097" + - "\u0098\u0099\u009A\u009B\u009C\u009D\u009E\u009F" + - "\u00A0\u0000\u0000\u0000\u0000\u0000\u0000\u00FD" + - "\u0000\u0000\u0000\u0000\u0000\u00AD\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u00A1\u00A2" + - "\u0000\u00A4\u00A5\u00A6\u00A7\u00A8\u00A9\u00AA" + - "\u00AB\u00AC\u0000\u00AE\u00AF\u00B0\u00B1\u00B2" + - "\u00B3\u00B4\u00B5\u00B6\u00B7\u00B8\u00B9\u00BA" + - "\u00BB\u00BC\u00BD\u00BE\u00BF\u00C0\u00C1\u00C2" + - "\u00C3\u00C4\u00C5\u00C6\u00C7\u00C8\u00C9\u00CA" + - "\u00CB\u00CC\u00CD\u00CE\u00CF\u00D0\u00D1\u00D2" + - "\u00D3\u00D4\u00D5\u00D6\u00D7\u00D8\u00D9\u00DA" + - "\u00DB\u00DC\u00DD\u00DE\u00DF\u00E0\u00E1\u00E2" + - "\u00E3\u00E4\u00E5\u00E6\u00E7\u00E8\u00E9\u00EA" + - "\u00EB\u00EC\u00ED\u00EE\u00EF\u0000\u00F1\u00F2" + - "\u0000\u00F4\u00F5\u00F6\u00F7\u00F8\u00F9\u00FA" + - "\u00FB\u00FC\u0000\u00FE\u00FF\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u00A3\u00F3\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u00F0\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000"; - - private final static short index1[] = { - 0, 174, 174, 174, 429, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 663, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - - }; - } -} diff --git a/jdk/src/share/classes/sun/nio/cs/ext/IBM1140.java b/jdk/src/share/classes/sun/nio/cs/ext/IBM1140.java deleted file mode 100644 index 45509dafbe1..00000000000 --- a/jdk/src/share/classes/sun/nio/cs/ext/IBM1140.java +++ /dev/null @@ -1,191 +0,0 @@ -/* - * Copyright 2003-2004 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. - */ - -package sun.nio.cs.ext; - - -import java.nio.charset.Charset; -import java.nio.charset.CharsetDecoder; -import java.nio.charset.CharsetEncoder; -import sun.nio.cs.StandardCharsets; -import sun.nio.cs.SingleByteDecoder; -import sun.nio.cs.SingleByteEncoder; -import sun.nio.cs.HistoricallyNamedCharset; - -public class IBM1140 - extends Charset - implements HistoricallyNamedCharset -{ - - public IBM1140() { - super("IBM01140", ExtendedCharsets.aliasesFor("IBM01140")); - } - - public String historicalName() { - return "Cp1140"; - } - - public boolean contains(Charset cs) { - return (cs instanceof IBM1140); - } - - public CharsetDecoder newDecoder() { - return new Decoder(this); - } - - public CharsetEncoder newEncoder() { - return new Encoder(this); - } - - /** - * These accessors are temporarily supplied while sun.io - * converters co-exist with the sun.nio.cs.{ext} charset coders - * These facilitate sharing of conversion tables between the - * two co-existing implementations. When sun.io converters - * are made extinct these will be unncessary and should be removed - */ - - public short[] getEncoderIndex1() { - return Encoder.index1; - } - - public String getEncoderIndex2() { - return Encoder.index2; - } - - private static class Decoder extends IBM037.Decoder { - public Decoder(Charset cs) { - super(cs); - } - - public char decode(int byteIndex) { - return (byteIndex == (byte)0x9F) ? '\u20AC' : super.decode(byteIndex); - } - } - - private static class Encoder extends SingleByteEncoder { - public Encoder(Charset cs) { - super(cs, index1, index2, 0xFF00, 0x00FF, 8); - } - - private final static String index2 = - - "\u0000\u0001\u0002\u0003\u0037\u002D\u002E\u002F" + - "\u0016\u0005\u0025\u000B\f\r\u000E\u000F" + - "\u0010\u0011\u0012\u0013\u003C\u003D\u0032\u0026" + - "\u0018\u0019\u003F\'\u001C\u001D\u001E\u001F" + - "\u0040\u005A\u007F\u007B\u005B\u006C\u0050\u007D" + - "\u004D\u005D\\\u004E\u006B\u0060\u004B\u0061" + - "\u00F0\u00F1\u00F2\u00F3\u00F4\u00F5\u00F6\u00F7" + - "\u00F8\u00F9\u007A\u005E\u004C\u007E\u006E\u006F" + - "\u007C\u00C1\u00C2\u00C3\u00C4\u00C5\u00C6\u00C7" + - "\u00C8\u00C9\u00D1\u00D2\u00D3\u00D4\u00D5\u00D6" + - "\u00D7\u00D8\u00D9\u00E2\u00E3\u00E4\u00E5\u00E6" + - "\u00E7\u00E8\u00E9\u00BA\u00E0\u00BB\u00B0\u006D" + - "\u0079\u0081\u0082\u0083\u0084\u0085\u0086\u0087" + - "\u0088\u0089\u0091\u0092\u0093\u0094\u0095\u0096" + - "\u0097\u0098\u0099\u00A2\u00A3\u00A4\u00A5\u00A6" + - "\u00A7\u00A8\u00A9\u00C0\u004F\u00D0\u00A1\u0007" + - "\u0020\u0021\"\u0023\u0024\u0015\u0006\u0017" + - "\u0028\u0029\u002A\u002B\u002C\t\n\u001B" + - "\u0030\u0031\u001A\u0033\u0034\u0035\u0036\b" + - "\u0038\u0039\u003A\u003B\u0004\u0014\u003E\u00FF" + - "\u0041\u00AA\u004A\u00B1\u0000\u00B2\u006A\u00B5" + - "\u00BD\u00B4\u009A\u008A\u005F\u00CA\u00AF\u00BC" + - "\u0090\u008F\u00EA\u00FA\u00BE\u00A0\u00B6\u00B3" + - "\u009D\u00DA\u009B\u008B\u00B7\u00B8\u00B9\u00AB" + - "\u0064\u0065\u0062\u0066\u0063\u0067\u009E\u0068" + - "\u0074\u0071\u0072\u0073\u0078\u0075\u0076\u0077" + - "\u00AC\u0069\u00ED\u00EE\u00EB\u00EF\u00EC\u00BF" + - "\u0080\u00FD\u00FE\u00FB\u00FC\u00AD\u00AE\u0059" + - "\u0044\u0045\u0042\u0046\u0043\u0047\u009C\u0048" + - "\u0054\u0051\u0052\u0053\u0058\u0055\u0056\u0057" + - "\u008C\u0049\u00CD\u00CE\u00CB\u00CF\u00CC\u00E1" + - "\u0070\u00DD\u00DE\u00DB\u00DC\u008D\u008E\u00DF" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u009F\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000"; - - private final static short index1[] = { - 0, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 340, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - }; - - } -} diff --git a/jdk/src/share/classes/sun/nio/cs/ext/IBM1141.java b/jdk/src/share/classes/sun/nio/cs/ext/IBM1141.java deleted file mode 100644 index 40050ed85d1..00000000000 --- a/jdk/src/share/classes/sun/nio/cs/ext/IBM1141.java +++ /dev/null @@ -1,189 +0,0 @@ -/* - * Copyright 2003-2004 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. - */ - -package sun.nio.cs.ext; - - -import java.nio.charset.Charset; -import java.nio.charset.CharsetDecoder; -import java.nio.charset.CharsetEncoder; -import sun.nio.cs.StandardCharsets; -import sun.nio.cs.SingleByteDecoder; -import sun.nio.cs.SingleByteEncoder; -import sun.nio.cs.HistoricallyNamedCharset; - -public class IBM1141 - extends Charset - implements HistoricallyNamedCharset -{ - - public IBM1141() { - super("IBM01141", ExtendedCharsets.aliasesFor("IBM01141")); - } - - public String historicalName() { - return "Cp1141"; - } - - public boolean contains(Charset cs) { - return (cs instanceof IBM1141); - } - - public CharsetDecoder newDecoder() { - return new Decoder(this); - } - - public CharsetEncoder newEncoder() { - return new Encoder(this); - } - - /** - * These accessors are temporarily supplied while sun.io - * converters co-exist with the sun.nio.cs.{ext} charset coders - * These facilitate sharing of conversion tables between the - * two co-existing implementations. When sun.io converters - * are made extinct these will be unncessary and should be removed - */ - - public short[] getEncoderIndex1() { - return Encoder.index1; - } - - public String getEncoderIndex2() { - return Encoder.index2; - } - private static class Decoder extends IBM273.Decoder { - public Decoder(Charset cs) { - super(cs); - } - - public char decode(int byteIndex) { - return (byteIndex == (byte)0x9F) ? '\u20AC' : super.decode(byteIndex); - } - } - - private static class Encoder extends SingleByteEncoder { - public Encoder(Charset cs) { - super(cs, index1, index2, 0xFF00, 0x00FF, 8); - } - - private final static String index2 = - - "\u0000\u0001\u0002\u0003\u0037\u002D\u002E\u002F" + - "\u0016\u0005\u0025\u000B\f\r\u000E\u000F" + - "\u0010\u0011\u0012\u0013\u003C\u003D\u0032\u0026" + - "\u0018\u0019\u003F\'\u001C\u001D\u001E\u001F" + - "\u0040\u004F\u007F\u007B\u005B\u006C\u0050\u007D" + - "\u004D\u005D\\\u004E\u006B\u0060\u004B\u0061" + - "\u00F0\u00F1\u00F2\u00F3\u00F4\u00F5\u00F6\u00F7" + - "\u00F8\u00F9\u007A\u005E\u004C\u007E\u006E\u006F" + - "\u00B5\u00C1\u00C2\u00C3\u00C4\u00C5\u00C6\u00C7" + - "\u00C8\u00C9\u00D1\u00D2\u00D3\u00D4\u00D5\u00D6" + - "\u00D7\u00D8\u00D9\u00E2\u00E3\u00E4\u00E5\u00E6" + - "\u00E7\u00E8\u00E9\u0063\u00EC\u00FC\u005F\u006D" + - "\u0079\u0081\u0082\u0083\u0084\u0085\u0086\u0087" + - "\u0088\u0089\u0091\u0092\u0093\u0094\u0095\u0096" + - "\u0097\u0098\u0099\u00A2\u00A3\u00A4\u00A5\u00A6" + - "\u00A7\u00A8\u00A9\u0043\u00BB\u00DC\u0059\u0007" + - "\u0020\u0021\"\u0023\u0024\u0015\u0006\u0017" + - "\u0028\u0029\u002A\u002B\u002C\t\n\u001B" + - "\u0030\u0031\u001A\u0033\u0034\u0035\u0036\b" + - "\u0038\u0039\u003A\u003B\u0004\u0014\u003E\u00FF" + - "\u0041\u00AA\u00B0\u00B1\u0000\u00B2\u00CC\u007C" + - "\u00BD\u00B4\u009A\u008A\u00BA\u00CA\u00AF\u00BC" + - "\u0090\u008F\u00EA\u00FA\u00BE\u00A0\u00B6\u00B3" + - "\u009D\u00DA\u009B\u008B\u00B7\u00B8\u00B9\u00AB" + - "\u0064\u0065\u0062\u0066\u004A\u0067\u009E\u0068" + - "\u0074\u0071\u0072\u0073\u0078\u0075\u0076\u0077" + - "\u00AC\u0069\u00ED\u00EE\u00EB\u00EF\u00E0\u00BF" + - "\u0080\u00FD\u00FE\u00FB\u005A\u00AD\u00AE\u00A1" + - "\u0044\u0045\u0042\u0046\u00C0\u0047\u009C\u0048" + - "\u0054\u0051\u0052\u0053\u0058\u0055\u0056\u0057" + - "\u008C\u0049\u00CD\u00CE\u00CB\u00CF\u006A\u00E1" + - "\u0070\u00DD\u00DE\u00DB\u00D0\u008D\u008E\u00DF" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u009F\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000"; - - private final static short index1[] = { - 0, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 340, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - }; - } -} diff --git a/jdk/src/share/classes/sun/nio/cs/ext/IBM1142.java b/jdk/src/share/classes/sun/nio/cs/ext/IBM1142.java deleted file mode 100644 index e0682803948..00000000000 --- a/jdk/src/share/classes/sun/nio/cs/ext/IBM1142.java +++ /dev/null @@ -1,190 +0,0 @@ -/* - * Copyright 2003-2004 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. - */ - -package sun.nio.cs.ext; - - -import java.nio.charset.Charset; -import java.nio.charset.CharsetDecoder; -import java.nio.charset.CharsetEncoder; -import sun.nio.cs.StandardCharsets; -import sun.nio.cs.SingleByteDecoder; -import sun.nio.cs.SingleByteEncoder; -import sun.nio.cs.HistoricallyNamedCharset; - -public class IBM1142 - extends Charset - implements HistoricallyNamedCharset -{ - - public IBM1142() { - super("IBM01142", ExtendedCharsets.aliasesFor("IBM01142")); - } - - public String historicalName() { - return "Cp1142"; - } - - public boolean contains(Charset cs) { - return (cs instanceof IBM1142); - } - - public CharsetDecoder newDecoder() { - return new Decoder(this); - } - - public CharsetEncoder newEncoder() { - return new Encoder(this); - } - - /** - * These accessors are temporarily supplied while sun.io - * converters co-exist with the sun.nio.cs.{ext} charset coders - * These facilitate sharing of conversion tables between the - * two co-existing implementations. When sun.io converters - * are made extinct these will be unncessary and should be removed - */ - - public short[] getEncoderIndex1() { - return Encoder.index1; - } - - public String getEncoderIndex2() { - return Encoder.index2; - } - - private static class Decoder extends IBM277.Decoder { - public Decoder(Charset cs) { - super(cs); - } - - public char decode(int byteIndex) { - return (byteIndex == (byte)0x5A) ? '\u20AC' : super.decode(byteIndex); - } - } - - private static class Encoder extends SingleByteEncoder { - public Encoder(Charset cs) { - super(cs, index1, index2, 0xFF00, 0x00FF, 8); - } - - private final static String index2 = - - "\u0000\u0001\u0002\u0003\u0037\u002D\u002E\u002F" + - "\u0016\u0005\u0025\u000B\f\r\u000E\u000F" + - "\u0010\u0011\u0012\u0013\u003C\u003D\u0032\u0026" + - "\u0018\u0019\u003F\'\u001C\u001D\u001E\u001F" + - "\u0040\u004F\u007F\u004A\u0067\u006C\u0050\u007D" + - "\u004D\u005D\\\u004E\u006B\u0060\u004B\u0061" + - "\u00F0\u00F1\u00F2\u00F3\u00F4\u00F5\u00F6\u00F7" + - "\u00F8\u00F9\u007A\u005E\u004C\u007E\u006E\u006F" + - "\u0080\u00C1\u00C2\u00C3\u00C4\u00C5\u00C6\u00C7" + - "\u00C8\u00C9\u00D1\u00D2\u00D3\u00D4\u00D5\u00D6" + - "\u00D7\u00D8\u00D9\u00E2\u00E3\u00E4\u00E5\u00E6" + - "\u00E7\u00E8\u00E9\u009E\u00E0\u009F\u005F\u006D" + - "\u0079\u0081\u0082\u0083\u0084\u0085\u0086\u0087" + - "\u0088\u0089\u0091\u0092\u0093\u0094\u0095\u0096" + - "\u0097\u0098\u0099\u00A2\u00A3\u00A4\u00A5\u00A6" + - "\u00A7\u00A8\u00A9\u009C\u00BB\u0047\u00DC\u0007" + - "\u0020\u0021\"\u0023\u0024\u0015\u0006\u0017" + - "\u0028\u0029\u002A\u002B\u002C\t\n\u001B" + - "\u0030\u0031\u001A\u0033\u0034\u0035\u0036\b" + - "\u0038\u0039\u003A\u003B\u0004\u0014\u003E\u00FF" + - "\u0041\u00AA\u00B0\u00B1\u0000\u00B2\u0070\u00B5" + - "\u00BD\u00B4\u009A\u008A\u00BA\u00CA\u00AF\u00BC" + - "\u0090\u008F\u00EA\u00FA\u00BE\u00A0\u00B6\u00B3" + - "\u009D\u00DA\u009B\u008B\u00B7\u00B8\u00B9\u00AB" + - "\u0064\u0065\u0062\u0066\u0063\u005B\u007B\u0068" + - "\u0074\u0071\u0072\u0073\u0078\u0075\u0076\u0077" + - "\u00AC\u0069\u00ED\u00EE\u00EB\u00EF\u00EC\u00BF" + - "\u007C\u00FD\u00FE\u00FB\u00FC\u00AD\u00AE\u0059" + - "\u0044\u0045\u0042\u0046\u0043\u00D0\u00C0\u0048" + - "\u0054\u0051\u0052\u0053\u0058\u0055\u0056\u0057" + - "\u008C\u0049\u00CD\u00CE\u00CB\u00CF\u00CC\u00E1" + - "\u006A\u00DD\u00DE\u00DB\u00A1\u008D\u008E\u00DF" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u005A\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000"; - - private final static short index1[] = { - 0, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 340, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - }; - } -} diff --git a/jdk/src/share/classes/sun/nio/cs/ext/IBM1143.java b/jdk/src/share/classes/sun/nio/cs/ext/IBM1143.java deleted file mode 100644 index af02e542b7c..00000000000 --- a/jdk/src/share/classes/sun/nio/cs/ext/IBM1143.java +++ /dev/null @@ -1,190 +0,0 @@ -/* - * Copyright 2003-2004 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. - */ - -package sun.nio.cs.ext; - - -import java.nio.charset.Charset; -import java.nio.charset.CharsetDecoder; -import java.nio.charset.CharsetEncoder; -import sun.nio.cs.StandardCharsets; -import sun.nio.cs.SingleByteDecoder; -import sun.nio.cs.SingleByteEncoder; -import sun.nio.cs.HistoricallyNamedCharset; - -public class IBM1143 - extends Charset - implements HistoricallyNamedCharset -{ - - public IBM1143() { - super("IBM01143", ExtendedCharsets.aliasesFor("IBM01143")); - } - - public String historicalName() { - return "Cp1143"; - } - - public boolean contains(Charset cs) { - return (cs instanceof IBM1143); - } - - public CharsetDecoder newDecoder() { - return new Decoder(this); - } - - public CharsetEncoder newEncoder() { - return new Encoder(this); - } - - /** - * These accessors are temporarily supplied while sun.io - * converters co-exist with the sun.nio.cs.{ext} charset coders - * These facilitate sharing of conversion tables between the - * two co-existing implementations. When sun.io converters - * are made extinct these will be unncessary and should be removed - */ - - public short[] getEncoderIndex1() { - return Encoder.index1; - } - - public String getEncoderIndex2() { - return Encoder.index2; - } - - private static class Decoder extends IBM278.Decoder { - public Decoder(Charset cs) { - super(cs); - } - - public char decode(int byteIndex) { - return (byteIndex == (byte)0x5A) ? '\u20AC' : super.decode(byteIndex); - } - } - - private static class Encoder extends SingleByteEncoder { - public Encoder(Charset cs) { - super(cs, index1, index2, 0xFF00, 0x00FF, 8); - } - - private final static String index2 = - - "\u0000\u0001\u0002\u0003\u0037\u002D\u002E\u002F" + - "\u0016\u0005\u0025\u000B\f\r\u000E\u000F" + - "\u0010\u0011\u0012\u0013\u003C\u003D\u0032\u0026" + - "\u0018\u0019\u003F\'\u001C\u001D\u001E\u001F" + - "\u0040\u004F\u007F\u0063\u0067\u006C\u0050\u007D" + - "\u004D\u005D\\\u004E\u006B\u0060\u004B\u0061" + - "\u00F0\u00F1\u00F2\u00F3\u00F4\u00F5\u00F6\u00F7" + - "\u00F8\u00F9\u007A\u005E\u004C\u007E\u006E\u006F" + - "\u00EC\u00C1\u00C2\u00C3\u00C4\u00C5\u00C6\u00C7" + - "\u00C8\u00C9\u00D1\u00D2\u00D3\u00D4\u00D5\u00D6" + - "\u00D7\u00D8\u00D9\u00E2\u00E3\u00E4\u00E5\u00E6" + - "\u00E7\u00E8\u00E9\u00B5\u0071\u009F\u005F\u006D" + - "\u0051\u0081\u0082\u0083\u0084\u0085\u0086\u0087" + - "\u0088\u0089\u0091\u0092\u0093\u0094\u0095\u0096" + - "\u0097\u0098\u0099\u00A2\u00A3\u00A4\u00A5\u00A6" + - "\u00A7\u00A8\u00A9\u0043\u00BB\u0047\u00DC\u0007" + - "\u0020\u0021\"\u0023\u0024\u0015\u0006\u0017" + - "\u0028\u0029\u002A\u002B\u002C\t\n\u001B" + - "\u0030\u0031\u001A\u0033\u0034\u0035\u0036\b" + - "\u0038\u0039\u003A\u003B\u0004\u0014\u003E\u00FF" + - "\u0041\u00AA\u00B0\u00B1\u0000\u00B2\u00CC\u004A" + - "\u00BD\u00B4\u009A\u008A\u00BA\u00CA\u00AF\u00BC" + - "\u0090\u008F\u00EA\u00FA\u00BE\u00A0\u00B6\u00B3" + - "\u009D\u00DA\u009B\u008B\u00B7\u00B8\u00B9\u00AB" + - "\u0064\u0065\u0062\u0066\u007B\u005B\u009E\u0068" + - "\u0074\u00E0\u0072\u0073\u0078\u0075\u0076\u0077" + - "\u00AC\u0069\u00ED\u00EE\u00EB\u00EF\u007C\u00BF" + - "\u0080\u00FD\u00FE\u00FB\u00FC\u00AD\u00AE\u0059" + - "\u0044\u0045\u0042\u0046\u00C0\u00D0\u009C\u0048" + - "\u0054\u0079\u0052\u0053\u0058\u0055\u0056\u0057" + - "\u008C\u0049\u00CD\u00CE\u00CB\u00CF\u006A\u00E1" + - "\u0070\u00DD\u00DE\u00DB\u00A1\u008D\u008E\u00DF" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u005A\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000"; - - private final static short index1[] = { - 0, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 340, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - }; - } -} diff --git a/jdk/src/share/classes/sun/nio/cs/ext/IBM1144.java b/jdk/src/share/classes/sun/nio/cs/ext/IBM1144.java deleted file mode 100644 index d0cc741ed04..00000000000 --- a/jdk/src/share/classes/sun/nio/cs/ext/IBM1144.java +++ /dev/null @@ -1,190 +0,0 @@ -/* - * Copyright 2003-2004 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. - */ - -package sun.nio.cs.ext; - - -import java.nio.charset.Charset; -import java.nio.charset.CharsetDecoder; -import java.nio.charset.CharsetEncoder; -import sun.nio.cs.StandardCharsets; -import sun.nio.cs.SingleByteDecoder; -import sun.nio.cs.SingleByteEncoder; -import sun.nio.cs.HistoricallyNamedCharset; - -public class IBM1144 - extends Charset - implements HistoricallyNamedCharset -{ - - public IBM1144() { - super("IBM01144", ExtendedCharsets.aliasesFor("IBM01144")); - } - - public String historicalName() { - return "Cp1144"; - } - - public boolean contains(Charset cs) { - return (cs instanceof IBM1144); - } - - public CharsetDecoder newDecoder() { - return new Decoder(this); - } - - public CharsetEncoder newEncoder() { - return new Encoder(this); - } - - /** - * These accessors are temporarily supplied while sun.io - * converters co-exist with the sun.nio.cs.{ext} charset coders - * These facilitate sharing of conversion tables between the - * two co-existing implementations. When sun.io converters - * are made extinct these will be unncessary and should be removed - */ - - public short[] getEncoderIndex1() { - return Encoder.index1; - } - - public String getEncoderIndex2() { - return Encoder.index2; - } - - private static class Decoder extends IBM280.Decoder { - public Decoder(Charset cs) { - super(cs); - } - - public char decode(int byteIndex) { - return (byteIndex == (byte)0x9F) ? '\u20AC' : super.decode(byteIndex); - } - } - - private static class Encoder extends SingleByteEncoder { - public Encoder(Charset cs) { - super(cs, index1, index2, 0xFF00, 0x00FF, 8); - } - - private final static String index2 = - - "\u0000\u0001\u0002\u0003\u0037\u002D\u002E\u002F" + - "\u0016\u0005\u0025\u000B\f\r\u000E\u000F" + - "\u0010\u0011\u0012\u0013\u003C\u003D\u0032\u0026" + - "\u0018\u0019\u003F\'\u001C\u001D\u001E\u001F" + - "\u0040\u004F\u007F\u00B1\u005B\u006C\u0050\u007D" + - "\u004D\u005D\\\u004E\u006B\u0060\u004B\u0061" + - "\u00F0\u00F1\u00F2\u00F3\u00F4\u00F5\u00F6\u00F7" + - "\u00F8\u00F9\u007A\u005E\u004C\u007E\u006E\u006F" + - "\u00B5\u00C1\u00C2\u00C3\u00C4\u00C5\u00C6\u00C7" + - "\u00C8\u00C9\u00D1\u00D2\u00D3\u00D4\u00D5\u00D6" + - "\u00D7\u00D8\u00D9\u00E2\u00E3\u00E4\u00E5\u00E6" + - "\u00E7\u00E8\u00E9\u0090\u0048\u0051\u005F\u006D" + - "\u00DD\u0081\u0082\u0083\u0084\u0085\u0086\u0087" + - "\u0088\u0089\u0091\u0092\u0093\u0094\u0095\u0096" + - "\u0097\u0098\u0099\u00A2\u00A3\u00A4\u00A5\u00A6" + - "\u00A7\u00A8\u00A9\u0044\u00BB\u0054\u0058\u0007" + - "\u0020\u0021\"\u0023\u0024\u0015\u0006\u0017" + - "\u0028\u0029\u002A\u002B\u002C\t\n\u001B" + - "\u0030\u0031\u001A\u0033\u0034\u0035\u0036\b" + - "\u0038\u0039\u003A\u003B\u0004\u0014\u003E\u00FF" + - "\u0041\u00AA\u00B0\u007B\u0000\u00B2\u00CD\u007C" + - "\u00BD\u00B4\u009A\u008A\u00BA\u00CA\u00AF\u00BC" + - "\u004A\u008F\u00EA\u00FA\u00BE\u00A0\u00B6\u00B3" + - "\u009D\u00DA\u009B\u008B\u00B7\u00B8\u00B9\u00AB" + - "\u0064\u0065\u0062\u0066\u0063\u0067\u009E\u0068" + - "\u0074\u0071\u0072\u0073\u0078\u0075\u0076\u0077" + - "\u00AC\u0069\u00ED\u00EE\u00EB\u00EF\u00EC\u00BF" + - "\u0080\u00FD\u00FE\u00FB\u00FC\u00AD\u00AE\u0059" + - "\u00C0\u0045\u0042\u0046\u0043\u0047\u009C\u00E0" + - "\u00D0\u005A\u0052\u0053\u00A1\u0055\u0056\u0057" + - "\u008C\u0049\u006A\u00CE\u00CB\u00CF\u00CC\u00E1" + - "\u0070\u0079\u00DE\u00DB\u00DC\u008D\u008E\u00DF" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u009F\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000"; - - private final static short index1[] = { - 0, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 340, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - }; - } -} diff --git a/jdk/src/share/classes/sun/nio/cs/ext/IBM1145.java b/jdk/src/share/classes/sun/nio/cs/ext/IBM1145.java deleted file mode 100644 index dd89c0ea5ca..00000000000 --- a/jdk/src/share/classes/sun/nio/cs/ext/IBM1145.java +++ /dev/null @@ -1,190 +0,0 @@ -/* - * Copyright 2003-2004 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. - */ - -package sun.nio.cs.ext; - - -import java.nio.charset.Charset; -import java.nio.charset.CharsetDecoder; -import java.nio.charset.CharsetEncoder; -import sun.nio.cs.StandardCharsets; -import sun.nio.cs.SingleByteDecoder; -import sun.nio.cs.SingleByteEncoder; -import sun.nio.cs.HistoricallyNamedCharset; - -public class IBM1145 - extends Charset - implements HistoricallyNamedCharset -{ - - public IBM1145() { - super("IBM01145", ExtendedCharsets.aliasesFor("IBM01145")); - } - - public String historicalName() { - return "Cp1145"; - } - - public boolean contains(Charset cs) { - return (cs instanceof IBM1145); - } - - public CharsetDecoder newDecoder() { - return new Decoder(this); - } - - public CharsetEncoder newEncoder() { - return new Encoder(this); - } - - /** - * These accessors are temporarily supplied while sun.io - * converters co-exist with the sun.nio.cs.{ext} charset coders - * These facilitate sharing of conversion tables between the - * two co-existing implementations. When sun.io converters - * are made extinct these will be unncessary and should be removed - */ - - public short[] getEncoderIndex1() { - return Encoder.index1; - } - - public String getEncoderIndex2() { - return Encoder.index2; - } - - private static class Decoder extends IBM284.Decoder { - public Decoder(Charset cs) { - super(cs); - } - - public char decode(int byteIndex) { - return (byteIndex == (byte)0x9F) ? '\u20AC' : super.decode(byteIndex); - } - } - - private static class Encoder extends SingleByteEncoder { - public Encoder(Charset cs) { - super(cs, index1, index2, 0xFF00, 0x00FF, 8); - } - - private final static String index2 = - - "\u0000\u0001\u0002\u0003\u0037\u002D\u002E\u002F" + - "\u0016\u0005\u0025\u000B\f\r\u000E\u000F" + - "\u0010\u0011\u0012\u0013\u003C\u003D\u0032\u0026" + - "\u0018\u0019\u003F\'\u001C\u001D\u001E\u001F" + - "\u0040\u00BB\u007F\u0069\u005B\u006C\u0050\u007D" + - "\u004D\u005D\\\u004E\u006B\u0060\u004B\u0061" + - "\u00F0\u00F1\u00F2\u00F3\u00F4\u00F5\u00F6\u00F7" + - "\u00F8\u00F9\u007A\u005E\u004C\u007E\u006E\u006F" + - "\u007C\u00C1\u00C2\u00C3\u00C4\u00C5\u00C6\u00C7" + - "\u00C8\u00C9\u00D1\u00D2\u00D3\u00D4\u00D5\u00D6" + - "\u00D7\u00D8\u00D9\u00E2\u00E3\u00E4\u00E5\u00E6" + - "\u00E7\u00E8\u00E9\u004A\u00E0\u005A\u00BA\u006D" + - "\u0079\u0081\u0082\u0083\u0084\u0085\u0086\u0087" + - "\u0088\u0089\u0091\u0092\u0093\u0094\u0095\u0096" + - "\u0097\u0098\u0099\u00A2\u00A3\u00A4\u00A5\u00A6" + - "\u00A7\u00A8\u00A9\u00C0\u004F\u00D0\u00BD\u0007" + - "\u0020\u0021\"\u0023\u0024\u0015\u0006\u0017" + - "\u0028\u0029\u002A\u002B\u002C\t\n\u001B" + - "\u0030\u0031\u001A\u0033\u0034\u0035\u0036\b" + - "\u0038\u0039\u003A\u003B\u0004\u0014\u003E\u00FF" + - "\u0041\u00AA\u00B0\u00B1\u0000\u00B2\u0049\u00B5" + - "\u00A1\u00B4\u009A\u008A\u005F\u00CA\u00AF\u00BC" + - "\u0090\u008F\u00EA\u00FA\u00BE\u00A0\u00B6\u00B3" + - "\u009D\u00DA\u009B\u008B\u00B7\u00B8\u00B9\u00AB" + - "\u0064\u0065\u0062\u0066\u0063\u0067\u009E\u0068" + - "\u0074\u0071\u0072\u0073\u0078\u0075\u0076\u0077" + - "\u00AC\u007B\u00ED\u00EE\u00EB\u00EF\u00EC\u00BF" + - "\u0080\u00FD\u00FE\u00FB\u00FC\u00AD\u00AE\u0059" + - "\u0044\u0045\u0042\u0046\u0043\u0047\u009C\u0048" + - "\u0054\u0051\u0052\u0053\u0058\u0055\u0056\u0057" + - "\u008C\u006A\u00CD\u00CE\u00CB\u00CF\u00CC\u00E1" + - "\u0070\u00DD\u00DE\u00DB\u00DC\u008D\u008E\u00DF" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u009F\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000"; - - private final static short index1[] = { - 0, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 340, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - }; - } -} diff --git a/jdk/src/share/classes/sun/nio/cs/ext/IBM1146.java b/jdk/src/share/classes/sun/nio/cs/ext/IBM1146.java deleted file mode 100644 index 27919498364..00000000000 --- a/jdk/src/share/classes/sun/nio/cs/ext/IBM1146.java +++ /dev/null @@ -1,190 +0,0 @@ -/* - * Copyright 2003-2004 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. - */ - -package sun.nio.cs.ext; - - -import java.nio.charset.Charset; -import java.nio.charset.CharsetDecoder; -import java.nio.charset.CharsetEncoder; -import sun.nio.cs.StandardCharsets; -import sun.nio.cs.SingleByteDecoder; -import sun.nio.cs.SingleByteEncoder; -import sun.nio.cs.HistoricallyNamedCharset; - -public class IBM1146 - extends Charset - implements HistoricallyNamedCharset -{ - - public IBM1146() { - super("IBM01146", ExtendedCharsets.aliasesFor("IBM01146")); - } - - public String historicalName() { - return "Cp1146"; - } - - public boolean contains(Charset cs) { - return (cs instanceof IBM1146); - } - - public CharsetDecoder newDecoder() { - return new Decoder(this); - } - - public CharsetEncoder newEncoder() { - return new Encoder(this); - } - - /** - * These accessors are temporarily supplied while sun.io - * converters co-exist with the sun.nio.cs.{ext} charset coders - * These facilitate sharing of conversion tables between the - * two co-existing implementations. When sun.io converters - * are made extinct these will be unncessary and should be removed - */ - - public short[] getEncoderIndex1() { - return Encoder.index1; - } - - public String getEncoderIndex2() { - return Encoder.index2; - } - - private static class Decoder extends IBM285.Decoder { - public Decoder(Charset cs) { - super(cs); - } - - public char decode(int byteIndex) { - return (byteIndex == (byte)0x9F) ? '\u20AC' : super.decode(byteIndex); - } - } - - private static class Encoder extends SingleByteEncoder { - public Encoder(Charset cs) { - super(cs, index1, index2, 0xFF00, 0x00FF, 8); - } - - private final static String index2 = - - "\u0000\u0001\u0002\u0003\u0037\u002D\u002E\u002F" + - "\u0016\u0005\u0025\u000B\f\r\u000E\u000F" + - "\u0010\u0011\u0012\u0013\u003C\u003D\u0032\u0026" + - "\u0018\u0019\u003F\'\u001C\u001D\u001E\u001F" + - "\u0040\u005A\u007F\u007B\u004A\u006C\u0050\u007D" + - "\u004D\u005D\\\u004E\u006B\u0060\u004B\u0061" + - "\u00F0\u00F1\u00F2\u00F3\u00F4\u00F5\u00F6\u00F7" + - "\u00F8\u00F9\u007A\u005E\u004C\u007E\u006E\u006F" + - "\u007C\u00C1\u00C2\u00C3\u00C4\u00C5\u00C6\u00C7" + - "\u00C8\u00C9\u00D1\u00D2\u00D3\u00D4\u00D5\u00D6" + - "\u00D7\u00D8\u00D9\u00E2\u00E3\u00E4\u00E5\u00E6" + - "\u00E7\u00E8\u00E9\u00B1\u00E0\u00BB\u00BA\u006D" + - "\u0079\u0081\u0082\u0083\u0084\u0085\u0086\u0087" + - "\u0088\u0089\u0091\u0092\u0093\u0094\u0095\u0096" + - "\u0097\u0098\u0099\u00A2\u00A3\u00A4\u00A5\u00A6" + - "\u00A7\u00A8\u00A9\u00C0\u004F\u00D0\u00BC\u0007" + - "\u0020\u0021\"\u0023\u0024\u0015\u0006\u0017" + - "\u0028\u0029\u002A\u002B\u002C\t\n\u001B" + - "\u0030\u0031\u001A\u0033\u0034\u0035\u0036\b" + - "\u0038\u0039\u003A\u003B\u0004\u0014\u003E\u00FF" + - "\u0041\u00AA\u00B0\u005B\u0000\u00B2\u006A\u00B5" + - "\u00BD\u00B4\u009A\u008A\u005F\u00CA\u00AF\u00A1" + - "\u0090\u008F\u00EA\u00FA\u00BE\u00A0\u00B6\u00B3" + - "\u009D\u00DA\u009B\u008B\u00B7\u00B8\u00B9\u00AB" + - "\u0064\u0065\u0062\u0066\u0063\u0067\u009E\u0068" + - "\u0074\u0071\u0072\u0073\u0078\u0075\u0076\u0077" + - "\u00AC\u0069\u00ED\u00EE\u00EB\u00EF\u00EC\u00BF" + - "\u0080\u00FD\u00FE\u00FB\u00FC\u00AD\u00AE\u0059" + - "\u0044\u0045\u0042\u0046\u0043\u0047\u009C\u0048" + - "\u0054\u0051\u0052\u0053\u0058\u0055\u0056\u0057" + - "\u008C\u0049\u00CD\u00CE\u00CB\u00CF\u00CC\u00E1" + - "\u0070\u00DD\u00DE\u00DB\u00DC\u008D\u008E\u00DF" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u009F\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000"; - - private final static short index1[] = { - 0, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 340, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - }; - } -} diff --git a/jdk/src/share/classes/sun/nio/cs/ext/IBM1147.java b/jdk/src/share/classes/sun/nio/cs/ext/IBM1147.java deleted file mode 100644 index 9f79f842cc3..00000000000 --- a/jdk/src/share/classes/sun/nio/cs/ext/IBM1147.java +++ /dev/null @@ -1,190 +0,0 @@ -/* - * Copyright 2003-2004 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. - */ - -package sun.nio.cs.ext; - - -import java.nio.charset.Charset; -import java.nio.charset.CharsetDecoder; -import java.nio.charset.CharsetEncoder; -import sun.nio.cs.StandardCharsets; -import sun.nio.cs.SingleByteDecoder; -import sun.nio.cs.SingleByteEncoder; -import sun.nio.cs.HistoricallyNamedCharset; - -public class IBM1147 - extends Charset - implements HistoricallyNamedCharset -{ - - public IBM1147() { - super("IBM01147", ExtendedCharsets.aliasesFor("IBM01147")); - } - - public String historicalName() { - return "Cp1147"; - } - - public boolean contains(Charset cs) { - return (cs instanceof IBM1147); - } - - public CharsetDecoder newDecoder() { - return new Decoder(this); - } - - public CharsetEncoder newEncoder() { - return new Encoder(this); - } - - /** - * These accessors are temporarily supplied while sun.io - * converters co-exist with the sun.nio.cs.{ext} charset coders - * These facilitate sharing of conversion tables between the - * two co-existing implementations. When sun.io converters - * are made extinct these will be unncessary and should be removed - */ - - public short[] getEncoderIndex1() { - return Encoder.index1; - } - - public String getEncoderIndex2() { - return Encoder.index2; - } - - private static class Decoder extends IBM297.Decoder { - public Decoder(Charset cs) { - super(cs); - } - - public char decode(int byteIndex) { - return (byteIndex == (byte)0x9F) ? '\u20AC' : super.decode(byteIndex); - } - } - - private static class Encoder extends SingleByteEncoder { - public Encoder(Charset cs) { - super(cs, index1, index2, 0xFF00, 0x00FF, 8); - } - - private final static String index2 = - - "\u0000\u0001\u0002\u0003\u0037\u002D\u002E\u002F" + - "\u0016\u0005\u0025\u000B\f\r\u000E\u000F" + - "\u0010\u0011\u0012\u0013\u003C\u003D\u0032\u0026" + - "\u0018\u0019\u003F\'\u001C\u001D\u001E\u001F" + - "\u0040\u004F\u007F\u00B1\u005B\u006C\u0050\u007D" + - "\u004D\u005D\\\u004E\u006B\u0060\u004B\u0061" + - "\u00F0\u00F1\u00F2\u00F3\u00F4\u00F5\u00F6\u00F7" + - "\u00F8\u00F9\u007A\u005E\u004C\u007E\u006E\u006F" + - "\u0044\u00C1\u00C2\u00C3\u00C4\u00C5\u00C6\u00C7" + - "\u00C8\u00C9\u00D1\u00D2\u00D3\u00D4\u00D5\u00D6" + - "\u00D7\u00D8\u00D9\u00E2\u00E3\u00E4\u00E5\u00E6" + - "\u00E7\u00E8\u00E9\u0090\u0048\u00B5\u005F\u006D" + - "\u00A0\u0081\u0082\u0083\u0084\u0085\u0086\u0087" + - "\u0088\u0089\u0091\u0092\u0093\u0094\u0095\u0096" + - "\u0097\u0098\u0099\u00A2\u00A3\u00A4\u00A5\u00A6" + - "\u00A7\u00A8\u00A9\u0051\u00BB\u0054\u00BD\u0007" + - "\u0020\u0021\"\u0023\u0024\u0015\u0006\u0017" + - "\u0028\u0029\u002A\u002B\u002C\t\n\u001B" + - "\u0030\u0031\u001A\u0033\u0034\u0035\u0036\b" + - "\u0038\u0039\u003A\u003B\u0004\u0014\u003E\u00FF" + - "\u0041\u00AA\u00B0\u007B\u0000\u00B2\u00DD\u005A" + - "\u00A1\u00B4\u009A\u008A\u00BA\u00CA\u00AF\u00BC" + - "\u004A\u008F\u00EA\u00FA\u00BE\u0079\u00B6\u00B3" + - "\u009D\u00DA\u009B\u008B\u00B7\u00B8\u00B9\u00AB" + - "\u0064\u0065\u0062\u0066\u0063\u0067\u009E\u0068" + - "\u0074\u0071\u0072\u0073\u0078\u0075\u0076\u0077" + - "\u00AC\u0069\u00ED\u00EE\u00EB\u00EF\u00EC\u00BF" + - "\u0080\u00FD\u00FE\u00FB\u00FC\u00AD\u00AE\u0059" + - "\u007C\u0045\u0042\u0046\u0043\u0047\u009C\u00E0" + - "\u00D0\u00C0\u0052\u0053\u0058\u0055\u0056\u0057" + - "\u008C\u0049\u00CD\u00CE\u00CB\u00CF\u00CC\u00E1" + - "\u0070\u006A\u00DE\u00DB\u00DC\u008D\u008E\u00DF" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u009F\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000"; - - private final static short index1[] = { - 0, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 340, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - }; - } -} diff --git a/jdk/src/share/classes/sun/nio/cs/ext/IBM1148.java b/jdk/src/share/classes/sun/nio/cs/ext/IBM1148.java deleted file mode 100644 index 8adb4a5a24c..00000000000 --- a/jdk/src/share/classes/sun/nio/cs/ext/IBM1148.java +++ /dev/null @@ -1,190 +0,0 @@ -/* - * Copyright 2003-2004 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. - */ - -package sun.nio.cs.ext; - - -import java.nio.charset.Charset; -import java.nio.charset.CharsetDecoder; -import java.nio.charset.CharsetEncoder; -import sun.nio.cs.StandardCharsets; -import sun.nio.cs.SingleByteDecoder; -import sun.nio.cs.SingleByteEncoder; -import sun.nio.cs.HistoricallyNamedCharset; - -public class IBM1148 - extends Charset - implements HistoricallyNamedCharset -{ - - public IBM1148() { - super("IBM01148", ExtendedCharsets.aliasesFor("IBM01148")); - } - - public String historicalName() { - return "Cp1148"; - } - - public boolean contains(Charset cs) { - return (cs instanceof IBM1148); - } - - public CharsetDecoder newDecoder() { - return new Decoder(this); - } - - public CharsetEncoder newEncoder() { - return new Encoder(this); - } - - /** - * These accessors are temporarily supplied while sun.io - * converters co-exist with the sun.nio.cs.{ext} charset coders - * These facilitate sharing of conversion tables between the - * two co-existing implementations. When sun.io converters - * are made extinct these will be unncessary and should be removed - */ - - public short[] getEncoderIndex1() { - return Encoder.index1; - } - - public String getEncoderIndex2() { - return Encoder.index2; - } - - private static class Decoder extends IBM500.Decoder { - public Decoder(Charset cs) { - super(cs); - } - - public char decode(int byteIndex) { - return (byteIndex == (byte)0x9F) ? '\u20AC' : super.decode(byteIndex); - } - } - - private static class Encoder extends SingleByteEncoder { - public Encoder(Charset cs) { - super(cs, index1, index2, 0xFF00, 0x00FF, 8); - } - - private final static String index2 = - - "\u0000\u0001\u0002\u0003\u0037\u002D\u002E\u002F" + - "\u0016\u0005\u0025\u000B\f\r\u000E\u000F" + - "\u0010\u0011\u0012\u0013\u003C\u003D\u0032\u0026" + - "\u0018\u0019\u003F\'\u001C\u001D\u001E\u001F" + - "\u0040\u004F\u007F\u007B\u005B\u006C\u0050\u007D" + - "\u004D\u005D\\\u004E\u006B\u0060\u004B\u0061" + - "\u00F0\u00F1\u00F2\u00F3\u00F4\u00F5\u00F6\u00F7" + - "\u00F8\u00F9\u007A\u005E\u004C\u007E\u006E\u006F" + - "\u007C\u00C1\u00C2\u00C3\u00C4\u00C5\u00C6\u00C7" + - "\u00C8\u00C9\u00D1\u00D2\u00D3\u00D4\u00D5\u00D6" + - "\u00D7\u00D8\u00D9\u00E2\u00E3\u00E4\u00E5\u00E6" + - "\u00E7\u00E8\u00E9\u004A\u00E0\u005A\u005F\u006D" + - "\u0079\u0081\u0082\u0083\u0084\u0085\u0086\u0087" + - "\u0088\u0089\u0091\u0092\u0093\u0094\u0095\u0096" + - "\u0097\u0098\u0099\u00A2\u00A3\u00A4\u00A5\u00A6" + - "\u00A7\u00A8\u00A9\u00C0\u00BB\u00D0\u00A1\u0007" + - "\u0020\u0021\"\u0023\u0024\u0015\u0006\u0017" + - "\u0028\u0029\u002A\u002B\u002C\t\n\u001B" + - "\u0030\u0031\u001A\u0033\u0034\u0035\u0036\b" + - "\u0038\u0039\u003A\u003B\u0004\u0014\u003E\u00FF" + - "\u0041\u00AA\u00B0\u00B1\u0000\u00B2\u006A\u00B5" + - "\u00BD\u00B4\u009A\u008A\u00BA\u00CA\u00AF\u00BC" + - "\u0090\u008F\u00EA\u00FA\u00BE\u00A0\u00B6\u00B3" + - "\u009D\u00DA\u009B\u008B\u00B7\u00B8\u00B9\u00AB" + - "\u0064\u0065\u0062\u0066\u0063\u0067\u009E\u0068" + - "\u0074\u0071\u0072\u0073\u0078\u0075\u0076\u0077" + - "\u00AC\u0069\u00ED\u00EE\u00EB\u00EF\u00EC\u00BF" + - "\u0080\u00FD\u00FE\u00FB\u00FC\u00AD\u00AE\u0059" + - "\u0044\u0045\u0042\u0046\u0043\u0047\u009C\u0048" + - "\u0054\u0051\u0052\u0053\u0058\u0055\u0056\u0057" + - "\u008C\u0049\u00CD\u00CE\u00CB\u00CF\u00CC\u00E1" + - "\u0070\u00DD\u00DE\u00DB\u00DC\u008D\u008E\u00DF" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u009F\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000"; - - private final static short index1[] = { - 0, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 340, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - }; - } -} diff --git a/jdk/src/share/classes/sun/nio/cs/ext/IBM1149.java b/jdk/src/share/classes/sun/nio/cs/ext/IBM1149.java deleted file mode 100644 index 7359cea59e3..00000000000 --- a/jdk/src/share/classes/sun/nio/cs/ext/IBM1149.java +++ /dev/null @@ -1,190 +0,0 @@ -/* - * Copyright 2003-2004 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. - */ - -package sun.nio.cs.ext; - - -import java.nio.charset.Charset; -import java.nio.charset.CharsetDecoder; -import java.nio.charset.CharsetEncoder; -import sun.nio.cs.StandardCharsets; -import sun.nio.cs.SingleByteDecoder; -import sun.nio.cs.SingleByteEncoder; -import sun.nio.cs.HistoricallyNamedCharset; - -public class IBM1149 - extends Charset - implements HistoricallyNamedCharset -{ - - public IBM1149() { - super("IBM01149", ExtendedCharsets.aliasesFor("IBM01149")); - } - - public String historicalName() { - return "Cp1149"; - } - - public boolean contains(Charset cs) { - return (cs instanceof IBM1149); - } - - public CharsetDecoder newDecoder() { - return new Decoder(this); - } - - public CharsetEncoder newEncoder() { - return new Encoder(this); - } - - /** - * These accessors are temporarily supplied while sun.io - * converters co-exist with the sun.nio.cs.{ext} charset coders - * These facilitate sharing of conversion tables between the - * two co-existing implementations. When sun.io converters - * are made extinct these will be unncessary and should be removed - */ - - public short[] getEncoderIndex1() { - return Encoder.index1; - } - - public String getEncoderIndex2() { - return Encoder.index2; - } - - private static class Decoder extends IBM871.Decoder { - public Decoder(Charset cs) { - super(cs); - } - - public char decode(int byteIndex) { - return (byteIndex == (byte)0x9F) ? '\u20AC' : super.decode(byteIndex); - } - } - - private static class Encoder extends SingleByteEncoder { - public Encoder(Charset cs) { - super(cs, index1, index2, 0xFF00, 0x00FF, 8); - } - - private final static String index2 = - - "\u0000\u0001\u0002\u0003\u0037\u002D\u002E\u002F" + - "\u0016\u0005\u0025\u000B\f\r\u000E\u000F" + - "\u0010\u0011\u0012\u0013\u003C\u003D\u0032\u0026" + - "\u0018\u0019\u003F\'\u001C\u001D\u001E\u001F" + - "\u0040\u004F\u007F\u007B\u005B\u006C\u0050\u007D" + - "\u004D\u005D\\\u004E\u006B\u0060\u004B\u0061" + - "\u00F0\u00F1\u00F2\u00F3\u00F4\u00F5\u00F6\u00F7" + - "\u00F8\u00F9\u007A\u005E\u004C\u007E\u006E\u006F" + - "\u00AC\u00C1\u00C2\u00C3\u00C4\u00C5\u00C6\u00C7" + - "\u00C8\u00C9\u00D1\u00D2\u00D3\u00D4\u00D5\u00D6" + - "\u00D7\u00D8\u00D9\u00E2\u00E3\u00E4\u00E5\u00E6" + - "\u00E7\u00E8\u00E9\u00AE\u00BE\u009E\u00EC\u006D" + - "\u008C\u0081\u0082\u0083\u0084\u0085\u0086\u0087" + - "\u0088\u0089\u0091\u0092\u0093\u0094\u0095\u0096" + - "\u0097\u0098\u0099\u00A2\u00A3\u00A4\u00A5\u00A6" + - "\u00A7\u00A8\u00A9\u008E\u00BB\u009C\u00CC\u0007" + - "\u0020\u0021\"\u0023\u0024\u0015\u0006\u0017" + - "\u0028\u0029\u002A\u002B\u002C\t\n\u001B" + - "\u0030\u0031\u001A\u0033\u0034\u0035\u0036\b" + - "\u0038\u0039\u003A\u003B\u0004\u0014\u003E\u00FF" + - "\u0041\u00AA\u00B0\u00B1\u0000\u00B2\u006A\u00B5" + - "\u00BD\u00B4\u009A\u008A\u00BA\u00CA\u00AF\u00BC" + - "\u0090\u008F\u00EA\u00FA\u00E0\u00A0\u00B6\u00B3" + - "\u009D\u00DA\u009B\u008B\u00B7\u00B8\u00B9\u00AB" + - "\u0064\u0065\u0062\u0066\u0063\u0067\u005A\u0068" + - "\u0074\u0071\u0072\u0073\u0078\u0075\u0076\u0077" + - "\u007C\u0069\u00ED\u00EE\u00EB\u00EF\u005F\u00BF" + - "\u0080\u00FD\u00FE\u00FB\u00FC\u00AD\u004A\u0059" + - "\u0044\u0045\u0042\u0046\u0043\u0047\u00D0\u0048" + - "\u0054\u0051\u0052\u0053\u0058\u0055\u0056\u0057" + - "\u0079\u0049\u00CD\u00CE\u00CB\u00CF\u00A1\u00E1" + - "\u0070\u00DD\u00DE\u00DB\u00DC\u008D\u00C0\u00DF" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u009F\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000"; - - private final static short index1[] = { - 0, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 340, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - }; - } -} diff --git a/jdk/src/share/classes/sun/nio/cs/ext/IBM273.java b/jdk/src/share/classes/sun/nio/cs/ext/IBM273.java deleted file mode 100644 index 74a857e1f4b..00000000000 --- a/jdk/src/share/classes/sun/nio/cs/ext/IBM273.java +++ /dev/null @@ -1,221 +0,0 @@ - -/* - * Copyright 2003-2004 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. - */ - -package sun.nio.cs.ext; - - -import java.nio.charset.Charset; -import java.nio.charset.CharsetDecoder; -import java.nio.charset.CharsetEncoder; -import sun.nio.cs.StandardCharsets; -import sun.nio.cs.SingleByteDecoder; -import sun.nio.cs.SingleByteEncoder; -import sun.nio.cs.HistoricallyNamedCharset; - -public class IBM273 - extends Charset - implements HistoricallyNamedCharset -{ - - public IBM273() { - super("IBM273", ExtendedCharsets.aliasesFor("IBM273")); - } - - public String historicalName() { - return "Cp273"; - } - - public boolean contains(Charset cs) { - return (cs instanceof IBM273); - } - - public CharsetDecoder newDecoder() { - return new Decoder(this); - } - - public CharsetEncoder newEncoder() { - return new Encoder(this); - } - - - /** - * These accessors are temporarily supplied while sun.io - * converters co-exist with the sun.nio.cs.{ext} charset coders - * These facilitate sharing of conversion tables between the - * two co-existing implementations. When sun.io converters - * are made extinct these will be unncessary and should be removed - */ - - public String getDecoderSingleByteMappings() { - return Decoder.byteToCharTable; - - } - - public short[] getEncoderIndex1() { - return Encoder.index1; - - } - public String getEncoderIndex2() { - return Encoder.index2; - - } - - protected static class Decoder extends SingleByteDecoder { - public Decoder(Charset cs) { - super(cs, byteToCharTable); - } - - private final static String byteToCharTable = - - "\u00D8\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + // 0x80 - 0x87 - "\u0068\u0069\u00AB\u00BB\u00F0\u00FD\u00FE\u00B1" + // 0x88 - 0x8F - "\u00B0\u006A\u006B\u006C\u006D\u006E\u006F\u0070" + // 0x90 - 0x97 - "\u0071\u0072\u00AA\u00BA\u00E6\u00B8\u00C6\u00A4" + // 0x98 - 0x9F - "\u00B5\u00DF\u0073\u0074\u0075\u0076\u0077\u0078" + // 0xA0 - 0xA7 - "\u0079\u007A\u00A1\u00BF\u00D0\u00DD\u00DE\u00AE" + // 0xA8 - 0xAF - "\u00A2\u00A3\u00A5\u00B7\u00A9\u0040\u00B6\u00BC" + // 0xB0 - 0xB7 - "\u00BD\u00BE\u00AC\u007C\u00AF\u00A8\u00B4\u00D7" + // 0xB8 - 0xBF - "\u00E4\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + // 0xC0 - 0xC7 - "\u0048\u0049\u00AD\u00F4\u00A6\u00F2\u00F3\u00F5" + // 0xC8 - 0xCF - "\u00FC\u004A\u004B\u004C\u004D\u004E\u004F\u0050" + // 0xD0 - 0xD7 - "\u0051\u0052\u00B9\u00FB\u007D\u00F9\u00FA\u00FF" + // 0xD8 - 0xDF - "\u00D6\u00F7\u0053\u0054\u0055\u0056\u0057\u0058" + // 0xE0 - 0xE7 - "\u0059\u005A\u00B2\u00D4\\\u00D2\u00D3\u00D5" + // 0xE8 - 0xEF - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + // 0xF0 - 0xF7 - "\u0038\u0039\u00B3\u00DB\u005D\u00D9\u00DA\u009F" + // 0xF8 - 0xFF - "\u0000\u0001\u0002\u0003\u009C\t\u0086\u007F" + // 0x00 - 0x07 - "\u0097\u008D\u008E\u000B\f\r\u000E\u000F" + // 0x08 - 0x0F - "\u0010\u0011\u0012\u0013\u009D\n\b\u0087" + // 0x10 - 0x17 - "\u0018\u0019\u0092\u008F\u001C\u001D\u001E\u001F" + // 0x18 - 0x1F - "\u0080\u0081\u0082\u0083\u0084\n\u0017\u001B" + // 0x20 - 0x27 - "\u0088\u0089\u008A\u008B\u008C\u0005\u0006\u0007" + // 0x28 - 0x2F - "\u0090\u0091\u0016\u0093\u0094\u0095\u0096\u0004" + // 0x30 - 0x37 - "\u0098\u0099\u009A\u009B\u0014\u0015\u009E\u001A" + // 0x38 - 0x3F - "\u0020\u00A0\u00E2\u007B\u00E0\u00E1\u00E3\u00E5" + // 0x40 - 0x47 - "\u00E7\u00F1\u00C4\u002E\u003C\u0028\u002B\u0021" + // 0x48 - 0x4F - "\u0026\u00E9\u00EA\u00EB\u00E8\u00ED\u00EE\u00EF" + // 0x50 - 0x57 - "\u00EC\u007E\u00DC\u0024\u002A\u0029\u003B\u005E" + // 0x58 - 0x5F - "\u002D\u002F\u00C2\u005B\u00C0\u00C1\u00C3\u00C5" + // 0x60 - 0x67 - "\u00C7\u00D1\u00F6\u002C\u0025\u005F\u003E\u003F" + // 0x68 - 0x6F - "\u00F8\u00C9\u00CA\u00CB\u00C8\u00CD\u00CE\u00CF" + // 0x70 - 0x77 - "\u00CC\u0060\u003A\u0023\u00A7\'\u003D\""; // 0x78 - 0x7F - - } - - private static class Encoder extends SingleByteEncoder { - public Encoder(Charset cs) { - super(cs, index1, index2, 0xFF00, 0x00FF, 8); - } - - private final static String index2 = - - - "\u0000\u0001\u0002\u0003\u0037\u002D\u002E\u002F" + - "\u0016\u0005\u0015\u000B\f\r\u000E\u000F" + - "\u0010\u0011\u0012\u0013\u003C\u003D\u0032\u0026" + - "\u0018\u0019\u003F\'\u001C\u001D\u001E\u001F" + - "\u0040\u004F\u007F\u007B\u005B\u006C\u0050\u007D" + - "\u004D\u005D\\\u004E\u006B\u0060\u004B\u0061" + - "\u00F0\u00F1\u00F2\u00F3\u00F4\u00F5\u00F6\u00F7" + - "\u00F8\u00F9\u007A\u005E\u004C\u007E\u006E\u006F" + - "\u00B5\u00C1\u00C2\u00C3\u00C4\u00C5\u00C6\u00C7" + - "\u00C8\u00C9\u00D1\u00D2\u00D3\u00D4\u00D5\u00D6" + - "\u00D7\u00D8\u00D9\u00E2\u00E3\u00E4\u00E5\u00E6" + - "\u00E7\u00E8\u00E9\u0063\u00EC\u00FC\u005F\u006D" + - "\u0079\u0081\u0082\u0083\u0084\u0085\u0086\u0087" + - "\u0088\u0089\u0091\u0092\u0093\u0094\u0095\u0096" + - "\u0097\u0098\u0099\u00A2\u00A3\u00A4\u00A5\u00A6" + - "\u00A7\u00A8\u00A9\u0043\u00BB\u00DC\u0059\u0007" + - "\u0020\u0021\"\u0023\u0024\u0015\u0006\u0017" + - "\u0028\u0029\u002A\u002B\u002C\t\n\u001B" + - "\u0030\u0031\u001A\u0033\u0034\u0035\u0036\b" + - "\u0038\u0039\u003A\u003B\u0004\u0014\u003E\u00FF" + - "\u0041\u00AA\u00B0\u00B1\u009F\u00B2\u00CC\u007C" + - "\u00BD\u00B4\u009A\u008A\u00BA\u00CA\u00AF\u00BC" + - "\u0090\u008F\u00EA\u00FA\u00BE\u00A0\u00B6\u00B3" + - "\u009D\u00DA\u009B\u008B\u00B7\u00B8\u00B9\u00AB" + - "\u0064\u0065\u0062\u0066\u004A\u0067\u009E\u0068" + - "\u0074\u0071\u0072\u0073\u0078\u0075\u0076\u0077" + - "\u00AC\u0069\u00ED\u00EE\u00EB\u00EF\u00E0\u00BF" + - "\u0080\u00FD\u00FE\u00FB\u005A\u00AD\u00AE\u00A1" + - "\u0044\u0045\u0042\u0046\u00C0\u0047\u009C\u0048" + - "\u0054\u0051\u0052\u0053\u0058\u0055\u0056\u0057" + - "\u008C\u0049\u00CD\u00CE\u00CB\u00CF\u006A\u00E1" + - "\u0070\u00DD\u00DE\u00DB\u00D0\u008D\u008E\u00DF" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"; - - private final static short index1[] = { - 0, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - - }; - } -} diff --git a/jdk/src/share/classes/sun/nio/cs/ext/IBM277.java b/jdk/src/share/classes/sun/nio/cs/ext/IBM277.java deleted file mode 100644 index d4917a0d272..00000000000 --- a/jdk/src/share/classes/sun/nio/cs/ext/IBM277.java +++ /dev/null @@ -1,221 +0,0 @@ - -/* - * Copyright 2003-2004 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. - */ - -package sun.nio.cs.ext; - - -import java.nio.charset.Charset; -import java.nio.charset.CharsetDecoder; -import java.nio.charset.CharsetEncoder; -import sun.nio.cs.StandardCharsets; -import sun.nio.cs.SingleByteDecoder; -import sun.nio.cs.SingleByteEncoder; -import sun.nio.cs.HistoricallyNamedCharset; - -public class IBM277 - extends Charset - implements HistoricallyNamedCharset -{ - - public IBM277() { - super("IBM277", ExtendedCharsets.aliasesFor("IBM277")); - } - - public String historicalName() { - return "Cp277"; - } - - public boolean contains(Charset cs) { - return (cs instanceof IBM277); - } - - public CharsetDecoder newDecoder() { - return new Decoder(this); - } - - public CharsetEncoder newEncoder() { - return new Encoder(this); - } - - - /** - * These accessors are temporarily supplied while sun.io - * converters co-exist with the sun.nio.cs.{ext} charset coders - * These facilitate sharing of conversion tables between the - * two co-existing implementations. When sun.io converters - * are made extinct these will be unncessary and should be removed - */ - - public String getDecoderSingleByteMappings() { - return Decoder.byteToCharTable; - - } - - public short[] getEncoderIndex1() { - return Encoder.index1; - - } - public String getEncoderIndex2() { - return Encoder.index2; - - } - - protected static class Decoder extends SingleByteDecoder { - public Decoder(Charset cs) { - super(cs, byteToCharTable); - } - - private final static String byteToCharTable = - - "\u0040\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + // 0x80 - 0x87 - "\u0068\u0069\u00AB\u00BB\u00F0\u00FD\u00FE\u00B1" + // 0x88 - 0x8F - "\u00B0\u006A\u006B\u006C\u006D\u006E\u006F\u0070" + // 0x90 - 0x97 - "\u0071\u0072\u00AA\u00BA\u007B\u00B8\u005B\u005D" + // 0x98 - 0x9F - "\u00B5\u00FC\u0073\u0074\u0075\u0076\u0077\u0078" + // 0xA0 - 0xA7 - "\u0079\u007A\u00A1\u00BF\u00D0\u00DD\u00DE\u00AE" + // 0xA8 - 0xAF - "\u00A2\u00A3\u00A5\u00B7\u00A9\u00A7\u00B6\u00BC" + // 0xB0 - 0xB7 - "\u00BD\u00BE\u00AC\u007C\u00AF\u00A8\u00B4\u00D7" + // 0xB8 - 0xBF - "\u00E6\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + // 0xC0 - 0xC7 - "\u0048\u0049\u00AD\u00F4\u00F6\u00F2\u00F3\u00F5" + // 0xC8 - 0xCF - "\u00E5\u004A\u004B\u004C\u004D\u004E\u004F\u0050" + // 0xD0 - 0xD7 - "\u0051\u0052\u00B9\u00FB\u007E\u00F9\u00FA\u00FF" + // 0xD8 - 0xDF - "\\\u00F7\u0053\u0054\u0055\u0056\u0057\u0058" + // 0xE0 - 0xE7 - "\u0059\u005A\u00B2\u00D4\u00D6\u00D2\u00D3\u00D5" + // 0xE8 - 0xEF - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + // 0xF0 - 0xF7 - "\u0038\u0039\u00B3\u00DB\u00DC\u00D9\u00DA\u009F" + // 0xF8 - 0xFF - "\u0000\u0001\u0002\u0003\u009C\t\u0086\u007F" + // 0x00 - 0x07 - "\u0097\u008D\u008E\u000B\f\r\u000E\u000F" + // 0x08 - 0x0F - "\u0010\u0011\u0012\u0013\u009D\n\b\u0087" + // 0x10 - 0x17 - "\u0018\u0019\u0092\u008F\u001C\u001D\u001E\u001F" + // 0x18 - 0x1F - "\u0080\u0081\u0082\u0083\u0084\n\u0017\u001B" + // 0x20 - 0x27 - "\u0088\u0089\u008A\u008B\u008C\u0005\u0006\u0007" + // 0x28 - 0x2F - "\u0090\u0091\u0016\u0093\u0094\u0095\u0096\u0004" + // 0x30 - 0x37 - "\u0098\u0099\u009A\u009B\u0014\u0015\u009E\u001A" + // 0x38 - 0x3F - "\u0020\u00A0\u00E2\u00E4\u00E0\u00E1\u00E3\u007D" + // 0x40 - 0x47 - "\u00E7\u00F1\u0023\u002E\u003C\u0028\u002B\u0021" + // 0x48 - 0x4F - "\u0026\u00E9\u00EA\u00EB\u00E8\u00ED\u00EE\u00EF" + // 0x50 - 0x57 - "\u00EC\u00DF\u00A4\u00C5\u002A\u0029\u003B\u005E" + // 0x58 - 0x5F - "\u002D\u002F\u00C2\u00C4\u00C0\u00C1\u00C3\u0024" + // 0x60 - 0x67 - "\u00C7\u00D1\u00F8\u002C\u0025\u005F\u003E\u003F" + // 0x68 - 0x6F - "\u00A6\u00C9\u00CA\u00CB\u00C8\u00CD\u00CE\u00CF" + // 0x70 - 0x77 - "\u00CC\u0060\u003A\u00C6\u00D8\'\u003D\""; // 0x78 - 0x7F - - } - - private static class Encoder extends SingleByteEncoder { - public Encoder(Charset cs) { - super(cs, index1, index2, 0xFF00, 0x00FF, 8); - } - - private final static String index2 = - - - "\u0000\u0001\u0002\u0003\u0037\u002D\u002E\u002F" + - "\u0016\u0005\u0015\u000B\f\r\u000E\u000F" + - "\u0010\u0011\u0012\u0013\u003C\u003D\u0032\u0026" + - "\u0018\u0019\u003F\'\u001C\u001D\u001E\u001F" + - "\u0040\u004F\u007F\u004A\u0067\u006C\u0050\u007D" + - "\u004D\u005D\\\u004E\u006B\u0060\u004B\u0061" + - "\u00F0\u00F1\u00F2\u00F3\u00F4\u00F5\u00F6\u00F7" + - "\u00F8\u00F9\u007A\u005E\u004C\u007E\u006E\u006F" + - "\u0080\u00C1\u00C2\u00C3\u00C4\u00C5\u00C6\u00C7" + - "\u00C8\u00C9\u00D1\u00D2\u00D3\u00D4\u00D5\u00D6" + - "\u00D7\u00D8\u00D9\u00E2\u00E3\u00E4\u00E5\u00E6" + - "\u00E7\u00E8\u00E9\u009E\u00E0\u009F\u005F\u006D" + - "\u0079\u0081\u0082\u0083\u0084\u0085\u0086\u0087" + - "\u0088\u0089\u0091\u0092\u0093\u0094\u0095\u0096" + - "\u0097\u0098\u0099\u00A2\u00A3\u00A4\u00A5\u00A6" + - "\u00A7\u00A8\u00A9\u009C\u00BB\u0047\u00DC\u0007" + - "\u0020\u0021\"\u0023\u0024\u0015\u0006\u0017" + - "\u0028\u0029\u002A\u002B\u002C\t\n\u001B" + - "\u0030\u0031\u001A\u0033\u0034\u0035\u0036\b" + - "\u0038\u0039\u003A\u003B\u0004\u0014\u003E\u00FF" + - "\u0041\u00AA\u00B0\u00B1\u005A\u00B2\u0070\u00B5" + - "\u00BD\u00B4\u009A\u008A\u00BA\u00CA\u00AF\u00BC" + - "\u0090\u008F\u00EA\u00FA\u00BE\u00A0\u00B6\u00B3" + - "\u009D\u00DA\u009B\u008B\u00B7\u00B8\u00B9\u00AB" + - "\u0064\u0065\u0062\u0066\u0063\u005B\u007B\u0068" + - "\u0074\u0071\u0072\u0073\u0078\u0075\u0076\u0077" + - "\u00AC\u0069\u00ED\u00EE\u00EB\u00EF\u00EC\u00BF" + - "\u007C\u00FD\u00FE\u00FB\u00FC\u00AD\u00AE\u0059" + - "\u0044\u0045\u0042\u0046\u0043\u00D0\u00C0\u0048" + - "\u0054\u0051\u0052\u0053\u0058\u0055\u0056\u0057" + - "\u008C\u0049\u00CD\u00CE\u00CB\u00CF\u00CC\u00E1" + - "\u006A\u00DD\u00DE\u00DB\u00A1\u008D\u008E\u00DF" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"; - - private final static short index1[] = { - 0, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - - }; - } -} diff --git a/jdk/src/share/classes/sun/nio/cs/ext/IBM278.java b/jdk/src/share/classes/sun/nio/cs/ext/IBM278.java deleted file mode 100644 index 58db790768f..00000000000 --- a/jdk/src/share/classes/sun/nio/cs/ext/IBM278.java +++ /dev/null @@ -1,221 +0,0 @@ - -/* - * Copyright 2003-2004 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. - */ - -package sun.nio.cs.ext; - - -import java.nio.charset.Charset; -import java.nio.charset.CharsetDecoder; -import java.nio.charset.CharsetEncoder; -import sun.nio.cs.StandardCharsets; -import sun.nio.cs.SingleByteDecoder; -import sun.nio.cs.SingleByteEncoder; -import sun.nio.cs.HistoricallyNamedCharset; - -public class IBM278 - extends Charset - implements HistoricallyNamedCharset -{ - - public IBM278() { - super("IBM278", ExtendedCharsets.aliasesFor("IBM278")); - } - - public String historicalName() { - return "Cp278"; - } - - public boolean contains(Charset cs) { - return (cs instanceof IBM278); - } - - public CharsetDecoder newDecoder() { - return new Decoder(this); - } - - public CharsetEncoder newEncoder() { - return new Encoder(this); - } - - - /** - * These accessors are temporarily supplied while sun.io - * converters co-exist with the sun.nio.cs.{ext} charset coders - * These facilitate sharing of conversion tables between the - * two co-existing implementations. When sun.io converters - * are made extinct these will be unncessary and should be removed - */ - - public String getDecoderSingleByteMappings() { - return Decoder.byteToCharTable; - - } - - public short[] getEncoderIndex1() { - return Encoder.index1; - - } - public String getEncoderIndex2() { - return Encoder.index2; - - } - - protected static class Decoder extends SingleByteDecoder { - public Decoder(Charset cs) { - super(cs, byteToCharTable); - } - - private final static String byteToCharTable = - - "\u00D8\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + // 0x80 - 0x87 - "\u0068\u0069\u00AB\u00BB\u00F0\u00FD\u00FE\u00B1" + // 0x88 - 0x8F - "\u00B0\u006A\u006B\u006C\u006D\u006E\u006F\u0070" + // 0x90 - 0x97 - "\u0071\u0072\u00AA\u00BA\u00E6\u00B8\u00C6\u005D" + // 0x98 - 0x9F - "\u00B5\u00FC\u0073\u0074\u0075\u0076\u0077\u0078" + // 0xA0 - 0xA7 - "\u0079\u007A\u00A1\u00BF\u00D0\u00DD\u00DE\u00AE" + // 0xA8 - 0xAF - "\u00A2\u00A3\u00A5\u00B7\u00A9\u005B\u00B6\u00BC" + // 0xB0 - 0xB7 - "\u00BD\u00BE\u00AC\u007C\u00AF\u00A8\u00B4\u00D7" + // 0xB8 - 0xBF - "\u00E4\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + // 0xC0 - 0xC7 - "\u0048\u0049\u00AD\u00F4\u00A6\u00F2\u00F3\u00F5" + // 0xC8 - 0xCF - "\u00E5\u004A\u004B\u004C\u004D\u004E\u004F\u0050" + // 0xD0 - 0xD7 - "\u0051\u0052\u00B9\u00FB\u007E\u00F9\u00FA\u00FF" + // 0xD8 - 0xDF - "\u00C9\u00F7\u0053\u0054\u0055\u0056\u0057\u0058" + // 0xE0 - 0xE7 - "\u0059\u005A\u00B2\u00D4\u0040\u00D2\u00D3\u00D5" + // 0xE8 - 0xEF - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + // 0xF0 - 0xF7 - "\u0038\u0039\u00B3\u00DB\u00DC\u00D9\u00DA\u009F" + // 0xF8 - 0xFF - "\u0000\u0001\u0002\u0003\u009C\t\u0086\u007F" + // 0x00 - 0x07 - "\u0097\u008D\u008E\u000B\f\r\u000E\u000F" + // 0x08 - 0x0F - "\u0010\u0011\u0012\u0013\u009D\n\b\u0087" + // 0x10 - 0x17 - "\u0018\u0019\u0092\u008F\u001C\u001D\u001E\u001F" + // 0x18 - 0x1F - "\u0080\u0081\u0082\u0083\u0084\n\u0017\u001B" + // 0x20 - 0x27 - "\u0088\u0089\u008A\u008B\u008C\u0005\u0006\u0007" + // 0x28 - 0x2F - "\u0090\u0091\u0016\u0093\u0094\u0095\u0096\u0004" + // 0x30 - 0x37 - "\u0098\u0099\u009A\u009B\u0014\u0015\u009E\u001A" + // 0x38 - 0x3F - "\u0020\u00A0\u00E2\u007B\u00E0\u00E1\u00E3\u007D" + // 0x40 - 0x47 - "\u00E7\u00F1\u00A7\u002E\u003C\u0028\u002B\u0021" + // 0x48 - 0x4F - "\u0026\u0060\u00EA\u00EB\u00E8\u00ED\u00EE\u00EF" + // 0x50 - 0x57 - "\u00EC\u00DF\u00A4\u00C5\u002A\u0029\u003B\u005E" + // 0x58 - 0x5F - "\u002D\u002F\u00C2\u0023\u00C0\u00C1\u00C3\u0024" + // 0x60 - 0x67 - "\u00C7\u00D1\u00F6\u002C\u0025\u005F\u003E\u003F" + // 0x68 - 0x6F - "\u00F8\\\u00CA\u00CB\u00C8\u00CD\u00CE\u00CF" + // 0x70 - 0x77 - "\u00CC\u00E9\u003A\u00C4\u00D6\'\u003D\""; // 0x78 - 0x7F - - } - - private static class Encoder extends SingleByteEncoder { - public Encoder(Charset cs) { - super(cs, index1, index2, 0xFF00, 0x00FF, 8); - } - - private final static String index2 = - - - "\u0000\u0001\u0002\u0003\u0037\u002D\u002E\u002F" + - "\u0016\u0005\u0015\u000B\f\r\u000E\u000F" + - "\u0010\u0011\u0012\u0013\u003C\u003D\u0032\u0026" + - "\u0018\u0019\u003F\'\u001C\u001D\u001E\u001F" + - "\u0040\u004F\u007F\u0063\u0067\u006C\u0050\u007D" + - "\u004D\u005D\\\u004E\u006B\u0060\u004B\u0061" + - "\u00F0\u00F1\u00F2\u00F3\u00F4\u00F5\u00F6\u00F7" + - "\u00F8\u00F9\u007A\u005E\u004C\u007E\u006E\u006F" + - "\u00EC\u00C1\u00C2\u00C3\u00C4\u00C5\u00C6\u00C7" + - "\u00C8\u00C9\u00D1\u00D2\u00D3\u00D4\u00D5\u00D6" + - "\u00D7\u00D8\u00D9\u00E2\u00E3\u00E4\u00E5\u00E6" + - "\u00E7\u00E8\u00E9\u00B5\u0071\u009F\u005F\u006D" + - "\u0051\u0081\u0082\u0083\u0084\u0085\u0086\u0087" + - "\u0088\u0089\u0091\u0092\u0093\u0094\u0095\u0096" + - "\u0097\u0098\u0099\u00A2\u00A3\u00A4\u00A5\u00A6" + - "\u00A7\u00A8\u00A9\u0043\u00BB\u0047\u00DC\u0007" + - "\u0020\u0021\"\u0023\u0024\u0015\u0006\u0017" + - "\u0028\u0029\u002A\u002B\u002C\t\n\u001B" + - "\u0030\u0031\u001A\u0033\u0034\u0035\u0036\b" + - "\u0038\u0039\u003A\u003B\u0004\u0014\u003E\u00FF" + - "\u0041\u00AA\u00B0\u00B1\u005A\u00B2\u00CC\u004A" + - "\u00BD\u00B4\u009A\u008A\u00BA\u00CA\u00AF\u00BC" + - "\u0090\u008F\u00EA\u00FA\u00BE\u00A0\u00B6\u00B3" + - "\u009D\u00DA\u009B\u008B\u00B7\u00B8\u00B9\u00AB" + - "\u0064\u0065\u0062\u0066\u007B\u005B\u009E\u0068" + - "\u0074\u00E0\u0072\u0073\u0078\u0075\u0076\u0077" + - "\u00AC\u0069\u00ED\u00EE\u00EB\u00EF\u007C\u00BF" + - "\u0080\u00FD\u00FE\u00FB\u00FC\u00AD\u00AE\u0059" + - "\u0044\u0045\u0042\u0046\u00C0\u00D0\u009C\u0048" + - "\u0054\u0079\u0052\u0053\u0058\u0055\u0056\u0057" + - "\u008C\u0049\u00CD\u00CE\u00CB\u00CF\u006A\u00E1" + - "\u0070\u00DD\u00DE\u00DB\u00A1\u008D\u008E\u00DF" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"; - - private final static short index1[] = { - 0, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - - }; - } -} diff --git a/jdk/src/share/classes/sun/nio/cs/ext/IBM280.java b/jdk/src/share/classes/sun/nio/cs/ext/IBM280.java deleted file mode 100644 index 08d61d47fdf..00000000000 --- a/jdk/src/share/classes/sun/nio/cs/ext/IBM280.java +++ /dev/null @@ -1,221 +0,0 @@ - -/* - * Copyright 2003-2004 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. - */ - -package sun.nio.cs.ext; - - -import java.nio.charset.Charset; -import java.nio.charset.CharsetDecoder; -import java.nio.charset.CharsetEncoder; -import sun.nio.cs.StandardCharsets; -import sun.nio.cs.SingleByteDecoder; -import sun.nio.cs.SingleByteEncoder; -import sun.nio.cs.HistoricallyNamedCharset; - -public class IBM280 - extends Charset - implements HistoricallyNamedCharset -{ - - public IBM280() { - super("IBM280", ExtendedCharsets.aliasesFor("IBM280")); - } - - public String historicalName() { - return "Cp280"; - } - - public boolean contains(Charset cs) { - return (cs instanceof IBM280); - } - - public CharsetDecoder newDecoder() { - return new Decoder(this); - } - - public CharsetEncoder newEncoder() { - return new Encoder(this); - } - - - /** - * These accessors are temporarily supplied while sun.io - * converters co-exist with the sun.nio.cs.{ext} charset coders - * These facilitate sharing of conversion tables between the - * two co-existing implementations. When sun.io converters - * are made extinct these will be unncessary and should be removed - */ - - public String getDecoderSingleByteMappings() { - return Decoder.byteToCharTable; - - } - - public short[] getEncoderIndex1() { - return Encoder.index1; - - } - public String getEncoderIndex2() { - return Encoder.index2; - - } - - protected static class Decoder extends SingleByteDecoder { - public Decoder(Charset cs) { - super(cs, byteToCharTable); - } - - private final static String byteToCharTable = - - "\u00D8\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + // 0x80 - 0x87 - "\u0068\u0069\u00AB\u00BB\u00F0\u00FD\u00FE\u00B1" + // 0x88 - 0x8F - "\u005B\u006A\u006B\u006C\u006D\u006E\u006F\u0070" + // 0x90 - 0x97 - "\u0071\u0072\u00AA\u00BA\u00E6\u00B8\u00C6\u00A4" + // 0x98 - 0x9F - "\u00B5\u00EC\u0073\u0074\u0075\u0076\u0077\u0078" + // 0xA0 - 0xA7 - "\u0079\u007A\u00A1\u00BF\u00D0\u00DD\u00DE\u00AE" + // 0xA8 - 0xAF - "\u00A2\u0023\u00A5\u00B7\u00A9\u0040\u00B6\u00BC" + // 0xB0 - 0xB7 - "\u00BD\u00BE\u00AC\u007C\u00AF\u00A8\u00B4\u00D7" + // 0xB8 - 0xBF - "\u00E0\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + // 0xC0 - 0xC7 - "\u0048\u0049\u00AD\u00F4\u00F6\u00A6\u00F3\u00F5" + // 0xC8 - 0xCF - "\u00E8\u004A\u004B\u004C\u004D\u004E\u004F\u0050" + // 0xD0 - 0xD7 - "\u0051\u0052\u00B9\u00FB\u00FC\u0060\u00FA\u00FF" + // 0xD8 - 0xDF - "\u00E7\u00F7\u0053\u0054\u0055\u0056\u0057\u0058" + // 0xE0 - 0xE7 - "\u0059\u005A\u00B2\u00D4\u00D6\u00D2\u00D3\u00D5" + // 0xE8 - 0xEF - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + // 0xF0 - 0xF7 - "\u0038\u0039\u00B3\u00DB\u00DC\u00D9\u00DA\u009F" + // 0xF8 - 0xFF - "\u0000\u0001\u0002\u0003\u009C\t\u0086\u007F" + // 0x00 - 0x07 - "\u0097\u008D\u008E\u000B\f\r\u000E\u000F" + // 0x08 - 0x0F - "\u0010\u0011\u0012\u0013\u009D\n\b\u0087" + // 0x10 - 0x17 - "\u0018\u0019\u0092\u008F\u001C\u001D\u001E\u001F" + // 0x18 - 0x1F - "\u0080\u0081\u0082\u0083\u0084\n\u0017\u001B" + // 0x20 - 0x27 - "\u0088\u0089\u008A\u008B\u008C\u0005\u0006\u0007" + // 0x28 - 0x2F - "\u0090\u0091\u0016\u0093\u0094\u0095\u0096\u0004" + // 0x30 - 0x37 - "\u0098\u0099\u009A\u009B\u0014\u0015\u009E\u001A" + // 0x38 - 0x3F - "\u0020\u00A0\u00E2\u00E4\u007B\u00E1\u00E3\u00E5" + // 0x40 - 0x47 - "\\\u00F1\u00B0\u002E\u003C\u0028\u002B\u0021" + // 0x48 - 0x4F - "\u0026\u005D\u00EA\u00EB\u007D\u00ED\u00EE\u00EF" + // 0x50 - 0x57 - "\u007E\u00DF\u00E9\u0024\u002A\u0029\u003B\u005E" + // 0x58 - 0x5F - "\u002D\u002F\u00C2\u00C4\u00C0\u00C1\u00C3\u00C5" + // 0x60 - 0x67 - "\u00C7\u00D1\u00F2\u002C\u0025\u005F\u003E\u003F" + // 0x68 - 0x6F - "\u00F8\u00C9\u00CA\u00CB\u00C8\u00CD\u00CE\u00CF" + // 0x70 - 0x77 - "\u00CC\u00F9\u003A\u00A3\u00A7\'\u003D\""; // 0x78 - 0x7F - - } - - private static class Encoder extends SingleByteEncoder { - public Encoder(Charset cs) { - super(cs, index1, index2, 0xFF00, 0x00FF, 8); - } - - private final static String index2 = - - - "\u0000\u0001\u0002\u0003\u0037\u002D\u002E\u002F" + - "\u0016\u0005\u0015\u000B\f\r\u000E\u000F" + - "\u0010\u0011\u0012\u0013\u003C\u003D\u0032\u0026" + - "\u0018\u0019\u003F\'\u001C\u001D\u001E\u001F" + - "\u0040\u004F\u007F\u00B1\u005B\u006C\u0050\u007D" + - "\u004D\u005D\\\u004E\u006B\u0060\u004B\u0061" + - "\u00F0\u00F1\u00F2\u00F3\u00F4\u00F5\u00F6\u00F7" + - "\u00F8\u00F9\u007A\u005E\u004C\u007E\u006E\u006F" + - "\u00B5\u00C1\u00C2\u00C3\u00C4\u00C5\u00C6\u00C7" + - "\u00C8\u00C9\u00D1\u00D2\u00D3\u00D4\u00D5\u00D6" + - "\u00D7\u00D8\u00D9\u00E2\u00E3\u00E4\u00E5\u00E6" + - "\u00E7\u00E8\u00E9\u0090\u0048\u0051\u005F\u006D" + - "\u00DD\u0081\u0082\u0083\u0084\u0085\u0086\u0087" + - "\u0088\u0089\u0091\u0092\u0093\u0094\u0095\u0096" + - "\u0097\u0098\u0099\u00A2\u00A3\u00A4\u00A5\u00A6" + - "\u00A7\u00A8\u00A9\u0044\u00BB\u0054\u0058\u0007" + - "\u0020\u0021\"\u0023\u0024\u0015\u0006\u0017" + - "\u0028\u0029\u002A\u002B\u002C\t\n\u001B" + - "\u0030\u0031\u001A\u0033\u0034\u0035\u0036\b" + - "\u0038\u0039\u003A\u003B\u0004\u0014\u003E\u00FF" + - "\u0041\u00AA\u00B0\u007B\u009F\u00B2\u00CD\u007C" + - "\u00BD\u00B4\u009A\u008A\u00BA\u00CA\u00AF\u00BC" + - "\u004A\u008F\u00EA\u00FA\u00BE\u00A0\u00B6\u00B3" + - "\u009D\u00DA\u009B\u008B\u00B7\u00B8\u00B9\u00AB" + - "\u0064\u0065\u0062\u0066\u0063\u0067\u009E\u0068" + - "\u0074\u0071\u0072\u0073\u0078\u0075\u0076\u0077" + - "\u00AC\u0069\u00ED\u00EE\u00EB\u00EF\u00EC\u00BF" + - "\u0080\u00FD\u00FE\u00FB\u00FC\u00AD\u00AE\u0059" + - "\u00C0\u0045\u0042\u0046\u0043\u0047\u009C\u00E0" + - "\u00D0\u005A\u0052\u0053\u00A1\u0055\u0056\u0057" + - "\u008C\u0049\u006A\u00CE\u00CB\u00CF\u00CC\u00E1" + - "\u0070\u0079\u00DE\u00DB\u00DC\u008D\u008E\u00DF" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"; - - private final static short index1[] = { - 0, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - - }; - } -} diff --git a/jdk/src/share/classes/sun/nio/cs/ext/IBM284.java b/jdk/src/share/classes/sun/nio/cs/ext/IBM284.java deleted file mode 100644 index ba612686884..00000000000 --- a/jdk/src/share/classes/sun/nio/cs/ext/IBM284.java +++ /dev/null @@ -1,221 +0,0 @@ - -/* - * Copyright 2003-2004 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. - */ - -package sun.nio.cs.ext; - - -import java.nio.charset.Charset; -import java.nio.charset.CharsetDecoder; -import java.nio.charset.CharsetEncoder; -import sun.nio.cs.StandardCharsets; -import sun.nio.cs.SingleByteDecoder; -import sun.nio.cs.SingleByteEncoder; -import sun.nio.cs.HistoricallyNamedCharset; - -public class IBM284 - extends Charset - implements HistoricallyNamedCharset -{ - - public IBM284() { - super("IBM284", ExtendedCharsets.aliasesFor("IBM284")); - } - - public String historicalName() { - return "Cp284"; - } - - public boolean contains(Charset cs) { - return (cs instanceof IBM284); - } - - public CharsetDecoder newDecoder() { - return new Decoder(this); - } - - public CharsetEncoder newEncoder() { - return new Encoder(this); - } - - - /** - * These accessors are temporarily supplied while sun.io - * converters co-exist with the sun.nio.cs.{ext} charset coders - * These facilitate sharing of conversion tables between the - * two co-existing implementations. When sun.io converters - * are made extinct these will be unncessary and should be removed - */ - - public String getDecoderSingleByteMappings() { - return Decoder.byteToCharTable; - - } - - public short[] getEncoderIndex1() { - return Encoder.index1; - - } - public String getEncoderIndex2() { - return Encoder.index2; - - } - - protected static class Decoder extends SingleByteDecoder { - public Decoder(Charset cs) { - super(cs, byteToCharTable); - } - - private final static String byteToCharTable = - - "\u00D8\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + // 0x80 - 0x87 - "\u0068\u0069\u00AB\u00BB\u00F0\u00FD\u00FE\u00B1" + // 0x88 - 0x8F - "\u00B0\u006A\u006B\u006C\u006D\u006E\u006F\u0070" + // 0x90 - 0x97 - "\u0071\u0072\u00AA\u00BA\u00E6\u00B8\u00C6\u00A4" + // 0x98 - 0x9F - "\u00B5\u00A8\u0073\u0074\u0075\u0076\u0077\u0078" + // 0xA0 - 0xA7 - "\u0079\u007A\u00A1\u00BF\u00D0\u00DD\u00DE\u00AE" + // 0xA8 - 0xAF - "\u00A2\u00A3\u00A5\u00B7\u00A9\u00A7\u00B6\u00BC" + // 0xB0 - 0xB7 - "\u00BD\u00BE\u005E\u0021\u00AF\u007E\u00B4\u00D7" + // 0xB8 - 0xBF - "\u007B\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + // 0xC0 - 0xC7 - "\u0048\u0049\u00AD\u00F4\u00F6\u00F2\u00F3\u00F5" + // 0xC8 - 0xCF - "\u007D\u004A\u004B\u004C\u004D\u004E\u004F\u0050" + // 0xD0 - 0xD7 - "\u0051\u0052\u00B9\u00FB\u00FC\u00F9\u00FA\u00FF" + // 0xD8 - 0xDF - "\\\u00F7\u0053\u0054\u0055\u0056\u0057\u0058" + // 0xE0 - 0xE7 - "\u0059\u005A\u00B2\u00D4\u00D6\u00D2\u00D3\u00D5" + // 0xE8 - 0xEF - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + // 0xF0 - 0xF7 - "\u0038\u0039\u00B3\u00DB\u00DC\u00D9\u00DA\u009F" + // 0xF8 - 0xFF - "\u0000\u0001\u0002\u0003\u009C\t\u0086\u007F" + // 0x00 - 0x07 - "\u0097\u008D\u008E\u000B\f\r\u000E\u000F" + // 0x08 - 0x0F - "\u0010\u0011\u0012\u0013\u009D\n\b\u0087" + // 0x10 - 0x17 - "\u0018\u0019\u0092\u008F\u001C\u001D\u001E\u001F" + // 0x18 - 0x1F - "\u0080\u0081\u0082\u0083\u0084\n\u0017\u001B" + // 0x20 - 0x27 - "\u0088\u0089\u008A\u008B\u008C\u0005\u0006\u0007" + // 0x28 - 0x2F - "\u0090\u0091\u0016\u0093\u0094\u0095\u0096\u0004" + // 0x30 - 0x37 - "\u0098\u0099\u009A\u009B\u0014\u0015\u009E\u001A" + // 0x38 - 0x3F - "\u0020\u00A0\u00E2\u00E4\u00E0\u00E1\u00E3\u00E5" + // 0x40 - 0x47 - "\u00E7\u00A6\u005B\u002E\u003C\u0028\u002B\u007C" + // 0x48 - 0x4F - "\u0026\u00E9\u00EA\u00EB\u00E8\u00ED\u00EE\u00EF" + // 0x50 - 0x57 - "\u00EC\u00DF\u005D\u0024\u002A\u0029\u003B\u00AC" + // 0x58 - 0x5F - "\u002D\u002F\u00C2\u00C4\u00C0\u00C1\u00C3\u00C5" + // 0x60 - 0x67 - "\u00C7\u0023\u00F1\u002C\u0025\u005F\u003E\u003F" + // 0x68 - 0x6F - "\u00F8\u00C9\u00CA\u00CB\u00C8\u00CD\u00CE\u00CF" + // 0x70 - 0x77 - "\u00CC\u0060\u003A\u00D1\u0040\'\u003D\""; // 0x78 - 0x7F - - } - - private static class Encoder extends SingleByteEncoder { - public Encoder(Charset cs) { - super(cs, index1, index2, 0xFF00, 0x00FF, 8); - } - - private final static String index2 = - - - "\u0000\u0001\u0002\u0003\u0037\u002D\u002E\u002F" + - "\u0016\u0005\u0015\u000B\f\r\u000E\u000F" + - "\u0010\u0011\u0012\u0013\u003C\u003D\u0032\u0026" + - "\u0018\u0019\u003F\'\u001C\u001D\u001E\u001F" + - "\u0040\u00BB\u007F\u0069\u005B\u006C\u0050\u007D" + - "\u004D\u005D\\\u004E\u006B\u0060\u004B\u0061" + - "\u00F0\u00F1\u00F2\u00F3\u00F4\u00F5\u00F6\u00F7" + - "\u00F8\u00F9\u007A\u005E\u004C\u007E\u006E\u006F" + - "\u007C\u00C1\u00C2\u00C3\u00C4\u00C5\u00C6\u00C7" + - "\u00C8\u00C9\u00D1\u00D2\u00D3\u00D4\u00D5\u00D6" + - "\u00D7\u00D8\u00D9\u00E2\u00E3\u00E4\u00E5\u00E6" + - "\u00E7\u00E8\u00E9\u004A\u00E0\u005A\u00BA\u006D" + - "\u0079\u0081\u0082\u0083\u0084\u0085\u0086\u0087" + - "\u0088\u0089\u0091\u0092\u0093\u0094\u0095\u0096" + - "\u0097\u0098\u0099\u00A2\u00A3\u00A4\u00A5\u00A6" + - "\u00A7\u00A8\u00A9\u00C0\u004F\u00D0\u00BD\u0007" + - "\u0020\u0021\"\u0023\u0024\u0015\u0006\u0017" + - "\u0028\u0029\u002A\u002B\u002C\t\n\u001B" + - "\u0030\u0031\u001A\u0033\u0034\u0035\u0036\b" + - "\u0038\u0039\u003A\u003B\u0004\u0014\u003E\u00FF" + - "\u0041\u00AA\u00B0\u00B1\u009F\u00B2\u0049\u00B5" + - "\u00A1\u00B4\u009A\u008A\u005F\u00CA\u00AF\u00BC" + - "\u0090\u008F\u00EA\u00FA\u00BE\u00A0\u00B6\u00B3" + - "\u009D\u00DA\u009B\u008B\u00B7\u00B8\u00B9\u00AB" + - "\u0064\u0065\u0062\u0066\u0063\u0067\u009E\u0068" + - "\u0074\u0071\u0072\u0073\u0078\u0075\u0076\u0077" + - "\u00AC\u007B\u00ED\u00EE\u00EB\u00EF\u00EC\u00BF" + - "\u0080\u00FD\u00FE\u00FB\u00FC\u00AD\u00AE\u0059" + - "\u0044\u0045\u0042\u0046\u0043\u0047\u009C\u0048" + - "\u0054\u0051\u0052\u0053\u0058\u0055\u0056\u0057" + - "\u008C\u006A\u00CD\u00CE\u00CB\u00CF\u00CC\u00E1" + - "\u0070\u00DD\u00DE\u00DB\u00DC\u008D\u008E\u00DF" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"; - - private final static short index1[] = { - 0, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - - }; - } -} diff --git a/jdk/src/share/classes/sun/nio/cs/ext/IBM285.java b/jdk/src/share/classes/sun/nio/cs/ext/IBM285.java deleted file mode 100644 index b7a44c45bef..00000000000 --- a/jdk/src/share/classes/sun/nio/cs/ext/IBM285.java +++ /dev/null @@ -1,221 +0,0 @@ - -/* - * Copyright 2003-2004 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. - */ - -package sun.nio.cs.ext; - - -import java.nio.charset.Charset; -import java.nio.charset.CharsetDecoder; -import java.nio.charset.CharsetEncoder; -import sun.nio.cs.StandardCharsets; -import sun.nio.cs.SingleByteDecoder; -import sun.nio.cs.SingleByteEncoder; -import sun.nio.cs.HistoricallyNamedCharset; - -public class IBM285 - extends Charset - implements HistoricallyNamedCharset -{ - - public IBM285() { - super("IBM285", ExtendedCharsets.aliasesFor("IBM285")); - } - - public String historicalName() { - return "Cp285"; - } - - public boolean contains(Charset cs) { - return (cs instanceof IBM285); - } - - public CharsetDecoder newDecoder() { - return new Decoder(this); - } - - public CharsetEncoder newEncoder() { - return new Encoder(this); - } - - - /** - * These accessors are temporarily supplied while sun.io - * converters co-exist with the sun.nio.cs.{ext} charset coders - * These facilitate sharing of conversion tables between the - * two co-existing implementations. When sun.io converters - * are made extinct these will be unncessary and should be removed - */ - - public String getDecoderSingleByteMappings() { - return Decoder.byteToCharTable; - - } - - public short[] getEncoderIndex1() { - return Encoder.index1; - - } - public String getEncoderIndex2() { - return Encoder.index2; - - } - - protected static class Decoder extends SingleByteDecoder { - public Decoder(Charset cs) { - super(cs, byteToCharTable); - } - - private final static String byteToCharTable = - - "\u00D8\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + // 0x80 - 0x87 - "\u0068\u0069\u00AB\u00BB\u00F0\u00FD\u00FE\u00B1" + // 0x88 - 0x8F - "\u00B0\u006A\u006B\u006C\u006D\u006E\u006F\u0070" + // 0x90 - 0x97 - "\u0071\u0072\u00AA\u00BA\u00E6\u00B8\u00C6\u00A4" + // 0x98 - 0x9F - "\u00B5\u00AF\u0073\u0074\u0075\u0076\u0077\u0078" + // 0xA0 - 0xA7 - "\u0079\u007A\u00A1\u00BF\u00D0\u00DD\u00DE\u00AE" + // 0xA8 - 0xAF - "\u00A2\u005B\u00A5\u00B7\u00A9\u00A7\u00B6\u00BC" + // 0xB0 - 0xB7 - "\u00BD\u00BE\u005E\u005D\u007E\u00A8\u00B4\u00D7" + // 0xB8 - 0xBF - "\u007B\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + // 0xC0 - 0xC7 - "\u0048\u0049\u00AD\u00F4\u00F6\u00F2\u00F3\u00F5" + // 0xC8 - 0xCF - "\u007D\u004A\u004B\u004C\u004D\u004E\u004F\u0050" + // 0xD0 - 0xD7 - "\u0051\u0052\u00B9\u00FB\u00FC\u00F9\u00FA\u00FF" + // 0xD8 - 0xDF - "\\\u00F7\u0053\u0054\u0055\u0056\u0057\u0058" + // 0xE0 - 0xE7 - "\u0059\u005A\u00B2\u00D4\u00D6\u00D2\u00D3\u00D5" + // 0xE8 - 0xEF - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + // 0xF0 - 0xF7 - "\u0038\u0039\u00B3\u00DB\u00DC\u00D9\u00DA\u009F" + // 0xF8 - 0xFF - "\u0000\u0001\u0002\u0003\u009C\t\u0086\u007F" + // 0x00 - 0x07 - "\u0097\u008D\u008E\u000B\f\r\u000E\u000F" + // 0x08 - 0x0F - "\u0010\u0011\u0012\u0013\u009D\n\b\u0087" + // 0x10 - 0x17 - "\u0018\u0019\u0092\u008F\u001C\u001D\u001E\u001F" + // 0x18 - 0x1F - "\u0080\u0081\u0082\u0083\u0084\n\u0017\u001B" + // 0x20 - 0x27 - "\u0088\u0089\u008A\u008B\u008C\u0005\u0006\u0007" + // 0x28 - 0x2F - "\u0090\u0091\u0016\u0093\u0094\u0095\u0096\u0004" + // 0x30 - 0x37 - "\u0098\u0099\u009A\u009B\u0014\u0015\u009E\u001A" + // 0x38 - 0x3F - "\u0020\u00A0\u00E2\u00E4\u00E0\u00E1\u00E3\u00E5" + // 0x40 - 0x47 - "\u00E7\u00F1\u0024\u002E\u003C\u0028\u002B\u007C" + // 0x48 - 0x4F - "\u0026\u00E9\u00EA\u00EB\u00E8\u00ED\u00EE\u00EF" + // 0x50 - 0x57 - "\u00EC\u00DF\u0021\u00A3\u002A\u0029\u003B\u00AC" + // 0x58 - 0x5F - "\u002D\u002F\u00C2\u00C4\u00C0\u00C1\u00C3\u00C5" + // 0x60 - 0x67 - "\u00C7\u00D1\u00A6\u002C\u0025\u005F\u003E\u003F" + // 0x68 - 0x6F - "\u00F8\u00C9\u00CA\u00CB\u00C8\u00CD\u00CE\u00CF" + // 0x70 - 0x77 - "\u00CC\u0060\u003A\u0023\u0040\'\u003D\""; // 0x78 - 0x7F - - } - - private static class Encoder extends SingleByteEncoder { - public Encoder(Charset cs) { - super(cs, index1, index2, 0xFF00, 0x00FF, 8); - } - - private final static String index2 = - - - "\u0000\u0001\u0002\u0003\u0037\u002D\u002E\u002F" + - "\u0016\u0005\u0015\u000B\f\r\u000E\u000F" + - "\u0010\u0011\u0012\u0013\u003C\u003D\u0032\u0026" + - "\u0018\u0019\u003F\'\u001C\u001D\u001E\u001F" + - "\u0040\u005A\u007F\u007B\u004A\u006C\u0050\u007D" + - "\u004D\u005D\\\u004E\u006B\u0060\u004B\u0061" + - "\u00F0\u00F1\u00F2\u00F3\u00F4\u00F5\u00F6\u00F7" + - "\u00F8\u00F9\u007A\u005E\u004C\u007E\u006E\u006F" + - "\u007C\u00C1\u00C2\u00C3\u00C4\u00C5\u00C6\u00C7" + - "\u00C8\u00C9\u00D1\u00D2\u00D3\u00D4\u00D5\u00D6" + - "\u00D7\u00D8\u00D9\u00E2\u00E3\u00E4\u00E5\u00E6" + - "\u00E7\u00E8\u00E9\u00B1\u00E0\u00BB\u00BA\u006D" + - "\u0079\u0081\u0082\u0083\u0084\u0085\u0086\u0087" + - "\u0088\u0089\u0091\u0092\u0093\u0094\u0095\u0096" + - "\u0097\u0098\u0099\u00A2\u00A3\u00A4\u00A5\u00A6" + - "\u00A7\u00A8\u00A9\u00C0\u004F\u00D0\u00BC\u0007" + - "\u0020\u0021\"\u0023\u0024\u0015\u0006\u0017" + - "\u0028\u0029\u002A\u002B\u002C\t\n\u001B" + - "\u0030\u0031\u001A\u0033\u0034\u0035\u0036\b" + - "\u0038\u0039\u003A\u003B\u0004\u0014\u003E\u00FF" + - "\u0041\u00AA\u00B0\u005B\u009F\u00B2\u006A\u00B5" + - "\u00BD\u00B4\u009A\u008A\u005F\u00CA\u00AF\u00A1" + - "\u0090\u008F\u00EA\u00FA\u00BE\u00A0\u00B6\u00B3" + - "\u009D\u00DA\u009B\u008B\u00B7\u00B8\u00B9\u00AB" + - "\u0064\u0065\u0062\u0066\u0063\u0067\u009E\u0068" + - "\u0074\u0071\u0072\u0073\u0078\u0075\u0076\u0077" + - "\u00AC\u0069\u00ED\u00EE\u00EB\u00EF\u00EC\u00BF" + - "\u0080\u00FD\u00FE\u00FB\u00FC\u00AD\u00AE\u0059" + - "\u0044\u0045\u0042\u0046\u0043\u0047\u009C\u0048" + - "\u0054\u0051\u0052\u0053\u0058\u0055\u0056\u0057" + - "\u008C\u0049\u00CD\u00CE\u00CB\u00CF\u00CC\u00E1" + - "\u0070\u00DD\u00DE\u00DB\u00DC\u008D\u008E\u00DF" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"; - - private final static short index1[] = { - 0, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - - }; - } -} diff --git a/jdk/src/share/classes/sun/nio/cs/ext/IBM297.java b/jdk/src/share/classes/sun/nio/cs/ext/IBM297.java deleted file mode 100644 index 74aecce606d..00000000000 --- a/jdk/src/share/classes/sun/nio/cs/ext/IBM297.java +++ /dev/null @@ -1,221 +0,0 @@ - -/* - * Copyright 2003-2004 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. - */ - -package sun.nio.cs.ext; - - -import java.nio.charset.Charset; -import java.nio.charset.CharsetDecoder; -import java.nio.charset.CharsetEncoder; -import sun.nio.cs.StandardCharsets; -import sun.nio.cs.SingleByteDecoder; -import sun.nio.cs.SingleByteEncoder; -import sun.nio.cs.HistoricallyNamedCharset; - -public class IBM297 - extends Charset - implements HistoricallyNamedCharset -{ - - public IBM297() { - super("IBM297", ExtendedCharsets.aliasesFor("IBM297")); - } - - public String historicalName() { - return "Cp297"; - } - - public boolean contains(Charset cs) { - return (cs instanceof IBM297); - } - - public CharsetDecoder newDecoder() { - return new Decoder(this); - } - - public CharsetEncoder newEncoder() { - return new Encoder(this); - } - - - /** - * These accessors are temporarily supplied while sun.io - * converters co-exist with the sun.nio.cs.{ext} charset coders - * These facilitate sharing of conversion tables between the - * two co-existing implementations. When sun.io converters - * are made extinct these will be unncessary and should be removed - */ - - public String getDecoderSingleByteMappings() { - return Decoder.byteToCharTable; - - } - - public short[] getEncoderIndex1() { - return Encoder.index1; - - } - public String getEncoderIndex2() { - return Encoder.index2; - - } - - protected static class Decoder extends SingleByteDecoder { - public Decoder(Charset cs) { - super(cs, byteToCharTable); - } - - private final static String byteToCharTable = - - "\u00D8\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + // 0x80 - 0x87 - "\u0068\u0069\u00AB\u00BB\u00F0\u00FD\u00FE\u00B1" + // 0x88 - 0x8F - "\u005B\u006A\u006B\u006C\u006D\u006E\u006F\u0070" + // 0x90 - 0x97 - "\u0071\u0072\u00AA\u00BA\u00E6\u00B8\u00C6\u00A4" + // 0x98 - 0x9F - "\u0060\u00A8\u0073\u0074\u0075\u0076\u0077\u0078" + // 0xA0 - 0xA7 - "\u0079\u007A\u00A1\u00BF\u00D0\u00DD\u00DE\u00AE" + // 0xA8 - 0xAF - "\u00A2\u0023\u00A5\u00B7\u00A9\u005D\u00B6\u00BC" + // 0xB0 - 0xB7 - "\u00BD\u00BE\u00AC\u007C\u00AF\u007E\u00B4\u00D7" + // 0xB8 - 0xBF - "\u00E9\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + // 0xC0 - 0xC7 - "\u0048\u0049\u00AD\u00F4\u00F6\u00F2\u00F3\u00F5" + // 0xC8 - 0xCF - "\u00E8\u004A\u004B\u004C\u004D\u004E\u004F\u0050" + // 0xD0 - 0xD7 - "\u0051\u0052\u00B9\u00FB\u00FC\u00A6\u00FA\u00FF" + // 0xD8 - 0xDF - "\u00E7\u00F7\u0053\u0054\u0055\u0056\u0057\u0058" + // 0xE0 - 0xE7 - "\u0059\u005A\u00B2\u00D4\u00D6\u00D2\u00D3\u00D5" + // 0xE8 - 0xEF - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + // 0xF0 - 0xF7 - "\u0038\u0039\u00B3\u00DB\u00DC\u00D9\u00DA\u009F" + // 0xF8 - 0xFF - "\u0000\u0001\u0002\u0003\u009C\t\u0086\u007F" + // 0x00 - 0x07 - "\u0097\u008D\u008E\u000B\f\r\u000E\u000F" + // 0x08 - 0x0F - "\u0010\u0011\u0012\u0013\u009D\n\b\u0087" + // 0x10 - 0x17 - "\u0018\u0019\u0092\u008F\u001C\u001D\u001E\u001F" + // 0x18 - 0x1F - "\u0080\u0081\u0082\u0083\u0084\n\u0017\u001B" + // 0x20 - 0x27 - "\u0088\u0089\u008A\u008B\u008C\u0005\u0006\u0007" + // 0x28 - 0x2F - "\u0090\u0091\u0016\u0093\u0094\u0095\u0096\u0004" + // 0x30 - 0x37 - "\u0098\u0099\u009A\u009B\u0014\u0015\u009E\u001A" + // 0x38 - 0x3F - "\u0020\u00A0\u00E2\u00E4\u0040\u00E1\u00E3\u00E5" + // 0x40 - 0x47 - "\\\u00F1\u00B0\u002E\u003C\u0028\u002B\u0021" + // 0x48 - 0x4F - "\u0026\u007B\u00EA\u00EB\u007D\u00ED\u00EE\u00EF" + // 0x50 - 0x57 - "\u00EC\u00DF\u00A7\u0024\u002A\u0029\u003B\u005E" + // 0x58 - 0x5F - "\u002D\u002F\u00C2\u00C4\u00C0\u00C1\u00C3\u00C5" + // 0x60 - 0x67 - "\u00C7\u00D1\u00F9\u002C\u0025\u005F\u003E\u003F" + // 0x68 - 0x6F - "\u00F8\u00C9\u00CA\u00CB\u00C8\u00CD\u00CE\u00CF" + // 0x70 - 0x77 - "\u00CC\u00B5\u003A\u00A3\u00E0\'\u003D\""; // 0x78 - 0x7F - - } - - private static class Encoder extends SingleByteEncoder { - public Encoder(Charset cs) { - super(cs, index1, index2, 0xFF00, 0x00FF, 8); - } - - private final static String index2 = - - - "\u0000\u0001\u0002\u0003\u0037\u002D\u002E\u002F" + - "\u0016\u0005\u0015\u000B\f\r\u000E\u000F" + - "\u0010\u0011\u0012\u0013\u003C\u003D\u0032\u0026" + - "\u0018\u0019\u003F\'\u001C\u001D\u001E\u001F" + - "\u0040\u004F\u007F\u00B1\u005B\u006C\u0050\u007D" + - "\u004D\u005D\\\u004E\u006B\u0060\u004B\u0061" + - "\u00F0\u00F1\u00F2\u00F3\u00F4\u00F5\u00F6\u00F7" + - "\u00F8\u00F9\u007A\u005E\u004C\u007E\u006E\u006F" + - "\u0044\u00C1\u00C2\u00C3\u00C4\u00C5\u00C6\u00C7" + - "\u00C8\u00C9\u00D1\u00D2\u00D3\u00D4\u00D5\u00D6" + - "\u00D7\u00D8\u00D9\u00E2\u00E3\u00E4\u00E5\u00E6" + - "\u00E7\u00E8\u00E9\u0090\u0048\u00B5\u005F\u006D" + - "\u00A0\u0081\u0082\u0083\u0084\u0085\u0086\u0087" + - "\u0088\u0089\u0091\u0092\u0093\u0094\u0095\u0096" + - "\u0097\u0098\u0099\u00A2\u00A3\u00A4\u00A5\u00A6" + - "\u00A7\u00A8\u00A9\u0051\u00BB\u0054\u00BD\u0007" + - "\u0020\u0021\"\u0023\u0024\u0015\u0006\u0017" + - "\u0028\u0029\u002A\u002B\u002C\t\n\u001B" + - "\u0030\u0031\u001A\u0033\u0034\u0035\u0036\b" + - "\u0038\u0039\u003A\u003B\u0004\u0014\u003E\u00FF" + - "\u0041\u00AA\u00B0\u007B\u009F\u00B2\u00DD\u005A" + - "\u00A1\u00B4\u009A\u008A\u00BA\u00CA\u00AF\u00BC" + - "\u004A\u008F\u00EA\u00FA\u00BE\u0079\u00B6\u00B3" + - "\u009D\u00DA\u009B\u008B\u00B7\u00B8\u00B9\u00AB" + - "\u0064\u0065\u0062\u0066\u0063\u0067\u009E\u0068" + - "\u0074\u0071\u0072\u0073\u0078\u0075\u0076\u0077" + - "\u00AC\u0069\u00ED\u00EE\u00EB\u00EF\u00EC\u00BF" + - "\u0080\u00FD\u00FE\u00FB\u00FC\u00AD\u00AE\u0059" + - "\u007C\u0045\u0042\u0046\u0043\u0047\u009C\u00E0" + - "\u00D0\u00C0\u0052\u0053\u0058\u0055\u0056\u0057" + - "\u008C\u0049\u00CD\u00CE\u00CB\u00CF\u00CC\u00E1" + - "\u0070\u006A\u00DE\u00DB\u00DC\u008D\u008E\u00DF" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"; - - private final static short index1[] = { - 0, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - - }; - } -} diff --git a/jdk/src/share/classes/sun/nio/cs/ext/IBM420.java b/jdk/src/share/classes/sun/nio/cs/ext/IBM420.java deleted file mode 100644 index f99c85ad759..00000000000 --- a/jdk/src/share/classes/sun/nio/cs/ext/IBM420.java +++ /dev/null @@ -1,315 +0,0 @@ - -/* - * Copyright 2003-2004 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. - */ - -package sun.nio.cs.ext; - - -import java.nio.charset.Charset; -import java.nio.charset.CharsetDecoder; -import java.nio.charset.CharsetEncoder; -import sun.nio.cs.StandardCharsets; -import sun.nio.cs.SingleByteDecoder; -import sun.nio.cs.SingleByteEncoder; -import sun.nio.cs.HistoricallyNamedCharset; - -public class IBM420 - extends Charset - implements HistoricallyNamedCharset -{ - - public IBM420() { - super("IBM420", ExtendedCharsets.aliasesFor("IBM420")); - } - - public String historicalName() { - return "Cp420"; - } - - public boolean contains(Charset cs) { - return (cs instanceof IBM420); - } - - public CharsetDecoder newDecoder() { - return new Decoder(this); - } - - public CharsetEncoder newEncoder() { - return new Encoder(this); - } - - - /** - * These accessors are temporarily supplied while sun.io - * converters co-exist with the sun.nio.cs.{ext} charset coders - * These facilitate sharing of conversion tables between the - * two co-existing implementations. When sun.io converters - * are made extinct these will be unncessary and should be removed - */ - - public String getDecoderSingleByteMappings() { - return Decoder.byteToCharTable; - - } - - public short[] getEncoderIndex1() { - return Encoder.index1; - - } - public String getEncoderIndex2() { - return Encoder.index2; - - } - - private static class Decoder extends SingleByteDecoder { - public Decoder(Charset cs) { - super(cs, byteToCharTable); - } - - private final static String byteToCharTable = - - "\uF8F5\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + // 0x80 - 0x87 - "\u0068\u0069\uFEB7\uF8F4\uFEBB\uF8F7\uFEBF\uFEC3" + // 0x88 - 0x8F - "\uFEC7\u006A\u006B\u006C\u006D\u006E\u006F\u0070" + // 0x90 - 0x97 - "\u0071\u0072\uFEC9\uFECA\uFECB\uFECC\uFECD\uFECE" + // 0x98 - 0x9F - "\uFECF\u00F7\u0073\u0074\u0075\u0076\u0077\u0078" + // 0xA0 - 0xA7 - "\u0079\u007A\uFED0\uFED1\uFED3\uFED5\uFED7\uFED9" + // 0xA8 - 0xAF - "\uFEDB\uFEDD\uFEF5\uFEF6\uFEF7\uFEF8\uFFFD\uFFFD" + // 0xB0 - 0xB7 - "\uFEFB\uFEFC\uFEDF\uFEE1\uFEE3\uFEE5\uFEE7\uFEE9" + // 0xB8 - 0xBF - "\u061B\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + // 0xC0 - 0xC7 - "\u0048\u0049\u00AD\uFEEB\uFFFD\uFEEC\uFFFD\uFEED" + // 0xC8 - 0xCF - "\u061F\u004A\u004B\u004C\u004D\u004E\u004F\u0050" + // 0xD0 - 0xD7 - "\u0051\u0052\uFEEF\uFEF0\uFEF1\uFEF2\uFEF3\u0660" + // 0xD8 - 0xDF - "\u00D7\u2007\u0053\u0054\u0055\u0056\u0057\u0058" + // 0xE0 - 0xE7 - "\u0059\u005A\u0661\u0662\uFFFD\u0663\u0664\u0665" + // 0xE8 - 0xEF - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + // 0xF0 - 0xF7 - "\u0038\u0039\uFFFD\u0666\u0667\u0668\u0669\u009F" + // 0xF8 - 0xFF - "\u0000\u0001\u0002\u0003\u009C\t\u0086\u007F" + // 0x00 - 0x07 - "\u0097\u008D\u008E\u000B\f\r\u000E\u000F" + // 0x08 - 0x0F - "\u0010\u0011\u0012\u0013\u009D\n\b\u0087" + // 0x10 - 0x17 - "\u0018\u0019\u0092\u008F\u001C\u001D\u001E\u001F" + // 0x18 - 0x1F - "\u0080\u0081\u0082\u0083\u0084\n\u0017\u001B" + // 0x20 - 0x27 - "\u0088\u0089\u008A\u008B\u008C\u0005\u0006\u0007" + // 0x28 - 0x2F - "\u0090\u0091\u0016\u0093\u0094\u0095\u0096\u0004" + // 0x30 - 0x37 - "\u0098\u0099\u009A\u009B\u0014\u0015\u009E\u001A" + // 0x38 - 0x3F - "\u0020\u00A0\uFE7C\uFE7D\u0640\uF8FC\uFE80\uFE81" + // 0x40 - 0x47 - "\uFE82\uFE83\u00A2\u002E\u003C\u0028\u002B\u007C" + // 0x48 - 0x4F - "\u0026\uFE84\uFE85\uFFFD\uFFFD\uFE8B\uFE8D\uFE8E" + // 0x50 - 0x57 - "\uFE8F\uFE91\u0021\u0024\u002A\u0029\u003B\u00AC" + // 0x58 - 0x5F - "\u002D\u002F\uFE93\uFE95\uFE97\uFE99\uFE9B\uFE9D" + // 0x60 - 0x67 - "\uFE9F\uFEA1\u00A6\u002C\u0025\u005F\u003E\u003F" + // 0x68 - 0x6F - "\uFEA3\uFEA5\uFEA7\uFEA9\uFEAB\uFEAD\uFEAF\uF8F6" + // 0x70 - 0x77 - "\uFEB3\u060C\u003A\u0023\u0040\'\u003D\""; // 0x78 - 0x7F - - } - - private static class Encoder extends SingleByteEncoder { - public Encoder(Charset cs) { - super(cs, index1, index2, 0xFF00, 0x00FF, 8); - } - - private final static String index2 = - - - "\u0000\u0001\u0002\u0003\u0037\u002D\u002E\u002F" + - "\u0016\u0005\u0015\u000B\f\r\u000E\u000F" + - "\u0010\u0011\u0012\u0013\u003C\u003D\u0032\u0026" + - "\u0018\u0019\u003F\'\u001C\u001D\u001E\u001F" + - "\u0040\u005A\u007F\u007B\u005B\u006C\u0050\u007D" + - "\u004D\u005D\\\u004E\u006B\u0060\u004B\u0061" + - "\u00F0\u00F1\u00F2\u00F3\u00F4\u00F5\u00F6\u00F7" + - "\u00F8\u00F9\u007A\u005E\u004C\u007E\u006E\u006F" + - "\u007C\u00C1\u00C2\u00C3\u00C4\u00C5\u00C6\u00C7" + - "\u00C8\u00C9\u00D1\u00D2\u00D3\u00D4\u00D5\u00D6" + - "\u00D7\u00D8\u00D9\u00E2\u00E3\u00E4\u00E5\u00E6" + - "\u00E7\u00E8\u00E9\u0000\u0000\u0000\u0000\u006D" + - "\u0000\u0081\u0082\u0083\u0084\u0085\u0086\u0087" + - "\u0088\u0089\u0091\u0092\u0093\u0094\u0095\u0096" + - "\u0097\u0098\u0099\u00A2\u00A3\u00A4\u00A5\u00A6" + - "\u00A7\u00A8\u00A9\u0000\u004F\u0000\u0000\u0007" + - "\u0020\u0021\"\u0023\u0024\u0015\u0006\u0017" + - "\u0028\u0029\u002A\u002B\u002C\t\n\u001B" + - "\u0030\u0031\u001A\u0033\u0034\u0035\u0036\b" + - "\u0038\u0039\u003A\u003B\u0004\u0014\u003E\u00FF" + - "\u0041\u0000\u004A\u0000\u0000\u0000\u006A\u0000" + - "\u0000\u0000\u0000\u0000\u005F\u00CA\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u00E0" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u00A1" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0079\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u00C0" + - "\u0000\u0000\u0000\u00D0\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0044\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u00DF\u00EA\u00EB\u00ED" + - "\u00EE\u00EF\u00FB\u00FC\u00FD\u00FE\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u00E1\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u008B\u0080\u0077" + - "\u008D\u0000\u0000\u0000\u0000\u0045\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0042\u0043\u0000\u0000\u0046\u0047" + - "\u0048\u0049\u0051\u0052\u0000\u0000\u0000\u0000" + - "\u0000\u0055\u0000\u0056\u0057\u0058\u0000\u0059" + - "\u0000\u0062\u0000\u0063\u0000\u0064\u0000\u0065" + - "\u0000\u0066\u0000\u0067\u0000\u0068\u0000\u0069" + - "\u0000\u0070\u0000\u0071\u0000\u0072\u0000\u0073" + - "\u0000\u0074\u0000\u0075\u0000\u0076\u0000\u0000" + - "\u0000\u0078\u0000\u0000\u0000\u008A\u0000\u0000" + - "\u0000\u008C\u0000\u0000\u0000\u008E\u0000\u0000" + - "\u0000\u008F\u0000\u0000\u0000\u0090\u0000\u009A" + - "\u009B\u009C\u009D\u009E\u009F\u00A0\u00AA\u00AB" + - "\u0000\u00AC\u0000\u00AD\u0000\u00AE\u0000\u00AF" + - "\u0000\u00B0\u0000\u00B1\u0000\u00BA\u0000\u00BB" + - "\u0000\u00BC\u0000\u00BD\u0000\u00BE\u0000\u00BF" + - "\u0000\u00CB\u00CD\u00CF\u0000\u00DA\u00DB\u00DC" + - "\u00DD\u00DE\u0000\u00B2\u00B3\u00B4\u00B5\u0000" + - "\u0000\u00B8\u00B9\u0000\u0000\u0000"; - - private final static short index1[] = { - 0, 248, 248, 248, 248, 248, 492, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 741, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, 753, 248, 248, 248, 248, 248, 1006, 248, - - }; - } -} diff --git a/jdk/src/share/classes/sun/nio/cs/ext/IBM424.java b/jdk/src/share/classes/sun/nio/cs/ext/IBM424.java deleted file mode 100644 index d4d2c6d4598..00000000000 --- a/jdk/src/share/classes/sun/nio/cs/ext/IBM424.java +++ /dev/null @@ -1,256 +0,0 @@ - -/* - * Copyright 2003-2004 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. - */ - -package sun.nio.cs.ext; - - -import java.nio.charset.Charset; -import java.nio.charset.CharsetDecoder; -import java.nio.charset.CharsetEncoder; -import sun.nio.cs.StandardCharsets; -import sun.nio.cs.SingleByteDecoder; -import sun.nio.cs.SingleByteEncoder; -import sun.nio.cs.HistoricallyNamedCharset; - -public class IBM424 - extends Charset - implements HistoricallyNamedCharset -{ - - public IBM424() { - super("IBM424", ExtendedCharsets.aliasesFor("IBM424")); - } - - public String historicalName() { - return "Cp424"; - } - - public boolean contains(Charset cs) { - return (cs instanceof IBM424); - } - - public CharsetDecoder newDecoder() { - return new Decoder(this); - } - - public CharsetEncoder newEncoder() { - return new Encoder(this); - } - - - /** - * These accessors are temporarily supplied while sun.io - * converters co-exist with the sun.nio.cs.{ext} charset coders - * These facilitate sharing of conversion tables between the - * two co-existing implementations. When sun.io converters - * are made extinct these will be unncessary and should be removed - */ - - public String getDecoderSingleByteMappings() { - return Decoder.byteToCharTable; - - } - - public short[] getEncoderIndex1() { - return Encoder.index1; - - } - public String getEncoderIndex2() { - return Encoder.index2; - - } - - private static class Decoder extends SingleByteDecoder { - public Decoder(Charset cs) { - super(cs, byteToCharTable); - } - - private final static String byteToCharTable = - - "\uFFFD\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + // 0x80 - 0x87 - "\u0068\u0069\u00AB\u00BB\uFFFD\uFFFD\uFFFD\u00B1" + // 0x88 - 0x8F - "\u00B0\u006A\u006B\u006C\u006D\u006E\u006F\u0070" + // 0x90 - 0x97 - "\u0071\u0072\uFFFD\uFFFD\uFFFD\u00B8\uFFFD\u00A4" + // 0x98 - 0x9F - "\u00B5\u007E\u0073\u0074\u0075\u0076\u0077\u0078" + // 0xA0 - 0xA7 - "\u0079\u007A\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u00AE" + // 0xA8 - 0xAF - "\u005E\u00A3\u00A5\u2022\u00A9\u00A7\u00B6\u00BC" + // 0xB0 - 0xB7 - "\u00BD\u00BE\u005B\u005D\u203E\u00A8\u00B4\u00D7" + // 0xB8 - 0xBF - "\u007B\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + // 0xC0 - 0xC7 - "\u0048\u0049\u00AD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD" + // 0xC8 - 0xCF - "\u007D\u004A\u004B\u004C\u004D\u004E\u004F\u0050" + // 0xD0 - 0xD7 - "\u0051\u0052\u00B9\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD" + // 0xD8 - 0xDF - "\\\u00F7\u0053\u0054\u0055\u0056\u0057\u0058" + // 0xE0 - 0xE7 - "\u0059\u005A\u00B2\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD" + // 0xE8 - 0xEF - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + // 0xF0 - 0xF7 - "\u0038\u0039\u00B3\uFFFD\uFFFD\uFFFD\uFFFD\u009F" + // 0xF8 - 0xFF - "\u0000\u0001\u0002\u0003\u009C\t\u0086\u007F" + // 0x00 - 0x07 - "\u0097\u008D\u008E\u000B\f\r\u000E\u000F" + // 0x08 - 0x0F - "\u0010\u0011\u0012\u0013\u009D\n\b\u0087" + // 0x10 - 0x17 - "\u0018\u0019\u0092\u008F\u001C\u001D\u001E\u001F" + // 0x18 - 0x1F - "\u0080\u0081\u0082\u0083\u0084\n\u0017\u001B" + // 0x20 - 0x27 - "\u0088\u0089\u008A\u008B\u008C\u0005\u0006\u0007" + // 0x28 - 0x2F - "\u0090\u0091\u0016\u0093\u0094\u0095\u0096\u0004" + // 0x30 - 0x37 - "\u0098\u0099\u009A\u009B\u0014\u0015\u009E\u001A" + // 0x38 - 0x3F - "\u0020\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5\u05D6" + // 0x40 - 0x47 - "\u05D7\u05D8\u00A2\u002E\u003C\u0028\u002B\u007C" + // 0x48 - 0x4F - "\u0026\u05D9\u05DA\u05DB\u05DC\u05DD\u05DE\u05DF" + // 0x50 - 0x57 - "\u05E0\u05E1\u0021\u0024\u002A\u0029\u003B\u00AC" + // 0x58 - 0x5F - "\u002D\u002F\u05E2\u05E3\u05E4\u05E5\u05E6\u05E7" + // 0x60 - 0x67 - "\u05E8\u05E9\u00A6\u002C\u0025\u005F\u003E\u003F" + // 0x68 - 0x6F - "\uFFFD\u05EA\uFFFD\uFFFD\u00A0\uFFFD\uFFFD\uFFFD" + // 0x70 - 0x77 - "\u2017\u0060\u003A\u0023\u0040\'\u003D\""; // 0x78 - 0x7F - - } - - private static class Encoder extends SingleByteEncoder { - public Encoder(Charset cs) { - super(cs, index1, index2, 0xFF00, 0x00FF, 8); - } - - private final static String index2 = - - - "\u0000\u0001\u0002\u0003\u0037\u002D\u002E\u002F" + - "\u0016\u0005\u0015\u000B\f\r\u000E\u000F" + - "\u0010\u0011\u0012\u0013\u003C\u003D\u0032\u0026" + - "\u0018\u0019\u003F\'\u001C\u001D\u001E\u001F" + - "\u0040\u005A\u007F\u007B\u005B\u006C\u0050\u007D" + - "\u004D\u005D\\\u004E\u006B\u0060\u004B\u0061" + - "\u00F0\u00F1\u00F2\u00F3\u00F4\u00F5\u00F6\u00F7" + - "\u00F8\u00F9\u007A\u005E\u004C\u007E\u006E\u006F" + - "\u007C\u00C1\u00C2\u00C3\u00C4\u00C5\u00C6\u00C7" + - "\u00C8\u00C9\u00D1\u00D2\u00D3\u00D4\u00D5\u00D6" + - "\u00D7\u00D8\u00D9\u00E2\u00E3\u00E4\u00E5\u00E6" + - "\u00E7\u00E8\u00E9\u00BA\u00E0\u00BB\u00B0\u006D" + - "\u0079\u0081\u0082\u0083\u0084\u0085\u0086\u0087" + - "\u0088\u0089\u0091\u0092\u0093\u0094\u0095\u0096" + - "\u0097\u0098\u0099\u00A2\u00A3\u00A4\u00A5\u00A6" + - "\u00A7\u00A8\u00A9\u00C0\u004F\u00D0\u00A1\u0007" + - "\u0020\u0021\"\u0023\u0024\u0015\u0006\u0017" + - "\u0028\u0029\u002A\u002B\u002C\t\n\u001B" + - "\u0030\u0031\u001A\u0033\u0034\u0035\u0036\b" + - "\u0038\u0039\u003A\u003B\u0004\u0014\u003E\u00FF" + - "\u0074\u0000\u004A\u00B1\u009F\u00B2\u006A\u00B5" + - "\u00BD\u00B4\u0000\u008A\u005F\u00CA\u00AF\u0000" + - "\u0090\u008F\u00EA\u00FA\u00BE\u00A0\u00B6\u0000" + - "\u009D\u00DA\u0000\u008B\u00B7\u00B8\u00B9\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u00BF" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u00E1" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0041\u0042\u0043\u0044\u0045\u0046\u0047\u0048" + - "\u0049\u0051\u0052\u0053\u0054\u0055\u0056\u0057" + - "\u0058\u0059\u0062\u0063\u0064\u0065\u0066\u0067" + - "\u0068\u0069\u0071\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0078\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u00B3\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u00BC\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000"; - - private final static short index1[] = { - 0, 248, 248, 248, 248, 296, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 531, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - - }; - } -} diff --git a/jdk/src/share/classes/sun/nio/cs/ext/IBM500.java b/jdk/src/share/classes/sun/nio/cs/ext/IBM500.java deleted file mode 100644 index a6e08103bd0..00000000000 --- a/jdk/src/share/classes/sun/nio/cs/ext/IBM500.java +++ /dev/null @@ -1,221 +0,0 @@ - -/* - * Copyright 2003-2004 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. - */ - -package sun.nio.cs.ext; - - -import java.nio.charset.Charset; -import java.nio.charset.CharsetDecoder; -import java.nio.charset.CharsetEncoder; -import sun.nio.cs.StandardCharsets; -import sun.nio.cs.SingleByteDecoder; -import sun.nio.cs.SingleByteEncoder; -import sun.nio.cs.HistoricallyNamedCharset; - -public class IBM500 - extends Charset - implements HistoricallyNamedCharset -{ - - public IBM500() { - super("IBM500", ExtendedCharsets.aliasesFor("IBM500")); - } - - public String historicalName() { - return "Cp500"; - } - - public boolean contains(Charset cs) { - return (cs instanceof IBM500); - } - - public CharsetDecoder newDecoder() { - return new Decoder(this); - } - - public CharsetEncoder newEncoder() { - return new Encoder(this); - } - - - /** - * These accessors are temporarily supplied while sun.io - * converters co-exist with the sun.nio.cs.{ext} charset coders - * These facilitate sharing of conversion tables between the - * two co-existing implementations. When sun.io converters - * are made extinct these will be unncessary and should be removed - */ - - public String getDecoderSingleByteMappings() { - return Decoder.byteToCharTable; - - } - - public short[] getEncoderIndex1() { - return Encoder.index1; - - } - public String getEncoderIndex2() { - return Encoder.index2; - - } - - protected static class Decoder extends SingleByteDecoder { - public Decoder(Charset cs) { - super(cs, byteToCharTable); - } - - private final static String byteToCharTable = - - "\u00D8\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + // 0x80 - 0x87 - "\u0068\u0069\u00AB\u00BB\u00F0\u00FD\u00FE\u00B1" + // 0x88 - 0x8F - "\u00B0\u006A\u006B\u006C\u006D\u006E\u006F\u0070" + // 0x90 - 0x97 - "\u0071\u0072\u00AA\u00BA\u00E6\u00B8\u00C6\u00A4" + // 0x98 - 0x9F - "\u00B5\u007E\u0073\u0074\u0075\u0076\u0077\u0078" + // 0xA0 - 0xA7 - "\u0079\u007A\u00A1\u00BF\u00D0\u00DD\u00DE\u00AE" + // 0xA8 - 0xAF - "\u00A2\u00A3\u00A5\u00B7\u00A9\u00A7\u00B6\u00BC" + // 0xB0 - 0xB7 - "\u00BD\u00BE\u00AC\u007C\u00AF\u00A8\u00B4\u00D7" + // 0xB8 - 0xBF - "\u007B\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + // 0xC0 - 0xC7 - "\u0048\u0049\u00AD\u00F4\u00F6\u00F2\u00F3\u00F5" + // 0xC8 - 0xCF - "\u007D\u004A\u004B\u004C\u004D\u004E\u004F\u0050" + // 0xD0 - 0xD7 - "\u0051\u0052\u00B9\u00FB\u00FC\u00F9\u00FA\u00FF" + // 0xD8 - 0xDF - "\\\u00F7\u0053\u0054\u0055\u0056\u0057\u0058" + // 0xE0 - 0xE7 - "\u0059\u005A\u00B2\u00D4\u00D6\u00D2\u00D3\u00D5" + // 0xE8 - 0xEF - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + // 0xF0 - 0xF7 - "\u0038\u0039\u00B3\u00DB\u00DC\u00D9\u00DA\u009F" + // 0xF8 - 0xFF - "\u0000\u0001\u0002\u0003\u009C\t\u0086\u007F" + // 0x00 - 0x07 - "\u0097\u008D\u008E\u000B\f\r\u000E\u000F" + // 0x08 - 0x0F - "\u0010\u0011\u0012\u0013\u009D\n\b\u0087" + // 0x10 - 0x17 - "\u0018\u0019\u0092\u008F\u001C\u001D\u001E\u001F" + // 0x18 - 0x1F - "\u0080\u0081\u0082\u0083\u0084\n\u0017\u001B" + // 0x20 - 0x27 - "\u0088\u0089\u008A\u008B\u008C\u0005\u0006\u0007" + // 0x28 - 0x2F - "\u0090\u0091\u0016\u0093\u0094\u0095\u0096\u0004" + // 0x30 - 0x37 - "\u0098\u0099\u009A\u009B\u0014\u0015\u009E\u001A" + // 0x38 - 0x3F - "\u0020\u00A0\u00E2\u00E4\u00E0\u00E1\u00E3\u00E5" + // 0x40 - 0x47 - "\u00E7\u00F1\u005B\u002E\u003C\u0028\u002B\u0021" + // 0x48 - 0x4F - "\u0026\u00E9\u00EA\u00EB\u00E8\u00ED\u00EE\u00EF" + // 0x50 - 0x57 - "\u00EC\u00DF\u005D\u0024\u002A\u0029\u003B\u005E" + // 0x58 - 0x5F - "\u002D\u002F\u00C2\u00C4\u00C0\u00C1\u00C3\u00C5" + // 0x60 - 0x67 - "\u00C7\u00D1\u00A6\u002C\u0025\u005F\u003E\u003F" + // 0x68 - 0x6F - "\u00F8\u00C9\u00CA\u00CB\u00C8\u00CD\u00CE\u00CF" + // 0x70 - 0x77 - "\u00CC\u0060\u003A\u0023\u0040\'\u003D\""; // 0x78 - 0x7F - - } - - private static class Encoder extends SingleByteEncoder { - public Encoder(Charset cs) { - super(cs, index1, index2, 0xFF00, 0x00FF, 8); - } - - private final static String index2 = - - - "\u0000\u0001\u0002\u0003\u0037\u002D\u002E\u002F" + - "\u0016\u0005\u0015\u000B\f\r\u000E\u000F" + - "\u0010\u0011\u0012\u0013\u003C\u003D\u0032\u0026" + - "\u0018\u0019\u003F\'\u001C\u001D\u001E\u001F" + - "\u0040\u004F\u007F\u007B\u005B\u006C\u0050\u007D" + - "\u004D\u005D\\\u004E\u006B\u0060\u004B\u0061" + - "\u00F0\u00F1\u00F2\u00F3\u00F4\u00F5\u00F6\u00F7" + - "\u00F8\u00F9\u007A\u005E\u004C\u007E\u006E\u006F" + - "\u007C\u00C1\u00C2\u00C3\u00C4\u00C5\u00C6\u00C7" + - "\u00C8\u00C9\u00D1\u00D2\u00D3\u00D4\u00D5\u00D6" + - "\u00D7\u00D8\u00D9\u00E2\u00E3\u00E4\u00E5\u00E6" + - "\u00E7\u00E8\u00E9\u004A\u00E0\u005A\u005F\u006D" + - "\u0079\u0081\u0082\u0083\u0084\u0085\u0086\u0087" + - "\u0088\u0089\u0091\u0092\u0093\u0094\u0095\u0096" + - "\u0097\u0098\u0099\u00A2\u00A3\u00A4\u00A5\u00A6" + - "\u00A7\u00A8\u00A9\u00C0\u00BB\u00D0\u00A1\u0007" + - "\u0020\u0021\"\u0023\u0024\u0015\u0006\u0017" + - "\u0028\u0029\u002A\u002B\u002C\t\n\u001B" + - "\u0030\u0031\u001A\u0033\u0034\u0035\u0036\b" + - "\u0038\u0039\u003A\u003B\u0004\u0014\u003E\u00FF" + - "\u0041\u00AA\u00B0\u00B1\u009F\u00B2\u006A\u00B5" + - "\u00BD\u00B4\u009A\u008A\u00BA\u00CA\u00AF\u00BC" + - "\u0090\u008F\u00EA\u00FA\u00BE\u00A0\u00B6\u00B3" + - "\u009D\u00DA\u009B\u008B\u00B7\u00B8\u00B9\u00AB" + - "\u0064\u0065\u0062\u0066\u0063\u0067\u009E\u0068" + - "\u0074\u0071\u0072\u0073\u0078\u0075\u0076\u0077" + - "\u00AC\u0069\u00ED\u00EE\u00EB\u00EF\u00EC\u00BF" + - "\u0080\u00FD\u00FE\u00FB\u00FC\u00AD\u00AE\u0059" + - "\u0044\u0045\u0042\u0046\u0043\u0047\u009C\u0048" + - "\u0054\u0051\u0052\u0053\u0058\u0055\u0056\u0057" + - "\u008C\u0049\u00CD\u00CE\u00CB\u00CF\u00CC\u00E1" + - "\u0070\u00DD\u00DE\u00DB\u00DC\u008D\u008E\u00DF" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"; - - private final static short index1[] = { - 0, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - - }; - } -} diff --git a/jdk/src/share/classes/sun/nio/cs/ext/IBM838.java b/jdk/src/share/classes/sun/nio/cs/ext/IBM838.java deleted file mode 100644 index 4c2f9f67c2e..00000000000 --- a/jdk/src/share/classes/sun/nio/cs/ext/IBM838.java +++ /dev/null @@ -1,243 +0,0 @@ - -/* - * Copyright 2003-2004 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. - */ - -package sun.nio.cs.ext; - - -import java.nio.charset.Charset; -import java.nio.charset.CharsetDecoder; -import java.nio.charset.CharsetEncoder; -import sun.nio.cs.StandardCharsets; -import sun.nio.cs.SingleByteDecoder; -import sun.nio.cs.SingleByteEncoder; -import sun.nio.cs.HistoricallyNamedCharset; - -public class IBM838 - extends Charset - implements HistoricallyNamedCharset -{ - - public IBM838() { - super("IBM-Thai", ExtendedCharsets.aliasesFor("IBM-Thai")); - } - - public String historicalName() { - return "Cp838"; - } - - public boolean contains(Charset cs) { - return (cs instanceof IBM838); - } - - public CharsetDecoder newDecoder() { - return new Decoder(this); - } - - public CharsetEncoder newEncoder() { - return new Encoder(this); - } - - - /** - * These accessors are temporarily supplied while sun.io - * converters co-exist with the sun.nio.cs.{ext} charset coders - * These facilitate sharing of conversion tables between the - * two co-existing implementations. When sun.io converters - * are made extinct these will be unncessary and should be removed - */ - - public String getDecoderSingleByteMappings() { - return Decoder.byteToCharTable; - - } - - public short[] getEncoderIndex1() { - return Encoder.index1; - - } - public String getEncoderIndex2() { - return Encoder.index2; - - } - - private static class Decoder extends SingleByteDecoder { - public Decoder(Charset cs) { - super(cs, byteToCharTable); - } - - private final static String byteToCharTable = - - "\u0E4F\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + // 0x80 - 0x87 - "\u0068\u0069\u0E1D\u0E1E\u0E1F\u0E20\u0E21\u0E22" + // 0x88 - 0x8F - "\u0E5A\u006A\u006B\u006C\u006D\u006E\u006F\u0070" + // 0x90 - 0x97 - "\u0071\u0072\u0E23\u0E24\u0E25\u0E26\u0E27\u0E28" + // 0x98 - 0x9F - "\u0E5B\u007E\u0073\u0074\u0075\u0076\u0077\u0078" + // 0xA0 - 0xA7 - "\u0079\u007A\u0E29\u0E2A\u0E2B\u0E2C\u0E2D\u0E2E" + // 0xA8 - 0xAF - "\u0E50\u0E51\u0E52\u0E53\u0E54\u0E55\u0E56\u0E57" + // 0xB0 - 0xB7 - "\u0E58\u0E59\u0E2F\u0E30\u0E31\u0E32\u0E33\u0E34" + // 0xB8 - 0xBF - "\u007B\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + // 0xC0 - 0xC7 - "\u0048\u0049\u0E49\u0E35\u0E36\u0E37\u0E38\u0E39" + // 0xC8 - 0xCF - "\u007D\u004A\u004B\u004C\u004D\u004E\u004F\u0050" + // 0xD0 - 0xD7 - "\u0051\u0052\u0E3A\u0E40\u0E41\u0E42\u0E43\u0E44" + // 0xD8 - 0xDF - "\\\u0E4A\u0053\u0054\u0055\u0056\u0057\u0058" + // 0xE0 - 0xE7 - "\u0059\u005A\u0E45\u0E46\u0E47\u0E48\u0E49\u0E4A" + // 0xE8 - 0xEF - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + // 0xF0 - 0xF7 - "\u0038\u0039\u0E4B\u0E4C\u0E4D\u0E4B\u0E4C\u009F" + // 0xF8 - 0xFF - "\u0000\u0001\u0002\u0003\u009C\t\u0086\u007F" + // 0x00 - 0x07 - "\u0097\u008D\u008E\u000B\f\r\u000E\u000F" + // 0x08 - 0x0F - "\u0010\u0011\u0012\u0013\u009D\n\b\u0087" + // 0x10 - 0x17 - "\u0018\u0019\u0092\u008F\u001C\u001D\u001E\u001F" + // 0x18 - 0x1F - "\u0080\u0081\u0082\u0083\u0084\n\u0017\u001B" + // 0x20 - 0x27 - "\u0088\u0089\u008A\u008B\u008C\u0005\u0006\u0007" + // 0x28 - 0x2F - "\u0090\u0091\u0016\u0093\u0094\u0095\u0096\u0004" + // 0x30 - 0x37 - "\u0098\u0099\u009A\u009B\u0014\u0015\u009E\u001A" + // 0x38 - 0x3F - "\u0020\u00A0\u0E01\u0E02\u0E03\u0E04\u0E05\u0E06" + // 0x40 - 0x47 - "\u0E07\u005B\u00A2\u002E\u003C\u0028\u002B\u007C" + // 0x48 - 0x4F - "\u0026\u0E48\u0E08\u0E09\u0E0A\u0E0B\u0E0C\u0E0D" + // 0x50 - 0x57 - "\u0E0E\u005D\u0021\u0024\u002A\u0029\u003B\u00AC" + // 0x58 - 0x5F - "\u002D\u002F\u0E0F\u0E10\u0E11\u0E12\u0E13\u0E14" + // 0x60 - 0x67 - "\u0E15\u005E\u00A6\u002C\u0025\u005F\u003E\u003F" + // 0x68 - 0x6F - "\u0E3F\u0E4E\u0E16\u0E17\u0E18\u0E19\u0E1A\u0E1B" + // 0x70 - 0x77 - "\u0E1C\u0060\u003A\u0023\u0040\'\u003D\""; // 0x78 - 0x7F - - } - - private static class Encoder extends SingleByteEncoder { - public Encoder(Charset cs) { - super(cs, index1, index2, 0xFF00, 0x00FF, 8); - } - - private final static String index2 = - - - "\u0000\u0001\u0002\u0003\u0037\u002D\u002E\u002F" + - "\u0016\u0005\u0015\u000B\f\r\u000E\u000F" + - "\u0010\u0011\u0012\u0013\u003C\u003D\u0032\u0026" + - "\u0018\u0019\u003F\'\u001C\u001D\u001E\u001F" + - "\u0040\u005A\u007F\u007B\u005B\u006C\u0050\u007D" + - "\u004D\u005D\\\u004E\u006B\u0060\u004B\u0061" + - "\u00F0\u00F1\u00F2\u00F3\u00F4\u00F5\u00F6\u00F7" + - "\u00F8\u00F9\u007A\u005E\u004C\u007E\u006E\u006F" + - "\u007C\u00C1\u00C2\u00C3\u00C4\u00C5\u00C6\u00C7" + - "\u00C8\u00C9\u00D1\u00D2\u00D3\u00D4\u00D5\u00D6" + - "\u00D7\u00D8\u00D9\u00E2\u00E3\u00E4\u00E5\u00E6" + - "\u00E7\u00E8\u00E9\u0049\u00E0\u0059\u0069\u006D" + - "\u0079\u0081\u0082\u0083\u0084\u0085\u0086\u0087" + - "\u0088\u0089\u0091\u0092\u0093\u0094\u0095\u0096" + - "\u0097\u0098\u0099\u00A2\u00A3\u00A4\u00A5\u00A6" + - "\u00A7\u00A8\u00A9\u00C0\u004F\u00D0\u00A1\u0007" + - "\u0020\u0021\"\u0023\u0024\u0015\u0006\u0017" + - "\u0028\u0029\u002A\u002B\u002C\t\n\u001B" + - "\u0030\u0031\u001A\u0033\u0034\u0035\u0036\b" + - "\u0038\u0039\u003A\u003B\u0004\u0014\u003E\u00FF" + - "\u0041\u0000\u004A\u0000\u0000\u0000\u006A\u0000" + - "\u0000\u0000\u0000\u0000\u005F\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0042\u0043\u0044" + - "\u0045\u0046\u0047\u0048\u0052\u0053\u0054\u0055" + - "\u0056\u0057\u0058\u0062\u0063\u0064\u0065\u0066" + - "\u0067\u0068\u0072\u0073\u0074\u0075\u0076\u0077" + - "\u0078\u008A\u008B\u008C\u008D\u008E\u008F\u009A" + - "\u009B\u009C\u009D\u009E\u009F\u00AA\u00AB\u00AC" + - "\u00AD\u00AE\u00AF\u00BA\u00BB\u00BC\u00BD\u00BE" + - "\u00BF\u00CB\u00CC\u00CD\u00CE\u00CF\u00DA\u0000" + - "\u0000\u0000\u0000\u0070\u00DB\u00DC\u00DD\u00DE" + - "\u00DF\u00EA\u00EB\u00EC\u00ED\u00EE\u00EF\u00FA" + - "\u00FB\u00FC\u0071\u0080\u00B0\u00B1\u00B2\u00B3" + - "\u00B4\u00B5\u00B6\u00B7\u00B8\u00B9\u0090\u00A0" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000"; - - private final static short index1[] = { - 0, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 428, 173, - 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, - 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, - 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, - 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, - 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, - 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, - 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, - 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, - 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, - 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, - 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, - 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, - 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, - 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, - 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, - - }; - } -} diff --git a/jdk/src/share/classes/sun/nio/cs/ext/IBM856.java b/jdk/src/share/classes/sun/nio/cs/ext/IBM856.java deleted file mode 100644 index 99280a4b22f..00000000000 --- a/jdk/src/share/classes/sun/nio/cs/ext/IBM856.java +++ /dev/null @@ -1,288 +0,0 @@ - -/* - * Copyright 2003-2004 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. - */ - -package sun.nio.cs.ext; - - -import java.nio.charset.Charset; -import java.nio.charset.CharsetDecoder; -import java.nio.charset.CharsetEncoder; -import sun.nio.cs.StandardCharsets; -import sun.nio.cs.SingleByteDecoder; -import sun.nio.cs.SingleByteEncoder; -import sun.nio.cs.HistoricallyNamedCharset; - -public class IBM856 - extends Charset - implements HistoricallyNamedCharset -{ - - public IBM856() { - super("x-IBM856", ExtendedCharsets.aliasesFor("x-IBM856")); - } - - public String historicalName() { - return "Cp856"; - } - - public boolean contains(Charset cs) { - return (cs instanceof IBM856); - } - - public CharsetDecoder newDecoder() { - return new Decoder(this); - } - - public CharsetEncoder newEncoder() { - return new Encoder(this); - } - - - /** - * These accessors are temporarily supplied while sun.io - * converters co-exist with the sun.nio.cs.{ext} charset coders - * These facilitate sharing of conversion tables between the - * two co-existing implementations. When sun.io converters - * are made extinct these will be unncessary and should be removed - */ - - public String getDecoderSingleByteMappings() { - return Decoder.byteToCharTable; - - } - - public short[] getEncoderIndex1() { - return Encoder.index1; - - } - public String getEncoderIndex2() { - return Encoder.index2; - - } - - private static class Decoder extends SingleByteDecoder { - public Decoder(Charset cs) { - super(cs, byteToCharTable); - } - - private final static String byteToCharTable = - - "\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5\u05D6\u05D7" + // 0x80 - 0x87 - "\u05D8\u05D9\u05DA\u05DB\u05DC\u05DD\u05DE\u05DF" + // 0x88 - 0x8F - "\u05E0\u05E1\u05E2\u05E3\u05E4\u05E5\u05E6\u05E7" + // 0x90 - 0x97 - "\u05E8\u05E9\u05EA\uFFFD\u00A3\uFFFD\u00D7\uFFFD" + // 0x98 - 0x9F - "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD" + // 0xA0 - 0xA7 - "\uFFFD\u00AE\u00AC\u00BD\u00BC\uFFFD\u00AB\u00BB" + // 0xA8 - 0xAF - "\u2591\u2592\u2593\u2502\u2524\uFFFD\uFFFD\uFFFD" + // 0xB0 - 0xB7 - "\u00A9\u2563\u2551\u2557\u255D\u00A2\u00A5\u2510" + // 0xB8 - 0xBF - "\u2514\u2534\u252C\u251C\u2500\u253C\uFFFD\uFFFD" + // 0xC0 - 0xC7 - "\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u00A4" + // 0xC8 - 0xCF - "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD" + // 0xD0 - 0xD7 - "\uFFFD\u2518\u250C\u2588\u2584\u00A6\uFFFD\u2580" + // 0xD8 - 0xDF - "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u00B5\uFFFD" + // 0xE0 - 0xE7 - "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u203E\u00B4" + // 0xE8 - 0xEF - "\u00AD\u00B1\u2017\u00BE\u00B6\u00A7\u00F7\u00B8" + // 0xF0 - 0xF7 - "\u00B0\u00A8\u2022\u00B9\u00B3\u00B2\u25A0\u00A0" + // 0xF8 - 0xFF - "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007" + // 0x00 - 0x07 - "\b\t\n\u000B\f\r\u000E\u000F" + // 0x08 - 0x0F - "\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017" + // 0x10 - 0x17 - "\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F" + // 0x18 - 0x1F - "\u0020\u0021\"\u0023\u0024\u0025\u0026\'" + // 0x20 - 0x27 - "\u0028\u0029\u002A\u002B\u002C\u002D\u002E\u002F" + // 0x28 - 0x2F - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + // 0x30 - 0x37 - "\u0038\u0039\u003A\u003B\u003C\u003D\u003E\u003F" + // 0x38 - 0x3F - "\u0040\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + // 0x40 - 0x47 - "\u0048\u0049\u004A\u004B\u004C\u004D\u004E\u004F" + // 0x48 - 0x4F - "\u0050\u0051\u0052\u0053\u0054\u0055\u0056\u0057" + // 0x50 - 0x57 - "\u0058\u0059\u005A\u005B\\\u005D\u005E\u005F" + // 0x58 - 0x5F - "\u0060\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + // 0x60 - 0x67 - "\u0068\u0069\u006A\u006B\u006C\u006D\u006E\u006F" + // 0x68 - 0x6F - "\u0070\u0071\u0072\u0073\u0074\u0075\u0076\u0077" + // 0x70 - 0x77 - "\u0078\u0079\u007A\u007B\u007C\u007D\u007E\u007F"; // 0x78 - 0x7F - - } - - private static class Encoder extends SingleByteEncoder { - public Encoder(Charset cs) { - super(cs, index1, index2, 0xFF00, 0x00FF, 8); - } - - private final static String index2 = - - - "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007" + - "\b\t\n\u000B\f\r\u000E\u000F" + - "\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017" + - "\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F" + - "\u0020\u0021\"\u0023\u0024\u0025\u0026\'" + - "\u0028\u0029\u002A\u002B\u002C\u002D\u002E\u002F" + - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + - "\u0038\u0039\u003A\u003B\u003C\u003D\u003E\u003F" + - "\u0040\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + - "\u0048\u0049\u004A\u004B\u004C\u004D\u004E\u004F" + - "\u0050\u0051\u0052\u0053\u0054\u0055\u0056\u0057" + - "\u0058\u0059\u005A\u005B\\\u005D\u005E\u005F" + - "\u0060\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + - "\u0068\u0069\u006A\u006B\u006C\u006D\u006E\u006F" + - "\u0070\u0071\u0072\u0073\u0074\u0075\u0076\u0077" + - "\u0078\u0079\u007A\u007B\u007C\u007D\u007E\u007F" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00FF\u0000\u00BD\u009C\u00CF\u00BE\u00DD\u00F5" + - "\u00F9\u00B8\u0000\u00AE\u00AA\u00F0\u00A9\u0000" + - "\u00F8\u00F1\u00FD\u00FC\u00EF\u00E6\u00F4\u0000" + - "\u00F7\u00FB\u0000\u00AF\u00AC\u00AB\u00F3\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u009E" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u00F6" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0080\u0081\u0082\u0083\u0084\u0085\u0086\u0087" + - "\u0088\u0089\u008A\u008B\u008C\u008D\u008E\u008F" + - "\u0090\u0091\u0092\u0093\u0094\u0095\u0096\u0097" + - "\u0098\u0099\u009A\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u00F2\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u00FA\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u00EE\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u00C4\u0000\u00B3\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u00DA" + - "\u0000\u0000\u0000\u00BF\u0000\u0000\u0000\u00C0" + - "\u0000\u0000\u0000\u00D9\u0000\u0000\u0000\u00C3" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u00B4" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u00C2" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u00C1" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u00C5" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u00CD\u00BA\u0000\u0000\u00C9" + - "\u0000\u0000\u00BB\u0000\u0000\u00C8\u0000\u0000" + - "\u00BC\u0000\u0000\u00CC\u0000\u0000\u00B9\u0000" + - "\u0000\u00CB\u0000\u0000\u00CA\u0000\u0000\u00CE" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u00DF\u0000\u0000\u0000\u00DC" + - "\u0000\u0000\u0000\u00DB\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u00B0\u00B1\u00B2\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u00FE\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000"; - - private final static short index1[] = { - 0, 248, 248, 248, 248, 296, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 531, 248, 248, 248, 248, 787, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - - }; - } -} diff --git a/jdk/src/share/classes/sun/nio/cs/ext/IBM860.java b/jdk/src/share/classes/sun/nio/cs/ext/IBM860.java deleted file mode 100644 index 0aaa06c6d1b..00000000000 --- a/jdk/src/share/classes/sun/nio/cs/ext/IBM860.java +++ /dev/null @@ -1,348 +0,0 @@ - -/* - * Copyright 2003-2004 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. - */ - -package sun.nio.cs.ext; - - -import java.nio.charset.Charset; -import java.nio.charset.CharsetDecoder; -import java.nio.charset.CharsetEncoder; -import sun.nio.cs.StandardCharsets; -import sun.nio.cs.SingleByteDecoder; -import sun.nio.cs.SingleByteEncoder; -import sun.nio.cs.HistoricallyNamedCharset; - -public class IBM860 - extends Charset - implements HistoricallyNamedCharset -{ - - public IBM860() { - super("IBM860", ExtendedCharsets.aliasesFor("IBM860")); - } - - public String historicalName() { - return "Cp860"; - } - - public boolean contains(Charset cs) { - return (cs instanceof IBM860); - } - - public CharsetDecoder newDecoder() { - return new Decoder(this); - } - - public CharsetEncoder newEncoder() { - return new Encoder(this); - } - - - /** - * These accessors are temporarily supplied while sun.io - * converters co-exist with the sun.nio.cs.{ext} charset coders - * These facilitate sharing of conversion tables between the - * two co-existing implementations. When sun.io converters - * are made extinct these will be unncessary and should be removed - */ - - public String getDecoderSingleByteMappings() { - return Decoder.byteToCharTable; - - } - - public short[] getEncoderIndex1() { - return Encoder.index1; - - } - public String getEncoderIndex2() { - return Encoder.index2; - - } - - private static class Decoder extends SingleByteDecoder { - public Decoder(Charset cs) { - super(cs, byteToCharTable); - } - - private final static String byteToCharTable = - - "\u00C7\u00FC\u00E9\u00E2\u00E3\u00E0\u00C1\u00E7" + // 0x80 - 0x87 - "\u00EA\u00CA\u00E8\u00CD\u00D4\u00EC\u00C3\u00C2" + // 0x88 - 0x8F - "\u00C9\u00C0\u00C8\u00F4\u00F5\u00F2\u00DA\u00F9" + // 0x90 - 0x97 - "\u00CC\u00D5\u00DC\u00A2\u00A3\u00D9\u20A7\u00D3" + // 0x98 - 0x9F - "\u00E1\u00ED\u00F3\u00FA\u00F1\u00D1\u00AA\u00BA" + // 0xA0 - 0xA7 - "\u00BF\u00D2\u00AC\u00BD\u00BC\u00A1\u00AB\u00BB" + // 0xA8 - 0xAF - "\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556" + // 0xB0 - 0xB7 - "\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510" + // 0xB8 - 0xBF - "\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F" + // 0xC0 - 0xC7 - "\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567" + // 0xC8 - 0xCF - "\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B" + // 0xD0 - 0xD7 - "\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580" + // 0xD8 - 0xDF - "\u03B1\u00DF\u0393\u03C0\u03A3\u03C3\u00B5\u03C4" + // 0xE0 - 0xE7 - "\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229" + // 0xE8 - 0xEF - "\u2261\u00B1\u2265\u2264\u2320\u2321\u00F7\u2248" + // 0xF0 - 0xF7 - "\u00B0\u2219\u00B7\u221A\u207F\u00B2\u25A0\u00A0" + // 0xF8 - 0xFF - "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007" + // 0x00 - 0x07 - "\b\t\n\u000B\f\r\u000E\u000F" + // 0x08 - 0x0F - "\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017" + // 0x10 - 0x17 - "\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F" + // 0x18 - 0x1F - "\u0020\u0021\"\u0023\u0024\u0025\u0026\'" + // 0x20 - 0x27 - "\u0028\u0029\u002A\u002B\u002C\u002D\u002E\u002F" + // 0x28 - 0x2F - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + // 0x30 - 0x37 - "\u0038\u0039\u003A\u003B\u003C\u003D\u003E\u003F" + // 0x38 - 0x3F - "\u0040\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + // 0x40 - 0x47 - "\u0048\u0049\u004A\u004B\u004C\u004D\u004E\u004F" + // 0x48 - 0x4F - "\u0050\u0051\u0052\u0053\u0054\u0055\u0056\u0057" + // 0x50 - 0x57 - "\u0058\u0059\u005A\u005B\\\u005D\u005E\u005F" + // 0x58 - 0x5F - "\u0060\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + // 0x60 - 0x67 - "\u0068\u0069\u006A\u006B\u006C\u006D\u006E\u006F" + // 0x68 - 0x6F - "\u0070\u0071\u0072\u0073\u0074\u0075\u0076\u0077" + // 0x70 - 0x77 - "\u0078\u0079\u007A\u007B\u007C\u007D\u007E\u007F"; // 0x78 - 0x7F - - } - - private static class Encoder extends SingleByteEncoder { - public Encoder(Charset cs) { - super(cs, index1, index2, 0xFF00, 0x00FF, 8); - } - - private final static String index2 = - - - "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007" + - "\b\t\n\u000B\f\r\u000E\u000F" + - "\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017" + - "\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F" + - "\u0020\u0021\"\u0023\u0024\u0025\u0026\'" + - "\u0028\u0029\u002A\u002B\u002C\u002D\u002E\u002F" + - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + - "\u0038\u0039\u003A\u003B\u003C\u003D\u003E\u003F" + - "\u0040\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + - "\u0048\u0049\u004A\u004B\u004C\u004D\u004E\u004F" + - "\u0050\u0051\u0052\u0053\u0054\u0055\u0056\u0057" + - "\u0058\u0059\u005A\u005B\\\u005D\u005E\u005F" + - "\u0060\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + - "\u0068\u0069\u006A\u006B\u006C\u006D\u006E\u006F" + - "\u0070\u0071\u0072\u0073\u0074\u0075\u0076\u0077" + - "\u0078\u0079\u007A\u007B\u007C\u007D\u007E\u007F" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00FF\u00AD\u009B\u009C\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u00A6\u00AE\u00AA\u0000\u0000\u0000" + - "\u00F8\u00F1\u00FD\u0000\u0000\u00E6\u0000\u00FA" + - "\u0000\u0000\u00A7\u00AF\u00AC\u00AB\u0000\u00A8" + - "\u0091\u0086\u008F\u008E\u0000\u0000\u0000\u0080" + - "\u0092\u0090\u0089\u0000\u0098\u008B\u0000\u0000" + - "\u0000\u00A5\u00A9\u009F\u008C\u0099\u0000\u0000" + - "\u0000\u009D\u0096\u0000\u009A\u0000\u0000\u00E1" + - "\u0085\u00A0\u0083\u0084\u0000\u0000\u0000\u0087" + - "\u008A\u0082\u0088\u0000\u008D\u00A1\u0000\u0000" + - "\u0000\u00A4\u0095\u00A2\u0093\u0094\u0000\u00F6" + - "\u0000\u0097\u00A3\u0000\u0081\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u00E2\u0000\u0000" + - "\u0000\u0000\u00E9\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u00E4\u0000\u0000" + - "\u00E8\u0000\u0000\u00EA\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u00E0\u0000\u0000\u00EB\u00EE" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u00E3\u0000\u0000\u00E5\u00E7\u0000" + - "\u00ED\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00FC\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u009E\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u00F9\u00FB\u0000\u0000\u0000\u00EC\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u00EF\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00F7\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u00F0\u0000\u0000\u00F3\u00F2\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00F4\u00F5\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00C4\u0000\u00B3\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u00DA\u0000\u0000\u0000" + - "\u00BF\u0000\u0000\u0000\u00C0\u0000\u0000\u0000" + - "\u00D9\u0000\u0000\u0000\u00C3\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u00B4\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u00C2\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u00C1\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u00C5\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00CD\u00BA\u00D5\u00D6\u00C9\u00B8\u00B7\u00BB" + - "\u00D4\u00D3\u00C8\u00BE\u00BD\u00BC\u00C6\u00C7" + - "\u00CC\u00B5\u00B6\u00B9\u00D1\u00D2\u00CB\u00CF" + - "\u00D0\u00CA\u00D8\u00D7\u00CE\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00DF\u0000\u0000\u0000\u00DC\u0000\u0000\u0000" + - "\u00DB\u0000\u0000\u0000\u00DD\u0000\u0000\u0000" + - "\u00DE\u00B0\u00B1\u00B2\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00FE\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"; - - private final static short index1[] = { - 0, 253, 253, 362, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, - 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, - 561, 253, 792, 1016, 253, 1272, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, - 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, - 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, - 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, - 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, - 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, - 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, - 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, - 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, - 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, - 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, - 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, - 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, - 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, - - }; - } -} diff --git a/jdk/src/share/classes/sun/nio/cs/ext/IBM861.java b/jdk/src/share/classes/sun/nio/cs/ext/IBM861.java deleted file mode 100644 index 018d2e4252b..00000000000 --- a/jdk/src/share/classes/sun/nio/cs/ext/IBM861.java +++ /dev/null @@ -1,369 +0,0 @@ - -/* - * Copyright 2003-2004 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. - */ - -package sun.nio.cs.ext; - - -import java.nio.charset.Charset; -import java.nio.charset.CharsetDecoder; -import java.nio.charset.CharsetEncoder; -import sun.nio.cs.StandardCharsets; -import sun.nio.cs.SingleByteDecoder; -import sun.nio.cs.SingleByteEncoder; -import sun.nio.cs.HistoricallyNamedCharset; - -public class IBM861 - extends Charset - implements HistoricallyNamedCharset -{ - - public IBM861() { - super("IBM861", ExtendedCharsets.aliasesFor("IBM861")); - } - - public String historicalName() { - return "Cp861"; - } - - public boolean contains(Charset cs) { - return (cs instanceof IBM861); - } - - public CharsetDecoder newDecoder() { - return new Decoder(this); - } - - public CharsetEncoder newEncoder() { - return new Encoder(this); - } - - - /** - * These accessors are temporarily supplied while sun.io - * converters co-exist with the sun.nio.cs.{ext} charset coders - * These facilitate sharing of conversion tables between the - * two co-existing implementations. When sun.io converters - * are made extinct these will be unncessary and should be removed - */ - - public String getDecoderSingleByteMappings() { - return Decoder.byteToCharTable; - - } - - public short[] getEncoderIndex1() { - return Encoder.index1; - - } - public String getEncoderIndex2() { - return Encoder.index2; - - } - - private static class Decoder extends SingleByteDecoder { - public Decoder(Charset cs) { - super(cs, byteToCharTable); - } - - private final static String byteToCharTable = - - "\u00C7\u00FC\u00E9\u00E2\u00E4\u00E0\u00E5\u00E7" + // 0x80 - 0x87 - "\u00EA\u00EB\u00E8\u00D0\u00F0\u00DE\u00C4\u00C5" + // 0x88 - 0x8F - "\u00C9\u00E6\u00C6\u00F4\u00F6\u00FE\u00FB\u00DD" + // 0x90 - 0x97 - "\u00FD\u00D6\u00DC\u00F8\u00A3\u00D8\u20A7\u0192" + // 0x98 - 0x9F - "\u00E1\u00ED\u00F3\u00FA\u00C1\u00CD\u00D3\u00DA" + // 0xA0 - 0xA7 - "\u00BF\u2310\u00AC\u00BD\u00BC\u00A1\u00AB\u00BB" + // 0xA8 - 0xAF - "\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556" + // 0xB0 - 0xB7 - "\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510" + // 0xB8 - 0xBF - "\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F" + // 0xC0 - 0xC7 - "\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567" + // 0xC8 - 0xCF - "\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B" + // 0xD0 - 0xD7 - "\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580" + // 0xD8 - 0xDF - "\u03B1\u00DF\u0393\u03C0\u03A3\u03C3\u00B5\u03C4" + // 0xE0 - 0xE7 - "\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229" + // 0xE8 - 0xEF - "\u2261\u00B1\u2265\u2264\u2320\u2321\u00F7\u2248" + // 0xF0 - 0xF7 - "\u00B0\u2219\u00B7\u221A\u207F\u00B2\u25A0\u00A0" + // 0xF8 - 0xFF - "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007" + // 0x00 - 0x07 - "\b\t\n\u000B\f\r\u000E\u000F" + // 0x08 - 0x0F - "\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017" + // 0x10 - 0x17 - "\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F" + // 0x18 - 0x1F - "\u0020\u0021\"\u0023\u0024\u0025\u0026\'" + // 0x20 - 0x27 - "\u0028\u0029\u002A\u002B\u002C\u002D\u002E\u002F" + // 0x28 - 0x2F - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + // 0x30 - 0x37 - "\u0038\u0039\u003A\u003B\u003C\u003D\u003E\u003F" + // 0x38 - 0x3F - "\u0040\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + // 0x40 - 0x47 - "\u0048\u0049\u004A\u004B\u004C\u004D\u004E\u004F" + // 0x48 - 0x4F - "\u0050\u0051\u0052\u0053\u0054\u0055\u0056\u0057" + // 0x50 - 0x57 - "\u0058\u0059\u005A\u005B\\\u005D\u005E\u005F" + // 0x58 - 0x5F - "\u0060\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + // 0x60 - 0x67 - "\u0068\u0069\u006A\u006B\u006C\u006D\u006E\u006F" + // 0x68 - 0x6F - "\u0070\u0071\u0072\u0073\u0074\u0075\u0076\u0077" + // 0x70 - 0x77 - "\u0078\u0079\u007A\u007B\u007C\u007D\u007E\u007F"; // 0x78 - 0x7F - - } - - private static class Encoder extends SingleByteEncoder { - public Encoder(Charset cs) { - super(cs, index1, index2, 0xFF00, 0x00FF, 8); - } - - private final static String index2 = - - - "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007" + - "\b\t\n\u000B\f\r\u000E\u000F" + - "\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017" + - "\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F" + - "\u0020\u0021\"\u0023\u0024\u0025\u0026\'" + - "\u0028\u0029\u002A\u002B\u002C\u002D\u002E\u002F" + - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + - "\u0038\u0039\u003A\u003B\u003C\u003D\u003E\u003F" + - "\u0040\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + - "\u0048\u0049\u004A\u004B\u004C\u004D\u004E\u004F" + - "\u0050\u0051\u0052\u0053\u0054\u0055\u0056\u0057" + - "\u0058\u0059\u005A\u005B\\\u005D\u005E\u005F" + - "\u0060\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + - "\u0068\u0069\u006A\u006B\u006C\u006D\u006E\u006F" + - "\u0070\u0071\u0072\u0073\u0074\u0075\u0076\u0077" + - "\u0078\u0079\u007A\u007B\u007C\u007D\u007E\u007F" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00FF\u00AD\u0000\u009C\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u00AE\u00AA\u0000\u0000\u0000" + - "\u00F8\u00F1\u00FD\u0000\u0000\u00E6\u0000\u00FA" + - "\u0000\u0000\u0000\u00AF\u00AC\u00AB\u0000\u00A8" + - "\u0000\u00A4\u0000\u0000\u008E\u008F\u0092\u0080" + - "\u0000\u0090\u0000\u0000\u0000\u00A5\u0000\u0000" + - "\u008B\u0000\u0000\u00A6\u0000\u0000\u0099\u0000" + - "\u009D\u0000\u00A7\u0000\u009A\u0097\u008D\u00E1" + - "\u0085\u00A0\u0083\u0000\u0084\u0086\u0091\u0087" + - "\u008A\u0082\u0088\u0089\u0000\u00A1\u0000\u0000" + - "\u008C\u0000\u0000\u00A2\u0093\u0000\u0094\u00F6" + - "\u009B\u0000\u00A3\u0096\u0081\u0098\u0095\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u009F\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u00E2\u0000\u0000\u0000\u0000\u00E9" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u00E4\u0000\u0000\u00E8\u0000\u0000" + - "\u00EA\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00E0\u0000\u0000\u00EB\u00EE\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u00E3" + - "\u0000\u0000\u00E5\u00E7\u0000\u00ED\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u00FC\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u009E\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u00F9\u00FB" + - "\u0000\u0000\u0000\u00EC\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u00EF\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u00F7\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u00F0\u0000" + - "\u0000\u00F3\u00F2\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u00A9\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u00F4\u00F5\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u00C4\u0000\u00B3" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u00DA\u0000\u0000\u0000\u00BF\u0000\u0000" + - "\u0000\u00C0\u0000\u0000\u0000\u00D9\u0000\u0000" + - "\u0000\u00C3\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u00B4\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u00C2\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u00C1\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u00C5\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u00CD\u00BA\u00D5" + - "\u00D6\u00C9\u00B8\u00B7\u00BB\u00D4\u00D3\u00C8" + - "\u00BE\u00BD\u00BC\u00C6\u00C7\u00CC\u00B5\u00B6" + - "\u00B9\u00D1\u00D2\u00CB\u00CF\u00D0\u00CA\u00D8" + - "\u00D7\u00CE\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u00DF\u0000\u0000" + - "\u0000\u00DC\u0000\u0000\u0000\u00DB\u0000\u0000" + - "\u0000\u00DD\u0000\u0000\u0000\u00DE\u00B0\u00B1" + - "\u00B2\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u00FE\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000"; - - private final static short index1[] = { - 0, 255, 402, 511, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, - 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, - 710, 402, 941, 1181, 402, 1437, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, - 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, - 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, - 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, - 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, - 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, - 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, - 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, - 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, - 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, - 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, - 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, - 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, - 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, - - }; - } -} diff --git a/jdk/src/share/classes/sun/nio/cs/ext/IBM863.java b/jdk/src/share/classes/sun/nio/cs/ext/IBM863.java deleted file mode 100644 index 32c9d1b298e..00000000000 --- a/jdk/src/share/classes/sun/nio/cs/ext/IBM863.java +++ /dev/null @@ -1,373 +0,0 @@ - -/* - * Copyright 2003-2004 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. - */ - -package sun.nio.cs.ext; - - -import java.nio.charset.Charset; -import java.nio.charset.CharsetDecoder; -import java.nio.charset.CharsetEncoder; -import sun.nio.cs.StandardCharsets; -import sun.nio.cs.SingleByteDecoder; -import sun.nio.cs.SingleByteEncoder; -import sun.nio.cs.HistoricallyNamedCharset; - -public class IBM863 - extends Charset - implements HistoricallyNamedCharset -{ - - public IBM863() { - super("IBM863", ExtendedCharsets.aliasesFor("IBM863")); - } - - public String historicalName() { - return "Cp863"; - } - - public boolean contains(Charset cs) { - return (cs instanceof IBM863); - } - - public CharsetDecoder newDecoder() { - return new Decoder(this); - } - - public CharsetEncoder newEncoder() { - return new Encoder(this); - } - - - /** - * These accessors are temporarily supplied while sun.io - * converters co-exist with the sun.nio.cs.{ext} charset coders - * These facilitate sharing of conversion tables between the - * two co-existing implementations. When sun.io converters - * are made extinct these will be unncessary and should be removed - */ - - public String getDecoderSingleByteMappings() { - return Decoder.byteToCharTable; - - } - - public short[] getEncoderIndex1() { - return Encoder.index1; - - } - public String getEncoderIndex2() { - return Encoder.index2; - - } - - private static class Decoder extends SingleByteDecoder { - public Decoder(Charset cs) { - super(cs, byteToCharTable); - } - - private final static String byteToCharTable = - - "\u00C7\u00FC\u00E9\u00E2\u00C2\u00E0\u00B6\u00E7" + // 0x80 - 0x87 - "\u00EA\u00EB\u00E8\u00EF\u00EE\u2017\u00C0\u00A7" + // 0x88 - 0x8F - "\u00C9\u00C8\u00CA\u00F4\u00CB\u00CF\u00FB\u00F9" + // 0x90 - 0x97 - "\u00A4\u00D4\u00DC\u00A2\u00A3\u00D9\u00DB\u0192" + // 0x98 - 0x9F - "\u00A6\u00B4\u00F3\u00FA\u00A8\u00B8\u00B3\u00AF" + // 0xA0 - 0xA7 - "\u00CE\u2310\u00AC\u00BD\u00BC\u00BE\u00AB\u00BB" + // 0xA8 - 0xAF - "\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556" + // 0xB0 - 0xB7 - "\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510" + // 0xB8 - 0xBF - "\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F" + // 0xC0 - 0xC7 - "\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567" + // 0xC8 - 0xCF - "\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B" + // 0xD0 - 0xD7 - "\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580" + // 0xD8 - 0xDF - "\u03B1\u00DF\u0393\u03C0\u03A3\u03C3\u00B5\u03C4" + // 0xE0 - 0xE7 - "\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229" + // 0xE8 - 0xEF - "\u2261\u00B1\u2265\u2264\u2320\u2321\u00F7\u2248" + // 0xF0 - 0xF7 - "\u00B0\u2219\u00B7\u221A\u207F\u00B2\u25A0\u00A0" + // 0xF8 - 0xFF - "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007" + // 0x00 - 0x07 - "\b\t\n\u000B\f\r\u000E\u000F" + // 0x08 - 0x0F - "\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017" + // 0x10 - 0x17 - "\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F" + // 0x18 - 0x1F - "\u0020\u0021\"\u0023\u0024\u0025\u0026\'" + // 0x20 - 0x27 - "\u0028\u0029\u002A\u002B\u002C\u002D\u002E\u002F" + // 0x28 - 0x2F - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + // 0x30 - 0x37 - "\u0038\u0039\u003A\u003B\u003C\u003D\u003E\u003F" + // 0x38 - 0x3F - "\u0040\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + // 0x40 - 0x47 - "\u0048\u0049\u004A\u004B\u004C\u004D\u004E\u004F" + // 0x48 - 0x4F - "\u0050\u0051\u0052\u0053\u0054\u0055\u0056\u0057" + // 0x50 - 0x57 - "\u0058\u0059\u005A\u005B\\\u005D\u005E\u005F" + // 0x58 - 0x5F - "\u0060\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + // 0x60 - 0x67 - "\u0068\u0069\u006A\u006B\u006C\u006D\u006E\u006F" + // 0x68 - 0x6F - "\u0070\u0071\u0072\u0073\u0074\u0075\u0076\u0077" + // 0x70 - 0x77 - "\u0078\u0079\u007A\u007B\u007C\u007D\u007E\u007F"; // 0x78 - 0x7F - - } - - private static class Encoder extends SingleByteEncoder { - public Encoder(Charset cs) { - super(cs, index1, index2, 0xFF00, 0x00FF, 8); - } - - private final static String index2 = - - - "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007" + - "\b\t\n\u000B\f\r\u000E\u000F" + - "\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017" + - "\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F" + - "\u0020\u0021\"\u0023\u0024\u0025\u0026\'" + - "\u0028\u0029\u002A\u002B\u002C\u002D\u002E\u002F" + - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + - "\u0038\u0039\u003A\u003B\u003C\u003D\u003E\u003F" + - "\u0040\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + - "\u0048\u0049\u004A\u004B\u004C\u004D\u004E\u004F" + - "\u0050\u0051\u0052\u0053\u0054\u0055\u0056\u0057" + - "\u0058\u0059\u005A\u005B\\\u005D\u005E\u005F" + - "\u0060\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + - "\u0068\u0069\u006A\u006B\u006C\u006D\u006E\u006F" + - "\u0070\u0071\u0072\u0073\u0074\u0075\u0076\u0077" + - "\u0078\u0079\u007A\u007B\u007C\u007D\u007E\u007F" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00FF\u0000\u009B\u009C\u0098\u0000\u00A0\u008F" + - "\u00A4\u0000\u0000\u00AE\u00AA\u0000\u0000\u00A7" + - "\u00F8\u00F1\u00FD\u00A6\u00A1\u00E6\u0086\u00FA" + - "\u00A5\u0000\u0000\u00AF\u00AC\u00AB\u00AD\u0000" + - "\u008E\u0000\u0084\u0000\u0000\u0000\u0000\u0080" + - "\u0091\u0090\u0092\u0094\u0000\u0000\u00A8\u0095" + - "\u0000\u0000\u0000\u0000\u0099\u0000\u0000\u0000" + - "\u0000\u009D\u0000\u009E\u009A\u0000\u0000\u00E1" + - "\u0085\u0000\u0083\u0000\u0000\u0000\u0000\u0087" + - "\u008A\u0082\u0088\u0089\u0000\u0000\u008C\u008B" + - "\u0000\u0000\u0000\u00A2\u0093\u0000\u0000\u00F6" + - "\u0000\u0097\u00A3\u0096\u0081\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u009F" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00E2\u0000\u0000\u0000\u0000\u00E9\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00E4\u0000\u0000\u00E8\u0000\u0000\u00EA\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u00E0\u0000" + - "\u0000\u00EB\u00EE\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u00E3\u0000\u0000" + - "\u00E5\u00E7\u0000\u00ED\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u008D\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u00FC\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u00F9\u00FB" + - "\u0000\u0000\u0000\u00EC\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u00EF\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u00F7\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u00F0\u0000" + - "\u0000\u00F3\u00F2\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u00A9\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u00F4\u00F5\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u00C4\u0000\u00B3" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u00DA\u0000\u0000\u0000\u00BF\u0000\u0000" + - "\u0000\u00C0\u0000\u0000\u0000\u00D9\u0000\u0000" + - "\u0000\u00C3\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u00B4\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u00C2\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u00C1\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u00C5\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u00CD\u00BA\u00D5" + - "\u00D6\u00C9\u00B8\u00B7\u00BB\u00D4\u00D3\u00C8" + - "\u00BE\u00BD\u00BC\u00C6\u00C7\u00CC\u00B5\u00B6" + - "\u00B9\u00D1\u00D2\u00CB\u00CF\u00D0\u00CA\u00D8" + - "\u00D7\u00CE\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u00DF\u0000\u0000" + - "\u0000\u00DC\u0000\u0000\u0000\u00DB\u0000\u0000" + - "\u0000\u00DD\u0000\u0000\u0000\u00DE\u00B0\u00B1" + - "\u00B2\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u00FE\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000"; - - private final static short index1[] = { - 0, 253, 400, 509, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, - 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, - 742, 400, 973, 1213, 400, 1469, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, - 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, - 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, - 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, - 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, - 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, - 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, - 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, - 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, - 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, - 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, - 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, - 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, - 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, - - }; - } -} diff --git a/jdk/src/share/classes/sun/nio/cs/ext/IBM864.java b/jdk/src/share/classes/sun/nio/cs/ext/IBM864.java deleted file mode 100644 index acfa0670ea7..00000000000 --- a/jdk/src/share/classes/sun/nio/cs/ext/IBM864.java +++ /dev/null @@ -1,342 +0,0 @@ - -/* - * Copyright 2003-2004 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. - */ - -package sun.nio.cs.ext; - - -import java.nio.charset.Charset; -import java.nio.charset.CharsetDecoder; -import java.nio.charset.CharsetEncoder; -import sun.nio.cs.StandardCharsets; -import sun.nio.cs.SingleByteDecoder; -import sun.nio.cs.SingleByteEncoder; -import sun.nio.cs.HistoricallyNamedCharset; - -public class IBM864 - extends Charset - implements HistoricallyNamedCharset -{ - - public IBM864() { - super("IBM864", ExtendedCharsets.aliasesFor("IBM864")); - } - - public String historicalName() { - return "Cp864"; - } - - public boolean contains(Charset cs) { - return (cs instanceof IBM864); - } - - public CharsetDecoder newDecoder() { - return new Decoder(this); - } - - public CharsetEncoder newEncoder() { - return new Encoder(this); - } - - - /** - * These accessors are temporarily supplied while sun.io - * converters co-exist with the sun.nio.cs.{ext} charset coders - * These facilitate sharing of conversion tables between the - * two co-existing implementations. When sun.io converters - * are made extinct these will be unncessary and should be removed - */ - - public String getDecoderSingleByteMappings() { - return Decoder.byteToCharTable; - - } - - public short[] getEncoderIndex1() { - return Encoder.index1; - - } - public String getEncoderIndex2() { - return Encoder.index2; - - } - - private static class Decoder extends SingleByteDecoder { - public Decoder(Charset cs) { - super(cs, byteToCharTable); - } - - private final static String byteToCharTable = - - "\u00B0\u00B7\u2219\u221A\u2592\u2500\u2502\u253C" + // 0x80 - 0x87 - "\u2524\u252C\u251C\u2534\u2510\u250C\u2514\u2518" + // 0x88 - 0x8F - "\u03B2\u221E\u03C6\u00B1\u00BD\u00BC\u2248\u00AB" + // 0x90 - 0x97 - "\u00BB\uFEF7\uFEF8\uFFFD\uFFFD\uFEFB\uFEFC\uFFFD" + // 0x98 - 0x9F - "\u00A0\u00AD\uFE82\u00A3\u00A4\uFE84\uFFFD\uFFFD" + // 0xA0 - 0xA7 - "\uFE8E\uFE8F\uFE95\uFE99\u060C\uFE9D\uFEA1\uFEA5" + // 0xA8 - 0xAF - "\u0660\u0661\u0662\u0663\u0664\u0665\u0666\u0667" + // 0xB0 - 0xB7 - "\u0668\u0669\uFED1\u061B\uFEB1\uFEB5\uFEB9\u061F" + // 0xB8 - 0xBF - "\u00A2\uFE80\uFE81\uFE83\uFE85\uFECA\uFE8B\uFE8D" + // 0xC0 - 0xC7 - "\uFE91\uFE93\uFE97\uFE9B\uFE9F\uFEA3\uFEA7\uFEA9" + // 0xC8 - 0xCF - "\uFEAB\uFEAD\uFEAF\uFEB3\uFEB7\uFEBB\uFEBF\uFEC1" + // 0xD0 - 0xD7 - "\uFEC5\uFECB\uFECF\u00A6\u00AC\u00F7\u00D7\uFEC9" + // 0xD8 - 0xDF - "\u0640\uFED3\uFED7\uFEDB\uFEDF\uFEE3\uFEE7\uFEEB" + // 0xE0 - 0xE7 - "\uFEED\uFEEF\uFEF3\uFEBD\uFECC\uFECE\uFECD\uFEE1" + // 0xE8 - 0xEF - "\uFE7D\u0651\uFEE5\uFEE9\uFEEC\uFEF0\uFEF2\uFED0" + // 0xF0 - 0xF7 - "\uFED5\uFEF5\uFEF6\uFEDD\uFED9\uFEF1\u25A0\uFFFD" + // 0xF8 - 0xFF - "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007" + // 0x00 - 0x07 - "\b\t\n\u000B\f\r\u000E\u000F" + // 0x08 - 0x0F - "\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017" + // 0x10 - 0x17 - "\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F" + // 0x18 - 0x1F - "\u0020\u0021\"\u0023\u0024\u066A\u0026\'" + // 0x20 - 0x27 - "\u0028\u0029\u002A\u002B\u002C\u002D\u002E\u002F" + // 0x28 - 0x2F - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + // 0x30 - 0x37 - "\u0038\u0039\u003A\u003B\u003C\u003D\u003E\u003F" + // 0x38 - 0x3F - "\u0040\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + // 0x40 - 0x47 - "\u0048\u0049\u004A\u004B\u004C\u004D\u004E\u004F" + // 0x48 - 0x4F - "\u0050\u0051\u0052\u0053\u0054\u0055\u0056\u0057" + // 0x50 - 0x57 - "\u0058\u0059\u005A\u005B\\\u005D\u005E\u005F" + // 0x58 - 0x5F - "\u0060\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + // 0x60 - 0x67 - "\u0068\u0069\u006A\u006B\u006C\u006D\u006E\u006F" + // 0x68 - 0x6F - "\u0070\u0071\u0072\u0073\u0074\u0075\u0076\u0077" + // 0x70 - 0x77 - "\u0078\u0079\u007A\u007B\u007C\u007D\u007E\u007F"; // 0x78 - 0x7F - - } - - private static class Encoder extends SingleByteEncoder { - public Encoder(Charset cs) { - super(cs, index1, index2, 0xFF00, 0x00FF, 8); - } - - private final static String index2 = - - - "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007" + - "\b\t\n\u000B\f\r\u000E\u000F" + - "\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017" + - "\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F" + - "\u0020\u0021\"\u0023\u0024\u0000\u0026\'" + - "\u0028\u0029\u002A\u002B\u002C\u002D\u002E\u002F" + - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + - "\u0038\u0039\u003A\u003B\u003C\u003D\u003E\u003F" + - "\u0040\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + - "\u0048\u0049\u004A\u004B\u004C\u004D\u004E\u004F" + - "\u0050\u0051\u0052\u0053\u0054\u0055\u0056\u0057" + - "\u0058\u0059\u005A\u005B\\\u005D\u005E\u005F" + - "\u0060\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + - "\u0068\u0069\u006A\u006B\u006C\u006D\u006E\u006F" + - "\u0070\u0071\u0072\u0073\u0074\u0075\u0076\u0077" + - "\u0078\u0079\u007A\u007B\u007C\u007D\u007E\u007F" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00A0\u0000\u00C0\u00A3\u00A4\u0000\u00DB\u0000" + - "\u0000\u0000\u0000\u0097\u00DC\u00A1\u0000\u0000" + - "\u0080\u0093\u0000\u0000\u0000\u0000\u0000\u0081" + - "\u0000\u0000\u0000\u0098\u0095\u0094\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u00DE" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u00DD" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0090\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0092\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u00AC\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u00BB\u0000\u0000" + - "\u0000\u00BF\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u00E0\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u00F1\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u00B0\u00B1\u00B2\u00B3\u00B4\u00B5" + - "\u00B6\u00B7\u00B8\u00B9\u0025\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0082\u0083\u0000\u0000\u0000\u0091" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0096\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0085\u0000\u0086\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u008D\u0000\u0000" + - "\u0000\u008C\u0000\u0000\u0000\u008E\u0000\u0000" + - "\u0000\u008F\u0000\u0000\u0000\u008A\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0088\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0089\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u008B\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0087\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0084\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u00FE\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u00F0" + - "\u0000\u0000\u00C1\u00C2\u00A2\u00C3\u00A5\u00C4" + - "\u0000\u0000\u0000\u0000\u0000\u00C6\u0000\u00C7" + - "\u00A8\u00A9\u0000\u00C8\u0000\u00C9\u0000\u00AA" + - "\u0000\u00CA\u0000\u00AB\u0000\u00CB\u0000\u00AD" + - "\u0000\u00CC\u0000\u00AE\u0000\u00CD\u0000\u00AF" + - "\u0000\u00CE\u0000\u00CF\u0000\u00D0\u0000\u00D1" + - "\u0000\u00D2\u0000\u00BC\u0000\u00D3\u0000\u00BD" + - "\u0000\u00D4\u0000\u00BE\u0000\u00D5\u0000\u00EB" + - "\u0000\u00D6\u0000\u00D7\u0000\u0000\u0000\u00D8" + - "\u0000\u0000\u0000\u00DF\u00C5\u00D9\u00EC\u00EE" + - "\u00ED\u00DA\u00F7\u00BA\u0000\u00E1\u0000\u00F8" + - "\u0000\u00E2\u0000\u00FC\u0000\u00E3\u0000\u00FB" + - "\u0000\u00E4\u0000\u00EF\u0000\u00E5\u0000\u00F2" + - "\u0000\u00E6\u0000\u00F3\u0000\u00E7\u00F4\u00E8" + - "\u0000\u00E9\u00F5\u00FD\u00F6\u00EA\u0000\u00F9" + - "\u00FA\u0099\u009A\u0000\u0000\u009D\u009E\u0000" + - "\u0000\u0000"; - - private final static short index1[] = { - 0, 248, 248, 326, 248, 248, 570, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 801, 248, 248, 1057, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 1218, 248, - - }; - } -} diff --git a/jdk/src/share/classes/sun/nio/cs/ext/IBM865.java b/jdk/src/share/classes/sun/nio/cs/ext/IBM865.java deleted file mode 100644 index 01a45a89a5c..00000000000 --- a/jdk/src/share/classes/sun/nio/cs/ext/IBM865.java +++ /dev/null @@ -1,369 +0,0 @@ - -/* - * Copyright 2003-2004 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. - */ - -package sun.nio.cs.ext; - - -import java.nio.charset.Charset; -import java.nio.charset.CharsetDecoder; -import java.nio.charset.CharsetEncoder; -import sun.nio.cs.StandardCharsets; -import sun.nio.cs.SingleByteDecoder; -import sun.nio.cs.SingleByteEncoder; -import sun.nio.cs.HistoricallyNamedCharset; - -public class IBM865 - extends Charset - implements HistoricallyNamedCharset -{ - - public IBM865() { - super("IBM865", ExtendedCharsets.aliasesFor("IBM865")); - } - - public String historicalName() { - return "Cp865"; - } - - public boolean contains(Charset cs) { - return (cs instanceof IBM865); - } - - public CharsetDecoder newDecoder() { - return new Decoder(this); - } - - public CharsetEncoder newEncoder() { - return new Encoder(this); - } - - - /** - * These accessors are temporarily supplied while sun.io - * converters co-exist with the sun.nio.cs.{ext} charset coders - * These facilitate sharing of conversion tables between the - * two co-existing implementations. When sun.io converters - * are made extinct these will be unncessary and should be removed - */ - - public String getDecoderSingleByteMappings() { - return Decoder.byteToCharTable; - - } - - public short[] getEncoderIndex1() { - return Encoder.index1; - - } - public String getEncoderIndex2() { - return Encoder.index2; - - } - - private static class Decoder extends SingleByteDecoder { - public Decoder(Charset cs) { - super(cs, byteToCharTable); - } - - private final static String byteToCharTable = - - "\u00C7\u00FC\u00E9\u00E2\u00E4\u00E0\u00E5\u00E7" + // 0x80 - 0x87 - "\u00EA\u00EB\u00E8\u00EF\u00EE\u00EC\u00C4\u00C5" + // 0x88 - 0x8F - "\u00C9\u00E6\u00C6\u00F4\u00F6\u00F2\u00FB\u00F9" + // 0x90 - 0x97 - "\u00FF\u00D6\u00DC\u00F8\u00A3\u00D8\u20A7\u0192" + // 0x98 - 0x9F - "\u00E1\u00ED\u00F3\u00FA\u00F1\u00D1\u00AA\u00BA" + // 0xA0 - 0xA7 - "\u00BF\u2310\u00AC\u00BD\u00BC\u00A1\u00AB\u00A4" + // 0xA8 - 0xAF - "\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556" + // 0xB0 - 0xB7 - "\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510" + // 0xB8 - 0xBF - "\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F" + // 0xC0 - 0xC7 - "\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567" + // 0xC8 - 0xCF - "\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B" + // 0xD0 - 0xD7 - "\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580" + // 0xD8 - 0xDF - "\u03B1\u00DF\u0393\u03C0\u03A3\u03C3\u00B5\u03C4" + // 0xE0 - 0xE7 - "\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229" + // 0xE8 - 0xEF - "\u2261\u00B1\u2265\u2264\u2320\u2321\u00F7\u2248" + // 0xF0 - 0xF7 - "\u00B0\u2219\u00B7\u221A\u207F\u00B2\u25A0\u00A0" + // 0xF8 - 0xFF - "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007" + // 0x00 - 0x07 - "\b\t\n\u000B\f\r\u000E\u000F" + // 0x08 - 0x0F - "\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017" + // 0x10 - 0x17 - "\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F" + // 0x18 - 0x1F - "\u0020\u0021\"\u0023\u0024\u0025\u0026\'" + // 0x20 - 0x27 - "\u0028\u0029\u002A\u002B\u002C\u002D\u002E\u002F" + // 0x28 - 0x2F - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + // 0x30 - 0x37 - "\u0038\u0039\u003A\u003B\u003C\u003D\u003E\u003F" + // 0x38 - 0x3F - "\u0040\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + // 0x40 - 0x47 - "\u0048\u0049\u004A\u004B\u004C\u004D\u004E\u004F" + // 0x48 - 0x4F - "\u0050\u0051\u0052\u0053\u0054\u0055\u0056\u0057" + // 0x50 - 0x57 - "\u0058\u0059\u005A\u005B\\\u005D\u005E\u005F" + // 0x58 - 0x5F - "\u0060\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + // 0x60 - 0x67 - "\u0068\u0069\u006A\u006B\u006C\u006D\u006E\u006F" + // 0x68 - 0x6F - "\u0070\u0071\u0072\u0073\u0074\u0075\u0076\u0077" + // 0x70 - 0x77 - "\u0078\u0079\u007A\u007B\u007C\u007D\u007E\u007F"; // 0x78 - 0x7F - - } - - private static class Encoder extends SingleByteEncoder { - public Encoder(Charset cs) { - super(cs, index1, index2, 0xFF00, 0x00FF, 8); - } - - private final static String index2 = - - - "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007" + - "\b\t\n\u000B\f\r\u000E\u000F" + - "\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017" + - "\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F" + - "\u0020\u0021\"\u0023\u0024\u0025\u0026\'" + - "\u0028\u0029\u002A\u002B\u002C\u002D\u002E\u002F" + - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + - "\u0038\u0039\u003A\u003B\u003C\u003D\u003E\u003F" + - "\u0040\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + - "\u0048\u0049\u004A\u004B\u004C\u004D\u004E\u004F" + - "\u0050\u0051\u0052\u0053\u0054\u0055\u0056\u0057" + - "\u0058\u0059\u005A\u005B\\\u005D\u005E\u005F" + - "\u0060\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + - "\u0068\u0069\u006A\u006B\u006C\u006D\u006E\u006F" + - "\u0070\u0071\u0072\u0073\u0074\u0075\u0076\u0077" + - "\u0078\u0079\u007A\u007B\u007C\u007D\u007E\u007F" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00FF\u00AD\u0000\u009C\u00AF\u0000\u0000\u0000" + - "\u0000\u0000\u00A6\u00AE\u00AA\u0000\u0000\u0000" + - "\u00F8\u00F1\u00FD\u0000\u0000\u00E6\u0000\u00FA" + - "\u0000\u0000\u00A7\u0000\u00AC\u00AB\u0000\u00A8" + - "\u0000\u0000\u0000\u0000\u008E\u008F\u0092\u0080" + - "\u0000\u0090\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u00A5\u0000\u0000\u0000\u0000\u0099\u0000" + - "\u009D\u0000\u0000\u0000\u009A\u0000\u0000\u00E1" + - "\u0085\u00A0\u0083\u0000\u0084\u0086\u0091\u0087" + - "\u008A\u0082\u0088\u0089\u008D\u00A1\u008C\u008B" + - "\u0000\u00A4\u0095\u00A2\u0093\u0000\u0094\u00F6" + - "\u009B\u0097\u00A3\u0096\u0081\u0000\u0000\u0098" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u009F\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u00E2\u0000\u0000\u0000\u0000" + - "\u00E9\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u00E4\u0000\u0000\u00E8\u0000" + - "\u0000\u00EA\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u00E0\u0000\u0000\u00EB\u00EE\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00E3\u0000\u0000\u00E5\u00E7\u0000\u00ED\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u00FC\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u009E\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u00F9" + - "\u00FB\u0000\u0000\u0000\u00EC\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u00EF" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u00F7\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u00F0" + - "\u0000\u0000\u00F3\u00F2\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u00A9\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u00F4\u00F5" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u00C4\u0000" + - "\u00B3\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u00DA\u0000\u0000\u0000\u00BF\u0000" + - "\u0000\u0000\u00C0\u0000\u0000\u0000\u00D9\u0000" + - "\u0000\u0000\u00C3\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u00B4\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u00C2\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u00C1\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u00C5\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u00CD\u00BA" + - "\u00D5\u00D6\u00C9\u00B8\u00B7\u00BB\u00D4\u00D3" + - "\u00C8\u00BE\u00BD\u00BC\u00C6\u00C7\u00CC\u00B5" + - "\u00B6\u00B9\u00D1\u00D2\u00CB\u00CF\u00D0\u00CA" + - "\u00D8\u00D7\u00CE\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u00DF\u0000" + - "\u0000\u0000\u00DC\u0000\u0000\u0000\u00DB\u0000" + - "\u0000\u0000\u00DD\u0000\u0000\u0000\u00DE\u00B0" + - "\u00B1\u00B2\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u00FE\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000"; - - private final static short index1[] = { - 0, 256, 403, 512, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 711, 403, 942, 1182, 403, 1438, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - - }; - } -} diff --git a/jdk/src/share/classes/sun/nio/cs/ext/IBM868.java b/jdk/src/share/classes/sun/nio/cs/ext/IBM868.java deleted file mode 100644 index c3e0a32b933..00000000000 --- a/jdk/src/share/classes/sun/nio/cs/ext/IBM868.java +++ /dev/null @@ -1,359 +0,0 @@ - -/* - * Copyright 2003-2004 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. - */ - -package sun.nio.cs.ext; - - -import java.nio.charset.Charset; -import java.nio.charset.CharsetDecoder; -import java.nio.charset.CharsetEncoder; -import sun.nio.cs.StandardCharsets; -import sun.nio.cs.SingleByteDecoder; -import sun.nio.cs.SingleByteEncoder; -import sun.nio.cs.HistoricallyNamedCharset; - -public class IBM868 - extends Charset - implements HistoricallyNamedCharset -{ - - public IBM868() { - super("IBM868", ExtendedCharsets.aliasesFor("IBM868")); - } - - public String historicalName() { - return "Cp868"; - } - - public boolean contains(Charset cs) { - return (cs instanceof IBM868); - } - - public CharsetDecoder newDecoder() { - return new Decoder(this); - } - - public CharsetEncoder newEncoder() { - return new Encoder(this); - } - - - /** - * These accessors are temporarily supplied while sun.io - * converters co-exist with the sun.nio.cs.{ext} charset coders - * These facilitate sharing of conversion tables between the - * two co-existing implementations. When sun.io converters - * are made extinct these will be unncessary and should be removed - */ - - public String getDecoderSingleByteMappings() { - return Decoder.byteToCharTable; - - } - - public short[] getEncoderIndex1() { - return Encoder.index1; - - } - public String getEncoderIndex2() { - return Encoder.index2; - - } - - private static class Decoder extends SingleByteDecoder { - public Decoder(Charset cs) { - super(cs, byteToCharTable); - } - - private final static String byteToCharTable = - - "\u06F0\u06F1\u06F2\u06F3\u06F4\u06F5\u06F6\u06F7" + // 0x80 - 0x87 - "\u06F8\u06F9\u060C\u061B\u061F\uFE81\uFE8D\uFE8E" + // 0x88 - 0x8F - "\uF8FB\uFE8F\uFE91\uFB56\uFB58\uFE93\uFE95\uFE97" + // 0x90 - 0x97 - "\uFB66\uFB68\uFE99\uFE9B\uFE9D\uFE9F\uFB7A\uFB7C" + // 0x98 - 0x9F - "\uFEA1\uFEA3\uFEA5\uFEA7\uFEA9\uFB88\uFEAB\uFEAD" + // 0xA0 - 0xA7 - "\uFB8C\uFEAF\uFB8A\uFEB1\uFEB3\uFEB5\u00AB\u00BB" + // 0xA8 - 0xAF - "\u2591\u2592\u2593\u2502\u2524\uFEB7\uFEB9\uFEBB" + // 0xB0 - 0xB7 - "\uFEBD\u2563\u2551\u2557\u255D\uFEBF\uFEC3\u2510" + // 0xB8 - 0xBF - "\u2514\u2534\u252C\u251C\u2500\u253C\uFEC7\uFEC9" + // 0xC0 - 0xC7 - "\u255A\u2554\u2569\u2566\u2560\u2550\u256C\uFECA" + // 0xC8 - 0xCF - "\uFECB\uFECC\uFECD\uFECE\uFECF\uFED0\uFED1\uFED3" + // 0xD0 - 0xD7 - "\uFED5\u2518\u250C\u2588\u2584\uFED7\uFB8E\u2580" + // 0xD8 - 0xDF - "\uFEDB\uFB92\uFB94\uFEDD\uFEDF\uFEE0\uFEE1\uFEE3" + // 0xE0 - 0xE7 - "\uFB9E\uFEE5\uFEE7\uFE85\uFEED\uFBA6\uFBA8\uFBA9" + // 0xE8 - 0xEF - "\u00AD\uFBAA\uFE80\uFE89\uFE8A\uFE8B\uFBFC\uFBFD" + // 0xF0 - 0xF7 - "\uFBFE\uFBB0\uFBAE\uFE7C\uFE7D\uFFFD\u25A0\u00A0" + // 0xF8 - 0xFF - "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007" + // 0x00 - 0x07 - "\b\t\n\u000B\f\r\u000E\u000F" + // 0x08 - 0x0F - "\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017" + // 0x10 - 0x17 - "\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F" + // 0x18 - 0x1F - "\u0020\u0021\"\u0023\u0024\u0025\u0026\'" + // 0x20 - 0x27 - "\u0028\u0029\u002A\u002B\u002C\u002D\u002E\u002F" + // 0x28 - 0x2F - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + // 0x30 - 0x37 - "\u0038\u0039\u003A\u003B\u003C\u003D\u003E\u003F" + // 0x38 - 0x3F - "\u0040\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + // 0x40 - 0x47 - "\u0048\u0049\u004A\u004B\u004C\u004D\u004E\u004F" + // 0x48 - 0x4F - "\u0050\u0051\u0052\u0053\u0054\u0055\u0056\u0057" + // 0x50 - 0x57 - "\u0058\u0059\u005A\u005B\\\u005D\u005E\u005F" + // 0x58 - 0x5F - "\u0060\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + // 0x60 - 0x67 - "\u0068\u0069\u006A\u006B\u006C\u006D\u006E\u006F" + // 0x68 - 0x6F - "\u0070\u0071\u0072\u0073\u0074\u0075\u0076\u0077" + // 0x70 - 0x77 - "\u0078\u0079\u007A\u007B\u007C\u007D\u007E\u007F"; // 0x78 - 0x7F - - } - - private static class Encoder extends SingleByteEncoder { - public Encoder(Charset cs) { - super(cs, index1, index2, 0xFF00, 0x00FF, 8); - } - - private final static String index2 = - - - "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007" + - "\b\t\n\u000B\f\r\u000E\u000F" + - "\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017" + - "\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F" + - "\u0020\u0021\"\u0023\u0024\u0025\u0026\'" + - "\u0028\u0029\u002A\u002B\u002C\u002D\u002E\u002F" + - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + - "\u0038\u0039\u003A\u003B\u003C\u003D\u003E\u003F" + - "\u0040\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + - "\u0048\u0049\u004A\u004B\u004C\u004D\u004E\u004F" + - "\u0050\u0051\u0052\u0053\u0054\u0055\u0056\u0057" + - "\u0058\u0059\u005A\u005B\\\u005D\u005E\u005F" + - "\u0060\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + - "\u0068\u0069\u006A\u006B\u006C\u006D\u006E\u006F" + - "\u0070\u0071\u0072\u0073\u0074\u0075\u0076\u0077" + - "\u0078\u0079\u007A\u007B\u007C\u007D\u007E\u007F" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00FF\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u00AE\u0000\u00F0\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u00AF\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u008A\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u008B\u0000\u0000\u0000\u008C" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0080\u0081\u0082\u0083\u0084\u0085\u0086\u0087" + - "\u0088\u0089\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00C4\u0000\u00B3\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u00DA\u0000\u0000\u0000" + - "\u00BF\u0000\u0000\u0000\u00C0\u0000\u0000\u0000" + - "\u00D9\u0000\u0000\u0000\u00C3\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u00B4\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u00C2\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u00C1\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u00C5\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00CD\u00BA\u0000\u0000\u00C9\u0000\u0000\u00BB" + - "\u0000\u0000\u00C8\u0000\u0000\u00BC\u0000\u0000" + - "\u00CC\u0000\u0000\u00B9\u0000\u0000\u00CB\u0000" + - "\u0000\u00CA\u0000\u0000\u00CE\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00DF\u0000\u0000\u0000\u00DC\u0000\u0000\u0000" + - "\u00DB\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u00B0\u00B1\u00B2\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00FE\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0090\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0093\u0000\u0094\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0098\u0000\u0099\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u009E" + - "\u0000\u009F\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u00A5\u0000\u00AA" + - "\u0000\u00A8\u0000\u00DE\u0000\u0000\u0000\u00E1" + - "\u0000\u00E2\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u00E8\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u00ED\u0000\u00EE\u00EF\u00F1" + - "\u0000\u0000\u0000\u00FA\u0000\u00F9\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u00F6\u00F7\u00F8\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00FB\u00FC\u0000\u0000\u00F2\u008D\u0000\u0000" + - "\u0000\u00EB\u0000\u0000\u0000\u00F3\u00F4\u00F5" + - "\u0000\u008E\u008F\u0091\u0000\u0092\u0000\u0095" + - "\u0000\u0096\u0000\u0097\u0000\u009A\u0000\u009B" + - "\u0000\u009C\u0000\u009D\u0000\u00A0\u0000\u00A1" + - "\u0000\u00A2\u0000\u00A3\u0000\u00A4\u0000\u00A6" + - "\u0000\u00A7\u0000\u00A9\u0000\u00AB\u0000\u00AC" + - "\u0000\u00AD\u0000\u00B5\u0000\u00B6\u0000\u00B7" + - "\u0000\u00B8\u0000\u00BD\u0000\u0000\u0000\u00BE" + - "\u0000\u0000\u0000\u00C6\u0000\u00C7\u00CF\u00D0" + - "\u00D1\u00D2\u00D3\u00D4\u00D5\u00D6\u0000\u00D7" + - "\u0000\u00D8\u0000\u00DD\u0000\u0000\u0000\u00E0" + - "\u0000\u00E3\u0000\u00E4\u00E5\u00E6\u0000\u00E7" + - "\u0000\u00E9\u0000\u00EA\u0000\u0000\u0000\u0000" + - "\u0000\u00EC\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000"; - - private final static short index1[] = { - 0, 188, 188, 188, 188, 188, 432, 188, 188, 188, 188, 188, 188, 188, 188, 188, - 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, - 188, 188, 188, 188, 188, 688, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, - 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, - 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, - 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, - 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, - 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, - 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, - 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, - 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, - 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, - 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, - 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, - 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, - 188, 188, 188, 188, 188, 188, 188, 188, 849, 188, 188, 1101, 188, 188, 1356, 188, - - }; - } -} diff --git a/jdk/src/share/classes/sun/nio/cs/ext/IBM869.java b/jdk/src/share/classes/sun/nio/cs/ext/IBM869.java deleted file mode 100644 index d9375265f10..00000000000 --- a/jdk/src/share/classes/sun/nio/cs/ext/IBM869.java +++ /dev/null @@ -1,290 +0,0 @@ - -/* - * Copyright 2003-2004 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. - */ - -package sun.nio.cs.ext; - - -import java.nio.charset.Charset; -import java.nio.charset.CharsetDecoder; -import java.nio.charset.CharsetEncoder; -import sun.nio.cs.StandardCharsets; -import sun.nio.cs.SingleByteDecoder; -import sun.nio.cs.SingleByteEncoder; -import sun.nio.cs.HistoricallyNamedCharset; - -public class IBM869 - extends Charset - implements HistoricallyNamedCharset -{ - - public IBM869() { - super("IBM869", ExtendedCharsets.aliasesFor("IBM869")); - } - - public String historicalName() { - return "Cp869"; - } - - public boolean contains(Charset cs) { - return (cs instanceof IBM869); - } - - public CharsetDecoder newDecoder() { - return new Decoder(this); - } - - public CharsetEncoder newEncoder() { - return new Encoder(this); - } - - - /** - * These accessors are temporarily supplied while sun.io - * converters co-exist with the sun.nio.cs.{ext} charset coders - * These facilitate sharing of conversion tables between the - * two co-existing implementations. When sun.io converters - * are made extinct these will be unncessary and should be removed - */ - - public String getDecoderSingleByteMappings() { - return Decoder.byteToCharTable; - - } - - public short[] getEncoderIndex1() { - return Encoder.index1; - - } - public String getEncoderIndex2() { - return Encoder.index2; - - } - - private static class Decoder extends SingleByteDecoder { - public Decoder(Charset cs) { - super(cs, byteToCharTable); - } - - private final static String byteToCharTable = - - "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u0386\uFFFD" + // 0x80 - 0x87 - "\u00B7\u00AC\u00A6\u2018\u2019\u0388\u2015\u0389" + // 0x88 - 0x8F - "\u038A\u03AA\u038C\uFFFD\uFFFD\u038E\u03AB\u00A9" + // 0x90 - 0x97 - "\u038F\u00B2\u00B3\u03AC\u00A3\u03AD\u03AE\u03AF" + // 0x98 - 0x9F - "\u03CA\u0390\u03CC\u03CD\u0391\u0392\u0393\u0394" + // 0xA0 - 0xA7 - "\u0395\u0396\u0397\u00BD\u0398\u0399\u00AB\u00BB" + // 0xA8 - 0xAF - "\u2591\u2592\u2593\u2502\u2524\u039A\u039B\u039C" + // 0xB0 - 0xB7 - "\u039D\u2563\u2551\u2557\u255D\u039E\u039F\u2510" + // 0xB8 - 0xBF - "\u2514\u2534\u252C\u251C\u2500\u253C\u03A0\u03A1" + // 0xC0 - 0xC7 - "\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u03A3" + // 0xC8 - 0xCF - "\u03A4\u03A5\u03A6\u03A7\u03A8\u03A9\u03B1\u03B2" + // 0xD0 - 0xD7 - "\u03B3\u2518\u250C\u2588\u2584\u03B4\u03B5\u2580" + // 0xD8 - 0xDF - "\u03B6\u03B7\u03B8\u03B9\u03BA\u03BB\u03BC\u03BD" + // 0xE0 - 0xE7 - "\u03BE\u03BF\u03C0\u03C1\u03C3\u03C2\u03C4\u0384" + // 0xE8 - 0xEF - "\u00AD\u00B1\u03C5\u03C6\u03C7\u00A7\u03C8\u0385" + // 0xF0 - 0xF7 - "\u00B0\u00A8\u03C9\u03CB\u03B0\u03CE\u25A0\u00A0" + // 0xF8 - 0xFF - "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007" + // 0x00 - 0x07 - "\b\t\n\u000B\f\r\u000E\u000F" + // 0x08 - 0x0F - "\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017" + // 0x10 - 0x17 - "\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F" + // 0x18 - 0x1F - "\u0020\u0021\"\u0023\u0024\u0025\u0026\'" + // 0x20 - 0x27 - "\u0028\u0029\u002A\u002B\u002C\u002D\u002E\u002F" + // 0x28 - 0x2F - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + // 0x30 - 0x37 - "\u0038\u0039\u003A\u003B\u003C\u003D\u003E\u003F" + // 0x38 - 0x3F - "\u0040\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + // 0x40 - 0x47 - "\u0048\u0049\u004A\u004B\u004C\u004D\u004E\u004F" + // 0x48 - 0x4F - "\u0050\u0051\u0052\u0053\u0054\u0055\u0056\u0057" + // 0x50 - 0x57 - "\u0058\u0059\u005A\u005B\\\u005D\u005E\u005F" + // 0x58 - 0x5F - "\u0060\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + // 0x60 - 0x67 - "\u0068\u0069\u006A\u006B\u006C\u006D\u006E\u006F" + // 0x68 - 0x6F - "\u0070\u0071\u0072\u0073\u0074\u0075\u0076\u0077" + // 0x70 - 0x77 - "\u0078\u0079\u007A\u007B\u007C\u007D\u007E\u007F"; // 0x78 - 0x7F - - } - - private static class Encoder extends SingleByteEncoder { - public Encoder(Charset cs) { - super(cs, index1, index2, 0xFF00, 0x00FF, 8); - } - - private final static String index2 = - - - "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007" + - "\b\t\n\u000B\f\r\u000E\u000F" + - "\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017" + - "\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F" + - "\u0020\u0021\"\u0023\u0024\u0025\u0026\'" + - "\u0028\u0029\u002A\u002B\u002C\u002D\u002E\u002F" + - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + - "\u0038\u0039\u003A\u003B\u003C\u003D\u003E\u003F" + - "\u0040\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + - "\u0048\u0049\u004A\u004B\u004C\u004D\u004E\u004F" + - "\u0050\u0051\u0052\u0053\u0054\u0055\u0056\u0057" + - "\u0058\u0059\u005A\u005B\\\u005D\u005E\u005F" + - "\u0060\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + - "\u0068\u0069\u006A\u006B\u006C\u006D\u006E\u006F" + - "\u0070\u0071\u0072\u0073\u0074\u0075\u0076\u0077" + - "\u0078\u0079\u007A\u007B\u007C\u007D\u007E\u007F" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00FF\u0000\u0000\u009C\u0000\u0000\u008A\u00F5" + - "\u00F9\u0097\u0000\u00AE\u0089\u00F0\u0000\u0000" + - "\u00F8\u00F1\u0099\u009A\u0000\u0000\u0000\u0088" + - "\u0000\u0000\u0000\u00AF\u0000\u00AB\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u00EF\u00F7" + - "\u0086\u0000\u008D\u008F\u0090\u0000\u0092\u0000" + - "\u0095\u0098\u00A1\u00A4\u00A5\u00A6\u00A7\u00A8" + - "\u00A9\u00AA\u00AC\u00AD\u00B5\u00B6\u00B7\u00B8" + - "\u00BD\u00BE\u00C6\u00C7\u0000\u00CF\u00D0\u00D1" + - "\u00D2\u00D3\u00D4\u00D5\u0091\u0096\u009B\u009D" + - "\u009E\u009F\u00FC\u00D6\u00D7\u00D8\u00DD\u00DE" + - "\u00E0\u00E1\u00E2\u00E3\u00E4\u00E5\u00E6\u00E7" + - "\u00E8\u00E9\u00EA\u00EB\u00ED\u00EC\u00EE\u00F2" + - "\u00F3\u00F4\u00F6\u00FA\u00A0\u00FB\u00A2\u00A3" + - "\u00FD\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u008E\u0000\u0000\u008B\u008C\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u00C4\u0000\u00B3" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u00DA\u0000\u0000\u0000\u00BF\u0000\u0000" + - "\u0000\u00C0\u0000\u0000\u0000\u00D9\u0000\u0000" + - "\u0000\u00C3\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u00B4\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u00C2\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u00C1\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u00C5\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u00CD\u00BA\u0000" + - "\u0000\u00C9\u0000\u0000\u00BB\u0000\u0000\u00C8" + - "\u0000\u0000\u00BC\u0000\u0000\u00CC\u0000\u0000" + - "\u00B9\u0000\u0000\u00CB\u0000\u0000\u00CA\u0000" + - "\u0000\u00CE\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u00DF\u0000\u0000" + - "\u0000\u00DC\u0000\u0000\u0000\u00DB\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u00B0\u00B1" + - "\u00B2\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u00FE\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000"; - - private final static short index1[] = { - 0, 190, 190, 314, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, - 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, - 549, 190, 190, 190, 190, 805, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, - 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, - 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, - 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, - 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, - 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, - 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, - 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, - 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, - 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, - 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, - 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, - 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, - 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, - - }; - } -} diff --git a/jdk/src/share/classes/sun/nio/cs/ext/IBM870.java b/jdk/src/share/classes/sun/nio/cs/ext/IBM870.java deleted file mode 100644 index f756a764cee..00000000000 --- a/jdk/src/share/classes/sun/nio/cs/ext/IBM870.java +++ /dev/null @@ -1,244 +0,0 @@ - -/* - * Copyright 2003-2004 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. - */ - -package sun.nio.cs.ext; - - -import java.nio.charset.Charset; -import java.nio.charset.CharsetDecoder; -import java.nio.charset.CharsetEncoder; -import sun.nio.cs.StandardCharsets; -import sun.nio.cs.SingleByteDecoder; -import sun.nio.cs.SingleByteEncoder; -import sun.nio.cs.HistoricallyNamedCharset; - -public class IBM870 - extends Charset - implements HistoricallyNamedCharset -{ - - public IBM870() { - super("IBM870", ExtendedCharsets.aliasesFor("IBM870")); - } - - public String historicalName() { - return "Cp870"; - } - - public boolean contains(Charset cs) { - return (cs instanceof IBM870); - } - - public CharsetDecoder newDecoder() { - return new Decoder(this); - } - - public CharsetEncoder newEncoder() { - return new Encoder(this); - } - - - /** - * These accessors are temporarily supplied while sun.io - * converters co-exist with the sun.nio.cs.{ext} charset coders - * These facilitate sharing of conversion tables between the - * two co-existing implementations. When sun.io converters - * are made extinct these will be unncessary and should be removed - */ - - public String getDecoderSingleByteMappings() { - return Decoder.byteToCharTable; - - } - - public short[] getEncoderIndex1() { - return Encoder.index1; - - } - public String getEncoderIndex2() { - return Encoder.index2; - - } - - private static class Decoder extends SingleByteDecoder { - public Decoder(Charset cs) { - super(cs, byteToCharTable); - } - - private final static String byteToCharTable = - - "\u02D8\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + // 0x80 - 0x87 - "\u0068\u0069\u015B\u0148\u0111\u00FD\u0159\u015F" + // 0x88 - 0x8F - "\u00B0\u006A\u006B\u006C\u006D\u006E\u006F\u0070" + // 0x90 - 0x97 - "\u0071\u0072\u0142\u0144\u0161\u00B8\u02DB\u00A4" + // 0x98 - 0x9F - "\u0105\u007E\u0073\u0074\u0075\u0076\u0077\u0078" + // 0xA0 - 0xA7 - "\u0079\u007A\u015A\u0147\u0110\u00DD\u0158\u015E" + // 0xA8 - 0xAF - "\u02D9\u0104\u017C\u0162\u017B\u00A7\u017E\u017A" + // 0xB0 - 0xB7 - "\u017D\u0179\u0141\u0143\u0160\u00A8\u00B4\u00D7" + // 0xB8 - 0xBF - "\u007B\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + // 0xC0 - 0xC7 - "\u0048\u0049\u00AD\u00F4\u00F6\u0155\u00F3\u0151" + // 0xC8 - 0xCF - "\u007D\u004A\u004B\u004C\u004D\u004E\u004F\u0050" + // 0xD0 - 0xD7 - "\u0051\u0052\u011A\u0171\u00FC\u0165\u00FA\u011B" + // 0xD8 - 0xDF - "\\\u00F7\u0053\u0054\u0055\u0056\u0057\u0058" + // 0xE0 - 0xE7 - "\u0059\u005A\u010F\u00D4\u00D6\u0154\u00D3\u0150" + // 0xE8 - 0xEF - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + // 0xF0 - 0xF7 - "\u0038\u0039\u010E\u0170\u00DC\u0164\u00DA\u009F" + // 0xF8 - 0xFF - "\u0000\u0001\u0002\u0003\u009C\t\u0086\u007F" + // 0x00 - 0x07 - "\u0097\u008D\u008E\u000B\f\r\u000E\u000F" + // 0x08 - 0x0F - "\u0010\u0011\u0012\u0013\u009D\n\b\u0087" + // 0x10 - 0x17 - "\u0018\u0019\u0092\u008F\u001C\u001D\u001E\u001F" + // 0x18 - 0x1F - "\u0080\u0081\u0082\u0083\u0084\n\u0017\u001B" + // 0x20 - 0x27 - "\u0088\u0089\u008A\u008B\u008C\u0005\u0006\u0007" + // 0x28 - 0x2F - "\u0090\u0091\u0016\u0093\u0094\u0095\u0096\u0004" + // 0x30 - 0x37 - "\u0098\u0099\u009A\u009B\u0014\u0015\u009E\u001A" + // 0x38 - 0x3F - "\u0020\u00A0\u00E2\u00E4\u0163\u00E1\u0103\u010D" + // 0x40 - 0x47 - "\u00E7\u0107\u005B\u002E\u003C\u0028\u002B\u0021" + // 0x48 - 0x4F - "\u0026\u00E9\u0119\u00EB\u016F\u00ED\u00EE\u013E" + // 0x50 - 0x57 - "\u013A\u00DF\u005D\u0024\u002A\u0029\u003B\u005E" + // 0x58 - 0x5F - "\u002D\u002F\u00C2\u00C4\u02DD\u00C1\u0102\u010C" + // 0x60 - 0x67 - "\u00C7\u0106\u007C\u002C\u0025\u005F\u003E\u003F" + // 0x68 - 0x6F - "\u02C7\u00C9\u0118\u00CB\u016E\u00CD\u00CE\u013D" + // 0x70 - 0x77 - "\u0139\u0060\u003A\u0023\u0040\'\u003D\""; // 0x78 - 0x7F - - } - - private static class Encoder extends SingleByteEncoder { - public Encoder(Charset cs) { - super(cs, index1, index2, 0xFF00, 0x00FF, 8); - } - - private final static String index2 = - - - "\u0000\u0001\u0002\u0003\u0037\u002D\u002E\u002F" + - "\u0016\u0005\u0015\u000B\f\r\u000E\u000F" + - "\u0010\u0011\u0012\u0013\u003C\u003D\u0032\u0026" + - "\u0018\u0019\u003F\'\u001C\u001D\u001E\u001F" + - "\u0040\u004F\u007F\u007B\u005B\u006C\u0050\u007D" + - "\u004D\u005D\\\u004E\u006B\u0060\u004B\u0061" + - "\u00F0\u00F1\u00F2\u00F3\u00F4\u00F5\u00F6\u00F7" + - "\u00F8\u00F9\u007A\u005E\u004C\u007E\u006E\u006F" + - "\u007C\u00C1\u00C2\u00C3\u00C4\u00C5\u00C6\u00C7" + - "\u00C8\u00C9\u00D1\u00D2\u00D3\u00D4\u00D5\u00D6" + - "\u00D7\u00D8\u00D9\u00E2\u00E3\u00E4\u00E5\u00E6" + - "\u00E7\u00E8\u00E9\u004A\u00E0\u005A\u005F\u006D" + - "\u0079\u0081\u0082\u0083\u0084\u0085\u0086\u0087" + - "\u0088\u0089\u0091\u0092\u0093\u0094\u0095\u0096" + - "\u0097\u0098\u0099\u00A2\u00A3\u00A4\u00A5\u00A6" + - "\u00A7\u00A8\u00A9\u00C0\u006A\u00D0\u00A1\u0007" + - "\u0020\u0021\"\u0023\u0024\u0015\u0006\u0017" + - "\u0028\u0029\u002A\u002B\u002C\t\n\u001B" + - "\u0030\u0031\u001A\u0033\u0034\u0035\u0036\b" + - "\u0038\u0039\u003A\u003B\u0004\u0014\u003E\u00FF" + - "\u0041\u0000\u0000\u0000\u009F\u0000\u0000\u00B5" + - "\u00BD\u0000\u0000\u0000\u0000\u00CA\u0000\u0000" + - "\u0090\u0000\u0000\u0000\u00BE\u0000\u0000\u0000" + - "\u009D\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0065\u0062\u0000\u0063\u0000\u0000\u0068" + - "\u0000\u0071\u0000\u0073\u0000\u0075\u0076\u0000" + - "\u0000\u0000\u0000\u00EE\u00EB\u0000\u00EC\u00BF" + - "\u0000\u0000\u00FE\u0000\u00FC\u00AD\u0000\u0059" + - "\u0000\u0045\u0042\u0000\u0043\u0000\u0000\u0048" + - "\u0000\u0051\u0000\u0053\u0000\u0055\u0056\u0000" + - "\u0000\u0000\u0000\u00CE\u00CB\u0000\u00CC\u00E1" + - "\u0000\u0000\u00DE\u0000\u00DC\u008D\u0000\u0000" + - "\u0066\u0046\u00B1\u00A0\u0069\u0049\u0000\u0000" + - "\u0000\u0000\u0067\u0047\u00FA\u00EA\u00AC\u008C" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0072\u0052" + - "\u00DA\u00DF\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0078" + - "\u0058\u0000\u0000\u0077\u0057\u0000\u0000\u00BA" + - "\u009A\u00BB\u009B\u0000\u0000\u00AB\u008B\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u00EF\u00CF" + - "\u0000\u0000\u00ED\u00CD\u0000\u0000\u00AE\u008E" + - "\u00AA\u008A\u0000\u0000\u00AF\u008F\u00BC\u009C" + - "\u00B3\u0044\u00FD\u00DD\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0074\u0054\u00FB\u00DB" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u00B9" + - "\u00B7\u00B4\u00B2\u00B8\u00B6\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0070\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0080\u00B0" + - "\u0000\u009E\u0000\u0064\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000"; - - private final static short index1[] = { - 0, 254, 438, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, - 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, - 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, - 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, - 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, - 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, - 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, - 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, - 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, - 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, - 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, - 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, - 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, - 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, - 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, - 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, - - }; - } -} diff --git a/jdk/src/share/classes/sun/nio/cs/ext/IBM871.java b/jdk/src/share/classes/sun/nio/cs/ext/IBM871.java deleted file mode 100644 index c2c3b96a297..00000000000 --- a/jdk/src/share/classes/sun/nio/cs/ext/IBM871.java +++ /dev/null @@ -1,221 +0,0 @@ - -/* - * Copyright 2003-2004 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. - */ - -package sun.nio.cs.ext; - - -import java.nio.charset.Charset; -import java.nio.charset.CharsetDecoder; -import java.nio.charset.CharsetEncoder; -import sun.nio.cs.StandardCharsets; -import sun.nio.cs.SingleByteDecoder; -import sun.nio.cs.SingleByteEncoder; -import sun.nio.cs.HistoricallyNamedCharset; - -public class IBM871 - extends Charset - implements HistoricallyNamedCharset -{ - - public IBM871() { - super("IBM871", ExtendedCharsets.aliasesFor("IBM871")); - } - - public String historicalName() { - return "Cp871"; - } - - public boolean contains(Charset cs) { - return (cs instanceof IBM871); - } - - public CharsetDecoder newDecoder() { - return new Decoder(this); - } - - public CharsetEncoder newEncoder() { - return new Encoder(this); - } - - - /** - * These accessors are temporarily supplied while sun.io - * converters co-exist with the sun.nio.cs.{ext} charset coders - * These facilitate sharing of conversion tables between the - * two co-existing implementations. When sun.io converters - * are made extinct these will be unncessary and should be removed - */ - - public String getDecoderSingleByteMappings() { - return Decoder.byteToCharTable; - - } - - public short[] getEncoderIndex1() { - return Encoder.index1; - - } - public String getEncoderIndex2() { - return Encoder.index2; - - } - - protected static class Decoder extends SingleByteDecoder { - public Decoder(Charset cs) { - super(cs, byteToCharTable); - } - - private final static String byteToCharTable = - - "\u00D8\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + // 0x80 - 0x87 - "\u0068\u0069\u00AB\u00BB\u0060\u00FD\u007B\u00B1" + // 0x88 - 0x8F - "\u00B0\u006A\u006B\u006C\u006D\u006E\u006F\u0070" + // 0x90 - 0x97 - "\u0071\u0072\u00AA\u00BA\u007D\u00B8\u005D\u00A4" + // 0x98 - 0x9F - "\u00B5\u00F6\u0073\u0074\u0075\u0076\u0077\u0078" + // 0xA0 - 0xA7 - "\u0079\u007A\u00A1\u00BF\u0040\u00DD\u005B\u00AE" + // 0xA8 - 0xAF - "\u00A2\u00A3\u00A5\u00B7\u00A9\u00A7\u00B6\u00BC" + // 0xB0 - 0xB7 - "\u00BD\u00BE\u00AC\u007C\u00AF\u00A8\\\u00D7" + // 0xB8 - 0xBF - "\u00FE\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + // 0xC0 - 0xC7 - "\u0048\u0049\u00AD\u00F4\u007E\u00F2\u00F3\u00F5" + // 0xC8 - 0xCF - "\u00E6\u004A\u004B\u004C\u004D\u004E\u004F\u0050" + // 0xD0 - 0xD7 - "\u0051\u0052\u00B9\u00FB\u00FC\u00F9\u00FA\u00FF" + // 0xD8 - 0xDF - "\u00B4\u00F7\u0053\u0054\u0055\u0056\u0057\u0058" + // 0xE0 - 0xE7 - "\u0059\u005A\u00B2\u00D4\u005E\u00D2\u00D3\u00D5" + // 0xE8 - 0xEF - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + // 0xF0 - 0xF7 - "\u0038\u0039\u00B3\u00DB\u00DC\u00D9\u00DA\u009F" + // 0xF8 - 0xFF - "\u0000\u0001\u0002\u0003\u009C\t\u0086\u007F" + // 0x00 - 0x07 - "\u0097\u008D\u008E\u000B\f\r\u000E\u000F" + // 0x08 - 0x0F - "\u0010\u0011\u0012\u0013\u009D\n\b\u0087" + // 0x10 - 0x17 - "\u0018\u0019\u0092\u008F\u001C\u001D\u001E\u001F" + // 0x18 - 0x1F - "\u0080\u0081\u0082\u0083\u0084\n\u0017\u001B" + // 0x20 - 0x27 - "\u0088\u0089\u008A\u008B\u008C\u0005\u0006\u0007" + // 0x28 - 0x2F - "\u0090\u0091\u0016\u0093\u0094\u0095\u0096\u0004" + // 0x30 - 0x37 - "\u0098\u0099\u009A\u009B\u0014\u0015\u009E\u001A" + // 0x38 - 0x3F - "\u0020\u00A0\u00E2\u00E4\u00E0\u00E1\u00E3\u00E5" + // 0x40 - 0x47 - "\u00E7\u00F1\u00DE\u002E\u003C\u0028\u002B\u0021" + // 0x48 - 0x4F - "\u0026\u00E9\u00EA\u00EB\u00E8\u00ED\u00EE\u00EF" + // 0x50 - 0x57 - "\u00EC\u00DF\u00C6\u0024\u002A\u0029\u003B\u00D6" + // 0x58 - 0x5F - "\u002D\u002F\u00C2\u00C4\u00C0\u00C1\u00C3\u00C5" + // 0x60 - 0x67 - "\u00C7\u00D1\u00A6\u002C\u0025\u005F\u003E\u003F" + // 0x68 - 0x6F - "\u00F8\u00C9\u00CA\u00CB\u00C8\u00CD\u00CE\u00CF" + // 0x70 - 0x77 - "\u00CC\u00F0\u003A\u0023\u00D0\'\u003D\""; // 0x78 - 0x7F - - } - - private static class Encoder extends SingleByteEncoder { - public Encoder(Charset cs) { - super(cs, index1, index2, 0xFF00, 0x00FF, 8); - } - - private final static String index2 = - - - "\u0000\u0001\u0002\u0003\u0037\u002D\u002E\u002F" + - "\u0016\u0005\u0015\u000B\f\r\u000E\u000F" + - "\u0010\u0011\u0012\u0013\u003C\u003D\u0032\u0026" + - "\u0018\u0019\u003F\'\u001C\u001D\u001E\u001F" + - "\u0040\u004F\u007F\u007B\u005B\u006C\u0050\u007D" + - "\u004D\u005D\\\u004E\u006B\u0060\u004B\u0061" + - "\u00F0\u00F1\u00F2\u00F3\u00F4\u00F5\u00F6\u00F7" + - "\u00F8\u00F9\u007A\u005E\u004C\u007E\u006E\u006F" + - "\u00AC\u00C1\u00C2\u00C3\u00C4\u00C5\u00C6\u00C7" + - "\u00C8\u00C9\u00D1\u00D2\u00D3\u00D4\u00D5\u00D6" + - "\u00D7\u00D8\u00D9\u00E2\u00E3\u00E4\u00E5\u00E6" + - "\u00E7\u00E8\u00E9\u00AE\u00BE\u009E\u00EC\u006D" + - "\u008C\u0081\u0082\u0083\u0084\u0085\u0086\u0087" + - "\u0088\u0089\u0091\u0092\u0093\u0094\u0095\u0096" + - "\u0097\u0098\u0099\u00A2\u00A3\u00A4\u00A5\u00A6" + - "\u00A7\u00A8\u00A9\u008E\u00BB\u009C\u00CC\u0007" + - "\u0020\u0021\"\u0023\u0024\u0015\u0006\u0017" + - "\u0028\u0029\u002A\u002B\u002C\t\n\u001B" + - "\u0030\u0031\u001A\u0033\u0034\u0035\u0036\b" + - "\u0038\u0039\u003A\u003B\u0004\u0014\u003E\u00FF" + - "\u0041\u00AA\u00B0\u00B1\u009F\u00B2\u006A\u00B5" + - "\u00BD\u00B4\u009A\u008A\u00BA\u00CA\u00AF\u00BC" + - "\u0090\u008F\u00EA\u00FA\u00E0\u00A0\u00B6\u00B3" + - "\u009D\u00DA\u009B\u008B\u00B7\u00B8\u00B9\u00AB" + - "\u0064\u0065\u0062\u0066\u0063\u0067\u005A\u0068" + - "\u0074\u0071\u0072\u0073\u0078\u0075\u0076\u0077" + - "\u007C\u0069\u00ED\u00EE\u00EB\u00EF\u005F\u00BF" + - "\u0080\u00FD\u00FE\u00FB\u00FC\u00AD\u004A\u0059" + - "\u0044\u0045\u0042\u0046\u0043\u0047\u00D0\u0048" + - "\u0054\u0051\u0052\u0053\u0058\u0055\u0056\u0057" + - "\u0079\u0049\u00CD\u00CE\u00CB\u00CF\u00A1\u00E1" + - "\u0070\u00DD\u00DE\u00DB\u00DC\u008D\u00C0\u00DF" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"; - - private final static short index1[] = { - 0, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - - }; - } -} diff --git a/jdk/src/share/classes/sun/nio/cs/ext/IBM875.java b/jdk/src/share/classes/sun/nio/cs/ext/IBM875.java deleted file mode 100644 index c3453081c81..00000000000 --- a/jdk/src/share/classes/sun/nio/cs/ext/IBM875.java +++ /dev/null @@ -1,258 +0,0 @@ - -/* - * Copyright 2003-2004 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. - */ - -package sun.nio.cs.ext; - - -import java.nio.charset.Charset; -import java.nio.charset.CharsetDecoder; -import java.nio.charset.CharsetEncoder; -import sun.nio.cs.StandardCharsets; -import sun.nio.cs.SingleByteDecoder; -import sun.nio.cs.SingleByteEncoder; -import sun.nio.cs.HistoricallyNamedCharset; - -public class IBM875 - extends Charset - implements HistoricallyNamedCharset -{ - - public IBM875() { - super("x-IBM875", ExtendedCharsets.aliasesFor("x-IBM875")); - } - - public String historicalName() { - return "Cp875"; - } - - public boolean contains(Charset cs) { - return (cs instanceof IBM875); - } - - public CharsetDecoder newDecoder() { - return new Decoder(this); - } - - public CharsetEncoder newEncoder() { - return new Encoder(this); - } - - - /** - * These accessors are temporarily supplied while sun.io - * converters co-exist with the sun.nio.cs.{ext} charset coders - * These facilitate sharing of conversion tables between the - * two co-existing implementations. When sun.io converters - * are made extinct these will be unncessary and should be removed - */ - - public String getDecoderSingleByteMappings() { - return Decoder.byteToCharTable; - - } - - public short[] getEncoderIndex1() { - return Encoder.index1; - - } - public String getEncoderIndex2() { - return Encoder.index2; - - } - - private static class Decoder extends SingleByteDecoder { - public Decoder(Charset cs) { - super(cs, byteToCharTable); - } - - private final static String byteToCharTable = - - "\u0385\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + // 0x80 - 0x87 - "\u0068\u0069\u03B1\u03B2\u03B3\u03B4\u03B5\u03B6" + // 0x88 - 0x8F - "\u00B0\u006A\u006B\u006C\u006D\u006E\u006F\u0070" + // 0x90 - 0x97 - "\u0071\u0072\u03B7\u03B8\u03B9\u03BA\u03BB\u03BC" + // 0x98 - 0x9F - "\u00B4\u007E\u0073\u0074\u0075\u0076\u0077\u0078" + // 0xA0 - 0xA7 - "\u0079\u007A\u03BD\u03BE\u03BF\u03C0\u03C1\u03C3" + // 0xA8 - 0xAF - "\u00A3\u03AC\u03AD\u03AE\u03CA\u03AF\u03CC\u03CD" + // 0xB0 - 0xB7 - "\u03CB\u03CE\u03C2\u03C4\u03C5\u03C6\u03C7\u03C8" + // 0xB8 - 0xBF - "\u007B\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + // 0xC0 - 0xC7 - "\u0048\u0049\u00AD\u03C9\u0390\u03B0\u2018\u2015" + // 0xC8 - 0xCF - "\u007D\u004A\u004B\u004C\u004D\u004E\u004F\u0050" + // 0xD0 - 0xD7 - "\u0051\u0052\u00B1\u00BD\uFFFD\u0387\u2019\u00A6" + // 0xD8 - 0xDF - "\\\uFFFD\u0053\u0054\u0055\u0056\u0057\u0058" + // 0xE0 - 0xE7 - "\u0059\u005A\u00B2\u00A7\uFFFD\uFFFD\u00AB\u00AC" + // 0xE8 - 0xEF - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + // 0xF0 - 0xF7 - "\u0038\u0039\u00B3\u00A9\uFFFD\uFFFD\u00BB\u009F" + // 0xF8 - 0xFF - "\u0000\u0001\u0002\u0003\u009C\t\u0086\u007F" + // 0x00 - 0x07 - "\u0097\u008D\u008E\u000B\f\r\u000E\u000F" + // 0x08 - 0x0F - "\u0010\u0011\u0012\u0013\u009D\n\b\u0087" + // 0x10 - 0x17 - "\u0018\u0019\u0092\u008F\u001C\u001D\u001E\u001F" + // 0x18 - 0x1F - "\u0080\u0081\u0082\u0083\u0084\n\u0017\u001B" + // 0x20 - 0x27 - "\u0088\u0089\u008A\u008B\u008C\u0005\u0006\u0007" + // 0x28 - 0x2F - "\u0090\u0091\u0016\u0093\u0094\u0095\u0096\u0004" + // 0x30 - 0x37 - "\u0098\u0099\u009A\u009B\u0014\u0015\u009E\u001A" + // 0x38 - 0x3F - "\u0020\u0391\u0392\u0393\u0394\u0395\u0396\u0397" + // 0x40 - 0x47 - "\u0398\u0399\u005B\u002E\u003C\u0028\u002B\u0021" + // 0x48 - 0x4F - "\u0026\u039A\u039B\u039C\u039D\u039E\u039F\u03A0" + // 0x50 - 0x57 - "\u03A1\u03A3\u005D\u0024\u002A\u0029\u003B\u005E" + // 0x58 - 0x5F - "\u002D\u002F\u03A4\u03A5\u03A6\u03A7\u03A8\u03A9" + // 0x60 - 0x67 - "\u03AA\u03AB\u007C\u002C\u0025\u005F\u003E\u003F" + // 0x68 - 0x6F - "\u00A8\u0386\u0388\u0389\u00A0\u038A\u038C\u038E" + // 0x70 - 0x77 - "\u038F\u0060\u003A\u0023\u0040\'\u003D\""; // 0x78 - 0x7F - - } - - private static class Encoder extends SingleByteEncoder { - public Encoder(Charset cs) { - super(cs, index1, index2, 0xFF00, 0x00FF, 8); - } - - private final static String index2 = - - - "\u0000\u0001\u0002\u0003\u0037\u002D\u002E\u002F" + - "\u0016\u0005\u0015\u000B\f\r\u000E\u000F" + - "\u0010\u0011\u0012\u0013\u003C\u003D\u0032\u0026" + - "\u0018\u0019\u003F\'\u001C\u001D\u001E\u001F" + - "\u0040\u004F\u007F\u007B\u005B\u006C\u0050\u007D" + - "\u004D\u005D\\\u004E\u006B\u0060\u004B\u0061" + - "\u00F0\u00F1\u00F2\u00F3\u00F4\u00F5\u00F6\u00F7" + - "\u00F8\u00F9\u007A\u005E\u004C\u007E\u006E\u006F" + - "\u007C\u00C1\u00C2\u00C3\u00C4\u00C5\u00C6\u00C7" + - "\u00C8\u00C9\u00D1\u00D2\u00D3\u00D4\u00D5\u00D6" + - "\u00D7\u00D8\u00D9\u00E2\u00E3\u00E4\u00E5\u00E6" + - "\u00E7\u00E8\u00E9\u004A\u00E0\u005A\u005F\u006D" + - "\u0079\u0081\u0082\u0083\u0084\u0085\u0086\u0087" + - "\u0088\u0089\u0091\u0092\u0093\u0094\u0095\u0096" + - "\u0097\u0098\u0099\u00A2\u00A3\u00A4\u00A5\u00A6" + - "\u00A7\u00A8\u00A9\u00C0\u006A\u00D0\u00A1\u0007" + - "\u0020\u0021\"\u0023\u0024\u0015\u0006\u0017" + - "\u0028\u0029\u002A\u002B\u002C\t\n\u001B" + - "\u0030\u0031\u001A\u0033\u0034\u0035\u0036\b" + - "\u0038\u0039\u003A\u003B\u0004\u0014\u003E\u00FF" + - "\u0074\u0000\u0000\u00B0\u0000\u0000\u00DF\u00EB" + - "\u0070\u00FB\u0000\u00EE\u00EF\u00CA\u0000\u0000" + - "\u0090\u00DA\u00EA\u00FA\u00A0\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u00FE\u0000\u00DB\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0080\u0071" + - "\u00DD\u0072\u0073\u0075\u0000\u0076\u0000\u0077" + - "\u0078\u00CC\u0041\u0042\u0043\u0044\u0045\u0046" + - "\u0047\u0048\u0049\u0051\u0052\u0053\u0054\u0055" + - "\u0056\u0057\u0058\u0000\u0059\u0062\u0063\u0064" + - "\u0065\u0066\u0067\u0068\u0069\u00B1\u00B2\u00B3" + - "\u00B5\u00CD\u008A\u008B\u008C\u008D\u008E\u008F" + - "\u009A\u009B\u009C\u009D\u009E\u009F\u00AA\u00AB" + - "\u00AC\u00AD\u00AE\u00BA\u00AF\u00BB\u00BC\u00BD" + - "\u00BE\u00BF\u00CB\u00B4\u00B8\u00B6\u00B7\u00B9" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u00CF\u0000\u0000\u00CE\u00DE\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000"; - - private final static short index1[] = { - 0, 190, 190, 313, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, - 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, - 548, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, - 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, - 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, - 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, - 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, - 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, - 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, - 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, - 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, - 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, - 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, - 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, - 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, - 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, - - }; - } -} diff --git a/jdk/src/share/classes/sun/nio/cs/ext/IBM918.java b/jdk/src/share/classes/sun/nio/cs/ext/IBM918.java deleted file mode 100644 index 62a2e8dcca9..00000000000 --- a/jdk/src/share/classes/sun/nio/cs/ext/IBM918.java +++ /dev/null @@ -1,336 +0,0 @@ - -/* - * Copyright 2003-2004 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. - */ - -package sun.nio.cs.ext; - - -import java.nio.charset.Charset; -import java.nio.charset.CharsetDecoder; -import java.nio.charset.CharsetEncoder; -import sun.nio.cs.StandardCharsets; -import sun.nio.cs.SingleByteDecoder; -import sun.nio.cs.SingleByteEncoder; -import sun.nio.cs.HistoricallyNamedCharset; - -public class IBM918 - extends Charset - implements HistoricallyNamedCharset -{ - - public IBM918() { - super("IBM918", ExtendedCharsets.aliasesFor("IBM918")); - } - - public String historicalName() { - return "Cp918"; - } - - public boolean contains(Charset cs) { - return (cs instanceof IBM918); - } - - public CharsetDecoder newDecoder() { - return new Decoder(this); - } - - public CharsetEncoder newEncoder() { - return new Encoder(this); - } - - - /** - * These accessors are temporarily supplied while sun.io - * converters co-exist with the sun.nio.cs.{ext} charset coders - * These facilitate sharing of conversion tables between the - * two co-existing implementations. When sun.io converters - * are made extinct these will be unncessary and should be removed - */ - - public String getDecoderSingleByteMappings() { - return Decoder.byteToCharTable; - - } - - public short[] getEncoderIndex1() { - return Encoder.index1; - - } - public String getEncoderIndex2() { - return Encoder.index2; - - } - - private static class Decoder extends SingleByteDecoder { - public Decoder(Charset cs) { - super(cs, byteToCharTable); - } - - private final static String byteToCharTable = - - "\uFEA7\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + // 0x80 - 0x87 - "\u0068\u0069\uFEA9\uFB88\uFEAB\uFEAD\uFB8C\uFEAF" + // 0x88 - 0x8F - "\uFB8A\u006A\u006B\u006C\u006D\u006E\u006F\u0070" + // 0x90 - 0x97 - "\u0071\u0072\uFEB1\uFEB3\uFEB5\uFEB7\uFEB9\uFEBB" + // 0x98 - 0x9F - "\uFEBD\u007E\u0073\u0074\u0075\u0076\u0077\u0078" + // 0xA0 - 0xA7 - "\u0079\u007A\uFEBF\uFEC3\uFEC7\uFEC9\uFECA\uFECB" + // 0xA8 - 0xAF - "\uFECC\uFECD\uFECE\uFECF\uFED0\uFED1\uFED3\uFED5" + // 0xB0 - 0xB7 - "\uFED7\uFB8E\uFEDB\u007C\uFB92\uFB94\uFEDD\uFEDF" + // 0xB8 - 0xBF - "\u007B\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + // 0xC0 - 0xC7 - "\u0048\u0049\u00AD\uFEE0\uFEE1\uFEE3\uFB9E\uFEE5" + // 0xC8 - 0xCF - "\u007D\u004A\u004B\u004C\u004D\u004E\u004F\u0050" + // 0xD0 - 0xD7 - "\u0051\u0052\uFEE7\uFE85\uFEED\uFBA6\uFBA8\uFBA9" + // 0xD8 - 0xDF - "\\\uFBAA\u0053\u0054\u0055\u0056\u0057\u0058" + // 0xE0 - 0xE7 - "\u0059\u005A\uFE80\uFE89\uFE8A\uFE8B\uFBFC\uFBFD" + // 0xE8 - 0xEF - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + // 0xF0 - 0xF7 - "\u0038\u0039\uFBFE\uFBB0\uFBAE\uFE7C\uFE7D\u009F" + // 0xF8 - 0xFF - "\u0000\u0001\u0002\u0003\u009C\t\u0086\u007F" + // 0x00 - 0x07 - "\u0097\u008D\u008E\u000B\f\r\u000E\u000F" + // 0x08 - 0x0F - "\u0010\u0011\u0012\u0013\u009D\n\b\u0087" + // 0x10 - 0x17 - "\u0018\u0019\u0092\u008F\u001C\u001D\u001E\u001F" + // 0x18 - 0x1F - "\u0080\u0081\u0082\u0083\u0084\n\u0017\u001B" + // 0x20 - 0x27 - "\u0088\u0089\u008A\u008B\u008C\u0005\u0006\u0007" + // 0x28 - 0x2F - "\u0090\u0091\u0016\u0093\u0094\u0095\u0096\u0004" + // 0x30 - 0x37 - "\u0098\u0099\u009A\u009B\u0014\u0015\u009E\u001A" + // 0x38 - 0x3F - "\u0020\u00A0\u060C\u061B\u061F\uFE81\uFE8D\uFE8E" + // 0x40 - 0x47 - "\uF8FB\uFE8F\u005B\u002E\u003C\u0028\u002B\u0021" + // 0x48 - 0x4F - "\u0026\uFE91\uFB56\uFB58\uFE93\uFE95\uFE97\uFB66" + // 0x50 - 0x57 - "\uFB68\uFE99\u005D\u0024\u002A\u0029\u003B\u005E" + // 0x58 - 0x5F - "\u002D\u002F\uFE9B\uFE9D\uFE9F\uFB7A\uFB7C\uFEA1" + // 0x60 - 0x67 - "\uFEA3\uFEA5\u0060\u002C\u0025\u005F\u003E\u003F" + // 0x68 - 0x6F - "\u06F0\u06F1\u06F2\u06F3\u06F4\u06F5\u06F6\u06F7" + // 0x70 - 0x77 - "\u06F8\u06F9\u003A\u0023\u0040\'\u003D\""; // 0x78 - 0x7F - - } - - private static class Encoder extends SingleByteEncoder { - public Encoder(Charset cs) { - super(cs, index1, index2, 0xFF00, 0x00FF, 8); - } - - private final static String index2 = - - - "\u0000\u0001\u0002\u0003\u0037\u002D\u002E\u002F" + - "\u0016\u0005\u0015\u000B\f\r\u000E\u000F" + - "\u0010\u0011\u0012\u0013\u003C\u003D\u0032\u0026" + - "\u0018\u0019\u003F\'\u001C\u001D\u001E\u001F" + - "\u0040\u004F\u007F\u007B\u005B\u006C\u0050\u007D" + - "\u004D\u005D\\\u004E\u006B\u0060\u004B\u0061" + - "\u00F0\u00F1\u00F2\u00F3\u00F4\u00F5\u00F6\u00F7" + - "\u00F8\u00F9\u007A\u005E\u004C\u007E\u006E\u006F" + - "\u007C\u00C1\u00C2\u00C3\u00C4\u00C5\u00C6\u00C7" + - "\u00C8\u00C9\u00D1\u00D2\u00D3\u00D4\u00D5\u00D6" + - "\u00D7\u00D8\u00D9\u00E2\u00E3\u00E4\u00E5\u00E6" + - "\u00E7\u00E8\u00E9\u004A\u00E0\u005A\u005F\u006D" + - "\u006A\u0081\u0082\u0083\u0084\u0085\u0086\u0087" + - "\u0088\u0089\u0091\u0092\u0093\u0094\u0095\u0096" + - "\u0097\u0098\u0099\u00A2\u00A3\u00A4\u00A5\u00A6" + - "\u00A7\u00A8\u00A9\u00C0\u00BB\u00D0\u00A1\u0007" + - "\u0020\u0021\"\u0023\u0024\u0015\u0006\u0017" + - "\u0028\u0029\u002A\u002B\u002C\t\n\u001B" + - "\u0030\u0031\u001A\u0033\u0034\u0035\u0036\b" + - "\u0038\u0039\u003A\u003B\u0004\u0014\u003E\u00FF" + - "\u0041\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u00CA\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0042\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0043\u0000\u0000" + - "\u0000\u0044\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0070\u0071\u0072\u0073\u0074\u0075" + - "\u0076\u0077\u0078\u0079\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0048" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0052\u0000" + - "\u0053\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0057\u0000" + - "\u0058\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0065\u0000\u0066\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u008B\u0000\u0090\u0000\u008E\u0000\u00B9\u0000" + - "\u0000\u0000\u00BC\u0000\u00BD\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u00CE\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u00DD\u0000" + - "\u00DE\u00DF\u00E1\u0000\u0000\u0000\u00FC\u0000" + - "\u00FB\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u00EE\u00EF\u00FA\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u00FD\u00FE\u0000\u0000\u00EA" + - "\u0045\u0000\u0000\u0000\u00DB\u0000\u0000\u0000" + - "\u00EB\u00EC\u00ED\u0000\u0046\u0047\u0049\u0000" + - "\u0051\u0000\u0054\u0000\u0055\u0000\u0056\u0000" + - "\u0059\u0000\u0062\u0000\u0063\u0000\u0064\u0000" + - "\u0067\u0000\u0068\u0000\u0069\u0000\u0080\u0000" + - "\u008A\u0000\u008C\u0000\u008D\u0000\u008F\u0000" + - "\u009A\u0000\u009B\u0000\u009C\u0000\u009D\u0000" + - "\u009E\u0000\u009F\u0000\u00A0\u0000\u00AA\u0000" + - "\u0000\u0000\u00AB\u0000\u0000\u0000\u00AC\u0000" + - "\u00AD\u00AE\u00AF\u00B0\u00B1\u00B2\u00B3\u00B4" + - "\u00B5\u0000\u00B6\u0000\u00B7\u0000\u00B8\u0000" + - "\u0000\u0000\u00BA\u0000\u00BE\u0000\u00BF\u00CB" + - "\u00CC\u0000\u00CD\u0000\u00CF\u0000\u00DA\u0000" + - "\u0000\u0000\u0000\u0000\u00DC\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000"; - - private final static short index1[] = { - 0, 174, 174, 174, 174, 174, 418, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 668, 174, 174, 920, 174, 174, 1175, 174, - - }; - } -} diff --git a/jdk/src/share/classes/sun/nio/cs/ext/IBM921.java b/jdk/src/share/classes/sun/nio/cs/ext/IBM921.java deleted file mode 100644 index 763a97e02db..00000000000 --- a/jdk/src/share/classes/sun/nio/cs/ext/IBM921.java +++ /dev/null @@ -1,266 +0,0 @@ - -/* - * Copyright 2003-2004 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. - */ - -package sun.nio.cs.ext; - - -import java.nio.charset.Charset; -import java.nio.charset.CharsetDecoder; -import java.nio.charset.CharsetEncoder; -import sun.nio.cs.StandardCharsets; -import sun.nio.cs.SingleByteDecoder; -import sun.nio.cs.SingleByteEncoder; -import sun.nio.cs.HistoricallyNamedCharset; - -public class IBM921 - extends Charset - implements HistoricallyNamedCharset -{ - - public IBM921() { - super("x-IBM921", ExtendedCharsets.aliasesFor("x-IBM921")); - } - - public String historicalName() { - return "Cp921"; - } - - public boolean contains(Charset cs) { - return (cs instanceof IBM921); - } - - public CharsetDecoder newDecoder() { - return new Decoder(this); - } - - public CharsetEncoder newEncoder() { - return new Encoder(this); - } - - - /** - * These accessors are temporarily supplied while sun.io - * converters co-exist with the sun.nio.cs.{ext} charset coders - * These facilitate sharing of conversion tables between the - * two co-existing implementations. When sun.io converters - * are made extinct these will be unncessary and should be removed - */ - - public String getDecoderSingleByteMappings() { - return Decoder.byteToCharTable; - - } - - public short[] getEncoderIndex1() { - return Encoder.index1; - - } - public String getEncoderIndex2() { - return Encoder.index2; - - } - - private static class Decoder extends SingleByteDecoder { - public Decoder(Charset cs) { - super(cs, byteToCharTable); - } - - private final static String byteToCharTable = - - "\u0080\u0081\u0082\u0083\u0084\u0085\u0086\u0087" + // 0x80 - 0x87 - "\u0088\u0089\u008A\u008B\u008C\u008D\u008E\u008F" + // 0x88 - 0x8F - "\u0090\u0091\u0092\u0093\u0094\u0095\u0096\u0097" + // 0x90 - 0x97 - "\u0098\u0099\u009A\u009B\u009C\u009D\u009E\u009F" + // 0x98 - 0x9F - "\u00A0\u201D\u00A2\u00A3\u00A4\u201E\u00A6\u00A7" + // 0xA0 - 0xA7 - "\u00D8\u00A9\u0156\u00AB\u00AC\u00AD\u00AE\u00C6" + // 0xA8 - 0xAF - "\u00B0\u00B1\u00B2\u00B3\u201C\u00B5\u00B6\u00B7" + // 0xB0 - 0xB7 - "\u00F8\u00B9\u0157\u00BB\u00BC\u00BD\u00BE\u00E6" + // 0xB8 - 0xBF - "\u0104\u012E\u0100\u0106\u00C4\u00C5\u0118\u0112" + // 0xC0 - 0xC7 - "\u010C\u00C9\u0179\u0116\u0122\u0136\u012A\u013B" + // 0xC8 - 0xCF - "\u0160\u0143\u0145\u00D3\u014C\u00D5\u00D6\u00D7" + // 0xD0 - 0xD7 - "\u0172\u0141\u015A\u016A\u00DC\u017B\u017D\u00DF" + // 0xD8 - 0xDF - "\u0105\u012F\u0101\u0107\u00E4\u00E5\u0119\u0113" + // 0xE0 - 0xE7 - "\u010D\u00E9\u017A\u0117\u0123\u0137\u012B\u013C" + // 0xE8 - 0xEF - "\u0161\u0144\u0146\u00F3\u014D\u00F5\u00F6\u00F7" + // 0xF0 - 0xF7 - "\u0173\u0142\u015B\u016B\u00FC\u017C\u017E\u2019" + // 0xF8 - 0xFF - "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007" + // 0x00 - 0x07 - "\b\t\n\u000B\f\r\u000E\u000F" + // 0x08 - 0x0F - "\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017" + // 0x10 - 0x17 - "\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F" + // 0x18 - 0x1F - "\u0020\u0021\"\u0023\u0024\u0025\u0026\'" + // 0x20 - 0x27 - "\u0028\u0029\u002A\u002B\u002C\u002D\u002E\u002F" + // 0x28 - 0x2F - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + // 0x30 - 0x37 - "\u0038\u0039\u003A\u003B\u003C\u003D\u003E\u003F" + // 0x38 - 0x3F - "\u0040\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + // 0x40 - 0x47 - "\u0048\u0049\u004A\u004B\u004C\u004D\u004E\u004F" + // 0x48 - 0x4F - "\u0050\u0051\u0052\u0053\u0054\u0055\u0056\u0057" + // 0x50 - 0x57 - "\u0058\u0059\u005A\u005B\\\u005D\u005E\u005F" + // 0x58 - 0x5F - "\u0060\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + // 0x60 - 0x67 - "\u0068\u0069\u006A\u006B\u006C\u006D\u006E\u006F" + // 0x68 - 0x6F - "\u0070\u0071\u0072\u0073\u0074\u0075\u0076\u0077" + // 0x70 - 0x77 - "\u0078\u0079\u007A\u007B\u007C\u007D\u007E\u007F"; // 0x78 - 0x7F - - } - - private static class Encoder extends SingleByteEncoder { - public Encoder(Charset cs) { - super(cs, index1, index2, 0xFF00, 0x00FF, 8); - } - - private final static String index2 = - - - "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007" + - "\b\t\n\u000B\f\r\u000E\u000F" + - "\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017" + - "\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F" + - "\u0020\u0021\"\u0023\u0024\u0025\u0026\'" + - "\u0028\u0029\u002A\u002B\u002C\u002D\u002E\u002F" + - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + - "\u0038\u0039\u003A\u003B\u003C\u003D\u003E\u003F" + - "\u0040\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + - "\u0048\u0049\u004A\u004B\u004C\u004D\u004E\u004F" + - "\u0050\u0051\u0052\u0053\u0054\u0055\u0056\u0057" + - "\u0058\u0059\u005A\u005B\\\u005D\u005E\u005F" + - "\u0060\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + - "\u0068\u0069\u006A\u006B\u006C\u006D\u006E\u006F" + - "\u0070\u0071\u0072\u0073\u0074\u0075\u0076\u0077" + - "\u0078\u0079\u007A\u007B\u007C\u007D\u007E\u007F" + - "\u0080\u0081\u0082\u0083\u0084\u0085\u0086\u0087" + - "\u0088\u0089\u008A\u008B\u008C\u008D\u008E\u008F" + - "\u0090\u0091\u0092\u0093\u0094\u0095\u0096\u0097" + - "\u0098\u0099\u009A\u009B\u009C\u009D\u009E\u009F" + - "\u00A0\u0000\u00A2\u00A3\u00A4\u0000\u00A6\u00A7" + - "\u0000\u00A9\u0000\u00AB\u00AC\u00AD\u00AE\u0000" + - "\u00B0\u00B1\u00B2\u00B3\u0000\u00B5\u00B6\u00B7" + - "\u0000\u00B9\u0000\u00BB\u00BC\u00BD\u00BE\u0000" + - "\u0000\u0000\u0000\u0000\u00C4\u00C5\u00AF\u0000" + - "\u0000\u00C9\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u00D3\u0000\u00D5\u00D6\u00D7" + - "\u00A8\u0000\u0000\u0000\u00DC\u0000\u0000\u00DF" + - "\u0000\u0000\u0000\u0000\u00E4\u00E5\u00BF\u0000" + - "\u0000\u00E9\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u00F3\u0000\u00F5\u00F6\u00F7" + - "\u00B8\u0000\u0000\u0000\u00FC\u0000\u0000\u0000" + - "\u00C2\u00E2\u0000\u0000\u00C0\u00E0\u00C3\u00E3" + - "\u0000\u0000\u0000\u0000\u00C8\u00E8\u0000\u0000" + - "\u0000\u0000\u00C7\u00E7\u0000\u0000\u00CB\u00EB" + - "\u00C6\u00E6\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u00CC\u00EC\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u00CE\u00EE\u0000\u0000\u00C1\u00E1" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u00CD\u00ED" + - "\u0000\u0000\u0000\u00CF\u00EF\u0000\u0000\u0000" + - "\u0000\u00D9\u00F9\u00D1\u00F1\u00D2\u00F2\u0000" + - "\u0000\u0000\u0000\u0000\u00D4\u00F4\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u00AA\u00BA" + - "\u0000\u0000\u00DA\u00FA\u0000\u0000\u0000\u0000" + - "\u00D0\u00F0\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u00DB\u00FB\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u00D8\u00F8\u0000\u0000\u0000\u0000" + - "\u0000\u00CA\u00EA\u00DD\u00FD\u00DE\u00FE\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u00FF" + - "\u0000\u0000\u00B4\u00A1\u00A5\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000"; - - private final static short index1[] = { - 0, 256, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 614, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - - }; - } -} diff --git a/jdk/src/share/classes/sun/nio/cs/ext/IBM922.java b/jdk/src/share/classes/sun/nio/cs/ext/IBM922.java deleted file mode 100644 index 05280c93577..00000000000 --- a/jdk/src/share/classes/sun/nio/cs/ext/IBM922.java +++ /dev/null @@ -1,262 +0,0 @@ - -/* - * Copyright 2003-2004 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. - */ - -package sun.nio.cs.ext; - - -import java.nio.charset.Charset; -import java.nio.charset.CharsetDecoder; -import java.nio.charset.CharsetEncoder; -import sun.nio.cs.StandardCharsets; -import sun.nio.cs.SingleByteDecoder; -import sun.nio.cs.SingleByteEncoder; -import sun.nio.cs.HistoricallyNamedCharset; - -public class IBM922 - extends Charset - implements HistoricallyNamedCharset -{ - - public IBM922() { - super("x-IBM922", ExtendedCharsets.aliasesFor("x-IBM922")); - } - - public String historicalName() { - return "Cp922"; - } - - public boolean contains(Charset cs) { - return (cs instanceof IBM922); - } - - public CharsetDecoder newDecoder() { - return new Decoder(this); - } - - public CharsetEncoder newEncoder() { - return new Encoder(this); - } - - - /** - * These accessors are temporarily supplied while sun.io - * converters co-exist with the sun.nio.cs.{ext} charset coders - * These facilitate sharing of conversion tables between the - * two co-existing implementations. When sun.io converters - * are made extinct these will be unncessary and should be removed - */ - - public String getDecoderSingleByteMappings() { - return Decoder.byteToCharTable; - - } - - public short[] getEncoderIndex1() { - return Encoder.index1; - - } - public String getEncoderIndex2() { - return Encoder.index2; - - } - - private static class Decoder extends SingleByteDecoder { - public Decoder(Charset cs) { - super(cs, byteToCharTable); - } - - private final static String byteToCharTable = - - "\u0080\u0081\u0082\u0083\u0084\u0085\u0086\u0087" + // 0x80 - 0x87 - "\u0088\u0089\u008A\u008B\u008C\u008D\u008E\u008F" + // 0x88 - 0x8F - "\u0090\u0091\u0092\u0093\u0094\u0095\u0096\u0097" + // 0x90 - 0x97 - "\u0098\u0099\u009A\u009B\u009C\u009D\u009E\u009F" + // 0x98 - 0x9F - "\u00A0\u00A1\u00A2\u00A3\u00A4\u00A5\u00A6\u00A7" + // 0xA0 - 0xA7 - "\u00A8\u00A9\u00AA\u00AB\u00AC\u00AD\u00AE\u203E" + // 0xA8 - 0xAF - "\u00B0\u00B1\u00B2\u00B3\u00B4\u00B5\u00B6\u00B7" + // 0xB0 - 0xB7 - "\u00B8\u00B9\u00BA\u00BB\u00BC\u00BD\u00BE\u00BF" + // 0xB8 - 0xBF - "\u00C0\u00C1\u00C2\u00C3\u00C4\u00C5\u00C6\u00C7" + // 0xC0 - 0xC7 - "\u00C8\u00C9\u00CA\u00CB\u00CC\u00CD\u00CE\u00CF" + // 0xC8 - 0xCF - "\u0160\u00D1\u00D2\u00D3\u00D4\u00D5\u00D6\u00D7" + // 0xD0 - 0xD7 - "\u00D8\u00D9\u00DA\u00DB\u00DC\u00DD\u017D\u00DF" + // 0xD8 - 0xDF - "\u00E0\u00E1\u00E2\u00E3\u00E4\u00E5\u00E6\u00E7" + // 0xE0 - 0xE7 - "\u00E8\u00E9\u00EA\u00EB\u00EC\u00ED\u00EE\u00EF" + // 0xE8 - 0xEF - "\u0161\u00F1\u00F2\u00F3\u00F4\u00F5\u00F6\u00F7" + // 0xF0 - 0xF7 - "\u00F8\u00F9\u00FA\u00FB\u00FC\u00FD\u017E\u00FF" + // 0xF8 - 0xFF - "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007" + // 0x00 - 0x07 - "\b\t\n\u000B\f\r\u000E\u000F" + // 0x08 - 0x0F - "\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017" + // 0x10 - 0x17 - "\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F" + // 0x18 - 0x1F - "\u0020\u0021\"\u0023\u0024\u0025\u0026\'" + // 0x20 - 0x27 - "\u0028\u0029\u002A\u002B\u002C\u002D\u002E\u002F" + // 0x28 - 0x2F - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + // 0x30 - 0x37 - "\u0038\u0039\u003A\u003B\u003C\u003D\u003E\u003F" + // 0x38 - 0x3F - "\u0040\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + // 0x40 - 0x47 - "\u0048\u0049\u004A\u004B\u004C\u004D\u004E\u004F" + // 0x48 - 0x4F - "\u0050\u0051\u0052\u0053\u0054\u0055\u0056\u0057" + // 0x50 - 0x57 - "\u0058\u0059\u005A\u005B\\\u005D\u005E\u005F" + // 0x58 - 0x5F - "\u0060\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + // 0x60 - 0x67 - "\u0068\u0069\u006A\u006B\u006C\u006D\u006E\u006F" + // 0x68 - 0x6F - "\u0070\u0071\u0072\u0073\u0074\u0075\u0076\u0077" + // 0x70 - 0x77 - "\u0078\u0079\u007A\u007B\u007C\u007D\u007E\u007F"; // 0x78 - 0x7F - - } - - private static class Encoder extends SingleByteEncoder { - public Encoder(Charset cs) { - super(cs, index1, index2, 0xFF00, 0x00FF, 8); - } - - private final static String index2 = - - - "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007" + - "\b\t\n\u000B\f\r\u000E\u000F" + - "\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017" + - "\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F" + - "\u0020\u0021\"\u0023\u0024\u0025\u0026\'" + - "\u0028\u0029\u002A\u002B\u002C\u002D\u002E\u002F" + - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + - "\u0038\u0039\u003A\u003B\u003C\u003D\u003E\u003F" + - "\u0040\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + - "\u0048\u0049\u004A\u004B\u004C\u004D\u004E\u004F" + - "\u0050\u0051\u0052\u0053\u0054\u0055\u0056\u0057" + - "\u0058\u0059\u005A\u005B\\\u005D\u005E\u005F" + - "\u0060\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + - "\u0068\u0069\u006A\u006B\u006C\u006D\u006E\u006F" + - "\u0070\u0071\u0072\u0073\u0074\u0075\u0076\u0077" + - "\u0078\u0079\u007A\u007B\u007C\u007D\u007E\u007F" + - "\u0080\u0081\u0082\u0083\u0084\u0085\u0086\u0087" + - "\u0088\u0089\u008A\u008B\u008C\u008D\u008E\u008F" + - "\u0090\u0091\u0092\u0093\u0094\u0095\u0096\u0097" + - "\u0098\u0099\u009A\u009B\u009C\u009D\u009E\u009F" + - "\u00A0\u00A1\u00A2\u00A3\u00A4\u00A5\u00A6\u00A7" + - "\u00A8\u00A9\u00AA\u00AB\u00AC\u00AD\u00AE\u0000" + - "\u00B0\u00B1\u00B2\u00B3\u00B4\u00B5\u00B6\u00B7" + - "\u00B8\u00B9\u00BA\u00BB\u00BC\u00BD\u00BE\u00BF" + - "\u00C0\u00C1\u00C2\u00C3\u00C4\u00C5\u00C6\u00C7" + - "\u00C8\u00C9\u00CA\u00CB\u00CC\u00CD\u00CE\u00CF" + - "\u0000\u00D1\u00D2\u00D3\u00D4\u00D5\u00D6\u00D7" + - "\u00D8\u00D9\u00DA\u00DB\u00DC\u00DD\u0000\u00DF" + - "\u00E0\u00E1\u00E2\u00E3\u00E4\u00E5\u00E6\u00E7" + - "\u00E8\u00E9\u00EA\u00EB\u00EC\u00ED\u00EE\u00EF" + - "\u0000\u00F1\u00F2\u00F3\u00F4\u00F5\u00F6\u00F7" + - "\u00F8\u00F9\u00FA\u00FB\u00FC\u00FD\u0000\u00FF" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00D0\u00F0\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u00DE\u00FE\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u00AF" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000"; - - private final static short index1[] = { - 0, 256, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 577, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - - }; - } -} diff --git a/jdk/src/share/classes/sun/nio/cs/ext/ISO_8859_11.java b/jdk/src/share/classes/sun/nio/cs/ext/ISO_8859_11.java deleted file mode 100644 index 8e49b22c5ec..00000000000 --- a/jdk/src/share/classes/sun/nio/cs/ext/ISO_8859_11.java +++ /dev/null @@ -1,215 +0,0 @@ -/* - * Copyright 2003 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. - */ - -/* - * - * NIO charset Support for Latin/Thai x-ISO-8859-11 charset - * (Currently not IANA registered) - */ - -package sun.nio.cs.ext; - -import java.nio.charset.Charset; -import java.nio.charset.CharsetDecoder; -import java.nio.charset.CharsetEncoder; -import sun.nio.cs.SingleByteEncoder; -import sun.nio.cs.SingleByteDecoder; - -public class ISO_8859_11 extends Charset -{ - - public ISO_8859_11() { - super("x-iso-8859-11", ExtendedCharsets.aliasesFor("x-iso-8859-11")); - } - - public boolean contains(Charset cs) { - return ((cs.name().equals("US-ASCII")) - || (cs instanceof ISO_8859_11)); - } - - public CharsetDecoder newDecoder() { - return new Decoder(this); - } - - public CharsetEncoder newEncoder() { - return new Encoder(this); - } - - protected static class Decoder extends SingleByteDecoder { - - public Decoder(Charset cs) { - super(cs, byteToCharTable); - } - - private final static String byteToCharTable = - - "\u0080\u0081\u0082\u0083\u0084\u0085\u0086\u0087" + // 0x80 - 0x87 - "\u0088\u0089\u008A\u008B\u008C\u008D\u008E\u008F" + // 0x88 - 0x8F - "\u0090\u0091\u0092\u0093\u0094\u0095\u0096\u0097" + // 0x90 - 0x97 - "\u0098\u0099\u009A\u009B\u009C\u009D\u009E\u009F" + // 0x98 - 0x9F - "\u00A0\u0E01\u0E02\u0E03\u0E04\u0E05\u0E06\u0E07" + // 0xA0 - 0xA7 - "\u0E08\u0E09\u0E0A\u0E0B\u0E0C\u0E0D\u0E0E\u0E0F" + // 0xA8 - 0xAF - "\u0E10\u0E11\u0E12\u0E13\u0E14\u0E15\u0E16\u0E17" + // 0xB0 - 0xB7 - "\u0E18\u0E19\u0E1A\u0E1B\u0E1C\u0E1D\u0E1E\u0E1F" + // 0xB8 - 0xBF - "\u0E20\u0E21\u0E22\u0E23\u0E24\u0E25\u0E26\u0E27" + // 0xC0 - 0xC7 - "\u0E28\u0E29\u0E2A\u0E2B\u0E2C\u0E2D\u0E2E\u0E2F" + // 0xC8 - 0xCF - "\u0E30\u0E31\u0E32\u0E33\u0E34\u0E35\u0E36\u0E37" + // 0xD0 - 0xD7 - "\u0E38\u0E39\u0E3A\uFFFD\uFFFD\uFFFD\uFFFD\u0E3F" + // 0xD8 - 0xDF - "\u0E40\u0E41\u0E42\u0E43\u0E44\u0E45\u0E46\u0E47" + // 0xE0 - 0xE7 - "\u0E48\u0E49\u0E4A\u0E4B\u0E4C\u0E4D\u0E4E\u0E4F" + // 0xE8 - 0xEF - "\u0E50\u0E51\u0E52\u0E53\u0E54\u0E55\u0E56\u0E57" + // 0xF0 - 0xF7 - "\u0E58\u0E59\u0E5A\u0E5B\uFFFD\uFFFD\uFFFD\uFFFD" + // 0xF8 - 0xFF - "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007" + // 0x00 - 0x07 - "\b\t\n\u000B\f\r\u000E\u000F" + // 0x08 - 0x0F - "\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017" + // 0x10 - 0x17 - "\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F" + // 0x18 - 0x1F - "\u0020\u0021\"\u0023\u0024\u0025\u0026\'" + // 0x20 - 0x27 - "\u0028\u0029\u002A\u002B\u002C\u002D\u002E\u002F" + // 0x28 - 0x2F - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + // 0x30 - 0x37 - "\u0038\u0039\u003A\u003B\u003C\u003D\u003E\u003F" + // 0x38 - 0x3F - "\u0040\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + // 0x40 - 0x47 - "\u0048\u0049\u004A\u004B\u004C\u004D\u004E\u004F" + // 0x48 - 0x4F - "\u0050\u0051\u0052\u0053\u0054\u0055\u0056\u0057" + // 0x50 - 0x57 - "\u0058\u0059\u005A\u005B\\\u005D\u005E\u005F" + // 0x58 - 0x5F - "\u0060\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + // 0x60 - 0x67 - "\u0068\u0069\u006A\u006B\u006C\u006D\u006E\u006F" + // 0x68 - 0x6F - "\u0070\u0071\u0072\u0073\u0074\u0075\u0076\u0077" + // 0x70 - 0x77 - "\u0078\u0079\u007A\u007B\u007C\u007D\u007E\u007F"; // 0x78 - 0x7F - - } - - protected static class Encoder extends SingleByteEncoder { - - public Encoder(Charset cs) { - super(cs, index1, index2, 0xFF00, 0x00FF, 8); - } - - private final static String index2 = - - "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007" + - "\b\t\n\u000B\f\r\u000E\u000F" + - "\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017" + - "\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F" + - "\u0020\u0021\"\u0023\u0024\u0025\u0026\'" + - "\u0028\u0029\u002A\u002B\u002C\u002D\u002E\u002F" + - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + - "\u0038\u0039\u003A\u003B\u003C\u003D\u003E\u003F" + - "\u0040\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + - "\u0048\u0049\u004A\u004B\u004C\u004D\u004E\u004F" + - "\u0050\u0051\u0052\u0053\u0054\u0055\u0056\u0057" + - "\u0058\u0059\u005A\u005B\\\u005D\u005E\u005F" + - "\u0060\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + - "\u0068\u0069\u006A\u006B\u006C\u006D\u006E\u006F" + - "\u0070\u0071\u0072\u0073\u0074\u0075\u0076\u0077" + - "\u0078\u0079\u007A\u007B\u007C\u007D\u007E\u007F" + - "\u0080\u0081\u0082\u0083\u0084\u0085\u0086\u0087" + - "\u0088\u0089\u008A\u008B\u008C\u008D\u008E\u008F" + - "\u0090\u0091\u0092\u0093\u0094\u0095\u0096\u0097" + - "\u0098\u0099\u009A\u009B\u009C\u009D\u009E\u009F" + - "\u00A0\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u00A1\u00A2\u00A3\u00A4\u00A5\u00A6\u00A7" + - "\u00A8\u00A9\u00AA\u00AB\u00AC\u00AD\u00AE\u00AF" + - "\u00B0\u00B1\u00B2\u00B3\u00B4\u00B5\u00B6\u00B7" + - "\u00B8\u00B9\u00BA\u00BB\u00BC\u00BD\u00BE\u00BF" + - "\u00C0\u00C1\u00C2\u00C3\u00C4\u00C5\u00C6\u00C7" + - "\u00C8\u00C9\u00CA\u00CB\u00CC\u00CD\u00CE\u00CF" + - "\u00D0\u00D1\u00D2\u00D3\u00D4\u00D5\u00D6\u00D7" + - "\u00D8\u00D9\u00DA\u0000\u0000\u0000\u0000\u00DF" + - "\u00E0\u00E1\u00E2\u00E3\u00E4\u00E5\u00E6\u00E7" + - "\u00E8\u00E9\u00EA\u00EB\u00EC\u00ED\u00EE\u00EF" + - "\u00F0\u00F1\u00F2\u00F3\u00F4\u00F5\u00F6\u00F7" + - "\u00F8\u00F9\u00FA\u00FB\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"; - - private final static short index1[] = { - 0, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 416, 161, - 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, - 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, - 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, - 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, - 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, - 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, - 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, - 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, - 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, - 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, - 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, - 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, - 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, - 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, - 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, - }; - } -} diff --git a/jdk/src/share/classes/sun/nio/cs/ext/ISO_8859_3.java b/jdk/src/share/classes/sun/nio/cs/ext/ISO_8859_3.java deleted file mode 100644 index 6554891055c..00000000000 --- a/jdk/src/share/classes/sun/nio/cs/ext/ISO_8859_3.java +++ /dev/null @@ -1,243 +0,0 @@ - -/* - * Copyright 2002-2004 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. - */ - -package sun.nio.cs.ext; - -import java.nio.ByteBuffer; -import java.nio.CharBuffer; -import java.nio.charset.Charset; -import java.nio.charset.CharsetDecoder; -import java.nio.charset.CharsetEncoder; -import java.nio.charset.CharacterCodingException; -import java.nio.charset.MalformedInputException; -import java.nio.charset.UnmappableCharacterException; -import sun.nio.cs.StandardCharsets; -import sun.nio.cs.SingleByteDecoder; -import sun.nio.cs.SingleByteEncoder; -import sun.nio.cs.HistoricallyNamedCharset; - -public class ISO_8859_3 - extends Charset - implements HistoricallyNamedCharset -{ - - public ISO_8859_3() { - super("ISO-8859-3", ExtendedCharsets.aliasesFor("ISO-8859-3")); - } - - public String historicalName() { - return "ISO8859_3"; - } - - public boolean contains(Charset cs) { - return ((cs.name().equals("US-ASCII")) - || (cs instanceof ISO_8859_3)); - } - - public CharsetDecoder newDecoder() { - return new Decoder(this); - } - - public CharsetEncoder newEncoder() { - return new Encoder(this); - } - - - /** - * These accessors are temporarily supplied while sun.io - * converters co-exist with the sun.nio.cs.{ext} charset coders - * These facilitate sharing of conversion tables between the - * two co-existing implementations. When sun.io converters - * are made extinct these will be unncessary and should be removed - */ - - public String getDecoderSingleByteMappings() { - return Decoder.byteToCharTable; - } - - public short[] getEncoderIndex1() { - return Encoder.index1; - - } - public String getEncoderIndex2() { - return Encoder.index2; - - } - - private static class Decoder extends SingleByteDecoder { - public Decoder(Charset cs) { - super(cs, byteToCharTable); - } - - private final static String byteToCharTable = - - "\u0080\u0081\u0082\u0083\u0084\u0085\u0086\u0087" + // 0x80 - 0x87 - "\u0088\u0089\u008A\u008B\u008C\u008D\u008E\u008F" + // 0x88 - 0x8F - "\u0090\u0091\u0092\u0093\u0094\u0095\u0096\u0097" + // 0x90 - 0x97 - "\u0098\u0099\u009A\u009B\u009C\u009D\u009E\u009F" + // 0x98 - 0x9F - "\u00A0\u0126\u02D8\u00A3\u00A4\uFFFD\u0124\u00A7" + // 0xA0 - 0xA7 - "\u00A8\u0130\u015E\u011E\u0134\u00AD\uFFFD\u017B" + // 0xA8 - 0xAF - "\u00B0\u0127\u00B2\u00B3\u00B4\u00B5\u0125\u00B7" + // 0xB0 - 0xB7 - "\u00B8\u0131\u015F\u011F\u0135\u00BD\uFFFD\u017C" + // 0xB8 - 0xBF - "\u00C0\u00C1\u00C2\uFFFD\u00C4\u010A\u0108\u00C7" + // 0xC0 - 0xC7 - "\u00C8\u00C9\u00CA\u00CB\u00CC\u00CD\u00CE\u00CF" + // 0xC8 - 0xCF - "\uFFFD\u00D1\u00D2\u00D3\u00D4\u0120\u00D6\u00D7" + // 0xD0 - 0xD7 - "\u011C\u00D9\u00DA\u00DB\u00DC\u016C\u015C\u00DF" + // 0xD8 - 0xDF - "\u00E0\u00E1\u00E2\uFFFD\u00E4\u010B\u0109\u00E7" + // 0xE0 - 0xE7 - "\u00E8\u00E9\u00EA\u00EB\u00EC\u00ED\u00EE\u00EF" + // 0xE8 - 0xEF - "\uFFFD\u00F1\u00F2\u00F3\u00F4\u0121\u00F6\u00F7" + // 0xF0 - 0xF7 - "\u011D\u00F9\u00FA\u00FB\u00FC\u016D\u015D\u02D9" + // 0xF8 - 0xFF - "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007" + // 0x00 - 0x07 - "\b\t\n\u000B\f\r\u000E\u000F" + // 0x08 - 0x0F - "\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017" + // 0x10 - 0x17 - "\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F" + // 0x18 - 0x1F - "\u0020\u0021\"\u0023\u0024\u0025\u0026\'" + // 0x20 - 0x27 - "\u0028\u0029\u002A\u002B\u002C\u002D\u002E\u002F" + // 0x28 - 0x2F - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + // 0x30 - 0x37 - "\u0038\u0039\u003A\u003B\u003C\u003D\u003E\u003F" + // 0x38 - 0x3F - "\u0040\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + // 0x40 - 0x47 - "\u0048\u0049\u004A\u004B\u004C\u004D\u004E\u004F" + // 0x48 - 0x4F - "\u0050\u0051\u0052\u0053\u0054\u0055\u0056\u0057" + // 0x50 - 0x57 - "\u0058\u0059\u005A\u005B\\\u005D\u005E\u005F" + // 0x58 - 0x5F - "\u0060\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + // 0x60 - 0x67 - "\u0068\u0069\u006A\u006B\u006C\u006D\u006E\u006F" + // 0x68 - 0x6F - "\u0070\u0071\u0072\u0073\u0074\u0075\u0076\u0077" + // 0x70 - 0x77 - "\u0078\u0079\u007A\u007B\u007C\u007D\u007E\u007F"; // 0x78 - 0x7F - } - - private static class Encoder extends SingleByteEncoder { - public Encoder(Charset cs) { - super(cs, index1, index2, 0xFF00, 0x00FF, 8); - } - - private final static String index2 = - - "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007" + - "\b\t\n\u000B\f\r\u000E\u000F" + - "\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017" + - "\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F" + - "\u0020\u0021\"\u0023\u0024\u0025\u0026\'" + - "\u0028\u0029\u002A\u002B\u002C\u002D\u002E\u002F" + - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + - "\u0038\u0039\u003A\u003B\u003C\u003D\u003E\u003F" + - "\u0040\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + - "\u0048\u0049\u004A\u004B\u004C\u004D\u004E\u004F" + - "\u0050\u0051\u0052\u0053\u0054\u0055\u0056\u0057" + - "\u0058\u0059\u005A\u005B\\\u005D\u005E\u005F" + - "\u0060\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + - "\u0068\u0069\u006A\u006B\u006C\u006D\u006E\u006F" + - "\u0070\u0071\u0072\u0073\u0074\u0075\u0076\u0077" + - "\u0078\u0079\u007A\u007B\u007C\u007D\u007E\u007F" + - "\u0080\u0081\u0082\u0083\u0084\u0085\u0086\u0087" + - "\u0088\u0089\u008A\u008B\u008C\u008D\u008E\u008F" + - "\u0090\u0091\u0092\u0093\u0094\u0095\u0096\u0097" + - "\u0098\u0099\u009A\u009B\u009C\u009D\u009E\u009F" + - "\u00A0\u0000\u0000\u00A3\u00A4\u0000\u0000\u00A7" + - "\u00A8\u0000\u0000\u0000\u0000\u00AD\u0000\u0000" + - "\u00B0\u0000\u00B2\u00B3\u00B4\u00B5\u0000\u00B7" + - "\u00B8\u0000\u0000\u0000\u0000\u00BD\u0000\u0000" + - "\u00C0\u00C1\u00C2\u0000\u00C4\u0000\u0000\u00C7" + - "\u00C8\u00C9\u00CA\u00CB\u00CC\u00CD\u00CE\u00CF" + - "\u0000\u00D1\u00D2\u00D3\u00D4\u0000\u00D6\u00D7" + - "\u0000\u00D9\u00DA\u00DB\u00DC\u0000\u0000\u00DF" + - "\u00E0\u00E1\u00E2\u0000\u00E4\u0000\u0000\u00E7" + - "\u00E8\u00E9\u00EA\u00EB\u00EC\u00ED\u00EE\u00EF" + - "\u0000\u00F1\u00F2\u00F3\u00F4\u0000\u00F6\u00F7" + - "\u0000\u00F9\u00FA\u00FB\u00FC\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u00C6\u00E6\u00C5" + - "\u00E5\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u00D8\u00F8\u00AB\u00BB\u00D5\u00F5\u0000" + - "\u0000\u00A6\u00B6\u00A1\u00B1\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u00A9\u00B9\u0000" + - "\u0000\u00AC\u00BC\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u00DE\u00FE\u00AA\u00BA\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u00DD\u00FD\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00AF\u00BF\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u00A2\u00FF\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000"; - - private final static short index1[] = { - 0, 253, 418, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, - 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, - 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, - 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, - 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, - 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, - 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, - 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, - 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, - 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, - 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, - 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, - 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, - 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, - 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, - 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, - }; - } -} diff --git a/jdk/src/share/classes/sun/nio/cs/ext/ISO_8859_6.java b/jdk/src/share/classes/sun/nio/cs/ext/ISO_8859_6.java deleted file mode 100644 index 56b7cf43088..00000000000 --- a/jdk/src/share/classes/sun/nio/cs/ext/ISO_8859_6.java +++ /dev/null @@ -1,246 +0,0 @@ - -/* - * Copyright 2002-2004 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. - */ - -package sun.nio.cs.ext; - -import java.nio.ByteBuffer; -import java.nio.CharBuffer; -import java.nio.charset.Charset; -import java.nio.charset.CharsetDecoder; -import java.nio.charset.CharsetEncoder; -import java.nio.charset.CharacterCodingException; -import java.nio.charset.MalformedInputException; -import java.nio.charset.UnmappableCharacterException; -import sun.nio.cs.StandardCharsets; -import sun.nio.cs.SingleByteDecoder; -import sun.nio.cs.SingleByteEncoder; -import sun.nio.cs.HistoricallyNamedCharset; - -public class ISO_8859_6 - extends Charset - implements HistoricallyNamedCharset -{ - - public ISO_8859_6() { - super("ISO-8859-6", ExtendedCharsets.aliasesFor("ISO-8859-6")); - } - - public String historicalName() { - return "ISO8859_6"; - } - - public boolean contains(Charset cs) { - return ((cs.name().equals("US-ASCII")) - || (cs instanceof ISO_8859_6)); - } - - public CharsetDecoder newDecoder() { - return new Decoder(this); - } - - public CharsetEncoder newEncoder() { - return new Encoder(this); - } - - - - /** - * These accessors are temporarily supplied while sun.io - * converters co-exist with the sun.nio.cs.{ext} charset coders - * These facilitate sharing of conversion tables between the - * two co-existing implementations. When sun.io converters - * are made extinct these will be unncessary and should be removed - */ - - public String getDecoderSingleByteMappings() { - return Decoder.byteToCharTable; - - } - - public short[] getEncoderIndex1() { - return Encoder.index1; - - } - public String getEncoderIndex2() { - return Encoder.index2; - - } - - private static class Decoder extends SingleByteDecoder { - public Decoder(Charset cs) { - super(cs, byteToCharTable); - } - - private final static String byteToCharTable = - - "\u0080\u0081\u0082\u0083\u0084\u0085\u0086\u0087" + // 0x80 - 0x87 - "\u0088\u0089\u008A\u008B\u008C\u008D\u008E\u008F" + // 0x88 - 0x8F - "\u0090\u0091\u0092\u0093\u0094\u0095\u0096\u0097" + // 0x90 - 0x97 - "\u0098\u0099\u009A\u009B\u009C\u009D\u009E\u009F" + // 0x98 - 0x9F - "\u00A0\uFFFD\uFFFD\uFFFD\u00A4\uFFFD\uFFFD\uFFFD" + // 0xA0 - 0xA7 - "\uFFFD\uFFFD\uFFFD\uFFFD\u060C\u00AD\uFFFD\uFFFD" + // 0xA8 - 0xAF - "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD" + // 0xB0 - 0xB7 - "\uFFFD\uFFFD\uFFFD\u061B\uFFFD\uFFFD\uFFFD\u061F" + // 0xB8 - 0xBF - "\uFFFD\u0621\u0622\u0623\u0624\u0625\u0626\u0627" + // 0xC0 - 0xC7 - "\u0628\u0629\u062A\u062B\u062C\u062D\u062E\u062F" + // 0xC8 - 0xCF - "\u0630\u0631\u0632\u0633\u0634\u0635\u0636\u0637" + // 0xD0 - 0xD7 - "\u0638\u0639\u063A\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD" + // 0xD8 - 0xDF - "\u0640\u0641\u0642\u0643\u0644\u0645\u0646\u0647" + // 0xE0 - 0xE7 - "\u0648\u0649\u064A\u064B\u064C\u064D\u064E\u064F" + // 0xE8 - 0xEF - "\u0650\u0651\u0652\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD" + // 0xF0 - 0xF7 - "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD" + // 0xF8 - 0xFF - "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007" + // 0x00 - 0x07 - "\b\t\n\u000B\f\r\u000E\u000F" + // 0x08 - 0x0F - "\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017" + // 0x10 - 0x17 - "\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F" + // 0x18 - 0x1F - "\u0020\u0021\"\u0023\u0024\u0025\u0026\'" + // 0x20 - 0x27 - "\u0028\u0029\u002A\u002B\u002C\u002D\u002E\u002F" + // 0x28 - 0x2F - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + // 0x30 - 0x37 - "\u0038\u0039\u003A\u003B\u003C\u003D\u003E\u003F" + // 0x38 - 0x3F - "\u0040\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + // 0x40 - 0x47 - "\u0048\u0049\u004A\u004B\u004C\u004D\u004E\u004F" + // 0x48 - 0x4F - "\u0050\u0051\u0052\u0053\u0054\u0055\u0056\u0057" + // 0x50 - 0x57 - "\u0058\u0059\u005A\u005B\\\u005D\u005E\u005F" + // 0x58 - 0x5F - "\u0060\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + // 0x60 - 0x67 - "\u0068\u0069\u006A\u006B\u006C\u006D\u006E\u006F" + // 0x68 - 0x6F - "\u0070\u0071\u0072\u0073\u0074\u0075\u0076\u0077" + // 0x70 - 0x77 - "\u0078\u0079\u007A\u007B\u007C\u007D\u007E\u007F"; // 0x78 - 0x7F - - } - - private static class Encoder extends SingleByteEncoder { - public Encoder(Charset cs) { - super(cs, index1, index2, 0xFF00, 0x00FF, 8); - } - - private final static String index2 = - - "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007" + - "\b\t\n\u000B\f\r\u000E\u000F" + - "\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017" + - "\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F" + - "\u0020\u0021\"\u0023\u0024\u0025\u0026\'" + - "\u0028\u0029\u002A\u002B\u002C\u002D\u002E\u002F" + - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + - "\u0038\u0039\u003A\u003B\u003C\u003D\u003E\u003F" + - "\u0040\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + - "\u0048\u0049\u004A\u004B\u004C\u004D\u004E\u004F" + - "\u0050\u0051\u0052\u0053\u0054\u0055\u0056\u0057" + - "\u0058\u0059\u005A\u005B\\\u005D\u005E\u005F" + - "\u0060\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + - "\u0068\u0069\u006A\u006B\u006C\u006D\u006E\u006F" + - "\u0070\u0071\u0072\u0073\u0074\u0075\u0076\u0077" + - "\u0078\u0079\u007A\u007B\u007C\u007D\u007E\u007F" + - "\u0080\u0081\u0082\u0083\u0084\u0085\u0086\u0087" + - "\u0088\u0089\u008A\u008B\u008C\u008D\u008E\u008F" + - "\u0090\u0091\u0092\u0093\u0094\u0095\u0096\u0097" + - "\u0098\u0099\u009A\u009B\u009C\u009D\u009E\u009F" + - "\u00A0\u0000\u0000\u0000\u00A4\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u00AD\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u00AC\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u00BB\u0000\u0000" + - "\u0000\u00BF\u0000\u00C1\u00C2\u00C3\u00C4\u00C5" + - "\u00C6\u00C7\u00C8\u00C9\u00CA\u00CB\u00CC\u00CD" + - "\u00CE\u00CF\u00D0\u00D1\u00D2\u00D3\u00D4\u00D5" + - "\u00D6\u00D7\u00D8\u00D9\u00DA\u0000\u0000\u0000" + - "\u0000\u0000\u00E0\u00E1\u00E2\u00E3\u00E4\u00E5" + - "\u00E6\u00E7\u00E8\u00E9\u00EA\u00EB\u00EC\u00ED" + - "\u00EE\u00EF\u00F0\u00F1\u00F2\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000"; - - private final static short index1[] = { - 0, 174, 174, 174, 174, 174, 418, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - }; - } -} diff --git a/jdk/src/share/classes/sun/nio/cs/ext/ISO_8859_8.java b/jdk/src/share/classes/sun/nio/cs/ext/ISO_8859_8.java deleted file mode 100644 index fca3a86f116..00000000000 --- a/jdk/src/share/classes/sun/nio/cs/ext/ISO_8859_8.java +++ /dev/null @@ -1,259 +0,0 @@ - -/* - * Copyright 2002-2004 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. - */ - -package sun.nio.cs.ext; - -import java.nio.ByteBuffer; -import java.nio.CharBuffer; -import java.nio.charset.Charset; -import java.nio.charset.CharsetDecoder; -import java.nio.charset.CharsetEncoder; -import java.nio.charset.CharacterCodingException; -import java.nio.charset.MalformedInputException; -import java.nio.charset.UnmappableCharacterException; -import sun.nio.cs.StandardCharsets; -import sun.nio.cs.SingleByteDecoder; -import sun.nio.cs.SingleByteEncoder; -import sun.nio.cs.HistoricallyNamedCharset; - - -public class ISO_8859_8 - extends Charset - implements HistoricallyNamedCharset -{ - - public ISO_8859_8() { - super("ISO-8859-8", ExtendedCharsets.aliasesFor("ISO-8859-8")); - } - - public String historicalName() { - return "ISO8859_8"; - } - - public boolean contains(Charset cs) { - return ((cs.name().equals("US-ASCII")) - || (cs instanceof ISO_8859_8)); - } - - public CharsetDecoder newDecoder() { - return new Decoder(this); - } - - public CharsetEncoder newEncoder() { - return new Encoder(this); - } - - - /** - * These accessors are temporarily supplied while sun.io - * converters co-exist with the sun.nio.cs.{ext} charset coders - * These facilitate sharing of conversion tables between the - * two co-existing implementations. When sun.io converters - * are made extinct these will be unncessary and should be removed - */ - - public String getDecoderSingleByteMappings() { - return Decoder.byteToCharTable; - - } - - public short[] getEncoderIndex1() { - return Encoder.index1; - - } - public String getEncoderIndex2() { - return Encoder.index2; - - } - - private static class Decoder extends SingleByteDecoder { - public Decoder(Charset cs) { - super(cs, byteToCharTable); - } - - private final static String byteToCharTable = - - "\u0080\u0081\u0082\u0083\u0084\u0085\u0086\u0087" + // 0x80 - 0x87 - "\u0088\u0089\u008A\u008B\u008C\u008D\u008E\u008F" + // 0x88 - 0x8F - "\u0090\u0091\u0092\u0093\u0094\u0095\u0096\u0097" + // 0x90 - 0x97 - "\u0098\u0099\u009A\u009B\u009C\u009D\u009E\u009F" + // 0x98 - 0x9F - "\u00A0\uFFFD\u00A2\u00A3\u00A4\u00A5\u00A6\u00A7" + // 0xA0 - 0xA7 - "\u00A8\u00A9\u00D7\u00AB\u00AC\u00AD\u00AE\u00AF" + // 0xA8 - 0xAF - "\u00B0\u00B1\u00B2\u00B3\u00B4\u00B5\u00B6\u00B7" + // 0xB0 - 0xB7 - "\u00B8\u00B9\u00F7\u00BB\u00BC\u00BD\u00BE\uFFFD" + // 0xB8 - 0xBF - "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD" + // 0xC0 - 0xC7 - "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD" + // 0xC8 - 0xCF - "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD" + // 0xD0 - 0xD7 - "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u2017" + // 0xD8 - 0xDF - "\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5\u05D6\u05D7" + // 0xE0 - 0xE7 - "\u05D8\u05D9\u05DA\u05DB\u05DC\u05DD\u05DE\u05DF" + // 0xE8 - 0xEF - "\u05E0\u05E1\u05E2\u05E3\u05E4\u05E5\u05E6\u05E7" + // 0xF0 - 0xF7 - "\u05E8\u05E9\u05EA\uFFFD\uFFFD\u200E\u200F\uFFFD" + // 0xF8 - 0xFF - "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007" + // 0x00 - 0x07 - "\b\t\n\u000B\f\r\u000E\u000F" + // 0x08 - 0x0F - "\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017" + // 0x10 - 0x17 - "\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F" + // 0x18 - 0x1F - "\u0020\u0021\"\u0023\u0024\u0025\u0026\'" + // 0x20 - 0x27 - "\u0028\u0029\u002A\u002B\u002C\u002D\u002E\u002F" + // 0x28 - 0x2F - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + // 0x30 - 0x37 - "\u0038\u0039\u003A\u003B\u003C\u003D\u003E\u003F" + // 0x38 - 0x3F - "\u0040\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + // 0x40 - 0x47 - "\u0048\u0049\u004A\u004B\u004C\u004D\u004E\u004F" + // 0x48 - 0x4F - "\u0050\u0051\u0052\u0053\u0054\u0055\u0056\u0057" + // 0x50 - 0x57 - "\u0058\u0059\u005A\u005B\\\u005D\u005E\u005F" + // 0x58 - 0x5F - "\u0060\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + // 0x60 - 0x67 - "\u0068\u0069\u006A\u006B\u006C\u006D\u006E\u006F" + // 0x68 - 0x6F - "\u0070\u0071\u0072\u0073\u0074\u0075\u0076\u0077" + // 0x70 - 0x77 - "\u0078\u0079\u007A\u007B\u007C\u007D\u007E\u007F"; // 0x78 - 0x7F - } - - private static class Encoder extends SingleByteEncoder { - public Encoder(Charset cs) { - super(cs, index1, index2, 0xFF00, 0x00FF, 8); - } - - private final static String index2 = - - "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007" + - "\b\t\n\u000B\f\r\u000E\u000F" + - "\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017" + - "\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F" + - "\u0020\u0021\"\u0023\u0024\u0025\u0026\'" + - "\u0028\u0029\u002A\u002B\u002C\u002D\u002E\u002F" + - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + - "\u0038\u0039\u003A\u003B\u003C\u003D\u003E\u003F" + - "\u0040\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + - "\u0048\u0049\u004A\u004B\u004C\u004D\u004E\u004F" + - "\u0050\u0051\u0052\u0053\u0054\u0055\u0056\u0057" + - "\u0058\u0059\u005A\u005B\\\u005D\u005E\u005F" + - "\u0060\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + - "\u0068\u0069\u006A\u006B\u006C\u006D\u006E\u006F" + - "\u0070\u0071\u0072\u0073\u0074\u0075\u0076\u0077" + - "\u0078\u0079\u007A\u007B\u007C\u007D\u007E\u007F" + - "\u0080\u0081\u0082\u0083\u0084\u0085\u0086\u0087" + - "\u0088\u0089\u008A\u008B\u008C\u008D\u008E\u008F" + - "\u0090\u0091\u0092\u0093\u0094\u0095\u0096\u0097" + - "\u0098\u0099\u009A\u009B\u009C\u009D\u009E\u009F" + - "\u00A0\u0000\u00A2\u00A3\u00A4\u00A5\u00A6\u00A7" + - "\u00A8\u00A9\u0000\u00AB\u00AC\u00AD\u00AE\u00AF" + - "\u00B0\u00B1\u00B2\u00B3\u00B4\u00B5\u00B6\u00B7" + - "\u00B8\u00B9\u0000\u00BB\u00BC\u00BD\u00BE\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u00AA" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u00BA" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00E0\u00E1\u00E2\u00E3\u00E4\u00E5\u00E6\u00E7" + - "\u00E8\u00E9\u00EA\u00EB\u00EC\u00ED\u00EE\u00EF" + - "\u00F0\u00F1\u00F2\u00F3\u00F4\u00F5\u00F6\u00F7" + - "\u00F8\u00F9\u00FA\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00FD\u00FE\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u00DF\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000"; - private final static short index1[] = { - 0, 248, 248, 248, 248, 296, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 538, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - }; - } -} diff --git a/jdk/src/share/classes/sun/nio/cs/ext/MS1255.java b/jdk/src/share/classes/sun/nio/cs/ext/MS1255.java deleted file mode 100644 index d249f1d9503..00000000000 --- a/jdk/src/share/classes/sun/nio/cs/ext/MS1255.java +++ /dev/null @@ -1,333 +0,0 @@ - -/* - * Copyright 2002-2004 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. - */ - -package sun.nio.cs.ext; - -import java.nio.ByteBuffer; -import java.nio.CharBuffer; -import java.nio.charset.Charset; -import java.nio.charset.CharsetDecoder; -import java.nio.charset.CharsetEncoder; -import java.nio.charset.CharacterCodingException; -import java.nio.charset.MalformedInputException; -import java.nio.charset.UnmappableCharacterException; -import sun.nio.cs.StandardCharsets; -import sun.nio.cs.SingleByteDecoder; -import sun.nio.cs.SingleByteEncoder; -import sun.nio.cs.HistoricallyNamedCharset; - - -public class MS1255 - extends Charset - implements HistoricallyNamedCharset -{ - - public String historicalName() { - return "Cp1255"; - } - - public MS1255() { - super("windows-1255", ExtendedCharsets.aliasesFor("windows-1255")); - } - - public boolean contains(Charset cs) { - return ((cs.name().equals("US-ASCII")) - || (cs instanceof MS1255)); - } - - public CharsetDecoder newDecoder() { - return new Decoder(this); - } - - public CharsetEncoder newEncoder() { - return new Encoder(this); - } - - - /** - * These accessors are temporarily supplied while sun.io - * converters co-exist with the sun.nio.cs.{ext} charset coders - * These facilitate sharing of conversion tables between the - * two co-existing implementations. When sun.io converters - * are made extinct these will be unncessary and should be removed - */ - - public String getDecoderSingleByteMappings() { - return MS1255.Decoder.byteToCharTable; - } - - public short[] getEncoderIndex1() { - return MS1255.Encoder.index1; - } - - public String getEncoderIndex2() { - return MS1255.Encoder.index2; - } - - private static class Decoder extends SingleByteDecoder { - public Decoder(Charset cs) { - super(cs, byteToCharTable); - } - - private final static String byteToCharTable = - - "\u20AC\uFFFD\u201A\u0192\u201E\u2026\u2020\u2021" + // 0x80 - 0x87 - "\u02C6\u2030\uFFFD\u2039\uFFFD\uFFFD\uFFFD\uFFFD" + // 0x88 - 0x8F - "\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014" + // 0x90 - 0x97 - "\u02DC\u2122\uFFFD\u203A\uFFFD\uFFFD\uFFFD\uFFFD" + // 0x98 - 0x9F - "\u00A0\u00A1\u00A2\u00A3\u20AA\u00A5\u00A6\u00A7" + // 0xA0 - 0xA7 - "\u00A8\u00A9\u00D7\u00AB\u00AC\u00AD\u00AE\u00AF" + // 0xA8 - 0xAF - "\u00B0\u00B1\u00B2\u00B3\u00B4\u00B5\u00B6\u00B7" + // 0xB0 - 0xB7 - "\u00B8\u00B9\u00F7\u00BB\u00BC\u00BD\u00BE\u00BF" + // 0xB8 - 0xBF - "\u05B0\u05B1\u05B2\u05B3\u05B4\u05B5\u05B6\u05B7" + // 0xC0 - 0xC7 - "\u05B8\u05B9\uFFFD\u05BB\u05BC\u05BD\u05BE\u05BF" + // 0xC8 - 0xCF - "\u05C0\u05C1\u05C2\u05C3\u05F0\u05F1\u05F2\u05F3" + // 0xD0 - 0xD7 - "\u05F4\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD" + // 0xD8 - 0xDF - "\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5\u05D6\u05D7" + // 0xE0 - 0xE7 - "\u05D8\u05D9\u05DA\u05DB\u05DC\u05DD\u05DE\u05DF" + // 0xE8 - 0xEF - "\u05E0\u05E1\u05E2\u05E3\u05E4\u05E5\u05E6\u05E7" + // 0xF0 - 0xF7 - "\u05E8\u05E9\u05EA\uFFFD\uFFFD\u200E\u200F\uFFFD" + // 0xF8 - 0xFF - "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007" + // 0x00 - 0x07 - "\b\t\n\u000B\f\r\u000E\u000F" + // 0x08 - 0x0F - "\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017" + // 0x10 - 0x17 - "\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F" + // 0x18 - 0x1F - "\u0020\u0021\"\u0023\u0024\u0025\u0026\'" + // 0x20 - 0x27 - "\u0028\u0029\u002A\u002B\u002C\u002D\u002E\u002F" + // 0x28 - 0x2F - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + // 0x30 - 0x37 - "\u0038\u0039\u003A\u003B\u003C\u003D\u003E\u003F" + // 0x38 - 0x3F - "\u0040\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + // 0x40 - 0x47 - "\u0048\u0049\u004A\u004B\u004C\u004D\u004E\u004F" + // 0x48 - 0x4F - "\u0050\u0051\u0052\u0053\u0054\u0055\u0056\u0057" + // 0x50 - 0x57 - "\u0058\u0059\u005A\u005B\\\u005D\u005E\u005F" + // 0x58 - 0x5F - "\u0060\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + // 0x60 - 0x67 - "\u0068\u0069\u006A\u006B\u006C\u006D\u006E\u006F" + // 0x68 - 0x6F - "\u0070\u0071\u0072\u0073\u0074\u0075\u0076\u0077" + // 0x70 - 0x77 - "\u0078\u0079\u007A\u007B\u007C\u007D\u007E\u007F"; // 0x78 - 0x7F - } - - private static class Encoder extends SingleByteEncoder { - public Encoder(Charset cs) { - super(cs, index1, index2, 0xFF00, 0x00FF, 8); - } - - private final static String index2 = - - "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007" + - "\b\t\n\u000B\f\r\u000E\u000F" + - "\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017" + - "\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F" + - "\u0020\u0021\"\u0023\u0024\u0025\u0026\'" + - "\u0028\u0029\u002A\u002B\u002C\u002D\u002E\u002F" + - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + - "\u0038\u0039\u003A\u003B\u003C\u003D\u003E\u003F" + - "\u0040\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + - "\u0048\u0049\u004A\u004B\u004C\u004D\u004E\u004F" + - "\u0050\u0051\u0052\u0053\u0054\u0055\u0056\u0057" + - "\u0058\u0059\u005A\u005B\\\u005D\u005E\u005F" + - "\u0060\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + - "\u0068\u0069\u006A\u006B\u006C\u006D\u006E\u006F" + - "\u0070\u0071\u0072\u0073\u0074\u0075\u0076\u0077" + - "\u0078\u0079\u007A\u007B\u007C\u007D\u007E\u007F" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00A0\u00A1\u00A2\u00A3\u0000\u00A5\u00A6\u00A7" + - "\u00A8\u00A9\u0000\u00AB\u00AC\u00AD\u00AE\u00AF" + - "\u00B0\u00B1\u00B2\u00B3\u00B4\u00B5\u00B6\u00B7" + - "\u00B8\u00B9\u0000\u00BB\u00BC\u00BD\u00BE\u00BF" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u00AA" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u00BA" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0083\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0088\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0098\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u00C0\u00C1\u00C2\u00C3\u00C4\u00C5" + - "\u00C6\u00C7\u00C8\u00C9\u0000\u00CB\u00CC\u00CD" + - "\u00CE\u00CF\u00D0\u00D1\u00D2\u00D3\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u00E0\u00E1\u00E2\u00E3\u00E4\u00E5" + - "\u00E6\u00E7\u00E8\u00E9\u00EA\u00EB\u00EC\u00ED" + - "\u00EE\u00EF\u00F0\u00F1\u00F2\u00F3\u00F4\u00F5" + - "\u00F6\u00F7\u00F8\u00F9\u00FA\u0000\u0000\u0000" + - "\u0000\u0000\u00D4\u00D5\u00D6\u00D7\u00D8\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u00FD\u00FE\u0000" + - "\u0000\u0000\u0096\u0097\u0000\u0000\u0000\u0091" + - "\u0092\u0082\u0000\u0093\u0094\u0084\u0000\u0086" + - "\u0087\u0095\u0000\u0000\u0000\u0085\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0089" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u008B\u009B\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u00A4\u0000\u0080\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0099" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000"; - - private final static short index1[] = { - 0, 248, 453, 395, 395, 674, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, - 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, - 919, 1141, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, - 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, - 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, - 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, - 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, - 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, - 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, - 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, - 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, - 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, - 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, - 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, - 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, - 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, - }; - } -} diff --git a/jdk/src/share/classes/sun/nio/cs/ext/MS1256.java b/jdk/src/share/classes/sun/nio/cs/ext/MS1256.java deleted file mode 100644 index 3f6522580a9..00000000000 --- a/jdk/src/share/classes/sun/nio/cs/ext/MS1256.java +++ /dev/null @@ -1,334 +0,0 @@ - -/* - * Copyright 2002-2004 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. - */ - -package sun.nio.cs.ext; - -import java.nio.ByteBuffer; -import java.nio.CharBuffer; -import java.nio.charset.Charset; -import java.nio.charset.CharsetDecoder; -import java.nio.charset.CharsetEncoder; -import java.nio.charset.CharacterCodingException; -import java.nio.charset.MalformedInputException; -import java.nio.charset.UnmappableCharacterException; -import sun.nio.cs.StandardCharsets; -import sun.nio.cs.SingleByteDecoder; -import sun.nio.cs.SingleByteEncoder; -import sun.nio.cs.HistoricallyNamedCharset; - -public class MS1256 - extends Charset - implements HistoricallyNamedCharset -{ - - public String historicalName() { - return "Cp1256"; - } - - public MS1256() { - super("windows-1256", ExtendedCharsets.aliasesFor("windows-1256")); - } - - public boolean contains(Charset cs) { - return ((cs.name().equals("US-ASCII")) - || (cs instanceof MS1256)); - } - - public CharsetDecoder newDecoder() { - return new Decoder(this); - } - - public CharsetEncoder newEncoder() { - return new Encoder(this); - } - - - /** - * These accessors are temporarily supplied while sun.io - * converters co-exist with the sun.nio.cs.{ext} charset coders - * These facilitate sharing of conversion tables between the - * two co-existing implementations. When sun.io converters - * are made extinct these will be unncessary and should be removed - */ - - public String getDecoderSingleByteMappings() { - return MS1256.Decoder.byteToCharTable; - } - - public short[] getEncoderIndex1() { - return MS1256.Encoder.index1; - } - - public String getEncoderIndex2() { - return MS1256.Encoder.index2; - } - - private static class Decoder extends SingleByteDecoder { - public Decoder(Charset cs) { - super(cs, byteToCharTable); - } - - private final static String byteToCharTable = - - "\u20AC\u067E\u201A\u0192\u201E\u2026\u2020\u2021" + // 0x80 - 0x87 - "\u02C6\u2030\u0679\u2039\u0152\u0686\u0698\u0688" + // 0x88 - 0x8F - "\u06AF\u2018\u2019\u201C\u201D\u2022\u2013\u2014" + // 0x90 - 0x97 - "\u06A9\u2122\u0691\u203A\u0153\u200C\u200D\u06BA" + // 0x98 - 0x9F - "\u00A0\u060C\u00A2\u00A3\u00A4\u00A5\u00A6\u00A7" + // 0xA0 - 0xA7 - "\u00A8\u00A9\u06BE\u00AB\u00AC\u00AD\u00AE\u00AF" + // 0xA8 - 0xAF - "\u00B0\u00B1\u00B2\u00B3\u00B4\u00B5\u00B6\u00B7" + // 0xB0 - 0xB7 - "\u00B8\u00B9\u061B\u00BB\u00BC\u00BD\u00BE\u061F" + // 0xB8 - 0xBF - "\u06C1\u0621\u0622\u0623\u0624\u0625\u0626\u0627" + // 0xC0 - 0xC7 - "\u0628\u0629\u062A\u062B\u062C\u062D\u062E\u062F" + // 0xC8 - 0xCF - "\u0630\u0631\u0632\u0633\u0634\u0635\u0636\u00D7" + // 0xD0 - 0xD7 - "\u0637\u0638\u0639\u063A\u0640\u0641\u0642\u0643" + // 0xD8 - 0xDF - "\u00E0\u0644\u00E2\u0645\u0646\u0647\u0648\u00E7" + // 0xE0 - 0xE7 - "\u00E8\u00E9\u00EA\u00EB\u0649\u064A\u00EE\u00EF" + // 0xE8 - 0xEF - "\u064B\u064C\u064D\u064E\u00F4\u064F\u0650\u00F7" + // 0xF0 - 0xF7 - "\u0651\u00F9\u0652\u00FB\u00FC\u200E\u200F\u06D2" + // 0xF8 - 0xFF - "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007" + // 0x00 - 0x07 - "\b\t\n\u000B\f\r\u000E\u000F" + // 0x08 - 0x0F - "\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017" + // 0x10 - 0x17 - "\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F" + // 0x18 - 0x1F - "\u0020\u0021\"\u0023\u0024\u0025\u0026\'" + // 0x20 - 0x27 - "\u0028\u0029\u002A\u002B\u002C\u002D\u002E\u002F" + // 0x28 - 0x2F - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + // 0x30 - 0x37 - "\u0038\u0039\u003A\u003B\u003C\u003D\u003E\u003F" + // 0x38 - 0x3F - "\u0040\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + // 0x40 - 0x47 - "\u0048\u0049\u004A\u004B\u004C\u004D\u004E\u004F" + // 0x48 - 0x4F - "\u0050\u0051\u0052\u0053\u0054\u0055\u0056\u0057" + // 0x50 - 0x57 - "\u0058\u0059\u005A\u005B\\\u005D\u005E\u005F" + // 0x58 - 0x5F - "\u0060\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + // 0x60 - 0x67 - "\u0068\u0069\u006A\u006B\u006C\u006D\u006E\u006F" + // 0x68 - 0x6F - "\u0070\u0071\u0072\u0073\u0074\u0075\u0076\u0077" + // 0x70 - 0x77 - "\u0078\u0079\u007A\u007B\u007C\u007D\u007E\u007F"; // 0x78 - 0x7F - } - - private static class Encoder extends SingleByteEncoder { - public Encoder(Charset cs) { - super(cs, index1, index2, 0xFF00, 0x00FF, 8); - } - - private final static String index2 = - "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007" + - "\b\t\n\u000B\f\r\u000E\u000F" + - "\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017" + - "\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F" + - "\u0020\u0021\"\u0023\u0024\u0025\u0026\'" + - "\u0028\u0029\u002A\u002B\u002C\u002D\u002E\u002F" + - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + - "\u0038\u0039\u003A\u003B\u003C\u003D\u003E\u003F" + - "\u0040\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + - "\u0048\u0049\u004A\u004B\u004C\u004D\u004E\u004F" + - "\u0050\u0051\u0052\u0053\u0054\u0055\u0056\u0057" + - "\u0058\u0059\u005A\u005B\\\u005D\u005E\u005F" + - "\u0060\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + - "\u0068\u0069\u006A\u006B\u006C\u006D\u006E\u006F" + - "\u0070\u0071\u0072\u0073\u0074\u0075\u0076\u0077" + - "\u0078\u0079\u007A\u007B\u007C\u007D\u007E\u007F" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00A0\u0000\u00A2\u00A3\u00A4\u00A5\u00A6\u00A7" + - "\u00A8\u00A9\u0000\u00AB\u00AC\u00AD\u00AE\u00AF" + - "\u00B0\u00B1\u00B2\u00B3\u00B4\u00B5\u00B6\u00B7" + - "\u00B8\u00B9\u0000\u00BB\u00BC\u00BD\u00BE\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u00D7" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00E0\u0000\u00E2\u0000\u0000\u0000\u0000\u00E7" + - "\u00E8\u00E9\u00EA\u00EB\u0000\u0000\u00EE\u00EF" + - "\u0000\u0000\u0000\u0000\u00F4\u0000\u0000\u00F7" + - "\u0000\u00F9\u0000\u00FB\u00FC\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u008C" + - "\u009C\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0083" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0088\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u00A1\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u00BA\u0000\u0000\u0000\u00BF\u0000\u00C1" + - "\u00C2\u00C3\u00C4\u00C5\u00C6\u00C7\u00C8\u00C9" + - "\u00CA\u00CB\u00CC\u00CD\u00CE\u00CF\u00D0\u00D1" + - "\u00D2\u00D3\u00D4\u00D5\u00D6\u00D8\u00D9\u00DA" + - "\u00DB\u0000\u0000\u0000\u0000\u0000\u00DC\u00DD" + - "\u00DE\u00DF\u00E1\u00E3\u00E4\u00E5\u00E6\u00EC" + - "\u00ED\u00F0\u00F1\u00F2\u00F3\u00F5\u00F6\u00F8" + - "\u00FA\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u008A" + - "\u0000\u0000\u0000\u0000\u0081\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u008D\u0000\u008F\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u009A" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u008E\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0098" + - "\u0000\u0000\u0000\u0000\u0000\u0090\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u009F\u0000\u0000\u0000\u00AA\u0000\u0000\u00C0" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00FF\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u009D\u009E" + - "\u00FD\u00FE\u0000\u0000\u0000\u0096\u0097\u0000" + - "\u0000\u0000\u0091\u0092\u0082\u0000\u0093\u0094" + - "\u0084\u0000\u0086\u0087\u0095\u0000\u0000\u0000" + - "\u0085\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0089\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u008B\u009B\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0080\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0099\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"; - - private final static short index1[] = { - 0, 253, 458, 400, 400, 400, 702, 400, 400, 400, 400, 400, 400, 400, 400, 400, - 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, - 946, 1168, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, - 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, - 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, - 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, - 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, - 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, - 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, - 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, - 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, - 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, - 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, - 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, - 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, - 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, - }; - } -} diff --git a/jdk/src/share/classes/sun/nio/cs/ext/MS1258.java b/jdk/src/share/classes/sun/nio/cs/ext/MS1258.java deleted file mode 100644 index 6e8d6cca393..00000000000 --- a/jdk/src/share/classes/sun/nio/cs/ext/MS1258.java +++ /dev/null @@ -1,340 +0,0 @@ - -/* - * Copyright 2002-2004 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. - */ - -package sun.nio.cs.ext; - -import java.nio.ByteBuffer; -import java.nio.CharBuffer; -import java.nio.charset.Charset; -import java.nio.charset.CharsetDecoder; -import java.nio.charset.CharsetEncoder; -import java.nio.charset.CharacterCodingException; -import java.nio.charset.MalformedInputException; -import java.nio.charset.UnmappableCharacterException; -import sun.nio.cs.StandardCharsets; -import sun.nio.cs.SingleByteDecoder; -import sun.nio.cs.SingleByteEncoder; -import sun.nio.cs.HistoricallyNamedCharset; - -public class MS1258 - extends Charset - implements HistoricallyNamedCharset -{ - - public String historicalName() { - return "Cp1258"; - } - - public MS1258() { - super("windows-1258", ExtendedCharsets.aliasesFor("windows-1258")); - } - - public boolean contains(Charset cs) { - return ((cs.name().equals("US-ASCII")) - || (cs instanceof MS1258)); - } - - public CharsetDecoder newDecoder() { - return new Decoder(this); - } - - public CharsetEncoder newEncoder() { - return new Encoder(this); - } - - - /** - * These accessors are temporarily supplied while sun.io - * converters co-exist with the sun.nio.cs.{ext} charset coders - * These facilitate sharing of conversion tables between the - * two co-existing implementations. When sun.io converters - * are made extinct these will be unncessary and should be removed - */ - - public String getDecoderSingleByteMappings() { - return MS1258.Decoder.byteToCharTable; - } - - public short[] getEncoderIndex1() { - return MS1258.Encoder.index1; - } - - public String getEncoderIndex2() { - return MS1258.Encoder.index2; - } - - private static class Decoder extends SingleByteDecoder { - public Decoder(Charset cs) { - super(cs, byteToCharTable); - } - - private final static String byteToCharTable = - - "\u20AC\uFFFD\u201A\u0192\u201E\u2026\u2020\u2021" + // 0x80 - 0x87 - "\u02C6\u2030\uFFFD\u2039\u0152\uFFFD\uFFFD\uFFFD" + // 0x88 - 0x8F - "\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014" + // 0x90 - 0x97 - "\u02DC\u2122\uFFFD\u203A\u0153\uFFFD\uFFFD\u0178" + // 0x98 - 0x9F - "\u00A0\u00A1\u00A2\u00A3\u00A4\u00A5\u00A6\u00A7" + // 0xA0 - 0xA7 - "\u00A8\u00A9\u00AA\u00AB\u00AC\u00AD\u00AE\u00AF" + // 0xA8 - 0xAF - "\u00B0\u00B1\u00B2\u00B3\u00B4\u00B5\u00B6\u00B7" + // 0xB0 - 0xB7 - "\u00B8\u00B9\u00BA\u00BB\u00BC\u00BD\u00BE\u00BF" + // 0xB8 - 0xBF - "\u00C0\u00C1\u00C2\u0102\u00C4\u00C5\u00C6\u00C7" + // 0xC0 - 0xC7 - "\u00C8\u00C9\u00CA\u00CB\u0300\u00CD\u00CE\u00CF" + // 0xC8 - 0xCF - "\u0110\u00D1\u0309\u00D3\u00D4\u01A0\u00D6\u00D7" + // 0xD0 - 0xD7 - "\u00D8\u00D9\u00DA\u00DB\u00DC\u01AF\u0303\u00DF" + // 0xD8 - 0xDF - "\u00E0\u00E1\u00E2\u0103\u00E4\u00E5\u00E6\u00E7" + // 0xE0 - 0xE7 - "\u00E8\u00E9\u00EA\u00EB\u0301\u00ED\u00EE\u00EF" + // 0xE8 - 0xEF - "\u0111\u00F1\u0323\u00F3\u00F4\u01A1\u00F6\u00F7" + // 0xF0 - 0xF7 - "\u00F8\u00F9\u00FA\u00FB\u00FC\u01B0\u20AB\u00FF" + // 0xF8 - 0xFF - "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007" + // 0x00 - 0x07 - "\b\t\n\u000B\f\r\u000E\u000F" + // 0x08 - 0x0F - "\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017" + // 0x10 - 0x17 - "\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F" + // 0x18 - 0x1F - "\u0020\u0021\"\u0023\u0024\u0025\u0026\'" + // 0x20 - 0x27 - "\u0028\u0029\u002A\u002B\u002C\u002D\u002E\u002F" + // 0x28 - 0x2F - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + // 0x30 - 0x37 - "\u0038\u0039\u003A\u003B\u003C\u003D\u003E\u003F" + // 0x38 - 0x3F - "\u0040\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + // 0x40 - 0x47 - "\u0048\u0049\u004A\u004B\u004C\u004D\u004E\u004F" + // 0x48 - 0x4F - "\u0050\u0051\u0052\u0053\u0054\u0055\u0056\u0057" + // 0x50 - 0x57 - "\u0058\u0059\u005A\u005B\\\u005D\u005E\u005F" + // 0x58 - 0x5F - "\u0060\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + // 0x60 - 0x67 - "\u0068\u0069\u006A\u006B\u006C\u006D\u006E\u006F" + // 0x68 - 0x6F - "\u0070\u0071\u0072\u0073\u0074\u0075\u0076\u0077" + // 0x70 - 0x77 - "\u0078\u0079\u007A\u007B\u007C\u007D\u007E\u007F"; // 0x78 - 0x7F - } - - private static class Encoder extends SingleByteEncoder { - public Encoder(Charset cs) { - super(cs, index1, index2, 0xFF00, 0x00FF, 8); - } - - private final static String index2 = - - "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007" + - "\b\t\n\u000B\f\r\u000E\u000F" + - "\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017" + - "\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F" + - "\u0020\u0021\"\u0023\u0024\u0025\u0026\'" + - "\u0028\u0029\u002A\u002B\u002C\u002D\u002E\u002F" + - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + - "\u0038\u0039\u003A\u003B\u003C\u003D\u003E\u003F" + - "\u0040\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + - "\u0048\u0049\u004A\u004B\u004C\u004D\u004E\u004F" + - "\u0050\u0051\u0052\u0053\u0054\u0055\u0056\u0057" + - "\u0058\u0059\u005A\u005B\\\u005D\u005E\u005F" + - "\u0060\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + - "\u0068\u0069\u006A\u006B\u006C\u006D\u006E\u006F" + - "\u0070\u0071\u0072\u0073\u0074\u0075\u0076\u0077" + - "\u0078\u0079\u007A\u007B\u007C\u007D\u007E\u007F" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00A0\u00A1\u00A2\u00A3\u00A4\u00A5\u00A6\u00A7" + - "\u00A8\u00A9\u00AA\u00AB\u00AC\u00AD\u00AE\u00AF" + - "\u00B0\u00B1\u00B2\u00B3\u00B4\u00B5\u00B6\u00B7" + - "\u00B8\u00B9\u00BA\u00BB\u00BC\u00BD\u00BE\u00BF" + - "\u00C0\u00C1\u00C2\u0000\u00C4\u00C5\u00C6\u00C7" + - "\u00C8\u00C9\u00CA\u00CB\u0000\u00CD\u00CE\u00CF" + - "\u0000\u00D1\u0000\u00D3\u00D4\u0000\u00D6\u00D7" + - "\u00D8\u00D9\u00DA\u00DB\u00DC\u0000\u0000\u00DF" + - "\u00E0\u00E1\u00E2\u0000\u00E4\u00E5\u00E6\u00E7" + - "\u00E8\u00E9\u00EA\u00EB\u0000\u00ED\u00EE\u00EF" + - "\u0000\u00F1\u0000\u00F3\u00F4\u0000\u00F6\u00F7" + - "\u00F8\u00F9\u00FA\u00FB\u00FC\u0000\u0000\u00FF" + - "\u0000\u0000\u00C3\u00E3\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00D0\u00F0\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u008C\u009C\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u009F\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0083\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00D5\u00F5\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u00DD" + - "\u00FD\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0088\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0098" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u00CC\u00EC\u0000\u00DE\u0000" + - "\u0000\u0000\u0000\u0000\u00D2\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u00F2\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0096\u0097\u0000\u0000\u0000" + - "\u0091\u0092\u0082\u0000\u0093\u0094\u0084\u0000" + - "\u0086\u0087\u0095\u0000\u0000\u0000\u0085\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0089\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u008B\u009B\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u00FE\u0080\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0099\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000"; - - private final static short index1[] = { - 0, 256, 491, 747, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, - 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, - 984, 1206, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, - 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, - 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, - 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, - 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, - 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, - 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, - 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, - 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, - 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, - 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, - 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, - 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, - 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, - }; - } -} diff --git a/jdk/src/share/classes/sun/nio/cs/ext/MS874.java b/jdk/src/share/classes/sun/nio/cs/ext/MS874.java deleted file mode 100644 index 70940698ee8..00000000000 --- a/jdk/src/share/classes/sun/nio/cs/ext/MS874.java +++ /dev/null @@ -1,267 +0,0 @@ - -/* - * Copyright 2003-2004 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. - */ - -/* - */ - -package sun.nio.cs.ext; - -import java.nio.charset.Charset; -import java.nio.charset.CharsetDecoder; -import java.nio.charset.CharsetEncoder; -import sun.nio.cs.SingleByteEncoder; -import sun.nio.cs.SingleByteDecoder; -import sun.nio.cs.HistoricallyNamedCharset; - -public class MS874 extends Charset implements HistoricallyNamedCharset -{ - public MS874() { - super("x-windows-874", ExtendedCharsets.aliasesFor("x-windows-874")); - } - - public String historicalName() { - return "MS874"; - } - - public boolean contains(Charset cs) { - return ((cs.name().equals("US-ASCII")) - || (cs instanceof MS874)); - } - - public CharsetDecoder newDecoder() { - return new Decoder(this); - } - - public CharsetEncoder newEncoder() { - return new Encoder(this); - } - - - /** - * These accessors are temporarily supplied while sun.io - * converters co-exist with the sun.nio.cs.{ext} charset coders - * These facilitate sharing of conversion tables between the - * two co-existing implementations. When sun.io converters - * are made extinct these will be unncessary and should be removed - */ - - public String getDecoderSingleByteMappings() { - return Decoder.byteToCharTable; - - } - - public short[] getEncoderIndex1() { - return Encoder.index1; - - } - public String getEncoderIndex2() { - return Encoder.index2; - - } - - protected static class Decoder extends SingleByteDecoder { - - public Decoder(Charset cs) { - super(cs, byteToCharTable); - } - - private final static String byteToCharTable = - "\u20AC\uFFFD\uFFFD\uFFFD\uFFFD\u2026\uFFFD\uFFFD" + // 0x80 - 0x87 - "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD" + // 0x88 - 0x8F - "\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014" + // 0x90 - 0x97 - "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD" + // 0x98 - 0x9F - "\u00A0\u0E01\u0E02\u0E03\u0E04\u0E05\u0E06\u0E07" + // 0xA0 - 0xA7 - "\u0E08\u0E09\u0E0A\u0E0B\u0E0C\u0E0D\u0E0E\u0E0F" + // 0xA8 - 0xAF - "\u0E10\u0E11\u0E12\u0E13\u0E14\u0E15\u0E16\u0E17" + // 0xB0 - 0xB7 - "\u0E18\u0E19\u0E1A\u0E1B\u0E1C\u0E1D\u0E1E\u0E1F" + // 0xB8 - 0xBF - "\u0E20\u0E21\u0E22\u0E23\u0E24\u0E25\u0E26\u0E27" + // 0xC0 - 0xC7 - "\u0E28\u0E29\u0E2A\u0E2B\u0E2C\u0E2D\u0E2E\u0E2F" + // 0xC8 - 0xCF - "\u0E30\u0E31\u0E32\u0E33\u0E34\u0E35\u0E36\u0E37" + // 0xD0 - 0xD7 - "\u0E38\u0E39\u0E3A\uFFFD\uFFFD\uFFFD\uFFFD\u0E3F" + // 0xD8 - 0xDF - "\u0E40\u0E41\u0E42\u0E43\u0E44\u0E45\u0E46\u0E47" + // 0xE0 - 0xE7 - "\u0E48\u0E49\u0E4A\u0E4B\u0E4C\u0E4D\u0E4E\u0E4F" + // 0xE8 - 0xEF - "\u0E50\u0E51\u0E52\u0E53\u0E54\u0E55\u0E56\u0E57" + // 0xF0 - 0xF7 - "\u0E58\u0E59\u0E5A\u0E5B\uFFFD\uFFFD\uFFFD\uFFFD" + // 0xF8 - 0xFF - "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007" + // 0x00 - 0x07 - "\b\t\n\u000B\f\r\u000E\u000F" + // 0x08 - 0x0F - "\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017" + // 0x10 - 0x17 - "\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F" + // 0x18 - 0x1F - "\u0020\u0021\"\u0023\u0024\u0025\u0026\'" + // 0x20 - 0x27 - "\u0028\u0029\u002A\u002B\u002C\u002D\u002E\u002F" + // 0x28 - 0x2F - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + // 0x30 - 0x37 - "\u0038\u0039\u003A\u003B\u003C\u003D\u003E\u003F" + // 0x38 - 0x3F - "\u0040\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + // 0x40 - 0x47 - "\u0048\u0049\u004A\u004B\u004C\u004D\u004E\u004F" + // 0x48 - 0x4F - "\u0050\u0051\u0052\u0053\u0054\u0055\u0056\u0057" + // 0x50 - 0x57 - "\u0058\u0059\u005A\u005B\\\u005D\u005E\u005F" + // 0x58 - 0x5F - "\u0060\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + // 0x60 - 0x67 - "\u0068\u0069\u006A\u006B\u006C\u006D\u006E\u006F" + // 0x68 - 0x6F - "\u0070\u0071\u0072\u0073\u0074\u0075\u0076\u0077" + // 0x70 - 0x77 - "\u0078\u0079\u007A\u007B\u007C\u007D\u007E\u007F"; // 0x78 - 0x7F - } - - protected static class Encoder extends SingleByteEncoder { - - public Encoder(Charset cs) { - super(cs, index1, index2, 0xFF00, 0x00FF, 8); - } - - private final static String index2 = - "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007" + - "\b\t\n\u000B\f\r\u000E\u000F" + - "\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017" + - "\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F" + - "\u0020\u0021\"\u0023\u0024\u0025\u0026\'" + - "\u0028\u0029\u002A\u002B\u002C\u002D\u002E\u002F" + - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + - "\u0038\u0039\u003A\u003B\u003C\u003D\u003E\u003F" + - "\u0040\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + - "\u0048\u0049\u004A\u004B\u004C\u004D\u004E\u004F" + - "\u0050\u0051\u0052\u0053\u0054\u0055\u0056\u0057" + - "\u0058\u0059\u005A\u005B\\\u005D\u005E\u005F" + - "\u0060\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + - "\u0068\u0069\u006A\u006B\u006C\u006D\u006E\u006F" + - "\u0070\u0071\u0072\u0073\u0074\u0075\u0076\u0077" + - "\u0078\u0079\u007A\u007B\u007C\u007D\u007E\u007F" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00A0\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u00A1\u00A2\u00A3\u00A4\u00A5\u00A6\u00A7" + - "\u00A8\u00A9\u00AA\u00AB\u00AC\u00AD\u00AE\u00AF" + - "\u00B0\u00B1\u00B2\u00B3\u00B4\u00B5\u00B6\u00B7" + - "\u00B8\u00B9\u00BA\u00BB\u00BC\u00BD\u00BE\u00BF" + - "\u00C0\u00C1\u00C2\u00C3\u00C4\u00C5\u00C6\u00C7" + - "\u00C8\u00C9\u00CA\u00CB\u00CC\u00CD\u00CE\u00CF" + - "\u00D0\u00D1\u00D2\u00D3\u00D4\u00D5\u00D6\u00D7" + - "\u00D8\u00D9\u00DA\u0000\u0000\u0000\u0000\u00DF" + - "\u00E0\u00E1\u00E2\u00E3\u00E4\u00E5\u00E6\u00E7" + - "\u00E8\u00E9\u00EA\u00EB\u00EC\u00ED\u00EE\u00EF" + - "\u00F0\u00F1\u00F2\u00F3\u00F4\u00F5\u00F6\u00F7" + - "\u00F8\u00F9\u00FA\u00FB\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0096\u0097\u0000\u0000\u0000\u0091\u0092\u0000" + - "\u0000\u0093\u0094\u0000\u0000\u0000\u0000\u0095" + - "\u0000\u0000\u0000\u0085\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0080\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000"; - - private final static short index1[] = { - 0, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 416, 161, - 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, - 653, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, - 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, - 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, - 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, - 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, - 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, - 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, - 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, - 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, - 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, - 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, - 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, - 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, - 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, - }; - } -} diff --git a/jdk/src/share/classes/sun/nio/cs/ext/MacArabic.java b/jdk/src/share/classes/sun/nio/cs/ext/MacArabic.java deleted file mode 100644 index 7d4d4b7d471..00000000000 --- a/jdk/src/share/classes/sun/nio/cs/ext/MacArabic.java +++ /dev/null @@ -1,279 +0,0 @@ - -/* - * Copyright 2003-2004 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. - */ - -package sun.nio.cs.ext; - - -import java.nio.charset.Charset; -import java.nio.charset.CharsetDecoder; -import java.nio.charset.CharsetEncoder; -import sun.nio.cs.StandardCharsets; -import sun.nio.cs.SingleByteDecoder; -import sun.nio.cs.SingleByteEncoder; -import sun.nio.cs.HistoricallyNamedCharset; - -public class MacArabic - extends Charset - implements HistoricallyNamedCharset -{ - - public MacArabic() { - super("x-MacArabic", ExtendedCharsets.aliasesFor("x-MacArabic")); - } - - public String historicalName() { - return "MacArabic"; - } - - public boolean contains(Charset cs) { - return (cs instanceof MacArabic); - } - - public CharsetDecoder newDecoder() { - return new Decoder(this); - } - - public CharsetEncoder newEncoder() { - return new Encoder(this); - } - - - /** - * These accessors are temporarily supplied while sun.io - * converters co-exist with the sun.nio.cs.{ext} charset coders - * These facilitate sharing of conversion tables between the - * two co-existing implementations. When sun.io converters - * are made extinct these will be unncessary and should be removed - */ - - public String getDecoderSingleByteMappings() { - return Decoder.byteToCharTable; - - } - - public short[] getEncoderIndex1() { - return Encoder.index1; - - } - public String getEncoderIndex2() { - return Encoder.index2; - - } - - private static class Decoder extends SingleByteDecoder { - public Decoder(Charset cs) { - super(cs, byteToCharTable); - } - - private final static String byteToCharTable = - - "\u00C4\u00A0\u00C7\u00C9\u00D1\u00D6\u00DC\u00E1" + // 0x80 - 0x87 - "\u00E0\u00E2\u00E4\u06BA\u00AB\u00E7\u00E9\u00E8" + // 0x88 - 0x8F - "\u00EA\u00EB\u00ED\u2026\u00EE\u00EF\u00F1\u00F3" + // 0x90 - 0x97 - "\u00BB\u00F4\u00F6\u00F7\u00FA\u00F9\u00FB\u00FC" + // 0x98 - 0x9F - "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u066A\uFFFD\uFFFD" + // 0xA0 - 0xA7 - "\uFFFD\uFFFD\uFFFD\uFFFD\u060C\uFFFD\uFFFD\uFFFD" + // 0xA8 - 0xAF - "\u0660\u0661\u0662\u0663\u0664\u0665\u0666\u0667" + // 0xB0 - 0xB7 - "\u0668\u0669\uFFFD\u061B\uFFFD\uFFFD\uFFFD\u061F" + // 0xB8 - 0xBF - "\u066D\u0621\u0622\u0623\u0624\u0625\u0626\u0627" + // 0xC0 - 0xC7 - "\u0628\u0629\u062A\u062B\u062C\u062D\u062E\u062F" + // 0xC8 - 0xCF - "\u0630\u0631\u0632\u0633\u0634\u0635\u0636\u0637" + // 0xD0 - 0xD7 - "\u0638\u0639\u063A\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD" + // 0xD8 - 0xDF - "\u0640\u0641\u0642\u0643\u0644\u0645\u0646\u0647" + // 0xE0 - 0xE7 - "\u0648\u0649\u064A\u064B\u064C\u064D\u064E\u064F" + // 0xE8 - 0xEF - "\u0650\u0651\u0652\u067E\u0679\u0686\u06D5\u06A4" + // 0xF0 - 0xF7 - "\u06AF\u0688\u0691\uFFFD\uFFFD\uFFFD\u0698\u06D2" + // 0xF8 - 0xFF - "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007" + // 0x00 - 0x07 - "\b\t\n\u000B\f\r\u000E\u000F" + // 0x08 - 0x0F - "\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017" + // 0x10 - 0x17 - "\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F" + // 0x18 - 0x1F - "\u0020\u0021\"\u0023\u0024\u0025\u0026\'" + // 0x20 - 0x27 - "\u0028\u0029\u002A\u002B\u002C\u002D\u002E\u002F" + // 0x28 - 0x2F - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + // 0x30 - 0x37 - "\u0038\u0039\u003A\u003B\u003C\u003D\u003E\u003F" + // 0x38 - 0x3F - "\u0040\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + // 0x40 - 0x47 - "\u0048\u0049\u004A\u004B\u004C\u004D\u004E\u004F" + // 0x48 - 0x4F - "\u0050\u0051\u0052\u0053\u0054\u0055\u0056\u0057" + // 0x50 - 0x57 - "\u0058\u0059\u005A\u005B\\\u005D\u005E\u005F" + // 0x58 - 0x5F - "\u0060\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + // 0x60 - 0x67 - "\u0068\u0069\u006A\u006B\u006C\u006D\u006E\u006F" + // 0x68 - 0x6F - "\u0070\u0071\u0072\u0073\u0074\u0075\u0076\u0077" + // 0x70 - 0x77 - "\u0078\u0079\u007A\u007B\u007C\u007D\u007E\u007F"; // 0x78 - 0x7F - - } - - private static class Encoder extends SingleByteEncoder { - public Encoder(Charset cs) { - super(cs, index1, index2, 0xFF00, 0x00FF, 8); - } - - private final static String index2 = - - - "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007" + - "\b\t\n\u000B\f\r\u000E\u000F" + - "\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017" + - "\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F" + - "\u0020\u0021\"\u0023\u0024\u0025\u0026\'" + - "\u0028\u0029\u002A\u002B\u002C\u002D\u002E\u002F" + - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + - "\u0038\u0039\u003A\u003B\u003C\u003D\u003E\u003F" + - "\u0040\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + - "\u0048\u0049\u004A\u004B\u004C\u004D\u004E\u004F" + - "\u0050\u0051\u0052\u0053\u0054\u0055\u0056\u0057" + - "\u0058\u0059\u005A\u005B\\\u005D\u005E\u005F" + - "\u0060\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + - "\u0068\u0069\u006A\u006B\u006C\u006D\u006E\u006F" + - "\u0070\u0071\u0072\u0073\u0074\u0075\u0076\u0077" + - "\u0078\u0079\u007A\u007B\u007C\u007D\u007E\u007F" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0081\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u008C\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0098\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0080\u0000\u0000\u0082" + - "\u0000\u0083\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0084\u0000\u0000\u0000\u0000\u0085\u0000" + - "\u0000\u0000\u0000\u0000\u0086\u0000\u0000\u0000" + - "\u0088\u0087\u0089\u0000\u008A\u0000\u0000\u008D" + - "\u008F\u008E\u0090\u0091\u0000\u0092\u0094\u0095" + - "\u0000\u0096\u0000\u0097\u0099\u0000\u009A\u009B" + - "\u0000\u009D\u009C\u009E\u009F\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u00AC\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u00BB\u0000\u0000\u0000" + - "\u00BF\u0000\u00C1\u00C2\u00C3\u00C4\u00C5\u00C6" + - "\u00C7\u00C8\u00C9\u00CA\u00CB\u00CC\u00CD\u00CE" + - "\u00CF\u00D0\u00D1\u00D2\u00D3\u00D4\u00D5\u00D6" + - "\u00D7\u00D8\u00D9\u00DA\u0000\u0000\u0000\u0000" + - "\u0000\u00E0\u00E1\u00E2\u00E3\u00E4\u00E5\u00E6" + - "\u00E7\u00E8\u00E9\u00EA\u00EB\u00EC\u00ED\u00EE" + - "\u00EF\u00F0\u00F1\u00F2\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u00B0\u00B1\u00B2\u00B3\u00B4\u00B5\u00B6" + - "\u00B7\u00B8\u00B9\u00A5\u0000\u0000\u00C0\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u00F4\u0000\u0000\u0000\u0000\u00F3" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u00F5" + - "\u0000\u00F9\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u00FA\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u00FE\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u00F7\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00F8\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u008B\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u00FF\u0000\u0000\u00F6\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0093\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000"; - - private final static short index1[] = { - 0, 253, 253, 253, 253, 253, 497, 253, 253, 253, 253, 253, 253, 253, 253, 253, - 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, - 715, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, - 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, - 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, - 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, - 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, - 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, - 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, - 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, - 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, - 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, - 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, - 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, - 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, - 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, - - }; - } -} diff --git a/jdk/src/share/classes/sun/nio/cs/ext/MacCentralEurope.java b/jdk/src/share/classes/sun/nio/cs/ext/MacCentralEurope.java deleted file mode 100644 index f3c1510d794..00000000000 --- a/jdk/src/share/classes/sun/nio/cs/ext/MacCentralEurope.java +++ /dev/null @@ -1,346 +0,0 @@ - -/* - * Copyright 2003-2004 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. - */ - -package sun.nio.cs.ext; - - -import java.nio.charset.Charset; -import java.nio.charset.CharsetDecoder; -import java.nio.charset.CharsetEncoder; -import sun.nio.cs.StandardCharsets; -import sun.nio.cs.SingleByteDecoder; -import sun.nio.cs.SingleByteEncoder; -import sun.nio.cs.HistoricallyNamedCharset; - -public class MacCentralEurope - extends Charset - implements HistoricallyNamedCharset -{ - - public MacCentralEurope() { - super("x-MacCentralEurope", ExtendedCharsets.aliasesFor("x-MacCentralEurope")); - } - - public String historicalName() { - return "MacCentralEurope"; - } - - public boolean contains(Charset cs) { - return (cs instanceof MacCentralEurope); - } - - public CharsetDecoder newDecoder() { - return new Decoder(this); - } - - public CharsetEncoder newEncoder() { - return new Encoder(this); - } - - - /** - * These accessors are temporarily supplied while sun.io - * converters co-exist with the sun.nio.cs.{ext} charset coders - * These facilitate sharing of conversion tables between the - * two co-existing implementations. When sun.io converters - * are made extinct these will be unncessary and should be removed - */ - - public String getDecoderSingleByteMappings() { - return Decoder.byteToCharTable; - - } - - public short[] getEncoderIndex1() { - return Encoder.index1; - - } - public String getEncoderIndex2() { - return Encoder.index2; - - } - - private static class Decoder extends SingleByteDecoder { - public Decoder(Charset cs) { - super(cs, byteToCharTable); - } - - private final static String byteToCharTable = - - "\u00C4\u0100\u0101\u00C9\u0104\u00D6\u00DC\u00E1" + // 0x80 - 0x87 - "\u0105\u010C\u00E4\u010D\u0106\u0107\u00E9\u0179" + // 0x88 - 0x8F - "\u017A\u010E\u00ED\u010F\u0112\u0113\u0116\u00F3" + // 0x90 - 0x97 - "\u0117\u00F4\u00F6\u00F5\u00FA\u011A\u011B\u00FC" + // 0x98 - 0x9F - "\u2020\u00B0\u0118\u00A3\u00A7\u2022\u00B6\u00DF" + // 0xA0 - 0xA7 - "\u00AE\u00A9\u2122\u0119\u00A8\u2260\u0123\u012E" + // 0xA8 - 0xAF - "\u012F\u012A\u2264\u2265\u012B\u0136\u2202\u2211" + // 0xB0 - 0xB7 - "\u0142\u013B\u013C\u013D\u013E\u0139\u013A\u0145" + // 0xB8 - 0xBF - "\u0146\u0143\u00AC\u221A\u0144\u0147\u2206\u00AB" + // 0xC0 - 0xC7 - "\u00BB\u2026\u00A0\u0148\u0150\u00D5\u0151\u014C" + // 0xC8 - 0xCF - "\u2013\u2014\u201C\u201D\u2018\u2019\u00F7\u25CA" + // 0xD0 - 0xD7 - "\u014D\u0154\u0155\u0158\u2039\u203A\u0159\u0156" + // 0xD8 - 0xDF - "\u0157\u0160\u201A\u201E\u0161\u015A\u015B\u00C1" + // 0xE0 - 0xE7 - "\u0164\u0165\u00CD\u017D\u017E\u016A\u00D3\u00D4" + // 0xE8 - 0xEF - "\u016B\u016E\u00DA\u016F\u0170\u0171\u0172\u0173" + // 0xF0 - 0xF7 - "\u00DD\u00FD\u0137\u017B\u0141\u017C\u0122\u02C7" + // 0xF8 - 0xFF - "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007" + // 0x00 - 0x07 - "\b\t\n\u000B\f\r\u000E\u000F" + // 0x08 - 0x0F - "\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017" + // 0x10 - 0x17 - "\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F" + // 0x18 - 0x1F - "\u0020\u0021\"\u0023\u0024\u0025\u0026\'" + // 0x20 - 0x27 - "\u0028\u0029\u002A\u002B\u002C\u002D\u002E\u002F" + // 0x28 - 0x2F - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + // 0x30 - 0x37 - "\u0038\u0039\u003A\u003B\u003C\u003D\u003E\u003F" + // 0x38 - 0x3F - "\u0040\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + // 0x40 - 0x47 - "\u0048\u0049\u004A\u004B\u004C\u004D\u004E\u004F" + // 0x48 - 0x4F - "\u0050\u0051\u0052\u0053\u0054\u0055\u0056\u0057" + // 0x50 - 0x57 - "\u0058\u0059\u005A\u005B\\\u005D\u005E\u005F" + // 0x58 - 0x5F - "\u0060\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + // 0x60 - 0x67 - "\u0068\u0069\u006A\u006B\u006C\u006D\u006E\u006F" + // 0x68 - 0x6F - "\u0070\u0071\u0072\u0073\u0074\u0075\u0076\u0077" + // 0x70 - 0x77 - "\u0078\u0079\u007A\u007B\u007C\u007D\u007E\u007F"; // 0x78 - 0x7F - - } - - private static class Encoder extends SingleByteEncoder { - public Encoder(Charset cs) { - super(cs, index1, index2, 0xFF00, 0x00FF, 8); - } - - private final static String index2 = - - - "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007" + - "\b\t\n\u000B\f\r\u000E\u000F" + - "\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017" + - "\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F" + - "\u0020\u0021\"\u0023\u0024\u0025\u0026\'" + - "\u0028\u0029\u002A\u002B\u002C\u002D\u002E\u002F" + - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + - "\u0038\u0039\u003A\u003B\u003C\u003D\u003E\u003F" + - "\u0040\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + - "\u0048\u0049\u004A\u004B\u004C\u004D\u004E\u004F" + - "\u0050\u0051\u0052\u0053\u0054\u0055\u0056\u0057" + - "\u0058\u0059\u005A\u005B\\\u005D\u005E\u005F" + - "\u0060\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + - "\u0068\u0069\u006A\u006B\u006C\u006D\u006E\u006F" + - "\u0070\u0071\u0072\u0073\u0074\u0075\u0076\u0077" + - "\u0078\u0079\u007A\u007B\u007C\u007D\u007E\u007F" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00CA\u0000\u0000\u00A3\u0000\u0000\u0000\u00A4" + - "\u00AC\u00A9\u0000\u00C7\u00C2\u0000\u00A8\u0000" + - "\u00A1\u0000\u0000\u0000\u0000\u0000\u00A6\u0000" + - "\u0000\u0000\u0000\u00C8\u0000\u0000\u0000\u0000" + - "\u0000\u00E7\u0000\u0000\u0080\u0000\u0000\u0000" + - "\u0000\u0083\u0000\u0000\u0000\u00EA\u0000\u0000" + - "\u0000\u0000\u0000\u00EE\u00EF\u00CD\u0085\u0000" + - "\u0000\u0000\u00F2\u0000\u0086\u00F8\u0000\u00A7" + - "\u0000\u0087\u0000\u0000\u008A\u0000\u0000\u0000" + - "\u0000\u008E\u0000\u0000\u0000\u0092\u0000\u0000" + - "\u0000\u0000\u0000\u0097\u0099\u009B\u009A\u00D6" + - "\u0000\u0000\u009C\u0000\u009F\u00F9\u0000\u0000" + - "\u0081\u0082\u0000\u0000\u0084\u0088\u008C\u008D" + - "\u0000\u0000\u0000\u0000\u0089\u008B\u0091\u0093" + - "\u0000\u0000\u0094\u0095\u0000\u0000\u0096\u0098" + - "\u00A2\u00AB\u009D\u009E\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u00FE\u00AE\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u00B1\u00B4\u0000\u0000\u00AF\u00B0" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u00B5\u00FA" + - "\u0000\u00BD\u00BE\u00B9\u00BA\u00BB\u00BC\u0000" + - "\u0000\u00FC\u00B8\u00C1\u00C4\u00BF\u00C0\u00C5" + - "\u00CB\u0000\u0000\u0000\u00CF\u00D8\u0000\u0000" + - "\u00CC\u00CE\u0000\u0000\u00D9\u00DA\u00DF\u00E0" + - "\u00DB\u00DE\u00E5\u00E6\u0000\u0000\u0000\u0000" + - "\u00E1\u00E4\u0000\u0000\u00E8\u00E9\u0000\u0000" + - "\u0000\u0000\u00ED\u00F0\u0000\u0000\u00F1\u00F3" + - "\u00F4\u00F5\u00F6\u00F7\u0000\u0000\u0000\u0000" + - "\u0000\u008F\u0090\u00FB\u00FD\u00EB\u00EC\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u00FF" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00D0\u00D1\u0000\u0000\u0000\u00D4\u00D5\u00E2" + - "\u0000\u00D2\u00D3\u00E3\u0000\u00A0\u0000\u00A5" + - "\u0000\u0000\u0000\u00C9\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u00DC\u00DD" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u00AA\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u00B6\u0000\u0000\u0000\u00C6" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u00B7\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u00C3\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u00AD\u0000\u0000\u0000\u00B2\u00B3\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u00D7\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000"; - - private final static short index1[] = { - 0, 256, 440, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 677, 899, 1153, 383, 383, 1255, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - - }; - } -} diff --git a/jdk/src/share/classes/sun/nio/cs/ext/MacCroatian.java b/jdk/src/share/classes/sun/nio/cs/ext/MacCroatian.java deleted file mode 100644 index f3bd5a5bfc0..00000000000 --- a/jdk/src/share/classes/sun/nio/cs/ext/MacCroatian.java +++ /dev/null @@ -1,402 +0,0 @@ - -/* - * Copyright 2003-2004 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. - */ - -package sun.nio.cs.ext; - - -import java.nio.charset.Charset; -import java.nio.charset.CharsetDecoder; -import java.nio.charset.CharsetEncoder; -import sun.nio.cs.StandardCharsets; -import sun.nio.cs.SingleByteDecoder; -import sun.nio.cs.SingleByteEncoder; -import sun.nio.cs.HistoricallyNamedCharset; - -public class MacCroatian - extends Charset - implements HistoricallyNamedCharset -{ - - public MacCroatian() { - super("x-MacCroatian", ExtendedCharsets.aliasesFor("x-MacCroatian")); - } - - public String historicalName() { - return "MacCroatian"; - } - - public boolean contains(Charset cs) { - return (cs instanceof MacCroatian); - } - - public CharsetDecoder newDecoder() { - return new Decoder(this); - } - - public CharsetEncoder newEncoder() { - return new Encoder(this); - } - - - /** - * These accessors are temporarily supplied while sun.io - * converters co-exist with the sun.nio.cs.{ext} charset coders - * These facilitate sharing of conversion tables between the - * two co-existing implementations. When sun.io converters - * are made extinct these will be unncessary and should be removed - */ - - public String getDecoderSingleByteMappings() { - return Decoder.byteToCharTable; - - } - - public short[] getEncoderIndex1() { - return Encoder.index1; - - } - public String getEncoderIndex2() { - return Encoder.index2; - - } - - private static class Decoder extends SingleByteDecoder { - public Decoder(Charset cs) { - super(cs, byteToCharTable); - } - - private final static String byteToCharTable = - - "\u00C4\u00C5\u00C7\u00C9\u00D1\u00D6\u00DC\u00E1" + // 0x80 - 0x87 - "\u00E0\u00E2\u00E4\u00E3\u00E5\u00E7\u00E9\u00E8" + // 0x88 - 0x8F - "\u00EA\u00EB\u00ED\u00EC\u00EE\u00EF\u00F1\u00F3" + // 0x90 - 0x97 - "\u00F2\u00F4\u00F6\u00F5\u00FA\u00F9\u00FB\u00FC" + // 0x98 - 0x9F - "\u2020\u00B0\u00A2\u00A3\u00A7\u2022\u00B6\u00DF" + // 0xA0 - 0xA7 - "\u00AE\u0160\u2122\u00B4\u00A8\u2260\u017D\u00D8" + // 0xA8 - 0xAF - "\u221E\u00B1\u2264\u2265\u2206\u00B5\u2202\u2211" + // 0xB0 - 0xB7 - "\u220F\u0161\u222B\u00AA\u00BA\u2126\u017E\u00F8" + // 0xB8 - 0xBF - "\u00BF\u00A1\u00AC\u221A\u0192\u2248\u0106\u00AB" + // 0xC0 - 0xC7 - "\u010C\u2026\u00A0\u00C0\u00C3\u00D5\u0152\u0153" + // 0xC8 - 0xCF - "\u0110\u2014\u201C\u201D\u2018\u2019\u00F7\u25CA" + // 0xD0 - 0xD7 - "\uF8FF\u00A9\u2044\u00A4\u2039\u203A\u00C6\u00BB" + // 0xD8 - 0xDF - "\u2013\u00B7\u201A\u201E\u2030\u00C2\u0107\u00C1" + // 0xE0 - 0xE7 - "\u010D\u00C8\u00CD\u00CE\u00CF\u00CC\u00D3\u00D4" + // 0xE8 - 0xEF - "\u0111\u00D2\u00DA\u00DB\u00D9\u0131\u02C6\u02DC" + // 0xF0 - 0xF7 - "\u00AF\u03C0\u00CB\u02DA\u00B8\u00CA\u00E6\u02C7" + // 0xF8 - 0xFF - "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007" + // 0x00 - 0x07 - "\b\t\n\u000B\f\r\u000E\u000F" + // 0x08 - 0x0F - "\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017" + // 0x10 - 0x17 - "\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F" + // 0x18 - 0x1F - "\u0020\u0021\"\u0023\u0024\u0025\u0026\'" + // 0x20 - 0x27 - "\u0028\u0029\u002A\u002B\u002C\u002D\u002E\u002F" + // 0x28 - 0x2F - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + // 0x30 - 0x37 - "\u0038\u0039\u003A\u003B\u003C\u003D\u003E\u003F" + // 0x38 - 0x3F - "\u0040\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + // 0x40 - 0x47 - "\u0048\u0049\u004A\u004B\u004C\u004D\u004E\u004F" + // 0x48 - 0x4F - "\u0050\u0051\u0052\u0053\u0054\u0055\u0056\u0057" + // 0x50 - 0x57 - "\u0058\u0059\u005A\u005B\\\u005D\u005E\u005F" + // 0x58 - 0x5F - "\u0060\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + // 0x60 - 0x67 - "\u0068\u0069\u006A\u006B\u006C\u006D\u006E\u006F" + // 0x68 - 0x6F - "\u0070\u0071\u0072\u0073\u0074\u0075\u0076\u0077" + // 0x70 - 0x77 - "\u0078\u0079\u007A\u007B\u007C\u007D\u007E\u007F"; // 0x78 - 0x7F - - } - - private static class Encoder extends SingleByteEncoder { - public Encoder(Charset cs) { - super(cs, index1, index2, 0xFF00, 0x00FF, 8); - } - - private final static String index2 = - - - "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007" + - "\b\t\n\u000B\f\r\u000E\u000F" + - "\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017" + - "\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F" + - "\u0020\u0021\"\u0023\u0024\u0025\u0026\'" + - "\u0028\u0029\u002A\u002B\u002C\u002D\u002E\u002F" + - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + - "\u0038\u0039\u003A\u003B\u003C\u003D\u003E\u003F" + - "\u0040\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + - "\u0048\u0049\u004A\u004B\u004C\u004D\u004E\u004F" + - "\u0050\u0051\u0052\u0053\u0054\u0055\u0056\u0057" + - "\u0058\u0059\u005A\u005B\\\u005D\u005E\u005F" + - "\u0060\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + - "\u0068\u0069\u006A\u006B\u006C\u006D\u006E\u006F" + - "\u0070\u0071\u0072\u0073\u0074\u0075\u0076\u0077" + - "\u0078\u0079\u007A\u007B\u007C\u007D\u007E\u007F" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00CA\u00C1\u00A2\u00A3\u00DB\u0000\u0000\u00A4" + - "\u00AC\u00D9\u00BB\u00C7\u00C2\u0000\u00A8\u00F8" + - "\u00A1\u00B1\u0000\u0000\u00AB\u00B5\u00A6\u00E1" + - "\u00FC\u0000\u00BC\u00DF\u0000\u0000\u0000\u00C0" + - "\u00CB\u00E7\u00E5\u00CC\u0080\u0081\u00DE\u0082" + - "\u00E9\u0083\u00FD\u00FA\u00ED\u00EA\u00EB\u00EC" + - "\u0000\u0084\u00F1\u00EE\u00EF\u00CD\u0085\u0000" + - "\u00AF\u00F4\u00F2\u00F3\u0086\u0000\u0000\u00A7" + - "\u0088\u0087\u0089\u008B\u008A\u008C\u00FE\u008D" + - "\u008F\u008E\u0090\u0091\u0093\u0092\u0094\u0095" + - "\u0000\u0096\u0098\u0097\u0099\u009B\u009A\u00D6" + - "\u00BF\u009D\u009C\u009E\u009F\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u00C6\u00E6\u0000\u0000\u0000" + - "\u0000\u00C8\u00E8\u0000\u0000\u00D0\u00F0\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u00F5\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u00CE" + - "\u00CF\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u00A9\u00B9\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u00AE\u00BE\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u00C4" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00F6\u00FF\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u00FB\u0000\u00F7\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u00F9" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u00E0" + - "\u00D1\u0000\u0000\u0000\u00D4\u00D5\u00E2\u0000" + - "\u00D2\u00D3\u00E3\u0000\u00A0\u0000\u00A5\u0000" + - "\u0000\u0000\u00C9\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u00E4\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u00DC\u00DD\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00DA\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u00AA\u0000\u0000\u0000" + - "\u00BD\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u00B6\u0000\u0000\u0000\u00B4\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u00B8" + - "\u0000\u00B7\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u00C3\u0000\u0000\u0000\u00B0\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u00BA\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00C5\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00AD\u0000\u0000\u0000\u00B2\u00B3\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00D7\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00D8"; - - private final static short index1[] = { - 0, 253, 458, 679, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, - 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, - 916, 1138, 1392, 400, 400, 1494, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, - 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, - 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, - 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, - 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, - 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, - 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, - 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, - 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, - 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, - 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, - 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, - 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, - 400, 400, 400, 400, 400, 400, 400, 400, 1697, 400, 400, 400, 400, 400, 400, 400, - - }; - } -} diff --git a/jdk/src/share/classes/sun/nio/cs/ext/MacCyrillic.java b/jdk/src/share/classes/sun/nio/cs/ext/MacCyrillic.java deleted file mode 100644 index 87a5148f598..00000000000 --- a/jdk/src/share/classes/sun/nio/cs/ext/MacCyrillic.java +++ /dev/null @@ -1,361 +0,0 @@ - -/* - * Copyright 2003-2004 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. - */ - -package sun.nio.cs.ext; - - -import java.nio.charset.Charset; -import java.nio.charset.CharsetDecoder; -import java.nio.charset.CharsetEncoder; -import sun.nio.cs.StandardCharsets; -import sun.nio.cs.SingleByteDecoder; -import sun.nio.cs.SingleByteEncoder; -import sun.nio.cs.HistoricallyNamedCharset; - -public class MacCyrillic - extends Charset - implements HistoricallyNamedCharset -{ - - public MacCyrillic() { - super("x-MacCyrillic", ExtendedCharsets.aliasesFor("x-MacCyrillic")); - } - - public String historicalName() { - return "MacCyrillic"; - } - - public boolean contains(Charset cs) { - return (cs instanceof MacCyrillic); - } - - public CharsetDecoder newDecoder() { - return new Decoder(this); - } - - public CharsetEncoder newEncoder() { - return new Encoder(this); - } - - - /** - * These accessors are temporarily supplied while sun.io - * converters co-exist with the sun.nio.cs.{ext} charset coders - * These facilitate sharing of conversion tables between the - * two co-existing implementations. When sun.io converters - * are made extinct these will be unncessary and should be removed - */ - - public String getDecoderSingleByteMappings() { - return Decoder.byteToCharTable; - - } - - public short[] getEncoderIndex1() { - return Encoder.index1; - - } - public String getEncoderIndex2() { - return Encoder.index2; - - } - - private static class Decoder extends SingleByteDecoder { - public Decoder(Charset cs) { - super(cs, byteToCharTable); - } - - private final static String byteToCharTable = - - "\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417" + // 0x80 - 0x87 - "\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F" + // 0x88 - 0x8F - "\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427" + // 0x90 - 0x97 - "\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F" + // 0x98 - 0x9F - "\u2020\u00B0\u00A2\u00A3\u00A7\u2022\u00B6\u0406" + // 0xA0 - 0xA7 - "\u00AE\u00A9\u2122\u0402\u0452\u2260\u0403\u0453" + // 0xA8 - 0xAF - "\u221E\u00B1\u2264\u2265\u0456\u00B5\u2202\u0408" + // 0xB0 - 0xB7 - "\u0404\u0454\u0407\u0457\u0409\u0459\u040A\u045A" + // 0xB8 - 0xBF - "\u0458\u0405\u00AC\u221A\u0192\u2248\u2206\u00AB" + // 0xC0 - 0xC7 - "\u00BB\u2026\u00A0\u040B\u045B\u040C\u045C\u0455" + // 0xC8 - 0xCF - "\u2013\u2014\u201C\u201D\u2018\u2019\u00F7\u201E" + // 0xD0 - 0xD7 - "\u040E\u045E\u040F\u045F\u2116\u0401\u0451\u044F" + // 0xD8 - 0xDF - "\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437" + // 0xE0 - 0xE7 - "\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F" + // 0xE8 - 0xEF - "\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447" + // 0xF0 - 0xF7 - "\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u00A4" + // 0xF8 - 0xFF - "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007" + // 0x00 - 0x07 - "\b\t\n\u000B\f\r\u000E\u000F" + // 0x08 - 0x0F - "\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017" + // 0x10 - 0x17 - "\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F" + // 0x18 - 0x1F - "\u0020\u0021\"\u0023\u0024\u0025\u0026\'" + // 0x20 - 0x27 - "\u0028\u0029\u002A\u002B\u002C\u002D\u002E\u002F" + // 0x28 - 0x2F - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + // 0x30 - 0x37 - "\u0038\u0039\u003A\u003B\u003C\u003D\u003E\u003F" + // 0x38 - 0x3F - "\u0040\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + // 0x40 - 0x47 - "\u0048\u0049\u004A\u004B\u004C\u004D\u004E\u004F" + // 0x48 - 0x4F - "\u0050\u0051\u0052\u0053\u0054\u0055\u0056\u0057" + // 0x50 - 0x57 - "\u0058\u0059\u005A\u005B\\\u005D\u005E\u005F" + // 0x58 - 0x5F - "\u0060\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + // 0x60 - 0x67 - "\u0068\u0069\u006A\u006B\u006C\u006D\u006E\u006F" + // 0x68 - 0x6F - "\u0070\u0071\u0072\u0073\u0074\u0075\u0076\u0077" + // 0x70 - 0x77 - "\u0078\u0079\u007A\u007B\u007C\u007D\u007E\u007F"; // 0x78 - 0x7F - - } - - private static class Encoder extends SingleByteEncoder { - public Encoder(Charset cs) { - super(cs, index1, index2, 0xFF00, 0x00FF, 8); - } - - private final static String index2 = - - - "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007" + - "\b\t\n\u000B\f\r\u000E\u000F" + - "\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017" + - "\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F" + - "\u0020\u0021\"\u0023\u0024\u0025\u0026\'" + - "\u0028\u0029\u002A\u002B\u002C\u002D\u002E\u002F" + - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + - "\u0038\u0039\u003A\u003B\u003C\u003D\u003E\u003F" + - "\u0040\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + - "\u0048\u0049\u004A\u004B\u004C\u004D\u004E\u004F" + - "\u0050\u0051\u0052\u0053\u0054\u0055\u0056\u0057" + - "\u0058\u0059\u005A\u005B\\\u005D\u005E\u005F" + - "\u0060\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + - "\u0068\u0069\u006A\u006B\u006C\u006D\u006E\u006F" + - "\u0070\u0071\u0072\u0073\u0074\u0075\u0076\u0077" + - "\u0078\u0079\u007A\u007B\u007C\u007D\u007E\u007F" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00CA\u0000\u00A2\u00A3\u00FF\u0000\u0000\u00A4" + - "\u0000\u00A9\u0000\u00C7\u00C2\u0000\u00A8\u0000" + - "\u00A1\u00B1\u0000\u0000\u0000\u00B5\u00A6\u0000" + - "\u0000\u0000\u0000\u00C8\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u00D6" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u00C4\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u00DD\u00AB\u00AE\u00B8\u00C1" + - "\u00A7\u00BA\u00B7\u00BC\u00BE\u00CB\u00CD\u0000" + - "\u00D8\u00DA\u0080\u0081\u0082\u0083\u0084\u0085" + - "\u0086\u0087\u0088\u0089\u008A\u008B\u008C\u008D" + - "\u008E\u008F\u0090\u0091\u0092\u0093\u0094\u0095" + - "\u0096\u0097\u0098\u0099\u009A\u009B\u009C\u009D" + - "\u009E\u009F\u00E0\u00E1\u00E2\u00E3\u00E4\u00E5" + - "\u00E6\u00E7\u00E8\u00E9\u00EA\u00EB\u00EC\u00ED" + - "\u00EE\u00EF\u00F0\u00F1\u00F2\u00F3\u00F4\u00F5" + - "\u00F6\u00F7\u00F8\u00F9\u00FA\u00FB\u00FC\u00FD" + - "\u00FE\u00DF\u0000\u00DE\u00AC\u00AF\u00B9\u00CF" + - "\u00B4\u00BB\u00C0\u00BD\u00BF\u00CC\u00CE\u0000" + - "\u00D9\u00DB\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u00D0\u00D1\u0000\u0000\u0000\u00D4" + - "\u00D5\u0000\u0000\u00D2\u00D3\u00D7\u0000\u00A0" + - "\u0000\u00A5\u0000\u0000\u0000\u00C9\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u00DC" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u00AA\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u00B6\u0000\u0000\u0000\u00C6\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u00C3\u0000\u0000\u0000\u00B0\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u00C5" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u00AD" + - "\u0000\u0000\u0000\u00B2\u00B3\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000"; - - private final static short index1[] = { - 0, 248, 395, 395, 650, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, - 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, - 887, 1121, 1375, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, - 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, - 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, - 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, - 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, - 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, - 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, - 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, - 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, - 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, - 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, - 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, - 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, - 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, - - }; - } -} diff --git a/jdk/src/share/classes/sun/nio/cs/ext/MacDingbat.java b/jdk/src/share/classes/sun/nio/cs/ext/MacDingbat.java deleted file mode 100644 index f608424254b..00000000000 --- a/jdk/src/share/classes/sun/nio/cs/ext/MacDingbat.java +++ /dev/null @@ -1,316 +0,0 @@ - -/* - * Copyright 2003-2004 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. - */ - -package sun.nio.cs.ext; - - -import java.nio.charset.Charset; -import java.nio.charset.CharsetDecoder; -import java.nio.charset.CharsetEncoder; -import sun.nio.cs.StandardCharsets; -import sun.nio.cs.SingleByteDecoder; -import sun.nio.cs.SingleByteEncoder; -import sun.nio.cs.HistoricallyNamedCharset; - -public class MacDingbat - extends Charset - implements HistoricallyNamedCharset -{ - - public MacDingbat() { - super("x-MacDingbat", ExtendedCharsets.aliasesFor("x-MacDingbat")); - } - - public String historicalName() { - return "MacDingbat"; - } - - public boolean contains(Charset cs) { - return (cs instanceof MacDingbat); - } - - public CharsetDecoder newDecoder() { - return new Decoder(this); - } - - public CharsetEncoder newEncoder() { - return new Encoder(this); - } - - - /** - * These accessors are temporarily supplied while sun.io - * converters co-exist with the sun.nio.cs.{ext} charset coders - * These facilitate sharing of conversion tables between the - * two co-existing implementations. When sun.io converters - * are made extinct these will be unncessary and should be removed - */ - - public String getDecoderSingleByteMappings() { - return Decoder.byteToCharTable; - - } - - public short[] getEncoderIndex1() { - return Encoder.index1; - - } - public String getEncoderIndex2() { - return Encoder.index2; - - } - - private static class Decoder extends SingleByteDecoder { - public Decoder(Charset cs) { - super(cs, byteToCharTable); - } - - private final static String byteToCharTable = - - "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD" + // 0x80 - 0x87 - "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD" + // 0x88 - 0x8F - "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD" + // 0x90 - 0x97 - "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD" + // 0x98 - 0x9F - "\uFFFD\u2761\u2762\u2763\u2764\u2765\u2766\u2767" + // 0xA0 - 0xA7 - "\u2663\u2666\u2665\u2660\u2460\u2461\u2462\u2463" + // 0xA8 - 0xAF - "\u2464\u2465\u2466\u2467\u2468\u2469\u2776\u2777" + // 0xB0 - 0xB7 - "\u2778\u2779\u277A\u277B\u277C\u277D\u277E\u277F" + // 0xB8 - 0xBF - "\u2780\u2781\u2782\u2783\u2784\u2785\u2786\u2787" + // 0xC0 - 0xC7 - "\u2788\u2789\u278A\u278B\u278C\u278D\u278E\u278F" + // 0xC8 - 0xCF - "\u2790\u2791\u2792\u2793\u2794\u2192\u2194\u2195" + // 0xD0 - 0xD7 - "\u2798\u2799\u279A\u279B\u279C\u279D\u279E\u279F" + // 0xD8 - 0xDF - "\u27A0\u27A1\u27A2\u27A3\u27A4\u27A5\u27A6\u27A7" + // 0xE0 - 0xE7 - "\u27A8\u27A9\u27AA\u27AB\u27AC\u27AD\u27AE\u27AF" + // 0xE8 - 0xEF - "\uFFFD\u27B1\u27B2\u27B3\u27B4\u27B5\u27B6\u27B7" + // 0xF0 - 0xF7 - "\u27B8\u27B9\u27BA\u27BB\u27BC\u27BD\u27BE\uFFFD" + // 0xF8 - 0xFF - "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007" + // 0x00 - 0x07 - "\b\t\n\u000B\f\r\u000E\u000F" + // 0x08 - 0x0F - "\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017" + // 0x10 - 0x17 - "\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F" + // 0x18 - 0x1F - "\u0020\u2701\u2702\u2703\u2704\u260E\u2706\u2707" + // 0x20 - 0x27 - "\u2708\u2709\u261B\u261E\u270C\u270D\u270E\u270F" + // 0x28 - 0x2F - "\u2710\u2711\u2712\u2713\u2714\u2715\u2716\u2717" + // 0x30 - 0x37 - "\u2718\u2719\u271A\u271B\u271C\u271D\u271E\u271F" + // 0x38 - 0x3F - "\u2720\u2721\u2722\u2723\u2724\u2725\u2726\u2727" + // 0x40 - 0x47 - "\u2605\u2729\u272A\u272B\u272C\u272D\u272E\u272F" + // 0x48 - 0x4F - "\u2730\u2731\u2732\u2733\u2734\u2735\u2736\u2737" + // 0x50 - 0x57 - "\u2738\u2739\u273A\u273B\u273C\u273D\u273E\u273F" + // 0x58 - 0x5F - "\u2740\u2741\u2742\u2743\u2744\u2745\u2746\u2747" + // 0x60 - 0x67 - "\u2748\u2749\u274A\u274B\u25CF\u274D\u25A0\u274F" + // 0x68 - 0x6F - "\u2750\u2751\u2752\u25B2\u25BC\u25C6\u2756\u25D7" + // 0x70 - 0x77 - "\u2758\u2759\u275A\u275B\u275C\u275D\u275E\u007F"; // 0x78 - 0x7F - - } - - private static class Encoder extends SingleByteEncoder { - public Encoder(Charset cs) { - super(cs, index1, index2, 0xFF00, 0x00FF, 8); - } - - private final static String index2 = - - - "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007" + - "\b\t\n\u000B\f\r\u000E\u000F" + - "\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017" + - "\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F" + - "\u0020\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u007F" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00D5\u0000\u00D6\u00D7\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u00AC\u00AD" + - "\u00AE\u00AF\u00B0\u00B1\u00B2\u00B3\u00B4\u00B5" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u006E\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0073\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0074\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0075\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u006C" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0077" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0048\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0025\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u002A\u0000" + - "\u0000\u002B\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u00AB\u0000\u0000\u00A8\u0000" + - "\u00AA\u00A9\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0021\"\u0023\u0024\u0000" + - "\u0026\'\u0028\u0029\u0000\u0000\u002C\u002D" + - "\u002E\u002F\u0030\u0031\u0032\u0033\u0034\u0035" + - "\u0036\u0037\u0038\u0039\u003A\u003B\u003C\u003D" + - "\u003E\u003F\u0040\u0041\u0042\u0043\u0044\u0045" + - "\u0046\u0047\u0000\u0049\u004A\u004B\u004C\u004D" + - "\u004E\u004F\u0050\u0051\u0052\u0053\u0054\u0055" + - "\u0056\u0057\u0058\u0059\u005A\u005B\\\u005D" + - "\u005E\u005F\u0060\u0061\u0062\u0063\u0064\u0065" + - "\u0066\u0067\u0068\u0069\u006A\u006B\u0000\u006D" + - "\u0000\u006F\u0070\u0071\u0072\u0000\u0000\u0000" + - "\u0076\u0000\u0078\u0079\u007A\u007B\u007C\u007D" + - "\u007E\u0000\u0000\u00A1\u00A2\u00A3\u00A4\u00A5" + - "\u00A6\u00A7\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00B6\u00B7\u00B8\u00B9\u00BA\u00BB\u00BC\u00BD" + - "\u00BE\u00BF\u00C0\u00C1\u00C2\u00C3\u00C4\u00C5" + - "\u00C6\u00C7\u00C8\u00C9\u00CA\u00CB\u00CC\u00CD" + - "\u00CE\u00CF\u00D0\u00D1\u00D2\u00D3\u00D4\u0000" + - "\u0000\u0000\u00D8\u00D9\u00DA\u00DB\u00DC\u00DD" + - "\u00DE\u00DF\u00E0\u00E1\u00E2\u00E3\u00E4\u00E5" + - "\u00E6\u00E7\u00E8\u00E9\u00EA\u00EB\u00EC\u00ED" + - "\u00EE\u00EF\u0000\u00F1\u00F2\u00F3\u00F4\u00F5" + - "\u00F6\u00F7\u00F8\u00F9\u00FA\u00FB\u00FC\u00FD" + - "\u00FE\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000"; - - private final static short index1[] = { - 0, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 238, 128, 128, 398, 504, 755, 1010, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - - }; - } -} diff --git a/jdk/src/share/classes/sun/nio/cs/ext/MacGreek.java b/jdk/src/share/classes/sun/nio/cs/ext/MacGreek.java deleted file mode 100644 index ebf93a6387b..00000000000 --- a/jdk/src/share/classes/sun/nio/cs/ext/MacGreek.java +++ /dev/null @@ -1,327 +0,0 @@ - -/* - * Copyright 2003-2004 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. - */ - -package sun.nio.cs.ext; - - -import java.nio.charset.Charset; -import java.nio.charset.CharsetDecoder; -import java.nio.charset.CharsetEncoder; -import sun.nio.cs.StandardCharsets; -import sun.nio.cs.SingleByteDecoder; -import sun.nio.cs.SingleByteEncoder; -import sun.nio.cs.HistoricallyNamedCharset; - -public class MacGreek - extends Charset - implements HistoricallyNamedCharset -{ - - public MacGreek() { - super("x-MacGreek", ExtendedCharsets.aliasesFor("x-MacGreek")); - } - - public String historicalName() { - return "MacGreek"; - } - - public boolean contains(Charset cs) { - return (cs instanceof MacGreek); - } - - public CharsetDecoder newDecoder() { - return new Decoder(this); - } - - public CharsetEncoder newEncoder() { - return new Encoder(this); - } - - - /** - * These accessors are temporarily supplied while sun.io - * converters co-exist with the sun.nio.cs.{ext} charset coders - * These facilitate sharing of conversion tables between the - * two co-existing implementations. When sun.io converters - * are made extinct these will be unncessary and should be removed - */ - - public String getDecoderSingleByteMappings() { - return Decoder.byteToCharTable; - - } - - public short[] getEncoderIndex1() { - return Encoder.index1; - - } - public String getEncoderIndex2() { - return Encoder.index2; - - } - - private static class Decoder extends SingleByteDecoder { - public Decoder(Charset cs) { - super(cs, byteToCharTable); - } - - private final static String byteToCharTable = - - "\u00C4\u00B9\u00B2\u00C9\u00B3\u00D6\u00DC\u0385" + // 0x80 - 0x87 - "\u00E0\u00E2\u00E4\u0384\u00A8\u00E7\u00E9\u00E8" + // 0x88 - 0x8F - "\u00EA\u00EB\u00A3\u2122\u00EE\u00EF\u2022\u00BD" + // 0x90 - 0x97 - "\u2030\u00F4\u00F6\u00A6\u00AD\u00F9\u00FB\u00FC" + // 0x98 - 0x9F - "\u2020\u0393\u0394\u0398\u039B\u039E\u03A0\u00DF" + // 0xA0 - 0xA7 - "\u00AE\u00A9\u03A3\u03AA\u00A7\u2260\u00B0\u0387" + // 0xA8 - 0xAF - "\u0391\u00B1\u2264\u2265\u00A5\u0392\u0395\u0396" + // 0xB0 - 0xB7 - "\u0397\u0399\u039A\u039C\u03A6\u03AB\u03A8\u03A9" + // 0xB8 - 0xBF - "\u03AC\u039D\u00AC\u039F\u03A1\u2248\u03A4\u00AB" + // 0xC0 - 0xC7 - "\u00BB\u2026\u00A0\u03A5\u03A7\u0386\u0388\u0153" + // 0xC8 - 0xCF - "\u2013\u2015\u201C\u201D\u2018\u2019\u00F7\u0389" + // 0xD0 - 0xD7 - "\u038A\u038C\u038E\u03AD\u03AE\u03AF\u03CC\u038F" + // 0xD8 - 0xDF - "\u03CD\u03B1\u03B2\u03C8\u03B4\u03B5\u03C6\u03B3" + // 0xE0 - 0xE7 - "\u03B7\u03B9\u03BE\u03BA\u03BB\u03BC\u03BD\u03BF" + // 0xE8 - 0xEF - "\u03C0\u03CE\u03C1\u03C3\u03C4\u03B8\u03C9\u03C2" + // 0xF0 - 0xF7 - "\u03C7\u03C5\u03B6\u03CA\u03CB\u0390\u03B0\uFFFD" + // 0xF8 - 0xFF - "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007" + // 0x00 - 0x07 - "\b\t\n\u000B\f\r\u000E\u000F" + // 0x08 - 0x0F - "\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017" + // 0x10 - 0x17 - "\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F" + // 0x18 - 0x1F - "\u0020\u0021\"\u0023\u0024\u0025\u0026\'" + // 0x20 - 0x27 - "\u0028\u0029\u002A\u002B\u002C\u002D\u002E\u002F" + // 0x28 - 0x2F - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + // 0x30 - 0x37 - "\u0038\u0039\u003A\u003B\u003C\u003D\u003E\u003F" + // 0x38 - 0x3F - "\u0040\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + // 0x40 - 0x47 - "\u0048\u0049\u004A\u004B\u004C\u004D\u004E\u004F" + // 0x48 - 0x4F - "\u0050\u0051\u0052\u0053\u0054\u0055\u0056\u0057" + // 0x50 - 0x57 - "\u0058\u0059\u005A\u005B\\\u005D\u005E\u005F" + // 0x58 - 0x5F - "\u0060\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + // 0x60 - 0x67 - "\u0068\u0069\u006A\u006B\u006C\u006D\u006E\u006F" + // 0x68 - 0x6F - "\u0070\u0071\u0072\u0073\u0074\u0075\u0076\u0077" + // 0x70 - 0x77 - "\u0078\u0079\u007A\u007B\u007C\u007D\u007E\u007F"; // 0x78 - 0x7F - - } - - private static class Encoder extends SingleByteEncoder { - public Encoder(Charset cs) { - super(cs, index1, index2, 0xFF00, 0x00FF, 8); - } - - private final static String index2 = - - - "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007" + - "\b\t\n\u000B\f\r\u000E\u000F" + - "\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017" + - "\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F" + - "\u0020\u0021\"\u0023\u0024\u0025\u0026\'" + - "\u0028\u0029\u002A\u002B\u002C\u002D\u002E\u002F" + - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + - "\u0038\u0039\u003A\u003B\u003C\u003D\u003E\u003F" + - "\u0040\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + - "\u0048\u0049\u004A\u004B\u004C\u004D\u004E\u004F" + - "\u0050\u0051\u0052\u0053\u0054\u0055\u0056\u0057" + - "\u0058\u0059\u005A\u005B\\\u005D\u005E\u005F" + - "\u0060\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + - "\u0068\u0069\u006A\u006B\u006C\u006D\u006E\u006F" + - "\u0070\u0071\u0072\u0073\u0074\u0075\u0076\u0077" + - "\u0078\u0079\u007A\u007B\u007C\u007D\u007E\u007F" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00CA\u0000\u0000\u0092\u0000\u00B4\u009B\u00AC" + - "\u008C\u00A9\u0000\u00C7\u00C2\u009C\u00A8\u0000" + - "\u00AE\u00B1\u0082\u0084\u0000\u0000\u0000\u0000" + - "\u0000\u0081\u0000\u00C8\u0000\u0097\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0080\u0000\u0000\u0000" + - "\u0000\u0083\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0085\u0000" + - "\u0000\u0000\u0000\u0000\u0086\u0000\u0000\u00A7" + - "\u0088\u0000\u0089\u0000\u008A\u0000\u0000\u008D" + - "\u008F\u008E\u0090\u0091\u0000\u0000\u0094\u0095" + - "\u0000\u0000\u0000\u0000\u0099\u0000\u009A\u00D6" + - "\u0000\u009D\u0000\u009E\u009F\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00CF\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u008B\u0087\u00CD\u00AF\u00CE\u00D7\u00D8" + - "\u0000\u00D9\u0000\u00DA\u00DF\u00FD\u00B0\u00B5" + - "\u00A1\u00A2\u00B6\u00B7\u00B8\u00A3\u00B9\u00BA" + - "\u00A4\u00BB\u00C1\u00A5\u00C3\u00A6\u00C4\u0000" + - "\u00AA\u00C6\u00CB\u00BC\u00CC\u00BE\u00BF\u00AB" + - "\u00BD\u00C0\u00DB\u00DC\u00DD\u00FE\u00E1\u00E2" + - "\u00E7\u00E4\u00E5\u00FA\u00E8\u00F5\u00E9\u00EB" + - "\u00EC\u00ED\u00EE\u00EA\u00EF\u00F0\u00F2\u00F7" + - "\u00F3\u00F4\u00F9\u00E6\u00F8\u00E3\u00F6\u00FB" + - "\u00FC\u00DE\u00E0\u00F1\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u00D0\u0000\u00D1" + - "\u0000\u0000\u00D4\u00D5\u0000\u0000\u00D2\u00D3" + - "\u0000\u0000\u00A0\u0000\u0096\u0000\u0000\u0000" + - "\u00C9\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0098\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0093\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00C5\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00AD\u0000\u0000\u0000\u00B2\u00B3\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"; - - private final static short index1[] = { - 0, 253, 337, 461, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, - 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, - 698, 920, 1104, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, - 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, - 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, - 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, - 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, - 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, - 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, - 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, - 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, - 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, - 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, - 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, - 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, - 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, - - }; - } -} diff --git a/jdk/src/share/classes/sun/nio/cs/ext/MacHebrew.java b/jdk/src/share/classes/sun/nio/cs/ext/MacHebrew.java deleted file mode 100644 index 6765157aafb..00000000000 --- a/jdk/src/share/classes/sun/nio/cs/ext/MacHebrew.java +++ /dev/null @@ -1,289 +0,0 @@ - -/* - * Copyright 2003-2004 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. - */ - -package sun.nio.cs.ext; - - -import java.nio.charset.Charset; -import java.nio.charset.CharsetDecoder; -import java.nio.charset.CharsetEncoder; -import sun.nio.cs.StandardCharsets; -import sun.nio.cs.SingleByteDecoder; -import sun.nio.cs.SingleByteEncoder; -import sun.nio.cs.HistoricallyNamedCharset; - -public class MacHebrew - extends Charset - implements HistoricallyNamedCharset -{ - - public MacHebrew() { - super("x-MacHebrew", ExtendedCharsets.aliasesFor("x-MacHebrew")); - } - - public String historicalName() { - return "MacHebrew"; - } - - public boolean contains(Charset cs) { - return (cs instanceof MacHebrew); - } - - public CharsetDecoder newDecoder() { - return new Decoder(this); - } - - public CharsetEncoder newEncoder() { - return new Encoder(this); - } - - - /** - * These accessors are temporarily supplied while sun.io - * converters co-exist with the sun.nio.cs.{ext} charset coders - * These facilitate sharing of conversion tables between the - * two co-existing implementations. When sun.io converters - * are made extinct these will be unncessary and should be removed - */ - - public String getDecoderSingleByteMappings() { - return Decoder.byteToCharTable; - - } - - public short[] getEncoderIndex1() { - return Encoder.index1; - - } - public String getEncoderIndex2() { - return Encoder.index2; - - } - - private static class Decoder extends SingleByteDecoder { - public Decoder(Charset cs) { - super(cs, byteToCharTable); - } - - private final static String byteToCharTable = - - "\u00C4\uFB1F\u00C7\u00C9\u00D1\u00D6\u00DC\u00E1" + // 0x80 - 0x87 - "\u00E0\u00E2\u00E4\u00E3\u00E5\u00E7\u00E9\u00E8" + // 0x88 - 0x8F - "\u00EA\u00EB\u00ED\u00EC\u00EE\u00EF\u00F1\u00F3" + // 0x90 - 0x97 - "\u00F2\u00F4\u00F6\u00F5\u00FA\u00F9\u00FB\u00FC" + // 0x98 - 0x9F - "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u20AA\uFFFD" + // 0xA0 - 0xA7 - "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD" + // 0xA8 - 0xAF - "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD" + // 0xB0 - 0xB7 - "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD" + // 0xB8 - 0xBF - "\uFFFD\u201E\uFFFD\uFFFD\uFFFD\uFFFD\u05BC\uFB4B" + // 0xC0 - 0xC7 - "\uFB35\u2026\u00A0\u05B8\u05B7\u05B5\u05B6\u05B4" + // 0xC8 - 0xCF - "\u2013\u2014\u201C\u201D\u2018\u2019\uFB2A\uFB2B" + // 0xD0 - 0xD7 - "\u05BF\u05B0\u05B2\u05B1\u05BB\u05B9\uFFFD\u05B3" + // 0xD8 - 0xDF - "\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5\u05D6\u05D7" + // 0xE0 - 0xE7 - "\u05D8\u05D9\u05DA\u05DB\u05DC\u05DD\u05DE\u05DF" + // 0xE8 - 0xEF - "\u05E0\u05E1\u05E2\u05E3\u05E4\u05E5\u05E6\u05E7" + // 0xF0 - 0xF7 - "\u05E8\u05E9\u05EA\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD" + // 0xF8 - 0xFF - "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007" + // 0x00 - 0x07 - "\b\t\n\u000B\f\r\u000E\u000F" + // 0x08 - 0x0F - "\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017" + // 0x10 - 0x17 - "\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F" + // 0x18 - 0x1F - "\u0020\u0021\"\u0023\u0024\u0025\u0026\'" + // 0x20 - 0x27 - "\u0028\u0029\u002A\u002B\u002C\u002D\u002E\u002F" + // 0x28 - 0x2F - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + // 0x30 - 0x37 - "\u0038\u0039\u003A\u003B\u003C\u003D\u003E\u003F" + // 0x38 - 0x3F - "\u0040\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + // 0x40 - 0x47 - "\u0048\u0049\u004A\u004B\u004C\u004D\u004E\u004F" + // 0x48 - 0x4F - "\u0050\u0051\u0052\u0053\u0054\u0055\u0056\u0057" + // 0x50 - 0x57 - "\u0058\u0059\u005A\u005B\\\u005D\u005E\u005F" + // 0x58 - 0x5F - "\u0060\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + // 0x60 - 0x67 - "\u0068\u0069\u006A\u006B\u006C\u006D\u006E\u006F" + // 0x68 - 0x6F - "\u0070\u0071\u0072\u0073\u0074\u0075\u0076\u0077" + // 0x70 - 0x77 - "\u0078\u0079\u007A\u007B\u007C\u007D\u007E\u007F"; // 0x78 - 0x7F - - } - - private static class Encoder extends SingleByteEncoder { - public Encoder(Charset cs) { - super(cs, index1, index2, 0xFF00, 0x00FF, 8); - } - - private final static String index2 = - - - "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007" + - "\b\t\n\u000B\f\r\u000E\u000F" + - "\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017" + - "\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F" + - "\u0020\u0021\"\u0023\u0024\u0025\u0026\'" + - "\u0028\u0029\u002A\u002B\u002C\u002D\u002E\u002F" + - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + - "\u0038\u0039\u003A\u003B\u003C\u003D\u003E\u003F" + - "\u0040\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + - "\u0048\u0049\u004A\u004B\u004C\u004D\u004E\u004F" + - "\u0050\u0051\u0052\u0053\u0054\u0055\u0056\u0057" + - "\u0058\u0059\u005A\u005B\\\u005D\u005E\u005F" + - "\u0060\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + - "\u0068\u0069\u006A\u006B\u006C\u006D\u006E\u006F" + - "\u0070\u0071\u0072\u0073\u0074\u0075\u0076\u0077" + - "\u0078\u0079\u007A\u007B\u007C\u007D\u007E\u007F" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00CA\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0080\u0000\u0000\u0082" + - "\u0000\u0083\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0084\u0000\u0000\u0000\u0000\u0085\u0000" + - "\u0000\u0000\u0000\u0000\u0086\u0000\u0000\u0000" + - "\u0088\u0087\u0089\u008B\u008A\u008C\u0000\u008D" + - "\u008F\u008E\u0090\u0091\u0093\u0092\u0094\u0095" + - "\u0000\u0096\u0098\u0097\u0099\u009B\u009A\u0000" + - "\u0000\u009D\u009C\u009E\u009F\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u00D9\u00DB\u00DA" + - "\u00DF\u00CF\u00CD\u00CE\u00CC\u00CB\u00DD\u0000" + - "\u00DC\u00C6\u0000\u0000\u00D8\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u00E0\u00E1\u00E2" + - "\u00E3\u00E4\u00E5\u00E6\u00E7\u00E8\u00E9\u00EA" + - "\u00EB\u00EC\u00ED\u00EE\u00EF\u00F0\u00F1\u00F2" + - "\u00F3\u00F4\u00F5\u00F6\u00F7\u00F8\u00F9\u00FA" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u00D0\u00D1\u0000" + - "\u0000\u0000\u00D4\u00D5\u0000\u0000\u00D2\u00D3" + - "\u00C1\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00C9\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u00A6\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0081\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u00D6\u00D7\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00C8\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u00C7\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000"; - - private final static short index1[] = { - 0, 253, 253, 253, 253, 333, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, - 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, - 570, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, - 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, - 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, - 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, - 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, - 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, - 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, - 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, - 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, - 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, - 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, - 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, - 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, - 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 795, 253, 253, 253, 253, - - }; - } -} diff --git a/jdk/src/share/classes/sun/nio/cs/ext/MacIceland.java b/jdk/src/share/classes/sun/nio/cs/ext/MacIceland.java deleted file mode 100644 index 988a3f09833..00000000000 --- a/jdk/src/share/classes/sun/nio/cs/ext/MacIceland.java +++ /dev/null @@ -1,402 +0,0 @@ - -/* - * Copyright 2003-2004 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. - */ - -package sun.nio.cs.ext; - - -import java.nio.charset.Charset; -import java.nio.charset.CharsetDecoder; -import java.nio.charset.CharsetEncoder; -import sun.nio.cs.StandardCharsets; -import sun.nio.cs.SingleByteDecoder; -import sun.nio.cs.SingleByteEncoder; -import sun.nio.cs.HistoricallyNamedCharset; - -public class MacIceland - extends Charset - implements HistoricallyNamedCharset -{ - - public MacIceland() { - super("x-MacIceland", ExtendedCharsets.aliasesFor("x-MacIceland")); - } - - public String historicalName() { - return "MacIceland"; - } - - public boolean contains(Charset cs) { - return (cs instanceof MacIceland); - } - - public CharsetDecoder newDecoder() { - return new Decoder(this); - } - - public CharsetEncoder newEncoder() { - return new Encoder(this); - } - - - /** - * These accessors are temporarily supplied while sun.io - * converters co-exist with the sun.nio.cs.{ext} charset coders - * These facilitate sharing of conversion tables between the - * two co-existing implementations. When sun.io converters - * are made extinct these will be unncessary and should be removed - */ - - public String getDecoderSingleByteMappings() { - return Decoder.byteToCharTable; - - } - - public short[] getEncoderIndex1() { - return Encoder.index1; - - } - public String getEncoderIndex2() { - return Encoder.index2; - - } - - private static class Decoder extends SingleByteDecoder { - public Decoder(Charset cs) { - super(cs, byteToCharTable); - } - - private final static String byteToCharTable = - - "\u00C4\u00C5\u00C7\u00C9\u00D1\u00D6\u00DC\u00E1" + // 0x80 - 0x87 - "\u00E0\u00E2\u00E4\u00E3\u00E5\u00E7\u00E9\u00E8" + // 0x88 - 0x8F - "\u00EA\u00EB\u00ED\u00EC\u00EE\u00EF\u00F1\u00F3" + // 0x90 - 0x97 - "\u00F2\u00F4\u00F6\u00F5\u00FA\u00F9\u00FB\u00FC" + // 0x98 - 0x9F - "\u00DD\u00B0\u00A2\u00A3\u00A7\u2022\u00B6\u00DF" + // 0xA0 - 0xA7 - "\u00AE\u00A9\u2122\u00B4\u00A8\u2260\u00C6\u00D8" + // 0xA8 - 0xAF - "\u221E\u00B1\u2264\u2265\u00A5\u00B5\u2202\u2211" + // 0xB0 - 0xB7 - "\u220F\u03C0\u222B\u00AA\u00BA\u2126\u00E6\u00F8" + // 0xB8 - 0xBF - "\u00BF\u00A1\u00AC\u221A\u0192\u2248\u2206\u00AB" + // 0xC0 - 0xC7 - "\u00BB\u2026\u00A0\u00C0\u00C3\u00D5\u0152\u0153" + // 0xC8 - 0xCF - "\u2013\u2014\u201C\u201D\u2018\u2019\u00F7\u25CA" + // 0xD0 - 0xD7 - "\u00FF\u0178\u2044\u00A4\u00D0\u00F0\u00DE\u00FE" + // 0xD8 - 0xDF - "\u00FD\u00B7\u201A\u201E\u2030\u00C2\u00CA\u00C1" + // 0xE0 - 0xE7 - "\u00CB\u00C8\u00CD\u00CE\u00CF\u00CC\u00D3\u00D4" + // 0xE8 - 0xEF - "\uF8FF\u00D2\u00DA\u00DB\u00D9\u0131\u02C6\u02DC" + // 0xF0 - 0xF7 - "\u00AF\u02D8\u02D9\u02DA\u00B8\u02DD\u02DB\u02C7" + // 0xF8 - 0xFF - "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007" + // 0x00 - 0x07 - "\b\t\n\u000B\f\r\u000E\u000F" + // 0x08 - 0x0F - "\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017" + // 0x10 - 0x17 - "\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F" + // 0x18 - 0x1F - "\u0020\u0021\"\u0023\u0024\u0025\u0026\'" + // 0x20 - 0x27 - "\u0028\u0029\u002A\u002B\u002C\u002D\u002E\u002F" + // 0x28 - 0x2F - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + // 0x30 - 0x37 - "\u0038\u0039\u003A\u003B\u003C\u003D\u003E\u003F" + // 0x38 - 0x3F - "\u0040\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + // 0x40 - 0x47 - "\u0048\u0049\u004A\u004B\u004C\u004D\u004E\u004F" + // 0x48 - 0x4F - "\u0050\u0051\u0052\u0053\u0054\u0055\u0056\u0057" + // 0x50 - 0x57 - "\u0058\u0059\u005A\u005B\\\u005D\u005E\u005F" + // 0x58 - 0x5F - "\u0060\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + // 0x60 - 0x67 - "\u0068\u0069\u006A\u006B\u006C\u006D\u006E\u006F" + // 0x68 - 0x6F - "\u0070\u0071\u0072\u0073\u0074\u0075\u0076\u0077" + // 0x70 - 0x77 - "\u0078\u0079\u007A\u007B\u007C\u007D\u007E\u007F"; // 0x78 - 0x7F - - } - - private static class Encoder extends SingleByteEncoder { - public Encoder(Charset cs) { - super(cs, index1, index2, 0xFF00, 0x00FF, 8); - } - - private final static String index2 = - - - "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007" + - "\b\t\n\u000B\f\r\u000E\u000F" + - "\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017" + - "\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F" + - "\u0020\u0021\"\u0023\u0024\u0025\u0026\'" + - "\u0028\u0029\u002A\u002B\u002C\u002D\u002E\u002F" + - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + - "\u0038\u0039\u003A\u003B\u003C\u003D\u003E\u003F" + - "\u0040\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + - "\u0048\u0049\u004A\u004B\u004C\u004D\u004E\u004F" + - "\u0050\u0051\u0052\u0053\u0054\u0055\u0056\u0057" + - "\u0058\u0059\u005A\u005B\\\u005D\u005E\u005F" + - "\u0060\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + - "\u0068\u0069\u006A\u006B\u006C\u006D\u006E\u006F" + - "\u0070\u0071\u0072\u0073\u0074\u0075\u0076\u0077" + - "\u0078\u0079\u007A\u007B\u007C\u007D\u007E\u007F" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00CA\u00C1\u00A2\u00A3\u00DB\u00B4\u0000\u00A4" + - "\u00AC\u00A9\u00BB\u00C7\u00C2\u0000\u00A8\u00F8" + - "\u00A1\u00B1\u0000\u0000\u00AB\u00B5\u00A6\u00E1" + - "\u00FC\u0000\u00BC\u00C8\u0000\u0000\u0000\u00C0" + - "\u00CB\u00E7\u00E5\u00CC\u0080\u0081\u00AE\u0082" + - "\u00E9\u0083\u00E6\u00E8\u00ED\u00EA\u00EB\u00EC" + - "\u00DC\u0084\u00F1\u00EE\u00EF\u00CD\u0085\u0000" + - "\u00AF\u00F4\u00F2\u00F3\u0086\u00A0\u00DE\u00A7" + - "\u0088\u0087\u0089\u008B\u008A\u008C\u00BE\u008D" + - "\u008F\u008E\u0090\u0091\u0093\u0092\u0094\u0095" + - "\u00DD\u0096\u0098\u0097\u0099\u009B\u009A\u00D6" + - "\u00BF\u009D\u009C\u009E\u009F\u00E0\u00DF\u00D8" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u00F5\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u00CE\u00CF\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00D9\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u00C4\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u00F6\u00FF\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u00F9\u00FA\u00FB" + - "\u00FE\u00F7\u00FD\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u00B9\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u00D0\u00D1\u0000\u0000\u0000" + - "\u00D4\u00D5\u00E2\u0000\u00D2\u00D3\u00E3\u0000" + - "\u0000\u0000\u00A5\u0000\u0000\u0000\u00C9\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00E4\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u00DA\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00AA\u0000\u0000\u0000\u00BD\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u00B6\u0000" + - "\u0000\u0000\u00C6\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u00B8\u0000\u00B7\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u00C3\u0000" + - "\u0000\u0000\u00B0\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u00BA" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u00C5\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u00AD\u0000\u0000\u0000" + - "\u00B2\u00B3\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u00D7\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u00F0"; - - private final static short index1[] = { - 0, 256, 461, 683, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 920, 1142, 1396, 403, 403, 1498, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 1701, 403, 403, 403, 403, 403, 403, 403, - - }; - } -} diff --git a/jdk/src/share/classes/sun/nio/cs/ext/MacRoman.java b/jdk/src/share/classes/sun/nio/cs/ext/MacRoman.java deleted file mode 100644 index 8fd75a96b5e..00000000000 --- a/jdk/src/share/classes/sun/nio/cs/ext/MacRoman.java +++ /dev/null @@ -1,434 +0,0 @@ - -/* - * Copyright 2003-2004 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. - */ - -package sun.nio.cs.ext; - - -import java.nio.charset.Charset; -import java.nio.charset.CharsetDecoder; -import java.nio.charset.CharsetEncoder; -import sun.nio.cs.StandardCharsets; -import sun.nio.cs.SingleByteDecoder; -import sun.nio.cs.SingleByteEncoder; -import sun.nio.cs.HistoricallyNamedCharset; - -public class MacRoman - extends Charset - implements HistoricallyNamedCharset -{ - - public MacRoman() { - super("x-MacRoman", ExtendedCharsets.aliasesFor("x-MacRoman")); - } - - public String historicalName() { - return "MacRoman"; - } - - public boolean contains(Charset cs) { - return (cs instanceof MacRoman); - } - - public CharsetDecoder newDecoder() { - return new Decoder(this); - } - - public CharsetEncoder newEncoder() { - return new Encoder(this); - } - - - /** - * These accessors are temporarily supplied while sun.io - * converters co-exist with the sun.nio.cs.{ext} charset coders - * These facilitate sharing of conversion tables between the - * two co-existing implementations. When sun.io converters - * are made extinct these will be unncessary and should be removed - */ - - public String getDecoderSingleByteMappings() { - return Decoder.byteToCharTable; - - } - - public short[] getEncoderIndex1() { - return Encoder.index1; - - } - public String getEncoderIndex2() { - return Encoder.index2; - - } - - private static class Decoder extends SingleByteDecoder { - public Decoder(Charset cs) { - super(cs, byteToCharTable); - } - - private final static String byteToCharTable = - - "\u00C4\u00C5\u00C7\u00C9\u00D1\u00D6\u00DC\u00E1" + // 0x80 - 0x87 - "\u00E0\u00E2\u00E4\u00E3\u00E5\u00E7\u00E9\u00E8" + // 0x88 - 0x8F - "\u00EA\u00EB\u00ED\u00EC\u00EE\u00EF\u00F1\u00F3" + // 0x90 - 0x97 - "\u00F2\u00F4\u00F6\u00F5\u00FA\u00F9\u00FB\u00FC" + // 0x98 - 0x9F - "\u2020\u00B0\u00A2\u00A3\u00A7\u2022\u00B6\u00DF" + // 0xA0 - 0xA7 - "\u00AE\u00A9\u2122\u00B4\u00A8\u2260\u00C6\u00D8" + // 0xA8 - 0xAF - "\u221E\u00B1\u2264\u2265\u00A5\u00B5\u2202\u2211" + // 0xB0 - 0xB7 - "\u220F\u03C0\u222B\u00AA\u00BA\u03A9\u00E6\u00F8" + // 0xB8 - 0xBF - "\u00BF\u00A1\u00AC\u221A\u0192\u2248\u2206\u00AB" + // 0xC0 - 0xC7 - "\u00BB\u2026\u00A0\u00C0\u00C3\u00D5\u0152\u0153" + // 0xC8 - 0xCF - "\u2013\u2014\u201C\u201D\u2018\u2019\u00F7\u25CA" + // 0xD0 - 0xD7 - "\u00FF\u0178\u2044\u20AC\u2039\u203A\uFB01\uFB02" + // 0xD8 - 0xDF - "\u2021\u00B7\u201A\u201E\u2030\u00C2\u00CA\u00C1" + // 0xE0 - 0xE7 - "\u00CB\u00C8\u00CD\u00CE\u00CF\u00CC\u00D3\u00D4" + // 0xE8 - 0xEF - "\uF8FF\u00D2\u00DA\u00DB\u00D9\u0131\u02C6\u02DC" + // 0xF0 - 0xF7 - "\u00AF\u02D8\u02D9\u02DA\u00B8\u02DD\u02DB\u02C7" + // 0xF8 - 0xFF - "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007" + // 0x00 - 0x07 - "\b\t\n\u000B\f\r\u000E\u000F" + // 0x08 - 0x0F - "\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017" + // 0x10 - 0x17 - "\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F" + // 0x18 - 0x1F - "\u0020\u0021\"\u0023\u0024\u0025\u0026\'" + // 0x20 - 0x27 - "\u0028\u0029\u002A\u002B\u002C\u002D\u002E\u002F" + // 0x28 - 0x2F - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + // 0x30 - 0x37 - "\u0038\u0039\u003A\u003B\u003C\u003D\u003E\u003F" + // 0x38 - 0x3F - "\u0040\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + // 0x40 - 0x47 - "\u0048\u0049\u004A\u004B\u004C\u004D\u004E\u004F" + // 0x48 - 0x4F - "\u0050\u0051\u0052\u0053\u0054\u0055\u0056\u0057" + // 0x50 - 0x57 - "\u0058\u0059\u005A\u005B\\\u005D\u005E\u005F" + // 0x58 - 0x5F - "\u0060\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + // 0x60 - 0x67 - "\u0068\u0069\u006A\u006B\u006C\u006D\u006E\u006F" + // 0x68 - 0x6F - "\u0070\u0071\u0072\u0073\u0074\u0075\u0076\u0077" + // 0x70 - 0x77 - "\u0078\u0079\u007A\u007B\u007C\u007D\u007E\u007F"; // 0x78 - 0x7F - - } - - private static class Encoder extends SingleByteEncoder { - public Encoder(Charset cs) { - super(cs, index1, index2, 0xFF00, 0x00FF, 8); - } - - private final static String index2 = - - - "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007" + - "\b\t\n\u000B\f\r\u000E\u000F" + - "\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017" + - "\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F" + - "\u0020\u0021\"\u0023\u0024\u0025\u0026\'" + - "\u0028\u0029\u002A\u002B\u002C\u002D\u002E\u002F" + - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + - "\u0038\u0039\u003A\u003B\u003C\u003D\u003E\u003F" + - "\u0040\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + - "\u0048\u0049\u004A\u004B\u004C\u004D\u004E\u004F" + - "\u0050\u0051\u0052\u0053\u0054\u0055\u0056\u0057" + - "\u0058\u0059\u005A\u005B\\\u005D\u005E\u005F" + - "\u0060\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + - "\u0068\u0069\u006A\u006B\u006C\u006D\u006E\u006F" + - "\u0070\u0071\u0072\u0073\u0074\u0075\u0076\u0077" + - "\u0078\u0079\u007A\u007B\u007C\u007D\u007E\u007F" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00CA\u00C1\u00A2\u00A3\u0000\u00B4\u0000\u00A4" + - "\u00AC\u00A9\u00BB\u00C7\u00C2\u0000\u00A8\u00F8" + - "\u00A1\u00B1\u0000\u0000\u00AB\u00B5\u00A6\u00E1" + - "\u00FC\u0000\u00BC\u00C8\u0000\u0000\u0000\u00C0" + - "\u00CB\u00E7\u00E5\u00CC\u0080\u0081\u00AE\u0082" + - "\u00E9\u0083\u00E6\u00E8\u00ED\u00EA\u00EB\u00EC" + - "\u0000\u0084\u00F1\u00EE\u00EF\u00CD\u0085\u0000" + - "\u00AF\u00F4\u00F2\u00F3\u0086\u0000\u0000\u00A7" + - "\u0088\u0087\u0089\u008B\u008A\u008C\u00BE\u008D" + - "\u008F\u008E\u0090\u0091\u0093\u0092\u0094\u0095" + - "\u0000\u0096\u0098\u0097\u0099\u009B\u009A\u00D6" + - "\u00BF\u009D\u009C\u009E\u009F\u0000\u0000\u00D8" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u00F5\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u00CE\u00CF\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00D9\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u00C4\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u00F6\u00FF\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u00F9\u00FA\u00FB" + - "\u00FE\u00F7\u00FD\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u00BD\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u00B9\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u00D0\u00D1\u0000\u0000\u0000" + - "\u00D4\u00D5\u00E2\u0000\u00D2\u00D3\u00E3\u0000" + - "\u00A0\u00E0\u00A5\u0000\u0000\u0000\u00C9\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00E4\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u00DC\u00DD\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u00DA\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u00DB\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00AA\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u00B6\u0000" + - "\u0000\u0000\u00C6\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u00B8\u0000\u00B7\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u00C3\u0000" + - "\u0000\u0000\u00B0\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u00BA" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u00C5\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u00AD\u0000\u0000\u0000" + - "\u00B2\u00B3\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u00D7\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u00F0\u0000\u00DE\u00DF" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000"; - - private final static short index1[] = { - 0, 256, 461, 683, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 920, 1142, 1396, 403, 403, 1498, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 1701, 403, 403, 1957, 403, 403, 403, 403, - - }; - } -} diff --git a/jdk/src/share/classes/sun/nio/cs/ext/MacRomania.java b/jdk/src/share/classes/sun/nio/cs/ext/MacRomania.java deleted file mode 100644 index f5e48d8cb7e..00000000000 --- a/jdk/src/share/classes/sun/nio/cs/ext/MacRomania.java +++ /dev/null @@ -1,402 +0,0 @@ - -/* - * Copyright 2003-2004 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. - */ - -package sun.nio.cs.ext; - - -import java.nio.charset.Charset; -import java.nio.charset.CharsetDecoder; -import java.nio.charset.CharsetEncoder; -import sun.nio.cs.StandardCharsets; -import sun.nio.cs.SingleByteDecoder; -import sun.nio.cs.SingleByteEncoder; -import sun.nio.cs.HistoricallyNamedCharset; - -public class MacRomania - extends Charset - implements HistoricallyNamedCharset -{ - - public MacRomania() { - super("x-MacRomania", ExtendedCharsets.aliasesFor("x-MacRomania")); - } - - public String historicalName() { - return "MacRomania"; - } - - public boolean contains(Charset cs) { - return (cs instanceof MacRomania); - } - - public CharsetDecoder newDecoder() { - return new Decoder(this); - } - - public CharsetEncoder newEncoder() { - return new Encoder(this); - } - - - /** - * These accessors are temporarily supplied while sun.io - * converters co-exist with the sun.nio.cs.{ext} charset coders - * These facilitate sharing of conversion tables between the - * two co-existing implementations. When sun.io converters - * are made extinct these will be unncessary and should be removed - */ - - public String getDecoderSingleByteMappings() { - return Decoder.byteToCharTable; - - } - - public short[] getEncoderIndex1() { - return Encoder.index1; - - } - public String getEncoderIndex2() { - return Encoder.index2; - - } - - private static class Decoder extends SingleByteDecoder { - public Decoder(Charset cs) { - super(cs, byteToCharTable); - } - - private final static String byteToCharTable = - - "\u00C4\u00C5\u00C7\u00C9\u00D1\u00D6\u00DC\u00E1" + // 0x80 - 0x87 - "\u00E0\u00E2\u00E4\u00E3\u00E5\u00E7\u00E9\u00E8" + // 0x88 - 0x8F - "\u00EA\u00EB\u00ED\u00EC\u00EE\u00EF\u00F1\u00F3" + // 0x90 - 0x97 - "\u00F2\u00F4\u00F6\u00F5\u00FA\u00F9\u00FB\u00FC" + // 0x98 - 0x9F - "\u2020\u00B0\u00A2\u00A3\u00A7\u2022\u00B6\u00DF" + // 0xA0 - 0xA7 - "\u00AE\u00A9\u2122\u00B4\u00A8\u2260\u0102\u015E" + // 0xA8 - 0xAF - "\u221E\u00B1\u2264\u2265\u00A5\u00B5\u2202\u2211" + // 0xB0 - 0xB7 - "\u220F\u03C0\u222B\u00AA\u00BA\u2126\u0103\u015F" + // 0xB8 - 0xBF - "\u00BF\u00A1\u00AC\u221A\u0192\u2248\u2206\u00AB" + // 0xC0 - 0xC7 - "\u00BB\u2026\u00A0\u00C0\u00C3\u00D5\u0152\u0153" + // 0xC8 - 0xCF - "\u2013\u2014\u201C\u201D\u2018\u2019\u00F7\u25CA" + // 0xD0 - 0xD7 - "\u00FF\u0178\u2044\u00A4\u2039\u203A\u0162\u0163" + // 0xD8 - 0xDF - "\u2021\u00B7\u201A\u201E\u2030\u00C2\u00CA\u00C1" + // 0xE0 - 0xE7 - "\u00CB\u00C8\u00CD\u00CE\u00CF\u00CC\u00D3\u00D4" + // 0xE8 - 0xEF - "\uF8FF\u00D2\u00DA\u00DB\u00D9\u0131\u02C6\u02DC" + // 0xF0 - 0xF7 - "\u00AF\u02D8\u02D9\u02DA\u00B8\u02DD\u02DB\u02C7" + // 0xF8 - 0xFF - "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007" + // 0x00 - 0x07 - "\b\t\n\u000B\f\r\u000E\u000F" + // 0x08 - 0x0F - "\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017" + // 0x10 - 0x17 - "\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F" + // 0x18 - 0x1F - "\u0020\u0021\"\u0023\u0024\u0025\u0026\'" + // 0x20 - 0x27 - "\u0028\u0029\u002A\u002B\u002C\u002D\u002E\u002F" + // 0x28 - 0x2F - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + // 0x30 - 0x37 - "\u0038\u0039\u003A\u003B\u003C\u003D\u003E\u003F" + // 0x38 - 0x3F - "\u0040\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + // 0x40 - 0x47 - "\u0048\u0049\u004A\u004B\u004C\u004D\u004E\u004F" + // 0x48 - 0x4F - "\u0050\u0051\u0052\u0053\u0054\u0055\u0056\u0057" + // 0x50 - 0x57 - "\u0058\u0059\u005A\u005B\\\u005D\u005E\u005F" + // 0x58 - 0x5F - "\u0060\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + // 0x60 - 0x67 - "\u0068\u0069\u006A\u006B\u006C\u006D\u006E\u006F" + // 0x68 - 0x6F - "\u0070\u0071\u0072\u0073\u0074\u0075\u0076\u0077" + // 0x70 - 0x77 - "\u0078\u0079\u007A\u007B\u007C\u007D\u007E\u007F"; // 0x78 - 0x7F - - } - - private static class Encoder extends SingleByteEncoder { - public Encoder(Charset cs) { - super(cs, index1, index2, 0xFF00, 0x00FF, 8); - } - - private final static String index2 = - - - "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007" + - "\b\t\n\u000B\f\r\u000E\u000F" + - "\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017" + - "\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F" + - "\u0020\u0021\"\u0023\u0024\u0025\u0026\'" + - "\u0028\u0029\u002A\u002B\u002C\u002D\u002E\u002F" + - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + - "\u0038\u0039\u003A\u003B\u003C\u003D\u003E\u003F" + - "\u0040\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + - "\u0048\u0049\u004A\u004B\u004C\u004D\u004E\u004F" + - "\u0050\u0051\u0052\u0053\u0054\u0055\u0056\u0057" + - "\u0058\u0059\u005A\u005B\\\u005D\u005E\u005F" + - "\u0060\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + - "\u0068\u0069\u006A\u006B\u006C\u006D\u006E\u006F" + - "\u0070\u0071\u0072\u0073\u0074\u0075\u0076\u0077" + - "\u0078\u0079\u007A\u007B\u007C\u007D\u007E\u007F" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00CA\u00C1\u00A2\u00A3\u00DB\u00B4\u0000\u00A4" + - "\u00AC\u00A9\u00BB\u00C7\u00C2\u0000\u00A8\u00F8" + - "\u00A1\u00B1\u0000\u0000\u00AB\u00B5\u00A6\u00E1" + - "\u00FC\u0000\u00BC\u00C8\u0000\u0000\u0000\u00C0" + - "\u00CB\u00E7\u00E5\u00CC\u0080\u0081\u0000\u0082" + - "\u00E9\u0083\u00E6\u00E8\u00ED\u00EA\u00EB\u00EC" + - "\u0000\u0084\u00F1\u00EE\u00EF\u00CD\u0085\u0000" + - "\u0000\u00F4\u00F2\u00F3\u0086\u0000\u0000\u00A7" + - "\u0088\u0087\u0089\u008B\u008A\u008C\u0000\u008D" + - "\u008F\u008E\u0090\u0091\u0093\u0092\u0094\u0095" + - "\u0000\u0096\u0098\u0097\u0099\u009B\u009A\u00D6" + - "\u0000\u009D\u009C\u009E\u009F\u0000\u0000\u00D8" + - "\u0000\u0000\u00AE\u00BE\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u00F5\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u00CE\u00CF\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u00AF\u00BF" + - "\u0000\u0000\u00DE\u00DF\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00D9\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u00C4\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u00F6\u00FF\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u00F9\u00FA\u00FB" + - "\u00FE\u00F7\u00FD\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u00B9\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u00D0\u00D1\u0000\u0000\u0000" + - "\u00D4\u00D5\u00E2\u0000\u00D2\u00D3\u00E3\u0000" + - "\u00A0\u00E0\u00A5\u0000\u0000\u0000\u00C9\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00E4\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u00DC\u00DD\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u00DA\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00AA\u0000\u0000\u0000\u00BD\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u00B6\u0000" + - "\u0000\u0000\u00C6\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u00B8\u0000\u00B7\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u00C3\u0000" + - "\u0000\u0000\u00B0\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u00BA" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u00C5\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u00AD\u0000\u0000\u0000" + - "\u00B2\u00B3\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u00D7\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u00F0"; - - private final static short index1[] = { - 0, 256, 461, 683, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 920, 1142, 1396, 403, 403, 1498, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 1701, 403, 403, 403, 403, 403, 403, 403, - - }; - } -} diff --git a/jdk/src/share/classes/sun/nio/cs/ext/MacSymbol.java b/jdk/src/share/classes/sun/nio/cs/ext/MacSymbol.java deleted file mode 100644 index 580a53557b0..00000000000 --- a/jdk/src/share/classes/sun/nio/cs/ext/MacSymbol.java +++ /dev/null @@ -1,425 +0,0 @@ - -/* - * Copyright 2003-2004 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. - */ - -package sun.nio.cs.ext; - - -import java.nio.charset.Charset; -import java.nio.charset.CharsetDecoder; -import java.nio.charset.CharsetEncoder; -import sun.nio.cs.StandardCharsets; -import sun.nio.cs.SingleByteDecoder; -import sun.nio.cs.SingleByteEncoder; -import sun.nio.cs.HistoricallyNamedCharset; - -public class MacSymbol - extends Charset - implements HistoricallyNamedCharset -{ - - public MacSymbol() { - super("x-MacSymbol", ExtendedCharsets.aliasesFor("x-MacSymbol")); - } - - public String historicalName() { - return "MacSymbol"; - } - - public boolean contains(Charset cs) { - return (cs instanceof MacSymbol); - } - - public CharsetDecoder newDecoder() { - return new Decoder(this); - } - - public CharsetEncoder newEncoder() { - return new Encoder(this); - } - - - /** - * These accessors are temporarily supplied while sun.io - * converters co-exist with the sun.nio.cs.{ext} charset coders - * These facilitate sharing of conversion tables between the - * two co-existing implementations. When sun.io converters - * are made extinct these will be unncessary and should be removed - */ - - public String getDecoderSingleByteMappings() { - return Decoder.byteToCharTable; - - } - - public short[] getEncoderIndex1() { - return Encoder.index1; - - } - public String getEncoderIndex2() { - return Encoder.index2; - - } - - private static class Decoder extends SingleByteDecoder { - public Decoder(Charset cs) { - super(cs, byteToCharTable); - } - - private final static String byteToCharTable = - - "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD" + // 0x80 - 0x87 - "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD" + // 0x88 - 0x8F - "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD" + // 0x90 - 0x97 - "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD" + // 0x98 - 0x9F - "\u20AC\u03D2\u2032\u2264\u2044\u221E\u0192\u2663" + // 0xA0 - 0xA7 - "\u2666\u2665\u2660\u2194\u2190\u2191\u2192\u2193" + // 0xA8 - 0xAF - "\u00B0\u00B1\u2033\u2265\u00D7\u221D\u2202\u2022" + // 0xB0 - 0xB7 - "\u00F7\u2260\u2261\u2248\u2026\uF8E6\uF8E7\u21B5" + // 0xB8 - 0xBF - "\u2135\u2111\u211C\u2118\u2297\u2295\u2205\u2229" + // 0xC0 - 0xC7 - "\u222A\u2283\u2287\u2284\u2282\u2286\u2208\u2209" + // 0xC8 - 0xCF - "\u2220\u2207\u00AE\u00A9\u2122\u220F\u221A\u22C5" + // 0xD0 - 0xD7 - "\u00AC\u2227\u2228\u21D4\u21D0\u21D1\u21D2\u21D3" + // 0xD8 - 0xDF - "\u22C4\u3008\uFFFD\uFFFD\uFFFD\u2211\uFFFD\uFFFD" + // 0xE0 - 0xE7 - "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uF8F4" + // 0xE8 - 0xEF - "\uF8FF\u3009\u222B\u2320\uFFFD\u2321\uFFFD\uFFFD" + // 0xF0 - 0xF7 - "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD" + // 0xF8 - 0xFF - "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007" + // 0x00 - 0x07 - "\b\t\n\u000B\f\r\u000E\u000F" + // 0x08 - 0x0F - "\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017" + // 0x10 - 0x17 - "\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F" + // 0x18 - 0x1F - "\u0020\u0021\u2200\u0023\u2203\u0025\u0026\u220D" + // 0x20 - 0x27 - "\u0028\u0029\u2217\u002B\u002C\u2212\u002E\u002F" + // 0x28 - 0x2F - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + // 0x30 - 0x37 - "\u0038\u0039\u003A\u003B\u003C\u003D\u003E\u003F" + // 0x38 - 0x3F - "\u2245\u0391\u0392\u03A7\u0394\u0395\u03A6\u0393" + // 0x40 - 0x47 - "\u0397\u0399\u03D1\u039A\u039B\u039C\u039D\u039F" + // 0x48 - 0x4F - "\u03A0\u0398\u03A1\u03A3\u03A4\u03A5\u03C2\u03A9" + // 0x50 - 0x57 - "\u039E\u03A8\u0396\u005B\u2234\u005D\u22A5\u005F" + // 0x58 - 0x5F - "\uF8E5\u03B1\u03B2\u03C7\u03B4\u03B5\u03C6\u03B3" + // 0x60 - 0x67 - "\u03B7\u03B9\u03D5\u03BA\u03BB\u03BC\u03BD\u03BF" + // 0x68 - 0x6F - "\u03C0\u03B8\u03C1\u03C3\u03C4\u03C5\u03D6\u03C9" + // 0x70 - 0x77 - "\u03BE\u03C8\u03B6\u007B\u007C\u007D\u223C\u007F"; // 0x78 - 0x7F - - } - - private static class Encoder extends SingleByteEncoder { - public Encoder(Charset cs) { - super(cs, index1, index2, 0xFF00, 0x00FF, 8); - } - - private final static String index2 = - - - "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007" + - "\b\t\n\u000B\f\r\u000E\u000F" + - "\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017" + - "\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F" + - "\u0020\u0021\u0000\u0023\u0000\u0025\u0026\u0000" + - "\u0028\u0029\u0000\u002B\u002C\u0000\u002E\u002F" + - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + - "\u0038\u0039\u003A\u003B\u003C\u003D\u003E\u003F" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u005B\u0000\u005D\u0000\u005F" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u007B\u007C\u007D\u0000\u007F" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u00D3\u0000\u0000\u00D8\u0000\u00D2\u0000" + - "\u00B0\u00B1\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u00B4" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u00B8" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u00A6\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0041\u0042\u0047\u0044\u0045" + - "\u005A\u0048\u0051\u0049\u004B\u004C\u004D\u004E" + - "\u0058\u004F\u0050\u0052\u0000\u0053\u0054\u0055" + - "\u0046\u0043\u0059\u0057\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0061\u0062\u0067\u0064\u0065" + - "\u007A\u0068\u0071\u0069\u006B\u006C\u006D\u006E" + - "\u0078\u006F\u0070\u0072\u0056\u0073\u0074\u0075" + - "\u0066\u0063\u0079\u0077\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u004A\u00A1\u0000\u0000\u006A" + - "\u0076\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u00B7\u0000\u0000\u0000\u00BC\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u00A2\u00B2\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u00A4\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u00A0\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00C1\u0000\u0000\u0000\u0000\u0000\u0000\u00C3" + - "\u0000\u0000\u0000\u00C2\u0000\u0000\u0000\u0000" + - "\u0000\u00D4\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u00C0\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u00AC" + - "\u00AD\u00AE\u00AF\u00AB\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u00BF\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u00DC" + - "\u00DD\u00DE\u00DF\u00DB\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\"" + - "\u0000\u00B6\u0024\u0000\u00C6\u0000\u00D1\u00CE" + - "\u00CF\u0000\u0000\u0000\'\u0000\u00D5\u0000" + - "\u00E5\u002D\u0000\u0000\u0000\u0000\u002A\u0000" + - "\u0000\u00D6\u0000\u0000\u00B5\u00A5\u0000\u00D0" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u00D9\u00DA" + - "\u00C7\u00C8\u00F2\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\\\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u007E\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0040\u0000\u0000\u00BB" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u00B9" + - "\u00BA\u0000\u0000\u00A3\u00B3\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u00CC\u00C9\u00CB\u0000\u00CD\u00CA\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u00C5\u0000\u00C4\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u005E\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u00E0\u00D7\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u00F3" + - "\u00F5\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u00AA" + - "\u0000\u0000\u00A7\u0000\u00A9\u00A8\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u00E1" + - "\u00F1\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0060" + - "\u00BD\u00BE\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u00EF\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u00F0"; - - private final static short index1[] = { - 0, 248, 395, 506, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, - 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, - 728, 967, 1223, 1447, 395, 395, 1607, 395, 395, 395, 395, 395, 395, 395, 395, 395, - 1855, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, - 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, - 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, - 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, - 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, - 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, - 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, - 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, - 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, - 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, - 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, - 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, - 395, 395, 395, 395, 395, 395, 395, 395, 1882, 395, 395, 395, 395, 395, 395, 395, - - }; - } -} diff --git a/jdk/src/share/classes/sun/nio/cs/ext/MacThai.java b/jdk/src/share/classes/sun/nio/cs/ext/MacThai.java deleted file mode 100644 index 0c82884aab0..00000000000 --- a/jdk/src/share/classes/sun/nio/cs/ext/MacThai.java +++ /dev/null @@ -1,338 +0,0 @@ - -/* - * Copyright 2003-2004 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. - */ - -package sun.nio.cs.ext; - - -import java.nio.charset.Charset; -import java.nio.charset.CharsetDecoder; -import java.nio.charset.CharsetEncoder; -import sun.nio.cs.StandardCharsets; -import sun.nio.cs.SingleByteDecoder; -import sun.nio.cs.SingleByteEncoder; -import sun.nio.cs.HistoricallyNamedCharset; - -public class MacThai - extends Charset - implements HistoricallyNamedCharset -{ - - public MacThai() { - super("x-MacThai", ExtendedCharsets.aliasesFor("x-MacThai")); - } - - public String historicalName() { - return "MacThai"; - } - - public boolean contains(Charset cs) { - return (cs instanceof MacThai); - } - - public CharsetDecoder newDecoder() { - return new Decoder(this); - } - - public CharsetEncoder newEncoder() { - return new Encoder(this); - } - - - /** - * These accessors are temporarily supplied while sun.io - * converters co-exist with the sun.nio.cs.{ext} charset coders - * These facilitate sharing of conversion tables between the - * two co-existing implementations. When sun.io converters - * are made extinct these will be unncessary and should be removed - */ - - public String getDecoderSingleByteMappings() { - return Decoder.byteToCharTable; - - } - - public short[] getEncoderIndex1() { - return Encoder.index1; - - } - public String getEncoderIndex2() { - return Encoder.index2; - - } - - private static class Decoder extends SingleByteDecoder { - public Decoder(Charset cs) { - super(cs, byteToCharTable); - } - - private final static String byteToCharTable = - - "\u00AB\u00BB\u2026\uF88C\uF88F\uF892\uF895\uF898" + // 0x80 - 0x87 - "\uF88B\uF88E\uF891\uF894\uF897\u201C\u201D\uF899" + // 0x88 - 0x8F - "\uFFFD\u2022\uF884\uF889\uF885\uF886\uF887\uF888" + // 0x90 - 0x97 - "\uF88A\uF88D\uF890\uF893\uF896\u2018\u2019\uFFFD" + // 0x98 - 0x9F - "\u00A0\u0E01\u0E02\u0E03\u0E04\u0E05\u0E06\u0E07" + // 0xA0 - 0xA7 - "\u0E08\u0E09\u0E0A\u0E0B\u0E0C\u0E0D\u0E0E\u0E0F" + // 0xA8 - 0xAF - "\u0E10\u0E11\u0E12\u0E13\u0E14\u0E15\u0E16\u0E17" + // 0xB0 - 0xB7 - "\u0E18\u0E19\u0E1A\u0E1B\u0E1C\u0E1D\u0E1E\u0E1F" + // 0xB8 - 0xBF - "\u0E20\u0E21\u0E22\u0E23\u0E24\u0E25\u0E26\u0E27" + // 0xC0 - 0xC7 - "\u0E28\u0E29\u0E2A\u0E2B\u0E2C\u0E2D\u0E2E\u0E2F" + // 0xC8 - 0xCF - "\u0E30\u0E31\u0E32\u0E33\u0E34\u0E35\u0E36\u0E37" + // 0xD0 - 0xD7 - "\u0E38\u0E39\u0E3A\uFEFF\u200B\u2013\u2014\u0E3F" + // 0xD8 - 0xDF - "\u0E40\u0E41\u0E42\u0E43\u0E44\u0E45\u0E46\u0E47" + // 0xE0 - 0xE7 - "\u0E48\u0E49\u0E4A\u0E4B\u0E4C\u0E4D\u2122\u0E4F" + // 0xE8 - 0xEF - "\u0E50\u0E51\u0E52\u0E53\u0E54\u0E55\u0E56\u0E57" + // 0xF0 - 0xF7 - "\u0E58\u0E59\u00AE\u00A9\uFFFD\uFFFD\uFFFD\uFFFD" + // 0xF8 - 0xFF - "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007" + // 0x00 - 0x07 - "\b\t\n\u000B\f\r\u000E\u000F" + // 0x08 - 0x0F - "\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017" + // 0x10 - 0x17 - "\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F" + // 0x18 - 0x1F - "\u0020\u0021\"\u0023\u0024\u0025\u0026\'" + // 0x20 - 0x27 - "\u0028\u0029\u002A\u002B\u002C\u002D\u002E\u002F" + // 0x28 - 0x2F - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + // 0x30 - 0x37 - "\u0038\u0039\u003A\u003B\u003C\u003D\u003E\u003F" + // 0x38 - 0x3F - "\u0040\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + // 0x40 - 0x47 - "\u0048\u0049\u004A\u004B\u004C\u004D\u004E\u004F" + // 0x48 - 0x4F - "\u0050\u0051\u0052\u0053\u0054\u0055\u0056\u0057" + // 0x50 - 0x57 - "\u0058\u0059\u005A\u005B\\\u005D\u005E\u005F" + // 0x58 - 0x5F - "\u0060\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + // 0x60 - 0x67 - "\u0068\u0069\u006A\u006B\u006C\u006D\u006E\u006F" + // 0x68 - 0x6F - "\u0070\u0071\u0072\u0073\u0074\u0075\u0076\u0077" + // 0x70 - 0x77 - "\u0078\u0079\u007A\u007B\u007C\u007D\u007E\u007F"; // 0x78 - 0x7F - - } - - private static class Encoder extends SingleByteEncoder { - public Encoder(Charset cs) { - super(cs, index1, index2, 0xFF00, 0x00FF, 8); - } - - private final static String index2 = - - - "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007" + - "\b\t\n\u000B\f\r\u000E\u000F" + - "\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017" + - "\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F" + - "\u0020\u0021\"\u0023\u0024\u0025\u0026\'" + - "\u0028\u0029\u002A\u002B\u002C\u002D\u002E\u002F" + - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + - "\u0038\u0039\u003A\u003B\u003C\u003D\u003E\u003F" + - "\u0040\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + - "\u0048\u0049\u004A\u004B\u004C\u004D\u004E\u004F" + - "\u0050\u0051\u0052\u0053\u0054\u0055\u0056\u0057" + - "\u0058\u0059\u005A\u005B\\\u005D\u005E\u005F" + - "\u0060\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + - "\u0068\u0069\u006A\u006B\u006C\u006D\u006E\u006F" + - "\u0070\u0071\u0072\u0073\u0074\u0075\u0076\u0077" + - "\u0078\u0079\u007A\u007B\u007C\u007D\u007E\u007F" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00A0\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u00FB\u0000\u0080\u0000\u0000\u00FA\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0081\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u00A1\u00A2\u00A3\u00A4" + - "\u00A5\u00A6\u00A7\u00A8\u00A9\u00AA\u00AB\u00AC" + - "\u00AD\u00AE\u00AF\u00B0\u00B1\u00B2\u00B3\u00B4" + - "\u00B5\u00B6\u00B7\u00B8\u00B9\u00BA\u00BB\u00BC" + - "\u00BD\u00BE\u00BF\u00C0\u00C1\u00C2\u00C3\u00C4" + - "\u00C5\u00C6\u00C7\u00C8\u00C9\u00CA\u00CB\u00CC" + - "\u00CD\u00CE\u00CF\u00D0\u00D1\u00D2\u00D3\u00D4" + - "\u00D5\u00D6\u00D7\u00D8\u00D9\u00DA\u0000\u0000" + - "\u0000\u0000\u00DF\u00E0\u00E1\u00E2\u00E3\u00E4" + - "\u00E5\u00E6\u00E7\u00E8\u00E9\u00EA\u00EB\u00EC" + - "\u00ED\u0000\u00EF\u00F0\u00F1\u00F2\u00F3\u00F4" + - "\u00F5\u00F6\u00F7\u00F8\u00F9\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u00DC\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u00DD\u00DE\u0000\u0000\u0000" + - "\u009D\u009E\u0000\u0000\u008D\u008E\u0000\u0000" + - "\u0000\u0000\u0091\u0000\u0000\u0000\u0082\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00EE\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0092\u0094" + - "\u0095\u0096\u0097\u0093\u0098\u0088\u0083\u0099" + - "\u0089\u0084\u009A\u008A\u0085\u009B\u008B\u0086" + - "\u009C\u008C\u0087\u008F\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u00DB"; - - private final static short index1[] = { - 0, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 443, 188, - 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, - 688, 910, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, - 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, - 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, - 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, - 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, - 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, - 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, - 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, - 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, - 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, - 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, - 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, - 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, - 188, 188, 188, 188, 188, 188, 188, 188, 1034, 188, 188, 188, 188, 188, 1188, 188, - - }; - } -} diff --git a/jdk/src/share/classes/sun/nio/cs/ext/MacTurkish.java b/jdk/src/share/classes/sun/nio/cs/ext/MacTurkish.java deleted file mode 100644 index 23fe73bc6d0..00000000000 --- a/jdk/src/share/classes/sun/nio/cs/ext/MacTurkish.java +++ /dev/null @@ -1,402 +0,0 @@ - -/* - * Copyright 2003-2004 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. - */ - -package sun.nio.cs.ext; - - -import java.nio.charset.Charset; -import java.nio.charset.CharsetDecoder; -import java.nio.charset.CharsetEncoder; -import sun.nio.cs.StandardCharsets; -import sun.nio.cs.SingleByteDecoder; -import sun.nio.cs.SingleByteEncoder; -import sun.nio.cs.HistoricallyNamedCharset; - -public class MacTurkish - extends Charset - implements HistoricallyNamedCharset -{ - - public MacTurkish() { - super("x-MacTurkish", ExtendedCharsets.aliasesFor("x-MacTurkish")); - } - - public String historicalName() { - return "MacTurkish"; - } - - public boolean contains(Charset cs) { - return (cs instanceof MacTurkish); - } - - public CharsetDecoder newDecoder() { - return new Decoder(this); - } - - public CharsetEncoder newEncoder() { - return new Encoder(this); - } - - - /** - * These accessors are temporarily supplied while sun.io - * converters co-exist with the sun.nio.cs.{ext} charset coders - * These facilitate sharing of conversion tables between the - * two co-existing implementations. When sun.io converters - * are made extinct these will be unncessary and should be removed - */ - - public String getDecoderSingleByteMappings() { - return Decoder.byteToCharTable; - - } - - public short[] getEncoderIndex1() { - return Encoder.index1; - - } - public String getEncoderIndex2() { - return Encoder.index2; - - } - - private static class Decoder extends SingleByteDecoder { - public Decoder(Charset cs) { - super(cs, byteToCharTable); - } - - private final static String byteToCharTable = - - "\u00C4\u00C5\u00C7\u00C9\u00D1\u00D6\u00DC\u00E1" + // 0x80 - 0x87 - "\u00E0\u00E2\u00E4\u00E3\u00E5\u00E7\u00E9\u00E8" + // 0x88 - 0x8F - "\u00EA\u00EB\u00ED\u00EC\u00EE\u00EF\u00F1\u00F3" + // 0x90 - 0x97 - "\u00F2\u00F4\u00F6\u00F5\u00FA\u00F9\u00FB\u00FC" + // 0x98 - 0x9F - "\u2020\u00B0\u00A2\u00A3\u00A7\u2022\u00B6\u00DF" + // 0xA0 - 0xA7 - "\u00AE\u00A9\u2122\u00B4\u00A8\u2260\u00C6\u00D8" + // 0xA8 - 0xAF - "\u221E\u00B1\u2264\u2265\u00A5\u00B5\u2202\u2211" + // 0xB0 - 0xB7 - "\u220F\u03C0\u222B\u00AA\u00BA\u2126\u00E6\u00F8" + // 0xB8 - 0xBF - "\u00BF\u00A1\u00AC\u221A\u0192\u2248\u2206\u00AB" + // 0xC0 - 0xC7 - "\u00BB\u2026\u00A0\u00C0\u00C3\u00D5\u0152\u0153" + // 0xC8 - 0xCF - "\u2013\u2014\u201C\u201D\u2018\u2019\u00F7\u25CA" + // 0xD0 - 0xD7 - "\u00FF\u0178\u011E\u011F\u0130\u0131\u015E\u015F" + // 0xD8 - 0xDF - "\u2021\u00B7\u201A\u201E\u2030\u00C2\u00CA\u00C1" + // 0xE0 - 0xE7 - "\u00CB\u00C8\u00CD\u00CE\u00CF\u00CC\u00D3\u00D4" + // 0xE8 - 0xEF - "\uF8FF\u00D2\u00DA\u00DB\u00D9\uFFFD\u02C6\u02DC" + // 0xF0 - 0xF7 - "\u00AF\u02D8\u02D9\u02DA\u00B8\u02DD\u02DB\u02C7" + // 0xF8 - 0xFF - "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007" + // 0x00 - 0x07 - "\b\t\n\u000B\f\r\u000E\u000F" + // 0x08 - 0x0F - "\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017" + // 0x10 - 0x17 - "\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F" + // 0x18 - 0x1F - "\u0020\u0021\"\u0023\u0024\u0025\u0026\'" + // 0x20 - 0x27 - "\u0028\u0029\u002A\u002B\u002C\u002D\u002E\u002F" + // 0x28 - 0x2F - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + // 0x30 - 0x37 - "\u0038\u0039\u003A\u003B\u003C\u003D\u003E\u003F" + // 0x38 - 0x3F - "\u0040\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + // 0x40 - 0x47 - "\u0048\u0049\u004A\u004B\u004C\u004D\u004E\u004F" + // 0x48 - 0x4F - "\u0050\u0051\u0052\u0053\u0054\u0055\u0056\u0057" + // 0x50 - 0x57 - "\u0058\u0059\u005A\u005B\\\u005D\u005E\u005F" + // 0x58 - 0x5F - "\u0060\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + // 0x60 - 0x67 - "\u0068\u0069\u006A\u006B\u006C\u006D\u006E\u006F" + // 0x68 - 0x6F - "\u0070\u0071\u0072\u0073\u0074\u0075\u0076\u0077" + // 0x70 - 0x77 - "\u0078\u0079\u007A\u007B\u007C\u007D\u007E\u007F"; // 0x78 - 0x7F - - } - - private static class Encoder extends SingleByteEncoder { - public Encoder(Charset cs) { - super(cs, index1, index2, 0xFF00, 0x00FF, 8); - } - - private final static String index2 = - - - "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007" + - "\b\t\n\u000B\f\r\u000E\u000F" + - "\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017" + - "\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F" + - "\u0020\u0021\"\u0023\u0024\u0025\u0026\'" + - "\u0028\u0029\u002A\u002B\u002C\u002D\u002E\u002F" + - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + - "\u0038\u0039\u003A\u003B\u003C\u003D\u003E\u003F" + - "\u0040\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + - "\u0048\u0049\u004A\u004B\u004C\u004D\u004E\u004F" + - "\u0050\u0051\u0052\u0053\u0054\u0055\u0056\u0057" + - "\u0058\u0059\u005A\u005B\\\u005D\u005E\u005F" + - "\u0060\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + - "\u0068\u0069\u006A\u006B\u006C\u006D\u006E\u006F" + - "\u0070\u0071\u0072\u0073\u0074\u0075\u0076\u0077" + - "\u0078\u0079\u007A\u007B\u007C\u007D\u007E\u007F" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00CA\u00C1\u00A2\u00A3\u0000\u00B4\u0000\u00A4" + - "\u00AC\u00A9\u00BB\u00C7\u00C2\u0000\u00A8\u00F8" + - "\u00A1\u00B1\u0000\u0000\u00AB\u00B5\u00A6\u00E1" + - "\u00FC\u0000\u00BC\u00C8\u0000\u0000\u0000\u00C0" + - "\u00CB\u00E7\u00E5\u00CC\u0080\u0081\u00AE\u0082" + - "\u00E9\u0083\u00E6\u00E8\u00ED\u00EA\u00EB\u00EC" + - "\u0000\u0084\u00F1\u00EE\u00EF\u00CD\u0085\u0000" + - "\u00AF\u00F4\u00F2\u00F3\u0086\u0000\u0000\u00A7" + - "\u0088\u0087\u0089\u008B\u008A\u008C\u00BE\u008D" + - "\u008F\u008E\u0090\u0091\u0093\u0092\u0094\u0095" + - "\u0000\u0096\u0098\u0097\u0099\u009B\u009A\u00D6" + - "\u00BF\u009D\u009C\u009E\u009F\u0000\u0000\u00D8" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u00DA\u00DB" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00DC\u00DD\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u00CE\u00CF\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u00DE\u00DF" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00D9\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u00C4\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u00F6\u00FF\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u00F9\u00FA\u00FB" + - "\u00FE\u00F7\u00FD\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u00B9\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u00D0\u00D1\u0000\u0000\u0000" + - "\u00D4\u00D5\u00E2\u0000\u00D2\u00D3\u00E3\u0000" + - "\u00A0\u00E0\u00A5\u0000\u0000\u0000\u00C9\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00E4\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00AA\u0000\u0000\u0000\u00BD\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u00B6\u0000" + - "\u0000\u0000\u00C6\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u00B8\u0000\u00B7\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u00C3\u0000" + - "\u0000\u0000\u00B0\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u00BA" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u00C5\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u00AD\u0000\u0000\u0000" + - "\u00B2\u00B3\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u00D7\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u00F0"; - - private final static short index1[] = { - 0, 256, 461, 683, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 920, 1142, 1396, 403, 403, 1498, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 1701, 403, 403, 403, 403, 403, 403, 403, - - }; - } -} diff --git a/jdk/src/share/classes/sun/nio/cs/ext/MacUkraine.java b/jdk/src/share/classes/sun/nio/cs/ext/MacUkraine.java deleted file mode 100644 index 678c62f380f..00000000000 --- a/jdk/src/share/classes/sun/nio/cs/ext/MacUkraine.java +++ /dev/null @@ -1,361 +0,0 @@ - -/* - * Copyright 2003-2004 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. - */ - -package sun.nio.cs.ext; - - -import java.nio.charset.Charset; -import java.nio.charset.CharsetDecoder; -import java.nio.charset.CharsetEncoder; -import sun.nio.cs.StandardCharsets; -import sun.nio.cs.SingleByteDecoder; -import sun.nio.cs.SingleByteEncoder; -import sun.nio.cs.HistoricallyNamedCharset; - -public class MacUkraine - extends Charset - implements HistoricallyNamedCharset -{ - - public MacUkraine() { - super("x-MacUkraine", ExtendedCharsets.aliasesFor("x-MacUkraine")); - } - - public String historicalName() { - return "MacUkraine"; - } - - public boolean contains(Charset cs) { - return (cs instanceof MacUkraine); - } - - public CharsetDecoder newDecoder() { - return new Decoder(this); - } - - public CharsetEncoder newEncoder() { - return new Encoder(this); - } - - - /** - * These accessors are temporarily supplied while sun.io - * converters co-exist with the sun.nio.cs.{ext} charset coders - * These facilitate sharing of conversion tables between the - * two co-existing implementations. When sun.io converters - * are made extinct these will be unncessary and should be removed - */ - - public String getDecoderSingleByteMappings() { - return Decoder.byteToCharTable; - - } - - public short[] getEncoderIndex1() { - return Encoder.index1; - - } - public String getEncoderIndex2() { - return Encoder.index2; - - } - - private static class Decoder extends SingleByteDecoder { - public Decoder(Charset cs) { - super(cs, byteToCharTable); - } - - private final static String byteToCharTable = - - "\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417" + // 0x80 - 0x87 - "\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F" + // 0x88 - 0x8F - "\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427" + // 0x90 - 0x97 - "\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F" + // 0x98 - 0x9F - "\u2020\u00B0\u0490\u00A3\u00A7\u2022\u00B6\u0406" + // 0xA0 - 0xA7 - "\u00AE\u00A9\u2122\u0402\u0452\u2260\u0403\u0453" + // 0xA8 - 0xAF - "\u221E\u00B1\u2264\u2265\u0456\u00B5\u0491\u0408" + // 0xB0 - 0xB7 - "\u0404\u0454\u0407\u0457\u0409\u0459\u040A\u045A" + // 0xB8 - 0xBF - "\u0458\u0405\u00AC\u221A\u0192\u2248\u2206\u00AB" + // 0xC0 - 0xC7 - "\u00BB\u2026\u00A0\u040B\u045B\u040C\u045C\u0455" + // 0xC8 - 0xCF - "\u2013\u2014\u201C\u201D\u2018\u2019\u00F7\u201E" + // 0xD0 - 0xD7 - "\u040E\u045E\u040F\u045F\u2116\u0401\u0451\u044F" + // 0xD8 - 0xDF - "\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437" + // 0xE0 - 0xE7 - "\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F" + // 0xE8 - 0xEF - "\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447" + // 0xF0 - 0xF7 - "\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u00A4" + // 0xF8 - 0xFF - "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007" + // 0x00 - 0x07 - "\b\t\n\u000B\f\r\u000E\u000F" + // 0x08 - 0x0F - "\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017" + // 0x10 - 0x17 - "\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F" + // 0x18 - 0x1F - "\u0020\u0021\"\u0023\u0024\u0025\u0026\'" + // 0x20 - 0x27 - "\u0028\u0029\u002A\u002B\u002C\u002D\u002E\u002F" + // 0x28 - 0x2F - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + // 0x30 - 0x37 - "\u0038\u0039\u003A\u003B\u003C\u003D\u003E\u003F" + // 0x38 - 0x3F - "\u0040\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + // 0x40 - 0x47 - "\u0048\u0049\u004A\u004B\u004C\u004D\u004E\u004F" + // 0x48 - 0x4F - "\u0050\u0051\u0052\u0053\u0054\u0055\u0056\u0057" + // 0x50 - 0x57 - "\u0058\u0059\u005A\u005B\\\u005D\u005E\u005F" + // 0x58 - 0x5F - "\u0060\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + // 0x60 - 0x67 - "\u0068\u0069\u006A\u006B\u006C\u006D\u006E\u006F" + // 0x68 - 0x6F - "\u0070\u0071\u0072\u0073\u0074\u0075\u0076\u0077" + // 0x70 - 0x77 - "\u0078\u0079\u007A\u007B\u007C\u007D\u007E\u007F"; // 0x78 - 0x7F - - } - - private static class Encoder extends SingleByteEncoder { - public Encoder(Charset cs) { - super(cs, index1, index2, 0xFF00, 0x00FF, 8); - } - - private final static String index2 = - - - "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007" + - "\b\t\n\u000B\f\r\u000E\u000F" + - "\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017" + - "\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F" + - "\u0020\u0021\"\u0023\u0024\u0025\u0026\'" + - "\u0028\u0029\u002A\u002B\u002C\u002D\u002E\u002F" + - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + - "\u0038\u0039\u003A\u003B\u003C\u003D\u003E\u003F" + - "\u0040\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + - "\u0048\u0049\u004A\u004B\u004C\u004D\u004E\u004F" + - "\u0050\u0051\u0052\u0053\u0054\u0055\u0056\u0057" + - "\u0058\u0059\u005A\u005B\\\u005D\u005E\u005F" + - "\u0060\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + - "\u0068\u0069\u006A\u006B\u006C\u006D\u006E\u006F" + - "\u0070\u0071\u0072\u0073\u0074\u0075\u0076\u0077" + - "\u0078\u0079\u007A\u007B\u007C\u007D\u007E\u007F" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00CA\u0000\u0000\u00A3\u00FF\u0000\u0000\u00A4" + - "\u0000\u00A9\u0000\u00C7\u00C2\u0000\u00A8\u0000" + - "\u00A1\u00B1\u0000\u0000\u0000\u00B5\u00A6\u0000" + - "\u0000\u0000\u0000\u00C8\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u00D6" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u00C4\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u00DD\u00AB\u00AE\u00B8\u00C1" + - "\u00A7\u00BA\u00B7\u00BC\u00BE\u00CB\u00CD\u0000" + - "\u00D8\u00DA\u0080\u0081\u0082\u0083\u0084\u0085" + - "\u0086\u0087\u0088\u0089\u008A\u008B\u008C\u008D" + - "\u008E\u008F\u0090\u0091\u0092\u0093\u0094\u0095" + - "\u0096\u0097\u0098\u0099\u009A\u009B\u009C\u009D" + - "\u009E\u009F\u00E0\u00E1\u00E2\u00E3\u00E4\u00E5" + - "\u00E6\u00E7\u00E8\u00E9\u00EA\u00EB\u00EC\u00ED" + - "\u00EE\u00EF\u00F0\u00F1\u00F2\u00F3\u00F4\u00F5" + - "\u00F6\u00F7\u00F8\u00F9\u00FA\u00FB\u00FC\u00FD" + - "\u00FE\u00DF\u0000\u00DE\u00AC\u00AF\u00B9\u00CF" + - "\u00B4\u00BB\u00C0\u00BD\u00BF\u00CC\u00CE\u0000" + - "\u00D9\u00DB\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u00A2\u00B6\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u00D0\u00D1\u0000\u0000\u0000\u00D4" + - "\u00D5\u0000\u0000\u00D2\u00D3\u00D7\u0000\u00A0" + - "\u0000\u00A5\u0000\u0000\u0000\u00C9\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u00DC" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u00AA\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u00C6\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u00C3\u0000\u0000" + - "\u0000\u00B0\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u00C5\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u00AD\u0000\u0000\u0000\u00B2" + - "\u00B3\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000"; - - private final static short index1[] = { - 0, 248, 395, 395, 650, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, - 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, - 887, 1121, 1371, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, - 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, - 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, - 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, - 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, - 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, - 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, - 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, - 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, - 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, - 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, - 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, - 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, - 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, - - }; - } -} diff --git a/jdk/src/share/classes/sun/nio/cs/ext/TIS_620.java b/jdk/src/share/classes/sun/nio/cs/ext/TIS_620.java deleted file mode 100644 index 973135a98b3..00000000000 --- a/jdk/src/share/classes/sun/nio/cs/ext/TIS_620.java +++ /dev/null @@ -1,244 +0,0 @@ - -/* - * Copyright 2002-2004 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. - */ - -package sun.nio.cs.ext; - - -import java.nio.ByteBuffer; -import java.nio.CharBuffer; -import java.nio.charset.Charset; -import java.nio.charset.CharsetDecoder; -import java.nio.charset.CharsetEncoder; -import java.nio.charset.CharacterCodingException; -import java.nio.charset.MalformedInputException; -import java.nio.charset.UnmappableCharacterException; -import sun.nio.cs.StandardCharsets; -import sun.nio.cs.SingleByteDecoder; -import sun.nio.cs.SingleByteEncoder; -import sun.nio.cs.HistoricallyNamedCharset; - -public class TIS_620 - extends Charset - implements HistoricallyNamedCharset -{ - - public TIS_620() { - super("TIS-620", ExtendedCharsets.aliasesFor("TIS-620")); - } - - public String historicalName() { - return "TIS620"; - } - - public boolean contains(Charset cs) { - return ((cs.name().equals("US-ASCII")) - || (cs instanceof TIS_620)); - } - - public CharsetDecoder newDecoder() { - return new Decoder(this); - } - - public CharsetEncoder newEncoder() { - return new Encoder(this); - } - - - /** - * These accessors are temporarily supplied while sun.io - * converters co-exist with the sun.nio.cs.{ext} charset coders - * These facilitate sharing of conversion tables between the - * two co-existing implementations. When sun.io converters - * are made extinct these will be unncessary and should be removed - */ - - public String getDecoderSingleByteMappings() { - return Decoder.byteToCharTable; - - } - - public short[] getEncoderIndex1() { - return Encoder.index1; - - } - public String getEncoderIndex2() { - return Encoder.index2; - - } - - private static class Decoder extends SingleByteDecoder { - public Decoder(Charset cs) { - super(cs, byteToCharTable); - } - - private final static String byteToCharTable = - - "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD" + // 0x80 - 0x87 - "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD" + // 0x88 - 0x8F - "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD" + // 0x90 - 0x97 - "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD" + // 0x98 - 0x9F - "\u00A0\u0E01\u0E02\u0E03\u0E04\u0E05\u0E06\u0E07" + // 0xA0 - 0xA7 - "\u0E08\u0E09\u0E0A\u0E0B\u0E0C\u0E0D\u0E0E\u0E0F" + // 0xA8 - 0xAF - "\u0E10\u0E11\u0E12\u0E13\u0E14\u0E15\u0E16\u0E17" + // 0xB0 - 0xB7 - "\u0E18\u0E19\u0E1A\u0E1B\u0E1C\u0E1D\u0E1E\u0E1F" + // 0xB8 - 0xBF - "\u0E20\u0E21\u0E22\u0E23\u0E24\u0E25\u0E26\u0E27" + // 0xC0 - 0xC7 - "\u0E28\u0E29\u0E2A\u0E2B\u0E2C\u0E2D\u0E2E\u0E2F" + // 0xC8 - 0xCF - "\u0E30\u0E31\u0E32\u0E33\u0E34\u0E35\u0E36\u0E37" + // 0xD0 - 0xD7 - "\u0E38\u0E39\u0E3A\uFFFD\uFFFD\uFFFD\uFFFD\u0E3F" + // 0xD8 - 0xDF - "\u0E40\u0E41\u0E42\u0E43\u0E44\u0E45\u0E46\u0E47" + // 0xE0 - 0xE7 - "\u0E48\u0E49\u0E4A\u0E4B\u0E4C\u0E4D\u0E4E\u0E4F" + // 0xE8 - 0xEF - "\u0E50\u0E51\u0E52\u0E53\u0E54\u0E55\u0E56\u0E57" + // 0xF0 - 0xF7 - "\u0E58\u0E59\u0E5A\u0E5B\uFFFD\uFFFD\uFFFD\uFFFD" + // 0xF8 - 0xFF - "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007" + // 0x00 - 0x07 - "\b\t\n\u000B\f\r\u000E\u000F" + // 0x08 - 0x0F - "\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017" + // 0x10 - 0x17 - "\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F" + // 0x18 - 0x1F - "\u0020\u0021\"\u0023\u0024\u0025\u0026\'" + // 0x20 - 0x27 - "\u0028\u0029\u002A\u002B\u002C\u002D\u002E\u002F" + // 0x28 - 0x2F - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + // 0x30 - 0x37 - "\u0038\u0039\u003A\u003B\u003C\u003D\u003E\u003F" + // 0x38 - 0x3F - "\u0040\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + // 0x40 - 0x47 - "\u0048\u0049\u004A\u004B\u004C\u004D\u004E\u004F" + // 0x48 - 0x4F - "\u0050\u0051\u0052\u0053\u0054\u0055\u0056\u0057" + // 0x50 - 0x57 - "\u0058\u0059\u005A\u005B\\\u005D\u005E\u005F" + // 0x58 - 0x5F - "\u0060\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + // 0x60 - 0x67 - "\u0068\u0069\u006A\u006B\u006C\u006D\u006E\u006F" + // 0x68 - 0x6F - "\u0070\u0071\u0072\u0073\u0074\u0075\u0076\u0077" + // 0x70 - 0x77 - "\u0078\u0079\u007A\u007B\u007C\u007D\u007E\u007F"; // 0x78 - 0x7F - } - - private static class Encoder extends SingleByteEncoder { - public Encoder(Charset cs) { - super(cs, index1, index2, 0xFF00, 0x00FF, 8); - } - - private final static String index2 = - - "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007" + - "\b\t\n\u000B\f\r\u000E\u000F" + - "\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017" + - "\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F" + - "\u0020\u0021\"\u0023\u0024\u0025\u0026\'" + - "\u0028\u0029\u002A\u002B\u002C\u002D\u002E\u002F" + - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + - "\u0038\u0039\u003A\u003B\u003C\u003D\u003E\u003F" + - "\u0040\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + - "\u0048\u0049\u004A\u004B\u004C\u004D\u004E\u004F" + - "\u0050\u0051\u0052\u0053\u0054\u0055\u0056\u0057" + - "\u0058\u0059\u005A\u005B\\\u005D\u005E\u005F" + - "\u0060\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + - "\u0068\u0069\u006A\u006B\u006C\u006D\u006E\u006F" + - "\u0070\u0071\u0072\u0073\u0074\u0075\u0076\u0077" + - "\u0078\u0079\u007A\u007B\u007C\u007D\u007E\u007F" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00A0\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u00A1\u00A2\u00A3\u00A4\u00A5\u00A6\u00A7" + - "\u00A8\u00A9\u00AA\u00AB\u00AC\u00AD\u00AE\u00AF" + - "\u00B0\u00B1\u00B2\u00B3\u00B4\u00B5\u00B6\u00B7" + - "\u00B8\u00B9\u00BA\u00BB\u00BC\u00BD\u00BE\u00BF" + - "\u00C0\u00C1\u00C2\u00C3\u00C4\u00C5\u00C6\u00C7" + - "\u00C8\u00C9\u00CA\u00CB\u00CC\u00CD\u00CE\u00CF" + - "\u00D0\u00D1\u00D2\u00D3\u00D4\u00D5\u00D6\u00D7" + - "\u00D8\u00D9\u00DA\u0000\u0000\u0000\u0000\u00DF" + - "\u00E0\u00E1\u00E2\u00E3\u00E4\u00E5\u00E6\u00E7" + - "\u00E8\u00E9\u00EA\u00EB\u00EC\u00ED\u00EE\u00EF" + - "\u00F0\u00F1\u00F2\u00F3\u00F4\u00F5\u00F6\u00F7" + - "\u00F8\u00F9\u00FA\u00FB\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"; - - private final static short index1[] = { - 0, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 416, 161, - 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, - 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, - 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, - 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, - 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, - 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, - 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, - 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, - 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, - 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, - 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, - 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, - 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, - 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, - 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, - }; - } -} From e0d2bfab81e2b9c577c6989ded28d8f1ee0784c1 Mon Sep 17 00:00:00 2001 From: Coleen Phillimore Date: Wed, 10 Dec 2008 15:14:29 -0800 Subject: [PATCH 079/110] 6727377: VM stack guard pages on Windows should PAGE_READWRITE not PAGE_EXECUTE_READWRITE Make reguard_stack change access to RW, not execute and use os::protect_memory with the new parameter when change needed to X. Reviewed-by: acorn, jcoomes --- hotspot/src/os/linux/vm/os_linux.cpp | 2 +- hotspot/src/os/solaris/vm/os_solaris.cpp | 4 +++- hotspot/src/os/windows/vm/os_windows.cpp | 9 +++++---- hotspot/src/os_cpu/linux_x86/vm/os_linux_x86.cpp | 5 +++-- hotspot/src/os_cpu/solaris_x86/vm/os_solaris_x86.cpp | 5 +++-- hotspot/src/share/vm/prims/jni.cpp | 3 ++- hotspot/src/share/vm/runtime/os.cpp | 5 +++-- hotspot/src/share/vm/runtime/os.hpp | 2 +- 8 files changed, 21 insertions(+), 14 deletions(-) diff --git a/hotspot/src/os/linux/vm/os_linux.cpp b/hotspot/src/os/linux/vm/os_linux.cpp index 6331bf4aca5..3b8c0b4dc03 100644 --- a/hotspot/src/os/linux/vm/os_linux.cpp +++ b/hotspot/src/os/linux/vm/os_linux.cpp @@ -2500,7 +2500,7 @@ bool os::guard_memory(char* addr, size_t size) { } bool os::unguard_memory(char* addr, size_t size) { - return linux_mprotect(addr, size, PROT_READ|PROT_WRITE|PROT_EXEC); + return linux_mprotect(addr, size, PROT_READ|PROT_WRITE); } // Large page support diff --git a/hotspot/src/os/solaris/vm/os_solaris.cpp b/hotspot/src/os/solaris/vm/os_solaris.cpp index 7225f3be425..8553c1edee2 100644 --- a/hotspot/src/os/solaris/vm/os_solaris.cpp +++ b/hotspot/src/os/solaris/vm/os_solaris.cpp @@ -3026,6 +3026,8 @@ static bool solaris_mprotect(char* addr, size_t bytes, int prot) { // Protect memory (Used to pass readonly pages through // JNI GetArrayElements with empty arrays.) +// Also, used for serialization page and for compressed oops null pointer +// checking. bool os::protect_memory(char* addr, size_t bytes, ProtType prot, bool is_committed) { unsigned int p = 0; @@ -3049,7 +3051,7 @@ bool os::guard_memory(char* addr, size_t bytes) { } bool os::unguard_memory(char* addr, size_t bytes) { - return solaris_mprotect(addr, bytes, PROT_READ|PROT_WRITE|PROT_EXEC); + return solaris_mprotect(addr, bytes, PROT_READ|PROT_WRITE); } // Large page support diff --git a/hotspot/src/os/windows/vm/os_windows.cpp b/hotspot/src/os/windows/vm/os_windows.cpp index 97228370b9f..d674d434b90 100644 --- a/hotspot/src/os/windows/vm/os_windows.cpp +++ b/hotspot/src/os/windows/vm/os_windows.cpp @@ -2020,10 +2020,11 @@ LONG WINAPI topLevelExceptionFilter(struct _EXCEPTION_POINTERS* exceptionInfo) { if (UnguardOnExecutionViolation > 0 && addr != last_addr && (UnguardOnExecutionViolation > 1 || os::address_is_in_vm(addr))) { - // Unguard and retry + // Set memory to RWX and retry address page_start = (address) align_size_down((intptr_t) addr, (intptr_t) page_size); - bool res = os::unguard_memory((char*) page_start, page_size); + bool res = os::protect_memory((char*) page_start, page_size, + os::MEM_PROT_RWX); if (PrintMiscellaneous && Verbose) { char buf[256]; @@ -2755,12 +2756,12 @@ bool os::protect_memory(char* addr, size_t bytes, ProtType prot, bool os::guard_memory(char* addr, size_t bytes) { DWORD old_status; - return VirtualProtect(addr, bytes, PAGE_EXECUTE_READWRITE | PAGE_GUARD, &old_status) != 0; + return VirtualProtect(addr, bytes, PAGE_READWRITE | PAGE_GUARD, &old_status) != 0; } bool os::unguard_memory(char* addr, size_t bytes) { DWORD old_status; - return VirtualProtect(addr, bytes, PAGE_EXECUTE_READWRITE, &old_status) != 0; + return VirtualProtect(addr, bytes, PAGE_READWRITE, &old_status) != 0; } void os::realign_memory(char *addr, size_t bytes, size_t alignment_hint) { } diff --git a/hotspot/src/os_cpu/linux_x86/vm/os_linux_x86.cpp b/hotspot/src/os_cpu/linux_x86/vm/os_linux_x86.cpp index 174c1df492e..90e1921f8a0 100644 --- a/hotspot/src/os_cpu/linux_x86/vm/os_linux_x86.cpp +++ b/hotspot/src/os_cpu/linux_x86/vm/os_linux_x86.cpp @@ -422,10 +422,11 @@ JVM_handle_linux_signal(int sig, if (addr != last_addr && (UnguardOnExecutionViolation > 1 || os::address_is_in_vm(addr))) { - // Unguard and retry + // Set memory to RWX and retry address page_start = (address) align_size_down((intptr_t) addr, (intptr_t) page_size); - bool res = os::unguard_memory((char*) page_start, page_size); + bool res = os::protect_memory((char*) page_start, page_size, + os::MEM_PROT_RWX); if (PrintMiscellaneous && Verbose) { char buf[256]; diff --git a/hotspot/src/os_cpu/solaris_x86/vm/os_solaris_x86.cpp b/hotspot/src/os_cpu/solaris_x86/vm/os_solaris_x86.cpp index 011b671e850..c37370b572b 100644 --- a/hotspot/src/os_cpu/solaris_x86/vm/os_solaris_x86.cpp +++ b/hotspot/src/os_cpu/solaris_x86/vm/os_solaris_x86.cpp @@ -576,10 +576,11 @@ int JVM_handle_solaris_signal(int sig, siginfo_t* info, void* ucVoid, int abort_ if (addr != last_addr && (UnguardOnExecutionViolation > 1 || os::address_is_in_vm(addr))) { - // Unguard and retry + // Make memory rwx and retry address page_start = (address) align_size_down((intptr_t) addr, (intptr_t) page_size); - bool res = os::unguard_memory((char*) page_start, page_size); + bool res = os::protect_memory((char*) page_start, page_size, + os::MEM_PROT_RWX); if (PrintMiscellaneous && Verbose) { char buf[256]; diff --git a/hotspot/src/share/vm/prims/jni.cpp b/hotspot/src/share/vm/prims/jni.cpp index 49ace5c9823..b4a82b9e547 100644 --- a/hotspot/src/share/vm/prims/jni.cpp +++ b/hotspot/src/share/vm/prims/jni.cpp @@ -2173,7 +2173,8 @@ static char* get_bad_address() { size_t size = os::vm_allocation_granularity(); bad_address = os::reserve_memory(size); if (bad_address != NULL) { - os::protect_memory(bad_address, size, os::MEM_PROT_READ); + os::protect_memory(bad_address, size, os::MEM_PROT_READ, + /*is_committed*/false); } } return bad_address; diff --git a/hotspot/src/share/vm/runtime/os.cpp b/hotspot/src/share/vm/runtime/os.cpp index 088a07ff45e..da6d719edc0 100644 --- a/hotspot/src/share/vm/runtime/os.cpp +++ b/hotspot/src/share/vm/runtime/os.cpp @@ -932,8 +932,9 @@ void os::serialize_thread_states() { // the mutator thread if such case is encountered. See bug 6546278 for details. Thread::muxAcquire(&SerializePageLock, "serialize_thread_states"); os::protect_memory((char *)os::get_memory_serialize_page(), - os::vm_page_size(), MEM_PROT_READ, /*is_committed*/true ); - os::unguard_memory((char *)os::get_memory_serialize_page(), os::vm_page_size()); + os::vm_page_size(), MEM_PROT_READ); + os::protect_memory((char *)os::get_memory_serialize_page(), + os::vm_page_size(), MEM_PROT_RW); Thread::muxRelease(&SerializePageLock); } diff --git a/hotspot/src/share/vm/runtime/os.hpp b/hotspot/src/share/vm/runtime/os.hpp index 423cc800529..0856d23a03b 100644 --- a/hotspot/src/share/vm/runtime/os.hpp +++ b/hotspot/src/share/vm/runtime/os.hpp @@ -208,7 +208,7 @@ class os: AllStatic { enum ProtType { MEM_PROT_NONE, MEM_PROT_READ, MEM_PROT_RW, MEM_PROT_RWX }; static bool protect_memory(char* addr, size_t bytes, ProtType prot, - bool is_committed = false); + bool is_committed = true); static bool guard_memory(char* addr, size_t bytes); static bool unguard_memory(char* addr, size_t bytes); From 26f6b1692ac681f0cd0aa081531f6264cbee7717 Mon Sep 17 00:00:00 2001 From: "Y. Srinivas Ramakrishna" Date: Wed, 10 Dec 2008 23:46:10 -0800 Subject: [PATCH 080/110] 6782457: CMS: Livelock in CompactibleFreeListSpace::block_size() 6736295: SIGSEGV in product jvm, assertion "these are the only valid states during a mark sweep" in fastdebug Restructured the code in the perm gen allocation retry loop so as to avoid "safepoint-blocking" on locks, in this case the Heap_lock, while holding uninitialized allocated heap storage. Reviewed-by: apetrusenko, iveresov, jcoomes, jmasa, poonam --- hotspot/src/share/vm/memory/permGen.cpp | 64 ++++++++++++------------- 1 file changed, 32 insertions(+), 32 deletions(-) diff --git a/hotspot/src/share/vm/memory/permGen.cpp b/hotspot/src/share/vm/memory/permGen.cpp index e31c19c80ed..65635fe26cf 100644 --- a/hotspot/src/share/vm/memory/permGen.cpp +++ b/hotspot/src/share/vm/memory/permGen.cpp @@ -26,20 +26,24 @@ #include "incls/_permGen.cpp.incl" HeapWord* PermGen::mem_allocate_in_gen(size_t size, Generation* gen) { - MutexLocker ml(Heap_lock); GCCause::Cause next_cause = GCCause::_permanent_generation_full; GCCause::Cause prev_cause = GCCause::_no_gc; + unsigned int gc_count_before, full_gc_count_before; + HeapWord* obj; for (;;) { - HeapWord* obj = gen->allocate(size, false); - if (obj != NULL) { - return obj; - } - if (gen->capacity() < _capacity_expansion_limit || - prev_cause != GCCause::_no_gc) { - obj = gen->expand_and_allocate(size, false); - } - if (obj == NULL && prev_cause != GCCause::_last_ditch_collection) { + { + MutexLocker ml(Heap_lock); + if ((obj = gen->allocate(size, false)) != NULL) { + return obj; + } + if (gen->capacity() < _capacity_expansion_limit || + prev_cause != GCCause::_no_gc) { + obj = gen->expand_and_allocate(size, false); + } + if (obj != NULL || prev_cause == GCCause::_last_ditch_collection) { + return obj; + } if (GC_locker::is_active_and_needs_gc()) { // If this thread is not in a jni critical section, we stall // the requestor until the critical section has cleared and @@ -61,31 +65,27 @@ HeapWord* PermGen::mem_allocate_in_gen(size_t size, Generation* gen) { return NULL; } } - // Read the GC count while holding the Heap_lock - unsigned int gc_count_before = SharedHeap::heap()->total_collections(); - unsigned int full_gc_count_before = SharedHeap::heap()->total_full_collections(); - { - MutexUnlocker mu(Heap_lock); // give up heap lock, execute gets it back - VM_GenCollectForPermanentAllocation op(size, gc_count_before, full_gc_count_before, - next_cause); - VMThread::execute(&op); - if (!op.prologue_succeeded() || op.gc_locked()) { - assert(op.result() == NULL, "must be NULL if gc_locked() is true"); - continue; // retry and/or stall as necessary - } - obj = op.result(); - assert(obj == NULL || SharedHeap::heap()->is_in_reserved(obj), - "result not in heap"); - if (obj != NULL) { - return obj; - } - } - prev_cause = next_cause; - next_cause = GCCause::_last_ditch_collection; - } else { + gc_count_before = SharedHeap::heap()->total_collections(); + full_gc_count_before = SharedHeap::heap()->total_full_collections(); + } + + // Give up heap lock above, VMThread::execute below gets it back + VM_GenCollectForPermanentAllocation op(size, gc_count_before, full_gc_count_before, + next_cause); + VMThread::execute(&op); + if (!op.prologue_succeeded() || op.gc_locked()) { + assert(op.result() == NULL, "must be NULL if gc_locked() is true"); + continue; // retry and/or stall as necessary + } + obj = op.result(); + assert(obj == NULL || SharedHeap::heap()->is_in_reserved(obj), + "result not in heap"); + if (obj != NULL) { return obj; } + prev_cause = next_cause; + next_cause = GCCause::_last_ditch_collection; } } From 92ea783f35496b7c68282155f805c126749cff25 Mon Sep 17 00:00:00 2001 From: Lev Serebryakov Date: Thu, 11 Dec 2008 03:22:04 -0800 Subject: [PATCH 081/110] 6639341: sometimes contended-exit event comes after contended-entered on another thread DTrace probe "contended-exit" should be fired before unparking object, or context could be lost. Probe firing was moved to proper place. Reviewed-by: coleenp, kamg --- hotspot/src/share/vm/runtime/synchronizer.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hotspot/src/share/vm/runtime/synchronizer.cpp b/hotspot/src/share/vm/runtime/synchronizer.cpp index eb4e2cac0c4..aeb66980add 100644 --- a/hotspot/src/share/vm/runtime/synchronizer.cpp +++ b/hotspot/src/share/vm/runtime/synchronizer.cpp @@ -3363,13 +3363,13 @@ void ObjectMonitor::ExitEpilog (Thread * Self, ObjectWaiter * Wakee) { // If the wakee is cold then transiently setting it's affinity // to the current CPU is a good idea. // See http://j2se.east/~dice/PERSIST/050624-PullAffinity.txt + DTRACE_MONITOR_PROBE(contended__exit, this, object(), Self); Trigger->unpark() ; // Maintain stats and report events to JVMTI if (ObjectSynchronizer::_sync_Parks != NULL) { ObjectSynchronizer::_sync_Parks->inc() ; } - DTRACE_MONITOR_PROBE(contended__exit, this, object(), Self); } From 000b18450778c44e737202f129264f3177be3fbd Mon Sep 17 00:00:00 2001 From: John Coomes Date: Thu, 11 Dec 2008 12:05:08 -0800 Subject: [PATCH 082/110] 6578152: fill_region_with_object has usability and safety issues Reviewed-by: apetrusenko, ysr --- .../gc_implementation/g1/g1CollectedHeap.cpp | 9 +- .../vm/gc_implementation/g1/heapRegionSeq.cpp | 2 +- .../parNew/parGCAllocBuffer.cpp | 16 ++- .../parNew/parNewGeneration.cpp | 2 +- .../parallelScavenge/psMarkSweep.cpp | 23 ++-- .../parallelScavenge/psMarkSweepDecorator.cpp | 19 +--- .../parallelScavenge/psParallelCompact.cpp | 19 ++-- .../parallelScavenge/psParallelCompact.hpp | 31 +++-- .../parallelScavenge/psPromotionManager.cpp | 23 +--- .../shared/mutableNUMASpace.cpp | 12 +- .../share/vm/gc_interface/collectedHeap.cpp | 106 +++++++++++++++++- .../share/vm/gc_interface/collectedHeap.hpp | 39 +++++++ .../vm/gc_interface/collectedHeap.inline.hpp | 7 +- hotspot/src/share/vm/includeDB_gc | 7 +- hotspot/src/share/vm/memory/sharedHeap.cpp | 40 ------- hotspot/src/share/vm/memory/sharedHeap.hpp | 8 -- hotspot/src/share/vm/memory/space.cpp | 16 +-- .../src/share/vm/memory/tenuredGeneration.cpp | 2 +- .../vm/memory/threadLocalAllocBuffer.cpp | 3 +- hotspot/src/share/vm/memory/universe.cpp | 33 +++--- hotspot/src/share/vm/memory/universe.hpp | 3 + hotspot/src/share/vm/oops/arrayOop.hpp | 23 ++-- hotspot/src/share/vm/oops/typeArrayKlass.cpp | 7 +- hotspot/src/share/vm/oops/typeArrayKlass.hpp | 6 +- hotspot/src/share/vm/runtime/globals.hpp | 3 + 25 files changed, 261 insertions(+), 198 deletions(-) diff --git a/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp b/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp index f0cad8ed231..47bff6cca98 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp +++ b/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp @@ -2954,7 +2954,7 @@ public: // The object has been either evacuated or is dead. Fill it with a // dummy object. MemRegion mr((HeapWord*)obj, obj->size()); - SharedHeap::fill_region_with_object(mr); + CollectedHeap::fill_with_object(mr); _cm->clearRangeBothMaps(mr); } } @@ -3225,7 +3225,7 @@ void G1CollectedHeap::par_allocate_remaining_space(HeapRegion* r) { // Otherwise, try to claim it. block = r->par_allocate(free_words); } while (block == NULL); - SharedHeap::fill_region_with_object(MemRegion(block, free_words)); + fill_with_object(block, free_words); } #define use_local_bitmaps 1 @@ -3619,9 +3619,8 @@ public: guarantee(alloc_buffer(purpose)->contains(obj + word_sz - 1), "should contain whole object"); alloc_buffer(purpose)->undo_allocation(obj, word_sz); - } - else { - SharedHeap::fill_region_with_object(MemRegion(obj, word_sz)); + } else { + CollectedHeap::fill_with_object(obj, word_sz); add_to_undo_waste(word_sz); } } diff --git a/hotspot/src/share/vm/gc_implementation/g1/heapRegionSeq.cpp b/hotspot/src/share/vm/gc_implementation/g1/heapRegionSeq.cpp index 315e4a351b3..b3de279e402 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/heapRegionSeq.cpp +++ b/hotspot/src/share/vm/gc_implementation/g1/heapRegionSeq.cpp @@ -102,7 +102,7 @@ HeapRegionSeq::alloc_obj_from_region_index(int ind, size_t word_size) { HeapWord* tmp = hr->allocate(sz); assert(tmp != NULL, "Humongous allocation failure"); MemRegion mr = MemRegion(tmp, sz); - SharedHeap::fill_region_with_object(mr); + CollectedHeap::fill_with_object(mr); hr->declare_filled_region_to_BOT(mr); if (i == first) { first_hr->set_startsHumongous(); diff --git a/hotspot/src/share/vm/gc_implementation/parNew/parGCAllocBuffer.cpp b/hotspot/src/share/vm/gc_implementation/parNew/parGCAllocBuffer.cpp index d4c641bf028..e2d0ebd701f 100644 --- a/hotspot/src/share/vm/gc_implementation/parNew/parGCAllocBuffer.cpp +++ b/hotspot/src/share/vm/gc_implementation/parNew/parGCAllocBuffer.cpp @@ -51,14 +51,14 @@ void ParGCAllocBuffer::retire(bool end_of_gc, bool retain) { if (_retained) { // If the buffer had been retained shorten the previous filler object. assert(_retained_filler.end() <= _top, "INVARIANT"); - SharedHeap::fill_region_with_object(_retained_filler); + CollectedHeap::fill_with_object(_retained_filler); // Wasted space book-keeping, otherwise (normally) done in invalidate() _wasted += _retained_filler.word_size(); _retained = false; } assert(!end_of_gc || !_retained, "At this point, end_of_gc ==> !_retained."); if (_top < _hard_end) { - SharedHeap::fill_region_with_object(MemRegion(_top, _hard_end)); + CollectedHeap::fill_with_object(_top, _hard_end); if (!retain) { invalidate(); } else { @@ -155,7 +155,7 @@ ParGCAllocBufferWithBOT::ParGCAllocBufferWithBOT(size_t word_sz, // modifying the _next_threshold state in the BOT. void ParGCAllocBufferWithBOT::fill_region_with_block(MemRegion mr, bool contig) { - SharedHeap::fill_region_with_object(mr); + CollectedHeap::fill_with_object(mr); if (contig) { _bt.alloc_block(mr.start(), mr.end()); } else { @@ -171,7 +171,7 @@ HeapWord* ParGCAllocBufferWithBOT::allocate_slow(size_t word_sz) { "or else _true_end should be equal to _hard_end"); assert(_retained, "or else _true_end should be equal to _hard_end"); assert(_retained_filler.end() <= _top, "INVARIANT"); - SharedHeap::fill_region_with_object(_retained_filler); + CollectedHeap::fill_with_object(_retained_filler); if (_top < _hard_end) { fill_region_with_block(MemRegion(_top, _hard_end), true); } @@ -316,11 +316,9 @@ void ParGCAllocBufferWithBOT::retire(bool end_of_gc, bool retain) { while (_top <= chunk_boundary) { assert(pointer_delta(_hard_end, chunk_boundary) >= AlignmentReserve, "Consequence of last card handling above."); - MemRegion chunk_portion(chunk_boundary, _hard_end); - _bt.BlockOffsetArray::alloc_block(chunk_portion.start(), - chunk_portion.end()); - SharedHeap::fill_region_with_object(chunk_portion); - _hard_end = chunk_portion.start(); + _bt.BlockOffsetArray::alloc_block(chunk_boundary, _hard_end); + CollectedHeap::fill_with_object(chunk_boundary, _hard_end); + _hard_end = chunk_boundary; chunk_boundary -= ChunkSizeInWords; } _end = _hard_end - AlignmentReserve; diff --git a/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp b/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp index 72907679905..a2b7607bb79 100644 --- a/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp +++ b/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp @@ -201,7 +201,7 @@ void ParScanThreadState::undo_alloc_in_to_space(HeapWord* obj, "Should contain whole object."); to_space_alloc_buffer()->undo_allocation(obj, word_sz); } else { - SharedHeap::fill_region_with_object(MemRegion(obj, word_sz)); + CollectedHeap::fill_with_object(obj, word_sz); } } diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psMarkSweep.cpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psMarkSweep.cpp index ea0c20b0148..829403f5128 100644 --- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psMarkSweep.cpp +++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psMarkSweep.cpp @@ -389,7 +389,7 @@ bool PSMarkSweep::absorb_live_data_from_eden(PSAdaptiveSizePolicy* size_policy, // full GC. const size_t alignment = old_gen->virtual_space()->alignment(); const size_t eden_used = eden_space->used_in_bytes(); - const size_t promoted = (size_t)(size_policy->avg_promoted()->padded_average()); + const size_t promoted = (size_t)size_policy->avg_promoted()->padded_average(); const size_t absorb_size = align_size_up(eden_used + promoted, alignment); const size_t eden_capacity = eden_space->capacity_in_bytes(); @@ -416,16 +416,14 @@ bool PSMarkSweep::absorb_live_data_from_eden(PSAdaptiveSizePolicy* size_policy, // Fill the unused part of the old gen. MutableSpace* const old_space = old_gen->object_space(); - MemRegion old_gen_unused(old_space->top(), old_space->end()); + HeapWord* const unused_start = old_space->top(); + size_t const unused_words = pointer_delta(old_space->end(), unused_start); - // If the unused part of the old gen cannot be filled, skip - // absorbing eden. - if (old_gen_unused.word_size() < SharedHeap::min_fill_size()) { - return false; - } - - if (!old_gen_unused.is_empty()) { - SharedHeap::fill_region_with_object(old_gen_unused); + if (unused_words > 0) { + if (unused_words < CollectedHeap::min_fill_size()) { + return false; // If the old gen cannot be filled, must give up. + } + CollectedHeap::fill_with_objects(unused_start, unused_words); } // Take the live data from eden and set both top and end in the old gen to @@ -441,9 +439,8 @@ bool PSMarkSweep::absorb_live_data_from_eden(PSAdaptiveSizePolicy* size_policy, // Update the object start array for the filler object and the data from eden. ObjectStartArray* const start_array = old_gen->start_array(); - HeapWord* const start = old_gen_unused.start(); - for (HeapWord* addr = start; addr < new_top; addr += oop(addr)->size()) { - start_array->allocate_block(addr); + for (HeapWord* p = unused_start; p < new_top; p += oop(p)->size()) { + start_array->allocate_block(p); } // Could update the promoted average here, but it is not typically updated at diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psMarkSweepDecorator.cpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psMarkSweepDecorator.cpp index 310ad40d1b7..4cc90cd2de2 100644 --- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psMarkSweepDecorator.cpp +++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psMarkSweepDecorator.cpp @@ -275,22 +275,9 @@ bool PSMarkSweepDecorator::insert_deadspace(size_t& allowed_deadspace_words, HeapWord* q, size_t deadlength) { if (allowed_deadspace_words >= deadlength) { allowed_deadspace_words -= deadlength; - oop(q)->set_mark(markOopDesc::prototype()->set_marked()); - const size_t aligned_min_int_array_size = - align_object_size(typeArrayOopDesc::header_size(T_INT)); - if (deadlength >= aligned_min_int_array_size) { - oop(q)->set_klass(Universe::intArrayKlassObj()); - assert(((deadlength - aligned_min_int_array_size) * (HeapWordSize/sizeof(jint))) < (size_t)max_jint, - "deadspace too big for Arrayoop"); - typeArrayOop(q)->set_length((int)((deadlength - aligned_min_int_array_size) - * (HeapWordSize/sizeof(jint)))); - } else { - assert((int) deadlength == instanceOopDesc::header_size(), - "size for smallest fake dead object doesn't match"); - oop(q)->set_klass(SystemDictionary::object_klass()); - } - assert((int) deadlength == oop(q)->size(), - "make sure size for fake dead object match"); + CollectedHeap::fill_with_object(q, deadlength); + oop(q)->set_mark(oop(q)->mark()->set_marked()); + assert((int) deadlength == oop(q)->size(), "bad filler object size"); // Recall that we required "q == compaction_top". return true; } else { diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp index 1ad78f84c56..dd01b7b49ff 100644 --- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp +++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp @@ -1308,8 +1308,7 @@ void PSParallelCompact::fill_dense_prefix_end(SpaceId id) } #endif // #ifdef _LP64 - MemRegion region(obj_beg, obj_len); - SharedHeap::fill_region_with_object(region); + gc_heap()->fill_with_object(obj_beg, obj_len); _mark_bitmap.mark_obj(obj_beg, obj_len); _summary_data.add_obj(obj_beg, obj_len); assert(start_array(id) != NULL, "sanity"); @@ -1807,9 +1806,14 @@ bool PSParallelCompact::absorb_live_data_from_eden(PSAdaptiveSizePolicy* size_po // Fill the unused part of the old gen. MutableSpace* const old_space = old_gen->object_space(); - MemRegion old_gen_unused(old_space->top(), old_space->end()); - if (!old_gen_unused.is_empty()) { - SharedHeap::fill_region_with_object(old_gen_unused); + HeapWord* const unused_start = old_space->top(); + size_t const unused_words = pointer_delta(old_space->end(), unused_start); + + if (unused_words > 0) { + if (unused_words < CollectedHeap::min_fill_size()) { + return false; // If the old gen cannot be filled, must give up. + } + CollectedHeap::fill_with_objects(unused_start, unused_words); } // Take the live data from eden and set both top and end in the old gen to @@ -1825,9 +1829,8 @@ bool PSParallelCompact::absorb_live_data_from_eden(PSAdaptiveSizePolicy* size_po // Update the object start array for the filler object and the data from eden. ObjectStartArray* const start_array = old_gen->start_array(); - HeapWord* const start = old_gen_unused.start(); - for (HeapWord* addr = start; addr < new_top; addr += oop(addr)->size()) { - start_array->allocate_block(addr); + for (HeapWord* p = unused_start; p < new_top; p += oop(p)->size()) { + start_array->allocate_block(p); } // Could update the promoted average here, but it is not typically updated at diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.hpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.hpp index 7ca899956f4..476c6b7d731 100644 --- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.hpp +++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.hpp @@ -1324,31 +1324,28 @@ inline void UpdateOnlyClosure::do_addr(HeapWord* addr) oop(addr)->update_contents(compaction_manager()); } -class FillClosure: public ParMarkBitMapClosure { - public: +class FillClosure: public ParMarkBitMapClosure +{ +public: FillClosure(ParCompactionManager* cm, PSParallelCompact::SpaceId space_id) : ParMarkBitMapClosure(PSParallelCompact::mark_bitmap(), cm), - _space_id(space_id), - _start_array(PSParallelCompact::start_array(space_id)) { - assert(_space_id == PSParallelCompact::perm_space_id || - _space_id == PSParallelCompact::old_space_id, + _start_array(PSParallelCompact::start_array(space_id)) + { + assert(space_id == PSParallelCompact::perm_space_id || + space_id == PSParallelCompact::old_space_id, "cannot use FillClosure in the young gen"); - assert(bitmap() != NULL, "need a bitmap"); - assert(_start_array != NULL, "need a start array"); - } - - void fill_region(HeapWord* addr, size_t size) { - MemRegion region(addr, size); - SharedHeap::fill_region_with_object(region); - _start_array->allocate_block(addr); } virtual IterationStatus do_addr(HeapWord* addr, size_t size) { - fill_region(addr, size); + CollectedHeap::fill_with_objects(addr, size); + HeapWord* const end = addr + size; + do { + _start_array->allocate_block(addr); + addr += oop(addr)->size(); + } while (addr < end); return ParMarkBitMap::incomplete; } private: - const PSParallelCompact::SpaceId _space_id; - ObjectStartArray* const _start_array; + ObjectStartArray* const _start_array; }; diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psPromotionManager.cpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psPromotionManager.cpp index dd74617ebb3..11b6118322b 100644 --- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psPromotionManager.cpp +++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psPromotionManager.cpp @@ -499,26 +499,15 @@ oop PSPromotionManager::copy_to_survivor_space(oop o, bool depth_first) { // We lost, someone else "owns" this object guarantee(o->is_forwarded(), "Object must be forwarded if the cas failed."); - // Unallocate the space used. NOTE! We may have directly allocated - // the object. If so, we cannot deallocate it, so we have to test! + // Try to deallocate the space. If it was directly allocated we cannot + // deallocate it, so we have to test. If the deallocation fails, + // overwrite with a filler object. if (new_obj_is_tenured) { if (!_old_lab.unallocate_object(new_obj)) { - // The promotion lab failed to unallocate the object. - // We need to overwrite the object with a filler that - // contains no interior pointers. - MemRegion mr((HeapWord*)new_obj, new_obj_size); - // Clean this up and move to oopFactory (see bug 4718422) - SharedHeap::fill_region_with_object(mr); - } - } else { - if (!_young_lab.unallocate_object(new_obj)) { - // The promotion lab failed to unallocate the object. - // We need to overwrite the object with a filler that - // contains no interior pointers. - MemRegion mr((HeapWord*)new_obj, new_obj_size); - // Clean this up and move to oopFactory (see bug 4718422) - SharedHeap::fill_region_with_object(mr); + CollectedHeap::fill_with_object((HeapWord*) new_obj, new_obj_size); } + } else if (!_young_lab.unallocate_object(new_obj)) { + CollectedHeap::fill_with_object((HeapWord*) new_obj, new_obj_size); } // don't update this before the unallocation! diff --git a/hotspot/src/share/vm/gc_implementation/shared/mutableNUMASpace.cpp b/hotspot/src/share/vm/gc_implementation/shared/mutableNUMASpace.cpp index 0f38b70ee69..c639bbf3f96 100644 --- a/hotspot/src/share/vm/gc_implementation/shared/mutableNUMASpace.cpp +++ b/hotspot/src/share/vm/gc_implementation/shared/mutableNUMASpace.cpp @@ -76,8 +76,8 @@ void MutableNUMASpace::ensure_parsability() { MutableSpace *s = ls->space(); if (s->top() < top()) { // For all spaces preceeding the one containing top() if (s->free_in_words() > 0) { - SharedHeap::fill_region_with_object(MemRegion(s->top(), s->end())); size_t area_touched_words = pointer_delta(s->end(), s->top()); + CollectedHeap::fill_with_object(s->top(), area_touched_words); #ifndef ASSERT if (!ZapUnusedHeapArea) { area_touched_words = MIN2((size_t)align_object_size(typeArrayOopDesc::header_size(T_INT)), @@ -686,11 +686,11 @@ void MutableNUMASpace::set_top(HeapWord* value) { // a minimal object; assuming that's not the last chunk in which case we don't care. if (i < lgrp_spaces()->length() - 1) { size_t remainder = pointer_delta(s->end(), value); - const size_t minimal_object_size = oopDesc::header_size(); - if (remainder < minimal_object_size && remainder > 0) { - // Add a filler object of a minimal size, it will cross the chunk boundary. - SharedHeap::fill_region_with_object(MemRegion(value, minimal_object_size)); - value += minimal_object_size; + const size_t min_fill_size = CollectedHeap::min_fill_size(); + if (remainder < min_fill_size && remainder > 0) { + // Add a minimum size filler object; it will cross the chunk boundary. + CollectedHeap::fill_with_object(value, min_fill_size); + value += min_fill_size; assert(!s->contains(value), "Should be in the next chunk"); // Restart the loop from the same chunk, since the value has moved // to the next one. diff --git a/hotspot/src/share/vm/gc_interface/collectedHeap.cpp b/hotspot/src/share/vm/gc_interface/collectedHeap.cpp index df8ef081632..4e0f7e8813e 100644 --- a/hotspot/src/share/vm/gc_interface/collectedHeap.cpp +++ b/hotspot/src/share/vm/gc_interface/collectedHeap.cpp @@ -30,12 +30,21 @@ int CollectedHeap::_fire_out_of_memory_count = 0; #endif +size_t CollectedHeap::_filler_array_max_size = 0; + // Memory state functions. -CollectedHeap::CollectedHeap() : - _reserved(), _barrier_set(NULL), _is_gc_active(false), - _total_collections(0), _total_full_collections(0), - _gc_cause(GCCause::_no_gc), _gc_lastcause(GCCause::_no_gc) { +CollectedHeap::CollectedHeap() +{ + const size_t max_len = size_t(arrayOopDesc::max_array_length(T_INT)); + const size_t elements_per_word = HeapWordSize / sizeof(jint); + _filler_array_max_size = align_object_size(filler_array_hdr_size() + + max_len * elements_per_word); + + _barrier_set = NULL; + _is_gc_active = false; + _total_collections = _total_full_collections = 0; + _gc_cause = _gc_lastcause = GCCause::_no_gc; NOT_PRODUCT(_promotion_failure_alot_count = 0;) NOT_PRODUCT(_promotion_failure_alot_gc_number = 0;) @@ -128,6 +137,95 @@ HeapWord* CollectedHeap::allocate_from_tlab_slow(Thread* thread, size_t size) { return obj; } +size_t CollectedHeap::filler_array_hdr_size() { + return size_t(arrayOopDesc::header_size(T_INT)); +} + +size_t CollectedHeap::filler_array_min_size() { + return align_object_size(filler_array_hdr_size()); +} + +size_t CollectedHeap::filler_array_max_size() { + return _filler_array_max_size; +} + +#ifdef ASSERT +void CollectedHeap::fill_args_check(HeapWord* start, size_t words) +{ + assert(words >= min_fill_size(), "too small to fill"); + assert(words % MinObjAlignment == 0, "unaligned size"); + assert(Universe::heap()->is_in_reserved(start), "not in heap"); + assert(Universe::heap()->is_in_reserved(start + words - 1), "not in heap"); +} + +void CollectedHeap::zap_filler_array(HeapWord* start, size_t words) +{ + if (ZapFillerObjects) { + Copy::fill_to_words(start + filler_array_hdr_size(), + words - filler_array_hdr_size(), 0XDEAFBABE); + } +} +#endif // ASSERT + +void +CollectedHeap::fill_with_array(HeapWord* start, size_t words) +{ + assert(words >= filler_array_min_size(), "too small for an array"); + assert(words <= filler_array_max_size(), "too big for a single object"); + + const size_t payload_size = words - filler_array_hdr_size(); + const size_t len = payload_size * HeapWordSize / sizeof(jint); + + // Set the length first for concurrent GC. + ((arrayOop)start)->set_length((int)len); + post_allocation_setup_common(Universe::fillerArrayKlassObj(), start, + words); + DEBUG_ONLY(zap_filler_array(start, words);) +} + +void +CollectedHeap::fill_with_object_impl(HeapWord* start, size_t words) +{ + assert(words <= filler_array_max_size(), "too big for a single object"); + + if (words >= filler_array_min_size()) { + fill_with_array(start, words); + } else if (words > 0) { + assert(words == min_fill_size(), "unaligned size"); + post_allocation_setup_common(SystemDictionary::object_klass(), start, + words); + } +} + +void CollectedHeap::fill_with_object(HeapWord* start, size_t words) +{ + DEBUG_ONLY(fill_args_check(start, words);) + HandleMark hm; // Free handles before leaving. + fill_with_object_impl(start, words); +} + +void CollectedHeap::fill_with_objects(HeapWord* start, size_t words) +{ + DEBUG_ONLY(fill_args_check(start, words);) + HandleMark hm; // Free handles before leaving. + +#ifdef LP64 + // A single array can fill ~8G, so multiple objects are needed only in 64-bit. + // First fill with arrays, ensuring that any remaining space is big enough to + // fill. The remainder is filled with a single object. + const size_t min = min_fill_size(); + const size_t max = filler_array_max_size(); + while (words > max) { + const size_t cur = words - max >= min ? max : max - min; + fill_with_array(start, cur); + start += cur; + words -= cur; + } +#endif + + fill_with_object_impl(start, words); +} + oop CollectedHeap::new_store_barrier(oop new_obj) { // %%% This needs refactoring. (It was imported from the server compiler.) guarantee(can_elide_tlab_store_barriers(), "store barrier elision not supported"); diff --git a/hotspot/src/share/vm/gc_interface/collectedHeap.hpp b/hotspot/src/share/vm/gc_interface/collectedHeap.hpp index 69369e3f7d4..13d30c70b6d 100644 --- a/hotspot/src/share/vm/gc_interface/collectedHeap.hpp +++ b/hotspot/src/share/vm/gc_interface/collectedHeap.hpp @@ -47,6 +47,9 @@ class CollectedHeap : public CHeapObj { static int _fire_out_of_memory_count; #endif + // Used for filler objects (static, but initialized in ctor). + static size_t _filler_array_max_size; + protected: MemRegion _reserved; BarrierSet* _barrier_set; @@ -119,6 +122,21 @@ class CollectedHeap : public CHeapObj { // Clears an allocated object. inline static void init_obj(HeapWord* obj, size_t size); + // Filler object utilities. + static inline size_t filler_array_hdr_size(); + static inline size_t filler_array_min_size(); + static inline size_t filler_array_max_size(); + + DEBUG_ONLY(static void fill_args_check(HeapWord* start, size_t words);) + DEBUG_ONLY(static void zap_filler_array(HeapWord* start, size_t words);) + + // Fill with a single array; caller must ensure filler_array_min_size() <= + // words <= filler_array_max_size(). + static inline void fill_with_array(HeapWord* start, size_t words); + + // Fill with a single object (either an int array or a java.lang.Object). + static inline void fill_with_object_impl(HeapWord* start, size_t words); + // Verification functions virtual void check_for_bad_heap_word_value(HeapWord* addr, size_t size) PRODUCT_RETURN; @@ -294,6 +312,27 @@ class CollectedHeap : public CHeapObj { // The boundary between a "large" and "small" array of primitives, in words. virtual size_t large_typearray_limit() = 0; + // Utilities for turning raw memory into filler objects. + // + // min_fill_size() is the smallest region that can be filled. + // fill_with_objects() can fill arbitrary-sized regions of the heap using + // multiple objects. fill_with_object() is for regions known to be smaller + // than the largest array of integers; it uses a single object to fill the + // region and has slightly less overhead. + static size_t min_fill_size() { + return size_t(align_object_size(oopDesc::header_size())); + } + + static void fill_with_objects(HeapWord* start, size_t words); + + static void fill_with_object(HeapWord* start, size_t words); + static void fill_with_object(MemRegion region) { + fill_with_object(region.start(), region.word_size()); + } + static void fill_with_object(HeapWord* start, HeapWord* end) { + fill_with_object(start, pointer_delta(end, start)); + } + // Some heaps may offer a contiguous region for shared non-blocking // allocation, via inlined code (by exporting the address of the top and // end fields defining the extent of the contiguous allocation region.) diff --git a/hotspot/src/share/vm/gc_interface/collectedHeap.inline.hpp b/hotspot/src/share/vm/gc_interface/collectedHeap.inline.hpp index efc3210bf0a..c8e59edac33 100644 --- a/hotspot/src/share/vm/gc_interface/collectedHeap.inline.hpp +++ b/hotspot/src/share/vm/gc_interface/collectedHeap.inline.hpp @@ -34,7 +34,6 @@ void CollectedHeap::post_allocation_setup_common(KlassHandle klass, void CollectedHeap::post_allocation_setup_no_klass_install(KlassHandle klass, HeapWord* objPtr, size_t size) { - oop obj = (oop)objPtr; assert(obj != NULL, "NULL object pointer"); @@ -44,9 +43,6 @@ void CollectedHeap::post_allocation_setup_no_klass_install(KlassHandle klass, // May be bootstrapping obj->set_mark(markOopDesc::prototype()); } - - // support low memory notifications (no-op if not enabled) - LowMemoryDetector::detect_low_memory_for_collected_pools(); } void CollectedHeap::post_allocation_install_obj_klass(KlassHandle klass, @@ -65,6 +61,9 @@ void CollectedHeap::post_allocation_install_obj_klass(KlassHandle klass, // Support for jvmti and dtrace inline void post_allocation_notify(KlassHandle klass, oop obj) { + // support low memory notifications (no-op if not enabled) + LowMemoryDetector::detect_low_memory_for_collected_pools(); + // support for JVMTI VMObjectAlloc event (no-op if not enabled) JvmtiExport::vm_object_alloc_event_collector(obj); diff --git a/hotspot/src/share/vm/includeDB_gc b/hotspot/src/share/vm/includeDB_gc index 662805cc0d4..336148bf8fa 100644 --- a/hotspot/src/share/vm/includeDB_gc +++ b/hotspot/src/share/vm/includeDB_gc @@ -28,21 +28,22 @@ collectedHeap.cpp collectedHeap.hpp collectedHeap.cpp collectedHeap.inline.hpp collectedHeap.cpp init.hpp collectedHeap.cpp oop.inline.hpp +collectedHeap.cpp systemDictionary.hpp collectedHeap.cpp thread_.inline.hpp collectedHeap.hpp allocation.hpp collectedHeap.hpp barrierSet.hpp collectedHeap.hpp gcCause.hpp collectedHeap.hpp handles.hpp -collectedHeap.hpp perfData.hpp +collectedHeap.hpp perfData.hpp collectedHeap.hpp safepoint.hpp collectedHeap.inline.hpp arrayOop.hpp collectedHeap.inline.hpp collectedHeap.hpp collectedHeap.inline.hpp copy.hpp collectedHeap.inline.hpp jvmtiExport.hpp -collectedHeap.inline.hpp lowMemoryDetector.hpp -collectedHeap.inline.hpp sharedRuntime.hpp +collectedHeap.inline.hpp lowMemoryDetector.hpp +collectedHeap.inline.hpp sharedRuntime.hpp collectedHeap.inline.hpp thread.hpp collectedHeap.inline.hpp threadLocalAllocBuffer.inline.hpp collectedHeap.inline.hpp universe.hpp diff --git a/hotspot/src/share/vm/memory/sharedHeap.cpp b/hotspot/src/share/vm/memory/sharedHeap.cpp index 853b0ebb310..392487a31ad 100644 --- a/hotspot/src/share/vm/memory/sharedHeap.cpp +++ b/hotspot/src/share/vm/memory/sharedHeap.cpp @@ -248,46 +248,6 @@ void SharedHeap::ref_processing_init() { perm_gen()->ref_processor_init(); } -void SharedHeap::fill_region_with_object(MemRegion mr) { - // Disable the posting of JVMTI VMObjectAlloc events as we - // don't want the filling of tlabs with filler arrays to be - // reported to the profiler. - NoJvmtiVMObjectAllocMark njm; - - // Disable low memory detector because there is no real allocation. - LowMemoryDetectorDisabler lmd_dis; - - // It turns out that post_allocation_setup_array takes a handle, so the - // call below contains an implicit conversion. Best to free that handle - // as soon as possible. - HandleMark hm; - - size_t word_size = mr.word_size(); - size_t aligned_array_header_size = - align_object_size(typeArrayOopDesc::header_size(T_INT)); - - if (word_size >= aligned_array_header_size) { - const size_t array_length = - pointer_delta(mr.end(), mr.start()) - - typeArrayOopDesc::header_size(T_INT); - const size_t array_length_words = - array_length * (HeapWordSize/sizeof(jint)); - post_allocation_setup_array(Universe::intArrayKlassObj(), - mr.start(), - mr.word_size(), - (int)array_length_words); -#ifdef ASSERT - HeapWord* elt_words = (mr.start() + typeArrayOopDesc::header_size(T_INT)); - Copy::fill_to_words(elt_words, array_length, 0xDEAFBABE); -#endif - } else { - assert(word_size == (size_t)oopDesc::header_size(), "Unaligned?"); - post_allocation_setup_obj(SystemDictionary::object_klass(), - mr.start(), - mr.word_size()); - } -} - // Some utilities. void SharedHeap::print_size_transition(outputStream* out, size_t bytes_before, diff --git a/hotspot/src/share/vm/memory/sharedHeap.hpp b/hotspot/src/share/vm/memory/sharedHeap.hpp index 662f011c7ab..c8c570e87db 100644 --- a/hotspot/src/share/vm/memory/sharedHeap.hpp +++ b/hotspot/src/share/vm/memory/sharedHeap.hpp @@ -108,14 +108,6 @@ public: void set_perm(PermGen* perm_gen) { _perm_gen = perm_gen; } - // A helper function that fills a region of the heap with - // with a single object. - static void fill_region_with_object(MemRegion mr); - - // Minimum garbage fill object size - static size_t min_fill_size() { return (size_t)align_object_size(oopDesc::header_size()); } - static size_t min_fill_size_in_bytes() { return min_fill_size() * HeapWordSize; } - // This function returns the "GenRemSet" object that allows us to scan // generations; at least the perm gen, possibly more in a fully // generational heap. diff --git a/hotspot/src/share/vm/memory/space.cpp b/hotspot/src/share/vm/memory/space.cpp index 82529444c0a..652d585bb8f 100644 --- a/hotspot/src/share/vm/memory/space.cpp +++ b/hotspot/src/share/vm/memory/space.cpp @@ -409,19 +409,9 @@ bool CompactibleSpace::insert_deadspace(size_t& allowed_deadspace_words, HeapWord* q, size_t deadlength) { if (allowed_deadspace_words >= deadlength) { allowed_deadspace_words -= deadlength; - oop(q)->set_mark(markOopDesc::prototype()->set_marked()); - const size_t min_int_array_size = typeArrayOopDesc::header_size(T_INT); - if (deadlength >= min_int_array_size) { - oop(q)->set_klass(Universe::intArrayKlassObj()); - typeArrayOop(q)->set_length((int)((deadlength - min_int_array_size) - * (HeapWordSize/sizeof(jint)))); - } else { - assert((int) deadlength == instanceOopDesc::header_size(), - "size for smallest fake dead object doesn't match"); - oop(q)->set_klass(SystemDictionary::object_klass()); - } - assert((int) deadlength == oop(q)->size(), - "make sure size for fake dead object match"); + CollectedHeap::fill_with_object(q, deadlength); + oop(q)->set_mark(oop(q)->mark()->set_marked()); + assert((int) deadlength == oop(q)->size(), "bad filler object size"); // Recall that we required "q == compaction_top". return true; } else { diff --git a/hotspot/src/share/vm/memory/tenuredGeneration.cpp b/hotspot/src/share/vm/memory/tenuredGeneration.cpp index dcd6626e80d..56eed211d98 100644 --- a/hotspot/src/share/vm/memory/tenuredGeneration.cpp +++ b/hotspot/src/share/vm/memory/tenuredGeneration.cpp @@ -387,7 +387,7 @@ void TenuredGeneration::par_promote_alloc_undo(int thread_num, "should contain whole object"); buf->undo_allocation(obj, word_sz); } else { - SharedHeap::fill_region_with_object(MemRegion(obj, word_sz)); + CollectedHeap::fill_with_object(obj, word_sz); } } diff --git a/hotspot/src/share/vm/memory/threadLocalAllocBuffer.cpp b/hotspot/src/share/vm/memory/threadLocalAllocBuffer.cpp index fdcfdd28e13..01d7d6e6a2f 100644 --- a/hotspot/src/share/vm/memory/threadLocalAllocBuffer.cpp +++ b/hotspot/src/share/vm/memory/threadLocalAllocBuffer.cpp @@ -100,8 +100,7 @@ void ThreadLocalAllocBuffer::accumulate_statistics() { void ThreadLocalAllocBuffer::make_parsable(bool retire) { if (end() != NULL) { invariants(); - MemRegion mr(top(), hard_end()); - SharedHeap::fill_region_with_object(mr); + CollectedHeap::fill_with_object(top(), hard_end()); if (retire || ZeroTLAB) { // "Reset" the TLAB set_start(NULL); diff --git a/hotspot/src/share/vm/memory/universe.cpp b/hotspot/src/share/vm/memory/universe.cpp index ffe583ecc16..567e10145bf 100644 --- a/hotspot/src/share/vm/memory/universe.cpp +++ b/hotspot/src/share/vm/memory/universe.cpp @@ -49,16 +49,17 @@ klassOop Universe::_constantPoolKlassObj = NULL; klassOop Universe::_constantPoolCacheKlassObj = NULL; klassOop Universe::_compiledICHolderKlassObj = NULL; klassOop Universe::_systemObjArrayKlassObj = NULL; -oop Universe::_int_mirror = NULL; -oop Universe::_float_mirror = NULL; -oop Universe::_double_mirror = NULL; -oop Universe::_byte_mirror = NULL; -oop Universe::_bool_mirror = NULL; -oop Universe::_char_mirror = NULL; -oop Universe::_long_mirror = NULL; -oop Universe::_short_mirror = NULL; -oop Universe::_void_mirror = NULL; -oop Universe::_mirrors[T_VOID+1] = { NULL /*, NULL...*/ }; +klassOop Universe::_fillerArrayKlassObj = NULL; +oop Universe::_int_mirror = NULL; +oop Universe::_float_mirror = NULL; +oop Universe::_double_mirror = NULL; +oop Universe::_byte_mirror = NULL; +oop Universe::_bool_mirror = NULL; +oop Universe::_char_mirror = NULL; +oop Universe::_long_mirror = NULL; +oop Universe::_short_mirror = NULL; +oop Universe::_void_mirror = NULL; +oop Universe::_mirrors[T_VOID+1] = { NULL /*, NULL...*/ }; oop Universe::_main_thread_group = NULL; oop Universe::_system_thread_group = NULL; typeArrayOop Universe::_the_empty_byte_array = NULL; @@ -126,6 +127,7 @@ void Universe::system_classes_do(void f(klassOop)) { f(instanceKlassKlassObj()); f(constantPoolKlassObj()); f(systemObjArrayKlassObj()); + f(fillerArrayKlassObj()); } void Universe::oops_do(OopClosure* f, bool do_all) { @@ -180,6 +182,7 @@ void Universe::oops_do(OopClosure* f, bool do_all) { f->do_oop((oop*)&_constantPoolCacheKlassObj); f->do_oop((oop*)&_compiledICHolderKlassObj); f->do_oop((oop*)&_systemObjArrayKlassObj); + f->do_oop((oop*)&_fillerArrayKlassObj); f->do_oop((oop*)&_the_empty_byte_array); f->do_oop((oop*)&_the_empty_short_array); f->do_oop((oop*)&_the_empty_int_array); @@ -257,16 +260,17 @@ void Universe::genesis(TRAPS) { _typeArrayKlassObjs[T_INT] = _intArrayKlassObj; _typeArrayKlassObjs[T_LONG] = _longArrayKlassObj; - _methodKlassObj = methodKlass::create_klass(CHECK); - _constMethodKlassObj = constMethodKlass::create_klass(CHECK); - _methodDataKlassObj = methodDataKlass::create_klass(CHECK); + _methodKlassObj = methodKlass::create_klass(CHECK); + _constMethodKlassObj = constMethodKlass::create_klass(CHECK); + _methodDataKlassObj = methodDataKlass::create_klass(CHECK); _constantPoolKlassObj = constantPoolKlass::create_klass(CHECK); _constantPoolCacheKlassObj = constantPoolCacheKlass::create_klass(CHECK); _compiledICHolderKlassObj = compiledICHolderKlass::create_klass(CHECK); _systemObjArrayKlassObj = objArrayKlassKlass::cast(objArrayKlassKlassObj())->allocate_system_objArray_klass(CHECK); + _fillerArrayKlassObj = typeArrayKlass::create_klass(T_INT, sizeof(jint), "", CHECK); - _the_empty_byte_array = oopFactory::new_permanent_byteArray(0, CHECK); + _the_empty_byte_array = oopFactory::new_permanent_byteArray(0, CHECK); _the_empty_short_array = oopFactory::new_permanent_shortArray(0, CHECK); _the_empty_int_array = oopFactory::new_permanent_intArray(0, CHECK); _the_empty_system_obj_array = oopFactory::new_system_objArray(0, CHECK); @@ -274,7 +278,6 @@ void Universe::genesis(TRAPS) { _the_array_interfaces_array = oopFactory::new_system_objArray(2, CHECK); _vm_exception = oopFactory::new_symbol("vm exception holder", CHECK); } else { - FileMapInfo *mapinfo = FileMapInfo::current_info(); char* buffer = mapinfo->region_base(CompactingPermGenGen::md); void** vtbl_list = (void**)buffer; diff --git a/hotspot/src/share/vm/memory/universe.hpp b/hotspot/src/share/vm/memory/universe.hpp index 118800f780b..0476d8af531 100644 --- a/hotspot/src/share/vm/memory/universe.hpp +++ b/hotspot/src/share/vm/memory/universe.hpp @@ -92,6 +92,7 @@ class LatestMethodOopCache : public CommonMethodOopCache { class Universe: AllStatic { + // Ugh. Universe is much too friendly. friend class MarkSweep; friend class oopDesc; friend class ClassLoader; @@ -132,6 +133,7 @@ class Universe: AllStatic { static klassOop _constantPoolCacheKlassObj; static klassOop _compiledICHolderKlassObj; static klassOop _systemObjArrayKlassObj; + static klassOop _fillerArrayKlassObj; // Known objects in the VM @@ -264,6 +266,7 @@ class Universe: AllStatic { static klassOop constantPoolCacheKlassObj() { return _constantPoolCacheKlassObj; } static klassOop compiledICHolderKlassObj() { return _compiledICHolderKlassObj; } static klassOop systemObjArrayKlassObj() { return _systemObjArrayKlassObj; } + static klassOop fillerArrayKlassObj() { return _fillerArrayKlassObj; } // Known objects in tbe VM static oop int_mirror() { return check_mirror(_int_mirror); diff --git a/hotspot/src/share/vm/oops/arrayOop.hpp b/hotspot/src/share/vm/oops/arrayOop.hpp index 8ede056496a..364d1dbfe40 100644 --- a/hotspot/src/share/vm/oops/arrayOop.hpp +++ b/hotspot/src/share/vm/oops/arrayOop.hpp @@ -96,19 +96,20 @@ class arrayOopDesc : public oopDesc { : typesize_in_bytes/HeapWordSize); } - // This method returns the maximum length that can passed into - // typeArrayOop::object_size(scale, length, header_size) without causing an - // overflow. We substract an extra 2*wordSize to guard against double word - // alignments. It gets the scale from the type2aelembytes array. + // Return the maximum length of an array of BasicType. The length can passed + // to typeArrayOop::object_size(scale, length, header_size) without causing an + // overflow. static int32_t max_array_length(BasicType type) { assert(type >= 0 && type < T_CONFLICT, "wrong type"); assert(type2aelembytes(type) != 0, "wrong type"); - // We use max_jint, since object_size is internally represented by an 'int' - // This gives us an upper bound of max_jint words for the size of the oop. - int32_t max_words = (max_jint - header_size(type) - 2); - int elembytes = type2aelembytes(type); - jlong len = ((jlong)max_words * HeapWordSize) / elembytes; - return (len > max_jint) ? max_jint : (int32_t)len; - } + const int bytes_per_element = type2aelembytes(type); + if (bytes_per_element < HeapWordSize) { + return max_jint; + } + const int32_t max_words = align_size_down(max_jint, MinObjAlignment); + const int32_t max_element_words = max_words - header_size(type); + const int32_t words_per_element = bytes_per_element >> LogHeapWordSize; + return max_element_words / words_per_element; + } }; diff --git a/hotspot/src/share/vm/oops/typeArrayKlass.cpp b/hotspot/src/share/vm/oops/typeArrayKlass.cpp index d48f8b4f25b..2e0ffbcba26 100644 --- a/hotspot/src/share/vm/oops/typeArrayKlass.cpp +++ b/hotspot/src/share/vm/oops/typeArrayKlass.cpp @@ -36,13 +36,14 @@ bool typeArrayKlass::compute_is_subtype_of(klassOop k) { return element_type() == tak->element_type(); } -klassOop typeArrayKlass::create_klass(BasicType type, int scale, TRAPS) { +klassOop typeArrayKlass::create_klass(BasicType type, int scale, + const char* name_str, TRAPS) { typeArrayKlass o; symbolHandle sym(symbolOop(NULL)); // bootstrapping: don't create sym if symbolKlass not created yet - if (Universe::symbolKlassObj() != NULL) { - sym = oopFactory::new_symbol_handle(external_name(type), CHECK_NULL); + if (Universe::symbolKlassObj() != NULL && name_str != NULL) { + sym = oopFactory::new_symbol_handle(name_str, CHECK_NULL); } KlassHandle klassklass (THREAD, Universe::typeArrayKlassKlassObj()); diff --git a/hotspot/src/share/vm/oops/typeArrayKlass.hpp b/hotspot/src/share/vm/oops/typeArrayKlass.hpp index 72336fb8db0..dac77f6b9bf 100644 --- a/hotspot/src/share/vm/oops/typeArrayKlass.hpp +++ b/hotspot/src/share/vm/oops/typeArrayKlass.hpp @@ -39,7 +39,11 @@ class typeArrayKlass : public arrayKlass { // klass allocation DEFINE_ALLOCATE_PERMANENT(typeArrayKlass); - static klassOop create_klass(BasicType type, int scale, TRAPS); + static klassOop create_klass(BasicType type, int scale, const char* name_str, + TRAPS); + static inline klassOop create_klass(BasicType type, int scale, TRAPS) { + return create_klass(type, scale, external_name(type), CHECK_NULL); + } int oop_size(oop obj) const; int klass_oop_size() const { return object_size(); } diff --git a/hotspot/src/share/vm/runtime/globals.hpp b/hotspot/src/share/vm/runtime/globals.hpp index 5d08a653bd5..0a9f4d45dc8 100644 --- a/hotspot/src/share/vm/runtime/globals.hpp +++ b/hotspot/src/share/vm/runtime/globals.hpp @@ -625,6 +625,9 @@ class CommandLineFlags { develop(bool, CheckZapUnusedHeapArea, false, \ "Check zapping of unused heap space") \ \ + develop(bool, ZapFillerObjects, trueInDebug, \ + "Zap filler objects with 0xDEAFBABE") \ + \ develop(bool, PrintVMMessages, true, \ "Print vm messages on console") \ \ From 7a9585170d1485a6cc3aba8c0efb49ff20e2e904 Mon Sep 17 00:00:00 2001 From: John Coomes Date: Thu, 11 Dec 2008 12:05:14 -0800 Subject: [PATCH 083/110] 6765745: par compact - allow young gen spaces to be split Reviewed-by: jmasa --- .../parallelScavenge/psParallelCompact.cpp | 536 +++++++++++++----- .../parallelScavenge/psParallelCompact.hpp | 142 ++++- 2 files changed, 516 insertions(+), 162 deletions(-) diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp index dd01b7b49ff..852cf5e882d 100644 --- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp +++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp @@ -88,6 +88,72 @@ GrowableArray* PSParallelCompact::_last_gc_live_oops_moved_to = NULL; GrowableArray * PSParallelCompact::_last_gc_live_oops_size = NULL; #endif +void SplitInfo::record(size_t src_region_idx, size_t partial_obj_size, + HeapWord* destination) +{ + assert(src_region_idx != 0, "invalid src_region_idx"); + assert(partial_obj_size != 0, "invalid partial_obj_size argument"); + assert(destination != NULL, "invalid destination argument"); + + _src_region_idx = src_region_idx; + _partial_obj_size = partial_obj_size; + _destination = destination; + + // These fields may not be updated below, so make sure they're clear. + assert(_dest_region_addr == NULL, "should have been cleared"); + assert(_first_src_addr == NULL, "should have been cleared"); + + // Determine the number of destination regions for the partial object. + HeapWord* const last_word = destination + partial_obj_size - 1; + const ParallelCompactData& sd = PSParallelCompact::summary_data(); + HeapWord* const beg_region_addr = sd.region_align_down(destination); + HeapWord* const end_region_addr = sd.region_align_down(last_word); + + if (beg_region_addr == end_region_addr) { + // One destination region. + _destination_count = 1; + if (end_region_addr == destination) { + // The destination falls on a region boundary, thus the first word of the + // partial object will be the first word copied to the destination region. + _dest_region_addr = end_region_addr; + _first_src_addr = sd.region_to_addr(src_region_idx); + } + } else { + // Two destination regions. When copied, the partial object will cross a + // destination region boundary, so a word somewhere within the partial + // object will be the first word copied to the second destination region. + _destination_count = 2; + _dest_region_addr = end_region_addr; + const size_t ofs = pointer_delta(end_region_addr, destination); + assert(ofs < _partial_obj_size, "sanity"); + _first_src_addr = sd.region_to_addr(src_region_idx) + ofs; + } +} + +void SplitInfo::clear() +{ + _src_region_idx = 0; + _partial_obj_size = 0; + _destination = NULL; + _destination_count = 0; + _dest_region_addr = NULL; + _first_src_addr = NULL; + assert(!is_valid(), "sanity"); +} + +#ifdef ASSERT +void SplitInfo::verify_clear() +{ + assert(_src_region_idx == 0, "not clear"); + assert(_partial_obj_size == 0, "not clear"); + assert(_destination == NULL, "not clear"); + assert(_destination_count == 0, "not clear"); + assert(_dest_region_addr == NULL, "not clear"); + assert(_first_src_addr == NULL, "not clear"); +} +#endif // #ifdef ASSERT + + #ifndef PRODUCT const char* PSParallelCompact::space_names[] = { "perm", "old ", "eden", "from", "to " @@ -416,21 +482,134 @@ ParallelCompactData::summarize_dense_prefix(HeapWord* beg, HeapWord* end) } } -bool ParallelCompactData::summarize(HeapWord* target_beg, HeapWord* target_end, - HeapWord* source_beg, HeapWord* source_end, - HeapWord** target_next, - HeapWord** source_next) { - // This is too strict. - // assert(region_offset(source_beg) == 0, "not RegionSize aligned"); +// Find the point at which a space can be split and, if necessary, record the +// split point. +// +// If the current src region (which overflowed the destination space) doesn't +// have a partial object, the split point is at the beginning of the current src +// region (an "easy" split, no extra bookkeeping required). +// +// If the current src region has a partial object, the split point is in the +// region where that partial object starts (call it the split_region). If +// split_region has a partial object, then the split point is just after that +// partial object (a "hard" split where we have to record the split data and +// zero the partial_obj_size field). With a "hard" split, we know that the +// partial_obj ends within split_region because the partial object that caused +// the overflow starts in split_region. If split_region doesn't have a partial +// obj, then the split is at the beginning of split_region (another "easy" +// split). +HeapWord* +ParallelCompactData::summarize_split_space(size_t src_region, + SplitInfo& split_info, + HeapWord* destination, + HeapWord* target_end, + HeapWord** target_next) +{ + assert(destination <= target_end, "sanity"); + assert(destination + _region_data[src_region].data_size() > target_end, + "region should not fit into target space"); + + size_t split_region = src_region; + HeapWord* split_destination = destination; + size_t partial_obj_size = _region_data[src_region].partial_obj_size(); + + if (destination + partial_obj_size > target_end) { + // The split point is just after the partial object (if any) in the + // src_region that contains the start of the object that overflowed the + // destination space. + // + // Find the start of the "overflow" object and set split_region to the + // region containing it. + HeapWord* const overflow_obj = _region_data[src_region].partial_obj_addr(); + split_region = addr_to_region_idx(overflow_obj); + + // Clear the source_region field of all destination regions whose first word + // came from data after the split point (a non-null source_region field + // implies a region must be filled). + // + // An alternative to the simple loop below: clear during post_compact(), + // which uses memcpy instead of individual stores, and is easy to + // parallelize. (The downside is that it clears the entire RegionData + // object as opposed to just one field.) + // + // post_compact() would have to clear the summary data up to the highest + // address that was written during the summary phase, which would be + // + // max(top, max(new_top, clear_top)) + // + // where clear_top is a new field in SpaceInfo. Would have to set clear_top + // to destination + partial_obj_size, where both have the values passed to + // this routine. + const RegionData* const sr = region(split_region); + const size_t beg_idx = + addr_to_region_idx(region_align_up(sr->destination() + + sr->partial_obj_size())); + const size_t end_idx = + addr_to_region_idx(region_align_up(destination + partial_obj_size)); + + if (TraceParallelOldGCSummaryPhase) { + gclog_or_tty->print_cr("split: clearing source_region field in [" + SIZE_FORMAT ", " SIZE_FORMAT ")", + beg_idx, end_idx); + } + for (size_t idx = beg_idx; idx < end_idx; ++idx) { + _region_data[idx].set_source_region(0); + } + + // Set split_destination and partial_obj_size to reflect the split region. + split_destination = sr->destination(); + partial_obj_size = sr->partial_obj_size(); + } + + // The split is recorded only if a partial object extends onto the region. + if (partial_obj_size != 0) { + _region_data[split_region].set_partial_obj_size(0); + split_info.record(split_region, partial_obj_size, split_destination); + } + + // Setup the continuation addresses. + *target_next = split_destination + partial_obj_size; + HeapWord* const source_next = region_to_addr(split_region) + partial_obj_size; if (TraceParallelOldGCSummaryPhase) { - tty->print_cr("tb=" PTR_FORMAT " te=" PTR_FORMAT " " - "sb=" PTR_FORMAT " se=" PTR_FORMAT " " - "tn=" PTR_FORMAT " sn=" PTR_FORMAT, - target_beg, target_end, - source_beg, source_end, - target_next != 0 ? *target_next : (HeapWord*) 0, - source_next != 0 ? *source_next : (HeapWord*) 0); + const char * split_type = partial_obj_size == 0 ? "easy" : "hard"; + gclog_or_tty->print_cr("%s split: src=" PTR_FORMAT " src_c=" SIZE_FORMAT + " pos=" SIZE_FORMAT, + split_type, source_next, split_region, + partial_obj_size); + gclog_or_tty->print_cr("%s split: dst=" PTR_FORMAT " dst_c=" SIZE_FORMAT + " tn=" PTR_FORMAT, + split_type, split_destination, + addr_to_region_idx(split_destination), + *target_next); + + if (partial_obj_size != 0) { + HeapWord* const po_beg = split_info.destination(); + HeapWord* const po_end = po_beg + split_info.partial_obj_size(); + gclog_or_tty->print_cr("%s split: " + "po_beg=" PTR_FORMAT " " SIZE_FORMAT " " + "po_end=" PTR_FORMAT " " SIZE_FORMAT, + split_type, + po_beg, addr_to_region_idx(po_beg), + po_end, addr_to_region_idx(po_end)); + } + } + + return source_next; +} + +bool ParallelCompactData::summarize(SplitInfo& split_info, + HeapWord* source_beg, HeapWord* source_end, + HeapWord** source_next, + HeapWord* target_beg, HeapWord* target_end, + HeapWord** target_next) +{ + if (TraceParallelOldGCSummaryPhase) { + HeapWord* const source_next_val = source_next == NULL ? NULL : *source_next; + tty->print_cr("sb=" PTR_FORMAT " se=" PTR_FORMAT " sn=" PTR_FORMAT + "tb=" PTR_FORMAT " te=" PTR_FORMAT " tn=" PTR_FORMAT, + source_beg, source_end, source_next_val, + target_beg, target_end, *target_next); } size_t cur_region = addr_to_region_idx(source_beg); @@ -438,45 +617,53 @@ bool ParallelCompactData::summarize(HeapWord* target_beg, HeapWord* target_end, HeapWord *dest_addr = target_beg; while (cur_region < end_region) { - size_t words = _region_data[cur_region].data_size(); - -#if 1 - assert(pointer_delta(target_end, dest_addr) >= words, - "source region does not fit into target region"); -#else - // XXX - need some work on the corner cases here. If the region does not - // fit, then must either make sure any partial_obj from the region fits, or - // "undo" the initial part of the partial_obj that is in the previous - // region. - if (dest_addr + words >= target_end) { - // Let the caller know where to continue. - *target_next = dest_addr; - *source_next = region_to_addr(cur_region); - return false; - } -#endif // #if 1 - + // The destination must be set even if the region has no data. _region_data[cur_region].set_destination(dest_addr); - // Set the destination_count for cur_region, and if necessary, update - // source_region for a destination region. The source_region field is - // updated if cur_region is the first (left-most) region to be copied to a - // destination region. - // - // The destination_count calculation is a bit subtle. A region that has - // data that compacts into itself does not count itself as a destination. - // This maintains the invariant that a zero count means the region is - // available and can be claimed and then filled. + size_t words = _region_data[cur_region].data_size(); if (words > 0) { + // If cur_region does not fit entirely into the target space, find a point + // at which the source space can be 'split' so that part is copied to the + // target space and the rest is copied elsewhere. + if (dest_addr + words > target_end) { + assert(source_next != NULL, "source_next is NULL when splitting"); + *source_next = summarize_split_space(cur_region, split_info, dest_addr, + target_end, target_next); + return false; + } + + // Compute the destination_count for cur_region, and if necessary, update + // source_region for a destination region. The source_region field is + // updated if cur_region is the first (left-most) region to be copied to a + // destination region. + // + // The destination_count calculation is a bit subtle. A region that has + // data that compacts into itself does not count itself as a destination. + // This maintains the invariant that a zero count means the region is + // available and can be claimed and then filled. + uint destination_count = 0; + if (split_info.is_split(cur_region)) { + // The current region has been split: the partial object will be copied + // to one destination space and the remaining data will be copied to + // another destination space. Adjust the initial destination_count and, + // if necessary, set the source_region field if the partial object will + // cross a destination region boundary. + destination_count = split_info.destination_count(); + if (destination_count == 2) { + size_t dest_idx = addr_to_region_idx(split_info.dest_region_addr()); + _region_data[dest_idx].set_source_region(cur_region); + } + } + HeapWord* const last_addr = dest_addr + words - 1; const size_t dest_region_1 = addr_to_region_idx(dest_addr); const size_t dest_region_2 = addr_to_region_idx(last_addr); -#if 0 + // Initially assume that the destination regions will be the same and // adjust the value below if necessary. Under this assumption, if // cur_region == dest_region_2, then cur_region will be compacted // completely into itself. - uint destination_count = cur_region == dest_region_2 ? 0 : 1; + destination_count += cur_region == dest_region_2 ? 0 : 1; if (dest_region_1 != dest_region_2) { // Destination regions differ; adjust destination_count. destination_count += 1; @@ -487,25 +674,6 @@ bool ParallelCompactData::summarize(HeapWord* target_beg, HeapWord* target_end, // region. _region_data[dest_region_1].set_source_region(cur_region); } -#else - // Initially assume that the destination regions will be different and - // adjust the value below if necessary. Under this assumption, if - // cur_region == dest_region2, then cur_region will be compacted partially - // into dest_region_1 and partially into itself. - uint destination_count = cur_region == dest_region_2 ? 1 : 2; - if (dest_region_1 != dest_region_2) { - // Data from cur_region will be copied to the start of dest_region_2. - _region_data[dest_region_2].set_source_region(cur_region); - } else { - // Destination regions are the same; adjust destination_count. - destination_count -= 1; - if (region_offset(dest_addr) == 0) { - // Data from cur_region will be copied to the start of the destination - // region. - _region_data[dest_region_1].set_source_region(cur_region); - } - } -#endif // #if 0 _region_data[cur_region].set_destination_count(destination_count); _region_data[cur_region].set_data_location(region_to_addr(cur_region)); @@ -749,6 +917,13 @@ PSParallelCompact::clear_data_covering_space(SpaceId id) const size_t end_region = _summary_data.addr_to_region_idx(_summary_data.region_align_up(max_top)); _summary_data.clear_range(beg_region, end_region); + + // Clear the data used to 'split' regions. + SplitInfo& split_info = _space_info[id].split_info(); + if (split_info.is_valid()) { + split_info.clear(); + } + DEBUG_ONLY(split_info.verify_clear();) } void PSParallelCompact::pre_compact(PreGCValues* pre_gc_values) @@ -807,10 +982,11 @@ void PSParallelCompact::post_compact() { TraceTime tm("post compact", print_phases(), true, gclog_or_tty); - // Clear the marking bitmap and summary data and update top() in each space. for (unsigned int id = perm_space_id; id < last_space_id; ++id) { + // Clear the marking bitmap, summary data and split info. clear_data_covering_space(SpaceId(id)); - _space_info[id].space()->set_top(_space_info[id].new_top()); + // Update top(). Must be done after clearing the bitmap and summary data. + _space_info[id].publish_new_top(); } MutableSpace* const eden_space = _space_info[eden_space_id].space(); @@ -1243,10 +1419,11 @@ void PSParallelCompact::summarize_spaces_quick() { for (unsigned int i = 0; i < last_space_id; ++i) { const MutableSpace* space = _space_info[i].space(); - bool result = _summary_data.summarize(space->bottom(), space->end(), - space->bottom(), space->top(), - _space_info[i].new_top_addr()); - assert(result, "should never fail"); + HeapWord** nta = _space_info[i].new_top_addr(); + bool result = _summary_data.summarize(_space_info[i].split_info(), + space->bottom(), space->top(), NULL, + space->bottom(), space->end(), nta); + assert(result, "space must fit into itself"); _space_info[i].set_dense_prefix(space->bottom()); } } @@ -1308,7 +1485,7 @@ void PSParallelCompact::fill_dense_prefix_end(SpaceId id) } #endif // #ifdef _LP64 - gc_heap()->fill_with_object(obj_beg, obj_len); + CollectedHeap::fill_with_object(obj_beg, obj_len); _mark_bitmap.mark_obj(obj_beg, obj_len); _summary_data.add_obj(obj_beg, obj_len); assert(start_array(id) != NULL, "sanity"); @@ -1316,6 +1493,17 @@ void PSParallelCompact::fill_dense_prefix_end(SpaceId id) } } +void +PSParallelCompact::clear_source_region(HeapWord* beg_addr, HeapWord* end_addr) +{ + RegionData* const beg_ptr = _summary_data.addr_to_region_ptr(beg_addr); + HeapWord* const end_aligned_up = _summary_data.region_align_up(end_addr); + RegionData* const end_ptr = _summary_data.addr_to_region_ptr(end_aligned_up); + for (RegionData* cur = beg_ptr; cur < end_ptr; ++cur) { + cur->set_source_region(0); + } +} + void PSParallelCompact::summarize_space(SpaceId id, bool maximum_compaction) { @@ -1337,20 +1525,24 @@ PSParallelCompact::summarize_space(SpaceId id, bool maximum_compaction) } #endif // #ifndef PRODUCT - // If dead space crosses the dense prefix boundary, it is (at least - // partially) filled with a dummy object, marked live and added to the - // summary data. This simplifies the copy/update phase and must be done - // before the final locations of objects are determined, to prevent leaving - // a fragment of dead space that is too small to fill with an object. + // Recompute the summary data, taking into account the dense prefix. If every + // last byte will be reclaimed, then the existing summary data which compacts + // everything can be left in place. if (!maximum_compaction && dense_prefix_end != space->bottom()) { + // If dead space crosses the dense prefix boundary, it is (at least + // partially) filled with a dummy object, marked live and added to the + // summary data. This simplifies the copy/update phase and must be done + // before the final locations of objects are determined, to prevent leaving + // a fragment of dead space that is too small to fill with an object. fill_dense_prefix_end(id); - } - // Compute the destination of each Region, and thus each object. - _summary_data.summarize_dense_prefix(space->bottom(), dense_prefix_end); - _summary_data.summarize(dense_prefix_end, space->end(), - dense_prefix_end, space->top(), - _space_info[id].new_top_addr()); + // Compute the destination of each Region, and thus each object. + _summary_data.summarize_dense_prefix(space->bottom(), dense_prefix_end); + _summary_data.summarize(_space_info[id].split_info(), + dense_prefix_end, space->top(), NULL, + dense_prefix_end, space->end(), + _space_info[id].new_top_addr()); + } } if (TraceParallelOldGCSummaryPhase) { @@ -1370,6 +1562,30 @@ PSParallelCompact::summarize_space(SpaceId id, bool maximum_compaction) } } +#ifndef PRODUCT +void PSParallelCompact::summary_phase_msg(SpaceId dst_space_id, + HeapWord* dst_beg, HeapWord* dst_end, + SpaceId src_space_id, + HeapWord* src_beg, HeapWord* src_end) +{ + if (TraceParallelOldGCSummaryPhase) { + tty->print_cr("summarizing %d [%s] into %d [%s]: " + "src=" PTR_FORMAT "-" PTR_FORMAT " " + SIZE_FORMAT "-" SIZE_FORMAT " " + "dst=" PTR_FORMAT "-" PTR_FORMAT " " + SIZE_FORMAT "-" SIZE_FORMAT, + src_space_id, space_names[src_space_id], + dst_space_id, space_names[dst_space_id], + src_beg, src_end, + _summary_data.addr_to_region_idx(src_beg), + _summary_data.addr_to_region_idx(src_end), + dst_beg, dst_end, + _summary_data.addr_to_region_idx(dst_beg), + _summary_data.addr_to_region_idx(dst_end)); + } +} +#endif // #ifndef PRODUCT + void PSParallelCompact::summary_phase(ParCompactionManager* cm, bool maximum_compaction) { @@ -1402,57 +1618,90 @@ void PSParallelCompact::summary_phase(ParCompactionManager* cm, // The amount of live data that will end up in old space (assuming it fits). size_t old_space_total_live = 0; - unsigned int id; - for (id = old_space_id; id < last_space_id; ++id) { + assert(perm_space_id < old_space_id, "should not count perm data here"); + for (unsigned int id = old_space_id; id < last_space_id; ++id) { old_space_total_live += pointer_delta(_space_info[id].new_top(), _space_info[id].space()->bottom()); } - const MutableSpace* old_space = _space_info[old_space_id].space(); + MutableSpace* const old_space = _space_info[old_space_id].space(); if (old_space_total_live > old_space->capacity_in_words()) { // XXX - should also try to expand maximum_compaction = true; - } else if (!UseParallelOldGCDensePrefix) { - maximum_compaction = true; } // Permanent and Old generations. summarize_space(perm_space_id, maximum_compaction); summarize_space(old_space_id, maximum_compaction); - // Summarize the remaining spaces (those in the young gen) into old space. If - // the live data from a space doesn't fit, the existing summarization is left - // intact, so the data is compacted down within the space itself. - HeapWord** new_top_addr = _space_info[old_space_id].new_top_addr(); - HeapWord* const target_space_end = old_space->end(); - for (id = eden_space_id; id < last_space_id; ++id) { + // Summarize the remaining spaces in the young gen. The initial target space + // is the old gen. If a space does not fit entirely into the target, then the + // remainder is compacted into the space itself and that space becomes the new + // target. + SpaceId dst_space_id = old_space_id; + HeapWord* dst_space_end = old_space->end(); + HeapWord** new_top_addr = _space_info[dst_space_id].new_top_addr(); + for (unsigned int id = eden_space_id; id < last_space_id; ++id) { const MutableSpace* space = _space_info[id].space(); const size_t live = pointer_delta(_space_info[id].new_top(), space->bottom()); - const size_t available = pointer_delta(target_space_end, *new_top_addr); + const size_t available = pointer_delta(dst_space_end, *new_top_addr); + + NOT_PRODUCT(summary_phase_msg(dst_space_id, *new_top_addr, dst_space_end, + SpaceId(id), space->bottom(), space->top());) if (live > 0 && live <= available) { // All the live data will fit. - if (TraceParallelOldGCSummaryPhase) { - tty->print_cr("summarizing %d into old_space @ " PTR_FORMAT, - id, *new_top_addr); - } - _summary_data.summarize(*new_top_addr, target_space_end, - space->bottom(), space->top(), - new_top_addr); + bool done = _summary_data.summarize(_space_info[id].split_info(), + space->bottom(), space->top(), + NULL, + *new_top_addr, dst_space_end, + new_top_addr); + assert(done, "space must fit into old gen"); + // XXX - this is necessary because decrement_destination_counts() tests + // source_region() to determine if a region will be filled. Probably + // better to pass src_space->new_top() into decrement_destination_counts + // and test that instead. + // // Clear the source_region field for each region in the space. - HeapWord* const new_top = _space_info[id].new_top(); - HeapWord* const clear_end = _summary_data.region_align_up(new_top); - RegionData* beg_region = - _summary_data.addr_to_region_ptr(space->bottom()); - RegionData* end_region = _summary_data.addr_to_region_ptr(clear_end); - while (beg_region < end_region) { - beg_region->set_source_region(0); - ++beg_region; - } + clear_source_region(space->bottom(), _space_info[id].new_top()); // Reset the new_top value for the space. _space_info[id].set_new_top(space->bottom()); + } else if (live > 0) { + // Attempt to fit part of the source space into the target space. + HeapWord* next_src_addr = NULL; + bool done = _summary_data.summarize(_space_info[id].split_info(), + space->bottom(), space->top(), + &next_src_addr, + *new_top_addr, dst_space_end, + new_top_addr); + assert(!done, "space should not fit into old gen"); + assert(next_src_addr != NULL, "sanity"); + + // The source space becomes the new target, so the remainder is compacted + // within the space itself. + dst_space_id = SpaceId(id); + dst_space_end = space->end(); + new_top_addr = _space_info[id].new_top_addr(); + HeapWord* const clear_end = _space_info[id].new_top(); + NOT_PRODUCT(summary_phase_msg(dst_space_id, + space->bottom(), dst_space_end, + SpaceId(id), next_src_addr, space->top());) + done = _summary_data.summarize(_space_info[id].split_info(), + next_src_addr, space->top(), + NULL, + space->bottom(), dst_space_end, + new_top_addr); + assert(done, "space must fit when compacted into itself"); + assert(*new_top_addr <= space->top(), "usage should not grow"); + + // XXX - this should go away. See comments above. + // + // Clear the source_region field in regions at the end of the space that + // will not be filled. + HeapWord* const clear_beg = _summary_data.region_align_up(*new_top_addr); + clear_source_region(clear_beg, clear_end); } } @@ -2051,14 +2300,13 @@ void PSParallelCompact::enqueue_dense_prefix_tasks(GCTaskQueue* q, // regions in the dense prefix. Assume that 1 gc thread // will work on opening the gaps and the remaining gc threads // will work on the dense prefix. - SpaceId space_id = old_space_id; - while (space_id != last_space_id) { + unsigned int space_id; + for (space_id = old_space_id; space_id < last_space_id; ++ space_id) { HeapWord* const dense_prefix_end = _space_info[space_id].dense_prefix(); const MutableSpace* const space = _space_info[space_id].space(); if (dense_prefix_end == space->bottom()) { // There is no dense prefix for this space. - space_id = next_compaction_space_id(space_id); continue; } @@ -2108,23 +2356,20 @@ void PSParallelCompact::enqueue_dense_prefix_tasks(GCTaskQueue* q, // region_index_end is not processed size_t region_index_end = MIN2(region_index_start + regions_per_thread, region_index_end_dense_prefix); - q->enqueue(new UpdateDensePrefixTask( - space_id, - region_index_start, - region_index_end)); + q->enqueue(new UpdateDensePrefixTask(SpaceId(space_id), + region_index_start, + region_index_end)); region_index_start = region_index_end; } } // This gets any part of the dense prefix that did not // fit evenly. if (region_index_start < region_index_end_dense_prefix) { - q->enqueue(new UpdateDensePrefixTask( - space_id, - region_index_start, - region_index_end_dense_prefix)); + q->enqueue(new UpdateDensePrefixTask(SpaceId(space_id), + region_index_start, + region_index_end_dense_prefix)); } - space_id = next_compaction_space_id(space_id); - } // End tasks for dense prefix + } } void PSParallelCompact::enqueue_region_stealing_tasks( @@ -2570,16 +2815,24 @@ PSParallelCompact::skip_live_words(HeapWord* beg, HeapWord* end, size_t count) return m->bit_to_addr(cur_beg); } -HeapWord* -PSParallelCompact::first_src_addr(HeapWord* const dest_addr, - size_t src_region_idx) +HeapWord* PSParallelCompact::first_src_addr(HeapWord* const dest_addr, + SpaceId src_space_id, + size_t src_region_idx) { - ParMarkBitMap* const bitmap = mark_bitmap(); + assert(summary_data().is_region_aligned(dest_addr), "not aligned"); + + const SplitInfo& split_info = _space_info[src_space_id].split_info(); + if (split_info.dest_region_addr() == dest_addr) { + // The partial object ending at the split point contains the first word to + // be copied to dest_addr. + return split_info.first_src_addr(); + } + const ParallelCompactData& sd = summary_data(); + ParMarkBitMap* const bitmap = mark_bitmap(); const size_t RegionSize = ParallelCompactData::RegionSize; assert(sd.is_region_aligned(dest_addr), "not aligned"); - const RegionData* const src_region_ptr = sd.region(src_region_idx); const size_t partial_obj_size = src_region_ptr->partial_obj_size(); HeapWord* const src_region_destination = src_region_ptr->destination(); @@ -2740,7 +2993,7 @@ void PSParallelCompact::fill_region(ParCompactionManager* cm, size_t region_idx) HeapWord* src_space_top = _space_info[src_space_id].space()->top(); MoveAndUpdateClosure closure(bitmap, cm, start_array, dest_addr, words); - closure.set_source(first_src_addr(dest_addr, src_region_idx)); + closure.set_source(first_src_addr(dest_addr, src_space_id, src_region_idx)); // Adjust src_region_idx to prepare for decrementing destination counts (the // destination count is not decremented when a region is copied to itself). @@ -3011,34 +3264,3 @@ void PSParallelCompact::compact_prologue() { summary_data().calc_new_pointer(Universe::intArrayKlassObj()); } -// The initial implementation of this method created a field -// _next_compaction_space_id in SpaceInfo and initialized -// that field in SpaceInfo::initialize_space_info(). That -// required that _next_compaction_space_id be declared a -// SpaceId in SpaceInfo and that would have required that -// either SpaceId be declared in a separate class or that -// it be declared in SpaceInfo. It didn't seem consistent -// to declare it in SpaceInfo (didn't really fit logically). -// Alternatively, defining a separate class to define SpaceId -// seem excessive. This implementation is simple and localizes -// the knowledge. - -PSParallelCompact::SpaceId -PSParallelCompact::next_compaction_space_id(SpaceId id) { - assert(id < last_space_id, "id out of range"); - switch (id) { - case perm_space_id : - return last_space_id; - case old_space_id : - return eden_space_id; - case eden_space_id : - return from_space_id; - case from_space_id : - return to_space_id; - case to_space_id : - return last_space_id; - default: - assert(false, "Bad space id"); - return last_space_id; - } -} diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.hpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.hpp index 476c6b7d731..32f8f74a48f 100644 --- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.hpp +++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.hpp @@ -36,6 +36,123 @@ class PreGCValues; class MoveAndUpdateClosure; class RefProcTaskExecutor; +// The SplitInfo class holds the information needed to 'split' a source region +// so that the live data can be copied to two destination *spaces*. Normally, +// all the live data in a region is copied to a single destination space (e.g., +// everything live in a region in eden is copied entirely into the old gen). +// However, when the heap is nearly full, all the live data in eden may not fit +// into the old gen. Copying only some of the regions from eden to old gen +// requires finding a region that does not contain a partial object (i.e., no +// live object crosses the region boundary) somewhere near the last object that +// does fit into the old gen. Since it's not always possible to find such a +// region, splitting is necessary for predictable behavior. +// +// A region is always split at the end of the partial object. This avoids +// additional tests when calculating the new location of a pointer, which is a +// very hot code path. The partial object and everything to its left will be +// copied to another space (call it dest_space_1). The live data to the right +// of the partial object will be copied either within the space itself, or to a +// different destination space (distinct from dest_space_1). +// +// Split points are identified during the summary phase, when region +// destinations are computed: data about the split, including the +// partial_object_size, is recorded in a SplitInfo record and the +// partial_object_size field in the summary data is set to zero. The zeroing is +// possible (and necessary) since the partial object will move to a different +// destination space than anything to its right, thus the partial object should +// not affect the locations of any objects to its right. +// +// The recorded data is used during the compaction phase, but only rarely: when +// the partial object on the split region will be copied across a destination +// region boundary. This test is made once each time a region is filled, and is +// a simple address comparison, so the overhead is negligible (see +// PSParallelCompact::first_src_addr()). +// +// Notes: +// +// Only regions with partial objects are split; a region without a partial +// object does not need any extra bookkeeping. +// +// At most one region is split per space, so the amount of data required is +// constant. +// +// A region is split only when the destination space would overflow. Once that +// happens, the destination space is abandoned and no other data (even from +// other source spaces) is targeted to that destination space. Abandoning the +// destination space may leave a somewhat large unused area at the end, if a +// large object caused the overflow. +// +// Future work: +// +// More bookkeeping would be required to continue to use the destination space. +// The most general solution would allow data from regions in two different +// source spaces to be "joined" in a single destination region. At the very +// least, additional code would be required in next_src_region() to detect the +// join and skip to an out-of-order source region. If the join region was also +// the last destination region to which a split region was copied (the most +// likely case), then additional work would be needed to get fill_region() to +// stop iteration and switch to a new source region at the right point. Basic +// idea would be to use a fake value for the top of the source space. It is +// doable, if a bit tricky. +// +// A simpler (but less general) solution would fill the remainder of the +// destination region with a dummy object and continue filling the next +// destination region. + +class SplitInfo +{ +public: + // Return true if this split info is valid (i.e., if a split has been + // recorded). The very first region cannot have a partial object and thus is + // never split, so 0 is the 'invalid' value. + bool is_valid() const { return _src_region_idx > 0; } + + // Return true if this split holds data for the specified source region. + inline bool is_split(size_t source_region) const; + + // The index of the split region, the size of the partial object on that + // region and the destination of the partial object. + size_t src_region_idx() const { return _src_region_idx; } + size_t partial_obj_size() const { return _partial_obj_size; } + HeapWord* destination() const { return _destination; } + + // The destination count of the partial object referenced by this split + // (either 1 or 2). This must be added to the destination count of the + // remainder of the source region. + unsigned int destination_count() const { return _destination_count; } + + // If a word within the partial object will be written to the first word of a + // destination region, this is the address of the destination region; + // otherwise this is NULL. + HeapWord* dest_region_addr() const { return _dest_region_addr; } + + // If a word within the partial object will be written to the first word of a + // destination region, this is the address of that word within the partial + // object; otherwise this is NULL. + HeapWord* first_src_addr() const { return _first_src_addr; } + + // Record the data necessary to split the region src_region_idx. + void record(size_t src_region_idx, size_t partial_obj_size, + HeapWord* destination); + + void clear(); + + DEBUG_ONLY(void verify_clear();) + +private: + size_t _src_region_idx; + size_t _partial_obj_size; + HeapWord* _destination; + unsigned int _destination_count; + HeapWord* _dest_region_addr; + HeapWord* _first_src_addr; +}; + +inline bool SplitInfo::is_split(size_t region_idx) const +{ + return _src_region_idx == region_idx && is_valid(); +} + class SpaceInfo { public: @@ -58,18 +175,23 @@ class SpaceInfo // is no start array. ObjectStartArray* start_array() const { return _start_array; } + SplitInfo& split_info() { return _split_info; } + void set_space(MutableSpace* s) { _space = s; } void set_new_top(HeapWord* addr) { _new_top = addr; } void set_min_dense_prefix(HeapWord* addr) { _min_dense_prefix = addr; } void set_dense_prefix(HeapWord* addr) { _dense_prefix = addr; } void set_start_array(ObjectStartArray* s) { _start_array = s; } + void publish_new_top() const { _space->set_top(_new_top); } + private: MutableSpace* _space; HeapWord* _new_top; HeapWord* _min_dense_prefix; HeapWord* _dense_prefix; ObjectStartArray* _start_array; + SplitInfo _split_info; }; class ParallelCompactData @@ -230,9 +352,14 @@ public: // must be region-aligned; end need not be. void summarize_dense_prefix(HeapWord* beg, HeapWord* end); - bool summarize(HeapWord* target_beg, HeapWord* target_end, + HeapWord* summarize_split_space(size_t src_region, SplitInfo& split_info, + HeapWord* destination, HeapWord* target_end, + HeapWord** target_next); + bool summarize(SplitInfo& split_info, HeapWord* source_beg, HeapWord* source_end, - HeapWord** target_next, HeapWord** source_next = 0); + HeapWord** source_next, + HeapWord* target_beg, HeapWord* target_end, + HeapWord** target_next); void clear(); void clear_range(size_t beg_region, size_t end_region); @@ -838,13 +965,13 @@ class PSParallelCompact : AllStatic { // non-empty. static void fill_dense_prefix_end(SpaceId id); + // Clear the summary data source_region field for the specified addresses. + static void clear_source_region(HeapWord* beg_addr, HeapWord* end_addr); + static void summarize_spaces_quick(); static void summarize_space(SpaceId id, bool maximum_compaction); static void summary_phase(ParCompactionManager* cm, bool maximum_compaction); - // The space that is compacted after space_id. - static SpaceId next_compaction_space_id(SpaceId space_id); - // Adjust addresses in roots. Does not adjust addresses in heap. static void adjust_roots(); @@ -999,6 +1126,7 @@ class PSParallelCompact : AllStatic { // Return the address of the word to be copied to dest_addr, which must be // aligned to a region boundary. static HeapWord* first_src_addr(HeapWord* const dest_addr, + SpaceId src_space_id, size_t src_region_idx); // Determine the next source region, set closure.source() to the start of the @@ -1081,6 +1209,10 @@ class PSParallelCompact : AllStatic { const SpaceId id, const bool maximum_compaction, HeapWord* const addr); + static void summary_phase_msg(SpaceId dst_space_id, + HeapWord* dst_beg, HeapWord* dst_end, + SpaceId src_space_id, + HeapWord* src_beg, HeapWord* src_end); #endif // #ifndef PRODUCT #ifdef ASSERT From 8fc946854cdb3b677f96cd0af7a8344c2cea6089 Mon Sep 17 00:00:00 2001 From: John Coomes Date: Thu, 11 Dec 2008 12:05:21 -0800 Subject: [PATCH 084/110] 6765954: par compact - stress mode for splitting young gen spaces Reviewed-by: jmasa --- .../parallelScavenge/psParallelCompact.cpp | 186 +++++++++++++++++- .../parallelScavenge/psParallelCompact.hpp | 14 ++ hotspot/src/share/vm/runtime/arguments.cpp | 10 + hotspot/src/share/vm/runtime/globals.hpp | 9 +- 4 files changed, 207 insertions(+), 12 deletions(-) diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp index 852cf5e882d..3401383fd79 100644 --- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp +++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp @@ -1327,6 +1327,13 @@ HeapWord* PSParallelCompact::compute_dense_prefix(const SpaceId id, bool maximum_compaction) { + if (ParallelOldGCSplitALot) { + if (_space_info[id].dense_prefix() != _space_info[id].space()->bottom()) { + // The value was chosen to provoke splitting a young gen space; use it. + return _space_info[id].dense_prefix(); + } + } + const size_t region_size = ParallelCompactData::RegionSize; const ParallelCompactData& sd = summary_data(); @@ -1415,6 +1422,160 @@ PSParallelCompact::compute_dense_prefix(const SpaceId id, return sd.region_to_addr(best_cp); } +#ifndef PRODUCT +void +PSParallelCompact::fill_with_live_objects(SpaceId id, HeapWord* const start, + size_t words) +{ + if (TraceParallelOldGCSummaryPhase) { + tty->print_cr("fill_with_live_objects [" PTR_FORMAT " " PTR_FORMAT ") " + SIZE_FORMAT, start, start + words, words); + } + + ObjectStartArray* const start_array = _space_info[id].start_array(); + CollectedHeap::fill_with_objects(start, words); + for (HeapWord* p = start; p < start + words; p += oop(p)->size()) { + _mark_bitmap.mark_obj(p, words); + _summary_data.add_obj(p, words); + start_array->allocate_block(p); + } +} + +void +PSParallelCompact::summarize_new_objects(SpaceId id, HeapWord* start) +{ + ParallelCompactData& sd = summary_data(); + MutableSpace* space = _space_info[id].space(); + + // Find the source and destination start addresses. + HeapWord* const src_addr = sd.region_align_down(start); + HeapWord* dst_addr; + if (src_addr < start) { + dst_addr = sd.addr_to_region_ptr(src_addr)->destination(); + } else if (src_addr > space->bottom()) { + // The start (the original top() value) is aligned to a region boundary so + // the associated region does not have a destination. Compute the + // destination from the previous region. + RegionData* const cp = sd.addr_to_region_ptr(src_addr) - 1; + dst_addr = cp->destination() + cp->data_size(); + } else { + // Filling the entire space. + dst_addr = space->bottom(); + } + assert(dst_addr != NULL, "sanity"); + + // Update the summary data. + bool result = _summary_data.summarize(_space_info[id].split_info(), + src_addr, space->top(), NULL, + dst_addr, space->end(), + _space_info[id].new_top_addr()); + assert(result, "should not fail: bad filler object size"); +} + +void +PSParallelCompact::provoke_split(bool & max_compaction) +{ + const size_t region_size = ParallelCompactData::RegionSize; + ParallelCompactData& sd = summary_data(); + + MutableSpace* const eden_space = _space_info[eden_space_id].space(); + MutableSpace* const from_space = _space_info[from_space_id].space(); + const size_t eden_live = pointer_delta(eden_space->top(), + _space_info[eden_space_id].new_top()); + const size_t from_live = pointer_delta(from_space->top(), + _space_info[from_space_id].new_top()); + + const size_t min_fill_size = CollectedHeap::min_fill_size(); + const size_t eden_free = pointer_delta(eden_space->end(), eden_space->top()); + const size_t eden_fillable = eden_free >= min_fill_size ? eden_free : 0; + const size_t from_free = pointer_delta(from_space->end(), from_space->top()); + const size_t from_fillable = from_free >= min_fill_size ? from_free : 0; + + // Choose the space to split; need at least 2 regions live (or fillable). + SpaceId id; + MutableSpace* space; + size_t live_words; + size_t fill_words; + if (eden_live + eden_fillable >= region_size * 2) { + id = eden_space_id; + space = eden_space; + live_words = eden_live; + fill_words = eden_fillable; + } else if (from_live + from_fillable >= region_size * 2) { + id = from_space_id; + space = from_space; + live_words = from_live; + fill_words = from_fillable; + } else { + return; // Give up. + } + assert(fill_words == 0 || fill_words >= min_fill_size, "sanity"); + + if (live_words < region_size * 2) { + // Fill from top() to end() w/live objects of mixed sizes. + HeapWord* const fill_start = space->top(); + live_words += fill_words; + + space->set_top(fill_start + fill_words); + if (ZapUnusedHeapArea) { + space->set_top_for_allocations(); + } + + HeapWord* cur_addr = fill_start; + while (fill_words > 0) { + const size_t r = (size_t)os::random() % (region_size / 2) + min_fill_size; + size_t cur_size = MIN2(align_object_size_(r), fill_words); + if (fill_words - cur_size < min_fill_size) { + cur_size = fill_words; // Avoid leaving a fragment too small to fill. + } + + CollectedHeap::fill_with_object(cur_addr, cur_size); + mark_bitmap()->mark_obj(cur_addr, cur_size); + sd.add_obj(cur_addr, cur_size); + + cur_addr += cur_size; + fill_words -= cur_size; + } + + summarize_new_objects(id, fill_start); + } + + max_compaction = false; + + // Manipulate the old gen so that it has room for about half of the live data + // in the target young gen space (live_words / 2). + id = old_space_id; + space = _space_info[id].space(); + const size_t free_at_end = space->free_in_words(); + const size_t free_target = align_object_size(live_words / 2); + const size_t dead = pointer_delta(space->top(), _space_info[id].new_top()); + + if (free_at_end >= free_target + min_fill_size) { + // Fill space above top() and set the dense prefix so everything survives. + HeapWord* const fill_start = space->top(); + const size_t fill_size = free_at_end - free_target; + space->set_top(space->top() + fill_size); + if (ZapUnusedHeapArea) { + space->set_top_for_allocations(); + } + fill_with_live_objects(id, fill_start, fill_size); + summarize_new_objects(id, fill_start); + _space_info[id].set_dense_prefix(sd.region_align_down(space->top())); + } else if (dead + free_at_end > free_target) { + // Find a dense prefix that makes the right amount of space available. + HeapWord* cur = sd.region_align_down(space->top()); + HeapWord* cur_destination = sd.addr_to_region_ptr(cur)->destination(); + size_t dead_to_right = pointer_delta(space->end(), cur_destination); + while (dead_to_right < free_target) { + cur -= region_size; + cur_destination = sd.addr_to_region_ptr(cur)->destination(); + dead_to_right = pointer_delta(space->end(), cur_destination); + } + _space_info[id].set_dense_prefix(cur); + } +} +#endif // #ifndef PRODUCT + void PSParallelCompact::summarize_spaces_quick() { for (unsigned int i = 0; i < last_space_id; ++i) { @@ -1508,8 +1669,9 @@ void PSParallelCompact::summarize_space(SpaceId id, bool maximum_compaction) { assert(id < last_space_id, "id out of range"); - assert(_space_info[id].dense_prefix() == _space_info[id].space()->bottom(), - "should have been set in summarize_spaces_quick()"); + assert(_space_info[id].dense_prefix() == _space_info[id].space()->bottom() || + ParallelOldGCSplitALot && id == old_space_id, + "should have been reset in summarize_spaces_quick()"); const MutableSpace* space = _space_info[id].space(); if (_space_info[id].new_top() != space->bottom()) { @@ -1525,15 +1687,15 @@ PSParallelCompact::summarize_space(SpaceId id, bool maximum_compaction) } #endif // #ifndef PRODUCT - // Recompute the summary data, taking into account the dense prefix. If every - // last byte will be reclaimed, then the existing summary data which compacts - // everything can be left in place. + // Recompute the summary data, taking into account the dense prefix. If + // every last byte will be reclaimed, then the existing summary data which + // compacts everything can be left in place. if (!maximum_compaction && dense_prefix_end != space->bottom()) { // If dead space crosses the dense prefix boundary, it is (at least // partially) filled with a dummy object, marked live and added to the // summary data. This simplifies the copy/update phase and must be done - // before the final locations of objects are determined, to prevent leaving - // a fragment of dead space that is too small to fill with an object. + // before the final locations of objects are determined, to prevent + // leaving a fragment of dead space that is too small to fill. fill_dense_prefix_end(id); // Compute the destination of each Region, and thus each object. @@ -1625,10 +1787,18 @@ void PSParallelCompact::summary_phase(ParCompactionManager* cm, } MutableSpace* const old_space = _space_info[old_space_id].space(); - if (old_space_total_live > old_space->capacity_in_words()) { + const size_t old_capacity = old_space->capacity_in_words(); + if (old_space_total_live > old_capacity) { // XXX - should also try to expand maximum_compaction = true; } +#ifndef PRODUCT + if (ParallelOldGCSplitALot && old_space_total_live < old_capacity) { + if (total_invocations() % ParallelOldGCSplitInterval == 0) { + provoke_split(maximum_compaction); + } + } +#endif // #ifndef PRODUCT // Permanent and Old generations. summarize_space(perm_space_id, maximum_compaction); diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.hpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.hpp index 32f8f74a48f..de0dbdefd62 100644 --- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.hpp +++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.hpp @@ -968,6 +968,20 @@ class PSParallelCompact : AllStatic { // Clear the summary data source_region field for the specified addresses. static void clear_source_region(HeapWord* beg_addr, HeapWord* end_addr); +#ifndef PRODUCT + // Routines to provoke splitting a young gen space (ParallelOldGCSplitALot). + + // Fill the region [start, start + words) with live object(s). Only usable + // for the old and permanent generations. + static void fill_with_live_objects(SpaceId id, HeapWord* const start, + size_t words); + // Include the new objects in the summary data. + static void summarize_new_objects(SpaceId id, HeapWord* start); + + // Add live objects and/or choose the dense prefix to provoke splitting. + static void provoke_split(bool & maximum_compaction); +#endif + static void summarize_spaces_quick(); static void summarize_space(SpaceId id, bool maximum_compaction); static void summary_phase(ParCompactionManager* cm, bool maximum_compaction); diff --git a/hotspot/src/share/vm/runtime/arguments.cpp b/hotspot/src/share/vm/runtime/arguments.cpp index 831218796cf..06ff70505c9 100644 --- a/hotspot/src/share/vm/runtime/arguments.cpp +++ b/hotspot/src/share/vm/runtime/arguments.cpp @@ -1517,6 +1517,16 @@ bool Arguments::check_vm_args_consistency() { MarkSweepAlwaysCompactCount = 1; // Move objects every gc. } + if (UseParallelOldGC && ParallelOldGCSplitALot) { + // Settings to encourage splitting. + if (!FLAG_IS_CMDLINE(NewRatio)) { + FLAG_SET_CMDLINE(intx, NewRatio, 2); + } + if (!FLAG_IS_CMDLINE(ScavengeBeforeFullGC)) { + FLAG_SET_CMDLINE(bool, ScavengeBeforeFullGC, false); + } + } + status = status && verify_percentage(GCHeapFreeLimit, "GCHeapFreeLimit"); status = status && verify_percentage(GCTimeLimit, "GCTimeLimit"); if (GCTimeLimit == 100) { diff --git a/hotspot/src/share/vm/runtime/globals.hpp b/hotspot/src/share/vm/runtime/globals.hpp index 0a9f4d45dc8..f945bb36708 100644 --- a/hotspot/src/share/vm/runtime/globals.hpp +++ b/hotspot/src/share/vm/runtime/globals.hpp @@ -1203,11 +1203,12 @@ class CommandLineFlags { product(uintx, ParallelCMSThreads, 0, \ "Max number of threads CMS will use for concurrent work") \ \ - develop(bool, ParallelOldMTUnsafeMarkBitMap, false, \ - "Use the Parallel Old MT unsafe in marking the bitmap") \ + develop(bool, ParallelOldGCSplitALot, false, \ + "Provoke splitting (copying data from a young gen space to" \ + "multiple destination spaces)") \ \ - develop(bool, ParallelOldMTUnsafeUpdateLiveData, false, \ - "Use the Parallel Old MT unsafe in update of live size") \ + develop(uintx, ParallelOldGCSplitInterval, 3, \ + "How often to provoke splitting a young gen space") \ \ develop(bool, TraceRegionTasksQueuing, false, \ "Trace the queuing of the region tasks") \ From 552c37000d8e1e32a39b755da0c4f827d4c89440 Mon Sep 17 00:00:00 2001 From: Tom Rodriguez Date: Fri, 12 Dec 2008 19:53:25 -0800 Subject: [PATCH 085/110] 6767587: missing call to make_not_entrant after deoptimizing for patching volatiles Reviewed-by: rasbold, kvn --- hotspot/src/share/vm/c1/c1_Runtime1.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/hotspot/src/share/vm/c1/c1_Runtime1.cpp b/hotspot/src/share/vm/c1/c1_Runtime1.cpp index 04750308db3..dcd0f282ab9 100644 --- a/hotspot/src/share/vm/c1/c1_Runtime1.cpp +++ b/hotspot/src/share/vm/c1/c1_Runtime1.cpp @@ -842,6 +842,13 @@ JRT_ENTRY(void, Runtime1::patch_code(JavaThread* thread, Runtime1::StubID stub_i if (TracePatching) { tty->print_cr("Deoptimizing for patching volatile field reference"); } + // It's possible the nmethod was invalidated in the last + // safepoint, but if it's still alive then make it not_entrant. + nmethod* nm = CodeCache::find_nmethod(caller_frame.pc()); + if (nm != NULL) { + nm->make_not_entrant(); + } + VM_DeoptimizeFrame deopt(thread, caller_frame.id()); VMThread::execute(&deopt); From 40a81c63b8b5cf82bd23c256d4006fbe41779b26 Mon Sep 17 00:00:00 2001 From: Tom Rodriguez Date: Fri, 12 Dec 2008 19:54:46 -0800 Subject: [PATCH 086/110] 6757316: load_constant() produces a wrong long constant, with high a low words swapped Reviewed-by: rasbold, jrose, kvn --- hotspot/src/share/vm/c1/c1_LIRGenerator.cpp | 4 +- .../test/compiler/6757316/Test6757316.java | 43 +++++++++++++++++++ 2 files changed, 45 insertions(+), 2 deletions(-) create mode 100644 hotspot/test/compiler/6757316/Test6757316.java diff --git a/hotspot/src/share/vm/c1/c1_LIRGenerator.cpp b/hotspot/src/share/vm/c1/c1_LIRGenerator.cpp index 16552a7e5d3..9b718a3d28f 100644 --- a/hotspot/src/share/vm/c1/c1_LIRGenerator.cpp +++ b/hotspot/src/share/vm/c1/c1_LIRGenerator.cpp @@ -1210,8 +1210,8 @@ LIR_Opr LIRGenerator::load_constant(LIR_Const* c) { break; case T_LONG: case T_DOUBLE: - if (c->as_jint_hi_bits() != other->as_jint_lo_bits()) continue; - if (c->as_jint_lo_bits() != other->as_jint_hi_bits()) continue; + if (c->as_jint_hi_bits() != other->as_jint_hi_bits()) continue; + if (c->as_jint_lo_bits() != other->as_jint_lo_bits()) continue; break; case T_OBJECT: if (c->as_jobject() != other->as_jobject()) continue; diff --git a/hotspot/test/compiler/6757316/Test6757316.java b/hotspot/test/compiler/6757316/Test6757316.java new file mode 100644 index 00000000000..2efc5acd84d --- /dev/null +++ b/hotspot/test/compiler/6757316/Test6757316.java @@ -0,0 +1,43 @@ +/* + * Copyright 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. + * + * 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. + */ + +/** + * @test + * @bug 6757316 + * @summary load_constant() produces a wrong long constant, with high a low words swapped + * @run main/othervm -Xcomp Test6757316 + */ + +public class Test6757316 { + public static void main(String[] args) { + long[] arr = { + 0x11111111aaaaaaaaL, + 0xaaaaaaaa11111111L, + 0x11111111aaaaaaaaL, + 0xaaaaaaaa11111111L + }; + if (arr[0] == arr[1]) { + throw new InternalError(); + } + } +} From baa4663714d54352e3676dd9d1f89cd537fe65bc Mon Sep 17 00:00:00 2001 From: Tom Rodriguez Date: Fri, 12 Dec 2008 19:55:26 -0800 Subject: [PATCH 087/110] 6758234: if (k cond (a ? : b: c)) returns reversed answer if k is constant and b and c are longs Reviewed-by: kvn, jrose --- hotspot/src/share/vm/c1/c1_Optimizer.cpp | 2 - .../test/compiler/6758234/Test6758234.java | 40 +++++++++++++++++++ 2 files changed, 40 insertions(+), 2 deletions(-) create mode 100644 hotspot/test/compiler/6758234/Test6758234.java diff --git a/hotspot/src/share/vm/c1/c1_Optimizer.cpp b/hotspot/src/share/vm/c1/c1_Optimizer.cpp index ea4b3a576db..1b9f77aeef2 100644 --- a/hotspot/src/share/vm/c1/c1_Optimizer.cpp +++ b/hotspot/src/share/vm/c1/c1_Optimizer.cpp @@ -327,8 +327,6 @@ class BlockMerger: public BlockClosure { BlockBegin* fsux = if_->fsux(); if (swapped) { cond = Instruction::mirror(cond); - tsux = if_->fsux(); - fsux = if_->tsux(); } BlockBegin* tblock = tval->compare(cond, con, tsux, fsux); diff --git a/hotspot/test/compiler/6758234/Test6758234.java b/hotspot/test/compiler/6758234/Test6758234.java new file mode 100644 index 00000000000..be916a2a191 --- /dev/null +++ b/hotspot/test/compiler/6758234/Test6758234.java @@ -0,0 +1,40 @@ +/* + * Copyright 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. + * + * 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. + */ + +/** + * @test + * @bug 6758234 + * @summary if (k cond (a ? : b: c)) returns reversed answer if k is constant and b and c are longs + * @run main/othervm -Xcomp -XX:CompileOnly=Test6758234.main Test6758234 + */ + +public class Test6758234 { + static int x = 0; + static int y = 1; + + public static void main(String[] args) { + if (1 != ((x < y) ? 1L : 0)) { + throw new InternalError(); + } + } +} From 06e37c03fb2d4bf67215a700d359d8a7539b0773 Mon Sep 17 00:00:00 2001 From: Swamy Venkataramanappa Date: Mon, 15 Dec 2008 13:58:57 -0800 Subject: [PATCH 088/110] 6653214: MemoryPoolMXBean.setUsageThreshold() does not support large heap sizes Reviewed-by: ysr, mchung --- .../gc_implementation/g1/heapRegionRemSet.cpp | 2 +- .../src/share/vm/memory/cardTableModRefBS.cpp | 2 +- .../src/share/vm/memory/cardTableModRefBS.hpp | 2 +- hotspot/src/share/vm/runtime/arguments.cpp | 49 ++++++++++--------- hotspot/src/share/vm/runtime/arguments.hpp | 6 +-- hotspot/src/share/vm/services/management.cpp | 8 +-- 6 files changed, 37 insertions(+), 32 deletions(-) diff --git a/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp b/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp index f2d262ebfb5..e2b15ca37c9 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp +++ b/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp @@ -181,7 +181,7 @@ public: void scrub(CardTableModRefBS* ctbs, BitMap* card_bm) { HeapWord* hr_bot = hr()->bottom(); - int hr_first_card_index = ctbs->index_for(hr_bot); + size_t hr_first_card_index = ctbs->index_for(hr_bot); bm()->set_intersection_at_offset(*card_bm, hr_first_card_index); #if PRT_COUNT_OCCUPIED recount_occupied(); diff --git a/hotspot/src/share/vm/memory/cardTableModRefBS.cpp b/hotspot/src/share/vm/memory/cardTableModRefBS.cpp index 8a006a4042b..ee9ed1fc8be 100644 --- a/hotspot/src/share/vm/memory/cardTableModRefBS.cpp +++ b/hotspot/src/share/vm/memory/cardTableModRefBS.cpp @@ -283,7 +283,7 @@ void CardTableModRefBS::resize_covered_region(MemRegion new_region) { } else { entry = byte_after(old_region.last()); } - assert(index_for(new_region.last()) < (int) _guard_index, + assert(index_for(new_region.last()) < _guard_index, "The guard card will be overwritten"); // This line commented out cleans the newly expanded region and // not the aligned up expanded region. diff --git a/hotspot/src/share/vm/memory/cardTableModRefBS.hpp b/hotspot/src/share/vm/memory/cardTableModRefBS.hpp index 440d42c6ac1..9a48ab5497d 100644 --- a/hotspot/src/share/vm/memory/cardTableModRefBS.hpp +++ b/hotspot/src/share/vm/memory/cardTableModRefBS.hpp @@ -428,7 +428,7 @@ public: } // Mapping from address to card marking array index. - int index_for(void* p) { + size_t index_for(void* p) { assert(_whole_heap.contains(p), "out of bounds access to card marking array"); return byte_for(p) - _byte_map; diff --git a/hotspot/src/share/vm/runtime/arguments.cpp b/hotspot/src/share/vm/runtime/arguments.cpp index 06ff70505c9..b9c943d10b2 100644 --- a/hotspot/src/share/vm/runtime/arguments.cpp +++ b/hotspot/src/share/vm/runtime/arguments.cpp @@ -444,9 +444,9 @@ char* SysClassPath::add_jars_to_path(char* path, const char* directory) { } // Parses a memory size specification string. -static bool atomll(const char *s, jlong* result) { - jlong n = 0; - int args_read = sscanf(s, os::jlong_format_specifier(), &n); +static bool atomull(const char *s, julong* result) { + julong n = 0; + int args_read = sscanf(s, os::julong_format_specifier(), &n); if (args_read != 1) { return false; } @@ -460,15 +460,20 @@ static bool atomll(const char *s, jlong* result) { switch (*s) { case 'T': case 't': *result = n * G * K; + // Check for overflow. + if (*result/((julong)G * K) != n) return false; return true; case 'G': case 'g': *result = n * G; + if (*result/G != n) return false; return true; case 'M': case 'm': *result = n * M; + if (*result/M != n) return false; return true; case 'K': case 'k': *result = n * K; + if (*result/K != n) return false; return true; case '\0': *result = n; @@ -478,10 +483,10 @@ static bool atomll(const char *s, jlong* result) { } } -Arguments::ArgsRange Arguments::check_memory_size(jlong size, jlong min_size) { +Arguments::ArgsRange Arguments::check_memory_size(julong size, julong min_size) { if (size < min_size) return arg_too_small; // Check that size will fit in a size_t (only relevant on 32-bit) - if ((julong) size > max_uintx) return arg_too_big; + if (size > max_uintx) return arg_too_big; return arg_in_range; } @@ -522,10 +527,10 @@ static bool set_fp_numeric_flag(char* name, char* value, FlagValueOrigin origin) static bool set_numeric_flag(char* name, char* value, FlagValueOrigin origin) { - jlong v; + julong v; intx intx_v; bool is_neg = false; - // Check the sign first since atomll() parses only unsigned values. + // Check the sign first since atomull() parses only unsigned values. if (*value == '-') { if (!CommandLineFlags::intxAt(name, &intx_v)) { return false; @@ -533,7 +538,7 @@ static bool set_numeric_flag(char* name, char* value, FlagValueOrigin origin) { value++; is_neg = true; } - if (!atomll(value, &v)) { + if (!atomull(value, &v)) { return false; } intx_v = (intx) v; @@ -1677,9 +1682,9 @@ static bool match_option(const JavaVMOption* option, const char** names, const c } Arguments::ArgsRange Arguments::parse_memory_size(const char* s, - jlong* long_arg, - jlong min_size) { - if (!atomll(s, long_arg)) return arg_unreadable; + julong* long_arg, + julong min_size) { + if (!atomull(s, long_arg)) return arg_unreadable; return check_memory_size(*long_arg, min_size); } @@ -1857,7 +1862,7 @@ jint Arguments::parse_each_vm_init_arg(const JavaVMInitArgs* args, FLAG_SET_CMDLINE(bool, BackgroundCompilation, false); // -Xmn for compatibility with other JVM vendors } else if (match_option(option, "-Xmn", &tail)) { - jlong long_initial_eden_size = 0; + julong long_initial_eden_size = 0; ArgsRange errcode = parse_memory_size(tail, &long_initial_eden_size, 1); if (errcode != arg_in_range) { jio_fprintf(defaultStream::error_stream(), @@ -1869,7 +1874,7 @@ jint Arguments::parse_each_vm_init_arg(const JavaVMInitArgs* args, FLAG_SET_CMDLINE(uintx, NewSize, (size_t) long_initial_eden_size); // -Xms } else if (match_option(option, "-Xms", &tail)) { - jlong long_initial_heap_size = 0; + julong long_initial_heap_size = 0; ArgsRange errcode = parse_memory_size(tail, &long_initial_heap_size, 1); if (errcode != arg_in_range) { jio_fprintf(defaultStream::error_stream(), @@ -1882,7 +1887,7 @@ jint Arguments::parse_each_vm_init_arg(const JavaVMInitArgs* args, set_min_heap_size(initial_heap_size()); // -Xmx } else if (match_option(option, "-Xmx", &tail)) { - jlong long_max_heap_size = 0; + julong long_max_heap_size = 0; ArgsRange errcode = parse_memory_size(tail, &long_max_heap_size, 1); if (errcode != arg_in_range) { jio_fprintf(defaultStream::error_stream(), @@ -1915,7 +1920,7 @@ jint Arguments::parse_each_vm_init_arg(const JavaVMInitArgs* args, } // -Xss } else if (match_option(option, "-Xss", &tail)) { - jlong long_ThreadStackSize = 0; + julong long_ThreadStackSize = 0; ArgsRange errcode = parse_memory_size(tail, &long_ThreadStackSize, 1000); if (errcode != arg_in_range) { jio_fprintf(defaultStream::error_stream(), @@ -1931,9 +1936,9 @@ jint Arguments::parse_each_vm_init_arg(const JavaVMInitArgs* args, // HotSpot does not have separate native and Java stacks, ignore silently for compatibility // -Xmaxjitcodesize } else if (match_option(option, "-Xmaxjitcodesize", &tail)) { - jlong long_ReservedCodeCacheSize = 0; + julong long_ReservedCodeCacheSize = 0; ArgsRange errcode = parse_memory_size(tail, &long_ReservedCodeCacheSize, - InitialCodeCacheSize); + (size_t)InitialCodeCacheSize); if (errcode != arg_in_range) { jio_fprintf(defaultStream::error_stream(), "Invalid maximum code cache size: %s\n", @@ -2238,7 +2243,7 @@ jint Arguments::parse_each_vm_init_arg(const JavaVMInitArgs* args, } else if (match_option(option, "-XX:TLEFragmentationRatio=", &tail)) { // No longer used. } else if (match_option(option, "-XX:TLESize=", &tail)) { - jlong long_tlab_size = 0; + julong long_tlab_size = 0; ArgsRange errcode = parse_memory_size(tail, &long_tlab_size, 1); if (errcode != arg_in_range) { jio_fprintf(defaultStream::error_stream(), @@ -2293,7 +2298,7 @@ SOLARIS_ONLY( "-XX:ParCMSPromoteBlocksToClaim in the future\n"); } else if (match_option(option, "-XX:ParallelGCOldGenAllocBufferSize=", &tail)) { - jlong old_plab_size = 0; + julong old_plab_size = 0; ArgsRange errcode = parse_memory_size(tail, &old_plab_size, 1); if (errcode != arg_in_range) { jio_fprintf(defaultStream::error_stream(), @@ -2301,13 +2306,13 @@ SOLARIS_ONLY( describe_range_error(errcode); return JNI_EINVAL; } - FLAG_SET_CMDLINE(uintx, OldPLABSize, (julong)old_plab_size); + FLAG_SET_CMDLINE(uintx, OldPLABSize, old_plab_size); jio_fprintf(defaultStream::error_stream(), "Please use -XX:OldPLABSize in place of " "-XX:ParallelGCOldGenAllocBufferSize in the future\n"); } else if (match_option(option, "-XX:ParallelGCToSpaceAllocBufferSize=", &tail)) { - jlong young_plab_size = 0; + julong young_plab_size = 0; ArgsRange errcode = parse_memory_size(tail, &young_plab_size, 1); if (errcode != arg_in_range) { jio_fprintf(defaultStream::error_stream(), @@ -2315,7 +2320,7 @@ SOLARIS_ONLY( describe_range_error(errcode); return JNI_EINVAL; } - FLAG_SET_CMDLINE(uintx, YoungPLABSize, (julong)young_plab_size); + FLAG_SET_CMDLINE(uintx, YoungPLABSize, young_plab_size); jio_fprintf(defaultStream::error_stream(), "Please use -XX:YoungPLABSize in place of " "-XX:ParallelGCToSpaceAllocBufferSize in the future\n"); diff --git a/hotspot/src/share/vm/runtime/arguments.hpp b/hotspot/src/share/vm/runtime/arguments.hpp index 5dfd4aa78f9..b5dca5b90de 100644 --- a/hotspot/src/share/vm/runtime/arguments.hpp +++ b/hotspot/src/share/vm/runtime/arguments.hpp @@ -339,9 +339,9 @@ class Arguments : AllStatic { } static bool verify_percentage(uintx value, const char* name); static void describe_range_error(ArgsRange errcode); - static ArgsRange check_memory_size(jlong size, jlong min_size); - static ArgsRange parse_memory_size(const char* s, jlong* long_arg, - jlong min_size); + static ArgsRange check_memory_size(julong size, julong min_size); + static ArgsRange parse_memory_size(const char* s, julong* long_arg, + julong min_size); // methods to build strings from individual args static void build_jvm_args(const char* arg); diff --git a/hotspot/src/share/vm/services/management.cpp b/hotspot/src/share/vm/services/management.cpp index 387deee7325..f58e546ea13 100644 --- a/hotspot/src/share/vm/services/management.cpp +++ b/hotspot/src/share/vm/services/management.cpp @@ -694,10 +694,10 @@ JVM_ENTRY(jlong, jmm_SetPoolThreshold(JNIEnv* env, jobject obj, jmmThresholdType -1); } - if (threshold > max_intx) { - THROW_MSG_(vmSymbols::java_lang_IllegalArgumentException(), - "Invalid threshold value > max value of size_t", - -1); + if ((size_t)threshold > max_uintx) { + stringStream st; + st.print("Invalid valid threshold value. Threshold value (" UINT64_FORMAT ") > max value of size_t (" SIZE_FORMAT ")", (size_t)threshold, max_uintx); + THROW_MSG_(vmSymbols::java_lang_IllegalArgumentException(), st.as_string(), -1); } MemoryPool* pool = get_memory_pool_from_jobject(obj, CHECK_(0L)); From 87e027e6c781caed105d1d75747a4c13f3c0298a Mon Sep 17 00:00:00 2001 From: Xiomara Jayasena Date: Mon, 15 Dec 2008 16:55:07 -0800 Subject: [PATCH 089/110] 6785258: Update copyright year Update copyright for files that have been modified starting July 2008 to Dec 2008 Reviewed-by: katleman, ohair, tbell --- corba/make/common/Defs-windows.gmk | 2 +- corba/make/common/shared/Compiler-msvc.gmk | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/corba/make/common/Defs-windows.gmk b/corba/make/common/Defs-windows.gmk index aa863f64782..b387e8b51d2 100644 --- a/corba/make/common/Defs-windows.gmk +++ b/corba/make/common/Defs-windows.gmk @@ -1,5 +1,5 @@ # -# Copyright 1999-2007 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 1999-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 diff --git a/corba/make/common/shared/Compiler-msvc.gmk b/corba/make/common/shared/Compiler-msvc.gmk index e42dce91a40..e7ae0e35dcc 100644 --- a/corba/make/common/shared/Compiler-msvc.gmk +++ b/corba/make/common/shared/Compiler-msvc.gmk @@ -1,5 +1,5 @@ # -# Copyright 2005-2006 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 2005-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 From 99f0eac1a20bac543b77986793dfb9e16f480cec Mon Sep 17 00:00:00 2001 From: Xiomara Jayasena Date: Mon, 15 Dec 2008 16:55:11 -0800 Subject: [PATCH 090/110] 6785258: Update copyright year Update copyright for files that have been modified starting July 2008 to Dec 2008 Reviewed-by: katleman, ohair, tbell --- hotspot/src/cpu/x86/vm/vm_version_x86_32.hpp | 2 +- hotspot/src/cpu/x86/vm/vm_version_x86_64.hpp | 2 +- hotspot/src/os/linux/launcher/java.c | 2 +- hotspot/src/os/linux/launcher/java.h | 2 +- hotspot/src/os/linux/launcher/java_md.c | 2 +- hotspot/src/os/linux/vm/globals_linux.hpp | 2 +- hotspot/src/os/solaris/launcher/java.c | 2 +- hotspot/src/os/solaris/launcher/java.h | 2 +- hotspot/src/os/solaris/launcher/java_md.c | 2 +- hotspot/src/os/solaris/vm/globals_solaris.hpp | 2 +- hotspot/src/os/windows/vm/globals_windows.hpp | 2 +- hotspot/src/os/windows/vm/os_windows.hpp | 2 +- hotspot/src/os_cpu/linux_x86/vm/linux_x86_32.ad | 2 +- .../src/com/sun/hotspot/igv/data/serialization/XMLWriter.java | 2 +- .../src/com/sun/hotspot/igv/difference/Difference.java | 2 +- .../Filter/src/com/sun/hotspot/igv/filter/CustomFilter.java | 2 +- .../Util/src/com/sun/hotspot/igv/util/PropertiesSheet.java | 2 +- .../Util/src/com/sun/hotspot/igv/util/RangeSliderModel.java | 2 +- .../View/src/com/sun/hotspot/igv/view/DiagramViewModel.java | 2 +- hotspot/src/share/vm/adlc/adlparse.cpp | 2 +- hotspot/src/share/vm/adlc/adlparse.hpp | 2 +- hotspot/src/share/vm/adlc/filebuff.cpp | 2 +- hotspot/src/share/vm/adlc/filebuff.hpp | 2 +- hotspot/src/share/vm/adlc/formssel.hpp | 2 +- hotspot/src/share/vm/c1/c1_GraphBuilder.cpp | 2 +- hotspot/src/share/vm/c1/c1_GraphBuilder.hpp | 2 +- hotspot/src/share/vm/c1/c1_IR.cpp | 2 +- hotspot/src/share/vm/c1/c1_ValueMap.hpp | 2 +- hotspot/src/share/vm/ci/ciEnv.cpp | 2 +- hotspot/src/share/vm/ci/ciTypeFlow.cpp | 2 +- hotspot/src/share/vm/classfile/classFileParser.hpp | 2 +- hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp | 2 +- hotspot/src/share/vm/gc_implementation/g1/dirtyCardQueue.cpp | 2 +- .../src/share/vm/gc_implementation/g1/g1BlockOffsetTable.cpp | 2 +- hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp | 2 +- hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.hpp | 2 +- hotspot/src/share/vm/gc_implementation/g1/g1CollectorPolicy.cpp | 2 +- hotspot/src/share/vm/gc_implementation/g1/g1MarkSweep.cpp | 2 +- hotspot/src/share/vm/gc_implementation/g1/heapRegion.cpp | 2 +- hotspot/src/share/vm/gc_implementation/g1/heapRegion.hpp | 2 +- hotspot/src/share/vm/gc_implementation/g1/heapRegionSeq.cpp | 2 +- hotspot/src/share/vm/gc_implementation/g1/heapRegionSeq.hpp | 2 +- hotspot/src/share/vm/gc_implementation/g1/ptrQueue.cpp | 2 +- hotspot/src/share/vm/gc_implementation/g1/ptrQueue.hpp | 2 +- hotspot/src/share/vm/gc_implementation/includeDB_gc_g1 | 2 +- .../src/share/vm/gc_implementation/parallelScavenge/pcTasks.hpp | 2 +- .../gc_implementation/parallelScavenge/psCompactionManager.cpp | 2 +- .../gc_implementation/parallelScavenge/psCompactionManager.hpp | 2 +- .../gc_implementation/parallelScavenge/psMarkSweepDecorator.hpp | 2 +- .../share/vm/gc_implementation/parallelScavenge/psPermGen.cpp | 2 +- hotspot/src/share/vm/interpreter/bytecodeStream.cpp | 2 +- hotspot/src/share/vm/interpreter/bytecodes.cpp | 2 +- hotspot/src/share/vm/interpreter/bytecodes.hpp | 2 +- hotspot/src/share/vm/memory/referencePolicy.cpp | 2 +- hotspot/src/share/vm/memory/referencePolicy.hpp | 2 +- hotspot/src/share/vm/memory/tenuredGeneration.hpp | 2 +- hotspot/src/share/vm/oops/constantPoolOop.cpp | 2 +- hotspot/src/share/vm/opto/block.hpp | 2 +- hotspot/src/share/vm/opto/phase.cpp | 2 +- hotspot/src/share/vm/opto/phase.hpp | 2 +- hotspot/src/share/vm/prims/jniCheck.cpp | 2 +- hotspot/src/share/vm/prims/jniCheck.hpp | 2 +- hotspot/src/share/vm/prims/jvmtiEnvBase.cpp | 2 +- hotspot/src/share/vm/prims/jvmtiTrace.cpp | 2 +- hotspot/src/share/vm/runtime/javaCalls.cpp | 2 +- hotspot/src/share/vm/runtime/javaCalls.hpp | 2 +- hotspot/src/share/vm/runtime/perfMemory.cpp | 2 +- hotspot/src/share/vm/runtime/perfMemory.hpp | 2 +- hotspot/src/share/vm/runtime/thread.hpp | 2 +- hotspot/src/share/vm/services/threadService.hpp | 2 +- hotspot/src/share/vm/utilities/array.hpp | 2 +- hotspot/src/share/vm/utilities/constantTag.hpp | 2 +- hotspot/src/share/vm/utilities/growableArray.hpp | 2 +- hotspot/src/share/vm/utilities/hashtable.cpp | 2 +- hotspot/src/share/vm/utilities/taskqueue.cpp | 2 +- 75 files changed, 75 insertions(+), 75 deletions(-) diff --git a/hotspot/src/cpu/x86/vm/vm_version_x86_32.hpp b/hotspot/src/cpu/x86/vm/vm_version_x86_32.hpp index b37b4f4e516..54b3cb0370d 100644 --- a/hotspot/src/cpu/x86/vm/vm_version_x86_32.hpp +++ b/hotspot/src/cpu/x86/vm/vm_version_x86_32.hpp @@ -1,5 +1,5 @@ /* - * Copyright 1997-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-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 diff --git a/hotspot/src/cpu/x86/vm/vm_version_x86_64.hpp b/hotspot/src/cpu/x86/vm/vm_version_x86_64.hpp index 37ba2d07558..43492f5fb16 100644 --- a/hotspot/src/cpu/x86/vm/vm_version_x86_64.hpp +++ b/hotspot/src/cpu/x86/vm/vm_version_x86_64.hpp @@ -1,5 +1,5 @@ /* - * Copyright 2003-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2003-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 diff --git a/hotspot/src/os/linux/launcher/java.c b/hotspot/src/os/linux/launcher/java.c index c68bb41449b..a13782ec437 100644 --- a/hotspot/src/os/linux/launcher/java.c +++ b/hotspot/src/os/linux/launcher/java.c @@ -1,5 +1,5 @@ /* - * Copyright 1999-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1999-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 diff --git a/hotspot/src/os/linux/launcher/java.h b/hotspot/src/os/linux/launcher/java.h index 9e4a1a6f623..cbc70ce9eb4 100644 --- a/hotspot/src/os/linux/launcher/java.h +++ b/hotspot/src/os/linux/launcher/java.h @@ -1,5 +1,5 @@ /* - * Copyright 1999-2005 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1999-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 diff --git a/hotspot/src/os/linux/launcher/java_md.c b/hotspot/src/os/linux/launcher/java_md.c index 248df18fc4b..50a86cd4de5 100644 --- a/hotspot/src/os/linux/launcher/java_md.c +++ b/hotspot/src/os/linux/launcher/java_md.c @@ -1,5 +1,5 @@ /* - * Copyright 1999-2005 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1999-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 diff --git a/hotspot/src/os/linux/vm/globals_linux.hpp b/hotspot/src/os/linux/vm/globals_linux.hpp index 9c4482ab927..6d7a6360fd4 100644 --- a/hotspot/src/os/linux/vm/globals_linux.hpp +++ b/hotspot/src/os/linux/vm/globals_linux.hpp @@ -1,5 +1,5 @@ /* - * Copyright 2005-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2005-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 diff --git a/hotspot/src/os/solaris/launcher/java.c b/hotspot/src/os/solaris/launcher/java.c index 17a939bb3a4..e4fc014de6d 100644 --- a/hotspot/src/os/solaris/launcher/java.c +++ b/hotspot/src/os/solaris/launcher/java.c @@ -1,5 +1,5 @@ /* - * Copyright 1998-2005 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1998-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 diff --git a/hotspot/src/os/solaris/launcher/java.h b/hotspot/src/os/solaris/launcher/java.h index 3bea15527d2..4a8df069ac2 100644 --- a/hotspot/src/os/solaris/launcher/java.h +++ b/hotspot/src/os/solaris/launcher/java.h @@ -1,5 +1,5 @@ /* - * Copyright 1998-2005 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1998-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 diff --git a/hotspot/src/os/solaris/launcher/java_md.c b/hotspot/src/os/solaris/launcher/java_md.c index b006d24b676..d46b6fdf0b4 100644 --- a/hotspot/src/os/solaris/launcher/java_md.c +++ b/hotspot/src/os/solaris/launcher/java_md.c @@ -1,5 +1,5 @@ /* - * Copyright 1998-2005 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1998-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 diff --git a/hotspot/src/os/solaris/vm/globals_solaris.hpp b/hotspot/src/os/solaris/vm/globals_solaris.hpp index 85fcc8c8752..76c68482a00 100644 --- a/hotspot/src/os/solaris/vm/globals_solaris.hpp +++ b/hotspot/src/os/solaris/vm/globals_solaris.hpp @@ -1,5 +1,5 @@ /* - * Copyright 2005-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2005-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 diff --git a/hotspot/src/os/windows/vm/globals_windows.hpp b/hotspot/src/os/windows/vm/globals_windows.hpp index b5b6ef870d3..9b27f4b4df3 100644 --- a/hotspot/src/os/windows/vm/globals_windows.hpp +++ b/hotspot/src/os/windows/vm/globals_windows.hpp @@ -1,5 +1,5 @@ /* - * Copyright 2005-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2005-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 diff --git a/hotspot/src/os/windows/vm/os_windows.hpp b/hotspot/src/os/windows/vm/os_windows.hpp index 9b5a0301a08..7599586842e 100644 --- a/hotspot/src/os/windows/vm/os_windows.hpp +++ b/hotspot/src/os/windows/vm/os_windows.hpp @@ -1,5 +1,5 @@ /* - * Copyright 1997-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-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 diff --git a/hotspot/src/os_cpu/linux_x86/vm/linux_x86_32.ad b/hotspot/src/os_cpu/linux_x86/vm/linux_x86_32.ad index ed92526efe4..86133fad51f 100644 --- a/hotspot/src/os_cpu/linux_x86/vm/linux_x86_32.ad +++ b/hotspot/src/os_cpu/linux_x86/vm/linux_x86_32.ad @@ -1,5 +1,5 @@ // -// Copyright 1999-2006 Sun Microsystems, Inc. All Rights Reserved. +// Copyright 1999-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 diff --git a/hotspot/src/share/tools/IdealGraphVisualizer/Data/src/com/sun/hotspot/igv/data/serialization/XMLWriter.java b/hotspot/src/share/tools/IdealGraphVisualizer/Data/src/com/sun/hotspot/igv/data/serialization/XMLWriter.java index 8ff54f75d41..90876c42482 100644 --- a/hotspot/src/share/tools/IdealGraphVisualizer/Data/src/com/sun/hotspot/igv/data/serialization/XMLWriter.java +++ b/hotspot/src/share/tools/IdealGraphVisualizer/Data/src/com/sun/hotspot/igv/data/serialization/XMLWriter.java @@ -1,5 +1,5 @@ /* - * Copyright 1998-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1998-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 diff --git a/hotspot/src/share/tools/IdealGraphVisualizer/Difference/src/com/sun/hotspot/igv/difference/Difference.java b/hotspot/src/share/tools/IdealGraphVisualizer/Difference/src/com/sun/hotspot/igv/difference/Difference.java index 650ee5f63ed..776560b15f5 100644 --- a/hotspot/src/share/tools/IdealGraphVisualizer/Difference/src/com/sun/hotspot/igv/difference/Difference.java +++ b/hotspot/src/share/tools/IdealGraphVisualizer/Difference/src/com/sun/hotspot/igv/difference/Difference.java @@ -1,5 +1,5 @@ /* - * Copyright 1998-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1998-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 diff --git a/hotspot/src/share/tools/IdealGraphVisualizer/Filter/src/com/sun/hotspot/igv/filter/CustomFilter.java b/hotspot/src/share/tools/IdealGraphVisualizer/Filter/src/com/sun/hotspot/igv/filter/CustomFilter.java index 18a8841f66d..9704d834a4a 100644 --- a/hotspot/src/share/tools/IdealGraphVisualizer/Filter/src/com/sun/hotspot/igv/filter/CustomFilter.java +++ b/hotspot/src/share/tools/IdealGraphVisualizer/Filter/src/com/sun/hotspot/igv/filter/CustomFilter.java @@ -1,5 +1,5 @@ /* - * Copyright 1998-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1998-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 diff --git a/hotspot/src/share/tools/IdealGraphVisualizer/Util/src/com/sun/hotspot/igv/util/PropertiesSheet.java b/hotspot/src/share/tools/IdealGraphVisualizer/Util/src/com/sun/hotspot/igv/util/PropertiesSheet.java index ab7da78f2c4..6eca3e9517b 100644 --- a/hotspot/src/share/tools/IdealGraphVisualizer/Util/src/com/sun/hotspot/igv/util/PropertiesSheet.java +++ b/hotspot/src/share/tools/IdealGraphVisualizer/Util/src/com/sun/hotspot/igv/util/PropertiesSheet.java @@ -1,5 +1,5 @@ /* - * Copyright 1998-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1998-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 diff --git a/hotspot/src/share/tools/IdealGraphVisualizer/Util/src/com/sun/hotspot/igv/util/RangeSliderModel.java b/hotspot/src/share/tools/IdealGraphVisualizer/Util/src/com/sun/hotspot/igv/util/RangeSliderModel.java index a179d1ee08c..5c1d9ee31fe 100644 --- a/hotspot/src/share/tools/IdealGraphVisualizer/Util/src/com/sun/hotspot/igv/util/RangeSliderModel.java +++ b/hotspot/src/share/tools/IdealGraphVisualizer/Util/src/com/sun/hotspot/igv/util/RangeSliderModel.java @@ -1,5 +1,5 @@ /* - * Copyright 1998-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1998-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 diff --git a/hotspot/src/share/tools/IdealGraphVisualizer/View/src/com/sun/hotspot/igv/view/DiagramViewModel.java b/hotspot/src/share/tools/IdealGraphVisualizer/View/src/com/sun/hotspot/igv/view/DiagramViewModel.java index 5d1da8ceacf..0db439650e2 100644 --- a/hotspot/src/share/tools/IdealGraphVisualizer/View/src/com/sun/hotspot/igv/view/DiagramViewModel.java +++ b/hotspot/src/share/tools/IdealGraphVisualizer/View/src/com/sun/hotspot/igv/view/DiagramViewModel.java @@ -1,5 +1,5 @@ /* - * Copyright 1998-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1998-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 diff --git a/hotspot/src/share/vm/adlc/adlparse.cpp b/hotspot/src/share/vm/adlc/adlparse.cpp index c266df104c8..097684acdde 100644 --- a/hotspot/src/share/vm/adlc/adlparse.cpp +++ b/hotspot/src/share/vm/adlc/adlparse.cpp @@ -1,5 +1,5 @@ /* - * Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-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 diff --git a/hotspot/src/share/vm/adlc/adlparse.hpp b/hotspot/src/share/vm/adlc/adlparse.hpp index 42329ac279e..d3e26886558 100644 --- a/hotspot/src/share/vm/adlc/adlparse.hpp +++ b/hotspot/src/share/vm/adlc/adlparse.hpp @@ -1,5 +1,5 @@ /* - * Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-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 diff --git a/hotspot/src/share/vm/adlc/filebuff.cpp b/hotspot/src/share/vm/adlc/filebuff.cpp index 6fe23fcbae7..9cccb5d069e 100644 --- a/hotspot/src/share/vm/adlc/filebuff.cpp +++ b/hotspot/src/share/vm/adlc/filebuff.cpp @@ -1,5 +1,5 @@ /* - * Copyright 1997-2002 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-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 diff --git a/hotspot/src/share/vm/adlc/filebuff.hpp b/hotspot/src/share/vm/adlc/filebuff.hpp index c36fdbaf3fa..10bb68fcb4f 100644 --- a/hotspot/src/share/vm/adlc/filebuff.hpp +++ b/hotspot/src/share/vm/adlc/filebuff.hpp @@ -1,5 +1,5 @@ /* - * Copyright 1997-2004 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-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 diff --git a/hotspot/src/share/vm/adlc/formssel.hpp b/hotspot/src/share/vm/adlc/formssel.hpp index 9bcbe636ef7..a363f16ee41 100644 --- a/hotspot/src/share/vm/adlc/formssel.hpp +++ b/hotspot/src/share/vm/adlc/formssel.hpp @@ -1,5 +1,5 @@ /* - * Copyright 1998-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1998-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 diff --git a/hotspot/src/share/vm/c1/c1_GraphBuilder.cpp b/hotspot/src/share/vm/c1/c1_GraphBuilder.cpp index 050823dbde9..5b7834c8b34 100644 --- a/hotspot/src/share/vm/c1/c1_GraphBuilder.cpp +++ b/hotspot/src/share/vm/c1/c1_GraphBuilder.cpp @@ -1,5 +1,5 @@ /* - * Copyright 1999-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1999-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 diff --git a/hotspot/src/share/vm/c1/c1_GraphBuilder.hpp b/hotspot/src/share/vm/c1/c1_GraphBuilder.hpp index 7f185ef4b96..aff61c6cac2 100644 --- a/hotspot/src/share/vm/c1/c1_GraphBuilder.hpp +++ b/hotspot/src/share/vm/c1/c1_GraphBuilder.hpp @@ -1,5 +1,5 @@ /* - * Copyright 1999-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1999-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 diff --git a/hotspot/src/share/vm/c1/c1_IR.cpp b/hotspot/src/share/vm/c1/c1_IR.cpp index ccb6abfbbd7..f1a268de40e 100644 --- a/hotspot/src/share/vm/c1/c1_IR.cpp +++ b/hotspot/src/share/vm/c1/c1_IR.cpp @@ -1,5 +1,5 @@ /* - * Copyright 1999-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1999-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 diff --git a/hotspot/src/share/vm/c1/c1_ValueMap.hpp b/hotspot/src/share/vm/c1/c1_ValueMap.hpp index 94823245875..8e2d0cb2eab 100644 --- a/hotspot/src/share/vm/c1/c1_ValueMap.hpp +++ b/hotspot/src/share/vm/c1/c1_ValueMap.hpp @@ -1,5 +1,5 @@ /* - * Copyright 1999-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1999-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 diff --git a/hotspot/src/share/vm/ci/ciEnv.cpp b/hotspot/src/share/vm/ci/ciEnv.cpp index cb2be0f5ad9..de75c734ac0 100644 --- a/hotspot/src/share/vm/ci/ciEnv.cpp +++ b/hotspot/src/share/vm/ci/ciEnv.cpp @@ -1,5 +1,5 @@ /* - * Copyright 1999-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1999-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 diff --git a/hotspot/src/share/vm/ci/ciTypeFlow.cpp b/hotspot/src/share/vm/ci/ciTypeFlow.cpp index 2054ee5b536..08396235067 100644 --- a/hotspot/src/share/vm/ci/ciTypeFlow.cpp +++ b/hotspot/src/share/vm/ci/ciTypeFlow.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2000-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2000-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 diff --git a/hotspot/src/share/vm/classfile/classFileParser.hpp b/hotspot/src/share/vm/classfile/classFileParser.hpp index 4a58fca558b..6cb79f11b69 100644 --- a/hotspot/src/share/vm/classfile/classFileParser.hpp +++ b/hotspot/src/share/vm/classfile/classFileParser.hpp @@ -1,5 +1,5 @@ /* - * Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-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 diff --git a/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp b/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp index 646804205c7..c7a7ca7dc8f 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp +++ b/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2001-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2001-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 diff --git a/hotspot/src/share/vm/gc_implementation/g1/dirtyCardQueue.cpp b/hotspot/src/share/vm/gc_implementation/g1/dirtyCardQueue.cpp index 28159924298..f3934812dd1 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/dirtyCardQueue.cpp +++ b/hotspot/src/share/vm/gc_implementation/g1/dirtyCardQueue.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2001-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2001-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 diff --git a/hotspot/src/share/vm/gc_implementation/g1/g1BlockOffsetTable.cpp b/hotspot/src/share/vm/gc_implementation/g1/g1BlockOffsetTable.cpp index 4d9d7f0ce6c..eddbf86d999 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/g1BlockOffsetTable.cpp +++ b/hotspot/src/share/vm/gc_implementation/g1/g1BlockOffsetTable.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2001-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2001-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 diff --git a/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp b/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp index f0cad8ed231..daf31a0e8f5 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp +++ b/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2001-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2001-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 diff --git a/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.hpp b/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.hpp index 557456e4024..e83b1a7de1c 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.hpp +++ b/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.hpp @@ -1,5 +1,5 @@ /* - * Copyright 2001-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2001-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 diff --git a/hotspot/src/share/vm/gc_implementation/g1/g1CollectorPolicy.cpp b/hotspot/src/share/vm/gc_implementation/g1/g1CollectorPolicy.cpp index 97e697c8073..a5d0165bb4d 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/g1CollectorPolicy.cpp +++ b/hotspot/src/share/vm/gc_implementation/g1/g1CollectorPolicy.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2001-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2001-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 diff --git a/hotspot/src/share/vm/gc_implementation/g1/g1MarkSweep.cpp b/hotspot/src/share/vm/gc_implementation/g1/g1MarkSweep.cpp index d94c6f97cc6..42d177a1e59 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/g1MarkSweep.cpp +++ b/hotspot/src/share/vm/gc_implementation/g1/g1MarkSweep.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2001-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2001-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 diff --git a/hotspot/src/share/vm/gc_implementation/g1/heapRegion.cpp b/hotspot/src/share/vm/gc_implementation/g1/heapRegion.cpp index e5105cc81f0..26817660e60 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/heapRegion.cpp +++ b/hotspot/src/share/vm/gc_implementation/g1/heapRegion.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2001-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2001-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 diff --git a/hotspot/src/share/vm/gc_implementation/g1/heapRegion.hpp b/hotspot/src/share/vm/gc_implementation/g1/heapRegion.hpp index eee90ecb9bb..5c8d02f045d 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/heapRegion.hpp +++ b/hotspot/src/share/vm/gc_implementation/g1/heapRegion.hpp @@ -1,5 +1,5 @@ /* - * Copyright 2001-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2001-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 diff --git a/hotspot/src/share/vm/gc_implementation/g1/heapRegionSeq.cpp b/hotspot/src/share/vm/gc_implementation/g1/heapRegionSeq.cpp index 315e4a351b3..89cd9e45f88 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/heapRegionSeq.cpp +++ b/hotspot/src/share/vm/gc_implementation/g1/heapRegionSeq.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2001-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2001-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 diff --git a/hotspot/src/share/vm/gc_implementation/g1/heapRegionSeq.hpp b/hotspot/src/share/vm/gc_implementation/g1/heapRegionSeq.hpp index a79ff99f4a2..6ddec8d3fc4 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/heapRegionSeq.hpp +++ b/hotspot/src/share/vm/gc_implementation/g1/heapRegionSeq.hpp @@ -1,5 +1,5 @@ /* - * Copyright 2001-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2001-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 diff --git a/hotspot/src/share/vm/gc_implementation/g1/ptrQueue.cpp b/hotspot/src/share/vm/gc_implementation/g1/ptrQueue.cpp index 157383237b5..c6a4faad931 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/ptrQueue.cpp +++ b/hotspot/src/share/vm/gc_implementation/g1/ptrQueue.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2001-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2001-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 diff --git a/hotspot/src/share/vm/gc_implementation/g1/ptrQueue.hpp b/hotspot/src/share/vm/gc_implementation/g1/ptrQueue.hpp index 899801039d0..029aac48c2f 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/ptrQueue.hpp +++ b/hotspot/src/share/vm/gc_implementation/g1/ptrQueue.hpp @@ -1,5 +1,5 @@ /* - * Copyright 2001-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2001-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 diff --git a/hotspot/src/share/vm/gc_implementation/includeDB_gc_g1 b/hotspot/src/share/vm/gc_implementation/includeDB_gc_g1 index 53770855458..536a3704fe6 100644 --- a/hotspot/src/share/vm/gc_implementation/includeDB_gc_g1 +++ b/hotspot/src/share/vm/gc_implementation/includeDB_gc_g1 @@ -1,5 +1,5 @@ // -// Copyright 2004-2006 Sun Microsystems, Inc. All Rights Reserved. +// 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 diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/pcTasks.hpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/pcTasks.hpp index f41b77c3d04..b536dd3f514 100644 --- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/pcTasks.hpp +++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/pcTasks.hpp @@ -1,5 +1,5 @@ /* - * Copyright 2005-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2005-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 diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psCompactionManager.cpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psCompactionManager.cpp index 651cd420f26..67b8690c3d7 100644 --- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psCompactionManager.cpp +++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psCompactionManager.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2005-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2005-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 diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psCompactionManager.hpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psCompactionManager.hpp index 68268d39d34..6bd5e11fd37 100644 --- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psCompactionManager.hpp +++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psCompactionManager.hpp @@ -1,5 +1,5 @@ /* - * Copyright 2005-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2005-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 diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psMarkSweepDecorator.hpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psMarkSweepDecorator.hpp index affd17edc4c..4f4022e6996 100644 --- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psMarkSweepDecorator.hpp +++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psMarkSweepDecorator.hpp @@ -1,5 +1,5 @@ /* - * Copyright 2001-2002 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2001-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 diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psPermGen.cpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psPermGen.cpp index 5fd5f5539d1..7609be480f6 100644 --- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psPermGen.cpp +++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psPermGen.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2001-2005 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2001-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 diff --git a/hotspot/src/share/vm/interpreter/bytecodeStream.cpp b/hotspot/src/share/vm/interpreter/bytecodeStream.cpp index bb051e53049..0f62eb0a7dd 100644 --- a/hotspot/src/share/vm/interpreter/bytecodeStream.cpp +++ b/hotspot/src/share/vm/interpreter/bytecodeStream.cpp @@ -1,5 +1,5 @@ /* - * Copyright 1997-2005 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-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 diff --git a/hotspot/src/share/vm/interpreter/bytecodes.cpp b/hotspot/src/share/vm/interpreter/bytecodes.cpp index 396c87f958b..5f875944104 100644 --- a/hotspot/src/share/vm/interpreter/bytecodes.cpp +++ b/hotspot/src/share/vm/interpreter/bytecodes.cpp @@ -1,5 +1,5 @@ /* - * Copyright 1997-2005 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-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 diff --git a/hotspot/src/share/vm/interpreter/bytecodes.hpp b/hotspot/src/share/vm/interpreter/bytecodes.hpp index f9201d953f5..609591c3fdc 100644 --- a/hotspot/src/share/vm/interpreter/bytecodes.hpp +++ b/hotspot/src/share/vm/interpreter/bytecodes.hpp @@ -1,5 +1,5 @@ /* - * Copyright 1997-2005 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-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 diff --git a/hotspot/src/share/vm/memory/referencePolicy.cpp b/hotspot/src/share/vm/memory/referencePolicy.cpp index 26aef4a2fd4..25d9f6a31a2 100644 --- a/hotspot/src/share/vm/memory/referencePolicy.cpp +++ b/hotspot/src/share/vm/memory/referencePolicy.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2000-2003 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2000-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 diff --git a/hotspot/src/share/vm/memory/referencePolicy.hpp b/hotspot/src/share/vm/memory/referencePolicy.hpp index 2cf22c825ab..dbc312a1e69 100644 --- a/hotspot/src/share/vm/memory/referencePolicy.hpp +++ b/hotspot/src/share/vm/memory/referencePolicy.hpp @@ -1,5 +1,5 @@ /* - * Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2000-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 diff --git a/hotspot/src/share/vm/memory/tenuredGeneration.hpp b/hotspot/src/share/vm/memory/tenuredGeneration.hpp index a7c22c9bb3a..27eff0069df 100644 --- a/hotspot/src/share/vm/memory/tenuredGeneration.hpp +++ b/hotspot/src/share/vm/memory/tenuredGeneration.hpp @@ -1,5 +1,5 @@ /* - * Copyright 2001-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2001-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 diff --git a/hotspot/src/share/vm/oops/constantPoolOop.cpp b/hotspot/src/share/vm/oops/constantPoolOop.cpp index 263b7bbe435..842f8067934 100644 --- a/hotspot/src/share/vm/oops/constantPoolOop.cpp +++ b/hotspot/src/share/vm/oops/constantPoolOop.cpp @@ -1,5 +1,5 @@ /* - * Copyright 1997-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-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 diff --git a/hotspot/src/share/vm/opto/block.hpp b/hotspot/src/share/vm/opto/block.hpp index 52163809568..43ce09fe9ad 100644 --- a/hotspot/src/share/vm/opto/block.hpp +++ b/hotspot/src/share/vm/opto/block.hpp @@ -1,5 +1,5 @@ /* - * Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-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 diff --git a/hotspot/src/share/vm/opto/phase.cpp b/hotspot/src/share/vm/opto/phase.cpp index 8bed29122f0..904214a330f 100644 --- a/hotspot/src/share/vm/opto/phase.cpp +++ b/hotspot/src/share/vm/opto/phase.cpp @@ -1,5 +1,5 @@ /* - * Copyright 1997-2005 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-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 diff --git a/hotspot/src/share/vm/opto/phase.hpp b/hotspot/src/share/vm/opto/phase.hpp index 788f07acc71..a207968206f 100644 --- a/hotspot/src/share/vm/opto/phase.hpp +++ b/hotspot/src/share/vm/opto/phase.hpp @@ -1,5 +1,5 @@ /* - * Copyright 1997-2005 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-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 diff --git a/hotspot/src/share/vm/prims/jniCheck.cpp b/hotspot/src/share/vm/prims/jniCheck.cpp index 5a905843103..d3f35897976 100644 --- a/hotspot/src/share/vm/prims/jniCheck.cpp +++ b/hotspot/src/share/vm/prims/jniCheck.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2001-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2001-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 diff --git a/hotspot/src/share/vm/prims/jniCheck.hpp b/hotspot/src/share/vm/prims/jniCheck.hpp index f78ace017bd..8a5276388e1 100644 --- a/hotspot/src/share/vm/prims/jniCheck.hpp +++ b/hotspot/src/share/vm/prims/jniCheck.hpp @@ -1,5 +1,5 @@ /* - * Copyright 2003-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2003-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 diff --git a/hotspot/src/share/vm/prims/jvmtiEnvBase.cpp b/hotspot/src/share/vm/prims/jvmtiEnvBase.cpp index cae4a6a76d5..3152e91c3a5 100644 --- a/hotspot/src/share/vm/prims/jvmtiEnvBase.cpp +++ b/hotspot/src/share/vm/prims/jvmtiEnvBase.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2003-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2003-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 diff --git a/hotspot/src/share/vm/prims/jvmtiTrace.cpp b/hotspot/src/share/vm/prims/jvmtiTrace.cpp index 09d30fbda16..f76e663f224 100644 --- a/hotspot/src/share/vm/prims/jvmtiTrace.cpp +++ b/hotspot/src/share/vm/prims/jvmtiTrace.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2003-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2003-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 diff --git a/hotspot/src/share/vm/runtime/javaCalls.cpp b/hotspot/src/share/vm/runtime/javaCalls.cpp index 38ad6973feb..02e9424c8f2 100644 --- a/hotspot/src/share/vm/runtime/javaCalls.cpp +++ b/hotspot/src/share/vm/runtime/javaCalls.cpp @@ -1,5 +1,5 @@ /* - * Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-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 diff --git a/hotspot/src/share/vm/runtime/javaCalls.hpp b/hotspot/src/share/vm/runtime/javaCalls.hpp index 60648c64866..345206f02c5 100644 --- a/hotspot/src/share/vm/runtime/javaCalls.hpp +++ b/hotspot/src/share/vm/runtime/javaCalls.hpp @@ -1,5 +1,5 @@ /* - * Copyright 1997-2005 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-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 diff --git a/hotspot/src/share/vm/runtime/perfMemory.cpp b/hotspot/src/share/vm/runtime/perfMemory.cpp index d48d7b508b5..a91bc13899e 100644 --- a/hotspot/src/share/vm/runtime/perfMemory.cpp +++ b/hotspot/src/share/vm/runtime/perfMemory.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2001-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2001-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 diff --git a/hotspot/src/share/vm/runtime/perfMemory.hpp b/hotspot/src/share/vm/runtime/perfMemory.hpp index 0909bfa0c9e..2077b770bab 100644 --- a/hotspot/src/share/vm/runtime/perfMemory.hpp +++ b/hotspot/src/share/vm/runtime/perfMemory.hpp @@ -1,5 +1,5 @@ /* - * Copyright 2001-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2001-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 diff --git a/hotspot/src/share/vm/runtime/thread.hpp b/hotspot/src/share/vm/runtime/thread.hpp index 1ee5c72604b..6e6e88fe318 100644 --- a/hotspot/src/share/vm/runtime/thread.hpp +++ b/hotspot/src/share/vm/runtime/thread.hpp @@ -1,5 +1,5 @@ /* - * Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-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 diff --git a/hotspot/src/share/vm/services/threadService.hpp b/hotspot/src/share/vm/services/threadService.hpp index 97a83bb5e35..b9cd3bbe612 100644 --- a/hotspot/src/share/vm/services/threadService.hpp +++ b/hotspot/src/share/vm/services/threadService.hpp @@ -1,5 +1,5 @@ /* - * Copyright 2003-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2003-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 diff --git a/hotspot/src/share/vm/utilities/array.hpp b/hotspot/src/share/vm/utilities/array.hpp index 7dee671cc58..7f2faac7d2a 100644 --- a/hotspot/src/share/vm/utilities/array.hpp +++ b/hotspot/src/share/vm/utilities/array.hpp @@ -1,5 +1,5 @@ /* - * Copyright 2000-2005 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2000-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 diff --git a/hotspot/src/share/vm/utilities/constantTag.hpp b/hotspot/src/share/vm/utilities/constantTag.hpp index 07a8be76d9c..72c078dd705 100644 --- a/hotspot/src/share/vm/utilities/constantTag.hpp +++ b/hotspot/src/share/vm/utilities/constantTag.hpp @@ -1,5 +1,5 @@ /* - * Copyright 1997-2005 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-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 diff --git a/hotspot/src/share/vm/utilities/growableArray.hpp b/hotspot/src/share/vm/utilities/growableArray.hpp index ab4eeb5411e..77ce93c1396 100644 --- a/hotspot/src/share/vm/utilities/growableArray.hpp +++ b/hotspot/src/share/vm/utilities/growableArray.hpp @@ -1,5 +1,5 @@ /* - * Copyright 1997-2005 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-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 diff --git a/hotspot/src/share/vm/utilities/hashtable.cpp b/hotspot/src/share/vm/utilities/hashtable.cpp index 8efa44a203c..df1592f9b66 100644 --- a/hotspot/src/share/vm/utilities/hashtable.cpp +++ b/hotspot/src/share/vm/utilities/hashtable.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2003-2005 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2003-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 diff --git a/hotspot/src/share/vm/utilities/taskqueue.cpp b/hotspot/src/share/vm/utilities/taskqueue.cpp index d5220089c5a..779ec4e7f3a 100644 --- a/hotspot/src/share/vm/utilities/taskqueue.cpp +++ b/hotspot/src/share/vm/utilities/taskqueue.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2001-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2001-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 From cc8641d33a8dafc24b7fd9b5b27b905ff043cbc5 Mon Sep 17 00:00:00 2001 From: Xiomara Jayasena Date: Mon, 15 Dec 2008 16:55:25 -0800 Subject: [PATCH 091/110] 6785258: Update copyright year Update copyright for files that have been modified starting July 2008 to Dec 2008 Reviewed-by: katleman, ohair, tbell --- jdk/make/javax/swing/Makefile | 2 +- jdk/make/netbeans/jmx/build.xml | 2 +- jdk/make/sun/net/spi/Makefile | 2 +- jdk/make/sun/net/spi/nameservice/Makefile | 2 +- jdk/src/share/classes/com/sun/java/swing/SwingUtilities3.java | 2 +- .../com/sun/java/swing/plaf/windows/DesktopProperty.java | 2 +- .../com/sun/java/swing/plaf/windows/WindowsDesktopManager.java | 2 +- .../com/sun/java/swing/plaf/windows/WindowsFileChooserUI.java | 2 +- .../java/swing/plaf/windows/WindowsInternalFrameTitlePane.java | 2 +- .../com/sun/java/swing/plaf/windows/WindowsScrollBarUI.java | 2 +- .../com/sun/java/swing/plaf/windows/WindowsTabbedPaneUI.java | 2 +- .../com/sun/java/swing/plaf/windows/WindowsTableHeaderUI.java | 2 +- jdk/src/share/classes/com/sun/jmx/defaults/ServiceName.java | 2 +- .../com/sun/jmx/mbeanserver/ClassLoaderRepositorySupport.java | 2 +- .../com/sun/jmx/mbeanserver/ObjectInputStreamWithLoader.java | 2 +- .../com/sun/jmx/mbeanserver/SecureClassLoaderRepository.java | 2 +- .../classes/com/sun/jmx/mbeanserver/WeakIdentityHashMap.java | 2 +- .../com/sun/jmx/remote/internal/ArrayNotificationBuffer.java | 2 +- .../share/classes/com/sun/jmx/remote/internal/Unmarshal.java | 2 +- .../com/sun/jmx/remote/util/ClassLoaderWithRepository.java | 2 +- jdk/src/share/classes/com/sun/jmx/remote/util/ClassLogger.java | 2 +- .../classes/com/sun/jmx/remote/util/OrderClassLoaders.java | 2 +- .../internal/www/protocol/https/HttpsURLConnectionOldImpl.java | 2 +- jdk/src/share/classes/java/awt/EventDispatchThread.java | 2 +- jdk/src/share/classes/java/net/HttpURLConnection.java | 2 +- jdk/src/share/classes/java/nio/Buffer.java | 2 +- jdk/src/share/classes/java/nio/channels/SelectableChannel.java | 2 +- .../java/nio/channels/spi/AbstractSelectableChannel.java | 2 +- jdk/src/share/classes/java/text/SimpleDateFormat.java | 2 +- jdk/src/share/classes/javax/management/ClientContext.java | 2 +- .../share/classes/javax/management/DefaultLoaderRepository.java | 2 +- jdk/src/share/classes/javax/management/JMRuntimeException.java | 2 +- jdk/src/share/classes/javax/management/MBeanAttributeInfo.java | 2 +- .../share/classes/javax/management/MBeanConstructorInfo.java | 2 +- jdk/src/share/classes/javax/management/MBeanInfo.java | 2 +- jdk/src/share/classes/javax/management/Notification.java | 2 +- .../share/classes/javax/management/NotificationListener.java | 2 +- .../javax/management/loading/DefaultLoaderRepository.java | 2 +- .../classes/javax/management/loading/MLetObjectInputStream.java | 2 +- .../classes/javax/management/modelmbean/ModelMBeanInfo.java | 2 +- .../management/openmbean/OpenMBeanParameterInfoSupport.java | 2 +- .../management/relation/MBeanServerNotificationFilter.java | 2 +- jdk/src/share/classes/javax/management/relation/Role.java | 2 +- jdk/src/share/classes/javax/management/relation/RoleList.java | 2 +- jdk/src/share/classes/javax/management/relation/RoleResult.java | 2 +- .../share/classes/javax/management/relation/RoleUnresolved.java | 2 +- .../classes/javax/management/relation/RoleUnresolvedList.java | 2 +- .../javax/management/remote/rmi/NoCallStackClassLoader.java | 2 +- .../classes/javax/management/remote/rmi/RMIConnection.java | 2 +- .../classes/javax/management/remote/rmi/RMIServerImpl.java | 2 +- jdk/src/share/classes/javax/swing/AbstractCellEditor.java | 2 +- jdk/src/share/classes/javax/swing/AbstractListModel.java | 2 +- jdk/src/share/classes/javax/swing/AbstractSpinnerModel.java | 2 +- jdk/src/share/classes/javax/swing/ActionMap.java | 2 +- jdk/src/share/classes/javax/swing/AncestorNotifier.java | 2 +- jdk/src/share/classes/javax/swing/ArrayTable.java | 2 +- jdk/src/share/classes/javax/swing/ButtonGroup.java | 2 +- jdk/src/share/classes/javax/swing/DefaultBoundedRangeModel.java | 2 +- jdk/src/share/classes/javax/swing/DefaultButtonModel.java | 2 +- jdk/src/share/classes/javax/swing/DefaultFocusManager.java | 2 +- .../share/classes/javax/swing/DefaultSingleSelectionModel.java | 2 +- jdk/src/share/classes/javax/swing/GroupLayout.java | 2 +- jdk/src/share/classes/javax/swing/InputMap.java | 2 +- jdk/src/share/classes/javax/swing/JDesktopPane.java | 2 +- jdk/src/share/classes/javax/swing/JDialog.java | 2 +- jdk/src/share/classes/javax/swing/JLayeredPane.java | 2 +- jdk/src/share/classes/javax/swing/JMenu.java | 2 +- jdk/src/share/classes/javax/swing/JMenuItem.java | 2 +- jdk/src/share/classes/javax/swing/JSpinner.java | 2 +- jdk/src/share/classes/javax/swing/JTextField.java | 2 +- jdk/src/share/classes/javax/swing/JTree.java | 2 +- jdk/src/share/classes/javax/swing/JWindow.java | 2 +- jdk/src/share/classes/javax/swing/KeyboardManager.java | 2 +- jdk/src/share/classes/javax/swing/LayoutComparator.java | 2 +- .../share/classes/javax/swing/LayoutFocusTraversalPolicy.java | 2 +- .../classes/javax/swing/LegacyGlueFocusTraversalPolicy.java | 2 +- jdk/src/share/classes/javax/swing/MultiUIDefaults.java | 2 +- jdk/src/share/classes/javax/swing/RepaintManager.java | 2 +- .../share/classes/javax/swing/SortingFocusTraversalPolicy.java | 2 +- jdk/src/share/classes/javax/swing/SpringLayout.java | 2 +- jdk/src/share/classes/javax/swing/Timer.java | 2 +- jdk/src/share/classes/javax/swing/TimerQueue.java | 2 +- jdk/src/share/classes/javax/swing/UIDefaults.java | 2 +- jdk/src/share/classes/javax/swing/UIManager.java | 2 +- jdk/src/share/classes/javax/swing/border/CompoundBorder.java | 2 +- .../classes/javax/swing/plaf/basic/BasicButtonListener.java | 2 +- .../classes/javax/swing/plaf/basic/BasicComboBoxEditor.java | 2 +- .../share/classes/javax/swing/plaf/basic/BasicComboBoxUI.java | 2 +- .../classes/javax/swing/plaf/basic/BasicGraphicsUtils.java | 2 +- .../javax/swing/plaf/basic/BasicInternalFrameTitlePane.java | 2 +- jdk/src/share/classes/javax/swing/plaf/basic/BasicLabelUI.java | 2 +- jdk/src/share/classes/javax/swing/plaf/basic/BasicMenuUI.java | 2 +- .../share/classes/javax/swing/plaf/basic/BasicPopupMenuUI.java | 2 +- .../classes/javax/swing/plaf/basic/BasicRadioButtonUI.java | 2 +- .../share/classes/javax/swing/plaf/basic/BasicSplitPaneUI.java | 2 +- jdk/src/share/classes/javax/swing/plaf/basic/BasicTextUI.java | 2 +- .../classes/javax/swing/plaf/basic/BasicToggleButtonUI.java | 2 +- jdk/src/share/classes/javax/swing/plaf/basic/BasicTreeUI.java | 2 +- .../classes/javax/swing/plaf/basic/DragRecognitionSupport.java | 2 +- jdk/src/share/classes/javax/swing/plaf/basic/LazyActionMap.java | 2 +- .../share/classes/javax/swing/plaf/metal/DefaultMetalTheme.java | 2 +- jdk/src/share/classes/javax/swing/plaf/metal/MetalBumps.java | 2 +- .../classes/javax/swing/plaf/metal/MetalFileChooserUI.java | 2 +- .../javax/swing/plaf/metal/MetalInternalFrameTitlePane.java | 2 +- .../classes/javax/swing/plaf/metal/MetalRadioButtonUI.java | 2 +- jdk/src/share/classes/javax/swing/plaf/metal/MetalSliderUI.java | 2 +- .../share/classes/javax/swing/plaf/metal/MetalToolBarUI.java | 2 +- .../javax/swing/plaf/synth/DefaultSynthStyleFactory.java | 2 +- jdk/src/share/classes/javax/swing/plaf/synth/ImagePainter.java | 2 +- jdk/src/share/classes/javax/swing/plaf/synth/Region.java | 2 +- jdk/src/share/classes/javax/swing/plaf/synth/SynthButtonUI.java | 2 +- .../share/classes/javax/swing/plaf/synth/SynthComboBoxUI.java | 2 +- jdk/src/share/classes/javax/swing/plaf/synth/SynthContext.java | 2 +- .../share/classes/javax/swing/plaf/synth/SynthEditorPaneUI.java | 2 +- .../javax/swing/plaf/synth/SynthInternalFrameTitlePane.java | 2 +- .../share/classes/javax/swing/plaf/synth/SynthLookAndFeel.java | 2 +- jdk/src/share/classes/javax/swing/plaf/synth/SynthParser.java | 2 +- jdk/src/share/classes/javax/swing/plaf/synth/SynthStyle.java | 2 +- .../share/classes/javax/swing/plaf/synth/SynthTextAreaUI.java | 2 +- .../share/classes/javax/swing/plaf/synth/SynthTextFieldUI.java | 2 +- jdk/src/share/classes/javax/swing/plaf/synth/SynthTreeUI.java | 2 +- jdk/src/share/classes/javax/swing/table/AbstractTableModel.java | 2 +- jdk/src/share/classes/javax/swing/table/DefaultTableModel.java | 2 +- jdk/src/share/classes/javax/swing/text/AsyncBoxView.java | 2 +- jdk/src/share/classes/javax/swing/text/ComponentView.java | 2 +- jdk/src/share/classes/javax/swing/text/DefaultCaret.java | 2 +- jdk/src/share/classes/javax/swing/text/DefaultFormatter.java | 2 +- jdk/src/share/classes/javax/swing/text/DefaultHighlighter.java | 2 +- .../share/classes/javax/swing/text/DefaultStyledDocument.java | 2 +- jdk/src/share/classes/javax/swing/text/ElementIterator.java | 2 +- jdk/src/share/classes/javax/swing/text/GapContent.java | 2 +- .../share/classes/javax/swing/text/InternationalFormatter.java | 2 +- jdk/src/share/classes/javax/swing/text/LayoutQueue.java | 2 +- jdk/src/share/classes/javax/swing/text/MaskFormatter.java | 2 +- jdk/src/share/classes/javax/swing/text/SegmentCache.java | 2 +- jdk/src/share/classes/javax/swing/text/SimpleAttributeSet.java | 2 +- jdk/src/share/classes/javax/swing/text/StringContent.java | 2 +- jdk/src/share/classes/javax/swing/text/StyleContext.java | 2 +- jdk/src/share/classes/javax/swing/text/TableView.java | 2 +- jdk/src/share/classes/javax/swing/text/TextAction.java | 2 +- jdk/src/share/classes/javax/swing/text/TextLayoutStrategy.java | 2 +- jdk/src/share/classes/javax/swing/text/ZoneView.java | 2 +- jdk/src/share/classes/javax/swing/text/html/HRuleView.java | 2 +- jdk/src/share/classes/javax/swing/text/html/HTML.java | 2 +- jdk/src/share/classes/javax/swing/text/html/HTMLDocument.java | 2 +- jdk/src/share/classes/javax/swing/text/html/HTMLWriter.java | 2 +- jdk/src/share/classes/javax/swing/text/html/Map.java | 2 +- .../share/classes/javax/swing/text/html/MinimalHTMLWriter.java | 2 +- .../share/classes/javax/swing/text/html/OptionListModel.java | 2 +- jdk/src/share/classes/javax/swing/text/html/StyleSheet.java | 2 +- jdk/src/share/classes/javax/swing/text/html/TableView.java | 2 +- .../share/classes/javax/swing/text/html/parser/TagStack.java | 2 +- .../share/classes/javax/swing/text/rtf/MockAttributeSet.java | 2 +- jdk/src/share/classes/javax/swing/text/rtf/RTFParser.java | 2 +- jdk/src/share/classes/javax/swing/text/rtf/RTFReader.java | 2 +- .../share/classes/javax/swing/tree/DefaultTreeCellEditor.java | 2 +- jdk/src/share/classes/javax/swing/tree/DefaultTreeModel.java | 2 +- .../share/classes/javax/swing/tree/FixedHeightLayoutCache.java | 2 +- .../classes/javax/swing/tree/VariableHeightLayoutCache.java | 2 +- jdk/src/share/classes/javax/swing/undo/StateEdit.java | 2 +- jdk/src/share/classes/javax/swing/undo/UndoManager.java | 2 +- jdk/src/share/classes/javax/swing/undo/UndoableEditSupport.java | 2 +- .../classes/org/jcp/xml/dsig/internal/DigesterOutputStream.java | 2 +- .../classes/org/jcp/xml/dsig/internal/SignerOutputStream.java | 2 +- .../org/jcp/xml/dsig/internal/dom/ApacheCanonicalizer.java | 2 +- .../share/classes/org/jcp/xml/dsig/internal/dom/ApacheData.java | 2 +- .../org/jcp/xml/dsig/internal/dom/ApacheNodeSetData.java | 2 +- .../org/jcp/xml/dsig/internal/dom/ApacheOctetStreamData.java | 2 +- .../classes/org/jcp/xml/dsig/internal/dom/ApacheTransform.java | 2 +- .../org/jcp/xml/dsig/internal/dom/DOMBase64Transform.java | 2 +- .../jcp/xml/dsig/internal/dom/DOMCanonicalXMLC14NMethod.java | 2 +- .../jcp/xml/dsig/internal/dom/DOMCanonicalizationMethod.java | 2 +- .../classes/org/jcp/xml/dsig/internal/dom/DOMCryptoBinary.java | 2 +- .../classes/org/jcp/xml/dsig/internal/dom/DOMDigestMethod.java | 2 +- .../org/jcp/xml/dsig/internal/dom/DOMEnvelopedTransform.java | 2 +- .../classes/org/jcp/xml/dsig/internal/dom/DOMExcC14NMethod.java | 2 +- .../org/jcp/xml/dsig/internal/dom/DOMHMACSignatureMethod.java | 2 +- .../share/classes/org/jcp/xml/dsig/internal/dom/DOMKeyInfo.java | 2 +- .../org/jcp/xml/dsig/internal/dom/DOMKeyInfoFactory.java | 2 +- .../share/classes/org/jcp/xml/dsig/internal/dom/DOMKeyName.java | 2 +- .../classes/org/jcp/xml/dsig/internal/dom/DOMKeyValue.java | 2 +- .../classes/org/jcp/xml/dsig/internal/dom/DOMManifest.java | 2 +- .../share/classes/org/jcp/xml/dsig/internal/dom/DOMPGPData.java | 2 +- .../org/jcp/xml/dsig/internal/dom/DOMSignatureMethod.java | 2 +- .../org/jcp/xml/dsig/internal/dom/DOMSignatureProperties.java | 2 +- .../org/jcp/xml/dsig/internal/dom/DOMSignatureProperty.java | 2 +- .../classes/org/jcp/xml/dsig/internal/dom/DOMSignedInfo.java | 2 +- .../classes/org/jcp/xml/dsig/internal/dom/DOMStructure.java | 2 +- .../classes/org/jcp/xml/dsig/internal/dom/DOMSubTreeData.java | 2 +- .../classes/org/jcp/xml/dsig/internal/dom/DOMTransform.java | 2 +- .../org/jcp/xml/dsig/internal/dom/DOMURIDereferencer.java | 2 +- .../share/classes/org/jcp/xml/dsig/internal/dom/DOMUtils.java | 2 +- .../classes/org/jcp/xml/dsig/internal/dom/DOMX509Data.java | 2 +- .../org/jcp/xml/dsig/internal/dom/DOMX509IssuerSerial.java | 2 +- .../classes/org/jcp/xml/dsig/internal/dom/DOMXMLObject.java | 2 +- .../org/jcp/xml/dsig/internal/dom/DOMXMLSignatureFactory.java | 2 +- .../org/jcp/xml/dsig/internal/dom/DOMXPathTransform.java | 2 +- .../classes/org/jcp/xml/dsig/internal/dom/DOMXSLTTransform.java | 2 +- jdk/src/share/classes/org/jcp/xml/dsig/internal/dom/Utils.java | 2 +- jdk/src/share/classes/sun/awt/im/CompositionArea.java | 2 +- .../sun/management/jmxremote/LocalRMIServerSocketFactory.java | 2 +- jdk/src/share/classes/sun/net/ProgressEvent.java | 2 +- jdk/src/share/classes/sun/net/httpserver/ExchangeImpl.java | 2 +- .../classes/sun/net/httpserver/FixedLengthInputStream.java | 2 +- jdk/src/share/classes/sun/net/httpserver/Request.java | 2 +- .../sun/net/www/protocol/https/HttpsURLConnectionImpl.java | 2 +- jdk/src/share/classes/sun/nio/ch/AbstractPollSelectorImpl.java | 2 +- .../classes/sun/security/provider/certpath/OCSPResponse.java | 2 +- jdk/src/share/classes/sun/swing/AccessibleMethod.java | 2 +- jdk/src/share/classes/sun/swing/SwingLazyValue.java | 2 +- jdk/src/share/classes/sun/swing/SwingUtilities2.java | 2 +- .../share/classes/sun/swing/plaf/synth/DefaultSynthStyle.java | 2 +- .../classes/sun/swing/plaf/synth/SynthFileChooserUIImpl.java | 2 +- jdk/src/share/classes/sun/util/calendar/ZoneInfo.java | 2 +- jdk/src/share/classes/sun/util/resources/TimeZoneNames.java | 2 +- jdk/src/share/classes/sun/util/resources/TimeZoneNames_de.java | 2 +- jdk/src/share/classes/sun/util/resources/TimeZoneNames_es.java | 2 +- jdk/src/share/classes/sun/util/resources/TimeZoneNames_fr.java | 2 +- jdk/src/share/classes/sun/util/resources/TimeZoneNames_it.java | 2 +- jdk/src/share/classes/sun/util/resources/TimeZoneNames_ja.java | 2 +- jdk/src/share/classes/sun/util/resources/TimeZoneNames_ko.java | 2 +- jdk/src/share/classes/sun/util/resources/TimeZoneNames_sv.java | 2 +- .../share/classes/sun/util/resources/TimeZoneNames_zh_CN.java | 2 +- .../share/classes/sun/util/resources/TimeZoneNames_zh_TW.java | 2 +- jdk/src/share/native/sun/font/bidi/ubidi.c | 2 +- .../classes/sun/net/www/protocol/http/NTLMAuthentication.java | 2 +- jdk/src/solaris/classes/sun/nio/ch/EPollSelectorImpl.java | 2 +- jdk/src/windows/classes/sun/nio/ch/WindowsSelectorImpl.java | 2 +- .../SetDatagramSocketImplFactory/ADatagramSocket.sh | 2 +- jdk/test/java/nio/Buffer/Basic-X.java | 2 +- jdk/test/java/nio/Buffer/Basic.java | 2 +- jdk/test/java/nio/Buffer/BasicByte.java | 2 +- jdk/test/java/nio/Buffer/BasicChar.java | 2 +- jdk/test/java/nio/Buffer/BasicDouble.java | 2 +- jdk/test/java/nio/Buffer/BasicFloat.java | 2 +- jdk/test/java/nio/Buffer/BasicInt.java | 2 +- jdk/test/java/nio/Buffer/BasicLong.java | 2 +- jdk/test/java/nio/Buffer/BasicShort.java | 2 +- jdk/test/java/nio/Buffer/genBasic.sh | 2 +- jdk/test/java/nio/Buffer/genCopyDirectMemory.sh | 2 +- jdk/test/java/nio/channels/Channels/Basic.java | 2 +- jdk/test/java/util/TimeZone/OldIDMappingTest.sh | 2 +- jdk/test/javax/management/Introspector/AnnotationTest.java | 2 +- jdk/test/javax/management/MBeanServer/MBeanExceptionTest.java | 2 +- jdk/test/javax/management/context/ContextTest.java | 2 +- jdk/test/javax/management/context/LocaleTest.java | 2 +- jdk/test/javax/management/context/LocalizableTest.java | 2 +- .../management/context/localizable/MBeanDescriptions_fr.java | 2 +- jdk/test/javax/management/context/localizable/Whatsit.java | 2 +- jdk/test/javax/management/context/localizable/WhatsitMBean.java | 2 +- .../management/remote/mandatory/provider/ProviderTest.java | 2 +- .../remote/mandatory/subjectDelegation/SimpleStandard.java | 2 +- jdk/test/javax/swing/RepaintManager/6608456/bug6608456.java | 2 +- jdk/test/javax/swing/text/html/HRuleView/Test5062055.java | 2 +- jdk/test/javax/xml/crypto/dsig/GenerationTests.java | 2 +- 255 files changed, 255 insertions(+), 255 deletions(-) diff --git a/jdk/make/javax/swing/Makefile b/jdk/make/javax/swing/Makefile index e112e609cd9..1f3fa6c0f39 100644 --- a/jdk/make/javax/swing/Makefile +++ b/jdk/make/javax/swing/Makefile @@ -1,5 +1,5 @@ # -# Copyright 1998-2006 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 1998-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 diff --git a/jdk/make/netbeans/jmx/build.xml b/jdk/make/netbeans/jmx/build.xml index e306b8ea40a..7bff95ae405 100644 --- a/jdk/make/netbeans/jmx/build.xml +++ b/jdk/make/netbeans/jmx/build.xml @@ -1,5 +1,5 @@