? pango/pango-script-table.h.new
? pango/xx
Index: pango/pango-layout.c
===================================================================
RCS file: /cvs/gnome/pango/pango/pango-layout.c,v
retrieving revision 1.141
diff -u -p -r1.141 pango-layout.c
--- pango/pango-layout.c	15 Aug 2005 15:45:46 -0000	1.141
+++ pango/pango-layout.c	15 Aug 2005 18:32:41 -0000
@@ -3118,21 +3118,37 @@ static gboolean
 no_shape_filter_func (PangoAttribute *attribute,
 		      gpointer        data)
 {
-  static const PangoAttrType no_shape_types[] = {
-    PANGO_ATTR_FOREGROUND,
-    PANGO_ATTR_BACKGROUND,
-    PANGO_ATTR_UNDERLINE,
-    PANGO_ATTR_STRIKETHROUGH,
-    PANGO_ATTR_RISE
-  };
-
-  int i;
-
-  for (i = 0; i < G_N_ELEMENTS (no_shape_types); i++)
-    if (attribute->klass->type == no_shape_types[i])
+  switch (attribute->klass->type)
+    {
+      /* Attributes that affect font and shaper selection */
+    case PANGO_ATTR_LANGUAGE:
+    case PANGO_ATTR_FAMILY:
+    case PANGO_ATTR_STYLE:
+    case PANGO_ATTR_WEIGHT:
+    case PANGO_ATTR_VARIANT:
+    case PANGO_ATTR_STRETCH:
+    case PANGO_ATTR_SIZE:
+    case PANGO_ATTR_FONT_DESC:
+    case PANGO_ATTR_SHAPE:
+    case PANGO_ATTR_SCALE:
+    case PANGO_ATTR_FALLBACK:
+    case PANGO_ATTR_ABSOLUTE_SIZE:
+      return FALSE;
+      /* Attributes that don't affect font and shaper selection */
+#if 0       
+    case PANGO_ATTR_FOREGROUND:
+    case PANGO_ATTR_BACKGROUND:
+    case PANGO_ATTR_UNDERLINE:
+    case PANGO_ATTR_STRIKETHROUGH:
+    case PANGO_ATTR_RISE:
+    case PANGO_ATTR_LETTER_SPACING:
+    case PANGO_ATTR_UNDERLINE_COLOR:
+    case PANGO_ATTR_STRIKETHROUGH_COLOR:
+      /* also custom attributes */
+#endif      
+    default:
       return TRUE;
-
-  return FALSE;
+    }
 }
 
 static PangoAttrList *
