aboutsummaryrefslogtreecommitdiffstats
path: root/ChangeLog
diff options
context:
space:
mode:
Diffstat (limited to 'ChangeLog')
-rw-r--r--ChangeLog27
1 files changed, 27 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 51fb9aa9..0f53db35 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,30 @@
+2019-08-19 Jay Berkenbilt <ejb@ql.org>
+
+ * Properly handle name tokens containing # not preceding two
+ hexadecimal digits. Such names are invalid in PDF >= 1.2 but valid
+ in PDF 1.0 and 1.1. Prior to this fix, qpdf's behavior was to
+ treat such tokens as an error for PDF >= 1.2, but for older PDF
+ tokens, the name was silently accepted, and when the name token
+ was written out, the # was changed to #23, which is the correct
+ way to represent a # character. This behavior was problematic for
+ several reasons: one is that, ordinarily, content streams are not
+ parsed, so this would cause things like image references whose
+ names contained # to break. Also, even if the input file was 1.0
+ or 1.1, there's no guarantee that the output file wouldn't be
+ written at a new version, resulting in invalid name tokens. The
+ new behavior is to issue a warning upon encountering such a token
+ but to accept it, regardless of the PDF version. Such tokens are
+ written out properly as well. Additionally, the warning message
+ indicates that the tokens are invalid for PDF >= 1.2. Fixes #332.
+
+ * Non-compatible API change: remove
+ QPDFTokenizer::allowPoundAnywhereInName(). There were a lot of
+ problems with this. When it was used, any name tokens read would
+ always be modified on output, which is never the correct behavior.
+ This method used to signal QPDFTokenizer to not treat # specially
+ in name tokens, which resulted in the incorrect behavior whose fix
+ is described in the preceding item.
+
2019-08-18 Jay Berkenbilt <ejb@ql.org>
* When traversing the pages tree, if an invalid /Type key is