diff options
Diffstat (limited to 'src/fcdbg.c')
-rw-r--r-- | src/fcdbg.c | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/src/fcdbg.c b/src/fcdbg.c index 16b6bfd..c82dd3a 100644 --- a/src/fcdbg.c +++ b/src/fcdbg.c @@ -100,12 +100,26 @@ void FcCharSetPrint (const FcCharSet *c) { int i, j; - + intptr_t *leaves = FcCharSetLeaves (c); + FcChar16 *numbers = FcCharSetNumbers (c); + + printf ("CharSet 0x%x\n", (intptr_t) c); + printf ("Leaves: +%d = 0x%x\n", c->leaves_offset, (intptr_t) leaves); + printf ("Numbers: +%d = 0x%x\n", c->numbers_offset, (intptr_t) numbers); + + for (i = 0; i < c->num; i++) + { + printf ("Page %d: %04x +%d = 0x%x\n", + i, numbers[i], leaves[i], + (intptr_t) FcOffsetToPtr (leaves, leaves[i], FcCharLeaf)); + } + for (i = 0; i < c->num; i++) { - FcCharLeaf *leaf = FcCharSetLeaf(c, i); + intptr_t leaf_offset = leaves[i]; + FcCharLeaf *leaf = FcOffsetToPtr (leaves, leaf_offset, FcCharLeaf); - printf ("%04x:", FcCharSetNumbers(c)[i]); + printf ("%04x:", numbers[i]); for (j = 0; j < 256/32; j++) printf (" %08x", leaf->map[j]); printf ("\n"); |