shithub: freetype+ttf2subf

Download patch

ref: ba9cee479a1af5aaebce3d940fcbb8c5a3f9a833
parent: 8210ee4b69569a04add80301c51ed226616ac93d
author: Sascha Brawer <[email protected]>
date: Thu Apr 6 01:50:44 EDT 2017

[autofit] Add support for Adlam script.

* src/autofit/afblue.dat: Add blue zone data for Adlam.
* src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.

* src/autofit/afscript.h: Add Adlam standard characters.

* src/autofit/afranges.c, src/autofit/afstyles.h: Add Adlam data.

git/fs: mount .git/fs: mount/attach disallowed
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,16 @@
 2017-04-06  Sascha Brawer  <[email protected]>
 
+	[autofit] Add support for Adlam script.
+
+	* src/autofit/afblue.dat: Add blue zone data for Adlam.
+	* src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
+
+	* src/autofit/afscript.h: Add Adlam standard characters.
+
+	* src/autofit/afranges.c, src/autofit/afstyles.h: Add Adlam data.
+
+2017-04-06  Sascha Brawer  <[email protected]>
+
 	[autofit] Add support for Ol Chiki script.
 
 	* src/autofit/afblue.dat: Add blue zone data for Ol Chiki.
--- a/src/autofit/afblue.c
+++ b/src/autofit/afblue.c
@@ -26,6 +26,14 @@
   af_blue_strings[] =
   {
     /* */
+    '\xF0', '\x9E', '\xA4', '\x8C', ' ', '\xF0', '\x9E', '\xA4', '\x85', ' ', '\xF0', '\x9E', '\xA4', '\x88', ' ', '\xF0', '\x9E', '\xA4', '\x8F', ' ', '\xF0', '\x9E', '\xA4', '\x94', ' ', '\xF0', '\x9E', '\xA4', '\x9A',  /* 𞤌 𞤅 𞤈 𞤏 𞤔 𞤚 */
+    '\0',
+    '\xF0', '\x9E', '\xA4', '\x82', ' ', '\xF0', '\x9E', '\xA4', '\x96',  /* 𞤂 𞤖 */
+    '\0',
+    '\xF0', '\x9E', '\xA4', '\xAC', ' ', '\xF0', '\x9E', '\xA4', '\xAE', ' ', '\xF0', '\x9E', '\xA4', '\xBB', ' ', '\xF0', '\x9E', '\xA4', '\xBC', ' ', '\xF0', '\x9E', '\xA4', '\xBE',  /* 𞤬 𞤮 𞤻 𞤼 𞤾 */
+    '\0',
+    '\xF0', '\x9E', '\xA4', '\xA4', ' ', '\xF0', '\x9E', '\xA4', '\xA8', ' ', '\xF0', '\x9E', '\xA4', '\xA9', ' ', '\xF0', '\x9E', '\xA4', '\xAD', ' ', '\xF0', '\x9E', '\xA4', '\xB4', ' ', '\xF0', '\x9E', '\xA4', '\xB8', ' ', '\xF0', '\x9E', '\xA4', '\xBA', ' ', '\xF0', '\x9E', '\xA5', '\x80',  /* 𞤤 𞤨 𞤩 𞤭 𞤴 𞤸 𞤺 𞥀 */
+    '\0',
     '\xD8', '\xA7', ' ', '\xD8', '\xA5', ' ', '\xD9', '\x84', ' ', '\xD9', '\x83', ' ', '\xD8', '\xB7', ' ', '\xD8', '\xB8',  /* ا إ ل ك ط ظ */
     '\0',
     '\xD8', '\xAA', ' ', '\xD8', '\xAB', ' ', '\xD8', '\xB7', ' ', '\xD8', '\xB8', ' ', '\xD9', '\x83',  /* ت ث ط ظ ك */
@@ -285,6 +293,12 @@
   af_blue_stringsets[] =
   {
     /* */
+    { 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_STRING_ARABIC_TOP,    AF_BLUE_PROPERTY_LATIN_TOP     },
     { AF_BLUE_STRING_ARABIC_BOTTOM, 0                              },
     { AF_BLUE_STRING_ARABIC_JOIN,   AF_BLUE_PROPERTY_LATIN_NEUTRAL },
--- a/src/autofit/afblue.dat
+++ b/src/autofit/afblue.dat
@@ -74,6 +74,15 @@
 
 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
@@ -487,6 +496,14 @@
 
 
 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     }
--- a/src/autofit/afblue.h
+++ b/src/autofit/afblue.h
@@ -77,112 +77,116 @@
 
   typedef enum  AF_Blue_String_
   {
-    AF_BLUE_STRING_ARABIC_TOP = 0,
-    AF_BLUE_STRING_ARABIC_BOTTOM = 18,
-    AF_BLUE_STRING_ARABIC_JOIN = 33,
-    AF_BLUE_STRING_ARMENIAN_CAPITAL_TOP = 36,
-    AF_BLUE_STRING_ARMENIAN_CAPITAL_BOTTOM = 60,
-    AF_BLUE_STRING_ARMENIAN_SMALL_ASCENDER = 84,
-    AF_BLUE_STRING_ARMENIAN_SMALL_TOP = 105,
-    AF_BLUE_STRING_ARMENIAN_SMALL_BOTTOM = 129,
-    AF_BLUE_STRING_ARMENIAN_SMALL_DESCENDER = 153,
-    AF_BLUE_STRING_BENGALI_BASE = 177,
-    AF_BLUE_STRING_BENGALI_TOP = 209,
-    AF_BLUE_STRING_BENGALI_HEAD = 237,
-    AF_BLUE_STRING_CHEROKEE_CAPITAL = 269,
-    AF_BLUE_STRING_CHEROKEE_SMALL_ASCENDER = 301,
-    AF_BLUE_STRING_CHEROKEE_SMALL = 333,
-    AF_BLUE_STRING_CHEROKEE_SMALL_DESCENDER = 365,
-    AF_BLUE_STRING_CYRILLIC_CAPITAL_TOP = 381,
-    AF_BLUE_STRING_CYRILLIC_CAPITAL_BOTTOM = 405,
-    AF_BLUE_STRING_CYRILLIC_SMALL = 429,
-    AF_BLUE_STRING_CYRILLIC_SMALL_DESCENDER = 453,
-    AF_BLUE_STRING_DEVANAGARI_BASE = 462,
-    AF_BLUE_STRING_DEVANAGARI_TOP = 494,
-    AF_BLUE_STRING_DEVANAGARI_HEAD = 526,
-    AF_BLUE_STRING_DEVANAGARI_BOTTOM = 558,
-    AF_BLUE_STRING_ETHIOPIC_TOP = 566,
-    AF_BLUE_STRING_ETHIOPIC_BOTTOM = 598,
-    AF_BLUE_STRING_GEORGIAN_MKHEDRULI_TOP = 630,
-    AF_BLUE_STRING_GEORGIAN_MKHEDRULI_BOTTOM = 662,
-    AF_BLUE_STRING_GEORGIAN_MKHEDRULI_ASCENDER = 694,
-    AF_BLUE_STRING_GEORGIAN_MKHEDRULI_DESCENDER = 726,
-    AF_BLUE_STRING_GEORGIAN_ASOMTAVRULI_TOP = 758,
-    AF_BLUE_STRING_GEORGIAN_ASOMTAVRULI_BOTTOM = 790,
-    AF_BLUE_STRING_GEORGIAN_NUSKHURI_TOP = 822,
-    AF_BLUE_STRING_GEORGIAN_NUSKHURI_BOTTOM = 854,
-    AF_BLUE_STRING_GEORGIAN_NUSKHURI_ASCENDER = 886,
-    AF_BLUE_STRING_GEORGIAN_NUSKHURI_DESCENDER = 918,
-    AF_BLUE_STRING_GREEK_CAPITAL_TOP = 950,
-    AF_BLUE_STRING_GREEK_CAPITAL_BOTTOM = 971,
-    AF_BLUE_STRING_GREEK_SMALL_BETA_TOP = 989,
-    AF_BLUE_STRING_GREEK_SMALL = 1007,
-    AF_BLUE_STRING_GREEK_SMALL_DESCENDER = 1031,
-    AF_BLUE_STRING_GUJARATI_TOP = 1055,
-    AF_BLUE_STRING_GUJARATI_BOTTOM = 1087,
-    AF_BLUE_STRING_GUJARATI_ASCENDER = 1119,
-    AF_BLUE_STRING_GUJARATI_DESCENDER = 1169,
-    AF_BLUE_STRING_GUJARATI_DIGIT_TOP = 1202,
-    AF_BLUE_STRING_GURMUKHI_BASE = 1222,
-    AF_BLUE_STRING_GURMUKHI_HEAD = 1254,
-    AF_BLUE_STRING_GURMUKHI_TOP = 1286,
-    AF_BLUE_STRING_GURMUKHI_BOTTOM = 1318,
-    AF_BLUE_STRING_GURMUKHI_DIGIT_TOP = 1350,
-    AF_BLUE_STRING_HEBREW_TOP = 1370,
-    AF_BLUE_STRING_HEBREW_BOTTOM = 1394,
-    AF_BLUE_STRING_HEBREW_DESCENDER = 1412,
-    AF_BLUE_STRING_KANNADA_TOP = 1427,
-    AF_BLUE_STRING_KANNADA_BOTTOM = 1471,
-    AF_BLUE_STRING_KHMER_TOP = 1503,
-    AF_BLUE_STRING_KHMER_SUBSCRIPT_TOP = 1527,
-    AF_BLUE_STRING_KHMER_BOTTOM = 1567,
-    AF_BLUE_STRING_KHMER_DESCENDER = 1599,
-    AF_BLUE_STRING_KHMER_LARGE_DESCENDER = 1633,
-    AF_BLUE_STRING_KHMER_SYMBOLS_WAXING_TOP = 1720,
-    AF_BLUE_STRING_KHMER_SYMBOLS_WANING_BOTTOM = 1728,
-    AF_BLUE_STRING_LAO_TOP = 1736,
-    AF_BLUE_STRING_LAO_BOTTOM = 1768,
-    AF_BLUE_STRING_LAO_ASCENDER = 1800,
-    AF_BLUE_STRING_LAO_LARGE_ASCENDER = 1816,
-    AF_BLUE_STRING_LAO_DESCENDER = 1828,
-    AF_BLUE_STRING_LATIN_CAPITAL_TOP = 1852,
-    AF_BLUE_STRING_LATIN_CAPITAL_BOTTOM = 1868,
-    AF_BLUE_STRING_LATIN_SMALL_F_TOP = 1884,
-    AF_BLUE_STRING_LATIN_SMALL_TOP = 1898,
-    AF_BLUE_STRING_LATIN_SMALL_BOTTOM = 1914,
-    AF_BLUE_STRING_LATIN_SMALL_DESCENDER = 1930,
-    AF_BLUE_STRING_LATIN_SUBS_CAPITAL_TOP = 1940,
-    AF_BLUE_STRING_LATIN_SUBS_CAPITAL_BOTTOM = 1960,
-    AF_BLUE_STRING_LATIN_SUBS_SMALL_F_TOP = 1980,
-    AF_BLUE_STRING_LATIN_SUBS_SMALL = 2000,
-    AF_BLUE_STRING_LATIN_SUBS_SMALL_DESCENDER = 2036,
-    AF_BLUE_STRING_LATIN_SUPS_CAPITAL_TOP = 2056,
-    AF_BLUE_STRING_LATIN_SUPS_CAPITAL_BOTTOM = 2087,
-    AF_BLUE_STRING_LATIN_SUPS_SMALL_F_TOP = 2116,
-    AF_BLUE_STRING_LATIN_SUPS_SMALL = 2142,
-    AF_BLUE_STRING_LATIN_SUPS_SMALL_DESCENDER = 2167,
-    AF_BLUE_STRING_MALAYALAM_TOP = 2178,
-    AF_BLUE_STRING_MALAYALAM_BOTTOM = 2222,
-    AF_BLUE_STRING_MYANMAR_TOP = 2254,
-    AF_BLUE_STRING_MYANMAR_BOTTOM = 2286,
-    AF_BLUE_STRING_MYANMAR_ASCENDER = 2318,
-    AF_BLUE_STRING_MYANMAR_DESCENDER = 2346,
-    AF_BLUE_STRING_OL_CHIKI = 2378,
-    AF_BLUE_STRING_SINHALA_TOP = 2402,
-    AF_BLUE_STRING_SINHALA_BOTTOM = 2434,
-    AF_BLUE_STRING_SINHALA_DESCENDER = 2466,
-    AF_BLUE_STRING_TAMIL_TOP = 2510,
-    AF_BLUE_STRING_TAMIL_BOTTOM = 2542,
-    AF_BLUE_STRING_TELUGU_TOP = 2574,
-    AF_BLUE_STRING_TELUGU_BOTTOM = 2602,
-    AF_BLUE_STRING_THAI_TOP = 2630,
-    AF_BLUE_STRING_THAI_BOTTOM = 2654,
-    AF_BLUE_STRING_THAI_ASCENDER = 2682,
-    AF_BLUE_STRING_THAI_LARGE_ASCENDER = 2694,
-    AF_BLUE_STRING_THAI_DESCENDER = 2706,
-    AF_BLUE_STRING_THAI_LARGE_DESCENDER = 2722,
-    AF_BLUE_STRING_THAI_DIGIT_TOP = 2730,
-    af_blue_1_1 = 2741,
+    AF_BLUE_STRING_ADLAM_CAPITAL_TOP = 0,
+    AF_BLUE_STRING_ADLAM_CAPITAL_BOTTOM = 30,
+    AF_BLUE_STRING_ADLAM_SMALL_TOP = 40,
+    AF_BLUE_STRING_ADLAM_SMALL_BOTTOM = 65,
+    AF_BLUE_STRING_ARABIC_TOP = 105,
+    AF_BLUE_STRING_ARABIC_BOTTOM = 123,
+    AF_BLUE_STRING_ARABIC_JOIN = 138,
+    AF_BLUE_STRING_ARMENIAN_CAPITAL_TOP = 141,
+    AF_BLUE_STRING_ARMENIAN_CAPITAL_BOTTOM = 165,
+    AF_BLUE_STRING_ARMENIAN_SMALL_ASCENDER = 189,
+    AF_BLUE_STRING_ARMENIAN_SMALL_TOP = 210,
+    AF_BLUE_STRING_ARMENIAN_SMALL_BOTTOM = 234,
+    AF_BLUE_STRING_ARMENIAN_SMALL_DESCENDER = 258,
+    AF_BLUE_STRING_BENGALI_BASE = 282,
+    AF_BLUE_STRING_BENGALI_TOP = 314,
+    AF_BLUE_STRING_BENGALI_HEAD = 342,
+    AF_BLUE_STRING_CHEROKEE_CAPITAL = 374,
+    AF_BLUE_STRING_CHEROKEE_SMALL_ASCENDER = 406,
+    AF_BLUE_STRING_CHEROKEE_SMALL = 438,
+    AF_BLUE_STRING_CHEROKEE_SMALL_DESCENDER = 470,
+    AF_BLUE_STRING_CYRILLIC_CAPITAL_TOP = 486,
+    AF_BLUE_STRING_CYRILLIC_CAPITAL_BOTTOM = 510,
+    AF_BLUE_STRING_CYRILLIC_SMALL = 534,
+    AF_BLUE_STRING_CYRILLIC_SMALL_DESCENDER = 558,
+    AF_BLUE_STRING_DEVANAGARI_BASE = 567,
+    AF_BLUE_STRING_DEVANAGARI_TOP = 599,
+    AF_BLUE_STRING_DEVANAGARI_HEAD = 631,
+    AF_BLUE_STRING_DEVANAGARI_BOTTOM = 663,
+    AF_BLUE_STRING_ETHIOPIC_TOP = 671,
+    AF_BLUE_STRING_ETHIOPIC_BOTTOM = 703,
+    AF_BLUE_STRING_GEORGIAN_MKHEDRULI_TOP = 735,
+    AF_BLUE_STRING_GEORGIAN_MKHEDRULI_BOTTOM = 767,
+    AF_BLUE_STRING_GEORGIAN_MKHEDRULI_ASCENDER = 799,
+    AF_BLUE_STRING_GEORGIAN_MKHEDRULI_DESCENDER = 831,
+    AF_BLUE_STRING_GEORGIAN_ASOMTAVRULI_TOP = 863,
+    AF_BLUE_STRING_GEORGIAN_ASOMTAVRULI_BOTTOM = 895,
+    AF_BLUE_STRING_GEORGIAN_NUSKHURI_TOP = 927,
+    AF_BLUE_STRING_GEORGIAN_NUSKHURI_BOTTOM = 959,
+    AF_BLUE_STRING_GEORGIAN_NUSKHURI_ASCENDER = 991,
+    AF_BLUE_STRING_GEORGIAN_NUSKHURI_DESCENDER = 1023,
+    AF_BLUE_STRING_GREEK_CAPITAL_TOP = 1055,
+    AF_BLUE_STRING_GREEK_CAPITAL_BOTTOM = 1076,
+    AF_BLUE_STRING_GREEK_SMALL_BETA_TOP = 1094,
+    AF_BLUE_STRING_GREEK_SMALL = 1112,
+    AF_BLUE_STRING_GREEK_SMALL_DESCENDER = 1136,
+    AF_BLUE_STRING_GUJARATI_TOP = 1160,
+    AF_BLUE_STRING_GUJARATI_BOTTOM = 1192,
+    AF_BLUE_STRING_GUJARATI_ASCENDER = 1224,
+    AF_BLUE_STRING_GUJARATI_DESCENDER = 1274,
+    AF_BLUE_STRING_GUJARATI_DIGIT_TOP = 1307,
+    AF_BLUE_STRING_GURMUKHI_BASE = 1327,
+    AF_BLUE_STRING_GURMUKHI_HEAD = 1359,
+    AF_BLUE_STRING_GURMUKHI_TOP = 1391,
+    AF_BLUE_STRING_GURMUKHI_BOTTOM = 1423,
+    AF_BLUE_STRING_GURMUKHI_DIGIT_TOP = 1455,
+    AF_BLUE_STRING_HEBREW_TOP = 1475,
+    AF_BLUE_STRING_HEBREW_BOTTOM = 1499,
+    AF_BLUE_STRING_HEBREW_DESCENDER = 1517,
+    AF_BLUE_STRING_KANNADA_TOP = 1532,
+    AF_BLUE_STRING_KANNADA_BOTTOM = 1576,
+    AF_BLUE_STRING_KHMER_TOP = 1608,
+    AF_BLUE_STRING_KHMER_SUBSCRIPT_TOP = 1632,
+    AF_BLUE_STRING_KHMER_BOTTOM = 1672,
+    AF_BLUE_STRING_KHMER_DESCENDER = 1704,
+    AF_BLUE_STRING_KHMER_LARGE_DESCENDER = 1738,
+    AF_BLUE_STRING_KHMER_SYMBOLS_WAXING_TOP = 1825,
+    AF_BLUE_STRING_KHMER_SYMBOLS_WANING_BOTTOM = 1833,
+    AF_BLUE_STRING_LAO_TOP = 1841,
+    AF_BLUE_STRING_LAO_BOTTOM = 1873,
+    AF_BLUE_STRING_LAO_ASCENDER = 1905,
+    AF_BLUE_STRING_LAO_LARGE_ASCENDER = 1921,
+    AF_BLUE_STRING_LAO_DESCENDER = 1933,
+    AF_BLUE_STRING_LATIN_CAPITAL_TOP = 1957,
+    AF_BLUE_STRING_LATIN_CAPITAL_BOTTOM = 1973,
+    AF_BLUE_STRING_LATIN_SMALL_F_TOP = 1989,
+    AF_BLUE_STRING_LATIN_SMALL_TOP = 2003,
+    AF_BLUE_STRING_LATIN_SMALL_BOTTOM = 2019,
+    AF_BLUE_STRING_LATIN_SMALL_DESCENDER = 2035,
+    AF_BLUE_STRING_LATIN_SUBS_CAPITAL_TOP = 2045,
+    AF_BLUE_STRING_LATIN_SUBS_CAPITAL_BOTTOM = 2065,
+    AF_BLUE_STRING_LATIN_SUBS_SMALL_F_TOP = 2085,
+    AF_BLUE_STRING_LATIN_SUBS_SMALL = 2105,
+    AF_BLUE_STRING_LATIN_SUBS_SMALL_DESCENDER = 2141,
+    AF_BLUE_STRING_LATIN_SUPS_CAPITAL_TOP = 2161,
+    AF_BLUE_STRING_LATIN_SUPS_CAPITAL_BOTTOM = 2192,
+    AF_BLUE_STRING_LATIN_SUPS_SMALL_F_TOP = 2221,
+    AF_BLUE_STRING_LATIN_SUPS_SMALL = 2247,
+    AF_BLUE_STRING_LATIN_SUPS_SMALL_DESCENDER = 2272,
+    AF_BLUE_STRING_MALAYALAM_TOP = 2283,
+    AF_BLUE_STRING_MALAYALAM_BOTTOM = 2327,
+    AF_BLUE_STRING_MYANMAR_TOP = 2359,
+    AF_BLUE_STRING_MYANMAR_BOTTOM = 2391,
+    AF_BLUE_STRING_MYANMAR_ASCENDER = 2423,
+    AF_BLUE_STRING_MYANMAR_DESCENDER = 2451,
+    AF_BLUE_STRING_OL_CHIKI = 2483,
+    AF_BLUE_STRING_SINHALA_TOP = 2507,
+    AF_BLUE_STRING_SINHALA_BOTTOM = 2539,
+    AF_BLUE_STRING_SINHALA_DESCENDER = 2571,
+    AF_BLUE_STRING_TAMIL_TOP = 2615,
+    AF_BLUE_STRING_TAMIL_BOTTOM = 2647,
+    AF_BLUE_STRING_TELUGU_TOP = 2679,
+    AF_BLUE_STRING_TELUGU_BOTTOM = 2707,
+    AF_BLUE_STRING_THAI_TOP = 2735,
+    AF_BLUE_STRING_THAI_BOTTOM = 2759,
+    AF_BLUE_STRING_THAI_ASCENDER = 2787,
+    AF_BLUE_STRING_THAI_LARGE_ASCENDER = 2799,
+    AF_BLUE_STRING_THAI_DESCENDER = 2811,
+    AF_BLUE_STRING_THAI_LARGE_DESCENDER = 2827,
+    AF_BLUE_STRING_THAI_DIGIT_TOP = 2835,
+    af_blue_1_1 = 2846,
 #ifdef AF_CONFIG_OPTION_CJK
     AF_BLUE_STRING_CJK_TOP = af_blue_1_1 + 1,
     AF_BLUE_STRING_CJK_BOTTOM = af_blue_1_1 + 203,
@@ -241,35 +245,36 @@
 
   typedef enum  AF_Blue_Stringset_
   {
-    AF_BLUE_STRINGSET_ARAB = 0,
-    AF_BLUE_STRINGSET_ARMN = 4,
-    AF_BLUE_STRINGSET_BENG = 11,
-    AF_BLUE_STRINGSET_CHER = 16,
-    AF_BLUE_STRINGSET_CYRL = 23,
-    AF_BLUE_STRINGSET_DEVA = 29,
-    AF_BLUE_STRINGSET_ETHI = 35,
-    AF_BLUE_STRINGSET_GEOR = 38,
-    AF_BLUE_STRINGSET_GEOK = 43,
-    AF_BLUE_STRINGSET_GREK = 50,
-    AF_BLUE_STRINGSET_GUJR = 57,
-    AF_BLUE_STRINGSET_GURU = 63,
-    AF_BLUE_STRINGSET_HEBR = 69,
-    AF_BLUE_STRINGSET_KNDA = 73,
-    AF_BLUE_STRINGSET_KHMR = 76,
-    AF_BLUE_STRINGSET_KHMS = 82,
-    AF_BLUE_STRINGSET_LAO = 85,
-    AF_BLUE_STRINGSET_LATN = 91,
-    AF_BLUE_STRINGSET_LATB = 98,
-    AF_BLUE_STRINGSET_LATP = 105,
-    AF_BLUE_STRINGSET_MLYM = 112,
-    AF_BLUE_STRINGSET_MYMR = 115,
-    AF_BLUE_STRINGSET_NONE = 120,
-    AF_BLUE_STRINGSET_OLCK = 121,
-    AF_BLUE_STRINGSET_SINH = 124,
-    AF_BLUE_STRINGSET_TAML = 128,
-    AF_BLUE_STRINGSET_TELU = 131,
-    AF_BLUE_STRINGSET_THAI = 134,
-    af_blue_2_1 = 142,
+    AF_BLUE_STRINGSET_ADLM = 0,
+    AF_BLUE_STRINGSET_ARAB = 5,
+    AF_BLUE_STRINGSET_ARMN = 9,
+    AF_BLUE_STRINGSET_BENG = 16,
+    AF_BLUE_STRINGSET_CHER = 21,
+    AF_BLUE_STRINGSET_CYRL = 28,
+    AF_BLUE_STRINGSET_DEVA = 34,
+    AF_BLUE_STRINGSET_ETHI = 40,
+    AF_BLUE_STRINGSET_GEOR = 43,
+    AF_BLUE_STRINGSET_GEOK = 48,
+    AF_BLUE_STRINGSET_GREK = 55,
+    AF_BLUE_STRINGSET_GUJR = 62,
+    AF_BLUE_STRINGSET_GURU = 68,
+    AF_BLUE_STRINGSET_HEBR = 74,
+    AF_BLUE_STRINGSET_KNDA = 78,
+    AF_BLUE_STRINGSET_KHMR = 81,
+    AF_BLUE_STRINGSET_KHMS = 87,
+    AF_BLUE_STRINGSET_LAO = 90,
+    AF_BLUE_STRINGSET_LATN = 96,
+    AF_BLUE_STRINGSET_LATB = 103,
+    AF_BLUE_STRINGSET_LATP = 110,
+    AF_BLUE_STRINGSET_MLYM = 117,
+    AF_BLUE_STRINGSET_MYMR = 120,
+    AF_BLUE_STRINGSET_NONE = 125,
+    AF_BLUE_STRINGSET_OLCK = 126,
+    AF_BLUE_STRINGSET_SINH = 129,
+    AF_BLUE_STRINGSET_TAML = 133,
+    AF_BLUE_STRINGSET_TELU = 136,
+    AF_BLUE_STRINGSET_THAI = 139,
+    af_blue_2_1 = 147,
 #ifdef AF_CONFIG_OPTION_CJK
     AF_BLUE_STRINGSET_HANI = af_blue_2_1 + 0,
     af_blue_2_1_1 = af_blue_2_1 + 2,
--- a/src/autofit/afranges.c
+++ b/src/autofit/afranges.c
@@ -56,6 +56,19 @@
   /* of the corresponding `ta_xxxx_uniranges' ranges               */
 
 
+  const AF_Script_UniRangeRec  af_adlm_uniranges[] =
+  {
+    AF_UNIRANGE_REC( 0x1E900, 0x1E95F ),   /* Adlam */
+    AF_UNIRANGE_REC(       0,       0 )
+  };
+
+  const AF_Script_UniRangeRec  af_adlm_nonbase_uniranges[] =
+  {
+    AF_UNIRANGE_REC( 0x1D944, 0x1E94A ),
+    AF_UNIRANGE_REC(       0,       0 )
+  };
+
+
   const AF_Script_UniRangeRec  af_arab_uniranges[] =
   {
     AF_UNIRANGE_REC(  0x0600,  0x06FF ),  /* Arabic                                 */
@@ -515,13 +528,13 @@
   };
 
 
-  const AF_Script_UniRangeRec af_olck_uniranges[] =
+  const AF_Script_UniRangeRec  af_olck_uniranges[] =
   {
     AF_UNIRANGE_REC( 0x1C50, 0x1C7F ),    /* Ol Chiki */
     AF_UNIRANGE_REC(      0,      0 )
   };
 
-  const AF_Script_UniRangeRec af_olck_nonbase_uniranges[] =
+  const AF_Script_UniRangeRec  af_olck_nonbase_uniranges[] =
   {
     AF_UNIRANGE_REC( 0, 0 )
   };
--- a/src/autofit/afscript.h
+++ b/src/autofit/afscript.h
@@ -30,6 +30,12 @@
   /* use `HB_SCRIPT_INVALID' as the HarfBuzz script name tag for      */
   /* them.                                                            */
 
+  SCRIPT( adlm, ADLM,
+          "Adlam",
+          HB_SCRIPT_ADLAM,
+          HINTING_BOTTOM_TO_TOP,
+          "\xF0\x9E\xA4\x8C \xF0\x9E\xA4\xAE" ) /* 𞤌 𞤮 */
+
   SCRIPT( arab, ARAB,
           "Arabic",
           HB_SCRIPT_ARABIC,
--- a/src/autofit/afstyles.h
+++ b/src/autofit/afstyles.h
@@ -83,6 +83,13 @@
                        DEFAULT )
 
 
+  STYLE( adlm_dflt, ADLM_DFLT,
+         "Adlam default style",
+         AF_WRITING_SYSTEM_LATIN,
+         AF_SCRIPT_ADLM,
+         AF_BLUE_STRINGSET_ADLM,
+         AF_COVERAGE_DEFAULT )
+
   STYLE( arab_dflt, ARAB_DFLT,
          "Arabic default style",
          AF_WRITING_SYSTEM_LATIN,