]> source.dussan.org Git - poi.git/commitdiff
Fix up the functionMetadata.txt stuff to be end-to-end UTF8. Was assuming it before...
authorNick Burch <nick@apache.org>
Tue, 6 May 2008 16:38:34 +0000 (16:38 +0000)
committerNick Burch <nick@apache.org>
Tue, 6 May 2008 16:38:34 +0000 (16:38 +0000)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@653831 13f79535-47bb-0310-9956-ffa450edef68

src/java/org/apache/poi/hssf/record/formula/function/FunctionMetadataReader.java
src/resources/main/org/apache/poi/hssf/record/formula/function/functionMetadata-asGenerated.txt
src/resources/main/org/apache/poi/hssf/record/formula/function/functionMetadata.txt
src/testcases/org/apache/poi/hssf/record/formula/function/ExcelFileFormatDocFunctionExtractor.java

index 2cdc540e6f22fb922422e4a56b63ce7ac5a4a965..9ea428c8df2b6d68ddfb7802c8187d016bdf3ecd 100644 (file)
@@ -21,6 +21,7 @@ import java.io.BufferedReader;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.InputStreamReader;
+import java.io.UnsupportedEncodingException;
 import java.util.Arrays;
 import java.util.HashSet;
 import java.util.Set;
@@ -58,7 +59,10 @@ final class FunctionMetadataReader {
                        throw new RuntimeException("resource '" + METADATA_FILE_NAME + "' not found");
                }
 
