summaryrefslogtreecommitdiff
path: root/Build/source/libs/potrace/potrace-src/ChangeLog
blob: 79b2574698f1eb0ca92856cdf1b65b43adb21a2f (plain)
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
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
ChangeLog

v1.14 2017/02/19
	(2017/02/19) PS1 - speed: use clang as default compiler if
	available, and no longer use -ffloat-store even with gcc.
	(2017/02/18) PS1 - corrected some exit codes, added some missing
	error handlers.
	(2017/02/17) PS1 - mkbitmap: bugfixes and improvements in parsing
	image files.
	(2017/02/15) PS1 - truncate the image size when bitmap data ends
	prematurely. This fixes CVE-2016-8686, where Potrace appeared to
	be "hanging" on a crafted input file.
	(2017/02/14) PS1 - test suite: added tests for plain pnm files.
	(2017/01/08) PS1 - fixed potential compiler issues due to signed
	arithmetic overflow and arithmetic shifting.
	(2017/01/07) PS1 - enable use of negative dy in bitmap data.
	(2017/01/07) PS1 - test suite: moved data files to a subdirectory.
	(2017/01/07) PS1 - test suite: added a check for -i flag.
	(2017/01/07) PS1 - fixed buffer overflow CVE-2016-8685, reported
	by Agostino Sarubbo.
	(2015/10/24) PS1 - portability: use const char * for string
	constants, required by C++11. Reported by Martin Gieseking.
	(2015/10/24) PS1 - portability: extra spaces around string macros,
	required by C++11. Reported by Martin Gieseking.
	(2015/10/24) PS1 - portability: added more potential C compilers
	to autoconf. Suggested by Nelson Beebe.

v1.13 2015/10/22
	(2015/07/18) PS1 - fixed heap overflows, null pointer dereference
	bugs and a memory leak. Reported by Agostino Sarubbo.
	(2015/05/17) PS1 - man page: show which backends are dimension
	based, and state more clearly that svg backend defaults to 72dpi.
	(2015/04/11) PS1 - portability: ssize_t not supported on some
	systems; use ptrdiff_t instead. Reported by Martin Gieseking.
	(2015/03/28) PS1 - portability: added missing #includes for c99,
	reported by Nelson Beebe.
	(2015/03/27) PS1 - include config.h before other header files,
	reported by Peter Breitenlohner.
	(2015/03/26) PS1 - fixed division by zero bug triggered by bitmap
	of dimension 1x0. Reported by Tomasz Buchert.

v1.12 2015/03/24
	(2015/03/20) PS1 - fixed memory overflow bug triggered by very
	large bitmaps. Fixes RedHat bug #955808 reported by Vincent Danen
	and Debian bug #778646 reported by Moritz Muehlenhoff.
	(2014/09/06) PS1 - test suite: added binary-check, to check that
	files are written in binary mode. Mostly relevant on Windows.
	(2014/09/06) PS1 - portability: fixed potential binary file mode
	bug on MinGW64.
	(2014/03/30) PS1 - man pages: fixed leading blank page with
	groff -man -Tps.
	(2013/12/29) PS1 - portability: made regular expressions in test
	suite POSIX compliant, reported by Ben Bullock.
	(2013/05/14) PS1 - distribution: removed libtool from distribution.

v1.11 2013/02/19
	(2013/02/10) PS1 - bitops.c: added "cc" as a clobbered register.
	(2012/09/13) PS1 - GeoJSON backend: -u option affects rounding,
	not scaling.
	(2012/09/12) CH1 - added GeoJSON backend.
	(2012/03/04) PS1 - minor change in behavior of alphamax parameter:
	make a corner if alpha >= alphamax (instead of >). This makes
	little practical difference, except when alphamax = 0, in which
	case we now get a polygon. Fixes bug #3495854, reported by
	scribbleink.
	(2012/02/24) PS1 - added support for BMP format with bitfields.

v1.10 2011/08/19
	(2011/08/07) PS1 - added --tight option
	(2011/08/05) PS1 - backends: simplified dimension calculations
	(2011/08/05) PS1 - eps backend: prevent integer overflow in
	bounding box.
	(2011/08/05) PS1 - disallow resolution of 0 dpi.
	(2011/08/05) PS1 - man page: added BACKEND TYPES section
	(2011/08/05) PS1 - fixed default scaling at 72dpi for
	variable-sized backends
	(2011/08/02) PS1 - new gimppath backend produces SVG output
	suitable for current versions of Gimp.
	(2011/08/02) PS1 - added a --flat option for the SVG backend.
	(2011/07/31) PS1 - test suite: renamed *.out files to prevent
	make's built-in implicit rules from accidentally overwriting them.
	(2011/07/26) PS1 - added DXF backend. Thanks to Jonas Benedett
	Dorr for testing.
	(2011/07/26) PS1 - use high resolution bounding box in EPS, PDF,
	and SVG backends
	(2011/05/13) PS1 - autoconf: CADD can now be given at compile time

