From 6cbe8c1393a830622ebdd6a922c80100fab36837 Mon Sep 17 00:00:00 2001 From: "Jorj X. McKie" Date: Sun, 27 Sep 2026 11:40:56 -0400 Subject: [PATCH] Fix 5140 --- src/utils.py | 5 ++--- tests/test_5140.py | 19 +++++++++++++++++++ 2 files changed, 21 insertions(+), 3 deletions(-) create mode 100644 tests/test_5140.py diff --git a/src/utils.py b/src/utils.py index 6afdb45e0..a0cb35413 100644 --- a/src/utils.py +++ b/src/utils.py @@ -954,9 +954,8 @@ def get_label_pno(pgNo, labels): Returns: The label (str) of the page number. Errors return an empty string. """ - # Jorj McKie, 2021-01-06 - - item = [x for x in labels if x[0] <= pgNo][-1] + l = [x for x in labels if x[0] <= pgNo] + item = (pgNo, "") if not l else l[-1] rule = rule_dict(item) prefix = rule.get("prefix", "") style = rule.get("style", "") diff --git a/tests/test_5140.py b/tests/test_5140.py new file mode 100644 index 000000000..fe4ee4d2f --- /dev/null +++ b/tests/test_5140.py @@ -0,0 +1,19 @@ +import pymupdf + + +def test_5140(): + doc = pymupdf.open() + doc.new_page() + doc.new_page() + doc.set_page_labels( + [ + { + "startpage": 1, + "prefix": "", + "firstpagenum": 1, + "style": "D", + } + ] + ) + assert doc[0].get_label() == "" # IndexError: list index out of range + assert doc[1].get_label() == "1"