Diff for /FM2SQL/Attic/Convert.java between versions 1.55 and 1.59

version 1.55, 2004/06/01 10:29:48 version 1.59, 2004/06/22 10:33:53
Line 12 Line 12
  * rogo     * rogo  
  */   */
   
 import java.util.*;  
 import java.sql.*;  
 import java.awt.Cursor;  import java.awt.Cursor;
 import java.io.BufferedReader;  import java.io.BufferedReader;
 import java.io.BufferedWriter;  import java.io.BufferedWriter;
Line 25  import java.io.InputStreamReader; Line 23  import java.io.InputStreamReader;
 import java.io.OutputStreamWriter;  import java.io.OutputStreamWriter;
 import java.io.PrintStream;  import java.io.PrintStream;
 import java.io.UnsupportedEncodingException;  import java.io.UnsupportedEncodingException;
   import java.sql.PreparedStatement;
   import java.sql.SQLException;
   import java.sql.Statement;
   import java.sql.Types;
   import java.util.ArrayList;
   import java.util.Iterator;
   import java.util.List;
   import java.util.StringTokenizer;
   import java.util.TreeSet;
   import java.util.Vector;
   
 import com.exploringxml.xml.Node;  import com.exploringxml.xml.Node;
 import com.exploringxml.xml.Xparse;  import com.exploringxml.xml.Xparse;
Line 1210  class Convert Line 1218  class Convert
         Node node3 = root.find("convert/source/database", new int[] { 1, 1, i });          Node node3 = root.find("convert/source/database", new int[] { 1, 1, i });
         Node nodeMode = root.find("convert/source/database/mode", new int[] { 1, 1, i, 1, 1 });          Node nodeMode = root.find("convert/source/database/mode", new int[] { 1, 1, i, 1, 1 });
         Node delimiterNode = root.find("convert/source/database/delimiter", new int[] { 1, 1, i, 1, 1 });          Node delimiterNode = root.find("convert/source/database/delimiter", new int[] { 1, 1, i, 1, 1 });
           Node useNormanToUnicodeMapper = root.find("convert/source/database/usenormantounicodemapper", new int[] { 1, 1, i, 1, 1 });
       
         if (node3 == null)          if (node3 == null)
           throw new Error("parse error database tag missing");            throw new Error("parse error database tag missing");
         if (node == null)          if (node == null)
Line 1220  class Convert Line 1230  class Convert
           throw new Error("parse error password tag missing");            throw new Error("parse error password tag missing");
         if (delimiterNode != null)          if (delimiterNode != null)
           delimiter = delimiterNode.getCharacters();            delimiter = delimiterNode.getCharacters();
           if(useNormanToUnicodeMapper!=null)
           {
             database.setUseNormanToUnicodeMapper(Boolean.valueOf(useNormanToUnicodeMapper.getCharacters()).booleanValue());
             System.out.println("useMapper "+Boolean.valueOf(useNormanToUnicodeMapper.getCharacters().trim()).booleanValue());
           } 
      
         String url = node.getCharacters();          String url = node.getCharacters();
         String user = node1.getCharacters();          String user = node1.getCharacters();
         String password = node2.getCharacters();          String password = node2.getCharacters();
Line 1383  class Convert Line 1399  class Convert
         Node node3 = root.find("convert/source/database", new int[] { 1, 1, i });          Node node3 = root.find("convert/source/database", new int[] { 1, 1, i });
         Node nodeMode = root.find("convert/source/database/mode", new int[] { 1, 1, i, 1, 1 });          Node nodeMode = root.find("convert/source/database/mode", new int[] { 1, 1, i, 1, 1 });
         Node delimiterNode = root.find("convert/source/database/delimiter", new int[] { 1, 1, i, 1, 1 });          Node delimiterNode = root.find("convert/source/database/delimiter", new int[] { 1, 1, i, 1, 1 });
           Node useNormanToUnicodeMapper = root.find("convert/source/database/usenormantounicodemapper", new int[] { 1, 1, i, 1, 1 });
   
         if (delimiterNode != null)          if (delimiterNode != null)
           delimiter = delimiterNode.getCharacters();            delimiter = delimiterNode.getCharacters();
           if(useNormanToUnicodeMapper!=null)
           {
             database.setUseNormanToUnicodeMapper(Boolean.valueOf(useNormanToUnicodeMapper.getCharacters()).booleanValue());
             System.out.println("useMapper "+Boolean.valueOf(useNormanToUnicodeMapper.getCharacters().trim()).booleanValue());
           } 
   
         if (node3 == null)          if (node3 == null)
           throw new Error("parse error database tag missing");            throw new Error("parse error database tag missing");
         if (node == null)          if (node == null)
