Commit 0483fb386180b7108dd6c0e61e2c0560bce4d592

Sascha Brawer 2017-05-03T20:16:24

[autofit] Add blue-zone support for Sundanese script. This essentially moves the Sundanese script from the `Indic' hinter to the `Latin' hinter. * src/autofit/afblue.dat: Add blue zone data for Sundanese. * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated. * src/autofit/afscript.h: Add Sundanese standard character and move data out of AF_CONFIG_OPTION_INDIC block. * src/autofit/afranges.c: Move Sundanese data out of AF_CONFIG_OPTION_INDIC block. * src/autofit/afstyles.h: Update Sundanese data; in particular, use AF_WRITING_SYSTEM_LATIN.

diff --git a/ChangeLog b/ChangeLog
index f1afb3c..311eee0 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,4 +1,25 @@
 2017-05-03  Sascha Brawer  <sascha@google.com>
+	    Werner Lemberg  <wl@gnu.org>
+
+	[autofit] Add blue-zone support for Sundanese script.
+
+	This essentially moves the Sundanese script from the `Indic' hinter
+	to the `Latin' hinter.
+
+	* src/autofit/afblue.dat: Add blue zone data for Sundanese.
+
+	* src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
+
+	* src/autofit/afscript.h: Add Sundanese standard character and move
+	data out of AF_CONFIG_OPTION_INDIC block.
+
+	* src/autofit/afranges.c: Move Sundanese data out of
+	AF_CONFIG_OPTION_INDIC block.
+
+	* src/autofit/afstyles.h: Update Sundanese data; in particular, use
+	AF_WRITING_SYSTEM_LATIN.
+
+2017-05-03  Sascha Brawer  <sascha@google.com>
 	    Werner Lemberg  <wl@gnu.org
 
 	[autofit] Add support for Avestan script.
diff --git a/src/autofit/afblue.c b/src/autofit/afblue.c
index 0fd6e88..992d6b1 100644
--- a/src/autofit/afblue.c
+++ b/src/autofit/afblue.c
@@ -282,6 +282,12 @@
     '\0',
     '\xE0', '\xB6', '\xAF', ' ', '\xE0', '\xB6', '\xB3', ' ', '\xE0', '\xB6', '\x8B', ' ', '\xE0', '\xB6', '\xBD', ' ', '\xE0', '\xB6', '\xAD', '\xE0', '\xB7', '\x96', ' ', '\xE0', '\xB6', '\xAD', '\xE0', '\xB7', '\x94', ' ', '\xE0', '\xB6', '\xB6', '\xE0', '\xB7', '\x94', ' ', '\xE0', '\xB6', '\xAF', '\xE0', '\xB7', '\x94',  /* ද ඳ උ ල තූ තු බු දු */
     '\0',
+    '\xE1', '\xAE', '\x8B', ' ', '\xE1', '\xAE', '\x9E', ' ', '\xE1', '\xAE', '\xAE', ' ', '\xE1', '\xAE', '\xBD', ' ', '\xE1', '\xAE', '\xB0', ' ', '\xE1', '\xAE', '\x88',  /* ᮋ ᮞ ᮮ ᮽ ᮰ ᮈ */
+    '\0',
+    '\xE1', '\xAE', '\x84', ' ', '\xE1', '\xAE', '\x94', ' ', '\xE1', '\xAE', '\x95', ' ', '\xE1', '\xAE', '\x97', ' ', '\xE1', '\xAE', '\xB0', ' ', '\xE1', '\xAE', '\x86', ' ', '\xE1', '\xAE', '\x88', ' ', '\xE1', '\xAE', '\x89',  /* ᮄ ᮔ ᮕ ᮗ ᮰ ᮆ ᮈ ᮉ */
+    '\0',
+    '\xE1', '\xAE', '\xBC', ' ', '\xE1', '\xB3', '\x84',  /* ᮼ ᳄ */
+    '\0',
     '\xEA', '\xAA', '\x86', ' ', '\xEA', '\xAA', '\x94', ' ', '\xEA', '\xAA', '\x92', ' ', '\xEA', '\xAA', '\x96', ' ', '\xEA', '\xAA', '\xAB',  /* ꪆ ꪔ ꪒ ꪖ ꪫ */
     '\0',
     '\xEA', '\xAA', '\x89', ' ', '\xEA', '\xAA', '\xAB', ' ', '\xEA', '\xAA', '\xAE',  /* ꪉ ꪫ ꪮ */