v1.9 2010/12/21
	(2010/12/20) PS1 - getopt.h: fixed compiler warnings
	(2010/12/20) PS1 - added --tty option to specify progress bar
	rendering at runtime.
	(2010/12/20) PS1 - added simplified progress bar for Windows or
	other dumb terminals. New --enable-dumb-tty configuration option.
	(2010/12/16) PS1 - test suite: fixed bug where a failed test was
	not reported in backend-check.sh
	(2010/12/15) PS1 - test suite: support for $EXEEXT
	(2010/12/15) PS1 - optimized penalty3 inner loop, 4.6% speedup.
	(2010/12/15) PS1 - autoconf: new CADD variable to add to CFLAGS
	(2010/12/15) PS1 - fixed some compiler warnings, added some error
	handlers, and added some cosmetic top-level free's.
	(2010/11/25) PS1 - added support for some BMP version 4 and 5
	files, and for top-down BMP files. Suggested by Kanwar Sangwan.
	(2010/11/13) PS1 - don't enter filter mode if -- is used
	(2010/11/09) PS1 - greymap.h, bitmap.h: drop unneeded dependencies
	(2010/09/07) PS1 - autoconf: fixed getopt_long test to allow
	cross-compiling, bug #3061403, reported by Igor Filippov.
	(2010/08/31) PS1 - test suite: added environment variables
	CHECK_POTRACE and CHECK_MKBITMAP to allow binaries outside the
	build tree to be tested
	(2010/08/09) PS1 - autoconf: converted to libtool
	(2010/08/05) PS1 - autoconf: renamed configure.in as configure.ac
	(2010/08/05) PS1 - autoconf: added --with-libpotrace to optionally
	install the Potrace library and header files.
	(2009/08/03) PS1 - portability: c++ wrapper in potracelib.h,
	suggested by Peter Jankuliak.
	(2009/05/13) PS1 - added pdfpage backend for fixed pagesize PDF
	output.
	(2009/04/07) PS1 - decompose.c: minor optimization
	(2008/10/08) PS1 - mkbitmap: speed increase by 8% to 26% by
	eliminating unnecessary bounds checks and interpolation.
	(2008/10/05) PS1 - trace.c: separate function for path reversal
	(2008/10/03) PS1 - progress.h: do the right thing if progress ==
	NULL
	(2008/10/03) PS1 - moved detrand() to auxiliary.h
	(2008/08/21) PS1 - mkbitmap: added --blur option.
	(2008/08/12) PS1 - combined the old -V option with -v.
	(2008/08/12) PS1 - test suite: adjusted tolerances to fix bug
	#1745456
	(2007/12/31) PS1 - include curve.h where path_t is used
	(2007/12/28) PS1 - flush stderr when interleaved with stdout
	(2007/12/28) PS1 - portability: don't hardcode size of short int
	(2007/11/09) PS1 - eps backend: use save-restore to avoid
	polluting caller's dictionary and for page independence.
	(2007/05/22) PS1 - xfig backend: added depth to opaque components
	to avoid them floating to the background. Suggested by Rafael
	Laboissiere.

v1.8 2007/04/09
	(2007/04/08) PS1 - portability: use 'test' instead of '[' in shell
	scripts.
	(2007/04/08) PS1 - test suite: run PDF checks as a separate test.
	(2007/04/06) PS1 - fixed logical expressions in flate.c
	(2007/02/19) PS1 - portability: replacements for inline and M_PI
	(2007/01/16) PS1 - test suite: added checks for rotation in
	PostScript, PDF, and PGM backends
	(2007/01/16) PS1 - pdf backend: added rotation
	(2007/01/16) PS1 - pdf backend: renamed shipcom() function
	(2007/01/14) PS1 - autoconf: check if getopt_long reorders its
	arguments.
	(2007/01/13) PS1 - made pseudo-random number generation
	thread-safe and much faster.
	(2006/12/20) PS1 - renamed some structures in lzw.c, main.h
	(2006/12/20) PS1 - portability: fixed some compiler issues for
	Amiga, reported by Andreas Kleinert.
	(2006/12/20) PS1 - main.c: changed some return types to void.
	(2006/08/14) PS1 - made curve.c:privcurve_free_members() static.
	(2005/12/22) PS1 - renamed README.win as README-WIN
	(2005/11/11) PS1 - portability: use binary file i/o in Cygwin.
	Suggested by Henry He.
	(2005/06/24) PS1 - potracelib: fixed allocation bug, reported by
	Jung Shin.
	(2005/06/23) PS1 - potracelib_demo.c: free resources properly.
	(2005/06/23) PS1 - initialize unused private state to 0.
	(2005/06/23) PS1 - decompose.c: improved memory allocation scheme.
	(2005/05/06) PS1 - added "alphacurve" field to private curve
	structure, so that backends that don't use the public interface
	(such as the EPS backend) can be warned of non-conforming curves.

