History of Ghostscript versions 6.n

Table of contents

This document is a record of changes in Ghostscript releases numbered 6.n. For earlier versions, see the the history documents:

History of Ghostscript versions 5.n
History of Ghostscript versions 4.n
History of Ghostscript versions 3.n
History of Ghostscript versions 2.n
History of Ghostscript versions 1.n

For other information, see the Ghostscript overview.


Within each release, news appears in the following order: Incompatible
changes, Documentation, Procedures, Utilities, Drivers, Platforms, Fonts,
PDF writer (included under Drivers through fileset 5.88), Interpreter,
Streams (included under Interpreter through release 2.9.9), Library.
Changes marked with a * were made available as patches to a previous
release.


Version 6.01 (2000-03-17)

This is a bug-fix release for 6.0. This release fixes the following reported bugs: #101555, #101813, #101816, #101818, #101827, #101830, #101871, #101853, #101906, #101949, #101950, #102003, #102004, #102038, #102081, #102936.

Incompatible changes

(Platforms) - OpenVMS using VAX C is no longer supported. (OpenVMS with DEC C and gcc are still supported.) (Drivers) - The third argument of psdf_set_color is changed from const char * to const psdf_set_color_commands_t *. (Interpreter) - The non-standard feature of writing dictionaries in binary object output is now disabled by default, but can now be enabled dynamically. (Library) - The definition of TRANSPARENCY_PER_H_P is moved from gdevmrop.h to gsropt.h. - The handling of the source opaque, texture transparent case of RasterOp when TRANSPARENCY_PER_H_P is defined is changed slightly.

Documentation


Fixes problems:
	- Fixes a typo. (man/ps2pdf.1 [1.2]: 2000/03/10 03:11:06 lpd)
	- When converting PostScript to PDF, selecting /Bicubic as an image
DownsampleType caused an error instead of defaulting to /Average.
(doc/Ps2pdf.htm [1.2]: 2000/03/10 04:16:09 lpd)
	- The gs###src.zip and gs###lib.zip files weren't mentioned as being
included in distributions; News.htm and Changes.htm weren't mentioned at
all. (doc/Release.htm [1.5]: 2000/03/15 07:23:52 lpd)
	- Fixes a problem producing too much black in the output; also adds
support for 5 new printers (H-P Color DeskJet 690, H-P DesignJet 750, and
Epson Stylus Color 200). Note that this is user-contributed code.
(doc/Devices.htm [1.2]: 2000/03/16 02:01:36 lpd)

In ansi2knr, adds user-contributed support for concatenated string literals
and character constants, and fixes for a couple of minor bugs.
(man/ansi2knr.1 [1.2]: 2000/03/10 03:16:17 lpd)

Removes an inappropriate copying notice. (doc/Hershey.htm [1.2]: 2000/03/10
07:03:57 lpd)

Clarifies when xdpyinfo and xwininfo are needed. Adds privacy options for
problem reports. (doc/Bug-form.htm [1.2]: 2000/03/10 07:06:08 lpd)

Adds a new eps2eps utility analogous to ps2ps. (man/eps2eps.1 [1.1],
man/ps2ps.1 [1.2]: 2000/03/10 07:51:55 lpd)

Updates the documentation on making RPMs, which is no longer supported.
(doc/Install.htm [1.2], doc/Make.htm [1.2]: 2000/03/10 07:58:00 lpd)

Adds a recommendation to use gcc on SGI platforms. (doc/Make.htm [1.3]:
2000/03/10 07:59:53 lpd)

Updates documentation regarding Unix systems that do/don't use libpthread.
(doc/Make.htm [1.4]: 2000/03/10 08:01:35 lpd)

Removes support for VAX C, which DEC stopped supporting 9 (!) years ago.
(doc/Make.htm [1.5], doc/Use.htm [1.2]: 2000/03/10 08:02:59 lpd)

Updates the documentation for building Aladdin releases to reflect revised
procedures for the Windows executable, and a few other minor changes.
(doc/Release.htm [1.2]: 2000/03/10 15:55:39 lpd)

Adds the ability to compile on OS/2 with XFree86. (doc/Install.htm [1.3],
doc/Make.htm [1.6]: 2000/03/10 19:50:49 lpd)

Moves all history for versions 5.n into History5.htm; creates History6.htm
for versions 6.n; redefines News.htm as containing only news for the current
release; adds (a link to) Changes.htm for the mechanically generated change
log. (doc/History5.htm [1.2], doc/History6.htm [1.1], doc/News.htm [1.2],
doc/README [1.2], doc/Readme.htm [1.2]: 2000/03/14 06:14:43 lpd)

Partially updates the release procedure documentation to reflect the use of
SourceForge and CVS. (doc/Release.htm [1.3]: 2000/03/14 06:39:23 lpd)

Adds a change log generated mechanically from the CVS logs. Future releases
may omit this file (doc/Changes.htm) from their change log.
(doc/Changes.htm [1.1], doc/News.htm [1.3]: 2000/03/14 06:48:44 lpd)

