2
1
mirror of https://github.com/qpdf/qpdf.git synced 2024-06-04 03:10:52 +00:00
Commit Graph

2181 Commits

Author SHA1 Message Date
Jay Berkenbilt
c216854607 Add basic framework for QPDFJob code generation 2022-01-30 13:11:03 -05:00
Jay Berkenbilt
ad096b462c Add place-holder job.yml 2022-01-30 13:11:03 -05:00
Jay Berkenbilt
bd89aac360 QPDFJob increment: move arg parsing into QPDFJob
Move ArgParser from qpdf.cc into QPDFJob.cc. It still works with
millions of public member variables, but now qpdf.cc is minimal and
just calls stable library functions.
2022-01-30 13:11:03 -05:00
Jay Berkenbilt
23b64f8357 Remove qpdf.cc version check
Remove comparison of qpdf CLI version with library. With almost all
the functionality moving into the library, this check is no longer
meaningful.
2022-01-30 13:11:03 -05:00
Jay Berkenbilt
12396702af QPDFJob: reorder functions, no other changes 2022-01-30 13:11:03 -05:00
Jay Berkenbilt
2394dd8519 QPDFJob increment: static functions to member functions
Convert remaining static functions that take QPDFJob& as a parameter
to member functions. Utility functions that don't take QPDFJob& remain
static functions and can probably just stay that way since the keep
extra complexity out of QPDFJob.hh.
2022-01-30 13:11:03 -05:00
Jay Berkenbilt
e2975b9ed0 QPDFJob: de-templatize do_process and do_process_once 2022-01-30 13:11:03 -05:00
Jay Berkenbilt
2f631997f2 QPDFJob increment: remove std::cout, std::cerr, whoami
Remove remaining temporary duplication of hard-coded values and direct
access to std::cout, std::cerr, and whoami in favor of parameters in
QPDFJob. This moves a few more static methods into QPDFJob member
functions.
2022-01-30 13:11:03 -05:00
Jay Berkenbilt
1ddf5b4b4b QPDFJob increment: get rid of exit, handle verbose
Remove all calls to exit() from QPDFJob. Handle code that runs in
verbose mode to enable it to make use of output streams and message
prefix (whoami) from QPDFJob. This removes temporarily duplicated exit
code logic and most access to whoami/std::cout outside of QPDFJob
proper.
2022-01-30 13:11:03 -05:00
Jay Berkenbilt
0910e767ad QPDFJob increment: basic QPDFJob structure
Move most of the methods called from qpdf.cc after argument parsing
into QPDFJob. In this increment, enough QPDFJob API has been added to
handle the branch of QPDFJob::run() that creates output with an
appropriate division between qpdf.cc and QPDFJob.

