-
Run compare images tests when QPDF_TEST_COMPARE_IMAGES is set rather than when QPDF_SKIP_TEST_COMPARE_IMAGES is not set.
-
This is so it will fit on one line after a qtest upgrade allows us to split lines.
-
The PDF spec only allows UTF-16BE, but most readers seem to accept UTF-16LE as well, so now qpdf does too.
-
This was unintended behavior that was added back for backward compatibility. It is intentionally undocumented.
-
If we're opening a PDF file to copy its encryption information or attachments, its version doesn't need to influence the output version.
-
This comment expands all tabs using an 8-character tab-width. You should ignore this commit when using git blame or use git blame -w. In the early days, I used to use tabs where possible for indentation, since emacs did this automatically. In recent years, I have switched to only using spaces, which means qpdf source code has been a mixture of spaces and tabs. I have avoided cleaning this up because of not wanting gratuitous whitespaces change to cloud the output of git blame, but I changed my mind after discussing with users who view qpdf source code in editors/IDEs that have other tab widths by default and in light of the fact that I am planning to start applying automatic code formatting soon.
-
Use get() and use_count() instead. Add #define NO_POINTERHOLDER_DEPRECATION to remove deprecation markers for these only. This commit also removes all deprecated PointerHolder API calls from qpdf's code except in PointerHolder's test suite, which must continue to test the deprecated APIs.
-
add qpdf_oh_new_binary_unicode_string and qpdf_oh_get_binary_utf8_value
-
Let argv be a null-terminated array. There is already code that assumes this, and it makes it easier to construct the arguments.
-
This makes it much more convention to use the initializeFromArgv functions since you can use string literals.
-
All the coverage cases that used to be in qpdf.cc are now in QPDFJob*.cc. It doesn't really matter, but better to follow the convention of starting with the class that includes the coverage call.
-
Changing from bool requiring true to string requiring the empty string is more consistent with the CLI and makes it possible to add an optional parameter or choices later without breaking compatibility.
-
Flatten everything to make it easier to map command-line flags to json. The old structure was an illusion anyway because there was no mechanism to enforce that things were in the right place. This also helps with future flexibility.
-
Use "file" consistently for specifying a file path. We use "filename" when adding attachments for a completely different purpose.