Revises the release procedures to reflect use of SourceForge, and to
separate out the procedures for building Windows executables.
(doc/Release.htm [1.4]: 2000/03/15 02:24:58 lpd)

Adds information on uninstalling Ghostscript on Windows.
(doc/Install.htm [1.4]: 2000/03/15 07:29:53 lpd)

Adds the ability to set the ProcessColorModel of the pdfwrite device to
/DeviceGray, /DeviceRGB, or /DeviceCMYK. This affects the color space used
for fill, stroke, text, and imagemask, and for images that (for whatever
reason) can't be written in their specified color space. Note that this is a
short-term fix: pdfwrite should output colors in the color space in which
they were specified. However, a proper fix will require more significant
architectural changes. (doc/News.htm [1.4]: 2000/03/16 01:21:23 lpd)

Adds a reference to a third-party Fontmap for the Computer Modern fonts.
(doc/Fonts.htm [1.2]: 2000/03/16 04:05:07 lpd)

Adds documentation and a makefile entry for Matthew Gelhaus' cdj880 driver.
The code will eventually be included in gdevcd8.c, but it is not yet mature
enough. (doc/Devices.htm [1.3]: 2000/03/16 08:09:42 lpd)

Updates the version number reference in the troff header.
(man/ps2pdf.1 [1.3], man/ps2ps.1 [1.3]: 2000/03/17 00:47:08 lpd)

Removes the attempted documentation on building Windows executable
distributions: it was never correct, and Aladdin will no longer be creating
such distributions. Also reorganizes the document slightly and brings the
rest of it fully into line with reality. (doc/Release.htm [1.6]: 2000/03/17
04:40:47 lpd)

Adds information on building with the Intel C/C++ optimizing compiler
(requires the Microsoft Visual C++ environment), and fixes a typo in the
link to ftp.cdrom.com. (doc/Make.htm [1.7]: 2000/03/17 17:42:59 lpd)

Checks in the first wrap-up for the 6.01 release. (doc/Changes.htm [1.2],
doc/History6.htm [1.2], doc/News.htm [1.5]: 2000/03/18 04:13:40 lpd)

Procedures


Fixes problems:
	- The terminating $ on the $Id: line in gsmalloc.c was missing, and
dwuninst.rc lacked a $Id: line. (dwuninst.rc [1.2]: 2000/03/10 03:44:33 lpd)
	- The %ram% IODevice was defined, but should not be (it represents a
RAM-based file system, which Ghostscript does not provide). Fix: The type of
the %null% IODevice was /FileSystem rather than /Special. (int.mak [1.2]:
2000/03/10 07:02:07 lpd)
	- The dependency list for coslwxl omitted a $(DD).
(contrib.mak [1.2]: 2000/03/10 07:30:54 lpd)
	- The makefile still referred to a long-gone driver for the DEC
LA70. (contrib.mak [1.3]: 2000/03/10 07:32:43 lpd)
	- The Unix install process tried to make links without deleting them
first. (unixinst.mak [1.2]: 2000/03/10 07:49:21 lpd)
	- The Watcom compiler switches didn't force enums to occupy a full
int, leading to execution errors because the code casts (enum *) pointers to
(int *). (wccommon.mak [1.2]: 2000/03/10 08:15:31 lpd)
	- The Windows zip archive didn't include font metrics files. (This
change only fixes the build procedure: it doesn't actually update the
currently released zip archive.) (winint.mak [1.2]: 2000/03/10 08:17:06 lpd)
	- the "all architectures" build and test script hadn't been updated
to use different STDLIBS values depending on where the platform provides the
pthreads library. (all-arch.mak [1.2]: 2000/03/10 15:40:43 lpd)
	- The documentation for building with pthreads on FreeBSD hadn't
been updated. (unix-gcc.mak [1.2], unixansi.mak [1.2], unixtrad.mak [1.2]:
2000/03/10 15:44:01 lpd)
	- gsmalloc.c didn't include the prototype for gs_exit(), which it
calls. (lib.mak [1.2]: 2000/03/10 15:53:08 lpd)

Because of rampant confusion, disagreement, and lack of standardization,
removes the RPM-related spec and patch files. (gs-fonts.rps [1.2],
gs.rps [1.2], rpm-conf.dif [1.2]: 2000/03/10 03:22:04 lpd)

Increases the stack size for the PC platforms, since a user had reported
that the OS/2 stack size was too small. (dw32c.def [1.2],
dwmain32.def [1.2], gsos2.def [1.2]: 2000/03/10 03:33:21 lpd)

Updates the Brother HL7xx drivers with a new user-contributed version, plus
a couple of minor fixes. (contrib.mak [1.4]: 2000/03/10 07:33:44 lpd)

Adds a new eps2eps utility analogous to ps2ps. (unixinst.mak [1.3]:
2000/03/10 07:51:55 lpd)

Removes support for VAX C, which DEC stopped supporting 9 (!) years ago.
(openvms.mak [1.2], openvms.mmk [1.2]: 2000/03/10 08:02:59 lpd)

