History of Ghostscript versions 4.n

Table of contents

This document is a history of Ghostscript releases numbered 4.n. For more recent changes, see the the other history documents and, for the latest versions, the news:

News
History of Ghostscript versions 4.n (this document)
History of Ghostscript versions 3.n
History of Ghostscript versions 2.n
History of Ghostscript versions 1.n

For other information, see the Ghostscript overview.



Version 4.81 (6/1/97)

This is a last-minute set of bug fixes before the 5.0 release.

Documentation

Adds some overlooked helpers to the list. (helpers.txt)

Procedures

Makes a distinction between 2-part and 3-digit version numbers. (version.mak, vms.mak)

Utilities

Develops the Type 1 to CFF converter a little further; it is still NOT USABLE. (t1tot2.ps) Removes the pstoppm.ps script, since the p*m drivers supersede it. (pstoppm.ps, unix-end.mak)

Drivers

Fixes bugs: - The PDF writer sometimes omitted an ET command before setting the clip path. (gdevpdf.c) - The PDF writer didn't initialize the "vector" state, leading to some redundant output (performance bug only). (gdevpdf.c) - The PDF writer wrote clip paths even when they included the entire page (performance bug only). (gdevpdf.c) Changes the PDF writer so that it recognizes not only the 14 built-in fonts but any font with the same UniqueID and metrics. This covers some common cases of re-registering a font with a variant Encoding. (gs_pdfwr.ps)

Platforms

Fixes bugs: - SEARCH_HERE_FIRST was accidentally set to 0 on MS Windows platforms. (bcwin32.mak, msvc4.mak, msvc5.mak, watcw32.mak) Adds code to remove "" around arguments in the command line passed to WinMain (MS Windows platforms). (dwmain.cpp, dwmainc.cpp)

Interpreter

Fixes bugs: - setsystemparams was broken. (gs_lev2.ps) - restore was broken if -dNOBIND was invoked. (gs_dps1.ps) - deviceinfo returned much more information than it should. (gs_dps.ps) - The fix for the default EndPage procedures not popping their page count operand from the stack was wrong. (gs_init.ps, gs_setpd.ps)

Library

Fixes bugs: - The saved character origin took the translation component of the FontMatrix into account, which caused charpath on fonts with non-zero translation in the FontMatrix to produce incorrect results. (gschar.c) Removes incorrect access attributes on a couple of files. (gdevpdfm.c, gxclist.h)

Version 4.80 (limited) (5/28/97)

This is the candidate fileset for the 5.0 release.

Documentation

Fixes bugs: - The one-line description of the color image rendering module was incorrect. (gximage3.c) - Some of the VMS documentation was out of date. (make.txt, use.txt) - The description of the file name separator for -sFONTMAP= was wrong. (use.txt) - PSFile was misspelled PSfile. (use.txt) - There were some minor typos. (gstype1.h) - The build instructions had a lot of obsolete information for PC environments, and didn't cover Microsoft Visual C++. (make.txt) Explains that -sPAPERSIZE= only specifies the default papersize, and that forcing a particular paper size also requires -dFIXEDMEDIA. (use.txt) Adds information about building with GNU make on OpenVMS. (make.txt) Clarifies the meaning of EOFC for streams. (strimpl.h) Documents the new dictionary argument for the eexecDecode filter. (language.doc)

Procedures

Fixes bugs: - gs_epsf.ps didn't get installed on Unix systems. (unix-end.mak) - The code wouldn't build with libpng 0.95b. (libpng.mak) - One of the VMS scripts used CC_QUAL instead of CC_DEF. (vms-cc.mak) - version.mak wasn't included in a dependency list. (unix-end.mak) Brings the VMS DCL script up to date again (for the last time, we hope). (vms.mak) Modifies all platform-independent uses of upper-case command line arguments to deal properly with VMS, where the shell converts all command line arguments to lower case, without requiring quotation. (devs.mak, gs.mak, int.mak, lib.mak, zlib.mak) Moves the compilation rules for the third-party libraries into gs.mak, so they can be used to compile the callers as well. (gs.mak, jpeg.mak, libpng.mak, zlib.mak) Adds a set of files that allow building on OpenVMS using GNU make (slightly patched). The timing on this is unfortunate, but we've wanted this for a very long time. NOTE: be sure to look in the OpenVMS section of make.txt for information on patching GNU make. (openvms.mak, append_l.com, rm_all.com, rm_one.com, copy_one.com) Adds new makefiles for building on 32-bit Windows with Borland, Watcom, and Microsoft Visual C++ (versions 4.x and 5.0). The timing on this is unfortunate too, but having this capability is so important that we couldn't pass it up. (bcwin32.mak, msvc4.mak, msvc5.mak, msvccom.mak, watcw32.mak, wincom.mak) Removes now-obsolete makefiles. (dwcommon.mak, msc.mak, msvcwint.mak, mscbegin.bat, watcwin.mak)

Utilities

Extends echogs to work in VMS environments, where the shell converts all command line arguments to lower case, without requiring quotation. (echogs.c) Adds a sketch of a utility for converting Type 1 fonts to CFF. DOESN'T WORK YET: DON'T TRY TO USE IT. (t1tot2.ps, type1ops.ps, writecff.ps)

Drivers

Fixes bugs: - A type declaration wasn't compatible with libpng 0.95. (gdevpng.c) - kshow wasn't handled properly when producing PDF output. (gs_pdfwr.ps) - The PDF writer put out unnecessary ET/BT commands. (gdevpdfx.h, gdevpdf.c, gdevpdfi.c, gdevpdfm.c, gdevpdft.c) - The PCL XL writer put out real numbers for the miter limit, which are not allowed (!). (gdevpx.c) - The PCL XL writer didn't combine successive curves into a single curve command (performance bug only). (gdevpx.c) - The PCL XL writer could write uncompressed images with a tag saying they were compressed. (gdevpx.c) - The PCL XL writer always selected U.S. letter paper, rather than the requested size. (gdevpxen.h, gdevpx.c) - The PCL XL writer reselected the paper size on every page, even if it hadn't changed. (gdevpx.c) - The PCL XL writer always used shorts for line and curve coordinates, rather than using bytes when possible (performance bug only). (gdevpx.c) - Because of a compiler bug, a macro with argument conflicted with a variable name. (gdevpdfx.h, gdevpdf.c) - A picky compiler objected to an extern for an undefined structure. (gdevpsdf.h) - The PDF writer sometimes didn't reset the clipping path, causing bitmaps or rectangle to disappear. (gdevpdf.c, gdevpdfi.c) - The PDF writer produced invalid output if the first page was blank. (gdevpdf.c) - The AutoRotatePages parameter for PostScript and PDF output (which doesn't actually do anything yet) incorrectly expected a Boolean value rather than an enumeration. (gdevpsdf.h, gdevpsdf.c) - Some places returned -1 for an error without calling gs_note_error or gs_return_error. (gdevm1.c, gdevmpla.c, gdevrun.c, gxclpath.c) - The PCL XL writer produced extremely large files because it didn't download character bitmaps. (OK, this isn't really a bug fix.) (gdevpx.c) - The forwarding implementation of get_page_device didn't do the right thing. (gdevnfwd.c) - The x11alpha device didn't implement get_params properly, leading to anomalous behavior. (gdevxalt.c) - The PDF writer produced incorrect Count values for outlines: the count only counted descendant leaves, omitting intermediate nodes. (gdevpdfm.c) Removes an assumption that images have at most 4 components. (gdevpdfi.c) Adds an x11gray2 device, primarily for debugging. (devs.mak, gdevxalt.c) Updates the unified printer driver with a newer version. (uninfo.ps, gdevupd.c, *.upp)

Platforms

Adds the P*M devices and the X11 devices (commented out) to the OS/2 makefile. (os2.mak) Updates the MS Windows platform to be compatible with Microsoft Visual C++ (as well as Watcom and Borland compilers). (gsdll32.def, gdevmswn.h, gp_mswin.h, gsdll.h, dwimg.cpp, dwmain.cpp, dwmainc.cpp, dwtext.cpp, gdevwdib.c, gdevwprn.c, gdevwpr2.c, gp_mswin.c, gsdll.c)

Fonts

Fixes bugs: - Certain synthetic fonts incorrectly were loaded into local rather than global VM. (These fonts are not part of the standard distribution.) (gs_fonts.ps, gs_pfile.ps, *ss*.ps)

Interpreter

Fixes bugs: - The FAKEFONTS scan could leave junk on the stack. (gs_fonts.ps) - Dynamically loading known encodings on demand left junk on the stack, causing a typecheck error. (gs_res.ps) - Some 'static' declarations were missing (gcc lossage). (iname.c) - Some internal operators didn't have names, leading to unhelpful error printout. (zfileio.c) - The resource "operators" didn't always restore the stacks properly on an error. (gs_res.ps) - The CID font code left a garbage value on the stack during loading. (gs_cidfn.ps) - The defineresource implementation for built-in resources like FMapType didn't leave the resource "value" on the stack. (gs_res.ps) - If an operator defined by a procedure was bound into a packed procedure, the stack-protection feature wasn't effective. (interp.c) - findfont didn't restore the stack if it failed. (gs_res.ps) - The showpage count passed to the BeginPage and EndPage procedures was incremented only if a page was printed, rather than for every invocation of showpage. (gs_init.ps, zdevice2.c) - The default EndPage procedures didn't pop their page count operand from the stack. (gs_init.ps, gs_setpd.ps) - If the argument of findfont wasn't a name or a string, and no font with that key had been registered, an error occurred. (gs_fonts.ps, gs_res.ps) Updates most of the remaining pseudo-operators to take advantage of stack protection. (gs_btokn.ps, gs_cmap.ps, gs_dps1.ps, gs_dps2.ps, gs_fonts.ps, gs_lev2.ps, gs_pdfwr.ps) Splits the image operators into a separate file from the path painting operators. (This should have been done a long time ago.) (iimage.h, zimage.c, zpaint.c) Adds more of the implementation of the NeXT alpha and compositing operations, under an #ifdef DPNEXT. (iimage.h, zcolor1.c, zdpnext.c, zimage.c) Adds more of the implementation of DPS contexts. These are still not usable. (icontext.h, icontext.c, zcontext.c, zmath.c) Changes the help message to describe -dBATCH instead of -c quit. (imainarg.c) Recognizes the dictionary argument for the eexecDecode filter. (zmisc1.c)

Streams

Fixes bugs: - The tracing message when starting to decode 1-D fax data reported the run_color incorrectly. (scfd.c) - In the CCITTFaxDecode filter, if a buffer boundary fell between a makeup code and a final zero-length termination code, an ioerror could occur. (scfd.c) - Per Adobe, in the CCITTFaxDecode filter, EndOfBlock = true should cause Rows to be ignored. (scfd.c) - If an output stream returned EOFC, an infinite loop might result. This problem (and the fix) are in the same fragile code as the EOD fix in 4.74, and we may again have introduced a new bug. (stream.c) Changes the eexecDecode filter so that instead of a number, it can take a dictionary with two keys, seed and lenIV. (Having eexecDecode skip initial bytes at all was a design bug that is too late to fix.) (sfilter.h, seexec.c)

Library

Fixes bugs: - The default mapping from RGB+alpha to RGB didn't lighten (premultiply) the color according to the alpha value. (gxcmap.c) - The angle error metric for rational tangent screen parameters should be simply the difference in angle, not a ratio. (gshtscr.c) - gs_setcolorscreen and gs_sethalftone didn't initialize an allocator pointer, leading to memory access errors. (gsht1.c) - If a banded image was clipped, an invalid band list could be produced. (gxclimag.c) - A picky compiler wouldn't allow an enum to be &&'ed with a boolean. (gschar.c) - A short-sighted compiler didn't allow the use of actual procedure names (as opposed to procedure variables) in a conditional expression. (gxfill.c) - A compiler objected to a name longer than 31 characters. (gzht.h, gsht.c, gxclread.c) - The height computations for banded images were not consistent, possibly leading to invalid band lists. (gxclimag.c) - copypage didn't reset the band writer and band reader bookkeeping consistently, leading to incorrect output and possible errors. (gxcldev.h, gxclist.c, gxclread.c) - When banding, changing the halftone could lead to accessing memory after freeing it. (gxclread.c) - When using disk files for band storage, showpage didn't actually delete or truncate the band list file, possibly causing subsequent copypage operations to become confused. (gxclfile.c) - When banding, having more than one image operator in progress at a time confused the rasterizing pass and could produce arbitrary errors. From PostScript, this can only happen in the case of an image whose data source was a procedure-based stream that itself invoked an image operator: this is a senseless and perverse thing to do, but it shouldn't break the code (and a Genoa CET file actually does it). (gxclist.h, gxclimag.c, gxclist.c) - Some picky compilers objected to negating unsigned values. (gsuid.h, gsht.c, gsmemory.c, gxpcopy.c) - When banding, if a 90- or 270-degree rotated monobit image was clipped, invalid memory accesses could occur. (gximage.h, gximage1.c) - The showpage count passed to the BeginPage and EndPage procedures was incremented only if a page was printed, rather than for every invocation of showpage. Fixing this requires removing the incrementing of the count from the library level altogether. (gsdevice.c) - When rendering a subrectangle of an image, the X DDA was initialized incorrectly, causing possible errors. We think this only affected certain banded images. (gxdda.h) Adds a provision for images with an alpha component, under an #ifdef DPNEXT. ****** THE BANDING CODE HAS NOT BEEN UPDATED YET. ****** (gsiparam.h, gxcmap.h, gxdither.h, gximage.h, gsimage.c, gxclimag.c, gxclread.c, gxcmap.c, gximage.c, gximage3.c, gximage4.c ****** NOT DONE YET ******, gximage5.c) Adds a return_if_error macro to capture the common idiom of making a call and then returning its value if that value is negative (error). (gserror.h)

Version 4.74 (limited) (5/5/97)

This fileset is supposed to fix all remaining errors reported by the Genoa CET, and is intended to be the last incremental test fileset before the 5.0 release.

Documentation

Fixes bugs: - Mark procedures are *not* executed in the normal return case. (estack.h) - The line_params element of a gs_imager_state is *not* allocated separately. (gsstate.c) - The value passed to the PDF writer for text is a dictionary, not an array. (gdevpdft.c) Improves the documentation of gstate memory management. (gsstate.c) Documents end_status = EOFC for writing streams. (stream.h, strimpl.h) Clarifies memory management for halftones and device halftones. (gsht1.h, gxdht.h, gxht.h, gzht.h) Removes the "experimental" tag from the PostScript and EPS writers. (devs.mak)

Utilities

Fixes bugs: - The viewpcx utility scaled images improperly. (viewpcx.ps) - If a PDF file used F instead of f for filling a path, pdf2ps didn't output the fill operation. (pdf_base.ps) Changes the ps2pdf script so that, like pdf2ps, it allows debugging switches. (ps2pdf)

Drivers

Fixes bugs: - The vgalib driver didn't clip monobit images properly. (gdevvglb.c) - The X driver asked for exposure events to be reported, but never read them, causing the event queue to grow indefinitely. (gdevxini.c) - The "vector" drivers and the PDF writer didn't properly keep track of whether the current clipping region was the default one. (gs_pdfwr.ps, gdevvec.h, gdevvec.c, gdevpdf.c, gdevpdft.c) - The PDF writer had word and character spacing interchanged. (gdevpdft.c) - The PDF writer scaled word and character spacing incorrectly. (gdevpdft.c)

Interpreter

