]> www.fi.muni.cz Git - evince.git/blobdiff - pdf/xpdf/pdfimages.cc
Reused eog HIG dialog in GPdf.
[evince.git] / pdf / xpdf / pdfimages.cc
index 898ad00ed5f5ea951f51e17e0dea99b495543c8a..e8a42aaf342a98c17942b2b6f178cb0be2707be7 100644 (file)
@@ -2,7 +2,7 @@
 //
 // pdfimages.cc
 //
-// Copyright 1998-2002 Glyph & Cog, LLC
+// Copyright 1998-2003 Glyph & Cog, LLC
 //
 //========================================================================
 
@@ -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;
 }