-               BufferedReader br = new BufferedReader(new InputStreamReader(is));
+               BufferedReader br = null;
+               try {
+                       br = new BufferedReader(new InputStreamReader(is,"UTF-8"));
+               } catch(UnsupportedEncodingException e) { /* never happens */ }
                FunctionDataBuilder fdb = new FunctionDataBuilder(400);
 
                try {
@@ -153,7 +157,7 @@ final class FunctionMetadataReader {
                        case 'R': return Ptg.CLASS_REF;
                        case 'A': return Ptg.CLASS_ARRAY;
                }
-               throw new IllegalArgumentException("Unexpected operand type code '" + code + "'");
+               throw new IllegalArgumentException("Unexpected operand type code '" + code + "' (" + (int)code.charAt(0) + ")");
        }
 
        /**
index 60d2f1fe8bf82d3f378e7982abc845db9dec672d..8ec4bc62d3039bdabb56abc600def378ce93803d 100644 (file)
@@ -29,7 +29,7 @@
 7      MAX     1       30      V       R               \r
 8      ROW     0       1       V       R               \r
 9      COLUMN  0       1       V       R               \r
-10     NA      0       0       V       \96               \r
+10     NA      0       0       V                    \r
 11     NPV     2       30      V       V R             \r
 12     STDEV   1       30      V       R               \r
 13     DOLLAR  1       2       V       V V             \r
@@ -38,7 +38,7 @@
 16     COS     1       1       V       V               \r
 17     TAN     1       1       V       V               \r
 18     ARCTAN  1       1       V       V               \r
-19     PI      0       0       V       \96               \r
+19     PI      0       0       V                    \r
 20     SQRT    1       1       V       V               \r
 21     EXP     1       1       V       V               \r
 22     LN      1       1       V       V               \r
@@ -53,8 +53,8 @@
 31     MID     3       3       V       V V V           \r
 32     LEN     1       1       V       V               \r
 33     VALUE   1       1       V       V               \r
-34     TRUE    0       0       V       \96               \r
-35     FALSE   0       0       V       \96               \r
+34     TRUE    0       0       V                    \r
+35     FALSE   0       0       V                    \r
 36     AND     1       30      V       R               \r
 37     OR      1       30      V       R               \r
 38     NOT     1       1       V       V               \r
@@ -80,7 +80,7 @@
 60     RATE    3       6       V       V V V V V V             \r
 61     MIRR    3       3       V       R V V           \r
 62     IRR     1       2       V       R V             \r
-63     RAND    0       0       V       \96       x       \r
+63     RAND    0       0       V            x       \r
 64     MATCH   2       3       V       V R R           \r
 65     DATE    3       3       V       V V V           \r
 66     TIME    3       3       V       V V V           \r
@@ -91,7 +91,7 @@
 71     HOUR    1       1       V       V               \r
 72     MINUTE  1       1       V       V               \r
 73     SECOND  1       1       V       V               \r
-74     NOW     0       0       V       \96       x       \r
+74     NOW     0       0       V            x       \r
 75     AREAS   1       1       V       R               \r
 76     ROWS    1       1       V       R               \r
 77     COLUMNS 1       1       V       R               \r
 215    JIS     1       1       V       V               x\r
 219    ADDRESS 2       5       V       V V V V V               \r
 220    DAYS360 2       2       V       V V             x\r
-221    TODAY   0       0       V       \96       x       \r
+221    TODAY   0       0       V            x       \r
 222    VDB     5       7       V       V V V V V V V           \r
-227    MEDIAN  1       30      V       R \85             \r
-228    SUMPRODUCT      1       30      V       A \85             \r
+227    MEDIAN  1       30      V       R            \r
+228    SUMPRODUCT      1       30      V       A            \r
 229    SINH    1       1       V       V               \r
 230    COSH    1       1       V       V               \r
 231    TANH    1       1       V       V               \r
 247    DB      4       5       V       V V V V V               \r
 252    FREQUENCY       2       2       A       R R             \r
 261    ERROR.TYPE      1       1       V       V               \r
-269    AVEDEV  1       30      V       R \85             \r
+269    AVEDEV  1       30      V       R            \r
 270    BETADIST        3       5       V       V V V V V               \r
 271    GAMMALN 1       1       V       V               \r
 272    BETAINV 3       5       V       V V V V V               \r
 315    SLOPE   2       2       V       A A             \r
 316    TTEST   4       4       V       A A V V         \r
 317    PROB    3       4       V       A A V V         \r
-318    DEVSQ   1       30      V       R \85             \r
-319    GEOMEAN 1       30      V       R \85             \r
-320    HARMEAN 1       30      V       R \85             \r
-321    SUMSQ   0       30      V       R \85             \r
-322    KURT    1       30      V       R \85             \r
-323    SKEW    1       30      V       R \85             \r
+318    DEVSQ   1       30      V       R            \r
+319    GEOMEAN 1       30      V       R            \r
+320    HARMEAN 1       30      V       R            \r
+321    SUMSQ   0       30      V       R            \r
+322    KURT    1       30      V       R            \r
+323    SKEW    1       30      V       R            \r
 324    ZTEST   2       3       V       R V V           \r
 325    LARGE   2       2       V       R V             \r
 326    SMALL   2       2       V       R V             \r
 358    GETPIVOTDATA    2       30                              \r
 359    HYPERLINK       1       2       V       V V             \r
 360    PHONETIC        1       1       V       R               \r
-361    AVERAGEA        1       30      V       R \85             \r
-362    MAXA    1       30      V       R \85             \r
-363    MINA    1       30      V       R \85             \r
-364    STDEVPA 1       30      V       R \85             \r
-365    VARPA   1       30      V       R \85             \r
-366    STDEVA  1       30      V       R \85             \r
-367    VARA    1       30      V       R \85             \r
+361    AVERAGEA        1       30      V       R            \r
+362    MAXA    1       30      V       R            \r
+363    MINA    1       30      V       R            \r
+364    STDEVPA 1       30      V       R            \r
+365    VARPA   1       30      V       R            \r
+366    STDEVA  1       30      V       R            \r
+367    VARA    1       30      V       R            \r
index 590b455c4716267790689ba849b8f12b99419abb..e46e4174c42c9f64652e8a72622a1dbfd7aeda27 100644 (file)
@@ -31,7 +31,7 @@
 7      MAX     1       30      V       R               \r
 8      ROW     0       1       V       R               \r
 9      COLUMN  0       1       V       R               \r
-10     NA      0       0       V       \96               \r
+10     NA      0       0       V                    \r
 11     NPV     2       30      V       V R             \r
 12     STDEV   1       30      V       R               \r
 13     DOLLAR  1       2       V       V V             \r
@@ -40,7 +40,7 @@
 16     COS     1       1       V       V               \r
 17     TAN     1       1       V       V               \r
 18     ATAN    1       1       V       V               \r
-19     PI      0       0       V       \96               \r
+19     PI      0       0       V                    \r
 20     SQRT    1       1       V       V               \r
 21     EXP     1       1       V       V               \r
 22     LN      1       1       V       V               \r
@@ -55,8 +55,8 @@
 31     MID     3       3       V       V V V           \r
 32     LEN     1       1       V       V               \r
 33     VALUE   1       1       V       V               \r
-34     TRUE    0       0       V       \96               \r
-35     FALSE   0       0       V       \96               \r
+34     TRUE    0       0       V                    \r
+35     FALSE   0       0       V                    \r
 36     AND     1       30      V       R               \r
 37     OR      1       30      V       R               \r
 38     NOT     1       1       V       V               \r
@@ -82,7 +82,7 @@
 60     RATE    3       6       V       V V V V V V             \r
 61     MIRR    3       3       V       R V V           \r
 62     IRR     1       2       V       R V             \r
-63     RAND    0       0       V       \96       x       \r
+63     RAND    0       0       V            x       \r
 64     MATCH   2       3       V       V R R           \r
 65     DATE    3       3       V       V V V           \r
 66     TIME    3       3       V       V V V           \r
@@ -93,7 +93,7 @@
 71     HOUR    1       1       V       V               \r
 72     MINUTE  1       1       V       V               \r
 73     SECOND  1       1       V       V               \r
-74     NOW     0       0       V       \96       x       \r
+74     NOW     0       0       V            x       \r
 75     AREAS   1       1       V       R               \r
 76     ROWS    1       1       V       R               \r
 77     COLUMNS 1       1       V       R               \r
 215    JIS     1       1       V       V               x\r
 219    ADDRESS 2       5       V       V V V V V               \r
 220    DAYS360 2       2       V       V V             x\r
-221    TODAY   0       0       V       \96       x       \r
+221    TODAY   0       0       V            x       \r
 222    VDB     5       7       V       V V V V V V V           \r
-227    MEDIAN  1       30      V       R \85             \r
-228    SUMPRODUCT      1       30      V       A \85             \r
+227    MEDIAN  1       30      V       R            \r
+228    SUMPRODUCT      1       30      V       A            \r
 229    SINH    1       1       V       V               \r
 230    COSH    1       1       V       V               \r
 231    TANH    1       1       V       V               \r
 247    DB      4       5       V       V V V V V               \r
 252    FREQUENCY       2       2       A       R R             \r
 261    ERROR.TYPE      1       1       V       V               \r
-269    AVEDEV  1       30      V       R \85             \r
+269    AVEDEV  1       30      V       R            \r
 270    BETADIST        3       5       V       V V V V V               \r
 271    GAMMALN 1       1       V       V               \r
 272    BETAINV 3       5       V       V V V V V               \r
 315    SLOPE   2       2       V       A A             \r
 316    TTEST   4       4       V       A A V V         \r
 317    PROB    3       4       V       A A V V         \r
-318    DEVSQ   1       30      V       R \85             \r
-319    GEOMEAN 1       30      V       R \85             \r
-320    HARMEAN 1       30      V       R \85             \r
-321    SUMSQ   0       30      V       R \85             \r
-322    KURT    1       30      V       R \85             \r
-323    SKEW    1       30      V       R \85             \r
+318    DEVSQ   1       30      V       R            \r
+319    GEOMEAN 1       30      V       R            \r
+320    HARMEAN 1       30      V       R            \r
+321    SUMSQ   0       30      V       R            \r
+322    KURT    1       30      V       R            \r
+323    SKEW    1       30      V       R            \r
 324    ZTEST   2       3       V       R V V           \r
 325    LARGE   2       2       V       R V             \r
 326    SMALL   2       2       V       R V             \r
 358    GETPIVOTDATA    2       30                              \r
 359    HYPERLINK       1       2       V       V V             \r
 360    PHONETIC        1       1       V       R               \r
-361    AVERAGEA        1       30      V       R \85             \r
-362    MAXA    1       30      V       R \85             \r
-363    MINA    1       30      V       R \85             \r
-364    STDEVPA 1       30      V       R \85             \r
-365    VARPA   1       30      V       R \85             \r
-366    STDEVA  1       30      V       R \85             \r
-367    VARA    1       30      V       R \85             \r
+361    AVERAGEA        1       30      V       R            \r
+362    MAXA    1       30      V       R            \r
+363    MINA    1       30      V       R            \r
+364    STDEVPA 1       30      V       R            \r
+365    VARPA   1       30      V       R            \r
+366    STDEVA  1       30      V       R            \r
+367    VARA    1       30      V       R            \r
index 48a76e31d83d011f138dfde149461e7c19b28d1c..351e85cf8545ef41fdbac29335c726f03d616c46 100644 (file)
@@ -25,6 +25,7 @@ import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
 import java.io.PrintStream;
+import java.io.UnsupportedEncodingException;
 import java.net.MalformedURLException;
 import java.net.URL;
 import java.net.URLConnection;
@@ -354,13 +355,19 @@ public final class ExcelFileFormatDocFunctionExtractor {
        }
 
        private static void extractFunctionData(FunctionDataCollector fdc, InputStream is) {
-               System.setProperty("org.xml.sax.driver", "org.apache.crimson.parser.XMLReaderImpl");
-               
                XMLReader xr;
+               
                try {
+                       // First up, try the default one
                        xr = XMLReaderFactory.createXMLReader();
                } catch (SAXException e) {
-                       throw new RuntimeException(e);
+                       // Try one for java 1.4
+                       System.setProperty("org.xml.sax.driver", "org.apache.crimson.parser.XMLReaderImpl");
+                       try {
+                               xr = XMLReaderFactory.createXMLReader();
+                       } catch (SAXException e2) {
+                               throw new RuntimeException(e2);
+                       }
                }
                xr.setContentHandler(new EFFDocHandler(fdc));
 
@@ -383,7 +390,11 @@ public final class ExcelFileFormatDocFunctionExtractor {
                } catch (FileNotFoundException e) {
                        throw new RuntimeException(e);
                }
-               PrintStream ps = new PrintStream(os);
+               PrintStream ps = null;
+               try {
+                       ps = new PrintStream(os,true, "UTF-8");
+               } catch(UnsupportedEncodingException e) {}
+               
                outputLicenseHeader(ps);
                Class genClass = ExcelFileFormatDocFunctionExtractor.class;
                ps.println("# Created by (" + genClass.getName() + ")");