Sync with trunk head
[reactos.git] / lib / 3rdparty / freetype / include / freetype / ttnameid.h
1 /***************************************************************************/
2 /* */
3 /* ttnameid.h */
4 /* */
5 /* TrueType name ID definitions (specification only). */
6 /* */
7 /* Copyright 1996-2002, 2003, 2004, 2006, 2007 by */
8 /* David Turner, Robert Wilhelm, and Werner Lemberg. */
9 /* */
10 /* This file is part of the FreeType project, and may only be used, */
11 /* modified, and distributed under the terms of the FreeType project */
12 /* license, LICENSE.TXT. By continuing to use, modify, or distribute */
13 /* this file you indicate that you have read the license and */
14 /* understand and accept it fully. */
15 /* */
16 /***************************************************************************/
17
18
19 #ifndef __TTNAMEID_H__
20 #define __TTNAMEID_H__
21
22
23 #include <ft2build.h>
24
25
26 FT_BEGIN_HEADER
27
28
29 /*************************************************************************/
30 /* */
31 /* Possible values for the `platform' identifier code in the name */
32 /* records of the TTF `name' table. */
33 /* */
34 /*************************************************************************/
35
36
37 /***********************************************************************
38 *
39 * @enum:
40 * TT_PLATFORM_XXX
41 *
42 * @description:
43 * A list of valid values for the `platform_id' identifier code in
44 * @FT_CharMapRec and @FT_SfntName structures.
45 *
46 * @values:
47 * TT_PLATFORM_APPLE_UNICODE ::
48 * Used by Apple to indicate a Unicode character map and/or name entry.
49 * See @TT_APPLE_ID_XXX for corresponding `encoding_id' values. Note
50 * that name entries in this format are coded as big-endian UCS-2
51 * character codes _only_.
52 *
53 * TT_PLATFORM_MACINTOSH ::
54 * Used by Apple to indicate a MacOS-specific charmap and/or name entry.
55 * See @TT_MAC_ID_XXX for corresponding `encoding_id' values. Note that
56 * most TrueType fonts contain an Apple roman charmap to be usable on
57 * MacOS systems (even if they contain a Microsoft charmap as well).
58 *
59 * TT_PLATFORM_ISO ::
60 * This value was used to specify Unicode charmaps. It is however
61 * now deprecated. See @TT_ISO_ID_XXX for a list of corresponding
62 * `encoding_id' values.
63 *
64 * TT_PLATFORM_MICROSOFT ::
65 * Used by Microsoft to indicate Windows-specific charmaps. See
66 * @TT_MS_ID_XXX for a list of corresponding `encoding_id' values.
67 * Note that most fonts contain a Unicode charmap using
68 * (TT_PLATFORM_MICROSOFT, @TT_MS_ID_UNICODE_CS).
69 *
70 * TT_PLATFORM_CUSTOM ::
71 * Used to indicate application-specific charmaps.
72 *
73 * TT_PLATFORM_ADOBE ::
74 * This value isn't part of any font format specification, but is used
75 * by FreeType to report Adobe-specific charmaps in an @FT_CharMapRec
76 * structure. See @TT_ADOBE_ID_XXX.
77 */
78
79 #define TT_PLATFORM_APPLE_UNICODE 0
80 #define TT_PLATFORM_MACINTOSH 1
81 #define TT_PLATFORM_ISO 2 /* deprecated */
82 #define TT_PLATFORM_MICROSOFT 3
83 #define TT_PLATFORM_CUSTOM 4
84 #define TT_PLATFORM_ADOBE 7 /* artificial */
85
86
87 /***********************************************************************
88 *
89 * @enum:
90 * TT_APPLE_ID_XXX
91 *
92 * @description:
93 * A list of valid values for the `encoding_id' for
94 * @TT_PLATFORM_APPLE_UNICODE charmaps and name entries.
95 *
96 * @values:
97 * TT_APPLE_ID_DEFAULT ::
98 * Unicode version 1.0.
99 *
100 * TT_APPLE_ID_UNICODE_1_1 ::
101 * Unicode 1.1; specifies Hangul characters starting at U+34xx.
102 *
103 * TT_APPLE_ID_ISO_10646 ::
104 * Deprecated (identical to preceding).
105 *
106 * TT_APPLE_ID_UNICODE_2_0 ::
107 * Unicode 2.0 and beyond (UTF-16 BMP only).
108 *
109 * TT_APPLE_ID_UNICODE_32 ::
110 * Unicode 3.1 and beyond, using UTF-32.
111 */
112
113 #define TT_APPLE_ID_DEFAULT 0 /* Unicode 1.0 */
114 #define TT_APPLE_ID_UNICODE_1_1 1 /* specify Hangul at U+34xx */
115 #define TT_APPLE_ID_ISO_10646 2 /* deprecated */
116 #define TT_APPLE_ID_UNICODE_2_0 3 /* or later */
117 #define TT_APPLE_ID_UNICODE_32 4 /* 2.0 or later, full repertoire */
118
119
120 /***********************************************************************
121 *
122 * @enum:
123 * TT_MAC_ID_XXX
124 *
125 * @description:
126 * A list of valid values for the `encoding_id' for
127 * @TT_PLATFORM_MACINTOSH charmaps and name entries.
128 *
129 * @values:
130 * TT_MAC_ID_ROMAN ::
131 * TT_MAC_ID_JAPANESE ::
132 * TT_MAC_ID_TRADITIONAL_CHINESE ::
133 * TT_MAC_ID_KOREAN ::
134 * TT_MAC_ID_ARABIC ::
135 * TT_MAC_ID_HEBREW ::
136 * TT_MAC_ID_GREEK ::
137 * TT_MAC_ID_RUSSIAN ::
138 * TT_MAC_ID_RSYMBOL ::
139 * TT_MAC_ID_DEVANAGARI ::
140 * TT_MAC_ID_GURMUKHI ::
141 * TT_MAC_ID_GUJARATI ::
142 * TT_MAC_ID_ORIYA ::
143 * TT_MAC_ID_BENGALI ::
144 * TT_MAC_ID_TAMIL ::
145 * TT_MAC_ID_TELUGU ::
146 * TT_MAC_ID_KANNADA ::
147 * TT_MAC_ID_MALAYALAM ::
148 * TT_MAC_ID_SINHALESE ::
149 * TT_MAC_ID_BURMESE ::
150 * TT_MAC_ID_KHMER ::
151 * TT_MAC_ID_THAI ::
152 * TT_MAC_ID_LAOTIAN ::
153 * TT_MAC_ID_GEORGIAN ::
154 * TT_MAC_ID_ARMENIAN ::
155 * TT_MAC_ID_MALDIVIAN ::
156 * TT_MAC_ID_SIMPLIFIED_CHINESE ::
157 * TT_MAC_ID_TIBETAN ::
158 * TT_MAC_ID_MONGOLIAN ::
159 * TT_MAC_ID_GEEZ ::
160 * TT_MAC_ID_SLAVIC ::
161 * TT_MAC_ID_VIETNAMESE ::
162 * TT_MAC_ID_SINDHI ::
163 * TT_MAC_ID_UNINTERP ::
164 */
165
166 #define TT_MAC_ID_ROMAN 0
167 #define TT_MAC_ID_JAPANESE 1
168 #define TT_MAC_ID_TRADITIONAL_CHINESE 2
169 #define TT_MAC_ID_KOREAN 3
170 #define TT_MAC_ID_ARABIC 4
171 #define TT_MAC_ID_HEBREW 5
172 #define TT_MAC_ID_GREEK 6
173 #define TT_MAC_ID_RUSSIAN 7
174 #define TT_MAC_ID_RSYMBOL 8
175 #define TT_MAC_ID_DEVANAGARI 9
176 #define TT_MAC_ID_GURMUKHI 10
177 #define TT_MAC_ID_GUJARATI 11
178 #define TT_MAC_ID_ORIYA 12
179 #define TT_MAC_ID_BENGALI 13
180 #define TT_MAC_ID_TAMIL 14
181 #define TT_MAC_ID_TELUGU 15
182 #define TT_MAC_ID_KANNADA 16
183 #define TT_MAC_ID_MALAYALAM 17
184 #define TT_MAC_ID_SINHALESE 18
185 #define TT_MAC_ID_BURMESE 19
186 #define TT_MAC_ID_KHMER 20
187 #define TT_MAC_ID_THAI 21
188 #define TT_MAC_ID_LAOTIAN 22
189 #define TT_MAC_ID_GEORGIAN 23
190 #define TT_MAC_ID_ARMENIAN 24
191 #define TT_MAC_ID_MALDIVIAN 25
192 #define TT_MAC_ID_SIMPLIFIED_CHINESE 25
193 #define TT_MAC_ID_TIBETAN 26
194 #define TT_MAC_ID_MONGOLIAN 27
195 #define TT_MAC_ID_GEEZ 28
196 #define TT_MAC_ID_SLAVIC 29
197 #define TT_MAC_ID_VIETNAMESE 30
198 #define TT_MAC_ID_SINDHI 31
199 #define TT_MAC_ID_UNINTERP 32
200
201
202 /***********************************************************************
203 *
204 * @enum:
205 * TT_ISO_ID_XXX
206 *
207 * @description:
208 * A list of valid values for the `encoding_id' for
209 * @TT_PLATFORM_ISO charmaps and name entries.
210 *
211 * Their use is now deprecated.
212 *
213 * @values:
214 * TT_ISO_ID_7BIT_ASCII ::
215 * ASCII.
216 * TT_ISO_ID_10646 ::
217 * ISO/10646.
218 * TT_ISO_ID_8859_1 ::
219 * Also known as Latin-1.
220 */
221
222 #define TT_ISO_ID_7BIT_ASCII 0
223 #define TT_ISO_ID_10646 1
224 #define TT_ISO_ID_8859_1 2
225
226
227 /***********************************************************************
228 *
229 * @enum:
230 * TT_MS_ID_XXX
231 *
232 * @description:
233 * A list of valid values for the `encoding_id' for
234 * @TT_PLATFORM_MICROSOFT charmaps and name entries.
235 *
236 * @values:
237 * TT_MS_ID_SYMBOL_CS ::
238 * Corresponds to Microsoft symbol encoding. See
239 * @FT_ENCODING_MS_SYMBOL.
240 *
241 * TT_MS_ID_UNICODE_CS ::
242 * Corresponds to a Microsoft WGL4 charmap, matching Unicode. See
243 * @FT_ENCODING_UNICODE.
244 *
245 * TT_MS_ID_SJIS ::
246 * Corresponds to SJIS Japanese encoding. See @FT_ENCODING_SJIS.
247 *
248 * TT_MS_ID_GB2312 ::
249 * Corresponds to Simplified Chinese as used in Mainland China. See
250 * @FT_ENCODING_GB2312.
251 *
252 * TT_MS_ID_BIG_5 ::
253 * Corresponds to Traditional Chinese as used in Taiwan and Hong Kong.
254 * See @FT_ENCODING_BIG5.
255 *
256 * TT_MS_ID_WANSUNG ::
257 * Corresponds to Korean Wansung encoding. See @FT_ENCODING_WANSUNG.
258 *
259 * TT_MS_ID_JOHAB ::
260 * Corresponds to Johab encoding. See @FT_ENCODING_JOHAB.
261 *
262 * TT_MS_ID_UCS_4 ::
263 * Corresponds to UCS-4 or UTF-32 charmaps. This has been added to
264 * the OpenType specification version 1.4 (mid-2001.)
265 */
266
267 #define TT_MS_ID_SYMBOL_CS 0
268 #define TT_MS_ID_UNICODE_CS 1
269 #define TT_MS_ID_SJIS 2
270 #define TT_MS_ID_GB2312 3
271 #define TT_MS_ID_BIG_5 4
272 #define TT_MS_ID_WANSUNG 5
273 #define TT_MS_ID_JOHAB 6
274 #define TT_MS_ID_UCS_4 10
275
276
277 /***********************************************************************
278 *
279 * @enum:
280 * TT_ADOBE_ID_XXX
281 *
282 * @description:
283 * A list of valid values for the `encoding_id' for
284 * @TT_PLATFORM_ADOBE charmaps. This is a FreeType-specific extension!
285 *
286 * @values:
287 * TT_ADOBE_ID_STANDARD ::
288 * Adobe standard encoding.
289 * TT_ADOBE_ID_EXPERT ::
290 * Adobe expert encoding.
291 * TT_ADOBE_ID_CUSTOM ::
292 * Adobe custom encoding.
293 */
294
295 #define TT_ADOBE_ID_STANDARD 0
296 #define TT_ADOBE_ID_EXPERT 1
297 #define TT_ADOBE_ID_CUSTOM 2
298 #define TT_ADOBE_ID_LATIN_1 3
299
300
301 /*************************************************************************/
302 /* */
303 /* Possible values of the language identifier field in the name records */
304 /* of the TTF `name' table if the `platform' identifier code is */
305 /* TT_PLATFORM_MACINTOSH. */
306 /* */
307 /* The canonical source for the Apple assigned Language ID's is at */
308 /* */
309 /* http://fonts.apple.com/TTRefMan/RM06/Chap6name.html */
310 /* */
311 #define TT_MAC_LANGID_ENGLISH 0
312 #define TT_MAC_LANGID_FRENCH 1
313 #define TT_MAC_LANGID_GERMAN 2
314 #define TT_MAC_LANGID_ITALIAN 3
315 #define TT_MAC_LANGID_DUTCH 4
316 #define TT_MAC_LANGID_SWEDISH 5
317 #define TT_MAC_LANGID_SPANISH 6
318 #define TT_MAC_LANGID_DANISH 7
319 #define TT_MAC_LANGID_PORTUGUESE 8
320 #define TT_MAC_LANGID_NORWEGIAN 9
321 #define TT_MAC_LANGID_HEBREW 10
322 #define TT_MAC_LANGID_JAPANESE 11
323 #define TT_MAC_LANGID_ARABIC 12
324 #define TT_MAC_LANGID_FINNISH 13
325 #define TT_MAC_LANGID_GREEK 14
326 #define TT_MAC_LANGID_ICELANDIC 15
327 #define TT_MAC_LANGID_MALTESE 16
328 #define TT_MAC_LANGID_TURKISH 17
329 #define TT_MAC_LANGID_CROATIAN 18
330 #define TT_MAC_LANGID_CHINESE_TRADITIONAL 19
331 #define TT_MAC_LANGID_URDU 20
332 #define TT_MAC_LANGID_HINDI 21
333 #define TT_MAC_LANGID_THAI 22
334 #define TT_MAC_LANGID_KOREAN 23
335 #define TT_MAC_LANGID_LITHUANIAN 24
336 #define TT_MAC_LANGID_POLISH 25
337 #define TT_MAC_LANGID_HUNGARIAN 26
338 #define TT_MAC_LANGID_ESTONIAN 27
339 #define TT_MAC_LANGID_LETTISH 28
340 #define TT_MAC_LANGID_SAAMISK 29
341 #define TT_MAC_LANGID_FAEROESE 30
342 #define TT_MAC_LANGID_FARSI 31
343 #define TT_MAC_LANGID_RUSSIAN 32
344 #define TT_MAC_LANGID_CHINESE_SIMPLIFIED 33
345 #define TT_MAC_LANGID_FLEMISH 34
346 #define TT_MAC_LANGID_IRISH 35
347 #define TT_MAC_LANGID_ALBANIAN 36
348 #define TT_MAC_LANGID_ROMANIAN 37
349 #define TT_MAC_LANGID_CZECH 38
350 #define TT_MAC_LANGID_SLOVAK 39
351 #define TT_MAC_LANGID_SLOVENIAN 40
352 #define TT_MAC_LANGID_YIDDISH 41
353 #define TT_MAC_LANGID_SERBIAN 42
354 #define TT_MAC_LANGID_MACEDONIAN 43
355 #define TT_MAC_LANGID_BULGARIAN 44
356 #define TT_MAC_LANGID_UKRAINIAN 45
357 #define TT_MAC_LANGID_BYELORUSSIAN 46
358 #define TT_MAC_LANGID_UZBEK 47
359 #define TT_MAC_LANGID_KAZAKH 48
360 #define TT_MAC_LANGID_AZERBAIJANI 49
361 #define TT_MAC_LANGID_AZERBAIJANI_CYRILLIC_SCRIPT 49
362 #define TT_MAC_LANGID_AZERBAIJANI_ARABIC_SCRIPT 50
363 #define TT_MAC_LANGID_ARMENIAN 51
364 #define TT_MAC_LANGID_GEORGIAN 52
365 #define TT_MAC_LANGID_MOLDAVIAN 53
366 #define TT_MAC_LANGID_KIRGHIZ 54
367 #define TT_MAC_LANGID_TAJIKI 55
368 #define TT_MAC_LANGID_TURKMEN 56
369 #define TT_MAC_LANGID_MONGOLIAN 57
370 #define TT_MAC_LANGID_MONGOLIAN_MONGOLIAN_SCRIPT 57
371 #define TT_MAC_LANGID_MONGOLIAN_CYRILLIC_SCRIPT 58
372 #define TT_MAC_LANGID_PASHTO 59
373 #define TT_MAC_LANGID_KURDISH 60
374 #define TT_MAC_LANGID_KASHMIRI 61
375 #define TT_MAC_LANGID_SINDHI 62
376 #define TT_MAC_LANGID_TIBETAN 63
377 #define TT_MAC_LANGID_NEPALI 64
378 #define TT_MAC_LANGID_SANSKRIT 65
379 #define TT_MAC_LANGID_MARATHI 66
380 #define TT_MAC_LANGID_BENGALI 67
381 #define TT_MAC_LANGID_ASSAMESE 68
382 #define TT_MAC_LANGID_GUJARATI 69
383 #define TT_MAC_LANGID_PUNJABI 70
384 #define TT_MAC_LANGID_ORIYA 71
385 #define TT_MAC_LANGID_MALAYALAM 72
386 #define TT_MAC_LANGID_KANNADA 73
387 #define TT_MAC_LANGID_TAMIL 74
388 #define TT_MAC_LANGID_TELUGU 75
389 #define TT_MAC_LANGID_SINHALESE 76
390 #define TT_MAC_LANGID_BURMESE 77
391 #define TT_MAC_LANGID_KHMER 78
392 #define TT_MAC_LANGID_LAO 79
393 #define TT_MAC_LANGID_VIETNAMESE 80
394 #define TT_MAC_LANGID_INDONESIAN 81
395 #define TT_MAC_LANGID_TAGALOG 82
396 #define TT_MAC_LANGID_MALAY_ROMAN_SCRIPT 83
397 #define TT_MAC_LANGID_MALAY_ARABIC_SCRIPT 84
398 #define TT_MAC_LANGID_AMHARIC 85
399 #define TT_MAC_LANGID_TIGRINYA 86
400 #define TT_MAC_LANGID_GALLA 87
401 #define TT_MAC_LANGID_SOMALI 88
402 #define TT_MAC_LANGID_SWAHILI 89
403 #define TT_MAC_LANGID_RUANDA 90
404 #define TT_MAC_LANGID_RUNDI 91
405 #define TT_MAC_LANGID_CHEWA 92
406 #define TT_MAC_LANGID_MALAGASY 93
407 #define TT_MAC_LANGID_ESPERANTO 94
408 #define TT_MAC_LANGID_WELSH 128
409 #define TT_MAC_LANGID_BASQUE 129
410 #define TT_MAC_LANGID_CATALAN 130
411 #define TT_MAC_LANGID_LATIN 131
412 #define TT_MAC_LANGID_QUECHUA 132
413 #define TT_MAC_LANGID_GUARANI 133
414 #define TT_MAC_LANGID_AYMARA 134
415 #define TT_MAC_LANGID_TATAR 135
416 #define TT_MAC_LANGID_UIGHUR 136
417 #define TT_MAC_LANGID_DZONGKHA 137
418 #define TT_MAC_LANGID_JAVANESE 138
419 #define TT_MAC_LANGID_SUNDANESE 139
420
421
422 #if 0 /* these seem to be errors that have been dropped */
423
424 #define TT_MAC_LANGID_SCOTTISH_GAELIC 140
425 #define TT_MAC_LANGID_IRISH_GAELIC 141
426
427 #endif
428
429
430 /* The following codes are new as of 2000-03-10 */
431 #define TT_MAC_LANGID_GALICIAN 140
432 #define TT_MAC_LANGID_AFRIKAANS 141
433 #define TT_MAC_LANGID_BRETON 142
434 #define TT_MAC_LANGID_INUKTITUT 143
435 #define TT_MAC_LANGID_SCOTTISH_GAELIC 144
436 #define TT_MAC_LANGID_MANX_GAELIC 145
437 #define TT_MAC_LANGID_IRISH_GAELIC 146
438 #define TT_MAC_LANGID_TONGAN 147
439 #define TT_MAC_LANGID_GREEK_POLYTONIC 148
440 #define TT_MAC_LANGID_GREELANDIC 149
441 #define TT_MAC_LANGID_AZERBAIJANI_ROMAN_SCRIPT 150
442
443
444 /*************************************************************************/
445 /* */
446 /* Possible values of the language identifier field in the name records */
447 /* of the TTF `name' table if the `platform' identifier code is */
448 /* TT_PLATFORM_MICROSOFT. */
449 /* */
450 /* The canonical source for the MS assigned LCID's (seems to) be at */
451 /* */
452 /* http://www.microsoft.com/globaldev/reference/lcid-all.mspx */
453 /* */
454 /* It used to be at various places, among them */
455 /* */
456 /* http://www.microsoft.com/typography/OTSPEC/lcid-cp.txt */
457 /* http://www.microsoft.com/globaldev/reference/loclanghome.asp */
458 /* http://support.microsoft.com/support/kb/articles/Q224/8/04.ASP */
459 /* http://msdn.microsoft.com/library/en-us/passport25/ */
460 /* NET_Passport_VBScript_Documentation/Single_Sign_In/ */
461 /* Advanced_Single_Sign_In/Localization_and_LCIDs.asp */
462 /* */
463 /* Hopefully, it seems now that the Globaldev site prevails... */
464 /* (updated by Antoine, 2004-02-17) */
465
466 #define TT_MS_LANGID_ARABIC_GENERAL 0x0001
467 #define TT_MS_LANGID_ARABIC_SAUDI_ARABIA 0x0401
468 #define TT_MS_LANGID_ARABIC_IRAQ 0x0801
469 #define TT_MS_LANGID_ARABIC_EGYPT 0x0c01
470 #define TT_MS_LANGID_ARABIC_LIBYA 0x1001
471 #define TT_MS_LANGID_ARABIC_ALGERIA 0x1401
472 #define TT_MS_LANGID_ARABIC_MOROCCO 0x1801
473 #define TT_MS_LANGID_ARABIC_TUNISIA 0x1c01
474 #define TT_MS_LANGID_ARABIC_OMAN 0x2001
475 #define TT_MS_LANGID_ARABIC_YEMEN 0x2401
476 #define TT_MS_LANGID_ARABIC_SYRIA 0x2801
477 #define TT_MS_LANGID_ARABIC_JORDAN 0x2c01
478 #define TT_MS_LANGID_ARABIC_LEBANON 0x3001
479 #define TT_MS_LANGID_ARABIC_KUWAIT 0x3401
480 #define TT_MS_LANGID_ARABIC_UAE 0x3801
481 #define TT_MS_LANGID_ARABIC_BAHRAIN 0x3c01
482 #define TT_MS_LANGID_ARABIC_QATAR 0x4001
483 #define TT_MS_LANGID_BULGARIAN_BULGARIA 0x0402
484 #define TT_MS_LANGID_CATALAN_SPAIN 0x0403
485 #define TT_MS_LANGID_CHINESE_GENERAL 0x0004
486 #define TT_MS_LANGID_CHINESE_TAIWAN 0x0404
487 #define TT_MS_LANGID_CHINESE_PRC 0x0804
488 #define TT_MS_LANGID_CHINESE_HONG_KONG 0x0c04
489 #define TT_MS_LANGID_CHINESE_SINGAPORE 0x1004
490
491 #if 1 /* this looks like the correct value */
492 #define TT_MS_LANGID_CHINESE_MACAU 0x1404
493 #else /* but beware, Microsoft may change its mind...
494 the most recent Word reference has the following: */
495 #define TT_MS_LANGID_CHINESE_MACAU TT_MS_LANGID_CHINESE_HONG_KONG
496 #endif
497
498 #if 0 /* used only with .NET `cultures'; commented out */
499 #define TT_MS_LANGID_CHINESE_TRADITIONAL 0x7C04
500 #endif
501
502 #define TT_MS_LANGID_CZECH_CZECH_REPUBLIC 0x0405
503 #define TT_MS_LANGID_DANISH_DENMARK 0x0406
504 #define TT_MS_LANGID_GERMAN_GERMANY 0x0407
505 #define TT_MS_LANGID_GERMAN_SWITZERLAND 0x0807
506 #define TT_MS_LANGID_GERMAN_AUSTRIA 0x0c07
507 #define TT_MS_LANGID_GERMAN_LUXEMBOURG 0x1007
508 #define TT_MS_LANGID_GERMAN_LIECHTENSTEI 0x1407
509 #define TT_MS_LANGID_GREEK_GREECE 0x0408
510
511 /* don't ask what this one means... It is commented out currently. */
512 #if 0
513 #define TT_MS_LANGID_GREEK_GREECE2 0x2008
514 #endif
515
516 #define TT_MS_LANGID_ENGLISH_GENERAL 0x0009
517 #define TT_MS_LANGID_ENGLISH_UNITED_STATES 0x0409
518 #define TT_MS_LANGID_ENGLISH_UNITED_KINGDOM 0x0809
519 #define TT_MS_LANGID_ENGLISH_AUSTRALIA 0x0c09
520 #define TT_MS_LANGID_ENGLISH_CANADA 0x1009
521 #define TT_MS_LANGID_ENGLISH_NEW_ZEALAND 0x1409
522 #define TT_MS_LANGID_ENGLISH_IRELAND 0x1809
523 #define TT_MS_LANGID_ENGLISH_SOUTH_AFRICA 0x1c09
524 #define TT_MS_LANGID_ENGLISH_JAMAICA 0x2009
525 #define TT_MS_LANGID_ENGLISH_CARIBBEAN 0x2409
526 #define TT_MS_LANGID_ENGLISH_BELIZE 0x2809
527 #define TT_MS_LANGID_ENGLISH_TRINIDAD 0x2c09
528 #define TT_MS_LANGID_ENGLISH_ZIMBABWE 0x3009
529 #define TT_MS_LANGID_ENGLISH_PHILIPPINES 0x3409
530 #define TT_MS_LANGID_ENGLISH_INDONESIA 0x3809
531 #define TT_MS_LANGID_ENGLISH_HONG_KONG 0x3c09
532 #define TT_MS_LANGID_ENGLISH_INDIA 0x4009
533 #define TT_MS_LANGID_ENGLISH_MALAYSIA 0x4409
534 #define TT_MS_LANGID_ENGLISH_SINGAPORE 0x4809
535 #define TT_MS_LANGID_SPANISH_SPAIN_TRADITIONAL_SORT 0x040a
536 #define TT_MS_LANGID_SPANISH_MEXICO 0x080a
537 #define TT_MS_LANGID_SPANISH_SPAIN_INTERNATIONAL_SORT 0x0c0a
538 #define TT_MS_LANGID_SPANISH_GUATEMALA 0x100a
539 #define TT_MS_LANGID_SPANISH_COSTA_RICA 0x140a
540 #define TT_MS_LANGID_SPANISH_PANAMA 0x180a
541 #define TT_MS_LANGID_SPANISH_DOMINICAN_REPUBLIC 0x1c0a
542 #define TT_MS_LANGID_SPANISH_VENEZUELA 0x200a
543 #define TT_MS_LANGID_SPANISH_COLOMBIA 0x240a
544 #define TT_MS_LANGID_SPANISH_PERU 0x280a
545 #define TT_MS_LANGID_SPANISH_ARGENTINA 0x2c0a
546 #define TT_MS_LANGID_SPANISH_ECUADOR 0x300a
547 #define TT_MS_LANGID_SPANISH_CHILE 0x340a
548 #define TT_MS_LANGID_SPANISH_URUGUAY 0x380a
549 #define TT_MS_LANGID_SPANISH_PARAGUAY 0x3c0a
550 #define TT_MS_LANGID_SPANISH_BOLIVIA 0x400a
551 #define TT_MS_LANGID_SPANISH_EL_SALVADOR 0x440a
552 #define TT_MS_LANGID_SPANISH_HONDURAS 0x480a
553 #define TT_MS_LANGID_SPANISH_NICARAGUA 0x4c0a
554 #define TT_MS_LANGID_SPANISH_PUERTO_RICO 0x500a
555 #define TT_MS_LANGID_SPANISH_UNITED_STATES 0x540a
556 /* The following ID blatantly violate MS specs by using a */
557 /* sublanguage > 0x1F. */
558 #define TT_MS_LANGID_SPANISH_LATIN_AMERICA 0xE40aU
559 #define TT_MS_LANGID_FINNISH_FINLAND 0x040b
560 #define TT_MS_LANGID_FRENCH_FRANCE 0x040c
561 #define TT_MS_LANGID_FRENCH_BELGIUM 0x080c
562 #define TT_MS_LANGID_FRENCH_CANADA 0x0c0c
563 #define TT_MS_LANGID_FRENCH_SWITZERLAND 0x100c
564 #define TT_MS_LANGID_FRENCH_LUXEMBOURG 0x140c
565 #define TT_MS_LANGID_FRENCH_MONACO 0x180c
566 #define TT_MS_LANGID_FRENCH_WEST_INDIES 0x1c0c
567 #define TT_MS_LANGID_FRENCH_REUNION 0x200c
568 #define TT_MS_LANGID_FRENCH_CONGO 0x240c
569 /* which was formerly: */
570 #define TT_MS_LANGID_FRENCH_ZAIRE TT_MS_LANGID_FRENCH_CONGO
571 #define TT_MS_LANGID_FRENCH_SENEGAL 0x280c
572 #define TT_MS_LANGID_FRENCH_CAMEROON 0x2c0c
573 #define TT_MS_LANGID_FRENCH_COTE_D_IVOIRE 0x300c
574 #define TT_MS_LANGID_FRENCH_MALI 0x340c
575 #define TT_MS_LANGID_FRENCH_MOROCCO 0x380c
576 #define TT_MS_LANGID_FRENCH_HAITI 0x3c0c
577 /* and another violation of the spec (see 0xE40aU) */
578 #define TT_MS_LANGID_FRENCH_NORTH_AFRICA 0xE40cU
579 #define TT_MS_LANGID_HEBREW_ISRAEL 0x040d
580 #define TT_MS_LANGID_HUNGARIAN_HUNGARY 0x040e
581 #define TT_MS_LANGID_ICELANDIC_ICELAND 0x040f
582 #define TT_MS_LANGID_ITALIAN_ITALY 0x0410
583 #define TT_MS_LANGID_ITALIAN_SWITZERLAND 0x0810
584 #define TT_MS_LANGID_JAPANESE_JAPAN 0x0411
585 #define TT_MS_LANGID_KOREAN_EXTENDED_WANSUNG_KOREA 0x0412
586 #define TT_MS_LANGID_KOREAN_JOHAB_KOREA 0x0812
587 #define TT_MS_LANGID_DUTCH_NETHERLANDS 0x0413
588 #define TT_MS_LANGID_DUTCH_BELGIUM 0x0813
589 #define TT_MS_LANGID_NORWEGIAN_NORWAY_BOKMAL 0x0414
590 #define TT_MS_LANGID_NORWEGIAN_NORWAY_NYNORSK 0x0814
591 #define TT_MS_LANGID_POLISH_POLAND 0x0415
592 #define TT_MS_LANGID_PORTUGUESE_BRAZIL 0x0416
593 #define TT_MS_LANGID_PORTUGUESE_PORTUGAL 0x0816
594 #define TT_MS_LANGID_RHAETO_ROMANIC_SWITZERLAND 0x0417
595 #define TT_MS_LANGID_ROMANIAN_ROMANIA 0x0418
596 #define TT_MS_LANGID_MOLDAVIAN_MOLDAVIA 0x0818
597 #define TT_MS_LANGID_RUSSIAN_RUSSIA 0x0419
598 #define TT_MS_LANGID_RUSSIAN_MOLDAVIA 0x0819
599 #define TT_MS_LANGID_CROATIAN_CROATIA 0x041a
600 #define TT_MS_LANGID_SERBIAN_SERBIA_LATIN 0x081a
601 #define TT_MS_LANGID_SERBIAN_SERBIA_CYRILLIC 0x0c1a
602
603 #if 0 /* this used to be this value, but it looks like we were wrong */
604 #define TT_MS_LANGID_BOSNIAN_BOSNIA_HERZEGOVINA 0x101a
605 #else /* current sources say */
606 #define TT_MS_LANGID_CROATIAN_BOSNIA_HERZEGOVINA 0x101a
607 #define TT_MS_LANGID_BOSNIAN_BOSNIA_HERZEGOVINA 0x141a
608 /* and XPsp2 Platform SDK added (2004-07-26) */
609 /* Names are shortened to be significant within 40 chars. */
610 #define TT_MS_LANGID_SERBIAN_BOSNIA_HERZ_LATIN 0x181a
611 #define TT_MS_LANGID_SERBIAN_BOSNIA_HERZ_CYRILLIC 0x181a
612 #endif
613
614 #define TT_MS_LANGID_SLOVAK_SLOVAKIA 0x041b
615 #define TT_MS_LANGID_ALBANIAN_ALBANIA 0x041c
616 #define TT_MS_LANGID_SWEDISH_SWEDEN 0x041d
617 #define TT_MS_LANGID_SWEDISH_FINLAND 0x081d
618 #define TT_MS_LANGID_THAI_THAILAND 0x041e
619 #define TT_MS_LANGID_TURKISH_TURKEY 0x041f
620 #define TT_MS_LANGID_URDU_PAKISTAN 0x0420
621 #define TT_MS_LANGID_URDU_INDIA 0x0820
622 #define TT_MS_LANGID_INDONESIAN_INDONESIA 0x0421
623 #define TT_MS_LANGID_UKRAINIAN_UKRAINE 0x0422
624 #define TT_MS_LANGID_BELARUSIAN_BELARUS 0x0423
625 #define TT_MS_LANGID_SLOVENE_SLOVENIA 0x0424
626 #define TT_MS_LANGID_ESTONIAN_ESTONIA 0x0425
627 #define TT_MS_LANGID_LATVIAN_LATVIA 0x0426
628 #define TT_MS_LANGID_LITHUANIAN_LITHUANIA 0x0427
629 #define TT_MS_LANGID_CLASSIC_LITHUANIAN_LITHUANIA 0x0827
630 #define TT_MS_LANGID_TAJIK_TAJIKISTAN 0x0428
631 #define TT_MS_LANGID_FARSI_IRAN 0x0429
632 #define TT_MS_LANGID_VIETNAMESE_VIET_NAM 0x042a
633 #define TT_MS_LANGID_ARMENIAN_ARMENIA 0x042b
634 #define TT_MS_LANGID_AZERI_AZERBAIJAN_LATIN 0x042c
635 #define TT_MS_LANGID_AZERI_AZERBAIJAN_CYRILLIC 0x082c
636 #define TT_MS_LANGID_BASQUE_SPAIN 0x042d
637 #define TT_MS_LANGID_SORBIAN_GERMANY 0x042e
638 #define TT_MS_LANGID_MACEDONIAN_MACEDONIA 0x042f
639 #define TT_MS_LANGID_SUTU_SOUTH_AFRICA 0x0430
640 #define TT_MS_LANGID_TSONGA_SOUTH_AFRICA 0x0431
641 #define TT_MS_LANGID_TSWANA_SOUTH_AFRICA 0x0432
642 #define TT_MS_LANGID_VENDA_SOUTH_AFRICA 0x0433
643 #define TT_MS_LANGID_XHOSA_SOUTH_AFRICA 0x0434
644 #define TT_MS_LANGID_ZULU_SOUTH_AFRICA 0x0435
645 #define TT_MS_LANGID_AFRIKAANS_SOUTH_AFRICA 0x0436
646 #define TT_MS_LANGID_GEORGIAN_GEORGIA 0x0437
647 #define TT_MS_LANGID_FAEROESE_FAEROE_ISLANDS 0x0438
648 #define TT_MS_LANGID_HINDI_INDIA 0x0439
649 #define TT_MS_LANGID_MALTESE_MALTA 0x043a
650 /* Added by XPsp2 Platform SDK (2004-07-26) */
651 #define TT_MS_LANGID_SAMI_NORTHERN_NORWAY 0x043b
652 #define TT_MS_LANGID_SAMI_NORTHERN_SWEDEN 0x083b
653 #define TT_MS_LANGID_SAMI_NORTHERN_FINLAND 0x0C3b
654 #define TT_MS_LANGID_SAMI_LULE_NORWAY 0x103b
655 #define TT_MS_LANGID_SAMI_LULE_SWEDEN 0x143b
656 #define TT_MS_LANGID_SAMI_SOUTHERN_NORWAY 0x183b
657 #define TT_MS_LANGID_SAMI_SOUTHERN_SWEDEN 0x1C3b
658 #define TT_MS_LANGID_SAMI_SKOLT_FINLAND 0x203b
659 #define TT_MS_LANGID_SAMI_INARI_FINLAND 0x243b
660 /* ... and we also keep our old identifier... */
661 #define TT_MS_LANGID_SAAMI_LAPONIA 0x043b
662
663 #if 0 /* this seems to be a previous inversion */
664 #define TT_MS_LANGID_IRISH_GAELIC_IRELAND 0x043c
665 #define TT_MS_LANGID_SCOTTISH_GAELIC_UNITED_KINGDOM 0x083c
666 #else
667 #define TT_MS_LANGID_SCOTTISH_GAELIC_UNITED_KINGDOM 0x083c
668 #define TT_MS_LANGID_IRISH_GAELIC_IRELAND 0x043c
669 #endif
670
671 #define TT_MS_LANGID_YIDDISH_GERMANY 0x043d
672 #define TT_MS_LANGID_MALAY_MALAYSIA 0x043e
673 #define TT_MS_LANGID_MALAY_BRUNEI_DARUSSALAM 0x083e
674 #define TT_MS_LANGID_KAZAK_KAZAKSTAN 0x043f
675 #define TT_MS_LANGID_KIRGHIZ_KIRGHIZSTAN /* Cyrillic*/ 0x0440
676 /* alias declared in Windows 2000 */
677 #define TT_MS_LANGID_KIRGHIZ_KIRGHIZ_REPUBLIC \
678 TT_MS_LANGID_KIRGHIZ_KIRGHIZSTAN
679
680 #define TT_MS_LANGID_SWAHILI_KENYA 0x0441
681 #define TT_MS_LANGID_TURKMEN_TURKMENISTAN 0x0442
682 #define TT_MS_LANGID_UZBEK_UZBEKISTAN_LATIN 0x0443
683 #define TT_MS_LANGID_UZBEK_UZBEKISTAN_CYRILLIC 0x0843
684 #define TT_MS_LANGID_TATAR_TATARSTAN 0x0444
685 #define TT_MS_LANGID_BENGALI_INDIA 0x0445
686 #define TT_MS_LANGID_BENGALI_BANGLADESH 0x0845
687 #define TT_MS_LANGID_PUNJABI_INDIA 0x0446
688 #define TT_MS_LANGID_PUNJABI_ARABIC_PAKISTAN 0x0846
689 #define TT_MS_LANGID_GUJARATI_INDIA 0x0447
690 #define TT_MS_LANGID_ORIYA_INDIA 0x0448
691 #define TT_MS_LANGID_TAMIL_INDIA 0x0449
692 #define TT_MS_LANGID_TELUGU_INDIA 0x044a
693 #define TT_MS_LANGID_KANNADA_INDIA 0x044b
694 #define TT_MS_LANGID_MALAYALAM_INDIA 0x044c
695 #define TT_MS_LANGID_ASSAMESE_INDIA 0x044d
696 #define TT_MS_LANGID_MARATHI_INDIA 0x044e
697 #define TT_MS_LANGID_SANSKRIT_INDIA 0x044f
698 #define TT_MS_LANGID_MONGOLIAN_MONGOLIA /* Cyrillic */ 0x0450
699 #define TT_MS_LANGID_MONGOLIAN_MONGOLIA_MONGOLIAN 0x0850
700 #define TT_MS_LANGID_TIBETAN_CHINA 0x0451
701 /* Don't use the next constant! It has */
702 /* (1) the wrong spelling (Dzonghka) */
703 /* (2) Microsoft doesn't officially define it -- */
704 /* at least it is not in the List of Local */
705 /* ID Values. */
706 /* (3) Dzongkha is not the same language as */
707 /* Tibetan, so merging it is wrong anyway. */
708 /* */
709 /* TT_MS_LANGID_TIBETAN_BHUTAN is correct, BTW. */
710 #define TT_MS_LANGID_DZONGHKA_BHUTAN 0x0851
711
712 #if 0
713 /* the following used to be defined */
714 #define TT_MS_LANGID_TIBETAN_BHUTAN 0x0451
715 /* ... but it was changed; */
716 #else
717 /* So we will continue to #define it, but with the correct value */
718 #define TT_MS_LANGID_TIBETAN_BHUTAN TT_MS_LANGID_DZONGHKA_BHUTAN
719 #endif
720
721 #define TT_MS_LANGID_WELSH_WALES 0x0452
722 #define TT_MS_LANGID_KHMER_CAMBODIA 0x0453
723 #define TT_MS_LANGID_LAO_LAOS 0x0454
724 #define TT_MS_LANGID_BURMESE_MYANMAR 0x0455
725 #define TT_MS_LANGID_GALICIAN_SPAIN 0x0456
726 #define TT_MS_LANGID_KONKANI_INDIA 0x0457
727 #define TT_MS_LANGID_MANIPURI_INDIA /* Bengali */ 0x0458
728 #define TT_MS_LANGID_SINDHI_INDIA /* Arabic */ 0x0459
729 #define TT_MS_LANGID_SINDHI_PAKISTAN 0x0859
730 /* Missing a LCID for Sindhi in Devanagari script */
731 #define TT_MS_LANGID_SYRIAC_SYRIA 0x045a
732 #define TT_MS_LANGID_SINHALESE_SRI_LANKA 0x045b
733 #define TT_MS_LANGID_CHEROKEE_UNITED_STATES 0x045c
734 #define TT_MS_LANGID_INUKTITUT_CANADA 0x045d
735 #define TT_MS_LANGID_AMHARIC_ETHIOPIA 0x045e
736 #define TT_MS_LANGID_TAMAZIGHT_MOROCCO /* Arabic */ 0x045f
737 #define TT_MS_LANGID_TAMAZIGHT_MOROCCO_LATIN 0x085f
738 /* Missing a LCID for Tifinagh script */
739 #define TT_MS_LANGID_KASHMIRI_PAKISTAN /* Arabic */ 0x0460
740 /* Spelled this way by XPsp2 Platform SDK (2004-07-26) */
741 /* script is yet unclear... might be Arabic, Nagari or Sharada */
742 #define TT_MS_LANGID_KASHMIRI_SASIA 0x0860
743 /* ... and aliased (by MS) for compatibility reasons. */
744 #define TT_MS_LANGID_KASHMIRI_INDIA TT_MS_LANGID_KASHMIRI_SASIA
745 #define TT_MS_LANGID_NEPALI_NEPAL 0x0461
746 #define TT_MS_LANGID_NEPALI_INDIA 0x0861
747 #define TT_MS_LANGID_FRISIAN_NETHERLANDS 0x0462
748 #define TT_MS_LANGID_PASHTO_AFGHANISTAN 0x0463
749 #define TT_MS_LANGID_FILIPINO_PHILIPPINES 0x0464
750 #define TT_MS_LANGID_DHIVEHI_MALDIVES 0x0465
751 /* alias declared in Windows 2000 */
752 #define TT_MS_LANGID_DIVEHI_MALDIVES TT_MS_LANGID_DHIVEHI_MALDIVES
753 #define TT_MS_LANGID_EDO_NIGERIA 0x0466
754 #define TT_MS_LANGID_FULFULDE_NIGERIA 0x0467
755 #define TT_MS_LANGID_HAUSA_NIGERIA 0x0468
756 #define TT_MS_LANGID_IBIBIO_NIGERIA 0x0469
757 #define TT_MS_LANGID_YORUBA_NIGERIA 0x046a
758 #define TT_MS_LANGID_QUECHUA_BOLIVIA 0x046b
759 #define TT_MS_LANGID_QUECHUA_ECUADOR 0x086b
760 #define TT_MS_LANGID_QUECHUA_PERU 0x0c6b
761 #define TT_MS_LANGID_SEPEDI_SOUTH_AFRICA 0x046c
762 /* Also spelled by XPsp2 Platform SDK (2004-07-26) */
763 #define TT_MS_LANGID_SOTHO_SOUTHERN_SOUTH_AFRICA \
764 TT_MS_LANGID_SEPEDI_SOUTH_AFRICA
765 /* language codes 0x046d, 0x046e and 0x046f are (still) unknown. */
766 #define TT_MS_LANGID_IGBO_NIGERIA 0x0470
767 #define TT_MS_LANGID_KANURI_NIGERIA 0x0471
768 #define TT_MS_LANGID_OROMO_ETHIOPIA 0x0472
769 #define TT_MS_LANGID_TIGRIGNA_ETHIOPIA 0x0473
770 #define TT_MS_LANGID_TIGRIGNA_ERYTHREA 0x0873
771 /* also spelled in the `Passport SDK' list as: */
772 #define TT_MS_LANGID_TIGRIGNA_ERYTREA TT_MS_LANGID_TIGRIGNA_ERYTHREA
773 #define TT_MS_LANGID_GUARANI_PARAGUAY 0x0474
774 #define TT_MS_LANGID_HAWAIIAN_UNITED_STATES 0x0475
775 #define TT_MS_LANGID_LATIN 0x0476
776 #define TT_MS_LANGID_SOMALI_SOMALIA 0x0477
777 /* Note: Yi does not have a (proper) ISO 639-2 code, since it is mostly */
778 /* not written (but OTOH the peculiar writing system is worth */
779 /* studying). */
780 #define TT_MS_LANGID_YI_CHINA 0x0478
781 #define TT_MS_LANGID_PAPIAMENTU_NETHERLANDS_ANTILLES 0x0479
782 /* language codes from 0x047a to 0x047f are (still) unknown. */
783 #define TT_MS_LANGID_UIGHUR_CHINA 0x0480
784 #define TT_MS_LANGID_MAORI_NEW_ZEALAND 0x0481
785
786 #if 0 /* not deemed useful for fonts */
787 #define TT_MS_LANGID_HUMAN_INTERFACE_DEVICE 0x04ff
788 #endif
789
790
791 /*************************************************************************/
792 /* */
793 /* Possible values of the `name' identifier field in the name records of */
794 /* the TTF `name' table. These values are platform independent. */
795 /* */
796 #define TT_NAME_ID_COPYRIGHT 0
797 #define TT_NAME_ID_FONT_FAMILY 1
798 #define TT_NAME_ID_FONT_SUBFAMILY 2
799 #define TT_NAME_ID_UNIQUE_ID 3
800 #define TT_NAME_ID_FULL_NAME 4
801 #define TT_NAME_ID_VERSION_STRING 5
802 #define TT_NAME_ID_PS_NAME 6
803 #define TT_NAME_ID_TRADEMARK 7
804
805 /* the following values are from the OpenType spec */
806 #define TT_NAME_ID_MANUFACTURER 8
807 #define TT_NAME_ID_DESIGNER 9
808 #define TT_NAME_ID_DESCRIPTION 10
809 #define TT_NAME_ID_VENDOR_URL 11
810 #define TT_NAME_ID_DESIGNER_URL 12
811 #define TT_NAME_ID_LICENSE 13
812 #define TT_NAME_ID_LICENSE_URL 14
813 /* number 15 is reserved */
814 #define TT_NAME_ID_PREFERRED_FAMILY 16
815 #define TT_NAME_ID_PREFERRED_SUBFAMILY 17
816 #define TT_NAME_ID_MAC_FULL_NAME 18
817
818 /* The following code is new as of 2000-01-21 */
819 #define TT_NAME_ID_SAMPLE_TEXT 19
820
821 /* This is new in OpenType 1.3 */
822 #define TT_NAME_ID_CID_FINDFONT_NAME 20
823
824
825 /*************************************************************************/
826 /* */
827 /* Bit mask values for the Unicode Ranges from the TTF `OS2 ' table. */
828 /* */
829 /* Updated 02-Jul-2000. */
830 /* */
831
832 /* General Scripts Area */
833
834 /* Bit 0 Basic Latin */
835 #define TT_UCR_BASIC_LATIN (1L << 0) /* U+0020-U+007E */
836 /* Bit 1 C1 Controls and Latin-1 Supplement */
837 #define TT_UCR_LATIN1_SUPPLEMENT (1L << 1) /* U+0080-U+00FF */
838 /* Bit 2 Latin Extended-A */
839 #define TT_UCR_LATIN_EXTENDED_A (1L << 2) /* U+0100-U+017F */
840 /* Bit 3 Latin Extended-B */
841 #define TT_UCR_LATIN_EXTENDED_B (1L << 3) /* U+0180-U+024F */
842 /* Bit 4 IPA Extensions */
843 #define TT_UCR_IPA_EXTENSIONS (1L << 4) /* U+0250-U+02AF */
844 /* Bit 5 Spacing Modifier Letters */
845 #define TT_UCR_SPACING_MODIFIER (1L << 5) /* U+02B0-U+02FF */
846 /* Bit 6 Combining Diacritical Marks */
847 #define TT_UCR_COMBINING_DIACRITICS (1L << 6) /* U+0300-U+036F */
848 /* Bit 7 Greek and Coptic */
849 #define TT_UCR_GREEK (1L << 7) /* U+0370-U+03FF */
850 /* Bit 8 is reserved (was: Greek Symbols and Coptic) */
851 /* Bit 9 Cyrillic + */
852 /* Cyrillic Supplementary */
853 #define TT_UCR_CYRILLIC (1L << 9) /* U+0400-U+04FF */
854 /* U+0500-U+052F */
855 /* Bit 10 Armenian */
856 #define TT_UCR_ARMENIAN (1L << 10) /* U+0530-U+058F */
857 /* Bit 11 Hebrew */
858 #define TT_UCR_HEBREW (1L << 11) /* U+0590-U+05FF */
859 /* Bit 12 is reserved (was: Hebrew Extended) */
860 /* Bit 13 Arabic */
861 #define TT_UCR_ARABIC (1L << 13) /* U+0600-U+06FF */
862 /* Bit 14 is reserved (was: Arabic Extended) */
863 /* Bit 15 Devanagari */
864 #define TT_UCR_DEVANAGARI (1L << 15) /* U+0900-U+097F */
865 /* Bit 16 Bengali */
866 #define TT_UCR_BENGALI (1L << 16) /* U+0980-U+09FF */
867 /* Bit 17 Gurmukhi */
868 #define TT_UCR_GURMUKHI (1L << 17) /* U+0A00-U+0A7F */
869 /* Bit 18 Gujarati */
870 #define TT_UCR_GUJARATI (1L << 18) /* U+0A80-U+0AFF */
871 /* Bit 19 Oriya */
872 #define TT_UCR_ORIYA (1L << 19) /* U+0B00-U+0B7F */
873 /* Bit 20 Tamil */
874 #define TT_UCR_TAMIL (1L << 20) /* U+0B80-U+0BFF */
875 /* Bit 21 Telugu */
876 #define TT_UCR_TELUGU (1L << 21) /* U+0C00-U+0C7F */
877 /* Bit 22 Kannada */
878 #define TT_UCR_KANNADA (1L << 22) /* U+0C80-U+0CFF */
879 /* Bit 23 Malayalam */
880 #define TT_UCR_MALAYALAM (1L << 23) /* U+0D00-U+0D7F */
881 /* Bit 24 Thai */
882 #define TT_UCR_THAI (1L << 24) /* U+0E00-U+0E7F */
883 /* Bit 25 Lao */
884 #define TT_UCR_LAO (1L << 25) /* U+0E80-U+0EFF */
885 /* Bit 26 Georgian */
886 #define TT_UCR_GEORGIAN (1L << 26) /* U+10A0-U+10FF */
887 /* Bit 27 is reserved (was Georgian Extended) */
888 /* Bit 28 Hangul Jamo */
889 #define TT_UCR_HANGUL_JAMO (1L << 28) /* U+1100-U+11FF */
890 /* Bit 29 Latin Extended Additional */
891 #define TT_UCR_LATIN_EXTENDED_ADDITIONAL (1L << 29) /* U+1E00-U+1EFF */
892 /* Bit 30 Greek Extended */
893 #define TT_UCR_GREEK_EXTENDED (1L << 30) /* U+1F00-U+1FFF */
894
895 /* Symbols Area */
896
897 /* Bit 31 General Punctuation */
898 #define TT_UCR_GENERAL_PUNCTUATION (1L << 31) /* U+2000-U+206F */
899 /* Bit 32 Superscripts And Subscripts */
900 #define TT_UCR_SUPERSCRIPTS_SUBSCRIPTS (1L << 0) /* U+2070-U+209F */
901 /* Bit 33 Currency Symbols */
902 #define TT_UCR_CURRENCY_SYMBOLS (1L << 1) /* U+20A0-U+20CF */
903 /* Bit 34 Combining Diacritical Marks For Symbols */
904 #define TT_UCR_COMBINING_DIACRITICS_SYMB (1L << 2) /* U+20D0-U+20FF */
905 /* Bit 35 Letterlike Symbols */
906 #define TT_UCR_LETTERLIKE_SYMBOLS (1L << 3) /* U+2100-U+214F */
907 /* Bit 36 Number Forms */
908 #define TT_UCR_NUMBER_FORMS (1L << 4) /* U+2150-U+218F */
909 /* Bit 37 Arrows + */
910 /* Supplemental Arrows-A + */
911 /* Supplemental Arrows-B */
912 #define TT_UCR_ARROWS (1L << 5) /* U+2190-U+21FF */
913 /* U+27F0-U+27FF */
914 /* U+2900-U+297F */
915 /* Bit 38 Mathematical Operators + */
916 /* Supplemental Mathematical Operators + */
917 /* Miscellaneous Mathematical Symbols-A + */
918 /* Miscellaneous Mathematical Symbols-B */
919 #define TT_UCR_MATHEMATICAL_OPERATORS (1L << 6) /* U+2200-U+22FF */
920 /* U+2A00-U+2AFF */
921 /* U+27C0-U+27EF */
922 /* U+2980-U+29FF */
923 /* Bit 39 Miscellaneous Technical */
924 #define TT_UCR_MISCELLANEOUS_TECHNICAL (1L << 7) /* U+2300-U+23FF */
925 /* Bit 40 Control Pictures */
926 #define TT_UCR_CONTROL_PICTURES (1L << 8) /* U+2400-U+243F */
927 /* Bit 41 Optical Character Recognition */
928 #define TT_UCR_OCR (1L << 9) /* U+2440-U+245F */
929 /* Bit 42 Enclosed Alphanumerics */
930 #define TT_UCR_ENCLOSED_ALPHANUMERICS (1L << 10) /* U+2460-U+24FF */
931 /* Bit 43 Box Drawing */
932 #define TT_UCR_BOX_DRAWING (1L << 11) /* U+2500-U+257F */
933 /* Bit 44 Block Elements */
934 #define TT_UCR_BLOCK_ELEMENTS (1L << 12) /* U+2580-U+259F */
935 /* Bit 45 Geometric Shapes */
936 #define TT_UCR_GEOMETRIC_SHAPES (1L << 13) /* U+25A0-U+25FF */
937 /* Bit 46 Miscellaneous Symbols */
938 #define TT_UCR_MISCELLANEOUS_SYMBOLS (1L << 14) /* U+2600-U+26FF */
939 /* Bit 47 Dingbats */
940 #define TT_UCR_DINGBATS (1L << 15) /* U+2700-U+27BF */
941
942 /* CJK Phonetics and Symbols Area */
943
944 /* Bit 48 CJK Symbols and Punctuation */
945 #define TT_UCR_CJK_SYMBOLS (1L << 16) /* U+3000-U+303F */
946 /* Bit 49 Hiragana */
947 #define TT_UCR_HIRAGANA (1L << 17) /* U+3040-U+309F */
948 /* Bit 50 Katakana + */
949 /* Katakana Phonetic Extensions */
950 #define TT_UCR_KATAKANA (1L << 18) /* U+30A0-U+30FF */
951 /* U+31F0-U+31FF */
952 /* Bit 51 Bopomofo + */
953 /* Bopomofo Extended */
954 #define TT_UCR_BOPOMOFO (1L << 19) /* U+3100-U+312F */
955 /* U+31A0-U+31BF */
956 /* Bit 52 Hangul Compatibility Jamo */
957 #define TT_UCR_HANGUL_COMPATIBILITY_JAMO (1L << 20) /* U+3130-U+318F */
958 /* Bit 53 Kanbun */
959 #define TT_UCR_CJK_MISC (1L << 21) /* U+3190-U+319F */
960 #define TT_UCR_KANBUN TT_UCR_CJK_MISC
961 /* Bit 54 Enclosed CJK Letters and Months */
962 #define TT_UCR_ENCLOSED_CJK_LETTERS_MONTHS (1L << 22) /* U+3200-U+32FF */
963 /* Bit 55 CJK Compatibility */
964 #define TT_UCR_CJK_COMPATIBILITY (1L << 23) /* U+3300-U+33FF */
965
966 /* Hangul Syllables Area */
967
968 /* Bit 56 Hangul */
969 #define TT_UCR_HANGUL (1L << 24) /* U+AC00-U+D7A3 */
970
971 /* Surrogates Area */
972
973 /* Bit 57 High Surrogates + */
974 /* High Private Use Surrogates + */
975 /* Low Surrogates */
976 #define TT_UCR_SURROGATES (1L << 25) /* U+D800-U+DB7F */
977 /* U+DB80-U+DBFF */
978 /* U+DC00-U+DFFF */
979 /* According to OpenType specs v.1.3+, setting bit 57 implies that there */
980 /* is at least one codepoint beyond the Basic Multilingual Plane that is */
981 /* supported by this font. So it really means: >= U+10000 */
982
983 /* Bit 58 is reserved for Unicode SubRanges */
984
985 /* CJK Ideographs Area */
986
987 /* Bit 59 CJK Unified Ideographs + */
988 /* CJK Radicals Supplement + */
989 /* Kangxi Radicals + */
990 /* Ideographic Description Characters + */
991 /* CJK Unified Ideographs Extension A */
992 /* CJK Unified Ideographs Extension A + */
993 /* CJK Unified Ideographs Extension B + */
994 /* Kanbun */
995 #define TT_UCR_CJK_UNIFIED_IDEOGRAPHS (1L << 27) /* U+4E00-U+9FFF */
996 /* U+2E80-U+2EFF */
997 /* U+2F00-U+2FDF */
998 /* U+2FF0-U+2FFF */
999 /* U+3400-U+4DB5 */
1000 /*U+20000-U+2A6DF*/
1001 /* U+3190-U+319F */
1002
1003 /* Private Use Area */
1004
1005 /* Bit 60 Private Use */
1006 #define TT_UCR_PRIVATE_USE (1L << 28) /* U+E000-U+F8FF */
1007
1008 /* Compatibility Area and Specials */
1009
1010 /* Bit 61 CJK Compatibility Ideographs + */
1011 /* CJK Compatibility Ideographs Supplement */
1012 #define TT_UCR_CJK_COMPATIBILITY_IDEOGRAPHS (1L << 29) /* U+F900-U+FAFF */
1013 /*U+2F800-U+2FA1F*/
1014 /* Bit 62 Alphabetic Presentation Forms */
1015 #define TT_UCR_ALPHABETIC_PRESENTATION_FORMS (1L << 30) /* U+FB00-U+FB4F */
1016 /* Bit 63 Arabic Presentation Forms-A */
1017 #define TT_UCR_ARABIC_PRESENTATIONS_A (1L << 31) /* U+FB50-U+FDFF */
1018 /* Bit 64 Combining Half Marks */
1019 #define TT_UCR_COMBINING_HALF_MARKS (1L << 0) /* U+FE20-U+FE2F */
1020 /* Bit 65 CJK Compatibility Forms */
1021 #define TT_UCR_CJK_COMPATIBILITY_FORMS (1L << 1) /* U+FE30-U+FE4F */
1022 /* Bit 66 Small Form Variants */
1023 #define TT_UCR_SMALL_FORM_VARIANTS (1L << 2) /* U+FE50-U+FE6F */
1024 /* Bit 67 Arabic Presentation Forms-B */
1025 #define TT_UCR_ARABIC_PRESENTATIONS_B (1L << 3) /* U+FE70-U+FEFE */
1026 /* Bit 68 Halfwidth and Fullwidth Forms */
1027 #define TT_UCR_HALFWIDTH_FULLWIDTH_FORMS (1L << 4) /* U+FF00-U+FFEF */
1028 /* Bit 69 Specials */
1029 #define TT_UCR_SPECIALS (1L << 5) /* U+FFF0-U+FFFD */
1030 /* Bit 70 Tibetan */
1031 #define TT_UCR_TIBETAN (1L << 6) /* U+0F00-U+0FFF */
1032 /* Bit 71 Syriac */
1033 #define TT_UCR_SYRIAC (1L << 7) /* U+0700-U+074F */
1034 /* Bit 72 Thaana */
1035 #define TT_UCR_THAANA (1L << 8) /* U+0780-U+07BF */
1036 /* Bit 73 Sinhala */
1037 #define TT_UCR_SINHALA (1L << 9) /* U+0D80-U+0DFF */
1038 /* Bit 74 Myanmar */
1039 #define TT_UCR_MYANMAR (1L << 10) /* U+1000-U+109F */
1040 /* Bit 75 Ethiopic */
1041 #define TT_UCR_ETHIOPIC (1L << 11) /* U+1200-U+137F */
1042 /* Bit 76 Cherokee */
1043 #define TT_UCR_CHEROKEE (1L << 12) /* U+13A0-U+13FF */
1044 /* Bit 77 Unified Canadian Aboriginal Syllabics */
1045 #define TT_UCR_CANADIAN_ABORIGINAL_SYLLABICS (1L << 13) /* U+1400-U+167F */
1046 /* Bit 78 Ogham */
1047 #define TT_UCR_OGHAM (1L << 14) /* U+1680-U+169F */
1048 /* Bit 79 Runic */
1049 #define TT_UCR_RUNIC (1L << 15) /* U+16A0-U+16FF */
1050 /* Bit 80 Khmer */
1051 #define TT_UCR_KHMER (1L << 16) /* U+1780-U+17FF */
1052 /* Bit 81 Mongolian */
1053 #define TT_UCR_MONGOLIAN (1L << 17) /* U+1800-U+18AF */
1054 /* Bit 82 Braille Patterns */
1055 #define TT_UCR_BRAILLE (1L << 18) /* U+2800-U+28FF */
1056 /* Bit 83 Yi Syllables + */
1057 /* Yi Radicals */
1058 #define TT_UCR_YI (1L << 19) /* U+A000-U+A48F */
1059 /* U+A490-U+A4CF */
1060 /* Bit 84 Tagalog + */
1061 /* Hanunoo + */
1062 /* Buhid + */
1063 /* Tagbanwa */
1064 #define TT_UCR_PHILIPPINE (1L << 20) /* U+1700-U+171F */
1065 /* U+1720-U+173F */
1066 /* U+1740-U+175F */
1067 /* U+1760-U+177F */
1068 /* Bit 85 Old Italic */
1069 #define TT_UCR_OLD_ITALIC (1L << 21) /*U+10300-U+1032F*/
1070 /* Bit 86 Gothic */
1071 #define TT_UCR_GOTHIC (1L << 22) /*U+10330-U+1034F*/
1072 /* Bit 87 Deseret */
1073 #define TT_UCR_DESERET (1L << 23) /*U+10400-U+1044F*/
1074 /* Bit 88 Byzantine Musical Symbols + */
1075 /* Musical Symbols */
1076 #define TT_UCR_MUSICAL_SYMBOLS (1L << 24) /*U+1D000-U+1D0FF*/
1077 /*U+1D100-U+1D1FF*/
1078 /* Bit 89 Mathematical Alphanumeric Symbols */
1079 #define TT_UCR_MATH_ALPHANUMERIC_SYMBOLS (1L << 25) /*U+1D400-U+1D7FF*/
1080 /* Bit 90 Private Use (plane 15) + */
1081 /* Private Use (plane 16) */
1082 #define TT_UCR_PRIVATE_USE_SUPPLEMENTARY (1L << 26) /*U+F0000-U+FFFFD*/
1083 /*U+100000-U+10FFFD*/
1084 /* Bit 91 Variation Selectors */
1085 #define TT_UCR_VARIATION_SELECTORS (1L << 27) /* U+FE00-U+FE0F */
1086 /* Bit 92 Tags */
1087 #define TT_UCR_TAGS (1L << 28) /*U+E0000-U+E007F*/
1088
1089
1090 /*************************************************************************/
1091 /* */
1092 /* Some compilers have a very limited length of identifiers. */
1093 /* */
1094 #if defined( __TURBOC__ ) && __TURBOC__ < 0x0410 || defined( __PACIFIC__ )
1095 #define HAVE_LIMIT_ON_IDENTS
1096 #endif
1097
1098
1099 #ifndef HAVE_LIMIT_ON_IDENTS
1100
1101
1102 /*************************************************************************/
1103 /* */
1104 /* Here some alias #defines in order to be clearer. */
1105 /* */
1106 /* These are not always #defined to stay within the 31 character limit */
1107 /* which some compilers have. */
1108 /* */
1109 /* Credits go to Dave Hoo <dhoo@flash.net> for pointing out that modern */
1110 /* Borland compilers (read: from BC++ 3.1 on) can increase this limit. */
1111 /* If you get a warning with such a compiler, use the -i40 switch. */
1112 /* */
1113 #define TT_UCR_ARABIC_PRESENTATION_FORMS_A \
1114 TT_UCR_ARABIC_PRESENTATIONS_A
1115 #define TT_UCR_ARABIC_PRESENTATION_FORMS_B \
1116 TT_UCR_ARABIC_PRESENTATIONS_B
1117
1118 #define TT_UCR_COMBINING_DIACRITICAL_MARKS \
1119 TT_UCR_COMBINING_DIACRITICS
1120 #define TT_UCR_COMBINING_DIACRITICAL_MARKS_SYMB \
1121 TT_UCR_COMBINING_DIACRITICS_SYMB
1122
1123
1124 #endif /* !HAVE_LIMIT_ON_IDENTS */
1125
1126
1127 FT_END_HEADER
1128
1129 #endif /* __TTNAMEID_H__ */
1130
1131
1132 /* END */