Browse Source

FreeType: Cleanup some unused files

Rémi Verschelde 3 years ago
parent
commit
03ff10de8a

+ 1 - 1
COPYRIGHT.txt

@@ -176,7 +176,7 @@ License: OFL-1.1
 
 Files: ./thirdparty/freetype/
 Comment: The FreeType Project
-Copyright: 1996-2021, David Turner, Robert Wilhelm, and Werner Lemberg.
+Copyright: 1996-2022, David Turner, Robert Wilhelm, and Werner Lemberg.
 License: FTL
 
 Files: ./thirdparty/glslang/

+ 3 - 2
thirdparty/README.md

@@ -159,8 +159,9 @@ Files extracted from upstream source:
 
 Files extracted from upstream source:
 
-- the `src/` folder, minus the `.mk` files and the `dlg` and `tools` subfolders
-- the `include/` folder, minus the `dlg` subfolder
+- `src/` folder, minus the `dlg` and `tools` subfolders
+  * These files can be removed: `.dat`, `.diff`, `.mk`, `.rc`, `README*`
+- `include/` folder, minus the `dlg` subfolder
 - `LICENSE.TXT` and `docs/FTL.TXT`
 
 

+ 0 - 1121
thirdparty/freetype/src/autofit/afblue.dat

@@ -1,1121 +0,0 @@
-// afblue.dat
-//
-//   Auto-fitter data for blue strings.
-//
-// Copyright (C) 2013-2022 by
-// David Turner, Robert Wilhelm, and Werner Lemberg.
-//
-// This file is part of the FreeType project, and may only be used,
-// modified, and distributed under the terms of the FreeType project
-// license, LICENSE.TXT.  By continuing to use, modify, or distribute
-// this file you indicate that you have read the license and
-// understand and accept it fully.
-
-
-// This file contains data specific to blue zones.  It gets processed by
-// a script to simulate `jagged arrays', with enumeration values holding
-// offsets into the arrays.
-//
-// The format of the file is rather simple:  A section starts with three
-// labels separated by whitespace and followed by a colon (everything in a
-// single line); the first label gives the name of the enumeration template,
-// the second the name of the array template, and the third the name of the
-// `maximum' template.  The script then fills the corresponding templates
-// (indicated by `@' characters around the name).
-//
-// A section contains one or more data records.  Each data record consists
-// of two or more lines.  The first line holds the enumeration name, and the
-// remaining lines the corresponding array data.
-//
-// There are two possible representations for array data.
-//
-// - A string of characters or character clusters (for example, representing
-//   Aksharas, Devanagari syllables) in UTF-8 encoding enclosed in double
-//   quotes, using C syntax, where the elements are separated by spaces.
-//   There can be only one string per line, thus the starting and ending
-//   double quote must be the first and last character in the line,
-//   respectively, ignoring whitespace before and after the string.  If
-//   there are multiple strings (in multiple lines), they are concatenated
-//   to a single string.  In the output, a string gets represented as a
-//   series of singles bytes, followed by a zero byte.  The enumeration
-//   values simply hold byte offsets to the start of the corresponding
-//   strings.
-//
-//   For strings, the `maximum' template holds the maximum number of
-//   non-space characters in all strings.
-//
-// - Data blocks enclosed in balanced braces, which get copied verbatim and
-//   which can span multiple lines.  The opening brace of a block must be
-//   the first character of a line (ignoring whitespace), and the closing
-//   brace the last (ignoring whitespace also).  The script appends a comma
-//   character after each block and counts the number of blocks to set the
-//   enumeration values.
-//
-//   For data blocks, the `maximum' template holds the maximum number of
-//   array elements.
-//
-// A section can contain either strings only or data blocks only.
-//
-// A comment line starts with `//'; it gets removed.  A preprocessor
-// directive line (using the standard syntax of `cpp') starts with `#' and
-// gets copied verbatim to both the enumeration and the array.  Whitespace
-// outside of a string is insignificant.
-//
-// Preprocessor directives are ignored while the script computes maximum
-// values; this essentially means that the maximum values can easily be too
-// large.  Given that the purpose of those values is to create local
-// fixed-size arrays at compile time for further processing of the blue zone
-// data, this isn't a problem.  Note the final zero byte of a string is not
-// counted.  Note also that the count holds the number of UTF-8 encoded
-// characters, not bytes.
-
-
-// The blue zone string data, to be used in the blue stringsets below.
-
-AF_BLUE_STRING_ENUM AF_BLUE_STRINGS_ARRAY AF_BLUE_STRING_MAX_LEN:
-
-  AF_BLUE_STRING_ADLAM_CAPITAL_TOP
-    "𞤌 𞤅 𞤈 𞤏 𞤔 𞤚"
-  AF_BLUE_STRING_ADLAM_CAPITAL_BOTTOM
-    "𞤂 𞤖"
-  AF_BLUE_STRING_ADLAM_SMALL_TOP
-    "𞤬 𞤮 𞤻 𞤼 𞤾"
-  AF_BLUE_STRING_ADLAM_SMALL_BOTTOM
-    "𞤤 𞤨 𞤩 𞤭 𞤴 𞤸 𞤺 𞥀"
-
-  AF_BLUE_STRING_ARABIC_TOP
-    "ا إ ل ك ط ظ"
-  AF_BLUE_STRING_ARABIC_BOTTOM
-    "ت ث ط ظ ك"
-  // We don't necessarily have access to medial forms via Unicode in case
-  // Arabic presentational forms are missing.  The only character that is
-  // guaranteed to have the same vertical position with joining (this is,
-  // non-isolated) forms is U+0640, ARABIC TATWEEL, which must join both
-  // round and flat curves.
-  AF_BLUE_STRING_ARABIC_JOIN
-    "ـ"
-
-  AF_BLUE_STRING_ARMENIAN_CAPITAL_TOP
-    "Ա Մ Ւ Ս Բ Գ Դ Օ"
-  AF_BLUE_STRING_ARMENIAN_CAPITAL_BOTTOM
-    "Ւ Ո Դ Ճ Շ Ս Տ Օ"
-  AF_BLUE_STRING_ARMENIAN_SMALL_ASCENDER
-    "ե է ի մ վ ֆ ճ"
-  AF_BLUE_STRING_ARMENIAN_SMALL_TOP
-    "ա յ ւ ս գ շ ր օ"
-  AF_BLUE_STRING_ARMENIAN_SMALL_BOTTOM
-    "հ ո ճ ա ե ծ ս օ"
-  AF_BLUE_STRING_ARMENIAN_SMALL_DESCENDER
-    "բ ը ի լ ղ պ փ ց"
-
-  AF_BLUE_STRING_AVESTAN_TOP
-    "𐬀 𐬁 𐬐 𐬛"
-  AF_BLUE_STRING_AVESTAN_BOTTOM
-    "𐬀 𐬁"
-
-  AF_BLUE_STRING_BAMUM_TOP
-    "ꚧ ꚨ ꛛ ꛉ ꛁ ꛈ ꛫ ꛯ"
-  AF_BLUE_STRING_BAMUM_BOTTOM
-    "ꚭ ꚳ ꚶ ꛬ ꚢ ꚽ ꛯ ꛲"
-
-  AF_BLUE_STRING_BENGALI_BASE
-    "অ ড ত ন ব ভ ল ক"
-  AF_BLUE_STRING_BENGALI_TOP
-    "ই ট ঠ ি ী ৈ ৗ"
-  AF_BLUE_STRING_BENGALI_HEAD
-    "ও এ ড ত ন ব ল ক"
-
-  AF_BLUE_STRING_BUHID_TOP
-    "ᝐ ᝈ"
-  AF_BLUE_STRING_BUHID_LARGE
-    "ᝅ ᝊ ᝎ"
-  AF_BLUE_STRING_BUHID_SMALL
-    "ᝂ ᝃ ᝉ ᝌ"
-  AF_BLUE_STRING_BUHID_BOTTOM
-    "ᝀ ᝃ ᝆ ᝉ ᝋ ᝏ ᝑ"
-
-  AF_BLUE_STRING_CANADIAN_SYLLABICS_TOP
-    "ᗜ ᖴ ᐁ ᒣ ᑫ ᑎ ᔑ ᗰ"
-  AF_BLUE_STRING_CANADIAN_SYLLABICS_BOTTOM
-    "ᗶ ᖵ ᒧ ᐃ ᑌ ᒍ ᔑ ᗢ"
-  AF_BLUE_STRING_CANADIAN_SYLLABICS_SMALL_TOP
-    "ᓓ ᓕ ᓀ ᓂ ᓄ ᕄ ᕆ ᘣ"
-  AF_BLUE_STRING_CANADIAN_SYLLABICS_SMALL_BOTTOM
-    "ᕃ ᓂ ᓀ ᕂ ᓗ ᓚ ᕆ ᘣ"
-  AF_BLUE_STRING_CANADIAN_SYLLABICS_SUPS_TOP
-    "ᐪ ᙆ ᣘ ᐢ ᒾ ᣗ ᔆ"
-  AF_BLUE_STRING_CANADIAN_SYLLABICS_SUPS_BOTTOM
-    "ᙆ ᗮ ᒻ ᐞ ᔆ ᒡ ᒢ ᓑ"
-
-  AF_BLUE_STRING_CARIAN_TOP
-    "𐊧 𐊫 𐊬 𐊭 𐊱 𐊺 𐊼 𐊿"
-  AF_BLUE_STRING_CARIAN_BOTTOM
-    "𐊣 𐊧 𐊷 𐋀 𐊫 𐊸 𐋉"
-
-  AF_BLUE_STRING_CHAKMA_TOP
-    "𑄃 𑄅 𑄉 𑄙 𑄗"
-  AF_BLUE_STRING_CHAKMA_BOTTOM
-    "𑄅 𑄛 𑄝 𑄗 𑄓"
-  AF_BLUE_STRING_CHAKMA_DESCENDER
-    "𑄖𑄳𑄢 𑄘𑄳𑄢 𑄙𑄳𑄢 𑄤𑄳𑄢 𑄥𑄳𑄢"
-
-  AF_BLUE_STRING_CHEROKEE_CAPITAL
-    "Ꮖ Ꮋ Ꭼ Ꮓ Ꭴ Ꮳ Ꭶ Ꮥ"
-  AF_BLUE_STRING_CHEROKEE_SMALL_ASCENDER
-    "ꮒ ꮤ ꮶ ꭴ ꭾ ꮗ ꮝ ꮿ"
-  AF_BLUE_STRING_CHEROKEE_SMALL
-    "ꮖ ꭼ ꮓ ꮠ ꮳ ꭶ ꮥ ꮻ"
-  AF_BLUE_STRING_CHEROKEE_SMALL_DESCENDER
-    "ᏸ ꮐ ꭹ ꭻ"
-
-  AF_BLUE_STRING_COPTIC_CAPITAL_TOP
-    "Ⲍ Ⲏ Ⲡ Ⳟ Ⲟ Ⲑ Ⲥ Ⳋ"
-  AF_BLUE_STRING_COPTIC_CAPITAL_BOTTOM
-    "Ⳑ Ⳙ Ⳟ Ⲏ Ⲟ Ⲑ Ⳝ Ⲱ"
-  AF_BLUE_STRING_COPTIC_SMALL_TOP
-    "ⲍ ⲏ ⲡ ⳟ ⲟ ⲑ ⲥ ⳋ"
-  AF_BLUE_STRING_COPTIC_SMALL_BOTTOM
-    "ⳑ ⳙ ⳟ ⲏ ⲟ ⲑ ⳝ Ⳓ"
-
-  AF_BLUE_STRING_CYPRIOT_TOP
-    "𐠍 𐠙 𐠳 𐠱 𐠅 𐠓 𐠣 𐠦"
-  AF_BLUE_STRING_CYPRIOT_BOTTOM
-    "𐠃 𐠊 𐠛 𐠣 𐠳 𐠵 𐠐"
-  AF_BLUE_STRING_CYPRIOT_SMALL
-    "𐠈 𐠏 𐠖"
-
-  AF_BLUE_STRING_CYRILLIC_CAPITAL_TOP
-    "Б В Е П З О С Э"
-  AF_BLUE_STRING_CYRILLIC_CAPITAL_BOTTOM
-    "Б В Е Ш З О С Э"
-  AF_BLUE_STRING_CYRILLIC_SMALL
-    "х п н ш е з о с"
-  AF_BLUE_STRING_CYRILLIC_SMALL_DESCENDER
-    "р у ф"
-
-  AF_BLUE_STRING_DESERET_CAPITAL_TOP
-    "𐐂 𐐄 𐐋 𐐗 𐐑"
-  AF_BLUE_STRING_DESERET_CAPITAL_BOTTOM
-    "𐐀 𐐂 𐐄 𐐗 𐐛"
-  AF_BLUE_STRING_DESERET_SMALL_TOP
-    "𐐪 𐐬 𐐳 𐐿 𐐹"
-  AF_BLUE_STRING_DESERET_SMALL_BOTTOM
-    "𐐨 𐐪 𐐬 𐐿 𐑃"
-
-  AF_BLUE_STRING_DEVANAGARI_BASE
-    "क न म उ छ ट ठ ड"
-  AF_BLUE_STRING_DEVANAGARI_TOP
-    "ई ऐ ओ औ ि ी ो ौ"
-  // note that some fonts have extreme variation in the height of the
-  // round head elements; for this reason we also define the `base'
-  // blue zone, which must be always present
-  AF_BLUE_STRING_DEVANAGARI_HEAD
-    "क म अ आ थ ध भ श"
-  AF_BLUE_STRING_DEVANAGARI_BOTTOM
-    "ु ृ"
-
-  AF_BLUE_STRING_ETHIOPIC_TOP
-    "ሀ ሃ ዘ ፐ ማ በ ዋ ዐ"
-  AF_BLUE_STRING_ETHIOPIC_BOTTOM
-    "ለ ሐ በ ዘ ሀ ሪ ዐ ጨ"
-
-  AF_BLUE_STRING_GEORGIAN_MKHEDRULI_TOP
-    "გ დ ე ვ თ ი ო ღ"
-  AF_BLUE_STRING_GEORGIAN_MKHEDRULI_BOTTOM
-    "ა ზ მ ს შ ძ ხ პ"
-  AF_BLUE_STRING_GEORGIAN_MKHEDRULI_ASCENDER
-    "ს ხ ქ ზ მ შ ჩ წ"
-  AF_BLUE_STRING_GEORGIAN_MKHEDRULI_DESCENDER
-    "ე ვ ჟ ტ უ ფ ქ ყ"
-
-  AF_BLUE_STRING_GEORGIAN_ASOMTAVRULI_TOP
-    "Ⴑ Ⴇ Ⴙ Ⴜ Ⴄ Ⴅ Ⴓ Ⴚ"
-  AF_BLUE_STRING_GEORGIAN_ASOMTAVRULI_BOTTOM
-    "Ⴄ Ⴅ Ⴇ Ⴈ Ⴆ Ⴑ Ⴊ Ⴋ"
-
-  AF_BLUE_STRING_GEORGIAN_NUSKHURI_TOP
-    "ⴁ ⴗ ⴂ ⴄ ⴅ ⴇ ⴔ ⴖ"
-  AF_BLUE_STRING_GEORGIAN_NUSKHURI_BOTTOM
-    "ⴈ ⴌ ⴖ ⴎ ⴃ ⴆ ⴋ ⴢ"
-  AF_BLUE_STRING_GEORGIAN_NUSKHURI_ASCENDER
-    "ⴐ ⴑ ⴓ ⴕ ⴙ ⴛ ⴡ ⴣ"
-  AF_BLUE_STRING_GEORGIAN_NUSKHURI_DESCENDER
-    "ⴄ ⴅ ⴔ ⴕ ⴁ ⴂ ⴘ ⴝ"
-
-  AF_BLUE_STRING_GEORGIAN_MTAVRULI_TOP
-    "Ნ Ჟ Ჳ Ჸ Გ Ე Ო Ჴ"
-  AF_BLUE_STRING_GEORGIAN_MTAVRULI_BOTTOM
-    "Ი Ჲ Ო Ჩ Მ Შ Ჯ Ჽ"
-
-  AF_BLUE_STRING_GLAGOLITIC_CAPITAL_TOP
-    "Ⰵ Ⱄ Ⱚ Ⰴ Ⰲ Ⰺ Ⱛ Ⰻ"
-  AF_BLUE_STRING_GLAGOLITIC_CAPITAL_BOTTOM
-    "Ⰵ Ⰴ Ⰲ Ⱚ Ⱎ Ⱑ Ⰺ Ⱄ"
-  AF_BLUE_STRING_GLAGOLITIC_SMALL_TOP
-    "ⰵ ⱄ ⱚ ⰴ ⰲ ⰺ ⱛ ⰻ"
-  AF_BLUE_STRING_GLAGOLITIC_SMALL_BOTTOM
-    "ⰵ ⰴ ⰲ ⱚ ⱎ ⱑ ⰺ ⱄ"
-
-  AF_BLUE_STRING_GOTHIC_TOP
-    "𐌲 𐌶 𐍀 𐍄 𐌴 𐍃 𐍈 𐌾"
-  AF_BLUE_STRING_GOTHIC_BOTTOM
-    "𐌶 𐌴 𐍃 𐍈"
-
-  AF_BLUE_STRING_GREEK_CAPITAL_TOP
-    "Γ Β Ε Ζ Θ Ο Ω"
-  AF_BLUE_STRING_GREEK_CAPITAL_BOTTOM
-    "Β Δ Ζ Ξ Θ Ο"
-  AF_BLUE_STRING_GREEK_SMALL_BETA_TOP
-    "β θ δ ζ λ ξ"
-  AF_BLUE_STRING_GREEK_SMALL
-    "α ε ι ο π σ τ ω"
-  AF_BLUE_STRING_GREEK_SMALL_DESCENDER
-    "β γ η μ ρ φ χ ψ"
-
-  AF_BLUE_STRING_GUJARATI_TOP
-    "ત ન ઋ ઌ છ ટ ર ૦"
-  AF_BLUE_STRING_GUJARATI_BOTTOM
-    "ખ ગ ઘ ઞ ઇ ઈ ઠ જ"
-  AF_BLUE_STRING_GUJARATI_ASCENDER
-    "ઈ ઊ િ ી લી શ્ચિ જિ સી"
-  AF_BLUE_STRING_GUJARATI_DESCENDER
-    "ુ ૃ ૄ ખુ છૃ છૄ"
-  AF_BLUE_STRING_GUJARATI_DIGIT_TOP
-    "૦ ૧ ૨ ૩ ૭"
-
-  AF_BLUE_STRING_GURMUKHI_BASE
-    "ਕ ਗ ਙ ਚ ਜ ਤ ਧ ਸ"
-  AF_BLUE_STRING_GURMUKHI_HEAD
-    "ਕ ਗ ਙ ਚ ਜ ਤ ਧ ਸ"
-  AF_BLUE_STRING_GURMUKHI_TOP
-    "ਇ ਈ ਉ ਏ ਓ ੳ ਿ ੀ"
-  AF_BLUE_STRING_GURMUKHI_BOTTOM
-    "ਅ ਏ ਓ ਗ ਜ ਠ ਰ ਸ"
-  AF_BLUE_STRING_GURMUKHI_DIGIT_TOP
-    "੦ ੧ ੨ ੩ ੭"
-
-  AF_BLUE_STRING_HEBREW_TOP
-    "ב ד ה ח ך כ ם ס"
-  AF_BLUE_STRING_HEBREW_BOTTOM
-    "ב ט כ ם ס צ"
-  AF_BLUE_STRING_HEBREW_DESCENDER
-    "ק ך ן ף ץ"
-
-  AF_BLUE_STRING_KANNADA_TOP
-    "ಇ ಊ ಐ ಣ ಸಾ ನಾ ದಾ ರಾ"
-  AF_BLUE_STRING_KANNADA_BOTTOM
-    "ಅ ಉ ಎ ಲ ೦ ೨ ೬ ೭"
-
-  AF_BLUE_STRING_KAYAH_LI_TOP
-    "꤅ ꤏ ꤁ ꤋ ꤀ ꤍ"
-  AF_BLUE_STRING_KAYAH_LI_BOTTOM
-    "꤈ ꤘ ꤀ ꤍ ꤢ"
-  AF_BLUE_STRING_KAYAH_LI_ASCENDER
-    "ꤖ ꤡ"
-  AF_BLUE_STRING_KAYAH_LI_DESCENDER
-    "ꤑ ꤜ ꤞ"
-  AF_BLUE_STRING_KAYAH_LI_LARGE_DESCENDER
-    "ꤑ꤬ ꤜ꤭ ꤔ꤬"
-
-  AF_BLUE_STRING_KHMER_TOP
-    "ខ ទ ន ឧ ឩ ា"
-  AF_BLUE_STRING_KHMER_SUBSCRIPT_TOP
-    "ក្ក ក្ខ ក្គ ក្ថ"
-  AF_BLUE_STRING_KHMER_BOTTOM
-    "ខ ឃ ច ឋ ប ម យ ឲ"
-  AF_BLUE_STRING_KHMER_DESCENDER
-    "ត្រ រៀ ឲ្យ អឿ"
-  AF_BLUE_STRING_KHMER_LARGE_DESCENDER
-    "ន្ត្រៃ ង្ខ្យ ក្បៀ ច្រៀ ន្តឿ ល្បឿ"
-
-  AF_BLUE_STRING_KHMER_SYMBOLS_WAXING_TOP
-    "᧠ ᧡"
-  AF_BLUE_STRING_KHMER_SYMBOLS_WANING_BOTTOM
-    "᧶ ᧹"
-
-  AF_BLUE_STRING_LAO_TOP
-    "າ ດ ອ ມ ລ ວ ຣ ງ"
-  AF_BLUE_STRING_LAO_BOTTOM
-    "າ ອ ບ ຍ ຣ ຮ ວ ຢ"
-  AF_BLUE_STRING_LAO_ASCENDER
-    "ປ ຢ ຟ ຝ"
-  AF_BLUE_STRING_LAO_LARGE_ASCENDER
-    "ໂ ໄ ໃ"
-  AF_BLUE_STRING_LAO_DESCENDER
-    "ງ ຊ ຖ ຽ ໆ ຯ"
-
-  AF_BLUE_STRING_LATIN_CAPITAL_TOP
-    "T H E Z O C Q S"
-  AF_BLUE_STRING_LATIN_CAPITAL_BOTTOM
-    "H E Z L O C U S"
-  AF_BLUE_STRING_LATIN_SMALL_F_TOP
-    "f i j k d b h"
-  AF_BLUE_STRING_LATIN_SMALL_TOP
-    "u v x z o e s c"
-  AF_BLUE_STRING_LATIN_SMALL_BOTTOM
-    "n r x z o e s c"
-  AF_BLUE_STRING_LATIN_SMALL_DESCENDER
-    "p q g j y"
-
-  // we assume that both the subscript and superscript ranges
-  // don't contain oldstyle digits (actually, most fonts probably
-  // have digits only in those ranges)
-  AF_BLUE_STRING_LATIN_SUBS_CAPITAL_TOP
-    "₀ ₃ ₅ ₇ ₈"
-  AF_BLUE_STRING_LATIN_SUBS_CAPITAL_BOTTOM
-    "₀ ₁ ₂ ₃ ₈"
-  AF_BLUE_STRING_LATIN_SUBS_SMALL_F_TOP
-    "ᵢ ⱼ ₕ ₖ ₗ"
-  AF_BLUE_STRING_LATIN_SUBS_SMALL
-    "ₐ ₑ ₒ ₓ ₙ ₛ ᵥ ᵤ ᵣ"
-  AF_BLUE_STRING_LATIN_SUBS_SMALL_DESCENDER
-    "ᵦ ᵧ ᵨ ᵩ ₚ"
-
-  AF_BLUE_STRING_LATIN_SUPS_CAPITAL_TOP
-    "⁰ ³ ⁵ ⁷ ᵀ ᴴ ᴱ ᴼ"
-  AF_BLUE_STRING_LATIN_SUPS_CAPITAL_BOTTOM
-    "⁰ ¹ ² ³ ᴱ ᴸ ᴼ ᵁ"
-  AF_BLUE_STRING_LATIN_SUPS_SMALL_F_TOP
-    "ᵇ ᵈ ᵏ ʰ ʲ ᶠ ⁱ"
-  AF_BLUE_STRING_LATIN_SUPS_SMALL
-    "ᵉ ᵒ ʳ ˢ ˣ ᶜ ᶻ"
-  AF_BLUE_STRING_LATIN_SUPS_SMALL_DESCENDER
-    "ᵖ ʸ ᵍ"
-
-  AF_BLUE_STRING_LISU_TOP
-    "ꓡ ꓧ ꓱ ꓶ ꓩ ꓚ ꓵ ꓳ"
-  AF_BLUE_STRING_LISU_BOTTOM
-    "ꓕ ꓜ ꓞ ꓡ ꓛ ꓢ ꓳ ꓴ"
-
-  AF_BLUE_STRING_MALAYALAM_TOP
-    "ഒ ട ഠ റ ച പ ച്ച പ്പ"
-  AF_BLUE_STRING_MALAYALAM_BOTTOM
-    "ട ഠ ധ ശ ഘ ച ഥ ല"
-
-  AF_BLUE_STRING_MEDEFAIDRIN_CAPITAL_TOP
-    "𖹀 𖹁 𖹂 𖹃 𖹏 𖹚 𖹟"
-  AF_BLUE_STRING_MEDEFAIDRIN_CAPITAL_BOTTOM
-    "𖹀 𖹁 𖹂 𖹃 𖹏 𖹚 𖹒 𖹓"
-  AF_BLUE_STRING_MEDEFAIDRIN_SMALL_F_TOP
-    "𖹤 𖹬 𖹧 𖹴 𖹶 𖹾"
-  AF_BLUE_STRING_MEDEFAIDRIN_SMALL_TOP
-    "𖹠 𖹡 𖹢 𖹹 𖹳 𖹮"
-  AF_BLUE_STRING_MEDEFAIDRIN_SMALL_BOTTOM
-    "𖹠 𖹡 𖹢 𖹳 𖹭 𖹽"
-  AF_BLUE_STRING_MEDEFAIDRIN_SMALL_DESCENDER
-    "𖹥 𖹨 𖹩"
-  AF_BLUE_STRING_MEDEFAIDRIN_DIGIT_TOP
-    "𖺀 𖺅 𖺈 𖺄 𖺍"
-
-  AF_BLUE_STRING_MONGOLIAN_TOP_BASE
-    "ᠳ ᠴ ᠶ ᠽ ᡂ ᡊ ‍ᡡ‍ ‍ᡳ‍"
-  AF_BLUE_STRING_MONGOLIAN_BOTTOM_BASE
-    "ᡃ"
-
-  AF_BLUE_STRING_MYANMAR_TOP
-    "ခ ဂ င ဒ ဝ ၥ ၊ ။"
-  AF_BLUE_STRING_MYANMAR_BOTTOM
-    "င ဎ ဒ ပ ဗ ဝ ၊ ။"
-  AF_BLUE_STRING_MYANMAR_ASCENDER
-    "ဩ ြ ၍ ၏ ၆ ါ ိ"
-  AF_BLUE_STRING_MYANMAR_DESCENDER
-    "ဉ ည ဥ ဩ ဨ ၂ ၅ ၉"
-
-  AF_BLUE_STRING_NKO_TOP
-    "ߐ ߉ ߒ ߟ ߖ ߜ ߠ ߥ"
-  AF_BLUE_STRING_NKO_BOTTOM
-    "߀ ߘ ߡ ߠ ߥ"
-  AF_BLUE_STRING_NKO_SMALL_TOP
-    "ߏ ߛ ߋ"
-  AF_BLUE_STRING_NKO_SMALL_BOTTOM
-    "ߎ ߏ ߛ ߋ"
-
-  AF_BLUE_STRING_OL_CHIKI
-    "ᱛ ᱜ ᱝ ᱡ ᱢ ᱥ"
-
-  AF_BLUE_STRING_OLD_TURKIC_TOP
-    "𐰗 𐰘 𐰧"
-  AF_BLUE_STRING_OLD_TURKIC_BOTTOM
-    "𐰉 𐰗 𐰦 𐰧"
-
-  AF_BLUE_STRING_OSAGE_CAPITAL_TOP
-    "𐒾 𐓍 𐓒 𐓓 𐒻 𐓂 𐒵 𐓆"
-  AF_BLUE_STRING_OSAGE_CAPITAL_BOTTOM
-    "𐒰 𐓍 𐓂 𐒿 𐓎 𐒹"
-  AF_BLUE_STRING_OSAGE_CAPITAL_DESCENDER
-    "𐒼 𐒽 𐒾"
-  AF_BLUE_STRING_OSAGE_SMALL_TOP
-    "𐓵 𐓶 𐓺 𐓻 𐓝 𐓣 𐓪 𐓮"
-  AF_BLUE_STRING_OSAGE_SMALL_BOTTOM
-    "𐓘 𐓚 𐓣 𐓵 𐓡 𐓧 𐓪 𐓶"
-  AF_BLUE_STRING_OSAGE_SMALL_ASCENDER
-    "𐓤 𐓦 𐓸 𐓹 𐓛"
-  AF_BLUE_STRING_OSAGE_SMALL_DESCENDER
-    "𐓤 𐓥 𐓦"
-
-  AF_BLUE_STRING_OSMANYA_TOP
-    "𐒆 𐒉 𐒐 𐒒 𐒘 𐒛 𐒠 𐒣"
-  AF_BLUE_STRING_OSMANYA_BOTTOM
-    "𐒀 𐒂 𐒆 𐒈 𐒊 𐒒 𐒠 𐒩"
-
-  AF_BLUE_STRING_ROHINGYA_TOP
-    "𐴃 𐴀 𐴆 𐴖 𐴕"
-  AF_BLUE_STRING_ROHINGYA_BOTTOM
-    "𐴔 𐴖 𐴕 𐴑 𐴐"
-  AF_BLUE_STRING_ROHINGYA_JOIN
-    "ـ"
-
-  AF_BLUE_STRING_SAURASHTRA_TOP
-    "ꢜ ꢞ ꢳ ꢂ ꢖ ꢒ ꢝ ꢛ"
-  AF_BLUE_STRING_SAURASHTRA_BOTTOM
-    "ꢂ ꢨ ꢺ ꢤ ꢎ"
-
-  AF_BLUE_STRING_SHAVIAN_TOP
-    "𐑕 𐑙"
-  AF_BLUE_STRING_SHAVIAN_BOTTOM
-    "𐑔 𐑖 𐑗 𐑹 𐑻"
-  AF_BLUE_STRING_SHAVIAN_DESCENDER
-    "𐑟 𐑣"
-  AF_BLUE_STRING_SHAVIAN_SMALL_TOP
-    "𐑱 𐑲 𐑳 𐑴 𐑸 𐑺 𐑼"
-  AF_BLUE_STRING_SHAVIAN_SMALL_BOTTOM
-    "𐑴 𐑻 𐑹"
-
-  AF_BLUE_STRING_SINHALA_TOP
-    "ඉ ක ඝ ඳ ප ය ල ෆ"
-  AF_BLUE_STRING_SINHALA_BOTTOM
-    "එ ඔ ඝ ජ ට ථ ධ ර"
-  AF_BLUE_STRING_SINHALA_DESCENDER
-    "ද ඳ උ ල තූ තු බු දු"
-
-  AF_BLUE_STRING_SUNDANESE_TOP
-    "ᮋ ᮞ ᮮ ᮽ ᮰ ᮈ"
-  AF_BLUE_STRING_SUNDANESE_BOTTOM
-    "ᮄ ᮔ ᮕ ᮗ ᮰ ᮆ ᮈ ᮉ"
-  AF_BLUE_STRING_SUNDANESE_DESCENDER
-    "ᮼ ᳄"
-
-  AF_BLUE_STRING_TAI_VIET_TOP
-    "ꪆ ꪔ ꪒ ꪖ ꪫ"
-  AF_BLUE_STRING_TAI_VIET_BOTTOM
-    "ꪉ ꪫ ꪮ"
-
-  AF_BLUE_STRING_TAMIL_TOP
-    "உ ஒ ஓ ற ஈ க ங ச"
-  AF_BLUE_STRING_TAMIL_BOTTOM
-    "க ச ல ஶ உ ங ட ப"
-
-  AF_BLUE_STRING_TELUGU_TOP
-    "ఇ ఌ ఙ ఞ ణ ఱ ౯"
-  AF_BLUE_STRING_TELUGU_BOTTOM
-    "అ క చ ర ఽ ౨ ౬"
-
-  AF_BLUE_STRING_THAI_TOP
-    "บ เ แ อ ก า"
-  AF_BLUE_STRING_THAI_BOTTOM
-    "บ ป ษ ฯ อ ย ฮ"
-  AF_BLUE_STRING_THAI_ASCENDER
-    "ป ฝ ฟ"
-  AF_BLUE_STRING_THAI_LARGE_ASCENDER
-    "โ ใ ไ"
-  AF_BLUE_STRING_THAI_DESCENDER
-    "ฎ ฏ ฤ ฦ"
-  AF_BLUE_STRING_THAI_LARGE_DESCENDER
-    "ญ ฐ"
-  AF_BLUE_STRING_THAI_DIGIT_TOP
-    "๐ ๑ ๓"
-
-  AF_BLUE_STRING_TIFINAGH
-    "ⵔ ⵙ ⵛ ⵞ ⴵ ⴼ ⴹ ⵎ"
-
-  AF_BLUE_STRING_VAI_TOP
-    "ꗍ ꘖ ꘙ ꘜ ꖜ ꖝ ꔅ ꕢ"
-  AF_BLUE_STRING_VAI_BOTTOM
-    "ꗍ ꘖ ꘙ ꗞ ꔅ ꕢ ꖜ ꔆ"
-
-
-#ifdef AF_CONFIG_OPTION_CJK
-
-  AF_BLUE_STRING_CJK_TOP
-    "他 们 你 來 們 到 和 地"
-    " 对 對 就 席 我 时 時 會"
-    " 来 為 能 舰 說 说 这 這"
-    " 齊 |"
-    " 军 同 已 愿 既 星 是 景"
-    " 民 照 现 現 理 用 置 要"
-    " 軍 那 配 里 開 雷 露 面"
-    " 顾"
-  AF_BLUE_STRING_CJK_BOTTOM
-    "个 为 人 他 以 们 你 來"
-    " 個 們 到 和 大 对 對 就"
-    " 我 时 時 有 来 為 要 說"
-    " 说 |"
-    " 主 些 因 它 想 意 理 生"
-    " 當 看 着 置 者 自 著 裡"
-    " 过 还 进 進 過 道 還 里"
-    " 面"
-
-#ifdef AF_CONFIG_OPTION_CJK_BLUE_HANI_VERT
-
-  AF_BLUE_STRING_CJK_LEFT
-    " 些 们 你 來 們 到 和 地"
-    " 她 将 將 就 年 得 情 最"
-    " 样 樣 理 能 說 说 这 這"
-    " 通 |"
-    " 即 吗 吧 听 呢 品 响 嗎"
-    " 师 師 收 断 斷 明 眼 間"
-    " 间 际 陈 限 除 陳 随 際"
-    " 隨"
-  AF_BLUE_STRING_CJK_RIGHT
-    "事 前 學 将 將 情 想 或"
-    " 政 斯 新 样 樣 民 沒 没"
-    " 然 特 现 現 球 第 經 谁"
-    " 起 |"
-    " 例 別 别 制 动 動 吗 嗎"
-    " 增 指 明 朝 期 构 物 确"
-    " 种 調 调 費 费 那 都 間"
-    " 间"
-
-#endif /* AF_CONFIG_OPTION_CJK_BLUE_HANI_VERT */
-
-#endif /* AF_CONFIG_OPTION_CJK                */
-
-
-// The blue zone stringsets, as used in the script styles, cf. `afstyles.h'.
-//
-// The AF_BLUE_PROPERTY_XXX flags are defined in `afblue.h'; here some
-// explanations.
-//
-// A blue zone in general is defined by a reference and an overshoot line.
-// During the hinting process, all coordinate values between those two lines
-// are set equal to the reference value, provided that the blue zone is not
-// wider than 0.75 pixels (otherwise the blue zone gets ignored).  All
-// entries must have `AF_BLUE_STRING_MAX' as the final line.
-//
-// During the glyph analysis, edges are sorted from bottom to top, and then
-// sequentially checked, edge by edge, against the blue zones in the order
-// given below.
-//
-//
-// latin auto-hinter
-// -----------------
-//
-// Characters in a blue string are automatically classified as having a flat
-// (reference) or a round (overshoot) extremum.  The blue zone is then set
-// up by the mean values of all flat extrema and all round extrema,
-// respectively.  Only horizontal blue zones (i.e., adjusting vertical
-// coordinate values) are supported.
-//
-// Some scripts like Khmer need character composition to get all necessary
-// blue zones, since Unicode only provides an abstract data model that
-// doesn't represent all possible glyph shapes.  For such character
-// clusters, the HarfBuzz library is used to convert them into the
-// corresponding glyphs.  The largest glyph element (where `largest' can be
-// either `largest ascender' or `largest descender') then defines the
-// corresponding flat or round extremum.
-//
-// For the latin auto-hinter, the overshoot should be larger than the
-// reference for top zones, and vice versa for bottom zones.
-//
-//   LATIN_TOP
-//     Take the maximum flat and round coordinate values of the blue string
-//     characters for computing the blue zone's reference and overshoot
-//     values.
-//
-//     If not set, take the minimum values.
-//
-//     Mutually exclusive with `LATIN_SUB_TOP'.
-//
-//   LATIN_SUB_TOP
-//     For all glyphs of a character cluster, compute the maximum flat
-//     and round coordinate values of each component, then take the
-//     smallest of the maximum values.  The idea is to get the top of
-//     subscript glyphs, as used in Khmer, for example.  Note that
-//     this mechanism doesn't work for ordinary ligatures.
-//
-//     This flags indicates a secondary blue zone: It gets removed if
-//     there is a non-LATIN_SUB_TOP blue zone at the same coordinate
-//     value (after scaling).
-//
-//     Mutually exclusive with `LATIN_TOP'.
-//
-//   LATIN_NEUTRAL
-//     Ignore round extrema and define the blue zone with flat values only.
-//     Both top and bottom of contours can match.  This is useful for
-//     scripts like Devanagari where vowel signs attach to the base
-//     character and are implemented as components of composite glyphs.
-//
-//     If not set, both round and flat extrema are taken into account.
-//     Additionally, only the top or the bottom of a contour can match,
-//     depending on the LATIN_TOP flag.
-//
-//     Neutral blue zones should always follow non-neutral blue zones.
-//
-//   LATIN_X_HEIGHT
-//     Scale all glyphs vertically from the corresponding script to make the
-//     reference line of this blue zone align on the grid.  The scaling
-//     takes place before all other blue zones get aligned to the grid.
-//     Only one blue character string of a script style can have this flag.
-//
-//   LATIN_LONG
-//     Apply an additional constraint for blue zone values: Don't
-//     necessarily use the extremum as-is but a segment of the topmost (or
-//     bottommost) contour that is longer than a heuristic threshold, and
-//     which is not too far away vertically from the real extremum.  This
-//     ensures that small bumps in the outline are ignored (for example, the
-//     `vertical serifs' found in many Hebrew glyph designs).
-//
-//     The segment must be at least EM/25 font units long, and the distance
-//     to the extremum must be smaller than EM/4.
-//
-//
-// cjk auto-hinter
-// ---------------
-//
-// Characters in a blue string are *not* automatically classified.  Instead,
-// first come the characters used for the overshoot value, then the
-// character `|', then the characters used for the reference value
-// (everything separated by space characters).  The blue zone is then set up
-// by the mean values of all reference values and all overshoot values,
-// respectively.  Both horizontal and vertical blue zones (i.e., adjusting
-// vertical and horizontal coordinate values, respectively) are supported.
-//
-// For the cjk auto-hinter, the overshoot should be smaller than the
-// reference for top zones, and vice versa for bottom zones.
-//
-//   CJK_TOP
-//     Take the maximum flat and round coordinate values of the blue string
-//     characters.  If not set, take the minimum values.
-//
-//   CJK_RIGHT
-//     A synonym for CJK_TOP.  If CJK_HORIZ is set, this flag indicates the
-//     right blue zone, taking horizontal maximum values.
-//
-//   CJK_HORIZ
-//     Define a blue zone for horizontal hinting (i.e., vertical blue
-//     zones).  If not set, this is a blue zone for vertical hinting.
-
-
-AF_BLUE_STRINGSET_ENUM AF_BLUE_STRINGSETS_ARRAY AF_BLUE_STRINGSET_MAX_LEN:
-
-  AF_BLUE_STRINGSET_ADLM
-    { AF_BLUE_STRING_ADLAM_CAPITAL_TOP,    AF_BLUE_PROPERTY_LATIN_TOP        }
-    { AF_BLUE_STRING_ADLAM_CAPITAL_BOTTOM, 0                                 }
-    { AF_BLUE_STRING_ADLAM_SMALL_TOP,      AF_BLUE_PROPERTY_LATIN_TOP      |
-                                           AF_BLUE_PROPERTY_LATIN_X_HEIGHT   }
-    { AF_BLUE_STRING_ADLAM_SMALL_BOTTOM,   0                                 }
-    { AF_BLUE_STRING_MAX,                  0                                 }
-
-  AF_BLUE_STRINGSET_ARAB
-    { AF_BLUE_STRING_ARABIC_TOP,    AF_BLUE_PROPERTY_LATIN_TOP     }
-    { AF_BLUE_STRING_ARABIC_BOTTOM, 0                              }
-    { AF_BLUE_STRING_ARABIC_JOIN,   AF_BLUE_PROPERTY_LATIN_NEUTRAL }
-    { AF_BLUE_STRING_MAX,           0                              }
-
-  AF_BLUE_STRINGSET_ARMN
-    { AF_BLUE_STRING_ARMENIAN_CAPITAL_TOP,     AF_BLUE_PROPERTY_LATIN_TOP        }
-    { AF_BLUE_STRING_ARMENIAN_CAPITAL_BOTTOM,  0                                 }
-    { AF_BLUE_STRING_ARMENIAN_SMALL_ASCENDER,  AF_BLUE_PROPERTY_LATIN_TOP        }
-    { AF_BLUE_STRING_ARMENIAN_SMALL_TOP,       AF_BLUE_PROPERTY_LATIN_TOP      |
-                                               AF_BLUE_PROPERTY_LATIN_X_HEIGHT   }
-    { AF_BLUE_STRING_ARMENIAN_SMALL_BOTTOM,    0                                 }
-    { AF_BLUE_STRING_ARMENIAN_SMALL_DESCENDER, 0                                 }
-    { AF_BLUE_STRING_MAX,                      0                                 }
-
-  AF_BLUE_STRINGSET_AVST
-    { AF_BLUE_STRING_AVESTAN_TOP,    AF_BLUE_PROPERTY_LATIN_TOP }
-    { AF_BLUE_STRING_AVESTAN_BOTTOM, 0                          }
-    { AF_BLUE_STRING_MAX,            0                          }
-
-  AF_BLUE_STRINGSET_BAMU
-    { AF_BLUE_STRING_BAMUM_TOP,    AF_BLUE_PROPERTY_LATIN_TOP }
-    { AF_BLUE_STRING_BAMUM_BOTTOM, 0                          }
-    { AF_BLUE_STRING_MAX,          0                          }
-
-  AF_BLUE_STRINGSET_BENG
-    { AF_BLUE_STRING_BENGALI_TOP,  AF_BLUE_PROPERTY_LATIN_TOP        }
-    { AF_BLUE_STRING_BENGALI_HEAD, AF_BLUE_PROPERTY_LATIN_TOP        }
-    { AF_BLUE_STRING_BENGALI_BASE, AF_BLUE_PROPERTY_LATIN_TOP      |
-                                   AF_BLUE_PROPERTY_LATIN_NEUTRAL  |
-                                   AF_BLUE_PROPERTY_LATIN_X_HEIGHT   }
-    { AF_BLUE_STRING_BENGALI_BASE, 0                                 }
-    { AF_BLUE_STRING_MAX,          0                                 }
-
-  AF_BLUE_STRINGSET_BUHD
-    { AF_BLUE_STRING_BUHID_TOP,    AF_BLUE_PROPERTY_LATIN_TOP        }
-    { AF_BLUE_STRING_BUHID_LARGE,  AF_BLUE_PROPERTY_LATIN_TOP        }
-    { AF_BLUE_STRING_BUHID_SMALL,  AF_BLUE_PROPERTY_LATIN_TOP      |
-                                   AF_BLUE_PROPERTY_LATIN_X_HEIGHT   }
-    { AF_BLUE_STRING_BUHID_BOTTOM, 0                                 }
-    { AF_BLUE_STRING_MAX,          0                                 }
-
-  AF_BLUE_STRINGSET_CAKM
-    { AF_BLUE_STRING_CHAKMA_TOP,       AF_BLUE_PROPERTY_LATIN_TOP }
-    { AF_BLUE_STRING_CHAKMA_BOTTOM,    0                          }
-    { AF_BLUE_STRING_CHAKMA_DESCENDER, 0                          }
-    { AF_BLUE_STRING_MAX,              0                          }
-
-  AF_BLUE_STRINGSET_CANS
-    { AF_BLUE_STRING_CANADIAN_SYLLABICS_TOP,          AF_BLUE_PROPERTY_LATIN_TOP        }
-    { AF_BLUE_STRING_CANADIAN_SYLLABICS_BOTTOM,       0                                 }
-    { AF_BLUE_STRING_CANADIAN_SYLLABICS_SMALL_TOP,    AF_BLUE_PROPERTY_LATIN_TOP      |
-                                                      AF_BLUE_PROPERTY_LATIN_X_HEIGHT   }
-    { AF_BLUE_STRING_CANADIAN_SYLLABICS_SMALL_BOTTOM, 0                                 }
-    { AF_BLUE_STRING_CANADIAN_SYLLABICS_SUPS_TOP,     AF_BLUE_PROPERTY_LATIN_TOP        }
-    { AF_BLUE_STRING_CANADIAN_SYLLABICS_SUPS_BOTTOM,  0                                 }
-    { AF_BLUE_STRING_MAX,                             0                                 }
-
-  AF_BLUE_STRINGSET_CARI
-    { AF_BLUE_STRING_CARIAN_TOP,    AF_BLUE_PROPERTY_LATIN_TOP }
-    { AF_BLUE_STRING_CARIAN_BOTTOM, 0                          }
-    { AF_BLUE_STRING_MAX,           0                          }
-
-  AF_BLUE_STRINGSET_CHER
-    { AF_BLUE_STRING_CHEROKEE_CAPITAL,         AF_BLUE_PROPERTY_LATIN_TOP        }
-    { AF_BLUE_STRING_CHEROKEE_CAPITAL,         0                                 }
-    { AF_BLUE_STRING_CHEROKEE_SMALL_ASCENDER,  AF_BLUE_PROPERTY_LATIN_TOP        }
-    { AF_BLUE_STRING_CHEROKEE_SMALL,           AF_BLUE_PROPERTY_LATIN_TOP      |
-                                               AF_BLUE_PROPERTY_LATIN_X_HEIGHT   }
-    { AF_BLUE_STRING_CHEROKEE_SMALL,           0                                 }
-    { AF_BLUE_STRING_CHEROKEE_SMALL_DESCENDER, 0                                 }
-    { AF_BLUE_STRING_MAX,                      0                                 }
-
-  AF_BLUE_STRINGSET_COPT
-    { AF_BLUE_STRING_COPTIC_CAPITAL_TOP,    AF_BLUE_PROPERTY_LATIN_TOP        }
-    { AF_BLUE_STRING_COPTIC_CAPITAL_BOTTOM, 0                                 }
-    { AF_BLUE_STRING_COPTIC_SMALL_TOP,      AF_BLUE_PROPERTY_LATIN_TOP      |
-                                            AF_BLUE_PROPERTY_LATIN_X_HEIGHT   }
-    { AF_BLUE_STRING_COPTIC_SMALL_BOTTOM,   0                                 }
-    { AF_BLUE_STRING_MAX,                   0                                 }
-
-  AF_BLUE_STRINGSET_CPRT
-    { AF_BLUE_STRING_CYPRIOT_TOP,    AF_BLUE_PROPERTY_LATIN_TOP }
-    { AF_BLUE_STRING_CYPRIOT_BOTTOM, 0                          }
-    { AF_BLUE_STRING_CYPRIOT_SMALL,  AF_BLUE_PROPERTY_LATIN_TOP }
-    { AF_BLUE_STRING_CYPRIOT_SMALL,  0                          }
-    { AF_BLUE_STRING_MAX,            0                          }
-
-  AF_BLUE_STRINGSET_CYRL
-    { AF_BLUE_STRING_CYRILLIC_CAPITAL_TOP,     AF_BLUE_PROPERTY_LATIN_TOP        }
-    { AF_BLUE_STRING_CYRILLIC_CAPITAL_BOTTOM,  0                                 }
-    { AF_BLUE_STRING_CYRILLIC_SMALL,           AF_BLUE_PROPERTY_LATIN_TOP      |
-                                               AF_BLUE_PROPERTY_LATIN_X_HEIGHT   }
-    { AF_BLUE_STRING_CYRILLIC_SMALL,           0                                 }
-    { AF_BLUE_STRING_CYRILLIC_SMALL_DESCENDER, 0                                 }
-    { AF_BLUE_STRING_MAX,                      0                                 }
-
-  AF_BLUE_STRINGSET_DEVA
-    { AF_BLUE_STRING_DEVANAGARI_TOP,    AF_BLUE_PROPERTY_LATIN_TOP        }
-    { AF_BLUE_STRING_DEVANAGARI_HEAD,   AF_BLUE_PROPERTY_LATIN_TOP        }
-    { AF_BLUE_STRING_DEVANAGARI_BASE,   AF_BLUE_PROPERTY_LATIN_TOP      |
-                                        AF_BLUE_PROPERTY_LATIN_NEUTRAL  |
-                                        AF_BLUE_PROPERTY_LATIN_X_HEIGHT   }
-    { AF_BLUE_STRING_DEVANAGARI_BASE,   0                                 }
-    { AF_BLUE_STRING_DEVANAGARI_BOTTOM, 0                                 }
-    { AF_BLUE_STRING_MAX,               0                                 }
-
-  AF_BLUE_STRINGSET_DSRT
-    { AF_BLUE_STRING_DESERET_CAPITAL_TOP,    AF_BLUE_PROPERTY_LATIN_TOP        }
-    { AF_BLUE_STRING_DESERET_CAPITAL_BOTTOM, 0                                 }
-    { AF_BLUE_STRING_DESERET_SMALL_TOP,      AF_BLUE_PROPERTY_LATIN_TOP      |
-                                             AF_BLUE_PROPERTY_LATIN_X_HEIGHT   }
-    { AF_BLUE_STRING_DESERET_SMALL_BOTTOM,   0                                 }
-    { AF_BLUE_STRING_MAX,                    0                                 }
-
-  AF_BLUE_STRINGSET_ETHI
-    { AF_BLUE_STRING_ETHIOPIC_TOP,    AF_BLUE_PROPERTY_LATIN_TOP }
-    { AF_BLUE_STRING_ETHIOPIC_BOTTOM, 0                          }
-    { AF_BLUE_STRING_MAX,             0                          }
-
-  AF_BLUE_STRINGSET_GEOR
-    { AF_BLUE_STRING_GEORGIAN_MKHEDRULI_TOP,       AF_BLUE_PROPERTY_LATIN_TOP      |
-                                                   AF_BLUE_PROPERTY_LATIN_X_HEIGHT   }
-    { AF_BLUE_STRING_GEORGIAN_MKHEDRULI_BOTTOM,    0                                 }
-    { AF_BLUE_STRING_GEORGIAN_MKHEDRULI_ASCENDER,  AF_BLUE_PROPERTY_LATIN_TOP        }
-    { AF_BLUE_STRING_GEORGIAN_MKHEDRULI_DESCENDER, 0                                 }
-    { AF_BLUE_STRING_GEORGIAN_MTAVRULI_TOP,        AF_BLUE_PROPERTY_LATIN_TOP        }
-    { AF_BLUE_STRING_GEORGIAN_MTAVRULI_BOTTOM,     0                                 }
-    { AF_BLUE_STRING_MAX,                          0                                 }
-
-  AF_BLUE_STRINGSET_GEOK
-    { AF_BLUE_STRING_GEORGIAN_ASOMTAVRULI_TOP,    AF_BLUE_PROPERTY_LATIN_TOP        }
-    { AF_BLUE_STRING_GEORGIAN_ASOMTAVRULI_BOTTOM, 0                                 }
-    { AF_BLUE_STRING_GEORGIAN_NUSKHURI_TOP,       AF_BLUE_PROPERTY_LATIN_TOP      |
-                                                  AF_BLUE_PROPERTY_LATIN_X_HEIGHT   }
-    { AF_BLUE_STRING_GEORGIAN_NUSKHURI_BOTTOM,    0                                 }
-    { AF_BLUE_STRING_GEORGIAN_NUSKHURI_ASCENDER,  AF_BLUE_PROPERTY_LATIN_TOP        }
-    { AF_BLUE_STRING_GEORGIAN_NUSKHURI_DESCENDER, 0                                 }
-    { AF_BLUE_STRING_MAX,                         0                                 }
-
-  AF_BLUE_STRINGSET_GLAG
-    { AF_BLUE_STRING_GLAGOLITIC_CAPITAL_TOP,    AF_BLUE_PROPERTY_LATIN_TOP        }
-    { AF_BLUE_STRING_GLAGOLITIC_CAPITAL_BOTTOM, 0                                 }
-    { AF_BLUE_STRING_GLAGOLITIC_SMALL_TOP,      AF_BLUE_PROPERTY_LATIN_TOP      |
-                                                AF_BLUE_PROPERTY_LATIN_X_HEIGHT   }
-    { AF_BLUE_STRING_GLAGOLITIC_SMALL_BOTTOM,   0                                 }
-    { AF_BLUE_STRING_MAX,                       0                                 }
-
-  AF_BLUE_STRINGSET_GOTH
-    { AF_BLUE_STRING_GOTHIC_TOP,    AF_BLUE_PROPERTY_LATIN_TOP }
-    { AF_BLUE_STRING_GOTHIC_BOTTOM, 0                          }
-    { AF_BLUE_STRING_MAX,           0                          }
-
-  AF_BLUE_STRINGSET_GREK
-    { AF_BLUE_STRING_GREEK_CAPITAL_TOP,     AF_BLUE_PROPERTY_LATIN_TOP        }
-    { AF_BLUE_STRING_GREEK_CAPITAL_BOTTOM,  0                                 }
-    { AF_BLUE_STRING_GREEK_SMALL_BETA_TOP,  AF_BLUE_PROPERTY_LATIN_TOP        }
-    { AF_BLUE_STRING_GREEK_SMALL,           AF_BLUE_PROPERTY_LATIN_TOP      |
-                                            AF_BLUE_PROPERTY_LATIN_X_HEIGHT   }
-    { AF_BLUE_STRING_GREEK_SMALL,           0                                 }
-    { AF_BLUE_STRING_GREEK_SMALL_DESCENDER, 0                                 }
-    { AF_BLUE_STRING_MAX,                   0                                 }
-
-  AF_BLUE_STRINGSET_GUJR
-    { AF_BLUE_STRING_GUJARATI_TOP,       AF_BLUE_PROPERTY_LATIN_TOP      |
-                                         AF_BLUE_PROPERTY_LATIN_X_HEIGHT   }
-    { AF_BLUE_STRING_GUJARATI_BOTTOM,    0                                 }
-    { AF_BLUE_STRING_GUJARATI_ASCENDER,  AF_BLUE_PROPERTY_LATIN_TOP        }
-    { AF_BLUE_STRING_GUJARATI_DESCENDER, 0                                 }
-    { AF_BLUE_STRING_GUJARATI_DIGIT_TOP, AF_BLUE_PROPERTY_LATIN_TOP        }
-    { AF_BLUE_STRING_MAX,                0                                 }
-
-  AF_BLUE_STRINGSET_GURU
-    { AF_BLUE_STRING_GURMUKHI_TOP,       AF_BLUE_PROPERTY_LATIN_TOP        }
-    { AF_BLUE_STRING_GURMUKHI_HEAD,      AF_BLUE_PROPERTY_LATIN_TOP        }
-    { AF_BLUE_STRING_GURMUKHI_BASE,      AF_BLUE_PROPERTY_LATIN_TOP      |
-                                         AF_BLUE_PROPERTY_LATIN_NEUTRAL  |
-                                         AF_BLUE_PROPERTY_LATIN_X_HEIGHT   }
-    { AF_BLUE_STRING_GURMUKHI_BOTTOM,    0                                 }
-    { AF_BLUE_STRING_GURMUKHI_DIGIT_TOP, AF_BLUE_PROPERTY_LATIN_TOP        }
-    { AF_BLUE_STRING_MAX,                0                                 }
-
-  AF_BLUE_STRINGSET_HEBR
-    { AF_BLUE_STRING_HEBREW_TOP,       AF_BLUE_PROPERTY_LATIN_TOP  |
-                                       AF_BLUE_PROPERTY_LATIN_LONG   }
-    { AF_BLUE_STRING_HEBREW_BOTTOM,    0                             }
-    { AF_BLUE_STRING_HEBREW_DESCENDER, 0                             }
-    { AF_BLUE_STRING_MAX,              0                             }
-
-  AF_BLUE_STRINGSET_KNDA
-    { AF_BLUE_STRING_KANNADA_TOP,    AF_BLUE_PROPERTY_LATIN_TOP }
-    { AF_BLUE_STRING_KANNADA_BOTTOM, 0                          }
-    { AF_BLUE_STRING_MAX,            0                          }
-
-  AF_BLUE_STRINGSET_KALI
-    { AF_BLUE_STRING_KAYAH_LI_TOP,             AF_BLUE_PROPERTY_LATIN_TOP      |
-                                               AF_BLUE_PROPERTY_LATIN_X_HEIGHT   }
-    { AF_BLUE_STRING_KAYAH_LI_BOTTOM,          0                                 }
-    { AF_BLUE_STRING_KAYAH_LI_ASCENDER,        AF_BLUE_PROPERTY_LATIN_TOP        }
-    { AF_BLUE_STRING_KAYAH_LI_DESCENDER,       0                                 }
-    { AF_BLUE_STRING_KAYAH_LI_LARGE_DESCENDER, 0                                 }
-    { AF_BLUE_STRING_MAX,                      0                                 }
-
-  AF_BLUE_STRINGSET_KHMR
-    { AF_BLUE_STRING_KHMER_TOP,             AF_BLUE_PROPERTY_LATIN_TOP      |
-                                            AF_BLUE_PROPERTY_LATIN_X_HEIGHT   }
-    { AF_BLUE_STRING_KHMER_SUBSCRIPT_TOP,   AF_BLUE_PROPERTY_LATIN_SUB_TOP    }
-    { AF_BLUE_STRING_KHMER_BOTTOM,          0                                 }
-    { AF_BLUE_STRING_KHMER_DESCENDER,       0                                 }
-    { AF_BLUE_STRING_KHMER_LARGE_DESCENDER, 0                                 }
-    { AF_BLUE_STRING_MAX,                   0                                 }
-
-  AF_BLUE_STRINGSET_KHMS
-    { AF_BLUE_STRING_KHMER_SYMBOLS_WAXING_TOP,    AF_BLUE_PROPERTY_LATIN_TOP      |
-                                                  AF_BLUE_PROPERTY_LATIN_X_HEIGHT   }
-    { AF_BLUE_STRING_KHMER_SYMBOLS_WANING_BOTTOM, 0                                 }
-    { AF_BLUE_STRING_MAX,                         0                                 }
-
-  AF_BLUE_STRINGSET_LAO
-    { AF_BLUE_STRING_LAO_TOP,            AF_BLUE_PROPERTY_LATIN_TOP      |
-                                         AF_BLUE_PROPERTY_LATIN_X_HEIGHT   }
-    { AF_BLUE_STRING_LAO_BOTTOM,         0                                 }
-    { AF_BLUE_STRING_LAO_ASCENDER,       AF_BLUE_PROPERTY_LATIN_TOP        }
-    { AF_BLUE_STRING_LAO_LARGE_ASCENDER, AF_BLUE_PROPERTY_LATIN_TOP        }
-    { AF_BLUE_STRING_LAO_DESCENDER,      0                                 }
-    { AF_BLUE_STRING_MAX,                0                                 }
-
-  AF_BLUE_STRINGSET_LATN
-    { AF_BLUE_STRING_LATIN_CAPITAL_TOP,     AF_BLUE_PROPERTY_LATIN_TOP        }
-    { AF_BLUE_STRING_LATIN_CAPITAL_BOTTOM,  0                                 }
-    { AF_BLUE_STRING_LATIN_SMALL_F_TOP,     AF_BLUE_PROPERTY_LATIN_TOP        }
-    { AF_BLUE_STRING_LATIN_SMALL_TOP,       AF_BLUE_PROPERTY_LATIN_TOP      |
-                                            AF_BLUE_PROPERTY_LATIN_X_HEIGHT   }
-    { AF_BLUE_STRING_LATIN_SMALL_BOTTOM,    0                                 }
-    { AF_BLUE_STRING_LATIN_SMALL_DESCENDER, 0                                 }
-    { AF_BLUE_STRING_MAX,                   0                                 }
-
-  AF_BLUE_STRINGSET_LATB
-    { AF_BLUE_STRING_LATIN_SUBS_CAPITAL_TOP,     AF_BLUE_PROPERTY_LATIN_TOP        }
-    { AF_BLUE_STRING_LATIN_SUBS_CAPITAL_BOTTOM,  0                                 }
-    { AF_BLUE_STRING_LATIN_SUBS_SMALL_F_TOP,     AF_BLUE_PROPERTY_LATIN_TOP        }
-    { AF_BLUE_STRING_LATIN_SUBS_SMALL,           AF_BLUE_PROPERTY_LATIN_TOP      |
-                                                 AF_BLUE_PROPERTY_LATIN_X_HEIGHT   }
-    { AF_BLUE_STRING_LATIN_SUBS_SMALL,           0                                 }
-    { AF_BLUE_STRING_LATIN_SUBS_SMALL_DESCENDER, 0                                 }
-    { AF_BLUE_STRING_MAX,                        0                                 }
-
-  AF_BLUE_STRINGSET_LATP
-    { AF_BLUE_STRING_LATIN_SUPS_CAPITAL_TOP,     AF_BLUE_PROPERTY_LATIN_TOP        }
-    { AF_BLUE_STRING_LATIN_SUPS_CAPITAL_BOTTOM,  0                                 }
-    { AF_BLUE_STRING_LATIN_SUPS_SMALL_F_TOP,     AF_BLUE_PROPERTY_LATIN_TOP        }
-    { AF_BLUE_STRING_LATIN_SUPS_SMALL,           AF_BLUE_PROPERTY_LATIN_TOP      |
-                                                 AF_BLUE_PROPERTY_LATIN_X_HEIGHT   }
-    { AF_BLUE_STRING_LATIN_SUPS_SMALL,           0                                 }
-    { AF_BLUE_STRING_LATIN_SUPS_SMALL_DESCENDER, 0                                 }
-    { AF_BLUE_STRING_MAX,                        0                                 }
-
-  AF_BLUE_STRINGSET_LISU
-    { AF_BLUE_STRING_LISU_TOP,    AF_BLUE_PROPERTY_LATIN_TOP }
-    { AF_BLUE_STRING_LISU_BOTTOM, 0                          }
-    { AF_BLUE_STRING_MAX,         0                          }
-
-  AF_BLUE_STRINGSET_MLYM
-    { AF_BLUE_STRING_MALAYALAM_TOP,    AF_BLUE_PROPERTY_LATIN_TOP }
-    { AF_BLUE_STRING_MALAYALAM_BOTTOM, 0                          }
-    { AF_BLUE_STRING_MAX,              0                          }
-
-  AF_BLUE_STRINGSET_MEDF
-    { AF_BLUE_STRING_MEDEFAIDRIN_CAPITAL_TOP,     AF_BLUE_PROPERTY_LATIN_TOP        }
-    { AF_BLUE_STRING_MEDEFAIDRIN_CAPITAL_BOTTOM,  0                                 }
-    { AF_BLUE_STRING_MEDEFAIDRIN_SMALL_F_TOP,     AF_BLUE_PROPERTY_LATIN_TOP        }
-    { AF_BLUE_STRING_MEDEFAIDRIN_SMALL_TOP,       AF_BLUE_PROPERTY_LATIN_TOP      |
-                                                  AF_BLUE_PROPERTY_LATIN_X_HEIGHT   }
-    { AF_BLUE_STRING_MEDEFAIDRIN_SMALL_BOTTOM,    0                                 }
-    { AF_BLUE_STRING_MEDEFAIDRIN_SMALL_DESCENDER, 0                                 }
-    { AF_BLUE_STRING_MEDEFAIDRIN_DIGIT_TOP,       AF_BLUE_PROPERTY_LATIN_TOP        }
-    { AF_BLUE_STRING_MAX,                         0                                 }
-
-  AF_BLUE_STRINGSET_MONG
-    { AF_BLUE_STRING_MONGOLIAN_TOP_BASE,    AF_BLUE_PROPERTY_LATIN_TOP }
-    { AF_BLUE_STRING_MONGOLIAN_BOTTOM_BASE, 0                          }
-    { AF_BLUE_STRING_MAX,                   0                          }
-
-  AF_BLUE_STRINGSET_MYMR
-    { AF_BLUE_STRING_MYANMAR_TOP,       AF_BLUE_PROPERTY_LATIN_TOP      |
-                                        AF_BLUE_PROPERTY_LATIN_X_HEIGHT   }
-    { AF_BLUE_STRING_MYANMAR_BOTTOM,    0                                 }
-    { AF_BLUE_STRING_MYANMAR_ASCENDER,  AF_BLUE_PROPERTY_LATIN_TOP        }
-    { AF_BLUE_STRING_MYANMAR_DESCENDER, 0                                 }
-    { AF_BLUE_STRING_MAX,               0                                 }
-
-  AF_BLUE_STRINGSET_NKOO
-    { AF_BLUE_STRING_NKO_TOP,          AF_BLUE_PROPERTY_LATIN_TOP        }
-    { AF_BLUE_STRING_NKO_BOTTOM,       0                                 }
-    { AF_BLUE_STRING_NKO_SMALL_TOP,    AF_BLUE_PROPERTY_LATIN_TOP      |
-                                       AF_BLUE_PROPERTY_LATIN_X_HEIGHT   }
-    { AF_BLUE_STRING_NKO_SMALL_BOTTOM, 0                                 }
-    { AF_BLUE_STRING_MAX,              0                                 }
-
-  AF_BLUE_STRINGSET_NONE
-    { AF_BLUE_STRING_MAX, 0 }
-
-  AF_BLUE_STRINGSET_OLCK
-    { AF_BLUE_STRING_OL_CHIKI, AF_BLUE_PROPERTY_LATIN_TOP }
-    { AF_BLUE_STRING_OL_CHIKI, 0                          }
-    { AF_BLUE_STRING_MAX,      0                          }
-
-  AF_BLUE_STRINGSET_ORKH
-    { AF_BLUE_STRING_OLD_TURKIC_TOP,    AF_BLUE_PROPERTY_LATIN_TOP }
-    { AF_BLUE_STRING_OLD_TURKIC_BOTTOM, 0                          }
-    { AF_BLUE_STRING_MAX,               0                          }
-
-  AF_BLUE_STRINGSET_OSGE
-    { AF_BLUE_STRING_OSAGE_CAPITAL_TOP,       AF_BLUE_PROPERTY_LATIN_TOP       }
-    { AF_BLUE_STRING_OSAGE_CAPITAL_BOTTOM,    0                                }
-    { AF_BLUE_STRING_OSAGE_CAPITAL_DESCENDER, 0                                }
-    { AF_BLUE_STRING_OSAGE_SMALL_TOP,         AF_BLUE_PROPERTY_LATIN_TOP     |
-                                              AF_BLUE_PROPERTY_LATIN_X_HEIGHT  }
-    { AF_BLUE_STRING_OSAGE_SMALL_BOTTOM,      0                                }
-    { AF_BLUE_STRING_OSAGE_SMALL_ASCENDER,    AF_BLUE_PROPERTY_LATIN_TOP       }
-    { AF_BLUE_STRING_OSAGE_SMALL_DESCENDER,   0                                }
-    { AF_BLUE_STRING_MAX,                     0                                }
-
-  AF_BLUE_STRINGSET_OSMA
-    { AF_BLUE_STRING_OSMANYA_TOP,    AF_BLUE_PROPERTY_LATIN_TOP }
-    { AF_BLUE_STRING_OSMANYA_BOTTOM, 0                          }
-    { AF_BLUE_STRING_MAX,            0                          }
-
-  AF_BLUE_STRINGSET_ROHG
-    { AF_BLUE_STRING_ROHINGYA_TOP,    AF_BLUE_PROPERTY_LATIN_TOP     }
-    { AF_BLUE_STRING_ROHINGYA_BOTTOM, 0                              }
-    { AF_BLUE_STRING_ROHINGYA_JOIN,   AF_BLUE_PROPERTY_LATIN_NEUTRAL }
-    { AF_BLUE_STRING_MAX,             0                              }
-
-  AF_BLUE_STRINGSET_SAUR
-    { AF_BLUE_STRING_SAURASHTRA_TOP,    AF_BLUE_PROPERTY_LATIN_TOP }
-    { AF_BLUE_STRING_SAURASHTRA_BOTTOM, 0                          }
-    { AF_BLUE_STRING_MAX,               0                          }
-
-  AF_BLUE_STRINGSET_SHAW
-    { AF_BLUE_STRING_SHAVIAN_TOP,          AF_BLUE_PROPERTY_LATIN_TOP        }
-    { AF_BLUE_STRING_SHAVIAN_BOTTOM,       0                                 }
-    { AF_BLUE_STRING_SHAVIAN_DESCENDER,    0                                 }
-    { AF_BLUE_STRING_SHAVIAN_SMALL_TOP,    AF_BLUE_PROPERTY_LATIN_TOP      |
-                                           AF_BLUE_PROPERTY_LATIN_X_HEIGHT   }
-    { AF_BLUE_STRING_SHAVIAN_SMALL_BOTTOM, 0                                 }
-    { AF_BLUE_STRING_MAX,                  0                                 }
-
-  AF_BLUE_STRINGSET_SINH
-    { AF_BLUE_STRING_SINHALA_TOP,       AF_BLUE_PROPERTY_LATIN_TOP }
-    { AF_BLUE_STRING_SINHALA_BOTTOM,    0                          }
-    { AF_BLUE_STRING_SINHALA_DESCENDER, 0                          }
-    { AF_BLUE_STRING_MAX,               0                          }
-
-  AF_BLUE_STRINGSET_SUND
-    { AF_BLUE_STRING_SUNDANESE_TOP,       AF_BLUE_PROPERTY_LATIN_TOP }
-    { AF_BLUE_STRING_SUNDANESE_BOTTOM,    0                          }
-    { AF_BLUE_STRING_SUNDANESE_DESCENDER, 0                          }
-    { AF_BLUE_STRING_MAX,                 0                          }
-
-  AF_BLUE_STRINGSET_TAML
-    { AF_BLUE_STRING_TAMIL_TOP,    AF_BLUE_PROPERTY_LATIN_TOP }
-    { AF_BLUE_STRING_TAMIL_BOTTOM, 0                          }
-    { AF_BLUE_STRING_MAX,          0                          }
-
-  AF_BLUE_STRINGSET_TAVT
-    { AF_BLUE_STRING_TAI_VIET_TOP,    AF_BLUE_PROPERTY_LATIN_TOP }
-    { AF_BLUE_STRING_TAI_VIET_BOTTOM, 0                          }
-    { AF_BLUE_STRING_MAX,             0                          }
-
-  AF_BLUE_STRINGSET_TELU
-    { AF_BLUE_STRING_TELUGU_TOP,    AF_BLUE_PROPERTY_LATIN_TOP }
-    { AF_BLUE_STRING_TELUGU_BOTTOM, 0                          }
-    { AF_BLUE_STRING_MAX,           0                          }
-
-  AF_BLUE_STRINGSET_THAI
-    { AF_BLUE_STRING_THAI_TOP,             AF_BLUE_PROPERTY_LATIN_TOP      |
-                                           AF_BLUE_PROPERTY_LATIN_X_HEIGHT   }
-    { AF_BLUE_STRING_THAI_BOTTOM,          0                                 }
-    { AF_BLUE_STRING_THAI_ASCENDER,        AF_BLUE_PROPERTY_LATIN_TOP        }
-    { AF_BLUE_STRING_THAI_LARGE_ASCENDER,  AF_BLUE_PROPERTY_LATIN_TOP        }
-    { AF_BLUE_STRING_THAI_DESCENDER,       0                                 }
-    { AF_BLUE_STRING_THAI_LARGE_DESCENDER, 0                                 }
-    { AF_BLUE_STRING_THAI_DIGIT_TOP,       0                                 }
-    { AF_BLUE_STRING_MAX,                  0                                 }
-
-  AF_BLUE_STRINGSET_TFNG
-    { AF_BLUE_STRING_TIFINAGH, AF_BLUE_PROPERTY_LATIN_TOP }
-    { AF_BLUE_STRING_TIFINAGH, 0                          }
-    { AF_BLUE_STRING_MAX,      0                          }
-
-  AF_BLUE_STRINGSET_VAII
-    { AF_BLUE_STRING_VAI_TOP,    AF_BLUE_PROPERTY_LATIN_TOP }
-    { AF_BLUE_STRING_VAI_BOTTOM, 0                          }
-    { AF_BLUE_STRING_MAX,        0                          }
-
-#ifdef AF_CONFIG_OPTION_CJK
-
-  AF_BLUE_STRINGSET_HANI
-    { AF_BLUE_STRING_CJK_TOP,    AF_BLUE_PROPERTY_CJK_TOP     }
-    { AF_BLUE_STRING_CJK_BOTTOM, 0                            }
-#ifdef AF_CONFIG_OPTION_CJK_BLUE_HANI_VERT
-    { AF_BLUE_STRING_CJK_LEFT,   AF_BLUE_PROPERTY_CJK_HORIZ   }
-    { AF_BLUE_STRING_CJK_RIGHT,  AF_BLUE_PROPERTY_CJK_HORIZ |
-                                 AF_BLUE_PROPERTY_CJK_RIGHT   }
-#endif /* AF_CONFIG_OPTION_CJK_BLUE_HANI_VERT */
-    { AF_BLUE_STRING_MAX,        0                            }
-
-#endif /* AF_CONFIG_OPTION_CJK                */
-
-
-// END

