From 61fee9013d3138be5756ad1b0f7d43229c2f2480 Mon Sep 17 00:00:00 2001 From: Ram Viswanadha Date: Thu, 20 Jun 2002 20:41:53 +0000 Subject: [PATCH] ICU-1923 update UScript to Unicode 3.2 script names and use uprops.dat instead of hard coded values X-SVN-Rev: 8910 --- icu4j/src/com/ibm/icu/lang/UScript.java | 849 ++++-------------------- 1 file changed, 138 insertions(+), 711 deletions(-) diff --git a/icu4j/src/com/ibm/icu/lang/UScript.java b/icu4j/src/com/ibm/icu/lang/UScript.java index 6bd1a18b533..a3135378e06 100755 --- a/icu4j/src/com/ibm/icu/lang/UScript.java +++ b/icu4j/src/com/ibm/icu/lang/UScript.java @@ -9,6 +9,7 @@ package com.ibm.icu.lang; import com.ibm.icu.impl.ICULocaleData; import com.ibm.icu.impl.LocaleUtility; +import com.ibm.icu.impl.UCharacterProperty; import java.util.ResourceBundle; import java.util.Locale; @@ -70,673 +71,132 @@ public final class UScript { public static final int TIBETAN = 39; /* Tibt */ public static final int UCAS = 40; /* Cans */ public static final int YI = 41; /* Yiii */ - public static final int CODE_LIMIT = 42; + public static final int TAGALOG = 42; /* Tglg */ + public static final int HANUNOO = 43; /* Hano */ + public static final int BUHID = 44; /* Buhd */ + public static final int TAGBANWA = 45; /* Tagb */ + public static final int CODE_LIMIT = 46; - private static final String scriptNames[]={ - "ARABIC", /* ARABIC */ - "ARMENIAN", /* ARMENIAN */ - "BENGALI", /* BENGALI */ - "BOPOMOFO", /* BOPOMOFO */ - "CANADIAN-ABORIGINAL", /* UCAS */ - "CHEROKEE", /* CHEROKEE */ - "COMMON", /* COMMON */ - "CYRILLIC", /* CYRILLIC */ - "DESERET", /* DESERET */ - "DEVANAGARI", /* DEVANAGARI */ - "ETHIOPIC", /* ETHIOPIC */ - "GEORGIAN", /* GEORGIAN */ - "GOTHIC", /* GOTHIC */ - "GREEK", /* GREEK */ - "GUJARATI", /* GUJARATI */ - "GURMUKHI", /* GURMUKHI */ - "HAN", /* HAN */ - "HANGUL", /* HANGUL */ - "HEBREW", /* HEBREW */ - "HIRAGANA", /* HIRAGANA */ - "INHERITED", /* INHERITED */ - "KANNADA", /* KANNADA */ - "KATAKANA", /* KATAKANA */ - "KHMER", /* KHMER */ - "LATIN", /* LATIN */ - "MALAYALAM", /* MALAYALAM */ - "MONGOLIAN", /* MONGOLIAN */ - "MYANMAR", /* MYANMAR */ - "OGHAM", /* OGHAM */ - "OLD-ITALIC", /* OLD_ITALIC */ - "ORIYA", /* ORIYA */ - "RUNIC", /* RUNIC */ - "SINHALA", /* SINHALA */ - "SYRIAC", /* SYRIAC */ - "TAMIL", /* TAMIL */ - "TELUGU", /* TELUGU */ - "THAANA", /* THANA */ - "THAI", /* THAI */ - "TIBETAN", /* TIBETAN */ - "UCAS", /* UCAS */ - "YI", /* YI */ - - }; - - private static final String scriptAbbr[]= { - "Arab", /* ARABIC */ - "Armn", /* ARMENIAN */ - "Beng", /* BENGALI */ - "Bopo", /* BOPOMOFO */ - "Cans", /* UCAS */ - "Cher", /* CHEROKEE */ - "Cyrl", /* CYRILLIC */ - /* "Cyrs", */ /* CYRILLIC */ - "Deva", /* DEVANAGARI */ - "Dsrt", /* DESERET */ - "Ethi", /* ETHIOPIC */ - /* "Geoa", */ /* GEORGIAN */ - /* "Geon", */ /* GEORGIAN */ - "Geor", /* GEORGIAN */ - "Goth", /* GOTHIC */ - "Grek", /* GREEK */ - "Gujr", /* GUJARATI */ - "Guru", /* GURMUKHI */ - "Hang", /* HANGUL */ - "Hani", /* HAN */ - "Hebr", /* HEBREW */ - "Hira", /* HIRAGANA */ - "Ital", /* OLD_ITALIC */ - "Kana", /* KATAKANA */ - "Khmr", /* KHMER */ - "Knda", /* KANNADA */ - "Lao", /* LAO */ - /* "Laoo", */ /* LAO */ - /* "Latf", */ /* LATIN */ - /* "Latg", */ /* LATIN */ - "Latn", /* LATIN */ - "Mlym", /* MALAYALAM */ - "Mong", /* MONGOLIAN */ - "Mymr", /* MYANMAR */ - "Ogam", /* OGHAM */ - "Orya", /* ORIYA */ - "Qaac", /* COPTIC */ - "Qaai", /* INHERITED */ - "Runr", /* RUNIC */ - "Sinh", /* SINHALA */ - "Syrc", /* SYRIAC */ - /* "Syre", */ /* SYRIAC */ - /* "Syrj", */ /* SYRIAC */ - /* "Syrn", */ /* SYRIAC */ - "Taml", /* TAMIL */ - "Telu", /* TELUGU */ - "Thaa", /* THANA */ - "Thai", /* THAI */ - "Tibt", /* TIBETAN */ - "Yiii", /* YI */ - "Zyyy", /* COMMON */ - }; - - - private static final int scriptNameCodes[]= { - ARABIC , - ARMENIAN , - BENGALI , - BOPOMOFO , - UCAS , - CHEROKEE , - COMMON , - CYRILLIC , - DESERET , - DEVANAGARI , - ETHIOPIC , - GEORGIAN , - GOTHIC , - GREEK , - GUJARATI , - GURMUKHI , - HAN , - HANGUL , - HEBREW , - HIRAGANA , - INHERITED , - KANNADA , - KATAKANA , - KHMER , - LATIN , - MALAYALAM , - MONGOLIAN , - MYANMAR , - OGHAM , - OLD_ITALIC , - ORIYA , - RUNIC , - SINHALA , - SYRIAC , - TAMIL , - TELUGU , - THAANA , - THAI , - TIBETAN , - UCAS , - YI - }; - - - private static final int scriptAbbrCodes[] = { - ARABIC , - ARMENIAN , - BENGALI , - BOPOMOFO , - UCAS , - CHEROKEE , - CYRILLIC , - /* CYRILLIC , */ - DEVANAGARI , - DESERET , - ETHIOPIC , - /* GEORGIAN , */ - /* GEORGIAN , */ - GEORGIAN , - GOTHIC , - GREEK , - GUJARATI , - GURMUKHI , - HANGUL , - HAN , - HEBREW , - HIRAGANA , - OLD_ITALIC , - KATAKANA , - KHMER , - KANNADA , - LAO , - /* LAO , */ - /* LATIN , */ - /* LATIN , */ - LATIN , - MALAYALAM , - MONGOLIAN , - MYANMAR , - OGHAM , - ORIYA , - COPTIC , - INHERITED , - RUNIC , - SINHALA , - /* SYRIAC , */ - /* SYRIAC , */ - /* SYRIAC , */ - SYRIAC , - TAMIL , - TELUGU , - THAANA , - THAI , - TIBETAN , - YI , - COMMON , - }; - - /********************************************************** - * - * WARNING: The below map is machine generated - * by genscrpt after parsing Scripts.txt, - * plese donot edit unless you know what you are doing - * - * TODO: Remove after merging script names to uprops.dat - * - ********************************************************** - */ - private static final class UScriptCodeMap { - int firstCodepoint; - int lastCodepoint; - int scriptCode; - public UScriptCodeMap(int firstCp, int lastCp, int code){ - firstCodepoint = firstCp; - lastCodepoint = lastCp; - scriptCode = code ; + private static final class NameCodePair{ + String name; + int code; + private NameCodePair(String str, int cd){ + name = str; + code=cd; } - }; + } - private static final UScriptCodeMap[] scriptCodeIndex = { - new UScriptCodeMap(0x00000000, 0x00000000, COMMON) , - new UScriptCodeMap(0x00000041, 0x0000005A, LATIN ) , - new UScriptCodeMap(0x00000061, 0x0000007A, LATIN ) , - new UScriptCodeMap(0x000000AA, 0x000000AA, LATIN ) , - new UScriptCodeMap(0x000000B5, 0x000000B5, GREEK ) , - new UScriptCodeMap(0x000000BA, 0x000000BA, LATIN ) , - new UScriptCodeMap(0x000000C0, 0x000000D6, LATIN ) , - new UScriptCodeMap(0x000000D8, 0x000000F6, LATIN ) , - new UScriptCodeMap(0x000000F8, 0x000001BA, LATIN ) , - new UScriptCodeMap(0x000001BB, 0x000001BB, LATIN ) , - new UScriptCodeMap(0x000001BC, 0x000001BF, LATIN ) , - new UScriptCodeMap(0x000001C0, 0x000001C3, LATIN ) , - new UScriptCodeMap(0x000001C4, 0x0000021F, LATIN ) , - new UScriptCodeMap(0x00000222, 0x00000233, LATIN ) , - new UScriptCodeMap(0x00000250, 0x000002AD, LATIN ) , - new UScriptCodeMap(0x000002B0, 0x000002B8, LATIN ) , - new UScriptCodeMap(0x000002E0, 0x000002E4, LATIN ) , - new UScriptCodeMap(0x00000300, 0x0000034E, INHERITED ) , - new UScriptCodeMap(0x00000360, 0x00000362, INHERITED ) , - new UScriptCodeMap(0x0000037A, 0x0000037A, GREEK ) , - new UScriptCodeMap(0x00000386, 0x00000386, GREEK ) , - new UScriptCodeMap(0x00000388, 0x0000038A, GREEK ) , - new UScriptCodeMap(0x0000038C, 0x0000038C, GREEK ) , - new UScriptCodeMap(0x0000038E, 0x000003A1, GREEK ) , - new UScriptCodeMap(0x000003A3, 0x000003CE, GREEK ) , - new UScriptCodeMap(0x000003D0, 0x000003D7, GREEK ) , - new UScriptCodeMap(0x000003DA, 0x000003F5, GREEK ) , - new UScriptCodeMap(0x00000400, 0x00000481, CYRILLIC ) , - new UScriptCodeMap(0x00000483, 0x00000486, CYRILLIC ) , - new UScriptCodeMap(0x00000488, 0x00000489, INHERITED ) , - new UScriptCodeMap(0x0000048C, 0x000004C4, CYRILLIC ) , - new UScriptCodeMap(0x000004C7, 0x000004C8, CYRILLIC ) , - new UScriptCodeMap(0x000004CB, 0x000004CC, CYRILLIC ) , - new UScriptCodeMap(0x000004D0, 0x000004F5, CYRILLIC ) , - new UScriptCodeMap(0x000004F8, 0x000004F9, CYRILLIC ) , - new UScriptCodeMap(0x00000531, 0x00000556, ARMENIAN ) , - new UScriptCodeMap(0x00000559, 0x00000559, ARMENIAN ) , - new UScriptCodeMap(0x00000561, 0x00000587, ARMENIAN ) , - new UScriptCodeMap(0x00000591, 0x000005A1, INHERITED ) , - new UScriptCodeMap(0x000005A3, 0x000005B9, INHERITED ) , - new UScriptCodeMap(0x000005BB, 0x000005BD, INHERITED ) , - new UScriptCodeMap(0x000005BF, 0x000005BF, INHERITED ) , - new UScriptCodeMap(0x000005C1, 0x000005C2, INHERITED ) , - new UScriptCodeMap(0x000005C4, 0x000005C4, INHERITED ) , - new UScriptCodeMap(0x000005D0, 0x000005EA, HEBREW ) , - new UScriptCodeMap(0x000005F0, 0x000005F2, HEBREW ) , - new UScriptCodeMap(0x00000621, 0x0000063A, ARABIC ) , - new UScriptCodeMap(0x00000641, 0x0000064A, ARABIC ) , - new UScriptCodeMap(0x0000064B, 0x00000655, INHERITED ) , - new UScriptCodeMap(0x00000670, 0x00000670, INHERITED ) , - new UScriptCodeMap(0x00000671, 0x000006D3, ARABIC ) , - new UScriptCodeMap(0x000006D5, 0x000006D5, ARABIC ) , - new UScriptCodeMap(0x000006D6, 0x000006DC, INHERITED ) , - new UScriptCodeMap(0x000006DD, 0x000006DE, INHERITED ) , - new UScriptCodeMap(0x000006DF, 0x000006E4, INHERITED ) , - new UScriptCodeMap(0x000006E5, 0x000006E6, ARABIC ) , - new UScriptCodeMap(0x000006E7, 0x000006E8, INHERITED ) , - new UScriptCodeMap(0x000006EA, 0x000006ED, INHERITED ) , - new UScriptCodeMap(0x000006FA, 0x000006FC, ARABIC ) , - new UScriptCodeMap(0x00000710, 0x00000710, SYRIAC ) , - new UScriptCodeMap(0x00000711, 0x00000711, SYRIAC ) , - new UScriptCodeMap(0x00000712, 0x0000072C, SYRIAC ) , - new UScriptCodeMap(0x00000730, 0x0000074A, SYRIAC ) , - new UScriptCodeMap(0x00000780, 0x000007A5, THAANA ) , - new UScriptCodeMap(0x000007A6, 0x000007B0, THAANA ) , - new UScriptCodeMap(0x00000901, 0x00000902, DEVANAGARI ) , - new UScriptCodeMap(0x00000903, 0x00000903, DEVANAGARI ) , - new UScriptCodeMap(0x00000905, 0x00000939, DEVANAGARI ) , - new UScriptCodeMap(0x0000093C, 0x0000093C, DEVANAGARI ) , - new UScriptCodeMap(0x0000093D, 0x0000093D, DEVANAGARI ) , - new UScriptCodeMap(0x0000093E, 0x00000940, DEVANAGARI ) , - new UScriptCodeMap(0x00000941, 0x00000948, DEVANAGARI ) , - new UScriptCodeMap(0x00000949, 0x0000094C, DEVANAGARI ) , - new UScriptCodeMap(0x0000094D, 0x0000094D, DEVANAGARI ) , - new UScriptCodeMap(0x00000950, 0x00000950, DEVANAGARI ) , - new UScriptCodeMap(0x00000951, 0x00000954, DEVANAGARI ) , - new UScriptCodeMap(0x00000958, 0x00000961, DEVANAGARI ) , - new UScriptCodeMap(0x00000962, 0x00000963, DEVANAGARI ) , - new UScriptCodeMap(0x00000966, 0x0000096F, DEVANAGARI ) , - new UScriptCodeMap(0x00000981, 0x00000981, BENGALI ) , - new UScriptCodeMap(0x00000985, 0x0000098C, BENGALI ) , - new UScriptCodeMap(0x0000098F, 0x00000990, BENGALI ) , - new UScriptCodeMap(0x00000993, 0x000009A8, BENGALI ) , - new UScriptCodeMap(0x000009AA, 0x000009B0, BENGALI ) , - new UScriptCodeMap(0x000009B2, 0x000009B2, BENGALI ) , - new UScriptCodeMap(0x000009B6, 0x000009B9, BENGALI ) , - new UScriptCodeMap(0x000009BC, 0x000009BC, BENGALI ) , - new UScriptCodeMap(0x000009BE, 0x000009C0, BENGALI ) , - new UScriptCodeMap(0x000009C1, 0x000009C4, BENGALI ) , - new UScriptCodeMap(0x000009C7, 0x000009C8, BENGALI ) , - new UScriptCodeMap(0x000009CB, 0x000009CC, BENGALI ) , - new UScriptCodeMap(0x000009CD, 0x000009CD, BENGALI ) , - new UScriptCodeMap(0x000009D7, 0x000009D7, BENGALI ) , - new UScriptCodeMap(0x000009DC, 0x000009DD, BENGALI ) , - new UScriptCodeMap(0x000009DF, 0x000009E1, BENGALI ) , - new UScriptCodeMap(0x000009E2, 0x000009E3, BENGALI ) , - new UScriptCodeMap(0x000009E6, 0x000009EF, BENGALI ) , - new UScriptCodeMap(0x000009F0, 0x000009F1, BENGALI ) , - new UScriptCodeMap(0x00000A02, 0x00000A02, GURMUKHI ) , - new UScriptCodeMap(0x00000A05, 0x00000A0A, GURMUKHI ) , - new UScriptCodeMap(0x00000A0F, 0x00000A10, GURMUKHI ) , - new UScriptCodeMap(0x00000A13, 0x00000A28, GURMUKHI ) , - new UScriptCodeMap(0x00000A2A, 0x00000A30, GURMUKHI ) , - new UScriptCodeMap(0x00000A32, 0x00000A33, GURMUKHI ) , - new UScriptCodeMap(0x00000A35, 0x00000A36, GURMUKHI ) , - new UScriptCodeMap(0x00000A38, 0x00000A39, GURMUKHI ) , - new UScriptCodeMap(0x00000A3C, 0x00000A3C, GURMUKHI ) , - new UScriptCodeMap(0x00000A3E, 0x00000A40, GURMUKHI ) , - new UScriptCodeMap(0x00000A41, 0x00000A42, GURMUKHI ) , - new UScriptCodeMap(0x00000A47, 0x00000A48, GURMUKHI ) , - new UScriptCodeMap(0x00000A4B, 0x00000A4D, GURMUKHI ) , - new UScriptCodeMap(0x00000A59, 0x00000A5C, GURMUKHI ) , - new UScriptCodeMap(0x00000A5E, 0x00000A5E, GURMUKHI ) , - new UScriptCodeMap(0x00000A66, 0x00000A6F, GURMUKHI ) , - new UScriptCodeMap(0x00000A70, 0x00000A71, GURMUKHI ) , - new UScriptCodeMap(0x00000A72, 0x00000A74, GURMUKHI ) , - new UScriptCodeMap(0x00000A81, 0x00000A82, GUJARATI ) , - new UScriptCodeMap(0x00000A83, 0x00000A83, GUJARATI ) , - new UScriptCodeMap(0x00000A85, 0x00000A8B, GUJARATI ) , - new UScriptCodeMap(0x00000A8D, 0x00000A8D, GUJARATI ) , - new UScriptCodeMap(0x00000A8F, 0x00000A91, GUJARATI ) , - new UScriptCodeMap(0x00000A93, 0x00000AA8, GUJARATI ) , - new UScriptCodeMap(0x00000AAA, 0x00000AB0, GUJARATI ) , - new UScriptCodeMap(0x00000AB2, 0x00000AB3, GUJARATI ) , - new UScriptCodeMap(0x00000AB5, 0x00000AB9, GUJARATI ) , - new UScriptCodeMap(0x00000ABC, 0x00000ABC, GUJARATI ) , - new UScriptCodeMap(0x00000ABD, 0x00000ABD, GUJARATI ) , - new UScriptCodeMap(0x00000ABE, 0x00000AC0, GUJARATI ) , - new UScriptCodeMap(0x00000AC1, 0x00000AC5, GUJARATI ) , - new UScriptCodeMap(0x00000AC7, 0x00000AC8, GUJARATI ) , - new UScriptCodeMap(0x00000AC9, 0x00000AC9, GUJARATI ) , - new UScriptCodeMap(0x00000ACB, 0x00000ACC, GUJARATI ) , - new UScriptCodeMap(0x00000ACD, 0x00000ACD, GUJARATI ) , - new UScriptCodeMap(0x00000AD0, 0x00000AD0, GUJARATI ) , - new UScriptCodeMap(0x00000AE0, 0x00000AE0, GUJARATI ) , - new UScriptCodeMap(0x00000AE6, 0x00000AEF, GUJARATI ) , - new UScriptCodeMap(0x00000B01, 0x00000B01, ORIYA ) , - new UScriptCodeMap(0x00000B02, 0x00000B03, ORIYA ) , - new UScriptCodeMap(0x00000B05, 0x00000B0C, ORIYA ) , - new UScriptCodeMap(0x00000B0F, 0x00000B10, ORIYA ) , - new UScriptCodeMap(0x00000B13, 0x00000B28, ORIYA ) , - new UScriptCodeMap(0x00000B2A, 0x00000B30, ORIYA ) , - new UScriptCodeMap(0x00000B32, 0x00000B33, ORIYA ) , - new UScriptCodeMap(0x00000B36, 0x00000B39, ORIYA ) , - new UScriptCodeMap(0x00000B3C, 0x00000B3C, ORIYA ) , - new UScriptCodeMap(0x00000B3D, 0x00000B3D, ORIYA ) , - new UScriptCodeMap(0x00000B3E, 0x00000B3E, ORIYA ) , - new UScriptCodeMap(0x00000B3F, 0x00000B3F, ORIYA ) , - new UScriptCodeMap(0x00000B40, 0x00000B40, ORIYA ) , - new UScriptCodeMap(0x00000B41, 0x00000B43, ORIYA ) , - new UScriptCodeMap(0x00000B47, 0x00000B48, ORIYA ) , - new UScriptCodeMap(0x00000B4B, 0x00000B4C, ORIYA ) , - new UScriptCodeMap(0x00000B4D, 0x00000B4D, ORIYA ) , - new UScriptCodeMap(0x00000B56, 0x00000B56, ORIYA ) , - new UScriptCodeMap(0x00000B57, 0x00000B57, ORIYA ) , - new UScriptCodeMap(0x00000B5C, 0x00000B5D, ORIYA ) , - new UScriptCodeMap(0x00000B5F, 0x00000B61, ORIYA ) , - new UScriptCodeMap(0x00000B66, 0x00000B6F, ORIYA ) , - new UScriptCodeMap(0x00000B82, 0x00000B82, TAMIL ) , - new UScriptCodeMap(0x00000B83, 0x00000B83, TAMIL ) , - new UScriptCodeMap(0x00000B85, 0x00000B8A, TAMIL ) , - new UScriptCodeMap(0x00000B8E, 0x00000B90, TAMIL ) , - new UScriptCodeMap(0x00000B92, 0x00000B95, TAMIL ) , - new UScriptCodeMap(0x00000B99, 0x00000B9A, TAMIL ) , - new UScriptCodeMap(0x00000B9C, 0x00000B9C, TAMIL ) , - new UScriptCodeMap(0x00000B9E, 0x00000B9F, TAMIL ) , - new UScriptCodeMap(0x00000BA3, 0x00000BA4, TAMIL ) , - new UScriptCodeMap(0x00000BA8, 0x00000BAA, TAMIL ) , - new UScriptCodeMap(0x00000BAE, 0x00000BB5, TAMIL ) , - new UScriptCodeMap(0x00000BB7, 0x00000BB9, TAMIL ) , - new UScriptCodeMap(0x00000BBE, 0x00000BBF, TAMIL ) , - new UScriptCodeMap(0x00000BC0, 0x00000BC0, TAMIL ) , - new UScriptCodeMap(0x00000BC1, 0x00000BC2, TAMIL ) , - new UScriptCodeMap(0x00000BC6, 0x00000BC8, TAMIL ) , - new UScriptCodeMap(0x00000BCA, 0x00000BCC, TAMIL ) , - new UScriptCodeMap(0x00000BCD, 0x00000BCD, TAMIL ) , - new UScriptCodeMap(0x00000BD7, 0x00000BD7, TAMIL ) , - new UScriptCodeMap(0x00000BE7, 0x00000BEF, TAMIL ) , - new UScriptCodeMap(0x00000BF0, 0x00000BF2, TAMIL ) , - new UScriptCodeMap(0x00000C01, 0x00000C03, TELUGU ) , - new UScriptCodeMap(0x00000C05, 0x00000C0C, TELUGU ) , - new UScriptCodeMap(0x00000C0E, 0x00000C10, TELUGU ) , - new UScriptCodeMap(0x00000C12, 0x00000C28, TELUGU ) , - new UScriptCodeMap(0x00000C2A, 0x00000C33, TELUGU ) , - new UScriptCodeMap(0x00000C35, 0x00000C39, TELUGU ) , - new UScriptCodeMap(0x00000C3E, 0x00000C40, TELUGU ) , - new UScriptCodeMap(0x00000C41, 0x00000C44, TELUGU ) , - new UScriptCodeMap(0x00000C46, 0x00000C48, TELUGU ) , - new UScriptCodeMap(0x00000C4A, 0x00000C4D, TELUGU ) , - new UScriptCodeMap(0x00000C55, 0x00000C56, TELUGU ) , - new UScriptCodeMap(0x00000C60, 0x00000C61, TELUGU ) , - new UScriptCodeMap(0x00000C66, 0x00000C6F, TELUGU ) , - new UScriptCodeMap(0x00000C82, 0x00000C83, KANNADA ) , - new UScriptCodeMap(0x00000C85, 0x00000C8C, KANNADA ) , - new UScriptCodeMap(0x00000C8E, 0x00000C90, KANNADA ) , - new UScriptCodeMap(0x00000C92, 0x00000CA8, KANNADA ) , - new UScriptCodeMap(0x00000CAA, 0x00000CB3, KANNADA ) , - new UScriptCodeMap(0x00000CB5, 0x00000CB9, KANNADA ) , - new UScriptCodeMap(0x00000CBE, 0x00000CBE, KANNADA ) , - new UScriptCodeMap(0x00000CBF, 0x00000CBF, KANNADA ) , - new UScriptCodeMap(0x00000CC0, 0x00000CC4, KANNADA ) , - new UScriptCodeMap(0x00000CC6, 0x00000CC6, KANNADA ) , - new UScriptCodeMap(0x00000CC7, 0x00000CC8, KANNADA ) , - new UScriptCodeMap(0x00000CCA, 0x00000CCB, KANNADA ) , - new UScriptCodeMap(0x00000CCC, 0x00000CCD, KANNADA ) , - new UScriptCodeMap(0x00000CD5, 0x00000CD6, KANNADA ) , - new UScriptCodeMap(0x00000CDE, 0x00000CDE, KANNADA ) , - new UScriptCodeMap(0x00000CE0, 0x00000CE1, KANNADA ) , - new UScriptCodeMap(0x00000CE6, 0x00000CEF, KANNADA ) , - new UScriptCodeMap(0x00000D02, 0x00000D03, MALAYALAM ) , - new UScriptCodeMap(0x00000D05, 0x00000D0C, MALAYALAM ) , - new UScriptCodeMap(0x00000D0E, 0x00000D10, MALAYALAM ) , - new UScriptCodeMap(0x00000D12, 0x00000D28, MALAYALAM ) , - new UScriptCodeMap(0x00000D2A, 0x00000D39, MALAYALAM ) , - new UScriptCodeMap(0x00000D3E, 0x00000D40, MALAYALAM ) , - new UScriptCodeMap(0x00000D41, 0x00000D43, MALAYALAM ) , - new UScriptCodeMap(0x00000D46, 0x00000D48, MALAYALAM ) , - new UScriptCodeMap(0x00000D4A, 0x00000D4C, MALAYALAM ) , - new UScriptCodeMap(0x00000D4D, 0x00000D4D, MALAYALAM ) , - new UScriptCodeMap(0x00000D57, 0x00000D57, MALAYALAM ) , - new UScriptCodeMap(0x00000D60, 0x00000D61, MALAYALAM ) , - new UScriptCodeMap(0x00000D66, 0x00000D6F, MALAYALAM ) , - new UScriptCodeMap(0x00000D82, 0x00000D83, SINHALA ) , - new UScriptCodeMap(0x00000D85, 0x00000D96, SINHALA ) , - new UScriptCodeMap(0x00000D9A, 0x00000DB1, SINHALA ) , - new UScriptCodeMap(0x00000DB3, 0x00000DBB, SINHALA ) , - new UScriptCodeMap(0x00000DBD, 0x00000DBD, SINHALA ) , - new UScriptCodeMap(0x00000DC0, 0x00000DC6, SINHALA ) , - new UScriptCodeMap(0x00000DCA, 0x00000DCA, SINHALA ) , - new UScriptCodeMap(0x00000DCF, 0x00000DD1, SINHALA ) , - new UScriptCodeMap(0x00000DD2, 0x00000DD4, SINHALA ) , - new UScriptCodeMap(0x00000DD6, 0x00000DD6, SINHALA ) , - new UScriptCodeMap(0x00000DD8, 0x00000DDF, SINHALA ) , - new UScriptCodeMap(0x00000DF2, 0x00000DF3, SINHALA ) , - new UScriptCodeMap(0x00000E01, 0x00000E30, THAI ) , - new UScriptCodeMap(0x00000E31, 0x00000E31, THAI ) , - new UScriptCodeMap(0x00000E32, 0x00000E33, THAI ) , - new UScriptCodeMap(0x00000E34, 0x00000E3A, THAI ) , - new UScriptCodeMap(0x00000E40, 0x00000E45, THAI ) , - new UScriptCodeMap(0x00000E46, 0x00000E46, THAI ) , - new UScriptCodeMap(0x00000E47, 0x00000E4E, THAI ) , - new UScriptCodeMap(0x00000E50, 0x00000E59, THAI ) , - new UScriptCodeMap(0x00000E81, 0x00000E82, LAO ) , - new UScriptCodeMap(0x00000E84, 0x00000E84, LAO ) , - new UScriptCodeMap(0x00000E87, 0x00000E88, LAO ) , - new UScriptCodeMap(0x00000E8A, 0x00000E8A, LAO ) , - new UScriptCodeMap(0x00000E8D, 0x00000E8D, LAO ) , - new UScriptCodeMap(0x00000E94, 0x00000E97, LAO ) , - new UScriptCodeMap(0x00000E99, 0x00000E9F, LAO ) , - new UScriptCodeMap(0x00000EA1, 0x00000EA3, LAO ) , - new UScriptCodeMap(0x00000EA5, 0x00000EA5, LAO ) , - new UScriptCodeMap(0x00000EA7, 0x00000EA7, LAO ) , - new UScriptCodeMap(0x00000EAA, 0x00000EAB, LAO ) , - new UScriptCodeMap(0x00000EAD, 0x00000EB0, LAO ) , - new UScriptCodeMap(0x00000EB1, 0x00000EB1, LAO ) , - new UScriptCodeMap(0x00000EB2, 0x00000EB3, LAO ) , - new UScriptCodeMap(0x00000EB4, 0x00000EB9, LAO ) , - new UScriptCodeMap(0x00000EBB, 0x00000EBC, LAO ) , - new UScriptCodeMap(0x00000EBD, 0x00000EBD, LAO ) , - new UScriptCodeMap(0x00000EC0, 0x00000EC4, LAO ) , - new UScriptCodeMap(0x00000EC6, 0x00000EC6, LAO ) , - new UScriptCodeMap(0x00000EC8, 0x00000ECD, LAO ) , - new UScriptCodeMap(0x00000ED0, 0x00000ED9, LAO ) , - new UScriptCodeMap(0x00000EDC, 0x00000EDD, LAO ) , - new UScriptCodeMap(0x00000F00, 0x00000F00, TIBETAN ) , - new UScriptCodeMap(0x00000F18, 0x00000F19, TIBETAN ) , - new UScriptCodeMap(0x00000F20, 0x00000F29, TIBETAN ) , - new UScriptCodeMap(0x00000F2A, 0x00000F33, TIBETAN ) , - new UScriptCodeMap(0x00000F35, 0x00000F35, TIBETAN ) , - new UScriptCodeMap(0x00000F37, 0x00000F37, TIBETAN ) , - new UScriptCodeMap(0x00000F39, 0x00000F39, TIBETAN ) , - new UScriptCodeMap(0x00000F40, 0x00000F47, TIBETAN ) , - new UScriptCodeMap(0x00000F49, 0x00000F6A, TIBETAN ) , - new UScriptCodeMap(0x00000F71, 0x00000F7E, TIBETAN ) , - new UScriptCodeMap(0x00000F7F, 0x00000F7F, TIBETAN ) , - new UScriptCodeMap(0x00000F80, 0x00000F84, TIBETAN ) , - new UScriptCodeMap(0x00000F86, 0x00000F87, TIBETAN ) , - new UScriptCodeMap(0x00000F88, 0x00000F8B, TIBETAN ) , - new UScriptCodeMap(0x00000F90, 0x00000F97, TIBETAN ) , - new UScriptCodeMap(0x00000F99, 0x00000FBC, TIBETAN ) , - new UScriptCodeMap(0x00000FC6, 0x00000FC6, TIBETAN ) , - new UScriptCodeMap(0x00001000, 0x00001021, MYANMAR ) , - new UScriptCodeMap(0x00001023, 0x00001027, MYANMAR ) , - new UScriptCodeMap(0x00001029, 0x0000102A, MYANMAR ) , - new UScriptCodeMap(0x0000102C, 0x0000102C, MYANMAR ) , - new UScriptCodeMap(0x0000102D, 0x00001030, MYANMAR ) , - new UScriptCodeMap(0x00001031, 0x00001031, MYANMAR ) , - new UScriptCodeMap(0x00001032, 0x00001032, MYANMAR ) , - new UScriptCodeMap(0x00001036, 0x00001037, MYANMAR ) , - new UScriptCodeMap(0x00001038, 0x00001038, MYANMAR ) , - new UScriptCodeMap(0x00001039, 0x00001039, MYANMAR ) , - new UScriptCodeMap(0x00001040, 0x00001049, MYANMAR ) , - new UScriptCodeMap(0x00001050, 0x00001055, MYANMAR ) , - new UScriptCodeMap(0x00001056, 0x00001057, MYANMAR ) , - new UScriptCodeMap(0x00001058, 0x00001059, MYANMAR ) , - new UScriptCodeMap(0x000010A0, 0x000010C5, GEORGIAN ) , - new UScriptCodeMap(0x000010D0, 0x000010F6, GEORGIAN ) , - new UScriptCodeMap(0x00001100, 0x00001159, HANGUL ) , - new UScriptCodeMap(0x0000115F, 0x000011A2, HANGUL ) , - new UScriptCodeMap(0x000011A8, 0x000011F9, HANGUL ) , - new UScriptCodeMap(0x00001200, 0x00001206, ETHIOPIC ) , - new UScriptCodeMap(0x00001208, 0x00001246, ETHIOPIC ) , - new UScriptCodeMap(0x00001248, 0x00001248, ETHIOPIC ) , - new UScriptCodeMap(0x0000124A, 0x0000124D, ETHIOPIC ) , - new UScriptCodeMap(0x00001250, 0x00001256, ETHIOPIC ) , - new UScriptCodeMap(0x00001258, 0x00001258, ETHIOPIC ) , - new UScriptCodeMap(0x0000125A, 0x0000125D, ETHIOPIC ) , - new UScriptCodeMap(0x00001260, 0x00001286, ETHIOPIC ) , - new UScriptCodeMap(0x00001288, 0x00001288, ETHIOPIC ) , - new UScriptCodeMap(0x0000128A, 0x0000128D, ETHIOPIC ) , - new UScriptCodeMap(0x00001290, 0x000012AE, ETHIOPIC ) , - new UScriptCodeMap(0x000012B0, 0x000012B0, ETHIOPIC ) , - new UScriptCodeMap(0x000012B2, 0x000012B5, ETHIOPIC ) , - new UScriptCodeMap(0x000012B8, 0x000012BE, ETHIOPIC ) , - new UScriptCodeMap(0x000012C0, 0x000012C0, ETHIOPIC ) , - new UScriptCodeMap(0x000012C2, 0x000012C5, ETHIOPIC ) , - new UScriptCodeMap(0x000012C8, 0x000012CE, ETHIOPIC ) , - new UScriptCodeMap(0x000012D0, 0x000012D6, ETHIOPIC ) , - new UScriptCodeMap(0x000012D8, 0x000012EE, ETHIOPIC ) , - new UScriptCodeMap(0x000012F0, 0x0000130E, ETHIOPIC ) , - new UScriptCodeMap(0x00001310, 0x00001310, ETHIOPIC ) , - new UScriptCodeMap(0x00001312, 0x00001315, ETHIOPIC ) , - new UScriptCodeMap(0x00001318, 0x0000131E, ETHIOPIC ) , - new UScriptCodeMap(0x00001320, 0x00001346, ETHIOPIC ) , - new UScriptCodeMap(0x00001348, 0x0000135A, ETHIOPIC ) , - new UScriptCodeMap(0x00001369, 0x00001371, ETHIOPIC ) , - new UScriptCodeMap(0x00001372, 0x0000137C, ETHIOPIC ) , - new UScriptCodeMap(0x000013A0, 0x000013F4, CHEROKEE ) , - new UScriptCodeMap(0x00001401, 0x0000166C, UCAS ) , - new UScriptCodeMap(0x0000166F, 0x00001676, UCAS ) , - new UScriptCodeMap(0x00001681, 0x0000169A, OGHAM ) , - new UScriptCodeMap(0x000016A0, 0x000016EA, RUNIC ) , - new UScriptCodeMap(0x000016EE, 0x000016F0, RUNIC ) , - new UScriptCodeMap(0x00001780, 0x000017B3, KHMER ) , - new UScriptCodeMap(0x000017B4, 0x000017B6, KHMER ) , - new UScriptCodeMap(0x000017B7, 0x000017BD, KHMER ) , - new UScriptCodeMap(0x000017BE, 0x000017C5, KHMER ) , - new UScriptCodeMap(0x000017C6, 0x000017C6, KHMER ) , - new UScriptCodeMap(0x000017C7, 0x000017C8, KHMER ) , - new UScriptCodeMap(0x000017C9, 0x000017D3, KHMER ) , - new UScriptCodeMap(0x000017E0, 0x000017E9, KHMER ) , - new UScriptCodeMap(0x00001810, 0x00001819, MONGOLIAN ) , - new UScriptCodeMap(0x00001820, 0x00001842, MONGOLIAN ) , - new UScriptCodeMap(0x00001843, 0x00001843, MONGOLIAN ) , - new UScriptCodeMap(0x00001844, 0x00001877, MONGOLIAN ) , - new UScriptCodeMap(0x00001880, 0x000018A8, MONGOLIAN ) , - new UScriptCodeMap(0x000018A9, 0x000018A9, MONGOLIAN ) , - new UScriptCodeMap(0x00001E00, 0x00001E9B, LATIN ) , - new UScriptCodeMap(0x00001EA0, 0x00001EF9, LATIN ) , - new UScriptCodeMap(0x00001F00, 0x00001F15, GREEK ) , - new UScriptCodeMap(0x00001F18, 0x00001F1D, GREEK ) , - new UScriptCodeMap(0x00001F20, 0x00001F45, GREEK ) , - new UScriptCodeMap(0x00001F48, 0x00001F4D, GREEK ) , - new UScriptCodeMap(0x00001F50, 0x00001F57, GREEK ) , - new UScriptCodeMap(0x00001F59, 0x00001F59, GREEK ) , - new UScriptCodeMap(0x00001F5B, 0x00001F5B, GREEK ) , - new UScriptCodeMap(0x00001F5D, 0x00001F5D, GREEK ) , - new UScriptCodeMap(0x00001F5F, 0x00001F7D, GREEK ) , - new UScriptCodeMap(0x00001F80, 0x00001FB4, GREEK ) , - new UScriptCodeMap(0x00001FB6, 0x00001FBC, GREEK ) , - new UScriptCodeMap(0x00001FBE, 0x00001FBE, GREEK ) , - new UScriptCodeMap(0x00001FC2, 0x00001FC4, GREEK ) , - new UScriptCodeMap(0x00001FC6, 0x00001FCC, GREEK ) , - new UScriptCodeMap(0x00001FD0, 0x00001FD3, GREEK ) , - new UScriptCodeMap(0x00001FD6, 0x00001FDB, GREEK ) , - new UScriptCodeMap(0x00001FE0, 0x00001FEC, GREEK ) , - new UScriptCodeMap(0x00001FF2, 0x00001FF4, GREEK ) , - new UScriptCodeMap(0x00001FF6, 0x00001FFC, GREEK ) , - new UScriptCodeMap(0x0000207F, 0x0000207F, LATIN ) , - new UScriptCodeMap(0x000020D0, 0x000020DC, INHERITED ) , - new UScriptCodeMap(0x000020DD, 0x000020E0, INHERITED ) , - new UScriptCodeMap(0x000020E1, 0x000020E1, INHERITED ) , - new UScriptCodeMap(0x000020E2, 0x000020E3, INHERITED ) , - new UScriptCodeMap(0x00002126, 0x00002126, GREEK ) , - new UScriptCodeMap(0x0000212A, 0x0000212B, LATIN ) , - new UScriptCodeMap(0x00002E80, 0x00002E99, HAN ) , - new UScriptCodeMap(0x00002E9B, 0x00002EF3, HAN ) , - new UScriptCodeMap(0x00002F00, 0x00002FD5, HAN ) , - new UScriptCodeMap(0x00003005, 0x00003005, HAN ) , - new UScriptCodeMap(0x00003007, 0x00003007, HAN ) , - new UScriptCodeMap(0x00003021, 0x00003029, HAN ) , - new UScriptCodeMap(0x0000302A, 0x0000302F, INHERITED ) , - new UScriptCodeMap(0x00003038, 0x0000303A, HAN ) , - new UScriptCodeMap(0x00003041, 0x00003094, HIRAGANA ) , - new UScriptCodeMap(0x00003099, 0x0000309A, INHERITED ) , - new UScriptCodeMap(0x0000309D, 0x0000309E, HIRAGANA ) , - new UScriptCodeMap(0x000030A1, 0x000030FA, KATAKANA ) , - new UScriptCodeMap(0x000030FD, 0x000030FE, KATAKANA ) , - new UScriptCodeMap(0x00003105, 0x0000312C, BOPOMOFO ) , - new UScriptCodeMap(0x00003131, 0x0000318E, HANGUL ) , - new UScriptCodeMap(0x000031A0, 0x000031B7, BOPOMOFO ) , - new UScriptCodeMap(0x00003400, 0x00004DB5, HAN ) , - new UScriptCodeMap(0x00004E00, 0x00009FA5, HAN ) , - new UScriptCodeMap(0x0000A000, 0x0000A48C, YI ) , - new UScriptCodeMap(0x0000A490, 0x0000A4A1, YI ) , - new UScriptCodeMap(0x0000A4A4, 0x0000A4B3, YI ) , - new UScriptCodeMap(0x0000A4B5, 0x0000A4C0, YI ) , - new UScriptCodeMap(0x0000A4C2, 0x0000A4C4, YI ) , - new UScriptCodeMap(0x0000A4C6, 0x0000A4C6, YI ) , - new UScriptCodeMap(0x0000AC00, 0x0000D7A3, HANGUL ) , - new UScriptCodeMap(0x0000F900, 0x0000FA2D, HAN ) , - new UScriptCodeMap(0x0000FB00, 0x0000FB06, LATIN ) , - new UScriptCodeMap(0x0000FB13, 0x0000FB17, ARMENIAN ) , - new UScriptCodeMap(0x0000FB1D, 0x0000FB1D, HEBREW ) , - new UScriptCodeMap(0x0000FB1E, 0x0000FB1E, INHERITED ) , - new UScriptCodeMap(0x0000FB1F, 0x0000FB28, HEBREW ) , - new UScriptCodeMap(0x0000FB2A, 0x0000FB36, HEBREW ) , - new UScriptCodeMap(0x0000FB38, 0x0000FB3C, HEBREW ) , - new UScriptCodeMap(0x0000FB3E, 0x0000FB3E, HEBREW ) , - new UScriptCodeMap(0x0000FB40, 0x0000FB41, HEBREW ) , - new UScriptCodeMap(0x0000FB43, 0x0000FB44, HEBREW ) , - new UScriptCodeMap(0x0000FB46, 0x0000FB4F, HEBREW ) , - new UScriptCodeMap(0x0000FB50, 0x0000FBB1, ARABIC ) , - new UScriptCodeMap(0x0000FBD3, 0x0000FD3D, ARABIC ) , - new UScriptCodeMap(0x0000FD50, 0x0000FD8F, ARABIC ) , - new UScriptCodeMap(0x0000FD92, 0x0000FDC7, ARABIC ) , - new UScriptCodeMap(0x0000FDF0, 0x0000FDFB, ARABIC ) , - new UScriptCodeMap(0x0000FE20, 0x0000FE23, INHERITED ) , - new UScriptCodeMap(0x0000FE70, 0x0000FE72, ARABIC ) , - new UScriptCodeMap(0x0000FE74, 0x0000FE74, ARABIC ) , - new UScriptCodeMap(0x0000FE76, 0x0000FEFC, ARABIC ) , - new UScriptCodeMap(0x0000FF21, 0x0000FF3A, LATIN ) , - new UScriptCodeMap(0x0000FF41, 0x0000FF5A, LATIN ) , - new UScriptCodeMap(0x0000FF66, 0x0000FF6F, KATAKANA ) , - new UScriptCodeMap(0x0000FF71, 0x0000FF9D, KATAKANA ) , - new UScriptCodeMap(0x0000FFA0, 0x0000FFBE, HANGUL ) , - new UScriptCodeMap(0x0000FFC2, 0x0000FFC7, HANGUL ) , - new UScriptCodeMap(0x0000FFCA, 0x0000FFCF, HANGUL ) , - new UScriptCodeMap(0x0000FFD2, 0x0000FFD7, HANGUL ) , - new UScriptCodeMap(0x0000FFDA, 0x0000FFDC, HANGUL ) , - new UScriptCodeMap(0x00010300, 0x0001031E, OLD_ITALIC ) , - new UScriptCodeMap(0x00010330, 0x00010349, GOTHIC ) , - new UScriptCodeMap(0x0001034A, 0x0001034A, GOTHIC ) , - new UScriptCodeMap(0x00010400, 0x00010425, DESERET ) , - new UScriptCodeMap(0x00010428, 0x0001044D, DESERET ) , - new UScriptCodeMap(0x0001D167, 0x0001D169, INHERITED ) , - new UScriptCodeMap(0x0001D17B, 0x0001D182, INHERITED ) , - new UScriptCodeMap(0x0001D185, 0x0001D18B, INHERITED ) , - new UScriptCodeMap(0x0001D1AA, 0x0001D1AD, INHERITED ) , - new UScriptCodeMap(0x00020000, 0x0002A6D6, HAN ) , + private static final NameCodePair[] scriptNames={ + new NameCodePair( "ARABIC", ARABIC ), + new NameCodePair( "ARMENIAN", ARMENIAN ), + new NameCodePair( "BENGALI", BENGALI ), + new NameCodePair( "BOPOMOFO", BOPOMOFO ), + new NameCodePair( "BUHID", BUHID ), + new NameCodePair( "CANADIAN_ABORIGINAL", UCAS ), + new NameCodePair( "CHEROKEE", CHEROKEE ), + new NameCodePair( "COMMON", COMMON ), + new NameCodePair( "CYRILLIC", CYRILLIC ), + new NameCodePair( "DESERET", DESERET ), + new NameCodePair( "DEVANAGARI", DEVANAGARI ), + new NameCodePair( "ETHIOPIC", ETHIOPIC ), + new NameCodePair( "GEORGIAN", GEORGIAN ), + new NameCodePair( "GOTHIC", GOTHIC ), + new NameCodePair( "GREEK", GREEK ), + new NameCodePair( "GUJARATI", GUJARATI ), + new NameCodePair( "GURMUKHI", GURMUKHI ), + new NameCodePair( "HAN", HAN ), + new NameCodePair( "HANGUL", HANGUL ), + new NameCodePair( "HANUNOO", HANUNOO ), + new NameCodePair( "HEBREW", HEBREW ), + new NameCodePair( "HIRAGANA", HIRAGANA ), + new NameCodePair( "INHERITED", INHERITED ), + new NameCodePair( "KANNADA", KANNADA ), + new NameCodePair( "KATAKANA", KATAKANA ), + new NameCodePair( "KHMER", KHMER ), + new NameCodePair( "LATIN", LATIN ), + new NameCodePair( "MALAYALAM", MALAYALAM ), + new NameCodePair( "MONGOLIAN", MONGOLIAN ), + new NameCodePair( "MYANMAR", MYANMAR ), + new NameCodePair( "OGHAM", OGHAM ), + new NameCodePair( "OLD_ITALIC", OLD_ITALIC ), + new NameCodePair( "ORIYA", ORIYA ), + new NameCodePair( "RUNIC", RUNIC ), + new NameCodePair( "SINHALA", SINHALA ), + new NameCodePair( "SYRIAC", SYRIAC ), + new NameCodePair( "TAGALOG", TAGALOG ), + new NameCodePair( "TAGBANWA", TAGBANWA ), + new NameCodePair( "TAMIL", TAMIL ), + new NameCodePair( "TELUGU", TELUGU ), + new NameCodePair( "THAANA", THAANA ), + new NameCodePair( "THAI", THAI ), + new NameCodePair( "TIBETAN", TIBETAN ), + new NameCodePair( "UCAS", UCAS ), + new NameCodePair( "YI", YI ) }; + + /* script abbreviations with codes, sorted by abbreviations */ + private static final NameCodePair[] scriptAbbr= { + new NameCodePair( "Arab", ARABIC ), + new NameCodePair( "Armn", ARMENIAN ), + new NameCodePair( "Beng", BENGALI ), + new NameCodePair( "Bopo", BOPOMOFO ), + new NameCodePair( "Buhd", BUHID ), + new NameCodePair( "Cans", UCAS ), + new NameCodePair( "Cher", CHEROKEE ), + new NameCodePair( "Cyrl", CYRILLIC ), + /* new NameCodePair( "Cyrs", CYRILLIC ), */ + new NameCodePair( "Deva", DEVANAGARI ), + new NameCodePair( "Dsrt", DESERET ), + new NameCodePair( "Ethi", ETHIOPIC ), + /* new NameCodePair( Geoa", GEORGIAN ), */ + /* new NameCodePair( Geon", GEORGIAN ), */ + new NameCodePair( "Geor", GEORGIAN ), + new NameCodePair( "Goth", GOTHIC ), + new NameCodePair( "Grek", GREEK ), + new NameCodePair( "Gujr", GUJARATI ), + new NameCodePair( "Guru", GURMUKHI ), + new NameCodePair( "Hang", HANGUL ), + new NameCodePair( "Hani", HAN ), + new NameCodePair( "Hano", HANUNOO ), + new NameCodePair( "Hebr", HEBREW ), + new NameCodePair( "Hira", HIRAGANA ), + new NameCodePair( "Ital", OLD_ITALIC ), + new NameCodePair( "Kana", KATAKANA ), + new NameCodePair( "Khmr", KHMER ), + new NameCodePair( "Knda", KANNADA ), + new NameCodePair( "Lao", LAO ), + /* new NameCodePair( "Laoo", LAO ), */ + /* new NameCodePair( "Latf", LATIN ), */ + /* new NameCodePair( "Latg", LATIN ), */ + new NameCodePair( "Latn", LATIN ), + new NameCodePair( "Mlym", MALAYALAM ), + new NameCodePair( "Mong", MONGOLIAN ), + new NameCodePair( "Mymr", MYANMAR ), + new NameCodePair( "Ogam", OGHAM ), + new NameCodePair( "Orya", ORIYA ), + new NameCodePair( "Qaac", COPTIC ), + new NameCodePair( "Qaai", INHERITED ), + new NameCodePair( "Runr", RUNIC ), + new NameCodePair( "Sinh", SINHALA ), + new NameCodePair( "Syrc", SYRIAC ), + /* new NameCodePair( "Syre", SYRIAC ), */ + /* new NameCodePair( "Syrj", SYRIAC ), */ + /* new NameCodePair( "Syrn", SYRIAC ), */ + new NameCodePair( "Tagb", TAGBANWA ), + new NameCodePair( "Taml", TAMIL ), + new NameCodePair( "Telu", TELUGU ), + new NameCodePair( "Tglg", TAGALOG ), + new NameCodePair( "Thaa", THAANA ), + new NameCodePair( "Thai", THAI ), + new NameCodePair( "Tibt", TIBETAN ), + new NameCodePair( "Yiii", YI ), + new NameCodePair( "Zyyy", COMMON ) + }; + + /* binary search the string array */ - private static int findStringIndex(String[] sortedArr, String target){ + private static int findStringIndex(NameCodePair[] sortedArr, String target){ int size = sortedArr.length; int left, middle, right,rc; left =0; @@ -745,7 +205,7 @@ public final class UScript { target = target.toUpperCase(); while(left <= right){ middle = (left+right)/2; - rc=sortedArr[middle].toUpperCase().compareTo(target); + rc=sortedArr[middle].name.toUpperCase().compareTo(target); if(rc<0){ left = middle+1; }else if(rc >0){ @@ -758,18 +218,21 @@ public final class UScript { } /* linearly search the array and return the index */ - private static int findCodeIndex(int[] unsorted, int target){ + private static int findCodeIndex(NameCodePair[] unsorted, int target){ int size = unsorted.length; int i=0; while(i= codepoint){ - rc = 0; - }else if(codepoint> scriptCodeIndex[middle].lastCodepoint){ - rc =-1; - }else { - rc = 1; - } - - if(rc<0){ - left = middle+1; - }else if(rc >0){ - right = middle -1; - }else{ - return scriptCodeIndex[middle].scriptCode; - } - } - return COMMON; - } - - + /** * Gets a script codes associated with the given locale or ISO 15924 abbreviation or name. * Returns MALAYAM given "Malayam" OR "Mlym". @@ -849,7 +276,7 @@ public final class UScript { public static final int[] getCode(Locale locale) throws MissingResourceException { return findCodeFromLocale(locale); - } + } /** * Gets a script codes associated with the given locale or ISO 15924 abbreviation or name. @@ -869,13 +296,13 @@ public final class UScript { strIndex = findStringIndex(scriptNames, nameOrAbbrOrLocale); if(strIndex>=0 && strIndex < scriptNames.length){ - code[0] = scriptNameCodes[strIndex]; + code[0] = scriptNames[strIndex].code; } /* we did not find in names array so try abbr array*/ if(code[0] == INVALID_CODE){ strIndex = findStringIndex(scriptAbbr, nameOrAbbrOrLocale); if(strIndex>=0 && strIndex < scriptAbbr.length){ - code[0] = scriptAbbrCodes[strIndex]; + code[0] = scriptAbbr[strIndex].code; } } /* we still haven't found it try locale */ @@ -896,7 +323,7 @@ public final class UScript { */ public static final int getScript(int codepoint){ if (codepoint >= UCharacter.MIN_VALUE & codepoint <= UCharacter.MAX_VALUE) { - return findScriptCode(codepoint); + return (int)(prop.getAdditional(codepoint,0) & SCRIPT_MASK); }else{ throw new IllegalArgumentException(Integer.toString(codepoint)); } @@ -915,9 +342,9 @@ public final class UScript { if(scriptCode > CODE_LIMIT){ throw new IllegalArgumentException(Integer.toString(scriptCode)); } - index = findCodeIndex(scriptNameCodes,scriptCode); + index = findCodeIndex(scriptNames,scriptCode); if(index >=0){ - return scriptNames[index]; + return scriptNames[index].name; }else{ throw new IllegalArgumentException(Integer.toString(scriptCode)); } @@ -936,9 +363,9 @@ public final class UScript { if(scriptCode > CODE_LIMIT){ throw new IllegalArgumentException(Integer.toString(scriptCode)); } - index = findCodeIndex(scriptAbbrCodes,scriptCode); + index = findCodeIndex(scriptAbbr,scriptCode); if(index >=0){ - return scriptAbbr[index]; + return scriptAbbr[index].name; }else{ throw new IllegalArgumentException(Integer.toString(scriptCode)); }