Skip to content

Commit a450ba0

Browse files
committed
Added alphabets support
1 parent 5c40731 commit a450ba0

File tree

7 files changed

+1447
-38
lines changed

7 files changed

+1447
-38
lines changed

README.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,17 @@ This produces the following help text:
119119

120120
# Release Notes
121121

122+
### 2.4.0
123+
124+
* Added scripts for Korean (Choson'gul / Hangul), Burmese, Khmer, Sinhalese, Thaana (Maldivan),
125+
Chinese (Zhuyin, Bopomofo), Tifinagh (Berber), Tamil, Amharic, Telugu, Odia, Kannada, Gujarati.
126+
127+
* Renamed constants to more correct terms (Malay to Malayalam; Hindi to Devanagari).
128+
129+
* Added getAlphabetsForTerritory(t), returning the most commonly used alphabets for territory t.
130+
131+
* Improved some characters for Arabic and Devanagari; Fixed Bengali to also support Assamese.
132+
122133
### 2.3.1
123134

124135
* Minor fixes to prevent compiler warnings.

mapcodelib/mapcode_territory_alphabets.h

Lines changed: 571 additions & 0 deletions
Large diffs are not rendered by default.

mapcodelib/mapcoder.c

Lines changed: 81 additions & 30 deletions
Large diffs are not rendered by default.

mapcodelib/mapcoder.h

Lines changed: 38 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
extern "C" {
2222
#endif
2323

24-
#define mapcode_cversion "2.3.1"
24+
#define mapcode_cversion "2.4.0"
2525

2626
#define UWORD unsigned short int // 2-byte unsigned integer.
2727

@@ -266,14 +266,14 @@ int multipleBordersNearby(
266266
/**
267267
* Alphabets:
268268
*/
269-
#define MAPCODE_ALPHABETS_TOTAL 15
269+
#define MAPCODE_ALPHABETS_TOTAL 28
270270

271271
#define MAPCODE_ALPHABET_ROMAN 0
272272
#define MAPCODE_ALPHABET_GREEK 1
273273
#define MAPCODE_ALPHABET_CYRILLIC 2
274274
#define MAPCODE_ALPHABET_HEBREW 3
275-
#define MAPCODE_ALPHABET_HINDI 4
276-
#define MAPCODE_ALPHABET_MALAY 5
275+
#define MAPCODE_ALPHABET_DEVANAGARI 4
276+
#define MAPCODE_ALPHABET_MALAYALAM 5
277277
#define MAPCODE_ALPHABET_GEORGIAN 6
278278
#define MAPCODE_ALPHABET_KATAKANA 7
279279
#define MAPCODE_ALPHABET_THAI 8
@@ -283,7 +283,38 @@ int multipleBordersNearby(
283283
#define MAPCODE_ALPHABET_GURMUKHI 12
284284
#define MAPCODE_ALPHABET_TIBETAN 13
285285
#define MAPCODE_ALPHABET_ARABIC 14
286+
#define MAPCODE_ALPHABET_KOREAN 15
287+
#define MAPCODE_ALPHABET_BURMESE 16
288+
#define MAPCODE_ALPHABET_KHMER 17
289+
#define MAPCODE_ALPHABET_SINHALESE 18
290+
#define MAPCODE_ALPHABET_THAANA 19
291+
#define MAPCODE_ALPHABET_CHINESE 20
292+
#define MAPCODE_ALPHABET_TIFINAGH 21
293+
#define MAPCODE_ALPHABET_TAMIL 22
294+
#define MAPCODE_ALPHABET_AMHARIC 23
295+
#define MAPCODE_ALPHABET_TELUGU 24
296+
#define MAPCODE_ALPHABET_ODIA 25
297+
#define MAPCODE_ALPHABET_KANNADA 26
298+
#define MAPCODE_ALPHABET_GUJARATI 27
299+
300+
#define MAX_ALPHABETS_PER_TERRITORY 3
301+
typedef struct {
302+
int count;
303+
int alphabet[MAX_ALPHABETS_PER_TERRITORY];
304+
} TerritoryAlphabets;
305+
306+
#include "mapcode_territory_alphabets.h"
286307

308+
/**
309+
* Given a territory code, returns a structure defining which alphabets (in order of importance) are in common use in the territory
310+
*
311+
* Arguments:
312+
* territoryCode - territory code.
313+
*
314+
* Returns:
315+
* a pointer to a TerritoryAlphabets structure (or NULL if territoryCode is invalid)
316+
*/
317+
const TerritoryAlphabets *getAlphabetsForTerritory(int territoryCode);
287318

288319
/**
289320
* Decode a string to Roman characters.
@@ -353,8 +384,9 @@ const UWORD *encodeToAlphabet(const char *string, int alphabet);
353384
#define MAPCODE_LANGUAGE_GREEK MAPCODE_ALPHABET_GREEK
354385
#define MAPCODE_LANGUAGE_CYRILLIC MAPCODE_ALPHABET_CYRILLIC
355386
#define MAPCODE_LANGUAGE_HEBREW MAPCODE_ALPHABET_HEBREW
356-
#define MAPCODE_LANGUAGE_HINDI MAPCODE_ALPHABET_HINDI
357-
#define MAPCODE_LANGUAGE_MALAY MAPCODE_ALPHABET_MALAY
387+
#define MAPCODE_LANGUAGE_HINDI MAPCODE_ALPHABET_DEVANAGARI
388+
#define MAPCODE_ALPHABET_HINDI MAPCODE_ALPHABET_DEVANAGARI
389+
#define MAPCODE_LANGUAGE_MALAYALAM MAPCODE_ALPHABET_MALAYALAM
358390
#define MAPCODE_LANGUAGE_GEORGIAN MAPCODE_ALPHABET_GEORGIAN
359391
#define MAPCODE_LANGUAGE_KATAKANA MAPCODE_ALPHABET_KATAKANA
360392
#define MAPCODE_LANGUAGE_THAI MAPCODE_ALPHABET_THAI

0 commit comments

Comments
 (0)