+ 0 - 61
thirdparty/freetype/src/base/ftver.rc

@@ -1,61 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  ftver.rc                                                               */
-/*                                                                         */
-/*    FreeType VERSIONINFO resource for Windows DLLs.                      */
-/*                                                                         */
-/*  Copyright (C) 2018-2022 by                                             */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#include<windows.h>
-
-#define FT_VERSION      2,12,1,0
-#define FT_VERSION_STR  "2.12.1"
-
-VS_VERSION_INFO      VERSIONINFO
-FILEVERSION          FT_VERSION
-PRODUCTVERSION       FT_VERSION
-FILEFLAGSMASK        VS_FFI_FILEFLAGSMASK
-#ifdef _DEBUG
-FILEFLAGS            VS_FF_DEBUG
-#endif
-#ifdef DLL_EXPORT
-FILETYPE             VFT_DLL
-#define FT_FILENAME  "freetype.dll"
-#else
-FILETYPE             VFT_STATIC_LIB
-#define FT_FILENAME  "freetype.lib"
-#endif
-BEGIN
-  BLOCK "StringFileInfo"
-  BEGIN
-    BLOCK "040904E4"
-    BEGIN
-      VALUE "CompanyName",      "The FreeType Project"
-      VALUE "FileDescription",  "Font Rendering Library"
-      VALUE "FileVersion",      FT_VERSION_STR
-      VALUE "ProductName",      "FreeType"
-      VALUE "ProductVersion",   FT_VERSION_STR
-      VALUE "LegalCopyright",   "\251 2000-2022 The FreeType Project www.freetype.org. All rights reserved."
-      VALUE "InternalName",     "freetype"
-      VALUE "OriginalFilename", FT_FILENAME
-    END
-  END
-
-  BLOCK "VarFileInfo"
-  BEGIN
-    /* The following line should only be modified for localized versions.  */
-    /* It consists of any number of WORD,WORD pairs, with each pair        */
-    /* describing a "language,codepage" combination supported by the file. */
-    VALUE "Translation", 0x409, 1252
-  END
-END

