-
Manual edits for cases not handled by search and replace
-
Using search and replace.
-
If /AP is a dictionary of streams rather than a dictionary of dictionaries, disregard /AS, which is supposed to point to a subkey of one of the dictionaries. This fix prevents qpdf's annotation flattening from discarding some annotations when /AS is erroneously set.
-
Add new method QPDF::newReserved()
-
Add new convenience class QPDFObjGen::Guard
-
#863 uses a single null object for nulls that were previously implicit. In certain circumstances this shared null object gets destroyed (i.e changed to a QPDF_Destroyed object) when a QPDF object is destroyed. Modify the QPDF destructor so that null objects get disconnected from the dying QPDF object but not destroyed to prevent this from happening.
-
'#' was omitted from the list of chars that need to be escaped.
-
Also, move _qpdf_data and to new header filer _qpdf_error to new header file qpdf-c_impl.hh