Commit bbd45cd01c5993de0970065b2bbd03aa28837b2c

Authored by Jay Berkenbilt
1 parent 8f1db4dc

Clarify qpdf's exit statuses in the documentation

@@ -3,14 +3,13 @@ Candidates for upcoming release @@ -3,14 +3,13 @@ Candidates for upcoming release
3 3
4 * Trivial fixes: 4 * Trivial fixes:
5 * Remove travisci 5 * Remove travisci
6 - * Update manual to clearly state qpdf's exit codes including mention  
7 - of not exiting with code 1.  
8 6
9 * Quick issues: 7 * Quick issues:
10 * #438: things written to stdout instead of stderr; --no-warn issues 8 * #438: things written to stdout instead of stderr; --no-warn issues
11 * #454: integer overflow 9 * #454: integer overflow
12 * #451: BufferInputSource performance enhancement 10 * #451: BufferInputSource performance enhancement
13 * #432: WindowsCryptProvider fixes 11 * #432: WindowsCryptProvider fixes
  12 + * Add --warning-exit-0 option. Search for --no-warn in the docs.
14 13
15 * Easy build/test 14 * Easy build/test
16 * #429: cygwin build and openssl version (see #455) 15 * #429: cygwin build and openssl version (see #455)
manual/qpdf-manual.xml
@@ -594,6 +594,40 @@ make @@ -594,6 +594,40 @@ make
594 Most options require an output file, but some testing or 594 Most options require an output file, but some testing or
595 inspection commands do not. These are specifically noted. 595 inspection commands do not. These are specifically noted.
596 </para> 596 </para>
  597 + <sect2 id="ref.exit-status">
  598 + <title>Exit Status</title>
  599 + <para>
  600 + The exit status of <command>qpdf</command> may be interpreted as
  601 + follows:
  602 + <itemizedlist>
  603 + <listitem>
  604 + <para>
  605 + <literal>0</literal>: no errors or warnings were found. The
  606 + file may still have problems qpdf can't detect.
  607 + </para>
  608 + </listitem>
  609 + <listitem>
  610 + <para>
  611 + <literal>2</literal>: errors were found. qpdf was not able to
  612 + fully process the file.
  613 + </para>
  614 + </listitem>
  615 + <listitem>
  616 + <para>
  617 + <literal>3</literal>: qpdf encountered problems that it was
  618 + able to recover from. In some cases, the resulting file may
  619 + still be damaged. Note that qpdf still exits with status
  620 + <literal>3</literal> if it finds warnings even when
  621 + <option>--no-warn</option> is specified.
  622 + </para>
  623 + </listitem>
  624 + </itemizedlist>
  625 + Note that <command>qpdf</command> never exists with status
  626 + <literal>1</literal>. If you get an exit status of
  627 + <literal>1</literal>, it was something else, like the shell not
  628 + being able to find or execute <command>qpdf</command>.
  629 + </para>
  630 + </sect2>
597 </sect1> 631 </sect1>
598 <sect1 id="ref.shell-completion"> 632 <sect1 id="ref.shell-completion">
599 <title>Shell Completion</title> 633 <title>Shell Completion</title>
qpdf/qpdf.cc
@@ -1621,7 +1621,8 @@ ArgParser::argHelp() @@ -1621,7 +1621,8 @@ ArgParser::argHelp()
1621 << "Ordinarily, qpdf exits with a status of 0 on success or a status of 2\n" 1621 << "Ordinarily, qpdf exits with a status of 0 on success or a status of 2\n"
1622 << "if any errors occurred. If there were warnings but not errors, qpdf\n" 1622 << "if any errors occurred. If there were warnings but not errors, qpdf\n"
1623 << "exits with a status of 3. If warnings would have been issued but --no-warn\n" 1623 << "exits with a status of 3. If warnings would have been issued but --no-warn\n"
1624 - << "was given, an exit status of 3 is still used.\n"; 1624 + << "was given, an exit status of 3 is still used. qpdf does not use exit\n"
  1625 + << "status 1, since that is used by the shell if it can't execute qpdf.\n";
1625 } 1626 }
1626 1627
1627 void 1628 void