Commit 8320d16cd20240cc35ec84de6bb89f2d9431ea2d

Authored by Jay Berkenbilt
1 parent c5dc6d80

Update TODO

Showing 1 changed file with 19 additions and 62 deletions
... ... @@ -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.
... ...