-
Fix offsets in QPDF::resolveObjectsInStream warnings
-
CMake: correctly detect that timezone is not an int
-
As discussed in #1396.
-
Internally use -1 to represent a missing offset and provide a constructor overload that allows 0 as a valid offset. In QPDF::damagedPDF use the new overload.
-
Enhance --rotate usage message (fixes #1410)
-
Also, silently fix any angle that is a multiple of 90.
-
Refactor QPDFWriter::writeObjectStreamOffsets
-
Rather than converting each (sequential) object id to a string, generate a string for the first id and than increment the digits in the string.
-
The simple CMake test that printf("%ld", timezone) to tell if HAVE_EXTERN_LONG_TIMEZONE, incorrectly saw an int after casting FreeBSD's char * timezone(int zone, int dst) pointer function to an int. By dividing it by 60 (as will occur in the .cc file), we ensure the test program to fail and thus HAVE_EXTERN_LONG_TIMEZONE not to be defined.
-
Add new CLI Option --remove-structure
-
... to remove the /Root /StructTreeRoot and /MarkInfo entries.
-
Tune QPDFWriter writes to Pl_Count
-
... and use it in QPDFWriter and QPDF::generateHintStream.
-
Also, remove redundant QPDFWriter::writeBuffer.
-
Also, - use Pl_Discard when only checking whether stream is filterable - get last char directly from output string
-
Fix parsing of object streams containing objects with no white-space between them
-
... containing objects with no white-space between them. To enforce the rule that objects end at the start-offset of the next object, each object is parsed in it own object stream. To facilitate this, a new private API input source is::OffsetBuffer has been added which only contains the object but reports offsets relative to the start of the object stream. This is adapted from OffsetInputSource by changing the direction of the offset, endowing it with its own BufferInputSource and striooing out checks duplicated in BufferInputSource. Fixes the expected failure in the test case added in #1266.
-
Refactor calls to QPDFParser::parse
-
Add static parse methods. Make all external access to QPDFParser through static methods. Make all non-static methods including constructors private.
-
Refactor QPDF::resolveObjectsInStream
-
Only build strings when needed.
-
... to QPDFObjectHandle_private.hh
-
Fix object stream error/warning messages reporting wrong object id
-
This was due to the use of last_object_description, which is not set for the object stream itself. Also, modify the messages introduced #1391 and #1392 to report the supposed offset of the objects.
-
Refactor writing of object streams
-
Cache output of pass 1.
-
Fix #1394
-
Move methods responsible for loading or keeping track of objects to QPDF_objects.cc. The split was part of the reverted #1297. Reintroducing it now makes it easier/safer to keep the work to refactor the xref and object tables in sync with main.
-
Also, add reverted #194 to .git-blame-ignore-revs.
-
This reverts commit bb045907a043b5c6de9fb804ff11087333747329.