-
Eliminate PCRE and find endobj not preceded by endstream. Be more lax about placement of endstream and endobj.
-
Preparing to refactor some pattern searching code to use these instead of their own memchr loops. This should simplify the code that replaces PCRE.
-
Sometimes we want to ignore bad tokens rather than having them throw an exception. A coverage case is commented out here and added in a later commit.
-
Also fix a bug resulting from incorrect use of PointerHolder because of this unused parameter.
-
Passed arguments to the constructor in the wrong order.
-
main() had gotten absurdly long. Split it into reasonable chunks. This refactoring is in preparation for handling splitting output into single pages.
-
This is added to contrib rather than examples because it requires c++-11 and lacks a test suite, but it is still useful enough to include with the distribution.
-
Required for strtol()
-
When parsing content streams, allow content to be split arbitrarily across stream boundaries.
-
Be explicit about the need to keep the source QPDF object around.
-
The code was using 1.0, but we use /FlateDecode, which didn't appear until 1.2.
-
Very badly corrupted files may not have a retrievable root dictionary. Handle that as a special case so that a more helpful error message can be provided.