# Changelog for pstoedit

## New or changed in 4.02:

- Improve the build process to build also the GUI if QT is installed.
- Include a .desktop and Icon file for better Linux integration.
- Update the autoconf tools to enable the usage of homebrew.
- Update reflecting changes in GhostScript 10.03 and 10.04 (disable some operators used by pstoedit).
- Fix a few warnings issued by Coverity.
- Improve code for g++ V14.
- Implemented sourceforge feature request #4 (show -nc option in GUI).

## New or changed in 4.01:

- Add creation of startmenu and desktop shortcuts in Windows installer.
- Include some minor header patches for support of autotrace.
- Improvements to the pcb-rnd driver contributed by Erich Heinzle. Limit polygon exports to pcb-rnd subcircuits to only those paths which are not self intersecting.
- Fixed a bug found on MacOS reported by Sean Molenaar.
- Some minor improvements to the GUI.
- Some minor code cleanups to reduce warnings from clang compiler.
- Some code changes to address a warning from AddressSanitizer.
- Enable installation with winget.

## New or changed in 4.00:

- Many changes in internal APIs for supporting a GUI.
- First version of QT base GUI. Not yet part of standard build process. Sources are in QT/PstoeditQtGui directory. Just run "make GUI" in there to build the GUI.
- Code cleanup.
- Some fixes to pass newer Coverity checks. Src code has again 0 Coverity defects.
- Documentation update and cleanup.
- Fix compilation problem with newer GNU libstdc++.
- Use unversioned .so libs for the driver plugins. Contributed by the Suse team.
- Remove the usage of __DATE__ in source code to allow "reproducible" builds. Contributed by the Suse team.

## New or changed in 3.78:

- Bug fix. pstoedit did not find older versions of GhostScript under Windows.
- Support for mawk in creation of pstoedit.ph header file. mawk is often used on build servers in place of gawk.

## New or changed in 3.77:

- Some small update to comply with some Debian requirements.

## New or changed in 3.76:

- Added experimental support for filled objects in DXF output using the HATCH element of DXF.
- Fixed a problem when running pstoedit with output to standard output instead of a file.
- Adapted to new versioning scheme of GhostScript.
- Additional backend for pcb-rnd contributed by Erich Heinzle.
- Some additional options in WEMF driver.
- Better handling of bounding box in EMF output. Contributed by Samuel Thibault.
- Better handling of metric option in fig driver.

## New or changed in 3.75:

- Fix a compile problem under certain MacOS versions.
- Various changes needed for interworking with newer versions of GhostScript.
- Some code modernization based on feedback from VS-2019, Clang Powertools and PVS Studio.

## New or changed in 3.74:

- Added support for dotted and dashed lines to the DXF backend.
- Reduce redundancy in help documents.
- Porting to Windows CE by Rohan Shetty.
- Made pstoedit compatible with ghostscript 9.27.

## New or changed in 3.73:

- Fix a bug occurring with large scale factors.
- Include full documentation by default and provide an option to generate documentation locally which then fit best to the local installation.
- Started to apply improvements proposed by clang-tidy.

## New or changed in 3.72:

- Included a bunch of patches from Debian for easier maintenance of the package plus correction to some spelling issues. Thanks to Barak A. Pearlmutter.

## New or changed in 3.71:

- added a -vl option to specify a verbosity level. Using the older -v enables level 1. For more use -vl 2.
- included a patch contributed by OpenSuse folks fixing a problem in finding the plugins under certain conditions.
- included a patch contributed by Martin Madsen related to checking non existing directories when looking for plugins.
- added support for pdfwithshow and pdfawidthshow special operators when reading PDF files.
- Scott Pakin updated the cfdg driver to support the current version of cfdg.
- changes needed for newer versions of GhostScript.
- some code cleanup. pstoedit passed all Coverity checks.

## New or changed in 3.70:

- some code improvements as suggested by Coverity. See current Coverity status here: https://scan.coverity.com/projects/498
- removed the -DBUGGYGPP compile flag since now g++ can compile the code without it. The former work-arounds are still there but will be removed later.
- enabled more warnings when compiling with g++ and fixed some resulting warnings.
- changed the autoconf part to better support the inclusion of libzip for the pptx driver.
- included a lot of documentation corrections contributed by Peter Dyballa. Many thanks!
- using non case sensitive comparison when determining the target format from the file suffix.
- using more STL classes instead of older private replacements (string and vector). In this context also some hard coded limits were removed.
- fixed an assertion violation when using -ssp and a closepath occurred.
- added the dump of the font name for the DXF format.
- prototype of a "simulate fill" option for emulating filling by stroking. This is based on fillpoly.c from the hp2xx project. Thanks also to Gary Langthorne for pointing out this option. This is still kind of experimental.

