aboutsummaryrefslogtreecommitdiffstats
path: root/ChangeLog
blob: b17540a73044ad975b74839ada26f45bae01cd74 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
2010-04-25  Jay Berkenbilt  <ejb@ql.org>

	* 2.1.5: release

	* libqpdf/QPDF_encryption.cc (compute_encryption_key): remove
	restrictions on length of file identifier string.  (Fixes
	qpdf-Bugs-2991412.)

2010-04-18  Jay Berkenbilt  <ejb@ql.org>

	* 2.1.4: release

	* libqpdf/QPDFWriter.cc (writeLinearized): the padding calculation
	fix in 2.1.2 was applied in only one place but it was needed in
	two places since there are actually two cross reference streams in
	a linearized file.  The new padding calculation is now used for
	both streams.  Hopefully this should put an end to linearization
	padding problems.  (Fixes qpdf-Bugs-2979219.)

2010-04-10  Jay Berkenbilt  <ejb@ql.org>

	* qpdf/qpdf.cc (main): Since qpdf --check only checks syntax and
	stream encoding without doing any semantic checks, make the output
	clearer when no errors around found.  This is inspired by
	qpdf-Bugs-2983225.

2010-03-27  Jay Berkenbilt  <ejb@ql.org>

	* 2.1.3: release

	* libqpdf/QPDF_optimization.cc (flattenScalarReferences): Flatten
	scalar references for unreferenced objects as well as those seen
	during traversal of the file.  This matters when preserving object
	streams that contain unreferenced objects with indirect scalars.
	(Fixes qpdf-Bugs-2974522.)  Updated TODO with a description of a
	possibly better fix involving removal of flattenScalarReferences.

	* libqpdf/Pl_AES_PDF.cc (finish): Don't complain if an AES input
	buffer is not a multiple of 16 bytes.  Instead, just pad with
	nulls and hope for the best.  PDF files have been encountered "in
	the wild" that contain AES buffers that aren't a multiple of 16
	bytes.

2010-01-24  Jay Berkenbilt  <ejb@ql.org>

	* 2.1.2: release

	* libqpdf/QPDFWriter.cc: fix logic error in padding calculation.
	When writing linearized files with cross reference streams, the
	padding calculation failed to take differences in sizes of
	compressed data between pass 1 and pass 2 into consideration.

2009-12-14  Jay Berkenbilt  <ejb@ql.org>

	* 2.1.1: release

	* qpdf/qtest/qpdf.test: improve test for acroread to make sure it
	actually works and is not just present in the path.

2009-12-13  Jay Berkenbilt  <ejb@ql.org>

	* libqpdf/qpdf/Pl_AES_PDF.hh: include <stdint.h>, if available, so
	we have valid definitions of uint32_t.

2009-10-30  Jay Berkenbilt  <ejb@ql.org>

	* 2.1: release

	* libqpdf/QPDF.cc: be more forgiving of extraneous whitespace in
	the xref table and while recovering from error conditions.

2009-10-26  Jay Berkenbilt  <ejb@ql.org>

	* Work around failure of PCRE test case; this test case exercises
	an aspect of PCRE that qpdf does not use, and the test fails with
	the version of PCRE on Red Hat Enterprise Linux 5, so we ignore
	failure on this particular test case.

	* Fix RPM .spec file to include "C" examples

2009-10-24  Jay Berkenbilt  <ejb@ql.org>

	* 2.1.rc1: release

	* Provide interfaces for getting qpdf's own version number

2009-10-19  Jay Berkenbilt  <ejb@ql.org>

	* include/qpdf/QPDF.hh (QPDF): getWarnings now returns a list of
	QPDFExc rather than a list of strings.  This way, warnings may be
	inspected in more detail.

	* Include information about the last object read in most error
	messages.  Most of the time, this will provide a good hint as to
	which object contains the error, but it's possible that the last
	object read may not necessarily be the one that has the error if
	the erroneous object was previously read and cached.

2009-10-18  Jay Berkenbilt  <ejb@ql.org>

	* If forcing version, disable object stream creation and/or
	encryption if previous specifications are incompatible with new
	version.  It is still possible that PDF content, compression
	schemes, etc., may be incompatible with the new version, but at
	least this way, older viewers will at least have a chance.

	* libqpdf/QPDFWriter.cc (unparseObject): avoid compressing
	Metadata streams if possible.

2009-10-13  Jay Berkenbilt  <ejb@ql.org>

	* Upgrade embedded qtest to version 1.4, which allows the test
	suite to be run in Windows with MSYS and ActiveState Perl rather
	than requiring Cygwin perl.

2009-10-04  Jay Berkenbilt  <ejb@ql.org>

	* Implement support AES encrypt and crypt filters.  Implementation
	is not fully tested due to lack of test data but has been tested
	for several cases.

2009-10-04  Jay Berkenbilt  <ejb@ql.org>

	* Add methods to QPDFWriter and corresponding command line
	arguments to qpdf to set the minimum output PDF version and also
	to force the version to a particular value.

	* libqpdf/QPDF.cc (processXRefStream): warn and ignore extra xref
	stream entries when stream is larger than reported size.  This
	used to be a fatal error.  (Fixes qpdf-Bugs-2872265.)

