Commit 8320d16cd20240cc35ec84de6bb89f2d9431ea2d
1 parent
c5dc6d80
Update TODO
Showing
1 changed file
with
19 additions
and
62 deletions
TODO
| ... | ... | @@ -4,60 +4,21 @@ Before next release |
| 4 | 4 | ABI compatibility has most likely been broken. Retest and bump major |
| 5 | 5 | version if needed. |
| 6 | 6 | |
| 7 | -Small, command-line tool only enhancements to do soon | |
| 8 | -===================================================== | |
| 9 | - | |
| 10 | - * Handle input file = output file as a special case. See issue 29. | |
| 11 | - Behavior: detect if output file is the same as one of the input | |
| 12 | - files. If so, refuse to operate unless --allow-overwrite is | |
| 13 | - specified. In that case, write to a temporary file and, if there | |
| 14 | - are no errors or warnings, rename the temporary output file over | |
| 15 | - the input file. If rename fails, delete the temporary file. | |
| 16 | - | |
| 17 | - * Consider providing alternative methods for specifying passwords. | |
| 18 | - The methods should be general enough to use for both encryption and | |
| 19 | - decryption passwords. Example methods could be reading the password | |
| 20 | - from a file, a file descriptor, or prompting. Prompting should | |
| 21 | - never be done with being specifically requested though; we don't | |
| 22 | - want to create a situation where running qpdf might block waiting | |
| 23 | - for input where it previously did not. Test case: encrypt an | |
| 24 | - encrypted file with the output file having different user/owner | |
| 25 | - passwords. Make sure we have a predictable way to read all three | |
| 26 | - passwords (input, output user, output owner). Maybe we have | |
| 27 | - something like --password-source=<method>:<which>,... where method could | |
| 28 | - be file=/path, fd=n, or prompt and which could be one of input, | |
| 29 | - user, owner. If a password source is provided for input, it takes | |
| 30 | - precedence over --password if specified later on the command line. | |
| 31 | - If a password source is specified for output passwords, the | |
| 32 | - corresponding passwords must be '-'. If more than one password is | |
| 33 | - read from the same source, passwords are newline separated. | |
| 34 | - Trailing newlines are ignored. Example: | |
| 35 | - | |
| 36 | - qpdf --password-source=fd=3:input,owner a.pdf b.pdf | |
| 37 | - | |
| 38 | - would read two lines from file descriptor 3. The first would the | |
| 39 | - password for reading a.pdf, and the second would be the owner | |
| 40 | - password for b.pdf. The encryption arguments would specify the | |
| 41 | - actual user password for b.pdf and - as the owner password. | |
| 42 | - | |
| 43 | - qpdf --password-source=file=/tmp/a:input --password=source=prompt:user,owner | |
| 44 | - | |
| 45 | - would read the input file from /tmp/a and would prompt twice: one | |
| 46 | - for the user password and once for the owner password. | |
| 47 | - | |
| 48 | - * Consider adding "uninstall" target to makefile. It should only | |
| 49 | - uninstall what it installed, which means that you must run | |
| 50 | - uninstall from the version you ran install with. It would only be | |
| 51 | - supported for the toolchains that support the install target | |
| 52 | - (libtool). | |
| 53 | - | |
| 54 | - | |
| 55 | 7 | Soon |
| 56 | 8 | ==== |
| 57 | 9 | |
| 58 | 10 | * Eliminate dependency on PCRE. There aren't that many regular |
| 59 | 11 | expressions, and they are used only for internal purposes. |
| 60 | 12 | |
| 13 | + * Consider whether there should be a mode in which QPDFObjectHandle | |
| 14 | + returns nulls for operations on the wrong type instead of asserting | |
| 15 | + the type. The way things are wired up now, this would have to be a | |
| 16 | + global flag. Probably it makes sense to make that be the default | |
| 17 | + behavior and to add a static method in QPDFObjectHandle and | |
| 18 | + command-line flag that enables the stricter behavior globally for | |
| 19 | + easier debugging. For cases where we have enough information to do | |
| 20 | + so, we could still warn when not in strict mode. | |
| 21 | + | |
| 61 | 22 | * Add method to push inheritable resources to a single page by |
| 62 | 23 | walking up and copying without overwrite. Above logic will also be |
| 63 | 24 | sufficient to fix the limitation in |
| ... | ... | @@ -79,9 +40,6 @@ Soon |
| 79 | 40 | |
| 80 | 41 | * If possible, support the following types of broken files: |
| 81 | 42 | |
| 82 | - - Files that lack %%EOF at the end but otherwise have a valid | |
| 83 | - startxref near the end | |
| 84 | - | |
| 85 | 43 | - Files that have no whitespace token after "endobj" such that |
| 86 | 44 | endobj collides with the start of the next object |
| 87 | 45 | |
| ... | ... | @@ -91,6 +49,12 @@ Soon |
| 91 | 49 | General |
| 92 | 50 | ======= |
| 93 | 51 | |
| 52 | + * Consider adding "uninstall" target to makefile. It should only | |
| 53 | + uninstall what it installed, which means that you must run | |
| 54 | + uninstall from the version you ran install with. It would only be | |
| 55 | + supported for the toolchains that support the install target | |
| 56 | + (libtool). | |
| 57 | + | |
| 94 | 58 | * Implement automated testing for binary compatibility and add to |
| 95 | 59 | release checklist. |
| 96 | 60 | |
| ... | ... | @@ -287,14 +251,7 @@ Index: QPDFWriter.cc |
| 287 | 251 | re-encode inline images with an ASCII encoding. |
| 288 | 252 | |
| 289 | 253 | * From github issue 2, provide more in-depth output for examining |
| 290 | - hint stream contents. | |
| 291 | - | |
| 292 | - * An attempt was made to replace pcre with std::regex, but it failed | |
| 293 | - because std::regex lacks some features of PCRE that we use and | |
| 294 | - because the result was many times slower. The work was saved in | |
| 295 | - refs/attic/std-regex on github. | |
| 296 | - | |
| 297 | - * Consider adding on option to provide a human-readable dump of | |
| 298 | - linearization hint tables. This should include improving the | |
| 299 | - 'overflow reading bit stream' message as reported in issue #2. | |
| 300 | - | |
| 254 | + hint stream contents. Consider adding on option to provide a | |
| 255 | + human-readable dump of linearization hint tables. This should | |
| 256 | + include improving the 'overflow reading bit stream' message as | |
| 257 | + reported in issue #2. | ... | ... |