summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGeorge Williams <pfaedit@users.sourceforge.net>2011-03-02 15:48:53 -0800
committerGeorge Williams <pfaedit@users.sourceforge.net>2011-03-02 15:48:53 -0800
commitdd3dcba64db15e427c6ae25cf070ba23bbdf628b (patch)
treeb621646b84973fa3f76662f9e88419e047e35efa
parent7964b024db389c173c0ea00b823448e2ff59848e (diff)
Fix some bugs in deletion of mark classes and mark sets in font info.
-rw-r--r--fontforge/fontinfo.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/fontforge/fontinfo.c b/fontforge/fontinfo.c
index 56490e1a..37c66433 100644
--- a/fontforge/fontinfo.c
+++ b/fontforge/fontinfo.c
@@ -2317,24 +2317,26 @@ static void GFI_Mark_DeleteClass(GGadget *g,int whichclass) {
OTLookup *otl;
int isgpos;
+ whichclass += is_markclass; /* Classes begin at 1, Sets begin at 0 */
for ( isgpos=0; isgpos<2; ++isgpos ) {
for ( otl = isgpos ? sf->gpos_lookups : sf->gsub_lookups; otl!=NULL; otl=otl->next ) {
if ( is_markclass ) {
int old = (otl->lookup_flags & pst_markclass)>>8;
if ( old==whichclass ) {
ff_post_notice(_("Mark Class was in use"),_("This mark class (%s) was used in lookup %s"),
- classes[2*whichclass+0].u.md_str,otl->lookup_name);
+ classes[2*whichclass-2].u.md_str,otl->lookup_name);
otl->lookup_flags &= ~ pst_markclass;
} else if ( old>whichclass ) {
otl->lookup_flags &= ~ pst_markclass;
otl->lookup_flags |= (old-1)<<8;
}
- } else {
+ } else if ( otl->lookup_flags&pst_usemarkfilteringset ) {
int old = (otl->lookup_flags & pst_markset)>>16;
if ( old==whichclass ) {
ff_post_notice(_("Mark Set was in use"),_("This mark set (%s) was used in lookup %s"),
classes[2*whichclass+0].u.md_str,otl->lookup_name);
otl->lookup_flags &= ~ pst_markset;
+ otl->lookup_flags &= ~pst_usemarkfilteringset;
} else if ( old>whichclass ) {
otl->lookup_flags &= ~ pst_markset;
otl->lookup_flags |= (old-1)<<16;