ICU-4337 add mirrored character data generated from Unicode data.
X-SVN-Rev: 18303
This commit is contained in:
parent
8bde5c7124
commit
fe031aafe0
@ -1,7 +1,5 @@
|
||||
/*
|
||||
* %W% %W%
|
||||
*
|
||||
* (C) Copyright IBM Corp. 1998-2003 - All Rights Reserved
|
||||
* (C) Copyright IBM Corp. 1998-2005 - All Rights Reserved
|
||||
*
|
||||
*/
|
||||
|
||||
@ -36,6 +34,7 @@ private:
|
||||
static const le_int32 controlCharsCount;
|
||||
|
||||
static const LEUnicode32 mirroredChars[];
|
||||
static const LEUnicode32 srahCderorrim[];
|
||||
|
||||
static const le_int32 mirroredCharsCount;
|
||||
|
||||
|
@ -43,28 +43,6 @@ const LEUnicode32 DefaultCharMapper::controlChars[] = {
|
||||
|
||||
const le_int32 DefaultCharMapper::controlCharsCount = ARRAY_SIZE(controlChars);
|
||||
|
||||
const LEUnicode32 DefaultCharMapper::mirroredChars[] = {
|
||||
0x0028, 0x0029, // ascii paired punctuation
|
||||
0x003c, 0x003e,
|
||||
0x005b, 0x005d,
|
||||
0x007b, 0x007d,
|
||||
0x2045, 0x2046, // math symbols (not complete)
|
||||
0x207d, 0x207e,
|
||||
0x208d, 0x208e,
|
||||
0x2264, 0x2265,
|
||||
0x3008, 0x3009, // chinese paired punctuation
|
||||
0x300a, 0x300b,
|
||||
0x300c, 0x300d,
|
||||
0x300e, 0x300f,
|
||||
0x3010, 0x3011,
|
||||
0x3014, 0x3015,
|
||||
0x3016, 0x3017,
|
||||
0x3018, 0x3019,
|
||||
0x301a, 0x301b
|
||||
};
|
||||
|
||||
const le_int32 DefaultCharMapper::mirroredCharsCount = ARRAY_SIZE(mirroredChars);
|
||||
|
||||
LEUnicode32 DefaultCharMapper::mapChar(LEUnicode32 ch) const
|
||||
{
|
||||
if (fFilterControls) {
|
||||
@ -76,12 +54,10 @@ LEUnicode32 DefaultCharMapper::mapChar(LEUnicode32 ch) const
|
||||
}
|
||||
|
||||
if (fMirror) {
|
||||
le_int32 index = OpenTypeUtilities::search((le_uint32) ch, (le_uint32 *)mirroredChars, mirroredCharsCount);
|
||||
le_int32 index = OpenTypeUtilities::search((le_uint32) ch, (le_uint32 *)DefaultCharMapper::mirroredChars, DefaultCharMapper::mirroredCharsCount);
|
||||
|
||||
if (mirroredChars[index] == ch) {
|
||||
le_int32 mirrorOffset = ((index & 1) == 0) ? 1 : -1;
|
||||
|
||||
return mirroredChars[index + mirrorOffset];
|
||||
return DefaultCharMapper::srahCderorrim[index];
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -105,6 +105,7 @@ MarkArrays.o \
|
||||
MarkToBasePosnSubtables.o \
|
||||
MarkToLigaturePosnSubtables.o \
|
||||
MarkToMarkPosnSubtables.o \
|
||||
MirroredCharData.o \
|
||||
MPreFixups.o \
|
||||
MultipleSubstSubtables.o \
|
||||
OpenTypeUtilities.o \
|
||||
|
108
icu4c/source/layout/MirroredCharData.cpp
Normal file
108
icu4c/source/layout/MirroredCharData.cpp
Normal file
@ -0,0 +1,108 @@
|
||||
/*
|
||||
*
|
||||
* (C) Copyright IBM Corp. 1998-2005. All Rights Reserved.
|
||||
*
|
||||
* WARNING: THIS FILE IS MACHINE GENERATED. DO NOT HAND EDIT IT UNLESS
|
||||
* YOU REALLY KNOW WHAT YOU'RE DOING.
|
||||
*
|
||||
* Generated on: 07/20/2005 10:43:59 AM PDT
|
||||
*/
|
||||
|
||||
#include "LETypes.h"
|
||||
#include "DefaultCharMapper.h"
|
||||
|
||||
U_NAMESPACE_BEGIN
|
||||
|
||||
const LEUnicode32 DefaultCharMapper::mirroredChars[] = {
|
||||
0x0028, 0x0029, 0x003C, 0x003E, 0x005B, 0x005D, 0x007B, 0x007D,
|
||||
0x00AB, 0x00BB, 0x2039, 0x203A, 0x2045, 0x2046, 0x207D, 0x207E,
|
||||
0x208D, 0x208E, 0x2208, 0x2209, 0x220A, 0x220B, 0x220C, 0x220D,
|
||||
0x2215, 0x223C, 0x223D, 0x2243, 0x2252, 0x2253, 0x2254, 0x2255,
|
||||
0x2264, 0x2265, 0x2266, 0x2267, 0x2268, 0x2269, 0x226A, 0x226B,
|
||||
0x226E, 0x226F, 0x2270, 0x2271, 0x2272, 0x2273, 0x2274, 0x2275,
|
||||
0x2276, 0x2277, 0x2278, 0x2279, 0x227A, 0x227B, 0x227C, 0x227D,
|
||||
0x227E, 0x227F, 0x2280, 0x2281, 0x2282, 0x2283, 0x2284, 0x2285,
|
||||
0x2286, 0x2287, 0x2288, 0x2289, 0x228A, 0x228B, 0x228F, 0x2290,
|
||||
0x2291, 0x2292, 0x2298, 0x22A2, 0x22A3, 0x22A6, 0x22A8, 0x22A9,
|
||||
0x22AB, 0x22B0, 0x22B1, 0x22B2, 0x22B3, 0x22B4, 0x22B5, 0x22B6,
|
||||
0x22B7, 0x22C9, 0x22CA, 0x22CB, 0x22CC, 0x22CD, 0x22D0, 0x22D1,
|
||||
0x22D6, 0x22D7, 0x22D8, 0x22D9, 0x22DA, 0x22DB, 0x22DC, 0x22DD,
|
||||
0x22DE, 0x22DF, 0x22E0, 0x22E1, 0x22E2, 0x22E3, 0x22E4, 0x22E5,
|
||||
0x22E6, 0x22E7, 0x22E8, 0x22E9, 0x22EA, 0x22EB, 0x22EC, 0x22ED,
|
||||
0x22F0, 0x22F1, 0x22F2, 0x22F3, 0x22F4, 0x22F6, 0x22F7, 0x22FA,
|
||||
0x22FB, 0x22FC, 0x22FD, 0x22FE, 0x2308, 0x2309, 0x230A, 0x230B,
|
||||
0x2329, 0x232A, 0x2768, 0x2769, 0x276A, 0x276B, 0x276C, 0x276D,
|
||||
0x276E, 0x276F, 0x2770, 0x2771, 0x2772, 0x2773, 0x2774, 0x2775,
|
||||
0x27C3, 0x27C4, 0x27C5, 0x27C6, 0x27D5, 0x27D6, 0x27DD, 0x27DE,
|
||||
0x27E2, 0x27E3, 0x27E4, 0x27E5, 0x27E6, 0x27E7, 0x27E8, 0x27E9,
|
||||
0x27EA, 0x27EB, 0x2983, 0x2984, 0x2985, 0x2986, 0x2987, 0x2988,
|
||||
0x2989, 0x298A, 0x298B, 0x298C, 0x298D, 0x298E, 0x298F, 0x2990,
|
||||
0x2991, 0x2992, 0x2993, 0x2994, 0x2995, 0x2996, 0x2997, 0x2998,
|
||||
0x29B8, 0x29C0, 0x29C1, 0x29C4, 0x29C5, 0x29CF, 0x29D0, 0x29D1,
|
||||
0x29D2, 0x29D4, 0x29D5, 0x29D8, 0x29D9, 0x29DA, 0x29DB, 0x29F5,
|
||||
0x29F8, 0x29F9, 0x29FC, 0x29FD, 0x2A2B, 0x2A2C, 0x2A2D, 0x2A2E,
|
||||
0x2A34, 0x2A35, 0x2A3C, 0x2A3D, 0x2A64, 0x2A65, 0x2A79, 0x2A7A,
|
||||
0x2A7D, 0x2A7E, 0x2A7F, 0x2A80, 0x2A81, 0x2A82, 0x2A83, 0x2A84,
|
||||
0x2A8B, 0x2A8C, 0x2A91, 0x2A92, 0x2A93, 0x2A94, 0x2A95, 0x2A96,
|
||||
0x2A97, 0x2A98, 0x2A99, 0x2A9A, 0x2A9B, 0x2A9C, 0x2AA1, 0x2AA2,
|
||||
0x2AA6, 0x2AA7, 0x2AA8, 0x2AA9, 0x2AAA, 0x2AAB, 0x2AAC, 0x2AAD,
|
||||
0x2AAF, 0x2AB0, 0x2AB3, 0x2AB4, 0x2ABB, 0x2ABC, 0x2ABD, 0x2ABE,
|
||||
0x2ABF, 0x2AC0, 0x2AC1, 0x2AC2, 0x2AC3, 0x2AC4, 0x2AC5, 0x2AC6,
|
||||
0x2ACD, 0x2ACE, 0x2ACF, 0x2AD0, 0x2AD1, 0x2AD2, 0x2AD3, 0x2AD4,
|
||||
0x2AD5, 0x2AD6, 0x2ADE, 0x2AE3, 0x2AE4, 0x2AE5, 0x2AEC, 0x2AED,
|
||||
0x2AF7, 0x2AF8, 0x2AF9, 0x2AFA, 0x2E02, 0x2E03, 0x2E04, 0x2E05,
|
||||
0x2E09, 0x2E0A, 0x2E0C, 0x2E0D, 0x2E1C, 0x2E1D, 0x3008, 0x3009,
|
||||
0x300A, 0x300B, 0x300C, 0x300D, 0x300E, 0x300F, 0x3010, 0x3011,
|
||||
0x3014, 0x3015, 0x3016, 0x3017, 0x3018, 0x3019, 0x301A, 0x301B,
|
||||
0xFF08, 0xFF09, 0xFF1C, 0xFF1E, 0xFF3B, 0xFF3D, 0xFF5B, 0xFF5D,
|
||||
0xFF5F, 0xFF60, 0xFF62, 0xFF63
|
||||
};
|
||||
|
||||
const LEUnicode32 DefaultCharMapper::srahCderorrim[] = {
|
||||
0x0029, 0x0028, 0x003E, 0x003C, 0x005D, 0x005B, 0x007D, 0x007B,
|
||||
0x00BB, 0x00AB, 0x203A, 0x2039, 0x2046, 0x2045, 0x207E, 0x207D,
|
||||
0x208E, 0x208D, 0x220B, 0x220C, 0x220D, 0x2208, 0x2209, 0x220A,
|
||||
0x29F5, 0x223D, 0x223C, 0x22CD, 0x2253, 0x2252, 0x2255, 0x2254,
|
||||
0x2265, 0x2264, 0x2267, 0x2266, 0x2269, 0x2268, 0x226B, 0x226A,
|
||||
0x226F, 0x226E, 0x2271, 0x2270, 0x2273, 0x2272, 0x2275, 0x2274,
|
||||
0x2277, 0x2276, 0x2279, 0x2278, 0x227B, 0x227A, 0x227D, 0x227C,
|
||||
0x227F, 0x227E, 0x2281, 0x2280, 0x2283, 0x2282, 0x2285, 0x2284,
|
||||
0x2287, 0x2286, 0x2289, 0x2288, 0x228B, 0x228A, 0x2290, 0x228F,
|
||||
0x2292, 0x2291, 0x29B8, 0x22A3, 0x22A2, 0x2ADE, 0x2AE4, 0x2AE3,
|
||||
0x2AE5, 0x22B1, 0x22B0, 0x22B3, 0x22B2, 0x22B5, 0x22B4, 0x22B7,
|
||||
0x22B6, 0x22CA, 0x22C9, 0x22CC, 0x22CB, 0x2243, 0x22D1, 0x22D0,
|
||||
0x22D7, 0x22D6, 0x22D9, 0x22D8, 0x22DB, 0x22DA, 0x22DD, 0x22DC,
|
||||
0x22DF, 0x22DE, 0x22E1, 0x22E0, 0x22E3, 0x22E2, 0x22E5, 0x22E4,
|
||||
0x22E7, 0x22E6, 0x22E9, 0x22E8, 0x22EB, 0x22EA, 0x22ED, 0x22EC,
|
||||
0x22F1, 0x22F0, 0x22FA, 0x22FB, 0x22FC, 0x22FD, 0x22FE, 0x22F2,
|
||||
0x22F3, 0x22F4, 0x22F6, 0x22F7, 0x2309, 0x2308, 0x230B, 0x230A,
|
||||
0x232A, 0x2329, 0x2769, 0x2768, 0x276B, 0x276A, 0x276D, 0x276C,
|
||||
0x276F, 0x276E, 0x2771, 0x2770, 0x2773, 0x2772, 0x2775, 0x2774,
|
||||
0x27C4, 0x27C3, 0x27C6, 0x27C5, 0x27D6, 0x27D5, 0x27DE, 0x27DD,
|
||||
0x27E3, 0x27E2, 0x27E5, 0x27E4, 0x27E7, 0x27E6, 0x27E9, 0x27E8,
|
||||
0x27EB, 0x27EA, 0x2984, 0x2983, 0x2986, 0x2985, 0x2988, 0x2987,
|
||||
0x298A, 0x2989, 0x298C, 0x298B, 0x2990, 0x298F, 0x298E, 0x298D,
|
||||
0x2992, 0x2991, 0x2994, 0x2993, 0x2996, 0x2995, 0x2998, 0x2997,
|
||||
0x2298, 0x29C1, 0x29C0, 0x29C5, 0x29C4, 0x29D0, 0x29CF, 0x29D2,
|
||||
0x29D1, 0x29D5, 0x29D4, 0x29D9, 0x29D8, 0x29DB, 0x29DA, 0x2215,
|
||||
0x29F9, 0x29F8, 0x29FD, 0x29FC, 0x2A2C, 0x2A2B, 0x2A2E, 0x2A2D,
|
||||
0x2A35, 0x2A34, 0x2A3D, 0x2A3C, 0x2A65, 0x2A64, 0x2A7A, 0x2A79,
|
||||
0x2A7E, 0x2A7D, 0x2A80, 0x2A7F, 0x2A82, 0x2A81, 0x2A84, 0x2A83,
|
||||
0x2A8C, 0x2A8B, 0x2A92, 0x2A91, 0x2A94, 0x2A93, 0x2A96, 0x2A95,
|
||||
0x2A98, 0x2A97, 0x2A9A, 0x2A99, 0x2A9C, 0x2A9B, 0x2AA2, 0x2AA1,
|
||||
0x2AA7, 0x2AA6, 0x2AA9, 0x2AA8, 0x2AAB, 0x2AAA, 0x2AAD, 0x2AAC,
|
||||
0x2AB0, 0x2AAF, 0x2AB4, 0x2AB3, 0x2ABC, 0x2ABB, 0x2ABE, 0x2ABD,
|
||||
0x2AC0, 0x2ABF, 0x2AC2, 0x2AC1, 0x2AC4, 0x2AC3, 0x2AC6, 0x2AC5,
|
||||
0x2ACE, 0x2ACD, 0x2AD0, 0x2ACF, 0x2AD2, 0x2AD1, 0x2AD4, 0x2AD3,
|
||||
0x2AD6, 0x2AD5, 0x22A6, 0x22A9, 0x22A8, 0x22AB, 0x2AED, 0x2AEC,
|
||||
0x2AF8, 0x2AF7, 0x2AFA, 0x2AF9, 0x2E03, 0x2E02, 0x2E05, 0x2E04,
|
||||
0x2E0A, 0x2E09, 0x2E0D, 0x2E0C, 0x2E1D, 0x2E1C, 0x3009, 0x3008,
|
||||
0x300B, 0x300A, 0x300D, 0x300C, 0x300F, 0x300E, 0x3011, 0x3010,
|
||||
0x3015, 0x3014, 0x3017, 0x3016, 0x3019, 0x3018, 0x301B, 0x301A,
|
||||
0xFF09, 0xFF08, 0xFF1E, 0xFF1C, 0xFF3D, 0xFF3B, 0xFF5D, 0xFF5B,
|
||||
0xFF60, 0xFF5F, 0xFF63, 0xFF62
|
||||
};
|
||||
|
||||
const le_int32 DefaultCharMapper::mirroredCharsCount = 332;
|
||||
|
||||
U_NAMESPACE_END
|
@ -283,6 +283,9 @@
|
||||
<File
|
||||
RelativePath=".\MarkToMarkPosnSubtables.cpp">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\MirroredCharData.cpp">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\MorphTables.cpp">
|
||||
</File>
|
||||
|
Loading…
Reference in New Issue
Block a user