2121extern "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