"Fossies" - the Fresh Open Source Software Archive 
Member "SDL2_ttf-2.20.2/external/freetype/src/autofit/afblue.dat" (25 May 2022, 48622 Bytes) of package /linux/misc/SDL2_ttf-2.20.2.tar.gz:
As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) AMPL source code syntax highlighting (style:
standard) with prefixed line numbers.
Alternatively you can here
view or
download the uninterpreted source code file.
1 // afblue.dat
2 //
3 // Auto-fitter data for blue strings.
4 //
5 // Copyright (C) 2013-2022 by
6 // David Turner, Robert Wilhelm, and Werner Lemberg.
7 //
8 // This file is part of the FreeType project, and may only be used,
9 // modified, and distributed under the terms of the FreeType project
10 // license, LICENSE.TXT. By continuing to use, modify, or distribute
11 // this file you indicate that you have read the license and
12 // understand and accept it fully.
13
14
15 // This file contains data specific to blue zones. It gets processed by
16 // a script to simulate `jagged arrays', with enumeration values holding
17 // offsets into the arrays.
18 //
19 // The format of the file is rather simple: A section starts with three
20 // labels separated by whitespace and followed by a colon (everything in a
21 // single line); the first label gives the name of the enumeration template,
22 // the second the name of the array template, and the third the name of the
23 // `maximum' template. The script then fills the corresponding templates
24 // (indicated by `@' characters around the name).
25 //
26 // A section contains one or more data records. Each data record consists
27 // of two or more lines. The first line holds the enumeration name, and the
28 // remaining lines the corresponding array data.
29 //
30 // There are two possible representations for array data.
31 //
32 // - A string of characters or character clusters (for example, representing
33 // Aksharas, Devanagari syllables) in UTF-8 encoding enclosed in double
34 // quotes, using C syntax, where the elements are separated by spaces.
35 // There can be only one string per line, thus the starting and ending
36 // double quote must be the first and last character in the line,
37 // respectively, ignoring whitespace before and after the string. If
38 // there are multiple strings (in multiple lines), they are concatenated
39 // to a single string. In the output, a string gets represented as a
40 // series of singles bytes, followed by a zero byte. The enumeration
41 // values simply hold byte offsets to the start of the corresponding
42 // strings.
43 //
44 // For strings, the `maximum' template holds the maximum number of
45 // non-space characters in all strings.
46 //
47 // - Data blocks enclosed in balanced braces, which get copied verbatim and
48 // which can span multiple lines. The opening brace of a block must be
49 // the first character of a line (ignoring whitespace), and the closing
50 // brace the last (ignoring whitespace also). The script appends a comma
51 // character after each block and counts the number of blocks to set the
52 // enumeration values.
53 //
54 // For data blocks, the `maximum' template holds the maximum number of
55 // array elements.
56 //
57 // A section can contain either strings only or data blocks only.
58 //
59 // A comment line starts with `//'; it gets removed. A preprocessor
60 // directive line (using the standard syntax of `cpp') starts with `#' and
61 // gets copied verbatim to both the enumeration and the array. Whitespace
62 // outside of a string is insignificant.
63 //
64 // Preprocessor directives are ignored while the script computes maximum
65 // values; this essentially means that the maximum values can easily be too
66 // large. Given that the purpose of those values is to create local
67 // fixed-size arrays at compile time for further processing of the blue zone
68 // data, this isn't a problem. Note the final zero byte of a string is not
69 // counted. Note also that the count holds the number of UTF-8 encoded
70 // characters, not bytes.
71
72
73 // The blue zone string data, to be used in the blue stringsets below.
74
75 AF_BLUE_STRING_ENUM AF_BLUE_STRINGS_ARRAY AF_BLUE_STRING_MAX_LEN:
76
77 AF_BLUE_STRING_ADLAM_CAPITAL_TOP
78 "𞤌 𞤅 𞤈 𞤏 𞤔 𞤚"
79 AF_BLUE_STRING_ADLAM_CAPITAL_BOTTOM
80 "𞤂 𞤖"
81 AF_BLUE_STRING_ADLAM_SMALL_TOP
82 "𞤬 𞤮 𞤻 𞤼 𞤾"
83 AF_BLUE_STRING_ADLAM_SMALL_BOTTOM
84 "𞤤 𞤨 𞤩 𞤭 𞤴 𞤸 𞤺 𞥀"
85
86 AF_BLUE_STRING_ARABIC_TOP
87 "ا إ ل ك ط ظ"
88 AF_BLUE_STRING_ARABIC_BOTTOM
89 "ت ث ط ظ ك"
90 // We don't necessarily have access to medial forms via Unicode in case
91 // Arabic presentational forms are missing. The only character that is
92 // guaranteed to have the same vertical position with joining (this is,
93 // non-isolated) forms is U+0640, ARABIC TATWEEL, which must join both
94 // round and flat curves.
95 AF_BLUE_STRING_ARABIC_JOIN
96 "ـ"
97
98 AF_BLUE_STRING_ARMENIAN_CAPITAL_TOP
99 "Ա Մ Ւ Ս Բ Գ Դ Օ"
100 AF_BLUE_STRING_ARMENIAN_CAPITAL_BOTTOM
101 "Ւ Ո Դ Ճ Շ Ս Տ Օ"
102 AF_BLUE_STRING_ARMENIAN_SMALL_ASCENDER
103 "ե է ի մ վ ֆ ճ"
104 AF_BLUE_STRING_ARMENIAN_SMALL_TOP
105 "ա յ ւ ս գ շ ր օ"
106 AF_BLUE_STRING_ARMENIAN_SMALL_BOTTOM
107 "հ ո ճ ա ե ծ ս օ"
108 AF_BLUE_STRING_ARMENIAN_SMALL_DESCENDER
109 "բ ը ի լ ղ պ փ ց"
110
111 AF_BLUE_STRING_AVESTAN_TOP
112 "𐬀 𐬁 𐬐 𐬛"
113 AF_BLUE_STRING_AVESTAN_BOTTOM
114 "𐬀 𐬁"
115
116 AF_BLUE_STRING_BAMUM_TOP
117 "ꚧ ꚨ ꛛ ꛉ ꛁ ꛈ ꛫ ꛯ"
118 AF_BLUE_STRING_BAMUM_BOTTOM
119 "ꚭ ꚳ ꚶ ꛬ ꚢ ꚽ ꛯ ꛲"
120
121 AF_BLUE_STRING_BENGALI_BASE
122 "অ ড ত ন ব ভ ল ক"
123 AF_BLUE_STRING_BENGALI_TOP
124 "ই ট ঠ ি ী ৈ ৗ"
125 AF_BLUE_STRING_BENGALI_HEAD
126 "ও এ ড ত ন ব ল ক"
127
128 AF_BLUE_STRING_BUHID_TOP
129 "ᝐ ᝈ"
130 AF_BLUE_STRING_BUHID_LARGE
131 "ᝅ ᝊ ᝎ"
132 AF_BLUE_STRING_BUHID_SMALL
133 "ᝂ ᝃ ᝉ ᝌ"
134 AF_BLUE_STRING_BUHID_BOTTOM
135 "ᝀ ᝃ ᝆ ᝉ ᝋ ᝏ ᝑ"
136
137 AF_BLUE_STRING_CANADIAN_SYLLABICS_TOP
138 "ᗜ ᖴ ᐁ ᒣ ᑫ ᑎ ᔑ ᗰ"
139 AF_BLUE_STRING_CANADIAN_SYLLABICS_BOTTOM
140 "ᗶ ᖵ ᒧ ᐃ ᑌ ᒍ ᔑ ᗢ"
141 AF_BLUE_STRING_CANADIAN_SYLLABICS_SMALL_TOP
142 "ᓓ ᓕ ᓀ ᓂ ᓄ ᕄ ᕆ ᘣ"
143 AF_BLUE_STRING_CANADIAN_SYLLABICS_SMALL_BOTTOM
144 "ᕃ ᓂ ᓀ ᕂ ᓗ ᓚ ᕆ ᘣ"
145 AF_BLUE_STRING_CANADIAN_SYLLABICS_SUPS_TOP
146 "ᐪ ᙆ ᣘ ᐢ ᒾ ᣗ ᔆ"
147 AF_BLUE_STRING_CANADIAN_SYLLABICS_SUPS_BOTTOM
148 "ᙆ ᗮ ᒻ ᐞ ᔆ ᒡ ᒢ ᓑ"
149
150 AF_BLUE_STRING_CARIAN_TOP
151 "𐊧 𐊫 𐊬 𐊭 𐊱 𐊺 𐊼 𐊿"
152 AF_BLUE_STRING_CARIAN_BOTTOM
153 "𐊣 𐊧 𐊷 𐋀 𐊫 𐊸 𐋉"
154
155 AF_BLUE_STRING_CHAKMA_TOP
156 "𑄃 𑄅 𑄉 𑄙 𑄗"
157 AF_BLUE_STRING_CHAKMA_BOTTOM
158 "𑄅 𑄛 𑄝 𑄗 𑄓"
159 AF_BLUE_STRING_CHAKMA_DESCENDER
160 "𑄖𑄳𑄢 𑄘𑄳𑄢 𑄙𑄳𑄢 𑄤𑄳𑄢 𑄥𑄳𑄢"
161
162 AF_BLUE_STRING_CHEROKEE_CAPITAL
163 "Ꮖ Ꮋ Ꭼ Ꮓ Ꭴ Ꮳ Ꭶ Ꮥ"
164 AF_BLUE_STRING_CHEROKEE_SMALL_ASCENDER
165 "ꮒ ꮤ ꮶ ꭴ ꭾ ꮗ ꮝ ꮿ"
166 AF_BLUE_STRING_CHEROKEE_SMALL
167 "ꮖ ꭼ ꮓ ꮠ ꮳ ꭶ ꮥ ꮻ"
168 AF_BLUE_STRING_CHEROKEE_SMALL_DESCENDER
169 "ᏸ ꮐ ꭹ ꭻ"
170
171 AF_BLUE_STRING_COPTIC_CAPITAL_TOP
172 "Ⲍ Ⲏ Ⲡ Ⳟ Ⲟ Ⲑ Ⲥ Ⳋ"
173 AF_BLUE_STRING_COPTIC_CAPITAL_BOTTOM
174 "Ⳑ Ⳙ Ⳟ Ⲏ Ⲟ Ⲑ Ⳝ Ⲱ"
175 AF_BLUE_STRING_COPTIC_SMALL_TOP
176 "ⲍ ⲏ ⲡ ⳟ ⲟ ⲑ ⲥ ⳋ"
177 AF_BLUE_STRING_COPTIC_SMALL_BOTTOM
178 "ⳑ ⳙ ⳟ ⲏ ⲟ ⲑ ⳝ Ⳓ"
179
180 AF_BLUE_STRING_CYPRIOT_TOP
181 "𐠍 𐠙 𐠳 𐠱 𐠅 𐠓 𐠣 𐠦"
182 AF_BLUE_STRING_CYPRIOT_BOTTOM
183 "𐠃 𐠊 𐠛 𐠣 𐠳 𐠵 𐠐"
184 AF_BLUE_STRING_CYPRIOT_SMALL
185 "𐠈 𐠏 𐠖"
186
187 AF_BLUE_STRING_CYRILLIC_CAPITAL_TOP
188 "Б В Е П З О С Э"
189 AF_BLUE_STRING_CYRILLIC_CAPITAL_BOTTOM
190 "Б В Е Ш З О С Э"
191 AF_BLUE_STRING_CYRILLIC_SMALL
192 "х п н ш е з о с"
193 AF_BLUE_STRING_CYRILLIC_SMALL_DESCENDER
194 "р у ф"
195
196 AF_BLUE_STRING_DESERET_CAPITAL_TOP
197 "𐐂 𐐄 𐐋 𐐗 𐐑"
198 AF_BLUE_STRING_DESERET_CAPITAL_BOTTOM
199 "𐐀 𐐂 𐐄 𐐗 𐐛"
200 AF_BLUE_STRING_DESERET_SMALL_TOP
201 "𐐪 𐐬 𐐳 𐐿 𐐹"
202 AF_BLUE_STRING_DESERET_SMALL_BOTTOM
203 "𐐨 𐐪 𐐬 𐐿 𐑃"
204
205 AF_BLUE_STRING_DEVANAGARI_BASE
206 "क न म उ छ ट ठ ड"
207 AF_BLUE_STRING_DEVANAGARI_TOP
208 "ई ऐ ओ औ ि ी ो ौ"
209 // note that some fonts have extreme variation in the height of the
210 // round head elements; for this reason we also define the `base'
211 // blue zone, which must be always present
212 AF_BLUE_STRING_DEVANAGARI_HEAD
213 "क म अ आ थ ध भ श"
214 AF_BLUE_STRING_DEVANAGARI_BOTTOM
215 "ु ृ"
216
217 AF_BLUE_STRING_ETHIOPIC_TOP
218 "ሀ ሃ ዘ ፐ ማ በ ዋ ዐ"
219 AF_BLUE_STRING_ETHIOPIC_BOTTOM
220 "ለ ሐ በ ዘ ሀ ሪ ዐ ጨ"
221
222 AF_BLUE_STRING_GEORGIAN_MKHEDRULI_TOP
223 "გ დ ე ვ თ ი ო ღ"
224 AF_BLUE_STRING_GEORGIAN_MKHEDRULI_BOTTOM
225 "ა ზ მ ს შ ძ ხ პ"
226 AF_BLUE_STRING_GEORGIAN_MKHEDRULI_ASCENDER
227 "ს ხ ქ ზ მ შ ჩ წ"
228 AF_BLUE_STRING_GEORGIAN_MKHEDRULI_DESCENDER
229 "ე ვ ჟ ტ უ ფ ქ ყ"
230
231 AF_BLUE_STRING_GEORGIAN_ASOMTAVRULI_TOP
232 "Ⴑ Ⴇ Ⴙ Ⴜ Ⴄ Ⴅ Ⴓ Ⴚ"
233 AF_BLUE_STRING_GEORGIAN_ASOMTAVRULI_BOTTOM
234 "Ⴄ Ⴅ Ⴇ Ⴈ Ⴆ Ⴑ Ⴊ Ⴋ"
235
236 AF_BLUE_STRING_GEORGIAN_NUSKHURI_TOP
237 "ⴁ ⴗ ⴂ ⴄ ⴅ ⴇ ⴔ ⴖ"
238 AF_BLUE_STRING_GEORGIAN_NUSKHURI_BOTTOM
239 "ⴈ ⴌ ⴖ ⴎ ⴃ ⴆ ⴋ ⴢ"
240 AF_BLUE_STRING_GEORGIAN_NUSKHURI_ASCENDER
241 "ⴐ ⴑ ⴓ ⴕ ⴙ ⴛ ⴡ ⴣ"
242 AF_BLUE_STRING_GEORGIAN_NUSKHURI_DESCENDER
243 "ⴄ ⴅ ⴔ ⴕ ⴁ ⴂ ⴘ ⴝ"
244
245 AF_BLUE_STRING_GEORGIAN_MTAVRULI_TOP
246 "Ნ Ჟ Ჳ Ჸ Გ Ე Ო Ჴ"
247 AF_BLUE_STRING_GEORGIAN_MTAVRULI_BOTTOM
248 "Ი Ჲ Ო Ჩ Მ Შ Ჯ Ჽ"
249
250 AF_BLUE_STRING_GLAGOLITIC_CAPITAL_TOP
251 "Ⰵ Ⱄ Ⱚ Ⰴ Ⰲ Ⰺ Ⱛ Ⰻ"
252 AF_BLUE_STRING_GLAGOLITIC_CAPITAL_BOTTOM
253 "Ⰵ Ⰴ Ⰲ Ⱚ Ⱎ Ⱑ Ⰺ Ⱄ"
254 AF_BLUE_STRING_GLAGOLITIC_SMALL_TOP
255 "ⰵ ⱄ ⱚ ⰴ ⰲ ⰺ ⱛ ⰻ"
256 AF_BLUE_STRING_GLAGOLITIC_SMALL_BOTTOM
257 "ⰵ ⰴ ⰲ ⱚ ⱎ ⱑ ⰺ ⱄ"
258
259 AF_BLUE_STRING_GOTHIC_TOP
260 "𐌲 𐌶 𐍀 𐍄 𐌴 𐍃 𐍈 𐌾"
261 AF_BLUE_STRING_GOTHIC_BOTTOM
262 "𐌶 𐌴 𐍃 𐍈"
263
264 AF_BLUE_STRING_GREEK_CAPITAL_TOP
265 "Γ Β Ε Ζ Θ Ο Ω"
266 AF_BLUE_STRING_GREEK_CAPITAL_BOTTOM
267 "Β Δ Ζ Ξ Θ Ο"
268 AF_BLUE_STRING_GREEK_SMALL_BETA_TOP
269 "β θ δ ζ λ ξ"
270 AF_BLUE_STRING_GREEK_SMALL
271 "α ε ι ο π σ τ ω"
272 AF_BLUE_STRING_GREEK_SMALL_DESCENDER
273 "β γ η μ ρ φ χ ψ"
274
275 AF_BLUE_STRING_GUJARATI_TOP
276 "ત ન ઋ ઌ છ ટ ર ૦"
277 AF_BLUE_STRING_GUJARATI_BOTTOM
278 "ખ ગ ઘ ઞ ઇ ઈ ઠ જ"
279 AF_BLUE_STRING_GUJARATI_ASCENDER
280 "ઈ ઊ િ ી લી શ્ચિ જિ સી"
281 AF_BLUE_STRING_GUJARATI_DESCENDER
282 "ુ ૃ ૄ ખુ છૃ છૄ"
283 AF_BLUE_STRING_GUJARATI_DIGIT_TOP
284 "૦ ૧ ૨ ૩ ૭"
285
286 AF_BLUE_STRING_GURMUKHI_BASE
287 "ਕ ਗ ਙ ਚ ਜ ਤ ਧ ਸ"
288 AF_BLUE_STRING_GURMUKHI_HEAD
289 "ਕ ਗ ਙ ਚ ਜ ਤ ਧ ਸ"
290 AF_BLUE_STRING_GURMUKHI_TOP
291 "ਇ ਈ ਉ ਏ ਓ ੳ ਿ ੀ"
292 AF_BLUE_STRING_GURMUKHI_BOTTOM
293 "ਅ ਏ ਓ ਗ ਜ ਠ ਰ ਸ"
294 AF_BLUE_STRING_GURMUKHI_DIGIT_TOP
295 "੦ ੧ ੨ ੩ ੭"
296
297 AF_BLUE_STRING_HEBREW_TOP
298 "ב ד ה ח ך כ ם ס"
299 AF_BLUE_STRING_HEBREW_BOTTOM
300 "ב ט כ ם ס צ"
301 AF_BLUE_STRING_HEBREW_DESCENDER
302 "ק ך ן ף ץ"
303
304 AF_BLUE_STRING_KANNADA_TOP
305 "ಇ ಊ ಐ ಣ ಸಾ ನಾ ದಾ ರಾ"
306 AF_BLUE_STRING_KANNADA_BOTTOM
307 "ಅ ಉ ಎ ಲ ೦ ೨ ೬ ೭"
308
309 AF_BLUE_STRING_KAYAH_LI_TOP
310 "꤅ ꤏ ꤁ ꤋ ꤀ ꤍ"
311 AF_BLUE_STRING_KAYAH_LI_BOTTOM
312 "꤈ ꤘ ꤀ ꤍ ꤢ"
313 AF_BLUE_STRING_KAYAH_LI_ASCENDER
314 "ꤖ ꤡ"
315 AF_BLUE_STRING_KAYAH_LI_DESCENDER
316 "ꤑ ꤜ ꤞ"
317 AF_BLUE_STRING_KAYAH_LI_LARGE_DESCENDER
318 "ꤑ꤬ ꤜ꤭ ꤔ꤬"
319
320 AF_BLUE_STRING_KHMER_TOP
321 "ខ ទ ន ឧ ឩ ា"
322 AF_BLUE_STRING_KHMER_SUBSCRIPT_TOP
323 "ក្ក ក្ខ ក្គ ក្ថ"
324 AF_BLUE_STRING_KHMER_BOTTOM
325 "ខ ឃ ច ឋ ប ម យ ឲ"
326 AF_BLUE_STRING_KHMER_DESCENDER
327 "ត្រ រៀ ឲ្យ អឿ"
328 AF_BLUE_STRING_KHMER_LARGE_DESCENDER
329 "ន្ត្រៃ ង្ខ្យ ក្បៀ ច្រៀ ន្តឿ ល្បឿ"
330
331 AF_BLUE_STRING_KHMER_SYMBOLS_WAXING_TOP
332 "᧠ ᧡"
333 AF_BLUE_STRING_KHMER_SYMBOLS_WANING_BOTTOM
334 "᧶ ᧹"
335
336 AF_BLUE_STRING_LAO_TOP
337 "າ ດ ອ ມ ລ ວ ຣ ງ"
338 AF_BLUE_STRING_LAO_BOTTOM
339 "າ ອ ບ ຍ ຣ ຮ ວ ຢ"
340 AF_BLUE_STRING_LAO_ASCENDER
341 "ປ ຢ ຟ ຝ"
342 AF_BLUE_STRING_LAO_LARGE_ASCENDER
343 "ໂ ໄ ໃ"
344 AF_BLUE_STRING_LAO_DESCENDER
345 "ງ ຊ ຖ ຽ ໆ ຯ"
346
347 AF_BLUE_STRING_LATIN_CAPITAL_TOP
348 "T H E Z O C Q S"
349 AF_BLUE_STRING_LATIN_CAPITAL_BOTTOM
350 "H E Z L O C U S"
351 AF_BLUE_STRING_LATIN_SMALL_F_TOP
352 "f i j k d b h"
353 AF_BLUE_STRING_LATIN_SMALL_TOP
354 "u v x z o e s c"
355 AF_BLUE_STRING_LATIN_SMALL_BOTTOM
356 "n r x z o e s c"
357 AF_BLUE_STRING_LATIN_SMALL_DESCENDER
358 "p q g j y"
359
360 // we assume that both the subscript and superscript ranges
361 // don't contain oldstyle digits (actually, most fonts probably
362 // have digits only in those ranges)
363 AF_BLUE_STRING_LATIN_SUBS_CAPITAL_TOP
364 "₀ ₃ ₅ ₇ ₈"
365 AF_BLUE_STRING_LATIN_SUBS_CAPITAL_BOTTOM
366 "₀ ₁ ₂ ₃ ₈"
367 AF_BLUE_STRING_LATIN_SUBS_SMALL_F_TOP
368 "ᵢ ⱼ ₕ ₖ ₗ"
369 AF_BLUE_STRING_LATIN_SUBS_SMALL
370 "ₐ ₑ ₒ ₓ ₙ ₛ ᵥ ᵤ ᵣ"
371 AF_BLUE_STRING_LATIN_SUBS_SMALL_DESCENDER
372 "ᵦ ᵧ ᵨ ᵩ ₚ"
373
374 AF_BLUE_STRING_LATIN_SUPS_CAPITAL_TOP
375 "⁰ ³ ⁵ ⁷ ᵀ ᴴ ᴱ ᴼ"
376 AF_BLUE_STRING_LATIN_SUPS_CAPITAL_BOTTOM
377 "⁰ ¹ ² ³ ᴱ ᴸ ᴼ ᵁ"
378 AF_BLUE_STRING_LATIN_SUPS_SMALL_F_TOP
379 "ᵇ ᵈ ᵏ ʰ ʲ ᶠ ⁱ"
380 AF_BLUE_STRING_LATIN_SUPS_SMALL
381 "ᵉ ᵒ ʳ ˢ ˣ ᶜ ᶻ"
382 AF_BLUE_STRING_LATIN_SUPS_SMALL_DESCENDER
383 "ᵖ ʸ ᵍ"
384
385 AF_BLUE_STRING_LISU_TOP
386 "ꓡ ꓧ ꓱ ꓶ ꓩ ꓚ ꓵ ꓳ"
387 AF_BLUE_STRING_LISU_BOTTOM
388 "ꓕ ꓜ ꓞ ꓡ ꓛ ꓢ ꓳ ꓴ"
389
390 AF_BLUE_STRING_MALAYALAM_TOP
391 "ഒ ട ഠ റ ച പ ച്ച പ്പ"
392 AF_BLUE_STRING_MALAYALAM_BOTTOM
393 "ട ഠ ധ ശ ഘ ച ഥ ല"
394
395 AF_BLUE_STRING_MEDEFAIDRIN_CAPITAL_TOP
396 "𖹀 𖹁 𖹂 𖹃 𖹏 𖹚 𖹟"
397 AF_BLUE_STRING_MEDEFAIDRIN_CAPITAL_BOTTOM
398 "𖹀 𖹁 𖹂 𖹃 𖹏 𖹚 𖹒 𖹓"
399 AF_BLUE_STRING_MEDEFAIDRIN_SMALL_F_TOP
400 "𖹤 𖹬 𖹧 𖹴 𖹶 𖹾"
401 AF_BLUE_STRING_MEDEFAIDRIN_SMALL_TOP
402 "𖹠 𖹡 𖹢 𖹹 𖹳 𖹮"
403 AF_BLUE_STRING_MEDEFAIDRIN_SMALL_BOTTOM
404 "𖹠 𖹡 𖹢 𖹳 𖹭 𖹽"
405 AF_BLUE_STRING_MEDEFAIDRIN_SMALL_DESCENDER
406 "𖹥 𖹨 𖹩"
407 AF_BLUE_STRING_MEDEFAIDRIN_DIGIT_TOP
408 "𖺀 𖺅 𖺈 𖺄 𖺍"
409
410 AF_BLUE_STRING_MONGOLIAN_TOP_BASE
411 "ᠳ ᠴ ᠶ ᠽ ᡂ ᡊ ᡡ ᡳ"
412 AF_BLUE_STRING_MONGOLIAN_BOTTOM_BASE
413 "ᡃ"
414
415 AF_BLUE_STRING_MYANMAR_TOP
416 "ခ ဂ င ဒ ဝ ၥ ၊ ။"
417 AF_BLUE_STRING_MYANMAR_BOTTOM
418 "င ဎ ဒ ပ ဗ ဝ ၊ ။"
419 AF_BLUE_STRING_MYANMAR_ASCENDER
420 "ဩ ြ ၍ ၏ ၆ ါ ိ"
421 AF_BLUE_STRING_MYANMAR_DESCENDER
422 "ဉ ည ဥ ဩ ဨ ၂ ၅ ၉"
423
424 AF_BLUE_STRING_NKO_TOP
425 "ߐ ߉ ߒ ߟ ߖ ߜ ߠ ߥ"
426 AF_BLUE_STRING_NKO_BOTTOM
427 "߀ ߘ ߡ ߠ ߥ"
428 AF_BLUE_STRING_NKO_SMALL_TOP
429 "ߏ ߛ ߋ"
430 AF_BLUE_STRING_NKO_SMALL_BOTTOM
431 "ߎ ߏ ߛ ߋ"
432
433 AF_BLUE_STRING_OL_CHIKI
434 "ᱛ ᱜ ᱝ ᱡ ᱢ ᱥ"
435
436 AF_BLUE_STRING_OLD_TURKIC_TOP
437 "𐰗 𐰘 𐰧"
438 AF_BLUE_STRING_OLD_TURKIC_BOTTOM
439 "𐰉 𐰗 𐰦 𐰧"
440
441 AF_BLUE_STRING_OSAGE_CAPITAL_TOP
442 "𐒾 𐓍 𐓒 𐓓 𐒻 𐓂 𐒵 𐓆"
443 AF_BLUE_STRING_OSAGE_CAPITAL_BOTTOM
444 "𐒰 𐓍 𐓂 𐒿 𐓎 𐒹"
445 AF_BLUE_STRING_OSAGE_CAPITAL_DESCENDER
446 "𐒼 𐒽 𐒾"
447 AF_BLUE_STRING_OSAGE_SMALL_TOP
448 "𐓵 𐓶 𐓺 𐓻 𐓝 𐓣 𐓪 𐓮"
449 AF_BLUE_STRING_OSAGE_SMALL_BOTTOM
450 "𐓘 𐓚 𐓣 𐓵 𐓡 𐓧 𐓪 𐓶"
451 AF_BLUE_STRING_OSAGE_SMALL_ASCENDER
452 "𐓤 𐓦 𐓸 𐓹 𐓛"
453 AF_BLUE_STRING_OSAGE_SMALL_DESCENDER
454 "𐓤 𐓥 𐓦"
455
456 AF_BLUE_STRING_OSMANYA_TOP
457 "𐒆 𐒉 𐒐 𐒒 𐒘 𐒛 𐒠 𐒣"
458 AF_BLUE_STRING_OSMANYA_BOTTOM
459 "𐒀 𐒂 𐒆 𐒈 𐒊 𐒒 𐒠 𐒩"
460
461 AF_BLUE_STRING_ROHINGYA_TOP
462 "𐴃 𐴀 𐴆 𐴖 𐴕"
463 AF_BLUE_STRING_ROHINGYA_BOTTOM
464 "𐴔 𐴖 𐴕 𐴑 𐴐"
465 AF_BLUE_STRING_ROHINGYA_JOIN
466 "ـ"
467
468 AF_BLUE_STRING_SAURASHTRA_TOP
469 "ꢜ ꢞ ꢳ ꢂ ꢖ ꢒ ꢝ ꢛ"
470 AF_BLUE_STRING_SAURASHTRA_BOTTOM
471 "ꢂ ꢨ ꢺ ꢤ ꢎ"
472
473 AF_BLUE_STRING_SHAVIAN_TOP
474 "𐑕 𐑙"
475 AF_BLUE_STRING_SHAVIAN_BOTTOM
476 "𐑔 𐑖 𐑗 𐑹 𐑻"
477 AF_BLUE_STRING_SHAVIAN_DESCENDER
478 "𐑟 𐑣"
479 AF_BLUE_STRING_SHAVIAN_SMALL_TOP
480 "𐑱 𐑲 𐑳 𐑴 𐑸 𐑺 𐑼"
481 AF_BLUE_STRING_SHAVIAN_SMALL_BOTTOM
482 "𐑴 𐑻 𐑹"
483
484 AF_BLUE_STRING_SINHALA_TOP
485 "ඉ ක ඝ ඳ ප ය ල ෆ"
486 AF_BLUE_STRING_SINHALA_BOTTOM
487 "එ ඔ ඝ ජ ට ථ ධ ර"
488 AF_BLUE_STRING_SINHALA_DESCENDER
489 "ද ඳ උ ල තූ තු බු දු"
490
491 AF_BLUE_STRING_SUNDANESE_TOP
492 "ᮋ ᮞ ᮮ ᮽ ᮰ ᮈ"
493 AF_BLUE_STRING_SUNDANESE_BOTTOM
494 "ᮄ ᮔ ᮕ ᮗ ᮰ ᮆ ᮈ ᮉ"
495 AF_BLUE_STRING_SUNDANESE_DESCENDER
496 "ᮼ ᳄"
497
498 AF_BLUE_STRING_TAI_VIET_TOP
499 "ꪆ ꪔ ꪒ ꪖ ꪫ"
500 AF_BLUE_STRING_TAI_VIET_BOTTOM
501 "ꪉ ꪫ ꪮ"
502
503 AF_BLUE_STRING_TAMIL_TOP
504 "உ ஒ ஓ ற ஈ க ங ச"
505 AF_BLUE_STRING_TAMIL_BOTTOM
506 "க ச ல ஶ உ ங ட ப"
507
508 AF_BLUE_STRING_TELUGU_TOP
509 "ఇ ఌ ఙ ఞ ణ ఱ ౯"
510 AF_BLUE_STRING_TELUGU_BOTTOM
511 "అ క చ ర ఽ ౨ ౬"
512
513 AF_BLUE_STRING_THAI_TOP
514 "บ เ แ อ ก า"
515 AF_BLUE_STRING_THAI_BOTTOM
516 "บ ป ษ ฯ อ ย ฮ"
517 AF_BLUE_STRING_THAI_ASCENDER
518 "ป ฝ ฟ"
519 AF_BLUE_STRING_THAI_LARGE_ASCENDER
520 "โ ใ ไ"
521 AF_BLUE_STRING_THAI_DESCENDER
522 "ฎ ฏ ฤ ฦ"
523 AF_BLUE_STRING_THAI_LARGE_DESCENDER
524 "ญ ฐ"
525 AF_BLUE_STRING_THAI_DIGIT_TOP
526 "๐ ๑ ๓"
527
528 AF_BLUE_STRING_TIFINAGH
529 "ⵔ ⵙ ⵛ ⵞ ⴵ ⴼ ⴹ ⵎ"
530
531 AF_BLUE_STRING_VAI_TOP
532 "ꗍ ꘖ ꘙ ꘜ ꖜ ꖝ ꔅ ꕢ"
533 AF_BLUE_STRING_VAI_BOTTOM
534 "ꗍ ꘖ ꘙ ꗞ ꔅ ꕢ ꖜ ꔆ"
535
536
537 #ifdef AF_CONFIG_OPTION_CJK
538
539 AF_BLUE_STRING_CJK_TOP
540 "他 们 你 來 們 到 和 地"
541 " 对 對 就 席 我 时 時 會"
542 " 来 為 能 舰 說 说 这 這"
543 " 齊 |"
544 " 军 同 已 愿 既 星 是 景"
545 " 民 照 现 現 理 用 置 要"
546 " 軍 那 配 里 開 雷 露 面"
547 " 顾"
548 AF_BLUE_STRING_CJK_BOTTOM
549 "个 为 人 他 以 们 你 來"
550 " 個 們 到 和 大 对 對 就"
551 " 我 时 時 有 来 為 要 說"
552 " 说 |"
553 " 主 些 因 它 想 意 理 生"
554 " 當 看 着 置 者 自 著 裡"
555 " 过 还 进 進 過 道 還 里"
556 " 面"
557
558 #ifdef AF_CONFIG_OPTION_CJK_BLUE_HANI_VERT
559
560 AF_BLUE_STRING_CJK_LEFT
561 " 些 们 你 來 們 到 和 地"
562 " 她 将 將 就 年 得 情 最"
563 " 样 樣 理 能 說 说 这 這"
564 " 通 |"
565 " 即 吗 吧 听 呢 品 响 嗎"
566 " 师 師 收 断 斷 明 眼 間"
567 " 间 际 陈 限 除 陳 随 際"
568 " 隨"
569 AF_BLUE_STRING_CJK_RIGHT
570 "事 前 學 将 將 情 想 或"
571 " 政 斯 新 样 樣 民 沒 没"
572 " 然 特 现 現 球 第 經 谁"
573 " 起 |"
574 " 例 別 别 制 动 動 吗 嗎"
575 " 增 指 明 朝 期 构 物 确"
576 " 种 調 调 費 费 那 都 間"
577 " 间"
578
579 #endif /* AF_CONFIG_OPTION_CJK_BLUE_HANI_VERT */
580
581 #endif /* AF_CONFIG_OPTION_CJK */
582
583
584 // The blue zone stringsets, as used in the script styles, cf. `afstyles.h'.
585 //
586 // The AF_BLUE_PROPERTY_XXX flags are defined in `afblue.h'; here some
587 // explanations.
588 //
589 // A blue zone in general is defined by a reference and an overshoot line.
590 // During the hinting process, all coordinate values between those two lines
591 // are set equal to the reference value, provided that the blue zone is not
592 // wider than 0.75 pixels (otherwise the blue zone gets ignored). All
593 // entries must have `AF_BLUE_STRING_MAX' as the final line.
594 //
595 // During the glyph analysis, edges are sorted from bottom to top, and then
596 // sequentially checked, edge by edge, against the blue zones in the order
597 // given below.
598 //
599 //
600 // latin auto-hinter
601 // -----------------
602 //
603 // Characters in a blue string are automatically classified as having a flat
604 // (reference) or a round (overshoot) extremum. The blue zone is then set
605 // up by the mean values of all flat extrema and all round extrema,
606 // respectively. Only horizontal blue zones (i.e., adjusting vertical
607 // coordinate values) are supported.
608 //
609 // Some scripts like Khmer need character composition to get all necessary
610 // blue zones, since Unicode only provides an abstract data model that
611 // doesn't represent all possible glyph shapes. For such character
612 // clusters, the HarfBuzz library is used to convert them into the
613 // corresponding glyphs. The largest glyph element (where `largest' can be
614 // either `largest ascender' or `largest descender') then defines the
615 // corresponding flat or round extremum.
616 //
617 // For the latin auto-hinter, the overshoot should be larger than the
618 // reference for top zones, and vice versa for bottom zones.
619 //
620 // LATIN_TOP
621 // Take the maximum flat and round coordinate values of the blue string
622 // characters for computing the blue zone's reference and overshoot
623 // values.
624 //
625 // If not set, take the minimum values.
626 //
627 // Mutually exclusive with `LATIN_SUB_TOP'.
628 //
629 // LATIN_SUB_TOP
630 // For all glyphs of a character cluster, compute the maximum flat
631 // and round coordinate values of each component, then take the
632 // smallest of the maximum values. The idea is to get the top of
633 // subscript glyphs, as used in Khmer, for example. Note that
634 // this mechanism doesn't work for ordinary ligatures.
635 //
636 // This flags indicates a secondary blue zone: It gets removed if
637 // there is a non-LATIN_SUB_TOP blue zone at the same coordinate
638 // value (after scaling).
639 //
640 // Mutually exclusive with `LATIN_TOP'.
641 //
642 // LATIN_NEUTRAL
643 // Ignore round extrema and define the blue zone with flat values only.
644 // Both top and bottom of contours can match. This is useful for
645 // scripts like Devanagari where vowel signs attach to the base
646 // character and are implemented as components of composite glyphs.
647 //
648 // If not set, both round and flat extrema are taken into account.
649 // Additionally, only the top or the bottom of a contour can match,
650 // depending on the LATIN_TOP flag.
651 //
652 // Neutral blue zones should always follow non-neutral blue zones.
653 //
654 // LATIN_X_HEIGHT
655 // Scale all glyphs vertically from the corresponding script to make the
656 // reference line of this blue zone align on the grid. The scaling
657 // takes place before all other blue zones get aligned to the grid.
658 // Only one blue character string of a script style can have this flag.
659 //
660 // LATIN_LONG
661 // Apply an additional constraint for blue zone values: Don't
662 // necessarily use the extremum as-is but a segment of the topmost (or
663 // bottommost) contour that is longer than a heuristic threshold, and
664 // which is not too far away vertically from the real extremum. This
665 // ensures that small bumps in the outline are ignored (for example, the
666 // `vertical serifs' found in many Hebrew glyph designs).
667 //
668 // The segment must be at least EM/25 font units long, and the distance
669 // to the extremum must be smaller than EM/4.
670 //
671 //
672 // cjk auto-hinter
673 // ---------------
674 //
675 // Characters in a blue string are *not* automatically classified. Instead,
676 // first come the characters used for the overshoot value, then the
677 // character `|', then the characters used for the reference value
678 // (everything separated by space characters). The blue zone is then set up
679 // by the mean values of all reference values and all overshoot values,
680 // respectively. Both horizontal and vertical blue zones (i.e., adjusting
681 // vertical and horizontal coordinate values, respectively) are supported.
682 //
683 // For the cjk auto-hinter, the overshoot should be smaller than the
684 // reference for top zones, and vice versa for bottom zones.
685 //
686 // CJK_TOP
687 // Take the maximum flat and round coordinate values of the blue string
688 // characters. If not set, take the minimum values.
689 //
690 // CJK_RIGHT
691 // A synonym for CJK_TOP. If CJK_HORIZ is set, this flag indicates the
692 // right blue zone, taking horizontal maximum values.
693 //
694 // CJK_HORIZ
695 // Define a blue zone for horizontal hinting (i.e., vertical blue
696 // zones). If not set, this is a blue zone for vertical hinting.
697
698
699 AF_BLUE_STRINGSET_ENUM AF_BLUE_STRINGSETS_ARRAY AF_BLUE_STRINGSET_MAX_LEN:
700
701 AF_BLUE_STRINGSET_ADLM
702 { AF_BLUE_STRING_ADLAM_CAPITAL_TOP, AF_BLUE_PROPERTY_LATIN_TOP }
703 { AF_BLUE_STRING_ADLAM_CAPITAL_BOTTOM, 0 }
704 { AF_BLUE_STRING_ADLAM_SMALL_TOP, AF_BLUE_PROPERTY_LATIN_TOP |
705 AF_BLUE_PROPERTY_LATIN_X_HEIGHT }
706 { AF_BLUE_STRING_ADLAM_SMALL_BOTTOM, 0 }
707 { AF_BLUE_STRING_MAX, 0 }
708
709 AF_BLUE_STRINGSET_ARAB
710 { AF_BLUE_STRING_ARABIC_TOP, AF_BLUE_PROPERTY_LATIN_TOP }
711 { AF_BLUE_STRING_ARABIC_BOTTOM, 0 }
712 { AF_BLUE_STRING_ARABIC_JOIN, AF_BLUE_PROPERTY_LATIN_NEUTRAL }
713 { AF_BLUE_STRING_MAX, 0 }
714
715 AF_BLUE_STRINGSET_ARMN
716 { AF_BLUE_STRING_ARMENIAN_CAPITAL_TOP, AF_BLUE_PROPERTY_LATIN_TOP }
717 { AF_BLUE_STRING_ARMENIAN_CAPITAL_BOTTOM, 0 }
718 { AF_BLUE_STRING_ARMENIAN_SMALL_ASCENDER, AF_BLUE_PROPERTY_LATIN_TOP }
719 { AF_BLUE_STRING_ARMENIAN_SMALL_TOP, AF_BLUE_PROPERTY_LATIN_TOP |
720 AF_BLUE_PROPERTY_LATIN_X_HEIGHT }
721 { AF_BLUE_STRING_ARMENIAN_SMALL_BOTTOM, 0 }
722 { AF_BLUE_STRING_ARMENIAN_SMALL_DESCENDER, 0 }
723 { AF_BLUE_STRING_MAX, 0 }
724
725 AF_BLUE_STRINGSET_AVST
726 { AF_BLUE_STRING_AVESTAN_TOP, AF_BLUE_PROPERTY_LATIN_TOP }
727 { AF_BLUE_STRING_AVESTAN_BOTTOM, 0 }
728 { AF_BLUE_STRING_MAX, 0 }
729
730 AF_BLUE_STRINGSET_BAMU
731 { AF_BLUE_STRING_BAMUM_TOP, AF_BLUE_PROPERTY_LATIN_TOP }
732 { AF_BLUE_STRING_BAMUM_BOTTOM, 0 }
733 { AF_BLUE_STRING_MAX, 0 }
734
735 AF_BLUE_STRINGSET_BENG
736 { AF_BLUE_STRING_BENGALI_TOP, AF_BLUE_PROPERTY_LATIN_TOP }
737 { AF_BLUE_STRING_BENGALI_HEAD, AF_BLUE_PROPERTY_LATIN_TOP }
738 { AF_BLUE_STRING_BENGALI_BASE, AF_BLUE_PROPERTY_LATIN_TOP |
739 AF_BLUE_PROPERTY_LATIN_NEUTRAL |
740 AF_BLUE_PROPERTY_LATIN_X_HEIGHT }
741 { AF_BLUE_STRING_BENGALI_BASE, 0 }
742 { AF_BLUE_STRING_MAX, 0 }
743
744 AF_BLUE_STRINGSET_BUHD
745 { AF_BLUE_STRING_BUHID_TOP, AF_BLUE_PROPERTY_LATIN_TOP }
746 { AF_BLUE_STRING_BUHID_LARGE, AF_BLUE_PROPERTY_LATIN_TOP }
747 { AF_BLUE_STRING_BUHID_SMALL, AF_BLUE_PROPERTY_LATIN_TOP |
748 AF_BLUE_PROPERTY_LATIN_X_HEIGHT }
749 { AF_BLUE_STRING_BUHID_BOTTOM, 0 }
750 { AF_BLUE_STRING_MAX, 0 }
751
752 AF_BLUE_STRINGSET_CAKM
753 { AF_BLUE_STRING_CHAKMA_TOP, AF_BLUE_PROPERTY_LATIN_TOP }
754 { AF_BLUE_STRING_CHAKMA_BOTTOM, 0 }
755 { AF_BLUE_STRING_CHAKMA_DESCENDER, 0 }
756 { AF_BLUE_STRING_MAX, 0 }
757
758 AF_BLUE_STRINGSET_CANS
759 { AF_BLUE_STRING_CANADIAN_SYLLABICS_TOP, AF_BLUE_PROPERTY_LATIN_TOP }
760 { AF_BLUE_STRING_CANADIAN_SYLLABICS_BOTTOM, 0 }
761 { AF_BLUE_STRING_CANADIAN_SYLLABICS_SMALL_TOP, AF_BLUE_PROPERTY_LATIN_TOP |
762 AF_BLUE_PROPERTY_LATIN_X_HEIGHT }
763 { AF_BLUE_STRING_CANADIAN_SYLLABICS_SMALL_BOTTOM, 0 }
764 { AF_BLUE_STRING_CANADIAN_SYLLABICS_SUPS_TOP, AF_BLUE_PROPERTY_LATIN_TOP }
765 { AF_BLUE_STRING_CANADIAN_SYLLABICS_SUPS_BOTTOM, 0 }
766 { AF_BLUE_STRING_MAX, 0 }
767
768 AF_BLUE_STRINGSET_CARI
769 { AF_BLUE_STRING_CARIAN_TOP, AF_BLUE_PROPERTY_LATIN_TOP }
770 { AF_BLUE_STRING_CARIAN_BOTTOM, 0 }
771 { AF_BLUE_STRING_MAX, 0 }
772
773 AF_BLUE_STRINGSET_CHER
774 { AF_BLUE_STRING_CHEROKEE_CAPITAL, AF_BLUE_PROPERTY_LATIN_TOP }
775 { AF_BLUE_STRING_CHEROKEE_CAPITAL, 0 }
776 { AF_BLUE_STRING_CHEROKEE_SMALL_ASCENDER, AF_BLUE_PROPERTY_LATIN_TOP }
777 { AF_BLUE_STRING_CHEROKEE_SMALL, AF_BLUE_PROPERTY_LATIN_TOP |
778 AF_BLUE_PROPERTY_LATIN_X_HEIGHT }
779 { AF_BLUE_STRING_CHEROKEE_SMALL, 0 }
780 { AF_BLUE_STRING_CHEROKEE_SMALL_DESCENDER, 0 }
781 { AF_BLUE_STRING_MAX, 0 }
782
783 AF_BLUE_STRINGSET_COPT
784 { AF_BLUE_STRING_COPTIC_CAPITAL_TOP, AF_BLUE_PROPERTY_LATIN_TOP }
785 { AF_BLUE_STRING_COPTIC_CAPITAL_BOTTOM, 0 }
786 { AF_BLUE_STRING_COPTIC_SMALL_TOP, AF_BLUE_PROPERTY_LATIN_TOP |
787 AF_BLUE_PROPERTY_LATIN_X_HEIGHT }
788 { AF_BLUE_STRING_COPTIC_SMALL_BOTTOM, 0 }
789 { AF_BLUE_STRING_MAX, 0 }
790
791 AF_BLUE_STRINGSET_CPRT
792 { AF_BLUE_STRING_CYPRIOT_TOP, AF_BLUE_PROPERTY_LATIN_TOP }
793 { AF_BLUE_STRING_CYPRIOT_BOTTOM, 0 }
794 { AF_BLUE_STRING_CYPRIOT_SMALL, AF_BLUE_PROPERTY_LATIN_TOP }
795 { AF_BLUE_STRING_CYPRIOT_SMALL, 0 }
796 { AF_BLUE_STRING_MAX, 0 }
797
798 AF_BLUE_STRINGSET_CYRL
799 { AF_BLUE_STRING_CYRILLIC_CAPITAL_TOP, AF_BLUE_PROPERTY_LATIN_TOP }
800 { AF_BLUE_STRING_CYRILLIC_CAPITAL_BOTTOM, 0 }
801 { AF_BLUE_STRING_CYRILLIC_SMALL, AF_BLUE_PROPERTY_LATIN_TOP |
802 AF_BLUE_PROPERTY_LATIN_X_HEIGHT }
803 { AF_BLUE_STRING_CYRILLIC_SMALL, 0 }
804 { AF_BLUE_STRING_CYRILLIC_SMALL_DESCENDER, 0 }
805 { AF_BLUE_STRING_MAX, 0 }
806
807 AF_BLUE_STRINGSET_DEVA
808 { AF_BLUE_STRING_DEVANAGARI_TOP, AF_BLUE_PROPERTY_LATIN_TOP }
809 { AF_BLUE_STRING_DEVANAGARI_HEAD, AF_BLUE_PROPERTY_LATIN_TOP }
810 { AF_BLUE_STRING_DEVANAGARI_BASE, AF_BLUE_PROPERTY_LATIN_TOP |
811 AF_BLUE_PROPERTY_LATIN_NEUTRAL |
812 AF_BLUE_PROPERTY_LATIN_X_HEIGHT }
813 { AF_BLUE_STRING_DEVANAGARI_BASE, 0 }
814 { AF_BLUE_STRING_DEVANAGARI_BOTTOM, 0 }
815 { AF_BLUE_STRING_MAX, 0 }
816
817 AF_BLUE_STRINGSET_DSRT
818 { AF_BLUE_STRING_DESERET_CAPITAL_TOP, AF_BLUE_PROPERTY_LATIN_TOP }
819 { AF_BLUE_STRING_DESERET_CAPITAL_BOTTOM, 0 }
820 { AF_BLUE_STRING_DESERET_SMALL_TOP, AF_BLUE_PROPERTY_LATIN_TOP |
821 AF_BLUE_PROPERTY_LATIN_X_HEIGHT }
822 { AF_BLUE_STRING_DESERET_SMALL_BOTTOM, 0 }
823 { AF_BLUE_STRING_MAX, 0 }
824
825 AF_BLUE_STRINGSET_ETHI
826 { AF_BLUE_STRING_ETHIOPIC_TOP, AF_BLUE_PROPERTY_LATIN_TOP }
827 { AF_BLUE_STRING_ETHIOPIC_BOTTOM, 0 }
828 { AF_BLUE_STRING_MAX, 0 }
829
830 AF_BLUE_STRINGSET_GEOR
831 { AF_BLUE_STRING_GEORGIAN_MKHEDRULI_TOP, AF_BLUE_PROPERTY_LATIN_TOP |
832 AF_BLUE_PROPERTY_LATIN_X_HEIGHT }
833 { AF_BLUE_STRING_GEORGIAN_MKHEDRULI_BOTTOM, 0 }
834 { AF_BLUE_STRING_GEORGIAN_MKHEDRULI_ASCENDER, AF_BLUE_PROPERTY_LATIN_TOP }
835 { AF_BLUE_STRING_GEORGIAN_MKHEDRULI_DESCENDER, 0 }
836 { AF_BLUE_STRING_GEORGIAN_MTAVRULI_TOP, AF_BLUE_PROPERTY_LATIN_TOP }
837 { AF_BLUE_STRING_GEORGIAN_MTAVRULI_BOTTOM, 0 }
838 { AF_BLUE_STRING_MAX, 0 }
839
840 AF_BLUE_STRINGSET_GEOK
841 { AF_BLUE_STRING_GEORGIAN_ASOMTAVRULI_TOP, AF_BLUE_PROPERTY_LATIN_TOP }
842 { AF_BLUE_STRING_GEORGIAN_ASOMTAVRULI_BOTTOM, 0 }
843 { AF_BLUE_STRING_GEORGIAN_NUSKHURI_TOP, AF_BLUE_PROPERTY_LATIN_TOP |
844 AF_BLUE_PROPERTY_LATIN_X_HEIGHT }
845 { AF_BLUE_STRING_GEORGIAN_NUSKHURI_BOTTOM, 0 }
846 { AF_BLUE_STRING_GEORGIAN_NUSKHURI_ASCENDER, AF_BLUE_PROPERTY_LATIN_TOP }
847 { AF_BLUE_STRING_GEORGIAN_NUSKHURI_DESCENDER, 0 }
848 { AF_BLUE_STRING_MAX, 0 }
849
850 AF_BLUE_STRINGSET_GLAG
851 { AF_BLUE_STRING_GLAGOLITIC_CAPITAL_TOP, AF_BLUE_PROPERTY_LATIN_TOP }
852 { AF_BLUE_STRING_GLAGOLITIC_CAPITAL_BOTTOM, 0 }
853 { AF_BLUE_STRING_GLAGOLITIC_SMALL_TOP, AF_BLUE_PROPERTY_LATIN_TOP |
854 AF_BLUE_PROPERTY_LATIN_X_HEIGHT }
855 { AF_BLUE_STRING_GLAGOLITIC_SMALL_BOTTOM, 0 }
856 { AF_BLUE_STRING_MAX, 0 }
857
858 AF_BLUE_STRINGSET_GOTH
859 { AF_BLUE_STRING_GOTHIC_TOP, AF_BLUE_PROPERTY_LATIN_TOP }
860 { AF_BLUE_STRING_GOTHIC_BOTTOM, 0 }
861 { AF_BLUE_STRING_MAX, 0 }
862
863 AF_BLUE_STRINGSET_GREK
864 { AF_BLUE_STRING_GREEK_CAPITAL_TOP, AF_BLUE_PROPERTY_LATIN_TOP }
865 { AF_BLUE_STRING_GREEK_CAPITAL_BOTTOM, 0 }
866 { AF_BLUE_STRING_GREEK_SMALL_BETA_TOP, AF_BLUE_PROPERTY_LATIN_TOP }
867 { AF_BLUE_STRING_GREEK_SMALL, AF_BLUE_PROPERTY_LATIN_TOP |
868 AF_BLUE_PROPERTY_LATIN_X_HEIGHT }
869 { AF_BLUE_STRING_GREEK_SMALL, 0 }
870 { AF_BLUE_STRING_GREEK_SMALL_DESCENDER, 0 }
871 { AF_BLUE_STRING_MAX, 0 }
872
873 AF_BLUE_STRINGSET_GUJR
874 { AF_BLUE_STRING_GUJARATI_TOP, AF_BLUE_PROPERTY_LATIN_TOP |
875 AF_BLUE_PROPERTY_LATIN_X_HEIGHT }
876 { AF_BLUE_STRING_GUJARATI_BOTTOM, 0 }
877 { AF_BLUE_STRING_GUJARATI_ASCENDER, AF_BLUE_PROPERTY_LATIN_TOP }
878 { AF_BLUE_STRING_GUJARATI_DESCENDER, 0 }
879 { AF_BLUE_STRING_GUJARATI_DIGIT_TOP, AF_BLUE_PROPERTY_LATIN_TOP }
880 { AF_BLUE_STRING_MAX, 0 }
881
882 AF_BLUE_STRINGSET_GURU
883 { AF_BLUE_STRING_GURMUKHI_TOP, AF_BLUE_PROPERTY_LATIN_TOP }
884 { AF_BLUE_STRING_GURMUKHI_HEAD, AF_BLUE_PROPERTY_LATIN_TOP }
885 { AF_BLUE_STRING_GURMUKHI_BASE, AF_BLUE_PROPERTY_LATIN_TOP |
886 AF_BLUE_PROPERTY_LATIN_NEUTRAL |
887 AF_BLUE_PROPERTY_LATIN_X_HEIGHT }
888 { AF_BLUE_STRING_GURMUKHI_BOTTOM, 0 }
889 { AF_BLUE_STRING_GURMUKHI_DIGIT_TOP, AF_BLUE_PROPERTY_LATIN_TOP }
890 { AF_BLUE_STRING_MAX, 0 }
891
892 AF_BLUE_STRINGSET_HEBR
893 { AF_BLUE_STRING_HEBREW_TOP, AF_BLUE_PROPERTY_LATIN_TOP |
894 AF_BLUE_PROPERTY_LATIN_LONG }
895 { AF_BLUE_STRING_HEBREW_BOTTOM, 0 }
896 { AF_BLUE_STRING_HEBREW_DESCENDER, 0 }
897 { AF_BLUE_STRING_MAX, 0 }
898
899 AF_BLUE_STRINGSET_KNDA
900 { AF_BLUE_STRING_KANNADA_TOP, AF_BLUE_PROPERTY_LATIN_TOP }
901 { AF_BLUE_STRING_KANNADA_BOTTOM, 0 }
902 { AF_BLUE_STRING_MAX, 0 }
903
904 AF_BLUE_STRINGSET_KALI
905 { AF_BLUE_STRING_KAYAH_LI_TOP, AF_BLUE_PROPERTY_LATIN_TOP |
906 AF_BLUE_PROPERTY_LATIN_X_HEIGHT }
907 { AF_BLUE_STRING_KAYAH_LI_BOTTOM, 0 }
908 { AF_BLUE_STRING_KAYAH_LI_ASCENDER, AF_BLUE_PROPERTY_LATIN_TOP }
909 { AF_BLUE_STRING_KAYAH_LI_DESCENDER, 0 }
910 { AF_BLUE_STRING_KAYAH_LI_LARGE_DESCENDER, 0 }
911 { AF_BLUE_STRING_MAX, 0 }
912
913 AF_BLUE_STRINGSET_KHMR
914 { AF_BLUE_STRING_KHMER_TOP, AF_BLUE_PROPERTY_LATIN_TOP |
915 AF_BLUE_PROPERTY_LATIN_X_HEIGHT }
916 { AF_BLUE_STRING_KHMER_SUBSCRIPT_TOP, AF_BLUE_PROPERTY_LATIN_SUB_TOP }
917 { AF_BLUE_STRING_KHMER_BOTTOM, 0 }
918 { AF_BLUE_STRING_KHMER_DESCENDER, 0 }
919 { AF_BLUE_STRING_KHMER_LARGE_DESCENDER, 0 }
920 { AF_BLUE_STRING_MAX, 0 }
921
922 AF_BLUE_STRINGSET_KHMS
923 { AF_BLUE_STRING_KHMER_SYMBOLS_WAXING_TOP, AF_BLUE_PROPERTY_LATIN_TOP |
924 AF_BLUE_PROPERTY_LATIN_X_HEIGHT }
925 { AF_BLUE_STRING_KHMER_SYMBOLS_WANING_BOTTOM, 0 }
926 { AF_BLUE_STRING_MAX, 0 }
927
928 AF_BLUE_STRINGSET_LAO
929 { AF_BLUE_STRING_LAO_TOP, AF_BLUE_PROPERTY_LATIN_TOP |
930 AF_BLUE_PROPERTY_LATIN_X_HEIGHT }
931 { AF_BLUE_STRING_LAO_BOTTOM, 0 }
932 { AF_BLUE_STRING_LAO_ASCENDER, AF_BLUE_PROPERTY_LATIN_TOP }
933 { AF_BLUE_STRING_LAO_LARGE_ASCENDER, AF_BLUE_PROPERTY_LATIN_TOP }
934 { AF_BLUE_STRING_LAO_DESCENDER, 0 }
935 { AF_BLUE_STRING_MAX, 0 }
936
937 AF_BLUE_STRINGSET_LATN
938 { AF_BLUE_STRING_LATIN_CAPITAL_TOP, AF_BLUE_PROPERTY_LATIN_TOP }
939 { AF_BLUE_STRING_LATIN_CAPITAL_BOTTOM, 0 }
940 { AF_BLUE_STRING_LATIN_SMALL_F_TOP, AF_BLUE_PROPERTY_LATIN_TOP }
941 { AF_BLUE_STRING_LATIN_SMALL_TOP, AF_BLUE_PROPERTY_LATIN_TOP |
942 AF_BLUE_PROPERTY_LATIN_X_HEIGHT }
943 { AF_BLUE_STRING_LATIN_SMALL_BOTTOM, 0 }
944 { AF_BLUE_STRING_LATIN_SMALL_DESCENDER, 0 }
945 { AF_BLUE_STRING_MAX, 0 }
946
947 AF_BLUE_STRINGSET_LATB
948 { AF_BLUE_STRING_LATIN_SUBS_CAPITAL_TOP, AF_BLUE_PROPERTY_LATIN_TOP }
949 { AF_BLUE_STRING_LATIN_SUBS_CAPITAL_BOTTOM, 0 }
950 { AF_BLUE_STRING_LATIN_SUBS_SMALL_F_TOP, AF_BLUE_PROPERTY_LATIN_TOP }
951 { AF_BLUE_STRING_LATIN_SUBS_SMALL, AF_BLUE_PROPERTY_LATIN_TOP |
952 AF_BLUE_PROPERTY_LATIN_X_HEIGHT }
953 { AF_BLUE_STRING_LATIN_SUBS_SMALL, 0 }
954 { AF_BLUE_STRING_LATIN_SUBS_SMALL_DESCENDER, 0 }
955 { AF_BLUE_STRING_MAX, 0 }
956
957 AF_BLUE_STRINGSET_LATP
958 { AF_BLUE_STRING_LATIN_SUPS_CAPITAL_TOP, AF_BLUE_PROPERTY_LATIN_TOP }
959 { AF_BLUE_STRING_LATIN_SUPS_CAPITAL_BOTTOM, 0 }
960 { AF_BLUE_STRING_LATIN_SUPS_SMALL_F_TOP, AF_BLUE_PROPERTY_LATIN_TOP }
961 { AF_BLUE_STRING_LATIN_SUPS_SMALL, AF_BLUE_PROPERTY_LATIN_TOP |
962 AF_BLUE_PROPERTY_LATIN_X_HEIGHT }
963 { AF_BLUE_STRING_LATIN_SUPS_SMALL, 0 }
964 { AF_BLUE_STRING_LATIN_SUPS_SMALL_DESCENDER, 0 }
965 { AF_BLUE_STRING_MAX, 0 }
966
967 AF_BLUE_STRINGSET_LISU
968 { AF_BLUE_STRING_LISU_TOP, AF_BLUE_PROPERTY_LATIN_TOP }
969 { AF_BLUE_STRING_LISU_BOTTOM, 0 }
970 { AF_BLUE_STRING_MAX, 0 }
971
972 AF_BLUE_STRINGSET_MLYM
973 { AF_BLUE_STRING_MALAYALAM_TOP, AF_BLUE_PROPERTY_LATIN_TOP }
974 { AF_BLUE_STRING_MALAYALAM_BOTTOM, 0 }
975 { AF_BLUE_STRING_MAX, 0 }
976
977 AF_BLUE_STRINGSET_MEDF
978 { AF_BLUE_STRING_MEDEFAIDRIN_CAPITAL_TOP, AF_BLUE_PROPERTY_LATIN_TOP }
979 { AF_BLUE_STRING_MEDEFAIDRIN_CAPITAL_BOTTOM, 0 }
980 { AF_BLUE_STRING_MEDEFAIDRIN_SMALL_F_TOP, AF_BLUE_PROPERTY_LATIN_TOP }
981 { AF_BLUE_STRING_MEDEFAIDRIN_SMALL_TOP, AF_BLUE_PROPERTY_LATIN_TOP |
982 AF_BLUE_PROPERTY_LATIN_X_HEIGHT }
983 { AF_BLUE_STRING_MEDEFAIDRIN_SMALL_BOTTOM, 0 }
984 { AF_BLUE_STRING_MEDEFAIDRIN_SMALL_DESCENDER, 0 }
985 { AF_BLUE_STRING_MEDEFAIDRIN_DIGIT_TOP, AF_BLUE_PROPERTY_LATIN_TOP }
986 { AF_BLUE_STRING_MAX, 0 }
987
988 AF_BLUE_STRINGSET_MONG
989 { AF_BLUE_STRING_MONGOLIAN_TOP_BASE, AF_BLUE_PROPERTY_LATIN_TOP }
990 { AF_BLUE_STRING_MONGOLIAN_BOTTOM_BASE, 0 }
991 { AF_BLUE_STRING_MAX, 0 }
992
993 AF_BLUE_STRINGSET_MYMR
994 { AF_BLUE_STRING_MYANMAR_TOP, AF_BLUE_PROPERTY_LATIN_TOP |
995 AF_BLUE_PROPERTY_LATIN_X_HEIGHT }
996 { AF_BLUE_STRING_MYANMAR_BOTTOM, 0 }
997 { AF_BLUE_STRING_MYANMAR_ASCENDER, AF_BLUE_PROPERTY_LATIN_TOP }
998 { AF_BLUE_STRING_MYANMAR_DESCENDER, 0 }
999 { AF_BLUE_STRING_MAX, 0 }
1000
1001 AF_BLUE_STRINGSET_NKOO
1002 { AF_BLUE_STRING_NKO_TOP, AF_BLUE_PROPERTY_LATIN_TOP }
1003 { AF_BLUE_STRING_NKO_BOTTOM, 0 }
1004 { AF_BLUE_STRING_NKO_SMALL_TOP, AF_BLUE_PROPERTY_LATIN_TOP |
1005 AF_BLUE_PROPERTY_LATIN_X_HEIGHT }
1006 { AF_BLUE_STRING_NKO_SMALL_BOTTOM, 0 }
1007 { AF_BLUE_STRING_MAX, 0 }
1008
1009 AF_BLUE_STRINGSET_NONE
1010 { AF_BLUE_STRING_MAX, 0 }
1011
1012 AF_BLUE_STRINGSET_OLCK
1013 { AF_BLUE_STRING_OL_CHIKI, AF_BLUE_PROPERTY_LATIN_TOP }
1014 { AF_BLUE_STRING_OL_CHIKI, 0 }
1015 { AF_BLUE_STRING_MAX, 0 }
1016
1017 AF_BLUE_STRINGSET_ORKH
1018 { AF_BLUE_STRING_OLD_TURKIC_TOP, AF_BLUE_PROPERTY_LATIN_TOP }
1019 { AF_BLUE_STRING_OLD_TURKIC_BOTTOM, 0 }
1020 { AF_BLUE_STRING_MAX, 0 }
1021
1022 AF_BLUE_STRINGSET_OSGE
1023 { AF_BLUE_STRING_OSAGE_CAPITAL_TOP, AF_BLUE_PROPERTY_LATIN_TOP }
1024 { AF_BLUE_STRING_OSAGE_CAPITAL_BOTTOM, 0 }
1025 { AF_BLUE_STRING_OSAGE_CAPITAL_DESCENDER, 0 }
1026 { AF_BLUE_STRING_OSAGE_SMALL_TOP, AF_BLUE_PROPERTY_LATIN_TOP |
1027 AF_BLUE_PROPERTY_LATIN_X_HEIGHT }
1028 { AF_BLUE_STRING_OSAGE_SMALL_BOTTOM, 0 }
1029 { AF_BLUE_STRING_OSAGE_SMALL_ASCENDER, AF_BLUE_PROPERTY_LATIN_TOP }
1030 { AF_BLUE_STRING_OSAGE_SMALL_DESCENDER, 0 }
1031 { AF_BLUE_STRING_MAX, 0 }
1032
1033 AF_BLUE_STRINGSET_OSMA
1034 { AF_BLUE_STRING_OSMANYA_TOP, AF_BLUE_PROPERTY_LATIN_TOP }
1035 { AF_BLUE_STRING_OSMANYA_BOTTOM, 0 }
1036 { AF_BLUE_STRING_MAX, 0 }
1037
1038 AF_BLUE_STRINGSET_ROHG
1039 { AF_BLUE_STRING_ROHINGYA_TOP, AF_BLUE_PROPERTY_LATIN_TOP }
1040 { AF_BLUE_STRING_ROHINGYA_BOTTOM, 0 }
1041 { AF_BLUE_STRING_ROHINGYA_JOIN, AF_BLUE_PROPERTY_LATIN_NEUTRAL }
1042 { AF_BLUE_STRING_MAX, 0 }
1043
1044 AF_BLUE_STRINGSET_SAUR
1045 { AF_BLUE_STRING_SAURASHTRA_TOP, AF_BLUE_PROPERTY_LATIN_TOP }
1046 { AF_BLUE_STRING_SAURASHTRA_BOTTOM, 0 }
1047 { AF_BLUE_STRING_MAX, 0 }
1048
1049 AF_BLUE_STRINGSET_SHAW
1050 { AF_BLUE_STRING_SHAVIAN_TOP, AF_BLUE_PROPERTY_LATIN_TOP }
1051 { AF_BLUE_STRING_SHAVIAN_BOTTOM, 0 }
1052 { AF_BLUE_STRING_SHAVIAN_DESCENDER, 0 }
1053 { AF_BLUE_STRING_SHAVIAN_SMALL_TOP, AF_BLUE_PROPERTY_LATIN_TOP |
1054 AF_BLUE_PROPERTY_LATIN_X_HEIGHT }
1055 { AF_BLUE_STRING_SHAVIAN_SMALL_BOTTOM, 0 }
1056 { AF_BLUE_STRING_MAX, 0 }
1057
1058 AF_BLUE_STRINGSET_SINH
1059 { AF_BLUE_STRING_SINHALA_TOP, AF_BLUE_PROPERTY_LATIN_TOP }
1060 { AF_BLUE_STRING_SINHALA_BOTTOM, 0 }
1061 { AF_BLUE_STRING_SINHALA_DESCENDER, 0 }
1062 { AF_BLUE_STRING_MAX, 0 }
1063
1064 AF_BLUE_STRINGSET_SUND
1065 { AF_BLUE_STRING_SUNDANESE_TOP, AF_BLUE_PROPERTY_LATIN_TOP }
1066 { AF_BLUE_STRING_SUNDANESE_BOTTOM, 0 }
1067 { AF_BLUE_STRING_SUNDANESE_DESCENDER, 0 }
1068 { AF_BLUE_STRING_MAX, 0 }
1069
1070 AF_BLUE_STRINGSET_TAML
1071 { AF_BLUE_STRING_TAMIL_TOP, AF_BLUE_PROPERTY_LATIN_TOP }
1072 { AF_BLUE_STRING_TAMIL_BOTTOM, 0 }
1073 { AF_BLUE_STRING_MAX, 0 }
1074
1075 AF_BLUE_STRINGSET_TAVT
1076 { AF_BLUE_STRING_TAI_VIET_TOP, AF_BLUE_PROPERTY_LATIN_TOP }
1077 { AF_BLUE_STRING_TAI_VIET_BOTTOM, 0 }
1078 { AF_BLUE_STRING_MAX, 0 }
1079
1080 AF_BLUE_STRINGSET_TELU
1081 { AF_BLUE_STRING_TELUGU_TOP, AF_BLUE_PROPERTY_LATIN_TOP }
1082 { AF_BLUE_STRING_TELUGU_BOTTOM, 0 }
1083 { AF_BLUE_STRING_MAX, 0 }
1084
1085 AF_BLUE_STRINGSET_THAI
1086 { AF_BLUE_STRING_THAI_TOP, AF_BLUE_PROPERTY_LATIN_TOP |
1087 AF_BLUE_PROPERTY_LATIN_X_HEIGHT }
1088 { AF_BLUE_STRING_THAI_BOTTOM, 0 }
1089 { AF_BLUE_STRING_THAI_ASCENDER, AF_BLUE_PROPERTY_LATIN_TOP }
1090 { AF_BLUE_STRING_THAI_LARGE_ASCENDER, AF_BLUE_PROPERTY_LATIN_TOP }
1091 { AF_BLUE_STRING_THAI_DESCENDER, 0 }
1092 { AF_BLUE_STRING_THAI_LARGE_DESCENDER, 0 }
1093 { AF_BLUE_STRING_THAI_DIGIT_TOP, 0 }
1094 { AF_BLUE_STRING_MAX, 0 }
1095
1096 AF_BLUE_STRINGSET_TFNG
1097 { AF_BLUE_STRING_TIFINAGH, AF_BLUE_PROPERTY_LATIN_TOP }
1098 { AF_BLUE_STRING_TIFINAGH, 0 }
1099 { AF_BLUE_STRING_MAX, 0 }
1100
1101 AF_BLUE_STRINGSET_VAII
1102 { AF_BLUE_STRING_VAI_TOP, AF_BLUE_PROPERTY_LATIN_TOP }
1103 { AF_BLUE_STRING_VAI_BOTTOM, 0 }
1104 { AF_BLUE_STRING_MAX, 0 }
1105
1106 #ifdef AF_CONFIG_OPTION_CJK
1107
1108 AF_BLUE_STRINGSET_HANI
1109 { AF_BLUE_STRING_CJK_TOP, AF_BLUE_PROPERTY_CJK_TOP }
1110 { AF_BLUE_STRING_CJK_BOTTOM, 0 }
1111 #ifdef AF_CONFIG_OPTION_CJK_BLUE_HANI_VERT
1112 { AF_BLUE_STRING_CJK_LEFT, AF_BLUE_PROPERTY_CJK_HORIZ }
1113 { AF_BLUE_STRING_CJK_RIGHT, AF_BLUE_PROPERTY_CJK_HORIZ |
1114 AF_BLUE_PROPERTY_CJK_RIGHT }
1115 #endif /* AF_CONFIG_OPTION_CJK_BLUE_HANI_VERT */
1116 { AF_BLUE_STRING_MAX, 0 }
1117
1118 #endif /* AF_CONFIG_OPTION_CJK */
1119
1120
1121 // END