shithub: freetype+ttf2subf

Download patch

ref: c9e7063a01002fbfa2b19522c3d3e554378f7690
parent: 0483fb386180b7108dd6c0e61e2c0560bce4d592
author: Sascha Brawer <[email protected]>
date: Wed May 3 19:21:13 EDT 2017

[autofit] Add support for Unified Canadian Syllabics script.

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

* src/autofit/afscript.h: Add Unified Canadian Syllabics standard
character.

* src/autofit/afranges.c, src/autofit/afstyles.h: Add Unified
Canadian Syllabics data.

git/fs: mount .git/fs: mount/attach disallowed
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,4 +1,19 @@
 2017-05-03  Sascha Brawer  <[email protected]>
+	    Werner Lemberg  <[email protected]
+
+	[autofit] Add support for Unified Canadian Syllabics script.
+
+	* src/autofit/afblue.dat: Add blue zone data for Unified Canadian
+	Syllabics.
+	* src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
+
+	* src/autofit/afscript.h: Add Unified Canadian Syllabics standard
+	character.
+
+	* src/autofit/afranges.c, src/autofit/afstyles.h: Add Unified
+	Canadian Syllabics data.
+
+2017-05-03  Sascha Brawer  <[email protected]>
 	    Werner Lemberg  <[email protected]>
 
 	[autofit] Add blue-zone support for Sundanese script.
--- a/src/autofit/afblue.c
+++ b/src/autofit/afblue.c
@@ -62,6 +62,18 @@
     '\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', '\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',  /* ᗶ ᖵ ᒧ ᐃ ᑌ ᒍ ᔑ ᗢ */
+    '\0',
+    '\xE1', '\x93', '\x93', ' ', '\xE1', '\x93', '\x95', ' ', '\xE1', '\x93', '\x80', ' ', '\xE1', '\x93', '\x82', ' ', '\xE1', '\x93', '\x84', ' ', '\xE1', '\x95', '\x84', ' ', '\xE1', '\x95', '\x86', ' ', '\xE1', '\x98', '\xA3',  /* ᓓ ᓕ ᓀ ᓂ ᓄ ᕄ ᕆ ᘣ */
+    '\0',
+    '\xE1', '\x95', '\x83', ' ', '\xE1', '\x93', '\x82', ' ', '\xE1', '\x93', '\x80', ' ', '\xE1', '\x95', '\x82', ' ', '\xE1', '\x93', '\x97', ' ', '\xE1', '\x93', '\x9A', ' ', '\xE1', '\x95', '\x86', ' ', '\xE1', '\x98', '\xA3',  /* ᕃ ᓂ ᓀ ᕂ ᓗ ᓚ ᕆ ᘣ */
+    '\0',
+    '\xE1', '\x90', '\xAA', ' ', '\xE1', '\x99', '\x86', ' ', '\xE1', '\xA3', '\x98', ' ', '\xE1', '\x90', '\xA2', ' ', '\xE1', '\x92', '\xBE', ' ', '\xE1', '\xA3', '\x97', ' ', '\xE1', '\x94', '\x86',  /* ᐪ ᙆ ᣘ ᐢ ᒾ ᣗ ᔆ */
+    '\0',
+    '\xE1', '\x99', '\x86', ' ', '\xE1', '\x97', '\xAE', ' ', '\xE1', '\x92', '\xBB', ' ', '\xE1', '\x90', '\x9E', ' ', '\xE1', '\x94', '\x86', ' ', '\xE1', '\x92', '\xA1', ' ', '\xE1', '\x92', '\xA2', ' ', '\xE1', '\x93', '\x91',  /* ᙆ ᗮ ᒻ ᐞ ᔆ ᒡ ᒢ ᓑ */
+    '\0',
     '\xE1', '\x8F', '\x86', ' ', '\xE1', '\x8E', '\xBB', ' ', '\xE1', '\x8E', '\xAC', ' ', '\xE1', '\x8F', '\x83', ' ', '\xE1', '\x8E', '\xA4', ' ', '\xE1', '\x8F', '\xA3', ' ', '\xE1', '\x8E', '\xA6', ' ', '\xE1', '\x8F', '\x95',  /* Ꮖ Ꮋ Ꭼ Ꮓ Ꭴ Ꮳ Ꭶ Ꮥ */
     '\0',
     '\xEA', '\xAE', '\x92', ' ', '\xEA', '\xAE', '\xA4', ' ', '\xEA', '\xAE', '\xB6', ' ', '\xEA', '\xAD', '\xB4', ' ', '\xEA', '\xAD', '\xBE', ' ', '\xEA', '\xAE', '\x97', ' ', '\xEA', '\xAE', '\x9D', ' ', '\xEA', '\xAE', '\xBF',  /* ꮒ ꮤ ꮶ ꭴ ꭾ ꮗ ꮝ ꮿ */
