Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/pdf/xpdf/pdfimages.cc
diff options
context:
space:
mode:
Diffstat (limited to 'pdf/xpdf/pdfimages.cc')
-rw-r--r--pdf/xpdf/pdfimages.cc21
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;
}