ref: 223d002c63a061436fb03cb1e35f8aef4b16b9d6
parent: 15eab363402c826d9ed0f300eb1020ee9b2ad379
author: Werner Lemberg <[email protected]>
date: Tue Jun 7 09:52:14 EDT 2016
[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.
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,19 @@
2016-06-07 Werner Lemberg <[email protected]>
+ [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 <[email protected]>
+
[autofit] Fix compilation with VS2016 (#48126).
This compiler doesn't recognize the end-of-comment sequence `*/' if
--- 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 },
--- a/src/autofit/afblue.dat
+++ b/src/autofit/afblue.dat
@@ -127,6 +127,11 @@
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
@@ -512,6 +517,11 @@
{ AF_BLUE_STRING_DEVANAGARI_BASE, 0 }
{ 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
--- a/src/autofit/afblue.h
+++ b/src/autofit/afblue.h
@@ -97,84 +97,86 @@
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 @@
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,
--- 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) */
--- 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,
--- 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,