From: Kenichi Handa Date: Fri, 24 Oct 2008 13:12:55 +0000 (+0000) Subject: (ftfont_otf_features): Fix previous change. X-Git-Tag: emacs-pretest-23.0.90~2204 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=064766f2e8c5393c16fd2e95f81d3a6c3afd9014;p=emacs.git (ftfont_otf_features): Fix previous change. (ftfont_otf_capability): Check FeatureList.FeatureCount before calling ftfont_otf_features. --- 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 + + * ftfont.c (ftfont_otf_features): Fix previous change. + (ftfont_otf_capability): Check FeatureList.FeatureCount before + calling ftfont_otf_features. + +2008-10-23 Kenichi Handa + + * font.c (font_match_p): Fix for the case that a vector of + characters is in script-representative-chars. + 2008-10-24 Michael Albinus * 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; }