shithub: freetype+ttf2subf

Download patch

ref: 53f3824452e7c7f4db65622ce27349c863670a29
parent: 44c6117ea7a7d31baf4def2a3d3044f407c6be5f
author: Werner Lemberg <[email protected]>
date: Wed May 10 05:13:20 EDT 2017

[autofit] Add support for Buhid script.

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

* src/autofit/afscript.h: Add Buhid standard character.

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

git/fs: mount .git/fs: mount/attach disallowed
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,15 @@
+2017-05-10  Sascha Brawer  <[email protected]>
+	    Werner Lemberg  <[email protected]
+
+	[autofit] Add support for Buhid script.
+
+	* src/autofit/afblue.dat: Add blue zone data for Buhid.
+	* src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
+
+	* src/autofit/afscript.h: Add Buhid standard character.
+
+	* src/autofit/afranges.c, src/autofit/afstyles.h: Add Buhid data.
+
 2017-05-08  Sascha Brawer  <[email protected]>
 	    Werner Lemberg  <[email protected]
 
--- a/src/autofit/afblue.c
+++ b/src/autofit/afblue.c
@@ -62,6 +62,14 @@
     '\0',
     '\xE0', '\xA6', '\x93', ' ', '\xE0', '\xA6', '\x8F', ' ', '\xE0', '\xA6', '\xA1', ' ', '\xE0', '\xA6', '\xA4', ' ', '\xE0', '\xA6', '\xA8', ' ', '\xE0', '\xA6', '\xAC', ' ', '\xE0', '\xA6', '\xB2', ' ', '\xE0', '\xA6', '\x95',  /* ও এ ড ত ন ব ল ক */
     '\0',
+    '\xE1', '\x9D', '\x90', ' ', '\xE1', '\x9D', '\x88',  /* ᝐ ᝈ */
+    '\0',
+    '\xE1', '\x9D', '\x85', ' ', '\xE1', '\x9D', '\x8A', ' ', '\xE1', '\x9D', '\x8E',  /* ᝅ ᝊ ᝎ */
+    '\0',
+    '\xE1', '\x9D', '\x82', ' ', '\xE1', '\x9D', '\x83', ' ', '\xE1', '\x9D', '\x89', ' ', '\xE1', '\x9D', '\x8C',  /* ᝂ ᝃ ᝉ ᝌ */
+    '\0',
+    '\xE1', '\x9D', '\x80', ' ', '\xE1', '\x9D', '\x83', ' ', '\xE1', '\x9D', '\x86', ' ', '\xE1', '\x9D', '\x89', ' ', '\xE1', '\x9D', '\x8B', ' ', '\xE1', '\x9D', '\x8F', ' ', '\xE1', '\x9D', '\x91',  /* ᝀ ᝃ ᝆ ᝉ ᝋ ᝏ ᝑ */
+    '\0',
     '\xE1', '\x97', '\x9C', ' ', '\xE1', '\x96', '\xB4', ' ', '\xE1', '\x90', '\x81', ' ', '\xE1', '\x92', '\xA3', ' ', '\xE1', '\x91', '\xAB', ' ', '\xE1', '\x91', '\x8E', ' ', '\xE1', '\x94', '\x91', ' ', '\xE1', '\x97', '\xB0',  /* ᗜ ᖴ ᐁ ᒣ ᑫ ᑎ ᔑ ᗰ */
     '\0',
     '\xE1', '\x97', '\xB6', ' ', '\xE1', '\x96', '\xB5', ' ', '\xE1', '\x92', '\xA7', ' ', '\xE1', '\x90', '\x83', ' ', '\xE1', '\x91', '\x8C', ' ', '\xE1', '\x92', '\x8D', ' ', '\xE1', '\x94', '\x91', ' ', '\xE1', '\x97', '\xA2',  /* ᗶ ᖵ ᒧ ᐃ ᑌ ᒍ ᔑ ᗢ */
@@ -434,6 +442,12 @@
                                    AF_BLUE_PROPERTY_LATIN_NEUTRAL  |
                                    AF_BLUE_PROPERTY_LATIN_X_HEIGHT   },
     { AF_BLUE_STRING_BENGALI_BASE, 0                                 },
+    { AF_BLUE_STRING_MAX,          0                                 },
+    { 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_STRING_CANADIAN_SYLLABICS_TOP,             AF_BLUE_PROPERTY_LATIN_TOP        },
     { AF_BLUE_STRING_CANADIAN_SYLLABICS_BOTTOM,          0                                 },
--- a/src/autofit/afblue.dat
+++ b/src/autofit/afblue.dat
@@ -120,6 +120,15 @@
   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
@@ -665,6 +674,14 @@
                                    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_CANADIAN_SYLLABICS
--- a/src/autofit/afblue.h
+++ b/src/autofit/afblue.h
@@ -95,155 +95,159 @@
     AF_BLUE_STRING_BENGALI_BASE = 312,
     AF_BLUE_STRING_BENGALI_TOP = 344,
     AF_BLUE_STRING_BENGALI_HEAD = 372,
