-
When copying dlls, make sure to only consider DLLs whose type matches the type of what is loading them.
-
Make remaining calls to fopen and strerror use strerror_s and fopen_s on MSVC.
-
fopen was previuosly called wrapped by QUtil::fopen_wrapper, but QUtil::safe_fopen does this itself, which is less cumbersome.
-
Make them safer by avoiding any internal limits and replacing sprintf with std::ostringstream.
-
Make --enable-werror work properly on msvc, handle extra warnings flags for msvc in configure.ac instead of hardcoding into make/msvc.mk, separate warnings flags into WFLAGS in autoconf.mk to avoid duplication and to make it easier to override.
-
Add QUtil::hex_encode to encode binary data has a hexadecimal string, and use it in place of sprintf where possible.
-
When caching objects in an object stream, only cache objects that still resolve to that stream. See Changelog mod from this commit for details.
-
Some distributions (like debian) don't want .la files to be installed, but the responsibility for doing this should like in the packaging, not in qpdf itself.
-
Fix exit status for case of errors without warnings, continue after errors when possible, add test case for parsing a file with content stream errors on some but not all pages.
-
Also move writing to null and parsing of content streams out of the wrong if block.
-
Change object type Keyword to Operator, and place the order of the object types in object_type_e in the same order as they are mentioned in the PDF specification. Note that this change only breaks backward compatibility with code that has not yet been released.
-
Add virtual methods to QPDFObject, wrappers to QPDFObjectHandle, and implementations to all the QPDF_Object types.
-
This method allows parsing of the PDF objects in a content stream or array of content streams.
-
These object types are to facilitate content stream parsing.
-
Allowing users to subclass InputSource and Pipeline to read and write from/to arbitrary sources provides the maximum flexibility for users who want to read and write from other than files or memory.
-
This makes it possible to use two different writers to write linearized files from the same QPDF object.
-
Previously only whitespace and comments did it. This fix is needed for object streams whose last object is a literal (name, integer, real, string) not terminated by space or newline.
-
Previous commit lost coverage case for buffer-based replaceStreamData.
-
Implement --pages ... -- option for qpdf. Update TODO with remaining things to document.
-
Move object parsing code from QPDF to QPDFObjectHandle and parameterize the parts of it that are specific to a QPDF object. Provide a version that can't handle indirect objects and that can be called on an arbitrary string. A side effect of this change is that the offset used when reporting invalid stream length has changed, but since the new value seems like a better value than the old one, the test suite has been updated rather than making the code backward compatible. This only effects the offset reported for invalid streams that lack /Length or have an invalid /Length key. Updated some test code and exmaples to use QPDFObjectHandle::parse. Supporting changes include adding a BufferInputSource constructor that takes a string.