aboutsummaryrefslogtreecommitdiffstats
path: root/TODO
diff options
context:
space:
mode:
authorJay Berkenbilt <ejb@ql.org>2019-01-19 16:25:19 +0100
committerJay Berkenbilt <ejb@ql.org>2019-01-19 16:25:19 +0100
commitedc3b309bce1f9aed383a4911ff7ea5b6bb7c9e9 (patch)
tree6036113b199fd7198144338c6418c482df61fd36 /TODO
parentc18ee440a38c7078e92c917bbe8fe1ad290a292d (diff)
downloadqpdf-edc3b309bce1f9aed383a4911ff7ea5b6bb7c9e9.tar.zst
TODO
Diffstat (limited to 'TODO')
-rw-r--r--TODO64
1 files changed, 64 insertions, 0 deletions
diff --git a/TODO b/TODO
index 627ef234..b4c45448 100644
--- a/TODO
+++ b/TODO
@@ -1,3 +1,60 @@
+Pending Doc Updates
+===================
+
+Unicode Passwords
+
+Release notes
+
+* Windows now interprets CLI arguments as Unicode. Explain the
+ non-compatibility and how it is unavoidable.
+* Refer to the manual for the rest
+
+Regular manual
+
+* Explain the password modes, how they work, and when you would need
+ to use other than auto (e.g. overriding automatic detection of
+ UTF-8, forcibly creating a file with incorrect encoding for tests,
+ etc.)
+* Explain limitations around BiDi and normalize
+* Explain that the features are CLI and that the library, for
+ compatibility, still expects bytes. Refer to the transcoding methods.
+ - Document that users should pass an appropriately encoded string:
+ PDF Doc for R3 and R4, and UTF-8 for R5 and R6, and that they can
+ use QUtil::utf8_to_pdf_doc to achieve this.
+* Talk about automatic password recovery and what it does.
+
+Possible text
+
+ - password modes:
+ - hex-bytes: hex-encoded bytes for password
+ - bytes: take the bytes as they are
+ - unicode: utf8-encoded, with notes about Windows doing this by default
+ - auto: determine automatically
+ - Note that --password-is-hex-key applies only to the main password
+ and is only related to reading. It bypasses the password checks
+ entirely and is not a password mode. The --password-mode option
+ tells qpdf how to interpret the password used in writing.
+ - Behavior of unicode: Fail if the password is not valid UTF-8.
+ For R <= 4 fail if the password cannot be transcoded to PDFDoc
+ without loss.
+ - Behavior of auto: For R >= 5 fail if the password is not valid
+ UTF-8 and tell the user about bytes. For R <= 4, if string is
+ valid UTF-8 and is able to be successfully transcoded to PDFDoc,
+ transcode it; otherwise fall back to bytes.
+ - For bytes and hexbytes, just treat the passwords as given,
+ documenting the change for Windows that incoming arguments are
+ UTF-8 starting in 8.4.
+ - Note that, for Windows, there is no guaranteed compatibility
+ because of the switch to wmain. For Non-Windows, "bytes" gives
+ backward compatibility, but "auto" will fix the bug of qpdf
+ generating invalid passwords when accented characters were used.
+ Take special note of @file password arguments, which are not
+ converted automatically to Unicode on Windows like CLI args are.
+
+ Don't bother with normalize and BiDi for Unicode as that requires
+ something like ICU. If we ever do that, we can add additional flags
+ and method calls.
+
Soon
====
@@ -111,6 +168,13 @@ I find it useful to make reference to them in this list
* Figure out how to render Gajić correctly in the PDF version of the
qpdf manual.
+ * Decide whether errors thrown by checkLinearization should be
+ converted to warnings. Take a pass through the linearization code
+ to see whether it's correct. Be able to view linearization data
+ even when there are errors. See linearization label in github.
+
+ * Consider creating a PPA for Ubuntu
+
* Add method to push inheritable resources to a single page by
walking up and copying without overwrite. Above logic will also be
sufficient to fix the limitation in