-    AF_BLUE_STRING_CANADIAN_SYLLABICS_TOP = 404,
-    AF_BLUE_STRING_CANADIAN_SYLLABICS_BOTTOM = 436,
-    AF_BLUE_STRING_CANADIAN_SYLLABICS_SMALL_TOP = 468,
-    AF_BLUE_STRING_CANADIAN_SYLLABICS_SMALL_BOTTOM = 500,
-    AF_BLUE_STRING_CANADIAN_SYLLABICS_SUPS_TOP = 532,
-    AF_BLUE_STRING_CANADIAN_SYLLABICS_SUPS_BOTTOM = 560,
-    AF_BLUE_STRING_CARIAN_TOP = 592,
-    AF_BLUE_STRING_CARIAN_BOTTOM = 632,
-    AF_BLUE_STRING_CHEROKEE_CAPITAL = 667,
-    AF_BLUE_STRING_CHEROKEE_SMALL_ASCENDER = 699,
-    AF_BLUE_STRING_CHEROKEE_SMALL = 731,
-    AF_BLUE_STRING_CHEROKEE_SMALL_DESCENDER = 763,
-    AF_BLUE_STRING_COPTIC_CAPITAL_TOP = 779,
-    AF_BLUE_STRING_COPTIC_CAPITAL_BOTTOM = 811,
-    AF_BLUE_STRING_COPTIC_SMALL_TOP = 843,
-    AF_BLUE_STRING_COPTIC_SMALL_BOTTOM = 875,
-    AF_BLUE_STRING_CYPRIOT_TOP = 907,
-    AF_BLUE_STRING_CYPRIOT_BOTTOM = 947,
-    AF_BLUE_STRING_CYPRIOT_SMALL = 982,
-    AF_BLUE_STRING_CYRILLIC_CAPITAL_TOP = 997,
-    AF_BLUE_STRING_CYRILLIC_CAPITAL_BOTTOM = 1021,
-    AF_BLUE_STRING_CYRILLIC_SMALL = 1045,
-    AF_BLUE_STRING_CYRILLIC_SMALL_DESCENDER = 1069,
-    AF_BLUE_STRING_DESERET_CAPITAL_TOP = 1078,
-    AF_BLUE_STRING_DESERET_CAPITAL_BOTTOM = 1103,
-    AF_BLUE_STRING_DESERET_SMALL_TOP = 1128,
-    AF_BLUE_STRING_DESERET_SMALL_BOTTOM = 1153,
-    AF_BLUE_STRING_DEVANAGARI_BASE = 1178,
-    AF_BLUE_STRING_DEVANAGARI_TOP = 1210,
-    AF_BLUE_STRING_DEVANAGARI_HEAD = 1242,
-    AF_BLUE_STRING_DEVANAGARI_BOTTOM = 1274,
-    AF_BLUE_STRING_ETHIOPIC_TOP = 1282,
-    AF_BLUE_STRING_ETHIOPIC_BOTTOM = 1314,
-    AF_BLUE_STRING_GEORGIAN_MKHEDRULI_TOP = 1346,
-    AF_BLUE_STRING_GEORGIAN_MKHEDRULI_BOTTOM = 1378,
-    AF_BLUE_STRING_GEORGIAN_MKHEDRULI_ASCENDER = 1410,
-    AF_BLUE_STRING_GEORGIAN_MKHEDRULI_DESCENDER = 1442,
-    AF_BLUE_STRING_GEORGIAN_ASOMTAVRULI_TOP = 1474,
-    AF_BLUE_STRING_GEORGIAN_ASOMTAVRULI_BOTTOM = 1506,
-    AF_BLUE_STRING_GEORGIAN_NUSKHURI_TOP = 1538,
-    AF_BLUE_STRING_GEORGIAN_NUSKHURI_BOTTOM = 1570,
-    AF_BLUE_STRING_GEORGIAN_NUSKHURI_ASCENDER = 1602,
-    AF_BLUE_STRING_GEORGIAN_NUSKHURI_DESCENDER = 1634,
-    AF_BLUE_STRING_GLAGOLITIC_CAPITAL_TOP = 1666,
-    AF_BLUE_STRING_GLAGOLITIC_CAPITAL_BOTTOM = 1698,
-    AF_BLUE_STRING_GLAGOLITIC_SMALL_TOP = 1730,
-    AF_BLUE_STRING_GLAGOLITIC_SMALL_BOTTOM = 1762,
-    AF_BLUE_STRING_GOTHIC_TOP = 1794,
-    AF_BLUE_STRING_GOTHIC_BOTTOM = 1834,
-    AF_BLUE_STRING_GREEK_CAPITAL_TOP = 1854,
-    AF_BLUE_STRING_GREEK_CAPITAL_BOTTOM = 1875,
-    AF_BLUE_STRING_GREEK_SMALL_BETA_TOP = 1893,
-    AF_BLUE_STRING_GREEK_SMALL = 1911,
-    AF_BLUE_STRING_GREEK_SMALL_DESCENDER = 1935,
-    AF_BLUE_STRING_GUJARATI_TOP = 1959,
-    AF_BLUE_STRING_GUJARATI_BOTTOM = 1991,
-    AF_BLUE_STRING_GUJARATI_ASCENDER = 2023,
-    AF_BLUE_STRING_GUJARATI_DESCENDER = 2073,
-    AF_BLUE_STRING_GUJARATI_DIGIT_TOP = 2106,
-    AF_BLUE_STRING_GURMUKHI_BASE = 2126,
-    AF_BLUE_STRING_GURMUKHI_HEAD = 2158,
-    AF_BLUE_STRING_GURMUKHI_TOP = 2190,
-    AF_BLUE_STRING_GURMUKHI_BOTTOM = 2222,
-    AF_BLUE_STRING_GURMUKHI_DIGIT_TOP = 2254,
-    AF_BLUE_STRING_HEBREW_TOP = 2274,
-    AF_BLUE_STRING_HEBREW_BOTTOM = 2298,
-    AF_BLUE_STRING_HEBREW_DESCENDER = 2316,
-    AF_BLUE_STRING_KANNADA_TOP = 2331,
-    AF_BLUE_STRING_KANNADA_BOTTOM = 2375,
-    AF_BLUE_STRING_KHMER_TOP = 2407,
-    AF_BLUE_STRING_KHMER_SUBSCRIPT_TOP = 2431,
-    AF_BLUE_STRING_KHMER_BOTTOM = 2471,
-    AF_BLUE_STRING_KHMER_DESCENDER = 2503,
-    AF_BLUE_STRING_KHMER_LARGE_DESCENDER = 2537,
-    AF_BLUE_STRING_KHMER_SYMBOLS_WAXING_TOP = 2624,
-    AF_BLUE_STRING_KHMER_SYMBOLS_WANING_BOTTOM = 2632,
-    AF_BLUE_STRING_LAO_TOP = 2640,
-    AF_BLUE_STRING_LAO_BOTTOM = 2672,
-    AF_BLUE_STRING_LAO_ASCENDER = 2704,
-    AF_BLUE_STRING_LAO_LARGE_ASCENDER = 2720,
-    AF_BLUE_STRING_LAO_DESCENDER = 2732,
-    AF_BLUE_STRING_LATIN_CAPITAL_TOP = 2756,
-    AF_BLUE_STRING_LATIN_CAPITAL_BOTTOM = 2772,
-    AF_BLUE_STRING_LATIN_SMALL_F_TOP = 2788,
-    AF_BLUE_STRING_LATIN_SMALL_TOP = 2802,
-    AF_BLUE_STRING_LATIN_SMALL_BOTTOM = 2818,
-    AF_BLUE_STRING_LATIN_SMALL_DESCENDER = 2834,
-    AF_BLUE_STRING_LATIN_SUBS_CAPITAL_TOP = 2844,
-    AF_BLUE_STRING_LATIN_SUBS_CAPITAL_BOTTOM = 2864,
-    AF_BLUE_STRING_LATIN_SUBS_SMALL_F_TOP = 2884,
-    AF_BLUE_STRING_LATIN_SUBS_SMALL = 2904,
-    AF_BLUE_STRING_LATIN_SUBS_SMALL_DESCENDER = 2940,
-    AF_BLUE_STRING_LATIN_SUPS_CAPITAL_TOP = 2960,
-    AF_BLUE_STRING_LATIN_SUPS_CAPITAL_BOTTOM = 2991,
-    AF_BLUE_STRING_LATIN_SUPS_SMALL_F_TOP = 3020,
-    AF_BLUE_STRING_LATIN_SUPS_SMALL = 3046,
-    AF_BLUE_STRING_LATIN_SUPS_SMALL_DESCENDER = 3071,
-    AF_BLUE_STRING_LISU_TOP = 3082,
-    AF_BLUE_STRING_LISU_BOTTOM = 3114,
-    AF_BLUE_STRING_MALAYALAM_TOP = 3146,
-    AF_BLUE_STRING_MALAYALAM_BOTTOM = 3190,
-    AF_BLUE_STRING_MYANMAR_TOP = 3222,
-    AF_BLUE_STRING_MYANMAR_BOTTOM = 3254,
-    AF_BLUE_STRING_MYANMAR_ASCENDER = 3286,
-    AF_BLUE_STRING_MYANMAR_DESCENDER = 3314,
-    AF_BLUE_STRING_NKO_TOP = 3346,
-    AF_BLUE_STRING_NKO_BOTTOM = 3370,
-    AF_BLUE_STRING_NKO_SMALL_TOP = 3385,
-    AF_BLUE_STRING_NKO_SMALL_BOTTOM = 3394,
-    AF_BLUE_STRING_OL_CHIKI = 3406,
-    AF_BLUE_STRING_OLD_TURKIC_TOP = 3430,
-    AF_BLUE_STRING_OLD_TURKIC_BOTTOM = 3445,
-    AF_BLUE_STRING_OSAGE_CAPITAL_TOP = 3465,
-    AF_BLUE_STRING_OSAGE_CAPITAL_BOTTOM = 3505,
-    AF_BLUE_STRING_OSAGE_CAPITAL_DESCENDER = 3535,
-    AF_BLUE_STRING_OSAGE_SMALL_TOP = 3550,
-    AF_BLUE_STRING_OSAGE_SMALL_BOTTOM = 3590,
-    AF_BLUE_STRING_OSAGE_SMALL_ASCENDER = 3630,
-    AF_BLUE_STRING_OSAGE_SMALL_DESCENDER = 3655,
-    AF_BLUE_STRING_OSMANYA_TOP = 3670,
-    AF_BLUE_STRING_OSMANYA_BOTTOM = 3710,
-    AF_BLUE_STRING_SHAVIAN_TOP = 3750,
-    AF_BLUE_STRING_SHAVIAN_BOTTOM = 3760,
-    AF_BLUE_STRING_SHAVIAN_DESCENDER = 3785,
-    AF_BLUE_STRING_SHAVIAN_SMALL_TOP = 3795,
-    AF_BLUE_STRING_SHAVIAN_SMALL_BOTTOM = 3830,
-    AF_BLUE_STRING_SINHALA_TOP = 3845,
-    AF_BLUE_STRING_SINHALA_BOTTOM = 3877,
-    AF_BLUE_STRING_SINHALA_DESCENDER = 3909,
-    AF_BLUE_STRING_SUNDANESE_TOP = 3953,
-    AF_BLUE_STRING_SUNDANESE_BOTTOM = 3977,
-    AF_BLUE_STRING_SUNDANESE_DESCENDER = 4009,
-    AF_BLUE_STRING_TAI_VIET_TOP = 4017,
-    AF_BLUE_STRING_TAI_VIET_BOTTOM = 4037,
-    AF_BLUE_STRING_TAMIL_TOP = 4049,
-    AF_BLUE_STRING_TAMIL_BOTTOM = 4081,
-    AF_BLUE_STRING_TELUGU_TOP = 4113,
-    AF_BLUE_STRING_TELUGU_BOTTOM = 4141,
-    AF_BLUE_STRING_THAI_TOP = 4169,
-    AF_BLUE_STRING_THAI_BOTTOM = 4193,
-    AF_BLUE_STRING_THAI_ASCENDER = 4221,
-    AF_BLUE_STRING_THAI_LARGE_ASCENDER = 4233,
-    AF_BLUE_STRING_THAI_DESCENDER = 4245,
-    AF_BLUE_STRING_THAI_LARGE_DESCENDER = 4261,
-    AF_BLUE_STRING_THAI_DIGIT_TOP = 4269,
-    AF_BLUE_STRING_TIFINAGH = 4281,
-    AF_BLUE_STRING_VAI_TOP = 4313,
-    AF_BLUE_STRING_VAI_BOTTOM = 4345,
-    af_blue_1_1 = 4376,
+    AF_BLUE_STRING_BUHID_TOP = 404,
+    AF_BLUE_STRING_BUHID_LARGE = 412,
+    AF_BLUE_STRING_BUHID_SMALL = 424,
+    AF_BLUE_STRING_BUHID_BOTTOM = 440,
+    AF_BLUE_STRING_CANADIAN_SYLLABICS_TOP = 468,
+    AF_BLUE_STRING_CANADIAN_SYLLABICS_BOTTOM = 500,
+    AF_BLUE_STRING_CANADIAN_SYLLABICS_SMALL_TOP = 532,
+    AF_BLUE_STRING_CANADIAN_SYLLABICS_SMALL_BOTTOM = 564,
+    AF_BLUE_STRING_CANADIAN_SYLLABICS_SUPS_TOP = 596,
+    AF_BLUE_STRING_CANADIAN_SYLLABICS_SUPS_BOTTOM = 624,
+    AF_BLUE_STRING_CARIAN_TOP = 656,
+    AF_BLUE_STRING_CARIAN_BOTTOM = 696,
+    AF_BLUE_STRING_CHEROKEE_CAPITAL = 731,
+    AF_BLUE_STRING_CHEROKEE_SMALL_ASCENDER = 763,
+    AF_BLUE_STRING_CHEROKEE_SMALL = 795,
+    AF_BLUE_STRING_CHEROKEE_SMALL_DESCENDER = 827,
+    AF_BLUE_STRING_COPTIC_CAPITAL_TOP = 843,
+    AF_BLUE_STRING_COPTIC_CAPITAL_BOTTOM = 875,
+    AF_BLUE_STRING_COPTIC_SMALL_TOP = 907,
+    AF_BLUE_STRING_COPTIC_SMALL_BOTTOM = 939,
+    AF_BLUE_STRING_CYPRIOT_TOP = 971,
+    AF_BLUE_STRING_CYPRIOT_BOTTOM = 1011,
+    AF_BLUE_STRING_CYPRIOT_SMALL = 1046,
+    AF_BLUE_STRING_CYRILLIC_CAPITAL_TOP = 1061,
+    AF_BLUE_STRING_CYRILLIC_CAPITAL_BOTTOM = 1085,
+    AF_BLUE_STRING_CYRILLIC_SMALL = 1109,
+    AF_BLUE_STRING_CYRILLIC_SMALL_DESCENDER = 1133,
+    AF_BLUE_STRING_DESERET_CAPITAL_TOP = 1142,
+    AF_BLUE_STRING_DESERET_CAPITAL_BOTTOM = 1167,
+    AF_BLUE_STRING_DESERET_SMALL_TOP = 1192,
+    AF_BLUE_STRING_DESERET_SMALL_BOTTOM = 1217,
+    AF_BLUE_STRING_DEVANAGARI_BASE = 1242,
+    AF_BLUE_STRING_DEVANAGARI_TOP = 1274,
+    AF_BLUE_STRING_DEVANAGARI_HEAD = 1306,
+    AF_BLUE_STRING_DEVANAGARI_BOTTOM = 1338,
+    AF_BLUE_STRING_ETHIOPIC_TOP = 1346,
+    AF_BLUE_STRING_ETHIOPIC_BOTTOM = 1378,
+    AF_BLUE_STRING_GEORGIAN_MKHEDRULI_TOP = 1410,
+    AF_BLUE_STRING_GEORGIAN_MKHEDRULI_BOTTOM = 1442,
+    AF_BLUE_STRING_GEORGIAN_MKHEDRULI_ASCENDER = 1474,
+    AF_BLUE_STRING_GEORGIAN_MKHEDRULI_DESCENDER = 1506,
+    AF_BLUE_STRING_GEORGIAN_ASOMTAVRULI_TOP = 1538,
+    AF_BLUE_STRING_GEORGIAN_ASOMTAVRULI_BOTTOM = 1570,
+    AF_BLUE_STRING_GEORGIAN_NUSKHURI_TOP = 1602,
+    AF_BLUE_STRING_GEORGIAN_NUSKHURI_BOTTOM = 1634,
+    AF_BLUE_STRING_GEORGIAN_NUSKHURI_ASCENDER = 1666,
+    AF_BLUE_STRING_GEORGIAN_NUSKHURI_DESCENDER = 1698,
+    AF_BLUE_STRING_GLAGOLITIC_CAPITAL_TOP = 1730,
+    AF_BLUE_STRING_GLAGOLITIC_CAPITAL_BOTTOM = 1762,
+    AF_BLUE_STRING_GLAGOLITIC_SMALL_TOP = 1794,
+    AF_BLUE_STRING_GLAGOLITIC_SMALL_BOTTOM = 1826,
+    AF_BLUE_STRING_GOTHIC_TOP = 1858,
+    AF_BLUE_STRING_GOTHIC_BOTTOM = 1898,
+    AF_BLUE_STRING_GREEK_CAPITAL_TOP = 1918,
+    AF_BLUE_STRING_GREEK_CAPITAL_BOTTOM = 1939,
+    AF_BLUE_STRING_GREEK_SMALL_BETA_TOP = 1957,
+    AF_BLUE_STRING_GREEK_SMALL = 1975,
+    AF_BLUE_STRING_GREEK_SMALL_DESCENDER = 1999,
+    AF_BLUE_STRING_GUJARATI_TOP = 2023,
+    AF_BLUE_STRING_GUJARATI_BOTTOM = 2055,
+    AF_BLUE_STRING_GUJARATI_ASCENDER = 2087,
+    AF_BLUE_STRING_GUJARATI_DESCENDER = 2137,
+    AF_BLUE_STRING_GUJARATI_DIGIT_TOP = 2170,
+    AF_BLUE_STRING_GURMUKHI_BASE = 2190,
+    AF_BLUE_STRING_GURMUKHI_HEAD = 2222,
+    AF_BLUE_STRING_GURMUKHI_TOP = 2254,
+    AF_BLUE_STRING_GURMUKHI_BOTTOM = 2286,
+    AF_BLUE_STRING_GURMUKHI_DIGIT_TOP = 2318,
+    AF_BLUE_STRING_HEBREW_TOP = 2338,
+    AF_BLUE_STRING_HEBREW_BOTTOM = 2362,
+    AF_BLUE_STRING_HEBREW_DESCENDER = 2380,
+    AF_BLUE_STRING_KANNADA_TOP = 2395,
+    AF_BLUE_STRING_KANNADA_BOTTOM = 2439,
+    AF_BLUE_STRING_KHMER_TOP = 2471,
+    AF_BLUE_STRING_KHMER_SUBSCRIPT_TOP = 2495,
+    AF_BLUE_STRING_KHMER_BOTTOM = 2535,
+    AF_BLUE_STRING_KHMER_DESCENDER = 2567,
+    AF_BLUE_STRING_KHMER_LARGE_DESCENDER = 2601,
+    AF_BLUE_STRING_KHMER_SYMBOLS_WAXING_TOP = 2688,
+    AF_BLUE_STRING_KHMER_SYMBOLS_WANING_BOTTOM = 2696,
+    AF_BLUE_STRING_LAO_TOP = 2704,
+    AF_BLUE_STRING_LAO_BOTTOM = 2736,
+    AF_BLUE_STRING_LAO_ASCENDER = 2768,
+    AF_BLUE_STRING_LAO_LARGE_ASCENDER = 2784,
+    AF_BLUE_STRING_LAO_DESCENDER = 2796,
+    AF_BLUE_STRING_LATIN_CAPITAL_TOP = 2820,
+    AF_BLUE_STRING_LATIN_CAPITAL_BOTTOM = 2836,
+    AF_BLUE_STRING_LATIN_SMALL_F_TOP = 2852,
+    AF_BLUE_STRING_LATIN_SMALL_TOP = 2866,
+    AF_BLUE_STRING_LATIN_SMALL_BOTTOM = 2882,
+    AF_BLUE_STRING_LATIN_SMALL_DESCENDER = 2898,
+    AF_BLUE_STRING_LATIN_SUBS_CAPITAL_TOP = 2908,
+    AF_BLUE_STRING_LATIN_SUBS_CAPITAL_BOTTOM = 2928,
+    AF_BLUE_STRING_LATIN_SUBS_SMALL_F_TOP = 2948,
+    AF_BLUE_STRING_LATIN_SUBS_SMALL = 2968,
+    AF_BLUE_STRING_LATIN_SUBS_SMALL_DESCENDER = 3004,
+    AF_BLUE_STRING_LATIN_SUPS_CAPITAL_TOP = 3024,
+    AF_BLUE_STRING_LATIN_SUPS_CAPITAL_BOTTOM = 3055,
+    AF_BLUE_STRING_LATIN_SUPS_SMALL_F_TOP = 3084,
+    AF_BLUE_STRING_LATIN_SUPS_SMALL = 3110,
+    AF_BLUE_STRING_LATIN_SUPS_SMALL_DESCENDER = 3135,
+    AF_BLUE_STRING_LISU_TOP = 3146,
+    AF_BLUE_STRING_LISU_BOTTOM = 3178,
+    AF_BLUE_STRING_MALAYALAM_TOP = 3210,
+    AF_BLUE_STRING_MALAYALAM_BOTTOM = 3254,
+    AF_BLUE_STRING_MYANMAR_TOP = 3286,
+    AF_BLUE_STRING_MYANMAR_BOTTOM = 3318,
+    AF_BLUE_STRING_MYANMAR_ASCENDER = 3350,
+    AF_BLUE_STRING_MYANMAR_DESCENDER = 3378,
+    AF_BLUE_STRING_NKO_TOP = 3410,
+    AF_BLUE_STRING_NKO_BOTTOM = 3434,
+    AF_BLUE_STRING_NKO_SMALL_TOP = 3449,
+    AF_BLUE_STRING_NKO_SMALL_BOTTOM = 3458,
+    AF_BLUE_STRING_OL_CHIKI = 3470,
+    AF_BLUE_STRING_OLD_TURKIC_TOP = 3494,
+    AF_BLUE_STRING_OLD_TURKIC_BOTTOM = 3509,
+    AF_BLUE_STRING_OSAGE_CAPITAL_TOP = 3529,
+    AF_BLUE_STRING_OSAGE_CAPITAL_BOTTOM = 3569,
+    AF_BLUE_STRING_OSAGE_CAPITAL_DESCENDER = 3599,
+    AF_BLUE_STRING_OSAGE_SMALL_TOP = 3614,
+    AF_BLUE_STRING_OSAGE_SMALL_BOTTOM = 3654,
+    AF_BLUE_STRING_OSAGE_SMALL_ASCENDER = 3694,
+    AF_BLUE_STRING_OSAGE_SMALL_DESCENDER = 3719,
+    AF_BLUE_STRING_OSMANYA_TOP = 3734,
+    AF_BLUE_STRING_OSMANYA_BOTTOM = 3774,
+    AF_BLUE_STRING_SHAVIAN_TOP = 3814,
+    AF_BLUE_STRING_SHAVIAN_BOTTOM = 3824,
+    AF_BLUE_STRING_SHAVIAN_DESCENDER = 3849,
+    AF_BLUE_STRING_SHAVIAN_SMALL_TOP = 3859,
+    AF_BLUE_STRING_SHAVIAN_SMALL_BOTTOM = 3894,
+    AF_BLUE_STRING_SINHALA_TOP = 3909,
+    AF_BLUE_STRING_SINHALA_BOTTOM = 3941,
+    AF_BLUE_STRING_SINHALA_DESCENDER = 3973,
+    AF_BLUE_STRING_SUNDANESE_TOP = 4017,
+    AF_BLUE_STRING_SUNDANESE_BOTTOM = 4041,
+    AF_BLUE_STRING_SUNDANESE_DESCENDER = 4073,
+    AF_BLUE_STRING_TAI_VIET_TOP = 4081,
+    AF_BLUE_STRING_TAI_VIET_BOTTOM = 4101,
+    AF_BLUE_STRING_TAMIL_TOP = 4113,
+    AF_BLUE_STRING_TAMIL_BOTTOM = 4145,
+    AF_BLUE_STRING_TELUGU_TOP = 4177,
+    AF_BLUE_STRING_TELUGU_BOTTOM = 4205,
+    AF_BLUE_STRING_THAI_TOP = 4233,
+    AF_BLUE_STRING_THAI_BOTTOM = 4257,
+    AF_BLUE_STRING_THAI_ASCENDER = 4285,
+    AF_BLUE_STRING_THAI_LARGE_ASCENDER = 4297,
+    AF_BLUE_STRING_THAI_DESCENDER = 4309,
+    AF_BLUE_STRING_THAI_LARGE_DESCENDER = 4325,
+    AF_BLUE_STRING_THAI_DIGIT_TOP = 4333,
+    AF_BLUE_STRING_TIFINAGH = 4345,
+    AF_BLUE_STRING_VAI_TOP = 4377,
+    AF_BLUE_STRING_VAI_BOTTOM = 4409,
+    af_blue_1_1 = 4440,
 #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,
