# Changelog for pstoedit

## 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@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@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 sketch format ( http://www.online.de/home/sketch/ ) contributed by
  Bernhard Herzog (herzog@online.de)
- 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@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 beeing 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 pathes 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@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 pathes 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@kvaleberg.no)
- added the backend for the Killustrator format - contributed by Kai-Uwe Sattler (kus@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@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@netcom.com)
- include a new Java GUI contributed by Leszek Piotrowicz (leszek@sopot.rodan.pl)
- new backend for Tcl/Tk contributed by Chris Cox (ccox@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@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@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@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 (pakin@cs.uiuc.edu)
- 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@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@lzh1.lzh.de )
- Windows GUI, contributed by Jens Weber ( wr@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@vw.ece.cmu.edu) and Rainer Dorsch (rd@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