зеркало из https://github.com/mozilla/pjs.git
Update data files to Unicode 5.0. Bug 345156, r=jshin, sr=jag
This commit is contained in:
Родитель
8f55ac5138
Коммит
03a1554564
|
@ -63,6 +63,7 @@ static const PRUint16 gToUpper[] =
|
|||
0x014b, ((0x2c << 8) | 0x02), 0xffff ,
|
||||
0x017a, ((0x04 << 8) | 0x02), 0xffff ,
|
||||
0x017f, ((0x00 << 8) | 0x00), 0xfed4 ,
|
||||
0x0180, ((0x00 << 8) | 0x00), 0x00c3 ,
|
||||
0x0183, ((0x02 << 8) | 0x02), 0xffff ,
|
||||
0x0188, ((0x04 << 8) | 0x04), 0xffff ,
|
||||
0x0192, ((0x00 << 8) | 0x00), 0xffff ,
|
||||
|
@ -90,7 +91,8 @@ static const PRUint16 gToUpper[] =
|
|||
0x01f5, ((0x04 << 8) | 0x04), 0xffff ,
|
||||
0x01fb, ((0x24 << 8) | 0x02), 0xffff ,
|
||||
0x0223, ((0x10 << 8) | 0x02), 0xffff ,
|
||||
0x023c, ((0x00 << 8) | 0x00), 0xffff ,
|
||||
0x023c, ((0x06 << 8) | 0x06), 0xffff ,
|
||||
0x0247, ((0x08 << 8) | 0x02), 0xffff ,
|
||||
0x0253, ((0x00 << 8) | 0x00), 0xff2e ,
|
||||
0x0254, ((0x00 << 8) | 0x00), 0xff32 ,
|
||||
0x0256, ((0x01 << 8) | 0x01), 0xff33 ,
|
||||
|
@ -99,15 +101,20 @@ static const PRUint16 gToUpper[] =
|
|||
0x0260, ((0x00 << 8) | 0x00), 0xff33 ,
|
||||
0x0263, ((0x00 << 8) | 0x00), 0xff31 ,
|
||||
0x0268, ((0x00 << 8) | 0x00), 0xff2f ,
|
||||
0x0269, ((0x06 << 8) | 0x06), 0xff2d ,
|
||||
0x0269, ((0x00 << 8) | 0x00), 0xff2d ,
|
||||
0x026b, ((0x00 << 8) | 0x00), 0x29f7 ,
|
||||
0x026f, ((0x00 << 8) | 0x00), 0xff2d ,
|
||||
0x0272, ((0x00 << 8) | 0x00), 0xff2b ,
|
||||
0x0275, ((0x00 << 8) | 0x00), 0xff2a ,
|
||||
0x027d, ((0x00 << 8) | 0x00), 0x29e7 ,
|
||||
0x0280, ((0x03 << 8) | 0x03), 0xff26 ,
|
||||
0x0288, ((0x00 << 8) | 0x00), 0xff26 ,
|
||||
0x0289, ((0x00 << 8) | 0x00), 0xffbb ,
|
||||
0x028a, ((0x01 << 8) | 0x01), 0xff27 ,
|
||||
0x028c, ((0x00 << 8) | 0x00), 0xffb9 ,
|
||||
0x0292, ((0x00 << 8) | 0x00), 0xff25 ,
|
||||
0x0294, ((0x00 << 8) | 0x00), 0xffad ,
|
||||
0x0345, ((0x00 << 8) | 0x00), 0x0054 ,
|
||||
0x037b, ((0x02 << 8) | 0x01), 0x0082 ,
|
||||
0x03ac, ((0x00 << 8) | 0x00), 0xffda ,
|
||||
0x03ad, ((0x02 << 8) | 0x01), 0xffdb ,
|
||||
0x03b1, ((0x10 << 8) | 0x01), 0xffe0 ,
|
||||
|
@ -130,9 +137,10 @@ static const PRUint16 gToUpper[] =
|
|||
0x0461, ((0x20 << 8) | 0x02), 0xffff ,
|
||||
0x048b, ((0x34 << 8) | 0x02), 0xffff ,
|
||||
0x04c2, ((0x0c << 8) | 0x02), 0xffff ,
|
||||
0x04d1, ((0x28 << 8) | 0x02), 0xffff ,
|
||||
0x0501, ((0x0e << 8) | 0x02), 0xffff ,
|
||||
0x04cf, ((0x00 << 8) | 0x00), 0xfff1 ,
|
||||
0x04d1, ((0x42 << 8) | 0x02), 0xffff ,
|
||||
0x0561, ((0x25 << 8) | 0x01), 0xffd0 ,
|
||||
0x1d7d, ((0x00 << 8) | 0x00), 0x0ee6 ,
|
||||
0x1e01, ((0x94 << 8) | 0x02), 0xffff ,
|
||||
0x1e9b, ((0x00 << 8) | 0x00), 0xffc5 ,
|
||||
0x1ea1, ((0x58 << 8) | 0x02), 0xffff ,
|
||||
|
@ -160,15 +168,22 @@ static const PRUint16 gToUpper[] =
|
|||
0x1fe0, ((0x01 << 8) | 0x01), 0x0008 ,
|
||||
0x1fe5, ((0x00 << 8) | 0x00), 0x0007 ,
|
||||
0x1ff3, ((0x00 << 8) | 0x00), 0x0009 ,
|
||||
0x214e, ((0x00 << 8) | 0x00), 0xffe4 ,
|
||||
0x2170, ((0x0f << 8) | 0x01), 0xfff0 ,
|
||||
0x2184, ((0x00 << 8) | 0x00), 0xffff ,
|
||||
0x24d0, ((0x19 << 8) | 0x01), 0xffe6 ,
|
||||
0x2c30, ((0x2e << 8) | 0x01), 0xffd0 ,
|
||||
0x2c81, ((0x62 << 8) | 0x02), 0xffff ,
|
||||
0x2c61, ((0x00 << 8) | 0x00), 0xffff ,
|
||||
0x2c65, ((0x00 << 8) | 0x00), 0xd5d5 ,
|
||||
0x2c66, ((0x00 << 8) | 0x00), 0xd5d8 ,
|
||||
0x2c68, ((0x04 << 8) | 0x02), 0xffff ,
|
||||
0x2c76, ((0x0b << 8) | 0x0b), 0xffff ,
|
||||
0x2c83, ((0x60 << 8) | 0x02), 0xffff ,
|
||||
0x2d00, ((0x25 << 8) | 0x01), 0xe3a0 ,
|
||||
0xff41, ((0x19 << 8) | 0x01), 0xffe0
|
||||
};
|
||||
|
||||
static const PRUint32 gToUpperItems = 115;
|
||||
static const PRUint32 gToUpperItems = 130;
|
||||
|
||||
static const PRUint16 gToLower[] =
|
||||
{ /* From To Every Diff */
|
||||
|
@ -225,9 +240,15 @@ static const PRUint16 gToLower[] =
|
|||
0x01f8, ((0x26 << 8) | 0x02), 0x0001 ,
|
||||
0x0220, ((0x00 << 8) | 0x00), 0xff7e ,
|
||||
0x0222, ((0x10 << 8) | 0x02), 0x0001 ,
|
||||
0x023a, ((0x00 << 8) | 0x00), 0x2a2b ,
|
||||
0x023b, ((0x00 << 8) | 0x00), 0x0001 ,
|
||||
0x023d, ((0x00 << 8) | 0x00), 0xff5d ,
|
||||
0x0241, ((0x00 << 8) | 0x00), 0x0053 ,
|
||||
0x023e, ((0x00 << 8) | 0x00), 0x2a28 ,
|
||||
0x0241, ((0x00 << 8) | 0x00), 0x0001 ,
|
||||
0x0243, ((0x00 << 8) | 0x00), 0xff3d ,
|
||||
0x0244, ((0x00 << 8) | 0x00), 0x0045 ,
|
||||
0x0245, ((0x00 << 8) | 0x00), 0x0047 ,
|
||||
0x0246, ((0x08 << 8) | 0x02), 0x0001 ,
|
||||
0x0386, ((0x00 << 8) | 0x00), 0x0026 ,
|
||||
0x0388, ((0x02 << 8) | 0x01), 0x0025 ,
|
||||
0x038c, ((0x00 << 8) | 0x00), 0x0040 ,
|
||||
|
@ -239,13 +260,14 @@ static const PRUint16 gToLower[] =
|
|||
0x03f7, ((0x00 << 8) | 0x00), 0x0001 ,
|
||||
0x03f9, ((0x00 << 8) | 0x00), 0xfff9 ,
|
||||
0x03fa, ((0x00 << 8) | 0x00), 0x0001 ,
|
||||
0x03fd, ((0x02 << 8) | 0x01), 0xff7e ,
|
||||
0x0400, ((0x0f << 8) | 0x01), 0x0050 ,
|
||||
0x0410, ((0x1f << 8) | 0x01), 0x0020 ,
|
||||
0x0460, ((0x20 << 8) | 0x02), 0x0001 ,
|
||||
0x048a, ((0x34 << 8) | 0x02), 0x0001 ,
|
||||
0x04c0, ((0x00 << 8) | 0x00), 0x000f ,
|
||||
0x04c1, ((0x0c << 8) | 0x02), 0x0001 ,
|
||||
0x04d0, ((0x28 << 8) | 0x02), 0x0001 ,
|
||||
0x0500, ((0x0e << 8) | 0x02), 0x0001 ,
|
||||
0x04d0, ((0x42 << 8) | 0x02), 0x0001 ,
|
||||
0x0531, ((0x25 << 8) | 0x01), 0x0030 ,
|
||||
0x10a0, ((0x25 << 8) | 0x01), 0x1c60 ,
|
||||
0x1e00, ((0x94 << 8) | 0x02), 0x0001 ,
|
||||
|
@ -276,17 +298,25 @@ static const PRUint16 gToLower[] =
|
|||
0x2126, ((0x00 << 8) | 0x00), 0xe2a3 ,
|
||||
0x212a, ((0x00 << 8) | 0x00), 0xdf41 ,
|
||||
0x212b, ((0x00 << 8) | 0x00), 0xdfba ,
|
||||
0x2132, ((0x00 << 8) | 0x00), 0x001c ,
|
||||
0x2160, ((0x0f << 8) | 0x01), 0x0010 ,
|
||||
0x2183, ((0x00 << 8) | 0x00), 0x0001 ,
|
||||
0x24b6, ((0x19 << 8) | 0x01), 0x001a ,
|
||||
0x2c00, ((0x2e << 8) | 0x01), 0x0030 ,
|
||||
0x2c80, ((0x62 << 8) | 0x02), 0x0001 ,
|
||||
0x2c60, ((0x00 << 8) | 0x00), 0x0001 ,
|
||||
0x2c62, ((0x00 << 8) | 0x00), 0xd609 ,
|
||||
0x2c63, ((0x00 << 8) | 0x00), 0xf11a ,
|
||||
0x2c64, ((0x00 << 8) | 0x00), 0xd619 ,
|
||||
0x2c67, ((0x04 << 8) | 0x02), 0x0001 ,
|
||||
0x2c75, ((0x0b << 8) | 0x0b), 0x0001 ,
|
||||
0x2c82, ((0x60 << 8) | 0x02), 0x0001 ,
|
||||
0xff21, ((0x19 << 8) | 0x01), 0x0020
|
||||
};
|
||||
|
||||
static const PRUint32 gToLowerItems = 109;
|
||||
static const PRUint32 gToLowerItems = 124;
|
||||
|
||||
static const PRUint32 gCaseBlocks [8] = {
|
||||
0xC001003F,
|
||||
0xE001003F,
|
||||
0x00003012,
|
||||
0x00000000,
|
||||
0x00000000,
|
||||
|
|
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
|
@ -391,6 +391,16 @@ entity.1782=6
|
|||
entity.1783=7
|
||||
entity.1784=8
|
||||
entity.1785=9
|
||||
entity.1984=0
|
||||
entity.1985=1
|
||||
entity.1986=2
|
||||
entity.1987=3
|
||||
entity.1988=4
|
||||
entity.1989=5
|
||||
entity.1990=6
|
||||
entity.1991=7
|
||||
entity.1992=8
|
||||
entity.1993=9
|
||||
entity.2406=0
|
||||
entity.2407=1
|
||||
entity.2408=2
|
||||
|
@ -612,6 +622,16 @@ entity.6614=6
|
|||
entity.6615=7
|
||||
entity.6616=8
|
||||
entity.6617=9
|
||||
entity.6992=0
|
||||
entity.6993=1
|
||||
entity.6994=2
|
||||
entity.6995=3
|
||||
entity.6996=4
|
||||
entity.6997=5
|
||||
entity.6998=6
|
||||
entity.6999=7
|
||||
entity.7000=8
|
||||
entity.7001=9
|
||||
entity.7468=^(A)
|
||||
entity.7470=^(B)
|
||||
entity.7472=^(D)
|
||||
|
@ -1501,6 +1521,7 @@ entity.66336=[1]
|
|||
entity.66337=[5]
|
||||
entity.66338=[10]
|
||||
entity.66339=[50]
|
||||
entity.66369=[90]
|
||||
entity.66378=[900]
|
||||
entity.66513=[1]
|
||||
entity.66514=[2]
|
||||
|
@ -1517,6 +1538,10 @@ entity.66726=6
|
|||
entity.66727=7
|
||||
entity.66728=8
|
||||
entity.66729=9
|
||||
entity.67862=[1]
|
||||
entity.67863=[10]
|
||||
entity.67864=[20]
|
||||
entity.67865=[100]
|
||||
entity.68160=[1]
|
||||
entity.68161=[2]
|
||||
entity.68162=[3]
|
||||
|
@ -1525,6 +1550,119 @@ entity.68164=[10]
|
|||
entity.68165=[20]
|
||||
entity.68166=[100]
|
||||
entity.68167=[1000]
|
||||
entity.74752=[2]
|
||||
entity.74753=[3]
|
||||
entity.74754=[4]
|
||||
entity.74755=[5]
|
||||
entity.74756=[6]
|
||||
entity.74757=[7]
|
||||
entity.74758=[8]
|
||||
entity.74759=[9]
|
||||
entity.74760=[3]
|
||||
entity.74761=[4]
|
||||
entity.74762=[5]
|
||||
entity.74763=[6]
|
||||
entity.74764=[7]
|
||||
entity.74765=[8]
|
||||
entity.74766=[9]
|
||||
entity.74767=[4]
|
||||
entity.74768=[5]
|
||||
entity.74769=[6]
|
||||
entity.74770=[7]
|
||||
entity.74771=[8]
|
||||
entity.74772=[9]
|
||||
entity.74773=[1]
|
||||
entity.74774=[2]
|
||||
entity.74775=[3]
|
||||
entity.74776=[4]
|
||||
entity.74777=[5]
|
||||
entity.74778=[6]
|
||||
entity.74779=[7]
|
||||
entity.74780=[8]
|
||||
entity.74781=[9]
|
||||
entity.74782=[1]
|
||||
entity.74783=[2]
|
||||
entity.74784=[3]
|
||||
entity.74785=[4]
|
||||
entity.74786=[5]
|
||||
entity.74787=[2]
|
||||
entity.74788=[3]
|
||||
entity.74789=[3]
|
||||
entity.74790=[4]
|
||||
entity.74791=[5]
|
||||
entity.74792=[6]
|
||||
entity.74793=[7]
|
||||
entity.74794=[8]
|
||||
entity.74795=[9]
|
||||
entity.74796=[1]
|
||||
entity.74797=[2]
|
||||
entity.74798=[3]
|
||||
entity.74799=[3]
|
||||
entity.74800=[4]
|
||||
entity.74801=[5]
|
||||
entity.74804=[1]
|
||||
entity.74805=[2]
|
||||
entity.74806=[3]
|
||||
entity.74807=[3]
|
||||
entity.74808=[4]
|
||||
entity.74809=[5]
|
||||
entity.74810=[3]
|
||||
entity.74811=[3]
|
||||
entity.74812=[4]
|
||||
entity.74813=[4]
|
||||
entity.74814=[4]
|
||||
entity.74815=[4]
|
||||
entity.74816=[6]
|
||||
entity.74817=[7]
|
||||
entity.74818=[7]
|
||||
entity.74819=[7]
|
||||
entity.74820=[8]
|
||||
entity.74821=[8]
|
||||
entity.74822=[9]
|
||||
entity.74823=[9]
|
||||
entity.74824=[9]
|
||||
entity.74825=[9]
|
||||
entity.74826=[2]
|
||||
entity.74827=[3]
|
||||
entity.74828=[4]
|
||||
entity.74829=[5]
|
||||
entity.74830=[6]
|
||||
entity.74831=[1]
|
||||
entity.74832=[2]
|
||||
entity.74833=[3]
|
||||
entity.74834=[4]
|
||||
entity.74835=[4]
|
||||
entity.74836=[5]
|
||||
entity.74837=[5]
|
||||
entity.74840=[1]
|
||||
entity.74841=[2]
|
||||
entity.74842=[1/3]
|
||||
entity.74843=[2/3]
|
||||
entity.74844=[5/6]
|
||||
entity.74845=[1/3]
|
||||
entity.74846=[2/3]
|
||||
entity.74847=[1/8]
|
||||
entity.74848=[1/4]
|
||||
entity.74849=[1/6]
|
||||
entity.74850=[1/4]
|
||||
entity.119648=[1]
|
||||
entity.119649=[2]
|
||||
entity.119650=[3]
|
||||
entity.119651=[4]
|
||||
entity.119652=[5]
|
||||
entity.119653=[6]
|
||||
entity.119654=[7]
|
||||
entity.119655=[8]
|
||||
entity.119656=[9]
|
||||
entity.119657=[10]
|
||||
entity.119658=[20]
|
||||
entity.119659=[30]
|
||||
entity.119660=[40]
|
||||
entity.119661=[50]
|
||||
entity.119662=[60]
|
||||
entity.119663=[70]
|
||||
entity.119664=[80]
|
||||
entity.119665=[90]
|
||||
entity.119808=A
|
||||
entity.119809=B
|
||||
entity.119810=C
|
||||
|
|
|
@ -218,17 +218,24 @@ $sh{$cjkcompkey} = $prevcjkcomp;
|
|||
# }
|
||||
|
||||
|
||||
# We treat characters < U+1D00 as "plane 0" and all the rest of planes 0 and 1
|
||||
# as "plane 1". This gives a relatively even distribution of patterns between
|
||||
# planes. If you change the value of $planeSplit, make sure that none of the
|
||||
# ranges below straddles the new value!
|
||||
$planeSplit = 0x1d00;
|
||||
|
||||
@range = (
|
||||
0x0000, 0x07ff,
|
||||
0x0900, 0x1a1f,
|
||||
0x0900, 0x1b7f,
|
||||
0x1d00, 0x33ff,
|
||||
0x4dc0, 0x4dff,
|
||||
0xa000, 0xa4ff,
|
||||
0xa700, 0xa82f,
|
||||
0xa000, 0xa87f,
|
||||
0xfb00, 0xffff,
|
||||
0x10000, 0x104af,
|
||||
0x10800, 0x1083f,
|
||||
0x10900, 0x1091f,
|
||||
0x10a00, 0x10a5f,
|
||||
0x12000, 0x1247f,
|
||||
0x1d000, 0x1d7ff
|
||||
);
|
||||
|
||||
|
@ -247,11 +254,20 @@ for($t = 1; $t <= $tt; $t++)
|
|||
$th = $range[($t-1) * 2 + 1];
|
||||
$ts = ( $th - $tl ) >> 3;
|
||||
$totaldata += $ts + 1;
|
||||
$plane = $tl >> 16;
|
||||
if ($planeSplit > $tl && $planeSplit < $th) {
|
||||
printf STDERR "plane split %04X falls within range %04X - %04X\n",
|
||||
$planeSplit, $tl, $th;
|
||||
die "This program is now broken!!!\n\n\n";
|
||||
}
|
||||
if ($tl < $planeSplit) {
|
||||
$plane = 0;
|
||||
} else {
|
||||
$plane = 1;
|
||||
}
|
||||
if ($oldplane != $plane) {
|
||||
if ($oldplane != -1) {
|
||||
printf STDERR "Plane %d has %d patterns\n", $oldplane, $newidx[$oldplane];
|
||||
if ($newidx[$plane] > 256) {
|
||||
if ($newidx[$oldplane] > 256) {
|
||||
printf STDERR "We have more than 256 patterns for plane %d\n", $oldplane;
|
||||
die "This program is now broken!!!\n\n\n";
|
||||
}
|
||||
|
@ -345,7 +361,11 @@ for($t = 1; $t <= $tt; $t++)
|
|||
{
|
||||
$tl = $range[($t-1) * 2];
|
||||
$th = $range[($t-1) * 2 + 1];
|
||||
$plane = $tl >> 16;
|
||||
if ($tl < $planeSplit) {
|
||||
$plane = 0;
|
||||
} else {
|
||||
$plane = 1;
|
||||
}
|
||||
printf OUT " // Handle U+%06X to U+%06X\n", $tl, $th;
|
||||
printf OUT " if(0x%06X <= u && u <= 0x%06X) {\n", $tl, $th;
|
||||
printf OUT " pat = " .
|
||||
|
|
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
|
@ -1,276 +0,0 @@
|
|||
/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
||||
*
|
||||
* ***** BEGIN LICENSE BLOCK *****
|
||||
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public License Version
|
||||
* 1.1 (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
* for the specific language governing rights and limitations under the
|
||||
* License.
|
||||
*
|
||||
* The Original Code is IBM code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is
|
||||
* International Business Machines Corporation.
|
||||
* Portions created by the Initial Developer are Copyright (C) 2000
|
||||
* the Initial Developer. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the terms of
|
||||
* either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
* in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
* of those above. If you wish to allow use of your version of this file only
|
||||
* under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
* use your version of this file under the terms of the MPL, indicate your
|
||||
* decision by deleting the provisions above and replace them with the notice
|
||||
* and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
* the provisions above, a recipient may use your version of this file under
|
||||
* the terms of any one of the MPL, the GPL or the LGPL.
|
||||
*
|
||||
* ***** END LICENSE BLOCK ***** */
|
||||
|
||||
/*
|
||||
DO NOT EDIT THIS DOCUMENT !!! THIS DOCUMENT IS GENERATED BY
|
||||
mozilla/layout/tools/gensymmtable.pl
|
||||
*/
|
||||
|
||||
/* Indexes to symmtable by Unicode block */
|
||||
const static PRUint8 symmtable_index[256] = {
|
||||
/* _0 _1 _2 _3 _4 _5 _6 _7 _8 _9 _A _B _C _D _E _F */
|
||||
/* 0_ */ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
/* 1_ */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
/* 2_ */ 2, 0, 3, 4, 0, 0, 0, 5, 0, 6, 7, 0, 0, 0, 8, 0,
|
||||
/* 3_ */ 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
/* 4_ */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
/* 5_ */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
/* 6_ */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
/* 7_ */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
/* 8_ */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
/* 9_ */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
/* A_ */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
/* B_ */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
/* C_ */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
/* D_ */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
/* E_ */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
/* F_ */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10,
|
||||
};
|
||||
const static PRUint16 symmtable[10] [256] = {
|
||||
{
|
||||
/* Block U00__ */
|
||||
/* _0 _1 _2 _3 _4 _5 _6 _7 _8 _9 _A _B _C _D _E _F */
|
||||
/* 0_ */ 0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0xa, 0xb, 0xc, 0xd, 0xe, 0xf,
|
||||
/* 1_ */ 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f,
|
||||
/* 2_ */ 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x29, 0x28, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f,
|
||||
/* 3_ */ 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3e, 0x3d, 0x3c, 0x3f,
|
||||
/* 4_ */ 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f,
|
||||
/* 5_ */ 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5d, 0x5c, 0x5b, 0x5e, 0x5f,
|
||||
/* 6_ */ 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f,
|
||||
/* 7_ */ 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7d, 0x7c, 0x7b, 0x7e, 0x7f,
|
||||
/* 8_ */ 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f,
|
||||
/* 9_ */ 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f,
|
||||
/* A_ */ 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xbb, 0xac, 0xad, 0xae, 0xaf,
|
||||
/* B_ */ 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, 0xb8, 0xb9, 0xba, 0xab, 0xbc, 0xbd, 0xbe, 0xbf,
|
||||
/* C_ */ 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf,
|
||||
/* D_ */ 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf,
|
||||
/* E_ */ 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef,
|
||||
/* F_ */ 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff
|
||||
},
|
||||
{
|
||||
/* Block U20__ */
|
||||
/* _0 _1 _2 _3 _4 _5 _6 _7 _8 _9 _A _B _C _D _E _F */
|
||||
/* 0_ */ 0x2000, 0x2001, 0x2002, 0x2003, 0x2004, 0x2005, 0x2006, 0x2007, 0x2008, 0x2009, 0x200a, 0x200b, 0x200c, 0x200d, 0x200e, 0x200f,
|
||||
/* 1_ */ 0x2010, 0x2011, 0x2012, 0x2013, 0x2014, 0x2015, 0x2016, 0x2017, 0x2018, 0x2019, 0x201a, 0x201b, 0x201c, 0x201d, 0x201e, 0x201f,
|
||||
/* 2_ */ 0x2020, 0x2021, 0x2022, 0x2023, 0x2024, 0x2025, 0x2026, 0x2027, 0x2028, 0x2029, 0x202a, 0x202b, 0x202c, 0x202d, 0x202e, 0x202f,
|
||||
/* 3_ */ 0x2030, 0x2031, 0x2032, 0x2033, 0x2034, 0x2035, 0x2036, 0x2037, 0x2038, 0x203a, 0x2039, 0x203b, 0x203c, 0x203d, 0x203e, 0x203f,
|
||||
/* 4_ */ 0x2040, 0x2041, 0x2042, 0x2043, 0x2044, 0x2046, 0x2045, 0x2047, 0x2048, 0x2049, 0x204a, 0x204b, 0x204c, 0x204d, 0x204e, 0x204f,
|
||||
/* 5_ */ 0x2050, 0x2051, 0x2052, 0x2053, 0x2054, 0x2055, 0x2056, 0x2057, 0x2058, 0x2059, 0x205a, 0x205b, 0x205c, 0x205d, 0x205e, 0x205f,
|
||||
/* 6_ */ 0x2060, 0x2061, 0x2062, 0x2063, 0x2064, 0x2065, 0x2066, 0x2067, 0x2068, 0x2069, 0x206a, 0x206b, 0x206c, 0x206d, 0x206e, 0x206f,
|
||||
/* 7_ */ 0x2070, 0x2071, 0x2072, 0x2073, 0x2074, 0x2075, 0x2076, 0x2077, 0x2078, 0x2079, 0x207a, 0x207b, 0x207c, 0x207e, 0x207d, 0x207f,
|
||||
/* 8_ */ 0x2080, 0x2081, 0x2082, 0x2083, 0x2084, 0x2085, 0x2086, 0x2087, 0x2088, 0x2089, 0x208a, 0x208b, 0x208c, 0x208e, 0x208d, 0x208f,
|
||||
/* 9_ */ 0x2090, 0x2091, 0x2092, 0x2093, 0x2094, 0x2095, 0x2096, 0x2097, 0x2098, 0x2099, 0x209a, 0x209b, 0x209c, 0x209d, 0x209e, 0x209f,
|
||||
/* A_ */ 0x20a0, 0x20a1, 0x20a2, 0x20a3, 0x20a4, 0x20a5, 0x20a6, 0x20a7, 0x20a8, 0x20a9, 0x20aa, 0x20ab, 0x20ac, 0x20ad, 0x20ae, 0x20af,
|
||||
/* B_ */ 0x20b0, 0x20b1, 0x20b2, 0x20b3, 0x20b4, 0x20b5, 0x20b6, 0x20b7, 0x20b8, 0x20b9, 0x20ba, 0x20bb, 0x20bc, 0x20bd, 0x20be, 0x20bf,
|
||||
/* C_ */ 0x20c0, 0x20c1, 0x20c2, 0x20c3, 0x20c4, 0x20c5, 0x20c6, 0x20c7, 0x20c8, 0x20c9, 0x20ca, 0x20cb, 0x20cc, 0x20cd, 0x20ce, 0x20cf,
|
||||
/* D_ */ 0x20d0, 0x20d1, 0x20d2, 0x20d3, 0x20d4, 0x20d5, 0x20d6, 0x20d7, 0x20d8, 0x20d9, 0x20da, 0x20db, 0x20dc, 0x20dd, 0x20de, 0x20df,
|
||||
/* E_ */ 0x20e0, 0x20e1, 0x20e2, 0x20e3, 0x20e4, 0x20e5, 0x20e6, 0x20e7, 0x20e8, 0x20e9, 0x20ea, 0x20eb, 0x20ec, 0x20ed, 0x20ee, 0x20ef,
|
||||
/* F_ */ 0x20f0, 0x20f1, 0x20f2, 0x20f3, 0x20f4, 0x20f5, 0x20f6, 0x20f7, 0x20f8, 0x20f9, 0x20fa, 0x20fb, 0x20fc, 0x20fd, 0x20fe, 0x20ff
|
||||
},
|
||||
{
|
||||
/* Block U22__ */
|
||||
/* _0 _1 _2 _3 _4 _5 _6 _7 _8 _9 _A _B _C _D _E _F */
|
||||
/* 0_ */ 0x2200, 0x2201, 0x2202, 0x2203, 0x2204, 0x2205, 0x2206, 0x2207, 0x220b, 0x220c, 0x220d, 0x2208, 0x2209, 0x220a, 0x220e, 0x220f,
|
||||
/* 1_ */ 0x2210, 0x2211, 0x2212, 0x2213, 0x2214, 0x29f5, 0x2216, 0x2217, 0x2218, 0x2219, 0x221a, 0x221b, 0x221c, 0x221d, 0x221e, 0x221f,
|
||||
/* 2_ */ 0x2220, 0x2221, 0x2222, 0x2223, 0x2224, 0x2225, 0x2226, 0x2227, 0x2228, 0x2229, 0x222a, 0x222b, 0x222c, 0x222d, 0x222e, 0x222f,
|
||||
/* 3_ */ 0x2230, 0x2231, 0x2232, 0x2233, 0x2234, 0x2235, 0x2236, 0x2237, 0x2238, 0x2239, 0x223a, 0x223b, 0x223d, 0x223c, 0x223e, 0x223f,
|
||||
/* 4_ */ 0x2240, 0x2241, 0x2242, 0x22cd, 0x2244, 0x2245, 0x2246, 0x2247, 0x2248, 0x2249, 0x224a, 0x224b, 0x224c, 0x224d, 0x224e, 0x224f,
|
||||
/* 5_ */ 0x2250, 0x2251, 0x2253, 0x2252, 0x2255, 0x2254, 0x2256, 0x2257, 0x2258, 0x2259, 0x225a, 0x225b, 0x225c, 0x225d, 0x225e, 0x225f,
|
||||
/* 6_ */ 0x2260, 0x2261, 0x2262, 0x2263, 0x2265, 0x2264, 0x2267, 0x2266, 0x2269, 0x2268, 0x226b, 0x226a, 0x226c, 0x226d, 0x226f, 0x226e,
|
||||
/* 7_ */ 0x2271, 0x2270, 0x2273, 0x2272, 0x2275, 0x2274, 0x2277, 0x2276, 0x2279, 0x2278, 0x227b, 0x227a, 0x227d, 0x227c, 0x227f, 0x227e,
|
||||
/* 8_ */ 0x2281, 0x2280, 0x2283, 0x2282, 0x2285, 0x2284, 0x2287, 0x2286, 0x2289, 0x2288, 0x228b, 0x228a, 0x228c, 0x228d, 0x228e, 0x2290,
|
||||
/* 9_ */ 0x228f, 0x2292, 0x2291, 0x2293, 0x2294, 0x2295, 0x2296, 0x2297, 0x29b8, 0x2299, 0x229a, 0x229b, 0x229c, 0x229d, 0x229e, 0x229f,
|
||||
/* A_ */ 0x22a0, 0x22a1, 0x22a3, 0x22a2, 0x22a4, 0x22a5, 0x2ade, 0x22a7, 0x2ae4, 0x2ae3, 0x22aa, 0x2ae5, 0x22ac, 0x22ad, 0x22ae, 0x22af,
|
||||
/* B_ */ 0x22b1, 0x22b0, 0x22b3, 0x22b2, 0x22b5, 0x22b4, 0x22b7, 0x22b6, 0x22b8, 0x22b9, 0x22ba, 0x22bb, 0x22bc, 0x22bd, 0x22be, 0x22bf,
|
||||
/* C_ */ 0x22c0, 0x22c1, 0x22c2, 0x22c3, 0x22c4, 0x22c5, 0x22c6, 0x22c7, 0x22c8, 0x22ca, 0x22c9, 0x22cc, 0x22cb, 0x2243, 0x22ce, 0x22cf,
|
||||
/* D_ */ 0x22d1, 0x22d0, 0x22d2, 0x22d3, 0x22d4, 0x22d5, 0x22d7, 0x22d6, 0x22d9, 0x22d8, 0x22db, 0x22da, 0x22dd, 0x22dc, 0x22df, 0x22de,
|
||||
/* E_ */ 0x22e1, 0x22e0, 0x22e3, 0x22e2, 0x22e5, 0x22e4, 0x22e7, 0x22e6, 0x22e9, 0x22e8, 0x22eb, 0x22ea, 0x22ed, 0x22ec, 0x22ee, 0x22ef,
|
||||
/* F_ */ 0x22f1, 0x22f0, 0x22fa, 0x22fb, 0x22fc, 0x22f5, 0x22fd, 0x22fe, 0x22f8, 0x22f9, 0x22f2, 0x22f3, 0x22f4, 0x22f6, 0x22f7, 0x22ff
|
||||
},
|
||||
{
|
||||
/* Block U23__ */
|
||||
/* _0 _1 _2 _3 _4 _5 _6 _7 _8 _9 _A _B _C _D _E _F */
|
||||
/* 0_ */ 0x2300, 0x2301, 0x2302, 0x2303, 0x2304, 0x2305, 0x2306, 0x2307, 0x2309, 0x2308, 0x230b, 0x230a, 0x230c, 0x230d, 0x230e, 0x230f,
|
||||
/* 1_ */ 0x2310, 0x2311, 0x2312, 0x2313, 0x2314, 0x2315, 0x2316, 0x2317, 0x2318, 0x2319, 0x231a, 0x231b, 0x231c, 0x231d, 0x231e, 0x231f,
|
||||
/* 2_ */ 0x2320, 0x2321, 0x2322, 0x2323, 0x2324, 0x2325, 0x2326, 0x2327, 0x2328, 0x232a, 0x2329, 0x232b, 0x232c, 0x232d, 0x232e, 0x232f,
|
||||
/* 3_ */ 0x2330, 0x2331, 0x2332, 0x2333, 0x2334, 0x2335, 0x2336, 0x2337, 0x2338, 0x2339, 0x233a, 0x233b, 0x233c, 0x233d, 0x233e, 0x233f,
|
||||
/* 4_ */ 0x2340, 0x2341, 0x2342, 0x2343, 0x2344, 0x2345, 0x2346, 0x2347, 0x2348, 0x2349, 0x234a, 0x234b, 0x234c, 0x234d, 0x234e, 0x234f,
|
||||
/* 5_ */ 0x2350, 0x2351, 0x2352, 0x2353, 0x2354, 0x2355, 0x2356, 0x2357, 0x2358, 0x2359, 0x235a, 0x235b, 0x235c, 0x235d, 0x235e, 0x235f,
|
||||
/* 6_ */ 0x2360, 0x2361, 0x2362, 0x2363, 0x2364, 0x2365, 0x2366, 0x2367, 0x2368, 0x2369, 0x236a, 0x236b, 0x236c, 0x236d, 0x236e, 0x236f,
|
||||
/* 7_ */ 0x2370, 0x2371, 0x2372, 0x2373, 0x2374, 0x2375, 0x2376, 0x2377, 0x2378, 0x2379, 0x237a, 0x237b, 0x237c, 0x237d, 0x237e, 0x237f,
|
||||
/* 8_ */ 0x2380, 0x2381, 0x2382, 0x2383, 0x2384, 0x2385, 0x2386, 0x2387, 0x2388, 0x2389, 0x238a, 0x238b, 0x238c, 0x238d, 0x238e, 0x238f,
|
||||
/* 9_ */ 0x2390, 0x2391, 0x2392, 0x2393, 0x2394, 0x2395, 0x2396, 0x2397, 0x2398, 0x2399, 0x239a, 0x239b, 0x239c, 0x239d, 0x239e, 0x239f,
|
||||
/* A_ */ 0x23a0, 0x23a1, 0x23a2, 0x23a3, 0x23a4, 0x23a5, 0x23a6, 0x23a7, 0x23a8, 0x23a9, 0x23aa, 0x23ab, 0x23ac, 0x23ad, 0x23ae, 0x23af,
|
||||
/* B_ */ 0x23b0, 0x23b1, 0x23b2, 0x23b3, 0x23b4, 0x23b5, 0x23b6, 0x23b7, 0x23b8, 0x23b9, 0x23ba, 0x23bb, 0x23bc, 0x23bd, 0x23be, 0x23bf,
|
||||
/* C_ */ 0x23c0, 0x23c1, 0x23c2, 0x23c3, 0x23c4, 0x23c5, 0x23c6, 0x23c7, 0x23c8, 0x23c9, 0x23ca, 0x23cb, 0x23cc, 0x23cd, 0x23ce, 0x23cf,
|
||||
/* D_ */ 0x23d0, 0x23d1, 0x23d2, 0x23d3, 0x23d4, 0x23d5, 0x23d6, 0x23d7, 0x23d8, 0x23d9, 0x23da, 0x23db, 0x23dc, 0x23dd, 0x23de, 0x23df,
|
||||
/* E_ */ 0x23e0, 0x23e1, 0x23e2, 0x23e3, 0x23e4, 0x23e5, 0x23e6, 0x23e7, 0x23e8, 0x23e9, 0x23ea, 0x23eb, 0x23ec, 0x23ed, 0x23ee, 0x23ef,
|
||||
/* F_ */ 0x23f0, 0x23f1, 0x23f2, 0x23f3, 0x23f4, 0x23f5, 0x23f6, 0x23f7, 0x23f8, 0x23f9, 0x23fa, 0x23fb, 0x23fc, 0x23fd, 0x23fe, 0x23ff
|
||||
},
|
||||
{
|
||||
/* Block U27__ */
|
||||
/* _0 _1 _2 _3 _4 _5 _6 _7 _8 _9 _A _B _C _D _E _F */
|
||||
/* 0_ */ 0x2700, 0x2701, 0x2702, 0x2703, 0x2704, 0x2705, 0x2706, 0x2707, 0x2708, 0x2709, 0x270a, 0x270b, 0x270c, 0x270d, 0x270e, 0x270f,
|
||||
/* 1_ */ 0x2710, 0x2711, 0x2712, 0x2713, 0x2714, 0x2715, 0x2716, 0x2717, 0x2718, 0x2719, 0x271a, 0x271b, 0x271c, 0x271d, 0x271e, 0x271f,
|
||||
/* 2_ */ 0x2720, 0x2721, 0x2722, 0x2723, 0x2724, 0x2725, 0x2726, 0x2727, 0x2728, 0x2729, 0x272a, 0x272b, 0x272c, 0x272d, 0x272e, 0x272f,
|
||||
/* 3_ */ 0x2730, 0x2731, 0x2732, 0x2733, 0x2734, 0x2735, 0x2736, 0x2737, 0x2738, 0x2739, 0x273a, 0x273b, 0x273c, 0x273d, 0x273e, 0x273f,
|
||||
/* 4_ */ 0x2740, 0x2741, 0x2742, 0x2743, 0x2744, 0x2745, 0x2746, 0x2747, 0x2748, 0x2749, 0x274a, 0x274b, 0x274c, 0x274d, 0x274e, 0x274f,
|
||||
/* 5_ */ 0x2750, 0x2751, 0x2752, 0x2753, 0x2754, 0x2755, 0x2756, 0x2757, 0x2758, 0x2759, 0x275a, 0x275b, 0x275c, 0x275d, 0x275e, 0x275f,
|
||||
/* 6_ */ 0x2760, 0x2761, 0x2762, 0x2763, 0x2764, 0x2765, 0x2766, 0x2767, 0x2769, 0x2768, 0x276b, 0x276a, 0x276d, 0x276c, 0x276f, 0x276e,
|
||||
/* 7_ */ 0x2771, 0x2770, 0x2773, 0x2772, 0x2775, 0x2774, 0x2776, 0x2777, 0x2778, 0x2779, 0x277a, 0x277b, 0x277c, 0x277d, 0x277e, 0x277f,
|
||||
/* 8_ */ 0x2780, 0x2781, 0x2782, 0x2783, 0x2784, 0x2785, 0x2786, 0x2787, 0x2788, 0x2789, 0x278a, 0x278b, 0x278c, 0x278d, 0x278e, 0x278f,
|
||||
/* 9_ */ 0x2790, 0x2791, 0x2792, 0x2793, 0x2794, 0x2795, 0x2796, 0x2797, 0x2798, 0x2799, 0x279a, 0x279b, 0x279c, 0x279d, 0x279e, 0x279f,
|
||||
/* A_ */ 0x27a0, 0x27a1, 0x27a2, 0x27a3, 0x27a4, 0x27a5, 0x27a6, 0x27a7, 0x27a8, 0x27a9, 0x27aa, 0x27ab, 0x27ac, 0x27ad, 0x27ae, 0x27af,
|
||||
/* B_ */ 0x27b0, 0x27b1, 0x27b2, 0x27b3, 0x27b4, 0x27b5, 0x27b6, 0x27b7, 0x27b8, 0x27b9, 0x27ba, 0x27bb, 0x27bc, 0x27bd, 0x27be, 0x27bf,
|
||||
/* C_ */ 0x27c0, 0x27c1, 0x27c2, 0x27c4, 0x27c3, 0x27c6, 0x27c5, 0x27c7, 0x27c8, 0x27c9, 0x27ca, 0x27cb, 0x27cc, 0x27cd, 0x27ce, 0x27cf,
|
||||
/* D_ */ 0x27d0, 0x27d1, 0x27d2, 0x27d3, 0x27d4, 0x27d6, 0x27d5, 0x27d7, 0x27d8, 0x27d9, 0x27da, 0x27db, 0x27dc, 0x27de, 0x27dd, 0x27df,
|
||||
/* E_ */ 0x27e0, 0x27e1, 0x27e3, 0x27e2, 0x27e5, 0x27e4, 0x27e7, 0x27e6, 0x27e9, 0x27e8, 0x27eb, 0x27ea, 0x27ec, 0x27ed, 0x27ee, 0x27ef,
|
||||
/* F_ */ 0x27f0, 0x27f1, 0x27f2, 0x27f3, 0x27f4, 0x27f5, 0x27f6, 0x27f7, 0x27f8, 0x27f9, 0x27fa, 0x27fb, 0x27fc, 0x27fd, 0x27fe, 0x27ff
|
||||
},
|
||||
{
|
||||
/* Block U29__ */
|
||||
/* _0 _1 _2 _3 _4 _5 _6 _7 _8 _9 _A _B _C _D _E _F */
|
||||
/* 0_ */ 0x2900, 0x2901, 0x2902, 0x2903, 0x2904, 0x2905, 0x2906, 0x2907, 0x2908, 0x2909, 0x290a, 0x290b, 0x290c, 0x290d, 0x290e, 0x290f,
|
||||
/* 1_ */ 0x2910, 0x2911, 0x2912, 0x2913, 0x2914, 0x2915, 0x2916, 0x2917, 0x2918, 0x2919, 0x291a, 0x291b, 0x291c, 0x291d, 0x291e, 0x291f,
|
||||
/* 2_ */ 0x2920, 0x2921, 0x2922, 0x2923, 0x2924, 0x2925, 0x2926, 0x2927, 0x2928, 0x2929, 0x292a, 0x292b, 0x292c, 0x292d, 0x292e, 0x292f,
|
||||
/* 3_ */ 0x2930, 0x2931, 0x2932, 0x2933, 0x2934, 0x2935, 0x2936, 0x2937, 0x2938, 0x2939, 0x293a, 0x293b, 0x293c, 0x293d, 0x293e, 0x293f,
|
||||
/* 4_ */ 0x2940, 0x2941, 0x2942, 0x2943, 0x2944, 0x2945, 0x2946, 0x2947, 0x2948, 0x2949, 0x294a, 0x294b, 0x294c, 0x294d, 0x294e, 0x294f,
|
||||
/* 5_ */ 0x2950, 0x2951, 0x2952, 0x2953, 0x2954, 0x2955, 0x2956, 0x2957, 0x2958, 0x2959, 0x295a, 0x295b, 0x295c, 0x295d, 0x295e, 0x295f,
|
||||
/* 6_ */ 0x2960, 0x2961, 0x2962, 0x2963, 0x2964, 0x2965, 0x2966, 0x2967, 0x2968, 0x2969, 0x296a, 0x296b, 0x296c, 0x296d, 0x296e, 0x296f,
|
||||
/* 7_ */ 0x2970, 0x2971, 0x2972, 0x2973, 0x2974, 0x2975, 0x2976, 0x2977, 0x2978, 0x2979, 0x297a, 0x297b, 0x297c, 0x297d, 0x297e, 0x297f,
|
||||
/* 8_ */ 0x2980, 0x2981, 0x2982, 0x2984, 0x2983, 0x2986, 0x2985, 0x2988, 0x2987, 0x298a, 0x2989, 0x298c, 0x298b, 0x2990, 0x298f, 0x298e,
|
||||
/* 9_ */ 0x298d, 0x2992, 0x2991, 0x2994, 0x2993, 0x2996, 0x2995, 0x2998, 0x2997, 0x2999, 0x299a, 0x299b, 0x299c, 0x299d, 0x299e, 0x299f,
|
||||
/* A_ */ 0x29a0, 0x29a1, 0x29a2, 0x29a3, 0x29a4, 0x29a5, 0x29a6, 0x29a7, 0x29a8, 0x29a9, 0x29aa, 0x29ab, 0x29ac, 0x29ad, 0x29ae, 0x29af,
|
||||
/* B_ */ 0x29b0, 0x29b1, 0x29b2, 0x29b3, 0x29b4, 0x29b5, 0x29b6, 0x29b7, 0x2298, 0x29b9, 0x29ba, 0x29bb, 0x29bc, 0x29bd, 0x29be, 0x29bf,
|
||||
/* C_ */ 0x29c1, 0x29c0, 0x29c2, 0x29c3, 0x29c5, 0x29c4, 0x29c6, 0x29c7, 0x29c8, 0x29c9, 0x29ca, 0x29cb, 0x29cc, 0x29cd, 0x29ce, 0x29d0,
|
||||
/* D_ */ 0x29cf, 0x29d2, 0x29d1, 0x29d3, 0x29d5, 0x29d4, 0x29d6, 0x29d7, 0x29d9, 0x29d8, 0x29db, 0x29da, 0x29dc, 0x29dd, 0x29de, 0x29df,
|
||||
/* E_ */ 0x29e0, 0x29e1, 0x29e2, 0x29e3, 0x29e4, 0x29e5, 0x29e6, 0x29e7, 0x29e8, 0x29e9, 0x29ea, 0x29eb, 0x29ec, 0x29ed, 0x29ee, 0x29ef,
|
||||
/* F_ */ 0x29f0, 0x29f1, 0x29f2, 0x29f3, 0x29f4, 0x2215, 0x29f6, 0x29f7, 0x29f9, 0x29f8, 0x29fa, 0x29fb, 0x29fd, 0x29fc, 0x29fe, 0x29ff
|
||||
},
|
||||
{
|
||||
/* Block U2A__ */
|
||||
/* _0 _1 _2 _3 _4 _5 _6 _7 _8 _9 _A _B _C _D _E _F */
|
||||
/* 0_ */ 0x2a00, 0x2a01, 0x2a02, 0x2a03, 0x2a04, 0x2a05, 0x2a06, 0x2a07, 0x2a08, 0x2a09, 0x2a0a, 0x2a0b, 0x2a0c, 0x2a0d, 0x2a0e, 0x2a0f,
|
||||
/* 1_ */ 0x2a10, 0x2a11, 0x2a12, 0x2a13, 0x2a14, 0x2a15, 0x2a16, 0x2a17, 0x2a18, 0x2a19, 0x2a1a, 0x2a1b, 0x2a1c, 0x2a1d, 0x2a1e, 0x2a1f,
|
||||
/* 2_ */ 0x2a20, 0x2a21, 0x2a22, 0x2a23, 0x2a24, 0x2a25, 0x2a26, 0x2a27, 0x2a28, 0x2a29, 0x2a2a, 0x2a2c, 0x2a2b, 0x2a2e, 0x2a2d, 0x2a2f,
|
||||
/* 3_ */ 0x2a30, 0x2a31, 0x2a32, 0x2a33, 0x2a35, 0x2a34, 0x2a36, 0x2a37, 0x2a38, 0x2a39, 0x2a3a, 0x2a3b, 0x2a3d, 0x2a3c, 0x2a3e, 0x2a3f,
|
||||
/* 4_ */ 0x2a40, 0x2a41, 0x2a42, 0x2a43, 0x2a44, 0x2a45, 0x2a46, 0x2a47, 0x2a48, 0x2a49, 0x2a4a, 0x2a4b, 0x2a4c, 0x2a4d, 0x2a4e, 0x2a4f,
|
||||
/* 5_ */ 0x2a50, 0x2a51, 0x2a52, 0x2a53, 0x2a54, 0x2a55, 0x2a56, 0x2a57, 0x2a58, 0x2a59, 0x2a5a, 0x2a5b, 0x2a5c, 0x2a5d, 0x2a5e, 0x2a5f,
|
||||
/* 6_ */ 0x2a60, 0x2a61, 0x2a62, 0x2a63, 0x2a65, 0x2a64, 0x2a66, 0x2a67, 0x2a68, 0x2a69, 0x2a6a, 0x2a6b, 0x2a6c, 0x2a6d, 0x2a6e, 0x2a6f,
|
||||
/* 7_ */ 0x2a70, 0x2a71, 0x2a72, 0x2a73, 0x2a74, 0x2a75, 0x2a76, 0x2a77, 0x2a78, 0x2a7a, 0x2a79, 0x2a7b, 0x2a7c, 0x2a7e, 0x2a7d, 0x2a80,
|
||||
/* 8_ */ 0x2a7f, 0x2a82, 0x2a81, 0x2a84, 0x2a83, 0x2a85, 0x2a86, 0x2a87, 0x2a88, 0x2a89, 0x2a8a, 0x2a8c, 0x2a8b, 0x2a8d, 0x2a8e, 0x2a8f,
|
||||
/* 9_ */ 0x2a90, 0x2a92, 0x2a91, 0x2a94, 0x2a93, 0x2a96, 0x2a95, 0x2a98, 0x2a97, 0x2a9a, 0x2a99, 0x2a9c, 0x2a9b, 0x2a9d, 0x2a9e, 0x2a9f,
|
||||
/* A_ */ 0x2aa0, 0x2aa2, 0x2aa1, 0x2aa3, 0x2aa4, 0x2aa5, 0x2aa7, 0x2aa6, 0x2aa9, 0x2aa8, 0x2aab, 0x2aaa, 0x2aad, 0x2aac, 0x2aae, 0x2ab0,
|
||||
/* B_ */ 0x2aaf, 0x2ab1, 0x2ab2, 0x2ab4, 0x2ab3, 0x2ab5, 0x2ab6, 0x2ab7, 0x2ab8, 0x2ab9, 0x2aba, 0x2abc, 0x2abb, 0x2abe, 0x2abd, 0x2ac0,
|
||||
/* C_ */ 0x2abf, 0x2ac2, 0x2ac1, 0x2ac4, 0x2ac3, 0x2ac6, 0x2ac5, 0x2ac7, 0x2ac8, 0x2ac9, 0x2aca, 0x2acb, 0x2acc, 0x2ace, 0x2acd, 0x2ad0,
|
||||
/* D_ */ 0x2acf, 0x2ad2, 0x2ad1, 0x2ad4, 0x2ad3, 0x2ad6, 0x2ad5, 0x2ad7, 0x2ad8, 0x2ad9, 0x2ada, 0x2adb, 0x2adc, 0x2add, 0x22a6, 0x2adf,
|
||||
/* E_ */ 0x2ae0, 0x2ae1, 0x2ae2, 0x22a9, 0x22a8, 0x22ab, 0x2ae6, 0x2ae7, 0x2ae8, 0x2ae9, 0x2aea, 0x2aeb, 0x2aed, 0x2aec, 0x2aee, 0x2aef,
|
||||
/* F_ */ 0x2af0, 0x2af1, 0x2af2, 0x2af3, 0x2af4, 0x2af5, 0x2af6, 0x2af8, 0x2af7, 0x2afa, 0x2af9, 0x2afb, 0x2afc, 0x2afd, 0x2afe, 0x2aff
|
||||
},
|
||||
{
|
||||
/* Block U2E__ */
|
||||
/* _0 _1 _2 _3 _4 _5 _6 _7 _8 _9 _A _B _C _D _E _F */
|
||||
/* 0_ */ 0x2e00, 0x2e01, 0x2e03, 0x2e02, 0x2e05, 0x2e04, 0x2e06, 0x2e07, 0x2e08, 0x2e0a, 0x2e09, 0x2e0b, 0x2e0d, 0x2e0c, 0x2e0e, 0x2e0f,
|
||||
/* 1_ */ 0x2e10, 0x2e11, 0x2e12, 0x2e13, 0x2e14, 0x2e15, 0x2e16, 0x2e17, 0x2e18, 0x2e19, 0x2e1a, 0x2e1b, 0x2e1d, 0x2e1c, 0x2e1e, 0x2e1f,
|
||||
/* 2_ */ 0x2e20, 0x2e21, 0x2e22, 0x2e23, 0x2e24, 0x2e25, 0x2e26, 0x2e27, 0x2e28, 0x2e29, 0x2e2a, 0x2e2b, 0x2e2c, 0x2e2d, 0x2e2e, 0x2e2f,
|
||||
/* 3_ */ 0x2e30, 0x2e31, 0x2e32, 0x2e33, 0x2e34, 0x2e35, 0x2e36, 0x2e37, 0x2e38, 0x2e39, 0x2e3a, 0x2e3b, 0x2e3c, 0x2e3d, 0x2e3e, 0x2e3f,
|
||||
/* 4_ */ 0x2e40, 0x2e41, 0x2e42, 0x2e43, 0x2e44, 0x2e45, 0x2e46, 0x2e47, 0x2e48, 0x2e49, 0x2e4a, 0x2e4b, 0x2e4c, 0x2e4d, 0x2e4e, 0x2e4f,
|
||||
/* 5_ */ 0x2e50, 0x2e51, 0x2e52, 0x2e53, 0x2e54, 0x2e55, 0x2e56, 0x2e57, 0x2e58, 0x2e59, 0x2e5a, 0x2e5b, 0x2e5c, 0x2e5d, 0x2e5e, 0x2e5f,
|
||||
/* 6_ */ 0x2e60, 0x2e61, 0x2e62, 0x2e63, 0x2e64, 0x2e65, 0x2e66, 0x2e67, 0x2e68, 0x2e69, 0x2e6a, 0x2e6b, 0x2e6c, 0x2e6d, 0x2e6e, 0x2e6f,
|
||||
/* 7_ */ 0x2e70, 0x2e71, 0x2e72, 0x2e73, 0x2e74, 0x2e75, 0x2e76, 0x2e77, 0x2e78, 0x2e79, 0x2e7a, 0x2e7b, 0x2e7c, 0x2e7d, 0x2e7e, 0x2e7f,
|
||||
/* 8_ */ 0x2e80, 0x2e81, 0x2e82, 0x2e83, 0x2e84, 0x2e85, 0x2e86, 0x2e87, 0x2e88, 0x2e89, 0x2e8a, 0x2e8b, 0x2e8c, 0x2e8d, 0x2e8e, 0x2e8f,
|
||||
/* 9_ */ 0x2e90, 0x2e91, 0x2e92, 0x2e93, 0x2e94, 0x2e95, 0x2e96, 0x2e97, 0x2e98, 0x2e99, 0x2e9a, 0x2e9b, 0x2e9c, 0x2e9d, 0x2e9e, 0x2e9f,
|
||||
/* A_ */ 0x2ea0, 0x2ea1, 0x2ea2, 0x2ea3, 0x2ea4, 0x2ea5, 0x2ea6, 0x2ea7, 0x2ea8, 0x2ea9, 0x2eaa, 0x2eab, 0x2eac, 0x2ead, 0x2eae, 0x2eaf,
|
||||
/* B_ */ 0x2eb0, 0x2eb1, 0x2eb2, 0x2eb3, 0x2eb4, 0x2eb5, 0x2eb6, 0x2eb7, 0x2eb8, 0x2eb9, 0x2eba, 0x2ebb, 0x2ebc, 0x2ebd, 0x2ebe, 0x2ebf,
|
||||
/* C_ */ 0x2ec0, 0x2ec1, 0x2ec2, 0x2ec3, 0x2ec4, 0x2ec5, 0x2ec6, 0x2ec7, 0x2ec8, 0x2ec9, 0x2eca, 0x2ecb, 0x2ecc, 0x2ecd, 0x2ece, 0x2ecf,
|
||||
/* D_ */ 0x2ed0, 0x2ed1, 0x2ed2, 0x2ed3, 0x2ed4, 0x2ed5, 0x2ed6, 0x2ed7, 0x2ed8, 0x2ed9, 0x2eda, 0x2edb, 0x2edc, 0x2edd, 0x2ede, 0x2edf,
|
||||
/* E_ */ 0x2ee0, 0x2ee1, 0x2ee2, 0x2ee3, 0x2ee4, 0x2ee5, 0x2ee6, 0x2ee7, 0x2ee8, 0x2ee9, 0x2eea, 0x2eeb, 0x2eec, 0x2eed, 0x2eee, 0x2eef,
|
||||
/* F_ */ 0x2ef0, 0x2ef1, 0x2ef2, 0x2ef3, 0x2ef4, 0x2ef5, 0x2ef6, 0x2ef7, 0x2ef8, 0x2ef9, 0x2efa, 0x2efb, 0x2efc, 0x2efd, 0x2efe, 0x2eff
|
||||
},
|
||||
{
|
||||
/* Block U30__ */
|
||||
/* _0 _1 _2 _3 _4 _5 _6 _7 _8 _9 _A _B _C _D _E _F */
|
||||
/* 0_ */ 0x3000, 0x3001, 0x3002, 0x3003, 0x3004, 0x3005, 0x3006, 0x3007, 0x3009, 0x3008, 0x300b, 0x300a, 0x300d, 0x300c, 0x300f, 0x300e,
|
||||
/* 1_ */ 0x3011, 0x3010, 0x3012, 0x3013, 0x3015, 0x3014, 0x3017, 0x3016, 0x3019, 0x3018, 0x301b, 0x301a, 0x301c, 0x301d, 0x301e, 0x301f,
|
||||
/* 2_ */ 0x3020, 0x3021, 0x3022, 0x3023, 0x3024, 0x3025, 0x3026, 0x3027, 0x3028, 0x3029, 0x302a, 0x302b, 0x302c, 0x302d, 0x302e, 0x302f,
|
||||
/* 3_ */ 0x3030, 0x3031, 0x3032, 0x3033, 0x3034, 0x3035, 0x3036, 0x3037, 0x3038, 0x3039, 0x303a, 0x303b, 0x303c, 0x303d, 0x303e, 0x303f,
|
||||
/* 4_ */ 0x3040, 0x3041, 0x3042, 0x3043, 0x3044, 0x3045, 0x3046, 0x3047, 0x3048, 0x3049, 0x304a, 0x304b, 0x304c, 0x304d, 0x304e, 0x304f,
|
||||
/* 5_ */ 0x3050, 0x3051, 0x3052, 0x3053, 0x3054, 0x3055, 0x3056, 0x3057, 0x3058, 0x3059, 0x305a, 0x305b, 0x305c, 0x305d, 0x305e, 0x305f,
|
||||
/* 6_ */ 0x3060, 0x3061, 0x3062, 0x3063, 0x3064, 0x3065, 0x3066, 0x3067, 0x3068, 0x3069, 0x306a, 0x306b, 0x306c, 0x306d, 0x306e, 0x306f,
|
||||
/* 7_ */ 0x3070, 0x3071, 0x3072, 0x3073, 0x3074, 0x3075, 0x3076, 0x3077, 0x3078, 0x3079, 0x307a, 0x307b, 0x307c, 0x307d, 0x307e, 0x307f,
|
||||
/* 8_ */ 0x3080, 0x3081, 0x3082, 0x3083, 0x3084, 0x3085, 0x3086, 0x3087, 0x3088, 0x3089, 0x308a, 0x308b, 0x308c, 0x308d, 0x308e, 0x308f,
|
||||
/* 9_ */ 0x3090, 0x3091, 0x3092, 0x3093, 0x3094, 0x3095, 0x3096, 0x3097, 0x3098, 0x3099, 0x309a, 0x309b, 0x309c, 0x309d, 0x309e, 0x309f,
|
||||
/* A_ */ 0x30a0, 0x30a1, 0x30a2, 0x30a3, 0x30a4, 0x30a5, 0x30a6, 0x30a7, 0x30a8, 0x30a9, 0x30aa, 0x30ab, 0x30ac, 0x30ad, 0x30ae, 0x30af,
|
||||
/* B_ */ 0x30b0, 0x30b1, 0x30b2, 0x30b3, 0x30b4, 0x30b5, 0x30b6, 0x30b7, 0x30b8, 0x30b9, 0x30ba, 0x30bb, 0x30bc, 0x30bd, 0x30be, 0x30bf,
|
||||
/* C_ */ 0x30c0, 0x30c1, 0x30c2, 0x30c3, 0x30c4, 0x30c5, 0x30c6, 0x30c7, 0x30c8, 0x30c9, 0x30ca, 0x30cb, 0x30cc, 0x30cd, 0x30ce, 0x30cf,
|
||||
/* D_ */ 0x30d0, 0x30d1, 0x30d2, 0x30d3, 0x30d4, 0x30d5, 0x30d6, 0x30d7, 0x30d8, 0x30d9, 0x30da, 0x30db, 0x30dc, 0x30dd, 0x30de, 0x30df,
|
||||
/* E_ */ 0x30e0, 0x30e1, 0x30e2, 0x30e3, 0x30e4, 0x30e5, 0x30e6, 0x30e7, 0x30e8, 0x30e9, 0x30ea, 0x30eb, 0x30ec, 0x30ed, 0x30ee, 0x30ef,
|
||||
/* F_ */ 0x30f0, 0x30f1, 0x30f2, 0x30f3, 0x30f4, 0x30f5, 0x30f6, 0x30f7, 0x30f8, 0x30f9, 0x30fa, 0x30fb, 0x30fc, 0x30fd, 0x30fe, 0x30ff
|
||||
},
|
||||
{
|
||||
/* Block UFF__ */
|
||||
/* _0 _1 _2 _3 _4 _5 _6 _7 _8 _9 _A _B _C _D _E _F */
|
||||
/* 0_ */ 0xff00, 0xff01, 0xff02, 0xff03, 0xff04, 0xff05, 0xff06, 0xff07, 0xff09, 0xff08, 0xff0a, 0xff0b, 0xff0c, 0xff0d, 0xff0e, 0xff0f,
|
||||
/* 1_ */ 0xff10, 0xff11, 0xff12, 0xff13, 0xff14, 0xff15, 0xff16, 0xff17, 0xff18, 0xff19, 0xff1a, 0xff1b, 0xff1e, 0xff1d, 0xff1c, 0xff1f,
|
||||
/* 2_ */ 0xff20, 0xff21, 0xff22, 0xff23, 0xff24, 0xff25, 0xff26, 0xff27, 0xff28, 0xff29, 0xff2a, 0xff2b, 0xff2c, 0xff2d, 0xff2e, 0xff2f,
|
||||
/* 3_ */ 0xff30, 0xff31, 0xff32, 0xff33, 0xff34, 0xff35, 0xff36, 0xff37, 0xff38, 0xff39, 0xff3a, 0xff3d, 0xff3c, 0xff3b, 0xff3e, 0xff3f,
|
||||
/* 4_ */ 0xff40, 0xff41, 0xff42, 0xff43, 0xff44, 0xff45, 0xff46, 0xff47, 0xff48, 0xff49, 0xff4a, 0xff4b, 0xff4c, 0xff4d, 0xff4e, 0xff4f,
|
||||
/* 5_ */ 0xff50, 0xff51, 0xff52, 0xff53, 0xff54, 0xff55, 0xff56, 0xff57, 0xff58, 0xff59, 0xff5a, 0xff5d, 0xff5c, 0xff5b, 0xff5e, 0xff60,
|
||||
/* 6_ */ 0xff5f, 0xff61, 0xff63, 0xff62, 0xff64, 0xff65, 0xff66, 0xff67, 0xff68, 0xff69, 0xff6a, 0xff6b, 0xff6c, 0xff6d, 0xff6e, 0xff6f,
|
||||
/* 7_ */ 0xff70, 0xff71, 0xff72, 0xff73, 0xff74, 0xff75, 0xff76, 0xff77, 0xff78, 0xff79, 0xff7a, 0xff7b, 0xff7c, 0xff7d, 0xff7e, 0xff7f,
|
||||
/* 8_ */ 0xff80, 0xff81, 0xff82, 0xff83, 0xff84, 0xff85, 0xff86, 0xff87, 0xff88, 0xff89, 0xff8a, 0xff8b, 0xff8c, 0xff8d, 0xff8e, 0xff8f,
|
||||
/* 9_ */ 0xff90, 0xff91, 0xff92, 0xff93, 0xff94, 0xff95, 0xff96, 0xff97, 0xff98, 0xff99, 0xff9a, 0xff9b, 0xff9c, 0xff9d, 0xff9e, 0xff9f,
|
||||
/* A_ */ 0xffa0, 0xffa1, 0xffa2, 0xffa3, 0xffa4, 0xffa5, 0xffa6, 0xffa7, 0xffa8, 0xffa9, 0xffaa, 0xffab, 0xffac, 0xffad, 0xffae, 0xffaf,
|
||||
/* B_ */ 0xffb0, 0xffb1, 0xffb2, 0xffb3, 0xffb4, 0xffb5, 0xffb6, 0xffb7, 0xffb8, 0xffb9, 0xffba, 0xffbb, 0xffbc, 0xffbd, 0xffbe, 0xffbf,
|
||||
/* C_ */ 0xffc0, 0xffc1, 0xffc2, 0xffc3, 0xffc4, 0xffc5, 0xffc6, 0xffc7, 0xffc8, 0xffc9, 0xffca, 0xffcb, 0xffcc, 0xffcd, 0xffce, 0xffcf,
|
||||
/* D_ */ 0xffd0, 0xffd1, 0xffd2, 0xffd3, 0xffd4, 0xffd5, 0xffd6, 0xffd7, 0xffd8, 0xffd9, 0xffda, 0xffdb, 0xffdc, 0xffdd, 0xffde, 0xffdf,
|
||||
/* E_ */ 0xffe0, 0xffe1, 0xffe2, 0xffe3, 0xffe4, 0xffe5, 0xffe6, 0xffe7, 0xffe8, 0xffe9, 0xffea, 0xffeb, 0xffec, 0xffed, 0xffee, 0xffef,
|
||||
/* F_ */ 0xfff0, 0xfff1, 0xfff2, 0xfff3, 0xfff4, 0xfff5, 0xfff6, 0xfff7, 0xfff8, 0xfff9, 0xfffa, 0xfffb, 0xfffc, 0xfffd, 0xfffe, 0xffff
|
||||
}
|
||||
};
|
||||
|
||||
static PRUint32 Mirrored(PRUint32 u)
|
||||
{
|
||||
if (u < 0x10000) {
|
||||
PRUint8 index = symmtable_index[(u & 0xFFFFFF00) >> 8];
|
||||
if (index) {
|
||||
return symmtable[index - 1] [u & 0xFF];
|
||||
}
|
||||
}
|
||||
return u;
|
||||
}
|
|
@ -1,388 +0,0 @@
|
|||
#!/usr/local/bin/perl
|
||||
#
|
||||
# ***** BEGIN LICENSE BLOCK *****
|
||||
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
#
|
||||
# The contents of this file are subject to the Mozilla Public License Version
|
||||
# 1.1 (the "License"); you may not use this file except in compliance with
|
||||
# the License. You may obtain a copy of the License at
|
||||
# http://www.mozilla.org/MPL/
|
||||
#
|
||||
# Software distributed under the License is distributed on an "AS IS" basis,
|
||||
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
# for the specific language governing rights and limitations under the
|
||||
# License.
|
||||
#
|
||||
# The Original Code is mozilla.org code.
|
||||
#
|
||||
# The Initial Developer of the Original Code is
|
||||
# IBM Corporation.
|
||||
# Portions created by the Initial Developer are Copyright (C) 2000
|
||||
# the Initial Developer. All Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
#
|
||||
# Alternatively, the contents of this file may be used under the terms of
|
||||
# either of the GNU General Public License Version 2 or later (the "GPL"),
|
||||
# or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
# in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
# of those above. If you wish to allow use of your version of this file only
|
||||
# under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
# use your version of this file under the terms of the MPL, indicate your
|
||||
# decision by deleting the provisions above and replace them with the notice
|
||||
# and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
# the provisions above, a recipient may use your version of this file under
|
||||
# the terms of any one of the MPL, the GPL or the LGPL.
|
||||
#
|
||||
# ***** END LICENSE BLOCK *****
|
||||
|
||||
######################################################################
|
||||
#
|
||||
# Initial global variable
|
||||
#
|
||||
######################################################################
|
||||
|
||||
%gcount = ();
|
||||
%pat = ();
|
||||
|
||||
%map = (
|
||||
"L" => "1", # Left-to-Right
|
||||
"R" => "2", # Right-to-Left
|
||||
"AL" => "3", # Right-to-Left Arabic
|
||||
"AN" => "4", # Arabic Number
|
||||
"EN" => "5", # European Number
|
||||
"ES" => "6", # European Number Separator
|
||||
"ET" => "7", # European Number Terminator
|
||||
"CS" => "8", # Common Number Separator
|
||||
"ON" => "9", # Other Neutrals
|
||||
"NSM" => "10", # Non-Spacing Mark
|
||||
"BN" => "11", # Boundary Neutral
|
||||
"B" => "12", # Paragraph Separator
|
||||
"S" => "13", # Segment Separator
|
||||
"WS" => "14", # Whitespace
|
||||
"LRE" => "15", # Left-to-Right Embedding
|
||||
"RLE" => "15", # Right-to-Left Embedding
|
||||
"PDF" => "15", # Pop Directional Format
|
||||
"LRO" => "15", # Left-to-Right Override
|
||||
"RLO" => "15" # Right-to-Left Override
|
||||
);
|
||||
|
||||
%special = ();
|
||||
|
||||
######################################################################
|
||||
#
|
||||
# Open the unicode database file
|
||||
#
|
||||
######################################################################
|
||||
open ( UNICODATA , "< UnicodeData-Latest.txt")
|
||||
|| die "cannot find UnicodeData-Latest.txt";
|
||||
|
||||
######################################################################
|
||||
#
|
||||
# Open the output file
|
||||
#
|
||||
######################################################################
|
||||
open ( OUT , "> ../base/bidicattable.h")
|
||||
|| die "cannot open output ../base/src/bidicattable.h file";
|
||||
|
||||
######################################################################
|
||||
#
|
||||
# Generate license and header
|
||||
#
|
||||
######################################################################
|
||||
$npl = <<END_OF_NPL;
|
||||
/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
||||
*
|
||||
* ***** BEGIN LICENSE BLOCK *****
|
||||
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public License Version
|
||||
* 1.1 (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
* for the specific language governing rights and limitations under the
|
||||
* License.
|
||||
*
|
||||
* The Original Code is mozilla.org Code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is
|
||||
* IBM Corporation.
|
||||
* Portions created by the Initial Developer are Copyright (C) 2000
|
||||
* the Initial Developer. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the terms of
|
||||
* either of the GNU General Public License Version 2 or later (the "GPL"),
|
||||
* or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
* in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
* of those above. If you wish to allow use of your version of this file only
|
||||
* under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
* use your version of this file under the terms of the MPL, indicate your
|
||||
* decision by deleting the provisions above and replace them with the notice
|
||||
* and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
* the provisions above, a recipient may use your version of this file under
|
||||
* the terms of any one of the MPL, the GPL or the LGPL.
|
||||
*
|
||||
* ***** END LICENSE BLOCK ***** */
|
||||
/*
|
||||
DO NOT EDIT THIS DOCUMENT !!! THIS DOCUMENT IS GENERATED BY
|
||||
mozilla/layout/tools/genbidicattable.pl
|
||||
*/
|
||||
END_OF_NPL
|
||||
print OUT $npl;
|
||||
print OUT "\n\n#include \"nscore.h\" \n\n";
|
||||
|
||||
|
||||
%bidicategory = ();
|
||||
%sh = ();
|
||||
%sl = ();
|
||||
%sc = ();
|
||||
|
||||
######################################################################
|
||||
#
|
||||
# Process the file line by line
|
||||
#
|
||||
######################################################################
|
||||
while(<UNICODATA>) {
|
||||
chop;
|
||||
######################################################################
|
||||
#
|
||||
# Get value from fields
|
||||
#
|
||||
######################################################################
|
||||
@f = split(/;/ , $_);
|
||||
$c = $f[0]; # The unicode value
|
||||
$n = $f[1]; # The unicode name
|
||||
$g = $f[2]; # The General Category
|
||||
$b = $f[4]; # The Bidi Category
|
||||
|
||||
if(( substr($n, 0, 1) ne "<") || ($n eq "<control>"))
|
||||
{
|
||||
#
|
||||
# print $g;
|
||||
#
|
||||
|
||||
$gcount{$b}++;
|
||||
$bidicategory{$c} = $b;
|
||||
} else {
|
||||
|
||||
# Handle special block
|
||||
@pair=split(/, /, $n );
|
||||
$catnum = $map{$b};
|
||||
|
||||
# printf "[%s][%s] => %d\n", $pair[0], $pair[1], $catnum;
|
||||
if( $pair[1] eq "First>") {
|
||||
$sl{$pair[0]} = $c;
|
||||
$sc{$pair[0]} = $catnum;
|
||||
} elsif ( $pair[1] eq "Last>") {
|
||||
$sh{$pair[0]} = $c;
|
||||
if($sc{$pair[0]} ne $catnum)
|
||||
{
|
||||
print "WARNING !!!! error in handling special block\n\n";
|
||||
}
|
||||
} else {
|
||||
print "WARNING !!!! error in handling special block\n\n";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# XXX - How can this be made more flexible as new blocks are added to the UCDB?
|
||||
|
||||
@range = (
|
||||
0x0000, 0x07ff,
|
||||
0x0900, 0x1a1f,
|
||||
0x1d00, 0x2ddf,
|
||||
0x2e00, 0x33ff,
|
||||
0x4dc0, 0x4dff,
|
||||
0xa000, 0xa4ff,
|
||||
0xa700, 0xa82f,
|
||||
0xf900, 0x1018f,
|
||||
0x10300, 0x104ff,
|
||||
0x10800, 0x1083f,
|
||||
0x10a00, 0x10a5f,
|
||||
0x1d000, 0x1d7ff,
|
||||
0x2f800, 0x2fa1f,
|
||||
0xe0000, 0xe01ff
|
||||
);
|
||||
|
||||
|
||||
$totaldata = 0;
|
||||
|
||||
$tt=($#range+1) / 2;
|
||||
@patarray = ();
|
||||
|
||||
|
||||
# This should improve performance: put all the patterns like 0x11111111, 0x22222222 etc at the beginning of the table.
|
||||
# Since there are a lot of blocks with the same category, we should be able to save a lot of time extracting the digits
|
||||
for (0..15) {
|
||||
$pattern = "0x".(sprintf("%X", $_) x 8);
|
||||
$patarray[$_] = $pattern;
|
||||
$pat{$pattern} = $_;
|
||||
}
|
||||
|
||||
$newidx = 0x10;
|
||||
|
||||
for($t = 1; $t <= $tt; $t++)
|
||||
{
|
||||
$tl = $range[($t-1) * 2];
|
||||
$th = $range[($t-1) * 2 + 1];
|
||||
$ts = ( $th - $tl ) >> 3;
|
||||
$totaldata += $ts + 1;
|
||||
printf OUT "static PRUint8 gBidiCatIdx%d[%d] = {\n", $t, $ts + 1;
|
||||
for($i = ($tl >> 3); $i <= ($th >> 3) ; $i ++ )
|
||||
{
|
||||
$data = 0;
|
||||
|
||||
for($j = 0; $j < 8 ; $j++)
|
||||
{
|
||||
#defaults for unassigned characters
|
||||
#see http://www.unicode.org/Public/UNIDATA/UCD.html#Bidi_Class
|
||||
$test = ($i << 3) + $j;
|
||||
if ((($test >= 0x0590) && ($test <= 0x5FF)) ||
|
||||
(($test >= 0x07C0) && ($test <= 0x8FF)) ||
|
||||
(($test >= 0xFB1D) && ($test <= 0xFB4F)) ||
|
||||
(($test >= 0x10800) && ($test <=0x10FFF)))
|
||||
{
|
||||
$default = $map{"R"};
|
||||
} elsif ((($test >= 0x0600) && ($test <= 0x7BF)) ||
|
||||
(($test >= 0xFB50) && ($test <= 0xFDCF)) ||
|
||||
(($test >= 0xFDF0) && ($test <= 0xFDFF)) ||
|
||||
(($test >= 0xFE70) && ($test <= 0xFEFE)))
|
||||
{
|
||||
$default = $map{"AL"};
|
||||
} else
|
||||
{
|
||||
$default = $map{"L"};
|
||||
}
|
||||
$k = sprintf("%04X", (($i << 3) + $j));
|
||||
|
||||
$cat = $bidicategory{$k};
|
||||
if( $cat eq "")
|
||||
{
|
||||
$data = $data + ($default << (4*$j));
|
||||
} else {
|
||||
$data = $data + ($map{$cat} << (4*$j));
|
||||
}
|
||||
|
||||
}
|
||||
$pattern = sprintf("0x%08X", $data);
|
||||
|
||||
$idx = $pat{$pattern};
|
||||
unless( exists($pat{$pattern})){
|
||||
$idx = $newidx++;
|
||||
$patarray[$idx] = $pattern;
|
||||
$pat{$pattern} = $idx;
|
||||
}
|
||||
|
||||
printf OUT " %3d, /* U+%04X - U+%04X : %s */\n" ,
|
||||
$idx, ($i << 3),((($i +1)<< 3)-1), $pattern ;
|
||||
|
||||
|
||||
}
|
||||
printf OUT "};\n\n";
|
||||
|
||||
if($t ne $tt)
|
||||
{
|
||||
$tl = $range[($t-1) * 2 + 1] + 1;
|
||||
$th = $range[$t * 2] - 1;
|
||||
for($i = ($tl >> 3); $i <= ($th >> 3) ; $i ++ )
|
||||
{
|
||||
$data = 0;
|
||||
for($j = 0; $j < 8 ; $j++)
|
||||
{
|
||||
$k = sprintf("%04X", (($i << 3) + $j));
|
||||
|
||||
$cat = $bidicategory{$k};
|
||||
if( $cat ne "")
|
||||
{
|
||||
$data = $data + ($map{$cat} << (4*$j));
|
||||
}
|
||||
}
|
||||
$pattern = sprintf("0x%08X", $data);
|
||||
if($data ne 0)
|
||||
{
|
||||
print "WARNING, Unicode Database now contain characters" .
|
||||
"which we have not consider, change this program !!!\n\n";
|
||||
printf "Problem- U+%04X - U+%04X range\n", ($i << 3),((($i +1)<< 3)-1);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if($newidx > 255)
|
||||
{
|
||||
die "We have more than 255 patterns !!! - $newidx\n\n" .
|
||||
"This program is now broken!!!\n\n\n";
|
||||
|
||||
}
|
||||
printf OUT "static PRUint32 gBidiCatPat[$newidx] = {\n";
|
||||
for($i = 0 ; $i < $newidx; $i++)
|
||||
{
|
||||
printf OUT " %s, /* $i */\n", $patarray[$i] ;
|
||||
}
|
||||
printf OUT "};\n\n";
|
||||
$totaldata += $newidx * 4;
|
||||
|
||||
printf OUT "static eBidiCategory GetBidiCat(PRUint32 u)\n{\n";
|
||||
printf OUT " PRUint32 pat;\n";
|
||||
printf OUT " PRUint16 patidx;\n\n";
|
||||
|
||||
@special = keys(%sh);
|
||||
$sp = 0;
|
||||
foreach $s ( sort(@special) ) {
|
||||
# don't bother to define the special blocks unless they have a different
|
||||
# value from the default they would be given if they were undefined
|
||||
unless ($sc{$s} == $map{"L"}) {
|
||||
unless ($sp++) {
|
||||
%by_value = reverse %map;
|
||||
printf OUT " /* Handle blocks which share the same category */\n\n";
|
||||
}
|
||||
printf OUT " /* Handle %s block */\n", substr($s, 1);
|
||||
printf OUT " if((((PRUint32)0x%s)<=u)&&(u<=((PRUint32)0x%s))) \n", $sl{$s}, $sh{$s};
|
||||
printf OUT " return eBidiCat_$by_value{$sc{$s}}; \n\n";
|
||||
}
|
||||
}
|
||||
|
||||
printf OUT " /* Handle blocks which use index table mapping */ \n\n";
|
||||
for($t = 1; $t <= $tt; $t++)
|
||||
{
|
||||
$tl = $range[($t-1) * 2];
|
||||
$th = $range[($t-1) * 2 + 1];
|
||||
if ($tl == 0) {
|
||||
printf OUT " /* Handle U+%04X to U+%04X */\n", $tl, $th;
|
||||
printf OUT " if (u<=((PRUint32)0x%04X)) {\n", $th;
|
||||
printf OUT " patidx = gBidiCatIdx%d [( u >> 3 )];\n", $t;
|
||||
} else {
|
||||
printf OUT " /* Handle U+%04X to U+%04X */\n", $tl, $th;
|
||||
printf OUT " else if ((((PRUint32)0x%04X)<=u)&&(u<=((PRUint32)0x%04X))) {\n", $tl, $th;
|
||||
printf OUT " patidx = gBidiCatIdx%d [( (u -(PRUint32) 0x%04X) >> 3 )];\n", $t, $tl;
|
||||
}
|
||||
printf OUT " }\n\n";
|
||||
}
|
||||
printf OUT " else {\n";
|
||||
printf OUT " return eBidiCat_L; /* UNDEFINE = L */\n";
|
||||
printf OUT " }\n\n";
|
||||
|
||||
printf OUT " if (patidx < 0x10)\n";
|
||||
printf OUT " return (eBidiCategory)patidx;\n";
|
||||
printf OUT " else {\n";
|
||||
printf OUT " pat = gBidiCatPat[patidx];\n";
|
||||
printf OUT " return (eBidiCategory)((pat >> ((u % 8) * 4)) & 0x0F);\n";
|
||||
printf OUT " }\n}\n\n";
|
||||
|
||||
printf OUT "/* total data size = $totaldata */\n";
|
||||
print "total = $totaldata\n";
|
||||
|
||||
######################################################################
|
||||
#
|
||||
# Close files
|
||||
#
|
||||
######################################################################
|
||||
close(UNIDATA);
|
||||
close(OUT);
|
||||
|
Загрузка…
Ссылка в новой задаче