Tags: patch The problem is not in evince, but is in libpoppler5 (source package: poppler) [1,2]. This problem is fixed upstream. The attached patch is taken from the poppler git repository [3], and I've tested that it works with 0.12.4 (the version of poppler in squeeze).
Please could you reassign this bug to the popper package. It would be great if this could be fixed for the next Squeeze point release because the problem is _really_ annoying. I know the problem was fixed for 0.16.3-1 in sid. Thanks. Gordon [1] https://bugzilla.redhat.com/show_bug.cgi?id=574964 [2] https://bugs.freedesktop.org/show_bug.cgi?id=27728 [3] http://cgit.freedesktop.org/poppler/poppler/commit/?id=4ed53e30e735b79c46eab9d54883531c6e187b17 -- Gordon Farquharson GnuPG Key ID: 32D6D676
From 4ed53e30e735b79c46eab9d54883531c6e187b17 Mon Sep 17 00:00:00 2001 From: William Bader <williamba...@hotmail.com> Date: Fri, 23 Apr 2010 21:52:24 +0000 Subject: Silence some Illegal entry in bfrange block in ToUnicode CMap Fixes #27728 --- diff --git a/poppler/CharCodeToUnicode.cc b/poppler/CharCodeToUnicode.cc index 5941190..80fd4c5 100644 --- a/poppler/CharCodeToUnicode.cc +++ b/poppler/CharCodeToUnicode.cc @@ -307,8 +308,10 @@ void CharCodeToUnicode::parseCMap1(int (*getCharFunc)(void *), void *data, error(-1, "Illegal entry in bfrange block in ToUnicode CMap"); break; } - if (!(n1 == 2 + nDigits && tok1[0] == '<' && tok1[n1 - 1] == '>' && - n2 == 2 + nDigits && tok2[0] == '<' && tok2[n2 - 1] == '>')) { + if (!(((n1 == 2 + nDigits && tok1[0] == '<' && tok1[n1 - 1] == '>') || + (n1 == 4 + nDigits && tok1[0] == '<' && tok1[n1 - 1] == '>' && tok1[1] == '0' && tok1[2] == '0')) && + ((n2 == 2 + nDigits && tok2[0] == '<' && tok2[n2 - 1] == '>') || + (n2 == 4 + nDigits && tok2[0] == '<' && tok2[n2 - 1] == '>' && tok1[1] == '0' && tok1[2] == '0')))) { error(-1, "Illegal entry in bfrange block in ToUnicode CMap"); continue; }