@@ -307,49 +311,50 @@
     AF_BLUE_STRINGSET_ARMN = 9,
     AF_BLUE_STRINGSET_AVST = 16,
     AF_BLUE_STRINGSET_BENG = 19,
-    AF_BLUE_STRINGSET_CANADIAN_SYLLABICS = 24,
-    AF_BLUE_STRINGSET_CARI = 31,
-    AF_BLUE_STRINGSET_CHER = 34,
-    AF_BLUE_STRINGSET_COPT = 41,
-    AF_BLUE_STRINGSET_CPRT = 46,
-    AF_BLUE_STRINGSET_CYRL = 51,
-    AF_BLUE_STRINGSET_DEVA = 57,
-    AF_BLUE_STRINGSET_DSRT = 63,
-    AF_BLUE_STRINGSET_ETHI = 68,
-    AF_BLUE_STRINGSET_GEOR = 71,
-    AF_BLUE_STRINGSET_GEOK = 76,
-    AF_BLUE_STRINGSET_GLAG = 83,
-    AF_BLUE_STRINGSET_GOTH = 88,
-    AF_BLUE_STRINGSET_GREK = 91,
-    AF_BLUE_STRINGSET_GUJR = 98,
-    AF_BLUE_STRINGSET_GURU = 104,
-    AF_BLUE_STRINGSET_HEBR = 110,
-    AF_BLUE_STRINGSET_KNDA = 114,
-    AF_BLUE_STRINGSET_KHMR = 117,
-    AF_BLUE_STRINGSET_KHMS = 123,
-    AF_BLUE_STRINGSET_LAO = 126,
-    AF_BLUE_STRINGSET_LATN = 132,
-    AF_BLUE_STRINGSET_LATB = 139,
-    AF_BLUE_STRINGSET_LATP = 146,
-    AF_BLUE_STRINGSET_LISU = 153,
-    AF_BLUE_STRINGSET_MLYM = 156,
-    AF_BLUE_STRINGSET_MYMR = 159,
-    AF_BLUE_STRINGSET_NKOO = 164,
-    AF_BLUE_STRINGSET_NONE = 169,
-    AF_BLUE_STRINGSET_OLCK = 170,
-    AF_BLUE_STRINGSET_ORKH = 173,
-    AF_BLUE_STRINGSET_OSGE = 176,
-    AF_BLUE_STRINGSET_OSMA = 184,
-    AF_BLUE_STRINGSET_SHAW = 187,
-    AF_BLUE_STRINGSET_SINH = 193,
-    AF_BLUE_STRINGSET_SUND = 197,
-    AF_BLUE_STRINGSET_TAML = 201,
-    AF_BLUE_STRINGSET_TAVT = 204,
-    AF_BLUE_STRINGSET_TELU = 207,
-    AF_BLUE_STRINGSET_THAI = 210,
-    AF_BLUE_STRINGSET_TFNG = 218,
-    AF_BLUE_STRINGSET_VAII = 221,
-    af_blue_2_1 = 224,
+    AF_BLUE_STRINGSET_BUHD = 24,
+    AF_BLUE_STRINGSET_CANADIAN_SYLLABICS = 29,
+    AF_BLUE_STRINGSET_CARI = 36,
+    AF_BLUE_STRINGSET_CHER = 39,
+    AF_BLUE_STRINGSET_COPT = 46,
+    AF_BLUE_STRINGSET_CPRT = 51,
+    AF_BLUE_STRINGSET_CYRL = 56,
+    AF_BLUE_STRINGSET_DEVA = 62,
+    AF_BLUE_STRINGSET_DSRT = 68,
+    AF_BLUE_STRINGSET_ETHI = 73,
+    AF_BLUE_STRINGSET_GEOR = 76,
+    AF_BLUE_STRINGSET_GEOK = 81,
+    AF_BLUE_STRINGSET_GLAG = 88,
+    AF_BLUE_STRINGSET_GOTH = 93,
+    AF_BLUE_STRINGSET_GREK = 96,
+    AF_BLUE_STRINGSET_GUJR = 103,
+    AF_BLUE_STRINGSET_GURU = 109,
+    AF_BLUE_STRINGSET_HEBR = 115,
+    AF_BLUE_STRINGSET_KNDA = 119,
+    AF_BLUE_STRINGSET_KHMR = 122,
+    AF_BLUE_STRINGSET_KHMS = 128,
+    AF_BLUE_STRINGSET_LAO = 131,
+    AF_BLUE_STRINGSET_LATN = 137,
+    AF_BLUE_STRINGSET_LATB = 144,
+    AF_BLUE_STRINGSET_LATP = 151,
+    AF_BLUE_STRINGSET_LISU = 158,
+    AF_BLUE_STRINGSET_MLYM = 161,
+    AF_BLUE_STRINGSET_MYMR = 164,
+    AF_BLUE_STRINGSET_NKOO = 169,
+    AF_BLUE_STRINGSET_NONE = 174,
+    AF_BLUE_STRINGSET_OLCK = 175,
+    AF_BLUE_STRINGSET_ORKH = 178,
+    AF_BLUE_STRINGSET_OSGE = 181,
+    AF_BLUE_STRINGSET_OSMA = 189,
+    AF_BLUE_STRINGSET_SHAW = 192,
+    AF_BLUE_STRINGSET_SINH = 198,
+    AF_BLUE_STRINGSET_SUND = 202,
+    AF_BLUE_STRINGSET_TAML = 206,
+    AF_BLUE_STRINGSET_TAVT = 209,
+    AF_BLUE_STRINGSET_TELU = 212,
+    AF_BLUE_STRINGSET_THAI = 215,
+    AF_BLUE_STRINGSET_TFNG = 223,
+    AF_BLUE_STRINGSET_VAII = 226,
+    af_blue_2_1 = 229,
 #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
