| History of Ghostscript versions 3.n |
|---|
- Version 3.70 patch 1 (6/24/96)
- Version 3.70 (limited) (6/23/96)
- Version 3.69 (limited) (6/14/96)
- Version 3.68 patch 4 (5/23/96)
- Version 3.68 patch 3 (5/17/96)
- Version 3.68 patch 2 (5/13/96)
- Version 3.68 patch 1 (5/10/96)
- Version 3.68 (limited) (5/9/96)
- Version 3.67 (limited) (4/12/96)
- Version 3.66 (limited) (4/8/96)
- Version 3.65 (limited) (3/9/96)
- Version 3.64 (limited, incremental) (1/27/96)
- Version 3.63 (limited, incremental) (1/14/96)
- Version 3.62 (limited, incremental) (12/26/95)
- Version 3.61 (limited) (12/10/95)
- Version 3.60 (limited) (11/20/95)
- Version 3.53 (1/10/96)
- Version 3.52 (limited) (10/6/95)
- Version 3.51 (9/27/95)
- Version 3.50 (limited) (9/24/95)
- Version 3.49 (limited) (9/20/95)
- Version 3.48 (limited) (9/17/95)
- Version 3.47 (limited) (9/14/95)
- Version 3.46 (limited) (9/4/95)
- Version 3.45 (limited) (8/27/95)
- Version 3.44 (limited) (8/21/95)
- Version 3.43 (limited) (8/10/95)
- Version 3.42 (limited) (8/2/95)
- Version 3.41 (limited) (7/27/95)
- Version 3.40 (limited) (6/28/95)
- Version 3.39 (limited) (6/24/95)
- Version 3.38 (limited) (6/18/95)
- Version 3.37 (limited) (5/11/95)
- Version 3.36 (limited) (5/4/95)
- Version 3.35 (internal) (5/2/95)
- Version 3.34 (internal) (4/18/95)
- Version 3.33 (4/13/95)
- Version 3.32 (4/7/95)
- Version 3.31 (4/2/95)
- Version 3.30 (beta) (3/21/95)
- Version 3.29 (internal) (3/8/95)
- Version 3.28 (beta) (2/13/95)
- Version 3.27 (beta)(withdrawn) (2/8/95)
- Version 3.26 (beta) (2/1/95)
- Version 3.25 (beta) (1/24/95)
- Version 3.24 (beta) (1/17/95)
- Version 3.23 (beta) (1/5/95)
- Version 3.22 (beta) (11/30/94)
- Version 3.21 (beta) (11/17/94)
- Version 3.20 (beta) (10/31/94)
- Version 3.13(private) (10/3/94)
- Version 3.12 (9/29/94)
- Version 3.1.1 (9/25/94)
- Version 3.1 (9/20/94)
- Version 3.0.3 (9/16/94)
- Version 3.02 (8/30/94)
- Version 3.01 (8/14/94)
- Version 3.0 (8/1/94)
This document is a history of Ghostscript releases numbered 3.n. For more recent changes, see the the other history documents and, for the latest versions, the news:
News
History of Ghostscript versions 4.n
History of Ghostscript versions 3.n (this document)
History of Ghostscript versions 2.n
History of Ghostscript versions 1.n
For other information, see the Ghostscript overview.
Version 3.70 patch 1 (6/24/96)
This contains a few last-minute patches before the release.Procedures
Comments out the color inkjet drivers in the cc-based makefile, because a bug in Sun's cc prevents them from compiling. (cc-head.mak)Drivers
Fixes bugs: - The os2prn driver smashed memory. (gdevos2p.c) - Some initialized structures weren't declared 'static'. (gdevpdf.c, gdevpdfm.c) - The PNG driver wouldn't compile with some older versions of the PNG library. (gdevpng.c)Version 3.70 (limited) (6/23/96)
This is the candidate fileset for 4.0. Aside from one optimization for the PDF writer, the only changes are bug fixes.Documentation
Renames all the documentation files from *.doc to *.txt, since the .doc extension didn't give any information about the format of the file. (readme, *.doc, *.txt) Notes that IJG JPEG library v6[a] is now required. (jpeg.mak) Brings ps2pdf.1 up to date. (ps2pdf.1) Adds a new file describing Aladdin's C coding practices. (c-style.txt) Updates the man pages to refer to version 4.0. (gs.1, pdf2ps.1, ps2ascii.1, ps2pdf.1)Procedures
Changes some file names to fit within the MS-DOS 8.3 limit. (gs.mak) Adds the PDF writer to the remaining 32-bit configurations (Watcom, OS/2, MSC). (watc.mak, watcwin.mak, os2.mak, msc.mak, msvcwint.mak) Changes the -sFONTMAP= switch so it can take a list of font names, like a search path. (use.txt)Drivers
Fixes bugs: - Signed and unsigned values were mixed inconsistently. (gdevcdj.c) - PDF files could contain e-format floating point numbers, which the PDF specification doesn't allow. (gdevpdfx.h, gdevpdf*.c) - The PDF writer didn't handle glyphshow properly. (gs_pdfwr.ps) - The PDF writer did the wrong thing with fonts whose FontMatrix had a non-zero translation component. (gs_pdfwr.ps, gdevpdft.c) - The stand-alone bounding box device could crash when setting parameters. (gdevbbox.c) - The mswinpr2 driver smashed memory. (gdevwpr2.c) Changes the PDF writer so that if it encounters a re-encoded character, it tries to map it to an encoded character in the standard (ISO Latin-1) encoding rather than converting the entire string containing it to a bitmap. This dramatically improves output file size for files with a few divergently encoded characters, but it may cause the text in the PDF file to differ from the text in the PostScript input. (gdevpdft.c) Disallows BitsPerPixel=16 in the MS Windows and OS/2 drivers, since this bit depth is not supported by Windows and would require special extra buffering. (install.txt, dwtext.h, dwtext.cpp, gdevmswn.c, gdevpm.c, gdevwpr2.c)Platforms
Fixes bugs: - On the PC platforms, file names weren't changed to reflect the value of CONFIG. (gs.mak, bc*.mak, ms*.mak, os2.mak, tc*.mak, watc*.mak, wccommon.mak) Modifies some makefiles for greater reusability. (bclib.mak, watclib.mak)Fonts
Changes the font searching rules in the following NON-BACKWARD-COMPATIBLE way: (gs_fonts.ps, gs_res.ps) - -sFONTMAP=files specifies a list of files containing fontmaps; previously, it specified only a single fontmap file. - If -sFONTMAP= is not used, the interpreter reads the Fontmaps from *all* directories on the search path, and does so even if FONTPATH or GS_FONTPATH is set; previously, it read only the first Fontmap, and only if [GS_]FONTPATH was not set. - Fontmap(s) take precedence over [GS_]FONTPATH; previously, [GS_]FONTPATH caused Fontmap to be ignored. (You can still force Fontmap to be ignored with -dNOFONTMAP.) - Earlier [GS_]FONTPATH entries take precedence over later; previously, later entries took precedence over earlier. Note that this is different from Fontmap: earlier Fontmaps in the search path take precedence over later, but within a single Fontmap, later entries take precedence over earlier (for backward compatibility). - [GS_]FONTPATH is consulted only if there is no Fontmap entry for a font, or no Fontmap entry leads to successful loading; previously, [GS_]FONTPATH was always consulted at startup. - If loading a font fails, the interpreter tries the next Fontmap entry; previously, it fell back to font substitution.Interpreter
Fixes bugs: - Filters didn't peek ahead for an EOD (see Streams below). (zfileio.c, zpaint.c) Splits up a file to allow internal access to user and system parameters even in Level 1. (zmisc2.c, zusparam.c) Adds LIBPATH as a predefined name in systemdict. Its value is an array of strings comprising the library search path. (imain.c)Interpreter (PDF)
Fixes bugs: - A Dests dictionary entry with an array (rather than a dictionary) value caused an error. (pdf_main.ps) - Rotated pages could have incorrect translation and/or clipping. (pdf_main.ps)Streams
Fixes bugs: - If a buffer boundary fell just before an EOD, and the client read exactly as much data as was present before the EOD, filters didn't consume the EOD. (This is required as a tricky consequence of the Adobe specification.) (stream.h, strimpl.h, stream.c)Library
Fixes bugs: - An extra column of bits could get turned on at the right edge of masked or monochrome images. (gximage2.c) - Rasterizing very long curves could cause arithmetic errors or floating point overflows. (gxpcopy.c) - Banding with large line widths could truncate curves or introduce spurious lines. (gxclpath.c)Version 3.69 (limited) (6/14/96)
More bug fixes, plus one irresistible new feature: the ability to use TrueType fonts as freely as Type 1 fonts. Also, one new feature (outside clipping) that was needed for Aladdin's PCL XL project. We incremented the version number because of the change in trapezoid and path filling (see under Library below).Documentation
Brings documentation about fonts up to date. (fonts.doc) Updates current.doc to reflect changes since 3.53. (current.doc) Updates the DLL documentation to reflect recent changes. (dll.doc) Documents a workaround for the code generation bug in gcc 2.7.x. (make.doc) Changes the contact information for potential commercial customers in Europe. (new-user.doc) Updates the OS/2 documentation to make it current. (install.doc, make.doc) Documents -dCOLORSCREEN=0. (use.doc)Procedures
Fixes bugs: - 'make clean' didn't work in the Watcom environment. (wmakebat.bat, gs.mak, msc.mak, msvcwint.mak, os2.mak, tccommon.mak, unixhead.mak, wccommon.mak) - The X11 libraries were listed in an incorrect order. (ansihead.mak, cc-head.mak, gcc-head.mak, ugcclib.mak, unix-end.mak) - The OS/2 makefile didn't ignore errors from `erase' commands. (os2.mak) Adds the PDF writer to the 32-bit MS Windows configuration. (bcwin32.mak) Adds the PNG drivers to the 32-bit MS Windows platform, since they now compile properly. (bcwin32.mak) Changes the ttfont feature so that it refers to support for direct usage of TrueType fonts; puts support for Type 42 fonts into a separate feature (type42). (gs.mak, int.mak) Adds direct TrueType font support to the Windows platforms. (bcwin.mak, bcwin32.mak) Rewrites vms.mak to be structured more like the other makefiles. (vms.mak, modules.lis) Makes the device lists in vms-*.mak the same as those for the Unix configurations. (vms-cc.mak, vms-decc.mak, vms-gcc.mak) Changes the default X library directory for gcc to /usr/X11/lib. (gcc-head.mak) Adds the list of devices to --help, since HylaFax depends on this. (imainarg.c) Adds -dCOLORSCREEN=0 to indicate use of 4 separate color screens with the same frequency and angle. (gs_init.ps)Utilities
Fixes bugs: - When ps2epsi encountered a blank page, it called the (undocumented) .quit operator with only one argument, causing a stack underflow. (ps2epsi.ps) - An extraneous file was included in the fileset. (checkacc.ps) - A file was omitted from the fileset. (bench.c) - Images in PostScript files produced by pdf2ps were processed about 50 times slower than they should have been. (gs_pdf.ps)Drivers
Fixes bugs: - An #include was omitted. (gdevpdfi.c) - The BJC driver could get into an inconsistent state. (gdevcdj.c) - Braces were omitted around the values for two initialized byte arrays. (gdevpcx.c) - A function used 'float' in its argument list, causing problems in mixed ANSI/non-ANSI compilation. (gdevcdj.c) - signed and unsigned char pointers were used inconsistently. (gdevcdj.c, gdevcgml.c) - Some header files weren't protected against double inclusion. (gdevprn.h, gdevtifs.h) - The 24-bit PNG driver included unnecessary copies of the color mapping procedures. (gdevpng.c) Fixes bugs in the PDF writer: - The PDF writer sometimes produced a double // in front of a filter name. (gdevpdfi.c) - The PDF writer produced zero-width, zero-height images for non-standard fonts. (bug introduced since 3.68) (gdevpdfi.c) - The PDF writer got confused if the input file invoked setpagedevice. (gdevpdfp.c) - The PDF writer put annotations on the page after the one they were supposed to be on. (gdevpdf.c) - The PDF writer sometimes failed to set the font when needed. (gdevpdf.c) - The PDF writer could produce in-line images that were too large. (gdevpdfi.c) - The PDF writer didn't scale explicit character and word spacing (ashow/widthshow/awidthshow) properly. (gdevpdft.c) - The PDF writer didn't copy named destination or article title strings, possibly leading to dangling pointers. (gdevpdf.c, gdevpdfm.c) - The PDF writer produced incorrect output for re-encoded fonts. (It now converts any string containing characters in non-standard positions to bitmaps; this will be fixed in a later release.) (gs_pdfwr.ps, gdevpdfx.h, gdevpdfp.c, gdevpdft.c) Updates a few drivers for the change in the handling of band device procedures. (gdevcp50.c, gdevdjet.c) Updates the X Windows driver for strip halftones. (gdevx.c) Adds anti-aliasing capability to the os2pm device. (gdevpm.c) Increases the sizes of some tables in the PDF writer. (gdevpdfx.h)Platforms
Fixes bugs: - A patch for the MS Windows platform was accidentally omitted. (gp_mswin.c) - A block of code was accidentally duplicated. (dwmain.cpp) - An identifier exceeded VAX VMS C's limit of 31 characters. (gscspace.h) - File name enumeration didn't work properly on Unix systems (still/again). (gp_unifs.c) - On MS Windows, If you closed Ghostscript with the system menu, you only closed the text window; Ghostscript kept running and you had to use the task manager to kill it. (dwmain.cpp, dwmainc.cpp, dwtext.cpp) - Some DLL-related typedefs were not consistent. (dwdll.h, gsdll.h, dpmainc.c, dwdll.cpp) - Attempts to call the DLL before it was initialized were not detected. (gsdll.c) - Bitmap line lengths were rounded up even on 32-bit Windows, which doesn't want this. (gdevwdib.c) Further improves the handling of attempts to use the DLL when it is already in use. (dwdll.cpp, gsdll.c) Adds a DLL-compatible main program for OS/2. (dpmainc.c, gp_os2.c, gsdll.c)Fonts
Fixes bugs: - The WingDings TrueType font wasn't loaded properly. (gs_ttf.ps) Makes changes so that TrueType fonts can appear in the Fontmap and can be loaded directly. (gs_fonts.ps, gs_ttf.ps)Interpreter
Fixes bugs: - Executing a .quit with only 1 element on the operand stack caused an invalid access. (zcontrol.c) - The usage help message contained incorrect double %%s. (imainarg.c) - If an initialization file tried to use any Encodings other than the 4 registered ones, it couldn't find them. (gs_init.ps, gs_res.ps) - Places that expected arrays of coordinates (rectangles, x/y/xyshow) didn't accept packed arrays. (ibnum.c, zdps1.c) - filterdict was still visible after initialization. (gs_init.ps) - The usage error message wasn't terminated by a newline. (imainarg.c) - setcacheparams (or setting the MaxFontCache user parameter) didn't actually affect the size of the character cache. (zfont.c, zmisc2.c) - The main interpreter loop declared iref as a ref *, even though it may only be a ref_packed *. (iref.h, interp.c) Changes the character cache so it ignores absurd FontBBox values. Nothing in the Adobe spec suggests doing this, but it is necessary for handling questionable output produced by PageMaker 5.0 (an Adobe product!). (zchar1.c) Changes some type declarations slightly to reduce the number of 'discarding const' compiler warnings. (igc.h, igc.c, igcref.c) Adds .setclipoutside and .currentclipoutside operators for accessing the new outside clipping capability. (zpath.c) Adds the dictionary stack to the information printed in case of a fatal problem. (imain.c) Adds .set/currentrenderalgorithm operators for testing. (zrop.c)Library
Fixes bugs: - The TrueType rasterizer didn't map quadratic to cubic splines well, and didn't handle off-curve points at the end of a contour properly. (gstype42.c) - An #include was omitted. (gsimage.c, gxclimag.c) - Some compilers complained about statements with no effect, or comma operators with no effect on the left. (gschar.c, gxcpath.c, gxfill.c) - TrueType or Type 42 glyphs with a repeat count that crossed a contour boundary produced incorrect output. (gstype42.c) - TrueType / Type 42 composite glyphs involving rotation were placed incorrectly. (gstype42.c) - Type 42 fonts with an absent or incorrect FontBBox could fail to produce output. (gstype42.c) - Some header files weren't protected against double inclusion. (gsio.h, gdebug.h) - Decoding filters didn't "look ahead" to detect EOD, so if the last read operation before closing the filter ended just before the EOD mark, the EOD mark might not be absorbed. (stream.h, stream.c) - Filling paths consisting of multiple subpaths that overlap in Y produced slightly inaccurate output. We were unable to find a way to fix this without making a NON-BACKWARD-COMPATIBLE change in the interface for the recently introduced fill_trapezoid device procedure. (gxdevice.h, gdevbbox.c, gdevddrw.c, gdevnfwd.c, gxfill.c) - When banding, get_bits didn't detect calls with out-of-range Y values. (gxclread.c) - setcacheparams didn't actually affect the size of the character cache. (gsfont.h, gxbcache.h, gxfcache.h, gschar.c, gsfont.c, gxbcache.c, gxccman.c, gxclbits.c) - When banding, colored halftones could be mangled. (gxclread.c) Fixes bugs in the bounding box device: - The bounding box device could give bizarre results if any objects crossed the lower edge of the page. (gdevbbox.c) - The bounding box device could get a memory access error when processing image data. (gdebbox.c) - The bounding box device ran the default drawing algorithms even if it had no target (performance bug only). (gdevbbox.c) - The bounding box device computed an incorrect (too small) box for partially clipped bitmap images. (gdevbbox.c) - The bounding box device got confused by files that filled the entire page with a background color. (gdevbbox.c) - The bounding box device produced infinite-height boxes for certain kinds of data. (gdevbbox.c) Changes some type declarations slightly to reduce the number of 'discarding const' compiler warnings. (gsmemory.h, gsstruct.h) Adds the capability of clipping to the outside rather than the inside of the clipping path. This is required for emulating an obscure feature of the Microsoft Windows GDI. (gspath.h, gxclpath.h, gxpath.h, gxcpath.h, gzcpath.h, gspath.c, gxacpath.c, gxclpath.c, gxclread.c, gxcpath.c.) Makes it possible for band devices to select the underlying memory device used to accumulate the actual bits. This is required for (at least) PCL5 emulation. This requires adding a procedure to the gx_device_printer structure, which, for devices that initialize the structure without using the macros in gdevprn.h or access the printer-specific procedures directly, is a NON-BACKWARD-COMPATIBLE change. (gdevprn.h, gxclist.h, gxdevice.h, gdevdflt.c, gdevprn.c, gxclread.c) Speeds up handling of rotated or halftoned masked images. (gximage2.c) Adds an output_page procedure to the bounding box device, for testing. (gdevbbox.c) Adds a sample device that keeps track of the "render algorithm", for PCL5c emulation. (gdevrrgb.c)Version 3.68 patch 4 (5/23/96)
More minor bug fixes, mostly related to the MS Windows implementation.Documentation
Further updates various doc files to make them more useful to new users. (NEWS, README, current.doc, helpers.doc, new-user.doc) Adds user-contributed documentation for ps2pdf. (ps2pdf.doc, unix-end.mak) Documents a bug in the Borland C++ 4.52 compiler, and where to find the patch for it. (make.doc)Procedures
Fixes bugs: - A command line exceeded the MS-DOS 120 character limit. (devs.mak) A file was accidentally omitted from the fileset. (wmakebat.bat)Drivers
Fixes bugs: - Many of the 'show' operators didn't work properly if the PDF writer was included in the configuration. (gs_pdfwr.ps) - x_wrap_get_bits was ridiculously slow. (It still is, but not quite as ridiculouslyrueTypuld produce in-line images that were too large. (gdevpdfi.c) - The PDF writer didn't scale explicit character and word spacing (ashow/widthshow/awidthshow) properly. (gdevpdft.c) - The PDF writer didn't copy named destination or article title strings, possibly leading to dangling pointers. (gdevpdf.c, gdevpdfm.c) - The PDF writer produced incorrect output for re-encoded fonts. (It now converts any string containing characters in non-standard positions to bitmaps; this will be fixed in a later release.) (gs_pdfwr.ps, gdevpdfx.h, gdevpdfp.c, gdevpdft.c) Updates a few drivers for the change in the handling of band device procedures. (gdevcp50.c, gdevdjet.c) Updates the X Windows driver for strip halftones. (gdevx.c) Adds anti-aliasing capability to the os2pm device. (gdevpm.c) Increases the sizes of some tables in the PDF writer. (gdevpdfx.h)Platforms
Fixes bugs: - A patch for the MS Windows platform was accidentally omitted. (gp_mswin.c) - A block of code was accidentally duplicated. (dwmain.cpp) - An identifier exceeded VAX VMS C's limit of 31 characters. (gscspace.h) - File name enumeration didn't work properly on Unix systems (still/again). (gp_unifs.c) - On MS Windows, If you closed Ghostscript with the system menu, you only closed the text window; Ghostscript kept running and you had to use the task manager to kill it. (dwmain.cpp, dwmainc.cpp, dwtext.cpp) - Some DLL-related typedefs were not consistent. (dwdll.h, gsdll.h, dpmainc.c, dwdll.cpp) - Attempts to call the DLL before it was initialized were not detected. (gsdll.c) - Bitmap line lengths were rounded up even on 32-bit Windows, which doesn't want this. (gdevwdib.c) Further improves the handling of attempts to use the DLL when it is already in use. (dwdll.cpp, gsdll.c) Adds a DLL-compatible main program for OS/2. (dpmainc.c, gp_os2.c, gsdll.c)Fonts
Fixes bugs: - The WingDings TrueType font wasn't loaded properly. (gs_ttf.ps) Makes changes so that TrueType fonts can appear in the Fontmap and can be loaded directly. (gs_fonts.ps, gs_ttf.ps)Interpreter
Fixes bugs: - Executing a .quit with only 1 element on the operand stack caused an invalid access. (zcontrol.c) - The usage help message contained incorrect double %%s. (imainarg.c) - If an initialization file tried to use any Encodings other than the 4 registered ones, it couldn't find them. (gs_init.ps, gs_res.ps) - Places that expected arrays of coordinates (rectangles, x/y/xyshow) didn't accept packed arrays. (ibnum.c, zdps1.c) - filterdict was still visible after initialization. (gs_init.ps) - The usage error message wasn't terminated by a newline. (imainarg.c) - setcacheparams (or setting the MaxFontCache user parameter) didn't actually affect the size of the character cache. (zfont.c, zmisc2.c) - The main interpreter loop declared iref as a ref *, even though it may only be a ref_packed *. (iref.h, interp.c) Changes the character cache so it ignores absurd FontBBox values. Nothing in the Adobe spec suggests doing this, but it is necessary for handling questionable output produced by PageMaker 5.0 (an Adobe product!). (zchar1.c) Changes some type declarations slightly to reduce the number of 'discarding const' compiler warnings. (igc.h, igc.c, igcref.c) Adds .setclipoutside and .currentclipoutside operators for accessing the new outside clipping capability. (zpath.c) Adds the dictionary stack to the information printed in case of a fatal problem. (imain.c) Adds .set/currentrenderalgorithm operators for testing. (zrop.c)Library
Fixes bugs: - The TrueType rasterizer didn't map quadratic to cubic splines well, and didn't handle off-curve points at the end of a contour properly. (gstype42.c) - An #include was omitted. (gsimage.c, gxclimag.c) - Some compilers complained about statements with no effect, or comma operators with no effect on the left. (gschar.c, gxcpath.c, gxfill.c) - TrueType or Type 42 glyphs with a repeat count that crossed a contour boundary produced incorrect output. (gstype42.c) - TrueType / Type 42 composite glyphs involving rotation were placed incorrectly. (gstype42.c) - Type 42 fonts with an absent or incorrect FontBBox could fail to produce output. (gstype42.c) - Some header files weren't protected against double inclusion. (gsio.h, gdebug.h) - Decoding filters didn't "look ahead" to detect EOD, so if the last read operation before closing the filter ended just before the EOD mark, the EOD mark might not be absorbed. (stream.h, stream.c) - Filling paths consisting of multiple subpaths that overlap in Y produced slightly inaccurate output. We were unable to find a way to fix this without making a NON-BACKWARD-COMPATIBLE change in the interface for the recently introduced fill_trapezoid device procedure. (gxdevice.h, gdevbbox.c, gdevddrw.c, gdevnfwd.c, gxfill.c) - When banding, get_bits didn't detect calls with out-of-range Y values. (gxclread.c) - setcacheparams didn't actually affect the size of the character cache. (gsfont.h, gxbcache.h, gxfcache.h, gschar.c, gsfont.c, gxbcache.c, gxccman.c, gxclbits.c) - When banding, colored halftones could be mangled. (gxclread.c) Fixes bugs in the bounding box device: - The bounding box device could give bizarre results if any objects crossed the lower edge of the page. (gdevbbox.c) - The bounding box device could get a memory access error when processing image data. (gdebbox.c) - The bounding box device ran the default drawing algorithms even if it had no target (performance bug only). (gdevbbox.c) - The bounding box device computed an incorrect (too small) box for partially clipped bitmap images. (gdevbbox.c) - The bounding box device got confused by files that filled the entire page with a background color. (gdevbbox.c) - The bounding box device produced infinite-height boxes for certain kinds of data. (gdevbbox.c) Changes some type declarations slightly to reduce the number of 'discarding const' compiler warnings. (gsmemory.h, gsstruct.h) Adds the capability of clipping to the outside rather than the inside of the clipping path. This is required for emulating an obscure feature of the Microsoft Windows GDI. (gspath.h, gxclpath.h, gxpath.h, gxcpath.h, gzcpath.h, gspath.c, gxacpath.c, gxclpath.c, gxclread.c, gxcpath.c.) Makes it possible for band devices to select the underlying memory device used to accumulate the actual bits. This is required for (at least) PCL5 emulation. This requires adding a procedure to the gx_device_printer structure, which, for devices that initialize the structure without using the macros in gdevprn.h or access the printer-specific procedures directly, is a NON-BACKWARD-COMPATIBLE change. (gdevprn.h, gxclist.h, gxdevice.h, gdevdflt.c, gdevprn.c, gxclread.c) Speeds up handling of rotated or halftoned masked images. (gximage2.c) Adds an output_page procedure to the bounding box device, for testing. (gdevbbox.c) Adds a sample device that keeps track of the "render algorithm", for PCL5c emulation. (gdevrrgb.c)Version 3.68 patch 4 (5/23/96)
More minor bug fixes, mostly related to the MS Windows implementation.Documentation
Further updates various doc files to make them more useful to new users. (NEWS, README, current.doc, helpers.doc, new-user.doc) Adds user-contributed documentation for ps2pdf. (ps2pdf.doc, unix-end.mak) Documents a bug in the Borland C++ 4.52 compiler, and where to find the patch for it. (make.doc)Procedures
Fixes bugs: - A command line exceeded the MS-DOS 120 character limit. (devs.mak) A file was accidentally omitted from the fileset. (wmakebat.bat)Drivers
Fixes bugs: - Many of the 'show' operators didn't work properly if the PDF writer was included in the configuration. (gs_pdfwr.ps) - x_wrap_get_bits was ridiculously slow. (It still is, but not quite as ridiculouslyrueTypuld produce in-line images that were too large. (gdevpdfi.c) - The PDF writer didn't scale explicit character and word spacing (ashow/widthshow/awidthshow) properly. (gdevpdft.c) - The PDF writer didn't copy named destination or article title strings, possibly leading to dangling pointers. (gdevpdf.c, gdevpdfm.c) - The PDF writer produced incorrect output for re-encoded fonts. (It now converts any string containing characters in non-standard positions to bitmaps; this will be fixed in a later release.) (gs_pdfwr.ps, gdevpdfx.h, gdevpdfp.c, gdevpdft.c) Updates a few drivers for the change in the handling of band device procedures. (gdevcp50.c, gdevdjet.c) Updates the X Windows driver for strip halftones. (gdevx.c) Adds anti-aliasing capability to the os2pm device. (gdevpm.c) Increases the sizes of some tables in the PDF writer. (gdevpdfx.h)Platforms
Fixes bugs: - A patch for the MS Windows platform was accidentally omitted. (gp_mswin.c) - A block of code was accidentally duplicated. (dwmain.cpp) - An identifier exceeded VAX VMS C's limit of 31 characters. (gscspace.h) - File name enumeration didn't work properly on Unix systems (still/again). (gp_unifs.c) - On MS Windows, If you closed Ghostscript with the system menu, you only closed the text window; Ghostscript kept running and you had to use the task manager to kill it. (dwmain.cpp, dwmainc.cpp, dwtext.cpp) - Some DLL-related typedefs were not consistent. (dwdll.h, gsdll.h, dpmainc.c, dwdll.cpp) - Attempts to call the DLL before it was initialized were not detected. (gsdll.c) - Bitmap line lengths were rounded up even on 32-bit Windows, which doesn't want this. (gdevwdib.c) Further improves the handling of attempts to use the DLL when it is already in use. (dwdll.cpp, gsdll.c) Adds a DLL-compatible main program for OS/2. (dpmainc.c, gp_os2.c, gsdll.c)Fonts
Fixes bugs: - The WingDings TrueType font wasn't loaded properly. (gs_ttf.ps) Makes changes so that TrueType fonts can appear in the Fontmap and can be loaded directly. (gs_fonts.ps, gs_ttf.ps)Interpreter
Fixes bugs: - Executing a .quit with only 1 element on the operand stack caused an invalid access. (zcontrol.c) - The usage help message contained incorrect double %%s. (imainarg.c) - If an initialization file tried to use any Encodings other than the 4 registered ones, it couldn't find them. (gs_init.ps, gs_res.ps) - Places that expected arrays of coordinates (rectangles, x/y/xyshow) didn't accept packed arrays. (ibnum.c, zdps1.c) - filterdict was still visible after initialization. (gs_init.ps) - The usage error message wasn't terminated by a newline. (imainarg.c) - setcacheparams (or setting the MaxFontCache user parameter) didn't actually affect the size of the character cache. (zfont.c, zmisc2.c) - The main interpreter loop declared iref as a ref *, even though it may only be a ref_packed *. (iref.h, interp.c) Changes the character cache so it ignores absurd FontBBox values. Nothing in the Adobe spec suggests doing this, but it is necessary for handling questionable output produced by PageMaker 5.0 (an Adobe product!). (zchar1.c) Changes some type declarations slightly to reduce the number of 'discarding const' compiler warnings. (igc.h, igc.c, igcref.c) Adds .setclipoutside and .currentclipoutside operators for accessing the new outside clipping capability. (zpath.c) Adds the dictionary stack to the information printed in case of a fatal problem. (imain.c) Adds .set/currentrenderalgorithm operators for testing. (zrop.c)Library
Fixes bugs: - The TrueType rasterizer didn't map quadratic to cubic splines well, and didn't handle off-curve points at the end of a contour properly. (gstype42.c) - An #include was omitted. (gsimage.c, gxclimag.c) - Some compilers complained about statements with no effect, or comma operators with no effect on the left. (gschar.c, gxcpath.c, gxfill.c) - TrueType or Type 42 glyphs with a repeat count that crossed a contour boundary produced incorrect output. (gstype42.c) - TrueType / Type 42 composite glyphs involving rotation were placed incorrectly. (gstype42.c) - Type 42 fonts with an absent or incorrect FontBBox could fail to produce output. (gstype42.c) - Some header files weren't protected against double inclusion. (gsio.h, gdebug.h) - Decoding filters didn't "look ahead" to detect EOD, so if the last read operation before closing the filter ended just before the EOD mark, the EOD mark might not be absorbed. (stream.h, stream.c) - Filling paths consisting of multiple subpaths that overlap in Y produced slightly inaccurate output. We were unable to find a way to fix this without making a NON-BACKWARD-COMPATIBLE change in the interface for the recently introduced fill_trapezoid device procedure. (gxdevice.h, gdevbbox.c, gdevddrw.c, gdevnfwd.c, gxfill.c) - When banding, get_bits didn't detect calls with out-of-range Y values. (gxclread.c) - setcacheparams didn't actually affect the size of the character cache. (gsfont.h, gxbcache.h, gxfcache.h, gschar.c, gsfont.c, gxbcache.c, gxccman.c, gxclbits.c) - When banding, colored halftones could be mangled. (gxclread.c) Fixes bugs in the bounding box device: - The bounding box device could give bizarre results if any objects crossed the lower edge of the page. (gdevbbox.c) - The bounding box device could get a memory access error when processing image data. (gdebbox.c) - The bounding box device ran the default drawing algorithms even if it had no target (performance bug only). (gdevbbox.c) - The bounding box device computed an incorrect (too small) box for partially clipped bitmap images. (gdevbbox.c) - The bounding box device got confused by files that filled the entire page with a background color. (gdevbbox.c) - The bounding box device produced infinite-height boxes for certain kinds of data. (gdevbbox.c) Changes some type declarations slightly to reduce the number of 'discarding const' compiler warnings. (gsmemory.h, gsstruct.h) Adds the capability of clipping to the outside rather than the inside of the clipping path. This is required for emulating an obscure feature of the Microsoft Windows GDI. (gspath.h, gxclpath.h, gxpath.h, gxcpath.h, gzcpath.h, gspath.c, gxacpath.c, gxclpath.c, gxclread.c, gxcpath.c.) Makes it possible for band devices to select the underlying memory device used to accumulate the actual bits. This is required for (at least) PCL5 emulation. This requires adding a procedure to the gx_device_printer structure, which, for devices that initialize the structure without using the macros in gdevprn.h or access the printer-specific procedures directly, is a NON-BACKWARD-COMPATIBLE change. (gdevprn.h, gxclist.h, gxdevice.h, gdevdflt.c, gdevprn.c, gxclread.c) Speeds up handling of rotated or halftoned masked images. (gximage2.c) Adds an output_page procedure to the bounding box device, for testing. (gdevbbox.c) Adds a sample device that keeps track of the "render algorithm", for PCL5c emulation. (gdevrrgb.c)Version 3.68 patch 4 (5/23/96)
More minor bug fixes, mostly related to the MS Windows implementation.Documentation
Further updates various doc files to make them more useful to new users. (NEWS, README, current.doc, helpers.doc, new-user.doc) Adds user-contributed documentation for ps2pdf. (ps2pdf.doc, unix-end.mak) Documents a bug in the Borland C++ 4.52 compiler, and where to find the patch for it. (make.doc)Procedures
Fixes bugs: - A command line exceeded the MS-DOS 120 character limit. (devs.mak) A file was accidentally omitted from the fileset. (wmakebat.bat)Drivers
Fixes bugs: - Many of the 'show' operators didn't work properly if the PDF writer was included in the configuration. (gs_pdfwr.ps) - x_wrap_get_bits was ridiculously slow. (It still is, but not quite as ridiculouslyrueTypuld produce in-line images that were too large. (gdevpdfi.c) - The PDF writer didn't scale explicit character and word spacing (ashow/widthshow/awidthshow) properly. (gdevpdft.c) - The PDF writer didn't copy named destination or article title strings, possibly leading to dangling pointers. (gdevpdf.c, gdevpdfm.c) - The PDF writer produced incorrect output for re-encoded fonts. (It now converts any string containing characters in non-standard positions to bitmaps; this will be fixed in a later release.) (gs_pdfwr.ps, gdevpdfx.h, gdevpdfp.c, gdevpdft.c) Updates a few drivers for the change in the handling of band device procedures. (gdevcp50.c, gdevdjet.c) Updates the X Windows driver for strip halftones. (gdevx.c) Adds anti-aliasing capability to the os2pm device. (gdevpm.c) Increases the sizes of some tables in the PDF writer. (gdevpdfx.h)Platforms
Fixes bugs: - A patch for the MS Windows platform was accidentally omitted. (gp_mswin.c) - A block of code was accidentally duplicated. (dwmain.cpp) - An identifier exceeded VAX VMS C's limit of 31 characters. (gscspace.h) - File name enumeration didn't work properly on Unix systems (still/again). (gp_unifs.c) - On MS Windows, If you closed Ghostscript with the system menu, you only closed the text window; Ghostscript kept running and you had to use the task manager to kill it. (dwmain.cpp, dwmainc.cpp, dwtext.cpp) - Some DLL-related typedefs were not consistent. (dwdll.h, gsdll.h, dpmainc.c, dwdll.cpp) - Attempts to call the DLL before it was initialized were not detected. (gsdll.c) - Bitmap line lengths were rounded up even on 32-bit Windows, which doesn't want this. (gdevwdib.c) Further improves the handling of attempts to use the DLL when it is already in use. (dwdll.cpp, gsdll.c) Adds a DLL-compatible main program for OS/2. (dpmainc.c, gp_os2.c, gsdll.c)Fonts
Fixes bugs: - The WingDings TrueType font wasn't loaded properly. (gs_ttf.ps) Makes changes so that TrueType fonts can appear in the Fontmap and can be loaded directly. (gs_fonts.ps, gs_ttf.ps)Interpreter
Fixes bugs: - Executing a .quit with only 1 element on the operand stack caused an invalid access. (zcontrol.c) - The usage help message contained incorrect double %%s. (imainarg.c) - If an initialization file tried to use any Encodings other than the 4 registered ones, it couldn't find them. (gs_init.ps, gs_res.ps) - Places that expected arrays of coordinates (rectangles, x/y/xyshow) didn't accept packed arrays. (ibnum.c, zdps1.c) - filterdict was still visible after initialization. (gs_init.ps) - The usage error message wasn't terminated by a newline. (imainarg.c) - setcacheparams (or setting the MaxFontCache user parameter) didn't actually affect the size of the character cache. (zfont.c, zmisc2.c) - The main interpreter loop declared iref as a ref *, even though it may only be a ref_packed *. (iref.h, interp.c) Changes the character cache so it ignores absurd FontBBox values. Nothing in the Adobe spec suggests doing this, but it is necessary for handling questionable output produced by PageMaker 5.0 (an Adobe product!). (zchar1.c) Changes some type declarations slightly to reduce the number of 'discarding const' compiler warnings. (igc.h, igc.c, igcref.c) Adds .setclipoutside and .currentclipoutside operators for accessing the new outside clipping capability. (zpath.c) Adds the dictionary stack to the information printed in case of a fatal problem. (imain.c) Adds .set/currentrenderalgorithm operators for testing. (zrop.c)Library
Fixes bugs: - The TrueType rasterizer didn't map quadratic to cubic splines well, and didn't handle off-curve points at the end of a contour properly. (gstype42.c) - An #include was omitted. (gsimage.c, gxclimag.c) - Some compilers complained about statements with no effect, or comma operators with no effect on the left. (gschar.c, gxcpath.c, gxfill.c) - TrueType or Type 42 glyphs with a repeat count that crossed a contour boundary produced incorrect output. (gstype42.c) - TrueType / Type 42 composite glyphs involving rotation were placed incorrectly. (gstype42.c) - Type 42 fonts with an absent or incorrect FontBBox could fail to produce output. (gstype42.c) - Some header files weren't protected against double inclusion. (gsio.h, gdebug.h) - Decoding filters didn't "look ahead" to detect EOD, so if the last read operation before closing the filter ended just before the EOD mark, the EOD mark might not be absorbed. (stream.h, stream.c) - Filling paths consisting of multiple subpaths that overlap in Y produced slightly inaccurate output. We were unable to find a way to fix this without making a NON-BACKWARD-COMPATIBLE change in the interface for the recently introduced fill_trapezoid device procedure. (gxdevice.h, gdevbbox.c, gdevddrw.c, gdevnfwd.c, gxfill.c) - When banding, get_bits didn't detect calls with out-of-range Y values. (gxclread.c) - setcacheparams didn't actually affect the size of the character cache. (gsfont.h, gxbcache.h, gxfcache.h, gschar.c, gsfont.c, gxbcache.c, gxccman.c, gxclbits.c) - When banding, colored halftones could be mangled. (gxclread.c) Fixes bugs in the bounding box device: - The bounding box device could give bizarre results if any objects crossed the lower edge of the page. (gdevbbox.c) - The bounding box device could get a memory access error when processing image data. (gdebbox.c) - The bounding box device ran the default drawing algorithms even if it had no target (performance bug only). (gdevbbox.c) - The bounding box device computed an incorrect (too small) box for partially clipped bitmap images. (gdevbbox.c) - The bounding box device got confused by files that filled the entire page with a background color. (gdevbbox.c) - The bounding box device produced infinite-height boxes for certain kinds of data. (gdevbbox.c) Changes some type declarations slightly to reduce the number of 'discarding const' compiler warnings. (gsmemory.h, gsstruct.h) Adds the capability of clipping to the outside rather than the inside of the clipping path. This is required for emulating an obscure feature of the Microsoft Windows GDI. (gspath.h, gxclpath.h, gxpath.h, gxcpath.h, gzcpath.h, gspath.c, gxacpath.c, gxclpath.c, gxclread.c, gxcpath.c.) Makes it possible for band devices to select the underlying memory device used to accumulate the actual bits. This is required for (at least) PCL5 emulation. This requires adding a procedure to the gx_device_printer structure, which, for devices that initialize the structure without using the macros in gdevprn.h or access the printer-specific procedures directly, is a NON-BACKWARD-COMPATIBLE change. (gdevprn.h, gxclist.h, gxdevice.h, gdevdflt.c, gdevprn.c, gxclread.c) Speeds up handling of rotated or halftoned masked images. (gximage2.c) Adds an output_page procedure to the bounding box device, for testing. (gdevbbox.c) Adds a sample device that keeps track of the "render algorithm", for PCL5c emulation. (gdevrrgb.c)Version 3.68 patch 4 (5/23/96)
More minor bug fixes, mostly related to the MS Windows implementation.Documentation
Further updates various doc files to make them more useful to new users. (NEWS, README, current.doc, helpers.doc, new-user.doc) Adds user-contributed documentation for ps2pdf. (ps2pdf.doc, unix-end.mak) Documents a bug in the Borland C++ 4.52 compiler, and where to find the patch for it. (make.doc)Procedures
Fixes bugs: - A command line exceeded the MS-DOS 120 character limit. (devs.mak) A file was accidentally omitted from the fileset. (wmakebat.bat)Drivers
Fixes bugs: - Many of the 'show' operators didn't work properly if the PDF writer was included in the configuration. (gs_pdfwr.ps) - x_wrap_get_bits was ridiculously slow. (It still is, but not quite as ridiculouslyrueTypuld produce in-line images that were too large. (gdevpdfi.c) - The PDF writer didn't scale explicit character and word spacing (ashow/widthshow/awidthshow) properly. (gdevpdft.c) - The PDF writer didn't copy named destination or article title strings, possibly leading to dangling pointers. (gdevpdf.c, gdevpdfm.c) - The PDF writer produced incorrect output for re-encoded fonts. (It now converts any string containing characters in non-standard positions to bitmaps; this will be fixed in a later release.) (gs_pdfwr.ps, gdevpdfx.h, gdevpdfp.c, gdevpdft.c) Updates a few drivers for the change in the handling of band device procedures. (gdevcp50.c, gdevdjet.c) Updates the X Windows driver for strip halftones. (gdevx.c) Adds anti-aliasing capability to the os2pm device. (gdevpm.c) Increases the sizes of some tables in the PDF writer. (gdevpdfx.h)Platforms
Fixes bugs: - A patch for the MS Windows platform was accidentally omitted. (gp_mswin.c) - A block of code was accidentally duplicated. (dwmain.cpp) - An identifier exceeded VAX VMS C's limit of 31 characters. (gscspace.h) - File name enumeration didn't work properly on Unix systems (still/again). (gp_unifs.c) - On MS Windows, If you closed Ghostscript with the system menu, you only closed the text window; Ghostscript kept running and you had to use the task manager to kill it. (dwmain.cpp, dwmainc.cpp, dwtext.cpp) - Some DLL-related typedefs were not consistent. (dwdll.h, gsdll.h, dpmainc.c, dwdll.cpp) - Attempts to call the DLL before it was initialized were not detected. (gsdll.c) - Bitmap line lengths were rounded up even on 32-bit Windows, which doesn't want this. (gdevwdib.c) Further improves the handling of attempts to use the DLL when it is already in use. (dwdll.cpp, gsdll.c) Adds a DLL-compatible main program for OS/2. (dpmainc.c, gp_os2.c, gsdll.c)Fonts
Fixes bugs: - The WingDings TrueType font wasn't loaded properly. (gs_ttf.ps) Makes changes so that TrueType fonts can appear in the Fontmap and can be loaded directly. (gs_fonts.ps, gs_ttf.ps)Interpreter
Fixes bugs: - Executing a .quit with only 1 element on the operand stack caused an invalid access. (zcontrol.c) - The usage help message contained incorrect double %%s. (imainarg.c) - If an initialization file tried to use any Encodings other than the 4 registered ones, it couldn't find them. (gs_init.ps, gs_res.ps) - Places that expected arrays of coordinates (rectangles, x/y/xyshow) didn't accept packed arrays. (ibnum.c, zdps1.c) - filterdict was still visible after initialization. (gs_init.ps) - The usage error message wasn't terminated by a newline. (imainarg.c) - setcacheparams (or setting the MaxFontCache user parameter) didn't actually affect the size of the character cache. (zfont.c, zmisc2.c) - The main interpreter loop declared iref as a ref *, even though it may only be a ref_packed *. (iref.h, interp.c) Changes the character cache so it ignores absurd FontBBox values. Nothing in the Adobe spec suggests doing this, but it is necessary for handling questionable output produced by PageMaker 5.0 (an Adobe product!). (zchar1.c) Changes some type declarations slightly to reduce the number of 'discarding const' compiler warnings. (igc.h, igc.c, igcref.c) Adds .setclipoutside and .currentclipoutside operators for accessing the new outside clipping capability. (zpath.c) Adds the dictionary stack to the information printed in case of a fatal problem. (imain.c) Adds .set/currentrenderalgorithm operators for testing. (zrop.c)Library
Fixes bugs: - The TrueType rasterizer didn't map quadratic to cubic splines well, and didn't handle off-curve points at the end of a contour properly. (gstype42.c) - An #include was omitted. (gsimage.c, gxclimag.c) - Some compilers complained about statements with no effect, or comma operators with no effect on the left. (gschar.c, gxcpath.c, gxfill.c) - TrueType or Type 42 glyphs with a repeat count that crossed a contour boundary produced incorrect output. (gstype42.c) - TrueType / Type 42 composite glyphs involving rotation were placed incorrectly. (gstype42.c) - Type 42 fonts with an absent or incorrect FontBBox could fail to produce output. (gstype42.c) - Some header files weren't protected against double inclusion. (gsio.h, gdebug.h) - Decoding filters didn't "look ahead" to detect EOD, so if the last read operation before closing the filter ended just before the EOD mark, the EOD mark might not be absorbed. (stream.h, stream.c) - Filling paths consisting of multiple subpaths that overlap in Y produced slightly inaccurate output. We were unable to find a way to fix this without making a NON-BACKWARD-COMPATIBLE change in the interface for the recently introduced fill_trapezoid device procedure. (gxdevice.h, gdevbbox.c, gdevddrw.c, gdevnfwd.c, gxfill.c) - When banding, get_bits didn't detect calls with out-of-range Y values. (gxclread.c) - setcacheparams didn't actually affect the size of the character cache. (gsfont.h, gxbcache.h, gxfcache.h, gschar.c, gsfont.c, gxbcache.c, gxccman.c, gxclbits.c) - When banding, colored halftones could be mangled. (gxclread.c) Fixes bugs in the bounding box device: - The bounding box device could give bizarre results if any objects crossed the lower edge of the page. (gdevbbox.c) - The bounding box device could get a memory access error when processing image data. (gdebbox.c) - The bounding box device ran the default drawing algorithms even if it had no target (performance bug only). (gdevbbox.c) - The bounding box device computed an incorrect (too small) box for partially clipped bitmap images. (gdevbbox.c) - The bounding box device got confused by files that filled the entire page with a background color. (gdevbbox.c) - The bounding box device produced infinite-height boxes for certain kinds of data. (gdevbbox.c) Changes some type declarations slightly to reduce the number of 'discarding const' compiler warnings. (gsmemory.h, gsstruct.h) Adds the capability of clipping to the outside rather than the inside of the clipping path. This is required for emulating an obscure feature of the Microsoft Windows GDI. (gspath.h, gxclpath.h, gxpath.h, gxcpath.h, gzcpath.h, gspath.c, gxacpath.c, gxclpath.c, gxclread.c, gxcpath.c.) Makes it possible for band devices to select the underlying memory device used to accumulate the actual bits. This is required for (at least) PCL5 emulation. This requires adding a procedure to the gx_device_printer structure, which, for devices that initialize the structure without using the macros in gdevprn.h or access the printer-specific procedures directly, is a NON-BACKWARD-COMPATIBLE change. (gdevprn.h, gxclist.h, gxdevice.h, gdevdflt.c, gdevprn.c, gxclread.c) Speeds up handling of rotated or halftoned masked images. (gximage2.c) Adds an output_page procedure to the bounding box device, for testing. (gdevbbox.c) Adds a sample device that keeps track of the "render algorithm", for PCL5c emulation. (gdevrrgb.c)Version 3.68 patch 4 (5/23/96)
More minor bug fixes, mostly related to the MS Windows implementation.Documentation
Further updates various doc files to make them more useful to new users. (NEWS, README, current.doc, helpers.doc, new-user.doc) Adds user-contributed documentation for ps2pdf. (ps2pdf.doc, unix-end.mak) Documents a bug in the Borland C++ 4.52 compiler, and where to find the patch for it. (make.doc)Procedures
Fixes bugs: - A command line exceeded the MS-DOS 120 character limit. (devs.mak) A file was accidentally omitted from the fileset. (wmakebat.bat)Drivers
Fixes bugs: - Many of the 'show' operators didn't work properly if the PDF writer was included in the configuration. (gs_pdfwr.ps) - x_wrap_get_bits was ridiculously slow. (It still is, but not quite as ridiculouslyrueTypuld produce in-line images that were too large. (gdevpdfi.c) - The PDF writer didn't scale explicit character and word spacing (ashow/widthshow/awidthshow) properly. (gdevpdft.c) - The PDF writer didn't copy named destination or article title strings, possibly leading to dangling pointers. (gdevpdf.c, gdevpdfm.c) - The PDF writer produced incorrect output for re-encoded fonts. (It now converts any string containing characters in non-standard positions to bitmaps; this will be fixed in a later release.) (gs_pdfwr.ps, gdevpdfx.h, gdevpdfp.c, gdevpdft.c) Updates a few drivers for the change in the handling of band device procedures. (gdevcp50.c, gdevdjet.c) Updates the X Windows driver for strip halftones. (gdevx.c) Adds anti-aliasing capability to the os2pm device. (gdevpm.c) Increases the sizes of some tables in the PDF writer. (gdevpdfx.h)Platforms
Fixes bugs: - A patch for the MS Windows platform was accidentally omitted. (gp_mswin.c) - A block of code was accidentally duplicated. (dwmain.cpp) - An identifier exceeded VAX VMS C's limit of 31 characters. (gscspace.h) - File name enumeration didn't work properly on Unix systems (still/again). (gp_unifs.c) - On MS Windows, If you closed Ghostscript with the system menu, you only closed the text window; Ghostscript kept running and you had to use the task manager to kill it. (dwmain.cpp, dwmainc.cpp, dwtext.cpp) - Some DLL-related typedefs were not consistent. (dwdll.h, gsdll.h, dpmainc.c, dwdll.cpp) - Attempts to call the DLL before it was initialized were not detected. (gsdll.c) - Bitmap line lengths were rounded up even on 32-bit Windows, which doesn't want this. (gdevwdib.c) Further improves the handling of attempts to use the DLL when it is already in use. (dwdll.cpp, gsdll.c) Adds a DLL-compatible main program for OS/2. (dpmainc.c, gp_os2.c, gsdll.c)Fonts
Fixes bugs: - The WingDings TrueType font wasn't loaded properly. (gs_ttf.ps) Makes changes so that TrueType fonts can appear in the Fontmap and can be loaded directly. (gs_fonts.ps, gs_ttf.ps)Interpreter
Fixes bugs: - Executing a .quit with only 1 element on the operand stack caused an invalid access. (zcontrol.c) - The usage help message contained incorrect double %%s. (imainarg.c) - If an initialization file tried to use any Encodings other than the 4 registered ones, it couldn't find them. (gs_init.ps, gs_res.ps) - Places that expected arrays of coordinates (rectangles, x/y/xyshow) didn't accept packed arrays. (ibnum.c, zdps1.c) - filterdict was still visible after initialization. (gs_init.ps) - The usage error message wasn't terminated by a newline. (imainarg.c) - setcacheparams (or setting the MaxFontCache user parameter) didn't actually affect the size of the character cache. (zfont.c, zmisc2.c) - The main interpreter loop declared iref as a ref *, even though it may only be a ref_packed *. (iref.h, interp.c) Changes the character cache so it ignores absurd FontBBox values. Nothing in the Adobe spec suggests doing this, but it is necessary for handling questionable output produced by PageMaker 5.0 (an Adobe product!). (zchar1.c) Changes some type declarations slightly to reduce the number of 'discarding const' compiler warnings. (igc.h, igc.c, igcref.c) Adds .setclipoutside and .currentclipoutside operators for accessing the new outside clipping capability. (zpath.c) Adds the dictionary stack to the information printed in case of a fatal problem. (imain.c) Adds .set/currentrenderalgorithm operators for testing. (zrop.c)Library
Fixes bugs: - The TrueType rasterizer didn't map quadratic to cubic splines well, and didn't handle off-curve points at the end of a contour properly. (gstype42.c) - An #include was omitted. (gsimage.c, gxclimag.c) - Some compilers complained about statements with no effect, or comma operators with no effect on the left. (gschar.c, gxcpath.c, gxfill.c) - TrueType or Type 42 glyphs with a repeat count that crossed a contour boundary produced incorrect output. (gstype42.c) - TrueType / Type 42 composite glyphs involving rotation were placed incorrectly. (gstype42.c) - Type 42 fonts with an absent or incorrect FontBBox could fail to produce output. (gstype42.c) - Some header files weren't protected against double inclusion. (gsio.h, gdebug.h) - Decoding filters didn't "look ahead" to detect EOD, so if the last read operation before closing the filter ended just before the EOD mark, the EOD mark might not be absorbed. (stream.h, stream.c) - Filling paths consisting of multiple subpaths that overlap in Y produced slightly inaccurate output. We were unable to find a way to fix this without making a NON-BACKWARD-COMPATIBLE change in the interface for the recently introduced fill_trapezoid device procedure. (gxdevice.h, gdevbbox.c, gdevddrw.c, gdevnfwd.c, gxfill.c) - When banding, get_bits didn't detect calls with out-of-range Y values. (gxclread.c) - setcacheparams didn't actually affect the size of the character cache. (gsfont.h, gxbcache.h, gxfcache.h, gschar.c, gsfont.c, gxbcache.c, gxccman.c, gxclbits.c) - When banding, colored halftones could be mangled. (gxclread.c) Fixes bugs in the bounding box device: - The bounding box device could give bizarre results if any objects crossed the lower edge of the page. (gdevbbox.c) - The bounding box device could get a memory access error when processing image data. (gdebbox.c) - The bounding box device ran the default drawing algorithms even if it had no target (performance bug only). (gdevbbox.c) - The bounding box device computed an incorrect (too small) box for partially clipped bitmap images. (gdevbbox.c) - The bounding box device got confused by files that filled the entire page with a background color. (gdevbbox.c) - The bounding box device produced infinite-height boxes for certain kinds of data. (gdevbbox.c) Changes some type declarations slightly to reduce the number of 'discarding const' compiler warnings. (gsmemory.h, gsstruct.h) Adds the capability of clipping to the outside rather than the inside of the clipping path. This is required for emulating an obscure feature of the Microsoft Windows GDI. (gspath.h, gxclpath.h, gxpath.h, gxcpath.h, gzcpath.h, gspath.c, gxacpath.c, gxclpath.c, gxclread.c, gxcpath.c.) Makes it possible for band devices to select the underlying memory device used to accumulate the actual bits. This is required for (at least) PCL5 emulation. This requires adding a procedure to the gx_device_printer structure, which, for devices that initialize the structure without using the macros in gdevprn.h or access the printer-specific procedures directly, is a NON-BACKWARD-COMPATIBLE change. (gdevprn.h, gxclist.h, gxdevice.h, gdevdflt.c, gdevprn.c, gxclread.c) Speeds up handling of rotated or halftoned masked images. (gximage2.c) Adds an output_page procedure to the bounding box device, for testing. (gdevbbox.c) Adds a sample device that keeps track of the "render algorithm", for PCL5c emulation. (gdevrrgb.c)Version 3.68 patch 4 (5/23/96)
More minor bug fixes, mostly related to the MS Windows implementation.Documentation
Further updates various doc files to make them more useful to new users. (NEWS, README, current.doc, helpers.doc, new-user.doc) Adds user-contributed documentation for ps2pdf. (ps2pdf.doc, unix-end.mak) Documents a bug in the Borland C++ 4.52 compiler, and where to find the patch for it. (make.doc)Procedures
Fixes bugs: - A command line exceeded the MS-DOS 120 character limit. (devs.mak) A file was accidentally omitted from the fileset. (wmakebat.bat)Drivers
Fixes bugs: - Many of the 'show' operators didn't work properly if the PDF writer was included in the configuration. (gs_pdfwr.ps) - x_wrap_get_bits was ridiculously slow. (It still is, but not quite as ridiculouslyrueTypuld produce in-line images that were too large. (gdevpdfi.c) - The PDF writer didn't scale explicit character and word spacing (ashow/widthshow/awidthshow) properly. (gdevpdft.c) - The PDF writer didn't copy named destination or article title strings, possibly leading to dangling pointers. (gdevpdf.c, gdevpdfm.c) - The PDF writer produced incorrect output for re-encoded fonts. (It now converts any string containing characters in non-standard positions to bitmaps; this will be fixed in a later release.) (gs_pdfwr.ps, gdevpdfx.h, gdevpdfp.c, gdevpdft.c) Updates a few drivers for the change in the handling of band device procedures. (gdevcp50.c, gdevdjet.c) Updates the X Windows driver for strip halftones. (gdevx.c) Adds anti-aliasing capability to the os2pm device. (gdevpm.c) Increases the sizes of some tables in the PDF writer. (gdevpdfx.h)Platforms
Fixes bugs: - A patch for the MS Windows platform was accidentally omitted. (gp_mswin.c) - A block of code was accidentally duplicated. (dwmain.cpp) - An identifier exceeded VAX VMS C's limit of 31 characters. (gscspace.h) - File name enumeration didn't work properly on Unix systems (still/again). (gp_unifs.c) - On MS Windows, If you closed Ghostscript with the system menu, you only closed the text window; Ghostscript kept running and you had to use the task manager to kill it. (dwmain.cpp, dwmainc.cpp, dwtext.cpp) - Some DLL-related typedefs were not consistent. (dwdll.h, gsdll.h, dpmainc.c, dwdll.cpp) - Attempts to call the DLL before it was initialized were not detected. (gsdll.c) - Bitmap line lengths were rounded up even on 32-bit Windows, which doesn't want this. (gdevwdib.c) Further improves the handling of attempts to use the DLL when it is already in use. (dwdll.cpp, gsdll.c) Adds a DLL-compatible main program for OS/2. (dpmainc.c, gp_os2.c, gsdll.c)Fonts
Fixes bugs: - The WingDings TrueType font wasn't loaded properly. (gs_ttf.ps) Makes changes so that TrueType fonts can appear in the Fontmap and can be loaded directly. (gs_fonts.ps, gs_ttf.ps)Interpreter
Fixes bugs: - Executing a .quit with only 1 element on the operand stack caused an invalid access. (zcontrol.c) - The usage help message contained incorrect double %%s. (imainarg.c) - If an initialization file tried to use any Encodings other than the 4 registered ones, it couldn't find them. (gs_init.ps, gs_res.ps) - Places that expected arrays of coordinates (rectangles, x/y/xyshow) didn't accept packed arrays. (ibnum.c, zdps1.c) - filterdict was still visible after initialization. (gs_init.ps) - The usage error message wasn't terminated by a newline. (imainarg.c) - setcacheparams (or setting the MaxFontCache user parameter) didn't actually affect the size of the character cache. (zfont.c, zmisc2.c) - The main interpreter loop declared iref as a ref *, even though it may only be a ref_packed *. (iref.h, interp.c) Changes the character cache so it ignores absurd FontBBox values. Nothing in the Adobe spec suggests doing this, but it is necessary for handling questionable output produced by PageMaker 5.0 (an Adobe product!). (zchar1.c) Changes some type declarations slightly to reduce the number of 'discarding const' compiler warnings. (igc.h, igc.c, igcref.c) Adds .setclipoutside and .currentclipoutside operators for accessing the new outside clipping capability. (zpath.c) Adds the dictionary stack to the information printed in case of a fatal problem. (imain.c) Adds .set/currentrenderalgorithm operators for testing. (zrop.c)Library
Fixes bugs: - The TrueType rasterizer didn't map quadratic to cubic splines well, and didn't handle off-curve points at the end of a contour properly. (gstype42.c) - An #include was omitted. (gsimage.c, gxclimag.c) - Some compilers complained about statements with no effect, or comma operators with no effect on the left. (gschar.c, gxcpath.c, gxfill.c) - TrueType or Type 42 glyphs with a repeat count that crossed a contour boundary produced incorrect output. (gstype42.c) - TrueType / Type 42 composite glyphs involving rotation were placed incorrectly. (gstype42.c) - Type 42 fonts with an absent or incorrect FontBBox could fail to produce output. (gstype42.c) - Some header files weren't protected against double inclusion. (gsio.h, gdebug.h) - Decoding filters didn't "look ahead" to detect EOD, so if the last read operation before closing the filter ended just before the EOD mark, the EOD mark might not be absorbed. (stream.h, stream.c) - Filling paths consisting of multiple subpaths that overlap in Y produced slightly inaccurate output. We were unable to find a way to fix this without making a NON-BACKWARD-COMPATIBLE change in the interface for the recently introduced fill_trapezoid device procedure. (gxdevice.h, gdevbbox.c, gdevddrw.c, gdevnfwd.c, gxfill.c) - When banding, get_bits didn't detect calls with out-of-range Y values. (gxclread.c) - setcacheparams didn't actually affect the size of the character cache. (gsfont.h, gxbcache.h, gxfcache.h, gschar.c, gsfont.c, gxbcache.c, gxccman.c, gxclbits.c) - When banding, colored halftones could be mangled. (gxclread.c) Fixes bugs in the bounding box device: - The bounding box device could give bizarre results if any objects crossed the lower edge of the page. (gdevbbox.c) - The bounding box device could get a memory access error when processing image data. (gdebbox.c) - The bounding box device ran the default drawing algorithms even if it had no target (performance bug only). (gdevbbox.c) - The bounding box device computed an incorrect (too small) box for partially clipped bitmap images. (gdevbbox.c) - The bounding box device got confused by files that filled the entire page with a background color. (gdevbbox.c) - The bounding box device produced infinite-height boxes for certain kinds of data. (gdevbbox.c) Changes some type declarations slightly to reduce the number of 'discarding const' compiler warnings. (gsmemory.h, gsstruct.h) Adds the capability of clipping to the outside rather than the inside of the clipping path. This is required for emulating an obscure feature of the Microsoft Windows GDI. (gspath.h, gxclpath.h, gxpath.h, gxcpath.h, gzcpath.h, gspath.c, gxacpath.c, gxclpath.c, gxclread.c, gxcpath.c.) Makes it possible for band devices to select the underlying memory device used to accumulate the actual bits. This is required for (at least) PCL5 emulation. This requires adding a procedure to the gx_device_printer structure, which, for devices that initialize the structure without using the macros in gdevprn.h or access the printer-specific procedures directly, is a NON-BACKWARD-COMPATIBLE change. (gdevprn.h, gxclist.h, gxdevice.h, gdevdflt.c, gdevprn.c, gxclread.c) Speeds up handling of rotated or halftoned masked images. (gximage2.c) Adds an output_page procedure to the bounding box device, for testing. (gdevbbox.c) Adds a sample device that keeps track of the "render algorithm", for PCL5c emulation. (gdevrrgb.c)Version 3.68 patch 4 (5/23/96)
More minor bug fixes, mostly related to the MS Windows implementation.Documentation
Further updates various doc files to make them more useful to new users. (NEWS, README, current.doc, helpers.doc, new-user.doc) Adds user-contributed documentation for ps2pdf. (ps2pdf.doc, unix-end.mak) Documents a bug in the Borland C++ 4.52 compiler, and where to find the patch for it. (make.doc)Procedures
Fixes bugs: - A command line exceeded the MS-DOS 120 character limit. (devs.mak) A file was accidentally omitted from the fileset. (wmakebat.bat)Drivers
Fixes bugs: - Many of the 'show' operators didn't work properly if the PDF writer was included in the configuration. (gs_pdfwr.ps) - x_wrap_get_bits was ridiculously slow. (It still is, but not quite as ridiculouslyrueTypuld produce in-line images that were too large. (gdevpdfi.c) - The PDF writer didn't scale explicit character and word spacing (ashow/widthshow/awidthshow) properly. (gdevpdft.c) - The PDF writer didn't copy named destination or article title strings, possibly leading to dangling pointers. (gdevpdf.c, gdevpdfm.c) - The PDF writer produced incorrect output for re-encoded fonts. (It now converts any string containing characters in non-standard positions to bitmaps; this will be fixed in a later release.) (gs_pdfwr.ps, gdevpdfx.h, gdevpdfp.c, gdevpdft.c) Updates a few drivers for the change in the handling of band device procedures. (gdevcp50.c, gdevdjet.c) Updates the X Windows driver for strip halftones. (gdevx.c) Adds anti-aliasing capability to the os2pm device. (gdevpm.c) Increases the sizes of some tables in the PDF writer. (gdevpdfx.h)Platforms
Fixes bugs: - A patch for the MS Windows platform was accidentally omitted. (gp_mswin.c) - A block of code was accidentally duplicated. (dwmain.cpp) - An identifier exceeded VAX VMS C's limit of 31 characters. (gscspace.h) - File name enumeration didn't work properly on Unix systems (still/again). (gp_unifs.c) - On MS Windows, If you closed Ghostscript with the system menu, you only closed the text window; Ghostscript kept running and you had to use the task manager to kill it. (dwmain.cpp, dwmainc.cpp, dwtext.cpp) - Some DLL-related typedefs were not consistent. (dwdll.h, gsdll.h, dpmainc.c, dwdll.cpp) - Attempts to call the DLL before it was initialized were not detected. (gsdll.c) - Bitmap line lengths were rounded up even on 32-bit Windows, which doesn't want this. (gdevwdib.c) Further improves the handling of attempts to use the DLL when it is already in use. (dwdll.cpp, gsdll.c) Adds a DLL-compatible main program for OS/2. (dpmainc.c, gp_os2.c, gsdll.c)Fonts
Fixes bugs: - The WingDings TrueType font wasn't loaded properly. (gs_ttf.ps) Makes changes so that TrueType fonts can appear in the Fontmap and can be loaded directly. (gs_fonts.ps, gs_ttf.ps)Interpreter
Fixes bugs: - Executing a .quit with only 1 element on the operand stack caused an invalid access. (zcontrol.c) - The usage help message contained incorrect double %%s. (imainarg.c) - If an initialization file tried to use any Encodings other than the 4 registered ones, it couldn't find them. (gs_init.ps, gs_res.ps) - Places that expected arrays of coordinates (rectangles, x/y/xyshow) didn't accept packed arrays. (ibnum.c, zdps1.c) - filterdict was still visible after initialization. (gs_init.ps) - The usage error message wasn't terminated by a newline. (imainarg.c) - setcacheparams (or setting the MaxFontCache user parameter) didn't actually affect the size of the character cache. (zfont.c, zmisc2.c) - The main interpreter loop declared iref as a ref *, even though it may only be a ref_packed *. (iref.h, interp.c) Changes the character cache so it ignores absurd FontBBox values. Nothing in the Adobe spec suggests doing this, but it is necessary for handling questionable output produced by PageMaker 5.0 (an Adobe product!). (zchar1.c) Changes some type declarations slightly to reduce the number of 'discarding const' compiler warnings. (igc.h, igc.c, igcref.c) Adds .setclipoutside and .currentclipoutside operators for accessing the new outside clipping capability. (zpath.c) Adds the dictionary stack to the information printed in case of a fatal problem. (imain.c) Adds .set/currentrenderalgorithm operators for testing. (zrop.c)Library
Fixes bugs: - The TrueType rasterizer didn't map quadratic to cubic splines well, and didn't handle off-curve points at the end of a contour properly. (gstype42.c) - An #include was omitted. (gsimage.c, gxclimag.c) - Some compilers complained about statements with no effect, or comma operators with no effect on the left. (gschar.c, gxcpath.c, gxfill.c) - TrueType or Type 42 glyphs with a repeat count that crossed a contour boundary produced incorrect output. (gstype42.c) - TrueType / Type 42 composite glyphs involving rotation were placed incorrectly. (gstype42.c) - Type 42 fonts with an absent or incorrect FontBBox could fail to produce output. (gstype42.c) - Some header files weren't protected against double inclusion. (gsio.h, gdebug.h) - Decoding filters didn't "look ahead" to detect EOD, so if the last read operation before closing the filter ended just before the EOD mark, the EOD mark might not be absorbed. (stream.h, stream.c) - Filling paths consisting of multiple subpaths that overlap in Y produced slightly inaccurate output. We were unable to find a way to fix this without making a NON-BACKWARD-COMPATIBLE change in the interface for the recently introduced fill_trapezoid device procedure. (gxdevice.h, gdevbbox.c, gdevddrw.c, gdevnfwd.c, gxfill.c) - When banding, get_bits didn't detect calls with out-of-range Y values. (gxclread.c) - setcacheparams didn't actually affect the size of the character cache. (gsfont.h, gxbcache.h, gxfcache.h, gschar.c, gsfont.c, gxbcache.c, gxccman.c, gxclbits.c) - When banding, colored halftones could be mangled. (gxclread.c) Fixes bugs in the bounding box device: - The bounding box device could give bizarre results if any objects crossed the lower edge of the page. (gdevbbox.c) - The bounding box device could get a memory access error when processing image data. (gdebbox.c) - The bounding box device ran the default drawing algorithms even if it had no target (performance bug only). (gdevbbox.c) - The bounding box device computed an incorrect (too small) box for partially clipped bitmap images. (gdevbbox.c) - The bounding box device got confused by files that filled the entire page with a background color. (gdevbbox.c) - The bounding box device produced infinite-height boxes for certain kinds of data. (gdevbbox.c) Changes some type declarations slightly to reduce the number of 'discarding const' compiler warnings. (gsmemory.h, gsstruct.h) Adds the capability of clipping to the outside rather than the inside of the clipping path. This is required for emulating an obscure feature of the Microsoft Windows GDI. (gspath.h, gxclpath.h, gxpath.h, gxcpath.h, gzcpath.h, gspath.c, gxacpath.c, gxclpath.c, gxclread.c, gxcpath.c.) Makes it possible for band devices to select the underlying memory device used to accumulate the actual bits. This is required for (at least) PCL5 emulation. This requires adding a procedure to the gx_device_printer structure, which, for devices that initialize the structure without using the macros in gdevprn.h or access the printer-specific procedures directly, is a NON-BACKWARD-COMPATIBLE change. (gdevprn.h, gxclist.h, gxdevice.h, gdevdflt.c, gdevprn.c, gxclread.c) Speeds up handling of rotated or halftoned masked images. (gximage2.c) Adds an output_page procedure to the bounding box device, for testing. (gdevbbox.c) Adds a sample device that keeps track of the "render algorithm", for PCL5c emulation. (gdevrrgb.c)Version 3.68 patch 4 (5/23/96)
More minor bug fixes, mostly related to the MS Windows implementation.Documentation
Further updates various doc files to make them more useful to new users. (NEWS, README, current.doc, helpers.doc, new-user.doc) Adds user-contributed documentation for ps2pdf. (ps2pdf.doc, unix-end.mak) Documents a bug in the Borland C++ 4.52 compiler, and where to find the patch for it. (make.doc)Procedures
Fixes bugs: - A command line exceeded the MS-DOS 120 character limit. (devs.mak) A file was accidentally omitted from the fileset. (wmakebat.bat)Drivers
Fixes bugs: - Many of the 'show' operators didn't work properly if the PDF writer was included in the configuration. (gs_pdfwr.ps) - x_wrap_get_bits was ridiculously slow. (It still is, but not quite as ridiculouslyrueTypuld produce in-line images that were too large. (gdevpdfi.c) - The PDF writer didn't scale explicit character and word spacing (ashow/widthshow/awidthshow) properly. (gdevpdft.c) - The PDF writer didn't copy named destination or article title strings, possibly leading to dangling pointers. (gdevpdf.c, gdevpdfm.c) - The PDF writer produced incorrect output for re-encoded fonts. (It now converts any string containing characters in non-standard positions to bitmaps; this will be fixed in a later release.) (gs_pdfwr.ps, gdevpdfx.h, gdevpdfp.c, gdevpdft.c) Updates a few drivers for the change in the handling of band device procedures. (gdevcp50.c, gdevdjet.c) Updates the X Windows driver for strip halftones. (gdevx.c) Adds anti-aliasing capability to the os2pm device. (gdevpm.c) Increases the sizes of some tables in the PDF writer. (gdevpdfx.h)Platforms
Fixes bugs: - A patch for the MS Windows platform was accidentally omitted. (gp_mswin.c) - A block of code was accidentally duplicated. (dwmain.cpp) - An identifier exceeded VAX VMS C's limit of 31 characters. (gscspace.h) - File name enumeration didn't work properly on Unix systems (still/again). (gp_unifs.c) - On MS Windows, If you closed Ghostscript with the system menu, you only closed the text window; Ghostscript kept running and you had to use the task manager to kill it. (dwmain.cpp, dwmainc.cpp, dwtext.cpp) - Some DLL-related typedefs were not consistent. (dwdll.h, gsdll.h, dpmainc.c, dwdll.cpp) - Attempts to call the DLL before it was initialized were not detected. (gsdll.c) - Bitmap line lengths were rounded up even on 32-bit Windows, which doesn't want this. (gdevwdib.c) Further improves the handling of attempts to use the DLL when it is already in use. (dwdll.cpp, gsdll.c) Adds a DLL-compatible main program for OS/2. (dpmainc.c, gp_os2.c, gsdll.c)Fonts
Fixes bugs: - The WingDings TrueType font wasn't loaded properly. (gs_ttf.ps) Makes changes so that TrueType fonts can appear in the Fontmap and can be loaded directly. (gs_fonts.ps, gs_ttf.ps)Interpreter
Fixes bugs: - Executing a .quit with only 1 element on the operand stack caused an invalid access. (zcontrol.c) - The usage help message contained incorrect double %%s. (imainarg.c) - If an initialization file tried to use any Encodings other than the 4 registered ones, it couldn't find them. (gs_init.ps, gs_res.ps) - Places that expected arrays of coordinates (rectangles, x/y/xyshow) didn't accept packed arrays. (ibnum.c, zdps1.c) - filterdict was still visible after initialization. (gs_init.ps) - The usage error message wasn't terminated by a newline. (imainarg.c) - setcacheparams (or setting the MaxFontCache user parameter) didn't actually affect the size of the character cache. (zfont.c, zmisc2.c) - The main interpreter loop declared iref as a ref *, even though it may only be a ref_packed *. (iref.h, interp.c) Changes the character cache so it ignores absurd FontBBox values. Nothing in the Adobe spec suggests doing this, but it is necessary for handling questionable output produced by PageMaker 5.0 (an Adobe product!). (zchar1.c) Changes some type declarations slightly to reduce the number of 'discarding const' compiler warnings. (igc.h, igc.c, igcref.c) Adds .setclipoutside and .currentclipoutside operators for accessing the new outside clipping capability. (zpath.c) Adds the dictionary stack to the information printed in case of a fatal problem. (imain.c) Adds .set/currentrenderalgorithm operators for testing. (zrop.c)Library
Fixes bugs: - The TrueType rasterizer didn't map quadratic to cubic splines well, and didn't handle off-curve points at the end of a contour properly. (gstype42.c) - An #include was omitted. (gsimage.c, gxclimag.c) - Some compilers complained about statements with no effect, or comma operators with no effect on the left. (gschar.c, gxcpath.c, gxfill.c) - TrueType or Type 42 glyphs with a repeat count that crossed a contour boundary produced incorrect output. (gstype42.c) - TrueType / Type 42 composite glyphs involving rotation were placed incorrectly. (gstype42.c) - Type 42 fonts with an absent or incorrect FontBBox could fail to produce output. (gstype42.c) - Some header files weren't protected against double inclusion. (gsio.h, gdebug.h) - Decoding filters didn't "look ahead" to detect EOD, so if the last read operation before closing the filter ended just before the EOD mark, the EOD mark might not be absorbed. (stream.h, stream.c) - Filling paths consisting of multiple subpaths that overlap in Y produced slightly inaccurate output. We were unable to find a way to fix this without making a NON-BACKWARD-COMPATIBLE change in the interface for the recently introduced fill_trapezoid device procedure. (gxdevice.h, gdevbbox.c, gdevddrw.c, gdevnfwd.c, gxfill.c) - When banding, get_bits didn't detect calls with out-of-range Y values. (gxclread.c) - setcacheparams didn't actually affect the size of the character cache. (gsfont.h, gxbcache.h, gxfcache.h, gschar.c, gsfont.c, gxbcache.c, gxccman.c, gxclbits.c) - When banding, colored halftones could be mangled. (gxclread.c) Fixes bugs in the bounding box device: - The bounding box device could give bizarre results if any objects crossed the lower edge of the page. (gdevbbox.c) - The bounding box device could get a memory access error when processing image data. (gdebbox.c) - The bounding box device ran the default drawing algorithms even if it had no target (performance bug only). (gdevbbox.c) - The bounding box device computed an incorrect (too small) box for partially clipped bitmap images. (gdevbbox.c) - The bounding box device got confused by files that filled the entire page with a background color. (gdevbbox.c) - The bounding box device produced infinite-height boxes for certain kinds of data. (gdevbbox.c) Changes some type declarations slightly to reduce the number of 'discarding const' compiler warnings. (gsmemory.h, gsstruct.h) Adds the capability of clipping to the outside rather than the inside of the clipping path. This is required for emulating an obscure feature of the Microsoft Windows GDI. (gspath.h, gxclpath.h, gxpath.h, gxcpath.h, gzcpath.h, gspath.c, gxacpath.c, gxclpath.c, gxclread.c, gxcpath.c.) Makes it possible for band devices to select the underlying memory device used to accumulate the actual bits. This is required for (at least) PCL5 emulation. This requires adding a procedure to the gx_device_printer structure, which, for devices that initialize the structure without using the macros in gdevprn.h or access the printer-specific procedures directly, is a NON-BACKWARD-COMPATIBLE change. (gdevprn.h, gxclist.h, gxdevice.h, gdevdflt.c, gdevprn.c, gxclread.c) Speeds up handling of rotated or halftoned masked images. (gximage2.c) Adds an output_page procedure to the bounding box device, for testing. (gdevbbox.c) Adds a sample device that keeps track of the "render algorithm", for PCL5c emulation. (gdevrrgb.c)Version 3.68 patch 4 (5/23/96)
More minor bug fixes, mostly related to the MS Windows implementation.Documentation
Further updates various doc files to make them more useful to new users. (NEWS, README, current.doc, helpers.doc, new-user.doc) Adds user-contributed documentation for ps2pdf. (ps2pdf.doc, unix-end.mak) Documents a bug in the Borland C++ 4.52 compiler, and where to find the patch for it. (make.doc)Procedures
Fixes bugs: - A command line exceeded the MS-DOS 120 character limit. (devs.mak) A file was accidentally omitted from the fileset. (wmakebat.bat)Drivers
Fixes bugs: - Many of the 'show' operators didn't work properly if the PDF writer was included in the configuration. (gs_pdfwr.ps) - x_wrap_get_bits was ridiculously slow. (It still is, but not quite as ridiculouslyrueTypuld produce in-line images that were too large. (gdevpdfi.c) - The PDF writer didn't scale explicit character and word spacing (ashow/widthshow/awidthshow) properly. (gdevpdft.c) - The PDF writer didn't copy named destination or article title strings, possibly leading to dangling pointers. (gdevpdf.c, gdevpdfm.c) - The PDF writer produced incorrect output for re-encoded fonts. (It now converts any string containing characters in non-standard positions to bitmaps; this will be fixed in a later release.) (gs_pdfwr.ps, gdevpdfx.h, gdevpdfp.c, gdevpdft.c) Updates a few drivers for the change in the handling of band device procedures. (gdevcp50.c, gdevdjet.c) Updates the X Windows driver for strip halftones. (gdevx.c) Adds anti-aliasing capability to the os2pm device. (gdevpm.c) Increases the sizes of some tables in the PDF writer. (gdevpdfx.h)Platforms
Fixes bugs: - A patch for the MS Windows platform was accidentally omitted. (gp_mswin.c) - A block of code was accidentally duplicated. (dwmain.cpp) - An identifier exceeded VAX VMS C's limit of 31 characters. (gscspace.h) - File name enumeration didn't work properly on Unix systems (still/again). (gp_unifs.c) - On MS Windows, If you closed Ghostscript with the system menu, you only closed the text window; Ghostscript kept running and you had to use the task manager to kill it. (dwmain.cpp, dwmainc.cpp, dwtext.cpp) - Some DLL-related typedefs were not consistent. (dwdll.h, gsdll.h, dpmainc.c, dwdll.cpp) - Attempts to call the DLL before it was initialized were not detected. (gsdll.c) - Bitmap line lengths were rounded up even on 32-bit Windows, which doesn't want this. (gdevwdib.c) Further improves the handling of attempts to use the DLL when it is already in use. (dwdll.cpp, gsdll.c) Adds a DLL-compatible main program for OS/2. (dpmainc.c, gp_os2.c, gsdll.c)Fonts
Fixes bugs: - The WingDings TrueType font wasn't loaded properly. (gs_ttf.ps) Makes changes so that TrueType fonts can appear in the Fontmap and can be loaded directly. (gs_fonts.ps, gs_ttf.ps)Interpreter
Fixes bugs: - Executing a .quit with only 1 element on the operand stack caused an invalid access. (zcontrol.c) - The usage help message contained incorrect double %%s. (imainarg.c) - If an initialization file tried to use any Encodings other than the 4 registered ones, it couldn't find them. (gs_init.ps, gs_res.ps) - Places that expected arrays of coordinates (rectangles, x/y/xyshow) didn't accept packed arrays. (ibnum.c, zdps1.c) - filterdict was still visible after initialization. (gs_init.ps) - The usage error message wasn't terminated by a newline. (imainarg.c) - setcacheparams (or setting the MaxFontCache user parameter) didn't actually affect the size of the character cache. (zfont.c, zmisc2.c) - The main interpreter loop declared iref as a ref *, even though it may only be a ref_packed *. (iref.h, interp.c) Changes the character cache so it ignores absurd FontBBox values. Nothing in the Adobe spec suggests doing this, but it is necessary for handling questionable output produced by PageMaker 5.0 (an Adobe product!). (zchar1.c) Changes some type declarations slightly to reduce the number of 'discarding const' compiler warnings. (igc.h, igc.c, igcref.c) Adds .setclipoutside and .currentclipoutside operators for accessing the new outside clipping capability. (zpath.c) Adds the dictionary stack to the information printed in case of a fatal problem. (imain.c) Adds .set/currentrenderalgorithm operators for testing. (zrop.c)Library
Fixes bugs: - The TrueType rasterizer didn't map quadratic to cubic splines well, and didn't handle off-curve points at the end of a contour properly. (gstype42.c) - An #include was omitted. (gsimage.c, gxclimag.c) - Some compilers complained about statements with no effect, or comma operators with no effect on the left. (gschar.c, gxcpath.c, gxfill.c) - TrueType or Type 42 glyphs with a repeat count that crossed a contour boundary produced incorrect output. (gstype42.c) - TrueType / Type 42 composite glyphs involving rotation were placed incorrectly. (gstype42.c) - Type 42 fonts with an absent or incorrect FontBBox could fail to produce output. (gstype42.c) - Some header files weren't protected against double inclusion. (gsio.h, gdebug.h) - Decoding filters didn't "look ahead" to detect EOD, so if the last read operation before closing the filter ended just before the EOD mark, the EOD mark might not be absorbed. (stream.h, stream.c) - Filling paths consisting of multiple subpaths that overlap in Y produced slightly inaccurate output. We were unable to find a way to fix this without making a NON-BACKWARD-COMPATIBLE change in the interface for the recently introduced fill_trapezoid device procedure. (gxdevice.h, gdevbbox.c, gdevddrw.c, gdevnfwd.c, gxfill.c) - When banding, get_bits didn't detect calls with out-of-range Y values. (gxclread.c) - setcacheparams didn't actually affect the size of the character cache. (gsfont.h, gxbcache.h, gxfcache.h, gschar.c, gsfont.c, gxbcache.c, gxccman.c, gxclbits.c) - When banding, colored halftones could be mangled. (gxclread.c) Fixes bugs in the bounding box device: - The bounding box device could give bizarre results if any objects crossed the lower edge of the page. (gdevbbox.c) - The bounding box device could get a memory access error when processing image data. (gdebbox.c) - The bounding box device ran the default drawing algorithms even if it had no target (performance bug only). (gdevbbox.c) - The bounding box device computed an incorrect (too small) box for partially clipped bitmap images. (gdevbbox.c) - The bounding box device got confused by files that filled the entire page with a background color. (gdevbbox.c) - The bounding box device produced infinite-height boxes for certain kinds of data. (gdevbbox.c) Changes some type declarations slightly to reduce the number of 'discarding const' compiler warnings. (gsmemory.h, gsstruct.h) Adds the capability of clipping to the outside rather than the inside of the clipping path. This is required for emulating an obscure feature of the Microsoft Windows GDI. (gspath.h, gxclpath.h, gxpath.h, gxcpath.h, gzcpath.h, gspath.c, gxacpath.c, gxclpath.c, gxclread.c, gxcpath.c.) Makes it possible for band devices to select the underlying memory device used to accumulate the actual bits. This is required for (at least) PCL5 emulation. This requires adding a procedure to the gx_device_printer structure, which, for devices that initialize the structure without using the macros in gdevprn.h or access the printer-specific procedures directly, is a NON-BACKWARD-COMPATIBLE change. (gdevprn.h, gxclist.h, gxdevice.h, gdevdflt.c, gdevprn.c, gxclread.c) Speeds up handling of rotated or halftoned masked images. (gximage2.c) Adds an output_page procedure to the bounding box device, for testing. (gdevbbox.c) Adds a sample device that keeps track of the "render algorithm", for PCL5c emulation. (gdevrrgb.c)Version 3.68 patch 4 (5/23/96)
More minor bug fixes, mostly related to the MS Windows implementation.Documentation
Further updates various doc files to make them more useful to new users. (NEWS, README, current.doc, helpers.doc, new-user.doc) Adds user-contributed documentation for ps2pdf. (ps2pdf.doc, unix-end.mak) Documents a bug in the Borland C++ 4.52 compiler, and where to find the patch for it. (make.doc)Procedures
Fixes bugs: - A command line exceeded the MS-DOS 120 character limit. (devs.mak) A file was accidentally omitted from the fileset. (wmakebat.bat)Drivers
Fixes bugs: - Many of the 'show' operators didn't work properly if the PDF writer was included in the configuration. (gs_pdfwr.ps) - x_wrap_get_bits was ridiculously slow. (It still is, but not quite as ridiculouslyrueTypuld produce in-line images that were too large. (gdevpdfi.c) - The PDF writer didn't scale explicit character and word spacing (ashow/widthshow/awidthshow) properly. (gdevpdft.c) - The PDF writer didn't copy named destination or article title strings, possibly leading to dangling pointers. (gdevpdf.c, gdevpdfm.c) - The PDF writer produced incorrect output for re-encoded fonts. (It now converts any string containing characters in non-standard positions to bitmaps; this will be fixed in a later release.) (gs_pdfwr.ps, gdevpdfx.h, gdevpdfp.c, gdevpdft.c) Updates a few drivers for the change in the handling of band device procedures. (gdevcp50.c, gdevdjet.c) Updates the X Windows driver for strip halftones. (gdevx.c) Adds anti-aliasing capability to the os2pm device. (gdevpm.c) Increases the sizes of some tables in the PDF writer. (gdevpdfx.h)Platforms
Fixes bugs: - A patch for the MS Windows platform was accidentally omitted. (gp_mswin.c) - A block of code was accidentally duplicated. (dwmain.cpp) - An identifier exceeded VAX VMS C's limit of 31 characters. (gscspace.h) - File name enumeration didn't work properly on Unix systems (still/again). (gp_unifs.c) - On MS Windows, If you closed Ghostscript with the system menu, you only closed the text window; Ghostscript kept running and you had to use the task manager to kill it. (dwmain.cpp, dwmainc.cpp, dwtext.cpp) - Some DLL-related typedefs were not consistent. (dwdll.h, gsdll.h, dpmainc.c, dwdll.cpp) - Attempts to call the DLL before it was initialized were not detected. (gsdll.c) - Bitmap line lengths were rounded up even on 32-bit Windows, which doesn't want this. (gdevwdib.c) Further improves the handling of attempts to use the DLL when it is already in use. (dwdll.cpp, gsdll.c) Adds a DLL-compatible main program for OS/2. (dpmainc.c, gp_os2.c, gsdll.c)Fonts
Fixes bugs: - The WingDings TrueType font wasn't loaded properly. (gs_ttf.ps) Makes changes so that TrueType fonts can appear in the Fontmap and can be loaded directly. (gs_fonts.ps, gs_ttf.ps)Interpreter
Fixes bugs: - Executing a .quit with only 1 element on the operand stack caused an invalid access. (zcontrol.c) - The usage help message contained incorrect double %%s. (imainarg.c) - If an initialization file tried to use any Encodings other than the 4 registered ones, it couldn't find them. (gs_init.ps, gs_res.ps) - Places that expected arrays of coordinates (rectangles, x/y/xyshow) didn't accept packed arrays. (ibnum.c, zdps1.c) - filterdict was still visible after initialization. (gs_init.ps) - The usage error message wasn't terminated by a newline. (imainarg.c) - setcacheparams (or setting the MaxFontCache user parameter) didn't actually affect the size of the character cache. (zfont.c, zmisc2.c) - The main interpreter loop declared iref as a ref *, even though it may only be a ref_packed *. (iref.h, interp.c) Changes the character cache so it ignores absurd FontBBox values. Nothing in the Adobe spec suggests doing this, but it is necessary for handling questionable output produced by PageMaker 5.0 (an Adobe product!). (zchar1.c) Changes some type declarations slightly to reduce the number of 'discarding const' compiler warnings. (igc.h, igc.c, igcref.c) Adds .setclipoutside and .currentclipoutside operators for accessing the new outside clipping capability. (zpath.c) Adds the dictionary stack to the information printed in case of a fatal problem. (imain.c) Adds .set/currentrenderalgorithm operators for testing. (zrop.c)Library
Fixes bugs: - The TrueType rasterizer didn't map quadratic to cubic splines well, and didn't handle off-curve points at the end of a contour properly. (gstype42.c) - An #include was omitted. (gsimage.c, gxclimag.c) - Some compilers complained about statements with no effect, or comma operators with no effect on the left. (gschar.c, gxcpath.c, gxfill.c) - TrueType or Type 42 glyphs with a repeat count that crossed a contour boundary produced incorrect output. (gstype42.c) - TrueType / Type 42 composite glyphs involving rotation were placed incorrectly. (gstype42.c) - Type 42 fonts with an absent or incorrect FontBBox could fail to produce output. (gstype42.c) - Some header files weren't protected against double inclusion. (gsio.h, gdebug.h) - Decoding filters didn't "look ahead" to detect EOD, so if the last read operation before closing the filter ended just before the EOD mark, the EOD mark might not be absorbed. (stream.h, stream.c) - Filling paths consisting of multiple subpaths that overlap in Y produced slightly inaccurate output. We were unable to find a way to fix this without making a NON-BACKWARD-COMPATIBLE change in the interface for the recently introduced fill_trapezoid device procedure. (gxdevice.h, gdevbbox.c, gdevddrw.c, gdevnfwd.c, gxfill.c) - When banding, get_bits didn't detect calls with out-of-range Y values. (gxclread.c) - setcacheparams didn't actually affect the size of the character cache. (gsfont.h, gxbcache.h, gxfcache.h, gschar.c, gsfont.c, gxbcache.c, gxccman.c, gxclbits.c) - When banding, colored halftones could be mangled. (gxclread.c) Fixes bugs in the bounding box device: - The bounding box device could give bizarre results if any objects crossed the lower edge of the page. (gdevbbox.c) - The bounding box device could get a memory access error when processing image data. (gdebbox.c) - The bounding box device ran the default drawing algorithms even if it had no target (performance bug only). (gdevbbox.c) - The bounding box device computed an incorrect (too small) box for partially clipped bitmap images. (gdevbbox.c) - The bounding box device got confused by files that filled the entire page with a background color. (gdevbbox.c) - The bounding box device produced infinite-height boxes for certain kinds of data. (gdevbbox.c) Changes some type declarations slightly to reduce the number of 'discarding const' compiler warnings. (gsmemory.h, gsstruct.h) Adds the capability of clipping to the outside rather than the inside of the clipping path. This is required for emulating an obscure feature of the Microsoft Windows GDI. (gspath.h, gxclpath.h, gxpath.h, gxcpath.h, gzcpath.h, gspath.c, gxacpath.c, gxclpath.c, gxclread.c, gxcpath.c.) Makes it possible for band devices to select the underlying memory device used to accumulate the actual bits. This is required for (at least) PCL5 emulation. This requires adding a procedure to the gx_device_printer structure, which, for devices that initialize the structure without using the macros in gdevprn.h or access the printer-specific procedures directly, is a NON-BACKWARD-COMPATIBLE change. (gdevprn.h, gxclist.h, gxdevice.h, gdevdflt.c, gdevprn.c, gxclread.c) Speeds up handling of rotated or halftoned masked images. (gximage2.c) Adds an output_page procedure to the bounding box device, for testing. (gdevbbox.c) Adds a sample device that keeps track of the "render algorithm", for PCL5c emulation. (gdevrrgb.c)Version 3.68 patch 4 (5/23/96)
More minor bug fixes, mostly related to the MS Windows implementation.Documentation
Further updates various doc files to make them more useful to new users. (NEWS, README, current.doc, helpers.doc, new-user.doc) Adds user-contributed documentation for ps2pdf. (ps2pdf.doc, unix-end.mak) Documents a bug in the Borland C++ 4.52 compiler, and where to find the patch for it. (make.doc)Procedures
Fixes bugs: - A command line exceeded the MS-DOS 120 character limit. (devs.mak) A file was accidentally omitted from the fileset. (wmakebat.bat)Drivers
Fixes bugs: - Many of the 'show' operators didn't work properly if the PDF writer was included in the configuration. (gs_pdfwr.ps) - x_wrap_get_bits was ridiculously slow. (It still is, but not quite as ridiculouslyrueTypuld produce in-line images that were too large. (gdevpdfi.c) - The PDF writer didn't scale explicit character and word spacing (ashow/widthshow/awidthshow) properly. (gdevpdft.c) - The PDF writer didn't copy named destination or article title strings, possibly leading to dangling pointers. (gdevpdf.c, gdevpdfm.c) - The PDF writer produced incorrect output for re-encoded fonts. (It now converts any string containing characters in non-standard positions to bitmaps; this will be fixed in a later release.) (gs_pdfwr.ps, gdevpdfx.h, gdevpdfp.c, gdevpdft.c) Updates a few drivers for the change in the handling of band device procedures. (gdevcp50.c, gdevdjet.c) Updates the X Windows driver for strip halftones. (gdevx.c) Adds anti-aliasing capability to the os2pm device. (gdevpm.c) Increases the sizes of some tables in the PDF writer. (gdevpdfx.h)Platforms
Fixes bugs: - A patch for the MS Windows platform was accidentally omitted. (gp_mswin.c) - A block of code was accidentally duplicated. (dwmain.cpp) - An identifier exceeded VAX VMS C's limit of 31 characters. (gscspace.h) - File name enumeration didn't work properly on Unix systems (still/again). (gp_unifs.c) - On MS Windows, If you closed Ghostscript with the system menu, you only closed the text window; Ghostscript kept running and you had to use the task manager to kill it. (dwmain.cpp, dwmainc.cpp, dwtext.cpp) - Some DLL-related typedefs were not consistent. (dwdll.h, gsdll.h, dpmainc.c, dwdll.cpp) - Attempts to call the DLL before it was initialized were not detected. (gsdll.c) - Bitmap line lengths were rounded up even on 32-bit Windows, which doesn't want this. (gdevwdib.c) Further improves the handling of attempts to use the DLL when it is already in use. (dwdll.cpp, gsdll.c) Adds a DLL-compatible main program for OS/2. (dpmainc.c, gp_os2.c, gsdll.c)Fonts
Fixes bugs: - The WingDings TrueType font wasn't loaded properly. (gs_ttf.ps) Makes changes so that TrueType fonts can appear in the Fontmap and can be loaded directly. (gs_fonts.ps, gs_ttf.ps)Interpreter
Fixes bugs: - Executing a .quit with only 1 element on the operand stack caused an invalid access. (zcontrol.c) - The usage help message contained incorrect double %%s. (imainarg.c) - If an initialization file tried to use any Encodings other than the 4 registered ones, it couldn't find them. (gs_init.ps, gs_res.ps) - Places that expected arrays of coordinates (rectangles, x/y/xyshow) didn't accept packed arrays. (ibnum.c, zdps1.c) - filterdict was still visible after initialization. (gs_init.ps) - The usage error message wasn't terminated by a newline. (imainarg.c) - setcacheparams (or setting the MaxFontCache user parameter) didn't actually affect the size of the character cache. (zfont.c, zmisc2.c) - The main interpreter loop declared iref as a ref *, even though it may only be a ref_packed *. (iref.h, interp.c) Changes the character cache so it ignores absurd FontBBox values. Nothing in the Adobe spec suggests doing this, but it is necessary for handling questionable output produced by PageMaker 5.0 (an Adobe product!). (zchar1.c) Changes some type declarations slightly to reduce the number of 'discarding const' compiler warnings. (igc.h, igc.c, igcref.c) Adds .setclipoutside and .currentclipoutside operators for accessing the new outside clipping capability. (zpath.c) Adds the dictionary stack to the information printed in case of a fatal problem. (imain.c) Adds .set/currentrenderalgorithm operators for testing. (zrop.c)Library
Fixes bugs: - The TrueType rasterizer didn't map quadratic to cubic splines well, and didn't handle off-curve points at the end of a contour properly. (gstype42.c) - An #include was omitted. (gsimage.c, gxclimag.c) - Some compilers complained about statements with no effect, or comma operators with no effect on the left. (gschar.c, gxcpath.c, gxfill.c) - TrueType or Type 42 glyphs with a repeat count that crossed a contour boundary produced incorrect output. (gstype42.c) - TrueType / Type 42 composite glyphs involving rotation were placed incorrectly. (gstype42.c) - Type 42 fonts with an absent or incorrect FontBBox could fail to produce output. (gstype42.c) - Some header files weren't protected against double inclusion. (gsio.h, gdebug.h) - Decoding filters didn't "look ahead" to detect EOD, so if the last read operation before closing the filter ended just before the EOD mark, the EOD mark might not be absorbed. (stream.h, stream.c) - Filling paths consisting of multiple subpaths that overlap in Y produced slightly inaccurate output. We were unable to find a way to fix this without making a NON-BACKWARD-COMPATIBLE change in the interface for the recently introduced fill_trapezoid device procedure. (gxdevice.h, gdevbbox.c, gdevddrw.c, gdevnfwd.c, gxfill.c) - When banding, get_bits didn't detect calls with out-of-range Y values. (gxclread.c) - setcacheparams didn't actually affect the size of the character cache. (gsfont.h, gxbcache.h, gxfcache.h, gschar.c, gsfont.c, gxbcache.c, gxccman.c, gxclbits.c) - When banding, colored halftones could be mangled. (gxclread.c) Fixes bugs in the bounding box device: - The bounding box device could give bizarre results if any objects crossed the lower edge of the page. (gdevbbox.c) - The bounding box device could get a memory access error when processing image data. (gdebbox.c) - The bounding box device ran the default drawing algorithms even if it had no target (performance bug only). (gdevbbox.c) - The bounding box device computed an incorrect (too small) box for partially clipped bitmap images. (gdevbbox.c) - The bounding box device got confused by files that filled the entire page with a background color. (gdevbbox.c) - The bounding box device produced infinite-height boxes for certain kinds of data. (gdevbbox.c) Changes some type declarations slightly to reduce the number of 'discarding const' compiler warnings. (gsmemory.h, gsstruct.h) Adds the capability of clipping to the outside rather than the inside of the clipping path. This is required for emulating an obscure feature of the Microsoft Windows GDI. (gspath.h, gxclpath.h, gxpath.h, gxcpath.h, gzcpath.h, gspath.c, gxacpath.c, gxclpath.c, gxclread.c, gxcpath.c.) Makes it possible for band devices to select the underlying memory device used to accumulate the actual bits. This is required for (at least) PCL5 emulation. This requires adding a procedure to the gx_device_printer structure, which, for devices that initialize the structure without using the macros in gdevprn.h or access the printer-specific procedures directly, is a NON-BACKWARD-COMPATIBLE change. (gdevprn.h, gxclist.h, gxdevice.h, gdevdflt.c, gdevprn.c, gxclread.c) Speeds up handling of rotated or halftoned masked images. (gximage2.c) Adds an output_page procedure to the bounding box device, for testing. (gdevbbox.c) Adds a sample device that keeps track of the "render algorithm", for PCL5c emulation. (gdevrrgb.c)Version 3.68 patch 4 (5/23/96)
More minor bug fixes, mostly related to the MS Windows implementation.Documentation
Further updates various doc files to make them more useful to new users. (NEWS, README, current.doc, helpers.doc, new-user.doc) Adds user-contributed documentation for ps2pdf. (ps2pdf.doc, unix-end.mak) Documents a bug in the Borland C++ 4.52 compiler, and where to find the patch for it. (make.doc)Procedures
Fixes bugs: - A command line exceeded the MS-DOS 120 character limit. (devs.mak) A file was accidentally omitted from the fileset. (wmakebat.bat)Drivers
Fixes bugs: - Many of the 'show' operators didn't work properly if the PDF writer was included in the configuration. (gs_pdfwr.ps) - x_wrap_get_bits was ridiculously slow. (It still is, but not quite as ridiculouslyrueTypuld produce in-line images that were too large. (gdevpdfi.c) - The PDF writer didn't scale explicit character and word spacing (ashow/widthshow/awidthshow) properly. (gdevpdft.c) - The PDF writer didn't copy named destination or article title strings, possibly leading to dangling pointers. (gdevpdf.c, gdevpdfm.c) - The PDF writer produced incorrect output for re-encoded fonts. (It now converts any string containing characters in non-standard positions to bitmaps; this will be fixed in a later release.) (gs_pdfwr.ps, gdevpdfx.h, gdevpdfp.c, gdevpdft.c) Updates a few drivers for the change in the handling of band device procedures. (gdevcp50.c, gdevdjet.c) Updates the X Windows driver for strip halftones. (gdevx.c) Adds anti-aliasing capability to the os2pm device. (gdevpm.c) Increases the sizes of some tables in the PDF writer. (gdevpdfx.h)Platforms
Fixes bugs: - A patch for the MS Windows platform was accidentally omitted. (gp_mswin.c) - A block of code was accidentally duplicated. (dwmain.cpp) - An identifier exceeded VAX VMS C's limit of 31 characters. (gscspace.h) - File name enumeration didn't work properly on Unix systems (still/again). (gp_unifs.c) - On MS Windows, If you closed Ghostscript with the system menu, you only closed the text window; Ghostscript kept running and you had to use the task manager to kill it. (dwmain.cpp, dwmainc.cpp, dwtext.cpp) - Some DLL-related typedefs were not consistent. (dwdll.h, gsdll.h, dpmainc.c, dwdll.cpp) - Attempts to call the DLL before it was initialized were not detected. (gsdll.c) - Bitmap line lengths were rounded up even on 32-bit Windows, which doesn't want this. (gdevwdib.c) Further improves the handling of attempts to use the DLL when it is already in use. (dwdll.cpp, gsdll.c) Adds a DLL-compatible main program for OS/2. (dpmainc.c, gp_os2.c, gsdll.c)Fonts
Fixes bugs: - The WingDings TrueType font wasn't loaded properly. (gs_ttf.ps) Makes changes so that TrueType fonts can appear in the Fontmap and can be loaded directly. (gs_fonts.ps, gs_ttf.ps)Interpreter
Fixes bugs: - Executing a .quit with only 1 element on the operand stack caused an invalid access. (zcontrol.c) - The usage help message contained incorrect double %%s. (imainarg.c) - If an initialization file tried to use any Encodings other than the 4 registered ones, it couldn't find them. (gs_init.ps, gs_res.ps) - Places that expected arrays of coordinates (rectangles, x/y/xyshow) didn't accept packed arrays. (ibnum.c, zdps1.c) - filterdict was still visible after initialization. (gs_init.ps) - The usage error message wasn't terminated by a newline. (imainarg.c) - setcacheparams (or setting the MaxFontCache user parameter) didn't actually affect the size of the character cache. (zfont.c, zmisc2.c) - The main interpreter loop declared iref as a ref *, even though it may only be a ref_packed *. (iref.h, interp.c) Changes the character cache so it ignores absurd FontBBox values. Nothing in the Adobe spec suggests doing this, but it is necessary for handling questionable output produced by PageMaker 5.0 (an Adobe product!). (zchar1.c) Changes some type declarations slightly to reduce the number of 'discarding const' compiler warnings. (igc.h, igc.c, igcref.c) Adds .setclipoutside and .currentclipoutside operators for accessing the new outside clipping capability. (zpath.c) Adds the dictionary stack to the information printed in case of a fatal problem. (imain.c) Adds .set/currentrenderalgorithm operators for testing. (zrop.c)Library
Fixes bugs: - The TrueType rasterizer didn't map quadratic to cubic splines well, and didn't handle off-curve points at the end of a contour properly. (gstype42.c) - An #include was omitted. (gsimage.c, gxclimag.c) - Some compilers complained about statements with no effect, or comma operators with no effect on the left. (gschar.c, gxcpath.c, gxfill.c) - TrueType or Type 42 glyphs with a repeat count that crossed a contour boundary produced incorrect output. (gstype42.c) - TrueType / Type 42 composite glyphs involving rotation were placed incorrectly. (gstype42.c) - Type 42 fonts with an absent or incorrect FontBBox could fail to produce output. (gstype42.c) - Some header files weren't protected against double inclusion. (gsio.h, gdebug.h) - Decoding filters didn't "look ahead" to detect EOD, so if the last read operation before closing the filter ended just before the EOD mark, the EOD mark might not be absorbed. (stream.h, stream.c) - Filling paths consisting of multiple subpaths that overlap in Y produced slightly inaccurate output. We were unable to find a way to fix this without making a NON-BACKWARD-COMPATIBLE change in the interface for the recently introduced fill_trapezoid device procedure. (gxdevice.h, gdevbbox.c, gdevddrw.c, gdevnfwd.c, gxfill.c) - When banding, get_bits didn't detect calls with out-of-range Y values. (gxclread.c) - setcacheparams didn't actually affect the size of the character cache. (gsfont.h, gxbcache.h, gxfcache.h, gschar.c, gsfont.c, gxbcache.c, gxccman.c, gxclbits.c) - When banding, colored halftones could be mangled. (gxclread.c) Fixes bugs in the bounding box device: - The bounding box device could give bizarre results if any objects crossed the lower edge of the page. (gdevbbox.c) - The bounding box device could get a memory access error when processing image data. (gdebbox.c) - The bounding box device ran the default drawing algorithms even if it had no target (performance bug only). (gdevbbox.c) - The bounding box device computed an incorrect (too small) box for partially clipped bitmap images. (gdevbbox.c) - The bounding box device got confused by files that filled the entire page with a background color. (gdevbbox.c) - The bounding box device produced infinite-height boxes for certain kinds of data. (gdevbbox.c) Changes some type declarations slightly to reduce the number of 'discarding const' compiler warnings. (gsmemory.h, gsstruct.h) Adds the capability of clipping to the outside rather than the inside of the clipping path. This is required for emulating an obscure feature of the Microsoft Windows GDI. (gspath.h, gxclpath.h, gxpath.h, gxcpath.h, gzcpath.h, gspath.c, gxacpath.c, gxclpath.c, gxclread.c, gxcpath.c.) Makes it possible for band devices to select the underlying memory device used to accumulate the actual bits. This is required for (at least) PCL5 emulation. This requires adding a procedure to the gx_device_printer structure, which, for devices that initialize the structure without using the macros in gdevprn.h or access the printer-specific procedures directly, is a NON-BACKWARD-COMPATIBLE change. (gdevprn.h, gxclist.h, gxdevice.h, gdevdflt.c, gdevprn.c, gxclread.c) Speeds up handling of rotated or halftoned masked images. (gximage2.c) Adds an output_page procedure to the bounding box device, for testing. (gdevbbox.c) Adds a sample device that keeps track of the "render algorithm", for PCL5c emulation. (gdevrrgb.c)Version 3.68 patch 4 (5/23/96)
More minor bug fixes, mostly related to the MS Windows implementation.Documentation
Further updates various doc files to make them more useful to new users. (NEWS, README, current.doc, helpers.doc, new-user.doc) Adds user-contributed documentation for ps2pdf. (ps2pdf.doc, unix-end.mak) Documents a bug in the Borland C++ 4.52 compiler, and where to find the patch for it. (make.doc)Procedures
Fixes bugs: - A command line exceeded the MS-DOS 120 character limit. (devs.mak) A file was accidentally omitted from the fileset. (wmakebat.bat)Drivers
Fixes bugs: - Many of the 'show' operators didn't work properly if the PDF writer was included in the configuration. (gs_pdfwr.ps) - x_wrap_get_bits was ridiculously slow. (It still is, but not quite as ridiculouslyrueTypuld produce in-line images that were too large. (gdevpdfi.c) - The PDF writer didn't scale explicit character and word spacing (ashow/widthshow/awidthshow) properly. (gdevpdft.c) - The PDF writer didn't copy named destination or article title strings, possibly leading to dangling pointers. (gdevpdf.c, gdevpdfm.c) - The PDF writer produced incorrect output for re-encoded fonts. (It now converts any string containing characters in non-standard positions to bitmaps; this will be fixed in a later release.) (gs_pdfwr.ps, gdevpdfx.h, gdevpdfp.c, gdevpdft.c) Updates a few drivers for the change in the handling of band device procedures. (gdevcp50.c, gdevdjet.c) Updates the X Windows driver for strip halftones. (gdevx.c) Adds anti-aliasing capability to the os2pm device. (gdevpm.c) Increases the sizes of some tables in the PDF writer. (gdevpdfx.h)Platforms
Fixes bugs: - A patch for the MS Windows platform was accidentally omitted. (gp_mswin.c) - A block of code was accidentally duplicated. (dwmain.cpp) - An identifier exceeded VAX VMS C's limit of 31 characters. (gscspace.h) - File name enumeration didn't work properly on Unix systems (still/again). (gp_unifs.c) - On MS Windows, If you closed Ghostscript with the system menu, you only closed the text window; Ghostscript kept running and you had to use the task manager to kill it. (dwmain.cpp, dwmainc.cpp, dwtext.cpp) - Some DLL-related typedefs were not consistent. (dwdll.h, gsdll.h, dpmainc.c, dwdll.cpp) - Attempts to call the DLL before it was initialized were not detected. (gsdll.c) - Bitmap line lengths were rounded up even on 32-bit Windows, which doesn't want this. (gdevwdib.c) Further improves the handling of attempts to use the DLL when it is already in use. (dwdll.cpp, gsdll.c) Adds a DLL-compatible main program for OS/2. (dpmainc.c, gp_os2.c, gsdll.c)Fonts
Fixes bugs: - The WingDings TrueType font wasn't loaded properly. (gs_ttf.ps) Makes changes so that TrueType fonts can appear in the Fontmap and can be loaded directly. (gs_fonts.ps, gs_ttf.ps)Interpreter
Fixes bugs: - Executing a .quit with only 1 element on the operand stack caused an invalid access. (zcontrol.c) - The usage help message contained incorrect double %%s. (imainarg.c) - If an initialization file tried to use any Encodings other than the 4 registered ones, it couldn't find them. (gs_init.ps, gs_res.ps) - Places that expected arrays of coordinates (rectangles, x/y/xyshow) didn't accept packed arrays. (ibnum.c, zdps1.c) - filterdict was still visible after initialization. (gs_init.ps) - The usage error message wasn't terminated by a newline. (imainarg.c) - setcacheparams (or setting the MaxFontCache user parameter) didn't actually affect the size of the character cache. (zfont.c, zmisc2.c) - The main interpreter loop declared iref as a ref *, even though it may only be a ref_packed *. (iref.h, interp.c) Changes the character cache so it ignores absurd FontBBox values. Nothing in the Adobe spec suggests doing this, but it is necessary for handling questionable output produced by PageMaker 5.0 (an Adobe product!). (zchar1.c) Changes some type declarations slightly to reduce the number of 'discarding const' compiler warnings. (igc.h, igc.c, igcref.c) Adds .setclipoutside and .currentclipoutside operators for accessing the new outside clipping capability. (zpath.c) Adds the dictionary stack to the information printed in case of a fatal problem. (imain.c) Adds .set/currentrenderalgorithm operators for testing. (zrop.c)Library
Fixes bugs: - The TrueType rasterizer didn't map quadratic to cubic splines well, and didn't handle off-curve points at the end of a contour properly. (gstype42.c) - An #include was omitted. (gsimage.c, gxclimag.c) - Some compilers complained about statements with no effect, or comma operators with no effect on the left. (gschar.c, gxcpath.c, gxfill.c) - TrueType or Type 42 glyphs with a repeat count that crossed a contour boundary produced incorrect output. (gstype42.c) - TrueType / Type 42 composite glyphs involving rotation were placed incorrectly. (gstype42.c) - Type 42 fonts with an absent or incorrect FontBBox could fail to produce output. (gstype42.c) - Some header files weren't protected against double inclusion. (gsio.h, gdebug.h) - Decoding filters didn't "look ahead" to detect EOD, so if the last read operation before closing the filter ended just before the EOD mark, the EOD mark might not be absorbed. (stream.h, stream.c) - Filling paths consisting of multiple subpaths that overlap in Y produced slightly inaccurate output. We were unable to find a way to fix this without making a NON-BACKWARD-COMPATIBLE change in the interface for the recently introduced fill_trapezoid device procedure. (gxdevice.h, gdevbbox.c, gdevddrw.c, gdevnfwd.c, gxfill.c) - When banding, get_bits didn't detect calls with out-of-range Y values. (gxclread.c) - setcacheparams didn't actually affect the size of the character cache. (gsfont.h, gxbcache.h, gxfcache.h, gschar.c, gsfont.c, gxbcache.c, gxccman.c, gxclbits.c) - When banding, colored halftones could be mangled. (gxclread.c) Fixes bugs in the bounding box device: - The bounding box device could give bizarre results if any objects crossed the lower edge of the page. (gdevbbox.c) - The bounding box device could get a memory access error when processing image data. (gdebbox.c) - The bounding box device ran the default drawing algorithms even if it had no target (performance bug only). (gdevbbox.c) - The bounding box device computed an incorrect (too small) box for partially clipped bitmap images. (gdevbbox.c) - The bounding box device got confused by files that filled the entire page with a background color. (gdevbbox.c) - The bounding box device produced infinite-height boxes for certain kinds of data. (gdevbbox.c) Changes some type declarations slightly to reduce the number of 'discarding const' compiler warnings. (gsmemory.h, gsstruct.h) Adds the capability of clipping to the outside rather than the inside of the clipping path. This is required for emulating an obscure feature of the Microsoft Windows GDI. (gspath.h, gxclpath.h, gxpath.h, gxcpath.h, gzcpath.h, gspath.c, gxacpath.c, gxclpath.c, gxclread.c, gxcpath.c.) Makes it possible for band devices to select the underlying memory device used to accumulate the actual bits. This is required for (at least) PCL5 emulation. This requires adding a procedure to the gx_device_printer structure, which, for devices that initialize the structure without using the macros in gdevprn.h or access the printer-specific procedures directly, is a NON-BACKWARD-COMPATIBLE change. (gdevprn.h, gxclist.h, gxdevice.h, gdevdflt.c, gdevprn.c, gxclread.c) Speeds up handling of rotated or halftoned masked images. (gximage2.c) Adds an output_page procedure to the bounding box device, for testing. (gdevbbox.c) Adds a sample device that keeps track of the "render algorithm", for PCL5c emulation. (gdevrrgb.c)Version 3.68 patch 4 (5/23/96)
More minor bug fixes, mostly related to the MS Windows implementation.Documentation
Further updates various doc files to make them more useful to new users. (NEWS, README, current.doc, helpers.doc, new-user.doc) Adds user-contributed documentation for ps2pdf. (ps2pdf.doc, unix-end.mak) Documents a bug in the Borland C++ 4.52 compiler, and where to find the patch for it. (make.doc)Procedures
Fixes bugs: - A command line exceeded the MS-DOS 120 character limit. (devs.mak) A file was accidentally omitted from the fileset. (wmakebat.bat)Drivers
Fixes bugs: - Many of the 'show' operators didn't work properly if the PDF writer was included in the configuration. (gs_pdfwr.ps) - x_wrap_get_bits was ridiculously slow. (It still is, but not quite as ridiculouslyrueTypuld produce in-line images that were too large. (gdevpdfi.c) - The PDF writer didn't scale explicit character and word spacing (ashow/widthshow/awidthshow) properly. (gdevpdft.c) - The PDF writer didn't copy named destination or article title strings, possibly leading to dangling pointers. (gdevpdf.c, gdevpdfm.c) - The PDF writer produced incorrect output for re-encoded fonts. (It now converts any string containing characters in non-standard positions to bitmaps; this will be fixed in a later release.) (gs_pdfwr.ps, gdevpdfx.h, gdevpdfp.c, gdevpdft.c) Updates a few drivers for the change in the handling of band device procedures. (gdevcp50.c, gdevdjet.c) Updates the X Windows driver for strip halftones. (gdevx.c) Adds anti-aliasing capability to the os2pm device. (gdevpm.c) Increases the sizes of some tables in the PDF writer. (gdevpdfx.h)Platforms
Fixes bugs: - A patch for the MS Windows platform was accidentally omitted. (gp_mswin.c) - A block of code was accidentally duplicated. (dwmain.cpp) - An identifier exceeded VAX VMS C's limit of 31 characters. (gscspace.h) - File name enumeration didn't work properly on Unix systems (still/again). (gp_unifs.c) - On MS Windows, If you closed Ghostscript with the system menu, you only closed the text window; Ghostscript kept running and you had to use the task manager to kill it. (dwmain.cpp, dwmainc.cpp, dwtext.cpp) - Some DLL-related typedefs were not consistent. (dwdll.h, gsdll.h, dpmainc.c, dwdll.cpp) - Attempts to call the DLL before it was initialized were not detected. (gsdll.c) - Bitmap line lengths were rounded up even on 32-bit Windows, which doesn't want this. (gdevwdib.c) Further improves the handling of attempts to use the DLL when it is already in use. (dwdll.cpp, gsdll.c) Adds a DLL-compatible main program for OS/2. (dpmainc.c, gp_os2.c, gsdll.c)Fonts
Fixes bugs: - The WingDings TrueType font wasn't loaded properly. (gs_ttf.ps) Makes changes so that TrueType fonts can appear in the Fontmap and can be loaded directly. (gs_fonts.ps, gs_ttf.ps)Interpreter
Fixes bugs: - Executing a .quit with only 1 element on the operand stack caused an invalid access. (zcontrol.c) - The usage help message contained incorrect double %%s. (imainarg.c) - If an initialization file tried to use any Encodings other than the 4 registered ones, it couldn't find them. (gs_init.ps, gs_res.ps) - Places that expected arrays of coordinates (rectangles, x/y/xyshow) didn't accept packed arrays. (ibnum.c, zdps1.c) - filterdict was still visible after initialization. (gs_init.ps) - The usage error message wasn't terminated by a newline. (imainarg.c) - setcacheparams (or setting the MaxFontCache user parameter) didn't actually affect the size of the character cache. (zfont.c, zmisc2.c) - The main interpreter loop declared iref as a ref *, even though it may only be a ref_packed *. (iref.h, interp.c) Changes the character cache so it ignores absurd FontBBox values. Nothing in the Adobe spec suggests doing this, but it is necessary for handling questionable output produced by PageMaker 5.0 (an Adobe product!). (zchar1.c) Changes some type declarations slightly to reduce the number of 'discarding const' compiler warnings. (igc.h, igc.c, igcref.c) Adds .setclipoutside and .currentclipoutside operators for accessing the new outside clipping capability. (zpath.c) Adds the dictionary stack to the information printed in case of a fatal problem. (imain.c) Adds .set/currentrenderalgorithm operators for testing. (zrop.c)Library
Fixes bugs: - The TrueType rasterizer didn't map quadratic to cubic splines well, and didn't handle off-curve points at the end of a contour properly. (gstype42.c) - An #include was omitted. (gsimage.c, gxclimag.c) - Some compilers complained about statements with no effect, or comma operators with no effect on the left. (gschar.c, gxcpath.c, gxfill.c) - TrueType or Type 42 glyphs with a repeat count that crossed a contour boundary produced incorrect output. (gstype42.c) - TrueType / Type 42 composite glyphs involving rotation were placed incorrectly. (gstype42.c) - Type 42 fonts with an absent or incorrect FontBBox could fail to produce output. (gstype42.c) - Some header files weren't protected against double inclusion. (gsio.h, gdebug.h) - Decoding filters didn't "look ahead" to detect EOD, so if the last read operation before closing the filter ended just before the EOD mark, the EOD mark might not be absorbed. (stream.h, stream.c) - Filling paths consisting of multiple subpaths that overlap in Y produced slightly inaccurate output. We were unable to find a way to fix this without making a NON-BACKWARD-COMPATIBLE change in the interface for the recently introduced fill_trapezoid device procedure. (gxdevice.h, gdevbbox.c, gdevddrw.c, gdevnfwd.c, gxfill.c) - When banding, get_bits didn't detect calls with out-of-range Y values. (gxclread.c) - setcacheparams didn't actually affect the size of the character cache. (gsfont.h, gxbcache.h, gxfcache.h, gschar.c, gsfont.c, gxbcache.c, gxccman.c, gxclbits.c) - When banding, colored halftones could be mangled. (gxclread.c) Fixes bugs in the bounding box device: - The bounding box device could give bizarre results if any objects crossed the lower edge of the page. (gdevbbox.c) - The bounding box device could get a memory access error when processing image data. (gdebbox.c) - The bounding box device ran the default drawing algorithms even if it had no target (performance bug only). (gdevbbox.c) - The bounding box device computed an incorrect (too small) box for partially clipped bitmap images. (gdevbbox.c) - The bounding box device got confused by files that filled the entire page with a background color. (gdevbbox.c) - The bounding box device produced infinite-height boxes for certain kinds of data. (gdevbbox.c) Changes some type declarations slightly to reduce the number of 'discarding const' compiler warnings. (gsmemory.h, gsstruct.h) Adds the capability of clipping to the outside rather than the inside of the clipping path. This is required for emulating an obscure feature of the Microsoft Windows GDI. (gspath.h, gxclpath.h, gxpath.h, gxcpath.h, gzcpath.h, gspath.c, gxacpath.c, gxclpath.c, gxclread.c, gxcpath.c.) Makes it possible for band devices to select the underlying memory device used to accumulate the actual bits. This is required for (at least) PCL5 emulation. This requires adding a procedure to the gx_device_printer structure, which, for devices that initialize the structure without using the macros in gdevprn.h or access the printer-specific procedures directly, is a NON-BACKWARD-COMPATIBLE change. (gdevprn.h, gxclist.h, gxdevice.h, gdevdflt.c, gdevprn.c, gxclread.c) Speeds up handling of rotated or halftoned masked images. (gximage2.c) Adds an output_page procedure to the bounding box device, for testing. (gdevbbox.c) Adds a sample device that keeps track of the "render algorithm", for PCL5c emulation. (gdevrrgb.c)Version 3.68 patch 4 (5/23/96)
More minor bug fixes, mostly related to the MS Windows implementation.Documentation
Further updates various doc files to make them more useful to new users. (NEWS, README, current.doc, helpers.doc, new-user.doc) Adds user-contributed documentation for ps2pdf. (ps2pdf.doc, unix-end.mak) Documents a bug in the Borland C++ 4.52 compiler, and where to find the patch for it. (make.doc)Procedures
Fixes bugs: - A command line exceeded the MS-DOS 120 character limit. (devs.mak) A file was accidentally omitted from the fileset. (wmakebat.bat)Drivers
Fixes bugs: - Many of the 'show' operators didn't work properly if the PDF writer was included in the configuration. (gs_pdfwr.ps) - x_wrap_get_bits was ridiculously slow. (It still is, but not quite as ridiculouslyrueTypuld produce in-line images that were too large. (gdevpdfi.c) - The PDF writer didn't scale explicit character and word spacing (ashow/widthshow/awidthshow) properly. (gdevpdft.c) - The PDF writer didn't copy named destination or article title strings, possibly leading to dangling pointers. (gdevpdf.c, gdevpdfm.c) - The PDF writer produced incorrect output for re-encoded fonts. (It now converts any string containing characters in non-standard positions to bitmaps; this will be fixed in a later release.) (gs_pdfwr.ps, gdevpdfx.h, gdevpdfp.c, gdevpdft.c) Updates a few drivers for the change in the handling of band device procedures. (gdevcp50.c, gdevdjet.c) Updates the X Windows driver for strip halftones. (gdevx.c) Adds anti-aliasing capability to the os2pm device. (gdevpm.c) Increases the sizes of some tables in the PDF writer. (gdevpdfx.h)Platforms
Fixes bugs: - A patch for the MS Windows platform was accidentally omitted. (gp_mswin.c) - A block of code was accidentally duplicated. (dwmain.cpp) - An identifier exceeded VAX VMS C's limit of 31 characters. (gscspace.h) - File name enumeration didn't work properly on Unix systems (still/again). (gp_unifs.c) - On MS Windows, If you closed Ghostscript with the system menu, you only closed the text window; Ghostscript kept running and you had to use the task manager to kill it. (dwmain.cpp, dwmainc.cpp, dwtext.cpp) - Some DLL-related typedefs were not consistent. (dwdll.h, gsdll.h, dpmainc.c, dwdll.cpp) - Attempts to call the DLL before it was initialized were not detected. (gsdll.c) - Bitmap line lengths were rounded up even on 32-bit Windows, which doesn't want this. (gdevwdib.c) Further improves the handling of attempts to use the DLL when it is already in use. (dwdll.cpp, gsdll.c) Adds a DLL-compatible main program for OS/2. (dpmainc.c, gp_os2.c, gsdll.c)Fonts
Fixes bugs: - The WingDings TrueType font wasn't loaded properly. (gs_ttf.ps) Makes changes so that TrueType fonts can appear in the Fontmap and can be loaded directly. (gs_fonts.ps, gs_ttf.ps)Interpreter
Fixes bugs: - Executing a .quit with only 1 element on the operand stack caused an invalid access. (zcontrol.c) - The usage help message contained incorrect double %%s. (imainarg.c) - If an initialization file tried to use any Encodings other than the 4 registered ones, it couldn't find them. (gs_init.ps, gs_res.ps) - Places that expected arrays of coordinates (rectangles, x/y/xyshow) didn't accept packed arrays. (ibnum.c, zdps1.c) - filterdict was still visible after initialization. (gs_init.ps) - The usage error message wasn't terminated by a newline. (imainarg.c) - setcacheparams (or setting the MaxFontCache user parameter) didn't actually affect the size of the character cache. (zfont.c, zmisc2.c) - The main interpreter loop declared iref as a ref *, even though it may only be a ref_packed *. (iref.h, interp.c) Changes the character cache so it ignores absurd FontBBox values. Nothing in the Adobe spec suggests doing this, but it is necessary for handling questionable output produced by PageMaker 5.0 (an Adobe product!). (zchar1.c) Changes some type declarations slightly to reduce the number of 'discarding const' compiler warnings. (igc.h, igc.c, igcref.c) Adds .setclipoutside and .currentclipoutside operators for accessing the new outside clipping capability. (zpath.c) Adds the dictionary stack to the information printed in case of a fatal problem. (imain.c) Adds .set/currentrenderalgorithm operators for testing. (zrop.c)Library
Fixes bugs: - The TrueType rasterizer didn't map quadratic to cubic splines well, and didn't handle off-curve points at the end of a contour properly. (gstype42.c) - An #include was omitted. (gsimage.c, gxclimag.c) - Some compilers complained about statements with no effect, or comma operators with no effect on the left. (gschar.c, gxcpath.c, gxfill.c) - TrueType or Type 42 glyphs with a repeat count that crossed a contour boundary produced incorrect output. (gstype42.c) - TrueType / Type 42 composite glyphs involving rotation were placed incorrectly. (gstype42.c) - Type 42 fonts with an absent or incorrect FontBBox could fail to produce output. (gstype42.c) - Some header files weren't protected against double inclusion. (gsio.h, gdebug.h) - Decoding filters didn't "look ahead" to detect EOD, so if the last read operation before closing the filter ended just before the EOD mark, the EOD mark might not be absorbed. (stream.h, stream.c) - Filling paths consisting of multiple subpaths that overlap in Y produced slightly inaccurate output. We were unable to find a way to fix this without making a NON-BACKWARD-COMPATIBLE change in the interface for the recently introduced fill_trapezoid device procedure. (gxdevice.h, gdevbbox.c, gdevddrw.c, gdevnfwd.c, gxfill.c) - When banding, get_bits didn't detect calls with out-of-range Y values. (gxclread.c) - setcacheparams didn't actually affect the size of the character cache. (gsfont.h, gxbcache.h, gxfcache.h, gschar.c, gsfont.c, gxbcache.c, gxccman.c, gxclbits.c) - When banding, colored halftones could be mangled. (gxclread.c) Fixes bugs in the bounding box device: - The bounding box device could give bizarre results if any objects crossed the lower edge of the page. (gdevbbox.c) - The bounding box device could get a memory access error when processing image data. (gdebbox.c) - The bounding box device ran the default drawing algorithms even if it had no target (performance bug only). (gdevbbox.c) - The bounding box device computed an incorrect (too small) box for partially clipped bitmap images. (gdevbbox.c) - The bounding box device got confused by files that filled the entire page with a background color. (gdevbbox.c) - The bounding box device produced infinite-height boxes for certain kinds of data. (gdevbbox.c) Changes some type declarations slightly to reduce the number of 'discarding const' compiler warnings. (gsmemory.h, gsstruct.h) Adds the capability of clipping to the outside rather than the inside of the clipping path. This is required for emulating an obscure feature of the Microsoft Windows GDI. (gspath.h, gxclpath.h, gxpath.h, gxcpath.h, gzcpath.h, gspath.c, gxacpath.c, gxclpath.c, gxclread.c, gxcpath.c.) Makes it possible for band devices to select the underlying memory device used to accumulate the actual bits. This is required for (at least) PCL5 emulation. This requires adding a procedure to the gx_device_printer structure, which, for devices that initialize the structure without using the macros in gdevprn.h or access the printer-specific procedures directly, is a NON-BACKWARD-COMPATIBLE change. (gdevprn.h, gxclist.h, gxdevice.h, gdevdflt.c, gdevprn.c, gxclread.c) Speeds up handling of rotated or halftoned masked images. (gximage2.c) Adds an output_page procedure to the bounding box device, for testing. (gdevbbox.c) Adds a sample device that keeps track of the "render algorithm", for PCL5c emulation. (gdevrrgb.c)Version 3.68 patch 4 (5/23/96)
More minor bug fixes, mostly related to the MS Windows implementation.Documentation
Further updates various doc files to make them more useful to new users. (NEWS, README, current.doc, helpers.doc, new-user.doc) Adds user-contributed documentation for ps2pdf. (ps2pdf.doc, unix-end.mak) Documents a bug in the Borland C++ 4.52 compiler, and where to find the patch for it. (make.doc)Procedures
Fixes bugs: - A command line exceeded the MS-DOS 120 character limit. (devs.mak) A file was accidentally omitted from the fileset. (wmakebat.bat)Drivers
Fixes bugs: - Many of the 'show' operators didn't work properly if the PDF writer was included in the configuration. (gs_pdfwr.ps) - x_wrap_get_bits was ridiculously slow. (It still is, but not quite as ridiculouslyrueTypuld produce in-line images that were too large. (gdevpdfi.c) - The PDF writer didn't scale explicit character and word spacing (ashow/widthshow/awidthshow) properly. (gdevpdft.c) - The PDF writer didn't copy named destination or article title strings, possibly leading to dangling pointers. (gdevpdf.c, gdevpdfm.c) - The PDF writer produced incorrect output for re-encoded fonts. (It now converts any string containing characters in non-standard positions to bitmaps; this will be fixed in a later release.) (gs_pdfwr.ps, gdevpdfx.h, gdevpdfp.c, gdevpdft.c) Updates a few drivers for the change in the handling of band device procedures. (gdevcp50.c, gdevdjet.c) Updates the X Windows driver for strip halftones. (gdevx.c) Adds anti-aliasing capability to the os2pm device. (gdevpm.c) Increases the sizes of some tables in the PDF writer. (gdevpdfx.h)Platforms
Fixes bugs: - A patch for the MS Windows platform was accidentally omitted. (gp_mswin.c) - A block of code was accidentally duplicated. (dwmain.cpp) - An identifier exceeded VAX VMS C's limit of 31 characters. (gscspace.h) - File name enumeration didn't work properly on Unix systems (still/again). (gp_unifs.c) - On MS Windows, If you closed Ghostscript with the system menu, you only closed the text window; Ghostscript kept running and you had to use the task manager to kill it. (dwmain.cpp, dwmainc.cpp, dwtext.cpp) - Some DLL-related typedefs were not consistent. (dwdll.h, gsdll.h, dpmainc.c, dwdll.cpp) - Attempts to call the DLL before it was initialized were not detected. (gsdll.c) - Bitmap line lengths were rounded up even on 32-bit Windows, which doesn't want this. (gdevwdib.c) Further improves the handling of attempts to use the DLL when it is already in use. (dwdll.cpp, gsdll.c) Adds a DLL-compatible main program for OS/2. (dpmainc.c, gp_os2.c, gsdll.c)Fonts
Fixes bugs: - The WingDings TrueType font wasn't loaded properly. (gs_ttf.ps) Makes changes so that TrueType fonts can appear in the Fontmap and can be loaded directly. (gs_fonts.ps, gs_ttf.ps)Interpreter
Fixes bugs: - Executing a .quit with only 1 element on the operand stack caused an invalid access. (zcontrol.c) - The usage help message contained incorrect double %%s. (imainarg.c) - If an initialization file tried to use any Encodings other than the 4 registered ones, it couldn't find them. (gs_init.ps, gs_res.ps) - Places that expected arrays of coordinates (rectangles, x/y/xyshow) didn't accept packed arrays. (ibnum.c, zdps1.c) - filterdict was still visible after initialization. (gs_init.ps) - The usage error message wasn't terminated by a newline. (imainarg.c) - setcacheparams (or setting the MaxFontCache user parameter) didn't actually affect the size of the character cache. (zfont.c, zmisc2.c) - The main interpreter loop declared iref as a ref *, even though it may only be a ref_packed *. (iref.h, interp.c) Changes the character cache so it ignores absurd FontBBox values. Nothing in the Adobe spec suggests doing this, but it is necessary for handling questionable output produced by PageMaker 5.0 (an Adobe product!). (zchar1.c) Changes some type declarations slightly to reduce the number of 'discarding const' compiler warnings. (igc.h, igc.c, igcref.c) Adds .setclipoutside and .currentclipoutside operators for accessing the new outside clipping capability. (zpath.c) Adds the dictionary stack to the information printed in case of a fatal problem. (imain.c) Adds .set/currentrenderalgorithm operators for testing. (zrop.c)Library
Fixes bugs: - The TrueType rasterizer didn't map quadratic to cubic splines well, and didn't handle off-curve points at the end of a contour properly. (gstype42.c) - An #include was omitted. (gsimage.c, gxclimag.c) - Some compilers complained about statements with no effect, or comma operators with no effect on the left. (gschar.c, gxcpath.c, gxfill.c) - TrueType or Type 42 glyphs with a repeat count that crossed a contour boundary produced incorrect output. (gstype42.c) - TrueType / Type 42 composite glyphs involving rotation were placed incorrectly. (gstype42.c) - Type 42 fonts with an absent or incorrect FontBBox could fail to produce output. (gstype42.c) - Some header files weren't protected against double inclusion. (gsio.h, gdebug.h) - Decoding filters didn't "look ahead" to detect EOD, so if the last read operation before closing the filter ended just before the EOD mark, the EOD mark might not be absorbed. (stream.h, stream.c) - Filling paths consisting of multiple subpaths that overlap in Y produced slightly inaccurate output. We were unable to find a way to fix this without making a NON-BACKWARD-COMPATIBLE change in the interface for the recently introduced fill_trapezoid device procedure. (gxdevice.h, gdevbbox.c, gdevddrw.c, gdevnfwd.c, gxfill.c) - When banding, get_bits didn't detect calls with out-of-range Y values. (gxclread.c) - setcacheparams didn't actually affect the size of the character cache. (gsfont.h, gxbcache.h, gxfcache.h, gschar.c, gsfont.c, gxbcache.c, gxccman.c, gxclbits.c) - When banding, colored halftones could be mangled. (gxclread.c) Fixes bugs in the bounding box device: - The bounding box device could give bizarre results if any objects crossed the lower edge of the page. (gdevbbox.c) - The bounding box device could get a memory access error when processing image data. (gdebbox.c) - The bounding box device ran the default drawing algorithms even if it had no target (performance bug only). (gdevbbox.c) - The bounding box device computed an incorrect (too small) box for partially clipped bitmap images. (gdevbbox.c) - The bounding box device got confused by files that filled the entire page with a background color. (gdevbbox.c) - The bounding box device produced infinite-height boxes for certain kinds of data. (gdevbbox.c) Changes some type declarations slightly to reduce the number of 'discarding const' compiler warnings. (gsmemory.h, gsstruct.h) Adds the capability of clipping to the outside rather than the inside of the clipping path. This is required for emulating an obscure feature of the Microsoft Windows GDI. (gspath.h, gxclpath.h, gxpath.h, gxcpath.h, gzcpath.h, gspath.c, gxacpath.c, gxclpath.c, gxclread.c, gxcpath.c.) Makes it possible for band devices to select the underlying memory device used to accumulate the actual bits. This is required for (at least) PCL5 emulation. This requires adding a procedure to the gx_device_printer structure, which, for devices that initialize the structure without using the macros in gdevprn.h or access the printer-specific procedures directly, is a NON-BACKWARD-COMPATIBLE change. (gdevprn.h, gxclist.h, gxdevice.h, gdevdflt.c, gdevprn.c, gxclread.c) Speeds up handling of rotated or halftoned masked images. (gximage2.c) Adds an output_page procedure to the bounding box device, for testing. (gdevbbox.c) Adds a sample device that keeps track of the "render algorithm", for PCL5c emulation. (gdevrrgb.c)Version 3.68 patch 4 (5/23/96)
More minor bug fixes, mostly related to the MS Windows implementation.Documentation
Further updates various doc files to make them more useful to new users. (NEWS, README, current.doc, helpers.doc, new-user.doc) Adds user-contributed documentation for ps2pdf. (ps2pdf.doc, unix-end.mak) Documents a bug in the Borland C++ 4.52 compiler, and where to find the patch for it. (make.doc)Procedures
Fixes bugs: - A command line exceeded the MS-DOS 120 character limit. (devs.mak) A file was accidentally omitted from the fileset. (wmakebat.bat)Drivers
Fixes bugs: - Many of the 'show' operators didn't work properly if the PDF writer was included in the configuration. (gs_pdfwr.ps) - x_wrap_get_bits was ridiculously slow. (It still is, but not quite as ridiculouslyrueTypuld produce in-line images that were too large. (gdevpdfi.c) - The PDF writer didn't scale explicit character and word spacing (ashow/widthshow/awidthshow) properly. (gdevpdft.c) - The PDF writer didn't copy named destination or article title strings, possibly leading to dangling pointers. (gdevpdf.c, gdevpdfm.c) - The PDF writer produced incorrect output for re-encoded fonts. (It now converts any string containing characters in non-standard positions to bitmaps; this will be fixed in a later release.) (gs_pdfwr.ps, gdevpdfx.h, gdevpdfp.c, gdevpdft.c) Updates a few drivers for the change in the handling of band device procedures. (gdevcp50.c, gdevdjet.c) Updates the X Windows driver for strip halftones. (gdevx.c) Adds anti-aliasing capability to the os2pm device. (gdevpm.c) Increases the sizes of some tables in the PDF writer. (gdevpdfx.h)Platforms
Fixes bugs: - A patch for the MS Windows platform was accidentally omitted. (gp_mswin.c) - A block of code was accidentally duplicated. (dwmain.cpp) - An identifier exceeded VAX VMS C's limit of 31 characters. (gscspace.h) - File name enumeration didn't work properly on Unix systems (still/again). (gp_unifs.c) - On MS Windows, If you closed Ghostscript with the system menu, you only closed the text window; Ghostscript kept running and you had to use the task manager to kill it. (dwmain.cpp, dwmainc.cpp, dwtext.cpp) - Some DLL-related typedefs were not consistent. (dwdll.h, gsdll.h, dpmainc.c, dwdll.cpp) - Attempts to call the DLL before it was initialized were not detected. (gsdll.c) - Bitmap line lengths were rounded up even on 32-bit Windows, which doesn't want this. (gdevwdib.c) Further improves the handling of attempts to use the DLL when it is already in use. (dwdll.cpp, gsdll.c) Adds a DLL-compatible main program for OS/2. (dpmainc.c, gp_os2.c, gsdll.c)Fonts
Fixes bugs: - The WingDings TrueType font wasn't loaded properly. (gs_ttf.ps) Makes changes so that TrueType fonts can appear in the Fontmap and can be loaded directly. (gs_fonts.ps, gs_ttf.ps)Interpreter
Fixes bugs: - Executing a .quit with only 1 element on the operand stack caused an invalid access. (zcontrol.c) - The usage help message contained incorrect double %%s. (imainarg.c) - If an initialization file tried to use any Encodings other than the 4 registered ones, it couldn't find them. (gs_init.ps, gs_res.ps) - Places that expected arrays of coordinates (rectangles, x/y/xyshow) didn't accept packed arrays. (ibnum.c, zdps1.c) - filterdict was still visible after initialization. (gs_init.ps) - The usage error message wasn't terminated by a newline. (imainarg.c) - setcacheparams (or setting the MaxFontCache user parameter) didn't actually affect the size of the character cache. (zfont.c, zmisc2.c) - The main interpreter loop declared iref as a ref *, even though it may only be a ref_packed *. (iref.h, interp.c) Changes the character cache so it ignores absurd FontBBox values. Nothing in the Adobe spec suggests doing this, but it is necessary for handling questionable output produced by PageMaker 5.0 (an Adobe product!). (zchar1.c) Changes some type declarations slightly to reduce the number of 'discarding const' compiler warnings. (igc.h, igc.c, igcref.c) Adds .setclipoutside and .currentclipoutside operators for accessing the new outside clipping capability. (zpath.c) Adds the dictionary stack to the information printed in case of a fatal problem. (imain.c) Adds .set/currentrenderalgorithm operators for testing. (zrop.c)Library
Fixes bugs: - The TrueType rasterizer didn't map quadratic to cubic splines well, and didn't handle off-curve points at the end of a contour properly. (gstype42.c) - An #include was omitted. (gsimage.c, gxclimag.c) - Some compilers complained about statements with no effect, or comma operators with no effect on the left. (gschar.c, gxcpath.c, gxfill.c) - TrueType or Type 42 glyphs with a repeat count that crossed a contour boundary produced incorrect output. (gstype42.c) - TrueType / Type 42 composite glyphs involving rotation were placed incorrectly. (gstype42.c) - Type 42 fonts with an absent or incorrect FontBBox could fail to produce output. (gstype42.c) - Some header files weren't protected against double inclusion. (gsio.h, gdebug.h) - Decoding filters didn't "look ahead" to detect EOD, so if the last read operation before closing the filter ended just before the EOD mark, the EOD mark might not be absorbed. (stream.h, stream.c) - Filling paths consisting of multiple subpaths that overlap in Y produced slightly inaccurate output. We were unable to find a way to fix this without making a NON-BACKWARD-COMPATIBLE change in the interface for the recently introduced fill_trapezoid device procedure. (gxdevice.h, gdevbbox.c, gdevddrw.c, gdevnfwd.c, gxfill.c) - When banding, get_bits didn't detect calls with out-of-range Y values. (gxclread.c) - setcacheparams didn't actually affect the size of the character cache. (gsfont.h, gxbcache.h, gxfcache.h, gschar.c, gsfont.c, gxbcache.c, gxccman.c, gxclbits.c) - When banding, colored halftones could be mangled. (gxclread.c) Fixes bugs in the bounding box device: - The bounding box device could give bizarre results if any objects crossed the lower edge of the page. (gdevbbox.c) - The bounding box device could get a memory access error when processing image data. (gdebbox.c) - The bounding box device ran the default drawing algorithms even if it had no target (performance bug only). (gdevbbox.c) - The bounding box device computed an incorrect (too small) box for partially clipped bitmap images. (gdevbbox.c) - The bounding box device got confused by files that filled the entire page with a background color. (gdevbbox.c) - The bounding box device produced infinite-height boxes for certain kinds of data. (gdevbbox.c) Changes some type declarations slightly to reduce the number of 'discarding const' compiler warnings. (gsmemory.h, gsstruct.h) Adds the capability of clipping to the outside rather than the inside of the clipping path. This is required for emulating an obscure feature of the Microsoft Windows GDI. (gspath.h, gxclpath.h, gxpath.h, gxcpath.h, gzcpath.h, gspath.c, gxacpath.c, gxclpath.c, gxclread.c, gxcpath.c.) Makes it possible for band devices to select the underlying memory device used to accumulate the actual bits. This is required for (at least) PCL5 emulation. This requires adding a procedure to the gx_device_printer structure, which, for devices that initialize the structure without using the macros in gdevprn.h or access the printer-specific procedures directly, is a NON-BACKWARD-COMPATIBLE change. (gdevprn.h, gxclist.h, gxdevice.h, gdevdflt.c, gdevprn.c, gxclread.c) Speeds up handling of rotated or halftoned masked images. (gximage2.c) Adds an output_page procedure to the bounding box device, for testing. (gdevbbox.c) Adds a sample device that keeps track of the "render algorithm", for PCL5c emulation. (gdevrrgb.c)Version 3.68 patch 4 (5/23/96)
More minor bug fixes, mostly related to the MS Windows implementation.Documentation
Further updates various doc files to make them more useful to new users. (NEWS, README, current.doc, helpers.doc, new-user.doc) Adds user-contributed documentation for ps2pdf. (ps2pdf.doc, unix-end.mak) Documents a bug in the Borland C++ 4.52 compiler, and where to find the patch for it. (make.doc)Procedures
Fixes bugs: - A command line exceeded the MS-DOS 120 character limit. (devs.mak) A file was accidentally omitted from the fileset. (wmakebat.bat)Drivers
Fixes bugs: - Many of the 'show' operators didn't work properly if the PDF writer was included in the configuration. (gs_pdfwr.ps) - x_wrap_get_bits was ridiculously slow. (It still is, but not quite as ridiculouslyrueTypuld produce in-line images that were too large. (gdevpdfi.c) - The PDF writer didn't scale explicit character and word spacing (ashow/widthshow/awidthshow) properly. (gdevpdft.c) - The PDF writer didn't copy named destination or article title strings, possibly leading to dangling pointers. (gdevpdf.c, gdevpdfm.c) - The PDF writer produced incorrect output for re-encoded fonts. (It now converts any string containing characters in non-standard positions to bitmaps; this will be fixed in a later release.) (gs_pdfwr.ps, gdevpdfx.h, gdevpdfp.c, gdevpdft.c) Updates a few drivers for the change in the handling of band device procedures. (gdevcp50.c, gdevdjet.c) Updates the X Windows driver for strip halftones. (gdevx.c) Adds anti-aliasing capability to the os2pm device. (gdevpm.c) Increases the sizes of some tables in the PDF writer. (gdevpdfx.h)Platforms
Fixes bugs: - A patch for the MS Windows platform was accidentally omitted. (gp_mswin.c) - A block of code was accidentally duplicated. (dwmain.cpp) - An identifier exceeded VAX VMS C's limit of 31 characters. (gscspace.h) - File name enumeration didn't work properly on Unix systems (still/again). (gp_unifs.c) - On MS Windows, If you closed Ghostscript with the system menu, you only closed the text window; Ghostscript kept running and you had to use the task manager to kill it. (dwmain.cpp, dwmainc.cpp, dwtext.cpp) - Some DLL-related typedefs were not consistent. (dwdll.h, gsdll.h, dpmainc.c, dwdll.cpp) - Attempts to call the DLL before it was initialized were not detected. (gsdll.c) - Bitmap line lengths were rounded up even on 32-bit Windows, which doesn't want this. (gdevwdib.c) Further improves the handling of attempts to use the DLL when it is already in use. (dwdll.cpp, gsdll.c) Adds a DLL-compatible main program for OS/2. (dpmainc.c, gp_os2.c, gsdll.c)Fonts
Fixes bugs: - The WingDings TrueType font wasn't loaded properly. (gs_ttf.ps) Makes changes so that TrueType fonts can appear in the Fontmap and can be loaded directly. (gs_fonts.ps, gs_ttf.ps)Interpreter
Fixes bugs: - Executing a .quit with only 1 element on the operand stack caused an invalid access. (zcontrol.c) - The usage help message contained incorrect double %%s. (imainarg.c) - If an initialization file tried to use any Encodings other than the 4 registered ones, it couldn't find them. (gs_init.ps, gs_res.ps) - Places that expected arrays of coordinates (rectangles, x/y/xyshow) didn't accept packed arrays. (ibnum.c, zdps1.c) - filterdict was still visible after initialization. (gs_init.ps) - The usage error message wasn't terminated by a newline. (imainarg.c) - setcacheparams (or setting the MaxFontCache user parameter) didn't actually affect the size of the character cache. (zfont.c, zmisc2.c) - The main interpreter loop declared iref as a ref *, even though it may only be a ref_packed *. (iref.h, interp.c) Changes the character cache so it ignores absurd FontBBox values. Nothing in the Adobe spec suggests doing this, but it is necessary for handling questionable output produced by PageMaker 5.0 (an Adobe product!). (zchar1.c) Changes some type declarations slightly to reduce the number of 'discarding const' compiler warnings. (igc.h, igc.c, igcref.c) Adds .setclipoutside and .currentclipoutside operators for accessing the new outside clipping capability. (zpath.c) Adds the dictionary stack to the information printed in case of a fatal problem. (imain.c) Adds .set/currentrenderalgorithm operators for testing. (zrop.c)Library
Fixes bugs: - The TrueType rasterizer didn't map quadratic to cubic splines well, and didn't handle off-curve points at the end of a contour properly. (gstype42.c) - An #include was omitted. (gsimage.c, gxclimag.c) - Some compilers complained about statements with no effect, or comma operators with no effect on the left. (gschar.c, gxcpath.c, gxfill.c) - TrueType or Type 42 glyphs with a repeat count that crossed a contour boundary produced incorrect output. (gstype42.c) - TrueType / Type 42 composite glyphs involving rotation were placed incorrectly. (gstype42.c) - Type 42 fonts with an absent or incorrect FontBBox could fail to produce output. (gstype42.c) - Some header files weren't protected against double inclusion. (gsio.h, gdebug.h) - Decoding filters didn't "look ahead" to detect EOD, so if the last read operation before closing the filter ended just before the EOD mark, the EOD mark might not be absorbed. (stream.h, stream.c) - Filling paths consisting of multiple subpaths that overlap in Y produced slightly inaccurate output. We were unable to find a way to fix this without making a NON-BACKWARD-COMPATIBLE change in the interface for the recently introduced fill_trapezoid device procedure. (gxdevice.h, gdevbbox.c, gdevddrw.c, gdevnfwd.c, gxfill.c) - When banding, get_bits didn't detect calls with out-of-range Y values. (gxclread.c) - setcacheparams didn't actually affect the size of the character cache. (gsfont.h, gxbcache.h, gxfcache.h, gschar.c, gsfont.c, gxbcache.c, gxccman.c, gxclbits.c) - When banding, colored halftones could be mangled. (gxclread.c) Fixes bugs in the bounding box device: - The bounding box device could give bizarre results if any objects crossed the lower edge of the page. (gdevbbox.c) - The bounding box device could get a memory access error when processing image data. (gdebbox.c) - The bounding box device ran the default drawing algorithms even if it had no target (performance bug only). (gdevbbox.c) - The bounding box device computed an incorrect (too small) box for partially clipped bitmap images. (gdevbbox.c) - The bounding box device got confused by files that filled the entire page with a background color. (gdevbbox.c) - The bounding box device produced infinite-height boxes for certain kinds of data. (gdevbbox.c) Changes some type declarations slightly to reduce the number of 'discarding const' compiler warnings. (gsmemory.h, gsstruct.h) Adds the capability of clipping to the outside rather than the inside of the clipping path. This is required for emulating an obscure feature of the Microsoft Windows GDI. (gspath.h, gxclpath.h, gxpath.h, gxcpath.h, gzcpath.h, gspath.c, gxacpath.c, gxclpath.c, gxclread.c, gxcpath.c.) Makes it possible for band devices to select the underlying memory device used to accumulate the actual bits. This is required for (at least) PCL5 emulation. This requires adding a procedure to the gx_device_printer structure, which, for devices that initialize the structure without using the macros in gdevprn.h or access the printer-specific procedures directly, is a NON-BACKWARD-COMPATIBLE change. (gdevprn.h, gxclist.h, gxdevice.h, gdevdflt.c, gdevprn.c, gxclread.c) Speeds up handling of rotated or halftoned masked images. (gximage2.c) Adds an output_page procedure to the bounding box device, for testing. (gdevbbox.c) Adds a sample device that keeps track of the "render algorithm", for PCL5c emulation. (gdevrrgb.c)Version 3.68 patch 4 (5/23/96)
More minor bug fixes, mostly related to the MS Windows implementation.Documentation
Further updates various doc files to make them more useful to new users. (NEWS, README, current.doc, helpers.doc, new-user.doc) Adds user-contributed documentation for ps2pdf. (ps2pdf.doc, unix-end.mak) Documents a bug in the Borland C++ 4.52 compiler, and where to find the patch for it. (make.doc)Procedures
Fixes bugs: - A command line exceeded the MS-DOS 120 character limit. (devs.mak) A file was accidentally omitted from the fileset. (wmakebat.bat)Drivers
Fixes bugs: - Many of the 'show' operators didn't work properly if the PDF writer was included in the configuration. (gs_pdfwr.ps) - x_wrap_get_bits was ridiculously slow. (It still is, but not quite as ridiculouslyrueTypuld produce in-line images that were too large. (gdevpdfi.c) - The PDF writer didn't scale explicit character and word spacing (ashow/widthshow/awidthshow) properly. (gdevpdft.c) - The PDF writer didn't copy named destination or article title strings, possibly leading to dangling pointers. (gdevpdf.c, gdevpdfm.c) - The PDF writer produced incorrect output for re-encoded fonts. (It now converts any string containing characters in non-standard positions to bitmaps; this will be fixed in a later release.) (gs_pdfwr.ps, gdevpdfx.h, gdevpdfp.c, gdevpdft.c) Updates a few drivers for the change in the handling of band device procedures. (gdevcp50.c, gdevdjet.c) Updates the X Windows driver for strip halftones. (gdevx.c) Adds anti-aliasing capability to the os2pm device. (gdevpm.c) Increases the sizes of some tables in the PDF writer. (gdevpdfx.h)Platforms
Fixes bugs: - A patch for the MS Windows platform was accidentally omitted. (gp_mswin.c) - A block of code was accidentally duplicated. (dwmain.cpp) - An identifier exceeded VAX VMS C's limit of 31 characters. (gscspace.h) - File name enumeration didn't work properly on Unix systems (still/again). (gp_unifs.c) - On MS Windows, If you closed Ghostscript with the system menu, you only closed the text window; Ghostscript kept running and you had to use the task manager to kill it. (dwmain.cpp, dwmainc.cpp, dwtext.cpp) - Some DLL-related typedefs were not consistent. (dwdll.h, gsdll.h, dpmainc.c, dwdll.cpp) - Attempts to call the DLL before it was initialized were not detected. (gsdll.c) - Bitmap line lengths were rounded up even on 32-bit Windows, which doesn't want this. (gdevwdib.c) Further improves the handling of attempts to use the DLL when it is already in use. (dwdll.cpp, gsdll.c) Adds a DLL-compatible main program for OS/2. (dpmainc.c, gp_os2.c, gsdll.c)Fonts
Fixes bugs: - The WingDings TrueType font wasn't loaded properly. (gs_ttf.ps) Makes changes so that TrueType fonts can appear in the Fontmap and can be loaded directly. (gs_fonts.ps, gs_ttf.ps)Interpreter
Fixes bugs: - Executing a .quit with only 1 element on the operand stack caused an invalid access. (zcontrol.c) - The usage help message contained incorrect double %%s. (imainarg.c) - If an initialization file tried to use any Encodings other than the 4 registered ones, it couldn't find them. (gs_init.ps, gs_res.ps) - Places that expected arrays of coordinates (rectangles, x/y/xyshow) didn't accept packed arrays. (ibnum.c, zdps1.c) - filterdict was still visible after initialization. (gs_init.ps) - The usage error message wasn't terminated by a newline. (imainarg.c) - setcacheparams (or setting the MaxFontCache user parameter) didn't actually affect the size of the character cache. (zfont.c, zmisc2.c) - The main interpreter loop declared iref as a ref *, even though it may only be a ref_packed *. (iref.h, interp.c) Changes the character cache so it ignores absurd FontBBox values. Nothing in the Adobe spec suggests doing this, but it is necessary for handling questionable output produced by PageMaker 5.0 (an Adobe product!). (zchar1.c) Changes some type declarations slightly to reduce the number of 'discarding const' compiler warnings. (igc.h, igc.c, igcref.c) Adds .setclipoutside and .currentclipoutside operators for accessing the new outside clipping capability. (zpath.c) Adds the dictionary stack to the information printed in case of a fatal problem. (imain.c) Adds .set/currentrenderalgorithm operators for testing. (zrop.c)Library
Fixes bugs: - The TrueType rasterizer didn't map quadratic to cubic splines well, and didn't handle off-curve points at the end of a contour properly. (gstype42.c) - An #include was omitted. (gsimage.c, gxclimag.c) - Some compilers complained about statements with no effect, or comma operators with no effect on the left. (gschar.c, gxcpath.c, gxfill.c) - TrueType or Type 42 glyphs with a repeat count that crossed a contour boundary produced incorrect output. (gstype42.c) - TrueType / Type 42 composite glyphs involving rotation were placed incorrectly. (gstype42.c) - Type 42 fonts with an absent or incorrect FontBBox could fail to produce output. (gstype42.c) - Some header files weren't protected against double inclusion. (gsio.h, gdebug.h) - Decoding filters didn't "look ahead" to detect EOD, so if the last read operation before closing the filter ended just before the EOD mark, the EOD mark might not be absorbed. (stream.h, stream.c) - Filling paths consisting of multiple subpaths that overlap in Y produced slightly inaccurate output. We were unable to find a way to fix this without making a NON-BACKWARD-COMPATIBLE change in the interface for the recently introduced fill_trapezoid device procedure. (gxdevice.h, gdevbbox.c, gdevddrw.c, gdevnfwd.c, gxfill.c) - When banding, get_bits didn't detect calls with out-of-range Y values. (gxclread.c) - setcacheparams didn't actually affect the size of the character cache. (gsfont.h, gxbcache.h, gxfcache.h, gschar.c, gsfont.c, gxbcache.c, gxccman.c, gxclbits.c) - When banding, colored halftones could be mangled. (gxclread.c) Fixes bugs in the bounding box device: - The bounding box device could give bizarre results if any objects crossed the lower edge of the page. (gdevbbox.c) - The bounding box device could get a memory access error when processing image data. (gdebbox.c) - The bounding box device ran the default drawing algorithms even if it had no target (performance bug only). (gdevbbox.c) - The bounding box device computed an incorrect (too small) box for partially clipped bitmap images. (gdevbbox.c) - The bounding box device got confused by files that filled the entire page with a background color. (gdevbbox.c) - The bounding box device produced infinite-height boxes for certain kinds of data. (gdevbbox.c) Changes some type declarations slightly to reduce the number of 'discarding const' compiler warnings. (gsmemory.h, gsstruct.h) Adds the capability of clipping to the outside rather than the inside of the clipping path. This is required for emulating an obscure feature of the Microsoft Windows GDI. (gspath.h, gxclpath.h, gxpath.h, gxcpath.h, gzcpath.h, gspath.c, gxacpath.c, gxclpath.c, gxclread.c, gxcpath.c.) Makes it possible for band devices to select the underlying memory device used to accumulate the actual bits. This is required for (at least) PCL5 emulation. This requires adding a procedure to the gx_device_printer structure, which, for devices that initialize the structure without using the macros in gdevprn.h or access the printer-specific procedures directly, is a NON-BACKWARD-COMPATIBLE change. (gdevprn.h, gxclist.h, gxdevice.h, gdevdflt.c, gdevprn.c, gxclread.c) Speeds up handling of rotated or halftoned masked images. (gximage2.c) Adds an output_page procedure to the bounding box device, for testing. (gdevbbox.c) Adds a sample device that keeps track of the "render algorithm", for PCL5c emulation. (gdevrrgb.c)Version 3.68 patch 4 (5/23/96)
More minor bug fixes, mostly related to the MS Windows implementation.Documentation
Further updates various doc files to make them more useful to new users. (NEWS, README, current.doc, helpers.doc, new-user.doc) Adds user-contributed documentation for ps2pdf. (ps2pdf.doc, unix-end.mak) Documents a bug in the Borland C++ 4.52 compiler, and where to find the patch for it. (make.doc)Procedures
Fixes bugs: - A command line exceeded the MS-DOS 120 character limit. (devs.mak) A file was accidentally omitted from the fileset. (wmakebat.bat)Drivers
Fixes bugs: - Many of the 'show' operators didn't work properly if the PDF writer was included in the configuration. (gs_pdfwr.ps) - x_wrap_get_bits was ridiculously slow. (It still is, but not quite as ridiculouslyrueTypuld produce in-line images that were too large. (gdevpdfi.c) - The PDF writer didn't scale explicit character and word spacing (ashow/widthshow/awidthshow) properly. (gdevpdft.c) - The PDF writer didn't copy named destination or article title strings, possibly leading to dangling pointers. (gdevpdf.c, gdevpdfm.c) - The PDF writer produced incorrect output for re-encoded fonts. (It now converts any string containing characters in non-standard positions to bitmaps; this will be fixed in a later release.) (gs_pdfwr.ps, gdevpdfx.h, gdevpdfp.c, gdevpdft.c) Updates a few drivers for the change in the handling of band device procedures. (gdevcp50.c, gdevdjet.c) Updates the X Windows driver for strip halftones. (gdevx.c) Adds anti-aliasing capability to the os2pm device. (gdevpm.c) Increases the sizes of some tables in the PDF writer. (gdevpdfx.h)Platforms
Fixes bugs: - A patch for the MS Windows platform was accidentally omitted. (gp_mswin.c) - A block of code was accidentally duplicated. (dwmain.cpp) - An identifier exceeded VAX VMS C's limit of 31 characters. (gscspace.h) - File name enumeration didn't work properly on Unix systems (still/again). (gp_unifs.c) - On MS Windows, If you closed Ghostscript with the system menu, you only closed the text window; Ghostscript kept running and you had to use the task manager to kill it. (dwmain.cpp, dwmainc.cpp, dwtext.cpp) - Some DLL-related typedefs were not consistent. (dwdll.h, gsdll.h, dpmainc.c, dwdll.cpp) - Attempts to call the DLL before it was initialized were not detected. (gsdll.c) - Bitmap line lengths were rounded up even on 32-bit Windows, which doesn't want this. (gdevwdib.c) Further improves the handling of attempts to use the DLL when it is already in use. (dwdll.cpp, gsdll.c) Adds a DLL-compatible main program for OS/2. (dpmainc.c, gp_os2.c, gsdll.c)Fonts
Fixes bugs: - The WingDings TrueType font wasn't loaded properly. (gs_ttf.ps) Makes changes so that TrueType fonts can appear in the Fontmap and can be loaded directly. (gs_fonts.ps, gs_ttf.ps)Interpreter
Fixes bugs: - Executing a .quit with only 1 element on the operand stack caused an invalid access. (zcontrol.c) - The usage help message contained incorrect double %%s. (imainarg.c) - If an initialization file tried to use any Encodings other than the 4 registered ones, it couldn't find them. (gs_init.ps, gs_res.ps) - Places that expected arrays of coordinates (rectangles, x/y/xyshow) didn't accept packed arrays. (ibnum.c, zdps1.c) - filterdict was still visible after initialization. (gs_init.ps) - The usage error message wasn't terminated by a newline. (imainarg.c) - setcacheparams (or setting the MaxFontCache user parameter) didn't actually affect the size of the character cache. (zfont.c, zmisc2.c) - The main interpreter loop declared iref as a ref *, even though it may only be a ref_packed *. (iref.h, interp.c) Changes the character cache so it ignores absurd FontBBox values. Nothing in the Adobe spec suggests doing this, but it is necessary for handling questionable output produced by PageMaker 5.0 (an Adobe product!). (zchar1.c) Changes some type declarations slightly to reduce the number of 'discarding const' compiler warnings. (igc.h, igc.c, igcref.c) Adds .setclipoutside and .currentclipoutside operators for accessing the new outside clipping capability. (zpath.c) Adds the dictionary stack to the information printed in case of a fatal problem. (imain.c) Adds .set/currentrenderalgorithm operators for testing. (zrop.c)Library
Fixes bugs: - The TrueType rasterizer didn't map quadratic to cubic splines well, and didn't handle off-curve points at the end of a contour properly. (gstype42.c) - An #include was omitted. (gsimage.c, gxclimag.c) - Some compilers complained about statements with no effect, or comma operators with no effect on the left. (gschar.c, gxcpath.c, gxfill.c) - TrueType or Type 42 glyphs with a repeat count that crossed a contour boundary produced incorrect output. (gstype42.c) - TrueType / Type 42 composite glyphs involving rotation were placed incorrectly. (gstype42.c) - Type 42 fonts with an absent or incorrect FontBBox could fail to produce output. (gstype42.c) - Some header files weren't protected against double inclusion. (gsio.h, gdebug.h) - Decoding filters didn't "look ahead" to detect EOD, so if the last read operation before closing the filter ended just before the EOD mark, the EOD mark might not be absorbed. (stream.h, stream.c) - Filling paths consisting of multiple subpaths that overlap in Y produced slightly inaccurate output. We were unable to find a way to fix this without making a NON-BACKWARD-COMPATIBLE change in the interface for the recently introduced fill_trapezoid device procedure. (gxdevice.h, gdevbbox.c, gdevddrw.c, gdevnfwd.c, gxfill.c) - When banding, get_bits didn't detect calls with out-of-range Y values. (gxclread.c) - setcacheparams didn't actually affect the size of the character cache. (gsfont.h, gxbcache.h, gxfcache.h, gschar.c, gsfont.c, gxbcache.c, gxccman.c, gxclbits.c) - When banding, colored halftones could be mangled. (gxclread.c) Fixes bugs in the bounding box device: - The bounding box device could give bizarre results if any objects crossed the lower edge of the page. (gdevbbox.c) - The bounding box device could get a memory access error when processing image data. (gdebbox.c) - The bounding box device ran the default drawing algorithms even if it had no target (performance bug only). (gdevbbox.c) - The bounding box device computed an incorrect (too small) box for partially clipped bitmap images. (gdevbbox.c) - The bounding box device got confused by files that filled the entire page with a background color. (gdevbbox.c) - The bounding box device produced infinite-height boxes for certain kinds of data. (gdevbbox.c) Changes some type declarations slightly to reduce the number of 'discarding const' compiler warnings. (gsmemory.h, gsstruct.h) Adds the capability of clipping to the outside rather than the inside of the clipping path. This is required for emulating an obscure feature of the Microsoft Windows GDI. (gspath.h, gxclpath.h, gxpath.h, gxcpath.h, gzcpath.h, gspath.c, gxacpath.c, gxclpath.c, gxclread.c, gxcpath.c.) Makes it possible for band devices to select the underlying memory device used to accumulate the actual bits. This is required for (at least) PCL5 emulation. This requires adding a procedure to the gx_device_printer structure, which, for devices that initialize the structure without using the macros in gdevprn.h or access the printer-specific procedures directly, is a NON-BACKWARD-COMPATIBLE change. (gdevprn.h, gxclist.h, gxdevice.h, gdevdflt.c, gdevprn.c, gxclread.c) Speeds up handling of rotated or halftoned masked images. (gximage2.c) Adds an output_page procedure to the bounding box device, for testing. (gdevbbox.c) Adds a sample device that keeps track of the "render algorithm", for PCL5c emulation. (gdevrrgb.c)Version 3.68 patch 4 (5/23/96)
More minor bug fixes, mostly related to the MS Windows implementation.Documentation
Further updates various doc files to make them more useful to new users. (NEWS, README, current.doc, helpers.doc, new-user.doc) Adds user-contributed documentation for ps2pdf. (ps2pdf.doc, unix-end.mak) Documents a bug in the Borland C++ 4.52 compiler, and where to find the patch for it. (make.doc)Procedures
Fixes bugs: - A command line exceeded the MS-DOS 120 character limit. (devs.mak) A file was accidentally omitted from the fileset. (wmakebat.bat)Drivers
Fixes bugs: - Many of the 'show' operators didn't work properly if the PDF writer was included in the configuration. (gs_pdfwr.ps) - x_wrap_get_bits was ridiculously slow. (It still is, but not quite as ridiculouslyrueTypuld produce in-line images that were too large. (gdevpdfi.c) - The PDF writer didn't scale explicit character and word spacing (ashow/widthshow/awidthshow) properly. (gdevpdft.c) - The PDF writer didn't copy named destination or article title strings, possibly leading to dangling pointers. (gdevpdf.c, gdevpdfm.c) - The PDF writer produced incorrect output for re-encoded fonts. (It now converts any string containing characters in non-standard positions to bitmaps; this will be fixed in a later release.) (gs_pdfwr.ps, gdevpdfx.h, gdevpdfp.c, gdevpdft.c) Updates a few drivers for the change in the handling of band device procedures. (gdevcp50.c, gdevdjet.c) Updates the X Windows driver for strip halftones. (gdevx.c) Adds anti-aliasing capability to the os2pm device. (gdevpm.c) Increases the sizes of some tables in the PDF writer. (gdevpdfx.h)Platforms
Fixes bugs: - A patch for the MS Windows platform was accidentally omitted. (gp_mswin.c) - A block of code was accidentally duplicated. (dwmain.cpp) - An identifier exceeded VAX VMS C's limit of 31 characters. (gscspace.h) - File name enumeration didn't work properly on Unix systems (still/again). (gp_unifs.c) - On MS Windows, If you closed Ghostscript with the system menu, you only closed the text window; Ghostscript kept running and you had to use the task manager to kill it. (dwmain.cpp, dwmainc.cpp, dwtext.cpp) - Some DLL-related typedefs were not consistent. (dwdll.h, gsdll.h, dpmainc.c, dwdll.cpp) - Attempts to call the DLL before it was initialized were not detected. (gsdll.c) - Bitmap line lengths were rounded up even on 32-bit Windows, which doesn't want this. (gdevwdib.c) Further improves the handling of attempts to use the DLL when it is already in use. (dwdll.cpp, gsdll.c) Adds a DLL-compatible main program for OS/2. (dpmainc.c, gp_os2.c, gsdll.c)Fonts
Fixes bugs: - The WingDings TrueType font wasn't loaded properly. (gs_ttf.ps) Makes changes so that TrueType fonts can appear in the Fontmap and can be loaded directly. (gs_fonts.ps, gs_ttf.ps)Interpreter
Fixes bugs: - Executing a .quit with only 1 element on the operand stack caused an invalid access. (zcontrol.c) - The usage help message contained incorrect double %%s. (imainarg.c) - If an initialization file tried to use any Encodings other than the 4 registered ones, it couldn't find them. (gs_init.ps, gs_res.ps) - Places that expected arrays of coordinates (rectangles, x/y/xyshow) didn't accept packed arrays. (ibnum.c, zdps1.c) - filterdict was still visible after initialization. (gs_init.ps) - The usage error message wasn't terminated by a newline. (imainarg.c) - setcacheparams (or setting the MaxFontCache user parameter) didn't actually affect the size of the character cache. (zfont.c, zmisc2.c) - The main interpreter loop declared iref as a ref *, even though it may only be a ref_packed *. (iref.h, interp.c) Changes the character cache so it ignores absurd FontBBox values. Nothing in the Adobe spec suggests doing this, but it is necessary for handling questionable output produced by PageMaker 5.0 (an Adobe product!). (zchar1.c) Changes some type declarations slightly to reduce the number of 'discarding const' compiler warnings. (igc.h, igc.c, igcref.c) Adds .setclipoutside and .currentclipoutside operators for accessing the new outside clipping capability. (zpath.c) Adds the dictionary stack to the information printed in case of a fatal problem. (imain.c) Adds .set/currentrenderalgorithm operators for testing. (zrop.c)Library
Fixes bugs: - The TrueType rasterizer didn't map quadratic to cubic splines well, and didn't handle off-curve points at the end of a contour properly. (gstype42.c) - An #include was omitted. (gsimage.c, gxclimag.c) - Some compilers complained about statements with no effect, or comma operators with no effect on the left. (gschar.c, gxcpath.c, gxfill.c) - TrueType or Type 42 glyphs with a repeat count that crossed a contour boundary produced incorrect output. (gstype42.c) - TrueType / Type 42 composite glyphs involving rotation were placed incorrectly. (gstype42.c) - Type 42 fonts with an absent or incorrect FontBBox could fail to produce output. (gstype42.c) - Some header files weren't protected against double inclusion. (gsio.h, gdebug.h) - Decoding filters didn't "look ahead" to detect EOD, so if the last read operation before closing the filter ended just before the EOD mark, the EOD mark might not be absorbed. (stream.h, stream.c) - Filling paths consisting of multiple subpaths that overlap in Y produced slightly inaccurate output. We were unable to find a way to fix this without making a NON-BACKWARD-COMPATIBLE change in the interface for the recently introduced fill_trapezoid device procedure. (gxdevice.h, gdevbbox.c, gdevddrw.c, gdevnfwd.c, gxfill.c) - When banding, get_bits didn't detect calls with out-of-range Y values. (gxclread.c) - setcacheparams didn't actually affect the size of the character cache. (gsfont.h, gxbcache.h, gxfcache.h, gschar.c, gsfont.c, gxbcache.c, gxccman.c, gxclbits.c) - When banding, colored halftones could be mangled. (gxclread.c) Fixes bugs in the bounding box device: - The bounding box device could give bizarre results if any objects crossed the lower edge of the page. (gdevbbox.c) - The bounding box device could get a memory access error when processing image data. (gdebbox.c) - The bounding box device ran the default drawing algorithms even if it had no target (performance bug only). (gdevbbox.c) - The bounding box device computed an incorrect (too small) box for partially clipped bitmap images. (gdevbbox.c) - The bounding box device got confused by files that filled the entire page with a background color. (gdevbbox.c) - The bounding box device produced infinite-height boxes for certain kinds of data. (gdevbbox.c) Changes some type declarations slightly to reduce the number of 'discarding const' compiler warnings. (gsmemory.h, gsstruct.h) Adds the capability of clipping to the outside rather than the inside of the clipping path. This is required for emulating an obscure feature of the Microsoft Windows GDI. (gspath.h, gxclpath.h, gxpath.h, gxcpath.h, gzcpath.h, gspath.c, gxacpath.c, gxclpath.c, gxclread.c, gxcpath.c.) Makes it possible for band devices to select the underlying memory device used to accumulate the actual bits. This is required for (at least) PCL5 emulation. This requires adding a procedure to the gx_device_printer structure, which, for devices that initialize the structure without using the macros in gdevprn.h or access the printer-specific procedures directly, is a NON-BACKWARD-COMPATIBLE change. (gdevprn.h, gxclist.h, gxdevice.h, gdevdflt.c, gdevprn.c, gxclread.c) Speeds up handling of rotated or halftoned masked images. (gximage2.c) Adds an output_page procedure to the bounding box device, for testing. (gdevbbox.c) Adds a sample device that keeps track of the "render algorithm", for PCL5c emulation. (gdevrrgb.c)Version 3.68 patch 4 (5/23/96)
More minor bug fixes, mostly related to the MS Windows implementation.Documentation
Further updates various doc files to make them more useful to new users. (NEWS, README, current.doc, helpers.doc, new-user.doc) Adds user-contributed documentation for ps2pdf. (ps2pdf.doc, unix-end.mak) Documents a bug in the Borland C++ 4.52 compiler, and where to find the patch for it. (make.doc)Procedures
Fixes bugs: - A command line exceeded the MS-DOS 120 character limit. (devs.mak) A file was accidentally omitted from the fileset. (wmakebat.bat)Drivers
Fixes bugs: - Many of the 'show' operators didn't work properly if the PDF writer was included in the configuration. (gs_pdfwr.ps) - x_wrap_get_bits was ridiculously slow. (It still is, but not quite as ridiculouslyrueTypuld produce in-line images that were too large. (gdevpdfi.c) - The PDF writer didn't scale explicit character and word spacing (ashow/widthshow/awidthshow) properly. (gdevpdft.c) - The PDF writer didn't copy named destination or article title strings, possibly leading to dangling pointers. (gdevpdf.c, gdevpdfm.c) - The PDF writer produced incorrect output for re-encoded fonts. (It now converts any string containing characters in non-standard positions to bitmaps; this will be fixed in a later release.) (gs_pdfwr.ps, gdevpdfx.h, gdevpdfp.c, gdevpdft.c) Updates a few drivers for the change in the handling of band device procedures. (gdevcp50.c, gdevdjet.c) Updates the X Windows driver for strip halftones. (gdevx.c) Adds anti-aliasing capability to the os2pm device. (gdevpm.c) Increases the sizes of some tables in the PDF writer. (gdevpdfx.h)Platforms
Fixes bugs: - A patch for the MS Windows platform was accidentally omitted. (gp_mswin.c) - A block of code was accidentally duplicated. (dwmain.cpp) - An identifier exceeded VAX VMS C's limit of 31 characters. (gscspace.h) - File name enumeration didn't work properly on Unix systems (still/again). (gp_unifs.c) - On MS Windows, If you closed Ghostscript with the system menu, you only closed the text window; Ghostscript kept running and you had to use the task manager to kill it. (dwmain.cpp, dwmainc.cpp, dwtext.cpp) - Some DLL-related typedefs were not consistent. (dwdll.h, gsdll.h, dpmainc.c, dwdll.cpp) - Attempts to call the DLL before it was initialized were not detected. (gsdll.c) - Bitmap line lengths were rounded up even on 32-bit Windows, which doesn't want this. (gdevwdib.c) Further improves the handling of attempts to use the DLL when it is already in use. (dwdll.cpp, gsdll.c) Adds a DLL-compatible main program for OS/2. (dpmainc.c, gp_os2.c, gsdll.c)Fonts
Fixes bugs: - The WingDings TrueType font wasn't loaded properly. (gs_ttf.ps) Makes changes so that TrueType fonts can appear in the Fontmap and can be loaded directly. (gs_fonts.ps, gs_ttf.ps)Interpreter
Fixes bugs: - Executing a .quit with only 1 element on the operand stack caused an invalid access. (zcontrol.c) - The usage help message contained incorrect double %%s. (imainarg.c) - If an initialization file tried to use any Encodings other than the 4 registered ones, it couldn't find them. (gs_init.ps, gs_res.ps) - Places that expected arrays of coordinates (rectangles, x/y/xyshow) didn't accept packed arrays. (ibnum.c, zdps1.c) - filterdict was still visible after initialization. (gs_init.ps) - The usage error message wasn't terminated by a newline. (imainarg.c) - setcacheparams (or setting the MaxFontCache user parameter) didn't actually affect the size of the character cache. (zfont.c, zmisc2.c) - The main interpreter loop declared iref as a ref *, even though it may only be a ref_packed *. (iref.h, interp.c) Changes the character cache so it ignores absurd FontBBox values. Nothing in the Adobe spec suggests doing this, but it is necessary for handling questionable output produced by PageMaker 5.0 (an Adobe product!). (zchar1.c) Changes some type declarations slightly to reduce the number of 'discarding const' compiler warnings. (igc.h, igc.c, igcref.c) Adds .setclipoutside and .currentclipoutside operators for accessing the new outside clipping capability. (zpath.c) Adds the dictionary stack to the information printed in case of a fatal problem. (imain.c) Adds .set/currentrenderalgorithm operators for testing. (zrop.c)Library
Fixes bugs: - The TrueType rasterizer didn't map quadratic to cubic splines well, and didn't handle off-curve points at the end of a contour properly. (gstype42.c) - An #include was omitted. (gsimage.c, gxclimag.c) - Some compilers complained about statements with no effect, or comma operators with no effect on the left. (gschar.c, gxcpath.c, gxfill.c) - TrueType or Type 42 glyphs with a repeat count that crossed a contour boundary produced incorrect output. (gstype42.c) - TrueType / Type 42 composite glyphs involving rotation were placed incorrectly. (gstype42.c) - Type 42 fonts with an absent or incorrect FontBBox could fail to produce output. (gstype42.c) - Some header files weren't protected against double inclusion. (gsio.h, gdebug.h) - Decoding filters didn't "look ahead" to detect EOD, so if the last read operation before closing the filter ended just before the EOD mark, the EOD mark might not be absorbed. (stream.h, stream.c) - Filling paths consisting of multiple subpaths that overlap in Y produced slightly inaccurate output. We were unable to find a way to fix this without making a NON-BACKWARD-COMPATIBLE change in the interface for the recently introduced fill_trapezoid device procedure. (gxdevice.h, gdevbbox.c, gdevddrw.c, gdevnfwd.c, gxfill.c) - When banding, get_bits didn't detect calls with out-of-range Y values. (gxclread.c) - setcacheparams didn't actually affect the size of the character cache. (gsfont.h, gxbcache.h, gxfcache.h, gschar.c, gsfont.c, gxbcache.c, gxccman.c, gxclbits.c) - When banding, colored halftones could be mangled. (gxclread.c) Fixes bugs in the bounding box device: - The bounding box device could give bizarre results if any objects crossed the lower edge of the page. (gdevbbox.c) - The bounding box device could get a memory access error when processing image data. (gdebbox.c) - The bounding box device ran the default drawing algorithms even if it had no target (performance bug only). (gdevbbox.c) - The bounding box device computed an incorrect (too small) box for partially clipped bitmap images. (gdevbbox.c) - The bounding box device got confused by files that filled the entire page with a background color. (gdevbbox.c) - The bounding box device produced infinite-height boxes for certain kinds of data. (gdevbbox.c) Changes some type declarations slightly to reduce the number of 'discarding const' compiler warnings. (gsmemory.h, gsstruct.h) Adds the capability of clipping to the outside rather than the inside of the clipping path. This is required for emulating an obscure feature of the Microsoft Windows GDI. (gspath.h, gxclpath.h, gxpath.h, gxcpath.h, gzcpath.h, gspath.c, gxacpath.c, gxclpath.c, gxclread.c, gxcpath.c.) Makes it possible for band devices to select the underlying memory device used to accumulate the actual bits. This is required for (at least) PCL5 emulation. This requires adding a procedure to the gx_device_printer structure, which, for devices that initialize the structure without using the macros in gdevprn.h or access the printer-specific procedures directly, is a NON-BACKWARD-COMPATIBLE change. (gdevprn.h, gxclist.h, gxdevice.h, gdevdflt.c, gdevprn.c, gxclread.c) Speeds up handling of rotated or halftoned masked images. (gximage2.c) Adds an output_page procedure to the bounding box device, for testing. (gdevbbox.c) Adds a sample device that keeps track of the "render algorithm", for PCL5c emulation. (gdevrrgb.c)Version 3.68 patch 4 (5/23/96)
More minor bug fixes, mostly related to the MS Windows implementation.Documentation
Further updates various doc files to make them more useful to new users. (NEWS, README, current.doc, helpers.doc, new-user.doc) Adds user-contributed documentation for ps2pdf. (ps2pdf.doc, unix-end.mak) Documents a bug in the Borland C++ 4.52 compiler, and where to find the patch for it. (make.doc)Procedures
Fixes bugs: - A command line exceeded the MS-DOS 120 character limit. (devs.mak) A file was accidentally omitted from the fileset. (wmakebat.bat)Drivers
Fixes bugs: - Many of the 'show' operators didn't work properly if the PDF writer was included in the configuration. (gs_pdfwr.ps) - x_wrap_get_bits was ridiculously slow. (It still is, but not quite as ridiculouslyrueTypuld produce in-line images that were too large. (gdevpdfi.c) - The PDF writer didn't scale explicit character and word spacing (ashow/widthshow/awidthshow) properly. (gdevpdft.c) - The PDF writer didn't copy named destination or article title strings, possibly leading to dangling pointers. (gdevpdf.c, gdevpdfm.c) - The PDF writer produced incorrect output for re-encoded fonts. (It now converts any string containing characters in non-standard positions to bitmaps; this will be fixed in a later release.) (gs_pdfwr.ps, gdevpdfx.h, gdevpdfp.c, gdevpdft.c) Updates a few drivers for the change in the handling of band device procedures. (gdevcp50.c, gdevdjet.c) Updates the X Windows driver for strip halftones. (gdevx.c) Adds anti-aliasing capability to the os2pm device. (gdevpm.c) Increases the sizes of some tables in the PDF writer. (gdevpdfx.h)Platforms
Fixes bugs: - A patch for the MS Windows platform was accidentally omitted. (gp_mswin.c) - A block of code was accidentally duplicated. (dwmain.cpp) - An identifier exceeded VAX VMS C's limit of 31 characters. (gscspace.h) - File name enumeration didn't work properly on Unix systems (still/again). (gp_unifs.c) - On MS Windows, If you closed Ghostscript with the system menu, you only closed the text window; Ghostscript kept running and you had to use the task manager to kill it. (dwmain.cpp, dwmainc.cpp, dwtext.cpp) - Some DLL-related typedefs were not consistent. (dwdll.h, gsdll.h, dpmainc.c, dwdll.cpp) - Attempts to call the DLL before it was initialized were not detected. (gsdll.c) - Bitmap line lengths were rounded up even on 32-bit Windows, which doesn't want this. (gdevwdib.c) Further improves the handling of attempts to use the DLL when it is already in use. (dwdll.cpp, gsdll.c) Adds a DLL-compatible main program for OS/2. (dpmainc.c, gp_os2.c, gsdll.c)Fonts
Fixes bugs: - The WingDings TrueType font wasn't loaded properly. (gs_ttf.ps) Makes changes so that TrueType fonts can appear in the Fontmap and can be loaded directly. (gs_fonts.ps, gs_ttf.ps)Interpreter
Fixes bugs: - Executing a .quit with only 1 element on the operand stack caused an invalid access. (zcontrol.c) - The usage help message contained incorrect double %%s. (imainarg.c) - If an initialization file tried to use any Encodings other than the 4 registered ones, it couldn't find them. (gs_init.ps, gs_res.ps) - Places that expected arrays of coordinates (rectangles, x/y/xyshow) didn't accept packed arrays. (ibnum.c, zdps1.c) - filterdict was still visible after initialization. (gs_init.ps) - The usage error message wasn't terminated by a newline. (imainarg.c) - setcacheparams (or setting the MaxFontCache user parameter) didn't actually affect the size of the character cache. (zfont.c, zmisc2.c) - The main interpreter loop declared iref as a ref *, even though it may only be a ref_packed *. (iref.h, interp.c) Changes the character cache so it ignores absurd FontBBox values. Nothing in the Adobe spec suggests doing this, but it is necessary for handling questionable output produced by PageMaker 5.0 (an Adobe product!). (zchar1.c) Changes some type declarations slightly to reduce the number of 'discarding const' compiler warnings. (igc.h, igc.c, igcref.c) Adds .setclipoutside and .currentclipoutside operators for accessing the new outside clipping capability. (zpath.c) Adds the dictionary stack to the information printed in case of a fatal problem. (imain.c) Adds .set/currentrenderalgorithm operators for testing. (zrop.c)Library
Fixes bugs: - The TrueType rasterizer didn't map quadratic to cubic splines well, and didn't handle off-curve points at the end of a contour properly. (gstype42.c) - An #include was omitted. (gsimage.c, gxclimag.c) - Some compilers complained about statements with no effect, or comma operators with no effect on the left. (gschar.c, gxcpath.c, gxfill.c) - TrueType or Type 42 glyphs with a repeat count that crossed a contour boundary produced incorrect output. (gstype42.c) - TrueType / Type 42 composite glyphs involving rotation were placed incorrectly. (gstype42.c) - Type 42 fonts with an absent or incorrect FontBBox could fail to produce output. (gstype42.c) - Some header files weren't protected against double inclusion. (gsio.h, gdebug.h) - Decoding filters didn't "look ahead" to detect EOD, so if the last read operation before closing the filter ended just before the EOD mark, the EOD mark might not be absorbed. (stream.h, stream.c) - Filling paths consisting of multiple subpaths that overlap in Y produced slightly inaccurate output. We were unable to find a way to fix this without making a NON-BACKWARD-COMPATIBLE change in the interface for the recently introduced fill_trapezoid device procedure. (gxdevice.h, gdevbbox.c, gdevddrw.c, gdevnfwd.c, gxfill.c) - When banding, get_bits didn't detect calls with out-of-range Y values. (gxclread.c) - setcacheparams didn't actually affect the size of the character cache. (gsfont.h, gxbcache.h, gxfcache.h, gschar.c, gsfont.c, gxbcache.c, gxccman.c, gxclbits.c) - When banding, colored halftones could be mangled. (gxclread.c) Fixes bugs in the bounding box device: - The bounding box device could give bizarre results if any objects crossed the lower edge of the page. (gdevbbox.c) - The bounding box device could get a memory access error when processing image data. (gdebbox.c) - The bounding box device ran the default drawing algorithms even if it had no target (performance bug only). (gdevbbox.c) - The bounding box device computed an incorrect (too small) box for partially clipped bitmap images. (gdevbbox.c) - The bounding box device got confused by files that filled the entire page with a background color. (gdevbbox.c) - The bounding box device produced infinite-height boxes for certain kinds of data. (gdevbbox.c) Changes some type declarations slightly to reduce the number of 'discarding const' compiler warnings. (gsmemory.h, gsstruct.h) Adds the capability of clipping to the outside rather than the inside of the clipping path. This is required for emulating an obscure feature of the Microsoft Windows GDI. (gspath.h, gxclpath.h, gxpath.h, gxcpath.h, gzcpath.h, gspath.c, gxacpath.c, gxclpath.c, gxclread.c, gxcpath.c.) Makes it possible for band devices to select the underlying memory device used to accumulate the actual bits. This is required for (at least) PCL5 emulation. This requires adding a procedure to the gx_device_printer structure, which, for devices that initialize the structure without using the macros in gdevprn.h or access the printer-specific procedures directly, is a NON-BACKWARD-COMPATIBLE change. (gdevprn.h, gxclist.h, gxdevice.h, gdevdflt.c, gdevprn.c, gxclread.c) Speeds up handling of rotated or halftoned masked images. (gximage2.c) Adds an output_page procedure to the bounding box device, for testing. (gdevbbox.c) Adds a sample device that keeps track of the "render algorithm", for PCL5c emulation. (gdevrrgb.c)Version 3.68 patch 4 (5/23/96)
More minor bug fixes, mostly related to the MS Windows implementation.Documentation
Further updates various doc files to make them more useful to new users. (NEWS, README, current.doc, helpers.doc, new-user.doc) Adds user-contributed documentation for ps2pdf. (ps2pdf.doc, unix-end.mak) Documents a bug in the Borland C++ 4.52 compiler, and where to find the patch for it. (make.doc)Procedures
Fixes bugs: - A command line exceeded the MS-DOS 120 character limit. (devs.mak) A file was accidentally omitted from the fileset. (wmakebat.bat)Drivers
Fixes bugs: - Many of the 'show' operators didn't work properly if the PDF writer was included in the configuration. (gs_pdfwr.ps) - x_wrap_get_bits was ridiculously slow. (It still is, but not quite as ridiculouslyrueTypuld produce in-line images that were too large. (gdevpdfi.c) - The PDF writer didn't scale explicit character and word spacing (ashow/widthshow/awidthshow) properly. (gdevpdft.c) - The PDF writer didn't copy named destination or article title strings, possibly leading to dangling pointers. (gdevpdf.c, gdevpdfm.c) - The PDF writer produced incorrect output for re-encoded fonts. (It now converts any string containing characters in non-standard positions to bitmaps; this will be fixed in a later release.) (gs_pdfwr.ps, gdevpdfx.h, gdevpdfp.c, gdevpdft.c) Updates a few drivers for the change in the handling of band device procedures. (gdevcp50.c, gdevdjet.c) Updates the X Windows driver for strip halftones. (gdevx.c) Adds anti-aliasing capability to the os2pm device. (gdevpm.c) Increases the sizes of some tables in the PDF writer. (gdevpdfx.h)Platforms
Fixes bugs: - A patch for the MS Windows platform was accidentally omitted. (gp_mswin.c) - A block of code was accidentally duplicated. (dwmain.cpp) - An identifier exceeded VAX VMS C's limit of 31 characters. (gscspace.h) - File name enumeration didn't work properly on Unix systems (still/again). (gp_unifs.c) - On MS Windows, If you closed Ghostscript with the system menu, you only closed the text window; Ghostscript kept running and you had to use the task manager to kill it. (dwmain.cpp, dwmainc.cpp, dwtext.cpp) - Some DLL-related typedefs were not consistent. (dwdll.h, gsdll.h, dpmainc.c, dwdll.cpp) - Attempts to call the DLL before it was initialized were not detected. (gsdll.c) - Bitmap line lengths were rounded up even on 32-bit Windows, which doesn't want this. (gdevwdib.c) Further improves the handling of attempts to use the DLL when it is already in use. (dwdll.cpp, gsdll.c) Adds a DLL-compatible main program for OS/2. (dpmainc.c, gp_os2.c, gsdll.c)Fonts
Fixes bugs: - The WingDings TrueType font wasn't loaded properly. (gs_ttf.ps) Makes changes so that TrueType fonts can appear in the Fontmap and can be loaded directly. (gs_fonts.ps, gs_ttf.ps)Interpreter
Fixes bugs: - Executing a .quit with only 1 element on the operand stack caused an invalid access. (zcontrol.c) - The usage help message contained incorrect double %%s. (imainarg.c) - If an initialization file tried to use any Encodings other than the 4 registered ones, it couldn't find them. (gs_init.ps, gs_res.ps) - Places that expected arrays of coordinates (rectangles, x/y/xyshow) didn't accept packed arrays. (ibnum.c, zdps1.c) - filterdict was still visible after initialization. (gs_init.ps) - The usage error message wasn't terminated by a newline. (imainarg.c) - setcacheparams (or setting the MaxFontCache user parameter) didn't actually affect the size of the character cache. (zfont.c, zmisc2.c) - The main interpreter loop declared iref as a ref *, even though it may only be a ref_packed *. (iref.h, interp.c) Changes the character cache so it ignores absurd FontBBox values. Nothing in the Adobe spec suggests doing this, but it is necessary for handling questionable output produced by PageMaker 5.0 (an Adobe product!). (zchar1.c) Changes some type declarations slightly to reduce the number of 'discarding const' compiler warnings. (igc.h, igc.c, igcref.c) Adds .setclipoutside and .currentclipoutside operators for accessing the new outside clipping capability. (zpath.c) Adds the dictionary stack to the information printed in case of a fatal problem. (imain.c) Adds .set/currentrenderalgorithm operators for testing. (zrop.c)Library
Fixes bugs: - The TrueType rasterizer didn't map quadratic to cubic splines well, and didn't handle off-curve points at the end of a contour properly. (gstype42.c) - An #include was omitted. (gsimage.c, gxclimag.c) - Some compilers complained about statements with no effect, or comma operators with no effect on the left. (gschar.c, gxcpath.c, gxfill.c) - TrueType or Type 42 glyphs with a repeat count that crossed a contour boundary produced incorrect output. (gstype42.c) - TrueType / Type 42 composite glyphs involving rotation were placed incorrectly. (gstype42.c) - Type 42 fonts with an absent or incorrect FontBBox could fail to produce output. (gstype42.c) - Some header files weren't protected against double inclusion. (gsio.h, gdebug.h) - Decoding filters didn't "look ahead" to detect EOD, so if the last read operation before closing the filter ended just before the EOD mark, the EOD mark might not be absorbed. (stream.h, stream.c) - Filling paths consisting of multiple subpaths that overlap in Y produced slightly inaccurate output. We were unable to find a way to fix this without making a NON-BACKWARD-COMPATIBLE change in the interface for the recently introduced fill_trapezoid device procedure. (gxdevice.h, gdevbbox.c, gdevddrw.c, gdevnfwd.c, gxfill.c) - When banding, get_bits didn't detect calls with out-of-range Y values. (gxclread.c) - setcacheparams didn't actually affect the size of the character cache. (gsfont.h, gxbcache.h, gxfcache.h, gschar.c, gsfont.c, gxbcache.c, gxccman.c, gxclbits.c) - When banding, colored halftones could be mangled. (gxclread.c) Fixes bugs in the bounding box device: - The bounding box device could give bizarre results if any objects crossed the lower edge of the page. (gdevbbox.c) - The bounding box device could get a memory access error when processing image data. (gdebbox.c) - The bounding box device ran the default drawing algorithms even if it had no target (performance bug only). (gdevbbox.c) - The bounding box device computed an incorrect (too small) box for partially clipped bitmap images. (gdevbbox.c) - The bounding box device got confused by files that filled the entire page with a background color. (gdevbbox.c) - The bounding box device produced infinite-height boxes for certain kinds of data. (gdevbbox.c) Changes some type declarations slightly to reduce the number of 'discarding const' compiler warnings. (gsmemory.h, gsstruct.h) Adds the capability of clipping to the outside rather than the inside of the clipping path. This is required for emulating an obscure feature of the Microsoft Windows GDI. (gspath.h, gxclpath.h, gxpath.h, gxcpath.h, gzcpath.h, gspath.c, gxacpath.c, gxclpath.c, gxclread.c, gxcpath.c.) Makes it possible for band devices to select the underlying memory device used to accumulate the actual bits. This is required for (at least) PCL5 emulation. This requires adding a procedure to the gx_device_printer structure, which, for devices that initialize the structure without using the macros in gdevprn.h or access the printer-specific procedures directly, is a NON-BACKWARD-COMPATIBLE change. (gdevprn.h, gxclist.h, gxdevice.h, gdevdflt.c, gdevprn.c, gxclread.c) Speeds up handling of rotated or halftoned masked images. (gximage2.c) Adds an output_page procedure to the bounding box device, for testing. (gdevbbox.c) Adds a sample device that keeps track of the "render algorithm", for PCL5c emulation. (gdevrrgb.c)Version 3.68 patch 4 (5/23/96)
More minor bug fixes, mostly related to the MS Windows implementation.Documentation
Further updates various doc files to make them more useful to new users. (NEWS, README, current.doc, helpers.doc, new-user.doc) Adds user-contributed documentation for ps2pdf. (ps2pdf.doc, unix-end.mak) Documents a bug in the Borland C++ 4.52 compiler, and where to find the patch for it. (make.doc)Procedures
Fixes bugs: - A command line exceeded the MS-DOS 120 character limit. (devs.mak) A file was accidentally omitted from the fileset. (wmakebat.bat)Drivers
Fixes bugs: - Many of the 'show' operators didn't work properly if the PDF writer was included in the configuration. (gs_pdfwr.ps) - x_wrap_get_bits was ridiculously slow. (It still is, but not quite as ridiculouslyrueTypuld produce in-line images that were too large. (gdevpdfi.c) - The PDF writer didn't scale explicit character and word spacing (ashow/widthshow/awidthshow) properly. (gdevpdft.c) - The PDF writer didn't copy named destination or article title strings, possibly leading to dangling pointers. (gdevpdf.c, gdevpdfm.c) - The PDF writer produced incorrect output for re-encoded fonts. (It now converts any string containing characters in non-standard positions to bitmaps; this will be fixed in a later release.) (gs_pdfwr.ps, gdevpdfx.h, gdevpdfp.c, gdevpdft.c) Updates a few drivers for the change in the handling of band device procedures. (gdevcp50.c, gdevdjet.c) Updates the X Windows driver for strip halftones. (gdevx.c) Adds anti-aliasing capability to the os2pm device. (gdevpm.c) Increases the sizes of some tables in the PDF writer. (gdevpdfx.h)Platforms
Fixes bugs: - A patch for the MS Windows platform was accidentally omitted. (gp_mswin.c) - A block of code was accidentally duplicated. (dwmain.cpp) - An identifier exceeded VAX VMS C's limit of 31 characters. (gscspace.h) - File name enumeration didn't work properly on Unix systems (still/again). (gp_unifs.c) - On MS Windows, If you closed Ghostscript with the system menu, you only closed the text window; Ghostscript kept running and you had to use the task manager to kill it. (dwmain.cpp, dwmainc.cpp, dwtext.cpp) - Some DLL-related typedefs were not consistent. (dwdll.h, gsdll.h, dpmainc.c, dwdll.cpp) - Attempts to call the DLL before it was initialized were not detected. (gsdll.c) - Bitmap line lengths were rounded up even on 32-bit Windows, which doesn't want this. (gdevwdib.c) Further improves the handling of attempts to use the DLL when it is already in use. (dwdll.cpp, gsdll.c) Adds a DLL-compatible main program for OS/2. (dpmainc.c, gp_os2.c, gsdll.c)Fonts
Fixes bugs: - The WingDings TrueType font wasn't loaded properly. (gs_ttf.ps) Makes changes so that TrueType fonts can appear in the Fontmap and can be loaded directly. (gs_fonts.ps, gs_ttf.ps)Interpreter
Fixes bugs: - Executing a .quit with only 1 element on the operand stack caused an invalid access. (zcontrol.c) - The usage help message contained incorrect double %%s. (imainarg.c) - If an initialization file tried to use any Encodings other than the 4 registered ones, it couldn't find them. (gs_init.ps, gs_res.ps) - Places that expected arrays of coordinates (rectangles, x/y/xyshow) didn't accept packed arrays. (ibnum.c, zdps1.c) - filterdict was still visible after initialization. (gs_init.ps) - The usage error message wasn't terminated by a newline. (imainarg.c) - setcacheparams (or setting the MaxFontCache user parameter) didn't actually affect the size of the character cache. (zfont.c, zmisc2.c) - The main interpreter loop declared iref as a ref *, even though it may only be a ref_packed *. (iref.h, interp.c) Changes the character cache so it ignores absurd FontBBox values. Nothing in the Adobe spec suggests doing this, but it is necessary for handling questionable output produced by PageMaker 5.0 (an Adobe product!). (zchar1.c) Changes some type declarations slightly to reduce the number of 'discarding const' compiler warnings. (igc.h, igc.c, igcref.c) Adds .setclipoutside and .currentclipoutside operators for accessing the new outside clipping capability. (zpath.c) Adds the dictionary stack to the information printed in case of a fatal problem. (imain.c) Adds .set/currentrenderalgorithm operators for testing. (zrop.c)Library
Fixes bugs: - The TrueType rasterizer didn't map quadratic to cubic splines well, and didn't handle off-curve points at the end of a contour properly. (gstype42.c) - An #include was omitted. (gsimage.c, gxclimag.c) - Some compilers complained about statements with no effect, or comma operators with no effect on the left. (gschar.c, gxcpath.c, gxfill.c) - TrueType or Type 42 glyphs with a repeat count that crossed a contour boundary produced incorrect output. (gstype42.c) - TrueType / Type 42 composite glyphs involving rotation were placed incorrectly. (gstype42.c) - Type 42 fonts with an absent or incorrect FontBBox could fail to produce output. (gstype42.c) - Some header files weren't protected against double inclusion. (gsio.h, gdebug.h) - Decoding filters didn't "look ahead" to detect EOD, so if the last read operation before closing the filter ended just before the EOD mark, the EOD mark might not be absorbed. (stream.h, stream.c) - Filling paths consisting of multiple subpaths that overlap in Y produced slightly inaccurate output. We were unable to find a way to fix this without making a NON-BACKWARD-COMPATIBLE change in the interface for the recently introduced fill_trapezoid device procedure. (gxdevice.h, gdevbbox.c, gdevddrw.c, gdevnfwd.c, gxfill.c) - When banding, get_bits didn't detect calls with out-of-range Y values. (gxclread.c) - setcacheparams didn't actually affect the size of the character cache. (gsfont.h, gxbcache.h, gxfcache.h, gschar.c, gsfont.c, gxbcache.c, gxccman.c, gxclbits.c) - When banding, colored halftones could be mangled. (gxclread.c) Fixes bugs in the bounding box device: - The bounding box device could give bizarre results if any objects crossed the lower edge of the page. (gdevbbox.c) - The bounding box device could get a memory access error when processing image data. (gdebbox.c) - The bounding box device ran the default drawing algorithms even if it had no target (performance bug only). (gdevbbox.c) - The bounding box device computed an incorrect (too small) box for partially clipped bitmap images. (gdevbbox.c) - The bounding box device got confused by files that filled the entire page with a background color. (gdevbbox.c) - The bounding box device produced infinite-height boxes for certain kinds of data. (gdevbbox.c) Changes some type declarations slightly to reduce the number of 'discarding const' compiler warnings. (gsmemory.h, gsstruct.h) Adds the capability of clipping to the outside rather than the inside of the clipping path. This is required for emulating an obscure feature of the Microsoft Windows GDI. (gspath.h, gxclpath.h, gxpath.h, gxcpath.h, gzcpath.h, gspath.c, gxacpath.c, gxclpath.c, gxclread.c, gxcpath.c.) Makes it possible for band devices to select the underlying memory device used to accumulate the actual bits. This is required for (at least) PCL5 emulation. This requires adding a procedure to the gx_device_printer structure, which, for devices that initialize the structure without using the macros in gdevprn.h or access the printer-specific procedures directly, is a NON-BACKWARD-COMPATIBLE change. (gdevprn.h, gxclist.h, gxdevice.h, gdevdflt.c, gdevprn.c, gxclread.c) Speeds up handling of rotated or halftoned masked images. (gximage2.c) Adds an output_page procedure to the bounding box device, for testing. (gdevbbox.c) Adds a sample device that keeps track of the "render algorithm", for PCL5c emulation. (gdevrrgb.c)Version 3.68 patch 4 (5/23/96)
More minor bug fixes, mostly related to the MS Windows implementation.Documentation
Further updates various doc files to make them more useful to new users. (NEWS, README, current.doc, helpers.doc, new-user.doc) Adds user-contributed documentation for ps2pdf. (ps2pdf.doc, unix-end.mak) Documents a bug in the Borland C++ 4.52 compiler, and where to find the patch for it. (make.doc)Procedures
Fixes bugs: - A command line exceeded the MS-DOS 120 character limit. (devs.mak) A file was accidentally omitted from the fileset. (wmakebat.bat)Drivers
Fixes bugs: - Many of the 'show' operators didn't work properly if the PDF writer was included in the configuration. (gs_pdfwr.ps) - x_wrap_get_bits was ridiculously slow. (It still is, but not quite as ridiculouslyrueTypuld produce in-line images that were too large. (gdevpdfi.c) - The PDF writer didn't scale explicit character and word spacing (ashow/widthshow/awidthshow) properly. (gdevpdft.c) - The PDF writer didn't copy named destination or article title strings, possibly leading to dangling pointers. (gdevpdf.c, gdevpdfm.c) - The PDF writer produced incorrect output for re-encoded fonts. (It now converts any string containing characters in non-standard positions to bitmaps; this will be fixed in a later release.) (gs_pdfwr.ps, gdevpdfx.h, gdevpdfp.c, gdevpdft.c) Updates a few drivers for the change in the handling of band device procedures. (gdevcp50.c, gdevdjet.c) Updates the X Windows driver for strip halftones. (gdevx.c) Adds anti-aliasing capability to the os2pm device. (gdevpm.c) Increases the sizes of some tables in the PDF writer. (gdevpdfx.h)Platforms
Fixes bugs: - A patch for the MS Windows platform was accidentally omitted. (gp_mswin.c) - A block of code was accidentally duplicated. (dwmain.cpp) - An identifier exceeded VAX VMS C's limit of 31 characters. (gscspace.h) - File name enumeration didn't work properly on Unix systems (still/again). (gp_unifs.c) - On MS Windows, If you closed Ghostscript with the system menu, you only closed the text window; Ghostscript kept running and you had to use the task manager to kill it. (dwmain.cpp, dwmainc.cpp, dwtext.cpp) - Some DLL-related typedefs were not consistent. (dwdll.h, gsdll.h, dpmainc.c, dwdll.cpp) - Attempts to call the DLL before it was initialized were not detected. (gsdll.c) - Bitmap line lengths were rounded up even on 32-bit Windows, which doesn't want this. (gdevwdib.c) Further improves the handling of attempts to use the DLL when it is already in use. (dwdll.cpp, gsdll.c) Adds a DLL-compatible main program for OS/2. (dpmainc.c, gp_os2.c, gsdll.c)Fonts
Fixes bugs: - The WingDings TrueType font wasn't loaded properly. (gs_ttf.ps) Makes changes so that TrueType fonts can appear in the Fontmap and can be loaded directly. (gs_fonts.ps, gs_ttf.ps)Interpreter
Fixes bugs: - Executing a .quit with only 1 element on the operand stack caused an invalid access. (zcontrol.c) - The usage help message contained incorrect double %%s. (imainarg.c) - If an initialization file tried to use any Encodings other than the 4 registered ones, it couldn't find them. (gs_init.ps, gs_res.ps) - Places that expected arrays of coordinates (rectangles, x/y/xyshow) didn't accept packed arrays. (ibnum.c, zdps1.c) - filterdict was still visible after initialization. (gs_init.ps) - The usage error message wasn't terminated by a newline. (imainarg.c) - setcacheparams (or setting the MaxFontCache user parameter) didn't actually affect the size of the character cache. (zfont.c, zmisc2.c) - The main interpreter loop declared iref as a ref *, even though it may only be a ref_packed *. (iref.h, interp.c) Changes the character cache so it ignores absurd FontBBox values. Nothing in the Adobe spec suggests doing this, but it is necessary for handling questionable output produced by PageMaker 5.0 (an Adobe product!). (zchar1.c) Changes some type declarations slightly to reduce the number of 'discarding const' compiler warnings. (igc.h, igc.c, igcref.c) Adds .setclipoutside and .currentclipoutside operators for accessing the new outside clipping capability. (zpath.c) Adds the dictionary stack to the information printed in case of a fatal problem. (imain.c) Adds .set/currentrenderalgorithm operators for testing. (zrop.c)Library
Fixes bugs: - The TrueType rasterizer didn't map quadratic to cubic splines well, and didn't handle off-curve points at the end of a contour properly. (gstype42.c) - An #include was omitted. (gsimage.c, gxclimag.c) - Some compilers complained about statements with no effect, or comma operators with no effect on the left. (gschar.c, gxcpath.c, gxfill.c) - TrueType or Type 42 glyphs with a repeat count that crossed a contour boundary produced incorrect output. (gstype42.c) - TrueType / Type 42 composite glyphs involving rotation were placed incorrectly. (gstype42.c) - Type 42 fonts with an absent or incorrect FontBBox could fail to produce output. (gstype42.c) - Some header files weren't protected against double inclusion. (gsio.h, gdebug.h) - Decoding filters didn't "look ahead" to detect EOD, so if the last read operation before closing the filter ended just before the EOD mark, the EOD mark might not be absorbed. (stream.h, stream.c) - Filling paths consisting of multiple subpaths that overlap in Y produced slightly inaccurate output. We were unable to find a way to fix this without making a NON-BACKWARD-COMPATIBLE change in the interface for the recently introduced fill_trapezoid device procedure. (gxdevice.h, gdevbbox.c, gdevddrw.c, gdevnfwd.c, gxfill.c) - When banding, get_bits didn't detect calls with out-of-range Y values. (gxclread.c) - setcacheparams didn't actually affect the size of the character cache. (gsfont.h, gxbcache.h, gxfcache.h, gschar.c, gsfont.c, gxbcache.c, gxccman.c, gxclbits.c) - When banding, colored halftones could be mangled. (gxclread.c) Fixes bugs in the bounding box device: - The bounding box device could give bizarre results if any objects crossed the lower edge of the page. (gdevbbox.c) - The bounding box device could get a memory access error when processing image data. (gdebbox.c) - The bounding box device ran the default drawing algorithms even if it had no target (performance bug only). (gdevbbox.c) - The bounding box device computed an incorrect (too small) box for partially clipped bitmap images. (gdevbbox.c) - The bounding box device got confused by files that filled the entire page with a background color. (gdevbbox.c) - The bounding box device produced infinite-height boxes for certain kinds of data. (gdevbbox.c) Changes some type declarations slightly to reduce the number of 'discarding const' compiler warnings. (gsmemory.h, gsstruct.h) Adds the capability of clipping to the outside rather than the inside of the clipping path. This is required for emulating an obscure feature of the Microsoft Windows GDI. (gspath.h, gxclpath.h, gxpath.h, gxcpath.h, gzcpath.h, gspath.c, gxacpath.c, gxclpath.c, gxclread.c, gxcpath.c.) Makes it possible for band devices to select the underlying memory device used to accumulate the actual bits. This is required for (at least) PCL5 emulation. This requires adding a procedure to the gx_device_printer structure, which, for devices that initialize the structure without using the macros in gdevprn.h or access the printer-specific procedures directly, is a NON-BACKWARD-COMPATIBLE change. (gdevprn.h, gxclist.h, gxdevice.h, gdevdflt.c, gdevprn.c, gxclread.c) Speeds up handling of rotated or halftoned masked images. (gximage2.c) Adds an output_page procedure to the bounding box device, for testing. (gdevbbox.c) Adds a sample device that keeps track of the "render algorithm", for PCL5c emulation. (gdevrrgb.c)Version 3.68 patch 4 (5/23/96)
More minor bug fixes, mostly related to the MS Windows implementation.Documentation
Further updates various doc files to make them more useful to new users. (NEWS, README, current.doc, helpers.doc, new-user.doc) Adds user-contributed documentation for ps2pdf. (ps2pdf.doc, unix-end.mak) Documents a bug in the Borland C++ 4.52 compiler, and where to find the patch for it. (make.doc)Procedures
Fixes bugs: - A command line exceeded the MS-DOS 120 character limit. (devs.mak) A file was accidentally omitted from the fileset. (wmakebat.bat)Drivers
Fixes bugs: - Many of the 'show' operators didn't work properly if the PDF writer was included in the configuration. (gs_pdfwr.ps) - x_wrap_get_bits was ridiculously slow. (It still is, but not quite as ridiculouslyrueTypuld produce in-line images that were too large. (gdevpdfi.c) - The PDF writer didn't scale explicit character and word spacing (ashow/widthshow/awidthshow) properly. (gdevpdft.c) - The PDF writer didn't copy named destination or article title strings, possibly leading to dangling pointers. (gdevpdf.c, gdevpdfm.c) - The PDF writer produced incorrect output for re-encoded fonts. (It now converts any string containing characters in non-standard positions to bitmaps; this will be fixed in a later release.) (gs_pdfwr.ps, gdevpdfx.h, gdevpdfp.c, gdevpdft.c) Updates a few drivers for the change in the handling of band device procedures. (gdevcp50.c, gdevdjet.c) Updates the X Windows driver for strip halftones. (gdevx.c) Adds anti-aliasing capability to the os2pm device. (gdevpm.c) Increases the sizes of some tables in the PDF writer. (gdevpdfx.h)Platforms
Fixes bugs: - A patch for the MS Windows platform was accidentally omitted. (gp_mswin.c) - A block of code was accidentally duplicated. (dwmain.cpp) - An identifier exceeded VAX VMS C's limit of 31 characters. (gscspace.h) - File name enumeration didn't work properly on Unix systems (still/again). (gp_unifs.c) - On MS Windows, If you closed Ghostscript with the system menu, you only closed the text window; Ghostscript kept running and you had to use the task manager to kill it. (dwmain.cpp, dwmainc.cpp, dwtext.cpp) - Some DLL-related typedefs were not consistent. (dwdll.h, gsdll.h, dpmainc.c, dwdll.cpp) - Attempts to call the DLL before it was initialized were not detected. (gsdll.c) - Bitmap line lengths were rounded up even on 32-bit Windows, which doesn't want this. (gdevwdib.c) Further improves the handling of attempts to use the DLL when it is already in use. (dwdll.cpp, gsdll.c) Adds a DLL-compatible main program for OS/2. (dpmainc.c, gp_os2.c, gsdll.c)Fonts
Fixes bugs: - The WingDings TrueType font wasn't loaded properly. (gs_ttf.ps) Makes changes so that TrueType fonts can appear in the Fontmap and can be loaded directly. (gs_fonts.ps, gs_ttf.ps)Interpreter
Fixes bugs: - Executing a .quit with only 1 element on the operand stack caused an invalid access. (zcontrol.c) - The usage help message contained incorrect double %%s. (imainarg.c) - If an initialization file tried to use any Encodings other than the 4 registered ones, it couldn't find them. (gs_init.ps, gs_res.ps) - Places that expected arrays of coordinates (rectangles, x/y/xyshow) didn't accept packed arrays. (ibnum.c, zdps1.c) - filterdict was still visible after initialization. (gs_init.ps) - The usage error message wasn't terminated by a newline. (imainarg.c) - setcacheparams (or setting the MaxFontCache user parameter) didn't actually affect the size of the character cache. (zfont.c, zmisc2.c) - The main interpreter loop declared iref as a ref *, even though it may only be a ref_packed *. (iref.h, interp.c) Changes the character cache so it ignores absurd FontBBox values. Nothing in the Adobe spec suggests doing this, but it is necessary for handling questionable output produced by PageMaker 5.0 (an Adobe product!). (zchar1.c) Changes some type declarations slightly to reduce the number of 'discarding const' compiler warnings. (igc.h, igc.c, igcref.c) Adds .setclipoutside and .currentclipoutside operators for accessing the new outside clipping capability. (zpath.c) Adds the dictionary stack to the information printed in case of a fatal problem. (imain.c) Adds .set/currentrenderalgorithm operators for testing. (zrop.c)Library
Fixes bugs: - The TrueType rasterizer didn't map quadratic to cubic splines well, and didn't handle off-curve points at the end of a contour properly. (gstype42.c) - An #include was omitted. (gsimage.c, gxclimag.c) - Some compilers complained about statements with no effect, or comma operators with no effect on the left. (gschar.c, gxcpath.c, gxfill.c) - TrueType or Type 42 glyphs with a repeat count that crossed a contour boundary produced incorrect output. (gstype42.c) - TrueType / Type 42 composite glyphs involving rotation were placed incorrectly. (gstype42.c) - Type 42 fonts with an absent or incorrect FontBBox could fail to produce output. (gstype42.c) - Some header files weren't protected against double inclusion. (gsio.h, gdebug.h) - Decoding filters didn't "look ahead" to detect EOD, so if the last read operation before closing the filter ended just before the EOD mark, the EOD mark might not be absorbed. (stream.h, stream.c) - Filling paths consisting of multiple subpaths that overlap in Y produced slightly inaccurate output. We were unable to find a way to fix this without making a NON-BACKWARD-COMPATIBLE change in the interface for the recently introduced fill_trapezoid device procedure. (gxdevice.h, gdevbbox.c, gdevddrw.c, gdevnfwd.c, gxfill.c) - When banding, get_bits didn't detect calls with out-of-range Y values. (gxclread.c) - setcacheparams didn't actually affect the size of the character cache. (gsfont.h, gxbcache.h, gxfcache.h, gschar.c, gsfont.c, gxbcache.c, gxccman.c, gxclbits.c) - When banding, colored halftones could be mangled. (gxclread.c) Fixes bugs in the bounding box device: - The bounding box device could give bizarre results if any objects crossed the lower edge of the page. (gdevbbox.c) - The bounding box device could get a memory access error when processing image data. (gdebbox.c) - The bounding box device ran the default drawing algorithms even if it had no target (performance bug only). (gdevbbox.c) - The bounding box device computed an incorrect (too small) box for partially clipped bitmap images. (gdevbbox.c) - The bounding box device got confused by files that filled the entire page with a background color. (gdevbbox.c) - The bounding box device produced infinite-height boxes for certain kinds of data. (gdevbbox.c) Changes some type declarations slightly to reduce the number of 'discarding const' compiler warnings. (gsmemory.h, gsstruct.h) Adds the capability of clipping to the outside rather than the inside of the clipping path. This is required for emulating an obscure feature of the Microsoft Windows GDI. (gspath.h, gxclpath.h, gxpath.h, gxcpath.h, gzcpath.h, gspath.c, gxacpath.c, gxclpath.c, gxclread.c, gxcpath.c.) Makes it possible for band devices to select the underlying memory device used to accumulate the actual bits. This is required for (at least) PCL5 emulation. This requires adding a procedure to the gx_device_printer structure, which, for devices that initialize the structure without using the macros in gdevprn.h or access the printer-specific procedures directly, is a NON-BACKWARD-COMPATIBLE change. (gdevprn.h, gxclist.h, gxdevice.h, gdevdflt.c, gdevprn.c, gxclread.c) Speeds up handling of rotated or halftoned masked images. (gximage2.c) Adds an output_page procedure to the bounding box device, for testing. (gdevbbox.c) Adds a sample device that keeps track of the "render algorithm", for PCL5c emulation. (gdevrrgb.c)Version 3.68 patch 4 (5/23/96)
More minor bug fixes, mostly related to the MS Windows implementation.Documentation
Further updates various doc files to make them more useful to new users. (NEWS, README, current.doc, helpers.doc, new-user.doc) Adds user-contributed documentation for ps2pdf. (ps2pdf.doc, unix-end.mak) Documents a bug in the Borland C++ 4.52 compiler, and where to find the patch for it. (make.doc)Procedures
Fixes bugs: - A command line exceeded the MS-DOS 120 character limit. (devs.mak) A file was accidentally omitted from the fileset. (wmakebat.bat)Drivers
Fixes bugs: - Many of the 'show' operators didn't work properly if the PDF writer was included in the configuration. (gs_pdfwr.ps) - x_wrap_get_bits was ridiculously slow. (It still is, but not quite as ridiculouslyrueTypuld produce in-line images that were too large. (gdevpdfi.c) - The PDF writer didn't scale explicit character and word spacing (ashow/widthshow/awidthshow) properly. (gdevpdft.c) - The PDF writer didn't copy named destination or article title strings, possibly leading to dangling pointers. (gdevpdf.c, gdevpdfm.c) - The PDF writer produced incorrect output for re-encoded fonts. (It now converts any string containing characters in non-standard positions to bitmaps; this will be fixed in a later release.) (gs_pdfwr.ps, gdevpdfx.h, gdevpdfp.c, gdevpdft.c) Updates a few drivers for the change in the handling of band device procedures. (gdevcp50.c, gdevdjet.c) Updates the X Windows driver for strip halftones. (gdevx.c) Adds anti-aliasing capability to the os2pm device. (gdevpm.c) Increases the sizes of some tables in the PDF writer. (gdevpdfx.h)Platforms
Fixes bugs: - A patch for the MS Windows platform was accidentally omitted. (gp_mswin.c) - A block of code was accidentally duplicated. (dwmain.cpp) - An identifier exceeded VAX VMS C's limit of 31 characters. (gscspace.h) - File name enumeration didn't work properly on Unix systems (still/again). (gp_unifs.c) - On MS Windows, If you closed Ghostscript with the system menu, you only closed the text window; Ghostscript kept running and you had to use the task manager to kill it. (dwmain.cpp, dwmainc.cpp, dwtext.cpp) - Some DLL-related typedefs were not consistent. (dwdll.h, gsdll.h, dpmainc.c, dwdll.cpp) - Attempts to call the DLL before it was initialized were not detected. (gsdll.c) - Bitmap line lengths were rounded up even on 32-bit Windows, which doesn't want this. (gdevwdib.c) Further improves the handling of attempts to use the DLL when it is already in use. (dwdll.cpp, gsdll.c) Adds a DLL-compatible main program for OS/2. (dpmainc.c, gp_os2.c, gsdll.c)Fonts
Fixes bugs: - The WingDings TrueType font wasn't loaded properly. (gs_ttf.ps) Makes changes so that TrueType fonts can appear in the Fontmap and can be loaded directly. (gs_fonts.ps, gs_ttf.ps)Interpreter
Fixes bugs: - Executing a .quit with only 1 element on the operand stack caused an invalid access. (zcontrol.c) - The usage help message contained incorrect double %%s. (imainarg.c) - If an initialization file tried to use any Encodings other than the 4 registered ones, it couldn't find them. (gs_init.ps, gs_res.ps) - Places that expected arrays of coordinates (rectangles, x/y/xyshow) didn't accept packed arrays. (ibnum.c, zdps1.c) - filterdict was still visible after initialization. (gs_init.ps) - The usage error message wasn't terminated by a newline. (imainarg.c) - setcacheparams (or setting the MaxFontCache user parameter) didn't actually affect the size of the character cache. (zfont.c, zmisc2.c) - The main interpreter loop declared iref as a ref *, even though it may only be a ref_packed *. (iref.h, interp.c) Changes the character cache so it ignores absurd FontBBox values. Nothing in the Adobe spec suggests doing this, but it is necessary for handling questionable output produced by PageMaker 5.0 (an Adobe product!). (zchar1.c) Changes some type declarations slightly to reduce the number of 'discarding const' compiler warnings. (igc.h, igc.c, igcref.c) Adds .setclipoutside and .currentclipoutside operators for accessing the new outside clipping capability. (zpath.c) Adds the dictionary stack to the information printed in case of a fatal problem. (imain.c) Adds .set/currentrenderalgorithm operators for testing. (zrop.c)Library
Fixes bugs: - The TrueType rasterizer didn't map quadratic to cubic splines well, and didn't handle off-curve points at the end of a contour properly. (gstype42.c) - An #include was omitted. (gsimage.c, gxclimag.c) - Some compilers complained about statements with no effect, or comma operators with no effect on the left. (gschar.c, gxcpath.c, gxfill.c) - TrueType or Type 42 glyphs with a repeat count that crossed a contour boundary produced incorrect output. (gstype42.c) - TrueType / Type 42 composite glyphs involving rotation were placed incorrectly. (gstype42.c) - Type 42 fonts with an absent or incorrect FontBBox could fail to produce output. (gstype42.c) - Some header files weren't protected against double inclusion. (gsio.h, gdebug.h) - Decoding filters didn't "look ahead" to detect EOD, so if the last read operation before closing the filter ended just before the EOD mark, the EOD mark might not be absorbed. (stream.h, stream.c) - Filling paths consisting of multiple subpaths that overlap in Y produced slightly inaccurate output. We were unable to find a way to fix this without making a NON-BACKWARD-COMPATIBLE change in the interface for the recently introduced fill_trapezoid device procedure. (gxdevice.h, gdevbbox.c, gdevddrw.c, gdevnfwd.c, gxfill.c) - When banding, get_bits didn't detect calls with out-of-range Y values. (gxclread.c) - setcacheparams didn't actually affect the size of the character cache. (gsfont.h, gxbcache.h, gxfcache.h, gschar.c, gsfont.c, gxbcache.c, gxccman.c, gxclbits.c) - When banding, colored halftones could be mangled. (gxclread.c) Fixes bugs in the bounding box device: - The bounding box device could give bizarre results if any objects crossed the lower edge of the page. (gdevbbox.c) - The bounding box device could get a memory access error when processing image data. (gdebbox.c) - The bounding box device ran the default drawing algorithms even if it had no target (performance bug only). (gdevbbox.c) - The bounding box device computed an incorrect (too small) box for partially clipped bitmap images. (gdevbbox.c) - The bounding box device got confused by files that filled the entire page with a background color. (gdevbbox.c) - The bounding box device produced infinite-height boxes for certain kinds of data. (gdevbbox.c) Changes some type declarations slightly to reduce the number of 'discarding const' compiler warnings. (gsmemory.h, gsstruct.h) Adds the capability of clipping to the outside rather than the inside of the clipping path. This is required for emulating an obscure feature of the Microsoft Windows GDI. (gspath.h, gxclpath.h, gxpath.h, gxcpath.h, gzcpath.h, gspath.c, gxacpath.c, gxclpath.c, gxclread.c, gxcpath.c.) Makes it possible for band devices to select the underlying memory device used to accumulate the actual bits. This is required for (at least) PCL5 emulation. This requires adding a procedure to the gx_device_printer structure, which, for devices that initialize the structure without using the macros in gdevprn.h or access the printer-specific procedures directly, is a NON-BACKWARD-COMPATIBLE change. (gdevprn.h, gxclist.h, gxdevice.h, gdevdflt.c, gdevprn.c, gxclread.c) Speeds up handling of rotated or halftoned masked images. (gximage2.c) Adds an output_page procedure to the bounding box device, for testing. (gdevbbox.c) Adds a sample device that keeps track of the "render algorithm", for PCL5c emulation. (gdevrrgb.c)Version 3.68 patch 4 (5/23/96)
More minor bug fixes, mostly related to the MS Windows implementation.Documentation
Further updates various doc files to make them more useful to new users. (NEWS, README, current.doc, helpers.doc, new-user.doc) Adds user-contributed documentation for ps2pdf. (ps2pdf.doc, unix-end.mak) Documents a bug in the Borland C++ 4.52 compiler, and where to find the patch for it. (make.doc)Procedures
Fixes bugs: - A command line exceeded the MS-DOS 120 character limit. (devs.mak) A file was accidentally omitted from the fileset. (wmakebat.bat)Drivers
Fixes bugs: - Many of the 'show' operators didn't work properly if the PDF writer was included in the configuration. (gs_pdfwr.ps) - x_wrap_get_bits was ridiculously slow. (It still is, but not quite as ridiculouslyrueTypuld produce in-line images that were too large. (gdevpdfi.c) - The PDF writer didn't scale explicit character and word spacing (ashow/widthshow/awidthshow) properly. (gdevpdft.c) - The PDF writer didn't copy named destination or article title strings, possibly leading to dangling pointers. (gdevpdf.c, gdevpdfm.c) - The PDF writer produced incorrect output for re-encoded fonts. (It now converts any string containing characters in non-standard positions to bitmaps; this will be fixed in a later release.) (gs_pdfwr.ps, gdevpdfx.h, gdevpdfp.c, gdevpdft.c) Updates a few drivers for the change in the handling of band device procedures. (gdevcp50.c, gdevdjet.c) Updates the X Windows driver for strip halftones. (gdevx.c) Adds anti-aliasing capability to the os2pm device. (gdevpm.c) Increases the sizes of some tables in the PDF writer. (gdevpdfx.h)Platforms
Fixes bugs: - A patch for the MS Windows platform was accidentally omitted. (gp_mswin.c) - A block of code was accidentally duplicated. (dwmain.cpp) - An identifier exceeded VAX VMS C's limit of 31 characters. (gscspace.h) - File name enumeration didn't work properly on Unix systems (still/again). (gp_unifs.c) - On MS Windows, If you closed Ghostscript with the system menu, you only closed the text window; Ghostscript kept running and you had to use the task manager to kill it. (dwmain.cpp, dwmainc.cpp, dwtext.cpp) - Some DLL-related typedefs were not consistent. (dwdll.h, gsdll.h, dpmainc.c, dwdll.cpp) - Attempts to call the DLL before it was initialized were not detected. (gsdll.c) - Bitmap line lengths were rounded up even on 32-bit Windows, which doesn't want this. (gdevwdib.c) Further improves the handling of attempts to use the DLL when it is already in use. (dwdll.cpp, gsdll.c) Adds a DLL-compatible main program for OS/2. (dpmainc.c, gp_os2.c, gsdll.c)Fonts
Fixes bugs: - The WingDings TrueType font wasn't loaded properly. (gs_ttf.ps) Makes changes so that TrueType fonts can appear in the Fontmap and can be loaded directly. (gs_fonts.ps, gs_ttf.ps)Interpreter
Fixes bugs: - Executing a .quit with only 1 element on the operand stack caused an invalid access. (zcontrol.c) - The usage help message contained incorrect double %%s. (imainarg.c) - If an initialization file tried to use any Encodings other than the 4 registered ones, it couldn't find them. (gs_init.ps, gs_res.ps) - Places that expected arrays of coordinates (rectangles, x/y/xyshow) didn't accept packed arrays. (ibnum.c, zdps1.c) - filterdict was still visible after initialization. (gs_init.ps) - The usage error message wasn't terminated by a newline. (imainarg.c) - setcacheparams (or setting the MaxFontCache user parameter) didn't actually affect the size of the character cache. (zfont.c, zmisc2.c) - The main interpreter loop declared iref as a ref *, even though it may only be a ref_packed *. (iref.h, interp.c) Changes the character cache so it ignores absurd FontBBox values. Nothing in the Adobe spec suggests doing this, but it is necessary for handling questionable output produced by PageMaker 5.0 (an Adobe product!). (zchar1.c) Changes some type declarations slightly to reduce the number of 'discarding const' compiler warnings. (igc.h, igc.c, igcref.c) Adds .setclipoutside and .currentclipoutside operators for accessing the new outside clipping capability. (zpath.c) Adds the dictionary stack to the information printed in case of a fatal problem. (imain.c) Adds .set/currentrenderalgorithm operators for testing. (zrop.c)Library
Fixes bugs: - The TrueType rasterizer didn't map quadratic to cubic splines well, and didn't handle off-curve points at the end of a contour properly. (gstype42.c) - An #include was omitted. (gsimage.c, gxclimag.c) - Some compilers complained about statements with no effect, or comma operators with no effect on the left. (gschar.c, gxcpath.c, gxfill.c) - TrueType or Type 42 glyphs with a repeat count that crossed a contour boundary produced incorrect output. (gstype42.c) - TrueType / Type 42 composite glyphs involving rotation were placed incorrectly. (gstype42.c) - Type 42 fonts with an absent or incorrect FontBBox could fail to produce output. (gstype42.c) - Some header files weren't protected against double inclusion. (gsio.h, gdebug.h) - Decoding filters didn't "look ahead" to detect EOD, so if the last read operation before closing the filter ended just before the EOD mark, the EOD mark might not be absorbed. (stream.h, stream.c) - Filling paths consisting of multiple subpaths that overlap in Y produced slightly inaccurate output. We were unable to find a way to fix this without making a NON-BACKWARD-COMPATIBLE change in the interface for the recently introduced fill_trapezoid device procedure. (gxdevice.h, gdevbbox.c, gdevddrw.c, gdevnfwd.c, gxfill.c) - When banding, get_bits didn't detect calls with out-of-range Y values. (gxclread.c) - setcacheparams didn't actually affect the size of the character cache. (gsfont.h, gxbcache.h, gxfcache.h, gschar.c, gsfont.c, gxbcache.c, gxccman.c, gxclbits.c) - When banding, colored halftones could be mangled. (gxclread.c) Fixes bugs in the bounding box device: - The bounding box device could give bizarre results if any objects crossed the lower edge of the page. (gdevbbox.c) - The bounding box device could get a memory access error when processing image data. (gdebbox.c) - The bounding box device ran the default drawing algorithms even if it had no target (performance bug only). (gdevbbox.c) - The bounding box device computed an incorrect (too small) box for partially clipped bitmap images. (gdevbbox.c) - The bounding box device got confused by files that filled the entire page with a background color. (gdevbbox.c) - The bounding box device produced infinite-height boxes for certain kinds of data. (gdevbbox.c) Changes some type declarations slightly to reduce the number of 'discarding const' compiler warnings. (gsmemory.h, gsstruct.h) Adds the capability of clipping to the outside rather than the inside of the clipping path. This is required for emulating an obscure feature of the Microsoft Windows GDI. (gspath.h, gxclpath.h, gxpath.h, gxcpath.h, gzcpath.h, gspath.c, gxacpath.c, gxclpath.c, gxclread.c, gxcpath.c.) Makes it possible for band devices to select the underlying memory device used to accumulate the actual bits. This is required for (at least) PCL5 emulation. This requires adding a procedure to the gx_device_printer structure, which, for devices that initialize the structure without using the macros in gdevprn.h or access the printer-specific procedures directly, is a NON-BACKWARD-COMPATIBLE change. (gdevprn.h, gxclist.h, gxdevice.h, gdevdflt.c, gdevprn.c, gxclread.c) Speeds up handling of rotated or halftoned masked images. (gximage2.c) Adds an output_page procedure to the bounding box device, for testing. (gdevbbox.c) Adds a sample device that keeps track of the "render algorithm", for PCL5c emulation. (gdevrrgb.c)Version 3.68 patch 4 (5/23/96)
More minor bug fixes, mostly related to the MS Windows implementation.Documentation
Further updates various doc files to make them more useful to new users. (NEWS, README, current.doc, helpers.doc, new-user.doc) Adds user-contributed documentation for ps2pdf. (ps2pdf.doc, unix-end.mak) Documents a bug in the Borland C++ 4.52 compiler, and where to find the patch for it. (make.doc)Procedures
Fixes bugs: - A command line exceeded the MS-DOS 120 character limit. (devs.mak) A file was accidentally omitted from the fileset. (wmakebat.bat)Drivers
Fixes bugs: - Many of the 'show' operators didn't work properly if the PDF writer was included in the configuration. (gs_pdfwr.ps) - x_wrap_get_bits was ridiculously slow. (It still is, but not quite as ridiculouslyrueTypuld produce in-line images that were too large. (gdevpdfi.c) - The PDF writer didn't scale explicit character and word spacing (ashow/widthshow/awidthshow) properly. (gdevpdft.c) - The PDF writer didn't copy named destination or article title strings, possibly leading to dangling pointers. (gdevpdf.c, gdevpdfm.c) - The PDF writer produced incorrect output for re-encoded fonts. (It now converts any string containing characters in non-standard positions to bitmaps; this will be fixed in a later release.) (gs_pdfwr.ps, gdevpdfx.h, gdevpdfp.c, gdevpdft.c) Updates a few drivers for the change in the handling of band device procedures. (gdevcp50.c, gdevdjet.c) Updates the X Windows driver for strip halftones. (gdevx.c) Adds anti-aliasing capability to the os2pm device. (gdevpm.c) Increases the sizes of some tables in the PDF writer. (gdevpdfx.h)Platforms
Fixes bugs: - A patch for the MS Windows platform was accidentally omitted. (gp_mswin.c) - A block of code was accidentally duplicated. (dwmain.cpp) - An identifier exceeded VAX VMS C's limit of 31 characters. (gscspace.h) - File name enumeration didn't work properly on Unix systems (still/again). (gp_unifs.c) - On MS Windows, If you closed Ghostscript with the system menu, you only closed the text window; Ghostscript kept running and you had to use the task manager to kill it. (dwmain.cpp, dwmainc.cpp, dwtext.cpp) - Some DLL-related typedefs were not consistent. (dwdll.h, gsdll.h, dpmainc.c, dwdll.cpp) - Attempts to call the DLL before it was initialized were not detected. (gsdll.c) - Bitmap line lengths were rounded up even on 32-bit Windows, which doesn't want this. (gdevwdib.c) Further improves the handling of attempts to use the DLL when it is already in use. (dwdll.cpp, gsdll.c) Adds a DLL-compatible main program for OS/2. (dpmainc.c, gp_os2.c, gsdll.c)Fonts
Fixes bugs: - The WingDings TrueType font wasn't loaded properly. (gs_ttf.ps) Makes changes so that TrueType fonts can appear in the Fontmap and can be loaded directly. (gs_fonts.ps, gs_ttf.ps)Interpreter
Fixes bugs: - Executing a .quit with only 1 element on the operand stack caused an invalid access. (zcontrol.c) - The usage help message contained incorrect double %%s. (imainarg.c) - If an initialization file tried to use any Encodings other than the 4 registered ones, it couldn't find them. (gs_init.ps, gs_res.ps) - Places that expected arrays of coordinates (rectangles, x/y/xyshow) didn't accept packed arrays. (ibnum.c, zdps1.c) - filterdict was still visible after initialization. (gs_init.ps) - The usage error message wasn't terminated by a newline. (imainarg.c) - setcacheparams (or setting the MaxFontCache user parameter) didn't actually affect the size of the character cache. (zfont.c, zmisc2.c) - The main interpreter loop declared iref as a ref *, even though it may only be a ref_packed *. (iref.h, interp.c) Changes the character cache so it ignores absurd FontBBox values. Nothing in the Adobe spec suggests doing this, but it is necessary for handling questionable output produced by PageMaker 5.0 (an Adobe product!). (zchar1.c) Changes some type declarations slightly to reduce the number of 'discarding const' compiler warnings. (igc.h, igc.c, igcref.c) Adds .setclipoutside and .currentclipoutside operators for accessing the new outside clipping capability. (zpath.c) Adds the dictionary stack to the information printed in case of a fatal problem. (imain.c) Adds .set/currentrenderalgorithm operators for testing. (zrop.c)Library
Fixes bugs: - The TrueType rasterizer didn't map quadratic to cubic splines well, and didn't handle off-curve points at the end of a contour properly. (gstype42.c) - An #include was omitted. (gsimage.c, gxclimag.c) - Some compilers complained about statements with no effect, or comma operators with no effect on the left. (gschar.c, gxcpath.c, gxfill.c) - TrueType or Type 42 glyphs with a repeat count that crossed a contour boundary produced incorrect output. (gstype42.c) - TrueType / Type 42 composite glyphs involving rotation were placed incorrectly. (gstype42.c) - Type 42 fonts with an absent or incorrect FontBBox could fail to produce output. (gstype42.c) - Some header files weren't protected against double inclusion. (gsio.h, gdebug.h) - Decoding filters didn't "look ahead" to detect EOD, so if the last read operation before closing the filter ended just before the EOD mark, the EOD mark might not be absorbed. (stream.h, stream.c) - Filling paths consisting of multiple subpaths that overlap in Y produced slightly inaccurate output. We were unable to find a way to fix this without making a NON-BACKWARD-COMPATIBLE change in the interface for the recently introduced fill_trapezoid device procedure. (gxdevice.h, gdevbbox.c, gdevddrw.c, gdevnfwd.c, gxfill.c) - When banding, get_bits didn't detect calls with out-of-range Y values. (gxclread.c) - setcacheparams didn't actually affect the size of the character cache. (gsfont.h, gxbcache.h, gxfcache.h, gschar.c, gsfont.c, gxbcache.c, gxccman.c, gxclbits.c) - When banding, colored halftones could be mangled. (gxclread.c) Fixes bugs in the bounding box device: - The bounding box device could give bizarre results if any objects crossed the lower edge of the page. (gdevbbox.c) - The bounding box device could get a memory access error when processing image data. (gdebbox.c) - The bounding box device ran the default drawing algorithms even if it had no target (performance bug only). (gdevbbox.c) - The bounding box device computed an incorrect (too small) box for partially clipped bitmap images. (gdevbbox.c) - The bounding box device got confused by files that filled the entire page with a background color. (gdevbbox.c) - The bounding box device produced infinite-height boxes for certain kinds of data. (gdevbbox.c) Changes some type declarations slightly to reduce the number of 'discarding const' compiler warnings. (gsmemory.h, gsstruct.h) Adds the capability of clipping to the outside rather than the inside of the clipping path. This is required for emulating an obscure feature of the Microsoft Windows GDI. (gspath.h, gxclpath.h, gxpath.h, gxcpath.h, gzcpath.h, gspath.c, gxacpath.c, gxclpath.c, gxclread.c, gxcpath.c.) Makes it possible for band devices to select the underlying memory device used to accumulate the actual bits. This is required for (at least) PCL5 emulation. This requires adding a procedure to the gx_device_printer structure, which, for devices that initialize the structure without using the macros in gdevprn.h or access the printer-specific procedures directly, is a NON-BACKWARD-COMPATIBLE change. (gdevprn.h, gxclist.h, gxdevice.h, gdevdflt.c, gdevprn.c, gxclread.c) Speeds up handling of rotated or halftoned masked images. (gximage2.c) Adds an output_page procedure to the bounding box device, for testing. (gdevbbox.c) Adds a sample device that keeps track of the "render algorithm", for PCL5c emulation. (gdevrrgb.c)Version 3.68 patch 4 (5/23/96)
More minor bug fixes, mostly related to the MS Windows implementation.Documentation
Further updates various doc files to make them more useful to new users. (NEWS, README, current.doc, helpers.doc, new-user.doc) Adds user-contributed documentation for ps2pdf. (ps2pdf.doc, unix-end.mak) Documents a bug in the Borland C++ 4.52 compiler, and where to find the patch for it. (make.doc)Procedures
Fixes bugs: - A command line exceeded the MS-DOS 120 character limit. (devs.mak) A file was accidentally omitted from the fileset. (wmakebat.bat)Drivers
Fixes bugs: - Many of the 'show' operators didn't work properly if the PDF writer was included in the configuration. (gs_pdfwr.ps) - x_wrap_get_bits was ridiculously slow. (It still is, but not quite as ridiculouslyrueTypuld produce in-line images that were too large. (gdevpdfi.c) - The PDF writer didn't scale explicit character and word spacing (ashow/widthshow/awidthshow) properly. (gdevpdft.c) - The PDF writer didn't copy named destination or article title strings, possibly leading to dangling pointers. (gdevpdf.c, gdevpdfm.c) - The PDF writer produced incorrect output for re-encoded fonts. (It now converts any string containing characters in non-standard positions to bitmaps; this will be fixed in a later release.) (gs_pdfwr.ps, gdevpdfx.h, gdevpdfp.c, gdevpdft.c) Updates a few drivers for the change in the handling of band device procedures. (gdevcp50.c, gdevdjet.c) Updates the X Windows driver for strip halftones. (gdevx.c) Adds anti-aliasing capability to the os2pm device. (gdevpm.c) Increases the sizes of some tables in the PDF writer. (gdevpdfx.h)Platforms
Fixes bugs: - A patch for the MS Windows platform was accidentally omitted. (gp_mswin.c) - A block of code was accidentally duplicated. (dwmain.cpp) - An identifier exceeded VAX VMS C's limit of 31 characters. (gscspace.h) - File name enumeration didn't work properly on Unix systems (still/again). (gp_unifs.c) - On MS Windows, If you closed Ghostscript with the system menu, you only closed the text window; Ghostscript kept running and you had to use the task manager to kill it. (dwmain.cpp, dwmainc.cpp, dwtext.cpp) - Some DLL-related typedefs were not consistent. (dwdll.h, gsdll.h, dpmainc.c, dwdll.cpp) - Attempts to call the DLL before it was initialized were not detected. (gsdll.c) - Bitmap line lengths were rounded up even on 32-bit Windows, which doesn't want this. (gdevwdib.c) Further improves the handling of attempts to use the DLL when it is already in use. (dwdll.cpp, gsdll.c) Adds a DLL-compatible main program for OS/2. (dpmainc.c, gp_os2.c, gsdll.c)Fonts
Fixes bugs: - The WingDings TrueType font wasn't loaded properly. (gs_ttf.ps) Makes changes so that TrueType fonts can appear in the Fontmap and can be loaded directly. (gs_fonts.ps, gs_ttf.ps)Interpreter
Fixes bugs: - Executing a .quit with only 1 element on the operand stack caused an invalid access. (zcontrol.c) - The usage help message contained incorrect double %%s. (imainarg.c) - If an initialization file tried to use any Encodings other than the 4 registered ones, it couldn't find them. (gs_init.ps, gs_res.ps) - Places that expected arrays of coordinates (rectangles, x/y/xyshow) didn't accept packed arrays. (ibnum.c, zdps1.c) - filterdict was still visible after initialization. (gs_init.ps) - The usage error message wasn't terminated by a newline. (imainarg.c) - setcacheparams (or setting the MaxFontCache user parameter) didn't actually affect the size of the character cache. (zfont.c, zmisc2.c) - The main interpreter loop declared iref as a ref *, even though it may only be a ref_packed *. (iref.h, interp.c) Changes the character cache so it ignores absurd FontBBox values. Nothing in the Adobe spec suggests doing this, but it is necessary for handling questionable output produced by PageMaker 5.0 (an Adobe product!). (zchar1.c) Changes some type declarations slightly to reduce the number of 'discarding const' compiler warnings. (igc.h, igc.c, igcref.c) Adds .setclipoutside and .currentclipoutside operators for accessing the new outside clipping capability. (zpath.c) Adds the dictionary stack to the information printed in case of a fatal problem. (imain.c) Adds .set/currentrenderalgorithm operators for testing. (zrop.c)Library
Fixes bugs: - The TrueType rasterizer didn't map quadratic to cubic splines well, and didn't handle off-curve points at the end of a contour properly. (gstype42.c) - An #include was omitted. (gsimage.c, gxclimag.c) - Some compilers complained about statements with no effect, or comma operators with no effect on the left. (gschar.c, gxcpath.c, gxfill.c) - TrueType or Type 42 glyphs with a repeat count that crossed a contour boundary produced incorrect output. (gstype42.c) - TrueType / Type 42 composite glyphs involving rotation were placed incorrectly. (gstype42.c) - Type 42 fonts with an absent or incorrect FontBBox could fail to produce output. (gstype42.c) - Some header files weren't protected against double inclusion. (gsio.h, gdebug.h) - Decoding filters didn't "look ahead" to detect EOD, so if the last read operation before closing the filter ended just before the EOD mark, the EOD mark might not be absorbed. (stream.h, stream.c) - Filling paths consisting of multiple subpaths that overlap in Y produced slightly inaccurate output. We were unable to find a way to fix this without making a NON-BACKWARD-COMPATIBLE change in the interface for the recently introduced fill_trapezoid device procedure. (gxdevice.h, gdevbbox.c, gdevddrw.c, gdevnfwd.c, gxfill.c) - When banding, get_bits didn't detect calls with out-of-range Y values. (gxclread.c) - setcacheparams didn't actually affect the size of the character cache. (gsfont.h, gxbcache.h, gxfcache.h, gschar.c, gsfont.c, gxbcache.c, gxccman.c, gxclbits.c) - When banding, colored halftones could be mangled. (gxclread.c) Fixes bugs in the bounding box device: - The bounding box device could give bizarre results if any objects crossed the lower edge of the page. (gdevbbox.c) - The bounding box device could get a memory access error when processing image data. (gdebbox.c) - The bounding box device ran the default drawing algorithms even if it had no target (performance bug only). (gdevbbox.c) - The bounding box device computed an incorrect (too small) box for partially clipped bitmap images. (gdevbbox.c) - The bounding box device got confused by files that filled the entire page with a background color. (gdevbbox.c) - The bounding box device produced infinite-height boxes for certain kinds of data. (gdevbbox.c) Changes some type declarations slightly to reduce the number of 'discarding const' compiler warnings. (gsmemory.h, gsstruct.h) Adds the capability of clipping to the outside rather than the inside of the clipping path. This is required for emulating an obscure feature of the Microsoft Windows GDI. (gspath.h, gxclpath.h, gxpath.h, gxcpath.h, gzcpath.h, gspath.c, gxacpath.c, gxclpath.c, gxclread.c, gxcpath.c.) Makes it possible for band devices to select the underlying memory device used to accumulate the actual bits. This is required for (at least) PCL5 emulation. This requires adding a procedure to the gx_device_printer structure, which, for devices that initialize the structure without using the macros in gdevprn.h or access the printer-specific procedures directly, is a NON-BACKWARD-COMPATIBLE change. (gdevprn.h, gxclist.h, gxdevice.h, gdevdflt.c, gdevprn.c, gxclread.c) Speeds up handling of rotated or halftoned masked images. (gximage2.c) Adds an output_page procedure to the bounding box device, for testing. (gdevbbox.c) Adds a sample device that keeps track of the "render algorithm", for PCL5c emulation. (gdevrrgb.c)Version 3.68 patch 4 (5/23/96)
More minor bug fixes, mostly related to the MS Windows implementation.Documentation
Further updates various doc files to make them more useful to new users. (NEWS, README, current.doc, helpers.doc, new-user.doc) Adds user-contributed documentation for ps2pdf. (ps2pdf.doc, unix-end.mak) Documents a bug in the Borland C++ 4.52 compiler, and where to find the patch for it. (make.doc)Procedures
Fixes bugs: - A command line exceeded the MS-DOS 120 character limit. (devs.mak) A file was accidentally omitted from the fileset. (wmakebat.bat)Drivers
Fixes bugs: - Many of the 'show' operators didn't work properly if the PDF writer was included in the configuration. (gs_pdfwr.ps) - x_wrap_get_bits was ridiculously slow. (It still is, but not quite as ridiculouslyrueTypuld produce in-line images that were too large. (gdevpdfi.c) - The PDF writer didn't scale explicit character and word spacing (ashow/widthshow/awidthshow) properly. (gdevpdft.c) - The PDF writer didn't copy named destination or article title strings, possibly leading to dangling pointers. (gdevpdf.c, gdevpdfm.c) - The PDF writer produced incorrect output for re-encoded fonts. (It now converts any string containing characters in non-standard positions to bitmaps; this will be fixed in a later release.) (gs_pdfwr.ps, gdevpdfx.h, gdevpdfp.c, gdevpdft.c) Updates a few drivers for the change in the handling of band device procedures. (gdevcp50.c, gdevdjet.c) Updates the X Windows driver for strip halftones. (gdevx.c) Adds anti-aliasing capability to the os2pm device. (gdevpm.c) Increases the sizes of some tables in the PDF writer. (gdevpdfx.h)Platforms
Fixes bugs: - A patch for the MS Windows platform was accidentally omitted. (gp_mswin.c) - A block of code was accidentally duplicated. (dwmain.cpp) - An identifier exceeded VAX VMS C's limit of 31 characters. (gscspace.h) - File name enumeration didn't work properly on Unix systems (still/again). (gp_unifs.c) - On MS Windows, If you closed Ghostscript with the system menu, you only closed the text window; Ghostscript kept running and you had to use the task manager to kill it. (dwmain.cpp, dwmainc.cpp, dwtext.cpp) - Some DLL-related typedefs were not consistent. (dwdll.h, gsdll.h, dpmainc.c, dwdll.cpp) - Attempts to call the DLL before it was initialized were not detected. (gsdll.c) - Bitmap line lengths were rounded up even on 32-bit Windows, which doesn't want this. (gdevwdib.c) Further improves the handling of attempts to use the DLL when it is already in use. (dwdll.cpp, gsdll.c) Adds a DLL-compatible main program for OS/2. (dpmainc.c, gp_os2.c, gsdll.c)Fonts
Fixes bugs: - The WingDings TrueType font wasn't loaded properly. (gs_ttf.ps) Makes changes so that TrueType fonts can appear in the Fontmap and can be loaded directly. (gs_fonts.ps, gs_ttf.ps)Interpreter
Fixes bugs: - Executing a .quit with only 1 element on the operand stack caused an invalid access. (zcontrol.c) - The usage help message contained incorrect double %%s. (imainarg.c) - If an initialization file tried to use any Encodings other than the 4 registered ones, it couldn't find them. (gs_init.ps, gs_res.ps) - Places that expected arrays of coordinates (rectangles, x/y/xyshow) didn't accept packed arrays. (ibnum.c, zdps1.c) - filterdict was still visible after initialization. (gs_init.ps) - The usage error message wasn't terminated by a newline. (imainarg.c) - setcacheparams (or setting the MaxFontCache user parameter) didn't actually affect the size of the character cache. (zfont.c, zmisc2.c) - The main interpreter loop declared iref as a ref *, even though it may only be a ref_packed *. (iref.h, interp.c) Changes the character cache so it ignores absurd FontBBox values. Nothing in the Adobe spec suggests doing this, but it is necessary for handling questionable output produced by PageMaker 5.0 (an Adobe product!). (zchar1.c) Changes some type declarations slightly to reduce the number of 'discarding const' compiler warnings. (igc.h, igc.c, igcref.c) Adds .setclipoutside and .currentclipoutside operators for accessing the new outside clipping capability. (zpath.c) Adds the dictionary stack to the information printed in case of a fatal problem. (imain.c) Adds .set/currentrenderalgorithm operators for testing. (zrop.c)Library
Fixes bugs: - The TrueType rasterizer didn't map quadratic to cubic splines well, and didn't handle off-curve points at the end of a contour properly. (gstype42.c) - An #include was omitted. (gsimage.c, gxclimag.c) - Some compilers complained about statements with no effect, or comma operators with no effect on the left. (gschar.c, gxcpath.c, gxfill.c) - TrueType or Type 42 glyphs with a repeat count that crossed a contour boundary produced incorrect output. (gstype42.c) - TrueType / Type 42 composite glyphs involving rotation were placed incorrectly. (gstype42.c) - Type 42 fonts with an absent or incorrect FontBBox could fail to produce output. (gstype42.c) - Some header files weren't protected against double inclusion. (gsio.h, gdebug.h) - Decoding filters didn't "look ahead" to detect EOD, so if the last read operation before closing the filter ended just before the EOD mark, the EOD mark might not be absorbed. (stream.h, stream.c) - Filling paths consisting of multiple subpaths that overlap in Y produced slightly inaccurate output. We were unable to find a way to fix this without making a NON-BACKWARD-COMPATIBLE change in the interface for the recently introduced fill_trapezoid device procedure. (gxdevice.h, gdevbbox.c, gdevddrw.c, gdevnfwd.c, gxfill.c) - When banding, get_bits didn't detect calls with out-of-range Y values. (gxclread.c) - setcacheparams didn't actually affect the size of the character cache. (gsfont.h, gxbcache.h, gxfcache.h, gschar.c, gsfont.c, gxbcache.c, gxccman.c, gxclbits.c) - When banding, colored halftones could be mangled. (gxclread.c) Fixes bugs in the bounding box device: - The bounding box device could give bizarre results if any objects crossed the lower edge of the page. (gdevbbox.c) - The bounding box device could get a memory access error when processing image data. (gdebbox.c) - The bounding box device ran the default drawing algorithms even if it had no target (performance bug only). (gdevbbox.c) - The bounding box device computed an incorrect (too small) box for partially clipped bitmap images. (gdevbbox.c) - The bounding box device got confused by files that filled the entire page with a background color. (gdevbbox.c) - The bounding box device produced infinite-height boxes for certain kinds of data. (gdevbbox.c) Changes some type declarations slightly to reduce the number of 'discarding const' compiler warnings. (gsmemory.h, gsstruct.h) Adds the capability of clipping to the outside rather than the inside of the clipping path. This is required for emulating an obscure feature of the Microsoft Windows GDI. (gspath.h, gxclpath.h, gxpath.h, gxcpath.h, gzcpath.h, gspath.c, gxacpath.c, gxclpath.c, gxclread.c, gxcpath.c.) Makes it possible for band devices to select the underlying memory device used to accumulate the actual bits. This is required for (at least) PCL5 emulation. This requires adding a procedure to the gx_device_printer structure, which, for devices that initialize the structure without using the macros in gdevprn.h or access the printer-specific procedures directly, is a NON-BACKWARD-COMPATIBLE change. (gdevprn.h, gxclist.h, gxdevice.h, gdevdflt.c, gdevprn.c, gxclread.c) Speeds up handling of rotated or halftoned masked images. (gximage2.c) Adds an output_page procedure to the bounding box device, for testing. (gdevbbox.c) Adds a sample device that keeps track of the "render algorithm", for PCL5c emulation. (gdevrrgb.c)Version 3.68 patch 4 (5/23/96)
More minor bug fixes, mostly related to the MS Windows implementation.Documentation
Further updates various doc files to make them more useful to new users. (NEWS, README, current.doc, helpers.doc, new-user.doc) Adds user-contributed documentation for ps2pdf. (ps2pdf.doc, unix-end.mak) Documents a bug in the Borland C++ 4.52 compiler, and where to find the patch for it. (make.doc)Procedures
Fixes bugs: - A command line exceeded the MS-DOS 120 character limit. (devs.mak) A file was accidentally omitted from the fileset. (wmakebat.bat)Drivers
Fixes bugs: - Many of the 'show' operators didn't work properly if the PDF writer was included in the configuration. (gs_pdfwr.ps) - x_wrap_get_bits was ridiculously slow. (It still is, but not quite as ridiculouslyrueTypuld produce in-line images that were too large. (gdevpdfi.c) - The PDF writer didn't scale explicit character and word spacing (ashow/widthshow/awidthshow) properly. (gdevpdft.c) - The PDF writer didn't copy named destination or article title strings, possibly leading to dangling pointers. (gdevpdf.c, gdevpdfm.c) - The PDF writer produced incorrect output for re-encoded fonts. (It now converts any string containing characters in non-standard positions to bitmaps; this will be fixed in a later release.) (gs_pdfwr.ps, gdevpdfx.h, gdevpdfp.c, gdevpdft.c) Updates a few drivers for the change in the handling of band device procedures. (gdevcp50.c, gdevdjet.c) Updates the X Windows driver for strip halftones. (gdevx.c) Adds anti-aliasing capability to the os2pm device. (gdevpm.c) Increases the sizes of some tables in the PDF writer. (gdevpdfx.h)Platforms
Fixes bugs: - A patch for the MS Windows platform was accidentally omitted. (gp_mswin.c) - A block of code was accidentally duplicated. (dwmain.cpp) - An identifier exceeded VAX VMS C's limit of 31 characters. (gscspace.h) - File name enumeration didn't work properly on Unix systems (still/again). (gp_unifs.c) - On MS Windows, If you closed Ghostscript with the system menu, you only closed the text window; Ghostscript kept running and you had to use the task manager to kill it. (dwmain.cpp, dwmainc.cpp, dwtext.cpp) - Some DLL-related typedefs were not consistent. (dwdll.h, gsdll.h, dpmainc.c, dwdll.cpp) - Attempts to call the DLL before it was initialized were not detected. (gsdll.c) - Bitmap line lengths were rounded up even on 32-bit Windows, which doesn't want this. (gdevwdib.c) Further improves the handling of attempts to use the DLL when it is already in use. (dwdll.cpp, gsdll.c) Adds a DLL-compatible main program for OS/2. (dpmainc.c, gp_os2.c, gsdll.c)Fonts
Fixes bugs: - The WingDings TrueType font wasn't loaded properly. (gs_ttf.ps) Makes changes so that TrueType fonts can appear in the Fontmap and can be loaded directly. (gs_fonts.ps, gs_ttf.ps)Interpreter
Fixes bugs: - Executing a .quit with only 1 element on the operand stack caused an invalid access. (zcontrol.c) - The usage help message contained incorrect double %%s. (imainarg.c) - If an initialization file tried to use any Encodings other than the 4 registered ones, it couldn't find them. (gs_init.ps, gs_res.ps) - Places that expected arrays of coordinates (rectangles, x/y/xyshow) didn't accept packed arrays. (ibnum.c, zdps1.c) - filterdict was still visible after initialization. (gs_init.ps) - The usage error message wasn't terminated by a newline. (imainarg.c) - setcacheparams (or setting the MaxFontCache user parameter) didn't actually affect the size of the character cache. (zfont.c, zmisc2.c) - The main interpreter loop declared iref as a ref *, even though it may only be a ref_packed *. (iref.h, interp.c) Changes the character cache so it ignores absurd FontBBox values. Nothing in the Adobe spec suggests doing this, but it is necessary for handling questionable output produced by PageMaker 5.0 (an Adobe product!). (zchar1.c) Changes some type declarations slightly to reduce the number of 'discarding const' compiler warnings. (igc.h, igc.c, igcref.c) Adds .setclipoutside and .currentclipoutside operators for accessing the new outside clipping capability. (zpath.c) Adds the dictionary stack to the information printed in case of a fatal problem. (imain.c) Adds .set/currentrenderalgorithm operators for testing. (zrop.c)Library
Fixes bugs: - The TrueType rasterizer didn't map quadratic to cubic splines well, and didn't handle off-curve points at the end of a contour properly. (gstype42.c) - An #include was omitted. (gsimage.c, gxclimag.c) - Some compilers complained about statements with no effect, or comma operators with no effect on the left. (gschar.c, gxcpath.c, gxfill.c) - TrueType or Type 42 glyphs with a repeat count that crossed a contour boundary produced incorrect output. (gstype42.c) - TrueType / Type 42 composite glyphs involving rotation were placed incorrectly. (gstype42.c) - Type 42 fonts with an absent or incorrect FontBBox could fail to produce output. (gstype42.c) - Some header files weren't protected against double inclusion. (gsio.h, gdebug.h) - Decoding filters didn't "look ahead" to detect EOD, so if the last read operation before closing the filter ended just before the EOD mark, the EOD mark might not be absorbed. (stream.h, stream.c) - Filling paths consisting of multiple subpaths that overlap in Y produced slightly inaccurate output. We were unable to find a way to fix this without making a NON-BACKWARD-COMPATIBLE change in the interface for the recently introduced fill_trapezoid device procedure. (gxdevice.h, gdevbbox.c, gdevddrw.c, gdevnfwd.c, gxfill.c) - When banding, get_bits didn't detect calls with out-of-range Y values. (gxclread.c) - setcacheparams didn't actually affect the size of the character cache. (gsfont.h, gxbcache.h, gxfcache.h, gschar.c, gsfont.c, gxbcache.c, gxccman.c, gxclbits.c) - When banding, colored halftones could be mangled. (gxclread.c) Fixes bugs in the bounding box device: - The bounding box device could give bizarre results if any objects crossed the lower edge of the page. (gdevbbox.c) - The bounding box device could get a memory access error when processing image data. (gdebbox.c) - The bounding box device ran the default drawing algorithms even if it had no target (performance bug only). (gdevbbox.c) - The bounding box device computed an incorrect (too small) box for partially clipped bitmap images. (gdevbbox.c) - The bounding box device got confused by files that filled the entire page with a background color. (gdevbbox.c) - The bounding box device produced infinite-height boxes for certain kinds of data. (gdevbbox.c) Changes some type declarations slightly to reduce the number of 'discarding const' compiler warnings. (gsmemory.h, gsstruct.h) Adds the capability of clipping to the outside rather than the inside of the clipping path. This is required for emulating an obscure feature of the Microsoft Windows GDI. (gspath.h, gxclpath.h, gxpath.h, gxcpath.h, gzcpath.h, gspath.c, gxacpath.c, gxclpath.c, gxclread.c, gxcpath.c.) Makes it possible for band devices to select the underlying memory device used to accumulate the actual bits. This is required for (at least) PCL5 emulation. This requires adding a procedure to the gx_device_printer structure, which, for devices that initialize the structure without using the macros in gdevprn.h or access the printer-specific procedures directly, is a NON-BACKWARD-COMPATIBLE change. (gdevprn.h, gxclist.h, gxdevice.h, gdevdflt.c, gdevprn.c, gxclread.c) Speeds up handling of rotated or halftoned masked images. (gximage2.c) Adds an output_page procedure to the bounding box device, for testing. (gdevbbox.c) Adds a sample device that keeps track of the "render algorithm", for PCL5c emulation. (gdevrrgb.c)Version 3.68 patch 4 (5/23/96)
More minor bug fixes, mostly related to the MS Windows implementation.Documentation
Further updates various doc files to make them more useful to new users. (NEWS, README, current.doc, helpers.doc, new-user.doc) Adds user-contributed documentation for ps2pdf. (ps2pdf.doc, unix-end.mak) Documents a bug in the Borland C++ 4.52 compiler, and where to find the patch for it. (make.doc)Procedures
Fixes bugs: - A command line exceeded the MS-DOS 120 character limit. (devs.mak) A file was accidentally omitted from the fileset. (wmakebat.bat)Drivers
Fixes bugs: - Many of the 'show' operators didn't work properly if the PDF writer was included in the configuration. (gs_pdfwr.ps) - x_wrap_get_bits was ridiculously slow. (It still is, but not quite as ridiculouslyrueTypuld produce in-line images that were too large. (gdevpdfi.c) - The PDF writer didn't scale explicit character and word spacing (ashow/widthshow/awidthshow) properly. (gdevpdft.c) - The PDF writer didn't copy named destination or article title strings, possibly leading to dangling pointers. (gdevpdf.c, gdevpdfm.c) - The PDF writer produced incorrect output for re-encoded fonts. (It now converts any string containing characters in non-standard positions to bitmaps; this will be fixed in a later release.) (gs_pdfwr.ps, gdevpdfx.h, gdevpdfp.c, gdevpdft.c) Updates a few drivers for the change in the handling of band device procedures. (gdevcp50.c, gdevdjet.c) Updates the X Windows driver for strip halftones. (gdevx.c) Adds anti-aliasing capability to the os2pm device. (gdevpm.c) Increases the sizes of some tables in the PDF writer. (gdevpdfx.h)Platforms
Fixes bugs: - A patch for the MS Windows platform was accidentally omitted. (gp_mswin.c) - A block of code was accidentally duplicated. (dwmain.cpp) - An identifier exceeded VAX VMS C's limit of 31 characters. (gscspace.h) - File name enumeration didn't work properly on Unix systems (still/again). (gp_unifs.c) - On MS Windows, If you closed Ghostscript with the system menu, you only closed the text window; Ghostscript kept running and you had to use the task manager to kill it. (dwmain.cpp, dwmainc.cpp, dwtext.cpp) - Some DLL-related typedefs were not consistent. (dwdll.h, gsdll.h, dpmainc.c, dwdll.cpp) - Attempts to call the DLL before it was initialized were not detected. (gsdll.c) - Bitmap line lengths were rounded up even on 32-bit Windows, which doesn't want this. (gdevwdib.c) Further improves the handling of attempts to use the DLL when it is already in use. (dwdll.cpp, gsdll.c) Adds a DLL-compatible main program for OS/2. (dpmainc.c, gp_os2.c, gsdll.c)Fonts
Fixes bugs: - The WingDings TrueType font wasn't loaded properly. (gs_ttf.ps) Makes changes so that TrueType fonts can appear in the Fontmap and can be loaded directly. (gs_fonts.ps, gs_ttf.ps)Interpreter
Fixes bugs: - Executing a .quit with only 1 element on the operand stack caused an invalid access. (zcontrol.c) - The usage help message contained incorrect double %%s. (imainarg.c) - If an initialization file tried to use any Encodings other than the 4 registered ones, it couldn't find them. (gs_init.ps, gs_res.ps) - Places that expected arrays of coordinates (rectangles, x/y/xyshow) didn't accept packed arrays. (ibnum.c, zdps1.c) - filterdict was still visible after initialization. (gs_init.ps) - The usage error message wasn't terminated by a newline. (imainarg.c) - setcacheparams (or setting the MaxFontCache user parameter) didn't actually affect the size of the character cache. (zfont.c, zmisc2.c) - The main interpreter loop declared iref as a ref *, even though it may only be a ref_packed *. (iref.h, interp.c) Changes the character cache so it ignores absurd FontBBox values. Nothing in the Adobe spec suggests doing this, but it is necessary for handling questionable output produced by PageMaker 5.0 (an Adobe product!). (zchar1.c) Changes some type declarations slightly to reduce the number of 'discarding const' compiler warnings. (igc.h, igc.c, igcref.c) Adds .setclipoutside and .currentclipoutside operators for accessing the new outside clipping capability. (zpath.c) Adds the dictionary stack to the information printed in case of a fatal problem. (imain.c) Adds .set/currentrenderalgorithm operators for testing. (zrop.c)Library
Fixes bugs: - The TrueType rasterizer didn't map quadratic to cubic splines well, and didn't handle off-curve points at the end of a contour properly. (gstype42.c) - An #include was omitted. (gsimage.c, gxclimag.c) - Some compilers complained about statements with no effect, or comma operators with no effect on the left. (gschar.c, gxcpath.c, gxfill.c) - TrueType or Type 42 glyphs with a repeat count that crossed a contour boundary produced incorrect output. (gstype42.c) - TrueType / Type 42 composite glyphs involving rotation were placed incorrectly. (gstype42.c) - Type 42 fonts with an absent or incorrect FontBBox could fail to produce output. (gstype42.c) - Some header files weren't protected against double inclusion. (gsio.h, gdebug.h) - Decoding filters didn't "look ahead" to detect EOD, so if the last read operation before closing the filter ended just before the EOD mark, the EOD mark might not be absorbed. (stream.h, stream.c) - Filling paths consisting of multiple subpaths that overlap in Y produced slightly inaccurate output. We were unable to find a way to fix this without making a NON-BACKWARD-COMPATIBLE change in the interface for the recently introduced fill_trapezoid device procedure. (gxdevice.h, gdevbbox.c, gdevddrw.c, gdevnfwd.c, gxfill.c) - When banding, get_bits didn't detect calls with out-of-range Y values. (gxclread.c) - setcacheparams didn't actually affect the size of the character cache. (gsfont.h, gxbcache.h, gxfcache.h, gschar.c, gsfont.c, gxbcache.c, gxccman.c, gxclbits.c) - When banding, colored halftones could be mangled. (gxclread.c) Fixes bugs in the bounding box device: - The bounding box device could give bizarre results if any objects crossed the lower edge of the page. (gdevbbox.c) - The bounding box device could get a memory access error when processing image data. (gdebbox.c) - The bounding box device ran the default drawing algorithms even if it had no target (performance bug only). (gdevbbox.c) - The bounding box device computed an incorrect (too small) box for partially clipped bitmap images. (gdevbbox.c) - The bounding box device got confused by files that filled the entire page with a background color. (gdevbbox.c) - The bounding box device produced infinite-height boxes for certain kinds of data. (gdevbbox.c) Changes some type declarations slightly to reduce the number of 'discarding const' compiler warnings. (gsmemory.h, gsstruct.h) Adds the capability of clipping to the outside rather than the inside of the clipping path. This is required for emulating an obscure feature of the Microsoft Windows GDI. (gspath.h, gxclpath.h, gxpath.h, gxcpath.h, gzcpath.h, gspath.c, gxacpath.c, gxclpath.c, gxclread.c, gxcpath.c.) Makes it possible for band devices to select the underlying memory device used to accumulate the actual bits. This is required for (at least) PCL5 emulation. This requires adding a procedure to the gx_device_printer structure, which, for devices that initialize the structure without using the macros in gdevprn.h or access the printer-specific procedures directly, is a NON-BACKWARD-COMPATIBLE change. (gdevprn.h, gxclist.h, gxdevice.h, gdevdflt.c, gdevprn.c, gxclread.c) Speeds up handling of rotated or halftoned masked images. (gximage2.c) Adds an output_page procedure to the bounding box device, for testing. (gdevbbox.c) Adds a sample device that keeps track of the "render algorithm", for PCL5c emulation. (gdevrrgb.c)Version 3.68 patch 4 (5/23/96)
More minor bug fixes, mostly related to the MS Windows implementation.Documentation
Further updates various doc files to make them more useful to new users. (NEWS, README, current.doc, helpers.doc, new-user.doc) Adds user-contributed documentation for ps2pdf. (ps2pdf.doc, unix-end.mak) Documents a bug in the Borland C++ 4.52 compiler, and where to find the patch for it. (make.doc)Procedures
Fixes bugs: - A command line exceeded the MS-DOS 120 character limit. (devs.mak) A file was accidentally omitted from the fileset. (wmakebat.bat)Drivers
Fixes bugs: - Many of the 'show' operators didn't work properly if the PDF writer was included in the configuration. (gs_pdfwr.ps) - x_wrap_get_bits was ridiculously slow. (It still is, but not quite as ridiculouslyrueTypuld produce in-line images that were too large. (gdevpdfi.c) - The PDF writer didn't scale explicit character and word spacing (ashow/widthshow/awidthshow) properly. (gdevpdft.c) - The PDF writer didn't copy named destination or article title strings, possibly leading to dangling pointers. (gdevpdf.c, gdevpdfm.c) - The PDF writer produced incorrect output for re-encoded fonts. (It now converts any string containing characters in non-standard positions to bitmaps; this will be fixed in a later release.) (gs_pdfwr.ps, gdevpdfx.h, gdevpdfp.c, gdevpdft.c) Updates a few drivers for the change in the handling of band device procedures. (gdevcp50.c, gdevdjet.c) Updates the X Windows driver for strip halftones. (gdevx.c) Adds anti-aliasing capability to the os2pm device. (gdevpm.c) Increases the sizes of some tables in the PDF writer. (gdevpdfx.h)Platforms
Fixes bugs: - A patch for the MS Windows platform was accidentally omitted. (gp_mswin.c) - A block of code was accidentally duplicated. (dwmain.cpp) - An identifier exceeded VAX VMS C's limit of 31 characters. (gscspace.h) - File name enumeration didn't work properly on Unix systems (still/again). (gp_unifs.c) - On MS Windows, If you closed Ghostscript with the system menu, you only closed the text window; Ghostscript kept running and you had to use the task manager to kill it. (dwmain.cpp, dwmainc.cpp, dwtext.cpp) - Some DLL-related typedefs were not consistent. (dwdll.h, gsdll.h, dpmainc.c, dwdll.cpp) - Attempts to call the DLL before it was initialized were not detected. (gsdll.c) - Bitmap line lengths were rounded up even on 32-bit Windows, which doesn't want this. (gdevwdib.c) Further improves the handling of attempts to use the DLL when it is already in use. (dwdll.cpp, gsdll.c) Adds a DLL-compatible main program for OS/2. (dpmainc.c, gp_os2.c, gsdll.c)Fonts
Fixes bugs: - The WingDings TrueType font wasn't loaded properly. (gs_ttf.ps) Makes changes so that TrueType fonts can appear in the Fontmap and can be loaded directly. (gs_fonts.ps, gs_ttf.ps)Interpreter
Fixes bugs: - Executing a .quit with only 1 element on the operand stack caused an invalid access. (zcontrol.c) - The usage help message contained incorrect double %%s. (imainarg.c) - If an initialization file tried to use any Encodings other than the 4 registered ones, it couldn't find them. (gs_init.ps, gs_res.ps) - Places that expected arrays of coordinates (rectangles, x/y/xyshow) didn't accept packed arrays. (ibnum.c, zdps1.c) - filterdict was still visible after initialization. (gs_init.ps) - The usage error message wasn't terminated by a newline. (imainarg.c) - setcacheparams (or setting the MaxFontCache user parameter) didn't actually affect the size of the character cache. (zfont.c, zmisc2.c) - The main interpreter loop declared iref as a ref *, even though it may only be a ref_packed *. (iref.h, interp.c) Changes the character cache so it ignores absurd FontBBox values. Nothing in the Adobe spec suggests doing this, but it is necessary for handling questionable output produced by PageMaker 5.0 (an Adobe product!). (zchar1.c) Changes some type declarations slightly to reduce the number of 'discarding const' compiler warnings. (igc.h, igc.c, igcref.c) Adds .setclipoutside and .currentclipoutside operators for accessing the new outside clipping capability. (zpath.c) Adds the dictionary stack to the information printed in case of a fatal problem. (imain.c) Adds .set/currentrenderalgorithm operators for testing. (zrop.c)Library
Fixes bugs: - The TrueType rasterizer didn't map quadratic to cubic splines well, and didn't handle off-curve points at the end of a contour properly. (gstype42.c) - An #include was omitted. (gsimage.c, gxclimag.c) - Some compilers complained about statements with no effect, or comma operators with no effect on the left. (gschar.c, gxcpath.c, gxfill.c) - TrueType or Type 42 glyphs with a repeat count that crossed a contour boundary produced incorrect output. (gstype42.c) - TrueType / Type 42 composite glyphs involving rotation were placed incorrectly. (gstype42.c) - Type 42 fonts with an absent or incorrect FontBBox could fail to produce output. (gstype42.c) - Some header files weren't protected against double inclusion. (gsio.h, gdebug.h) - Decoding filters didn't "look ahead" to detect EOD, so if the last read operation before closing the filter ended just before the EOD mark, the EOD mark might not be absorbed. (stream.h, stream.c) - Filling paths consisting of multiple subpaths that overlap in Y produced slightly inaccurate output. We were unable to find a way to fix this without making a NON-BACKWARD-COMPATIBLE change in the interface for the recently introduced fill_trapezoid device procedure. (gxdevice.h, gdevbbox.c, gdevddrw.c, gdevnfwd.c, gxfill.c) - When banding, get_bits didn't detect calls with out-of-range Y values. (gxclread.c) - setcacheparams didn't actually affect the size of the character cache. (gsfont.h, gxbcache.h, gxfcache.h, gschar.c, gsfont.c, gxbcache.c, gxccman.c, gxclbits.c) - When banding, colored halftones could be mangled. (gxclread.c) Fixes bugs in the bounding box device: - The bounding box device could give bizarre results if any objects crossed the lower edge of the page. (gdevbbox.c) - The bounding box device could get a memory access error when processing image data. (gdebbox.c) - The bounding box device ran the default drawing algorithms even if it had no target (performance bug only). (gdevbbox.c) - The bounding box device computed an incorrect (too small) box for partially clipped bitmap images. (gdevbbox.c) - The bounding box device got confused by files that filled the entire page with a background color. (gdevbbox.c) - The bounding box device produced infinite-height boxes for certain kinds of data. (gdevbbox.c) Changes some type declarations slightly to reduce the number of 'discarding const' compiler warnings. (gsmemory.h, gsstruct.h) Adds the capability of clipping to the outside rather than the inside of the clipping path. This is required for emulating an obscure feature of the Microsoft Windows GDI. (gspath.h, gxclpath.h, gxpath.h, gxcpath.h, gzcpath.h, gspath.c, gxacpath.c, gxclpath.c, gxclread.c, gxcpath.c.) Makes it possible for band devices to select the underlying memory device used to accumulate the actual bits. This is required for (at least) PCL5 emulation. This requires adding a procedure to the gx_device_printer structure, which, for devices that initialize the structure without using the macros in gdevprn.h or access the printer-specific procedures directly, is a NON-BACKWARD-COMPATIBLE change. (gdevprn.h, gxclist.h, gxdevice.h, gdevdflt.c, gdevprn.c, gxclread.c) Speeds up handling of rotated or halftoned masked images. (gximage2.c) Adds an output_page procedure to the bounding box device, for testing. (gdevbbox.c) Adds a sample device that keeps track of the "render algorithm", for PCL5c emulation. (gdevrrgb.c)Version 3.68 patch 4 (5/23/96)
More minor bug fixes, mostly related to the MS Windows implementation.Documentation
Further updates various doc files to make them more useful to new users. (NEWS, README, current.doc, helpers.doc, new-user.doc) Adds user-contributed documentation for ps2pdf. (ps2pdf.doc, unix-end.mak) Documents a bug in the Borland C++ 4.52 compiler, and where to find the patch for it. (make.doc)Procedures
Fixes bugs: - A command line exceeded the MS-DOS 120 character limit. (devs.mak) A file was accidentally omitted from the fileset. (wmakebat.bat)Drivers
Fixes bugs: - Many of the 'show' operators didn't work properly if the PDF writer was included in the configuration. (gs_pdfwr.ps) - x_wrap_get_bits was ridiculously slow. (It still is, but not quite as ridiculouslyrueTypuld produce in-line images that were too large. (gdevpdfi.c) - The PDF writer didn't scale explicit character and word spacing (ashow/widthshow/awidthshow) properly. (gdevpdft.c) - The PDF writer didn't copy named destination or article title strings, possibly leading to dangling pointers. (gdevpdf.c, gdevpdfm.c) - The PDF writer produced incorrect output for re-encoded fonts. (It now converts any string containing characters in non-standard positions to bitmaps; this will be fixed in a later release.) (gs_pdfwr.ps, gdevpdfx.h, gdevpdfp.c, gdevpdft.c) Updates a few drivers for the change in the handling of band device procedures. (gdevcp50.c, gdevdjet.c) Updates the X Windows driver for strip halftones. (gdevx.c) Adds anti-aliasing capability to the os2pm device. (gdevpm.c) Increases the sizes of some tables in the PDF writer. (gdevpdfx.h)Platforms
Fixes bugs: - A patch for the MS Windows platform was accidentally omitted. (gp_mswin.c) - A block of code was accidentally duplicated. (dwmain.cpp) - An identifier exceeded VAX VMS C's limit of 31 characters. (gscspace.h) - File name enumeration didn't work properly on Unix systems (still/again). (gp_unifs.c) - On MS Windows, If you closed Ghostscript with the system menu, you only closed the text window; Ghostscript kept running and you had to use the task manager to kill it. (dwmain.cpp, dwmainc.cpp, dwtext.cpp) - Some DLL-related typedefs were not consistent. (dwdll.h, gsdll.h, dpmainc.c, dwdll.cpp) - Attempts to call the DLL before it was initialized were not detected. (gsdll.c) - Bitmap line lengths were rounded up even on 32-bit Windows, which doesn't want this. (gdevwdib.c) Further improves the handling of attempts to use the DLL when it is already in use. (dwdll.cpp, gsdll.c) Adds a DLL-compatible main program for OS/2. (dpmainc.c, gp_os2.c, gsdll.c)Fonts
Fixes bugs: - The WingDings TrueType font wasn't loaded properly. (gs_ttf.ps) Makes changes so that TrueType fonts can appear in the Fontmap and can be loaded directly. (gs_fonts.ps, gs_ttf.ps)Interpreter
Fixes bugs: - Executing a .quit with only 1 element on the operand stack caused an invalid access. (zcontrol.c) - The usage help message contained incorrect double %%s. (imainarg.c) - If an initialization file tried to use any Encodings other than the 4 registered ones, it couldn't find them. (gs_init.ps, gs_res.ps) - Places that expected arrays of coordinates (rectangles, x/y/xyshow) didn't accept packed arrays. (ibnum.c, zdps1.c) - filterdict was still visible after initialization. (gs_init.ps) - The usage error message wasn't terminated by a newline. (imainarg.c) - setcacheparams (or setting the MaxFontCache user parameter) didn't actually affect the size of the character cache. (zfont.c, zmisc2.c) - The main interpreter loop declared iref as a ref *, even though it may only be a ref_packed *. (iref.h, interp.c) Changes the character cache so it ignores absurd FontBBox values. Nothing in the Adobe spec suggests doing this, but it is necessary for handling questionable output produced by PageMaker 5.0 (an Adobe product!). (zchar1.c) Changes some type declarations slightly to reduce the number of 'discarding const' compiler warnings. (igc.h, igc.c, igcref.c) Adds .setclipoutside and .currentclipoutside operators for accessing the new outside clipping capability. (zpath.c) Adds the dictionary stack to the information printed in case of a fatal problem. (imain.c) Adds .set/currentrenderalgorithm operators for testing. (zrop.c)Library
Fixes bugs: - The TrueType rasterizer didn't map quadratic to cubic splines well, and didn't handle off-curve points at the end of a contour properly. (gstype42.c) - An #include was omitted. (gsimage.c, gxclimag.c) - Some compilers complained about statements with no effect, or comma operators with no effect on the left. (gschar.c, gxcpath.c, gxfill.c) - TrueType or Type 42 glyphs with a repeat count that crossed a contour boundary produced incorrect output. (gstype42.c) - TrueType / Type 42 composite glyphs involving rotation were placed incorrectly. (gstype42.c) - Type 42 fonts with an absent or incorrect FontBBox could fail to produce output. (gstype42.c) - Some header files weren't protected against double inclusion. (gsio.h, gdebug.h) - Decoding filters didn't "look ahead" to detect EOD, so if the last read operation before closing the filter ended just before the EOD mark, the EOD mark might not be absorbed. (stream.h, stream.c) - Filling paths consisting of multiple subpaths that overlap in Y produced slightly inaccurate output. We were unable to find a way to fix this without making a NON-BACKWARD-COMPATIBLE change in the interface for the recently introduced fill_trapezoid device procedure. (gxdevice.h, gdevbbox.c, gdevddrw.c, gdevnfwd.c, gxfill.c) - When banding, get_bits didn't detect calls with out-of-range Y values. (gxclread.c) - setcacheparams didn't actually affect the size of the character cache. (gsfont.h, gxbcache.h, gxfcache.h, gschar.c, gsfont.c, gxbcache.c, gxccman.c, gxclbits.c) - When banding, colored halftones could be mangled. (gxclread.c) Fixes bugs in the bounding box device: - The bounding box device could give bizarre results if any objects crossed the lower edge of the page. (gdevbbox.c) - The bounding box device could get a memory access error when processing image data. (gdebbox.c) - The bounding box device ran the default drawing algorithms even if it had no target (performance bug only). (gdevbbox.c) - The bounding box device computed an incorrect (too small) box for partially clipped bitmap images. (gdevbbox.c) - The bounding box device got confused by files that filled the entire page with a background color. (gdevbbox.c) - The bounding box device produced infinite-height boxes for certain kinds of data. (gdevbbox.c) Changes some type declarations slightly to reduce the number of 'discarding const' compiler warnings. (gsmemory.h, gsstruct.h) Adds the capability of clipping to the outside rather than the inside of the clipping path. This is required for emulating an obscure feature of the Microsoft Windows GDI. (gspath.h, gxclpath.h, gxpath.h, gxcpath.h, gzcpath.h, gspath.c, gxacpath.c, gxclpath.c, gxclread.c, gxcpath.c.) Makes it possible for band devices to select the underlying memory device used to accumulate the actual bits. This is required for (at least) PCL5 emulation. This requires adding a procedure to the gx_device_printer structure, which, for devices that initialize the structure without using the macros in gdevprn.h or access the printer-specific procedures directly, is a NON-BACKWARD-COMPATIBLE change. (gdevprn.h, gxclist.h, gxdevice.h, gdevdflt.c, gdevprn.c, gxclread.c) Speeds up handling of rotated or halftoned masked images. (gximage2.c) Adds an output_page procedure to the bounding box device, for testing. (gdevbbox.c) Adds a sample device that keeps track of the "render algorithm", for PCL5c emulation. (gdevrrgb.c)Version 3.68 patch 4 (5/23/96)
More minor bug fixes, mostly related to the MS Windows implementation.Documentation
Further updates various doc files to make them more useful to new users. (NEWS, README, current.doc, helpers.doc, new-user.doc) Adds user-contributed documentation for ps2pdf. (ps2pdf.doc, unix-end.mak) Documents a bug in the Borland C++ 4.52 compiler, and where to find the patch for it. (make.doc)Procedures
Fixes bugs: - A command line exceeded the MS-DOS 120 character limit. (devs.mak) A file was accidentally omitted from the fileset. (wmakebat.bat)Drivers
Fixes bugs: - Many of the 'show' operators didn't work properly if the PDF writer was included in the configuration. (gs_pdfwr.ps) - x_wrap_get_bits was ridiculously slow. (It still is, but not quite as ridiculouslyrueTypuld produce in-line images that were too large. (gdevpdfi.c) - The PDF writer didn't scale explicit character and word spacing (ashow/widthshow/awidthshow) properly. (gdevpdft.c) - The PDF writer didn't copy named destination or article title strings, possibly leading to dangling pointers. (gdevpdf.c, gdevpdfm.c) - The PDF writer produced incorrect output for re-encoded fonts. (It now converts any string containing characters in non-standard positions to bitmaps; this will be fixed in a later release.) (gs_pdfwr.ps, gdevpdfx.h, gdevpdfp.c, gdevpdft.c) Updates a few drivers for the change in the handling of band device procedures. (gdevcp50.c, gdevdjet.c) Updates the X Windows driver for strip halftones. (gdevx.c) Adds anti-aliasing capability to the os2pm device. (gdevpm.c) Increases the sizes of some tables in the PDF writer. (gdevpdfx.h)Platforms
Fixes bugs: - A patch for the MS Windows platform was accidentally omitted. (gp_mswin.c) - A block of code was accidentally duplicated. (dwmain.cpp) - An identifier exceeded VAX VMS C's limit of 31 characters. (gscspace.h) - File name enumeration didn't work properly on Unix systems (still/again). (gp_unifs.c) - On MS Windows, If you closed Ghostscript with the system menu, you only closed the text window; Ghostscript kept running and you had to use the task manager to kill it. (dwmain.cpp, dwmainc.cpp, dwtext.cpp) - Some DLL-related typedefs were not consistent. (dwdll.h, gsdll.h, dpmainc.c, dwdll.cpp) - Attempts to call the DLL before it was initialized were not detected. (gsdll.c) - Bitmap line lengths were rounded up even on 32-bit Windows, which doesn't want this. (gdevwdib.c) Further improves the handling of attempts to use the DLL when it is already in use. (dwdll.cpp, gsdll.c) Adds a DLL-compatible main program for OS/2. (dpmainc.c, gp_os2.c, gsdll.c)Fonts
Fixes bugs: - The WingDings TrueType font wasn't loaded properly. (gs_ttf.ps) Makes changes so that TrueType fonts can appear in the Fontmap and can be loaded directly. (gs_fonts.ps, gs_ttf.ps)Interpreter
Fixes bugs: - Executing a .quit with only 1 element on the operand stack caused an invalid access. (zcontrol.c) - The usage help message contained incorrect double %%s. (imainarg.c) - If an initialization file tried to use any Encodings other than the 4 registered ones, it couldn't find them. (gs_init.ps, gs_res.ps) - Places that expected arrays of coordinates (rectangles, x/y/xyshow) didn't accept packed arrays. (ibnum.c, zdps1.c) - filterdict was still visible after initialization. (gs_init.ps) - The usage error message wasn't terminated by a newline. (imainarg.c) - setcacheparams (or setting the MaxFontCache user parameter) didn't actually affect the size of the character cache. (zfont.c, zmisc2.c) - The main interpreter loop declared iref as a ref *, even though it may only be a ref_packed *. (iref.h, interp.c) Changes the character cache so it ignores absurd FontBBox values. Nothing in the Adobe spec suggests doing this, but it is necessary for handling questionable output produced by PageMaker 5.0 (an Adobe product!). (zchar1.c) Changes some type declarations slightly to reduce the number of 'discarding const' compiler warnings. (igc.h, igc.c, igcref.c) Adds .setclipoutside and .currentclipoutside operators for accessing the new outside clipping capability. (zpath.c) Adds the dictionary stack to the information printed in case of a fatal problem. (imain.c) Adds .set/currentrenderalgorithm operators for testing. (zrop.c)Library
Fixes bugs: - The TrueType rast