@@ -393,6 +405,14 @@
                                    AF_BLUE_PROPERTY_LATIN_X_HEIGHT   },
     { AF_BLUE_STRING_BENGALI_BASE, 0                                 },
     { AF_BLUE_STRING_MAX,          0                                 },
+    { 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_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        },
--- a/src/autofit/afblue.dat
+++ b/src/autofit/afblue.dat
@@ -120,6 +120,19 @@
   AF_BLUE_STRING_BENGALI_HEAD
     "ও এ ড ত ন ব ল ক"
 
+  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_CHEROKEE_CAPITAL
     "Ꮖ Ꮋ Ꭼ Ꮓ Ꭴ Ꮳ Ꭶ Ꮥ"
   AF_BLUE_STRING_CHEROKEE_SMALL_ASCENDER
@@ -618,6 +631,16 @@
                                    AF_BLUE_PROPERTY_LATIN_X_HEIGHT   }
     { AF_BLUE_STRING_BENGALI_BASE, 0                                 }
     { AF_BLUE_STRING_MAX,          0                                 }
+
+  AF_BLUE_STRINGSET_CANADIAN_SYLLABICS
+    { 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_CHER
     { AF_BLUE_STRING_CHEROKEE_CAPITAL,         AF_BLUE_PROPERTY_LATIN_TOP        }
--- a/src/autofit/afblue.h
+++ b/src/autofit/afblue.h
@@ -95,134 +95,140 @@
     AF_BLUE_STRING_BENGALI_BASE = 312,
     AF_BLUE_STRING_BENGALI_TOP = 344,
     AF_BLUE_STRING_BENGALI_HEAD = 372,
-    AF_BLUE_STRING_CHEROKEE_CAPITAL = 404,
-    AF_BLUE_STRING_CHEROKEE_SMALL_ASCENDER = 436,
-    AF_BLUE_STRING_CHEROKEE_SMALL = 468,
-    AF_BLUE_STRING_CHEROKEE_SMALL_DESCENDER = 500,
-    AF_BLUE_STRING_CYPRIOT_TOP = 516,
-    AF_BLUE_STRING_CYPRIOT_BOTTOM = 556,
-    AF_BLUE_STRING_CYPRIOT_SMALL = 591,
-    AF_BLUE_STRING_CYRILLIC_CAPITAL_TOP = 606,
-    AF_BLUE_STRING_CYRILLIC_CAPITAL_BOTTOM = 630,
-    AF_BLUE_STRING_CYRILLIC_SMALL = 654,
-    AF_BLUE_STRING_CYRILLIC_SMALL_DESCENDER = 678,
-    AF_BLUE_STRING_DESERET_CAPITAL_TOP = 687,
-    AF_BLUE_STRING_DESERET_CAPITAL_BOTTOM = 712,
-    AF_BLUE_STRING_DESERET_SMALL_TOP = 737,
-    AF_BLUE_STRING_DESERET_SMALL_BOTTOM = 762,
-    AF_BLUE_STRING_DEVANAGARI_BASE = 787,
-    AF_BLUE_STRING_DEVANAGARI_TOP = 819,
-    AF_BLUE_STRING_DEVANAGARI_HEAD = 851,
-    AF_BLUE_STRING_DEVANAGARI_BOTTOM = 883,
-    AF_BLUE_STRING_ETHIOPIC_TOP = 891,
-    AF_BLUE_STRING_ETHIOPIC_BOTTOM = 923,
-    AF_BLUE_STRING_GEORGIAN_MKHEDRULI_TOP = 955,
-    AF_BLUE_STRING_GEORGIAN_MKHEDRULI_BOTTOM = 987,
-    AF_BLUE_STRING_GEORGIAN_MKHEDRULI_ASCENDER = 1019,
-    AF_BLUE_STRING_GEORGIAN_MKHEDRULI_DESCENDER = 1051,
-    AF_BLUE_STRING_GEORGIAN_ASOMTAVRULI_TOP = 1083,
-    AF_BLUE_STRING_GEORGIAN_ASOMTAVRULI_BOTTOM = 1115,
-    AF_BLUE_STRING_GEORGIAN_NUSKHURI_TOP = 1147,
-    AF_BLUE_STRING_GEORGIAN_NUSKHURI_BOTTOM = 1179,
-    AF_BLUE_STRING_GEORGIAN_NUSKHURI_ASCENDER = 1211,
-    AF_BLUE_STRING_GEORGIAN_NUSKHURI_DESCENDER = 1243,
-    AF_BLUE_STRING_GLAGOLITIC_CAPITAL_TOP = 1275,
-    AF_BLUE_STRING_GLAGOLITIC_CAPITAL_BOTTOM = 1307,
-    AF_BLUE_STRING_GLAGOLITIC_SMALL_TOP = 1339,
-    AF_BLUE_STRING_GLAGOLITIC_SMALL_BOTTOM = 1371,
-    AF_BLUE_STRING_GOTHIC_TOP = 1403,
-    AF_BLUE_STRING_GOTHIC_BOTTOM = 1443,
-    AF_BLUE_STRING_GREEK_CAPITAL_TOP = 1463,
-    AF_BLUE_STRING_GREEK_CAPITAL_BOTTOM = 1484,
-    AF_BLUE_STRING_GREEK_SMALL_BETA_TOP = 1502,
-    AF_BLUE_STRING_GREEK_SMALL = 1520,
-    AF_BLUE_STRING_GREEK_SMALL_DESCENDER = 1544,
-    AF_BLUE_STRING_GUJARATI_TOP = 1568,
-    AF_BLUE_STRING_GUJARATI_BOTTOM = 1600,
-    AF_BLUE_STRING_GUJARATI_ASCENDER = 1632,
-    AF_BLUE_STRING_GUJARATI_DESCENDER = 1682,
-    AF_BLUE_STRING_GUJARATI_DIGIT_TOP = 1715,
-    AF_BLUE_STRING_GURMUKHI_BASE = 1735,
-    AF_BLUE_STRING_GURMUKHI_HEAD = 1767,
-    AF_BLUE_STRING_GURMUKHI_TOP = 1799,
-    AF_BLUE_STRING_GURMUKHI_BOTTOM = 1831,
-    AF_BLUE_STRING_GURMUKHI_DIGIT_TOP = 1863,
-    AF_BLUE_STRING_HEBREW_TOP = 1883,
-    AF_BLUE_STRING_HEBREW_BOTTOM = 1907,
-    AF_BLUE_STRING_HEBREW_DESCENDER = 1925,
-    AF_BLUE_STRING_KANNADA_TOP = 1940,
-    AF_BLUE_STRING_KANNADA_BOTTOM = 1984,
-    AF_BLUE_STRING_KHMER_TOP = 2016,
-    AF_BLUE_STRING_KHMER_SUBSCRIPT_TOP = 2040,
-    AF_BLUE_STRING_KHMER_BOTTOM = 2080,
-    AF_BLUE_STRING_KHMER_DESCENDER = 2112,
-    AF_BLUE_STRING_KHMER_LARGE_DESCENDER = 2146,
-    AF_BLUE_STRING_KHMER_SYMBOLS_WAXING_TOP = 2233,
-    AF_BLUE_STRING_KHMER_SYMBOLS_WANING_BOTTOM = 2241,
-    AF_BLUE_STRING_LAO_TOP = 2249,
-    AF_BLUE_STRING_LAO_BOTTOM = 2281,
-    AF_BLUE_STRING_LAO_ASCENDER = 2313,
-    AF_BLUE_STRING_LAO_LARGE_ASCENDER = 2329,
-    AF_BLUE_STRING_LAO_DESCENDER = 2341,
-    AF_BLUE_STRING_LATIN_CAPITAL_TOP = 2365,
-    AF_BLUE_STRING_LATIN_CAPITAL_BOTTOM = 2381,
-    AF_BLUE_STRING_LATIN_SMALL_F_TOP = 2397,
-    AF_BLUE_STRING_LATIN_SMALL_TOP = 2411,
-    AF_BLUE_STRING_LATIN_SMALL_BOTTOM = 2427,
-    AF_BLUE_STRING_LATIN_SMALL_DESCENDER = 2443,
-    AF_BLUE_STRING_LATIN_SUBS_CAPITAL_TOP = 2453,
-    AF_BLUE_STRING_LATIN_SUBS_CAPITAL_BOTTOM = 2473,
-    AF_BLUE_STRING_LATIN_SUBS_SMALL_F_TOP = 2493,
-    AF_BLUE_STRING_LATIN_SUBS_SMALL = 2513,
-    AF_BLUE_STRING_LATIN_SUBS_SMALL_DESCENDER = 2549,
-    AF_BLUE_STRING_LATIN_SUPS_CAPITAL_TOP = 2569,
-    AF_BLUE_STRING_LATIN_SUPS_CAPITAL_BOTTOM = 2600,
-    AF_BLUE_STRING_LATIN_SUPS_SMALL_F_TOP = 2629,
-    AF_BLUE_STRING_LATIN_SUPS_SMALL = 2655,
-    AF_BLUE_STRING_LATIN_SUPS_SMALL_DESCENDER = 2680,
-    AF_BLUE_STRING_LISU_TOP = 2691,
-    AF_BLUE_STRING_LISU_BOTTOM = 2723,
-    AF_BLUE_STRING_MALAYALAM_TOP = 2755,
-    AF_BLUE_STRING_MALAYALAM_BOTTOM = 2799,
-    AF_BLUE_STRING_MYANMAR_TOP = 2831,
-    AF_BLUE_STRING_MYANMAR_BOTTOM = 2863,
-    AF_BLUE_STRING_MYANMAR_ASCENDER = 2895,
-    AF_BLUE_STRING_MYANMAR_DESCENDER = 2923,
-    AF_BLUE_STRING_NKO_TOP = 2955,
-    AF_BLUE_STRING_NKO_BOTTOM = 2979,
-    AF_BLUE_STRING_NKO_SMALL_TOP = 2994,
-    AF_BLUE_STRING_NKO_SMALL_BOTTOM = 3003,
-    AF_BLUE_STRING_OL_CHIKI = 3015,
-    AF_BLUE_STRING_OLD_TURKIC_TOP = 3039,
-    AF_BLUE_STRING_OLD_TURKIC_BOTTOM = 3054,
-    AF_BLUE_STRING_OSAGE_CAPITAL_TOP = 3074,
-    AF_BLUE_STRING_OSAGE_CAPITAL_BOTTOM = 3114,
-    AF_BLUE_STRING_OSAGE_CAPITAL_DESCENDER = 3144,
-    AF_BLUE_STRING_OSAGE_SMALL_TOP = 3159,
-    AF_BLUE_STRING_OSAGE_SMALL_BOTTOM = 3199,
-    AF_BLUE_STRING_OSAGE_SMALL_ASCENDER = 3239,
-    AF_BLUE_STRING_OSAGE_SMALL_DESCENDER = 3264,
-    AF_BLUE_STRING_SINHALA_TOP = 3279,
-    AF_BLUE_STRING_SINHALA_BOTTOM = 3311,
-    AF_BLUE_STRING_SINHALA_DESCENDER = 3343,
-    AF_BLUE_STRING_SUNDANESE_TOP = 3387,
-    AF_BLUE_STRING_SUNDANESE_BOTTOM = 3411,
-    AF_BLUE_STRING_SUNDANESE_DESCENDER = 3443,
-    AF_BLUE_STRING_TAI_VIET_TOP = 3451,
-    AF_BLUE_STRING_TAI_VIET_BOTTOM = 3471,
-    AF_BLUE_STRING_TAMIL_TOP = 3483,
-    AF_BLUE_STRING_TAMIL_BOTTOM = 3515,
-    AF_BLUE_STRING_TELUGU_TOP = 3547,
-    AF_BLUE_STRING_TELUGU_BOTTOM = 3575,
-    AF_BLUE_STRING_THAI_TOP = 3603,
-    AF_BLUE_STRING_THAI_BOTTOM = 3627,
-    AF_BLUE_STRING_THAI_ASCENDER = 3655,
-    AF_BLUE_STRING_THAI_LARGE_ASCENDER = 3667,
-    AF_BLUE_STRING_THAI_DESCENDER = 3679,
-    AF_BLUE_STRING_THAI_LARGE_DESCENDER = 3695,
-    AF_BLUE_STRING_THAI_DIGIT_TOP = 3703,
-    AF_BLUE_STRING_TIFINAGH = 3715,
-    af_blue_1_1 = 3746,
+    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_CHEROKEE_CAPITAL = 592,
+    AF_BLUE_STRING_CHEROKEE_SMALL_ASCENDER = 624,
+    AF_BLUE_STRING_CHEROKEE_SMALL = 656,
+    AF_BLUE_STRING_CHEROKEE_SMALL_DESCENDER = 688,
+    AF_BLUE_STRING_CYPRIOT_TOP = 704,
+    AF_BLUE_STRING_CYPRIOT_BOTTOM = 744,
+    AF_BLUE_STRING_CYPRIOT_SMALL = 779,
+    AF_BLUE_STRING_CYRILLIC_CAPITAL_TOP = 794,
+    AF_BLUE_STRING_CYRILLIC_CAPITAL_BOTTOM = 818,
+    AF_BLUE_STRING_CYRILLIC_SMALL = 842,
+    AF_BLUE_STRING_CYRILLIC_SMALL_DESCENDER = 866,
+    AF_BLUE_STRING_DESERET_CAPITAL_TOP = 875,
+    AF_BLUE_STRING_DESERET_CAPITAL_BOTTOM = 900,
+    AF_BLUE_STRING_DESERET_SMALL_TOP = 925,
+    AF_BLUE_STRING_DESERET_SMALL_BOTTOM = 950,
+    AF_BLUE_STRING_DEVANAGARI_BASE = 975,
+    AF_BLUE_STRING_DEVANAGARI_TOP = 1007,
+    AF_BLUE_STRING_DEVANAGARI_HEAD = 1039,
+    AF_BLUE_STRING_DEVANAGARI_BOTTOM = 1071,
+    AF_BLUE_STRING_ETHIOPIC_TOP = 1079,
+    AF_BLUE_STRING_ETHIOPIC_BOTTOM = 1111,
+    AF_BLUE_STRING_GEORGIAN_MKHEDRULI_TOP = 1143,
+    AF_BLUE_STRING_GEORGIAN_MKHEDRULI_BOTTOM = 1175,
+    AF_BLUE_STRING_GEORGIAN_MKHEDRULI_ASCENDER = 1207,
+    AF_BLUE_STRING_GEORGIAN_MKHEDRULI_DESCENDER = 1239,
+    AF_BLUE_STRING_GEORGIAN_ASOMTAVRULI_TOP = 1271,
+    AF_BLUE_STRING_GEORGIAN_ASOMTAVRULI_BOTTOM = 1303,
+    AF_BLUE_STRING_GEORGIAN_NUSKHURI_TOP = 1335,
+    AF_BLUE_STRING_GEORGIAN_NUSKHURI_BOTTOM = 1367,
+    AF_BLUE_STRING_GEORGIAN_NUSKHURI_ASCENDER = 1399,
+    AF_BLUE_STRING_GEORGIAN_NUSKHURI_DESCENDER = 1431,
+    AF_BLUE_STRING_GLAGOLITIC_CAPITAL_TOP = 1463,
+    AF_BLUE_STRING_GLAGOLITIC_CAPITAL_BOTTOM = 1495,
+    AF_BLUE_STRING_GLAGOLITIC_SMALL_TOP = 1527,
+    AF_BLUE_STRING_GLAGOLITIC_SMALL_BOTTOM = 1559,
+    AF_BLUE_STRING_GOTHIC_TOP = 1591,
+    AF_BLUE_STRING_GOTHIC_BOTTOM = 1631,
+    AF_BLUE_STRING_GREEK_CAPITAL_TOP = 1651,
+    AF_BLUE_STRING_GREEK_CAPITAL_BOTTOM = 1672,
+    AF_BLUE_STRING_GREEK_SMALL_BETA_TOP = 1690,
+    AF_BLUE_STRING_GREEK_SMALL = 1708,
+    AF_BLUE_STRING_GREEK_SMALL_DESCENDER = 1732,
+    AF_BLUE_STRING_GUJARATI_TOP = 1756,
+    AF_BLUE_STRING_GUJARATI_BOTTOM = 1788,
+    AF_BLUE_STRING_GUJARATI_ASCENDER = 1820,
+    AF_BLUE_STRING_GUJARATI_DESCENDER = 1870,
+    AF_BLUE_STRING_GUJARATI_DIGIT_TOP = 1903,
+    AF_BLUE_STRING_GURMUKHI_BASE = 1923,
+    AF_BLUE_STRING_GURMUKHI_HEAD = 1955,
+    AF_BLUE_STRING_GURMUKHI_TOP = 1987,
+    AF_BLUE_STRING_GURMUKHI_BOTTOM = 2019,
+    AF_BLUE_STRING_GURMUKHI_DIGIT_TOP = 2051,
+    AF_BLUE_STRING_HEBREW_TOP = 2071,
+    AF_BLUE_STRING_HEBREW_BOTTOM = 2095,
+    AF_BLUE_STRING_HEBREW_DESCENDER = 2113,
+    AF_BLUE_STRING_KANNADA_TOP = 2128,
+    AF_BLUE_STRING_KANNADA_BOTTOM = 2172,
+    AF_BLUE_STRING_KHMER_TOP = 2204,
+    AF_BLUE_STRING_KHMER_SUBSCRIPT_TOP = 2228,
+    AF_BLUE_STRING_KHMER_BOTTOM = 2268,
+    AF_BLUE_STRING_KHMER_DESCENDER = 2300,
+    AF_BLUE_STRING_KHMER_LARGE_DESCENDER = 2334,
+    AF_BLUE_STRING_KHMER_SYMBOLS_WAXING_TOP = 2421,
+    AF_BLUE_STRING_KHMER_SYMBOLS_WANING_BOTTOM = 2429,
+    AF_BLUE_STRING_LAO_TOP = 2437,
+    AF_BLUE_STRING_LAO_BOTTOM = 2469,
+    AF_BLUE_STRING_LAO_ASCENDER = 2501,
+    AF_BLUE_STRING_LAO_LARGE_ASCENDER = 2517,
+    AF_BLUE_STRING_LAO_DESCENDER = 2529,
+    AF_BLUE_STRING_LATIN_CAPITAL_TOP = 2553,
+    AF_BLUE_STRING_LATIN_CAPITAL_BOTTOM = 2569,
+    AF_BLUE_STRING_LATIN_SMALL_F_TOP = 2585,
+    AF_BLUE_STRING_LATIN_SMALL_TOP = 2599,
+    AF_BLUE_STRING_LATIN_SMALL_BOTTOM = 2615,
+    AF_BLUE_STRING_LATIN_SMALL_DESCENDER = 2631,
+    AF_BLUE_STRING_LATIN_SUBS_CAPITAL_TOP = 2641,
+    AF_BLUE_STRING_LATIN_SUBS_CAPITAL_BOTTOM = 2661,
+    AF_BLUE_STRING_LATIN_SUBS_SMALL_F_TOP = 2681,
+    AF_BLUE_STRING_LATIN_SUBS_SMALL = 2701,
+    AF_BLUE_STRING_LATIN_SUBS_SMALL_DESCENDER = 2737,
+    AF_BLUE_STRING_LATIN_SUPS_CAPITAL_TOP = 2757,
+    AF_BLUE_STRING_LATIN_SUPS_CAPITAL_BOTTOM = 2788,
+    AF_BLUE_STRING_LATIN_SUPS_SMALL_F_TOP = 2817,
+    AF_BLUE_STRING_LATIN_SUPS_SMALL = 2843,
+    AF_BLUE_STRING_LATIN_SUPS_SMALL_DESCENDER = 2868,
+    AF_BLUE_STRING_LISU_TOP = 2879,
+    AF_BLUE_STRING_LISU_BOTTOM = 2911,
+    AF_BLUE_STRING_MALAYALAM_TOP = 2943,
+    AF_BLUE_STRING_MALAYALAM_BOTTOM = 2987,
+    AF_BLUE_STRING_MYANMAR_TOP = 3019,
+    AF_BLUE_STRING_MYANMAR_BOTTOM = 3051,
+    AF_BLUE_STRING_MYANMAR_ASCENDER = 3083,
+    AF_BLUE_STRING_MYANMAR_DESCENDER = 3111,
+    AF_BLUE_STRING_NKO_TOP = 3143,
+    AF_BLUE_STRING_NKO_BOTTOM = 3167,
+    AF_BLUE_STRING_NKO_SMALL_TOP = 3182,
+    AF_BLUE_STRING_NKO_SMALL_BOTTOM = 3191,
+    AF_BLUE_STRING_OL_CHIKI = 3203,
+    AF_BLUE_STRING_OLD_TURKIC_TOP = 3227,
+    AF_BLUE_STRING_OLD_TURKIC_BOTTOM = 3242,
+    AF_BLUE_STRING_OSAGE_CAPITAL_TOP = 3262,
+    AF_BLUE_STRING_OSAGE_CAPITAL_BOTTOM = 3302,
+    AF_BLUE_STRING_OSAGE_CAPITAL_DESCENDER = 3332,
+    AF_BLUE_STRING_OSAGE_SMALL_TOP = 3347,
+    AF_BLUE_STRING_OSAGE_SMALL_BOTTOM = 3387,
+    AF_BLUE_STRING_OSAGE_SMALL_ASCENDER = 3427,
+    AF_BLUE_STRING_OSAGE_SMALL_DESCENDER = 3452,
+    AF_BLUE_STRING_SINHALA_TOP = 3467,
+    AF_BLUE_STRING_SINHALA_BOTTOM = 3499,
+    AF_BLUE_STRING_SINHALA_DESCENDER = 3531,
+    AF_BLUE_STRING_SUNDANESE_TOP = 3575,
+    AF_BLUE_STRING_SUNDANESE_BOTTOM = 3599,
+    AF_BLUE_STRING_SUNDANESE_DESCENDER = 3631,
+    AF_BLUE_STRING_TAI_VIET_TOP = 3639,
+    AF_BLUE_STRING_TAI_VIET_BOTTOM = 3659,
+    AF_BLUE_STRING_TAMIL_TOP = 3671,
+    AF_BLUE_STRING_TAMIL_BOTTOM = 3703,
+    AF_BLUE_STRING_TELUGU_TOP = 3735,
+    AF_BLUE_STRING_TELUGU_BOTTOM = 3763,
+    AF_BLUE_STRING_THAI_TOP = 3791,
+    AF_BLUE_STRING_THAI_BOTTOM = 3815,
+    AF_BLUE_STRING_THAI_ASCENDER = 3843,
+    AF_BLUE_STRING_THAI_LARGE_ASCENDER = 3855,
+    AF_BLUE_STRING_THAI_DESCENDER = 3867,
+    AF_BLUE_STRING_THAI_LARGE_DESCENDER = 3883,
+    AF_BLUE_STRING_THAI_DIGIT_TOP = 3891,
+    AF_BLUE_STRING_TIFINAGH = 3903,
+    af_blue_1_1 = 3934,
 #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,
@@ -286,43 +292,44 @@
     AF_BLUE_STRINGSET_ARMN = 9,
     AF_BLUE_STRINGSET_AVST = 16,
     AF_BLUE_STRINGSET_BENG = 19,
-    AF_BLUE_STRINGSET_CHER = 24,
-    AF_BLUE_STRINGSET_CPRT = 31,
-    AF_BLUE_STRINGSET_CYRL = 36,
-    AF_BLUE_STRINGSET_DEVA = 42,
-    AF_BLUE_STRINGSET_DSRT = 48,
-    AF_BLUE_STRINGSET_ETHI = 53,
-    AF_BLUE_STRINGSET_GEOR = 56,
-    AF_BLUE_STRINGSET_GEOK = 61,
-    AF_BLUE_STRINGSET_GLAG = 68,
-    AF_BLUE_STRINGSET_GOTH = 73,
-    AF_BLUE_STRINGSET_GREK = 76,
-    AF_BLUE_STRINGSET_GUJR = 83,
-    AF_BLUE_STRINGSET_GURU = 89,
-    AF_BLUE_STRINGSET_HEBR = 95,
-    AF_BLUE_STRINGSET_KNDA = 99,
-    AF_BLUE_STRINGSET_KHMR = 102,
-    AF_BLUE_STRINGSET_KHMS = 108,
-    AF_BLUE_STRINGSET_LAO = 111,
-    AF_BLUE_STRINGSET_LATN = 117,
-    AF_BLUE_STRINGSET_LATB = 124,
-    AF_BLUE_STRINGSET_LATP = 131,
-    AF_BLUE_STRINGSET_LISU = 138,
-    AF_BLUE_STRINGSET_MLYM = 141,
-    AF_BLUE_STRINGSET_MYMR = 144,
-    AF_BLUE_STRINGSET_NKOO = 149,
-    AF_BLUE_STRINGSET_NONE = 154,
-    AF_BLUE_STRINGSET_OLCK = 155,
-    AF_BLUE_STRINGSET_ORKH = 158,
-    AF_BLUE_STRINGSET_OSGE = 161,
-    AF_BLUE_STRINGSET_SINH = 169,
-    AF_BLUE_STRINGSET_SUND = 173,
-    AF_BLUE_STRINGSET_TAML = 177,
-    AF_BLUE_STRINGSET_TAVT = 180,
-    AF_BLUE_STRINGSET_TELU = 183,
-    AF_BLUE_STRINGSET_THAI = 186,
-    AF_BLUE_STRINGSET_TFNG = 194,
-    af_blue_2_1 = 197,
+    AF_BLUE_STRINGSET_CANADIAN_SYLLABICS = 24,
+    AF_BLUE_STRINGSET_CHER = 31,
+    AF_BLUE_STRINGSET_CPRT = 38,
+    AF_BLUE_STRINGSET_CYRL = 43,
+    AF_BLUE_STRINGSET_DEVA = 49,
+    AF_BLUE_STRINGSET_DSRT = 55,
+    AF_BLUE_STRINGSET_ETHI = 60,
+    AF_BLUE_STRINGSET_GEOR = 63,
+    AF_BLUE_STRINGSET_GEOK = 68,
+    AF_BLUE_STRINGSET_GLAG = 75,
+    AF_BLUE_STRINGSET_GOTH = 80,
+    AF_BLUE_STRINGSET_GREK = 83,
+    AF_BLUE_STRINGSET_GUJR = 90,
+    AF_BLUE_STRINGSET_GURU = 96,
+    AF_BLUE_STRINGSET_HEBR = 102,
+    AF_BLUE_STRINGSET_KNDA = 106,
+    AF_BLUE_STRINGSET_KHMR = 109,
+    AF_BLUE_STRINGSET_KHMS = 115,
+    AF_BLUE_STRINGSET_LAO = 118,
+    AF_BLUE_STRINGSET_LATN = 124,
+    AF_BLUE_STRINGSET_LATB = 131,
+    AF_BLUE_STRINGSET_LATP = 138,
+    AF_BLUE_STRINGSET_LISU = 145,
+    AF_BLUE_STRINGSET_MLYM = 148,
+    AF_BLUE_STRINGSET_MYMR = 151,
+    AF_BLUE_STRINGSET_NKOO = 156,
+    AF_BLUE_STRINGSET_NONE = 161,
+    AF_BLUE_STRINGSET_OLCK = 162,
+    AF_BLUE_STRINGSET_ORKH = 165,
+    AF_BLUE_STRINGSET_OSGE = 168,
+    AF_BLUE_STRINGSET_SINH = 176,
+    AF_BLUE_STRINGSET_SUND = 180,
+    AF_BLUE_STRINGSET_TAML = 184,
+    AF_BLUE_STRINGSET_TAVT = 187,
+    AF_BLUE_STRINGSET_TELU = 190,
+    AF_BLUE_STRINGSET_THAI = 193,
+    AF_BLUE_STRINGSET_TFNG = 201,
+    af_blue_2_1 = 204,
 #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_cans_uniranges[] =
+  {
+    AF_UNIRANGE_REC(  0x1400,  0x167F ), /* Unified Canadian Aboriginal Syllabics          */
+    AF_UNIRANGE_REC(  0x18B0,  0x18FF ), /* Unified Canadian Aboriginal Syllabics Extended */
+    AF_UNIRANGE_REC(       0,       0 )
+  };
+
+  const AF_Script_UniRangeRec  af_cans_nonbase_uniranges[] =
+  {
+    AF_UNIRANGE_REC( 0, 0 )
+  };
+
+
   const AF_Script_UniRangeRec  af_cher_uniranges[] =
   {
     AF_UNIRANGE_REC(  0x13A0,  0x13FF ),  /* Cherokee            */
--- 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( cans, CANS,
+          "Canadian Syllabics",
+          HB_SCRIPT_CANADIAN_SYLLABICS,
+          HINTING_BOTTOM_TO_TOP,
+          "\xE1\x91\x8C \xE1\x93\x9A" ) /* ᑌ ᓚ */
+
   SCRIPT( cher, CHER,
           "Cherokee",
           HB_SCRIPT_CHEROKEE,
--- a/src/autofit/afstyles.h
+++ b/src/autofit/afstyles.h
@@ -118,6 +118,13 @@
          AF_BLUE_STRINGSET_BENG,
          AF_COVERAGE_DEFAULT )
 
+  STYLE( cans_dflt, CANS_DFLT,
+         "Canadian Syllabics default style",
+         AF_WRITING_SYSTEM_LATIN,
+         AF_SCRIPT_CANS,
+         AF_BLUE_STRINGSET_CANADIAN_SYLLABICS,
+         AF_COVERAGE_DEFAULT )
+
   STYLE( cher_dflt, CHER_DFLT,
          "Cherokee default style",
          AF_WRITING_SYSTEM_LATIN,