(dump_lookup_subtable_gpos): Add support for
authorhanda <handa>
Thu, 5 Aug 2004 06:45:01 +0000 (06:45 +0000)
committerhanda <handa>
Thu, 5 Aug 2004 06:45:01 +0000 (06:45 +0000)
LookupType 5.

example/otfdump.c

index 3ec19e0..abbb43e 100644 (file)
@@ -996,7 +996,38 @@ dump_lookup_subtable_gpos (int indent, int index, unsigned type,
     case 5:
       if (subtable->Format == 1)
        {
-         printf (" not-yet-supported");
+         OTF_GPOS_MarkLig1 *mark_lig1 = &subtable->u.mark_lig1;
+         int i, j, k;
+
+         free (dump_coverage (indent, "Mark", &subtable->Coverage));
+         free (dump_coverage (indent, "Ligature",
+                              &mark_lig1->LigatureCoverage));
+         IPRINT ("(ClassCount %d)", mark_lig1->ClassCount);
+         dump_mark_array (indent, &mark_lig1->MarkArray);
+         IPRINT ("(LigatureArray (%d)",
+                 mark_lig1->LigatureArray.LigatureCount);
+         indent++;
+         for (i = 0; i < mark_lig1->LigatureArray.LigatureCount; i++)
+           {
+             OTF_LigatureAttach *attach
+               = mark_lig1->LigatureArray.LigatureAttach + i;
+
+             IPRINT ("(LigatureAttach (%d)", attach->ComponentCount);
+             indent++;
+             for (j = 0; j < attach->ComponentCount; j++)
+               {
+                 OTF_ComponentRecord *rec = attach->ComponentRecord + j;
+
+                 IPRINT ("(LigatureAnchor (%d)", mark_lig1->ClassCount);
+                 for (k = 0; k < mark_lig1->ClassCount; k++)
+                   if (rec->LigatureAnchor[k].AnchorFormat)
+                     dump_anchor (indent + 1, rec->LigatureAnchor + k);
+                 printf (")");
+               }
+             printf (")");
+             indent--;
+           }
+         printf (")");
        }
       else
        printf (" invalid");