@@ -558,6 +564,10 @@
     { AF_BLUE_STRING_SINHALA_BOTTOM,    0                          },
     { AF_BLUE_STRING_SINHALA_DESCENDER, 0                          },
     { AF_BLUE_STRING_MAX,               0                          },
+    { AF_BLUE_STRING_SUNDANESE_TOP,       AF_BLUE_PROPERTY_LATIN_TOP },
+    { AF_BLUE_STRING_SUNDANESE_BOTTOM,    0                          },
+    { AF_BLUE_STRING_SUNDANESE_DESCENDER, 0                          },
+    { AF_BLUE_STRING_MAX,                 0                          },
     { AF_BLUE_STRING_TAMIL_TOP,    AF_BLUE_PROPERTY_LATIN_TOP },
     { AF_BLUE_STRING_TAMIL_BOTTOM, 0                          },
     { AF_BLUE_STRING_MAX,          0                          },
diff --git a/src/autofit/afblue.dat b/src/autofit/afblue.dat
index be0ae42..00052f7 100644
--- a/src/autofit/afblue.dat
+++ b/src/autofit/afblue.dat
@@ -376,6 +376,13 @@ AF_BLUE_STRING_ENUM AF_BLUE_STRINGS_ARRAY AF_BLUE_STRING_MAX_LEN:
   AF_BLUE_STRING_SINHALA_DESCENDER
     "ද ඳ උ ල තූ තු බු දු"
 
+  AF_BLUE_STRING_SUNDANESE_TOP
+    "ᮋ ᮞ ᮮ ᮽ ᮰ ᮈ"
+  AF_BLUE_STRING_SUNDANESE_BOTTOM
+    "ᮄ ᮔ ᮕ ᮗ ᮰ ᮆ ᮈ ᮉ"
+  AF_BLUE_STRING_SUNDANESE_DESCENDER
+    "ᮼ ᳄"
+
   AF_BLUE_STRING_TAI_VIET_TOP
     "ꪆ ꪔ ꪒ ꪖ ꪫ"
   AF_BLUE_STRING_TAI_VIET_BOTTOM
@@ -844,6 +851,12 @@ AF_BLUE_STRINGSET_ENUM AF_BLUE_STRINGSETS_ARRAY AF_BLUE_STRINGSET_MAX_LEN:
     { AF_BLUE_STRING_SINHALA_DESCENDER, 0                          }
     { AF_BLUE_STRING_MAX,               0                          }
 
+  AF_BLUE_STRINGSET_SUND
+    { AF_BLUE_STRING_SUNDANESE_TOP,       AF_BLUE_PROPERTY_LATIN_TOP }
+    { AF_BLUE_STRING_SUNDANESE_BOTTOM,    0                          }
+    { AF_BLUE_STRING_SUNDANESE_DESCENDER, 0                          }
+    { AF_BLUE_STRING_MAX,                 0                          }
+
   AF_BLUE_STRINGSET_TAML
     { AF_BLUE_STRING_TAMIL_TOP,    AF_BLUE_PROPERTY_LATIN_TOP }
     { AF_BLUE_STRING_TAMIL_BOTTOM, 0                          }
diff --git a/src/autofit/afblue.h b/src/autofit/afblue.h
index 4b6c264..13016a2 100644
--- a/src/autofit/afblue.h
+++ b/src/autofit/afblue.h
@@ -205,21 +205,24 @@ FT_BEGIN_HEADER
     AF_BLUE_STRING_SINHALA_TOP = 3279,
     AF_BLUE_STRING_SINHALA_BOTTOM = 3311,
     AF_BLUE_STRING_SINHALA_DESCENDER = 3343,
