Commit Graph

161 Commits

Author SHA1 Message Date
Jay Berkenbilt 34f013c1be Allow --file and --range with --pages
Accept --file and --range as named parameters in additional to
allowing positional arguments. This is in preparation for adding
additional flags.
2024-01-10 16:44:17 -05:00
Jay Berkenbilt 7c0fdf8510 Format code, bump clang-format version to 18 2023-12-22 21:45:10 -05:00
Jay Berkenbilt 4ee393d1fa Remove compression from linearization tests where possible
By combining --linearize with --compress-streams=n, we ensure that no
new compressed data will appear in linearized output, which makes the
output independent of zlib's output. There are other tests to ensure
that linearization works correctly with compression. This commit
involves changing some test outputs and test code as well just
updating test suites.
2023-12-20 15:46:20 -05:00
Jay Berkenbilt c67634afa0 Fix tests when running comparison tool is adequate
Fix all tests where the only required fix is to run qpdf-test-compare
instead of doing a simple file comparison.
2023-12-20 15:21:32 -05:00
Jay Berkenbilt d7a364b882 Allow regular C++ functions to interoperate with the C API 2023-12-16 10:06:34 -05:00
Jay Berkenbilt 8854143c7b Spell check 2023-10-07 17:52:35 -04:00
m-holger ae3642ce42 Code tidy - Clang-Tidy rule modernize-use-equals-default 2023-06-09 15:45:14 +01:00
m-holger 5906dd5c1f Code tidy - Clang-Tidy rule modernize-use-default-member-init 2023-06-09 15:43:21 +01:00
m-holger 7bc0f1d828 Code tidy - Clang-Tidy rule modernize-use-emplace 2023-06-09 15:42:11 +01:00
m-holger acd0acf169 Fix doc typos 2023-06-02 19:24:12 +01:00
m-holger 3c5700c255 Code tidy - reflow comments and strings 2023-06-02 16:00:40 +01:00
Jay Berkenbilt 60965d5f4d Rerun clang-format 2023-05-21 13:35:09 -04:00
Jay Berkenbilt d740c6ccce Rerun format_code (after merging clang-tidy PR) 2023-05-20 14:52:19 -04:00
Jay Berkenbilt 5f02c7c9e7 Tweak pdf-filter-tokens to be less sensitive to floating point
Switch output to QDF for easier diffing
Simplify input image
Reduce decimal places

This works around an issue were, for certain versions, the mingw32
tests failed because of irrelevant floating point rounding issues in
the test output.
2023-05-20 14:52:19 -04:00
m-holger e6577a1323 Replace 'virtual' specifier with 'override' 2023-05-20 15:41:56 +01:00
m-holger ba5a3567a2 Remove redundant 'virtual' specifiers 2023-05-20 15:41:52 +01:00
m-holger 41ec7eda54 Use auto when initialializing with new 2023-05-20 15:41:40 +01:00
m-holger d0682f0f60 Use nullptr instead of 0 or NULL 2023-05-20 15:41:36 +01:00
m-holger e28f4efb00 Replace deprecated C++ includes 2023-05-20 15:41:25 +01:00
m-holger 7f043fe88e Remove unused include directives 2023-05-20 15:37:41 +01:00
m-holger 99231c4378 Add example qpdfjob-remove-annotations 2023-03-09 17:29:39 +00:00
m-holger 34a6f8938f Add methods QPDFTokenizer::Token::isWord 2022-11-20 11:55:02 -05:00
m-holger f69ed209d0 Use QPDF::newStream in examples 2022-11-19 14:10:42 -05:00
m-holger 2e6869483b Replace calls to QUtil::int_to_string with std::to_string 2022-09-21 15:57:14 -04:00
Jay Berkenbilt 66f1fd2ad9 Switch user-supplied functions in C API to return int 2022-09-08 17:36:51 -04:00
m-holger 073808aa50 Code tidy : replace 0 with nullptr or true 2022-07-26 13:40:13 +01:00
m-holger afd35f9a30 Overload StreamDataProvider::provideStreamData
Use 'QPDFObjGen const&' instead of 'int, int' in signature.
2022-07-24 16:02:35 +01:00
Jay Berkenbilt 6c4537885e Reformat code 2022-06-25 11:11:24 -04:00
Jay Berkenbilt 8e361d98f0 Add examples for output capture (fixes #691) 2022-06-19 08:46:58 -04:00
m-holger 6c69a747b9 Code clean up: use range-style for loops wherever possible
Remove variables obsoleted by commit 4f24617.
2022-05-21 16:06:29 -04:00
Jay Berkenbilt 56f1b411fe Back out fluent QPDFObjectHandle methods. Keep the andGet methods.
I decided these were confusing and inconsistent with how JSON works.
They muddle the API rather than improving it.
2022-05-20 09:16:25 -04:00
Jay Berkenbilt 21d6e3231f Make use of the new Pipeline methods in some places 2022-05-03 18:31:23 -04:00
Jay Berkenbilt 59f3e09edf Make Pipeline::write take an unsigned char const* (API change) 2022-05-03 18:31:22 -04:00
Jay Berkenbilt 4f24617e1e Code clean up: use range-style for loops wherever possible
Where not possible, use "auto" to get the iterator type.

Editorial note: I have avoid this change for a long time because of
not wanting to make gratuitous changes to version history, which can
obscure when certain changes were made, but with having recently
touched every single file to apply automatic code formatting and with
making several broad changes to the API, I decided it was time to take
the plunge and get rid of the older (pre-C++11) verbose iterator
syntax. The new code is just easier to read and understand, and in
many cases, it will be more effecient as fewer temporary copies are
being made.

m-holger, if you're reading, you can see that I've finally come
around. :-)
2022-04-30 13:27:18 -04:00
Jay Berkenbilt 7f023701dd Formatting: remove space in range-style for loops
Change .clang-format and commit automated changes from a fresh run of
format-code
2022-04-30 13:26:43 -04:00
Jay Berkenbilt ab9d557cb0 Use fluent replaceKey 2022-04-29 20:39:54 -04:00
Jay Berkenbilt cdd0b4fb7d Use = default and = delete where possible in classes 2022-04-16 11:39:14 -04:00
Jay Berkenbilt ba0ef7a124 Replace PointerHolder with std::shared_ptr in the rest of the code
Increase to POINTERHOLDER_TRANSITION=3

