Skip to content

Commit 88b5983

Browse files
committed
Editing
1 parent a70586b commit 88b5983

10 files changed

+883
-1043
lines changed

CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,10 +42,10 @@ set(CMAKE_EXE_LINKER_FLAGS_RELEASE "")
4242

4343
set(SOURCE_FILES_MAPCODELIB
4444
mapcodelib/internal_data.h
45+
mapcodelib/internal_alphabet_recognizer.h
4546
mapcodelib/internal_iso3166_data.h
4647
mapcodelib/internal_territory_alphabets.h
4748
mapcodelib/internal_territory_names_english.h
48-
mapcodelib/internal_territory_names_english_full.h
4949
mapcodelib/internal_territory_names_local.h
5050
mapcodelib/internal_territory_search.h
5151
mapcodelib/mapcode_alphabets.h

README.md

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -145,13 +145,6 @@ You can disabled alphabet support by adding the following compiler directive:
145145

146146
-DNO_SUPPORT_ALPHABETS
147147

148-
### Removing Fast Encoding Support: NO_FAST_ENCODE
149-
150-
By default, encoding is optimized by the use of a additional data table (approx. 12K). You can
151-
remove this table from the library by adding the compiler directive:
152-
153-
-DNO_FAST_ENCODE
154-
155148
## Release Notes
156149

157150
### 2.4.1
@@ -162,7 +155,7 @@ remove this table from the library by adding the compiler directive:
162155

163156
* Split off legacy stuff into `mapcode_legacy.h`.
164157

165-
* Added `convertUtf8ToUtf16`, `convertUtf16ToUtf8`, `recogniseAlphabetUtf8`, `recogniseAlphabetUtf16`.
158+
* Added `convertUtf8ToUtf16`, `convertUtf16ToUtf8`, `recognizeAlphabetUtf8`, `recogniseAlphabetUtf16`.
166159

167160
### 2.4.0
168161

Lines changed: 290 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,290 @@
1+
/*
2+
* Copyright (C) 2014-2016 Stichting Mapcode Foundation (http://www.mapcode.com)
3+
*
4+
* Licensed under the Apache License, Version 2.0 (the "License");
5+
* you may not use this file except in compliance with the License.
6+
* You may obtain a copy of the License at
7+
*
8+
* http://www.apache.org/licenses/LICENSE-2.0
9+
*
10+
* Unless required by applicable law or agreed to in writing, software
11+
* distributed under the License is distributed on an "AS IS" BASIS,
12+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
* See the License for the specific language governing permissions and
14+
* limitations under the License.
15+
*/
16+
17+
#ifndef __INTERNAL_ALPHABET_RECOGNISER_H__
18+
#define __INTERNAL_ALPHABET_RECOGNISER_H__
19+
20+
#ifdef __cplusplus
21+
extern "C" {
22+
#endif
23+
24+
// *** GENERATED FILE (dividemaps.cpp), DO NOT CHANGE OR PRETTIFY ***
25+
26+
#ifdef NO_SUPPORT_ALPHABETS
27+
#error "NO_SUPPORT_ALPHABETS cannot be specified in this file"
28+
#endif
29+
30+
// Returns alphabet of character, or negative (_ALPHABET_MIN) in not recognized
31+
#define recognizeAlphabetOfChar(w) ((w) > 0x313f ? _ALPHABET_MIN : alphabetOf[(w) >> 6])
32+
33+
static enum Alphabet alphabetOf[] = {
34+
/* 0000 */ ALPHABET_ROMAN , ALPHABET_ROMAN , _ALPHABET_MIN , _ALPHABET_MIN,
35+
/* 0100 */ _ALPHABET_MIN , _ALPHABET_MIN , _ALPHABET_MIN , _ALPHABET_MIN,
36+
/* 0200 */ _ALPHABET_MIN , _ALPHABET_MIN , _ALPHABET_MIN , _ALPHABET_MIN,
37+
/* 0300 */ _ALPHABET_MIN , _ALPHABET_MIN , ALPHABET_GREEK , ALPHABET_GREEK,
38+
/* 0400 */ ALPHABET_CYRILLIC , _ALPHABET_MIN , _ALPHABET_MIN , _ALPHABET_MIN,
39+
/* 0500 */ ALPHABET_ARMENIAN , ALPHABET_ARMENIAN , ALPHABET_ARMENIAN , ALPHABET_HEBREW,
40+
/* 0600 */ ALPHABET_ARABIC , ALPHABET_ARABIC , _ALPHABET_MIN , _ALPHABET_MIN,
41+
/* 0700 */ _ALPHABET_MIN , _ALPHABET_MIN , ALPHABET_THAANA , _ALPHABET_MIN,
42+
/* 0800 */ _ALPHABET_MIN , _ALPHABET_MIN , _ALPHABET_MIN , _ALPHABET_MIN,
43+
/* 0900 */ ALPHABET_DEVANAGARI , ALPHABET_DEVANAGARI , ALPHABET_BENGALI , ALPHABET_BENGALI,
44+
/* 0a00 */ ALPHABET_GURMUKHI , ALPHABET_GURMUKHI , ALPHABET_GUJARATI , _ALPHABET_MIN,
45+
/* 0b00 */ ALPHABET_ODIA , _ALPHABET_MIN , ALPHABET_TAMIL , ALPHABET_TAMIL,
46+
/* 0c00 */ ALPHABET_TELUGU , _ALPHABET_MIN , ALPHABET_KANNADA , _ALPHABET_MIN,
47+
/* 0d00 */ ALPHABET_MALAYALAM , ALPHABET_MALAYALAM , ALPHABET_SINHALESE , ALPHABET_SINHALESE,
48+
/* 0e00 */ ALPHABET_THAI , ALPHABET_THAI , ALPHABET_LAO , ALPHABET_LAO,
49+
/* 0f00 */ ALPHABET_TIBETAN , ALPHABET_TIBETAN , _ALPHABET_MIN , _ALPHABET_MIN,
50+
/* 1000 */ ALPHABET_BURMESE , ALPHABET_BURMESE , ALPHABET_GEORGIAN , ALPHABET_GEORGIAN,
51+
/* 1100 */ ALPHABET_KOREAN , ALPHABET_KOREAN , _ALPHABET_MIN , _ALPHABET_MIN,
52+
/* 1200 */ ALPHABET_AMHARIC , ALPHABET_AMHARIC , ALPHABET_AMHARIC , ALPHABET_AMHARIC,
53+
/* 1300 */ ALPHABET_AMHARIC , ALPHABET_AMHARIC , _ALPHABET_MIN , _ALPHABET_MIN,
54+
/* 1400 */ _ALPHABET_MIN , _ALPHABET_MIN , _ALPHABET_MIN , _ALPHABET_MIN,
55+
/* 1500 */ _ALPHABET_MIN , _ALPHABET_MIN , _ALPHABET_MIN , _ALPHABET_MIN,
56+
/* 1600 */ _ALPHABET_MIN , _ALPHABET_MIN , _ALPHABET_MIN , _ALPHABET_MIN,
57+
/* 1700 */ _ALPHABET_MIN , _ALPHABET_MIN , ALPHABET_KHMER , ALPHABET_KHMER,
58+
/* 1800 */ _ALPHABET_MIN , _ALPHABET_MIN , _ALPHABET_MIN , _ALPHABET_MIN,
59+
/* 1900 */ _ALPHABET_MIN , _ALPHABET_MIN , _ALPHABET_MIN , _ALPHABET_MIN,
60+
/* 1a00 */ _ALPHABET_MIN , _ALPHABET_MIN , _ALPHABET_MIN , _ALPHABET_MIN,
61+
/* 1b00 */ _ALPHABET_MIN , _ALPHABET_MIN , _ALPHABET_MIN , _ALPHABET_MIN,
62+
/* 1c00 */ _ALPHABET_MIN , _ALPHABET_MIN , _ALPHABET_MIN , _ALPHABET_MIN,
63+
/* 1d00 */ _ALPHABET_MIN , _ALPHABET_MIN , _ALPHABET_MIN , _ALPHABET_MIN,
64+
/* 1e00 */ _ALPHABET_MIN , _ALPHABET_MIN , _ALPHABET_MIN , _ALPHABET_MIN,
65+
/* 1f00 */ _ALPHABET_MIN , _ALPHABET_MIN , _ALPHABET_MIN , _ALPHABET_MIN,
66+
/* 2000 */ _ALPHABET_MIN , _ALPHABET_MIN , _ALPHABET_MIN , _ALPHABET_MIN,
67+
/* 2100 */ _ALPHABET_MIN , _ALPHABET_MIN , _ALPHABET_MIN , _ALPHABET_MIN,
68+
/* 2200 */ _ALPHABET_MIN , _ALPHABET_MIN , _ALPHABET_MIN , _ALPHABET_MIN,
69+
/* 2300 */ _ALPHABET_MIN , _ALPHABET_MIN , _ALPHABET_MIN , _ALPHABET_MIN,
70+
/* 2400 */ _ALPHABET_MIN , _ALPHABET_MIN , _ALPHABET_MIN , _ALPHABET_MIN,
71+
/* 2500 */ _ALPHABET_MIN , _ALPHABET_MIN , _ALPHABET_MIN , _ALPHABET_MIN,
72+
/* 2600 */ _ALPHABET_MIN , _ALPHABET_MIN , _ALPHABET_MIN , _ALPHABET_MIN,
73+
/* 2700 */ _ALPHABET_MIN , _ALPHABET_MIN , _ALPHABET_MIN , _ALPHABET_MIN,
74+
/* 2800 */ _ALPHABET_MIN , _ALPHABET_MIN , _ALPHABET_MIN , _ALPHABET_MIN,
75+
/* 2900 */ _ALPHABET_MIN , _ALPHABET_MIN , _ALPHABET_MIN , _ALPHABET_MIN,
76+
/* 2a00 */ _ALPHABET_MIN , _ALPHABET_MIN , _ALPHABET_MIN , _ALPHABET_MIN,
77+
/* 2b00 */ _ALPHABET_MIN , _ALPHABET_MIN , _ALPHABET_MIN , _ALPHABET_MIN,
78+
/* 2c00 */ _ALPHABET_MIN , _ALPHABET_MIN , _ALPHABET_MIN , _ALPHABET_MIN,
79+
/* 2d00 */ ALPHABET_TIFINAGH , ALPHABET_TIFINAGH , _ALPHABET_MIN , _ALPHABET_MIN,
80+
/* 2e00 */ _ALPHABET_MIN , _ALPHABET_MIN , _ALPHABET_MIN , _ALPHABET_MIN,
81+
/* 2f00 */ _ALPHABET_MIN , _ALPHABET_MIN , _ALPHABET_MIN , _ALPHABET_MIN,
82+
/* 3000 */ _ALPHABET_MIN , _ALPHABET_MIN , ALPHABET_KATAKANA , ALPHABET_KATAKANA,
83+
/* 3100 */ ALPHABET_CHINESE
84+
}; // 197 records
85+
86+
static const char *romanVersionOf[] = {
87+
/* 0000 */ "? !?#$%&'()*+,-./0123456789:;<=>?",
88+
/* 0040 */ "@ABCDEFGHIJKLMNOPQRSTUVWXYZ[?]^_`abcdefghijklmnopqrstuvwxyz{|}~?",
89+
/* 0080 */ NULL,
90+
/* 00c0 */ NULL,
91+
/* 0100 */ NULL,
92+
/* 0140 */ NULL,
93+
/* 0180 */ NULL,
94+
/* 01c0 */ NULL,
95+
/* 0200 */ NULL,
96+
/* 0240 */ NULL,
97+
/* 0280 */ NULL,
98+
/* 02c0 */ NULL,
99+
/* 0300 */ NULL,
100+
/* 0340 */ NULL,
101+
/* 0380 */ "????????EU???????ABGDFZHQIKLMNCOJP?STYVXRW??????????????????????",
102+
/* 03c0 */ NULL,
103+
/* 0400 */ "????????????????AZBGDEFN??KLMHOJPCTYQXSVW????U?R????????????????",
104+
/* 0440 */ NULL,
105+
/* 0480 */ NULL,
106+
/* 04c0 */ NULL,
107+
/* 0500 */ "??????????????????????????????????????????????????BCDE??FGHI?J?K",
108+
/* 0540 */ "LM?N?U?PQ?R??STVWXYZ?OA?????????????????????????????????????????",
109+
/* 0580 */ NULL,
110+
/* 05c0 */ "????????????????ABCDFIGHJKLMNPQ?ROSETUVWXYZ?????????????????????",
111+
/* 0600 */ "???????????????????????????????????????IA?BEVCDFGHJKLMNPQRS?????",
112+
/* 0640 */ "?TU?WXYOZ???????????????????????????????????????????????????????",
113+
/* 0680 */ NULL,
114+
/* 06c0 */ NULL,
115+
/* 0700 */ NULL,
116+
/* 0740 */ NULL,
117+
/* 0780 */ "BCDFGHJKLMNPQRSTVWXYA??E????U????????????????????Z??????????????",
118+
/* 07c0 */ NULL,
119+
/* 0800 */ NULL,
120+
/* 0840 */ NULL,
121+
/* 0880 */ NULL,
122+
/* 08c0 */ NULL,
123+
/* 0900 */ "?????A?????????E?????B?CD?F?G??HJ??KL?MNP?QUZRS?T?V??W??XY??????",
124+
/* 0940 */ "??????????????????????????????????????0123456789????????????????",
125+
/* 0980 */ "?????????????????????CDFBGH?AJ?UKLMNPQR?S?T?VWEX??Y??????Z??????",
126+
/* 09c0 */ "??????????????????????????????????????0123456789????????????????",
127+
/* 0a00 */ "?????A?????????E?????B?CD?F?G??HJZ?KL?MNP?QU?RS?T?V??W??XY??????",
128+
/* 0a40 */ "??????????????????????????????????????0123456789????????????????",
129+
/* 0a80 */ "???????E?U???????????H?B??J?CXRKNDY?L?F?W?MTGZS?P??A?Q?V????????",
130+
/* 0ac0 */ NULL,
131+
/* 0b00 */ "?????????????????????BCDF?G?HA?JOKLEMNPQR?S?T?VWX??Y????ZU??????",
132+
/* 0b40 */ NULL,
133+
/* 0b80 */ "?????SE?TV????WXY?ZU?B???AC????D????F???G?H???JKLRMQPN??????????",
134+
/* 0bc0 */ NULL,
135+
/* 0c00 */ "?????????????????????B?C?DF?G?AHJK?LMNPQR?SETUV?W?XY?Z??????????",
136+
/* 0c40 */ NULL,
137+
/* 0c80 */ "???????U??????E???A??BCD?FGHJ???KL?MN?PQR?STVW??X?Y??Z??????????",
138+
/* 0cc0 */ NULL,
139+
/* 0d00 */ "?????????U?E??????A??BCD??F?G??HOJ??KLMNP?????Q?RST?VWX?YZ??????",
140+
/* 0d40 */ "??????????????????????????????????????0123456789????????????????",
141+
/* 0d80 */ "?????A???E?U??????????????B?C??D??F????G?H??JK?L?M?NP?Q?RSTV?W??",
142+
/* 0dc0 */ "X??YZ???????????????????????????????????????????????????????????",
143+
/* 0e00 */ "?BC?D??FGHJ??????K??L?MNP?Q?R????S?T?V?W????UXYZA?E?????????????",
144+
/* 0e40 */ "????????????????0123456789??????????????????????????????????????",
145+
/* 0e80 */ "?BC?D??FG?H??J??????K??L?MN?P?Q??RST???V??WX?Y?ZA????????????U??",
146+
/* 0ec0 */ "???EI???????????????????????????????????????????????????????????",
147+
/* 0f00 */ "????????????????????????????????0123456789??????????????????????",
148+
/* 0f40 */ "BCD?FGHJ?K?????NMP?QRLS?A?????TVUWXYE?Z?????????????????????????",
149+
/* 0f80 */ NULL,
150+
/* 0fc0 */ NULL,
151+
/* 1000 */ "BCDFGA?J????KLMYNPQESTUWX?H?ZORV????????????????????????????????",
152+
/* 1040 */ "0123456789??????????????????????????????????????????????????????",
153+
/* 1080 */ "????????????????????????????????AB?CE?D?UF?GHOJ?KLM?NPQRSTVW?XYZ",
154+
/* 10c0 */ NULL,
155+
/* 1100 */ "B?CD?F?G?H?OV?WXJKA?????????????????????????????????????????????",
156+
/* 1140 */ "?????????????????????????????????LMNPQER?S???YZ???T?UI??????????",
157+
/* 1180 */ NULL,
158+
/* 11c0 */ NULL,
159+
/* 1200 */ "H???????L??????????????????A??E?T?????V?????S???????????????????",
160+
/* 1240 */ "Q???R???????????????????????????B???C???????????W?????X?????????",
161+
/* 1280 */ "???????????????????M????????????????????????K???????????????????",
162+
/* 12c0 */ "????????U???????O???????????Z???????????J???????D???????????????",
163+
/* 1300 */ "????????G???????????????????????????????????????????????Y???????",
164+
/* 1340 */ "??????????F?????N???P????????????????????1234567890?????????????",
165+
/* 1380 */ NULL,
166+
/* 13c0 */ NULL,
167+
/* 1400 */ NULL,
168+
/* 1440 */ NULL,
169+
/* 1480 */ NULL,
170+
/* 14c0 */ NULL,
171+
/* 1500 */ NULL,
172+
/* 1540 */ NULL,
173+
/* 1580 */ NULL,
174+
/* 15c0 */ NULL,
175+
/* 1600 */ NULL,
176+
/* 1640 */ NULL,
177+
/* 1680 */ NULL,
178+
/* 16c0 */ NULL,
179+
/* 1700 */ NULL,
180+
/* 1740 */ NULL,
181+
/* 1780 */ "BCDFGE?HJAK?LMN??PQRSTV?W?IX???UY?Z?????????????????????????????",
182+
/* 17c0 */ "????????????????????????????????0123456789??????????????????????",
183+
/* 1800 */ NULL,
184+
/* 1840 */ NULL,
185+
/* 1880 */ NULL,
186+
/* 18c0 */ NULL,
187+
/* 1900 */ NULL,
188+
/* 1940 */ NULL,
189+
/* 1980 */ NULL,
190+
/* 19c0 */ NULL,
191+
/* 1a00 */ NULL,
192+
/* 1a40 */ NULL,
193+
/* 1a80 */ NULL,
194+
/* 1ac0 */ NULL,
195+
/* 1b00 */ NULL,
196+
/* 1b40 */ NULL,
197+
/* 1b80 */ NULL,
198+
/* 1bc0 */ NULL,
199+
/* 1c00 */ NULL,
200+
/* 1c40 */ NULL,
201+
/* 1c80 */ NULL,
202+
/* 1cc0 */ NULL,
203+
/* 1d00 */ NULL,
204+
/* 1d40 */ NULL,
205+
/* 1d80 */ NULL,
206+
/* 1dc0 */ NULL,
207+
/* 1e00 */ NULL,
208+
/* 1e40 */ NULL,
209+
/* 1e80 */ NULL,
210+
/* 1ec0 */ NULL,
211+
/* 1f00 */ NULL,
212+
/* 1f40 */ NULL,
213+
/* 1f80 */ NULL,
214+
/* 1fc0 */ NULL,
215+
/* 2000 */ NULL,
216+
/* 2040 */ NULL,
217+
/* 2080 */ NULL,
218+
/* 20c0 */ NULL,
219+
/* 2100 */ NULL,
220+
/* 2140 */ NULL,
221+
/* 2180 */ NULL,
222+
/* 21c0 */ NULL,
223+
/* 2200 */ NULL,
224+
/* 2240 */ NULL,
225+
/* 2280 */ NULL,
226+
/* 22c0 */ NULL,
227+
/* 2300 */ NULL,
228+
/* 2340 */ NULL,
229+
/* 2380 */ NULL,
230+
/* 23c0 */ NULL,
231+
/* 2400 */ NULL,
232+
/* 2440 */ NULL,
233+
/* 2480 */ NULL,
234+
/* 24c0 */ NULL,
235+
/* 2500 */ NULL,
236+
/* 2540 */ NULL,
237+
/* 2580 */ NULL,
238+
/* 25c0 */ NULL,
239+
/* 2600 */ NULL,
240+
/* 2640 */ NULL,
241+
/* 2680 */ NULL,
242+
/* 26c0 */ NULL,
243+
/* 2700 */ NULL,
244+
/* 2740 */ NULL,
245+
/* 2780 */ NULL,
246+
/* 27c0 */ NULL,
247+
/* 2800 */ NULL,
248+
/* 2840 */ NULL,
249+
/* 2880 */ NULL,
250+
/* 28c0 */ NULL,
251+
/* 2900 */ NULL,
252+
/* 2940 */ NULL,
253+
/* 2980 */ NULL,
254+
/* 29c0 */ NULL,
255+
/* 2a00 */ NULL,
256+
/* 2a40 */ NULL,
257+
/* 2a80 */ NULL,
258+
/* 2ac0 */ NULL,
259+
/* 2b00 */ NULL,
260+
/* 2b40 */ NULL,
261+
/* 2b80 */ NULL,
262+
/* 2bc0 */ NULL,
263+
/* 2c00 */ NULL,
264+
/* 2c40 */ NULL,
265+
/* 2c80 */ NULL,
266+
/* 2cc0 */ NULL,
267+
/* 2d00 */ "?????????????????????????????????????????????????B?C???D????FG??",
268+
/* 2d40 */ "H??JKL?M?A???NPI???EOQR??STVW??X?YUZ????????????????????????????",
269+
/* 2d80 */ NULL,
270+
/* 2dc0 */ NULL,
271+
/* 2e00 */ NULL,
272+
/* 2e40 */ NULL,
273+
/* 2e80 */ NULL,
274+
/* 2ec0 */ NULL,
275+
/* 2f00 */ NULL,
276+
/* 2f40 */ NULL,
277+
/* 2f80 */ NULL,
278+
/* 2fc0 */ NULL,
279+
/* 3000 */ NULL,
280+
/* 3040 */ NULL,
281+
/* 3080 */ "??????????????????????????????????A?????U?EB?C?D?F?G?H???J??????",
282+
/* 30c0 */ "?K??????L?M?N?????P??Q??R??S?????TV?????WX???Y????Z?????????????",
283+
/* 3100 */ "?????BDFCGHJKLMNRSTUEPQWYZ?????????A????XV??????????????????????"
284+
}; // 197 records
285+
286+
#ifdef __cplusplus
287+
}
288+
#endif
289+
290+
#endif // __INTERNAL_ALPHABET_RECOGNISER_H__

mapcodelib/internal_territory_alphabets.h

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,13 +16,12 @@
1616
#ifndef __INTERNAL_TERRITORY_ALPHABETS_H__
1717
#define __INTERNAL_TERRITORY_ALPHABETS_H__
1818

19-
20-
// *** GENERATED FILE (coords.cpp), DO NOT CHANGE OR PRETTIFY ***
21-
2219
#ifdef __cplusplus
2320
extern "C" {
2421
#endif
2522

23+
// *** GENERATED FILE (coords.cpp), DO NOT CHANGE OR PRETTIFY ***
24+
2625
#ifdef NO_SUPPORT_ALPHABETS
2726
#error "NO_SUPPORT_ALPHABETS cannot be specified in this file"
2827
#endif

0 commit comments

Comments
 (0)