diff --git a/ChangeLog b/ChangeLog index 63de9546c..db29a809e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,17 @@ +2015-12-13 Werner Lemberg + + [autofit] Add support for Myanmar script. + + * src/autofit/afblue.dat: Add blue zone data for Myanmar. + + * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated. + + * src/autofit/afscript.h: Add Myanmar standard characters. + + * src/autofit/afranges.c: Add Myanmar data. + + * src/autofit/afstyles.h: Add Myanmar data. + 2015-12-12 Werner Lemberg * src/autofit/aflatin.c (af_latin_metrics_init_blues): Minor. diff --git a/src/autofit/afblue.c b/src/autofit/afblue.c index ce932a3a1..104ee17cb 100644 --- a/src/autofit/afblue.c +++ b/src/autofit/afblue.c @@ -118,6 +118,14 @@ '\0', '\xE1', '\xB5', '\x96', ' ', '\xCA', '\xB8', ' ', '\xE1', '\xB5', '\x8D', /* ᵖ ʸ ᵍ */ '\0', + '\xE1', '\x80', '\x81', ' ', '\xE1', '\x80', '\x82', ' ', '\xE1', '\x80', '\x84', ' ', '\xE1', '\x80', '\x92', ' ', '\xE1', '\x80', '\x9D', ' ', '\xE1', '\x81', '\xA5', ' ', '\xE1', '\x81', '\x8A', ' ', '\xE1', '\x81', '\x8B', /* ခ ဂ င ဒ ဝ ၥ ၊ ။ */ + '\0', + '\xE1', '\x80', '\x84', ' ', '\xE1', '\x80', '\x8E', ' ', '\xE1', '\x80', '\x92', ' ', '\xE1', '\x80', '\x95', ' ', '\xE1', '\x80', '\x97', ' ', '\xE1', '\x80', '\x9D', ' ', '\xE1', '\x81', '\x8A', ' ', '\xE1', '\x81', '\x8B', /* င ဎ ဒ ပ ဗ ဝ ၊ ။ */ + '\0', + '\xE1', '\x80', '\xA9', ' ', '\xE1', '\x80', '\xBC', ' ', '\xE1', '\x81', '\x8D', ' ', '\xE1', '\x81', '\x8F', ' ', '\xE1', '\x81', '\x86', ' ', '\xE1', '\x80', '\xAB', ' ', '\xE1', '\x80', '\xAD', /* ဩ ြ ၍ ၏ ၆ ါ ိ */ + '\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', '\xE0', '\xB0', '\x87', ' ', '\xE0', '\xB0', '\x8C', ' ', '\xE0', '\xB0', '\x99', ' ', '\xE0', '\xB0', '\x9E', ' ', '\xE0', '\xB0', '\xA3', ' ', '\xE0', '\xB0', '\xB1', ' ', '\xE0', '\xB1', '\xAF', /* ఇ ఌ ఙ ఞ ణ ఱ ౯ */ '\0', '\xE0', '\xB0', '\x85', ' ', '\xE0', '\xB0', '\x95', ' ', '\xE0', '\xB0', '\x9A', ' ', '\xE0', '\xB0', '\xB0', ' ', '\xE0', '\xB0', '\xBD', ' ', '\xE0', '\xB1', '\xA8', ' ', '\xE0', '\xB1', '\xAC', /* అ క చ ర ఽ ౨ ౬ */ @@ -259,6 +267,12 @@ { AF_BLUE_STRING_LATIN_SUPS_SMALL, 0 }, { AF_BLUE_STRING_LATIN_SUPS_SMALL_DESCENDER, 0 }, { AF_BLUE_STRING_MAX, 0 }, + { AF_BLUE_STRING_MYANMAR_TOP, AF_BLUE_PROPERTY_LATIN_TOP | + AF_BLUE_PROPERTY_LATIN_X_HEIGHT }, + { AF_BLUE_STRING_MYANMAR_BOTTOM, 0 }, + { AF_BLUE_STRING_MYANMAR_ASCENDER, AF_BLUE_PROPERTY_LATIN_TOP }, + { AF_BLUE_STRING_MYANMAR_DESCENDER, 0 }, + { AF_BLUE_STRING_MAX, 0 }, { AF_BLUE_STRING_TELUGU_TOP, AF_BLUE_PROPERTY_LATIN_TOP }, { AF_BLUE_STRING_TELUGU_BOTTOM, 0 }, { AF_BLUE_STRING_MAX, 0 }, diff --git a/src/autofit/afblue.dat b/src/autofit/afblue.dat index 970812b4a..5ffb852aa 100644 --- a/src/autofit/afblue.dat +++ b/src/autofit/afblue.dat @@ -188,6 +188,15 @@ AF_BLUE_STRING_ENUM AF_BLUE_STRINGS_ARRAY AF_BLUE_STRING_MAX_LEN: AF_BLUE_STRING_LATIN_SUPS_SMALL_DESCENDER "ᵖ ʸ ᵍ" + AF_BLUE_STRING_MYANMAR_TOP + "ခ ဂ င ဒ ဝ ၥ ၊ ။" + AF_BLUE_STRING_MYANMAR_BOTTOM + "င ဎ ဒ ပ ဗ ဝ ၊ ။" + AF_BLUE_STRING_MYANMAR_ASCENDER + "ဩ ြ ၍ ၏ ၆ ါ ိ" + AF_BLUE_STRING_MYANMAR_DESCENDER + "ဉ ည ဥ ဩ ဨ ၂ ၅ ၉" + AF_BLUE_STRING_TELUGU_TOP "ఇ ఌ ఙ ఞ ణ ఱ ౯" AF_BLUE_STRING_TELUGU_BOTTOM @@ -469,6 +478,14 @@ AF_BLUE_STRINGSET_ENUM AF_BLUE_STRINGSETS_ARRAY AF_BLUE_STRINGSET_MAX_LEN: { AF_BLUE_STRING_LATIN_SUPS_SMALL_DESCENDER, 0 } { AF_BLUE_STRING_MAX, 0 } + AF_BLUE_STRINGSET_MYMR + { AF_BLUE_STRING_MYANMAR_TOP, AF_BLUE_PROPERTY_LATIN_TOP | + AF_BLUE_PROPERTY_LATIN_X_HEIGHT } + { AF_BLUE_STRING_MYANMAR_BOTTOM, 0 } + { AF_BLUE_STRING_MYANMAR_ASCENDER, AF_BLUE_PROPERTY_LATIN_TOP } + { AF_BLUE_STRING_MYANMAR_DESCENDER, 0 } + { AF_BLUE_STRING_MAX, 0 } + AF_BLUE_STRINGSET_TELU { AF_BLUE_STRING_TELUGU_TOP, AF_BLUE_PROPERTY_LATIN_TOP } { AF_BLUE_STRING_TELUGU_BOTTOM, 0 } diff --git a/src/autofit/afblue.h b/src/autofit/afblue.h index 96cfe4310..34f90e9e9 100644 --- a/src/autofit/afblue.h +++ b/src/autofit/afblue.h @@ -123,16 +123,20 @@ FT_BEGIN_HEADER AF_BLUE_STRING_LATIN_SUPS_SMALL_F_TOP = 978, AF_BLUE_STRING_LATIN_SUPS_SMALL = 1004, AF_BLUE_STRING_LATIN_SUPS_SMALL_DESCENDER = 1029, - AF_BLUE_STRING_TELUGU_TOP = 1040, - AF_BLUE_STRING_TELUGU_BOTTOM = 1068, - AF_BLUE_STRING_THAI_TOP = 1096, - AF_BLUE_STRING_THAI_BOTTOM = 1120, - AF_BLUE_STRING_THAI_ASCENDER = 1148, - AF_BLUE_STRING_THAI_LARGE_ASCENDER = 1160, - AF_BLUE_STRING_THAI_DESCENDER = 1172, - AF_BLUE_STRING_THAI_LARGE_DESCENDER = 1188, - AF_BLUE_STRING_THAI_DIGIT_TOP = 1196, - af_blue_1_1 = 1207, + AF_BLUE_STRING_MYANMAR_TOP = 1040, + AF_BLUE_STRING_MYANMAR_BOTTOM = 1072, + AF_BLUE_STRING_MYANMAR_ASCENDER = 1104, + AF_BLUE_STRING_MYANMAR_DESCENDER = 1132, + AF_BLUE_STRING_TELUGU_TOP = 1164, + AF_BLUE_STRING_TELUGU_BOTTOM = 1192, + AF_BLUE_STRING_THAI_TOP = 1220, + AF_BLUE_STRING_THAI_BOTTOM = 1244, + AF_BLUE_STRING_THAI_ASCENDER = 1272, + AF_BLUE_STRING_THAI_LARGE_ASCENDER = 1284, + AF_BLUE_STRING_THAI_DESCENDER = 1296, + AF_BLUE_STRING_THAI_LARGE_DESCENDER = 1312, + AF_BLUE_STRING_THAI_DIGIT_TOP = 1320, + af_blue_1_1 = 1331, #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, @@ -202,9 +206,10 @@ FT_BEGIN_HEADER AF_BLUE_STRINGSET_LATN = 42, AF_BLUE_STRINGSET_LATB = 49, AF_BLUE_STRINGSET_LATP = 56, - AF_BLUE_STRINGSET_TELU = 63, - AF_BLUE_STRINGSET_THAI = 66, - af_blue_2_1 = 74, + AF_BLUE_STRINGSET_MYMR = 63, + AF_BLUE_STRINGSET_TELU = 68, + AF_BLUE_STRINGSET_THAI = 71, + af_blue_2_1 = 79, #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 64edc79cb..f19068b65 100644 --- a/src/autofit/afranges.c +++ b/src/autofit/afranges.c @@ -319,6 +319,32 @@ }; + const AF_Script_UniRangeRec af_mymr_uniranges[] = + { + AF_UNIRANGE_REC( 0x1000UL, 0x109FUL ), /* Myanmar */ + AF_UNIRANGE_REC( 0xA9E0UL, 0xA9FFUL ), /* Myanmar Extended-B */ + AF_UNIRANGE_REC( 0xAA60UL, 0xAA7FUL ), /* Myanmar Extended-A */ + AF_UNIRANGE_REC( 0UL, 0UL ) + }; + + const AF_Script_UniRangeRec af_mymr_nonbase_uniranges[] = + { + AF_UNIRANGE_REC( 0x102DUL, 0x1030UL ), + AF_UNIRANGE_REC( 0x1032UL, 0x1037UL ), + AF_UNIRANGE_REC( 0x103AUL, 0x103AUL ), + AF_UNIRANGE_REC( 0x103DUL, 0x103EUL ), + AF_UNIRANGE_REC( 0x1058UL, 0x1059UL ), + AF_UNIRANGE_REC( 0x105EUL, 0x1060UL ), + AF_UNIRANGE_REC( 0x1071UL, 0x1074UL ), + AF_UNIRANGE_REC( 0x1082UL, 0x1082UL ), + AF_UNIRANGE_REC( 0x1085UL, 0x1086UL ), + AF_UNIRANGE_REC( 0x108DUL, 0x108DUL ), + AF_UNIRANGE_REC( 0xA9E5UL, 0xA9E5UL ), + AF_UNIRANGE_REC( 0xAA7CUL, 0xAA7CUL ), + AF_UNIRANGE_REC( 0UL, 0UL ) + }; + + const AF_Script_UniRangeRec af_none_uniranges[] = { AF_UNIRANGE_REC( 0UL, 0UL ) diff --git a/src/autofit/afscript.h b/src/autofit/afscript.h index 6e46a37a0..39ec652ac 100644 --- a/src/autofit/afscript.h +++ b/src/autofit/afscript.h @@ -87,6 +87,11 @@ HB_SCRIPT_INVALID, "\xE1\xB5\x92 \xE1\xB4\xBC \xE2\x81\xB0" ) /* ᵒ ᴼ ⁰ */ + SCRIPT( mymr, MYMR, + "Myanmar", + HB_SCRIPT_MYANMAR, + "\xE1\x80\x9D \xE1\x80\x84 \xE1\x80\x82" ) /* ဝ င ဂ */ + SCRIPT( none, NONE, "no script", HB_SCRIPT_INVALID, diff --git a/src/autofit/afstyles.h b/src/autofit/afstyles.h index 16105c6d5..e21444260 100644 --- a/src/autofit/afstyles.h +++ b/src/autofit/afstyles.h @@ -154,6 +154,13 @@ AF_COVERAGE_DEFAULT ) #endif + STYLE( mymr_dflt, MYMR_DFLT, + "Myanmar default style", + AF_WRITING_SYSTEM_LATIN, + AF_SCRIPT_MYMR, + AF_BLUE_STRINGSET_MYMR, + AF_COVERAGE_DEFAULT ) + STYLE( none_dflt, NONE_DFLT, "no style", AF_WRITING_SYSTEM_DUMMY,