Updates all makefiles to the current libpng version, 1.0.5.
(bcwin32.mak [1.2], dvx-gcc.mak [1.2], msvc32.mak [1.2], msvclib.mak [1.2],
os2.mak [1.2], ugcclib.mak [1.2], unix-gcc.mak [1.3], unixansi.mak [1.3],
unixtrad.mak [1.3], watc.mak [1.2], watclib.mak [1.2], watcw32.mak [1.2]:
2000/03/10 15:48:58 lpd)

Updates the version # to 6.01, and the version date. (version.mak [1.2]:
2000/03/10 17:18:29 lpd)

Adds the ability to compile on OS/2 with XFree86. (os2.mak [1.3]: 2000/03/10
19:50:49 lpd)

Moves all history for versions 5.n into History5.htm; creates History6.htm
for versions 6.n; redefines News.htm as containing only news for the current
release; adds (a link to) Changes.htm for the mechanically generated change
log. (unixinst.mak [1.4], version.mak [1.3]: 2000/03/14 06:14:44 lpd)

Adds entries for ibm-rs6000-aix-4.3, sgi-mips-irix6.5-64bit, and
sun-sparc-solaris-64bit. (all-arch.mak [1.3]: 2000/03/15 18:38:29 lpd)

Adds the ability to set the ProcessColorModel of the pdfwrite device to
/DeviceGray, /DeviceRGB, or /DeviceCMYK. This affects the color space used
for fill, stroke, text, and imagemask, and for images that (for whatever
reason) can't be written in their specified color space. Note that this is a
short-term fix: pdfwrite should output colors in the color space in which
they were specified. However, a proper fix will require more significant
architectural changes. (version.mak [1.4]: 2000/03/16 01:21:24 lpd)

Adds documentation and a makefile entry for Matthew Gelhaus' cdj880 driver.
The code will eventually be included in gdevcd8.c, but it is not yet mature
enough. (contrib.mak [1.5]: 2000/03/16 08:09:42 lpd)

Adds a missing dependency of gdevpdft.o on gxfont42.h. (devs.mak [1.2]:
2000/03/17 02:59:26 lpd)

Adds a disclaimer of responsibility for the makefile section for creating
distribution archives, which Aladdin is no longer maintaining.
(winint.mak [1.3]: 2000/03/17 03:01:58 lpd)

Checks in the first wrap-up for the 6.01 release. (unix-gcc.mak [1.4],
version.mak [1.5]: 2000/03/18 04:13:40 lpd)

Utilities


Fixes problems:
	- The loader for the stochastic halftone incorrectly assumed that
the resource file left the resource on the stack, causing a stackunderflow
error. (lib/stocht.ps [1.2]: 2000/03/10 03:34:44 lpd)
	- The ps2pdf*.bat scripts didn't set PS2PDFSW to the empty string if
there were no arguments, causing the same file to be processed again.
(lib/ps2pdf12.bat [1.2], lib/ps2pdf13.bat [1.2]: 2000/03/10 07:40:00 lpd)
	- Fixes a typo in the fix for putting stdout in binary mode.
(gp_ntfs.c [1.3]: 2000/03/18 01:15:16 lpd)
	- For printer devices, a non-null definition for OutputFile was
required even on platforms that had a default printer (as implemented by
gp_open_printer for that platform). (gp_os9.c [1.2], gp_unix.c [1.2],
gp_vms.c [1.2]: 2000/03/18 01:45:16 lpd)

In ansi2knr, adds user-contributed support for concatenated string literals
and character constants, and fixes for a couple of minor bugs.
(ansi2knr.c [1.2]: 2000/03/10 03:16:17 lpd)

Updates the pf2afm.ps utility with a revised version from its authors.
(lib/pf2afm.ps [1.2]: 2000/03/10 03:35:37 lpd)

Adds a new eps2eps utility analogous to ps2ps. (lib/eps2eps [1.1],
lib/eps2eps.bat [1.1]: 2000/03/10 07:51:55 lpd)

Removes a temporary file that was included in the fileset by mistake.
(lib/history [1.2]: 2000/03/10 08:18:36 lpd)

Changes the ps2pdf MS Windows / MS-DOS scripts to use temporary files to
avoid the absurdly low limits on the length of a command line and the total
size of environment variable definitions. (lib/ps2pdf.bat [1.2],
lib/ps2pdf12.bat [1.3], lib/ps2pdf13.bat [1.3], lib/ps2pdfwr.bat [1.2],
lib/ps2pdfxx.bat [1.1]: 2000/03/14 20:20:20 lpd)

On Windows, puts stdout into binary mode as well as stdin, to allow piping
printer output through stdout (not a good idea, but it should be supported
as well as on other platforms). (gp_ntfs.c [1.2]: 2000/03/17 06:22:59 lpd)

Drivers


Fixes problems:
	- When converting PostScript to PDF, selecting /Bicubic as an image