Line 1574  class Convert Line 1597  class Convert
     Vector tables;      Vector tables;
     Vector ids;      Vector ids;
     String delimiter = "//";      String delimiter = "//";
       boolean useNormanToUnicodeMapper = false;
       
     final static int CONVERT_MODE = 1;      final static int CONVERT_MODE = 1;
     final static int APPEND_MODE = 2;      final static int APPEND_MODE = 2;
     final static int UPDATE_MODE = 3;      final static int UPDATE_MODE = 3;
Line 1616  class Convert Line 1641  class Convert
         modeString = "delete";          modeString = "delete";
   
       buffr.write("      <mode>" + modeString + "</mode>\n");        buffr.write("      <mode>" + modeString + "</mode>\n");
         buffr.write("      <usenormantounicodemapper>" + useNormanToUnicodeMapper + "</usenormantounicodemapper>\n");
         
       int index = 0;        int index = 0;
       while (index < tables.size())        while (index < tables.size())
       {        {
Line 1876  class Convert Line 1903  class Convert
     }      }
   } // to method    } // to method
   
     /**
      * Converts input String in norman encoding to unicode 
      * @param inp
      * @return converted String
      */
     static public String normanToUnicode(String inp) {
       StringBuffer buf = new StringBuffer();
       for (int i = 0; i < inp.length(); i++) {
         char c = inp.charAt(i);
        // System.out.println("char "+c+" "+(int)c);
         switch (c) {
         case 1: buf.append("\u00d0"); break; // Eth
         case 2: buf.append("\u00f0"); break; // eth
         case 3: buf.append("\u0141"); break; // Lslash
         case 4: buf.append("\u0142"); break; // lslash
         case 5: buf.append("\u0160"); break; // S caron
         case 6: buf.append("\u0161"); break; // s caron
         case 7: buf.append("\u00dd"); break; // Y acute
         case 8: buf.append("\u00fd"); break; // y acute
         case 11: buf.append("\u00de"); break; // Thorn
         case 12: buf.append("\u00fe"); break; // thorn
         case 14: buf.append("\u017d"); break; // Z caron
         case 15: buf.append("\u017e"); break; // z caron
         case 17: buf.append("\u0073"); break; // asciitilde
         case 18: buf.append("j\u0305"); break; // j macron [does a single char exist?]
         case 19: buf.append("^"); break; // circumflex
         case 20: buf.append("\u0303"); break; // tilde
         case 21: buf.append("\u00bd"); break; // onehalf
         case 22: buf.append("\u00bc"); break; // onequarter
         case 23: buf.append("\u00b9"); break; // onesuperior
         case 24: buf.append("\u00be"); break; // threequarters
         case 25: buf.append("\u00b3"); break; // threesuperior
         case 26: buf.append("\u00b2"); break; // twosuperior
         case 27: buf.append("\u00a6"); break; // brokenbar
         case 28: buf.append("-"); break; // minus
         case 29: buf.append("\u00d7"); break; // multiply
         case 39: buf.append("'"); break; // quotesingle
         case 94: buf.append("\u0302"); break; // circumflex
         case 96: buf.append("\u0300"); break; // grave
         case 196: buf.append("\u00c4"); break; // A dieresis
         case 197: buf.append("\u00c5"); break; // A ring
         case 201: buf.append("\u00c9"); break; // E acute
         case 209: buf.append("\u00d1"); break; // N tilde
         case 214: buf.append("\u00d6"); break; // O dieresis
         case 220: buf.append("\u00dc"); break; // U dieresis
         case 225: buf.append("\u00e1"); break; // a acute
         case 224: buf.append("\u00e0"); break; // a grave
         case 226: buf.append("\u00e2"); break; // a circumflex
         case 228: buf.append("\u00e4"); break; // a dieresis
         case 227: buf.append("\u00e3"); break; // a tilde
         case 229: buf.append("\u0101"); break; // a macron
         case 231: buf.append("\u00e7"); break; // c cedilla
         case 233: buf.append("\u00e9"); break; // e acute
         case 232: buf.append("\u00e8"); break; // e grave
         case 234: buf.append("\u00ea"); break; // e circumflex
         case 235: buf.append("\u00eb"); break; // e dieresis
         case 237: buf.append("\u00ed"); break; // i acute
         case 236: buf.append("\u00ec"); break; // i grave
         case 238: buf.append("\u00ee"); break; // i circumflex
         case 239: buf.append("\u00ef"); break; // i dieresis
         case 241: buf.append("\u00f1"); break; // n tilde
         case 243: buf.append("\u00f3"); break; // o acute
         case 242: buf.append("\u00f2"); break; // o grave
         case 244: buf.append("\u00f4"); break; // o circumflex
         case 246: buf.append("\u00f6"); break; // o dieresis
         case 245: buf.append("\u00f5"); break; // o tilde
         case 250: buf.append("\u00fa"); break; // u acute
         case 249: buf.append("\u00f9"); break; // u grave
         case 251: buf.append("\u00fb"); break; // u circumflex
         case 252: buf.append("\u00fc"); break; // u dieresis
         case 8224: buf.append("\u1e6d"); break; // t underdot
         case 176: buf.append("\u00b0"); break; // degree
         case 162: buf.append("\u1ebd"); break; // e tilde
         case 163: buf.append("\u00a3"); break; // sterling
         case 167: buf.append("\u00a7"); break; // section
         case 182: buf.append("\u00b6"); break; // paragraph
         case 223: buf.append("\u015b"); break; // s acute
         case 174: buf.append("\u1e5b"); break; // r underdot
         case 169: buf.append("\u1e45"); break; // n overdot
         case 353: buf.append("\u1e45"); break; // n overdot
         case 180: buf.append("\u0301"); break; // acute
         case 168: buf.append("\u0308"); break; // dieresis
         case 8800: buf.append("\u1e6d"); break; // t underdot
         case 198: buf.append("\u00c6"); break; // AE
         case 216: buf.append("\u014d"); break; // o macron
         case 8734: buf.append("\u0129"); break; // i tilde
         case 177: buf.append("\u00b1"); break; // plusminus
         case 165: buf.append("\u012b"); break; // i macron
         case 181: buf.append("\u1e43"); break; // m underdot
         case 8706: buf.append("\u1e0d"); break; // d underdot
         case 240: buf.append("\u1e0d"); break; // d underdot
   
         case 8721: buf.append("\u1e63"); break; // s underdot
         case 960: buf.append("\u017a"); break; // z acute
         case 8747: buf.append("\u1e45"); break; // n overdot
         case 937: buf.append("\u0169"); break; // u tilde
         case 230: buf.append("\u00e6"); break; // ae
         case 248: buf.append("\u00f8"); break; // oslash
         case 191: buf.append("\u0304\u0306"); break; // macron breve
         case 172: buf.append("\u1e37"); break; // 
         case 8730: buf.append("j\u0305"); break; // j macron [does a single char exist?]
         case 402: buf.append("\u0103"); break; // a breve
         case 8776: buf.append("\u016d"); break; // u breve
         case 187: buf.append("\u1e42"); break; // M underdot
         case 8230: buf.append("\u2026"); break; // ellipsis
         case 192: buf.append("\u00c0"); break; // A grave
         case 195: buf.append("\u00c3"); break; // A tilde
         case 213: buf.append("\u00d5"); break; // O tilde
         case 338: buf.append("m\u0306"); break; // m breve
         case 339: buf.append("\u0153"); break; // oe
         case 8211: buf.append("\u2013"); break; // endash
         case 8212: buf.append("\u2014"); break; // emdash
         case 8220: buf.append("\u201c"); break; // quotedblleft
         case 8221: buf.append("\u201d"); break; // quotedblright
         case 8216: buf.append("\u2018"); break; // quoteleft
         case 8217: buf.append("\u2019"); break; // quoteright
         case 247: buf.append("\u1e37"); break; // l underring [actually underdot]
         case 9674: buf.append("\u1e41"); break; // m overdot
         case 255: buf.append("n\u0306"); break; // n breve
         case 376: buf.append("\u00d7"); break; // multiply
         case 8364: buf.append("\u1e5b"); break; // r underring [actually underdot]
         case 8249: buf.append("\u1e44"); break; // N overdot
         case 8250: buf.append("\u1e62"); break; // S underdot
         case 64257: buf.append("\u1e24"); break; // H underdot
         case 64258: buf.append("\u1e0c"); break; // D underdot
         case 8225: buf.append("\u2021"); break; // daggerdbl
         case 8218: buf.append("\u1e36"); break; // L underdot
         case 8222: buf.append("\u0113"); break; // e macron
         case 194: buf.append("\u1e5f"); break; // r underbar
         case 202: buf.append("r\u0324"); break; // r underdieresis
         case 193: buf.append("\u012a"); break; // I macron
         case 8486:
         case 203: buf.append("\u016b"); break; // u macron
         case 200: buf.append("\u1e6c"); break; // T underdot
         case 205: buf.append("\u1e64"); break; // S acute
         case 206: buf.append("\u2020"); break; // dagger
         case 207: buf.append("\u0115"); break; // e breve
         case 204: buf.append("\u014f"); break; // o breve
         case 211: buf.append("\u0100"); break; // A macron
         case 212: buf.append("\u1e46"); break; // N underdot
         case 210: buf.append("\u1e3b"); break; // l underbar
         case 218: buf.append("\u016a"); break; // U macron
         case 219: buf.append("\u0179"); break; // Z acute
         case 217: buf.append("\u1e5a"); break; // R underdot
         case 305: buf.append("\u0131"); break; // dotlessi
         case 710: buf.append("\u1e47"); break; // n underdot
         case 732: buf.append("\u1e49"); break; // n underbar
         case 175: buf.append("\u0304"); break; // macron
         case 728: buf.append("\u0306"); break; // breve
         case 729:case 215: buf.append("\u1e25"); break; // h underdot
         case 730: buf.append("\u012d"); break; // i breve
         case 184: buf.append("\u0327"); break; // cedilla
         case 733: buf.append("\u030b"); break; // hungarumlaut
         case 731: buf.append("\u0328"); break; // ogonek
         case 711: buf.append("\u030c"); break; // caron
         case 199: buf.append("\u012b\u0303"); break; // imacron tilde
         case 8226: buf.append("\u1e5d"); break; // runderdot macron
         case 8482: buf.append("\u016b\0306"); break; // umacron breve
         case 8804: buf.append("\u0101\u0301"); break; // amacron acute
         case 8805: buf.append("\u016b\u0301"); break; // umacron acute
         case 8719: buf.append("\u0113\u0301"); break; // emacron acute
         case 170: buf.append("\u0113\u0300"); break; // emacron breve
         case 186: buf.append("\u014d\u0300"); break; // omacron breve
         case 161: buf.append("\u0101\u0306"); break; // amacron breve
         case 8710: buf.append("\u0101\u0303"); break; // amacron tilde
         case 171: buf.append("\u012b\u0301"); break; // imacron acute
         case 8260: buf.append("\u1e00"); break; // runderdotmacron acute
         case 183: buf.append("\u1e5b\u0301"); break; // runderdot acute
         case 8240: buf.append("\u012b\u0306"); break; // imacron breve
         case 63743: buf.append("\u016b\u0303"); break; // umacron tilde
         default: buf.append(c);    
          if((int)c>127)
          System.out.println("char "+c+" "+(int)c);
          break;
         }
       }
       return buf.toString();
     }
   
     static public String normanToUnicodeOld(String inp) {
       StringBuffer buf = new StringBuffer();
       for (int i = 0; i < inp.length(); i++) {
         char c = inp.charAt(i);
         switch (c) {
         case 1: buf.append("\u00d0"); break; // Eth
         case 2: buf.append("\u00f0"); break; // eth
         case 3: buf.append("\u0141"); break; // Lslash
         case 4: buf.append("\u0142"); break; // lslash
         case 5: buf.append("\u0160"); break; // S caron
         case 6: buf.append("\u0161"); break; // s caron
         case 7: buf.append("\u00dd"); break; // Y acute
         case 8: buf.append("\u00fd"); break; // y acute
         case 11: buf.append("\u00de"); break; // Thorn
         case 12: buf.append("\u00fe"); break; // thorn
         case 14: buf.append("\u017d"); break; // Z caron
         case 15: buf.append("\u017e"); break; // z caron
         case 17: buf.append("\u0073"); break; // asciitilde
         case 18: buf.append("j\u0305"); break; // j macron [does a single char exist?]
         case 19: buf.append("^"); break; // circumflex
         case 20: buf.append("\u0303"); break; // tilde
         case 21: buf.append("\u00bd"); break; // onehalf
         case 22: buf.append("\u00bc"); break; // onequarter
         case 23: buf.append("\u00b9"); break; // onesuperior
         case 24: buf.append("\u00be"); break; // threequarters
         case 25: buf.append("\u00b3"); break; // threesuperior
         case 26: buf.append("\u00b2"); break; // twosuperior
         case 27: buf.append("\u00a6"); break; // brokenbar
         case 28: buf.append("-"); break; // minus
         case 29: buf.append("\u00d7"); break; // multiply
         case 39: buf.append("'"); break; // quotesingle
         case 94: buf.append("\u0302"); break; // circumflex
         case 96: buf.append("\u0300"); break; // grave
         case 128: buf.append("\u00c4"); break; // A dieresis
         case 129: buf.append("\u00c5"); break; // A ring
         case 131: buf.append("\u00c9"); break; // E acute
         case 132: buf.append("\u00d1"); break; // N tilde
         case 133: buf.append("\u00d6"); break; // O dieresis
         case 134: buf.append("\u00dc"); break; // U dieresis
         case 135: buf.append("\u00e1"); break; // a acute
         case 136: buf.append("\u00e0"); break; // a grave
         case 137: buf.append("\u00e2"); break; // a circumflex
         case 138: buf.append("\u00e4"); break; // a dieresis
         case 139: buf.append("\u00e3"); break; // a tilde
         case 140: buf.append("\u0101"); break; // a macron
         case 141: buf.append("\u00e7"); break; // c cedilla
         case 142: buf.append("\u00e9"); break; // e acute
         case 143: buf.append("\u00e8"); break; // e grave
         case 144: buf.append("\u00ea"); break; // e circumflex
         case 145: buf.append("\u00eb"); break; // e dieresis
         case 146: buf.append("\u00ed"); break; // i acute
         case 147: buf.append("\u00ec"); break; // i grave
         case 148: buf.append("\u00ee"); break; // i circumflex
         case 149: buf.append("\u00ef"); break; // i dieresis
         case 150: buf.append("\u00f1"); break; // n tilde
         case 151: buf.append("\u00f3"); break; // o acute
         case 152: buf.append("\u00f2"); break; // o grave
         case 153: buf.append("\u00f4"); break; // o circumflex
         case 154: buf.append("\u00f6"); break; // o dieresis
         case 155: buf.append("\u00f5"); break; // o tilde
         case 156: buf.append("\u00fa"); break; // u acute
         case 157: buf.append("\u00f9"); break; // u grave
         case 158: buf.append("\u00fb"); break; // u circumflex
         case 159: buf.append("\u00fc"); break; // u dieresis
         case 160: buf.append("\u1e6d"); break; // t underdot
         case 161: buf.append("\u00b0"); break; // degree
         case 162: buf.append("\u1ebd"); break; // e tilde
         case 163: buf.append("\u00a3"); break; // sterling
         case 164: buf.append("\u00a7"); break; // section
         case 166: buf.append("\u00b6"); break; // paragraph
         case 167: buf.append("\u015b"); break; // s acute
         case 168: buf.append("\u1e5b"); break; // r underdot
         case 169: buf.append("\u1e67"); break; // s caron
         case 171: buf.append("\u0301"); break; // acute
         case 172: buf.append("\u0308"); break; // dieresis
         case 173: buf.append("\u1e6d"); break; // t underdot
         case 174: buf.append("\u00c6"); break; // AE
         case 175: buf.append("\u014d"); break; // o macron
         case 176: buf.append("\u0129"); break; // i tilde
         case 177: buf.append("\u00b1"); break; // plusminus
         case 180: buf.append("\u012b"); break; // i macron
         case 181: buf.append("\u1e43"); break; // m underdot
         case 182: buf.append("\u1e0d"); break; // d underdot
         case 183: buf.append("\u1e63"); break; // s underdot
         case 185: buf.append("\u017a"); break; // z acute
         case 186: buf.append("\u1e45"); break; // n overdot
         case 189: buf.append("\u0169"); break; // u tilde
         case 190: buf.append("\u00e6"); break; // ae
         case 191: buf.append("\u00f8"); break; // oslash
         case 192: buf.append("\u0304\u0306"); break; // macron breve
         case 194: buf.append("\u1e37"); break; // 
         case 195: buf.append("j\u0305"); break; // j macron [does a single char exist?]
         case 196: buf.append("\u0103"); break; // a breve
         case 197: buf.append("\u016d"); break; // u breve
         case 200: buf.append("\u1e42"); break; // M underdot
         case 201: buf.append("\u2026"); break; // ellipsis
         case 203: buf.append("\u00c0"); break; // A grave
         case 204: buf.append("\u00c3"); break; // A tilde
         case 205: buf.append("\u00d5"); break; // O tilde
         case 206: buf.append("m\u0306"); break; // m breve
         case 207: buf.append("\u0153"); break; // oe
         case 208: buf.append("\u2013"); break; // endash
         case 209: buf.append("\u2014"); break; // emdash
         case 210: buf.append("\u201c"); break; // quotedblleft
         case 211: buf.append("\u201d"); break; // quotedblright
         case 212: buf.append("\u2018"); break; // quoteleft
         case 213: buf.append("\u2019"); break; // quoteright
         case 214: buf.append("\u1e37"); break; // l underring [actually underdot]
         case 215: buf.append("\u1e41"); break; // m overdot
         case 216: buf.append("n\u0306"); break; // n breve
         case 217: buf.append("\u00d7"); break; // multiply
         case 219: buf.append("\u1e5b"); break; // r underring [actually underdot]
         case 220: buf.append("\u1e44"); break; // N overdot
         case 221: buf.append("\u1e62"); break; // S underdot
         case 222: buf.append("\u1e24"); break; // H underdot
         case 223: buf.append("\u1e0c"); break; // D underdot
         case 224: buf.append("\u2021"); break; // daggerdbl
         case 226: buf.append("\u1e36"); break; // L underdot
         case 227: buf.append("\u0113"); break; // e macron
         case 229: buf.append("\u1e5f"); break; // r underbar
         case 230: buf.append("r\u0324"); break; // r underdieresis
         case 231: buf.append("\u012a"); break; // I macron
         case 232: buf.append("\u016b"); break; // u macron
         case 233: buf.append("\u01e6c"); break; // T underdot
         case 234: buf.append("\u1e64"); break; // S acute
         case 235: buf.append("\u2020"); break; // dagger
         case 236: buf.append("\u0115"); break; // e breve
         case 237: buf.append("\u014f"); break; // o breve
         case 238: buf.append("\u0100"); break; // A macron
         case 239: buf.append("\u1e46"); break; // N underdot
         case 241: buf.append("\u1e3b"); break; // l underbar
         case 242: buf.append("\u016a"); break; // U macron
         case 243: buf.append("\u0179"); break; // Z acute
         case 244: buf.append("\u1e5a"); break; // R underdot
         case 245: buf.append("\u0131"); break; // dotlessi
         case 246: buf.append("\u1e47"); break; // n underdot
         case 247: buf.append("\u1e49"); break; // n underbar
         case 248: buf.append("\u0304"); break; // macron
         case 249: buf.append("\u0306"); break; // breve
         case 250: buf.append("\u1e25"); break; // h underdot
         case 251: buf.append("\u012d"); break; // i breve
         case 252: buf.append("\u0327"); break; // cedilla
         case 253: buf.append("\u030b"); break; // hungarumlaut
         case 254: buf.append("\u0328"); break; // ogonek
         case 255: buf.append("\u030c"); break; // caron
         case 130: buf.append("\u012b\u0303"); break; // imacron tilde
         case 165: buf.append("\u1e5d"); break; // runderdot macron
         case 170: buf.append("\u016b\0306"); break; // umacron breve
         case 178: buf.append("\u0101\u0301"); break; // amacron acute
         case 179: buf.append("\u016b\u0301"); break; // umacron acute
         case 184: buf.append("\u0113\u0301"); break; // emacron acute
         case 187: buf.append("\u0113\u0300"); break; // emacron breve
         case 188: buf.append("\u014d\u0300"); break; // omacron breve
         case 193: buf.append("\u0101\u0306"); break; // amacron breve
         case 198: buf.append("\u0101\u0303"); break; // amacron tilde
         case 199: buf.append("\u012b\u0301"); break; // imacron acute
         case 218: buf.append("\u1e00"); break; // runderdotmacron acute
         case 225: buf.append("\u1e5b\u0301"); break; // runderdot acute
         case 228: buf.append("\u012b\u0306"); break; // imacron breve
         case 240: buf.append("\u016b\u0303"); break; // umacron tilde
         default: buf.append(c); break;
         }
       }
       return buf.toString();
     }
     static public String normanToUnicodeNew(String inp) {
       StringBuffer buf = new StringBuffer();
       for (int i = 0; i < inp.length(); i++) {
         char c = inp.charAt(i);
         switch (c) {
           case 1: buf.append("\u00d0"); break; // Eth
           case 2: buf.append("\u00f0"); break; // eth
           case 3: buf.append("\u0141"); break; // Lslash
           case 4: buf.append("\u0142"); break; // lslash
           case 5: buf.append("\u0160"); break; // S caron
           case 6: buf.append("\u0161"); break; // s caron
           case 7: buf.append("\u00dd"); break; // Y acute
           case 8: buf.append("\u00fd"); break; // y acute
           case 11: buf.append("\u00de"); break; // Thorn
           case 12: buf.append("\u00fe"); break; // thorn
           case 14: buf.append("\u017d"); break; // Z caron
           case 15: buf.append("\u017e"); break; // z caron
           case 17: buf.append("\u0073"); break; // asciitilde
           case 18: buf.append("j\u0305"); break; // j macron [does a single char exist?]
           case 19: buf.append("^"); break; // circumflex
           case 20: buf.append("\u0303"); break; // tilde
           case 21: buf.append("\u00bd"); break; // onehalf
           case 22: buf.append("\u00bc"); break; // onequarter
           case 23: buf.append("\u00b9"); break; // onesuperior
           case 24: buf.append("\u00be"); break; // threequarters
           case 25: buf.append("\u00b3"); break; // threesuperior
           case 26: buf.append("\u00b2"); break; // twosuperior
           case 27: buf.append("\u00a6"); break; // brokenbar
           case 28: buf.append("-"); break; // minus
           case 29: buf.append("\u00d7"); break; // multiply
           case 39: buf.append("'"); break; // quotesingle
           case 94: buf.append("\u0302"); break; // circumflex
           case 96: buf.append("\u0300"); break; // grave
           case 196: buf.append("\u00c4"); break; // A dieresis
           case 197: buf.append("\u00c5"); break; // A ring
           case 201: buf.append("\u00c9"); break; // E acute
           case 209: buf.append("\u00d1"); break; // N tilde
           case 214: buf.append("\u00d6"); break; // O dieresis
           case 220: buf.append("\u00dc"); break; // U dieresis
           case 225: buf.append("\u00e1"); break; // a acute
           case 224: buf.append("\u00e0"); break; // a grave
           case 226: buf.append("\u00e2"); break; // a circumflex
           case 228: buf.append("\u00e4"); break; // a dieresis
           case 227: buf.append("\u00e3"); break; // a tilde
           case 229: buf.append("\u0101"); break; // a macron
           case 231: buf.append("\u00e7"); break; // c cedilla
           case 233: buf.append("\u00e9"); break; // e acute
           case 232: buf.append("\u00e8"); break; // e grave
           case 234: buf.append("\u00ea"); break; // e circumflex
           case 235: buf.append("\u00eb"); break; // e dieresis
           case 237: buf.append("\u00ed"); break; // i acute
           case 236: buf.append("\u00ec"); break; // i grave
           case 238: buf.append("\u00ee"); break; // i circumflex
           case 239: buf.append("\u00ef"); break; // i dieresis
           case 241: buf.append("\u00f1"); break; // n tilde
           case 243: buf.append("\u00f3"); break; // o acute
           case 242: buf.append("\u00f2"); break; // o grave
           case 244: buf.append("\u00f4"); break; // o circumflex
           case 246: buf.append("\u00f6"); break; // o dieresis
           case 245: buf.append("\u00f5"); break; // o tilde
           case 250: buf.append("\u00fa"); break; // u acute
           case 249: buf.append("\u00f9"); break; // u grave
           case 251: buf.append("\u00fb"); break; // u circumflex
           case 252: buf.append("\u00fc"); break; // u dieresis
           case 8224: buf.append("\u1e6d"); break; // t underdot
           case 176: buf.append("\u00b0"); break; // degree
           case 162: buf.append("\u1ebd"); break; // e tilde
           case 163: buf.append("\u00a3"); break; // sterling
           case 167: buf.append("\u00a7"); break; // section
           case 182: buf.append("\u00b6"); break; // paragraph
           case 223: buf.append("\u015b"); break; // s acute
           case 174: buf.append("\u1e5b"); break; // r underdot
           case 169: buf.append("\u1e45"); break; // n overdot
           case 180: buf.append("\u0301"); break; // acute
           case 168: buf.append("\u0308"); break; // dieresis
           case 8800: buf.append("\u1e6d"); break; // t underdot
           case 198: buf.append("\u00c6"); break; // AE
           case 216: buf.append("\u014d"); break; // o macron
           case 8734: buf.append("\u0129"); break; // i tilde
           case 177: buf.append("\u00b1"); break; // plusminus
           case 165: buf.append("\u012b"); break; // i macron
           case 181: buf.append("\u1e43"); break; // m underdot
           case 8706: buf.append("\u1e0d"); break; // d underdot
           case 8721: buf.append("\u1e63"); break; // s underdot
           case 960: buf.append("\u017a"); break; // z acute
           case 8747: buf.append("\u1e45"); break; // n overdot
           case 937: buf.append("\u0169"); break; // u tilde
           case 230: buf.append("\u00e6"); break; // ae
           case 248: buf.append("\u00f8"); break; // oslash
           case 191: buf.append("\u0304\u0306"); break; // macron breve
           case 172: buf.append("\u1e37"); break; // 
           case 8730: buf.append("j\u0305"); break; // j macron [does a single char exist?]
           case 402: buf.append("\u0103"); break; // a breve
           case 8776: buf.append("\u016d"); break; // u breve
           case 187: buf.append("\u1e42"); break; // M underdot
           case 8230: buf.append("\u2026"); break; // ellipsis
           case 192: buf.append("\u00c0"); break; // A grave
           case 195: buf.append("\u00c3"); break; // A tilde
           case 213: buf.append("\u00d5"); break; // O tilde
           case 338: buf.append("m\u0306"); break; // m breve
           case 339: buf.append("\u0153"); break; // oe
           case 8211: buf.append("\u2013"); break; // endash
           case 8212: buf.append("\u2014"); break; // emdash
           case 8220: buf.append("\u201c"); break; // quotedblleft
           case 8221: buf.append("\u201d"); break; // quotedblright
           case 8216: buf.append("\u2018"); break; // quoteleft
           case 8217: buf.append("\u2019"); break; // quoteright
           case 247: buf.append("\u1e37"); break; // l underring [actually underdot]
           case 9674: buf.append("\u1e41"); break; // m overdot
           case 255: buf.append("n\u0306"); break; // n breve
           case 376: buf.append("\u00d7"); break; // multiply
           case 8364: buf.append("\u1e5b"); break; // r underring [actually underdot]
           case 8249: buf.append("\u1e44"); break; // N overdot
           case 8250: buf.append("\u1e62"); break; // S underdot
           case 64257: buf.append("\u1e24"); break; // H underdot
           case 64258: buf.append("\u1e0c"); break; // D underdot
           case 8225: buf.append("\u2021"); break; // daggerdbl
           case 8218: buf.append("\u1e36"); break; // L underdot
           case 8222: buf.append("\u0113"); break; // e macron
           case 194: buf.append("\u1e5f"); break; // r underbar
           case 202: buf.append("r\u0324"); break; // r underdieresis
           case 193: buf.append("\u012a"); break; // I macron
           case 203: buf.append("\u016b"); break; // u macron
           case 200: buf.append("\u1e6c"); break; // T underdot
           case 205: buf.append("\u1e64"); break; // S acute
           case 206: buf.append("\u2020"); break; // dagger
           case 207: buf.append("\u0115"); break; // e breve
           case 204: buf.append("\u014f"); break; // o breve
           case 211: buf.append("\u0100"); break; // A macron
           case 212: buf.append("\u1e46"); break; // N underdot
           case 210: buf.append("\u1e3b"); break; // l underbar
           case 218: buf.append("\u016a"); break; // U macron
           case 219: buf.append("\u0179"); break; // Z acute
           case 217: buf.append("\u1e5a"); break; // R underdot
           case 305: buf.append("\u0131"); break; // dotlessi
           case 710: buf.append("\u1e47"); break; // n underdot
           case 732: buf.append("\u1e49"); break; // n underbar
           case 175: buf.append("\u0304"); break; // macron
           case 728: buf.append("\u0306"); break; // breve
           case 729: buf.append("\u1e25"); break; // h underdot
           case 730: buf.append("\u012d"); break; // i breve
           case 184: buf.append("\u0327"); break; // cedilla
           case 733: buf.append("\u030b"); break; // hungarumlaut
           case 731: buf.append("\u0328"); break; // ogonek
           case 711: buf.append("\u030c"); break; // caron
           case 199: buf.append("\u012b\u0303"); break; // imacron tilde
           case 8226: buf.append("\u1e5d"); break; // runderdot macron
           case 8482: buf.append("\u016b\0306"); break; // umacron breve
           case 8804: buf.append("\u0101\u0301"); break; // amacron acute
           case 8805: buf.append("\u016b\u0301"); break; // umacron acute
           case 8719: buf.append("\u0113\u0301"); break; // emacron acute
           case 170: buf.append("\u0113\u0300"); break; // emacron breve
           case 186: buf.append("\u014d\u0300"); break; // omacron breve
           case 161: buf.append("\u0101\u0306"); break; // amacron breve
           case 8710: buf.append("\u0101\u0303"); break; // amacron tilde
           case 171: buf.append("\u012b\u0301"); break; // imacron acute
           case 8260: buf.append("\u1e00"); break; // runderdotmacron acute
           case 183: buf.append("\u1e5b\u0301"); break; // runderdot acute
           case 8240: buf.append("\u012b\u0306"); break; // imacron breve
           case 63743: buf.append("\u016b\u0303"); break; // umacron tilde
           default: buf.append(c); break;
         }
       }
       return buf.toString();
     }
   
   
 }  }
   

Removed from v.1.55  
changed lines
  Added in v.1.59


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>