+ 0 - 152
thirdparty/freetype/src/bdf/README

@@ -1,152 +0,0 @@
-                  FreeType font driver for BDF fonts
-
-                       Francesco Zappa Nardelli
-                  <[email protected]>
-
-
-Introduction
-************
-
-BDF (Bitmap Distribution Format) is a bitmap font format defined by Adobe,
-which is intended to be easily understood by both humans and computers.
-This code implements a BDF driver for the FreeType library, following the
-Adobe Specification V 2.2.  The specification of the BDF font format is
-available from Adobe's web site:
-
-  https://adobe-type-tools.github.io/font-tech-notes/pdfs/5005.BDF_Spec.pdf
-
-Many good bitmap fonts in bdf format come with XFree86 (www.XFree86.org).
-They do not define vertical metrics, because the X Consortium BDF
-specification has removed them.
-
-
-Encodings
-*********
-
-[This section is out of date, retained for historical reasons.  BDF
- properties can be retrieved with `FT_Get_BDF_Property`, character set ID
- values with `FT_Get_BDF_Charset_ID`.]
-
-The variety of encodings that accompanies bdf fonts appears to encompass the
-small set defined in freetype.h.  On the other hand, two properties that
-specify encoding and registry are usually defined in bdf fonts.
-
-I decided to make these two properties directly accessible, leaving to the
-client application the work of interpreting them.  For instance:
-
-
-  #include FT_INTERNAL_BDF_TYPES_H
-
-  FT_Face          face;
-  BDF_Public_Face  bdfface;
-
-
-  FT_New_Face( library, ..., &face );
-
-  bdfface = (BDF_Public_Face)face;
-
-  if ( ( bdfface->charset_registry == "ISO10646" ) &&
-       ( bdfface->charset_encoding == "1" )        )
-    [..]
-
-
-Thus the driver always exports `ft_encoding_none' as face->charmap.encoding.
-FT_Get_Char_Index's behavior is unmodified, that is, it converts the ULong
-value given as argument into the corresponding glyph number.
-
-If the two properties are not available, Adobe Standard Encoding should be
-assumed.
-
-
-Anti-Aliased Bitmaps
-********************
-
-The driver supports an extension to the BDF format as used in Mark Leisher's
-xmbdfed bitmap font editor.  Microsoft's SBIT tool expects bitmap fonts in
-that format for adding anti-aliased them to TrueType fonts.  It introduces a
-fourth field to the `SIZE' keyword which gives the bpp value (bits per
-pixel) of the glyph data in the font.  Possible values are 1 (the default),
-2 (four gray levels), 4 (16 gray levels), and 8 (256 gray levels).  The
-driver returns either a bitmap with 1 bit per pixel or a pixmap with 8bits
-per pixel (using 4, 16, and 256 gray levels, respectively).
-
-
-Known problems
-**************
-
-- A font is entirely loaded into memory.  Obviously, this is not the Right
-  Thing(TM).  If you have big fonts I suggest you convert them into PCF
-  format (using the bdftopcf utility): the PCF font drive of FreeType can
-  perform incremental glyph loading.
-
-When I have some time, I will implement on-demand glyph parsing.
-
-- Except for encodings properties, client applications have no visibility of
-  the PCF_Face object.  This means that applications cannot directly access
-  font tables and must trust FreeType.
-
-- Currently, glyph names are ignored.
-
-  I plan to give full visibility of the BDF_Face object in an upcoming
-  revision of the driver, thus implementing also glyph names.
-
-- As I have never seen a BDF font that defines vertical metrics, vertical
-  metrics are (parsed and) discarded.  If you own a BDF font that defines
-  vertical metrics, please let me know (I will implement them in 5-10
-  minutes).
-
-
-License
-*******
-
-Copyright (C) 2001-2002 by Francesco Zappa Nardelli
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
-CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-*** Portions of the driver (that is, bdflib.c and bdf.h):
-
-Copyright 2000 Computing Research Labs, New Mexico State University
-Copyright 2001-2002, 2011 Francesco Zappa Nardelli
-
-Permission is hereby granted, free of charge, to any person obtaining a
-copy of this software and associated documentation files (the "Software"),
-to deal in the Software without restriction, including without limitation
-the rights to use, copy, modify, merge, publish, distribute, sublicense,
-and/or sell copies of the Software, and to permit persons to whom the
-Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
-THE COMPUTING RESEARCH LAB OR NEW MEXICO STATE UNIVERSITY BE LIABLE FOR ANY
-CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT
-OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
-THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-
-Credits
-*******
-
-This driver is based on excellent Mark Leisher's bdf library.  If you
-find something good in this driver you should probably thank him, not
-me.

