summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBehdad Esfahbod <behdad@gnome.org>2005-12-04 10:20:52 +0000
committerBehdad Esfahbod <behdad@src.gnome.org>2005-12-04 10:20:52 +0000
commit857a94eff0af615288cb19ecb3612c3d392aa43a (patch)
tree303b2744b9319c770dc90032579da24ba3081d15
parent6d76d95f16ff75d6cb30bceaeadac397c664f865 (diff)
downloadpango-857a94eff0af615288cb19ecb3612c3d392aa43a.tar.gz
Add 'cswh' (swash) OpenType feature, as per the Arabic OpenType spec.
2005-12-04 Behdad Esfahbod <behdad@gnome.org> * modules/arabic-arabic-fc.c: Add 'cswh' (swash) OpenType feature, as per the Arabic OpenType spec.
-rw-r--r--ChangeLog5
-rw-r--r--modules/arabic/arabic-fc.c10
2 files changed, 15 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index a604bb1a..55accebe 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2005-12-04 Behdad Esfahbod <behdad@gnome.org>
+
+ * modules/arabic-arabic-fc.c: Add 'cswh' (swash) OpenType feature, as
+ per the Arabic OpenType spec.
+
2005-11-30 Behdad Esfahbod <behdad@gnome.org>
* examples/Makefile.am: Add GLIB_LIBS to examples explicitly. (#322885,
diff --git a/modules/arabic/arabic-fc.c b/modules/arabic/arabic-fc.c
index 657eaf2a..83217a00 100644
--- a/modules/arabic/arabic-fc.c
+++ b/modules/arabic/arabic-fc.c
@@ -103,9 +103,13 @@ get_ruleset (FT_Face face)
ruleset = pango_ot_ruleset_new (info);
+ /* according to the Arabic OpenType spec, available here:
+ * http://www.microsoft.com/typography/otfntdev/arabicot/features.htm
+ */
if (pango_ot_info_find_script (info, PANGO_OT_TABLE_GSUB,
arab_tag, &script_index))
{
+ /* Language based forms: */
maybe_add_gsub_feature (ruleset, info, script_index, FT_MAKE_TAG ('c','c','m','p'), 0xFFFF);
maybe_add_gsub_feature (ruleset, info, script_index, FT_MAKE_TAG ('i','s','o','l'), isolated);
maybe_add_gsub_feature (ruleset, info, script_index, FT_MAKE_TAG ('f','i','n','a'), final);
@@ -113,13 +117,19 @@ get_ruleset (FT_Face face)
maybe_add_gsub_feature (ruleset, info, script_index, FT_MAKE_TAG ('i','n','i','t'), initial);
maybe_add_gsub_feature (ruleset, info, script_index, FT_MAKE_TAG ('r','l','i','g'), 0xFFFF);
maybe_add_gsub_feature (ruleset, info, script_index, FT_MAKE_TAG ('c','a','l','t'), 0xFFFF);
+
+ /* Typographical forms: */
maybe_add_gsub_feature (ruleset, info, script_index, FT_MAKE_TAG ('l','i','g','a'), 0xFFFF);
+ /* this one should be turned-on/off-able. lets turn off for now. */
+ /* maybe_add_gsub_feature (ruleset, info, script_index, FT_MAKE_TAG ('d','l','i','g'), 0xFFFF); */
+ maybe_add_gsub_feature (ruleset, info, script_index, FT_MAKE_TAG ('c','s','w','h'), 0xFFFF);
maybe_add_gsub_feature (ruleset, info, script_index, FT_MAKE_TAG ('m','s','e','t'), 0xFFFF);
}
if (pango_ot_info_find_script (info, PANGO_OT_TABLE_GPOS,
arab_tag, &script_index))
{
+ /* Positioning features: */
maybe_add_gpos_feature (ruleset, info, script_index, FT_MAKE_TAG ('c','u','r','s'), 0xFFFF);
maybe_add_gpos_feature (ruleset, info, script_index, FT_MAKE_TAG ('k','e','r','n'), 0xFFFF);
maybe_add_gpos_feature (ruleset, info, script_index, FT_MAKE_TAG ('m','a','r','k'), 0xFFFF);