diff options
Diffstat (limited to 'Master/xemtex/doc/ghostscript/History4.htm')
-rw-r--r-- | Master/xemtex/doc/ghostscript/History4.htm | 3980 |
1 files changed, 0 insertions, 3980 deletions
diff --git a/Master/xemtex/doc/ghostscript/History4.htm b/Master/xemtex/doc/ghostscript/History4.htm deleted file mode 100644 index 35e67000138..00000000000 --- a/Master/xemtex/doc/ghostscript/History4.htm +++ /dev/null @@ -1,3980 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> -<html> -<head> -<title>History of Ghostscript versions 4.n</title> -<!-- $Id: History4.htm,v 1.13.2.11.2.6 2003/05/17 14:38:59 giles Exp $ --> -<!-- Originally: history4.txt --> -<!-- - WARNING: do not use Pete Kaiser's emacs function "gs-toc" alone to - re-create the table of contents here, because it will replace the - hand-edited TOC subheads with a separate subhead for each H2 in - the body of the file. Or if you do, first look at the original - TOC to see how to edit it for visual conciseness. ---> -<link rel="stylesheet" type="text/css" href="gs.css" title="Ghostscript Style"> -</head> - -<body> -<!-- [1.0 begin visible header] ============================================ --> - -<!-- [1.1 begin headline] ================================================== --> - -<h1>History of Ghostscript versions 4.n</h1> - -<!-- [1.1 end headline] ==================================================== --> - -<!-- [1.2 begin table of contents] ========================================= --> - -<h2>Table of contents</h2> - -<blockquote><ul> -<li><a href="#Version4.81">Version 4.81 (6/1/97)</a> -<ul> -<li><a href="#V4.81_Documentation">Documentation</a>, - <a href="#V4.81_Procedures">Procedures</a>, - <a href="#V4.81_Utilities">Utilities</a>, - <a href="#V4.81_Drivers">Drivers</a>, - <a href="#V4.81_Platforms">Platforms</a>, - <a href="#V4.81_Interpreter">Interpreter</a>, - <a href="#V4.81_Library">Library</a> -</ul> -<li><a href="#Version4.80">Version 4.80 (limited) (5/28/97)</a> -<ul> -<li><a href="#V4.80_Documentation">Documentation</a>, - <a href="#V4.80_Procedures">Procedures</a>, - <a href="#V4.80_Utilities">Utilities</a>, - <a href="#V4.80_Drivers">Drivers</a>, - <a href="#V4.80_Platforms">Platforms</a>, - <a href="#V4.80_Fonts">Fonts</a>, - <a href="#V4.80_Interpreter">Interpreter</a>, - <a href="#V4.80_Streams">Streams</a>, - <a href="#V4.80_Library">Library</a> -</ul> -<li><a href="#Version4.74">Version 4.74 (limited) (5/5/97)</a> -<ul> -<li><a href="#V4.74_Documentation">Documentation</a>, - <a href="#V4.74_Utilities">Utilities</a>, - <a href="#V4.74_Drivers">Drivers</a>, - <a href="#V4.74_Interpreter">Interpreter</a>, - <a href="#V4.74_Streams">Streams</a>, - <a href="#V4.74_Library">Library</a> -</ul> -<li><a href="#Version4.73">Version 4.73 (limited) (4/19/97)</a> -<ul> -<li><a href="#V4.73_Documentation">Documentation</a>, - <a href="#V4.73_Procedures">Procedures</a>, - <a href="#V4.73_Utilities">Utilities</a>, - <a href="#V4.73_Drivers">Drivers</a>, - <a href="#V4.73_Platforms">Platforms</a>, - <a href="#V4.73_Interpreter">Interpreter</a>, - <a href="#V4.73_Interpreter_PDF">Interpreter (PDF)</a>, - <a href="#V4.73_Streams">Streams</a>, - <a href="#V4.73_Library">Library</a> -</ul> -<li><a href="#Version4.72">Version 4.72 (limited) (4/14/97)</a> -<ul> -<li><a href="#V4.72_Documentation">Documentation</a>, - <a href="#V4.72_Procedures">Procedures</a>, - <a href="#V4.72_Drivers">Drivers</a>, - <a href="#V4.72_Platforms">Platforms</a>, - <a href="#V4.72_Interpreter">Interpreter</a>, - <a href="#V4.72_Interpreter_PDF">Interpreter (PDF)</a>, - <a href="#V4.72_Streams">Streams</a>, - <a href="#V4.72_Library">Library</a> -</ul> -<li><a href="#Version4.71">Version 4.71 (limited) (3/31/97)</a> -<ul> -<li><a href="#V4.71_Documentation">Documentation</a>, - <a href="#V4.71_Procedures">Procedures</a>, - <a href="#V4.71_Drivers">Drivers</a>, - <a href="#V4.71_Interpreter">Interpreter</a>, - <a href="#V4.71_Streams">Streams</a>, - <a href="#V4.71_Library">Library</a> -</ul> -<li><a href="#Version4.70">Version 4.70 (limited) (3/26/97)</a> -<ul> -<li><a href="#V4.70_Documentation">Documentation</a>, - <a href="#V4.70_Procedures">Procedures</a>, - <a href="#V4.70_Drivers">Drivers</a>, - <a href="#V4.70_Platforms">Platforms</a>, - <a href="#V4.70_Interpreter">Interpreter</a>, - <a href="#V4.70_Interpreter_PDF">Interpreter (PDF)</a>, - <a href="#V4.70_Streams">Streams</a>, - <a href="#V4.70_Library">Library</a> -</ul> -<li><a href="#Version4.61">Version 4.61 (limited) (3/13/97)</a> -<ul> -<li><a href="#V4.61_Documentation">Documentation</a>, - <a href="#V4.61_Procedures">Procedures</a>, - <a href="#V4.61_Drivers">Drivers</a>, - <a href="#V4.61_Platforms">Platforms</a>, - <a href="#V4.61_Interpreter">Interpreter</a>, - <a href="#V4.61_Interpreter_PDF">Interpreter (PDF)</a>, - <a href="#V4.61_Streams">Streams</a>, - <a href="#V4.61_Library">Library</a> -</ul> -<li><a href="#Version4.60">Version 4.60 (limited) (3/2/97)</a> -<ul> -<li><a href="#V4.60_Documentation">Documentation</a>, - <a href="#V4.60_Procedures">Procedures</a>, - <a href="#V4.60_Drivers">Drivers</a>, - <a href="#V4.60_Platforms">Platforms</a>, - <a href="#V4.60_Fonts">Fonts</a>, - <a href="#V4.60_Interpreter">Interpreter</a>, - <a href="#V4.60_Interpreter_PDF">Interpreter (PDF)</a>, - <a href="#V4.60_Streams">Streams</a>, - <a href="#V4.60_Library">Library</a> -</ul> -<li><a href="#Version4.51">Version 4.51 (limited) (2/9/97)</a> -<ul> -<li><a href="#V4.51_Procedures">Procedures</a>, - <a href="#V4.51_Drivers">Drivers</a>, - <a href="#V4.51_Platforms">Platforms</a>, - <a href="#V4.51_Interpreter">Interpreter</a>, - <a href="#V4.51_Streams">Streams</a>, - <a href="#V4.51_Library">Library</a> -</ul> -<li><a href="#Version4.50">Version 4.50 (limited) (1/31/97)</a> -<ul> -<li><a href="#V4.50_Documentation">Documentation</a>, - <a href="#V4.50_Procedures">Procedures</a>, - <a href="#V4.50_Drivers">Drivers</a>, - <a href="#V4.50_Platforms">Platforms</a>, - <a href="#V4.50_Interpreter">Interpreter</a>, - <a href="#V4.50_Streams">Streams</a>, - <a href="#V4.50_Library">Library</a> -</ul> -<li><a href="#Version4.41">Version 4.41 (private) (1/21/97)</a> -<ul> -<li><a href="#V4.41_Procedures">Procedures</a>, - <a href="#V4.41_Drivers">Drivers</a>, - <a href="#V4.41_Fonts">Fonts</a>, - <a href="#V4.41_Interpreter">Interpreter</a>, - <a href="#V4.41_Streams">Streams</a>, - <a href="#V4.41_Library">Library</a> -</ul> -<li><a href="#Version4.40">Version 4.40 (private) (1/13/97)</a> -<ul> -<li><a href="#V4.40_Documentation">Documentation</a>, - <a href="#V4.40_Utilities">Utilities</a>, - <a href="#V4.40_Drivers">Drivers</a>, - <a href="#V4.40_Interpreter">Interpreter</a>, - <a href="#V4.40_Interpreter_PDF">Interpreter (PDF)</a>, - <a href="#V4.40_Library">Library</a> -</ul> -<li><a href="#Version4.39">Version 4.39 (limited) (1/1/97)</a> -<ul> -<li><a href="#V4.39_Documentation">Documentation</a>, - <a href="#V4.39_Procedures">Procedures</a>, - <a href="#V4.39_Utilities">Utilities</a>, - <a href="#V4.39_Drivers">Drivers</a>, - <a href="#V4.39_Interpreter">Interpreter</a>, - <a href="#V4.39_Streams">Streams</a>, - <a href="#V4.39_Library">Library</a> -</ul> -<li><a href="#Version4.38">Version 4.38 (limited) (12/20/96)</a> -<ul> -<li><a href="#V4.38_Interpreter">Interpreter</a>, - <a href="#V4.38_Streams">Streams</a>, - <a href="#V4.38_Library">Library</a> -</ul> -<li><a href="#Version4.37">Version 4.37 (limited) (12/10/96)</a> -<ul> -<li><a href="#V4.37_Fonts">Fonts</a>, - <a href="#V4.37_Interpreter">Interpreter</a>, - <a href="#V4.37_Interpreter_PDF">Interpreter (PDF)</a>, - <a href="#V4.37_Library">Library</a> -</ul> -<li><a href="#Version4.36">Version 4.36 (limited) (12/3/96)</a> -<ul> -<li><a href="#V4.36_Documentation">Documentation</a>, - <a href="#V4.36_Drivers">Drivers</a>, - <a href="#V4.36_Interpreter">Interpreter</a>, - <a href="#V4.36_Library">Library</a> -</ul> -<li><a href="#Version4.35">Version 4.35 (limited) (11/24/96)</a> -<ul> -<li><a href="#V4.35_Documentation">Documentation</a>, - <a href="#V4.35_Procedures">Procedures</a>, - <a href="#V4.35_Interpreter">Interpreter</a>, - <a href="#V4.35_Streams">Streams</a>, - <a href="#V4.35_Library">Library</a> -</ul> -<li><a href="#Version4.34">Version 4.34 (limited) (11/18/96)</a> -<ul> -<li><a href="#V4.34_Documentation">Documentation</a>, - <a href="#V4.34_Procedures">Procedures</a>, - <a href="#V4.34_Drivers">Drivers</a>, - <a href="#V4.34_Interpreter">Interpreter</a>, - <a href="#V4.34_Streams">Streams</a>, - <a href="#V4.34_Library">Library</a> -</ul> -<li><a href="#Version4.33">Version 4.33 (limited) (11/6/96)</a> -<ul> -<li><a href="#V4.33_Documentation">Documentation</a>, - <a href="#V4.33_Procedures">Procedures</a>, - <a href="#V4.33_Interpreter">Interpreter</a>, - <a href="#V4.33_Library">Library</a> -</ul> -<li><a href="#Version4.32">Version 4.32 (limited) (11/1/96)</a> -<ul> -<li><a href="#V4.32_Documentation">Documentation</a>, - <a href="#V4.32_Drivers">Drivers</a>, - <a href="#V4.32_Platforms">Platforms</a>, - <a href="#V4.32_Fonts">Fonts</a>, - <a href="#V4.32_Interpreter">Interpreter</a>, - <a href="#V4.32_Library">Library</a> -</ul> -<li><a href="#Version4.31">Version 4.31 (limited) (10/27/96)</a> -<ul> -<li><a href="#V4.31_Documentation">Documentation</a>, - <a href="#V4.31_Procedures">Procedures</a>, - <a href="#V4.31_Platforms">Platforms</a>, - <a href="#V4.31_Interpreter">Interpreter</a>, - <a href="#V4.31_Interpreter_PDF">Interpreter (PDF)</a>, - <a href="#V4.31_Streams">Streams</a>, - <a href="#V4.31_Library">Library</a> -</ul> -<li><a href="#Version4.30">Version 4.30 (limited) (10/23/96)</a> -<ul> -<li><a href="#V4.30_Documentation">Documentation</a>, - <a href="#V4.30_Drivers">Drivers</a>, - <a href="#V4.30_Platforms">Platforms</a>, - <a href="#V4.30_Fonts">Fonts</a>, - <a href="#V4.30_Interpreter">Interpreter</a>, - <a href="#V4.30_Library">Library</a> -</ul> -<li><a href="#Version4.21">Version 4.21 (limited) (10/17/96)</a> -<ul> -<li><a href="#V4.21_Documentation">Documentation</a>, - <a href="#V4.21_Procedures">Procedures</a>, - <a href="#V4.21_Drivers">Drivers</a>, - <a href="#V4.21_Platforms">Platforms</a>, - <a href="#V4.21_Fonts">Fonts</a>, - <a href="#V4.21_Interpreter">Interpreter</a>, - <a href="#V4.21_Library">Library</a> -</ul> -<li><a href="#Version4.20">Version 4.20 (limited) (10/13/96)</a> -<ul> -<li><a href="#V4.20_Documentation">Documentation</a>, - <a href="#V4.20_Procedures">Procedures</a>, - <a href="#V4.20_Utilities">Utilities</a>, - <a href="#V4.20_Drivers">Drivers</a>, - <a href="#V4.20_Interpreter">Interpreter</a>, - <a href="#V4.20_Library">Library</a> -</ul> -<li><a href="#Version4.10">Version 4.10 (limited) (9/25/96)</a> -<ul> -<li><a href="#V4.10_Documentation">Documentation</a>, - <a href="#V4.10_Utilities">Utilities</a>, - <a href="#V4.10_Drivers">Drivers</a>, - <a href="#V4.10_Interpreter">Interpreter</a>, - <a href="#V4.10_Interpreter_PDF">Interpreter (PDF)</a>, - <a href="#V4.10_Library">Library</a> -</ul> -<li><a href="#Version4.03">Version 4.03 (9/23/96)</a> -<ul> -<li><a href="#V4.03_Documentation">Documentation</a>, - <a href="#V4.03_Procedures">Procedures</a>, - <a href="#V4.03_Drivers">Drivers</a>, - <a href="#V4.03_Fonts">Fonts</a>, - <a href="#V4.03_Streams">Streams</a> -</ul> -<li><a href="#Version4.02">Version 4.02 (9/19/96)</a> -<ul> -<li><a href="#V4.02_Documentation">Documentation</a>, - <a href="#V4.02_Procedures">Procedures</a>, - <a href="#V4.02_Utilities">Utilities</a>, - <a href="#V4.02_Drivers">Drivers</a>, - <a href="#V4.02_Platforms">Platforms</a>, - <a href="#V4.02_Interpreter">Interpreter</a>, - <a href="#V4.02_Interpreter_PDF">Interpreter (PDF)</a>, - <a href="#V4.02_Streams">Streams</a>, - <a href="#V4.02_Library">Library</a> -</ul> -<li><a href="#Version4.01">Version 4.01 (7/10/96)</a> -<ul> -<li><a href="#V4.01_Documentation">Documentation</a>, - <a href="#V4.01_Procedures">Procedures</a>, - <a href="#V4.01_Utilities">Utilities</a>, - <a href="#V4.01_Platforms">Platforms</a>, - <a href="#V4.01_Platforms">Platforms</a>, - <a href="#V4.01_Interpreter">Interpreter</a>, - <a href="#V4.01_Library">Library</a> -</ul> -<li><a href="#Version4.0">Version 4.0 (6/28/96)</a> -<ul> -<li><a href="#V4.0_Documentation">Documentation</a>, - <a href="#V4.0_Procedures">Procedures</a>, - <a href="#V4.0_Utilities">Utilities</a>, - <a href="#V4.0_Drivers">Drivers</a>, - <a href="#V4.0_Platforms">Platforms</a>, - <a href="#V4.0_Interpreter">Interpreter</a>, - <a href="#V4.0_Streams">Streams</a>, - <a href="#V4.0_Library">Library</a> -</ul> -</ul></blockquote> - -<!-- [1.2 end table of contents] =========================================== --> - -<!-- [1.3 begin hint] ====================================================== --> - -<p> -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: - -<blockquote> -<a href="News.htm">News</a><br> -History of Ghostscript versions 4.n (this document)<br> -<a href="History3.htm">History of Ghostscript versions 3.n</a><br> -<a href="History2.htm">History of Ghostscript versions 2.n</a><br> -<a href="History1.htm">History of Ghostscript versions 1.n</a> -</blockquote> - -<p>For other information, see the <a href="Readme.htm">Ghostscript -overview</a>. - -<!-- [1.3 end hint] ======================================================== --> - -<hr> - -<!-- [1.0 end visible header] ============================================== --> - -<h2><a name="Version4.81"></a>Version 4.81 (6/1/97)</h2> - -<p> -This is a last-minute set of bug fixes before the 5.0 release. - -<h3><a name="V4.81_Documentation"></a>Documentation</h3><pre> - -Adds some overlooked helpers to the list. (helpers.txt) - -</pre><h3><a name="V4.81_Procedures"></a>Procedures</h3><pre> - -Makes a distinction between 2-part and 3-digit version numbers. -(version.mak, vms.mak) - -</pre><h3><a name="V4.81_Utilities"></a>Utilities</h3><pre> - -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) - -</pre><h3><a name="V4.81_Drivers"></a>Drivers</h3><pre> - -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) - -</pre><h3><a name="V4.81_Platforms"></a>Platforms</h3><pre> - -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) - -</pre><h3><a name="V4.81_Interpreter"></a>Interpreter</h3><pre> - -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) - -</pre><h3><a name="V4.81_Library"></a>Library</h3><pre> - -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) - -</pre> - -<h2><a name="Version4.80"></a>Version 4.80 (limited) (5/28/97)</h2> - -<p> -This is the candidate fileset for the 5.0 release. - -<h3><a name="V4.80_Documentation"></a>Documentation</h3><pre> - -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) - -</pre><h3><a name="V4.80_Procedures"></a>Procedures</h3><pre> - -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) - -</pre><h3><a name="V4.80_Utilities"></a>Utilities</h3><pre> - -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) - -</pre><h3><a name="V4.80_Drivers"></a>Drivers</h3><pre> - -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) - -</pre><h3><a name="V4.80_Platforms"></a>Platforms</h3><pre> - -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) - -</pre><h3><a name="V4.80_Fonts"></a>Fonts</h3><pre> - -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) - -</pre><h3><a name="V4.80_Interpreter"></a>Interpreter</h3><pre> - -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) - -</pre><h3><a name="V4.80_Streams"></a>Streams</h3><pre> - -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) - -</pre><h3><a name="V4.80_Library"></a>Library</h3><pre> - -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) - -</pre> - -<hr> - -<h2><a name="Version4.74"></a>Version 4.74 (limited) (5/5/97)</h2> - -<p> -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. - -<h3><a name="V4.74_Documentation"></a>Documentation</h3><pre> - -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) - -</pre><h3><a name="V4.74_Utilities"></a>Utilities</h3><pre> - -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) - -</pre><h3><a name="V4.74_Drivers"></a>Drivers</h3><pre> - -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) - -</pre><h3><a name="V4.74_Interpreter"></a>Interpreter</h3><pre> - -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) - -</pre><h3><a name="V4.74_Streams"></a>Streams</h3><pre> - -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) - -</pre><h3><a name="V4.74_Library"></a>Library</h3><pre> - -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) - -</pre> - -<h2><a name="Version4.73"></a>Version 4.73 (limited) (4/19/97)</h2> - -<p> -This is an incremental bug fix release made primarily to provide a -synchronization point for an upcoming trip. - -<h3><a name="V4.73_Documentation"></a>Documentation</h3><pre> - -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) - -</pre><h3><a name="V4.73_Procedures"></a>Procedures</h3><pre> - -Fixes bugs: - - The makefiles didn't provide a default value for GCONFIG_EXTRAS. -(gs.mak) - -</pre><h3><a name="V4.73_Utilities"></a>Utilities</h3><pre> - -Fixes bugs: - - pdf2ps didn't work with TrueType or compressed Type 1 fonts. -(gs_pdf.ps, pdf_2ps.ps, pdf_font.ps) - -</pre><h3><a name="V4.73_Drivers"></a>Drivers</h3><pre> - -Fixes bugs: - - A cast from byte to char was omitted. (gdevpdfm.c) - -</pre><h3><a name="V4.73_Platforms"></a>Platforms</h3><pre> - -Updates the VMS script (again). (vms.mak) - -</pre><h3><a name="V4.73_Interpreter"></a>Interpreter</h3><pre> - -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) - -</pre><h3><a name="V4.73_Interpreter_PDF"></a>Interpreter (PDF)</h3><pre> - -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) - -</pre><h3><a name="V4.73_Streams"></a>Streams</h3><pre> - -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) - -</pre><h3><a name="V4.73_Library"></a>Library</h3><pre> - -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) - -</pre> - -<h2><a name="Version4.72"></a>Version 4.72 (limited) (4/14/97)</h2> - -<p> -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. - -<h3><a name="V4.72_Documentation"></a>Documentation</h3><pre> - -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 GNU/Linux may require SM and ICE in the list of X -libraries. (make.txt) - -</pre><h3><a name="V4.72_Procedures"></a>Procedures</h3><pre> - -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) - -</pre><h3><a name="V4.72_Drivers"></a>Drivers</h3><pre> - -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) - -</pre><h3><a name="V4.72_Platforms"></a>Platforms</h3><pre> - -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) - -</pre><h3><a name="V4.72_Interpreter"></a>Interpreter</h3><pre> - -Fixes bugs: - - Caching the current device in userdict could create dangling -references. (gs_init.ps, gs_pdfwr.ps, zdevice.c) - - If an error occurred in a BuildChar or BuildGlyph procedure, the -graphics state stack wasn't restored. (ichar.h, zchar.c, zchar2.c) - - There was an obsolete check for a structure when cleaning up after -a show operator. (zchar.c) - - Attempting to show a character with no associated glyph in a Type -3 font with a BuildGlyph procedure caused an error. (zchar.c) - - noaccess on a read-only dictionary didn't give an error. -(ztype.c) - - The dictionary passed to a Pattern's PaintProc was the original -template, not the copy made by makepattern. (gs_lev2.ps) - - Invalid font parameters could result in partially constructed -fonts, which caused problems for restore. (zfont0.c, zfont2.c) - - Files run under job control caused an error when terminating. -(gs_init.ps) - - setpagedevice didn't protect itself against malfunctioning -BeginPage or EndPage procedures. (The protection is still not perfect.) -(gs_setpd.ps) - - .type42execchar called font_param redundantly. (zchar42.c) - - The font operators didn't protect themselves well enough against -bogus font dictionaries. (zfont.c, zfont0.c) - - If an error occurred within a stringwidth, the graphics state -stack wasn't restored properly. (zchar.c) - - If an error occurred within the PaintProc of a form, the graphics -state stack was left with an extra entry. (gs_lev2.ps) - - Registering a font under a second name could corrupt data -structures. (zfont2.c) - - Different scalings of the same font should have "equal" fontIDs, -to match the Adobe implementations. (iutil.c) - - Errors detected by PostScript code during initialization either -allowed execution to continue or produced a hex stack dump, instead of just -producing a message and exiting. (interp.c) - - The memory validator didn't validate chunks at previous save -levels. (ilocate.c) - - The Level 1 size of systemdict was too small. (iinit.c) - - Attempting to define a Category resource in local VM gave a -typecheck error rather than an invalidaccess. (gs_res.ps) - - Building Level 1 systems was no longer possible. (zusparam.c) - -Rearranges the interpreter code slightly so that all operator invocations go -through a single procedure when debugging. (interp.c) - -Adds a -K<numK> switch to limit the total amount of memory that Ghostscript -can acquire. (imainarg.c) - -Makes the memory validator check packed refs more carefully. (ilocate.c) - -Makes the memory validator check explicitly for pointers to freed objects. -(igc.c, ilocate.c) - -Makes the memory validator check dictionaries more carefully. (ilocate.c) - -Makes the memory validator check refs embedded in structures. (ilocate.c) - -Adds a debugging option that bypasses the garbage collector entirely. -(igc.c) - -Adds debugging options to validate memory before/after save/restore. -(zvmem.c) - -Removes the patch for the uniprint driver, since it is no longer needed. -(gs_init.ps) - -Implements real-number operands in CFF fonts. (gs_cff.ps) - -Implements non-default charsets in CFF fonts. (gs_cff.ps) - -</pre><h3><a name="V4.72_Interpreter_PDF"></a>Interpreter (PDF)</h3><pre> - -Fixes bugs: - - The PDF 1.2 "marked content" operators weren't defined. -(pdf_main.ps) - - Streams with binary data whose first character was an EOL (\n) -didn't parse properly. Unfortunately, the way we fixed this may break some -other files. (pdf_base.ps) - - PDF 1.2 #nn escape syntax in names wasn't recognized. ****** This -is implemented with an inefficient hack that should be moved down into C. -However, I don't want to risk introducing new bugs during the beta test -period. ****** (pdf_base.ps) - - The interpreter had a limit of 64K objects. Removing this limit -required changing a basic data structure -- admittedly a risky thing to do -during beta test. (pdf_base.ps, pdf_main.ps) - - TJ didn't multiply the offsets by the font size, causing incorrect -character positioning. (gs_pdf.ps) - -</pre><h3><a name="V4.72_Streams"></a>Streams</h3><pre> - -Fixes bugs: - - The ASCIIHexDecode filter read an extra character in case of -error. (sstring.c) - -Adds more tracing output to the CCITTFaxDecode stream. (scfd.c) - -</pre><h3><a name="V4.72_Library"></a>Library</h3><pre> - -Fixes bugs: - - The allocator client name for rendering bitmap patterns was -incorrect. (Only affects tracing output.) (gspcolor.c) - - The check for exceeding the overall allocation limit was -incorrect, because of unsigned arithmetic. (Only affects limitation of -total allocation, which is only used for debugging and benchmarking.) -(gsmemory.c) - - The 0'th component of colored screens wasn't passed through the -band list, possibly causing access errors when rasterizing. (gxclimag.c, -gxclread.c) - - setbbox could get an overflow without detecting it. (gsdps1.c) - - Images with only one component but MultipleDataSources = true -could cause a memory access error. (gximage.c) - - The buffer for unpacking 12-bit-per-sample image data was too -small, causing memory corruption. (gximage.c) - - 12-bit-per-sample images with multiple data sources sometimes -didn't pass correct pointers to image_data. (gsimage.c) - - If an image data stream reached EOF before supplying enough data -for the entire image, memory corruption could occur. (zpaint.c) - - When a device halftone was freed, some pointers in the halftone -cache weren't cleared, leading to possible dangling references. (gsstate.c) - - Invalid font parameters could result in partially constructed -fonts, which caused problems for restore. (gxfont0.h, gsfont.c) - - If an error occurred within a stringwidth, the graphics state -stack wasn't restored properly. (gschar.c) - - The (static) limit on the size of a command line argument was too -small. (gsargs.h) - - Building Level 1 systems was no longer possible. (gxdht.h, -gsht.c, gsht1.c) - - Truncation instead of rounding caused colors on gray-scale devices -to come out very slightly too dark. (gxcmap.c) - - The Decode mapping table constructed for images was slightly -inaccurate for ranges other than [0 1] or [1 0]. (gximage.c) - -</pre> - -<h2><a name="Version4.71"></a>Version 4.71 (limited) (3/31/97)</h2> - -<p> -This is a bug fix release during the beta test period. - -<h3><a name="V4.71_Documentation"></a>Documentation</h3><pre> - -Fixes bugs: - - A larger value of -Olimit is now needed to optimize gxclread.c. -(make.txt) - - Some comments were incorrect. (gdevbbox.h, sfilter1.c) - -Updates the GPL with a newer version from FSF. (COPYLEFT) - -Notes that the gcc 2.7.x code generation bug is fixed in 2.7.2.1. -(make.txt) - -</pre><h3><a name="V4.71_Procedures"></a>Procedures</h3><pre> - -Fixes bugs: - - Some streams required by high-level drivers were incorrectly -grouped with the interpreter rather than the library. (int.mak, lib.mak) - - The choice of implementation for file streams was buried in an -obscure place, rather than being included in the configuration definitions -at the head of each makefile. (We believe there are no more such buried -parameters.) This involved a NON-BACKWARD-COMPATIBLE change in the way this -choice was specified. (lib.mak, *.mak) - - Some dependencies were missing. (lib.mak) - -</pre><h3><a name="V4.71_Drivers"></a>Drivers</h3><pre> - -Fixes bugs: - - A variable was used before being initialized, causing get_bits -(and raster ops) to fail when using alternate X devices. (bug introduced in -4.70.) (gdevxalt.c) - - Some 'private' declarations were omitted. (It is infuriating that -gcc doesn't check for this!) (gdevps.c, gdevpx.c) - - A few character strings were used as byte arrays without a cast. -(gdevpx.c) - - The EPS writer didn't write a correct bounding box, and didn't -write it at the beginning of the file. (gdevvec.h, gsstruct.h, gdevps.c, -gdevvec.c) - - x_copy_color specified an incorrect (too large) image width. -Apparently this only mattered because it could cause invalid memory -accesses. (gdevx.c) - - x_copy_mono also specified too large an image width. It's not -clear this made any difference. (gdevx.c) - - The default implementation of strip_copy_rop didn't clamp Y values -to legal values for get_bits. (gdevmrop.c) - -</pre><h3><a name="V4.71_Interpreter"></a>Interpreter</h3><pre> - -Fixes bugs: - - Some initialization files prematurely switched the interpreter -into Level 2 mode, causing some Level 2 operators not to be defined. (bug -introduced in 4.60 or later.) (gs_cff.ps, gs_cidfn.ps, gs_cmap.ps, -gs_init.ps, gs_res.ps) - -</pre><h3><a name="V4.71_Streams"></a>Streams</h3><pre> - -Fixes bugs: - - The choice of procedure names for the file-descriptor-based -implementation of file streams was buried in a .c file, rather than being -chosen in the makefile. (sfile.c[deleted], sfileno.c[deleted], sfxstdio.c, -sfxfd.c, sfxboth.c) - -</pre><h3><a name="V4.71_Library"></a>Library</h3><pre> - -Fixes bugs: - - rcurveto was broken -- it drew curves to random points. (bug -introduced in 4.61.) (gspath.c) - - A trailing comma in an enum definition upset some compilers. (bug -introduced in 4.70.) (gstype1.h) - - Type 1 fonts with hint replacement could produce anomalous or -clipped output, or even missing lines. (Also cleans up some out-of-date -formatting.) (gxtype1.h, gstype1.c, gxhint2.c) - - Removes some conditionals for choosing between old and new -algorithms. (gxhint3.c) - - makebitmappattern required that the bitmap consist of only a -single tile repetition. (gspcolor.c) - - Some computations on RasterOps didn't take transparency into -account properly. (gdevmrop.c) - - The structure definition for imager and graphics states had an -incorrect offset for line_params, causing the garbage collector not to mark -or relocate dash patterns, possibly causing memory faults, FPEs, or invalid -output. (bug introduced since 4.03.) (gsstate.c) - - 'show' operators gave a limitcheck for unreasonable coordinates, -even if limit clamping was enabled. (gschar.c) - -Implements banded filling and stroking with colored halftones, in addition -to pure colors and binary halftones. Since we are in a beta test period, -actual use of this feature (but *not* all the code implementing it) is -disabled under an #ifdef FUTURE. (gsdcolor.h, gxcldev.h, gxclpath.h, -gxdht.h, gxhttype.h, gsht.c, gxclimag.c, gxclpath.c, gxclread.c) - -</pre> - -<h2><a name="Version4.70"></a>Version 4.70 (limited) (3/26/97)</h2> - -<p> -This fileset fixes the one outstanding compilation problem on PC platforms -and the old problem of limitchecks for out-of-bounds coordinates, and adds a -variety of new features, including the ability to save away the band lists -for pages and rasterize them later and/or elsewhere in any order and -combination. This is the first "serious beta" candidate for the next -general release. - -<p> -Fileset numbers 4.62 through 4.69 were skipped deliberately. - -<h3><a name="V4.70_Documentation"></a>Documentation</h3><pre> - -Fixes bugs: - - The list of special -d and -s switches was out of date. (use.txt) - - The name of the zlibDecode filter was incorrectly written -zlibEncode. (language.txt) - -Documents where to find out how to install gcc 2.7.x on SGI IRIX 6.x. -(make.txt) - -Documents a makefile patch required on NeXTStep. (make.txt) - -Documents how to patch gcc to fix the AXP code generation bug. (make.txt) - -Adds documentation for the new unified printer driver. (devices.txt) - -</pre><h3><a name="V4.70_Procedures"></a>Procedures</h3><pre> - -Fixes bugs: - - 'make distclean' didn't remove a couple of files. (gs.mak) - - A library module didn't include a necessary dependency. (lib.mak) - - A new .ps file wasn't installed properly. (unix-end.mak) - - File write dates weren't updated properly on PC platforms, causing -unnecessary rebuilding. (cp.bat, gs.mak, msc.mak, msvcwint.mak, os2.mak, -tccommon.mak, wccommon.mak, zlib.mak) - - An unnecessary explicit compilation line for gdevcdj.c caused -problems in the Mac environment. (devs.mak) - - The VMS scripts were out of sync again. (vms.mak) - - The VMS build scripts didn't include the new JPEG driver. -(vms-*.mak) - - A number of makefile macros were referenced before being defined. -(devs.mak, lib.mak, int.mak, *.mak) - - libpng.mak didn't work with PVERSION=90. (libpng.mak, zlib.mak) - -Separates install-scripts from install-exec and install-data. -(unix-end.mak) - -Moves the definition of SEARCH_HERE_FIRST from iminst.h to the makefiles. -(*.mak, iminst.h, iconf.c, imain.c) - -Adds a -dBATCH switch that causes Ghostscript to exit after processing the -files named on the command line. (gs_init.ps) - -Adds the PostScript, EPS, and PCL XL writers, and the color and gray-scale -JPEG drivers, to all Unix configurations. (ansihead.mak, cc-head.mak, -gcc-head.mak) - -</pre><h3><a name="V4.70_Drivers"></a>Drivers</h3><pre> - -NOTE: because of a change in an internal interface (clist_output_page), the -cp50 driver no longer works. This is a user-contributed driver for which we -take no responsibility. - -Fixes bugs: - - gdevcdj.c wasn't compatible with ansi2knr. (gdevcdj.c) - - 'private' was omitted from some declarations. (gdevjpeg.c) - - The PostScript writer didn't keep track of the current color -properly. (gdevps.c) - - RESOLUTION was misspelled in a header. (gdevbjc.h) - - Some compilers objected to the use of a floating point initial -resolution value. (gdevbjc.h) - - Some compilers didn't allow static initialization of a union. -(gsdcolor.h) - - If a TIFF driver got an error when initializing the CCITTFax -encoder, it returned a bogus error code. (gdevtfax.c) - - The PDF writer produced incorrect output for Indexed color space -images. (gdevpdfi.c) - - For many fatal error conditions, the X driver called exit() -instead of returning an error. (gdevx*.c) - -Adds new drivers: - - epswrite, an EPS-writing driver (instead of making EPS output a -parametric option of the PostScript-writing device). (devs.mak, gdevps.c) - - pcxcmyk, a 4-bit CMYK PCX driver. This is probably only useful -for debugging CMYK color rendering. (gdevpcx.c) - - jpeggray, a JPEG driver that produces gray-scale rather than color -output. Thanks to Tom Lane for contributing this. (gdevjpeg.c) - - uniprint, a unified printer driver for a wide variety of inkjet -printers. Thanks to Gunther Hess for contributing this. (gdevupd.c) - -Adds the resolution (pHYs) to the output of the PNG drivers. (gdevpng.c) - -Adds recognition of the ASCII85EncodePages parameter to the PostScript and -EPS writers. (gdevps.c) - -Makes the new JPEG driver write a JFIF header, which contains the image -resolution. (gdevjpeg.c) - -Changes the "vector" device support interface so relative movement can be -detected easily. THIS IS STILL SUBJECT TO CHANGE WITHOUT NOTICE. -(gdevvec.h, gdevpsdf.c, gdevps.c, gdevpx.c, gdevvec.c) - -Changes the PostScript, EPS, and PDF writers to recognize curves and lines -that can be represented more efficiently. (gdevpsdf.h, gdevpsdf.c, -gdevps.c) - -Adds a new parameter to the PDF writer, FirstObjectNumber. This defines the -first object number that will be used in the output. The default, and -minimum, value is 1; the maximum value is approximately 2^31. This is for -the benefit of dvipdf; we don't expect it to be used otherwise. In fact, -using it appears to produce files that Adobe Acrobat Reader won't accept, -even though the files are perfectly compliant with the published PDF -specification. (gdevpdfx.h, gdevpdf.c, gdevpdfp.c) - -</pre><h3><a name="V4.70_Platforms"></a>Platforms</h3><pre> - -Removes the makefile for the 16-bit Borland C++ platform. This was the last -supported 16-bit platform; we expect to gradually drop all 16-bit -concessions from the code itself. (bcwin.mak) - -</pre><h3><a name="V4.70_Interpreter"></a>Interpreter</h3><pre> - -Fixes bugs: - - The initial size of systemdict was too small, causing the -interpreter to slow down substantially. (iinit.c) - - A library module depended on an interpreter module. (zcsindex.c) - - A logically necessary (but accidentally always available) #include -was missing. (ifont.h) - -Moves set/currentoverprint to a more appropriate module. (zcolor2.c, -zcssepr.c) - -Changes the default transfer functions so that they do something reasonable -when given operands outside the legal [0..1] range. We only do this to work -around a bug in FrameMaker output, which uses the transfer function as the -screen function (!). (gs_init.ps) - -Changes the CMap construction algorithm to use the new, more compact -representation. (zfcmap.c) - -Adds support for Adobe's Compact Font Format. Many individual features are -not implemented yet: see the comment in the source code for details. -(gs_cff.ps) - -Adds support for Type 2 charstrings in Type 1 fonts. (ifont.h, zfont1.c) - -Changes the Type 1 character rendering operator for the library change in -Type 1 fonts. (zchar1.c, zfont1.c) - -Initializes the graphics state limit clamp flag to true. (zgstate.c) - -Temporarily adds a configuration file for the new unified printer driver, -and arranges for it to be read at startup. This arrangement will be -replaced very soon by a different one based on command line parameters. -(gs_init.ps, uniprint.ps) - -</pre><h3><a name="V4.70_Interpreter_PDF"></a>Interpreter (PDF)</h3><pre> - -Adds support for Compact Font Format fonts. (pdf_font.ps) - -</pre><h3><a name="V4.70_Streams"></a>Streams</h3><pre> - -Adds a glue procedure needed for the new jpeggray driver. (sjpeg.h, -sjpege.c) - -Removes the width limit of 32K in the CCITTFaxEncode filter. The new limit -is absurdly large (about 50M). (scf.h, scfx.h, scfe.c) - -</pre><h3><a name="V4.70_Library"></a>Library</h3><pre> - -Fixes bugs: - - A library module depended on an interpreter module. (gxcolor2.h, -gscolor2.c) - - When rendering a band, clipping was sometimes used when it wasn't -necessary. (Performance only.) (gxclread.c) - - Stroking didn't check the path against the device clipping box in -the absence of an explicit (non-default) clipping path. (Performance only.) -(gxstroke.c) - - A reference to an opaque type upset a couple of compilers. -(gxclread.c) - - Negative 32-bit numbers in Type 1 fonts didn't work properly on -64-bit systems. (gstype1.c) - - A logically necessary (but accidentally always available) #include -was missing. (gxbitmap.h) - - A header wasn't protected against double inclusion. (gxclist.h) - - Clipping devices didn't store their actual width and height. -(gxcpath.c) - - The slow-case check for thin lines was incorrect. (gxstroke.c) - - Images didn't compute their clipping boxes correctly if there -wasn't an explicit clipping path. (This must be a very recent bug, since it -creates an overflow condition that prevents monochrome images from being -rendered at all.) (gximage.c) - -Moves set/currentoverprint to a more appropriate module. For clients of -gs_set/currentoverprint, this is a NON-BACKWARD-COMPATIBLE CHANGE, since the -header file is now separate. (gscolor2.h, gscsepr.h, gscolor2.c, gscsepr.c) - -Replace the MetroWerks work-around with a different, more general one. -(gdevmem.h, gdevmem.c, gxdevice.h) - -Speeds up the Type 1 interpreter a little. (gstype1.c, gxhint3.c) - -Redesigns the internal representation of CMaps to be more space-efficient. -(gxfcmap.h, gschar0.c, gsfcmap.c) - -Implements a facility for saving away pages and rendering them later. -Currently this requires the pages to be represented as band lists on files, -and only allows X translation when rendering. This involves adding the -following new printer device parameters: - BandHeight - BandWidth - BandBufferSpace -Also changes the names of the printer device parameter elements from -use_buffer_space to BufferSpace and from max_bitmap to MaxBitmap for -consistency. (gdevprn.h, gxcldev.h, gxclio.h, gxclist.h, gxclmem.h, -gxclpage.h, gxdevmem.h, gdevmem.c, gdevp2up.c, gdevprn.c, gxclmem.c, -gxclpath.c, gxclread.c) - -Changes the band list implementation API to allow closing a file without -deleting it, and to allow reopening an existing file. This is a -NON-BACKWARD-COMPATIBLE change to a deep internal interface. (gxclio.h, -gxclmem.h, gxclfile.c, gxclist.c, gxclmem.c) - -Speeds up rendering of colored halftones, by recognizing cases where one or -more planes don't actually require screening, unrolling a loop, and doing -basic clipping before halftoning. (gxcht.c) - -Adds a graphics state parameter, gs_set/currentlimitclamp, that changes the -handling of out-of-range coordinates to clamp them in a way that produces -approximately the intended output most of the time, rather than causing a -limitcheck. Currently this is only designed to work with the basic path -construction operations ([r]moveto, [r]lineto, [r]curveto, closepath); it -does not work with many other operations such as show, flattenpath or the -rectangle operations. Note also that while currentpoint will return the -correct (unclamped) value, reading out the path with pathforall will return -clamped values. This involves NON-BACKWARD-COMPATIBLE changes to the path -structure (but not to any public interfaces). (gxpath.h, gxtype1.h, -gzpath.h, gzstate.h, gspath.c, gspath1.c, gsstate.c, gstype1.c, gxpaint.c, -gxpath.c, gxpath2.c, gxpcopy.c) - -Adds support for Type 2 charstrings. Some features are not implemented yet: -see gstype2.c for details. (gscrypt1.h, gstype1.h, gxfont1.h, gxop1.h, -gxtype1.h, gstype1.c, gstype2.c, gxhint2.c, gxhint3.c, gxtype1.c) - -</pre> - -<hr> - -<h2><a name="Version4.61"></a>Version 4.61 (limited) (3/13/97)</h2> - -<p> -This fileset cleans up many compiler warnings. It adds support for -CMap-encoded fonts, and a driver that writes JPEG images. - -<h3><a name="V4.61_Documentation"></a>Documentation</h3><pre> - -Corrects an error in the description of the internal CodeMap structure. -(gs_cmap.ps) - -Documents the fact that the optimizer in gcc 2.7.2.1 is broken on AXP -machines. (make.txt) - -Corrects the name of the .setglobal/.currentglobal procedures. (zvmem2.c) - -Updates current.txt in preparation for the release. (current.txt) - -</pre><h3><a name="V4.61_Procedures"></a>Procedures</h3><pre> - -Fixes bugs: - - The VMS script was out of date again. (vms.mak) - - CIDFont support unnecessarily required composite font support. -(int.mak) - - CMap and CIDFont support had improper dependencies on -initialization order. (lib.mak, int.mak) - - Some dependencies were missing in the JPEG library code. -(jpeg.mak) - -Adds the new JPEG driver to all standard configurations. (*.mak) - -</pre><h3><a name="V4.61_Drivers"></a>Drivers</h3><pre> - -Fixes bugs: - - A dependency was omitted from the makefile. (devs.mak, gdevps.c) - -Cleans up some warnings from picky compilers. Some of these actually -indicated problems, such as unreachable code. (gdevpdfx.h, gdevbj10.c, -gdevcdj.c, gdevpdfp.c, gdevstc.c) - -Adds a JPEG-writing driver. Currently this only produces RGB output and -only has a QFactor parameter, but eventually it could take all the other -parameters of the DCTEncode filter. (devs.mak, int.mak, lib.mak, -gdevjpeg.c) - -Refactors the PDF and PostScript output drivers so that both of them -understand all the relevant documented PDF distiller parameters. (The -PostScript driver currently disregards nearly all of them.) (gdevpdfx.h, -gdevpsdf.h, gdevvec.h, gdevpdf*.c, gdevps.c, gdevpsdf.c, gdevpx.c) - -</pre><h3><a name="V4.61_Platforms"></a>Platforms</h3><pre> - -Fixes bugs: - - The MetroWerks C compiler gave an inexplicable error on a -particular initialization. (gdevmem.h, gdevmem.c) - -</pre><h3><a name="V4.61_Interpreter"></a>Interpreter</h3><pre> - -Fixes bugs: - - The insideness testing operators sometimes reported hits -incorrectly. (zupath.c) - - Mixed-type arithmetic used floats rather than doubles when -converting integers, possibly leading to loss of precision. (zarith.c, -zrelbit.c) - - composefont was defined in a private dictionary, not in -systemdict. (gs_cmap.ps) - - composefont didn't work, for several different reasons. -(gs_cmap.ps) - - After a Type 1 font called an OtherSubr, an invalid memory access -usually occurred, because of an incorrect attempt to free a data structure. -(zchar1.c) - - 2 .setlanguagelevel gave an error if globaldict hadn't been -defined yet. (zmisc2.c) - -Cleans up some warnings from picky compilers. Some of these actually -indicated problems, such as unreachable code, or failure to check for -(implausible) out-of-range data. (idict.c, idparam.c, igc.c, iinit.c, -imain.c, iscan.c, zbseq.c, zchar1.c, zdps1.c) - -Adjusts clients for a change in the internal character cache structure and -the introduction of the font next-glyph procedure. (zfont.c, zfont0.c) - -Refactors the Level 1 / Level 2 interpreter split slightly so that composite -fonts don't require all of Level 2. (int.mak, gs_dps1.ps, gs_dps2.ps) - -Adds FMapType 9 (CMap-encoded) composite font support. (int.mak, -gs_cmap.ps, ifont.h, zfcmap.c, zfont.c, zfont0.c) - -</pre><h3><a name="V4.61_Interpreter_PDF"></a>Interpreter (PDF)</h3><pre> - -Adds recognition of /Identity values for BG, UCR, and TR functions in -ExtGState resources. (General function values still aren't recognized.) -(pdf_draw.ps) - -Centralizes the handling of inherited attributes. (pdf_draw.ps, -pdf_main.ps) - -Starts to add support for Type 0 fonts. (pdf_font.ps, pdf_main.ps) - -</pre><h3><a name="V4.61_Streams"></a>Streams</h3><pre> - -Cleans up some warnings from picky compilers. Some of these actually -indicated problems, such as unreachable code. (shc.h, scfd.c, sfilter2.c, -siscale.c, stream.c) - -</pre><h3><a name="V4.61_Library"></a>Library</h3><pre> - -Fixes bugs: - - Some picky compilers disliked certain conditional expressions. -(gxclread.c) - - Some picky compilers couldn't handle an extraneous semicolon. -(gdevvec.h) - - A cast from byte ** to const byte ** was missing. (gdevvec.c) - - Resizing the levels array of a halftone order when banding could -cause invalid memory accesses. (bug introduced in 4.60) (gxclread.c) - - One picky compiler didn't allow taking the address of an extern -undefined structure. (lib.mak, gxclread.c) - - When rendering Type 1 fonts, character overshoot was usually -suppressed when it shouldn't have been, often producing "squashed" -characters. (gxhint1.c) - - On systems where sizeof(long) > sizeof(int), coordinate values of -more than 22 bits were passed through the band list incorrectly, producing -incorrect output. (gxclread.c) - -Cleans up some warnings from picky compilers. Some of these actually -indicated problems, such as unreachable code or (hypothetical) loss of -precision. (gsdevice.c, gshsb.c, gsht.c, gsstate.c, gstype1.c, gxclimag.c, -gxclpath.c, gxclread.c, gxpdash.c) - -Makes using font hints conditional, for debugging. (gxhint1.c) - -Adds library-level support for FMapType 9 (CMap-encoded) composite fonts. -There is still no support for rearranged fonts. (gsccode.h, gsfcmap.h, -gsstruct.h, gxfcache.h, gxfcmap.h, gxfont.h, gxfont0.h, gschar.c, gschar0.c, -gsfcmap.c, gsfont.c, gsfont0.c) - -Splits band list control and utilities from rectangle-oriented commands, -because a file was getting too big. (gxclist.c, gxclrect.c) - -Moves the temporary file names for command lists from the printer device -structure to the command list structure; moves opening and closing the -temporary files from gdev_prn_alloc/free to clist_open/close. (gdevprn.h, -gxclist.h, gdevprn.c, gxclist.c, gxclread.c) - -Changes the command list storage implementation interface to pass the file -name to the clist_rewind and clist_fseek functions, for the benefit of OSs -that require closing and reopening a file to switch between reading and -writing. This is a NON-BACKWARD-COMPATIBLE change in a non-public -interface. (gxclio.h, gxclmem.h, gxclfile.c, gxclist.c, gxclmem.c) - -Changes the get_outline procedure in Type 42 fonts to return the length of -the outline data as well as the pointer. This is a NON-BACKWARD-COMPATIBLE -change in a semi-public interface. (gxfont42.h, gstype42.c) - -</pre> - -<h2><a name="Version4.60"></a>Version 4.60 (limited) (3/2/97)</h2> - -<p> -This fileset moves color rendering up from the graphics state to the imager -state so that color rendering can happen after banding. It also shifts -image rendering to the rendering pass of banding for many common cases -(often referred to inaccurately as "high-level image" capability). The -changes involved are substantial and in some respects subtle, so -unfortunately it is quite possible that some new bugs have been introduced. - -<p> -This fileset also includes improvements to the new PCL XL driver -(pxlmono/color), and introduces an experimental PostScript driver (pswrite). - -<h3><a name="V4.60_Documentation"></a>Documentation</h3><pre> - -Fixes bugs: - - The argument list of colorimage was incorrect. (zcolor1.c) - - false .charboxpath incorrectly claimed to create the correct path -even when the CTM was not well-behaved. (language.txt) - - The discussion of the "main program" files was out of date. -(make.txt) - -Updates the OS/2 EMX documentation. (make.txt) - -Modifies the Aladdin Ghostscript Free Public License slightly so it may be -applied to other software packages. (PUBLIC) - -Updates inaccurate build documentation for several Unix platforms. -(make.txt, ansihead.mak, cc-head.mak, gcc-head.mak, libpng.mak) - -Notes a problem with the MIPSpro 7.1 compiler. (make.txt) - -</pre><h3><a name="V4.60_Procedures"></a>Procedures</h3><pre> - -Fixes bugs: - - Most makefiles didn't include version.mak. (msc.mak, -msvcwint.mak, os2.mak, tctail.mak, wctail.mak) - - There was an incorrect dependency for the Windows printer device. -(devs.mak) - -Moves the PDF writer to devs.mak. (devs.mak, int.mak) - -Updates the main VMS script to be structured like version.mak. (vms.mak) - -</pre><h3><a name="V4.60_Drivers"></a>Drivers</h3><pre> - -Factors out the stream-writing procedures from the PDF writer, so they can -be shared with the new PostScript writer. (gdevpdfs.h => gdevpstr.h, -gdevpdfx.h, gdevpsdf.h, gdevpdf.c, gdevpdfi.c, gdevpdfs.c => gdevpstr.c, -gdevpdft.c, gdevpsdf.c) - -Adds a PostScript writer (pswrite), similar to the PDF and PCL XL drivers. -Currently this handles fill/stroke graphics and Level 1 images; everything -else (including text) is turned into bitmaps. (devs.mak, gdevps.c) - -Changes the names of the PCL XL drivers from hpxmono/color to pxlmono/color. -(devs.mak, gdevpx.c) - -Updates the "vector" device support interface. THIS IS STILL SUBJECT TO -CHANGE WITHOUT NOTICE. (gdevvec.h, gdevpx.c, gdevvec.c) - -Makes the vgalib driver a page device. This seems bizarre, but it's -necessary for setpagedevice to work with it. (gdevvglb.c) - -Updates some drivers for the new color mapping interfaces. (gdevpx.c) - -Updates the user-contributed Canon LBP-8II and LIPS III driver. -(gdevlbp8.c) - -</pre><h3><a name="V4.60_Platforms"></a>Platforms</h3><pre> - -Fixes bugs: - - The workaround for Ultrix's incorrect implementation of sh -e -still didn't work. (unixtail.mak) - - The definition of offset_of didn't work on the Mac. (stdpre.h) - -Updates the OS/2 EMX linker command per input from a user. (os2.mak) - -</pre><h3><a name="V4.60_Fonts"></a>Fonts</h3><pre> - -Adds .pss (apparently used by Adobe for Multiple Master font instances) to -the list of extensions skipped by the GS_FONTPATH directory scanner. -(gs_fonts.ps) - -</pre><h3><a name="V4.60_Interpreter"></a>Interpreter</h3><pre> - -Fixes bugs: - - Programs that rebind null, true, and/or false could cause all -kinds of problems. We've only fixed a couple of the places that might be -affected (findfont, quit), by wrapping an explicit "systemdict begin/end" -around the code; fixing this completely would probably require wrapping this -implicitly around almost every pseudo-operator, which would be too -expensive. (gs_fonts.ps, gs_lev2.ps) - - In a Level 2 system, grestoreall stopped one level too early. -(zdevice2.c) - - setpagedevice didn't restore the stack properly if it got an -error. (gs_setpd.ps) - -Changes the GC pointer enumeration interface to reduce the number of -'discarding const' warnings. See under Library below. (igc.c) - -Updates the interpreter for the change in the imager / graphics state split. -(zpcolor.c) - -Makes the stack-restoring behavior of pseudo-operators non-optional. -(interp.c) - -</pre><h3><a name="V4.60_Interpreter_PDF"></a>Interpreter (PDF)</h3><pre> - -Fixes bugs: - - PDFDocEncoding and WinAnsiEncoding incorrectly had `minus' at -position 45 rather than `hyphen'. (gs_pdf_e.ps, gs_wan_e.ps) - -</pre><h3><a name="V4.60_Streams"></a>Streams</h3><pre> - -Fixes bugs: - - A header file wasn't protected against double inclusion. -(stream.h) - - any_abs was redefined. (spngp.c) - - The CCITTFaxDecode filter didn't fully initialize the "previous -line" for 2-D decoding, so if the very first line of data was 2-D, an -out-of-bounds memory access could occur. (scfd.c) - -</pre><h3><a name="V4.60_Library"></a>Library</h3><pre> - -Fixes bugs: - - gs_image_next could read too much data, causing errors at the -interpreter level. (gsimage.c) - - The bitmaps stored in the Pattern cache were usually freed, -leaving dangling pointers. (gsdcolor.h, gxpcache.h, gxpcolor.h, gsstate.c, -gxpcmap.c) - - There was still one assignment to a const structure, and there -were some unnecessary const-discarding casts. (gxclread.c) - - If a character in a Type 3 font was defined by executing 'show' -type commands, charpath did the wrong thing (didn't pick up the paths -created by the inner show). Similarly, if it uses 'stroke', true charpath -did the wrong thing (appended the path rather than the strokepath path). -(gxchar.h, gschar.c, gspaint.c) - - A header file wasn't protected against double inclusion. -(gserror.h) - - The new fast implementation of rectfill didn't handle rectangles -with negative width/height. (bug introduced in 4.32) (gsdps1.c) - - Reading banded high-level images calculated the image height -incorrectly, (usually) causing a rangecheck. (gxclread.c) - - When reading band data, a memory fault could occur if the halftone -cache hadn't been allocated yet. (gxht.c) - - The imager state data for high-level images wasn't written soon -enough. (gxclimag.c) - - High-level images computed bounding boxes incorrectly, so they -could write some garbage data in the band list, and could also fail to write -some information. (gsmatrix.h, gxmatrix.h, gxclimag.c) - - High-level images wrote the raster value incorrectly in the band -list. (gxclimag.c) - - Images with non-zero initial source X and non-portrait orientation -were displaced on the page. (In practice, this only applied to some banded -high-level images.) (gximage.c) - - The bounding box device didn't forward output_page calls, causing -pages to be dropped or overprinted. (gdevbbox.c) - - The band renderer considered all non-zero return codes as errors, -rather than only negative codes. (gxclread.c) - - An unnecessary extern hadn't been removed. (gxclimag.c) - - Some macros didn't parenthesize uses of their arguments, causing -syntax errors. (gsrefct.h) - - The screen phase and color_info weren't set correctly when -rendering bands. (gsstate.h, gsht.c, gxclread.c) - - A header file didn't declare all the opaque types it used. -(gsdevice.h) - - Indexed color spaces didn't work with banded images. (They still -don't -- the check for writing the color space, and the code for reading the -table or map, are incomplete.) (gxclist.h, gxclpath.h, gxclimag.c, -gxclpath.c, gxclread.c) - -In preparation for implementing post-banding halftoning: - - - Moves color rendering information, including alpha value, from -graphics state to imager state; also moves the allocator pointer. This is -quite a subtle change, and may have a significant bug tail. (gxdcolor.h, -gxht.h, gxistate.h, gzstate.h, gschar.c, gsdps1.c, gspaint.c, gsstate.c, -gxclread.c) - - - Changes all the relevant color space and color mapping procedures -so they take a const gs_imager_state * (and, in some cases, a [const] -gx_device *) instead of a const gs_state *. This is a -non-backward-compatible change, but it only affects internal interfaces. -(gsdcolor.h, gxcmap.h, gxcspace.h, gxdcconv.h, gxdcolor.h, gxdither.h, -gxpcolor.h, gzht.h, gschar.c, gscie.c, gscolor.c, gscolor1.c, gscolor2.c, -gscsepr.c, gsdevice.c, gsimage.c, gspcolor.c, gxcht.c, gxcmap.c, gxdcconv.c, -gxdcolor.c, gxht.c, gximage.c, gximage[2345].c, gxpcmap.c) - - - Changes the color and color space reference count adjustment -procedures similarly, to take a gs_memory_t * instead of a gs_state_t *. -(gxcspace.h, gscie.c, gscolor.c, gscolor2.c, gscsepr.c, gspcolor.c) - - - Changes the gs_halftone in the graphics state from being part of -the gs_state_contents to being an independent reference-counted object. -This too may have a significant bug tail. (gxht.h, gxistate.h, gsht.c, -gsstate.c) - - - Changes the image processing code so it no longer assumes that the -gs_imager_state is actually a gs_state. (gximage.h, gximage.c, gximage2.c, -gximage3.c, gximage4.c, gximage5.c) - - - Adds a unique ID value to device halftones, so that it's possible -to detect (non-)changes quickly. (gxdht.h, gsht.c) - -Finishes the code for writing and reading color rendering information in the -band list. This involves changes to several band list opcodes. (gsht.h, -gsht1.h, gxcldev.h, gxclist.h, gxclpath.h, gxdht.h, gzht.h, gsht.c, gsht1.c, -gxclbits.c, gxclimag.c, gxclist.c, gxclread.c) - -Changes the garbage collector pointer enumeration procedure interface -slightly to reduce the number of 'discarding const' warnings. THIS IS A -NON-BACKWARD-COMPATIBLE CHANGE for anyone who didn't use the -ENUM_PTRS_BEGIN[_PROC] macro to start a pointer enumeration procedure (which -should be no one). (gsstruct.h, gsmemory.c) - -Corrects a few more needlessly const-discarding casts. (gxfcache.h, -gxccache.c) - -Checks for file reading errors when rasterizing bands. (gxclread.c) - -</pre> - -<hr> - -<h2><a name="Version4.51"></a>Version 4.51 (limited) (2/9/97)</h2> - -<p> -This version contains a more reasonable high-level PCL XL driver. The VMS -build script is working again, we think. - -<h3><a name="V4.51_Procedures"></a>Procedures</h3><pre> - -Fixes bugs: - - The gsdll_h macro wasn't defined all the places it was needed. -(devs.mak, os2.mak) - -</pre><h3><a name="V4.51_Drivers"></a>Drivers</h3><pre> - -Continues to develop the "vector" driver infrastructure and the PCL XL -driver. EVERYTHING IN THESE FILES IS SUBJECT TO CHANGE WITHOUT NOTICE. -(gdevvec.h, gdevvec.c) - -Brings the PCL XL driver up to usable quality for graphics. Most -fill/stroke graphics, and portrait-orientation bitmap images up to 8 bits -per pixel, are converted directly to their PCL XL equivalents. Text is -still treated as bitmaps. Both gray-scale and color output are now -supported. (devs.mak, gdevpx.c) - -</pre><h3><a name="V4.51_Platforms"></a>Platforms</h3><pre> - -Fixes bugs: - - When using gsos2.exe with gsdll2.dll, reducing the size of the -page bitmap caused a limitcheck error with the message - Failed to decommit memory in pm_alloc_bitmap, rc = 87 (gdevpm.c) - - The scripts that construct gconfig_.h failed on Ultrix, because -Ultrix's implementation of sh -e is incorrect. (unixtail.mak, ugcclib.mak) - - Some systems that have sys/times.h don't define CLK_TCK, making a -compilation fail. (time_.h) - -</pre><h3><a name="V4.51_Interpreter"></a>Interpreter</h3><pre> - -Fixes bugs: - - An omitted semicolon wasn't detected by gcc. (idict.c) - -Removes a source of unnecessary duplication by getting the revision number -and date from version.mak. (gs.mak, int.mak, version.mak, gscdef.c) - -</pre><h3><a name="V4.51_Streams"></a>Streams</h3><pre> - -Fixes bugs: - - The minimum buffer sizes for the RunLengthDecode filter hadn't -been changed to reflect the algorithm improvement made in release 4.38. -(srld.c) - -Changes the RunLengthEncode filter so it can make progress with only a -2-byte output buffer. (srlx.h, srle.c) - -</pre><h3><a name="V4.51_Library"></a>Library</h3><pre> - -Fixes bugs: - - Because of a typo, the slow general algorithm was always used for -monochrome images. (Performance bug only, but a serious one.) (gximage2.c) - - Dots (zero-length lines with round caps and zero dot length) -caused an infinite loop. (bug introduced in 4.40) (gxstroke.c) - - Some image data unpacking procedures were always required, but -weren't always included. (bug introduced in 4.50) (gximage.c, gximage0.c, -gximage3.c) - - Images with 8 bits per pixel and non-identity Decode produced -garbage. (bug introduced later than 4.03) (gximage0.c) - - Some necessary casts and omitted punctuation weren't detected by -gcc. (gxpath.h, gsargs.c, gsstate.c, gxclread.c, gxpdash.c) - - The band list became confused if a band had no commands at all. -(gxclread.c) - - If a path included a closepath followed by a moveto to the same -point, it could be written incorrectly in the band list. (bug probably -introduced in 3.60) (gxclpath.c) - -Changes some internal computations for arcs from float to double for greater -accuracy. (gspath1.c) - -</pre> - -<h2><a name="Version4.50"></a>Version 4.50 (limited) (1/31/97)</h2> - -<p> -This release contains an experimental high-level PCL XL driver, a little -more support for CID/CMap fonts, and the usual bug fixes. NOTE: the VMS -build script is known to be out of sync with the makefiles again; we still -don't see any alternative to constant struggles with this problem. - -<h3><a name="V4.50_Documentation"></a>Documentation</h3><pre> - -Corrects the -h message, which gave an incorrect file name for the bug -report form. (imainarg.c) - -Removes documentation for 16-bit MS-DOS platforms with the Borland compiler. -(fonts.txt, make.txt, new-user.txt, use.txt) - -</pre><h3><a name="V4.50_Procedures"></a>Procedures</h3><pre> - -Fixes bugs: - - The Watcom library makefile didn't define the directory -information for libpng and zlib. (watclib.mak) - -Moves the selection of band list implementation (file- vs. RAM-based) and -the compression filter for RAM-based band lists up to the top-level -makefiles. Again, this is a NON-BACKWARD-COMPATIBLE procedure change. -(lib.mak, *.mak) - -Moves the selection of version number for all platforms (except VMS, as -usual) to a separate file. This will reduce the number of files that need -editing when the version number changes. (ansihead.mak, cc-head.mak, -gcc-head.mak, ugcclib.mak, version.mak, tar_cat) - -</pre><h3><a name="V4.50_Drivers"></a>Drivers</h3><pre> - -Fixes bugs: - - An error in the (unsupported) SGI RGB driver could cause crashes -or incorrect output. (gdevsgi.c) - -Starts to create a framework for structured output ("vector") drivers (PDF, -PostScript, PCL XL, etc.) (gdevbbox.h, gdevvec.h, gsdcolor.h, gsstruct.h, -gxdevice.h, gdevvec.c) - -Moves default page size parameters to a more accessible header. (gdevprn.h, -gxdevice.h, gdevx.c) - -Adds a driver that produces properly structured PCL XL output. This is -highly experimental and not ready for use yet. (gdevpx.c) - -</pre><h3><a name="V4.50_Platforms"></a>Platforms</h3><pre> - -Removes support for 16-bit MS-DOS platforms with the Borland compiler. For -the moment, 16-bit MS Windows is still supported. (bc.mak, bcflags.mak, -bclib.mak, tc.mak) - -</pre><h3><a name="V4.50_Interpreter"></a>Interpreter</h3><pre> - -Fixes bugs: - - File-based CIDFonts (with delayed, incremental loading of -character outlines) didn't work. (gs_cidfn.ps) - -Finishes implementing the definition of CMap resources, except for -rearranged fonts. (gs_cidfn.ps, gs_cmap.ps) - -Adds a little more CMap support code. (zcid.c) - -Removes the .setcurrentfile operator, since it doesn't solve the problem it -was intended to address. (zcontrol.c) - -Adapts the interpreter to use the new argument processing code. -(imainarg.c) - -</pre><h3><a name="V4.50_Streams"></a>Streams</h3><pre> - -Fixes bugs: - - The CCITTFaxDecode filter could access as much as 3 bytes beyond -the end of a buffer, causing an invalid memory access. (This is essentially -the same bug that was fixed for the CCITTFaxEncode filter in 4.38.) -(scfd.c) - -</pre><h3><a name="V4.50_Library"></a>Library</h3><pre> - -Fixes bugs: - - Painting an image without having set up any halftone could cause a -crash. (gxht.c) - - In a very obscure case, an occasional scan line of landscape -images could get corrupted. (gximage0.c) - - Because of a rounding error, patterns could fail to be painted in -certain cases. (gxpcolor.h, gspcolor.c, gxpcmap.c) - - Very large line widths or miter limits could cause the computation -of stroke expansion to overflow. (gxpaint.h, gdevbbox.c, gxclpath.c, -gxstroke.c) - - The phase could be incorrect for simple patterns. (gspcolor.c) - - The default implementation of copy_mono used an incorrect -RasterOp. (gdevdflt.c) - - The default implementation of fill_masked didn't increment the row -pointer, causing characters to appear as solid rectangular blocks. -(gxdcolor.c) - -Eliminates an unnecessary gsave and grestore from rectfill and rectstroke if -the path was null. (gsdps1.c) - -Adds a limit on the amount of space that the default (C heap) allocator will -allocate, and a record of the maximum amount allocated, to help testing -embedded products. (gsmemory.c) - -Changes the band list algorithm for deciding how many replicas of a halftone -tile to store in the tile cache. The previous algorithm was too liberal, -which could cause the cache to overflow and many unnecessary bitmaps to be -written in the band list. (gxclbits.c) - -Writes clipping with a rectangle more compactly in the band list. -(gxfixed.h, gxclpath.c) - -Adds new band list commands for representing 90- and 180-degree arcs -compactly. (gxclpath.h, gxclpath.c, gxclread.c) - -Repackages handling of general monochrome images, color images, and 12-bit -and interpolated images, so that they are included optionally rather than in -all configurations. (int.mak, lib.mak, gximage.h, gximage.c, -gximage[12345].c) - -Changes the structure definition for devices to include no-op pointer -enumeration and relocation, so they can have subclasses. (gxdevice.h) - -Adds a library facility for processing command line arguments with -@-expansion. (gsargs.h, gsargs.c) - -</pre> - -<hr> - -<h2><a name="Version4.41"></a>Version 4.41 (private) (1/21/97)</h2> - -<p> -This release adds a PCL XL output driver, and a few performance -improvements. - -<h3><a name="V4.41_Procedures"></a>Procedures</h3><pre> - -Fixes bugs: - - The zlib library used an incorrect header file when compiling. -(zlib.mak) - -Changes the names of the preprocessor symbols indicating the presence of -system header files to be consistent with the ones used by GNU configure. -(dvx-tail.mak, ugcclib.mak, unixtail.mak, vms.mak; dirent_.h, time_.h; -gp_unix.c) - -Changes the method for choosing the compression filter for RAM-based band -lists. This is a NON-BACKWARD-COMPATIBLE change in the makefile. (lib.mak) - -</pre><h3><a name="V4.41_Drivers"></a>Drivers</h3><pre> - -Adds black-and-white and 8-bit gray PCL XL (PCL 6) drivers for the LaserJet -5 and 6 family. This driver is extremely simple and just emits bitmaps; -future drivers will use more PCL XL high-level constructs. (gdevlj56.c) - -</pre><h3><a name="V4.41_Fonts"></a>Fonts</h3><pre> - -Updates the free font distribution to add the URW Grotesk and Antiqua fonts. - -</pre><h3><a name="V4.41_Interpreter"></a>Interpreter</h3><pre> - -Fixes bugs: - - gs -h and -v returned with a non-zero exit code on all platforms. -(This is necessary under Windows, to keep the message visible on the screen, -but nowhere else.) (imainarg.c) - - Resizing a dictionary could exceed dict_max_size, causing memory -corruption. (dstack.h, idict.h, idict.c, zdict.c) - -Adds .setlinecap and .setlinejoin that can use the extended range of line -cap/join values, and redefines setlinecap and setlinejoin in terms of them. -(gs_init.ps, zgstate.c) - -</pre><h3><a name="V4.41_Streams"></a>Streams</h3><pre> - -Fixes bugs: - - The CCITTFaxDecode filter with EncodedByteAlign = true skipped to -a byte boundary before checking for an EOL. This may be wrong if EndOfLine -= true; we aren't at all sure what should happen if EndOfLine = false. -(scfd.c) - -Adds a "no wrapper" option to the zlib streams, to optionally suppress the -time-consuming integrity checksum computation. (szlibx.h, szlibc.c, -szlibd.c, szlibe.c) - -</pre><h3><a name="V4.41_Library"></a>Library</h3><pre> - -Fixes bugs: - - Dashed lines with zero-length drawn segments (dots) that fell -exactly on a corner produced inappropriate output. (pcl/test19.pxs) -(gxpdash.c, gxstroke.c) - - Dashed lines didn't set the segment notes properly. (gxpdash.c) - - The bounding box device didn't free a bookkeeping structure at the -end of processing an image. (gdevbbox.c) - - Curve points could get computed incorrectly when using emulated -floating point. (gxpcopy.c) - - The 1-element cache for curve_x_at_y didn't work if Y was -decreasing. (gxfixed.h, gxpcopy.c) - -Distinguishes between error and informational exits. (stdpre.h) - -Defines and checks maximum values for line cap and join parameters. -(gslparam.h, gsline.c) - -Removes the 'not last' segment note, since it is not used for anything. -(gxpath.h, gspath1.c, gxpath2.c, gxpcopy.c, gxpflat.c, gxstroke.c) - -Changes the memory freeing algorithm for RAM-based band lists back to the -original one, since the "improved" one had more bugs than it was worth -chasing. (gxclmem.c) - -Speeds up the A * B / C algorithm a little. (gsmisc.c) - -Speeds up curve_x_at_y by recognizing more cases that don't require the slow -A * B / C algorithm. (gxpcopy.c) - -Changes the path filling code so it uses fill-by-trapezoids even if -fill_adjust is zero, as long as the flatness is at least 1 pixel. -(gxfill.c) - -Removes the (unneeded) floating point operations from gx_curve_log2_samples. -(gxpflat.c) - -Changes the memory-based implementation of band lists so that it constructs -the compressor and decompressor by calling procedures rather than -instantiating templates: this allows setting filter parameters to -non-default values. (gxclmem.h, gxcllzw.c, gxclmem.c, gxclzlib.c) - -</pre> - -<h2><a name="Version4.40"></a>Version 4.40 (private) (1/13/97)</h2> - -<p> -This version finally handles the last graphics model discrepancies between -PostScript and PCL, by correctly implementing null joins, minimum dot -lengths, and tangent-aligned curve ends. It also contains some significant -performance improvements, and as usual a few bug fixes. - -<h3><a name="V4.40_Documentation"></a>Documentation</h3><pre> - -Documents the new accurate curves and path dashing operators. -(language.txt) - -</pre><h3><a name="V4.40_Utilities"></a>Utilities</h3><pre> - -Adds switches for genconf to set and unset a prefix for file names. -(genconf.c) - -</pre><h3><a name="V4.40_Drivers"></a>Drivers</h3><pre> - -Adds recognition of the new Distiller 3.0 parameters to the PDF writer. -(None of them have any effect yet.) (gs_pdfwr.ps, gdevpdfx.h, gdevpdf.c, -gdevpdfp.c) - -Converts all the output functions in the PDF writer from being file-based to -using streams, in anticipation of adding compression. (gdevpdfs.h, -gdevpdfx.h, gdevpdf*.c, gdevpdfs.c) - -</pre><h3><a name="V4.40_Interpreter"></a>Interpreter</h3><pre> - -Adds operators for accessing the new accurate curves flag in the graphics -state. (zgstate.c) - -Adds an operator for invoking gs_dashpath. (zpath1.c) - -</pre><h3><a name="V4.40_Interpreter_PDF"></a>Interpreter (PDF)</h3><pre> - -Fixes bugs: - - Indexed color spaces whose base space was a CIE space caused an -error. (pdf_draw.ps) - -</pre><h3><a name="V4.40_Library"></a>Library</h3><pre> - -Fixes bugs: - - A pointer was declared const incorrectly. (gxcpath.c) - - Filling with a pattern often failed to pass a non-null bitmap ID, -causing excessive writing in the band list. (Performance bug only.) -(gspcolor.c) - - The bounding box device didn't discount copy_mono or draw_line -operations drawing in white. (gdevbbox.c) - - The bounding box device didn't read out the bounding box correctly -as the PageBoundingBox device parameter. (It did return it correctly -through the gx_device_bbox_bbox procedure.) (gdevbbox.c) - - The default implementation of fill_triangle drew nothing or -incorrect output if the corners of the triangle were specified in certain -orders (ax < 0 or bx < 0) (i.e., the previous "fix" had a bug). -(gdevddrw.c) - -Changes tile size from always being set in all bands to being 'known' by -bands individually. (gxclist.h, gxcldev.h, gxclbits.c, gxclist.c) - -Computes an additional value in advance when rendering images. (gximage.h, -gximage1.c, gximage2.c) - -Replaces some slow loops with calls of memmove. (gxclmem.c) - -Provides a fixed-point implementation of A * B / C for machines with slow -floating point. (gxfixed.h, gsmisc.c) - -Extends the "device color" type to implement filling masked regions as well -as rectangles. (gxdcolor.h, gdevdflt.c, gspcolor.c, gxcht.c, gxdcolor.c, -gxht.c) - -Makes unclipped monobit portrait and landscape images and image masks use -the new masked fill capability of device colors. (gximage.h, gximage.c, -gximage1.c, gximage2.c) - -Adds a macro for determining pointer alignment. (stdpre.h, gdevdflt.c) - -When floating point is slow, uses a different, faster algorithm for -gx_curve_x_at_y. (gxpcopy.c) - -Improves performance by adding a one-element cache for gx_curve_x_at_y. -(gzpath.h, gxpcopy.c) - -Reduces overhead when banded images are pre-rasterized (currently, always). -(gxclimag.c) - -Adds a rendering cost estimate field to each band in a band list. This -field isn't actually used for anything yet; eventually, the intent is that -bands with a high cost will get rendered, and stored in compressed form, -before starting the engine. (gxclist.h) - -Adds the concept of 'notes' for path segments, to allow remember what -segments constitute a single curve or arc. Currently we set these properly -for everything except dashed paths. (gxclpath.h, gxpath.h, gzpath.h, -gspath1.c, gxclpath.c, gxclread.c, gxpath.c, gxpath2.c, gxpcopy.c) - -When the dot length is non-zero, changes curve stroking to always use bevel -joins within each curve rather than the current join. This prevents a -"bristly" look with no join and butt caps. (gxstroke.c) - -Adds an "accurate curves" capability that makes the last line segment of a -flattened curve actually be tangent to the curve, which in turn makes -flat-end caps be correctly perpendicular to the tangent. (gxpath.h, -gxpcopy.c) - -Adds an "accurate curves" flag in the graphics state. (gsline.h, -gxclpath.h, gxistate.h, gsline.c, gspath.c, gspath1.c, gxclpath.c, -gxclread.c, gxfill.c, gxstroke.c) - -Changes the meaning of "no join" (gs_join_none) so that instead of producing -no join and butt caps, it produces whatever the current cap is. This is -compatible with the H-P definition. (gxstroke.c) - -Implements non-zero dot length for dash patterns. (gxpdash.c) - -Splits off the curve flattening algorithms into a separate file. -(gxpcopy.c, gxpflat.c) - -</pre> - -<hr> - -<h2><a name="Version4.39"></a>Version 4.39 (limited) (1/1/97)</h2> - -<p> -This version was created only to accompany a release of the PCL XL -interpreter. It was withdrawn the day after it was released, because the -tools used to produce it put the wrong files in the filesets. - -<h3><a name="V4.39_Documentation"></a>Documentation</h3><pre> - -Adds a more detailed description of the third-party ps_view viewer -interface. (new-user.txt) - -Corrects an error in a reference to the PSLRM. (lib.txt) - -Documents the change in .makeoperator. (language.txt) - -Updates the FTP location of the zlib sources. (zlib.mak) - -</pre><h3><a name="V4.39_Procedures"></a>Procedures</h3><pre> - -Fixes bugs: - - The Unix library makefile didn't include the necessary definitions -for libpng and zlib. (ugcclib.mak) - -Allows selecting the compression filters for memory-based band lists in the -makefile. Makes zlib (deflate) the default compressor for memory-based band -lists. (lib.mak) - -</pre><h3><a name="V4.39_Utilities"></a>Utilities</h3><pre> - -Fixes bugs: - - prfont.ps wouldn't print unencoded characters in Type 42 fonts. -(prfont.ps) - -</pre><h3><a name="V4.39_Drivers"></a>Drivers</h3><pre> - -Fixes bugs: - - The H-P monochrome driver didn't put out enough initialization -commands at the beginning of each page to make each page printable -independently. (gdevdjet.c) - -</pre><h3><a name="V4.39_Interpreter"></a>Interpreter</h3><pre> - -Changes ref_stack_count_inline so it never does a procedure call. -(istack.h) - -Changes .makeoperator so that operator procedures save the stack depths, and -restore the stack pointers (if possible) if the operator encounters an -error. This is a NON-BACKWARD-COMPATIBLE CHANGE; it requires rewriting the -'stop' and 'stopped' pseudo-operators (and, if there were any, any other -pseudo-operators that interact with the error handling machinery) in C. -(gs_init.ps, interp.c, zcontrol.c) - -Adds recognition of the LeadingEdge, MediaClass, and RollFedMedia keys in a -page device dictionary, per the Adobe supplement for their version 2017 -interpreter. This involves a NON-BACKWARD-COMPATIBLE change to the -(undocumented) .matchpagesize operator. (gs_setpd.ps, zmedia2.c) - -Makes necessary changes for compatibility with the added parameters for the -zlib filters. (zfzlib.c) - -</pre><h3><a name="V4.39_Streams"></a>Streams</h3><pre> - -Fixes bugs: - - The zlib encoder returned EOFC when it should have returned 0. -(szlibe.c) - -Adds optional parameters and reset procedures for the zlib filters. -(szlibx.h, szlibc.c, szlibd.c, szlibe.c) - -</pre><h3><a name="V4.39_Library"></a>Library</h3><pre> - -Fixes bugs: - - Displaying characters with a non-standard RasterOp could cause an -invalid memory access. (gdevdflt.c) - - Banding sometimes used an incorrect RasterOp. (gxclread.c) - - When banding, mixing Patterns and halftones could confuse the -bookkeeping of tile size, leading to incorrect generation of the band list -and error messages or confusion when rasterizing. (gxclist.h, gxclbits.c, -gxclread.c) - - If only the dash pattern offset changed, and not any of the other -dash-related parameters, the new offset wasn't written in the band list, -causing incorrect output. (gxclpath.c) - - Oversized halftone tiles didn't report their error code properly. -(gxclbits.c) - - Oversized halftone tiles with RasterOp caused an error. -(gxclist.c) - - When banding, RasterOp transfers that crossed a band boundary -didn't access the correct source data on bands other than the first. -(gxclist.c) - - There were redundant copies of the code for writing a RasterOp -value in the band list. (gxclimag.c, gxclpath.c) - - Oversized patterns or halftones produced garbled output. -(gxclbits.c) - - The check for oversized patterns or halftones was slightly -incorrect, leading to the possibility of writing out a tile that would -overflow the reading buffer and corrupt memory. (gxclbits.c) - - When banding, RasterOp wasn't applied to fill and stroke -operations, and wasn't applied correctly to characters. (gdevdflt.c, -gxclimag.c, gxclread.c) - - The RasterOp-related optimizations for black-and-white images -sometimes produced incorrect output. (gximage.c, gximage2.c) - - The default implementation of fill_triangle didn't draw anything -if the corners of the triangle were specified in certain orders (ax < 0 or -bx < 0). (gdevddrw.c) - - Painting with a Pattern could pass out-of-range phase values to -driver procedures. (gspcolor.c) - - Because of an off-by-1 error, halftones or patterns passed through -the band list could write past the end of their allocated space in the band -tile cache, leading to incorrect output or possible arithmetic exceptions or -memory access errors. (gsbitops.c) - -Adds -Z: for printing only the minimal command list statistics. (gxclist.c, -gxclread.c) - -Expands band list tracing so it includes all of the data associated with the -command, not just the command name and a few command parameters. -(gxclread.c) - -Adds free lists for strings. Currently these are only used in -non-garbage-collected environments. (gxalloc.h, gsalloc.c, gsnogc.c) - -Adds a procedure for copying a path structure, and an (internal) accessor -for the current path in the graphics state. (gxpath.h, gspath.c, gxpath.c) - -Speeds up filling characters with halftones a little bit. (gdevdflt.c) - -Changes the memory-based implementation of band lists so it can use any -compression / decompression filter, so it only compresses when it has -allocated a specified amount of buffer storage, and so it releases its -buffer storage at the end of each page. (gxclmem.h, gxclmem.c) - -Speeds up counting the number of 1-bits in a byte, which is used in some -image processing algorithms. (gsbittab.h, gsbittab.c) - -Reduces the band list space required for changing tile size. (gxcldev.h, -gxclbits.c, gxclread.c) - -</pre> - -<h2><a name="Version4.38"></a>Version 4.38 (limited) (12/20/96)</h2> - -<p> -Adds support for a couple of undocumented features in Type 1 fonts. - -<h3><a name="V4.38_Interpreter"></a>Interpreter</h3><pre> - -Adds handling of the Type 1 font subroutineNumberBias (an optional entry in -the Private dictionary) and lenIV = -1 features at the interpreter level. -(zchar1.c, zfont1.c) - -</pre><h3><a name="V4.38_Streams"></a>Streams</h3><pre> - -Fixes bugs: - - The CCITTFaxEncode filter could access as much as 3 bytes beyond -the end of a buffer, causing an invalid memory access. (scfe.c) - -Changes the RunLengthDecode filter so it can make progress (produce output) -with only a 1-byte output buffer. (srlx.h, srld.c) - -</pre><h3><a name="V4.38_Library"></a>Library</h3><pre> - -Fixes bugs: - - The sine and cosine of multiples of 90 degrees weren't exact. -(gxfarith.h, gsmisc.c) - - The expanded bounding box computation for strokes didn't take into -account the possibility of overflow. (gxstroke.c) - - The allocator didn't fill freed strings with the 'free' mark. -(gsalloc.c) - - When using a pattern with RasterOp, the phase was computed -incorrectly, leading to anomalous filling patterns. (gspcolor.c) - - Patterns with a non-zero translation in the matrix passed to -makepattern didn't translate the pattern origin properly. (gxcolor2.h, -gxpcolor.h, gspcolor.c) - -Adds a subroutineNumberBias field to Type 1 fonts. This is an undocumented -feature of the Type 1 font format. (gxfont1.h, gstype1.c) - -Interprets lenIV = -1 in Type 1 fonts as meaning that the CharStrings are -unencrypted. This too is an undocumented feature of the Type 1 format. -(gxfont1.h, gxtype1.h, gstype1.c, gstype2.c) - -Changes gs_clippath so it returns more reasonable outlines. (There are too -many programs that rely on being able to stroke the result of clippath, even -though both the Adobe and H-P literature specifically say the results are -unpredictable.) (gxcpath.h, gxcpath.c) - -</pre> - -<h2><a name="Version4.37"></a>Version 4.37 (limited) (12/10/96)</h2> - -<p> -This version implements separate halftone phase for source and texture, -required for PCL XL implementation. - -<h3><a name="V4.37_Fonts"></a>Fonts</h3><pre> - -Fixes bugs: - - Loading a native TrueType font without a 'post' table caused an -error. (gs_ttf.ps) - -</pre><h3><a name="V4.37_Interpreter"></a>Interpreter</h3><pre> - -Extends the interpreter to handle the new separate halftone phases for the -RasterOp source and texture. (gs_dps1.ps, zdps1.c) - -Makes a small change to accommodate a library change supporting Type 2 -charstrings. (zfont1.c) - -</pre><h3><a name="V4.37_Interpreter_PDF"></a>Interpreter (PDF)</h3><pre> - -Implements the FontFile2 key for embedded TrueType fonts. (pdf_font.ps) - -Starts to implement the FontFile3 key for compressed Type 1 fonts. This -code is currently disabled, because none of the necessary underlying C is -written yet. (pdf_font.ps) - -</pre><h3><a name="V4.37_Library"></a>Library</h3><pre> - -Fixes bugs: - - The floating point emulator often returned incorrect results (too -many bugs to list). (This is not used in any standard configuration.) -(gsfemu.c) - - The new copy_for procedure for gstates incorrectly declared an -argument as const. (gxstate.h, gsstate.c) - - If a curve had to be split twice along the same axis to make it -monotonic, the split points could still be returned in the wrong order, -possibly causing curved edges to turn into straight lines, and the algorithm -still produced the wrong results if the curve had to be split twice along a -single axis. This is the second time we have "fixed" these problems and the -4th time we have "fixed" the curve monotonizing algorithm. (gxpcopy.c) - - Setting halftones cause a memory leak, because the subsidiary -objects of the device halftone weren't freed properly. Fixing this required -changing the graphics state implementation from allocating a device halftone -for each gstate to managing the device halftone with reference counting. -(gxdht.h, gzstate.h, gsht.c, gsstate.c) - -Provides an optimized version of ldexp for FPU-less configurations, and -changes one key algorithm to use it. (gxfixed.h, gsmisc.c, gxpcopy.c) - -Speeds up imagemask with a halftone a little. (This will eventually require -more serious optimization.) (gximage2.c) - -Adds a -Z* switch for tracing varieties of image rendering. (gximage.c) - -Recognizes that if the logical operation is equivalent to D = S (after -accounting for a constant texture, if any), or if it is equivalent to D = ~S -or D = D {&,|}{S,~S} and D and S are both monobit and both colors are pure, -imaging with RasterOp can be executed without invoking RasterOp. (gsropt.h, -gximage.c) - -Makes coordinate transformations with landscape matrices execute as fast as -with portrait matrices. (gxmatrix.h, gscoord.c, gsmatrix.c) - -Adds some sketch code for interpreting Type 2 charstrings. It compiles, but -it makes no pretense of being runnable. (gstype1.h, gxop1.h, gxtype1.h, -gstype2.h, gxfont1.h, gstype1.c, gstype2.c) - -Extends the library to allow setting separate halftone phases for the -RasterOp source and texture, which is needed to implement halftone screens -that behave like those in H-P's PCL XL printers. (gscsel.h, gsstate.h, -gxcmap.h, gxcspace.h, gxdcolor.h, gxdither.h, gxpcolor.h, gzht.h, gzstate.h, -gscie.c, gscsepr.c, gsht.c, gspcolor.c, gxcht.c, gxcmap.c, gxdcolor.c, -gxht.c, gximage.c, gximage[2345].c, gspcmap.c) ****** STILL NEED TO UPDATE -BANDING CODE, grep FOR phase ****** - -Removes the rc_header member from the gs_halftone structure, since we don't -need it after all. (gxht.h) - -</pre> - -<h2><a name="Version4.36"></a>Version 4.36 (limited) (12/3/96)</h2> - -<p> -This version fixes a number of library bugs related to RasterOp, Patterns, -and memory management. - -<h3><a name="V4.36_Documentation"></a>Documentation</h3><pre> - -Changes the definition of texture transparency to match the peculiar H-P -specification. (drivers.txt, language.txt) - -</pre><h3><a name="V4.36_Drivers"></a>Drivers</h3><pre> - -Fixes bugs: - - x_get_bits didn't flush updates to the frame buffer, leading to -possibly incorrect data being returned. (gdevx.c) - - x_get_bits added padding to the scan line being copied, possibly -corrupting memory. (gdevx.c) - -Changes the x11mono driver to define white = 0, black = 1 to more closely -model black-and-white printers. (This is an internal change that doesn't -affect the output.) (gdevxalt.c) - -</pre><h3><a name="V4.36_Interpreter"></a>Interpreter</h3><pre> - -Removes some code that is no longer needed, by virtue of the fix for the -memory leak in Pattern remapping. (zpcolor.c) - -</pre><h3><a name="V4.36_Library"></a>Library</h3><pre> - -Fixes bugs: - - Patterns wider than 1024 bits caused a rangecheck. (gxclip2.h, -gxclip2.c) - - Dash patterns never got freed. The fix for this slows down gsave -and grestore slightly, but we don't see any way around it. (gsline.c, -gsstate.c) - - If the CTM was very non-uniform in X and Y, stroke sometimes -didn't recognize thin lines as being thin, leading to dropouts. -(gxstroke.c) - - RasterOps that didn't use S or T still took S or T transparency -into account. (gdevmrop.c) - - RasterOps with no source didn't handle the possibility that the -device color for black might have a value other than 0. (gxdcolor.h, -gspcolor.c, gxcht.c, gxdcolor.c, gxht.c) - - White pixels in halftones on black-and-white devices apparently -are *not* supposed to be treated as opaque for RasterOp. (gxcht.c, gxht.c) - - clippath caused memory to be lost until a restore or a garbage -collection. (gspath.c) - - Clipping lists weren't ever freed, and clipping paths sometimes -weren't freed, causing memory to be lost until a restore or a garbage -collection. (gzacpath.h, gxacpath.c, gxcpath.c) - - Freeing a pattern instance referenced a pointer after it had been -freed, causing an invalid memory access. (gspcolor.c) - - Remapping a Pattern color lost track of the temporary gstate, -memory devices, and possibly the mask, causing memory to be lost until a -restore or GC. (gxpcolor.h, gxpcmap.c) - - Remapping a Pattern color could cause paths to be marked as -shared, preventing them from being freed until a restore or GC. (gxpcmap.c) - -Enhances the non-tracing garbage collector so that if there are no strings -allocated at all, it resets the string allocation pointers. (gsnogc.c) - -Optimizes the black-and-white RasterOp implementation by recognizing cases -that can be implemented directly by fill_rectangle, copy_mono, or -tile_rectangle. (gdevmrop.h, gsropt.h, gdevmrop.c, gsroptab.c) - -Changes -ZA so it no longer produces [P] tracing messages for path -construction. (gxpath.c) - -Adds a gx_pattern_cache_winnow procedure for selectively removing entries -from the Pattern cache, similar to gx_purge_selected_cached_chars. -(gscolor2.h, gxpcolor.h, gxpcmap.c) - -Adds the Pattern UID to Pattern cache entries. (gxpcolor.h, gxpcmap.c) -****** MUST HANDLE XUID POINTERS ON GC (RELOC) & RESTORE (CLEAR LIKE HT -CACHE) ****** - -Makes gs_gstate free the path representation of the clipping path if it's a -rectangle, since reconstructing it is cheap and otherwise the path segments -would not be freeable until a restore or GC. (gsstate.c) - -Extends the "client data" interface for gstates so that the copy procedure -can determine why it is being called. (gxstate.h, gsstate.c) - -</pre> - -<h2><a name="Version4.35"></a>Version 4.35 (limited) (11/24/96)</h2> - -<p> -This contains the usual bug fixes, and two minor enhancements: an option for -handling EPSF files with binary headers, and support for file-based -resources. - -<h3><a name="V4.35_Documentation"></a>Documentation</h3><pre> - -Documents the new EPSF-reading capability. (gs.mak) - -</pre><h3><a name="V4.35_Procedures"></a>Procedures</h3><pre> - -Fixes bugs: - - Some obsolete definitions were accidentally left in the rules for -compiling fonts into the executable. (int.mak) - -</pre><h3><a name="V4.35_Interpreter"></a>Interpreter</h3><pre> - -Fixes bugs: - - initgraphics left the current color space in an inconsistent -state. (bug introduced in 4.32) (zgstate.c) - - restore didn't properly rebind FontDirectory to either Local or -SharedFontDirectory according to the current VM selection. (gs_dps1.ps) - - If FontDirectory was redefined, many things broke. (gs_ccfnt.ps, -gs_dps1.ps, gs_fonts.ps, gs_pdfwr.ps) - - If a resource provided a file name but the file couldn't be -opened, an error occurred. (gs_res.ps) - - flushfile didn't work with procedure-based streams. (zfileio.c) - -Adds a feature (epsf.dev) that allows the interpreter to recognize and -handle MS-DOS EPSF files with a binary header. (int.mak, gs_epsf.ps, -gs_init.ps, pdf_main.ps) - -Adds (internal) .getuserparam and .getsystemparam operators for getting the -value of a single user or system parameter. (gs_lev2.ps, zusparam.c) - -To support file-based resources, implements the FontResourceDir, -GenericResourceDir, and GenericResourcePathSep system parameters, and -ResourceFileName for the built-in resource categories. (gs_init.ps, -gs_lev2.ps, gs_res.ps) - -</pre><h3><a name="V4.35_Streams"></a>Streams</h3><pre> - -Fixes bugs: - - The 2-D CCITTFaxDecode filter became confused if a buffer boundary -fell between a horizontal make-up code and its terminating code, typically -causing an ioerror. (scfd.c) - -</pre><h3><a name="V4.35_Library"></a>Library</h3><pre> - -Fixes bugs: - - Using the null color could confuse the reference counts for color -spaces, causing memory access errors. (gscolor.c) - - Images with CombineWithColor = true caused memory access error, -because a structure element wasn't initialized. (gdevmrop.c) - - gs_setnullcolor tried to return an error code, even though it was -declared as returning void. (Why doesn't gcc catch this??) (gscolor.h, -gscolor.c) - - gs_setnullcolor was declared inconsistently as taking a const or -non-const argument. (gscolor.h) - - Small color tiles in the band list were not read in correctly. -(gxclread.c) - - The band list could get confused, causing ioerrors, invalid memory -accesses, or garbled output, because the algorithms for computing the size -of bitmaps when writing and when reading had gotten inconsistent. This code -has been broken and "fixed" at least 4 or 5 times. (gxcldev.h, gxclbits.c, -gxclread.c) - - When using banding, characters that extended off the page -vertically in the -Y direction came out garbled. (gxclimag.c) - - The bounding box device didn't compute the box correctly for -trapezoids. (gdevbbox.c) - - The fastest case of rendering monochrome images could cause -unaligned data accesses. (bug introduced recently.) (gximage.h, -gximage1.c) - - TrueType characters with no contours could cause an invalid memory -access. (gstype42.c) - - Composite TrueType characters weren't rendered properly. -(gstype42.c) - -Adds a get_outline procedure to the Type 42 font header, to provide a -callback for getting the outline data for a glyph. (gxfont42.h, gstype42.c) - -</pre> - -<h2><a name="Version4.34"></a>Version 4.34 (limited) (11/18/96)</h2> - -<p> -This release adds a little more support for CID-keyed fonts and for PCL -emulation, and a bit more of the machinery for passing images through the -band list. - -<h3><a name="V4.34_Documentation"></a>Documentation</h3><pre> - -Fixes bugs: - - The RasterOp source device wasn't listed as an internal device in -drivers.txt. (drivers.txt) - -Corrects a statement regarding the pstotext license. (new-user.txt) - -</pre><h3><a name="V4.34_Procedures"></a>Procedures</h3><pre> - -Fixes bugs: - - The Watcom makefile for the library didn't work properly if -certain variables were overridden from the command line. (watclib.mak) - - The library code inadvertently depended on an interpreter header -file. (*.mak) - -</pre><h3><a name="V4.34_Drivers"></a>Drivers</h3><pre> - -Fixes bugs: - - Some very picky compilers complained about assigning 0 to a -variable of an enum type. (gdevpdfx.h, gdevpdf.c) - -</pre><h3><a name="V4.34_Interpreter"></a>Interpreter</h3><pre> - -Fixes bugs: - - Some very picky compilers didn't like a cast from a pointer type -to an int type. (idebug.c) - - Some very picky (and non-ANSI-compliant) compilers didn't allow -assigning an int to a variable of enumerated type. (zfont2.c, zht2.c) - - The library code inadvertently depended on an interpreter header -file. (iref.h) - -Restructures the font building code slightly to support CID fonts better. -(gs_cidfn.ps, bfont.h, zcid.c, zfont0.c, zfont1.c, zfont2.c, zfont42.c) - -Adds a .setcurrentfile operator to allow disk-based fonts to keep their file -open. (gs_cidfn.ps, zcontrol.c) - -</pre><h3><a name="V4.34_Streams"></a>Streams</h3><pre> - -Fixes bugs: - - Some very picky compilers didn't like the computation (const byte -*)0 - 1. (stream.c) - - A cast to ulong was omitted. (smtf.c) - - Some compilers got confused by typedefs in the zlib header files. -(szlibd.c, szlibe.c) - -</pre><h3><a name="V4.34_Library"></a>Library</h3><pre> - -Fixes bugs: - - A header file didn't select the proper system header on all POSIX -systems. (malloc_.h) - - A subclass/superclass type discrepancy upset some compilers. -(gsline.h, gsline.c, gxpdash.c) - - Some very picky compilers didn't accept the previous definition of -the offset_of macro. (stdpre.h) - - Some very picky (and non-ANSI-compliant) compilers didn't like -mixing int and enumerated types. (gsropt.h, gzstate.h, gdevmrop.c, -gdevrrgb.c, gsrop.c, gxclist.c) - - A cast was missing. (gslib.c) - - The gs_setxxxtransparent procedures interpreted their argument -backwards (i.e., as "opaque" rather than "transparent"). (gsrop.c) - - Intersecting clipping paths didn't reset the logical operation to -the default, causing a possible crash. (gsrop.h, gsrop.c, gxacpath.c) - - Pattern accumulation didn't reset the logical operation to the -default, possibly causing incorrect output. (gspcolor.c) - - If a Type 1 character ended with a curve and a closepath, a -microscopic line could result, causing output anomalies. (gstype1.c) - - Stroking a path with a mix of thin and non-thin lines could cause -extraneous lines to appear. (gxstroke.c) - - Zero-width rectangles were painted even when fill adjustment was -turned off. (gxpaint.c, gxstroke.c) - - The algorithm for dividing a curve into monotonic pieces could -produce incorrect results, causing anomalies when filling curved regions -with zero fill adjustment. (gxpcopy.c) - - The algorithms for outside clipping were wrong, causing some -inside regions not to be clipped. (gxcpath.c) - - The white pixels in halftones weren't treated as unconditionally -opaque for RasterOp. (gxht.c, gxcht.c) - - Images with RasterOp didn't work properly. (gdevmrop.c, -gximage[2345].c, gxpcmap.c) - - The library code inadvertently depended on an interpreter header -file. (gxalloc.h, genarch.c) - - An important optimization for stroking (recognizing portrait, -landscape, and unscaled CTMs) was commented out. WE DON'T HAVE ANY RECORD -OF WHY WE DID THIS, AND RESTORING IT MAY INTRODUCE NEW BUGS. (gxstroke.c) - - Bitmap images with non-zero data_x values were passed through the -band list incorrectly, possibly causing vertical "streaks" in the output. -(gxcldev.h, gxclread.c) - - If a curve had to be split twice along the same axis to make it -monotonic, the split points were returned in the wrong order, possibly -causing curved edges to turn into straight lines. (gxpcopy.c) - -Changes the debugging printout format for paths so the output can be -processed mechanically more easily. (gxpath.c) - -Adds gs_glyphpath, like charpath but taking a glyph rather than a string of -character codes. (gschar.h, gschar.c) - -Adds an internal concept of a "null color", a color that doesn't actually -mark any pixels. (gscolor.h, gsdcolor.h, gxdcolor.h, gscolor.c, gxdcolor.c) - -Takes the next incremental steps towards passing images through the band -list: - - Implements the ability to pass some color mapping information -(transfer functions, black generation, undercolor removal) through the band -list. (gxclist.h, gxclimag.c, gxclist.c, gxclread.c) - -</pre> - -<h2><a name="Version4.33"></a>Version 4.33 (limited) (11/6/96)</h2> - -<p> -This release fixes yet another obscure bug in the recently rewritten fast -loops for image rendering. (These loops have caused more problems than any -other single module of the entire library.) It also adds preliminary -support for CID-keyed fonts (CIDFonts only, not CMaps yet) and some library -extensions for supporting HP-GL/2. - -<h3><a name="V4.33_Documentation"></a>Documentation</h3><pre> - -Adds considerable new material to the C style document. (c-style.txt) - -Changes -cckr to -ansi in the SGI build procedure. (make.txt) - -Corrects an error in the description of the .type42execchar operator. -(gs_typ42.ps) - -</pre><h3><a name="V4.33_Procedures"></a>Procedures</h3><pre> - -Fixes bugs: - - The 'man' pages were installed in the documentation directory as -well as in the man directory. (unix-end.mak) - -</pre><h3><a name="V4.33_Interpreter"></a>Interpreter</h3><pre> - -Adds support for CID-keyed fonts. There is no CMap support yet, and some -things are done with hacks. (int.mak, gs_cidfn.ps, gs_cmap.ps, ichar.h, -zchar.c, zchar2.c, zchar42.c, zfont2.c, zfont42.c, zcid.c) - -Adds operators for accessing the new dash adaptation and dot length -parameters in the graphics state. (gs_init.ps, zgstate.c) - -</pre><h3><a name="V4.33_Library"></a>Library</h3><pre> - -Fixes bugs: - - The fast case of monobit image rendering could overwrite memory. -(gximage1.c) - - The new fast implementation of rectfill didn't check for -fixed-point overflow. (gsdps1.c) - - Internally, fonts with no name all appeared to have the same name, -possibly confusing the xfont machinery. (gxccman.c) - - A cast to remove const was omitted, upsetting some compilers. -(gximage1.c) - - The driver's stroke_path routine was not called if the logical -operation was not the default one. (gxpaint.c) - -Adds support for CID-keyed fonts. (gsccode.h, gxfont.h) - -Adds a new "dash pattern adaptation" flag in the imager state. When this -flag is set and a dash pattern is in effect, each line segment will receive -an integral number of repetitions of the dash pattern (if necessary, rounded -up). (gsline.h, gxline.h, gsline.c, gsstate.c, gxpdash.c) - -Adds a new "dot length" parameter to the imager state. If this parameter is -non-zero, it gives a length for rendering dots (zero-length lines). See -language.txt for details. (gsline.h, gxline.h, gsline.c, gsstate.c, -gxstroke.c) - -Extends band lists so they can handle dash pattern adaptation and dot -length. (gxcldev.h, gxclpath.h, gxclpath.c, gxclread.c) - -Adds a floating point emulator to allow more realistic profiling of -configurations without a FPU. (gsfemu.c) - -</pre> - -<h2><a name="Version4.32"></a>Version 4.32 (limited) (11/1/96)</h2> - -<p> -This fixes a couple more bugs, most notably the infamous "pixel stripe" bug. - -<h3><a name="V4.32_Documentation"></a>Documentation</h3><pre> - -Fixes bugs: - - The documentation said that Ghostscript could not interpret -encrypted PDF files. (language.txt) - - A number of Ghostscript's extensions to the PostScript language -were missing. (language.txt) - -</pre><h3><a name="V4.32_Drivers"></a>Drivers</h3><pre> - -Fixes bugs: - - A compiler complained about initializing an unsigned variable with -a negative value. (gdevx.c) - - An off-by-1 allocation error could cause memory overwriting. -(gdevepsc.c) - -</pre><h3><a name="V4.32_Platforms"></a>Platforms</h3><pre> - -Declares a pointer 'const' that is actually only used for reading. -(gp_unifs.c) - -</pre><h3><a name="V4.32_Fonts"></a>Fonts</h3><pre> - -Fixes bugs: - - The code for adding nominal UnderlinePosition and -UnderlineThickness entries to FontInfo assumed (incorrectly) that all Type 1 -fonts had FontBBox entries. (gs_type1.ps) - -Brings CIDFont support closer to reality. It doesn't work yet, though. -(gs_cidfn.ps, gs_fonts.ps, gs_init.ps, gs_res.ps, gs_typ42.ps) - -</pre><h3><a name="V4.32_Interpreter"></a>Interpreter</h3><pre> - -Removes a redundant implementation of initgraphics. (gs_init.ps) - -Speeds up rectfill a little for the common case (4 numbers on the stack). -(zdps1.c) - -</pre><h3><a name="V4.32_Library"></a>Library</h3><pre> - -Fixes bugs: - - Zero-width, 1-bit-deep, landscape or portrait images could -overwrite memory ad lib. (gximage1.c) - - A procedure was declared 'static' inconsistently, upsetting many -compilers (but not gcc, which, in contradiction to the ANSI standard, -doesn't check this properly). (gxcpath.c) - - A local variable was initialized with a value computed from a -variable that hadn't been set yet, leading to possibly incorrect coloring of -the first run of pixels in images with 12 bits per sample. (gximage4.c) - - A compiler complained about initializing an unsigned variable with -a negative value. (shcgen.c) - - A rounding problem could produce a vertical stripe of 1 (or on -very large images possibly more) incorrect pixels at the right edge of a -1-bit-deep image. (gxdda.h, gximage1.c) - -Speeds up gs_rectfill substantially for the portrait/landscape case with a -rectangular clipping region. (gsdps1.c) - -Adds a parameter so we can include gx_line_params in subclasses. (gzline.h) - -</pre> - -<h2><a name="Version4.31"></a>Version 4.31 (limited) (10/27/96)</h2> - -<p> -This is primarily a bug fix release for 4.30, which we had hoped wouldn't be -necessary.... - -<h3><a name="V4.31_Documentation"></a>Documentation</h3><pre> - -Fixes bugs: - - The comment describing the order of coefficients in a CTM written -on the band list was wrong. (gxclpath.h) - -</pre><h3><a name="V4.31_Procedures"></a>Procedures</h3><pre> - -Fixes bugs: - - bug-form.txt wasn't installed by 'make install'. (unix-end.mak) - - The default flags in ugcclib.mak didn't take the gcc code -generation bug into account. (ugcclib.mak) - -</pre><h3><a name="V4.31_Platforms"></a>Platforms</h3><pre> - -Fixes bugs: - - MetroWerks CodeWarrior predefines true and false, causing -compilation errors on the Mac. (stdpre.h) - -</pre><h3><a name="V4.31_Interpreter"></a>Interpreter</h3><pre> - -Updates code for the change in the ENUM_PTR macros. (iscan.c) - -Changes the allocator to keep track of "lost" ref space separately, to allow -an independent check on its activities. (gxalloc.h, ialloc.c, isave.c) - -Changes the garbage collector API slightly to allow implementation of the -API in applications other than PostScript interpreters. (ivmspace.h, -ireclaim.c, igc.c) - -</pre><h3><a name="V4.31_Interpreter_PDF"></a>Interpreter (PDF)</h3><pre> - -Implements the PDF 1.1 BX and EX operators. (pdf_base.ps, pdf_main.ps) - -</pre><h3><a name="V4.31_Streams"></a>Streams</h3><pre> - -Fixes bugs: - - Some (harmless) pointer incompatibilities upset some compilers. -(szlibd.c, szlibe.c) - -Updates code for the change in the ENUM_PTR macros. (stream.c) - -</pre><h3><a name="V4.31_Library"></a>Library</h3><pre> - -Fixes bugs: - - A label in the ENUM_PTR procedure generating macros was often not -referenced, leading to compiler warnings. (gsstruct.h, gxxfont.h, -gdevmem.c, gschar.c, gscolor2.c, gsdevice.c, gsfont0.c, gsht.c, gsstate.c, -gxcpath.c, gximage.c) - - Using the gstate version of setflat rather than the imager version -caused compiler warnings (and, in some cases, errors). (gstype1.c) - - Non-standard ImageMatrix values for banded images didn't work. -(This wasn't actually used.) (gxclread.c) - - imagemask with a halftone and portrait orientation colored some -inappropriate pixels. (bug introduced in 4.30) (gximage2.c) - - When banding, if a character straddled a band boundary the first -time it occurred, all occurrences of it were clipped. (bug introduced in -4.2x or 4.30) (gxclimag.c) - - Degenerate clipping rectangles sometimes got turned into -non-degenerate ones by swapping the min and max coordinates. (gxcpath.c) - - Resizing an object either allocated a new object unnecessarily -(performance bug only), or in very rare cases could corrupt memory. -(gsalloc.c) - - Very small objects didn't get put on a free list when freed. -(Performance bug only.) (gsalloc.c) - - Some pointers were incorrectly declared 'const', upsetting some -compilers. (gxclread.c) - -Adds more tracing output for -ZL. (gxclread.c) - -Changes the -Za tracing output slightly to aid mechanical analysis of -allocation traces: allocation events now always include a '+', deallocation -events always include a '-', and the address is always the address of the -object data and not the header. (gsalloc.c, gsmemory.c) - -Changes the allocator to keep track of "lost" object and string space -separately, to allow an independent check on its activities. (gxalloc.h, -gsalloc.c) - -Changes the allocator to use 'memmove' in an obvious place. (gsalloc.c) - -Provides a garbage collector API at the library level to allow -implementation of the API in applications other than PostScript -interpreters. (gsgc.h) - -</pre> - -<h2><a name="Version4.30"></a>Version 4.30 (limited) (10/23/96)</h2> - -<p> -The main purpose of this release is to implement a substantial change in the -"high level" image API, after which we believe this API will be stable. - -<h3><a name="V4.30_Documentation"></a>Documentation</h3><pre> - -Documents the changes in the begin_image and image_data device procedures. -(drivers.txt) - -</pre><h3><a name="V4.30_Drivers"></a>Drivers</h3><pre> - -Speeds up the PDF writer a little by reducing the amount of allocation, -which was causing very frequent garbage collections. (gs_pdfwr.ps, -gdevpdft.c) - -Updates the PDF writer for the change in begin_image/image_data. -(gdevpdfi.c) - -</pre><h3><a name="V4.30_Platforms"></a>Platforms</h3><pre> - -Fixes bugs: - - Some versions of the SGI IRIX compiler have a bug that causes them -to try to expand macros that require arguments even when the macro name -isn't followed by a left parenthesis. (gdevsgi.h, gdevsgi.c) - - The IBM RS6000 compilers now provide <stdlib.h>, so our -definitions of malloc and free caused a conflict. (malloc_.h) - -</pre><h3><a name="V4.30_Fonts"></a>Fonts</h3><pre> - -Fixes bugs: - - Many Fontmaps included obsolete references to an old -Helvetica-Narrow font. (Fontmap.*) - -Makes the GS_FONTPATH directory scanner a little more liberal about what -files it examines: it will now examine any file whose first line begins with -%!PS-Adobe or %!FontType. (gs_fonts.ps) - -To match an apparent Adobe convention, augments findfont so that if a font -isn't in the Fontmap, it will try to load a file whose name is the same as -the font name. (gs_fonts.ps) - -To make some questionable Apple font inquiry code work, augments the -FAKEFONTS facility so that it sets the FontType of fake fonts to 1. -(gs_fonts.ps) - -</pre><h3><a name="V4.30_Interpreter"></a>Interpreter</h3><pre> - -Fixes bugs: - - .checkpassword, .putdeviceparams, .putdevparams, setsystemparams, -and setuserparams didn't free the results byte array, causing a memory leak -(until the next garbage collection). (zdevice.c, ziodev.c, zusparam.c) - -</pre><h3><a name="V4.30_Library"></a>Library</h3><pre> - -Fixes bugs: - - The code for emulating floating point multiplication with -conversion to fixed point didn't detect overflow correctly, which could -produce incorrect results instead of a limitcheck. (gsmisc.c) - - A macro cast a pointer incorrectly, leading to spurious compiler -warnings. (gxfixed.h) - - The code for emulating fixed-to-float conversion computed the -exponent incorrectly. (gsmisc.c) - - The algorithm for advancing a DDA a given number of steps (not -actually used anywhere before this version) was wrong. (gxdda.h) - - The clipping box returned by clipping devices was incorrect, -causing parts of the page to disappear. (bug introduced in 4.20) -(gxcpath.c) - -Changes the begin_image and image_data device procedures: - - begin_image now takes an optional subrectangle instead of a set of -shape flags. - - image_data now always takes complete rows of pixels, takes a -source X offset, and returns 1 when it has received all the data. - -The change in begin_image and image_data is a NON-BACKWARD-COMPATIBLE CHANGE -IN A PUBLIC INTERFACE; however, this interface was still designated "subject -to change", per the notes for release 3.67 and the documentation in -drivers.txt. (gsiparam.h, gxclpath.h, gxdda.h, gxdevice.h, gximage.h, -gdevbbox.c, gdevnfwd.c, gsimage.c, gxclimag.c, gxclread.c, gximage.c, -gximage?.c) - -</pre> - -<hr> - -<h2><a name="Version4.21"></a>Version 4.21 (limited) (10/17/96)</h2> - -<p> -The purpose of this release is to fix bugs reported in 4.0x, 4.10, and 4.20. - -<h3><a name="V4.21_Documentation"></a>Documentation</h3><pre> - -Fixes bugs: - - The Ghostscript man page had a .TH in the middle. (gs.1) - -</pre><h3><a name="V4.21_Procedures"></a>Procedures</h3><pre> - -Fixes bugs: - - The shared version of zlib was always called libgz; on most -systems, it is now called libz (but not on Red Hat Linux, where libz is a -library for dealing with time zones). (*.mak, gs.mak, libpng.mak, zlib.mak) - - The pdf2dsc.1 man page wasn't installed on Unix systems. -(unix-end.mak) - - font2c generated procedures named gsf_xxx, but genconf assumed -they were named gs_f_xxx. (int.mak) - -</pre><h3><a name="V4.21_Drivers"></a>Drivers</h3><pre> - -Updates the user-contributed LBP-8II driver to correct unspecified problems. -(gdevlbp8.c) - -Adds a user-contributed driver for Avance Logic SuperVGA cards. -(gdevsvga.c, devs.mak) - -</pre><h3><a name="V4.21_Platforms"></a>Platforms</h3><pre> - -Fixes bugs: - - On Windows NT, a 32-bit parameter was truncated to 16 bits, -preventing drawing of scroll bars of the image window when the window is -uncovered. (dwimg.cpp) - -</pre><h3><a name="V4.21_Fonts"></a>Fonts</h3><pre> - -Fixes bugs: - - The free URW Grotesk and Antiqua fonts were omitted from the -distribution. - -</pre><h3><a name="V4.21_Interpreter"></a>Interpreter</h3><pre> - -Fixes bugs: - - Defining a new global instance of a built-in resource -(ColorRendering, ColorSpace, Form, Halftone, Pattern, ProcSet) caused an -invalidaccess error. (gs_res.ps) - - pathbbox with no current path left an extra item on the stack when -the error occurred. (gs_init.ps) - - findresource for an undefined resource instance didn't preserve -the contents of the stack. (gs_res.ps) - -Adds a new file providing a procedural interface with a very rudimentary -form of job encapsulation. (gserver.c) - -Changes the initial value of MaxOpStack to 20000, for the sake of a few -badly-behaved files. (gs_init.ps, pdf_base.ps) - -</pre><h3><a name="V4.21_Library"></a>Library</h3><pre> - -Fixes bugs: - - If the image operators failed to allocated their bookkeeping -structure, the result was a crash rather than VMerror. (gximage.c) - - gx_default_fill_triangle (currently used only to implement the -fastest case of stroke) had a typo that could cause a numeric exception or -incorrect output, and another typo that could produce incorrect output. -(gdevddrw.c) - - When banding, if the first occurrence of a character fell partly -off the page, all occurrences of that character on the page could be clipped -or mangled. (gxclbits.c, gxclimag.c) - - When testing whether it's worthwhile compressing a bitmap for -banding, the compressor was allowed to generate a lot more output than -needed to make the test. (gxclbits.c) - - Certain cases of unrotated gray-scale images dropped the first or -last pixel of each scan line. (gximage2.c) - - In rare cases, a run of pixels in a image could get erroneously -displayed in the same color as the previous run, because of a cache -bookkeeping bug. (gximage3.c) - - The sample driver for the library had gotten inconsistent with a -header file. (gslib.c) - - A declaration was followed by an extraneous semicolon, which upset -some compilers. (gxht.h) - - Missing parentheses caused a test for thin lines to be incorrect. -(gxstroke.c) - -</pre> - -<h2><a name="Version4.20"></a>Version 4.20 (limited) (10/13/96)</h2> - -<p> -This release has internal changes for future support of banded image -processing, but no externally visible changes. Its primary purpose is to -incorporate speedups for clipped images. It does *not* incorporate fixes -for all problems reported in 4.0x or 4.10. - -<h3><a name="V4.20_Documentation"></a>Documentation</h3><pre> - -Documents the new get_clipping_box device procedure. (drivers.txt) - -</pre><h3><a name="V4.20_Procedures"></a>Procedures</h3><pre> - -Fixes bugs: - - There were many, many minor inconsistencies between the makefiles -and the source code. (We finally have an automated tool to detect these.) -(devs.mak, int.mak, lib.mak, unixtail.mak; gsutil.c, zwppm.c) - - Some makefile rules weren't properly terminated by a blank line. -(lib.mak) - -</pre><h3><a name="V4.20_Utilities"></a>Utilities</h3><pre> - -Fixes bugs: - - The comments in gslp.ps had gotten out of date. (gslp.ps) - -Adds --no-eject-file and --no-eject-formfeed switches to gslp.ps, to allow -packing files in multi-column printouts. (gslp.ps) - -</pre><h3><a name="V4.20_Drivers"></a>Drivers</h3><pre> - -Adds a user-contributed driver for the Epson LP-8000 laser printer. -(gdevlp8k.c) - -Adds a DisplayMode parameter to the vgalib device. (gdevvglb.c) - -Removes the requirement of typing a character at the end of each page using -the vgalib driver. THIS IS A USER-VISIBLE, NON-BACKWARD-COMPATIBLE CHANGE. -(gdevvglb.c) - -</pre><h3><a name="V4.20_Interpreter"></a>Interpreter</h3><pre> - -Updates code to accommodate the new get_clipping_box device procedure. -(zupath.c) - -</pre><h3><a name="V4.20_Library"></a>Library</h3><pre> - -Fixes bugs: - - When a CTM was passed through the band list, it didn't get -translated to match the band coordinate system. (This had no effect, -because the translation part of the CTM was never used.) (gxclread.c) - -Adds a ',' debugging switch to disable high-level operations when banding. -(gxclpath.c) - -Adds an optional get_clipping_box device procedure, so that filling and -stroking can clip more aggressively. (gdevmem.h, gdevprn.h, gxdevice.h, -gxpaint.h, gxpath.h, gzacpath.h, gdevdflt.c, gdevht.c, gdevnfwd.c, -gxacpath.c, gxclip2.c, gxclist.c, gxcpath.c, gxpcmap.c, gxfill.c, -gxstroke.c) - -Speeds up clipped filling and stroking, by checking against the device -clipping box. (gxfill.c, gxstroke.c) - -Adds the ability to clip with a rectangle a clipping path being accumulated, -and uses it to do more aggressive clipping when banding. (gzacpath.h, -gxacpath.c, gxclread.c) - -Speeds up clipping of objects lying partly above or below the clipping -region. (gxcpath.c) - -Speeds up clipping vertically-oriented objects (such as 90 degree rotated -images or vertical rectangles) with convex clipping regions, by checking for -vertical rectangles contained in multiple clipping rectangles. (gxcpath.c) - -Speeds up the handling of 90 degree rotated gray-scale images. (gximage2.c) - -Enhances the band list so that it can contain commands for a range of bands, -not just a single band or all bands. (gxcldev.h, gxclist.h, gxclbits.c, -gxclist.c, gxclread.c) - -Adds an operation to the DDA structure, for eventual support of clipped -images. (gxdda.h) - -Factors out some macros useful for generating bit-transformation tables. -(gsbittab.h, gsbittab.c, gsflip.c) - -</pre> - -<hr> - -<h2><a name="Version4.10"></a>Version 4.10 (limited) (9/25/96)</h2> - -<p> -This release adds local garbage collection, and a number of performance -improvements for garbage collection in general. We will support it for one -or two OEMs, but it is not a public release. - -<h3><a name="V4.10_Documentation"></a>Documentation</h3><pre> - -Moves documentation for all releases before 4.0 to history3.txt. (NEWS, -history3.txt) - -</pre><h3><a name="V4.10_Utilities"></a>Utilities</h3><pre> - -Fixes bugs: - - pdf2dsc.ps didn't have a proper license notice. (pdf2dsc.ps) - -</pre><h3><a name="V4.10_Drivers"></a>Drivers</h3><pre> - -Adds a psgray driver, like psmono, to produce 8-bit gray PostScript (level -1) images. (devs.mak, *.mak, gdevpsim.c) - -Changes the psmono driver to allow runs of up to 255 repeated bytes. -(gdevpsim.c) - -</pre><h3><a name="V4.10_Interpreter"></a>Interpreter</h3><pre> - -Fixes bugs: - - setdevice erased the page even if this wasn't necessary. -(zdevice.c) - -Speeds up the garbage collector, primarily by speeding up pointer -relocation. (int.mak, ipacked.h, iref.h, ialloc.c, igc.c, igcref.c) - -Actually implements local garbage collection. (igc.h, ivmspace.h, igc.c, -igcref.c, igcstr.c, ireclaim.c) - -Adds some additional error checking for the -Z? switch. (ilocate.c) - -Moves a utility for color mapping from the interpreter to the library. -(icolor.h, zcolor.c) - -Adds a MinScreenLevels user parameter. (zusparam.c) - -</pre><h3><a name="V4.10_Interpreter_PDF"></a>Interpreter (PDF)</h3><pre> - -Adds partial support for the PDF 1.2 gs operator, reverse engineered from a -PDF 1.2 file. (pdf_draw.ps) - -</pre><h3><a name="V4.10_Library"></a>Library</h3><pre> - -Fixes bugs: - - The test for "thin" stroked lines incorrectly claimed some -non-thin lines were thin. (gxstroke.c) - - The computations for halftone cells didn't work for non-square -pixels. (gxdht.h, gsht.c, gsht1.c, gshtscr.c) - -Speeds up the garbage collector a little. (gsstruct.h, gxalloc.h, -gxfcache.h, gsfont.c) - -Replaces references to private statically allocated color spaces with -references to shared dynamically allocated ones, which are guaranteed to be -fully filled-in. (gscie.c) - -Moves a utility for color mapping from the interpreter to the library. -(gxfmap.h, gxcmap.c) - -Makes available an imager analogue of setmatrix. (gscoord.h, gscoord.c) - -Adds a parameter to control the minimum number of halftone screen levels. -If a halftone cell has fewer pixels than this number, it will be replicated -(similar to what AccurateScreens does) until the replicated screen has -enough levels. (gxht.h, gshtscr.c) - -</pre> - -<hr> - -<h2><a name="Version4.03"></a>Version 4.03 (9/23/96)</h2> - -<p> -This was an emergency re-release of 4.02 to fix the stdin redirection -problem. It has essentially no other changes. - -<h3><a name="V4.03_Documentation"></a>Documentation</h3><pre> - -Fixes bugs: - - Solaris 2.x has /usr/ucb/install, not installbsd. (make.txt) - -Updates current.txt to mention the ability to share libpng and libgz. -(current.txt) - -</pre><h3><a name="V4.03_Procedures"></a>Procedures</h3><pre> - -Fixes bugs: - - A rule assumed that the makefile was named `makefile'. -(unixtail.mak) - -</pre><h3><a name="V4.03_Drivers"></a>Drivers</h3><pre> - -Fixes bugs: - - The stcolor drivers had an off-by-1 error that could cause them to -write into unallocated memory. (gdevstc.c) - - The Imagen driver wouldn't compile with gcc. (gdevimgn.c) - -</pre><h3><a name="V4.03_Fonts"></a>Fonts</h3><pre> - -Fixes bugs: - - The Solaris fontmap had gotten out of date. (Fontmap.Sol) - -</pre><h3><a name="V4.03_Streams"></a>Streams</h3><pre> - -Fixes bugs: - - The test for stdin being non-seekable could leave the file error -flag set, which caused an infinite loop when trying to read from the file -later. (sfile.c, sfileno.c) - -</pre> - -<h2><a name="Version4.02"></a>Version 4.02 (9/19/96)</h2> - -<p> -This release fixes a few more bugs, and adds the ability to read encrypted -PDF files and some PDF 1.2 files. - -<p> -This release was withdrawn after a few days because the stdin redirection -fix, which was made at the last minute, cause Ghostview to hang. - -<h3><a name="V4.02_Documentation"></a>Documentation</h3><pre> - -Fixes bugs: - - The list of required support files was incorrect. (install.txt) - - The descriptions of file name lookup weren't accurate. (use.txt) - - A J should have been an H. (gxbitmap.h) - -Updates the documentation about encrypted PDF files. (new-user.txt) - -Documents what the 13 base PDF fonts are. (ps2pdf.txt) - -Fixes a tiny typo. (c-style.txt) - -Adds a user-contributed man page for the new pdf2dsc script. (pdf2dsc.1) - -Updates the government restricted rights notice in the Aladdin Ghostscript -Free Public License. (PUBLIC) - -Adds the URL of test files to the bug report form. (new-user.txt) - -Puts the bug reporting form in a separate file. (readme, bug-form.txt, -new-user.txt) - -Notes that map_xxx_color procedures should not return gx_no_color_index. -(drivers.txt) - -Notes that Ghostscript supports the Flate filters. (language.txt) - -Documents the use of the system libpng and zlib. (make.txt, gs.mak) - -Notes that Borland C++ 5.0 and 5.01 will not compile Ghostscript correctly. -(make.txt) - -</pre><h3><a name="V4.02_Procedures"></a>Procedures</h3><pre> - -Fixes bugs: - - Using both DELAYBIND and SAFER caused problems. (pstotext uses -DELAYBIND.) (gs_init.ps) - -</pre><h3><a name="V4.02_Utilities"></a>Utilities</h3><pre> - -Fixes bugs: - - Some pdf2ps machinery interfered with the PDF interpreter. -(pdf_2ps.ps, pdf_main.ps) - - In the output of pdf2ps, page numbers in link destinations were -too high by 1. (pdf_main.ps) - - viewpbm didn't handle value ranges other than [0..255] correctly. -(viewpbm.ps) - -Adds a user-contributed shell script to invoke pdf2dsc.ps. (pdf2dsc, -unix-end.mak) - -Adds a switch to the genconf utility to set the prefix for generated -procedure names. (genconf.c) - -Adds the option of using system libraries (possibly shared) for libpng -and/or zlib. (*head.mak, msc*.mak, os2.mak, tccommon.mak, wccommon.mak; -libpng.mak, zlib.mak) - -</pre><h3><a name="V4.02_Drivers"></a>Drivers</h3><pre> - -Fixes bugs: - - The X11 display devices ignored the -DA4 compile-time option. -(gdevx.c) - - The garbage collector could scramble the state of the CGM drivers. -(gxdevice.h, gdevcgm.c) - - An identifier of more than 31 characters upset the VAX DEC C -compiler. (gdevcgml.h, gdevcgml.c) - - In case of an error in trying to set the CoreDistVersion distiller -parameter, a variable could be used without initialization. (gdevpdfp.c) - - When DEBUG is selected, the X Windows driver referenced _Xdebug, -which is not defined in (at least the VMS version of) DECWindows. (x_.h, -gdevxini.c) - - Some map_cmyk_color implementations could return "transparent". -(gdevbit.c) - - Setting GraphicsAlphaBits or TextAlphaBits in the P*M drivers -caused an error. (gdevpbm.c) - - If a user cancelled printing under MS Windows, a confusing error -resulted, and a temporary file wasn't deleted. (gdevwpr2.c) - - The map_color_rgb procedure for the bit devices produced incorrect -results. (This probably had no effect in practice.) (gdevbit.c) - - The os2prn device produced incorrect output. (gdevos2p.c) - - The OS/2 PM device didn't detect PM applications correctly. -(gdevpm.c) - - The MS Windows printer driver didn't automatically detect the -printer's color capabilities. (gdevwpr2.c) - - The BJC-610 driver didn't print at 720 dpi. (gdevcdj.c) - - The static prototypes of many devices didn't include the far_data -keyword. (gdev3852.c, gdev4081.c, gdevbgi.c, gdevcgm.c, gdevht.c, -gdevimgn.c, gdevl256.c, gdevmrop.c, gdevn533.c, gdevnfwd.c, gdevnp6.c, -gdevo182.c, gdevpcfb.c, gdevpdf.c, gdevpe.c, gdevpm.c, gdevs3ga.c, -gdevsnfb.c, gdevsppr.c, gdevsun.c, gdevsvga.c, gdevtknk.c, gdevvglb.c, -gdevwddb.c, gdevwprn.c, gdevx.c, gdevxalt.c) - - The (original) deskjet driver collapsed print lines towards the -left margin. (gdevdjet.c) - -Adds to the pgm/pgnm/ppm/pnm[raw] drivers the ability to set the maximum -pixel value, by setting any of the Gray/Red/Green/BlueValues device -parameters. (gdevpbm.c) - -Adds pkm[raw] drivers, which do all their internal computations in CMYK and -convert the data to RGB as they write the file. (gdevpbm.c) - -</pre><h3><a name="V4.02_Platforms"></a>Platforms</h3><pre> - -Fixes bugs: - - The VMS script referred to old versions of the third-party -libraries. (vms.mak) - - Under VMS with DEC C, attempting to open a new file fails. -(gp_vms.c) - - If you tried to print (gp_printfile) under Windows on a system -with no printers installed, Ghostscript caused a GPF. (gp_mswin.c) - -Restores support for a non-DLL MS Windows platform. (bcwin32.mak, -dwnodll.cpp) - -Adds a new MS Windows DLL call, gsdll_get_bitmap. (gsdll16.def, -gsdll32.def, dll.txt, gdevwdib.c) - -Fixes a variety of other small Windows- and OS/2-related problems, mostly -related to printing. (gp_mswin.h, dpmainc.c, dwmain.cpp, dwmainc.cpp, -gdevmswn.c, gdevpm.c, gdevwpr2.c, gp_mswin.c) - -</pre><h3><a name="V4.02_Interpreter"></a>Interpreter</h3><pre> - -Fixes bugs: - - The value of /newerror in $error was true at the end of -initialization. We now reset it after each internal use of stopped if -necessary. (gs_dps1.ps, gs_fform.ps, gs_fonts.ps, gs_init.ps, gs_pdf.ps, -gs_res.ps, gs_type1.ps) - - setpagedevice (and finddevice) didn't recognize Default. -(gs_init.ps) - - When running with -dNODISPLAY, calling gssetresolution would cause -a crash. (gs_init.ps) - - A particular combination of save, .forgetsave, and garbage -collection could cause a memory access error in restore. (isave.c) - - Some references to systemdict were affected if a user redefined -the name /systemdict. (gs_cmdl.ps, gs_fonts.ps, gs_kanji.ps, gs_dps1.ps, -gs_init.ps, gs_res.ps, gs_statd.ps, gs_type1.ps) - - The insideness testing operators caused an invalid memory access. -(drivers.txt, zupath.c) - - If a readline reached an input buffer boundary between the \r and -\n of a 2-character EOL, an error could occur. (zfileio.c) - - setdevparams caused an error. (gs_lev2.ps) - -Changes file names beginning with ./ or ../ so they are recognized as -"absolute" and not subject to the search path. (gp_dosfs.c, gp_ntfs.c, -gp_os2.c, gp_unifn.c) - -Changes the exit code for -h or --help from 0 to 1, so an invoking program -will keep the output around for the user to look at. (imainarg.c) - -Adds the FlateEncode and FlateDecode filters; adds PNG pixel prediction to -the LZW filters. These additions are required for PDF 1.2 and will be part -of PostScript Level 3. (int.mak, lib.mak, zfdecode.c, zfilter2.c, zfzlib.c, -zfpngp.c [deleted]) - -</pre><h3><a name="V4.02_Interpreter_PDF"></a>Interpreter (PDF)</h3><pre> - -Fixes bugs: - - The copyright notices on some files didn't mention the Aladdin -free license. (pdf_*.ps) - - Some references to systemdict were affected if a user redefined -the name /systemdict. (pdf_font.ps) - - The value of /newerror in $error was true at the end of -initialization. We now reset it after each internal use of stopped if -necessary. (pdf_main.ps) - - stdin redirection failed for PDF files even if the new stdin was -seekable. (pdf_main.ps) - - The Rotate key rotated pages in the wrong direction. -(pdf_main.ps) - -Adds a minimal "security socket" to the interpreter. This does not include -any actual decryption code; such code is available elsewhere (see -new-user.txt). (int.mak, pdf_base.ps, pdf_main.ps, pdf_sec.ps) - -Adds a PDF 1.2 capability: - - The destination in a Dest array can be a page number as well as a -page object. (pdf_main.ps) - -</pre><h3><a name="V4.02_Streams"></a>Streams</h3><pre> - -Fixes bugs: - - stdin was assumed to be non-seekable. (sfile.c, sfileno.c) - -</pre><h3><a name="V4.02_Library"></a>Library</h3><pre> - -Fixes bugs: - - Garbage collection could corrupt a pointer in Type 0 fonts. -(gxfont0.h, gsfont0.c) - - When applying hints to a Type 1 font outline, the last point could -sometimes get moved twice, causing output anomalies. (gxhint3.c) - - An #include needed for debugging was missing. (gxcmap.h) - - Graphics states included a no-longer-used private color space -object. (gsstate.c) - - Images could get clipped randomly in the X direction. (I don't -understand why this problem hasn't shown up more often, since it's been -there since release 4.00.) (gximage.c) - - The arct and arcto operators failed to draw the line to the -starting point of the arc. (bug introduced in 4.01) (gspath1.c) - - Prefix subclasses of simple structures caused an invalid memory -access. (gsstruct.h) - - The variable fheight was sometimes unused. (gstype1.c) - - igcd and imod didn't have prototypes in an appropriate header -file, and were declared extern in several places. (gsdcolor.h, gsline.h, -gxarith.h, gxdht.h, gsht.c, gshtscr.c, gsimage.c, gsline.c, gstype1.c, -gxclimag.c) - - When using a non-identity RenderTable in a CIE rendering -dictionary, all colors came out too light. (gscie.c) - - When using anti-aliased graphics, stroked lines were rendered too -thin. (gspaint.c) - - The default map_cmyk_color implementations could return -"transparent". (gxcmap.c) - - The number of bits of alpha requested when rendering anti-aliased -characters could exceed 4. (gschar.c) - - Multi-screen halftones could cause errors or infinite looping when -banding. (This problem predates 4.0; I don't know why it didn't show up -before.) (gxcldev.h, gxclist.c, gxclread.c) - - Skewed or rotated gray-scale images, or masks with a halftoned -color, omitted one line of pixels and displaced the image by one pixel. -(gximage2.c) - -Adds an implementation of realloc, for systems that don't have one that -works. I don't know how to determine this automatically, so for the moment, -the code uses our own implementation on GNU/Linux (where realloc is known to be -broken, at least in some releases) and nowhere else. (malloc_.h, -gsmemory.c, gsmisc.c) - -Removes the "OLD" algorithms from the Type 1 hinting source code, since they -are no longer executed. (If necessary, they can be retrieved from an older -version.) (gxhint3.c) - -</pre> - -<h2><a name="Version4.01"></a>Version 4.01 (7/10/96)</h2> - -<p> -This fixes a few minor bugs discovered since the 4.0 release. - -<h3><a name="V4.01_Documentation"></a>Documentation</h3><pre> - -Fixes bugs: - - An installation directory name was wrong. (make.txt, -unix-lpr.txt) - - A URL was wrong. (devices.txt) - - A reference to use.doc hadn't been updated. (gs.1) - - Some references to /usr/local/lib hadn't been updated. (gs.1) - - The NEWS file and history* files still referred to *.doc rather -than *.txt. (NEWS, history*.txt) - -Adds a note about compilation on Digital Unix. (make.txt) - -Clarifies that calling gs_exit calls gs_finit automatically. (imain.h) - -Adds a pointer to the PDF encryption patch. (Ridiculous U.S. export control -laws don't allow including the patch itself in the main fileset.) -(new-user.txt) - -Adds a help file for VMS. (gs-vms.hlp) - -</pre><h3><a name="V4.01_Procedures"></a>Procedures</h3><pre> - -Fixes bugs: - - vms.mak had gotten out of sync with the makefiles (again). -(vms.mak) - - DEVICE{WIDTH,HEIGHT}POINTS didn't override PAPERSIZE. -(gs_init.ps) - - The Microsoft C makefiles had gotten out of date. (msc.mak) - -The (few) GNU-Licensed drivers were accidentally omitted from the fileset. - -Modifies a makefile for greater reusability. (watclib.mak) - -Adds a 'debug' target for making Unix debugging configurations. -(unix-end.mak) - -</pre><h3><a name="V4.01_Utilities"></a>Utilities</h3><pre> - -Fixes bugs: - - Some uses of 'run' should be changed to runlibfile. (bdftops.ps, -impath.ps, markhint.ps, packfile.ps, showchar.ps, waterfal.ps, wftopfa.ps, -wrfont.ps) - - Some debugging code hadn't been removed. (gslp.ps) - -Adds a new utility, viewcmyk.ps, for viewing 4-bit CMYK data. (psfiles.txt, -unix-end.mak, viewcmyk.ps) - -Improves pdf2dsc by including Title and CreationDate DSC comments (these are -displayed by Ghostview) and reducing the size of typical output files by a -factor of about 3. (pdf2dsc.ps) - -Incorporates major changes (claimed to be improvements) to ps2ascii -contributed by a user. If you have problems with it, please contact him, -not Aladdin. (ps2ascii.ps) - -</pre><h3><a name="V4.01_Platforms"></a>Platforms</h3><pre> - -Fixes bugs: - - The X value of a bounding box could be computed incorrectly. -(gdevbbox.c) - -</pre><h3><a name="V4.01_Platforms"></a>Platforms</h3><pre> - -Fixes bugs: - - The Windows DLL sometimes didn't clean up properly. (dll.txt, -dpmainc.c, dwdll.cpp, dwmain.cpp, dwmainc.cpp, gsdll.c, gsdll.h) - -</pre><h3><a name="V4.01_Interpreter"></a>Interpreter</h3><pre> - -Fixes bugs: - - Reading from a filter could hang forever, because a buffer was -allocated 1 byte too small. (zfilter.c) - - The search path could become garbage under some circumstances. -(imain.c) - - A dangling reference to a stack-allocated variable could corrupt -memory if a client mixed interpreter calls and direct C calls. (interp.c) - - Printing an object to a procedure-based filter could cause an -invalid memory access. (zfileio.c) - -</pre><h3><a name="V4.01_Library"></a>Library</h3><pre> - -Fixes bugs: - - Setting parameters for an unopened device could cause an access -error or invoke the wrong put_params procedure. (gsdparam.c) - - Reading from a filter could hang forever, because a buffer was -allocated 1 byte too small. (stream.h) - - If the current device was the nullpage device, doing a [g]save, -selecting a different device, and doing a [g]restore caused an error. -(gsdparam.c) - -Adds the ability to append arcs without the initial lineto, for PCL -emulation. (gspath.h, gspath1.c) - -</pre> - -<h2><a name="Version4.0"></a>Version 4.0 (6/28/96)</h2> - -<p> -This is the first public release since 3.53, with a few more last-minute -patches beyond 3.70. - -<h3><a name="V4.0_Documentation"></a>Documentation</h3><pre> - -Fixes bugs: - - Many makefiles still referred to .doc files rather than .txt. -(cfonts.mak, devs.mak, gs.mak, int.mak, libpng.mak, unix-end.mak, watc.mak, -watcwin.mak, wccommon.mak, zlib.mak) - - Some FONTPATH-related information was out of date. (use.txt) - - The installation directory for fonts was incorrect. (install.txt) - - The libpng and zlib versions were out of date. (libpng.mak, -zlib.mak) - - Some information about GSview was incorrect or incomplete. -(new-user.txt) - - make.txt said it described installation as well as building. -(make.txt) - -Notes that the current release of zlib won't compile and link correctly with -Sun cc. (make.txt) - -Adds a little more detail to the C style document. (c-style.txt) - -</pre><h3><a name="V4.0_Procedures"></a>Procedures</h3><pre> - -Fixes bugs: - - Some documentation files weren't installed. (unix-end.mak) - - Some dependencies were incorrect. (bcwin32.mak) - - 'make begin' and 'make clean' deleted too many and/or the wrong -files. (bcwin.mak, bcwin32.mak) - - libpng.mak didn't work with libpng version 0.89c. (libpng.mak) - - -d<var>=<name> was equivalent to -d<var>=/<name>, and there was no -way to set a variable to true, false, or null. (use.txt, gs_init.ps, -iinit.c, imainarg.c) - -Removes the modules.lis file, which is no longer used. - -Undoes detecting automatically the need to run tar_cat -- the mechanism -didn't work, and caused confusion. (unix-end.mak) - -Updates the makefiles to libpng version 0.89, but allows them to work with -either 0.88 or 0.89. (*.mak) - -</pre><h3><a name="V4.0_Utilities"></a>Utilities</h3><pre> - -Fixes bugs: - - Showing the details of a protected font caused an error. -(markhint.ps) - -</pre><h3><a name="V4.0_Drivers"></a>Drivers</h3><pre> - -Fixes bugs: - - A copyright notice was wrong. (gs_pdfwr.ps) - - PDF link annotations could get written with two Dest keys. -(gdevpdfm.c) - - MakeProcInstance and FreeProcInstance were called on platforms -where it wasn't appropriate. (gdevwpr2.c, gdevwprn.c, gp_mswin.c) - - On X servers that return very large values for the "virtual -screen" size in millimeters but correct values for the screen size in -pixels, a rangecheck could occur. (gdevxini.c) - - The bounding box device could return garbage if stroke or fill was -ever invoked with an empty path. (gdevbbox.c) - -Replaces the LBP8 driver with a revised one contributed by a user. -(gdevlbp8.c, devs.mak) - -</pre><h3><a name="V4.0_Platforms"></a>Platforms</h3><pre> - -Fixes bugs: - - Some Windows menu parameters were incorrect. (gsdll16.rc, -gsdll32.rc) - -</pre><h3><a name="V4.0_Interpreter"></a>Interpreter</h3><pre> - -Fixes bugs: - - .getdevparams sometimes returned duplicate entries for /Type. -(ziodev2.c) - - File names weren't parsed or concatenated properly on all -platforms. (gs_fonts.ps, zfile.c) - - Filter lookahead caused problems with special files. (zfproc.c) - - If a TransformPQR procedure in a CIE color rendering dictionary -didn't pop its 4 array arguments, an error occurred. (gs_lev2.ps, zcrd.c) - -</pre><h3><a name="V4.0_Streams"></a>Streams</h3><pre> - -Fixes bugs: - - Filter lookahead caused problems with special files. (bug -introduced in 3.70) (stream.h) - -</pre><h3><a name="V4.0_Library"></a>Library</h3><pre> - -Fixes bugs: - - .getdevparams sometimes returned duplicate entries for /Type. -(gxiodev.h, gsiodev.c) - -</pre> - -<!-- [3.0 begin visible trailer] =========================================== --> -<hr> - -<p> -<small>Copyright © 1996, 1997, 1998 Aladdin Enterprises. -All rights reserved.</small> - -<p> -This software is provided AS-IS with no warranty, either express or -implied. - -This software is distributed under license and may not be copied, -modified or distributed except as expressly authorized under the terms -of the license contained in the file LICENSE in this distribution. - -<p> -<small>Ghostscript version 7.07, 17 May 2003 - -<!-- [3.0 end visible trailer] ============================================= --> - -</body> -</html> |