From 4cc10cebd4314ba9b1d5c80d3da2a93bf85dd58c Mon Sep 17 00:00:00 2001 From: Ronaldo Date: Sun, 30 Mar 2025 10:56:44 -0300 Subject: [PATCH 1/2] fix: handle unpacking error in get_bookmarks() for variable-length rows --- src/sioyek/sioyek.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/sioyek/sioyek.py b/src/sioyek/sioyek.py index c47e80a..3a35bb7 100644 --- a/src/sioyek/sioyek.py +++ b/src/sioyek/sioyek.py @@ -1154,8 +1154,12 @@ def get_bookmarks(self): BOOKMARK_SELECT_QUERY = "select * from bookmarks where document_path='{}'".format(doc_hash) shared_database = self.sioyek.get_shared_database() cursor = shared_database.execute(BOOKMARK_SELECT_QUERY) - bookmarks = [Bookmark(self, desc, y_offset) for _, _, desc, y_offset in cursor.fetchall()] - return bookmarks + return [ + Bookmark(self, desc, y_offset) + for row in cursor.fetchall() + if len(row) >= 4 + for _, _, desc, y_offset, *_ in [row] + ] def get_highlights(self): doc_hash = self.get_hash() From b7c09682905f431fbc428881df8840354b916fa6 Mon Sep 17 00:00:00 2001 From: Ronaldo Date: Sun, 30 Mar 2025 11:14:11 -0300 Subject: [PATCH 2/2] fix: safely unpack rows in get_highlights() to avoid ValueError --- src/sioyek/sioyek.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/sioyek/sioyek.py b/src/sioyek/sioyek.py index 3a35bb7..e6576fd 100644 --- a/src/sioyek/sioyek.py +++ b/src/sioyek/sioyek.py @@ -1167,8 +1167,12 @@ def get_highlights(self): shared_database = self.sioyek.get_shared_database() cursor = shared_database.execute(HIGHLIGHT_SELECT_QUERY) - highlights = [Highlight(self, text, highlight_type, (begin_x, begin_y), (end_x, end_y)) for _, _, text, highlight_type, begin_x, begin_y, end_x, end_y in cursor.fetchall()] - return highlights + return [ + Highlight(self, text, highlight_type, (begin_x, begin_y), (end_x, end_y)) + for row in cursor.fetchall() + if len(row) >= 8 + for _, _, text, highlight_type, begin_x, begin_y, end_x, end_y, *_ in [row] + ] def get_page_selection(self, page_number, selection_begin_x, selection_begin_y, selection_end_x, selection_end_y): in_range = False