From 0e2f94dd2a31d41539fa92937aa7804418ccb971 Mon Sep 17 00:00:00 2001 From: Simon Kellner Date: Fri, 21 Jan 2011 15:07:45 +0100 Subject: [PATCH] fix labelToIndex on multiple prefixes A PDF document can use page label prefixes, for example, to label only inside a chapter ("A-1" .. "A-", "B-1" .. "B-" et cetera). When calculating a page index for a given label, poppler would disregard the page range for all preceding prefixes that do not match the given prefix. --- poppler/PageLabelInfo.cc | 7 +++---- 1 files changed, 3 insertions(+), 4 deletions(-) diff --git a/poppler/PageLabelInfo.cc b/poppler/PageLabelInfo.cc index 84cb50f..cd0dfe4 100644 --- a/poppler/PageLabelInfo.cc +++ b/poppler/PageLabelInfo.cc @@ -258,11 +258,12 @@ GBool PageLabelInfo::labelToIndex(GooString *label, int *index) Interval *interval; char *str = label->getCString(), *end; int prefixLength; - int i, base, number; + int i, number; - base = 0; for (i = 0; i < intervals.getLength(); i++) { + int base; interval = (Interval *) intervals.get(i); + base = interval->base; prefixLength = interval->prefix->getLength(); if (label->cmpN(interval->prefix, prefixLength) != 0) continue; @@ -294,8 +295,6 @@ GBool PageLabelInfo::labelToIndex(GooString *label, int *index) case Interval::None: break; } - - base += interval->length; } return gFalse; -- 1.7.3.5