v1.7 2005/03/06
	(2005/03/05) PS1 - fixed progress bar subrange bug.

v1.6 2005/02/27
	(2005/02/22) PS1 - added "epsilon" feature to progress bar.
	(2005/02/22) PS1 - documentation: changed potracelib documentation
	to TeX format.
	(2005/02/07) PS1 - tweaked progress bar
	(2005/01/24) PS1 - added --progress option to potrace frontend.
	(2005/01/24) PS1 - potracelib: added progress bar interface.
	(2005/01/23) PS1 - fixed overflow bug in fast summing code.
	(2005/01/23) PS1 - rewrote trace.c:bestpolygon(). This speeds up
	potrace by 20% on typical data and up to 60% in some bad cases.
	(2004/12/07) PS1 - documentation: added potracelib.txt
	(2004/12/07) PS1 - renamed aux.h as auxiliary.h, since aux is an
	invalid filename in Windows.
	(2004/12/06) PS1 - API: added default parameters
	(2004/12/06) PS1 - API: added potrace_state_t
	(2004/12/06) PS1 - API: added "const" qualifiers
	(2004/12/06) PS1 - removed conv and areac fields from privpath_t.
	(2004/12/06) PS1 - changed bounding box handling in decompose.c
	(2004/12/06) PS1 - split curve_t into public and private parts.
	(2004/12/06) PS1 - moved curve/path allocation to curve.c.
	(2004/12/06) PS1 - renamed a type in lzw.h.
	(2004/12/06) PS1 - renamed source files.
	(2004/12/04) PS1 - split path_t into public and private parts.
	(2004/12/03) PS1 - split core functionality from user interface.
	(2004/12/03) PS1 - moved parts of bitmap.h to potracelib.h. Split
	bitmap.c into bitmap.c and bitmap_io.c. Moved path decomposition
	auxiliary functions from bitmap.c to path.c.
	(2004/12/03) PS1 - converted some stray local functions to static
	(2004/12/01) PS1 - moved basic curve data type definitions to
	potracelib.h
	(2004/12/01) PS1 - collected some repeatedly used macros in aux.h
	(2004/12/01) PS1 - started to create API to potrace core
	functionality in potracelib.c and potracelib.h. Also added new
	libpotrace.a target.
	(2004/12/01) PS1 - made curve.c and path.c reentrant by removing
	global variable "info".
	(2004/11/28) PS1 - made a85* auxiliary functions static in
	flate.c.
	(2004/11/28) PS1 - pdf backend: removed arbitrary page limit.
	(2004/11/24) PS1 - pdf backend: replaced ftell() by explicit byte
	count to work correctly with stdout.
	(2004/11/24) PS1 - portability: use binary file i/o in MinGW.
	(2004/10/08) PS1 - minor cleanup in backend_pdf.c.
	(2004/09/21) PS1 - replace -O3 compilation default by -O2; inlined
	critical functions manually instead.
	(2004/09/18) PS1 - slightly optimized multiplications in
	curve.c:bezier(). Thanks to Thomas M.Ott for suggesting it.
	(2004/09/16) PS1 - list of backends in help message is now
	generated.
	(2004/09/16) PS1 - test suite: added test for pdf backend.
	(2004/09/14) PS1 - removed bits.c, renamed bits.h to bitops.h, and
	use static inline functions instead of macros.
	(2004/09/14) PS1 - test suite: adjusted tolerances.
	(2004/09/12) PS1 - mkbitmap: when reading plain pbm files, use
	colors 0 and 255, not 0 and 1.
	(2004/09/12) PS1 - potrace and mkbitmap: don't complain about
	"junk at the end of file" if the junk is whitespace and
	comments. Treat files which contain only whitespace and comments
	as empty.
	(2004/08/05) TA1 - added pdf backend.

v1.5 2004/07/08
	(2004/07/08) PS1 - removed dependency on external "compress"
	program. Removed ztops.c, added lzw.c, bits.c.
	(2004/03/17) PS1 - don't leave temporary file /tmp/have_compress.*
	lying around.
	(2004/03/06) PS1 - fixed a type error in have_compress.c:28.

