Commit 223d002c63a061436fb03cb1e35f8aef4b16b9d6

Werner Lemberg 2016-06-07T13:52:14

[autofit] Add support for Ethiopic script. * src/autofit/afblue.dat: Add blue zone data for Ethiopic. * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated. * src/autofit/afscript.h: Add Ethiopic standard characters. * src/autofit/afranges.c: Add Ethiopic data. * src/autofit/afstyles.h: Add Ethiopic data.

diff --git a/ChangeLog b/ChangeLog
index 44c2181..d2644ba 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,19 @@
 2016-06-07  Werner Lemberg  <wl@gnu.org>
 
+	[autofit] Add support for Ethiopic script.
+
+	* src/autofit/afblue.dat: Add blue zone data for Ethiopic.
+
+	* src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
+
+	* src/autofit/afscript.h: Add Ethiopic standard characters.
+
+	* src/autofit/afranges.c: Add Ethiopic data.
+
+	* src/autofit/afstyles.h: Add Ethiopic data.
+
+2016-06-07  Werner Lemberg  <wl@gnu.org>
+
 	[autofit] Fix compilation with VS2016 (#48126).
 
 	This compiler doesn't recognize the end-of-comment sequence `*/' if
diff --git a/src/autofit/afblue.c b/src/autofit/afblue.c
index 11c7ecf..d7d1121 100644
--- a/src/autofit/afblue.c
+++ b/src/autofit/afblue.c
@@ -66,6 +66,10 @@
     '\0',
     '\xE0', '\xA5', '\x81', ' ', '\xE0', '\xA5', '\x83',  /* ु ृ */
     '\0',
+    '\xE1', '\x88', '\x80', ' ', '\xE1', '\x88', '\x83', ' ', '\xE1', '\x8B', '\x98', ' ', '\xE1', '\x8D', '\x90', ' ', '\xE1', '\x88', '\x9B', ' ', '\xE1', '\x89', '\xA0', ' ', '\xE1', '\x8B', '\x8B', ' ', '\xE1', '\x8B', '\x90',  /* ሀ ሃ ዘ ፐ ማ በ ዋ ዐ */
+    '\0',
+    '\xE1', '\x88', '\x88', ' ', '\xE1', '\x88', '\x90', ' ', '\xE1', '\x89', '\xA0', ' ', '\xE1', '\x8B', '\x98', ' ', '\xE1', '\x88', '\x80', ' ', '\xE1', '\x88', '\xAA', ' ', '\xE1', '\x8B', '\x90', ' ', '\xE1', '\x8C', '\xA8',  /* ለ ሐ በ ዘ ሀ ሪ ዐ ጨ */
+    '\0',
     '\xE1', '\x83', '\x92', ' ', '\xE1', '\x83', '\x93', ' ', '\xE1', '\x83', '\x94', ' ', '\xE1', '\x83', '\x95', ' ', '\xE1', '\x83', '\x97', ' ', '\xE1', '\x83', '\x98', ' ', '\xE1', '\x83', '\x9D', ' ', '\xE1', '\x83', '\xA6',  /* გ დ ე ვ თ ი ო ღ */
     '\0',
     '\xE1', '\x83', '\x90', ' ', '\xE1', '\x83', '\x96', ' ', '\xE1', '\x83', '\x9B', ' ', '\xE1', '\x83', '\xA1', ' ', '\xE1', '\x83', '\xA8', ' ', '\xE1', '\x83', '\xAB', ' ', '\xE1', '\x83', '\xAE', ' ', '\xE1', '\x83', '\x9E',  /* ა ზ მ ს შ ძ ხ პ */
@@ -303,6 +307,9 @@
     { AF_BLUE_STRING_DEVANAGARI_BASE,   0                                 },
     { AF_BLUE_STRING_DEVANAGARI_BOTTOM, 0                                 },
     { AF_BLUE_STRING_MAX,               0                                 },
+    { AF_BLUE_STRING_ETHIOPIC_TOP,    AF_BLUE_PROPERTY_LATIN_TOP },
+    { AF_BLUE_STRING_ETHIOPIC_BOTTOM, 0                          },
+    { AF_BLUE_STRING_MAX,             0                          },
     { AF_BLUE_STRING_GEORGIAN_MKHEDRULI_TOP,       AF_BLUE_PROPERTY_LATIN_TOP      |
                                                    AF_BLUE_PROPERTY_LATIN_X_HEIGHT   },
     { AF_BLUE_STRING_GEORGIAN_MKHEDRULI_BOTTOM,    0                                 },
diff --git a/src/autofit/afblue.dat b/src/autofit/afblue.dat
index 991f5a2..ff27b46 100644
--- a/src/autofit/afblue.dat
+++ b/src/autofit/afblue.dat
@@ -127,6 +127,11 @@ AF_BLUE_STRING_ENUM AF_BLUE_STRINGS_ARRAY AF_BLUE_STRING_MAX_LEN:
   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
@@ -513,6 +518,11 @@ AF_BLUE_STRINGSET_ENUM AF_BLUE_STRINGSETS_ARRAY AF_BLUE_STRINGSET_MAX_LEN:
     { AF_BLUE_STRING_DEVANAGARI_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                          }
+
   // blue zones for Mtavruli are missing (not yet defined in Unicode)
   AF_BLUE_STRINGSET_GEOR
     { AF_BLUE_STRING_GEORGIAN_MKHEDRULI_TOP,       AF_BLUE_PROPERTY_LATIN_TOP      |
diff --git a/src/autofit/afblue.h b/src/autofit/afblue.h
index 00b41e9..8f5eb73 100644
--- a/src/autofit/afblue.h
+++ b/src/autofit/afblue.h
@@ -97,84 +97,86 @@ FT_BEGIN_HEADER
     AF_BLUE_STRING_DEVANAGARI_TOP = 385,
     AF_BLUE_STRING_DEVANAGARI_HEAD = 417,
     AF_BLUE_STRING_DEVANAGARI_BOTTOM = 449,
-    AF_BLUE_STRING_GEORGIAN_MKHEDRULI_TOP = 457,
-    AF_BLUE_STRING_GEORGIAN_MKHEDRULI_BOTTOM = 489,
-    AF_BLUE_STRING_GEORGIAN_MKHEDRULI_ASCENDER = 521,
-    AF_BLUE_STRING_GEORGIAN_MKHEDRULI_DESCENDER = 553,
-    AF_BLUE_STRING_GEORGIAN_ASOMTAVRULI_TOP = 585,
-    AF_BLUE_STRING_GEORGIAN_ASOMTAVRULI_BOTTOM = 617,
-    AF_BLUE_STRING_GEORGIAN_NUSKHURI_TOP = 649,
-    AF_BLUE_STRING_GEORGIAN_NUSKHURI_BOTTOM = 681,
-    AF_BLUE_STRING_GEORGIAN_NUSKHURI_ASCENDER = 713,
-    AF_BLUE_STRING_GEORGIAN_NUSKHURI_DESCENDER = 745,
-    AF_BLUE_STRING_GREEK_CAPITAL_TOP = 777,
-    AF_BLUE_STRING_GREEK_CAPITAL_BOTTOM = 798,
-    AF_BLUE_STRING_GREEK_SMALL_BETA_TOP = 816,
-    AF_BLUE_STRING_GREEK_SMALL = 834,
-    AF_BLUE_STRING_GREEK_SMALL_DESCENDER = 858,
-    AF_BLUE_STRING_GUJARATI_TOP = 882,
-    AF_BLUE_STRING_GUJARATI_BOTTOM = 914,
-    AF_BLUE_STRING_GUJARATI_ASCENDER = 946,
-    AF_BLUE_STRING_GUJARATI_DESCENDER = 996,
-    AF_BLUE_STRING_GUJARATI_DIGIT_TOP = 1029,
-    AF_BLUE_STRING_GURMUKHI_BASE = 1049,
-    AF_BLUE_STRING_GURMUKHI_HEAD = 1081,
-    AF_BLUE_STRING_GURMUKHI_TOP = 1113,
-    AF_BLUE_STRING_GURMUKHI_BOTTOM = 1145,
-    AF_BLUE_STRING_GURMUKHI_DIGIT_TOP = 1177,
-    AF_BLUE_STRING_HEBREW_TOP = 1197,
-    AF_BLUE_STRING_HEBREW_BOTTOM = 1221,
-    AF_BLUE_STRING_HEBREW_DESCENDER = 1239,
-    AF_BLUE_STRING_KANNADA_TOP = 1254,
-    AF_BLUE_STRING_KANNADA_BOTTOM = 1298,
-    AF_BLUE_STRING_KHMER_TOP = 1330,
-    AF_BLUE_STRING_KHMER_SUBSCRIPT_TOP = 1354,
-    AF_BLUE_STRING_KHMER_BOTTOM = 1394,
-    AF_BLUE_STRING_KHMER_DESCENDER = 1426,
-    AF_BLUE_STRING_KHMER_LARGE_DESCENDER = 1460,
-    AF_BLUE_STRING_KHMER_SYMBOLS_WAXING_TOP = 1547,
-    AF_BLUE_STRING_KHMER_SYMBOLS_WANING_BOTTOM = 1555,
-    AF_BLUE_STRING_LAO_TOP = 1563,
-    AF_BLUE_STRING_LAO_BOTTOM = 1595,
-    AF_BLUE_STRING_LAO_ASCENDER = 1627,
-    AF_BLUE_STRING_LAO_LARGE_ASCENDER = 1643,
-    AF_BLUE_STRING_LAO_DESCENDER = 1655,
-    AF_BLUE_STRING_LATIN_CAPITAL_TOP = 1679,
-    AF_BLUE_STRING_LATIN_CAPITAL_BOTTOM = 1695,
-    AF_BLUE_STRING_LATIN_SMALL_F_TOP = 1711,
-    AF_BLUE_STRING_LATIN_SMALL = 1725,
-    AF_BLUE_STRING_LATIN_SMALL_DESCENDER = 1739,
-    AF_BLUE_STRING_LATIN_SUBS_CAPITAL_TOP = 1749,
-    AF_BLUE_STRING_LATIN_SUBS_CAPITAL_BOTTOM = 1769,
-    AF_BLUE_STRING_LATIN_SUBS_SMALL_F_TOP = 1789,
-    AF_BLUE_STRING_LATIN_SUBS_SMALL = 1809,
-    AF_BLUE_STRING_LATIN_SUBS_SMALL_DESCENDER = 1845,
-    AF_BLUE_STRING_LATIN_SUPS_CAPITAL_TOP = 1865,
-    AF_BLUE_STRING_LATIN_SUPS_CAPITAL_BOTTOM = 1896,
-    AF_BLUE_STRING_LATIN_SUPS_SMALL_F_TOP = 1925,
-    AF_BLUE_STRING_LATIN_SUPS_SMALL = 1951,
-    AF_BLUE_STRING_LATIN_SUPS_SMALL_DESCENDER = 1976,
-    AF_BLUE_STRING_MALAYALAM_TOP = 1987,
-    AF_BLUE_STRING_MALAYALAM_BOTTOM = 2031,
-    AF_BLUE_STRING_MYANMAR_TOP = 2063,
-    AF_BLUE_STRING_MYANMAR_BOTTOM = 2095,
-    AF_BLUE_STRING_MYANMAR_ASCENDER = 2127,
-    AF_BLUE_STRING_MYANMAR_DESCENDER = 2155,
-    AF_BLUE_STRING_SINHALA_TOP = 2187,
-    AF_BLUE_STRING_SINHALA_BOTTOM = 2219,
-    AF_BLUE_STRING_SINHALA_DESCENDER = 2251,
-    AF_BLUE_STRING_TAMIL_TOP = 2295,
-    AF_BLUE_STRING_TAMIL_BOTTOM = 2327,
-    AF_BLUE_STRING_TELUGU_TOP = 2359,
-    AF_BLUE_STRING_TELUGU_BOTTOM = 2387,
-    AF_BLUE_STRING_THAI_TOP = 2415,
-    AF_BLUE_STRING_THAI_BOTTOM = 2439,
-    AF_BLUE_STRING_THAI_ASCENDER = 2467,
-    AF_BLUE_STRING_THAI_LARGE_ASCENDER = 2479,
-    AF_BLUE_STRING_THAI_DESCENDER = 2491,
-    AF_BLUE_STRING_THAI_LARGE_DESCENDER = 2507,
-    AF_BLUE_STRING_THAI_DIGIT_TOP = 2515,
-    af_blue_1_1 = 2526,
+    AF_BLUE_STRING_ETHIOPIC_TOP = 457,
+    AF_BLUE_STRING_ETHIOPIC_BOTTOM = 489,
+    AF_BLUE_STRING_GEORGIAN_MKHEDRULI_TOP = 521,
+    AF_BLUE_STRING_GEORGIAN_MKHEDRULI_BOTTOM = 553,
+    AF_BLUE_STRING_GEORGIAN_MKHEDRULI_ASCENDER = 585,
+    AF_BLUE_STRING_GEORGIAN_MKHEDRULI_DESCENDER = 617,
+    AF_BLUE_STRING_GEORGIAN_ASOMTAVRULI_TOP = 649,
+    AF_BLUE_STRING_GEORGIAN_ASOMTAVRULI_BOTTOM = 681,
+    AF_BLUE_STRING_GEORGIAN_NUSKHURI_TOP = 713,
+    AF_BLUE_STRING_GEORGIAN_NUSKHURI_BOTTOM = 745,
+    AF_BLUE_STRING_GEORGIAN_NUSKHURI_ASCENDER = 777,
+    AF_BLUE_STRING_GEORGIAN_NUSKHURI_DESCENDER = 809,
+    AF_BLUE_STRING_GREEK_CAPITAL_TOP = 841,
+    AF_BLUE_STRING_GREEK_CAPITAL_BOTTOM = 862,
+    AF_BLUE_STRING_GREEK_SMALL_BETA_TOP = 880,
+    AF_BLUE_STRING_GREEK_SMALL = 898,
+    AF_BLUE_STRING_GREEK_SMALL_DESCENDER = 922,
+    AF_BLUE_STRING_GUJARATI_TOP = 946,
+    AF_BLUE_STRING_GUJARATI_BOTTOM = 978,
+    AF_BLUE_STRING_GUJARATI_ASCENDER = 1010,
+    AF_BLUE_STRING_GUJARATI_DESCENDER = 1060,
+    AF_BLUE_STRING_GUJARATI_DIGIT_TOP = 1093,
+    AF_BLUE_STRING_GURMUKHI_BASE = 1113,
+    AF_BLUE_STRING_GURMUKHI_HEAD = 1145,
+    AF_BLUE_STRING_GURMUKHI_TOP = 1177,
+    AF_BLUE_STRING_GURMUKHI_BOTTOM = 1209,
+    AF_BLUE_STRING_GURMUKHI_DIGIT_TOP = 1241,
+    AF_BLUE_STRING_HEBREW_TOP = 1261,
+    AF_BLUE_STRING_HEBREW_BOTTOM = 1285,
+    AF_BLUE_STRING_HEBREW_DESCENDER = 1303,
+    AF_BLUE_STRING_KANNADA_TOP = 1318,
+    AF_BLUE_STRING_KANNADA_BOTTOM = 1362,
+    AF_BLUE_STRING_KHMER_TOP = 1394,
+    AF_BLUE_STRING_KHMER_SUBSCRIPT_TOP = 1418,
+    AF_BLUE_STRING_KHMER_BOTTOM = 1458,
+    AF_BLUE_STRING_KHMER_DESCENDER = 1490,
+    AF_BLUE_STRING_KHMER_LARGE_DESCENDER = 1524,
+    AF_BLUE_STRING_KHMER_SYMBOLS_WAXING_TOP = 1611,
+    AF_BLUE_STRING_KHMER_SYMBOLS_WANING_BOTTOM = 1619,
+    AF_BLUE_STRING_LAO_TOP = 1627,
+    AF_BLUE_STRING_LAO_BOTTOM = 1659,
+    AF_BLUE_STRING_LAO_ASCENDER = 1691,
+    AF_BLUE_STRING_LAO_LARGE_ASCENDER = 1707,
+    AF_BLUE_STRING_LAO_DESCENDER = 1719,
+    AF_BLUE_STRING_LATIN_CAPITAL_TOP = 1743,
+    AF_BLUE_STRING_LATIN_CAPITAL_BOTTOM = 1759,
+    AF_BLUE_STRING_LATIN_SMALL_F_TOP = 1775,
+    AF_BLUE_STRING_LATIN_SMALL = 1789,
+    AF_BLUE_STRING_LATIN_SMALL_DESCENDER = 1803,
+    AF_BLUE_STRING_LATIN_SUBS_CAPITAL_TOP = 1813,
+    AF_BLUE_STRING_LATIN_SUBS_CAPITAL_BOTTOM = 1833,
+    AF_BLUE_STRING_LATIN_SUBS_SMALL_F_TOP = 1853,
+    AF_BLUE_STRING_LATIN_SUBS_SMALL = 1873,
+    AF_BLUE_STRING_LATIN_SUBS_SMALL_DESCENDER = 1909,
+    AF_BLUE_STRING_LATIN_SUPS_CAPITAL_TOP = 1929,
+    AF_BLUE_STRING_LATIN_SUPS_CAPITAL_BOTTOM = 1960,
+    AF_BLUE_STRING_LATIN_SUPS_SMALL_F_TOP = 1989,
+    AF_BLUE_STRING_LATIN_SUPS_SMALL = 2015,
+    AF_BLUE_STRING_LATIN_SUPS_SMALL_DESCENDER = 2040,
+    AF_BLUE_STRING_MALAYALAM_TOP = 2051,
+    AF_BLUE_STRING_MALAYALAM_BOTTOM = 2095,
+    AF_BLUE_STRING_MYANMAR_TOP = 2127,
+    AF_BLUE_STRING_MYANMAR_BOTTOM = 2159,
+    AF_BLUE_STRING_MYANMAR_ASCENDER = 2191,
+    AF_BLUE_STRING_MYANMAR_DESCENDER = 2219,
+    AF_BLUE_STRING_SINHALA_TOP = 2251,
+    AF_BLUE_STRING_SINHALA_BOTTOM = 2283,
+    AF_BLUE_STRING_SINHALA_DESCENDER = 2315,
+    AF_BLUE_STRING_TAMIL_TOP = 2359,
+    AF_BLUE_STRING_TAMIL_BOTTOM = 2391,
+    AF_BLUE_STRING_TELUGU_TOP = 2423,
+    AF_BLUE_STRING_TELUGU_BOTTOM = 2451,
+    AF_BLUE_STRING_THAI_TOP = 2479,
+    AF_BLUE_STRING_THAI_BOTTOM = 2503,
+    AF_BLUE_STRING_THAI_ASCENDER = 2531,
+    AF_BLUE_STRING_THAI_LARGE_ASCENDER = 2543,
+    AF_BLUE_STRING_THAI_DESCENDER = 2555,
+    AF_BLUE_STRING_THAI_LARGE_DESCENDER = 2571,
+    AF_BLUE_STRING_THAI_DIGIT_TOP = 2579,
+    af_blue_1_1 = 2590,
 #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,
@@ -238,27 +240,28 @@ FT_BEGIN_HEADER
     AF_BLUE_STRINGSET_BENG = 11,
     AF_BLUE_STRINGSET_CYRL = 16,
     AF_BLUE_STRINGSET_DEVA = 22,
-    AF_BLUE_STRINGSET_GEOR = 28,
-    AF_BLUE_STRINGSET_GEOK = 33,
-    AF_BLUE_STRINGSET_GREK = 40,
-    AF_BLUE_STRINGSET_GUJR = 47,
-    AF_BLUE_STRINGSET_GURU = 53,
-    AF_BLUE_STRINGSET_HEBR = 59,
-    AF_BLUE_STRINGSET_KNDA = 63,
-    AF_BLUE_STRINGSET_KHMR = 66,
-    AF_BLUE_STRINGSET_KHMS = 72,
-    AF_BLUE_STRINGSET_LAO = 75,
-    AF_BLUE_STRINGSET_LATN = 81,
-    AF_BLUE_STRINGSET_LATB = 88,
-    AF_BLUE_STRINGSET_LATP = 95,
-    AF_BLUE_STRINGSET_MLYM = 102,
-    AF_BLUE_STRINGSET_MYMR = 105,
-    AF_BLUE_STRINGSET_NONE = 110,
-    AF_BLUE_STRINGSET_SINH = 111,
-    AF_BLUE_STRINGSET_TAML = 115,
-    AF_BLUE_STRINGSET_TELU = 118,
-    AF_BLUE_STRINGSET_THAI = 121,
-    af_blue_2_1 = 129,
+    AF_BLUE_STRINGSET_ETHI = 28,
+    AF_BLUE_STRINGSET_GEOR = 31,
+    AF_BLUE_STRINGSET_GEOK = 36,
+    AF_BLUE_STRINGSET_GREK = 43,
+    AF_BLUE_STRINGSET_GUJR = 50,
+    AF_BLUE_STRINGSET_GURU = 56,
+    AF_BLUE_STRINGSET_HEBR = 62,
+    AF_BLUE_STRINGSET_KNDA = 66,
+    AF_BLUE_STRINGSET_KHMR = 69,
+    AF_BLUE_STRINGSET_KHMS = 75,
+    AF_BLUE_STRINGSET_LAO = 78,
+    AF_BLUE_STRINGSET_LATN = 84,
+    AF_BLUE_STRINGSET_LATB = 91,
+    AF_BLUE_STRINGSET_LATP = 98,
+    AF_BLUE_STRINGSET_MLYM = 105,
+    AF_BLUE_STRINGSET_MYMR = 108,
+    AF_BLUE_STRINGSET_NONE = 113,
+    AF_BLUE_STRINGSET_SINH = 114,
+    AF_BLUE_STRINGSET_TAML = 118,
+    AF_BLUE_STRINGSET_TELU = 121,
+    AF_BLUE_STRINGSET_THAI = 124,
+    af_blue_2_1 = 132,
 #ifdef AF_CONFIG_OPTION_CJK
     AF_BLUE_STRINGSET_HANI = af_blue_2_1 + 0,
     af_blue_2_1_1 = af_blue_2_1 + 2,
diff --git a/src/autofit/afranges.c b/src/autofit/afranges.c
index 5286610..226abec 100644
--- a/src/autofit/afranges.c
+++ b/src/autofit/afranges.c
@@ -172,6 +172,22 @@
   };
 
 
+  const AF_Script_UniRangeRec  af_ethi_uniranges[] =
+  {
+    AF_UNIRANGE_REC(  0x1200,  0x137F ),  /* Ethiopic            */
+    AF_UNIRANGE_REC(  0x1380,  0x139F ),  /* Ethiopic Supplement */
+    AF_UNIRANGE_REC(  0x2D80,  0x2DDF ),  /* Ethiopic Extended   */
+    AF_UNIRANGE_REC(  0xAB00,  0xAB2F ),  /* Ethiopic Extended-A */
+    AF_UNIRANGE_REC(       0,       0 )
+  };
+
+  const AF_Script_UniRangeRec  af_ethi_nonbase_uniranges[] =
+  {
+    AF_UNIRANGE_REC(  0x135D,  0x135F ),
+    AF_UNIRANGE_REC(       0,       0 )
+  };
+
+
   const AF_Script_UniRangeRec  af_geor_uniranges[] =
   {
     AF_UNIRANGE_REC(  0x10D0,  0x10FF ),  /* Georgian (Mkhedruli) */
diff --git a/src/autofit/afscript.h b/src/autofit/afscript.h
index 660eca7..2557884 100644
--- a/src/autofit/afscript.h
+++ b/src/autofit/afscript.h
@@ -61,6 +61,12 @@
           HINTING_TOP_TO_BOTTOM,
           "\xE0\xA4\xA0 \xE0\xA4\xB5 \xE0\xA4\x9F" ) /* ठ व ट */
 
+  SCRIPT( ethi, ETHI,
+          "Ethiopic",
+          HB_SCRIPT_ETHIOPIC,
+          HINTING_BOTTOM_TO_TOP,
+          "\xE1\x8B\x90" ) /* ዐ */
+
   SCRIPT( geor, GEOR,
           "Georgian (Mkhedruli)",
           HB_SCRIPT_GEORGIAN,
diff --git a/src/autofit/afstyles.h b/src/autofit/afstyles.h
index c3b52c4..5d0bcd6 100644
--- a/src/autofit/afstyles.h
+++ b/src/autofit/afstyles.h
@@ -113,6 +113,13 @@
          AF_BLUE_STRINGSET_DEVA,
          AF_COVERAGE_DEFAULT )
 
+  STYLE( ethi_dflt, ETHI_DFLT,
+         "Ethiopic default style",
+         AF_WRITING_SYSTEM_LATIN,
+         AF_SCRIPT_ETHI,
+         AF_BLUE_STRINGSET_ETHI,
+         AF_COVERAGE_DEFAULT )
+
   STYLE( geor_dflt, GEOR_DFLT,
          "Georgian (Mkhedruli) default style",
          AF_WRITING_SYSTEM_LATIN,