DownsampleType caused an error instead of defaulting to /Average.
(gdevpsdf.h [1.2], gdevpsdi.c [1.2], gdevpsdp.c [1.2]: 2000/03/10 04:16:09
lpd)
	- The mswinpr2 driver didn't handle setting BitsPerPixel to the same
value when the device was already open, possibly causing an error on restore
or grestore. (gdevwpr2.c [1.2]: 2000/03/10 04:26:07 lpd)
	- When operating in buffered mode (MaxBitmap > 0), the X driver
sometimes failed to copy all of the updated area to the screen.
(gdevx.c [1.2], gdevx.h [1.2], gdevxini.c [1.2], gdevxxf.c [1.2]: 2000/03/10
06:56:27 lpd)
	- The [e]pswrite driver produced invalid output if the input file
didn't end with a showpage. Also cleans up some formatting and removes a
redundant test. (gdevps.c [1.2]: 2000/03/10 07:44:27 lpd)
	- Fixes a problem producing too much black in the output; also adds
support for 5 new printers (H-P Color DeskJet 690, H-P DesignJet 750, and
Epson Stylus Color 200). Note that this is user-contributed code.
(gdevupd.c [1.2], lib/bjc610a0.upp [1.2], lib/bjc610a1.upp [1.2],
lib/bjc610a2.upp [1.2], lib/bjc610a3.upp [1.2], lib/bjc610a4.upp [1.2],
lib/bjc610a5.upp [1.2], lib/bjc610a6.upp [1.2], lib/bjc610a7.upp [1.2],
lib/bjc610a8.upp [1.2], lib/bjc610b1.upp [1.2], lib/bjc610b2.upp [1.2],
lib/bjc610b3.upp [1.2], lib/bjc610b4.upp [1.2], lib/bjc610b6.upp [1.2],
lib/bjc610b7.upp [1.2], lib/bjc610b8.upp [1.2], lib/cdj550.upp [1.2],
lib/cdj690.upp [1.1], lib/cdj690ec.upp [1.1], lib/dnj750c.upp [1.1],
lib/dnj750m.upp [1.1], lib/ras32.upp [1.2], lib/stc.upp [1.2],
lib/stc1520h.upp [1.2], lib/stc2.upp [1.2], lib/stc200_h.upp [1.1],
lib/stc2_h.upp [1.2], lib/stc2s_h.upp [1.2], lib/stc500p.upp [1.2],
lib/stc500ph.upp [1.2], lib/stc600ih.upp [1.2], lib/stc600p.upp [1.2],
lib/stc600pl.upp [1.2], lib/stc800ih.upp [1.2], lib/stc800p.upp [1.2],
lib/stc800pl.upp [1.2], lib/stc_h.upp [1.2], lib/stc_l.upp [1.2],
lib/stcany.upp [1.2]: 2000/03/16 02:01:36 lpd)
	- The X driver's algorithm for deciding when to update the screen
was changed several times between 5.50 and 6.0, and one of the more recent
changes caused it to copy many more pixels to the screen than necessary if
the file was making marks on the page in widely separated places.
(gdevx.c [1.3]: 2000/03/17 07:35:43 lpd)
	- In the X driver, the full-page buffer controlled by -dMaxBitmap=
wasn't allocated with a stable allocator, possibly leading to memory access
errors if save/restore were used. (gdevxini.c [1.3]: 2000/03/18 04:11:59
lpd)

Updates the Brother HL7xx drivers with a new user-contributed version, plus
a couple of minor fixes. (gdevhl7x.c [1.2]: 2000/03/10 07:33:44 lpd)

Enhances the [e]pswrite driver to handle Indexed color spaces over Device
color spaces, only with the standard Decode. (gdevps.c [1.3]: 2000/03/10
07:45:50 lpd)

Adds the ability to set the ProcessColorModel of the pdfwrite device to
/DeviceGray, /DeviceRGB, or /DeviceCMYK. This affects the color space used
for fill, stroke, text, and imagemask, and for images that (for whatever
reason) can't be written in their specified color space. Note that this is a
short-term fix: pdfwrite should output colors in the color space in which
they were specified. However, a proper fix will require more significant
architectural changes. (gdevpsdf.c [1.2], gdevpsdf.h [1.3]: 2000/03/16
01:21:24 lpd)

Adds two more user-contributed 'uniprint' printer parameter sets: Epson
Stylus Color 640, and a generic Epson Stylus Color in high resolution mode
(720x720 dpi). (lib/stc640p.upp [1.1], lib/stcany_h.upp [1.1]: 2000/03/16
02:03:40 lpd)

PDF writer


Fixes problems:
	- In-line images emitted an extra 'q' (gsave), causing the CTM to
become incorrect, entries to pile up on the dictionary stack, and an
invalidrestore error to occur at the end of the page. (gdevpdfi.c [1.2]:
2000/03/10 03:47:37 lpd)
	- The change in 5.99 to work around Acrobat Reader's 32K limit on
