diff options
author | Martin Kretzschmar <mkretzschmar@src.gnome.org> | 2003-03-31 23:23:17 (GMT) |
---|---|---|
committer | Martin Kretzschmar <mkretzschmar@src.gnome.org> | 2003-03-31 23:23:17 (GMT) |
commit | 8032fd96d450ac015c0153f1fa57e974d67b4993 (patch) | |
tree | dba81f5197969c0a5e55c50d3474c2cc817b3785 /pdf/xpdf/Link.cc | |
parent | 9ac495d6543dbd65992791bb41d5f8fbf90e549c (diff) |
update
* ANNOUNCE, CHANGES, README, aconf-win32.h: update
* xpdf/CharCodeToUnicode.cc, xpdf/Decrypt.cc, xpdf/FTFont.cc,
xpdf/FTFont.h, xpdf/FontEncodingTables.cc, xpdf/Gfx.cc,
xpdf/GfxFont.cc, xpdf/GfxState.cc, xpdf/GfxState.h,
xpdf/GlobalParams.cc, xpdf/GlobalParams.h, xpdf/Link.cc,
xpdf/NameToUnicodeTable.h, xpdf/Stream.cc, xpdf/TextOutputDev.cc,
xpdf/TextOutputDev.h, xpdf/XOutputDev.cc, xpdf/config.h,
xpdf/pdftotext.cc, xpdf/xpdf.cc, xpdf/Outline.cc, xpdf/XPDFApp.cc,
xpdf/XPDFApp.h, xpdf/XPDFCore.cc, xpdf/XPDFCore.h,
xpdf/XPDFViewer.cc, xpdf/XPDFViewer.h: update.
* goo/gfile.cc: update.
* goo/Makefile.am: use GMutex.h
* doc/pdffonts.1, doc/pdffonts.cat, doc/pdfimages.1,
doc/pdfimages.cat, doc/pdfinfo.1, doc/pdfinfo.cat, doc/pdftopbm.1,
doc/pdftopbm.cat, doc/pdftops.1, doc/pdftops.cat, doc/pdftotext.1,
doc/pdftotext.cat, doc/pdftotext.hlp, doc/xpdf.1, doc/xpdf.cat,
doc/xpdf.hlp, doc/xpdfrc.5, doc/xpdfrc.cat, doc/xpdfrc.hlp: update
Diffstat (limited to 'pdf/xpdf/Link.cc')
-rw-r--r-- | pdf/xpdf/Link.cc | 64 |
1 files changed, 36 insertions, 28 deletions
diff --git a/pdf/xpdf/Link.cc b/pdf/xpdf/Link.cc index b16563a..0c3a869 100644 --- a/pdf/xpdf/Link.cc +++ b/pdf/xpdf/Link.cc @@ -170,44 +170,52 @@ LinkDest::LinkDest(Array *a) { // XYZ link if (obj1.isName("XYZ")) { - if (a->getLength() != 5) { - error(-1, "Annotation destination array has wrong length"); - goto err2; - } kind = destXYZ; - a->get(2, &obj2); - if (obj2.isNull()) { + if (a->getLength() < 3) { changeLeft = gFalse; - } else if (obj2.isNum()) { - changeLeft = gTrue; - left = obj2.getNum(); } else { - error(-1, "Bad annotation destination position"); - goto err1; + a->get(2, &obj2); + if (obj2.isNull()) { + changeLeft = gFalse; + } else if (obj2.isNum()) { + changeLeft = gTrue; + left = obj2.getNum(); + } else { + error(-1, "Bad annotation destination position"); + goto err1; + } + obj2.free(); } - obj2.free(); - a->get(3, &obj2); - if (obj2.isNull()) { + if (a->getLength() < 4) { changeTop = gFalse; - } else if (obj2.isNum()) { - changeTop = gTrue; - top = obj2.getNum(); } else { - error(-1, "Bad annotation destination position"); - goto err1; + a->get(3, &obj2); + if (obj2.isNull()) { + changeTop = gFalse; + } else if (obj2.isNum()) { + changeTop = gTrue; + top = obj2.getNum(); + } else { + error(-1, "Bad annotation destination position"); + goto err1; + } + obj2.free(); } - obj2.free(); - a->get(4, &obj2); - if (obj2.isNull()) { + if (a->getLength() < 5) { changeZoom = gFalse; - } else if (obj2.isNum()) { - changeZoom = gTrue; - zoom = obj2.getNum(); } else { - error(-1, "Bad annotation destination position"); - goto err1; + a->get(4, &obj2); + if (obj2.isNull()) { + changeZoom = gFalse; + } else if (obj2.isNum()) { + changeZoom = gTrue; + zoom = obj2.getNum(); + } else { + error(-1, "Bad annotation destination position"); + goto err1; + } + obj2.free(); } - obj2.free(); // Fit link } else if (obj1.isName("Fit")) { |