v1.4 2004/03/06
	(2004/03/05) PS1 - removed the compile-time check for the
	"compress" program and replaced it by a run-time check.
	(2004/03/03) PS1 - ztops.c: fixed compression bug where garbage
	was added after the end of stream.
	(2004/02/09) PS1 - further optimized the speed of the function
	path.c:pathlist_to_tree, which now takes less than 0.1% of total
	running time.
	(2004/02/09) PS1 - distribution: removed potrace.{ps,pdf} from
	distribution, changed textfiles to DOS mode in Cygwin distribution
	(2004/01/19) PS1 - corrected a bug in 1.2 which caused an enormous
	slowdown in the function path.c:pathlist_to_tree.
	(2004/01/17) PS1 - test suite: better quoting in shell scripts to
	be more robust against spaces in filenames etc.
	(2004/01/17) PS1 - test suite and ztops.c: respect TEMPDIR
	environment variable, if set.

v1.3 2004/01/15
	(2004/01/14) PS1 - test suite: adjusted tolerances.
	(2004/01/13) PS1 - when reading a bitmap of width or height 0,
	pretend the offending dimension is 1. This is not 100% logical
	in all cases, but better than producing garbage.
	(2004/01/13) PS1 - fixed bounding box in xfig backend.
	(2004/01/13) PS1 - added missing gsave/grestore to ps backend.
	(2004/01/07) PS1 - autoconf: search for zlib.h in
	${prefix}/include and for libz.so in ${prefix}/lib, in case they
	are not found elsewhere.
	(2004/01/07) PS1 - eliminated some unused variables.
        (2004/01/07) PS1 - portability: eliminated typeof() from
	mkbitmap.c
	(2004/01/07) PS1 - test suite: added a test for empty bitmaps.
	(2003/12/25) PS1 - fixed bug #866223: potrace crashes when applied
	to an empty bitmap.
	(2003/12/25) PS1 - when options -2 or -3 are unsupported, ignore
	them rather than failing, for improved compatibility.
	(2003/12/25) PS1 - autoconf: added --disable-zlib configuration
	option and improved error messages for missing zlib.h or libz.so
	(2003/12/25) PS1 - portability: eliminated dynamic arrays in
	mkbitmap.c
	(2003/12/25) PS1 - test suite: added a check for mkbitmap.
	(2003/12/25) PS1 - test suite: more portable filesize checking in
	backend-check.sh

v1.2 2003/12/23
	(2003/12/23) PS1 - added an xfig backend.
	(2003/12/23) PS1 - added --group option to group related shapes
	together in SVG backend.
	(2003/12/23) PS1 - added --opaque option to paint white shapes
	opaquely, instead of leaving them transparent, in PS/EPS and SVG
	backends.
	(2003/12/23) PS1 - rewrote path decomposition algorithm to
	calculate path containment tree, to be used for grouping.
	(2003/12/23) PS1 - test suite: added a check of postscript output
	using ghostscript.
	(2003/09/18) PS1 - autoconf: added tests for -lm and -lz
	libraries, and for zlib.h header file.
	(2003/09/18) PS1 - portability: cleaned up code so that it can be
	compiled with a C++ compiler.
	(2003/09/17) PS1 - code cleanup in main.c:main().
	(2003/09/17) PS1 - added mkbitmap program.
	(2003/09/17) PS1 - added -ffloat-store compiler flag for improved
	floating point predictability.
	(2003/09/12) PS1 - test suite: added test for BMP runlength
	encoding.
	(2003/09/12) PS1 - fixed frontend for BMP runlength encoding.
	(2003/09/11) PS1 - autoconf: added test to work around gcc
	compiler bug 12243, which affected curve.c:adjust_vertices().
	(2003/09/11) PS1 - renamed pbm.c as bitmap.c, pgm.c as greymap.c
	(2003/09/11) PS1 - moved some bitmap details from path.c to pbm.c
	(2003/09/10) PS1 - renamed pbm.h macros to start with BM_
	(2003/09/02) PS1 - portability: added missing fallback value for
	M_PI to backend_pgm.c.
	(2003/08/28) PS1 - specialized matrix solving code for n=2.
	(2003/08/28) PS1 - portability (and scalability): eliminated
	dynamic arrays.
	(2003/08/28) PS1 - portability: replaced vsnprintf by vsprintf.
	(2003/08/28) PS1 - portability: provided fallback value for M_PI
	(2003/08/27) PS1 - autoconf: now checks whether the compress
	program works, not just whether it exists.
	(2003/08/27) PS1 - test suite: wrote three tests for "make check"
	(2003/08/27) PS1 - portability: fixed some floating point errors
	on DEC Alpha: division by zero and log of zero.
	(2003/08/27) PS1 - changed bitmap representation to take advantage
	of 64-bit architectures.
	(2003/08/27) PS1 - changed default scaling in ps and eps modes for
	small page sizes.
	(2003/08/26) PS1 - allow arguments of command line options -b, -z,
	-P to be abbreviated by "unambiguous prefix".
	(2003/08/26) PS1 - added rotation to gimppath backend.
	(2003/08/24) PS1 - portability: removed GNU extensions from printf
	format strings in backend_eps.
	(2003/08/22) PS1 - converted --unit to double value.
	(2003/08/22) PS1 - added experimental gimppath backend.
	(2003/08/20) PS1 - close paths in postscript/eps backend.
	(2003/08/20) PS1 - fixed bug in parsing command line options: long
	options --cleartext, --level2, --level3 did not work properly.
	Thanks to George Williams for reporting this bug.