user space coordinates caused all 0-width rectangles to disappear, which had
major effects on some files. (gdevpdfd.c [1.2]: 2000/03/10 03:48:10 lpd)
	- Incrementally downloaded TrueType fonts produced truncated Widths
tables in the output. We have patched this with a ******HACK****** that
causes such fonts to be converted to bitmaps: the correct fix (to delay
determining the range of valid characters until the font is written) is too
large a change to make in a bug fix release. (gdevpdft.c [1.2]: 2000/03/10
03:48:48 lpd)

Adds the ability to set the ProcessColorModel of the pdfwrite device to
/DeviceGray, /DeviceRGB, or /DeviceCMYK. This affects the color space used
for fill, stroke, text, and imagemask, and for images that (for whatever
reason) can't be written in their specified color space. Note that this is a
short-term fix: pdfwrite should output colors in the color space in which
they were specified. However, a proper fix will require more significant
architectural changes. (gdevpdf.c [1.2], gdevpdfd.c [1.3], gdevpdfi.c [1.3],
gdevpdfp.c [1.2], gdevpdft.c [1.3], gdevpdfu.c [1.2], gdevpdfx.h [1.2]:
2000/03/16 01:21:24 lpd)

Interpreter (PDF)


Fixes problems:
	- When interpreting a PDF file, the Install page device procedure
got more and more deeply nested after every page, eventually causing an
execstackoverflow. (lib/pdf_main.ps [1.2]: 2000/03/10 03:56:11 lpd)
	- When interpreting a PDF file, text drawing operators didn't reset
the text position, so strings could get displayed on top of each other. (bug
introduced by a fix in 5.98) (lib/pdf_ops.ps [1.2]: 2000/03/10 03:57:03 lpd)
	- When interpreting a PDF file, substituted small-cap fonts were
created with incorrect scaling. (lib/pdf_font.ps [1.2]: 2000/03/10 03:57:50
lpd)

Cleans up some formatting. (lib/pdf_base.ps [1.2]: 2000/03/10 03:58:14 lpd)

Interpreter


Fixes problems:
	- There were extraneous 'def' commands that caused definitions to be
made in the wrong dictionary. (lib/gs_ttf.ps [1.2]: 2000/03/10 03:31:39 lpd)
	- If an error occurred while loading a font, it wouldn't produce an
error message. (This is a 'fix' of a 'fix' of a 'fix': it might well break
something else.) (lib/gs_type1.ps [1.2]: 2000/03/10 03:37:14 lpd)
	- When reading the strings of a binary object sequence, having to
get more data from a procedure-based stream sometimes caused a syntaxerror.
Fix: If the reserved (0) field in binary objects or binary object sequences
was not 0, no syntaxerror occurred. (iscanbin.c [1.2]: 2000/03/10 03:38:50
lpd)
	- The code for handling execstackoverflow errors didn't cut back the
stack correctly, possibly causing invalid memory accesses if an incorrect
attempt was made to run a cleanup procedure. (interp.c [1.2]: 2000/03/10
04:04:38 lpd)
	- Writing of dictionaries in binary object output, a non-standard
extension, was enabled by default, and also had to be enabled at startup
time if it was ever going to be used. Fix: Binary error messages caused an
error if the command wasn't of a type that printobject could handle. We now
do what the Adobe implementations appear to do in this case, namely, convert
the object with cvs. (lib/gs_btokn.ps [1.2]: 2000/03/10 04:27:31 lpd)
	- CloseSource and CloseTarget were effectively ignored for Flate and
LZW filters with a Predictor, and for the DCT filters. (ifilter.h [1.2],
zfdctd.c [1.2], zfdcte.c [1.2], zfdecode.c [1.2], zfilter.c [1.2],
zfilter2.c [1.2]: 2000/03/10 04:32:51 lpd)
	- findlibfile didn't handle %iodevice% prefixes correctly.
(zfile.c [1.2]: 2000/03/10 04:35:08 lpd)
	- fileposition didn't give an error for filters or non-seekable
streams. (zfileio.c [1.2]: 2000/03/10 04:35:53 lpd)
	- Images with input from a file or filter demanded 1 byte of data
too many, sometimes causing the last line of the image to be dropped. (bug
probably introduced in 6.0) (zimage.c [1.2]: 2000/03/10 04:37:02 lpd)
	- The check for a show within a cshow procedure for a CID font was
wrong. Fix: Character widths in CIDFontType 0 fonts were ignored (!). Adds a
.glyphwidth operator to support correct handling of character widths for CID
fonts. Adds a glyphwidth procedure to the library, like glyphshow and
glyphpath, in order to support correct handling of widths for CID fonts.
(ichar.h [1.2], lib/gs_cidfn.ps [1.2], zchar.c [1.2], zcharx.c [1.2]:
2000/03/10 04:41:47 lpd)
	- resourcestatus for fonts was broken. (lib/gs_res.ps [1.2]:
2000/03/10 04:54:15 lpd)
	- Fixes incorrect documentation of several procedures.