-    AF_BLUE_STRING_TAI_VIET_TOP = 3387,
-    AF_BLUE_STRING_TAI_VIET_BOTTOM = 3407,
-    AF_BLUE_STRING_TAMIL_TOP = 3419,
-    AF_BLUE_STRING_TAMIL_BOTTOM = 3451,
-    AF_BLUE_STRING_TELUGU_TOP = 3483,
-    AF_BLUE_STRING_TELUGU_BOTTOM = 3511,
-    AF_BLUE_STRING_THAI_TOP = 3539,
-    AF_BLUE_STRING_THAI_BOTTOM = 3563,
-    AF_BLUE_STRING_THAI_ASCENDER = 3591,
-    AF_BLUE_STRING_THAI_LARGE_ASCENDER = 3603,
-    AF_BLUE_STRING_THAI_DESCENDER = 3615,
-    AF_BLUE_STRING_THAI_LARGE_DESCENDER = 3631,
-    AF_BLUE_STRING_THAI_DIGIT_TOP = 3639,
-    AF_BLUE_STRING_TIFINAGH = 3651,
-    af_blue_1_1 = 3682,
+    AF_BLUE_STRING_SUNDANESE_TOP = 3387,
+    AF_BLUE_STRING_SUNDANESE_BOTTOM = 3411,
+    AF_BLUE_STRING_SUNDANESE_DESCENDER = 3443,
+    AF_BLUE_STRING_TAI_VIET_TOP = 3451,
+    AF_BLUE_STRING_TAI_VIET_BOTTOM = 3471,
+    AF_BLUE_STRING_TAMIL_TOP = 3483,
+    AF_BLUE_STRING_TAMIL_BOTTOM = 3515,
+    AF_BLUE_STRING_TELUGU_TOP = 3547,
+    AF_BLUE_STRING_TELUGU_BOTTOM = 3575,
+    AF_BLUE_STRING_THAI_TOP = 3603,
+    AF_BLUE_STRING_THAI_BOTTOM = 3627,
+    AF_BLUE_STRING_THAI_ASCENDER = 3655,
+    AF_BLUE_STRING_THAI_LARGE_ASCENDER = 3667,
+    AF_BLUE_STRING_THAI_DESCENDER = 3679,
+    AF_BLUE_STRING_THAI_LARGE_DESCENDER = 3695,
+    AF_BLUE_STRING_THAI_DIGIT_TOP = 3703,
+    AF_BLUE_STRING_TIFINAGH = 3715,
+    af_blue_1_1 = 3746,
 #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,
@@ -313,12 +316,13 @@ FT_BEGIN_HEADER
     AF_BLUE_STRINGSET_ORKH = 158,
     AF_BLUE_STRINGSET_OSGE = 161,
     AF_BLUE_STRINGSET_SINH = 169,
-    AF_BLUE_STRINGSET_TAML = 173,
-    AF_BLUE_STRINGSET_TAVT = 176,
-    AF_BLUE_STRINGSET_TELU = 179,
-    AF_BLUE_STRINGSET_THAI = 182,
-    AF_BLUE_STRINGSET_TFNG = 190,
-    af_blue_2_1 = 193,
+    AF_BLUE_STRINGSET_SUND = 173,
+    AF_BLUE_STRINGSET_TAML = 177,
+    AF_BLUE_STRINGSET_TAVT = 180,
+    AF_BLUE_STRINGSET_TELU = 183,
+    AF_BLUE_STRINGSET_THAI = 186,
+    AF_BLUE_STRINGSET_TFNG = 194,
+    af_blue_2_1 = 197,
 #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/afloader.c b/src/autofit/afloader.c
index ddf47eb..78c4368 100644
--- a/src/autofit/afloader.c
+++ b/src/autofit/afloader.c
@@ -300,7 +300,7 @@
     scaler.flags       = 0;
 
     /* note that the fallback style can't be changed anymore */
-    /* after the first call of `ta_loader_load_glyph'        */
+    /* after the first call of `af_loader_load_glyph'        */
     error = af_loader_reset( loader, module, face );
     if ( error )
       goto Exit;
diff --git a/src/autofit/afranges.c b/src/autofit/afranges.c
index 8a74e59..66acf82 100644
--- a/src/autofit/afranges.c
+++ b/src/autofit/afranges.c
@@ -52,8 +52,8 @@
   /* not be affected by blue zones, regardless of whether this is a       */
   /* spacing or no-spacing glyph                                          */
 
-  /* the `ta_xxxx_nonbase_uniranges' ranges must be strict subsets */
-  /* of the corresponding `ta_xxxx_uniranges' ranges               */
+  /* the `af_xxxx_nonbase_uniranges' ranges must be strict subsets */
+  /* of the corresponding `af_xxxx_uniranges' ranges               */
 
 
   const AF_Script_UniRangeRec  af_adlm_uniranges[] =
@@ -666,6 +666,21 @@
   };
 
 