+ 0 - 532
thirdparty/freetype/src/gxvalid/README

@@ -1,532 +0,0 @@
-gxvalid: TrueType GX validator
-==============================
-
-
-1. What is this
----------------
-
-  `gxvalid' is a module to  validate TrueType GX tables: a collection of
-  additional tables  in TrueType  font which are  used by  `QuickDraw GX
-  Text',  Apple Advanced  Typography  (AAT).  In  addition, gxvalid  can
-  validates `kern'  tables which have  been extended for AAT.   Like the
-  otvalid  module,   gxvalid  uses   FreeType  2's  validator  framework
-  (ftvalid).
-
-  You can link gxvalid with your program; before running your own layout
-  engine, gxvalid validates a font  file.  As the result, you can remove
-  error-checking code  from the layout  engine.  It is also  possible to
-  use  gxvalid  as a  stand-alone  font  validator;  the `ftvalid'  test
-  program  included  in the  ft2demo  bundle  calls gxvalid  internally.
-  A stand-alone font validator may be useful for font developers.
-
-  This documents documents the following issues.
-
-  - supported TrueType GX tables
-  - fundamental validation limitations
-  - permissive error handling of broken GX tables
-  - `kern' table issue.
-
-
-2. Supported tables
--------------------
-
-  The following GX tables are currently supported.
-
-    bsln
-    feat
-    just
-    kern(*)
-    lcar
-    mort
-    morx
-    opbd
-    prop
-    trak
-
-  The following GX tables are currently unsupported.
-
-    cvar
-    fdsc
-    fmtx
-    fvar
-    gvar
-    Zapf
-
-  The following GX tables won't be supported.
-
-    acnt(**)
-    hsty(***)
-
-  The following undocumented tables in TrueType fonts designed for Apple
-  platform aren't handled either.
-
-    addg
-    CVTM
-    TPNM
-    umif
-
-
-  *)   The `kern'  validator handles both  the classic and the  new kern
-       formats;  the former  is supported  on both  Microsoft  and Apple
-       platforms, while the latter is supported on Apple platforms.
-
-  **)  `acnt' tables are not supported by currently available Apple font
-       tools.
-
-  ***) There  is  one more  Apple  extension,  `hsty',  but  it  is  for
-       Newton-OS, not GX  (Newton-OS is a platform by  Apple, but it can
-       use  sfnt- housed bitmap  fonts only).   Therefore, it  should be
-       excluded  from  `Apple  platform'  in the  context  of  TrueType.
-       gxvalid ignores it as Apple font tools do so.
-
-
-  We have  checked 183  fonts bundled with  MacOS 9.1, MacOS  9.2, MacOS
-  10.0, MacOS X 10.1, MSIE  for MacOS, and AppleWorks 6.0.  In addition,
-  we have  checked 67 Dynalab fonts  (designed for MacOS)  and 189 Ricoh
-  fonts (designed for Windows and  MacOS dual platforms).  The number of
-  fonts including TrueType GX tables are as follows.
-
-    bsln:  76
-    feat: 191
-    just:  84
-    kern:  59
-    lcar:   4
-    mort: 326
-    morx:  19
-    opbd:   4
-    prop: 114
-    trak:  16
-
-  Dynalab  and Ricoh fonts  don't have  GX tables  except of  `feat' and
-  `mort'.
-
-
-3. Fundamental validation limitations
--------------------------------------
-
-  TrueType  GX  provides  layout   information  to  libraries  for  font
-  rasterizers  and text layout.   gxvalid can  check whether  the layout
-  data in  a font is conformant  to the TrueType GX  format specified by
-  Apple.  But gxvalid cannot check  a how QuickDraw GX/AAT renderer uses
-  the stored information.
-
-  3-1. Validation of State Machine activity
-  -----------------------------------------
-
-    QuickDraw GX/AAT uses a `State Machine' to provide `stateful' layout
-    features,  and TrueType GX  stores the  state transition  diagram of
-    this `State  Machine' in a  `StateTable' data structure.   While the
-    State  Machine receives  a series  of glyph  IDs, the  State Machine
-    starts with `start  of text' state, walks around  various states and
-    generates various  layout information  to the  renderer, and finally
-    reaches the `end of text' state.
-
-    gxvalid can check essential errors like:
-
-      - possibility of state transitions to undefined states
-      - existence of glyph  IDs that the State Machine  doesn't know how
-        to handle
-      - the  State Machine  cannot compute  the layout  information from
-        given diagram
-
-    These errors  can be  checked within finite  steps, and  without the
-    State Machine itself, because these are `expression' errors of state
-    transition diagram.
-
-    There  is no  limitation  about  how long  the  State Machine  walks
-    around,  so validation  of  the algorithm  in  the state  transition
-    diagram requires infinite  steps, even if we had  a State Machine in
-    gxvalid.   Therefore, the  following errors  and problems  cannot be
-    checked.
-
-      - existence of states which the State Machine never transits to
-      - the  possibility that the  State Machine  never reaches  `end of
-        text'
-      - the possibility of stack underflow/overflow in the State Machine
-        (in  ligature  and  contextual  glyph substitutions,  the  State
-        Machine can store 16 glyphs onto its stack)
-
-    In addition, gxvalid doesn't check `temporary glyph IDs' used in the
-    chained State Machines  (in `mort' and `morx' tables).   If a layout
-    feature  is  implemented by  a  single  State  Machine, a  glyph  ID
-    converted by the State Machine is passed to the glyph renderer, thus
-    it  should not  point to  an undefined  glyph ID.   But if  a layout
-    feature is implemented by  chained State Machines, a component State
-    Machine  (if it  is  not the  final  one) is  permitted to  generate
-    undefined glyph IDs for temporary use, because it is handled by next
-    component State Machine and not  by the glyph renderer.  To validate
-    such temporary glyph IDs, gxvalid must stack all undefined glyph IDs
-    which  can occur in  the output  of the  previous State  Machine and
-    search  them in  the  `ClassTable' structure  of  the current  State
-    Machine.  It is too complex to  list all possible glyph IDs from the
-    StateTable, especially from a ligature substitution table.
-
-  3-2. Validation of relationship between multiple layout features
-  ----------------------------------------------------------------
-
-    gxvalid does  not validate the relationship  between multiple layout
-    features at all.
-
-    If  multiple layout  features  are defined  in  TrueType GX  tables,
-    possible  interactions,  overrides,  and  conflicts  between  layout
-    features are implicitly  given in the font too.   For example, there
-    are several predefined spacing control features:
-
-      - Text Spacing          (Proportional/Monospace/Half-width/Normal)
-      - Number Spacing        (Monospaced-numbers/Proportional-numbers)
-      - Kana Spacing          (Full-width/Proportional)
-      - Ideographic Spacing   (Full-width/Proportional)
-      - CJK Roman Spacing     (Half-width/Proportional/Default-roman
-                               /Full-width-roman/Proportional)
-
-    If all  layout features are  independently managed, we  can activate
-    inconsistent  typographic rules  like  `Text Spacing=Monospace'  and
-    `Ideographic Spacing=Proportional' at the same time.
-
-    The combinations  of layout features  is managed by a  32bit integer
-    (one bit each for selector  setting), so we can define relationships
-    between  up  to 32  features,  theoretically.   But  if one  feature
-    setting  affects  another   feature  setting,  we  need  typographic
-    priority  rules to  validate the  relationship.   Unfortunately, the
-    TrueType GX format specification does not give such information even
-    for predefined features.
-
-
-4. Permissive error handling of broken GX tables
-------------------------------------------------
-
-  When  Apple's font  rendering system  finds an  inconsistency,  like a
-  specification  violation or  an  unspecified value  in  a TrueType  GX
-  table, it does not always  return error.  In most cases, the rendering
-  engine silently  ignores such wrong  values or even whole  tables.  In
-  fact, MacOS is shipped with  fonts including broken GX/AAT tables, but
-  no harmful  effects due to  `officially broken' fonts are  observed by
-  end-users.
-
-  gxvalid  is designed  to continue  the validation  process as  long as
-  possible.  When gxvalid find wrong  values, gxvalid warns it at least,
-  and takes  a fallback procedure  if possible.  The  fallback procedure
-  depends on the debug level.
-
-  We used the following three tools to investigate Apple's error handling.
-
-    - FontValidator  (for MacOS 8.5 - 9.2)  resource fork font
-    - ftxvalidator   (for MacOS X 10.1 -)   dfont or naked-sfnt
-    - ftxdumperfuser (for MacOS X 10.1 -)   dfont or naked-sfnt
-
-  However, all tests were done on a PowerPC based Macintosh; at present,
-  we have not checked those tools on a m68k-based Macintosh.
-
-  In total, we checked 183 fonts  bundled to MacOS 9.1, MacOS 9.2, MacOS
-  10.0, MacOS X  10.1, MSIE for MacOS, and  AppleWorks 6.0.  These fonts
-  are distributed  officially, but many broken GX/AAT  tables were found
-  by Apple's font tools.  In the following, we list typical violation of
-  the GX specification, in fonts officially distributed with those Apple
-  systems.
-
-  4-1. broken BinSrchHeader (19/183)
-  ----------------------------------
-
-    `BinSrchHeader' is  a header of a  data array for  m68k platforms to
-    access memory efficiently.  Although  there are only two independent
-    parameters  for real  (`unitSize' and  `nUnits'),  BinSrchHeader has
-    three additional parameters which  can be calculated from `unitSize'
-    and  `nUnits',  for  fast  setup.   Apple  font  tools  ignore  them
-    silently, so gxvalid warns if it finds and inconsistency, and always
-    continues  validation.    The  additional  parameters   are  ignored
-    regardless of the consistency.
-
-      19  fonts include  such  inconsistencies; all  breaks  are in  the
-      BinSrchHeader structure of the `kern' table.
-
-  4-2. too-short LookupTable (5/183)
-  ----------------------------------
-
-    LookupTable format 0  is a simple array to get a  value from a given
-    GID (glyph  ID); the index of  this array is a  GID too.  Therefore,
-    the length  of the array is expected  to be same as  the maximum GID
-    value defined  in the `maxp' table,  but there are  some fonts whose
-    LookupTable format 0 is too  short to cover all GIDs.  FontValidator
-    ignores  this error silently,  ftxvalidator and  ftxdumperfuser both
-    warn and continue.  Similar problems are found in format 3 subtables
-    of `kern'.  gxvalid  warns always and abort if  the validation level
-    is set to FT_VALIDATE_PARANOID.
-
-      5 fonts include too-short kern format 0 subtables.
-      1 font includes too-short kern format 3 subtable.
-
-  4-3. broken LookupTable format 2 (1/183)
-  ----------------------------------------
-
-    LookupTable  format  2,  subformat  4  covers the  GID  space  by  a
-    collection  of  segments which  are  specified  by `firstGlyph'  and
-    `lastGlyph'.   Some  fonts  store  `firstGlyph' and  `lastGlyph'  in
-    reverse order,  so the segment specification is  broken.  Apple font
-    tools ignore this error silently;  a broken segment is ignored as if
-    it  did not  exist.   gxvalid  warns and  normalize  the segment  at
-    FT_VALIDATE_DEFAULT, or ignore  the segment at FT_VALIDATE_TIGHT, or
-    abort at FT_VALIDATE_PARANOID.
-
-      1 font includes broken LookupTable format 2, in the `just' table.
-
-    *) It seems  that all fonts manufactured by  ITC for AppleWorks have
-       this error.
-
-  4-4. bad bracketing in glyph property (14/183)
-  ----------------------------------------------
-
-    GX/AAT defines a  `bracketing' property of the glyphs  in the `prop'
-    table,  to control layout  features of  strings enclosed  inside and
-    outside  of   brackets.   Some  fonts   give  inappropriate  bracket
-    properties  to glyphs.   Apple  font tools  warn  about this  error;
-    gxvalid warns too and aborts at FT_VALIDATE_PARANOID.
-
-      14 fonts include wrong bracket properties.
-
-
-  4-5. invalid feature number (117/183)
-  -------------------------------------
-
-    The GX/AAT  extension can  include 255 different  layout features,
-    but    popular    layout     features    are    predefined    (see
-    https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html).
-    Some fonts include feature numbers which are incompatible with the
-    predefined feature registry.
-
-    In our survey, there are 140 fonts including `feat' table.
-
-    a) 67 fonts use a feature number which should not be used.
-    b) 117 fonts set the wrong feature range (nSetting).  This is mostly
-       found in the `mort' and `morx' tables.
-
-    Apple  font tools give  no warning,  although they  cannot recognize
-    what  the feature  is.   At FT_VALIDATE_DEFAULT,  gxvalid warns  but
-    continues in both cases (a, b).  At FT_VALIDATE_TIGHT, gxvalid warns
-    and aborts for (a), but continues for (b).  At FT_VALIDATE_PARANOID,
-    gxvalid warns and aborts in both cases (a, b).
-
-  4-6. invalid prop version (10/183)
-  ----------------------------------
-
-    As most TrueType GX tables, the `prop' table must start with a 32bit
-    version identifier: 0x00010000,  0x00020000 or 0x00030000.  But some
-    fonts  store nonsense binary  data instead.   When Apple  font tools
-    find them, they abort the processing immediately, and the data which
-    follows is unhandled.  gxvalid does the same.
-
-      10 fonts include broken `prop' version.
-
-    All  of these  fonts are  classic  TrueType fonts  for the  Japanese
-    script, manufactured by Apple.
-
-  4-7. unknown resource name (2/183)
-  ------------------------------------
-
-    NOTE: THIS IS NOT A TRUETYPE GX ERROR.
-
-    If  a TrueType  font is  stored  in the  resource fork  or in  dfont
-    format, the data must be tagged as `sfnt' in the resource fork index
-    to invoke TrueType font handler for the data.  But the TrueType font
-    data  in   `Keyboard.dfont'  is  tagged   as  `kbd',  and   that  in
-    `LastResort.dfont' is tagged as  `lst'.  Apple font tools can detect
-    that the data is in  TrueType format and successfully validate them.
-    Maybe  this is possible  because they  are known  to be  dfont.  The
-    current  implementation  of the  resource  fork  driver of  FreeType
-    cannot do that, thus gxvalid cannot validate them.
-
-      2 fonts use an unknown tag for the TrueType font resource.
-
-5. `kern' table issues
-----------------------
-
-  In common terminology of TrueType, `kern' is classified as a basic and
-  platform-independent table.  But there are Apple extensions of `kern',
-  and  there is  an  extension which  requires  a GX  state machine  for
-  contextual kerning.   Therefore, gxvalid includes  a special validator
-  for  `kern' tables.   Unfortunately, there  is no  exact  algorithm to
-  check Apple's extension, so  gxvalid includes a heuristic algorithm to
-  find  the proper validation  routines for  all possible  data formats,
-  including    the   data    format   for    Microsoft.     By   calling
-  classic_kern_validate() instead of gxv_validate(), you can specify the
-  `kern' format  explicitly.  However, current  FreeType2 uses Microsoft
-  `kern' format  only, others  are ignored (and  should be handled  in a
-  library one level higher than FreeType).
-
-  5-1. History
-  ------------
-
-    The original  16bit version of `kern'  was designed by  Apple in the
-    pre-GX  era, and  it was  also approved  by  Microsoft.  Afterwards,
-    Apple designed a  new 32bit version of the  `kern' table.  According
-    to  the documentation, the  difference between  the 16bit  and 32bit
-    version is only the size of  variables in the `kern' header.  In the
-    following,  we call  the original  16bit version  as  `classic', and
-    32bit version as `new'.
-
-  5-2. Versions and dialects which should be differentiated
-  ---------------------------------------------------------
-
-    The `kern' table  consists of a table header  and several subtables.
-    The version number  which identifies a `classic' or  a `new' version
-    is  explicitly   written  in  the   table  header,  but   there  are
-    undocumented  differences between  Microsoft's and  Apple's formats.
-    It is  called a `dialect' in  the following.  There  are three cases
-    which  should  be  handled:   the  new  Apple-dialect,  the  classic
-    Apple-dialect,  and the classic  Microsoft-dialect.  An  analysis of
-    the formats and the auto detection algorithm of gxvalid is described
-    in the following.
-
-    5-2-1. Version detection: classic and new kern
-    ----------------------------------------------
-
-      According  to Apple  TrueType  specification, there  are only  two
-      differences between the classic and the new:
-
-        - The `kern' table header starts with the version number.
-          The classic version starts with 0x0000 (16bit),
-          the new version starts with 0x00010000 (32bit).
-
-        - In the  `kern' table header,  the number of  subtables follows
-          the version number.
-          In the classic version, it is stored as a 16bit value.
-          In the new version, it is stored as a 32bit value.
-
-      From Apple font tool's output (DumpKERN is also tested in addition
-      to  the  three  Apple  font  tools in  above),  there  is  another
-      undocumented difference.  In the  new version, the subtable header
-      includes a 16bit variable  named `tupleIndex' which does not exist
-      in the classic version.
-
-      The new version  can store all subtable formats (0,  1, 2, and 3),
-      but the Apple TrueType specification does not mention the subtable
-      formats available in the classic version.
-
-    5-2-2. Available subtable formats in classic version
-    ----------------------------------------------------
-
-      Although the  Apple TrueType  specification recommends to  use the
-      classic version in  the case if the font is  designed for both the
-      Apple and Microsoft platforms,  it does not document the available
-      subtable formats in the classic version.
-
-      According  to the Microsoft  TrueType specification,  the subtable
-      format  assured for  Windows  and OS/2  support  is only  subtable
-      format  0.  The  Microsoft TrueType  specification  also describes
-      subtable format  2, but does  not mention which  platforms support
-      it.  Subtable formats 1, 3,  and higher are documented as reserved
-      for future use.  Therefore, the classic version can store subtable
-      formats 0 and 2, at least.  `ttfdump.exe', a font tool provided by
-      Microsoft,  ignores the  subtable format  written in  the subtable
-      header, and parses the table as if all subtables are in format 0.
-
-      `kern'  subtable format  1  uses  a StateTable,  so  it cannot  be
-      utilized without a GX  State Machine.  Therefore, it is reasonable
-      to assume  that format 1 (and  3) were introduced  after Apple had
-      introduced GX and moved to the new 32bit version.
-
-    5-2-3. Apple and Microsoft dialects
-    -----------------------------------
-
-      The  `kern' subtable  has  a 16bit  `coverage'  field to  describe
-      kerning attributes, but bit interpretations by Apple and Microsoft
-      are different:  For example, Apple  uses bits 0-7 to  identify the
-      subtable, while Microsoft uses bits 8-15.
-
-      In  addition, due  to the  output of  DumpKERN  and FontValidator,
-      Apple's bit interpretations of coverage in classic and new version
-      are  incompatible also.   In  summary, there  are three  dialects:
-      classic Apple  dialect, classic  Microsoft dialect, and  new Apple
-      dialect.  The classic Microsoft  dialect and the new Apple dialect
-      are documented  by each vendors' TrueType  font specification, but
-      the documentation for classic Apple dialect is not available.
-
-      For example,  in the  new Apple dialect,  bit 15 is  documented as
-      `set to  1 if  the kerning  is vertical'.  On  the other  hand, in
-      classic Microsoft dialect, bit 1 is documented as `set to 1 if the
-      kerning  is  horizontal'.   From   the  outputs  of  DumpKERN  and
-      FontValidator, classic  Apple dialect recognizes  15 as `set  to 1
-      when  the kerning  is horizontal'.   From the  results  of similar
-      experiments, classic Apple dialect  seems to be the Endian reverse
-      of the classic Microsoft dialect.
-
-      As a  conclusion it must be  noted that no font  tool can identify
-      classic Apple dialect or classic Microsoft dialect automatically.
-
-    5-2-4. gxvalid auto dialect detection algorithm
-    -----------------------------------------------
-
-      The first 16  bits of the `kern' table are  enough to identify the
-      version:
-
-        - if  the first  16  bits are  0x0000,  the `kern'  table is  in
-          classic Apple dialect or classic Microsoft dialect
-        - if the first 16 bits are  0x0001, and next 16 bits are 0x0000,
-          the kern table is in new Apple dialect.
-
-      If the `kern'  table is a classic one,  the 16bit `coverage' field
-      is checked next.   Firstly, the coverage bits are  decoded for the
-      classic Apple dialect using the following bit masks (this is based
-      on DumpKERN output):
-
-        0x8000: 1=horizontal, 0=vertical
-        0x4000: not used
-        0x2000: 1=cross-stream, 0=normal
-        0x1FF0: reserved
-        0x000F: subtable format
-
-      If  any  of  reserved  bits  are  set  or  the  subtable  bits  is
-      interpreted as format 1 or 3, we take it as `impossible in classic
-      Apple dialect' and retry, using the classic Microsoft dialect.
-
-        The most popular coverage in new Apple-dialect:         0x8000,
-        The most popular coverage in classic Apple-dialect:     0x0000,
-        The most popular coverage in classic Microsoft dialect: 0x0001.
-
-  5-3. Tested fonts
-  -----------------
-
-    We checked  59 fonts  bundled with MacOS  and 38 fonts  bundled with
-    Windows, where all font include a `kern' table.
-
-      - fonts bundled with MacOS
-        * new Apple dialect
-          format 0: 18
-          format 2:  1
-          format 3:  1
-        * classic Apple dialect
-          format 0: 14
-        * classic Microsoft dialect
-          format 0: 15
-
-      - fonts bundled with Windows
-        * classic Microsoft dialect
-          format 0: 38
-
-    It looks strange that classic Microsoft-dialect fonts are bundled to
-    MacOS: they come from MSIE for MacOS, except of MarkerFelt.dfont.
-
-
-  ACKNOWLEDGEMENT
-  ---------------
-
-  Some parts of gxvalid are  derived from both the `gxlayout' module and
-  the `otvalid'  module.  Development of  gxlayout was supported  by the
-  Information-technology Promotion Agency(IPA), Japan.
-
-  The detailed analysis of undefined  glyph ID utilization in `mort' and
-  `morx' tables is provided by George Williams.
-
-------------------------------------------------------------------------
-
-Copyright (C) 2004-2022 by
-suzuki toshiya, Masatake YAMATO, Red hat K.K.,
-David Turner, Robert Wilhelm, and Werner Lemberg.
-
-This  file is  part  of the  FreeType  project, and  may  only be  used,
-modified,  and  distributed under  the  terms  of  the FreeType  project
-license, LICENSE.TXT.  By continuing  to use, modify, or distribute this
-file  you indicate that  you have  read the  license and  understand and
-accept it fully.
-
-
---- end of README ---

