[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.
2.6.5
Werner Lemberg 9 years ago
parent 15eab36340
commit 223d002c63
  1. 14
      ChangeLog
  2. 7
      src/autofit/afblue.c
  3. 10
      src/autofit/afblue.dat
  4. 201
      src/autofit/afblue.h
  5. 16
      src/autofit/afranges.c
  6. 6
      src/autofit/afscript.h
  7. 7
      src/autofit/afstyles.h

@ -1,3 +1,17 @@
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).

@ -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 },

@ -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 |

@ -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,

@ -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) */

@ -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,

@ -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,

Loading…
Cancel
Save