@@ -149,6 +149,19 @@
   };
 
 
+  const AF_Script_UniRangeRec  af_buhd_uniranges[] =
+  {
+    AF_UNIRANGE_REC(  0x1740,  0x175F ),   /* Buhid */
+    AF_UNIRANGE_REC(       0,       0 )
+  };
+
+  const AF_Script_UniRangeRec  af_buhd_nonbase_uniranges[] =
+  {
+    AF_UNIRANGE_REC(  0x1752,  0x1753 ),
+    AF_UNIRANGE_REC(       0,       0 )
+  };
+
+
   const AF_Script_UniRangeRec  af_cans_uniranges[] =
   {
     AF_UNIRANGE_REC(  0x1400,  0x167F ), /* Unified Canadian Aboriginal Syllabics          */
--- a/src/autofit/afscript.h
+++ b/src/autofit/afscript.h
@@ -61,6 +61,12 @@
           HINTING_TOP_TO_BOTTOM,
           "\xE0\xA7\xA6 \xE0\xA7\xAA" ) /* ০ ৪ */
 
+  SCRIPT( buhd, BUHD,
+          "Buhid",
+          HB_SCRIPT_BUHID,
+          HINTING_BOTTOM_TO_TOP,
+          "\xE1\x9D\x8B \xE1\x9D\x8F" ) /* ᝋ ᝏ */
+
   SCRIPT( cans, CANS,
           "Canadian Syllabics",
           HB_SCRIPT_CANADIAN_SYLLABICS,
--- a/src/autofit/afstyles.h
+++ b/src/autofit/afstyles.h
@@ -118,6 +118,13 @@
          AF_BLUE_STRINGSET_BENG,
          AF_COVERAGE_DEFAULT )
 
+  STYLE( buhd_dflt, BUHD_DFLT,
+         "Buhid default style",
+         AF_WRITING_SYSTEM_LATIN,
+         AF_SCRIPT_BUHD,
+         AF_BLUE_STRINGSET_BUHD,
+         AF_COVERAGE_DEFAULT )
+
   STYLE( cans_dflt, CANS_DFLT,
          "Canadian Syllabics default style",
          AF_WRITING_SYSTEM_LATIN,