From 857a94eff0af615288cb19ecb3612c3d392aa43a Mon Sep 17 00:00:00 2001 From: Behdad Esfahbod Date: Sun, 4 Dec 2005 10:20:52 +0000 Subject: Add 'cswh' (swash) OpenType feature, as per the Arabic OpenType spec. 2005-12-04 Behdad Esfahbod * modules/arabic-arabic-fc.c: Add 'cswh' (swash) OpenType feature, as per the Arabic OpenType spec. --- ChangeLog | 5 +++++ modules/arabic/arabic-fc.c | 10 ++++++++++ 2 files changed, 15 insertions(+) diff --git a/ChangeLog b/ChangeLog index a604bb1a..55accebe 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2005-12-04 Behdad Esfahbod + + * modules/arabic-arabic-fc.c: Add 'cswh' (swash) OpenType feature, as + per the Arabic OpenType spec. + 2005-11-30 Behdad Esfahbod * 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); -- cgit v1.2.1