+  const AF_Script_UniRangeRec  af_sund_uniranges[] =
+  {
+    AF_UNIRANGE_REC(  0x1B80,  0x1BBF ), /* Sundanese            */
+    AF_UNIRANGE_REC(  0x1CC0,  0x1CCF ), /* Sundanese Supplement */
+    AF_UNIRANGE_REC(       0,       0 )
+  };
+
+  const AF_Script_UniRangeRec  af_sund_nonbase_uniranges[] =
+  {
+    AF_UNIRANGE_REC(  0x1B80,  0x1B82 ),
+    AF_UNIRANGE_REC(  0x1BA1,  0x1BAD ),
+    AF_UNIRANGE_REC(       0,       0 )
+  };
+
+
   const AF_Script_UniRangeRec  af_taml_uniranges[] =
   {
     AF_UNIRANGE_REC(  0x0B80,  0x0BFF ),  /* Tamil */
@@ -776,21 +791,6 @@
   };
 
 
-  const AF_Script_UniRangeRec  af_sund_uniranges[] =
-  {
-    AF_UNIRANGE_REC(  0x1B80,  0x1BBF ),  /* Sundanese            */
-    AF_UNIRANGE_REC(  0x1CC0,  0x1CCF ),  /* Sundanese Supplement */
-    AF_UNIRANGE_REC(       0,       0 )
-  };
-
-  const AF_Script_UniRangeRec  af_sund_nonbase_uniranges[] =
-  {
-    AF_UNIRANGE_REC(  0x1B80,  0x1B82 ),
-    AF_UNIRANGE_REC(  0x1BA1,  0x1BAD ),
-    AF_UNIRANGE_REC(       0,       0 )
-  };
-
-
   const AF_Script_UniRangeRec  af_sylo_uniranges[] =
   {
     AF_UNIRANGE_REC(  0xA800,  0xA82F ),  /* Syloti Nagri */
diff --git a/src/autofit/afscript.h b/src/autofit/afscript.h
index 63b67e6..239a9cf 100644
--- a/src/autofit/afscript.h
+++ b/src/autofit/afscript.h
@@ -243,6 +243,13 @@
           HINTING_BOTTOM_TO_TOP,
           "\xE0\xB6\xA7" ) /* ට */
 
+  /* only digit zero has a simple (round) shape in the Sundanese script */
+  SCRIPT( sund, SUND,
+          "Sundanese",
+          HB_SCRIPT_SUNDANESE,
+          HINTING_BOTTOM_TO_TOP,
+          "\xE1\xAE\xB0" ) /* ᮰ */
+
   /* only digit zero has a simple (round) shape in the Tamil script */
   SCRIPT( taml, TAML,
           "Tamil",
@@ -289,12 +296,6 @@
           HINTING_BOTTOM_TO_TOP,
           "o" ) /* XXX */
 
-  SCRIPT( sund, SUND,
-          "Sundanese",
-          HB_SCRIPT_SUNDANESE,
-          HINTING_BOTTOM_TO_TOP,
-          "o" ) /* XXX */
-
   SCRIPT( sylo, SYLO,
           "Syloti Nagri",
           HB_SCRIPT_SYLOTI_NAGRI,
diff --git a/src/autofit/afstyles.h b/src/autofit/afstyles.h
index fc73f15..257f467 100644
--- a/src/autofit/afstyles.h
+++ b/src/autofit/afstyles.h
@@ -322,6 +322,13 @@
          AF_BLUE_STRINGSET_SINH,
          AF_COVERAGE_DEFAULT )
 
+  STYLE( sund_dflt, SUND_DFLT,
+         "Sundanese default style",
+         AF_WRITING_SYSTEM_LATIN,
+         AF_SCRIPT_SUND,
+         AF_BLUE_STRINGSET_SUND,
+         AF_COVERAGE_DEFAULT )
+
   STYLE( taml_dflt, TAML_DFLT,
          "Tamil default style",
          AF_WRITING_SYSTEM_LATIN,
@@ -371,7 +378,6 @@
 
   STYLE_DEFAULT_INDIC( limb, LIMB, "Limbu" )
   STYLE_DEFAULT_INDIC( orya, ORYA, "Oriya" )
-  STYLE_DEFAULT_INDIC( sund, SUND, "Sundanese" )
   STYLE_DEFAULT_INDIC( sylo, SYLO, "Syloti Nagri" )
   STYLE_DEFAULT_INDIC( tibt, TIBT, "Tibetan" )