(lib/gs_fonts.ps [1.2]: 2000/03/10 07:00:28 lpd)
	- The %ram% IODevice was defined, but should not be (it represents a
RAM-based file system, which Ghostscript does not provide). Fix: The type of
the %null% IODevice was /FileSystem rather than /Special. (ziodev2.c [1.2]:
2000/03/10 07:02:07 lpd)
	- Directly-loaded TrueType fonts (including embedded TrueType fonts
in PDF files) could get confused with each other in the cache, because their
XUIDs were based on the font checksum field, which some fonts don't have set
correctly. (lib/gs_ttf.ps [1.3]: 2000/03/16 07:38:07 lpd)

Adds a new example file, a 3-D synthetic image. (examples/doretree.ps [1.1]:
2000/03/10 04:00:45 lpd)

Adds implementations of the devforall, devstatus, and diskonline
compatibility operators. (lib/gs_statd.ps [1.2]: 2000/03/10 04:01:55 lpd)

Some Adobe CIDFonts include a line /Setup /cid_Setup load def that
apparently is intended only to prevent the fonts from being loaded by a
standard PostScript interpreter (as opposed to ATM or a special font
loader), since cid_Setup is not defined anywhere and Setup is never
referenced; this change adds a dummy definition of cid_Setup to work around
this. (lib/gs_cidfn.ps [1.3]: 2000/03/10 04:53:25 lpd)

Updates the version # to 6.01, and the version date. (lib/gs_init.ps [1.2]:
2000/03/10 17:18:29 lpd)

Changes the default undercolor removal and black generation functions back
from f(k) = k to f(k) = 0. This fixes some, but not all, of the reported
problems with color inkjet output in 6.0. (lib/gs_init.ps [1.3]: 2000/03/10
18:47:31 lpd)

On Windows, puts stdout into binary mode as well as stdin, to allow piping
printer output through stdout (not a good idea, but it should be supported
as well as on other platforms). (dwmainc.cpp [1.2]: 2000/03/17 06:22:59 lpd)

Streams


Changes the sbuf_min_left macro to a procedure for readability and in
preparation for later revision. (stream.c [1.2], stream.h [1.2]: 2000/03/10
03:40:13 lpd)

Library


Fixes problems:
	- (%os%) currentdevparams didn't return (fixed) values for
InitializeAction, Mounted, Removable, Searchable, SearchOrder, and
Writeable, or (meaningful) values for BlockSize, Free, and LogicalSize.
Currently, the latter values are dummies. (gsiodev.c [1.2]: 2000/03/10
03:43:06 lpd)
	- The terminating $ on the $Id: line in gsmalloc.c was missing, and
dwuninst.rc lacked a $Id: line. (gsmalloc.c [1.2]: 2000/03/10 03:44:33 lpd)
	- RasterOps with source transparency = 0, texture transparency = 1
didn't match the (very peculiar) H-P specification even if
TRANSPARENCY_PER_H_P was defined. (gdevdrop.c [1.2], gdevmrop.h [1.2],
gsropt.h [1.2]: 2000/03/10 04:06:15 lpd)
	- The prototype for gs_exit() was not included even though gs_exit()
was called. Fix: A cast discarded const unnecessarily. (gsalloc.c [1.2]:
2000/03/10 04:08:23 lpd)
	- The type of the %pipe% IODevice was /FileSystem, whereas it should
be /Special. (gdevpipe.c [1.2]: 2000/03/10 04:13:57 lpd)
	- An incorrectly formatted procedure couldn't be converted correctly
by ansi2knr. (gxidata.c [1.2]: 2000/03/10 04:30:58 lpd)
	- The check for a show within a cshow procedure for a CID font was
wrong. Fix: Character widths in CIDFontType 0 fonts were ignored (!). Adds a
.glyphwidth operator to support correct handling of character widths for CID
fonts. Adds a glyphwidth procedure to the library, like glyphshow and
glyphpath, in order to support correct handling of widths for CID fonts.
(gschar.c [1.2], gschar.h [1.2], gstext.c [1.2], gstext.h [1.2]: 2000/03/10
04:41:47 lpd)
	- The description of the value returned by code_map_decode_next in
*pchr was incorrect. (documentation bug only) (gsfcmap.c [1.2]: 2000/03/10
07:03:09 lpd)
	- Fixes a problem producing too much black in the output; also adds
support for 5 new printers (H-P Color DeskJet 690, H-P DesignJet 750, and
Epson Stylus Color 200). Note that this is user-contributed code.
(gsargs.h [1.2]: 2000/03/16 02:01:36 lpd)
	- The code for Axial shadings incorrectly assumed that if the
shading axis was horizontal or vertical in user space, it was also
horizontal or vertical in device space: this caused incorrect results when
the CTM wasn't orthogonal. (gxshade1.c [1.2]: 2000/03/17 08:17:55 lpd)
	- For printer devices, a non-null definition for OutputFile was
required even on platforms that had a default printer (as implemented by
gp_open_printer for that platform). (gp.h [1.2], gsdevice.c [1.2]:
2000/03/18 01:45:16 lpd)

