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