summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/ChangeLog11
-rw-r--r--src/ftfont.c8
2 files changed, 16 insertions, 3 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index eafe5ac553a..7620a321c18 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,14 @@
+2008-10-24 Kenichi Handa <handa@m17n.org>
+
+ * ftfont.c (ftfont_otf_features): Fix previous change.
+ (ftfont_otf_capability): Check FeatureList.FeatureCount before
+ calling ftfont_otf_features.
+
+2008-10-23 Kenichi Handa <handa@m17n.org>
+
+ * font.c (font_match_p): Fix for the case that a vector of
+ characters is in script-representative-chars.
+
2008-10-24 Michael Albinus <michael.albinus@gmx.de>
* dbusbind.c (xd_in_read_queued_messages): New variable.
diff --git a/src/ftfont.c b/src/ftfont.c
index cc78e29ebbd..6d1033555d3 100644
--- a/src/ftfont.c
+++ b/src/ftfont.c
@@ -1360,7 +1360,7 @@ ftfont_otf_features (gsub_gpos)
for (features = Qnil, k = otf_langsys->FeatureCount - 1; k >= 0; k--)
{
l = otf_langsys->FeatureIndex[k];
- if (l > gsub_gpos->FeatureList.FeatureCount)
+ if (l >= gsub_gpos->FeatureList.FeatureCount)
continue;
OTF_TAG_SYM (sym, gsub_gpos->FeatureList.Feature[l].FeatureTag);
features = Fcons (sym, features);
@@ -1391,9 +1391,11 @@ ftfont_otf_capability (font)
if (! otf)
return Qnil;
gsub_gpos = Fcons (Qnil, Qnil);
- if (OTF_get_table (otf, "GSUB") == 0)
+ if (OTF_get_table (otf, "GSUB") == 0
+ && otf->gsub->FeatureList.FeatureCount > 0)
XSETCAR (gsub_gpos, ftfont_otf_features (otf->gsub));
- if (OTF_get_table (otf, "GPOS") == 0)
+ if (OTF_get_table (otf, "GPOS") == 0
+ && otf->gpos->FeatureList.FeatureCount > 0)
XSETCDR (gsub_gpos, ftfont_otf_features (otf->gpos));
return gsub_gpos;
}