diff --git a/utils/pdfinfo.cc b/utils/pdfinfo.cc index a94e4e8..df3a6d6 100644 --- a/utils/pdfinfo.cc +++ b/utils/pdfinfo.cc @@ -54,6 +54,7 @@ static void printInfoString(Dict *infoDict, char *key, char *text, UnicodeMap *uMap); static void printInfoDate(Dict *infoDict, char *key, char *text); static void printBox(char *text, PDFRectangle *box); +static void printVersionString(); static int firstPage = 1; static int lastPage = 0; @@ -116,13 +117,20 @@ int main(int argc, char *argv[]) { // parse args ok = parseArgs(argDesc, &argc, argv); - if (!ok || (argc != 2 && !printEnc) || printVersion || printHelp) { - fprintf(stderr, "pdfinfo version %s\n", PACKAGE_VERSION); - fprintf(stderr, "%s\n", popplerCopyright); - fprintf(stderr, "%s\n", xpdfCopyright); - if (!printVersion) { + + // incorrect usage + if ((!ok) || (argc != 2 && !printEnc && !printVersion && !printHelp)) { + printVersionString(); + printUsage("pdfinfo", "", argDesc); + goto err0; + } + + // version or help requested + if (printVersion || printHelp) { + printVersionString(); + if (printHelp) printUsage("pdfinfo", "", argDesc); - } + exitCode = 0; goto err0; } @@ -132,6 +140,7 @@ int main(int argc, char *argv[]) { if (printEnc) { printEncodings(); delete globalParams; + exitCode = 0; goto err0; } @@ -417,3 +426,9 @@ static void printBox(char *text, PDFRectangle *box) { printf("%s%8.2f %8.2f %8.2f %8.2f\n", text, box->x1, box->y1, box->x2, box->y2); } + +static void printVersionString() { + fprintf(stderr, "pdfinfo version %s\n", PACKAGE_VERSION); + fprintf(stderr, "%s\n", popplerCopyright); + fprintf(stderr, "%s\n", xpdfCopyright); +}