Date: Sunday, December 4, 2016 @ 10:26:58 Author: demize Revision: 197867
Nuke broken 1.10 patch Deleted: zathura-pdf-mupdf/trunk/mupdf-1.10.patch ------------------+ mupdf-1.10.patch | 287 ----------------------------------------------------- 1 file changed, 287 deletions(-) Deleted: mupdf-1.10.patch =================================================================== --- mupdf-1.10.patch 2016-12-04 10:26:14 UTC (rev 197866) +++ mupdf-1.10.patch 2016-12-04 10:26:58 UTC (rev 197867) @@ -1,287 +0,0 @@ -From 518fd77c351fa1bac37679e195dc14fa76c8e895 Mon Sep 17 00:00:00 2001 -From: Moritz Lipp <[email protected]> -Date: Thu, 24 Nov 2016 00:51:45 +0100 -Subject: [PATCH] Make compatible to mupdf 1.10 - ---- - document.c | 1 - - image.c | 2 +- - index.c | 68 ++++++++++++++++++++++---------------------------------------------- - links.c | 64 ++++++++++++++++++---------------------------------------------- - page.c | 4 +++- - render.c | 6 +++--- - utils.c | 2 +- - 7 files changed, 48 insertions(+), 99 deletions(-) - -diff --git a/document.c b/document.c -index 8d0aae4..7f9f244 100644 ---- a/document.c -+++ b/document.c -@@ -3,7 +3,6 @@ - #define _POSIX_C_SOURCE 1 - - #include <mupdf/fitz.h> --#include <mupdf/xps.h> - #include <mupdf/pdf.h> - - #include <glib-2.0/glib.h> -diff --git a/image.c b/image.c -index 8f6912b..b938e5c 100644 ---- a/image.c -+++ b/image.c -@@ -93,7 +93,7 @@ pdf_page_image_get_cairo(zathura_page_t* page, mupdf_page_t* mupdf_page, - fz_pixmap* pixmap = NULL; - cairo_surface_t* surface = NULL; - -- pixmap = fz_get_pixmap_from_image(mupdf_page->ctx, mupdf_image, 0, 0); -+ pixmap = fz_get_pixmap_from_image(mupdf_page->ctx, mupdf_image, NULL, NULL, 0, 0); - if (pixmap == NULL) { - goto error_free; - } -diff --git a/index.c b/index.c -index 8b8f8a5..1d1ea8d 100644 ---- a/index.c -+++ b/index.c -@@ -6,7 +6,8 @@ - - #include "plugin.h" - --static void build_index(fz_outline* outline, girara_tree_node_t* root); -+static void build_index(fz_context* ctx, fz_document* document, fz_outline* -+ outline, girara_tree_node_t* root); - - girara_tree_node_t* - pdf_document_index_generate(zathura_document_t* document, mupdf_document_t* mupdf_document, zathura_error_t* error) -@@ -29,7 +30,7 @@ pdf_document_index_generate(zathura_document_t* document, mupdf_document_t* mupd - - /* generate index */ - girara_tree_node_t* root = girara_node_new(zathura_index_element_new("ROOT")); -- build_index(outline, root); -+ build_index(mupdf_document->ctx, mupdf_document->document, outline, root); - - /* free outline */ - fz_drop_outline(mupdf_document->ctx, outline); -@@ -38,7 +39,7 @@ pdf_document_index_generate(zathura_document_t* document, mupdf_document_t* mupd - } - - static void --build_index(fz_outline* outline, girara_tree_node_t* root) -+build_index(fz_context* ctx, fz_document* document, fz_outline* outline, girara_tree_node_t* root) - { - if (outline == NULL || root == NULL) { - return; -@@ -50,49 +51,24 @@ build_index(fz_outline* outline, girara_tree_node_t* root) - zathura_link_type_t type = ZATHURA_LINK_INVALID; - zathura_rectangle_t rect = { .x1 = 0, .y1 = 0, .x2 = 0, .y2 = 0 }; - -- switch (outline->dest.kind) { -- case FZ_LINK_NONE: -- type = ZATHURA_LINK_NONE; -- break; -- case FZ_LINK_URI: -+ if (fz_is_external_link(ctx, outline->uri) == 1) { -+ if (strstr(outline->uri, "file://") == outline->uri) { -+ type = ZATHURA_LINK_GOTO_REMOTE; -+ target.value = outline->uri; -+ } else { - type = ZATHURA_LINK_URI; -- target.value = outline->dest.ld.uri.uri; -- break; -- case FZ_LINK_GOTO: -- type = ZATHURA_LINK_GOTO_DEST; -- target.page_number = outline->dest.ld.gotor.page; -- target.destination_type = ZATHURA_LINK_DESTINATION_XYZ; -- target.left = 0; -- target.top = 0; -- target.scale = 0.0; -- { -- int gflags = outline->dest.ld.gotor.flags; -- if (gflags & fz_link_flag_l_valid) { -- target.left = outline->dest.ld.gotor.lt.x; -- } -- if (gflags & fz_link_flag_t_valid) { -- target.top = outline->dest.ld.gotor.lt.y; -- } -- /* if (gflags & fz_link_flag_r_is_zoom) { */ -- /* target.scale = outline->dest.ld.gotor.rb.x; */ -- /* } */ -- } -- break; -- case FZ_LINK_LAUNCH: -- type = ZATHURA_LINK_LAUNCH; -- target.value = outline->dest.ld.launch.file_spec; -- break; -- case FZ_LINK_NAMED: -- type = ZATHURA_LINK_NAMED; -- target.value = outline->dest.ld.named.named; -- break; -- case FZ_LINK_GOTOR: -- type = ZATHURA_LINK_GOTO_REMOTE; -- target.value = outline->dest.ld.gotor.file_spec; -- break; -- default: -- outline = outline->next; // TODO: Don't skip unknown type -- continue; -+ target.value = outline->uri; -+ } -+ } else { -+ float x = 0; -+ float y = 0; -+ -+ type = ZATHURA_LINK_GOTO_DEST; -+ target.destination_type = ZATHURA_LINK_DESTINATION_XYZ; -+ target.page_number = fz_resolve_link(ctx, document, outline->uri, &x, &y); -+ target.left = x; -+ target.top = y; -+ target.scale = 0.0; - } - - index_element->link = zathura_link_new(type, rect, target); -@@ -104,7 +80,7 @@ build_index(fz_outline* outline, girara_tree_node_t* root) - girara_tree_node_t* node = girara_node_append_data(root, index_element); - - if (outline->down != NULL) { -- build_index(outline->down, node); -+ build_index(ctx, document, outline->down, node); - } - - outline = outline->next; -diff --git a/links.c b/links.c -index a947802..7423af2 100644 ---- a/links.c -+++ b/links.c -@@ -43,59 +43,31 @@ pdf_page_links_get(zathura_page_t* page, mupdf_page_t* mupdf_page, zathura_error - zathura_link_type_t type = ZATHURA_LINK_INVALID; - zathura_link_target_t target = { 0 }; - -- char* buffer = NULL; -- switch (link->dest.kind) { -- case FZ_LINK_NONE: -- type = ZATHURA_LINK_NONE; -- break; -- case FZ_LINK_URI: -+ if (fz_is_external_link(mupdf_document->ctx, link->uri) == 1) { -+ if (strstr(link->uri, "file://") == link->uri) { -+ type = ZATHURA_LINK_GOTO_REMOTE; -+ target.value = link->uri; -+ } else { - type = ZATHURA_LINK_URI; -- target.value = link->dest.ld.uri.uri; -- break; -- case FZ_LINK_GOTO: -- type = ZATHURA_LINK_GOTO_DEST; -- target.page_number = link->dest.ld.gotor.page; -- target.destination_type = ZATHURA_LINK_DESTINATION_XYZ; -- target.left = 0; -- target.top = 0; -- target.scale = 0.0; -- { -- int gflags = link->dest.ld.gotor.flags; -- if (gflags & fz_link_flag_l_valid) { -- target.left = link->dest.ld.gotor.lt.x; -- } -- if (gflags & fz_link_flag_t_valid) { -- target.top = link->dest.ld.gotor.lt.y; -- } -- /* if (gflags & fz_link_flag_r_is_zoom) { */ -- /* target.scale = link->dest.ld.gotor.rb.x; */ -- /* } */ -- } -- break; -- case FZ_LINK_LAUNCH: -- type = ZATHURA_LINK_LAUNCH; -- target.value = link->dest.ld.launch.file_spec; -- break; -- case FZ_LINK_NAMED: -- type = ZATHURA_LINK_NAMED; -- target.value = link->dest.ld.named.named; -- break; -- case FZ_LINK_GOTOR: -- type = ZATHURA_LINK_GOTO_REMOTE; -- target.value = link->dest.ld.gotor.file_spec; -- break; -- default: -- continue; -+ target.value = link->uri; -+ } -+ } else { -+ float x = 0; -+ float y = 0; -+ -+ type = ZATHURA_LINK_GOTO_DEST; -+ target.destination_type = ZATHURA_LINK_DESTINATION_XYZ; -+ target.page_number = fz_resolve_link(mupdf_document->ctx, -+ mupdf_document->document, link->uri, &x, &y); -+ target.left = x; -+ target.top = y; -+ target.scale = 0.0; - } - - zathura_link_t* zathura_link = zathura_link_new(type, position, target); - if (zathura_link != NULL) { - girara_list_append(list, zathura_link); - } -- -- if (buffer != NULL) { -- g_free(buffer); -- } - } - - return list; -diff --git a/page.c b/page.c -index 219fc2a..5302cb5 100644 ---- a/page.c -+++ b/page.c -@@ -43,7 +43,9 @@ pdf_page_init(zathura_page_t* page) - /* setup text */ - mupdf_page->extracted_text = false; - -- mupdf_page->text = fz_new_stext_page(mupdf_page->ctx); -+ fz_rect mediabox; -+ mupdf_page->text = fz_new_stext_page(mupdf_page->ctx, -+ fz_bound_page(mupdf_page->ctx, mupdf_page->page, &mediabox)); - if (mupdf_page->text == NULL) { - goto error_free; - } -diff --git a/render.c b/render.c -index 2a92a23..00adb83 100644 ---- a/render.c -+++ b/render.c -@@ -20,7 +20,7 @@ pdf_page_render_to_buffer(mupdf_document_t* mupdf_document, mupdf_page_t* mupdf_ - return ZATHURA_ERROR_UNKNOWN; - } - -- fz_display_list* display_list = fz_new_display_list(mupdf_page->ctx); -+ fz_display_list* display_list = fz_new_display_list(mupdf_page->ctx, NULL); - fz_device* device = fz_new_list_device(mupdf_page->ctx, display_list); - - fz_try (mupdf_document->ctx) { -@@ -37,10 +37,10 @@ pdf_page_render_to_buffer(mupdf_document_t* mupdf_document, mupdf_page_t* mupdf_ - fz_rect rect = { .x1 = page_width, .y1 = page_height }; - - fz_colorspace* colorspace = fz_device_bgr(mupdf_document->ctx); -- fz_pixmap* pixmap = fz_new_pixmap_with_bbox_and_data(mupdf_page->ctx, colorspace, &irect, image); -+ fz_pixmap* pixmap = fz_new_pixmap_with_bbox_and_data(mupdf_page->ctx, colorspace, &irect, 1, image); - fz_clear_pixmap_with_value(mupdf_page->ctx, pixmap, 0xFF); - -- device = fz_new_draw_device(mupdf_page->ctx, pixmap); -+ device = fz_new_draw_device(mupdf_page->ctx, NULL, pixmap); - fz_run_display_list(mupdf_page->ctx, display_list, device, &fz_identity, &rect, NULL); - fz_drop_device(mupdf_page->ctx, device); - -diff --git a/utils.c b/utils.c -index a4b9320..648187a 100644 ---- a/utils.c -+++ b/utils.c -@@ -14,7 +14,7 @@ mupdf_page_extract_text(mupdf_document_t* mupdf_document, mupdf_page_t* mupdf_pa - fz_device* text_device = NULL; - - fz_try (mupdf_page->ctx) { -- text_device = fz_new_stext_device(mupdf_page->ctx, mupdf_page->sheet, mupdf_page->text); -+ text_device = fz_new_stext_device(mupdf_page->ctx, mupdf_page->sheet, mupdf_page->text, NULL); - - /* Disable FZ_IGNORE_IMAGE to collect image blocks */ - fz_disable_device_hints(mupdf_page->ctx, text_device, FZ_IGNORE_IMAGE); --- -libgit2 0.24.0 -
