aboutsummaryrefslogtreecommitdiffstats
path: root/libqpdf
AgeCommit message (Collapse)Author
2022-04-16Use = default and = delete where possible in classesJay Berkenbilt
2022-04-16Make ABI-breaking changes that don't modify API at allJay Berkenbilt
* Merge overloaded functions by adding default values * Remove non-const methods that are identical to const methods
2022-04-10Fix typo in error messageJay Berkenbilt
2022-04-10Clean up/fix DLL.hJay Berkenbilt
* Change DLL_EXPORT to libqpdf_EXPORTS (internal to the build). The new name is cmake's default, is more conventional, and is less likely to clash with other symbols. * Add QPDF_DLL_PRIVATE for non-Windows * Make logic around when to define QPDF_DLL et al more explicit * Add detailed comments
2022-04-09Remove methods of private classes from ABIJay Berkenbilt
Prior to the cmake conversion, several private classes had methods that were exported into the shared library so they could be tested with libtests. With cmake, we build libtests using an object library, so this is no longer necessary. The methods that are disappearing from the ABI were never exposed through public headers, so no code should be using them. Removal had to wait until the window for ABI-breaking changes was open.
2022-04-09Remove PointerHolder.hh from other than public header filesJay Berkenbilt
Increase to POINTERHOLDER_TRANSITION=4
2022-04-09Replace PointerHolder with std::shared_ptr in library sources onlyJay Berkenbilt
(patrepl and cleanpatch are my own utilities) patrepl s/PointerHolder/std::shared_ptr/g {include,libqpdf}/qpdf/*.hh patrepl s/PointerHolder/std::shared_ptr/g libqpdf/*.cc patrepl s/make_pointer_holder/std::make_shared/g libqpdf/*.cc patrepl s/make_array_pointer_holder/QUtil::make_shared_array/g libqpdf/*.cc patrepl s,qpdf/std::shared_ptr,qpdf/PointerHolder, **/*.cc **/*.hh git restore include/qpdf/PointerHolder.hh cleanpatch ./format-code
2022-04-09Remove accidentally committed fileJay Berkenbilt
2022-04-09Add documentation for code formatting and contribution guidelinesJay Berkenbilt
2022-04-05Update some code manually to get better formatting resultsJay Berkenbilt
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-04Programmatically apply new formatting to codeJay Berkenbilt
Run this: for i in **/*.cc **/*.c **/*.h **/*.hh; do clang-format < $i >| $i.new && mv $i.new $i done
2022-04-04Protect gnutls headers from clang-format rearranging themJay Berkenbilt
2022-04-03Exclude formatting on embedded native cryptoJay Berkenbilt
2022-03-23Put spaces around version constraint in pkg-config (fixes #677)Jay Berkenbilt
Also add a pkg-config runtime test that would have caught the error.
2022-03-19Fix test for whether atomic library is neededJay Berkenbilt
Some platforms need it for atomic<long long> but not for atomic<int>.
2022-03-19Remove "lt-" workaroundsJay Berkenbilt
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-19Update process for ABI testingJay Berkenbilt
2022-03-19Remove old build filesJay Berkenbilt
2022-03-19Add cmake configuration filesJay Berkenbilt
2022-03-19Switch variables to cmake in qpdf-config.hJay Berkenbilt
2022-03-08Rename bits_include.cc to qpdf/bits_functions.hhJay Berkenbilt
It's better to just make it a .hh file to reduce confusion.
2022-02-26TODO: solidify plans for code formattingJay Berkenbilt
2022-02-26Rename bits.icc to bits_include.ccJay Berkenbilt
2022-02-26Shorten coverage case nameJay Berkenbilt
This is so it will fit on one line after a qtest upgrade allows us to split lines.
2022-02-26generate_auto_job: protect generated files from formattingJay Berkenbilt
2022-02-26Move default values to constexprJay Berkenbilt
This was mainly to get comments about defaults out of constructor initializer lists where their fragile when a code formatter is being used.
2022-02-25Allow \/ in a json stringJay Berkenbilt
2022-02-22Use val.at instead of val[]Jay Berkenbilt
2022-02-22Recognize explicit UTF-8 strings (fixes #654)Jay Berkenbilt
2022-02-22Fix autogeneration of job.sumsJay Berkenbilt
2022-02-18Fix logic error with Tf when generating appearances (fixes #655)Jay Berkenbilt
2022-02-16Remove special case for 0xad for 10.6.2.release-qpdf-10.6.2Jay Berkenbilt
2022-02-16Fix asymmetry between newUnicodeString and getUTF8ValueJay Berkenbilt
2022-02-15Silently/transparently recognize UTF-16LE as UTF-16 (fixes #649)Jay Berkenbilt
The PDF spec only allows UTF-16BE, but most readers seem to accept UTF-16LE as well, so now qpdf does too.
2022-02-15Ignore -- at the top level arg parser (fixes #652)Jay Berkenbilt
This was unintended behavior that was added back for backward compatibility. It is intentionally undocumented.
2022-02-15Handle odd PDFDoc codepoints in UTF-8 during transcoding (fixes #650)Jay Berkenbilt
There are codepoints in PDFDoc that are not valid UTF-8 but map to valid UTF-8. We were handling those correctly with bidirectional mapping. However, if those same code points appeared in UTF-8, where they have no meaning, they were left as fixed points when converting to PDFDoc, where they do have meaning. This change recognizes them as errors.
2022-02-11Fix tests for Form XObjectsm-holger
Remove test for type == /XObject in QPDFObjectHandle::isFormXObject as type value is optional (as per spec 8.10.2). Replace code to test for /Form in QPDFJob::shouldRemoveUnreferencedResources with a call to isFormXObject.
2022-02-09Fix one more PDF doc encoding error for 10.6 release (fixes #637)release-qpdf-10.6.0Jay Berkenbilt
2022-02-08Only update output version from files used as inputJay Berkenbilt
If we're opening a PDF file to copy its encryption information or attachments, its version doesn't need to influence the output version.
2022-02-08Preserve input PDF version on pages/split-pages (fixes #610)Jay Berkenbilt
2022-02-08Add QPDF::getVersionAsPDFVersionJay Berkenbilt
2022-02-08Add PDFVersion classJay Berkenbilt
2022-02-08WHITESPACE ONLY -- expand tabs in source codeJay Berkenbilt
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-07Update for clean compile with POINTERHOLDER_TRANSITION=2Jay Berkenbilt
2022-02-07Use make_array_pointer_holderJay Berkenbilt
This will be able to be replaced with QUtil::make_shared_array
2022-02-07Replace PointerHolder arrays with shared_ptr arrays where possibleJay Berkenbilt
Replace PointerHolder arrays wherever it can be done without breaking ABI.
2022-02-07Add QUtil::make_shared_array to help with PointerHolder transitionJay Berkenbilt
2022-02-07Add getBufferSharedPointer() to Pl_Buffer and QPDFWriterJay Berkenbilt
2022-02-06C-API expose QPDFObjectHandle::getKeyIfDictm-holger
2022-02-06Add method QPDFObjectHandle::getKeyIfDictm-holger