+ 0 - 22
thirdparty/freetype/src/gzip/README.freetype

@@ -1,22 +0,0 @@
-Name: zlib
-Short Name: zlib
-URL: http://zlib.net/
-Version: 1.2.12
-License: see `zlib.h`
-
-Description:
-"A massively spiffy yet delicately unobtrusive compression library."
-
-'zlib' is a free, general-purpose, legally unencumbered lossless
-data-compression library.  'zlib' implements the "deflate" compression
-algorithm described by RFC 1951, which combines the LZ77 (Lempel-Ziv)
-algorithm with Huffman coding.  zlib also implements the zlib (RFC 1950) and
-gzip (RFC 1952) wrapper formats.
-
-Local Modifications:
-The files in this directory have been prepared as follows.
-
- - Take the unmodified source code files from the zlib distribution that are
-   included by `ftgzip.c`.
- - Run zlib's `zlib2ansi` script on all `.c` files.
- - Apply the diff file(s) in the `patches` folder.

+ 0 - 372
thirdparty/freetype/src/gzip/patches/freetype-zlib.diff

@@ -1,372 +0,0 @@
-[zlib] Fix zlib sources for compilation with FreeType
-
-We must ensure that they do not issue compiler errors or warnings when they
-are compiled as part of `src/gzip/ftgzip.c`.
-
-* src/gzip/adler32.c: Do not define unused functions when `Z_FREETYPE`
-is set.
-
-* src/gzip/gzguts.h (COPY): Rename to...
-(COPY__): ... this since `COPY` and `COPY_` conflict with enum values,
-which have the same name in `zlib.h`.
-
-* src/gzip/inflate.c, src/gzip/adler32.c: Omit unused function
-declarations when `Z_FREETYPE` is defined.
-
-* src/gzip/zlib.h: Include `ftzconf.h` instead of `zconf.h` to avoid
-conflicts with system-installed headers.
-Omit unused function declarations when `Z_FREETYPE` is defined.
-
-* src/gzip/zutil.h: Use `ft_memxxx` functions instead of `memxxx`.
-Omit unused function declarations when `Z_FREETYPE` is defined.
-
-* src/gzip/inflate.h, src/gzip/inftrees.h: Add header guard macros to
-prevent compiler errors.
-
-diff --git a/src/gzip/adler32.c b/src/gzip/adler32.c
-index be5e8a247..aa032e1dd 100644
---- a/src/gzip/adler32.c
-+++ b/src/gzip/adler32.c
-@@ -7,7 +7,9 @@
- 
- #include "zutil.h"
- 
-+#ifndef Z_FREETYPE
- local uLong adler32_combine_ OF((uLong adler1, uLong adler2, z_off64_t len2));
-+#endif
- 
- #define BASE 65521U     /* largest prime smaller than 65536 */
- #define NMAX 5552
-@@ -139,6 +141,8 @@ uLong ZEXPORT adler32(
-     return adler32_z(adler, buf, len);
- }
- 
-+#ifndef Z_FREETYPE
-+
- /* ========================================================================= */
- local uLong adler32_combine_(
-     uLong adler1,
-@@ -184,3 +188,5 @@ uLong ZEXPORT adler32_combine64(
- {
-     return adler32_combine_(adler1, adler2, len2);
- }
-+
-+#endif  /* !Z_FREETYPE */
-diff --git a/src/gzip/gzguts.h b/src/gzip/gzguts.h
-index 57faf3716..4f09a52a7 100644
---- a/src/gzip/gzguts.h
-+++ b/src/gzip/gzguts.h
-@@ -163,7 +163,7 @@
- 
- /* values for gz_state how */
- #define LOOK 0      /* look for a gzip header */
--#define COPY 1      /* copy input directly */
-+#define COPY__ 1    /* copy input directly */
- #define GZIP 2      /* decompress a gzip stream */
- 
- /* internal gzip file state data structure */
-diff --git a/src/gzip/inflate.c b/src/gzip/inflate.c
-index 4375557b4..5bf5b815e 100644
---- a/src/gzip/inflate.c
-+++ b/src/gzip/inflate.c
-@@ -99,8 +99,10 @@ local int updatewindow OF((z_streamp strm, const unsigned char FAR *end,
- #ifdef BUILDFIXED
-    void makefixed OF((void));
- #endif
-+#ifndef Z_FREETYPE
- local unsigned syncsearch OF((unsigned FAR *have, const unsigned char FAR *buf,
-                               unsigned len));
-+#endif
- 
- local int inflateStateCheck(
-     z_streamp strm)
-@@ -245,6 +247,8 @@ int ZEXPORT inflateInit_(
-     return inflateInit2_(strm, DEF_WBITS, version, stream_size);
- }
- 
-+#ifndef Z_FREETYPE
-+
- int ZEXPORT inflatePrime(
-     z_streamp strm,
-     int bits,
-@@ -266,6 +270,8 @@ int ZEXPORT inflatePrime(
-     return Z_OK;
- }
- 
-+#endif  /* !Z_FREETYPE */
-+
- /*
-    Return state with length and distance decoding tables and index sizes set to
-    fixed code decoding.  Normally this returns fixed tables from inffixed.h.
-@@ -1312,6 +1318,8 @@ int ZEXPORT inflateEnd(
-     return Z_OK;
- }
- 
-+#ifndef Z_FREETYPE
-+
- int ZEXPORT inflateGetDictionary(
-     z_streamp strm,
-     Bytef *dictionary,
-@@ -1471,6 +1479,8 @@ int ZEXPORT inflateSync(
-     return Z_OK;
- }
- 
-+#endif  /* !Z_FREETYPE */
-+
- /*
-    Returns true if inflate is currently at the end of a block generated by
-    Z_SYNC_FLUSH or Z_FULL_FLUSH. This function is used by one PPP
-@@ -1489,6 +1499,8 @@ int ZEXPORT inflateSyncPoint(
-     return state->mode == STORED && state->bits == 0;
- }
- 
-+#ifndef Z_FREETYPE
-+
- int ZEXPORT inflateCopy(
-     z_streamp dest,
-     z_streamp source)
-@@ -1536,6 +1548,8 @@ int ZEXPORT inflateCopy(
-     return Z_OK;
- }
- 
-+#endif  /* !Z_FREETYPE */
-+
- int ZEXPORT inflateUndermine(
-     z_streamp strm,
-     int subvert)
-@@ -1569,6 +1583,8 @@ int ZEXPORT inflateValidate(
-     return Z_OK;
- }
- 
-+#ifndef Z_FREETYPE
-+
- long ZEXPORT inflateMark(
-     z_streamp strm)
- {
-@@ -1590,3 +1606,5 @@ unsigned long ZEXPORT inflateCodesUsed(
-     state = (struct inflate_state FAR *)strm->state;
-     return (unsigned long)(state->next - state->codes);
- }
-+
-+#endif  /* !Z_FREETYPE */
-diff --git a/src/gzip/inflate.h b/src/gzip/inflate.h
-index f127b6b1f..c6f5a52e1 100644
---- a/src/gzip/inflate.h
-+++ b/src/gzip/inflate.h
-@@ -3,6 +3,9 @@
-  * For conditions of distribution and use, see copyright notice in zlib.h
-  */
- 
-+#ifndef INFLATE_H
-+#define INFLATE_H
-+
- /* WARNING: this file should *not* be used by applications. It is
-    part of the implementation of the compression library and is
-    subject to change. Applications should only use zlib.h.
-@@ -124,3 +127,5 @@ struct inflate_state {
-     int back;                   /* bits back of last unprocessed length/lit */
-     unsigned was;               /* initial length of match */
- };
-+
-+#endif  /* INFLATE_H */
-diff --git a/src/gzip/inftrees.h b/src/gzip/inftrees.h
-index baa53a0b1..c94eb78b5 100644
---- a/src/gzip/inftrees.h
-+++ b/src/gzip/inftrees.h
-@@ -3,6 +3,9 @@
-  * For conditions of distribution and use, see copyright notice in zlib.h
-  */
- 
-+#ifndef INFTREES_H
-+#define INFTREES_H
-+
- /* WARNING: this file should *not* be used by applications. It is
-    part of the implementation of the compression library and is
-    subject to change. Applications should only use zlib.h.
-@@ -60,3 +63,5 @@ typedef enum {
- int ZLIB_INTERNAL inflate_table OF((codetype type, unsigned short FAR *lens,
-                              unsigned codes, code FAR * FAR *table,
-                              unsigned FAR *bits, unsigned short FAR *work));
-+
-+#endif  /* INFTREES_H_ */
-diff --git a/src/gzip/zlib.h b/src/gzip/zlib.h
-index 4a98e38bf..d760140c2 100644
---- a/src/gzip/zlib.h
-+++ b/src/gzip/zlib.h
-@@ -31,7 +31,7 @@
- #ifndef ZLIB_H
- #define ZLIB_H
- 
--#include "zconf.h"
-+#include "ftzconf.h"
- 
- #ifdef __cplusplus
- extern "C" {
-@@ -211,6 +211,8 @@ typedef gz_header FAR *gz_headerp;
- 
- #define Z_NULL  0  /* for initializing zalloc, zfree, opaque */
- 
-+#ifndef Z_FREETYPE
-+
- #define zlib_version zlibVersion()
- /* for compatibility with versions < 1.0.2 */
- 
-@@ -246,7 +248,6 @@ ZEXTERN int ZEXPORT deflateInit OF((z_streamp strm, int level));
-    this will be done by deflate().
- */
- 
--
- ZEXTERN int ZEXPORT deflate OF((z_streamp strm, int flush));
- /*
-     deflate compresses as much data as possible, and stops when the input
-@@ -373,6 +374,7 @@ ZEXTERN int ZEXPORT deflateEnd OF((z_streamp strm));
-    deallocated).
- */
- 
-+#endif  /* !Z_FREETYPE */
- 
- /*
- ZEXTERN int ZEXPORT inflateInit OF((z_streamp strm));
-@@ -534,6 +536,8 @@ ZEXTERN int ZEXPORT inflateEnd OF((z_streamp strm));
-     The following functions are needed only in some special applications.
- */
- 
-+#ifndef Z_FREETYPE
-+
- /*
- ZEXTERN int ZEXPORT deflateInit2 OF((z_streamp strm,
-                                      int  level,
-@@ -956,6 +960,8 @@ ZEXTERN int ZEXPORT inflateCopy OF((z_streamp dest,
-    destination.
- */
- 
-+#endif  /* !Z_FREETYPE */
-+
- ZEXTERN int ZEXPORT inflateReset OF((z_streamp strm));
- /*
-      This function is equivalent to inflateEnd followed by inflateInit,
-@@ -980,6 +986,8 @@ ZEXTERN int ZEXPORT inflateReset2 OF((z_streamp strm,
-    the windowBits parameter is invalid.
- */
- 
-+#ifndef Z_FREETYPE
-+
- ZEXTERN int ZEXPORT inflatePrime OF((z_streamp strm,
-                                      int bits,
-                                      int value));
-@@ -1069,6 +1077,8 @@ ZEXTERN int ZEXPORT inflateGetHeader OF((z_streamp strm,
-    stream state was inconsistent.
- */
- 
-+#endif  /* !Z_FREETYPE */
-+
- /*
- ZEXTERN int ZEXPORT inflateBackInit OF((z_streamp strm, int windowBits,
-                                         unsigned char FAR *window));
-@@ -1095,6 +1105,8 @@ typedef unsigned (*in_func) OF((void FAR *,
-                                 z_const unsigned char FAR * FAR *));
- typedef int (*out_func) OF((void FAR *, unsigned char FAR *, unsigned));
- 
-+#ifndef Z_FREETYPE
-+
- ZEXTERN int ZEXPORT inflateBack OF((z_streamp strm,
-                                     in_func in, void FAR *in_desc,
-                                     out_func out, void FAR *out_desc));
-@@ -1214,6 +1226,8 @@ ZEXTERN uLong ZEXPORT zlibCompileFlags OF((void));
-      27-31: 0 (reserved)
-  */
- 
-+#endif  /* !Z_FREETYPE */
-+
- #ifndef Z_SOLO
- 
-                         /* utility functions */
-@@ -1742,6 +1756,8 @@ ZEXTERN uLong ZEXPORT crc32 OF((uLong crc, const Bytef *buf, uInt len));
-      if (crc != original_crc) error();
- */
- 
-+#ifndef Z_FREETYPE
-+
- ZEXTERN uLong ZEXPORT crc32_z OF((uLong crc, const Bytef *buf,
-                                   z_size_t len));
- /*
-@@ -1822,6 +1838,19 @@ ZEXTERN int ZEXPORT inflateBackInit_ OF((z_streamp strm, int windowBits,
-                            ZLIB_VERSION, (int)sizeof(z_stream))
- #endif
- 
-+#else  /* Z_FREETYPE */
-+
-+
-+ZEXTERN int ZEXPORT inflateInit2_ OF((z_streamp strm, int  windowBits,
-+                                      const char *version, int stream_size));
-+
-+#  define inflateInit2(strm, windowBits) \
-+          inflateInit2_((strm), (windowBits), ZLIB_VERSION, \
-+                        (int)sizeof(z_stream))
-+
-+#endif  /* Z_FREETYPE */
-+
-+
- #ifndef Z_SOLO
- 
- /* gzgetc() macro and its supporting function and exposed data structure.  Note
-@@ -1901,13 +1930,16 @@ ZEXTERN int ZEXPORT gzgetc_ OF((gzFile file));  /* backward compatibility */
- 
- #else /* Z_SOLO */
- 
-+#ifndef Z_FREETYPE
-    ZEXTERN uLong ZEXPORT adler32_combine OF((uLong, uLong, z_off_t));
-    ZEXTERN uLong ZEXPORT crc32_combine OF((uLong, uLong, z_off_t));
-    ZEXTERN uLong ZEXPORT crc32_combine_gen OF((z_off_t));
-+#endif
- 
- #endif /* !Z_SOLO */
- 
- /* undocumented functions */
-+#ifndef Z_FREETYPE
- ZEXTERN const char   * ZEXPORT zError           OF((int));
- ZEXTERN int            ZEXPORT inflateSyncPoint OF((z_streamp));
- ZEXTERN const z_crc_t FAR * ZEXPORT get_crc_table    OF((void));
-@@ -1927,6 +1959,7 @@ ZEXTERN int            ZEXPORTVA gzvprintf Z_ARG((gzFile file,
-                                                   va_list va));
- #  endif
- #endif
-+#endif  /* !Z_FREETYPE */
- 
- #ifdef __cplusplus
- }
-diff --git a/src/gzip/zutil.h b/src/gzip/zutil.h
-index d9a20ae1b..14f0f1a85 100644
---- a/src/gzip/zutil.h
-+++ b/src/gzip/zutil.h
-@@ -188,6 +188,8 @@ extern z_const char * const z_errmsg[10]; /* indexed by 2-zlib_error */
-   #pragma warn -8066
- #endif
- 
-+#ifndef Z_FREETYPE
-+
- /* provide prototypes for these when building zlib without LFS */
- #if !defined(_WIN32) && \
-     (!defined(_LARGEFILE64_SOURCE) || _LFS64_LARGEFILE-0 == 0)
-@@ -195,6 +197,8 @@ extern z_const char * const z_errmsg[10]; /* indexed by 2-zlib_error */
-     ZEXTERN uLong ZEXPORT crc32_combine64 OF((uLong, uLong, z_off_t));
- #endif
- 
-+#endif  /* !Z_FREETYPE */
-+
-         /* common defaults */
- 
- #ifndef OS_CODE
-@@ -226,9 +230,9 @@ extern z_const char * const z_errmsg[10]; /* indexed by 2-zlib_error */
- #    define zmemcmp _fmemcmp
- #    define zmemzero(dest, len) _fmemset(dest, 0, len)
- #  else
--#    define zmemcpy memcpy
--#    define zmemcmp memcmp
--#    define zmemzero(dest, len) memset(dest, 0, len)
-+#    define zmemcpy ft_memcpy
-+#    define zmemcmp ft_memcmp
-+#    define zmemzero(dest, len) ft_memset(dest, 0, len)
- #  endif
- #else
-    void ZLIB_INTERNAL zmemcpy OF((Bytef* dest, const Bytef* source, uInt len));

+ 0 - 96
thirdparty/freetype/src/pcf/README

@@ -1,96 +0,0 @@
-                  FreeType font driver for PCF fonts
-
-                       Francesco Zappa Nardelli
-                  <[email protected]>
-
-
-Introduction
-************
-
-PCF (Portable Compiled Format) is a binary bitmap font format, largely used
-in X world. This code implements a PCF driver for the FreeType library.
-Glyph images are loaded into memory only on demand, thus leading to a small
-memory footprint.
-
-Information on the PCF font format can only be worked out from
-`pcfread.c', and `pcfwrite.c', to be found, for instance, in the XFree86
-(www.xfree86.org) source tree (xc/lib/font/bitmap/).
-
-Many good bitmap fonts in bdf format come with XFree86: they can be
-compiled into the pcf format using the `bdftopcf' utility.
-
-
-Supported hardware
-******************
-
-The driver has been tested on linux/x86 and sunos5.5/sparc.  In both
-cases the compiler was gcc.  When back in Paris, I will test it also
-on linux/alpha.
-
-
-Encodings
-*********
-
-Use `FT_Get_BDF_Charset_ID' to access the encoding and registry.
-
-The driver always exports `ft_encoding_none' as face->charmap.encoding.
-FT_Get_Char_Index() behavior is unmodified, that is, it converts the ULong
-value given as argument into the corresponding glyph number.
-
-
-Known problems
-**************
-
-- dealing explicitly with encodings breaks the uniformity of FreeType 2
-  API.
-
-- except for encodings properties, client applications have no
-  visibility of the PCF_Face object.  This means that applications
-  cannot directly access font tables and are obliged to trust
-  FreeType.
-
-- currently, glyph names and ink_metrics are ignored.
-
-I plan to give full visibility of the PCF_Face object in the next
-release of the driver, thus implementing also glyph names and
-ink_metrics.
-
-- height is defined as (ascent - descent).  Is this correct?
-
-- if unable to read size information from the font, PCF_Init_Face
-  sets available_size->width and available_size->height to 12.
-
-- too many english grammar errors in the readme file :-(
-
-
-License
-*******
-
-Copyright (C) 2000 by Francesco Zappa Nardelli
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
-CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-
-Credits
-*******
-
-Keith Packard wrote the pcf driver found in XFree86.  His work is at
-the same time the specification and the sample implementation of the
-PCF format.  Undoubtedly, this driver is inspired from his work.

+ 0 - 73
thirdparty/freetype/src/psnames/rules.mk

@@ -1,73 +0,0 @@
-#
-# FreeType 2 psnames driver configuration rules
-#
-
-
-# Copyright (C) 1996-2022 by
-# David Turner, Robert Wilhelm, and Werner Lemberg.
-#
-# This file is part of the FreeType project, and may only be used, modified,
-# and distributed under the terms of the FreeType project license,
-# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
-# indicate that you have read the license and understand and accept it
-# fully.
-
-
-# psnames driver directory
-#
-PSNAMES_DIR := $(SRC_DIR)/psnames
-
-
-# compilation flags for the driver
-#
-PSNAMES_COMPILE := $(CC) $(ANSIFLAGS)                                \
-                         $I$(subst /,$(COMPILER_SEP),$(PSNAMES_DIR)) \
-                         $(INCLUDE_FLAGS)                            \
-                         $(FT_CFLAGS)
-
-
-# psnames driver sources (i.e., C files)
-#
-PSNAMES_DRV_SRC := $(PSNAMES_DIR)/psmodule.c
-
-
-# psnames driver headers
-#
-PSNAMES_DRV_H := $(PSNAMES_DRV_SRC:%.c=%.h) \
-                 $(PSNAMES_DIR)/psnamerr.h  \
-                 $(PSNAMES_DIR)/pstables.h
-
-
-# psnames driver object(s)
-#
-#   PSNAMES_DRV_OBJ_M is used during `multi' builds
-#   PSNAMES_DRV_OBJ_S is used during `single' builds
-#
-PSNAMES_DRV_OBJ_M := $(PSNAMES_DRV_SRC:$(PSNAMES_DIR)/%.c=$(OBJ_DIR)/%.$O)
-PSNAMES_DRV_OBJ_S := $(OBJ_DIR)/psnames.$O
-
-# psnames driver source file for single build
-#
-PSNAMES_DRV_SRC_S := $(PSNAMES_DIR)/psnames.c
-
-
-# psnames driver - single object
-#
-$(PSNAMES_DRV_OBJ_S): $(PSNAMES_DRV_SRC_S) $(PSNAMES_DRV_SRC) \
-                      $(FREETYPE_H) $(PSNAMES_DRV_H)
-	$(PSNAMES_COMPILE) $T$(subst /,$(COMPILER_SEP),$@ $(PSNAMES_DRV_SRC_S))
-
-
-# psnames driver - multiple objects
-#
-$(OBJ_DIR)/%.$O: $(PSNAMES_DIR)/%.c $(FREETYPE_H) $(PSNAMES_DRV_H)
-	$(PSNAMES_COMPILE) $T$(subst /,$(COMPILER_SEP),$@ $<)
-
-
-# update main driver object lists
-#
-DRV_OBJS_S += $(PSNAMES_DRV_OBJ_S)
-DRV_OBJS_M += $(PSNAMES_DRV_OBJ_M)
-
-
-# EOF

+ 0 - 23
thirdparty/freetype/src/raster/module.mk

@@ -1,23 +0,0 @@
-#
-# FreeType 2 renderer module definition
-#
-
-
-# Copyright (C) 1996-2022 by
-# David Turner, Robert Wilhelm, and Werner Lemberg.
-#
-# This file is part of the FreeType project, and may only be used, modified,
-# and distributed under the terms of the FreeType project license,
-# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
-# indicate that you have read the license and understand and accept it
-# fully.
-
-
-FTMODULE_H_COMMANDS += RASTER_MODULE
-
-define RASTER_MODULE
-$(OPEN_DRIVER) FT_Renderer_Class, ft_raster1_renderer_class $(CLOSE_DRIVER)
-$(ECHO_DRIVER)raster    $(ECHO_DRIVER_DESC)monochrome bitmap renderer$(ECHO_DRIVER_DONE)
-endef
-
-# EOF