diff options
Diffstat (limited to 'pdf/xpdf/pdfimages.cc')
-rw-r--r-- | pdf/xpdf/pdfimages.cc | 21 |
1 files changed, 15 insertions, 6 deletions
diff --git a/pdf/xpdf/pdfimages.cc b/pdf/xpdf/pdfimages.cc index 898ad00..5e35bfb 100644 --- a/pdf/xpdf/pdfimages.cc +++ b/pdf/xpdf/pdfimages.cc @@ -72,6 +72,9 @@ int main(int argc, char *argv[]) { GString *ownerPW, *userPW; ImageOutputDev *imgOut; GBool ok; + int exitCode; + + exitCode = 99; // parse args ok = parseArgs(argDesc, &argc, argv); @@ -81,7 +84,7 @@ int main(int argc, char *argv[]) { if (!printVersion) { printUsage("pdfimages", "<PDF-file> <image-root>", argDesc); } - exit(1); + goto err0; } fileName = new GString(argv[1]); imgRoot = argv[2]; @@ -111,13 +114,15 @@ int main(int argc, char *argv[]) { delete ownerPW; } if (!doc->isOk()) { - goto err; + exitCode = 1; + goto err1; } // check for copy permission if (!doc->okToCopy()) { error(-1, "Copying of images from this document is not allowed."); - goto err; + exitCode = 3; + goto err1; } // get page range @@ -128,18 +133,22 @@ int main(int argc, char *argv[]) { // write image files imgOut = new ImageOutputDev(imgRoot, dumpJPEG); - if (imgOut->isOk()) + if (imgOut->isOk()) { doc->displayPages(imgOut, firstPage, lastPage, 72, 0, gFalse); + } delete imgOut; + exitCode = 0; + // clean up - err: + err1: delete doc; delete globalParams; + err0: // check for memory leaks Object::memCheck(stderr); gMemReport(stderr); - return 0; + return exitCode; } |