diff options
Diffstat (limited to 'fitz/doc_outline.c')
-rw-r--r-- | fitz/doc_outline.c | 36 |
1 files changed, 24 insertions, 12 deletions
diff --git a/fitz/doc_outline.c b/fitz/doc_outline.c index b69debaf..71694851 100644 --- a/fitz/doc_outline.c +++ b/fitz/doc_outline.c @@ -1,4 +1,4 @@ -#include "fitz.h" +#include "fitz-internal.h" void fz_free_outline(fz_context *ctx, fz_outline *outline) @@ -14,37 +14,49 @@ fz_free_outline(fz_context *ctx, fz_outline *outline) } } -void -fz_debug_outline_xml(fz_context *ctx, fz_outline *outline, int level) +static void +do_debug_outline_xml(FILE *out, fz_outline *outline, int level) { while (outline) { - printf("<outline title=\"%s\" page=\"%d\"", outline->title, outline->dest.kind == FZ_LINK_GOTO ? outline->dest.ld.gotor.page + 1 : 0); + fprintf(out, "<outline title=\"%s\" page=\"%d\"", outline->title, outline->dest.kind == FZ_LINK_GOTO ? outline->dest.ld.gotor.page + 1 : 0); if (outline->down) { - printf(">\n"); - fz_debug_outline_xml(ctx, outline->down, level + 1); - printf("</outline>\n"); + fprintf(out, ">\n"); + do_debug_outline_xml(out, outline->down, level + 1); + fprintf(out, "</outline>\n"); } else { - printf(" />\n"); + fprintf(out, " />\n"); } outline = outline->next; } } void -fz_debug_outline(fz_context *ctx, fz_outline *outline, int level) +fz_print_outline_xml(fz_context *ctx, FILE *out, fz_outline *outline) +{ + do_debug_outline_xml(out, outline, 0); +} + +static void +do_debug_outline(FILE *out, fz_outline *outline, int level) { int i; while (outline) { for (i = 0; i < level; i++) - putchar('\t'); - printf("%s\t%d\n", outline->title, outline->dest.kind == FZ_LINK_GOTO ? outline->dest.ld.gotor.page + 1 : 0); + fputc('\t', out); + fprintf(out, "%s\t%d\n", outline->title, outline->dest.kind == FZ_LINK_GOTO ? outline->dest.ld.gotor.page + 1 : 0); if (outline->down) - fz_debug_outline(ctx, outline->down, level + 1); + do_debug_outline(out, outline->down, level + 1); outline = outline->next; } } + +void +fz_print_outline(fz_context *ctx, FILE *out, fz_outline *outline) +{ + do_debug_outline(out, outline, 0); +} |