There are temporary bits of code to enable everything to compile and
pass the test suite, including some duplication and hard-coded values.
2022-01-30 13:11:03 -05:00
Jay Berkenbilt
8c718b7e6f Prefix program name before exception message in qpdf CLI 2022-01-30 13:11:02 -05:00
Jay Berkenbilt
2c29a039cb TODO 2022-01-30 13:11:02 -05:00
Jay Berkenbilt
7d48b446b3 Add raw string and user defined literals to c++11 tests 2022-01-30 13:11:02 -05:00
Jay Berkenbilt
c60b4ea55a Refactor arg parsing in qpdf.cc to use QPDFArgParser 2022-01-30 13:11:02 -05:00
Jay Berkenbilt
52817f0a45 Implement QPDFArgParser based on ArgParser from qpdf.cc 2022-01-30 13:11:02 -05:00
m-holger
8a5ba5686c Add some doc comments for QPDFObjectHandle dictionary methods 2022-01-30 12:09:54 -06:00
m-holger
0f9086e509 Fix doc typos 2022-01-30 12:09:54 -06:00
m-holger
8eca9d8fd9 Fix QPDFObjectHandle::isOrHasName
Ensure isOrHasName returns true if object is an array and the name is
present anywhere in the array.
2022-01-27 09:35:39 -06:00
m-holger
07db3200cb Remove some if statements and simplify some boolean expressions
Use QPDFObjectHandle::isNameAndEquals, isDictionaryOfType and
isStreamOfType.
2022-01-27 07:31:12 -06:00
m-holger
710d2e54f0 Allow testing for subtype without specifying type in isDictionaryOfType etc
Accept empty string as type parameter in
QPDFObjectHandle::isDictionaryOfType and isStreamOfType
to allow for dictionaries with optional type.
2022-01-27 07:31:12 -06:00
Jay Berkenbilt
823926f8bf Add ChangeLog for previous contribution 2022-01-22 09:16:55 -05:00
m-holger
1b1b471ca9 Make a few whitespace fixes from last commit
Commit by ejb@ql.org using m-holger as author so git annotate gives
proper credit for changes.
2022-01-22 09:14:53 -05:00
m-holger
8593b9fdf7 Add new convenience methods QPDFObjectHandle::isNameAndEquals, etc
Add methods isNameAndEquals, isDictionaryOfType, isStreamOfType
2022-01-22 08:10:28 -06:00
Jay Berkenbilt
370710657a Add missing characters from PDF doc encoding (fixes #606) 2022-01-11 15:55:19 -05:00
Jay Berkenbilt
77c31305fe Fix signed/unsigned char warning (fixes #604) 2022-01-11 06:51:31 -05:00
Jay Berkenbilt
0f1ffa1215 Move bash/zsh completion helpers to libtests/arg_parser 2022-01-05 18:13:25 -05:00
Jay Berkenbilt
4782b5904f Move filter-completion.pl to libtests/arg_parser 2022-01-05 18:13:25 -05:00
Jay Berkenbilt
32f7d9989a TODO: ABI note 2022-01-05 18:13:25 -05:00
Jay Berkenbilt
af91b5b584 Add QUtil::file_can_be_opened 2021-12-29 13:41:02 -05:00
Jay Berkenbilt
ac0060ac38 Refactor arg parsing to allow help option with parameter 2021-12-29 13:35:05 -05:00
Jay Berkenbilt
1c420e852c Add maintainer mode to build 2021-12-28 11:01:26 -05:00
Jay Berkenbilt
5b6cf45f83 Cleanup TODO 2021-12-21 17:26:05 -05:00
Jay Berkenbilt
eff911a94f Prepare 10.5.0 release (take 3) 2021-12-21 10:21:23 -05:00
Jay Berkenbilt
bd729026c3 Update READMEs with documentation links 2021-12-21 10:16:26 -05:00
Jay Berkenbilt
3772c34c62 Prepare 10.5.0 release (take 2) 2021-12-21 09:53:13 -05:00
Jay Berkenbilt
36916619f0 Stop adding pre-built documentation to the source distribution 2021-12-21 09:52:41 -05:00
Jay Berkenbilt
e058247bcf Remove 10.5 release announcement since it hasn't been released yet 2021-12-21 07:23:01 -05:00
Jay Berkenbilt
fdf4d96ea2 Update manual pages 2021-12-20 20:07:33 -05:00
Jay Berkenbilt
402d1bcf4d zlib-flate: --version prints qpdf version 2021-12-20 17:25:18 -05:00
Jay Berkenbilt
db7bd6feef Reference latest docs on readthedocs 2021-12-20 17:16:39 -05:00
Jay Berkenbilt
0966b68954 Remove reference to abuild in README 2021-12-20 17:02:03 -05:00
Jay Berkenbilt
04745320d6 Prepare 10.5.0 release 2021-12-20 14:51:46 -05:00
Jay Berkenbilt
d866f48081 Change names of qpdf_object_type_e enumerations
They have to be ot_* rather than qpdf_ot_* for compatibility.

* Different enumerated types are not assignment-compatible in C++, at
  least with strict compiler settings
* While you can do `constexpr ot_xyz = ::qpdf_ot_xyz` in QPDFObject.hh to
  make QPDFObject::ot_xyz work, QPDFObject::object_type_e::ot_xyz will
  only work if the enumerated type names are the same.
2021-12-20 14:51:45 -05:00
Jay Berkenbilt
cf7b2b5700 test_driver: split runtest into separate functions
Too bad about git annotate but it was pretty crazy to have all those
test cases together like that.
2021-12-20 12:40:03 -05:00
Jay Berkenbilt
c1e2b64a3f TODO cleanup 2021-12-20 11:45:20 -05:00
Jay Berkenbilt
038dd2d5ee Remove uninitialized error idea
QPDFObjectHandle gets copied a lot, so let's not add another field.
For performance reasons, QPDFObjectHandle does not indirect through a
smart pointer, so this would also be an ABI change.
2021-12-20 11:34:00 -05:00
Jay Berkenbilt
5d26f29eeb Fix typo 2021-12-20 07:10:08 -05:00
Jay Berkenbilt
765373174f Link to wiki 2021-12-19 17:35:15 -05:00
Jay Berkenbilt
d25eb29610 Update maintainer notes for doc changes 2021-12-19 16:53:37 -05:00
Jay Berkenbilt
04a602aa50 Add download section to docs 2021-12-19 16:52:06 -05:00