Clears the glyf and loca offsets in TrueType fonts that lack these tables,
so that clients who care can tell whether the font is being downloaded
incrementally. (gstype42.c [1.2]: 2000/03/10 03:45:29 lpd)

Changes a few macro definitions to work around over-zealous compiler
warnings. (gstype1.c [1.2], gstype2.c [1.2], gxtype1.h [1.2]: 2000/03/10
04:29:37 lpd)

Changes the default undercolor removal and black generation functions back
from f(k) = k to f(k) = 0. This fixes some, but not all, of the reported
problems with color inkjet output in 6.0. (gxdcconv.c [1.2]: 2000/03/10
18:47:31 lpd)


Version 6.0 (2000-02-03)

This is the first public release since 5.50. See the release summary for information about new capabilities and known problems.

Documentation

Documents the fact that the plane_depths of a gx_image_enum structure may vary, and that planes_wanted procedure of a gx_image_enum must return false if the depths *or* widths can change. (gxiparam.h) Documents the fact that a wanted plane's wanted status, width, or depth can only be changed by a call of plane_data that provides data for that plane. (gxiparam.h) Documents the change in the handling of the pthreads library. (doc/Make.htm) Documents the fact that setting parameters for the DCTEncode filter in ps2pdf causes a crash. (doc/Ps2pdf.htm) Documents another bug in the MIPSpro 7.x / IRIX 6.5.x compilers, with isave.c. (doc/Make.htm) Corrects Russell Lang's e-mail address. (doc/New-user.htm) Documents the new image operator test file and the pdfeof file. (doc/Psfiles.htm) Documents the 'w' argument for image_render procedures. (gxiclass.h) Adds a little more checking to the release process. (doc/Release.htm) Documents the return values from the font build_char procedure. (gxfont.h) Documents the fact that the free 'zip' program is needed to build the self-extracting Windows executable, as well as WinZipSE. (doc/Make.htm, msvc32.mak, winint.mak) Adds references to several new free fonts. (doc/Fonts.htm) Documents an important invariant for streams. (stream.h) Adds a reference for user-supported Watcom / GNU make makefiles. (doc/Make.htm, doc/New-user.htm) Documents the dependence of gs_ttf.ps on some of the gs_*_e.ps files. (lib/gs_ttf.ps) Documents how to make self-extracting Windows executables. (doc/Release.htm) Adds a number of new user-contributed man pages. (unixinst.mak, man/gslp.1, man/wftopfa.1, man/printafm.1, man/pfbtopfa.1, man/font2c.1, man/dvipdf.1, man/ps2pdfwr.1, man/gsnd.1, man/pf2afm.1, man/ps2pdf.1)

Procedures

Fixes problems: - Building on BSDI didn't work. The simplest way to fix this was to change the linking of the pthreads library on Unix platforms to be included in STDLIBS rather than the "sync" implementation. (fix contributed by a user) (lib.mak, unix-gcc.mak, unixansi.mak, unixtrad.mak) - Once again, some runtime files weren't installed. (unixinst.mak) - Building the self-extracting executable didn't work. (winint.mak) Updates the user-contributed all-architectures makefile. (all-arch.mak)

Utilities

Fixes problems: - A needed #include was missing. (geninit.c) - There were signed/unsigned char mismatches. (genht.c, geninit.c) - The MacOS compiler imposes a 32K limit on the size of a stack frame: we changed the code to use malloc/free. (geninit.c) Removes an unnecessary variable. (echogs.c) Adds a file that attempts to test the image operators exhaustively. (lib/image-qa.ps, unixinst.mak) Enhances the prfont.ps utility to print CIDFonts. (lib/prfont.ps) Adds a utility file that patches the PDF interpreter to allow garbage after the %%EOF (or the %%EOF to be missing completely). (lib/pdfeof.ps)

Drivers

Fixes problems: - The X driver compared too many bits of color value, leading to unnecessary halftoning. (bug introduced by a fix in 5.99) (gdevxcmp.c) - Output from the pswrite driver got a dictfull error on Level 1 printers. (gdevps.c) - Anti-aliasing had stopped working on MS Windows and OS/2. (bug probably introduced in 5.65) (gdevmswn.c, gdevpm.c)

Platforms

Adds a conditional definition of PTHREAD_CREATE_DETACHED for old versions of the pthreads library. (gp_psync.c) Updates the Microsoft Visual C++ library makefile for VC++ 6. (msvclib.mak) Updates some copyright dates. (winint.mak, dwsetup.rc)

Fonts

Updates the URW fonts to include the expanded Adobe character set, including many Eastern European accented characters. (doc/New-user.htm) Removes a 'readonly' that inconvenienced the authors of ttf2pf. (lib/gs_ttf.ps)

PDF writer