Fixes bugs: - The user object operators didn't leave the stack in a clean state if they failed. (gs_dps2.ps) - UserObjects wasn't actually defined. (gs_dps2.ps) - deviceinfo and set/currenthalftonephase were defined even if the dps feature wasn't selected. (int.mak, gs_dps.ps, gs_dps1.ps, gs_lev2.ps, zdps.c, zdps1.c) - The dps feature didn't automatically include the level2 feature, which it needs. (int.mak) - The DPS user names mechanism didn't work, since the user names array was subject to save and restore. (It still doesn't really work -- there is no provision for expanding the user names array, which is created with length 0.) (gs_btokn.ps, ivmspace.h, zbseq.c, zdps.c) - The DPS context operators didn't do all the necessary error checking. (zcontext.c) - The debugging printout for names printed the name index in hex without identifying it as such. (idebug.c) - Adding the first non-name key (or name key with a name index beyond 4K) to a dictionary that had any deleted entries could cause some entries to apparently disappear. (idict.c) - If a sub-table of the name table was freed during garbage collection, memory could be left in an inconsistent state. (iname.c, igc.c) - findfont didn't restore the stacks reliably if an error occurred. (gs_fonts.ps) - definefont with an invalid Type 0 font sometimes added a FID entry (with a dangling pointer) if it failed. (Recovering properly from a VMerror during font creation would require a much more complicated fix than this, but since we expect a garbage collection to occur in that case, we aren't concerned about it.) (zfont0.c) - Reading parameter values from a dictionary could access beyond the end of the array that keeps track of which entries had been referenced. (idict.h, idict.c, iparam.c) - Halftone data was allocated in the current VM rather than in the same VM as the halftone dictionary or procedure. (Fixing this includes updating code as necessary for the change in halftone and device halftone allocation.) (iht.h, ivmspace.h, zht.c, zht1.c, zht2.c) - Closed non-executable files on the e-stack could cause a restore to be invalid. (zvmem.c) Adds skeleton code for the NeXT Display PostScript alpha and compositing operators. This is not ready for use yet! (errors.h, gs_dpnxt.ps, zdpsnext.c) Implements more of state saving and restoring for Display PostScript contexts. This is not ready for use yet either. (int.mak, icontext.h, istack.h, icontext.c, zcontext.c) Adds stub code for the Display PostScript view clip operators. (gs_dps.ps, zdps.c) Removes the obsolete PPM-writing operator. (int.mak, vms.mak, *.mak, zwppm.c) Makes the random number generator state public so it can be stored in the context state. (zmath.c) Changes the flag for forcing global garbage collection to a run-time variable, for debugging. (igc.c) Changes the handling of job control so that it doesn't use procedures that produce an execstackoverflow when being printed. (gs_init.ps) Updates code as necessary for the change in reference counting. (zcie.c, zcrd.c) Updates code as necessary for the change in off-stack gstate copying. (zdps1.c) Removes a small bit of obsolete code. (interp.c)

Streams

Fixes bugs: - An output stream that was not the last one in a pipeline could incorrectly be asked to write its EOD marker more than once. (The fix is very fragile and may have introduced new bugs.) (stream.c)

Library

Fixes bugs: - The gx_device_halftone_release procedure was declared in two different header files. (gzht.h) - Off-stack copying of gstates could lead to a situation where different parts of a single gstate were owned by different allocators; this could cause them to be freed improperly, corrupting memory. We fixed this partly by making the mixed ownership situation work, and partly by copying more of the gstate when off-stack gstates are involved. Unfortunately, the fixes are subtle and may have introduced new bugs. (gsstate.h, gsht.c, gsht1.c, gspcolor.c, gsstate.c) - If an error occurred while creating a Pattern instance, the partially initialized instance structure wasn't freed. (gspcolor.c) - Halftones and device halftones didn't allocate their clones or their subsidiary structures with the correct allocator. (gsht.c, gsht1.c) - The error statement when allocating a reference-counted object had to be a control transfer. (gsrefct.h) - Copying gstates incorrectly copied the memory and saved pointers, and the pointer to the dash pattern. (gsstate.c) - Flatness values less than 0.5 produced far more line segments than necessary (roughly the square of the required number). Fixing this may have bad effects on character quality -- this remains to be seen. (gxpflat.c) - An error during installation of a halftone could leave things in an inconsistent state. (gsht.c) - The API didn't provide enough flexibility with respect to memory management for halftones, or guarantee consistent allocation of a halftone and its subelements. (gsht1.h, gsht.c, gsht1.c, gshtscr.c) - Releasing a path didn't clear enough pointers to ensure clean garbage collection. (gxpath.c) - Finalizing or discarding a (cached) scaled font didn't properly unlink it from the scaled_fonts list. (gsfont.c) - Invoking an image operator within the BuildChar procedure for a charpath caused an infinite loop. (gsimage.c) - The bookkeeping for the scaled font cache was incorrect: the count didn't always get decremented when a scaled font was freed. (gsfont.c) - "High level" masked images were written incorrectly in the band list as black-and-white images. (gxclimag.c) - For "high level" images with fewer than 4 samples per pixel, non-standard Decode values were written incorrectly in the band list. (gxclimag.c) - The color wasn't set correctly for "high level" masked images. (gxclimag.c) - The fastest case of monobit image rendering could get a memory access error if the image lay partly outside the page. (gximage1.c) - Clipping with an empty path was a no-op, rather than clipping out everything. (gxcpath.c) Makes reference-counted objects remember which allocator owns them: this entails a NON-BACKWARD-COMPATIBLE change to some of the macros for reference counting. This was necessary to fix the off-stack gstate copying problem. (gsrefct.h, gscie.c, gscolor.c, gscolor1.c, gscolor2.c, gscsepr.c, gsstate.c, gxclread.c) Refactors the unpacking of image data, to make unpacking available as a general facility. (gximage.h, gxsample.h, gximage.c, gximage0.c, gximage1.c, gximage4.c, gxsample.c) Enhances -Z? so that before freeing an object, it checks that the object was owned by the correct allocator. (gsalloc.c)

Version 4.73 (limited) (4/19/97)

This is an incremental bug fix release made primarily to provide a synchronization point for an upcoming trip.

Documentation

Fixes bugs: - A reference to the uniprint documentation was incorrect. (current.txt) - -Olimit 1000 is not enough now for DEC Ultrix, 1200 is required; this is also required for SGI IRIX. (make.txt) Adds argument/result comments to all the operators defined in gs_lev2.ps. (Eventually we will do this for all operators defined as PostScript procedures.) (gs_lev2.ps)

Procedures

Fixes bugs: - The makefiles didn't provide a default value for GCONFIG_EXTRAS. (gs.mak)

Utilities

Fixes bugs: - pdf2ps didn't work with TrueType or compressed Type 1 fonts. (gs_pdf.ps, pdf_2ps.ps, pdf_font.ps)

Drivers

Fixes bugs: - A cast from byte to char was omitted. (gdevpdfm.c)

Platforms

Updates the VMS script (again). (vms.mak)

Interpreter

Fixes bugs: - A module that used strlen didn't include string_.h. (zdevice.c) - Because of some bad PostScript code in FrameMaker output, identity rather than unity black generation and undercolor removal functions are required on black-and-white devices. (gs_init.ps) - A harmless internal error during initialization left bogus information in $error. (gs_cidfn.ps) - startjob didn't clear the execution stack. Fixing this required NON-BACKWARD-COMPATIBLE changes to the internal operators .instopped, .stop, and .stopped, which are not supposed to be used by any external code. (startjob will still give errors if executed in a file that isn't being piped from stdin; this will take longer to fix.) (gs_init.ps, gs_lev2.ps, iref.h, imain.c, interp.c, zcontrol.c, zfile.c) Adds a new .execn operator, part of the startjob changes, that allows pushing multiple items on the exec stack. Eventually this will allow us to get rid of many dynamically created closures. (zcontrol.c)

Interpreter (PDF)

Fixes bugs: - Landscape-mode PDF files weren't rotated properly. (gs_pdf.ps, pdf_main.ps) Makes the default PDF configuration notify users more informatively when encountering an encrypted file. (pdf_sec.ps)

Streams

Makes the RunLengthEncode filter always generate optimally compressed output. We did this because we thought one of the Genoa CET files loops forever if this is not the case; but we were wrong. (srle.c)

Library

Fixes bugs: - If one coordinate of a position or distance overflowed the internal representable range, the other coordinate became garbage. (bug introduced in 4.70) (gspath.c) - The bounding box computation for strokes was slightly too large (sometimes much too large). (gxpaint.h, gdevbbox.c, gxclpath.c, gxstroke.c) Adds (under an #if 0) an experimental alternate halftone cell choice algorithm. (gshtscr.c) Adds a better comment to a particularly obscure line of C code. (gxclimag.c)

Version 4.72 (limited) (4/14/97)

This is another bug fix release, motivated mostly by Genoa testing. It also updates the new uniprint driver with a major revision, and upgrades CFF support a little bit.

Documentation

Fixes bugs: - -dNOGC only disables default automatic garbage collection, not all garbage collection. (use.txt) - Apparently a different set of flags is needed for newer H-P compilers. (make.txt) Replaces the tiny FAQ with a pointer to the on-line FAQ. (use.txt) Updates the documentation for the uniprint driver. (devices.txt) Clarifies the fact that Ghostscript reads Fontmap files from *all* directories in the search list. (use.txt) Notes that building on Linux may require SM and ICE in the list of X libraries. (make.txt)

Procedures

Fixes bugs: - An -include type42 was omitted from the level2 module description. (int.mak) - A mention of $(ECHOGS) in the rule for sfile should have been $(ECHOGS_XE). (lib.mak) - The pcx2up sample device should have been put in devs.mak rather than lib.mak. (devs.mak, lib.mak) - scanchar.h and scantab.c belong in the library, not the interpreter. (devs.mak, int.mak, lib.mak) - Some _h definitions were used before being defined, or weren't defined at all. (devs.mak, lib.mak) - The JPEG driver was missing a dependency. (devs.mak) - The PDF writer was missing a dependency. (devs.mak) - Building Level 1 systems was no longer possible. (int.mak) Updates the VMS build scripts. (vms.mak, vms-decc.mak) Adds *.upp to the list of files installed under Unix. (unix-end.mak) Adds rules to the Unix makefiles to build two library files: gs.a, consisting of the entire PostScript/PDF interpreter lacking only gs.c, and gslib.a, consisting of the graphics library without the gslib.c test driver. (ansihead.mak, cc-head.mak, gcc-head.mak, unixtail.mak)

Drivers

Fixes bugs: - The PS/EPS writers could generate a reference to an undefined name. (gdevps.c) - The PDF writer produced incorrect output for multi-level outlines. (gdevpdfm.c) - The PDF writer didn't convert /Action to /A, and /Action/Subtype to /S, in Annot dictionaries. (gdevpdfm.c) - The PDF writer didn't work in Level 1 systems. (gs_pdfwr.ps) - The PDF writer didn't transform /Rect and /R values to current user coordinates. (gs_pdfwr.ps, gdevpdfx.h, gdevpdfm.c) - The PNG writer could refer to the 3 predefined stdio files even in environments where this was undesirable. (gdevpng.c) - The PDF writer had a compiled-in limit of 100 pages of output. (gdevpdfx.h, gdevpdf.c) Updates the uniprint driver with a major revision that uses device parameters that can be set from the command line, rather than PostScript code, for configuration choices. (gdevupd.c, *.upp)

Platforms

Fixes bugs: - gp_enumerate_files_next had no way to return an error. (gp.h, gp_dosfe.c, gp_ntfs.c, gp_os2.c, gp_unifs.c, gp_vms.c) ****** NOT IMPLEMENTED YET ****** - On the Watcom platform, CPU_TYPE >= 486 didn't automatically set FPU_TYPE to 387. (wccommon.mak)

Interpreter

Fixes bugs: - Caching the current device in userdictt clear enough pointers to ensure clean garbage collection. (gxpath.c) - Finalizing or discarding a (cached) scaled font didn't properly unlink it from the scaled_fonts list. (gsfont.c) - Invoking an image operator within the BuildChar procedure for a charpath caused an infinite loop. (gsimage.c) - The bookkeeping for the scaled font cache was incorrect: the count didn't always get decremented when a scaled font was freed. (gsfont.c) - "High level" masked images were written incorrectly in the band list as black-and-white images. (gxclimag.c) - For "high level" images with fewer than 4 samples per pixel, non-standard Decode values were written incorrectly in the band list. (gxclimag.c) - The color wasn't set correctly for "high level" masked images. (gxclimag.c) - The fastest case of monobit image rendering could get a memory access error if the image lay partly outside the page. (gximage1.c) - Clipping with an empty path was a no-op, rather than clipping out everything. (gxcpath.c) Makes reference-counted objects remember which allocator owns them: this entails a NON-BACKWARD-COMPATIBLE change to some of the macros for reference counting. This was necessary to fix the off-stack gstate copying problem. (gsrefct.h, gscie.c, gscolor.c, gscolor1.c, gscolor2.c, gscsepr.c, gsstate.c, gxclread.c) Refactors the unpacking of image data, to make unpacking available as a general facility. (gximage.h, gxsample.h, gximage.c, gximage0.c, gximage1.c, gximage4.c, gxsample.c) Enhances -Z? so that before freeing an object, it checks that the object was owned by the correct allocator. (gsalloc.c)

Version 4.73 (limited) (4/19/97)

This is an incremental bug fix release made primarily to provide a synchronization point for an upcoming trip.

Documentation

Fixes bugs: - A reference to the uniprint documentation was incorrect. (current.txt) - -Olimit 1000 is not enough now for DEC Ultrix, 1200 is required; this is also required for SGI IRIX. (make.txt) Adds argument/result comments to all the operators defined in gs_lev2.ps. (Eventually we will do this for all operators defined as PostScript procedures.) (gs_lev2.ps)

Procedures

Fixes bugs: - The makefiles didn't provide a default value for GCONFIG_EXTRAS. (gs.mak)

Utilities

Fixes bugs: - pdf2ps didn't work with TrueType or compressed Type 1 fonts. (gs_pdf.ps, pdf_2ps.ps, pdf_font.ps)

Drivers

Fixes bugs: - A cast from byte to char was omitted. (gdevpdfm.c)

Platforms

Updates the VMS script (again). (vms.mak)

Interpreter

Fixes bugs: - A module that used strlen didn't include string_.h. (zdevice.c) - Because of some bad PostScript code in FrameMaker output, identity rather than unity black generation and undercolor removal functions are required on black-and-white devices. (gs_init.ps) - A harmless internal error during initialization left bogus information in $error. (gs_cidfn.ps) - startjob didn't clear the execution stack. Fixing this required NON-BACKWARD-COMPATIBLE changes to the internal operators .instopped, .stop, and .stopped, which are not supposed to be used by any external code. (startjob will still give errors if executed in a file that isn't being piped from stdin; this will take longer to fix.) (gs_init.ps, gs_lev2.ps, iref.h, imain.c, interp.c, zcontrol.c, zfile.c) Adds a new .execn operator, part of the startjob changes, that allows pushing multiple items on the exec stack. Eventually this will allow us to get rid of many dynamically created closures. (zcontrol.c)

Interpreter (PDF)

Fixes bugs: - Landscape-mode PDF files weren't rotated properly. (gs_pdf.ps, pdf_main.ps) Makes the default PDF configuration notify users more informatively when encountering an encrypted file. (pdf_sec.ps)

Streams

Makes the RunLengthEncode filter always generate optimally compressed output. We did this because we thought one of the Genoa CET files loops forever if this is not the case; but we were wrong. (srle.c)

Library

Fixes bugs: - If one coordinate of a position or distance overflowed the internal representable range, the other coordinate became garbage. (bug introduced in 4.70) (gspath.c) - The bounding box computation for strokes was slightly too large (sometimes much too large). (gxpaint.h, gdevbbox.c, gxclpath.c, gxstroke.c) Adds (under an #if 0) an experimental alternate halftone cell choice algorithm. (gshtscr.c) Adds a better comment to a particularly obscure line of C code. (gxclimag.c)

Version 4.72 (limited) (4/14/97)

This is another bug fix release, motivated mostly by Genoa testing. It also updates the new uniprint driver with a major revision, and upgrades CFF support a little bit.

Documentation

Fixes bugs: - -dNOGC only disables default automatic garbage collection, not all garbage collection. (use.txt) - Apparently a different set of flags is needed for newer H-P compilers. (make.txt) Replaces the tiny FAQ with a pointer to the on-line FAQ. (use.txt) Updates the documentation for the uniprint driver. (devices.txt) Clarifies the fact that Ghostscript reads Fontmap files from *all* directories in the search list. (use.txt) Notes that building on Linux may require SM and ICE in the list of X libraries. (make.txt)

Procedures

Fixes bugs: - An -include type42 was omitted from the level2 module description. (int.mak) - A mention of $(ECHOGS) in the rule for sfile should have been $(ECHOGS_XE). (lib.mak) - The pcx2up sample device should have been put in devs.mak rather than lib.mak. (devs.mak, lib.mak) - scanchar.h and scantab.c belong in the library, not the interpreter. (devs.mak, int.mak, lib.mak) - Some _h definitions were used before being defined, or weren't defined at all. (devs.mak, lib.mak) - The JPEG driver was missing a dependency. (devs.mak) - The PDF writer was missing a dependency. (devs.mak) - Building Level 1 systems was no longer possible. (int.mak) Updates the VMS build scripts. (vms.mak, vms-decc.mak) Adds *.upp to the list of files installed under Unix. (unix-end.mak) Adds rules to the Unix makefiles to build two library files: gs.a, consisting of the entire PostScript/PDF interpreter lacking only gs.c, and gslib.a, consisting of the graphics library without the gslib.c test driver. (ansihead.mak, cc-head.mak, gcc-head.mak, unixtail.mak)

Drivers

Fixes bugs: - The PS/EPS writers could generate a reference to an undefined name. (gdevps.c) - The PDF writer produced incorrect output for multi-level outlines. (gdevpdfm.c) - The PDF writer didn't convert /Action to /A, and /Action/Subtype to /S, in Annot dictionaries. (gdevpdfm.c) - The PDF writer didn't work in Level 1 systems. (gs_pdfwr.ps) - The PDF writer didn't transform /Rect and /R values to current user coordinates. (gs_pdfwr.ps, gdevpdfx.h, gdevpdfm.c) - The PNG writer could refer to the 3 predefined stdio files even in environments where this was undesirable. (gdevpng.c) - The PDF writer had a compiled-in limit of 100 pages of output. (gdevpdfx.h, gdevpdf.c) Updates the uniprint driver with a major revision that uses device parameters that can be set from the command line, rather than PostScript code, for configuration choices. (gdevupd.c, *.upp)

Platforms

Fixes bugs: - gp_enumerate_files_next had no way to return an error. (gp.h, gp_dosfe.c, gp_ntfs.c, gp_os2.c, gp_unifs.c, gp_vms.c) ****** NOT IMPLEMENTED YET ****** - On the Watcom platform, CPU_TYPE >= 486 didn't automatically set FPU_TYPE to 387. (wccommon.mak)

Interpreter

Fixes bugs: - Caching the current device in userdictt clear enough pointers to ensure clean garbage collection. (gxpath.c) - Finalizing or discarding a (cached) scaled font didn't properly unlink it from the scaled_fonts list. (gsfont.c) - Invoking an image operator within the BuildChar procedure for a charpath caused an infinite loop. (gsimage.c) - The bookkeeping for the scaled font cache was incorrect: the count didn't always get decremented when a scaled font was freed. (gsfont.c) - "High level" masked images were written incorrectly in the band list as black-and-white images. (gxclimag.c) - For "high level" images with fewer than 4 samples per pixel, non-standard Decode values were written incorrectly in the band list. (gxclimag.c) - The color wasn't set correctly for "high level" masked images. (gxclimag.c) - The fastest case of monobit image rendering could get a memory access error if the image lay partly outside the page. (gximage1.c) - Clipping with an empty path was a no-op, rather than clipping out everything. (gxcpath.c) Makes reference-counted objects remember which allocator owns them: this entails a NON-BACKWARD-COMPATIBLE change to some of the macros for reference counting. This was necessary to fix the off-stack gstate copying problem. (gsrefct.h, gscie.c, gscolor.c, gscolor1.c, gscolor2.c, gscsepr.c, gsstate.c, gxclread.c) Refactors the unpacking of image data, to make unpacking available as a general facility. (gximage.h, gxsample.h, gximage.c, gximage0.c, gximage1.c, gximage4.c, gxsample.c) Enhances -Z? so that before freeing an object, it checks that the object was owned by the correct allocator. (gsalloc.c)

Version 4.73 (limited) (4/19/97)

This is an incremental bug fix release made primarily to provide a synchronization point for an upcoming trip.

Documentation

Fixes bugs: - A reference to the uniprint documentation was incorrect. (current.txt) - -Olimit 1000 is not enough now for DEC Ultrix, 1200 is required; this is also required for SGI IRIX. (make.txt) Adds argument/result comments to all the operators defined in gs_lev2.ps. (Eventually we will do this for all operators defined as PostScript procedures.) (gs_lev2.ps)

Procedures

Fixes bugs: - The makefiles didn't provide a default value for GCONFIG_EXTRAS. (gs.mak)

Utilities

Fixes bugs: - pdf2ps didn't work with TrueType or compressed Type 1 fonts. (gs_pdf.ps, pdf_2ps.ps, pdf_font.ps)

Drivers

Fixes bugs: - A cast from byte to char was omitted. (gdevpdfm.c)

Platforms

Updates the VMS script (again). (vms.mak)

Interpreter

Fixes bugs: - A module that used strlen didn't include string_.h. (zdevice.c) - Because of some bad PostScript code in FrameMaker output, identity rather than unity black generation and undercolor removal functions are required on black-and-white devices. (gs_init.ps) - A harmless internal error during initialization left bogus information in $error. (gs_cidfn.ps) - startjob didn't clear the execution stack. Fixing this required NON-BACKWARD-COMPATIBLE changes to the internal operators .instopped, .stop, and .stopped, which are not supposed to be used by any external code. (startjob will still give errors if executed in a file that isn't being piped from stdin; this will take longer to fix.) (gs_init.ps, gs_lev2.ps, iref.h, imain.c, interp.c, zcontrol.c, zfile.c) Adds a new .execn operator, part of the startjob changes, that allows pushing multiple items on the exec stack. Eventually this will allow us to get rid of many dynamically created closures. (zcontrol.c)

Interpreter (PDF)

Fixes bugs: - Landscape-mode PDF files weren't rotated properly. (gs_pdf.ps, pdf_main.ps) Makes the default PDF configuration notify users more informatively when encountering an encrypted file. (pdf_sec.ps)

Streams

Makes the RunLengthEncode filter always generate optimally compressed output. We did this because we thought one of the Genoa CET files loops forever if this is not the case; but we were wrong. (srle.c)

Library

Fixes bugs: - If one coordinate of a position or distance overflowed the internal representable range, the other coordinate became garbage. (bug introduced in 4.70) (gspath.c) - The bounding box computation for strokes was slightly too large (sometimes much too large). (gxpaint.h, gdevbbox.c, gxclpath.c, gxstroke.c) Adds (under an #if 0) an experimental alternate halftone cell choice algorithm. (gshtscr.c) Adds a better comment to a particularly obscure line of C code. (gxclimag.c)

Version 4.72 (limited) (4/14/97)

This is another bug fix release, motivated mostly by Genoa testing. It also updates the new uniprint driver with a major revision, and upgrades CFF support a little bit.

Documentation

Fixes bugs: - -dNOGC only disables default automatic garbage collection, not all garbage collection. (use.txt) - Apparently a different set of flags is needed for newer H-P compilers. (make.txt) Replaces the tiny FAQ with a pointer to the on-line FAQ. (use.txt) Updates the documentation for the uniprint driver. (devices.txt) Clarifies the fact that Ghostscript reads Fontmap files from *all* directories in the search list. (use.txt) Notes that building on Linux may require SM and ICE in the list of X libraries. (make.txt)

Procedures

Fixes bugs: - An -include type42 was omitted from the level2 module description. (int.mak) - A mention of $(ECHOGS) in the rule for sfile should have been $(ECHOGS_XE). (lib.mak) - The pcx2up sample device should have been put in devs.mak rather than lib.mak. (devs.mak, lib.mak) - scanchar.h and scantab.c belong in the library, not the interpreter. (devs.mak, int.mak, lib.mak) - Some _h definitions were used before being defined, or weren't defined at all. (devs.mak, lib.mak) - The JPEG driver was missing a dependency. (devs.mak) - The PDF writer was missing a dependency. (devs.mak) - Building Level 1 systems was no longer possible. (int.mak) Updates the VMS build scripts. (vms.mak, vms-decc.mak) Adds *.upp to the list of files installed under Unix. (unix-end.mak) Adds rules to the Unix makefiles to build two library files: gs.a, consisting of the entire PostScript/PDF interpreter lacking only gs.c, and gslib.a, consisting of the graphics library without the gslib.c test driver. (ansihead.mak, cc-head.mak, gcc-head.mak, unixtail.mak)

Drivers

Fixes bugs: - The PS/EPS writers could generate a reference to an undefined name. (gdevps.c) - The PDF writer produced incorrect output for multi-level outlines. (gdevpdfm.c) - The PDF writer didn't convert /Action to /A, and /Action/Subtype to /S, in Annot dictionaries. (gdevpdfm.c) - The PDF writer didn't work in Level 1 systems. (gs_pdfwr.ps) - The PDF writer didn't transform /Rect and /R values to current user coordinates. (gs_pdfwr.ps, gdevpdfx.h, gdevpdfm.c) - The PNG writer could refer to the 3 predefined stdio files even in environments where this was undesirable. (gdevpng.c) - The PDF writer had a compiled-in limit of 100 pages of output. (gdevpdfx.h, gdevpdf.c) Updates the uniprint driver with a major revision that uses device parameters that can be set from the command line, rather than PostScript code, for configuration choices. (gdevupd.c, *.upp)

Platforms

Fixes bugs: - gp_enumerate_files_next had no way to return an error. (gp.h, gp_dosfe.c, gp_ntfs.c, gp_os2.c, gp_unifs.c, gp_vms.c) ****** NOT IMPLEMENTED YET ****** - On the Watcom platform, CPU_TYPE >= 486 didn't automatically set FPU_TYPE to 387. (wccommon.mak)

Interpreter

Fixes bugs: - Caching the current device in userdictt clear enough pointers to ensure clean garbage collection. (gxpath.c) - Finalizing or discarding a (cached) scaled font didn't properly unlink it from the scaled_fonts list. (gsfont.c) - Invoking an image operator within the BuildChar procedure for a charpath caused an infinite loop. (gsimage.c) - The bookkeeping for the scaled font cache was incorrect: the count didn't always get decremented when a scaled font was freed. (gsfont.c) - "High level" masked images were written incorrectly in the band list as black-and-white images. (gxclimag.c) - For "high level" images with fewer than 4 samples per pixel, non-standard Decode values were written incorrectly in the band list. (gxclimag.c) - The color wasn't set correctly for "high level" masked images. (gxclimag.c) - The fastest case of monobit image rendering could get a memory access error if the image lay partly outside the page. (gximage1.c) - Clipping with an empty path was a no-op, rather than clipping out everything. (gxcpath.c) Makes reference-counted objects remember which allocator owns them: this entails a NON-BACKWARD-COMPATIBLE change to some of the macros for reference counting. This was necessary to fix the off-stack gstate copying problem. (gsrefct.h, gscie.c, gscolor.c, gscolor1.c, gscolor2.c, gscsepr.c, gsstate.c, gxclread.c) Refactors the unpacking of image data, to make unpacking available as a general facility. (gximage.h, gxsample.h, gximage.c, gximage0.c, gximage1.c, gximage4.c, gxsample.c) Enhances -Z? so that before freeing an object, it checks that the object was owned by the correct allocator. (gsalloc.c)

Version 4.73 (limited) (4/19/97)

This is an incremental bug fix release made primarily to provide a synchronization point for an upcoming trip.

Documentation

Fixes bugs: - A reference to the uniprint documentation was incorrect. (current.txt) - -Olimit 1000 is not enough now for DEC Ultrix, 1200 is required; this is also required for SGI IRIX. (make.txt) Adds argument/result comments to all the operators defined in gs_lev2.ps. (Eventually we will do this for all operators defined as PostScript procedures.) (gs_lev2.ps)

Procedures

Fixes bugs: - The makefiles didn't provide a default value for GCONFIG_EXTRAS. (gs.mak)

Utilities

Fixes bugs: - pdf2ps didn't work with TrueType or compressed Type 1 fonts. (gs_pdf.ps, pdf_2ps.ps, pdf_font.ps)

Drivers

Fixes bugs: - A cast from byte to char was omitted. (gdevpdfm.c)

Platforms

Updates the VMS script (again). (vms.mak)

Interpreter

Fixes bugs: - A module that used strlen didn't include string_.h. (zdevice.c) - Because of some bad PostScript code in FrameMaker output, identity rather than unity black generation and undercolor removal functions are required on black-and-white devices. (gs_init.ps) - A harmless internal error during initialization left bogus information in $error. (gs_cidfn.ps) - startjob didn't clear the execution stack. Fixing this required NON-BACKWARD-COMPATIBLE changes to the internal operators .instopped, .stop, and .stopped, which are not supposed to be used by any external code. (startjob will still give errors if executed in a file that isn't being piped from stdin; this will take longer to fix.) (gs_init.ps, gs_lev2.ps, iref.h, imain.c, interp.c, zcontrol.c, zfile.c) Adds a new .execn operator, part of the startjob changes, that allows pushing multiple items on the exec stack. Eventually this will allow us to get rid of many dynamically created closures. (zcontrol.c)

Interpreter (PDF)

Fixes bugs: - Landscape-mode PDF files weren't rotated properly. (gs_pdf.ps, pdf_main.ps) Makes the default PDF configuration notify users more informatively when encountering an encrypted file. (pdf_sec.ps)

Streams

Makes the RunLengthEncode filter always generate optimally compressed output. We did this because we thought one of the Genoa CET files loops forever if this is not the case; but we were wrong. (srle.c)

Library

Fixes bugs: - If one coordinate of a position or distance overflowed the internal representable range, the other coordinate became garbage. (bug introduced in 4.70) (gspath.c) - The bounding box computation for strokes was slightly too large (sometimes much too large). (gxpaint.h, gdevbbox.c, gxclpath.c, gxstroke.c) Adds (under an #if 0) an experimental alternate halftone cell choice algorithm. (gshtscr.c) Adds a better comment to a particularly obscure line of C code. (gxclimag.c)

Version 4.72 (limited) (4/14/97)

This is another bug fix release, motivated mostly by Genoa testing. It also updates the new uniprint driver with a major revision, and upgrades CFF support a little bit.

Documentation

Fixes bugs: - -dNOGC only disables default automatic garbage collection, not all garbage collection. (use.txt) - Apparently a different set of flags is needed for newer H-P compilers. (make.txt) Replaces the tiny FAQ with a pointer to the on-line FAQ. (use.txt) Updates the documentation for the uniprint driver. (devices.txt) Clarifies the fact that Ghostscript reads Fontmap files from *all* directories in the search list. (use.txt) Notes that building on Linux may require SM and ICE in the list of X libraries. (make.txt)

Procedures

Fixes bugs: - An -include type42 was omitted from the level2 module description. (int.mak) - A mention of $(ECHOGS) in the rule for sfile should have been $(ECHOGS_XE). (lib.mak) - The pcx2up sample device should have been put in devs.mak rather than lib.mak. (devs.mak, lib.mak) - scanchar.h and scantab.c belong in the library, not the interpreter. (devs.mak, int.mak, lib.mak) - Some _h definitions were used before being defined, or weren't defined at all. (devs.mak, lib.mak) - The JPEG driver was missing a dependency. (devs.mak) - The PDF writer was missing a dependency. (devs.mak) - Building Level 1 systems was no longer possible. (int.mak) Updates the VMS build scripts. (vms.mak, vms-decc.mak) Adds *.upp to the list of files installed under Unix. (unix-end.mak) Adds rules to the Unix makefiles to build two library files: gs.a, consisting of the entire PostScript/PDF interpreter lacking only gs.c, and gslib.a, consisting of the graphics library without the gslib.c test driver. (ansihead.mak, cc-head.mak, gcc-head.mak, unixtail.mak)

Drivers

Fixes bugs: - The PS/EPS writers could generate a reference to an undefined name. (gdevps.c) - The PDF writer produced incorrect output for multi-level outlines. (gdevpdfm.c) - The PDF writer didn't convert /Action to /A, and /Action/Subtype to /S, in Annot dictionaries. (gdevpdfm.c) - The PDF writer didn't work in Level 1 systems. (gs_pdfwr.ps) - The PDF writer didn't transform /Rect and /R values to current user coordinates. (gs_pdfwr.ps, gdevpdfx.h, gdevpdfm.c) - The PNG writer could refer to the 3 predefined stdio files even in environments where this was undesirable. (gdevpng.c) - The PDF writer had a compiled-in limit of 100 pages of output. (gdevpdfx.h, gdevpdf.c) Updates the uniprint driver with a major revision that uses device parameters that can be set from the command line, rather than PostScript code, for configuration choices. (gdevupd.c, *.upp)

Platforms

Fixes bugs: - gp_enumerate_files_next had no way to return an error. (gp.h, gp_dosfe.c, gp_ntfs.c, gp_os2.c, gp_unifs.c, gp_vms.c) ****** NOT IMPLEMENTED YET ****** - On the Watcom platform, CPU_TYPE >= 486 didn't automatically set FPU_TYPE to 387. (wccommon.mak)

Interpreter

Fixes bugs: - Caching the current device in userdictt clear enough pointers to ensure clean garbage collection. (gxpath.c) - Finalizing or discarding a (cached) scaled font didn't properly unlink it from the scaled_fonts list. (gsfont.c) - Invoking an image operator within the BuildChar procedure for a charpath caused an infinite loop. (gsimage.c) - The bookkeeping for the scaled font cache was incorrect: the count didn't always get decremented when a scaled font was freed. (gsfont.c) - "High level" masked images were written incorrectly in the band list as black-and-white images. (gxclimag.c) - For "high level" images with fewer than 4 samples per pixel, non-standard Decode values were written incorrectly in the band list. (gxclimag.c) - The color wasn't set correctly for "high level" masked images. (gxclimag.c) - The fastest case of monobit image rendering could get a memory access error if the image lay partly outside the page. (gximage1.c) - Clipping with an empty path was a no-op, rather than clipping out everything. (gxcpath.c) Makes reference-counted objects remember which allocator owns them: this entails a NON-BACKWARD-COMPATIBLE change to some of the macros for reference counting. This was necessary to fix the off-stack gstate copying problem. (gsrefct.h, gscie.c, gscolor.c, gscolor1.c, gscolor2.c, gscsepr.c, gsstate.c, gxclread.c) Refactors the unpacking of image data, to make unpacking available as a general facility. (gximage.h, gxsample.h, gximage.c, gximage0.c, gximage1.c, gximage4.c, gxsample.c) Enhances -Z? so that before freeing an object, it checks that the object was owned by the correct allocator. (gsalloc.c)

Version 4.73 (limited) (4/19/97)

This is an incremental bug fix release made primarily to provide a synchronization point for an upcoming trip.

Documentation

Fixes bugs: - A reference to the uniprint documentation was incorrect. (current.txt) - -Olimit 1000 is not enough now for DEC Ultrix, 1200 is required; this is also required for SGI IRIX. (make.txt) Adds argument/result comments to all the operators defined in gs_lev2.ps. (Eventually we will do this for all operators defined as PostScript procedures.) (gs_lev2.ps)

Procedures

Fixes bugs: - The makefiles didn't provide a default value for GCONFIG_EXTRAS. (gs.mak)

Utilities

Fixes bugs: - pdf2ps didn't work with TrueType or compressed Type 1 fonts. (gs_pdf.ps, pdf_2ps.ps, pdf_font.ps)

Drivers

Fixes bugs: - A cast from byte to char was omitted. (gdevpdfm.c)

Platforms

Updates the VMS script (again). (vms.mak)

Interpreter

Fixes bugs: - A module that used strlen didn't include string_.h. (zdevice.c) - Because of some bad PostScript code in FrameMaker output, identity rather than unity black generation and undercolor removal functions are required on black-and-white devices. (gs_init.ps) - A harmless internal error during initialization left bogus information in $error. (gs_cidfn.ps) - startjob didn't clear the execution stack. Fixing this required NON-BACKWARD-COMPATIBLE changes to the internal operators .instopped, .stop, and .stopped, which are not supposed to be used by any external code. (startjob will still give errors if executed in a file that isn't being piped from stdin; this will take longer to fix.) (gs_init.ps, gs_lev2.ps, iref.h, imain.c, interp.c, zcontrol.c, zfile.c) Adds a new .execn operator, part of the startjob changes, that allows pushing multiple items on the exec stack. Eventually this will allow us to get rid of many dynamically created closures. (zcontrol.c)

Interpreter (PDF)

Fixes bugs: - Landscape-mode PDF files weren't rotated properly. (gs_pdf.ps, pdf_main.ps) Makes the default PDF configuration notify users more informatively when encountering an encrypted file. (pdf_sec.ps)

Streams

Makes the RunLengthEncode filter always generate optimally compressed output. We did this because we thought one of the Genoa CET files loops forever if this is not the case; but we were wrong. (srle.c)

Library

Fixes bugs: - If one coordinate of a position or distance overflowed the internal representable range, the other coordinate became garbage. (bug introduced in 4.70) (gspath.c) - The bounding box computation for strokes was slightly too large (sometimes much too large). (gxpaint.h, gdevbbox.c, gxclpath.c, gxstroke.c) Adds (under an #if 0) an experimental alternate halftone cell choice algorithm. (gshtscr.c) Adds a better comment to a particularly obscure line of C code. (gxclimag.c)

Version 4.72 (limited) (4/14/97)

This is another bug fix release, motivated mostly by Genoa testing. It also updates the new uniprint driver with a major revision, and upgrades CFF support a little bit.

Documentation

Fixes bugs: - -dNOGC only disables default automatic garbage collection, not all garbage collection. (use.txt) - Apparently a different set of flags is needed for newer H-P compilers. (make.txt) Replaces the tiny FAQ with a pointer to the on-line FAQ. (use.txt) Updates the documentation for the uniprint driver. (devices.txt) Clarifies the fact that Ghostscript reads Fontmap files from *all* directories in the search list. (use.txt) Notes that building on Linux may require SM and ICE in the list of X libraries. (make.txt)

Procedures

Fixes bugs: - An -include type42 was omitted from the level2 module description. (int.mak) - A mention of $(ECHOGS) in the rule for sfile should have been $(ECHOGS_XE). (lib.mak) - The pcx2up sample device should have been put in devs.mak rather than lib.mak. (devs.mak, lib.mak) - scanchar.h and scantab.c belong in the library, not the interpreter. (devs.mak, int.mak, lib.mak) - Some _h definitions were used before being defined, or weren't defined at all. (devs.mak, lib.mak) - The JPEG driver was missing a dependency. (devs.mak) - The PDF writer was missing a dependency. (devs.mak) - Building Level 1 systems was no longer possible. (int.mak) Updates the VMS build scripts. (vms.mak, vms-decc.mak) Adds *.upp to the list of files installed under Unix. (unix-end.mak) Adds rules to the Unix makefiles to build two library files: gs.a, consisting of the entire PostScript/PDF interpreter lacking only gs.c, and gslib.a, consisting of the graphics library without the gslib.c test driver. (ansihead.mak, cc-head.mak, gcc-head.mak, unixtail.mak)

Drivers

Fixes bugs: - The PS/EPS writers could generate a reference to an undefined name. (gdevps.c) - The PDF writer produced incorrect output for multi-level outlines. (gdevpdfm.c) - The PDF writer didn't convert /Action to /A, and /Action/Subtype to /S, in Annot dictionaries. (gdevpdfm.c) - The PDF writer didn't work in Level 1 systems. (gs_pdfwr.ps) - The PDF writer didn't transform /Rect and /R values to current user coordinates. (gs_pdfwr.ps, gdevpdfx.h, gdevpdfm.c) - The PNG writer could refer to the 3 predefined stdio files even in environments where this was undesirable. (gdevpng.c) - The PDF writer had a compiled-in limit of 100 pages of output. (gdevpdfx.h, gdevpdf.c) Updates the uniprint driver with a major revision that uses device parameters that can be set from the command line, rather than PostScript code, for configuration choices. (gdevupd.c, *.upp)

Platforms

Fixes bugs: - gp_enumerate_files_next had no way to return an error. (gp.h, gp_dosfe.c, gp_ntfs.c, gp_os2.c, gp_unifs.c, gp_vms.c) ****** NOT IMPLEMENTED YET ****** - On the Watcom platform, CPU_TYPE >= 486 didn't automatically set FPU_TYPE to 387. (wccommon.mak)

Interpreter

Fixes bugs: - Caching the current device in userdictt clear enough pointers to ensure clean garbage collection. (gxpath.c) - Finalizing or discarding a (cached) scaled font didn't properly unlink it from the scaled_fonts list. (gsfont.c) - Invoking an image operator within the BuildChar procedure for a charpath caused an infinite loop. (gsimage.c) - The bookkeeping for the scaled font cache was incorrect: the count didn't always get decremented when a scaled font was freed. (gsfont.c) - "High level" masked images were written incorrectly in the band list as black-and-white images. (gxclimag.c) - For "high level" images with fewer than 4 samples per pixel, non-standard Decode values were written incorrectly in the band list. (gxclimag.c) - The color wasn't set correctly for "high level" masked images. (gxclimag.c) - The fastest case of monobit image rendering could get a memory access error if the image lay partly outside the page. (gximage1.c) - Clipping with an empty path was a no-op, rather than clipping out everything. (gxcpath.c) Makes reference-counted objects remember which allocator owns them: this entails a NON-BACKWARD-COMPATIBLE change to some of the macros for reference counting. This was necessary to fix the off-stack gstate copying problem. (gsrefct.h, gscie.c, gscolor.c, gscolor1.c, gscolor2.c, gscsepr.c, gsstate.c, gxclread.c) Refactors the unpacking of image data, to make unpacking available as a general facility. (gximage.h, gxsample.h, gximage.c, gximage0.c, gximage1.c, gximage4.c, gxsample.c) Enhances -Z? so that before freeing an object, it checks that the object was owned by the correct allocator. (gsalloc.c)

Version 4.73 (limited) (4/19/97)

This is an incremental bug fix release made primarily to provide a synchronization point for an upcoming trip.

Documentation

Fixes bugs: - A reference to the uniprint documentation was incorrect. (current.txt) - -Olimit 1000 is not enough now for DEC Ultrix, 1200 is required; this is also required for SGI IRIX. (make.txt) Adds argument/result comments to all the operators defined in gs_lev2.ps. (Eventually we will do this for all operators defined as PostScript procedures.) (gs_lev2.ps)

Procedures

Fixes bugs: - The makefiles didn't provide a default value for GCONFIG_EXTRAS. (gs.mak)

Utilities

Fixes bugs: - pdf2ps didn't work with TrueType or compressed Type 1 fonts. (gs_pdf.ps, pdf_2ps.ps, pdf_font.ps)

Drivers

Fixes bugs: - A cast from byte to char was omitted. (gdevpdfm.c)

Platforms

Updates the VMS script (again). (vms.mak)

Interpreter

Fixes bugs: - A module that used strlen didn't include string_.h. (zdevice.c) - Because of some bad PostScript code in FrameMaker output, identity rather than unity black generation and undercolor removal functions are required on black-and-white devices. (gs_init.ps) - A harmless internal error during initialization left bogus information in $error. (gs_cidfn.ps) - startjob didn't clear the execution stack. Fixing this required NON-BACKWARD-COMPATIBLE changes to the internal operators .instopped, .stop, and .stopped, which are not supposed to be used by any external code. (startjob will still give errors if executed in a file that isn't being piped from stdin; this will take longer to fix.) (gs_init.ps, gs_lev2.ps, iref.h, imain.c, interp.c, zcontrol.c, zfile.c) Adds a new .execn operator, part of the startjob changes, that allows pushing multiple items on the exec stack. Eventually this will allow us to get rid of many dynamically created closures. (zcontrol.c)

Interpreter (PDF)

Fixes bugs: - Landscape-mode PDF files weren't rotated properly. (gs_pdf.ps, pdf_main.ps) Makes the default PDF configuration notify users more informatively when encountering an encrypted file. (pdf_sec.ps)

Streams

Makes the RunLengthEncode filter always generate optimally compressed output. We did this because we thought one of the Genoa CET files loops forever if this is not the case; but we were wrong. (srle.c)

Library

Fixes bugs: - If one coordinate of a position or distance overflowed the internal representable range, the other coordinate became garbage. (bug introduced in 4.70) (gspath.c) - The bounding box computation for strokes was slightly too large (sometimes much too large). (gxpaint.h, gdevbbox.c, gxclpath.c, gxstroke.c) Adds (under an #if 0) an experimental alternate halftone cell choice algorithm. (gshtscr.c) Adds a better comment to a particularly obscure line of C code. (gxclimag.c)

Version 4.72 (limited) (4/14/97)

This is another bug fix release, motivated mostly by Genoa testing. It also updates the new uniprint driver with a major revision, and upgrades CFF support a little bit.

Documentation

Fixes bugs: - -dNOGC only disables default automatic garbage collection, not all garbage collection. (use.txt) - Apparently a different set of flags is needed for newer H-P compilers. (make.txt) Replaces the tiny FAQ with a pointer to the on-line FAQ. (use.txt) Updates the documentation for the uniprint driver. (devices.txt) Clarifies the fact that Ghostscript reads Fontmap files from *all* directories in the search list. (use.txt) Notes that building on Linux may require SM and ICE in the list of X libraries. (make.txt)

Procedures

Fixes bugs: - An -include type42 was omitted from the level2 module description. (int.mak) - A mention of $(ECHOGS) in the rule for sfile should have been $(ECHOGS_XE). (lib.mak) - The pcx2up sample device should have been put in devs.mak rather than lib.mak. (devs.mak, lib.mak) - scanchar.h and scantab.c belong in the library, not the interpreter. (devs.mak, int.mak, lib.mak) - Some _h definitions were used before being defined, or weren't defined at all. (devs.mak, lib.mak) - The JPEG driver was missing a dependency. (devs.mak) - The PDF writer was missing a dependency. (devs.mak) - Building Level 1 systems was no longer possible. (int.mak) Updates the VMS build scripts. (vms.mak, vms-decc.mak) Adds *.upp to the list of files installed under Unix. (unix-end.mak) Adds rules to the Unix makefiles to build two library files: gs.a, consisting of the entire PostScript/PDF interpreter lacking only gs.c, and gslib.a, consisting of the graphics library without the gslib.c test driver. (ansihead.mak, cc-head.mak, gcc-head.mak, unixtail.mak)

Drivers

Fixes bugs: - The PS/EPS writers could generate a reference to an undefined name. (gdevps.c) - The PDF writer produced incorrect output for multi-level outlines. (gdevpdfm.c) - The PDF writer didn't convert /Action to /A, and /Action/Subtype to /S, in Annot dictionaries. (gdevpdfm.c) - The PDF writer didn't work in Level 1 systems. (gs_pdfwr.ps) - The PDF writer didn't transform /Rect and /R values to current user coordinates. (gs_pdfwr.ps, gdevpdfx.h, gdevpdfm.c) - The PNG writer could refer to the 3 predefined stdio files even in environments where this was undesirable. (gdevpng.c) - The PDF writer had a compiled-in limit of 100 pages of output. (gdevpdfx.h, gdevpdf.c) Updates the uniprint driver with a major revision that uses device parameters that can be set from the command line, rather than PostScript code, for configuration choices. (gdevupd.c, *.upp)

Platforms

Fixes bugs: - gp_enumerate_files_next had no way to return an error. (gp.h, gp_dosfe.c, gp_ntfs.c, gp_os2.c, gp_unifs.c, gp_vms.c) ****** NOT IMPLEMENTED YET ****** - On the Watcom platform, CPU_TYPE >= 486 didn't automatically set FPU_TYPE to 387. (wccommon.mak)

Interpreter

Fixes bugs: - Caching the current device in userdictt clear enough pointers to ensure clean garbage collection. (gxpath.c) - Finalizing or discarding a (cached) scaled font didn't properly unlink it from the scaled_fonts list. (gsfont.c) - Invoking an image operator within the BuildChar procedure for a charpath caused an infinite loop. (gsimage.c) - The bookkeeping for the scaled font cache was incorrect: the count didn't always get decremented when a scaled font was freed. (gsfont.c) - "High level" masked images were written incorrectly in the band list as black-and-white images. (gxclimag.c) - For "high level" images with fewer than 4 samples per pixel, non-standard Decode values were written incorrectly in the band list. (gxclimag.c) - The color wasn't set correctly for "high level" masked images. (gxclimag.c) - The fastest case of monobit image rendering could get a memory access error if the image lay partly outside the page. (gximage1.c) - Clipping with an empty path was a no-op, rather than clipping out everything. (gxcpath.c) Makes reference-counted objects remember which allocator owns them: this entails a NON-BACKWARD-COMPATIBLE change to some of the macros for reference counting. This was necessary to fix the off-stack gstate copying problem. (gsrefct.h, gscie.c, gscolor.c, gscolor1.c, gscolor2.c, gscsepr.c, gsstate.c, gxclread.c) Refactors the unpacking of image data, to make unpacking available as a general facility. (gximage.h, gxsample.h, gximage.c, gximage0.c, gximage1.c, gximage4.c, gxsample.c) Enhances -Z? so that before freeing an object, it checks that the object was owned by the correct allocator. (gsalloc.c)

Version 4.73 (limited) (4/19/97)

This is an incremental bug fix release made primarily to provide a synchronization point for an upcoming trip.

Documentation

Fixes bugs: - A reference to the uniprint documentation was incorrect. (current.txt) - -Olimit 1000 is not enough now for DEC Ultrix, 1200 is required; this is also required for SGI IRIX. (make.txt) Adds argument/result comments to all the operators defined in gs_lev2.ps. (Eventually we will do this for all operators defined as PostScript procedures.) (gs_lev2.ps)

Procedures

Fixes bugs: - The makefiles didn't provide a default value for GCONFIG_EXTRAS. (gs.mak)

Utilities

Fixes bugs: - pdf2ps didn't work with TrueType or compressed Type 1 fonts. (gs_pdf.ps, pdf_2ps.ps, pdf_font.ps)

Drivers

Fixes bugs: - A cast from byte to char was omitted. (gdevpdfm.c)

Platforms

Updates the VMS script (again). (vms.mak)

Interpreter

Fixes bugs: - A module that used strlen didn't include string_.h. (zdevice.c) - Because of some bad PostScript code in FrameMaker output, identity rather than unity black generation and undercolor removal functions are required on black-and-white devices. (gs_init.ps) - A harmless internal error during initialization left bogus information in $error. (gs_cidfn.ps) - startjob didn't clear the execution stack. Fixing this required NON-BACKWARD-COMPATIBLE changes to the internal operators .instopped, .stop, and .stopped, which are not supposed to be used by any external code. (startjob will still give errors if executed in a file that isn't being piped from stdin; this will take longer to fix.) (gs_init.ps, gs_lev2.ps, iref.h, imain.c, interp.c, zcontrol.c, zfile.c) Adds a new .execn operator, part of the startjob changes, that allows pushing multiple items on the exec stack. Eventually this will allow us to get rid of many dynamically created closures. (zcontrol.c)

Interpreter (PDF)

Fixes bugs: - Landscape-mode PDF files weren't rotated properly. (gs_pdf.ps, pdf_main.ps) Makes the default PDF configuration notify users more informatively when encountering an encrypted file. (pdf_sec.ps)

Streams

Makes the RunLengthEncode filter always generate optimally compressed output. We did this because we thought one of the Genoa CET files loops forever if this is not the case; but we were wrong. (srle.c)

Library

Fixes bugs: - If one coordinate of a position or distance overflowed the internal representable range, the other coordinate became garbage. (bug introduced in 4.70) (gspath.c) - The bounding box computation for strokes was slightly too large (sometimes much too large). (gxpaint.h, gdevbbox.c, gxclpath.c, gxstroke.c) Adds (under an #if 0) an experimental alternate halftone cell choice algorithm. (gshtscr.c) Adds a better comment to a particularly obscure line of C code. (gxclimag.c)

Version 4.72 (limited) (4/14/97)

This is another bug fix release, motivated mostly by Genoa testing. It also updates the new uniprint driver with a major revision, and upgrades CFF support a little bit.

Documentation

Fixes bugs: - -dNOGC only disables default automatic garbage collection, not all garbage collection. (use.txt) - Apparently a different set of flags is needed for newer H-P compilers. (make.txt) Replaces the tiny FAQ with a pointer to the on-line FAQ. (use.txt) Updates the documentation for the uniprint driver. (devices.txt) Clarifies the fact that Ghostscript reads Fontmap files from *all* directories in the search list. (use.txt) Notes that building on Linux may require SM and ICE in the list of X libraries. (make.txt)

Procedures

Fixes bugs: - An -include type42 was omitted from the level2 module description. (int.mak) - A mention of $(ECHOGS) in the rule for sfile should have been $(ECHOGS_XE). (lib.mak) - The pcx2up sample device should have been put in devs.mak rather than lib.mak. (devs.mak, lib.mak) - scanchar.h and scantab.c belong in the library, not the interpreter. (devs.mak, int.mak, lib.mak) - Some _h definitions were used before being defined, or weren't defined at all. (devs.mak, lib.mak) - The JPEG driver was missing a dependency. (devs.mak) - The PDF writer was missing a dependency. (devs.mak) - Building Level 1 systems was no longer possible. (int.mak) Updates the VMS build scripts. (vms.mak, vms-decc.mak) Adds *.upp to the list of files installed under Unix. (unix-end.mak) Adds rules to the Unix makefiles to build two library files: gs.a, consisting of the entire PostScript/PDF interpreter lacking only gs.c, and gslib.a, consisting of the graphics library without the gslib.c test driver. (ansihead.mak, cc-head.mak, gcc-head.mak, unixtail.mak)

Drivers

Fixes bugs: - The PS/EPS writers could generate a reference to an undefined name. (gdevps.c) - The PDF writer produced incorrect output for multi-level outlines. (gdevpdfm.c) - The PDF writer didn't convert /Action to /A, and /Action/Subtype to /S, in Annot dictionaries. (gdevpdfm.c) - The PDF writer didn't work in Level 1 systems. (gs_pdfwr.ps) - The PDF writer didn't transform /Rect and /R values to current user coordinates. (gs_pdfwr.ps, gdevpdfx.h, gdevpdfm.c) - The PNG writer could refer to the 3 predefined stdio files even in environments where this was undesirable. (gdevpng.c) - The PDF writer had a compiled-in limit of 100 pages of output. (gdevpdfx.h, gdevpdf.c) Updates the uniprint driver with a major revision that uses device parameters that can be set from the command line, rather than PostScript code, for configuration choices. (gdevupd.c, *.upp)

Platforms

Fixes bugs: - gp_enumerate_files_next had no way to return an error. (gp.h, gp_dosfe.c, gp_ntfs.c, gp_os2.c, gp_unifs.c, gp_vms.c) ****** NOT IMPLEMENTED YET ****** - On the Watcom platform, CPU_TYPE >= 486 didn't automatically set FPU_TYPE to 387. (wccommon.mak)

Interpreter

Fixes bugs: - Caching the current device in userdictt clear enough pointers to ensure clean garbage collection. (gxpath.c) - Finalizing or discarding a (cached) scaled font didn't properly unlink it from the scaled_fonts list. (gsfont.c) - Invoking an image operator within the BuildChar procedure for a charpath caused an infinite loop. (gsimage.c) - The bookkeeping for the scaled font cache was incorrect: the count didn't always get decremented when a scaled font was freed. (gsfont.c) - "High level" masked images were written incorrectly in the band list as black-and-white images. (gxclimag.c) - For "high level" images with fewer than 4 samples per pixel, non-standard Decode values were written incorrectly in the band list. (gxclimag.c) - The color wasn't set correctly for "high level" masked images. (gxclimag.c) - The fastest case of monobit image rendering could get a memory access error if the image lay partly outside the page. (gximage1.c) - Clipping with an empty path was a no-op, rather than clipping out everything. (gxcpath.c) Makes reference-counted objects remember which allocator owns them: this entails a NON-BACKWARD-COMPATIBLE change to some of the macros for reference counting. This was necessary to fix the off-stack gstate copying problem. (gsrefct.h, gscie.c, gscolor.c, gscolor1.c, gscolor2.c, gscsepr.c, gsstate.c, gxclread.c) Refactors the unpacking of image data, to make unpacking available as a general facility. (gximage.h, gxsample.h, gximage.c, gximage0.c, gximage1.c, gximage4.c, gxsample.c) Enhances -Z? so that before freeing an object, it checks that the object was owned by the correct allocator. (gsalloc.c)

Version 4.73 (limited) (4/19/97)

This is an incremental bug fix release made primarily to provide a synchronization point for an upcoming trip.

Documentation

Fixes bugs: - A reference to the uniprint documentation was incorrect. (current.txt) - -Olimit 1000 is not enough now for DEC Ultrix, 1200 is required; this is also required for SGI IRIX. (make.txt) Adds argument/result comments to all the operators defined in gs_lev2.ps. (Eventually we will do this for all operators defined as PostScript procedures.) (gs_lev2.ps)

Procedures

Fixes bugs: - The makefiles didn't provide a default value for GCONFIG_EXTRAS. (gs.mak)

Utilities

Fixes bugs: - pdf2ps didn't work with TrueType or compressed Type 1 fonts. (gs_pdf.ps, pdf_2ps.ps, pdf_font.ps)

Drivers

Fixes bugs: - A cast from byte to char was omitted. (gdevpdfm.c)

Platforms

Updates the VMS script (again). (vms.mak)

Interpreter

Fixes bugs: - A module that used strlen didn't include string_.h. (zdevice.c) - Because of some bad PostScript code in FrameMaker output, identity rather than unity black generation and undercolor removal functions are required on black-and-white devices. (gs_init.ps) - A harmless internal error during initialization left bogus information in $error. (gs_cidfn.ps) - startjob didn't clear the execution stack. Fixing this required NON-BACKWARD-COMPATIBLE changes to the internal operators .instopped, .stop, and .stopped, which are not supposed to be used by any external code. (startjob will still give errors if executed in a file that isn't being piped from stdin; this will take longer to fix.) (gs_init.ps, gs_lev2.ps, iref.h, imain.c, interp.c, zcontrol.c, zfile.c) Adds a new .execn operator, part of the startjob changes, that allows pushing multiple items on the exec stack. Eventually this will allow us to get rid of many dynamically created closures. (zcontrol.c)

Interpreter (PDF)

Fixes bugs: - Landscape-mode PDF files weren't rotated properly. (gs_pdf.ps, pdf_main.ps) Makes the default PDF configuration notify users more informatively when encountering an encrypted file. (pdf_sec.ps)

Streams

Makes the RunLengthEncode filter always generate optimally compressed output. We did this because we thought one of the Genoa CET files loops forever if this is not the case; but we were wrong. (srle.c)

Library

Fixes bugs: - If one coordinate of a position or distance overflowed the internal representable range, the other coordinate became garbage. (bug introduced in 4.70) (gspath.c) - The bounding box computation for strokes was slightly too large (sometimes much too large). (gxpaint.h, gdevbbox.c, gxclpath.c, gxstroke.c) Adds (under an #if 0) an experimental alternate halftone cell choice algorithm. (gshtscr.c) Adds a better comment to a particularly obscure line of C code. (gxclimag.c)

Version 4.72 (limited) (4/14/97)

This is another bug fix release, motivated mostly by Genoa testing. It also updates the new uniprint driver with a major revision, and upgrades CFF support a little bit.

Documentation

Fixes bugs: - -dNOGC only disables default automatic garbage collection, not all garbage collection. (use.txt) - Apparently a different set of flags is needed for newer H-P compilers. (make.txt) Replaces the tiny FAQ with a pointer to the on-line FAQ. (use.txt) Updates the documentation for the uniprint driver. (devices.txt) Clarifies the fact that Ghostscript reads Fontmap files from *all* directories in the search list. (use.txt) Notes that building on Linux may require SM and ICE in the list of X libraries. (make.txt)

Procedures

Fixes bugs: - An -include type42 was omitted from the level2 module description. (int.mak) - A mention of $(ECHOGS) in the rule for sfile should have been $(ECHOGS_XE). (lib.mak) - The pcx2up sample device should have been put in devs.mak rather than lib.mak. (devs.mak, lib.mak) - scanchar.h and scantab.c belong in the library, not the interpreter. (devs.mak, int.mak, lib.mak) - Some _h definitions were used before being defined, or weren't defined at all. (devs.mak, lib.mak) - The JPEG driver was missing a dependency. (devs.mak) - The PDF writer was missing a dependency. (devs.mak) - Building Level 1 systems was no longer possible. (int.mak) Updates the VMS build scripts. (vms.mak, vms-decc.mak) Adds *.upp to the list of files installed under Unix. (unix-end.mak) Adds rules to the Unix makefiles to build two library files: gs.a, consisting of the entire PostScript/PDF interpreter lacking only gs.c, and gslib.a, consisting of the graphics library without the gslib.c test driver. (ansihead.mak, cc-head.mak, gcc-head.mak, unixtail.mak)

Drivers

Fixes bugs: - The PS/EPS writers could generate a reference to an undefined name. (gdevps.c) - The PDF writer produced incorrect output for multi-level outlines. (gdevpdfm.c) - The PDF writer didn't convert /Action to /A, and /Action/Subtype to /S, in Annot dictionaries. (gdevpdfm.c) - The PDF writer didn't work in Level 1 systems. (gs_pdfwr.ps) - The PDF writer didn't transform /Rect and /R values to current user coordinates. (gs_pdfwr.ps, gdevpdfx.h, gdevpdfm.c) - The PNG writer could refer to the 3 predefined stdio files even in environments where this was undesirable. (gdevpng.c) - The PDF writer had a compiled-in limit of 100 pages of output. (gdevpdfx.h, gdevpdf.c) Updates the uniprint driver with a major revision that uses device parameters that can be set from the command line, rather than PostScript code, for configuration choices. (gdevupd.c, *.upp)

Platforms

Fixes bugs: - gp_enumerate_files_next had no way to return an error. (gp.h, gp_dosfe.c, gp_ntfs.c, gp_os2.c, gp_unifs.c, gp_vms.c) ****** NOT IMPLEMENTED YET ****** - On the Watcom platform, CPU_TYPE >= 486 didn't automatically set FPU_TYPE to 387. (wccommon.mak)

Interpreter

Fixes bugs: - Caching the current device in userdictt clear enough pointers to ensure clean garbage collection. (gxpath.c) - Finalizing or discarding a (cached) scaled font didn't properly unlink it from the scaled_fonts list. (gsfont.c) - Invoking an image operator within the BuildChar procedure for a charpath caused an infinite loop. (gsimage.c) - The bookkeeping for the scaled font cache was incorrect: the count didn't always get decremented when a scaled font was freed. (gsfont.c) - "High level" masked images were written incorrectly in the band list as black-and-white images. (gxclimag.c) - For "high level" images with fewer than 4 samples per pixel, non-standard Decode values were written incorrectly in the band list. (gxclimag.c) - The color wasn't set correctly for "high level" masked images. (gxclimag.c) - The fastest case of monobit image rendering could get a memory access error if the image lay partly outside the page. (gximage1.c) - Clipping with an empty path was a no-op, rather than clipping out everything. (gxcpath.c) Makes reference-counted objects remember which allocator owns them: this entails a NON-BACKWARD-COMPATIBLE change to some of the macros for reference counting. This was necessary to fix the off-stack gstate copying problem. (gsrefct.h, gscie.c, gscolor.c, gscolor1.c, gscolor2.c, gscsepr.c, gsstate.c, gxclread.c) Refactors the unpacking of image data, to make unpacking available as a general facility. (gximage.h, gxsample.h, gximage.c, gximage0.c, gximage1.c, gximage4.c, gxsample.c) Enhances -Z? so that before freeing an object, it checks that the object was owned by the correct allocator. (gsalloc.c)

Version 4.73 (limited) (4/19/97)

This is an incremental bug fix release made primarily to provide a synchronization point for an upcoming trip.

Documentation

Fixes bugs: - A reference to the uniprint documentation was incorrect. (current.txt) - -Olimit 1000 is not enough now for DEC Ultrix, 1200 is required; this is also required for SGI IRIX. (make.txt) Adds argument/result comments to all the operators defined in gs_lev2.ps. (Eventually we will do this for all operators defined as PostScript procedures.) (gs_lev2.ps)

Procedures

Fixes bugs: - The makefiles didn't provide a default value for GCONFIG_EXTRAS. (gs.mak)

Utilities

Fixes bugs: - pdf2ps didn't work with TrueType or compressed Type 1 fonts. (gs_pdf.ps, pdf_2ps.ps, pdf_font.ps)

Drivers

Fixes bugs: - A cast from byte to char was omitted. (gdevpdfm.c)

Platforms

Updates the VMS script (again). (vms.mak)

Interpreter

Fixes bugs: - A module that used strlen didn't include string_.h. (zdevice.c) - Because of some bad PostScript code in FrameMaker output, identity rather than unity black generation and undercolor removal functions are required on black-and-white devices. (gs_init.ps) - A harmless internal error during initialization left bogus information in $error. (gs_cidfn.ps) - startjob didn't clear the execution stack. Fixing this required NON-BACKWARD-COMPATIBLE changes to the internal operators .instopped, .stop, and .stopped, which are not supposed to be used by any external code. (startjob will still give errors if executed in a file that isn't being piped from stdin; this will take longer to fix.) (gs_init.ps, gs_lev2.ps, iref.h, imain.c, interp.c, zcontrol.c, zfile.c) Adds a new .execn operator, part of the startjob changes, that allows pushing multiple items on the exec stack. Eventually this will allow us to get rid of many dynamically created closures. (zcontrol.c)

Interpreter (PDF)

Fixes bugs: - Landscape-mode PDF files weren't rotated properly. (gs_pdf.ps, pdf_main.ps) Makes the default PDF configuration notify users more informatively when encountering an encrypted file. (pdf_sec.ps)

Streams

Makes the RunLengthEncode filter always generate optimally compressed output. We did this because we thought one of the Genoa CET files loops forever if this is not the case; but we were wrong. (srle.c)

Library

Fixes bugs: - If one coordinate of a position or distance overflowed the internal representable range, the other coordinate became garbage. (bug introduced in 4.70) (gspath.c) - The bounding box computation for strokes was slightly too large (sometimes much too large). (gxpaint.h, gdevbbox.c, gxclpath.c, gxstroke.c) Adds (under an #if 0) an experimental alternate halftone cell choice algorithm. (gshtscr.c) Adds a better comment to a particularly obscure line of C code. (gxclimag.c)

Version 4.72 (limited) (4/14/97)

This is another bug fix release, motivated mostly by Genoa testing. It also updates the new uniprint driver with a major revision, and upgrades CFF support a little bit.

Documentation

Fixes bugs: - -dNOGC only disables default automatic garbage collection, not all garbage collection. (use.txt) - Apparently a different set of flags is needed for newer H-P compilers. (make.txt) Replaces the tiny FAQ with a pointer to the on-line FAQ. (use.txt) Updates the documentation for the uniprint driver. (devices.txt) Clarifies the fact that Ghostscript reads Fontmap files from *all* directories in the search list. (use.txt) Notes that building on Linux may require SM and ICE in the list of X libraries. (make.txt)

Procedures

Fixes bugs: - An -include type42 was omitted from the level2 module description. (int.mak) - A mention of $(ECHOGS) in the rule for sfile should have been $(ECHOGS_XE). (lib.mak) - The pcx2up sample device should have been put in devs.mak rather than lib.mak. (devs.mak, lib.mak) - scanchar.h and scantab.c belong in the library, not the interpreter. (devs.mak, int.mak, lib.mak) - Some _h definitions were used before being defined, or weren't defined at all. (devs.mak, lib.mak) - The JPEG driver was missing a dependency. (devs.mak) - The PDF writer was missing a dependency. (devs.mak) - Building Level 1 systems was no longer possible. (int.mak) Updates the VMS build scripts. (vms.mak, vms-decc.mak) Adds *.upp to the list of files installed under Unix. (unix-end.mak) Adds rules to the Unix makefiles to build two library files: gs.a, consisting of the entire PostScript/PDF interpreter lacking only gs.c, and gslib.a, consisting of the graphics library without the gslib.c test driver. (ansihead.mak, cc-head.mak, gcc-head.mak, unixtail.mak)

Drivers

Fixes bugs: - The PS/EPS writers could generate a reference to an undefined name. (gdevps.c) - The PDF writer produced incorrect output for multi-level outlines. (gdevpdfm.c) - The PDF writer didn't convert /Action to /A, and /Action/Subtype to /S, in Annot dictionaries. (gdevpdfm.c) - The PDF writer didn't work in Level 1 systems. (gs_pdfwr.ps) - The PDF writer didn't transform /Rect and /R values to current user coordinates. (gs_pdfwr.ps, gdevpdfx.h, gdevpdfm.c) - The PNG writer could refer to the 3 predefined stdio files even in environments where this was undesirable. (gdevpng.c) - The PDF writer had a compiled-in limit of 100 pages of output. (gdevpdfx.h, gdevpdf.c) Updates the uniprint driver with a major revision that uses device parameters that can be set from the command line, rather than PostScript code, for configuration choices. (gdevupd.c, *.upp)

Platforms

Fixes bugs: - gp_enumerate_files_next had no way to return an error. (gp.h, gp_dosfe.c, gp_ntfs.c, gp_os2.c, gp_unifs.c, gp_vms.c) ****** NOT IMPLEMENTED YET ****** - On the Watcom platform, CPU_TYPE >= 486 didn't automatically set FPU_TYPE to 387. (wccommon.mak)

Interpreter

Fixes bugs: - Caching the current device in userdictt clear enough pointers to ensure clean garbage collection. (gxpath.c) - Finalizing or discarding a (cached) scaled font didn't properly unlink it from the scaled_fonts list. (gsfont.c) - Invoking an image operator within the BuildChar procedure for a charpath caused an infinite loop. (gsimage.c) - The bookkeeping for the scaled font cache was incorrect: the count didn't always get decremented when a scaled font was freed. (gsfont.c) - "High level" masked images were written incorrectly in the band list as black-and-white images. (gxclimag.c) - For "high level" images with fewer than 4 samples per pixel, non-standard Decode values were written incorrectly in the band list. (gxclimag.c) - The color wasn't set correctly for "high level" masked images. (gxclimag.c) - The fastest case of monobit image rendering could get a memory access error if the image lay partly outside the page. (gximage1.c) - Clipping with an empty path was a no-op, rather than clipping out everything. (gxcpath.c) Makes reference-counted objects remember which allocator owns them: this entails a NON-BACKWARD-COMPATIBLE change to some of the macros for reference counting. This was necessary to fix the off-stack gstate copying problem. (gsrefct.h, gscie.c, gscolor.c, gscolor1.c, gscolor2.c, gscsepr.c, gsstate.c, gxclread.c) Refactors the unpacking of image data, to make unpacking available as a general facility. (gximage.h, gxsample.h, gximage.c, gximage0.c, gximage1.c, gximage4.c, gxsample.c) Enhances -Z? so that before freeing an object, it checks that the object was owned by the correct allocator. (gsalloc.c)

Version 4.73 (limited) (4/19/97)

This is an incremental bug fix release made primarily to provide a synchronization point for an upcoming trip.

Documentation

Fixes bugs: - A reference to the uniprint documentation was incorrect. (current.txt) - -Olimit 1000 is not enough now for DEC Ultrix, 1200 is required; this is also required for SGI IRIX. (make.txt) Adds argument/result comments to all the operators defined in gs_lev2.ps. (Eventually we will do this for all operators defined as PostScript procedures.) (gs_lev2.ps)

Procedures

Fixes bugs: - The makefiles didn't provide a default value for GCONFIG_EXTRAS. (gs.mak)

Utilities

Fixes bugs: - pdf2ps didn't work with TrueType or compressed Type 1 fonts. (gs_pdf.ps, pdf_2ps.ps, pdf_font.ps)

Drivers

Fixes bugs: - A cast from byte to char was omitted. (gdevpdfm.c)

Platforms

Updates the VMS script (again). (vms.mak)

Interpreter

Fixes bugs: - A module that used strlen didn't include string_.h. (zdevice.c) - Because of some bad PostScript code in FrameMaker output, identity rather than unity black generation and undercolor removal functions are required on black-and-white devices. (gs_init.ps) - A harmless internal error during initialization left bogus information in $error. (gs_cidfn.ps) - startjob didn't clear the execution stack. Fixing this required NON-BACKWARD-COMPATIBLE changes to the internal operators .instopped, .stop, and .stopped, which are not supposed to be used by any external code. (startjob will still give errors if executed in a file that isn't being piped from stdin; this will take longer to fix.) (gs_init.ps, gs_lev2.ps, iref.h, imain.c, interp.c, zcontrol.c, zfile.c) Adds a new .execn operator, part of the startjob changes, that allows pushing multiple items on the exec stack. Eventually this will allow us to get rid of many dynamically created closures. (zcontrol.c)

Interpreter (PDF)

Fixes bugs: - Landscape-mode PDF files weren't rotated properly. (gs_pdf.ps, pdf_main.ps) Makes the default PDF configuration notify users more informatively when encountering an encrypted file. (pdf_sec.ps)

Streams

Makes the RunLengthEncode filter always generate optimally compressed output. We did this because we thought one of the Genoa CET files loops forever if this is not the case; but we were wrong. (srle.c)

Library

Fixes bugs: - If one coordinate of a position or distance overflowed the internal representable range, the other coordinate became garbage. (bug introduced in 4.70) (gspath.c) - The bounding box computation for strokes was slightly too large (sometimes much too large). (gxpaint.h, gdevbbox.c, gxclpath.c, gxstroke.c) Adds (under an #if 0) an experimental alternate halftone cell choice algorithm. (gshtscr.c) Adds a better comment to a particularly obscure line of C code. (gxclimag.c)

Version 4.72 (limited) (4/14/97)

This is another bug fix release, motivated mostly by Genoa testing. It also updates the new uniprint driver with a major revision, and upgrades CFF support a little bit.

Documentation

Fixes bugs: - -dNOGC only disables default automatic garbage collection, not all garbage collection. (use.txt) - Apparently a different set of flags is needed for newer H-P compilers. (make.txt) Replaces the tiny FAQ with a pointer to the on-line FAQ. (use.txt) Updates the documentation for the uniprint driver. (devices.txt) Clarifies the fact that Ghostscript reads Fontmap files from *all* directories in the search list. (use.txt) Notes that building on Linux may require SM and ICE in the list of X libraries. (make.txt)

Procedures

Fixes bugs: - An -include type42 was omitted from the level2 module description. (int.mak) - A mention of $(ECHOGS) in the rule for sfile should have been $(ECHOGS_XE). (lib.mak) - The pcx2up sample device should have been put in devs.mak rather than lib.mak. (devs.mak, lib.mak) - scanchar.h and scantab.c belong in the library, not the interpreter. (devs.mak, int.mak, lib.mak) - Some _h definitions were used before being defined, or weren't defined at all. (devs.mak, lib.mak) - The JPEG driver was missing a dependency. (devs.mak) - The PDF writer was missing a dependency. (devs.mak) - Building Level 1 systems was no longer possible. (int.mak) Updates the VMS build scripts. (vms.mak, vms-decc.mak) Adds *.upp to the list of files installed under Unix. (unix-end.mak) Adds rules to the Unix makefiles to build two library files: gs.a, consisting of the entire PostScript/PDF interpreter lacking only gs.c, and gslib.a, consisting of the graphics library without the gslib.c test driver. (ansihead.mak, cc-head.mak, gcc-head.mak, unixtail.mak)

Drivers

Fixes bugs: - The PS/EPS writers could generate a reference to an undefined name. (gdevps.c) - The PDF writer produced incorrect output for multi-level outlines. (gdevpdfm.c) - The PDF writer didn't convert /Action to /A, and /Action/Subtype to /S, in Annot dictionaries. (gdevpdfm.c) - The PDF writer didn't work in Level 1 systems. (gs_pdfwr.ps) - The PDF writer didn't transform /Rect and /R values to current user coordinates. (gs_pdfwr.ps, gdevpdfx.h, gdevpdfm.c) - The PNG writer could refer to the 3 predefined stdio files even in environments where this was undesirable. (gdevpng.c) - The PDF writer had a compiled-in limit of 100 pages of output. (gdevpdfx.h, gdevpdf.c) Updates the uniprint driver with a major revision that uses device parameters that can be set from the command line, rather than PostScript code, for configuration choices. (gdevupd.c, *.upp)

Platforms

Fixes bugs: - gp_enumerate_files_next had no way to return an error. (gp.h, gp_dosfe.c, gp_ntfs.c, gp_os2.c, gp_unifs.c, gp_vms.c) ****** NOT IMPLEMENTED YET ****** - On the Watcom platform, CPU_TYPE >= 486 didn't automatically set FPU_TYPE to 387. (wccommon.mak)

Interpreter

Fixes bugs: - Caching the current device in userdictt clear enough pointers to ensure clean garbage collection. (gxpath.c) - Finalizing or discarding a (cached) scaled font didn't properly unlink it from the scaled_fonts list. (gsfont.c) - Invoking an image operator within the BuildChar procedure for a charpath caused an infinite loop. (gsimage.c) - The bookkeeping for the scaled font cache was incorrect: the count didn't always get decremented when a scaled font was freed. (gsfont.c) - "High level" masked images were written incorrectly in the band list as black-and-white images. (gxclimag.c) - For "high level" images with fewer than 4 samples per pixel, non-standard Decode values were written incorrectly in the band list. (gxclimag.c) - The color wasn't set correctly for "high level" masked images. (gxclimag.c) - The fastest case of monobit image rendering could get a memory access error if the image lay partly outside the page. (gximage1.c) - Clipping with an empty path was a no-op, rather than clipping out everything. (gxcpath.c) Makes reference-counted objects remember which allocator owns them: this entails a NON-BACKWARD-COMPATIBLE change to some of the macros for reference counting. This was necessary to fix the off-stack gstate copying problem. (gsrefct.h, gscie.c, gscolor.c, gscolor1.c, gscolor2.c, gscsepr.c, gsstate.c, gxclread.c) Refactors the unpacking of image data, to make unpacking available as a general facility. (gximage.h, gxsample.h, gximage.c, gximage0.c, gximage1.c, gximage4.c, gxsample.c) Enhances -Z? so that before freeing an object, it checks that the object was owned by the correct allocator. (gsalloc.c)

Version 4.73 (limited) (4/19/97)

This is an incremental bug fix release made primarily to provide a synchronization point for an upcoming trip.

Documentation

Fixes bugs: - A reference to the uniprint documentation was incorrect. (current.txt) - -Olimit 1000 is not enough now for DEC Ultrix, 1200 is required; this is also required for SGI IRIX. (make.txt) Adds argument/result comments to all the operators defined in gs_lev2.ps. (Eventually we will do this for all operators defined as PostScript procedures.) (gs_lev2.ps)

Procedures

Fixes bugs: - The makefiles didn't provide a default value for GCONFIG_EXTRAS. (gs.mak)

Utilities

Fixes bugs: - pdf2ps didn't work with TrueType or compressed Type 1 fonts. (gs_pdf.ps, pdf_2ps.ps, pdf_font.ps)

Drivers

Fixes bugs: - A cast from byte to char was omitted. (gdevpdfm.c)

Platforms

Updates the VMS script (again). (vms.mak)

Interpreter

Fixes bugs: - A module that used strlen didn't include string_.h. (zdevice.c) - Because of some bad PostScript code in FrameMaker output, identity rather than unity black generation and undercolor removal functions are required on black-and-white devices. (gs_init.ps) - A harmless internal error during initialization left bogus information in $error. (gs_cidfn.ps) - startjob didn't clear the execution stack. Fixing this required NON-BACKWARD-COMPATIBLE changes to the internal operators .instopped, .stop, and .stopped, which are not supposed to be used by any external code. (startjob will still give errors if executed in a file that isn't being piped from stdin; this will take longer to fix.) (gs_init.ps, gs_lev2.ps, iref.h, imain.c, interp.c, zcontrol.c, zfile.c) Adds a new .execn operator, part of the startjob changes, that allows pushing multiple items on the exec stack. Eventually this will allow us to get rid of many dynamically created closures. (zcontrol.c)

Interpreter (PDF)

Fixes bugs: - Landscape-mode PDF files weren't rotated properly. (gs_pdf.ps, pdf_main.ps) Makes the default PDF configuration notify users more informatively when encountering an encrypted file. (pdf_sec.ps)

Streams

Makes the RunLengthEncode filter always generate optimally compressed output. We did this because we thought one of the Genoa CET files loops forever if this is not the case; but we were wrong. (srle.c)

Library

Fixes bugs: - If one coordinate of a position or distance overflowed the internal representable range, the other coordinate became garbage. (bug introduced in 4.70) (gspath.c) - The bounding box computation for strokes was slightly too large (sometimes much too large). (gxpaint.h, gdevbbox.c, gxclpath.c, gxstroke.c) Adds (under an #if 0) an experimental alternate halftone cell choice algorithm. (gshtscr.c) Adds a better comment to a particularly obscure line of C code. (gxclimag.c)

Version 4.72 (limited) (4/14/97)

This is another bug fix release, motivated mostly by Genoa testing. It also updates the new uniprint driver with a major revision, and upgrades CFF support a little bit.

Documentation

Fixes bugs: - -dNOGC only disables default automatic garbage collection, not all garbage collection. (use.txt) - Apparently a different set of flags is needed for newer H-P compilers. (make.txt) Replaces the tiny FAQ with a pointer to the on-line FAQ. (use.txt) Updates the documentation for the uniprint driver. (devices.txt) Clarifies the fact that Ghostscript reads Fontmap files from *all* directories in the search list. (use.txt) Notes that building on Linux may require SM and ICE in the list of X libraries. (make.txt)

Procedures

Fixes bugs: - An -include type42 was omitted from the level2 module description. (int.mak) - A mention of $(ECHOGS) in the rule for sfile should have been $(ECHOGS_XE). (lib.mak) - The pcx2up sample device should have been put in devs.mak rather than lib.mak. (devs.mak, lib.mak) - scanchar.h and scantab.c belong in the library, not the interpreter. (devs.mak, int.mak, lib.mak) - Some _h definitions were used before being defined, or weren't defined at all. (devs.mak, lib.mak) - The JPEG driver was missing a dependency. (devs.mak) - The PDF writer was missing a dependency. (devs.mak) - Building Level 1 systems was no longer possible. (int.mak) Updates the VMS build scripts. (vms.mak, vms-decc.mak) Adds *.upp to the list of files installed under Unix. (unix-end.mak) Adds rules to the Unix makefiles to build two library files: gs.a, consisting of the entire PostScript/PDF interpreter lacking only gs.c, and gslib.a, consisting of the graphics library without the gslib.c test driver. (ansihead.mak, cc-head.mak, gcc-head.mak, unixtail.mak)

Drivers

Fixes bugs: - The PS/EPS writers could generate a reference to an undefined name. (gdevps.c) - The PDF writer produced incorrect output for multi-level outlines. (gdevpdfm.c) - The PDF writer didn't convert /Action to /A, and /Action/Subtype to /S, in Annot dictionaries. (gdevpdfm.c) - The PDF writer didn't work in Level 1 systems. (gs_pdfwr.ps) - The PDF writer didn't transform /Rect and /R values to current user coordinates. (gs_pdfwr.ps, gdevpdfx.h, gdevpdfm.c) - The PNG writer could refer to the 3 predefined stdio files even in environments where this was undesirable. (gdevpng.c) - The PDF writer had a compiled-in limit of 100 pages of output. (gdevpdfx.h, gdevpdf.c) Updates the uniprint driver with a major revision that uses device parameters that can be set from the command line, rather than PostScript code, for configuration choices. (gdevupd.c, *.upp)

Platforms

Fixes bugs: - gp_enumerate_files_next had no way to return an error. (gp.h, gp_dosfe.c, gp_ntfs.c, gp_os2.c, gp_unifs.c, gp_vms.c) ****** NOT IMPLEMENTED YET ****** - On the Watcom platform, CPU_TYPE >= 486 didn't automatically set FPU_TYPE to 387. (wccommon.mak)

Interpreter

Fixes bugs: - Caching the current device in userdictt clear enough pointers to ensure clean garbage collection. (gxpath.c) - Finalizing or discarding a (cached) scaled font didn't properly unlink it from the scaled_fonts list. (gsfont.c) - Invoking an image operator within the BuildChar procedure for a charpath caused an infinite loop. (gsimage.c) - The bookkeeping for the scaled font cache was incorrect: the count didn't always get decremented when a scaled font was freed. (gsfont.c) - "High level" masked images were written incorrectly in the band list as black-and-white images. (gxclimag.c) - For "high level" images with fewer than 4 samples per pixel, non-standard Decode values were written incorrectly in the band list. (gxclimag.c) - The color wasn't set correctly for "high level" masked images. (gxclimag.c) - The fastest case of monobit image rendering could get a memory access error if the image lay partly outside the page. (gximage1.c) - Clipping with an empty path was a no-op, rather than clipping out everything. (gxcpath.c) Makes reference-counted objects remember which allocator owns them: this entails a NON-BACKWARD-COMPATIBLE change to some of the macros for reference counting. This was necessary to fix the off-stack gstate copying problem. (gsrefct.h, gscie.c, gscolor.c, gscolor1.c, gscolor2.c, gscsepr.c, gsstate.c, gxclread.c) Refactors the unpacking of image data, to make unpacking available as a general facility. (gximage.h, gxsample.h, gximage.c, gximage0.c, gximage1.c, gximage4.c, gxsample.c) Enhances -Z? so that before freeing an object, it checks that the object was owned by the correct allocator. (gsalloc.c)

Version 4.73 (limited) (4/19/97)

This is an incremental bug fix release made primarily to provide a synchronization point for an upcoming trip.

Documentation

Fixes bugs: - A reference to the uniprint documentation was incorrect. (current.txt) - -Olimit 1000 is not enough now for DEC Ultrix, 1200 is required; this is also required for SGI IRIX. (make.txt) Adds argument/result comments to all the operators defined in gs_lev2.ps. (Eventually we will do this for all operators defined as PostScript procedures.) (gs_lev2.ps)

Procedures

Fixes bugs: - The makefiles didn't provide a default value for GCONFIG_EXTRAS. (gs.mak)

Utilities

Fixes bugs: - pdf2ps didn't work with TrueType or compressed Type 1 fonts. (gs_pdf.ps, pdf_2ps.ps, pdf_font.ps)

Drivers

Fixes bugs: - A cast from byte to char was omitted. (gdevpdfm.c)

Platforms

Updates the VMS script (again). (vms.mak)

Interpreter

Fixes bugs: - A module that used strlen didn't include string_.h. (zdevice.c) - Because of some bad PostScript code in FrameMaker output, identity rather than unity black generation and undercolor removal functions are required on black-and-white devices. (gs_init.ps) - A harmless internal error during initialization left bogus information in $error. (gs_cidfn.ps) - startjob didn't clear the execution stack. Fixing this required NON-BACKWARD-COMPATIBLE changes to the internal operators .instopped, .stop, and .stopped, which are not supposed to be used by any external code. (startjob will still give errors if executed in a file that isn't being piped from stdin; this will take longer to fix.) (gs_init.ps, gs_lev2.ps, iref.h, imain.c, interp.c, zcontrol.c, zfile.c) Adds a new .execn operator, part of the startjob changes, that allows pushing multiple items on the exec stack. Eventually this will allow us to get rid of many dynamically created closures. (zcontrol.c)

Interpreter (PDF)

Fixes bugs: - Landscape-mode PDF files weren't rotated properly. (gs_pdf.ps, pdf_main.ps) Makes the default PDF configuration notify users more informatively when encountering an encrypted file. (pdf_sec.ps)

Streams

Makes the RunLengthEncode filter always generate optimally compressed output. We did this because we thought one of the Genoa CET files loops forever if this is not the case; but we were wrong. (srle.c)

Library

Fixes bugs: - If one coordinate of a position or distance overflowed the internal representable range, the other coordinate became garbage. (bug introduced in 4.70) (gspath.c) - The bounding box computation for strokes was slightly too large (sometimes much too large). (gxpaint.h, gdevbbox.c, gxclpath.c, gxstroke.c) Adds (under an #if 0) an experimental alternate halftone cell choice algorithm. (gshtscr.c) Adds a better comment to a particularly obscure line of C code. (gxclimag.c)

Version 4.72 (limited) (4/14/97)

This is another bug fix release, motivated mostly by Genoa testing. It also updates the new uniprint driver with a major revision, and upgrades CFF support a little bit.

Documentation

Fixes bugs: - -dNOGC only disables default automatic garbage collection, not all garbage collection. (use.txt) - Apparently a different set of flags is needed for newer H-P compilers. (make.txt) Replaces the tiny FAQ with a pointer to the on-line FAQ. (use.txt) Updates the documentation for the uniprint driver. (devices.txt) Clarifies the fact that Ghostscript reads Fontmap files from *all* directories in the search list. (use.txt) Notes that building on Linux may require SM and ICE in the list of X libraries. (make.txt)

Procedures

Fixes bugs: - An -include type42 was omitted from the level2 module description. (int.mak) - A mention of $(ECHOGS) in the rule for sfile should have been $(ECHOGS_XE). (lib.mak) - The pcx2up sample device should have been put in devs.mak rather than lib.mak. (devs.mak, lib.mak) - scanchar.h and scantab.c belong in the library, not the interpreter. (devs.mak, int.mak, lib.mak) - Some _h definitions were used before being defined, or weren't defined at all. (devs.mak, lib.mak) - The JPEG driver was missing a dependency. (devs.mak) - The PDF writer was missing a dependency. (devs.mak) - Building Level 1 systems was no longer possible. (int.mak) Updates the VMS build scripts. (vms.mak, vms-decc.mak) Adds *.upp to the list of files installed under Unix. (unix-end.mak) Adds rules to the Unix makefiles to build two library files: gs.a, consisting of the entire PostScript/PDF interpreter lacking only gs.c, and gslib.a, consisting of the graphics library without the gslib.c test driver. (ansihead.mak, cc-head.mak, gcc-head.mak, unixtail.mak)

Drivers

Fixes bugs: - The PS/EPS writers could generate a reference to an undefined name. (gdevps.c) - The PDF writer produced incorrect output for multi-level outlines. (gdevpdfm.c) - The PDF writer didn't convert /Action to /A, and /Action/Subtype to /S, in Annot dictionaries. (gdevpdfm.c) - The PDF writer didn't work in Level 1 systems. (gs_pdfwr.ps) - The PDF writer didn't transform /Rect and /R values to current user coordinates. (gs_pdfwr.ps, gdevpdfx.h, gdevpdfm.c) - The PNG writer could refer to the 3 predefined stdio files even in environments where this was undesirable. (gdevpng.c) - The PDF writer had a compiled-in limit of 100 pages of output. (gdevpdfx.h, gdevpdf.c) Updates the uniprint driver with a major revision that uses device parameters that can be set from the command line, rather than PostScript code, for configuration choices. (gdevupd.c, *.upp)

Platforms

Fixes bugs: - gp_enumerate_files_next had no way to return an error. (gp.h, gp_dosfe.c, gp_ntfs.c, gp_os2.c, gp_unifs.c, gp_vms.c) ****** NOT IMPLEMENTED YET ****** - On the Watcom platform, CPU_TYPE >= 486 didn't automatically set FPU_TYPE to 387. (wccommon.mak)

Interpreter

Fixes bugs: - Caching the current device in userdictt clear enough pointers to ensure clean garbage collection. (gxpath.c) - Finalizing or discarding a (cached) scaled font didn't properly unlink it from the scaled_fonts list. (gsfont.c) - Invoking an image operator within the BuildChar procedure for a charpath caused an infinite loop. (gsimage.c) - The bookkeeping for the scaled font cache was incorrect: the count didn't always get decremented when a scaled font was freed. (gsfont.c) - "High level" masked images were written incorrectly in the band list as black-and-white images. (gxclimag.c) - For "high level" images with fewer than 4 samples per pixel, non-standard Decode values were written incorrectly in the band list. (gxclimag.c) - The color wasn't set correctly for "high level" masked images. (gxclimag.c) - The fastest case of monobit image rendering could get a memory access error if the image lay partly outside the page. (gximage1.c) - Clipping with an empty path was a no-op, rather than clipping out everything. (gxcpath.c) Makes reference-counted objects remember which allocator owns them: this entails a NON-BACKWARD-COMPATIBLE change to some of the macros for reference counting. This was necessary to fix the off-stack gstate copying problem. (gsrefct.h, gscie.c, gscolor.c, gscolor1.c, gscolor2.c, gscsepr.c, gsstate.c, gxclread.c) Refactors the unpacking of image data, to make unpacking available as a general facility. (gximage.h, gxsample.h, gximage.c, gximage0.c, gximage1.c, gximage4.c, gxsample.c) Enhances -Z? so that before freeing an object, it checks that the object was owned by the correct allocator. (gsalloc.c)

Version 4.73 (limited) (4/19/97)

This is an incremental bug fix release made primarily to provide a synchronization point for an upcoming trip.

Documentation

Fixes bugs: - A reference to the uniprint documentation was incorrect. (current.txt) - -Olimit 1000 is not enough now for DEC Ultrix, 1200 is required; this is also required for SGI IRIX. (make.txt) Adds argument/result comments to all the operators defined in gs_lev2.ps. (Eventually we will do this for all operators defined as PostScript procedures.) (gs_lev2.ps)

Procedures

Fixes bugs: - The makefiles didn't provide a default value for GCONFIG_EXTRAS. (gs.mak)

Utilities

Fixes bugs: - pdf2ps didn't work with TrueType or compressed Type 1 fonts. (gs_pdf.ps, pdf_2ps.ps, pdf_font.ps)

Drivers

Fixes bugs: - A cast from byte to char was omitted. (gdevpdfm.c)

Platforms

Updates the VMS script (again). (vms.mak)

Interpreter

Fixes bugs: - A module that used strlen didn't include string_.h. (zdevice.c) - Because of some bad PostScript code in FrameMaker output, identity rather than unity black generation and undercolor removal functions are required on black-and-white devices. (gs_init.ps) - A harmless internal error during initialization left bogus information in $error. (gs_cidfn.ps) - startjob didn't clear the execution stack. Fixing this required NON-BACKWARD-COMPATIBLE changes to the internal operators .instopped, .stop, and .stopped, which are not supposed to be used by any external code. (startjob will still give errors if executed in a file that isn't being piped from stdin; this will take longer to fix.) (gs_init.ps, gs_lev2.ps, iref.h, imain.c, interp.c, zcontrol.c, zfile.c) Adds a new .execn operator, part of the startjob changes, that allows pushing multiple items on the exec stack. Eventually this will allow us to get rid of many dynamically created closures. (zcontrol.c)

Interpreter (PDF)

Fixes bugs: - Landscape-mode PDF files weren't rotated properly. (gs_pdf.ps, pdf_main.ps) Makes the default PDF configuration notify users more informatively when encountering an encrypted file. (pdf_sec.ps)

Streams

Makes the RunLengthEncode filter always generate optimally compressed output. We did this because we thought one of the Genoa CET files loops forever if this is not the case; but we were wrong. (srle.c)

Library

Fixes bugs: - If one coordinate of a position or distance overflowed the internal representable range, the other coordinate became garbage. (bug introduced in 4.70) (gspath.c) - The bounding box computation for strokes was slightly too large (sometimes much too large). (gxpaint.h, gdevbbox.c, gxclpath.c, gxstroke.c) Adds (under an #if 0) an experimental alternate halftone cell choice algorithm. (gshtscr.c) Adds a better comment to a particularly obscure line of C code. (gxclimag.c)

Version 4.72 (limited) (4/14/97)

This is another bug fix release, motivated mostly by Genoa testing. It also updates the new uniprint driver with a major revision, and upgrades CFF support a little bit.

Documentation

Fixes bugs: - -dNOGC only disables default automatic garbage collection, not all garbage collection. (use.txt) - Apparently a different set of flags is needed for newer H-P compilers. (make.txt) Replaces the tiny FAQ with a pointer to the on-line FAQ. (use.txt) Updates the documentation for the uniprint driver. (devices.txt) Clarifies the fact that Ghostscript reads Fontmap files from *all* directories in the search list. (use.txt) Notes that building on Linux may require SM and ICE in the list of X libraries. (make.txt)

Procedures

Fixes bugs: - An -include type42 was omitted from the level2 module description. (int.mak) - A mention of $(ECHOGS) in the rule for sfile should have been $(ECHOGS_XE). (lib.mak) - The pcx2up sample device should have been put in devs.mak rather than lib.mak. (devs.mak, lib.mak) - scanchar.h and scantab.c belong in the library, not the interpreter. (devs.mak, int.mak, lib.mak) - Some _h definitions were used before being defined, or weren't defined at all. (devs.mak, lib.mak) - The JPEG driver was missing a dependency. (devs.mak) - The PDF writer was missing a dependency. (devs.mak) - Building Level 1 systems was no longer possible. (int.mak) Updates the VMS build scripts. (vms.mak, vms-decc.mak) Adds *.upp to the list of files installed under Unix. (unix-end.mak) Adds rules to the Unix makefiles to build two library files: gs.a, consisting of the entire PostScript/PDF interpreter lacking only gs.c, and gslib.a, consisting of the graphics library without the gslib.c test driver. (ansihead.mak, cc-head.mak, gcc-head.mak, unixtail.mak)

Drivers

Fixes bugs: - The PS/EPS writers could generate a reference to an undefined name. (gdevps.c) - The PDF writer produced incorrect output for multi-level outlines. (gdevpdfm.c) - The PDF writer didn't convert /Action to /A, and /Action/Subtype to /S, in Annot dictionaries. (gdevpdfm.c) - The PDF writer didn't work in Level 1 systems. (gs_pdfwr.ps) - The PDF writer didn't transform /Rect and /R values to current user coordinates. (gs_pdfwr.ps, gdevpdfx.h, gdevpdfm.c) - The PNG writer could refer to the 3 predefined stdio files even in environments where this was undesirable. (gdevpng.c) - The PDF writer had a compiled-in limit of 100 pages of output. (gdevpdfx.h, gdevpdf.c) Updates the uniprint driver with a major revision that uses device parameters that can be set from the command line, rather than PostScript code, for configuration choices. (gdevupd.c, *.upp)

Platforms

Fixes bugs: - gp_enumerate_files_next had no way to return an error. (gp.h, gp_dosfe.c, gp_ntfs.c, gp_os2.c, gp_unifs.c, gp_vms.c) ****** NOT IMPLEMENTED YET ****** - On the Watcom platform, CPU_TYPE >= 486 didn't automatically set FPU_TYPE to 387. (wccommon.mak)

Interpreter

Fixes bugs: - Caching the current device in userdictt clear enough pointers to ensure clean garbage collection. (gxpath.c) - Finalizing or discarding a (cached) scaled font didn't properly unlink it from the scaled_fonts list. (gsfont.c) - Invoking an image operator within the BuildChar procedure for a charpath caused an infinite loop. (gsimage.c) - The bookkeeping for the scaled font cache was incorrect: the count didn't always get decremented when a scaled font was freed. (gsfont.c) - "High level" masked images were written incorrectly in the band list as black-and-white images. (gxclimag.c) - For "high level" images with fewer than 4 samples per pixel, non-standard Decode values were written incorrectly in the band list. (gxclimag.c) - The color wasn't set correctly for "high level" masked images. (gxclimag.c) - The fastest case of monobit image rendering could get a memory access error if the image lay partly outside the page. (gximage1.c) - Clipping with an empty path was a no-op, rather than clipping out everything. (gxcpath.c) Makes reference-counted objects remember which allocator owns them: this entails a NON-BACKWARD-COMPATIBLE change to some of the macros for reference counting. This was necessary to fix the off-stack gstate copying problem. (gsrefct.h, gscie.c, gscolor.c, gscolor1.c, gscolor2.c, gscsepr.c, gsstate.c, gxclread.c) Refactors the unpacking of image data, to make unpacking available as a general facility. (gximage.h, gxsample.h, gximage.c, gximage0.c, gximage1.c, gximage4.c, gxsample.c) Enhances -Z? so that before freeing an object, it checks that the object was owned by the correct allocator. (gsalloc.c)

Version 4.73 (limited) (4/19/97)

This is an incremental bug fix release made primarily to provide a synchronization point for an upcoming trip.

Documentation

Fixes bugs: - A reference to the uniprint documentation was incorrect. (current.txt) - -Olimit 1000 is not enough now for DEC Ultrix, 1200 is required; this is also required for SGI IRIX. (make.txt) Adds argument/result comments to all the operators defined in gs_lev2.ps. (Eventually we will do this for all operators defined as PostScript procedures.) (gs_lev2.ps)

Procedures

Fixes bugs: - The makefiles didn't provide a default value for GCONFIG_EXTRAS. (gs.mak)

Utilities

Fixes bugs: - pdf2ps didn't work with TrueType or compressed Type 1 fonts. (gs_pdf.ps, pdf_2ps.ps, pdf_font.ps)

Drivers

Fixes bugs: - A cast from byte to char was omitted. (gdevpdfm.c)

Platforms

Updates the VMS script (again). (vms.mak)

Interpreter

Fixes bugs: - A module that used strlen didn't include string_.h. (zdevice.c) - Because of some bad PostScript code in FrameMaker output, identity rather than unity black generation and undercolor removal functions are required on black-and-white devices. (gs_init.ps) - A harmless internal error during initialization left bogus information in $error. (gs_cidfn.ps) - startjob didn't clear the execution stack. Fixing this required NON-BACKWARD-COMPATIBLE changes to the internal operators .instopped, .stop, and .stopped, which are not supposed to be used by any external code. (startjob will still give errors if executed in a file that isn't being piped from stdin; this will take longer to fix.) (gs_init.ps, gs_lev2.ps, iref.h, imain.c, interp.c, zcontrol.c, zfile.c) Adds a new .execn operator, part of the startjob changes, that allows pushing multiple items on the exec stack. Eventually this will allow us to get rid of many dynamically created closures. (zcontrol.c)

Interpreter (PDF)

Fixes bugs: - Landscape-mode PDF files weren't rotated properly. (gs_pdf.ps, pdf_main.ps) Makes the default PDF configuration notify users more informatively when encountering an encrypted file. (pdf_sec.ps)

Streams

Makes the RunLengthEncode filter always generate optimally compressed output. We did this because we thought one of the Genoa CET files loops forever if this is not the case; but we were wrong. (srle.c)

Library

Fixes bugs: - If one coordinate of a position or distance overflowed the internal representable range, the other coordinate became garbage. (bug introduced in 4.70) (gspath.c) - The bounding box computation for strokes was slightly too large (sometimes much too large). (gxpaint.h, gdevbbox.c, gxclpath.c, gxstroke.c) Adds (under an #if 0) an experimental alternate halftone cell choice algorithm. (gshtscr.c) Adds a better comment to a particularly obscure line of C code. (gxclimag.c)

Version 4.72 (limited) (4/14/97)

This is another bug fix release, motivated mostly by Genoa testing. It also updates the new uniprint driver with a major revision, and upgrades CFF support a little bit.

Documentation

Fixes bugs: - -dNOGC only disables default automatic garbage collection, not all garbage collection. (use.txt) - Apparently a different set of flags is needed for newer H-P compilers. (make.txt) Replaces the tiny FAQ with a pointer to the on-line FAQ. (use.txt) Updates the documentation for the uniprint driver. (devices.txt) Clarifies the fact that Ghostscript reads Fontmap files from *all* directories in the search list. (use.txt) Notes that building on Linux may require SM and ICE in the list of X libraries. (make.txt)

Procedures

Fixes bugs: - An -include type42 was omitted from the level2 module description. (int.mak) - A mention of $(ECHOGS) in the rule for sfile should have been $(ECHOGS_XE). (lib.mak) - The pcx2up sample device should have been put in devs.mak rather than lib.mak. (devs.mak, lib.mak) - scanchar.h and scantab.c belong in the library, not the interpreter. (devs.mak, int.mak, lib.mak) - Some _h definitions were used before being defined, or weren't defined at all. (devs.mak, lib.mak) - The JPEG driver was missing a dependency. (devs.mak) - The PDF writer was missing a dependency. (devs.mak) - Building Level 1 systems was no longer possible. (int.mak) Updates the VMS build scripts. (vms.mak, vms-decc.mak) Adds *.upp to the list of files installed under Unix. (unix-end.mak) Adds rules to the Unix makefiles to build two library files: gs.a, consisting of the entire PostScript/PDF interpreter lacking only gs.c, and gslib.a, consisting of the graphics library without the gslib.c test driver. (ansihead.mak, cc-head.mak, gcc-head.mak, unixtail.mak)

Drivers

Fixes bugs: - The PS/EPS writers could generate a reference to an undefined name. (gdevps.c) - The PDF writer produced incorrect output for multi-level outlines. (gdevpdfm.c) - The PDF writer didn't convert /Action to /A, and /Action/Subtype to /S, in Annot dictionaries. (gdevpdfm.c) - The PDF writer didn't work in Level 1 systems. (gs_pdfwr.ps) - The PDF writer didn't transform /Rect and /R values to current user coordinates. (gs_pdfwr.ps, gdevpdfx.h, gdevpdfm.c) - The PNG writer could refer to the 3 predefined stdio files even in environments where this was undesirable. (gdevpng.c) - The PDF writer had a compiled-in limit of 100 pages of output. (gdevpdfx.h, gdevpdf.c) Updates the uniprint driver with a major revision that uses device parameters that can be set from the command line, rather than PostScript code, for configuration choices. (gdevupd.c, *.upp)

Platforms

Fixes bugs: - gp_enumerate_files_next had no way to return an error. (gp.h, gp_dosfe.c, gp_ntfs.c, gp_os2.c, gp_unifs.c, gp_vms.c) ****** NOT IMPLEMENTED YET ****** - On the Watcom platform, CPU_TYPE >= 486 didn't automatically set FPU_TYPE to 387. (wccommon.mak)

Interpreter

Fixes bugs: - Caching the current device in userdictt clear enough pointers to ensure clean garbage collection. (gxpath.c) - Finalizing or discarding a (cached) scaled font didn't properly unlink it from the scaled_fonts list. (gsfont.c) - Invoking an image operator within the BuildChar procedure for a charpath caused an infinite loop. (gsimage.c) - The bookkeeping for the scaled font cache was incorrect: the count didn't always get decremented when a scaled font was freed. (gsfont.c) - "High level" masked images were written incorrectly in the band list as black-and-white images. (gxclimag.c) - For "high level" images with fewer than 4 samples per pixel, non-standard Decode values were written incorrectly in the band list. (gxclimag.c) - The color wasn't set correctly for "high level" masked images. (gxclimag.c) - The fastest case of monobit image rendering could get a memory access error if the image lay partly outside the page. (gximage1.c) - Clipping with an empty path was a no-op, rather than clipping out everything. (gxcpath.c) Makes reference-counted objects remember which allocator owns them: this entails a NON-BACKWARD-COMPATIBLE change to some of the macros for reference counting. This was necessary to fix the off-stack gstate copying problem. (gsrefct.h, gscie.c, gscolor.c, gscolor1.c, gscolor2.c, gscsepr.c, gsstate.c, gxclread.c) Refactors the unpacking of image data, to make unpacking available as a general facility. (gximage.h, gxsample.h, gximage.c, gximage0.c, gximage1.c, gximage4.c, gxsample.c) Enhances -Z? so that before freeing an object, it checks that the object was owned by the correct allocator. (gsalloc.c)

Version 4.73 (limited) (4/19/97)

This is an incremental bug fix release made primarily to provide a synchronization point for an upcoming trip.

Documentation

Fixes bugs: - A reference to the uniprint documentation was incorrect. (current.txt) - -Olimit 1000 is not enough now for DEC Ultrix, 1200 is required; this is also required for SGI IRIX. (make.txt) Adds argument/result comments to all the operators defined in gs_lev2.ps. (Eventually we will do this for all operators defined as PostScript procedures.) (gs_lev2.ps)

Procedures

Fixes bugs: - The makefiles didn't provide a default value for GCONFIG_EXTRAS. (gs.mak)

Utilities

Fixes bugs: - pdf2ps didn't work with TrueType or compressed Type 1 fonts. (gs_pdf.ps, pdf_2ps.ps, pdf_font.ps)

Drivers

Fixes bugs: - A cast from byte to char was omitted. (gdevpdfm.c)

Platforms

Updates the VMS script (again). (vms.mak)

Interpreter

Fixes bugs: - A module that used strlen didn't include string_.h. (zdevice.c) - Because of some bad PostScript code in FrameMaker output, identity rather than unity black generation and undercolor removal functions are required on black-and-white devices. (gs_init.ps) - A harmless internal error during initialization left bogus information in $error. (gs_cidfn.ps) - startjob didn't clear the execution stack. Fixing this required NON-BACKWARD-COMPATIBLE changes to the internal operators .instopped, .stop, and .stopped, which are not supposed to be used by any external code. (startjob will still give errors if executed in a file that isn't being piped from stdin; this will take longer to fix.) (gs_init.ps, gs_lev2.ps, iref.h, imain.c, interp.c, zcontrol.c, zfile.c) Adds a new .execn operator, part of the startjob changes, that allows pushing multiple items on the exec stack. Eventually this will allow us to get rid of many dynamically created closures. (zcontrol.c)

Interpreter (PDF)

Fixes bugs: - Landscape-mode PDF files weren't rotated properly. (gs_pdf.ps, pdf_main.ps) Makes the default PDF configuration notify users more informatively when encountering an encrypted file. (pdf_sec.ps)

Streams

Makes the RunLengthEncode filter always generate optimally compressed output. We did this because we thought one of the Genoa CET files loops forever if this is not the case; but we were wrong. (srle.c)

Library

Fixes bugs: - If one coordinate of a position or distance overflowed the internal representable range, the other coordinate became garbage. (bug introduced in 4.70) (gspath.c) - The bounding box computation for strokes was slightly too large (sometimes much too large). (gxpaint.h, gdevbbox.c, gxclpath.c, gxstroke.c) Adds (under an #if 0) an experimental alternate halftone cell choice algorithm. (gshtscr.c) Adds a better comment to a particularly obscure line of C code. (gxclimag.c)

Version 4.72 (limited) (4/14/97)

This is another bug fix release, motivated mostly by Genoa testing. It also updates the new uniprint driver with a major revision, and upgrades CFF support a little bit.

Documentation

Fixes bugs: - -dNOGC only disables default automatic garbage collection, not all garbage collection. (use.txt) - Apparently a different set of flags is needed for newer H-P compilers. (make.txt) Replaces the tiny FAQ with a pointer to the on-line FAQ. (use.txt) Updates the documentation for the uniprint driver. (devices.txt) Clarifies the fact that Ghostscript reads Fontmap files from *all* directories in the search list. (use.txt) Notes that building on Linux may require SM and ICE in the list of X libraries. (make.txt)

Procedures

Fixes bugs: - An -include type42 was omitted from the level2 module description. (int.mak) - A mention of $(ECHOGS) in the rule for sfile should have been $(ECHOGS_XE). (lib.mak) - The pcx2up sample device should have been put in devs.mak rather than lib.mak. (devs.mak, lib.mak) - scanchar.h and scantab.c belong in the library, not the interpreter. (devs.mak, int.mak, lib.mak) - Some _h definitions were used before being defined, or weren't defined at all. (devs.mak, lib.mak) - The JPEG driver was missing a dependency. (devs.mak) - The PDF writer was missing a dependency. (devs.mak) - Building Level 1 systems was no longer possible. (int.mak) Updates the VMS build scripts. (vms.mak, vms-decc.mak) Adds *.upp to the list of files installed under Unix. (unix-end.mak) Adds rules to the Unix makefiles to build two library files: gs.a, consisting of the entire PostScript/PDF interpreter lacking only gs.c, and gslib.a, consisting of the graphics library without the gslib.c test driver. (ansihead.mak, cc-head.mak, gcc-head.mak, unixtail.mak)

Drivers

Fixes bugs: - The PS/EPS writers could generate a reference to an undefined name. (gdevps.c) - The PDF writer produced incorrect output for multi-level outlines. (gdevpdfm.c) - The PDF writer didn't convert /Action to /A, and /Action/Subtype to /S, in Annot dictionaries. (gdevpdfm.c) - The PDF writer didn't work in Level 1 systems. (gs_pdfwr.ps) - The PDF writer didn't transform /Rect and /R values to current user coordinates. (gs_pdfwr.ps, gdevpdfx.h, gdevpdfm.c) - The PNG writer could refer to the 3 predefined stdio files even in environments where this was undesirable. (gdevpng.c) - The PDF writer had a compiled-in limit of 100 pages of output. (gdevpdfx.h, gdevpdf.c) Updates the uniprint driver with a major revision that uses device parameters that can be set from the command line, rather than PostScript code, for configuration choices. (gdevupd.c, *.upp)

Platforms

Fixes bugs: - gp_enumerate_files_next had no way to return an error. (gp.h, gp_dosfe.c, gp_ntfs.c, gp_os2.c, gp_unifs.c, gp_vms.c) ****** NOT IMPLEMENTED YET ****** - On the Watcom platform, CPU_TYPE >= 486 didn't automatically set FPU_TYPE to 387. (wccommon.mak)

Interpreter

Fixes bugs: - Caching the current device in userdictt clear enough pointers to ensure clean garbage collection. (gxpath.c) - Finalizing or discarding a (cached) scaled font didn't properly unlink it from the scaled_fonts list. (gsfont.c) - Invoking an image operator within the BuildChar procedure for a charpath caused an infinite loop. (gsimage.c) - The bookkeeping for the scaled font cache was incorrect: the count didn't always get decremented when a scaled font was freed. (gsfont.c) - "High level" masked images were written incorrectly in the band list as black-and-white images. (gxclimag.c) - For "high level" images with fewer than 4 samples per pixel, non-standard Decode values were written incorrectly in the band list. (gxclimag.c) - The color wasn't set correctly for "high level" masked images. (gxclimag.c) - The fastest case of monobit image rendering could get a memory access error if the image lay partly outside the page. (gximage1.c) - Clipping with an empty path was a no-op, rather than clipping out everything. (gxcpath.c) Makes reference-counted objects remember which allocator owns them: this entails a NON-BACKWARD-COMPATIBLE change to some of the macros for reference counting. This was necessary to fix the off-stack gstate copying problem. (gsrefct.h, gscie.c, gscolor.c, gscolor1.c, gscolor2.c, gscsepr.c, gsstate.c, gxclread.c) Refactors the unpacking of image data, to make unpacking available as a general facility. (gximage.h, gxsample.h, gximage.c, gximage0.c, gximage1.c, gximage4.c, gxsample.c) Enhances -Z? so that before freeing an object, it checks that the object was owned by the correct allocator. (gsalloc.c)

Version 4.73 (limited) (4/19/97)

This is an incremental bug fix release made primarily to provide a synchronization point for an upcoming trip.

Documentation

Fixes bugs: - A reference to the unip