v1.1 2003/08/18
	(2003/08/17) PS1 - replaced calc_lon algorithm by a faster
	implementation. This results in speedups of up to factor 3.3 for
	certain large input files.
	(2003/08/17) PS1 - added --invert option.
	(2003/08/17) PS1 - improved error messages on wrong file format.
	(2003/08/17) PS1 - code cleanup to build under fussier compilers.
	Thanks to Nelson Beebe for submitting compiler logs for a large
	number of setups.
	(2003/08/17) PS1 - renamed curve.c:quad as quadform to avoid name
	clash on IBM AIX, Compaq/DEC ODF/1.
	(2003/08/17) PS1 - autoconf: let user override CFLAGS at configure
	time, and use -Wall and -O3 only for gcc compiler
	(2003/08/16) PS1 - added --blacklevel option to control
	image-to-bitmap conversion
	(2003/08/16) PS1 - added ability to read BMP files. Changed error
	reporting in case of empty files, or if there is junk at the end
	of a file in multipage mode.
	(2003/08/14) PS1 - as a convenience, now also read files in PGM
	and PPM format and convert to bitmap by simple threshold method.
	This is because many programs, including the Gimp and the *topnm
	tools, produce PNM output which must be further converted to PBM.
	(2003/08/14) PS1 - rearranged order of options in usage message.
	(2003/08/14) PS1 - implemented -d1 option for SVG backend. This
	outputs a jaggy bitmap with no smoothing.
	(2003/08/14) PS1 - autoconf: improved handling of
	--enable-compress
	(2003/08/14) PS1 - added SVG backend.
	(2003/08/14) PS1 - renamed old -s option as -S
	(2003/08/12) PS1 - added README.win
	(2003/08/12) PS1 - autoconf: fixed bug #787182: added non-standard
	compile time options to help message for ./configure script

v1.0 2003/08/10
	(2003/08/10) PS1 - added file i/o code
	(2003/08/08) PS1 - optimized number of times the penalty3 function
	is called. Speedups of factor 2.7 were observed on large files.
	(2003/08/08) PS1 - added --opttolerance and --alphamax options.
	(2003/08/07) PS1 - autoconf: changed configure.in so that test for
	compress is omitted when the user overrides it - this prevents a
	wrong cached value to be read.
	(2003/08/07) PS1 - keep output flushed in postscript mode
	(2003/08/07) PS1 - fixed memory leak in multiple page mode
	(2003/08/06) PS1 - replaced --opticurve by --longcurve option;
	opticurve is now the default
	(2003/08/06) PS1 - added opticurve sensitivity to pgm backend
	(2003/08/06) PS1 - restricted opticurves to be bounded away from
	180 degrees
	(2003/08/06) PS1 - allow margins and papersize to determine width
	if it is not defined by other means in postscript mode
	(2003/08/06) PS1 - added ability to read multiple bitmaps in
	postscript mode
	(2003/08/05) PS1 - new --longcoding option
	(2003/08/05) PS1 - new optimized eps backend which works with
	opticurve.
	(2003/07/31) PS1 - replaced O(n^3) calc_lon algorithm by a new
	O(n^2) algorithm. Observed speedups of factor 80.
	(2003/07/27) PS1 - added --opticurve option and integrated
	opticurve code in curve.c
	(2003/06/04) PS1 - made bm_to_pathlist a lot more efficient by
	scanning and clearing only bounding box of mask in inner scan.
	(2002/11/17) PS1 - changed bm_to_pathlist prototype to use
	explicit return value.
	(2002/10/09) PS1 - autoconf: added automake/autoconf scripts in
	preparation for public distribution.