-
If some keys depend on others, we have to check up front since there is no control of what order key handlers will be called. Anyway, keys are unordered in json, so we don't want to depend on ordering.
-
Now still have to go through and implement the handlers.
-
Since the functionality of argument parsing has moved into QPDFJob, these classes no longer need to be public. Their methods still have to be in the library's binary interface so they can be tested in libtests.
-
Fix typos in cli.rst
-
All that's left now is input and output handling.
-
This is used to generate a schema for the job json, which can't contain `)"` because it breaks the R"(...)" syntax in C++. While C++ accepts R"anything(...)anything" to avoid this, as of this writing, MSVC 2019 doesn't understand that. For now, just avoid it by removing parentheses from the end of short help.
-
This is a massive rewrite of the help text and cli.rst section of the manual. All command-line flags now have their own help and are specifically index. qpdf --help is completely redone.
-
Handle optional choices in addition to required choices. Refactor the way help options are added to completion to make it work with optional help choices.
-
Converted ResourceFinder to ParserCallbacks so we can better detect the name that precedes various operators and use the operators to sort the names into resource types. This enables us to be smarter about detecting unreferenced resources in pages and also sets the stage for reconciling differences in /DR across documents.