Disable 'cswh' by default except for Arabic shaper
authorBehdad Esfahbod <behdad@behdad.org>
Wed, 6 Apr 2011 18:04:56 +0000 (14:04 -0400)
committerBehdad Esfahbod <behdad@behdad.org>
Wed, 6 Apr 2011 18:04:56 +0000 (14:04 -0400)
That better matches OpenType spec.  Note that we enable it for all
Arabic-shaper scripts.  Ie. we enable it by default for Syriac too,
but the SyriacOT spec does not require it.  I think this is a more
useful compromise than special-casing for Arabic script alone.

src/hb-ot-shape-complex-arabic.cc
src/hb-ot-shape.cc

index 77a9c82..4aa3398 100644 (file)
@@ -154,6 +154,9 @@ static const struct arabic_state_table_entry {
 void
 _hb_ot_shape_complex_collect_features_arabic   (hb_ot_shape_plan_t *plan, const hb_segment_properties_t  *props)
 {
+  /* ArabicOT spec enables 'cswh' for Arabic where as for basic shaper it's disabled by default. */
+  plan->map.add_bool_feature (HB_TAG('c','s','w','h'));
+
   unsigned int num_features = props->script == HB_SCRIPT_SYRIAC ? SYRIAC_NUM_FEATURES : COMMON_NUM_FEATURES;
   for (unsigned int i = 0; i < num_features; i++)
     plan->map.add_bool_feature (arabic_syriac_features[i], false);
index e6b3f3e..9f60e1c 100644 (file)
@@ -37,7 +37,6 @@ hb_tag_t default_features[] = {
   HB_TAG('c','a','l','t'),
   HB_TAG('c','c','m','p'),
   HB_TAG('c','l','i','g'),
-  HB_TAG('c','s','w','h'),
   HB_TAG('c','u','r','s'),
   HB_TAG('k','e','r','n'),
   HB_TAG('l','i','g','a'),