xref: /plan9/sys/src/cmd/gs/doc/History4.htm (revision 593dc095aefb2a85c828727bbfa9da139a49bdf4)
13ff48bf5SDavid du Colombier<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
27dd7cddfSDavid du Colombier<html>
37dd7cddfSDavid du Colombier<head>
47dd7cddfSDavid du Colombier<title>History of Ghostscript versions 4.n</title>
5*593dc095SDavid du Colombier<!-- $Id: History4.htm,v 1.39 2005/10/20 19:46:23 ray Exp $ -->
67dd7cddfSDavid du Colombier<!-- Originally: history4.txt -->
77dd7cddfSDavid du Colombier<!--
87dd7cddfSDavid du Colombier	WARNING: do not use Pete Kaiser's emacs function "gs-toc" alone to
97dd7cddfSDavid du Colombier	re-create the table of contents here, because it will replace the
107dd7cddfSDavid du Colombier	hand-edited TOC subheads with a separate subhead for each H2 in
117dd7cddfSDavid du Colombier	the body of the file.  Or if you do, first look at the original
127dd7cddfSDavid du Colombier	TOC to see how to edit it for visual conciseness.
137dd7cddfSDavid du Colombier-->
143ff48bf5SDavid du Colombier<link rel="stylesheet" type="text/css" href="gs.css" title="Ghostscript Style">
157dd7cddfSDavid du Colombier</head>
167dd7cddfSDavid du Colombier
177dd7cddfSDavid du Colombier<body>
187dd7cddfSDavid du Colombier<!-- [1.0 begin visible header] ============================================ -->
197dd7cddfSDavid du Colombier
207dd7cddfSDavid du Colombier<!-- [1.1 begin headline] ================================================== -->
217dd7cddfSDavid du Colombier
223ff48bf5SDavid du Colombier<h1>History of Ghostscript versions 4.n</h1>
237dd7cddfSDavid du Colombier
247dd7cddfSDavid du Colombier<!-- [1.1 end headline] ==================================================== -->
257dd7cddfSDavid du Colombier
267dd7cddfSDavid du Colombier<!-- [1.2 begin table of contents] ========================================= -->
277dd7cddfSDavid du Colombier
287dd7cddfSDavid du Colombier<h2>Table of contents</h2>
297dd7cddfSDavid du Colombier
307dd7cddfSDavid du Colombier<blockquote><ul>
317dd7cddfSDavid du Colombier<li><a href="#Version4.81">Version 4.81 (6/1/97)</a>
327dd7cddfSDavid du Colombier<ul>
337dd7cddfSDavid du Colombier<li><a href="#V4.81_Documentation">Documentation</a>,
347dd7cddfSDavid du Colombier    <a href="#V4.81_Procedures">Procedures</a>,
357dd7cddfSDavid du Colombier    <a href="#V4.81_Utilities">Utilities</a>,
367dd7cddfSDavid du Colombier    <a href="#V4.81_Drivers">Drivers</a>,
377dd7cddfSDavid du Colombier    <a href="#V4.81_Platforms">Platforms</a>,
387dd7cddfSDavid du Colombier    <a href="#V4.81_Interpreter">Interpreter</a>,
397dd7cddfSDavid du Colombier    <a href="#V4.81_Library">Library</a>
407dd7cddfSDavid du Colombier</ul>
417dd7cddfSDavid du Colombier<li><a href="#Version4.80">Version 4.80 (limited) (5/28/97)</a>
427dd7cddfSDavid du Colombier<ul>
437dd7cddfSDavid du Colombier<li><a href="#V4.80_Documentation">Documentation</a>,
447dd7cddfSDavid du Colombier    <a href="#V4.80_Procedures">Procedures</a>,
457dd7cddfSDavid du Colombier    <a href="#V4.80_Utilities">Utilities</a>,
467dd7cddfSDavid du Colombier    <a href="#V4.80_Drivers">Drivers</a>,
477dd7cddfSDavid du Colombier    <a href="#V4.80_Platforms">Platforms</a>,
487dd7cddfSDavid du Colombier    <a href="#V4.80_Fonts">Fonts</a>,
497dd7cddfSDavid du Colombier    <a href="#V4.80_Interpreter">Interpreter</a>,
507dd7cddfSDavid du Colombier    <a href="#V4.80_Streams">Streams</a>,
517dd7cddfSDavid du Colombier    <a href="#V4.80_Library">Library</a>
527dd7cddfSDavid du Colombier</ul>
537dd7cddfSDavid du Colombier<li><a href="#Version4.74">Version 4.74 (limited) (5/5/97)</a>
547dd7cddfSDavid du Colombier<ul>
557dd7cddfSDavid du Colombier<li><a href="#V4.74_Documentation">Documentation</a>,
567dd7cddfSDavid du Colombier    <a href="#V4.74_Utilities">Utilities</a>,
577dd7cddfSDavid du Colombier    <a href="#V4.74_Drivers">Drivers</a>,
587dd7cddfSDavid du Colombier    <a href="#V4.74_Interpreter">Interpreter</a>,
597dd7cddfSDavid du Colombier    <a href="#V4.74_Streams">Streams</a>,
607dd7cddfSDavid du Colombier    <a href="#V4.74_Library">Library</a>
617dd7cddfSDavid du Colombier</ul>
627dd7cddfSDavid du Colombier<li><a href="#Version4.73">Version 4.73 (limited) (4/19/97)</a>
637dd7cddfSDavid du Colombier<ul>
647dd7cddfSDavid du Colombier<li><a href="#V4.73_Documentation">Documentation</a>,
657dd7cddfSDavid du Colombier    <a href="#V4.73_Procedures">Procedures</a>,
667dd7cddfSDavid du Colombier    <a href="#V4.73_Utilities">Utilities</a>,
677dd7cddfSDavid du Colombier    <a href="#V4.73_Drivers">Drivers</a>,
687dd7cddfSDavid du Colombier    <a href="#V4.73_Platforms">Platforms</a>,
697dd7cddfSDavid du Colombier    <a href="#V4.73_Interpreter">Interpreter</a>,
707dd7cddfSDavid du Colombier    <a href="#V4.73_Interpreter_PDF">Interpreter (PDF)</a>,
717dd7cddfSDavid du Colombier    <a href="#V4.73_Streams">Streams</a>,
727dd7cddfSDavid du Colombier    <a href="#V4.73_Library">Library</a>
737dd7cddfSDavid du Colombier</ul>
747dd7cddfSDavid du Colombier<li><a href="#Version4.72">Version 4.72 (limited) (4/14/97)</a>
757dd7cddfSDavid du Colombier<ul>
767dd7cddfSDavid du Colombier<li><a href="#V4.72_Documentation">Documentation</a>,
777dd7cddfSDavid du Colombier    <a href="#V4.72_Procedures">Procedures</a>,
787dd7cddfSDavid du Colombier    <a href="#V4.72_Drivers">Drivers</a>,
797dd7cddfSDavid du Colombier    <a href="#V4.72_Platforms">Platforms</a>,
807dd7cddfSDavid du Colombier    <a href="#V4.72_Interpreter">Interpreter</a>,
817dd7cddfSDavid du Colombier    <a href="#V4.72_Interpreter_PDF">Interpreter (PDF)</a>,
827dd7cddfSDavid du Colombier    <a href="#V4.72_Streams">Streams</a>,
837dd7cddfSDavid du Colombier    <a href="#V4.72_Library">Library</a>
847dd7cddfSDavid du Colombier</ul>
857dd7cddfSDavid du Colombier<li><a href="#Version4.71">Version 4.71 (limited) (3/31/97)</a>
867dd7cddfSDavid du Colombier<ul>
877dd7cddfSDavid du Colombier<li><a href="#V4.71_Documentation">Documentation</a>,
887dd7cddfSDavid du Colombier    <a href="#V4.71_Procedures">Procedures</a>,
897dd7cddfSDavid du Colombier    <a href="#V4.71_Drivers">Drivers</a>,
907dd7cddfSDavid du Colombier    <a href="#V4.71_Interpreter">Interpreter</a>,
917dd7cddfSDavid du Colombier    <a href="#V4.71_Streams">Streams</a>,
927dd7cddfSDavid du Colombier    <a href="#V4.71_Library">Library</a>
937dd7cddfSDavid du Colombier</ul>
947dd7cddfSDavid du Colombier<li><a href="#Version4.70">Version 4.70 (limited) (3/26/97)</a>
957dd7cddfSDavid du Colombier<ul>
967dd7cddfSDavid du Colombier<li><a href="#V4.70_Documentation">Documentation</a>,
977dd7cddfSDavid du Colombier    <a href="#V4.70_Procedures">Procedures</a>,
987dd7cddfSDavid du Colombier    <a href="#V4.70_Drivers">Drivers</a>,
997dd7cddfSDavid du Colombier    <a href="#V4.70_Platforms">Platforms</a>,
1007dd7cddfSDavid du Colombier    <a href="#V4.70_Interpreter">Interpreter</a>,
1017dd7cddfSDavid du Colombier    <a href="#V4.70_Interpreter_PDF">Interpreter (PDF)</a>,
1027dd7cddfSDavid du Colombier    <a href="#V4.70_Streams">Streams</a>,
1037dd7cddfSDavid du Colombier    <a href="#V4.70_Library">Library</a>
1047dd7cddfSDavid du Colombier</ul>
1057dd7cddfSDavid du Colombier<li><a href="#Version4.61">Version 4.61 (limited) (3/13/97)</a>
1067dd7cddfSDavid du Colombier<ul>
1077dd7cddfSDavid du Colombier<li><a href="#V4.61_Documentation">Documentation</a>,
1087dd7cddfSDavid du Colombier    <a href="#V4.61_Procedures">Procedures</a>,
1097dd7cddfSDavid du Colombier    <a href="#V4.61_Drivers">Drivers</a>,
1107dd7cddfSDavid du Colombier    <a href="#V4.61_Platforms">Platforms</a>,
1117dd7cddfSDavid du Colombier    <a href="#V4.61_Interpreter">Interpreter</a>,
1127dd7cddfSDavid du Colombier    <a href="#V4.61_Interpreter_PDF">Interpreter (PDF)</a>,
1137dd7cddfSDavid du Colombier    <a href="#V4.61_Streams">Streams</a>,
1147dd7cddfSDavid du Colombier    <a href="#V4.61_Library">Library</a>
1157dd7cddfSDavid du Colombier</ul>
1167dd7cddfSDavid du Colombier<li><a href="#Version4.60">Version 4.60 (limited) (3/2/97)</a>
1177dd7cddfSDavid du Colombier<ul>
1187dd7cddfSDavid du Colombier<li><a href="#V4.60_Documentation">Documentation</a>,
1197dd7cddfSDavid du Colombier    <a href="#V4.60_Procedures">Procedures</a>,
1207dd7cddfSDavid du Colombier    <a href="#V4.60_Drivers">Drivers</a>,
1217dd7cddfSDavid du Colombier    <a href="#V4.60_Platforms">Platforms</a>,
1227dd7cddfSDavid du Colombier    <a href="#V4.60_Fonts">Fonts</a>,
1237dd7cddfSDavid du Colombier    <a href="#V4.60_Interpreter">Interpreter</a>,
1247dd7cddfSDavid du Colombier    <a href="#V4.60_Interpreter_PDF">Interpreter (PDF)</a>,
1257dd7cddfSDavid du Colombier    <a href="#V4.60_Streams">Streams</a>,
1267dd7cddfSDavid du Colombier    <a href="#V4.60_Library">Library</a>
1277dd7cddfSDavid du Colombier</ul>
1287dd7cddfSDavid du Colombier<li><a href="#Version4.51">Version 4.51 (limited) (2/9/97)</a>
1297dd7cddfSDavid du Colombier<ul>
1307dd7cddfSDavid du Colombier<li><a href="#V4.51_Procedures">Procedures</a>,
1317dd7cddfSDavid du Colombier    <a href="#V4.51_Drivers">Drivers</a>,
1327dd7cddfSDavid du Colombier    <a href="#V4.51_Platforms">Platforms</a>,
1337dd7cddfSDavid du Colombier    <a href="#V4.51_Interpreter">Interpreter</a>,
1347dd7cddfSDavid du Colombier    <a href="#V4.51_Streams">Streams</a>,
1357dd7cddfSDavid du Colombier    <a href="#V4.51_Library">Library</a>
1367dd7cddfSDavid du Colombier</ul>
1377dd7cddfSDavid du Colombier<li><a href="#Version4.50">Version 4.50 (limited) (1/31/97)</a>
1387dd7cddfSDavid du Colombier<ul>
1397dd7cddfSDavid du Colombier<li><a href="#V4.50_Documentation">Documentation</a>,
1407dd7cddfSDavid du Colombier    <a href="#V4.50_Procedures">Procedures</a>,
1417dd7cddfSDavid du Colombier    <a href="#V4.50_Drivers">Drivers</a>,
1427dd7cddfSDavid du Colombier    <a href="#V4.50_Platforms">Platforms</a>,
1437dd7cddfSDavid du Colombier    <a href="#V4.50_Interpreter">Interpreter</a>,
1447dd7cddfSDavid du Colombier    <a href="#V4.50_Streams">Streams</a>,
1457dd7cddfSDavid du Colombier    <a href="#V4.50_Library">Library</a>
1467dd7cddfSDavid du Colombier</ul>
1477dd7cddfSDavid du Colombier<li><a href="#Version4.41">Version 4.41 (private) (1/21/97)</a>
1487dd7cddfSDavid du Colombier<ul>
1497dd7cddfSDavid du Colombier<li><a href="#V4.41_Procedures">Procedures</a>,
1507dd7cddfSDavid du Colombier    <a href="#V4.41_Drivers">Drivers</a>,
1517dd7cddfSDavid du Colombier    <a href="#V4.41_Fonts">Fonts</a>,
1527dd7cddfSDavid du Colombier    <a href="#V4.41_Interpreter">Interpreter</a>,
1537dd7cddfSDavid du Colombier    <a href="#V4.41_Streams">Streams</a>,
1547dd7cddfSDavid du Colombier    <a href="#V4.41_Library">Library</a>
1557dd7cddfSDavid du Colombier</ul>
1567dd7cddfSDavid du Colombier<li><a href="#Version4.40">Version 4.40 (private) (1/13/97)</a>
1577dd7cddfSDavid du Colombier<ul>
1587dd7cddfSDavid du Colombier<li><a href="#V4.40_Documentation">Documentation</a>,
1597dd7cddfSDavid du Colombier    <a href="#V4.40_Utilities">Utilities</a>,
1607dd7cddfSDavid du Colombier    <a href="#V4.40_Drivers">Drivers</a>,
1617dd7cddfSDavid du Colombier    <a href="#V4.40_Interpreter">Interpreter</a>,
1627dd7cddfSDavid du Colombier    <a href="#V4.40_Interpreter_PDF">Interpreter (PDF)</a>,
1637dd7cddfSDavid du Colombier    <a href="#V4.40_Library">Library</a>
1647dd7cddfSDavid du Colombier</ul>
1657dd7cddfSDavid du Colombier<li><a href="#Version4.39">Version 4.39 (limited) (1/1/97)</a>
1667dd7cddfSDavid du Colombier<ul>
1677dd7cddfSDavid du Colombier<li><a href="#V4.39_Documentation">Documentation</a>,
1687dd7cddfSDavid du Colombier    <a href="#V4.39_Procedures">Procedures</a>,
1697dd7cddfSDavid du Colombier    <a href="#V4.39_Utilities">Utilities</a>,
1707dd7cddfSDavid du Colombier    <a href="#V4.39_Drivers">Drivers</a>,
1717dd7cddfSDavid du Colombier    <a href="#V4.39_Interpreter">Interpreter</a>,
1727dd7cddfSDavid du Colombier    <a href="#V4.39_Streams">Streams</a>,
1737dd7cddfSDavid du Colombier    <a href="#V4.39_Library">Library</a>
1747dd7cddfSDavid du Colombier</ul>
1757dd7cddfSDavid du Colombier<li><a href="#Version4.38">Version 4.38 (limited) (12/20/96)</a>
1767dd7cddfSDavid du Colombier<ul>
1777dd7cddfSDavid du Colombier<li><a href="#V4.38_Interpreter">Interpreter</a>,
1787dd7cddfSDavid du Colombier    <a href="#V4.38_Streams">Streams</a>,
1797dd7cddfSDavid du Colombier    <a href="#V4.38_Library">Library</a>
1807dd7cddfSDavid du Colombier</ul>
1817dd7cddfSDavid du Colombier<li><a href="#Version4.37">Version 4.37 (limited) (12/10/96)</a>
1827dd7cddfSDavid du Colombier<ul>
1837dd7cddfSDavid du Colombier<li><a href="#V4.37_Fonts">Fonts</a>,
1847dd7cddfSDavid du Colombier    <a href="#V4.37_Interpreter">Interpreter</a>,
1857dd7cddfSDavid du Colombier    <a href="#V4.37_Interpreter_PDF">Interpreter (PDF)</a>,
1867dd7cddfSDavid du Colombier    <a href="#V4.37_Library">Library</a>
1877dd7cddfSDavid du Colombier</ul>
1887dd7cddfSDavid du Colombier<li><a href="#Version4.36">Version 4.36 (limited) (12/3/96)</a>
1897dd7cddfSDavid du Colombier<ul>
1907dd7cddfSDavid du Colombier<li><a href="#V4.36_Documentation">Documentation</a>,
1917dd7cddfSDavid du Colombier    <a href="#V4.36_Drivers">Drivers</a>,
1927dd7cddfSDavid du Colombier    <a href="#V4.36_Interpreter">Interpreter</a>,
1937dd7cddfSDavid du Colombier    <a href="#V4.36_Library">Library</a>
1947dd7cddfSDavid du Colombier</ul>
1957dd7cddfSDavid du Colombier<li><a href="#Version4.35">Version 4.35 (limited) (11/24/96)</a>
1967dd7cddfSDavid du Colombier<ul>
1977dd7cddfSDavid du Colombier<li><a href="#V4.35_Documentation">Documentation</a>,
1987dd7cddfSDavid du Colombier    <a href="#V4.35_Procedures">Procedures</a>,
1997dd7cddfSDavid du Colombier    <a href="#V4.35_Interpreter">Interpreter</a>,
2007dd7cddfSDavid du Colombier    <a href="#V4.35_Streams">Streams</a>,
2017dd7cddfSDavid du Colombier    <a href="#V4.35_Library">Library</a>
2027dd7cddfSDavid du Colombier</ul>
2037dd7cddfSDavid du Colombier<li><a href="#Version4.34">Version 4.34 (limited) (11/18/96)</a>
2047dd7cddfSDavid du Colombier<ul>
2057dd7cddfSDavid du Colombier<li><a href="#V4.34_Documentation">Documentation</a>,
2067dd7cddfSDavid du Colombier    <a href="#V4.34_Procedures">Procedures</a>,
2077dd7cddfSDavid du Colombier    <a href="#V4.34_Drivers">Drivers</a>,
2087dd7cddfSDavid du Colombier    <a href="#V4.34_Interpreter">Interpreter</a>,
2097dd7cddfSDavid du Colombier    <a href="#V4.34_Streams">Streams</a>,
2107dd7cddfSDavid du Colombier    <a href="#V4.34_Library">Library</a>
2117dd7cddfSDavid du Colombier</ul>
2127dd7cddfSDavid du Colombier<li><a href="#Version4.33">Version 4.33 (limited) (11/6/96)</a>
2137dd7cddfSDavid du Colombier<ul>
2147dd7cddfSDavid du Colombier<li><a href="#V4.33_Documentation">Documentation</a>,
2157dd7cddfSDavid du Colombier    <a href="#V4.33_Procedures">Procedures</a>,
2167dd7cddfSDavid du Colombier    <a href="#V4.33_Interpreter">Interpreter</a>,
2177dd7cddfSDavid du Colombier    <a href="#V4.33_Library">Library</a>
2187dd7cddfSDavid du Colombier</ul>
2197dd7cddfSDavid du Colombier<li><a href="#Version4.32">Version 4.32 (limited) (11/1/96)</a>
2207dd7cddfSDavid du Colombier<ul>
2217dd7cddfSDavid du Colombier<li><a href="#V4.32_Documentation">Documentation</a>,
2227dd7cddfSDavid du Colombier    <a href="#V4.32_Drivers">Drivers</a>,
2237dd7cddfSDavid du Colombier    <a href="#V4.32_Platforms">Platforms</a>,
2247dd7cddfSDavid du Colombier    <a href="#V4.32_Fonts">Fonts</a>,
2257dd7cddfSDavid du Colombier    <a href="#V4.32_Interpreter">Interpreter</a>,
2267dd7cddfSDavid du Colombier    <a href="#V4.32_Library">Library</a>
2277dd7cddfSDavid du Colombier</ul>
2287dd7cddfSDavid du Colombier<li><a href="#Version4.31">Version 4.31 (limited) (10/27/96)</a>
2297dd7cddfSDavid du Colombier<ul>
2307dd7cddfSDavid du Colombier<li><a href="#V4.31_Documentation">Documentation</a>,
2317dd7cddfSDavid du Colombier    <a href="#V4.31_Procedures">Procedures</a>,
2327dd7cddfSDavid du Colombier    <a href="#V4.31_Platforms">Platforms</a>,
2337dd7cddfSDavid du Colombier    <a href="#V4.31_Interpreter">Interpreter</a>,
2347dd7cddfSDavid du Colombier    <a href="#V4.31_Interpreter_PDF">Interpreter (PDF)</a>,
2357dd7cddfSDavid du Colombier    <a href="#V4.31_Streams">Streams</a>,
2367dd7cddfSDavid du Colombier    <a href="#V4.31_Library">Library</a>
2377dd7cddfSDavid du Colombier</ul>
2387dd7cddfSDavid du Colombier<li><a href="#Version4.30">Version 4.30 (limited) (10/23/96)</a>
2397dd7cddfSDavid du Colombier<ul>
2407dd7cddfSDavid du Colombier<li><a href="#V4.30_Documentation">Documentation</a>,
2417dd7cddfSDavid du Colombier    <a href="#V4.30_Drivers">Drivers</a>,
2427dd7cddfSDavid du Colombier    <a href="#V4.30_Platforms">Platforms</a>,
2437dd7cddfSDavid du Colombier    <a href="#V4.30_Fonts">Fonts</a>,
2447dd7cddfSDavid du Colombier    <a href="#V4.30_Interpreter">Interpreter</a>,
2457dd7cddfSDavid du Colombier    <a href="#V4.30_Library">Library</a>
2467dd7cddfSDavid du Colombier</ul>
2477dd7cddfSDavid du Colombier<li><a href="#Version4.21">Version 4.21 (limited) (10/17/96)</a>
2487dd7cddfSDavid du Colombier<ul>
2497dd7cddfSDavid du Colombier<li><a href="#V4.21_Documentation">Documentation</a>,
2507dd7cddfSDavid du Colombier    <a href="#V4.21_Procedures">Procedures</a>,
2517dd7cddfSDavid du Colombier    <a href="#V4.21_Drivers">Drivers</a>,
2527dd7cddfSDavid du Colombier    <a href="#V4.21_Platforms">Platforms</a>,
2537dd7cddfSDavid du Colombier    <a href="#V4.21_Fonts">Fonts</a>,
2547dd7cddfSDavid du Colombier    <a href="#V4.21_Interpreter">Interpreter</a>,
2557dd7cddfSDavid du Colombier    <a href="#V4.21_Library">Library</a>
2567dd7cddfSDavid du Colombier</ul>
2577dd7cddfSDavid du Colombier<li><a href="#Version4.20">Version 4.20 (limited) (10/13/96)</a>
2587dd7cddfSDavid du Colombier<ul>
2597dd7cddfSDavid du Colombier<li><a href="#V4.20_Documentation">Documentation</a>,
2607dd7cddfSDavid du Colombier    <a href="#V4.20_Procedures">Procedures</a>,
2617dd7cddfSDavid du Colombier    <a href="#V4.20_Utilities">Utilities</a>,
2627dd7cddfSDavid du Colombier    <a href="#V4.20_Drivers">Drivers</a>,
2637dd7cddfSDavid du Colombier    <a href="#V4.20_Interpreter">Interpreter</a>,
2647dd7cddfSDavid du Colombier    <a href="#V4.20_Library">Library</a>
2657dd7cddfSDavid du Colombier</ul>
2667dd7cddfSDavid du Colombier<li><a href="#Version4.10">Version 4.10 (limited) (9/25/96)</a>
2677dd7cddfSDavid du Colombier<ul>
2687dd7cddfSDavid du Colombier<li><a href="#V4.10_Documentation">Documentation</a>,
2697dd7cddfSDavid du Colombier    <a href="#V4.10_Utilities">Utilities</a>,
2707dd7cddfSDavid du Colombier    <a href="#V4.10_Drivers">Drivers</a>,
2717dd7cddfSDavid du Colombier    <a href="#V4.10_Interpreter">Interpreter</a>,
2727dd7cddfSDavid du Colombier    <a href="#V4.10_Interpreter_PDF">Interpreter (PDF)</a>,
2737dd7cddfSDavid du Colombier    <a href="#V4.10_Library">Library</a>
2747dd7cddfSDavid du Colombier</ul>
2757dd7cddfSDavid du Colombier<li><a href="#Version4.03">Version 4.03 (9/23/96)</a>
2767dd7cddfSDavid du Colombier<ul>
2777dd7cddfSDavid du Colombier<li><a href="#V4.03_Documentation">Documentation</a>,
2787dd7cddfSDavid du Colombier    <a href="#V4.03_Procedures">Procedures</a>,
2797dd7cddfSDavid du Colombier    <a href="#V4.03_Drivers">Drivers</a>,
2807dd7cddfSDavid du Colombier    <a href="#V4.03_Fonts">Fonts</a>,
2817dd7cddfSDavid du Colombier    <a href="#V4.03_Streams">Streams</a>
2827dd7cddfSDavid du Colombier</ul>
2837dd7cddfSDavid du Colombier<li><a href="#Version4.02">Version 4.02 (9/19/96)</a>
2847dd7cddfSDavid du Colombier<ul>
2857dd7cddfSDavid du Colombier<li><a href="#V4.02_Documentation">Documentation</a>,
2867dd7cddfSDavid du Colombier    <a href="#V4.02_Procedures">Procedures</a>,
2877dd7cddfSDavid du Colombier    <a href="#V4.02_Utilities">Utilities</a>,
2887dd7cddfSDavid du Colombier    <a href="#V4.02_Drivers">Drivers</a>,
2897dd7cddfSDavid du Colombier    <a href="#V4.02_Platforms">Platforms</a>,
2907dd7cddfSDavid du Colombier    <a href="#V4.02_Interpreter">Interpreter</a>,
2917dd7cddfSDavid du Colombier    <a href="#V4.02_Interpreter_PDF">Interpreter (PDF)</a>,
2927dd7cddfSDavid du Colombier    <a href="#V4.02_Streams">Streams</a>,
2937dd7cddfSDavid du Colombier    <a href="#V4.02_Library">Library</a>
2947dd7cddfSDavid du Colombier</ul>
2957dd7cddfSDavid du Colombier<li><a href="#Version4.01">Version 4.01 (7/10/96)</a>
2967dd7cddfSDavid du Colombier<ul>
2977dd7cddfSDavid du Colombier<li><a href="#V4.01_Documentation">Documentation</a>,
2987dd7cddfSDavid du Colombier    <a href="#V4.01_Procedures">Procedures</a>,
2997dd7cddfSDavid du Colombier    <a href="#V4.01_Utilities">Utilities</a>,
3007dd7cddfSDavid du Colombier    <a href="#V4.01_Platforms">Platforms</a>,
3017dd7cddfSDavid du Colombier    <a href="#V4.01_Platforms">Platforms</a>,
3027dd7cddfSDavid du Colombier    <a href="#V4.01_Interpreter">Interpreter</a>,
3037dd7cddfSDavid du Colombier    <a href="#V4.01_Library">Library</a>
3047dd7cddfSDavid du Colombier</ul>
3057dd7cddfSDavid du Colombier<li><a href="#Version4.0">Version 4.0 (6/28/96)</a>
3067dd7cddfSDavid du Colombier<ul>
3077dd7cddfSDavid du Colombier<li><a href="#V4.0_Documentation">Documentation</a>,
3087dd7cddfSDavid du Colombier    <a href="#V4.0_Procedures">Procedures</a>,
3097dd7cddfSDavid du Colombier    <a href="#V4.0_Utilities">Utilities</a>,
3107dd7cddfSDavid du Colombier    <a href="#V4.0_Drivers">Drivers</a>,
3117dd7cddfSDavid du Colombier    <a href="#V4.0_Platforms">Platforms</a>,
3127dd7cddfSDavid du Colombier    <a href="#V4.0_Interpreter">Interpreter</a>,
3137dd7cddfSDavid du Colombier    <a href="#V4.0_Streams">Streams</a>,
3147dd7cddfSDavid du Colombier    <a href="#V4.0_Library">Library</a>
3157dd7cddfSDavid du Colombier</ul>
3167dd7cddfSDavid du Colombier</ul></blockquote>
3177dd7cddfSDavid du Colombier
3187dd7cddfSDavid du Colombier<!-- [1.2 end table of contents] =========================================== -->
3197dd7cddfSDavid du Colombier
3207dd7cddfSDavid du Colombier<!-- [1.3 begin hint] ====================================================== -->
3217dd7cddfSDavid du Colombier
3227dd7cddfSDavid du Colombier<p>
3237dd7cddfSDavid du ColombierThis document is a history of Ghostscript releases numbered 4.n.  For more
3247dd7cddfSDavid du Colombierrecent changes, see the the other history documents and, for the latest
3257dd7cddfSDavid du Colombierversions, the news:
3267dd7cddfSDavid du Colombier
3277dd7cddfSDavid du Colombier<blockquote>
3287dd7cddfSDavid du Colombier<a href="News.htm">News</a><br>
3297dd7cddfSDavid du ColombierHistory of Ghostscript versions 4.n (this document)<br>
3307dd7cddfSDavid du Colombier<a href="History3.htm">History of Ghostscript versions 3.n</a><br>
3317dd7cddfSDavid du Colombier<a href="History2.htm">History of Ghostscript versions 2.n</a><br>
3327dd7cddfSDavid du Colombier<a href="History1.htm">History of Ghostscript versions 1.n</a>
3337dd7cddfSDavid du Colombier</blockquote>
3347dd7cddfSDavid du Colombier
3357dd7cddfSDavid du Colombier<p>For other information, see the <a href="Readme.htm">Ghostscript
3367dd7cddfSDavid du Colombieroverview</a>.
3377dd7cddfSDavid du Colombier
3387dd7cddfSDavid du Colombier<!-- [1.3 end hint] ======================================================== -->
3397dd7cddfSDavid du Colombier
3407dd7cddfSDavid du Colombier<hr>
3417dd7cddfSDavid du Colombier
3427dd7cddfSDavid du Colombier<!-- [1.0 end visible header] ============================================== -->
3437dd7cddfSDavid du Colombier
3443ff48bf5SDavid du Colombier<h2><a name="Version4.81"></a>Version 4.81 (6/1/97)</h2>
3457dd7cddfSDavid du Colombier
3463ff48bf5SDavid du Colombier<p>
3477dd7cddfSDavid du ColombierThis is a last-minute set of bug fixes before the 5.0 release.
3487dd7cddfSDavid du Colombier
3493ff48bf5SDavid du Colombier<h3><a name="V4.81_Documentation"></a>Documentation</h3><pre>
3507dd7cddfSDavid du Colombier
3517dd7cddfSDavid du ColombierAdds some overlooked helpers to the list.  (helpers.txt)
3527dd7cddfSDavid du Colombier
3533ff48bf5SDavid du Colombier</pre><h3><a name="V4.81_Procedures"></a>Procedures</h3><pre>
3547dd7cddfSDavid du Colombier
3557dd7cddfSDavid du ColombierMakes a distinction between 2-part and 3-digit version numbers.
3567dd7cddfSDavid du Colombier(version.mak, vms.mak)
3577dd7cddfSDavid du Colombier
3583ff48bf5SDavid du Colombier</pre><h3><a name="V4.81_Utilities"></a>Utilities</h3><pre>
3597dd7cddfSDavid du Colombier
3607dd7cddfSDavid du ColombierDevelops the Type 1 to CFF converter a little further; it is still NOT
3617dd7cddfSDavid du ColombierUSABLE.  (t1tot2.ps)
3627dd7cddfSDavid du Colombier
3637dd7cddfSDavid du ColombierRemoves the pstoppm.ps script, since the p*m drivers supersede it.
3647dd7cddfSDavid du Colombier(pstoppm.ps, unix-end.mak)
3657dd7cddfSDavid du Colombier
3663ff48bf5SDavid du Colombier</pre><h3><a name="V4.81_Drivers"></a>Drivers</h3><pre>
3677dd7cddfSDavid du Colombier
3687dd7cddfSDavid du ColombierFixes bugs:
3697dd7cddfSDavid du Colombier	- The PDF writer sometimes omitted an ET command before setting the
3707dd7cddfSDavid du Colombierclip path.  (gdevpdf.c)
3717dd7cddfSDavid du Colombier	- The PDF writer didn't initialize the "vector" state, leading to
3727dd7cddfSDavid du Colombiersome redundant output (performance bug only).  (gdevpdf.c)
3737dd7cddfSDavid du Colombier	- The PDF writer wrote clip paths even when they included the entire
3747dd7cddfSDavid du Colombierpage (performance bug only).  (gdevpdf.c)
3757dd7cddfSDavid du Colombier
3767dd7cddfSDavid du ColombierChanges the PDF writer so that it recognizes not only the 14 built-in fonts
3777dd7cddfSDavid du Colombierbut any font with the same UniqueID and metrics.  This covers some common
3787dd7cddfSDavid du Colombiercases of re-registering a font with a variant Encoding.  (gs_pdfwr.ps)
3797dd7cddfSDavid du Colombier
3803ff48bf5SDavid du Colombier</pre><h3><a name="V4.81_Platforms"></a>Platforms</h3><pre>
3817dd7cddfSDavid du Colombier
3827dd7cddfSDavid du ColombierFixes bugs:
3837dd7cddfSDavid du Colombier	- SEARCH_HERE_FIRST was accidentally set to 0 on MS Windows
3847dd7cddfSDavid du Colombierplatforms.  (bcwin32.mak, msvc4.mak, msvc5.mak, watcw32.mak)
3857dd7cddfSDavid du Colombier
3867dd7cddfSDavid du ColombierAdds code to remove "" around arguments in the command line passed to
3877dd7cddfSDavid du ColombierWinMain (MS Windows platforms).  (dwmain.cpp, dwmainc.cpp)
3887dd7cddfSDavid du Colombier
3893ff48bf5SDavid du Colombier</pre><h3><a name="V4.81_Interpreter"></a>Interpreter</h3><pre>
3907dd7cddfSDavid du Colombier
3917dd7cddfSDavid du ColombierFixes bugs:
3927dd7cddfSDavid du Colombier	- setsystemparams was broken.  (gs_lev2.ps)
3937dd7cddfSDavid du Colombier	- restore was broken if -dNOBIND was invoked.  (gs_dps1.ps)
3947dd7cddfSDavid du Colombier	- deviceinfo returned much more information than it should.
3957dd7cddfSDavid du Colombier(gs_dps.ps)
3967dd7cddfSDavid du Colombier	- The fix for the default EndPage procedures not popping their page
3977dd7cddfSDavid du Colombiercount operand from the stack was wrong.  (gs_init.ps, gs_setpd.ps)
3987dd7cddfSDavid du Colombier
3993ff48bf5SDavid du Colombier</pre><h3><a name="V4.81_Library"></a>Library</h3><pre>
4007dd7cddfSDavid du Colombier
4017dd7cddfSDavid du ColombierFixes bugs:
4027dd7cddfSDavid du Colombier	- The saved character origin took the translation component of the
4037dd7cddfSDavid du ColombierFontMatrix into account, which caused charpath on fonts with non-zero
4047dd7cddfSDavid du Colombiertranslation in the FontMatrix to produce incorrect results.  (gschar.c)
4057dd7cddfSDavid du Colombier
4067dd7cddfSDavid du ColombierRemoves incorrect access attributes on a couple of files.  (gdevpdfm.c,
4077dd7cddfSDavid du Colombiergxclist.h)
4087dd7cddfSDavid du Colombier
4093ff48bf5SDavid du Colombier</pre>
4107dd7cddfSDavid du Colombier
4113ff48bf5SDavid du Colombier<h2><a name="Version4.80"></a>Version 4.80 (limited) (5/28/97)</h2>
4123ff48bf5SDavid du Colombier
4133ff48bf5SDavid du Colombier<p>
4147dd7cddfSDavid du ColombierThis is the candidate fileset for the 5.0 release.
4157dd7cddfSDavid du Colombier
4163ff48bf5SDavid du Colombier<h3><a name="V4.80_Documentation"></a>Documentation</h3><pre>
4177dd7cddfSDavid du Colombier
4187dd7cddfSDavid du ColombierFixes bugs:
4197dd7cddfSDavid du Colombier	- The one-line description of the color image rendering module was
4207dd7cddfSDavid du Colombierincorrect.  (gximage3.c)
4217dd7cddfSDavid du Colombier	- Some of the VMS documentation was out of date.  (make.txt,
4227dd7cddfSDavid du Colombieruse.txt)
4237dd7cddfSDavid du Colombier	- The description of the file name separator for -sFONTMAP= was
4247dd7cddfSDavid du Colombierwrong.  (use.txt)
4257dd7cddfSDavid du Colombier	- PSFile was misspelled PSfile.  (use.txt)
4267dd7cddfSDavid du Colombier	- There were some minor typos.  (gstype1.h)
4277dd7cddfSDavid du Colombier	- The build instructions had a lot of obsolete information for PC
4287dd7cddfSDavid du Colombierenvironments, and didn't cover Microsoft Visual C++.  (make.txt)
4297dd7cddfSDavid du Colombier
4307dd7cddfSDavid du ColombierExplains that -sPAPERSIZE= only specifies the default papersize, and that
4317dd7cddfSDavid du Colombierforcing a particular paper size also requires -dFIXEDMEDIA.  (use.txt)
4327dd7cddfSDavid du Colombier
4337dd7cddfSDavid du ColombierAdds information about building with GNU make on OpenVMS.  (make.txt)
4347dd7cddfSDavid du Colombier
4357dd7cddfSDavid du ColombierClarifies the meaning of EOFC for streams.  (strimpl.h)
4367dd7cddfSDavid du Colombier
4377dd7cddfSDavid du ColombierDocuments the new dictionary argument for the eexecDecode filter.
4387dd7cddfSDavid du Colombier(language.doc)
4397dd7cddfSDavid du Colombier
4403ff48bf5SDavid du Colombier</pre><h3><a name="V4.80_Procedures"></a>Procedures</h3><pre>
4417dd7cddfSDavid du Colombier
4427dd7cddfSDavid du ColombierFixes bugs:
4437dd7cddfSDavid du Colombier	- gs_epsf.ps didn't get installed on Unix systems.  (unix-end.mak)
4447dd7cddfSDavid du Colombier	- The code wouldn't build with libpng 0.95b.  (libpng.mak)
4457dd7cddfSDavid du Colombier	- One of the VMS scripts used CC_QUAL instead of CC_DEF.
4467dd7cddfSDavid du Colombier(vms-cc.mak)
4477dd7cddfSDavid du Colombier	- version.mak wasn't included in a dependency list.  (unix-end.mak)
4487dd7cddfSDavid du Colombier
4497dd7cddfSDavid du ColombierBrings the VMS DCL script up to date again (for the last time, we hope).
4507dd7cddfSDavid du Colombier(vms.mak)
4517dd7cddfSDavid du Colombier
4527dd7cddfSDavid du ColombierModifies all platform-independent uses of upper-case command line arguments
4537dd7cddfSDavid du Colombierto deal properly with VMS, where the shell converts all command line
4547dd7cddfSDavid du Colombierarguments to lower case, without requiring quotation.  (devs.mak, gs.mak,
4557dd7cddfSDavid du Colombierint.mak, lib.mak, zlib.mak)
4567dd7cddfSDavid du Colombier
4577dd7cddfSDavid du ColombierMoves the compilation rules for the third-party libraries into gs.mak, so
4587dd7cddfSDavid du Colombierthey can be used to compile the callers as well.  (gs.mak, jpeg.mak,
4597dd7cddfSDavid du Colombierlibpng.mak, zlib.mak)
4607dd7cddfSDavid du Colombier
4617dd7cddfSDavid du ColombierAdds a set of files that allow building on OpenVMS using GNU make (slightly
4627dd7cddfSDavid du Colombierpatched).  The timing on this is unfortunate, but we've wanted this for a
4637dd7cddfSDavid du Colombiervery long time.  NOTE: be sure to look in the OpenVMS section of make.txt
4647dd7cddfSDavid du Colombierfor information on patching GNU make.  (openvms.mak, append_l.com,
4657dd7cddfSDavid du Colombierrm_all.com, rm_one.com, copy_one.com)
4667dd7cddfSDavid du Colombier
4677dd7cddfSDavid du ColombierAdds new makefiles for building on 32-bit Windows with Borland, Watcom, and
4687dd7cddfSDavid du ColombierMicrosoft Visual C++ (versions 4.x and 5.0).  The timing on this is
4697dd7cddfSDavid du Colombierunfortunate too, but having this capability is so important that we couldn't
4707dd7cddfSDavid du Colombierpass it up.  (bcwin32.mak, msvc4.mak, msvc5.mak, msvccom.mak, watcw32.mak,
4717dd7cddfSDavid du Colombierwincom.mak)
4727dd7cddfSDavid du Colombier
4737dd7cddfSDavid du ColombierRemoves now-obsolete makefiles.  (dwcommon.mak, msc.mak, msvcwint.mak,
4747dd7cddfSDavid du Colombiermscbegin.bat, watcwin.mak)
4757dd7cddfSDavid du Colombier
4763ff48bf5SDavid du Colombier</pre><h3><a name="V4.80_Utilities"></a>Utilities</h3><pre>
4777dd7cddfSDavid du Colombier
4787dd7cddfSDavid du ColombierExtends echogs to work in VMS environments, where the shell converts all
4797dd7cddfSDavid du Colombiercommand line arguments to lower case, without requiring quotation.
4807dd7cddfSDavid du Colombier(echogs.c)
4817dd7cddfSDavid du Colombier
4827dd7cddfSDavid du ColombierAdds a sketch of a utility for converting Type 1 fonts to CFF.  DOESN'T WORK
4837dd7cddfSDavid du ColombierYET: DON'T TRY TO USE IT.  (t1tot2.ps, type1ops.ps, writecff.ps)
4847dd7cddfSDavid du Colombier
4853ff48bf5SDavid du Colombier</pre><h3><a name="V4.80_Drivers"></a>Drivers</h3><pre>
4867dd7cddfSDavid du Colombier
4877dd7cddfSDavid du ColombierFixes bugs:
4887dd7cddfSDavid du Colombier	- A type declaration wasn't compatible with libpng 0.95.
4897dd7cddfSDavid du Colombier(gdevpng.c)
4907dd7cddfSDavid du Colombier	- kshow wasn't handled properly when producing PDF output.
4917dd7cddfSDavid du Colombier(gs_pdfwr.ps)
4927dd7cddfSDavid du Colombier	- The PDF writer put out unnecessary ET/BT commands.  (gdevpdfx.h,
4937dd7cddfSDavid du Colombiergdevpdf.c, gdevpdfi.c, gdevpdfm.c, gdevpdft.c)
4947dd7cddfSDavid du Colombier	- The PCL XL writer put out real numbers for the miter limit, which
4957dd7cddfSDavid du Colombierare not allowed (!).  (gdevpx.c)
4967dd7cddfSDavid du Colombier	- The PCL XL writer didn't combine successive curves into a single
4977dd7cddfSDavid du Colombiercurve command (performance bug only).  (gdevpx.c)
4987dd7cddfSDavid du Colombier	- The PCL XL writer could write uncompressed images with a tag
4997dd7cddfSDavid du Colombiersaying they were compressed.  (gdevpx.c)
5007dd7cddfSDavid du Colombier	- The PCL XL writer always selected U.S. letter paper, rather than
5017dd7cddfSDavid du Colombierthe requested size.  (gdevpxen.h, gdevpx.c)
5027dd7cddfSDavid du Colombier	- The PCL XL writer reselected the paper size on every page, even if
5037dd7cddfSDavid du Colombierit hadn't changed.  (gdevpx.c)
5047dd7cddfSDavid du Colombier	- The PCL XL writer always used shorts for line and curve
5057dd7cddfSDavid du Colombiercoordinates, rather than using bytes when possible (performance bug only).
5067dd7cddfSDavid du Colombier(gdevpx.c)
5077dd7cddfSDavid du Colombier	- Because of a compiler bug, a macro with argument conflicted with a
5087dd7cddfSDavid du Colombiervariable name.  (gdevpdfx.h, gdevpdf.c)
5097dd7cddfSDavid du Colombier	- A picky compiler objected to an extern for an undefined structure.
5107dd7cddfSDavid du Colombier(gdevpsdf.h)
5117dd7cddfSDavid du Colombier	- The PDF writer sometimes didn't reset the clipping path, causing
5127dd7cddfSDavid du Colombierbitmaps or rectangle to disappear.  (gdevpdf.c, gdevpdfi.c)
5137dd7cddfSDavid du Colombier	- The PDF writer produced invalid output if the first page was
5147dd7cddfSDavid du Colombierblank.  (gdevpdf.c)
5157dd7cddfSDavid du Colombier	- The AutoRotatePages parameter for PostScript and PDF output (which
5167dd7cddfSDavid du Colombierdoesn't actually do anything yet) incorrectly expected a Boolean value
5177dd7cddfSDavid du Colombierrather than an enumeration.  (gdevpsdf.h, gdevpsdf.c)
5187dd7cddfSDavid du Colombier	- Some places returned -1 for an error without calling gs_note_error
5197dd7cddfSDavid du Colombieror gs_return_error.  (gdevm1.c, gdevmpla.c, gdevrun.c, gxclpath.c)
5207dd7cddfSDavid du Colombier	- The PCL XL writer produced extremely large files because it didn't
5217dd7cddfSDavid du Colombierdownload character bitmaps.  (OK, this isn't really a bug fix.)  (gdevpx.c)
5227dd7cddfSDavid du Colombier	- The forwarding implementation of get_page_device didn't do the
5237dd7cddfSDavid du Colombierright thing.  (gdevnfwd.c)
5247dd7cddfSDavid du Colombier	- The x11alpha device didn't implement get_params properly, leading
5257dd7cddfSDavid du Colombierto anomalous behavior.  (gdevxalt.c)
5267dd7cddfSDavid du Colombier	- The PDF writer produced incorrect Count values for outlines: the
5277dd7cddfSDavid du Colombiercount only counted descendant leaves, omitting intermediate nodes.
5287dd7cddfSDavid du Colombier(gdevpdfm.c)
5297dd7cddfSDavid du Colombier
5307dd7cddfSDavid du ColombierRemoves an assumption that images have at most 4 components.  (gdevpdfi.c)
5317dd7cddfSDavid du Colombier
5327dd7cddfSDavid du ColombierAdds an x11gray2 device, primarily for debugging.  (devs.mak, gdevxalt.c)
5337dd7cddfSDavid du Colombier
5347dd7cddfSDavid du ColombierUpdates the unified printer driver with a newer version.  (uninfo.ps,
5357dd7cddfSDavid du Colombiergdevupd.c, *.upp)
5367dd7cddfSDavid du Colombier
5373ff48bf5SDavid du Colombier</pre><h3><a name="V4.80_Platforms"></a>Platforms</h3><pre>
5387dd7cddfSDavid du Colombier
5397dd7cddfSDavid du ColombierAdds the P*M devices and the X11 devices (commented out) to the OS/2
5407dd7cddfSDavid du Colombiermakefile.  (os2.mak)
5417dd7cddfSDavid du Colombier
5427dd7cddfSDavid du ColombierUpdates the MS Windows platform to be compatible with Microsoft Visual C++
5437dd7cddfSDavid du Colombier(as well as Watcom and Borland compilers).  (gsdll32.def, gdevmswn.h,
5447dd7cddfSDavid du Colombiergp_mswin.h, gsdll.h, dwimg.cpp, dwmain.cpp, dwmainc.cpp, dwtext.cpp,
5457dd7cddfSDavid du Colombiergdevwdib.c, gdevwprn.c, gdevwpr2.c, gp_mswin.c, gsdll.c)
5467dd7cddfSDavid du Colombier
5473ff48bf5SDavid du Colombier</pre><h3><a name="V4.80_Fonts"></a>Fonts</h3><pre>
5487dd7cddfSDavid du Colombier
5497dd7cddfSDavid du ColombierFixes bugs:
5507dd7cddfSDavid du Colombier	- Certain synthetic fonts incorrectly were loaded into local rather
5517dd7cddfSDavid du Colombierthan global VM.  (These fonts are not part of the standard distribution.)
5527dd7cddfSDavid du Colombier(gs_fonts.ps, gs_pfile.ps, *ss*.ps)
5537dd7cddfSDavid du Colombier
5543ff48bf5SDavid du Colombier</pre><h3><a name="V4.80_Interpreter"></a>Interpreter</h3><pre>
5557dd7cddfSDavid du Colombier
5567dd7cddfSDavid du ColombierFixes bugs:
5577dd7cddfSDavid du Colombier	- The FAKEFONTS scan could leave junk on the stack.  (gs_fonts.ps)
5587dd7cddfSDavid du Colombier	- Dynamically loading known encodings on demand left junk on the
5597dd7cddfSDavid du Colombierstack, causing a typecheck error.  (gs_res.ps)
5607dd7cddfSDavid du Colombier	- Some 'static' declarations were missing (gcc lossage).  (iname.c)
5617dd7cddfSDavid du Colombier	- Some internal operators didn't have names, leading to unhelpful
5627dd7cddfSDavid du Colombiererror printout.  (zfileio.c)
5637dd7cddfSDavid du Colombier	- The resource "operators" didn't always restore the stacks properly
5647dd7cddfSDavid du Colombieron an error.  (gs_res.ps)
5657dd7cddfSDavid du Colombier	- The CID font code left a garbage value on the stack during
5667dd7cddfSDavid du Colombierloading.  (gs_cidfn.ps)
5677dd7cddfSDavid du Colombier	- The defineresource implementation for built-in resources like
5687dd7cddfSDavid du ColombierFMapType didn't leave the resource "value" on the stack.  (gs_res.ps)
5697dd7cddfSDavid du Colombier	- If an operator defined by a procedure was bound into a packed
5707dd7cddfSDavid du Colombierprocedure, the stack-protection feature wasn't effective.  (interp.c)
5717dd7cddfSDavid du Colombier	- findfont didn't restore the stack if it failed.  (gs_res.ps)
5727dd7cddfSDavid du Colombier	- The showpage count passed to the BeginPage and EndPage procedures
5737dd7cddfSDavid du Colombierwas incremented only if a page was printed, rather than for every invocation
5747dd7cddfSDavid du Colombierof showpage.  (gs_init.ps, zdevice2.c)
5757dd7cddfSDavid du Colombier	- The default EndPage procedures didn't pop their page count operand
5767dd7cddfSDavid du Colombierfrom the stack.  (gs_init.ps, gs_setpd.ps)
5777dd7cddfSDavid du Colombier	- If the argument of findfont wasn't a name or a string, and no font
5787dd7cddfSDavid du Colombierwith that key had been registered, an error occurred.  (gs_fonts.ps,
5797dd7cddfSDavid du Colombiergs_res.ps)
5807dd7cddfSDavid du Colombier
5817dd7cddfSDavid du ColombierUpdates most of the remaining pseudo-operators to take advantage of stack
5827dd7cddfSDavid du Colombierprotection.  (gs_btokn.ps, gs_cmap.ps, gs_dps1.ps, gs_dps2.ps, gs_fonts.ps,
5837dd7cddfSDavid du Colombiergs_lev2.ps, gs_pdfwr.ps)
5847dd7cddfSDavid du Colombier
5857dd7cddfSDavid du ColombierSplits the image operators into a separate file from the path painting
5867dd7cddfSDavid du Colombieroperators.  (This should have been done a long time ago.)  (iimage.h,
5877dd7cddfSDavid du Colombierzimage.c, zpaint.c)
5887dd7cddfSDavid du Colombier
5897dd7cddfSDavid du ColombierAdds more of the implementation of the NeXT alpha and compositing
5907dd7cddfSDavid du Colombieroperations, under an #ifdef DPNEXT.  (iimage.h, zcolor1.c, zdpnext.c,
5917dd7cddfSDavid du Colombierzimage.c)
5927dd7cddfSDavid du Colombier
5937dd7cddfSDavid du ColombierAdds more of the implementation of DPS contexts.  These are still not
5947dd7cddfSDavid du Colombierusable.  (icontext.h, icontext.c, zcontext.c, zmath.c)
5957dd7cddfSDavid du Colombier
5967dd7cddfSDavid du ColombierChanges the help message to describe -dBATCH instead of -c quit.
5977dd7cddfSDavid du Colombier(imainarg.c)
5987dd7cddfSDavid du Colombier
5997dd7cddfSDavid du ColombierRecognizes the dictionary argument for the eexecDecode filter.  (zmisc1.c)
6007dd7cddfSDavid du Colombier
6013ff48bf5SDavid du Colombier</pre><h3><a name="V4.80_Streams"></a>Streams</h3><pre>
6027dd7cddfSDavid du Colombier
6037dd7cddfSDavid du ColombierFixes bugs:
6047dd7cddfSDavid du Colombier	- The tracing message when starting to decode 1-D fax data reported
6057dd7cddfSDavid du Colombierthe run_color incorrectly.  (scfd.c)
6067dd7cddfSDavid du Colombier	- In the CCITTFaxDecode filter, if a buffer boundary fell between a
6077dd7cddfSDavid du Colombiermakeup code and a final zero-length termination code, an ioerror could
6087dd7cddfSDavid du Colombieroccur.  (scfd.c)
6097dd7cddfSDavid du Colombier	- Per Adobe, in the CCITTFaxDecode filter, EndOfBlock = true should
6107dd7cddfSDavid du Colombiercause Rows to be ignored.  (scfd.c)
6117dd7cddfSDavid du Colombier	- If an output stream returned EOFC, an infinite loop might result.
6127dd7cddfSDavid du ColombierThis problem (and the fix) are in the same fragile code as the EOD fix in
6137dd7cddfSDavid du Colombier4.74, and we may again have introduced a new bug.  (stream.c)
6147dd7cddfSDavid du Colombier
6157dd7cddfSDavid du ColombierChanges the eexecDecode filter so that instead of a number, it can take a
6167dd7cddfSDavid du Colombierdictionary with two keys, seed and lenIV.  (Having eexecDecode skip initial
6177dd7cddfSDavid du Colombierbytes at all was a design bug that is too late to fix.)  (sfilter.h,
6187dd7cddfSDavid du Colombierseexec.c)
6197dd7cddfSDavid du Colombier
6203ff48bf5SDavid du Colombier</pre><h3><a name="V4.80_Library"></a>Library</h3><pre>
6217dd7cddfSDavid du Colombier
6227dd7cddfSDavid du ColombierFixes bugs:
6237dd7cddfSDavid du Colombier	- The default mapping from RGB+alpha to RGB didn't lighten
6247dd7cddfSDavid du Colombier(premultiply) the color according to the alpha value.  (gxcmap.c)
6257dd7cddfSDavid du Colombier	- The angle error metric for rational tangent screen parameters
6267dd7cddfSDavid du Colombiershould be simply the difference in angle, not a ratio.  (gshtscr.c)
6277dd7cddfSDavid du Colombier	- gs_setcolorscreen and gs_sethalftone didn't initialize an
6287dd7cddfSDavid du Colombierallocator pointer, leading to memory access errors.  (gsht1.c)
6297dd7cddfSDavid du Colombier	- If a banded image was clipped, an invalid band list could be
6307dd7cddfSDavid du Colombierproduced.  (gxclimag.c)
6317dd7cddfSDavid du Colombier	- A picky compiler wouldn't allow an enum to be &amp;&amp;'ed with a
6327dd7cddfSDavid du Colombierboolean.  (gschar.c)
6337dd7cddfSDavid du Colombier	- A short-sighted compiler didn't allow the use of actual procedure
6347dd7cddfSDavid du Colombiernames (as opposed to procedure variables) in a conditional expression.
6357dd7cddfSDavid du Colombier(gxfill.c)
6367dd7cddfSDavid du Colombier	- A compiler objected to a name longer than 31 characters.  (gzht.h,
6377dd7cddfSDavid du Colombiergsht.c, gxclread.c)
6387dd7cddfSDavid du Colombier	- The height computations for banded images were not consistent,
6397dd7cddfSDavid du Colombierpossibly leading to invalid band lists.  (gxclimag.c)
6407dd7cddfSDavid du Colombier	- copypage didn't reset the band writer and band reader bookkeeping
6417dd7cddfSDavid du Colombierconsistently, leading to incorrect output and possible errors.  (gxcldev.h,
6427dd7cddfSDavid du Colombiergxclist.c, gxclread.c)
6437dd7cddfSDavid du Colombier	- When banding, changing the halftone could lead to accessing memory
6447dd7cddfSDavid du Colombierafter freeing it.  (gxclread.c)
6457dd7cddfSDavid du Colombier	- When using disk files for band storage, showpage didn't actually
6467dd7cddfSDavid du Colombierdelete or truncate the band list file, possibly causing subsequent copypage
6477dd7cddfSDavid du Colombieroperations to become confused.  (gxclfile.c)
6487dd7cddfSDavid du Colombier	- When banding, having more than one image operator in progress at a
6497dd7cddfSDavid du Colombiertime confused the rasterizing pass and could produce arbitrary errors.  From
6507dd7cddfSDavid du ColombierPostScript, this can only happen in the case of an image whose data source
6517dd7cddfSDavid du Colombierwas a procedure-based stream that itself invoked an image operator: this is
6527dd7cddfSDavid du Colombiera senseless and perverse thing to do, but it shouldn't break the code (and a
6537dd7cddfSDavid du ColombierGenoa CET file actually does it).  (gxclist.h, gxclimag.c, gxclist.c)
6547dd7cddfSDavid du Colombier	- Some picky compilers objected to negating unsigned values.
6557dd7cddfSDavid du Colombier(gsuid.h, gsht.c, gsmemory.c, gxpcopy.c)
6567dd7cddfSDavid du Colombier	- When banding, if a 90- or 270-degree rotated monobit image was
6577dd7cddfSDavid du Colombierclipped, invalid memory accesses could occur.  (gximage.h, gximage1.c)
6587dd7cddfSDavid du Colombier	- The showpage count passed to the BeginPage and EndPage procedures
6597dd7cddfSDavid du Colombierwas incremented only if a page was printed, rather than for every invocation
6607dd7cddfSDavid du Colombierof showpage.  Fixing this requires removing the incrementing of the count
6617dd7cddfSDavid du Colombierfrom the library level altogether.  (gsdevice.c)
6627dd7cddfSDavid du Colombier	- When rendering a subrectangle of an image, the X DDA was
6637dd7cddfSDavid du Colombierinitialized incorrectly, causing possible errors.  We think this only
6647dd7cddfSDavid du Colombieraffected certain banded images.  (gxdda.h)
6657dd7cddfSDavid du Colombier
6667dd7cddfSDavid du ColombierAdds a provision for images with an alpha component, under an #ifdef DPNEXT.
6677dd7cddfSDavid du Colombier****** THE BANDING CODE HAS NOT BEEN UPDATED YET. ******  (gsiparam.h,
6687dd7cddfSDavid du Colombiergxcmap.h, gxdither.h, gximage.h, gsimage.c, gxclimag.c, gxclread.c,
6697dd7cddfSDavid du Colombiergxcmap.c, gximage.c, gximage3.c, gximage4.c ****** NOT DONE YET ******,
6707dd7cddfSDavid du Colombiergximage5.c)
6717dd7cddfSDavid du Colombier
6727dd7cddfSDavid du ColombierAdds a return_if_error macro to capture the common idiom of making a call
6737dd7cddfSDavid du Colombierand then returning its value if that value is negative (error).  (gserror.h)
6747dd7cddfSDavid du Colombier
6753ff48bf5SDavid du Colombier</pre>
6767dd7cddfSDavid du Colombier
6773ff48bf5SDavid du Colombier<hr>
6783ff48bf5SDavid du Colombier
6793ff48bf5SDavid du Colombier<h2><a name="Version4.74"></a>Version 4.74 (limited) (5/5/97)</h2>
6803ff48bf5SDavid du Colombier
6813ff48bf5SDavid du Colombier<p>
6827dd7cddfSDavid du ColombierThis fileset is supposed to fix all remaining errors reported by the Genoa
6837dd7cddfSDavid du ColombierCET, and is intended to be the last incremental test fileset before the 5.0
6847dd7cddfSDavid du Colombierrelease.
6857dd7cddfSDavid du Colombier
6863ff48bf5SDavid du Colombier<h3><a name="V4.74_Documentation"></a>Documentation</h3><pre>
6877dd7cddfSDavid du Colombier
6887dd7cddfSDavid du ColombierFixes bugs:
6897dd7cddfSDavid du Colombier	- Mark procedures are *not* executed in the normal return case.
6907dd7cddfSDavid du Colombier(estack.h)
6917dd7cddfSDavid du Colombier	- The line_params element of a gs_imager_state is *not* allocated
6927dd7cddfSDavid du Colombierseparately.  (gsstate.c)
6937dd7cddfSDavid du Colombier	- The value passed to the PDF writer for text is a dictionary, not
6947dd7cddfSDavid du Colombieran array.  (gdevpdft.c)
6957dd7cddfSDavid du Colombier
6967dd7cddfSDavid du ColombierImproves the documentation of gstate memory management.  (gsstate.c)
6977dd7cddfSDavid du Colombier
6987dd7cddfSDavid du ColombierDocuments end_status = EOFC for writing streams.  (stream.h, strimpl.h)
6997dd7cddfSDavid du Colombier
7007dd7cddfSDavid du ColombierClarifies memory management for halftones and device halftones.  (gsht1.h,
7017dd7cddfSDavid du Colombiergxdht.h, gxht.h, gzht.h)
7027dd7cddfSDavid du Colombier
7037dd7cddfSDavid du ColombierRemoves the "experimental" tag from the PostScript and EPS writers.
7047dd7cddfSDavid du Colombier(devs.mak)
7057dd7cddfSDavid du Colombier
7063ff48bf5SDavid du Colombier</pre><h3><a name="V4.74_Utilities"></a>Utilities</h3><pre>
7077dd7cddfSDavid du Colombier
7087dd7cddfSDavid du ColombierFixes bugs:
7097dd7cddfSDavid du Colombier	- The viewpcx utility scaled images improperly.  (viewpcx.ps)
7107dd7cddfSDavid du Colombier	- If a PDF file used F instead of f for filling a path, pdf2ps
7117dd7cddfSDavid du Colombierdidn't output the fill operation.  (pdf_base.ps)
7127dd7cddfSDavid du Colombier
7137dd7cddfSDavid du ColombierChanges the ps2pdf script so that, like pdf2ps, it allows debugging
7147dd7cddfSDavid du Colombierswitches.  (ps2pdf)
7157dd7cddfSDavid du Colombier
7163ff48bf5SDavid du Colombier</pre><h3><a name="V4.74_Drivers"></a>Drivers</h3><pre>
7177dd7cddfSDavid du Colombier
7187dd7cddfSDavid du ColombierFixes bugs:
7197dd7cddfSDavid du Colombier	- The vgalib driver didn't clip monobit images properly.
7207dd7cddfSDavid du Colombier(gdevvglb.c)
7217dd7cddfSDavid du Colombier	- The X driver asked for exposure events to be reported, but never
7227dd7cddfSDavid du Colombierread them, causing the event queue to grow indefinitely.  (gdevxini.c)
7237dd7cddfSDavid du Colombier	- The "vector" drivers and the PDF writer didn't properly keep track
7247dd7cddfSDavid du Colombierof whether the current clipping region was the default one.  (gs_pdfwr.ps,
7257dd7cddfSDavid du Colombiergdevvec.h, gdevvec.c, gdevpdf.c, gdevpdft.c)
7267dd7cddfSDavid du Colombier	- The PDF writer had word and character spacing interchanged.
7277dd7cddfSDavid du Colombier(gdevpdft.c)
7287dd7cddfSDavid du Colombier	- The PDF writer scaled word and character spacing incorrectly.
7297dd7cddfSDavid du Colombier(gdevpdft.c)
7307dd7cddfSDavid du Colombier
7313ff48bf5SDavid du Colombier</pre><h3><a name="V4.74_Interpreter"></a>Interpreter</h3><pre>
7327dd7cddfSDavid du Colombier
7337dd7cddfSDavid du ColombierFixes bugs:
7347dd7cddfSDavid du Colombier	- The user object operators didn't leave the stack in a clean state
7357dd7cddfSDavid du Colombierif they failed.  (gs_dps2.ps)
7367dd7cddfSDavid du Colombier	- UserObjects wasn't actually defined.  (gs_dps2.ps)
7377dd7cddfSDavid du Colombier	- deviceinfo and set/currenthalftonephase were defined even if the
7387dd7cddfSDavid du Colombierdps feature wasn't selected.  (int.mak, gs_dps.ps, gs_dps1.ps, gs_lev2.ps,
7397dd7cddfSDavid du Colombierzdps.c, zdps1.c)
7407dd7cddfSDavid du Colombier	- The dps feature didn't automatically include the level2 feature,
7417dd7cddfSDavid du Colombierwhich it needs.  (int.mak)
7427dd7cddfSDavid du Colombier	- The DPS user names mechanism didn't work, since the user names
7437dd7cddfSDavid du Colombierarray was subject to save and restore.  (It still doesn't really work --
7447dd7cddfSDavid du Colombierthere is no provision for expanding the user names array, which is created
7457dd7cddfSDavid du Colombierwith length 0.)  (gs_btokn.ps, ivmspace.h, zbseq.c, zdps.c)
7467dd7cddfSDavid du Colombier	- The DPS context operators didn't do all the necessary error
7477dd7cddfSDavid du Colombierchecking.  (zcontext.c)
7487dd7cddfSDavid du Colombier	- The debugging printout for names printed the name index in hex
7497dd7cddfSDavid du Colombierwithout identifying it as such.  (idebug.c)
7507dd7cddfSDavid du Colombier	- Adding the first non-name key (or name key with a name index
7517dd7cddfSDavid du Colombierbeyond 4K) to a dictionary that had any deleted entries could cause some
7527dd7cddfSDavid du Colombierentries to apparently disappear.  (idict.c)
7537dd7cddfSDavid du Colombier	- If a sub-table of the name table was freed during garbage
7547dd7cddfSDavid du Colombiercollection, memory could be left in an inconsistent state.  (iname.c, igc.c)
7557dd7cddfSDavid du Colombier	- findfont didn't restore the stacks reliably if an error occurred.
7567dd7cddfSDavid du Colombier(gs_fonts.ps)
7577dd7cddfSDavid du Colombier	- definefont with an invalid Type 0 font sometimes added a FID entry
7587dd7cddfSDavid du Colombier(with a dangling pointer) if it failed.  (Recovering properly from a VMerror
7597dd7cddfSDavid du Colombierduring font creation would require a much more complicated fix than this,
7607dd7cddfSDavid du Colombierbut since we expect a garbage collection to occur in that case, we aren't
7617dd7cddfSDavid du Colombierconcerned about it.)  (zfont0.c)
7627dd7cddfSDavid du Colombier	- Reading parameter values from a dictionary could access beyond the
7637dd7cddfSDavid du Colombierend of the array that keeps track of which entries had been referenced.
7647dd7cddfSDavid du Colombier(idict.h, idict.c, iparam.c)
7657dd7cddfSDavid du Colombier	- Halftone data was allocated in the current VM rather than in the
7667dd7cddfSDavid du Colombiersame VM as the halftone dictionary or procedure.  (Fixing this includes
7677dd7cddfSDavid du Colombierupdating code as necessary for the change in halftone and device halftone
7687dd7cddfSDavid du Colombierallocation.)  (iht.h, ivmspace.h, zht.c, zht1.c, zht2.c)
7697dd7cddfSDavid du Colombier	- Closed non-executable files on the e-stack could cause a restore
7707dd7cddfSDavid du Colombierto be invalid.  (zvmem.c)
7717dd7cddfSDavid du Colombier
7727dd7cddfSDavid du ColombierAdds skeleton code for the NeXT Display PostScript alpha and compositing
7737dd7cddfSDavid du Colombieroperators.  This is not ready for use yet!  (errors.h, gs_dpnxt.ps,
7747dd7cddfSDavid du Colombierzdpsnext.c)
7757dd7cddfSDavid du Colombier
7767dd7cddfSDavid du ColombierImplements more of state saving and restoring for Display PostScript
7777dd7cddfSDavid du Colombiercontexts.  This is not ready for use yet either.  (int.mak, icontext.h,
7787dd7cddfSDavid du Colombieristack.h, icontext.c, zcontext.c)
7797dd7cddfSDavid du Colombier
7807dd7cddfSDavid du ColombierAdds stub code for the Display PostScript view clip operators.  (gs_dps.ps,
7817dd7cddfSDavid du Colombierzdps.c)
7827dd7cddfSDavid du Colombier
7837dd7cddfSDavid du ColombierRemoves the obsolete PPM-writing operator.  (int.mak, vms.mak, *.mak,
7847dd7cddfSDavid du Colombierzwppm.c)
7857dd7cddfSDavid du Colombier
7867dd7cddfSDavid du ColombierMakes the random number generator state public so it can be stored in the
7877dd7cddfSDavid du Colombiercontext state.  (zmath.c)
7887dd7cddfSDavid du Colombier
7897dd7cddfSDavid du ColombierChanges the flag for forcing global garbage collection to a run-time
7907dd7cddfSDavid du Colombiervariable, for debugging.  (igc.c)
7917dd7cddfSDavid du Colombier
7927dd7cddfSDavid du ColombierChanges the handling of job control so that it doesn't use procedures that
7937dd7cddfSDavid du Colombierproduce an execstackoverflow when being printed.  (gs_init.ps)
7947dd7cddfSDavid du Colombier
7957dd7cddfSDavid du ColombierUpdates code as necessary for the change in reference counting.  (zcie.c,
7967dd7cddfSDavid du Colombierzcrd.c)
7977dd7cddfSDavid du Colombier
7987dd7cddfSDavid du ColombierUpdates code as necessary for the change in off-stack gstate copying.
7997dd7cddfSDavid du Colombier(zdps1.c)
8007dd7cddfSDavid du Colombier
8017dd7cddfSDavid du ColombierRemoves a small bit of obsolete code.  (interp.c)
8027dd7cddfSDavid du Colombier
8033ff48bf5SDavid du Colombier</pre><h3><a name="V4.74_Streams"></a>Streams</h3><pre>
8047dd7cddfSDavid du Colombier
8057dd7cddfSDavid du ColombierFixes bugs:
8067dd7cddfSDavid du Colombier	- An output stream that was not the last one in a pipeline could
8077dd7cddfSDavid du Colombierincorrectly be asked to write its EOD marker more than once.  (The fix is
8087dd7cddfSDavid du Colombiervery fragile and may have introduced new bugs.)  (stream.c)
8097dd7cddfSDavid du Colombier
8103ff48bf5SDavid du Colombier</pre><h3><a name="V4.74_Library"></a>Library</h3><pre>
8117dd7cddfSDavid du Colombier
8127dd7cddfSDavid du ColombierFixes bugs:
8137dd7cddfSDavid du Colombier	- The gx_device_halftone_release procedure was declared in two
8147dd7cddfSDavid du Colombierdifferent header files.  (gzht.h)
8157dd7cddfSDavid du Colombier	- Off-stack copying of gstates could lead to a situation where
8167dd7cddfSDavid du Colombierdifferent parts of a single gstate were owned by different allocators; this
8177dd7cddfSDavid du Colombiercould cause them to be freed improperly, corrupting memory.  We fixed this
8187dd7cddfSDavid du Colombierpartly by making the mixed ownership situation work, and partly by copying
8197dd7cddfSDavid du Colombiermore of the gstate when off-stack gstates are involved.  Unfortunately, the
8207dd7cddfSDavid du Colombierfixes are subtle and may have introduced new bugs.  (gsstate.h, gsht.c,
8217dd7cddfSDavid du Colombiergsht1.c, gspcolor.c, gsstate.c)
8227dd7cddfSDavid du Colombier	- If an error occurred while creating a Pattern instance, the
8237dd7cddfSDavid du Colombierpartially initialized instance structure wasn't freed.  (gspcolor.c)
8247dd7cddfSDavid du Colombier	- Halftones and device halftones didn't allocate their clones or
8257dd7cddfSDavid du Colombiertheir subsidiary structures with the correct allocator.  (gsht.c, gsht1.c)
8267dd7cddfSDavid du Colombier	- The error statement when allocating a reference-counted object had
8277dd7cddfSDavid du Colombierto be a control transfer.  (gsrefct.h)
8287dd7cddfSDavid du Colombier	- Copying gstates incorrectly copied the memory and saved pointers,
8297dd7cddfSDavid du Colombierand the pointer to the dash pattern.  (gsstate.c)
8307dd7cddfSDavid du Colombier	- Flatness values less than 0.5 produced far more line segments than
8317dd7cddfSDavid du Colombiernecessary (roughly the square of the required number).  Fixing this may have
8327dd7cddfSDavid du Colombierbad effects on character quality -- this remains to be seen.  (gxpflat.c)
8337dd7cddfSDavid du Colombier	- An error during installation of a halftone could leave things in
8347dd7cddfSDavid du Colombieran inconsistent state.  (gsht.c)
8357dd7cddfSDavid du Colombier	- The API didn't provide enough flexibility with respect to memory
8367dd7cddfSDavid du Colombiermanagement for halftones, or guarantee consistent allocation of a halftone
8377dd7cddfSDavid du Colombierand its subelements.  (gsht1.h, gsht.c, gsht1.c, gshtscr.c)
8387dd7cddfSDavid du Colombier	- Releasing a path didn't clear enough pointers to ensure clean
8397dd7cddfSDavid du Colombiergarbage collection.  (gxpath.c)
8407dd7cddfSDavid du Colombier	- Finalizing or discarding a (cached) scaled font didn't properly
8417dd7cddfSDavid du Colombierunlink it from the scaled_fonts list.  (gsfont.c)
8427dd7cddfSDavid du Colombier	- Invoking an image operator within the BuildChar procedure for a
8437dd7cddfSDavid du Colombiercharpath caused an infinite loop.  (gsimage.c)
8447dd7cddfSDavid du Colombier	- The bookkeeping for the scaled font cache was incorrect: the count
8457dd7cddfSDavid du Colombierdidn't always get decremented when a scaled font was freed.  (gsfont.c)
8467dd7cddfSDavid du Colombier	- "High level" masked images were written incorrectly in the band
8477dd7cddfSDavid du Colombierlist as black-and-white images.  (gxclimag.c)
8487dd7cddfSDavid du Colombier	- For "high level" images with fewer than 4 samples per pixel,
8497dd7cddfSDavid du Colombiernon-standard Decode values were written incorrectly in the band list.
8507dd7cddfSDavid du Colombier(gxclimag.c)
8517dd7cddfSDavid du Colombier	- The color wasn't set correctly for "high level" masked images.
8527dd7cddfSDavid du Colombier(gxclimag.c)
8537dd7cddfSDavid du Colombier	- The fastest case of monobit image rendering could get a memory
8547dd7cddfSDavid du Colombieraccess error if the image lay partly outside the page.  (gximage1.c)
8557dd7cddfSDavid du Colombier	- Clipping with an empty path was a no-op, rather than clipping out
8567dd7cddfSDavid du Colombiereverything.  (gxcpath.c)
8577dd7cddfSDavid du Colombier
8587dd7cddfSDavid du ColombierMakes reference-counted objects remember which allocator owns them: this
8597dd7cddfSDavid du Colombierentails a NON-BACKWARD-COMPATIBLE change to some of the macros for reference
8607dd7cddfSDavid du Colombiercounting.  This was necessary to fix the off-stack gstate copying problem.
8617dd7cddfSDavid du Colombier(gsrefct.h, gscie.c, gscolor.c, gscolor1.c, gscolor2.c, gscsepr.c,
8627dd7cddfSDavid du Colombiergsstate.c, gxclread.c)
8637dd7cddfSDavid du Colombier
8647dd7cddfSDavid du ColombierRefactors the unpacking of image data, to make unpacking available as a
8657dd7cddfSDavid du Colombiergeneral facility.  (gximage.h, gxsample.h, gximage.c, gximage0.c,
8667dd7cddfSDavid du Colombiergximage1.c, gximage4.c, gxsample.c)
8677dd7cddfSDavid du Colombier
8687dd7cddfSDavid du ColombierEnhances -Z? so that before freeing an object, it checks that the object was
8697dd7cddfSDavid du Colombierowned by the correct allocator.  (gsalloc.c)
8707dd7cddfSDavid du Colombier
8713ff48bf5SDavid du Colombier</pre>
8727dd7cddfSDavid du Colombier
8733ff48bf5SDavid du Colombier<h2><a name="Version4.73"></a>Version 4.73 (limited) (4/19/97)</h2>
8743ff48bf5SDavid du Colombier
8753ff48bf5SDavid du Colombier<p>
8767dd7cddfSDavid du ColombierThis is an incremental bug fix release made primarily to provide a
8777dd7cddfSDavid du Colombiersynchronization point for an upcoming trip.
8787dd7cddfSDavid du Colombier
8793ff48bf5SDavid du Colombier<h3><a name="V4.73_Documentation"></a>Documentation</h3><pre>
8807dd7cddfSDavid du Colombier
8817dd7cddfSDavid du ColombierFixes bugs:
8827dd7cddfSDavid du Colombier	- A reference to the uniprint documentation was incorrect.
8837dd7cddfSDavid du Colombier(current.txt)
8847dd7cddfSDavid du Colombier	- -Olimit 1000 is not enough now for DEC Ultrix, 1200 is required;
8857dd7cddfSDavid du Colombierthis is also required for SGI IRIX.  (make.txt)
8867dd7cddfSDavid du Colombier
8877dd7cddfSDavid du ColombierAdds argument/result comments to all the operators defined in gs_lev2.ps.
8887dd7cddfSDavid du Colombier(Eventually we will do this for all operators defined as PostScript
8897dd7cddfSDavid du Colombierprocedures.)  (gs_lev2.ps)
8907dd7cddfSDavid du Colombier
8913ff48bf5SDavid du Colombier</pre><h3><a name="V4.73_Procedures"></a>Procedures</h3><pre>
8927dd7cddfSDavid du Colombier
8937dd7cddfSDavid du ColombierFixes bugs:
8947dd7cddfSDavid du Colombier	- The makefiles didn't provide a default value for GCONFIG_EXTRAS.
8957dd7cddfSDavid du Colombier(gs.mak)
8967dd7cddfSDavid du Colombier
8973ff48bf5SDavid du Colombier</pre><h3><a name="V4.73_Utilities"></a>Utilities</h3><pre>
8987dd7cddfSDavid du Colombier
8997dd7cddfSDavid du ColombierFixes bugs:
9007dd7cddfSDavid du Colombier	- pdf2ps didn't work with TrueType or compressed Type 1 fonts.
9017dd7cddfSDavid du Colombier(gs_pdf.ps, pdf_2ps.ps, pdf_font.ps)
9027dd7cddfSDavid du Colombier
9033ff48bf5SDavid du Colombier</pre><h3><a name="V4.73_Drivers"></a>Drivers</h3><pre>
9047dd7cddfSDavid du Colombier
9057dd7cddfSDavid du ColombierFixes bugs:
9067dd7cddfSDavid du Colombier	- A cast from byte to char was omitted.  (gdevpdfm.c)
9077dd7cddfSDavid du Colombier
9083ff48bf5SDavid du Colombier</pre><h3><a name="V4.73_Platforms"></a>Platforms</h3><pre>
9097dd7cddfSDavid du Colombier
9107dd7cddfSDavid du ColombierUpdates the VMS script (again).  (vms.mak)
9117dd7cddfSDavid du Colombier
9123ff48bf5SDavid du Colombier</pre><h3><a name="V4.73_Interpreter"></a>Interpreter</h3><pre>
9137dd7cddfSDavid du Colombier
9147dd7cddfSDavid du ColombierFixes bugs:
9157dd7cddfSDavid du Colombier	- A module that used strlen didn't include string_.h.  (zdevice.c)
9167dd7cddfSDavid du Colombier	- Because of some bad PostScript code in FrameMaker output, identity
9177dd7cddfSDavid du Colombierrather than unity black generation and undercolor removal functions are
9187dd7cddfSDavid du Colombierrequired on black-and-white devices.  (gs_init.ps)
9197dd7cddfSDavid du Colombier	- A harmless internal error during initialization left bogus
9207dd7cddfSDavid du Colombierinformation in $error.  (gs_cidfn.ps)
9217dd7cddfSDavid du Colombier	- startjob didn't clear the execution stack.  Fixing this required
9227dd7cddfSDavid du ColombierNON-BACKWARD-COMPATIBLE changes to the internal operators .instopped, .stop,
9237dd7cddfSDavid du Colombierand .stopped, which are not supposed to be used by any external code.
9247dd7cddfSDavid du Colombier(startjob will still give errors if executed in a file that isn't being
9257dd7cddfSDavid du Colombierpiped from stdin; this will take longer to fix.)  (gs_init.ps, gs_lev2.ps,
9267dd7cddfSDavid du Colombieriref.h, imain.c, interp.c, zcontrol.c, zfile.c)
9277dd7cddfSDavid du Colombier
9287dd7cddfSDavid du ColombierAdds a new .execn operator, part of the startjob changes, that allows
9297dd7cddfSDavid du Colombierpushing multiple items on the exec stack.  Eventually this will allow us to
9307dd7cddfSDavid du Colombierget rid of many dynamically created closures.  (zcontrol.c)
9317dd7cddfSDavid du Colombier
9323ff48bf5SDavid du Colombier</pre><h3><a name="V4.73_Interpreter_PDF"></a>Interpreter (PDF)</h3><pre>
9337dd7cddfSDavid du Colombier
9347dd7cddfSDavid du ColombierFixes bugs:
9357dd7cddfSDavid du Colombier	- Landscape-mode PDF files weren't rotated properly.  (gs_pdf.ps,
9367dd7cddfSDavid du Colombierpdf_main.ps)
9377dd7cddfSDavid du Colombier
9387dd7cddfSDavid du ColombierMakes the default PDF configuration notify users more informatively when
9397dd7cddfSDavid du Colombierencountering an encrypted file.  (pdf_sec.ps)
9407dd7cddfSDavid du Colombier
9413ff48bf5SDavid du Colombier</pre><h3><a name="V4.73_Streams"></a>Streams</h3><pre>
9427dd7cddfSDavid du Colombier
9437dd7cddfSDavid du ColombierMakes the RunLengthEncode filter always generate optimally compressed
9447dd7cddfSDavid du Colombieroutput.  We did this because we thought one of the Genoa CET files loops
9457dd7cddfSDavid du Colombierforever if this is not the case; but we were wrong.  (srle.c)
9467dd7cddfSDavid du Colombier
9473ff48bf5SDavid du Colombier</pre><h3><a name="V4.73_Library"></a>Library</h3><pre>
9487dd7cddfSDavid du Colombier
9497dd7cddfSDavid du ColombierFixes bugs:
9507dd7cddfSDavid du Colombier	- If one coordinate of a position or distance overflowed the
9517dd7cddfSDavid du Colombierinternal representable range, the other coordinate became garbage.  (bug
9527dd7cddfSDavid du Colombierintroduced in 4.70) (gspath.c)
9537dd7cddfSDavid du Colombier	- The bounding box computation for strokes was slightly too large
9547dd7cddfSDavid du Colombier(sometimes much too large).  (gxpaint.h, gdevbbox.c, gxclpath.c, gxstroke.c)
9557dd7cddfSDavid du Colombier
9567dd7cddfSDavid du ColombierAdds (under an #if 0) an experimental alternate halftone cell choice
9577dd7cddfSDavid du Colombieralgorithm.  (gshtscr.c)
9587dd7cddfSDavid du Colombier
9597dd7cddfSDavid du ColombierAdds a better comment to a particularly obscure line of C code.
9607dd7cddfSDavid du Colombier(gxclimag.c)
9617dd7cddfSDavid du Colombier
9623ff48bf5SDavid du Colombier</pre>
9637dd7cddfSDavid du Colombier
9643ff48bf5SDavid du Colombier<h2><a name="Version4.72"></a>Version 4.72 (limited) (4/14/97)</h2>
9653ff48bf5SDavid du Colombier
9663ff48bf5SDavid du Colombier<p>
9677dd7cddfSDavid du ColombierThis is another bug fix release, motivated mostly by Genoa testing.  It also
9687dd7cddfSDavid du Colombierupdates the new uniprint driver with a major revision, and upgrades CFF
9697dd7cddfSDavid du Colombiersupport a little bit.
9707dd7cddfSDavid du Colombier
9713ff48bf5SDavid du Colombier<h3><a name="V4.72_Documentation"></a>Documentation</h3><pre>
9727dd7cddfSDavid du Colombier
9737dd7cddfSDavid du ColombierFixes bugs:
9747dd7cddfSDavid du Colombier	- -dNOGC only disables default automatic garbage collection, not all
9757dd7cddfSDavid du Colombiergarbage collection.  (use.txt)
9767dd7cddfSDavid du Colombier	- Apparently a different set of flags is needed for newer H-P
9777dd7cddfSDavid du Colombiercompilers.  (make.txt)
9787dd7cddfSDavid du Colombier
9797dd7cddfSDavid du ColombierReplaces the tiny FAQ with a pointer to the on-line FAQ.  (use.txt)
9807dd7cddfSDavid du Colombier
9817dd7cddfSDavid du ColombierUpdates the documentation for the uniprint driver.  (devices.txt)
9827dd7cddfSDavid du Colombier
9837dd7cddfSDavid du ColombierClarifies the fact that Ghostscript reads Fontmap files from *all*
9847dd7cddfSDavid du Colombierdirectories in the search list.  (use.txt)
9857dd7cddfSDavid du Colombier
9867dd7cddfSDavid du ColombierNotes that building on Linux may require SM and ICE in the list of X
9877dd7cddfSDavid du Colombierlibraries.  (make.txt)
9887dd7cddfSDavid du Colombier
9893ff48bf5SDavid du Colombier</pre><h3><a name="V4.72_Procedures"></a>Procedures</h3><pre>
9907dd7cddfSDavid du Colombier
9917dd7cddfSDavid du ColombierFixes bugs:
9927dd7cddfSDavid du Colombier	- An -include type42 was omitted from the level2 module description.
9937dd7cddfSDavid du Colombier(int.mak)
9947dd7cddfSDavid du Colombier	- A mention of $(ECHOGS) in the rule for sfile should have been
9957dd7cddfSDavid du Colombier$(ECHOGS_XE).  (lib.mak)
9967dd7cddfSDavid du Colombier	- The pcx2up sample device should have been put in devs.mak rather
9977dd7cddfSDavid du Colombierthan lib.mak.  (devs.mak, lib.mak)
9987dd7cddfSDavid du Colombier	- scanchar.h and scantab.c belong in the library, not the
9997dd7cddfSDavid du Colombierinterpreter.  (devs.mak, int.mak, lib.mak)
10007dd7cddfSDavid du Colombier	- Some _h definitions were used before being defined, or weren't
10017dd7cddfSDavid du Colombierdefined at all.  (devs.mak, lib.mak)
10027dd7cddfSDavid du Colombier	- The JPEG driver was missing a dependency.  (devs.mak)
10037dd7cddfSDavid du Colombier	- The PDF writer was missing a dependency.  (devs.mak)
10047dd7cddfSDavid du Colombier	- Building Level 1 systems was no longer possible.  (int.mak)
10057dd7cddfSDavid du Colombier
10067dd7cddfSDavid du ColombierUpdates the VMS build scripts.  (vms.mak, vms-decc.mak)
10077dd7cddfSDavid du Colombier
10087dd7cddfSDavid du ColombierAdds *.upp to the list of files installed under Unix.  (unix-end.mak)
10097dd7cddfSDavid du Colombier
10107dd7cddfSDavid du ColombierAdds rules to the Unix makefiles to build two library files: gs.a,
10117dd7cddfSDavid du Colombierconsisting of the entire PostScript/PDF interpreter lacking only gs.c, and
10127dd7cddfSDavid du Colombiergslib.a, consisting of the graphics library without the gslib.c test driver.
10137dd7cddfSDavid du Colombier(ansihead.mak, cc-head.mak, gcc-head.mak, unixtail.mak)
10147dd7cddfSDavid du Colombier
10153ff48bf5SDavid du Colombier</pre><h3><a name="V4.72_Drivers"></a>Drivers</h3><pre>
10167dd7cddfSDavid du Colombier
10177dd7cddfSDavid du ColombierFixes bugs:
10187dd7cddfSDavid du Colombier	- The PS/EPS writers could generate a reference to an undefined
10197dd7cddfSDavid du Colombiername.  (gdevps.c)
10207dd7cddfSDavid du Colombier	- The PDF writer produced incorrect output for multi-level outlines.
10217dd7cddfSDavid du Colombier(gdevpdfm.c)
10227dd7cddfSDavid du Colombier	- The PDF writer didn't convert /Action to /A, and /Action/Subtype
10237dd7cddfSDavid du Colombierto /S, in Annot dictionaries.  (gdevpdfm.c)
10247dd7cddfSDavid du Colombier	- The PDF writer didn't work in Level 1 systems.  (gs_pdfwr.ps)
10257dd7cddfSDavid du Colombier	- The PDF writer didn't transform /Rect and /R values to current
10267dd7cddfSDavid du Colombieruser coordinates.  (gs_pdfwr.ps, gdevpdfx.h, gdevpdfm.c)
10277dd7cddfSDavid du Colombier	- The PNG writer could refer to the 3 predefined stdio files even in
10287dd7cddfSDavid du Colombierenvironments where this was undesirable.  (gdevpng.c)
10297dd7cddfSDavid du Colombier	- The PDF writer had a compiled-in limit of 100 pages of output.
10307dd7cddfSDavid du Colombier(gdevpdfx.h, gdevpdf.c)
10317dd7cddfSDavid du Colombier
10327dd7cddfSDavid du ColombierUpdates the uniprint driver with a major revision that uses device
10337dd7cddfSDavid du Colombierparameters that can be set from the command line, rather than PostScript
10347dd7cddfSDavid du Colombiercode, for configuration choices.  (gdevupd.c, *.upp)
10357dd7cddfSDavid du Colombier
10363ff48bf5SDavid du Colombier</pre><h3><a name="V4.72_Platforms"></a>Platforms</h3><pre>
10377dd7cddfSDavid du Colombier
10387dd7cddfSDavid du ColombierFixes bugs:
10397dd7cddfSDavid du Colombier	- gp_enumerate_files_next had no way to return an error.  (gp.h,
10407dd7cddfSDavid du Colombiergp_dosfe.c, gp_ntfs.c, gp_os2.c, gp_unifs.c, gp_vms.c) ****** NOT
10417dd7cddfSDavid du ColombierIMPLEMENTED YET ******
10427dd7cddfSDavid du Colombier	- On the Watcom platform, CPU_TYPE &gt;= 486 didn't automatically set
10437dd7cddfSDavid du ColombierFPU_TYPE to 387.  (wccommon.mak)
10447dd7cddfSDavid du Colombier
10453ff48bf5SDavid du Colombier</pre><h3><a name="V4.72_Interpreter"></a>Interpreter</h3><pre>
10467dd7cddfSDavid du Colombier
10477dd7cddfSDavid du ColombierFixes bugs:
10487dd7cddfSDavid du Colombier	- Caching the current device in userdict could create dangling
10497dd7cddfSDavid du Colombierreferences.  (gs_init.ps, gs_pdfwr.ps, zdevice.c)
10507dd7cddfSDavid du Colombier	- If an error occurred in a BuildChar or BuildGlyph procedure, the
10517dd7cddfSDavid du Colombiergraphics state stack wasn't restored.  (ichar.h, zchar.c, zchar2.c)
10527dd7cddfSDavid du Colombier	- There was an obsolete check for a structure when cleaning up after
10537dd7cddfSDavid du Colombiera show operator.  (zchar.c)
10547dd7cddfSDavid du Colombier	- Attempting to show a character with no associated glyph in a Type
10557dd7cddfSDavid du Colombier3 font with a BuildGlyph procedure caused an error.  (zchar.c)
10567dd7cddfSDavid du Colombier	- noaccess on a read-only dictionary didn't give an error.
10577dd7cddfSDavid du Colombier(ztype.c)
10587dd7cddfSDavid du Colombier	- The dictionary passed to a Pattern's PaintProc was the original
10597dd7cddfSDavid du Colombiertemplate, not the copy made by makepattern.  (gs_lev2.ps)
10607dd7cddfSDavid du Colombier	- Invalid font parameters could result in partially constructed
10617dd7cddfSDavid du Colombierfonts, which caused problems for restore.  (zfont0.c, zfont2.c)
10627dd7cddfSDavid du Colombier	- Files run under job control caused an error when terminating.
10637dd7cddfSDavid du Colombier(gs_init.ps)
10647dd7cddfSDavid du Colombier	- setpagedevice didn't protect itself against malfunctioning
10657dd7cddfSDavid du ColombierBeginPage or EndPage procedures.  (The protection is still not perfect.)
10667dd7cddfSDavid du Colombier(gs_setpd.ps)
10677dd7cddfSDavid du Colombier	- .type42execchar called font_param redundantly.  (zchar42.c)
10687dd7cddfSDavid du Colombier	- The font operators didn't protect themselves well enough against
10697dd7cddfSDavid du Colombierbogus font dictionaries.  (zfont.c, zfont0.c)
10707dd7cddfSDavid du Colombier	- If an error occurred within a stringwidth, the graphics state
10717dd7cddfSDavid du Colombierstack wasn't restored properly.  (zchar.c)
10727dd7cddfSDavid du Colombier	- If an error occurred within the PaintProc of a form, the graphics
10737dd7cddfSDavid du Colombierstate stack was left with an extra entry.  (gs_lev2.ps)
10747dd7cddfSDavid du Colombier	- Registering a font under a second name could corrupt data
10757dd7cddfSDavid du Colombierstructures.  (zfont2.c)
10767dd7cddfSDavid du Colombier	- Different scalings of the same font should have "equal" fontIDs,
10777dd7cddfSDavid du Colombierto match the Adobe implementations.  (iutil.c)
10787dd7cddfSDavid du Colombier	- Errors detected by PostScript code during initialization either
10797dd7cddfSDavid du Colombierallowed execution to continue or produced a hex stack dump, instead of just
10807dd7cddfSDavid du Colombierproducing a message and exiting.  (interp.c)
10817dd7cddfSDavid du Colombier	- The memory validator didn't validate chunks at previous save
10827dd7cddfSDavid du Colombierlevels.  (ilocate.c)
10837dd7cddfSDavid du Colombier	- The Level 1 size of systemdict was too small.  (iinit.c)
10847dd7cddfSDavid du Colombier	- Attempting to define a Category resource in local VM gave a
10857dd7cddfSDavid du Colombiertypecheck error rather than an invalidaccess.  (gs_res.ps)
10867dd7cddfSDavid du Colombier	- Building Level 1 systems was no longer possible.  (zusparam.c)
10877dd7cddfSDavid du Colombier
10887dd7cddfSDavid du ColombierRearranges the interpreter code slightly so that all operator invocations go
10897dd7cddfSDavid du Colombierthrough a single procedure when debugging.  (interp.c)
10907dd7cddfSDavid du Colombier
10917dd7cddfSDavid du ColombierAdds a -K&lt;numK&gt; switch to limit the total amount of memory that Ghostscript
10927dd7cddfSDavid du Colombiercan acquire.  (imainarg.c)
10937dd7cddfSDavid du Colombier
10947dd7cddfSDavid du ColombierMakes the memory validator check packed refs more carefully.  (ilocate.c)
10957dd7cddfSDavid du Colombier
10967dd7cddfSDavid du ColombierMakes the memory validator check explicitly for pointers to freed objects.
10977dd7cddfSDavid du Colombier(igc.c, ilocate.c)
10987dd7cddfSDavid du Colombier
10997dd7cddfSDavid du ColombierMakes the memory validator check dictionaries more carefully.  (ilocate.c)
11007dd7cddfSDavid du Colombier
11017dd7cddfSDavid du ColombierMakes the memory validator check refs embedded in structures.  (ilocate.c)
11027dd7cddfSDavid du Colombier
11037dd7cddfSDavid du ColombierAdds a debugging option that bypasses the garbage collector entirely.
11047dd7cddfSDavid du Colombier(igc.c)
11057dd7cddfSDavid du Colombier
11067dd7cddfSDavid du ColombierAdds debugging options to validate memory before/after save/restore.
11077dd7cddfSDavid du Colombier(zvmem.c)
11087dd7cddfSDavid du Colombier
11097dd7cddfSDavid du ColombierRemoves the patch for the uniprint driver, since it is no longer needed.
11107dd7cddfSDavid du Colombier(gs_init.ps)
11117dd7cddfSDavid du Colombier
11127dd7cddfSDavid du ColombierImplements real-number operands in CFF fonts.  (gs_cff.ps)
11137dd7cddfSDavid du Colombier
11147dd7cddfSDavid du ColombierImplements non-default charsets in CFF fonts.  (gs_cff.ps)
11157dd7cddfSDavid du Colombier
11163ff48bf5SDavid du Colombier</pre><h3><a name="V4.72_Interpreter_PDF"></a>Interpreter (PDF)</h3><pre>
11177dd7cddfSDavid du Colombier
11187dd7cddfSDavid du ColombierFixes bugs:
11197dd7cddfSDavid du Colombier	- The PDF 1.2 "marked content" operators weren't defined.
11207dd7cddfSDavid du Colombier(pdf_main.ps)
11217dd7cddfSDavid du Colombier	- Streams with binary data whose first character was an EOL (\n)
11227dd7cddfSDavid du Colombierdidn't parse properly.  Unfortunately, the way we fixed this may break some
11237dd7cddfSDavid du Colombierother files.  (pdf_base.ps)
11247dd7cddfSDavid du Colombier	- PDF 1.2 #nn escape syntax in names wasn't recognized.  ****** This
11257dd7cddfSDavid du Colombieris implemented with an inefficient hack that should be moved down into C.
11267dd7cddfSDavid du ColombierHowever, I don't want to risk introducing new bugs during the beta test
11277dd7cddfSDavid du Colombierperiod. ****** (pdf_base.ps)
11287dd7cddfSDavid du Colombier	- The interpreter had a limit of 64K objects.  Removing this limit
11297dd7cddfSDavid du Colombierrequired changing a basic data structure -- admittedly a risky thing to do
11307dd7cddfSDavid du Colombierduring beta test.  (pdf_base.ps, pdf_main.ps)
11317dd7cddfSDavid du Colombier	- TJ didn't multiply the offsets by the font size, causing incorrect
11327dd7cddfSDavid du Colombiercharacter positioning.  (gs_pdf.ps)
11337dd7cddfSDavid du Colombier
11343ff48bf5SDavid du Colombier</pre><h3><a name="V4.72_Streams"></a>Streams</h3><pre>
11357dd7cddfSDavid du Colombier
11367dd7cddfSDavid du ColombierFixes bugs:
11377dd7cddfSDavid du Colombier	- The ASCIIHexDecode filter read an extra character in case of
11387dd7cddfSDavid du Colombiererror.  (sstring.c)
11397dd7cddfSDavid du Colombier
11407dd7cddfSDavid du ColombierAdds more tracing output to the CCITTFaxDecode stream.  (scfd.c)
11417dd7cddfSDavid du Colombier
11423ff48bf5SDavid du Colombier</pre><h3><a name="V4.72_Library"></a>Library</h3><pre>
11437dd7cddfSDavid du Colombier
11447dd7cddfSDavid du ColombierFixes bugs:
11457dd7cddfSDavid du Colombier	- The allocator client name for rendering bitmap patterns was
11467dd7cddfSDavid du Colombierincorrect.  (Only affects tracing output.)  (gspcolor.c)
11477dd7cddfSDavid du Colombier	- The check for exceeding the overall allocation limit was
11487dd7cddfSDavid du Colombierincorrect, because of unsigned arithmetic.  (Only affects limitation of
11497dd7cddfSDavid du Colombiertotal allocation, which is only used for debugging and benchmarking.)
11507dd7cddfSDavid du Colombier(gsmemory.c)
11517dd7cddfSDavid du Colombier	- The 0'th component of colored screens wasn't passed through the
11527dd7cddfSDavid du Colombierband list, possibly causing access errors when rasterizing.  (gxclimag.c,
11537dd7cddfSDavid du Colombiergxclread.c)
11547dd7cddfSDavid du Colombier	- setbbox could get an overflow without detecting it.  (gsdps1.c)
11557dd7cddfSDavid du Colombier	- Images with only one component but MultipleDataSources = true
11567dd7cddfSDavid du Colombiercould cause a memory access error.  (gximage.c)
11577dd7cddfSDavid du Colombier	- The buffer for unpacking 12-bit-per-sample image data was too
11587dd7cddfSDavid du Colombiersmall, causing memory corruption.  (gximage.c)
11597dd7cddfSDavid du Colombier	- 12-bit-per-sample images with multiple data sources sometimes
11607dd7cddfSDavid du Colombierdidn't pass correct pointers to image_data.  (gsimage.c)
11617dd7cddfSDavid du Colombier	- If an image data stream reached EOF before supplying enough data
11627dd7cddfSDavid du Colombierfor the entire image, memory corruption could occur.  (zpaint.c)
11637dd7cddfSDavid du Colombier	- When a device halftone was freed, some pointers in the halftone
11647dd7cddfSDavid du Colombiercache weren't cleared, leading to possible dangling references.  (gsstate.c)
11657dd7cddfSDavid du Colombier	- Invalid font parameters could result in partially constructed
11667dd7cddfSDavid du Colombierfonts, which caused problems for restore.  (gxfont0.h, gsfont.c)
11677dd7cddfSDavid du Colombier	- If an error occurred within a stringwidth, the graphics state
11687dd7cddfSDavid du Colombierstack wasn't restored properly.  (gschar.c)
11697dd7cddfSDavid du Colombier	- The (static) limit on the size of a command line argument was too
11707dd7cddfSDavid du Colombiersmall.  (gsargs.h)
11717dd7cddfSDavid du Colombier	- Building Level 1 systems was no longer possible.  (gxdht.h,
11727dd7cddfSDavid du Colombiergsht.c, gsht1.c)
11737dd7cddfSDavid du Colombier	- Truncation instead of rounding caused colors on gray-scale devices
11747dd7cddfSDavid du Colombierto come out very slightly too dark.  (gxcmap.c)
11757dd7cddfSDavid du Colombier	- The Decode mapping table constructed for images was slightly
11767dd7cddfSDavid du Colombierinaccurate for ranges other than [0 1] or [1 0].  (gximage.c)
11777dd7cddfSDavid du Colombier
11783ff48bf5SDavid du Colombier</pre>
11797dd7cddfSDavid du Colombier
11803ff48bf5SDavid du Colombier<h2><a name="Version4.71"></a>Version 4.71 (limited) (3/31/97)</h2>
11813ff48bf5SDavid du Colombier
11823ff48bf5SDavid du Colombier<p>
11837dd7cddfSDavid du ColombierThis is a bug fix release during the beta test period.
11847dd7cddfSDavid du Colombier
11853ff48bf5SDavid du Colombier<h3><a name="V4.71_Documentation"></a>Documentation</h3><pre>
11867dd7cddfSDavid du Colombier
11877dd7cddfSDavid du ColombierFixes bugs:
11887dd7cddfSDavid du Colombier	- A larger value of -Olimit is now needed to optimize gxclread.c.
11897dd7cddfSDavid du Colombier(make.txt)
11907dd7cddfSDavid du Colombier	- Some comments were incorrect.  (gdevbbox.h, sfilter1.c)
11917dd7cddfSDavid du Colombier
11927dd7cddfSDavid du ColombierUpdates the GPL with a newer version from FSF.  (COPYLEFT)
11937dd7cddfSDavid du Colombier
11947dd7cddfSDavid du ColombierNotes that the gcc 2.7.x code generation bug is fixed in 2.7.2.1.
11957dd7cddfSDavid du Colombier(make.txt)
11967dd7cddfSDavid du Colombier
11973ff48bf5SDavid du Colombier</pre><h3><a name="V4.71_Procedures"></a>Procedures</h3><pre>
11987dd7cddfSDavid du Colombier
11997dd7cddfSDavid du ColombierFixes bugs:
12007dd7cddfSDavid du Colombier	- Some streams required by high-level drivers were incorrectly
12017dd7cddfSDavid du Colombiergrouped with the interpreter rather than the library.  (int.mak, lib.mak)
12027dd7cddfSDavid du Colombier	- The choice of implementation for file streams was buried in an
12037dd7cddfSDavid du Colombierobscure place, rather than being included in the configuration definitions
12047dd7cddfSDavid du Colombierat the head of each makefile.  (We believe there are no more such buried
12057dd7cddfSDavid du Colombierparameters.)  This involved a NON-BACKWARD-COMPATIBLE change in the way this
12067dd7cddfSDavid du Colombierchoice was specified.  (lib.mak, *.mak)
12077dd7cddfSDavid du Colombier	- Some dependencies were missing.  (lib.mak)
12087dd7cddfSDavid du Colombier
12093ff48bf5SDavid du Colombier</pre><h3><a name="V4.71_Drivers"></a>Drivers</h3><pre>
12107dd7cddfSDavid du Colombier
12117dd7cddfSDavid du ColombierFixes bugs:
12127dd7cddfSDavid du Colombier	- A variable was used before being initialized, causing get_bits
12137dd7cddfSDavid du Colombier(and raster ops) to fail when using alternate X devices.  (bug introduced in
12147dd7cddfSDavid du Colombier4.70.)  (gdevxalt.c)
12157dd7cddfSDavid du Colombier	- Some 'private' declarations were omitted.  (It is infuriating that
12167dd7cddfSDavid du Colombiergcc doesn't check for this!)  (gdevps.c, gdevpx.c)
12177dd7cddfSDavid du Colombier	- A few character strings were used as byte arrays without a cast.
12187dd7cddfSDavid du Colombier(gdevpx.c)
12197dd7cddfSDavid du Colombier	- The EPS writer didn't write a correct bounding box, and didn't
12207dd7cddfSDavid du Colombierwrite it at the beginning of the file.  (gdevvec.h, gsstruct.h, gdevps.c,
12217dd7cddfSDavid du Colombiergdevvec.c)
12227dd7cddfSDavid du Colombier	- x_copy_color specified an incorrect (too large) image width.
12237dd7cddfSDavid du ColombierApparently this only mattered because it could cause invalid memory
12247dd7cddfSDavid du Colombieraccesses.  (gdevx.c)
12257dd7cddfSDavid du Colombier	- x_copy_mono also specified too large an image width.  It's not
12267dd7cddfSDavid du Colombierclear this made any difference.  (gdevx.c)
12277dd7cddfSDavid du Colombier	- The default implementation of strip_copy_rop didn't clamp Y values
12287dd7cddfSDavid du Colombierto legal values for get_bits.  (gdevmrop.c)
12297dd7cddfSDavid du Colombier
12303ff48bf5SDavid du Colombier</pre><h3><a name="V4.71_Interpreter"></a>Interpreter</h3><pre>
12317dd7cddfSDavid du Colombier
12327dd7cddfSDavid du ColombierFixes bugs:
12337dd7cddfSDavid du Colombier	- Some initialization files prematurely switched the interpreter
12347dd7cddfSDavid du Colombierinto Level 2 mode, causing some Level 2 operators not to be defined.  (bug
12357dd7cddfSDavid du Colombierintroduced in 4.60 or later.)  (gs_cff.ps, gs_cidfn.ps, gs_cmap.ps,
12367dd7cddfSDavid du Colombiergs_init.ps, gs_res.ps)
12377dd7cddfSDavid du Colombier
12383ff48bf5SDavid du Colombier</pre><h3><a name="V4.71_Streams"></a>Streams</h3><pre>
12397dd7cddfSDavid du Colombier
12407dd7cddfSDavid du ColombierFixes bugs:
12417dd7cddfSDavid du Colombier	- The choice of procedure names for the file-descriptor-based
12427dd7cddfSDavid du Colombierimplementation of file streams was buried in a .c file, rather than being
12437dd7cddfSDavid du Colombierchosen in the makefile.  (sfile.c[deleted], sfileno.c[deleted], sfxstdio.c,
12447dd7cddfSDavid du Colombiersfxfd.c, sfxboth.c)
12457dd7cddfSDavid du Colombier
12463ff48bf5SDavid du Colombier</pre><h3><a name="V4.71_Library"></a>Library</h3><pre>
12477dd7cddfSDavid du Colombier
12487dd7cddfSDavid du ColombierFixes bugs:
12497dd7cddfSDavid du Colombier	- rcurveto was broken -- it drew curves to random points.  (bug
12507dd7cddfSDavid du Colombierintroduced in 4.61.)  (gspath.c)
12517dd7cddfSDavid du Colombier	- A trailing comma in an enum definition upset some compilers.  (bug
12527dd7cddfSDavid du Colombierintroduced in 4.70.)  (gstype1.h)
12537dd7cddfSDavid du Colombier	- Type 1 fonts with hint replacement could produce anomalous or
12547dd7cddfSDavid du Colombierclipped output, or even missing lines.  (Also cleans up some out-of-date
12557dd7cddfSDavid du Colombierformatting.)  (gxtype1.h, gstype1.c, gxhint2.c)
12567dd7cddfSDavid du Colombier	- Removes some conditionals for choosing between old and new
12577dd7cddfSDavid du Colombieralgorithms.  (gxhint3.c)
12587dd7cddfSDavid du Colombier	- makebitmappattern required that the bitmap consist of only a
12597dd7cddfSDavid du Colombiersingle tile repetition.  (gspcolor.c)
12607dd7cddfSDavid du Colombier	- Some computations on RasterOps didn't take transparency into
12617dd7cddfSDavid du Colombieraccount properly.  (gdevmrop.c)
12627dd7cddfSDavid du Colombier	- The structure definition for imager and graphics states had an
12637dd7cddfSDavid du Colombierincorrect offset for line_params, causing the garbage collector not to mark
12647dd7cddfSDavid du Colombieror relocate dash patterns, possibly causing memory faults, FPEs, or invalid
12657dd7cddfSDavid du Colombieroutput.  (bug introduced since 4.03.)  (gsstate.c)
12667dd7cddfSDavid du Colombier	- 'show' operators gave a limitcheck for unreasonable coordinates,
12677dd7cddfSDavid du Colombiereven if limit clamping was enabled.  (gschar.c)
12687dd7cddfSDavid du Colombier
12697dd7cddfSDavid du ColombierImplements banded filling and stroking with colored halftones, in addition
12707dd7cddfSDavid du Colombierto pure colors and binary halftones.  Since we are in a beta test period,
12717dd7cddfSDavid du Colombieractual use of this feature (but *not* all the code implementing it) is
12727dd7cddfSDavid du Colombierdisabled under an #ifdef FUTURE.  (gsdcolor.h, gxcldev.h, gxclpath.h,
12737dd7cddfSDavid du Colombiergxdht.h, gxhttype.h, gsht.c, gxclimag.c, gxclpath.c, gxclread.c)
12747dd7cddfSDavid du Colombier
12753ff48bf5SDavid du Colombier</pre>
12767dd7cddfSDavid du Colombier
12773ff48bf5SDavid du Colombier<h2><a name="Version4.70"></a>Version 4.70 (limited) (3/26/97)</h2>
12783ff48bf5SDavid du Colombier
12793ff48bf5SDavid du Colombier<p>
12807dd7cddfSDavid du ColombierThis fileset fixes the one outstanding compilation problem on PC platforms
12817dd7cddfSDavid du Colombierand the old problem of limitchecks for out-of-bounds coordinates, and adds a
12827dd7cddfSDavid du Colombiervariety of new features, including the ability to save away the band lists
12837dd7cddfSDavid du Colombierfor pages and rasterize them later and/or elsewhere in any order and
12847dd7cddfSDavid du Colombiercombination.  This is the first "serious beta" candidate for the next
12857dd7cddfSDavid du Colombiergeneral release.
12867dd7cddfSDavid du Colombier
12873ff48bf5SDavid du Colombier<p>
12887dd7cddfSDavid du ColombierFileset numbers 4.62 through 4.69 were skipped deliberately.
12897dd7cddfSDavid du Colombier
12903ff48bf5SDavid du Colombier<h3><a name="V4.70_Documentation"></a>Documentation</h3><pre>
12917dd7cddfSDavid du Colombier
12927dd7cddfSDavid du ColombierFixes bugs:
12937dd7cddfSDavid du Colombier	- The list of special -d and -s switches was out of date.  (use.txt)
12947dd7cddfSDavid du Colombier	- The name of the zlibDecode filter was incorrectly written
12957dd7cddfSDavid du ColombierzlibEncode.  (language.txt)
12967dd7cddfSDavid du Colombier
12977dd7cddfSDavid du ColombierDocuments where to find out how to install gcc 2.7.x on SGI IRIX 6.x.
12987dd7cddfSDavid du Colombier(make.txt)
12997dd7cddfSDavid du Colombier
13007dd7cddfSDavid du ColombierDocuments a makefile patch required on NeXTStep.  (make.txt)
13017dd7cddfSDavid du Colombier
13027dd7cddfSDavid du ColombierDocuments how to patch gcc to fix the AXP code generation bug.  (make.txt)
13037dd7cddfSDavid du Colombier
13047dd7cddfSDavid du ColombierAdds documentation for the new unified printer driver.  (devices.txt)
13057dd7cddfSDavid du Colombier
13063ff48bf5SDavid du Colombier</pre><h3><a name="V4.70_Procedures"></a>Procedures</h3><pre>
13077dd7cddfSDavid du Colombier
13087dd7cddfSDavid du ColombierFixes bugs:
13097dd7cddfSDavid du Colombier	- 'make distclean' didn't remove a couple of files.  (gs.mak)
13107dd7cddfSDavid du Colombier	- A library module didn't include a necessary dependency.  (lib.mak)
13117dd7cddfSDavid du Colombier	- A new .ps file wasn't installed properly.  (unix-end.mak)
13127dd7cddfSDavid du Colombier	- File write dates weren't updated properly on PC platforms, causing
13137dd7cddfSDavid du Colombierunnecessary rebuilding.  (cp.bat, gs.mak, msc.mak, msvcwint.mak, os2.mak,
13147dd7cddfSDavid du Colombiertccommon.mak, wccommon.mak, zlib.mak)
13157dd7cddfSDavid du Colombier	- An unnecessary explicit compilation line for gdevcdj.c caused
13167dd7cddfSDavid du Colombierproblems in the Mac environment.  (devs.mak)
13177dd7cddfSDavid du Colombier	- The VMS scripts were out of sync again.  (vms.mak)
13187dd7cddfSDavid du Colombier	- The VMS build scripts didn't include the new JPEG driver.
13197dd7cddfSDavid du Colombier(vms-*.mak)
13207dd7cddfSDavid du Colombier	- A number of makefile macros were referenced before being defined.
13217dd7cddfSDavid du Colombier(devs.mak, lib.mak, int.mak, *.mak)
13227dd7cddfSDavid du Colombier	- libpng.mak didn't work with PVERSION=90.  (libpng.mak, zlib.mak)
13237dd7cddfSDavid du Colombier
13247dd7cddfSDavid du ColombierSeparates install-scripts from install-exec and install-data.
13257dd7cddfSDavid du Colombier(unix-end.mak)
13267dd7cddfSDavid du Colombier
13277dd7cddfSDavid du ColombierMoves the definition of SEARCH_HERE_FIRST from iminst.h to the makefiles.
13287dd7cddfSDavid du Colombier(*.mak, iminst.h, iconf.c, imain.c)
13297dd7cddfSDavid du Colombier
13307dd7cddfSDavid du ColombierAdds a -dBATCH switch that causes Ghostscript to exit after processing the
13317dd7cddfSDavid du Colombierfiles named on the command line.  (gs_init.ps)
13327dd7cddfSDavid du Colombier
13337dd7cddfSDavid du ColombierAdds the PostScript, EPS, and PCL XL writers, and the color and gray-scale
13347dd7cddfSDavid du ColombierJPEG drivers, to all Unix configurations.  (ansihead.mak, cc-head.mak,
13357dd7cddfSDavid du Colombiergcc-head.mak)
13367dd7cddfSDavid du Colombier
13373ff48bf5SDavid du Colombier</pre><h3><a name="V4.70_Drivers"></a>Drivers</h3><pre>
13387dd7cddfSDavid du Colombier
13397dd7cddfSDavid du ColombierNOTE: because of a change in an internal interface (clist_output_page), the
13407dd7cddfSDavid du Colombiercp50 driver no longer works.  This is a user-contributed driver for which we
13417dd7cddfSDavid du Colombiertake no responsibility.
13427dd7cddfSDavid du Colombier
13437dd7cddfSDavid du ColombierFixes bugs:
13447dd7cddfSDavid du Colombier	- gdevcdj.c wasn't compatible with ansi2knr.  (gdevcdj.c)
13457dd7cddfSDavid du Colombier	- 'private' was omitted from some declarations.  (gdevjpeg.c)
13467dd7cddfSDavid du Colombier	- The PostScript writer didn't keep track of the current color
13477dd7cddfSDavid du Colombierproperly.  (gdevps.c)
13487dd7cddfSDavid du Colombier	- RESOLUTION was misspelled in a header.  (gdevbjc.h)
13497dd7cddfSDavid du Colombier	- Some compilers objected to the use of a floating point initial
13507dd7cddfSDavid du Colombierresolution value.  (gdevbjc.h)
13517dd7cddfSDavid du Colombier	- Some compilers didn't allow static initialization of a union.
13527dd7cddfSDavid du Colombier(gsdcolor.h)
13537dd7cddfSDavid du Colombier	- If a TIFF driver got an error when initializing the CCITTFax
13547dd7cddfSDavid du Colombierencoder, it returned a bogus error code.  (gdevtfax.c)
13557dd7cddfSDavid du Colombier	- The PDF writer produced incorrect output for Indexed color space
13567dd7cddfSDavid du Colombierimages.  (gdevpdfi.c)
13577dd7cddfSDavid du Colombier	- For many fatal error conditions, the X driver called exit()
13587dd7cddfSDavid du Colombierinstead of returning an error.  (gdevx*.c)
13597dd7cddfSDavid du Colombier
13607dd7cddfSDavid du ColombierAdds new drivers:
13617dd7cddfSDavid du Colombier	- epswrite, an EPS-writing driver (instead of making EPS output a
13627dd7cddfSDavid du Colombierparametric option of the PostScript-writing device).  (devs.mak, gdevps.c)
13637dd7cddfSDavid du Colombier	- pcxcmyk, a 4-bit CMYK PCX driver.  This is probably only useful
13647dd7cddfSDavid du Colombierfor debugging CMYK color rendering.  (gdevpcx.c)
13657dd7cddfSDavid du Colombier	- jpeggray, a JPEG driver that produces gray-scale rather than color
13667dd7cddfSDavid du Colombieroutput.  Thanks to Tom Lane for contributing this.  (gdevjpeg.c)
13677dd7cddfSDavid du Colombier	- uniprint, a unified printer driver for a wide variety of inkjet
13687dd7cddfSDavid du Colombierprinters.  Thanks to Gunther Hess for contributing this.  (gdevupd.c)
13697dd7cddfSDavid du Colombier
13707dd7cddfSDavid du ColombierAdds the resolution (pHYs) to the output of the PNG drivers.  (gdevpng.c)
13717dd7cddfSDavid du Colombier
13727dd7cddfSDavid du ColombierAdds recognition of the ASCII85EncodePages parameter to the PostScript and
13737dd7cddfSDavid du ColombierEPS writers.  (gdevps.c)
13747dd7cddfSDavid du Colombier
13757dd7cddfSDavid du ColombierMakes the new JPEG driver write a JFIF header, which contains the image
13767dd7cddfSDavid du Colombierresolution.  (gdevjpeg.c)
13777dd7cddfSDavid du Colombier
13787dd7cddfSDavid du ColombierChanges the "vector" device support interface so relative movement can be
13797dd7cddfSDavid du Colombierdetected easily.  THIS IS STILL SUBJECT TO CHANGE WITHOUT NOTICE.
13807dd7cddfSDavid du Colombier(gdevvec.h, gdevpsdf.c, gdevps.c, gdevpx.c, gdevvec.c)
13817dd7cddfSDavid du Colombier
13827dd7cddfSDavid du ColombierChanges the PostScript, EPS, and PDF writers to recognize curves and lines
13837dd7cddfSDavid du Colombierthat can be represented more efficiently.  (gdevpsdf.h, gdevpsdf.c,
13847dd7cddfSDavid du Colombiergdevps.c)
13857dd7cddfSDavid du Colombier
13867dd7cddfSDavid du ColombierAdds a new parameter to the PDF writer, FirstObjectNumber.  This defines the
13877dd7cddfSDavid du Colombierfirst object number that will be used in the output.  The default, and
13887dd7cddfSDavid du Colombierminimum, value is 1; the maximum value is approximately 2^31.  This is for
13897dd7cddfSDavid du Colombierthe benefit of dvipdf; we don't expect it to be used otherwise.  In fact,
13907dd7cddfSDavid du Colombierusing it appears to produce files that Adobe Acrobat Reader won't accept,
13917dd7cddfSDavid du Colombiereven though the files are perfectly compliant with the published PDF
13927dd7cddfSDavid du Colombierspecification.  (gdevpdfx.h, gdevpdf.c, gdevpdfp.c)
13937dd7cddfSDavid du Colombier
13943ff48bf5SDavid du Colombier</pre><h3><a name="V4.70_Platforms"></a>Platforms</h3><pre>
13957dd7cddfSDavid du Colombier
13967dd7cddfSDavid du ColombierRemoves the makefile for the 16-bit Borland C++ platform.  This was the last
13977dd7cddfSDavid du Colombiersupported 16-bit platform; we expect to gradually drop all 16-bit
13987dd7cddfSDavid du Colombierconcessions from the code itself.  (bcwin.mak)
13997dd7cddfSDavid du Colombier
14003ff48bf5SDavid du Colombier</pre><h3><a name="V4.70_Interpreter"></a>Interpreter</h3><pre>
14017dd7cddfSDavid du Colombier
14027dd7cddfSDavid du ColombierFixes bugs:
14037dd7cddfSDavid du Colombier	- The initial size of systemdict was too small, causing the
14047dd7cddfSDavid du Colombierinterpreter to slow down substantially.  (iinit.c)
14057dd7cddfSDavid du Colombier	- A library module depended on an interpreter module.  (zcsindex.c)
14067dd7cddfSDavid du Colombier	- A logically necessary (but accidentally always available) #include
14077dd7cddfSDavid du Colombierwas missing.  (ifont.h)
14087dd7cddfSDavid du Colombier
14097dd7cddfSDavid du ColombierMoves set/currentoverprint to a more appropriate module.  (zcolor2.c,
14107dd7cddfSDavid du Colombierzcssepr.c)
14117dd7cddfSDavid du Colombier
14127dd7cddfSDavid du ColombierChanges the default transfer functions so that they do something reasonable
14137dd7cddfSDavid du Colombierwhen given operands outside the legal [0..1] range.  We only do this to work
14147dd7cddfSDavid du Colombieraround a bug in FrameMaker output, which uses the transfer function as the
14157dd7cddfSDavid du Colombierscreen function (!).  (gs_init.ps)
14167dd7cddfSDavid du Colombier
14177dd7cddfSDavid du ColombierChanges the CMap construction algorithm to use the new, more compact
14187dd7cddfSDavid du Colombierrepresentation.  (zfcmap.c)
14197dd7cddfSDavid du Colombier
14207dd7cddfSDavid du ColombierAdds support for Adobe's Compact Font Format.  Many individual features are
14217dd7cddfSDavid du Colombiernot implemented yet: see the comment in the source code for details.
14227dd7cddfSDavid du Colombier(gs_cff.ps)
14237dd7cddfSDavid du Colombier
14247dd7cddfSDavid du ColombierAdds support for Type 2 charstrings in Type 1 fonts.  (ifont.h, zfont1.c)
14257dd7cddfSDavid du Colombier
14267dd7cddfSDavid du ColombierChanges the Type 1 character rendering operator for the library change in
14277dd7cddfSDavid du ColombierType 1 fonts.  (zchar1.c, zfont1.c)
14287dd7cddfSDavid du Colombier
14297dd7cddfSDavid du ColombierInitializes the graphics state limit clamp flag to true.  (zgstate.c)
14307dd7cddfSDavid du Colombier
14317dd7cddfSDavid du ColombierTemporarily adds a configuration file for the new unified printer driver,
14327dd7cddfSDavid du Colombierand arranges for it to be read at startup.  This arrangement will be
14337dd7cddfSDavid du Colombierreplaced very soon by a different one based on command line parameters.
14347dd7cddfSDavid du Colombier(gs_init.ps, uniprint.ps)
14357dd7cddfSDavid du Colombier
14363ff48bf5SDavid du Colombier</pre><h3><a name="V4.70_Interpreter_PDF"></a>Interpreter (PDF)</h3><pre>
14377dd7cddfSDavid du Colombier
14387dd7cddfSDavid du ColombierAdds support for Compact Font Format fonts.  (pdf_font.ps)
14397dd7cddfSDavid du Colombier
14403ff48bf5SDavid du Colombier</pre><h3><a name="V4.70_Streams"></a>Streams</h3><pre>
14417dd7cddfSDavid du Colombier
14427dd7cddfSDavid du ColombierAdds a glue procedure needed for the new jpeggray driver.  (sjpeg.h,
14437dd7cddfSDavid du Colombiersjpege.c)
14447dd7cddfSDavid du Colombier
14457dd7cddfSDavid du ColombierRemoves the width limit of 32K in the CCITTFaxEncode filter.  The new limit
14467dd7cddfSDavid du Colombieris absurdly large (about 50M).  (scf.h, scfx.h, scfe.c)
14477dd7cddfSDavid du Colombier
14483ff48bf5SDavid du Colombier</pre><h3><a name="V4.70_Library"></a>Library</h3><pre>
14497dd7cddfSDavid du Colombier
14507dd7cddfSDavid du ColombierFixes bugs:
14517dd7cddfSDavid du Colombier	- A library module depended on an interpreter module.  (gxcolor2.h,
14527dd7cddfSDavid du Colombiergscolor2.c)
14537dd7cddfSDavid du Colombier	- When rendering a band, clipping was sometimes used when it wasn't
14547dd7cddfSDavid du Colombiernecessary.  (Performance only.)  (gxclread.c)
14557dd7cddfSDavid du Colombier	- Stroking didn't check the path against the device clipping box in
14567dd7cddfSDavid du Colombierthe absence of an explicit (non-default) clipping path.  (Performance only.)
14577dd7cddfSDavid du Colombier(gxstroke.c)
14587dd7cddfSDavid du Colombier	- A reference to an opaque type upset a couple of compilers.
14597dd7cddfSDavid du Colombier(gxclread.c)
14607dd7cddfSDavid du Colombier	- Negative 32-bit numbers in Type 1 fonts didn't work properly on
14617dd7cddfSDavid du Colombier64-bit systems.  (gstype1.c)
14627dd7cddfSDavid du Colombier	- A logically necessary (but accidentally always available) #include
14637dd7cddfSDavid du Colombierwas missing.  (gxbitmap.h)
14647dd7cddfSDavid du Colombier	- A header wasn't protected against double inclusion.  (gxclist.h)
14657dd7cddfSDavid du Colombier	- Clipping devices didn't store their actual width and height.
14667dd7cddfSDavid du Colombier(gxcpath.c)
14677dd7cddfSDavid du Colombier	- The slow-case check for thin lines was incorrect.  (gxstroke.c)
14687dd7cddfSDavid du Colombier	- Images didn't compute their clipping boxes correctly if there
14697dd7cddfSDavid du Colombierwasn't an explicit clipping path.  (This must be a very recent bug, since it
14707dd7cddfSDavid du Colombiercreates an overflow condition that prevents monochrome images from being
14717dd7cddfSDavid du Colombierrendered at all.)  (gximage.c)
14727dd7cddfSDavid du Colombier
14737dd7cddfSDavid du ColombierMoves set/currentoverprint to a more appropriate module.  For clients of
14747dd7cddfSDavid du Colombiergs_set/currentoverprint, this is a NON-BACKWARD-COMPATIBLE CHANGE, since the
14757dd7cddfSDavid du Colombierheader file is now separate.  (gscolor2.h, gscsepr.h, gscolor2.c, gscsepr.c)
14767dd7cddfSDavid du Colombier
14777dd7cddfSDavid du ColombierReplace the MetroWerks work-around with a different, more general one.
14787dd7cddfSDavid du Colombier(gdevmem.h, gdevmem.c, gxdevice.h)
14797dd7cddfSDavid du Colombier
14807dd7cddfSDavid du ColombierSpeeds up the Type 1 interpreter a little.  (gstype1.c, gxhint3.c)
14817dd7cddfSDavid du Colombier
14827dd7cddfSDavid du ColombierRedesigns the internal representation of CMaps to be more space-efficient.
14837dd7cddfSDavid du Colombier(gxfcmap.h, gschar0.c, gsfcmap.c)
14847dd7cddfSDavid du Colombier
14857dd7cddfSDavid du ColombierImplements a facility for saving away pages and rendering them later.
14867dd7cddfSDavid du ColombierCurrently this requires the pages to be represented as band lists on files,
14877dd7cddfSDavid du Colombierand only allows X translation when rendering.  This involves adding the
14887dd7cddfSDavid du Colombierfollowing new printer device parameters:
14897dd7cddfSDavid du Colombier	BandHeight
14907dd7cddfSDavid du Colombier	BandWidth
14917dd7cddfSDavid du Colombier	BandBufferSpace
14927dd7cddfSDavid du ColombierAlso changes the names of the printer device parameter elements from
14937dd7cddfSDavid du Colombieruse_buffer_space to BufferSpace and from max_bitmap to MaxBitmap for
14947dd7cddfSDavid du Colombierconsistency.  (gdevprn.h, gxcldev.h, gxclio.h, gxclist.h, gxclmem.h,
14957dd7cddfSDavid du Colombiergxclpage.h, gxdevmem.h, gdevmem.c, gdevp2up.c, gdevprn.c, gxclmem.c,
14967dd7cddfSDavid du Colombiergxclpath.c, gxclread.c)
14977dd7cddfSDavid du Colombier
14987dd7cddfSDavid du ColombierChanges the band list implementation API to allow closing a file without
14997dd7cddfSDavid du Colombierdeleting it, and to allow reopening an existing file.  This is a
15007dd7cddfSDavid du ColombierNON-BACKWARD-COMPATIBLE change to a deep internal interface.  (gxclio.h,
15017dd7cddfSDavid du Colombiergxclmem.h, gxclfile.c, gxclist.c, gxclmem.c)
15027dd7cddfSDavid du Colombier
15037dd7cddfSDavid du ColombierSpeeds up rendering of colored halftones, by recognizing cases where one or
15047dd7cddfSDavid du Colombiermore planes don't actually require screening, unrolling a loop, and doing
15057dd7cddfSDavid du Colombierbasic clipping before halftoning.  (gxcht.c)
15067dd7cddfSDavid du Colombier
15077dd7cddfSDavid du ColombierAdds a graphics state parameter, gs_set/currentlimitclamp, that changes the
15087dd7cddfSDavid du Colombierhandling of out-of-range coordinates to clamp them in a way that produces
15097dd7cddfSDavid du Colombierapproximately the intended output most of the time, rather than causing a
15107dd7cddfSDavid du Colombierlimitcheck.  Currently this is only designed to work with the basic path
15117dd7cddfSDavid du Colombierconstruction operations ([r]moveto, [r]lineto, [r]curveto, closepath); it
15127dd7cddfSDavid du Colombierdoes not work with many other operations such as show, flattenpath or the
15137dd7cddfSDavid du Colombierrectangle operations.  Note also that while currentpoint will return the
15147dd7cddfSDavid du Colombiercorrect (unclamped) value, reading out the path with pathforall will return
15157dd7cddfSDavid du Colombierclamped values.  This involves NON-BACKWARD-COMPATIBLE changes to the path
15167dd7cddfSDavid du Colombierstructure (but not to any public interfaces).  (gxpath.h, gxtype1.h,
15177dd7cddfSDavid du Colombiergzpath.h, gzstate.h, gspath.c, gspath1.c, gsstate.c, gstype1.c, gxpaint.c,
15187dd7cddfSDavid du Colombiergxpath.c, gxpath2.c, gxpcopy.c)
15197dd7cddfSDavid du Colombier
15207dd7cddfSDavid du ColombierAdds support for Type 2 charstrings.  Some features are not implemented yet:
15217dd7cddfSDavid du Colombiersee gstype2.c for details.  (gscrypt1.h, gstype1.h, gxfont1.h, gxop1.h,
15227dd7cddfSDavid du Colombiergxtype1.h, gstype1.c, gstype2.c, gxhint2.c, gxhint3.c, gxtype1.c)
15237dd7cddfSDavid du Colombier
15243ff48bf5SDavid du Colombier</pre>
15257dd7cddfSDavid du Colombier
15263ff48bf5SDavid du Colombier<hr>
15273ff48bf5SDavid du Colombier
15283ff48bf5SDavid du Colombier<h2><a name="Version4.61"></a>Version 4.61 (limited) (3/13/97)</h2>
15293ff48bf5SDavid du Colombier
15303ff48bf5SDavid du Colombier<p>
15317dd7cddfSDavid du ColombierThis fileset cleans up many compiler warnings.  It adds support for
15327dd7cddfSDavid du ColombierCMap-encoded fonts, and a driver that writes JPEG images.
15337dd7cddfSDavid du Colombier
15343ff48bf5SDavid du Colombier<h3><a name="V4.61_Documentation"></a>Documentation</h3><pre>
15357dd7cddfSDavid du Colombier
15367dd7cddfSDavid du ColombierCorrects an error in the description of the internal CodeMap structure.
15377dd7cddfSDavid du Colombier(gs_cmap.ps)
15387dd7cddfSDavid du Colombier
15397dd7cddfSDavid du ColombierDocuments the fact that the optimizer in gcc 2.7.2.1 is broken on AXP
15407dd7cddfSDavid du Colombiermachines.  (make.txt)
15417dd7cddfSDavid du Colombier
15427dd7cddfSDavid du ColombierCorrects the name of the .setglobal/.currentglobal procedures.  (zvmem2.c)
15437dd7cddfSDavid du Colombier
15447dd7cddfSDavid du ColombierUpdates current.txt in preparation for the release.  (current.txt)
15457dd7cddfSDavid du Colombier
15463ff48bf5SDavid du Colombier</pre><h3><a name="V4.61_Procedures"></a>Procedures</h3><pre>
15477dd7cddfSDavid du Colombier
15487dd7cddfSDavid du ColombierFixes bugs:
15497dd7cddfSDavid du Colombier	- The VMS script was out of date again.  (vms.mak)
15507dd7cddfSDavid du Colombier	- CIDFont support unnecessarily required composite font support.
15517dd7cddfSDavid du Colombier(int.mak)
15527dd7cddfSDavid du Colombier	- CMap and CIDFont support had improper dependencies on
15537dd7cddfSDavid du Colombierinitialization order.  (lib.mak, int.mak)
15547dd7cddfSDavid du Colombier	- Some dependencies were missing in the JPEG library code.
15557dd7cddfSDavid du Colombier(jpeg.mak)
15567dd7cddfSDavid du Colombier
15577dd7cddfSDavid du ColombierAdds the new JPEG driver to all standard configurations.  (*.mak)
15587dd7cddfSDavid du Colombier
15593ff48bf5SDavid du Colombier</pre><h3><a name="V4.61_Drivers"></a>Drivers</h3><pre>
15607dd7cddfSDavid du Colombier
15617dd7cddfSDavid du ColombierFixes bugs:
15627dd7cddfSDavid du Colombier	- A dependency was omitted from the makefile.  (devs.mak, gdevps.c)
15637dd7cddfSDavid du Colombier
15647dd7cddfSDavid du ColombierCleans up some warnings from picky compilers.  Some of these actually
15657dd7cddfSDavid du Colombierindicated problems, such as unreachable code.  (gdevpdfx.h, gdevbj10.c,
15667dd7cddfSDavid du Colombiergdevcdj.c, gdevpdfp.c, gdevstc.c)
15677dd7cddfSDavid du Colombier
15687dd7cddfSDavid du ColombierAdds a JPEG-writing driver.  Currently this only produces RGB output and
15697dd7cddfSDavid du Colombieronly has a QFactor parameter, but eventually it could take all the other
15707dd7cddfSDavid du Colombierparameters of the DCTEncode filter.  (devs.mak, int.mak, lib.mak,
15717dd7cddfSDavid du Colombiergdevjpeg.c)
15727dd7cddfSDavid du Colombier
15737dd7cddfSDavid du ColombierRefactors the PDF and PostScript output drivers so that both of them
15747dd7cddfSDavid du Colombierunderstand all the relevant documented PDF distiller parameters.  (The
15757dd7cddfSDavid du ColombierPostScript driver currently disregards nearly all of them.)  (gdevpdfx.h,
15767dd7cddfSDavid du Colombiergdevpsdf.h, gdevvec.h, gdevpdf*.c, gdevps.c, gdevpsdf.c, gdevpx.c)
15777dd7cddfSDavid du Colombier
15783ff48bf5SDavid du Colombier</pre><h3><a name="V4.61_Platforms"></a>Platforms</h3><pre>
15797dd7cddfSDavid du Colombier
15807dd7cddfSDavid du ColombierFixes bugs:
15817dd7cddfSDavid du Colombier	- The MetroWerks C compiler gave an inexplicable error on a
15827dd7cddfSDavid du Colombierparticular initialization.  (gdevmem.h, gdevmem.c)
15837dd7cddfSDavid du Colombier
15843ff48bf5SDavid du Colombier</pre><h3><a name="V4.61_Interpreter"></a>Interpreter</h3><pre>
15857dd7cddfSDavid du Colombier
15867dd7cddfSDavid du ColombierFixes bugs:
15877dd7cddfSDavid du Colombier	- The insideness testing operators sometimes reported hits
15887dd7cddfSDavid du Colombierincorrectly.  (zupath.c)
15897dd7cddfSDavid du Colombier	- Mixed-type arithmetic used floats rather than doubles when
15907dd7cddfSDavid du Colombierconverting integers, possibly leading to loss of precision.  (zarith.c,
15917dd7cddfSDavid du Colombierzrelbit.c)
15927dd7cddfSDavid du Colombier	- composefont was defined in a private dictionary, not in
15937dd7cddfSDavid du Colombiersystemdict.  (gs_cmap.ps)
15947dd7cddfSDavid du Colombier	- composefont didn't work, for several different reasons.
15957dd7cddfSDavid du Colombier(gs_cmap.ps)
15967dd7cddfSDavid du Colombier	- After a Type 1 font called an OtherSubr, an invalid memory access
15977dd7cddfSDavid du Colombierusually occurred, because of an incorrect attempt to free a data structure.
15987dd7cddfSDavid du Colombier(zchar1.c)
15997dd7cddfSDavid du Colombier	- 2 .setlanguagelevel gave an error if globaldict hadn't been
16007dd7cddfSDavid du Colombierdefined yet.  (zmisc2.c)
16017dd7cddfSDavid du Colombier
16027dd7cddfSDavid du ColombierCleans up some warnings from picky compilers.  Some of these actually
16037dd7cddfSDavid du Colombierindicated problems, such as unreachable code, or failure to check for
16047dd7cddfSDavid du Colombier(implausible) out-of-range data.  (idict.c, idparam.c, igc.c, iinit.c,
16057dd7cddfSDavid du Colombierimain.c, iscan.c, zbseq.c, zchar1.c, zdps1.c)
16067dd7cddfSDavid du Colombier
16077dd7cddfSDavid du ColombierAdjusts clients for a change in the internal character cache structure and
16087dd7cddfSDavid du Colombierthe introduction of the font next-glyph procedure.  (zfont.c, zfont0.c)
16097dd7cddfSDavid du Colombier
16107dd7cddfSDavid du ColombierRefactors the Level 1 / Level 2 interpreter split slightly so that composite
16117dd7cddfSDavid du Colombierfonts don't require all of Level 2.  (int.mak, gs_dps1.ps, gs_dps2.ps)
16127dd7cddfSDavid du Colombier
16137dd7cddfSDavid du ColombierAdds FMapType 9 (CMap-encoded) composite font support.  (int.mak,
16147dd7cddfSDavid du Colombiergs_cmap.ps, ifont.h, zfcmap.c, zfont.c, zfont0.c)
16157dd7cddfSDavid du Colombier
16163ff48bf5SDavid du Colombier</pre><h3><a name="V4.61_Interpreter_PDF"></a>Interpreter (PDF)</h3><pre>
16177dd7cddfSDavid du Colombier
16187dd7cddfSDavid du ColombierAdds recognition of /Identity values for BG, UCR, and TR functions in
16197dd7cddfSDavid du ColombierExtGState resources.  (General function values still aren't recognized.)
16207dd7cddfSDavid du Colombier(pdf_draw.ps)
16217dd7cddfSDavid du Colombier
16227dd7cddfSDavid du ColombierCentralizes the handling of inherited attributes.  (pdf_draw.ps,
16237dd7cddfSDavid du Colombierpdf_main.ps)
16247dd7cddfSDavid du Colombier
16257dd7cddfSDavid du ColombierStarts to add support for Type 0 fonts.  (pdf_font.ps, pdf_main.ps)
16267dd7cddfSDavid du Colombier
16273ff48bf5SDavid du Colombier</pre><h3><a name="V4.61_Streams"></a>Streams</h3><pre>
16287dd7cddfSDavid du Colombier
16297dd7cddfSDavid du ColombierCleans up some warnings from picky compilers.  Some of these actually
16307dd7cddfSDavid du Colombierindicated problems, such as unreachable code.  (shc.h, scfd.c, sfilter2.c,
16317dd7cddfSDavid du Colombiersiscale.c, stream.c)
16327dd7cddfSDavid du Colombier
16333ff48bf5SDavid du Colombier</pre><h3><a name="V4.61_Library"></a>Library</h3><pre>
16347dd7cddfSDavid du Colombier
16357dd7cddfSDavid du ColombierFixes bugs:
16367dd7cddfSDavid du Colombier	- Some picky compilers disliked certain conditional expressions.
16377dd7cddfSDavid du Colombier(gxclread.c)
16387dd7cddfSDavid du Colombier	- Some picky compilers couldn't handle an extraneous semicolon.
16397dd7cddfSDavid du Colombier(gdevvec.h)
16407dd7cddfSDavid du Colombier	- A cast from byte ** to const byte ** was missing.  (gdevvec.c)
16417dd7cddfSDavid du Colombier	- Resizing the levels array of a halftone order when banding could
16427dd7cddfSDavid du Colombiercause invalid memory accesses.  (bug introduced in 4.60) (gxclread.c)
16437dd7cddfSDavid du Colombier	- One picky compiler didn't allow taking the address of an extern
16447dd7cddfSDavid du Colombierundefined structure.  (lib.mak, gxclread.c)
16457dd7cddfSDavid du Colombier	- When rendering Type 1 fonts, character overshoot was usually
16467dd7cddfSDavid du Colombiersuppressed when it shouldn't have been, often producing "squashed"
16477dd7cddfSDavid du Colombiercharacters.  (gxhint1.c)
16487dd7cddfSDavid du Colombier	- On systems where sizeof(long) &gt; sizeof(int), coordinate values of
16497dd7cddfSDavid du Colombiermore than 22 bits were passed through the band list incorrectly, producing
16507dd7cddfSDavid du Colombierincorrect output.  (gxclread.c)
16517dd7cddfSDavid du Colombier
16527dd7cddfSDavid du ColombierCleans up some warnings from picky compilers.  Some of these actually
16537dd7cddfSDavid du Colombierindicated problems, such as unreachable code or (hypothetical) loss of
16547dd7cddfSDavid du Colombierprecision.  (gsdevice.c, gshsb.c, gsht.c, gsstate.c, gstype1.c, gxclimag.c,
16557dd7cddfSDavid du Colombiergxclpath.c, gxclread.c, gxpdash.c)
16567dd7cddfSDavid du Colombier
16577dd7cddfSDavid du ColombierMakes using font hints conditional, for debugging.  (gxhint1.c)
16587dd7cddfSDavid du Colombier
16597dd7cddfSDavid du ColombierAdds library-level support for FMapType 9 (CMap-encoded) composite fonts.
16607dd7cddfSDavid du ColombierThere is still no support for rearranged fonts.  (gsccode.h, gsfcmap.h,
16617dd7cddfSDavid du Colombiergsstruct.h, gxfcache.h, gxfcmap.h, gxfont.h, gxfont0.h, gschar.c, gschar0.c,
16627dd7cddfSDavid du Colombiergsfcmap.c, gsfont.c, gsfont0.c)
16637dd7cddfSDavid du Colombier
16647dd7cddfSDavid du ColombierSplits band list control and utilities from rectangle-oriented commands,
16657dd7cddfSDavid du Colombierbecause a file was getting too big.  (gxclist.c, gxclrect.c)
16667dd7cddfSDavid du Colombier
16677dd7cddfSDavid du ColombierMoves the temporary file names for command lists from the printer device
16687dd7cddfSDavid du Colombierstructure to the command list structure; moves opening and closing the
16697dd7cddfSDavid du Colombiertemporary files from gdev_prn_alloc/free to clist_open/close.  (gdevprn.h,
16707dd7cddfSDavid du Colombiergxclist.h, gdevprn.c, gxclist.c, gxclread.c)
16717dd7cddfSDavid du Colombier
16727dd7cddfSDavid du ColombierChanges the command list storage implementation interface to pass the file
16737dd7cddfSDavid du Colombiername to the clist_rewind and clist_fseek functions, for the benefit of OSs
16747dd7cddfSDavid du Colombierthat require closing and reopening a file to switch between reading and
16757dd7cddfSDavid du Colombierwriting.  This is a NON-BACKWARD-COMPATIBLE change in a non-public
16767dd7cddfSDavid du Colombierinterface.  (gxclio.h, gxclmem.h, gxclfile.c, gxclist.c, gxclmem.c)
16777dd7cddfSDavid du Colombier
16787dd7cddfSDavid du ColombierChanges the get_outline procedure in Type 42 fonts to return the length of
16797dd7cddfSDavid du Colombierthe outline data as well as the pointer.  This is a NON-BACKWARD-COMPATIBLE
16807dd7cddfSDavid du Colombierchange in a semi-public interface.  (gxfont42.h, gstype42.c)
16817dd7cddfSDavid du Colombier
16823ff48bf5SDavid du Colombier</pre>
16837dd7cddfSDavid du Colombier
16843ff48bf5SDavid du Colombier<h2><a name="Version4.60"></a>Version 4.60 (limited) (3/2/97)</h2>
16853ff48bf5SDavid du Colombier
16863ff48bf5SDavid du Colombier<p>
16877dd7cddfSDavid du ColombierThis fileset moves color rendering up from the graphics state to the imager
16887dd7cddfSDavid du Colombierstate so that color rendering can happen after banding.  It also shifts
16897dd7cddfSDavid du Colombierimage rendering to the rendering pass of banding for many common cases
16907dd7cddfSDavid du Colombier(often referred to inaccurately as "high-level image" capability).  The
16917dd7cddfSDavid du Colombierchanges involved are substantial and in some respects subtle, so
16927dd7cddfSDavid du Colombierunfortunately it is quite possible that some new bugs have been introduced.
16937dd7cddfSDavid du Colombier
16943ff48bf5SDavid du Colombier<p>
16957dd7cddfSDavid du ColombierThis fileset also includes improvements to the new PCL XL driver
16967dd7cddfSDavid du Colombier(pxlmono/color), and introduces an experimental PostScript driver (pswrite).
16977dd7cddfSDavid du Colombier
16983ff48bf5SDavid du Colombier<h3><a name="V4.60_Documentation"></a>Documentation</h3><pre>
16997dd7cddfSDavid du Colombier
17007dd7cddfSDavid du ColombierFixes bugs:
17017dd7cddfSDavid du Colombier	- The argument list of colorimage was incorrect.  (zcolor1.c)
17027dd7cddfSDavid du Colombier	- false .charboxpath incorrectly claimed to create the correct path
17037dd7cddfSDavid du Colombiereven when the CTM was not well-behaved.  (language.txt)
17047dd7cddfSDavid du Colombier	- The discussion of the "main program" files was out of date.
17057dd7cddfSDavid du Colombier(make.txt)
17067dd7cddfSDavid du Colombier
17077dd7cddfSDavid du ColombierUpdates the OS/2 EMX documentation.  (make.txt)
17087dd7cddfSDavid du Colombier
17097dd7cddfSDavid du ColombierModifies the Aladdin Ghostscript Free Public License slightly so it may be
17107dd7cddfSDavid du Colombierapplied to other software packages.  (PUBLIC)
17117dd7cddfSDavid du Colombier
17127dd7cddfSDavid du ColombierUpdates inaccurate build documentation for several Unix platforms.
17137dd7cddfSDavid du Colombier(make.txt, ansihead.mak, cc-head.mak, gcc-head.mak, libpng.mak)
17147dd7cddfSDavid du Colombier
17157dd7cddfSDavid du ColombierNotes a problem with the MIPSpro 7.1 compiler.  (make.txt)
17167dd7cddfSDavid du Colombier
17173ff48bf5SDavid du Colombier</pre><h3><a name="V4.60_Procedures"></a>Procedures</h3><pre>
17187dd7cddfSDavid du Colombier
17197dd7cddfSDavid du ColombierFixes bugs:
17207dd7cddfSDavid du Colombier	- Most makefiles didn't include version.mak.  (msc.mak,
17217dd7cddfSDavid du Colombiermsvcwint.mak, os2.mak, tctail.mak, wctail.mak)
17227dd7cddfSDavid du Colombier	- There was an incorrect dependency for the Windows printer device.
17237dd7cddfSDavid du Colombier(devs.mak)
17247dd7cddfSDavid du Colombier
17257dd7cddfSDavid du ColombierMoves the PDF writer to devs.mak.  (devs.mak, int.mak)
17267dd7cddfSDavid du Colombier
17277dd7cddfSDavid du ColombierUpdates the main VMS script to be structured like version.mak.  (vms.mak)
17287dd7cddfSDavid du Colombier
17293ff48bf5SDavid du Colombier</pre><h3><a name="V4.60_Drivers"></a>Drivers</h3><pre>
17307dd7cddfSDavid du Colombier
17317dd7cddfSDavid du ColombierFactors out the stream-writing procedures from the PDF writer, so they can
17327dd7cddfSDavid du Colombierbe shared with the new PostScript writer.  (gdevpdfs.h =&gt; gdevpstr.h,
17337dd7cddfSDavid du Colombiergdevpdfx.h, gdevpsdf.h, gdevpdf.c, gdevpdfi.c, gdevpdfs.c =&gt; gdevpstr.c,
17347dd7cddfSDavid du Colombiergdevpdft.c, gdevpsdf.c)
17357dd7cddfSDavid du Colombier
17367dd7cddfSDavid du ColombierAdds a PostScript writer (pswrite), similar to the PDF and PCL XL drivers.
17377dd7cddfSDavid du ColombierCurrently this handles fill/stroke graphics and Level 1 images; everything
17387dd7cddfSDavid du Colombierelse (including text) is turned into bitmaps.  (devs.mak, gdevps.c)
17397dd7cddfSDavid du Colombier
17407dd7cddfSDavid du ColombierChanges the names of the PCL XL drivers from hpxmono/color to pxlmono/color.
17417dd7cddfSDavid du Colombier(devs.mak, gdevpx.c)
17427dd7cddfSDavid du Colombier
17437dd7cddfSDavid du ColombierUpdates the "vector" device support interface.  THIS IS STILL SUBJECT TO
17447dd7cddfSDavid du ColombierCHANGE WITHOUT NOTICE.  (gdevvec.h, gdevpx.c, gdevvec.c)
17457dd7cddfSDavid du Colombier
17467dd7cddfSDavid du ColombierMakes the vgalib driver a page device.  This seems bizarre, but it's
17477dd7cddfSDavid du Colombiernecessary for setpagedevice to work with it.  (gdevvglb.c)
17487dd7cddfSDavid du Colombier
17497dd7cddfSDavid du ColombierUpdates some drivers for the new color mapping interfaces.  (gdevpx.c)
17507dd7cddfSDavid du Colombier
17517dd7cddfSDavid du ColombierUpdates the user-contributed Canon LBP-8II and LIPS III driver.
17527dd7cddfSDavid du Colombier(gdevlbp8.c)
17537dd7cddfSDavid du Colombier
17543ff48bf5SDavid du Colombier</pre><h3><a name="V4.60_Platforms"></a>Platforms</h3><pre>
17557dd7cddfSDavid du Colombier
17567dd7cddfSDavid du ColombierFixes bugs:
17577dd7cddfSDavid du Colombier	- The workaround for Ultrix's incorrect implementation of sh -e
17587dd7cddfSDavid du Colombierstill didn't work.  (unixtail.mak)
17597dd7cddfSDavid du Colombier	- The definition of offset_of didn't work on the Mac.  (stdpre.h)
17607dd7cddfSDavid du Colombier
17617dd7cddfSDavid du ColombierUpdates the OS/2 EMX linker command per input from a user.  (os2.mak)
17627dd7cddfSDavid du Colombier
17633ff48bf5SDavid du Colombier</pre><h3><a name="V4.60_Fonts"></a>Fonts</h3><pre>
17647dd7cddfSDavid du Colombier
17657dd7cddfSDavid du ColombierAdds .pss (apparently used by Adobe for Multiple Master font instances) to
17667dd7cddfSDavid du Colombierthe list of extensions skipped by the GS_FONTPATH directory scanner.
17677dd7cddfSDavid du Colombier(gs_fonts.ps)
17687dd7cddfSDavid du Colombier
17693ff48bf5SDavid du Colombier</pre><h3><a name="V4.60_Interpreter"></a>Interpreter</h3><pre>
17707dd7cddfSDavid du Colombier
17717dd7cddfSDavid du ColombierFixes bugs:
17727dd7cddfSDavid du Colombier	- Programs that rebind null, true, and/or false could cause all
17737dd7cddfSDavid du Colombierkinds of problems.  We've only fixed a couple of the places that might be
17747dd7cddfSDavid du Colombieraffected (findfont, quit), by wrapping an explicit "systemdict begin/end"
17757dd7cddfSDavid du Colombieraround the code; fixing this completely would probably require wrapping this
17767dd7cddfSDavid du Colombierimplicitly around almost every pseudo-operator, which would be too
17777dd7cddfSDavid du Colombierexpensive.  (gs_fonts.ps, gs_lev2.ps)
17787dd7cddfSDavid du Colombier	- In a Level 2 system, grestoreall stopped one level too early.
17797dd7cddfSDavid du Colombier(zdevice2.c)
17807dd7cddfSDavid du Colombier	- setpagedevice didn't restore the stack properly if it got an
17817dd7cddfSDavid du Colombiererror.  (gs_setpd.ps)
17827dd7cddfSDavid du Colombier
17837dd7cddfSDavid du ColombierChanges the GC pointer enumeration interface to reduce the number of
17847dd7cddfSDavid du Colombier'discarding const' warnings.  See under Library below.  (igc.c)
17857dd7cddfSDavid du Colombier
17867dd7cddfSDavid du ColombierUpdates the interpreter for the change in the imager / graphics state split.
17877dd7cddfSDavid du Colombier(zpcolor.c)
17887dd7cddfSDavid du Colombier
17897dd7cddfSDavid du ColombierMakes the stack-restoring behavior of pseudo-operators non-optional.
17907dd7cddfSDavid du Colombier(interp.c)
17917dd7cddfSDavid du Colombier
17923ff48bf5SDavid du Colombier</pre><h3><a name="V4.60_Interpreter_PDF"></a>Interpreter (PDF)</h3><pre>
17937dd7cddfSDavid du Colombier
17947dd7cddfSDavid du ColombierFixes bugs:
17957dd7cddfSDavid du Colombier	- PDFDocEncoding and WinAnsiEncoding incorrectly had `minus' at
17967dd7cddfSDavid du Colombierposition 45 rather than `hyphen'.  (gs_pdf_e.ps, gs_wan_e.ps)
17977dd7cddfSDavid du Colombier
17983ff48bf5SDavid du Colombier</pre><h3><a name="V4.60_Streams"></a>Streams</h3><pre>
17997dd7cddfSDavid du Colombier
18007dd7cddfSDavid du ColombierFixes bugs:
18017dd7cddfSDavid du Colombier	- A header file wasn't protected against double inclusion.
18027dd7cddfSDavid du Colombier(stream.h)
18037dd7cddfSDavid du Colombier	- any_abs was redefined.  (spngp.c)
18047dd7cddfSDavid du Colombier	- The CCITTFaxDecode filter didn't fully initialize the "previous
18057dd7cddfSDavid du Colombierline" for 2-D decoding, so if the very first line of data was 2-D, an
18067dd7cddfSDavid du Colombierout-of-bounds memory access could occur.  (scfd.c)
18077dd7cddfSDavid du Colombier
18083ff48bf5SDavid du Colombier</pre><h3><a name="V4.60_Library"></a>Library</h3><pre>
18097dd7cddfSDavid du Colombier
18107dd7cddfSDavid du ColombierFixes bugs:
18117dd7cddfSDavid du Colombier	- gs_image_next could read too much data, causing errors at the
18127dd7cddfSDavid du Colombierinterpreter level.  (gsimage.c)
18137dd7cddfSDavid du Colombier	- The bitmaps stored in the Pattern cache were usually freed,
18147dd7cddfSDavid du Colombierleaving dangling pointers.  (gsdcolor.h, gxpcache.h, gxpcolor.h, gsstate.c,
18157dd7cddfSDavid du Colombiergxpcmap.c)
18167dd7cddfSDavid du Colombier	- There was still one assignment to a const structure, and there
18177dd7cddfSDavid du Colombierwere some unnecessary const-discarding casts.  (gxclread.c)
18187dd7cddfSDavid du Colombier	- If a character in a Type 3 font was defined by executing 'show'
18197dd7cddfSDavid du Colombiertype commands, charpath did the wrong thing (didn't pick up the paths
18207dd7cddfSDavid du Colombiercreated by the inner show).  Similarly, if it uses 'stroke', true charpath
18217dd7cddfSDavid du Colombierdid the wrong thing (appended the path rather than the strokepath path).
18227dd7cddfSDavid du Colombier(gxchar.h, gschar.c, gspaint.c)
18237dd7cddfSDavid du Colombier	- A header file wasn't protected against double inclusion.
18247dd7cddfSDavid du Colombier(gserror.h)
18257dd7cddfSDavid du Colombier	- The new fast implementation of rectfill didn't handle rectangles
18267dd7cddfSDavid du Colombierwith negative width/height.  (bug introduced in 4.32) (gsdps1.c)
18277dd7cddfSDavid du Colombier	- Reading banded high-level images calculated the image height
18287dd7cddfSDavid du Colombierincorrectly, (usually) causing a rangecheck.  (gxclread.c)
18297dd7cddfSDavid du Colombier	- When reading band data, a memory fault could occur if the halftone
18307dd7cddfSDavid du Colombiercache hadn't been allocated yet.  (gxht.c)
18317dd7cddfSDavid du Colombier	- The imager state data for high-level images wasn't written soon
18327dd7cddfSDavid du Colombierenough.  (gxclimag.c)
18337dd7cddfSDavid du Colombier	- High-level images computed bounding boxes incorrectly, so they
18347dd7cddfSDavid du Colombiercould write some garbage data in the band list, and could also fail to write
18357dd7cddfSDavid du Colombiersome information.  (gsmatrix.h, gxmatrix.h, gxclimag.c)
18367dd7cddfSDavid du Colombier	- High-level images wrote the raster value incorrectly in the band
18377dd7cddfSDavid du Colombierlist.  (gxclimag.c)
18387dd7cddfSDavid du Colombier	- Images with non-zero initial source X and non-portrait orientation
18397dd7cddfSDavid du Colombierwere displaced on the page.  (In practice, this only applied to some banded
18407dd7cddfSDavid du Colombierhigh-level images.)  (gximage.c)
18417dd7cddfSDavid du Colombier	- The bounding box device didn't forward output_page calls, causing
18427dd7cddfSDavid du Colombierpages to be dropped or overprinted.  (gdevbbox.c)
18437dd7cddfSDavid du Colombier	- The band renderer considered all non-zero return codes as errors,
18447dd7cddfSDavid du Colombierrather than only negative codes.  (gxclread.c)
18457dd7cddfSDavid du Colombier	- An unnecessary extern hadn't been removed.  (gxclimag.c)
18467dd7cddfSDavid du Colombier	- Some macros didn't parenthesize uses of their arguments, causing
18477dd7cddfSDavid du Colombiersyntax errors.  (gsrefct.h)
18487dd7cddfSDavid du Colombier	- The screen phase and color_info weren't set correctly when
18497dd7cddfSDavid du Colombierrendering bands.  (gsstate.h, gsht.c, gxclread.c)
18507dd7cddfSDavid du Colombier	- A header file didn't declare all the opaque types it used.
18517dd7cddfSDavid du Colombier(gsdevice.h)
18527dd7cddfSDavid du Colombier	- Indexed color spaces didn't work with banded images.  (They still
18537dd7cddfSDavid du Colombierdon't -- the check for writing the color space, and the code for reading the
18547dd7cddfSDavid du Colombiertable or map, are incomplete.)  (gxclist.h, gxclpath.h, gxclimag.c,
18557dd7cddfSDavid du Colombiergxclpath.c, gxclread.c)
18567dd7cddfSDavid du Colombier
18577dd7cddfSDavid du ColombierIn preparation for implementing post-banding halftoning:
18587dd7cddfSDavid du Colombier
18597dd7cddfSDavid du Colombier	- Moves color rendering information, including alpha value, from
18607dd7cddfSDavid du Colombiergraphics state to imager state; also moves the allocator pointer.  This is
18617dd7cddfSDavid du Colombierquite a subtle change, and may have a significant bug tail.  (gxdcolor.h,
18627dd7cddfSDavid du Colombiergxht.h, gxistate.h, gzstate.h, gschar.c, gsdps1.c, gspaint.c, gsstate.c,
18637dd7cddfSDavid du Colombiergxclread.c)
18647dd7cddfSDavid du Colombier
18657dd7cddfSDavid du Colombier	- Changes all the relevant color space and color mapping procedures
18667dd7cddfSDavid du Colombierso they take a const gs_imager_state * (and, in some cases, a [const]
18677dd7cddfSDavid du Colombiergx_device *) instead of a const gs_state *.  This is a
18687dd7cddfSDavid du Colombiernon-backward-compatible change, but it only affects internal interfaces.
18697dd7cddfSDavid du Colombier(gsdcolor.h, gxcmap.h, gxcspace.h, gxdcconv.h, gxdcolor.h, gxdither.h,
18707dd7cddfSDavid du Colombiergxpcolor.h, gzht.h, gschar.c, gscie.c, gscolor.c, gscolor1.c, gscolor2.c,
18717dd7cddfSDavid du Colombiergscsepr.c, gsdevice.c, gsimage.c, gspcolor.c, gxcht.c, gxcmap.c, gxdcconv.c,
18727dd7cddfSDavid du Colombiergxdcolor.c, gxht.c, gximage.c, gximage[2345].c, gxpcmap.c)
18737dd7cddfSDavid du Colombier
18747dd7cddfSDavid du Colombier	- Changes the color and color space reference count adjustment
18757dd7cddfSDavid du Colombierprocedures similarly, to take a gs_memory_t * instead of a gs_state_t *.
18767dd7cddfSDavid du Colombier(gxcspace.h, gscie.c, gscolor.c, gscolor2.c, gscsepr.c, gspcolor.c)
18777dd7cddfSDavid du Colombier
18787dd7cddfSDavid du Colombier	- Changes the gs_halftone in the graphics state from being part of
18797dd7cddfSDavid du Colombierthe gs_state_contents to being an independent reference-counted object.
18807dd7cddfSDavid du ColombierThis too may have a significant bug tail.  (gxht.h, gxistate.h, gsht.c,
18817dd7cddfSDavid du Colombiergsstate.c)
18827dd7cddfSDavid du Colombier
18837dd7cddfSDavid du Colombier	- Changes the image processing code so it no longer assumes that the
18847dd7cddfSDavid du Colombiergs_imager_state is actually a gs_state.  (gximage.h, gximage.c, gximage2.c,
18857dd7cddfSDavid du Colombiergximage3.c, gximage4.c, gximage5.c)
18867dd7cddfSDavid du Colombier
18877dd7cddfSDavid du Colombier	- Adds a unique ID value to device halftones, so that it's possible
18887dd7cddfSDavid du Colombierto detect (non-)changes quickly.  (gxdht.h, gsht.c)
18897dd7cddfSDavid du Colombier
18907dd7cddfSDavid du ColombierFinishes the code for writing and reading color rendering information in the
18917dd7cddfSDavid du Colombierband list.  This involves changes to several band list opcodes.  (gsht.h,
18927dd7cddfSDavid du Colombiergsht1.h, gxcldev.h, gxclist.h, gxclpath.h, gxdht.h, gzht.h, gsht.c, gsht1.c,
18937dd7cddfSDavid du Colombiergxclbits.c, gxclimag.c, gxclist.c, gxclread.c)
18947dd7cddfSDavid du Colombier
18957dd7cddfSDavid du ColombierChanges the garbage collector pointer enumeration procedure interface
18967dd7cddfSDavid du Colombierslightly to reduce the number of 'discarding const' warnings.  THIS IS A
18977dd7cddfSDavid du ColombierNON-BACKWARD-COMPATIBLE CHANGE for anyone who didn't use the
18987dd7cddfSDavid du ColombierENUM_PTRS_BEGIN[_PROC] macro to start a pointer enumeration procedure (which
18997dd7cddfSDavid du Colombiershould be no one).  (gsstruct.h, gsmemory.c)
19007dd7cddfSDavid du Colombier
19017dd7cddfSDavid du ColombierCorrects a few more needlessly const-discarding casts.  (gxfcache.h,
19027dd7cddfSDavid du Colombiergxccache.c)
19037dd7cddfSDavid du Colombier
19047dd7cddfSDavid du ColombierChecks for file reading errors when rasterizing bands.  (gxclread.c)
19057dd7cddfSDavid du Colombier
19063ff48bf5SDavid du Colombier</pre>
19077dd7cddfSDavid du Colombier
19083ff48bf5SDavid du Colombier<hr>
19093ff48bf5SDavid du Colombier
19103ff48bf5SDavid du Colombier<h2><a name="Version4.51"></a>Version 4.51 (limited) (2/9/97)</h2>
19113ff48bf5SDavid du Colombier
19123ff48bf5SDavid du Colombier<p>
19137dd7cddfSDavid du ColombierThis version contains a more reasonable high-level PCL XL driver.  The VMS
19147dd7cddfSDavid du Colombierbuild script is working again, we think.
19157dd7cddfSDavid du Colombier
19163ff48bf5SDavid du Colombier<h3><a name="V4.51_Procedures"></a>Procedures</h3><pre>
19177dd7cddfSDavid du Colombier
19187dd7cddfSDavid du ColombierFixes bugs:
19197dd7cddfSDavid du Colombier	- The gsdll_h macro wasn't defined all the places it was needed.
19207dd7cddfSDavid du Colombier(devs.mak, os2.mak)
19217dd7cddfSDavid du Colombier
19223ff48bf5SDavid du Colombier</pre><h3><a name="V4.51_Drivers"></a>Drivers</h3><pre>
19237dd7cddfSDavid du Colombier
19247dd7cddfSDavid du ColombierContinues to develop the "vector" driver infrastructure and the PCL XL
19257dd7cddfSDavid du Colombierdriver.  EVERYTHING IN THESE FILES IS SUBJECT TO CHANGE WITHOUT NOTICE.
19267dd7cddfSDavid du Colombier(gdevvec.h, gdevvec.c)
19277dd7cddfSDavid du Colombier
19287dd7cddfSDavid du ColombierBrings the PCL XL driver up to usable quality for graphics.  Most
19297dd7cddfSDavid du Colombierfill/stroke graphics, and portrait-orientation bitmap images up to 8 bits
19307dd7cddfSDavid du Colombierper pixel, are converted directly to their PCL XL equivalents.  Text is
19317dd7cddfSDavid du Colombierstill treated as bitmaps.  Both gray-scale and color output are now
19327dd7cddfSDavid du Colombiersupported.  (devs.mak, gdevpx.c)
19337dd7cddfSDavid du Colombier
19343ff48bf5SDavid du Colombier</pre><h3><a name="V4.51_Platforms"></a>Platforms</h3><pre>
19357dd7cddfSDavid du Colombier
19367dd7cddfSDavid du ColombierFixes bugs:
19377dd7cddfSDavid du Colombier	- When using gsos2.exe with gsdll2.dll, reducing the size of the
19387dd7cddfSDavid du Colombierpage bitmap caused a limitcheck error with the message
19397dd7cddfSDavid du Colombier    Failed to decommit memory in pm_alloc_bitmap, rc = 87  (gdevpm.c)
19407dd7cddfSDavid du Colombier	- The scripts that construct gconfig_.h failed on Ultrix, because
19417dd7cddfSDavid du ColombierUltrix's implementation of sh -e is incorrect.  (unixtail.mak, ugcclib.mak)
19427dd7cddfSDavid du Colombier	- Some systems that have sys/times.h don't define CLK_TCK, making a
19437dd7cddfSDavid du Colombiercompilation fail.  (time_.h)
19447dd7cddfSDavid du Colombier
19453ff48bf5SDavid du Colombier</pre><h3><a name="V4.51_Interpreter"></a>Interpreter</h3><pre>
19467dd7cddfSDavid du Colombier
19477dd7cddfSDavid du ColombierFixes bugs:
19487dd7cddfSDavid du Colombier	- An omitted semicolon wasn't detected by gcc.  (idict.c)
19497dd7cddfSDavid du Colombier
19507dd7cddfSDavid du ColombierRemoves a source of unnecessary duplication by getting the revision number
19517dd7cddfSDavid du Colombierand date from version.mak.  (gs.mak, int.mak, version.mak, gscdef.c)
19527dd7cddfSDavid du Colombier
19533ff48bf5SDavid du Colombier</pre><h3><a name="V4.51_Streams"></a>Streams</h3><pre>
19547dd7cddfSDavid du Colombier
19557dd7cddfSDavid du ColombierFixes bugs:
19567dd7cddfSDavid du Colombier	- The minimum buffer sizes for the RunLengthDecode filter hadn't
19577dd7cddfSDavid du Colombierbeen changed to reflect the algorithm improvement made in release 4.38.
19587dd7cddfSDavid du Colombier(srld.c)
19597dd7cddfSDavid du Colombier
19607dd7cddfSDavid du ColombierChanges the RunLengthEncode filter so it can make progress with only a
19617dd7cddfSDavid du Colombier2-byte output buffer.  (srlx.h, srle.c)
19627dd7cddfSDavid du Colombier
19633ff48bf5SDavid du Colombier</pre><h3><a name="V4.51_Library"></a>Library</h3><pre>
19647dd7cddfSDavid du Colombier
19657dd7cddfSDavid du ColombierFixes bugs:
19667dd7cddfSDavid du Colombier	- Because of a typo, the slow general algorithm was always used for
19677dd7cddfSDavid du Colombiermonochrome images.  (Performance bug only, but a serious one.)  (gximage2.c)
19687dd7cddfSDavid du Colombier	- Dots (zero-length lines with round caps and zero dot length)
19697dd7cddfSDavid du Colombiercaused an infinite loop.  (bug introduced in 4.40)  (gxstroke.c)
19707dd7cddfSDavid du Colombier	- Some image data unpacking procedures were always required, but
19717dd7cddfSDavid du Colombierweren't always included.  (bug introduced in 4.50) (gximage.c, gximage0.c,
19727dd7cddfSDavid du Colombiergximage3.c)
19737dd7cddfSDavid du Colombier	- Images with 8 bits per pixel and non-identity Decode produced
19747dd7cddfSDavid du Colombiergarbage.  (bug introduced later than 4.03) (gximage0.c)
19757dd7cddfSDavid du Colombier	- Some necessary casts and omitted punctuation weren't detected by
19767dd7cddfSDavid du Colombiergcc.  (gxpath.h, gsargs.c, gsstate.c, gxclread.c, gxpdash.c)
19777dd7cddfSDavid du Colombier	- The band list became confused if a band had no commands at all.
19787dd7cddfSDavid du Colombier(gxclread.c)
19797dd7cddfSDavid du Colombier	- If a path included a closepath followed by a moveto to the same
19807dd7cddfSDavid du Colombierpoint, it could be written incorrectly in the band list.  (bug probably
19817dd7cddfSDavid du Colombierintroduced in 3.60) (gxclpath.c)
19827dd7cddfSDavid du Colombier
19837dd7cddfSDavid du ColombierChanges some internal computations for arcs from float to double for greater
19847dd7cddfSDavid du Colombieraccuracy.  (gspath1.c)
19857dd7cddfSDavid du Colombier
19863ff48bf5SDavid du Colombier</pre>
19877dd7cddfSDavid du Colombier
19883ff48bf5SDavid du Colombier<h2><a name="Version4.50"></a>Version 4.50 (limited) (1/31/97)</h2>
19893ff48bf5SDavid du Colombier
19903ff48bf5SDavid du Colombier<p>
19917dd7cddfSDavid du ColombierThis release contains an experimental high-level PCL XL driver, a little
19927dd7cddfSDavid du Colombiermore support for CID/CMap fonts, and the usual bug fixes.  NOTE: the VMS
19937dd7cddfSDavid du Colombierbuild script is known to be out of sync with the makefiles again; we still
19947dd7cddfSDavid du Colombierdon't see any alternative to constant struggles with this problem.
19957dd7cddfSDavid du Colombier
19963ff48bf5SDavid du Colombier<h3><a name="V4.50_Documentation"></a>Documentation</h3><pre>
19977dd7cddfSDavid du Colombier
19987dd7cddfSDavid du ColombierCorrects the -h message, which gave an incorrect file name for the bug
19997dd7cddfSDavid du Colombierreport form.  (imainarg.c)
20007dd7cddfSDavid du Colombier
20017dd7cddfSDavid du ColombierRemoves documentation for 16-bit MS-DOS platforms with the Borland compiler.
20027dd7cddfSDavid du Colombier(fonts.txt, make.txt, new-user.txt, use.txt)
20037dd7cddfSDavid du Colombier
20043ff48bf5SDavid du Colombier</pre><h3><a name="V4.50_Procedures"></a>Procedures</h3><pre>
20057dd7cddfSDavid du Colombier
20067dd7cddfSDavid du ColombierFixes bugs:
20077dd7cddfSDavid du Colombier	- The Watcom library makefile didn't define the directory
20087dd7cddfSDavid du Colombierinformation for libpng and zlib.  (watclib.mak)
20097dd7cddfSDavid du Colombier
20107dd7cddfSDavid du ColombierMoves the selection of band list implementation (file- vs. RAM-based) and
20117dd7cddfSDavid du Colombierthe compression filter for RAM-based band lists up to the top-level
20127dd7cddfSDavid du Colombiermakefiles.  Again, this is a NON-BACKWARD-COMPATIBLE procedure change.
20137dd7cddfSDavid du Colombier(lib.mak, *.mak)
20147dd7cddfSDavid du Colombier
20157dd7cddfSDavid du ColombierMoves the selection of version number for all platforms (except VMS, as
20167dd7cddfSDavid du Colombierusual) to a separate file.  This will reduce the number of files that need
20177dd7cddfSDavid du Colombierediting when the version number changes.  (ansihead.mak, cc-head.mak,
20187dd7cddfSDavid du Colombiergcc-head.mak, ugcclib.mak, version.mak, tar_cat)
20197dd7cddfSDavid du Colombier
20203ff48bf5SDavid du Colombier</pre><h3><a name="V4.50_Drivers"></a>Drivers</h3><pre>
20217dd7cddfSDavid du Colombier
20227dd7cddfSDavid du ColombierFixes bugs:
20237dd7cddfSDavid du Colombier	- An error in the (unsupported) SGI RGB driver could cause crashes
20247dd7cddfSDavid du Colombieror incorrect output.  (gdevsgi.c)
20257dd7cddfSDavid du Colombier
20267dd7cddfSDavid du ColombierStarts to create a framework for structured output ("vector") drivers (PDF,
20277dd7cddfSDavid du ColombierPostScript, PCL XL, etc.)  (gdevbbox.h, gdevvec.h, gsdcolor.h, gsstruct.h,
20287dd7cddfSDavid du Colombiergxdevice.h, gdevvec.c)
20297dd7cddfSDavid du Colombier
20307dd7cddfSDavid du ColombierMoves default page size parameters to a more accessible header.  (gdevprn.h,
20317dd7cddfSDavid du Colombiergxdevice.h, gdevx.c)
20327dd7cddfSDavid du Colombier
20337dd7cddfSDavid du ColombierAdds a driver that produces properly structured PCL XL output.  This is
20347dd7cddfSDavid du Colombierhighly experimental and not ready for use yet.  (gdevpx.c)
20357dd7cddfSDavid du Colombier
20363ff48bf5SDavid du Colombier</pre><h3><a name="V4.50_Platforms"></a>Platforms</h3><pre>
20377dd7cddfSDavid du Colombier
20387dd7cddfSDavid du ColombierRemoves support for 16-bit MS-DOS platforms with the Borland compiler.  For
20397dd7cddfSDavid du Colombierthe moment, 16-bit MS Windows is still supported.  (bc.mak, bcflags.mak,
20407dd7cddfSDavid du Colombierbclib.mak, tc.mak)
20417dd7cddfSDavid du Colombier
20423ff48bf5SDavid du Colombier</pre><h3><a name="V4.50_Interpreter"></a>Interpreter</h3><pre>
20437dd7cddfSDavid du Colombier
20447dd7cddfSDavid du ColombierFixes bugs:
20457dd7cddfSDavid du Colombier	- File-based CIDFonts (with delayed, incremental loading of
20467dd7cddfSDavid du Colombiercharacter outlines) didn't work.  (gs_cidfn.ps)
20477dd7cddfSDavid du Colombier
20487dd7cddfSDavid du ColombierFinishes implementing the definition of CMap resources, except for
20497dd7cddfSDavid du Colombierrearranged fonts.  (gs_cidfn.ps, gs_cmap.ps)
20507dd7cddfSDavid du Colombier
20517dd7cddfSDavid du ColombierAdds a little more CMap support code.  (zcid.c)
20527dd7cddfSDavid du Colombier
20537dd7cddfSDavid du ColombierRemoves the .setcurrentfile operator, since it doesn't solve the problem it
20547dd7cddfSDavid du Colombierwas intended to address.  (zcontrol.c)
20557dd7cddfSDavid du Colombier
20567dd7cddfSDavid du ColombierAdapts the interpreter to use the new argument processing code.
20577dd7cddfSDavid du Colombier(imainarg.c)
20587dd7cddfSDavid du Colombier
20593ff48bf5SDavid du Colombier</pre><h3><a name="V4.50_Streams"></a>Streams</h3><pre>
20607dd7cddfSDavid du Colombier
20617dd7cddfSDavid du ColombierFixes bugs:
20627dd7cddfSDavid du Colombier	- The CCITTFaxDecode filter could access as much as 3 bytes beyond
20637dd7cddfSDavid du Colombierthe end of a buffer, causing an invalid memory access.  (This is essentially
20647dd7cddfSDavid du Colombierthe same bug that was fixed for the CCITTFaxEncode filter in 4.38.)
20657dd7cddfSDavid du Colombier(scfd.c)
20667dd7cddfSDavid du Colombier
20673ff48bf5SDavid du Colombier</pre><h3><a name="V4.50_Library"></a>Library</h3><pre>
20687dd7cddfSDavid du Colombier
20697dd7cddfSDavid du ColombierFixes bugs:
20707dd7cddfSDavid du Colombier	- Painting an image without having set up any halftone could cause a
20717dd7cddfSDavid du Colombiercrash.  (gxht.c)
20727dd7cddfSDavid du Colombier	- In a very obscure case, an occasional scan line of landscape
20737dd7cddfSDavid du Colombierimages could get corrupted.  (gximage0.c)
20747dd7cddfSDavid du Colombier	- Because of a rounding error, patterns could fail to be painted in
20757dd7cddfSDavid du Colombiercertain cases.  (gxpcolor.h, gspcolor.c, gxpcmap.c)
20767dd7cddfSDavid du Colombier	- Very large line widths or miter limits could cause the computation
20777dd7cddfSDavid du Colombierof stroke expansion to overflow.  (gxpaint.h, gdevbbox.c, gxclpath.c,
20787dd7cddfSDavid du Colombiergxstroke.c)
20797dd7cddfSDavid du Colombier	- The phase could be incorrect for simple patterns.  (gspcolor.c)
20807dd7cddfSDavid du Colombier	- The default implementation of copy_mono used an incorrect
20817dd7cddfSDavid du ColombierRasterOp.  (gdevdflt.c)
20827dd7cddfSDavid du Colombier	- The default implementation of fill_masked didn't increment the row
20837dd7cddfSDavid du Colombierpointer, causing characters to appear as solid rectangular blocks.
20847dd7cddfSDavid du Colombier(gxdcolor.c)
20857dd7cddfSDavid du Colombier
20867dd7cddfSDavid du ColombierEliminates an unnecessary gsave and grestore from rectfill and rectstroke if
20877dd7cddfSDavid du Colombierthe path was null.  (gsdps1.c)
20887dd7cddfSDavid du Colombier
20897dd7cddfSDavid du ColombierAdds a limit on the amount of space that the default (C heap) allocator will
20907dd7cddfSDavid du Colombierallocate, and a record of the maximum amount allocated, to help testing
20917dd7cddfSDavid du Colombierembedded products.  (gsmemory.c)
20927dd7cddfSDavid du Colombier
20937dd7cddfSDavid du ColombierChanges the band list algorithm for deciding how many replicas of a halftone
20947dd7cddfSDavid du Colombiertile to store in the tile cache.  The previous algorithm was too liberal,
20957dd7cddfSDavid du Colombierwhich could cause the cache to overflow and many unnecessary bitmaps to be
20967dd7cddfSDavid du Colombierwritten in the band list.  (gxclbits.c)
20977dd7cddfSDavid du Colombier
20987dd7cddfSDavid du ColombierWrites clipping with a rectangle more compactly in the band list.
20997dd7cddfSDavid du Colombier(gxfixed.h, gxclpath.c)
21007dd7cddfSDavid du Colombier
21017dd7cddfSDavid du ColombierAdds new band list commands for representing 90- and 180-degree arcs
21027dd7cddfSDavid du Colombiercompactly.  (gxclpath.h, gxclpath.c, gxclread.c)
21037dd7cddfSDavid du Colombier
21047dd7cddfSDavid du ColombierRepackages handling of general monochrome images, color images, and 12-bit
21057dd7cddfSDavid du Colombierand interpolated images, so that they are included optionally rather than in
21067dd7cddfSDavid du Colombierall configurations.  (int.mak, lib.mak, gximage.h, gximage.c,
21077dd7cddfSDavid du Colombiergximage[12345].c)
21087dd7cddfSDavid du Colombier
21097dd7cddfSDavid du ColombierChanges the structure definition for devices to include no-op pointer
21107dd7cddfSDavid du Colombierenumeration and relocation, so they can have subclasses.  (gxdevice.h)
21117dd7cddfSDavid du Colombier
21127dd7cddfSDavid du ColombierAdds a library facility for processing command line arguments with
21137dd7cddfSDavid du Colombier@-expansion.  (gsargs.h, gsargs.c)
21147dd7cddfSDavid du Colombier
21153ff48bf5SDavid du Colombier</pre>
21167dd7cddfSDavid du Colombier
21173ff48bf5SDavid du Colombier<hr>
21183ff48bf5SDavid du Colombier
21193ff48bf5SDavid du Colombier<h2><a name="Version4.41"></a>Version 4.41 (private) (1/21/97)</h2>
21203ff48bf5SDavid du Colombier
21213ff48bf5SDavid du Colombier<p>
21227dd7cddfSDavid du ColombierThis release adds a PCL XL output driver, and a few performance
21237dd7cddfSDavid du Colombierimprovements.
21247dd7cddfSDavid du Colombier
21253ff48bf5SDavid du Colombier<h3><a name="V4.41_Procedures"></a>Procedures</h3><pre>
21267dd7cddfSDavid du Colombier
21277dd7cddfSDavid du ColombierFixes bugs:
21287dd7cddfSDavid du Colombier	- The zlib library used an incorrect header file when compiling.
21297dd7cddfSDavid du Colombier(zlib.mak)
21307dd7cddfSDavid du Colombier
21317dd7cddfSDavid du ColombierChanges the names of the preprocessor symbols indicating the presence of
21327dd7cddfSDavid du Colombiersystem header files to be consistent with the ones used by GNU configure.
21337dd7cddfSDavid du Colombier(dvx-tail.mak, ugcclib.mak, unixtail.mak, vms.mak; dirent_.h, time_.h;
21347dd7cddfSDavid du Colombiergp_unix.c)
21357dd7cddfSDavid du Colombier
21367dd7cddfSDavid du ColombierChanges the method for choosing the compression filter for RAM-based band
21377dd7cddfSDavid du Colombierlists.  This is a NON-BACKWARD-COMPATIBLE change in the makefile.  (lib.mak)
21387dd7cddfSDavid du Colombier
21393ff48bf5SDavid du Colombier</pre><h3><a name="V4.41_Drivers"></a>Drivers</h3><pre>
21407dd7cddfSDavid du Colombier
21417dd7cddfSDavid du ColombierAdds black-and-white and 8-bit gray PCL XL (PCL 6) drivers for the LaserJet
21427dd7cddfSDavid du Colombier5 and 6 family.  This driver is extremely simple and just emits bitmaps;
21437dd7cddfSDavid du Colombierfuture drivers will use more PCL XL high-level constructs.  (gdevlj56.c)
21447dd7cddfSDavid du Colombier
21453ff48bf5SDavid du Colombier</pre><h3><a name="V4.41_Fonts"></a>Fonts</h3><pre>
21467dd7cddfSDavid du Colombier
21477dd7cddfSDavid du ColombierUpdates the free font distribution to add the URW Grotesk and Antiqua fonts.
21487dd7cddfSDavid du Colombier
21493ff48bf5SDavid du Colombier</pre><h3><a name="V4.41_Interpreter"></a>Interpreter</h3><pre>
21507dd7cddfSDavid du Colombier
21517dd7cddfSDavid du ColombierFixes bugs:
21527dd7cddfSDavid du Colombier	- gs -h and -v returned with a non-zero exit code on all platforms.
21537dd7cddfSDavid du Colombier(This is necessary under Windows, to keep the message visible on the screen,
21547dd7cddfSDavid du Colombierbut nowhere else.)  (imainarg.c)
21557dd7cddfSDavid du Colombier	- Resizing a dictionary could exceed dict_max_size, causing memory
21567dd7cddfSDavid du Colombiercorruption.  (dstack.h, idict.h, idict.c, zdict.c)
21577dd7cddfSDavid du Colombier
21587dd7cddfSDavid du ColombierAdds .setlinecap and .setlinejoin that can use the extended range of line
21597dd7cddfSDavid du Colombiercap/join values, and redefines setlinecap and setlinejoin in terms of them.
21607dd7cddfSDavid du Colombier(gs_init.ps, zgstate.c)
21617dd7cddfSDavid du Colombier
21623ff48bf5SDavid du Colombier</pre><h3><a name="V4.41_Streams"></a>Streams</h3><pre>
21637dd7cddfSDavid du Colombier
21647dd7cddfSDavid du ColombierFixes bugs:
21657dd7cddfSDavid du Colombier	- The CCITTFaxDecode filter with EncodedByteAlign = true skipped to
21667dd7cddfSDavid du Colombiera byte boundary before checking for an EOL.  This may be wrong if EndOfLine
21677dd7cddfSDavid du Colombier= true; we aren't at all sure what should happen if EndOfLine = false.
21687dd7cddfSDavid du Colombier(scfd.c)
21697dd7cddfSDavid du Colombier
21707dd7cddfSDavid du ColombierAdds a "no wrapper" option to the zlib streams, to optionally suppress the
21717dd7cddfSDavid du Colombiertime-consuming integrity checksum computation.  (szlibx.h, szlibc.c,
21727dd7cddfSDavid du Colombierszlibd.c, szlibe.c)
21737dd7cddfSDavid du Colombier
21743ff48bf5SDavid du Colombier</pre><h3><a name="V4.41_Library"></a>Library</h3><pre>
21757dd7cddfSDavid du Colombier
21767dd7cddfSDavid du ColombierFixes bugs:
21777dd7cddfSDavid du Colombier	- Dashed lines with zero-length drawn segments (dots) that fell
21787dd7cddfSDavid du Colombierexactly on a corner produced inappropriate output.  (pcl/test19.pxs)
21797dd7cddfSDavid du Colombier(gxpdash.c, gxstroke.c)
21807dd7cddfSDavid du Colombier	- Dashed lines didn't set the segment notes properly.  (gxpdash.c)
21817dd7cddfSDavid du Colombier	- The bounding box device didn't free a bookkeeping structure at the
21827dd7cddfSDavid du Colombierend of processing an image.  (gdevbbox.c)
21837dd7cddfSDavid du Colombier	- Curve points could get computed incorrectly when using emulated
21847dd7cddfSDavid du Colombierfloating point.  (gxpcopy.c)
21857dd7cddfSDavid du Colombier	- The 1-element cache for curve_x_at_y didn't work if Y was
21867dd7cddfSDavid du Colombierdecreasing.  (gxfixed.h, gxpcopy.c)
21877dd7cddfSDavid du Colombier
21887dd7cddfSDavid du ColombierDistinguishes between error and informational exits.  (stdpre.h)
21897dd7cddfSDavid du Colombier
21907dd7cddfSDavid du ColombierDefines and checks maximum values for line cap and join parameters.
21917dd7cddfSDavid du Colombier(gslparam.h, gsline.c)
21927dd7cddfSDavid du Colombier
21937dd7cddfSDavid du ColombierRemoves the 'not last' segment note, since it is not used for anything.
21947dd7cddfSDavid du Colombier(gxpath.h, gspath1.c, gxpath2.c, gxpcopy.c, gxpflat.c, gxstroke.c)
21957dd7cddfSDavid du Colombier
21967dd7cddfSDavid du ColombierChanges the memory freeing algorithm for RAM-based band lists back to the
21977dd7cddfSDavid du Colombieroriginal one, since the "improved" one had more bugs than it was worth
21987dd7cddfSDavid du Colombierchasing.  (gxclmem.c)
21997dd7cddfSDavid du Colombier
22007dd7cddfSDavid du ColombierSpeeds up the A * B / C algorithm a little.  (gsmisc.c)
22017dd7cddfSDavid du Colombier
22027dd7cddfSDavid du ColombierSpeeds up curve_x_at_y by recognizing more cases that don't require the slow
22037dd7cddfSDavid du ColombierA * B / C algorithm.  (gxpcopy.c)
22047dd7cddfSDavid du Colombier
22057dd7cddfSDavid du ColombierChanges the path filling code so it uses fill-by-trapezoids even if
22067dd7cddfSDavid du Colombierfill_adjust is zero, as long as the flatness is at least 1 pixel.
22077dd7cddfSDavid du Colombier(gxfill.c)
22087dd7cddfSDavid du Colombier
22097dd7cddfSDavid du ColombierRemoves the (unneeded) floating point operations from gx_curve_log2_samples.
22107dd7cddfSDavid du Colombier(gxpflat.c)
22117dd7cddfSDavid du Colombier
22127dd7cddfSDavid du ColombierChanges the memory-based implementation of band lists so that it constructs
22137dd7cddfSDavid du Colombierthe compressor and decompressor by calling procedures rather than
22147dd7cddfSDavid du Colombierinstantiating templates: this allows setting filter parameters to
22157dd7cddfSDavid du Colombiernon-default values.  (gxclmem.h, gxcllzw.c, gxclmem.c, gxclzlib.c)
22167dd7cddfSDavid du Colombier
22173ff48bf5SDavid du Colombier</pre>
22187dd7cddfSDavid du Colombier
22193ff48bf5SDavid du Colombier<h2><a name="Version4.40"></a>Version 4.40 (private) (1/13/97)</h2>
22203ff48bf5SDavid du Colombier
22213ff48bf5SDavid du Colombier<p>
22227dd7cddfSDavid du ColombierThis version finally handles the last graphics model discrepancies between
22237dd7cddfSDavid du ColombierPostScript and PCL, by correctly implementing null joins, minimum dot
22247dd7cddfSDavid du Colombierlengths, and tangent-aligned curve ends.  It also contains some significant
22257dd7cddfSDavid du Colombierperformance improvements, and as usual a few bug fixes.
22267dd7cddfSDavid du Colombier
22273ff48bf5SDavid du Colombier<h3><a name="V4.40_Documentation"></a>Documentation</h3><pre>
22287dd7cddfSDavid du Colombier
22297dd7cddfSDavid du ColombierDocuments the new accurate curves and path dashing operators.
22307dd7cddfSDavid du Colombier(language.txt)
22317dd7cddfSDavid du Colombier
22323ff48bf5SDavid du Colombier</pre><h3><a name="V4.40_Utilities"></a>Utilities</h3><pre>
22337dd7cddfSDavid du Colombier
22347dd7cddfSDavid du ColombierAdds switches for genconf to set and unset a prefix for file names.
22357dd7cddfSDavid du Colombier(genconf.c)
22367dd7cddfSDavid du Colombier
22373ff48bf5SDavid du Colombier</pre><h3><a name="V4.40_Drivers"></a>Drivers</h3><pre>
22387dd7cddfSDavid du Colombier
22397dd7cddfSDavid du ColombierAdds recognition of the new Distiller 3.0 parameters to the PDF writer.
22407dd7cddfSDavid du Colombier(None of them have any effect yet.)  (gs_pdfwr.ps, gdevpdfx.h, gdevpdf.c,
22417dd7cddfSDavid du Colombiergdevpdfp.c)
22427dd7cddfSDavid du Colombier
22437dd7cddfSDavid du ColombierConverts all the output functions in the PDF writer from being file-based to
22447dd7cddfSDavid du Colombierusing streams, in anticipation of adding compression.  (gdevpdfs.h,
22457dd7cddfSDavid du Colombiergdevpdfx.h, gdevpdf*.c, gdevpdfs.c)
22467dd7cddfSDavid du Colombier
22473ff48bf5SDavid du Colombier</pre><h3><a name="V4.40_Interpreter"></a>Interpreter</h3><pre>
22487dd7cddfSDavid du Colombier
22497dd7cddfSDavid du ColombierAdds operators for accessing the new accurate curves flag in the graphics
22507dd7cddfSDavid du Colombierstate.  (zgstate.c)
22517dd7cddfSDavid du Colombier
22527dd7cddfSDavid du ColombierAdds an operator for invoking gs_dashpath.  (zpath1.c)
22537dd7cddfSDavid du Colombier
22543ff48bf5SDavid du Colombier</pre><h3><a name="V4.40_Interpreter_PDF"></a>Interpreter (PDF)</h3><pre>
22557dd7cddfSDavid du Colombier
22567dd7cddfSDavid du ColombierFixes bugs:
22577dd7cddfSDavid du Colombier	- Indexed color spaces whose base space was a CIE space caused an
22587dd7cddfSDavid du Colombiererror.  (pdf_draw.ps)
22597dd7cddfSDavid du Colombier
22603ff48bf5SDavid du Colombier</pre><h3><a name="V4.40_Library"></a>Library</h3><pre>
22617dd7cddfSDavid du Colombier
22627dd7cddfSDavid du ColombierFixes bugs:
22637dd7cddfSDavid du Colombier	- A pointer was declared const incorrectly.  (gxcpath.c)
22647dd7cddfSDavid du Colombier	- Filling with a pattern often failed to pass a non-null bitmap ID,
22657dd7cddfSDavid du Colombiercausing excessive writing in the band list.  (Performance bug only.)
22667dd7cddfSDavid du Colombier(gspcolor.c)
22677dd7cddfSDavid du Colombier	- The bounding box device didn't discount copy_mono or draw_line
22687dd7cddfSDavid du Colombieroperations drawing in white.  (gdevbbox.c)
22697dd7cddfSDavid du Colombier	- The bounding box device didn't read out the bounding box correctly
22707dd7cddfSDavid du Colombieras the PageBoundingBox device parameter.  (It did return it correctly
22717dd7cddfSDavid du Colombierthrough the gx_device_bbox_bbox procedure.)  (gdevbbox.c)
22727dd7cddfSDavid du Colombier	- The default implementation of fill_triangle drew nothing or
22737dd7cddfSDavid du Colombierincorrect output if the corners of the triangle were specified in certain
22747dd7cddfSDavid du Colombierorders (ax &lt; 0 or bx &lt; 0) (i.e., the previous "fix" had a bug).
22757dd7cddfSDavid du Colombier(gdevddrw.c)
22767dd7cddfSDavid du Colombier
22777dd7cddfSDavid du ColombierChanges tile size from always being set in all bands to being 'known' by
22787dd7cddfSDavid du Colombierbands individually.  (gxclist.h, gxcldev.h, gxclbits.c, gxclist.c)
22797dd7cddfSDavid du Colombier
22807dd7cddfSDavid du ColombierComputes an additional value in advance when rendering images.  (gximage.h,
22817dd7cddfSDavid du Colombiergximage1.c, gximage2.c)
22827dd7cddfSDavid du Colombier
22837dd7cddfSDavid du ColombierReplaces some slow loops with calls of memmove.  (gxclmem.c)
22847dd7cddfSDavid du Colombier
22857dd7cddfSDavid du ColombierProvides a fixed-point implementation of A * B / C for machines with slow
22867dd7cddfSDavid du Colombierfloating point.  (gxfixed.h, gsmisc.c)
22877dd7cddfSDavid du Colombier
22887dd7cddfSDavid du ColombierExtends the "device color" type to implement filling masked regions as well
22897dd7cddfSDavid du Colombieras rectangles.  (gxdcolor.h, gdevdflt.c, gspcolor.c, gxcht.c, gxdcolor.c,
22907dd7cddfSDavid du Colombiergxht.c)
22917dd7cddfSDavid du Colombier
22927dd7cddfSDavid du ColombierMakes unclipped monobit portrait and landscape images and image masks use
22937dd7cddfSDavid du Colombierthe new masked fill capability of device colors.  (gximage.h, gximage.c,
22947dd7cddfSDavid du Colombiergximage1.c, gximage2.c)
22957dd7cddfSDavid du Colombier
22967dd7cddfSDavid du ColombierAdds a macro for determining pointer alignment.  (stdpre.h, gdevdflt.c)
22977dd7cddfSDavid du Colombier
22987dd7cddfSDavid du ColombierWhen floating point is slow, uses a different, faster algorithm for
22997dd7cddfSDavid du Colombiergx_curve_x_at_y.  (gxpcopy.c)
23007dd7cddfSDavid du Colombier
23017dd7cddfSDavid du ColombierImproves performance by adding a one-element cache for gx_curve_x_at_y.
23027dd7cddfSDavid du Colombier(gzpath.h, gxpcopy.c)
23037dd7cddfSDavid du Colombier
23047dd7cddfSDavid du ColombierReduces overhead when banded images are pre-rasterized (currently, always).
23057dd7cddfSDavid du Colombier(gxclimag.c)
23067dd7cddfSDavid du Colombier
23077dd7cddfSDavid du ColombierAdds a rendering cost estimate field to each band in a band list.  This
23087dd7cddfSDavid du Colombierfield isn't actually used for anything yet; eventually, the intent is that
23097dd7cddfSDavid du Colombierbands with a high cost will get rendered, and stored in compressed form,
23107dd7cddfSDavid du Colombierbefore starting the engine.  (gxclist.h)
23117dd7cddfSDavid du Colombier
23127dd7cddfSDavid du ColombierAdds the concept of 'notes' for path segments, to allow remember what
23137dd7cddfSDavid du Colombiersegments constitute a single curve or arc.  Currently we set these properly
23147dd7cddfSDavid du Colombierfor everything except dashed paths.  (gxclpath.h, gxpath.h, gzpath.h,
23157dd7cddfSDavid du Colombiergspath1.c, gxclpath.c, gxclread.c, gxpath.c, gxpath2.c, gxpcopy.c)
23167dd7cddfSDavid du Colombier
23177dd7cddfSDavid du ColombierWhen the dot length is non-zero, changes curve stroking to always use bevel
23187dd7cddfSDavid du Colombierjoins within each curve rather than the current join.  This prevents a
23197dd7cddfSDavid du Colombier"bristly" look with no join and butt caps.  (gxstroke.c)
23207dd7cddfSDavid du Colombier
23217dd7cddfSDavid du ColombierAdds an "accurate curves" capability that makes the last line segment of a
23227dd7cddfSDavid du Colombierflattened curve actually be tangent to the curve, which in turn makes
23237dd7cddfSDavid du Colombierflat-end caps be correctly perpendicular to the tangent.  (gxpath.h,
23247dd7cddfSDavid du Colombiergxpcopy.c)
23257dd7cddfSDavid du Colombier
23267dd7cddfSDavid du ColombierAdds an "accurate curves" flag in the graphics state.  (gsline.h,
23277dd7cddfSDavid du Colombiergxclpath.h, gxistate.h, gsline.c, gspath.c, gspath1.c, gxclpath.c,
23287dd7cddfSDavid du Colombiergxclread.c, gxfill.c, gxstroke.c)
23297dd7cddfSDavid du Colombier
23307dd7cddfSDavid du ColombierChanges the meaning of "no join" (gs_join_none) so that instead of producing
23317dd7cddfSDavid du Colombierno join and butt caps, it produces whatever the current cap is.  This is
23327dd7cddfSDavid du Colombiercompatible with the H-P definition.  (gxstroke.c)
23337dd7cddfSDavid du Colombier
23347dd7cddfSDavid du ColombierImplements non-zero dot length for dash patterns.  (gxpdash.c)
23357dd7cddfSDavid du Colombier
23367dd7cddfSDavid du ColombierSplits off the curve flattening algorithms into a separate file.
23377dd7cddfSDavid du Colombier(gxpcopy.c, gxpflat.c)
23387dd7cddfSDavid du Colombier
23393ff48bf5SDavid du Colombier</pre>
23407dd7cddfSDavid du Colombier
23413ff48bf5SDavid du Colombier<hr>
23423ff48bf5SDavid du Colombier
23433ff48bf5SDavid du Colombier<h2><a name="Version4.39"></a>Version 4.39 (limited) (1/1/97)</h2>
23443ff48bf5SDavid du Colombier
23453ff48bf5SDavid du Colombier<p>
23467dd7cddfSDavid du ColombierThis version was created only to accompany a release of the PCL XL
23477dd7cddfSDavid du Colombierinterpreter.  It was withdrawn the day after it was released, because the
23487dd7cddfSDavid du Colombiertools used to produce it put the wrong files in the filesets.
23497dd7cddfSDavid du Colombier
23503ff48bf5SDavid du Colombier<h3><a name="V4.39_Documentation"></a>Documentation</h3><pre>
23517dd7cddfSDavid du Colombier
23527dd7cddfSDavid du ColombierAdds a more detailed description of the third-party ps_view viewer
23537dd7cddfSDavid du Colombierinterface.  (new-user.txt)
23547dd7cddfSDavid du Colombier
23557dd7cddfSDavid du ColombierCorrects an error in a reference to the PSLRM.  (lib.txt)
23567dd7cddfSDavid du Colombier
23577dd7cddfSDavid du ColombierDocuments the change in .makeoperator.  (language.txt)
23587dd7cddfSDavid du Colombier
23597dd7cddfSDavid du ColombierUpdates the FTP location of the zlib sources.  (zlib.mak)
23607dd7cddfSDavid du Colombier
23613ff48bf5SDavid du Colombier</pre><h3><a name="V4.39_Procedures"></a>Procedures</h3><pre>
23627dd7cddfSDavid du Colombier
23637dd7cddfSDavid du ColombierFixes bugs:
23647dd7cddfSDavid du Colombier	- The Unix library makefile didn't include the necessary definitions
23657dd7cddfSDavid du Colombierfor libpng and zlib.  (ugcclib.mak)
23667dd7cddfSDavid du Colombier
23677dd7cddfSDavid du ColombierAllows selecting the compression filters for memory-based band lists in the
23687dd7cddfSDavid du Colombiermakefile.  Makes zlib (deflate) the default compressor for memory-based band
23697dd7cddfSDavid du Colombierlists.  (lib.mak)
23707dd7cddfSDavid du Colombier
23713ff48bf5SDavid du Colombier</pre><h3><a name="V4.39_Utilities"></a>Utilities</h3><pre>
23727dd7cddfSDavid du Colombier
23737dd7cddfSDavid du ColombierFixes bugs:
23747dd7cddfSDavid du Colombier	- prfont.ps wouldn't print unencoded characters in Type 42 fonts.
23757dd7cddfSDavid du Colombier(prfont.ps)
23767dd7cddfSDavid du Colombier
23773ff48bf5SDavid du Colombier</pre><h3><a name="V4.39_Drivers"></a>Drivers</h3><pre>
23787dd7cddfSDavid du Colombier
23797dd7cddfSDavid du ColombierFixes bugs:
23807dd7cddfSDavid du Colombier	- The H-P monochrome driver didn't put out enough initialization
23817dd7cddfSDavid du Colombiercommands at the beginning of each page to make each page printable
23827dd7cddfSDavid du Colombierindependently.  (gdevdjet.c)
23837dd7cddfSDavid du Colombier
23843ff48bf5SDavid du Colombier</pre><h3><a name="V4.39_Interpreter"></a>Interpreter</h3><pre>
23857dd7cddfSDavid du Colombier
23867dd7cddfSDavid du ColombierChanges ref_stack_count_inline so it never does a procedure call.
23877dd7cddfSDavid du Colombier(istack.h)
23887dd7cddfSDavid du Colombier
23897dd7cddfSDavid du ColombierChanges .makeoperator so that operator procedures save the stack depths, and
23907dd7cddfSDavid du Colombierrestore the stack pointers (if possible) if the operator encounters an
23917dd7cddfSDavid du Colombiererror.  This is a NON-BACKWARD-COMPATIBLE CHANGE; it requires rewriting the
23927dd7cddfSDavid du Colombier'stop' and 'stopped' pseudo-operators (and, if there were any, any other
23937dd7cddfSDavid du Colombierpseudo-operators that interact with the error handling machinery) in C.
23947dd7cddfSDavid du Colombier(gs_init.ps, interp.c, zcontrol.c)
23957dd7cddfSDavid du Colombier
23967dd7cddfSDavid du ColombierAdds recognition of the LeadingEdge, MediaClass, and RollFedMedia keys in a
23977dd7cddfSDavid du Colombierpage device dictionary, per the Adobe supplement for their version 2017
23987dd7cddfSDavid du Colombierinterpreter.  This involves a NON-BACKWARD-COMPATIBLE change to the
23997dd7cddfSDavid du Colombier(undocumented) .matchpagesize operator.  (gs_setpd.ps, zmedia2.c)
24007dd7cddfSDavid du Colombier
24017dd7cddfSDavid du ColombierMakes necessary changes for compatibility with the added parameters for the
24027dd7cddfSDavid du Colombierzlib filters.  (zfzlib.c)
24037dd7cddfSDavid du Colombier
24043ff48bf5SDavid du Colombier</pre><h3><a name="V4.39_Streams"></a>Streams</h3><pre>
24057dd7cddfSDavid du Colombier
24067dd7cddfSDavid du ColombierFixes bugs:
24077dd7cddfSDavid du Colombier	- The zlib encoder returned EOFC when it should have returned 0.
24087dd7cddfSDavid du Colombier(szlibe.c)
24097dd7cddfSDavid du Colombier
24107dd7cddfSDavid du ColombierAdds optional parameters and reset procedures for the zlib filters.
24117dd7cddfSDavid du Colombier(szlibx.h, szlibc.c, szlibd.c, szlibe.c)
24127dd7cddfSDavid du Colombier
24133ff48bf5SDavid du Colombier</pre><h3><a name="V4.39_Library"></a>Library</h3><pre>
24147dd7cddfSDavid du Colombier
24157dd7cddfSDavid du ColombierFixes bugs:
24167dd7cddfSDavid du Colombier	- Displaying characters with a non-standard RasterOp could cause an
24177dd7cddfSDavid du Colombierinvalid memory access.  (gdevdflt.c)
24187dd7cddfSDavid du Colombier	- Banding sometimes used an incorrect RasterOp.  (gxclread.c)
24197dd7cddfSDavid du Colombier	- When banding, mixing Patterns and halftones could confuse the
24207dd7cddfSDavid du Colombierbookkeeping of tile size, leading to incorrect generation of the band list
24217dd7cddfSDavid du Colombierand error messages or confusion when rasterizing.  (gxclist.h, gxclbits.c,
24227dd7cddfSDavid du Colombiergxclread.c)
24237dd7cddfSDavid du Colombier	- If only the dash pattern offset changed, and not any of the other
24247dd7cddfSDavid du Colombierdash-related parameters, the new offset wasn't written in the band list,
24257dd7cddfSDavid du Colombiercausing incorrect output.  (gxclpath.c)
24267dd7cddfSDavid du Colombier	- Oversized halftone tiles didn't report their error code properly.
24277dd7cddfSDavid du Colombier(gxclbits.c)
24287dd7cddfSDavid du Colombier	- Oversized halftone tiles with RasterOp caused an error.
24297dd7cddfSDavid du Colombier(gxclist.c)
24307dd7cddfSDavid du Colombier	- When banding, RasterOp transfers that crossed a band boundary
24317dd7cddfSDavid du Colombierdidn't access the correct source data on bands other than the first.
24327dd7cddfSDavid du Colombier(gxclist.c)
24337dd7cddfSDavid du Colombier	- There were redundant copies of the code for writing a RasterOp
24347dd7cddfSDavid du Colombiervalue in the band list.  (gxclimag.c, gxclpath.c)
24357dd7cddfSDavid du Colombier	- Oversized patterns or halftones produced garbled output.
24367dd7cddfSDavid du Colombier(gxclbits.c)
24377dd7cddfSDavid du Colombier	- The check for oversized patterns or halftones was slightly
24387dd7cddfSDavid du Colombierincorrect, leading to the possibility of writing out a tile that would
24397dd7cddfSDavid du Colombieroverflow the reading buffer and corrupt memory.  (gxclbits.c)
24407dd7cddfSDavid du Colombier	- When banding, RasterOp wasn't applied to fill and stroke
24417dd7cddfSDavid du Colombieroperations, and wasn't applied correctly to characters.  (gdevdflt.c,
24427dd7cddfSDavid du Colombiergxclimag.c, gxclread.c)
24437dd7cddfSDavid du Colombier	- The RasterOp-related optimizations for black-and-white images
24447dd7cddfSDavid du Colombiersometimes produced incorrect output.  (gximage.c, gximage2.c)
24457dd7cddfSDavid du Colombier	- The default implementation of fill_triangle didn't draw anything
24467dd7cddfSDavid du Colombierif the corners of the triangle were specified in certain orders (ax &lt; 0 or
24477dd7cddfSDavid du Colombierbx &lt; 0).  (gdevddrw.c)
24487dd7cddfSDavid du Colombier	- Painting with a Pattern could pass out-of-range phase values to
24497dd7cddfSDavid du Colombierdriver procedures.  (gspcolor.c)
24507dd7cddfSDavid du Colombier	- Because of an off-by-1 error, halftones or patterns passed through
24517dd7cddfSDavid du Colombierthe band list could write past the end of their allocated space in the band
24527dd7cddfSDavid du Colombiertile cache, leading to incorrect output or possible arithmetic exceptions or
24537dd7cddfSDavid du Colombiermemory access errors.  (gsbitops.c)
24547dd7cddfSDavid du Colombier
24557dd7cddfSDavid du ColombierAdds -Z: for printing only the minimal command list statistics.  (gxclist.c,
24567dd7cddfSDavid du Colombiergxclread.c)
24577dd7cddfSDavid du Colombier
24587dd7cddfSDavid du ColombierExpands band list tracing so it includes all of the data associated with the
24597dd7cddfSDavid du Colombiercommand, not just the command name and a few command parameters.
24607dd7cddfSDavid du Colombier(gxclread.c)
24617dd7cddfSDavid du Colombier
24627dd7cddfSDavid du ColombierAdds free lists for strings.  Currently these are only used in
24637dd7cddfSDavid du Colombiernon-garbage-collected environments.  (gxalloc.h, gsalloc.c, gsnogc.c)
24647dd7cddfSDavid du Colombier
24657dd7cddfSDavid du ColombierAdds a procedure for copying a path structure, and an (internal) accessor
24667dd7cddfSDavid du Colombierfor the current path in the graphics state.  (gxpath.h, gspath.c, gxpath.c)
24677dd7cddfSDavid du Colombier
24687dd7cddfSDavid du ColombierSpeeds up filling characters with halftones a little bit.  (gdevdflt.c)
24697dd7cddfSDavid du Colombier
24707dd7cddfSDavid du ColombierChanges the memory-based implementation of band lists so it can use any
24717dd7cddfSDavid du Colombiercompression / decompression filter, so it only compresses when it has
24727dd7cddfSDavid du Colombierallocated a specified amount of buffer storage, and so it releases its
24737dd7cddfSDavid du Colombierbuffer storage at the end of each page.  (gxclmem.h, gxclmem.c)
24747dd7cddfSDavid du Colombier
24757dd7cddfSDavid du ColombierSpeeds up counting the number of 1-bits in a byte, which is used in some
24767dd7cddfSDavid du Colombierimage processing algorithms.  (gsbittab.h, gsbittab.c)
24777dd7cddfSDavid du Colombier
24787dd7cddfSDavid du ColombierReduces the band list space required for changing tile size.  (gxcldev.h,
24797dd7cddfSDavid du Colombiergxclbits.c, gxclread.c)
24807dd7cddfSDavid du Colombier
24813ff48bf5SDavid du Colombier</pre>
24827dd7cddfSDavid du Colombier
24833ff48bf5SDavid du Colombier<h2><a name="Version4.38"></a>Version 4.38 (limited) (12/20/96)</h2>
24843ff48bf5SDavid du Colombier
24853ff48bf5SDavid du Colombier<p>
24867dd7cddfSDavid du ColombierAdds support for a couple of undocumented features in Type 1 fonts.
24877dd7cddfSDavid du Colombier
24883ff48bf5SDavid du Colombier<h3><a name="V4.38_Interpreter"></a>Interpreter</h3><pre>
24897dd7cddfSDavid du Colombier
24907dd7cddfSDavid du ColombierAdds handling of the Type 1 font subroutineNumberBias (an optional entry in
24917dd7cddfSDavid du Colombierthe Private dictionary) and lenIV = -1 features at the interpreter level.
24927dd7cddfSDavid du Colombier(zchar1.c, zfont1.c)
24937dd7cddfSDavid du Colombier
24943ff48bf5SDavid du Colombier</pre><h3><a name="V4.38_Streams"></a>Streams</h3><pre>
24957dd7cddfSDavid du Colombier
24967dd7cddfSDavid du ColombierFixes bugs:
24977dd7cddfSDavid du Colombier	- The CCITTFaxEncode filter could access as much as 3 bytes beyond
24987dd7cddfSDavid du Colombierthe end of a buffer, causing an invalid memory access.  (scfe.c)
24997dd7cddfSDavid du Colombier
25007dd7cddfSDavid du ColombierChanges the RunLengthDecode filter so it can make progress (produce output)
25017dd7cddfSDavid du Colombierwith only a 1-byte output buffer.  (srlx.h, srld.c)
25027dd7cddfSDavid du Colombier
25033ff48bf5SDavid du Colombier</pre><h3><a name="V4.38_Library"></a>Library</h3><pre>
25047dd7cddfSDavid du Colombier
25057dd7cddfSDavid du ColombierFixes bugs:
25067dd7cddfSDavid du Colombier	- The sine and cosine of multiples of 90 degrees weren't exact.
25077dd7cddfSDavid du Colombier(gxfarith.h, gsmisc.c)
25087dd7cddfSDavid du Colombier	- The expanded bounding box computation for strokes didn't take into
25097dd7cddfSDavid du Colombieraccount the possibility of overflow.  (gxstroke.c)
25107dd7cddfSDavid du Colombier	- The allocator didn't fill freed strings with the 'free' mark.
25117dd7cddfSDavid du Colombier(gsalloc.c)
25127dd7cddfSDavid du Colombier	- When using a pattern with RasterOp, the phase was computed
25137dd7cddfSDavid du Colombierincorrectly, leading to anomalous filling patterns.  (gspcolor.c)
25147dd7cddfSDavid du Colombier	- Patterns with a non-zero translation in the matrix passed to
25157dd7cddfSDavid du Colombiermakepattern didn't translate the pattern origin properly.  (gxcolor2.h,
25167dd7cddfSDavid du Colombiergxpcolor.h, gspcolor.c)
25177dd7cddfSDavid du Colombier
25187dd7cddfSDavid du ColombierAdds a subroutineNumberBias field to Type 1 fonts.  This is an undocumented
25197dd7cddfSDavid du Colombierfeature of the Type 1 font format.  (gxfont1.h, gstype1.c)
25207dd7cddfSDavid du Colombier
25217dd7cddfSDavid du ColombierInterprets lenIV = -1 in Type 1 fonts as meaning that the CharStrings are
25227dd7cddfSDavid du Colombierunencrypted.  This too is an undocumented feature of the Type 1 format.
25237dd7cddfSDavid du Colombier(gxfont1.h, gxtype1.h, gstype1.c, gstype2.c)
25247dd7cddfSDavid du Colombier
25257dd7cddfSDavid du ColombierChanges gs_clippath so it returns more reasonable outlines.  (There are too
25267dd7cddfSDavid du Colombiermany programs that rely on being able to stroke the result of clippath, even
25277dd7cddfSDavid du Colombierthough both the Adobe and H-P literature specifically say the results are
25287dd7cddfSDavid du Colombierunpredictable.)  (gxcpath.h, gxcpath.c)
25297dd7cddfSDavid du Colombier
25303ff48bf5SDavid du Colombier</pre>
25317dd7cddfSDavid du Colombier
25323ff48bf5SDavid du Colombier<h2><a name="Version4.37"></a>Version 4.37 (limited) (12/10/96)</h2>
25333ff48bf5SDavid du Colombier
25343ff48bf5SDavid du Colombier<p>
25357dd7cddfSDavid du ColombierThis version implements separate halftone phase for source and texture,
25367dd7cddfSDavid du Colombierrequired for PCL XL implementation.
25377dd7cddfSDavid du Colombier
25383ff48bf5SDavid du Colombier<h3><a name="V4.37_Fonts"></a>Fonts</h3><pre>
25397dd7cddfSDavid du Colombier
25407dd7cddfSDavid du ColombierFixes bugs:
25417dd7cddfSDavid du Colombier	- Loading a native TrueType font without a 'post' table caused an
25427dd7cddfSDavid du Colombiererror.  (gs_ttf.ps)
25437dd7cddfSDavid du Colombier
25443ff48bf5SDavid du Colombier</pre><h3><a name="V4.37_Interpreter"></a>Interpreter</h3><pre>
25457dd7cddfSDavid du Colombier
25467dd7cddfSDavid du ColombierExtends the interpreter to handle the new separate halftone phases for the
25477dd7cddfSDavid du ColombierRasterOp source and texture.  (gs_dps1.ps, zdps1.c)
25487dd7cddfSDavid du Colombier
25497dd7cddfSDavid du ColombierMakes a small change to accommodate a library change supporting Type 2
25507dd7cddfSDavid du Colombiercharstrings.  (zfont1.c)
25517dd7cddfSDavid du Colombier
25523ff48bf5SDavid du Colombier</pre><h3><a name="V4.37_Interpreter_PDF"></a>Interpreter (PDF)</h3><pre>
25537dd7cddfSDavid du Colombier
25547dd7cddfSDavid du ColombierImplements the FontFile2 key for embedded TrueType fonts.  (pdf_font.ps)
25557dd7cddfSDavid du Colombier
25567dd7cddfSDavid du ColombierStarts to implement the FontFile3 key for compressed Type 1 fonts.  This
25577dd7cddfSDavid du Colombiercode is currently disabled, because none of the necessary underlying C is
25587dd7cddfSDavid du Colombierwritten yet.  (pdf_font.ps)
25597dd7cddfSDavid du Colombier
25603ff48bf5SDavid du Colombier</pre><h3><a name="V4.37_Library"></a>Library</h3><pre>
25617dd7cddfSDavid du Colombier
25627dd7cddfSDavid du ColombierFixes bugs:
25637dd7cddfSDavid du Colombier	- The floating point emulator often returned incorrect results (too
25647dd7cddfSDavid du Colombiermany bugs to list).  (This is not used in any standard configuration.)
25657dd7cddfSDavid du Colombier(gsfemu.c)
25667dd7cddfSDavid du Colombier	- The new copy_for procedure for gstates incorrectly declared an
25677dd7cddfSDavid du Colombierargument as const.  (gxstate.h, gsstate.c)
25687dd7cddfSDavid du Colombier	- If a curve had to be split twice along the same axis to make it
25697dd7cddfSDavid du Colombiermonotonic, the split points could still be returned in the wrong order,
25707dd7cddfSDavid du Colombierpossibly causing curved edges to turn into straight lines, and the algorithm
25717dd7cddfSDavid du Colombierstill produced the wrong results if the curve had to be split twice along a
25727dd7cddfSDavid du Colombiersingle axis.  This is the second time we have "fixed" these problems and the
25737dd7cddfSDavid du Colombier4th time we have "fixed" the curve monotonizing algorithm.  (gxpcopy.c)
25747dd7cddfSDavid du Colombier	- Setting halftones cause a memory leak, because the subsidiary
25757dd7cddfSDavid du Colombierobjects of the device halftone weren't freed properly.  Fixing this required
25767dd7cddfSDavid du Colombierchanging the graphics state implementation from allocating a device halftone
25777dd7cddfSDavid du Colombierfor each gstate to managing the device halftone with reference counting.
25787dd7cddfSDavid du Colombier(gxdht.h, gzstate.h, gsht.c, gsstate.c)
25797dd7cddfSDavid du Colombier
25807dd7cddfSDavid du ColombierProvides an optimized version of ldexp for FPU-less configurations, and
25817dd7cddfSDavid du Colombierchanges one key algorithm to use it.  (gxfixed.h, gsmisc.c, gxpcopy.c)
25827dd7cddfSDavid du Colombier
25837dd7cddfSDavid du ColombierSpeeds up imagemask with a halftone a little.  (This will eventually require
25847dd7cddfSDavid du Colombiermore serious optimization.)  (gximage2.c)
25857dd7cddfSDavid du Colombier
25867dd7cddfSDavid du ColombierAdds a -Z* switch for tracing varieties of image rendering.  (gximage.c)
25877dd7cddfSDavid du Colombier
25887dd7cddfSDavid du ColombierRecognizes that if the logical operation is equivalent to D = S (after
25897dd7cddfSDavid du Colombieraccounting for a constant texture, if any), or if it is equivalent to D = ~S
25907dd7cddfSDavid du Colombieror D = D {&amp;,|}{S,~S} and D and S are both monobit and both colors are pure,
25917dd7cddfSDavid du Colombierimaging with RasterOp can be executed without invoking RasterOp.  (gsropt.h,
25927dd7cddfSDavid du Colombiergximage.c)
25937dd7cddfSDavid du Colombier
25947dd7cddfSDavid du ColombierMakes coordinate transformations with landscape matrices execute as fast as
25957dd7cddfSDavid du Colombierwith portrait matrices.  (gxmatrix.h, gscoord.c, gsmatrix.c)
25967dd7cddfSDavid du Colombier
25977dd7cddfSDavid du ColombierAdds some sketch code for interpreting Type 2 charstrings.  It compiles, but
25987dd7cddfSDavid du Colombierit makes no pretense of being runnable.  (gstype1.h, gxop1.h, gxtype1.h,
25997dd7cddfSDavid du Colombiergstype2.h, gxfont1.h, gstype1.c, gstype2.c)
26007dd7cddfSDavid du Colombier
26017dd7cddfSDavid du ColombierExtends the library to allow setting separate halftone phases for the
26027dd7cddfSDavid du ColombierRasterOp source and texture, which is needed to implement halftone screens
26037dd7cddfSDavid du Colombierthat behave like those in H-P's PCL XL printers.  (gscsel.h, gsstate.h,
26047dd7cddfSDavid du Colombiergxcmap.h, gxcspace.h, gxdcolor.h, gxdither.h, gxpcolor.h, gzht.h, gzstate.h,
26057dd7cddfSDavid du Colombiergscie.c, gscsepr.c, gsht.c, gspcolor.c, gxcht.c, gxcmap.c, gxdcolor.c,
26067dd7cddfSDavid du Colombiergxht.c, gximage.c, gximage[2345].c, gspcmap.c) ****** STILL NEED TO UPDATE
26077dd7cddfSDavid du ColombierBANDING CODE, grep FOR phase ******
26087dd7cddfSDavid du Colombier
26097dd7cddfSDavid du ColombierRemoves the rc_header member from the gs_halftone structure, since we don't
26107dd7cddfSDavid du Colombierneed it after all.  (gxht.h)
26117dd7cddfSDavid du Colombier
26123ff48bf5SDavid du Colombier</pre>
26137dd7cddfSDavid du Colombier
26143ff48bf5SDavid du Colombier<h2><a name="Version4.36"></a>Version 4.36 (limited) (12/3/96)</h2>
26153ff48bf5SDavid du Colombier
26163ff48bf5SDavid du Colombier<p>
26177dd7cddfSDavid du ColombierThis version fixes a number of library bugs related to RasterOp, Patterns,
26187dd7cddfSDavid du Colombierand memory management.
26197dd7cddfSDavid du Colombier
26203ff48bf5SDavid du Colombier<h3><a name="V4.36_Documentation"></a>Documentation</h3><pre>
26217dd7cddfSDavid du Colombier
26227dd7cddfSDavid du ColombierChanges the definition of texture transparency to match the peculiar H-P
26237dd7cddfSDavid du Colombierspecification.  (drivers.txt, language.txt)
26247dd7cddfSDavid du Colombier
26253ff48bf5SDavid du Colombier</pre><h3><a name="V4.36_Drivers"></a>Drivers</h3><pre>
26267dd7cddfSDavid du Colombier
26277dd7cddfSDavid du ColombierFixes bugs:
26287dd7cddfSDavid du Colombier	- x_get_bits didn't flush updates to the frame buffer, leading to
26297dd7cddfSDavid du Colombierpossibly incorrect data being returned.  (gdevx.c)
26307dd7cddfSDavid du Colombier	- x_get_bits added padding to the scan line being copied, possibly
26317dd7cddfSDavid du Colombiercorrupting memory.  (gdevx.c)
26327dd7cddfSDavid du Colombier
26337dd7cddfSDavid du ColombierChanges the x11mono driver to define white = 0, black = 1 to more closely
26347dd7cddfSDavid du Colombiermodel black-and-white printers.  (This is an internal change that doesn't
26357dd7cddfSDavid du Colombieraffect the output.)  (gdevxalt.c)
26367dd7cddfSDavid du Colombier
26373ff48bf5SDavid du Colombier</pre><h3><a name="V4.36_Interpreter"></a>Interpreter</h3><pre>
26387dd7cddfSDavid du Colombier
26397dd7cddfSDavid du ColombierRemoves some code that is no longer needed, by virtue of the fix for the
26407dd7cddfSDavid du Colombiermemory leak in Pattern remapping.  (zpcolor.c)
26417dd7cddfSDavid du Colombier
26423ff48bf5SDavid du Colombier</pre><h3><a name="V4.36_Library"></a>Library</h3><pre>
26437dd7cddfSDavid du Colombier
26447dd7cddfSDavid du ColombierFixes bugs:
26457dd7cddfSDavid du Colombier	- Patterns wider than 1024 bits caused a rangecheck.  (gxclip2.h,
26467dd7cddfSDavid du Colombiergxclip2.c)
26477dd7cddfSDavid du Colombier	- Dash patterns never got freed.  The fix for this slows down gsave
26487dd7cddfSDavid du Colombierand grestore slightly, but we don't see any way around it.  (gsline.c,
26497dd7cddfSDavid du Colombiergsstate.c)
26507dd7cddfSDavid du Colombier	- If the CTM was very non-uniform in X and Y, stroke sometimes
26517dd7cddfSDavid du Colombierdidn't recognize thin lines as being thin, leading to dropouts.
26527dd7cddfSDavid du Colombier(gxstroke.c)
26537dd7cddfSDavid du Colombier	- RasterOps that didn't use S or T still took S or T transparency
26547dd7cddfSDavid du Colombierinto account.  (gdevmrop.c)
26557dd7cddfSDavid du Colombier	- RasterOps with no source didn't handle the possibility that the
26567dd7cddfSDavid du Colombierdevice color for black might have a value other than 0.  (gxdcolor.h,
26577dd7cddfSDavid du Colombiergspcolor.c, gxcht.c, gxdcolor.c, gxht.c)
26587dd7cddfSDavid du Colombier	- White pixels in halftones on black-and-white devices apparently
26597dd7cddfSDavid du Colombierare *not* supposed to be treated as opaque for RasterOp.  (gxcht.c, gxht.c)
26607dd7cddfSDavid du Colombier	- clippath caused memory to be lost until a restore or a garbage
26617dd7cddfSDavid du Colombiercollection.  (gspath.c)
26627dd7cddfSDavid du Colombier	- Clipping lists weren't ever freed, and clipping paths sometimes
26637dd7cddfSDavid du Colombierweren't freed, causing memory to be lost until a restore or a garbage
26647dd7cddfSDavid du Colombiercollection.  (gzacpath.h, gxacpath.c, gxcpath.c)
26657dd7cddfSDavid du Colombier	- Freeing a pattern instance referenced a pointer after it had been
26667dd7cddfSDavid du Colombierfreed, causing an invalid memory access.  (gspcolor.c)
26677dd7cddfSDavid du Colombier	- Remapping a Pattern color lost track of the temporary gstate,
26687dd7cddfSDavid du Colombiermemory devices, and possibly the mask, causing memory to be lost until a
26697dd7cddfSDavid du Colombierrestore or GC.  (gxpcolor.h, gxpcmap.c)
26707dd7cddfSDavid du Colombier	- Remapping a Pattern color could cause paths to be marked as
26717dd7cddfSDavid du Colombiershared, preventing them from being freed until a restore or GC.  (gxpcmap.c)
26727dd7cddfSDavid du Colombier
26737dd7cddfSDavid du ColombierEnhances the non-tracing garbage collector so that if there are no strings
26747dd7cddfSDavid du Colombierallocated at all, it resets the string allocation pointers.  (gsnogc.c)
26757dd7cddfSDavid du Colombier
26767dd7cddfSDavid du ColombierOptimizes the black-and-white RasterOp implementation by recognizing cases
26777dd7cddfSDavid du Colombierthat can be implemented directly by fill_rectangle, copy_mono, or
26787dd7cddfSDavid du Colombiertile_rectangle.  (gdevmrop.h, gsropt.h, gdevmrop.c, gsroptab.c)
26797dd7cddfSDavid du Colombier
26807dd7cddfSDavid du ColombierChanges -ZA so it no longer produces [P] tracing messages for path
26817dd7cddfSDavid du Colombierconstruction.  (gxpath.c)
26827dd7cddfSDavid du Colombier
26837dd7cddfSDavid du ColombierAdds a gx_pattern_cache_winnow procedure for selectively removing entries
26847dd7cddfSDavid du Colombierfrom the Pattern cache, similar to gx_purge_selected_cached_chars.
26857dd7cddfSDavid du Colombier(gscolor2.h, gxpcolor.h, gxpcmap.c)
26867dd7cddfSDavid du Colombier
26877dd7cddfSDavid du ColombierAdds the Pattern UID to Pattern cache entries.  (gxpcolor.h, gxpcmap.c)
26887dd7cddfSDavid du Colombier****** MUST HANDLE XUID POINTERS ON GC (RELOC) &amp; RESTORE (CLEAR LIKE HT
26897dd7cddfSDavid du ColombierCACHE) ******
26907dd7cddfSDavid du Colombier
26917dd7cddfSDavid du ColombierMakes gs_gstate free the path representation of the clipping path if it's a
26927dd7cddfSDavid du Colombierrectangle, since reconstructing it is cheap and otherwise the path segments
26937dd7cddfSDavid du Colombierwould not be freeable until a restore or GC.  (gsstate.c)
26947dd7cddfSDavid du Colombier
26957dd7cddfSDavid du ColombierExtends the "client data" interface for gstates so that the copy procedure
26967dd7cddfSDavid du Colombiercan determine why it is being called.  (gxstate.h, gsstate.c)
26977dd7cddfSDavid du Colombier
26983ff48bf5SDavid du Colombier</pre>
26997dd7cddfSDavid du Colombier
27003ff48bf5SDavid du Colombier<h2><a name="Version4.35"></a>Version 4.35 (limited) (11/24/96)</h2>
27013ff48bf5SDavid du Colombier
27023ff48bf5SDavid du Colombier<p>
27037dd7cddfSDavid du ColombierThis contains the usual bug fixes, and two minor enhancements: an option for
27047dd7cddfSDavid du Colombierhandling EPSF files with binary headers, and support for file-based
27057dd7cddfSDavid du Colombierresources.
27067dd7cddfSDavid du Colombier
27073ff48bf5SDavid du Colombier<h3><a name="V4.35_Documentation"></a>Documentation</h3><pre>
27087dd7cddfSDavid du Colombier
27097dd7cddfSDavid du ColombierDocuments the new EPSF-reading capability.  (gs.mak)
27107dd7cddfSDavid du Colombier
27113ff48bf5SDavid du Colombier</pre><h3><a name="V4.35_Procedures"></a>Procedures</h3><pre>
27127dd7cddfSDavid du Colombier
27137dd7cddfSDavid du ColombierFixes bugs:
27147dd7cddfSDavid du Colombier	- Some obsolete definitions were accidentally left in the rules for
27157dd7cddfSDavid du Colombiercompiling fonts into the executable.  (int.mak)
27167dd7cddfSDavid du Colombier
27173ff48bf5SDavid du Colombier</pre><h3><a name="V4.35_Interpreter"></a>Interpreter</h3><pre>
27187dd7cddfSDavid du Colombier
27197dd7cddfSDavid du ColombierFixes bugs:
27207dd7cddfSDavid du Colombier	- initgraphics left the current color space in an inconsistent
27217dd7cddfSDavid du Colombierstate.  (bug introduced in 4.32) (zgstate.c)
27227dd7cddfSDavid du Colombier	- restore didn't properly rebind FontDirectory to either Local or
27237dd7cddfSDavid du ColombierSharedFontDirectory according to the current VM selection.  (gs_dps1.ps)
27247dd7cddfSDavid du Colombier	- If FontDirectory was redefined, many things broke.  (gs_ccfnt.ps,
27257dd7cddfSDavid du Colombiergs_dps1.ps, gs_fonts.ps, gs_pdfwr.ps)
27267dd7cddfSDavid du Colombier	- If a resource provided a file name but the file couldn't be
27277dd7cddfSDavid du Colombieropened, an error occurred.  (gs_res.ps)
27287dd7cddfSDavid du Colombier	- flushfile didn't work with procedure-based streams.  (zfileio.c)
27297dd7cddfSDavid du Colombier
27307dd7cddfSDavid du ColombierAdds a feature (epsf.dev) that allows the interpreter to recognize and
27317dd7cddfSDavid du Colombierhandle MS-DOS EPSF files with a binary header.  (int.mak, gs_epsf.ps,
27327dd7cddfSDavid du Colombiergs_init.ps, pdf_main.ps)
27337dd7cddfSDavid du Colombier
27347dd7cddfSDavid du ColombierAdds (internal) .getuserparam and .getsystemparam operators for getting the
27357dd7cddfSDavid du Colombiervalue of a single user or system parameter.  (gs_lev2.ps, zusparam.c)
27367dd7cddfSDavid du Colombier
27377dd7cddfSDavid du ColombierTo support file-based resources, implements the FontResourceDir,
27387dd7cddfSDavid du ColombierGenericResourceDir, and GenericResourcePathSep system parameters, and
27397dd7cddfSDavid du ColombierResourceFileName for the built-in resource categories.  (gs_init.ps,
27407dd7cddfSDavid du Colombiergs_lev2.ps, gs_res.ps)
27417dd7cddfSDavid du Colombier
27423ff48bf5SDavid du Colombier</pre><h3><a name="V4.35_Streams"></a>Streams</h3><pre>
27437dd7cddfSDavid du Colombier
27447dd7cddfSDavid du ColombierFixes bugs:
27457dd7cddfSDavid du Colombier	- The 2-D CCITTFaxDecode filter became confused if a buffer boundary
27467dd7cddfSDavid du Colombierfell between a horizontal make-up code and its terminating code, typically
27477dd7cddfSDavid du Colombiercausing an ioerror.  (scfd.c)
27487dd7cddfSDavid du Colombier
27493ff48bf5SDavid du Colombier</pre><h3><a name="V4.35_Library"></a>Library</h3><pre>
27507dd7cddfSDavid du Colombier
27517dd7cddfSDavid du ColombierFixes bugs:
27527dd7cddfSDavid du Colombier	- Using the null color could confuse the reference counts for color
27537dd7cddfSDavid du Colombierspaces, causing memory access errors.  (gscolor.c)
27547dd7cddfSDavid du Colombier	- Images with CombineWithColor = true caused memory access error,
27557dd7cddfSDavid du Colombierbecause a structure element wasn't initialized.  (gdevmrop.c)
27567dd7cddfSDavid du Colombier	- gs_setnullcolor tried to return an error code, even though it was
27577dd7cddfSDavid du Colombierdeclared as returning void.  (Why doesn't gcc catch this??)  (gscolor.h,
27587dd7cddfSDavid du Colombiergscolor.c)
27597dd7cddfSDavid du Colombier	- gs_setnullcolor was declared inconsistently as taking a const or
27607dd7cddfSDavid du Colombiernon-const argument.  (gscolor.h)
27617dd7cddfSDavid du Colombier	- Small color tiles in the band list were not read in correctly.
27627dd7cddfSDavid du Colombier(gxclread.c)
27637dd7cddfSDavid du Colombier	- The band list could get confused, causing ioerrors, invalid memory
27647dd7cddfSDavid du Colombieraccesses, or garbled output, because the algorithms for computing the size
27657dd7cddfSDavid du Colombierof bitmaps when writing and when reading had gotten inconsistent.  This code
27667dd7cddfSDavid du Colombierhas been broken and "fixed" at least 4 or 5 times.  (gxcldev.h, gxclbits.c,
27677dd7cddfSDavid du Colombiergxclread.c)
27687dd7cddfSDavid du Colombier	- When using banding, characters that extended off the page
27697dd7cddfSDavid du Colombiervertically in the -Y direction came out garbled.  (gxclimag.c)
27707dd7cddfSDavid du Colombier	- The bounding box device didn't compute the box correctly for
27717dd7cddfSDavid du Colombiertrapezoids.  (gdevbbox.c)
27727dd7cddfSDavid du Colombier	- The fastest case of rendering monochrome images could cause
27737dd7cddfSDavid du Colombierunaligned data accesses.  (bug introduced recently.)  (gximage.h,
27747dd7cddfSDavid du Colombiergximage1.c)
27757dd7cddfSDavid du Colombier	- TrueType characters with no contours could cause an invalid memory
27767dd7cddfSDavid du Colombieraccess.  (gstype42.c)
27777dd7cddfSDavid du Colombier	- Composite TrueType characters weren't rendered properly.
27787dd7cddfSDavid du Colombier(gstype42.c)
27797dd7cddfSDavid du Colombier
27807dd7cddfSDavid du ColombierAdds a get_outline procedure to the Type 42 font header, to provide a
27817dd7cddfSDavid du Colombiercallback for getting the outline data for a glyph.  (gxfont42.h, gstype42.c)
27827dd7cddfSDavid du Colombier
27833ff48bf5SDavid du Colombier</pre>
27847dd7cddfSDavid du Colombier
27853ff48bf5SDavid du Colombier<h2><a name="Version4.34"></a>Version 4.34 (limited) (11/18/96)</h2>
27863ff48bf5SDavid du Colombier
27873ff48bf5SDavid du Colombier<p>
27887dd7cddfSDavid du ColombierThis release adds a little more support for CID-keyed fonts and for PCL
27897dd7cddfSDavid du Colombieremulation, and a bit more of the machinery for passing images through the
27907dd7cddfSDavid du Colombierband list.
27917dd7cddfSDavid du Colombier
27923ff48bf5SDavid du Colombier<h3><a name="V4.34_Documentation"></a>Documentation</h3><pre>
27937dd7cddfSDavid du Colombier
27947dd7cddfSDavid du ColombierFixes bugs:
27957dd7cddfSDavid du Colombier	- The RasterOp source device wasn't listed as an internal device in
27967dd7cddfSDavid du Colombierdrivers.txt.  (drivers.txt)
27977dd7cddfSDavid du Colombier
27987dd7cddfSDavid du ColombierCorrects a statement regarding the pstotext license.  (new-user.txt)
27997dd7cddfSDavid du Colombier
28003ff48bf5SDavid du Colombier</pre><h3><a name="V4.34_Procedures"></a>Procedures</h3><pre>
28017dd7cddfSDavid du Colombier
28027dd7cddfSDavid du ColombierFixes bugs:
28037dd7cddfSDavid du Colombier	- The Watcom makefile for the library didn't work properly if
28047dd7cddfSDavid du Colombiercertain variables were overridden from the command line.  (watclib.mak)
28057dd7cddfSDavid du Colombier	- The library code inadvertently depended on an interpreter header
28067dd7cddfSDavid du Colombierfile.  (*.mak)
28077dd7cddfSDavid du Colombier
28083ff48bf5SDavid du Colombier</pre><h3><a name="V4.34_Drivers"></a>Drivers</h3><pre>
28097dd7cddfSDavid du Colombier
28107dd7cddfSDavid du ColombierFixes bugs:
28117dd7cddfSDavid du Colombier	- Some very picky compilers complained about assigning 0 to a
28127dd7cddfSDavid du Colombiervariable of an enum type.  (gdevpdfx.h, gdevpdf.c)
28137dd7cddfSDavid du Colombier
28143ff48bf5SDavid du Colombier</pre><h3><a name="V4.34_Interpreter"></a>Interpreter</h3><pre>
28157dd7cddfSDavid du Colombier
28167dd7cddfSDavid du ColombierFixes bugs:
28177dd7cddfSDavid du Colombier	- Some very picky compilers didn't like a cast from a pointer type
28187dd7cddfSDavid du Colombierto an int type.  (idebug.c)
28197dd7cddfSDavid du Colombier	- Some very picky (and non-ANSI-compliant) compilers didn't allow
28207dd7cddfSDavid du Colombierassigning an int to a variable of enumerated type.  (zfont2.c, zht2.c)
28217dd7cddfSDavid du Colombier	- The library code inadvertently depended on an interpreter header
28227dd7cddfSDavid du Colombierfile.  (iref.h)
28237dd7cddfSDavid du Colombier
28247dd7cddfSDavid du ColombierRestructures the font building code slightly to support CID fonts better.
28257dd7cddfSDavid du Colombier(gs_cidfn.ps, bfont.h, zcid.c, zfont0.c, zfont1.c, zfont2.c, zfont42.c)
28267dd7cddfSDavid du Colombier
28277dd7cddfSDavid du ColombierAdds a .setcurrentfile operator to allow disk-based fonts to keep their file
28287dd7cddfSDavid du Colombieropen.  (gs_cidfn.ps, zcontrol.c)
28297dd7cddfSDavid du Colombier
28303ff48bf5SDavid du Colombier</pre><h3><a name="V4.34_Streams"></a>Streams</h3><pre>
28317dd7cddfSDavid du Colombier
28327dd7cddfSDavid du ColombierFixes bugs:
28337dd7cddfSDavid du Colombier	- Some very picky compilers didn't like the computation (const byte
28347dd7cddfSDavid du Colombier*)0 - 1.  (stream.c)
28357dd7cddfSDavid du Colombier	- A cast to ulong was omitted.  (smtf.c)
28367dd7cddfSDavid du Colombier	- Some compilers got confused by typedefs in the zlib header files.
28377dd7cddfSDavid du Colombier(szlibd.c, szlibe.c)
28387dd7cddfSDavid du Colombier
28393ff48bf5SDavid du Colombier</pre><h3><a name="V4.34_Library"></a>Library</h3><pre>
28407dd7cddfSDavid du Colombier
28417dd7cddfSDavid du ColombierFixes bugs:
28427dd7cddfSDavid du Colombier	- A header file didn't select the proper system header on all POSIX
28437dd7cddfSDavid du Colombiersystems.  (malloc_.h)
28447dd7cddfSDavid du Colombier	- A subclass/superclass type discrepancy upset some compilers.
28457dd7cddfSDavid du Colombier(gsline.h, gsline.c, gxpdash.c)
28467dd7cddfSDavid du Colombier	- Some very picky compilers didn't accept the previous definition of
28477dd7cddfSDavid du Colombierthe offset_of macro.  (stdpre.h)
28487dd7cddfSDavid du Colombier	- Some very picky (and non-ANSI-compliant) compilers didn't like
28497dd7cddfSDavid du Colombiermixing int and enumerated types.  (gsropt.h, gzstate.h, gdevmrop.c,
28507dd7cddfSDavid du Colombiergdevrrgb.c, gsrop.c, gxclist.c)
28517dd7cddfSDavid du Colombier	- A cast was missing.  (gslib.c)
28527dd7cddfSDavid du Colombier	- The gs_setxxxtransparent procedures interpreted their argument
28537dd7cddfSDavid du Colombierbackwards (i.e., as "opaque" rather than "transparent").  (gsrop.c)
28547dd7cddfSDavid du Colombier	- Intersecting clipping paths didn't reset the logical operation to
28557dd7cddfSDavid du Colombierthe default, causing a possible crash.  (gsrop.h, gsrop.c, gxacpath.c)
28567dd7cddfSDavid du Colombier	- Pattern accumulation didn't reset the logical operation to the
28577dd7cddfSDavid du Colombierdefault, possibly causing incorrect output.  (gspcolor.c)
28587dd7cddfSDavid du Colombier	- If a Type 1 character ended with a curve and a closepath, a
28597dd7cddfSDavid du Colombiermicroscopic line could result, causing output anomalies.  (gstype1.c)
28607dd7cddfSDavid du Colombier	- Stroking a path with a mix of thin and non-thin lines could cause
28617dd7cddfSDavid du Colombierextraneous lines to appear.  (gxstroke.c)
28627dd7cddfSDavid du Colombier	- Zero-width rectangles were painted even when fill adjustment was
28637dd7cddfSDavid du Colombierturned off.  (gxpaint.c, gxstroke.c)
28647dd7cddfSDavid du Colombier	- The algorithm for dividing a curve into monotonic pieces could
28657dd7cddfSDavid du Colombierproduce incorrect results, causing anomalies when filling curved regions
28667dd7cddfSDavid du Colombierwith zero fill adjustment.  (gxpcopy.c)
28677dd7cddfSDavid du Colombier	- The algorithms for outside clipping were wrong, causing some
28687dd7cddfSDavid du Colombierinside regions not to be clipped.  (gxcpath.c)
28697dd7cddfSDavid du Colombier	- The white pixels in halftones weren't treated as unconditionally
28707dd7cddfSDavid du Colombieropaque for RasterOp.  (gxht.c, gxcht.c)
28717dd7cddfSDavid du Colombier	- Images with RasterOp didn't work properly.  (gdevmrop.c,
28727dd7cddfSDavid du Colombiergximage[2345].c, gxpcmap.c)
28737dd7cddfSDavid du Colombier	- The library code inadvertently depended on an interpreter header
28747dd7cddfSDavid du Colombierfile.  (gxalloc.h, genarch.c)
28757dd7cddfSDavid du Colombier	- An important optimization for stroking (recognizing portrait,
28767dd7cddfSDavid du Colombierlandscape, and unscaled CTMs) was commented out.  WE DON'T HAVE ANY RECORD
28777dd7cddfSDavid du ColombierOF WHY WE DID THIS, AND RESTORING IT MAY INTRODUCE NEW BUGS.  (gxstroke.c)
28787dd7cddfSDavid du Colombier	- Bitmap images with non-zero data_x values were passed through the
28797dd7cddfSDavid du Colombierband list incorrectly, possibly causing vertical "streaks" in the output.
28807dd7cddfSDavid du Colombier(gxcldev.h, gxclread.c)
28817dd7cddfSDavid du Colombier	- If a curve had to be split twice along the same axis to make it
28827dd7cddfSDavid du Colombiermonotonic, the split points were returned in the wrong order, possibly
28837dd7cddfSDavid du Colombiercausing curved edges to turn into straight lines.  (gxpcopy.c)
28847dd7cddfSDavid du Colombier
28857dd7cddfSDavid du ColombierChanges the debugging printout format for paths so the output can be
28867dd7cddfSDavid du Colombierprocessed mechanically more easily.  (gxpath.c)
28877dd7cddfSDavid du Colombier
28887dd7cddfSDavid du ColombierAdds gs_glyphpath, like charpath but taking a glyph rather than a string of
28897dd7cddfSDavid du Colombiercharacter codes.  (gschar.h, gschar.c)
28907dd7cddfSDavid du Colombier
28917dd7cddfSDavid du ColombierAdds an internal concept of a "null color", a color that doesn't actually
28927dd7cddfSDavid du Colombiermark any pixels.  (gscolor.h, gsdcolor.h, gxdcolor.h, gscolor.c, gxdcolor.c)
28937dd7cddfSDavid du Colombier
28947dd7cddfSDavid du ColombierTakes the next incremental steps towards passing images through the band
28957dd7cddfSDavid du Colombierlist:
28967dd7cddfSDavid du Colombier	- Implements the ability to pass some color mapping information
28977dd7cddfSDavid du Colombier(transfer functions, black generation, undercolor removal) through the band
28987dd7cddfSDavid du Colombierlist.  (gxclist.h, gxclimag.c, gxclist.c, gxclread.c)
28997dd7cddfSDavid du Colombier
29003ff48bf5SDavid du Colombier</pre>
29017dd7cddfSDavid du Colombier
29023ff48bf5SDavid du Colombier<h2><a name="Version4.33"></a>Version 4.33 (limited) (11/6/96)</h2>
29033ff48bf5SDavid du Colombier
29043ff48bf5SDavid du Colombier<p>
29057dd7cddfSDavid du ColombierThis release fixes yet another obscure bug in the recently rewritten fast
29067dd7cddfSDavid du Colombierloops for image rendering.  (These loops have caused more problems than any
29077dd7cddfSDavid du Colombierother single module of the entire library.)  It also adds preliminary
29087dd7cddfSDavid du Colombiersupport for CID-keyed fonts (CIDFonts only, not CMaps yet) and some library
29097dd7cddfSDavid du Colombierextensions for supporting HP-GL/2.
29107dd7cddfSDavid du Colombier
29113ff48bf5SDavid du Colombier<h3><a name="V4.33_Documentation"></a>Documentation</h3><pre>
29127dd7cddfSDavid du Colombier
29137dd7cddfSDavid du ColombierAdds considerable new material to the C style document.  (c-style.txt)
29147dd7cddfSDavid du Colombier
29157dd7cddfSDavid du ColombierChanges -cckr to -ansi in the SGI build procedure.  (make.txt)
29167dd7cddfSDavid du Colombier
29177dd7cddfSDavid du ColombierCorrects an error in the description of the .type42execchar operator.
29187dd7cddfSDavid du Colombier(gs_typ42.ps)
29197dd7cddfSDavid du Colombier
29203ff48bf5SDavid du Colombier</pre><h3><a name="V4.33_Procedures"></a>Procedures</h3><pre>
29217dd7cddfSDavid du Colombier
29227dd7cddfSDavid du ColombierFixes bugs:
29237dd7cddfSDavid du Colombier	- The 'man' pages were installed in the documentation directory as
29247dd7cddfSDavid du Colombierwell as in the man directory.  (unix-end.mak)
29257dd7cddfSDavid du Colombier
29263ff48bf5SDavid du Colombier</pre><h3><a name="V4.33_Interpreter"></a>Interpreter</h3><pre>
29277dd7cddfSDavid du Colombier
29287dd7cddfSDavid du ColombierAdds support for CID-keyed fonts.  There is no CMap support yet, and some
29297dd7cddfSDavid du Colombierthings are done with hacks.  (int.mak, gs_cidfn.ps, gs_cmap.ps, ichar.h,
29307dd7cddfSDavid du Colombierzchar.c, zchar2.c, zchar42.c, zfont2.c, zfont42.c, zcid.c)
29317dd7cddfSDavid du Colombier
29327dd7cddfSDavid du ColombierAdds operators for accessing the new dash adaptation and dot length
29337dd7cddfSDavid du Colombierparameters in the graphics state.  (gs_init.ps, zgstate.c)
29347dd7cddfSDavid du Colombier
29353ff48bf5SDavid du Colombier</pre><h3><a name="V4.33_Library"></a>Library</h3><pre>
29367dd7cddfSDavid du Colombier
29377dd7cddfSDavid du ColombierFixes bugs:
29387dd7cddfSDavid du Colombier	- The fast case of monobit image rendering could overwrite memory.
29397dd7cddfSDavid du Colombier(gximage1.c)
29407dd7cddfSDavid du Colombier	- The new fast implementation of rectfill didn't check for
29417dd7cddfSDavid du Colombierfixed-point overflow.  (gsdps1.c)
29427dd7cddfSDavid du Colombier	- Internally, fonts with no name all appeared to have the same name,
29437dd7cddfSDavid du Colombierpossibly confusing the xfont machinery.  (gxccman.c)
29447dd7cddfSDavid du Colombier	- A cast to remove const was omitted, upsetting some compilers.
29457dd7cddfSDavid du Colombier(gximage1.c)
29467dd7cddfSDavid du Colombier	- The driver's stroke_path routine was not called if the logical
29477dd7cddfSDavid du Colombieroperation was not the default one.  (gxpaint.c)
29487dd7cddfSDavid du Colombier
29497dd7cddfSDavid du ColombierAdds support for CID-keyed fonts.  (gsccode.h, gxfont.h)
29507dd7cddfSDavid du Colombier
29517dd7cddfSDavid du ColombierAdds a new "dash pattern adaptation" flag in the imager state.  When this
29527dd7cddfSDavid du Colombierflag is set and a dash pattern is in effect, each line segment will receive
29537dd7cddfSDavid du Colombieran integral number of repetitions of the dash pattern (if necessary, rounded
29547dd7cddfSDavid du Colombierup).  (gsline.h, gxline.h, gsline.c, gsstate.c, gxpdash.c)
29557dd7cddfSDavid du Colombier
29567dd7cddfSDavid du ColombierAdds a new "dot length" parameter to the imager state.  If this parameter is
29577dd7cddfSDavid du Colombiernon-zero, it gives a length for rendering dots (zero-length lines).  See
29587dd7cddfSDavid du Colombierlanguage.txt for details.  (gsline.h, gxline.h, gsline.c, gsstate.c,
29597dd7cddfSDavid du Colombiergxstroke.c)
29607dd7cddfSDavid du Colombier
29617dd7cddfSDavid du ColombierExtends band lists so they can handle dash pattern adaptation and dot
29627dd7cddfSDavid du Colombierlength.  (gxcldev.h, gxclpath.h, gxclpath.c, gxclread.c)
29637dd7cddfSDavid du Colombier
29647dd7cddfSDavid du ColombierAdds a floating point emulator to allow more realistic profiling of
29657dd7cddfSDavid du Colombierconfigurations without a FPU.  (gsfemu.c)
29667dd7cddfSDavid du Colombier
29673ff48bf5SDavid du Colombier</pre>
29687dd7cddfSDavid du Colombier
29693ff48bf5SDavid du Colombier<h2><a name="Version4.32"></a>Version 4.32 (limited) (11/1/96)</h2>
29703ff48bf5SDavid du Colombier
29713ff48bf5SDavid du Colombier<p>
29727dd7cddfSDavid du ColombierThis fixes a couple more bugs, most notably the infamous "pixel stripe" bug.
29737dd7cddfSDavid du Colombier
29743ff48bf5SDavid du Colombier<h3><a name="V4.32_Documentation"></a>Documentation</h3><pre>
29757dd7cddfSDavid du Colombier
29767dd7cddfSDavid du ColombierFixes bugs:
29777dd7cddfSDavid du Colombier	- The documentation said that Ghostscript could not interpret
29787dd7cddfSDavid du Colombierencrypted PDF files.  (language.txt)
29797dd7cddfSDavid du Colombier	- A number of Ghostscript's extensions to the PostScript language
29807dd7cddfSDavid du Colombierwere missing.  (language.txt)
29817dd7cddfSDavid du Colombier
29823ff48bf5SDavid du Colombier</pre><h3><a name="V4.32_Drivers"></a>Drivers</h3><pre>
29837dd7cddfSDavid du Colombier
29847dd7cddfSDavid du ColombierFixes bugs:
29857dd7cddfSDavid du Colombier	- A compiler complained about initializing an unsigned variable with
29867dd7cddfSDavid du Colombiera negative value.  (gdevx.c)
29877dd7cddfSDavid du Colombier	- An off-by-1 allocation error could cause memory overwriting.
29887dd7cddfSDavid du Colombier(gdevepsc.c)
29897dd7cddfSDavid du Colombier
29903ff48bf5SDavid du Colombier</pre><h3><a name="V4.32_Platforms"></a>Platforms</h3><pre>
29917dd7cddfSDavid du Colombier
29927dd7cddfSDavid du ColombierDeclares a pointer 'const' that is actually only used for reading.
29937dd7cddfSDavid du Colombier(gp_unifs.c)
29947dd7cddfSDavid du Colombier
29953ff48bf5SDavid du Colombier</pre><h3><a name="V4.32_Fonts"></a>Fonts</h3><pre>
29967dd7cddfSDavid du Colombier
29977dd7cddfSDavid du ColombierFixes bugs:
29987dd7cddfSDavid du Colombier	- The code for adding nominal UnderlinePosition and
29997dd7cddfSDavid du ColombierUnderlineThickness entries to FontInfo assumed (incorrectly) that all Type 1
30007dd7cddfSDavid du Colombierfonts had FontBBox entries.  (gs_type1.ps)
30017dd7cddfSDavid du Colombier
30027dd7cddfSDavid du ColombierBrings CIDFont support closer to reality.  It doesn't work yet, though.
30037dd7cddfSDavid du Colombier(gs_cidfn.ps, gs_fonts.ps, gs_init.ps, gs_res.ps, gs_typ42.ps)
30047dd7cddfSDavid du Colombier
30053ff48bf5SDavid du Colombier</pre><h3><a name="V4.32_Interpreter"></a>Interpreter</h3><pre>
30067dd7cddfSDavid du Colombier
30077dd7cddfSDavid du ColombierRemoves a redundant implementation of initgraphics.  (gs_init.ps)
30087dd7cddfSDavid du Colombier
30097dd7cddfSDavid du ColombierSpeeds up rectfill a little for the common case (4 numbers on the stack).
30107dd7cddfSDavid du Colombier(zdps1.c)
30117dd7cddfSDavid du Colombier
30123ff48bf5SDavid du Colombier</pre><h3><a name="V4.32_Library"></a>Library</h3><pre>
30137dd7cddfSDavid du Colombier
30147dd7cddfSDavid du ColombierFixes bugs:
30157dd7cddfSDavid du Colombier	- Zero-width, 1-bit-deep, landscape or portrait images could
30167dd7cddfSDavid du Colombieroverwrite memory ad lib.  (gximage1.c)
30177dd7cddfSDavid du Colombier	- A procedure was declared 'static' inconsistently, upsetting many
30187dd7cddfSDavid du Colombiercompilers (but not gcc, which, in contradiction to the ANSI standard,
30197dd7cddfSDavid du Colombierdoesn't check this properly).  (gxcpath.c)
30207dd7cddfSDavid du Colombier	- A local variable was initialized with a value computed from a
30217dd7cddfSDavid du Colombiervariable that hadn't been set yet, leading to possibly incorrect coloring of
30227dd7cddfSDavid du Colombierthe first run of pixels in images with 12 bits per sample.  (gximage4.c)
30237dd7cddfSDavid du Colombier	- A compiler complained about initializing an unsigned variable with
30247dd7cddfSDavid du Colombiera negative value.  (shcgen.c)
30257dd7cddfSDavid du Colombier	- A rounding problem could produce a vertical stripe of 1 (or on
30267dd7cddfSDavid du Colombiervery large images possibly more) incorrect pixels at the right edge of a
30277dd7cddfSDavid du Colombier1-bit-deep image.  (gxdda.h, gximage1.c)
30287dd7cddfSDavid du Colombier
30297dd7cddfSDavid du ColombierSpeeds up gs_rectfill substantially for the portrait/landscape case with a
30307dd7cddfSDavid du Colombierrectangular clipping region.  (gsdps1.c)
30317dd7cddfSDavid du Colombier
30327dd7cddfSDavid du ColombierAdds a parameter so we can include gx_line_params in subclasses.  (gzline.h)
30337dd7cddfSDavid du Colombier
30343ff48bf5SDavid du Colombier</pre>
30357dd7cddfSDavid du Colombier
30363ff48bf5SDavid du Colombier<h2><a name="Version4.31"></a>Version 4.31 (limited) (10/27/96)</h2>
30373ff48bf5SDavid du Colombier
30383ff48bf5SDavid du Colombier<p>
30397dd7cddfSDavid du ColombierThis is primarily a bug fix release for 4.30, which we had hoped wouldn't be
30407dd7cddfSDavid du Colombiernecessary....
30417dd7cddfSDavid du Colombier
30423ff48bf5SDavid du Colombier<h3><a name="V4.31_Documentation"></a>Documentation</h3><pre>
30437dd7cddfSDavid du Colombier
30447dd7cddfSDavid du ColombierFixes bugs:
30457dd7cddfSDavid du Colombier	- The comment describing the order of coefficients in a CTM written
30467dd7cddfSDavid du Colombieron the band list was wrong.  (gxclpath.h)
30477dd7cddfSDavid du Colombier
30483ff48bf5SDavid du Colombier</pre><h3><a name="V4.31_Procedures"></a>Procedures</h3><pre>
30497dd7cddfSDavid du Colombier
30507dd7cddfSDavid du ColombierFixes bugs:
30517dd7cddfSDavid du Colombier	- bug-form.txt wasn't installed by 'make install'.  (unix-end.mak)
30527dd7cddfSDavid du Colombier	- The default flags in ugcclib.mak didn't take the gcc code
30537dd7cddfSDavid du Colombiergeneration bug into account.  (ugcclib.mak)
30547dd7cddfSDavid du Colombier
30553ff48bf5SDavid du Colombier</pre><h3><a name="V4.31_Platforms"></a>Platforms</h3><pre>
30567dd7cddfSDavid du Colombier
30577dd7cddfSDavid du ColombierFixes bugs:
30587dd7cddfSDavid du Colombier	- MetroWerks CodeWarrior predefines true and false, causing
30597dd7cddfSDavid du Colombiercompilation errors on the Mac.  (stdpre.h)
30607dd7cddfSDavid du Colombier
30613ff48bf5SDavid du Colombier</pre><h3><a name="V4.31_Interpreter"></a>Interpreter</h3><pre>
30627dd7cddfSDavid du Colombier
30637dd7cddfSDavid du ColombierUpdates code for the change in the ENUM_PTR macros.  (iscan.c)
30647dd7cddfSDavid du Colombier
30657dd7cddfSDavid du ColombierChanges the allocator to keep track of "lost" ref space separately, to allow
30667dd7cddfSDavid du Colombieran independent check on its activities.  (gxalloc.h, ialloc.c, isave.c)
30677dd7cddfSDavid du Colombier
30687dd7cddfSDavid du ColombierChanges the garbage collector API slightly to allow implementation of the
30697dd7cddfSDavid du ColombierAPI in applications other than PostScript interpreters.  (ivmspace.h,
30707dd7cddfSDavid du Colombierireclaim.c, igc.c)
30717dd7cddfSDavid du Colombier
30723ff48bf5SDavid du Colombier</pre><h3><a name="V4.31_Interpreter_PDF"></a>Interpreter (PDF)</h3><pre>
30737dd7cddfSDavid du Colombier
30747dd7cddfSDavid du ColombierImplements the PDF 1.1 BX and EX operators.  (pdf_base.ps, pdf_main.ps)
30757dd7cddfSDavid du Colombier
30763ff48bf5SDavid du Colombier</pre><h3><a name="V4.31_Streams"></a>Streams</h3><pre>
30777dd7cddfSDavid du Colombier
30787dd7cddfSDavid du ColombierFixes bugs:
30797dd7cddfSDavid du Colombier	- Some (harmless) pointer incompatibilities upset some compilers.
30807dd7cddfSDavid du Colombier(szlibd.c, szlibe.c)
30817dd7cddfSDavid du Colombier
30827dd7cddfSDavid du ColombierUpdates code for the change in the ENUM_PTR macros.  (stream.c)
30837dd7cddfSDavid du Colombier
30843ff48bf5SDavid du Colombier</pre><h3><a name="V4.31_Library"></a>Library</h3><pre>
30857dd7cddfSDavid du Colombier
30867dd7cddfSDavid du ColombierFixes bugs:
30877dd7cddfSDavid du Colombier	- A label in the ENUM_PTR procedure generating macros was often not
30887dd7cddfSDavid du Colombierreferenced, leading to compiler warnings.  (gsstruct.h, gxxfont.h,
30897dd7cddfSDavid du Colombiergdevmem.c, gschar.c, gscolor2.c, gsdevice.c, gsfont0.c, gsht.c, gsstate.c,
30907dd7cddfSDavid du Colombiergxcpath.c, gximage.c)
30917dd7cddfSDavid du Colombier	- Using the gstate version of setflat rather than the imager version
30927dd7cddfSDavid du Colombiercaused compiler warnings (and, in some cases, errors).  (gstype1.c)
30937dd7cddfSDavid du Colombier	- Non-standard ImageMatrix values for banded images didn't work.
30947dd7cddfSDavid du Colombier(This wasn't actually used.)  (gxclread.c)
30957dd7cddfSDavid du Colombier	- imagemask with a halftone and portrait orientation colored some
30967dd7cddfSDavid du Colombierinappropriate pixels.  (bug introduced in 4.30) (gximage2.c)
30977dd7cddfSDavid du Colombier	- When banding, if a character straddled a band boundary the first
30987dd7cddfSDavid du Colombiertime it occurred, all occurrences of it were clipped.  (bug introduced in
30997dd7cddfSDavid du Colombier4.2x or 4.30) (gxclimag.c)
31007dd7cddfSDavid du Colombier	- Degenerate clipping rectangles sometimes got turned into
31017dd7cddfSDavid du Colombiernon-degenerate ones by swapping the min and max coordinates.  (gxcpath.c)
31027dd7cddfSDavid du Colombier	- Resizing an object either allocated a new object unnecessarily
31037dd7cddfSDavid du Colombier(performance bug only), or in very rare cases could corrupt memory.
31047dd7cddfSDavid du Colombier(gsalloc.c)
31057dd7cddfSDavid du Colombier	- Very small objects didn't get put on a free list when freed.
31067dd7cddfSDavid du Colombier(Performance bug only.) (gsalloc.c)
31077dd7cddfSDavid du Colombier	- Some pointers were incorrectly declared 'const', upsetting some
31087dd7cddfSDavid du Colombiercompilers.  (gxclread.c)
31097dd7cddfSDavid du Colombier
31107dd7cddfSDavid du ColombierAdds more tracing output for -ZL.  (gxclread.c)
31117dd7cddfSDavid du Colombier
31127dd7cddfSDavid du ColombierChanges the -Za tracing output slightly to aid mechanical analysis of
31137dd7cddfSDavid du Colombierallocation traces: allocation events now always include a '+', deallocation
31147dd7cddfSDavid du Colombierevents always include a '-', and the address is always the address of the
31157dd7cddfSDavid du Colombierobject data and not the header.  (gsalloc.c, gsmemory.c)
31167dd7cddfSDavid du Colombier
31177dd7cddfSDavid du ColombierChanges the allocator to keep track of "lost" object and string space
31187dd7cddfSDavid du Colombierseparately, to allow an independent check on its activities.  (gxalloc.h,
31197dd7cddfSDavid du Colombiergsalloc.c)
31207dd7cddfSDavid du Colombier
31217dd7cddfSDavid du ColombierChanges the allocator to use 'memmove' in an obvious place.  (gsalloc.c)
31227dd7cddfSDavid du Colombier
31237dd7cddfSDavid du ColombierProvides a garbage collector API at the library level to allow
31247dd7cddfSDavid du Colombierimplementation of the API in applications other than PostScript
31257dd7cddfSDavid du Colombierinterpreters.  (gsgc.h)
31267dd7cddfSDavid du Colombier
31273ff48bf5SDavid du Colombier</pre>
31287dd7cddfSDavid du Colombier
31293ff48bf5SDavid du Colombier<h2><a name="Version4.30"></a>Version 4.30 (limited) (10/23/96)</h2>
31303ff48bf5SDavid du Colombier
31313ff48bf5SDavid du Colombier<p>
31327dd7cddfSDavid du ColombierThe main purpose of this release is to implement a substantial change in the
31337dd7cddfSDavid du Colombier"high level" image API, after which we believe this API will be stable.
31347dd7cddfSDavid du Colombier
31353ff48bf5SDavid du Colombier<h3><a name="V4.30_Documentation"></a>Documentation</h3><pre>
31367dd7cddfSDavid du Colombier
31377dd7cddfSDavid du ColombierDocuments the changes in the begin_image and image_data device procedures.
31387dd7cddfSDavid du Colombier(drivers.txt)
31397dd7cddfSDavid du Colombier
31403ff48bf5SDavid du Colombier</pre><h3><a name="V4.30_Drivers"></a>Drivers</h3><pre>
31417dd7cddfSDavid du Colombier
31427dd7cddfSDavid du ColombierSpeeds up the PDF writer a little by reducing the amount of allocation,
31437dd7cddfSDavid du Colombierwhich was causing very frequent garbage collections.  (gs_pdfwr.ps,
31447dd7cddfSDavid du Colombiergdevpdft.c)
31457dd7cddfSDavid du Colombier
31467dd7cddfSDavid du ColombierUpdates the PDF writer for the change in begin_image/image_data.
31477dd7cddfSDavid du Colombier(gdevpdfi.c)
31487dd7cddfSDavid du Colombier
31493ff48bf5SDavid du Colombier</pre><h3><a name="V4.30_Platforms"></a>Platforms</h3><pre>
31507dd7cddfSDavid du Colombier
31517dd7cddfSDavid du ColombierFixes bugs:
31527dd7cddfSDavid du Colombier	- Some versions of the SGI IRIX compiler have a bug that causes them
31537dd7cddfSDavid du Colombierto try to expand macros that require arguments even when the macro name
31547dd7cddfSDavid du Colombierisn't followed by a left parenthesis.  (gdevsgi.h, gdevsgi.c)
31557dd7cddfSDavid du Colombier	- The IBM RS6000 compilers now provide &lt;stdlib.h&gt;, so our
31567dd7cddfSDavid du Colombierdefinitions of malloc and free caused a conflict.  (malloc_.h)
31577dd7cddfSDavid du Colombier
31583ff48bf5SDavid du Colombier</pre><h3><a name="V4.30_Fonts"></a>Fonts</h3><pre>
31597dd7cddfSDavid du Colombier
31607dd7cddfSDavid du ColombierFixes bugs:
31617dd7cddfSDavid du Colombier	- Many Fontmaps included obsolete references to an old
31627dd7cddfSDavid du ColombierHelvetica-Narrow font.  (Fontmap.*)
31637dd7cddfSDavid du Colombier
31647dd7cddfSDavid du ColombierMakes the GS_FONTPATH directory scanner a little more liberal about what
31657dd7cddfSDavid du Colombierfiles it examines: it will now examine any file whose first line begins with
31667dd7cddfSDavid du Colombier%!PS-Adobe or %!FontType.  (gs_fonts.ps)
31677dd7cddfSDavid du Colombier
31687dd7cddfSDavid du ColombierTo match an apparent Adobe convention, augments findfont so that if a font
31697dd7cddfSDavid du Colombierisn't in the Fontmap, it will try to load a file whose name is the same as
31707dd7cddfSDavid du Colombierthe font name.  (gs_fonts.ps)
31717dd7cddfSDavid du Colombier
31727dd7cddfSDavid du ColombierTo make some questionable Apple font inquiry code work, augments the
31737dd7cddfSDavid du ColombierFAKEFONTS facility so that it sets the FontType of fake fonts to 1.
31747dd7cddfSDavid du Colombier(gs_fonts.ps)
31757dd7cddfSDavid du Colombier
31763ff48bf5SDavid du Colombier</pre><h3><a name="V4.30_Interpreter"></a>Interpreter</h3><pre>
31777dd7cddfSDavid du Colombier
31787dd7cddfSDavid du ColombierFixes bugs:
31797dd7cddfSDavid du Colombier	- .checkpassword, .putdeviceparams, .putdevparams, setsystemparams,
31807dd7cddfSDavid du Colombierand setuserparams didn't free the results byte array, causing a memory leak
31817dd7cddfSDavid du Colombier(until the next garbage collection).  (zdevice.c, ziodev.c, zusparam.c)
31827dd7cddfSDavid du Colombier
31833ff48bf5SDavid du Colombier</pre><h3><a name="V4.30_Library"></a>Library</h3><pre>
31847dd7cddfSDavid du Colombier
31857dd7cddfSDavid du ColombierFixes bugs:
31867dd7cddfSDavid du Colombier	- The code for emulating floating point multiplication with
31877dd7cddfSDavid du Colombierconversion to fixed point didn't detect overflow correctly, which could
31887dd7cddfSDavid du Colombierproduce incorrect results instead of a limitcheck.  (gsmisc.c)
31897dd7cddfSDavid du Colombier	- A macro cast a pointer incorrectly, leading to spurious compiler
31907dd7cddfSDavid du Colombierwarnings.  (gxfixed.h)
31917dd7cddfSDavid du Colombier	- The code for emulating fixed-to-float conversion computed the
31927dd7cddfSDavid du Colombierexponent incorrectly.  (gsmisc.c)
31937dd7cddfSDavid du Colombier	- The algorithm for advancing a DDA a given number of steps (not
31947dd7cddfSDavid du Colombieractually used anywhere before this version) was wrong.  (gxdda.h)
31957dd7cddfSDavid du Colombier	- The clipping box returned by clipping devices was incorrect,
31967dd7cddfSDavid du Colombiercausing parts of the page to disappear.  (bug introduced in 4.20)
31977dd7cddfSDavid du Colombier(gxcpath.c)
31987dd7cddfSDavid du Colombier
31997dd7cddfSDavid du ColombierChanges the begin_image and image_data device procedures:
32007dd7cddfSDavid du Colombier	- begin_image now takes an optional subrectangle instead of a set of
32017dd7cddfSDavid du Colombiershape flags.
32027dd7cddfSDavid du Colombier	- image_data now always takes complete rows of pixels, takes a
32037dd7cddfSDavid du Colombiersource X offset, and returns 1 when it has received all the data.
32047dd7cddfSDavid du Colombier
32057dd7cddfSDavid du ColombierThe change in begin_image and image_data is a NON-BACKWARD-COMPATIBLE CHANGE
32067dd7cddfSDavid du ColombierIN A PUBLIC INTERFACE; however, this interface was still designated "subject
32077dd7cddfSDavid du Colombierto change", per the notes for release 3.67 and the documentation in
32087dd7cddfSDavid du Colombierdrivers.txt.  (gsiparam.h, gxclpath.h, gxdda.h, gxdevice.h, gximage.h,
32097dd7cddfSDavid du Colombiergdevbbox.c, gdevnfwd.c, gsimage.c, gxclimag.c, gxclread.c, gximage.c,
32107dd7cddfSDavid du Colombiergximage?.c)
32117dd7cddfSDavid du Colombier
32123ff48bf5SDavid du Colombier</pre>
32137dd7cddfSDavid du Colombier
32143ff48bf5SDavid du Colombier<hr>
32153ff48bf5SDavid du Colombier
32163ff48bf5SDavid du Colombier<h2><a name="Version4.21"></a>Version 4.21 (limited) (10/17/96)</h2>
32173ff48bf5SDavid du Colombier
32183ff48bf5SDavid du Colombier<p>
32197dd7cddfSDavid du ColombierThe purpose of this release is to fix bugs reported in 4.0x, 4.10, and 4.20.
32207dd7cddfSDavid du Colombier
32213ff48bf5SDavid du Colombier<h3><a name="V4.21_Documentation"></a>Documentation</h3><pre>
32227dd7cddfSDavid du Colombier
32237dd7cddfSDavid du ColombierFixes bugs:
32247dd7cddfSDavid du Colombier	- The Ghostscript man page had a .TH in the middle.  (gs.1)
32257dd7cddfSDavid du Colombier
32263ff48bf5SDavid du Colombier</pre><h3><a name="V4.21_Procedures"></a>Procedures</h3><pre>
32277dd7cddfSDavid du Colombier
32287dd7cddfSDavid du ColombierFixes bugs:
32297dd7cddfSDavid du Colombier	- The shared version of zlib was always called libgz; on most
32307dd7cddfSDavid du Colombiersystems, it is now called libz (but not on Red Hat Linux, where libz is a
32317dd7cddfSDavid du Colombierlibrary for dealing with time zones).  (*.mak, gs.mak, libpng.mak, zlib.mak)
32327dd7cddfSDavid du Colombier	- The pdf2dsc.1 man page wasn't installed on Unix systems.
32337dd7cddfSDavid du Colombier(unix-end.mak)
32347dd7cddfSDavid du Colombier	- font2c generated procedures named gsf_xxx, but genconf assumed
32357dd7cddfSDavid du Colombierthey were named gs_f_xxx.  (int.mak)
32367dd7cddfSDavid du Colombier
32373ff48bf5SDavid du Colombier</pre><h3><a name="V4.21_Drivers"></a>Drivers</h3><pre>
32387dd7cddfSDavid du Colombier
32397dd7cddfSDavid du ColombierUpdates the user-contributed LBP-8II driver to correct unspecified problems.
32407dd7cddfSDavid du Colombier(gdevlbp8.c)
32417dd7cddfSDavid du Colombier
32427dd7cddfSDavid du ColombierAdds a user-contributed driver for Avance Logic SuperVGA cards.
32437dd7cddfSDavid du Colombier(gdevsvga.c, devs.mak)
32447dd7cddfSDavid du Colombier
32453ff48bf5SDavid du Colombier</pre><h3><a name="V4.21_Platforms"></a>Platforms</h3><pre>
32467dd7cddfSDavid du Colombier
32477dd7cddfSDavid du ColombierFixes bugs:
32487dd7cddfSDavid du Colombier	- On Windows NT, a 32-bit parameter was truncated to 16 bits,
32497dd7cddfSDavid du Colombierpreventing drawing of scroll bars of the image window when the window is
32507dd7cddfSDavid du Colombieruncovered.  (dwimg.cpp)
32517dd7cddfSDavid du Colombier
32523ff48bf5SDavid du Colombier</pre><h3><a name="V4.21_Fonts"></a>Fonts</h3><pre>
32537dd7cddfSDavid du Colombier
32547dd7cddfSDavid du ColombierFixes bugs:
32557dd7cddfSDavid du Colombier	- The free URW Grotesk and Antiqua fonts were omitted from the
32567dd7cddfSDavid du Colombierdistribution.
32577dd7cddfSDavid du Colombier
32583ff48bf5SDavid du Colombier</pre><h3><a name="V4.21_Interpreter"></a>Interpreter</h3><pre>
32597dd7cddfSDavid du Colombier
32607dd7cddfSDavid du ColombierFixes bugs:
32617dd7cddfSDavid du Colombier	- Defining a new global instance of a built-in resource
32627dd7cddfSDavid du Colombier(ColorRendering, ColorSpace, Form, Halftone, Pattern, ProcSet) caused an
32637dd7cddfSDavid du Colombierinvalidaccess error.  (gs_res.ps)
32647dd7cddfSDavid du Colombier	- pathbbox with no current path left an extra item on the stack when
32657dd7cddfSDavid du Colombierthe error occurred.  (gs_init.ps)
32667dd7cddfSDavid du Colombier	- findresource for an undefined resource instance didn't preserve
32677dd7cddfSDavid du Colombierthe contents of the stack.  (gs_res.ps)
32687dd7cddfSDavid du Colombier
32697dd7cddfSDavid du ColombierAdds a new file providing a procedural interface with a very rudimentary
32707dd7cddfSDavid du Colombierform of job encapsulation.  (gserver.c)
32717dd7cddfSDavid du Colombier
32727dd7cddfSDavid du ColombierChanges the initial value of MaxOpStack to 20000, for the sake of a few
32737dd7cddfSDavid du Colombierbadly-behaved files.  (gs_init.ps, pdf_base.ps)
32747dd7cddfSDavid du Colombier
32753ff48bf5SDavid du Colombier</pre><h3><a name="V4.21_Library"></a>Library</h3><pre>
32767dd7cddfSDavid du Colombier
32777dd7cddfSDavid du ColombierFixes bugs:
32787dd7cddfSDavid du Colombier	- If the image operators failed to allocated their bookkeeping
32797dd7cddfSDavid du Colombierstructure, the result was a crash rather than VMerror.  (gximage.c)
32807dd7cddfSDavid du Colombier	- gx_default_fill_triangle (currently used only to implement the
32817dd7cddfSDavid du Colombierfastest case of stroke) had a typo that could cause a numeric exception or
32827dd7cddfSDavid du Colombierincorrect output, and another typo that could produce incorrect output.
32837dd7cddfSDavid du Colombier(gdevddrw.c)
32847dd7cddfSDavid du Colombier	- When banding, if the first occurrence of a character fell partly
32857dd7cddfSDavid du Colombieroff the page, all occurrences of that character on the page could be clipped
32867dd7cddfSDavid du Colombieror mangled.  (gxclbits.c, gxclimag.c)
32877dd7cddfSDavid du Colombier	- When testing whether it's worthwhile compressing a bitmap for
32887dd7cddfSDavid du Colombierbanding, the compressor was allowed to generate a lot more output than
32897dd7cddfSDavid du Colombierneeded to make the test.  (gxclbits.c)
32907dd7cddfSDavid du Colombier	- Certain cases of unrotated gray-scale images dropped the first or
32917dd7cddfSDavid du Colombierlast pixel of each scan line.  (gximage2.c)
32927dd7cddfSDavid du Colombier	- In rare cases, a run of pixels in a image could get erroneously
32937dd7cddfSDavid du Colombierdisplayed in the same color as the previous run, because of a cache
32947dd7cddfSDavid du Colombierbookkeeping bug.  (gximage3.c)
32957dd7cddfSDavid du Colombier	- The sample driver for the library had gotten inconsistent with a
32967dd7cddfSDavid du Colombierheader file.  (gslib.c)
32977dd7cddfSDavid du Colombier	- A declaration was followed by an extraneous semicolon, which upset
32987dd7cddfSDavid du Colombiersome compilers.  (gxht.h)
32997dd7cddfSDavid du Colombier	- Missing parentheses caused a test for thin lines to be incorrect.
33007dd7cddfSDavid du Colombier(gxstroke.c)
33017dd7cddfSDavid du Colombier
33023ff48bf5SDavid du Colombier</pre>
33037dd7cddfSDavid du Colombier
33043ff48bf5SDavid du Colombier<h2><a name="Version4.20"></a>Version 4.20 (limited) (10/13/96)</h2>
33053ff48bf5SDavid du Colombier
33063ff48bf5SDavid du Colombier<p>
33077dd7cddfSDavid du ColombierThis release has internal changes for future support of banded image
33087dd7cddfSDavid du Colombierprocessing, but no externally visible changes.  Its primary purpose is to
33097dd7cddfSDavid du Colombierincorporate speedups for clipped images.  It does *not* incorporate fixes
33107dd7cddfSDavid du Colombierfor all problems reported in 4.0x or 4.10.
33117dd7cddfSDavid du Colombier
33123ff48bf5SDavid du Colombier<h3><a name="V4.20_Documentation"></a>Documentation</h3><pre>
33137dd7cddfSDavid du Colombier
33147dd7cddfSDavid du ColombierDocuments the new get_clipping_box device procedure.  (drivers.txt)
33157dd7cddfSDavid du Colombier
33163ff48bf5SDavid du Colombier</pre><h3><a name="V4.20_Procedures"></a>Procedures</h3><pre>
33177dd7cddfSDavid du Colombier
33187dd7cddfSDavid du ColombierFixes bugs:
33197dd7cddfSDavid du Colombier	- There were many, many minor inconsistencies between the makefiles
33207dd7cddfSDavid du Colombierand the source code.  (We finally have an automated tool to detect these.)
33217dd7cddfSDavid du Colombier(devs.mak, int.mak, lib.mak, unixtail.mak; gsutil.c, zwppm.c)
33227dd7cddfSDavid du Colombier	- Some makefile rules weren't properly terminated by a blank line.
33237dd7cddfSDavid du Colombier(lib.mak)
33247dd7cddfSDavid du Colombier
33253ff48bf5SDavid du Colombier</pre><h3><a name="V4.20_Utilities"></a>Utilities</h3><pre>
33267dd7cddfSDavid du Colombier
33277dd7cddfSDavid du ColombierFixes bugs:
33287dd7cddfSDavid du Colombier	- The comments in gslp.ps had gotten out of date.  (gslp.ps)
33297dd7cddfSDavid du Colombier
33307dd7cddfSDavid du ColombierAdds --no-eject-file and --no-eject-formfeed switches to gslp.ps, to allow
33317dd7cddfSDavid du Colombierpacking files in multi-column printouts.  (gslp.ps)
33327dd7cddfSDavid du Colombier
33333ff48bf5SDavid du Colombier</pre><h3><a name="V4.20_Drivers"></a>Drivers</h3><pre>
33347dd7cddfSDavid du Colombier
33357dd7cddfSDavid du ColombierAdds a user-contributed driver for the Epson LP-8000 laser printer.
33367dd7cddfSDavid du Colombier(gdevlp8k.c)
33377dd7cddfSDavid du Colombier
33387dd7cddfSDavid du ColombierAdds a DisplayMode parameter to the vgalib device.  (gdevvglb.c)
33397dd7cddfSDavid du Colombier
33407dd7cddfSDavid du ColombierRemoves the requirement of typing a character at the end of each page using
33417dd7cddfSDavid du Colombierthe vgalib driver.  THIS IS A USER-VISIBLE, NON-BACKWARD-COMPATIBLE CHANGE.
33427dd7cddfSDavid du Colombier(gdevvglb.c)
33437dd7cddfSDavid du Colombier
33443ff48bf5SDavid du Colombier</pre><h3><a name="V4.20_Interpreter"></a>Interpreter</h3><pre>
33457dd7cddfSDavid du Colombier
33467dd7cddfSDavid du ColombierUpdates code to accommodate the new get_clipping_box device procedure.
33477dd7cddfSDavid du Colombier(zupath.c)
33487dd7cddfSDavid du Colombier
33493ff48bf5SDavid du Colombier</pre><h3><a name="V4.20_Library"></a>Library</h3><pre>
33507dd7cddfSDavid du Colombier
33517dd7cddfSDavid du ColombierFixes bugs:
33527dd7cddfSDavid du Colombier	- When a CTM was passed through the band list, it didn't get
33537dd7cddfSDavid du Colombiertranslated to match the band coordinate system.  (This had no effect,
33547dd7cddfSDavid du Colombierbecause the translation part of the CTM was never used.)  (gxclread.c)
33557dd7cddfSDavid du Colombier
33567dd7cddfSDavid du ColombierAdds a ',' debugging switch to disable high-level operations when banding.
33577dd7cddfSDavid du Colombier(gxclpath.c)
33587dd7cddfSDavid du Colombier
33597dd7cddfSDavid du ColombierAdds an optional get_clipping_box device procedure, so that filling and
33607dd7cddfSDavid du Colombierstroking can clip more aggressively.  (gdevmem.h, gdevprn.h, gxdevice.h,
33617dd7cddfSDavid du Colombiergxpaint.h, gxpath.h, gzacpath.h, gdevdflt.c, gdevht.c, gdevnfwd.c,
33627dd7cddfSDavid du Colombiergxacpath.c, gxclip2.c, gxclist.c, gxcpath.c, gxpcmap.c, gxfill.c,
33637dd7cddfSDavid du Colombiergxstroke.c)
33647dd7cddfSDavid du Colombier
33657dd7cddfSDavid du ColombierSpeeds up clipped filling and stroking, by checking against the device
33667dd7cddfSDavid du Colombierclipping box.  (gxfill.c, gxstroke.c)
33677dd7cddfSDavid du Colombier
33687dd7cddfSDavid du ColombierAdds the ability to clip with a rectangle a clipping path being accumulated,
33697dd7cddfSDavid du Colombierand uses it to do more aggressive clipping when banding.  (gzacpath.h,
33707dd7cddfSDavid du Colombiergxacpath.c, gxclread.c)
33717dd7cddfSDavid du Colombier
33727dd7cddfSDavid du ColombierSpeeds up clipping of objects lying partly above or below the clipping
33737dd7cddfSDavid du Colombierregion.  (gxcpath.c)
33747dd7cddfSDavid du Colombier
33757dd7cddfSDavid du ColombierSpeeds up clipping vertically-oriented objects (such as 90 degree rotated
33767dd7cddfSDavid du Colombierimages or vertical rectangles) with convex clipping regions, by checking for
33777dd7cddfSDavid du Colombiervertical rectangles contained in multiple clipping rectangles.  (gxcpath.c)
33787dd7cddfSDavid du Colombier
33797dd7cddfSDavid du ColombierSpeeds up the handling of 90 degree rotated gray-scale images.  (gximage2.c)
33807dd7cddfSDavid du Colombier
33817dd7cddfSDavid du ColombierEnhances the band list so that it can contain commands for a range of bands,
33827dd7cddfSDavid du Colombiernot just a single band or all bands.  (gxcldev.h, gxclist.h, gxclbits.c,
33837dd7cddfSDavid du Colombiergxclist.c, gxclread.c)
33847dd7cddfSDavid du Colombier
33857dd7cddfSDavid du ColombierAdds an operation to the DDA structure, for eventual support of clipped
33867dd7cddfSDavid du Colombierimages.  (gxdda.h)
33877dd7cddfSDavid du Colombier
33887dd7cddfSDavid du ColombierFactors out some macros useful for generating bit-transformation tables.
33897dd7cddfSDavid du Colombier(gsbittab.h, gsbittab.c, gsflip.c)
33907dd7cddfSDavid du Colombier
33913ff48bf5SDavid du Colombier</pre>
33927dd7cddfSDavid du Colombier
33933ff48bf5SDavid du Colombier<hr>
33943ff48bf5SDavid du Colombier
33953ff48bf5SDavid du Colombier<h2><a name="Version4.10"></a>Version 4.10 (limited) (9/25/96)</h2>
33963ff48bf5SDavid du Colombier
33973ff48bf5SDavid du Colombier<p>
33987dd7cddfSDavid du ColombierThis release adds local garbage collection, and a number of performance
33997dd7cddfSDavid du Colombierimprovements for garbage collection in general.  We will support it for one
34007dd7cddfSDavid du Colombieror two OEMs, but it is not a public release.
34017dd7cddfSDavid du Colombier
34023ff48bf5SDavid du Colombier<h3><a name="V4.10_Documentation"></a>Documentation</h3><pre>
34037dd7cddfSDavid du Colombier
34047dd7cddfSDavid du ColombierMoves documentation for all releases before 4.0 to history3.txt.  (NEWS,
34057dd7cddfSDavid du Colombierhistory3.txt)
34067dd7cddfSDavid du Colombier
34073ff48bf5SDavid du Colombier</pre><h3><a name="V4.10_Utilities"></a>Utilities</h3><pre>
34087dd7cddfSDavid du Colombier
34097dd7cddfSDavid du ColombierFixes bugs:
34107dd7cddfSDavid du Colombier	- pdf2dsc.ps didn't have a proper license notice.  (pdf2dsc.ps)
34117dd7cddfSDavid du Colombier
34123ff48bf5SDavid du Colombier</pre><h3><a name="V4.10_Drivers"></a>Drivers</h3><pre>
34137dd7cddfSDavid du Colombier
34147dd7cddfSDavid du ColombierAdds a psgray driver, like psmono, to produce 8-bit gray PostScript (level
34157dd7cddfSDavid du Colombier1) images.  (devs.mak, *.mak, gdevpsim.c)
34167dd7cddfSDavid du Colombier
34177dd7cddfSDavid du ColombierChanges the psmono driver to allow runs of up to 255 repeated bytes.
34187dd7cddfSDavid du Colombier(gdevpsim.c)
34197dd7cddfSDavid du Colombier
34203ff48bf5SDavid du Colombier</pre><h3><a name="V4.10_Interpreter"></a>Interpreter</h3><pre>
34217dd7cddfSDavid du Colombier
34227dd7cddfSDavid du ColombierFixes bugs:
34237dd7cddfSDavid du Colombier	- setdevice erased the page even if this wasn't necessary.
34247dd7cddfSDavid du Colombier(zdevice.c)
34257dd7cddfSDavid du Colombier
34267dd7cddfSDavid du ColombierSpeeds up the garbage collector, primarily by speeding up pointer
34277dd7cddfSDavid du Colombierrelocation.  (int.mak, ipacked.h, iref.h, ialloc.c, igc.c, igcref.c)
34287dd7cddfSDavid du Colombier
34297dd7cddfSDavid du ColombierActually implements local garbage collection.  (igc.h, ivmspace.h, igc.c,
34307dd7cddfSDavid du Colombierigcref.c, igcstr.c, ireclaim.c)
34317dd7cddfSDavid du Colombier
34327dd7cddfSDavid du ColombierAdds some additional error checking for the -Z? switch.  (ilocate.c)
34337dd7cddfSDavid du Colombier
34347dd7cddfSDavid du ColombierMoves a utility for color mapping from the interpreter to the library.
34357dd7cddfSDavid du Colombier(icolor.h, zcolor.c)
34367dd7cddfSDavid du Colombier
34377dd7cddfSDavid du ColombierAdds a MinScreenLevels user parameter.  (zusparam.c)
34387dd7cddfSDavid du Colombier
34393ff48bf5SDavid du Colombier</pre><h3><a name="V4.10_Interpreter_PDF"></a>Interpreter (PDF)</h3><pre>
34407dd7cddfSDavid du Colombier
34417dd7cddfSDavid du ColombierAdds partial support for the PDF 1.2 gs operator, reverse engineered from a
34427dd7cddfSDavid du ColombierPDF 1.2 file.  (pdf_draw.ps)
34437dd7cddfSDavid du Colombier
34443ff48bf5SDavid du Colombier</pre><h3><a name="V4.10_Library"></a>Library</h3><pre>
34457dd7cddfSDavid du Colombier
34467dd7cddfSDavid du ColombierFixes bugs:
34477dd7cddfSDavid du Colombier	- The test for "thin" stroked lines incorrectly claimed some
34487dd7cddfSDavid du Colombiernon-thin lines were thin.  (gxstroke.c)
34497dd7cddfSDavid du Colombier	- The computations for halftone cells didn't work for non-square
34507dd7cddfSDavid du Colombierpixels.  (gxdht.h, gsht.c, gsht1.c, gshtscr.c)
34517dd7cddfSDavid du Colombier
34527dd7cddfSDavid du ColombierSpeeds up the garbage collector a little.  (gsstruct.h, gxalloc.h,
34537dd7cddfSDavid du Colombiergxfcache.h, gsfont.c)
34547dd7cddfSDavid du Colombier
34557dd7cddfSDavid du ColombierReplaces references to private statically allocated color spaces with
34567dd7cddfSDavid du Colombierreferences to shared dynamically allocated ones, which are guaranteed to be
34577dd7cddfSDavid du Colombierfully filled-in.  (gscie.c)
34587dd7cddfSDavid du Colombier
34597dd7cddfSDavid du ColombierMoves a utility for color mapping from the interpreter to the library.
34607dd7cddfSDavid du Colombier(gxfmap.h, gxcmap.c)
34617dd7cddfSDavid du Colombier
34627dd7cddfSDavid du ColombierMakes available an imager analogue of setmatrix.  (gscoord.h, gscoord.c)
34637dd7cddfSDavid du Colombier
34647dd7cddfSDavid du ColombierAdds a parameter to control the minimum number of halftone screen levels.
34657dd7cddfSDavid du ColombierIf a halftone cell has fewer pixels than this number, it will be replicated
34667dd7cddfSDavid du Colombier(similar to what AccurateScreens does) until the replicated screen has
34677dd7cddfSDavid du Colombierenough levels.  (gxht.h, gshtscr.c)
34687dd7cddfSDavid du Colombier
34693ff48bf5SDavid du Colombier</pre>
34707dd7cddfSDavid du Colombier
34713ff48bf5SDavid du Colombier<hr>
34723ff48bf5SDavid du Colombier
34733ff48bf5SDavid du Colombier<h2><a name="Version4.03"></a>Version 4.03 (9/23/96)</h2>
34743ff48bf5SDavid du Colombier
34753ff48bf5SDavid du Colombier<p>
34767dd7cddfSDavid du ColombierThis was an emergency re-release of 4.02 to fix the stdin redirection
34777dd7cddfSDavid du Colombierproblem.  It has essentially no other changes.
34787dd7cddfSDavid du Colombier
34793ff48bf5SDavid du Colombier<h3><a name="V4.03_Documentation"></a>Documentation</h3><pre>
34807dd7cddfSDavid du Colombier
34817dd7cddfSDavid du ColombierFixes bugs:
34827dd7cddfSDavid du Colombier	- Solaris 2.x has /usr/ucb/install, not installbsd.  (make.txt)
34837dd7cddfSDavid du Colombier
34847dd7cddfSDavid du ColombierUpdates current.txt to mention the ability to share libpng and libgz.
34857dd7cddfSDavid du Colombier(current.txt)
34867dd7cddfSDavid du Colombier
34873ff48bf5SDavid du Colombier</pre><h3><a name="V4.03_Procedures"></a>Procedures</h3><pre>
34887dd7cddfSDavid du Colombier
34897dd7cddfSDavid du ColombierFixes bugs:
34907dd7cddfSDavid du Colombier	- A rule assumed that the makefile was named `makefile'.
34917dd7cddfSDavid du Colombier(unixtail.mak)
34927dd7cddfSDavid du Colombier
34933ff48bf5SDavid du Colombier</pre><h3><a name="V4.03_Drivers"></a>Drivers</h3><pre>
34947dd7cddfSDavid du Colombier
34957dd7cddfSDavid du ColombierFixes bugs:
34967dd7cddfSDavid du Colombier	- The stcolor drivers had an off-by-1 error that could cause them to
34977dd7cddfSDavid du Colombierwrite into unallocated memory.  (gdevstc.c)
34987dd7cddfSDavid du Colombier	- The Imagen driver wouldn't compile with gcc.  (gdevimgn.c)
34997dd7cddfSDavid du Colombier
35003ff48bf5SDavid du Colombier</pre><h3><a name="V4.03_Fonts"></a>Fonts</h3><pre>
35017dd7cddfSDavid du Colombier
35027dd7cddfSDavid du ColombierFixes bugs:
35037dd7cddfSDavid du Colombier	- The Solaris fontmap had gotten out of date.  (Fontmap.Sol)
35047dd7cddfSDavid du Colombier
35053ff48bf5SDavid du Colombier</pre><h3><a name="V4.03_Streams"></a>Streams</h3><pre>
35067dd7cddfSDavid du Colombier
35077dd7cddfSDavid du ColombierFixes bugs:
35087dd7cddfSDavid du Colombier	- The test for stdin being non-seekable could leave the file error
35097dd7cddfSDavid du Colombierflag set, which caused an infinite loop when trying to read from the file
35107dd7cddfSDavid du Colombierlater.  (sfile.c, sfileno.c)
35117dd7cddfSDavid du Colombier
35123ff48bf5SDavid du Colombier</pre>
35137dd7cddfSDavid du Colombier
35143ff48bf5SDavid du Colombier<h2><a name="Version4.02"></a>Version 4.02 (9/19/96)</h2>
35153ff48bf5SDavid du Colombier
35163ff48bf5SDavid du Colombier<p>
35177dd7cddfSDavid du ColombierThis release fixes a few more bugs, and adds the ability to read encrypted
35187dd7cddfSDavid du ColombierPDF files and some PDF 1.2 files.
35197dd7cddfSDavid du Colombier
35203ff48bf5SDavid du Colombier<p>
35217dd7cddfSDavid du ColombierThis release was withdrawn after a few days because the stdin redirection
35227dd7cddfSDavid du Colombierfix, which was made at the last minute, cause Ghostview to hang.
35237dd7cddfSDavid du Colombier
35243ff48bf5SDavid du Colombier<h3><a name="V4.02_Documentation"></a>Documentation</h3><pre>
35257dd7cddfSDavid du Colombier
35267dd7cddfSDavid du ColombierFixes bugs:
35277dd7cddfSDavid du Colombier	- The list of required support files was incorrect.  (install.txt)
35287dd7cddfSDavid du Colombier	- The descriptions of file name lookup weren't accurate.  (use.txt)
35297dd7cddfSDavid du Colombier	- A J should have been an H.  (gxbitmap.h)
35307dd7cddfSDavid du Colombier
35317dd7cddfSDavid du ColombierUpdates the documentation about encrypted PDF files.  (new-user.txt)
35327dd7cddfSDavid du Colombier
35337dd7cddfSDavid du ColombierDocuments what the 13 base PDF fonts are.  (ps2pdf.txt)
35347dd7cddfSDavid du Colombier
35357dd7cddfSDavid du ColombierFixes a tiny typo.  (c-style.txt)
35367dd7cddfSDavid du Colombier
35377dd7cddfSDavid du ColombierAdds a user-contributed man page for the new pdf2dsc script.  (pdf2dsc.1)
35387dd7cddfSDavid du Colombier
35397dd7cddfSDavid du ColombierUpdates the government restricted rights notice in the Aladdin Ghostscript
35407dd7cddfSDavid du ColombierFree Public License.  (PUBLIC)
35417dd7cddfSDavid du Colombier
35427dd7cddfSDavid du ColombierAdds the URL of test files to the bug report form.  (new-user.txt)
35437dd7cddfSDavid du Colombier
35447dd7cddfSDavid du ColombierPuts the bug reporting form in a separate file.  (readme, bug-form.txt,
35457dd7cddfSDavid du Colombiernew-user.txt)
35467dd7cddfSDavid du Colombier
35477dd7cddfSDavid du ColombierNotes that map_xxx_color procedures should not return gx_no_color_index.
35487dd7cddfSDavid du Colombier(drivers.txt)
35497dd7cddfSDavid du Colombier
35507dd7cddfSDavid du ColombierNotes that Ghostscript supports the Flate filters.  (language.txt)
35517dd7cddfSDavid du Colombier
35527dd7cddfSDavid du ColombierDocuments the use of the system libpng and zlib.  (make.txt, gs.mak)
35537dd7cddfSDavid du Colombier
35547dd7cddfSDavid du ColombierNotes that Borland C++ 5.0 and 5.01 will not compile Ghostscript correctly.
35557dd7cddfSDavid du Colombier(make.txt)
35567dd7cddfSDavid du Colombier
35573ff48bf5SDavid du Colombier</pre><h3><a name="V4.02_Procedures"></a>Procedures</h3><pre>
35587dd7cddfSDavid du Colombier
35597dd7cddfSDavid du ColombierFixes bugs:
35607dd7cddfSDavid du Colombier	- Using both DELAYBIND and SAFER caused problems.  (pstotext uses
35617dd7cddfSDavid du ColombierDELAYBIND.)  (gs_init.ps)
35627dd7cddfSDavid du Colombier
35633ff48bf5SDavid du Colombier</pre><h3><a name="V4.02_Utilities"></a>Utilities</h3><pre>
35647dd7cddfSDavid du Colombier
35657dd7cddfSDavid du ColombierFixes bugs:
35667dd7cddfSDavid du Colombier	- Some pdf2ps machinery interfered with the PDF interpreter.
35677dd7cddfSDavid du Colombier(pdf_2ps.ps, pdf_main.ps)
35687dd7cddfSDavid du Colombier	- In the output of pdf2ps, page numbers in link destinations were
35697dd7cddfSDavid du Colombiertoo high by 1.  (pdf_main.ps)
35707dd7cddfSDavid du Colombier	- viewpbm didn't handle value ranges other than [0..255] correctly.
35717dd7cddfSDavid du Colombier(viewpbm.ps)
35727dd7cddfSDavid du Colombier
35737dd7cddfSDavid du ColombierAdds a user-contributed shell script to invoke pdf2dsc.ps.  (pdf2dsc,
35747dd7cddfSDavid du Colombierunix-end.mak)
35757dd7cddfSDavid du Colombier
35767dd7cddfSDavid du ColombierAdds a switch to the genconf utility to set the prefix for generated
35777dd7cddfSDavid du Colombierprocedure names.  (genconf.c)
35787dd7cddfSDavid du Colombier
35797dd7cddfSDavid du ColombierAdds the option of using system libraries (possibly shared) for libpng
35807dd7cddfSDavid du Colombierand/or zlib.  (*head.mak, msc*.mak, os2.mak, tccommon.mak, wccommon.mak;
35817dd7cddfSDavid du Colombierlibpng.mak, zlib.mak)
35827dd7cddfSDavid du Colombier
35833ff48bf5SDavid du Colombier</pre><h3><a name="V4.02_Drivers"></a>Drivers</h3><pre>
35847dd7cddfSDavid du Colombier
35857dd7cddfSDavid du ColombierFixes bugs:
35867dd7cddfSDavid du Colombier	- The X11 display devices ignored the -DA4 compile-time option.
35877dd7cddfSDavid du Colombier(gdevx.c)
35887dd7cddfSDavid du Colombier	- The garbage collector could scramble the state of the CGM drivers.
35897dd7cddfSDavid du Colombier(gxdevice.h, gdevcgm.c)
35907dd7cddfSDavid du Colombier	- An identifier of more than 31 characters upset the VAX DEC C
35917dd7cddfSDavid du Colombiercompiler.  (gdevcgml.h, gdevcgml.c)
35927dd7cddfSDavid du Colombier	- In case of an error in trying to set the CoreDistVersion distiller
35937dd7cddfSDavid du Colombierparameter, a variable could be used without initialization.  (gdevpdfp.c)
35947dd7cddfSDavid du Colombier	- When DEBUG is selected, the X Windows driver referenced _Xdebug,
35957dd7cddfSDavid du Colombierwhich is not defined in (at least the VMS version of) DECWindows.  (x_.h,
35967dd7cddfSDavid du Colombiergdevxini.c)
35977dd7cddfSDavid du Colombier	- Some map_cmyk_color implementations could return "transparent".
35987dd7cddfSDavid du Colombier(gdevbit.c)
35997dd7cddfSDavid du Colombier	- Setting GraphicsAlphaBits or TextAlphaBits in the P*M drivers
36007dd7cddfSDavid du Colombiercaused an error.  (gdevpbm.c)
36017dd7cddfSDavid du Colombier	- If a user cancelled printing under MS Windows, a confusing error
36027dd7cddfSDavid du Colombierresulted, and a temporary file wasn't deleted.  (gdevwpr2.c)
36037dd7cddfSDavid du Colombier	- The map_color_rgb procedure for the bit devices produced incorrect
36047dd7cddfSDavid du Colombierresults.  (This probably had no effect in practice.)  (gdevbit.c)
36057dd7cddfSDavid du Colombier	- The os2prn device produced incorrect output.  (gdevos2p.c)
36067dd7cddfSDavid du Colombier	- The OS/2 PM device didn't detect PM applications correctly.
36077dd7cddfSDavid du Colombier(gdevpm.c)
36087dd7cddfSDavid du Colombier	- The MS Windows printer driver didn't automatically detect the
36097dd7cddfSDavid du Colombierprinter's color capabilities.  (gdevwpr2.c)
36107dd7cddfSDavid du Colombier	- The BJC-610 driver didn't print at 720 dpi.  (gdevcdj.c)
36117dd7cddfSDavid du Colombier	- The static prototypes of many devices didn't include the far_data
36127dd7cddfSDavid du Colombierkeyword.  (gdev3852.c, gdev4081.c, gdevbgi.c, gdevcgm.c, gdevht.c,
36137dd7cddfSDavid du Colombiergdevimgn.c, gdevl256.c, gdevmrop.c, gdevn533.c, gdevnfwd.c, gdevnp6.c,
36147dd7cddfSDavid du Colombiergdevo182.c, gdevpcfb.c, gdevpdf.c, gdevpe.c, gdevpm.c, gdevs3ga.c,
36157dd7cddfSDavid du Colombiergdevsnfb.c, gdevsppr.c, gdevsun.c, gdevsvga.c, gdevtknk.c, gdevvglb.c,
36167dd7cddfSDavid du Colombiergdevwddb.c, gdevwprn.c, gdevx.c, gdevxalt.c)
36177dd7cddfSDavid du Colombier	- The (original) deskjet driver collapsed print lines towards the
36187dd7cddfSDavid du Colombierleft margin.  (gdevdjet.c)
36197dd7cddfSDavid du Colombier
36207dd7cddfSDavid du ColombierAdds to the pgm/pgnm/ppm/pnm[raw] drivers the ability to set the maximum
36217dd7cddfSDavid du Colombierpixel value, by setting any of the Gray/Red/Green/BlueValues device
36227dd7cddfSDavid du Colombierparameters.  (gdevpbm.c)
36237dd7cddfSDavid du Colombier
36247dd7cddfSDavid du ColombierAdds pkm[raw] drivers, which do all their internal computations in CMYK and
36257dd7cddfSDavid du Colombierconvert the data to RGB as they write the file.  (gdevpbm.c)
36267dd7cddfSDavid du Colombier
36273ff48bf5SDavid du Colombier</pre><h3><a name="V4.02_Platforms"></a>Platforms</h3><pre>
36287dd7cddfSDavid du Colombier
36297dd7cddfSDavid du ColombierFixes bugs:
36307dd7cddfSDavid du Colombier	- The VMS script referred to old versions of the third-party
36317dd7cddfSDavid du Colombierlibraries.  (vms.mak)
36327dd7cddfSDavid du Colombier	- Under VMS with DEC C, attempting to open a new file fails.
36337dd7cddfSDavid du Colombier(gp_vms.c)
36347dd7cddfSDavid du Colombier	- If you tried to print (gp_printfile) under Windows on a system
36357dd7cddfSDavid du Colombierwith no printers installed, Ghostscript caused a GPF.  (gp_mswin.c)
36367dd7cddfSDavid du Colombier
36377dd7cddfSDavid du ColombierRestores support for a non-DLL MS Windows platform.  (bcwin32.mak,
36387dd7cddfSDavid du Colombierdwnodll.cpp)
36397dd7cddfSDavid du Colombier
36407dd7cddfSDavid du ColombierAdds a new MS Windows DLL call, gsdll_get_bitmap.  (gsdll16.def,
36417dd7cddfSDavid du Colombiergsdll32.def, dll.txt, gdevwdib.c)
36427dd7cddfSDavid du Colombier
36437dd7cddfSDavid du ColombierFixes a variety of other small Windows- and OS/2-related problems, mostly
36447dd7cddfSDavid du Colombierrelated to printing.  (gp_mswin.h, dpmainc.c, dwmain.cpp, dwmainc.cpp,
36457dd7cddfSDavid du Colombiergdevmswn.c, gdevpm.c, gdevwpr2.c, gp_mswin.c)
36467dd7cddfSDavid du Colombier
36473ff48bf5SDavid du Colombier</pre><h3><a name="V4.02_Interpreter"></a>Interpreter</h3><pre>
36487dd7cddfSDavid du Colombier
36497dd7cddfSDavid du ColombierFixes bugs:
36507dd7cddfSDavid du Colombier	- The value of /newerror in $error was true at the end of
36517dd7cddfSDavid du Colombierinitialization.  We now reset it after each internal use of stopped if
36527dd7cddfSDavid du Colombiernecessary.  (gs_dps1.ps, gs_fform.ps, gs_fonts.ps, gs_init.ps, gs_pdf.ps,
36537dd7cddfSDavid du Colombiergs_res.ps, gs_type1.ps)
36547dd7cddfSDavid du Colombier	- setpagedevice (and finddevice) didn't recognize Default.
36557dd7cddfSDavid du Colombier(gs_init.ps)
36567dd7cddfSDavid du Colombier	- When running with -dNODISPLAY, calling gssetresolution would cause
36577dd7cddfSDavid du Colombiera crash.  (gs_init.ps)
36587dd7cddfSDavid du Colombier	- A particular combination of save, .forgetsave, and garbage
36597dd7cddfSDavid du Colombiercollection could cause a memory access error in restore.  (isave.c)
36607dd7cddfSDavid du Colombier	- Some references to systemdict were affected if a user redefined
36617dd7cddfSDavid du Colombierthe name /systemdict.  (gs_cmdl.ps, gs_fonts.ps, gs_kanji.ps, gs_dps1.ps,
36627dd7cddfSDavid du Colombiergs_init.ps, gs_res.ps, gs_statd.ps, gs_type1.ps)
36637dd7cddfSDavid du Colombier	- The insideness testing operators caused an invalid memory access.
36647dd7cddfSDavid du Colombier(drivers.txt, zupath.c)
36657dd7cddfSDavid du Colombier	- If a readline reached an input buffer boundary between the \r and
36667dd7cddfSDavid du Colombier\n of a 2-character EOL, an error could occur.  (zfileio.c)
36677dd7cddfSDavid du Colombier	- setdevparams caused an error.  (gs_lev2.ps)
36687dd7cddfSDavid du Colombier
36697dd7cddfSDavid du ColombierChanges file names beginning with ./ or ../ so they are recognized as
36707dd7cddfSDavid du Colombier"absolute" and not subject to the search path.  (gp_dosfs.c, gp_ntfs.c,
36717dd7cddfSDavid du Colombiergp_os2.c, gp_unifn.c)
36727dd7cddfSDavid du Colombier
36737dd7cddfSDavid du ColombierChanges the exit code for -h or --help from 0 to 1, so an invoking program
36747dd7cddfSDavid du Colombierwill keep the output around for the user to look at.  (imainarg.c)
36757dd7cddfSDavid du Colombier
36767dd7cddfSDavid du ColombierAdds the FlateEncode and FlateDecode filters; adds PNG pixel prediction to
36777dd7cddfSDavid du Colombierthe LZW filters.  These additions are required for PDF 1.2 and will be part
36787dd7cddfSDavid du Colombierof PostScript Level 3.  (int.mak, lib.mak, zfdecode.c, zfilter2.c, zfzlib.c,
36797dd7cddfSDavid du Colombierzfpngp.c [deleted])
36807dd7cddfSDavid du Colombier
36813ff48bf5SDavid du Colombier</pre><h3><a name="V4.02_Interpreter_PDF"></a>Interpreter (PDF)</h3><pre>
36827dd7cddfSDavid du Colombier
36837dd7cddfSDavid du ColombierFixes bugs:
36847dd7cddfSDavid du Colombier	- The copyright notices on some files didn't mention the Aladdin
36857dd7cddfSDavid du Colombierfree license.  (pdf_*.ps)
36867dd7cddfSDavid du Colombier	- Some references to systemdict were affected if a user redefined
36877dd7cddfSDavid du Colombierthe name /systemdict.  (pdf_font.ps)
36887dd7cddfSDavid du Colombier	- The value of /newerror in $error was true at the end of
36897dd7cddfSDavid du Colombierinitialization.  We now reset it after each internal use of stopped if
36907dd7cddfSDavid du Colombiernecessary.  (pdf_main.ps)
36917dd7cddfSDavid du Colombier	- stdin redirection failed for PDF files even if the new stdin was
36927dd7cddfSDavid du Colombierseekable.  (pdf_main.ps)
36937dd7cddfSDavid du Colombier	- The Rotate key rotated pages in the wrong direction.
36947dd7cddfSDavid du Colombier(pdf_main.ps)
36957dd7cddfSDavid du Colombier
36967dd7cddfSDavid du ColombierAdds a minimal "security socket" to the interpreter.  This does not include
36977dd7cddfSDavid du Colombierany actual decryption code; such code is available elsewhere (see
36987dd7cddfSDavid du Colombiernew-user.txt).  (int.mak, pdf_base.ps, pdf_main.ps, pdf_sec.ps)
36997dd7cddfSDavid du Colombier
37007dd7cddfSDavid du ColombierAdds a PDF 1.2 capability:
37017dd7cddfSDavid du Colombier	- The destination in a Dest array can be a page number as well as a
37027dd7cddfSDavid du Colombierpage object.  (pdf_main.ps)
37037dd7cddfSDavid du Colombier
37043ff48bf5SDavid du Colombier</pre><h3><a name="V4.02_Streams"></a>Streams</h3><pre>
37057dd7cddfSDavid du Colombier
37067dd7cddfSDavid du ColombierFixes bugs:
37077dd7cddfSDavid du Colombier	- stdin was assumed to be non-seekable.  (sfile.c, sfileno.c)
37087dd7cddfSDavid du Colombier
37093ff48bf5SDavid du Colombier</pre><h3><a name="V4.02_Library"></a>Library</h3><pre>
37107dd7cddfSDavid du Colombier
37117dd7cddfSDavid du ColombierFixes bugs:
37127dd7cddfSDavid du Colombier	- Garbage collection could corrupt a pointer in Type 0 fonts.
37137dd7cddfSDavid du Colombier(gxfont0.h, gsfont0.c)
37147dd7cddfSDavid du Colombier	- When applying hints to a Type 1 font outline, the last point could
37157dd7cddfSDavid du Colombiersometimes get moved twice, causing output anomalies.  (gxhint3.c)
37167dd7cddfSDavid du Colombier	- An #include needed for debugging was missing.  (gxcmap.h)
37177dd7cddfSDavid du Colombier	- Graphics states included a no-longer-used private color space
37187dd7cddfSDavid du Colombierobject.  (gsstate.c)
37197dd7cddfSDavid du Colombier	- Images could get clipped randomly in the X direction.  (I don't
37207dd7cddfSDavid du Colombierunderstand why this problem hasn't shown up more often, since it's been
37217dd7cddfSDavid du Colombierthere since release 4.00.)  (gximage.c)
37227dd7cddfSDavid du Colombier	- The arct and arcto operators failed to draw the line to the
37237dd7cddfSDavid du Colombierstarting point of the arc.  (bug introduced in 4.01) (gspath1.c)
37247dd7cddfSDavid du Colombier	- Prefix subclasses of simple structures caused an invalid memory
37257dd7cddfSDavid du Colombieraccess.  (gsstruct.h)
37267dd7cddfSDavid du Colombier	- The variable fheight was sometimes unused.  (gstype1.c)
37277dd7cddfSDavid du Colombier	- igcd and imod didn't have prototypes in an appropriate header
37287dd7cddfSDavid du Colombierfile, and were declared extern in several places.  (gsdcolor.h, gsline.h,
37297dd7cddfSDavid du Colombiergxarith.h, gxdht.h, gsht.c, gshtscr.c, gsimage.c, gsline.c, gstype1.c,
37307dd7cddfSDavid du Colombiergxclimag.c)
37317dd7cddfSDavid du Colombier	- When using a non-identity RenderTable in a CIE rendering
37327dd7cddfSDavid du Colombierdictionary, all colors came out too light.  (gscie.c)
37337dd7cddfSDavid du Colombier	- When using anti-aliased graphics, stroked lines were rendered too
37347dd7cddfSDavid du Colombierthin.  (gspaint.c)
37357dd7cddfSDavid du Colombier	- The default map_cmyk_color implementations could return
37367dd7cddfSDavid du Colombier"transparent".  (gxcmap.c)
37377dd7cddfSDavid du Colombier	- The number of bits of alpha requested when rendering anti-aliased
37387dd7cddfSDavid du Colombiercharacters could exceed 4.  (gschar.c)
37397dd7cddfSDavid du Colombier	- Multi-screen halftones could cause errors or infinite looping when
37407dd7cddfSDavid du Colombierbanding.  (This problem predates 4.0; I don't know why it didn't show up
37417dd7cddfSDavid du Colombierbefore.)  (gxcldev.h, gxclist.c, gxclread.c)
37427dd7cddfSDavid du Colombier	- Skewed or rotated gray-scale images, or masks with a halftoned
37437dd7cddfSDavid du Colombiercolor, omitted one line of pixels and displaced the image by one pixel.
37447dd7cddfSDavid du Colombier(gximage2.c)
37457dd7cddfSDavid du Colombier
37467dd7cddfSDavid du ColombierAdds an implementation of realloc, for systems that don't have one that
37477dd7cddfSDavid du Colombierworks.  I don't know how to determine this automatically, so for the moment,
37487dd7cddfSDavid du Colombierthe code uses our own implementation on Linux (where realloc is known to be
37497dd7cddfSDavid du Colombierbroken, at least in some releases) and nowhere else.  (malloc_.h,
37507dd7cddfSDavid du Colombiergsmemory.c, gsmisc.c)
37517dd7cddfSDavid du Colombier
37527dd7cddfSDavid du ColombierRemoves the "OLD" algorithms from the Type 1 hinting source code, since they
37537dd7cddfSDavid du Colombierare no longer executed.  (If necessary, they can be retrieved from an older
37547dd7cddfSDavid du Colombierversion.)  (gxhint3.c)
37557dd7cddfSDavid du Colombier
37563ff48bf5SDavid du Colombier</pre>
37577dd7cddfSDavid du Colombier
37583ff48bf5SDavid du Colombier<h2><a name="Version4.01"></a>Version 4.01 (7/10/96)</h2>
37593ff48bf5SDavid du Colombier
37603ff48bf5SDavid du Colombier<p>
37617dd7cddfSDavid du ColombierThis fixes a few minor bugs discovered since the 4.0 release.
37627dd7cddfSDavid du Colombier
37633ff48bf5SDavid du Colombier<h3><a name="V4.01_Documentation"></a>Documentation</h3><pre>
37647dd7cddfSDavid du Colombier
37657dd7cddfSDavid du ColombierFixes bugs:
37667dd7cddfSDavid du Colombier	- An installation directory name was wrong.  (make.txt,
37677dd7cddfSDavid du Colombierunix-lpr.txt)
37687dd7cddfSDavid du Colombier	- A URL was wrong.  (devices.txt)
37697dd7cddfSDavid du Colombier	- A reference to use.doc hadn't been updated.  (gs.1)
37707dd7cddfSDavid du Colombier	- Some references to /usr/local/lib hadn't been updated.  (gs.1)
37717dd7cddfSDavid du Colombier	- The NEWS file and history* files still referred to *.doc rather
37727dd7cddfSDavid du Colombierthan *.txt.  (NEWS, history*.txt)
37737dd7cddfSDavid du Colombier
37747dd7cddfSDavid du ColombierAdds a note about compilation on Digital Unix.  (make.txt)
37757dd7cddfSDavid du Colombier
37767dd7cddfSDavid du ColombierClarifies that calling gs_exit calls gs_finit automatically.  (imain.h)
37777dd7cddfSDavid du Colombier
37787dd7cddfSDavid du ColombierAdds a pointer to the PDF encryption patch.  (Ridiculous U.S. export control
37797dd7cddfSDavid du Colombierlaws don't allow including the patch itself in the main fileset.)
37807dd7cddfSDavid du Colombier(new-user.txt)
37817dd7cddfSDavid du Colombier
37827dd7cddfSDavid du ColombierAdds a help file for VMS.  (gs-vms.hlp)
37837dd7cddfSDavid du Colombier
37843ff48bf5SDavid du Colombier</pre><h3><a name="V4.01_Procedures"></a>Procedures</h3><pre>
37857dd7cddfSDavid du Colombier
37867dd7cddfSDavid du ColombierFixes bugs:
37877dd7cddfSDavid du Colombier	- vms.mak had gotten out of sync with the makefiles (again).
37887dd7cddfSDavid du Colombier(vms.mak)
37897dd7cddfSDavid du Colombier	- DEVICE{WIDTH,HEIGHT}POINTS didn't override PAPERSIZE.
37907dd7cddfSDavid du Colombier(gs_init.ps)
37917dd7cddfSDavid du Colombier	- The Microsoft C makefiles had gotten out of date.  (msc.mak)
37927dd7cddfSDavid du Colombier
37937dd7cddfSDavid du ColombierThe (few) GNU-Licensed drivers were accidentally omitted from the fileset.
37947dd7cddfSDavid du Colombier
37957dd7cddfSDavid du ColombierModifies a makefile for greater reusability.  (watclib.mak)
37967dd7cddfSDavid du Colombier
37977dd7cddfSDavid du ColombierAdds a 'debug' target for making Unix debugging configurations.
37987dd7cddfSDavid du Colombier(unix-end.mak)
37997dd7cddfSDavid du Colombier
38003ff48bf5SDavid du Colombier</pre><h3><a name="V4.01_Utilities"></a>Utilities</h3><pre>
38017dd7cddfSDavid du Colombier
38027dd7cddfSDavid du ColombierFixes bugs:
38037dd7cddfSDavid du Colombier	- Some uses of 'run' should be changed to runlibfile.  (bdftops.ps,
38047dd7cddfSDavid du Colombierimpath.ps, markhint.ps, packfile.ps, showchar.ps, waterfal.ps, wftopfa.ps,
38057dd7cddfSDavid du Colombierwrfont.ps)
38067dd7cddfSDavid du Colombier	- Some debugging code hadn't been removed.  (gslp.ps)
38077dd7cddfSDavid du Colombier
38087dd7cddfSDavid du ColombierAdds a new utility, viewcmyk.ps, for viewing 4-bit CMYK data.  (psfiles.txt,
38097dd7cddfSDavid du Colombierunix-end.mak, viewcmyk.ps)
38107dd7cddfSDavid du Colombier
38117dd7cddfSDavid du ColombierImproves pdf2dsc by including Title and CreationDate DSC comments (these are
38127dd7cddfSDavid du Colombierdisplayed by Ghostview) and reducing the size of typical output files by a
38137dd7cddfSDavid du Colombierfactor of about 3.  (pdf2dsc.ps)
38147dd7cddfSDavid du Colombier
38157dd7cddfSDavid du ColombierIncorporates major changes (claimed to be improvements) to ps2ascii
38167dd7cddfSDavid du Colombiercontributed by a user.  If you have problems with it, please contact him,
38177dd7cddfSDavid du Colombiernot Aladdin.  (ps2ascii.ps)
38187dd7cddfSDavid du Colombier
38193ff48bf5SDavid du Colombier</pre><h3><a name="V4.01_Platforms"></a>Platforms</h3><pre>
38207dd7cddfSDavid du Colombier
38217dd7cddfSDavid du ColombierFixes bugs:
38227dd7cddfSDavid du Colombier	- The X value of a bounding box could be computed incorrectly.
38237dd7cddfSDavid du Colombier(gdevbbox.c)
38247dd7cddfSDavid du Colombier
38253ff48bf5SDavid du Colombier</pre><h3><a name="V4.01_Platforms"></a>Platforms</h3><pre>
38267dd7cddfSDavid du Colombier
38277dd7cddfSDavid du ColombierFixes bugs:
38287dd7cddfSDavid du Colombier	- The Windows DLL sometimes didn't clean up properly.  (dll.txt,
38297dd7cddfSDavid du Colombierdpmainc.c, dwdll.cpp, dwmain.cpp, dwmainc.cpp, gsdll.c, gsdll.h)
38307dd7cddfSDavid du Colombier
38313ff48bf5SDavid du Colombier</pre><h3><a name="V4.01_Interpreter"></a>Interpreter</h3><pre>
38327dd7cddfSDavid du Colombier
38337dd7cddfSDavid du ColombierFixes bugs:
38347dd7cddfSDavid du Colombier	- Reading from a filter could hang forever, because a buffer was
38357dd7cddfSDavid du Colombierallocated 1 byte too small.  (zfilter.c)
38367dd7cddfSDavid du Colombier	- The search path could become garbage under some circumstances.
38377dd7cddfSDavid du Colombier(imain.c)
38387dd7cddfSDavid du Colombier	- A dangling reference to a stack-allocated variable could corrupt
38397dd7cddfSDavid du Colombiermemory if a client mixed interpreter calls and direct C calls.  (interp.c)
38407dd7cddfSDavid du Colombier	- Printing an object to a procedure-based filter could cause an
38417dd7cddfSDavid du Colombierinvalid memory access.  (zfileio.c)
38427dd7cddfSDavid du Colombier
38433ff48bf5SDavid du Colombier</pre><h3><a name="V4.01_Library"></a>Library</h3><pre>
38447dd7cddfSDavid du Colombier
38457dd7cddfSDavid du ColombierFixes bugs:
38467dd7cddfSDavid du Colombier	- Setting parameters for an unopened device could cause an access
38477dd7cddfSDavid du Colombiererror or invoke the wrong put_params procedure.  (gsdparam.c)
38487dd7cddfSDavid du Colombier	- Reading from a filter could hang forever, because a buffer was
38497dd7cddfSDavid du Colombierallocated 1 byte too small.  (stream.h)
38507dd7cddfSDavid du Colombier	- If the current device was the nullpage device, doing a [g]save,
38517dd7cddfSDavid du Colombierselecting a different device, and doing a [g]restore caused an error.
38527dd7cddfSDavid du Colombier(gsdparam.c)
38537dd7cddfSDavid du Colombier
38547dd7cddfSDavid du ColombierAdds the ability to append arcs without the initial lineto, for PCL
38557dd7cddfSDavid du Colombieremulation.  (gspath.h, gspath1.c)
38567dd7cddfSDavid du Colombier
38573ff48bf5SDavid du Colombier</pre>
38587dd7cddfSDavid du Colombier
38593ff48bf5SDavid du Colombier<h2><a name="Version4.0"></a>Version 4.0 (6/28/96)</h2>
38603ff48bf5SDavid du Colombier
38613ff48bf5SDavid du Colombier<p>
38627dd7cddfSDavid du ColombierThis is the first public release since 3.53, with a few more last-minute
38637dd7cddfSDavid du Colombierpatches beyond 3.70.
38647dd7cddfSDavid du Colombier
38653ff48bf5SDavid du Colombier<h3><a name="V4.0_Documentation"></a>Documentation</h3><pre>
38667dd7cddfSDavid du Colombier
38677dd7cddfSDavid du ColombierFixes bugs:
38687dd7cddfSDavid du Colombier	- Many makefiles still referred to .doc files rather than .txt.
38697dd7cddfSDavid du Colombier(cfonts.mak, devs.mak, gs.mak, int.mak, libpng.mak, unix-end.mak, watc.mak,
38707dd7cddfSDavid du Colombierwatcwin.mak, wccommon.mak, zlib.mak)
38717dd7cddfSDavid du Colombier	- Some FONTPATH-related information was out of date.  (use.txt)
38727dd7cddfSDavid du Colombier	- The installation directory for fonts was incorrect.  (install.txt)
38737dd7cddfSDavid du Colombier	- The libpng and zlib versions were out of date.  (libpng.mak,
38747dd7cddfSDavid du Colombierzlib.mak)
38757dd7cddfSDavid du Colombier	- Some information about GSview was incorrect or incomplete.
38767dd7cddfSDavid du Colombier(new-user.txt)
38777dd7cddfSDavid du Colombier	- make.txt said it described installation as well as building.
38787dd7cddfSDavid du Colombier(make.txt)
38797dd7cddfSDavid du Colombier
38807dd7cddfSDavid du ColombierNotes that the current release of zlib won't compile and link correctly with
38817dd7cddfSDavid du ColombierSun cc.  (make.txt)
38827dd7cddfSDavid du Colombier
38837dd7cddfSDavid du ColombierAdds a little more detail to the C style document.  (c-style.txt)
38847dd7cddfSDavid du Colombier
38853ff48bf5SDavid du Colombier</pre><h3><a name="V4.0_Procedures"></a>Procedures</h3><pre>
38867dd7cddfSDavid du Colombier
38877dd7cddfSDavid du ColombierFixes bugs:
38887dd7cddfSDavid du Colombier	- Some documentation files weren't installed.  (unix-end.mak)
38897dd7cddfSDavid du Colombier	- Some dependencies were incorrect.  (bcwin32.mak)
38907dd7cddfSDavid du Colombier	- 'make begin' and 'make clean' deleted too many and/or the wrong
38917dd7cddfSDavid du Colombierfiles.  (bcwin.mak, bcwin32.mak)
38927dd7cddfSDavid du Colombier	- libpng.mak didn't work with libpng version 0.89c.  (libpng.mak)
38937dd7cddfSDavid du Colombier	- -d&lt;var&gt;=&lt;name&gt; was equivalent to -d&lt;var&gt;=/&lt;name&gt;, and there was no
38947dd7cddfSDavid du Colombierway to set a variable to true, false, or null.  (use.txt, gs_init.ps,
38957dd7cddfSDavid du Colombieriinit.c, imainarg.c)
38967dd7cddfSDavid du Colombier
38977dd7cddfSDavid du ColombierRemoves the modules.lis file, which is no longer used.
38987dd7cddfSDavid du Colombier
38997dd7cddfSDavid du ColombierUndoes detecting automatically the need to run tar_cat -- the mechanism
39007dd7cddfSDavid du Colombierdidn't work, and caused confusion.  (unix-end.mak)
39017dd7cddfSDavid du Colombier
39027dd7cddfSDavid du ColombierUpdates the makefiles to libpng version 0.89, but allows them to work with
39037dd7cddfSDavid du Colombiereither 0.88 or 0.89.  (*.mak)
39047dd7cddfSDavid du Colombier
39053ff48bf5SDavid du Colombier</pre><h3><a name="V4.0_Utilities"></a>Utilities</h3><pre>
39067dd7cddfSDavid du Colombier
39077dd7cddfSDavid du ColombierFixes bugs:
39087dd7cddfSDavid du Colombier	- Showing the details of a protected font caused an error.
39097dd7cddfSDavid du Colombier(markhint.ps)
39107dd7cddfSDavid du Colombier
39113ff48bf5SDavid du Colombier</pre><h3><a name="V4.0_Drivers"></a>Drivers</h3><pre>
39127dd7cddfSDavid du Colombier
39137dd7cddfSDavid du ColombierFixes bugs:
39147dd7cddfSDavid du Colombier	- A copyright notice was wrong.  (gs_pdfwr.ps)
39157dd7cddfSDavid du Colombier	- PDF link annotations could get written with two Dest keys.
39167dd7cddfSDavid du Colombier(gdevpdfm.c)
39177dd7cddfSDavid du Colombier	- MakeProcInstance and FreeProcInstance were called on platforms
39187dd7cddfSDavid du Colombierwhere it wasn't appropriate.  (gdevwpr2.c, gdevwprn.c, gp_mswin.c)
39197dd7cddfSDavid du Colombier	- On X servers that return very large values for the "virtual
39207dd7cddfSDavid du Colombierscreen" size in millimeters but correct values for the screen size in
39217dd7cddfSDavid du Colombierpixels, a rangecheck could occur.  (gdevxini.c)
39227dd7cddfSDavid du Colombier	- The bounding box device could return garbage if stroke or fill was
39237dd7cddfSDavid du Colombierever invoked with an empty path.  (gdevbbox.c)
39247dd7cddfSDavid du Colombier
39257dd7cddfSDavid du ColombierReplaces the LBP8 driver with a revised one contributed by a user.
39267dd7cddfSDavid du Colombier(gdevlbp8.c, devs.mak)
39277dd7cddfSDavid du Colombier
39283ff48bf5SDavid du Colombier</pre><h3><a name="V4.0_Platforms"></a>Platforms</h3><pre>
39297dd7cddfSDavid du Colombier
39307dd7cddfSDavid du ColombierFixes bugs:
39317dd7cddfSDavid du Colombier	- Some Windows menu parameters were incorrect.  (gsdll16.rc,
39327dd7cddfSDavid du Colombiergsdll32.rc)
39337dd7cddfSDavid du Colombier
39343ff48bf5SDavid du Colombier</pre><h3><a name="V4.0_Interpreter"></a>Interpreter</h3><pre>
39357dd7cddfSDavid du Colombier
39367dd7cddfSDavid du ColombierFixes bugs:
39377dd7cddfSDavid du Colombier	- .getdevparams sometimes returned duplicate entries for /Type.
39387dd7cddfSDavid du Colombier(ziodev2.c)
39397dd7cddfSDavid du Colombier	- File names weren't parsed or concatenated properly on all
39407dd7cddfSDavid du Colombierplatforms.  (gs_fonts.ps, zfile.c)
39417dd7cddfSDavid du Colombier	- Filter lookahead caused problems with special files.  (zfproc.c)
39427dd7cddfSDavid du Colombier	- If a TransformPQR procedure in a CIE color rendering dictionary
39437dd7cddfSDavid du Colombierdidn't pop its 4 array arguments, an error occurred.  (gs_lev2.ps, zcrd.c)
39447dd7cddfSDavid du Colombier
39453ff48bf5SDavid du Colombier</pre><h3><a name="V4.0_Streams"></a>Streams</h3><pre>
39467dd7cddfSDavid du Colombier
39477dd7cddfSDavid du ColombierFixes bugs:
39487dd7cddfSDavid du Colombier	- Filter lookahead caused problems with special files.  (bug
39497dd7cddfSDavid du Colombierintroduced in 3.70) (stream.h)
39507dd7cddfSDavid du Colombier
39513ff48bf5SDavid du Colombier</pre><h3><a name="V4.0_Library"></a>Library</h3><pre>
39527dd7cddfSDavid du Colombier
39537dd7cddfSDavid du ColombierFixes bugs:
39547dd7cddfSDavid du Colombier	- .getdevparams sometimes returned duplicate entries for /Type.
39557dd7cddfSDavid du Colombier(gxiodev.h, gsiodev.c)
39563ff48bf5SDavid du Colombier
39577dd7cddfSDavid du Colombier</pre>
39587dd7cddfSDavid du Colombier
39597dd7cddfSDavid du Colombier<!-- [3.0 begin visible trailer] =========================================== -->
39607dd7cddfSDavid du Colombier<hr>
39617dd7cddfSDavid du Colombier
39623ff48bf5SDavid du Colombier<p>
39633ff48bf5SDavid du Colombier<small>Copyright &copy; 1996, 1997, 1998 Aladdin Enterprises.
39643ff48bf5SDavid du ColombierAll rights reserved.</small>
39657dd7cddfSDavid du Colombier
39667dd7cddfSDavid du Colombier<p>
3967*593dc095SDavid du ColombierThis software is provided AS-IS with no warranty, either express or
3968*593dc095SDavid du Colombierimplied.
3969*593dc095SDavid du Colombier
3970*593dc095SDavid du ColombierThis software is distributed under license and may not be copied,
3971*593dc095SDavid du Colombiermodified or distributed except as expressly authorized under the terms
3972*593dc095SDavid du Colombierof the license contained in the file LICENSE in this distribution.
3973*593dc095SDavid du Colombier
3974*593dc095SDavid du ColombierFor more information about licensing, please refer to
3975*593dc095SDavid du Colombierhttp://www.ghostscript.com/licensing/. For information on
3976*593dc095SDavid du Colombiercommercial licensing, go to http://www.artifex.com/licensing/ or
3977*593dc095SDavid du Colombiercontact Artifex Software, Inc., 101 Lucas Valley Road #110,
3978*593dc095SDavid du ColombierSan Rafael, CA  94903, U.S.A., +1(415)492-9861.
39797dd7cddfSDavid du Colombier
39803ff48bf5SDavid du Colombier<p>
3981*593dc095SDavid du Colombier<small>Ghostscript version 8.53, 20 October 2005
39827dd7cddfSDavid du Colombier
39837dd7cddfSDavid du Colombier<!-- [3.0 end visible trailer] ============================================= -->
39847dd7cddfSDavid du Colombier
39857dd7cddfSDavid du Colombier</body>
39867dd7cddfSDavid du Colombier</html>
3987