From 0bbafc586f1431d4a0059bb9c90981624d67e469 Mon Sep 17 00:00:00 2001 From: Robin Watts Date: Wed, 25 Mar 2015 17:51:47 +0000 Subject: Bug 695878: Add entry to fz_outline to indicate if outline entry is open Adopt a (trivially modified) patch provided by Simon Reinhardt. When loading pdf outlines, if the 'Count' field is positive, the outline entry should be considered open. --- source/pdf/pdf-outline.c | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'source') diff --git a/source/pdf/pdf-outline.c b/source/pdf/pdf-outline.c index 8f83fdf9..e8635551 100644 --- a/source/pdf/pdf-outline.c +++ b/source/pdf/pdf-outline.c @@ -23,6 +23,7 @@ pdf_load_outline_imp(fz_context *ctx, pdf_document *doc, pdf_obj *dict) node->dest.kind = FZ_LINK_NONE; node->down = NULL; node->next = NULL; + node->is_open = 0; *prev = node; prev = &node->next; @@ -37,8 +38,14 @@ pdf_load_outline_imp(fz_context *ctx, pdf_document *doc, pdf_obj *dict) obj = pdf_dict_get(ctx, dict, PDF_NAME_First); if (obj) + { node->down = pdf_load_outline_imp(ctx, doc, obj); + obj = pdf_dict_gets(ctx, dict, PDF_NAME_Count); + if (pdf_to_int(ctx, obj) > 0) + node->is_open = 1; + } + dict = pdf_dict_get(ctx, dict, PDF_NAME_Next); } } -- cgit v1.2.3