795 lines · 25.7 KB · Java
RawDownload
/* * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation.  Oracle designates this * particular file as subject to the "Classpath" exception as provided * by Oracle in the LICENSE file that accompanied this code. * * This code is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License * version 2 for more details (a copy is included in the LICENSE file that * accompanied this code). * * You should have received a copy of the GNU General Public License version * 2 along with this work; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. * * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA * or visit www.oracle.com if you need additional information or have any * questions. * */ /* ******************************************************************************* * Copyright (C) 2003, International Business Machines Corporation and         * * others. All Rights Reserved.                                                * ******************************************************************************* */ package sun.font; public final class ScriptRunData {    private ScriptRunData() {}     private static final int CHAR_START = 0;    private static final int CHAR_LIMIT = 0x110000;     private static int cache = 0;    public static final int getScript(int cp) {        // optimize for runs of characters in the same script        if (cp >= data[cache] && cp < data[cache+2]) {            return data[cache+1];        }        if (cp >= CHAR_START & cp < CHAR_LIMIT) {            int probe = dataPower;            int index = 0;             if (cp >= data[dataExtra]) {                index = dataExtra;            }             while (probe > 2) {                probe >>= 1;                if (cp >= data[index + probe]) {                    index += probe;                }            }             cache = index;            return data[index+1];        }         throw new IllegalArgumentException(Integer.toString(cp));    }     private static final int[] data = {        0x000000, 0x00,        0x000041, 0x19, // 'latn' latin        0x00005B, 0x00,        0x000061, 0x19, // 'latn' latin        0x00007B, 0x00,        0x0000AA, 0x19, // 'latn' latin        0x0000AB, 0x00,        0x0000B5, 0x0E, // 'grek' greek        0x0000B6, 0x00,        0x0000BA, 0x19, // 'latn' latin        0x0000BB, 0x00,        0x0000C0, 0x19, // 'latn' latin        0x0000D7, 0x00,        0x0000D8, 0x19, // 'latn' latin        0x0000F7, 0x00,        0x0000F8, 0x19, // 'latn' latin        0x000221, 0x00,        0x000222, 0x19, // 'latn' latin        0x000234, 0x00,        0x000250, 0x19, // 'latn' latin        0x0002AE, 0x00,        0x0002B0, 0x19, // 'latn' latin        0x0002B9, 0x00,        0x0002E0, 0x19, // 'latn' latin        0x0002E5, 0x00,        0x000300, 0x01, // 'qaai' inherited        0x000350, 0x00,        0x000360, 0x01, // 'qaai' inherited        0x000370, 0x00,        0x00037A, 0x0E, // 'grek' greek        0x00037B, 0x00,        0x000386, 0x0E, // 'grek' greek        0x000387, 0x00,        0x000388, 0x0E, // 'grek' greek        0x00038B, 0x00,        0x00038C, 0x0E, // 'grek' greek        0x00038D, 0x00,        0x00038E, 0x0E, // 'grek' greek        0x0003A2, 0x00,        0x0003A3, 0x0E, // 'grek' greek        0x0003CF, 0x00,        0x0003D0, 0x0E, // 'grek' greek        0x0003F6, 0x00,        0x000400, 0x08, // 'cyrl' cyrillic        0x000482, 0x00,        0x000483, 0x08, // 'cyrl' cyrillic        0x000487, 0x00,        0x000488, 0x01, // 'qaai' inherited        0x00048A, 0x08, // 'cyrl' cyrillic        0x0004CF, 0x00,        0x0004D0, 0x08, // 'cyrl' cyrillic        0x0004F6, 0x00,        0x0004F8, 0x08, // 'cyrl' cyrillic        0x0004FA, 0x00,        0x000500, 0x08, // 'cyrl' cyrillic        0x000510, 0x00,        0x000531, 0x03, // 'armn' armenian        0x000557, 0x00,        0x000559, 0x03, // 'armn' armenian        0x00055A, 0x00,        0x000561, 0x03, // 'armn' armenian        0x000588, 0x00,        0x000591, 0x01, // 'qaai' inherited        0x0005A2, 0x00,        0x0005A3, 0x01, // 'qaai' inherited        0x0005BA, 0x00,        0x0005BB, 0x01, // 'qaai' inherited        0x0005BE, 0x00,        0x0005BF, 0x01, // 'qaai' inherited        0x0005C0, 0x00,        0x0005C1, 0x01, // 'qaai' inherited        0x0005C3, 0x00,        0x0005C4, 0x01, // 'qaai' inherited        0x0005C5, 0x00,        0x0005D0, 0x13, // 'hebr' hebrew        0x0005EB, 0x00,        0x0005F0, 0x13, // 'hebr' hebrew        0x0005F3, 0x00,        0x000621, 0x02, // 'arab' arabic        0x00063B, 0x00,        0x000641, 0x02, // 'arab' arabic        0x00064B, 0x01, // 'qaai' inherited        0x000656, 0x00,        0x00066E, 0x02, // 'arab' arabic        0x000670, 0x01, // 'qaai' inherited        0x000671, 0x02, // 'arab' arabic        0x0006D4, 0x00,        0x0006D5, 0x02, // 'arab' arabic        0x0006D6, 0x01, // 'qaai' inherited        0x0006E5, 0x02, // 'arab' arabic        0x0006E7, 0x01, // 'qaai' inherited        0x0006E9, 0x00,        0x0006EA, 0x01, // 'qaai' inherited        0x0006EE, 0x00,        0x0006FA, 0x02, // 'arab' arabic        0x0006FD, 0x00,        0x000710, 0x22, // 'syrc' syriac        0x00072D, 0x00,        0x000730, 0x22, // 'syrc' syriac        0x00074B, 0x00,        0x000780, 0x25, // 'thaa' thaana        0x0007B2, 0x00,        0x000901, 0x0A, // 'deva' devanagari        0x000904, 0x00,        0x000905, 0x0A, // 'deva' devanagari        0x00093A, 0x00,        0x00093C, 0x0A, // 'deva' devanagari        0x00094E, 0x00,        0x000950, 0x0A, // 'deva' devanagari        0x000955, 0x00,        0x000958, 0x0A, // 'deva' devanagari        0x000964, 0x00,        0x000966, 0x0A, // 'deva' devanagari        0x000970, 0x00,        0x000981, 0x04, // 'beng' bengali        0x000984, 0x00,        0x000985, 0x04, // 'beng' bengali        0x00098D, 0x00,        0x00098F, 0x04, // 'beng' bengali        0x000991, 0x00,        0x000993, 0x04, // 'beng' bengali        0x0009A9, 0x00,        0x0009AA, 0x04, // 'beng' bengali        0x0009B1, 0x00,        0x0009B2, 0x04, // 'beng' bengali        0x0009B3, 0x00,        0x0009B6, 0x04, // 'beng' bengali        0x0009BA, 0x00,        0x0009BC, 0x04, // 'beng' bengali        0x0009BD, 0x00,        0x0009BE, 0x04, // 'beng' bengali        0x0009C5, 0x00,        0x0009C7, 0x04, // 'beng' bengali        0x0009C9, 0x00,        0x0009CB, 0x04, // 'beng' bengali        0x0009CE, 0x00,        0x0009D7, 0x04, // 'beng' bengali        0x0009D8, 0x00,        0x0009DC, 0x04, // 'beng' bengali        0x0009DE, 0x00,        0x0009DF, 0x04, // 'beng' bengali        0x0009E4, 0x00,        0x0009E6, 0x04, // 'beng' bengali        0x0009F2, 0x00,        0x000A02, 0x10, // 'guru' gurmukhi        0x000A03, 0x00,        0x000A05, 0x10, // 'guru' gurmukhi        0x000A0B, 0x00,        0x000A0F, 0x10, // 'guru' gurmukhi        0x000A11, 0x00,        0x000A13, 0x10, // 'guru' gurmukhi        0x000A29, 0x00,        0x000A2A, 0x10, // 'guru' gurmukhi        0x000A31, 0x00,        0x000A32, 0x10, // 'guru' gurmukhi        0x000A34, 0x00,        0x000A35, 0x10, // 'guru' gurmukhi        0x000A37, 0x00,        0x000A38, 0x10, // 'guru' gurmukhi        0x000A3A, 0x00,        0x000A3C, 0x10, // 'guru' gurmukhi        0x000A3D, 0x00,        0x000A3E, 0x10, // 'guru' gurmukhi        0x000A43, 0x00,        0x000A47, 0x10, // 'guru' gurmukhi        0x000A49, 0x00,        0x000A4B, 0x10, // 'guru' gurmukhi        0x000A4E, 0x00,        0x000A59, 0x10, // 'guru' gurmukhi        0x000A5D, 0x00,        0x000A5E, 0x10, // 'guru' gurmukhi        0x000A5F, 0x00,        0x000A66, 0x10, // 'guru' gurmukhi        0x000A75, 0x00,        0x000A81, 0x0F, // 'gujr' gujarati        0x000A84, 0x00,        0x000A85, 0x0F, // 'gujr' gujarati        0x000A8C, 0x00,        0x000A8D, 0x0F, // 'gujr' gujarati        0x000A8E, 0x00,        0x000A8F, 0x0F, // 'gujr' gujarati        0x000A92, 0x00,        0x000A93, 0x0F, // 'gujr' gujarati        0x000AA9, 0x00,        0x000AAA, 0x0F, // 'gujr' gujarati        0x000AB1, 0x00,        0x000AB2, 0x0F, // 'gujr' gujarati        0x000AB4, 0x00,        0x000AB5, 0x0F, // 'gujr' gujarati        0x000ABA, 0x00,        0x000ABC, 0x0F, // 'gujr' gujarati        0x000AC6, 0x00,        0x000AC7, 0x0F, // 'gujr' gujarati        0x000ACA, 0x00,        0x000ACB, 0x0F, // 'gujr' gujarati        0x000ACE, 0x00,        0x000AD0, 0x0F, // 'gujr' gujarati        0x000AD1, 0x00,        0x000AE0, 0x0F, // 'gujr' gujarati        0x000AE1, 0x00,        0x000AE6, 0x0F, // 'gujr' gujarati        0x000AF0, 0x00,        0x000B01, 0x1F, // 'orya' oriya        0x000B04, 0x00,        0x000B05, 0x1F, // 'orya' oriya        0x000B0D, 0x00,        0x000B0F, 0x1F, // 'orya' oriya        0x000B11, 0x00,        0x000B13, 0x1F, // 'orya' oriya        0x000B29, 0x00,        0x000B2A, 0x1F, // 'orya' oriya        0x000B31, 0x00,        0x000B32, 0x1F, // 'orya' oriya        0x000B34, 0x00,        0x000B36, 0x1F, // 'orya' oriya        0x000B3A, 0x00,        0x000B3C, 0x1F, // 'orya' oriya        0x000B44, 0x00,        0x000B47, 0x1F, // 'orya' oriya        0x000B49, 0x00,        0x000B4B, 0x1F, // 'orya' oriya        0x000B4E, 0x00,        0x000B56, 0x1F, // 'orya' oriya        0x000B58, 0x00,        0x000B5C, 0x1F, // 'orya' oriya        0x000B5E, 0x00,        0x000B5F, 0x1F, // 'orya' oriya        0x000B62, 0x00,        0x000B66, 0x1F, // 'orya' oriya        0x000B70, 0x00,        0x000B82, 0x23, // 'taml' tamil        0x000B84, 0x00,        0x000B85, 0x23, // 'taml' tamil        0x000B8B, 0x00,        0x000B8E, 0x23, // 'taml' tamil        0x000B91, 0x00,        0x000B92, 0x23, // 'taml' tamil        0x000B96, 0x00,        0x000B99, 0x23, // 'taml' tamil        0x000B9B, 0x00,        0x000B9C, 0x23, // 'taml' tamil        0x000B9D, 0x00,        0x000B9E, 0x23, // 'taml' tamil        0x000BA0, 0x00,        0x000BA3, 0x23, // 'taml' tamil        0x000BA5, 0x00,        0x000BA8, 0x23, // 'taml' tamil        0x000BAB, 0x00,        0x000BAE, 0x23, // 'taml' tamil        0x000BB6, 0x00,        0x000BB7, 0x23, // 'taml' tamil        0x000BBA, 0x00,        0x000BBE, 0x23, // 'taml' tamil        0x000BC3, 0x00,        0x000BC6, 0x23, // 'taml' tamil        0x000BC9, 0x00,        0x000BCA, 0x23, // 'taml' tamil        0x000BCE, 0x00,        0x000BD7, 0x23, // 'taml' tamil        0x000BD8, 0x00,        0x000BE7, 0x23, // 'taml' tamil        0x000BF3, 0x00,        0x000C01, 0x24, // 'telu' telugu        0x000C04, 0x00,        0x000C05, 0x24, // 'telu' telugu        0x000C0D, 0x00,        0x000C0E, 0x24, // 'telu' telugu        0x000C11, 0x00,        0x000C12, 0x24, // 'telu' telugu        0x000C29, 0x00,        0x000C2A, 0x24, // 'telu' telugu        0x000C34, 0x00,        0x000C35, 0x24, // 'telu' telugu        0x000C3A, 0x00,        0x000C3E, 0x24, // 'telu' telugu        0x000C45, 0x00,        0x000C46, 0x24, // 'telu' telugu        0x000C49, 0x00,        0x000C4A, 0x24, // 'telu' telugu        0x000C4E, 0x00,        0x000C55, 0x24, // 'telu' telugu        0x000C57, 0x00,        0x000C60, 0x24, // 'telu' telugu        0x000C62, 0x00,        0x000C66, 0x24, // 'telu' telugu        0x000C70, 0x00,        0x000C82, 0x15, // 'knda' kannada        0x000C84, 0x00,        0x000C85, 0x15, // 'knda' kannada        0x000C8D, 0x00,        0x000C8E, 0x15, // 'knda' kannada        0x000C91, 0x00,        0x000C92, 0x15, // 'knda' kannada        0x000CA9, 0x00,        0x000CAA, 0x15, // 'knda' kannada        0x000CB4, 0x00,        0x000CB5, 0x15, // 'knda' kannada        0x000CBA, 0x00,        0x000CBE, 0x15, // 'knda' kannada        0x000CC5, 0x00,        0x000CC6, 0x15, // 'knda' kannada        0x000CC9, 0x00,        0x000CCA, 0x15, // 'knda' kannada        0x000CCE, 0x00,        0x000CD5, 0x15, // 'knda' kannada        0x000CD7, 0x00,        0x000CDE, 0x15, // 'knda' kannada        0x000CDF, 0x00,        0x000CE0, 0x15, // 'knda' kannada        0x000CE2, 0x00,        0x000CE6, 0x15, // 'knda' kannada        0x000CF0, 0x00,        0x000D02, 0x1A, // 'mlym' malayalam        0x000D04, 0x00,        0x000D05, 0x1A, // 'mlym' malayalam        0x000D0D, 0x00,        0x000D0E, 0x1A, // 'mlym' malayalam        0x000D11, 0x00,        0x000D12, 0x1A, // 'mlym' malayalam        0x000D29, 0x00,        0x000D2A, 0x1A, // 'mlym' malayalam        0x000D3A, 0x00,        0x000D3E, 0x1A, // 'mlym' malayalam        0x000D44, 0x00,        0x000D46, 0x1A, // 'mlym' malayalam        0x000D49, 0x00,        0x000D4A, 0x1A, // 'mlym' malayalam        0x000D4E, 0x00,        0x000D57, 0x1A, // 'mlym' malayalam        0x000D58, 0x00,        0x000D60, 0x1A, // 'mlym' malayalam        0x000D62, 0x00,        0x000D66, 0x1A, // 'mlym' malayalam        0x000D70, 0x00,        0x000D82, 0x21, // 'sinh' sinhala        0x000D84, 0x00,        0x000D85, 0x21, // 'sinh' sinhala        0x000D97, 0x00,        0x000D9A, 0x21, // 'sinh' sinhala        0x000DB2, 0x00,        0x000DB3, 0x21, // 'sinh' sinhala        0x000DBC, 0x00,        0x000DBD, 0x21, // 'sinh' sinhala        0x000DBE, 0x00,        0x000DC0, 0x21, // 'sinh' sinhala        0x000DC7, 0x00,        0x000DCA, 0x21, // 'sinh' sinhala        0x000DCB, 0x00,        0x000DCF, 0x21, // 'sinh' sinhala        0x000DD5, 0x00,        0x000DD6, 0x21, // 'sinh' sinhala        0x000DD7, 0x00,        0x000DD8, 0x21, // 'sinh' sinhala        0x000DE0, 0x00,        0x000DF2, 0x21, // 'sinh' sinhala        0x000DF4, 0x00,        0x000E01, 0x26, // 'thai' thai        0x000E3B, 0x00,        0x000E40, 0x26, // 'thai' thai        0x000E4F, 0x00,        0x000E50, 0x26, // 'thai' thai        0x000E5A, 0x00,        0x000E81, 0x18, // 'laoo' lao        0x000E83, 0x00,        0x000E84, 0x18, // 'laoo' lao        0x000E85, 0x00,        0x000E87, 0x18, // 'laoo' lao        0x000E89, 0x00,        0x000E8A, 0x18, // 'laoo' lao        0x000E8B, 0x00,        0x000E8D, 0x18, // 'laoo' lao        0x000E8E, 0x00,        0x000E94, 0x18, // 'laoo' lao        0x000E98, 0x00,        0x000E99, 0x18, // 'laoo' lao        0x000EA0, 0x00,        0x000EA1, 0x18, // 'laoo' lao        0x000EA4, 0x00,        0x000EA5, 0x18, // 'laoo' lao        0x000EA6, 0x00,        0x000EA7, 0x18, // 'laoo' lao        0x000EA8, 0x00,        0x000EAA, 0x18, // 'laoo' lao        0x000EAC, 0x00,        0x000EAD, 0x18, // 'laoo' lao        0x000EBA, 0x00,        0x000EBB, 0x18, // 'laoo' lao        0x000EBE, 0x00,        0x000EC0, 0x18, // 'laoo' lao        0x000EC5, 0x00,        0x000EC6, 0x18, // 'laoo' lao        0x000EC7, 0x00,        0x000EC8, 0x18, // 'laoo' lao        0x000ECE, 0x00,        0x000ED0, 0x18, // 'laoo' lao        0x000EDA, 0x00,        0x000EDC, 0x18, // 'laoo' lao        0x000EDE, 0x00,        0x000F00, 0x27, // 'tibt' tibetan        0x000F01, 0x00,        0x000F18, 0x27, // 'tibt' tibetan        0x000F1A, 0x00,        0x000F20, 0x27, // 'tibt' tibetan        0x000F34, 0x00,        0x000F35, 0x27, // 'tibt' tibetan        0x000F36, 0x00,        0x000F37, 0x27, // 'tibt' tibetan        0x000F38, 0x00,        0x000F39, 0x27, // 'tibt' tibetan        0x000F3A, 0x00,        0x000F40, 0x27, // 'tibt' tibetan        0x000F48, 0x00,        0x000F49, 0x27, // 'tibt' tibetan        0x000F6B, 0x00,        0x000F71, 0x27, // 'tibt' tibetan        0x000F85, 0x00,        0x000F86, 0x27, // 'tibt' tibetan        0x000F8C, 0x00,        0x000F90, 0x27, // 'tibt' tibetan        0x000F98, 0x00,        0x000F99, 0x27, // 'tibt' tibetan        0x000FBD, 0x00,        0x000FC6, 0x27, // 'tibt' tibetan        0x000FC7, 0x00,        0x001000, 0x1C, // 'mymr' myanmar        0x001022, 0x00,        0x001023, 0x1C, // 'mymr' myanmar        0x001028, 0x00,        0x001029, 0x1C, // 'mymr' myanmar        0x00102B, 0x00,        0x00102C, 0x1C, // 'mymr' myanmar

Lines 1–500 of 795.