Fixes problems: - The Dest key was deleted from GoTo and GoToR link annotation pdfmarks. (gdevpdfm.c) - {name} references were substituted even in stream data for the /PUT pdfmark. (gdevpdfm.c) - The revision number was sometimes printed incorrectly if its fraction part was zero. (gdevpdf.c) - Embedded Multiple Master font instances weren't identified as MMType1 rather than Type1. (gdevpdff.h, gdevpdff.c, gdevpdft.c, gdevpdfw.c) - The test against MaxSubsetPct was incorrect when the percentages were equal. (gdevpdfw.c) - Font registrations weren't removed when the device was closed. (gdevpdff.h, gdevpdfx.h, gdevpdff.c, gdevpdfw.c) - Multiple /OBJ pdfmarks with the same name caused an error. For Distiller compatibility, we now allow this if the type is the same, even though the pdfmark specification doesn't say anything about this being legal. (gdevpdfm.c) Removes an unnecessary variable. (gdevpdff.c, gdevpdfr.c) Disables embedding Multiple Master font instances, since Acrobat Reader doesn't accept what appear to be correct output and we don't have time before the release to track down the problem. (gdevpdft.c)

Interpreter (PDF)

Factors some code to allow patching the PDF reader to allow garbage after the %%EOF (or the %%EOF to be missing completely). (lib/pdf_main.ps)

Interpreter

Fixes problems: - Type 1 fonts with non-standard OtherSubrs had stopped working. (bug introduced since 5.60) (zchar1.c) - usecmap didn't work. (lib/gs_cmap.ps) - The glyph_info procedure for Type 1 fonts didn't take Metrics[2] or CDevProc into account. (zchar1.c, zfont1.c) - The multiple-data-source case of images was broken. (bug introduced in 5.99) (zimage.c) - If a page device Install procedure caused an error, things could be left in an inconsistent state. (lib/gs_setpd.ps) - Using a DeviceN color space could access uninitialized data in a color value. (zcsdevn.c) - DeviceN images with procedure data sources were broken. (zimage.c) - Images with a procedure data source could terminate prematurely if their processing was interrupted. (zimage.c) - The garbage collector only marked half the name table sub-tables, and attempted to mark an equal number of invalid pointers, leading to invalid accesses or memory corruption. (iname.c) Removes an unused variable. (zmisc.c)

Streams

Fixes problems: - sgets didn't reset the cursor pointers, so sgets into a client buffer followed by sseek (for some kinds of streams, including files) could get confused. (stream.c)

Library

Fixes problems: - A 'const' qualifier was omitted, leading to a type mismatch. (gxclrast.c) - The revision number was sometimes printed incorrectly if its fraction part was zero. (gsmisc.c) - gs_image_next returned the wrong value in *pused if it incremented the plane number. (bug introduced in 5.99) (gsimage.c) - Only the last of the data_x and raster values in the local 'planes' array in gs_image_next_planes were initialized. (bug introduced in 5.99) (gsimage.c) - The multiple-data-source case of images was broken. (bug introduced in 5.99) (gsimage.h, gsimage.c) - ImageType 3 images with unequal scaling for the mask and data didn't work. (We thought they once did, but it appears they never have.) (gximage3.c) - Images with 12-bit samples treated a Decode entry of [1 0] the same as [0 1]. (Other, general Decode entries worked correctly.) (gxipixel.c) - ImageType 3 images didn't work if processing was ever interrupted for remapping a color. (gximage3.c) - Images in DeviceN color spaces with 12-bit samples didn't work. (gxi12bit.c, gxidata.c) - Images in DeviceN color spaces could fail to render properly because the interruption of rendering left a half-built entry in an internal cache. (gxi12bit.c, gxicolor.c) - Images with non-idempotent RasterOps in 1-component DeviceN color spaces didn't render properly, because the same pixel was rendered multiple times after a color remapping interruption. (gximono.c) - The fast case of masked images caused a crash if invoked without an imager state. (gximono.c) - Flushing buffered image data could cause coordinate bookkeeping to get out of sync. (gxidata.c) - ImageType 3, InterleaveType 2 images sometimes failed to render the last row. (gximage3.c) - The fix in 5.88 for resizing large objects had a bug itself. (gsalloc.c) - Whan banding, if a client supplied more data than necessary for an image, the client was told (incorrectly) that all of the data was used. (fix from Artifex) (gxclimag.c) - Null patterns caused a crash. (bug probably introduced by changes to support PatternType 2) (gspcolor.c) - On hand-initialized memory devices where line_ptrs[0] != base, monobit RasterOps could cause invalid or stray memory accesses. (gdevmr1.c) Removes an unnecessary variable. (gdevppla.c, gsfont.c) Adds the ability to call a specified procedure when unregistering notification, needed for removing PDF font registrations. (gsnotify.h, gsnotify.c) Updates the copyright year. (gscdef.c)

Copyright © 2000 Aladdin Enterprises. All rights reserved.

This file is part of Aladdin Ghostscript. See the Aladdin Free Public License (the "License") for full details of the terms of using, copying, modifying, and redistributing Aladdin Ghostscript.

Ghostscript version 6.01, 17 March 2000