summaryrefslogtreecommitdiff
path: root/fitz/doc_outline.c
diff options
context:
space:
mode:
Diffstat (limited to 'fitz/doc_outline.c')
-rw-r--r--fitz/doc_outline.c49
1 files changed, 49 insertions, 0 deletions
diff --git a/fitz/doc_outline.c b/fitz/doc_outline.c
new file mode 100644
index 00000000..f6d07405
--- /dev/null
+++ b/fitz/doc_outline.c
@@ -0,0 +1,49 @@
+#include "fitz.h"
+
+void
+fz_free_outline(fz_outline *outline)
+{
+ while (outline)
+ {
+ fz_outline *next = outline->next;
+ fz_free_outline(outline->down);
+ fz_free(outline->ctx, outline->title);
+ fz_free(outline->ctx, outline);
+ outline = next;
+ }
+}
+
+void
+fz_debug_outline_xml(fz_outline *outline, int level)
+{
+ while (outline)
+ {
+ printf("<outline title=\"%s\" page=\"%d\"", outline->title, outline->page);
+ if (outline->down)
+ {
+ printf(">\n");
+ fz_debug_outline_xml(outline->down, level + 1);
+ printf("</outline>\n");
+ }
+ else
+ {
+ printf(" />\n");
+ }
+ outline = outline->next;
+ }
+}
+
+void
+fz_debug_outline(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->page);
+ if (outline->down)
+ fz_debug_outline(outline->down, level + 1);
+ outline = outline->next;
+ }
+}