diff --git a/ChangeLog b/ChangeLog index 2bff58990..dc9fd9d8a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,15 @@ +2017-04-06 Sascha Brawer + Werner Lemberg [autofit] Add support for Adlam script. diff --git a/src/autofit/afblue.c b/src/autofit/afblue.c index 6e434e95d..d49767a3f 100644 --- a/src/autofit/afblue.c +++ b/src/autofit/afblue.c @@ -214,6 +214,14 @@ '\0', '\xE1', '\x80', '\x89', ' ', '\xE1', '\x80', '\x8A', ' ', '\xE1', '\x80', '\xA5', ' ', '\xE1', '\x80', '\xA9', ' ', '\xE1', '\x80', '\xA8', ' ', '\xE1', '\x81', '\x82', ' ', '\xE1', '\x81', '\x85', ' ', '\xE1', '\x81', '\x89', /* ဉ ည ဥ ဩ ဨ ၂ ၅ ၉ */ '\0', + '\xDF', '\x90', ' ', '\xDF', '\x89', ' ', '\xDF', '\x92', ' ', '\xDF', '\x9F', ' ', '\xDF', '\x96', ' ', '\xDF', '\x9C', ' ', '\xDF', '\xA0', ' ', '\xDF', '\xA5', /* ߐ ߉ ߒ ߟ ߖ ߜ ߠ ߥ */ + '\0', + '\xDF', '\x80', ' ', '\xDF', '\x98', ' ', '\xDF', '\xA1', ' ', '\xDF', '\xA0', ' ', '\xDF', '\xA5', /* ߀ ߘ ߡ ߠ ߥ */ + '\0', + '\xDF', '\x8F', ' ', '\xDF', '\x9B', ' ', '\xDF', '\x8B', /* ߏ ߛ ߋ */ + '\0', + '\xDF', '\x8E', ' ', '\xDF', '\x8F', ' ', '\xDF', '\x9B', ' ', '\xDF', '\x8B', /* ߎ ߏ ߛ ߋ */ + '\0', '\xE1', '\xB1', '\x9B', ' ', '\xE1', '\xB1', '\x9C', ' ', '\xE1', '\xB1', '\x9D', ' ', '\xE1', '\xB1', '\xA1', ' ', '\xE1', '\xB1', '\xA2', ' ', '\xE1', '\xB1', '\xA5', /* ᱛ ᱜ ᱝ ᱡ ᱢ ᱥ */ '\0', '\xE0', '\xB6', '\x89', ' ', '\xE0', '\xB6', '\x9A', ' ', '\xE0', '\xB6', '\x9D', ' ', '\xE0', '\xB6', '\xB3', ' ', '\xE0', '\xB6', '\xB4', ' ', '\xE0', '\xB6', '\xBA', ' ', '\xE0', '\xB6', '\xBD', ' ', '\xE0', '\xB7', '\x86', /* ඉ ක ඝ ඳ ප ය ල ෆ */ @@ -440,6 +448,12 @@ { AF_BLUE_STRING_MYANMAR_ASCENDER, AF_BLUE_PROPERTY_LATIN_TOP }, { AF_BLUE_STRING_MYANMAR_DESCENDER, 0 }, { AF_BLUE_STRING_MAX, 0 }, + { AF_BLUE_STRING_NKO_TOP, AF_BLUE_PROPERTY_LATIN_TOP }, + { AF_BLUE_STRING_NKO_BOTTOM, 0 }, + { AF_BLUE_STRING_NKO_SMALL_TOP, AF_BLUE_PROPERTY_LATIN_TOP | + AF_BLUE_PROPERTY_LATIN_X_HEIGHT }, + { AF_BLUE_STRING_NKO_SMALL_BOTTOM, 0 }, + { AF_BLUE_STRING_MAX, 0 }, { AF_BLUE_STRING_MAX, 0 }, { AF_BLUE_STRING_OL_CHIKI, AF_BLUE_PROPERTY_LATIN_TOP }, { AF_BLUE_STRING_OL_CHIKI, 0 }, diff --git a/src/autofit/afblue.dat b/src/autofit/afblue.dat index 7b5c08425..6d8680948 100644 --- a/src/autofit/afblue.dat +++ b/src/autofit/afblue.dat @@ -297,6 +297,15 @@ AF_BLUE_STRING_ENUM AF_BLUE_STRINGS_ARRAY AF_BLUE_STRING_MAX_LEN: AF_BLUE_STRING_MYANMAR_DESCENDER "ဉ ည ဥ ဩ ဨ ၂ ၅ ၉" + AF_BLUE_STRING_NKO_TOP + "ߐ ߉ ߒ ߟ ߖ ߜ ߠ ߥ" + AF_BLUE_STRING_NKO_BOTTOM + "߀ ߘ ߡ ߠ ߥ" + AF_BLUE_STRING_NKO_SMALL_TOP + "ߏ ߛ ߋ" + AF_BLUE_STRING_NKO_SMALL_BOTTOM + "ߎ ߏ ߛ ߋ" + AF_BLUE_STRING_OL_CHIKI "ᱛ ᱜ ᱝ ᱡ ᱢ ᱥ" @@ -691,6 +700,14 @@ AF_BLUE_STRINGSET_ENUM AF_BLUE_STRINGSETS_ARRAY AF_BLUE_STRINGSET_MAX_LEN: { AF_BLUE_STRING_MYANMAR_DESCENDER, 0 } { AF_BLUE_STRING_MAX, 0 } + AF_BLUE_STRINGSET_NKOO + { AF_BLUE_STRING_NKO_TOP, AF_BLUE_PROPERTY_LATIN_TOP } + { AF_BLUE_STRING_NKO_BOTTOM, 0 } + { AF_BLUE_STRING_NKO_SMALL_TOP, AF_BLUE_PROPERTY_LATIN_TOP | + AF_BLUE_PROPERTY_LATIN_X_HEIGHT } + { AF_BLUE_STRING_NKO_SMALL_BOTTOM, 0 } + { AF_BLUE_STRING_MAX, 0 } + AF_BLUE_STRINGSET_NONE { AF_BLUE_STRING_MAX, 0 } diff --git a/src/autofit/afblue.h b/src/autofit/afblue.h index e290c47f4..9fd349824 100644 --- a/src/autofit/afblue.h +++ b/src/autofit/afblue.h @@ -171,22 +171,26 @@ FT_BEGIN_HEADER AF_BLUE_STRING_MYANMAR_BOTTOM = 2391, AF_BLUE_STRING_MYANMAR_ASCENDER = 2423, AF_BLUE_STRING_MYANMAR_DESCENDER = 2451, - AF_BLUE_STRING_OL_CHIKI = 2483, - AF_BLUE_STRING_SINHALA_TOP = 2507, - AF_BLUE_STRING_SINHALA_BOTTOM = 2539, - AF_BLUE_STRING_SINHALA_DESCENDER = 2571, - AF_BLUE_STRING_TAMIL_TOP = 2615, - AF_BLUE_STRING_TAMIL_BOTTOM = 2647, - AF_BLUE_STRING_TELUGU_TOP = 2679, - AF_BLUE_STRING_TELUGU_BOTTOM = 2707, - AF_BLUE_STRING_THAI_TOP = 2735, - AF_BLUE_STRING_THAI_BOTTOM = 2759, - AF_BLUE_STRING_THAI_ASCENDER = 2787, - AF_BLUE_STRING_THAI_LARGE_ASCENDER = 2799, - AF_BLUE_STRING_THAI_DESCENDER = 2811, - AF_BLUE_STRING_THAI_LARGE_DESCENDER = 2827, - AF_BLUE_STRING_THAI_DIGIT_TOP = 2835, - af_blue_1_1 = 2846, + AF_BLUE_STRING_NKO_TOP = 2483, + AF_BLUE_STRING_NKO_BOTTOM = 2507, + AF_BLUE_STRING_NKO_SMALL_TOP = 2522, + AF_BLUE_STRING_NKO_SMALL_BOTTOM = 2531, + AF_BLUE_STRING_OL_CHIKI = 2543, + AF_BLUE_STRING_SINHALA_TOP = 2567, + AF_BLUE_STRING_SINHALA_BOTTOM = 2599, + AF_BLUE_STRING_SINHALA_DESCENDER = 2631, + AF_BLUE_STRING_TAMIL_TOP = 2675, + AF_BLUE_STRING_TAMIL_BOTTOM = 2707, + AF_BLUE_STRING_TELUGU_TOP = 2739, + AF_BLUE_STRING_TELUGU_BOTTOM = 2767, + AF_BLUE_STRING_THAI_TOP = 2795, + AF_BLUE_STRING_THAI_BOTTOM = 2819, + AF_BLUE_STRING_THAI_ASCENDER = 2847, + AF_BLUE_STRING_THAI_LARGE_ASCENDER = 2859, + AF_BLUE_STRING_THAI_DESCENDER = 2871, + AF_BLUE_STRING_THAI_LARGE_DESCENDER = 2887, + AF_BLUE_STRING_THAI_DIGIT_TOP = 2895, + af_blue_1_1 = 2906, #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, @@ -268,13 +272,14 @@ FT_BEGIN_HEADER AF_BLUE_STRINGSET_LATP = 110, AF_BLUE_STRINGSET_MLYM = 117, AF_BLUE_STRINGSET_MYMR = 120, - AF_BLUE_STRINGSET_NONE = 125, - AF_BLUE_STRINGSET_OLCK = 126, - AF_BLUE_STRINGSET_SINH = 129, - AF_BLUE_STRINGSET_TAML = 133, - AF_BLUE_STRINGSET_TELU = 136, - AF_BLUE_STRINGSET_THAI = 139, - af_blue_2_1 = 147, + AF_BLUE_STRINGSET_NKOO = 125, + AF_BLUE_STRINGSET_NONE = 130, + AF_BLUE_STRINGSET_OLCK = 131, + AF_BLUE_STRINGSET_SINH = 134, + AF_BLUE_STRINGSET_TAML = 138, + AF_BLUE_STRINGSET_TELU = 141, + AF_BLUE_STRINGSET_THAI = 144, + af_blue_2_1 = 152, #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 dceab9a8d..57236cf8d 100644 --- a/src/autofit/afranges.c +++ b/src/autofit/afranges.c @@ -493,27 +493,40 @@ const AF_Script_UniRangeRec af_mymr_uniranges[] = { - AF_UNIRANGE_REC( 0x1000, 0x109F ), /* Myanmar */ - AF_UNIRANGE_REC( 0xA9E0, 0xA9FF ), /* Myanmar Extended-B */ - AF_UNIRANGE_REC( 0xAA60, 0xAA7F ), /* Myanmar Extended-A */ - AF_UNIRANGE_REC( 0, 0 ) + AF_UNIRANGE_REC( 0x1000, 0x109F ), /* Myanmar */ + AF_UNIRANGE_REC( 0xA9E0, 0xA9FF ), /* Myanmar Extended-B */ + AF_UNIRANGE_REC( 0xAA60, 0xAA7F ), /* Myanmar Extended-A */ + AF_UNIRANGE_REC( 0, 0 ) }; const AF_Script_UniRangeRec af_mymr_nonbase_uniranges[] = { - AF_UNIRANGE_REC( 0x102D, 0x1030 ), - AF_UNIRANGE_REC( 0x1032, 0x1037 ), - AF_UNIRANGE_REC( 0x103A, 0x103A ), - AF_UNIRANGE_REC( 0x103D, 0x103E ), - AF_UNIRANGE_REC( 0x1058, 0x1059 ), - AF_UNIRANGE_REC( 0x105E, 0x1060 ), - AF_UNIRANGE_REC( 0x1071, 0x1074 ), - AF_UNIRANGE_REC( 0x1082, 0x1082 ), - AF_UNIRANGE_REC( 0x1085, 0x1086 ), - AF_UNIRANGE_REC( 0x108D, 0x108D ), - AF_UNIRANGE_REC( 0xA9E5, 0xA9E5 ), - AF_UNIRANGE_REC( 0xAA7C, 0xAA7C ), - AF_UNIRANGE_REC( 0, 0 ) + AF_UNIRANGE_REC( 0x102D, 0x1030 ), + AF_UNIRANGE_REC( 0x1032, 0x1037 ), + AF_UNIRANGE_REC( 0x103A, 0x103A ), + AF_UNIRANGE_REC( 0x103D, 0x103E ), + AF_UNIRANGE_REC( 0x1058, 0x1059 ), + AF_UNIRANGE_REC( 0x105E, 0x1060 ), + AF_UNIRANGE_REC( 0x1071, 0x1074 ), + AF_UNIRANGE_REC( 0x1082, 0x1082 ), + AF_UNIRANGE_REC( 0x1085, 0x1086 ), + AF_UNIRANGE_REC( 0x108D, 0x108D ), + AF_UNIRANGE_REC( 0xA9E5, 0xA9E5 ), + AF_UNIRANGE_REC( 0xAA7C, 0xAA7C ), + AF_UNIRANGE_REC( 0, 0 ) + }; + + + const AF_Script_UniRangeRec af_nkoo_uniranges[] = + { + AF_UNIRANGE_REC( 0x07C0, 0x07FF ), /* N'Ko */ + AF_UNIRANGE_REC( 0, 0 ) + }; + + const AF_Script_UniRangeRec af_nkoo_nonbase_uniranges[] = + { + AF_UNIRANGE_REC( 0x07EB, 0x07F5 ), + AF_UNIRANGE_REC( 0, 0 ) }; @@ -530,8 +543,8 @@ const AF_Script_UniRangeRec af_olck_uniranges[] = { - AF_UNIRANGE_REC( 0x1C50, 0x1C7F ), /* Ol Chiki */ - AF_UNIRANGE_REC( 0, 0 ) + AF_UNIRANGE_REC( 0x1C50, 0x1C7F ), /* Ol Chiki */ + AF_UNIRANGE_REC( 0, 0 ) }; const AF_Script_UniRangeRec af_olck_nonbase_uniranges[] = diff --git a/src/autofit/afscript.h b/src/autofit/afscript.h index 154a7e882..e90ce826c 100644 --- a/src/autofit/afscript.h +++ b/src/autofit/afscript.h @@ -171,6 +171,12 @@ HINTING_BOTTOM_TO_TOP, "\xE1\x80\x9D \xE1\x80\x84 \xE1\x80\x82" ) /* ဝ င ဂ */ + SCRIPT( nkoo, NKOO, + "N'Ko", + HB_SCRIPT_NKO, + HINTING_BOTTOM_TO_TOP, + "\xDF\x8B \xDF\x80" ) /* ߋ ߀ */ + SCRIPT( none, NONE, "no script", HB_SCRIPT_INVALID, diff --git a/src/autofit/afstyles.h b/src/autofit/afstyles.h index cf283d976..beb0152b6 100644 --- a/src/autofit/afstyles.h +++ b/src/autofit/afstyles.h @@ -238,6 +238,13 @@ AF_BLUE_STRINGSET_MYMR, AF_COVERAGE_DEFAULT ) + STYLE( nkoo_dflt, NKOO_DFLT, + "N'Ko default style", + AF_WRITING_SYSTEM_LATIN, + AF_SCRIPT_NKOO, + AF_BLUE_STRINGSET_NKOO, + AF_COVERAGE_DEFAULT ) + STYLE( none_dflt, NONE_DFLT, "no style", AF_WRITING_SYSTEM_DUMMY,