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.
|