xref: /trunk/main/i18nutil/source/utility/widthfolding_data.h (revision cdf0e10c4e3984b49a9502b011690b615761d4a3)
1*cdf0e10cSrcweir /*************************************************************************
2*cdf0e10cSrcweir  *
3*cdf0e10cSrcweir  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4*cdf0e10cSrcweir  *
5*cdf0e10cSrcweir  * Copyright 2000, 2010 Oracle and/or its affiliates.
6*cdf0e10cSrcweir  *
7*cdf0e10cSrcweir  * OpenOffice.org - a multi-platform office productivity suite
8*cdf0e10cSrcweir  *
9*cdf0e10cSrcweir  * This file is part of OpenOffice.org.
10*cdf0e10cSrcweir  *
11*cdf0e10cSrcweir  * OpenOffice.org is free software: you can redistribute it and/or modify
12*cdf0e10cSrcweir  * it under the terms of the GNU Lesser General Public License version 3
13*cdf0e10cSrcweir  * only, as published by the Free Software Foundation.
14*cdf0e10cSrcweir  *
15*cdf0e10cSrcweir  * OpenOffice.org is distributed in the hope that it will be useful,
16*cdf0e10cSrcweir  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17*cdf0e10cSrcweir  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18*cdf0e10cSrcweir  * GNU Lesser General Public License version 3 for more details
19*cdf0e10cSrcweir  * (a copy is included in the LICENSE file that accompanied this code).
20*cdf0e10cSrcweir  *
21*cdf0e10cSrcweir  * You should have received a copy of the GNU Lesser General Public License
22*cdf0e10cSrcweir  * version 3 along with OpenOffice.org.  If not, see
23*cdf0e10cSrcweir  * <http://www.openoffice.org/license.html>
24*cdf0e10cSrcweir  * for a copy of the LGPLv3 License.
25*cdf0e10cSrcweir  *
26*cdf0e10cSrcweir  ************************************************************************/
27*cdf0e10cSrcweir #ifndef INCLUDED_I18NUTIL_CASEFOLDING_DATA_H
28*cdf0e10cSrcweir #define INCLUDED_I18NUTIL_CASEFOLDING_DATA_H
29*cdf0e10cSrcweir 
30*cdf0e10cSrcweir #include <i18nutil/oneToOneMapping.hxx>
31*cdf0e10cSrcweir 
32*cdf0e10cSrcweir namespace com { namespace sun { namespace star { namespace i18n {
33*cdf0e10cSrcweir 
34*cdf0e10cSrcweir /*
35*cdf0e10cSrcweir   Unicode Normalization Forms
36*cdf0e10cSrcweir   http://www.unicode.org/unicode/reports/tr15/index.html
37*cdf0e10cSrcweir   http://www.w3.org/International/charlint/
38*cdf0e10cSrcweir */
39*cdf0e10cSrcweir 
40*cdf0e10cSrcweir typedef struct {
41*cdf0e10cSrcweir   sal_Unicode decomposited_character_1;
42*cdf0e10cSrcweir   sal_Unicode decomposited_character_2;
43*cdf0e10cSrcweir } decomposition_table_entry_t;
44*cdf0e10cSrcweir 
45*cdf0e10cSrcweir // bluedwarf:   0x3099 (COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK)
46*cdf0e10cSrcweir //           => 0x309b (KATAKANA-HIRAGANA VOICED SOUND MARK)
47*cdf0e10cSrcweir //
48*cdf0e10cSrcweir //              0x309a (COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK)
49*cdf0e10cSrcweir //           => 0x309c (KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK)
50*cdf0e10cSrcweir //
51*cdf0e10cSrcweir // the combining characters shouldn't be used
52*cdf0e10cSrcweir const decomposition_table_entry_t decomposition_table[] = {
53*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x3040
54*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x3041 HIRAGANA LETTER SMALL A
55*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x3042 HIRAGANA LETTER A
56*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x3043 HIRAGANA LETTER SMALL I
57*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x3044 HIRAGANA LETTER I
58*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x3045 HIRAGANA LETTER SMALL U
59*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x3046 HIRAGANA LETTER U
60*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x3047 HIRAGANA LETTER SMALL E
61*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x3048 HIRAGANA LETTER E
62*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x3049 HIRAGANA LETTER SMALL O
63*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x304a HIRAGANA LETTER O
64*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x304b HIRAGANA LETTER KA
65*cdf0e10cSrcweir     { 0x304b, 0x309b }, // 0x304c HIRAGANA LETTER GA --> HIRAGANA LETTER KA + COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK
66*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x304d HIRAGANA LETTER KI
67*cdf0e10cSrcweir     { 0x304d, 0x309b }, // 0x304e HIRAGANA LETTER GI --> HIRAGANA LETTER KI + COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK
68*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x304f HIRAGANA LETTER KU
69*cdf0e10cSrcweir     { 0x304f, 0x309b }, // 0x3050 HIRAGANA LETTER GU --> HIRAGANA LETTER KU + COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK
70*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x3051 HIRAGANA LETTER KE
71*cdf0e10cSrcweir     { 0x3051, 0x309b }, // 0x3052 HIRAGANA LETTER GE --> HIRAGANA LETTER KE + COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK
72*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x3053 HIRAGANA LETTER KO
73*cdf0e10cSrcweir     { 0x3053, 0x309b }, // 0x3054 HIRAGANA LETTER GO --> HIRAGANA LETTER KO + COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK
74*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x3055 HIRAGANA LETTER SA
75*cdf0e10cSrcweir     { 0x3055, 0x309b }, // 0x3056 HIRAGANA LETTER ZA --> HIRAGANA LETTER SA + COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK
76*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x3057 HIRAGANA LETTER SI
77*cdf0e10cSrcweir     { 0x3057, 0x309b }, // 0x3058 HIRAGANA LETTER ZI --> HIRAGANA LETTER SI + COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK
78*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x3059 HIRAGANA LETTER SU
79*cdf0e10cSrcweir     { 0x3059, 0x309b }, // 0x305a HIRAGANA LETTER ZU --> HIRAGANA LETTER SU + COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK
80*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x305b HIRAGANA LETTER SE
81*cdf0e10cSrcweir     { 0x305b, 0x309b }, // 0x305c HIRAGANA LETTER ZE --> HIRAGANA LETTER SE + COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK
82*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x305d HIRAGANA LETTER SO
83*cdf0e10cSrcweir     { 0x305d, 0x309b }, // 0x305e HIRAGANA LETTER ZO --> HIRAGANA LETTER SO + COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK
84*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x305f HIRAGANA LETTER TA
85*cdf0e10cSrcweir     { 0x305f, 0x309b }, // 0x3060 HIRAGANA LETTER DA --> HIRAGANA LETTER TA + COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK
86*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x3061 HIRAGANA LETTER TI
87*cdf0e10cSrcweir     { 0x3061, 0x309b }, // 0x3062 HIRAGANA LETTER DI --> HIRAGANA LETTER TI + COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK
88*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x3063 HIRAGANA LETTER SMALL TU
89*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x3064 HIRAGANA LETTER TU
90*cdf0e10cSrcweir     { 0x3064, 0x309b }, // 0x3065 HIRAGANA LETTER DU --> HIRAGANA LETTER TU + COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK
91*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x3066 HIRAGANA LETTER TE
92*cdf0e10cSrcweir     { 0x3066, 0x309b }, // 0x3067 HIRAGANA LETTER DE --> HIRAGANA LETTER TE + COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK
93*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x3068 HIRAGANA LETTER TO
94*cdf0e10cSrcweir     { 0x3068, 0x309b }, // 0x3069 HIRAGANA LETTER DO --> HIRAGANA LETTER TO + COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK
95*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x306a HIRAGANA LETTER NA
96*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x306b HIRAGANA LETTER NI
97*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x306c HIRAGANA LETTER NU
98*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x306d HIRAGANA LETTER NE
99*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x306e HIRAGANA LETTER NO
100*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x306f HIRAGANA LETTER HA
101*cdf0e10cSrcweir     { 0x306f, 0x309b }, // 0x3070 HIRAGANA LETTER BA --> HIRAGANA LETTER HA + COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK
102*cdf0e10cSrcweir     { 0x306f, 0x309c }, // 0x3071 HIRAGANA LETTER PA --> HIRAGANA LETTER HA + COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
103*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x3072 HIRAGANA LETTER HI
104*cdf0e10cSrcweir     { 0x3072, 0x309b }, // 0x3073 HIRAGANA LETTER BI --> HIRAGANA LETTER HI + COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK
105*cdf0e10cSrcweir     { 0x3072, 0x309c }, // 0x3074 HIRAGANA LETTER PI --> HIRAGANA LETTER HI + COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
106*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x3075 HIRAGANA LETTER HU
107*cdf0e10cSrcweir     { 0x3075, 0x309b }, // 0x3076 HIRAGANA LETTER BU --> HIRAGANA LETTER HU + COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK
108*cdf0e10cSrcweir     { 0x3075, 0x309c }, // 0x3077 HIRAGANA LETTER PU --> HIRAGANA LETTER HU + COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
109*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x3078 HIRAGANA LETTER HE
110*cdf0e10cSrcweir     { 0x3078, 0x309b }, // 0x3079 HIRAGANA LETTER BE --> HIRAGANA LETTER HE + COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK
111*cdf0e10cSrcweir     { 0x3078, 0x309c }, // 0x307a HIRAGANA LETTER PE --> HIRAGANA LETTER HE + COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
112*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x307b HIRAGANA LETTER HO
113*cdf0e10cSrcweir     { 0x307b, 0x309b }, // 0x307c HIRAGANA LETTER BO --> HIRAGANA LETTER HO + COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK
114*cdf0e10cSrcweir     { 0x307b, 0x309c }, // 0x307d HIRAGANA LETTER PO --> HIRAGANA LETTER HO + COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
115*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x307e HIRAGANA LETTER MA
116*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x307f HIRAGANA LETTER MI
117*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x3080 HIRAGANA LETTER MU
118*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x3081 HIRAGANA LETTER ME
119*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x3082 HIRAGANA LETTER MO
120*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x3083 HIRAGANA LETTER SMALL YA
121*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x3084 HIRAGANA LETTER YA
122*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x3085 HIRAGANA LETTER SMALL YU
123*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x3086 HIRAGANA LETTER YU
124*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x3087 HIRAGANA LETTER SMALL YO
125*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x3088 HIRAGANA LETTER YO
126*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x3089 HIRAGANA LETTER RA
127*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x308a HIRAGANA LETTER RI
128*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x308b HIRAGANA LETTER RU
129*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x308c HIRAGANA LETTER RE
130*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x308d HIRAGANA LETTER RO
131*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x308e HIRAGANA LETTER SMALL WA
132*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x308f HIRAGANA LETTER WA
133*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x3090 HIRAGANA LETTER WI
134*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x3091 HIRAGANA LETTER WE
135*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x3092 HIRAGANA LETTER WO
136*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x3093 HIRAGANA LETTER N
137*cdf0e10cSrcweir     { 0x3046, 0x309b }, // 0x3094 HIRAGANA LETTER VU --> HIRAGANA LETTER U + COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK
138*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x3095
139*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x3096
140*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x3097
141*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x3098
142*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x3099 COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK
143*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x309a COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
144*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x309b KATAKANA-HIRAGANA VOICED SOUND MARK
145*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x309c KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
146*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x309d HIRAGANA ITERATION MARK
147*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x309e HIRAGANA VOICED ITERATION MARK
148*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x309f
149*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x30a0
150*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x30a1 KATAKANA LETTER SMALL A
151*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x30a2 KATAKANA LETTER A
152*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x30a3 KATAKANA LETTER SMALL I
153*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x30a4 KATAKANA LETTER I
154*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x30a5 KATAKANA LETTER SMALL U
155*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x30a6 KATAKANA LETTER U
156*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x30a7 KATAKANA LETTER SMALL E
157*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x30a8 KATAKANA LETTER E
158*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x30a9 KATAKANA LETTER SMALL O
159*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x30aa KATAKANA LETTER O
160*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x30ab KATAKANA LETTER KA
161*cdf0e10cSrcweir     { 0x30ab, 0x309b }, // 0x30ac KATAKANA LETTER GA --> KATAKANA LETTER KA + COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK
162*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x30ad KATAKANA LETTER KI
163*cdf0e10cSrcweir     { 0x30ad, 0x309b }, // 0x30ae KATAKANA LETTER GI --> KATAKANA LETTER KI + COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK
164*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x30af KATAKANA LETTER KU
165*cdf0e10cSrcweir     { 0x30af, 0x309b }, // 0x30b0 KATAKANA LETTER GU --> KATAKANA LETTER KU + COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK
166*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x30b1 KATAKANA LETTER KE
167*cdf0e10cSrcweir     { 0x30b1, 0x309b }, // 0x30b2 KATAKANA LETTER GE --> KATAKANA LETTER KE + COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK
168*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x30b3 KATAKANA LETTER KO
169*cdf0e10cSrcweir     { 0x30b3, 0x309b }, // 0x30b4 KATAKANA LETTER GO --> KATAKANA LETTER KO + COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK
170*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x30b5 KATAKANA LETTER SA
171*cdf0e10cSrcweir     { 0x30b5, 0x309b }, // 0x30b6 KATAKANA LETTER ZA --> KATAKANA LETTER SA + COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK
172*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x30b7 KATAKANA LETTER SI
173*cdf0e10cSrcweir     { 0x30b7, 0x309b }, // 0x30b8 KATAKANA LETTER ZI --> KATAKANA LETTER SI + COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK
174*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x30b9 KATAKANA LETTER SU
175*cdf0e10cSrcweir     { 0x30b9, 0x309b }, // 0x30ba KATAKANA LETTER ZU --> KATAKANA LETTER SU + COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK
176*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x30bb KATAKANA LETTER SE
177*cdf0e10cSrcweir     { 0x30bb, 0x309b }, // 0x30bc KATAKANA LETTER ZE --> KATAKANA LETTER SE + COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK
178*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x30bd KATAKANA LETTER SO
179*cdf0e10cSrcweir     { 0x30bd, 0x309b }, // 0x30be KATAKANA LETTER ZO --> KATAKANA LETTER SO + COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK
180*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x30bf KATAKANA LETTER TA
181*cdf0e10cSrcweir     { 0x30bf, 0x309b }, // 0x30c0 KATAKANA LETTER DA --> KATAKANA LETTER TA + COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK
182*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x30c1 KATAKANA LETTER TI
183*cdf0e10cSrcweir     { 0x30c1, 0x309b }, // 0x30c2 KATAKANA LETTER DI --> KATAKANA LETTER TI + COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK
184*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x30c3 KATAKANA LETTER SMALL TU
185*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x30c4 KATAKANA LETTER TU
186*cdf0e10cSrcweir     { 0x30c4, 0x309b }, // 0x30c5 KATAKANA LETTER DU --> KATAKANA LETTER TU + COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK
187*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x30c6 KATAKANA LETTER TE
188*cdf0e10cSrcweir     { 0x30c6, 0x309b }, // 0x30c7 KATAKANA LETTER DE --> KATAKANA LETTER TE + COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK
189*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x30c8 KATAKANA LETTER TO
190*cdf0e10cSrcweir     { 0x30c8, 0x309b }, // 0x30c9 KATAKANA LETTER DO --> KATAKANA LETTER TO + COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK
191*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x30ca KATAKANA LETTER NA
192*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x30cb KATAKANA LETTER NI
193*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x30cc KATAKANA LETTER NU
194*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x30cd KATAKANA LETTER NE
195*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x30ce KATAKANA LETTER NO
196*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x30cf KATAKANA LETTER HA
197*cdf0e10cSrcweir     { 0x30cf, 0x309b }, // 0x30d0 KATAKANA LETTER BA --> KATAKANA LETTER HA + COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK
198*cdf0e10cSrcweir     { 0x30cf, 0x309c }, // 0x30d1 KATAKANA LETTER PA --> KATAKANA LETTER HA + COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
199*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x30d2 KATAKANA LETTER HI
200*cdf0e10cSrcweir     { 0x30d2, 0x309b }, // 0x30d3 KATAKANA LETTER BI --> KATAKANA LETTER HI + COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK
201*cdf0e10cSrcweir     { 0x30d2, 0x309c }, // 0x30d4 KATAKANA LETTER PI --> KATAKANA LETTER HI + COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
202*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x30d5 KATAKANA LETTER HU
203*cdf0e10cSrcweir     { 0x30d5, 0x309b }, // 0x30d6 KATAKANA LETTER BU --> KATAKANA LETTER HU + COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK
204*cdf0e10cSrcweir     { 0x30d5, 0x309c }, // 0x30d7 KATAKANA LETTER PU --> KATAKANA LETTER HU + COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
205*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x30d8 KATAKANA LETTER HE
206*cdf0e10cSrcweir     { 0x30d8, 0x309b }, // 0x30d9 KATAKANA LETTER BE --> KATAKANA LETTER HE + COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK
207*cdf0e10cSrcweir     { 0x30d8, 0x309c }, // 0x30da KATAKANA LETTER PE --> KATAKANA LETTER HE + COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
208*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x30db KATAKANA LETTER HO
209*cdf0e10cSrcweir     { 0x30db, 0x309b }, // 0x30dc KATAKANA LETTER BO --> KATAKANA LETTER HO + COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK
210*cdf0e10cSrcweir     { 0x30db, 0x309c }, // 0x30dd KATAKANA LETTER PO --> KATAKANA LETTER HO + COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
211*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x30de KATAKANA LETTER MA
212*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x30df KATAKANA LETTER MI
213*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x30e0 KATAKANA LETTER MU
214*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x30e1 KATAKANA LETTER ME
215*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x30e2 KATAKANA LETTER MO
216*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x30e3 KATAKANA LETTER SMALL YA
217*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x30e4 KATAKANA LETTER YA
218*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x30e5 KATAKANA LETTER SMALL YU
219*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x30e6 KATAKANA LETTER YU
220*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x30e7 KATAKANA LETTER SMALL YO
221*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x30e8 KATAKANA LETTER YO
222*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x30e9 KATAKANA LETTER RA
223*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x30ea KATAKANA LETTER RI
224*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x30eb KATAKANA LETTER RU
225*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x30ec KATAKANA LETTER RE
226*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x30ed KATAKANA LETTER RO
227*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x30ee KATAKANA LETTER SMALL WA
228*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x30ef KATAKANA LETTER WA
229*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x30f0 KATAKANA LETTER WI
230*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x30f1 KATAKANA LETTER WE
231*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x30f2 KATAKANA LETTER WO
232*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x30f3 KATAKANA LETTER N
233*cdf0e10cSrcweir     { 0x30a6, 0x309b }, // 0x30f4 KATAKANA LETTER VU --> KATAKANA LETTER U + COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK
234*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x30f5 KATAKANA LETTER SMALL KA
235*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x30f6 KATAKANA LETTER SMALL KE
236*cdf0e10cSrcweir     { 0x30ef, 0x309b }, // 0x30f7 KATAKANA LETTER VA --> KATAKANA LETTER WA + COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK
237*cdf0e10cSrcweir     { 0x30f0, 0x309b }, // 0x30f8 KATAKANA LETTER VI --> KATAKANA LETTER WI + COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK
238*cdf0e10cSrcweir     { 0x30f1, 0x309b }, // 0x30f9 KATAKANA LETTER VE --> KATAKANA LETTER WE + COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK
239*cdf0e10cSrcweir     { 0x30f2, 0x309b }, // 0x30fa KATAKANA LETTER VO --> KATAKANA LETTER WO + COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK
240*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x30fb KATAKANA MIDDLE DOT
241*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x30fc KATAKANA-HIRAGANA PROLONGED SOUND MARK
242*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x30fd KATAKANA ITERATION MARK
243*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x30fe KATAKANA VOICED ITERATION MARK
244*cdf0e10cSrcweir     { 0x0000, 0x0000 }  // 0x30ff
245*cdf0e10cSrcweir };
246*cdf0e10cSrcweir 
247*cdf0e10cSrcweir 
248*cdf0e10cSrcweir /*
249*cdf0e10cSrcweir   Halfwidth and Fullwidth Forms (U+FF00..U+FFEF)
250*cdf0e10cSrcweir   ftp://ftp.unicode.org/Public/3.0-Update/UnicodeData-3.0.0.txt
251*cdf0e10cSrcweir   ftp://ftp.unicode.org/Public/3.0-Update/UnicodeData-3.0.0.html
252*cdf0e10cSrcweir   http://charts.unicode.org/Web/UFF00.html
253*cdf0e10cSrcweir */
254*cdf0e10cSrcweir 
255*cdf0e10cSrcweir #define FULL2HALF_NORMAL              0x01
256*cdf0e10cSrcweir #define FULL2HALF_ASC_FUNCTION        0x02
257*cdf0e10cSrcweir #define FULL2HALF_KATAKANA_ONLY       0x04
258*cdf0e10cSrcweir 
259*cdf0e10cSrcweir UnicodePairWithFlag full2half[] = {
260*cdf0e10cSrcweir     { 0x2015, 0xFF70, FULL2HALF_ASC_FUNCTION },  // HORIZONTAL BAR --> KATAKANA-HIRAGANA PROLONGED SOUND MARK
261*cdf0e10cSrcweir     { 0x2018, 0x0060, FULL2HALF_ASC_FUNCTION },  // LEFT SINGLE QUOTATION MARK => GRAVE ACCENT
262*cdf0e10cSrcweir     { 0x2019, 0x0027, FULL2HALF_ASC_FUNCTION },  // RIGHT SINGLE QUOTATION MARK => APOSTROPHE
263*cdf0e10cSrcweir     { 0x201D, 0x0022, FULL2HALF_ASC_FUNCTION },  // RIGHT DOUBLE QUOTATION MARK => QUOTATION MARK
264*cdf0e10cSrcweir     { 0x2190, 0xFFE9, FULL2HALF_NORMAL },  // LEFTWARDS ARROW --> HALFWIDTH LEFTWARDS ARROW
265*cdf0e10cSrcweir     { 0x2191, 0xFFEA, FULL2HALF_NORMAL },  // UPWARDS ARROW --> HALFWIDTH UPWARDS ARROW
266*cdf0e10cSrcweir     { 0x2192, 0xFFEB, FULL2HALF_NORMAL },  // RIGHTWARDS ARROW --> HALFWIDTH RIGHTWARDS ARROW
267*cdf0e10cSrcweir     { 0x2193, 0xFFEC, FULL2HALF_NORMAL },  // DOWNWARDS ARROW --> HALFWIDTH DOWNWARDS ARROW
268*cdf0e10cSrcweir     { 0x2502, 0xFFE8, FULL2HALF_NORMAL },  // BOX DRAWINGS LIGHT VERTICAL --> HALFWIDTH FORMS LIGHT VERTICAL
269*cdf0e10cSrcweir     { 0x25A0, 0xFFED, FULL2HALF_NORMAL },  // BLACK SQUARE --> HALFWIDTH BLACK SQUARE
270*cdf0e10cSrcweir     { 0x25CB, 0xFFEE, FULL2HALF_NORMAL },  // WHITE CIRCLE --> HALFWIDTH WHITE CIRCLE
271*cdf0e10cSrcweir     { 0x3000, 0x0020, FULL2HALF_NORMAL },  // IDEOGRAPHIC SPACE --> SPACE
272*cdf0e10cSrcweir     { 0x3001, 0xFF64, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION },  // IDEOGRAPHIC COMMA --> HALFWIDTH IDEOGRAPHIC COMMA
273*cdf0e10cSrcweir     { 0x3002, 0xFF61, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION },  // IDEOGRAPHIC FULL STOP --> HALFWIDTH IDEOGRAPHIC FULL STOP
274*cdf0e10cSrcweir     { 0x300C, 0xFF62, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION },  // LEFT CORNER BRACKET --> HALFWIDTH LEFT CORNER BRACKET
275*cdf0e10cSrcweir     { 0x300D, 0xFF63, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION },  // RIGHT CORNER BRACKET --> HALFWIDTH RIGHT CORNER BRACKET
276*cdf0e10cSrcweir     { 0x3099, 0xFF9E, FULL2HALF_NORMAL },  // COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK --> HALFWIDTH KATAKANA VOICED SOUND MARK
277*cdf0e10cSrcweir     { 0x309A, 0xFF9F, FULL2HALF_NORMAL },  // COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK --> HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK
278*cdf0e10cSrcweir 
279*cdf0e10cSrcweir // bluedwarf: Added normal (semi-)voiced sound mark
280*cdf0e10cSrcweir     { 0x309B, 0xFF9E, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION | FULL2HALF_KATAKANA_ONLY },  // KATAKANA-HIRAGANA VOICED SOUND MARK --> HALFWIDTH KATAKANA VOICED SOUND MARK
281*cdf0e10cSrcweir     { 0x309C, 0xFF9F, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION | FULL2HALF_KATAKANA_ONLY },  // KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK --> HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK
282*cdf0e10cSrcweir 
283*cdf0e10cSrcweir     { 0x30A1, 0xFF67, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION | FULL2HALF_KATAKANA_ONLY },  // KATAKANA LETTER SMALL A --> HALFWIDTH KATAKANA LETTER SMALL A
284*cdf0e10cSrcweir     { 0x30A2, 0xFF71, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION | FULL2HALF_KATAKANA_ONLY },  // KATAKANA LETTER A --> HALFWIDTH KATAKANA LETTER A
285*cdf0e10cSrcweir     { 0x30A3, 0xFF68, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION | FULL2HALF_KATAKANA_ONLY },  // KATAKANA LETTER SMALL I --> HALFWIDTH KATAKANA LETTER SMALL I
286*cdf0e10cSrcweir     { 0x30A4, 0xFF72, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION | FULL2HALF_KATAKANA_ONLY },  // KATAKANA LETTER I --> HALFWIDTH KATAKANA LETTER I
287*cdf0e10cSrcweir     { 0x30A5, 0xFF69, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION | FULL2HALF_KATAKANA_ONLY },  // KATAKANA LETTER SMALL U --> HALFWIDTH KATAKANA LETTER SMALL U
288*cdf0e10cSrcweir     { 0x30A6, 0xFF73, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION | FULL2HALF_KATAKANA_ONLY },  // KATAKANA LETTER U --> HALFWIDTH KATAKANA LETTER U
289*cdf0e10cSrcweir     { 0x30A7, 0xFF6A, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION | FULL2HALF_KATAKANA_ONLY },  // KATAKANA LETTER SMALL E --> HALFWIDTH KATAKANA LETTER SMALL E
290*cdf0e10cSrcweir     { 0x30A8, 0xFF74, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION | FULL2HALF_KATAKANA_ONLY },  // KATAKANA LETTER E --> HALFWIDTH KATAKANA LETTER E
291*cdf0e10cSrcweir     { 0x30A9, 0xFF6B, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION | FULL2HALF_KATAKANA_ONLY },  // KATAKANA LETTER SMALL O --> HALFWIDTH KATAKANA LETTER SMALL O
292*cdf0e10cSrcweir     { 0x30AA, 0xFF75, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION | FULL2HALF_KATAKANA_ONLY },  // KATAKANA LETTER O --> HALFWIDTH KATAKANA LETTER O
293*cdf0e10cSrcweir     { 0x30AB, 0xFF76, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION | FULL2HALF_KATAKANA_ONLY },  // KATAKANA LETTER KA --> HALFWIDTH KATAKANA LETTER KA
294*cdf0e10cSrcweir     { 0x30AD, 0xFF77, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION | FULL2HALF_KATAKANA_ONLY },  // KATAKANA LETTER KI --> HALFWIDTH KATAKANA LETTER KI
295*cdf0e10cSrcweir     { 0x30AF, 0xFF78, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION | FULL2HALF_KATAKANA_ONLY },  // KATAKANA LETTER KU --> HALFWIDTH KATAKANA LETTER KU
296*cdf0e10cSrcweir     { 0x30B1, 0xFF79, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION | FULL2HALF_KATAKANA_ONLY },  // KATAKANA LETTER KE --> HALFWIDTH KATAKANA LETTER KE
297*cdf0e10cSrcweir     { 0x30B3, 0xFF7A, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION | FULL2HALF_KATAKANA_ONLY },  // KATAKANA LETTER KO --> HALFWIDTH KATAKANA LETTER KO
298*cdf0e10cSrcweir     { 0x30B5, 0xFF7B, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION | FULL2HALF_KATAKANA_ONLY },  // KATAKANA LETTER SA --> HALFWIDTH KATAKANA LETTER SA
299*cdf0e10cSrcweir     { 0x30B7, 0xFF7C, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION | FULL2HALF_KATAKANA_ONLY },  // KATAKANA LETTER SI --> HALFWIDTH KATAKANA LETTER SI
300*cdf0e10cSrcweir     { 0x30B9, 0xFF7D, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION | FULL2HALF_KATAKANA_ONLY },  // KATAKANA LETTER SU --> HALFWIDTH KATAKANA LETTER SU
301*cdf0e10cSrcweir     { 0x30BB, 0xFF7E, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION | FULL2HALF_KATAKANA_ONLY },  // KATAKANA LETTER SE --> HALFWIDTH KATAKANA LETTER SE
302*cdf0e10cSrcweir     { 0x30BD, 0xFF7F, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION | FULL2HALF_KATAKANA_ONLY },  // KATAKANA LETTER SO --> HALFWIDTH KATAKANA LETTER SO
303*cdf0e10cSrcweir     { 0x30BF, 0xFF80, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION | FULL2HALF_KATAKANA_ONLY },  // KATAKANA LETTER TA --> HALFWIDTH KATAKANA LETTER TA
304*cdf0e10cSrcweir     { 0x30C1, 0xFF81, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION | FULL2HALF_KATAKANA_ONLY },  // KATAKANA LETTER TI --> HALFWIDTH KATAKANA LETTER TI
305*cdf0e10cSrcweir     { 0x30C3, 0xFF6F, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION | FULL2HALF_KATAKANA_ONLY },  // KATAKANA LETTER SMALL TU --> HALFWIDTH KATAKANA LETTER SMALL TU
306*cdf0e10cSrcweir     { 0x30C4, 0xFF82, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION | FULL2HALF_KATAKANA_ONLY },  // KATAKANA LETTER TU --> HALFWIDTH KATAKANA LETTER TU
307*cdf0e10cSrcweir     { 0x30C6, 0xFF83, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION | FULL2HALF_KATAKANA_ONLY },  // KATAKANA LETTER TE --> HALFWIDTH KATAKANA LETTER TE
308*cdf0e10cSrcweir     { 0x30C8, 0xFF84, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION | FULL2HALF_KATAKANA_ONLY },  // KATAKANA LETTER TO --> HALFWIDTH KATAKANA LETTER TO
309*cdf0e10cSrcweir     { 0x30CA, 0xFF85, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION | FULL2HALF_KATAKANA_ONLY },  // KATAKANA LETTER NA --> HALFWIDTH KATAKANA LETTER NA
310*cdf0e10cSrcweir     { 0x30CB, 0xFF86, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION | FULL2HALF_KATAKANA_ONLY },  // KATAKANA LETTER NI --> HALFWIDTH KATAKANA LETTER NI
311*cdf0e10cSrcweir     { 0x30CC, 0xFF87, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION | FULL2HALF_KATAKANA_ONLY },  // KATAKANA LETTER NU --> HALFWIDTH KATAKANA LETTER NU
312*cdf0e10cSrcweir     { 0x30CD, 0xFF88, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION | FULL2HALF_KATAKANA_ONLY },  // KATAKANA LETTER NE --> HALFWIDTH KATAKANA LETTER NE
313*cdf0e10cSrcweir     { 0x30CE, 0xFF89, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION | FULL2HALF_KATAKANA_ONLY },  // KATAKANA LETTER NO --> HALFWIDTH KATAKANA LETTER NO
314*cdf0e10cSrcweir     { 0x30CF, 0xFF8A, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION | FULL2HALF_KATAKANA_ONLY },  // KATAKANA LETTER HA --> HALFWIDTH KATAKANA LETTER HA
315*cdf0e10cSrcweir     { 0x30D2, 0xFF8B, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION | FULL2HALF_KATAKANA_ONLY },  // KATAKANA LETTER HI --> HALFWIDTH KATAKANA LETTER HI
316*cdf0e10cSrcweir     { 0x30D5, 0xFF8C, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION | FULL2HALF_KATAKANA_ONLY },  // KATAKANA LETTER HU --> HALFWIDTH KATAKANA LETTER HU
317*cdf0e10cSrcweir     { 0x30D8, 0xFF8D, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION | FULL2HALF_KATAKANA_ONLY },  // KATAKANA LETTER HE --> HALFWIDTH KATAKANA LETTER HE
318*cdf0e10cSrcweir     { 0x30DB, 0xFF8E, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION | FULL2HALF_KATAKANA_ONLY },  // KATAKANA LETTER HO --> HALFWIDTH KATAKANA LETTER HO
319*cdf0e10cSrcweir     { 0x30DE, 0xFF8F, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION | FULL2HALF_KATAKANA_ONLY },  // KATAKANA LETTER MA --> HALFWIDTH KATAKANA LETTER MA
320*cdf0e10cSrcweir     { 0x30DF, 0xFF90, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION | FULL2HALF_KATAKANA_ONLY },  // KATAKANA LETTER MI --> HALFWIDTH KATAKANA LETTER MI
321*cdf0e10cSrcweir     { 0x30E0, 0xFF91, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION | FULL2HALF_KATAKANA_ONLY },  // KATAKANA LETTER MU --> HALFWIDTH KATAKANA LETTER MU
322*cdf0e10cSrcweir     { 0x30E1, 0xFF92, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION | FULL2HALF_KATAKANA_ONLY },  // KATAKANA LETTER ME --> HALFWIDTH KATAKANA LETTER ME
323*cdf0e10cSrcweir     { 0x30E2, 0xFF93, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION | FULL2HALF_KATAKANA_ONLY },  // KATAKANA LETTER MO --> HALFWIDTH KATAKANA LETTER MO
324*cdf0e10cSrcweir     { 0x30E3, 0xFF6C, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION | FULL2HALF_KATAKANA_ONLY },  // KATAKANA LETTER SMALL YA --> HALFWIDTH KATAKANA LETTER SMALL YA
325*cdf0e10cSrcweir     { 0x30E4, 0xFF94, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION | FULL2HALF_KATAKANA_ONLY },  // KATAKANA LETTER YA --> HALFWIDTH KATAKANA LETTER YA
326*cdf0e10cSrcweir     { 0x30E5, 0xFF6D, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION | FULL2HALF_KATAKANA_ONLY },  // KATAKANA LETTER SMALL YU --> HALFWIDTH KATAKANA LETTER SMALL YU
327*cdf0e10cSrcweir     { 0x30E6, 0xFF95, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION | FULL2HALF_KATAKANA_ONLY },  // KATAKANA LETTER YU --> HALFWIDTH KATAKANA LETTER YU
328*cdf0e10cSrcweir     { 0x30E7, 0xFF6E, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION | FULL2HALF_KATAKANA_ONLY },  // KATAKANA LETTER SMALL YO --> HALFWIDTH KATAKANA LETTER SMALL YO
329*cdf0e10cSrcweir     { 0x30E8, 0xFF96, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION | FULL2HALF_KATAKANA_ONLY },  // KATAKANA LETTER YO --> HALFWIDTH KATAKANA LETTER YO
330*cdf0e10cSrcweir     { 0x30E9, 0xFF97, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION | FULL2HALF_KATAKANA_ONLY },  // KATAKANA LETTER RA --> HALFWIDTH KATAKANA LETTER RA
331*cdf0e10cSrcweir     { 0x30EA, 0xFF98, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION | FULL2HALF_KATAKANA_ONLY },  // KATAKANA LETTER RI --> HALFWIDTH KATAKANA LETTER RI
332*cdf0e10cSrcweir     { 0x30EB, 0xFF99, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION | FULL2HALF_KATAKANA_ONLY },  // KATAKANA LETTER RU --> HALFWIDTH KATAKANA LETTER RU
333*cdf0e10cSrcweir     { 0x30EC, 0xFF9A, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION | FULL2HALF_KATAKANA_ONLY },  // KATAKANA LETTER RE --> HALFWIDTH KATAKANA LETTER RE
334*cdf0e10cSrcweir     { 0x30ED, 0xFF9B, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION | FULL2HALF_KATAKANA_ONLY },  // KATAKANA LETTER RO --> HALFWIDTH KATAKANA LETTER RO
335*cdf0e10cSrcweir     { 0x30EF, 0xFF9C, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION | FULL2HALF_KATAKANA_ONLY },  // KATAKANA LETTER WA --> HALFWIDTH KATAKANA LETTER WA
336*cdf0e10cSrcweir     { 0x30F2, 0xFF66, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION | FULL2HALF_KATAKANA_ONLY },  // KATAKANA LETTER WO --> HALFWIDTH KATAKANA LETTER WO
337*cdf0e10cSrcweir     { 0x30F3, 0xFF9D, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION | FULL2HALF_KATAKANA_ONLY },  // KATAKANA LETTER N --> HALFWIDTH KATAKANA LETTER N
338*cdf0e10cSrcweir     { 0x30FB, 0xFF65, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION },  // KATAKANA MIDDLE DOT --> HALFWIDTH KATAKANA MIDDLE DOT
339*cdf0e10cSrcweir     { 0x30FC, 0xFF70, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION },  // KATAKANA-HIRAGANA PROLONGED SOUND MARK --> HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK
340*cdf0e10cSrcweir     { 0x3131, 0xFFA1, FULL2HALF_NORMAL },  // HANGUL LETTER KIYEOK --> HALFWIDTH HANGUL LETTER KIYEOK
341*cdf0e10cSrcweir     { 0x3132, 0xFFA2, FULL2HALF_NORMAL },  // HANGUL LETTER SSANGKIYEOK --> HALFWIDTH HANGUL LETTER SSANGKIYEOK
342*cdf0e10cSrcweir     { 0x3133, 0xFFA3, FULL2HALF_NORMAL },  // HANGUL LETTER KIYEOK-SIOS --> HALFWIDTH HANGUL LETTER KIYEOK-SIOS
343*cdf0e10cSrcweir     { 0x3134, 0xFFA4, FULL2HALF_NORMAL },  // HANGUL LETTER NIEUN --> HALFWIDTH HANGUL LETTER NIEUN
344*cdf0e10cSrcweir     { 0x3135, 0xFFA5, FULL2HALF_NORMAL },  // HANGUL LETTER NIEUN-CIEUC --> HALFWIDTH HANGUL LETTER NIEUN-CIEUC
345*cdf0e10cSrcweir     { 0x3136, 0xFFA6, FULL2HALF_NORMAL },  // HANGUL LETTER NIEUN-HIEUH --> HALFWIDTH HANGUL LETTER NIEUN-HIEUH
346*cdf0e10cSrcweir     { 0x3137, 0xFFA7, FULL2HALF_NORMAL },  // HANGUL LETTER TIKEUT --> HALFWIDTH HANGUL LETTER TIKEUT
347*cdf0e10cSrcweir     { 0x3138, 0xFFA8, FULL2HALF_NORMAL },  // HANGUL LETTER SSANGTIKEUT --> HALFWIDTH HANGUL LETTER SSANGTIKEUT
348*cdf0e10cSrcweir     { 0x3139, 0xFFA9, FULL2HALF_NORMAL },  // HANGUL LETTER RIEUL --> HALFWIDTH HANGUL LETTER RIEUL
349*cdf0e10cSrcweir     { 0x313A, 0xFFAA, FULL2HALF_NORMAL },  // HANGUL LETTER RIEUL-KIYEOK --> HALFWIDTH HANGUL LETTER RIEUL-KIYEOK
350*cdf0e10cSrcweir     { 0x313B, 0xFFAB, FULL2HALF_NORMAL },  // HANGUL LETTER RIEUL-MIEUM --> HALFWIDTH HANGUL LETTER RIEUL-MIEUM
351*cdf0e10cSrcweir     { 0x313C, 0xFFAC, FULL2HALF_NORMAL },  // HANGUL LETTER RIEUL-PIEUP --> HALFWIDTH HANGUL LETTER RIEUL-PIEUP
352*cdf0e10cSrcweir     { 0x313D, 0xFFAD, FULL2HALF_NORMAL },  // HANGUL LETTER RIEUL-SIOS --> HALFWIDTH HANGUL LETTER RIEUL-SIOS
353*cdf0e10cSrcweir     { 0x313E, 0xFFAE, FULL2HALF_NORMAL },  // HANGUL LETTER RIEUL-THIEUTH --> HALFWIDTH HANGUL LETTER RIEUL-THIEUTH
354*cdf0e10cSrcweir     { 0x313F, 0xFFAF, FULL2HALF_NORMAL },  // HANGUL LETTER RIEUL-PHIEUPH --> HALFWIDTH HANGUL LETTER RIEUL-PHIEUPH
355*cdf0e10cSrcweir     { 0x3140, 0xFFB0, FULL2HALF_NORMAL },  // HANGUL LETTER RIEUL-HIEUH --> HALFWIDTH HANGUL LETTER RIEUL-HIEUH
356*cdf0e10cSrcweir     { 0x3141, 0xFFB1, FULL2HALF_NORMAL },  // HANGUL LETTER MIEUM --> HALFWIDTH HANGUL LETTER MIEUM
357*cdf0e10cSrcweir     { 0x3142, 0xFFB2, FULL2HALF_NORMAL },  // HANGUL LETTER PIEUP --> HALFWIDTH HANGUL LETTER PIEUP
358*cdf0e10cSrcweir     { 0x3143, 0xFFB3, FULL2HALF_NORMAL },  // HANGUL LETTER SSANGPIEUP --> HALFWIDTH HANGUL LETTER SSANGPIEUP
359*cdf0e10cSrcweir     { 0x3144, 0xFFB4, FULL2HALF_NORMAL },  // HANGUL LETTER PIEUP-SIOS --> HALFWIDTH HANGUL LETTER PIEUP-SIOS
360*cdf0e10cSrcweir     { 0x3145, 0xFFB5, FULL2HALF_NORMAL },  // HANGUL LETTER SIOS --> HALFWIDTH HANGUL LETTER SIOS
361*cdf0e10cSrcweir     { 0x3146, 0xFFB6, FULL2HALF_NORMAL },  // HANGUL LETTER SSANGSIOS --> HALFWIDTH HANGUL LETTER SSANGSIOS
362*cdf0e10cSrcweir     { 0x3147, 0xFFB7, FULL2HALF_NORMAL },  // HANGUL LETTER IEUNG --> HALFWIDTH HANGUL LETTER IEUNG
363*cdf0e10cSrcweir     { 0x3148, 0xFFB8, FULL2HALF_NORMAL },  // HANGUL LETTER CIEUC --> HALFWIDTH HANGUL LETTER CIEUC
364*cdf0e10cSrcweir     { 0x3149, 0xFFB9, FULL2HALF_NORMAL },  // HANGUL LETTER SSANGCIEUC --> HALFWIDTH HANGUL LETTER SSANGCIEUC
365*cdf0e10cSrcweir     { 0x314A, 0xFFBA, FULL2HALF_NORMAL },  // HANGUL LETTER CHIEUCH --> HALFWIDTH HANGUL LETTER CHIEUCH
366*cdf0e10cSrcweir     { 0x314B, 0xFFBB, FULL2HALF_NORMAL },  // HANGUL LETTER KHIEUKH --> HALFWIDTH HANGUL LETTER KHIEUKH
367*cdf0e10cSrcweir     { 0x314C, 0xFFBC, FULL2HALF_NORMAL },  // HANGUL LETTER THIEUTH --> HALFWIDTH HANGUL LETTER THIEUTH
368*cdf0e10cSrcweir     { 0x314D, 0xFFBD, FULL2HALF_NORMAL },  // HANGUL LETTER PHIEUPH --> HALFWIDTH HANGUL LETTER PHIEUPH
369*cdf0e10cSrcweir     { 0x314E, 0xFFBE, FULL2HALF_NORMAL },  // HANGUL LETTER HIEUH --> HALFWIDTH HANGUL LETTER HIEUH
370*cdf0e10cSrcweir     { 0x314F, 0xFFC2, FULL2HALF_NORMAL },  // HANGUL LETTER A --> HALFWIDTH HANGUL LETTER A
371*cdf0e10cSrcweir     { 0x3150, 0xFFC3, FULL2HALF_NORMAL },  // HANGUL LETTER AE --> HALFWIDTH HANGUL LETTER AE
372*cdf0e10cSrcweir     { 0x3151, 0xFFC4, FULL2HALF_NORMAL },  // HANGUL LETTER YA --> HALFWIDTH HANGUL LETTER YA
373*cdf0e10cSrcweir     { 0x3152, 0xFFC5, FULL2HALF_NORMAL },  // HANGUL LETTER YAE --> HALFWIDTH HANGUL LETTER YAE
374*cdf0e10cSrcweir     { 0x3153, 0xFFC6, FULL2HALF_NORMAL },  // HANGUL LETTER EO --> HALFWIDTH HANGUL LETTER EO
375*cdf0e10cSrcweir     { 0x3154, 0xFFC7, FULL2HALF_NORMAL },  // HANGUL LETTER E --> HALFWIDTH HANGUL LETTER E
376*cdf0e10cSrcweir     { 0x3155, 0xFFCA, FULL2HALF_NORMAL },  // HANGUL LETTER YEO --> HALFWIDTH HANGUL LETTER YEO
377*cdf0e10cSrcweir     { 0x3156, 0xFFCB, FULL2HALF_NORMAL },  // HANGUL LETTER YE --> HALFWIDTH HANGUL LETTER YE
378*cdf0e10cSrcweir     { 0x3157, 0xFFCC, FULL2HALF_NORMAL },  // HANGUL LETTER O --> HALFWIDTH HANGUL LETTER O
379*cdf0e10cSrcweir     { 0x3158, 0xFFCD, FULL2HALF_NORMAL },  // HANGUL LETTER WA --> HALFWIDTH HANGUL LETTER WA
380*cdf0e10cSrcweir     { 0x3159, 0xFFCE, FULL2HALF_NORMAL },  // HANGUL LETTER WAE --> HALFWIDTH HANGUL LETTER WAE
381*cdf0e10cSrcweir     { 0x315A, 0xFFCF, FULL2HALF_NORMAL },  // HANGUL LETTER OE --> HALFWIDTH HANGUL LETTER OE
382*cdf0e10cSrcweir     { 0x315B, 0xFFD2, FULL2HALF_NORMAL },  // HANGUL LETTER YO --> HALFWIDTH HANGUL LETTER YO
383*cdf0e10cSrcweir     { 0x315C, 0xFFD3, FULL2HALF_NORMAL },  // HANGUL LETTER U --> HALFWIDTH HANGUL LETTER U
384*cdf0e10cSrcweir     { 0x315D, 0xFFD4, FULL2HALF_NORMAL },  // HANGUL LETTER WEO --> HALFWIDTH HANGUL LETTER WEO
385*cdf0e10cSrcweir     { 0x315E, 0xFFD5, FULL2HALF_NORMAL },  // HANGUL LETTER WE --> HALFWIDTH HANGUL LETTER WE
386*cdf0e10cSrcweir     { 0x315F, 0xFFD6, FULL2HALF_NORMAL },  // HANGUL LETTER WI --> HALFWIDTH HANGUL LETTER WI
387*cdf0e10cSrcweir     { 0x3160, 0xFFD7, FULL2HALF_NORMAL },  // HANGUL LETTER YU --> HALFWIDTH HANGUL LETTER YU
388*cdf0e10cSrcweir     { 0x3161, 0xFFDA, FULL2HALF_NORMAL },  // HANGUL LETTER EU --> HALFWIDTH HANGUL LETTER EU
389*cdf0e10cSrcweir     { 0x3162, 0xFFDB, FULL2HALF_NORMAL },  // HANGUL LETTER YI --> HALFWIDTH HANGUL LETTER YI
390*cdf0e10cSrcweir     { 0x3163, 0xFFDC, FULL2HALF_NORMAL },  // HANGUL LETTER I --> HALFWIDTH HANGUL LETTER I
391*cdf0e10cSrcweir     { 0x3164, 0xFFA0, FULL2HALF_NORMAL },  // HANGUL FILLER --> HALFWIDTH HANGUL FILLER
392*cdf0e10cSrcweir     { 0xFF01, 0x0021, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION },  // FULLWIDTH EXCLAMATION MARK --> EXCLAMATION MARK
393*cdf0e10cSrcweir     { 0xFF02, 0x0022, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION },  // FULLWIDTH QUOTATION MARK --> QUOTATION MARK
394*cdf0e10cSrcweir     { 0xFF03, 0x0023, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION },  // FULLWIDTH NUMBER SIGN --> NUMBER SIGN
395*cdf0e10cSrcweir     { 0xFF04, 0x0024, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION },  // FULLWIDTH DOLLAR SIGN --> DOLLAR SIGN
396*cdf0e10cSrcweir     { 0xFF05, 0x0025, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION },  // FULLWIDTH PERCENT SIGN --> PERCENT SIGN
397*cdf0e10cSrcweir     { 0xFF06, 0x0026, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION },  // FULLWIDTH AMPERSAND --> AMPERSAND
398*cdf0e10cSrcweir     { 0xFF07, 0x0027, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION },  // FULLWIDTH APOSTROPHE --> APOSTROPHE
399*cdf0e10cSrcweir     { 0xFF08, 0x0028, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION },  // FULLWIDTH LEFT PARENTHESIS --> LEFT PARENTHESIS
400*cdf0e10cSrcweir     { 0xFF09, 0x0029, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION },  // FULLWIDTH RIGHT PARENTHESIS --> RIGHT PARENTHESIS
401*cdf0e10cSrcweir     { 0xFF0A, 0x002A, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION },  // FULLWIDTH ASTERISK --> ASTERISK
402*cdf0e10cSrcweir     { 0xFF0B, 0x002B, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION },  // FULLWIDTH PLUS SIGN --> PLUS SIGN
403*cdf0e10cSrcweir     { 0xFF0C, 0x002C, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION },  // FULLWIDTH COMMA --> COMMA
404*cdf0e10cSrcweir     { 0xFF0D, 0x002D, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION },  // FULLWIDTH HYPHEN-MINUS --> HYPHEN-MINUS
405*cdf0e10cSrcweir     { 0xFF0E, 0x002E, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION },  // FULLWIDTH FULL STOP --> FULL STOP
406*cdf0e10cSrcweir     { 0xFF0F, 0x002F, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION },  // FULLWIDTH SOLIDUS --> SOLIDUS
407*cdf0e10cSrcweir     { 0xFF10, 0x0030, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION },  // FULLWIDTH DIGIT ZERO --> DIGIT ZERO
408*cdf0e10cSrcweir     { 0xFF11, 0x0031, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION },  // FULLWIDTH DIGIT ONE --> DIGIT ONE
409*cdf0e10cSrcweir     { 0xFF12, 0x0032, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION },  // FULLWIDTH DIGIT TWO --> DIGIT TWO
410*cdf0e10cSrcweir     { 0xFF13, 0x0033, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION },  // FULLWIDTH DIGIT THREE --> DIGIT THREE
411*cdf0e10cSrcweir     { 0xFF14, 0x0034, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION },  // FULLWIDTH DIGIT FOUR --> DIGIT FOUR
412*cdf0e10cSrcweir     { 0xFF15, 0x0035, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION },  // FULLWIDTH DIGIT FIVE --> DIGIT FIVE
413*cdf0e10cSrcweir     { 0xFF16, 0x0036, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION },  // FULLWIDTH DIGIT SIX --> DIGIT SIX
414*cdf0e10cSrcweir     { 0xFF17, 0x0037, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION },  // FULLWIDTH DIGIT SEVEN --> DIGIT SEVEN
415*cdf0e10cSrcweir     { 0xFF18, 0x0038, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION },  // FULLWIDTH DIGIT EIGHT --> DIGIT EIGHT
416*cdf0e10cSrcweir     { 0xFF19, 0x0039, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION },  // FULLWIDTH DIGIT NINE --> DIGIT NINE
417*cdf0e10cSrcweir     { 0xFF1A, 0x003A, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION },  // FULLWIDTH COLON --> COLON
418*cdf0e10cSrcweir     { 0xFF1B, 0x003B, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION },  // FULLWIDTH SEMICOLON --> SEMICOLON
419*cdf0e10cSrcweir     { 0xFF1C, 0x003C, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION },  // FULLWIDTH LESS-THAN SIGN --> LESS-THAN SIGN
420*cdf0e10cSrcweir     { 0xFF1D, 0x003D, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION },  // FULLWIDTH EQUALS SIGN --> EQUALS SIGN
421*cdf0e10cSrcweir     { 0xFF1E, 0x003E, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION },  // FULLWIDTH GREATER-THAN SIGN --> GREATER-THAN SIGN
422*cdf0e10cSrcweir     { 0xFF1F, 0x003F, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION },  // FULLWIDTH QUESTION MARK --> QUESTION MARK
423*cdf0e10cSrcweir     { 0xFF20, 0x0040, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION },  // FULLWIDTH COMMERCIAL AT --> COMMERCIAL AT
424*cdf0e10cSrcweir     { 0xFF21, 0x0041, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION },  // FULLWIDTH LATIN CAPITAL LETTER A --> LATIN CAPITAL LETTER A
425*cdf0e10cSrcweir     { 0xFF22, 0x0042, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION },  // FULLWIDTH LATIN CAPITAL LETTER B --> LATIN CAPITAL LETTER B
426*cdf0e10cSrcweir     { 0xFF23, 0x0043, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION },  // FULLWIDTH LATIN CAPITAL LETTER C --> LATIN CAPITAL LETTER C
427*cdf0e10cSrcweir     { 0xFF24, 0x0044, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION },  // FULLWIDTH LATIN CAPITAL LETTER D --> LATIN CAPITAL LETTER D
428*cdf0e10cSrcweir     { 0xFF25, 0x0045, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION },  // FULLWIDTH LATIN CAPITAL LETTER E --> LATIN CAPITAL LETTER E
429*cdf0e10cSrcweir     { 0xFF26, 0x0046, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION },  // FULLWIDTH LATIN CAPITAL LETTER F --> LATIN CAPITAL LETTER F
430*cdf0e10cSrcweir     { 0xFF27, 0x0047, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION },  // FULLWIDTH LATIN CAPITAL LETTER G --> LATIN CAPITAL LETTER G
431*cdf0e10cSrcweir     { 0xFF28, 0x0048, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION },  // FULLWIDTH LATIN CAPITAL LETTER H --> LATIN CAPITAL LETTER H
432*cdf0e10cSrcweir     { 0xFF29, 0x0049, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION },  // FULLWIDTH LATIN CAPITAL LETTER I --> LATIN CAPITAL LETTER I
433*cdf0e10cSrcweir     { 0xFF2A, 0x004A, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION },  // FULLWIDTH LATIN CAPITAL LETTER J --> LATIN CAPITAL LETTER J
434*cdf0e10cSrcweir     { 0xFF2B, 0x004B, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION },  // FULLWIDTH LATIN CAPITAL LETTER K --> LATIN CAPITAL LETTER K
435*cdf0e10cSrcweir     { 0xFF2C, 0x004C, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION },  // FULLWIDTH LATIN CAPITAL LETTER L --> LATIN CAPITAL LETTER L
436*cdf0e10cSrcweir     { 0xFF2D, 0x004D, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION },  // FULLWIDTH LATIN CAPITAL LETTER M --> LATIN CAPITAL LETTER M
437*cdf0e10cSrcweir     { 0xFF2E, 0x004E, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION },  // FULLWIDTH LATIN CAPITAL LETTER N --> LATIN CAPITAL LETTER N
438*cdf0e10cSrcweir     { 0xFF2F, 0x004F, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION },  // FULLWIDTH LATIN CAPITAL LETTER O --> LATIN CAPITAL LETTER O
439*cdf0e10cSrcweir     { 0xFF30, 0x0050, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION },  // FULLWIDTH LATIN CAPITAL LETTER P --> LATIN CAPITAL LETTER P
440*cdf0e10cSrcweir     { 0xFF31, 0x0051, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION },  // FULLWIDTH LATIN CAPITAL LETTER Q --> LATIN CAPITAL LETTER Q
441*cdf0e10cSrcweir     { 0xFF32, 0x0052, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION },  // FULLWIDTH LATIN CAPITAL LETTER R --> LATIN CAPITAL LETTER R
442*cdf0e10cSrcweir     { 0xFF33, 0x0053, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION },  // FULLWIDTH LATIN CAPITAL LETTER S --> LATIN CAPITAL LETTER S
443*cdf0e10cSrcweir     { 0xFF34, 0x0054, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION },  // FULLWIDTH LATIN CAPITAL LETTER T --> LATIN CAPITAL LETTER T
444*cdf0e10cSrcweir     { 0xFF35, 0x0055, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION },  // FULLWIDTH LATIN CAPITAL LETTER U --> LATIN CAPITAL LETTER U
445*cdf0e10cSrcweir     { 0xFF36, 0x0056, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION },  // FULLWIDTH LATIN CAPITAL LETTER V --> LATIN CAPITAL LETTER V
446*cdf0e10cSrcweir     { 0xFF37, 0x0057, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION },  // FULLWIDTH LATIN CAPITAL LETTER W --> LATIN CAPITAL LETTER W
447*cdf0e10cSrcweir     { 0xFF38, 0x0058, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION },  // FULLWIDTH LATIN CAPITAL LETTER X --> LATIN CAPITAL LETTER X
448*cdf0e10cSrcweir     { 0xFF39, 0x0059, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION },  // FULLWIDTH LATIN CAPITAL LETTER Y --> LATIN CAPITAL LETTER Y
449*cdf0e10cSrcweir     { 0xFF3A, 0x005A, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION },  // FULLWIDTH LATIN CAPITAL LETTER Z --> LATIN CAPITAL LETTER Z
450*cdf0e10cSrcweir     { 0xFF3B, 0x005B, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION },  // FULLWIDTH LEFT SQUARE BRACKET --> LEFT SQUARE BRACKET
451*cdf0e10cSrcweir     { 0xFF3C, 0x005C, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION },  // FULLWIDTH REVERSE SOLIDUS --> REVERSE SOLIDUS
452*cdf0e10cSrcweir     { 0xFF3D, 0x005D, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION },  // FULLWIDTH RIGHT SQUARE BRACKET --> RIGHT SQUARE BRACKET
453*cdf0e10cSrcweir     { 0xFF3E, 0x005E, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION },  // FULLWIDTH CIRCUMFLEX ACCENT --> CIRCUMFLEX ACCENT
454*cdf0e10cSrcweir     { 0xFF3F, 0x005F, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION },  // FULLWIDTH LOW LINE --> LOW LINE
455*cdf0e10cSrcweir     { 0xFF40, 0x0060, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION },  // FULLWIDTH GRAVE ACCENT --> GRAVE ACCENT
456*cdf0e10cSrcweir     { 0xFF41, 0x0061, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION },  // FULLWIDTH LATIN SMALL LETTER A --> LATIN SMALL LETTER A
457*cdf0e10cSrcweir     { 0xFF42, 0x0062, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION },  // FULLWIDTH LATIN SMALL LETTER B --> LATIN SMALL LETTER B
458*cdf0e10cSrcweir     { 0xFF43, 0x0063, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION },  // FULLWIDTH LATIN SMALL LETTER C --> LATIN SMALL LETTER C
459*cdf0e10cSrcweir     { 0xFF44, 0x0064, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION },  // FULLWIDTH LATIN SMALL LETTER D --> LATIN SMALL LETTER D
460*cdf0e10cSrcweir     { 0xFF45, 0x0065, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION },  // FULLWIDTH LATIN SMALL LETTER E --> LATIN SMALL LETTER E
461*cdf0e10cSrcweir     { 0xFF46, 0x0066, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION },  // FULLWIDTH LATIN SMALL LETTER F --> LATIN SMALL LETTER F
462*cdf0e10cSrcweir     { 0xFF47, 0x0067, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION },  // FULLWIDTH LATIN SMALL LETTER G --> LATIN SMALL LETTER G
463*cdf0e10cSrcweir     { 0xFF48, 0x0068, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION },  // FULLWIDTH LATIN SMALL LETTER H --> LATIN SMALL LETTER H
464*cdf0e10cSrcweir     { 0xFF49, 0x0069, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION },  // FULLWIDTH LATIN SMALL LETTER I --> LATIN SMALL LETTER I
465*cdf0e10cSrcweir     { 0xFF4A, 0x006A, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION },  // FULLWIDTH LATIN SMALL LETTER J --> LATIN SMALL LETTER J
466*cdf0e10cSrcweir     { 0xFF4B, 0x006B, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION },  // FULLWIDTH LATIN SMALL LETTER K --> LATIN SMALL LETTER K
467*cdf0e10cSrcweir     { 0xFF4C, 0x006C, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION },  // FULLWIDTH LATIN SMALL LETTER L --> LATIN SMALL LETTER L
468*cdf0e10cSrcweir     { 0xFF4D, 0x006D, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION },  // FULLWIDTH LATIN SMALL LETTER M --> LATIN SMALL LETTER M
469*cdf0e10cSrcweir     { 0xFF4E, 0x006E, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION },  // FULLWIDTH LATIN SMALL LETTER N --> LATIN SMALL LETTER N
470*cdf0e10cSrcweir     { 0xFF4F, 0x006F, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION },  // FULLWIDTH LATIN SMALL LETTER O --> LATIN SMALL LETTER O
471*cdf0e10cSrcweir     { 0xFF50, 0x0070, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION },  // FULLWIDTH LATIN SMALL LETTER P --> LATIN SMALL LETTER P
472*cdf0e10cSrcweir     { 0xFF51, 0x0071, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION },  // FULLWIDTH LATIN SMALL LETTER Q --> LATIN SMALL LETTER Q
473*cdf0e10cSrcweir     { 0xFF52, 0x0072, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION },  // FULLWIDTH LATIN SMALL LETTER R --> LATIN SMALL LETTER R
474*cdf0e10cSrcweir     { 0xFF53, 0x0073, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION },  // FULLWIDTH LATIN SMALL LETTER S --> LATIN SMALL LETTER S
475*cdf0e10cSrcweir     { 0xFF54, 0x0074, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION },  // FULLWIDTH LATIN SMALL LETTER T --> LATIN SMALL LETTER T
476*cdf0e10cSrcweir     { 0xFF55, 0x0075, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION },  // FULLWIDTH LATIN SMALL LETTER U --> LATIN SMALL LETTER U
477*cdf0e10cSrcweir     { 0xFF56, 0x0076, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION },  // FULLWIDTH LATIN SMALL LETTER V --> LATIN SMALL LETTER V
478*cdf0e10cSrcweir     { 0xFF57, 0x0077, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION },  // FULLWIDTH LATIN SMALL LETTER W --> LATIN SMALL LETTER W
479*cdf0e10cSrcweir     { 0xFF58, 0x0078, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION },  // FULLWIDTH LATIN SMALL LETTER X --> LATIN SMALL LETTER X
480*cdf0e10cSrcweir     { 0xFF59, 0x0079, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION },  // FULLWIDTH LATIN SMALL LETTER Y --> LATIN SMALL LETTER Y
481*cdf0e10cSrcweir     { 0xFF5A, 0x007A, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION },  // FULLWIDTH LATIN SMALL LETTER Z --> LATIN SMALL LETTER Z
482*cdf0e10cSrcweir     { 0xFF5B, 0x007B, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION },  // FULLWIDTH LEFT CURLY BRACKET --> LEFT CURLY BRACKET
483*cdf0e10cSrcweir     { 0xFF5C, 0x007C, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION },  // FULLWIDTH VERTICAL LINE --> VERTICAL LINE
484*cdf0e10cSrcweir     { 0xFF5D, 0x007D, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION },  // FULLWIDTH RIGHT CURLY BRACKET --> RIGHT CURLY BRACKET
485*cdf0e10cSrcweir     { 0xFF5E, 0x007E, FULL2HALF_NORMAL | FULL2HALF_ASC_FUNCTION },  // FULLWIDTH TILDE --> TILDE
486*cdf0e10cSrcweir     { 0xFFE0, 0x00A2, FULL2HALF_NORMAL },  // FULLWIDTH CENT SIGN --> CENT SIGN
487*cdf0e10cSrcweir     { 0xFFE1, 0x00A3, FULL2HALF_NORMAL },  // FULLWIDTH POUND SIGN --> POUND SIGN
488*cdf0e10cSrcweir     { 0xFFE2, 0x00AC, FULL2HALF_NORMAL },  // FULLWIDTH NOT SIGN --> NOT SIGN
489*cdf0e10cSrcweir     { 0xFFE3, 0x00AF, FULL2HALF_NORMAL },  // FULLWIDTH MACRON --> MACRON
490*cdf0e10cSrcweir     { 0xFFE4, 0x00A6, FULL2HALF_NORMAL },  // FULLWIDTH BROKEN BAR --> BROKEN BAR
491*cdf0e10cSrcweir     { 0xFFE5, 0x00A5, FULL2HALF_NORMAL },  // FULLWIDTH YEN SIGN --> YEN SIGN
492*cdf0e10cSrcweir     { 0xFFE6, 0x20A9, FULL2HALF_NORMAL },  // FULLWIDTH WON SIGN --> WON SIGN
493*cdf0e10cSrcweir };
494*cdf0e10cSrcweir 
495*cdf0e10cSrcweir /*
496*cdf0e10cSrcweir  Exceptional conversion table for ASC function
497*cdf0e10cSrcweir */
498*cdf0e10cSrcweir UnicodePairWithFlag full2halfASCException[] = {
499*cdf0e10cSrcweir     { 0xFFE5, 0x005C, FULL2HALF_ASC_FUNCTION }  // FULLWIDTH YEN SIGN --> REVERSE SOLIDUS
500*cdf0e10cSrcweir  };
501*cdf0e10cSrcweir 
502*cdf0e10cSrcweir /*
503*cdf0e10cSrcweir   Unicode Normalization Forms
504*cdf0e10cSrcweir   http://www.unicode.org/unicode/reports/tr15/index.html
505*cdf0e10cSrcweir   http://www.w3.org/International/charlint/
506*cdf0e10cSrcweir */
507*cdf0e10cSrcweir 
508*cdf0e10cSrcweir const sal_Unicode composition_table[][2] = {
509*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x3040
510*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x3041 HIRAGANA LETTER SMALL A
511*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x3042 HIRAGANA LETTER A
512*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x3043 HIRAGANA LETTER SMALL I
513*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x3044 HIRAGANA LETTER I
514*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x3045 HIRAGANA LETTER SMALL U
515*cdf0e10cSrcweir     { 0x3094, 0x0000 }, // 0x3046 HIRAGANA LETTER U --> HIRAGANA LETTER VU
516*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x3047 HIRAGANA LETTER SMALL E
517*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x3048 HIRAGANA LETTER E
518*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x3049 HIRAGANA LETTER SMALL O
519*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x304a HIRAGANA LETTER O
520*cdf0e10cSrcweir     { 0x304c, 0x0000 }, // 0x304b HIRAGANA LETTER KA --> HIRAGANA LETTER GA
521*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x304c HIRAGANA LETTER GA
522*cdf0e10cSrcweir     { 0x304e, 0x0000 }, // 0x304d HIRAGANA LETTER KI --> HIRAGANA LETTER GI
523*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x304e HIRAGANA LETTER GI
524*cdf0e10cSrcweir     { 0x3050, 0x0000 }, // 0x304f HIRAGANA LETTER KU --> HIRAGANA LETTER GU
525*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x3050 HIRAGANA LETTER GU
526*cdf0e10cSrcweir     { 0x3052, 0x0000 }, // 0x3051 HIRAGANA LETTER KE --> HIRAGANA LETTER GE
527*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x3052 HIRAGANA LETTER GE
528*cdf0e10cSrcweir     { 0x3054, 0x0000 }, // 0x3053 HIRAGANA LETTER KO --> HIRAGANA LETTER GO
529*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x3054 HIRAGANA LETTER GO
530*cdf0e10cSrcweir     { 0x3056, 0x0000 }, // 0x3055 HIRAGANA LETTER SA --> HIRAGANA LETTER ZA
531*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x3056 HIRAGANA LETTER ZA
532*cdf0e10cSrcweir     { 0x3058, 0x0000 }, // 0x3057 HIRAGANA LETTER SI --> HIRAGANA LETTER ZI
533*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x3058 HIRAGANA LETTER ZI
534*cdf0e10cSrcweir     { 0x305a, 0x0000 }, // 0x3059 HIRAGANA LETTER SU --> HIRAGANA LETTER ZU
535*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x305a HIRAGANA LETTER ZU
536*cdf0e10cSrcweir     { 0x305c, 0x0000 }, // 0x305b HIRAGANA LETTER SE --> HIRAGANA LETTER ZE
537*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x305c HIRAGANA LETTER ZE
538*cdf0e10cSrcweir     { 0x305e, 0x0000 }, // 0x305d HIRAGANA LETTER SO --> HIRAGANA LETTER ZO
539*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x305e HIRAGANA LETTER ZO
540*cdf0e10cSrcweir     { 0x3060, 0x0000 }, // 0x305f HIRAGANA LETTER TA --> HIRAGANA LETTER DA
541*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x3060 HIRAGANA LETTER DA
542*cdf0e10cSrcweir     { 0x3062, 0x0000 }, // 0x3061 HIRAGANA LETTER TI --> HIRAGANA LETTER DI
543*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x3062 HIRAGANA LETTER DI
544*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x3063 HIRAGANA LETTER SMALL TU
545*cdf0e10cSrcweir     { 0x3065, 0x0000 }, // 0x3064 HIRAGANA LETTER TU --> HIRAGANA LETTER DU
546*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x3065 HIRAGANA LETTER DU
547*cdf0e10cSrcweir     { 0x3067, 0x0000 }, // 0x3066 HIRAGANA LETTER TE --> HIRAGANA LETTER DE
548*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x3067 HIRAGANA LETTER DE
549*cdf0e10cSrcweir     { 0x3069, 0x0000 }, // 0x3068 HIRAGANA LETTER TO --> HIRAGANA LETTER DO
550*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x3069 HIRAGANA LETTER DO
551*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x306a HIRAGANA LETTER NA
552*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x306b HIRAGANA LETTER NI
553*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x306c HIRAGANA LETTER NU
554*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x306d HIRAGANA LETTER NE
555*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x306e HIRAGANA LETTER NO
556*cdf0e10cSrcweir     { 0x3070, 0x3071 }, // 0x306f HIRAGANA LETTER HA --> HIRAGANA LETTER BA or HIRAGANA LETTER PA
557*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x3070 HIRAGANA LETTER BA
558*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x3071 HIRAGANA LETTER PA
559*cdf0e10cSrcweir     { 0x3073, 0x3074 }, // 0x3072 HIRAGANA LETTER HI --> HIRAGANA LETTER BI or HIRAGANA LETTER PI
560*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x3073 HIRAGANA LETTER BI
561*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x3074 HIRAGANA LETTER PI
562*cdf0e10cSrcweir     { 0x3076, 0x3077 }, // 0x3075 HIRAGANA LETTER HU --> HIRAGANA LETTER BU or HIRAGANA LETTER PU
563*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x3076 HIRAGANA LETTER BU
564*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x3077 HIRAGANA LETTER PU
565*cdf0e10cSrcweir     { 0x3079, 0x307a }, // 0x3078 HIRAGANA LETTER HE --> HIRAGANA LETTER BE or HIRAGANA LETTER PE
566*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x3079 HIRAGANA LETTER BE
567*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x307a HIRAGANA LETTER PE
568*cdf0e10cSrcweir     { 0x307c, 0x307d }, // 0x307b HIRAGANA LETTER HO --> HIRAGANA LETTER BO or HIRAGANA LETTER PO
569*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x307c HIRAGANA LETTER BO
570*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x307d HIRAGANA LETTER PO
571*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x307e HIRAGANA LETTER MA
572*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x307f HIRAGANA LETTER MI
573*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x3080 HIRAGANA LETTER MU
574*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x3081 HIRAGANA LETTER ME
575*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x3082 HIRAGANA LETTER MO
576*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x3083 HIRAGANA LETTER SMALL YA
577*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x3084 HIRAGANA LETTER YA
578*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x3085 HIRAGANA LETTER SMALL YU
579*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x3086 HIRAGANA LETTER YU
580*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x3087 HIRAGANA LETTER SMALL YO
581*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x3088 HIRAGANA LETTER YO
582*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x3089 HIRAGANA LETTER RA
583*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x308a HIRAGANA LETTER RI
584*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x308b HIRAGANA LETTER RU
585*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x308c HIRAGANA LETTER RE
586*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x308d HIRAGANA LETTER RO
587*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x308e HIRAGANA LETTER SMALL WA
588*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x308f HIRAGANA LETTER WA
589*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x3090 HIRAGANA LETTER WI
590*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x3091 HIRAGANA LETTER WE
591*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x3092 HIRAGANA LETTER WO
592*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x3093 HIRAGANA LETTER N
593*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x3094 HIRAGANA LETTER VU
594*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x3095
595*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x3096
596*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x3097
597*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x3098
598*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x3099 COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK
599*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x309a COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
600*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x309b KATAKANA-HIRAGANA VOICED SOUND MARK
601*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x309c KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
602*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x309d HIRAGANA ITERATION MARK
603*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x309e HIRAGANA VOICED ITERATION MARK
604*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x309f
605*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x30a0
606*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x30a1 KATAKANA LETTER SMALL A
607*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x30a2 KATAKANA LETTER A
608*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x30a3 KATAKANA LETTER SMALL I
609*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x30a4 KATAKANA LETTER I
610*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x30a5 KATAKANA LETTER SMALL U
611*cdf0e10cSrcweir     { 0x30f4, 0x0000 }, // 0x30a6 KATAKANA LETTER U --> KATAKANA LETTER VU
612*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x30a7 KATAKANA LETTER SMALL E
613*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x30a8 KATAKANA LETTER E
614*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x30a9 KATAKANA LETTER SMALL O
615*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x30aa KATAKANA LETTER O
616*cdf0e10cSrcweir     { 0x30ac, 0x0000 }, // 0x30ab KATAKANA LETTER KA --> KATAKANA LETTER GA
617*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x30ac KATAKANA LETTER GA
618*cdf0e10cSrcweir     { 0x30ae, 0x0000 }, // 0x30ad KATAKANA LETTER KI --> KATAKANA LETTER GI
619*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x30ae KATAKANA LETTER GI
620*cdf0e10cSrcweir     { 0x30b0, 0x0000 }, // 0x30af KATAKANA LETTER KU --> KATAKANA LETTER GU
621*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x30b0 KATAKANA LETTER GU
622*cdf0e10cSrcweir     { 0x30b2, 0x0000 }, // 0x30b1 KATAKANA LETTER KE --> KATAKANA LETTER GE
623*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x30b2 KATAKANA LETTER GE
624*cdf0e10cSrcweir     { 0x30b4, 0x0000 }, // 0x30b3 KATAKANA LETTER KO --> KATAKANA LETTER GO
625*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x30b4 KATAKANA LETTER GO
626*cdf0e10cSrcweir     { 0x30b6, 0x0000 }, // 0x30b5 KATAKANA LETTER SA --> KATAKANA LETTER ZA
627*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x30b6 KATAKANA LETTER ZA
628*cdf0e10cSrcweir     { 0x30b8, 0x0000 }, // 0x30b7 KATAKANA LETTER SI --> KATAKANA LETTER ZI
629*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x30b8 KATAKANA LETTER ZI
630*cdf0e10cSrcweir     { 0x30ba, 0x0000 }, // 0x30b9 KATAKANA LETTER SU --> KATAKANA LETTER ZU
631*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x30ba KATAKANA LETTER ZU
632*cdf0e10cSrcweir     { 0x30bc, 0x0000 }, // 0x30bb KATAKANA LETTER SE --> KATAKANA LETTER ZE
633*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x30bc KATAKANA LETTER ZE
634*cdf0e10cSrcweir     { 0x30be, 0x0000 }, // 0x30bd KATAKANA LETTER SO --> KATAKANA LETTER ZO
635*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x30be KATAKANA LETTER ZO
636*cdf0e10cSrcweir     { 0x30c0, 0x0000 }, // 0x30bf KATAKANA LETTER TA --> KATAKANA LETTER DA
637*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x30c0 KATAKANA LETTER DA
638*cdf0e10cSrcweir     { 0x30c2, 0x0000 }, // 0x30c1 KATAKANA LETTER TI --> KATAKANA LETTER DI
639*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x30c2 KATAKANA LETTER DI
640*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x30c3 KATAKANA LETTER SMALL TU
641*cdf0e10cSrcweir     { 0x30c5, 0x0000 }, // 0x30c4 KATAKANA LETTER TU --> KATAKANA LETTER DU
642*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x30c5 KATAKANA LETTER DU
643*cdf0e10cSrcweir     { 0x30c7, 0x0000 }, // 0x30c6 KATAKANA LETTER TE --> KATAKANA LETTER DE
644*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x30c7 KATAKANA LETTER DE
645*cdf0e10cSrcweir     { 0x30c9, 0x0000 }, // 0x30c8 KATAKANA LETTER TO --> KATAKANA LETTER DO
646*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x30c9 KATAKANA LETTER DO
647*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x30ca KATAKANA LETTER NA
648*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x30cb KATAKANA LETTER NI
649*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x30cc KATAKANA LETTER NU
650*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x30cd KATAKANA LETTER NE
651*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x30ce KATAKANA LETTER NO
652*cdf0e10cSrcweir     { 0x30d0, 0x30d1 }, // 0x30cf KATAKANA LETTER HA --> KATAKANA LETTER BA or KATAKANA LETTER PA
653*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x30d0 KATAKANA LETTER BA
654*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x30d1 KATAKANA LETTER PA
655*cdf0e10cSrcweir     { 0x30d3, 0x30d4 }, // 0x30d2 KATAKANA LETTER HI --> KATAKANA LETTER BI or KATAKANA LETTER PI
656*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x30d3 KATAKANA LETTER BI
657*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x30d4 KATAKANA LETTER PI
658*cdf0e10cSrcweir     { 0x30d6, 0x30d7 }, // 0x30d5 KATAKANA LETTER HU --> KATAKANA LETTER BU or KATAKANA LETTER PU
659*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x30d6 KATAKANA LETTER BU
660*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x30d7 KATAKANA LETTER PU
661*cdf0e10cSrcweir     { 0x30d9, 0x30da }, // 0x30d8 KATAKANA LETTER HE --> KATAKANA LETTER BE or KATAKANA LETTER PE
662*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x30d9 KATAKANA LETTER BE
663*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x30da KATAKANA LETTER PE
664*cdf0e10cSrcweir     { 0x30dc, 0x30dd }, // 0x30db KATAKANA LETTER HO --> KATAKANA LETTER BO or KATAKANA LETTER PO
665*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x30dc KATAKANA LETTER BO
666*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x30dd KATAKANA LETTER PO
667*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x30de KATAKANA LETTER MA
668*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x30df KATAKANA LETTER MI
669*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x30e0 KATAKANA LETTER MU
670*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x30e1 KATAKANA LETTER ME
671*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x30e2 KATAKANA LETTER MO
672*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x30e3 KATAKANA LETTER SMALL YA
673*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x30e4 KATAKANA LETTER YA
674*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x30e5 KATAKANA LETTER SMALL YU
675*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x30e6 KATAKANA LETTER YU
676*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x30e7 KATAKANA LETTER SMALL YO
677*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x30e8 KATAKANA LETTER YO
678*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x30e9 KATAKANA LETTER RA
679*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x30ea KATAKANA LETTER RI
680*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x30eb KATAKANA LETTER RU
681*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x30ec KATAKANA LETTER RE
682*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x30ed KATAKANA LETTER RO
683*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x30ee KATAKANA LETTER SMALL WA
684*cdf0e10cSrcweir     { 0x30f7, 0x0000 }, // 0x30ef KATAKANA LETTER WA --> KATAKANA LETTER VA
685*cdf0e10cSrcweir     { 0x30f8, 0x0000 }, // 0x30f0 KATAKANA LETTER WI --> KATAKANA LETTER VI
686*cdf0e10cSrcweir     { 0x30f9, 0x0000 }, // 0x30f1 KATAKANA LETTER WE --> KATAKANA LETTER VE
687*cdf0e10cSrcweir     { 0x30fa, 0x0000 }, // 0x30f2 KATAKANA LETTER WO --> KATAKANA LETTER VO
688*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x30f3 KATAKANA LETTER N
689*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x30f4 KATAKANA LETTER VU
690*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x30f5 KATAKANA LETTER SMALL KA
691*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x30f6 KATAKANA LETTER SMALL KE
692*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x30f7 KATAKANA LETTER VA
693*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x30f8 KATAKANA LETTER VI
694*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x30f9 KATAKANA LETTER VE
695*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x30fa KATAKANA LETTER VO
696*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x30fb KATAKANA MIDDLE DOT
697*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x30fc KATAKANA-HIRAGANA PROLONGED SOUND MARK
698*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x30fd KATAKANA ITERATION MARK
699*cdf0e10cSrcweir     { 0x0000, 0x0000 }, // 0x30fe KATAKANA VOICED ITERATION MARK
700*cdf0e10cSrcweir     { 0x0000, 0x0000 }  // 0x30ff
701*cdf0e10cSrcweir };
702*cdf0e10cSrcweir 
703*cdf0e10cSrcweir 
704*cdf0e10cSrcweir /*
705*cdf0e10cSrcweir   Halfwidth and Fullwidth Forms (U+FF00..U+FFEF)
706*cdf0e10cSrcweir   ftp://ftp.unicode.org/Public/3.0-Update/UnicodeData-3.0.0.txt
707*cdf0e10cSrcweir   ftp://ftp.unicode.org/Public/3.0-Update/UnicodeData-3.0.0.html
708*cdf0e10cSrcweir   http://charts.unicode.org/Web/UFF00.html
709*cdf0e10cSrcweir */
710*cdf0e10cSrcweir 
711*cdf0e10cSrcweir #define HALF2FULL_NORMAL        0x01
712*cdf0e10cSrcweir #define HALF2FULL_JIS_FUNCTION  0x02
713*cdf0e10cSrcweir #define HALF2FULL_KATAKANA_ONLY 0x04
714*cdf0e10cSrcweir 
715*cdf0e10cSrcweir UnicodePairWithFlag half2full[] = {
716*cdf0e10cSrcweir     { 0x0020, 0x3000, HALF2FULL_NORMAL },  // SPACE --> IDEOGRAPHIC SPACE
717*cdf0e10cSrcweir     { 0x0021, 0xFF01, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION },  // EXCLAMATION MARK --> FULLWIDTH EXCLAMATION MARK
718*cdf0e10cSrcweir     { 0x0022, 0xFF02, HALF2FULL_NORMAL },  // QUOTATION MARK --> FULLWIDTH QUOTATION MARK
719*cdf0e10cSrcweir     { 0x0023, 0xFF03, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION },  // NUMBER SIGN --> FULLWIDTH NUMBER SIGN
720*cdf0e10cSrcweir     { 0x0024, 0xFF04, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION },  // DOLLAR SIGN --> FULLWIDTH DOLLAR SIGN
721*cdf0e10cSrcweir     { 0x0025, 0xFF05, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION },  // PERCENT SIGN --> FULLWIDTH PERCENT SIGN
722*cdf0e10cSrcweir     { 0x0026, 0xFF06, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION },  // AMPERSAND --> FULLWIDTH AMPERSAND
723*cdf0e10cSrcweir     { 0x0027, 0xFF07, HALF2FULL_NORMAL },  // APOSTROPHE --> FULLWIDTH APOSTROPHE
724*cdf0e10cSrcweir     { 0x0028, 0xFF08, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION },  // LEFT PARENTHESIS --> FULLWIDTH LEFT PARENTHESIS
725*cdf0e10cSrcweir     { 0x0029, 0xFF09, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION },  // RIGHT PARENTHESIS --> FULLWIDTH RIGHT PARENTHESIS
726*cdf0e10cSrcweir     { 0x002A, 0xFF0A, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION },  // ASTERISK --> FULLWIDTH ASTERISK
727*cdf0e10cSrcweir     { 0x002B, 0xFF0B, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION },  // PLUS SIGN --> FULLWIDTH PLUS SIGN
728*cdf0e10cSrcweir     { 0x002C, 0xFF0C, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION },  // COMMA --> FULLWIDTH COMMA
729*cdf0e10cSrcweir     { 0x002E, 0xFF0E, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION },  // FULL STOP --> FULLWIDTH FULL STOP
730*cdf0e10cSrcweir     { 0x002F, 0xFF0F, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION },  // SOLIDUS --> FULLWIDTH SOLIDUS
731*cdf0e10cSrcweir     { 0x0030, 0xFF10, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION },  // DIGIT ZERO --> FULLWIDTH DIGIT ZERO
732*cdf0e10cSrcweir     { 0x0031, 0xFF11, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION },  // DIGIT ONE --> FULLWIDTH DIGIT ONE
733*cdf0e10cSrcweir     { 0x0032, 0xFF12, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION },  // DIGIT TWO --> FULLWIDTH DIGIT TWO
734*cdf0e10cSrcweir     { 0x0033, 0xFF13, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION },  // DIGIT THREE --> FULLWIDTH DIGIT THREE
735*cdf0e10cSrcweir     { 0x0034, 0xFF14, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION },  // DIGIT FOUR --> FULLWIDTH DIGIT FOUR
736*cdf0e10cSrcweir     { 0x0035, 0xFF15, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION },  // DIGIT FIVE --> FULLWIDTH DIGIT FIVE
737*cdf0e10cSrcweir     { 0x0036, 0xFF16, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION },  // DIGIT SIX --> FULLWIDTH DIGIT SIX
738*cdf0e10cSrcweir     { 0x0037, 0xFF17, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION },  // DIGIT SEVEN --> FULLWIDTH DIGIT SEVEN
739*cdf0e10cSrcweir     { 0x0038, 0xFF18, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION },  // DIGIT EIGHT --> FULLWIDTH DIGIT EIGHT
740*cdf0e10cSrcweir     { 0x0039, 0xFF19, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION },  // DIGIT NINE --> FULLWIDTH DIGIT NINE
741*cdf0e10cSrcweir     { 0x003A, 0xFF1A, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION },  // COLON --> FULLWIDTH COLON
742*cdf0e10cSrcweir     { 0x003B, 0xFF1B, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION },  // SEMICOLON --> FULLWIDTH SEMICOLON
743*cdf0e10cSrcweir     { 0x003C, 0xFF1C, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION },  // LESS-THAN SIGN --> FULLWIDTH LESS-THAN SIGN
744*cdf0e10cSrcweir     { 0x003D, 0xFF1D, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION },  // EQUALS SIGN --> FULLWIDTH EQUALS SIGN
745*cdf0e10cSrcweir     { 0x003E, 0xFF1E, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION },  // GREATER-THAN SIGN --> FULLWIDTH GREATER-THAN SIGN
746*cdf0e10cSrcweir     { 0x003F, 0xFF1F, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION },  // QUESTION MARK --> FULLWIDTH QUESTION MARK
747*cdf0e10cSrcweir     { 0x0040, 0xFF20, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION },  // COMMERCIAL AT --> FULLWIDTH COMMERCIAL AT
748*cdf0e10cSrcweir     { 0x0041, 0xFF21, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION },  // LATIN CAPITAL LETTER A --> FULLWIDTH LATIN CAPITAL LETTER A
749*cdf0e10cSrcweir     { 0x0042, 0xFF22, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION },  // LATIN CAPITAL LETTER B --> FULLWIDTH LATIN CAPITAL LETTER B
750*cdf0e10cSrcweir     { 0x0043, 0xFF23, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION },  // LATIN CAPITAL LETTER C --> FULLWIDTH LATIN CAPITAL LETTER C
751*cdf0e10cSrcweir     { 0x0044, 0xFF24, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION },  // LATIN CAPITAL LETTER D --> FULLWIDTH LATIN CAPITAL LETTER D
752*cdf0e10cSrcweir     { 0x0045, 0xFF25, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION },  // LATIN CAPITAL LETTER E --> FULLWIDTH LATIN CAPITAL LETTER E
753*cdf0e10cSrcweir     { 0x0046, 0xFF26, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION },  // LATIN CAPITAL LETTER F --> FULLWIDTH LATIN CAPITAL LETTER F
754*cdf0e10cSrcweir     { 0x0047, 0xFF27, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION },  // LATIN CAPITAL LETTER G --> FULLWIDTH LATIN CAPITAL LETTER G
755*cdf0e10cSrcweir     { 0x0048, 0xFF28, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION },  // LATIN CAPITAL LETTER H --> FULLWIDTH LATIN CAPITAL LETTER H
756*cdf0e10cSrcweir     { 0x0049, 0xFF29, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION },  // LATIN CAPITAL LETTER I --> FULLWIDTH LATIN CAPITAL LETTER I
757*cdf0e10cSrcweir     { 0x004A, 0xFF2A, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION },  // LATIN CAPITAL LETTER J --> FULLWIDTH LATIN CAPITAL LETTER J
758*cdf0e10cSrcweir     { 0x004B, 0xFF2B, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION },  // LATIN CAPITAL LETTER K --> FULLWIDTH LATIN CAPITAL LETTER K
759*cdf0e10cSrcweir     { 0x004C, 0xFF2C, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION },  // LATIN CAPITAL LETTER L --> FULLWIDTH LATIN CAPITAL LETTER L
760*cdf0e10cSrcweir     { 0x004D, 0xFF2D, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION },  // LATIN CAPITAL LETTER M --> FULLWIDTH LATIN CAPITAL LETTER M
761*cdf0e10cSrcweir     { 0x004E, 0xFF2E, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION },  // LATIN CAPITAL LETTER N --> FULLWIDTH LATIN CAPITAL LETTER N
762*cdf0e10cSrcweir     { 0x004F, 0xFF2F, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION },  // LATIN CAPITAL LETTER O --> FULLWIDTH LATIN CAPITAL LETTER O
763*cdf0e10cSrcweir     { 0x0050, 0xFF30, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION },  // LATIN CAPITAL LETTER P --> FULLWIDTH LATIN CAPITAL LETTER P
764*cdf0e10cSrcweir     { 0x0051, 0xFF31, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION },  // LATIN CAPITAL LETTER Q --> FULLWIDTH LATIN CAPITAL LETTER Q
765*cdf0e10cSrcweir     { 0x0052, 0xFF32, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION },  // LATIN CAPITAL LETTER R --> FULLWIDTH LATIN CAPITAL LETTER R
766*cdf0e10cSrcweir     { 0x0053, 0xFF33, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION },  // LATIN CAPITAL LETTER S --> FULLWIDTH LATIN CAPITAL LETTER S
767*cdf0e10cSrcweir     { 0x0054, 0xFF34, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION },  // LATIN CAPITAL LETTER T --> FULLWIDTH LATIN CAPITAL LETTER T
768*cdf0e10cSrcweir     { 0x0055, 0xFF35, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION },  // LATIN CAPITAL LETTER U --> FULLWIDTH LATIN CAPITAL LETTER U
769*cdf0e10cSrcweir     { 0x0056, 0xFF36, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION },  // LATIN CAPITAL LETTER V --> FULLWIDTH LATIN CAPITAL LETTER V
770*cdf0e10cSrcweir     { 0x0057, 0xFF37, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION },  // LATIN CAPITAL LETTER W --> FULLWIDTH LATIN CAPITAL LETTER W
771*cdf0e10cSrcweir     { 0x0058, 0xFF38, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION },  // LATIN CAPITAL LETTER X --> FULLWIDTH LATIN CAPITAL LETTER X
772*cdf0e10cSrcweir     { 0x0059, 0xFF39, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION },  // LATIN CAPITAL LETTER Y --> FULLWIDTH LATIN CAPITAL LETTER Y
773*cdf0e10cSrcweir     { 0x005A, 0xFF3A, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION },  // LATIN CAPITAL LETTER Z --> FULLWIDTH LATIN CAPITAL LETTER Z
774*cdf0e10cSrcweir     { 0x005B, 0xFF3B, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION },  // LEFT SQUARE BRACKET --> FULLWIDTH LEFT SQUARE BRACKET
775*cdf0e10cSrcweir     { 0x005C, 0xFF3C, HALF2FULL_NORMAL },  // REVERSE SOLIDUS --> FULLWIDTH REVERSE SOLIDUS
776*cdf0e10cSrcweir     { 0x005D, 0xFF3D, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION },  // RIGHT SQUARE BRACKET --> FULLWIDTH RIGHT SQUARE BRACKET
777*cdf0e10cSrcweir     { 0x005E, 0xFF3E, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION },  // CIRCUMFLEX ACCENT --> FULLWIDTH CIRCUMFLEX ACCENT
778*cdf0e10cSrcweir     { 0x005F, 0xFF3F, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION },  // LOW LINE --> FULLWIDTH LOW LINE
779*cdf0e10cSrcweir     { 0x0060, 0xFF40, HALF2FULL_NORMAL },  // GRAVE ACCENT --> FULLWIDTH GRAVE ACCENT
780*cdf0e10cSrcweir     { 0x0061, 0xFF41, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION },  // LATIN SMALL LETTER A --> FULLWIDTH LATIN SMALL LETTER A
781*cdf0e10cSrcweir     { 0x0062, 0xFF42, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION },  // LATIN SMALL LETTER B --> FULLWIDTH LATIN SMALL LETTER B
782*cdf0e10cSrcweir     { 0x0063, 0xFF43, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION },  // LATIN SMALL LETTER C --> FULLWIDTH LATIN SMALL LETTER C
783*cdf0e10cSrcweir     { 0x0064, 0xFF44, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION },  // LATIN SMALL LETTER D --> FULLWIDTH LATIN SMALL LETTER D
784*cdf0e10cSrcweir     { 0x0065, 0xFF45, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION },  // LATIN SMALL LETTER E --> FULLWIDTH LATIN SMALL LETTER E
785*cdf0e10cSrcweir     { 0x0066, 0xFF46, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION },  // LATIN SMALL LETTER F --> FULLWIDTH LATIN SMALL LETTER F
786*cdf0e10cSrcweir     { 0x0067, 0xFF47, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION },  // LATIN SMALL LETTER G --> FULLWIDTH LATIN SMALL LETTER G
787*cdf0e10cSrcweir     { 0x0068, 0xFF48, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION },  // LATIN SMALL LETTER H --> FULLWIDTH LATIN SMALL LETTER H
788*cdf0e10cSrcweir     { 0x0069, 0xFF49, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION },  // LATIN SMALL LETTER I --> FULLWIDTH LATIN SMALL LETTER I
789*cdf0e10cSrcweir     { 0x006A, 0xFF4A, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION },  // LATIN SMALL LETTER J --> FULLWIDTH LATIN SMALL LETTER J
790*cdf0e10cSrcweir     { 0x006B, 0xFF4B, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION },  // LATIN SMALL LETTER K --> FULLWIDTH LATIN SMALL LETTER K
791*cdf0e10cSrcweir     { 0x006C, 0xFF4C, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION },  // LATIN SMALL LETTER L --> FULLWIDTH LATIN SMALL LETTER L
792*cdf0e10cSrcweir     { 0x006D, 0xFF4D, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION },  // LATIN SMALL LETTER M --> FULLWIDTH LATIN SMALL LETTER M
793*cdf0e10cSrcweir     { 0x006E, 0xFF4E, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION },  // LATIN SMALL LETTER N --> FULLWIDTH LATIN SMALL LETTER N
794*cdf0e10cSrcweir     { 0x006F, 0xFF4F, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION },  // LATIN SMALL LETTER O --> FULLWIDTH LATIN SMALL LETTER O
795*cdf0e10cSrcweir     { 0x0070, 0xFF50, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION },  // LATIN SMALL LETTER P --> FULLWIDTH LATIN SMALL LETTER P
796*cdf0e10cSrcweir     { 0x0071, 0xFF51, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION },  // LATIN SMALL LETTER Q --> FULLWIDTH LATIN SMALL LETTER Q
797*cdf0e10cSrcweir     { 0x0072, 0xFF52, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION },  // LATIN SMALL LETTER R --> FULLWIDTH LATIN SMALL LETTER R
798*cdf0e10cSrcweir     { 0x0073, 0xFF53, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION },  // LATIN SMALL LETTER S --> FULLWIDTH LATIN SMALL LETTER S
799*cdf0e10cSrcweir     { 0x0074, 0xFF54, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION },  // LATIN SMALL LETTER T --> FULLWIDTH LATIN SMALL LETTER T
800*cdf0e10cSrcweir     { 0x0075, 0xFF55, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION },  // LATIN SMALL LETTER U --> FULLWIDTH LATIN SMALL LETTER U
801*cdf0e10cSrcweir     { 0x0076, 0xFF56, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION },  // LATIN SMALL LETTER V --> FULLWIDTH LATIN SMALL LETTER V
802*cdf0e10cSrcweir     { 0x0077, 0xFF57, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION },  // LATIN SMALL LETTER W --> FULLWIDTH LATIN SMALL LETTER W
803*cdf0e10cSrcweir     { 0x0078, 0xFF58, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION },  // LATIN SMALL LETTER X --> FULLWIDTH LATIN SMALL LETTER X
804*cdf0e10cSrcweir     { 0x0079, 0xFF59, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION },  // LATIN SMALL LETTER Y --> FULLWIDTH LATIN SMALL LETTER Y
805*cdf0e10cSrcweir     { 0x007A, 0xFF5A, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION },  // LATIN SMALL LETTER Z --> FULLWIDTH LATIN SMALL LETTER Z
806*cdf0e10cSrcweir     { 0x007B, 0xFF5B, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION },  // LEFT CURLY BRACKET --> FULLWIDTH LEFT CURLY BRACKET
807*cdf0e10cSrcweir     { 0x007C, 0xFF5C, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION },  // VERTICAL LINE --> FULLWIDTH VERTICAL LINE
808*cdf0e10cSrcweir     { 0x007D, 0xFF5D, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION },  // RIGHT CURLY BRACKET --> FULLWIDTH RIGHT CURLY BRACKET
809*cdf0e10cSrcweir     { 0x007E, 0xFF5E, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION },  // TILDE --> FULLWIDTH TILDE
810*cdf0e10cSrcweir     { 0x00A2, 0xFFE0, HALF2FULL_NORMAL },  // CENT SIGN --> FULLWIDTH CENT SIGN
811*cdf0e10cSrcweir     { 0x00A3, 0xFFE1, HALF2FULL_NORMAL },  // POUND SIGN --> FULLWIDTH POUND SIGN
812*cdf0e10cSrcweir     { 0x00A5, 0xFFE5, HALF2FULL_NORMAL },  // YEN SIGN --> FULLWIDTH YEN SIGN
813*cdf0e10cSrcweir     { 0x00A6, 0xFFE4, HALF2FULL_NORMAL },  // BROKEN BAR --> FULLWIDTH BROKEN BAR
814*cdf0e10cSrcweir     { 0x00AC, 0xFFE2, HALF2FULL_NORMAL },  // NOT SIGN --> FULLWIDTH NOT SIGN
815*cdf0e10cSrcweir     { 0x00AF, 0xFFE3, HALF2FULL_NORMAL },  // MACRON --> FULLWIDTH MACRON
816*cdf0e10cSrcweir     { 0x20A9, 0xFFE6, HALF2FULL_NORMAL },  // WON SIGN --> FULLWIDTH WON SIGN
817*cdf0e10cSrcweir     { 0xFF61, 0x3002, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION },  // HALFWIDTH IDEOGRAPHIC FULL STOP --> IDEOGRAPHIC FULL STOP
818*cdf0e10cSrcweir     { 0xFF62, 0x300C, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION },  // HALFWIDTH LEFT CORNER BRACKET --> LEFT CORNER BRACKET
819*cdf0e10cSrcweir     { 0xFF63, 0x300D, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION },  // HALFWIDTH RIGHT CORNER BRACKET --> RIGHT CORNER BRACKET
820*cdf0e10cSrcweir     { 0xFF64, 0x3001, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION },  // HALFWIDTH IDEOGRAPHIC COMMA --> IDEOGRAPHIC COMMA
821*cdf0e10cSrcweir     { 0xFF65, 0x30FB, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION },  // HALFWIDTH KATAKANA MIDDLE DOT --> KATAKANA MIDDLE DOT
822*cdf0e10cSrcweir     { 0xFF66, 0x30F2, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION | HALF2FULL_KATAKANA_ONLY },  // HALFWIDTH KATAKANA LETTER WO --> KATAKANA LETTER WO
823*cdf0e10cSrcweir     { 0xFF67, 0x30A1, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION | HALF2FULL_KATAKANA_ONLY },  // HALFWIDTH KATAKANA LETTER SMALL A --> KATAKANA LETTER SMALL A
824*cdf0e10cSrcweir     { 0xFF68, 0x30A3, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION | HALF2FULL_KATAKANA_ONLY },  // HALFWIDTH KATAKANA LETTER SMALL I --> KATAKANA LETTER SMALL I
825*cdf0e10cSrcweir     { 0xFF69, 0x30A5, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION | HALF2FULL_KATAKANA_ONLY },  // HALFWIDTH KATAKANA LETTER SMALL U --> KATAKANA LETTER SMALL U
826*cdf0e10cSrcweir     { 0xFF6A, 0x30A7, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION | HALF2FULL_KATAKANA_ONLY },  // HALFWIDTH KATAKANA LETTER SMALL E --> KATAKANA LETTER SMALL E
827*cdf0e10cSrcweir     { 0xFF6B, 0x30A9, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION | HALF2FULL_KATAKANA_ONLY },  // HALFWIDTH KATAKANA LETTER SMALL O --> KATAKANA LETTER SMALL O
828*cdf0e10cSrcweir     { 0xFF6C, 0x30E3, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION | HALF2FULL_KATAKANA_ONLY },  // HALFWIDTH KATAKANA LETTER SMALL YA --> KATAKANA LETTER SMALL YA
829*cdf0e10cSrcweir     { 0xFF6D, 0x30E5, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION | HALF2FULL_KATAKANA_ONLY },  // HALFWIDTH KATAKANA LETTER SMALL YU --> KATAKANA LETTER SMALL YU
830*cdf0e10cSrcweir     { 0xFF6E, 0x30E7, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION | HALF2FULL_KATAKANA_ONLY },  // HALFWIDTH KATAKANA LETTER SMALL YO --> KATAKANA LETTER SMALL YO
831*cdf0e10cSrcweir     { 0xFF6F, 0x30C3, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION | HALF2FULL_KATAKANA_ONLY },  // HALFWIDTH KATAKANA LETTER SMALL TU --> KATAKANA LETTER SMALL TU
832*cdf0e10cSrcweir     { 0xFF70, 0x30FC, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION },  // HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK --> KATAKANA-HIRAGANA PROLONGED SOUND MARK
833*cdf0e10cSrcweir     { 0xFF71, 0x30A2, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION | HALF2FULL_KATAKANA_ONLY },  // HALFWIDTH KATAKANA LETTER A --> KATAKANA LETTER A
834*cdf0e10cSrcweir     { 0xFF72, 0x30A4, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION | HALF2FULL_KATAKANA_ONLY },  // HALFWIDTH KATAKANA LETTER I --> KATAKANA LETTER I
835*cdf0e10cSrcweir     { 0xFF73, 0x30A6, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION | HALF2FULL_KATAKANA_ONLY },  // HALFWIDTH KATAKANA LETTER U --> KATAKANA LETTER U
836*cdf0e10cSrcweir     { 0xFF74, 0x30A8, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION | HALF2FULL_KATAKANA_ONLY },  // HALFWIDTH KATAKANA LETTER E --> KATAKANA LETTER E
837*cdf0e10cSrcweir     { 0xFF75, 0x30AA, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION | HALF2FULL_KATAKANA_ONLY },  // HALFWIDTH KATAKANA LETTER O --> KATAKANA LETTER O
838*cdf0e10cSrcweir     { 0xFF76, 0x30AB, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION | HALF2FULL_KATAKANA_ONLY },  // HALFWIDTH KATAKANA LETTER KA --> KATAKANA LETTER KA
839*cdf0e10cSrcweir     { 0xFF77, 0x30AD, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION | HALF2FULL_KATAKANA_ONLY },  // HALFWIDTH KATAKANA LETTER KI --> KATAKANA LETTER KI
840*cdf0e10cSrcweir     { 0xFF78, 0x30AF, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION | HALF2FULL_KATAKANA_ONLY },  // HALFWIDTH KATAKANA LETTER KU --> KATAKANA LETTER KU
841*cdf0e10cSrcweir     { 0xFF79, 0x30B1, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION | HALF2FULL_KATAKANA_ONLY },  // HALFWIDTH KATAKANA LETTER KE --> KATAKANA LETTER KE
842*cdf0e10cSrcweir     { 0xFF7A, 0x30B3, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION | HALF2FULL_KATAKANA_ONLY },  // HALFWIDTH KATAKANA LETTER KO --> KATAKANA LETTER KO
843*cdf0e10cSrcweir     { 0xFF7B, 0x30B5, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION | HALF2FULL_KATAKANA_ONLY },  // HALFWIDTH KATAKANA LETTER SA --> KATAKANA LETTER SA
844*cdf0e10cSrcweir     { 0xFF7C, 0x30B7, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION | HALF2FULL_KATAKANA_ONLY },  // HALFWIDTH KATAKANA LETTER SI --> KATAKANA LETTER SI
845*cdf0e10cSrcweir     { 0xFF7D, 0x30B9, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION | HALF2FULL_KATAKANA_ONLY },  // HALFWIDTH KATAKANA LETTER SU --> KATAKANA LETTER SU
846*cdf0e10cSrcweir     { 0xFF7E, 0x30BB, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION | HALF2FULL_KATAKANA_ONLY },  // HALFWIDTH KATAKANA LETTER SE --> KATAKANA LETTER SE
847*cdf0e10cSrcweir     { 0xFF7F, 0x30BD, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION | HALF2FULL_KATAKANA_ONLY },  // HALFWIDTH KATAKANA LETTER SO --> KATAKANA LETTER SO
848*cdf0e10cSrcweir     { 0xFF80, 0x30BF, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION | HALF2FULL_KATAKANA_ONLY },  // HALFWIDTH KATAKANA LETTER TA --> KATAKANA LETTER TA
849*cdf0e10cSrcweir     { 0xFF81, 0x30C1, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION | HALF2FULL_KATAKANA_ONLY },  // HALFWIDTH KATAKANA LETTER TI --> KATAKANA LETTER TI
850*cdf0e10cSrcweir     { 0xFF82, 0x30C4, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION | HALF2FULL_KATAKANA_ONLY },  // HALFWIDTH KATAKANA LETTER TU --> KATAKANA LETTER TU
851*cdf0e10cSrcweir     { 0xFF83, 0x30C6, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION | HALF2FULL_KATAKANA_ONLY },  // HALFWIDTH KATAKANA LETTER TE --> KATAKANA LETTER TE
852*cdf0e10cSrcweir     { 0xFF84, 0x30C8, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION | HALF2FULL_KATAKANA_ONLY },  // HALFWIDTH KATAKANA LETTER TO --> KATAKANA LETTER TO
853*cdf0e10cSrcweir     { 0xFF85, 0x30CA, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION | HALF2FULL_KATAKANA_ONLY },  // HALFWIDTH KATAKANA LETTER NA --> KATAKANA LETTER NA
854*cdf0e10cSrcweir     { 0xFF86, 0x30CB, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION | HALF2FULL_KATAKANA_ONLY },  // HALFWIDTH KATAKANA LETTER NI --> KATAKANA LETTER NI
855*cdf0e10cSrcweir     { 0xFF87, 0x30CC, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION | HALF2FULL_KATAKANA_ONLY },  // HALFWIDTH KATAKANA LETTER NU --> KATAKANA LETTER NU
856*cdf0e10cSrcweir     { 0xFF88, 0x30CD, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION | HALF2FULL_KATAKANA_ONLY },  // HALFWIDTH KATAKANA LETTER NE --> KATAKANA LETTER NE
857*cdf0e10cSrcweir     { 0xFF89, 0x30CE, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION | HALF2FULL_KATAKANA_ONLY },  // HALFWIDTH KATAKANA LETTER NO --> KATAKANA LETTER NO
858*cdf0e10cSrcweir     { 0xFF8A, 0x30CF, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION | HALF2FULL_KATAKANA_ONLY },  // HALFWIDTH KATAKANA LETTER HA --> KATAKANA LETTER HA
859*cdf0e10cSrcweir     { 0xFF8B, 0x30D2, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION | HALF2FULL_KATAKANA_ONLY },  // HALFWIDTH KATAKANA LETTER HI --> KATAKANA LETTER HI
860*cdf0e10cSrcweir     { 0xFF8C, 0x30D5, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION | HALF2FULL_KATAKANA_ONLY },  // HALFWIDTH KATAKANA LETTER HU --> KATAKANA LETTER HU
861*cdf0e10cSrcweir     { 0xFF8D, 0x30D8, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION | HALF2FULL_KATAKANA_ONLY },  // HALFWIDTH KATAKANA LETTER HE --> KATAKANA LETTER HE
862*cdf0e10cSrcweir     { 0xFF8E, 0x30DB, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION | HALF2FULL_KATAKANA_ONLY },  // HALFWIDTH KATAKANA LETTER HO --> KATAKANA LETTER HO
863*cdf0e10cSrcweir     { 0xFF8F, 0x30DE, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION | HALF2FULL_KATAKANA_ONLY },  // HALFWIDTH KATAKANA LETTER MA --> KATAKANA LETTER MA
864*cdf0e10cSrcweir     { 0xFF90, 0x30DF, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION | HALF2FULL_KATAKANA_ONLY },  // HALFWIDTH KATAKANA LETTER MI --> KATAKANA LETTER MI
865*cdf0e10cSrcweir     { 0xFF91, 0x30E0, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION | HALF2FULL_KATAKANA_ONLY },  // HALFWIDTH KATAKANA LETTER MU --> KATAKANA LETTER MU
866*cdf0e10cSrcweir     { 0xFF92, 0x30E1, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION | HALF2FULL_KATAKANA_ONLY },  // HALFWIDTH KATAKANA LETTER ME --> KATAKANA LETTER ME
867*cdf0e10cSrcweir     { 0xFF93, 0x30E2, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION | HALF2FULL_KATAKANA_ONLY },  // HALFWIDTH KATAKANA LETTER MO --> KATAKANA LETTER MO
868*cdf0e10cSrcweir     { 0xFF94, 0x30E4, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION | HALF2FULL_KATAKANA_ONLY },  // HALFWIDTH KATAKANA LETTER YA --> KATAKANA LETTER YA
869*cdf0e10cSrcweir     { 0xFF95, 0x30E6, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION | HALF2FULL_KATAKANA_ONLY },  // HALFWIDTH KATAKANA LETTER YU --> KATAKANA LETTER YU
870*cdf0e10cSrcweir     { 0xFF96, 0x30E8, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION | HALF2FULL_KATAKANA_ONLY },  // HALFWIDTH KATAKANA LETTER YO --> KATAKANA LETTER YO
871*cdf0e10cSrcweir     { 0xFF97, 0x30E9, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION | HALF2FULL_KATAKANA_ONLY },  // HALFWIDTH KATAKANA LETTER RA --> KATAKANA LETTER RA
872*cdf0e10cSrcweir     { 0xFF98, 0x30EA, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION | HALF2FULL_KATAKANA_ONLY },  // HALFWIDTH KATAKANA LETTER RI --> KATAKANA LETTER RI
873*cdf0e10cSrcweir     { 0xFF99, 0x30EB, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION | HALF2FULL_KATAKANA_ONLY },  // HALFWIDTH KATAKANA LETTER RU --> KATAKANA LETTER RU
874*cdf0e10cSrcweir     { 0xFF9A, 0x30EC, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION | HALF2FULL_KATAKANA_ONLY },  // HALFWIDTH KATAKANA LETTER RE --> KATAKANA LETTER RE
875*cdf0e10cSrcweir     { 0xFF9B, 0x30ED, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION | HALF2FULL_KATAKANA_ONLY },  // HALFWIDTH KATAKANA LETTER RO --> KATAKANA LETTER RO
876*cdf0e10cSrcweir     { 0xFF9C, 0x30EF, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION | HALF2FULL_KATAKANA_ONLY },  // HALFWIDTH KATAKANA LETTER WA --> KATAKANA LETTER WA
877*cdf0e10cSrcweir     { 0xFF9D, 0x30F3, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION | HALF2FULL_KATAKANA_ONLY },  // HALFWIDTH KATAKANA LETTER N --> KATAKANA LETTER N
878*cdf0e10cSrcweir 
879*cdf0e10cSrcweir // bluedwarf: A combination character cannot be used solely
880*cdf0e10cSrcweir //    { 0xFF9E, 0x3099, HALF2FULL_NORMAL },  // HALFWIDTH KATAKANA VOICED SOUND MARK --> COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK
881*cdf0e10cSrcweir //    { 0xFF9F, 0x309A, HALF2FULL_NORMAL },  // HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK --> COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
882*cdf0e10cSrcweir     { 0xFF9E, 0x309B, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION | HALF2FULL_KATAKANA_ONLY },  // HALFWIDTH KATAKANA VOICED SOUND MARK --> KATAKANA-HIRAGANA VOICED SOUND MARK
883*cdf0e10cSrcweir     { 0xFF9F, 0x309C, HALF2FULL_NORMAL | HALF2FULL_JIS_FUNCTION | HALF2FULL_KATAKANA_ONLY },  // HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK --> KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
884*cdf0e10cSrcweir 
885*cdf0e10cSrcweir     { 0xFFA0, 0x3164, HALF2FULL_NORMAL },  // HALFWIDTH HANGUL FILLER --> HANGUL FILLER
886*cdf0e10cSrcweir     { 0xFFA1, 0x3131, HALF2FULL_NORMAL },  // HALFWIDTH HANGUL LETTER KIYEOK --> HANGUL LETTER KIYEOK
887*cdf0e10cSrcweir     { 0xFFA2, 0x3132, HALF2FULL_NORMAL },  // HALFWIDTH HANGUL LETTER SSANGKIYEOK --> HANGUL LETTER SSANGKIYEOK
888*cdf0e10cSrcweir     { 0xFFA3, 0x3133, HALF2FULL_NORMAL },  // HALFWIDTH HANGUL LETTER KIYEOK-SIOS --> HANGUL LETTER KIYEOK-SIOS
889*cdf0e10cSrcweir     { 0xFFA4, 0x3134, HALF2FULL_NORMAL },  // HALFWIDTH HANGUL LETTER NIEUN --> HANGUL LETTER NIEUN
890*cdf0e10cSrcweir     { 0xFFA5, 0x3135, HALF2FULL_NORMAL },  // HALFWIDTH HANGUL LETTER NIEUN-CIEUC --> HANGUL LETTER NIEUN-CIEUC
891*cdf0e10cSrcweir     { 0xFFA6, 0x3136, HALF2FULL_NORMAL },  // HALFWIDTH HANGUL LETTER NIEUN-HIEUH --> HANGUL LETTER NIEUN-HIEUH
892*cdf0e10cSrcweir     { 0xFFA7, 0x3137, HALF2FULL_NORMAL },  // HALFWIDTH HANGUL LETTER TIKEUT --> HANGUL LETTER TIKEUT
893*cdf0e10cSrcweir     { 0xFFA8, 0x3138, HALF2FULL_NORMAL },  // HALFWIDTH HANGUL LETTER SSANGTIKEUT --> HANGUL LETTER SSANGTIKEUT
894*cdf0e10cSrcweir     { 0xFFA9, 0x3139, HALF2FULL_NORMAL },  // HALFWIDTH HANGUL LETTER RIEUL --> HANGUL LETTER RIEUL
895*cdf0e10cSrcweir     { 0xFFAA, 0x313A, HALF2FULL_NORMAL },  // HALFWIDTH HANGUL LETTER RIEUL-KIYEOK --> HANGUL LETTER RIEUL-KIYEOK
896*cdf0e10cSrcweir     { 0xFFAB, 0x313B, HALF2FULL_NORMAL },  // HALFWIDTH HANGUL LETTER RIEUL-MIEUM --> HANGUL LETTER RIEUL-MIEUM
897*cdf0e10cSrcweir     { 0xFFAC, 0x313C, HALF2FULL_NORMAL },  // HALFWIDTH HANGUL LETTER RIEUL-PIEUP --> HANGUL LETTER RIEUL-PIEUP
898*cdf0e10cSrcweir     { 0xFFAD, 0x313D, HALF2FULL_NORMAL },  // HALFWIDTH HANGUL LETTER RIEUL-SIOS --> HANGUL LETTER RIEUL-SIOS
899*cdf0e10cSrcweir     { 0xFFAE, 0x313E, HALF2FULL_NORMAL },  // HALFWIDTH HANGUL LETTER RIEUL-THIEUTH --> HANGUL LETTER RIEUL-THIEUTH
900*cdf0e10cSrcweir     { 0xFFAF, 0x313F, HALF2FULL_NORMAL },  // HALFWIDTH HANGUL LETTER RIEUL-PHIEUPH --> HANGUL LETTER RIEUL-PHIEUPH
901*cdf0e10cSrcweir     { 0xFFB0, 0x3140, HALF2FULL_NORMAL },  // HALFWIDTH HANGUL LETTER RIEUL-HIEUH --> HANGUL LETTER RIEUL-HIEUH
902*cdf0e10cSrcweir     { 0xFFB1, 0x3141, HALF2FULL_NORMAL },  // HALFWIDTH HANGUL LETTER MIEUM --> HANGUL LETTER MIEUM
903*cdf0e10cSrcweir     { 0xFFB2, 0x3142, HALF2FULL_NORMAL },  // HALFWIDTH HANGUL LETTER PIEUP --> HANGUL LETTER PIEUP
904*cdf0e10cSrcweir     { 0xFFB3, 0x3143, HALF2FULL_NORMAL },  // HALFWIDTH HANGUL LETTER SSANGPIEUP --> HANGUL LETTER SSANGPIEUP
905*cdf0e10cSrcweir     { 0xFFB4, 0x3144, HALF2FULL_NORMAL },  // HALFWIDTH HANGUL LETTER PIEUP-SIOS --> HANGUL LETTER PIEUP-SIOS
906*cdf0e10cSrcweir     { 0xFFB5, 0x3145, HALF2FULL_NORMAL },  // HALFWIDTH HANGUL LETTER SIOS --> HANGUL LETTER SIOS
907*cdf0e10cSrcweir     { 0xFFB6, 0x3146, HALF2FULL_NORMAL },  // HALFWIDTH HANGUL LETTER SSANGSIOS --> HANGUL LETTER SSANGSIOS
908*cdf0e10cSrcweir     { 0xFFB7, 0x3147, HALF2FULL_NORMAL },  // HALFWIDTH HANGUL LETTER IEUNG --> HANGUL LETTER IEUNG
909*cdf0e10cSrcweir     { 0xFFB8, 0x3148, HALF2FULL_NORMAL },  // HALFWIDTH HANGUL LETTER CIEUC --> HANGUL LETTER CIEUC
910*cdf0e10cSrcweir     { 0xFFB9, 0x3149, HALF2FULL_NORMAL },  // HALFWIDTH HANGUL LETTER SSANGCIEUC --> HANGUL LETTER SSANGCIEUC
911*cdf0e10cSrcweir     { 0xFFBA, 0x314A, HALF2FULL_NORMAL },  // HALFWIDTH HANGUL LETTER CHIEUCH --> HANGUL LETTER CHIEUCH
912*cdf0e10cSrcweir     { 0xFFBB, 0x314B, HALF2FULL_NORMAL },  // HALFWIDTH HANGUL LETTER KHIEUKH --> HANGUL LETTER KHIEUKH
913*cdf0e10cSrcweir     { 0xFFBC, 0x314C, HALF2FULL_NORMAL },  // HALFWIDTH HANGUL LETTER THIEUTH --> HANGUL LETTER THIEUTH
914*cdf0e10cSrcweir     { 0xFFBD, 0x314D, HALF2FULL_NORMAL },  // HALFWIDTH HANGUL LETTER PHIEUPH --> HANGUL LETTER PHIEUPH
915*cdf0e10cSrcweir     { 0xFFBE, 0x314E, HALF2FULL_NORMAL },  // HALFWIDTH HANGUL LETTER HIEUH --> HANGUL LETTER HIEUH
916*cdf0e10cSrcweir     { 0xFFC2, 0x314F, HALF2FULL_NORMAL },  // HALFWIDTH HANGUL LETTER A --> HANGUL LETTER A
917*cdf0e10cSrcweir     { 0xFFC3, 0x3150, HALF2FULL_NORMAL },  // HALFWIDTH HANGUL LETTER AE --> HANGUL LETTER AE
918*cdf0e10cSrcweir     { 0xFFC4, 0x3151, HALF2FULL_NORMAL },  // HALFWIDTH HANGUL LETTER YA --> HANGUL LETTER YA
919*cdf0e10cSrcweir     { 0xFFC5, 0x3152, HALF2FULL_NORMAL },  // HALFWIDTH HANGUL LETTER YAE --> HANGUL LETTER YAE
920*cdf0e10cSrcweir     { 0xFFC6, 0x3153, HALF2FULL_NORMAL },  // HALFWIDTH HANGUL LETTER EO --> HANGUL LETTER EO
921*cdf0e10cSrcweir     { 0xFFC7, 0x3154, HALF2FULL_NORMAL },  // HALFWIDTH HANGUL LETTER E --> HANGUL LETTER E
922*cdf0e10cSrcweir     { 0xFFCA, 0x3155, HALF2FULL_NORMAL },  // HALFWIDTH HANGUL LETTER YEO --> HANGUL LETTER YEO
923*cdf0e10cSrcweir     { 0xFFCB, 0x3156, HALF2FULL_NORMAL },  // HALFWIDTH HANGUL LETTER YE --> HANGUL LETTER YE
924*cdf0e10cSrcweir     { 0xFFCC, 0x3157, HALF2FULL_NORMAL },  // HALFWIDTH HANGUL LETTER O --> HANGUL LETTER O
925*cdf0e10cSrcweir     { 0xFFCD, 0x3158, HALF2FULL_NORMAL },  // HALFWIDTH HANGUL LETTER WA --> HANGUL LETTER WA
926*cdf0e10cSrcweir     { 0xFFCE, 0x3159, HALF2FULL_NORMAL },  // HALFWIDTH HANGUL LETTER WAE --> HANGUL LETTER WAE
927*cdf0e10cSrcweir     { 0xFFCF, 0x315A, HALF2FULL_NORMAL },  // HALFWIDTH HANGUL LETTER OE --> HANGUL LETTER OE
928*cdf0e10cSrcweir     { 0xFFD2, 0x315B, HALF2FULL_NORMAL },  // HALFWIDTH HANGUL LETTER YO --> HANGUL LETTER YO
929*cdf0e10cSrcweir     { 0xFFD3, 0x315C, HALF2FULL_NORMAL },  // HALFWIDTH HANGUL LETTER U --> HANGUL LETTER U
930*cdf0e10cSrcweir     { 0xFFD4, 0x315D, HALF2FULL_NORMAL },  // HALFWIDTH HANGUL LETTER WEO --> HANGUL LETTER WEO
931*cdf0e10cSrcweir     { 0xFFD5, 0x315E, HALF2FULL_NORMAL },  // HALFWIDTH HANGUL LETTER WE --> HANGUL LETTER WE
932*cdf0e10cSrcweir     { 0xFFD6, 0x315F, HALF2FULL_NORMAL },  // HALFWIDTH HANGUL LETTER WI --> HANGUL LETTER WI
933*cdf0e10cSrcweir     { 0xFFD7, 0x3160, HALF2FULL_NORMAL },  // HALFWIDTH HANGUL LETTER YU --> HANGUL LETTER YU
934*cdf0e10cSrcweir     { 0xFFDA, 0x3161, HALF2FULL_NORMAL },  // HALFWIDTH HANGUL LETTER EU --> HANGUL LETTER EU
935*cdf0e10cSrcweir     { 0xFFDB, 0x3162, HALF2FULL_NORMAL },  // HALFWIDTH HANGUL LETTER YI --> HANGUL LETTER YI
936*cdf0e10cSrcweir     { 0xFFDC, 0x3163, HALF2FULL_NORMAL },  // HALFWIDTH HANGUL LETTER I --> HANGUL LETTER I
937*cdf0e10cSrcweir     { 0xFFE8, 0x2502, HALF2FULL_NORMAL },  // HALFWIDTH FORMS LIGHT VERTICAL --> BOX DRAWINGS LIGHT VERTICAL
938*cdf0e10cSrcweir     { 0xFFE9, 0x2190, HALF2FULL_NORMAL },  // HALFWIDTH LEFTWARDS ARROW --> LEFTWARDS ARROW
939*cdf0e10cSrcweir     { 0xFFEA, 0x2191, HALF2FULL_NORMAL },  // HALFWIDTH UPWARDS ARROW --> UPWARDS ARROW
940*cdf0e10cSrcweir     { 0xFFEB, 0x2192, HALF2FULL_NORMAL },  // HALFWIDTH RIGHTWARDS ARROW --> RIGHTWARDS ARROW
941*cdf0e10cSrcweir     { 0xFFEC, 0x2193, HALF2FULL_NORMAL },  // HALFWIDTH DOWNWARDS ARROW --> DOWNWARDS ARROW
942*cdf0e10cSrcweir     { 0xFFED, 0x25A0, HALF2FULL_NORMAL },  // HALFWIDTH BLACK SQUARE --> BLACK SQUARE
943*cdf0e10cSrcweir     { 0xFFEE, 0x25CB, HALF2FULL_NORMAL },  // HALFWIDTH WHITE CIRCLE --> WHITE CIRCLE
944*cdf0e10cSrcweir };
945*cdf0e10cSrcweir 
946*cdf0e10cSrcweir /*
947*cdf0e10cSrcweir  Exceptional conversion table for JIS function
948*cdf0e10cSrcweir */
949*cdf0e10cSrcweir UnicodePairWithFlag half2fullJISException[] = {
950*cdf0e10cSrcweir     { 0x0022, 0x201D, HALF2FULL_JIS_FUNCTION }, // QUOTATION MARK --> RIGHT DOUBLE QUOTATION MARK
951*cdf0e10cSrcweir     { 0x0027, 0x2019, HALF2FULL_JIS_FUNCTION }, // APOSTROPHE --> RIGHT SINGLE QUOTATION MARK
952*cdf0e10cSrcweir     { 0x005C, 0xFFE5, HALF2FULL_JIS_FUNCTION }, // REVERSE SOLIDUS --> FULLWIDTH YEN SIGN
953*cdf0e10cSrcweir     { 0x0060, 0x2018, HALF2FULL_JIS_FUNCTION }, // GRAVE ACCENT --> LEFT SINGLE QUOTATION MARK
954*cdf0e10cSrcweir  };
955*cdf0e10cSrcweir 
956*cdf0e10cSrcweir 
957*cdf0e10cSrcweir } } } }
958*cdf0e10cSrcweir 
959*cdf0e10cSrcweir #endif
960