diff -urN graphics/zathura-pdf-mupdf.orig/Makefile graphics/zathura-pdf-mupdf/Makefile --- graphics/zathura-pdf-mupdf.orig/Makefile 2015-05-12 18:37:04.000000000 +0200 +++ graphics/zathura-pdf-mupdf/Makefile 2015-05-12 19:07:33.000000000 +0200 @@ -3,7 +3,7 @@ PORTNAME= zathura-pdf-mupdf PORTVERSION= 0.2.7 -PORTREVISION= 2 +PORTREVISION= 3 CATEGORIES= graphics MASTER_SITES= http://pwmt.org/projects/zathura-pdf-mupdf/download/ @@ -16,7 +16,7 @@ LICENSE_PERMS= dist-mirror pkg-mirror auto-accept BUILD_DEPENDS= zathura:${PORTSDIR}/graphics/zathura \ - mupdf>=1.5_1,1:${PORTSDIR}/graphics/mupdf + mupdf>=1.7,1:${PORTSDIR}/graphics/mupdf RUN_DEPENDS= zathura:${PORTSDIR}/graphics/zathura PLIST_FILES= lib/zathura/pdf.so share/applications/zathura-pdf-mupdf.desktop diff -urN graphics/zathura-pdf-mupdf.orig/files/patch-document.c graphics/zathura-pdf-mupdf/files/patch-document.c --- graphics/zathura-pdf-mupdf.orig/files/patch-document.c 1970-01-01 01:00:00.000000000 +0100 +++ graphics/zathura-pdf-mupdf/files/patch-document.c 2015-05-12 19:02:57.000000000 +0200 @@ -0,0 +1,53 @@ +--- document.c.orig 2015-05-12 16:37:29 UTC ++++ document.c +@@ -51,14 +51,14 @@ pdf_document_open(zathura_document_t* do + } + + /* authenticate if password is required and given */ +- if (fz_needs_password(mupdf_document->document) != 0) { +- if (password == NULL || fz_authenticate_password(mupdf_document->document, (char*) password) == 0) { ++ if (fz_needs_password(mupdf_document->ctx, mupdf_document->document) != 0) { ++ if (password == NULL || fz_authenticate_password(mupdf_document->ctx, mupdf_document->document, (char*) password) == 0) { + error = ZATHURA_ERROR_INVALID_PASSWORD; + goto error_free; + } + } + +- zathura_document_set_number_of_pages(document, fz_count_pages(mupdf_document->document)); ++ zathura_document_set_number_of_pages(document, fz_count_pages(mupdf_document->ctx, mupdf_document->document)); + zathura_document_set_data(document, mupdf_document); + + return error; +@@ -67,10 +67,10 @@ error_free: + + if (mupdf_document != NULL) { + if (mupdf_document->document != NULL) { +- fz_close_document(mupdf_document->document); ++ fz_drop_document(mupdf_document->ctx, mupdf_document->document); + } + if (mupdf_document->ctx != NULL) { +- fz_free_context(mupdf_document->ctx); ++ fz_drop_context(mupdf_document->ctx); + } + + free(mupdf_document); +@@ -90,8 +90,8 @@ pdf_document_free(zathura_document_t* do + return ZATHURA_ERROR_INVALID_ARGUMENTS; + } + +- fz_close_document(mupdf_document->document); +- fz_free_context(mupdf_document->ctx); ++ fz_drop_document(mupdf_document->ctx, mupdf_document->document); ++ fz_drop_context(mupdf_document->ctx); + free(mupdf_document); + zathura_document_set_data(document, NULL); + +@@ -112,7 +112,7 @@ pdf_document_save_as(zathura_document_t* + * options. */ + + fz_write_options opts = { 0 }; /* just use the default options */ +- fz_write_document(mupdf_document->document, (char*) path, &opts); ++ fz_write_document(mupdf_document->ctx, mupdf_document->document, (char*) path, &opts); + } fz_catch (mupdf_document->ctx) { + return ZATHURA_ERROR_UNKNOWN; + } diff -urN graphics/zathura-pdf-mupdf.orig/files/patch-image.c graphics/zathura-pdf-mupdf/files/patch-image.c --- graphics/zathura-pdf-mupdf.orig/files/patch-image.c 1970-01-01 01:00:00.000000000 +0100 +++ graphics/zathura-pdf-mupdf/files/patch-image.c 2015-05-12 19:02:57.000000000 +0200 @@ -0,0 +1,143 @@ +--- image.c.orig 2015-05-12 16:41:50 UTC ++++ image.c +@@ -9,8 +9,8 @@ + #include "plugin.h" + + static void pdf_zathura_image_free(zathura_image_t* image); +-static void get_images(pdf_obj* dict, girara_list_t* list); +-static void get_resources(pdf_obj* resource, girara_list_t* list); ++static void get_images(zathura_page_t* page, pdf_obj* dict, girara_list_t* list); ++static void get_resources(zathura_page_t* page, pdf_obj* resource, girara_list_t* list); + + girara_list_t* + pdf_page_images_get(zathura_page_t* page, mupdf_page_t* mupdf_page, zathura_error_t* error) +@@ -30,12 +30,12 @@ pdf_page_images_get(zathura_page_t* page + + mupdf_document_t* mupdf_document = zathura_document_get_data(document); + +- pdf_obj* page_object = pdf_load_object((pdf_document*) mupdf_document->document, zathura_page_get_index(page), 0); ++ pdf_obj* page_object = pdf_load_object(mupdf_document->ctx, (pdf_document*) mupdf_document->document, zathura_page_get_index(page), 0); + if (page_object == NULL) { + goto error_free; + } + +- pdf_obj* resource = pdf_dict_gets(page_object, "Resources"); ++ pdf_obj* resource = pdf_dict_gets(mupdf_document->ctx, page_object, "Resources"); + if (resource == NULL) { + goto error_free; + } +@@ -50,7 +50,7 @@ pdf_page_images_get(zathura_page_t* page + + girara_list_set_free_function(list, (girara_free_function_t) pdf_zathura_image_free); + +- get_resources(resource, list); ++ get_resources(page, resource, list); + + return list; + +@@ -81,20 +81,32 @@ pdf_zathura_image_free(zathura_image_t* + } + + static void +-get_images(pdf_obj* dict, girara_list_t* list) ++get_images(zathura_page_t* page, pdf_obj* dict, girara_list_t* list) + { + if (dict == NULL || list == NULL) { + return; + } + +- for (int i = 0; i < pdf_dict_len(dict); i++) { +- pdf_obj* image_dict = pdf_dict_get_val(dict, i); +- if (pdf_is_dict(image_dict) == 0) { ++ if (page == NULL) { ++ return; ++ } ++ ++ zathura_document_t* document = zathura_page_get_document(page); ++ ++ if (document == NULL) { ++ return; ++ } ++ ++ mupdf_document_t* mupdf_document = zathura_document_get_data(document); ++ ++ for (int i = 0; i < pdf_dict_len(mupdf_document->ctx, dict); i++) { ++ pdf_obj* image_dict = pdf_dict_get_val(mupdf_document->ctx, dict, i); ++ if (pdf_is_dict(mupdf_document->ctx, image_dict) == 0) { + continue; + } + +- pdf_obj* type = pdf_dict_gets(image_dict, "Subtype"); +- if (strcmp(pdf_to_name(type), "Image") != 0) { ++ pdf_obj* type = pdf_dict_gets(mupdf_document->ctx, image_dict, "Subtype"); ++ if (strcmp(pdf_to_name(mupdf_document->ctx, type), "Image") != 0) { + continue; + } + +@@ -110,8 +122,8 @@ get_images(pdf_obj* dict, girara_list_t* + continue; + } + +- pdf_obj* width = pdf_dict_gets(image_dict, "Width"); +- pdf_obj* height = pdf_dict_gets(image_dict, "Height"); ++ pdf_obj* width = pdf_dict_gets(mupdf_document->ctx, image_dict, "Width"); ++ pdf_obj* height = pdf_dict_gets(mupdf_document->ctx, image_dict, "Height"); + + zathura_image_t* zathura_image = g_malloc(sizeof(zathura_image_t)); + +@@ -120,33 +132,45 @@ get_images(pdf_obj* dict, girara_list_t* + // FIXME: Get correct image coordinates + zathura_image->data = image_dict; + zathura_image->position.x1 = 0; +- zathura_image->position.x2 = pdf_to_int(width); ++ zathura_image->position.x2 = pdf_to_int(mupdf_document->ctx, width); + zathura_image->position.y1 = 0; +- zathura_image->position.y2 = pdf_to_int(height); ++ zathura_image->position.y2 = pdf_to_int(mupdf_document->ctx, height); + + girara_list_append(list, zathura_image); + } + } + + static void +-get_resources(pdf_obj* resource, girara_list_t* list) ++get_resources(zathura_page_t* page, pdf_obj* resource, girara_list_t* list) + { + if (resource == NULL || list == NULL) { + return; + } + +- pdf_obj* x_object = pdf_dict_gets(resource, "XObject"); ++ if (page == NULL) { ++ return; ++ } ++ ++ zathura_document_t* document = zathura_page_get_document(page); ++ ++ if (document == NULL) { ++ return; ++ } ++ ++ mupdf_document_t* mupdf_document = zathura_document_get_data(document); ++ ++ pdf_obj* x_object = pdf_dict_gets(mupdf_document->ctx, resource, "XObject"); + if (x_object == NULL) { + return; + } + +- get_images(x_object, list); ++ get_images(page, x_object, list); + +- for (int i = 0; i < pdf_dict_len(x_object); i++) { +- pdf_obj* obj = pdf_dict_get_val(x_object, i); +- pdf_obj* subsrc = pdf_dict_gets(obj, "Resources"); +- if (subsrc != NULL && pdf_objcmp(resource, subsrc)) { +- get_resources(subsrc, list); ++ for (int i = 0; i < pdf_dict_len(mupdf_document->ctx, x_object); i++) { ++ pdf_obj* obj = pdf_dict_get_val(mupdf_document->ctx, x_object, i); ++ pdf_obj* subsrc = pdf_dict_gets(mupdf_document->ctx, obj, "Resources"); ++ if (subsrc != NULL && pdf_objcmp(mupdf_document->ctx, resource, subsrc)) { ++ get_resources(page, subsrc, list); + } + } + } diff -urN graphics/zathura-pdf-mupdf.orig/files/patch-index.c graphics/zathura-pdf-mupdf/files/patch-index.c --- graphics/zathura-pdf-mupdf.orig/files/patch-index.c 1970-01-01 01:00:00.000000000 +0100 +++ graphics/zathura-pdf-mupdf/files/patch-index.c 2015-05-12 19:02:57.000000000 +0200 @@ -0,0 +1,20 @@ +--- index.c.orig 2015-05-12 16:53:43 UTC ++++ index.c +@@ -19,7 +19,7 @@ pdf_document_index_generate(zathura_docu + } + + /* get outline */ +- fz_outline* outline = fz_load_outline(mupdf_document->document); ++ fz_outline* outline = fz_load_outline(mupdf_document->ctx, mupdf_document->document); + if (outline == NULL) { + if (error != NULL) { + *error = ZATHURA_ERROR_UNKNOWN; +@@ -32,7 +32,7 @@ pdf_document_index_generate(zathura_docu + build_index(outline, root); + + /* free outline */ +- fz_free_outline(mupdf_document->ctx, outline); ++ fz_drop_outline(mupdf_document->ctx, outline); + + return root; + } diff -urN graphics/zathura-pdf-mupdf.orig/files/patch-links.c graphics/zathura-pdf-mupdf/files/patch-links.c --- graphics/zathura-pdf-mupdf.orig/files/patch-links.c 1970-01-01 01:00:00.000000000 +0100 +++ graphics/zathura-pdf-mupdf/files/patch-links.c 2015-05-12 19:02:57.000000000 +0200 @@ -0,0 +1,11 @@ +--- links.c.orig 2015-05-12 16:54:40 UTC ++++ links.c +@@ -31,7 +31,7 @@ pdf_page_links_get(zathura_page_t* page, + goto error_free; + } + +- fz_link* link = fz_load_links(mupdf_document->document, mupdf_page->page); ++ fz_link* link = fz_load_links(mupdf_document->ctx, mupdf_page->page); + for (; link != NULL; link = link->next) { + /* extract position */ + zathura_rectangle_t position; diff -urN graphics/zathura-pdf-mupdf.orig/files/patch-page.c graphics/zathura-pdf-mupdf/files/patch-page.c --- graphics/zathura-pdf-mupdf.orig/files/patch-page.c 1970-01-01 01:00:00.000000000 +0100 +++ graphics/zathura-pdf-mupdf/files/patch-page.c 2015-05-12 19:02:58.000000000 +0200 @@ -0,0 +1,36 @@ +--- page.c.orig 2015-05-12 16:55:28 UTC ++++ page.c +@@ -29,12 +29,12 @@ pdf_page_init(zathura_page_t* page) + + /* load page */ + fz_try (mupdf_page->ctx) { +- mupdf_page->page = fz_load_page(mupdf_document->document, index); ++ mupdf_page->page = fz_load_page(mupdf_document->ctx, mupdf_document->document, index); + } fz_catch (mupdf_page->ctx) { + goto error_free; + } + +- fz_bound_page(mupdf_document->document, (fz_page*) mupdf_page->page, &mupdf_page->bbox); ++ fz_bound_page(mupdf_document->ctx, (fz_page*) mupdf_page->page, &mupdf_page->bbox); + + /* get page dimensions */ + zathura_page_set_width(page, mupdf_page->bbox.x1 - mupdf_page->bbox.x0); +@@ -74,15 +74,15 @@ pdf_page_clear(zathura_page_t* page, mup + + if (mupdf_page != NULL) { + if (mupdf_page->text != NULL) { +- fz_free_text_page(mupdf_page->ctx, mupdf_page->text); ++ fz_drop_text_page(mupdf_page->ctx, mupdf_page->text); + } + + if (mupdf_page->sheet != NULL) { +- fz_free_text_sheet(mupdf_page->ctx, mupdf_page->sheet); ++ fz_drop_text_sheet(mupdf_page->ctx, mupdf_page->sheet); + } + + if (mupdf_page->page != NULL) { +- fz_free_page(mupdf_document->document, mupdf_page->page); ++ fz_drop_page(mupdf_document->ctx, mupdf_page->page); + } + + free(mupdf_page); diff -urN graphics/zathura-pdf-mupdf.orig/files/patch-render.c graphics/zathura-pdf-mupdf/files/patch-render.c --- graphics/zathura-pdf-mupdf.orig/files/patch-render.c 1970-01-01 01:00:00.000000000 +0100 +++ graphics/zathura-pdf-mupdf/files/patch-render.c 2015-05-12 19:02:58.000000000 +0200 @@ -0,0 +1,28 @@ +--- render.c.orig 2015-05-12 17:00:05 UTC ++++ render.c +@@ -26,12 +26,12 @@ pdf_page_render_to_buffer(mupdf_document + fz_try (mupdf_document->ctx) { + fz_matrix m; + fz_scale(&m, scalex, scaley); +- fz_run_page(mupdf_document->document, mupdf_page->page, device, &m, NULL); ++ fz_run_page(mupdf_document->ctx, mupdf_page->page, device, &m, NULL); + } fz_catch (mupdf_document->ctx) { + return ZATHURA_ERROR_UNKNOWN; + } + +- fz_free_device(device); ++ fz_drop_device(mupdf_page->ctx, device); + + fz_irect irect = { .x1 = page_width, .y1 = page_height }; + fz_rect rect = { .x1 = page_width, .y1 = page_height }; +@@ -41,8 +41,8 @@ pdf_page_render_to_buffer(mupdf_document + fz_clear_pixmap_with_value(mupdf_page->ctx, pixmap, 0xFF); + + device = fz_new_draw_device(mupdf_page->ctx, pixmap); +- fz_run_display_list(display_list, device, &fz_identity, &rect, NULL); +- fz_free_device(device); ++ fz_run_display_list(mupdf_page->ctx, display_list, device, &fz_identity, &rect, NULL); ++ fz_drop_device(mupdf_page->ctx, device); + + unsigned char* s = fz_pixmap_samples(mupdf_page->ctx, pixmap); + unsigned int n = fz_pixmap_components(mupdf_page->ctx, pixmap); diff -urN graphics/zathura-pdf-mupdf.orig/files/patch-utils.c graphics/zathura-pdf-mupdf/files/patch-utils.c --- graphics/zathura-pdf-mupdf.orig/files/patch-utils.c 1970-01-01 01:00:00.000000000 +0100 +++ graphics/zathura-pdf-mupdf/files/patch-utils.c 2015-05-12 19:02:58.000000000 +0200 @@ -0,0 +1,14 @@ +--- utils.c.orig 2015-05-12 17:02:07 UTC ++++ utils.c +@@ -17,9 +17,9 @@ mupdf_page_extract_text(mupdf_document_t + text_device = fz_new_text_device(mupdf_page->ctx, mupdf_page->sheet, mupdf_page->text); + fz_matrix ctm; + fz_scale(&ctm, 1.0, 1.0); +- fz_run_page(mupdf_document->document, mupdf_page->page, text_device, &ctm, NULL); ++ fz_run_page(mupdf_document->ctx, mupdf_page->page, text_device, &ctm, NULL); + } fz_always (mupdf_document->ctx) { +- fz_free_device(text_device); ++ fz_drop_device(mupdf_page->ctx, text_device); + } fz_catch(mupdf_document->ctx) { + } +