Commit d7b909f97d3effc9540c35b0251bdf1c9abf187c
1 parent
b45e3420
Normalize whitespace in ChangeLog
Showing
1 changed file
with
400 additions
and
400 deletions
ChangeLog
| ... | ... | @@ -189,569 +189,569 @@ |
| 189 | 189 | |
| 190 | 190 | 2023-10-15 Jay Berkenbilt <ejb@ql.org> |
| 191 | 191 | |
| 192 | - * 11.6.3: release | |
| 192 | + * 11.6.3: release | |
| 193 | 193 | |
| 194 | 194 | 2023-10-14 Jay Berkenbilt <ejb@ql.org> |
| 195 | 195 | |
| 196 | - * Tweak linearization code to better handle files between 2 GB and | |
| 197 | - 4 GB in size. Fixes #1023. | |
| 196 | + * Tweak linearization code to better handle files between 2 GB and | |
| 197 | + 4 GB in size. Fixes #1023. | |
| 198 | 198 | |
| 199 | - * Fix data loss bug: qpdf could discard a the character after an | |
| 200 | - escaped octal string consisting of less than three digits. For | |
| 201 | - content, this would only happen with QDF or when normalizing | |
| 202 | - content. Outside of content, it could have happened in any binary | |
| 203 | - string, such as /ID, if the encoding software used octal escape | |
| 204 | - strings with less than three digits. This bug was introduced | |
| 205 | - between 10.6.3 and 11.0.0. Fixes #1050. | |
| 199 | + * Fix data loss bug: qpdf could discard a the character after an | |
| 200 | + escaped octal string consisting of less than three digits. For | |
| 201 | + content, this would only happen with QDF or when normalizing | |
| 202 | + content. Outside of content, it could have happened in any binary | |
| 203 | + string, such as /ID, if the encoding software used octal escape | |
| 204 | + strings with less than three digits. This bug was introduced | |
| 205 | + between 10.6.3 and 11.0.0. Fixes #1050. | |
| 206 | 206 | |
| 207 | 207 | 2023-10-07 Jay Berkenbilt <ejb@ql.org> |
| 208 | 208 | |
| 209 | - * 11.6.2: release | |
| 209 | + * 11.6.2: release | |
| 210 | 210 | |
| 211 | - * Bug fix: when piping stream data, don't call finish on failure | |
| 212 | - if the failure was caused by a previous call to finish. Fixes | |
| 213 | - #1042. | |
| 211 | + * Bug fix: when piping stream data, don't call finish on failure | |
| 212 | + if the failure was caused by a previous call to finish. Fixes | |
| 213 | + #1042. | |
| 214 | 214 | |
| 215 | - * Push .idea directory with the beginning of a sharable JetBrains | |
| 216 | - CLion configuration. | |
| 215 | + * Push .idea directory with the beginning of a sharable JetBrains | |
| 216 | + CLion configuration. | |
| 217 | 217 | |
| 218 | 218 | 2023-09-05 Jay Berkenbilt <ejb@ql.org> |
| 219 | 219 | |
| 220 | - * 11.6.1: release | |
| 220 | + * 11.6.1: release | |
| 221 | 221 | |
| 222 | - * Fix a logic error introduced in 11.6.0 in the fix to | |
| 223 | - copyForeignObject. The bug could result in some pages not being | |
| 224 | - copied. | |
| 222 | + * Fix a logic error introduced in 11.6.0 in the fix to | |
| 223 | + copyForeignObject. The bug could result in some pages not being | |
| 224 | + copied. | |
| 225 | 225 | |
| 226 | 226 | 2023-09-03 Jay Berkenbilt <ejb@ql.org> |
| 227 | 227 | |
| 228 | - * 11.6.0: release | |
| 228 | + * 11.6.0: release | |
| 229 | 229 | |
| 230 | - * ascii85 parser: ignore spaces everywhere including between ~ | |
| 231 | - and >. Fixes #973. | |
| 230 | + * ascii85 parser: ignore spaces everywhere including between ~ | |
| 231 | + and >. Fixes #973. | |
| 232 | 232 | |
| 233 | - * Bug fix: with --pages, if one of the external files had warnings | |
| 234 | - but the main file did not, the warning was previously not taken | |
| 235 | - into consideration when determining the exit status. | |
| 233 | + * Bug fix: with --pages, if one of the external files had warnings | |
| 234 | + but the main file did not, the warning was previously not taken | |
| 235 | + into consideration when determining the exit status. | |
| 236 | 236 | |
| 237 | - * Put quotation marks around the command in completion output to | |
| 238 | - better handle spaces in paths. It is not a perfect fix (ideally, | |
| 239 | - full shell-compatible quoting should be used), but it handles more | |
| 240 | - cases than the old code and should handle all reasonable cases of | |
| 241 | - qpdf being in a directory with a space in its name, which is | |
| 242 | - common in Windows. Fixes #1021. | |
| 237 | + * Put quotation marks around the command in completion output to | |
| 238 | + better handle spaces in paths. It is not a perfect fix (ideally, | |
| 239 | + full shell-compatible quoting should be used), but it handles more | |
| 240 | + cases than the old code and should handle all reasonable cases of | |
| 241 | + qpdf being in a directory with a space in its name, which is | |
| 242 | + common in Windows. Fixes #1021. | |
| 243 | 243 | |
| 244 | - * Move check for random number device to runtime instead of | |
| 245 | - compile time. Since, by default, the crypto provider provides | |
| 246 | - random numbers, runtime determination of a random number device is | |
| 247 | - usually not needed. Fixes #1022. | |
| 244 | + * Move check for random number device to runtime instead of | |
| 245 | + compile time. Since, by default, the crypto provider provides | |
| 246 | + random numbers, runtime determination of a random number device is | |
| 247 | + usually not needed. Fixes #1022. | |
| 248 | 248 | |
| 249 | 249 | 2023-09-02 Jay Berkenbilt <ejb@ql.org> |
| 250 | 250 | |
| 251 | - * Maintain links to foreign pages when copying foreign objects. | |
| 252 | - This allows hyperlinks in imported files to work. Fixes #1003. | |
| 251 | + * Maintain links to foreign pages when copying foreign objects. | |
| 252 | + This allows hyperlinks in imported files to work. Fixes #1003. | |
| 253 | 253 | |
| 254 | - * Bug fix: Return a null object if an attempt is made to to copy a | |
| 255 | - foreign /Pages object with copyForeignObject. This corrects a | |
| 256 | - possible crash. Fixes #1010. | |
| 254 | + * Bug fix: Return a null object if an attempt is made to to copy a | |
| 255 | + foreign /Pages object with copyForeignObject. This corrects a | |
| 256 | + possible crash. Fixes #1010. | |
| 257 | 257 | |
| 258 | - * Bug fix: Return a null object if an attempt is made to to copy a | |
| 259 | - foreign /Pages object with copyForeignObject. Fixes #1003. | |
| 258 | + * Bug fix: Return a null object if an attempt is made to to copy a | |
| 259 | + foreign /Pages object with copyForeignObject. Fixes #1003. | |
| 260 | 260 | |
| 261 | - * Add /MediaBox to a page if absent. Thanks M. Holger. | |
| 261 | + * Add /MediaBox to a page if absent. Thanks M. Holger. | |
| 262 | 262 | |
| 263 | - * Use std::vector internally for Pl_Buffer to | |
| 264 | - avoid incompatibility with C++20. Thanks to Zoe Clifford. Fixes #1024. | |
| 263 | + * Use std::vector internally for Pl_Buffer to | |
| 264 | + avoid incompatibility with C++20. Thanks to Zoe Clifford. Fixes #1024. | |
| 265 | 265 | |
| 266 | 266 | 2023-07-09 Jay Berkenbilt <ejb@ql.org> |
| 267 | 267 | |
| 268 | - * 11.5.0: release | |
| 268 | + * 11.5.0: release | |
| 269 | 269 | |
| 270 | - * This release consists entirely of changes made by M. Holger. | |
| 271 | - Mostly this is changes to the private API, performance | |
| 272 | - enhancements, code cleanup, and reformatting to 100 columns | |
| 273 | - instead of 80. For qpdf development, we are starting to use | |
| 274 | - JetBrains CLion, so a lot of the changes are moving us toward a | |
| 275 | - cleaner development experience in that environment. | |
| 270 | + * This release consists entirely of changes made by M. Holger. | |
| 271 | + Mostly this is changes to the private API, performance | |
| 272 | + enhancements, code cleanup, and reformatting to 100 columns | |
| 273 | + instead of 80. For qpdf development, we are starting to use | |
| 274 | + JetBrains CLion, so a lot of the changes are moving us toward a | |
| 275 | + cleaner development experience in that environment. | |
| 276 | 276 | |
| 277 | 277 | 2023-06-15 Jay Berkenbilt <ejb@ql.org> |
| 278 | 278 | |
| 279 | - * Bug fix: when a the same page is copied multiple times, copy | |
| 280 | - the annotations rather than having multiple pages share an | |
| 281 | - annotation object. Thanks to M. Holger for the fix. Fixes #600. | |
| 279 | + * Bug fix: when a the same page is copied multiple times, copy | |
| 280 | + the annotations rather than having multiple pages share an | |
| 281 | + annotation object. Thanks to M. Holger for the fix. Fixes #600. | |
| 282 | 282 | |
| 283 | 283 | 2023-06-14 Jay Berkenbilt <ejb@ql.org> |
| 284 | 284 | |
| 285 | - * Add "FUTURE" build option for enabling experimental APIs. Do not | |
| 286 | - package qpdf built with the FUTURE option as there are no binary | |
| 287 | - compatibility or even source compatibility guarantees. The option | |
| 288 | - is intended for developers who want to ensure that future | |
| 289 | - potentially breaking changes are compatible with their code or | |
| 290 | - provide feedback on upcoming changes. At present, the only feature | |
| 291 | - enabled by FUTURE is a move constructor for QPDFObjectHandle. | |
| 292 | - While this shouldn't break any code, it would change details about | |
| 293 | - how many copies of a specific QPDFObjectHandle were in existence, | |
| 294 | - so it could potentially break code that was relying on internal | |
| 295 | - shared pointer reference counts. Thanks to M. Holger for the idea | |
| 296 | - and contribution. | |
| 285 | + * Add "FUTURE" build option for enabling experimental APIs. Do not | |
| 286 | + package qpdf built with the FUTURE option as there are no binary | |
| 287 | + compatibility or even source compatibility guarantees. The option | |
| 288 | + is intended for developers who want to ensure that future | |
| 289 | + potentially breaking changes are compatible with their code or | |
| 290 | + provide feedback on upcoming changes. At present, the only feature | |
| 291 | + enabled by FUTURE is a move constructor for QPDFObjectHandle. | |
| 292 | + While this shouldn't break any code, it would change details about | |
| 293 | + how many copies of a specific QPDFObjectHandle were in existence, | |
| 294 | + so it could potentially break code that was relying on internal | |
| 295 | + shared pointer reference counts. Thanks to M. Holger for the idea | |
| 296 | + and contribution. | |
| 297 | 297 | |
| 298 | 298 | 2023-05-25 Jay Berkenbilt <ejb@ql.org> |
| 299 | 299 | |
| 300 | - * Add new method Buffer::copy and deprecate Buffer copy | |
| 301 | - constructor and assignment operator. Buffer copy operations are | |
| 302 | - expensive as they always involve copying the buffer content. Use | |
| 303 | - "buffer2 = buffer1.copy();" or "Buffer buffer2{buffer1.copy()};" | |
| 304 | - to make it explicit that copying is intended. This change was | |
| 305 | - contributed by M. Holger. | |
| 300 | + * Add new method Buffer::copy and deprecate Buffer copy | |
| 301 | + constructor and assignment operator. Buffer copy operations are | |
| 302 | + expensive as they always involve copying the buffer content. Use | |
| 303 | + "buffer2 = buffer1.copy();" or "Buffer buffer2{buffer1.copy()};" | |
| 304 | + to make it explicit that copying is intended. This change was | |
| 305 | + contributed by M. Holger. | |
| 306 | 306 | |
| 307 | 307 | 2023-05-21 Jay Berkenbilt <ejb@ql.org> |
| 308 | 308 | |
| 309 | - * 11.4.0: release | |
| 309 | + * 11.4.0: release | |
| 310 | 310 | |
| 311 | 311 | 2023-05-20 Jay Berkenbilt <ejb@ql.org> |
| 312 | 312 | |
| 313 | - * From M. Holger: add QPDF::newReserved as a better alternative to | |
| 314 | - QPDFObjectHandle::newReserved. The operation of creating a new | |
| 315 | - reserved object fits better in the QPDF API. The old call just | |
| 316 | - delegates to the new one. | |
| 313 | + * From M. Holger: add QPDF::newReserved as a better alternative to | |
| 314 | + QPDFObjectHandle::newReserved. The operation of creating a new | |
| 315 | + reserved object fits better in the QPDF API. The old call just | |
| 316 | + delegates to the new one. | |
| 317 | 317 | |
| 318 | 318 | 2023-05-13 Jay Berkenbilt <ejb@ql.org> |
| 319 | 319 | |
| 320 | - * When an annotation dictionary's appearance dictionary (`/AP`) | |
| 321 | - has a key that is a stream, disregard `/AS` (which is supposed to | |
| 322 | - point to a subkey). This enables qpdf to not ignore annotations | |
| 323 | - that have incorrect values for `/AS` when the appearance stream is | |
| 324 | - directly in the `/AP` dictionary instead of in a subkey. Fixes | |
| 325 | - #949. | |
| 320 | + * When an annotation dictionary's appearance dictionary (`/AP`) | |
| 321 | + has a key that is a stream, disregard `/AS` (which is supposed to | |
| 322 | + point to a subkey). This enables qpdf to not ignore annotations | |
| 323 | + that have incorrect values for `/AS` when the appearance stream is | |
| 324 | + directly in the `/AP` dictionary instead of in a subkey. Fixes | |
| 325 | + #949. | |
| 326 | 326 | |
| 327 | 327 | 2023-04-02 Jay Berkenbilt <ejb@ql.org> |
| 328 | - * Allow QPDFJob's workflow to be split into a reading phase and a | |
| 329 | - writing phase to allow the caller to operate on the QPDF object | |
| 330 | - before it is written. This adds methods QPDFJob::createQPDF and | |
| 331 | - QPDFJob::writeQPDF and corresponding C API functions | |
| 332 | - qpdfjob_create_qpdf and qpdfjob_write_qpdf. Thanks to M. Holger | |
| 333 | - for the contribution. | |
| 328 | + * Allow QPDFJob's workflow to be split into a reading phase and a | |
| 329 | + writing phase to allow the caller to operate on the QPDF object | |
| 330 | + before it is written. This adds methods QPDFJob::createQPDF and | |
| 331 | + QPDFJob::writeQPDF and corresponding C API functions | |
| 332 | + qpdfjob_create_qpdf and qpdfjob_write_qpdf. Thanks to M. Holger | |
| 333 | + for the contribution. | |
| 334 | 334 | |
| 335 | 335 | 2023-04-01 Jay Berkenbilt <ejb@ql.org> |
| 336 | - * From M. Holger: throw a logic error if an uninitialized or | |
| 337 | - foreign QPDFObjectHandle is added to an array. | |
| 336 | + * From M. Holger: throw a logic error if an uninitialized or | |
| 337 | + foreign QPDFObjectHandle is added to an array. | |
| 338 | 338 | |
| 339 | 339 | 2023-03-18 Jay Berkenbilt <ejb@ql.org> |
| 340 | 340 | |
| 341 | - * Enhance --optimize-images to support images nested inside of | |
| 342 | - form XObjects. Thanks to Connor Osborne (github user cdosborn) for | |
| 343 | - the contribution. Fixes #923. | |
| 341 | + * Enhance --optimize-images to support images nested inside of | |
| 342 | + form XObjects. Thanks to Connor Osborne (github user cdosborn) for | |
| 343 | + the contribution. Fixes #923. | |
| 344 | 344 | |
| 345 | 345 | 2023-02-25 Jay Berkenbilt <ejb@ql.org> |
| 346 | 346 | |
| 347 | - * 11.3.0: release | |
| 347 | + * 11.3.0: release | |
| 348 | 348 | |
| 349 | - * When performing overlay or underlay operations, convert the | |
| 350 | - original page to a form XObject instead of simply isolating its | |
| 351 | - contents with q/Q operators. This prevents unbalanced q/Q | |
| 352 | - operators in any of the original pages from messing up the | |
| 353 | - graphics state of anything that is overlaid on top of it. Fixes | |
| 354 | - #904. | |
| 349 | + * When performing overlay or underlay operations, convert the | |
| 350 | + original page to a form XObject instead of simply isolating its | |
| 351 | + contents with q/Q operators. This prevents unbalanced q/Q | |
| 352 | + operators in any of the original pages from messing up the | |
| 353 | + graphics state of anything that is overlaid on top of it. Fixes | |
| 354 | + #904. | |
| 355 | 355 | |
| 356 | 356 | 2023-02-18 Jay Berkenbilt <ejb@ql.org> |
| 357 | 357 | |
| 358 | - * Treat all linearization errors and warnings as warnings, and | |
| 359 | - issue them through the normal warning system using the new error | |
| 360 | - code qpdf_e_linearization. That means that --no-warn will suppress | |
| 361 | - them, and the file name is included in the warning. Fixes #851. | |
| 358 | + * Treat all linearization errors and warnings as warnings, and | |
| 359 | + issue them through the normal warning system using the new error | |
| 360 | + code qpdf_e_linearization. That means that --no-warn will suppress | |
| 361 | + them, and the file name is included in the warning. Fixes #851. | |
| 362 | 362 | |
| 363 | 363 | 2023-01-28 Jay Berkenbilt <ejb@ql.org> |
| 364 | 364 | |
| 365 | - * New option --remove-restrictions removes security restrictions | |
| 366 | - from digitally signed files. Fixes #833. | |
| 365 | + * New option --remove-restrictions removes security restrictions | |
| 366 | + from digitally signed files. Fixes #833. | |
| 367 | 367 | |
| 368 | 368 | 2023-01-09 Jay Berkenbilt <ejb@ql.org> |
| 369 | 369 | |
| 370 | - * Bug fix: flatten annotations should handle a page with no | |
| 371 | - /Resources key. Fixes #827. | |
| 370 | + * Bug fix: flatten annotations should handle a page with no | |
| 371 | + /Resources key. Fixes #827. | |
| 372 | 372 | |
| 373 | 373 | 2022-11-20 Jay Berkenbilt <ejb@ql.org> |
| 374 | 374 | |
| 375 | - * 11.2.0: release | |
| 375 | + * 11.2.0: release | |
| 376 | 376 | |
| 377 | - * Add a few convenience methods to QPDFTokenizer::Token for | |
| 378 | - checking token types. thanks to M. Holger for the contribution. | |
| 377 | + * Add a few convenience methods to QPDFTokenizer::Token for | |
| 378 | + checking token types. thanks to M. Holger for the contribution. | |
| 379 | 379 | |
| 380 | - * Add stream creation methods to the QPDF class as a better | |
| 381 | - alternative to the ones in the QPDFObjectHandle class. Thanks to | |
| 382 | - M. Holger for the contribution. | |
| 380 | + * Add stream creation methods to the QPDF class as a better | |
| 381 | + alternative to the ones in the QPDFObjectHandle class. Thanks to | |
| 382 | + M. Holger for the contribution. | |
| 383 | 383 | |
| 384 | 384 | 2022-11-19 Jay Berkenbilt <ejb@ql.org> |
| 385 | 385 | |
| 386 | - * Bug fix: handle special case of an earlier xref stream object's | |
| 387 | - object number being reused by an update made by appending the | |
| 388 | - file. Fixes #809. | |
| 386 | + * Bug fix: handle special case of an earlier xref stream object's | |
| 387 | + object number being reused by an update made by appending the | |
| 388 | + file. Fixes #809. | |
| 389 | 389 | |
| 390 | 390 | 2022-10-08 Jay Berkenbilt <ejb@ql.org> |
| 391 | 391 | |
| 392 | - * Fix major performance bug with the openssl crypto provider when | |
| 393 | - using OpenSSL 3. The legacy loader and rc4 algorithm was being | |
| 394 | - loaded with every call to the crypto provider instead of once in | |
| 395 | - the life of the program. Fixes #798. | |
| 392 | + * Fix major performance bug with the openssl crypto provider when | |
| 393 | + using OpenSSL 3. The legacy loader and rc4 algorithm was being | |
| 394 | + loaded with every call to the crypto provider instead of once in | |
| 395 | + the life of the program. Fixes #798. | |
| 396 | 396 | |
| 397 | - * performance_check: add --test option to limit which tests are | |
| 398 | - run. | |
| 397 | + * performance_check: add --test option to limit which tests are | |
| 398 | + run. | |
| 399 | 399 | |
| 400 | 400 | 2022-10-06 Jay Berkenbilt <ejb@ql.org> |
| 401 | 401 | |
| 402 | - * Change minimum required C++ version from C++-14 to C++-17. | |
| 402 | + * Change minimum required C++ version from C++-14 to C++-17. | |
| 403 | 403 | |
| 404 | - * Fix another symbol export issue with the MinGW build. | |
| 404 | + * Fix another symbol export issue with the MinGW build. | |
| 405 | 405 | |
| 406 | 406 | 2022-10-01 Jay Berkenbilt <ejb@ql.org> |
| 407 | 407 | |
| 408 | - * 11.1.1: release | |
| 408 | + * 11.1.1: release | |
| 409 | 409 | |
| 410 | 410 | 2022-09-27 Jay Berkenbilt <ejb@ql.org> |
| 411 | 411 | |
| 412 | - * Bug fix: avoid having the AppImage discard the first argument | |
| 413 | - when renamed to one of the embedded executables. Fixes #789. | |
| 412 | + * Bug fix: avoid having the AppImage discard the first argument | |
| 413 | + when renamed to one of the embedded executables. Fixes #789. | |
| 414 | 414 | |
| 415 | - * Add AppImage-specific tests to CI. These test different | |
| 416 | - invocation styles and loading of the proper shared library. | |
| 415 | + * Add AppImage-specific tests to CI. These test different | |
| 416 | + invocation styles and loading of the proper shared library. | |
| 417 | 417 | |
| 418 | 418 | 2022-09-26 Jay Berkenbilt <ejb@ql.org> |
| 419 | 419 | |
| 420 | - * Bug fix: avoid using PDF Doc encoding for strings whose PDF Doc | |
| 421 | - encoding representation starts with UTF-16 or UTF-8 markers. Fixes | |
| 422 | - #778. | |
| 420 | + * Bug fix: avoid using PDF Doc encoding for strings whose PDF Doc | |
| 421 | + encoding representation starts with UTF-16 or UTF-8 markers. Fixes | |
| 422 | + #778. | |
| 423 | 423 | |
| 424 | 424 | 2022-09-27 Jay Berkenbilt <ejb@ql.org> |
| 425 | 425 | |
| 426 | - * Add tests to CI for char being unsigned by default. | |
| 426 | + * Add tests to CI for char being unsigned by default. | |
| 427 | 427 | |
| 428 | 428 | 2022-09-14 Jay Berkenbilt <ejb@ql.org> |
| 429 | 429 | |
| 430 | - * 11.1.0: release | |
| 430 | + * 11.1.0: release | |
| 431 | 431 | |
| 432 | - * Add notes to documentation clarifying that installing the dev | |
| 433 | - component usually requires the lib component to also be installed. | |
| 432 | + * Add notes to documentation clarifying that installing the dev | |
| 433 | + component usually requires the lib component to also be installed. | |
| 434 | 434 | |
| 435 | - * Set CMAKE_INCLUDE_DIRECTORIES_PROJECT_BEFORE ON in cmake to | |
| 436 | - (hopefully) solve the problem of older installed qpdf headers | |
| 437 | - interfering with building qpdf from source. Fixes #763. | |
| 435 | + * Set CMAKE_INCLUDE_DIRECTORIES_PROJECT_BEFORE ON in cmake to | |
| 436 | + (hopefully) solve the problem of older installed qpdf headers | |
| 437 | + interfering with building qpdf from source. Fixes #763. | |
| 438 | 438 | |
| 439 | 439 | 2022-09-12 Jay Berkenbilt <ejb@ql.org> |
| 440 | 440 | |
| 441 | - * Add some missing DLL exports that only affect the Windows build. | |
| 441 | + * Add some missing DLL exports that only affect the Windows build. | |
| 442 | 442 | |
| 443 | - * Remove compile-time test for LL_FMT. It's unlikely that any | |
| 444 | - compiler new enough to build qpdf still doesn't support %lld. | |
| 443 | + * Remove compile-time test for LL_FMT. It's unlikely that any | |
| 444 | + compiler new enough to build qpdf still doesn't support %lld. | |
| 445 | 445 | |
| 446 | 446 | 2022-09-10 Jay Berkenbilt <ejb@ql.org> |
| 447 | 447 | |
| 448 | - * 11.0.0: release | |
| 448 | + * 11.0.0: release | |
| 449 | 449 | |
| 450 | 450 | 2022-09-09 Jay Berkenbilt <ejb@ql.org> |
| 451 | 451 | |
| 452 | - * Add QPDFObjectHandle::isSameObjectAs to test whether two | |
| 453 | - QPDFObjectHandle objects point to the same underlying object. | |
| 452 | + * Add QPDFObjectHandle::isSameObjectAs to test whether two | |
| 453 | + QPDFObjectHandle objects point to the same underlying object. | |
| 454 | 454 | |
| 455 | - * Expose ability to create custom loggers and to get and set the | |
| 456 | - logger for QPDF and QPDFJob through the C API. | |
| 455 | + * Expose ability to create custom loggers and to get and set the | |
| 456 | + logger for QPDF and QPDFJob through the C API. | |
| 457 | 457 | |
| 458 | 458 | 2022-09-08 Jay Berkenbilt <ejb@ql.org> |
| 459 | 459 | |
| 460 | - * Added new functions to the C API to support qpdf JSON: | |
| 461 | - qpdf_create_from_json_file, qpdf_create_from_json_data, | |
| 462 | - qpdf_update_from_json_file, qpdf_update_from_json_data, and | |
| 463 | - qpdf_write_json. Examples can be found in qpdf-ctest.c (in the | |
| 464 | - source tree), tests 42 through 47. | |
| 460 | + * Added new functions to the C API to support qpdf JSON: | |
| 461 | + qpdf_create_from_json_file, qpdf_create_from_json_data, | |
| 462 | + qpdf_update_from_json_file, qpdf_update_from_json_data, and | |
| 463 | + qpdf_write_json. Examples can be found in qpdf-ctest.c (in the | |
| 464 | + source tree), tests 42 through 47. | |
| 465 | 465 | |
| 466 | - * Add QPDFObjectHandle::isDestroyed() to test whether an indirect | |
| 467 | - object was from a QPDF that has been destroyed. | |
| 466 | + * Add QPDFObjectHandle::isDestroyed() to test whether an indirect | |
| 467 | + object was from a QPDF that has been destroyed. | |
| 468 | 468 | |
| 469 | 469 | 2022-09-07 Jay Berkenbilt <ejb@ql.org> |
| 470 | 470 | |
| 471 | - * Add QPDFObjectHandle::getQPDF(), which returns a reference, as | |
| 472 | - an alternative to QPDFObjectHandle::getOwningQPDF(). | |
| 471 | + * Add QPDFObjectHandle::getQPDF(), which returns a reference, as | |
| 472 | + an alternative to QPDFObjectHandle::getOwningQPDF(). | |
| 473 | 473 | |
| 474 | 474 | 2022-09-06 Jay Berkenbilt <ejb@ql.org> |
| 475 | 475 | |
| 476 | - * For all bounding box methods in QPDFPageObjectHelper other than | |
| 477 | - MediaBox, add a parameter `copy_if_fallback`, and add comments | |
| 478 | - explaining in depth exactly what copy_if_shared and | |
| 479 | - copy_if_fallback mean. Fixes #664. | |
| 476 | + * For all bounding box methods in QPDFPageObjectHelper other than | |
| 477 | + MediaBox, add a parameter `copy_if_fallback`, and add comments | |
| 478 | + explaining in depth exactly what copy_if_shared and | |
| 479 | + copy_if_fallback mean. Fixes #664. | |
| 480 | 480 | |
| 481 | - * Add new methods getArtBox and getBleedBox to | |
| 482 | - QPDFPageObjectHelper, completing the set of bounding box methods. | |
| 481 | + * Add new methods getArtBox and getBleedBox to | |
| 482 | + QPDFPageObjectHelper, completing the set of bounding box methods. | |
| 483 | 483 | |
| 484 | - * The --show-encryption option now works even if a correct | |
| 485 | - password is not supplied. If you were using --show-encryption to | |
| 486 | - test whether you have the right password, use --requires-password | |
| 487 | - instead. Fixes #598. | |
| 484 | + * The --show-encryption option now works even if a correct | |
| 485 | + password is not supplied. If you were using --show-encryption to | |
| 486 | + test whether you have the right password, use --requires-password | |
| 487 | + instead. Fixes #598. | |
| 488 | 488 | |
| 489 | 489 | 2022-09-05 Jay Berkenbilt <ejb@ql.org> |
| 490 | 490 | |
| 491 | - * Add a move constructor to Buffer, making it possible to move | |
| 492 | - rather than copy the internal buffer. Thanks to jbarlow83 for the | |
| 493 | - contribution. | |
| 491 | + * Add a move constructor to Buffer, making it possible to move | |
| 492 | + rather than copy the internal buffer. Thanks to jbarlow83 for the | |
| 493 | + contribution. | |
| 494 | 494 | |
| 495 | 495 | 2022-09-02 Jay Berkenbilt <ejb@ql.org> |
| 496 | 496 | |
| 497 | - * Add new QPDF::create() factory method that returns | |
| 498 | - std::shared_ptr<QPDF>. | |
| 497 | + * Add new QPDF::create() factory method that returns | |
| 498 | + std::shared_ptr<QPDF>. | |
| 499 | 499 | |
| 500 | - * Prevent copying/assigning to QPDF objects in the API. It has | |
| 501 | - never been safe to do this, but the API wasn't preventing it. | |
| 500 | + * Prevent copying/assigning to QPDF objects in the API. It has | |
| 501 | + never been safe to do this, but the API wasn't preventing it. | |
| 502 | 502 | |
| 503 | 503 | 2022-09-01 Jay Berkenbilt <ejb@ql.org> |
| 504 | 504 | |
| 505 | - * Remove QPDFObject.hh from include/qpdf. The only reason to | |
| 506 | - include was to get QPDFObject::object_type_e. Instead, include | |
| 507 | - qpdf/Constants.h, and change `QPDFObject::ot_` to `::ot_`. | |
| 505 | + * Remove QPDFObject.hh from include/qpdf. The only reason to | |
| 506 | + include was to get QPDFObject::object_type_e. Instead, include | |
| 507 | + qpdf/Constants.h, and change `QPDFObject::ot_` to `::ot_`. | |
| 508 | 508 | |
| 509 | - * More optimizations and cleanup from m-holger (#726, #730) | |
| 510 | - including major refactor of QPDF's internal representations of | |
| 511 | - objects. In addition to a large performance improvement, this also | |
| 512 | - made it possible for QPDFObjectHandle::getOwningQPDF() to return a | |
| 513 | - null pointer if the owning QPDF had been destroyed. (A more | |
| 514 | - complete solution to this problem will be introduced for qpdf 12.) | |
| 515 | - This work also paves the way for a future alternative to | |
| 516 | - QPDFObjectHandle that is more idiomatic C++ and has greater type | |
| 517 | - safety. | |
| 509 | + * More optimizations and cleanup from m-holger (#726, #730) | |
| 510 | + including major refactor of QPDF's internal representations of | |
| 511 | + objects. In addition to a large performance improvement, this also | |
| 512 | + made it possible for QPDFObjectHandle::getOwningQPDF() to return a | |
| 513 | + null pointer if the owning QPDF had been destroyed. (A more | |
| 514 | + complete solution to this problem will be introduced for qpdf 12.) | |
| 515 | + This work also paves the way for a future alternative to | |
| 516 | + QPDFObjectHandle that is more idiomatic C++ and has greater type | |
| 517 | + safety. | |
| 518 | 518 | |
| 519 | 519 | 2022-08-31 Jay Berkenbilt <ejb@ql.org> |
| 520 | 520 | |
| 521 | - * From m-holger (#729): refactor QPDF's parser into a new | |
| 522 | - QPDFParser class, cleaning the code, significantly improving | |
| 523 | - performance. | |
| 521 | + * From m-holger (#729): refactor QPDF's parser into a new | |
| 522 | + QPDFParser class, cleaning the code, significantly improving | |
| 523 | + performance. | |
| 524 | 524 | |
| 525 | 525 | 2022-08-27 Jay Berkenbilt <ejb@ql.org> |
| 526 | 526 | |
| 527 | - * From m-holger: major refactoring of QPDFTokenizer to improve | |
| 528 | - readability and to optimize performance. This also included some | |
| 529 | - optimizations to some InputSource classes. Thanks for this | |
| 530 | - excellent contribution. Fixes #749, #442. | |
| 527 | + * From m-holger: major refactoring of QPDFTokenizer to improve | |
| 528 | + readability and to optimize performance. This also included some | |
| 529 | + optimizations to some InputSource classes. Thanks for this | |
| 530 | + excellent contribution. Fixes #749, #442. | |
| 531 | 531 | |
| 532 | 532 | 2022-08-07 Jay Berkenbilt <ejb@ql.org> |
| 533 | 533 | |
| 534 | - * Add new build configuration option ENABLE_QTC, which is off by | |
| 535 | - default when not running in MAINTAINER_MODE. When this is off, | |
| 536 | - QTC coverage calls sprinkled throughout the qpdf source code are | |
| 537 | - compiled out for increased performance. See "Build Options" in the | |
| 538 | - manual for a discussion. Fixes #714. | |
| 534 | + * Add new build configuration option ENABLE_QTC, which is off by | |
| 535 | + default when not running in MAINTAINER_MODE. When this is off, | |
| 536 | + QTC coverage calls sprinkled throughout the qpdf source code are | |
| 537 | + compiled out for increased performance. See "Build Options" in the | |
| 538 | + manual for a discussion. Fixes #714. | |
| 539 | 539 | |
| 540 | 540 | 2022-08-06 Jay Berkenbilt <ejb@ql.org> |
| 541 | 541 | |
| 542 | - * Added by m-holger: QPDF::getObject() method as a simpler form of | |
| 543 | - getObjectByID or getObjectByObjGen. The older methods are being | |
| 544 | - retained for compatibility and are not deprecated. | |
| 542 | + * Added by m-holger: QPDF::getObject() method as a simpler form of | |
| 543 | + getObjectByID or getObjectByObjGen. The older methods are being | |
| 544 | + retained for compatibility and are not deprecated. | |
| 545 | 545 | |
| 546 | 546 | 2022-07-24 Jay Berkenbilt <ejb@ql.org> |
| 547 | 547 | |
| 548 | - * include/qpdf/JSON.hh: Schema validation: allow a single item to | |
| 549 | - appear anywhere that the schema has an array of a single item. | |
| 550 | - This makes it possible to change an element of the schema from an | |
| 551 | - item to an array to allow the data to accept an array where a | |
| 552 | - single value was previously required. This change is needed to | |
| 553 | - allow QPDFJob JSON to start accepting multiple items where a | |
| 554 | - single item used to be expected without breaking backward | |
| 555 | - compatibility. Without this change, the earlier fix to | |
| 556 | - removeAttachment would be a breaking change. Also allow the schema | |
| 557 | - to contain a multi-element array, which means that the output has | |
| 558 | - to have an array of the same length in the corresponding location, | |
| 559 | - and each element is validated against the corresponding schema | |
| 560 | - element. | |
| 561 | - | |
| 562 | - * QPDFObjectHandle: for the methods insertItem, appendItem, | |
| 563 | - eraseItem, replaceKey, and removeKey, add a corresponding | |
| 564 | - "AndGetNew" and/or "AndGetOld" methods. The ones that end with | |
| 565 | - "AndGetNew" return the newly added item. The ones that end with | |
| 566 | - "AndGetOld" return the old value. The AndGetNew methods make it | |
| 567 | - possible to create a new object, add it to an array or dictionary, | |
| 568 | - and get a handle to it all in one line. The AndGetOld methods make | |
| 569 | - it easier to retrieve an old value when removing or replacing it. | |
| 570 | - | |
| 571 | - * Thanks to m-holger for doing significant cleanup of private APIs | |
| 572 | - and internals around QPDFObjGen and for significantly improving | |
| 573 | - the performance of QPDFObjGen -- See #731. This includes a few | |
| 574 | - user-visible changes: | |
| 575 | - - Addition of QPDFObjectHandle::StreamDataProvider::provideStreamData | |
| 576 | - overloads that take QPDFObjGen | |
| 577 | - - Addition of an optional argument to QPDFObjGen::unparse allowing | |
| 578 | - specification of a separator character, with the default | |
| 579 | - resulting in the old behavior | |
| 580 | - Examples have been updated to use improved APIs. The old | |
| 581 | - provideStreamData overloads will continue to be supported, so | |
| 582 | - updating older code to use the new interfaces is entirely at the | |
| 583 | - programmer's discretion. | |
| 548 | + * include/qpdf/JSON.hh: Schema validation: allow a single item to | |
| 549 | + appear anywhere that the schema has an array of a single item. | |
| 550 | + This makes it possible to change an element of the schema from an | |
| 551 | + item to an array to allow the data to accept an array where a | |
| 552 | + single value was previously required. This change is needed to | |
| 553 | + allow QPDFJob JSON to start accepting multiple items where a | |
| 554 | + single item used to be expected without breaking backward | |
| 555 | + compatibility. Without this change, the earlier fix to | |
| 556 | + removeAttachment would be a breaking change. Also allow the schema | |
| 557 | + to contain a multi-element array, which means that the output has | |
| 558 | + to have an array of the same length in the corresponding location, | |
| 559 | + and each element is validated against the corresponding schema | |
| 560 | + element. | |
| 561 | + | |
| 562 | + * QPDFObjectHandle: for the methods insertItem, appendItem, | |
| 563 | + eraseItem, replaceKey, and removeKey, add a corresponding | |
| 564 | + "AndGetNew" and/or "AndGetOld" methods. The ones that end with | |
| 565 | + "AndGetNew" return the newly added item. The ones that end with | |
| 566 | + "AndGetOld" return the old value. The AndGetNew methods make it | |
| 567 | + possible to create a new object, add it to an array or dictionary, | |
| 568 | + and get a handle to it all in one line. The AndGetOld methods make | |
| 569 | + it easier to retrieve an old value when removing or replacing it. | |
| 570 | + | |
| 571 | + * Thanks to m-holger for doing significant cleanup of private APIs | |
| 572 | + and internals around QPDFObjGen and for significantly improving | |
| 573 | + the performance of QPDFObjGen -- See #731. This includes a few | |
| 574 | + user-visible changes: | |
| 575 | + - Addition of QPDFObjectHandle::StreamDataProvider::provideStreamData | |
| 576 | + overloads that take QPDFObjGen | |
| 577 | + - Addition of an optional argument to QPDFObjGen::unparse allowing | |
| 578 | + specification of a separator character, with the default | |
| 579 | + resulting in the old behavior | |
| 580 | + Examples have been updated to use improved APIs. The old | |
| 581 | + provideStreamData overloads will continue to be supported, so | |
| 582 | + updating older code to use the new interfaces is entirely at the | |
| 583 | + programmer's discretion. | |
| 584 | 584 | |
| 585 | 585 | 2022-06-25 Jay Berkenbilt <ejb@ql.org> |
| 586 | 586 | |
| 587 | - * Add tracking methods QPDF::everCalledGetAllPages() and | |
| 588 | - QPDF::everPushedInheritedAttributesToPages(). Since those methods | |
| 589 | - may have the side effect of creating new objects and replace | |
| 590 | - objects in various places in the pages tree, it's useful to be | |
| 591 | - able to find out whether they've ever been called. | |
| 587 | + * Add tracking methods QPDF::everCalledGetAllPages() and | |
| 588 | + QPDF::everPushedInheritedAttributesToPages(). Since those methods | |
| 589 | + may have the side effect of creating new objects and replace | |
| 590 | + objects in various places in the pages tree, it's useful to be | |
| 591 | + able to find out whether they've ever been called. | |
| 592 | 592 | |
| 593 | 593 | 2022-06-18 Jay Berkenbilt <ejb@ql.org> |
| 594 | 594 | |
| 595 | - * Add QPDFJob::registerProgressReporter, making it possible to | |
| 596 | - override the progress reporter that is used when --progress (or | |
| 597 | - the equivalent) is configured with QPDFJob. This is | |
| 598 | - qpdfjob_register_progress_reporter in the C API. | |
| 595 | + * Add QPDFJob::registerProgressReporter, making it possible to | |
| 596 | + override the progress reporter that is used when --progress (or | |
| 597 | + the equivalent) is configured with QPDFJob. This is | |
| 598 | + qpdfjob_register_progress_reporter in the C API. | |
| 599 | 599 | |
| 600 | - * Add examples that show how to capture QPDFJob's output by | |
| 601 | - configuring the default logger (qpdfjob-save-attachment.cc, | |
| 602 | - qpdfjob-c-save-attachment.c). Fixes #691. | |
| 600 | + * Add examples that show how to capture QPDFJob's output by | |
| 601 | + configuring the default logger (qpdfjob-save-attachment.cc, | |
| 602 | + qpdfjob-c-save-attachment.c). Fixes #691. | |
| 603 | 603 | |
| 604 | - * Add C API for QPDFLogger -- see qpdflogger-c.h | |
| 604 | + * Add C API for QPDFLogger -- see qpdflogger-c.h | |
| 605 | 605 | |
| 606 | - * Add additional qpdfjob C API functions take a handle. | |
| 606 | + * Add additional qpdfjob C API functions take a handle. | |
| 607 | 607 | |
| 608 | - * Add qpdf_exit_code_e to Constants.h so that exit codes from | |
| 609 | - QPDFJob are accessible to the C API. | |
| 608 | + * Add qpdf_exit_code_e to Constants.h so that exit codes from | |
| 609 | + QPDFJob are accessible to the C API. | |
| 610 | 610 | |
| 611 | - * When --progress or --verbose is combined with writing to | |
| 612 | - standard output, progress reporting and verbose messages go to | |
| 613 | - standard error. Previously it was disabled in this case. | |
| 611 | + * When --progress or --verbose is combined with writing to | |
| 612 | + standard output, progress reporting and verbose messages go to | |
| 613 | + standard error. Previously it was disabled in this case. | |
| 614 | 614 | |
| 615 | 615 | 2022-06-05 Jay Berkenbilt <ejb@ql.org> |
| 616 | 616 | |
| 617 | - * QPDFJob: API breaking change: QPDFJob::doIfVerbose passes a | |
| 618 | - Pipeline& rather than a std::ostream& to the the callback | |
| 619 | - function. | |
| 617 | + * QPDFJob: API breaking change: QPDFJob::doIfVerbose passes a | |
| 618 | + Pipeline& rather than a std::ostream& to the the callback | |
| 619 | + function. | |
| 620 | 620 | |
| 621 | - * Add integer types to pipeline's operator<<: short, int, long, | |
| 622 | - long long, unsigned short, unsigned int, unsigned long, unsigned | |
| 623 | - long long. | |
| 621 | + * Add integer types to pipeline's operator<<: short, int, long, | |
| 622 | + long long, unsigned short, unsigned int, unsigned long, unsigned | |
| 623 | + long long. | |
| 624 | 624 | |
| 625 | 625 | 2022-05-30 Jay Berkenbilt <ejb@ql.org> |
| 626 | 626 | |
| 627 | - * qpdf JSON is now at version 2. New command-line arguments: | |
| 628 | - --json-output, --json-input, --update-from-json. New methods | |
| 629 | - QPDF::writeJSON, QPDF::createFromJSON, QPDF::updateFromJSON. For | |
| 630 | - details, see the "qpdf JSON" chapter of the manual. | |
| 627 | + * qpdf JSON is now at version 2. New command-line arguments: | |
| 628 | + --json-output, --json-input, --update-from-json. New methods | |
| 629 | + QPDF::writeJSON, QPDF::createFromJSON, QPDF::updateFromJSON. For | |
| 630 | + details, see the "qpdf JSON" chapter of the manual. | |
| 631 | 631 | |
| 632 | - * When showing encryption data in json output, when the user | |
| 633 | - password was recovered with by the owner password and the | |
| 634 | - specified password does not match the user password, reveal the | |
| 635 | - user password. This is not possible with 256-bit keys. | |
| 632 | + * When showing encryption data in json output, when the user | |
| 633 | + password was recovered with by the owner password and the | |
| 634 | + specified password does not match the user password, reveal the | |
| 635 | + user password. This is not possible with 256-bit keys. | |
| 636 | 636 | |
| 637 | - * Include additional information in --list-attachments --verbose | |
| 638 | - and in --json --json-key=attachments. | |
| 637 | + * Include additional information in --list-attachments --verbose | |
| 638 | + and in --json --json-key=attachments. | |
| 639 | 639 | |
| 640 | - * Add QUtil::qpdf_time_to_iso8601 and QUtil::pdf_time_to_iso8601 | |
| 641 | - for converting PDF/qpdf timestamps to ISO-8601 date format. | |
| 640 | + * Add QUtil::qpdf_time_to_iso8601 and QUtil::pdf_time_to_iso8601 | |
| 641 | + for converting PDF/qpdf timestamps to ISO-8601 date format. | |
| 642 | 642 | |
| 643 | 643 | 2022-05-18 Jay Berkenbilt <ejb@ql.org> |
| 644 | 644 | |
| 645 | - * Add QUtil::FileCloser to the public API. This is a simple inline | |
| 646 | - class to help with automatic file closing. | |
| 645 | + * Add QUtil::FileCloser to the public API. This is a simple inline | |
| 646 | + class to help with automatic file closing. | |
| 647 | 647 | |
| 648 | 648 | 2022-05-17 Jay Berkenbilt <ejb@ql.org> |
| 649 | 649 | |
| 650 | - * Allow passing *uninitialized* (not null) objects to | |
| 651 | - replaceStreamData as filter and/or decode_parms to leave any | |
| 652 | - existing values for /Filter and /DecodeParms untouched. | |
| 650 | + * Allow passing *uninitialized* (not null) objects to | |
| 651 | + replaceStreamData as filter and/or decode_parms to leave any | |
| 652 | + existing values for /Filter and /DecodeParms untouched. | |
| 653 | 653 | |
| 654 | 654 | 2022-05-15 Jay Berkenbilt <ejb@ql.org> |
| 655 | 655 | |
| 656 | - * Add QUtil::is_long_long to test whether a string can be | |
| 657 | - converted to a long long and back without loss of information. | |
| 656 | + * Add QUtil::is_long_long to test whether a string can be | |
| 657 | + converted to a long long and back without loss of information. | |
| 658 | 658 | |
| 659 | 659 | 2022-05-04 Jay Berkenbilt <ejb@ql.org> |
| 660 | 660 | |
| 661 | - * JSON: add a new "blob" type that takes a function to write data | |
| 662 | - into. The blob is serialized as a base64-encoded representation of | |
| 663 | - whatever is written to the function. | |
| 661 | + * JSON: add a new "blob" type that takes a function to write data | |
| 662 | + into. The blob is serialized as a base64-encoded representation of | |
| 663 | + whatever is written to the function. | |
| 664 | 664 | |
| 665 | - * FileInputSource has new constructors that eliminate the need to | |
| 666 | - call setFilename or setFile in most cases. | |
| 665 | + * FileInputSource has new constructors that eliminate the need to | |
| 666 | + call setFilename or setFile in most cases. | |
| 667 | 667 | |
| 668 | - * Enhance JSON by adding a write method that takes a Pipeline* and | |
| 669 | - depth, and add several helper methods to make it easier to write | |
| 670 | - large amounts of JSON incrementally without having to have the | |
| 671 | - whole thing in memory. | |
| 668 | + * Enhance JSON by adding a write method that takes a Pipeline* and | |
| 669 | + depth, and add several helper methods to make it easier to write | |
| 670 | + large amounts of JSON incrementally without having to have the | |
| 671 | + whole thing in memory. | |
| 672 | 672 | |
| 673 | - * json v1 output: make "pages" and "objects" consistent. | |
| 674 | - Previously, "objects" always reflected the objects exactly as they | |
| 675 | - appeared in the original file, while "pages" reflected objects | |
| 676 | - after repair of the pages tree. This could be misleading. Now, if | |
| 677 | - "pages" is specified, "objects" shows the effects of repairing the | |
| 678 | - page tree, and if not, it doesn't. This makes no difference for | |
| 679 | - correct PDF files that don't have problems in the pages tree. JSON | |
| 680 | - v2 will behave in a similar way. | |
| 673 | + * json v1 output: make "pages" and "objects" consistent. | |
| 674 | + Previously, "objects" always reflected the objects exactly as they | |
| 675 | + appeared in the original file, while "pages" reflected objects | |
| 676 | + after repair of the pages tree. This could be misleading. Now, if | |
| 677 | + "pages" is specified, "objects" shows the effects of repairing the | |
| 678 | + page tree, and if not, it doesn't. This makes no difference for | |
| 679 | + correct PDF files that don't have problems in the pages tree. JSON | |
| 680 | + v2 will behave in a similar way. | |
| 681 | 681 | |
| 682 | 682 | 2022-05-03 Jay Berkenbilt <ejb@ql.org> |
| 683 | 683 | |
| 684 | - * Add new Pipeline class Pl_String which appends to a std::string& | |
| 685 | - passed to it at construction. | |
| 684 | + * Add new Pipeline class Pl_String which appends to a std::string& | |
| 685 | + passed to it at construction. | |
| 686 | 686 | |
| 687 | - * Add new Pipeline class Pl_OStream, similar to Pl_StdioFile but | |
| 688 | - takes a std::ostream instead of a FILE*. | |
| 687 | + * Add new Pipeline class Pl_OStream, similar to Pl_StdioFile but | |
| 688 | + takes a std::ostream instead of a FILE*. | |
| 689 | 689 | |
| 690 | - * Add new convenience methods to Pipeline: writeCStr and | |
| 691 | - writeString. Also add a limit << operator that takes C strings and | |
| 692 | - std::strings. Also add an overloaded version of write that takes | |
| 693 | - "char const*". | |
| 690 | + * Add new convenience methods to Pipeline: writeCStr and | |
| 691 | + writeString. Also add a limit << operator that takes C strings and | |
| 692 | + std::strings. Also add an overloaded version of write that takes | |
| 693 | + "char const*". | |
| 694 | 694 | |
| 695 | - * API change: Pipeline::write now takes "unsigned char const *" | |
| 696 | - instead of "unsigned char*". Callers shouldn't have to change | |
| 697 | - anything, though can stop using writable strings or | |
| 698 | - QUtil::unsigned_char_pointer. If you have implemented your own | |
| 699 | - pipelines, you should change your write method to take a const | |
| 700 | - pointer. | |
| 695 | + * API change: Pipeline::write now takes "unsigned char const *" | |
| 696 | + instead of "unsigned char*". Callers shouldn't have to change | |
| 697 | + anything, though can stop using writable strings or | |
| 698 | + QUtil::unsigned_char_pointer. If you have implemented your own | |
| 699 | + pipelines, you should change your write method to take a const | |
| 700 | + pointer. | |
| 701 | 701 | |
| 702 | 702 | 2022-05-01 Jay Berkenbilt <ejb@ql.org> |
| 703 | 703 | |
| 704 | - * JSON: add reactors to the JSON parser, making it possible to | |
| 705 | - react to JSON parsing events as they occur and to block the | |
| 706 | - results from being stored. This makes it possible to incrementally | |
| 707 | - parse arbitrarily large JSON inputs. | |
| 704 | + * JSON: add reactors to the JSON parser, making it possible to | |
| 705 | + react to JSON parsing events as they occur and to block the | |
| 706 | + results from being stored. This makes it possible to incrementally | |
| 707 | + parse arbitrarily large JSON inputs. | |
| 708 | 708 | |
| 709 | 709 | 2022-04-30 Jay Berkenbilt <ejb@ql.org> |
| 710 | 710 | |
| 711 | - * QPDFWriter: change encryption API calls | |
| 712 | - - Remove deprecated versions of setR*EncryptionParameters | |
| 713 | - methods from before qpdf 8.4.0 | |
| 714 | - - Replace setR2EncryptionParameters with | |
| 715 | - setR2EncryptionParametersInsecure | |
| 716 | - - Replace setR3EncryptionParameters with | |
| 717 | - setR3EncryptionParametersInsecure | |
| 718 | - - Replace setR4EncryptionParameters with | |
| 719 | - setR4EncryptionParametersInsecure | |
| 720 | - | |
| 721 | - * C API: change encryption API calls to match C++ interface | |
| 722 | - - Remove pre-8.4.0 functions: | |
| 723 | - - qpdf_set_r3_encryption_parameters | |
| 724 | - - qpdf_set_r4_encryption_parameters | |
| 725 | - - qpdf_set_r5_encryption_parameters | |
| 726 | - - qpdf_set_r6_encryption_parameters | |
| 727 | - - Add "_insecure" to insecure encryption triggers: | |
| 728 | - - Replace void qpdf_set_r2_encryption_parameters | |
| 729 | - with qpdf_set_r2_encryption_parameters_insecure | |
| 730 | - - Replace void qpdf_set_r3_encryption_parameters2 | |
| 731 | - with qpdf_set_r3_encryption_parameters_insecure | |
| 732 | - - Replace void qpdf_set_r4_encryption_parameters2 | |
| 733 | - with qpdf_set_r4_encryption_parameters_insecure | |
| 734 | - | |
| 735 | - * Make attempting to write encrypted files that use RC4 (40-bit or | |
| 736 | - 128-bit without AES) an error rather than a warning when | |
| 737 | - --allow-weak-crypto is not specified. Fixes #576. | |
| 711 | + * QPDFWriter: change encryption API calls | |
| 712 | + - Remove deprecated versions of setR*EncryptionParameters | |
| 713 | + methods from before qpdf 8.4.0 | |
| 714 | + - Replace setR2EncryptionParameters with | |
| 715 | + setR2EncryptionParametersInsecure | |
| 716 | + - Replace setR3EncryptionParameters with | |
| 717 | + setR3EncryptionParametersInsecure | |
| 718 | + - Replace setR4EncryptionParameters with | |
| 719 | + setR4EncryptionParametersInsecure | |
| 720 | + | |
| 721 | + * C API: change encryption API calls to match C++ interface | |
| 722 | + - Remove pre-8.4.0 functions: | |
| 723 | + - qpdf_set_r3_encryption_parameters | |
| 724 | + - qpdf_set_r4_encryption_parameters | |
| 725 | + - qpdf_set_r5_encryption_parameters | |
| 726 | + - qpdf_set_r6_encryption_parameters | |
| 727 | + - Add "_insecure" to insecure encryption triggers: | |
| 728 | + - Replace void qpdf_set_r2_encryption_parameters | |
| 729 | + with qpdf_set_r2_encryption_parameters_insecure | |
| 730 | + - Replace void qpdf_set_r3_encryption_parameters2 | |
| 731 | + with qpdf_set_r3_encryption_parameters_insecure | |
| 732 | + - Replace void qpdf_set_r4_encryption_parameters2 | |
| 733 | + with qpdf_set_r4_encryption_parameters_insecure | |
| 734 | + | |
| 735 | + * Make attempting to write encrypted files that use RC4 (40-bit or | |
| 736 | + 128-bit without AES) an error rather than a warning when | |
| 737 | + --allow-weak-crypto is not specified. Fixes #576. | |
| 738 | 738 | |
| 739 | 739 | 2022-04-24 Jay Berkenbilt <ejb@ql.org> |
| 740 | 740 | |
| 741 | - * Bug fix: "removeAttachment" in the job JSON now takes an array | |
| 742 | - of strings instead of a string. It should have taken an array of | |
| 743 | - strings since the corresponding command-line argument, | |
| 744 | - --remove-attachment, is repeatable. Fixes #693. | |
| 741 | + * Bug fix: "removeAttachment" in the job JSON now takes an array | |
| 742 | + of strings instead of a string. It should have taken an array of | |
| 743 | + strings since the corresponding command-line argument, | |
| 744 | + --remove-attachment, is repeatable. Fixes #693. | |
| 745 | 745 | |
| 746 | - * Deprecate QPDFObjectHandle::replaceOrRemoveKey -- it does and | |
| 747 | - always has done the same thing as replaceKey. | |
| 746 | + * Deprecate QPDFObjectHandle::replaceOrRemoveKey -- it does and | |
| 747 | + always has done the same thing as replaceKey. | |
| 748 | 748 | |
| 749 | 749 | 2022-04-23 Jay Berkenbilt <ejb@ql.org> |
| 750 | 750 | |
| 751 | - * Add a new QPDF::warn method that takes the parameters of | |
| 752 | - QPDFExc's constructor except for the filename, which is taken from | |
| 753 | - the QPDF object. This is a shorter way to issue warnings on behalf | |
| 754 | - of a QPDF object. | |
| 751 | + * Add a new QPDF::warn method that takes the parameters of | |
| 752 | + QPDFExc's constructor except for the filename, which is taken from | |
| 753 | + the QPDF object. This is a shorter way to issue warnings on behalf | |
| 754 | + of a QPDF object. | |
| 755 | 755 | |
| 756 | 756 | * Add new method QUtil::is_explicit_utf8 that tests whether a |
| 757 | 757 | string is explicitly marked as being UTF-8 encoded, as allowed by |
| ... | ... | @@ -2763,7 +2763,7 @@ |
| 2763 | 2763 | |
| 2764 | 2764 | 2019-01-03 Jay Berkenbilt <ejb@ql.org> |
| 2765 | 2765 | |
| 2766 | - * Add --generate-appearances flag to the qpdf command-line tool to | |
| 2766 | + * Add --generate-appearances flag to the qpdf command-line tool to | |
| 2767 | 2767 | trigger generation of appearance streams. |
| 2768 | 2768 | |
| 2769 | 2769 | * Fix behavior of form field value setting to handle the following |
| ... | ... | @@ -3168,7 +3168,7 @@ |
| 3168 | 3168 | |
| 3169 | 3169 | 2018-02-04 Jay Berkenbilt <ejb@ql.org> |
| 3170 | 3170 | |
| 3171 | - * Changes listed on today's date are numerous and reflect | |
| 3171 | + * Changes listed on today's date are numerous and reflect | |
| 3172 | 3172 | significant enhancements to qpdf's lexical layer. While many |
| 3173 | 3173 | nuances are discussed and a handful of small bugs were fixed, it |
| 3174 | 3174 | should be emphasized that none of these issues have any impact on |
| ... | ... | @@ -3503,7 +3503,7 @@ |
| 3503 | 3503 | - New command-line flags --compress-streams and --decode-level |
| 3504 | 3504 | to replace/enhance --stream-data |
| 3505 | 3505 | - New QPDFWriter::setCompressStreams and |
| 3506 | - QPDFWriter::setDecodeLevel methods | |
| 3506 | + QPDFWriter::setDecodeLevel methods | |
| 3507 | 3507 | Please see documentation, header files, and help messages for |
| 3508 | 3508 | details on these new features. |
| 3509 | 3509 | |
| ... | ... | @@ -3736,7 +3736,7 @@ |
| 3736 | 3736 | * Bug fix: if the last object in the first part of a linearized |
| 3737 | 3737 | file had an offset that was below 65536 by less than the size of |
| 3738 | 3738 | the hint stream, the xref stream was invalid and the resulting file |
| 3739 | - is not usable. This is now fixed. | |
| 3739 | + is not usable. This is now fixed. | |
| 3740 | 3740 | |
| 3741 | 3741 | 2014-01-14 Jay Berkenbilt <ejb@ql.org> |
| 3742 | 3742 | |
| ... | ... | @@ -3747,7 +3747,7 @@ |
| 3747 | 3747 | * Bug fix: when copying foreign objects (which occurs during page |
| 3748 | 3748 | splitting among other cases), avoid traversing the same object |
| 3749 | 3749 | more than once if it appears more than once in the same direct |
| 3750 | - object. This bug is performance-only and does not affect the | |
| 3750 | + object. This bug is performance-only and does not affect the | |
| 3751 | 3751 | actual output. |
| 3752 | 3752 | |
| 3753 | 3753 | 2013-12-17 Jay Berkenbilt <ejb@ql.org> |
| ... | ... | @@ -3811,7 +3811,7 @@ |
| 3811 | 3811 | * 5.0.1: release |
| 3812 | 3812 | |
| 3813 | 3813 | * Warn when -accessibility=n is specified with a modern encryption |
| 3814 | - format (R > 3). Also, accept this flag (and ignore with warning) | |
| 3814 | + format (R > 3). Also, accept this flag (and ignore with warning) | |
| 3815 | 3815 | with 256-bit encryption. qpdf has always ignored the |
| 3816 | 3816 | accessibility setting with R > 3, but it previously did so |
| 3817 | 3817 | silently. |
| ... | ... | @@ -3838,7 +3838,7 @@ |
| 3838 | 3838 | data in linearization hint streams. |
| 3839 | 3839 | |
| 3840 | 3840 | * Security fix: sanitize /W array in cross reference stream to |
| 3841 | - avoid a potential integer overflow in a multiplication. It is | |
| 3841 | + avoid a potential integer overflow in a multiplication. It is | |
| 3842 | 3842 | unlikely that any exploits were possible from this bug as |
| 3843 | 3843 | additional checks were also performed. |
| 3844 | 3844 | |
| ... | ... | @@ -3859,7 +3859,7 @@ |
| 3859 | 3859 | |
| 3860 | 3860 | * Security fix: in QUtil::toUTF8, change bounds checking to avoid |
| 3861 | 3861 | having a pointer point temporarily outside the bounds of an |
| 3862 | - array. Some compiler optimizations could have made the original | |
| 3862 | + array. Some compiler optimizations could have made the original | |
| 3863 | 3863 | code unsafe. |
| 3864 | 3864 | |
| 3865 | 3865 | 2013-07-10 Jay Berkenbilt <ejb@ql.org> |
| ... | ... | @@ -3907,8 +3907,8 @@ |
| 3907 | 3907 | 2013-06-14 Jay Berkenbilt <ejb@ql.org> |
| 3908 | 3908 | |
| 3909 | 3909 | * Detect and correct /Outlines dictionary being a direct object |
| 3910 | - when linearizing files. This is not allowed by the spec but has | |
| 3911 | - been seen in the wild. Prior to this change, such a file would | |
| 3910 | + when linearizing files. This is not allowed by the spec but has | |
| 3911 | + been seen in the wild. Prior to this change, such a file would | |
| 3912 | 3912 | cause an internal error in the linearization code, which assumed |
| 3913 | 3913 | /Outlines was indirect. |
| 3914 | 3914 | |
| ... | ... | @@ -3941,7 +3941,7 @@ |
| 3941 | 3941 | 2013-03-11 Jay Berkenbilt <ejb@ql.org> |
| 3942 | 3942 | |
| 3943 | 3943 | * When creating Windows binary distributions, make sure to only |
| 3944 | - copy DLLs of the correct type. The ensures that the 32-bit | |
| 3944 | + copy DLLs of the correct type. The ensures that the 32-bit | |
| 3945 | 3945 | distributions contain 32-bit DLLs and the 64-bit distributions |
| 3946 | 3946 | contain 64-bit DLLs. |
| 3947 | 3947 | |
| ... | ... | @@ -3963,7 +3963,7 @@ |
| 3963 | 3963 | warnings. This is useful for people who may want to use qpdf in |
| 3964 | 3964 | an application that is Windows 8 certified. |
| 3965 | 3965 | |
| 3966 | - * New method QUtil::safe_fopen to wrap calls to fopen. This is | |
| 3966 | + * New method QUtil::safe_fopen to wrap calls to fopen. This is | |
| 3967 | 3967 | less cumbersome than calling QUtil::fopen_wrapper. |
| 3968 | 3968 | |
| 3969 | 3969 | * Remove all calls to sprintf |
| ... | ... | @@ -3982,7 +3982,7 @@ |
| 3982 | 3982 | * Bug fix: properly handle overridden compressed objects. When |
| 3983 | 3983 | caching objects from an object stream, only cache objects that, |
| 3984 | 3984 | based on the xref table, would actually be resolved into this |
| 3985 | - stream. Prior to this fix, if an object stream A contained an | |
| 3985 | + stream. Prior to this fix, if an object stream A contained an | |
| 3986 | 3986 | object B that was overridden by an appended section of the file, |
| 3987 | 3987 | qpdf would cache the old value of B if any non-overridden member |
| 3988 | 3988 | of A was accessed before B. This commit fixes that bug. |
| ... | ... | @@ -3999,7 +3999,7 @@ |
| 3999 | 3999 | hexadecimal string |
| 4000 | 4000 | |
| 4001 | 4001 | * qpdf --check was exiting with status 0 in some rare cases even |
| 4002 | - when errors were found. It now always exits with one of the | |
| 4002 | + when errors were found. It now always exits with one of the | |
| 4003 | 4003 | document error codes (0 for success, 2 for errors, 3 or warnings). |
| 4004 | 4004 | |
| 4005 | 4005 | 2013-01-24 Jay Berkenbilt <ejb@ql.org> |
| ... | ... | @@ -4014,20 +4014,20 @@ |
| 4014 | 4014 | CXXFLAGS and were commingled with other compiler flags. |
| 4015 | 4015 | |
| 4016 | 4016 | * qpdf --check now does syntactic checks all pages' content |
| 4017 | - streams as well as checking overall document structure. Semantic | |
| 4017 | + streams as well as checking overall document structure. Semantic | |
| 4018 | 4018 | errors are still not checked, and there are no plans to add |
| 4019 | 4019 | semantic checks. |
| 4020 | 4020 | |
| 4021 | 4021 | 2013-01-22 Jay Berkenbilt <ejb@ql.org> |
| 4022 | 4022 | |
| 4023 | - * Add QPDFObjectHandle::getTypeCode(). This method returns a | |
| 4023 | + * Add QPDFObjectHandle::getTypeCode(). This method returns a | |
| 4024 | 4024 | unique integer (enumerated type) value corresponding to the object |
| 4025 | 4025 | type of the QPDFObjectHandle. It can be used as an alternative to |
| 4026 | 4026 | the QPDFObjectHandle::is* methods for type testing, particularly |
| 4027 | 4027 | where there is a desire to use a switch statement or optimize for |
| 4028 | 4028 | performance when testing object types. |
| 4029 | 4029 | |
| 4030 | - * Add QPDFObjectHandle::getTypeName(). This method returns a | |
| 4030 | + * Add QPDFObjectHandle::getTypeName(). This method returns a | |
| 4031 | 4031 | string literal describing the object type. It is useful for |
| 4032 | 4032 | testing and debugging. |
| 4033 | 4033 | |
| ... | ... | @@ -4035,7 +4035,7 @@ |
| 4035 | 4035 | |
| 4036 | 4036 | * Add QPDFObjectHandle::parseContentStream, which parses the |
| 4037 | 4037 | objects in a content stream and calls handlers in a callback |
| 4038 | - class. The example pdf-parse-content illustrates it use. | |
| 4038 | + class. The example pdf-parse-content illustrates it use. | |
| 4039 | 4039 | |
| 4040 | 4040 | * Add QPDF_Operator and QPDF_InlineImage types along with |
| 4041 | 4041 | appropriate wrapper methods in QPDFObjectHandle. These new object |
| ... | ... | @@ -4051,7 +4051,7 @@ |
| 4051 | 4051 | password. |
| 4052 | 4052 | |
| 4053 | 4053 | * Fix detection of binary attachments in the test suite. This |
| 4054 | - resolves false test failures on some platforms. No changes to the | |
| 4054 | + resolves false test failures on some platforms. No changes to the | |
| 4055 | 4055 | actual QPDF code were made. |
| 4056 | 4056 | |
| 4057 | 4057 | 2012-12-31 Jay Berkenbilt <ejb@ql.org> |
| ... | ... | @@ -4086,17 +4086,17 @@ |
| 4086 | 4086 | |
| 4087 | 4087 | * Add read/write support for both the deprecated Acrobat IX |
| 4088 | 4088 | encryption format and the Acrobat X/PDF 2.0 encryption format |
| 4089 | - using 256-bit AES keys. Using the Acrobat IX format (R=5) forces | |
| 4090 | - the version of the file to 1.7 with extension level 3. Using the | |
| 4089 | + using 256-bit AES keys. Using the Acrobat IX format (R=5) forces | |
| 4090 | + the version of the file to 1.7 with extension level 3. Using the | |
| 4091 | 4091 | PDF 2.0 format (R=6) forces it to 1.7 extension level 8. |
| 4092 | 4092 | |
| 4093 | 4093 | * Add new method QPDF::getEncryptionKey to return the actual |
| 4094 | - encryption key used for encryption of data in the file. The key | |
| 4094 | + encryption key used for encryption of data in the file. The key | |
| 4095 | 4095 | is returned as a std::string. |
| 4096 | 4096 | |
| 4097 | 4097 | * Non-compatible API change: change signature of |
| 4098 | 4098 | QPDF::compute_data_key to take the R and V values from the |
| 4099 | - encryption dictionary. There is no reason for any application | |
| 4099 | + encryption dictionary. There is no reason for any application | |
| 4100 | 4100 | code to call this method since handling of encryption is done |
| 4101 | 4101 | automatically by the qpdf library. It is used internally by |
| 4102 | 4102 | QPDFWriter. |
| ... | ... | @@ -4124,7 +4124,7 @@ |
| 4124 | 4124 | * Fix old bug that could cause an infinite loop if user password |
| 4125 | 4125 | recovery methods were called and a password contained the "(" |
| 4126 | 4126 | character (which happens to be the first byte of padding used by |
| 4127 | - older PDF encryption formats). This bug was noticed while reading | |
| 4127 | + older PDF encryption formats). This bug was noticed while reading | |
| 4128 | 4128 | code and would not happen under ordinary usage patterns even if |
| 4129 | 4129 | the password contained that character. |
| 4130 | 4130 | |
| ... | ... | @@ -4134,15 +4134,15 @@ |
| 4134 | 4134 | reading and writing. This includes adding method |
| 4135 | 4135 | QPDF::getExtensionLevel and new versions of |
| 4136 | 4136 | QPDFWriter::setMinimumPDFVersion and QPDFWriter::forcePDFVersion |
| 4137 | - that support extension levels. The qpdf command-line tool | |
| 4137 | + that support extension levels. The qpdf command-line tool | |
| 4138 | 4138 | interprets version numbers of the form x.y.z as version x.y at |
| 4139 | 4139 | extension level z. |
| 4140 | 4140 | |
| 4141 | 4141 | * Update AES classes to support use of 256-bit keys. |
| 4142 | 4142 | |
| 4143 | 4143 | * Non-compatible API change: Removed public method |
| 4144 | - QPDF::flattenScalarReferences. Instead, just flatten the scalar | |
| 4145 | - references we actually need to flatten. Flattening scalar | |
| 4144 | + QPDF::flattenScalarReferences. Instead, just flatten the scalar | |
| 4145 | + references we actually need to flatten. Flattening scalar | |
| 4146 | 4146 | references was a wrong decision years ago and has occasionally |
| 4147 | 4147 | caused other problems, among which were that it caused qpdf to |
| 4148 | 4148 | visit otherwise unreferenced and possibly erroneous objects in the |
| ... | ... | @@ -4187,14 +4187,14 @@ |
| 4187 | 4187 | out the omission. |
| 4188 | 4188 | |
| 4189 | 4189 | * Ignore (with warning) non-freed objects in the xref table whose |
| 4190 | - offset is 0. Some PDF producers (incorrectly) do this. See | |
| 4190 | + offset is 0. Some PDF producers (incorrectly) do this. See | |
| 4191 | 4191 | https://bugs.linuxfoundation.org/show_bug.cgi?id=1081. |
| 4192 | 4192 | |
| 4193 | 4193 | 2012-09-23 Jay Berkenbilt <ejb@ql.org> |
| 4194 | 4194 | |
| 4195 | 4195 | * Add public methods QPDF::processInputSource and |
| 4196 | 4196 | QPDFWriter::setOutputPipeline to allow users to read from custom |
| 4197 | - input sources and to write to custom pipelines. This allows the | |
| 4197 | + input sources and to write to custom pipelines. This allows the | |
| 4198 | 4198 | maximum flexibility in sources for reading and writing PDF files. |
| 4199 | 4199 | |
| 4200 | 4200 | 2012-09-06 Jay Berkenbilt <ejb@ql.org> |
| ... | ... | @@ -4341,7 +4341,7 @@ |
| 4341 | 4341 | 2012-06-27 Jay Berkenbilt <ejb@ql.org> |
| 4342 | 4342 | |
| 4343 | 4343 | * Add Pl_Concatenate pipeline for stream concatenation also |
| 4344 | - implemented by Tobias Hoffmann. Also added test code | |
| 4344 | + implemented by Tobias Hoffmann. Also added test code | |
| 4345 | 4345 | (libtests/concatenate.cc). |
| 4346 | 4346 | |
| 4347 | 4347 | * Add new methods implemented by Tobias Hoffmann: |
| ... | ... | @@ -4365,7 +4365,7 @@ |
| 4365 | 4365 | places as well as increasing the amount of padding used when |
| 4366 | 4366 | creating linearized files. Automated tests for large files are |
| 4367 | 4367 | disabled by default. Run ./configure --help for information on |
| 4368 | - enabling them. Running the tests requires 11 GB of free disk | |
| 4368 | + enabling them. Running the tests requires 11 GB of free disk | |
| 4369 | 4369 | space and takes several minutes. |
| 4370 | 4370 | |
| 4371 | 4371 | 2012-06-22 Jay Berkenbilt <ejb@ql.org> |
| ... | ... | @@ -4388,11 +4388,11 @@ |
| 4388 | 4388 | * make/libtool.mk: Place user-specified CPPFLAGS and LDFLAGS later |
| 4389 | 4389 | in the compilation so that if a user installs things in a |
| 4390 | 4390 | non-standard place that they have to tell the build about, earlier |
| 4391 | - versions of qpdf installed there won't break the build. Thanks to | |
| 4391 | + versions of qpdf installed there won't break the build. Thanks to | |
| 4392 | 4392 | Macports for reporting this. (Fixes bug 3468860.) |
| 4393 | 4393 | |
| 4394 | 4394 | * Instead of using off_t in the public APIs, use qpdf_offset_t |
| 4395 | - instead. This is defined as long long in qpdf/Types.h. If your | |
| 4395 | + instead. This is defined as long long in qpdf/Types.h. If your | |
| 4396 | 4396 | system doesn't support long long, you can redefine it. |
| 4397 | 4397 | |
| 4398 | 4398 | * Add pkg-config files |
| ... | ... | @@ -4427,7 +4427,7 @@ |
| 4427 | 4427 | |
| 4428 | 4428 | 2011-04-06 Jay Berkenbilt <ejb@ql.org> |
| 4429 | 4429 | |
| 4430 | - * Fix PCRE to stop using deprecated (and now dropped) interfaces. | |
| 4430 | + * Fix PCRE to stop using deprecated (and now dropped) interfaces. | |
| 4431 | 4431 | |
| 4432 | 4432 | 2011-12-28 Jay Berkenbilt <ejb@ql.org> |
| 4433 | 4433 | |
| ... | ... | @@ -4459,13 +4459,13 @@ |
| 4459 | 4459 | 2011-08-10 Jay Berkenbilt <ejb@ql.org> |
| 4460 | 4460 | |
| 4461 | 4461 | * libqpdf/QPDFWriter.cc (copyEncryptionParameters): preserve |
| 4462 | - whether metadata is encryption. This fixes part of bug 3173659: | |
| 4462 | + whether metadata is encryption. This fixes part of bug 3173659: | |
| 4463 | 4463 | the password becomes invalid if qpdf copies an encrypted file with |
| 4464 | 4464 | cleartext-metadata. |
| 4465 | 4465 | |
| 4466 | 4466 | * include/qpdf/QPDFWriter.hh: add a new constructor that takes |
| 4467 | 4467 | only a QPDF reference and leaves specification of output for |
| 4468 | - later. Add methods setOutputFilename() to set the output to a | |
| 4468 | + later. Add methods setOutputFilename() to set the output to a | |
| 4469 | 4469 | filename or stdout, and setOutputMemory() to indicate that output |
| 4470 | 4470 | should go to a memory buffer. Add method getBuffer() to retrieve |
| 4471 | 4471 | the buffer used if output was saved to a memory buffer. |
| ... | ... | @@ -4485,7 +4485,7 @@ |
| 4485 | 4485 | 2011-06-23 Jay Berkenbilt <ejb@ql.org> |
| 4486 | 4486 | |
| 4487 | 4487 | * make/libtool.mk (install): Do not strip executables and shared |
| 4488 | - libraries during installation. Leave that up to the packager. | |
| 4488 | + libraries during installation. Leave that up to the packager. | |
| 4489 | 4489 | |
| 4490 | 4490 | * configure.ac: disable -Werror by default. |
| 4491 | 4491 | |
| ... | ... | @@ -4568,7 +4568,7 @@ |
| 4568 | 4568 | * 2.2.0: release |
| 4569 | 4569 | |
| 4570 | 4570 | * Rename README.windows to README-windows.txt and convert its line |
| 4571 | - endings to Windows-style line endings. Also mention Jian Ma's VC6 | |
| 4571 | + endings to Windows-style line endings. Also mention Jian Ma's VC6 | |
| 4572 | 4572 | port in the manual and README-windows.txt. |
| 4573 | 4573 | |
| 4574 | 4574 | 2010-08-09 Jay Berkenbilt <ejb@ql.org> |
| ... | ... | @@ -4687,7 +4687,7 @@ |
| 4687 | 4687 | 2009-10-19 Jay Berkenbilt <ejb@ql.org> |
| 4688 | 4688 | |
| 4689 | 4689 | * include/qpdf/QPDF.hh (QPDF): getWarnings now returns a list of |
| 4690 | - QPDFExc rather than a list of strings. This way, warnings may be | |
| 4690 | + QPDFExc rather than a list of strings. This way, warnings may be | |
| 4691 | 4691 | inspected in more detail. |
| 4692 | 4692 | |
| 4693 | 4693 | * Include information about the last object read in most error |
| ... | ... | @@ -4732,13 +4732,13 @@ |
| 4732 | 4732 | 2009-09-27 Jay Berkenbilt <ejb@ql.org> |
| 4733 | 4733 | |
| 4734 | 4734 | * Add several methods to query permissions controlled by the |
| 4735 | - encryption dictionary. Note that qpdf does not enforce these | |
| 4735 | + encryption dictionary. Note that qpdf does not enforce these | |
| 4736 | 4736 | permissions even though it allows the user to query them. |
| 4737 | 4737 | |
| 4738 | 4738 | * The function QPDF::getUserPassword returned the user password |
| 4739 | 4739 | with the required padding as specified by the PDF specification. |
| 4740 | - This is seldom useful to users. This function has been replaced | |
| 4741 | - by QPDF::getPaddedUserPassword. Call the new | |
| 4740 | + This is seldom useful to users. This function has been replaced | |
| 4741 | + by QPDF::getPaddedUserPassword. Call the new | |
| 4742 | 4742 | QPDF::getTrimmedUserPassword to retrieve the user password in a |
| 4743 | 4743 | human-readable format. |
| 4744 | 4744 | |
| ... | ... | @@ -4765,7 +4765,7 @@ |
| 4765 | 4765 | |
| 4766 | 4766 | * libqpdf/Pl_LZWDecoder.cc: adjust LZWDecoder full table |
| 4767 | 4767 | detection, now having been able to adequately test boundary |
| 4768 | - conditions both and with and without early code change. Also | |
| 4768 | + conditions both and with and without early code change. Also | |
| 4769 | 4769 | compared implementation with other LZW decoders. |
| 4770 | 4770 | |
| 4771 | 4771 | 2009-03-08 Jay Berkenbilt <ejb@ql.org> |
| ... | ... | @@ -4868,7 +4868,7 @@ |
| 4868 | 4868 | |
| 4869 | 4869 | * libqpdf/QPDF_encryption.cc: do not assume size_t is unsigned int |
| 4870 | 4870 | |
| 4871 | - * qpdf/qtest/qpdf.test: removed locale-specific tests. These were | |
| 4871 | + * qpdf/qtest/qpdf.test: removed locale-specific tests. These were | |
| 4872 | 4872 | really to check bugs in perl 5.8.0 and are obsolete now. They |
| 4873 | 4873 | also make the test suite fail in some environments that don't have |
| 4874 | 4874 | all the locales fully configured. | ... | ... |