home *** CD-ROM | disk | FTP | other *** search
Text File | 1996-01-10 | 201.5 KB | 5,622 lines |
- Copyright (C) 1989, 1995 Aladdin Enterprises. All rights reserved.
-
- This file is part of Aladdin Ghostscript.
-
- Aladdin Ghostscript is distributed with NO WARRANTY OF ANY KIND. No author
- or distributor accepts any responsibility for the consequences of using it,
- or for whether it serves any particular purpose or works at all, unless he
- or she says so in writing. Refer to the Aladdin Ghostscript Free Public
- License (the "License") for full details.
-
- Every copy of Aladdin Ghostscript must include a copy of the License,
- normally in a plain ASCII text file named PUBLIC. The License grants you
- the right to copy, modify and redistribute Aladdin Ghostscript, but only
- under certain conditions described in the License. Among other things, the
- License requires that the copyright notice and this notice be preserved on
- all copies.
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- This file, NEWS, describes the changes in the most recent releases of
- Ghostscript. Changes in older releases are described in history.doc.
-
- For an overview of Ghostscript and a list of the documentation files, see
- README.
-
- Within each release, news appears in the following order: Documentation,
- Procedures, Utilities, Drivers, Platforms, Fonts, 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 3.53 (1/10/96)
- ============
-
- This is an anomalous, out-of-sequence release requested by a commercial
- licensee. It consists of 3.52 plus the following retrofits from 3.60
- through 3.63:
- - PDF interpreter and pdf2ps;
- - Type 1 rasterizer fixes;
- - Type 1 rasterizer and polygon fill performance improvements;
- - MS Windows and OS/2 fixes;
- - A few other important fixes.
- It does NOT fix all problems reported since 3.52.
-
- The list of changes below indicates which subsequent release was the source
- of each change. In several cases, minor editing of the change was required
- to make it compatible with 3.52.
-
- Documentation
- -------------
-
- Fixes bugs:
- [3.61] The analysis of curve monotonocity in gxpcopy.c had an error.
- (gxpcopy.c)
-
- [3.63] Notes that the OS/2 implementation now requires EMX/GCC 0.9b rather
- than 0.9a. (use.doc)
-
- [3.62] Notes that for Win32s, gs16spl.exe must be in the same directory as
- gswin32.exe. (use.doc)
-
- [3.62] Adds a reference to dos-psv, another "dumb terminal" user interface
- for Ghostscript intended for MS-DOS users. (README)
-
- [3.61] Adds a pointer to DEC's free pstotext utility. (README)
-
- [3.60] Adds a reference to ps_view.ps, a "dumb terminal" user interface for
- Ghostscript intended for MS-DOS users. (README)
-
- Procedures
- ----------
-
- Fixes bugs:
- [3.60] The geninit program (the implementation of COMPILE_INITS=1)
- didn't parse the command line properly, and didn't check for PostScript
- files properly. (geninit.c)
- [3.60] ccfontab.c was omitted from the fileset. The easiest way to
- fix this was to rename it to icfontab.c. (gs.mak, int.mak, ccfontab.c)
- [3.60] The definition of pdfread.dev did an ADDMOD, not a SETMOD.
- (int.mak)
-
- [3.60] Adds a -dNOFONTPATH switch to suppress any consultation of the
- FONTPATH variable or the GS_FONTPATH environment variable. (gs_fonts.ps,
- gs_init.ps)
-
- Utilities
- ---------
-
- Fixes bugs:
- [3.61] pdf2ps didn't write Widths or Encoding in the converted file,
- producing incorrect spacing and incorrect characters. (pdf_2ps.ps)
- [3.60] ps2ascii left a value on the stack for each unrecognized
- character it processed, eventually causing a stackoverflow. (ps2ascii.ps)
-
- [3.61] Changes the rollconv.ps utility to produce files whose names conform
- to the 8.3 length restriction, and to reduce the fixed RAM overhead for
- Kanji fonts. (rollconv.ps)
-
- [3.60] Adds a utility for converting files produced by Macromedia's Rollup
- program to a Type 0 form directly usable by Ghostscript. (rollconv.ps)
-
- Drivers
- -------
-
- Fixes bugs:
- [3.60] Because of a typo, the LaserJet drivers had incorrect
- margins. This was probably a new bug in 3.5x. (gdevdjet.c)
- [3.60] A private name was duplicated. (gdevtfax.c)
- [3.60] The x11alpha driver passed invalid colors to the X library.
- (gdevxalt.c)
- [3.60] The x11alpha driver set the blue component of colors
- incorrectly. (gdevxalt.c)
-
- Platforms
- ---------
-
- Fixes bugs:
- [3.63] The test for WinExec failure on Win32 was incorrect.
- (gp_mswin.c)
- [3.63] getenv was declared redundantly on OS/2. (gp_os2.c)
- [3.63] gs16spl.c was missing <string.h>. (gs16spl.c)
- [3.61] Printing didn't work in 32-bit MS Windows environments.
- (bcwin32.mak, gdevmswn.c, gp_mswin.c)
- [3.61] There were some compatibility problems with IBM C. (os2.mak,
- gsdll.h, gdevpm.c, gp_os2.c)
- [3.60] The printjob created by Ghostscript was called "Ghostscirpt"
- instead of "Ghostscript". (gp_os2.c)
- [3.60] An "export" declaration was omitted from DllInit.
- (gp_mswin.c)
-
- [3.61] Adds a conditional to work around a bug in gcc 2.7.x (it didn't
- recognize that the target of a const T * might still be mutable through
- aliasing). (stdpre.h)
-
- Fonts
- -----
-
- Fixes bugs:
- [3.61] Rasterizing a character in a Type 1 font with an invalid
- FontBBox left some garbage on the operand stack (bug introduced in 3.52 or
- 3.60). (gs_type1.ps)
- [3.61] The font substitution algorithm could fail or loop.
- (gs_fonts.ps)
-
- [3.60] Adds Heavy as a synonym for Bold when doing intelligent font
- substitution. (gs_fonts.ps)
-
- Interpreter
- -----------
-
- Fixes bugs:
- [3.63] Invoking setpagedevice with an undefined key, even with
- Policy = 1, caused an error. (gs_setpd.ps)
- [3.62] Setting the PageSize policy to 1 and then trying to set the
- page size caused an error if FIXEDMEDIA was selected. (gs_setpd.ps)
- [3.61] Rotated characters were rendered incorrectly (bug introduced
- in 3.52). (gstype1.c)
- [3.60] currentscreen and currentcolorscreen could give an error if
- the current screen was set with sethalftone (or, for currentscreen,
- setcolorscreen). (gs_dps1.ps)
- [3.60] Streams could get removed from a bookkeeping list
- prematurely, and wind up dangling. (zfile.c)
- [3.60] Multiple -I switches set the search path incorrectly.
- (gsmain.c)
- [3.60] Fonts could wind up with a pointer to the wrong VM space,
- causing potential GC or save/restore confusion. (zfont2.c)
- [3.60] upath could leave garbage on the stack if it failed.
- (gs_dps1.ps)
-
- [3.61] Extends the client API to allow for pushing values onto the operand
- stack. (imain.h, gs.c, gsmain.c)
-
- [3.61] Defines a .setdefaultscreen procedure that sets the default halftone
- screen, transfer function, and stroke adjustment for the current device.
- Changes selectdevice and setpagedevice so that they call .setdefaultscreen;
- setpagedevice calls .setdefaultscreen before calling the Install procedure,
- so that Install can set different parameters if it wishes. Note that
- setdevice does not do this. (gs_init.ps, gs_setpd.ps)
-
- [3.60] Speeds up rasterizing characters into the cache a little.
- (gs_type0.ps)
-
- [3.60] Changes the default limit on the size of cached characters from the
- maximum of (18 points or 5 times the "average" character size) to (18 points
- or 1% of the total cache size). (gs_init.ps)
-
- [3.60] Implements parts of the Type 1 BuildChar callout in C. (gs_type1.ps,
- zchar.c)
-
- Interpreter (PDF)
- -----------------
-
- Fixes bugs:
- [3.62] If a PDF file substituted a calibrated color space for the
- DeviceGray or DeviceRGB color space using a ColorSpace resource, the
- PostScript file that pdf2ps produced from that PDF file caused an error.
- (gs_pdf.ps)
- [3.61] Tf set the current text font twice, and interacted with
- pdf2ps in an awkward way. (gs_pdf.ps, pdf_2ps.ps, pdf_font.ps)
- [3.61] If a font had variant Widths, it could get confused in the
- cache with the underlying font. (pdf_font.ps)
- [3.61] If a character appeared twice in an encoding and the font
- specified different Widths values for the two occurrences, the last Width
- would be used. We patched this to ignore zero Widths, which is not the
- correct solution but which almost always produces correct output.
- (pdf_font.ps)
- [3.61] Arrays containing nulls didn't print out correctly (bug
- introduced in 3.60). (gs_init.ps)
- [3.61] Some PDF files contain very large dictionaries, which caused
- a stackoverflow. (pdf_base.ps)
- [3.60] The length of an image's data was sometimes calculated
- incorrectly, causing an error when converting PDF to PostScript.
- (pdf_draw.ps)
- [3.60] If word spacing and/or text spacing was non-zero, an error
- could occur. (gs_pdf.ps)
- [3.60] Text that was both filled and stroked caused an error.
- (gs_pdf.ps)
-
- [3.61] Speeds up the initial processing of PDF files by caching the map from
- page numbers to page objects, and by not scanning the outlines if we aren't
- producing PostScript output. (pdf_2ps.ps, pdf_base.ps, pdf_main.ps)
-
- Streams
- -------
-
- Fixes bugs:
- [3.60] When closing an encoding filter stream whose target was also
- a filter, the latter could get called incorrectly with last = 1, possibly
- more than once, leading to premature EOD markers. (stream.c)
- [3.60] The LZW-compatible encoder put out an incorrect end-of-data
- code. (slzwce.c)
- [3.60] The LZW-compatible encoder didn't put out a reset code soon
- enough. (slzwce.c)
- [3.60] Doing a sgets on a closed stream could call sreadbuf,
- possibly causing an error. (stream.c)
-
- Library
- -------
-
- Fixes bugs:
- [3.63] On 16-bit platforms, the computation of t2 and t3 in
- gx_curve_x_at_y could overflow, leading to incorrect output. (gxpcopy.c)
- [3.61] glyphshow displayed a character with code 0 rather than the
- requested character (bug introduced in 3.60.) (gschar.c)
- [3.61] If trimming white space around a character reduced its
- raster, the character was garbled in the cache (bug introduced in 3.60.)
- (gxccman.c)
- [3.61] colorimage would incorrectly convert white pixels to black if
- the image color space was CMYK, the current color space was not CMYK, and
- the number of bits per pixel was 4 or 8. (gsimage2.c)
- [3.61] Type 1 fonts that used the Flex feature applied hints to the
- path multiple times, causing dropouts, uneven stems, and other problems (bug
- probably introduced in 3.21). (gstype1.c)
- [3.61] If a Type 1 font used the Flex feature within the accent of
- an accented character defined with seac, the shape of the accent could be
- distorted. (gxtype1.h, gstype1.c)
- [3.61] If a Type 1 font changed hints using the hint replacement
- facility when the last operation was a closepath, the old hints would be
- applied a second time, distorting the shape. (gxhint2.c, gxhint3.c)
- [3.60] Cached characters sometimes had extra blank space on the
- left, leading to some unnecessary bit-shuffling when imaging them.
- (gxccman.c)
- [3.60] The list of all-bands commands wasn't initialized/reset
- properly. (gxclist.c)
- [3.60] Because of a typo in a macro formal parameter list, a private
- name was duplicated. (gsstruct.h)
- [3.60] Text display operations didn't update the current character
- in the enumerator structure during the fastest path through the code. This
- only matters to one very unusual commercial client. (gschar.c)
-
- [3.61] Adds an alternative implementation of the core path filling algorithm
- that is much faster on objects with curves but doesn't handle Y fattening.
- This is the implementation that will normally be used for rasterizing
- characters. This implementation rasterizes curves directly, without
- flattening them. (gxfixed.h, gxpath.h, gzpath.h, gxdraw.c, gxfill.c,
- gxpcopy.c)
-
- [3.61] Speeds up the flattening of curves substantially by omitting more
- redundant points. (gxpcopy.c)
-
- [3.61] Speeds up character bitmap compression a little more. (gsbitops.h,
- gdevabuf.c, gsbitops.c, gxccman.c)
-
- [3.61] Speeds up anti-aliased graphics a bit by computing a bounding box
- before converting from oversampling to alpha values, and by speeding up the
- bounding box computation itself. (gsbitops.h, gdevabuf.c, gsbitops.c,
- gxccman.c)
-
- [3.60] Speeds up getting the side bearing and width of a Type 1 charstring a
- little. (gxtype1.h, gstype1.c)
-
- [3.60] Adds a compile-time option, ALPHA_LSB_FIRST, which causes
- alpha-sampled characters to be nibble-reversed in the cache. This was
- created for a specialized application and does not interact well with the
- rest of the code. (gsbitops.c)
-
- [3.60] Substantially speeds up entering anti-aliased characters in the
- cache, by removing white space before compressing rather than vice versa.
- (gsbitops.c, gxccman.c)
-
- Version 3.52(limited) (10/6/95)
- =====================
-
- This is an incremental release to fix a few problems in 3.51. Since it is
- being made in an environment with no network connectivity, it will probably
- not be released to the general public. ****** THE CHANGES MARKED WITH ***
- BELOW WERE LOST IN THE PROCESS OF SHUFFLING FILESETS BETWEEN ENVIRONMENTS.
- THEY ARE INCORPORATED IN 3.60 BUT NOT IN 3.52. ******
-
- Procedures
- ----------
-
- Fixes bugs:
- - The fileset included a meaningless empty file. (acctest.ps)
- *** The definition of pdfread.dev did an ADDMOD, not a SETMOD.
- (int.mak)
-
- Interpreter
- -----------
-
- Fixes bugs:
- - The RunLengthEncode filter used with a dictionary argument could
- give a spurious error. (zfilter.c)
- - The fast form of the 'dup' operator failed to check for stack
- overflow, which could lead to memory smashing. (interp.c)
- *** Level 1 configurations gave errors during initialization.
- (ialloc.c, iinit.c, ireclaim.c)
- *** Attempting to look up or insert a noaccess string as a
- dictionary key converted the string to a name rather than giving an error.
- (idict.h, idict.c)
-
- Adds a C implementation of the .dicttomark (>>) procedure. (gs_init.ps,
- zdict.c)
-
- *** Implements parts of the Type 1 BuildChar callout in C. (gs_type1.ps,
- ifont.h, zchar.c, zfont1.c, zfont2.c)
-
- Library
- -------
-
- Fixes bugs:
- - Braces were missing in an initializer. (gxdcolor.h)
- - Composite fonts with a non-zero translation in the FontMatrix
- positioned characters incorrectly. (gschar.c)
- *** gsparam.c wouldn't compile with some versions of the Borland
- compiler. (gsparam.c)
-
- Speeds up the handling of curve segments in Type 1 fonts a little.
- (gstype1.c)
-
- Speeds up displaying very short strings a little. (gschar.c)
-
- *** Implements parts of the Type 1 BuildChar callout in C. (gxfont.h)
-
- Version 3.51 (9/27/95)
- ============
-
- This is the first public release since 3.33. Its main features are a
- working setpagedevice, a working PDF interpreter, and a working PDF to PS
- converter.
-
- Documentation
- -------------
-
- Fixes bugs:
- - The -dSHORTERRORS switch wasn't documented in enough places.
- (current.doc, use.doc)
- - The DLL documentation was internally inconsistent. (dll.doc)
- - The %pipe% file name syntax wasn't documented. (language.doc)
-
- Procedures
- ----------
-
- Fixes bugs:
- - caption.ps wasn't installed properly. (unix-end.mak)
- - geninit depended on $(gconfig_h) in an improper way. (geninit.c,
- int.mak, *.mak)
- - One script lacked the #!/bin/sh header. (gsdj500)
-
- Adds the 24-bit color TIFF driver to all configurations that support
- black-and-white TIFF. (*.mak)
-
- Utilities
- ---------
-
- Fixes bugs:
- - align.ps was omitted from the fileset. (psfiles.doc, align.ps,
- unix-end.mak)
-
- Drivers
- -------
-
- Fixes bugs:
- - A driver had some \s in formal parameter lists. (gdevcdj.c)
- - A driver had some improper &s. (gdevtifs.c)
- - The default MS Windows printer driver was very slow. (gdevwpr2.c)
- - The (newly restructured) TIFF drivers could produce a memory
- access error. (gdevtifs.c)
- - The CGM drivers referred to an obsolete structure member.
- (gdevcgm.c)
- - The black-and-white H-P drivers didn't set the margins properly
- (again). (gdevdjet.c)
- - Several of the most common printer drivers omitted some scan lines
- at the bottom of the page. (gdevprn.h, gdevprn.c)
-
- At the request of the main OS/2 developer, adds a printer device for OS/2.
- (gdevos2p.c, os2.mak)
-
- Makes many changes to the stcolor driver, submitted by the developer just
- before the release. (devices.doc, unix-end.mak, gdevstc.h, gdevstc*.c,
- stcinfo.ps, stcolor.ps, stcinfo.ps)
-
- Platforms
- ---------
-
- Fixes bugs:
- - usertime (and realtime) were broken on VMS. (gp_vms.c)
- - The 32-bit MS Windows DLL control file had a typo. (gsdll32.def)
-
- Removes the color inkjet drivers from the 16-bit Windows executable, because
- they overflow the 64K default data segment; adds PCX, TIFF, and BMP output
- formats. (bcwin.mak)
-
- Interpreter
- -----------
-
- Fixes bugs:
- - A routine was declared 'private' inconsistently. (zcie.c)
- - -dSHORTERRORS didn't remove enough non-Adobe error output.
- (gs_init.ps)
-
- Interpreter (PDF)
- -----------------
-
- Fixes bugs:
- - The ProcSet relied on the presence of NullFont. (gs_pdf.ps)
-
- Library
- -------
-
- Fixes bugs:
- - There was an extraneous \ outside a macro. (gsline.c)
- - Scaling up a black-and-white image could caused many scan lines to
- be inverted. (gsimage1.c)
- - The initial clipping path did not take Margins into account
- properly. (gxdevice.h, gdevxalt.c, gscoord.c, gsdevice.c, gsdevmem.c,
- gsdparam.c, gspath.c)
- - If banding was required, characters could come out as solid black
- rectangles. (gxclist.c, gxclread.c)
-
- Version 3.50(limited) (9/24/95)
- =====================
-
- This is the last limited bug-fix release during beta test. The color
- DeskJet drivers are broken (they sometimes produce black rectangles instead
- of characters); we will fix this in the next release.
-
- The following issues have been postponed to an unspecified future release:
- - Filling areas often writes pixels twice, causing incorrect output
- with certain unusual RasterOp values. [1.814]
- - The tar.gz archives should include a subdirectory like gs-3.46/ in
- the file names.
- - The CCITTFaxDecode filter should skip initial junk if EndOfLine =
- true. [1844 8/24/95, NRE]
-
- Procedures
- ----------
-
- Fixes bugs:
- - The name of the new 24-bit TIFF driver was incorrect in one place.
- (vms.mak)
-
- Utilities
- ---------
-
- Adds a new utility to put a caption in a box at the bottom of each page.
- (caption.ps)
-
- Drivers
- -------
-
- Fixes bugs:
- - The PC display devices weren't page devices. Probably all the
- other display and window system devices should be made page devices too, but
- we aren't going to bother tracking them down. (gdevpcfb.c)
- - There was a lot of duplicated code in the TIFF drivers.
- (gdevtifs.h, gdevtfax.c, gdevtfnx.c, gdevtifs.c)
-
- Updates the bjc600 / bjc800 drivers with changes from the author.
- (devices.doc, gdevbjc.h, gdevcdj.c)
-
- Interpreter
- -----------
-
- Fixes bugs:
- - Building with COMPILE_INITS=1 produced a stackunderflow error.
- (gs_pdf_e.ps)
- - An internal operator didn't have a name. (ztoken.c)
- - Some error and information messages weren't in the Adobe format.
- (gs_fonts.ps, gs_init.ps)
- - Some common Adobe compatibility operators weren't implemented:
- pagemargin, pageparams, setpagemargin. (gs_statd.ps, gs_lev2.ps)
- - setpageparams set Margins rather than PageOffset. (gs_lev2.ps)
- - setpage and setpageparams didn't set Orientation. (gs_lev2.ps)
- - If the end of an input buffer fell just after the / of a literal
- name, a memory access error could occur. (iscan.c)
- - When the interpreter returned from gs_[main_]run_string_continue,
- there could be an extra value on the operand stack. (iscan.h, istream.h,
- interp.c, iscan.c, zfileio.c, zfproc.c, zpaint.c, ztoken.c)
- - If the character cache was disabled, or if a character was too
- large to be cached, returning from a font BuildChar procedure could do an
- erasepage. (zchar.c)
-
- A minor change was required for compatibility with the library change for
- image devices. (zdevice.c)
-
- Adds a -dSHORTERRORS switch that changes some of the common error and
- warning messages for greater Adobe compatibility. (gs_init.ps, gs_fonts.ps)
-
- Interpreter (PDF)
- -----------------
-
- Fixes bugs:
- - If a CharProc for a Type 3 font did a BT/ET, the graphics state
- could get confused. (gs_pdf.ps)
- - If a Tf occurred inside a BT/ET, it didn't take effect on
- subsequent BT/ETs. (gs_pdf.ps)
-
- Library
- -------
-
- Fixes bugs:
- - There was no way to control whether an image device was a page
- device. Fixing this required a NON-BACKWARD-COMPATIBLE CHANGE to
- gs_makewordimagedevice and gs_initialize_wordimagedevice to take a Boolean
- page_device argument. Fortunately, this change affects only a few obscure
- library clients. (gsdevice.h, gsdevmem.c)
-
- Adds translation capability to clipping devices. This isn't used anywhere
- yet. (gxcpath.h, gxcpath.c)
-
- Adds procedures for doing unaligned copy_xxx operations. These were added
- for a customer. (gxdevice.h, gsdevice.c)
-
- Changes the (undocumented) return value of gs_setcachedevice[2]: they used
- to return 1 if the current show operation was a non-displaying one
- (stringwidth or cshow), and now return 1 if the cache device was just
- installed. This change was required to fix the BuildChar page clearing bug
- in the interpreter. THIS IS A NON-BACKWARD-COMPATIBLE CHANGE, but as far as
- I know, there aren't any external clients of these routines. (gschar.h,
- gschar.c)
-
- Version 3.49(limited) (9/20/95)
- =====================
-
- This is another bug-fix release during beta test. There are other bugs
- outstanding, but the ones I know about right now are all platform-specific.
-
- Documentation
- -------------
-
- Fixes bugs:
- - make.doc didn't mention that the .def files are needed to build a
- MS Windows executable. (make.doc)
-
- Procedures
- ----------
-
- Fixes bugs:
- - There were some forward references to macro definitions in the
- makefiles. (int.mak, lib.mak)
- - The default device for library configurations was the null page
- device, not the first device in DEVICE_DEVS. (ugcclib.mak)
-
- Drivers
- -------
-
- Fixes bugs:
- - The BJC600 / BJC800 drivers were missing a header file.
- (gdevbjc.h, gdevcdj.c)
- - A procedure name was used in two different files. (gdevcdj.c)
- - The PCX driver didn't return an error code in case of failure.
- (gdevpcx.c)
- - The X Windows driver produced some confusing warning messages.
- (gdevxini.c)
- - Some names were duplicated between drivers. (gdevepsc.c)
- - The X driver maintained its own, peculiar initial matrix even if
- Ghostview wasn't involved. (gdevx.c)
-
- With the permission of the author, changes the 24-bit TIFF license from GNU
- to Aladdin. (gdevtfnx.c)
-
- Platforms
- ---------
-
- Fixes bugs:
- - The VMS build scripts were out of sync with the makefiles (again).
- (modules.lis, vms.mak)
-
- Interpreter
- -----------
-
- Fixes bugs:
- - When the requested media size matched an available size exactly
- with a 90 degree rotation, Orientation was ignored. (zmedia2.c)
-
- Makes zcurrentdevice extern. (opextern.h, zdevice.c)
-
- Library
- -------
-
- Fixes bugs:
- - A couple of places used memcpy instead of memmove. (gxclread.c)
- - If a bitmap image was compressed with RLE compression in a band
- list, it would cause an error on decompression. (gxclread.c)
- - The representation of colors in the band list was needlessly
- inefficient. (gxcldev.h, gxclist.c, gxclread.c)
- - When using colored halftones, snowflak.ps crashed with an invalid
- memory access. More generally, any use of halftones could cause the garbage
- collector to make an invalid access. (gsstate.c)
-
- Adds some more code for paths in band lists, but again doesn't activate it.
- (gxcldev.h, gxpath.h, gzline.h, gsline.c, gspath1.c, gxclist.c, gxclread.c,
- gxpath.c)
-
- Version 3.48(limited) (9/17/95)
- =====================
-
- This is the second bug-fix release during beta test. Among other things, it
- fixes a bug introduced in 3.47 that caused all PDF files to give an error.
- ******NOTE: the BJC600 and BCJ800 drivers do not work in this release,
- because we didn't get a file from the author in time. They will compile,
- but not run. This will be fixed in the next round.
-
- Documentation
- -------------
-
- Fixes bugs:
- - Alan Barclay's contact information was wrong. (readme)
-
- Procedures
- ----------
-
- Fixes bugs:
- - The linker path for Watcom C++ 10.5 was wrong. (wccommon.mak)
- - There was a syntax error in a batch file. (pdf2ps.bat)
- - The VMS build script didn't have entries for some printers.
- (vms.mak)
-
- Adds the bjc600 and bjc800 devices on all platforms that already include the
- color DeskJet devices. (*.mak)
-
- Drivers
- -------
-
- Fixes bugs:
- - The H-P drivers didn't reposition the cursor properly at the
- beginning of pages after the first page, causing the image to be shifted
- down slightly and cut off at the bottom. (gdevdjet.c)
- - The x11alpha driver was extremely slow. (gdevxalt.c)
- - The -g switch by itself didn't work for the X Windows driver.
- (gdevxini.c)
- - .installpagedevice can get a rangecheck on MS Windows because the
- HWColorMap can change spontaneously. (gs_setpd.ps)
-
- Updates the bjc600 and bjc800 drivers with new versions from Yves Arrouye.
- (gdevcdj.c)
-
- Adds a user-contributed driver that writes uncompressed 24-bit RGB TIFF
- images in a format that is standard on NeXT platforms. This driver is
- governed by the GNU license and is therefore separated from the rest of the
- Aladdin distribution. (gdevtfnx.c)
-
- Platforms
- ---------
-
- Fixes bugs:
- - There was an undefined reference to clock_gettime on some Unix
- systems. (gp_unix.c)
- - The new gp_fopen routine had several errors. (gp_vms.c)
-
- Interpreter
- -----------
-
- Fixes bugs:
- - Some routines that should be main-instance-specific weren't.
- (imain.h, main.h, gsmain.c)
- - sethalftone with a Type 2 or Type 4 halftone didn't work on CMYK
- devices. (zht2.c)
- - Setting A4 paper as the default in gs_init.ps, or specifying
- -dPAPERSIZE, conflicted with -g. (gs_init.ps)
- - The maximum value of a single-precision float wasn't correct on
- VAX systems. (math_.h, iscannum.c)
- - Some integer expressions were passed as floating point arguments.
- (gs.c, zmedia2.c)
- - Media selection in setpagedevice was broken (again), as of 3.46.
- (gs_setpd.ps, zmedia2.c)
-
- Interpreter (PDF)
- -----------------
-
- Fixes bugs:
- - Substituted color spaces caused an error. (gs_pdf.ps,
- pdf_draw.ps)
-
- Library
- -------
-
- Fixes bugs:
- - If a halftone had no non-default components that matched the
- device's primary colors, the result would be a solid color rather than a
- halftone using the default screen. (gsht.c)
- - sethalftone with a Type 2 or Type 4 halftone didn't work on CMYK
- devices. (gxht.h, gsht.c, gsht1.c)
- - The new gp_fopen routine wasn't being used. (gsiodev.c)
- - A mixing of float and fixed values caused a clipping region to be
- possibly incorrect by up to 1 pixel. (gspaint.c)
- - A function definition was inconsistent with the prototype.
- (gspath1.c)
-
- Adds preliminary code for including paths in band lists, but doesn't
- activate any of it. (lib.mak, gxcldev.h, gxclist.c, gxclread.c)
-
- Version 3.47(limited) (9/14/95)
- =====================
-
- This is a bug-fix release during beta test. It is meant to have no new
- functionality, although in the case of setpagedevice that's stretching
- things a little.
-
- Documentation
- -------------
-
- Fixes bugs:
- - The Mac documentation still referred to IJG JPEG v5a rather than
- v6. (make.doc)
- - The RasterOp texture device was identified incorrectly.
- (gdevmrop.c)
- - use.doc and psfiles.doc didn't mention the PDF-related files.
- (psfiles.doc, use.doc)
- - psview is no longer available. (README)
- - current.doc didn't document the recognized setpagedevice keys.
- (current.doc)
-
- Procedures
- ----------
-
- Fixes bugs:
- - Many utility programs weren't included in the Unix 'install' list.
- (unix-end.mak)
- - It wasn't at all convenient to make configurations without the BCP
- or other non-standard filters. (*.mak, int.mak, modules.lis, zfilter2.c,
- zfilterx.c)
- - The gconfig.c and iconfig.c files weren't deleted after
- compilation. (int.mak, lib.mak)
- - unix-end.mak referred to the nonexistent macros INT{1,2}_MAK.
- (unix-end.mak)
- - The rules for building the dfax drivers were incorrect. (devs.mak)
- - Omitting filter.dev produced an undefined reference. (int.mak)
-
- Adds a customer-contributed makefile for Microsoft Visual C++ 2.n under
- Windows NT. (msvcwint.mak)
-
- Utilities
- ---------
-
- Fixes bugs:
- - The JPEG utility didn't support the new progressive JPEG modes,
- and didn't invert Adobe Photoshop output as needed. (viewjpeg.ps)
- - The printafm utility had a single font name wired in. (printafm,
- printafm.ps)
- - The CIE lookup simulation had several bugs. (docie.ps)
- - pdf2ps[.bat] were missing from the fileset.
- - Files produced by pdf_2ps didn't include the GS_PDF ProcSet.
- (gs_pdf.ps, pdf_2ps.ps, pdf_base.ps, pdf_main.ps)
-
- Drivers
- -------
-
- Fixes bugs:
- - Bits read back from an EGA or VGA device were incorrect.
- (gdevpcfb.c)
- - The 24-bit PCX run length compressor used a slow algorithm.
- (gdevpcx.c)
- - gdevstc.c wouldn't compile with the Borland compiler. (gdevstc.c)
- - There was a typo in the OS/2 PM driver. (gdevpm.c)
- - .installpagedevice gets a rangecheck on X Windows because the
- HWColorMap can change spontaneously. (gs_setpd.ps)
- - The left margin for the DeskJet 500 was wrong. (gdevdjet.c)
- - The two notions of "margin" (offset of 0,0 from physical page
- corner vs. unprintable area around edges of physical page) were still
- confused. We've now fixed this for the H-P monochrome printers, but it's
- probably still confused for all other printers. (gdevprn.h, gdevdjet.c)
-
- Platforms
- ---------
-
- Fixes bugs:
- - The Windows print spooler header file wasn't included when it
- needed to be, and some other Win32-specific changes were missing.
- (gsdll32.def, gp_mswin.c)
- - Windows DLLs didn't parse "s in the command "arguments" correctly.
- (gsdll.c)
-
- Fonts
- -----
-
- Fixes bugs:
- - FAKEFONTS could get the font directories into inconsistent states.
- (gs_dps1.ps, gs_fonts.ps)
- - The substitutions for Adobe's Myriad and Minion fonts weren't
- appropriate. (gs_fonts.ps)
-
- Interpreter
- -----------
-
- Fixes bugs:
- - If pathforall got an error computing the user-space points on a
- path, it could cause an invalid access. (zpath1.c)
- - A 'private' declaration were omitted. (Why doesn't gcc catch
- this??) (zcie.c)
- - Setting GS_FONTPATH produced a stackunderflow error.
- (gs_fonts.ps)
- - currentscreen caused a typecheck if the screen had been set by
- setcolorscreen. (gs_dps1.ps)
- - setcolorrendering tried to cache values computed from the color
- space even if the current color space wasn't a CIE space. (zcrd.c)
- - Out-of-range numbers like 10E38 caused a floating point exception.
- (iscannum.c)
- - Giving a closed readable file as input for a filter caused an
- invalidaccess. (files.h, interp.c, zfilter.c)
- - setpagedevice opened the default device even with -dNODISPLAY.
- (gs_init.ps, gs_setpd.ps)
- - realtime returned the same value as usertime. (gs_lev2.ps,
- zmisc.c)
- - Storing a local value into systemdict caused some redundant code
- to be executed. (zdict.c)
- - Files with a very long first line could cause a rangecheck error.
- (gs_init.ps)
- - The PageOffset page device parameter was ignored. (gs_setpd.ps)
- - The Orientation page device parameter wasn't handled properly.
- (gs_setpd.ps, idparam.h, idparam.c, zmedia2.c)
- - setpagedevice could set device parameters twice, with an
- incomplete update the first time. (gs_setpd.ps)
-
- Interpreter (PDF)
- -----------------
-
- Fixes bugs:
- - Readers confused the internal pdfrun procedure with the public
- runpdf procedure. (pdf_*.ps)
-
- Streams
- -------
-
- Fixes bugs:
- - Closed streams had a NULL state pointer, causing problems for some
- clients. (stream.c)
- - Group 4 decoding could get an ioerror if an end-of-buffer occurred
- in a horizontal code sequence between a makeup code and the termination
- code. (scfd.c)
-
- Library
- -------
-
- Fixes bugs:
- - Some 'private' declarations were omitted. (Why doesn't gcc catch
- these??) (gdevmrop.c, gxht.c)
- - Patterns could produce bad output in the band list. (gxclist.c)
- - RasterOp wasn't implemented at all for 2- or 4-bit devices. (In
- this release, we implement only a subset, and without handling transparency
- properly.) (gdevm2.c, gdevm4.c, gdevmrop.c)
- - Drawing operations and text sometimes didn't apply the RasterOp
- when they should, and vice versa. (gxdcolor.h, gxdraw.c)
- - setcolorrendering tried to cache values computed from the color
- space even if the current color space wasn't a CIE space. (gscie.h,
- gscie.c)
- - Some CIE color spaces produced very distorted colors. (gscie.c)
- - setpagedevice opened a window even with -dNODISPLAY. (gsdevice.c,
- gsdparam.c)
- - realtime returned the same value as usertime. (gp.h, time_.h,
- gp_*.c)
- - The library level attempted to handle the Orientation page device
- parameter. (gxdevice.h, gdevbit.c, gsdevice.c, gsdparam.c, gspath.c)
- - Severely non-linear CIE encoding/decoding functions produced
- seriously skewed colors near the ends of the color value range. This
- problem can now be alleviated, at a significant cost in performance, by
- changing configuration parameters at the beginning of gscie.h. (gscie.h,
- gscie.c)
- - Files FTP'ed in binary mode weren't being opened properly on VMS.
- (gp.h, gp_*.c, gsiodev.c)
- - A header file had an inconsistent declaration. (math_.h)
-
- Adds a new gp_get_usertime procedure to gp.h. THIS IS A
- NON-BACKWARD-COMPATIBLE CHANGE, affecting only platform implementors. It
- was necessary to fix the realtime/usertime bug. (gp.h, time_.h, gp_*.c)
-
- Adds a new gp_fopen procedure to gp.h. THIS IS A NON-BACKWARD-COMPATIBLE
- CHANGE, affecting only platform implementors. It was necessary to fix the
- binary file problem on VMS. (gp.h, gp_*.c)
-
- Version 3.46(limited) (9/4/95)
- =====================
-
- This is the "serious beta test" release for the next public release. It
- finishes implementing RasterOp in the graphics state, and the remaining
- commonly used parts of setpagedevice.
-
- Documentation
- -------------
-
- Documents some possible problems when building with DJGPP v2.0-beta.
- (make.doc)
-
- Adds documentation on using Ghostscript as a PDF interpreter. (use.doc)
-
- Notes linking problems with the Watcom 10.0 environment. (make.doc)
-
- Procedures
- ----------
-
- Fixes bugs:
- - The rule for $(ccfonts).dev was wrong. (gs.mak)
-
- Makes some additional filters into 'features'. (devs.mak, gs.mak)
-
- Splits off 2 new makefiles from gs.mak, which had gotten very large: lib.mak
- (graphics library) and int.mak (interpreters). (tar_cat, tar_cat.bat,
- *.mak)
-
- Adds a new 'config-clean' target that may be helpful in changing
- configuration definitions. (gs.mak)
-
- Notes in the relevant makefiles that on Unix and DVX systems, one should not
- edit 'makefile' or the concatenated makefile, but should edit the individual
- subfile and run tar_cat. (ansihead.mak, cc-head.mak, dgc-head.mak,
- gcc-head.mak, devs.mak)
-
- Updates the Watcom makefiles to handle Watcom release 10.5, in which many
- executables moved to different directories. (watc.mak, watcwin.mak,
- wccommon.mak)
-
- Adds a pdf2ps shell script. (pdf2ps, pdf2ps.bat)
-
- Adds a -sFONTMAP= switch to specify the name of the Fontmap file.
- (gs_fonts.ps)
-
- Adds a -u<name> switch to undefine a name from systemdict. (interp.h, gs.c,
- iinit.c)
-
- Adds a -dFIXEDRESOLUTION switch to parallel -dFIXEDMEDIA. Makes -g set
- FIXEDMEDIA and -r set FIXEDRESOLUTION. (gs_init.ps, gs_setpd.ps, gs.c)
-
- Changes some build procedures to avoid problems with read-only source files.
- (gs.mak, int.mak, lib.mak)
-
- Utilities
- ---------
-
- Adds a utility for emulating the CIE color mapping algorithms. (docie.ps)
-
- Drivers
- -------
-
- Changes the x11alpha device so that it uses 32-bit pixels with 8 bits of
- alpha. (gdevxalt.c)
-
- Updates the Epson Stylus Color driver to Gunther Hess's release 1.17.
- (devs.mak, unix-end.mak, devices.doc, stcolor.ps, gdevstc.h, gdevstc*.c)
-
- Updates the alternate X drivers for the change from PageSize to MediaSize.
- (gdevxalt.c)
-
- Makes Duplex an optional parameter of printer devices rather than of all
- devices. (gdevprn.h, gxdevice.h, gsdparam.c, gdevdjet.c, gdevprn.c)
-
- Platforms
- ---------
-
- Makes pipes (%pipe% file syntax) a selectable option on Unix platforms,
- rather than always being included. (ansihead.mak, cc-head.mak,
- gcc-head.mak, ugcclib.mak, unixtail.mak)
-
- Interpreter
- -----------
-
- Fixes bugs:
- - colorimage, and the dictionary form of image with
- MultipleDataSources = true, didn't check that all the data sources were of
- the same type. (zpaint.c)
- - colorimage, and dictionary-type images with MultipleDataSources =
- true, usually didn't work properly with files. (zpaint.c)
- - grestoreall left a dangling pointer to the transfer function
- cache. (gsstate.c)
- - Changes made by setpagedevice could get 'lost' and not installed
- in the current page device dictionary. (gs_setpd.ps)
- - The Install procedure was called before the new page device
- dictionary had gotten installed. (gs_setpd.ps)
- - If a grestore/grestoreall/restore/setgstate operation switched
- page devices, the new page device didn't get installed properly.
- (gs_setpd.ps, opextern.h, zdevice2.c, zdps1.c)
- - If the current screen was a Type 1 halftone, currentscreen and
- currentcolorscreen returned frequency = 60, angle = 0 rather than the
- Frequency and Angle from the halftone (see Adobe TN 5085). (gs_dps1.ps,
- gs_init.ps)
- - setscreen with a Type 1 halftone dictionary didn't insert the
- frequency and angle into the dictionary (see Adobe TN 5085). (gs_dps1.ps)
- - upath didn't include a trailing moveto in the bounding box.
- (gs_dps1.ps, zpath1.c)
- - setpagedevice didn't automatically rotate or scale the image when
- necessary. (gs_setpd.ps, zmedia2.c)
-
- Moves the RasterOp operators to a separate file. (iutil.h, iutil.c,
- zgstate.c, zrop.c)
-
- Eliminates the unnecessary "wrapper" around .setdevice. (zdevice2.c)
-
- Establishes the convention that all interpreter callbacks into PostScript
- code use procedure names that begin with %; documents this in gs_init.ps.
- Changes Type1BuildChar and Type1BuildGlyph to %Type1BuildChar and
- %Type1BuildGlyph. (gs_init.ps, gs_type1.ps, zfont0.c, zfont1.c)
-
- Changes image / imagemask / colorimage for the new library API. (zimage2.c,
- zpaint.c)
-
- Reorganizes font loading to make compiled fonts and Fontmap interact better
- with each other. (gs_ccfnt.ps, gs_fonts.ps, gs_init.ps, gs_res.ps)
-
- Implements parameter collection for the new CIEBasedDEF[G] color spaces, but
- doesn't actually implement the color spaces themselves. (icie.h, zcie.c,
- zcrd.c)
-
- Renames iconfig.c as iconf.c to avoid problems with read-only source files.
- (iconf.c)
-
- Interpreter (PDF)
- -----------------
-
- Fixes bugs:
- - PDF to PostScript conversion didn't work. (pdf_main.ps)
-
- Shifts most of the work in the PDF interpreter from the reader to the
- ProcSet. This simplifies the code considerably and also makes it easier to
- modify. (gs_pdf.ps, pdf_draw.ps, pdf_font.ps, pdf_main.ps)
-
- Library
- -------
-
- Fixes bugs:
- - 'static' was omitted in a place that some compilers require it.
- (gxccman.c)
- - Some compilers don't allow a variable with the same name as a
- preprocessor macro with arguments. (gscie.c)
- - Some places did a "return -1" rather than a proper error return.
- (gsdevice.c, gxclist.c)
- - An external declaration had a typo. (gsrop.h)
- - An extra semicolon upset some compilers. (gzpath.h)
- - Printer devices that didn't use the standard macros for generating
- their procedure vector wound up being considered as non-page devices.
- (gdevprn.c)
- - Some compilers truncated identifiers longer than 31 characters.
- (gscspace.h, zcie.c, gscie.c)
- - upath didn't include a trailing moveto in the bounding box.
- (gspath.h, gspath1.c)
- - RasterOp value 126 returned an incorrect result. (gsroptab.c)
-
- Finishes implementing RasterOp in the graphics state. (gdevmrop.h, gsrop.h,
- gsropt.h, gsstate.h, gxbitmap.h, gxcindex.h, gxdcolor.h, gxdevice.h,
- gzstate.h, gdevmrop.c, gscolor.c, gsdevice.c, gsimage.c, gsimage1.c,
- gsimage2.c, gsimage3.c, gspcolor.c, gsrop.c, gsstate.c, gxacpath.c,
- gxccache.c, gxcht.c, gxcmap.c, gxdither.c, gxdraw.c, gxht.c)
-
- Changes forwarding devices so they forward get_bits by default. This
- probably doesn't affect any existing code. (gxdevice.h, gsdevice.c)
-
- Changes the API for gs_image[mask]_init to pass a structure rather than a
- very large number of scalars. THIS IS A NON-BACKWARD-COMPATIBLE CHANGE,
- motivated by the addition of further image parameters to support RasterOp.
- Since there are no external clients of the library yet, it shouldn't matter.
- (gsimage.h, gsimage.c, gslib.c, gxccache.c)
-
- Redefines the device "page size" as being the size of the actual media,
- changing the name of the gx_device PageSize member to MediaSize, the name of
- the PageSize device parameter to .MediaSize (but keeping PageSize as
- equivalent, for backward compatibility), and the name of the
- gx_device_set_page_size procedure to gx_device_set_media_size (keeping the
- old name as a macro). THIS IS A NON-BACKWARD-COMPATIBLE CHANGE. It is
- necessary to make setpagedevice work, and to avoid confusion about what
- "page size" means. It potentially affects any device driver, but almost
- none of the device drivers distributed with Ghostscript are affected, and
- those have been updated. (gsparam.h, gxdevice.h, gsdevice.c, gsdparam.c,
- gspath.c)
-
- Renames gconfig.c as gconf.c to avoid problems with read-only source files.
- (gconf.c)
-
- Adds an API procedure for setting a bitmap pattern. (gscolor2.h,
- gspcolor.c)
-
- Version 3.45(limited) (8/27/95)
- =====================
-
- The purpose of this release is to fix some minor bugs reported by commercial
- licensees, and to add two enhancements: optional RenderTable interpolation
- for CIE color, and reducing the temporary space used during character
- caching (also for a licensee).
-
- Documentation
- -------------
-
- Notes that the only valid return values from get_alpha_bits are 1, 2, and 4.
- (drivers.doc)
-
- Notes that the get_bits driver procedure will return a pointer to aligned
- data, but does not require the caller's data area to be aligned.
- (drivers.doc)
-
- Procedures
- ----------
-
- Fixes bugs:
- - Many of the printer and file output drivers in devs.mak still
- included gdevprn.$(OBJ) in their dependencies. (devs.mak)
- - PDEVH was used before it was defined. (devs.mak)
- - GENCONF_XE was used before it was defined. (unixhead.mak,
- unix-end.mak)
-
- Makes it possible to switch sfile implementations without editing gs.mak.
- (gs.mak)
-
- Makes it possible to specify alternate compiled font tables without editing
- gs.mak. (gs.mak)
-
- Allows quoted arguments in @-files, e.g.,
- -sOutputFile="a file name with spaces"
- (gs.c)
-
- Utilities
- ---------
-
- Fixes bugs:
- - The ps2ascii script could fail to delete temporary files in case
- of an abnormal exit. (ps2ascii)
-
- Drivers
- -------
-
- Fixes bugs:
- - The MS Windows printer capability test was wrong. (gdevwpr2.c)
- - The MS Windows and OS/2/PM displays weren't page devices.
- (gdevwdib.c, gdevpm.c)
-
- Gets rid of all direct references to dev->PageSize in drivers. (gdevl256.c,
- gdevvglb.c)
-
- Platforms
- ---------
-
- Fixes bugs:
- - The 32-bit MS Windows configuration file for the Borland C++
- compiler was missing from the fileset. (bcc32.cfg, tar_gs)
-
- Makes the printer devices in the OS/2 implementation capable of outputting
- directly to the print spooler. (use.doc, gp_os2.c)
-
- Makes printing on Windows NT and Windows 95 use the printer queue.
- (gp_mswin.c, gswin32.rc)
-
- Interpreter
- -----------
-
- Fixes bugs:
- - Copying a null device produced an uninitialized pointer.
- (gsdevice.c)
- - The dictionary returned by deviceinfo wasn't read-only.
- (gs_lev2.ps)
- - If a filter's init code failed, an entry on the operand stack
- (usually the top) could be smashed. (files.h, zfile.c, zfilter.c)
-
- Adds const in a few places that needed it. (zwppm.c)
-
- Adds interpolation to the CIE RenderTable lookup. (icie.h, zcie.c, zcrd.c)
-
- Interpreter (PDF)
- -----------------
-
- Allows PDF files with control-character garbage at the end, and up to 250
- characters of garbage at the beginning. The latter is only supported by
- runpdf, not by run. (pdf_base.ps, pdf_main.ps)
-
- Streams
- -------
-
- Fixes bugs:
- - A 1-D CCITTFaxDecode stream could give an error if an input buffer
- boundary fell just before a 0-length termination code. (scfx.h, scfd.c)
-
- Library
- -------
-
- Fixes bugs:
- - A variable was used before being set, which could cause band
- devices to become confused when processing colored halftones. (gxclist.c)
- - Some of the color and tile bookkeeping for band lists was wrong
- (as of 3.44), causing tiled areas to be filled with garbage. (gxclist.c,
- gxclread.c)
- - Colored Patterns showed up blank on devices whose native
- representation of `black' was a non-zero value. The fix removes the
- 'cached' member of the gx_device structure, and requires monobit memory
- devices to have a palette; this is a NON-BACKWARD-COMPATIBLE CHANGE for
- anyone who was foolish enough to statically initialize a gx_device structure
- without using the macros in gxdevice.h or gdevprn.h. (gdevmem.h,
- gxdevice.h, gxdevmem.h, gdevm1.c, gdevmrop.c, gsdevice.c, gxcpath.c,
- gxdither.c)
-
- Provides the framework for band devices to implement alpha (anti-aliasing).
- (gxcldev.h, gdevprn.c, gsdevice.c, gxclist.c, gxclread.c)
-
- Implements an efficient API for enumerating paths using device coordinates.
- (gspath.h, gxpath.h, gzpath.h, gspath1.c, gxpath2.c)
-
- Changes the character cache logic so that when rasterizing large
- anti-aliased characters, it converts the oversampled bits to alpha values on
- the fly rather than waiting until it has rasterized the entire character.
- This saves a lot of temporary space, at the expense of some extra time and
- lower quality results for Type 3 characters that don't use a single fill or
- imagemask operation to draw the character. This enhancement requires adding
- a member to the gx_device structure (max_fill_band), which is a
- NON-BACKWARD-COMPATIBLE CHANGE for badly written drivers (see above).
- (gxchar.h, gxdevice.h, gxpaint.h, gdevabuf.c, gschar.c, gspaint.c,
- gxccache.c, gxccman.c, gxfill.c)
-
- Changes the palette member of memory devices from gs_string to
- gs_const_string. (gdevmem.h, gxdevmem.h, gdevmem.c, gdevm1.c)
-
- Starts to decouple halftoning from the graphics state machinery, so
- it can be applied after banding rather than before. (gxdcolor.h,
- gxdht.h, gxdither.h, gzht.h, gxcmap.c, gxdither.c, gxdraw.c)
-
- Starts to decouple path filling from the graphics state machinery, so
- that we can pass paths through band lists. (gxpaint.h, gxfill.c)
-
- Adds interpolation to the CIE RenderTable lookup. This is optional, enabled
- by #define CIE_RENDER_TABLE_INTERPOLATE in gscie.h. (gscie.h, gxctable.h,
- gscie.c, gxctable.c)
-
- Version 3.44(limited) (8/21/95)
- =====================
-
- This includes a few bug fixes, but its main purpose is to add two new
- features: monobit and 8-bit gray-scale RasterOp (at the driver level, not at
- the gstate level yet), and (compressed) band lists in RAM. Of course, these
- new features may have introduced new bugs!
-
- Documentation
- -------------
-
- Adds contact information for a user working on NeXT machines. (README)
-
- Notes that Ghostscript runs on FreeBSD. (README)
-
- Adds copy_rop (the RasterOp operation) to the driver interface.
- (drivers.doc)
-
- Adds FONTPATH information for more operating systems. (use.doc)
-
- Procedures
- ----------
-
- Fixes bugs:
- - The tar_cat script needed a #!/bin/sh to execute correctly on all
- platforms. (tar_cat)
- - There were a number of minor errors in the makefiles. (gs.mak,
- unixhead.mak)
- - Level 2 configurations without command lists had two undefined
- references. (gs.mak)
- - Some shells required an extra ';' to terminate an 'if' command.
- (ugcclib.mak, unix-end.mak, unixtail.mak)
-
- Updates the JPEG code to the officially released version 6 of the IJG
- library. See jpeg.mak for information on where to find this library.
- (jpeg/*, jpeg.mak, *.mak, modules.lis)
-
- Adds a definition of XEAUX to the makefiles to parallel CCAUX, primarily for
- cross-compilation environments. All references to <some-program>$(XE) must
- be replaced by $(<SOME-PROGRAM>_XE), where some-program={$(GS), ansi2knr,
- echogs, genarch, genconf, geninit}. This is a NON-BACKWARD-COMPATIBLE
- CHANGE, required in order for the makefiles to work in cross-compiled
- environments. (For non-cross-compiled environments, it currently doesn't
- matter.) (gs.mak, *.mak)
-
- Utilities
- ---------
-
- Updates ps2ai.ps to version 2.13. (ps2ai.ps)
-
- Changes all the utility shell scripts to include #!/bin/sh, to use exec, and
- to pass the original arguments using "$@". (bdftops, font2c, gsbj, gsdj,
- gslj, gslp, gsnd, wftopfa)
-
- Drivers
- -------
-
- Adds the requirement that all page-oriented devices (i.e., those that use
- gdevprn.h and implement the print_page procedure) include page.dev in their
- dependencies and use $(SETPDEV) rather than $(SETDEV) in their makefile rule
- bodies. THIS IS A NON-BACKWARD-COMPATIBLE CHANGE. Without this change, the
- command list logic (over 25K of unnecessary object code) would have to be
- included in every configuration. (gs.mak, devs.mak, echogs.c)
-
- Adds a user-contributed driver for the Okidata Microline (IBM compatible)
- dot matrix printers. (gdevokii.c)
-
- Adds copy_rop (the RasterOp operation) to the driver interface. Currently,
- only monobit and 8-bit gray-scale devices implement it. (gxdevice.h,
- gsdevice.c)
-
- Adds the ability to read back bits from the display to the x11 devices.
- (x_.h, gdevx.c, gdevxalt.c)
-
- Platforms
- ---------
-
- Makes some minor changes to support QNX. (stat_.h)
-
- Removes the mswinprn driver from the 16-bit Windows configuration, because
- the 64K default data segment overflowed. (bcwin.mak)
-
- Interpreter
- -----------
-
- Fixes bugs:
- - Type 1 fonts didn't accept packed arrays for Subrs or OtherSubrs.
- (zchar1.c, zfont1.c)
- - TBCP-encoded files (yes, I know there isn't supposed to be any
- such thing) didn't automatically activate TBCP decoding. (gs_init.ps)
- - Fonts with invalid FID entries weren't detected. (zfont.c)
-
- Speeds up dictionary operations slightly by removing redundant checks for
- nulls. (zdict.c)
-
- Starts adding support for the new CIEBasedDEF and CIEBasedDEFG color spaces.
- (gs_l2img.ps, gs_lev2.ps, igstate.h, zcrd.c)
-
- Adds access operators for RasterOp and transparency in the graphics state.
- (They don't actually do anything yet.) (zgstate.c)
-
- Interpreter (PDF)
- -----------------
-
- Fixes bugs:
- - PDFDocEncoding was missing characters 24-31. (gs_pdf_e.ps)
-
- Moves the definition of pdfmark from systemdict to userdict so that Adobe
- PostScript files won't think the interpreter is a distiller. (gs_pdf.ps)
-
- Library
- -------
-
- Fixes bugs:
- - Some JPEG images had bands of garbage alternating with bands of
- valid data. IJG v6 fixed this -- see above.
- - With FPU_TYPE = -1, the cosine routine returned incorrect values
- for angles above 270 degrees. (gsmisc.c)
- - CIE color conversion didn't work on 16-bit systems. (gscie.h,
- gscie.c)
-
- Partially implements reducing the intermediate space for rasterizing
- anti-aliased characters by compressing the oversampled representation to an
- alpha array incrementally. (gdevmem.h, gxchar.h, gxdevmem.h, gdevabuf.c,
- gschar.c, gspaint.c, gxccman.c)
-
- Starts adding support for the new CIEBasedDEF and CIEBasedDEFG color spaces.
- (gscie.h, gscspace.h, gscie.c)
-
- Completes the implementation of band lists in RAM. To select this feature,
- change the definition of cl_impl in gs.mak from clfile to clmem. (Someday
- we'll make this easier.) (gxclmem.h, gxclmem.c)
-
- Finishes implementing RasterOp and transparency at the driver level for
- monobit and 8-bit gray-scale devices, and implements some of the framework
- for general multiple-bit-per-pixel devices. See drivers.doc for
- documentation. (gsropt.h, gxcldev.h, gxclist.h, gdevm1.c, gdevm8.c,
- gdevmem.c, gdevmrop.c, gschar.c, gxclist.c, gxclread.c)
-
- Implements the ability to include commands applicable to all bands, rather
- than an individual band, in the band list. Eventually this will be used for
- passing halftones through the band list. (gxcldev.h, gxclist.h, gxclist.c)
-
- Adds support for 2-bit-deep 'word' memory devices. (gdevmem.h, gxdevmem.c,
- gdevm2.c)
-
- Changes the initialization for memory devices so that they determine their
- polarity from the device for which they are buffering the image (if any).
- This is a subtle change. (gdevmem.h, gdevmem.c, gdevm1.c, gsdevmem.c)
-
- Version 3.43(limited) (8/10/95)
- =====================
-
- Fixes a few more minor bugs, and changes FEATURE selection back to
- essentially the way it was before 3.41.
-
- Documentation
- -------------
-
- Fixes bugs:
- - A ~ was missing in a URL. (README)
-
- Adds information about an Amiga port of Ghostscript. (README)
-
- Removes a file called gs.1.c, which appears to be an obsolete version of
- gs.1.
-
- Adds DCX documentation to the PCX driver. (We don't support DCX yet, but we
- might in the future.) (gdevpcx.c)
-
- Adds information about getting Type 1 fonts from H-P if you have an H-P
- PostScript printer. (use.doc)
-
- Procedures
- ----------
-
- Fixes bugs:
- - The auxiliary programs wouldn't compile with ANSI compilers that
- don't accept K&R syntax. (ccgs, gs.mak, ugcclib.mak, *head.mak,
- unixtail.mak, echogs.c, genarch.c, genconf.c, geninit.c)
-
- Reinstates FEATURE_DEVS in the makefiles, getting rid of FEATURE1..10. THIS
- IS A NON-BACKWARD-COMPATIBLE CHANGE, but it puts things back the way they
- were before 3.41, with one exception: compiling the PostScript
- initialization code into the executable is now a separate macro
- COMPILE_INITS with a definition of 0 or 1, instead of the ccinit 'feature'.
- (gs.mak, *.mak, fonts.doc, make.doc)
-
- Adds a CCLEAF macro to the makefiles, for optimizing the compilation of
- modules containing only leaf procedures. (gs.mak, *.mak)
-
- Adds a CONFIG makefile variable that helps in maintaining multiple variants
- in a single directory. (gs.mak, *.mak)
-
- Platforms
- ---------
-
- Fixes bugs:
- - An extern for exit() (in <stdlib.h>) was omitted. (gp_vms.c)
-
- Fonts
- -----
-
- Reorganizes the compiled font facility so that fonts can be compiled and
- turned into a library by third parties. (gs.mak, font2c.ps, gs_ccfnt.ps,
- ccfont.h, iccfont.c, ccfontab.c)
-
- Interpreter
- -----------
-
- Fixes bugs:
- - internaldict was implemented as a dictionary in systemdict and an
- operator in userdict, rather than as an operator in systemdict. This caused
- a noaccess error when loading certain Type 1 fonts. (gs_init.ps,
- gs_type1.ps)
- - xfonts couldn't handle modified encodings. (zfont2.c)
-
- Changes the build date printout in the help message to YYYY-MM-DD. (gs.c)
-
- Adds native support for Multiple Master fonts (WeightVector). (zfont1.c)
-
- Implements sin and cos more efficiently (by table lookup with linear
- interpolation) on machines with slow (or no) floating point. (zmath.c)
-
- Separates out the code for 'reading' the .ps initialization files, for the
- new COMPILE_INITS arrangement. (imain.h, gconfig.c, gsmain.c, iconfig.c,
- iccinit0.c, iinit.c)
-
- Streams
- -------
-
- Fixes bugs:
- - The CCITTFaxDecode filter could read up to 3 bytes beyond EOD.
- This fix doesn't quite cover all cases, but at least it makes things better.
- (ghc.h, sbhc.c, scfd.c)
-
- Library
- -------
-
- Fixes bugs:
- - After a nocurrentpoint error from a show operation with a
- composite font, the bookkeeping was confused and could cause an access
- error. (gschar.c)
- - xfonts couldn't handle modified encodings. (gsccode.h, gxchar.h,
- gxfont.h, gxxfont.h, gschar.c, gxccache.c)
-
- Makes .charboxpath able to use cached character information. (gxchar.h,
- gschar.c)
-
- Adds native support for Multiple Master fonts (OtherSubrs 14-18).
- (gxfont1.h, gstype1.c)
-
- Improves the hashing functions for the character cache. (gxfcache.h,
- gxccman.c)
-
- Adjusts the character oversampling algorithm to reduce thickening for
- devices with alpha capability. (gsbitops.c)
-
- Improves the encoding of the band list for certain kinds of small
- rectangles. (gxcldev.h, gxclist.c, gxclread.c)
-
- Implements sin and cos efficiently on machines with slow (or no) floating
- point. (gxfarith.h, gsmatrix.c, gsmisc.c, gspath1.c)
-
- Version 3.42(limited) (8/2/95)
- =====================
-
- Fixes a few significant problems in 3.41, and brings the DLL code up to
- date.
-
- Documentation
- -------------
-
- Fixes bugs:
- - language.doc still referred to rectappend rather than .rectappend.
- (language.doc)
-
- Adds documentation on the Macintosh port. (readme, make.doc)
-
- Updates the DLL documentation. (dll.doc)
-
- Documents the BCP and TBCP filters as non-experimental. (language.doc)
-
- Procedures
- ----------
-
- Changes the build date printout to YYYY-MM-DD. (gs_init.ps)
-
- Platforms
- ---------
-
- Fixes bugs:
- - The VMS build script had gotten out of sync with the makefiles
- (again). (vms.mak, modules.lis)
-
- Brings the MS Windows and OS/2 platforms up to date with the rest of the
- code, including DLL support for OS/2. (os2.mak, gsdll*.def, gdevswn.c,
- gdevpm.c, gdevwdib.c, gp_mswin.c, gp_os2.c, gsdll.c, gsmain.c)
-
- Adds a new platform-specific routine gp_do_exit, as an alias for the C
- library `exit' call. (gp.h, gsdll.c, gsmain.c, gp_*.c)
-
- Interpreter
- -----------
-
- Fixes bugs:
- - .forgetsave at the outermost level didn't clear the l_new bit,
- causing changes to be undone improperly. (isave.c)
- - A 'void' formal parameter list upset some compilers (as it should
- have). (gsmain.c)
-
- Adds a .charboxpath operator that appends to the current path the bounding
- boxes of the characters of a string. (zchar.c, zchar1.c)
-
- Streams
- -------
-
- Fixes bugs:
- - A procedure was declared private inconsistently. (siscale.c)
-
- Library
- -------
-
- Fixes bugs:
- - The library test program didn't do a necessary initial gsave.
- (gslib.c)
- - The fix for landscape monobit images in 3.41 could smash memory.
- (gsimage1.c)
- - 1-pixel-wide lines drawn with image or imagemask still disappeared
- sometimes. (gsimage.c)
-
- Does some more preparatory work for the implementation of command lists in
- RAM. (gdevprn.h, gxclio.h, gxclist.h, gxclfile.c, gxclist.c, gxclread.c)
-
- Adds a gs_charboxpath procedure that appends to the current path the
- bounding boxes of the characters of a string. (gschar.h, gscpm.h,
- gstype1.h, gxchar.h, gxpath.h, gxtype1.h, gzstate.h, gschar.c, gspaint.c,
- gstype1.c, gxpath.c)
-
- Version 3.41(limited) (7/27/95)
- =====================
-
- Another incremental release with bug fixes and customer-requested
- enhancements. This release was intended to include the full setpagedevice
- media matching and adjustment algorithm, but we discovered some
- architectural problems during development, and have postponed it.
-
- Documentation
- -------------
-
- Replaces the build instructions for NeXTSTEP with more up-to-date and
- accurate ones. (make.doc)
-
- Notes that some extra manual steps are required when cross-compiling.
- (make.doc)
-
- Documents how to define new 'features' in the makefile. (gs.mak)
-
- Procedures
- ----------
-
- Fixes bugs:
- - The build rule for ccinit.dev was circular. Fixing this required
- a small but NON-BACKWARD-COMPATIBLE change in the way that features are
- selected in the makefiles (FEATURE_DEVS replaced by FEATURE1..10). (*.mak,
- fonts.doc, make.doc)
-
- Changes the build rule for gconfig.h to be less likely to overrun MS-DOS's
- command line length limit. (gs.mak)
-
- Adds a -dFIXEDMEDIA switch to indicate that the media size should be
- considered fixed after initialization. (gs_init.ps)
-
- Utilities
- ---------
-
- Fixes bugs:
- - traceimg.ps incorrectly referred to .stdout. (traceimg.ps)
- - prfont.ps didn't display unencoded characters correctly.
- (prfont.ps)
- - ps2epsi didn't give correct bounding box information. (ps2epsi,
- ps2epsi.ps)
- - ps2epsi produced DSC comments that didn't fully conform to the
- Adobe standard. (ps2epsi, ps2epsi.ps)
-
- Allows viewpbm.ps to take multiple files on the command line. (viewpbm.ps)
-
- Drivers
- -------
-
- Adds a preliminary, contributed PNG driver. THIS IS NOT USABLE YET -- DON'T
- TRY TO USE IT. (png.mak, gdevpng.c)
-
- Increases the maximum allowable scan line width for the TIFF drivers from
- 5183 pixels to 12863 pixels. (scf.h)
-
- Platforms
- ---------
-
- Updates the MS Windows DLL code to export the new, suspendable run_string
- interface. (gsdll.h, gsdll.c, dll.doc)
-
- Fonts
- -----
-
- Fixes bugs:
- - There were several errors in cfonts.mak. (cfonts.mak)
- - The compiled fonts option didn't offer both free and standard
- configurations. (gs.mak)
- - A bug in the handling of Encoding resources prevented compiled
- fonts from working. (gs_res.ps)
-
- Adds a little more support for CID-keyed fonts. They still aren't anywhere
- near usable. (gs_cidfn.ps, gs_type1.ps)
-
- Adds a new Fontmap for Solaris 2.3. (Fontmap.Solaris)
-
- Adds support for Type 4 fonts (Type 1 fonts with their own BuildChar
- procedures), including the CCRun procedure in internaldict. (gs_fonts.ps,
- gs_res.ps, gs_type1.ps)
-
- Interpreter
- -----------
-
- Fixes bugs:
- - showpage and copypage didn't honor NumCopies in a page device.
- (gs_setpd.ps, zdevice2.c)
- - currentpagedevice returned incorrect information if the current
- device wasn't a page device. (gs_setpd.ps)
- - currentpagedevice didn't guarantee the presence of InputAttributes
- and OutputAttributes. (gs_setpd.ps)
- - The l_new bit wasn't set properly when a dictionary changed from
- packed to unpacked keys, leading to unnecessary saves. (idict.c)
- - Streams requiring intermediate buffering could read ahead too far,
- causing input data to be skipped. (zfilter.c)
- - cshow didn't reset the font to the base font when calling the
- procedure. (zchar2.c)
- - The Install procedure in a page device didn't set the default CTM.
- (gs_setpd.ps, zmatrix.c)
- - findlibfile didn't handle special files like %stdin correctly.
- (zfile.c)
- - setpagedevice didn't implement media matching. (gs_setpd.ps,
- zdevice2.c, zmedia2.c, zmatrix.c)
- - Some floating point numbers didn't print out with enough digits to
- read back in with the identical value. (iutil.c)
- - Integers that overflowed 31 bits (but not 32 bits) were converted
- to negative integers rather than correct positive reals. (iscannum.c)
-
- Removes an experimental operator that called the image scaling/interpolation
- code. (zimage2.c)
-
- Adds a -sSUBSTFONT=<fontname> switch that substitutes the given font for all
- unknown fonts, bypassing the normal intelligent substitution algorithm.
- (gs_fonts.ps)
-
- Adds the Revision system parameter. (zmisc2.c)
-
- Adds a .knownundef operator that does an undef and returns true iff the key
- was formerly present. (zdict.c)
-
- Makes the maximum length of names be 256 if EXTEND_NAMES is being used, 16K
- otherwise. (inamedef.h, iname.c)
-
- Adds internaldict. (gs_init.ps, iinit.c)
-
- Adds support for Type 4 fonts. (bfont.h, zchar.c, zchar1.c, zfont1.c,
- zfont2.c)
-
- Changes .encodingdict to EncodingDirectory, for compatibility with Adobe
- interpreters. (gs_init.ps, gs_kanji.ps, gs_res.ps)
-
- Adds superexec, an undocumented operator that is equivalent to exec but
- suppresses all invalidaccess checks. NOT COMPLETED YET; currently superexec
- is equivalent to exec. (zcontrol.c)
-
- Interpreter (PDF)
- -----------------
-
- Fixes bugs:
- - .stderr was used but is no longer defined. (pdf_base.ps)
-
- Streams
- -------
-
- Fixes bugs:
- - Not all streams initialized their state pointer. (stream.c,
- sfile.c, sfileno.c)
-
- Adds a filter for the smoothed image scaling algorithm. Eventually this
- filter will require very little intermediate storage; right now it still
- needs to buffer the entire intermediate image. (siscale.h, siscale.c)
-
- Increases the maximum allowable scan line width for the CCITTFaxEncode
- filter from 5183 pixels to 12863 pixels. (scf.h)
-
- Library
- -------
-
- Fixes bugs:
- - setpagedevice didn't update NumCopies correctly. (gdevprn.c,
- gsdparam.c)
- - The newly optimized code for monobit bitmaps could cause an
- out-of-bounds memory access and/or make unaligned references. (gsimage1.c)
- - setpagedevice with unknown keys could cause an /undefined error.
- (gsdparam.c)
- - cshow didn't reset the font to the base font when calling the
- procedure. (gschar.h, gschar.c)
- - The Install procedure in a page device didn't set the default CTM.
- (gzstate.h, gschar.c, gscoord.c, gsdevice.c)
- - Very non-linear EncodeABC procedures in a color rendering
- dictionary could produce very inaccurate results. (gscie.h, gscie.c)
- - The line_ptrs pointer in memory devices didn't get relocated if
- the bitmap was moved during garbage collection, leading to memory smashing.
- (gdevmem.c)
- - setpagedevice didn't implement media matching. (gsdparam.c,
- gscoord.c)
- - 'word' memory devices weren't recognized as memory devices.
- (gdevmem.c)
- - makeimagedevice allocated, and then didn't free, an unnecessary
- palette for monobit devices. (gsdevmem.c)
- - The hack for 1-bit-wide images didn't work consistently,
- particularly in landscape orientation. (gsimage.c, gsimage0.c)
-
- Adds an .IgnoreNumCopies page device parameter that causes #copies and
- NumCopies to be ignored. (gxdevice.h, gsdevice.c, gsdparam.c)
-
- Removes the .IsPageDevice device parameter. (gsdparam.c)
-
- Converts the image scaling/interpolation code to a filter. (gximage.h,
- gsimage.c, gsimage0.c, gsimage3.c)
-
- Adds support for Type 4 fonts. (gxfont.h)
-
- Adds a default implementation of parameter lists, designed to be usable
- easily from C code. (gsparam.h, gsparam.c)
-
- Version 3.40(limited) (6/28/95)
- =====================
-
- This is another incremental limited release for delivery of a couple of
- important bug fixes (pixel 'holes' in rotated images, setpagedevice errors
- on some platforms) and an enhancement (architectural support for band lists
- in RAM).
-
- Documentation
- -------------
-
- Fixes bugs:
- - The FTP location of the EMX DLLs was incorrect. (use.doc)
-
- Procedures
- ----------
-
- Fixes bugs:
- - A couple of build rules for IJG v6 were omitted. (jpeg.mak)
-
- Utilities
- ---------
-
- Fixes bugs:
- - prfont.ps wouldn't print more than 128 unencoded characters.
- (prfont.ps)
-
- Platforms
- ---------
-
- Fixes bugs:
- - setpagedevice often caused /undefined errors on MS Windows and
- OS/2 platforms. (gdevmswn.c, gdevpm.c)
- - The VMS module list had gotten out of sync with the makefiles
- (again). (modules.lis)
-
- Interpreter
- -----------
-
- Fixes bugs:
- - A couple of casts betwen char * and byte * were omitted.
- (gsmain.c)
- - gs_[main_]run_file_open wasn't exported properly. (imain.h,
- main.h, gsmain.c)
-
- Streams
- -------
-
- Changes the DCTEncode filter to return an error if it wasn't supplied enough
- data before being closed. (sdcte.c)
-
- Library
- -------
-
- Fixes bugs:
- - The coordinate computations for all filling operations were
- slightly inaccurate, leading to pixel 'holes' in rotated images. (gxdda.h,
- gximage.h, gsimage*.c, gxdraw.c, gxfill.c)
-
- Undoes an "optimization" (inlining the normal, fast case of a procedure)
- that actually hurt performance. (gxclist.c)
-
- Refactors the command list code so that it in the future it will be able to
- store command lists either in RAM or in the file system. (gdevprn.h,
- gxcldev.h, gxclio.h, gxclist.h, gdevprn.c, gxclfile.c, gxclist.c,
- gxclread.c)
-
- Changes the interface to the path filling code to take separate X and Y
- adjustment values. (gxpaint.h, gspaint.c, gxfill.c)
-
- Makes the command list allocate a small tile cache if the device doesn't
- need halftones. (gxclist.c)
-
- Version 3.39(limited) (6/24/95)
- =====================
-
- This is again an incremental release primarily for delivery of enhancements
- (suspendable string input in particular) to commercial customers, and with a
- few bug fixes.
-
- Documentation
- -------------
-
- Notes that PDF files and repositioning PostScript files do not work if
- Ghostscript was compiled with VAX C. (use.doc)
-
- Notes the requirement for EOD lookahead in decoding filters. (strimpl.h)
-
- Procedures
- ----------
-
- Fixes bugs:
- - There were a number of undefined or used-before-defined variables
- in the makefiles. (devs.mak, dvx-head.mak, unixhead.mak, gs.mak)
- - Some commands in the makefile exceeded the MS-DOS limit of 120
- characters. (gs.mak)
-
- Adds a -P and -P- switch to control whether the search path automatically
- includes `.' as its first element. Moves the default value of this choice
- (SEARCH_HERE_FIRST) from gsmain.c to iminst.h. (iminst.h, gs.c, gsmain.c,
- use.doc)
-
- Makes some makefile changes in anticipation of the IJG v6 release. (*.mak)
-
- Utilities
- ---------
-
- Fixes bugs:
- - font2c generated invalid C procedure names from font names that
- contained non-alphanumerics other then '-'. (font2c.ps)
- - font2c generated a single element of incorrect type for numeric
- arrays of zero length. (font2c.ps)
-
- Platforms
- ---------
-
- Fixes bugs:
- - The VMS build scripts had gotten out of sync (again). (vms*.mak,
- modules.lis)
-
- Fonts
- -----
-
- Makes the FONTPATH directory scanner accept fonts that begin with
- %!PS-AdobeFont or %!FontType1 with no following `-'. (gs_fonts.ps)
-
- Interpreter
- -----------
-
- Fixes bugs:
- - eq and ne on arrays or dictionaries required read access.
- (zrelbit.c)
- - An include was missing. (zcsindex.c)
- - .forgetsave at the outermost level didn't reset the l_new flag in
- changed slots, leading to an anomalous (although perhaps not harmful) state.
- (isave.c)
- - Dictionary growing or unpacking would both save and free the old
- keys array, leading to a dangling reference. (idict.c)
-
- Changes gs_interpret so that for .quit with a negative operand <= -100,
- gs_interpret returns e_Fatal rather than the operand. THIS IS A
- NON-BACKWARD-COMPATIBLE CHANGE, but as far as we know, it doesn't affect
- anyone. (interp.c)
-
- Adds an API to allow feeding string input to the interpreter in pieces.
- (errors.h, imain.h, main.h, gs.c, gsmain.c, interp.c, zcontrol.c, zfilter.c)
-
- Adds new predicates .identeq and .identne that test "pointer equality", even
- for numbers and strings. (iutil.h, iutil.c, zrelbit.c)
-
- Changes a few uses of return_error to return in places that don't lead
- directly to a PostScript error. (idict.c)
-
- Streams
- -------
-
- Fixes bugs:
- - The logic for skipping up to a 0xff byte when decoding JPEG data
- could skip too much. (sdctd.c, sjpegd.c)
- - If a buffer boundary fell in the middle of, or just before, an
- EOD, some decoding filters could stop reading too soon. (sbcp.c, smtf.c,
- sstring.c)
-
- Makes some minor changes in anticipation of the IJG v6 release.
- (gsjmorec.h)
-
- Library
- -------
-
- Fixes bugs:
- - A declaration should have been removed. (gsdll.c)
- - The library initialization/termination API wasn't declared.
- (gslib.h, gsinit.c, gsmain.c)
- - A variable and a preprocessor macro with the same name confused
- VAX C. (gxclist.c)
- - Image devices with depth 2-8 and only gray shades in the palette
- didn't set color_info correctly. (gsdevice.c)
-
- Speeds up unrotated black-and-white images further by making them render
- directly into a memory device when possible. (gxdevmem.h, gsimage1.c)
-
- Version 3.38(limited) (6/18/95)
- =====================
-
- This release incorporates several customer-requested enhancements (cleaner
- separation of the graphics library from the interpreter, option for >64K
- names, true garbage collection of names, better handling of halftones on
- band devices). It is intended primarily for those customers, but is
- intended as a dry run for the next public release.
-
- Documentation
- -------------
-
- Fixes bugs:
- - gx_bitmap had not been updated to gx_tile_bitmap.
- (drivers.doc)
-
- Procedures
- ----------
-
- Fixes bugs:
- - The man page extension in the Unix makefiles was still $(manext),
- not $(man1ext). (unix-end.mak)
- - 'make clean' didn't remove gs_init.c. (gs.mak)
-
- Restructures the makefiles to better separate the language interpreters from
- the graphics core. (gs.mak)
-
- Adds a -dNOPROMPT switch to suppress the end-of-page prompts (but still wait
- for the user to type a newline). This is different from -dNOPAUSE, which
- suppresses both the prompts and the wait. (gs_init.ps)
-
- Utilities
- ---------
-
- Replaces the mergeini.ps program with an equivalent (actually slightly
- better) version written in C. (gs.mak, *.mak, psfiles.doc, use.doc,
- geninit.c)
-
- Drivers
- -------
-
- Fixes bugs:
- - The color DeskJet drivers wouldn't compile with a K&R compiler,
- because some of the procedure definitions weren't in the restricted syntax
- that ansi2knr requires. (gdevcdj.c)
- - The color DeskJet drivers wouldn't compile because of a bug in
- Sun's cc. (gdevcdj.c)
-
- Changes the BJ-10e(x) margins to be identical to those of the BJ-200.
- (gdevbj10.c)
-
- Changes the LaserJet margins in response to a user's request. (gdevdjet.c)
-
- Changes the psmono driver to produce slightly larger files that execute
- faster on typical Level 1 printers. (gdevpsim.c)
-
- Changes the psmono driver so that it does not scale the image to fit the
- page size, but instead scales it to be the same physical size on the page.
- THIS IS A NON BACKWARD COMPATIBLE CHANGE. However, for full-page images, it
- will not have any visible effect. (gdevpsim.c)
-
- Platforms
- ---------
-
- Fixes bugs:
- - There were some problems associated with printing in 32-bit
- Windows environments. (gp_mswin.c)
- - The IBM RS/6000 needs both <time.h> and <sys/time.h>. (time_.h)
-
- Adds the PDF interpreter to the standard MS Windows configuration.
- (bcwin.mak)
-
- Fonts
- -----
-
- Fixes bugs:
- - The entry for Courier-BoldItalic in cfonts.mak incorrectly named
- it as Courier-Italic. (cfonts.mak)
- - The files for Courier-Italic in cfonts.mak were inconsistently
- named ncrri instead of ncri. (cfonts.mak)
- - The rules in cfonts.mak covered only the fonts distributed with
- the free versions of Ghostscript, omitting some of the standard set of 35.
- (cfonts.mak)
- - The maximum number of stem hints per character in Type 1 fonts
- wasn't large enough for complex Asian characters. (gxtype1.h)
-
- Adds a -dNOFONTMAP switch to suppress loading the Fontmap file.
- (gs_init.ps, gs_fonts.ps)
-
- Interpreter
- -----------
-
- Fixes bugs:
- - One of the GC marking routines for halftones had a typo,
- possibly leading to an invalid access. (zht2.c)
- - The GC could store beyond the end of the mark stack,
- possibly smashing some characters of a string or name. (igc.c)
- - If the allocator allocated a new ref object from a
- freelist, the bookkeeping for the current ref object could get
- confused. (ialloc.c)
- - The GC didn't remove names properly from the hash table.
- (iname.c)
- - If a DOS editor added a ^Z to the end of an initialization file,
- an error occurred during initialization. (gs_init.ps)
- - If an initialization file had any lines longer than 128
- characters, .skipeof would get an error. (gs_init.ps)
- - makepattern could create structures in global VM pointing to
- structures in local VM. (zpcolor.c)
- - The default color rendering dictionary didn't specify large enough
- ranges for some intermediate values. (gs_lev2.ps)
- - Files being freed by a restore weren't unlinked properly, leading
- to dangling pointers. (zfile.c)
- - The interpreter used strlen without a prototype. (interp.c)
- - Indexed or Separation colors with a CIE base or alternate space
- didn't work. (zcie.c)
- - The Watcom C 10.0 compiler produced incorrect code for an
- overlapping structure assignment. (zcsindex.c)
-
- Removes limit of 64K names, if EXTEND_NAMES is defined at compile
- time. (*.mak, idebug.h, iminst.h, iname.h, gs.c, gsmain.c, idebug.c,
- iname.c)
-
- Makes the garbage collector really collect names. (iname.h, inamedef.h,
- isstate.h, igc.c, iname.c, isave.c)
-
- Restructures some files to better separate the language interpreters
- from their support code. (gconfig.c, iconfig.c, iinit.c)
-
- Restructures some files to better separate the language interpreters
- from the graphics core. (iastate.h, iastruct.h, ialloc.c)
-
- Allows the operands of cshow to be in either order on the stack. Adobe
- interpreters apparently allow this, even though it's not documented.
- (zchar2.c)
-
- Adds a hack in cvs to truncate non-standard operator names, rather than
- giving a rangecheck, to work around the "max err string" problem in some
- common error handlers. (ztype.c)
-
- Changes the print string for unregistered operators from operator_0x... to
- @0x.... (iutil.c)
-
- Changes the garbage collector so it tries to allocate a large mark stack, to
- avoid going into its 'slow' mode if the mark stack overflows. (igc.c)
-
- Interpreter (PDF)
- -----------
-
- Fixes bugs:
- - Stroked text used the text matrix, rather than just the
- CTM, for scaling the line width, which could lead to inappropriately
- wide lines. (gs_pdf.ps)
- - Fonts based on other than a 1000-unit scale (i.e., with a
- FontMatrix other than [0.001 0 0 0.001 0 0]) didn't scale Widths to
- match the font scaling. (pdf_font.ps)
-
- Implements the PDF 1.1 color space extensions, except for Lab space.
- (gs_pdf.ps, pdf_draw.ps)
-
- Implements the Rotate key for pages. (pdf_main.ps)
-
- Streams
- -------
-
- Fixes bugs:
- - When the garbage collector closed a file stream, the stream
- incorrectly attempted to free the buffer. (stream.c)
-
- Separates out some stream implementations to better distinguish the
- graphics core from the language interpreters. (smtf.h, sfilter1.c,
- smtf.c, srld.c, srle.c)
-
- Library
- -------
-
- Fixes bugs:
- - Compressing characters being entered in the cache could cause an
- invalid memory access. (gsbitops.c)
- - The setbbox bounding box check was slightly inaccurate.
- (gsdps1.c)
- - makepattern could create structures in global VM pointing to
- structures in local VM. (gscolor2.h, gspcolor.c)
- - Out-of-range values during CIE color conversion led to random
- results. (gscie.c)
- - On output devices with non-inverted Y axes (such as MS Windows),
- Interpolated images would smash memory. (gsimage.c)
- - 90 degree rotated zero-width images caused an invalid memory
- access. (gsimage1.c)
- - If #copies was zero, showpage could create bogus empty output
- files. (gdevprn.c)
- - PageCount didn't take #copies into account. (gsdevice.c)
- - Indexed or Separation colors with a CIE base or alternate space
- didn't work. (gscie.h, gscie.c)
-
- Implements triangular line caps and joins, in anticipation of adding
- a PCL5 interpreter. (gsline.h, gxstroke.c)
-
- Moves some procedures around for better separation of library from
- interpreter. (gsinit.c, gslib.c, gsmain.c, gsmisc.c)
-
- Moves the standard allocator from the interpreter to the library.
- (gsalloc.h, gxalloc.h, gxobj.h, gsalloc.c)
-
- Starts to change the representation of paths slightly to make it possible to
- identify arcs. This change is backward-compatible for all code except
- callers of gx_path_add_arc. (gxpath.h, gspath1.c, gxpath.c, gxstroke.c)
-
- Adds some framework for keeping track of RasterOp and "transparency" in the
- graphics state, although these don't actually have any effect yet.
- (gsrop.h, gsropt.h, gsstate.h, gxcldev.h, gzstate.h, gsrop.c, gsstate.c,
- gxclist.c, gxclread.c)
-
- Adds a compile-time option for using the Adobe RGB<->CMYK conversion rules.
- (gxdcconv.c)
-
- Adds a driver procedure for identifying band devices. This change is
- backward-compatible for all existing devices. (gdevmem.h, gxdevice.h,
- gsdevice.c, gxclip2.c, gxclist.c, gxcpath.c)
-
- Speeds up gray-scale images on devices requiring banding, and enables
- further optimizations, by reintroducing the distinction between banded and
- non-banded devices. (gxdevice.h, gdevprn.c, gsimage1.c)
-
- Reduces the size of the band list for halftoned images by encoding tile
- indices more compactly. (gxcldev.h, gxclist.h, gxclist.c, gxclread.c)
-
- Extends the band list so it can cache more than 256 halftone tiles, and to
- make better decisions about tile caching. (gxcldev.h, gxclist.h, gxclist.c,
- gxclread.c)
-
- Version 3.37(limited) (5/11/95)
- =====================
-
- Another bug fix release distributed only to customers.
-
- Documentation
- -------------
-
- Fixes bugs:
- - Some documentation about parameter lists was incorrect.
- (gsparam.h)
- - The documentation did not note that one cannot "pipe" PDF files
- into the interpreter. (use.doc)
-
- Adds documentation for the BJC-600 to devices.doc. (devices.doc)
-
- Procedures
- ----------
-
- Changes the debugging switch for OS calls from -Z0 to -Ze, and adds -Z0 for
- high-level GC tracing. (use.doc, gp_unifs.c, ialloc.c, igc.c)
-
- Utilities
- ---------
-
- Fixes bugs:
- - The ps2ascii shell script included an erroneous @d. (ps2ascii)
-
- Enhances ps2ascii to output color and rectangle fill/stroke information if
- COMPLEX is defined. (ps2ascii.ps)
-
- Drivers
- -------
-
- Fixes bugs:
- - the BJC-600 driver didn't handle BitsPerPixel correctly.
- (gdevcdj.c)
-
- Fonts
- -----
-
- Fixes bugs:
- - Some buggy Type 1 fonts confused the Type 1 font reader.
- (gs_fonts.ps, gs_type1.ps, pdf_font.ps)
-
- Interpreter (PostScript)
- -----------
-
- Fixes bugs:
- - .registerencoding didn't accept mixedarrays, which could cause an
- error if an encoding was loaded long after initialization. (zfont2.c)
- - If a program did a lot of saves and restores, the garbage
- collector could get invoked much too often. (iastate.h, ialloc.c, igc.c,
- isave.c)
-
- Changes the name of the rectappend operator to .rectappend, since it isn't a
- standard PostScript operator. (zdps1.c)
-
- Interpreter (PDF)
- -----------------
-
- Fixes bugs:
- - PDF files didn't interact properly with ps2ascii. (gs_pdf.ps)
- - setdash wouldn't accept a packed array. (zgstate.c)
- - PDF files with incorrect generation numbers in object references
- produced an error rather than a warning. (pdf_base.ps)
-
- Version 3.36(limited) (5/4/95)
- =====================
-
- This is a limited-distribution release for distributing bug fixes to a few
- customers.
-
- Documentation
- -------------
-
- Adds some environment variables to the man page. (gs.1)
-
- Procedures
- ----------
-
- Adds the psmono device to all 32-bit configurations. (*.mak)
-
- Moves the psmono and 'bit' devices to DEVICE_DEVS12 to avoid exceeding the
- 120-character maximum length of the DOS command line. (*.mak)
-
- Drivers
- -------
-
- Changes the pgm[raw] and ppm[raw] drivers so they do *not* automatically
- switch to pbm or pgm/ppm respectively if this is possible for the particular
- page being rendered; adds pgnm[raw] and pnm[raw] drivers that *do* do this.
- THIS IS A NON-BACKWARD-COMPATIBLE CHANGE. However, existing programs will
- still work; they just won't produce the smallest and simplest possible
- output. (devs.mak, gdevpbm.c)
-
- Interpreter
- -----------
-
- Fixes bugs:
- - A multi-level restore didn't free gstates allocated by
- intermediate saves, causing some global VM to be lost until a garbage
- collection. (isave.h, isave.c, zvmem.c)
-
- Speeds up restore by skipping the scan of the character cache if no new
- names have been allocated since the save. (zfont.c)
-
- Extends the client API to allow for popping return values off the operand
- stack. (imain.h, gs.c, gsmain.c)
-
- Library
- -------
-
- Modifies the character oversampling algorithms to help prevent dropouts.
- (gsbitops.c, gschar.c)
-
- Version 3.35(internal) (5/2/95)
- ======================
-
- This is another internal "snapshot" version.
-
- Documentation
- -------------
-
- Fixes bugs:
- - Some of the file names in the `man' page had gotten out of date.
- (gs.1)
- - Two references to .PageCount hadn't been changed to PageCount.
- (language.doc, devarch.doc)
-
- Procedures
- ----------
-
- Puts writeppmfile back in the standard Unix and DV/X configurations, since
- gsftopk uses it. Also puts the PDF reader in all 32-bit configurations.
- (*.mak)
-
- Moves the BMP devices to DEVICE_DEVS11 to avoid exceeding the 120-character
- maximum length of the DOS command line. (bcwin.mak, bcwin32.mak, os2.mak)
-
- Utilities
- ---------
-
- Fixes bugs:
- - unix-lpr.sh didn't handle 32-bit devices. (unix-lpr.sh)
- - unix-lpr.sh still used the name .PageCount rather than PageCount.
- (unix-lpr.sh)
- - font2c gave an error when trying to write general procedures in
- font dictionaries. (font2c.ps)
-
- Adds a pdf2dsc.ps utility for writing out fake DSC-compliant PostScript code
- to invoke the PDF reader, for the benefit of viewer programs that aren't
- PDF-aware. (unix-end.mak, pdf2dsc.ps)
-
- Drivers
- -------
-
- Fixes bugs:
- - The TIFF drivers put out incorrect PageNumber values.
- (gdevtfax.c)
- - Printer (and file output) devices got closed and reopened
- unnecessarily when changing parameters. (gdevprn.c)
- - Printer (and file output) devices didn't check for invalid formats
- following a % in OutputFile. (devs.mak, gdevprn.c)
- - 1-bit memory devices were not considered page devices, unlike all
- other memory devices. (gsdevice.c)
- - The black-and-white H-P printers didn't close the printer
- properly, causing printing not to happen under MS Windows. (gdevprn.c)
- - Some compilers didn't like initializing a const char * to NULL.
- (gdevlbp8.c)
-
- Changes the X Windows driver so that if Ghostview specifies a bounding box,
- this also sets ImagingBBox. (gdevxini.c)
-
- At the request of a customer, adds 1-, 4-, 8-, 24-, and 32-bit-deep memory
- devices that store bits in 32-bit units rather than byte units. (gdevmem.h,
- gxdevmem.h, gdevmem.c, gdevm1.c, gdevm2.c, gdevm4.c, gdevm8.c, gdevm16.c,
- gdevm24.c, gdevm32.c)
-
- Adds a new MS Windows printer driver, mswinpr2, that uses a DIB rather than
- a DDB. (gdevwpr2.c)
-
- Platforms
- ---------
-
- Fixes bugs:
- - A routine wouldn't compile because of a bug in the SGI C compiler.
- (zcsindex.c)
- - Some declarations were inconsistent when compiling for segmented
- environments. (gscie.c)
- - A routine wouldn't compile because of a bug in the VAX C compiler.
- (gscie.c)
-
- Turns on compiler optimization for OS/2; adds PDF support and more devices
- for Win32 and OS/2. (bcwin.mak, bcwin32.mak, os2.mak)
-
- Fonts
- -----
-
- Fixes bugs:
- - Font loading used 'setglobal' without binding it, which caused
- some EPS files to signal errors. (gs_fonts.ps)
- - A zero-length string with offset = 0 in a binary object sequence
- caused an error. (iscanbin.c)
-
- Adds a LOCALFONTS switch that causes Ghostscript to load Type 1 fonts into
- the current VM, rather than global VM. According to Adobe, this is what
- Adobe printers (but not other interpreters, such as DPS and CPSI) do.
- (gs_init.ps, gs_fonts.ps)
-
- Interpreter
- -----------
-
- Fixes bugs:
- - The 'note' page size command caused pages to be clipped
- improperly. (gs_statd.ps)
-
- Adds "word" image devices. (gs_init.ps, zdevice.c)
-
- Starts converting the interpreter to use an explicit instance pointer. This
- is very fragmentary so far and not really supported. (main.h, gs.c,
- gsmain.c, iccinit.c)
-
- Library
- -------
-
- Adds "word" image devices. (gsdevice.h, gsdevice.c)
-
- Removes the requirement that ImagingBBox[0] and [1] be non-negative. (The
- Adobe specification requires this, but Ghostscript supports more general
- initial CTMs than the Adobe spec.) (gsdparam.c)
-
- Version 3.34(internal) (4/18/95)
- ======================
-
- This is a "snapshot" version made for internal purposes. It was never
- released to anyone.
-
- Documentation
- -------------
-
- Updates commprod.doc to be fully consistent with the AGFPL. (commprod.doc)
-
- Procedures
- ----------
-
- Fixes bugs:
- - tar_x was out of date. (tar_x)
- - tar_gs assumed that if any PC executables were present, gs.exe
- would exist. (tar_gs)
- - jpeg.mak said the current IJG version was 5b, but the makefiles
- actually referred to version 5a. (jpeg.mak)
- - The build rule for the LIPS III driver was incorrect. (devs.mak)
- - Some definitions in the makefiles occurred out of order.
- (ansihead.mak, cc-head.mak, gcc-head.mak, unixhead.mak, unixtail.mak)
- - The build rule for dvx-gcc.mak was incorrect. (unix-end.mak)
-
- Interpreter
- -----------
-
- Restructures the CIE caches to move much more of the computation from color
- mapping time to cache loading time. (zcie.c)
-
- Library
- -------
-
- Fixes bugs:
- - Color conversion of 12-bit images was very slightly inaccurate.
- (gxfrac.h)
-
- Changes the transfer function, black generation, and undercolor removal
- caches so that they sample at 1024 points and don't interpolate, rather than
- sampling at 256 points and interpolating. This significantly improves the
- speed of colored image rendering. ****** LIMITED TO 256 POINTS BECAUSE OF
- O-STACK SIZE LIMIT. ****** (gxfmap.h, gxcmap.c)
-
- Restructures the CIE caches to move much more of the computation from color
- mapping time to cache loading time. (gscie.h, gscie.c)
-
- Version 3.33 (4/13/95)
- ============
-
- A few more last-minute bug fixes. This is, finally, the first public
- release since 3.12.
-
- Documentation
- -------------
-
- Fixes bugs:
- - There was a reference to "VAX with OSF/1", which doesn't exist,
- and an incorrect reference to VAX with Ultrix. (make.doc)
- - The Unix makefiles incorrectly stated that gsdatadir was only
- relevant to `make install'. (ansihead.mak, cc-head.mak, dgc-head.mak,
- gcc-head.mak)
- - Notes that DV/X users should use the zip version of the JPEG
- library. (jpeg.mak)
-
- Procedures
- ----------
-
- Fixes bugs:
- - A command line had gotten too long for the MS-DOS shell.
- (gs.mak)
- - The VMS DEC C script didn't explicitly select DEC C.
- (vms-decc.mak)
- - The VMS MODULES.LIS omitted SPDIFF and ZFPDIFF. (modules.lis)
- - The VMS script had an incorrect entry. (vms.mak)
- - The `if' fix in 3.31 broke some Unix systems with different
- implementations of sh. (unix-end.mak)
- - The makefile definition of gscspace_h was out of order. (gs.mak)
- - An extra ; got written in gconfig_.h on DV/X platforms.
- (dvx-tail.mak)
- - '.' was incorrectly prepended to the library search list on DV/X
- platforms. (dgc-head.mak)
- - The build rules for unix*.mak didn't work on DV/X. (unix-end.mak)
-
- Adds a description of the -c quit switch to the help message. (gs.c)
-
- For the DV/X platform, changes /usr/include to /djgpp/include as the place
- to look for header files. I'm not sure this is always correct.
- (dvx-tail.mak)
-
- Utilities
- ---------
-
- Fixes bugs:
- - ps2ascii would cause an error if given a font that didn't have an
- 'X' character. (ps2ascii.ps)
- - ps2ascii didn't intercept the Level 2 string display operators.
- (ps2ascii.ps)
-
- Drivers
- -------
-
- Fixes bugs:
- - The Stylus Color driver had an incorrect type name. (gdevstc.c)
-
- Platforms
- ---------
-
- Fixes bugs:
- - -dBitsPerPixel= didn't work properly for MS Windows or OS/2 PM.
- (gdevmswn.c, gdevpm.c)
- - The Win32 platform didn't compile properly. (memory_.h)
-
- Fonts
- -----
-
- Improves the font substitution algorithm to take the face name into account
- in more cases. (gs_fonts.ps)
-
- Library
- -------
-
- Fixes bugs:
- - Unrotated black-and-white bitmaps with an inverted device X axis
- were displaced in X. (gsimage1.c)
-
- Version 3.32 (4/7/95)
- ============
-
- More bug fixes. This is still not a public release.
-
- Documentation
- -------------
-
- Further clarifies the "two-phase commit" algorithm for device put_params
- procedures. (drivers.doc, gsparam.h)
-
- Adds a note about a compiler bug under Ultrix 4.4. (make.doc)
-
- Procedures
- ----------
-
- Fixes bugs:
- - Some installation scripts could fail because some implementations
- of sh take the status of an `if' condition as the status of the `if'
- command. (unix-end.mak)
-
- Adds "maintainer-clean" as a synonym for "real-clean". (gs.mak)
-
- Adds a -dORIENT1 switch that defines orientation = 1 as portrait for
- setpage[params]. (use.doc, gs_init.ps, gs_lev2.ps, gs_statd.ps)
-
- Utilities
- ---------
-
- Fixes bugs:
- - ps2ascii didn't redirect %stdout completely. (ps2ascii.ps)
- - ps2ascii didn't preserve the local/global VM mode. (ps2ascii.ps)
- - ps2ascii didn't handle fonts with an all-zero or missing bounding
- box correctly. (ps2ascii.ps)
- - viewpbm didn't scale the image properly. (viewpbm.ps)
-
- Drivers
- -------
-
- Fixes bugs:
- - The CGM driver wrote out an incorrect color precision value.
- (gdevcgm.c)
- - The SGI bitmap driver was named "sgi" rather than "sgirgb".
- (gdevsgi.c)
- - The PCX driver didn't round up an odd line length for gray-scale
- output. (gdevpcx.c)
- - The PCX driver produced incorrect output for gray-scale or 4- or
- 8-bit color. (gdevpcx.c)
-
- Platforms
- ---------
-
- Fixes bugs:
- - The VMS MODULES.LIS file had gotten out of sync with the Unix
- makefiles (again). (modules.lis)
-
- Interpreter
- -----------
-
- Fixes bugs:
- - Some compilers won't accept '\l', even in the false arm of a
- preprocessor conditional. (scanchar.h)
- - A procedure was declared with an incorrect argument type.
- (zcsindex.c)
- - The scaled font cache didn't copy XUIDs properly. (bfont.h,
- zfont.c, zfont2.c)
-
- Streams
- -------
-
- Fixes bugs:
- - The LZW filters were factored improperly. (modules.lis, gs.mak,
- vms.mak, slzwx.h, slzwc.c, slzwd.c)
-
- Changes the DCTDecode filter for compatibility with Adobe implementations:
- - Ignore bytes preceding the 0xff that marks the beginning of the
- JPEG data. (sdctd.c)
- - Set MAX_BLOCKS_IN_MCU to 64. (jpeg.mak, gsjpglib.h)
-
- Library
- -------
-
- Fixes bugs:
- - The "two-phase commit" for device parameters wasn't fully
- implemented. (gsiodev.c)
- - Asking for a device color map before the device was opened could
- cause a crash. (gsdparam.c)
- - The scaled font cache didn't copy XUIDs properly. (gxfont.h,
- gsfont.c)
- - 90 or 270 degree rotated black-and-white bitmaps (including
- bitmapped fonts such as downloaded TrueType fonts) with an inverted device Y
- axis were displaced in Y. (gsimage1.c)
- - On high-resolution devices, parts of regions filled with halftones
- could fail to be painted. (gxclist.c)
-
- Version 3.31 (4/2/95)
- ============
-
- A few final bug fixes for the release. Includes significant speed
- improvements for CIE color, and a first draft of a low-level CGM driver.
-
- Documentation
- -------------
-
- Notes that the BJC600 driver also works for the BJC4000. (devs.mak)
-
- Procedures
- ----------
-
- At the suggestion of a user, changes the default protections for installed
- files on Unix and DV/X systems from 775/664 to 755/644. (*head.mak)
-
- At the suggestion of a user, adds a -dNOCIE switch to substitute DeviceGray
- and DeviceRGB color spaces for CIEBasedA and CIEBasedABC spaces
- respectively. (gs_init.ps, gs_lev2.ps)
-
- Utilities
- ---------
-
- Changes gslp and its relatives to use ISOLatin1Encoding for output, and to
- send almost all printout to stderr rather than stdout (for use as a filter
- under Unix). (gslp.ps)
-
- Drivers
- -------
-
- Fixes bugs:
- - The fax/TIFF driver no longer exported gdev_fax_print_page, which
- the DigiFax driver needs. (gdevtfax.c)
- - The color DeskJet drivers gave an error for BitsPerPixel=3.
- (gdevcdj.c)
- - The "Windows printer" driver was setting its margins in points
- rather than inches. (gdevwprn.c)
- - The BJ10 and BJ200 drivers calculated vertical skip distances
- wrong. (gdevbj10.c)
- - The BJ10 and BJ200 drivers output two garbage bytes following the
- initialization string. (gdevbj10.c)
-
- Adds a preliminary driver that produces low-level CGM output. (gdevcgml.h,
- gdevcgmx.h, gdevcgm.c, gdevcgml.c)
-
- Platforms
- ---------
-
- Fixes bugs:
- - The VMS files had gotten out of sync with the other makefiles
- (again). (modules.lis, vms.mak)
- - The MS Windows and OS/2-PM drivers hadn't been updated to handle
- BitsPerPixel as a standard parameter. (gdevmswn.c, gdevpm.c)
-
- Removes the TIFF drivers from the Windows platform, and restores the BMP
- drivers. (bcwin.mak)
-
- Interpreter
- -----------
-
- Fixes bugs:
- - The CIE color mapping cache could produce anomalous results
- for the default (all zero values) color if some of the mapping
- functions were non-linear. (zcie.c)
- - MultiMaster font substitution got confused if substituted
- fonts had their FontName changed. (gs_fonts.ps)
- - A procedure was declared as private inconsistently. (zdevcal.c)
- - Some pointer relocation procedures didn't work correctly on
- systems with sizeof(T *) > sizeof(int). (istack.c)
- - The freelist vector wasn't large enough to handle graphics state
- objects on 64-bit systems, leading to severe memory sandbars. (iastate.h)
- - The debugging messages from the allocator had gotten inconsistent
- and hard to use. (ialloc.c)
- - Mixing save/restore with allocation could cause the GC never to
- get run. (isave.c)
-
- Speeds up the mapping of CIE colors. (zcie.c)
-
- Adds a .namestring operator for getting the string of a name without having
- to copy it. (zstring.c)
-
- Streams
- -------
-
- Fixes bugs:
- - The IJG code needed a couple more flags set for IJG v6.
- (gsjmorec.h)
- - Some pointer relocation procedures didn't work correctly on
- systems with sizeof(T *) > sizeof(int). (stream.c)
-
- Library
- -------
-
- Fixes bugs:
- - The end-test for the fast case of monobit images was wrong,
- leading to out-of-range memory accesses. (gsimage1.c)
- - Monobit images rotated by 270 degrees displayed incorrectly.
- (gsimage1.c)
- - If a Type 1 font used hint replacement, some parts of the outline
- before the hint replacement ignored the old hints. (gstype1.c)
- - Some compilers didn't accept a variable name that was the same as
- a macro with parameters. (gxht.c)
- - A procedure was declared as private inconsistently. (gdevm1.c)
- - Some pointer relocation procedures didn't work correctly on
- systems with sizeof(T *) > sizeof(int). (gdevmem.c, gsstate.c)
- - The test on FORCE_HINTS_TO_BIG_PIXELS was backwards. This bug was
- supposed to have been fixed in 3.30, but somehow the fix got lost.
- (gstype1.c)
- - 90 degree rotated monobit images could drop some scan lines.
- (gsimage*.c)
-
- Speeds up the mapping of CIE colors. (gscie.h, gxcmap.h, gscie.c, gxcmap.c)
-
- Speeds up color images (non-interpolated, 1-8 bits per component) by adding
- a cache for mapped color values. (gximage.h, gsimage.c, gsimage1.c,
- gsimage2.c)
-
- Shrinks the band list file slightly by using only as many bytes as necessary
- for writing out colors, rather than always using 4 bytes. (gxclist.c,
- gxclread.c)
-
- Version 3.30(beta) (3/21/95)
- ==================
-
- More bug fixes. The garbage collector and PDF interpreter finally appear to
- work reliably.
-
- Documentation
- -------------
-
- Fixes bugs:
- - language.doc had gotten out of date. (language.doc)
-
- Utilities
- ---------
-
- Fixes bugs:
- - Changes in the handling of %stdout had broken ps2ascii.
- (gs_dps1.ps, ps2ascii.ps)
-
- Improves ps2ascii to skip empty strings and not output redundant font
- changes. (ps2ascii.ps)
-
- Drivers
- -------
-
- Fixes bugs:
- - The fax and TIFF drivers didn't free all their working storage.
- (This bug was fixed in 3.27, and the fix somehow got lost.) (gdevtfax.c)
-
- Adds new drivers:
- - sgirgb, to produce SGI RGB raster files. (gdevsgi.c)
- - tiffcrle, to produce output in TIFF "CCITT 1-dimensional Huffman
- RLE" format (Group 3 fax with no EOLs). (gdevtfax.c)
- - tifflzw, to produce output in TIFF LZW format (using the existing
- CCITTFaxEncode filter code). (gdevtfax.c)
- - tiffpack, to produce output in TIFF PackBits format. (gdevtfax.c)
-
- Interpreter (PostScript)
- ------------------------
-
- Fixes bugs:
- - If the current screen was set with a halftone, setcolorscreen
- wouldn't accept what currentcolorscreen returned. (gs_dps1.ps)
- - debug_print_full_ref didn't print t_oparray objects correctly.
- (idebug.c)
- - The internal data for a font could be allocated in a different VM
- space from the font dictionary, causing dangling pointers. (zfont2.c)
- - definefont became confused if a program failed to delete the FID
- from a re-encoded font. (This is questionable PostScript, but dvips does
- it.) (zfont2.c)
- - If a BuildChar procedure did a save before the setcachedevice and
- a restore afterwards, the memory manager would attempt to free the cache
- device after it had already been freed by the restore, leading to damaged
- freelists. (gschar.c)
- - setresolution (in statusdict) was ignored. (gs_lev2.ps,
- gs_statd.ps)
- - If a string containing a string containing a \ was passed to the
- token operator, the \ was not recognized properly in a Level 2 environment.
- (iscan.c)
- - A couple of default dictionary sizes had become too small.
- (iinit.c)
-
- Makes DOS EOF (control-Z, 0x1a) a self-delimiting token, like left bracket.
- THIS IS A NON-BACKWARD-COMPATIBLE CHANGE, but it should not have any adverse
- effects. (gs_init.ps, iscan.c, iscantab.c)
-
- Distinguishes arch_small_memory from arch_ints_are_short, and adds a new
- -Z. switch to force small-memory table sizes regardless of actual memory
- size. (dstack.h, idict.c, zpcolor.c, zvmem2.c)
-
- Interpreter (PDF)
- -----------------
-
- Fixes bugs:
- - A page with no Contents caused an error. (pdf_main.ps)
- - Executing a Form resource caused an error. (pdf_draw.ps)
- - Outlines with open entries caused an error. (pdf_main.ps)
- - Embedded Type 3 fonts caused an error. (pdf_draw.ps, pdf_font.ps)
- - The Widths array of fonts was ignored. (pdf_font.ps)
-
- Library
- -------
-
- Fixes bugs:
- - Freeing an entry in the pattern cache didn't clear the pointers to
- the raster data, producing a dangling reference that confused the garbage
- collector. (gxpcmap.c)
- - The test on FORCE_HINTS_TO_BIG_PIXELS was backwards. (gstype1.c)
- - The pattern cache bookkeeping was incorrect. (gxpcmap.c)
- - Depending on the order in which pointers were relocated, the
- garbage collector could incorrectly relocate pointers from the character
- cache. (gxfcache.h, gsfont.c, gxccache.c, gxccman.c)
-
- Changes the fast case of black-and-white images so it aligns scaled images
- with the device coordinate system, to improve performance. (gsimage1.c)
-
- Extends the coordinate transformation routines to handle absurdly large
- translation values in the CTM as long as the final device device coordinates
- are within fixed-point range. (gxmatrix.h, gxpath.h, gschar.c, gscoord.c,
- gsmatrix.c, gxhint2.c, gxpath2.c)
-
- Distinguishes arch_small_memory from arch_ints_are_short, and adds a new
- -Z. switch to force small-memory table sizes regardless of actual memory
- size. (gdevprn.h, gxpcolor.h, gzht.h, std.h, gsfont.c, gsht1.c, gspaint.c,
- gsstate.c, gxcht.c, gxht.c, gxpcmap.c)
-
- Version 3.29(internal) (3/8/95)
- ======================
-
- Another bug-fix release. This release processes all but 7 of the 500+ files
- on the Adobe Acrobat Sampler CD-ROM without giving an error. The garbage
- collector finally appears to be stable. This version was created for a
- customer; it was not released to the general public or even to the beta test
- list.
-
- Documentation
- -------------
-
- Documents the possible need to set LD_RUN_PATH on SVR4 platforms.
- (make.doc)
-
- Expands the description of the device life cycle, and of the constraints on
- put_params procedures. (drivers.doc)
-
- Adds an explicit copyright notice to the Aladdin Ghostscript Free Public
- License. (PUBLIC)
-
- Clarifies that the Win32s documentation also applies to Windows NT.
- (make.doc)
-
- Procedures
- ----------
-
- Removes the obsolete writeppmfile operator from the standard configurations.
- (gs.mak)
-
- Changes the Watcom makefiles to work properly with Watcom C/C++ 10.0.
- (make.doc, msc.mak, watc.mak, watcwin.mak, wccommon.mak)
-
- Utilities
- ---------
-
- Adds a wftopfa utility for converting the Wadalab fonts to usable Type 0 and
- Type 1 form. (wftopfa)
-
- Fonts
- -----
-
- Fixes bugs:
- - Entries added automatically by definefont (FontInfo, ExactSize)
- could cause a font dictionary to become full. (gs_fonts.ps, gs_type1.ps)
- - wrfont.ps couldn't deal with very long CharStrings. (wrfont.ps)
-
- Makes the name of the Fontmap file an easily editable parameter.
- (gs_fonts.ps)
-
- Adds a utility for converting the Wadalab font to usable Type 0 and Type 1
- form. (wrfont.ps, wftopfa.ps)
-
- Drivers
- -------
-
- Fixes bugs:
- - The top margin for printer (and fax) devices was computed
- incorrectly, using the X resolution rather than the Y resolution.
- (gdevprn.h)
- - Changing the page size or resolution of a printer device closed
- and reopened the device unnecessarily. (gdevprn.c)
- - Changing the page size of the X11 device didn't change the initial
- matrix, so (0,0) didn't wind up in the lower left corner. (gdevx.c)
- - The bit devices didn't allow changing the number of bits per
- pixel. (gdevbit.c)
-
- Adds a settable .IsPageDevice boolean device parameter to the X Windows
- driver. The default value is true. (gdevx.h, gdevx.c)
-
- Changes the PPM driver so that it chooses between PBM/PGM/PPM on a
- page-by-page basis, rather retaining the most general format ever required
- by any page. (gdevpbm.c)
-
- Interpreter (PostScript)
- ------------------------
-
- Fixes bugs:
- - The current page device could be null, rather than an empty
- dictionary. (igstate.h, zchar.c, zdevice.c, zdevice2.c, zgstate.c)
- - The scanner didn't signal an error for names or strings that were
- too long. (iscan.c)
- - A missing header file upset the VAX compilers. (ztype.c)
- - Some places expecting dictionary operands didn't check the type,
- because they incorrectly assumed that the dict_check_read/write macro did
- this. (idict.h, zdevice2.c, zht2.c, zmisc2.c)
- - The definition of quit in systemdict wasn't disabled within
- encapsulated jobs. (gs_lev2.ps)
- - resetfile gave an error if the file was closed, rather than doing
- nothing. (zfileio.c)
- - The scanner attempted to free an uninitialized pointer if it
- reached EOF after a / or //. (iscan.c)
- - A restore in a different file than the corresponding save caused
- an invalidrestore error. (gs_init.ps)
- - The default value of EndOfData in RunLengthDecode streams was set
- to false. (zfilter.c)
- - .registerencoding didn't invoke the save machinery correctly,
- leading to GC problems. (zfont2.c)
- - The facility for overriding .printerror didn't work correctly.
- (gs_init.ps)
- - gs_run_file_open wasn't public. (gsmain.c)
- - The interpreter returned e_undefined for undefined error names,
- rather than the error code. (interp.c)
- - Allocation in system memory (specifically, adding a block to a
- stack) couldn't trigger automatic garbage collection. (interp.c, igc.c,
- zvmem2.c)
- - A restore in a different invocation of gs_run_string than the
- corresponding save would stop reading the string. (files.h, gsmain.c,
- iccinit.c, zfile.c)
- - The Type 1 rasterizer state included a pointer into the middle of
- an object, confusing the garbage collector. (zchar1.c, zfont1.c)
- - When the garbage collector deleted a name, it didn't zero out the
- string pointer. (iname.c)
- - On platforms where obj_align_mod > 4, the memory manager could
- access 1 beyond the end of its freelists. (iastate.h)
- - makefont and scalefont didn't check the type of their font operand
- soon enough. (zfont.c)
- - restore didn't finalize the objects it freed. (isave.c)
- - restore didn't free system VM. (isave.c)
- - Freeing a ref array that occupied an entire chunk didn't free the
- chunk. (ialloc.c)
-
- Adds a .runexec operator which implements the 'close if error' function of
- run. (zfile.c, zfileio.c)
-
- Moves the obsolete writeppmfile operator into a separate file. (zfileio.c,
- zwppm.c)
-
- Makes the statistics returned by the memory manager more accurate.
- (ialloc.c, zvmem.c)
-
- Adds a (read-only) %Calendar% IODevice. (zdevcal.c)
-
- Adds a "hook" in the character operators to allow external code to
- intervene; this is needed for a customer. (ichar.h, zchar.c, zchar2.c)
-
- Makes control-D (0x04) a self-delimiting token, like left bracket. THIS IS
- A NON-BACKWARD-COMPATIBLE CHANGE, but it should not have any adverse
- effects. (scanchar.h, iscan.c, iscantab.c)
-
- Changes the error stack printout so that it puts line breaks between items
- iff the items are being printed with ==. (gs_init.ps)
-
- Uses finalization to close streams being freed. (igc.c, zfile.c, ziodev.c)
-
- Interpreter (PDF)
- -----------------
-
- Fixes bugs:
- - Embedded Type 1 fonts that invoked save and restore while being
- read caused an error. (pdf_font.ps)
- - Large files that referenced a non-alphabetic font for the first
- time late in the file could cause an error. (pdf_main.ps)
-
- Streams
- -------
-
- Fixes bugs:
- - SubFileDecode streams didn't copy partial matches of the EOD
- string into their output. (sfilter1.c)
-
- Makes switching between read and write modes a stream procedure. (stream.h,
- sfile.c, sfileno.c, stream.c, zfileio.c)
-
- Makes file streams close themselves when finalized. (We can't do this for
- other streams, because finalization procedures aren't allowed to free
- storage explicitly.) (stream.h, sfile.c, sfileno.c, stream.c)
-
- Library
- -------
-
- Fixes bugs:
- - The obsolete files gcdefs.h and gsfile.c were still included in
- the fileset.
- - A number of places didn't deal with null patterns properly (p_tile
- == 0). (gxdcolor.h, gspcolor.c, gxpcmap.c)
- - The pattern tiling algorithm was numerically unstable, especially
- if the X/YStep vectors were close to the axes. (gxcolor2.h, gspcolor.c,
- gxpcmap.c)
- - setdeviceparams checked the values of read-only byte array
- parameters incorrectly. (gsdparam.c)
- - The statistics macros in gxfill.c didn't use DO_NOTHING when
- disabled. (gxfill.c)
- - Changing the orientation of a device closed and reopened the
- device unnecessarily. (gsdparam.c)
- - ioerrors occurring when writing command lists weren't reported
- properly. (gxclist.h, gxclist.c)
- - Errors from device procedures weren't always propagated up to
- clients. (gsimage1.c, gsimage3.c, gxclip2.c, gxclist.c)
- - Overflowing the fixed-point translation values in the CTM caused a
- floating point exception rather than a limitcheck. (gxmatrix.h, gscoord.c)
- - charpath set the current point correctly, but didn't append a
- moveto element to the path. (This mostly affected Mathematica output.)
- (gzpath.h)
- - Image devices mapped colors incorrectly. (gdevmem.c, gdevm16.c)
- - On devices with color capability but fewer than 4 bits per pixel,
- color halftones didn't work (and could cause an arithmetic exception).
- (gxdither.c)
- - Black-on-white memory devices didn't map colors properly.
- (gdevprn.h, gxdevice.h, gxdevmem.h, gdevmem.c, gdevm1.c, gsdevice.c)
- - Memory devices with a non-zero origin in their initial matrix
- clipped the image improperly. (gsdevice.c)
- - The Type 1 rasterizer state included a pointer into the middle of
- an object, confusing the garbage collector. (gstype1.h, gxfont1.h,
- gxtype1.h, gstype1.c, gxhint2.c)
- - The band rasterizer could produce garbled output for images
- (including characters) on 64-bit architectures. (gxclread.c)
- - Bounding boxes (for pathbbox and setbbox) could be slightly
- inaccurate. (gsmatrix.c)
- - On 64-bit architectures, halftone tiles less than 16 bits wide
- were handled incorrectly. (gxclist.c)
-
- Adds an .IsPageDevice boolean device parameter (normally read-only).
- (gsdparam.c)
-
- Removes the library code for implementing the obsolete writeppmfile
- operator. (gswppm.c)
-
- Makes the default matrix (for initmatrix and defaultmatrix) a settable
- parameter in the graphics state. (gscoord.h, gzstate.h, gscoord.c,
- gsdevice.c, gsdparam.c)
-
- Makes the statistics returned by the memory manager more accurate.
- (gsmemory.h)
-
- Adds a compile-time flag to choose whether or not to force Type 1 hints to
- "big pixel" boundaries when oversampling. (gstype1.c)
-
- Changes the .PageCount device parameter back to PageCount, because the
- change broke some scripts. (gsdparam.c)
-
- Adds optimization for 90 degree rotated images with pure colors.
- (gximage.h, gsimage.c, gsimage1.c)
-
- Changes the band rasterizer so that replicated halftone tiles are written on
- the band list in unreplicated form. (gsbitops.h, gxcldev.h, gsbitops.c,
- gxclist.c, gxclread.c, gxht.c)
-
- Changes the .HWBitsPerPixel device parameter to BitsPerPixel. (drivers.doc,
- language.doc, gdevcdj.c, gdevstc.c, gsdparam.c)
-
- Version 3.28(beta) (2/13/95)
- ==================
-
- Another bug-fix beta release. The number of bugs being fixed in each of
- these sub-releases does exceed the number of new bugs introduced, but the
- latter number is discouragingly high.
-
- Documentation
- -------------
-
- Adds some information about handling VMS file attributes for files
- transferred by FTP. (use.doc)
-
- Procedures
- ----------
-
- Fixes bugs:
- - unix-gcc.mak said the static linkage switch for SunOS was -Bstatic
- rather than -static. (unix-gcc.mak)
- - Some dependency lists in gs.mak were out of date. (gs.mak)
-
- Utilities
- ---------
-
- Fixes bugs:
- - markhint.ps didn't check for protected fonts. (markhint.ps)
-
- Drivers
- -------
-
- Fixes bugs:
- - The cdj driver had a byte/char agreement problem. (gdevcdj.c)
- - The cdj driver attempted to initialize a dynamic array.
- (gdevcdj.c)
-
- Removes the setting of InputAttributes and OutputAttributes from the H-P
- drivers, since this causes more problems than it solves. (gdevdjet.c)
-
- Interpreter
- -----------
-
- Fixes bugs:
- - makeoperator assigned incorrect attributes to operators. (bug
- introduced in 3.27) (opdef.h, iinit.c, iutil.c, zmisc.c)
-
- Library
- -------
-
- Fixes bugs:
- - gs_makeimagedevice didn't set the caller's pointer to the newly
- created device. (bug introduced in 3.27) (gsdevice.c)
- - There were still some mismatches between char * and byte * values.
- (gsdparam.c)
- - The halftone replication algorithm could produce inappropriately
- large replicated masks. (gxht.c)
- - stroke usually did the wrong thing for degenerate (single-point)
- subpaths. (gxstroke.c)
-
- Version 3.27(beta)(withdrawn) (2/8/95)
- =============================
-
- Yet another bug-fix beta release. This release had so many serious problems
- (the most serious being at least one changed file that the release tool
- failed to include in the fileset) that it was withdrawn less than a day
- after it was issued.
-
- Documentation
- -------------
-
- Fixes bugs:
- - The NEWS for 3.26 didn't mention the fact that the stdxxx stream
- interface used by MS Windows, OS/2, and Macintosh implementations had
- changed. (NEWS)
- - The file public.doc wasn't distributed with the previous fileset.
-
- Brings the NeXTSTEP documentation up to date for NeXTSTEP releases 3.2 and
- subsequent. (make.doc)
-
- Procedures
- ----------
-
- Fixes bugs:
- - Some dependency lists in gs.mak were out of date. (gs.mak)
- - A 'fi;' was missing in the Unix install script. (unix-end.mak)
- - There was no VMS build script for the PDF options. (vms.mak)
- - The VMS script used CC_QUALI instead of CC_QUAL in several places.
- (vms.mak)
-
- Utilities
- ---------
-
- Fixes bugs:
- - ps2epsi's usage prompt referred to "pstoepsi". (ps2epsi)
- - ps2epsi set PATH and LOCALPATH unilaterally. (ps2epsi)
-
- Comments out the sample usage line at the end of viewjpeg.ps. (viewjpeg.ps)
-
- Drivers
- -------
-
- Fixes bugs:
- - The fax and tiff drivers didn't free all of their working storage.
- (gdevtfax.c)
-
- Adds user-contributed drivers for the BJC 600 and ESC/P printers.
- (devs.mak, gdevcdj.c)
-
- Platforms
- ---------
-
- Fixes bugs:
- - Some necessary casts of string parameters to (const byte *) were
- omitted. (gp_mswin.c, gp_os2.c)
-
- Adds the psmono and bit* drivers, and removes the p*m drivers, in the OS/2,
- 32-bit MS-DOS, and 32-bit Windows configurations. (bcwin32.mak, os2.mak,
- watc.mak)
-
- Fonts
- -----
-
- Fixes bugs:
- - The Fontmap for Ultrix had somehow become slightly incorrect.
- (Fontmap.Ult)
-
- Removes the font file names from the dependency lists in cfonts.mak. This
- makes cfonts.mak readily usable with any set of fonts, but it also means
- that it will always run font2c, rather than being able to avoid this if the
- .c file is up to date. (cfonts.mak)
-
- Interpreter
- -----------
-
- Fixes bugs:
- - Some operators could fail if the stdxxx streams weren't currently
- open. (files.h, zfileio.c, ziodev.c)
- - setpagedevice didn't handle unrecognized keys properly.
- (gs_setpd.ps)
- - The value returned for the HWColorMap device parameter was
- allocated incorrectly, confusing the garbage collector. (iparam.c)
- - Typing ahead at the >>showpage<< prompt no longer caused all
- further pages to be processed without stopping. (gs_init.ps)
- - Setting DEVICEWIDTHPOINTS or DEVICEHEIGHTPOINTS on the command
- line caused a typecheck. (gs_init.ps)
- - The garbage collector didn't handle halftone threshold arrays
- properly. (zht2.c)
- - setdefaulttimeouts caused an error on Level 2 systems.
- (gs_lev2.ps)
- - cvi and cvr weren't equivalent to token followed by a type check.
- (iscan.h, iscannum.h, iscan.c, iscannum.c, ztoken.c, ztype.c)
- - In Level 2 systems, image and colorimage didn't allow 12 bits per
- sample. (zpaint.c)
- - If debugging was enabled, the garbage collector printed spurious
- error messages about the allocator objects not being in a chunk. (ialloc.c)
- - restore didn't reset the count of operator procedures, so the
- operator procedure table could fill up. Fixing this required splitting the
- op_array_table into a global table and a local table. (opdef.h, iinit.c,
- iutil.c, zmisc.c)
- - .forgetsave could leave a dangling pointer in the memory manager,
- causing an access error. (ialloc.c, isave.c)
- - Freed objects weren't always marked as freed, which could confuse
- the memory validator. (ialloc.c)
- - .forgetsave didn't mark inner chunk headers as free, leading to
- access errors. (isave.c)
-
- Changes the representation of operator procedures so that they point
- directly to their definition in the op_array_table. (iref.h, opdef.h,
- idebug.c, igc.c, igcref.c, interp.c, zmisc.c)
-
- Removes .makeglobaloperator. (zmisc.c)
-
- Adds patches to discard some common garbage produced by H-P-oriented
- applications and drivers. (gs_init.ps)
-
- Changes the >>showpage<< prompt so that if the input reaches EOF, the
- interpreter still stops after the next >>showpage<<, rather than processing
- all subsequent pages. This is a consequence of the bug fix that
- automatically reopens the stdxxx files.
-
- Adds an optional dictionary parameter for the RunLengthEncode/Decode
- filters, to allow specifying EndOfData. The default is true. (zfilter.c)
-
- Adds ByteTranslateEncode/Decode filters. (zfilter2.c)
-
- Streams
- -------
-
- Fixes bugs:
- - The K > 0 option of the CCITTFaxDecode filter switched back to 2-D
- encoding if an output buffer boundary fell in the middle of a 1-D line, and
- signalled an error if an input buffer boundary fell in the middle of an EOL.
- (scfd.c)
-
- Adds an EndOfData flag to the RunLengthEncode/Decode filters. If true, RLE
- generates 128 as EOD, and RLD recognizes it; if false, RLE does not mark
- EOD, and RLD ignores 128. (srlx.h, gxclist.c, gxclread.c, sfilter1.c)
-
- Adds ByteTranslateEncode/Decode streams. (sbtx.h, sfilter2.c)
-
- Library
- -------
-
- Fixes bugs:
- - There were some mismatches between char * and byte * values.
- (gsdparam.c)
- - Failure to round a scaling coordinate caused one-for-one
- black-and-white images to render slower than they should. (gsimage.c)
- - Setting PageSize without setting HWResolution could cause an
- invalid memory access. (gsdparam.c)
- - The garbage collector didn't handle halftone threshold arrays
- properly. (gxht.h, gsht.c, gsht1.c)
-
- Version 3.26(beta) (2/1/95)
- ==================
-
- Yet another bug-fix beta release, still not ready for public release.
-
- Documentation
- -------------
-
- Fixes bugs:
- - The description of device properties had gotten out of sync with
- the code. (language.doc)
-
- Splits off documentation specific to the Aladdin (non-GNU) release into a
- separate file. (readme, public.doc, unix-end.mak)
-
- Adds a pointer to a collection of other free fonts (including some Cyrillic
- ones) available on the net. (public.doc)
-
- Procedures
- ----------
-
- Fixes bugs:
- - On VMS systems with both VAX C and DEC C installed, the build script
- used VAX C rather than DEC C. (vms.mak)
- - zfdecode.c didn't have a build rule. (gs.mak)
- - Several macros in the makefile were used before they were defined.
- (gs.mak)
- - Several macros in the makefile were used without being defined.
- (gs.mak)
-
- Replaces the gssetdev, gssetmod, and gsaddmod scripts with more variants of
- echogs. (echogs.c, gs.mak)
-
- Utilities
- ---------
-
- Fixes bugs:
- - The ps2ascii shell script passed a -f flag to the shell, which not
- all shells recognize. (ps2ascii)
-
- Drivers
- -------
-
- Fixes bugs:
- - Due to a typo in an initialization string, the H-P printers didn't
- reset the top margin to zero. (gdevdjet.c)
-
- Adds InputAttributes and OutputAttributes entries to the H-P drivers. (This
- should probably be generic to all printers.) (gdevdjet.c)
-
- Replaces the contributed Epson Stylus Color driver with a newer version.
- (devices.doc, gdevstc.c)
-
- Platforms
- ---------
-
- Fixes bugs:
- - DEC C complained about 'abs' and 'exit' not being declared. (x_.h)
- - gp_mswin.c and gp_os2.c wouldn't compile. (gp_mswin.c, gp_os2.c,
- ziodev.c)
-
- Interpreter
- -----------
-
- Fixes bugs:
- - The default CIE rendering dictionary gave everything a magenta tint.
- (gs_lev2.ps)
- - Changing HWResolution and PageSize in the same call of
- setpagedevice produced an incorrect HWSize. (gsdparam.c)
- - .putdeviceparams didn't accept all the keys that .getdeviceparams
- returned. (gsdparam.c)
- - The default handler for interrupt and timeout errors didn't push a
- current object (command) on the stack. (gs_init.ps)
- - The garbage collector didn't handle strings larger than 64K
- properly. (iastate.h, ialloc.c, igcstr.c)
-
- Adds media matching and Policy consultation to the implementation of
- setpagedevice. (gs_setpd.ps)
-
- Adds a MaxGlobalVM system parameter. (zmisc2.c)
-
- Streams
- -------
-
- Fixes bugs:
- - The CCITTFaxEncode filter could access a byte beyond the end of
- the allocated area. (scfe.c)
- - The CCITTFaxDecode filter could get an ioerror if a buffer
- boundary fell in exactly the wrong place. (scfd.c)
-
- Library
- -------
-
- Fixes bugs:
- - The garbage collector didn't trace colored halftones properly.
- (gzht.h)
- - The garbage collector didn't relocate the bitmap pointers in
- halftone caches properly. (gzht.h, gxht.c)
-
- Adds the ability to transmit dictionaries through the param_list mechanism
- (specifically, as device parameters). This change is
- non-backward-compatible only for implementors of parameter lists, which only
- exist within the Ghostscript core. (gsparam.h, iparam.h, iparam.c)
-
- Removes the InitialMatrix device property. (gsdparam.c)
-
- Version 3.25(beta) (1/24/95)
- ==================
-
- Yet another bug-fix beta release. There are still at least half a dozen
- significant known bugs to be fixed before a public release.
-
- Documentation
- -------------
-
- Notes that on Unix systems, one should not edit 'makefile', but should edit
- the individual subfile and run tar_cat. THIS IS A NON-BACKWARD-COMPATIBLE
- CHANGE. (make.doc)
-
- Adds information on the Macintosh implementation. (readme)
-
- Procedures
- ----------
-
- Fixes bugs:
- - make clean failed on Unix systems where rm -f requires at least one
- file name. (gs.mak)
- - math_.h was omitted from many dependency lists. (gs.mak)
-
- Drivers
- -------
-
- Fixes bugs:
- - The X Windows and MS Windows draw-line routines couldn't possibly
- produce sufficiently correct output (since the interface only provides integer
- coordinates). (gdevx.c, gdevwddb.c)
-
- In response to patent-related actions by Unisys and CompuServe, removes the
- GIF driver. (*.mak)
-
- Changes dci_std_color (and std_device_std_color_* and prn_device_std_*) so
- that if the number of bits per pixel is 32, the device is defined as CMYK
- rather than RGB. (gxdevice.h)
-
- Removes the tseng8 device, which is no longer useful. (devs.mak, gdevsvga.c)
-
- Adds pseudo-alpha support to the SVGA drivers, via the TextAlphaBits and
- GraphicsAlphaBits device parameters. (gdevsvga.h, gdevsvga.c)
-
- Adds a user-contributed driver for the Epson Stylus Color printer. (devs.mak,
- gdevstc.c, devices.doc)
-
- Platforms
- ---------
-
- Fixes bugs:
- - The VMS build scripts had gotten out of sync (again). (vms*.mak)
-
- Interpreter
- -----------
-
- Fixes bugs:
- - The emulator name array was incorrectly declared const in one place.
- (gs.c)
- - A closed file could incorrectly appear to be 'eq' to another file
- (open or closed). (iutil.c)
- - If %stdin/%stdout/%stderr was ever closed, it couldn't be
- reopened. (gs_btokn.ps, gs_init.ps, files.h, zfile.c, zfileio.c, zfilter.c,
- zfproc.c, ziodev.c)
-
- Changes (almost) all the operator routines to 'static'. (z*.c)
-
- Library
- -------
-
- Fixes bugs:
- - The raster value for replicated tiles in the halftone cache was
- incorrect, causing unaligned memory accesses. (gxht.c)
- - stroke and strokepath could produce slightly inaccurate output
- (leading to slight visible anomalies) as a result of stroke adjustment.
- (gxstroke.c)
- - Attempting to draw an arc with zero radius could cause a numeric
- exception. (gspath1.c)
- - Setting the Orientation of a device to null resulted in actually
- setting it to a random value. (gsdparam.c)
- - charpath, stringwidth, and cshow attempted to remap the current
- color unnecessarily. (gschar.c)
-
- Adds the ability to trace calls on the sqrt function (and possibly other math
- functions in the future.) (math_.h, gsmisc.c)
-
- Adds additional interrupt checks in the banding code. (gxclist.c, gxclread.c)
-
- Version 3.24(beta) (1/17/95)
- ==================
-
- This was supposed to be a public release, but too many bugs showed up in 3.23,
- so this is another bug-fix beta release. This is the first release with a
- working PDF reader.
-
- Documentation
- -------------
-
- Notes that Solaris requires using installbsd instead of install. (make.doc)
-
- Procedures
- ----------
-
- Changes 'make mostlyclean' so that it doesn't delete the Ghostscript
- executable (but deletes everything else that 'make clean' does). (gs.mak)
-
- Changes the link list generator so it eliminates duplicate library requests.
- (genconf.c)
-
- Factors the interpreter further so as to include less unnecessary PostScript
- support in the PDF interpreter. (gs.mak, zpath.c, zpath1.c)
-
- Adds a printout of the available language interpreters to the -h message.
- (genconf.c, gs.c, iinit.c, gs.mak)
-
- Drivers
- -------
-
- Fixes bugs:
- - The alternate X drivers used a cast in an initializer, causing a
- compilation error on some platforms. (gdevxalt.c)
-
- Adds a driver for the LaserJet IIID, including duplex printing if specified by
- the Duplex page device parameter. (gdevdjet.c)
-
- Adds Orientation to the bit device. (gdevbit.c)
-
- Platforms
- ---------
-
- Fixes bugs:
- - There was an extraneous pfen-> in the NT file system module, causing
- a compilation error. (gp_ntfs.c)
- - The DLL code referred to an obsolete symbol a_foreign. (gsdll.c)
- - The VMS build scripts omitted the LaserJet 4 driver. (vms-*.mak)
- - The VMS build scripts had several other minor errors. (vms.mak)
-
- Fonts
- -----
-
- Fixes bugs:
- - Defining a font alias in global VM with a name that was a string in
- local VM caused an error. (gs_fonts.ps)
- - The font compiler referred to an obsolete symbol a_foreign.
- (font2c.ps)
-
- Interpreter
- -----------
-
- Fixes bugs:
- - There was an extraneous '#' before an extern declaration.
- (gsmain.c)
- - The interpreter could (incorrectly) attempt to expand the e-stack.
- (istack.h, interp.c, istack.c)
- - zfproc.c called memcpy but didn't include memory_.h. (zfproc.c)
- - A garbage collection occurring within a 'save' would often smash
- memory. (igc.c)
- - If the last character returned by the procedure of a procedure-based
- filter was \r, readline could get an endless loop. (zfileio.c)
- - Saving a change to a ref member of a structure confused the garbage
- collector. (isave.h, isave.c, zdict.c)
- - The -Zu debugging printout could cause an access error under rare
- circumstances. (isave.c)
- - Save objects could get allocated in global VM, causing dangling
- references. (zvmem.c)
- - The vmsave object created by the interpreter for a save didn't get
- freed properly if the memory manager created an invisible save level, which
- could cause the next garbage collection to crash. (zvmem.c)
- - 'run' always printed an error message, rather than letting the
- top-level control loop do it. (gs.c, gs_init.ps)
-
- Adds support for duplex devices. (gxdevice.h, gsdparam.c, gs_statd.ps,
- gs_setpd.ps)
-
- Adds the beginnings of support for CID-keyed fonts. (gs_cidfn.ps)
-
- Changes the format of the stack dump printed for errors, to make it easier to
- read. (gs_init.ps)
-
- Interpreter (PostScript)
- ------------------------
-
- Fixes bugs:
- - The .local/global allocation operators always allocated in system
- VM. (zsysvm.c)
- - setpage[params] caused an error. (gs_lev2.ps)
- - If an error occurred during a cshow or (x|y|xy)show, the interpreter
- freed the enumerator twice. (zchar.c, zchar2.c)
-
- Changes setpageparams so that orientation = 0 means portrait. This is not
- compatible with AGFA's convention for roll-feed devices, but it is compatible
- with the more common cut-sheet printers. (gs_statd.ps)
-
- Adds meaningful values for the Emulator resource. (gsmain.c, gs_res.ps)
-
- Makes -Z? validate the state of memory before and after save and restore.
- (ialloc.h, igc.h, ialloc.c, igc.c, ilocate.c, zvmem.c)
-
- Interpreter (PDF)
- -----------------
-
- Fixes bugs:
- - The Unix install script didn't install the PDF files if they were
- present. (unix-end.mak)
- - PDF to PostScript conversion didn't work at all. (It still doesn't
- work very well.) (pdf_2ps.ps, pdf_main.ps)
- - Images with an Indexed color space and no Decode entry caused an
- error. (pdf_draw.ps)
- - The 'Page <n>' messages were printed even if QUIET was set.
- (pdf_main.ps)
-
- Changes the interpreter so that when it encounters an unknown operator, it
- prints an error message and continues, rather than signalling an error.
- (pdf_base.ps)
-
- Makes F a synonym for f if there is nothing on the operand stack, to
- compensate for a bug in some Adobe software. (pdf_base.ps)
-
- Changes pdfgetpage so it uses 1-origin rather than 0-origin indexing. THIS IS
- A NON-BACKWARD-COMPATIBLE CHANGE. (pdf_main.ps)
-
- Streams
- -------
-
- Fixes bugs:
- - The Group 3 2-D and Group 4 encoders produced incorrect output if a
- scan line beginning with a black pixel was followed by a scan line beginning
- with a white pixel. (scfe.c)
- - A SubFileDecode filter with a count of 1 and a non-empty EOD string
- would smash memory. (sfilter1.c)
-
- Updates the DCT filters so they will work with the latest version (5a) of the
- IJG library. (*.mak, jpeg.mak, sjpegerr.c)
-
- Library
- -------
-
- Fixes bugs:
- - A call with integer parameters to a procedure with floating point
- arguments didn't work on non-ANSI compilers. (gsimage.c)
- - Arcs could get turned into polygons if the scaling values in the CTM
- were very large and the radius was (in user space coordinates) very small.
- (gspath.c)
- - The current point was defined when a BuildChar procedure was called.
- (This bug was documented as fixed in version 2.2!) (gschar.c)
-
- Adds support for Orientation and Duplex page device parameters, for those
- devices that support these. (gdevprn.h, gxdevice.h, gsdevice.c, gsdparam.c)
-
- Version 3.23(beta) (1/5/95)
- ==================
-
- This is almost entirely a bug fix release. It also includes a largely working
- PDF reader. This is intended as the beta test release for the next public
- release.
-
- Documentation
- -------------
-
- Fixes bugs:
- - COPYLEFT, COPYING, NEWS, PUBLIC, README, and the standard Fontmap
- were omitted from the 3.22 fileset.
-
- Documents the use of the -oldc switch to work around a compiler crash on
- the DECstation.
-
- Expands and clarifies the documentation for building the DesqView/X version
- with djgcc. (make.doc)
-
- Adds documentation on the "600x300" H-P inkjet printers, explaining why
- this alleged higher resolution is not available. (devices.doc)
-
- Adds to the PUBLIC license a warning that it is not a GNU License, and a
- requirement to include a copy of or a pointer to the License in any written
- material. (PUBLIC)
-
- Documents the fact that Ghostscript *does* attempt to look up files in the
- current directory first. (use.doc)
-
- Procedures
- ----------
-
- Fixes bugs:
- - In VMS.MAK, .JPEG should have been changed to .JPEG-5 in a few
- places. (vms.mak)
-
- Adds the pjxl300 driver to all configurations that include the other color
- DeskJet drivers. Replaces pjet and pjetxl with pj and pjxl. (*.mak)
-
- Makes 'run' recognize PDF files if the PDF reader is included.
- (pdf_main.ps)
-
- Utilities
- ---------
-
- Fixes bugs:
- - viewjpeg.ps needed the test for languagelevel = 2 at the
- beginning of the file. (viewjpeg.ps)
- - prfont.ps used 'min', which isn't a standard PostScript operator.
- (prfont.ps)
- - prfont.ps created Encoding vectors that weren't 256 elements
- long. (prfont.ps)
-
- Adds the gsdj500 script to the installation list. (unix-end.mak)
-
- Changes the Unix "line printer" shell scripts to add the date to the page
- header. (gsbj, gsdj, gsdj500, gslj)
-
- Changes ansi2knr so that it will work properly on systems where the ctype
- macros don't handle 8-bit characters correctly. (ansi2knr.c)
-
- Drivers
- -------
-
- Fixes bugs:
- - Some compilers don't allow casts in initialization expressions.
- (gdevx.c, gdevxalt.c)
- - The cdj drivers didn't initialize the color_info structure
- properly. (gdevcdj.c)
-
- Adds another alternate X Windows driver, x11mono, that is a black-and-white
- device. (devs.mak, gdevxalt.c)
-
- Adds a user-contributed driver for the Apple Imagewriter LQ. (devs.mak,
- gdevadmp.c)
-
- Platforms
- ---------
-
- Fixes bugs:
- - The VMS MODULES.LIS file had gotten out of sync with the makefile
- (again); GDEVABUF and GSBITOPS were missing. (modules.lis)
- - The VMS script file had gotten out of sync with the makefile
- (again). (vms.mak)
- - The MS Windows platform code didn't recognize Windows 95 (Windows
- 4.0) as equivalent to Windows NT. (gp_mswin.c)
- - File name enumeration didn't work on OS/2 or win32. (gp_ntfs.c,
- gp_os2.c)
- - -sOutputFile= didn't work under MS Windows. (gp_mswin.c)
-
- Changes the SCO Unix direct frame buffer driver so it generates in-line
- instructions to access the frame buffer, for a dramatic speed improvement.
- (gdevpcfb.h, gdevsco.c)
-
- Fonts
- -----
-
- Fixes bugs:
- - If a font couldn't be found in the Fontmap, a recursion loop
- sometimes occurred. (gs_fonts.ps)
- - Aliases for global fonts weren't automatically created as global,
- possibly leading to a recursion loop. (gs_dps1.ps, gs_fonts.ps)
- - If a font was loaded into global VM within an inner save, the restore
- deleted it from FontDirectory but not from SharedFontDirectory, causing a
- possible recursion loop. (gs_dps1.ps, gs_fonts.ps, idict.h, idict.c, zdict.c)
-
- Further improves the algorithm for substituting for unknown fonts.
- (gs_fonts.ps)
-
- Interpreter (PostScript)
- ------------------------
-
- Fixes bugs:
- - zcontrol.c had an assignment of const char * to const byte *,
- which some compilers don't like. (zcontrol.c)
- - Setting an Indexed color space based on a CIE space caused an
- attempt to free a random block of memory. (zcsindex.c)
- - Some compilers don't like mixing conditionals and casts in
- initialization expressions. (iref.h)
- - Some calculations of table sizes for string garbage collection
- didn't work if sizeof(long) != 4, leading to smashed strings. (iastate.h,
- ialloc.c, igcstr.c)
- - Strings longer than about 7000 bytes smashed their chunk header
- and confused the garbage collector. (ialloc.c)
- - Some compilers needed iccfont.c to include strimpl.h.
- (iccfont.c)
- - The obsolete file zcspace2.c was still included in the fileset.
- - If the command line included any @-files that required searching
- the library path, a limitcheck would occur. (zfile.c)
- - The insideness testing operators caused a memory access error,
- because the procedure vector hadn't been updated to provide a default
- get_alpha_bits procedure. (zupath.c)
- - gcheck didn't check for stack underflow. (zvmem2.c)
- - cleardictstack could fail to clear the dictionary stack if the
- stack had overflowed into additional blocks. (zdict.c)
- - If the '-' switch was selected, resources weren't released
- properly on exit. (gs.c)
- - Setting a Pattern color space based on a CIE space caused an
- invalid memory access. (zcsindex.c)
- - The garbage collector didn't treat refs properly on machines with
- short ints. (igcref.c)
- - Operators with more than 16 arguments could break the
- interpreter. (interp.h, iinit.c, interp.c)
- - save/restore didn't restore the setting of the current allocator
- VM (local/global). (isstate.h, isave.c)
- - stdpre.h declared exit as an extern, instead of letting gsmain.c
- declare it. (stdpre.h, gsmain.c)
- - gs.c used fputs to print help messages rather than fprintf.
- (gs.c)
- - Interrupts failed to re-execute the operation that was
- interrupted. (interp.c)
- - Low-resolution CMYK devices didn't use separate screens for each
- color plane as the default. (gs_init.ps)
- - filterdict wasn't getting undef'ed at the end of initialization.
- (gs_init.ps)
- - gstate operations were broken (bug introduced in 3.02).
- (zdevice2.c)
- - resourceforall didn't remove the resource dictionary from the
- dictionary stack when calling the client-supplied procedure. (gs_res.ps)
- - currentcolor with an Indexed color space returned a real rather
- than an integer. (zcolor2.c)
- - setshared / setglobal left the stack in an unobvious state if
- they were given a non-Boolean argument. (gs_dps1.ps)
- - sethalftone followed by currenthalftone returned an invalid value.
- (zht2.c)
- - Empty strings produced spurious garbage collector error messages.
- (gsstruct.h, scommon.h, igc.c, igcstr.c, iname.c)
- - The garbage collector didn't trace Separation color spaces properly.
- (gscsepr.c)
-
- Changes defineresource so that it does not, by default, make instances
- read-only. (gs_res.ps)
-
- Adds .{local,global}{array,dict,packedarray,string} operators for creating
- objects in a specific VM space. (zsysvm.c, gs_dps1.ps)
-
- Adds definitions of setpage and setpageparams to statusdict. (gs_setpd.ps,
- gs_statd.ps)
-
- Alleviates some performance problems in the garbage collector. (igc.c)
-
- Interpreter (PDF)
- -----------------
-
- Fixes bugs:
- - PDF files that used filters with parameters caused a typecheck
- error because the arguments to 'filter' were reversed. (pdf_base.ps)
- - The (undocumented) PDF 1.1 ability to specify link and annotation
- destinations indirectly was not supported. (pdf_main.ps)
- - The (undocumented) PDF ability to specify a null page in a link
- destination was not supported. (pdf_main.ps)
- - The PDF encodings weren't loaded properly in a system with both
- PS Level 2 and PDF features. (gs_res.ps, gs_init.ps)
- - If the next line after a stream keyword was blank, the line
- wasn't skipped, which matters for binary data. (pdf_base.ps)
- - A Q operator with no matching q operator caused an error.
- (pdf_draw.ps)
- - The text position wasn't preserved across a fill or stroke
- operator. (gs_pdf.ps, pdf_draw.ps)
- - Embedded Type 3 fonts didn't work. (pdf_base.ps, pdf_draw.ps,
- pdf_main.ps)
- - Masked images with no Decode value had their polarity inverted.
- (pdf_draw.ps)
- - Embedded Type 1 fonts referenced from within a stream didn't
- work. (pdf_font.ps)
-
- Changes the PDF code so that it automatically recognizes PDF files as such.
- (pdf_main.ps)
-
- Splits out the PixelDifference filters as a separate "feature". (gs.mak)
-
- Streams
- -------
-
- Fixes bugs:
- - Closing the primary input stream caused an invalid memory access.
- (stream.c)
- - Increasing the size of a buffer within a save resulted in a
- dangling reference after the restore. (files.h, sfilter.h, zfile.c,
- zfilter.c)
- - The garbage collector didn't properly trace streams that referenced
- strings directly. (stream.h, stream.c, ziodev.c)
-
- Library
- -------
-
- Fixes bugs:
- - An extraneous \ upset some compilers. (gdevabuf.c)
- - Uncolored Patterns that completely filled their bounding box
- caused an invalid memory access. (gspcolor.c)
- - If a color image required clipping, black or white pixels might
- be rendered with incorrect (random) colors. (gxcpath.c)
- - Reference counts for color spaces were sometimes set too high, so
- they would only be freed by restore or garbage collection. (gscolor.c)
- - The character cache could get confused if the Encoding for the
- character wasn't a name. (gschar.c)
- - Character outlines were always rendered with flatness = 0,
- causing very bad performance for large characters. (gzstate.h, gschar.c,
- gsimage.c, gxfill.c, gxstroke.c)
- - If a device (presumably uninitialized) had a
- color_info.num_components of zero, an invalid memory access could occur.
- (gsdparam.c)
- - Intersecting clipping paths that are not both rectangular didn't
- properly set the outer box of new clipping path, leading to unnecessary
- computation. (gxcpath.h, gxacpath.c, gxcpath.c)
- - A call passed false instead of NULL. (gschar.c)
- - On machines where sizeof returns a long, genarch.c failed.
- (genarch.c)
- - xfonts were consulted, incorrectly, even for stroked characters.
- (gxccman.c)
- - gstate/currentgstate/setgstate didn't work properly. (gsline.c,
- gsstate.c)
- - On CMYK devices needing halftoning, colors with C = M = Y were
- always converted to gray shades. (gxcmap.c)
- - Isolated horizontal lines, or the horizontal edges of rectangles,
- could get drawn with one or both end pixels missing. (gxfill.c)
-
- Changes the character cache back so it oversamples characters at small
- sizes. (gschar.c)
-
- Changes all occurrences of (void)x to discard(x), and defines discard in
- stdpre.h as a cast to void, to make it possible to pacify compilers that
- don't accept this construct for some kinds of x. (gpcheck.h, stdpre.h,
- store.h, gdevmswn.c, gp_mswin.c, gscoord.c, gxclread.c, igc.c, sfile.c,
- sfileno.c, zcie.c, zht2.c, ziodev.c, zmisc1.c)
-
- Increases the size of the halftone cache on large-memory machines from 35K
- to 100K. This substantially improves halftoning performance at higher
- resolutions. (gxht.c)
-
- Version 3.22(beta) (11/30/94)
- ==================
-
- This is primarily a bug fix release. It also includes limited anti-aliased
- graphics capability. This release was not distributed to the public.
-
- Procedures
- ----------
-
- Fixes bugs:
- - The definition of ghost_h was misplaced, so changes in it or its
- antecedents didn't force recompilation of its dependents. (gs.mak)
-
- Actually implements the -Z+ switch, for forcing small stack blocks.
- (interp.c)
-
- Makes the -dSAFER switch disable the %pipe syntax for file names, even for
- reading. (gs_init.ps)
-
- Drivers
- -------
-
- Fixes bugs:
- - The dfax drivers incorrectly set EncodedByteAlign to false.
- (gdevdfax.c)
- - softwareValue and dateTimeValue were declared as byte rather than
- char. (gdevtfax.c)
-
- Platforms
- ---------
-
- Fixes bugs:
- - The VMS DEC C compilers declare delete in unixio.h, and doesn't
- declare unlink anywhere. (stdio_.h)
- - The VMS compilers declare malloc and free in stdlib.h, which
- wasn't being included in malloc_.h. (malloc_.h)
- - The SCO Unix C compiler needs both <sys/time.h> and <time.h>.
- (time_.h)
- - The VMS compilers declare abs in stdlib.h, which wasn't being
- included anywhere. (gshtscr.c)
- - The definition for A4 paper in VMS-AXP.MAK was incorrect.
- (vms-axp.mak)
-
- Renames VMS-AXP.MAK as VMS-DECC.MAK, with some changes that make it
- appropriate for DEC C on both VAX and AXP platforms. (vms-axp.mak =>
- vms.decc.mak)
-
- Fonts
- -----
-
- Fixes bugs:
- - gs_kanji.ps got an invalidaccess error. (gs_kanji.ps)
-
- Interpreter
- -----------
-
- Fixes bugs:
- - An off-by-1 test in the roll operator caused it to smash the
- stack if the operand stack had overflowed into additional blocks.
- (zstack.c)
- - The default CIE color rendering dictionary didn't assume a
- reasonable intermediate (XYZ) space. (gs_lev2.ps)
- - CIE color mapping tables weren't traced properly by the garbage
- collector. (gscie.h, gscie.c, zcie.c)
- - If the very last character of a file was a ^M, the scanner
- (incorrectly) signaled a syntaxerror. (iscan.c)
- - If an operator could return both a typecheck and a
- stackunderflow, it always returned a stackunderflow, which doesn't match
- the behavior of Adobe interpreters. (opcheck.h, idparam.c, interp.c,
- iutil.c, z*.c)
- - astore, dictstack, and execstack could return a spurious
- invalidaccess error (or fail to detect an invalid access) if the operand
- stack had overflowed into additional blocks. (istack.c)
- - The garbage collector didn't relocate pointers to names! (Bug
- introduced in 3.20.) (iname.h)
- - If the dictionary stack overflowed into additional blocks, the
- cached value pointer for a name could get set incorrectly, and also not get
- relocated by the garbage collector. (idict.c)
- - If the dictionary stack overflowed into additional blocks, the
- post-GC fixup of cached value pointers in names could cause an addressing
- error. (igc.c)
- - With the -Z? switch set, the garbage collector could incorrectly
- report that objects or strings weren't in any chunk. (igc.c)
- - << /a 1 /a 2 >> /a get gave the value 2 rather than 1.
- (gs_init.ps)
- - Numbers in binary object sequences and encoded number arrays
- didn't work properly on machines where sizeof(short) != 2 or sizeof(long)
- != 4. (ibnum.c)
- - The put operator for dictionaries allowed null as a key.
- (idict.h, idict.c)
- - >> didn't give an error if there were an odd number of values on
- the stack above the next mark. (gs_init.ps)
- - Operations that explicitly freed ref objects (setting a CIE
- colorspace, resizing a dictionary, popping a block off a stack) could
- corrupt storage. (ialloc.c)
- - The -Z@ switch, which fills freed blocks with a recognizable bit
- pattern, could incorrectly overwrite freed blocks in previous save levels,
- causing invalid memory accesses. (ialloc.c)
- - Since streams freed by a restore weren't marked as free, they
- could confuse the garbage collector and lead to invalid memory accesses.
- (zfile.c)
- - If one of the built-in dictionaries overflowed during
- initialization, no error was reported -- entries were simply discarded.
- (iinit.c)
- - If the level2.dev feature was combined with certain other
- features, the current languagelevel was 2 when some gs_*.ps files were
- loaded, causing them to load incorrectly. (gs_btokn.ps, gs_setpd.ps)
- - If readline read a line that ended with only a CR (no LF)
- followed by an end-of-file, it incorrectly closed the stream. (zfileio.c)
-
- Adds a .cond operator, similar to the Lisp multi-arm conditional.
- (zcontrol.c)
-
- Adds a .makeglobaloperator operator, allowing the definition of operator
- procedures in local VM that turn into global operators, provided the save
- level is zero. (iref.h, opdef.h, iinit.c, interp.c, zmisc.c)
-
- Note: the fix for returning typecheck vs. stackunderflow requires that all
- operators (or other code) that uses return_error(e_typecheck) to indicate
- an incorrect object type on the operand stack must change this to
- return_op_typecheck(op), where op points to the operand. THIS IS A
- NON-BACKWARD-COMPATIBLE CHANGE.
-
- Implements string array and name array parameters for parameter lists.
- (gsparam.h, iparam.c)
-
- Brings filterdict inside the INITIAL_DICTIONARIES conditional. (iinit.c)
-
- Adds a .currentscreenlevels operator that returns the number of
- distinguishable halftone levels. (zht.c)
-
- Streams
- -------
-
- Fixes bugs:
- - The 2-D case of CCITTFaxDecode could get confused by an input
- data buffer boundary that fell immediately after a horizontal code.
- (scfd.c)
- - The LZW decoder didn't detect invalid data unless DEBUG was
- selected at build time. (slzwd.c)
-
- Library
- -------
-
- Fixes bugs:
- - The clipping region accumulator could refer to a clipping
- rectangle even after it had been freed. (No effect on execution unless the
- -Z@ switch was selected.) (gxacpath.c)
- - setbbox expanded the bounding box, but didn't place a limit on
- further path elements, if the current path wasn't empty. (gsdps1.c)
- - setbbox didn't make sufficient allowance for rounding.
- (gsdps1.c)
-
- Implements the ProcessColorModel parameter (read-only) for all devices.
- (gsdparam.c)
-
- Adds a gs_currentscreenlevels procedure that returns the number of
- distinguishable halftone levels. (gsht.c)
-
- Version 3.21(beta) (11/17/94)
- ==================
-
- This is primarily a bug fix release. It also includes a substantial
- improvement in the Type 1 font hinting algorithms. This release was not
- distributed to the public.
-
- Documentation
- -------------
-
- Fixes bugs:
- - The `man' page referred to gnu.ghostscript.bug rather than
- comp.lang.postscript. (gs.1)
-
- Documents the special entries in operator definition tables that allow
- switching dictionaries. (opdef.h)
-
- Procedures
- ----------
-
- Moves the definition of JSRCDIR to the individual platform makefiles, to
- make it easier to change on platforms that don't have file links. (*.mak)
-
- Utilities
- ---------
-
- Fixes bugs:
- - ansi2knr didn't recognize that a line ending with } couldn't be a
- function definition. (ansi2knr.c)
- - ps2epsi always returned an empty bounding box. (ps2epsi,
- ps2epsi.bat)
-
- Drivers
- -------
-
- Fixes bugs:
- - The bitrgb device had an invalid depth of 3. (gdevbit.c)
-
- Replaces the color mapping code in the X driver with a much faster
- algorithm, courtesy of Tim Theisen. (gdevx.h, gdevx.c, gdevxini.c)
-
- Platforms
- ---------
-
- Fixes bugs:
- - Two variable names were misspelled. (gdevpm.c, gp_mswin.c)
- - It wasn't possible to compile a non-DLL configuration under OS/2.
- (os2.mak)
- - Compilation under Microsoft C/C++ 8.0 gave errors. (gp_mswin.h,
- gp_mswin.c, gshtscr.c)
-
- Adds some more devices to the OS/2 makefile. (os2.mak)
-
- Fonts
- -----
-
- Fixes bugs:
- - wrfont.ps, and hence bdftops, didn't write out the FontType or
- PaintType. (Bug introduced since 2.6.1) (wrfont.ps)
- - wrfont.ps omitted a 'begin' and 'end', causing -! or -| to be
- undefined when the font was loaded. (Bug introduced since 2.6.1)
- (wrfont.ps)
-
- Interpreter
- -----------
-
- Fixes bugs:
- - make_tasv_old called make_tasv_new with extra arguments.
- (store.h)
- - currentcacheparams only returned 2 values instead of 3.
- (zfont.c)
- - ustroke popped one element too many off the stack if a matrix was
- supplied. (zupath.c)
- - inu[eo]fill popped one element too many off the stack.
- (zupath.c)
- - The color rendering dictionary was initialized to null rather
- than a valid dictionary. (gs_lev2.ps)
- - An invalid IODevice resource named "9" got created. (gs_res.ps)
- - bytesavailable often caused an error rather than returning -1.
- (zfileio.c, stream.c)
- - The insideness testing operators always returned true if the
- aperture was defined by a user path rather than a point. (zupath.c)
- - If INITIAL_DICTIONARIES was defined in the makefile, the
- definition of the initial_dictionaries array was missing a comma.
- (iinit.c)
- - Even if userdict appeared in INITIAL_DICTIONARIES, gs_init.ps set
- its maxlength to 200. (gs_init.ps)
- - Setting a CIE color space left a garbage value on the stack.
- (zcie.c)
- - If a file or filter was opened and then closed, opening a file
- subsequently within a 'save' could lead to a memory access error in the
- garbage collector. (zfile.c)
- - Setting an Indexed or Separation color space could cause a crash
- either in the garbage collector or when printing out the e-stack.
- (icsmap.h, zcsindex.c, zcssepr.c)
- - Invoking a filter with an invalid data source or sink could cause
- a memory access error (bug introduced in 3.20). (zfilter.c)
- - Invoking stringwidth on a font whose BuildChar procedure did a
- save could cause a memory manager error or infinite loop, because
- stringwidth attempted to use an inapplicable shortcut. (gschar.c)
- - The bounding box for rendering stroked Type 1 characters didn't
- take square caps and miter joins into account. (gs_type1.ps)
- - Invoking filter with DCTDecode or DCTEncode could cause an
- addressing error if no dictionary argument was supplied. (zfdctd.c,
- zfdcte.c)
- - The Generic resource, the Font resource, and half a dozen
- resources with no predefined instances all shared the same Instances
- dictionary. (gs_res.ps)
- - The temporary null device allocated for stringwidth was never
- freed. (gschar.h, gschar.c, zchar.c)
- - Internal operators, and structures that might be freed on stack
- unwinding, could "escape" from the e-stack. (zcontrol.c, ztype.c)
- - makefont and scalefont didn't properly handle a font whose
- Encoding had been changed. (bfont.h, zfont.c, zfont2.c)
- - Type 1 fonts with PaintType = 2 incorrectly checked for an xfont.
- (gxfont.h, gschar.c, gsfont.c, zchar1.c, zfont1.c, zfont2.c)
- - Specifying a string argument with -d...=(...) or -d...=<...>
- would cause an invalidaccess error. (gs.c)
- - The environment for encapsulated jobs didn't rebind quit to stop
- in userdict. (gs_lev2.ps)
- - restore didn't deal properly with open files on the e-stack.
- (zvmem.c)
- - Even with the '-' switch, Ghostscript would try to read ahead in
- the input stream rather than processing input character-by-character.
- (ziodev.c)
- - If an error occurred with a unreadable dictionary on any stack,
- the standard error printer would get into an error loop and exit the
- interpreter. (gs_init.ps)
- - The for_roots macro in igc.c used ap rather than mem as its
- second formal parameter. (This typo had no effect on the executable
- program.) (igc.c)
- - If saving the stacks for an error caused a GC request, a value
- could get stored into an improper variable on the C stack, causing havoc.
- (interp.c)
- - setdash checked to make sure that the distance array had read
- access; Adobe interpreters don't check this. (zgstate.c)
- - The roots for gs_run_string and gs_interpret weren't registered
- properly, which could cause a dangling reference in the case of a restore
- whose save had been done earlier. (gsmain.c, interp.c)
-
- Adds an OpenOutputFile Boolean device parameter for printer devices; if
- true, the device opens the OutputFile at the time the device is opened,
- instead of waiting for the first showpage. This helps with synchronization
- when the OutputFile is a pipe. (gdevprn.h, gdevprn.c)
-
- Changes the BEGIN/END_OP_DEFS macros to require an explicit { and } at each
- use. (gsmain.c, interp.c, z*.c)
-
- Arranges things so that the operators that the interpreter handles
- specially are assigned the first N operator indices [internal change only].
- (interp.h, iinit.c, interp.c)
-
- Changes the operators max and min to .max and .min, to avoid conflicts with
- PostScript programs that use these names for variables and also use 'bind'.
- THIS IS A NON-BACKWARD-COMPATIBLE CHANGE from programs that depend on
- 'bind' binding in these operators; however, we have also defined procedures
- max and min that just call the operators, which should take care of any
- ordinary code. (*.ps, zrelbit.c)
-
- Streams
- -------
-
- Fixes bugs:
- - The pfb_state pointer in the eexecDecode filter state wasn't
- marked as traceable for the garbage collector. (sfilter.h)
- - The eexec decoding filter could access invalid memory or return
- garbage under some conditions. (Bug introduced in 3.12.) (zmisc1.c)
- - The eexec decoding filter would incorrectly ask for more input if
- the output buffer was full. (seexec.c)
-
- Library
- -------
-
- Fixes bugs:
- - Some compilers reserve the word 'try'. (gshtscr.c)
- - Some compilers don't like line continuations (\) within a
- preprocessor macro formal parameter list. (gdevprn.h, gxdevice.h)
- - Memory devices created with an inverted palette (0=white,
- 1=black) interchanged white and black in fill operations. (gdevmem1.c)
- - The 'bits' variable in mem_mono_copy_mono was unused on
- little-endian machines. (gdevmem1.c)
- - Some garbage collector procedures were declared 'private'
- inconsistently. (gscie.c)
- - The new anti-aliased text capability accidentally caused all
- characters to be oversampled. (gschar.c)
- - Type 1 fonts with PaintType = 2 and StrokeWidth = 0 came out with
- many pixels missing because of oversampling. (gschar.c)
- - Type 1 font stem hints were not being processed correctly.
- (gstype1.h, gxtype1.h, gstype1.c, gxhint2.c, gxhint3.c, gxpath.c)
- - The tracing message for 9/7 composite fonts incorrectly
- identified them as 1/7 fonts. (gschar0.c)
- - If a 1/7 or 9/7 composite font was a child of a non-modal font,
- the font number of the child font was computed incorrectly. (gschar0.c)
-
- Splits up the various memory devices into one file per depth [internal
- change only]. (gdevm*.c)
-
- Version 3.20(beta) (10/31/94)
- ==================
-
- This version contains some support for a PDF interpreter; however, the PDF
- code itself is not ready for release yet. It also includes anti-aliased text
- capability. This release was not distributed to the public.
-
- Documentation
- -------------
-
- Notes that the FAQ has moved to smallo.ruhr.de:pub/ghost/gs.faq. (readme)
-
- Documents various implementation limits. (language.doc)
-
- Procedures
- ----------
-
- Fixes bugs:
- - bcp.dev wasn't included in the list of dependencies for
- level1.dev. (gs.mak)
-
- Changes the printout of version numbers so that it is always A.BC,
- rather than A.B if C is zero. (gs.c, gs_init.ps)
-
- Utilities
- ---------
-
- Fixes bugs:
- - font2c didn't correctly handle Metrics or Metrics2 dictionaries
- whose entries were arrays rather than scalars. (font2c.ps, ccfont.h,
- iccfont.c)
- - font2c didn't handle CDevProc. (font2c.ps, ccfont.h, iccfont.c)
- - genconf could get a stack overflow on small machines.
- (genconf.c)
-
- Changes mergeini.ps so it can take arguments on the command line specifying
- the input and output files. (mergeini.ps)
-
- Adds a gsdj500 shell script to parallel gsdj500.bat. (gsdj500)
-
- Drivers
- -------
-
- Fixes bugs:
- - The X driver didn't mask dynamically assigned colors properly, so
- it could request the same color over and over again. (gdevx.c)
-
- Adds two alternate X Windows drivers, for helping debug drivers with other
- color models:
- - x11alpha, an RGB device with 4-bit alpha capability (for
- copy_alpha only);
- - x11cmyk, a 1-bit-per-component CMYK device.
- (devs.mak, gdevxalt.c)
-
- Changes the left margin of the lj4dith driver to 0.26". (gdevcdj.c)
-
- Platforms
- ---------
-
- Fixes bugs:
- - If <sys/time.h> didn't exist, time_.h didn't always include
- <time.h>. (time_.h)
- - The OS/2 platform wouldn't compile. (gdevpm.c)
- - The auxiliary VMS command files sometimes got blank lines
- inserted when going through EOL conversion. (vms.mak; delete gs_.com)
- - The VMS makefiles didn't include the Level 1 operators in
- level1.dev. (vms.mak)
- - The VMS gcc makefile didn't handle undefined DEVICE_DEVSn
- variables properly. (vms*.mak)
- - The VMS makefiles didn't recognize DEVICE_DEVS{1,2,5,7}.
- (vms.mak)
-
- At the request of a Unix expert, changes all the Unix shell scripts to use
- exec gs ... "$@" rather than gs ... $*. (gsnd, gsbj, gsdj, gslj, gslp)
-
- Modifies the JPEG library so that it uses 4K less of the automatic data
- segment in 16-bit environments. (bcwin.mak, jpeg.mak, sjpeg.c, sjpegerr.c)
-
- Adds the bmp drivers back into the 16-bit MS Windows executable, since they
- will fit now. (bcwin.mak)
-
- Fonts
- -----
-
- Makes the font substitution algorithm recognize the word Roman as calling
- for a serif font. (gs_fonts.ps)
-
- Interpreters
- ------------
-
- Fixes bugs:
- - The fix in 3.13 for the inexact function values at 0 didn't work.
- (zcontrol.c)
- - Level 1 configurations referenced an undefined procedure
- gs_currenthalftone. (gsht.c, gsht1.c)
- - Specifying any device properties (including -r and -g) on the
- command line caused an error. (gs_init.ps)
- - The forward declaration of cfont_name_array_create was
- incorrect. (iccfont.c)
- - save and restore could get called before the graphics state stack
- had been initialized properly. (gs_mex_e.ps)
- - Some encodings weren't loaded properly. (gs.mak, gs_mex_e.ps,
- gs_mro_e.ps, gs_pdf_e.ps, gs_wan_e.ps)
- - Zero-height images were allowed, but zero-width images
- weren't. (zpaint.c)
- - Neither zero-width nor zero-height images popped their
- arguments from the operand stack. (zpaint.c)
- - lib_file_fopen overwrote its file name argument, causing havoc
- with @-files. (gxiodev.h, gdevpipe.c, gsiodev.c, zfile.c)
- - The garbage collector got confused if there were any arrays or
- dictionaries with 8K or more elements. (igcref.c)
- - >> could leave the stacks in a questionable state if it failed.
- (gs_init.ps)
- - The Category resource category didn't implement undefineresource.
- (gs_res.ps)
- - When the token operator read the last token from a string, it
- left an unchanged string on the stack instead of an empty string.
- (stream.c)
- - noaccess didn't give an invalidaccess error when applied to the
- permanent dictionaries. (dstack.h, idict.c, ztype.c)
- - Overflowing the exec stack wasn't handled properly. (istack.h,
- istack.c)
- - The garbage collector cleared the cached value pointers in names,
- causing interpretation to slow down substantially. (idict.c, igc.c,
- iname.c)
- - 0 dict created a dictionary with a maxlength of 1. (idict.c)
-
- Changes the default size of the execution stack from 150 to 250, to match
- the Adobe "typical" value. (interp.c)
-
- Moves the operator definitions out of the automatic data segment.
- (opdef.h, iinit.c, z*.c)
-
- Adds operators that allow creation of objects in system space:
- .systemvmstring, .systemvmarray, .systemvmpackedarray, .systemvmdict,
- .systemvmcheck. (zsysvm.c)
-
- Renames gcdefs.h as gscdefs.h.
-
- Allocates names in system space rather than global space. (gsmain.c)
-
- Changes the memory manager so that it allows programs to create objects in
- system space. (iref.h, iutil.h, ivmspace.h, ...)
-
- Changes the implementation of filters so they appear in their own
- dictionary named filterdict. (gs_init.ps, z*.c)
-
- Changes the implementation of color spaces so each one has its own
- setcolorspace procedure, defined in a new dictionary named
- colorspacedict. (gs_lev2.ps, z*.c)
-
- Adds a new debugging switch, $, that always initializes all fields in a
- ref, in order to keep Purify happy. (store.h)
-
- Library
- -------
-
- Fixes bugs:
- - The page size for image devices was always set to (0, 0).
- (gsdevice.c)
- - The PageSize computation in gx_default_put_params could overflow
- on 16-bit machines. (gsdparam.c)
- - An omitted 'static' on an initialized array caused a compiler
- error. (gxccman.c)
- - If interpolated image rendering was requested but not
- actually carried out, gs_image_cleanup could attempt to free a random
- pointer. (gsimage.c)
- - Some compilers only retain 23 characters of procedure names, but
- some procedure names weren't unique in the first 23 characters. (gscie.c,
- gscolor.c, gscolor1.c, gxcmap.c)
- - The garbage collector didn't trace device colors properly.
- (gxdcolor.h, gzht.h, gsimage1.c, gspcolor.c, gxcht.c, gxcmap.c, gxdraw.c,
- gxht.c)
- - For CMYK devices, the transfer functions were being applied to
- the CMYK values rather than the complemented RGBW values. (gxcmap.c)
- - Memory devices used their own color mapping procedures rather
- than those of the target; this could cause incorrect colors for patterns on
- devices with more than 1 bit per pixel. (gxdevmem.h, gdevmem1.c, gdevpm.c,
- gdevprn.c, gdevwdib.c, gschar.c, gsdevice.c, gxccache.c, gxccman.c,
- gxclip2.c, gxclread.c, gxpcmap.c)
- - The garbage collector didn't trace image enumerators properly in
- the image_render_simple case. (gsimage.c)
- - stroke produced different-looking output for thin (zero-width)
- lines depending on whether or not clipping was invoked. (gxstroke.c)
- - If a clipping list changed from multiple rectangles to a single
- rectangle, it could fail to clip properly thereafter. (gxacpath.c)
-
- Adds two new device procedures: alpha_bits and copy_alpha. This change is
- backward-compatible for all existing devices. (gdevmem.h, gxdevice.h,
- gsdevice.c, gxclip2.c, gxclist.c, gxcpath.c)
-
- Changes the implementation of color halftones so that, when appropriate, it
- generates a single cell and uses the device tile_rectangle procedure.
- (gzht.h, gsht.c, gxcht.c, gxclist.c, gxclread.c)
-
- Adds partial support for the Orientation page device parameter.
- (gsdevice.c)
-
- Adds support for anti-aliased characters using 2 or 4 bits of alpha.
- (gxfcache.h, gschar.c, gxccache.c)
-
- Version 3.13(private) (10/3/94)
- =====================
-
- This release was created for a customer; it was not distributed to the
- public.
-
- Documentation
- -------------
-
- Notes in make.doc that the file names in the IJG archive distributed with
- Ghostscript do not include the gsA.BC/ prefix. (make.doc)
-
- Adds a cross-reference to make.doc to the Watcom makefiles. (watc.mak,
- watcwin.mak, wccommon.mak)
-
- Procedures
- ----------
-
- Fixes bugs:
- - The makefile rule for gconfig.h et al had a couple of blank lines
- in the middle of it. (gs.mak)
-
- Utilities
- ---------
-
- Fixes bugs:
- - wrfont.ps didn't add a lenIV entry to the Private dictionary if
- it was needed. (wrfont.ps)
-
- Adds a packfile.ps utility that allows compressing multiple files into a
- single file for environments with very little permanent storage.
- (gs_pfile.ps, packfile.ps, wrfont.ps)
-
- Drivers
- -------
-
- Fixes bugs:
- - The {tiff,fax}{g32d,g4} devices could produce incorrect output.
- See under Streams below.
- - The dfax drivers referred to the obsolete structure member
- EncodedEOLAlign. (gdevdfax.c)
-
- Changes the default bit order for TIFF/F output to little-endian, which is
- apparently what the majority of TIFF decoders like best. The bit order for
- the fax drivers is still big-endian. (gdevdfax.c, gdevtfax.c)
-
- Platforms
- ---------
-
- Fixes bugs:
- - The VMS build script used -a rather than -w for creating
- gconfig_.h. (vms.mak)
- - The VMS build script didn't create gconfigv.h. (vms.mak)
- - The VMS Fontmap had incorrect entries for the Bitstream Charter
- fonts. (fontmap.vms)
- - The VMS MODULES.LIS file assumed the JPEG library files were in
- directory JPEG rather than JPEG-5. (modules.lis)
-
- Fonts
- -----
-
- Fixes bugs:
- - Using DISKFONTS resulted in an invalidaccess error.
- (gs_fonts.ps)
-
- Interpreter
- -----------
-
- Fixes bugs:
- - The standard transfer function considered gray values above
- roughly 0.994 equivalent to white; 0.999 is a better value. (gs_init.ps)
- - The transfer, black generation, and undercolor removal functions
- gave slightly inexact results for an input value of 0. (zcolor.c,
- zcontrol.c)
- - setpagedevice gave an /undefined error if it did not recognize a
- key, rather than ignoring the key. (zdevice.c, gs_init.ps, gs_lev2.ps,
- gs_setpd.ps)
-
- Changes .putdeviceparams to take an additional argument, a Boolean that
- says whether or not unrecognized keys should be reported as /undefined
- errors. THIS IS A NON-BACKWARD-COMPATIBLE CHANGE; however, no user-written
- code should be calling .putdeviceparams. (zdevice.c)
-
- Streams
- -------
-
- Fixes bugs:
- - The Group 3 2-D and Group 4 fax encoders could emit incorrect
- output. (scfe.c)
- - The algorithm for constructing optimal Huffman codes could
- produce invalid codes in some rare cases. (shcgen.c)
-
- Library
- -------
-
- Fixes bugs:
- - Rectangles closed with lineto rather than closepath weren't
- recognized as rectangles. (This only affected performance, not
- functionality.) (gxpath2.c)
- - The xfont lookup_font procedure could get called with a matrix
- whose translation components had never been initialized. (gxccman.c)
- - Some compilers don't allow \ in the formal argument list of a
- preprocessor macro. (gdevprn.h, gxdevice.h)
-
- Version 3.12 (9/29/94)
- ============
-
- This is another bug fix release, the first Level 2 release that we believe
- is reasonably reliable.
-
- Documentation
- -------------
-
- Adds some text warning about making copies of the makefile. (make.doc)
-
- Procedures
- ----------
-
- Fixes bugs:
- - There were a number of unnecessary dependencies on $(MAKEFILE) in
- gs.mak, left over from before the existence of gconfigv.h. (gs.mak)
- - JPEGSRC was defined in gs.mak rather than in jpeg.mak. (gs.mak,
- jpeg.mak)
-
- Changes the version numbering scheme back to A.BC, since people seem to be
- adapting to the change, and this allows using the version number directly
- as a MS-DOS directory name. (gconfig.c, gdevtfax.c, gs.c, gs_init.ps)
-
- Updates the JPEG library to version 5 (official release) of the IJG code.
- (jpeg/*, jpeg.mak)
-
- Drivers
- -------
-
- Fixes bugs:
- - The TIFF/F driver put out invalid PageNumber and Software
- entries. (gdevtifs.h, gdevtfax.c)
- - The TIFF/F and fax Group 3 2-D drivers used K=3 and K=5 instead
- of K=2 and K=4. (gdevtfax.c)
- - The TIFF/F and fax Group 3 2-D drivers emitted improperly aligned
- output. (See under Streams below.)
- - The MS Windows driver didn't resize the window properly in
- response to changing the device parameters. (gdevmswn.c)
-
- Because of complementary bugs in various C compilers, changes all the
- non-printer devices to use a different set of macros. (gdevmem.h,
- gdevpcfb.h, gdevprn.h, gdevsvga.h, gxdevice.h, gdev{3b1, bgi, herc, l256,
- pe, pm, sun, vglb, wddb, wdib, wprn, x}.c, gsdevice.c, gxacpath.c,
- gxclip2.c, gxcpath.c, gxpcmap.c, zupath.c)
-
- Changes the X11 driver to ignore the "margins" specified by Ghostview.
- This is apparently necessary for Ghostview to handle landscape display
- properly. (gdevxini.c)
-
- Adds a WindowID parameter to the X11 device, to allow setting the window
- for the output. (gdevx.h, gdevx.c, gdevxini.c)
-
- Platforms
- ---------
-
- Fixes bugs:
- - The definition of BEGINFILES in os2.mak occurred too late in the
- file to have the desired effect. (os2.mak)
-
- Interpreter
- -----------
-
- Fixes bugs:
- - Updating the list of allocated file objects at a restore didn't
- clear the prev pointer of the new head, which could cause the garbage
- collector to encounter an invalid pointer. (Bug introduced by .forgetsave
- in 3.0.3.) (zfile.c)
-
- Streams
- -------
-
- Fixes bugs:
- - The CCITTFaxEncode filter with K > 0 and EncodedByteAlign = true
- incorrectly aligned the 1-D/2-D bit as the last bit of a byte, rather than
- the first bit. (scfx.h, scfe.c)
- - eexec could loop indefinitely under certain conditions.
- (seexec.c)
- - eexec's algorithm for recognizing text vs. binary encoding didn't
- work properly in some cases that don't conform to the Adobe Type 1 Font
- Format documentation. (seexec.c)
- - Closing a stream didn't clear out the strm and state pointers,
- which could cause invalid accesses by the garbage collector. (stream.c)
-
- Library
- -------
-
- Fixes bugs:
- - fill_loop could loop indefinitely under certain conditions.
- (Introduced by a bug fix in 3.1.) (gxfill.c)
- - fill/eofill sometimes failed to paint parts of a region.
- (Introduced by a bug fix in 3.1.1.) (gxfill.c)
- - Non-convex clipping paths sometimes omitted thin horizontal
- slivers of the region. (Probably introduced by the "thin graphics" fix in
- 3.1.) (gxacpath.c)
-
- Version 3.1.1 (9/25/94)
- =============
-
- This is primarily a bug fix release. It was originally intended for some
- commercial licensees, but beta testers found too many problems with it.
-
- Documentation
- -------------
-
- Fixes bugs:
- - NEWS didn't indicate that there was a non-backward-compatible
- change in the gx_device structure -- specifically, that l_margin,
- b_margin, r_margin, and t_margin were replaced by macros named
- dev_l_margin(dev), etc. (news)
-
- Describes the two-phase commit requirement for device put_params
- procedures. (drivers.doc, gsparam.h)
-
- Procedures
- ----------
-
- Fixes bugs:
- - The new S macro in genarch.c didn't work on compilers that do
- macro substitution within string constants (which is forbidden by the ANSI
- standard). (genarch.c)
-
- Drivers
- -------
-
- Fixes bugs:
- - Driver put_params implementations didn't observe a "two-phase
- commit" discipline; this could lead to the current device in the graphics
- state being closed, and other inconsistencies. (gsparam.h, gxdevice.h,
- iparam.h, gdevbit.c, gdevcdj.c, gdevmswn.c, gdevpcfb.c, gdevpm.c,
- gdevprn.c, gdevx.c, gsdevice.c, gsdparam.c, zdevice.c, ziodev2.c, zmisc2.c)
- THIS IS A NON-BACKWARD-COMPATIBLE CHANGE; however, it only affects
- put_params implementations, of which there are few.
-
- NOTE THE NON-BACKWARD-COMPATIBLE CHANGE IN THE gx_device STRUCTURE UNDER
- 'Documentation' ABOVE. (gdevescp.c, gdevsj48.c, gdevsppr.c, gdevxini.c)
-
- Platforms
- ---------
-
- Ensures that the Unix makefiles all include all the variants of TIFF/F and
- fax drivers. (ansihead.mak, cc-head.mak, gcc-head.mak)
-
- Interpreter
- -----------
-
- Fixes bugs:
- - Most of the contents of statusdict were missing when
- running a Level 2 system in Level 1 mode. (zmisc2.c)
-
- Version 3.1 (9/20/94)
- ===========
-
- This release finally includes a usable subset implementation of
- setpagedevice, including all the machinery needed to address the
- long-standing "margins" problems.
-
- Documentation
- -------------
-
- Fixes bugs:
- - t_oparray objects weren't identified as behaving differently
- depending on whether they were marked executable. (iref.h)
- - drivers.doc had gx_color_value instead of gx_color_index in
- the description of color mapping. (drivers.doc)
-
- Updates drivers.doc to reflect the change from static_procs to
- std_procs in the gx_device structure. (drivers.doc)
-
- Procedures
- ----------
-
- Fixes bugs:
- - The commands for building the JPEG library used rm instead
- of rm -f. (jpeg.mak)
-
- Drivers
- -------
-
- Fixes bugs:
- - The X Windows driver hadn't been updated to reflect some
- name changes in members of the gx_color_info structure. (gdevx.h,
- gdevx.c, gdevxini.c)
-
- Changes all non-printer drivers so that they use the new std_device_body
- macros. (gdev*.c)
-
- Adds a print_page_copies procedure for printer drivers, allowing the
- driver to receive num_copies. (gdevprn.h, gdevprn.c)
-
- Interpreter
- -----------
-
- Fixes bugs:
- - ref_memory_enum/reloc_ptrs were declared inconsistently.
- (ialloc.c)
- - If the operand of restore was invalid, the restore did
- nothing, instead of giving a typecheck. (zvmem.c)
- - In Level 2, the margins and setmargins compatibility
- operators were defined incorrectly in terms of current/setpagedevice.
- (gs_lev2.ps)
-
- Enables .makeoperator to make local operators as well as global ones.
- (opdef.h, iinit.c, zmisc.c, zpacked.c)
-
- Finishes implementing the TransferFunction entry in halftone
- dictionaries. (zht1.c, zht2.c)
-
- Adds .set/currentfilladjust operators for access to the fill
- adjustment parameter in the graphics state. (zgstate.h)
-
- Removes the deviceinitialmatrix operator. (zdevice.c)
-
- Changes defaultmatrix from a procedure to an operator. (zmatrix.c)
-
- Sets the fill adjustment to 0.5 for high-resolution devices, effectively
- implementing Adobe's any-part-of-pixel filling rule. (gs_init.ps)
-
- Implements a small but useful subset of setpagedevice. (gs_lev2.ps)
-
- Streams
- -------
-
- Fixes bugs:
- - The eexec decoder incorrectly concluded that its data was
- in hex form if the first data character was whitespace. (seexec.c)
-
- Library
- -------
-
- Fixes bugs:
- - Thin graphics (e.g., lines or rectangles) with small angles
- relative to the X axis rendered with many points missing. (gxdraw.c,
- gxfill.c)
- - The character cache rejected oversampled characters if the
- scaled-up size was too large, even if the scaled-down size wasn't.
- (gxchar.h, gschar.c, gxccache.c, gxccman.c)
- - A call on sqrt with an integer argument didn't promote it
- explicitly to double, which is required for non-ANSI compilers.
- (gshtscr.c)
-
- Finishes implementing the TransferFunction entry in halftone
- dictionaries. (gsht1.c)
-
- Modifies the character oversampler so it can produce gray scale
- output instead of a 1-bit mask. We don't actually make use of this
- ability yet. (gxccman.c)
-
- Adds gs_set/currentfilladjust for access to the fill adjustment
- parameter in the graphics state. (gsstate.h, gsstate.c)
-
- Changes the names of the last few routines beginning with gz_ to
- begin with gx_ instead. (gzdraw.h => gxdraw.h, gsimage*.c, gxdraw.c,
- gxfill.c, gxstroke.c)
-
- Properly implements the PageSize, Margins, .HWMargins, and ImagingBBox
- device parameters for all devices. (gscoord.c, gsdparam.c, gspath2.c)
- Implements the NumCopies device parameter for printer devices.
- (gdevprn.c)
-
- Implements std_device_body macros to help insulate statically initialized
- non-printer devices from future changes in the gx_device structure.
- (gxdevice.h, ... many .c files ...)
-
- Version 3.0.3 (9/16/94)
- =============
-
- This is primarily a bug fix release; it also implements most of the
- remaining Level 2 loose ends (except for setpagedevice).
-
- Documentation
- -------------
-
- Changes code that refers to "Ghostscript" to use the correct product
- name from gs_product. (gs.mak, gdevpbm.c, gdevsun.c, gswppm.c)
-
- Documents the new .forgetsave operator. (language.doc)
-
- Clarifies the distinction between commercial licensing and single-copy
- end-user sales. (readme)
-
- Procedures
- ----------
-
- Fixes bugs:
- - The compilation rule for gdevadmp.c was missing from the
- makefile. (devs.mak)
-
- Changes the version numbering scheme back to A.B.C, since too many
- people got confused by the change to A.BC. (gconfig.c, gs.c,
- gs_init.ps)
-
- Adds a -dNOGC switch to prevent the garbage collector from being
- enabled. (gs_init.ps)
-
- Utilities
- ---------
-
- Removes the ps2image utility, since the new psmono driver replaces it.
-
- Drivers
- -------
-
- Fixes bugs:
- - The TIFF drivers incorrectly assumed that short and ulong
- were the same size as TIFF_short and TIFF_ulong, causing problems on
- 64-bit systems. (gdevtfax.c)
- - The EGA/VGA driver didn't do gray halftones properly if it
- was configured as a monochrome or 8-color device. (gdevpcfb.h)
- - The comment in gdevevga.c incorrectly identified the file
- as gdevpcfb.c. (gdevevga.c)
-
- Changes the PC display drivers to save and restore more of the BIOS
- state. (gdevpcfb.h, gdevevga.c, gdevpcfb.c, gdevsco.c)
-
- Adds a new psmono driver that does the same thing as ps2image, faster
- and more conveniently. (gdevpsim.c)
-
- Replaces the X11 driver with the one from 3.01, since the color
- handling rewrite in 3.02 introduced serious bugs. (gdevx.h, gdevx.c,
- gdevxini.c)
-
- Platforms
- ---------
-
- Changes the definition of gx_no_color_index to work around one of the
- bugs in the SGI Irix compiler. (gxdcolor.h)
-
- Rewrites the installation commands in unix-end.mak so they don't have
- very long lines. (unix-end.mak)
-
- Fonts
- -----
-
- Fixes bugs:
- - Fonts that used 2- or 4-element arrays in the Metrics dictionary
- interpreted the width and side bearing interchanged with each other.
- (gs_type1.ps)
- - Setting FONTPATH on the command line didn't work. (gs_fonts.ps)
-
- Streams
- -------
-
- Fixes bugs:
- - The stream position wasn't updated properly if sgets
- crossed a buffer boundary. (stream.c)
-
- Extends the BoundedHuffman filters so they can encode and decode runs of
- zeros specially, and so they mark and detect EOD. (sbhc.h, shc.h, sbhc.c,
- zfilter2.c)
-
- Provides an alternate implementation of file streams which doesn't use
- stdio buffering and which works around the System V "interrupted system
- call" problem. (stream.c, sfile.c, sfileno.c)
-
- Increases the maximum LZW output code from 3000 to 4095. (slzwe.c)
-
- Interpreter
- -----------
-
- Fixes bugs:
- - Opening a filter on a file of the wrong access type (read
- vs. write) didn't cause an error. (stream.h, sbasic.c, zfile.c, zfileio.c)
- - save performed an extra, unnecessary gsave. (zvmem.c)
- - sethalftone always gave a /undefined error. (zht2.c)
- - eexec decryption read too much data from the input -- in
- Level 2, it isn't allowed to read 512 characters ahead. (sfilter.h,
- strimpl.h, seexec.c, sstring.c, zfileio.c, zmisc1.c)
- - The scanner was too aggressive about allocating additional
- space for strings on small machines. (iscan.c)
- - The AccurateScreens flag in Type 1 and Type 2 halftone
- dictionaries was being ignored. (zht2.c)
- - The Level 2 definition of margins in statusdict didn't
- allow for Margins being undefined in the current page device.
- (gs_lev2.ps)
- - The Interpolate flag was being ignored in image
- dictionaries. [implemented in library]
- - The TransferFunction option was being ignored in halftone
- dictionaries. (zht2.c)
- - Type 5 halftones usually didn't work, because they called
- the wrong (or an invalid) spot function. (zht2.c)
-
- Implements a .forgetsave operator that effectively causes a given save (and
- all more recent saves) to disappear. (isave.h, stream.h, isave.c, zfile.c,
- zvmem.c)
-
- Library
- -------
-
- Fixes bugs:
- - In the 1-operand form of the image operator, a Decode value of [1
- 0] with 8-bit sample values and a single data source was treated the same
- as [0 1]. (gsimage1.c)
- - Some Monotype fonts put a callsubr between an OtherSubr call and
- the following 'pop' opcodes (which the Adobe documentation forbids); The
- Type 1 font interpreter gave an invalidfont error rather than allowing
- this. (gxtype1.h, gstype1.c)
- - Patterns didn't implement XStep and YStep properly.
- (gxpcolor.h, gspcolor.c, gxclip2.c)
- - Clipping regions were sometimes 1 pixel too small at the edges;
- this could cause vertical and horizontal lines produced by certain Windows
- drivers to disappear. (gzpath.h, gxacpath.c, gxcpath.c, gxfill.c)
- - Oversampling cached rotated characters produced very bad
- results (many dropouts). (gschar.c)
- - Rendering a DeviceGray color on a DeviceCMYK device applied
- the transfer function to all 4 components, not just to the K
- component. (gxcmap.c)
- - A screen specified with setcolorscreen didn't take effect
- properly on CMYK devices. (gsht.c)
-
- Implements the Interpolate option for images. Currently this is only
- implemented for portrait-orientation images (no rotation, skewing, or
- X-reflection). (gscspace.h, gximage.h, gscie.c, gscolor.c, gscolor1.c,
- gscolor2.c, gspcolor.c, gxcmap.c, gsimage.c, gsimage2.c, gsimage3.c)
-
- Implements AccurateScreens, but only in the form of a larger limit on
- the size of a halftone super-cell. (gxht.h, gsht.c, gsht1.c)
-
- Starts to implement the TransferFunction option for halftones.
- (gzht.h, gzstate.h, gsht.c, ...too many others to list...)
-
- Version 3.02 (8/30/94)
- ============
-
- This is another bug fix release. It was distributed only to a few people,
- since the new X Windows color mapping code is not reliable yet.
-
- Documentation
- -------------
-
- Fixes bugs:
- - make.doc, but not unixtail.mak, called for setting PLATFORM=unix_
- on SVR4 platforms. (unixtail.mak)
- - drivers.doc contained some wording that suggested that
- Ghostscript always used RGB colors internally. (drivers.doc)
- - The definition of gx_device in drivers.doc had gotten out of sync
- with gxdevice.h. (drivers.doc)
- - README claimed that Ghostscript is not compatible with the
- VAX/VMS DEC C compiler, which is no longer true. (readme)
-
- Adds a new section on printer drivers to drivers.doc. (drivers.doc)
-
- Adds a large number of new display boards to the 800x600 SVGA section of
- use.doc. (use.doc)
-
- Adds a bug report form to the README file. (readme)
-
- Notes that OSF/1 AXP systems require changing the definition of INSTALL
- from install to installbsd. (make.doc)
-
- Procedures
- ----------
-
- Removes -Wno-uninitialized from the gcc flags, and fixes all the places (in
- Aladdin's code only) that need to be fixed to pacify gcc after doing this.
- (gcc-head.mak, gdevgif.c, gdevmem2.c, gdevpcl.c, gs.c, gsht1.c, gsimpath.c,
- gsutil.c, gxclread.c, gxpcopy.c, gxstroke.c, idict.c, iscannum.c, stream.c,
- zdevice2.c) (NOT FINISHED YET)
-
- Adds a FAKEFONTS switch that makes fake entries in FontDirectory for
- unloaded fonts, for the benefit of programs that think they can find all
- the available fonts by scanning FontDirectory. (gs_fonts.ps, gs_init.ps)
-
- Utilities
- ---------
-
- Fixes bugs:
- - ps2epsi didn't work, because setdevice now erases the page.
- (ps2epsi.ps)
- - ps2epsi didn't work, because -dNODISPLAY installs a null device
- with 0 width and height. The fix -- to remove the -dNODISPLAY -- is not
- satisfactory, because it opens an unnecessary window. (ps2epsi)
-
- Drivers
- -------
-
- Fixes bugs:
- - gdev_fax_open was incorrectly declared static in gdevtfax.c,
- causing the extern reference in the dfax drivers not to be resolved.
- (gdevtfax.c)
- - devs.mak included a duplicate definition of gdevmswn_h.
- (devs.mak)
- - The fax drivers didn't link properly in Level 1 systems, because
- shc.c was omitted from their dependency list. (gs.mak, devs.mak)
- - The TIFF/F drivers didn't set RowsPerStrip properly.
- (gdevtfax.c)
- - The TIFF/F drivers didn't byte-align the EOL properly. (scfx.h,
- gdevdfax.c, gdevtfax.c, scfe.c, zfilter2.c)
- - The rule for compiling gdevpccm.c incorrectly specified
- dependency on gs.h rather than gx.h. (devs.mak)
- - The rule for compiling gdevtfax.c didn't include time_.h as a
- dependency. (devs.mak)
- - The mode 2 compression routine for the DeskJet/LaserJet printers
- was broken. (gdevpcl.c)
-
- Removes the -O0 from the compilation rule for gdevsco.c, since it was
- misplaced to begin with. (devs.mak)
-
- Adds a maxDynamicColors X resource to control dynamic allocation in the
- color map. Replaces the X color lookup algorithms with completely new
- ones, for a substantial performance gain. (gdevx.h, gdevx.c, gdevxini.c)
-
- Adds PageNumber, Software, and DateTime entries to the TIFF/F drivers.
- (gdevtifs.h, gdevtfax.c)
-
- Changes the margins for the LaserJet 4 to 0. (gdevdjet.c)
-
- Adds a user-contributed LaserJet 4 driver that does Floyd-Steinberg
- dithering. (gdevcdj.c)
-
- Platforms
- ---------
-
- Fixes bugs:
- - The exit codes for Ghostscript should be different on VMS.
- (iastate.h, gs.c, gsmain.c, igc.c, igcref.c)
- - The VMS DEC C compiler declares malloc and free in stdlib.h, and
- delete and unlink in stdlib.h. (malloc_.h, stdio_.h)
- - st_prn_device wasn't defined, which upset the VMS linker even
- though there were no references. (gdevprn.h)
- - stdpre.h didn't bring in the right headers when running gcc on
- SCO Unix, causing compilation warnings/errors. (stdpre.h)
- - The definition of rename in gp_sysv didn't include const for the
- arguments. (gp_sysv.c)
- - The definition of gettimeofday in gp_sysv didn't return any
- value. (gp_sysv.c)
- - time_.h didn't work on MS-DOS systems. (time_.h)
- - math_.h didn't include <math.h> when compiling with gcc on VMS
- systems. (math_.h)
- - DesqView/X doesn't have a 'cat' command, which caused problems in
- the linking step. (dvx-tail.mak)
-
- Changes the definitions of popen in gdevpipe.c and gp_unix.c so they don't
- specify the argument list. This is an attempt to get around the fact that
- there is no easy way to detect whether the available header files declare
- popen correctly (with const arguments), incorrectly (with non-const
- arguments), or not at all. (gdevpipe.c, gp_unix.c)
-
- Replaces VMS.MAK, VMS-CC.MAK, and VMS-AXP.MAK with new versions provided by
- a user. (vms.mak, vms-cc.mak, vms-axp.mak)
-
- Changes the 16-bit Borland makefiles so their standard configuration is
- Level 1 plus color.dev (CMYK color and colorimage). (bc.mak, bcwin.mak)
-
- Fonts
- -----
-
- Fixes bugs:
- - cfonts.mak still referred to some .gsf files that have been
- replaced by .pfa files. (cfonts.mak)
- - Compiled fonts got entered into FontDirectory, but didn't get
- registered as resources. (gs_ccfnt.ps)
- - The Cyrillic, Kana, Hershey .gsf, and URW fonts didn't include a
- necessary systemdict begin/end, which caused them to fail in badly designed
- environments. (fonts/f*.gsf, fonts/h*.gsf, fonts/?0*.gsf)
-
- Changes the default target directory in cfonts.mak from fonts/c to .;
- changes the names of the Zapf Chancery compiled font procedures from c* to
- zc*. (cfonts.mak)
-
- Adds more fonts from the Adobe Type Manager package for MS Windows to
- Fontmap.ATM. (fontmap.atm)
-
- Adds the entire set of 35 standard fonts to the ccfonts feature in gs.mak;
- removes all the compilation rules for compiled fonts, since these rules are
- in cfonts.mak already. (gs.mak)
-
- Interpreter
- -----------
-
- Fixes bugs:
- - kshow executed a null, rather than the correct procedure, between
- the characters of the string, and got a typecheck error at the end.
- (zchar.c)
- - MultiMaster fonts computed their side bearing and width
- incorrectly, producing incorrect output. (zchar1.c)
- - There was no structure definition for gs_type1_state, so a GC
- during the execution of an OtherSubrs procedure could scramble pointers in
- the saved state. (zchar1.c, zfont1.c; also affects library, see below)
- - kshow didn't work properly if the kerning procedure changed the
- depth of the operand or dictionary stack. (zchar.c)
- - If the element count for roll was too large by only 1 or 2, the
- result was a crash rather than a rangecheck. (zstack.c)
- - restore didn't undo currentgstate. (igstate.h, store.h,
- gsstate.c, zdevice2.c, zdps1.c, ztype.c)
- - The scanner didn't set the local bit properly in a suspended
- state. (iscan.c)
- - copypage disregarded #copies. (gs_init.ps)
- - An incorrectly declared pointer led to addressing faults on
- 16-bit systems. (zchar1.c)
- - The cache for Separation colors was allocated with one element
- too few. (zcsindex.c)
-
- Changes `executive' so that if an error other than EOF occurs in the
- reading of the statement, the interpreter prints the error message, but
- control remains in the executive loop. (This isn't a very good fix; a
- better one will require refactoring executive / execute / run.)
- (gs_init.ps)
-
- Changes dictionary undo saving to use the new ref_must_save macro [internal
- change only]. (idict.c)
-
- Moves configuration definitions from iinit.c to gconfig.c. (gcdefs.h,
- interp.h, gconfig.c, gs.c, iinit.c, zmisc2.c, gs.mak)
-
- Moves =string from systemdict to userdict for Adobe compatibility.
- (gs_init.ps)
-
- Starts to implement the Interpolate flag in image dictionaries. See under
- Library below for restrictions. (zpaint.c, zimage2.c)
-
- Streams
- -------
-
- Fixes bugs:
- - stream_compact attempted to compact a read-only string being used
- as the data source of a filter. (sbasic.c, stream.c)
-
- Adds an EncodedEOLAlign flag to the CCITTFaxEncode stream, to allow direct
- generation of TIFF/F output. (scfx.h, scfe.c, zfilter2.c)
-
- Library
- -------
-
- Fixes bugs:
- - There was no structure definition for gs_type1_state, so a GC
- during the execution of an OtherSubrs procedure could scramble pointers in
- the saved state. (gxfont1.h, gxtype1.h, gstype1.c, gxhint2.c)
- - A couple of calls had to discard const, but didn't include the
- necessary cast. (gxpcmap.c)
- - makeimagedevice refused to accept an empty image. (gsdevice.c)
- - The extra parentheses around arguments in memory_.h caused some
- compilers to fail. (memory_.h)
- - Floating point overflows during coordinate conversion terminated
- Ghostscript. (gxfarith.h, gxfixed.h, gsmatrix.c, gsmisc.c)
- - Accents still weren't getting placed properly on characters
- created with seac. (gstype1.c, gxhint2.c)
- - The SGI C compiler couldn't handle the (perfectly legal)
- definitions of dev_init_[open_]misc. (gxdevice.h)
- - string_.h caused some problems with gcc on some versions of
- Solaris. (string_.h)
- - The halftone levels for color screens were computed incorrectly.
- (gzht.h, gxdither.c)
- - Color screens sometimes had vertical stripes of solid color
- interspersed. (gxcht.c)
- - Colors could get mapped incorrectly if a compiler aggressively
- (and incorrectly) reordered the computation of procedure arguments
- involving the unit_frac macro. (gxcmap.c)
- - setcachedevice[2] insisted that the corners of the bounding box
- be given in the correct order, i.e., llx < urx and lly < ury. (gschar.c)
- - The image operator gave a limitcheck on unrotated 1-bit-per-pixel
- images whose width in device coordinates exceeded 65529. (gsimage.c)
- - The garbage collector didn't trace the input data of an
- in-progress image operator correctly. (gsimage.c)
-
- Changes the max_rgb and dither_rgb members of gx_device_color_info to
- max_color and dither_colors, since Ghostscript now uses these for CMYK
- devices as well. Also changes dither_gray to dither_grays. (gdevmem.h,
- gdevprn.h, gxdevice.h, gdevbit.c, gdevcdj.c, gdevprn.c, gdevxini.c,
- gsdparam.c, gxcht.c, gxcmap.c)
-
- Starts to implement the Interpolate option for images. Currently this is
- only implemented for image, not imagemask, and only for rotations that are
- multiples of 90 degrees (possibly with reflection). (gsimage.h,
- gsiscale.h, gximage.h, gsimage.c, gsimage1.c, gsiscale.c)
-
- Starts to implement XStep and YStep in pattern dictionaries. (gxdcolor.h,
- gxpcolor.h, gspcolor.c, gxpcmap.c)
-
- Version 3.01 (8/14/94)
- ============
-
- This is a patch release to fix early problems in release 3.0, and to clean
- up a few known loose ends.
-
- Documentation
- -------------
-
- Fixes bugs:
- - language.doc still documented the devicename procedure, which has
- been withdrawn. (language.doc)
- - drivers.doc didn't specify under what circumstances each
- procedure could be called. (drivers.doc)
- - current.doc said that setcachedevice and makeimagedevice wouldn't
- accept packed arrays, but neither of these operators takes any array
- arguments. (current.doc)
- - current.doc said that definefont didn't interact properly with
- the resource machinery, which apparently is no longer true. (current.doc)
- - make.doc incorrectly gave the name of the DVX makefile as
- dvx-djg.mak rather than dvx-gcc.mak. (make.doc)
- - In one place, devices.doc incorrectly used -sBitsPerPixel= rather
- than -dBitsPerPixel=. (devices.doc)
-
- Notes that a kernel bug in SCO Unix makes Ghostscript not work correctly in
- some circumstances. (use.doc)
-
- Procedures
- ----------
-
- Fixes bugs:
- - devs.mak incorrectly referred to gdevjetp.c instead of
- gdev3852.c. (devs.mak)
- - The obsolete file gsprops.c was accidentally included in the
- fileset.
-
- Changes the version numbering scheme from A.BCC to A.B[C]. E.g., this
- release will be 3.01, not 3.001. (gs_init.ps, gs.c, iinit.c)
-
- Adds the LaserJet 4 driver to all makefiles that already include the
- LaserJet 3 driver. (*.mak)
-
- Adds the BJ-200 driver to all makefiles that already included the BJ-10e
- driver. (*.mak)
-
- Splits the Unix 'install' target into install-exec and install-data. Moves
- the executable scripts from gsdatadir to a new directory scriptdir, which
- defaults to bindir. (ansihead.mak, cc-head.mak, gcc-head.mak,
- unix-end.mak)
-
- Utilities
- ---------
-
- Fixes bugs:
- - genconf had fixed buffer sizes built into it, which it could
- overrun its working storage without checking. (genconf.c)
-
- Removes RCS or SCCS headers from two utility files. (pj-gs.sh,
- printafm.ps)
-
- Drivers
- -------
-
- Fixes bugs:
- - The new dfaxhigh and dfaxlow drivers didn't set
- state.EncodedByteAlign to false. (gdevdfax.c)
- - The sunview driver assumed that the device would be open before
- map_rgb_color was called. (gdevsun.c)
- - The CP50 driver incremented page_count itself, rather than
- letting the core library do it. (gdevcp50.c)
- - The GIF driver(s) could loop indefinitely under certain
- circumstances. (gdevgif.c)
- - The Group 4 fax drivers incorrectly included end-of-line codes in
- the output. (gdevtfax.c, gdevdfax.c)
- - The Group 4 fax drivers could put out an EOB in the middle of the
- data. (scfe.c)
- - The DesignJet 650C driver didn't use the correct compression
- mode. (gdevcdj.c)
- - The Hercules and EGA/VGA/SVGA drivers computed the page height
- incorrectly according to the A4 switch. (gdevherc.c, gdevpcfb.h)
-
- Changes the page_count and showpage_count members of the device structure
- from int to long. (gxdevice.h, gdevprn.c, gsdparam.c)
-
- Changes the faxg3, faxg32d, and faxg4 drivers so that, like the TIFF and
- dfax drivers, they adjust the page size to one of the three CCITT standard
- sizes if this is reasonable. (gdevtfax.c)
-
- Splits the bit driver into bit, bitrgb, and bitcmyk. Adds bitrgb and
- bitcmyk to all makefiles that included bit. (*.mak, devs.mak, gdevbit.c)
-
- Replaces the atiw16, tseng16, and tvga16 SuperVGA drivers with a single
- svga16 driver that allows specifying the display mode number. (devs.mak,
- gdevpcfb.c)
-
- Platforms
- ---------
-
- Fixes bugs:
- - The MS Windows and OS/2 drivers allocated their terminal input
- buffers in a way that could cause the GC to crash. (gp_mswin.c, gp_os2.c)
- - The handling of gettimeofday on SVR4 platforms was incorrect.
- (time_.h, gp_sysv.c, gp_unix.c)
- - On some platforms, function prototypes were not enabled even if
- __STDC__ was defined. (stdpre.h)
- - The VMS build script referred to an obsolete feature lev2only.
- (vms.mak)
-
- Changes the DVX platform so that stdprn is buffered. This should improve
- printing performance dramatically. (gp_dvx.c)
-
- Fonts
- -----
-
- Fixes bugs:
- - Setting DISKFONTS resulted in a reference to FontFileDirectory
- before it was defined. (gs_type1.ps, gs_fonts.ps)
- - /Font findresource gave an error rather than doing font
- substitution. (gs_res.ps)
- - FontDirectory wasn't rebound to GlobalFontDirectory when global
- VM was current. (gs_res.ps, zdict.c)
- - Type 1 fonts weren't loaded into global VM. (gs_fonts.ps)
- - In the standard Fontmap, the Utopia fonts had extension .gsf
- rather than .pfa. (fontmap.gs)
- - Fonts whose FontBBox was [0 0 0 0] were not displayed, or were
- displayed as tiny dots. (gs_type1.ps)
-
- Interpreter
- -----------
-
- Fixes bugs:
- - dict_put could read from the variable pvslot before it was used.
- (This was harmless, since the value was never actually used; it just upset
- Purify.) (idict.c)
- - Binary object sequences could cause addressing faults.
- (iscanbin.c)
- - The attributes on names were set incorrectly in binary object
- sequences. (iscanbin.c)
- - gs.c duplicated (in some cases incorrectly) some definitions in
- interp.h. (gs.c)
- - gs_lib_paths was declared const in one place and non-const in
- another. (zfile.c)
- - file_restore and font_restore had inconsistent const declarations
- for their argument. (isave.c)
- - iodev_os_open_file was missing its last formal parameter.
- (ziodev.c)
- - gs.c declared gs_devicename with an incorrect extern. (gs.c)
- - undefinefont didn't interact properly with the resource
- machinery. (gs_lev2.ps)
- - The declaration for swap_entry used a typedef name as a formal
- parameter, which upset some compilers. (zmisc2.c)
- - Including the ccinit feature could cause the garbage collector to
- make an invalid access. (stream.c)
- - The check for t_[a]struct types in ztype.c was incorrect.
- (ztype.c)
- - After the collection of halftone samples, temporary data
- structures were freed incorrectly. (gzht.h, gsht1.c, zht.c)
- - Images with source width between 489 and 492 crashed the
- memory manager. (iastate.h)
-
- Makes it possible to define SEARCH_HERE_FIRST (gsmain.c) in the makefile.
- (gsmain.c)
-
- Splits the Level 2 resource machinery into a separate file. (gs_lev2.ps,
- gs_res.ps, gs.mak, unix-end.mak, vms.mak).
-
- Changes the names of the DiffEncode/Decode filters to
- PixelDifferenceEncode/Decode, and splits them off into a separate
- "feature". (gs.mak, zfilter2.c, zfpdiff.c, spdiff.c, spdiffx.h)
-
- Adds experimental code for filtered image scaling. DON'T USE THIS CODE.
- (zimage2.c)
-
- Streams
- -------
-
- Fixes bugs:
- - The CCITTFaxEncode filter could put out an EOB in the middle of
- the data. (scfe.c)
-
- Splits off the PixelDifferenceEncode/Decode filters into a separate
- "feature". (gs.mak)
-
- Library
- -------
-
- Fixes bugs:
- - gs_setcachedevice could return a garbage error code. (gschar.c)
- - joins on stroked lines were incorrect if the device coordinate
- system mapped +Y to +Y. (gxstroke.c)
- - If gsmisc.c supplied versions of missing library routines, they
- could clash with the names of the real ones if those were present
- unexpectedly. (memory_.h, gsmisc.c)
- - The initialization expression for is_open in the
- dev_init_misc_open macro included a cast, which some compilers don't allow.
- (gxdevice.h, gsdevice.c, gxclip2.c, gxpcmap.c)
- - In Type 1 fonts, character that specified their side bearing and
- width with sbw rather than hsbw gave an invalidfont error. (gstype1.c)
- - Some procedures were declared inconsistently with regard to const
- arguments. (gscie.c, gxpcmap.c, gxacpath.c, gxcmap.c)
- - A few places still assumed that pointers occupied 4 bytes.
- (gxclist.c)
- - Rendering a gray halftone on a CMYK device called the device's
- map_rgb_color procedure instead of map_cmyk_color. (gxdither.c)
-
- Renames gsfile.c as gswppm.c. (gsfile.c, gswppm.c)
-
- Implements the ability to cache arbitrarily transformed characters. This
- is currently enabled by a compile-time flag in gschar.c. (gschar.c)
-
- Version 3.0 (8/1/94)
- ===========
-
- This is the first full Level 2 version released to the public.
- Unfortunately, we were not able to include setpagedevice in this release.
-
- Documentation
- -------------
-
- Fixes bugs:
- - README didn't mention Aladdin's European distributor.
- - psfiles.doc didn't describe some of the newer gs_*.ps files.
-
- Notes that gcc -O2 (version 2.5.8 of gcc) generates incorrect code for some
- modules on the H-P RISC architecture.
-
- Notes that on AXP platforms running VMS, DEC C V4.0 is required.
-
- Procedures
- ----------
-
- Fixes bugs:
- - 'make clean' didn't delete devs.tr or t.tr.
- - devs.mak was missing the entry for faxg32d.
- - unixansi.mak omitted some drivers that were included in
- unix-cc.mak and unix-gcc.mak.
-
- Updates jpeg.mak to reference version 5beta1 of the IJG JPEG code.
-
- Changes the version numbering scheme from A.B.C to A.B[CC]. I.e., the
- first sub-release after 3.0 will be 3.01 or 3.001, not 3.0.1.
-
- Utilities
- ---------
-
- Fixes bugs:
- - ps2ascii didn't do a setglobal.
-
- Adds an option to ansi2knr to convert ... to va_alist/va_dcl.
-
- Drivers
- -------
-
- Fixes bugs:
- - The newly added faxg32d driver didn't have an entry in devs.mak.
- - The BMP, GIF, and PCX drivers wrote out an incorrect color
- palette (the blue values were too small).
- - The vgalib driver had some compilation problems.
- - The TIFF drivers didn't produce correct multi-page output.
-
- Adds faxg32d and tiffg32d drivers.
-
- Reinstates the DigiFax drivers, which were withdrawn when the new fax
- drivers were added.
-
- Platforms
- ---------
-
- Fixes bugs:
- - gs_btokn.ps and gs_ccfnt.ps weren't installed on Unix platforms.
- - The VMS module list omitted SBHC, included a non-existent GXDASH,
- and had incorrect names for some of the IJG JPEG files.
- - The VMS build scripts (vms*.mak) had incorrect "boilerplate".
- - The VMS script file gssetmod.com had \r characters in it, as well
- as \n characters.
- - The echogs and genarch utilities didn't return the correct exit
- codes under VMS.
- - The VMS Fontmap had incorrect entries for the Courier and Charter
- fonts.
- - When running under Ghostview, Ghostscript didn't drain the input
- pipe. (We fixed this with a temporary patch in gs.c; this isn't a good
- solution for the longer term.)
-
- Fonts
- -----
-
- Fixes bugs:
- - The free AvantGarde, Bookman, and Palatino font families had
- incorrect FontBBox values.
- - The 'f' and 'j' in the free AvantGarde-DemiOblique,
- Bookman-DemiItalic, Bookman-LightItalic, and Palatino-Italic fonts were
- chopped off on the right. (The bitmaps were chopped off in the original
- BDF fonts from which these fonts were made.) ****** THIS PROBLEM WAS NOT
- ACTUALLY FIXED. ******
-
- Interpreter
- -----------
-
- Fixes bugs:
- - gs -h and gs -v didn't print the tertiary version number correctly.
- - Binary object sequences with no strings or names didn't read in
- correctly.
- - Binary object sequences that crossed an input buffer boundary
- didn't read in correctly.
- - Binary object sequences read in as {[e1 .. en] e1 ... en} instead
- of {[e1 ... en]}. (New bug in 2.9.x.)
- - setpattern didn't set the current color space correctly if the
- current color space wasn't a Pattern space.
- - If the current color space was an uncolored Pattern space but the
- current color was a colored Pattern, currentcolor returned extra values on
- the operands stack.
- - .buildfont1 in gs_type1.ps didn't force binding of the old
- definition, causing ps2ascii to loop endlessly.
-
- Adds a facility for writing and reading dictionaries in binary object
- sequences. This is experimental and subject to change in the future.
-
- Streams
- -------
-
- Fixes bugs:
- - gs_run_string and ccinit didn't have any way to mark the string
- as "foreign", which confused the GC.
-
- Library
- -------
-
- Fixes bugs:
- - gxchar.h had an extra comma after the last element of the
- show_width_status enum, which upset some compilers.
- - stroke and strokepath didn't correctly skip zero-length segments
- if the line width was less than one pixel, or if there was a closed subpath
- consisting entirely of zero-length segments.
- - strokepath sometimes incorrectly added a moveto at the end of the
- path.
-
- Versions before 3.0
- ===================
-
- See the files history*.doc.
-