Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package zathura-plugin-djvu for openSUSE:Factory checked in at 2024-08-13 13:23:42 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/zathura-plugin-djvu (Old) and /work/SRC/openSUSE:Factory/.zathura-plugin-djvu.new.7232 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "zathura-plugin-djvu" Tue Aug 13 13:23:42 2024 rev:7 rq:1193342 version:0.2.10 Changes: -------- --- /work/SRC/openSUSE:Factory/zathura-plugin-djvu/zathura-plugin-djvu.changes 2020-02-11 22:25:21.907566250 +0100 +++ /work/SRC/openSUSE:Factory/.zathura-plugin-djvu.new.7232/zathura-plugin-djvu.changes 2024-08-13 13:24:03.960301284 +0200 @@ -1,0 +2,6 @@ +Sun Aug 11 10:13:04 UTC 2024 - Jakob Lorenz <onlyja...@mailbox.org> + +- Update to 0.2.10 + * Implement basic selection rectangle + +------------------------------------------------------------------- Old: ---- zathura-djvu-0.2.9.tar.xz New: ---- zathura-djvu-0.2.10.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ zathura-plugin-djvu.spec ++++++ --- /var/tmp/diff_new_pack.8XOPrk/_old 2024-08-13 13:24:04.760334617 +0200 +++ /var/tmp/diff_new_pack.8XOPrk/_new 2024-08-13 13:24:04.764334784 +0200 @@ -1,7 +1,7 @@ # # spec file for package zathura-plugin-djvu # -# Copyright (c) 2020 SUSE LLC +# Copyright (c) 2024 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -18,17 +18,17 @@ %define realname zathura-djvu Name: zathura-plugin-djvu -Version: 0.2.9 +Version: 0.2.10 Release: 0 Summary: DjVu support for zathura using the djvulibre library License: Zlib URL: https://pwmt.org/projects/zathura-djvu/ Source: https://pwmt.org/projects/zathura-djvu/download/%{realname}-%{version}.tar.xz -BuildRequires: meson >= 0.43 +BuildRequires: meson >= 0.61 BuildRequires: pkgconfig BuildRequires: pkgconfig(ddjvuapi) BuildRequires: pkgconfig(girara-gtk3) -BuildRequires: pkgconfig(zathura) +BuildRequires: pkgconfig(zathura) >= 0.3.8 Requires: zathura Provides: zathura-djvu-plugin @@ -39,7 +39,7 @@ %setup -q -n %{realname}-%{version} %build -%meson +%meson -Dtests=disabled %meson_build %install ++++++ zathura-djvu-0.2.9.tar.xz -> zathura-djvu-0.2.10.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zathura-djvu-0.2.9/.clang-format new/zathura-djvu-0.2.10/.clang-format --- old/zathura-djvu-0.2.9/.clang-format 1970-01-01 01:00:00.000000000 +0100 +++ new/zathura-djvu-0.2.10/.clang-format 2024-08-04 10:33:34.000000000 +0200 @@ -0,0 +1,15 @@ +--- +Language: Cpp +BasedOnStyle: LLVM +AlignConsecutiveAssignments: true +AllowShortFunctionsOnASingleLine: Empty +AllowShortIfStatementsOnASingleLine: false +AlwaysBreakTemplateDeclarations: true +BreakBeforeBraces: Attach +ConstructorInitializerIndentWidth: 2 +NamespaceIndentation: All +PointerAlignment: Left +TabWidth: 2 +ColumnLimit: 120 +SortIncludes: false +... diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zathura-djvu-0.2.9/.gitignore new/zathura-djvu-0.2.10/.gitignore --- old/zathura-djvu-0.2.9/.gitignore 1970-01-01 01:00:00.000000000 +0100 +++ new/zathura-djvu-0.2.10/.gitignore 2024-08-04 10:33:34.000000000 +0200 @@ -0,0 +1,5 @@ +*.o +*~ +djvu.so +*swp +build diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zathura-djvu-0.2.9/LICENSE new/zathura-djvu-0.2.10/LICENSE --- old/zathura-djvu-0.2.9/LICENSE 2020-01-06 11:00:18.000000000 +0100 +++ new/zathura-djvu-0.2.10/LICENSE 2024-08-04 10:33:34.000000000 +0200 @@ -1,4 +1,4 @@ -Copyright (c) 2010-2017 pwmt.org +Copyright (c) 2010-2020 pwmt.org This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zathura-djvu-0.2.9/data/meson.build new/zathura-djvu-0.2.10/data/meson.build --- old/zathura-djvu-0.2.9/data/meson.build 2020-01-06 11:00:18.000000000 +0100 +++ new/zathura-djvu-0.2.10/data/meson.build 2024-08-04 10:33:34.000000000 +0200 @@ -1,2 +1,18 @@ install_data('org.pwmt.zathura-djvu.metainfo.xml', install_dir: metainfodir) install_data('org.pwmt.zathura-djvu.desktop', install_dir: desktopdir) + +desktop_file_validate = find_program('desktop-file-validate', required: get_option('tests'), native: true) +if desktop_file_validate.found() + test('validate-desktop', + desktop_file_validate, + args: [join_paths(meson.current_source_dir(), 'org.pwmt.zathura-djvu.desktop')] + ) +endif + +appstream_util = find_program('appstream-util', required: get_option('tests'), native: true) +if appstream_util.found() + test('validate-appdata', + appstream_util, + args: ['validate-relax', '--nonet', join_paths(meson.current_source_dir(), 'org.pwmt.zathura-djvu.metainfo.xml')] + ) +endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zathura-djvu-0.2.9/data/org.pwmt.zathura-djvu.desktop new/zathura-djvu-0.2.10/data/org.pwmt.zathura-djvu.desktop --- old/zathura-djvu-0.2.9/data/org.pwmt.zathura-djvu.desktop 2020-01-06 11:00:18.000000000 +0100 +++ new/zathura-djvu-0.2.10/data/org.pwmt.zathura-djvu.desktop 2024-08-04 10:33:34.000000000 +0200 @@ -4,6 +4,7 @@ Name=Zathura Comment=A minimalistic document viewer Exec=zathura %U +Icon=org.pwmt.zathura Terminal=false NoDisplay=true Categories=Office;Viewer; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zathura-djvu-0.2.9/meson.build new/zathura-djvu-0.2.10/meson.build --- old/zathura-djvu-0.2.9/meson.build 2020-01-06 11:00:18.000000000 +0100 +++ new/zathura-djvu-0.2.10/meson.build 2024-08-04 10:33:34.000000000 +0200 @@ -1,7 +1,7 @@ project('zathura-djvu', 'c', - version: '0.2.9', - meson_version: '>=0.43', - default_options: 'c_std=c11' + version: '0.2.10', + meson_version: '>=0.61', + default_options: ['c_std=c17', 'warning_level=3'] ) version = meson.project_version() @@ -23,7 +23,7 @@ build_dependencies = [zathura, girara, glib, cairo, djvu] if get_option('plugindir') == '' - plugindir = zathura.get_pkgconfig_variable('plugindir') + plugindir = zathura.get_variable(pkgconfig: 'plugindir') else plugindir = get_option('plugindir') endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zathura-djvu-0.2.9/meson_options.txt new/zathura-djvu-0.2.10/meson_options.txt --- old/zathura-djvu-0.2.9/meson_options.txt 2020-01-06 11:00:18.000000000 +0100 +++ new/zathura-djvu-0.2.10/meson_options.txt 2024-08-04 10:33:34.000000000 +0200 @@ -3,3 +3,8 @@ value: '', description: 'Install to a different location than Zathura\'s plugin directory' ) +option('tests', + type: 'feature', + value: 'auto', + description: 'run tests' +) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zathura-djvu-0.2.9/zathura-djvu/djvu.c new/zathura-djvu-0.2.10/zathura-djvu/djvu.c --- old/zathura-djvu-0.2.9/zathura-djvu/djvu.c 2020-01-06 11:00:18.000000000 +0100 +++ new/zathura-djvu-0.2.10/zathura-djvu/djvu.c 2024-08-04 10:33:34.000000000 +0200 @@ -13,36 +13,31 @@ /* forward declarations */ static const char* get_extension(const char* path); -static void build_index(djvu_document_t *djvu_document, miniexp_t expression, girara_tree_node_t* root); +static void build_index(djvu_document_t* djvu_document, miniexp_t expression, girara_tree_node_t* root); static bool exp_to_str(miniexp_t expression, const char** string); static bool exp_to_int(miniexp_t expression, int* integer); static bool exp_to_rect(miniexp_t expression, zathura_rectangle_t* rect); -ZATHURA_PLUGIN_REGISTER_WITH_FUNCTIONS( - "djvu", - VERSION_MAJOR, VERSION_MINOR, VERSION_REV, - ZATHURA_PLUGIN_FUNCTIONS({ - .document_open = djvu_document_open, - .document_free = djvu_document_free, - .document_index_generate = djvu_document_index_generate, - .document_save_as = djvu_document_save_as, - .page_init = djvu_page_init, - .page_clear = djvu_page_clear, - .page_search_text = djvu_page_search_text, - .page_get_text = djvu_page_get_text, - .page_links_get = djvu_page_links_get, - .page_render = djvu_page_render, - .page_render_cairo = djvu_page_render_cairo - }), - ZATHURA_PLUGIN_MIMETYPES({ - "image/vnd.djvu", - "image/vnd.djvu+multipage" - }) -) - -zathura_error_t -djvu_document_open(zathura_document_t* document) -{ +ZATHURA_PLUGIN_REGISTER_WITH_FUNCTIONS("djvu", VERSION_MAJOR, VERSION_MINOR, VERSION_REV, + ZATHURA_PLUGIN_FUNCTIONS({ + .document_open = djvu_document_open, + .document_free = djvu_document_free, + .document_index_generate = djvu_document_index_generate, + .document_save_as = djvu_document_save_as, + .page_init = djvu_page_init, + .page_clear = djvu_page_clear, + .page_search_text = djvu_page_search_text, + .page_get_text = djvu_page_get_text, + .page_get_selection = djvu_page_get_selection, + .page_links_get = djvu_page_links_get, + .page_render_cairo = djvu_page_render_cairo, + }), + ZATHURA_PLUGIN_MIMETYPES({ + "image/vnd.djvu", + "image/vnd.djvu+multipage", + })) + +zathura_error_t djvu_document_open(zathura_document_t* document) { zathura_error_t error = ZATHURA_ERROR_OK; if (document == NULL) { @@ -57,9 +52,14 @@ } /* setup format */ - static unsigned int masks[4] = {0x00FF0000, 0x0000FF00, 0x000000FF, 0xFF000000}; - djvu_document->format = ddjvu_format_create(DDJVU_FORMAT_RGBMASK32, 4, masks); + unsigned int masks[4] = { + 0x00FF0000, + 0x0000FF00, + 0x000000FF, + 0xFF000000, + }; + djvu_document->format = ddjvu_format_create(DDJVU_FORMAT_RGBMASK32, 4, masks); if (djvu_document->format == NULL) { error = ZATHURA_ERROR_UNKNOWN; goto error_free; @@ -77,11 +77,7 @@ /* setup document */ djvu_document->document = - ddjvu_document_create_by_filename( - djvu_document->context, - zathura_document_get_path(document), - FALSE - ); + ddjvu_document_create_by_filename(djvu_document->context, zathura_document_get_path(document), FALSE); if (djvu_document->document == NULL) { error = ZATHURA_ERROR_UNKNOWN; @@ -92,8 +88,7 @@ ddjvu_message_t* msg; ddjvu_message_wait(djvu_document->context); - while ((msg = ddjvu_message_peek(djvu_document->context)) && - (msg->m_any.tag != DDJVU_DOCINFO)) { + while ((msg = ddjvu_message_peek(djvu_document->context)) && (msg->m_any.tag != DDJVU_DOCINFO)) { if (msg->m_any.tag == DDJVU_ERROR) { error = ZATHURA_ERROR_UNKNOWN; goto error_free; @@ -110,8 +105,7 @@ } zathura_document_set_data(document, djvu_document); - zathura_document_set_number_of_pages(document, - ddjvu_document_get_pagenum(djvu_document->document)); + zathura_document_set_number_of_pages(document, ddjvu_document_get_pagenum(djvu_document->document)); return error; @@ -132,9 +126,7 @@ return error; } -zathura_error_t -djvu_document_free(zathura_document_t* document, void* data) -{ +zathura_error_t djvu_document_free(zathura_document_t* document, void* data) { djvu_document_t* djvu_document = data; if (document == NULL) { return ZATHURA_ERROR_INVALID_ARGUMENTS; @@ -150,9 +142,7 @@ return ZATHURA_ERROR_OK; } -girara_tree_node_t* -djvu_document_index_generate(zathura_document_t* document, void* data, zathura_error_t* error) -{ +girara_tree_node_t* djvu_document_index_generate(zathura_document_t* document, void* data, zathura_error_t* error) { djvu_document_t* djvu_document = data; if (document == NULL || djvu_document == NULL) { if (error != NULL) { @@ -162,8 +152,7 @@ } miniexp_t outline = miniexp_dummy; - while ((outline = ddjvu_document_get_outline(djvu_document->document)) == - miniexp_dummy) { + while ((outline = ddjvu_document_get_outline(djvu_document->document)) == miniexp_dummy) { handle_messages(djvu_document, true); } @@ -184,9 +173,7 @@ return root; } -zathura_error_t -djvu_document_save_as(zathura_document_t* document, void* data, const char* path) -{ +zathura_error_t djvu_document_save_as(zathura_document_t* document, void* data, const char* path) { djvu_document_t* djvu_document = data; if (document == NULL || djvu_document == NULL || path == NULL) { return ZATHURA_ERROR_INVALID_ARGUMENTS; @@ -206,7 +193,7 @@ job = ddjvu_document_save(djvu_document->document, fp, 0, NULL); } while (ddjvu_job_done(job) != true) { - handle_messages(djvu_document, true); + handle_messages(djvu_document, true); } fclose(fp); @@ -214,9 +201,7 @@ return ZATHURA_ERROR_OK; } -zathura_error_t -djvu_page_init(zathura_page_t* page) -{ +zathura_error_t djvu_page_init(zathura_page_t* page) { if (page == NULL) { return ZATHURA_ERROR_INVALID_ARGUMENTS; } @@ -228,8 +213,7 @@ ddjvu_pageinfo_t page_info; unsigned int index = zathura_page_get_index(page); - while ((status = ddjvu_document_get_pageinfo(djvu_document->document, index, - &page_info)) < DDJVU_JOB_OK) { + while ((status = ddjvu_document_get_pageinfo(djvu_document->document, index, &page_info)) < DDJVU_JOB_OK) { handle_messages(djvu_document, true); } @@ -238,15 +222,13 @@ return ZATHURA_ERROR_UNKNOWN; } - zathura_page_set_width(page, ZATHURA_DJVU_SCALE * page_info.width); + zathura_page_set_width(page, ZATHURA_DJVU_SCALE * page_info.width); zathura_page_set_height(page, ZATHURA_DJVU_SCALE * page_info.height); return ZATHURA_ERROR_OK; } -zathura_error_t -djvu_page_clear(zathura_page_t* page, void* UNUSED(data)) -{ +zathura_error_t djvu_page_clear(zathura_page_t* page, void* UNUSED(data)) { if (page == NULL) { return ZATHURA_ERROR_INVALID_ARGUMENTS; } @@ -254,9 +236,8 @@ return ZATHURA_ERROR_OK; } -girara_list_t* -djvu_page_search_text(zathura_page_t* page, void* UNUSED(data), const char* text, zathura_error_t* error) -{ +girara_list_t* djvu_page_search_text(zathura_page_t* page, void* UNUSED(data), const char* text, + zathura_error_t* error) { if (page == NULL || text == NULL || strlen(text) == 0) { if (error != NULL) { *error = ZATHURA_ERROR_INVALID_ARGUMENTS; @@ -300,10 +281,8 @@ return NULL; } -char* -djvu_page_get_text(zathura_page_t* page, void* UNUSED(data), zathura_rectangle_t - rectangle, zathura_error_t* error) -{ +char* djvu_page_get_text(zathura_page_t* page, void* UNUSED(data), zathura_rectangle_t rectangle, + zathura_error_t* error) { if (page == NULL) { if (error != NULL) { *error = ZATHURA_ERROR_INVALID_ARGUMENTS; @@ -323,37 +302,37 @@ goto error_ret; } - double tmp = 0; + double tmp = 0; double page_height = zathura_page_get_height(page); double page_width = zathura_page_get_width(page); switch (zathura_document_get_rotation(document)) { - case 90: - tmp = rectangle.x1; - rectangle.x1 = rectangle.y1; - rectangle.y1 = tmp; - tmp = rectangle.x2; - rectangle.x2 = rectangle.y2; - rectangle.y2 = tmp; - break; - case 180: - tmp = rectangle.x1; - rectangle.x1 = (page_width - rectangle.x2); - rectangle.x2 = (page_width - tmp); - break; - case 270: - tmp = rectangle.y2; - rectangle.y2 = (page_height - rectangle.x1); - rectangle.x1 = (page_width - tmp); - tmp = rectangle.y1; - rectangle.y1 = (page_height - rectangle.x2); - rectangle.x2 = (page_width - tmp); - break; - default: - tmp = rectangle.y1; - rectangle.y1 = (page_height - rectangle.y2); - rectangle.y2 = (page_height - tmp); - break; + case 90: + tmp = rectangle.x1; + rectangle.x1 = rectangle.y1; + rectangle.y1 = tmp; + tmp = rectangle.x2; + rectangle.x2 = rectangle.y2; + rectangle.y2 = tmp; + break; + case 180: + tmp = rectangle.x1; + rectangle.x1 = (page_width - rectangle.x2); + rectangle.x2 = (page_width - tmp); + break; + case 270: + tmp = rectangle.y2; + rectangle.y2 = (page_height - rectangle.x1); + rectangle.x1 = (page_width - tmp); + tmp = rectangle.y1; + rectangle.y1 = (page_height - rectangle.x2); + rectangle.x2 = (page_width - tmp); + break; + default: + tmp = rectangle.y1; + rectangle.y1 = (page_height - rectangle.y2); + rectangle.y2 = (page_height - tmp); + break; } /* adjust to scale */ @@ -377,9 +356,30 @@ return NULL; } -girara_list_t* -djvu_page_links_get(zathura_page_t* page, void* UNUSED(data), zathura_error_t* error) -{ +girara_list_t* djvu_page_get_selection(zathura_page_t* UNUSED(page), void* UNUSED(data), zathura_rectangle_t rectangle, + zathura_error_t* error) { + girara_list_t* list = girara_list_new2(g_free); + if (list == NULL) { + if (error != NULL) { + *error = ZATHURA_ERROR_OUT_OF_MEMORY; + } + goto error_free; + } + + zathura_rectangle_t* rect = g_malloc0(sizeof(zathura_rectangle_t)); + *rect = rectangle; + girara_list_append(list, rect); + + return list; + +error_free: + if (list != NULL) { + girara_list_free(list); + } + return NULL; +} + +girara_list_t* djvu_page_links_get(zathura_page_t* page, void* UNUSED(data), zathura_error_t* error) { if (page == NULL) { if (error != NULL) { *error = ZATHURA_ERROR_INVALID_ARGUMENTS; @@ -392,7 +392,7 @@ goto error_ret; } - girara_list_t* list = girara_list_new2((girara_free_function_t) zathura_link_free); + girara_list_t* list = girara_list_new2((girara_free_function_t)zathura_link_free); if (list == NULL) { if (error != NULL) { *error = ZATHURA_ERROR_OUT_OF_MEMORY; @@ -403,8 +403,8 @@ djvu_document_t* djvu_document = zathura_document_get_data(document); miniexp_t annotations = miniexp_nil; - while ((annotations = ddjvu_document_get_pageanno(djvu_document->document, - zathura_page_get_index(page))) == miniexp_dummy) { + while ((annotations = ddjvu_document_get_pageanno(djvu_document->document, zathura_page_get_index(page))) == + miniexp_dummy) { handle_messages(djvu_document, true); } @@ -439,32 +439,33 @@ /* extract link area */ inner = miniexp_cdr(inner); - zathura_rectangle_t rect = { 0, 0, 0, 0 }; + zathura_rectangle_t rect = {0, 0, 0, 0}; if (exp_to_rect(miniexp_car(inner), &rect) == false) { continue; } /* update rect */ unsigned int page_height = zathura_page_get_height(page) / ZATHURA_DJVU_SCALE; - rect.x1 = rect.x1 * ZATHURA_DJVU_SCALE; - rect.x2 = rect.x2 * ZATHURA_DJVU_SCALE; - double tmp = rect.y1; - rect.y1 = (page_height - rect.y2) * ZATHURA_DJVU_SCALE; - rect.y2 = (page_height - tmp) * ZATHURA_DJVU_SCALE; + rect.x1 = rect.x1 * ZATHURA_DJVU_SCALE; + rect.x2 = rect.x2 * ZATHURA_DJVU_SCALE; + double tmp = rect.y1; + rect.y1 = (page_height - rect.y2) * ZATHURA_DJVU_SCALE; + rect.y2 = (page_height - tmp) * ZATHURA_DJVU_SCALE; /* create zathura link */ - zathura_link_type_t type = ZATHURA_LINK_INVALID; - zathura_link_target_t target = { ZATHURA_LINK_DESTINATION_UNKNOWN, NULL, 0, -1, -1, -1, -1, 0 };; + zathura_link_type_t type = ZATHURA_LINK_INVALID; + zathura_link_target_t target = {ZATHURA_LINK_DESTINATION_UNKNOWN, NULL, 0, -1, -1, -1, -1, 0}; + ; /* goto page */ if (target_string[0] == '#' && target_string[1] == 'p') { - type = ZATHURA_LINK_GOTO_DEST; + type = ZATHURA_LINK_GOTO_DEST; target.page_number = atoi(target_string + 2) - 1; - /* url or other? */ + /* url or other? */ } else if (strstr(target_string, "//") != NULL) { - type = ZATHURA_LINK_URI; - target.value = (char*) target_string; - /* TODO: Parse all different links */ + type = ZATHURA_LINK_URI; + target.value = (char*)target_string; + /* TODO: Parse all different links */ } else { continue; } @@ -488,10 +489,8 @@ return NULL; } -zathura_error_t -djvu_page_render_cairo(zathura_page_t* page, void* UNUSED(data), cairo_t* cairo, - bool GIRARA_UNUSED(printing)) -{ +zathura_error_t djvu_page_render_cairo(zathura_page_t* page, void* UNUSED(data), cairo_t* cairo, + bool GIRARA_UNUSED(printing)) { if (page == NULL || cairo == NULL) { return ZATHURA_ERROR_INVALID_ARGUMENTS; } @@ -515,20 +514,19 @@ cairo_surface_t* surface = cairo_get_target(cairo); - if (surface == NULL || - cairo_surface_status(surface) != CAIRO_STATUS_SUCCESS || + if (surface == NULL || cairo_surface_status(surface) != CAIRO_STATUS_SUCCESS || cairo_surface_get_type(surface) != CAIRO_SURFACE_TYPE_IMAGE) { ddjvu_page_release(djvu_page); return ZATHURA_ERROR_UNKNOWN; } unsigned int page_width = cairo_image_surface_get_width(surface); - unsigned int page_height = cairo_image_surface_get_height(surface);; + unsigned int page_height = cairo_image_surface_get_height(surface); - ddjvu_rect_t rrect = { 0, 0, page_width, page_height }; - ddjvu_rect_t prect = { 0, 0, page_width, page_height }; + ddjvu_rect_t rrect = {0, 0, page_width, page_height}; + ddjvu_rect_t prect = {0, 0, page_width, page_height}; - char* surface_data = (char*) cairo_image_surface_get_data(surface); + char* surface_data = (char*)cairo_image_surface_get_data(surface); if (surface_data == NULL) { ddjvu_page_release(djvu_page); @@ -536,91 +534,15 @@ } /* render page */ - ddjvu_page_render(djvu_page, DDJVU_RENDER_COLOR, &prect, &rrect, - djvu_document->format, cairo_image_surface_get_stride(surface), surface_data); + ddjvu_page_render(djvu_page, DDJVU_RENDER_COLOR, &prect, &rrect, djvu_document->format, + cairo_image_surface_get_stride(surface), surface_data); ddjvu_page_release(djvu_page); return ZATHURA_ERROR_OK; } -zathura_image_buffer_t* -djvu_page_render(zathura_page_t* page, void* UNUSED(data), zathura_error_t* error) -{ - if (page == NULL) { - if (error != NULL) { - *error = ZATHURA_ERROR_INVALID_ARGUMENTS; - } - return NULL; - } - - zathura_document_t* document = zathura_page_get_document(page); - if (document == NULL) { - return NULL; - } - - /* calculate sizes */ - unsigned int page_width = zathura_document_get_scale(document) * zathura_page_get_width(page); - unsigned int page_height = zathura_document_get_scale(document) * zathura_page_get_height(page); - - if (page_width == 0 || page_height == 0) { - if (error != NULL) { - *error = ZATHURA_ERROR_UNKNOWN; - } - goto error_out; - } - - /* init ddjvu render data */ - djvu_document_t* djvu_document = zathura_document_get_data(document); - ddjvu_page_t* djvu_page = ddjvu_page_create_by_pageno( - djvu_document->document, zathura_page_get_index(page)); - - if (djvu_page == NULL) { - if (error != NULL) { - *error = ZATHURA_ERROR_UNKNOWN; - } - goto error_out; - } - - while (!ddjvu_page_decoding_done(djvu_page)) { - handle_messages(djvu_document, true); - } - - ddjvu_rect_t rrect = { 0, 0, page_width, page_height }; - ddjvu_rect_t prect = { 0, 0, page_width, page_height }; - - zathura_image_buffer_t* image_buffer = - zathura_image_buffer_create(page_width, page_height); - - if (image_buffer == NULL) { - if (error != NULL) { - *error = ZATHURA_ERROR_OUT_OF_MEMORY; - } - goto error_free; - } - - /* set rotation */ - ddjvu_page_set_rotation(djvu_page, DDJVU_ROTATE_0); - - /* render page */ - ddjvu_page_render(djvu_page, DDJVU_RENDER_COLOR, &prect, &rrect, - djvu_document->format, 3 * page_width, (char*) image_buffer->data); - - return image_buffer; - -error_free: - - ddjvu_page_release(djvu_page); - zathura_image_buffer_free(image_buffer); - -error_out: - - return NULL; -} - -static const char* -get_extension(const char* path) -{ +static const char* get_extension(const char* path) { if (path == NULL) { return NULL; } @@ -641,9 +563,7 @@ return path + i + 1; } -void -handle_messages(djvu_document_t* document, bool wait) -{ +void handle_messages(djvu_document_t* document, bool wait) { if (document == NULL || document->context == NULL) { return; } @@ -660,24 +580,19 @@ } } -static void -build_index(djvu_document_t *djvu_document, miniexp_t expression, girara_tree_node_t* root) -{ +static void build_index(djvu_document_t* djvu_document, miniexp_t expression, girara_tree_node_t* root) { if (expression == miniexp_nil || root == NULL) { return; } - int fileno = ddjvu_document_get_filenum(djvu_document->document); + int fileno = ddjvu_document_get_filenum(djvu_document->document); int curfile = 0; while (miniexp_consp(expression) != 0) { miniexp_t inner = miniexp_car(expression); - if (miniexp_consp(inner) - && miniexp_consp(miniexp_cdr(inner)) - && miniexp_stringp(miniexp_car(inner)) - && miniexp_stringp(miniexp_car(inner)) - ) { + if (miniexp_consp(inner) && miniexp_consp(miniexp_cdr(inner)) && miniexp_stringp(miniexp_car(inner)) && + miniexp_stringp(miniexp_car(inner))) { const char* name = miniexp_to_str(miniexp_car(inner)); const char* link = miniexp_to_str(miniexp_cadr(inner)); @@ -687,13 +602,13 @@ continue; } - zathura_link_type_t type = ZATHURA_LINK_GOTO_DEST; - zathura_rectangle_t rect = { 0 }; - zathura_link_target_t target = { 0 }; - target.destination_type = ZATHURA_LINK_DESTINATION_XYZ; + zathura_link_type_t type = ZATHURA_LINK_GOTO_DEST; + zathura_rectangle_t rect = {0}; + zathura_link_target_t target = {0}; + target.destination_type = ZATHURA_LINK_DESTINATION_XYZ; /* Check if link+1 contains a number */ - bool number = true; + bool number = true; const size_t linklen = strlen(link); for (unsigned int k = 1; k < linklen; k++) { if (!isdigit(link[k])) { @@ -709,17 +624,17 @@ /* otherwise assume it is an id for a page */ ddjvu_fileinfo_t info; int f, i; - for (i=0; i < fileno; i++) { + for (i = 0; i < fileno; i++) { f = (curfile + i) % fileno; ddjvu_document_get_fileinfo(djvu_document->document, f, &info); - if (info.id != NULL && !strcmp(link+1, info.id)) { + if (info.id != NULL && !strcmp(link + 1, info.id)) { break; } } /* got a page */ if (i < fileno && info.pageno >= 0) { - curfile = (f+1) % fileno; + curfile = (f + 1) % fileno; target.page_number = info.pageno; } else { /* give up */ @@ -749,9 +664,7 @@ } } -static bool -exp_to_str(miniexp_t expression, const char** string) -{ +static bool exp_to_str(miniexp_t expression, const char** string) { if (string == NULL) { return false; } @@ -764,9 +677,7 @@ return false; } -static bool -exp_to_int(miniexp_t expression, int* integer) -{ +static bool exp_to_int(miniexp_t expression, int* integer) { if (integer == NULL) { return false; } @@ -779,12 +690,9 @@ return false; } -static bool -exp_to_rect(miniexp_t expression, zathura_rectangle_t* rect) -{ - if ((miniexp_car(expression) == miniexp_symbol("rect") - || miniexp_car(expression) == miniexp_symbol("oval")) - && miniexp_length(expression) == 5) { +static bool exp_to_rect(miniexp_t expression, zathura_rectangle_t* rect) { + if ((miniexp_car(expression) == miniexp_symbol("rect") || miniexp_car(expression) == miniexp_symbol("oval")) && + miniexp_length(expression) == 5) { int min_x = 0; int min_y = 0; int width = 0; @@ -811,8 +719,7 @@ rect->x2 = min_x + width; rect->y1 = min_y; rect->y2 = min_y + height; - } else if (miniexp_car(expression) == miniexp_symbol("poly") - && miniexp_length(expression) >= 5) { + } else if (miniexp_car(expression) == miniexp_symbol("poly") && miniexp_length(expression) >= 5) { int min_x = 0; int min_y = 0; int max_x = 0; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zathura-djvu-0.2.9/zathura-djvu/djvu.h new/zathura-djvu-0.2.10/zathura-djvu/djvu.h --- old/zathura-djvu-0.2.9/zathura-djvu/djvu.h 2020-01-06 11:00:18.000000000 +0100 +++ new/zathura-djvu-0.2.10/zathura-djvu/djvu.h 2024-08-04 10:33:34.000000000 +0200 @@ -11,11 +11,10 @@ /** * DjVu document */ -typedef struct djvu_document_s -{ - ddjvu_context_t* context; /**< Document context */ +typedef struct djvu_document_s { + ddjvu_context_t* context; /**< Document context */ ddjvu_document_t* document; /**< Document */ - ddjvu_format_t* format; /**< Format */ + ddjvu_format_t* format; /**< Format */ } djvu_document_t; /** @@ -45,8 +44,8 @@ * @return Tree node object or NULL if an error occurred (e.g.: the document has * no index) */ -GIRARA_HIDDEN girara_tree_node_t* djvu_document_index_generate(zathura_document_t* document, - void* djvu_document, zathura_error_t* error); +GIRARA_HIDDEN girara_tree_node_t* djvu_document_index_generate(zathura_document_t* document, void* djvu_document, + zathura_error_t* error); /** * Saves the document to the given path @@ -56,7 +55,8 @@ * @return ZATHURA_ERROR_OK when no error occurred, otherwise see * zathura_error_t */ -GIRARA_HIDDEN zathura_error_t djvu_document_save_as(zathura_document_t* document, void* djvu_document, const char* path); +GIRARA_HIDDEN zathura_error_t djvu_document_save_as(zathura_document_t* document, void* djvu_document, + const char* path); /** * Initializes the page @@ -85,7 +85,8 @@ * error occurred * @return List of search results or NULL if an error occurred */ -GIRARA_HIDDEN girara_list_t* djvu_page_search_text(zathura_page_t* page, void* data, const char* text, zathura_error_t* error); +GIRARA_HIDDEN girara_list_t* djvu_page_search_text(zathura_page_t* page, void* data, const char* text, + zathura_error_t* error); /** * Get text for selection @@ -96,7 +97,11 @@ * occurred * @return The selected text (needs to be deallocated with g_free) */ -GIRARA_HIDDEN char* djvu_page_get_text(zathura_page_t* page, void* data, zathura_rectangle_t rectangle, zathura_error_t* error); +GIRARA_HIDDEN char* djvu_page_get_text(zathura_page_t* page, void* data, zathura_rectangle_t rectangle, + zathura_error_t* error); + +GIRARA_HIDDEN girara_list_t* djvu_page_get_selection(zathura_page_t* page, void* data, zathura_rectangle_t rectangle, + zathura_error_t* error); /** * Returns list of links @@ -106,19 +111,7 @@ * @param error Error code * @return List of links or NULL if an error occurred */ -GIRARA_HIDDEN girara_list_t* djvu_page_links_get(zathura_page_t* page, void* data, - zathura_error_t* error); - -/** - * Renders a page and returns a allocated image buffer which has to be freed - * with zathura_image_buffer_free - * - * @param page Page - * @param error Set to an error value (see zathura_error_t) if an - * error occurred - * @return Image buffer or NULL if an error occurred - */ -GIRARA_HIDDEN zathura_image_buffer_t* djvu_page_render(zathura_page_t* page, void* data, zathura_error_t* error); +GIRARA_HIDDEN girara_list_t* djvu_page_links_get(zathura_page_t* page, void* data, zathura_error_t* error); /** * Renders a page onto a cairo object diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zathura-djvu-0.2.9/zathura-djvu/page-text.c new/zathura-djvu-0.2.10/zathura-djvu/page-text.c --- old/zathura-djvu-0.2.9/zathura-djvu/page-text.c 2020-01-06 11:00:18.000000000 +0100 +++ new/zathura-djvu-0.2.10/zathura-djvu/page-text.c 2024-08-04 10:33:34.000000000 +0200 @@ -13,28 +13,20 @@ */ typedef struct text_position_s { unsigned int position; /**< Index */ - miniexp_t exp; /**< Correspondending expression */ + miniexp_t exp; /**< Correspondending expression */ } text_position_t; /* forward declaration */ -static void djvu_page_text_content_append(djvu_page_text_t* page_text, - miniexp_t exp); -static miniexp_t text_position_get_exp(djvu_page_text_t* page_text, - unsigned int index); -static bool djvu_page_text_build_rectangle(djvu_page_text_t* page_text, - miniexp_t exp, miniexp_t start, miniexp_t end); -static bool djvu_page_text_build_rectangle_process(djvu_page_text_t* page_text, - miniexp_t exp, miniexp_t start, miniexp_t end); -static void djvu_page_text_limit(djvu_page_text_t* page_text, miniexp_t exp, - zathura_rectangle_t* rectangle); -static void djvu_page_text_limit_process(djvu_page_text_t* page_text, - miniexp_t exp, zathura_rectangle_t* rectangle); -static bool djvu_page_text_select_content(djvu_page_text_t* page_text, - miniexp_t exp, int delimiter); - -djvu_page_text_t* -djvu_page_text_new(djvu_document_t* document, zathura_page_t* page) -{ +static void djvu_page_text_content_append(djvu_page_text_t* page_text, miniexp_t exp); +static miniexp_t text_position_get_exp(djvu_page_text_t* page_text, unsigned int index); +static bool djvu_page_text_build_rectangle(djvu_page_text_t* page_text, miniexp_t exp, miniexp_t start, miniexp_t end); +static bool djvu_page_text_build_rectangle_process(djvu_page_text_t* page_text, miniexp_t exp, miniexp_t start, + miniexp_t end); +static void djvu_page_text_limit(djvu_page_text_t* page_text, miniexp_t exp, zathura_rectangle_t* rectangle); +static void djvu_page_text_limit_process(djvu_page_text_t* page_text, miniexp_t exp, zathura_rectangle_t* rectangle); +static bool djvu_page_text_select_content(djvu_page_text_t* page_text, miniexp_t exp, int delimiter); + +djvu_page_text_t* djvu_page_text_new(djvu_document_t* document, zathura_page_t* page) { if (document == NULL || document->document == NULL || page == NULL) { goto error_ret; } @@ -52,8 +44,7 @@ /* read page text */ while ((page_text->text_information = - ddjvu_document_get_pagetext(document->document, zathura_page_get_index(page), "char")) - == miniexp_dummy) { + ddjvu_document_get_pagetext(document->document, zathura_page_get_index(page), "char")) == miniexp_dummy) { handle_messages(document, true); } @@ -74,16 +65,13 @@ return NULL; } -void -djvu_page_text_free(djvu_page_text_t* page_text) -{ +void djvu_page_text_free(djvu_page_text_t* page_text) { if (page_text == NULL) { return; } if (page_text->text_information != miniexp_nil && page_text->document != NULL) { - ddjvu_miniexp_release(page_text->document->document, - page_text->text_information); + ddjvu_miniexp_release(page_text->document->document, page_text->text_information); } if (page_text->content != NULL) { @@ -101,9 +89,7 @@ free(page_text); } -girara_list_t* -djvu_page_text_search(djvu_page_text_t* page_text, const char* text) -{ +girara_list_t* djvu_page_text_search(djvu_page_text_t* page_text, const char* text) { if (page_text == NULL || text == NULL) { goto error_ret; } @@ -120,16 +106,14 @@ } /* create result list */ - girara_list_t* results = girara_list_new2( - (girara_free_function_t) free); + girara_list_t* results = girara_list_new2((girara_free_function_t)free); if (results == NULL) { goto error_ret; } /* create list */ - page_text->text_positions = girara_list_new2( - (girara_free_function_t) free); + page_text->text_positions = girara_list_new2((girara_free_function_t)free); if (page_text->text_positions == NULL) { goto error_free; @@ -144,7 +128,7 @@ /* search through content */ int search_length = strlen(text); - char* tmp = page_text->content; + char* tmp = page_text->content; while ((tmp = strcasestr(tmp, text)) != NULL) { int start_pointer = tmp - page_text->content; @@ -159,8 +143,7 @@ page_text->rectangle = NULL; } - djvu_page_text_build_rectangle(page_text, page_text->text_information, - start, end); + djvu_page_text_build_rectangle(page_text, page_text->text_information, start, end); if (page_text->rectangle == NULL) { tmp += search_length; @@ -174,7 +157,7 @@ page_text->rectangle->y2 = ZATHURA_DJVU_SCALE * page_text->rectangle->y2; /* invert */ - int y1 = zathura_page_get_height(page_text->page) - page_text->rectangle->y1; + int y1 = zathura_page_get_height(page_text->page) - page_text->rectangle->y1; page_text->rectangle->y1 = zathura_page_get_height(page_text->page) - page_text->rectangle->y2; page_text->rectangle->y2 = y1; @@ -217,9 +200,7 @@ return NULL; } -static void -djvu_page_text_content_append(djvu_page_text_t* page_text, miniexp_t exp) -{ +static void djvu_page_text_content_append(djvu_page_text_t* page_text, miniexp_t exp) { if (page_text == NULL || exp == miniexp_nil) { return; } @@ -241,15 +222,14 @@ continue; } - position->position = (page_text->content != NULL) ? - strlen(page_text->content) : 0; - position->exp = exp; + position->position = (page_text->content != NULL) ? strlen(page_text->content) : 0; + position->exp = exp; girara_list_append(page_text->text_positions, position); } /* append text */ - char* text = (char*) miniexp_to_str(data); + char* text = (char*)miniexp_to_str(data); if (page_text->content == NULL) { page_text->content = g_strdup(text); @@ -258,7 +238,7 @@ g_free(page_text->content); page_text->content = tmp; } - /* not a string, recursive call */ + /* not a string, recursive call */ } else { djvu_page_text_content_append(page_text, data); } @@ -268,9 +248,7 @@ } } -static miniexp_t -text_position_get_exp(djvu_page_text_t* page_text, unsigned int index) -{ +static miniexp_t text_position_get_exp(djvu_page_text_t* page_text, unsigned int index) { if (page_text == NULL || page_text->text_positions == NULL) { goto error_ret; } @@ -312,10 +290,8 @@ return miniexp_nil; } -static bool -djvu_page_text_build_rectangle_process(djvu_page_text_t* page_text, miniexp_t exp, - miniexp_t start, miniexp_t end) -{ +static bool djvu_page_text_build_rectangle_process(djvu_page_text_t* page_text, miniexp_t exp, miniexp_t start, + miniexp_t end) { if (page_text == NULL) { goto error_ret; } @@ -365,10 +341,7 @@ return false; } -static bool -djvu_page_text_build_rectangle(djvu_page_text_t* page_text, miniexp_t exp, - miniexp_t start, miniexp_t end) -{ +static bool djvu_page_text_build_rectangle(djvu_page_text_t* page_text, miniexp_t exp, miniexp_t start, miniexp_t end) { if (page_text == NULL) { goto error_ret; } @@ -382,8 +355,7 @@ miniexp_t data = miniexp_car(inner); if (miniexp_stringp(data) != 0) { - if (djvu_page_text_build_rectangle_process(page_text, - exp, start, end) == false) { + if (djvu_page_text_build_rectangle_process(page_text, exp, start, end) == false) { goto error_ret; } } else { @@ -402,9 +374,7 @@ return false; } -char* -djvu_page_text_select(djvu_page_text_t* page_text, zathura_rectangle_t rectangle) -{ +char* djvu_page_text_select(djvu_page_text_t* page_text, zathura_rectangle_t rectangle) { if (page_text == NULL) { return NULL; } @@ -415,18 +385,15 @@ return (page_text->content != NULL) ? g_strdup(page_text->content) : NULL; } -static void -djvu_page_text_limit_process(djvu_page_text_t* page_text, miniexp_t exp, - zathura_rectangle_t* rectangle) -{ +static void djvu_page_text_limit_process(djvu_page_text_t* page_text, miniexp_t exp, zathura_rectangle_t* rectangle) { zathura_rectangle_t current_rectangle; current_rectangle.x1 = miniexp_to_int(miniexp_nth(1, exp)); current_rectangle.y1 = miniexp_to_int(miniexp_nth(2, exp)); current_rectangle.x2 = miniexp_to_int(miniexp_nth(3, exp)); current_rectangle.y2 = miniexp_to_int(miniexp_nth(4, exp)); - if (current_rectangle.x2 >= rectangle->x1 && current_rectangle.y1 <= rectangle->y2 - && current_rectangle.x1 <= rectangle->x2 && current_rectangle.y2 >= rectangle->y1) { + if (current_rectangle.x2 >= rectangle->x1 && current_rectangle.y1 <= rectangle->y2 && + current_rectangle.x1 <= rectangle->x2 && current_rectangle.y2 >= rectangle->y1) { if (page_text->begin == miniexp_nil) { page_text->begin = exp; } @@ -435,10 +402,7 @@ } } -static void -djvu_page_text_limit(djvu_page_text_t* page_text, miniexp_t exp, - zathura_rectangle_t* rectangle) -{ +static void djvu_page_text_limit(djvu_page_text_t* page_text, miniexp_t exp, zathura_rectangle_t* rectangle) { if (page_text == NULL || rectangle == NULL) { return; } @@ -459,12 +423,9 @@ inner = miniexp_cdr(inner); } - } -static bool -djvu_page_text_select_content(djvu_page_text_t* page_text, miniexp_t exp, int delimiter) -{ +static bool djvu_page_text_select_content(djvu_page_text_t* page_text, miniexp_t exp, int delimiter) { if (page_text == NULL) { return false; } @@ -483,15 +444,13 @@ if (miniexp_stringp(data) != 0) { if (page_text->content != NULL || exp == page_text->begin) { - char* token_content = (char*) miniexp_to_str(miniexp_nth(5, exp)); + char* token_content = (char*)miniexp_to_str(miniexp_nth(5, exp)); if (page_text->content != NULL) { - char* content = g_strjoin( - (delimiter & 2) ? "\n" : (delimiter & 1) ? " " : NULL, - page_text->content, - token_content, - NULL - ); + char* content = g_strjoin((delimiter & 2) ? "\n" + : (delimiter & 1) ? " " + : NULL, + page_text->content, token_content, NULL); g_free(page_text->content); page_text->content = content; } else { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zathura-djvu-0.2.9/zathura-djvu/page-text.h new/zathura-djvu-0.2.10/zathura-djvu/page-text.h --- old/zathura-djvu-0.2.9/zathura-djvu/page-text.h 2020-01-06 11:00:18.000000000 +0100 +++ new/zathura-djvu-0.2.10/zathura-djvu/page-text.h 2024-08-04 10:33:34.000000000 +0200 @@ -15,15 +15,15 @@ */ typedef struct djvu_page_text_s { miniexp_t text_information; /**< Text by ddjvu_document_get_pagetext */ - char* content; /**< Actual content */ + char* content; /**< Actual content */ - miniexp_t begin; /**< Begin index */ - miniexp_t end; /**< End index */ - girara_list_t* text_positions; /**< Position/Expression duple */ + miniexp_t begin; /**< Begin index */ + miniexp_t end; /**< End index */ + girara_list_t* text_positions; /**< Position/Expression duple */ zathura_rectangle_t* rectangle; /**< Rectangle */ djvu_document_t* document; /**< Correspondening document */ - zathura_page_t* page; /**< Correspondening page */ + zathura_page_t* page; /**< Correspondening page */ } djvu_page_text_t; /** @@ -33,8 +33,7 @@ * @param page_number The number of the page * @return The page object or NULL if an error occurred */ -GIRARA_HIDDEN djvu_page_text_t* djvu_page_text_new(djvu_document_t* document, - zathura_page_t* page); +GIRARA_HIDDEN djvu_page_text_t* djvu_page_text_new(djvu_document_t* document, zathura_page_t* page); /** * Frees a djvu page object @@ -50,8 +49,7 @@ * @param text The text to search * @return List of results or NULL if an error occurred */ -GIRARA_HIDDEN girara_list_t* djvu_page_text_search(djvu_page_text_t* page_text, - const char* text); +GIRARA_HIDDEN girara_list_t* djvu_page_text_search(djvu_page_text_t* page_text, const char* text); /** * Returns the text on the page under the given rectangle @@ -60,7 +58,6 @@ * @param rectangle The area of where the text should be copied * @return Copy of the text or NULL if an error occurred or if the area is empty */ -GIRARA_HIDDEN char* djvu_page_text_select(djvu_page_text_t* page_text, - zathura_rectangle_t rectangle); +GIRARA_HIDDEN char* djvu_page_text_select(djvu_page_text_t* page_text, zathura_rectangle_t rectangle); #endif // DJVU_PAGE_H