patrepl s/PointerHolder/std::shared_ptr/g **/*.cc **/*.hh
patrepl s/make_pointer_holder/std::make_shared/g **/*.cc
patrepl s/make_array_pointer_holder/QUtil::make_shared_array/g **/*.cc
patrepl s,qpdf/std::shared_ptr,qpdf/PointerHolder, **/*.cc **/*.hh
git restore include/qpdf/PointerHolder.hh
git restore libtests/pointer_holder.cc
cleanpatch
./format-code
2022-04-09 17:33:29 -04:00
Jay Berkenbilt 77e889495f Update some code manually to get better formatting results
Add comments to force line breaks, parenthesize function arguments
that are contatenated strings, etc. -- these kinds of changes improve
clang-format's results and also cause emacs cc-mode to match
clang-format. After this type of change, most of the time, when
clang-format and emacs disagree, clang-format is better.
2022-04-05 14:56:19 -04:00
Jay Berkenbilt 12f1eb15ca Programmatically apply new formatting to code
Run this:

for i in  **/*.cc **/*.c **/*.h **/*.hh; do
  clang-format < $i >| $i.new && mv $i.new $i
done
2022-04-04 08:10:40 -04:00
Jay Berkenbilt 820a3f04fd Remove "lt-" workarounds
The executables that libtool built invoked the underlying binary with
an "lt-" prefix. The code contained numerous workarounds for testing,
which can now be removed.
2022-03-18 19:53:18 -04:00
Jay Berkenbilt 70d0d0889b Remove old build files 2022-03-18 19:53:18 -04:00
Jay Berkenbilt b8aff90997 Add cmake configuration files 2022-03-18 19:53:18 -04:00
Jay Berkenbilt a734af681b Run qpdf from path rather than environment variable in tests
With cmake, we are customizing the path for each test suite so we can
ensure we get the right qpdf without having to use an environment
variable.
2022-03-18 19:53:18 -04:00
m-holger 78aa3b6c2b Tidy example pdf-double-page-size
Also fix typo in pdf-attach-file example.
2022-03-03 06:54:30 -05:00
m-holger 1253d1be60 Tidy pdf-create example
Convert loop to use range-based for statement.
Remove unnecessary variables.
2022-02-26 12:46:13 -05:00
m-holger 33e8195c3a Tidy pdf-count-strings example
Convert loop to use range-based for statement.
Remove unnecessary variables.
2022-02-26 12:46:13 -05:00
m-holger 527810e939 Tidy pdf-attach-file example 2022-02-25 11:23:43 -05:00
m-holger 5b0030ff59 Tidy pdf-bookmarks example
Convert loops to use range-based for statements.
Simplify the extract_bookmarks function.
2022-02-11 09:27:39 -05:00
Jay Berkenbilt cb769c62e5 WHITESPACE ONLY -- expand tabs in source code
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.
2022-02-08 11:51:15 -05:00