Package: libdjvulibre21 Version: 3.5.25-1 Severity: important
After upgrading libdjvulibre21 to 3.5.25-1, djview4 stopped showing hyperlinks. It looks like ddjvu_document_get_pageanno() returns just an empty list. I attached a small test program to illustrate this problem.
With libdjvulibre21 3.5.24-9: $ ./extract-anno djvulibre-3.5.25/doc/old/lizard2005-antz.djvu 0 | wc -c 2895 With libdjvulibre21 3.5.25-1: $ ./extract-anno djvulibre-3.5.25/doc/old/lizard2005-antz.djvu 0 () -- System Information: Debian Release: wheezy/sid APT prefers unstable APT policy: (990, 'unstable'), (500, 'experimental') Architecture: i386 (x86_64) Kernel: Linux 3.2.0-2-amd64 (SMP w/2 CPU cores) Locale: LANG=C, LC_CTYPE=pl_PL.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash Versions of packages libdjvulibre21 depends on: ii libc6 2.13-27 ii libdjvulibre-text 3.5.25-1 ii libgcc1 1:4.7.0~rc2-1 ii libjpeg8 8d-1 ii libstdc++6 4.7.0~rc2-1 ii multiarch-support 2.13-27 -- Jakub Wilk
#include <libdjvu/ddjvuapi.h> #include <libdjvu/miniexp.h> void handle_ddjvu_messages(ddjvu_context_t *context) { const ddjvu_message_t *message; const struct ddjvu_message_error_s *error_message; ddjvu_message_wait(context); while ((message = ddjvu_message_peek(context))) { switch(message->m_any.tag) { case DDJVU_ERROR: error_message = (const struct ddjvu_message_error_s *) message; fprintf(stderr, "%s, %s:%d: %s\n", error_message->function, error_message->filename, error_message->lineno, error_message->message ); exit(EXIT_FAILURE); break; default: break; } ddjvu_message_pop(context); } } int main(int argc, char **argv) { ddjvu_context_t *context; ddjvu_document_t *document; miniexp_t expr; int pageno; int n; if (argc != 3) { fprintf(stderr, "Usage: %s <djvu-file> <page>\n", argv[0]); return EXIT_FAILURE; } context = ddjvu_context_create(argv[0]); if (context == NULL) abort(); document = ddjvu_document_create_by_filename(context, argv[1], 0); if (document == NULL) abort(); while ((expr = ddjvu_document_get_pageanno(document, atoi(argv[2]))) == miniexp_dummy) handle_ddjvu_messages(context); miniexp_print(expr); ddjvu_context_release(context); } // vim:ts=4 sw=4 et