2009-09-27  Jay Berkenbilt  <ejb@ql.org>

	* Add several methods to query permissions controlled by the
	encryption dictionary.  Note that qpdf does not enforce these
	permissions even though it allows the user to query them.

	* The function QPDF::getUserPassword returned the user password
	with the required padding as specified by the PDF specification.
	This is seldom useful to users.  This function has been replaced
	by QPDF::getPaddedUserPassword.  Call the new
	QPDF::getTrimmedUserPassword to retreive the user password in a
	human-readable format.

	* qpdf/qpdf.cc (main): qpdf --check now prints the PDF version
	number in addition to its other output.

2009-09-26  Jay Berkenbilt  <ejb@ql.org>

	* Removed all references to QEXC; now using std::runtime_error and
	std::logic_error and their subclasses for all exceptions.

2009-05-03  Jay Berkenbilt  <ejb@ql.org>

	* 2.0.6: release

	* libqpdf/QPDF_Stream.cc (filterable): ignore /DecodeParms if it's
	not a type we recognize.  (Fixes qpdf-Bugs-2779746.)

2009-03-10  Jay Berkenbilt  <ejb@ql.org>

	* 2.0.5: release

2009-03-09  Jay Berkenbilt  <ejb@ql.org>

	* libqpdf/Pl_LZWDecoder.cc: adjust LZWDecoder full table
	detection, now having been able to adequately test boundary
	conditions both and with and without early code change.  Also
	compared implementation with other LZW decoders.

2009-03-08  Jay Berkenbilt  <ejb@ql.org>

	* qpdf/fix-qdf (write_ostream): Adjust offsets while writing
	object streams to account for changes in the length of the
	dictionary and offset tables.

	* qpdf/qpdf.cc (main): In check mode, in addition to checking
	structure of file, attempt to decode all stream data.

	* libqpdf/QPDFWriter.cc (QPDFWriter::writeObject): In QDF mode,
	write a comment to the QDF file before each object that indicates
	the object ID of the corresponding object from the original file.
	Add --no-original-object-ids flag to qpdf and
	setSuppressOriginalObjectIDs() method to QPDFWriter to turn this
	behavior off.

	* libqpdf/QPDF.cc (QPDF::pipeStreamData): Issue a warning instead
	of failing if there is a problem found while decoding stream.

	* qpdf/qpdf.cc: Exit with a status of 3 if warnings were found
	regardless of what mode we're in.

2009-02-21  Jay Berkenbilt  <ejb@ql.org>

	* 2.0.4: release

2009-02-20  Jay Berkenbilt  <ejb@ql.org>

	* Fix many typos in comments and strings.

	* qpdf/qpdf.cc: in --check mode, if there are warnings but no
	errors, exit with a status of 3.

	* libqpdf/QPDF.cc (QPDF::insertXrefEntry): when recovering the
	cross-reference table, have objects we encounter later in the file
	supersede those we found earlier.  This improves the chances of
	being able to recover appended files with damaged cross-reference
	tables.

2009-02-19  Jay Berkenbilt  <ejb@ql.org>

	* libqpdf/Pl_LZWDecoder.cc: correct logic error for previously
	untested case of running the LZW decoder without the "early code
	change" flag.  Thanks to a bug report from "Atom Smasher", I
	finally was able to obtain an input stream compressed in this way.

2009-02-15  Jay Berkenbilt  <ejb@ql.org>

	* 2.0.3: release

2008-12-11  Jay Berkenbilt  <ejb@ql.org>

	* qpdf/qpdf.cc (main): Accept -help and -version as well as --help
	and --version

2008-11-23  Jay Berkenbilt  <ejb@ql.org>

	* Include stdio.h in a few files for proper compilation with (yet
	to be released) gcc 4.4

	* updated embedded qtest to version 1.3

	* libqpdf/QPDF_String.cc (QPDF_String::getUTF8Val): handle
	UTF-16BE properly rather than just treating the string as a string
	of 16-bit characters.

2008-06-30  Jay Berkenbilt  <ejb@ql.org>

	* 2.0.2: release

	* updated embedded qtest to version 1.2 (includes previous
	changes)

2008-06-07  Jay Berkenbilt  <ejb@ql.org>

	* qpdf/qtest/qpdf/diff-encrypted: change == to = so that the test
	suite passes when /bin/sh is not bash

2008-05-07  Jay Berkenbilt  <ejb@ql.org>

	* qtest/bin/qtest-driver (run_test): increase timeout for qtest to
	be more tolerant of slow machines

2008-05-06  Jay Berkenbilt  <ejb@ql.org>

	* 2.0.1: release

	* make/rules.mk: fix logic with .dep generation for .lo files so
	that dependencies work properly with libtool

2008-05-05  Jay Berkenbilt  <ejb@ql.org>

	* libqpdf/qpdf/MD5.hh: fix header to be 64-bit clean

	* configure.ac: add tests for sized integer types

2008-05-04  Jay Berkenbilt  <ejb@ql.org>

	* libqpdf/QPDF_encryption.cc: do not assume size_t is unsigned int

	* qpdf/qtest/qpdf.test: removed locale-specific tests.  These were
	really to check bugs in perl 5.8.0 and are obsolete now.  They
	also make the test suite fail in some environments that don't have
	all the locales fully configured.

	* various: updated several files for gcc 4.3 by adding missing
	includes (string.h, stdlib.h)

2008-04-26  Jay Berkenbilt  <ejb@ql.org>

	* 2.0: initial public release