Potrace Changelog

What's new in Potrace 1.16

Sep 17, 2019
  • PS1 - portability: use AC_USE_SYSTEM_EXTENSIONS instead of individual feature test macros.
  • PS1 - automake: handle conditional sources better.
  • PS1 - normalize rotation angle
  • PS1 - portability: use binary file i/o in OS/2, suggested by Dave Yeo.
  • PS1 - autoconf: renamed --enable-local-getopt as--with-included-getopt.
  • PS1 - test suite: adjusted tolerances.
  • PS1 - fixed a potential arithmetic overflow. Fixes bugs #23 and #24 reported by Henri Salo.

New in Potrace 1.15 (Aug 8, 2017)

  • (2017/08/05) PS1 - use round() instead of rint()
  • (2017/08/05) PS1 - portability: set both _POSIX_C_SOURCE and
  • _NETBSD_SOURCE to enable strdup prototype in string.h, as
  • _XOPEN_SOURCE=500 doesn't work on macOS, _XOPEN_SOURCE=600 doesn't
  • work on SunOS, and _POSIX_C_SOURCE alone doesn't work on Minix.
  • (2017/08/02) PS1 - fixed a potential arithmetic overflow.
  • (2017/06/17) PS1 - fixed a bug with very large bitmaps. Reported
  • by Michael Voříšek.
  • (2017/03/05) PS1 - autoconf: added --enable-local-getopt to avoid
  • using the system-wide getopt library (it may still end up being
  • used on GNU systems).
  • (2017/03/05) PS1 - portability: moved getopt.h to a subdirectory,
  • to be included only when needed. Reported by Daniel Macks.
  • (2017/03/05) PS1 - portability: use _XOPEN_SOURCE=600 to fix macOS
  • warning.
  • (2017/02/27) PS1 - fixed more buffer overflows (not security
  • critical), including one reported by Agostino Sarubbo. This also
  • fixes CVE-2017-12067.

New in Potrace 1.13 (Oct 5, 2016)

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

New in Potrace 1.12 (Mar 24, 2015)

  • PS1 - fixed memory overflow bug triggered by very large bitmaps.
  • PS1 - test suite: added binary-check, to check that files are written in binary mode. Mostly relevant on Windows.
  • PS1 - portability: fixed potential binary file mode bug on MinGW64.
  • PS1 - man pages: fixed leading blank page with groff -man -Tps.
  • PS1 - portability: made regular expressions in test suite POSIX compliant.
  • PS1 - distribution: removed libtool from distribution.

New in Potrace 1.11 (Feb 20, 2013)

  • PS1 - bitops.c: added "cc" as a clobbered register.
  • PS1 - GeoJSON backend: -u option affects rounding, not scaling.
  • CH1 - added GeoJSON backend.
  • 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.
  • PS1 - added support for BMP format with bitfields.

New in Potrace 1.10 (Feb 11, 2013)

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

New in Potrace 1.9 (Dec 22, 2010)

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

New in Potrace 1.8 (Jul 13, 2007)

  • PS1 - portability: use 'test' instead of '[' in shell scripts.
  • PS1 - test suite: run PDF checks as a separate test.
  • PS1 - fixed logical expressions in flate.c
  • PS1 - portability: replacements for inline and M_PI
  • PS1 - test suite: added checks for rotation in PostScript, PDF, and PGM backends
  • PS1 - pdf backend: added rotation
  • PS1 - pdf backend: renamed shipcom() function
  • PS1 - autoconf: check if getopt_long reorders its arguments.
  • PS1 - made pseudo-random number generation thread-safe and much faster.
  • PS1 - renamed some structures in lzw.c, main.h
  • PS1 - portability: fixed some compiler issues for
  • Amiga, reported by Andreas Kleinert.
  • PS1 - main.c: changed some return types to void.
  • PS1 - made curve.c:privcurve_free_members() static.
  • PS1 - renamed README.win as README-WIN
  • PS1 - portability: use binary file i/o in Cygwin. Suggested by Henry He.
  • PS1 - potracelib: fixed allocation bug, reported by
  • Jung Shin.
  • PS1 - potracelib_demo.c: free resources properly.
  • PS1 - initialize unused private state to 0.
  • PS1 - decompose.c: improved memory allocation scheme.
  • 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.