santiagopg 2002/10/21 08:42:17
Modified: java/src/org/apache/xalan/xsltc/compiler Output.java
java/src/org/apache/xalan/xsltc/runtime/output
StreamOutput.java
Log:
Moved EBCDIC support from Output to StreamOutput to ensure correct
serialization of XML header.
Revision Changes Path
1.19 +4 -34
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/Output.java
Index: Output.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/Output.java,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -r1.18 -r1.19
--- Output.java 18 Oct 2002 22:47:19 -0000 1.18
+++ Output.java 21 Oct 2002 15:42:17 -0000 1.19
@@ -65,7 +65,6 @@
package org.apache.xalan.xsltc.compiler;
import java.util.Vector;
-import java.util.Hashtable;
import java.util.Properties;
import java.util.Enumeration;
import java.util.StringTokenizer;
@@ -76,6 +75,7 @@
import org.apache.bcel.classfile.JavaClass;
import org.apache.xalan.xsltc.compiler.util.*;
+import org.apache.xalan.xsltc.runtime.output.StreamOutput;
final class Output extends TopLevelElement {
@@ -103,30 +103,6 @@
private final static String XML_VERSION = "1.0";
private final static String HTML_VERSION = "4.0";
- // Canonical
- private static Hashtable _canonicalEncodings;
- static {
- _canonicalEncodings = new Hashtable();
- _canonicalEncodings.put("ebcdic-cp-us", "Cp037");
- _canonicalEncodings.put("ebcdic-cp-ca", "Cp037");
- _canonicalEncodings.put("ebcdic-cp-nl", "Cp037");
- _canonicalEncodings.put("ebcdic-cp-dk", "Cp277");
- _canonicalEncodings.put("ebcdic-cp-no", "Cp277");
- _canonicalEncodings.put("ebcdic-cp-fi", "Cp278");
- _canonicalEncodings.put("ebcdic-cp-se", "Cp278");
- _canonicalEncodings.put("ebcdic-cp-it", "Cp280");
- _canonicalEncodings.put("ebcdic-cp-es", "Cp284");
- _canonicalEncodings.put("ebcdic-cp-gb", "Cp285");
- _canonicalEncodings.put("ebcdic-cp-fr", "Cp297");
- _canonicalEncodings.put("ebcdic-cp-ar1", "Cp420");
- _canonicalEncodings.put("ebcdic-cp-he", "Cp424");
- _canonicalEncodings.put("ebcdic-cp-ch", "Cp500");
- _canonicalEncodings.put("ebcdic-cp-roece", "Cp870");
- _canonicalEncodings.put("ebcdic-cp-yu", "Cp870");
- _canonicalEncodings.put("ebcdic-cp-is", "Cp871");
- _canonicalEncodings.put("ebcdic-cp-ar2", "Cp918");
- }
-
/**
* Displays the contents of this element (for debugging)
*/
@@ -196,16 +172,10 @@
}
else {
try {
- // Find encoding synonym (if any)
- String canonical = (String) _canonicalEncodings.get(
- _encoding.toLowerCase());
- if (canonical != null) {
- _encoding = canonical;
- }
-
// Create a write to verify encoding support
OutputStreamWriter writer =
- new OutputStreamWriter(System.out, _encoding);
+ new OutputStreamWriter(System.out,
+ StreamOutput.getCanonicalEncoding(_encoding));
}
catch (java.io.UnsupportedEncodingException e) {
ErrorMsg msg = new ErrorMsg(ErrorMsg.UNSUPPORTED_ENCODING,
1.21 +36 -3
xml-xalan/java/src/org/apache/xalan/xsltc/runtime/output/StreamOutput.java
Index: StreamOutput.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/runtime/output/StreamOutput.java,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -r1.20 -r1.21
--- StreamOutput.java 10 Sep 2002 15:25:05 -0000 1.20
+++ StreamOutput.java 21 Oct 2002 15:42:17 -0000 1.21
@@ -71,10 +71,11 @@
import java.io.UnsupportedEncodingException;
import java.util.Vector;
+import java.util.Hashtable;
import org.apache.xalan.xsltc.TransletException;
-abstract class StreamOutput extends OutputBase {
+abstract public class StreamOutput extends OutputBase {
protected static final String AMP = "&";
protected static final String LT = "<";
@@ -133,6 +134,36 @@
}
}
+ // Canonical encodings
+ private static Hashtable _canonicalEncodings;
+ static {
+ _canonicalEncodings = new Hashtable();
+ _canonicalEncodings.put("ebcdic-cp-us", "Cp037");
+ _canonicalEncodings.put("ebcdic-cp-ca", "Cp037");
+ _canonicalEncodings.put("ebcdic-cp-nl", "Cp037");
+ _canonicalEncodings.put("ebcdic-cp-dk", "Cp277");
+ _canonicalEncodings.put("ebcdic-cp-no", "Cp277");
+ _canonicalEncodings.put("ebcdic-cp-fi", "Cp278");
+ _canonicalEncodings.put("ebcdic-cp-se", "Cp278");
+ _canonicalEncodings.put("ebcdic-cp-it", "Cp280");
+ _canonicalEncodings.put("ebcdic-cp-es", "Cp284");
+ _canonicalEncodings.put("ebcdic-cp-gb", "Cp285");
+ _canonicalEncodings.put("ebcdic-cp-fr", "Cp297");
+ _canonicalEncodings.put("ebcdic-cp-ar1", "Cp420");
+ _canonicalEncodings.put("ebcdic-cp-he", "Cp424");
+ _canonicalEncodings.put("ebcdic-cp-ch", "Cp500");
+ _canonicalEncodings.put("ebcdic-cp-roece", "Cp870");
+ _canonicalEncodings.put("ebcdic-cp-yu", "Cp870");
+ _canonicalEncodings.put("ebcdic-cp-is", "Cp871");
+ _canonicalEncodings.put("ebcdic-cp-ar2", "Cp918");
+ }
+
+ public static String getCanonicalEncoding(String encoding) {
+ String canonical =
+ (String)_canonicalEncodings.get(encoding.toLowerCase());
+ return (canonical != null) ? canonical : encoding;
+ }
+
protected StreamOutput(StreamOutput output) {
_writer = output._writer;
_encoding = output._encoding;
@@ -151,7 +182,9 @@
throws IOException
{
try {
- _writer = new OutputStreamWriter(out, _encoding = encoding);
+ _writer = new OutputStreamWriter(out,
+ getCanonicalEncoding(encoding));
+ _encoding = encoding;
_is8859Encoded = encoding.equalsIgnoreCase("iso-8859-1");
}
catch (UnsupportedEncodingException e) {
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]