summaryrefslogtreecommitdiff
path: root/office/zathura-pdf-mupdf/patches/0006-Parse-entries-in-the-document-information-dictionary.patch
diff options
context:
space:
mode:
Diffstat (limited to 'office/zathura-pdf-mupdf/patches/0006-Parse-entries-in-the-document-information-dictionary.patch')
-rw-r--r--office/zathura-pdf-mupdf/patches/0006-Parse-entries-in-the-document-information-dictionary.patch147
1 files changed, 0 insertions, 147 deletions
diff --git a/office/zathura-pdf-mupdf/patches/0006-Parse-entries-in-the-document-information-dictionary.patch b/office/zathura-pdf-mupdf/patches/0006-Parse-entries-in-the-document-information-dictionary.patch
deleted file mode 100644
index 5101a90cde..0000000000
--- a/office/zathura-pdf-mupdf/patches/0006-Parse-entries-in-the-document-information-dictionary.patch
+++ /dev/null
@@ -1,147 +0,0 @@
-From 99bff723291f5aa2558e5c8b475f496025105f4a Mon Sep 17 00:00:00 2001
-From: Moritz Lipp <mlq@pwmt.org>
-Date: Mon, 20 Apr 2015 00:30:54 +0200
-Subject: [PATCH 6/6] Parse entries in the document information dictionary
-
----
- document.c | 98 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- plugin.c | 4 +--
- 2 files changed, 99 insertions(+), 3 deletions(-)
-
-diff --git a/document.c b/document.c
-index de805bb..873866c 100644
---- a/document.c
-+++ b/document.c
-@@ -6,8 +6,12 @@
- #include <mupdf/xps.h>
- #include <mupdf/pdf.h>
-
-+#include <glib-2.0/glib.h>
-+
- #include "plugin.h"
-
-+#define LENGTH(x) (sizeof(x)/sizeof((x)[0]))
-+
- zathura_error_t
- pdf_document_open(zathura_document_t* document)
- {
-@@ -118,3 +122,97 @@ pdf_document_save_as(zathura_document_t* document, mupdf_document_t*
- return ZATHURA_ERROR_OK;
- }
-
-+girara_list_t*
-+pdf_document_get_information(zathura_document_t* document, mupdf_document_t*
-+ mupdf_document, zathura_error_t* error)
-+{
-+ if (document == NULL || mupdf_document == NULL || error == NULL) {
-+ if (error != NULL) {
-+ *error = ZATHURA_ERROR_INVALID_ARGUMENTS;
-+ }
-+ }
-+
-+ girara_list_t* list = zathura_document_information_entry_list_new();
-+ if (list == NULL) {
-+ if (error != NULL) {
-+ *error = ZATHURA_ERROR_UNKNOWN;
-+ }
-+ return NULL;
-+ }
-+
-+ fz_try (mupdf_document->ctx) {
-+ pdf_obj* trailer = pdf_trailer(mupdf_document->ctx, (pdf_document*) mupdf_document->document);
-+ pdf_obj* info_dict = pdf_dict_get(mupdf_document->ctx, trailer, PDF_NAME_Info);
-+
-+ /* get string values */
-+ typedef struct info_value_s {
-+ const char* property;
-+ zathura_document_information_type_t type;
-+ } info_value_t;
-+
-+ static const info_value_t string_values[] = {
-+ { "Title", ZATHURA_DOCUMENT_INFORMATION_TITLE },
-+ { "Author", ZATHURA_DOCUMENT_INFORMATION_AUTHOR },
-+ { "Subject", ZATHURA_DOCUMENT_INFORMATION_SUBJECT },
-+ { "Keywords", ZATHURA_DOCUMENT_INFORMATION_KEYWORDS },
-+ { "Creator", ZATHURA_DOCUMENT_INFORMATION_CREATOR },
-+ { "Producer", ZATHURA_DOCUMENT_INFORMATION_PRODUCER }
-+ };
-+
-+ for (unsigned int i = 0; i < LENGTH(string_values); i++) {
-+ pdf_obj* value = pdf_dict_gets(mupdf_document->ctx, info_dict, string_values[i].property);
-+ if (value == NULL) {
-+ continue;
-+ }
-+
-+ char* str_value = pdf_to_str_buf(mupdf_document->ctx, value);
-+ if (str_value == NULL || strlen(str_value) == 0) {
-+ continue;
-+ }
-+
-+ zathura_document_information_entry_t* entry =
-+ zathura_document_information_entry_new(
-+ string_values[i].type,
-+ str_value
-+ );
-+
-+ if (entry != NULL) {
-+ girara_list_append(list, entry);
-+ }
-+ }
-+
-+ static const info_value_t time_values[] = {
-+ { "CreationDate", ZATHURA_DOCUMENT_INFORMATION_CREATION_DATE },
-+ { "ModDate", ZATHURA_DOCUMENT_INFORMATION_MODIFICATION_DATE }
-+ };
-+
-+ for (unsigned int i = 0; i < LENGTH(time_values); i++) {
-+ pdf_obj* value = pdf_dict_gets(mupdf_document->ctx, info_dict, time_values[i].property);
-+ if (value == NULL) {
-+ continue;
-+ }
-+
-+ char* str_value = pdf_to_str_buf(mupdf_document->ctx, value);
-+ if (str_value == NULL || strlen(str_value) == 0) {
-+ continue;
-+ }
-+
-+ zathura_document_information_entry_t* entry =
-+ zathura_document_information_entry_new(
-+ time_values[i].type,
-+ str_value // FIXME: Convert to common format
-+ );
-+
-+ if (entry != NULL) {
-+ girara_list_append(list, entry);
-+ }
-+ }
-+ } fz_catch (mupdf_document->ctx) {
-+ if (error != NULL) {
-+ *error = ZATHURA_ERROR_UNKNOWN;
-+ }
-+ return NULL;
-+ }
-+
-+ return list;
-+}
-diff --git a/plugin.c b/plugin.c
-index fef2c6a..2efae6f 100644
---- a/plugin.c
-+++ b/plugin.c
-@@ -11,13 +11,11 @@ register_functions(zathura_plugin_functions_t* functions)
- functions->document_free = (zathura_plugin_document_free_t) pdf_document_free;
- functions->document_save_as = (zathura_plugin_document_save_as_t) pdf_document_save_as;
- functions->document_index_generate = (zathura_plugin_document_index_generate_t) pdf_document_index_generate;
-+ functions->document_get_information = (zathura_plugin_document_get_information_t) pdf_document_get_information;
- functions->page_init = (zathura_plugin_page_init_t) pdf_page_init;
- functions->page_clear = (zathura_plugin_page_clear_t) pdf_page_clear;
- functions->page_search_text = (zathura_plugin_page_search_text_t) pdf_page_search_text;
- functions->page_links_get = (zathura_plugin_page_links_get_t) pdf_page_links_get;
--#if 0
-- functions->document_get_information = (zathura_plugin_document_get_information_t) pdf_document_get_information;
--#endif
- functions->page_images_get = (zathura_plugin_page_images_get_t) pdf_page_images_get;
- functions->page_get_text = (zathura_plugin_page_get_text_t) pdf_page_get_text;
- functions->page_render = (zathura_plugin_page_render_t) pdf_page_render;
---
-1.8.4
-