## New or changed in 3.62:

- new backend generating PowerPoint pptx files contributed by Scott Pakin. Big thanks!!! This backend uses the zip library http://www.nih.at/libzip/ .
- improved handling of composite fonts, especially those having FMapType other than 2
- fixed a bug in detecting rectangles.
- improved bounding box tracing in case of text (but it is still not perfect).
- changed the creation of filenames when using the -split option. Related to that there is new option -pagenumberformat. See manual for more details.
- fixed a bug in passing generic libplot arguments to the libplot drivers.
- improved support for 64-bit systems related the integration of pstoedit to gsview.
- include a version info resource in pstoedit's windows exe and DLLs.
- include a work-around for a Hurd specific problem with dlclose.

## New or changed in 3.61:

- fixed a bug in handling of -page option
- improved support for 64-bit systems related to different version of Ghostscript
- added some features for supporting the LaOS project (http://www.laoslaser.org/)

## New or changed in 3.60:

- added option (-minlinewidth) for adjusting very thin (e.g. zero-width) lines to a minimal width.
- added an option (-pslanguagelevel) for easy switching the language level to be used by Ghostscript during interpretation of the PostScript/PDF file.
- new driver for the "Context Free" drawing tool (http://www.contextfreeart.org/ ) contributed by Scott Pakin.
- fixed the windows binary version - some drivers were missing.
- fixed some problems in handling composite fonts (FontType = 0)
- windows 32 bit binary can call 64 bit Ghostscript as exe (i.e. not via DLL interface)
- support for 64 bit windows and Office 2010

## New or changed in 3.50:

- added an option (-gs) to specify the full path to Ghostscript (under Windows - either the .exe or the DLL). This can be used by portable applications to direct pstoedit to use a specific Ghostscript version.
- Stanislav Brabec contributed several improvements to the PCB driver. See http://www.penguin.cz/~utx/pstoedit-pcb/ on how these can be useful.
- Scott Pakin submitted several improvements to the mpost driver and the font substitution mechanism.
- new driver for .vtk files e.g. for ParaView - http://www.paraview.org/ - but this is still a very basic version. Thanks to Mitesh Patel for initiating and testing.
- new driver for cairo (http://cairographics.org/ ) contributed by Dan McMahill. This driver generates C-code which can be compiled and linked against the cairo libraries. See the contrib/cairo directory for an example.
- several improvements on the DXF driver as suggested and sponsored by Markus Meyer.
- because pstoedit may write its output to stdout, all output written by Ghostscript to stdout is now redirected to stderr in order to avoid mixed output.
- added a -q option to suppress the initial startup message of pstoedit. This can by useful when being called via a pipe, e.g. from inkscape. However, note that this does not suppress all output written to stderr - see also note above.
- John Bowman fixed a number of problems related to clipping and image support for the Asymptote backend.
- fixed a compilation problem with g++ V4.x.
- new driver for gcode (.ngc files) (tested with emc see http://linuxcnc.org). Contributed by Lawrence Glaister.
- some adaptations for newer versions of libming
- fixed a line width problem for xfig format.
- corrected the broken pstoedit.m4 - thanks to Ian Abbott
- some minor code beautifying.

## New or changed in 3.45:

- Some minor corrections of warnings issued by Coverity Prevent (security related checks).
- fixed a bug in the fig backend related to dotted lines.
- added better support for pagesize handling in the driver framework.
- better handling of fonts using 0 encoded characters (thanks to Vladimir Eltsov).
- fixed a problem which caused newer versions of Ghostscript to go into an endless loop.

## New or changed in 3.44:

- hotfix for the Aysmptote driver to make it compatible with Aysmptote version 1.00.
- removed some diagnostic messages concerning temporary file handling.
- removed the pstoedit-config.* since this is replaced by the pkg-config file pstoedit.pc.

## New or changed in 3.43:

- some usability improvements as proposed in Debian Bug Report #347732 http://groups.google.com/group/linux.debian.bugs.dist/msg/c38e1f79d75b3152?dmode=source&hl=de
- cleaned some minor problems found by the Klocwork checker (www.klocwork.com )
- replaced tempnam with mkstemp where available.
- replaced several string related functions with the secure versions where available (Windows - VC++2005)
- switched back again to calling Ghostscript as .exe instead of via the DLL in case pstoedit is called via gsview. Reason - there can be only one instance of Ghostscript per process and gsview needs a second instance.
- a new driver for the OpenOffice metafile format (drvsvm) contributed by Thorsten Behrens.
- source code cleanup considering messages issued by Gimpel's FlexeLint/PC-Lint (www.gimpel.com ).
- added a "-glyphs" option. Given this option, the PostScript frontend passes also (if possible) the glyph names to the backend. However, so far no backend really uses the glyph names. This is only a preparation for future work.
- changed the way how Image/Graphicmagick is handled by configure. Now configure tries to use pkg-config as proposed by the maintainer of the Debian version of pstoedit (Ray Dassen).
- included a further patch for the Aysmptote driver.

## New or changed in 3.42:

- the Aysmptote driver now supports PNG images - thanks again to John Bowman
- fix of small compilation problem in drvlatex2e.cpp
- new driver (drvnoi) contributed by Nemetschek (http://www.nemetschek.de/). This driver - in combination with other DLLs which are installed as part of Nemetschek's AllPlan product - allows to convert PostScript and PDF to the AllPlan internal format. Without an installation of AllPlan - this driver is "useless". Nemetschek also contributed some code for circle detection but this is not yet included in pstoedit. It will be included in future and will then allow to generate circle primitives for formats which support such elements. (Currently circles are represented as Bezier curves)

## New or changed in 3.41:

- added a .asy backend for Asymptote files ( http://asymptote.sourceforge.net/ ). Thanks to John Bowman
- fixed three bugs (one memory leak, two other minor problems) detected by the Coverity Prevent tool (http://www.coverity.com/)
- PostScript frontend: fixed a bug in tracing the bounding box of raster images.
- updated gsdll.h to newer version in order to avoid misunderstandings with respect to license.
- new option "-useoldpolydraw" for advanced (w)emf driver - avoid usage of the Windows function PolyDraw which sometimes creates EMF files which cannot be loaded (but in most cases creates better EMF files than the old mode).
- improved resolution in the standard and free EMF driver. Note: the WMF format is no longer supported under non-Window systems since libemf has some fundamental problems.
- the PostScript/PDF Office import DLL (importps) can now be used also within Visio (TM).
- fixed a bug in sub path handling - thanks to Soren Henriksen.
- fixed the handling of some special characters in the LaTeX2e format driver.
- installed a sourceforge project at http://sourceforge.net/projects/pstoedit

## New or changed in 3.40:

- added more diagnosis to dynload.cpp concerning dynamic loading.
- added an option -filledrecttostroke for converting filled rectangles to simple line strokes.
- support for cygwin environment.
- portability fixed concerning AIX, SGI, and Mac-OS. Many thanks especially to Maarten Sneep for his patience and support related to the Mac-OS port. Getting the dynamic loading of the plugins working was quite tricky.
- new versions of libtool, automake, and autoconf.
- new prologue for generated idraw files.
- the fig driver now supports "line cap styles" and "line join styles"
- some patches the the Mathematica backend by Manfred Thole.
- added -dNOEPS as option when calling Ghostscript because pstoedit is tuned to the old (pre-8.0) behavior of Ghostscript.
- fixed a bug in drvwmf.cpp concerning the handling of font names.
- disabled the WMF driver when libemf is used (all non-Windows systems). Libemf does not really handle WMF files. A CreateMetaFile effectively creates an EnhMetaFile - but that confuses programs which expect an real WMF file in a file with a .wmf suffix.
- added a workaround in the EMF driver for a bug/problem in the libemf which is used under *nix for EMF generation. The problem in libemf is that if text is rendered using the simple TextOut function call the resulting EMF file is no longer usable under newer versions of Windows. For more details see the description of the -nfw option of the wmf format driver.
- added an option "-usebbfrominput". If specified, pstoedit uses the BoundingBox as is (hopefully) found in the input file instead of one that is calculated by its own.
- fixed a bug concerning handling of leading white space in SVG text elements.
- add new driver to "insulate/PCB" format (see http://home.vr-web.de/~hans-juergen-jahn/software/devpcb.html ) contributed by Hans-Jürgen Jahn for more details.
- add new set of drivers for gschem ( http://wiki.geda-project.org/geda:gschem_ug ) and PCB (http://pcb.sourceforge.net ) contributed by Mark Rages.
  (see also http://mlug.missouri.edu/~markrages/software/pstoedit_additions/ )
- Updated code for finding newest version of Ghostscript - thanks to Russell Lang.
- fixed a bug in the MIF backend concerning handling of PNG images (sometimes wrong rotation).
- the installation setup.exe for pstoedit now writes into the registry so gsview can find pstoedit at any place and hence it is no longer needed to install pstoedit within a subdirectory of gsview.
- the HPGL driver now also supports writing of text as text. So far, text was drawn as lines. Thanks to Peter Kuhlemann.
- option to allow merging of adjacent text fragments into one single text object (general option -mergetext).
- the DXF driver now allows to map objects to different layers based on their color (driver option -ctl). Default is to allocated all objects on layer 0.
- try to deduce driver name from the suffix of the output file if the driver name is not explicitly given via -f
- added option "-ups" for using plain strings instead of hex strings in intermediate format (for debug purposes only)

## New or changed in 3.33:

- removed duplicate entries in list of available formats.
- improved configure and even better support for autotrace (thanks to Masatake for the patches).
- removed some internal trace messages written to cout for debug purposes.
- fixed a bug in CGM driver (wrong bounding box).
- more robust parsing of fontmap files.
- support of fonts that use \n and \r as character codes.
- added an option (-ndt) to fully disable the heuristics used by pstoedit to decide when to "draw" text instead of showing it as text. This may produce incorrect results, but in some cases it might nevertheless be useful. "Use at own risk".
- added a -correctdefinefont option for working around a problem related to ChemDraw generated PostScript files.
- Fixed bug concerning loading of shared libraries under HP-UX. Thanks to Antonio Carrarini for the support in tracking down the problem.

## New or changed in 3.32:

- some smaller bug and portability fixes.
- workaround to cope with a change introduced since Ghostscript 7.04. Some new operators were added to Ghostscript's internal array of operators without increasing the maximum size of the array. This led to the problem, that pstoedit couldn't add further operators.
- EMF backend now fully supported also under Linux and *nix like systems. Thanks to Allen Barnett (allen_AT_lignumcomputing.com) for getting libemf to work in combination with pstoedit.
- new backend using the ImageMagick++ API. Thanks to Bob Friesenhahn (bfriesen_AT_simple.dallas.tx.us) for his patience and support. This works only with versions 5.4.8 and later of ImageMagick.
- under Windows, now the registry is searched for the latest version of Ghostscript if no Ghostscript configuration setting was found from gsview. Thanks to Russell Lang for some example code concerning the registry lookup.
- new code for translating PNG images to PostScript by Niklas Peinecke - peinecke_AT_informatik.uni-hannover.de. (needs libgd (http://www.boutell.com/gd) to compile.) - not fully integrated yet.
- internal redesign of option handling to keep the documentation and code closer together.
- make pstoedit.h usable from plain C programs such as autotrace.
- added a -use_correct_font_size option to the xfig driver to support the same option of xfig.
- improved configure and Makefile.in - Thanks to Masatake Yamoto - jet_AT_gyve.org
- pstoedit can now be used as sort of plugin to autotrace to make all formats supported by pstoedit available to autotrace - also this was done primarily by Masatake Yamoto.

## New or changed in 3.31:

- prepared the EMF/WMF drivers to compile against the libEMF (libemf_AT_lignumcomputing.com) which allows to create EMF files under *nix. But - the libEMF is not yet released. Stay tuned.
- include some patches for the OS/2 port and bug fixes for drvmma and drvmet submitted by Thomas Hoffmann (thoffman_AT_zappa.sax.de).
- automatic conversion of curves to lines also in case the -bo (backend only) option is used and the target format/driver doesn't support curves.
- Donald Arseneau (asnd_AT_triumf.ca) adds pen changes when color changes to the HPGL backend. To be activated using the -pencolors option.
- several portability fixed, e.g. now pstoedit compiles with g++3.0.
- changed the place where pstoedit's data file (font map tables, ...) are stored ($prefix/share/pstoedit under *nix).
- added support to produce the shared library libpstoedit.so under Linux - Thanks to Russell Lang.
- added a general -help option for each driver to show driver specific options. For example -f xfig:-help shows specific options for the fig backend.
- minor bug fix in CGM backend - some paths triggered an assertion violation.
- several enhancements for the DXF backend. Now it supports the DXF SPLINE element as well. Big thanks to Daniel Gehriger (gehriger_AT_linkcad.com) for his help concerning the DXF format.
- support for TeX fonts in the SVG backend. Big thanks to Michel Goossens for the suggestions and his help. He can also provide the SVG definitions of the CM TeX fonts. See also http://home.cern.ch/goossens/svgfonts.html .
- Now the SVG driver also supports a font map.
- some minor bug fixes in the PostScript frontend related to font handling.
- changed "Killustrator" to "Kontour" where appropriate.

## New or changed in 3.30:

- new backend for Mathematica - contributed by Manfred Thole <manfred_AT_thole.org>
- new SWF backend (beta release state - still lot's of features missing (fonts, dash handling, ...). This backend is based on the ming API (www.opaque.net/ming/).
- cleanup of the xfig backend. In some cases X-splines looked very different from the original image. Now the X-splines that are produced by the xfig backend are constrained differently, so that they fit the bezier curve better. Thanks to Ian MacPhedran.
- added an option -startdepth to the xfig driver
- improved support for various types of PostScript image operators. Now there is an option for backend developers to ask for a PNG file to be generated directly by the frontend (at Ghostscript level). Currently this is used only for the SVG backend, but more will follow later.
- added an option -adt (automatic draw text). This selectively enables -dt for all fonts that don't look like a text font.
- Now the BoundingBox is provided to the backends - though not all make use of it so far.
- man improvements to the SVG backend (plugin) like support for dashes, clipping, raster images, Symbol font
- fixed a bug which showed up with PostScript files generated by the new Adobe PostScript driver.
- some extensions (new options) to the TK backend - contributed by Chris Cox
- added support for writing the output to a file it the input is stdin (pstoedit -f format - outfile). This allows to implement a pstoedit printer driver via redmon. You can print directly to any format pstoedit supports directly from any Windows application.
- -rgb (instead of now default CMYK)
- now pages can be rotated arbitrarily (-rotate). Thanks to Andrew Birrell (birrell_AT_pa.dec.com) for the permission to use the corresponding code from pstotext).
- made the source code almost clean concerning FlexeLint messages (By the way, I like this tool- see www.gimpel.com )
- addes some assertions in to the code to further runtime checking
- added a %TGIF header to support the Unix file command. (Thanks to Gintautas.Grigelionis_AT_ki.ericsson.se)
- fixed a compilation problem with SUN's C++ compilers.

## New or changed in 3.21:

- some extensions (new options) to the TK backend. Now supports multiple pages as well - Thanks to Chris Cox. See manual for more details.
- bugfix : -pagesize option was not recognized correctly.
- minor bugfix in FIG backend to be compliant with prtfig.
- bugfix in the frontend (lexer). Now the lexer can be started multiple times after each other. This is important for programs using the pstoedit.dll.
- added support for writing PNG in image.cpp. Now backends can use this to write raster images into PNG files.
- improved plugins: CGM (supports Bezier now), SVG (supports raster images) and EMF (supports raster images), importps (supports raster images).
- reanimation of the OS/2 port - thanks to Thomas Hoffmann.
- the binary releases are now linked with the libplotter (GNU plotutils http://www.gnu.org/software/plotutils/plotutils.html ) to allow direct access to the variety of drivers contained in that library (FIG, PCL, HPGL, TEK, X11 (Unix only), SVG, CGM, AI). Some formats are now available in two versions. One directly with a native driver in pstoedit and one via the libplot.
- pstoedit now cooperates with autotrace. Autotrace can now produce a dump file for further processing by pstoedit using the -bo (backend only) option. Autotrace is a program written by a group around Martin Weber and can be found at http://sourceforge.net/projects/autotrace/

## New or changed in 3.20:

- fixed a bug with precision text (-pti/a).
- fixed a bug in pstoedit.ph.
- new backend latex2e contributed by Scott Pakin.
- include SVG driver into binary releases for Linux/Solaris.

## New or changed in 3.19:

- experimental support for filling in the HPGL backend.
- implement copypage same as showpage plus emit a warning.
- fixed a bug in consistency checking (frontend vs. backend when using the -bo option)
- automatic enabling of -dt option if backend doesn't support text.
- fixed a bug in memory allocation. Windows requires that the memory is deallocated in the same DLL as it was allocated. This was a problem with some plugins.

## New or changed in 3.18:

- new java2 backend which supports much better rendering than the old java1 backend. Thanks to Gisbert W. Selke of TapirSoft Gisbert & Harald Selke GbR.
- new option (-t2fontast1) to handle type 2 fonts similarly to t1 fonts - This is sort of experimental.
- fixed one bug in the binary cgm (too long header).
- fixed a bug in the configure script.
- made the postscript output again more DSC compliant as pointed out by Russell Lang
- made the code more "cleaner" concerning rules checked by CodeWizard (www.parasoft.com).

## New or changed in 3.17:

- included a patch for idraw to support bitmap images. Thanks to Scott Johnston for the contribution.
- much improved WMF backend by Thorsten Behrens.
- experimental support for SVG (http://www.w3.org/Graphics/SVG/) in the plugins.dll.
- added a function to the DLL interface for gsview to clean up memory allocated by the pstoedit.dll.
- added an option (-uchar) which allows to define the character to be used instead of characters that are not available in the standard character encoding but nevertheless used by the input PostScript/PDF file.
- allow standard output to be used also for backends that don't support multiple pages as suggested by Andread Amann
- added a BeginSetup / EndSetup to the PostScript output to allow reading in CorelDraw 3/4 as proposed by Martin Weber
- added a consistency check if the -bo option is used to avoid problems when the selected backend has some restrictions, e.g. does not support curves.

## New or changed in 3.16:

- fixed some small memory leaks (missing [] with delete) and a potential null pointer access. Thanks to Parasoft for a temporary license for Linux of their Insure++. It was quite easy to find these bugs with this tool.
- changed the starting depth of objects in xfig format from 999 to 499. This allows new objects to be inserted in front or behind the converted figure.
- the makefile for pstoedit can now be configured automatically using configure - at least on Un*x like systems. Thanks Scott Pakin for providing the necessary packages.
- added the -pti and -pta option which allows for "precision text" via individual placement of each character within a string.
- the tgif backend now supports arbitray streched text. The text placement is currently not fully correct. This problem will probably be fixed in tgif 4.1.26.

## New or changed in 3.15:

- fixed a compilation problem and makefile problem (make install).
- switch to a new documentation style. The manual page is now originally written in LaTeX and translated to Un*x man format and HTML. Thanks to Rolf Niepraschk (niepraschk_AT_ptb.de) for this work. The Linux community will have big thanks for this contribution.
- added a new option to set the page size for the output medium. However this is currently used by the libplot backend only.
- some small correction on the libplot driver.
- fixed the broken -scale option for the tgif backend.
- backends can now access the current setting of the miterlimit using currentMiterLimit().
- text consisting entirely of spaces is now suppressed. This caused problems with some backends, e.g. xfig.
- changed the version of drvbase (because of the miterlimit and pagesize support). This means that all plugins need to be updated (just the .dll not the keys). Otherwise you will get an error message.

## New or changed in 3.14:

- added two checkboxes for the importps dialog
- bug fix related to font caching in the EMF backend
- added a bugfix for the MetaPost backend received from Scott Pakin
- incorporated a lot of improvements to the libplot driver. Thanks to Robert S. Maier (rsm_AT_math.arizona.edu)
  Notice: most of these improvement will need at least libplot version 2.3. See drvlplot.cpp for all the new options.
- pstoedit now implicitly looks for a driver specific fontmap file named <drivername>.fmp
- fixed a problem (bug in gs?) which was caused by some PDF files when gs5.50 was used. This problem did not occur anymore with newer versions of gs.
- added the classed needed by the generated Java Code to the distribution (see java subdirectory)

## New or changed in 3.13:

- change in frontend and drvbase: Now the full effective font matrix can be retrieved by backends
- changed again the version of drvbase (because of the font matrix functions). This means that all plugins need to be updated (just the .dll not the keys). Otherwise you will get an error message.
- added a new backend for the skencil (formerly sketch) format (www.skencil.org) contributed by
  Bernhard Herzog (bernhard_AT_users.sourceforge.net)
- many improvements in the MetaPost backend and a better fontmap.mpost by Scott Pakin.
- minor bug fix with line width and text elements in the TGIF backend.
- added an option to the TGIF backend to generate HREF attributes for each text element (proposed by Tobias Buchal buchal41_AT_che41a0.der.edf.fr). This is still in an experimenal stage!
- added an option (-nc) to force the replacement of curves with line segments even for backends that support curves.
- fixed a bug with the -flat option not being honoured correctly in combination with the new -nc option
- added an option to emulate clipping (-sclip). This however results in larger number of points ! Use it only if the missing support for clipping causes problems with your file.

## New or changed in 3.12:

- small bug fix in the meta post backend (blank font names) and in the fontmap.mpost file.
- several bug fixes and code reorganization in the subpath simulation part.
- sub path simulation is now available for all backends, not just xfig. However, this was not tested very intensively so far. It works quite well with xfig and tgif.
- bug fix for related to the usage of "-f gs:...".
- small bug fix in the metapost driver and some additions to the fontmap.mpost file.
- added a setglobal also for the "non -nb" case to pstoedit.pro to cope with gs5.82.
- bux fix in documentation (-fontmap instead of -mapfile).
- added some support for easier retrieval of dash patterns from within backends.
- extended the check for "mergable" path to include also eofilled paths and made pathsCanBeMerged virtual so it can be overloaded by a specific backend.
- changed again the version of drvbase. This means that all plugins need to be updated (just the .dll not the keys). Otherwise you will get an error message.
- bug fix in the EMF driver of the plugins.dll and importps.dll regarding the handling of closepath.
- added an option to the xfig backend to set the paper width (-f "xfig:-depth depth in inches ")
- added an option to the ps2ai driver (-88) to activate the AI-88 format instead of the AI-3 format
- added a fontmap.win in the misc directory as an example for a Windows fontmap file. (-fontmap option)

## New or changed in 3.11:

- improved handling of TrueType fonts under Windows 9x/NT. Pstoedit can now deal with TrueType fonts if Ghostscript is configured for TrueType support.
- fixed an incompatibility with older version of Ghostscript
- fixed a bug that was caused when the GS_LIB variable was set.
- added a new backend for the libplot (GNU plotutils) library () (GNU MetaFiles). This allows to use the additional format drivers of the GNU plotting utilities.
- Burkhard Plaum (plaum_AT_IPF.Uni-Stuttgart.de) added support for complex filled paths (paths consisting of an arbitraty sequence of moveto, lineto and curveto in combination with fill and eofill) to the xfig backend. In future, this will be made available to other backend that don't support such paths as well. In order to activate this feature you need to specify the -ssp (simulate sub paths) option.
- changed again the version of drvbase due to the support for complex paths. This means that all plugins need to be updated (just the .dll not the keys). Otherwise you will get an error message.
- improved the EMF driver in the importps.dll. I now generates much more compact EMF files.
- Added a general option for specifying a file containing a font mapping (document font -> font in target format). So far this was just used in the mpost backend but this is now available for general usage. See the misc directory in the source distribution for an example.
- removed the STL dependency in the mport driver. This driver can now be compiled as well without having the STL.
- some internal code reorganization.
- fixed a bug in the test target of the makefile

## New or changed in 3.10:

- replaced the -dNOBIND with -dDELAYBIND (Russell Lang pointed this out). This should avoid problems with files that redefine standards PostScript operators with totally different semantics, e.g. lt (less than) to mean lineto. If you notice different results than before use the -nb option to switch back to the previous style (-dNOBIND) and send an example to the author, please.
- changed the version of drvbase due to a new virtual function. This means that all plugins need to be updated (just the .dll not the keys).
- added a check for a failure in the constructor of drvWMF.
- fixed a compilation problem for systems that don't support shared libraries and some warnings issued by the IRIX C++ compiler.
- added the PIC backend contributed by Egil Kvaleberg (egil_AT_kvaleberg.no)
- added the backend for the Kontour (now replaced by Karbon) format - contributed by Kai-Uwe Sattler (kus_AT_iti.cs.uni-magdeburg.de)
- added some files missing for the compilation under Windows and adapted the makefile.
- changed the way the gsview32.ini file is searched.
- pstoedit now also uses the GS_LIB path from the gsview32.ini file ( GhostscriptInclude entry). This was done because in some situations the gswin32.dll could not find its own init files.
- activated the (dead) -s option again which allows to specify a scaling factor for the output. At the moment it is just active for the idraw backend.
- added a MetaPost backend provided by Scott Pakin .
- changed the source code to be compilable against the ANSI iostream header files. This was needed because the metapost backend uses STL and the standard string class and thus the ANSI headers are needed.
- In this version the drvbase class was changed. This means that you need to get a new version of the plugin.dll if you have a previous version. Otherwise you will get an error message.

## New or changed in 3.03:

- better handling of "extreme" dash patterns. If the ratio on/off is > 100 then the line is treated as solid now.
- source code available now.

## New or changed in 3.02:

- new driver for the AI (Adobe Illustrator) format. This is not a real native pstoedit driver but instead just a conversion to the AI format using the ps2ai.ps that comes with every installation of Ghostscript. It is included to provide the same "look-and-feel" for the conversion to AI. The additional benefit is that this conversion is now available also via the "convert-to-vector" menu of Gsview. However, lot's of files don't convert nicely or at all using ps2ai.ps. So a native pstoedit driver would be much better. Anyone out there to take this ? The AI format is usable for example by Mayura Draw (http://www.mayura.com ). Also a driver to the Mayura native format would be nice.
  However, this new driver relies on a slightly modified ps2ai.ps which hopefully will go into the next version of Ghostscript.
- Added the handling of Ghostscript output in the case the pstoedit.dll is used by gsview. Now also messages from Ghostscript can be seen in the Gsview message box.

## New or changed in 3.01:

- Added a work-around for files redefining "length"
- extended the trouble-shooting section in the manual.

## New or changed in 3.00:

- Eliminated compatibility problem with Ghostscript 5.xx
- packed most stuff into a pstoedit.dll under windows. This dll can now be called by gsview. pstoedit.exe is just a small program calling the pstoedit.dll
- additional drivers can now be put into separate plugin-libraries. See the manual for availability of such drivers.
- pstoedit now calls Ghostscript via the DLL interface under Windows. Thanks to Russell Lang for his help regarding this.
- new HPGL driver contributed by Peter Katzmann (p.katzmann_AT_thiesen.com)
- fix of a bug in pstoedit.ph which caused an infinite loop.
- some changes in pstoedit.ph to cope with changes in newer version of Ghostscript.
- fix of s small bug in drvidraw by Jorge A. Gautier (jgautier_AT_netcom.com)
- include a new Java GUI contributed by Leszek Piotrowicz (leszek_AT_sopot.rodan.pl)
- new backend for Tcl/Tk contributed by Chris Cox (ccox_AT_airmail.net)
- new internal architecture which now allows link time and run-time loading of backends.
- temporarily dropped support for the OS/2 MET backend (the author was not able to adapt the backend to the new architecture so far),
- rewrite of the WMF backend by Thorsten Behrens (Thorsten_Behrens_AT_public.uni-hamburg.de) and Bjoern Petersen. The first version of this driver relied on Borland 5.0 and thus was not portable to other compilers. Now it uses the pure Windows API and thus compiles also with Visual C++
- added a new "gs" pseudo backend which runs Ghostscript with a given Ghostscript output device, e.g. -f gs:pdfwrite runs the Ghostscript PDF writer.
- added a -v (for verbose) option
- added a -split option to split the output into individual files for each page
- Bug fix: a default font specified using -df was not used in the xfig backend
- workarounds for two bugs on djgpp (binary open and tempnam)
- -f ps supports emission of curvetos (proposal and partial patch from
  Erik Lundh (Erik.Lundh_AT_compelcon.se))
- PostScript output now generates some DSC comments. At least GhostView understands the output.
- xfig output is compatible with new format of xfig 3.2
- xfig output now creates x-splines
- image support for xfig done by Leszek Piotrowicz (leszek_AT_sopot.rodan.pl)
- image support for Framemaker-MIF format
- added support for dashes for Framemaker-MIF format
- fixed a problem with detection of not available files (MSVC only)
- Changed some code in drvbase.h in order to work around a not implemented feature of the HP-CC compiler.
- Fixed a problem that causes Turbo C++ to hang (compiler problem)
- changed usage of deviceinfo to currentpagedevice for better compatibility with newer version of Ghostscript (thanks to Peter L. Deutsch for the hint).
- fixed a bug caused by explicit HWResolution settings from with .ps file (font sizes were wrong)

## New or changed in 2.60:

- New backend for idraw contributed by Scott Pakin (scott+ps2ed_AT_pakin.org)
- Internal redesign in order to support the usage of the drivers from other programs, not just from pstoedit.
- Full implementation of kshow, xshow, yshow, xyshow
- Added -psargs option and removed -rnnxnn option
- Added -include option
- Fixed the linecap and linejoin problem for MIF
- Port to RiscOS done by Rob Warner (rcw2_AT_ukc.ac.uk)
- winp2eap.def missing in distribution
- Fixed a problem with .ps files that redefined showpage themselves
- Fixed some problems related to the 'string' operator. Some PostScript programs used to redefine 'string'.
- Fixed a portabiltiy problem for DecAlpha
- Fixed some OS/2 compilation problems
- Fixed some DEC compilation problems
- Fixed a problem that caused pstoedit to 'draw' each character when running gs3.5x
- Added support for Frame-specific encoding of special characters
- Fixed an encoding bug for PDF (minus was defined twice)

## New or changed in 2.50:

- New backend for WMF, contributed by Jens Weber ( wr_AT_lzh1.lzh.de )
- Windows GUI, contributed by Jens Weber ( wr_AT_lzh1.lzh.de )
- direct handling of .pdf files (as input) (Thanks to Ghostscript and the -dNOBIND option !!)
- fixed a bug caused by ignoring the textmatrix
- changed the pdf output so that xpdf accepts it
- Fonts not supported by the selected backend, are now "drawn" automatically, as if the option -dt was given for them.
- implemented the different show's for pdf
- handling of reencoded fonts.
- support for dashed lines (so far for cgm, xfig, and pdf only)
- added workaround for bug in libg++ on some linux systems (Thanks to Derek B. Noonburg (derekn_AT_vw.ece.cmu.edu) and Rainer Dorsch (rd_AT_berlepsch.wohnheim.uni-ulm.de) for taking care of this linux specific problem and the workaround)
- fixed a bug with ordering of text and lines
- replaced usage of tmpnam by tempnam so the user can control the place where temp files are allocated. (via TMPDIR under *nix, TMP or TEMP under DOS/Win)
- Bold was not treated correctly in MIF backend
- Gnuplot backend could not be called
- zero length text caused problems with some backends
- ^M caused problems with some backends.
- handling filenames containing \
- fixed compile errors with some compilers in drvjava.cc
- added support for linecaps in PDF backend

## New or changed in 2.41:

- changed makefile for DOS
- fixed problem in pdf backend with '\' characters
- fixed a problem with linewidth (all backends)
- three new backends from