Patch fetched from https://git.alpinelinux.org/aports/tree/community/sioyek/mupdf-0.23.0.patch From 86e913eccf19b97a16f25d9b6cdf0f50232f1226 Mon Sep 17 00:00:00 2001 From: ptrcnull Date: Fri, 25 Aug 2023 22:44:26 +0200 Subject: community/sioyek: fix build with mupdf-0.23.0 --- diff --git a/pdf_viewer/document_view.cpp b/pdf_viewer/document_view.cpp index f48d05e..0bc3855 100644 --- a/pdf_viewer/document_view.cpp +++ b/pdf_viewer/document_view.cpp @@ -1121,7 +1121,7 @@ std::vector DocumentView::find_line_definitions() { std::optional pdf_link = current_document->get_link_in_page_rect(get_center_page_number(), line_rects[line_index]); if (pdf_link.has_value()) { - auto parsed_uri = parse_uri(mupdf_context, pdf_link.value().uri); + auto parsed_uri = parse_uri(mupdf_context, current_document->doc, pdf_link.value().uri); result.push_back({ parsed_uri.page - 1, parsed_uri.x, parsed_uri.y }); return result; } diff --git a/pdf_viewer/main_widget.cpp b/pdf_viewer/main_widget.cpp index 19b568b..335a93f 100644 --- a/pdf_viewer/main_widget.cpp +++ b/pdf_viewer/main_widget.cpp @@ -170,7 +170,7 @@ void MainWidget::set_overview_position(int page, float offset) { void MainWidget::set_overview_link(PdfLink link) { - auto [page, offset_x, offset_y] = parse_uri(mupdf_context, link.uri); + auto [page, offset_x, offset_y] = parse_uri(mupdf_context, doc()->doc, link.uri); if (page >= 1) { set_overview_position(page - 1, offset_y); } @@ -3178,7 +3178,7 @@ void MainWidget::handle_pending_text_command(std::wstring text) { open_web_url(utf8_decode(selected_link->uri)); } else{ - auto [page, offset_x, offset_y] = parse_uri(mupdf_context, selected_link->uri); + auto [page, offset_x, offset_y] = parse_uri(mupdf_context, doc()->doc, selected_link->uri); long_jump_to_destination(page-1, offset_y); } } @@ -3863,7 +3863,7 @@ void MainWidget::handle_link_click(const PdfLink& link) { return; } - auto [page, offset_x, offset_y] = parse_uri(mupdf_context, link.uri); + auto [page, offset_x, offset_y] = parse_uri(mupdf_context, doc()->doc, link.uri); // convert one indexed page to zero indexed page page--; diff --git a/pdf_viewer/utils.cpp b/pdf_viewer/utils.cpp index 22d4265..3150e66 100644 --- a/pdf_viewer/utils.cpp +++ b/pdf_viewer/utils.cpp @@ -116,8 +116,9 @@ bool rects_intersect(fz_rect rect1, fz_rect rect2) { return range_intersects(rect1.x0, rect1.x1, rect2.x0, rect2.x1) && range_intersects(rect1.y0, rect1.y1, rect2.y0, rect2.y1); } -ParsedUri parse_uri(fz_context* mupdf_context, std::string uri) { - fz_link_dest dest = pdf_parse_link_uri(mupdf_context, uri.c_str()); +ParsedUri parse_uri(fz_context* mupdf_context, fz_document* fz_doc, std::string uri) { + pdf_document* doc = pdf_document_from_fz_document(mupdf_context, fz_doc); + fz_link_dest dest = pdf_resolve_link_dest(mupdf_context, doc, uri.c_str()); return { dest.loc.page + 1, dest.x, dest.y }; } diff --git a/pdf_viewer/utils.h b/pdf_viewer/utils.h index 2a12211..643b030 100644 --- a/pdf_viewer/utils.h +++ b/pdf_viewer/utils.h @@ -55,7 +55,7 @@ void get_flat_toc(const std::vector& roots, std::vector& int mod(int a, int b); bool range_intersects(float range1_start, float range1_end, float range2_start, float range2_end); bool rects_intersect(fz_rect rect1, fz_rect rect2); -ParsedUri parse_uri(fz_context* mupdf_context, std::string uri); +ParsedUri parse_uri(fz_context* mupdf_context, fz_document* fz_doc, std::string uri); char get_symbol(int key, bool is_shift_pressed, const std::vector&special_symbols); template tests/records.scm ("match-record, thunked field", "match-record, delayed field"): New tests. Signed-off-by: Josselin Poiret <dev@jpoiret.xyz> (unmatched-parenthesis d 2022-12-27records: match-record supports specifying a different variable name....An example: (match-record obj <my-type> (field1 (field2 custom-var-name) field3) ...) * guix/records.scm (match-record-inner): Add support for the new syntax. * tests/records.scm ("match-record, simple"): Add a simple test case for the new syntax. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Attila Lendvai 2022-12-022019-04-29guix package: Add 'install', 'remove', and 'upgrade' aliases....* guix/scripts/install.scm, guix/scripts/remove.scm, guix/scripts/upgrade.scm, tests/guix-package-aliases.sh: New files. * Makefile.am (MODULES, SH_TESTS): Add them. * po/guix/POTFILES.in: Add them. * guix/scripts/package.scm (guix-package): Split with... (guix-package*): ... this. New procedure. * doc/guix.texi (Invoking guix package): Document them. (Binary Installation, Application Setup, Package Management) (Packages with Multiple Outputs, Package Modules) (X.509 Certificates, Installing Debugging Files): Use 'guix install' in simple examples. * etc/completion/bash/guix (_guix_complete): Handle "install", "remove", and "upgrade". Ludovic Courtès 2018-11-06bash completion: Restore completion of available packages for 'guix build'....Fixes a regression introduced in 9b0a755f642542dd96065ad05ec9d844d8077fd7 whereby 'guix build TAB' would not suggest any completion. * etc/completion/bash/guix (_guix_complete): Arrange so 'guix build TAB' completes available packages. Ludovic Courtès