Commit 5c9c5d537b8c2c954ec7ad4b7dc7d7a02c854a3a

Authored by Jay Berkenbilt
1 parent a11549a5

Update TODO with some small enhancements

There have been a few enhancements requested that only affect the qpdf
command line tool and that should be relatively quick to implement.
Work out the details and acknowledge these publicly in the TODO file.
Showing 1 changed file with 52 additions and 0 deletions
  1 +Small, command-line tool only enhancements to do soon
  2 +=====================================================
  3 +
  4 + * Handle input file = output file as a special case. See issue 29.
  5 + Behavior: detect if output file is the same as one of the input
  6 + files. If so, refuse to operate unless --allow-overwrite is
  7 + specified. In that case, write to a temporary file and, if there
  8 + are no errors or warnings, rename the temporary output file over
  9 + the input file. If rename fails, delete the temporary file.
  10 +
  11 + * Consider providing alternative methods for specifying passwords.
  12 + The methods should be general enough to use for both encryption and
  13 + decryption passwords. Example methods could be reading the password
  14 + from a file, a file descriptor, or prompting. Prompting should
  15 + never be done with being specifically requested though; we don't
  16 + want to create a situation where running qpdf might block waiting
  17 + for input where it previously did not. Test case: encrypt an
  18 + encrypted file with the output file having different user/owner
  19 + passwords. Make sure we have a predictable way to read all three
  20 + passwords (input, output user, output owner). Maybe we have
  21 + something like --password-source=<method>:<which>,... where method could
  22 + be file=/path, fd=n, or prompt and which could be one of input,
  23 + user, owner. If a password source is provided for input, it takes
  24 + precedence over --password if specified later on the command line.
  25 + If a password source is specified for output passwords, the
  26 + corresponding passwords must be '-'. If more than one password is
  27 + read from the same source, passwords are newline separated.
  28 + Trailing newlines are ignored. Example:
  29 +
  30 + qpdf --password-source=fd=3:input,owner a.pdf b.pdf
  31 +
  32 + would read two lines from file descriptor 3. The first would the
  33 + password for reading a.pdf, and the second would be the owner
  34 + password for b.pdf. The encryption arguments would specify the
  35 + actual user password for b.pdf and - as the owner password.
  36 +
  37 + qpdf --password-source=file=/tmp/a:input --password=source=prompt:user,owner
  38 +
  39 + would read the input file from /tmp/a and would prompt twice: one
  40 + for the user password and once for the owner password.
  41 +
  42 + * Consider adding "uninstall" target to makefile. It should only
  43 + uninstall what it installed, which means that you must run
  44 + uninstall from the version you ran install with. It would only be
  45 + supported for the toolchains that support the install target
  46 + (libtool).
  47 +
  48 +
1 49 5.2.0
2 50 =====
3 51  
... ... @@ -70,6 +118,10 @@
70 118 General
71 119 =======
72 120  
  121 + * Figure out how to find Visual Studio in Windows registry and see if
  122 + I can get it to work with make so I can simplify creation of
  123 + Windows releases.
  124 +
73 125 * Provide support in QPDFWriter for writing incremental updates.
74 126 Provide support in qpdf for preserving incremental updates. The
75 127 goal should be that QDF mode should be fully functional for files
... ...