Commit d8f9a453b2105d2290401bf6f9338dce0f36af9b

Werner Lemberg 2015-12-13T15:54:17

[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.

diff --git a/ChangeLog b/ChangeLog
index 63de954..db29a80 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,17 @@
+2015-12-13  Werner Lemberg  <wl@gnu.org>
+
+	[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  <wl@gnu.org>
 
 	* src/autofit/aflatin.c (af_latin_metrics_init_blues): Minor.
diff --git a/src/autofit/afblue.c b/src/autofit/afblue.c
index ce932a3..104ee17 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 970812b..5ffb852 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 96cfe43..34f90e9 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 64edc79..f19068b 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 6e46a37..39ec652 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 16105c6..e214442 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,