Index: ftxgdef.c
===================================================================
RCS file: /cvs/gnome/pango/pango/opentype/ftxgdef.c,v
retrieving revision 1.8
diff -u -r1.8 ftxgdef.c
--- ftxgdef.c	11 Jan 2003 00:16:26 -0000	1.8
+++ ftxgdef.c	28 Jul 2003 08:16:52 -0000
@@ -1173,9 +1173,39 @@
       if ( flags & IGNORE_SPECIAL_MARKS )
       {
         /* This is OpenType 1.2 */
+        if ( ( *property & IGNORE_SPECIAL_MARKS ) != 0 )
+        {
+          if ( ( flags & 0xFF00 ) != *property )
+            return TTO_Err_Not_Covered;
+        } 
+        else {
+          FT_UShort class, req_class;
 
-        if ( (flags & 0xFF00) != *property )
-          return TTO_Err_Not_Covered;
+          req_class = ( flags & IGNORE_SPECIAL_MARKS ) >> 8;
+          switch ( *property ) {
+          case 0:
+            class = UNCLASSIFIED_GLYPH;
+            break;
+
+          case TTO_BASE_GLYPH:
+            class = SIMPLE_GLYPH;
+            break;
+
+          case TTO_LIGATURE:
+            class = LIGATURE_GLYPH;
+            break;
+
+          case TTO_MARK:
+            class = MARK_GLYPH;
+            break;
+
+          case TTO_COMPONENT:
+            class = COMPONENT_GLYPH;
+            break;
+          }
+          if ( class != req_class )
+            return TTO_Err_Not_Covered;
+        }
       }
       else {
         if ( flags & *property )
