xref: /plan9/sys/src/cmd/gs/doc/History3.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 3.n</title>
5*593dc095SDavid du Colombier<!-- $Id: History3.htm,v 1.39 2005/10/20 19:46:23 ray Exp $ -->
67dd7cddfSDavid du Colombier<!-- Originally: history3.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 3.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="#Version3.70p1">Version 3.70 patch 1 (6/24/96)</a>
327dd7cddfSDavid du Colombier<ul>
337dd7cddfSDavid du Colombier<li><a href="#V3.70p1_Procedures">Procedures</a>,
347dd7cddfSDavid du Colombier    <a href="#V3.70p1_Drivers">Drivers</a>
357dd7cddfSDavid du Colombier</ul>
367dd7cddfSDavid du Colombier<li><a href="#Version3.70">Version 3.70 (limited) (6/23/96)</a>
377dd7cddfSDavid du Colombier<ul>
387dd7cddfSDavid du Colombier<li><a href="#V3.70_Documentation">Documentation</a>,
397dd7cddfSDavid du Colombier    <a href="#V3.70_Procedures">Procedures</a>,
407dd7cddfSDavid du Colombier    <a href="#V3.70_Drivers">Drivers</a>,
417dd7cddfSDavid du Colombier    <a href="#V3.70_Platforms">Platforms</a>,
427dd7cddfSDavid du Colombier    <a href="#V3.70_Fonts">Fonts</a>,
437dd7cddfSDavid du Colombier    <a href="#V3.70_Interpreter">Interpreter</a>,
447dd7cddfSDavid du Colombier    <a href="#V3.70_Interpreter_PDF">Interpreter (PDF)</a>,
457dd7cddfSDavid du Colombier    <a href="#V3.70_Streams">Streams</a>,
467dd7cddfSDavid du Colombier    <a href="#V3.70_Library">Library</a>
477dd7cddfSDavid du Colombier</ul>
487dd7cddfSDavid du Colombier<li><a href="#Version3.69">Version 3.69 (limited) (6/14/96)</a>
497dd7cddfSDavid du Colombier<ul>
507dd7cddfSDavid du Colombier<li><a href="#V3.69_Documentation">Documentation</a>,
517dd7cddfSDavid du Colombier    <a href="#V3.69_Procedures">Procedures</a>,
527dd7cddfSDavid du Colombier    <a href="#V3.69_Utilities">Utilities</a>,
537dd7cddfSDavid du Colombier    <a href="#V3.69_Drivers">Drivers</a>,
547dd7cddfSDavid du Colombier    <a href="#V3.69_Platforms">Platforms</a>,
557dd7cddfSDavid du Colombier    <a href="#V3.69_Fonts">Fonts</a>,
567dd7cddfSDavid du Colombier    <a href="#V3.69_Interpreter">Interpreter</a>,
577dd7cddfSDavid du Colombier    <a href="#V3.69_Library">Library</a>
587dd7cddfSDavid du Colombier</ul>
597dd7cddfSDavid du Colombier<li><a href="#Version3.68p4">Version 3.68 patch 4 (5/23/96)</a>
607dd7cddfSDavid du Colombier<ul>
617dd7cddfSDavid du Colombier<li><a href="#V3.68p4_Documentation">Documentation</a>,
627dd7cddfSDavid du Colombier    <a href="#V3.68p4_Procedures">Procedures</a>,
637dd7cddfSDavid du Colombier    <a href="#V3.68p4_Drivers">Drivers</a>,
647dd7cddfSDavid du Colombier    <a href="#V3.68p4_Platforms">Platforms</a>,
657dd7cddfSDavid du Colombier    <a href="#V3.68p4_Fonts">Fonts</a>,
667dd7cddfSDavid du Colombier    <a href="#V3.68p4_Interpreter">Interpreter</a>,
677dd7cddfSDavid du Colombier    <a href="#V3.68p4_Library">Library</a>
687dd7cddfSDavid du Colombier</ul>
697dd7cddfSDavid du Colombier<li><a href="#Version3.68p3">Version 3.68 patch 3 (5/17/96)</a>
707dd7cddfSDavid du Colombier<ul>
717dd7cddfSDavid du Colombier<li><a href="#V3.68p3_Procedures">Procedures</a>,
727dd7cddfSDavid du Colombier    <a href="#V3.68p3_Utilities">Utilities</a>,
737dd7cddfSDavid du Colombier    <a href="#V3.68p3_Drivers">Drivers</a>,
747dd7cddfSDavid du Colombier    <a href="#V3.68p3_Platforms">Platforms</a>,
757dd7cddfSDavid du Colombier    <a href="#V3.68p3_Interpreter">Interpreter</a>,
767dd7cddfSDavid du Colombier    <a href="#V3.68p3_Library">Library</a>
777dd7cddfSDavid du Colombier</ul>
787dd7cddfSDavid du Colombier<li><a href="#Version3.68p2">Version 3.68 patch 2 (5/13/96)</a>
797dd7cddfSDavid du Colombier<ul>
807dd7cddfSDavid du Colombier<li><a href="#V3.68p2_Documentation">Documentation</a>,
817dd7cddfSDavid du Colombier    <a href="#V3.68p2_Procedures">Procedures</a>,
827dd7cddfSDavid du Colombier    <a href="#V3.68p2_Drivers">Drivers</a>,
837dd7cddfSDavid du Colombier    <a href="#V3.68p2_Interpreter">Interpreter</a>,
847dd7cddfSDavid du Colombier    <a href="#V3.68p2_Streams">Streams</a>,
857dd7cddfSDavid du Colombier    <a href="#V3.68p2_Library">Library</a>
867dd7cddfSDavid du Colombier</ul>
877dd7cddfSDavid du Colombier<li><a href="#Version3.68p1">Version 3.68 patch 1 (5/10/96)</a>
887dd7cddfSDavid du Colombier<ul>
897dd7cddfSDavid du Colombier<li><a href="#V3.68p1_Procedures">Procedures</a>
907dd7cddfSDavid du Colombier</ul>
917dd7cddfSDavid du Colombier<li><a href="#Version3.68">Version 3.68 (limited) (5/9/96)</a>
927dd7cddfSDavid du Colombier<ul>
937dd7cddfSDavid du Colombier<li><a href="#V3.68_Documentation">Documentation</a>,
947dd7cddfSDavid du Colombier    <a href="#V3.68_Procedures">Procedures</a>,
957dd7cddfSDavid du Colombier    <a href="#V3.68_Utilities">Utilities</a>,
967dd7cddfSDavid du Colombier    <a href="#V3.68_Drivers">Drivers</a>,
977dd7cddfSDavid du Colombier    <a href="#V3.68_Platforms">Platforms</a>,
987dd7cddfSDavid du Colombier    <a href="#V3.68_Fonts">Fonts</a>,
997dd7cddfSDavid du Colombier    <a href="#V3.68_Interpreter">Interpreter</a>,
1007dd7cddfSDavid du Colombier    <a href="#V3.68_Streams">Streams</a>,
1017dd7cddfSDavid du Colombier    <a href="#V3.68_Library">Library</a>
1027dd7cddfSDavid du Colombier</ul>
1037dd7cddfSDavid du Colombier<li><a href="#Version3.67">Version 3.67 (limited) (4/12/96)</a>
1047dd7cddfSDavid du Colombier<ul>
1057dd7cddfSDavid du Colombier<li><a href="#V3.67_Documentation">Documentation</a>,
1067dd7cddfSDavid du Colombier    <a href="#V3.67_Procedures">Procedures</a>,
1077dd7cddfSDavid du Colombier    <a href="#V3.67_Platforms">Platforms</a>,
1087dd7cddfSDavid du Colombier    <a href="#V3.67_Interpreter">Interpreter</a>,
1097dd7cddfSDavid du Colombier    <a href="#V3.67_Interpreter_PDF">Interpreter (PDF)</a>,
1107dd7cddfSDavid du Colombier    <a href="#V3.67_Library">Library</a>
1117dd7cddfSDavid du Colombier</ul>
1127dd7cddfSDavid du Colombier<li><a href="#Version3.66">Version 3.66 (limited) (4/8/96)</a>
1137dd7cddfSDavid du Colombier<ul>
1147dd7cddfSDavid du Colombier<li><a href="#V3.66_Documentation">Documentation</a>,
1157dd7cddfSDavid du Colombier    <a href="#V3.66_Procedures">Procedures</a>,
1167dd7cddfSDavid du Colombier    <a href="#V3.66_Utilities">Utilities</a>,
1177dd7cddfSDavid du Colombier    <a href="#V3.66_Drivers">Drivers</a>,
1187dd7cddfSDavid du Colombier    <a href="#V3.66_Platforms">Platforms</a>,
1197dd7cddfSDavid du Colombier    <a href="#V3.66_Fonts">Fonts</a>,
1207dd7cddfSDavid du Colombier    <a href="#V3.66_Interpreter">Interpreter</a>,
1217dd7cddfSDavid du Colombier    <a href="#V3.66_Interpreter_PDF">Interpreter (PDF)</a>,
1227dd7cddfSDavid du Colombier    <a href="#V3.66_Streams">Streams</a>,
1237dd7cddfSDavid du Colombier    <a href="#V3.66_Library">Library</a>
1247dd7cddfSDavid du Colombier</ul>
1257dd7cddfSDavid du Colombier<li><a href="#Version3.65">Version 3.65 (limited) (3/9/96)</a>
1267dd7cddfSDavid du Colombier<ul>
1277dd7cddfSDavid du Colombier<li><a href="#V3.65_Documentation">Documentation</a>,
1287dd7cddfSDavid du Colombier    <a href="#V3.65_Procedures">Procedures</a>,
1297dd7cddfSDavid du Colombier    <a href="#V3.65_Utilities">Utilities</a>,
1307dd7cddfSDavid du Colombier    <a href="#V3.65_Drivers">Drivers</a>,
1317dd7cddfSDavid du Colombier    <a href="#V3.65_Platforms">Platforms</a>,
1327dd7cddfSDavid du Colombier    <a href="#V3.65_Interpreter">Interpreter</a>,
1337dd7cddfSDavid du Colombier    <a href="#V3.65_Interpreter_PDF">Interpreter (PDF)</a>,
1347dd7cddfSDavid du Colombier    <a href="#V3.65_Streams">Streams</a>,
1357dd7cddfSDavid du Colombier    <a href="#V3.65_Library">Library</a>
1367dd7cddfSDavid du Colombier</ul>
1377dd7cddfSDavid du Colombier<li><a href="#Version3.64">Version 3.64 (limited, incremental) (1/27/96)</a>
1387dd7cddfSDavid du Colombier<ul>
1397dd7cddfSDavid du Colombier<li><a href="#V3.64_Documentation">Documentation</a>,
1407dd7cddfSDavid du Colombier    <a href="#V3.64_Procedures">Procedures</a>,
1417dd7cddfSDavid du Colombier    <a href="#V3.64_Utilities">Utilities</a>,
1427dd7cddfSDavid du Colombier    <a href="#V3.64_Drivers">Drivers</a>,
1437dd7cddfSDavid du Colombier    <a href="#V3.64_Platforms">Platforms</a>,
1447dd7cddfSDavid du Colombier    <a href="#V3.64_Interpreter">Interpreter</a>,
1457dd7cddfSDavid du Colombier    <a href="#V3.64_Streams">Streams</a>,
1467dd7cddfSDavid du Colombier    <a href="#V3.64_Library">Library</a>
1477dd7cddfSDavid du Colombier</ul>
1487dd7cddfSDavid du Colombier<li><a href="#Version3.63">Version 3.63 (limited, incremental) (1/14/96)</a>
1497dd7cddfSDavid du Colombier<ul>
1507dd7cddfSDavid du Colombier<li><a href="#V3.63_Documentation">Documentation</a>,
1517dd7cddfSDavid du Colombier    <a href="#V3.63_Procedures">Procedures</a>,
1527dd7cddfSDavid du Colombier    <a href="#V3.63_Utilities">Utilities</a>,
1537dd7cddfSDavid du Colombier    <a href="#V3.63_Drivers">Drivers</a>,
1547dd7cddfSDavid du Colombier    <a href="#V3.63_Platforms">Platforms</a>,
1557dd7cddfSDavid du Colombier    <a href="#V3.63_Interpreter">Interpreter</a>,
1567dd7cddfSDavid du Colombier    <a href="#V3.63_Interpreter_PDF">Interpreter (PDF)</a>,
1577dd7cddfSDavid du Colombier    <a href="#V3.63_Streams">Streams</a>,
1587dd7cddfSDavid du Colombier    <a href="#V3.63_Library">Library</a>
1597dd7cddfSDavid du Colombier</ul>
1607dd7cddfSDavid du Colombier<li><a href="#Version3.62">Version 3.62 (limited, incremental) (12/26/95)</a>
1617dd7cddfSDavid du Colombier<ul>
1627dd7cddfSDavid du Colombier<li><a href="#V3.62_Documentation">Documentation</a>,
1637dd7cddfSDavid du Colombier    <a href="#V3.62_Procedures">Procedures</a>,
1647dd7cddfSDavid du Colombier    <a href="#V3.62_Interpreter">Interpreter</a>,
1657dd7cddfSDavid du Colombier    <a href="#V3.62_Interpreter_PDF">Interpreter (PDF)</a>,
1667dd7cddfSDavid du Colombier    <a href="#V3.62_Library">Library</a>
1677dd7cddfSDavid du Colombier</ul>
1687dd7cddfSDavid du Colombier<li><a href="#Version3.61">Version 3.61 (limited) (12/10/95)</a>
1697dd7cddfSDavid du Colombier<ul>
1707dd7cddfSDavid du Colombier<li><a href="#V3.61_Documentation">Documentation</a>,
1717dd7cddfSDavid du Colombier    <a href="#V3.61_Procedures">Procedures</a>,
1727dd7cddfSDavid du Colombier    <a href="#V3.61_Utilities">Utilities</a>,
1737dd7cddfSDavid du Colombier    <a href="#V3.61_Drivers">Drivers</a>,
1747dd7cddfSDavid du Colombier    <a href="#V3.61_Platforms">Platforms</a>,
1757dd7cddfSDavid du Colombier    <a href="#V3.61_Fonts">Fonts</a>,
1767dd7cddfSDavid du Colombier    <a href="#V3.61_Interpreter">Interpreter</a>,
1777dd7cddfSDavid du Colombier    <a href="#V3.61_Interpreter_PDF">Interpreter (PDF)</a>,
1787dd7cddfSDavid du Colombier    <a href="#V3.61_Streams">Streams</a>,
1797dd7cddfSDavid du Colombier    <a href="#V3.61_Library">Library</a>
1807dd7cddfSDavid du Colombier</ul>
1817dd7cddfSDavid du Colombier<li><a href="#Version3.60">Version 3.60 (limited) (11/20/95)</a>
1827dd7cddfSDavid du Colombier<ul>
1837dd7cddfSDavid du Colombier<li><a href="#V3.60_Documentation">Documentation</a>,
1847dd7cddfSDavid du Colombier    <a href="#V3.60_Procedures">Procedures</a>,
1857dd7cddfSDavid du Colombier    <a href="#V3.60_Utilities">Utilities</a>,
1867dd7cddfSDavid du Colombier    <a href="#V3.60_Drivers">Drivers</a>,
1877dd7cddfSDavid du Colombier    <a href="#V3.60_Platforms">Platforms</a>,
1887dd7cddfSDavid du Colombier    <a href="#V3.60_Fonts">Fonts</a>,
1897dd7cddfSDavid du Colombier    <a href="#V3.60_Interpreter">Interpreter</a>,
1907dd7cddfSDavid du Colombier    <a href="#V3.60_Interpreter_PDF">Interpreter (PDF)</a>,
1917dd7cddfSDavid du Colombier    <a href="#V3.60_Streams">Streams</a>,
1927dd7cddfSDavid du Colombier    <a href="#V3.60_Library">Library</a>
1937dd7cddfSDavid du Colombier</ul>
1947dd7cddfSDavid du Colombier<li><a href="#Version3.53">Version 3.53 (1/10/96)</a>
1957dd7cddfSDavid du Colombier<ul>
1967dd7cddfSDavid du Colombier<li><a href="#V3.53_Documentation">Documentation</a>,
1977dd7cddfSDavid du Colombier    <a href="#V3.53_Procedures">Procedures</a>,
1987dd7cddfSDavid du Colombier    <a href="#V3.53_Utilities">Utilities</a>,
1997dd7cddfSDavid du Colombier    <a href="#V3.53_Drivers">Drivers</a>,
2007dd7cddfSDavid du Colombier    <a href="#V3.53_Platforms">Platforms</a>,
2017dd7cddfSDavid du Colombier    <a href="#V3.53_Fonts">Fonts</a>,
2027dd7cddfSDavid du Colombier    <a href="#V3.53_Interpreter">Interpreter</a>,
2037dd7cddfSDavid du Colombier    <a href="#V3.53_Interpreter_PDF">Interpreter (PDF)</a>,
2047dd7cddfSDavid du Colombier    <a href="#V3.53_Streams">Streams</a>,
2057dd7cddfSDavid du Colombier    <a href="#V3.53_Library">Library</a>
2067dd7cddfSDavid du Colombier</ul>
2077dd7cddfSDavid du Colombier<li><a href="#Version3.52">Version 3.52 (limited) (10/6/95)</a>
2087dd7cddfSDavid du Colombier<ul>
2097dd7cddfSDavid du Colombier<li><a href="#V3.52_Procedures">Procedures</a>,
2107dd7cddfSDavid du Colombier    <a href="#V3.52_Interpreter">Interpreter</a>,
2117dd7cddfSDavid du Colombier    <a href="#V3.52_Library">Library</a>
2127dd7cddfSDavid du Colombier</ul>
2137dd7cddfSDavid du Colombier<li><a href="#Version3.51">Version 3.51 (9/27/95)</a>
2147dd7cddfSDavid du Colombier<ul>
2157dd7cddfSDavid du Colombier<li><a href="#V3.51_Documentation">Documentation</a>,
2167dd7cddfSDavid du Colombier    <a href="#V3.51_Procedures">Procedures</a>,
2177dd7cddfSDavid du Colombier    <a href="#V3.51_Utilities">Utilities</a>,
2187dd7cddfSDavid du Colombier    <a href="#V3.51_Drivers">Drivers</a>,
2197dd7cddfSDavid du Colombier    <a href="#V3.51_Platforms">Platforms</a>,
2207dd7cddfSDavid du Colombier    <a href="#V3.51_Interpreter">Interpreter</a>,
2217dd7cddfSDavid du Colombier    <a href="#V3.51_Interpreter_PDF">Interpreter (PDF)</a>,
2227dd7cddfSDavid du Colombier    <a href="#V3.51_Library">Library</a>
2237dd7cddfSDavid du Colombier</ul>
2247dd7cddfSDavid du Colombier<li><a href="#Version3.50">Version 3.50 (limited) (9/24/95)</a>
2257dd7cddfSDavid du Colombier<ul>
2267dd7cddfSDavid du Colombier<li><a href="#V3.50_Procedures">Procedures</a>,
2277dd7cddfSDavid du Colombier    <a href="#V3.50_Utilities">Utilities</a>,
2287dd7cddfSDavid du Colombier    <a href="#V3.50_Drivers">Drivers</a>,
2297dd7cddfSDavid du Colombier    <a href="#V3.50_Interpreter">Interpreter</a>,
2307dd7cddfSDavid du Colombier    <a href="#V3.50_Interpreter_PDF">Interpreter (PDF)</a>,
2317dd7cddfSDavid du Colombier    <a href="#V3.50_Library">Library</a>
2327dd7cddfSDavid du Colombier</ul>
2337dd7cddfSDavid du Colombier<li><a href="#Version3.49">Version 3.49 (limited) (9/20/95)</a>
2347dd7cddfSDavid du Colombier<ul>
2357dd7cddfSDavid du Colombier<li><a href="#V3.49_Documentation">Documentation</a>,
2367dd7cddfSDavid du Colombier    <a href="#V3.49_Procedures">Procedures</a>,
2377dd7cddfSDavid du Colombier    <a href="#V3.49_Drivers">Drivers</a>,
2387dd7cddfSDavid du Colombier    <a href="#V3.49_Platforms">Platforms</a>,
2397dd7cddfSDavid du Colombier    <a href="#V3.49_Interpreter">Interpreter</a>,
2407dd7cddfSDavid du Colombier    <a href="#V3.49_Library">Library</a>
2417dd7cddfSDavid du Colombier</ul>
2427dd7cddfSDavid du Colombier<li><a href="#Version3.48">Version 3.48 (limited) (9/17/95)</a>
2437dd7cddfSDavid du Colombier<ul>
2447dd7cddfSDavid du Colombier<li><a href="#V3.48_Documentation">Documentation</a>,
2457dd7cddfSDavid du Colombier    <a href="#V3.48_Procedures">Procedures</a>,
2467dd7cddfSDavid du Colombier    <a href="#V3.48_Drivers">Drivers</a>,
2477dd7cddfSDavid du Colombier    <a href="#V3.48_Platforms">Platforms</a>,
2487dd7cddfSDavid du Colombier    <a href="#V3.48_Interpreter">Interpreter</a>,
2497dd7cddfSDavid du Colombier    <a href="#V3.48_Interpreter_PDF">Interpreter (PDF)</a>,
2507dd7cddfSDavid du Colombier    <a href="#V3.48_Library">Library</a>
2517dd7cddfSDavid du Colombier</ul>
2527dd7cddfSDavid du Colombier<li><a href="#Version3.47">Version 3.47 (limited) (9/14/95)</a>
2537dd7cddfSDavid du Colombier<ul>
2547dd7cddfSDavid du Colombier<li><a href="#V3.47_Documentation">Documentation</a>,
2557dd7cddfSDavid du Colombier    <a href="#V3.47_Procedures">Procedures</a>,
2567dd7cddfSDavid du Colombier    <a href="#V3.47_Utilities">Utilities</a>,
2577dd7cddfSDavid du Colombier    <a href="#V3.47_Drivers">Drivers</a>,
2587dd7cddfSDavid du Colombier    <a href="#V3.47_Platforms">Platforms</a>,
2597dd7cddfSDavid du Colombier    <a href="#V3.47_Fonts">Fonts</a>,
2607dd7cddfSDavid du Colombier    <a href="#V3.47_Interpreter">Interpreter</a>,
2617dd7cddfSDavid du Colombier    <a href="#V3.47_Interpreter_PDF">Interpreter (PDF)</a>,
2627dd7cddfSDavid du Colombier    <a href="#V3.47_Streams">Streams</a>,
2637dd7cddfSDavid du Colombier    <a href="#V3.47_Library">Library</a>
2647dd7cddfSDavid du Colombier</ul>
2657dd7cddfSDavid du Colombier<li><a href="#Version3.46">Version 3.46 (limited) (9/4/95)</a>
2667dd7cddfSDavid du Colombier<ul>
2677dd7cddfSDavid du Colombier<li><a href="#V3.46_Documentation">Documentation</a>,
2687dd7cddfSDavid du Colombier    <a href="#V3.46_Procedures">Procedures</a>,
2697dd7cddfSDavid du Colombier    <a href="#V3.46_Utilities">Utilities</a>,
2707dd7cddfSDavid du Colombier    <a href="#V3.46_Drivers">Drivers</a>,
2717dd7cddfSDavid du Colombier    <a href="#V3.46_Platforms">Platforms</a>,
2727dd7cddfSDavid du Colombier    <a href="#V3.46_Interpreter">Interpreter</a>,
2737dd7cddfSDavid du Colombier    <a href="#V3.46_Interpreter_PDF">Interpreter (PDF)</a>,
2747dd7cddfSDavid du Colombier    <a href="#V3.46_Library">Library</a>
2757dd7cddfSDavid du Colombier</ul>
2767dd7cddfSDavid du Colombier<li><a href="#Version3.45">Version 3.45 (limited) (8/27/95)</a>
2777dd7cddfSDavid du Colombier<ul>
2787dd7cddfSDavid du Colombier<li><a href="#V3.45_Documentation">Documentation</a>,
2797dd7cddfSDavid du Colombier    <a href="#V3.45_Procedures">Procedures</a>,
2807dd7cddfSDavid du Colombier    <a href="#V3.45_Utilities">Utilities</a>,
2817dd7cddfSDavid du Colombier    <a href="#V3.45_Drivers">Drivers</a>,
2827dd7cddfSDavid du Colombier    <a href="#V3.45_Platforms">Platforms</a>,
2837dd7cddfSDavid du Colombier    <a href="#V3.45_Interpreter">Interpreter</a>,
2847dd7cddfSDavid du Colombier    <a href="#V3.45_Interpreter_PDF">Interpreter (PDF)</a>,
2857dd7cddfSDavid du Colombier    <a href="#V3.45_Streams">Streams</a>,
2867dd7cddfSDavid du Colombier    <a href="#V3.45_Library">Library</a>
2877dd7cddfSDavid du Colombier</ul>
2887dd7cddfSDavid du Colombier<li><a href="#Version3.44">Version 3.44 (limited) (8/21/95)</a>
2897dd7cddfSDavid du Colombier<ul>
2907dd7cddfSDavid du Colombier<li><a href="#V3.44_Documentation">Documentation</a>,
2917dd7cddfSDavid du Colombier    <a href="#V3.44_Procedures">Procedures</a>,
2927dd7cddfSDavid du Colombier    <a href="#V3.44_Utilities">Utilities</a>,
2937dd7cddfSDavid du Colombier    <a href="#V3.44_Drivers">Drivers</a>,
2947dd7cddfSDavid du Colombier    <a href="#V3.44_Platforms">Platforms</a>,
2957dd7cddfSDavid du Colombier    <a href="#V3.44_Interpreter">Interpreter</a>,
2967dd7cddfSDavid du Colombier    <a href="#V3.44_Interpreter_PDF">Interpreter (PDF)</a>,
2977dd7cddfSDavid du Colombier    <a href="#V3.44_Library">Library</a>
2987dd7cddfSDavid du Colombier</ul>
2997dd7cddfSDavid du Colombier<li><a href="#Version3.43">Version 3.43 (limited) (8/10/95)</a>
3007dd7cddfSDavid du Colombier<ul>
3017dd7cddfSDavid du Colombier<li><a href="#V3.43_Documentation">Documentation</a>,
3027dd7cddfSDavid du Colombier    <a href="#V3.43_Procedures">Procedures</a>,
3037dd7cddfSDavid du Colombier    <a href="#V3.43_Platforms">Platforms</a>,
3047dd7cddfSDavid du Colombier    <a href="#V3.43_Fonts">Fonts</a>,
3057dd7cddfSDavid du Colombier    <a href="#V3.43_Interpreter">Interpreter</a>,
3067dd7cddfSDavid du Colombier    <a href="#V3.43_Streams">Streams</a>,
3077dd7cddfSDavid du Colombier    <a href="#V3.43_Library">Library</a>
3087dd7cddfSDavid du Colombier</ul>
3097dd7cddfSDavid du Colombier<li><a href="#Version3.42">Version 3.42 (limited) (8/2/95)</a>
3107dd7cddfSDavid du Colombier<ul>
3117dd7cddfSDavid du Colombier<li><a href="#V3.42_Documentation">Documentation</a>,
3127dd7cddfSDavid du Colombier    <a href="#V3.42_Procedures">Procedures</a>,
3137dd7cddfSDavid du Colombier    <a href="#V3.42_Platforms">Platforms</a>,
3147dd7cddfSDavid du Colombier    <a href="#V3.42_Interpreter">Interpreter</a>,
3157dd7cddfSDavid du Colombier    <a href="#V3.42_Streams">Streams</a>,
3167dd7cddfSDavid du Colombier    <a href="#V3.42_Library">Library</a>
3177dd7cddfSDavid du Colombier</ul>
3187dd7cddfSDavid du Colombier<li><a href="#Version3.41">Version 3.41 (limited) (7/27/95)</a>
3197dd7cddfSDavid du Colombier<ul>
3207dd7cddfSDavid du Colombier<li><a href="#V3.41_Documentation">Documentation</a>,
3217dd7cddfSDavid du Colombier    <a href="#V3.41_Procedures">Procedures</a>,
3227dd7cddfSDavid du Colombier    <a href="#V3.41_Utilities">Utilities</a>,
3237dd7cddfSDavid du Colombier    <a href="#V3.41_Drivers">Drivers</a>,
3247dd7cddfSDavid du Colombier    <a href="#V3.41_Platforms">Platforms</a>,
3257dd7cddfSDavid du Colombier    <a href="#V3.41_Fonts">Fonts</a>,
3267dd7cddfSDavid du Colombier    <a href="#V3.41_Interpreter">Interpreter</a>,
3277dd7cddfSDavid du Colombier    <a href="#V3.41_Interpreter_PDF">Interpreter (PDF)</a>,
3287dd7cddfSDavid du Colombier    <a href="#V3.41_Streams">Streams</a>,
3297dd7cddfSDavid du Colombier    <a href="#V3.41_Library">Library</a>
3307dd7cddfSDavid du Colombier</ul>
3317dd7cddfSDavid du Colombier<li><a href="#Version3.40">Version 3.40 (limited) (6/28/95)</a>
3327dd7cddfSDavid du Colombier<ul>
3337dd7cddfSDavid du Colombier<li><a href="#V3.40_Documentation">Documentation</a>,
3347dd7cddfSDavid du Colombier    <a href="#V3.40_Procedures">Procedures</a>,
3357dd7cddfSDavid du Colombier    <a href="#V3.40_Utilities">Utilities</a>,
3367dd7cddfSDavid du Colombier    <a href="#V3.40_Platforms">Platforms</a>,
3377dd7cddfSDavid du Colombier    <a href="#V3.40_Interpreter">Interpreter</a>,
3387dd7cddfSDavid du Colombier    <a href="#V3.40_Streams">Streams</a>,
3397dd7cddfSDavid du Colombier    <a href="#V3.40_Library">Library</a>
3407dd7cddfSDavid du Colombier</ul>
3417dd7cddfSDavid du Colombier<li><a href="#Version3.39">Version 3.39 (limited) (6/24/95)</a>
3427dd7cddfSDavid du Colombier<ul>
3437dd7cddfSDavid du Colombier<li><a href="#V3.39_Documentation">Documentation</a>,
3447dd7cddfSDavid du Colombier    <a href="#V3.39_Procedures">Procedures</a>,
3457dd7cddfSDavid du Colombier    <a href="#V3.39_Utilities">Utilities</a>,
3467dd7cddfSDavid du Colombier    <a href="#V3.39_Platforms">Platforms</a>,
3477dd7cddfSDavid du Colombier    <a href="#V3.39_Fonts">Fonts</a>,
3487dd7cddfSDavid du Colombier    <a href="#V3.39_Interpreter">Interpreter</a>,
3497dd7cddfSDavid du Colombier    <a href="#V3.39_Streams">Streams</a>,
3507dd7cddfSDavid du Colombier    <a href="#V3.39_Library">Library</a>
3517dd7cddfSDavid du Colombier</ul>
3527dd7cddfSDavid du Colombier<li><a href="#Version3.38">Version 3.38 (limited) (6/18/95)</a>
3537dd7cddfSDavid du Colombier<ul>
3547dd7cddfSDavid du Colombier<li><a href="#V3.38_Documentation">Documentation</a>,
3557dd7cddfSDavid du Colombier    <a href="#V3.38_Procedures">Procedures</a>,
3567dd7cddfSDavid du Colombier    <a href="#V3.38_Utilities">Utilities</a>,
3577dd7cddfSDavid du Colombier    <a href="#V3.38_Drivers">Drivers</a>,
3587dd7cddfSDavid du Colombier    <a href="#V3.38_Platforms">Platforms</a>,
3597dd7cddfSDavid du Colombier    <a href="#V3.38_Fonts">Fonts</a>,
3607dd7cddfSDavid du Colombier    <a href="#V3.38_Interpreter">Interpreter</a>,
3617dd7cddfSDavid du Colombier    <a href="#V3.38_Interpreter_PDF">Interpreter (PDF)</a>,
3627dd7cddfSDavid du Colombier    <a href="#V3.38_Streams">Streams</a>,
3637dd7cddfSDavid du Colombier    <a href="#V3.38_Library">Library</a>
3647dd7cddfSDavid du Colombier</ul>
3657dd7cddfSDavid du Colombier<li><a href="#Version3.37">Version 3.37 (limited) (5/11/95)</a>
3667dd7cddfSDavid du Colombier<ul>
3677dd7cddfSDavid du Colombier<li><a href="#V3.37_Documentation">Documentation</a>,
3687dd7cddfSDavid du Colombier    <a href="#V3.37_Procedures">Procedures</a>,
3697dd7cddfSDavid du Colombier    <a href="#V3.37_Utilities">Utilities</a>,
3707dd7cddfSDavid du Colombier    <a href="#V3.37_Drivers">Drivers</a>,
3717dd7cddfSDavid du Colombier    <a href="#V3.37_Fonts">Fonts</a>,
3727dd7cddfSDavid du Colombier    <a href="#V3.37_Interpreter_PostScript">Interpreter (PostScript)</a>,
3737dd7cddfSDavid du Colombier    <a href="#V3.37_Interpreter_PDF">Interpreter (PDF)</a>
3747dd7cddfSDavid du Colombier</ul>
3757dd7cddfSDavid du Colombier<li><a href="#Version3.36">Version 3.36 (limited) (5/4/95)</a>
3767dd7cddfSDavid du Colombier<ul>
3777dd7cddfSDavid du Colombier<li><a href="#V3.36_Documentation">Documentation</a>,
3787dd7cddfSDavid du Colombier    <a href="#V3.36_Procedures">Procedures</a>,
3797dd7cddfSDavid du Colombier    <a href="#V3.36_Drivers">Drivers</a>,
3807dd7cddfSDavid du Colombier    <a href="#V3.36_Interpreter">Interpreter</a>,
3817dd7cddfSDavid du Colombier    <a href="#V3.36_Library">Library</a>
3827dd7cddfSDavid du Colombier</ul>
3837dd7cddfSDavid du Colombier<li><a href="#Version3.35">Version 3.35 (internal) (5/2/95)</a>
3847dd7cddfSDavid du Colombier<ul>
3857dd7cddfSDavid du Colombier<li><a href="#V3.35_Documentation">Documentation</a>,
3867dd7cddfSDavid du Colombier    <a href="#V3.35_Procedures">Procedures</a>,
3877dd7cddfSDavid du Colombier    <a href="#V3.35_Utilities">Utilities</a>,
3887dd7cddfSDavid du Colombier    <a href="#V3.35_Drivers">Drivers</a>,
3897dd7cddfSDavid du Colombier    <a href="#V3.35_Platforms">Platforms</a>,
3907dd7cddfSDavid du Colombier    <a href="#V3.35_Fonts">Fonts</a>,
3917dd7cddfSDavid du Colombier    <a href="#V3.35_Interpreter">Interpreter</a>,
3927dd7cddfSDavid du Colombier    <a href="#V3.35_Library">Library</a>
3937dd7cddfSDavid du Colombier</ul>
3947dd7cddfSDavid du Colombier<li><a href="#Version3.34">Version 3.34 (internal) (4/18/95)</a>
3957dd7cddfSDavid du Colombier<ul>
3967dd7cddfSDavid du Colombier<li><a href="#V3.34_Documentation">Documentation</a>,
3977dd7cddfSDavid du Colombier    <a href="#V3.34_Procedures">Procedures</a>,
3987dd7cddfSDavid du Colombier    <a href="#V3.34_Interpreter">Interpreter</a>,
3997dd7cddfSDavid du Colombier    <a href="#V3.34_Library">Library</a>
4007dd7cddfSDavid du Colombier</ul>
4017dd7cddfSDavid du Colombier<li><a href="#Version3.33">Version 3.33 (4/13/95)</a>
4027dd7cddfSDavid du Colombier<ul>
4037dd7cddfSDavid du Colombier<li><a href="#V3.33_Documentation">Documentation</a>,
4047dd7cddfSDavid du Colombier    <a href="#V3.33_Procedures">Procedures</a>,
4057dd7cddfSDavid du Colombier    <a href="#V3.33_Utilities">Utilities</a>,
4067dd7cddfSDavid du Colombier    <a href="#V3.33_Drivers">Drivers</a>,
4077dd7cddfSDavid du Colombier    <a href="#V3.33_Platforms">Platforms</a>,
4087dd7cddfSDavid du Colombier    <a href="#V3.33_Fonts">Fonts</a>,
4097dd7cddfSDavid du Colombier    <a href="#V3.33_Library">Library</a>
4107dd7cddfSDavid du Colombier</ul>
4117dd7cddfSDavid du Colombier<li><a href="#Version3.32">Version 3.32 (4/7/95)</a>
4127dd7cddfSDavid du Colombier<ul>
4137dd7cddfSDavid du Colombier<li><a href="#V3.32_Documentation">Documentation</a>,
4147dd7cddfSDavid du Colombier    <a href="#V3.32_Procedures">Procedures</a>,
4157dd7cddfSDavid du Colombier    <a href="#V3.32_Utilities">Utilities</a>,
4167dd7cddfSDavid du Colombier    <a href="#V3.32_Drivers">Drivers</a>,
4177dd7cddfSDavid du Colombier    <a href="#V3.32_Platforms">Platforms</a>,
4187dd7cddfSDavid du Colombier    <a href="#V3.32_Interpreter">Interpreter</a>,
4197dd7cddfSDavid du Colombier    <a href="#V3.32_Streams">Streams</a>,
4207dd7cddfSDavid du Colombier    <a href="#V3.32_Library">Library</a>
4217dd7cddfSDavid du Colombier</ul>
4227dd7cddfSDavid du Colombier<li><a href="#Version3.31">Version 3.31 (4/2/95)</a>
4237dd7cddfSDavid du Colombier<ul>
4247dd7cddfSDavid du Colombier<li><a href="#V3.31_Documentation">Documentation</a>,
4257dd7cddfSDavid du Colombier    <a href="#V3.31_Procedures">Procedures</a>,
4267dd7cddfSDavid du Colombier    <a href="#V3.31_Utilities">Utilities</a>,
4277dd7cddfSDavid du Colombier    <a href="#V3.31_Drivers">Drivers</a>,
4287dd7cddfSDavid du Colombier    <a href="#V3.31_Platforms">Platforms</a>,
4297dd7cddfSDavid du Colombier    <a href="#V3.31_Interpreter">Interpreter</a>,
4307dd7cddfSDavid du Colombier    <a href="#V3.31_Streams">Streams</a>,
4317dd7cddfSDavid du Colombier    <a href="#V3.31_Library">Library</a>
4327dd7cddfSDavid du Colombier</ul>
4337dd7cddfSDavid du Colombier<li><a href="#Version3.30">Version 3.30 (beta) (3/21/95)</a>
4347dd7cddfSDavid du Colombier<ul>
4357dd7cddfSDavid du Colombier<li><a href="#V3.30_Documentation">Documentation</a>,
4367dd7cddfSDavid du Colombier    <a href="#V3.30_Utilities">Utilities</a>,
4377dd7cddfSDavid du Colombier    <a href="#V3.30_Drivers">Drivers</a>,
4387dd7cddfSDavid du Colombier    <a href="#V3.30_Interpreter_PostScript">Interpreter (PostScript)</a>,
4397dd7cddfSDavid du Colombier    <a href="#V3.30_Interpreter_PDF">Interpreter (PDF)</a>,
4407dd7cddfSDavid du Colombier    <a href="#V3.30_Library">Library</a>
4417dd7cddfSDavid du Colombier</ul>
4427dd7cddfSDavid du Colombier<li><a href="#Version3.29">Version 3.29 (internal) (3/8/95)</a>
4437dd7cddfSDavid du Colombier<ul>
4447dd7cddfSDavid du Colombier<li><a href="#V3.29_Documentation">Documentation</a>,
4457dd7cddfSDavid du Colombier    <a href="#V3.29_Procedures">Procedures</a>,
4467dd7cddfSDavid du Colombier    <a href="#V3.29_Utilities">Utilities</a>,
4477dd7cddfSDavid du Colombier    <a href="#V3.29_Fonts">Fonts</a>,
4487dd7cddfSDavid du Colombier    <a href="#V3.29_Drivers">Drivers</a>,
4497dd7cddfSDavid du Colombier    <a href="#V3.29_Interpreter_PostScript">Interpreter (PostScript)</a>,
4507dd7cddfSDavid du Colombier    <a href="#V3.29_Interpreter_PDF">Interpreter (PDF)</a>,
4517dd7cddfSDavid du Colombier    <a href="#V3.29_Streams">Streams</a>,
4527dd7cddfSDavid du Colombier    <a href="#V3.29_Library">Library</a>
4537dd7cddfSDavid du Colombier</ul>
4547dd7cddfSDavid du Colombier<li><a href="#Version3.28">Version 3.28 (beta) (2/13/95)</a>
4557dd7cddfSDavid du Colombier<ul>
4567dd7cddfSDavid du Colombier<li><a href="#V3.28_Documentation">Documentation</a>,
4577dd7cddfSDavid du Colombier    <a href="#V3.28_Procedures">Procedures</a>,
4587dd7cddfSDavid du Colombier    <a href="#V3.28_Utilities">Utilities</a>,
4597dd7cddfSDavid du Colombier    <a href="#V3.28_Drivers">Drivers</a>,
4607dd7cddfSDavid du Colombier    <a href="#V3.28_Interpreter">Interpreter</a>,
4617dd7cddfSDavid du Colombier    <a href="#V3.28_Library">Library</a>
4627dd7cddfSDavid du Colombier</ul>
4637dd7cddfSDavid du Colombier<li><a href="#Version3.27">Version 3.27 (beta)(withdrawn) (2/8/95)</a>
4647dd7cddfSDavid du Colombier<ul>
4657dd7cddfSDavid du Colombier<li><a href="#V3.27_Documentation">Documentation</a>,
4667dd7cddfSDavid du Colombier    <a href="#V3.27_Procedures">Procedures</a>,
4677dd7cddfSDavid du Colombier    <a href="#V3.27_Utilities">Utilities</a>,
4687dd7cddfSDavid du Colombier    <a href="#V3.27_Drivers">Drivers</a>,
4697dd7cddfSDavid du Colombier    <a href="#V3.27_Platforms">Platforms</a>,
4707dd7cddfSDavid du Colombier    <a href="#V3.27_Fonts">Fonts</a>,
4717dd7cddfSDavid du Colombier    <a href="#V3.27_Interpreter">Interpreter</a>,
4727dd7cddfSDavid du Colombier    <a href="#V3.27_Streams">Streams</a>,
4737dd7cddfSDavid du Colombier    <a href="#V3.27_Library">Library</a>
4747dd7cddfSDavid du Colombier</ul>
4757dd7cddfSDavid du Colombier<li><a href="#Version3.26">Version 3.26 (beta) (2/1/95)</a>
4767dd7cddfSDavid du Colombier<ul>
4777dd7cddfSDavid du Colombier<li><a href="#V3.26_Documentation">Documentation</a>,
4787dd7cddfSDavid du Colombier    <a href="#V3.26_Procedures">Procedures</a>,
4797dd7cddfSDavid du Colombier    <a href="#V3.26_Utilities">Utilities</a>,
4807dd7cddfSDavid du Colombier    <a href="#V3.26_Drivers">Drivers</a>,
4817dd7cddfSDavid du Colombier    <a href="#V3.26_Platforms">Platforms</a>,
4827dd7cddfSDavid du Colombier    <a href="#V3.26_Interpreter">Interpreter</a>,
4837dd7cddfSDavid du Colombier    <a href="#V3.26_Streams">Streams</a>,
4847dd7cddfSDavid du Colombier    <a href="#V3.26_Library">Library</a>
4857dd7cddfSDavid du Colombier</ul>
4867dd7cddfSDavid du Colombier<li><a href="#Version3.25">Version 3.25 (beta) (1/24/95)</a>
4877dd7cddfSDavid du Colombier<ul>
4887dd7cddfSDavid du Colombier<li><a href="#V3.25_Documentation">Documentation</a>,
4897dd7cddfSDavid du Colombier    <a href="#V3.25_Procedures">Procedures</a>,
4907dd7cddfSDavid du Colombier    <a href="#V3.25_Drivers">Drivers</a>,
4917dd7cddfSDavid du Colombier    <a href="#V3.25_Platforms">Platforms</a>,
4927dd7cddfSDavid du Colombier    <a href="#V3.25_Interpreter">Interpreter</a>,
4937dd7cddfSDavid du Colombier    <a href="#V3.25_Library">Library</a>
4947dd7cddfSDavid du Colombier</ul>
4957dd7cddfSDavid du Colombier<li><a href="#Version3.24">Version 3.24 (beta) (1/17/95)</a>
4967dd7cddfSDavid du Colombier<ul>
4977dd7cddfSDavid du Colombier<li><a href="#V3.24_Documentation">Documentation</a>,
4987dd7cddfSDavid du Colombier    <a href="#V3.24_Procedures">Procedures</a>,
4997dd7cddfSDavid du Colombier    <a href="#V3.24_Drivers">Drivers</a>,
5007dd7cddfSDavid du Colombier    <a href="#V3.24_Platforms">Platforms</a>,
5017dd7cddfSDavid du Colombier    <a href="#V3.24_Fonts">Fonts</a>,
5027dd7cddfSDavid du Colombier    <a href="#V3.24_Interpreter">Interpreter</a>,
5037dd7cddfSDavid du Colombier    <a href="#V3.24_Interpreter_PostScript">Interpreter (PostScript)</a>,
5047dd7cddfSDavid du Colombier    <a href="#V3.24_Interpreter_PDF">Interpreter (PDF)</a>,
5057dd7cddfSDavid du Colombier    <a href="#V3.24_Streams">Streams</a>,
5067dd7cddfSDavid du Colombier    <a href="#V3.24_Library">Library</a>
5077dd7cddfSDavid du Colombier</ul>
5087dd7cddfSDavid du Colombier<li><a href="#Version3.23">Version 3.23 (beta) (1/5/95)</a>
5097dd7cddfSDavid du Colombier<ul>
5107dd7cddfSDavid du Colombier<li><a href="#V3.23_Documentation">Documentation</a>,
5117dd7cddfSDavid du Colombier    <a href="#V3.23_Procedures">Procedures</a>,
5127dd7cddfSDavid du Colombier    <a href="#V3.23_Utilities">Utilities</a>,
5137dd7cddfSDavid du Colombier    <a href="#V3.23_Drivers">Drivers</a>,
5147dd7cddfSDavid du Colombier    <a href="#V3.23_Platforms">Platforms</a>,
5157dd7cddfSDavid du Colombier    <a href="#V3.23_Fonts">Fonts</a>,
5167dd7cddfSDavid du Colombier    <a href="#V3.23_Interpreter_PostScript">Interpreter (PostScript)</a>,
5177dd7cddfSDavid du Colombier    <a href="#V3.23_Interpreter_PDF">Interpreter (PDF)</a>,
5187dd7cddfSDavid du Colombier    <a href="#V3.23_Streams">Streams</a>,
5197dd7cddfSDavid du Colombier    <a href="#V3.23_Library">Library</a>
5207dd7cddfSDavid du Colombier</ul>
5217dd7cddfSDavid du Colombier<li><a href="#Version3.22">Version 3.22 (beta) (11/30/94)</a>
5227dd7cddfSDavid du Colombier<ul>
5237dd7cddfSDavid du Colombier<li><a href="#V3.22_Procedures">Procedures</a>,
5247dd7cddfSDavid du Colombier    <a href="#V3.22_Drivers">Drivers</a>,
5257dd7cddfSDavid du Colombier    <a href="#V3.22_Platforms">Platforms</a>,
5267dd7cddfSDavid du Colombier    <a href="#V3.22_Fonts">Fonts</a>,
5277dd7cddfSDavid du Colombier    <a href="#V3.22_Interpreter">Interpreter</a>,
5287dd7cddfSDavid du Colombier    <a href="#V3.22_Streams">Streams</a>,
5297dd7cddfSDavid du Colombier    <a href="#V3.22_Library">Library</a>
5307dd7cddfSDavid du Colombier</ul>
5317dd7cddfSDavid du Colombier<li><a href="#Version3.21">Version 3.21 (beta) (11/17/94)</a>
5327dd7cddfSDavid du Colombier<ul>
5337dd7cddfSDavid du Colombier<li><a href="#V3.21_Documentation">Documentation</a>,
5347dd7cddfSDavid du Colombier    <a href="#V3.21_Procedures">Procedures</a>,
5357dd7cddfSDavid du Colombier    <a href="#V3.21_Utilities">Utilities</a>,
5367dd7cddfSDavid du Colombier    <a href="#V3.21_Drivers">Drivers</a>,
5377dd7cddfSDavid du Colombier    <a href="#V3.21_Platforms">Platforms</a>,
5387dd7cddfSDavid du Colombier    <a href="#V3.21_Fonts">Fonts</a>,
5397dd7cddfSDavid du Colombier    <a href="#V3.21_Interpreter">Interpreter</a>,
5407dd7cddfSDavid du Colombier    <a href="#V3.21_Streams">Streams</a>,
5417dd7cddfSDavid du Colombier    <a href="#V3.21_Library">Library</a>
5427dd7cddfSDavid du Colombier</ul>
5437dd7cddfSDavid du Colombier<li><a href="#Version3.20">Version 3.20 (beta) (10/31/94)</a>
5447dd7cddfSDavid du Colombier<ul>
5457dd7cddfSDavid du Colombier<li><a href="#V3.20_Documentation">Documentation</a>,
5467dd7cddfSDavid du Colombier    <a href="#V3.20_Procedures">Procedures</a>,
5477dd7cddfSDavid du Colombier    <a href="#V3.20_Utilities">Utilities</a>,
5487dd7cddfSDavid du Colombier    <a href="#V3.20_Drivers">Drivers</a>,
5497dd7cddfSDavid du Colombier    <a href="#V3.20_Platforms">Platforms</a>,
5507dd7cddfSDavid du Colombier    <a href="#V3.20_Fonts">Fonts</a>,
5517dd7cddfSDavid du Colombier    <a href="#V3.20_Interpreters">Interpreters</a>,
5527dd7cddfSDavid du Colombier    <a href="#V3.20_Library">Library</a>
5537dd7cddfSDavid du Colombier</ul>
5547dd7cddfSDavid du Colombier<li><a href="#Version3.13">Version 3.13(private) (10/3/94)</a>
5557dd7cddfSDavid du Colombier<ul>
5567dd7cddfSDavid du Colombier<li><a href="#V3.13_Documentation">Documentation</a>,
5577dd7cddfSDavid du Colombier    <a href="#V3.13_Procedures">Procedures</a>,
5587dd7cddfSDavid du Colombier    <a href="#V3.13_Utilities">Utilities</a>,
5597dd7cddfSDavid du Colombier    <a href="#V3.13_Drivers">Drivers</a>,
5607dd7cddfSDavid du Colombier    <a href="#V3.13_Platforms">Platforms</a>,
5617dd7cddfSDavid du Colombier    <a href="#V3.13_Fonts">Fonts</a>,
5627dd7cddfSDavid du Colombier    <a href="#V3.13_Interpreter">Interpreter</a>,
5637dd7cddfSDavid du Colombier    <a href="#V3.13_Streams">Streams</a>,
5647dd7cddfSDavid du Colombier    <a href="#V3.13_Library">Library</a>
5657dd7cddfSDavid du Colombier</ul>
5667dd7cddfSDavid du Colombier<li><a href="#Version3.12">Version 3.12 (9/29/94)</a>
5677dd7cddfSDavid du Colombier<ul>
5687dd7cddfSDavid du Colombier<li><a href="#V3.12_Documentation">Documentation</a>,
5697dd7cddfSDavid du Colombier    <a href="#V3.12_Procedures">Procedures</a>,
5707dd7cddfSDavid du Colombier    <a href="#V3.12_Drivers">Drivers</a>,
5717dd7cddfSDavid du Colombier    <a href="#V3.12_Platforms">Platforms</a>,
5727dd7cddfSDavid du Colombier    <a href="#V3.12_Interpreter">Interpreter</a>,
5737dd7cddfSDavid du Colombier    <a href="#V3.12_Streams">Streams</a>,
5747dd7cddfSDavid du Colombier    <a href="#V3.12_Library">Library</a>
5757dd7cddfSDavid du Colombier</ul>
5767dd7cddfSDavid du Colombier<li><a href="#Version3.1.1">Version 3.1.1 (9/25/94)</a>
5777dd7cddfSDavid du Colombier<ul>
5787dd7cddfSDavid du Colombier<li><a href="#V3.1.1_Documentation">Documentation</a>,
5797dd7cddfSDavid du Colombier    <a href="#V3.1.1_Procedures">Procedures</a>,
5807dd7cddfSDavid du Colombier    <a href="#V3.1.1_Drivers">Drivers</a>,
5817dd7cddfSDavid du Colombier    <a href="#V3.1.1_Platforms">Platforms</a>,
5827dd7cddfSDavid du Colombier    <a href="#V3.1.1_Interpreter">Interpreter</a>
5837dd7cddfSDavid du Colombier</ul>
5847dd7cddfSDavid du Colombier<li><a href="#Version3.1">Version 3.1 (9/20/94)</a>
5857dd7cddfSDavid du Colombier<ul>
5867dd7cddfSDavid du Colombier<li><a href="#V3.1_Documentation">Documentation</a>,
5877dd7cddfSDavid du Colombier    <a href="#V3.1_Procedures">Procedures</a>,
5887dd7cddfSDavid du Colombier    <a href="#V3.1_Drivers">Drivers</a>,
5897dd7cddfSDavid du Colombier    <a href="#V3.1_Interpreter">Interpreter</a>,
5907dd7cddfSDavid du Colombier    <a href="#V3.1_Streams">Streams</a>,
5917dd7cddfSDavid du Colombier    <a href="#V3.1_Library">Library</a>
5927dd7cddfSDavid du Colombier</ul>
5937dd7cddfSDavid du Colombier<li><a href="#Version3.0.3">Version 3.0.3 (9/16/94)</a>
5947dd7cddfSDavid du Colombier<ul>
5957dd7cddfSDavid du Colombier<li><a href="#V3.0.3_Documentation">Documentation</a>,
5967dd7cddfSDavid du Colombier    <a href="#V3.0.3_Procedures">Procedures</a>,
5977dd7cddfSDavid du Colombier    <a href="#V3.0.3_Utilities">Utilities</a>,
5987dd7cddfSDavid du Colombier    <a href="#V3.0.3_Drivers">Drivers</a>,
5997dd7cddfSDavid du Colombier    <a href="#V3.0.3_Platforms">Platforms</a>,
6007dd7cddfSDavid du Colombier    <a href="#V3.0.3_Fonts">Fonts</a>,
6017dd7cddfSDavid du Colombier    <a href="#V3.0.3_Streams">Streams</a>,
6027dd7cddfSDavid du Colombier    <a href="#V3.0.3_Interpreter">Interpreter</a>,
6037dd7cddfSDavid du Colombier    <a href="#V3.0.3_Library">Library</a>
6047dd7cddfSDavid du Colombier</ul>
6057dd7cddfSDavid du Colombier<li><a href="#Version3.02">Version 3.02 (8/30/94)</a>
6067dd7cddfSDavid du Colombier<ul>
6077dd7cddfSDavid du Colombier<li><a href="#V3.02_Documentation">Documentation</a>,
6087dd7cddfSDavid du Colombier    <a href="#V3.02_Procedures">Procedures</a>,
6097dd7cddfSDavid du Colombier    <a href="#V3.02_Utilities">Utilities</a>,
6107dd7cddfSDavid du Colombier    <a href="#V3.02_Drivers">Drivers</a>,
6117dd7cddfSDavid du Colombier    <a href="#V3.02_Platforms">Platforms</a>,
6127dd7cddfSDavid du Colombier    <a href="#V3.02_Fonts">Fonts</a>,
6137dd7cddfSDavid du Colombier    <a href="#V3.02_Interpreter">Interpreter</a>,
6147dd7cddfSDavid du Colombier    <a href="#V3.02_Streams">Streams</a>,
6157dd7cddfSDavid du Colombier    <a href="#V3.02_Library">Library</a>
6167dd7cddfSDavid du Colombier</ul>
6177dd7cddfSDavid du Colombier<li><a href="#Version3.01">Version 3.01 (8/14/94)</a>
6187dd7cddfSDavid du Colombier<ul>
6197dd7cddfSDavid du Colombier<li><a href="#V3.01_Documentation">Documentation</a>,
6207dd7cddfSDavid du Colombier    <a href="#V3.01_Procedures">Procedures</a>,
6217dd7cddfSDavid du Colombier    <a href="#V3.01_Utilities">Utilities</a>,
6227dd7cddfSDavid du Colombier    <a href="#V3.01_Drivers">Drivers</a>,
6237dd7cddfSDavid du Colombier    <a href="#V3.01_Platforms">Platforms</a>,
6247dd7cddfSDavid du Colombier    <a href="#V3.01_Fonts">Fonts</a>,
6257dd7cddfSDavid du Colombier    <a href="#V3.01_Interpreter">Interpreter</a>,
6267dd7cddfSDavid du Colombier    <a href="#V3.01_Streams">Streams</a>,
6277dd7cddfSDavid du Colombier    <a href="#V3.01_Library">Library</a>
6287dd7cddfSDavid du Colombier</ul>
6297dd7cddfSDavid du Colombier<li><a href="#Version3.0">Version 3.0 (8/1/94)</a>
6307dd7cddfSDavid du Colombier<ul>
6317dd7cddfSDavid du Colombier<li><a href="#V3.0_Documentation">Documentation</a>,
6327dd7cddfSDavid du Colombier    <a href="#V3.0_Procedures">Procedures</a>,
6337dd7cddfSDavid du Colombier    <a href="#V3.0_Utilities">Utilities</a>,
6347dd7cddfSDavid du Colombier    <a href="#V3.0_Drivers">Drivers</a>,
6357dd7cddfSDavid du Colombier    <a href="#V3.0_Platforms">Platforms</a>,
6367dd7cddfSDavid du Colombier    <a href="#V3.0_Fonts">Fonts</a>,
6377dd7cddfSDavid du Colombier    <a href="#V3.0_Interpreter">Interpreter</a>,
6387dd7cddfSDavid du Colombier    <a href="#V3.0_Streams">Streams</a>,
6397dd7cddfSDavid du Colombier    <a href="#V3.0_Library">Library</a>
6407dd7cddfSDavid du Colombier</ul>
6417dd7cddfSDavid du Colombier</ul></blockquote>
6427dd7cddfSDavid du Colombier
6437dd7cddfSDavid du Colombier<!-- [1.2 end table of contents] =========================================== -->
6447dd7cddfSDavid du Colombier
6457dd7cddfSDavid du Colombier<!-- [1.3 begin hint] ====================================================== -->
6467dd7cddfSDavid du Colombier
6477dd7cddfSDavid du Colombier<p>
6487dd7cddfSDavid du ColombierThis document is a history of Ghostscript releases numbered 3.n.  For more
6497dd7cddfSDavid du Colombierrecent changes, see the the other history documents and, for the latest
6507dd7cddfSDavid du Colombierversions, the news:
6517dd7cddfSDavid du Colombier
6527dd7cddfSDavid du Colombier<blockquote>
6537dd7cddfSDavid du Colombier<a href="News.htm">News</a><br>
6547dd7cddfSDavid du Colombier<a href="History4.htm">History of Ghostscript versions 4.n</a><br>
6557dd7cddfSDavid du ColombierHistory of Ghostscript versions 3.n (this document)<br>
6567dd7cddfSDavid du Colombier<a href="History2.htm">History of Ghostscript versions 2.n</a><br>
6577dd7cddfSDavid du Colombier<a href="History1.htm">History of Ghostscript versions 1.n</a>
6587dd7cddfSDavid du Colombier</blockquote>
6597dd7cddfSDavid du Colombier
6607dd7cddfSDavid du Colombier<p>For other information, see the <a href="Readme.htm">Ghostscript
6617dd7cddfSDavid du Colombieroverview</a>.
6627dd7cddfSDavid du Colombier
6637dd7cddfSDavid du Colombier<!-- [1.3 end hint] ======================================================== -->
6647dd7cddfSDavid du Colombier
6657dd7cddfSDavid du Colombier<hr>
6667dd7cddfSDavid du Colombier
6677dd7cddfSDavid du Colombier<!-- [1.0 end visible header] ============================================== -->
6687dd7cddfSDavid du Colombier
6693ff48bf5SDavid du Colombier<h2><a name="Version3.70p1"></a>Version 3.70 patch 1 (6/24/96)</h2>
6707dd7cddfSDavid du Colombier
6713ff48bf5SDavid du Colombier<p>
6727dd7cddfSDavid du ColombierThis contains a few last-minute patches before the release.
6737dd7cddfSDavid du Colombier
6743ff48bf5SDavid du Colombier<h3><a name="V3.70p1_Procedures"></a>Procedures</h3><pre>
6757dd7cddfSDavid du ColombierComments out the color inkjet drivers in the cc-based makefile, because a
6767dd7cddfSDavid du Colombierbug in Sun's cc prevents them from compiling.  (cc-head.mak)
6777dd7cddfSDavid du Colombier
6783ff48bf5SDavid du Colombier</pre><h3><a name="V3.70p1_Drivers"></a>Drivers</h3><pre>
6797dd7cddfSDavid du ColombierFixes bugs:
6807dd7cddfSDavid du Colombier	- The os2prn driver smashed memory.  (gdevos2p.c)
6817dd7cddfSDavid du Colombier	- Some initialized structures weren't declared 'static'.
6827dd7cddfSDavid du Colombier(gdevpdf.c, gdevpdfm.c)
6837dd7cddfSDavid du Colombier	- The PNG driver wouldn't compile with some older versions of the
6847dd7cddfSDavid du ColombierPNG library.  (gdevpng.c)
6857dd7cddfSDavid du Colombier
6863ff48bf5SDavid du Colombier</pre>
6877dd7cddfSDavid du Colombier
6883ff48bf5SDavid du Colombier<h2><a name="Version3.70"></a>Version 3.70 (limited) (6/23/96)</h2>
6897dd7cddfSDavid du Colombier
6903ff48bf5SDavid du Colombier<p>
6913ff48bf5SDavid du ColombierThis is the candidate fileset for 4.0.  Aside from one optimization
6923ff48bf5SDavid du Colombierfor the PDF writer, the only changes are bug fixes.
6933ff48bf5SDavid du Colombier
6943ff48bf5SDavid du Colombier<h3><a name="V3.70_Documentation"></a>Documentation</h3><pre>
6957dd7cddfSDavid du Colombier
6967dd7cddfSDavid du ColombierRenames all the documentation files from *.doc to *.txt, since the .doc
6977dd7cddfSDavid du Colombierextension didn't give any information about the format of the file.
6987dd7cddfSDavid du Colombier(readme, *.doc, *.txt)
6997dd7cddfSDavid du Colombier
7007dd7cddfSDavid du ColombierNotes that IJG JPEG library v6[a] is now required.  (jpeg.mak)
7017dd7cddfSDavid du Colombier
7027dd7cddfSDavid du ColombierBrings ps2pdf.1 up to date.  (ps2pdf.1)
7037dd7cddfSDavid du Colombier
7047dd7cddfSDavid du ColombierAdds a new file describing Aladdin's C coding practices.  (c-style.txt)
7057dd7cddfSDavid du Colombier
7067dd7cddfSDavid du ColombierUpdates the man pages to refer to version 4.0.  (gs.1, pdf2ps.1, ps2ascii.1,
7077dd7cddfSDavid du Colombierps2pdf.1)
7087dd7cddfSDavid du Colombier
7093ff48bf5SDavid du Colombier</pre><h3><a name="V3.70_Procedures"></a>Procedures</h3><pre>
7107dd7cddfSDavid du Colombier
7117dd7cddfSDavid du ColombierChanges some file names to fit within the MS-DOS 8.3 limit.  (gs.mak)
7127dd7cddfSDavid du Colombier
7137dd7cddfSDavid du ColombierAdds the PDF writer to the remaining 32-bit configurations (Watcom, OS/2,
7147dd7cddfSDavid du ColombierMSC).  (watc.mak, watcwin.mak, os2.mak, msc.mak, msvcwint.mak)
7157dd7cddfSDavid du Colombier
7167dd7cddfSDavid du ColombierChanges the -sFONTMAP= switch so it can take a list of font names, like a
7177dd7cddfSDavid du Colombiersearch path.  (use.txt)
7187dd7cddfSDavid du Colombier
7193ff48bf5SDavid du Colombier</pre><h3><a name="V3.70_Drivers"></a>Drivers</h3><pre>
7207dd7cddfSDavid du Colombier
7217dd7cddfSDavid du ColombierFixes bugs:
7227dd7cddfSDavid du Colombier	- Signed and unsigned values were mixed inconsistently.  (gdevcdj.c)
7237dd7cddfSDavid du Colombier	- PDF files could contain e-format floating point numbers, which the
7247dd7cddfSDavid du ColombierPDF specification doesn't allow.  (gdevpdfx.h, gdevpdf*.c)
7257dd7cddfSDavid du Colombier	- The PDF writer didn't handle glyphshow properly.  (gs_pdfwr.ps)
7267dd7cddfSDavid du Colombier	- The PDF writer did the wrong thing with fonts whose FontMatrix had
7277dd7cddfSDavid du Colombiera non-zero translation component.  (gs_pdfwr.ps, gdevpdft.c)
7287dd7cddfSDavid du Colombier	- The stand-alone bounding box device could crash when setting
7297dd7cddfSDavid du Colombierparameters.  (gdevbbox.c)
7307dd7cddfSDavid du Colombier	- The mswinpr2 driver smashed memory.  (gdevwpr2.c)
7317dd7cddfSDavid du Colombier
7327dd7cddfSDavid du ColombierChanges the PDF writer so that if it encounters a re-encoded character, it
7337dd7cddfSDavid du Colombiertries to map it to an encoded character in the standard (ISO Latin-1)
7347dd7cddfSDavid du Colombierencoding rather than converting the entire string containing it to a bitmap.
7357dd7cddfSDavid du ColombierThis dramatically improves output file size for files with a few divergently
7367dd7cddfSDavid du Colombierencoded characters, but it may cause the text in the PDF file to differ from
7377dd7cddfSDavid du Colombierthe text in the PostScript input.  (gdevpdft.c)
7387dd7cddfSDavid du Colombier
7397dd7cddfSDavid du ColombierDisallows BitsPerPixel=16 in the MS Windows and OS/2 drivers, since this bit
7407dd7cddfSDavid du Colombierdepth is not supported by Windows and would require special extra buffering.
7417dd7cddfSDavid du Colombier(install.txt, dwtext.h, dwtext.cpp, gdevmswn.c, gdevpm.c, gdevwpr2.c)
7427dd7cddfSDavid du Colombier
7433ff48bf5SDavid du Colombier</pre><h3><a name="V3.70_Platforms"></a>Platforms</h3><pre>
7447dd7cddfSDavid du Colombier
7457dd7cddfSDavid du ColombierFixes bugs:
7467dd7cddfSDavid du Colombier	- On the PC platforms, file names weren't changed to reflect the
7477dd7cddfSDavid du Colombiervalue of CONFIG.  (gs.mak, bc*.mak, ms*.mak, os2.mak, tc*.mak, watc*.mak,
7487dd7cddfSDavid du Colombierwccommon.mak)
7497dd7cddfSDavid du Colombier
7507dd7cddfSDavid du ColombierModifies some makefiles for greater reusability.  (bclib.mak, watclib.mak)
7517dd7cddfSDavid du Colombier
7523ff48bf5SDavid du Colombier</pre><h3><a name="V3.70_Fonts"></a>Fonts</h3><pre>
7537dd7cddfSDavid du Colombier
7547dd7cddfSDavid du ColombierChanges the font searching rules in the following NON-BACKWARD-COMPATIBLE
7557dd7cddfSDavid du Colombierway: (gs_fonts.ps, gs_res.ps)
7567dd7cddfSDavid du Colombier	- -sFONTMAP=files specifies a list of files containing fontmaps;
7577dd7cddfSDavid du Colombierpreviously, it specified only a single fontmap file.
7587dd7cddfSDavid du Colombier	- If -sFONTMAP= is not used, the interpreter reads the Fontmaps from
7597dd7cddfSDavid du Colombier*all* directories on the search path, and does so even if FONTPATH or
7607dd7cddfSDavid du ColombierGS_FONTPATH is set; previously, it read only the first Fontmap, and only if
7617dd7cddfSDavid du Colombier[GS_]FONTPATH was not set.
7627dd7cddfSDavid du Colombier	- Fontmap(s) take precedence over [GS_]FONTPATH; previously,
7637dd7cddfSDavid du Colombier[GS_]FONTPATH caused Fontmap to be ignored.  (You can still force Fontmap to
7647dd7cddfSDavid du Colombierbe ignored with -dNOFONTMAP.)
7657dd7cddfSDavid du Colombier	- Earlier [GS_]FONTPATH entries take precedence over later;
7667dd7cddfSDavid du Colombierpreviously, later entries took precedence over earlier.  Note that this is
7677dd7cddfSDavid du Colombierdifferent from Fontmap: earlier Fontmaps in the search path take precedence
7687dd7cddfSDavid du Colombierover later, but within a single Fontmap, later entries take precedence over
7697dd7cddfSDavid du Colombierearlier (for backward compatibility).
7707dd7cddfSDavid du Colombier	- [GS_]FONTPATH is consulted only if there is no Fontmap entry for a
7717dd7cddfSDavid du Colombierfont, or no Fontmap entry leads to successful loading; previously,
7727dd7cddfSDavid du Colombier[GS_]FONTPATH was always consulted at startup.
7737dd7cddfSDavid du Colombier	- If loading a font fails, the interpreter tries the next Fontmap
7747dd7cddfSDavid du Colombierentry; previously, it fell back to font substitution.
7757dd7cddfSDavid du Colombier
7763ff48bf5SDavid du Colombier</pre><h3><a name="V3.70_Interpreter"></a>Interpreter</h3><pre>
7777dd7cddfSDavid du Colombier
7787dd7cddfSDavid du ColombierFixes bugs:
7797dd7cddfSDavid du Colombier	- Filters didn't peek ahead for an EOD (see Streams below).
7807dd7cddfSDavid du Colombier(zfileio.c, zpaint.c)
7817dd7cddfSDavid du Colombier
7827dd7cddfSDavid du ColombierSplits up a file to allow internal access to user and system parameters even
7837dd7cddfSDavid du Colombierin Level 1.  (zmisc2.c, zusparam.c)
7847dd7cddfSDavid du Colombier
7857dd7cddfSDavid du ColombierAdds LIBPATH as a predefined name in systemdict.  Its value is an array of
7867dd7cddfSDavid du Colombierstrings comprising the library search path.  (imain.c)
7877dd7cddfSDavid du Colombier
7883ff48bf5SDavid du Colombier</pre><h3><a name="V3.70_Interpreter_PDF"></a>Interpreter (PDF)</h3><pre>
7897dd7cddfSDavid du Colombier
7907dd7cddfSDavid du ColombierFixes bugs:
7917dd7cddfSDavid du Colombier	- A Dests dictionary entry with an array (rather than a dictionary)
7927dd7cddfSDavid du Colombiervalue caused an error.  (pdf_main.ps)
7937dd7cddfSDavid du Colombier	- Rotated pages could have incorrect translation and/or clipping.
7947dd7cddfSDavid du Colombier(pdf_main.ps)
7957dd7cddfSDavid du Colombier
7963ff48bf5SDavid du Colombier</pre><h3><a name="V3.70_Streams"></a>Streams</h3><pre>
7977dd7cddfSDavid du Colombier
7987dd7cddfSDavid du ColombierFixes bugs:
7997dd7cddfSDavid du Colombier	- If a buffer boundary fell just before an EOD, and the client read
8007dd7cddfSDavid du Colombierexactly as much data as was present before the EOD, filters didn't consume
8017dd7cddfSDavid du Colombierthe EOD.  (This is required as a tricky consequence of the Adobe
8027dd7cddfSDavid du Colombierspecification.)  (stream.h, strimpl.h, stream.c)
8037dd7cddfSDavid du Colombier
8043ff48bf5SDavid du Colombier</pre><h3><a name="V3.70_Library"></a>Library</h3><pre>
8057dd7cddfSDavid du Colombier
8067dd7cddfSDavid du ColombierFixes bugs:
8077dd7cddfSDavid du Colombier	- An extra column of bits could get turned on at the right edge of
8087dd7cddfSDavid du Colombiermasked or monochrome images.  (gximage2.c)
8097dd7cddfSDavid du Colombier	- Rasterizing very long curves could cause arithmetic errors or
8107dd7cddfSDavid du Colombierfloating point overflows.  (gxpcopy.c)
8117dd7cddfSDavid du Colombier	- Banding with large line widths could truncate curves or introduce
8127dd7cddfSDavid du Colombierspurious lines.  (gxclpath.c)
8137dd7cddfSDavid du Colombier
8143ff48bf5SDavid du Colombier</pre>
8157dd7cddfSDavid du Colombier
8163ff48bf5SDavid du Colombier<hr>
8173ff48bf5SDavid du Colombier
8183ff48bf5SDavid du Colombier<h2><a name="Version3.69"></a>Version 3.69 (limited) (6/14/96)</h2>
8193ff48bf5SDavid du Colombier
8203ff48bf5SDavid du Colombier<p>
8217dd7cddfSDavid du ColombierMore bug fixes, plus one irresistible new feature: the ability to use
8227dd7cddfSDavid du ColombierTrueType fonts as freely as Type 1 fonts.  Also, one new feature (outside
8237dd7cddfSDavid du Colombierclipping) that was needed for Aladdin's PCL XL project.  We incremented the
8247dd7cddfSDavid du Colombierversion number because of the change in trapezoid and path filling (see
8257dd7cddfSDavid du Colombierunder Library below).
8267dd7cddfSDavid du Colombier
8273ff48bf5SDavid du Colombier<h3><a name="V3.69_Documentation"></a>Documentation</h3><pre>
8287dd7cddfSDavid du ColombierBrings documentation about fonts up to date.  (fonts.doc)
8297dd7cddfSDavid du Colombier
8307dd7cddfSDavid du ColombierUpdates current.doc to reflect changes since 3.53.  (current.doc)
8317dd7cddfSDavid du Colombier
8327dd7cddfSDavid du ColombierUpdates the DLL documentation to reflect recent changes.  (dll.doc)
8337dd7cddfSDavid du Colombier
8347dd7cddfSDavid du ColombierDocuments a workaround for the code generation bug in gcc 2.7.x.  (make.doc)
8357dd7cddfSDavid du Colombier
8367dd7cddfSDavid du ColombierChanges the contact information for potential commercial customers in
8377dd7cddfSDavid du ColombierEurope.  (new-user.doc)
8387dd7cddfSDavid du Colombier
8397dd7cddfSDavid du ColombierUpdates the OS/2 documentation to make it current.  (install.doc, make.doc)
8407dd7cddfSDavid du Colombier
8417dd7cddfSDavid du ColombierDocuments -dCOLORSCREEN=0.  (use.doc)
8427dd7cddfSDavid du Colombier
8433ff48bf5SDavid du Colombier</pre><h3><a name="V3.69_Procedures"></a>Procedures</h3><pre>
8447dd7cddfSDavid du Colombier
8457dd7cddfSDavid du ColombierFixes bugs:
8467dd7cddfSDavid du Colombier	- 'make clean' didn't work in the Watcom environment.
8477dd7cddfSDavid du Colombier(wmakebat.bat, gs.mak, msc.mak, msvcwint.mak, os2.mak, tccommon.mak,
8487dd7cddfSDavid du Colombierunixhead.mak, wccommon.mak)
8497dd7cddfSDavid du Colombier	- The X11 libraries were listed in an incorrect order.
8507dd7cddfSDavid du Colombier(ansihead.mak, cc-head.mak, gcc-head.mak, ugcclib.mak, unix-end.mak)
8517dd7cddfSDavid du Colombier	- The OS/2 makefile didn't ignore errors from `erase' commands.
8527dd7cddfSDavid du Colombier(os2.mak)
8537dd7cddfSDavid du Colombier
8547dd7cddfSDavid du ColombierAdds the PDF writer to the 32-bit MS Windows configuration.  (bcwin32.mak)
8557dd7cddfSDavid du Colombier
8567dd7cddfSDavid du ColombierAdds the PNG drivers to the 32-bit MS Windows platform, since they now
8577dd7cddfSDavid du Colombiercompile properly.  (bcwin32.mak)
8587dd7cddfSDavid du Colombier
8597dd7cddfSDavid du ColombierChanges the ttfont feature so that it refers to support for direct usage of
8607dd7cddfSDavid du ColombierTrueType fonts; puts support for Type 42 fonts into a separate feature
8617dd7cddfSDavid du Colombier(type42).  (gs.mak, int.mak)
8627dd7cddfSDavid du Colombier
8637dd7cddfSDavid du ColombierAdds direct TrueType font support to the Windows platforms.  (bcwin.mak,
8647dd7cddfSDavid du Colombierbcwin32.mak)
8657dd7cddfSDavid du Colombier
8667dd7cddfSDavid du ColombierRewrites vms.mak to be structured more like the other makefiles.  (vms.mak,
8677dd7cddfSDavid du Colombiermodules.lis)
8687dd7cddfSDavid du Colombier
8697dd7cddfSDavid du ColombierMakes the device lists in vms-*.mak the same as those for the Unix
8707dd7cddfSDavid du Colombierconfigurations.  (vms-cc.mak, vms-decc.mak, vms-gcc.mak)
8717dd7cddfSDavid du Colombier
8727dd7cddfSDavid du ColombierChanges the default X library directory for gcc to /usr/X11/lib.
8737dd7cddfSDavid du Colombier(gcc-head.mak)
8747dd7cddfSDavid du Colombier
8757dd7cddfSDavid du ColombierAdds the list of devices to --help, since HylaFax depends on this.
8767dd7cddfSDavid du Colombier(imainarg.c)
8777dd7cddfSDavid du Colombier
8787dd7cddfSDavid du ColombierAdds -dCOLORSCREEN=0 to indicate use of 4 separate color screens with the
8797dd7cddfSDavid du Colombiersame frequency and angle.  (gs_init.ps)
8807dd7cddfSDavid du Colombier
8813ff48bf5SDavid du Colombier</pre><h3><a name="V3.69_Utilities"></a>Utilities</h3><pre>
8827dd7cddfSDavid du Colombier
8837dd7cddfSDavid du ColombierFixes bugs:
8847dd7cddfSDavid du Colombier	- When ps2epsi encountered a blank page, it called the
8857dd7cddfSDavid du Colombier(undocumented) .quit operator with only one argument, causing a stack
8867dd7cddfSDavid du Colombierunderflow.  (ps2epsi.ps)
8877dd7cddfSDavid du Colombier	- An extraneous file was included in the fileset.  (checkacc.ps)
8887dd7cddfSDavid du Colombier	- A file was omitted from the fileset.  (bench.c)
8897dd7cddfSDavid du Colombier	- Images in PostScript files produced by pdf2ps were processed about
8907dd7cddfSDavid du Colombier50 times slower than they should have been.  (gs_pdf.ps)
8917dd7cddfSDavid du Colombier
8923ff48bf5SDavid du Colombier</pre><h3><a name="V3.69_Drivers"></a>Drivers</h3><pre>
8937dd7cddfSDavid du Colombier
8947dd7cddfSDavid du ColombierFixes bugs:
8957dd7cddfSDavid du Colombier	- An #include was omitted.  (gdevpdfi.c)
8967dd7cddfSDavid du Colombier	- The BJC driver could get into an inconsistent state.  (gdevcdj.c)
8977dd7cddfSDavid du Colombier	- Braces were omitted around the values for two initialized byte
8987dd7cddfSDavid du Colombierarrays.  (gdevpcx.c)
8997dd7cddfSDavid du Colombier	- A function used 'float' in its argument list, causing problems in
9007dd7cddfSDavid du Colombiermixed ANSI/non-ANSI compilation.  (gdevcdj.c)
9017dd7cddfSDavid du Colombier	- signed and unsigned char pointers were used inconsistently.
9027dd7cddfSDavid du Colombier(gdevcdj.c, gdevcgml.c)
9037dd7cddfSDavid du Colombier	- Some header files weren't protected against double inclusion.
9047dd7cddfSDavid du Colombier(gdevprn.h, gdevtifs.h)
9057dd7cddfSDavid du Colombier	- The 24-bit PNG driver included unnecessary copies of the color
9067dd7cddfSDavid du Colombiermapping procedures.  (gdevpng.c)
9077dd7cddfSDavid du Colombier
9087dd7cddfSDavid du ColombierFixes bugs in the PDF writer:
9097dd7cddfSDavid du Colombier	- The PDF writer sometimes produced a double // in front of a filter
9107dd7cddfSDavid du Colombiername.  (gdevpdfi.c)
9117dd7cddfSDavid du Colombier	- The PDF writer produced zero-width, zero-height images for
9127dd7cddfSDavid du Colombiernon-standard fonts.  (bug introduced since 3.68) (gdevpdfi.c)
9137dd7cddfSDavid du Colombier	- The PDF writer got confused if the input file invoked
9147dd7cddfSDavid du Colombiersetpagedevice.  (gdevpdfp.c)
9157dd7cddfSDavid du Colombier	- The PDF writer put annotations on the page after the one they were
9167dd7cddfSDavid du Colombiersupposed to be on.  (gdevpdf.c)
9177dd7cddfSDavid du Colombier	- The PDF writer sometimes failed to set the font when needed.
9187dd7cddfSDavid du Colombier(gdevpdf.c)
9197dd7cddfSDavid du Colombier	- The PDF writer could produce in-line images that were too large.
9207dd7cddfSDavid du Colombier(gdevpdfi.c)
9217dd7cddfSDavid du Colombier	- The PDF writer didn't scale explicit character and word spacing
9227dd7cddfSDavid du Colombier(ashow/widthshow/awidthshow) properly.  (gdevpdft.c)
9237dd7cddfSDavid du Colombier	- The PDF writer didn't copy named destination or article title
9247dd7cddfSDavid du Colombierstrings, possibly leading to dangling pointers.  (gdevpdf.c, gdevpdfm.c)
9257dd7cddfSDavid du Colombier	- The PDF writer produced incorrect output for re-encoded fonts.
9267dd7cddfSDavid du Colombier(It now converts any string containing characters in non-standard positions
9277dd7cddfSDavid du Colombierto bitmaps; this will be fixed in a later release.)  (gs_pdfwr.ps,
9287dd7cddfSDavid du Colombiergdevpdfx.h, gdevpdfp.c, gdevpdft.c)
9297dd7cddfSDavid du Colombier
9307dd7cddfSDavid du ColombierUpdates a few drivers for the change in the handling of band device
9317dd7cddfSDavid du Colombierprocedures.  (gdevcp50.c, gdevdjet.c)
9327dd7cddfSDavid du Colombier
9337dd7cddfSDavid du ColombierUpdates the X Windows driver for strip halftones.  (gdevx.c)
9347dd7cddfSDavid du Colombier
9357dd7cddfSDavid du ColombierAdds anti-aliasing capability to the os2pm device.  (gdevpm.c)
9367dd7cddfSDavid du Colombier
9377dd7cddfSDavid du ColombierIncreases the sizes of some tables in the PDF writer.  (gdevpdfx.h)
9387dd7cddfSDavid du Colombier
9393ff48bf5SDavid du Colombier</pre><h3><a name="V3.69_Platforms"></a>Platforms</h3><pre>
9407dd7cddfSDavid du Colombier
9417dd7cddfSDavid du ColombierFixes bugs:
9427dd7cddfSDavid du Colombier	- A patch for the MS Windows platform was accidentally omitted.
9437dd7cddfSDavid du Colombier(gp_mswin.c)
9447dd7cddfSDavid du Colombier	- A block of code was accidentally duplicated.  (dwmain.cpp)
9457dd7cddfSDavid du Colombier	- An identifier exceeded VAX VMS C's limit of 31 characters.
9467dd7cddfSDavid du Colombier(gscspace.h)
9477dd7cddfSDavid du Colombier	- File name enumeration didn't work properly on Unix systems
9487dd7cddfSDavid du Colombier(still/again).  (gp_unifs.c)
9497dd7cddfSDavid du Colombier	- On MS Windows, If you closed Ghostscript with the system menu, you
9507dd7cddfSDavid du Colombieronly closed the text window; Ghostscript kept running and you had to use the
9517dd7cddfSDavid du Colombiertask manager to kill it.  (dwmain.cpp, dwmainc.cpp, dwtext.cpp)
9527dd7cddfSDavid du Colombier	- Some DLL-related typedefs were not consistent.  (dwdll.h, gsdll.h,
9537dd7cddfSDavid du Colombierdpmainc.c, dwdll.cpp)
9547dd7cddfSDavid du Colombier	- Attempts to call the DLL before it was initialized were not
9557dd7cddfSDavid du Colombierdetected.  (gsdll.c)
9567dd7cddfSDavid du Colombier	- Bitmap line lengths were rounded up even on 32-bit Windows, which
9577dd7cddfSDavid du Colombierdoesn't want this.  (gdevwdib.c)
9587dd7cddfSDavid du Colombier
9597dd7cddfSDavid du ColombierFurther improves the handling of attempts to use the DLL when it is already
9607dd7cddfSDavid du Colombierin use.  (dwdll.cpp, gsdll.c)
9617dd7cddfSDavid du Colombier
9627dd7cddfSDavid du ColombierAdds a DLL-compatible main program for OS/2.  (dpmainc.c, gp_os2.c, gsdll.c)
9637dd7cddfSDavid du Colombier
9643ff48bf5SDavid du Colombier</pre><h3><a name="V3.69_Fonts"></a>Fonts</h3><pre>
9657dd7cddfSDavid du Colombier
9667dd7cddfSDavid du ColombierFixes bugs:
9677dd7cddfSDavid du Colombier	- The WingDings TrueType font wasn't loaded properly.  (gs_ttf.ps)
9687dd7cddfSDavid du Colombier
9697dd7cddfSDavid du ColombierMakes changes so that TrueType fonts can appear in the Fontmap and can be
9707dd7cddfSDavid du Colombierloaded directly.  (gs_fonts.ps, gs_ttf.ps)
9717dd7cddfSDavid du Colombier
9723ff48bf5SDavid du Colombier</pre><h3><a name="V3.69_Interpreter"></a>Interpreter</h3><pre>
9737dd7cddfSDavid du Colombier
9747dd7cddfSDavid du ColombierFixes bugs:
9757dd7cddfSDavid du Colombier	- Executing a .quit with only 1 element on the operand stack caused
9767dd7cddfSDavid du Colombieran invalid access.  (zcontrol.c)
9777dd7cddfSDavid du Colombier	- The usage help message contained incorrect double %%s.
9787dd7cddfSDavid du Colombier(imainarg.c)
9797dd7cddfSDavid du Colombier	- If an initialization file tried to use any Encodings other than
9807dd7cddfSDavid du Colombierthe 4 registered ones, it couldn't find them.  (gs_init.ps, gs_res.ps)
9817dd7cddfSDavid du Colombier	- Places that expected arrays of coordinates (rectangles,
9827dd7cddfSDavid du Colombierx/y/xyshow) didn't accept packed arrays.  (ibnum.c, zdps1.c)
9837dd7cddfSDavid du Colombier	- filterdict was still visible after initialization.  (gs_init.ps)
9847dd7cddfSDavid du Colombier	- The usage error message wasn't terminated by a newline.
9857dd7cddfSDavid du Colombier(imainarg.c)
9867dd7cddfSDavid du Colombier	- setcacheparams (or setting the MaxFontCache user parameter) didn't
9877dd7cddfSDavid du Colombieractually affect the size of the character cache.  (zfont.c, zmisc2.c)
9887dd7cddfSDavid du Colombier	- The main interpreter loop declared iref as a ref *, even though it
9897dd7cddfSDavid du Colombiermay only be a ref_packed *.  (iref.h, interp.c)
9907dd7cddfSDavid du Colombier
9917dd7cddfSDavid du ColombierChanges the character cache so it ignores absurd FontBBox values.  Nothing
9927dd7cddfSDavid du Colombierin the Adobe spec suggests doing this, but it is necessary for handling
9937dd7cddfSDavid du Colombierquestionable output produced by PageMaker 5.0 (an Adobe product!).
9947dd7cddfSDavid du Colombier(zchar1.c)
9957dd7cddfSDavid du Colombier
9967dd7cddfSDavid du ColombierChanges some type declarations slightly to reduce the number of 'discarding
9977dd7cddfSDavid du Colombierconst' compiler warnings.  (igc.h, igc.c, igcref.c)
9987dd7cddfSDavid du Colombier
9997dd7cddfSDavid du ColombierAdds .setclipoutside and .currentclipoutside operators for accessing the new
10007dd7cddfSDavid du Colombieroutside clipping capability.  (zpath.c)
10017dd7cddfSDavid du Colombier
10027dd7cddfSDavid du ColombierAdds the dictionary stack to the information printed in case of a fatal
10037dd7cddfSDavid du Colombierproblem.  (imain.c)
10047dd7cddfSDavid du Colombier
10057dd7cddfSDavid du ColombierAdds .set/currentrenderalgorithm operators for testing.  (zrop.c)
10067dd7cddfSDavid du Colombier
10073ff48bf5SDavid du Colombier</pre><h3><a name="V3.69_Library"></a>Library</h3><pre>
10087dd7cddfSDavid du Colombier
10097dd7cddfSDavid du ColombierFixes bugs:
10107dd7cddfSDavid du Colombier	- The TrueType rasterizer didn't map quadratic to cubic splines
10117dd7cddfSDavid du Colombierwell, and didn't handle off-curve points at the end of a contour properly.
10127dd7cddfSDavid du Colombier(gstype42.c)
10137dd7cddfSDavid du Colombier	- An #include was omitted.  (gsimage.c, gxclimag.c)
10147dd7cddfSDavid du Colombier	- Some compilers complained about statements with no effect, or
10157dd7cddfSDavid du Colombiercomma operators with no effect on the left.  (gschar.c, gxcpath.c, gxfill.c)
10167dd7cddfSDavid du Colombier	- TrueType or Type 42 glyphs with a repeat count that crossed a
10177dd7cddfSDavid du Colombiercontour boundary produced incorrect output.  (gstype42.c)
10187dd7cddfSDavid du Colombier	- TrueType / Type 42 composite glyphs involving rotation were placed
10197dd7cddfSDavid du Colombierincorrectly.  (gstype42.c)
10207dd7cddfSDavid du Colombier	- Type 42 fonts with an absent or incorrect FontBBox could fail to
10217dd7cddfSDavid du Colombierproduce output.  (gstype42.c)
10227dd7cddfSDavid du Colombier	- Some header files weren't protected against double inclusion.
10237dd7cddfSDavid du Colombier(gsio.h, gdebug.h)
10247dd7cddfSDavid du Colombier	- Decoding filters didn't "look ahead" to detect EOD, so if the last
10257dd7cddfSDavid du Colombierread operation before closing the filter ended just before the EOD mark, the
10267dd7cddfSDavid du ColombierEOD mark might not be absorbed.  (stream.h, stream.c)
10277dd7cddfSDavid du Colombier	- Filling paths consisting of multiple subpaths that overlap in Y
10287dd7cddfSDavid du Colombierproduced slightly inaccurate output.  We were unable to find a way to fix
10297dd7cddfSDavid du Colombierthis without making a NON-BACKWARD-COMPATIBLE change in the interface for
10307dd7cddfSDavid du Colombierthe recently introduced fill_trapezoid device procedure.  (gxdevice.h,
10317dd7cddfSDavid du Colombiergdevbbox.c, gdevddrw.c, gdevnfwd.c, gxfill.c)
10327dd7cddfSDavid du Colombier	- When banding, get_bits didn't detect calls with out-of-range Y
10337dd7cddfSDavid du Colombiervalues.  (gxclread.c)
10347dd7cddfSDavid du Colombier	- setcacheparams didn't actually affect the size of the character
10357dd7cddfSDavid du Colombiercache.  (gsfont.h, gxbcache.h, gxfcache.h, gschar.c, gsfont.c, gxbcache.c,
10367dd7cddfSDavid du Colombiergxccman.c, gxclbits.c)
10377dd7cddfSDavid du Colombier	- When banding, colored halftones could be mangled.  (gxclread.c)
10387dd7cddfSDavid du Colombier
10397dd7cddfSDavid du ColombierFixes bugs in the bounding box device:
10407dd7cddfSDavid du Colombier	- The bounding box device could give bizarre results if any objects
10417dd7cddfSDavid du Colombiercrossed the lower edge of the page.  (gdevbbox.c)
10427dd7cddfSDavid du Colombier	- The bounding box device could get a memory access error when
10437dd7cddfSDavid du Colombierprocessing image data.  (gdebbox.c)
10447dd7cddfSDavid du Colombier	- The bounding box device ran the default drawing algorithms even if
10457dd7cddfSDavid du Colombierit had no target (performance bug only).  (gdevbbox.c)
10467dd7cddfSDavid du Colombier	- The bounding box device computed an incorrect (too small) box for
10477dd7cddfSDavid du Colombierpartially clipped bitmap images.  (gdevbbox.c)
10487dd7cddfSDavid du Colombier	- The bounding box device got confused by files that filled the
10497dd7cddfSDavid du Colombierentire page with a background color.  (gdevbbox.c)
10507dd7cddfSDavid du Colombier	- The bounding box device produced infinite-height boxes for certain
10517dd7cddfSDavid du Colombierkinds of data.  (gdevbbox.c)
10527dd7cddfSDavid du Colombier
10537dd7cddfSDavid du ColombierChanges some type declarations slightly to reduce the number of 'discarding
10547dd7cddfSDavid du Colombierconst' compiler warnings.  (gsmemory.h, gsstruct.h)
10557dd7cddfSDavid du Colombier
10567dd7cddfSDavid du ColombierAdds the capability of clipping to the outside rather than the inside of the
10577dd7cddfSDavid du Colombierclipping path.  This is required for emulating an obscure feature of the
10587dd7cddfSDavid du ColombierMicrosoft Windows GDI.  (gspath.h, gxclpath.h, gxpath.h, gxcpath.h,
10597dd7cddfSDavid du Colombiergzcpath.h, gspath.c, gxacpath.c, gxclpath.c, gxclread.c, gxcpath.c.)
10607dd7cddfSDavid du Colombier
10617dd7cddfSDavid du ColombierMakes it possible for band devices to select the underlying memory device
10627dd7cddfSDavid du Colombierused to accumulate the actual bits.  This is required for (at least) PCL5
10637dd7cddfSDavid du Colombieremulation.  This requires adding a procedure to the gx_device_printer
10647dd7cddfSDavid du Colombierstructure, which, for devices that initialize the structure without using
10657dd7cddfSDavid du Colombierthe macros in gdevprn.h or access the printer-specific procedures directly,
10667dd7cddfSDavid du Colombieris a NON-BACKWARD-COMPATIBLE change.  (gdevprn.h, gxclist.h, gxdevice.h,
10677dd7cddfSDavid du Colombiergdevdflt.c, gdevprn.c, gxclread.c)
10687dd7cddfSDavid du Colombier
10697dd7cddfSDavid du ColombierSpeeds up handling of rotated or halftoned masked images.  (gximage2.c)
10707dd7cddfSDavid du Colombier
10717dd7cddfSDavid du ColombierAdds an output_page procedure to the bounding box device, for testing.
10727dd7cddfSDavid du Colombier(gdevbbox.c)
10737dd7cddfSDavid du Colombier
10747dd7cddfSDavid du ColombierAdds a sample device that keeps track of the "render algorithm", for PCL5c
10757dd7cddfSDavid du Colombieremulation.  (gdevrrgb.c)
10767dd7cddfSDavid du Colombier
10773ff48bf5SDavid du Colombier</pre>
10787dd7cddfSDavid du Colombier
10793ff48bf5SDavid du Colombier<h2><a name="Version3.68p4"></a>Version 3.68 patch 4 (5/23/96)</h2>
10803ff48bf5SDavid du Colombier
10813ff48bf5SDavid du Colombier<p>
10827dd7cddfSDavid du ColombierMore minor bug fixes, mostly related to the MS Windows implementation.
10837dd7cddfSDavid du Colombier
10843ff48bf5SDavid du Colombier<h3><a name="V3.68p4_Documentation"></a>Documentation</h3><pre>
10857dd7cddfSDavid du ColombierFurther updates various doc files to make them more useful to new users.
10867dd7cddfSDavid du Colombier(NEWS, README, current.doc, helpers.doc, new-user.doc)
10877dd7cddfSDavid du Colombier
10887dd7cddfSDavid du ColombierAdds user-contributed documentation for ps2pdf.  (ps2pdf.doc, unix-end.mak)
10897dd7cddfSDavid du Colombier
10907dd7cddfSDavid du ColombierDocuments a bug in the Borland C++ 4.52 compiler, and where to find the
10917dd7cddfSDavid du Colombierpatch for it.  (make.doc)
10927dd7cddfSDavid du Colombier
10933ff48bf5SDavid du Colombier</pre><h3><a name="V3.68p4_Procedures"></a>Procedures</h3><pre>
10947dd7cddfSDavid du Colombier
10957dd7cddfSDavid du ColombierFixes bugs:
10967dd7cddfSDavid du Colombier	- A command line exceeded the MS-DOS 120 character limit.
10977dd7cddfSDavid du Colombier(devs.mak)
10987dd7cddfSDavid du Colombier
10997dd7cddfSDavid du ColombierA file was accidentally omitted from the fileset.  (wmakebat.bat)
11007dd7cddfSDavid du Colombier
11013ff48bf5SDavid du Colombier</pre><h3><a name="V3.68p4_Drivers"></a>Drivers</h3><pre>
11027dd7cddfSDavid du Colombier
11037dd7cddfSDavid du ColombierFixes bugs:
11047dd7cddfSDavid du Colombier	- Many of the 'show' operators didn't work properly if the PDF
11057dd7cddfSDavid du Colombierwriter was included in the configuration.  (gs_pdfwr.ps)
11067dd7cddfSDavid du Colombier	- x_wrap_get_bits was ridiculously slow.  (It still is, but not
11077dd7cddfSDavid du Colombierquite as ridiculously.)  (gxcindex.h, gdevxalt.c)
11087dd7cddfSDavid du Colombier	- The PDF writer generated CR instead of CalRGB, which is legal per
11097dd7cddfSDavid du Colombierthe Adobe spec but not compatible with some Adobe Acrobat products.
11107dd7cddfSDavid du Colombier(gdevpdfi.c)
11117dd7cddfSDavid du Colombier	- Some signed/unsigned discrepancies caused compilation warnings.
11127dd7cddfSDavid du Colombier(gdevpdfm.c, gdevpdfp.c, gdevpdft.c)
11137dd7cddfSDavid du Colombier
11147dd7cddfSDavid du ColombierFixes bugs in the Windows driver:
11157dd7cddfSDavid du Colombier	- An accidentally opened tiny window didn't get closed.
11167dd7cddfSDavid du Colombier(gdevwdib.c)
11177dd7cddfSDavid du Colombier	- The name DllInit was misleading, and this procedure wasn't being
11187dd7cddfSDavid du Colombiercalled whtn the DLL was loaded, so the DLL couldn't know the instance
11197dd7cddfSDavid du Colombierhandle.  (gp_mswin.c)
11207dd7cddfSDavid du Colombier	- The code didn't recognize Win32s (vs. Windows 95) correctly.
11217dd7cddfSDavid du Colombier(dwmain.cpp, gdevwdib.c, gp_mswin.h, gp_mswin.c, gsdll16.rc)
11227dd7cddfSDavid du Colombier	- Some compiler warnings needed fixing.  (gdevwdib.c)
11237dd7cddfSDavid du Colombier	- gsdll16.def and gsdll32.def were different.  (gsdll32.def)
11247dd7cddfSDavid du Colombier	- A GPF leaving the 16-bit DLL loaded could make the DLL permanently
11257dd7cddfSDavid du Colombierunusable.  (dwmain.cpp)
11267dd7cddfSDavid du Colombier	- Two obsolete files were still included in the fileset.
11277dd7cddfSDavid du Colombier(gswin.def, gswin32.def)
11287dd7cddfSDavid du Colombier
11297dd7cddfSDavid du ColombierAdds a compile-time option to the 'bit' drivers to expand 4-bit pixels to
11307dd7cddfSDavid du Colombier32-bit.  This was required for tracking down customer problems, because the
11317dd7cddfSDavid du Colombieronly tools we have available for displaying CMYK images require 32 bits per
11327dd7cddfSDavid du Colombierpixel.  (gdevbit.c)
11337dd7cddfSDavid du Colombier
11343ff48bf5SDavid du Colombier</pre><h3><a name="V3.68p4_Platforms"></a>Platforms</h3><pre>
11357dd7cddfSDavid du Colombier
11367dd7cddfSDavid du ColombierFixes bugs:
11377dd7cddfSDavid du Colombier	- In DEC C, &lt;time.h&gt; does define the timeval struct.  (time_.h)
11387dd7cddfSDavid du Colombier
11397dd7cddfSDavid du ColombierChanges gsdll_init() to take an additional argument, a window handle.  This
11407dd7cddfSDavid du Colombieris a NON-BACKWARD-COMPATIBLE change.  (dll.doc, dwdll.h, gsdll.h, dwdll.cpp,
11417dd7cddfSDavid du Colombierdwmain.cpp, dwmainc.cpp, gsdll.c)
11427dd7cddfSDavid du Colombier
11433ff48bf5SDavid du Colombier</pre><h3><a name="V3.68p4_Fonts"></a>Fonts</h3><pre>
11447dd7cddfSDavid du Colombier
11457dd7cddfSDavid du ColombierUpdates more Fontmaps to include the new URW++ fonts.  (Fontmap.OS2,
11467dd7cddfSDavid du ColombierFontmap.ATM)
11477dd7cddfSDavid du Colombier
11483ff48bf5SDavid du Colombier</pre><h3><a name="V3.68p4_Interpreter"></a>Interpreter</h3><pre>
11497dd7cddfSDavid du Colombier
11507dd7cddfSDavid du ColombierFixes bugs:
11517dd7cddfSDavid du Colombier	- The default operator array table wasn't big enough.  (iinit.c)
11527dd7cddfSDavid du Colombier	- Some signed/unsigned discrepancies caused compilation warnings.
11537dd7cddfSDavid du Colombier(imain.c, imainarg.c, zfile.c)
11547dd7cddfSDavid du Colombier
11557dd7cddfSDavid du ColombierAdds encoding vectors for Windows 3.1 Latin 1, Latin 2, and Latin 5
11567dd7cddfSDavid du Colombierencodings.  None of these are loaded in the standard configuration.
11577dd7cddfSDavid du Colombier(gs_wl{1,2,5}_e.ps)
11587dd7cddfSDavid du Colombier
11593ff48bf5SDavid du Colombier</pre><h3><a name="V3.68p4_Library"></a>Library</h3><pre>
11607dd7cddfSDavid du Colombier
11617dd7cddfSDavid du ColombierFixes bugs:
11627dd7cddfSDavid du Colombier	- Some tracing output was incorrect or missing.  (gxdither.c)
11637dd7cddfSDavid du Colombier	- Resized objects in the C heap had incorrect bookkeeping
11647dd7cddfSDavid du Colombierinformation (bug introduced in 3.68).  (gsmemory.c)
11657dd7cddfSDavid du Colombier	- Image pixels that fell exactly on device half-pixel boundaries
11667dd7cddfSDavid du Colombiercould get discarded.  (gximage0.c)
11677dd7cddfSDavid du Colombier	- The bounding box device didn't set a variable properly and didn't
11687dd7cddfSDavid du Colombierimplement end_image, leading to invalid memory accesses.  (gdevbbox.c)
11697dd7cddfSDavid du Colombier	- Fonts with BuildChar routines written in C didn't work properly
11707dd7cddfSDavid du Colombierwith kshow or xyshow.  (gschar.c)
11717dd7cddfSDavid du Colombier
11727dd7cddfSDavid du ColombierAdds some additional tracing output for Patterns.  (gxpcmap.c)
11737dd7cddfSDavid du Colombier
11747dd7cddfSDavid du ColombierAdds tracing output for freeing malloc'ed blocks at the end of execution.
11757dd7cddfSDavid du Colombier(gsmemory.c)
11767dd7cddfSDavid du Colombier
11777dd7cddfSDavid du ColombierAdds a gs_dashpath procedure that expands dashes in the same way that
11787dd7cddfSDavid du Colombiergs_flattenpath expands curves.  (gspath.h, gspath1.c)
11797dd7cddfSDavid du Colombier
11803ff48bf5SDavid du Colombier</pre>
11817dd7cddfSDavid du Colombier
11823ff48bf5SDavid du Colombier<h2><a name="Version3.68p3"></a>Version 3.68 patch 3 (5/17/96)</h2>
11833ff48bf5SDavid du Colombier
11843ff48bf5SDavid du Colombier<p>
11857dd7cddfSDavid du ColombierMore bug fixes during the beta test period.  AccurateScreens now works
11867dd7cddfSDavid du Colombierproperly.
11877dd7cddfSDavid du Colombier
11883ff48bf5SDavid du Colombier<h3><a name="V3.68p3_Procedures"></a>Procedures</h3><pre>
11897dd7cddfSDavid du ColombierFixes bugs:
11907dd7cddfSDavid du Colombier	- The help message was too long to fit on a PC screen or standard
11917dd7cddfSDavid du Colombierterminal.  (imainarg.c)
11927dd7cddfSDavid du Colombier	- Failure to run tar_cat wasn't detected.  (unix-end.mak,
11937dd7cddfSDavid du Colombierunixtail.mak)
11947dd7cddfSDavid du Colombier
11953ff48bf5SDavid du Colombier</pre><h3><a name="V3.68p3_Utilities"></a>Utilities</h3><pre>
11967dd7cddfSDavid du ColombierFixes bugs:
11977dd7cddfSDavid du Colombier	- In the PostScript files produced by pdf2ps, images using ASCII85
11987dd7cddfSDavid du Colombierencoding would cause a typecheck error.  (gs_pdf.ps)
11997dd7cddfSDavid du Colombier	- pdf2ps wrote out strings longer than 200 characters incorrectly.
12007dd7cddfSDavid du Colombier(pdf_2ps.ps)
12017dd7cddfSDavid du Colombier
12023ff48bf5SDavid du Colombier</pre><h3><a name="V3.68p3_Drivers"></a>Drivers</h3><pre>
12037dd7cddfSDavid du Colombier
12047dd7cddfSDavid du ColombierFixes bugs in gdevcdj.c (according to the author, we have no way to test
12057dd7cddfSDavid du Colombierthis):
12067dd7cddfSDavid du Colombier	- The driver used to use Colors as well as ProcessColorModel to
12077dd7cddfSDavid du Colombierdefine the process color model.  (devices.doc, gdevbjc.h, gdevcdj.c)
12087dd7cddfSDavid du Colombier	- Incorrect or inconsistent settings of BitsPerPixel and
12097dd7cddfSDavid du ColombierProcessColorModel, or setting one but not the other, could leave the driver
12107dd7cddfSDavid du Colombierin an inconsistent state.  (gdevcdj.c)
12117dd7cddfSDavid du Colombier
12127dd7cddfSDavid du ColombierFixes bugs in the MS Windows driver:
12137dd7cddfSDavid du Colombier	- Insufficient memory for the backing bitmap could cause a GPF.
12147dd7cddfSDavid du Colombier(gdevmswn.c, gdevwdib.c)
12157dd7cddfSDavid du Colombier	- Invalid parameters could cause a crash within the DLL code.
12167dd7cddfSDavid du Colombier(gdevwdib.c)
12177dd7cddfSDavid du Colombier
12187dd7cddfSDavid du ColombierAdds a user-contributed driver for the CalComp Raster Format.  (devs.mak,
12197dd7cddfSDavid du Colombiergdevccr.c)
12207dd7cddfSDavid du Colombier
12217dd7cddfSDavid du ColombierAdds an anti-aliasing option for MS Windows.  (gdevmswn.c, gdevwdib.c)
12227dd7cddfSDavid du Colombier
12233ff48bf5SDavid du Colombier</pre><h3><a name="V3.68p3_Platforms"></a>Platforms</h3><pre>
12247dd7cddfSDavid du Colombier
12257dd7cddfSDavid du ColombierFixes bugs in the Windows platform:
12267dd7cddfSDavid du Colombier	- One had to type "quit" twice to exit.  (dwdll.h, dwdll.cpp)
12277dd7cddfSDavid du Colombier
12283ff48bf5SDavid du Colombier</pre><h3><a name="V3.68p3_Interpreter"></a>Interpreter</h3><pre>
12297dd7cddfSDavid du Colombier
12307dd7cddfSDavid du ColombierFixes bugs:
12317dd7cddfSDavid du Colombier	- Platform fonts didn't work properly if the document's primary
12327dd7cddfSDavid du Colombierencoding was the standard MS Windows encoding.  (ifont.h, gs_wan_e.ps)
12337dd7cddfSDavid du Colombier	- stringwidth with a Type 1 font could give a spurious typecheck
12347dd7cddfSDavid du Colombiererror (bug introduced in 3.65).  (zcharout.c)
12357dd7cddfSDavid du Colombier	- If a DOS editor added a ^Z to the end of the Fontmap file, an
12367dd7cddfSDavid du Colombiererror occurred during initialization.  (gs_fonts.ps)
12377dd7cddfSDavid du Colombier	- Halftones that didn't specify a value for AccurateScreens
12387dd7cddfSDavid du Colombiersometimes ignored the setting of the AccurateScreens user parameter.
12397dd7cddfSDavid du Colombier(zht2.c)
12407dd7cddfSDavid du Colombier
12413ff48bf5SDavid du Colombier</pre><h3><a name="V3.68p3_Library"></a>Library</h3><pre>
12427dd7cddfSDavid du Colombier
12437dd7cddfSDavid du ColombierFixes bugs:
12447dd7cddfSDavid du Colombier	- gs_join_none was defined, but not implemented.  (gxstroke.c)
12457dd7cddfSDavid du Colombier	- A bookkeeping list for fonts could get confused, causing invalid
12467dd7cddfSDavid du Colombiermemory accesses.  (gsfont.c)
12477dd7cddfSDavid du Colombier	- An I/O error or internal error would cause the band list
12487dd7cddfSDavid du Colombierrasterizer to go into an infinite loop.  (gxclread.c)
12497dd7cddfSDavid du Colombier	- The algorithm for choosing screen angles and frequencies produced
12507dd7cddfSDavid du Colombierpoor results.  (gshtscr.c)
12517dd7cddfSDavid du Colombier	- Color screens were broken (bug introduced in 3.68).  (gxdht.h,
12527dd7cddfSDavid du Colombiergzht.h, gsht.c, gshtscr.c)
12537dd7cddfSDavid du Colombier
12543ff48bf5SDavid du Colombier</pre>
12557dd7cddfSDavid du Colombier
12563ff48bf5SDavid du Colombier<h2><a name="Version3.68p2"></a>Version 3.68 patch 2 (5/13/96)</h2>
12573ff48bf5SDavid du Colombier
12583ff48bf5SDavid du Colombier<p>
12597dd7cddfSDavid du ColombierThis is another set of patches for the next general release.
12607dd7cddfSDavid du Colombier
12613ff48bf5SDavid du Colombier<h3><a name="V3.68p2_Documentation"></a>Documentation</h3><pre>
12627dd7cddfSDavid du ColombierFixes bugs:
12637dd7cddfSDavid du Colombier	- Windows NT and Windows 95 implementations were identified as
12647dd7cddfSDavid du Colombier"under development" rather than available.  (README)
12657dd7cddfSDavid du Colombier	- There were several other minor errors in the README file.
12667dd7cddfSDavid du Colombier(README)
12677dd7cddfSDavid du Colombier	- The claimed current IJG JPEG version was incorrect.  (jpeg.mak)
12687dd7cddfSDavid du Colombier
12697dd7cddfSDavid du ColombierSplits off information for new users into a separate file.  (README,
12707dd7cddfSDavid du Colombiernew-user.doc)
12717dd7cddfSDavid du Colombier
12723ff48bf5SDavid du Colombier</pre><h3><a name="V3.68p2_Procedures"></a>Procedures</h3><pre>
12737dd7cddfSDavid du Colombier
12747dd7cddfSDavid du ColombierFixes bugs:
12757dd7cddfSDavid du Colombier	- gettimeofday takes 2 arguments on SVR4 systems more recent than
12767dd7cddfSDavid du ColombierSVR4.0.  (make.doc, ansihead.mak, cc-head.mak, gcc-head.mak, time_.h)
12777dd7cddfSDavid du Colombier
12787dd7cddfSDavid du ColombierChanges the default Unix data installation directory from /usr/local/lib to
12797dd7cddfSDavid du Colombier/usr/local/share, which seems to be favored by more recent Unix systems
12807dd7cddfSDavid du Colombier(except for some Linux versions, which still use /usr/local/lib, and BSD/OS,
12817dd7cddfSDavid du Colombierwhich puts Ghostscript in /usr/contrib/lib.)  (ansihead.mak, cc-head.mak,
12827dd7cddfSDavid du Colombiergcc-head.mak, ugcclib.mak)
12837dd7cddfSDavid du Colombier
12847dd7cddfSDavid du ColombierChanges the unset commands in the Unix script to assignments, because a few
12857dd7cddfSDavid du Colombierolder Unix shells don't provide unset.  (unixtail.mak)
12867dd7cddfSDavid du Colombier
12873ff48bf5SDavid du Colombier</pre><h3><a name="V3.68p2_Drivers"></a>Drivers</h3><pre>
12887dd7cddfSDavid du Colombier
12897dd7cddfSDavid du ColombierFixes bugs:
12907dd7cddfSDavid du Colombier	- An #include incorrectly referred directly to a system header.
12917dd7cddfSDavid du Colombier(gdevpdft.c)
12927dd7cddfSDavid du Colombier	- CMYK devices took an excessive amount of time clearing the page to
12937dd7cddfSDavid du Colombierwhite.  (gdevm32.c)
12947dd7cddfSDavid du Colombier
12957dd7cddfSDavid du ColombierAdds a compile-time option to the 'bit' drivers to remove top and bottom
12967dd7cddfSDavid du Colombierwhitespace.  This change was required in order to track down a customer bug.
12977dd7cddfSDavid du Colombier(gdevbit.c)
12987dd7cddfSDavid du Colombier
12993ff48bf5SDavid du Colombier</pre><h3><a name="V3.68p2_Interpreter"></a>Interpreter</h3><pre>
13007dd7cddfSDavid du Colombier
13017dd7cddfSDavid du ColombierUpdates the interpreter for the split in the gstate API.  (igstate.h)
13027dd7cddfSDavid du Colombier
13033ff48bf5SDavid du Colombier</pre><h3><a name="V3.68p2_Streams"></a>Streams</h3><pre>
13047dd7cddfSDavid du Colombier
13057dd7cddfSDavid du ColombierFixes bugs:
13067dd7cddfSDavid du Colombier	- Some compilers don't define NULL widely enough.  (spngp.c)
13077dd7cddfSDavid du Colombier
13083ff48bf5SDavid du Colombier</pre><h3><a name="V3.68p2_Library"></a>Library</h3><pre>
13097dd7cddfSDavid du Colombier
13107dd7cddfSDavid du ColombierFixes bugs:
13117dd7cddfSDavid du Colombier	- There was a minor typo (&amp; for &amp;&amp;) that didn't affect execution.
13127dd7cddfSDavid du Colombier(gxccman.c)
13137dd7cddfSDavid du Colombier	- There was a trailing comma in an enumeration.  (gsiparam.h)
13147dd7cddfSDavid du Colombier	- Internal and public interfaces weren't separated properly.  THIS
13157dd7cddfSDavid du ColombierIS A NON-BACKWARD-COMPATIBLE CHANGE for clients using certain undocumented
13167dd7cddfSDavid du Colombierinterfaces to the graphics state.  (gsstate.h, gxstate.h, gzstate.h,
13177dd7cddfSDavid du Colombiergsstate.c)
13187dd7cddfSDavid du Colombier	- A 'private' declaration was missing (yet again).  (gxclimag.c)
13197dd7cddfSDavid du Colombier
13203ff48bf5SDavid du Colombier</pre>
13217dd7cddfSDavid du Colombier
13223ff48bf5SDavid du Colombier<h2><a name="Version3.68p1"></a>Version 3.68 patch 1 (5/10/96)</h2>
13237dd7cddfSDavid du Colombier
13243ff48bf5SDavid du Colombier<p>
13253ff48bf5SDavid du ColombierThis is the first bug fix (patch) incremental release for the next
13263ff48bf5SDavid du Colombiergeneral release.
13277dd7cddfSDavid du Colombier
13283ff48bf5SDavid du Colombier<h3><a name="V3.68p1_Procedures"></a>Procedures</h3><pre>
13297dd7cddfSDavid du ColombierFixes bugs:
13307dd7cddfSDavid du Colombier	- Many Windows-specific files were omitted from the previous
13317dd7cddfSDavid du Colombierfileset: dw*.rc, dw*.cpp.
13327dd7cddfSDavid du Colombier
13333ff48bf5SDavid du Colombier</pre>
13347dd7cddfSDavid du Colombier
13353ff48bf5SDavid du Colombier<h2><a name="Version3.68"></a>Version 3.68 (limited) (5/9/96)</h2>
13363ff48bf5SDavid du Colombier
13373ff48bf5SDavid du Colombier<p>
13387dd7cddfSDavid du ColombierThis release cleans up the new Windows files, mostly implements the
13397dd7cddfSDavid du Colombierhigh-level driver API for bitmap images, and adds practical strip
13407dd7cddfSDavid du Colombier(AccurateScreens) halftoning.  This is the first "serious beta" fileset for
13417dd7cddfSDavid du Colombierthe next general release.  It still has more problems than I would have
13427dd7cddfSDavid du Colombierliked.
13437dd7cddfSDavid du Colombier
13443ff48bf5SDavid du Colombier<h3><a name="V3.68_Documentation"></a>Documentation</h3><pre>
13457dd7cddfSDavid du ColombierFixes bugs:
13467dd7cddfSDavid du Colombier	- The names of the executable files for MS Windows were out of date.
13477dd7cddfSDavid du Colombier(make.doc)
13487dd7cddfSDavid du Colombier	- gxcindex.h still referred to "drawing color".  (gxcindex.h)
13497dd7cddfSDavid du Colombier	- The name of the default font directory for Unix systems was
13507dd7cddfSDavid du Colombierincorrect.  (make.doc)
13517dd7cddfSDavid du Colombier
13527dd7cddfSDavid du ColombierMoves the list of files required for installation, and some other
13537dd7cddfSDavid du Colombierinstallation instructions, from make.doc to install.doc.  (install.doc,
13547dd7cddfSDavid du Colombiermake.doc)
13557dd7cddfSDavid du Colombier
13567dd7cddfSDavid du ColombierAdds a description of the PNGPredictor filters.  (language.doc)
13577dd7cddfSDavid du Colombier
13587dd7cddfSDavid du ColombierUpdates the documentation of the higher-level driver procedures to match the
13597dd7cddfSDavid du Colombierspecification changes.  (drivers.doc)
13607dd7cddfSDavid du Colombier
13617dd7cddfSDavid du ColombierDocuments the change in the Watcom build procedure.  (make.doc)
13627dd7cddfSDavid du Colombier
13637dd7cddfSDavid du ColombierImproves the documentation of bitmap IDs.  (gxbitmap.h)
13647dd7cddfSDavid du Colombier
13657dd7cddfSDavid du ColombierAdds documentation for the new strip_tile_rectangle and strip_copy_rop
13667dd7cddfSDavid du Colombierdriver procedures.  (drivers.doc)
13677dd7cddfSDavid du Colombier
13687dd7cddfSDavid du ColombierChanges the few remaining direct FTP addresses in README to URLs.  (README)
13697dd7cddfSDavid du Colombier
13707dd7cddfSDavid du ColombierNotes that zlib does not compile correctly on IRIX 6.n with optimization.
13717dd7cddfSDavid du Colombier(make.doc)
13727dd7cddfSDavid du Colombier
13737dd7cddfSDavid du ColombierAdds references to PDF and TrueType fonts to language.doc.  (language.doc)
13747dd7cddfSDavid du Colombier
13757dd7cddfSDavid du ColombierUpdates fonts.doc to remove references to fonts.mak.  (fonts.doc)
13767dd7cddfSDavid du Colombier
13777dd7cddfSDavid du ColombierDescribes how to substitute an LZW compressor for the LZW-compatible
13787dd7cddfSDavid du Colombiercompressor provided in the standard release.  (make.doc)
13797dd7cddfSDavid du Colombier
13803ff48bf5SDavid du Colombier</pre><h3><a name="V3.68_Procedures"></a>Procedures</h3><pre>
13817dd7cddfSDavid du Colombier
13827dd7cddfSDavid du ColombierFixes bugs:
13837dd7cddfSDavid du Colombier	- Some lines had exceeded the 120-character limit of the
13847dd7cddfSDavid du ColombierMS-DOS shell.  (int.mak)
13857dd7cddfSDavid du Colombier	- The configuration files weren't generated correctly when CONFIG
13867dd7cddfSDavid du Colombierwasn't an empty string.  (unixhead.mak)
13877dd7cddfSDavid du Colombier
13887dd7cddfSDavid du ColombierFactors out shared DLL makefile rules into a new file.  (bcwin.mak,
13897dd7cddfSDavid du Colombierbcwin32.mak, dwcommon.mak)
13907dd7cddfSDavid du Colombier
13917dd7cddfSDavid du ColombierMakes the cp and rm commands into makefile parameters, allowing automatic
13927dd7cddfSDavid du Colombiergeneration of build scripts even in the MS-DOS and MS Windows environments
13937dd7cddfSDavid du Colombierwhere the shell requires the CALL command for sub-scripts.  (*.mak,
13947dd7cddfSDavid du Colombiergenconf.c)
13957dd7cddfSDavid du Colombier
13967dd7cddfSDavid du ColombierAdds the PDF writer to the default Unix configurations.  (ansihead.mak,
13977dd7cddfSDavid du Colombiercc-head.mak, gcc-head.mak)
13987dd7cddfSDavid du Colombier
13997dd7cddfSDavid du ColombierAdds TrueType support to all Level 2 configurations.  (int.mak)
14007dd7cddfSDavid du Colombier
14017dd7cddfSDavid du ColombierRemoves fonts.mak, which is no longer relevant.  (fonts.mak)
14027dd7cddfSDavid du Colombier
14037dd7cddfSDavid du ColombierBrings the font compilation procedures up to date.  (cfonts.mak, int.mak)
14047dd7cddfSDavid du Colombier
14053ff48bf5SDavid du Colombier</pre><h3><a name="V3.68_Utilities"></a>Utilities</h3><pre>
14067dd7cddfSDavid du Colombier
14077dd7cddfSDavid du ColombierFixes bugs:
14087dd7cddfSDavid du Colombier	- There was an extra 'show' in one file.  (align.ps)
14097dd7cddfSDavid du Colombier
14103ff48bf5SDavid du Colombier</pre><h3><a name="V3.68_Drivers"></a>Drivers</h3><pre>
14117dd7cddfSDavid du Colombier
14127dd7cddfSDavid du ColombierFixes bugs:
14137dd7cddfSDavid du Colombier	- The bit devices were missing the map_color_rgb procedure.
14147dd7cddfSDavid du Colombier(gdevbit.c)
14157dd7cddfSDavid du Colombier	- The MS Windows driver sent a redundant message. (gdevmswn.c)
14167dd7cddfSDavid du Colombier
14177dd7cddfSDavid du ColombierAdds a device that keeps track of the page bounding box.  This device is not
14187dd7cddfSDavid du Colombierincluded in any standard configuration.  (drivers.doc, gdevbbox.h,
14197dd7cddfSDavid du Colombiergsmatrix.h, gsstruct.h, gxdevice.h, gdevbbox.c, gdevnfwd.c, gsmatrix.c)
14207dd7cddfSDavid du Colombier
14217dd7cddfSDavid du ColombierUpdates the PDF writer to track the changes in the high-level driver API,
14227dd7cddfSDavid du Colombierand to write out images in a reasonable way.  NOTE: the current
14237dd7cddfSDavid du Colombierimplementation doesn't write out CIE color space parameters, so CIE-color
14247dd7cddfSDavid du Colombierimages won't be colored accurately.  (gdevpdf.c, gdevpdfi.c)
14257dd7cddfSDavid du Colombier
14267dd7cddfSDavid du ColombierAdds a forwarding procedure for tile_rectangle.  (gxdevice.h, gdevnfwd.c)
14277dd7cddfSDavid du Colombier
14287dd7cddfSDavid du ColombierChanges the copyright notices on the PDF writer to be the same as on the
14297dd7cddfSDavid du Colombierrest of Ghostscript.  (gdevpdf*.[ch])
14307dd7cddfSDavid du Colombier
14317dd7cddfSDavid du ColombierUpdates Gunther Hess's Epson Stylus Color driver from 1.21 to 1.90.  (Aladdin
14327dd7cddfSDavid du ColombierEnterprises takes no responsibility for this driver: if you have questions,
14337dd7cddfSDavid du Colombiercontact the author.)  (devices.doc, devs.mak, gdevstc*.c, gdevstc.h)
14347dd7cddfSDavid du Colombier
14353ff48bf5SDavid du Colombier</pre><h3><a name="V3.68_Platforms"></a>Platforms</h3><pre>
14367dd7cddfSDavid du Colombier
14377dd7cddfSDavid du ColombierRemoves some obsolete MS Windows files and #defines.  (gp_mswtx.h,
14387dd7cddfSDavid du Colombiergp_mswtx.c, gp_mswin.h)
14397dd7cddfSDavid du Colombier
14407dd7cddfSDavid du ColombierWorks around a memory limitation in the Watcom make utility.  (wmakebat.bat)
14417dd7cddfSDavid du Colombier
14423ff48bf5SDavid du Colombier</pre><h3><a name="V3.68_Fonts"></a>Fonts</h3><pre>
14437dd7cddfSDavid du Colombier
14447dd7cddfSDavid du ColombierChanges the standard Fontmap from using the low-quality fonts converted from
14457dd7cddfSDavid du Colombierbitmaps to using high-quality fonts recently contributed by URW++.
14467dd7cddfSDavid du Colombier(Fontmap, Fontmap.GS)
14477dd7cddfSDavid du Colombier
14483ff48bf5SDavid du Colombier</pre><h3><a name="V3.68_Interpreter"></a>Interpreter</h3><pre>
14497dd7cddfSDavid du Colombier
14507dd7cddfSDavid du ColombierFixes bugs:
14517dd7cddfSDavid du Colombier	- A macro containing an if-else, and a macro generating a compound
14527dd7cddfSDavid du Colombierstatement, could cause incorrect grouping of 'if' statements.  (files.h,
14537dd7cddfSDavid du Colombierostack.h)
14547dd7cddfSDavid du Colombier	- .setrasterop didn't pop its operand.  (zrop.c)
14557dd7cddfSDavid du Colombier	- A rounding inaccuracy could cause bounding box rangecheck errors.
14567dd7cddfSDavid du Colombier(gsdps1.c)
14577dd7cddfSDavid du Colombier	- CIE-based images in PDF files didn't work.  (gs_pdf.ps)
14587dd7cddfSDavid du Colombier	- The page parameter .MediaSize didn't get updated when PageSize was
14597dd7cddfSDavid du Colombierset.  (This is just the most recent manifestation of the setpagedevice
14607dd7cddfSDavid du Colombiermorass.)  (gs_setpd.ps)
14617dd7cddfSDavid du Colombier	- %lineedit and %statementedit were limited to 160 characters.
14627dd7cddfSDavid du Colombier(zfileio.c, ziodev.c)
14637dd7cddfSDavid du Colombier	- Compiled initialization files didn't work properly.  (geninit.c,
14647dd7cddfSDavid du Colombiergs_l2img.ps)
14657dd7cddfSDavid du Colombier	- Attempting to parse a command line with argc = 0 caused a crash.
14667dd7cddfSDavid du Colombier(imainarg.c)
14677dd7cddfSDavid du Colombier
14687dd7cddfSDavid du ColombierRenames some files to allow separating the non-DLL 'main' procedure into a
14697dd7cddfSDavid du Colombierseparate file, and to make the file naming more consistent:
14707dd7cddfSDavid du Colombier	gs.c (except for 'main') =&gt; imainarg.c
14717dd7cddfSDavid du Colombier	gsmain.c =&gt; imain.c
14727dd7cddfSDavid du Colombiergs.c now consists only of 'main'.  The name gs.c is still inconsistent (it
14737dd7cddfSDavid du Colombiershould be i- something), but at least it's consistent with the name of the
14747dd7cddfSDavid du Colombierexecutable.  (*.mak, imain.h, iminst.h, imainarg.h, gs.c, gsmain.c, imain.c,
14757dd7cddfSDavid du Colombierimainarg.c)
14767dd7cddfSDavid du Colombier
14777dd7cddfSDavid du ColombierAdds PNGPredictorEncode/Decode filters, and increases the size of filterdict
14787dd7cddfSDavid du Colombierslightly to make room for them.  (iinit.c, zfpngp.c)
14797dd7cddfSDavid du Colombier
14807dd7cddfSDavid du ColombierMakes zwrite external, per a customer request.  (opextern.h, zfileio.c)
14817dd7cddfSDavid du Colombier
14827dd7cddfSDavid du ColombierUpdates clients to work with the new API-based bitmap imaging calls.
14837dd7cddfSDavid du Colombier(iimage.h, zcolor1.c, zimage2.c, zpaint.c)
14847dd7cddfSDavid du Colombier
14857dd7cddfSDavid du ColombierUpdates clients for the split in gscspace.h.  (zcie.c, zcolor1.c, zcolor2.c,
14867dd7cddfSDavid du Colombierzcsindex.c, zcssepr.c, zimage2.c, zpaint.c, zpcolor.c)
14877dd7cddfSDavid du Colombier
14887dd7cddfSDavid du ColombierUpdates clients for strip-based halftones.  (zpcolor.c)
14897dd7cddfSDavid du Colombier
14907dd7cddfSDavid du ColombierUpdates the initialization code to pass the correct (system) allocator to
14917dd7cddfSDavid du Colombierthe library initialization.  (imain.c)
14927dd7cddfSDavid du Colombier
14933ff48bf5SDavid du Colombier</pre><h3><a name="V3.68_Streams"></a>Streams</h3><pre>
14947dd7cddfSDavid du Colombier
14957dd7cddfSDavid du ColombierFixes bugs:
14967dd7cddfSDavid du Colombier	- If a filter reached EOD exactly at the end of reading data for
14977dd7cddfSDavid du Colombiercertain operations, it didn't get closed automatically.  (stream.c)
14987dd7cddfSDavid du Colombier	- The LZW-compatible encoding filter reset procedure had an
14997dd7cddfSDavid du Colombierincorrect return type.  (slzwce.c)
15007dd7cddfSDavid du Colombier
15017dd7cddfSDavid du ColombierChanges the ASCIIHexEncode filter to insert \ns in fewer places, to be
15027dd7cddfSDavid du Colombiersomewhat more compatible with the Adobe implementation.  (sstring.c)
15037dd7cddfSDavid du Colombier
15047dd7cddfSDavid du ColombierAdds PNGPredictorEncode/Decode filters that implement the pixel prediction
15057dd7cddfSDavid du Colombieralgorithms in the PNG specification.  (We'd like to use the code in the PNG
15067dd7cddfSDavid du Colombierlibrary, but it's too deeply embedded in the rest of the PNG machinery, and
15077dd7cddfSDavid du Colombierit also doesn't provide for suspendable I/O.)  (spngpx.h, spngp.c)
15087dd7cddfSDavid du Colombier
15093ff48bf5SDavid du Colombier</pre><h3><a name="V3.68_Library"></a>Library</h3><pre>
15107dd7cddfSDavid du Colombier
15117dd7cddfSDavid du ColombierFixes bugs:
15127dd7cddfSDavid du Colombier	- A test for pure color was backwards, causing garbage output or
15137dd7cddfSDavid du Colombierpossible address or floating point exceptions.  (gxclpath.c)
15147dd7cddfSDavid du Colombier	- A macro containing an if-else could cause incorrect grouping of
15157dd7cddfSDavid du Colombier'if' statements.  (gsrefct.h)
15167dd7cddfSDavid du Colombier	- The default implementation of RasterOp didn't handle the device
15177dd7cddfSDavid du Colombierdepth correctly.  (gdevmrop.c)
15187dd7cddfSDavid du Colombier	- The memory device implementation of RasterOp truncated 24-bit
15197dd7cddfSDavid du Colombierconstant source or texture values to 8 bits.  (gdevmrop.c)
15207dd7cddfSDavid du Colombier	- A typo caused the garbage collector to miss an internal buffer
15217dd7cddfSDavid du Colombierused when rendering images.  (gximage.h)
15227dd7cddfSDavid du Colombier	- gs_debug_out was only defined if DEBUG was set.  (gdebug.h)
15237dd7cddfSDavid du Colombier	- The raster of horizontally replicated tiles was incorrect.
15247dd7cddfSDavid du Colombier(gxht.c)
15257dd7cddfSDavid du Colombier	- A data type might not be declared, causing a compilation error.
15267dd7cddfSDavid du Colombier(gscoord.h)
15277dd7cddfSDavid du Colombier	- Empty TrueType glyphs weren't handled properly.  (gstype42.c)
15287dd7cddfSDavid du Colombier	- Fonts with a build procedure written in C could cause an invalid
15297dd7cddfSDavid du Colombiermemory access.  (gschar.c)
15307dd7cddfSDavid du Colombier	- The initial point of a band list path sometimes didn't get
15317dd7cddfSDavid du Colombierwritten, causing excess or missing filled regions.  (gxclpath.c)
15327dd7cddfSDavid du Colombier	- Characters between 49 and 56 bits wide were rendered incorrectly
15337dd7cddfSDavid du Colombierwhen banding.  (gxclbits.c)
15347dd7cddfSDavid du Colombier
15357dd7cddfSDavid du ColombierRenames gsimage*.c as gximage*.c, to reflect more accurately the position of
15367dd7cddfSDavid du Colombierthese files in the architecture.  (gsimage*.c, gximage*.c)
15377dd7cddfSDavid du Colombier
15387dd7cddfSDavid du ColombierFully implements the high-level bitmap image calls in the driver API.  This
15397dd7cddfSDavid du Colombierincludes some driver API changes; however, this part of the API was clearly
15407dd7cddfSDavid du Colombierdocumented as not stable enough to rely on.  (gxdevice.h, gximage.h,
15417dd7cddfSDavid du Colombiergdevbbox.c, gdevddrw.c, gdevnfwd.c, gsimage.c, gximage*.c)
15427dd7cddfSDavid du Colombier
15437dd7cddfSDavid du ColombierSplits the color space header into client and implementation, as with many
15447dd7cddfSDavid du Colombierothers.  (gscspace.h, gxcspace.h, gximage.h, gscie.c, gscolor.c, gscolor1.c,
15457dd7cddfSDavid du Colombiergscolor2.c, gscsepr.c, gsimage.c, gspcolor.c, gsstate.c, gxcmap.c,
15467dd7cddfSDavid du Colombiergxpcmap.c)
15477dd7cddfSDavid du Colombier
15487dd7cddfSDavid du ColombierExtends band lists to handle high-level images.  NOTE: This facility is
15497dd7cddfSDavid du Colombierpatched out because there is not yet a way to pass the necessary color
15507dd7cddfSDavid du Colombierrendering information through the band list.  (gxcldev.h, gxclist.h,
15517dd7cddfSDavid du Colombiergxclpath.h, gxclimag.c, gxclist.c, gxclpath.c, gxclread.c)
15527dd7cddfSDavid du Colombier
15537dd7cddfSDavid du ColombierImplements fixed2float and float2fixed more efficiently on machines with
15547dd7cddfSDavid du Colombierslow floating point.  (gxfixed.h, gscoord.c, gsmisc.c)
15557dd7cddfSDavid du Colombier
15567dd7cddfSDavid du ColombierMakes one further NON-BACKWARD-COMPATIBLE change in the existing
15577dd7cddfSDavid du Colombierhigher-level driver procedures (fill_path, stroke_path, fill_mask): we make
15587dd7cddfSDavid du Colombierthe imager state pointer an explicit argument, rather than a member of the
15597dd7cddfSDavid du Colombiergx_fill/stroke_params structure.  We now consider the specification of these
15607dd7cddfSDavid du Colombierprocedures stable, and have removed the "subject to change" notice from the
15617dd7cddfSDavid du Colombierdocumentation.  (gxdevice.h, gxpaint.h, gdevbbox.c, gdevnfwd.c, gxacpath.c,
15627dd7cddfSDavid du Colombiergxclpath.c, gxclread.c, gxfill.c, gxpaint.c, gxstroke.c)
15637dd7cddfSDavid du Colombier
15647dd7cddfSDavid du ColombierExtends halftone bitmaps to include "strip" and "shift" information,
15657dd7cddfSDavid du Colombierallowing halftone cells with arbitrary angles to be stored in space
15667dd7cddfSDavid du Colombierproportional to the number of bits in the cell rather than the square of the
15677dd7cddfSDavid du Colombiernumber of bits.  This requires adding new (optional) strip_tile_rectangle
15687dd7cddfSDavid du Colombierand strip_copy_rop driver procedures that are like tile_rectangle and
15697dd7cddfSDavid du Colombiercopy_rop respectively but accept a strip bitmap rather than an ordinary
15707dd7cddfSDavid du Colombiertile; these procedures supersede tile_rectangle and copy_rop (although these
15717dd7cddfSDavid du Colombieralso remain, defined in terms of the new ones).  This also requires making
15727dd7cddfSDavid du Colombiersmall but NON-BACKWARD-COMPATIBLE changes in several internal interfaces.
15737dd7cddfSDavid du Colombier(gdevmem.h, gdevprn.h, gsdcolor.h, gxbcache.h, gxbitmap.h, gxcldev.h,
15747dd7cddfSDavid du Colombiergxclip2.h, gxclist.h, gxdevice.h, gxdevrop.h, gxdht.h, gxfcache.h,
15757dd7cddfSDavid du Colombiergxhttile.h, gxpcolor.h, gzht.h; gdevabuf.c, gdevbbox.c, gdevdflt.c,
15767dd7cddfSDavid du Colombiergdevm*.c, gdevmpla.c, gdevmrop.c, gdevnfwd.c, gsht.c, gsht1.c, gshtscr.c,
15777dd7cddfSDavid du Colombiergspcolor.c, gsstate.c, gxcht.c, gxclbits.c, gxclip2.c, gxclist.c,
15787dd7cddfSDavid du Colombiergxclpath.c, gxclread.c, gxcpath.c, gxdcolor.c, gxdither.c, gxht.c,
15797dd7cddfSDavid du Colombiergximage2.c, gxpcmap.c, ...)
15807dd7cddfSDavid du Colombier
15817dd7cddfSDavid du ColombierAdds "no join" as a line join type.  NOTE: this is not actually implemented
15827dd7cddfSDavid du Colombieryet.  (gslparam.h)
15837dd7cddfSDavid du Colombier
15847dd7cddfSDavid du ColombierChanges the initialization code so that it passes the system allocator as an
15857dd7cddfSDavid du Colombierargument to module initialization procedures.  While this is theoretically a
15867dd7cddfSDavid du ColombierNON-BACKWARD-COMPATIBLE change, module initialization procedures are not
15877dd7cddfSDavid du Colombierdocumented and presumably are not used by any code outside the
15887dd7cddfSDavid du Colombierimplementation.  (gscdefs.h, gconf.c, gdevmrop.c, gsinit.c, gxclimag.c,
15897dd7cddfSDavid du Colombiergxclpath.c)
15907dd7cddfSDavid du Colombier
15917dd7cddfSDavid du ColombierSplits up gs_lib_init into two procedures, allowing specification of a
15927dd7cddfSDavid du Colombierdifferent default allocator for the library.  (gslib.h, gsinit.c)
15937dd7cddfSDavid du Colombier
15947dd7cddfSDavid du ColombierAdds a resize_object operation to the allocator API.  (gsmemory.h,
15957dd7cddfSDavid du Colombiergsalloc.c, gsmemory.c)
15967dd7cddfSDavid du Colombier
15973ff48bf5SDavid du Colombier</pre>
15987dd7cddfSDavid du Colombier
15993ff48bf5SDavid du Colombier<h2><a name="Version3.67"></a>Version 3.67 (limited) (4/12/96)</h2>
16003ff48bf5SDavid du Colombier
16013ff48bf5SDavid du Colombier<p>
16027dd7cddfSDavid du ColombierThis release restructures the MS Windows and OS/2 code to be primarily DLL-
16037dd7cddfSDavid du Colombierrather than EXE-based.  See under Platforms below for more news.  This
16047dd7cddfSDavid du Colombierrelease was put out in a hurry in order to get the new DLL code into
16057dd7cddfSDavid du Colombiertesters' hands; it has more rough edges than usual.
16067dd7cddfSDavid du Colombier
16073ff48bf5SDavid du Colombier<h3><a name="V3.67_Documentation"></a>Documentation</h3><pre>
16087dd7cddfSDavid du ColombierFixes bugs:
16097dd7cddfSDavid du Colombier	- A definition &amp; use comment was incorrect.  (scanchar.h)
16107dd7cddfSDavid du Colombier	- William Bader's e-mail address was wrong.  (README)
16117dd7cddfSDavid du Colombier
16127dd7cddfSDavid du ColombierAdds documentation for the new begin_image, image_data, and end_image
16137dd7cddfSDavid du Colombierprocedures.  THIS INTERFACE IS STILL SUBJECT TO CHANGE.  (drivers.doc)
16147dd7cddfSDavid du Colombier
16153ff48bf5SDavid du Colombier</pre><h3><a name="V3.67_Procedures"></a>Procedures</h3><pre>
16167dd7cddfSDavid du Colombier
16177dd7cddfSDavid du ColombierRenames all the *core.dev modules as *lib.dev.  (int.mak, *lib.mak, vms.mak,
16187dd7cddfSDavid du Colombiergdevmrop.c)
16197dd7cddfSDavid du Colombier
16207dd7cddfSDavid du ColombierUpdates all the remaining makefiles to IJG JPEG version 6a.  (*.mak)
16217dd7cddfSDavid du Colombier
16227dd7cddfSDavid du ColombierMoves the configuration parameter definitions from gconf.c to a new file
16237dd7cddfSDavid du Colombiergscdefs.c.  (bcwin*.mak, *lib.mak, gs.mak, int.mak, lib.mak, unixtail.mak,
16247dd7cddfSDavid du Colombiervms.mak, gconf.c, gscdefs.c)
16257dd7cddfSDavid du Colombier
16263ff48bf5SDavid du Colombier</pre><h3><a name="V3.67_Platforms"></a>Platforms</h3><pre>
16277dd7cddfSDavid du Colombier
16287dd7cddfSDavid du ColombierRestructures the MS Windows and OS/2 code to be primarily DLL- rather than
16297dd7cddfSDavid du ColombierEXE-based.  This involves two minor NON-BACKWARD-COMPATIBLE changes to the DLL
16307dd7cddfSDavid du Colombierinterface, documented near the end of dll.doc:
16317dd7cddfSDavid du Colombier
16327dd7cddfSDavid du Colombier	- Adding argv and argc as arguments to gsdll_init.
16337dd7cddfSDavid du Colombier
16347dd7cddfSDavid du Colombier	- Adding a new message type, GSDLL_POLL, to the callback procedure.
16357dd7cddfSDavid du Colombier
16367dd7cddfSDavid du Colombier(bcwin*.mak, devs.mak, os2.mak, dll.doc, install.doc, dw*.*, gsdll*.*,
16377dd7cddfSDavid du Colombiergdevms*.*, gdevpm.c, gdevw*.c, gp_mswin.c, gp_os2.c, gsos2.def, gswin.rc)
16387dd7cddfSDavid du Colombier
16397dd7cddfSDavid du ColombierAdds the BMP drivers to the Watcom platform.  (watc.mak)
16407dd7cddfSDavid du Colombier
16413ff48bf5SDavid du Colombier</pre><h3><a name="V3.67_Interpreter"></a>Interpreter</h3><pre>
16427dd7cddfSDavid du Colombier
16437dd7cddfSDavid du ColombierFixes bugs:
16447dd7cddfSDavid du Colombier	- gs.c assumed the presence of stdio.  (gs.c)
16457dd7cddfSDavid du Colombier
16467dd7cddfSDavid du ColombierDefines a new API entry point that is the equivalent of command line
16477dd7cddfSDavid du Colombierinvocation.  (imain.h, imainarg.h, gs.c)
16487dd7cddfSDavid du Colombier
16497dd7cddfSDavid du ColombierChanges clients to conform to the changes in gsimage.h.  (zimage2.c,
16507dd7cddfSDavid du Colombierzpaint.c)
16517dd7cddfSDavid du Colombier
16527dd7cddfSDavid du ColombierSpeeds up the search operator slightly.  (zstring.c)
16537dd7cddfSDavid du Colombier
16543ff48bf5SDavid du Colombier</pre><h3><a name="V3.67_Interpreter_PDF"></a>Interpreter (PDF)</h3><pre>
16557dd7cddfSDavid du Colombier
16567dd7cddfSDavid du ColombierFixes bugs:
16577dd7cddfSDavid du Colombier	- If the PDF interpreter was present, running a PostScript file
16587dd7cddfSDavid du Colombierdidn't close the file properly if it caused an error.  (pdf_main.ps)
16597dd7cddfSDavid du Colombier
16607dd7cddfSDavid du ColombierSpeeds up embedded font loading by making an internal buffer bigger.
16617dd7cddfSDavid du Colombier(pdf_font.ps)
16627dd7cddfSDavid du Colombier
16633ff48bf5SDavid du Colombier</pre><h3><a name="V3.67_Library"></a>Library</h3><pre>
16647dd7cddfSDavid du Colombier
16657dd7cddfSDavid du ColombierFixes bugs:
16667dd7cddfSDavid du Colombier	- There could be some non-zero garbage between the width and the
16677dd7cddfSDavid du Colombiernext multiple of bitmap_align_mod for copy_alpha.  (The driver API
16687dd7cddfSDavid du Colombierspecification explicitly allows this, but it upset one customer.)
16697dd7cddfSDavid du Colombier(gxccman.c)
16707dd7cddfSDavid du Colombier	- Nibble-swapped alpha values could be displaced in memory by one
16717dd7cddfSDavid du Colombierpixel, damaging the output.  (gdevabuf.c)
16727dd7cddfSDavid du Colombier
16737dd7cddfSDavid du ColombierMakes further changes towards adding high-level bitmap image calls to the
16747dd7cddfSDavid du Colombierdriver API.  This includes the following minor NON-BACKWARD-COMPATIBLE
16757dd7cddfSDavid du Colombierchanges to the interface defined in gsimage.h:
16767dd7cddfSDavid du Colombier
16777dd7cddfSDavid du Colombier	- changing MultipleDataSources from a member of the gs_image_t
16787dd7cddfSDavid du Colombier	structure to an argument of gs_image_init;
16797dd7cddfSDavid du Colombier
16807dd7cddfSDavid du Colombier	- changing the default image parameter values from constant
16817dd7cddfSDavid du Colombier	structures to procedures that initialize the structure.
16827dd7cddfSDavid du Colombier
16837dd7cddfSDavid du ColombierAs far as we know, this doesn't affect any existing client code.
16847dd7cddfSDavid du Colombier(gsimage.h, gsiparam.h, gxdevice.h, gdevddrw.c, gdevnfwd.c, gsimage.c,
16857dd7cddfSDavid du Colombiergspcolor.c, gxccache.c)
16867dd7cddfSDavid du Colombier
16877dd7cddfSDavid du ColombierRemoves an unnecessary level of call for path filling.  (gxpaint.h,
16887dd7cddfSDavid du Colombiergxfill.c, gxpaint.c)
16897dd7cddfSDavid du Colombier
16903ff48bf5SDavid du Colombier</pre>
16917dd7cddfSDavid du Colombier
16923ff48bf5SDavid du Colombier<h2><a name="Version3.66"></a>Version 3.66 (limited) (4/8/96)</h2>
16933ff48bf5SDavid du Colombier
16943ff48bf5SDavid du Colombier<p>
16957dd7cddfSDavid du ColombierThis release adds support for TrueType fonts and Type 42 (encapsulated
16967dd7cddfSDavid du ColombierTrueType) PostScript fonts.  The MS Windows driver now interacts properly
16977dd7cddfSDavid du Colombierwith the garbage collector.  This release also includes a new, high-quality
16987dd7cddfSDavid du Colombierset of free fonts.
16997dd7cddfSDavid du Colombier
17003ff48bf5SDavid du Colombier<h3><a name="V3.66_Documentation"></a>Documentation</h3><pre>
17017dd7cddfSDavid du ColombierFixes bugs:
17027dd7cddfSDavid du Colombier	- The list of generic makefiles had gotten out of date.  (make.doc)
17037dd7cddfSDavid du Colombier
17047dd7cddfSDavid du ColombierAdds a mention of the bmv program, created by a user and available under the
17057dd7cddfSDavid du ColombierGPL.  (README)
17067dd7cddfSDavid du Colombier
17077dd7cddfSDavid du ColombierNotes that a bug in gcc 2.7.x prevents these versions from compiling
17087dd7cddfSDavid du ColombierGhostscript.  (make.doc)
17097dd7cddfSDavid du Colombier
17107dd7cddfSDavid du ColombierClarifies the meaning of "inverted" masks.  (gsimage.h)
17117dd7cddfSDavid du Colombier
17127dd7cddfSDavid du ColombierImproves the documentation of the stack sizing parameters.  (interp.c)
17137dd7cddfSDavid du Colombier
17147dd7cddfSDavid du ColombierImproves the documentation of the copy_rop driver procedure.
17157dd7cddfSDavid du Colombier(drivers.doc)
17167dd7cddfSDavid du Colombier
17177dd7cddfSDavid du ColombierNotes that all subclasses of gx_device must explicitly include the
17187dd7cddfSDavid du Colombierdevice_finalize finalization procedure.  (gxdevice.h)
17197dd7cddfSDavid du Colombier
17207dd7cddfSDavid du ColombierUpdates the documentation of the high-level driver API to reflect the change
17217dd7cddfSDavid du Colombierin gx_drawing_color, and the addition of the new polygon and image drawing
17227dd7cddfSDavid du Colombierprocedures.  (drivers.doc)
17237dd7cddfSDavid du Colombier
17247dd7cddfSDavid du ColombierUpdates the documentation for building zlib and libpng.  (make.doc)
17257dd7cddfSDavid du Colombier
17263ff48bf5SDavid du Colombier</pre><h3><a name="V3.66_Procedures"></a>Procedures</h3><pre>
17277dd7cddfSDavid du Colombier
17287dd7cddfSDavid du ColombierFixes bugs:
17297dd7cddfSDavid du Colombier	- The environment space overflowed on some inferior Unix systems.
17307dd7cddfSDavid du Colombier(unixtail.mak)
17317dd7cddfSDavid du Colombier
17327dd7cddfSDavid du ColombierAdds a ttfont.dev "feature" for including the TrueType interpreter and the
17337dd7cddfSDavid du Colombierability to handle Type 42 fonts.  A new procedure, .loadttfont, allows
17347dd7cddfSDavid du Colombierloading a TrueType font directly (by converting it to a Type 42 on the fly).
17357dd7cddfSDavid du Colombier(gs.mak, int.mak, lib.mak)
17367dd7cddfSDavid du Colombier
17377dd7cddfSDavid du ColombierUpdates the makefiles and procedures to libpng 0.88 and zlib 1.0.
17387dd7cddfSDavid du Colombier(libpng.mak, zlib.mak)
17397dd7cddfSDavid du Colombier
17403ff48bf5SDavid du Colombier</pre><h3><a name="V3.66_Utilities"></a>Utilities</h3><pre>
17417dd7cddfSDavid du Colombier
17427dd7cddfSDavid du ColombierFixes bugs:
17437dd7cddfSDavid du Colombier	- pdf2ps could produce lines longer than 255 characters.
17447dd7cddfSDavid du Colombier(pdf_2ps.ps)
17457dd7cddfSDavid du Colombier
17467dd7cddfSDavid du ColombierRemoves some unnecessary and error-inviting code from pdf2dsc.  (pdf2dsc.ps)
17477dd7cddfSDavid du Colombier
17487dd7cddfSDavid du ColombierUpdates lines.ps to test the new stroke code more fully.  (lines.ps)
17497dd7cddfSDavid du Colombier
17507dd7cddfSDavid du ColombierAllows omitting the second argument of ps2pdf, as for ps2epsi.  (ps2pdf)
17517dd7cddfSDavid du Colombier
17523ff48bf5SDavid du Colombier</pre><h3><a name="V3.66_Drivers"></a>Drivers</h3><pre>
17537dd7cddfSDavid du Colombier
17547dd7cddfSDavid du ColombierFixes bugs:
17557dd7cddfSDavid du Colombier	- A routine was incorrectly declared "private".  (I wish gcc caught
17567dd7cddfSDavid du Colombierthis!)  (gdevpdf.c)
17577dd7cddfSDavid du Colombier	- A 'const' was omitted in a parameter list.  (gdevpdfp.c)
17587dd7cddfSDavid du Colombier	- Some imported procedures didn't have prototypes declared.
17597dd7cddfSDavid du Colombier(gdevpdft.c)
17607dd7cddfSDavid du Colombier	- The ProcSet list for PDF files didn't include Text when it was
17617dd7cddfSDavid du Colombierneeded.  (gdevpdfx.h, gdevpdf.c, gdevpdft.c)
17627dd7cddfSDavid du Colombier	- Text in PDF output ignored the color setting.  (gs_pdfwr.ps,
17637dd7cddfSDavid du Colombiergdevpdft.c)
17647dd7cddfSDavid du Colombier	- Text in PDF output could be positioned incorrectly.  (gdevpdft.c)
17657dd7cddfSDavid du Colombier	- pdfmarks could produce an error when producing PDF output.
17667dd7cddfSDavid du Colombier(gs_pdfwr.ps)
17677dd7cddfSDavid du Colombier
17687dd7cddfSDavid du ColombierSlightly improves the text output of the PDF writer.  (gs_pdfwr.ps,
17697dd7cddfSDavid du Colombiergdevpdft.c)
17707dd7cddfSDavid du Colombier
17717dd7cddfSDavid du ColombierDefines driver procedures for filling trapezoids (with the parallel edges
17727dd7cddfSDavid du Colombierparallel to a coordinate axis), parallelograms (with arbitrary orientation),
17737dd7cddfSDavid du Colombiertriangles (ditto), and minimum-width lines (ditto).  (Note that the last of
17747dd7cddfSDavid du Colombierthese obsoletes the former draw_line procedure.)  (gdevmem.h, gdevprn.h,
17757dd7cddfSDavid du Colombiergxdevice.h, gxdraw.h (deleted), gdevddrw.c, gdevdflt.c, gdevht.c,
17767dd7cddfSDavid du Colombiergdevnfwd.c, gsimage[12345].c, gxacpath.c, gxclist.c, gxclip2.c, gxcpath.c,
17777dd7cddfSDavid du Colombiergxdraw.c (deleted), gxfill.c, gxpcmap.c, gxstroke.c)
17787dd7cddfSDavid du Colombier
17797dd7cddfSDavid du ColombierAdds "sketched" driver procedures for high-level bitmap / pixmap image
17807dd7cddfSDavid du Colombierdrawing.  In this release, the argument lists are incomplete, and the
17817dd7cddfSDavid du Colombierprocedures are stubs: don't try to use them!  [see previous entry]
17827dd7cddfSDavid du Colombier
17837dd7cddfSDavid du ColombierChanges the screen update strategy for the X Windows driver from a
17847dd7cddfSDavid du Colombiercompile-time option to a settable run-time variable.  (gdevx.c)
17857dd7cddfSDavid du Colombier
17867dd7cddfSDavid du ColombierPatches around a problem with libpng 0.88 that can't be fixed without
17877dd7cddfSDavid du Colombierediting a configuration file.  (gdevpng.c)
17887dd7cddfSDavid du Colombier
17893ff48bf5SDavid du Colombier</pre><h3><a name="V3.66_Platforms"></a>Platforms</h3><pre>
17907dd7cddfSDavid du Colombier
17917dd7cddfSDavid du ColombierFixes bugs:
17927dd7cddfSDavid du Colombier	- %g formats with sscanf don't work on NeXT systems.  (gdevpdft.c,
17937dd7cddfSDavid du Colombieriutil.c, zdouble.c)
17947dd7cddfSDavid du Colombier	- getenv could be declared inconsistently.  (gp_unix.c)
17957dd7cddfSDavid du Colombier
17963ff48bf5SDavid du Colombier</pre><h3><a name="V3.66_Fonts"></a>Fonts</h3><pre>
17977dd7cddfSDavid du Colombier
17987dd7cddfSDavid du ColombierFixes bugs:
17997dd7cddfSDavid du Colombier	- The Type 1 font interpreter sometimes set the flatness too large.
18007dd7cddfSDavid du Colombier(gstype1.c)
18017dd7cddfSDavid du Colombier	- Fonts defined by definefont could never be garbage collected.
18027dd7cddfSDavid du Colombier(gsstruct.h, gxfcache.h, gxfont.h, gxfont0.h, gxfont1.h, gsfont.c,
18037dd7cddfSDavid du Colombiergsfont0.c)
18047dd7cddfSDavid du Colombier	- Type 0 fonts weren't garbage collected properly.  (gsfont0.c)
18057dd7cddfSDavid du Colombier	- Compiled fonts caused a compilation error (bug introduced in
18067dd7cddfSDavid du Colombier3.65).  (ifont.h)
18077dd7cddfSDavid du Colombier	- If a Type 1 font used hint replacement, hints could be applied
18087dd7cddfSDavid du Colombiermore than once, distorting the character shape.  (gxtype1.h, gxhint3.c)
18097dd7cddfSDavid du Colombier	- Oversampling wasn't applied to large enough characters.
18107dd7cddfSDavid du Colombier(gschar.c)
18117dd7cddfSDavid du Colombier
18123ff48bf5SDavid du Colombier</pre><h3><a name="V3.66_Interpreter"></a>Interpreter</h3><pre>
18137dd7cddfSDavid du Colombier
18147dd7cddfSDavid du ColombierFixes bugs:
18157dd7cddfSDavid du Colombier	- The scanner accepted /[, /], /&lt;&lt;, and /&gt;&gt; as literal names (and
18167dd7cddfSDavid du Colombiersimilarly for //).  It isn't obvious from the Red Book, but the Adobe
18177dd7cddfSDavid du Colombierimplementations don't accept these.  What a nuisance!  (gs_btokn.ps,
18187dd7cddfSDavid du Colombiergs_init.ps, pdf_2ps.ps, pdf_base.ps, pdf_main.ps, iscan.c)
18197dd7cddfSDavid du Colombier	- A spurious stackoverflow could occur under unusual conditions.
18207dd7cddfSDavid du Colombier(istack.c)
18217dd7cddfSDavid du Colombier	- The values of OrigFont and ScaleMatrix in scaled fonts reflected
18227dd7cddfSDavid du Colombieronly the most recent scaling operation, not the original font and the
18237dd7cddfSDavid du Colombiercombined scaling operation.  (zfont.c)
18247dd7cddfSDavid du Colombier	- The default size of systemdict had become slightly too small.
18257dd7cddfSDavid du Colombier(iinit.c)
18267dd7cddfSDavid du Colombier	- Type 1 characters defined by PostScript procedures were called
18277dd7cddfSDavid du Colombierincorrectly.  (zcharout.c)
18287dd7cddfSDavid du Colombier
18297dd7cddfSDavid du ColombierRemoves the papersize operator from statusdict, since it is not documented
18307dd7cddfSDavid du Colombieranywhere in the Adobe literature and didn't interact properly with the
18317dd7cddfSDavid du Colombiervarious ways of setting the page size.  (gs_statd.ps)
18327dd7cddfSDavid du Colombier
18337dd7cddfSDavid du ColombierChanges the one client of sskip to match the changed API.  (zpaint.c)
18347dd7cddfSDavid du Colombier
18357dd7cddfSDavid du ColombierChanges clients to reflect the creation of sstring.h.  (iscan.h, zfilter.c)
18367dd7cddfSDavid du Colombier
18377dd7cddfSDavid du ColombierAdds PSStringEncode as an accessible filter.  (zfilter.c)
18387dd7cddfSDavid du Colombier
18397dd7cddfSDavid du ColombierAdds support for TrueType and Type 42 fonts.  (gs_fonts.ps, gs_ttf.ps,
18407dd7cddfSDavid du Colombiergs_typ42.ps, bfont.h, icharout.h, ifont.h, zchar1.c, zchar42.c, zcharout.c,
18417dd7cddfSDavid du Colombierzfont1.c, zfont2.c, zfont42.c)
18427dd7cddfSDavid du Colombier
18437dd7cddfSDavid du ColombierAdds a few ANSI sheet sizes (commented out, for documentation only).
18447dd7cddfSDavid du Colombier(gs_statd.ps)
18457dd7cddfSDavid du Colombier
18463ff48bf5SDavid du Colombier</pre><h3><a name="V3.66_Interpreter_PDF"></a>Interpreter (PDF)</h3><pre>
18477dd7cddfSDavid du Colombier
18487dd7cddfSDavid du ColombierFixes bugs:
18497dd7cddfSDavid du Colombier	- Clients who called pdfopen/close rather than runpdf could get an
18507dd7cddfSDavid du Colombiererror (PSLevel1 undefined).  (pdf_main.ps)
18517dd7cddfSDavid du Colombier	- Some masked images were displayed with black and white inverted.
18527dd7cddfSDavid du Colombier(gs_pdf.ps)
18537dd7cddfSDavid du Colombier	- In Level 1 output produced by pdf2ps, images caused a syntaxerror.
18547dd7cddfSDavid du Colombier(gs_pdf.ps)
18557dd7cddfSDavid du Colombier	- If a PDF file had multiple xref sections and later sections added
18567dd7cddfSDavid du Colombiernew objects, an error occurred.  (pdf_main.ps)
18577dd7cddfSDavid du Colombier	- Some very old Level 1 interpreters couldn't deal with a file
18587dd7cddfSDavid du Colombierobject embedded in a procedure.  (gs_pdf.ps)
18597dd7cddfSDavid du Colombier
18603ff48bf5SDavid du Colombier</pre><h3><a name="V3.66_Streams"></a>Streams</h3><pre>
18617dd7cddfSDavid du Colombier
18627dd7cddfSDavid du ColombierFixes bugs:
18637dd7cddfSDavid du Colombier	- The PSStringEncode filter didn't always produce printable 7-bit
18647dd7cddfSDavid du Colombieroutput.  (sstring.c)
18657dd7cddfSDavid du Colombier	- The CCITTFaxDecode filter didn't implement DamagedRowsBeforeError.
18667dd7cddfSDavid du Colombier(scfx.h, scfd.c)
18677dd7cddfSDavid du Colombier	- Interpolated images displayed nothing if the data stream ended
18687dd7cddfSDavid du Colombierbefore the image height was reached.  (siscale.h, gsimage5.c, siscale.c)
18697dd7cddfSDavid du Colombier
18707dd7cddfSDavid du ColombierChanges the sskip stream procedure so that it takes an additional argument
18717dd7cddfSDavid du Colombierwhere it returns the actual number of bytes skipped.  THIS IS A
18727dd7cddfSDavid du ColombierNON-BACKWARD-COMPATIBLE CHANGE in the API.  However, as far as we know,
18737dd7cddfSDavid du Colombierthere are no external clients of this procedure.  (stream.h, stream.c)
18747dd7cddfSDavid du Colombier
18757dd7cddfSDavid du ColombierSplits up sfilter.h so that the headers correspond more directly with the
18767dd7cddfSDavid du Colombierimplementations.  (sfilter.h, sstring.h, sstring.c)
18777dd7cddfSDavid du Colombier
18783ff48bf5SDavid du Colombier</pre><h3><a name="V3.66_Library"></a>Library</h3><pre>
18797dd7cddfSDavid du Colombier
18807dd7cddfSDavid du ColombierFixes bugs:
18817dd7cddfSDavid du Colombier	- The default device in the library configuration was device 1, not
18827dd7cddfSDavid du Colombierdevice 0.  (bclib.mak, ugcclib.mak, watclib.mak, gslib.c)
18837dd7cddfSDavid du Colombier	- Patterns could be rendered with small gaps between them.
18847dd7cddfSDavid du Colombier(gspcolor.c)
18857dd7cddfSDavid du Colombier	- Large characters could render inaccurately because of a numerical
18867dd7cddfSDavid du Colombierboundary condition.  (gxpcopy.c)
18877dd7cddfSDavid du Colombier	- The show_gstate pointer in the graphics state was not managed
18887dd7cddfSDavid du Colombierproperly, possibly leading to dangling pointers or GC errors.  (gsstate.c)
18897dd7cddfSDavid du Colombier	- Bitmaps could get shifted to the left if ALPHA_LSB_FIRST was
18907dd7cddfSDavid du Colombierselected (bug introduced in 3.53).  (gsbitops.c)
18917dd7cddfSDavid du Colombier	- The garbage collector could move devices in memory, causing
18927dd7cddfSDavid du Colombierproblems with command list devices.  (gxdevice.h, gsdevice.c)
18937dd7cddfSDavid du Colombier
18947dd7cddfSDavid du ColombierContinues restructuring the image handling code in preparation for adding a
18957dd7cddfSDavid du Colombierhigh-level driver operation.  (gsimage[12345].c)
18967dd7cddfSDavid du Colombier
18977dd7cddfSDavid du ColombierStarts to implement passing color mapping information (transfer function,
18987dd7cddfSDavid du Colombierblack generation, undercolor removal, CRD, halftoning) in the band list.
18997dd7cddfSDavid du Colombier(gxfmap.h, gscolor.c, gscolor1.c, gsht1.c, gsstate.c)
19007dd7cddfSDavid du Colombier
19017dd7cddfSDavid du ColombierSpeeds up the path filling code a little more.  (gxdraw.c)
19027dd7cddfSDavid du Colombier
19037dd7cddfSDavid du ColombierRemoves the workaround for the gcc 2.7.0/1/2 optimizer bug, since this
19047dd7cddfSDavid du Colombierturned out to cause more trouble than it was worth.  (stdpre.h)
19057dd7cddfSDavid du Colombier
19067dd7cddfSDavid du ColombierSpeeds up stroking dramatically for the case of butt or square caps, bevel
19077dd7cddfSDavid du Colombieror beveled miter joins, and no fill adjustment, by filling parallelograms
19087dd7cddfSDavid du Colombierand triangles directly rather than constructing and filling paths.  This is
19097dd7cddfSDavid du Colombieran important common case for CAD drawings.  (gxdraw.h, gxdraw.c, gxstroke.c)
19107dd7cddfSDavid du Colombier
19117dd7cddfSDavid du ColombierAdds support for TrueType and Type 42 fonts.  (gxfont.h, gxfont42.h,
19127dd7cddfSDavid du Colombiergstype42.c)
19137dd7cddfSDavid du Colombier
19147dd7cddfSDavid du ColombierExtends the memory manager to allow allocating objects that the garbage
19157dd7cddfSDavid du Colombiercollector won't move.  THIS IS A NON-BACKWARD-COMPATIBLE CHANGE for
19167dd7cddfSDavid du Colombierimplementors of memory managers, but clients aren't supposed to have any of
19177dd7cddfSDavid du Colombierthese.  (gsmemory.h, gsmemory.c, gsalloc.c)
19187dd7cddfSDavid du Colombier
19197dd7cddfSDavid du ColombierMakes dynamically created instances of registered devices immovable.
19207dd7cddfSDavid du Colombier(gsdevice.c)
19217dd7cddfSDavid du Colombier
19227dd7cddfSDavid du ColombierUnifies gx_drawing_color with (makes it equivalent to) gx_device_color.
19237dd7cddfSDavid du ColombierTHIS IS A NON-BACKWARD-COMPATIBLE CHANGE for implementors of the
19247dd7cddfSDavid du Colombierhigher-level driver procedures (fill_path, stroke_path, fill_mask).  We
19257dd7cddfSDavid du Colombierregret that this was necessary, but the documentation in drivers.doc does
19267dd7cddfSDavid du Colombierwarn the reader: "DO NOT ASSUME THESE OPERATIONS WILL REMAIN UNCHANGED IN
19277dd7cddfSDavid du ColombierFUTURE RELEASES."  These three procedures, at least, should now be stable.
19287dd7cddfSDavid du Colombier(gsdcolor.h, gxcindex.h, gxdcolor.h, gxdevice.h, gximage.h, gxpaint.h,
19297dd7cddfSDavid du Colombiergxpcolor.h, gdevdflt.c, gdevpdf.c, gdevpdfi.c, gdevxalt.c, gsimage.c,
19307dd7cddfSDavid du Colombiergsimage2.c, gspcolor.c, gxacpath.c, gxccache.c, gxcht.c, gxclpath.c,
19317dd7cddfSDavid du Colombiergxclread.c, gxdcconv.c, gxdither.c, gxfill.c, gxdraw.c, gxht.c, gxpaint.c,
19327dd7cddfSDavid du Colombiergxpcmap.c, gxstroke.c)
19337dd7cddfSDavid du Colombier
19343ff48bf5SDavid du Colombier</pre>
19357dd7cddfSDavid du Colombier
19363ff48bf5SDavid du Colombier<h2><a name="Version3.65"></a>Version 3.65 (limited) (3/9/96)</h2>
19373ff48bf5SDavid du Colombier
19383ff48bf5SDavid du Colombier<p>
19397dd7cddfSDavid du ColombierThis release adds garbage collection for device instances.  ****** NOTE:
19407dd7cddfSDavid du ColombierBecause of changes in memory management, if you are using the MS Windows
19417dd7cddfSDavid du Colombierdriver (mswin), you must run with -dNOGC.  This is a temporary problem which
19427dd7cddfSDavid du Colombierwill be fixed before the next beta release.
19437dd7cddfSDavid du Colombier
19443ff48bf5SDavid du Colombier<h3><a name="V3.65_Documentation"></a>Documentation</h3><pre>
19457dd7cddfSDavid du ColombierDocuments the C API equivalent of a -d switch for setting a flag like
19467dd7cddfSDavid du ColombierNOPAUSE.  (imain.h)
19477dd7cddfSDavid du Colombier
19487dd7cddfSDavid du ColombierSplits off the NEWS entries for versions 3.0 through 3.33 into a new
19497dd7cddfSDavid du Colombierfile.  (history3.doc)
19507dd7cddfSDavid du Colombier
19517dd7cddfSDavid du ColombierAdds a man page for ps2pdf.  (ps2pdf.1)
19527dd7cddfSDavid du Colombier
19537dd7cddfSDavid du ColombierDocuments the new memory management aspects of device drivers, and corrects
19547dd7cddfSDavid du Colombiermany other aspects of driver documentation that had become inaccurate.
19557dd7cddfSDavid du Colombier(drivers.doc)
19567dd7cddfSDavid du Colombier
19577dd7cddfSDavid du ColombierUpdates the documentation for the gs_*.ps files.  (psfiles.doc)
19587dd7cddfSDavid du Colombier
19597dd7cddfSDavid du ColombierReplaces .type1addpath with .type1execchar.  (language.doc)
19607dd7cddfSDavid du Colombier
19617dd7cddfSDavid du ColombierAdds some more documentation on how band lists do read/write switching.
19627dd7cddfSDavid du Colombier(gxclist.h)
19637dd7cddfSDavid du Colombier
19647dd7cddfSDavid du ColombierAdds a reference to the new Genscript program, a free Ghostscript-based
19657dd7cddfSDavid du Colombierreplacement for enscript.  (README)
19667dd7cddfSDavid du Colombier
19677dd7cddfSDavid du ColombierNotes that no further changes will be accepted for the gdevcdj.c file, which
19687dd7cddfSDavid du Colombierhas gotten completely out of hand.  (gdevcdj.c).
19697dd7cddfSDavid du Colombier
19707dd7cddfSDavid du ColombierDocuments the TextAlphaBits and GraphicsAlphaBits device parameters.
19717dd7cddfSDavid du Colombier(language.doc)
19727dd7cddfSDavid du Colombier
19733ff48bf5SDavid du Colombier</pre><h3><a name="V3.65_Procedures"></a>Procedures</h3><pre>
19747dd7cddfSDavid du ColombierFixes bugs:
19757dd7cddfSDavid du Colombier	- gs_pdfwr.ps and pdf2ps.1 weren't installed on Unix systems.
19767dd7cddfSDavid du Colombier(unix-end.mak)
19777dd7cddfSDavid du Colombier	- The pdf2ps shell script didn't accept any options.  (pdf2ps)
19787dd7cddfSDavid du Colombier	- The rule for srle.$(OBJ) incorrectly specified a dependency on
19797dd7cddfSDavid du Colombiersrld.c.  (lib.mak)
19807dd7cddfSDavid du Colombier	- The rule for command lists didn't include stream.$(OBJ).
19817dd7cddfSDavid du Colombier(lib.mak)
19827dd7cddfSDavid du Colombier	- The stack size for one configuration was set too small.
19837dd7cddfSDavid du Colombier(watclib.mak)
19847dd7cddfSDavid du Colombier
19857dd7cddfSDavid du ColombierSpeeds up genconf by eliminating redundant file reading and processing.
19867dd7cddfSDavid du Colombier(genconf.c)
19877dd7cddfSDavid du Colombier
19887dd7cddfSDavid du ColombierMoves the pixel-difference filters from int.mak to lib.mak.  (int.mak,
19897dd7cddfSDavid du Colombierlib.mak)
19907dd7cddfSDavid du Colombier
19917dd7cddfSDavid du ColombierMoves the library parts of the HSB color and Level 1 path (arcs, pathbbox,
19927dd7cddfSDavid du Colombierpath enumeration) options from int.mak to lib.mak, and adds them to the
19937dd7cddfSDavid du Colombierlibrary makefiles.  (int.mak, lib.mak; bclib.mak. ugcclib.mak, watclib.mak)
19947dd7cddfSDavid du Colombier
19953ff48bf5SDavid du Colombier</pre><h3><a name="V3.65_Utilities"></a>Utilities</h3><pre>
19967dd7cddfSDavid du Colombier
19977dd7cddfSDavid du ColombierFixes bugs:
19987dd7cddfSDavid du Colombier	- pdf2ps would fail if it encountered a font with a standard
19997dd7cddfSDavid du Colombierencoding.  (pdf_2ps.ps)
20007dd7cddfSDavid du Colombier
20017dd7cddfSDavid du ColombierAdds new switches to pdf2ps:
20027dd7cddfSDavid du Colombier	-dPSBinaryOK allows writing binary image data in the output.
20037dd7cddfSDavid du Colombier(pdf_2ps.ps)
20047dd7cddfSDavid du Colombier	-dPSLevel1 forces Level 1 compatible output.  (int.mak,
20057dd7cddfSDavid du Colombierunix-end.mak, gs_l2img.ps, gs_pdf.ps, pdf_2ps.ps, pdf_main.ps)
20067dd7cddfSDavid du Colombier	-dPSNoProcSet causes the ProcSet to be loaded at run time, not at
20077dd7cddfSDavid du Colombierconversion time -- primarily useful for debugging.  (pdf_2ps.ps)
20087dd7cddfSDavid du Colombier
20097dd7cddfSDavid du ColombierAdds a utility for viewing PCX files, so we can preview high-resolution
20107dd7cddfSDavid du Colombieroutput in a reasonable compressed format.  (unix-end.mak, viewpcx.ps)
20117dd7cddfSDavid du Colombier
20123ff48bf5SDavid du Colombier</pre><h3><a name="V3.65_Drivers"></a>Drivers</h3><pre>
20137dd7cddfSDavid du Colombier
20147dd7cddfSDavid du ColombierFixes bugs:
20157dd7cddfSDavid du Colombier	- Some compilers require an extra #include to define structures even
20167dd7cddfSDavid du Colombierif they are only referenced by pointers.  (int.mak, gdevpdf.c, gdevpdfp.c)
20177dd7cddfSDavid du Colombier	- A procedure name was duplicated.  (gdevpdfi.c)
20187dd7cddfSDavid du Colombier	- A pdfmark between a gsave and a grestore could cause a
20197dd7cddfSDavid du Colombierrangecheck error.  (gdevpdfp.c)
20207dd7cddfSDavid du Colombier	- A pdfmark between a gsave and a grestore could cause the
20217dd7cddfSDavid du Colombiergrestore to do an inappropriate initgraphics.  (gs_pdfwr.ps)
20227dd7cddfSDavid du Colombier	- The pdfwrite driver could reinitialize the output file
20237dd7cddfSDavid du Colombierunpredictably.  (gdevpdfp.c)
20247dd7cddfSDavid du Colombier	- The PCX drivers didn't clear padding bytes at the ends of scan
20257dd7cddfSDavid du Colombierlines.  (gdevpcx.c)
20267dd7cddfSDavid du Colombier	- The PCX drivers didn't set the "version" field correctly (this was
20277dd7cddfSDavid du ColombierOK in 2.6.1, bug introduced sometime since then).  (gdevpcx.c)
20287dd7cddfSDavid du Colombier	- Whoever last touched the color inkjet drivers completely broke the
20297dd7cddfSDavid du Colombierhandling of the BitsPerPixel parameter, again.  We were able to half-fix it,
20307dd7cddfSDavid du Colombierbut the code is impossible to understand, let alone modify safely.
20317dd7cddfSDavid du Colombier(gdevcdj.c)
20327dd7cddfSDavid du Colombier	- Anti-aliased characters didn't work with banding.  (gxclpath.c)
20337dd7cddfSDavid du Colombier	- The PGM/PPM drivers didn't recognize black-and-white pages for
20347dd7cddfSDavid du Colombieroptimization to PBM, only gray or colored.  (gdevpbm.c)
20357dd7cddfSDavid du Colombier	- The color inkjet drivers initialized the params_size field of the
20367dd7cddfSDavid du Colombierstatic instance incorrectly, resulting in garbage in the last few structure
20377dd7cddfSDavid du Colombiermembers when instances were copied.  (gdevcdj.c)
20387dd7cddfSDavid du Colombier	- The 24-bit PCX driver didn't pad each scan line to an even number
20397dd7cddfSDavid du Colombierof bytes.  (gdevpcx.c)
20407dd7cddfSDavid du Colombier	- The svga16 driver initialized its procedures incorrectly.
20417dd7cddfSDavid du Colombier(gdevpcfb.c)
20427dd7cddfSDavid du Colombier
20437dd7cddfSDavid du ColombierAdds text writing capability to the PDF writer.  In its present form, this
20447dd7cddfSDavid du Colombieris a very bad hack: it only works for the 14 built-in fonts with their
20457dd7cddfSDavid du Colombierstandard encodings.  (gdevpdfx.h, gdevpdf.c, gdevpdfp.c, gdevpdft.c)
20467dd7cddfSDavid du Colombier
20477dd7cddfSDavid du ColombierAdds garbage collection and finalization for device instances (gscdefs.h,
20487dd7cddfSDavid du Colombiergsdevice.h, gxdevice.h, gconf.c, gdevmrop.c, gsdevice.c, gslib.c, gsmain.c).
20497dd7cddfSDavid du Colombier(See the "Driver instance allocation" section of drivers.doc for more
20507dd7cddfSDavid du Colombierdetails about what is required to make this work.)
20517dd7cddfSDavid du Colombier
20527dd7cddfSDavid du Colombier	- When an open device is freed (explicitly, by garbage collection,
20537dd7cddfSDavid du Colombieror by 'restore'), if the device was allocated dynamically by Ghostscript's
20547dd7cddfSDavid du Colombierstandard allocator, the device's close procedure will be called.  THIS IS A
20557dd7cddfSDavid du ColombierNON-BACKWARD-COMPATIBLE CHANGE for dynamically created devices, which
20567dd7cddfSDavid du Colombierformerly were not closed automatically, even when Ghostscript exited.
20577dd7cddfSDavid du Colombier
20587dd7cddfSDavid du Colombier	- Device instances allocated in GC-able space will be traced
20597dd7cddfSDavid du Colombierlike other objects, assuming they have proper structure descriptors.
20607dd7cddfSDavid du Colombier
20617dd7cddfSDavid du ColombierProvides a (very slow but correct) default implementation of copy_alpha.
20627dd7cddfSDavid du Colombier(gxcindex.h, gdevdflt.c, gsimage4.c)
20637dd7cddfSDavid du Colombier
20647dd7cddfSDavid du ColombierRemoves the implementation of copy_alpha in gdevpbm.c, since this is now
20657dd7cddfSDavid du Colombierimplemented (more efficiently) in gdevm24.c.  (gdevpbm.c)
20667dd7cddfSDavid du Colombier
20677dd7cddfSDavid du ColombierAdds TextAlphaBits and GraphicsAlphaBits as readable parameters for all
20687dd7cddfSDavid du Colombierdevices.  (gsdparam.c, gdevpbm.c, gdevsvga.c)
20697dd7cddfSDavid du Colombier
20703ff48bf5SDavid du Colombier</pre><h3><a name="V3.65_Platforms"></a>Platforms</h3><pre>
20717dd7cddfSDavid du Colombier
20727dd7cddfSDavid du ColombierFixes bugs:
20737dd7cddfSDavid du Colombier	- There were some attempts to coerce long to short pointers
20747dd7cddfSDavid du Colombieron segmented platforms.  (gsdparam.c, gstype1.c)
20757dd7cddfSDavid du Colombier	- The stack could overflow on the 16-bit MS Windows platform.
20767dd7cddfSDavid du Colombier(gxfill.c, gxclread.c)
20777dd7cddfSDavid du Colombier	- The DLL callback parameter for window resize events was computed
20787dd7cddfSDavid du Colombierincorrectly on 16-bit systems.  (gdevwdib.c)
20797dd7cddfSDavid du Colombier	- A file included gxdevice.h unnecessarily.  (bcwin.mak,
20807dd7cddfSDavid du Colombierbcwin32.mak, msvcwint.mak, gp_mswin.c)
20817dd7cddfSDavid du Colombier
20823ff48bf5SDavid du Colombier</pre><h3><a name="V3.65_Interpreter"></a>Interpreter</h3><pre>
20837dd7cddfSDavid du Colombier
20847dd7cddfSDavid du ColombierFixes bugs:
20857dd7cddfSDavid du Colombier	- Storing into a read-only dictionary with def or store was
20867dd7cddfSDavid du Colombierallowed.  (dstack.h)
20877dd7cddfSDavid du Colombier	- If the interpreter allocated extra space for a dictionary
20887dd7cddfSDavid du Colombierto round its storage size up to a power of 2, it was possible for
20897dd7cddfSDavid du Colombierlength to exceed maxlength.  (idict.c, iinit.c)
20907dd7cddfSDavid du Colombier	- The if and ifelse operators didn't check that their
20917dd7cddfSDavid du Colombier'procedure' arguments were actually procedures.  (interp.c, zcontrol.c)
20927dd7cddfSDavid du Colombier	- The undef operator was defined even in Level 1
20937dd7cddfSDavid du Colombierconfigurations.  (We need this capability for all configurations, so
20947dd7cddfSDavid du Colombierwe always define .undef.)  (zdict.c, gs_*.ps, pdf_*.ps)
20957dd7cddfSDavid du Colombier	- In Level 1 configurations, copying a dictionary should copy the
20967dd7cddfSDavid du Colombieraccess attributes, but it didn't.  We have to work around this
20977dd7cddfSDavid du Colombiercompatibility quirk in a lot of places.  (gs_cidfn.ps, gs_cmap.ps,
20987dd7cddfSDavid du Colombiergs_dps1.ps, gs_fonts.ps, gs_init.ps, gs_l2img.ps, gs_lev2.ps, gs_pdf.ps,
20997dd7cddfSDavid du Colombiergs_pfile.ps, gs_res.ps, gs_setpd.ps, gs_type1.ps, zdict.c)
21007dd7cddfSDavid du Colombier	- DSC comments that crossed a buffer boundary didn't call the
21017dd7cddfSDavid du Colombierscan_dsc_proc.  (iscan.c)
21027dd7cddfSDavid du Colombier	- "statusdict /setpage get exec" caused an error.  (gs_statd.ps)
21037dd7cddfSDavid du Colombier	- The default size of systemdict had become slightly too small.
21047dd7cddfSDavid du Colombier(iinit.c)
21057dd7cddfSDavid du Colombier	- Doing a showpage or copypage would cause the equivalent of a
21067dd7cddfSDavid du Colombiersetpagedevice at the next restore or grestore.  We aren't entirely sure that
21077dd7cddfSDavid du Colombierthe fix we made doesn't have bad side-effects.  (gs_setpd.ps)
21087dd7cddfSDavid du Colombier	- Not all filters accepted (and ignored) an optional dictionary
21097dd7cddfSDavid du Colombierparameter on the stack.  (ifilter.h, zfbcp.c, zfdecode.c, zfilter.c,
21107dd7cddfSDavid du Colombierzfilterx.c, zfzlib.c, zmisc1.c)
21117dd7cddfSDavid du Colombier	- The PixelDifference filters required a Columns parameter, rather
21127dd7cddfSDavid du Colombierthan defaulting it to 1.  (spdiffx.h, zfdecode.c)
21137dd7cddfSDavid du Colombier	- Contrary to the NEWS entry for release 3.60, the LZW filters did
21147dd7cddfSDavid du Colombiernot implement pixel differencing.  (zfdecode.c, zfilter2.c)
21157dd7cddfSDavid du Colombier	- readstring with a 0-length string didn't signal a rangecheck.
21167dd7cddfSDavid du ColombierThis doesn't make a lot of sense to me, but it's what the Adobe
21177dd7cddfSDavid du Colombierdocumentation specifies.  Unfortunately, we have to work around this in a
21187dd7cddfSDavid du Colombiernumber of places that assumed the sensible definition (return () true
21197dd7cddfSDavid du Colombierwithout reading anything).  (gs_l2img.ps, pdf_font.ps, zfileio.c)
21207dd7cddfSDavid du Colombier	- Encoded number strings didn't work (bug introduced in 3.64).
21217dd7cddfSDavid du Colombier(ibnum.c)
21227dd7cddfSDavid du Colombier	- The allocator could produce spurious "free large 0x...... chunk
21237dd7cddfSDavid du Colombiernot found" messages.  (These didn't cause any harm, but they were
21247dd7cddfSDavid du Colombierdisturbing.)  (gsalloc.c)
21257dd7cddfSDavid du Colombier
21267dd7cddfSDavid du ColombierChanges the default transfer function for high-resolution devices so
21277dd7cddfSDavid du Colombierthat it is the identity function if the device is continuous-tone.
21287dd7cddfSDavid du Colombier(gs_init.ps)
21297dd7cddfSDavid du Colombier
21307dd7cddfSDavid du ColombierUndoes the "subversion" of zgetdevice noted in release 3.61, since it
21317dd7cddfSDavid du Colombieris now possible to copy devices safely.  (zdevice.c)
21327dd7cddfSDavid du Colombier
21337dd7cddfSDavid du ColombierChanges the implementation of the garbage collector and restore so that
21347dd7cddfSDavid du Colombierobject finalization code may safely free objects.  (igc.c, isave.c)
21357dd7cddfSDavid du Colombier
21367dd7cddfSDavid du ColombierReimplements essentially all of Type 1 BuildChar in C.  (gs_init.ps,
21377dd7cddfSDavid du Colombiergs_type0.ps (deleted), gs_type1.ps, ifont.h, zchar.c, zchar1.c, zfont.c)
21387dd7cddfSDavid du Colombier
21397dd7cddfSDavid du ColombierReimplements DISKFONTS as a separate feature (diskfont.dev), and changes it
21407dd7cddfSDavid du Colombierto use Type 4 fonts rather than special machinery.  Currently this feature
21417dd7cddfSDavid du Colombieris included only in the makefiles for 16-bit architectures.  (bc.mak,
21427dd7cddfSDavid du Colombierbcwin.mak, int.mak, tc.mak, gs_diskf.ps, gs_fonts.ps, gs_type1.ps)
21437dd7cddfSDavid du Colombier
21447dd7cddfSDavid du ColombierConverts the library search path from a list of strings to a (PostScript)
21457dd7cddfSDavid du Colombierarray of strings, one string per directory.  (iminst.h, main.h, gs.c,
21467dd7cddfSDavid du Colombiergsmain.c, zfile.c)
21477dd7cddfSDavid du Colombier
21487dd7cddfSDavid du ColombierAdds a hook procedure scan_comment_proc for processing all comments,
21497dd7cddfSDavid du Colombiersimilar to scan_dsc_proc.  If both are set, scan_comment_proc is used only
21507dd7cddfSDavid du Colombierfor non-DSC comments.  (iscan.h, iscan.c)
21517dd7cddfSDavid du Colombier
21523ff48bf5SDavid du Colombier</pre><h3><a name="V3.65_Interpreter_PDF"></a>Interpreter (PDF)</h3><pre>
21537dd7cddfSDavid du Colombier
21547dd7cddfSDavid du ColombierFixes bugs:
21557dd7cddfSDavid du Colombier	- Encrypted PDF files produced a random error (usually ioerror in
21567dd7cddfSDavid du Colombier--token--) rather than a meaningful message.  (pdf_main.ps)
21577dd7cddfSDavid du Colombier	- Color space setting didn't work.  (gs_pdf.ps)
21587dd7cddfSDavid du Colombier	- The algorithm for skipping a possible blank line following the
21597dd7cddfSDavid du Colombier'stream' keyword wasn't robust enough.  (We aren't sure the new algorithm is
21607dd7cddfSDavid du Colombierexactly right, either.)  (pdf_base.ps)
21617dd7cddfSDavid du Colombier
21627dd7cddfSDavid du ColombierGets rid of the special handling of the LZW decoding filter, since the
21637dd7cddfSDavid du Colombierfilter itself now handles the Predictor facility.  (pdf_base.ps)
21647dd7cddfSDavid du Colombier
21653ff48bf5SDavid du Colombier</pre><h3><a name="V3.65_Streams"></a>Streams</h3><pre>
21667dd7cddfSDavid du Colombier
21677dd7cddfSDavid du ColombierFixes bugs:
21687dd7cddfSDavid du Colombier	- Configurations with LZW encoding but not decoding had an
21697dd7cddfSDavid du Colombierundefined reference.  (lib.mak, slzwc.c, slzwd.c)
21707dd7cddfSDavid du Colombier	- The LZW-compatible encoder didn't provide a 'reset' procedure.
21717dd7cddfSDavid du Colombier(slzwce.c)
21727dd7cddfSDavid du Colombier	- The PixelDifference filters didn't work for most parameter
21737dd7cddfSDavid du Colombiercombinations in which each pixel took up more than 1 byte.  (spdiff.c)
21747dd7cddfSDavid du Colombier	- Temporary write streams could cause an infinite loop.  (We only
21757dd7cddfSDavid du Colombierneed such streams for the Predictor = 2 case of LZWEncode: this is why the
21767dd7cddfSDavid du Colombierbug never showed up before.)  (stream.c)
21777dd7cddfSDavid du Colombier
21787dd7cddfSDavid du ColombierAdds an optional reinitialization procedure to the stream template.  Note
21797dd7cddfSDavid du Colombierthat this is not the same as the PostScript 'reset' operation or the stream
21807dd7cddfSDavid du Colombierresetting operation invoked by sreset: the reinit procedure in the template
21817dd7cddfSDavid du Colombierreinitializes any internal state of the encoder or decoder without affecting
21827dd7cddfSDavid du Colombierbuffered data.  (scommon.h, strimpl.h, sbcp.c, sbhc.c, slzwce.c, slzwd.c,
21837dd7cddfSDavid du Colombierslzwe.c, smtf.c, spdiff.c, srle.c) ****** NOT DONE YET: sbwbs.c, szlibd.c,
21847dd7cddfSDavid du Colombierszlibe.c
21857dd7cddfSDavid du Colombier
21867dd7cddfSDavid du ColombierAdds a decoding stream for the run-length compression used in PCX.
21877dd7cddfSDavid du Colombier(spcxx.h, spcxd.c)
21887dd7cddfSDavid du Colombier
21893ff48bf5SDavid du Colombier</pre><h3><a name="V3.65_Library"></a>Library</h3><pre>
21907dd7cddfSDavid du Colombier
21917dd7cddfSDavid du ColombierFixes bugs:
21927dd7cddfSDavid du Colombier	- A recent edit introduced an extraneous right parenthesis.
21937dd7cddfSDavid du Colombier(gpcheck.h)
21947dd7cddfSDavid du Colombier	- A minor nit in a macro could cause incorrect grouping of 'if'
21957dd7cddfSDavid du Colombierstatements under implausible conditions.  (gsmdebug.h)
21967dd7cddfSDavid du Colombier	- The first data plane buffer of an image enumerator didn't get
21977dd7cddfSDavid du Colombiermarked during garbage collection.  (gsimage.c)
21987dd7cddfSDavid du Colombier	- The Watcom C compiler required splitting up a declaration.
21997dd7cddfSDavid du Colombier(gxcmap.h)
22007dd7cddfSDavid du Colombier	- The extern declarations for the tables in gconf.c weren't gathered
22017dd7cddfSDavid du Colombiertogether in one place.  (gscdefs.h, gxiodev.h, gconf.c, gsdevice.c, gslib.c,
22027dd7cddfSDavid du Colombiergsinit.c, gsiodev.c)
22037dd7cddfSDavid du Colombier	- charpath and show produced different output.  We fixed this by
22047dd7cddfSDavid du Colombierundoing a "bug fix", introduced in version 2.9, which suppressed hinting and
22057dd7cddfSDavid du Colombiercoordinate rounding for charpath; we aren't sure this won't cause some
22067dd7cddfSDavid du Colombierobscure problems to reappear.  (gstype1.c)
22077dd7cddfSDavid du Colombier	- Clipping with a rectangle usually created a 3-rectangle clipping
22087dd7cddfSDavid du Colombierlist, slowing down all drawing operations (performance bug only).
22097dd7cddfSDavid du Colombier(gxacpath.c)
22107dd7cddfSDavid du Colombier	- stroking in a rotated coordinate system sometimes thought lines
22117dd7cddfSDavid du Colombierwere always thin when they actually weren't.  (gxstroke.c)
22127dd7cddfSDavid du Colombier	- An unsigned quantity wasn't properly converted to signed, possibly
22137dd7cddfSDavid du Colombiercausing band path coordinates to get mangled.  (gxclread.c)
22147dd7cddfSDavid du Colombier	- A bug in the Borland compiler caused an unsigned quantity to be
22157dd7cddfSDavid du Colombierinterpreted as signed, causing band path coordinates to get mangled.
22167dd7cddfSDavid du Colombier(gxclread.c)
22177dd7cddfSDavid du Colombier
22187dd7cddfSDavid du ColombierChanges structure type pointers on 16-bit segmented systems to full
22197dd7cddfSDavid du Colombier32-bit pointers.  This will increase time and space requirements very
22207dd7cddfSDavid du Colombierslightly on these systems.  (gsmemory.h, gxobj.h)
22217dd7cddfSDavid du Colombier
22227dd7cddfSDavid du ColombierChanges the memory manager so that object finalization code may safely free
22237dd7cddfSDavid du Colombierobjects.  (gsmemory.h, gsstruct.h, gsalloc.c, gsmemory.c)
22247dd7cddfSDavid du Colombier
22257dd7cddfSDavid du ColombierRefactors the Type 1 CharString interpreter so it can be included in
22267dd7cddfSDavid du Colombierthe imager library.  (gstype1.h, gxtype1.h, gstype1.c)
22277dd7cddfSDavid du Colombier
22287dd7cddfSDavid du ColombierStarts to refactor the implementation of band lists in memory so that it can
22297dd7cddfSDavid du Colombieruse any encoding/decoding filter.  Currently this choice is made at compile
22307dd7cddfSDavid du Colombiertime, but it could easily be made dynamic.  (gxclmem.h, gxclmem.c)
22317dd7cddfSDavid du Colombier
22327dd7cddfSDavid du ColombierStarts to refactor image rendering so that, like path filling and stroking,
22337dd7cddfSDavid du Colombierit only uses imager state and can be done after banding.  (gxcmap.h,
22347dd7cddfSDavid du Colombiergxdraw.h, gximage.h, gsimage*.c, gxcmap.c)
22357dd7cddfSDavid du Colombier
22367dd7cddfSDavid du ColombierSpeeds up copy_mono for 2-bit-per-pixel devices a little.  (gdevm2.c)
22377dd7cddfSDavid du Colombier
22387dd7cddfSDavid du ColombierImplements an optimized copy_alpha for 24-bit memory devices.  (gdevmem.h,
22397dd7cddfSDavid du Colombiergdevm24.c)
22407dd7cddfSDavid du Colombier
22417dd7cddfSDavid du ColombierSpeeds up filling rectangles significantly.  (gsbitops.c)
22427dd7cddfSDavid du Colombier
22437dd7cddfSDavid du ColombierChanges the band list rasterizer to use the memory space of the device
22447dd7cddfSDavid du Colombierrather than the C heap: our allocator is considerably faster than malloc.
22457dd7cddfSDavid du Colombier(gxclread.c)
22467dd7cddfSDavid du Colombier
22477dd7cddfSDavid du ColombierSpeeds up stroking a little, especially in 90 degree rotated coordinate
22487dd7cddfSDavid du Colombiersystems.  (gxstroke.c)
22497dd7cddfSDavid du Colombier
22503ff48bf5SDavid du Colombier</pre>
22517dd7cddfSDavid du Colombier
22523ff48bf5SDavid du Colombier<h2><a name="Version3.64"></a>Version 3.64 (limited, incremental) (1/27/96)</h2>
22533ff48bf5SDavid du Colombier
22543ff48bf5SDavid du Colombier<p>
22557dd7cddfSDavid du ColombierThis release fixes a few more bugs, including some serious bugs in band
22567dd7cddfSDavid du Colombierlists, and adds pdfmark processing to the PDF writer.  The PDF writer is
22577dd7cddfSDavid du Colombierstill not fit for real use, since it converts all text characters into 720
22587dd7cddfSDavid du Colombierdpi bitmaps and turns images into zillions of tiny rectangles (!), but it
22597dd7cddfSDavid du Colombiershould be producing legal output.
22607dd7cddfSDavid du Colombier
22613ff48bf5SDavid du Colombier<h3><a name="V3.64_Documentation"></a>Documentation</h3><pre>
22627dd7cddfSDavid du ColombierFixes bugs:
22637dd7cddfSDavid du Colombier	- Frans van Hoesel's e-mail address was incorrect.  (gdevdjet.c)
22647dd7cddfSDavid du Colombier	- The man page for ansi2knr was out of date.  (ansi2knr.1)
22657dd7cddfSDavid du Colombier	- The description of a procedure was out of date.  (gxdcolor.h)
22667dd7cddfSDavid du Colombier
22677dd7cddfSDavid du ColombierNotes that several "optional" features are required in order to obtain the
22687dd7cddfSDavid du Colombierfull PostScript Level 1 functionality at the library level.  (lib.doc)
22697dd7cddfSDavid du Colombier
22707dd7cddfSDavid du ColombierDocuments the top-level interpreter API.  (imain.h)
22717dd7cddfSDavid du Colombier
22727dd7cddfSDavid du ColombierAdds details on differences between the imager API and the PostScript
22737dd7cddfSDavid du Colombiergraphics operators.  (lib.doc)
22747dd7cddfSDavid du Colombier
22757dd7cddfSDavid du ColombierNotes (here, in NEWS) that the change for device prototypes in 3.61 made the
22767dd7cddfSDavid du Colombierprotection attributes of a device significant for the first time.  Only the
22777dd7cddfSDavid du Colombierwritable attribute is significant so far.  (news)
22787dd7cddfSDavid du Colombier
22793ff48bf5SDavid du Colombier</pre><h3><a name="V3.64_Procedures"></a>Procedures</h3><pre>
22807dd7cddfSDavid du Colombier
22817dd7cddfSDavid du ColombierFixes bugs:
22827dd7cddfSDavid du Colombier	- The .dev rules in the library makefiles didn't list echogs as a
22837dd7cddfSDavid du Colombierdependency.  (jpeg.mak, libpng.mak, zlib.mak)
22847dd7cddfSDavid du Colombier	- The install rule tried to install gs.1.1 etc. rather than gs.1
22857dd7cddfSDavid du Colombieretc.  (unix-end.mak)
22867dd7cddfSDavid du Colombier	- The install rule tried to install some nonexistent *.1 files.
22877dd7cddfSDavid du Colombier(unix-end.mak)
22887dd7cddfSDavid du Colombier
22897dd7cddfSDavid du ColombierAdds 'help' and '?' procedures to assist users who don't read the
22907dd7cddfSDavid du Colombierdocumentation.  (gs_init.ps)
22917dd7cddfSDavid du Colombier
22927dd7cddfSDavid du ColombierAdds -A-, -E-, and -Z-... to turn off debugging flags.  (gs.c)
22937dd7cddfSDavid du Colombier
22947dd7cddfSDavid du ColombierAdds a -dDELAYBIND switch to delay binding operators, to allow special
22957dd7cddfSDavid du Colombierpackages like pstotext to redefine them.  (gs_init.ps)
22967dd7cddfSDavid du Colombier
22973ff48bf5SDavid du Colombier</pre><h3><a name="V3.64_Utilities"></a>Utilities</h3><pre>
22987dd7cddfSDavid du Colombier
22997dd7cddfSDavid du ColombierFixes bugs:
23007dd7cddfSDavid du Colombier	- Fonts produced by rollconv.ps left a couple of items on the
23017dd7cddfSDavid du Colombieroperand stack, and left array packing set to true.  (rollconv.ps)
23027dd7cddfSDavid du Colombier
23037dd7cddfSDavid du ColombierMakes ansi2knr require that the first token after a function header be a
23047dd7cddfSDavid du Colombierleft brace on the next line, so it can cope with some macros in IJG release
23057dd7cddfSDavid du Colombier6a.  Also updates it to work better without the GNU configure machinery, and
23067dd7cddfSDavid du Colombieron some old compilers.  (ansi2knr.c)
23077dd7cddfSDavid du Colombier
23087dd7cddfSDavid du ColombierChanges align.ps so it can be used directly to determine the margin
23097dd7cddfSDavid du Colombierparameters.  (align.ps, psfiles.doc)
23107dd7cddfSDavid du Colombier
23113ff48bf5SDavid du Colombier</pre><h3><a name="V3.64_Drivers"></a>Drivers</h3><pre>
23127dd7cddfSDavid du Colombier
23137dd7cddfSDavid du ColombierFixes bugs:
23147dd7cddfSDavid du Colombier	- The TIFF/F (G3 and G4) drivers were broken (bug introduced in
23157dd7cddfSDavid du Colombier3.60).  (gdevtfax.c)
23167dd7cddfSDavid du Colombier	- The PDF writer produced invalid output for 0-width, 0-height
23177dd7cddfSDavid du Colombierimages.  (gdevpdfi.c)
23187dd7cddfSDavid du Colombier	- The PDF writer wasn't a page device.  (gdevpdf.c)
23197dd7cddfSDavid du Colombier	- The PDF writer assigned the Contents node rather than the Pages
23207dd7cddfSDavid du Colombiernode as the Parent of each page.  (gdevpdfx.h, gdevpdf.c)
23217dd7cddfSDavid du Colombier
23227dd7cddfSDavid du ColombierCorrects the margin information for the DeskJet printers to be the actual
23237dd7cddfSDavid du Colombiervalues observed on a printer; all of the values in the file were wrong.
23247dd7cddfSDavid du Colombier(gdevdjet.c)
23257dd7cddfSDavid du Colombier
23267dd7cddfSDavid du ColombierAdds pdfmark recognition and conversion to the PDF writer.  All documented
23277dd7cddfSDavid du Colombierpdfmarks (ANN, ARTICLE, DEST, DOCINFO, DOCVIEW, LNK, OUT, PAGE, PAGES, PS)
23287dd7cddfSDavid du Colombierare recognized and converted, but some of them are not converted correctly.
23297dd7cddfSDavid du Colombier(gs_pdfwr.ps, gdevpdfx.h, gdevpdf.c, gdevpdfm.c)
23307dd7cddfSDavid du Colombier
23317dd7cddfSDavid du ColombierAdds recognition of all Distiller parameters, except *ImageDict, to the PDF
23327dd7cddfSDavid du Colombierwriter.  Currently only ASCII85EncodePages actually has any effect.
23337dd7cddfSDavid du Colombier(gs_pdfwr.ps, gdevpdfx.h, gdevpdfp.c)
23347dd7cddfSDavid du Colombier
23357dd7cddfSDavid du ColombierEnsures that PDF output files include at least a default Info dictionary.
23367dd7cddfSDavid du Colombier(gdevpdf.c)
23377dd7cddfSDavid du Colombier
23387dd7cddfSDavid du ColombierChanges the handling of coordinates in PDF output files so that the scale is
23397dd7cddfSDavid du Colombieralways 72 dpi, and so that each graphics operator is on a line by itself,
23407dd7cddfSDavid du Colombierfor compatibility with Adobe Illustrator.  (gdevpdfx.h, gdevpdf*.c)
23417dd7cddfSDavid du Colombier
23427dd7cddfSDavid du ColombierAdds a driver for ImageMagick's MIFF format.  The driver currently only
23437dd7cddfSDavid du Colombierproduces 24-bit, direct color, RLE compressed output.  (gdevmiff.c)
23447dd7cddfSDavid du Colombier
23453ff48bf5SDavid du Colombier</pre><h3><a name="V3.64_Platforms"></a>Platforms</h3><pre>
23467dd7cddfSDavid du Colombier
23477dd7cddfSDavid du ColombierChanges the gp_check_interrupts platform procedure so that instead of just
23487dd7cddfSDavid du Colombierreturning a Boolean, it can now also return a negative error code.  THIS IS
23497dd7cddfSDavid du Colombier(THEORETICALLY) A NON-BACKWARD-COMPATIBLE CHANGE.  However, since all
23507dd7cddfSDavid du Colombierimplementations of this procedure should only have been returning 0 or 1 up
23517dd7cddfSDavid du Colombierto now, no existing code should need to be changed.  (gpcheck.h, gsmisc.c)
23527dd7cddfSDavid du Colombier
23533ff48bf5SDavid du Colombier</pre><h3><a name="V3.64_Interpreter"></a>Interpreter</h3><pre>
23547dd7cddfSDavid du Colombier
23557dd7cddfSDavid du ColombierFixes bugs:
23567dd7cddfSDavid du Colombier	- devicenames was accidentally deleted.  (gs_init.ps)
23577dd7cddfSDavid du Colombier	- -dFAKEFONTS could cause the memory manager to waste a lot of time.
23587dd7cddfSDavid du Colombier(gs_dps1.ps)
23597dd7cddfSDavid du Colombier	- Using -r or -dFIXEDMEDIA with a non-page device caused an error.
23607dd7cddfSDavid du Colombier(gs_init.ps)
23617dd7cddfSDavid du Colombier	- A VMS compiler reserves the word "readonly", which was used as a
23627dd7cddfSDavid du Colombierparameter name.  (imain.h, gsmain.c)
23637dd7cddfSDavid du Colombier	- A garbage collection during the execution of x/y/xyshow with an
23647dd7cddfSDavid du Colombierarray providing the values could get confused.  (ibnum.h, ichar.h, stream.h,
23657dd7cddfSDavid du Colombieribnum.c, iscanbin.c, zchar.c, zchar2.c, zdps1.c, zupath.c)
23667dd7cddfSDavid du Colombier	- Errors in encoded number strings produced a typecheck rather than
23677dd7cddfSDavid du Colombiera rangecheck error.  (ibnum.c, zupath.c)
23687dd7cddfSDavid du Colombier
23697dd7cddfSDavid du ColombierUpdates the DCT filters for IJG release 6a.  (zfdctc.c)
23707dd7cddfSDavid du Colombier
23717dd7cddfSDavid du ColombierProvides an API call for getting the real stdio files.  (imain.h,
23727dd7cddfSDavid du Colombiergs.c, gsmain.c)
23737dd7cddfSDavid du Colombier
23743ff48bf5SDavid du Colombier</pre><h3><a name="V3.64_Streams"></a>Streams</h3><pre>
23757dd7cddfSDavid du Colombier
23767dd7cddfSDavid du ColombierFixes bugs:
23777dd7cddfSDavid du Colombier	- If the CCITTFaxEncode stream encountered an output buffer boundary
23787dd7cddfSDavid du Colombierwhile processing the last scan line of input, it could fail to process some
23797dd7cddfSDavid du Colombierthe scan line.  (scfe.c)
23807dd7cddfSDavid du Colombier	- A couple of pointers weren't always initialized, possibly
23817dd7cddfSDavid du Colombierconfusing the garbage collector.  (stream.c)
23827dd7cddfSDavid du Colombier	- The weighting coefficient structures used for image scaling
23837dd7cddfSDavid du Colombierweren't declared properly for the garbage collector.  (siscale.h, siscale.c)
23847dd7cddfSDavid du Colombier
23853ff48bf5SDavid du Colombier</pre><h3><a name="V3.64_Library"></a>Library</h3><pre>
23867dd7cddfSDavid du Colombier
23877dd7cddfSDavid du ColombierFixes bugs:
23887dd7cddfSDavid du Colombier	- Unrotated patterns always used the bounding box size as the step,
23897dd7cddfSDavid du Colombierrather than XStep/YStep.  (gspcolor.c)
23907dd7cddfSDavid du Colombier	- Alpha computations for graphics could be seriously incorrect (bug
23917dd7cddfSDavid du Colombierintroduced in 3.6x).  (gdevabuf.c)
23927dd7cddfSDavid du Colombier	- The length of the next_data_x command for the fill_mask operation
23937dd7cddfSDavid du Colombierwas incorrect, causing the band list to become confused (bug introduced in
23947dd7cddfSDavid du Colombier3.63).  (gxclpath.c)
23957dd7cddfSDavid du Colombier	- An extern was omitted, causing linker warnings.  (gxdevice.h)
23967dd7cddfSDavid du Colombier	- RasterOps could cause an invalid access because the palette
23977dd7cddfSDavid du Colombierfor a memory device wasn't set.  (gdevmrop.c)
23987dd7cddfSDavid du Colombier	- gximage.h was included unnecessarily.  (gspaint.c)
23997dd7cddfSDavid du Colombier	- Color screens caused a segmentation fault (bug introduced in
24007dd7cddfSDavid du Colombier3.6x).  (gxcht.c)
24017dd7cddfSDavid du Colombier	- cshow returned the width in an incorrect coordinate system.
24027dd7cddfSDavid du Colombier(gscoord.h, gschar.c)
24037dd7cddfSDavid du Colombier	- Filling or stroking a path that lay entirely off the page in the
24047dd7cddfSDavid du Colombier+X or +Y direction could corrupt memory (bug introduced in 3.6x).
24057dd7cddfSDavid du Colombier(gxclpath.c)
24067dd7cddfSDavid du Colombier	- When banding, painting characters with halftones produced random
24077dd7cddfSDavid du Colombierresults (bug introduced in 3.6x).  (gxclpath.c)
24087dd7cddfSDavid du Colombier	- When banding, characters could get clipped when they shouldn't be
24097dd7cddfSDavid du Colombier(bug introduced in 3.6x).  (gxclpath.c)
24107dd7cddfSDavid du Colombier	- The default implementation of fill_mask could discard clipped
24117dd7cddfSDavid du Colombierbitmaps (bug introduced in 3.6x).  (gdevdflt.c)
24127dd7cddfSDavid du Colombier	- Non-halftoned 24-bit colors could get garbled when banding (bug
24137dd7cddfSDavid du Colombierintroduced in 3.6x).  (gxclist.c)
24147dd7cddfSDavid du Colombier	- When banding, if a stroked path had subpaths that fell entirely
24157dd7cddfSDavid du Colombieroutside the current band, the rest of the path was drawn in the wrong place
24167dd7cddfSDavid du Colombier(bug introduced in 3.6x).  (gxclpath.c)
24177dd7cddfSDavid du Colombier
24187dd7cddfSDavid du ColombierSpeeds up image interpolation on machines with slow floating point.
24197dd7cddfSDavid du Colombier(siscale.h, siscale.c)
24207dd7cddfSDavid du Colombier
24217dd7cddfSDavid du ColombierSpeeds up interpolated images when using device color spaces.  (gxcvalue.h,
24227dd7cddfSDavid du Colombiergxfrac.h, gdevht.c, gxcmap.c, gsimage.c, gsimage3.c)
24237dd7cddfSDavid du Colombier
24247dd7cddfSDavid du ColombierSpeeds up color mapping a little by removing tests and calls in favor of
24257dd7cddfSDavid du Colombiercode copying.  (gxcmap.c)
24267dd7cddfSDavid du Colombier
24277dd7cddfSDavid du ColombierImplements RasterOp for 24-bit RGB devices.  (gdevm8.c, gdevm24.c,
24287dd7cddfSDavid du Colombiergdevmrop.c)
24297dd7cddfSDavid du Colombier
24303ff48bf5SDavid du Colombier</pre>
24317dd7cddfSDavid du Colombier
24323ff48bf5SDavid du Colombier<h2><a name="Version3.63"></a>Version 3.63 (limited, incremental) (1/14/96)</h2>
24333ff48bf5SDavid du Colombier
24343ff48bf5SDavid du Colombier<p>
24357dd7cddfSDavid du ColombierThis release has the usual collection of bug fixes, and two significant
24367dd7cddfSDavid du Colombieradditions: AccurateScreens, and the first draft of a PostScript-&gt;PDF
24377dd7cddfSDavid du Colombierconverter ("distiller").
24387dd7cddfSDavid du Colombier
24393ff48bf5SDavid du Colombier<h3><a name="V3.63_Documentation"></a>Documentation</h3><pre>
24407dd7cddfSDavid du ColombierFixes bugs:
24417dd7cddfSDavid du Colombier	- Some documentation for pstoppm.ps was out of date.  (psfiles.doc)
24427dd7cddfSDavid du Colombier	- Documentation for acctest.ps, view*.ps, and zeroline.ps was
24437dd7cddfSDavid du Colombiermissing.  (psfiles.doc)
24447dd7cddfSDavid du Colombier	- The documentation for rollconv.ps omitted the .CSR file.
24457dd7cddfSDavid du Colombier(rollconv.ps)
24467dd7cddfSDavid du Colombier
24477dd7cddfSDavid du ColombierRemoves an inappropriate RCS Id line.  (gs.1)
24487dd7cddfSDavid du Colombier
24497dd7cddfSDavid du ColombierAdds a list of paper sizes to the man page.  (gs.1)
24507dd7cddfSDavid du Colombier
24517dd7cddfSDavid du ColombierSuggests that driver authors use parameterization rather than copying when
24527dd7cddfSDavid du Colombierpossible.  (drivers.doc)
24537dd7cddfSDavid du Colombier
24547dd7cddfSDavid du ColombierAdds an announcement of Ghostscript support on CompuServe.  (README)
24557dd7cddfSDavid du Colombier
24567dd7cddfSDavid du ColombierDocuments the new -dCOLORSCREEN switch and the existing -dDITHERPPI=lpi
24577dd7cddfSDavid du Colombierswitch.  (use.doc)
24587dd7cddfSDavid du Colombier
24597dd7cddfSDavid du ColombierNotes that the OS/2 implementation now requires EMX/GCC 0.9b rather than
24607dd7cddfSDavid du Colombier0.9a.  (install.doc)
24617dd7cddfSDavid du Colombier
24627dd7cddfSDavid du ColombierAdds some new man pages.  (pdf2ps.1, ps2ascii.1)
24637dd7cddfSDavid du Colombier
24647dd7cddfSDavid du ColombierGreatly expands lib.doc.  (lib.doc)
24657dd7cddfSDavid du Colombier
24663ff48bf5SDavid du Colombier</pre><h3><a name="V3.63_Procedures"></a>Procedures</h3><pre>
24677dd7cddfSDavid du Colombier
24687dd7cddfSDavid du ColombierFixes bugs:
24697dd7cddfSDavid du Colombier	- The pg target for Unix platforms didn't include some necessary
24707dd7cddfSDavid du Colombieradditional X11 libraries.  (unix-end.mak)
24717dd7cddfSDavid du Colombier	- The Unix library makefile didn't define CCAUX or CCLEAF.
24727dd7cddfSDavid du Colombier(ugcclib.mak)
24737dd7cddfSDavid du Colombier	- Unix systems didn't `install' some .ps files.  (unix-end.mak)
24747dd7cddfSDavid du Colombier
24757dd7cddfSDavid du ColombierExtends genconf so that features at the library level can have
24767dd7cddfSDavid du Colombierinitialization procedures.  (gconf.c, genconf.c, gsinit.c)
24777dd7cddfSDavid du Colombier
24787dd7cddfSDavid du ColombierAdds a -dCOLORSCREEN[=false] switch to force enabling or disabling of
24797dd7cddfSDavid du Colombier4-color screens.  (gs_init.ps, gs_setpd.ps)
24807dd7cddfSDavid du Colombier
24813ff48bf5SDavid du Colombier</pre><h3><a name="V3.63_Utilities"></a>Utilities</h3><pre>
24827dd7cddfSDavid du Colombier
24837dd7cddfSDavid du ColombierFixes bugs:
24847dd7cddfSDavid du Colombier	- The prfont utility didn't leave enough of a margin on the left.
24857dd7cddfSDavid du Colombier(prfont.ps)
24867dd7cddfSDavid du Colombier	- The ps2ascii utility still created files _temp_.out and _temp_.err
24877dd7cddfSDavid du Colombiereven though they are no longer used.  (ps2ascii.ps)
24887dd7cddfSDavid du Colombier	- The acctest.ps file was empty, rather than including a test
24897dd7cddfSDavid du Colombierprogram.  (acctest.ps)
24907dd7cddfSDavid du Colombier
24917dd7cddfSDavid du ColombierAdds ps2pdf[.bat] scripts for invoking the new pdfwrite driver.  (ps2pdf,
24927dd7cddfSDavid du Colombierps2pdf.bat, unix-end.mak)
24937dd7cddfSDavid du Colombier
24943ff48bf5SDavid du Colombier</pre><h3><a name="V3.63_Drivers"></a>Drivers</h3><pre>
24957dd7cddfSDavid du Colombier
24967dd7cddfSDavid du ColombierFixes bugs:
24977dd7cddfSDavid du Colombier	- The x11alpha driver had a patch that suppressed output in many
24987dd7cddfSDavid du Colombiercases.  (gdevxalt.c)
24997dd7cddfSDavid du Colombier	- The X driver set up a parameter incorrectly in copy_color.
25007dd7cddfSDavid du Colombier(gdevx.c)
25017dd7cddfSDavid du Colombier	- An explicit cast was needed to handle a 'const' problem.
25027dd7cddfSDavid du Colombier(gdevpng.c)
25037dd7cddfSDavid du Colombier
25047dd7cddfSDavid du ColombierAdds a pdfwrite driver that creates syntactically correct PDF output.  The
25057dd7cddfSDavid du Colombieroutput is only reasonable for fill/stroke graphics, not for text or images.
25067dd7cddfSDavid du Colombier(iscan.h, sa85x.h, sfilter.h, gdevpdf.c, sfilter2.c, zfdecode.c)
25077dd7cddfSDavid du Colombier
25083ff48bf5SDavid du Colombier</pre><h3><a name="V3.63_Platforms"></a>Platforms</h3><pre>
25097dd7cddfSDavid du Colombier
25107dd7cddfSDavid du ColombierFixes bugs:
25117dd7cddfSDavid du Colombier	- The test for WinExec failure on Win32 was incorrect.  (gp_mswin.c)
25127dd7cddfSDavid du Colombier	- getenv was declared redundantly on OS/2.  (gp_os2.c)
25137dd7cddfSDavid du Colombier	- gs16spl.c was missing &lt;string.h&gt;.  (gs16spl.c)
25147dd7cddfSDavid du Colombier
25153ff48bf5SDavid du Colombier</pre><h3><a name="V3.63_Interpreter"></a>Interpreter</h3><pre>
25167dd7cddfSDavid du Colombier
25177dd7cddfSDavid du ColombierFixes bugs:
25187dd7cddfSDavid du Colombier	- Images read data in smaller and smaller increments (performance
25197dd7cddfSDavid du Colombierbug only).  (zpaint.c)
25207dd7cddfSDavid du Colombier	- Images with MultipleDataSources=true and two or more DataSources
25217dd7cddfSDavid du Colombierreferencing the same stream could get confused.  (zpaint.c)
25227dd7cddfSDavid du Colombier	- Invoking setpagedevice with an undefined key, even with Policy =
25237dd7cddfSDavid du Colombier1, caused an error.  (gs_setpd.ps)
25247dd7cddfSDavid du Colombier	- IEEE floats in binary tokens or encoded number strings were read
25257dd7cddfSDavid du Colombierincorrectly on CPUs that use non-IEEE floating point.  (ibnum.c)
25267dd7cddfSDavid du Colombier
25277dd7cddfSDavid du ColombierAdds a 'const' to the second parameter of zimage_setup.  (zimage2.c,
25287dd7cddfSDavid du Colombierzpaint.c)
25297dd7cddfSDavid du Colombier
25307dd7cddfSDavid du ColombierEncapsulates the filling of free memory blocks in a macro.  (igc.c,
25317dd7cddfSDavid du Colombierigcstr.c)
25327dd7cddfSDavid du Colombier
25333ff48bf5SDavid du Colombier</pre><h3><a name="V3.63_Interpreter_PDF"></a>Interpreter (PDF)</h3><pre>
25347dd7cddfSDavid du Colombier
25357dd7cddfSDavid du ColombierFixes bugs:
25367dd7cddfSDavid du Colombier	- If the first line of a file began with % but the line was longer
25377dd7cddfSDavid du Colombierthan 255 characters, an error occurred.  (pdf_main.ps)
25387dd7cddfSDavid du Colombier	- Masked images didn't set the color before drawing.  (gs_pdf.ps)
25397dd7cddfSDavid du Colombier	- Extraneous blank lines in the trailer or cross-reference region
25407dd7cddfSDavid du Colombiercaused an error.  (pdf_base.ps, pdf_main.ps)
25417dd7cddfSDavid du Colombier
25423ff48bf5SDavid du Colombier</pre><h3><a name="V3.63_Streams"></a>Streams</h3><pre>
25437dd7cddfSDavid du Colombier
25447dd7cddfSDavid du ColombierSpeeds up image interpolation a little.  Much more could be still be done.
25457dd7cddfSDavid du Colombier(siscale.c)
25467dd7cddfSDavid du Colombier
25473ff48bf5SDavid du Colombier</pre><h3><a name="V3.63_Library"></a>Library</h3><pre>
25487dd7cddfSDavid du Colombier
25497dd7cddfSDavid du ColombierFixes bugs:
25507dd7cddfSDavid du Colombier	- An error in handling a boundary condition could cause a horizontal
25517dd7cddfSDavid du Colombierstreak of pixels to be turned on or off when it shouldn't be.  (gxfill.c)
25527dd7cddfSDavid du Colombier	- The new scan-line-based filling loop could write pixels twice.
25537dd7cddfSDavid du Colombier(The old trapezoid-based loop still does write pixels twice.)  (gxfill.c)
25547dd7cddfSDavid du Colombier	- For multi-plane images, gs_image_next only sets *pused for the
25557dd7cddfSDavid du Colombierlast plane; this wasn't documented.  (gsimage.h)
25567dd7cddfSDavid du Colombier	- Images with MultipleDataSources=true and two or more DataSources
25577dd7cddfSDavid du Colombierreferencing the same stream could get confused.  (gsimage.h, gsimage0.c)
25587dd7cddfSDavid du Colombier	- 12-bit gray images caused an invalid memory access.  (gsimage.c)
25597dd7cddfSDavid du Colombier	- Nearly-zero-thickness lines didn't get filled, because the hack
25607dd7cddfSDavid du Colombierthat compensates for this peculiarity of the MS Windows PostScript driver
25617dd7cddfSDavid du Colombieraccidentally got disabled.  (gxfill.c)
25627dd7cddfSDavid du Colombier	- Some casts to remove 'const' were omitted.  (gxclread.c)
25637dd7cddfSDavid du Colombier	- 1-line-high bitmaps could get written in the band list with an
25647dd7cddfSDavid du Colombierinconsistent number of bytes, causing errors when reading.  (gxcldev.h,
25657dd7cddfSDavid du Colombiergxclbits.c, gxclist.c, gxclpath.c, gxclread.c)
25667dd7cddfSDavid du Colombier	- Isolated dots produced by round caps usually disappeared.  (They
25677dd7cddfSDavid du Colombierstill disappear sometimes.)  (gxstroke.c)
25687dd7cddfSDavid du Colombier	- On 16-bit platforms, the computation of t2 and t3 in
25697dd7cddfSDavid du Colombiergx_curve_x_at_y could overflow, leading to incorrect output.  (gxpcopy.c)
25707dd7cddfSDavid du Colombier	- Stroking horizontal or vertical lines could produce variations of
25717dd7cddfSDavid du Colombier1 pixel in the line width.  (gxstroke.c)
25727dd7cddfSDavid du Colombier	- The default clipping region for band rendering was too large,
25737dd7cddfSDavid du Colombierleading to wasted work.  (gxclread.c)
25747dd7cddfSDavid du Colombier	- Guarantees no double pixel writing when necessary, i.e., when a
25757dd7cddfSDavid du Colombiernon-idempotent RasterOp is selected.  (gsropt.h, gxfill.c)
25767dd7cddfSDavid du Colombier	- For unrotated black-and-white images, one column of pixels at the
25777dd7cddfSDavid du Colombierright edge of the image might be incorrect.  (gsimage1.c)
25787dd7cddfSDavid du Colombier	- A const pointer was passed inappropriately.  (gxistate.h,
25797dd7cddfSDavid du Colombiergscoord.c)
25807dd7cddfSDavid du Colombier	- CIE color conversion could address 1 element beyond the end of an
25817dd7cddfSDavid du Colombierarray, with unpredictable results.  (gscie.c)
25827dd7cddfSDavid du Colombier
25837dd7cddfSDavid du ColombierSeparates out the higher-level band list facilities, so they can be an
25847dd7cddfSDavid du Colombieroptional feature.  (lib.mak, gxcldev.h, gxclpath.h, gxclbits.c, gxclist.c,
25857dd7cddfSDavid du Colombiergxclpath.c, gxclread.c)
25867dd7cddfSDavid du Colombier
25877dd7cddfSDavid du ColombierImplements bitmap (fill_mask) clipping in the band list.  (gxcldev.h,
25887dd7cddfSDavid du Colombiergxclpath.h, gxclist.c, gxclpath.c, gxclread.c)
25897dd7cddfSDavid du Colombier
25907dd7cddfSDavid du ColombierStarts to separate out the RasterOp facility as an optional feature.
25917dd7cddfSDavid du Colombier(lib.mak, gxdevice.h, gxdevrop.h, gdevdflt.c, gdevmrop.c)
25927dd7cddfSDavid du Colombier
25937dd7cddfSDavid du ColombierEncapsulates the filling of free memory blocks in a macro, at the request of
25947dd7cddfSDavid du Colombiera licensee.  (gdebug.h, gsmdebug.h, gsmemory.h, gs.c, gsalloc.c, gsmemory.c,
25957dd7cddfSDavid du Colombiergxbcache.c)
25967dd7cddfSDavid du Colombier
25977dd7cddfSDavid du ColombierSpeeds up fill_rectangle for 32-bit devices.  (gdevm32.c)
25987dd7cddfSDavid du Colombier
25997dd7cddfSDavid du ColombierSpeeds up path writing in band lists a little.  (gxclpath.c)
26007dd7cddfSDavid du Colombier
26017dd7cddfSDavid du ColombierImplements AccurateScreens along the lines described in the Adobe
26027dd7cddfSDavid du Colombierdocumentation.  The current implementation can produce very large
26037dd7cddfSDavid du Colombiersuper-cells, so it will not always be able to actually increase the screen
26047dd7cddfSDavid du Colombieraccuracy.  (gxdht.h, gsht.c, gshtscr.c)
26057dd7cddfSDavid du Colombier
26063ff48bf5SDavid du Colombier</pre>
26077dd7cddfSDavid du Colombier
26083ff48bf5SDavid du Colombier<h2><a name="Version3.62"></a>Version 3.62 (limited, incremental) (12/26/95)</h2>
26093ff48bf5SDavid du Colombier
26103ff48bf5SDavid du Colombier<p>
26117dd7cddfSDavid du ColombierThis release makes some licensee-requested improvements in the garbage
26127dd7cddfSDavid du Colombiercollector and fixes a couple of minor bugs.  It also constitutes a
26137dd7cddfSDavid du Colombiercheckpoint for the forthcoming forked 3.53 release.
26147dd7cddfSDavid du Colombier
26153ff48bf5SDavid du Colombier<h3><a name="V3.62_Documentation"></a>Documentation</h3><pre>
26167dd7cddfSDavid du ColombierNotes that for Win32s, gs16spl.exe must be in the same directory as
26177dd7cddfSDavid du Colombiergswin32.exe.  (install.doc)
26187dd7cddfSDavid du Colombier
26197dd7cddfSDavid du ColombierChanges `3.N' to a real version number in the man page.  (gs.1)
26207dd7cddfSDavid du Colombier
26217dd7cddfSDavid du ColombierAdds a reference to dos-psv, another "dumb terminal" user interface for
26227dd7cddfSDavid du ColombierGhostscript intended for MS-DOS users.  (README)
26237dd7cddfSDavid du Colombier
26243ff48bf5SDavid du Colombier</pre><h3><a name="V3.62_Procedures"></a>Procedures</h3><pre>
26257dd7cddfSDavid du Colombier
26267dd7cddfSDavid du ColombierFixes bugs:
26277dd7cddfSDavid du Colombier	- The stack size for some of the PC platforms was set too small.
26287dd7cddfSDavid du Colombier(watc.mak, watcwin.mak)
26297dd7cddfSDavid du Colombier
26307dd7cddfSDavid du ColombierChanges the default value of ORIENT1 from false to true, i.e., assumes that
26317dd7cddfSDavid du Colombiera value of 1 for the orientation parameter of setpageparams indicates
26327dd7cddfSDavid du Colombierportrait orientation.  THIS IS A NON-BACKWARD-COMPATIBLE CHANGE.  It only
26337dd7cddfSDavid du Colombieraffects files created for roll-media imagesetters.  (gs_init.ps, use.doc)
26347dd7cddfSDavid du Colombier
26353ff48bf5SDavid du Colombier</pre><h3><a name="V3.62_Interpreter"></a>Interpreter</h3><pre>
26367dd7cddfSDavid du Colombier
26377dd7cddfSDavid du ColombierFixes bugs:
26387dd7cddfSDavid du Colombier	- The definition of the op_index_op_array_table macro had an
26397dd7cddfSDavid du Colombierincorrect trailing semicolon.  (opdef.h)
26407dd7cddfSDavid du Colombier	- Setting the PageSize policy to 1 and then trying to set the page
26417dd7cddfSDavid du Colombiersize caused an error if FIXEDMEDIA was selected.  (gs_setpd.ps)
26427dd7cddfSDavid du Colombier
26437dd7cddfSDavid du ColombierChanges the garbage collector marking phase so that instead of just using a
26447dd7cddfSDavid du Colombiersingle block (allocated, free, or default) for the mark stack, it can chain
26457dd7cddfSDavid du Colombierall three types of block together.  (igc.h, igc.c, igcstr.c, ilocate.c)
26467dd7cddfSDavid du Colombier
26477dd7cddfSDavid du ColombierRefactors the garbage collector slightly to reduce inter-module
26487dd7cddfSDavid du Colombierdependencies.  (int.mak, igc.h, igcstr.h, igcstr.c)
26497dd7cddfSDavid du Colombier
26507dd7cddfSDavid du ColombierChanges the garbage collector to keep track of ranges within each chunk that
26517dd7cddfSDavid du Colombiermust be scanned if the mark stack overflows.  (gxalloc.h, igc.c)
26527dd7cddfSDavid du Colombier
26537dd7cddfSDavid du ColombierAdds [write]===[only] procedures, which act like == but also print the
26547dd7cddfSDavid du Colombiercontents of dictionaries, and ppstack, which acts like pstack but uses ===.
26557dd7cddfSDavid du ColombierChanges ESTACKPRINT and OSTACKPRINT to use === rather than ==.  (gs_init.ps,
26567dd7cddfSDavid du Colombiergs_setpd.ps)
26577dd7cddfSDavid du Colombier
26583ff48bf5SDavid du Colombier</pre><h3><a name="V3.62_Interpreter_PDF"></a>Interpreter (PDF)</h3><pre>
26597dd7cddfSDavid du Colombier
26607dd7cddfSDavid du ColombierFixes bugs:
26617dd7cddfSDavid du Colombier	- If a PDF file substituted a calibrated color space for the
26627dd7cddfSDavid du ColombierDeviceGray or DeviceRGB color space using a ColorSpace resource, the
26637dd7cddfSDavid du ColombierPostScript file that pdf2ps produced from that PDF file caused an error.
26647dd7cddfSDavid du Colombier(gs_pdf.ps)
26657dd7cddfSDavid du Colombier
26663ff48bf5SDavid du Colombier</pre><h3><a name="V3.62_Library"></a>Library</h3><pre>
26677dd7cddfSDavid du Colombier
26687dd7cddfSDavid du ColombierFixes bugs:
26697dd7cddfSDavid du Colombier	- The debugging code for checking the sorting of line lists didn't
26707dd7cddfSDavid du Colombiercheck for an empty list.  (gxfill.c)
26717dd7cddfSDavid du Colombier
26723ff48bf5SDavid du Colombier</pre>
26737dd7cddfSDavid du Colombier
26743ff48bf5SDavid du Colombier<h2><a name="Version3.61"></a>Version 3.61 (limited) (12/10/95)</h2>
26753ff48bf5SDavid du Colombier
26763ff48bf5SDavid du Colombier<p>
26777dd7cddfSDavid du ColombierThis limited release fixes a few bugs (including a couple that significantly
26787dd7cddfSDavid du Colombieraffected character quality) and also includes some substantial performance
26797dd7cddfSDavid du Colombierimprovements.
26807dd7cddfSDavid du Colombier
26813ff48bf5SDavid du Colombier<h3><a name="V3.61_Documentation"></a>Documentation</h3><pre>
26827dd7cddfSDavid du ColombierFixes bugs:
26837dd7cddfSDavid du Colombier	- The directory name for the PNG library was incorrect.
26847dd7cddfSDavid du Colombier(libpng.mak)
26857dd7cddfSDavid du Colombier	- The analysis of curve monotonocity in gxpcopy.c had an error.
26867dd7cddfSDavid du Colombier(gxpcopy.c)
26877dd7cddfSDavid du Colombier
26887dd7cddfSDavid du ColombierChanges the subdirectory names for zlib and libpng to be consistent.
26897dd7cddfSDavid du Colombier(make.doc)
26907dd7cddfSDavid du Colombier
26917dd7cddfSDavid du ColombierDocuments a possible problem with object file format incompatibilities in
26927dd7cddfSDavid du Colombiercertain versions of Linux.  (make.doc)
26937dd7cddfSDavid du Colombier
26947dd7cddfSDavid du ColombierDocuments the new distinction between devices and device prototypes.
26957dd7cddfSDavid du Colombier(language.doc)
26967dd7cddfSDavid du Colombier
26977dd7cddfSDavid du ColombierAdds a pointer to DEC's free pstotext utility.  (README)
26987dd7cddfSDavid du Colombier
26993ff48bf5SDavid du Colombier</pre><h3><a name="V3.61_Procedures"></a>Procedures</h3><pre>
27007dd7cddfSDavid du Colombier
27017dd7cddfSDavid du ColombierFixes bugs:
27027dd7cddfSDavid du Colombier	- zlib.mak omitted some files in the encoding module dependencies.
27037dd7cddfSDavid du Colombier(zlib.mak)
27047dd7cddfSDavid du Colombier	- os2.mak referred to png.mak rather than libpng.mak.  (os2.mak)
27057dd7cddfSDavid du Colombier	- The png devices didn't include gdevpccm.$(OBJ) as a required file.
27067dd7cddfSDavid du Colombier(devs.mak)
27077dd7cddfSDavid du Colombier	- Some modules in lib.mak referred to stream.h, which was defined in
27087dd7cddfSDavid du Colombierint.mak.  (int.mak, lib.mak)
27097dd7cddfSDavid du Colombier	- Quite a few dependencies on header files were missing from the
27107dd7cddfSDavid du Colombiermakefiles.  (int.mak, lib.mak, *.mak)
27117dd7cddfSDavid du Colombier
27127dd7cddfSDavid du ColombierAdds a 'pg' target to the Unix makefiles, for building profiling
27137dd7cddfSDavid du Colombierconfigurations.  (unix-end.mak)
27147dd7cddfSDavid du Colombier
27153ff48bf5SDavid du Colombier</pre><h3><a name="V3.61_Utilities"></a>Utilities</h3><pre>
27167dd7cddfSDavid du Colombier
27177dd7cddfSDavid du ColombierFixes bugs:
27187dd7cddfSDavid du Colombier	- Type 1 fonts in which some characters are defined by PostScript
27197dd7cddfSDavid du Colombierprocedures couldn't be compiled.  (ccfont.h, iccfont.c, font2c.ps)
27207dd7cddfSDavid du Colombier	- pdf2ps didn't write Widths or Encoding in the converted file,
27217dd7cddfSDavid du Colombierproducing incorrect spacing and incorrect characters.  (pdf_2ps.ps)
27227dd7cddfSDavid du Colombier	- markhint.ps didn't handle the Type 1 'div' operator, causing
27237dd7cddfSDavid du Colombiertypecheck errors.  (markhint.ps)
27247dd7cddfSDavid du Colombier	- markhint.ps ignored the hstem3 and vstem3 hints.  (markhint.ps)
27257dd7cddfSDavid du Colombier
27267dd7cddfSDavid du ColombierChanges the rollconv.ps utility to produce files whose names conform to the
27277dd7cddfSDavid du Colombier8.3 length restriction, and to reduce the fixed RAM overhead for Kanji
27287dd7cddfSDavid du Colombierfonts.  (rollconv.ps)
27297dd7cddfSDavid du Colombier
27307dd7cddfSDavid du ColombierAdds a utility for detecting compiler problems that affect Ghostscript.
27317dd7cddfSDavid du Colombier(bughunt.sh)
27327dd7cddfSDavid du Colombier
27333ff48bf5SDavid du Colombier</pre><h3><a name="V3.61_Drivers"></a>Drivers</h3><pre>
27347dd7cddfSDavid du Colombier
27357dd7cddfSDavid du ColombierAdds anti-aliasing capability (-dTextAlphaBits and -dGraphicsAlphaBits) to
27367dd7cddfSDavid du Colombierthe PGM and PPM drivers.  (gdevpbm.c)
27377dd7cddfSDavid du Colombier
27387dd7cddfSDavid du ColombierDeclares the static_procs member of the device structure as const *.  This
27397dd7cddfSDavid du Colombiershould have been done a long time ago!  (drivers.doc, gxdevice.h)
27407dd7cddfSDavid du Colombier
27413ff48bf5SDavid du Colombier</pre><h3><a name="V3.61_Platforms"></a>Platforms</h3><pre>
27427dd7cddfSDavid du Colombier
27437dd7cddfSDavid du ColombierFixes bugs:
27447dd7cddfSDavid du Colombier	- Printing didn't work in 32-bit MS Windows environments.
27457dd7cddfSDavid du Colombier(bcwin32.mak, gdevmswn.c, gp_mswin.c)
27467dd7cddfSDavid du Colombier	- There were some compatibility problems with IBM C.  (os2.mak,
27477dd7cddfSDavid du Colombiergsdll.h, gdevpm.c, gp_os2.c)
27487dd7cddfSDavid du Colombier
27497dd7cddfSDavid du ColombierAdds the PNG drivers to the 32-bit MS Windows and OS/2 makefiles.
27507dd7cddfSDavid du Colombier(bcwin32.mak, os2.mak)
27517dd7cddfSDavid du Colombier
27527dd7cddfSDavid du ColombierAdds a conditional to work around a bug in gcc 2.7.x (it didn't recognize
27537dd7cddfSDavid du Colombierthat the target of a const T * might still be mutable through aliasing).
27547dd7cddfSDavid du Colombier(stdpre.h)
27557dd7cddfSDavid du Colombier
27563ff48bf5SDavid du Colombier</pre><h3><a name="V3.61_Fonts"></a>Fonts</h3><pre>
27577dd7cddfSDavid du Colombier
27587dd7cddfSDavid du ColombierFixes bugs:
27597dd7cddfSDavid du Colombier	- Rasterizing a character in a Type 1 font with an invalid FontBBox
27607dd7cddfSDavid du Colombierleft some garbage on the operand stack (bug introduced in 3.52 or 3.60).
27617dd7cddfSDavid du Colombier(gs_type1.ps)
27627dd7cddfSDavid du Colombier	- The font substitution algorithm could fail or loop.  (gs_fonts.ps)
27637dd7cddfSDavid du Colombier
27647dd7cddfSDavid du ColombierAdds a little more support for CID fonts and CMaps.  (gs_cidfn.ps,
27657dd7cddfSDavid du Colombiergs_cmap.ps)
27667dd7cddfSDavid du Colombier
27673ff48bf5SDavid du Colombier</pre><h3><a name="V3.61_Interpreter"></a>Interpreter</h3><pre>
27687dd7cddfSDavid du Colombier
27697dd7cddfSDavid du ColombierFixes bugs:
27707dd7cddfSDavid du Colombier	- An #include &lt;memory_.h&gt; was missing.  (ziodev.h)
27717dd7cddfSDavid du Colombier	- Scanner-detected errors (primarily syntaxerror) didn't report the
27727dd7cddfSDavid du Colombierfile position.  (gs_init.ps)
27737dd7cddfSDavid du Colombier	- Rotated characters were rendered incorrectly (bug introduced in
27747dd7cddfSDavid du Colombier3.52).  (gstype1.c)
27757dd7cddfSDavid du Colombier	- Some compilers got upset about the use of 'dict' as a variable
27767dd7cddfSDavid du Colombiername.  (zdict.c)
27777dd7cddfSDavid du Colombier	- Operand stack overflows sometimes didn't set the "requested" field
27787dd7cddfSDavid du Colombiercorrectly.  (interp.c)
27797dd7cddfSDavid du Colombier	- Using -dBufferSpace= with a non-printer device caused an error.
27807dd7cddfSDavid du Colombier(gs_init.ps)
27817dd7cddfSDavid du Colombier
27827dd7cddfSDavid du ColombierAdds zlibEncode/Decode filters.  (int.mak, zfzlib.c)
27837dd7cddfSDavid du Colombier
27847dd7cddfSDavid du ColombierSeparates devices from device prototypes.  Prototypes, which lack the
27857dd7cddfSDavid du Colombierwritable attribute, cannot be installed as the current device or have their
27867dd7cddfSDavid du Colombierparameters changed.  This change allows Ghostscript to be exited and
27877dd7cddfSDavid du Colombierrestarted without being reloaded, which solves some problems with DLL
27887dd7cddfSDavid du Colombierusage.  ****** WE HAD TO SUBVERT THIS CHANGE BECAUSE OF MEMORY MANAGER
27897dd7cddfSDavid du ColombierPROBLEMS, by making zgetdevice return a writable reference to the
27907dd7cddfSDavid du Colombierprototype.  (We finally fixed this in release 3.65.)  (gs_init.ps, iref.h,
27917dd7cddfSDavid du Colombieropcheck.h, zdevice.c, ztype.c, zwppm.c)
27927dd7cddfSDavid du Colombier
27937dd7cddfSDavid du ColombierExtends the client API to allow for pushing values onto the operand stack.
27947dd7cddfSDavid du Colombier(imain.h, gs.c, gsmain.c)
27957dd7cddfSDavid du Colombier
27967dd7cddfSDavid du ColombierDefines a .setdefaultscreen procedure that sets the default halftone screen,
27977dd7cddfSDavid du Colombiertransfer function, and stroke adjustment for the current device.  Changes
27987dd7cddfSDavid du Colombierselectdevice and setpagedevice so that they call .setdefaultscreen;
27997dd7cddfSDavid du Colombiersetpagedevice calls .setdefaultscreen before calling the Install procedure,
28007dd7cddfSDavid du Colombierso that Install can set different parameters if it wishes.  Note that
28017dd7cddfSDavid du Colombiersetdevice does not do this.  (gs_init.ps, gs_setpd.ps)
28027dd7cddfSDavid du Colombier
28033ff48bf5SDavid du Colombier</pre><h3><a name="V3.61_Interpreter_PDF"></a>Interpreter (PDF)</h3><pre>
28047dd7cddfSDavid du Colombier
28057dd7cddfSDavid du ColombierFixes bugs:
28067dd7cddfSDavid du Colombier	- Tf set the current text font twice, and interacted with pdf2ps in
28077dd7cddfSDavid du Colombieran awkward way.  (gs_pdf.ps, pdf_2ps.ps, pdf_font.ps)
28087dd7cddfSDavid du Colombier	- If a font had variant Widths, it could get confused in the cache
28097dd7cddfSDavid du Colombierwith the underlying font.  (pdf_font.ps)
28107dd7cddfSDavid du Colombier	- If a character appeared twice in an encoding and the font
28117dd7cddfSDavid du Colombierspecified different Widths values for the two occurrences, the last Width
28127dd7cddfSDavid du Colombierwould be used.  We patched this to ignore zero Widths, which is not the
28137dd7cddfSDavid du Colombiercorrect solution but which almost always produces correct output.
28147dd7cddfSDavid du Colombier(pdf_font.ps)
28157dd7cddfSDavid du Colombier	- Arrays containing nulls didn't print out correctly (bug introduced
28167dd7cddfSDavid du Colombierin 3.60).  (gs_init.ps)
28177dd7cddfSDavid du Colombier	- Some PDF files contain very large dictionaries, which caused a
28187dd7cddfSDavid du Colombierstackoverflow.  (pdf_base.ps)
28197dd7cddfSDavid du Colombier
28207dd7cddfSDavid du ColombierSpeeds up the initial processing of PDF files by caching the map from page
28217dd7cddfSDavid du Colombiernumbers to page objects, and by not scanning the outlines if we aren't
28227dd7cddfSDavid du Colombierproducing PostScript output.  (pdf_2ps.ps, pdf_base.ps, pdf_main.ps)
28237dd7cddfSDavid du Colombier
28243ff48bf5SDavid du Colombier</pre><h3><a name="V3.61_Streams"></a>Streams</h3><pre>
28257dd7cddfSDavid du Colombier
28267dd7cddfSDavid du ColombierAdds zlibEncode/Decode filters.  (lib.mak, szlibx.h, szlibc.c, szlibd.c,
28277dd7cddfSDavid du Colombierszlibe.c)
28287dd7cddfSDavid du Colombier
28293ff48bf5SDavid du Colombier</pre><h3><a name="V3.61_Library"></a>Library</h3><pre>
28307dd7cddfSDavid du Colombier
28317dd7cddfSDavid du ColombierFixes bugs:
28327dd7cddfSDavid du Colombier	- glyphshow displayed a character with code 0 rather than the
28337dd7cddfSDavid du Colombierrequested character (bug introduced in 3.60.)  (gschar.c)
28347dd7cddfSDavid du Colombier	- If trimming white space around a character reduced its raster, the
28357dd7cddfSDavid du Colombiercharacter was garbled in the cache (bug introduced in 3.60.)  (gxccman.c)
28367dd7cddfSDavid du Colombier	- colorimage would incorrectly convert white pixels to black if the
28377dd7cddfSDavid du Colombierimage color space was CMYK, the current color space was not CMYK, and the
28387dd7cddfSDavid du Colombiernumber of bits per pixel was 4 or 8.  (gsimage2.c)
28397dd7cddfSDavid du Colombier	- One of the clipping tests for images was backwards (bug introduced
28407dd7cddfSDavid du Colombierin 3.60).  (gsimage.c)
28417dd7cddfSDavid du Colombier	- Type 1 fonts that used the Flex feature applied hints to the path
28427dd7cddfSDavid du Colombiermultiple times, causing dropouts, uneven stems, and other problems (bug
28437dd7cddfSDavid du Colombierprobably introduced in 3.21).  (gstype1.c)
28447dd7cddfSDavid du Colombier	- If a Type 1 font used the Flex feature within the accent of an
28457dd7cddfSDavid du Colombieraccented character defined with seac, the shape of the accent could be
28467dd7cddfSDavid du Colombierdistorted.  (gxtype1.h, gstype1.c)
28477dd7cddfSDavid du Colombier	- If a Type 1 font changed hints using the hint replacement facility
28487dd7cddfSDavid du Colombierwhen the last operation was a closepath, the old hints would be applied a
28497dd7cddfSDavid du Colombiersecond time, distorting the shape.  (gxhint3.c)
28507dd7cddfSDavid du Colombier	- Band lists could read garbage beyond the end of data for a band,
28517dd7cddfSDavid du Colombiercausing unpredictable errors (bug introduced in 3.60).  (gxclread.c)
28527dd7cddfSDavid du Colombier	- If the bounding box of the path for fill_path or stroke_path went
28537dd7cddfSDavid du Colombieroutside the device page boundary when banding, out-of-bounds memory
28547dd7cddfSDavid du Colombierreferences occurred (bug introduced in 3.60).  (gxdevice.h, gxclpath.c)
28557dd7cddfSDavid du Colombier
28567dd7cddfSDavid du ColombierAdds an alternative implementation of the core path filling algorithm that
28577dd7cddfSDavid du Colombieris much faster on objects with curves but doesn't handle Y fattening.  This
28587dd7cddfSDavid du Colombieris the implementation that will normally be used for rasterizing characters.
28597dd7cddfSDavid du ColombierThis implementation rasterizes curves directly, without flattening them.
28607dd7cddfSDavid du Colombier(gxfixed.h, gxpath.h, gzpath.h, gsdps1.c, gxfill.c, gxpcopy.c, gxpdash.c)
28617dd7cddfSDavid du Colombier
28627dd7cddfSDavid du ColombierSpeeds up the flattening of curves substantially by omitting more redundant
28637dd7cddfSDavid du Colombierpoints.  (gxpcopy.c)
28647dd7cddfSDavid du Colombier
28657dd7cddfSDavid du ColombierSpeeds up character bitmap compression a little more.  (gsbitops.h,
28667dd7cddfSDavid du Colombiergdevabuf.c, gsbitops.c, gxccman.c)
28677dd7cddfSDavid du Colombier
28687dd7cddfSDavid du ColombierSpeeds up anti-aliased graphics a bit by computing a bounding box before
28697dd7cddfSDavid du Colombierconverting from oversampling to alpha values, and by speeding up the
28707dd7cddfSDavid du Colombierbounding box computation itself.  (gsbitops.h, gdevabuf.c, gsbitops.c,
28717dd7cddfSDavid du Colombiergxccman.c)
28727dd7cddfSDavid du Colombier
28733ff48bf5SDavid du Colombier</pre>
28747dd7cddfSDavid du Colombier
28753ff48bf5SDavid du Colombier<h2><a name="Version3.60"></a>Version 3.60 (limited) (11/20/95)</h2>
28763ff48bf5SDavid du Colombier
28773ff48bf5SDavid du Colombier<p>
28787dd7cddfSDavid du Colombier(Note: release numbers 3.54 through 3.59 were deliberately skipped.)  This
28797dd7cddfSDavid du Colombierinternal release includes a major redesign of band lists in order to reduce
28807dd7cddfSDavid du Colombiertheir size for embedded implementations, to move towards supporting "vector"
28817dd7cddfSDavid du Colombieroutput formats, and to further separate the imager library from the language
28827dd7cddfSDavid du Colombierinterpreters.
28837dd7cddfSDavid du Colombier
28843ff48bf5SDavid du Colombier<h3><a name="V3.60_Documentation"></a>Documentation</h3><pre>
28857dd7cddfSDavid du ColombierFixes bugs:
28867dd7cddfSDavid du Colombier	- A comment was incorrect.  (viewpbm.ps)
28877dd7cddfSDavid du Colombier	- The PixelDifference filters were not documented.  (language.doc)
28887dd7cddfSDavid du Colombier	- The change from currenttime to .currenttime wasn't documented.
28897dd7cddfSDavid du Colombier(language.doc)
28907dd7cddfSDavid du Colombier	- gs.1 incorrectly stated that the default font directory name
28917dd7cddfSDavid du Colombierincluded the version number.  (gs.1)
28927dd7cddfSDavid du Colombier	- The -g and -r switches didn't specify that the units for their
28937dd7cddfSDavid du Colombierarguments are pixels and pixels per inch respectively.  (use.doc)
28947dd7cddfSDavid du Colombier	- The PageOffset page device parameter wasn't listed.
28957dd7cddfSDavid du Colombier(language.doc)
28967dd7cddfSDavid du Colombier
28977dd7cddfSDavid du ColombierChanges copy_mono and copy_color to optional procedures.  (drivers.doc)
28987dd7cddfSDavid du Colombier
28997dd7cddfSDavid du ColombierAdds a reference to ps_view.ps, a "dumb terminal" user interface for
29007dd7cddfSDavid du ColombierGhostscript intended for MS-DOS users.  (README)
29017dd7cddfSDavid du Colombier
29027dd7cddfSDavid du ColombierSplits off the documentation on installing Ghostscript into a separate file.
29037dd7cddfSDavid du Colombier(readme, install.doc, use.doc)
29047dd7cddfSDavid du Colombier
29057dd7cddfSDavid du ColombierAdds documentation on the data format produced by the standard LZWEncode
29067dd7cddfSDavid du Colombierfilter.  (readme, lzwce.doc)
29077dd7cddfSDavid du Colombier
29087dd7cddfSDavid du ColombierClarifies XLIBDIR vs. XLIBDIRS.  (make.doc)
29097dd7cddfSDavid du Colombier
29107dd7cddfSDavid du ColombierAdds user-contributed documentation on building Ghostscript under QNX.
29117dd7cddfSDavid du Colombier(make.doc)
29127dd7cddfSDavid du Colombier
29133ff48bf5SDavid du Colombier</pre><h3><a name="V3.60_Procedures"></a>Procedures</h3><pre>
29147dd7cddfSDavid du Colombier
29157dd7cddfSDavid du ColombierFixes bugs:
29167dd7cddfSDavid du Colombier	- The rule for building dfaxhigh.dev had a typo.  (devs.mak)
29177dd7cddfSDavid du Colombier	- The dependencies for gdevpipe.h were missing errno__h and
29187dd7cddfSDavid du Colombierstring__h.  (unixtail.mak)
29197dd7cddfSDavid du Colombier	- The geninit program (the implementation of COMPILE_INITS=1) didn't
29207dd7cddfSDavid du Colombierparse the command line properly, and didn't check for PostScript files
29217dd7cddfSDavid du Colombierproperly.  (geninit.c)
29227dd7cddfSDavid du Colombier	- ccfontab.c was omitted from the fileset.  The easiest way to fix
29237dd7cddfSDavid du Colombierthis was to rename it to icfontab.c.  (gs.mak, int.mak, ccfontab.c)
29247dd7cddfSDavid du Colombier	- The Unix makefiles installed caption.ls (a typo) rather than
29257dd7cddfSDavid du Colombiercaption.ps.  (unix-end.mak)
29267dd7cddfSDavid du Colombier	- XLIBDIR, for dynamic library access, wasn't defined.  (*head.mak,
29277dd7cddfSDavid du Colombier*tail.mak, ugcclib.mak)
29287dd7cddfSDavid du Colombier
29297dd7cddfSDavid du ColombierAdds the PNG and ZLIB makefiles to the fileset.  (*.mak, png.mak, zlib.mak,
29307dd7cddfSDavid du Colombiertar_cat)
29317dd7cddfSDavid du Colombier
29327dd7cddfSDavid du ColombierPuts the PixelDifference filters in the standard Level 2 set, since the LZW
29337dd7cddfSDavid du Colombierfilters may invoke them (a post-Red Book addition to the PostScript language
29347dd7cddfSDavid du Colombierdefinition).  (int.mak)
29357dd7cddfSDavid du Colombier
29367dd7cddfSDavid du ColombierAdds -Wcast-qual to the gcc compiler flags.  (gcc-head.mak)
29377dd7cddfSDavid du Colombier
29387dd7cddfSDavid du ColombierAdds the PNG drivers to the standard Unix configurations.
29397dd7cddfSDavid du Colombier(ansi/cc-/gcc-head.mak)
29407dd7cddfSDavid du Colombier
29417dd7cddfSDavid du ColombierAdds a -dNOFONTPATH switch to suppress any consultation of the FONTPATH
29427dd7cddfSDavid du Colombiervariable or the GS_FONTPATH environment variable.  (gs_fonts.ps, gs_init.ps)
29437dd7cddfSDavid du Colombier
29443ff48bf5SDavid du Colombier</pre><h3><a name="V3.60_Utilities"></a>Utilities</h3><pre>
29457dd7cddfSDavid du Colombier
29467dd7cddfSDavid du ColombierFixes bugs:
29477dd7cddfSDavid du Colombier	- The default scaling for viewing PBM files was computed
29487dd7cddfSDavid du Colombierincorrectly.  (viewpbm.ps)
29497dd7cddfSDavid du Colombier	- ps2ascii left a value on the stack for each unrecognized character
29507dd7cddfSDavid du Colombierit processed, eventually causing a stackoverflow.  (ps2ascii.ps)
29517dd7cddfSDavid du Colombier
29527dd7cddfSDavid du ColombierChanges viewpbm.ps so that it simply defines P1 through P6, allowing PBM
29537dd7cddfSDavid du Colombierfiles to be executed with 'run'.  (viewpbm.ps)
29547dd7cddfSDavid du Colombier
29557dd7cddfSDavid du ColombierAdds a small benchmark to crudely measure hardware/system performance.  The
29567dd7cddfSDavid du Colombiersame file can either be compiled as a C program or executed as a PostScript
29577dd7cddfSDavid du Colombierprogram.  (bench.c)
29587dd7cddfSDavid du Colombier
29597dd7cddfSDavid du ColombierAdds a few PPD files to the distribution.  There will probably be more as
29607dd7cddfSDavid du Colombiertime goes on.  (tar_gs, unix-end.mak)
29617dd7cddfSDavid du Colombier
29627dd7cddfSDavid du ColombierUpdates the Unix lpr scripts to handle a wider variety of device options.
29637dd7cddfSDavid du Colombier(unix-lpr.doc, lprsetup.sh, unix-lpr.sh)
29647dd7cddfSDavid du Colombier
29657dd7cddfSDavid du ColombierAdds a utility for converting files produced by Macromedia's Rollup program
29667dd7cddfSDavid du Colombierto a Type 0 form directly usable by Ghostscript.  (rollconv.ps)
29677dd7cddfSDavid du Colombier
29683ff48bf5SDavid du Colombier</pre><h3><a name="V3.60_Drivers"></a>Drivers</h3><pre>
29697dd7cddfSDavid du Colombier
29707dd7cddfSDavid du ColombierFixes bugs:
29717dd7cddfSDavid du Colombier	- Forwarding devices passed an incorrect first argument when
29727dd7cddfSDavid du Colombierforwarding a copy_rop operation.  (gsdevice.c)
29737dd7cddfSDavid du Colombier	- Because of a typo, the LaserJet drivers had incorrect margins.
29747dd7cddfSDavid du ColombierThis was probably a new bug in 3.5x.  (gdevdjet.c)
29757dd7cddfSDavid du Colombier	- A private name was duplicated.  (gdevtfax.c)
29767dd7cddfSDavid du Colombier	- The x11alpha driver passed invalid colors to the X library.
29777dd7cddfSDavid du Colombier(gdevxalt.c)
29787dd7cddfSDavid du Colombier	- The x11alpha driver set the blue component of colors incorrectly.
29797dd7cddfSDavid du Colombier(gdevxalt.c)
29807dd7cddfSDavid du Colombier	- Some `const' declarations were missing.  (gdevtifs.c, gdevtfnx.c,
29817dd7cddfSDavid du Colombiergdevxxf.c)
29827dd7cddfSDavid du Colombier	- The size of A4 paper was slightly inconsistent across drivers.
29837dd7cddfSDavid du Colombier(gdevdjet.c, gdevl256.c)
29847dd7cddfSDavid du Colombier
29857dd7cddfSDavid du ColombierProvides default implementations of copy_mono and copy_color in terms of
29867dd7cddfSDavid du Colombierfill_rectangle.  (gxdevice.h, gsdevice.c)
29877dd7cddfSDavid du Colombier
29887dd7cddfSDavid du ColombierAdds forwarders for sync_output and output_page.  (gxdevice.h, gsdevice.c)
29897dd7cddfSDavid du Colombier
29907dd7cddfSDavid du ColombierAdds new optional procedures to the driver interface:
29917dd7cddfSDavid du Colombier	- fill_path for filling a path with a color;
29927dd7cddfSDavid du Colombier	- stroke_path for stroking a path;
29937dd7cddfSDavid du Colombier	- fill_mask for painting a color through a mask.
29947dd7cddfSDavid du ColombierThe default implementations use the existing rasterizer algorithms.  This
29957dd7cddfSDavid du Colombierinvolves a NON-BACKWARD-COMPATIBLE change to the parameters of a few
29967dd7cddfSDavid du Colombierinternal routines:
29977dd7cddfSDavid du Colombier	gs_currentlineparams
29987dd7cddfSDavid du Colombier	gx_fill_path, gx_fill_path_only, gx_path_expand_dashes, gx_path_flatten
29997dd7cddfSDavid du Colombierand two externally visible routines not part of standard PostScript:
30007dd7cddfSDavid du Colombier	gs_setfilladjust, gs_currentfilladjust
30017dd7cddfSDavid du Colombier(gdevmem.h, gdevprn.h, gspath.h, gspenum.h, gxcpath.h, gxdevice.h, gxdraw.h,
30027dd7cddfSDavid du Colombiergxpaint.h, gxpath.h, gscoord.c, gsdevice.c, gspaint.c, gsstate.c,
30037dd7cddfSDavid du Colombiergxacpath.c, gxclist.c, gxclread.c, gxcpath.c, gxdraw.c, gxfill.c, gxpaint.c,
30047dd7cddfSDavid du Colombiergxpcmap.c, gxpcopy.c, gxstroke.c)
30057dd7cddfSDavid du Colombier
30067dd7cddfSDavid du ColombierMakes major changes to the dithering algorithm for the color DeskJet and
30077dd7cddfSDavid du ColombierBubbleJet drivers, contributed by a user.  (gdevcdj.c)
30087dd7cddfSDavid du Colombier
30097dd7cddfSDavid du ColombierAdds a contributed 12-bit RGB TIFF driver.  (gdevtfnx.c)
30107dd7cddfSDavid du Colombier
30113ff48bf5SDavid du Colombier</pre><h3><a name="V3.60_Platforms"></a>Platforms</h3><pre>
30127dd7cddfSDavid du Colombier
30137dd7cddfSDavid du ColombierFixes bugs:
30147dd7cddfSDavid du Colombier	- The printjob created by Ghostscript was called "Ghostscirpt"
30157dd7cddfSDavid du Colombierinstead of "Ghostscript".  (gp_os2.c)
30167dd7cddfSDavid du Colombier	- An "export" declaration was omitted from DllInit.  (gp_mswin.c)
30177dd7cddfSDavid du Colombier
30187dd7cddfSDavid du ColombierRemoves gp_get_clock (its interface was changed from calendar
30197dd7cddfSDavid du Colombierdays/milliseconds to epoch seconds/nanoseconds in an undocumented,
30207dd7cddfSDavid du ColombierNON-BACKWARD-COMPATIBLE change in 3.51), and adds a new gp_get_realtime
30217dd7cddfSDavid du Colombierprocedure that returns epoch seconds/nanoseconds.  This too is a
30227dd7cddfSDavid du ColombierNON-BACKWARD-COMPATIBLE change; it is required because we overlooked the
30237dd7cddfSDavid du Colombierprior change in a batch of user-contributed code.  (gp.h, gp_*.c)
30247dd7cddfSDavid du Colombier
30253ff48bf5SDavid du Colombier</pre><h3><a name="V3.60_Fonts"></a>Fonts</h3><pre>
30267dd7cddfSDavid du Colombier
30277dd7cddfSDavid du ColombierAdds Heavy as a synonym for Bold when doing intelligent font substitution.
30287dd7cddfSDavid du Colombier(gs_fonts.ps)
30297dd7cddfSDavid du Colombier
30303ff48bf5SDavid du Colombier</pre><h3><a name="V3.60_Interpreter"></a>Interpreter</h3><pre>
30317dd7cddfSDavid du Colombier
30327dd7cddfSDavid du ColombierFixes bugs:
30337dd7cddfSDavid du Colombier	- The setup for the CCITTFax filters set the 'raster' element
30347dd7cddfSDavid du Colombierredundantly.  (zfdecode.c)
30357dd7cddfSDavid du Colombier	- currentscreen and currentcolorscreen could give an error if the
30367dd7cddfSDavid du Colombiercurrent screen was set with sethalftone (or, for currentscreen,
30377dd7cddfSDavid du Colombiersetcolorscreen).  (gs_dps1.ps)
30387dd7cddfSDavid du Colombier	- The font operators didn't work properly if a PostScript file
30397dd7cddfSDavid du Colombierredefined certain operator names.  (gs_res.ps)
30407dd7cddfSDavid du Colombier	- The CCITTFax filters imposed a limit of 9999 Rows or Columns.  The
30417dd7cddfSDavid du Colombiernew limit is 32000.  (zfdecode.c)
30427dd7cddfSDavid du Colombier	- Streams could get removed from a bookkeeping list prematurely, and
30437dd7cddfSDavid du Colombierwind up dangling.  (zfile.c)
30447dd7cddfSDavid du Colombier	- The garbage collector didn't ask for large enough a mark stack,
30457dd7cddfSDavid du Colombierand only used half of what it got.  (This was only a performance problem.)
30467dd7cddfSDavid du Colombier(igc.c)
30477dd7cddfSDavid du Colombier	- Two private names duplicated names in a vendor library.  (zbseq.c)
30487dd7cddfSDavid du Colombier	- Type 1 fonts didn't enforce the maximum value of BlueScale, which
30497dd7cddfSDavid du Colombiercaused some faulty fonts produced by Fontographer to produce incorrect
30507dd7cddfSDavid du Colombieroutput.  (zfont1.c)
30517dd7cddfSDavid du Colombier	- cvs / cvrs / = didn't produce Adobe-compatible output.
30527dd7cddfSDavid du Colombier(gs_init.ps, iutil.h, iutil.c, zfileio.c)
30537dd7cddfSDavid du Colombier	- Multiple -I switches set the search path incorrectly.  (gsmain.c)
30547dd7cddfSDavid du Colombier	- Many `const' declarations were missing.  (icie.h, idparam.h,
30557dd7cddfSDavid du Colombieriref.h, iutil.h, idparam.c, iinit.c, ilocate.c, iname.c, interp.c, iparam.c,
30567dd7cddfSDavid du Colombieriutil.c, zcie.c, zfile.c, zgstate.c, ziodev.c, ztype.c)
30577dd7cddfSDavid du Colombier	- Fonts could wind up with a pointer to the wrong VM space, causing
30587dd7cddfSDavid du Colombierpotential GC or save/restore confusion.  (zfont2.c)
30597dd7cddfSDavid du Colombier	- upath could leave garbage on the stack if it failed.  (gs_dps1.ps)
30607dd7cddfSDavid du Colombier
30617dd7cddfSDavid du ColombierSpeeds up rasterizing characters into the cache a little.  (gs_type0.ps)
30627dd7cddfSDavid du Colombier
30637dd7cddfSDavid du ColombierChanges the default limit on the size of cached characters from the maximum
30647dd7cddfSDavid du Colombierof (18 points or 5 times the "average" character size) to (18 points or 1%
30657dd7cddfSDavid du Colombierof the total cache size).  (gs_init.ps)
30667dd7cddfSDavid du Colombier
30677dd7cddfSDavid du ColombierAdds the DecodedByteAlign parameter to the CCITTFax filters.  (zfdecode.c)
30687dd7cddfSDavid du Colombier
30697dd7cddfSDavid du ColombierUpdates some code for compatibility with the new fill_path driver procedure.
30707dd7cddfSDavid du Colombier(zupath.c)
30717dd7cddfSDavid du Colombier
30727dd7cddfSDavid du ColombierReplaces .set/currentfilladjust with .set/currentfilladjust2, and defines
30737dd7cddfSDavid du Colombierthe former in terms of the latter.  (gs_init.ps, zgstate.c)
30747dd7cddfSDavid du Colombier
30757dd7cddfSDavid du ColombierExtends the make[word]imagedevice operators to accept palette values of 16,
30767dd7cddfSDavid du Colombier24, and 32, for creating true-color image devices.  (zdevice.c)
30777dd7cddfSDavid du Colombier
30787dd7cddfSDavid du ColombierChanges realtime to match the definition of gp_get_realtime.  (zmisc.c)
30797dd7cddfSDavid du Colombier
30807dd7cddfSDavid du ColombierRemoves the [.]currenttime operator.  realtime provides interval timing in
30817dd7cddfSDavid du Colombiermilliseconds; the %Calendar% IODevice provides calendar times.  (zmisc.c)
30827dd7cddfSDavid du Colombier
30837dd7cddfSDavid du ColombierExtends the LZW filters to handle the PDF Predictor (pixel-differencing)
30847dd7cddfSDavid du Colombieroption.  (zfdecode.c, zfilter2.c, zfpdiff.c (deleted))
30857dd7cddfSDavid du Colombier
30863ff48bf5SDavid du Colombier</pre><h3><a name="V3.60_Interpreter_PDF"></a>Interpreter (PDF)</h3><pre>
30877dd7cddfSDavid du Colombier
30887dd7cddfSDavid du ColombierFixes bugs:
30897dd7cddfSDavid du Colombier	- The length of an image's data was sometimes calculated
30907dd7cddfSDavid du Colombierincorrectly, causing an error when converting PDF to PostScript.
30917dd7cddfSDavid du Colombier(pdf_draw.ps)
30927dd7cddfSDavid du Colombier	- If word spacing and/or text spacing was non-zero, an error could
30937dd7cddfSDavid du Colombieroccur.  (gs_pdf.ps)
30947dd7cddfSDavid du Colombier	- Text that was both filled and stroked caused an error.
30957dd7cddfSDavid du Colombier(gs_pdf.ps)
30967dd7cddfSDavid du Colombier
30973ff48bf5SDavid du Colombier</pre><h3><a name="V3.60_Streams"></a>Streams</h3><pre>
30987dd7cddfSDavid du Colombier
30997dd7cddfSDavid du ColombierFixes bugs:
31007dd7cddfSDavid du Colombier	- When closing an encoding filter stream whose target was also a
31017dd7cddfSDavid du Colombierfilter, the latter could get called incorrectly with last = 1, possibly more
31027dd7cddfSDavid du Colombierthan once, leading to premature EOD markers.  (stream.c)
31037dd7cddfSDavid du Colombier	- The LZW-compatible encoder put out an incorrect end-of-data code.
31047dd7cddfSDavid du Colombier(slzwce.c)
31057dd7cddfSDavid du Colombier	- The LZW-compatible encoder didn't put out a reset code soon
31067dd7cddfSDavid du Colombierenough.  (slzwce.c)
31077dd7cddfSDavid du Colombier	- Some `const' declarations were missing.  (siscale.c)
31087dd7cddfSDavid du Colombier	- Doing a sgets on a closed stream could call sreadbuf, possibly
31097dd7cddfSDavid du Colombiercausing an error.  (stream.c)
31107dd7cddfSDavid du Colombier
31117dd7cddfSDavid du ColombierAdds a new (optional) set_defaults procedure to the stream template, which
31127dd7cddfSDavid du Colombiersets the stream parameters to default values.  We only implement it for a
31137dd7cddfSDavid du Colombierfew stream types.  (scfx.h, scommon.h, slzwx.h, spdiffx.h, srlx.h,
31147dd7cddfSDavid du Colombierstrimpl.h, scfd.c, scfe.c, slzwce.c, slzwd.c, slzwe.c, spdiff.c, srld.c,
31157dd7cddfSDavid du Colombiersrle.c)
31167dd7cddfSDavid du Colombier
31177dd7cddfSDavid du ColombierAdds a new parameter to the CCITTFax filters, DecodedByteAlign.  This is an
31187dd7cddfSDavid du Colombierinteger N, which must be a power of 2 between 1 (2^0) and 16 (2^4), that
31197dd7cddfSDavid du Colombierspecifies that decoded data scan lines are always a multiple of N bytes.
31207dd7cddfSDavid du ColombierThe encoding filter skips data in each scan line from Columns to the next
31217dd7cddfSDavid du Colombiermultiple of N bytes; the decoding filter pads each scan line to a multiple
31227dd7cddfSDavid du Colombierof N bytes.  Default value: 1.  (scfx.h, scfd.c, scfe.c)
31237dd7cddfSDavid du Colombier
31247dd7cddfSDavid du ColombierIncreases the maximum width of a scan line for the CCITTFaxEncode filter to
31257dd7cddfSDavid du Colombier32000 pixels.  (scf.h)
31267dd7cddfSDavid du Colombier
31273ff48bf5SDavid du Colombier</pre><h3><a name="V3.60_Library"></a>Library</h3><pre>
31287dd7cddfSDavid du Colombier
31297dd7cddfSDavid du ColombierFixes bugs:
31307dd7cddfSDavid du Colombier	- Cached characters sometimes had extra blank space on the left,
31317dd7cddfSDavid du Colombierleading to some unnecessary bit-shuffling when imaging them.  (gxccman.c)
31327dd7cddfSDavid du Colombier	- In rare cases, gray halftones called gx_color_load unnecessarily.
31337dd7cddfSDavid du Colombier(gxdither.c)
31347dd7cddfSDavid du Colombier	- The list of all-bands commands wasn't initialized/reset properly.
31357dd7cddfSDavid du Colombier(gxclist.c, gxclread.c)
31367dd7cddfSDavid du Colombier	- Rendering an anti-aliased character to a non-anti-aliased device
31377dd7cddfSDavid du Colombierdidn't free the temporary bitmap, causing memory to be lost.  (gxccache.c)
31387dd7cddfSDavid du Colombier	- Dash patterns where the offset exactly reached a run of length 0
31397dd7cddfSDavid du Colombierskipped over the 0-length run.  (gsline.c)
31407dd7cddfSDavid du Colombier	- Rectangles closed with both lineto and closepath weren't
31417dd7cddfSDavid du Colombierrecognized as rectangles.  This is only a performance bug.  (gxpath2.c)
31427dd7cddfSDavid du Colombier	- Because of a typo in a macro formal parameter list, a private name
31437dd7cddfSDavid du Colombierwas duplicated.  (gsstruct.h)
31447dd7cddfSDavid du Colombier	- Text display operations didn't update the current character in the
31457dd7cddfSDavid du Colombierenumerator structure during the fastest path through the code.  This only
31467dd7cddfSDavid du Colombiermatters to one very unusual commercial client.  (gschar.c)
31477dd7cddfSDavid du Colombier	- Some `const' declarations were missing.  (gsparam.h, gxistate.h,
31487dd7cddfSDavid du Colombierstdpre.h; gdevm1.c, gsalloc.c, gsfont.c, gsimage3.c, gsmemory.c, gsmisc.c,
31497dd7cddfSDavid du Colombiergspcolor.c, gstype1.c, gxfill.c, gxpcopy.c)
31507dd7cddfSDavid du Colombier
31517dd7cddfSDavid du ColombierChanges the header files to assume that gcc on Solaris defines
31527dd7cddfSDavid du Colombier__svr4__ and that, in this case, &lt;string.h&gt; has the right stuff in it.
31537dd7cddfSDavid du Colombier(memory_.h)
31547dd7cddfSDavid du Colombier
31557dd7cddfSDavid du ColombierRefactors the character cache to share structures with a similar cache
31567dd7cddfSDavid du Colombierused by band lists.  Eventually the band list may be able to reference
31577dd7cddfSDavid du Colombierthe character cache directly, saving a lot of copying.  (gxbcache.h,
31587dd7cddfSDavid du Colombiergxfcache.h, gsfont.c, gxbcache.c, gxccache.c, gxccman.c)
31597dd7cddfSDavid du Colombier
31607dd7cddfSDavid du ColombierSpeeds up getting the side bearing and width of a Type 1 charstring a
31617dd7cddfSDavid du Colombierlittle.  (gxtype1.h, gstype1.c)
31627dd7cddfSDavid du Colombier
31637dd7cddfSDavid du ColombierRedesigns band lists so that they can cache character bitmaps as well as
31647dd7cddfSDavid du Colombierhalftone bitmaps.  Characters may be written for all bands, not just the
31657dd7cddfSDavid du Colombierband(s) they appear in, depending on the setting of the CHAR_ALL_BANDS_COUNT
31667dd7cddfSDavid du Colombierparameter in gxclbits.c.  (gxcldev.h, gxclist.h, gxclbits.c, gxclist.c,
31677dd7cddfSDavid du Colombiergxclread.c)
31687dd7cddfSDavid du Colombier
31697dd7cddfSDavid du ColombierAdds G4 fax compression for band list bitmaps.  (gxcldev.h, gxclist.c,
31707dd7cddfSDavid du Colombiergxclread.c)
31717dd7cddfSDavid du Colombier
31727dd7cddfSDavid du ColombierIncorporates the new set_defaults procedure into the memory-based band list
31737dd7cddfSDavid du Colombierimplementation.  (gxclmem.c)
31747dd7cddfSDavid du Colombier
31757dd7cddfSDavid du ColombierImplements a halftoning device that can be used in a device pipeline.
31767dd7cddfSDavid du Colombier(gdevht.h, gzht.h, gdevht.c, gxcht.c)
31777dd7cddfSDavid du Colombier
31787dd7cddfSDavid du ColombierFactors out imager state from the full graphics state.  This division is
31797dd7cddfSDavid du Colombierpreliminary and subject to change.  (gxistate.h, gxop1.h, gzstate.h,
31807dd7cddfSDavid du Colombiergsline.c, gsstate.c, gstype1.c, gxhint*.c)
31817dd7cddfSDavid du Colombier
31827dd7cddfSDavid du ColombierImplements passing fill operations in the band list, except for pattern
31837dd7cddfSDavid du Colombiercolor or colored halftones.  (gxcldev.h, gxclist.h, gxclist.c, gxclread.c)
31847dd7cddfSDavid du Colombier
31857dd7cddfSDavid du ColombierImplements passing stroke operations in the band list, except for pattern
31867dd7cddfSDavid du Colombiercolor or colored halftones.  (gsline.h, gslparam.h, gxline.h, gzline.h,
31877dd7cddfSDavid du Colombiergsline.c; gxcldev.h, gxclist.h, gxclist.c, gxclread.c)
31887dd7cddfSDavid du Colombier
31897dd7cddfSDavid du ColombierImplements the ability to represent halftoned characters in the band list.
31907dd7cddfSDavid du Colombier(gxccache.c)
31917dd7cddfSDavid du Colombier
31927dd7cddfSDavid du ColombierStarts to implement the ability to do halftoning during the rendering phase
31937dd7cddfSDavid du Colombierrather than before writing the band list (currently for black-and-white
31947dd7cddfSDavid du Colombierdevices only).  Doing this required NON-BACKWARD-COMPATIBLE changes to the
31957dd7cddfSDavid du Colombierinterfaces of a few internal procedures:
31967dd7cddfSDavid du Colombier	gx_check_tile_size, gx_render_device_{color,gray}
31977dd7cddfSDavid du Colombier(gxdcolor.h, gxdht.h, gzht.h, gsht.c, gsimage1.c, gsmisc.c, gspcolor.c,
31987dd7cddfSDavid du Colombiergsstate.c, gxcht.c, gxclbits.c, gxdither.c, gxht.c)
31997dd7cddfSDavid du Colombier
32007dd7cddfSDavid du ColombierImplements passing clipping information in the band list.  (gzcpath.h,
32017dd7cddfSDavid du Colombiergxacpath.c, gxclpath.c, gxclread.c, gxcpath.c)
32027dd7cddfSDavid du Colombier
32037dd7cddfSDavid du ColombierRemoves the gs_state * parameter from the device color fill_rectangle
32047dd7cddfSDavid du Colombierprocedures and many of their callers, since it is no longer needed.  This is
32057dd7cddfSDavid du Colombiera non-backward-compatible change to an internal API.  (gdevmrop.h,
32067dd7cddfSDavid du Colombiergxdcolor.h, gxdraw.h, gxpaint.h, gdevmrop.c, gsimage.c, gspcolor.c, gxcht.c,
32077dd7cddfSDavid du Colombiergxclread.c, gxdraw.c, gxfill.c, gxht.c, gxpaint.c, gxstroke.c)
32087dd7cddfSDavid du Colombier
32097dd7cddfSDavid du ColombierRemoves gxdevice.h from gzstate.h, since not all modules requiring access to
32107dd7cddfSDavid du Colombierthe graphics state need to know the implementation of devices.  This entails
32117dd7cddfSDavid du Colombieradding gxdevice.h to the include lists for some modules.  (gxchar.h,
32127dd7cddfSDavid du Colombiergxcpath.h, gxcvalue.h, gxdevice.h, gxtype1.h, gzstate.h; gschar.c,
32137dd7cddfSDavid du Colombiergscoord.c, gsdevice.c, gsimage1.c, gsimage2.c, gsimage3.c, gspaint.c,
32147dd7cddfSDavid du Colombiergspath.c, gsstate.c, gstype1.c, gxccache.c, gxccman.c, gxhint1.c, gxhint2.c,
32157dd7cddfSDavid du Colombiergxhint3.c, gxpaint.c)
32167dd7cddfSDavid du Colombier
32177dd7cddfSDavid du ColombierAdds a compile-time option, ALPHA_LSB_FIRST, which causes alpha-sampled
32187dd7cddfSDavid du Colombiercharacters to be nibble-reversed in the cache.  This was created for a
32197dd7cddfSDavid du Colombierspecialized application and does not interact well with the rest of the
32207dd7cddfSDavid du Colombiercode.  (gsbitops.c)
32217dd7cddfSDavid du Colombier
32227dd7cddfSDavid du ColombierSubstantially reduces the space required to represent 24- or 32-bit colors
32237dd7cddfSDavid du Colombierin the band list, by using more aggressive color differencing.  (gxcldev.h,
32247dd7cddfSDavid du Colombiergxclist.c, gxclread.c)
32257dd7cddfSDavid du Colombier
32267dd7cddfSDavid du ColombierChanges the allocation of unique IDs for halftone tiles to use the gray
32277dd7cddfSDavid du Colombierlevel rather than the number of 1-bits as the increment to a base ID; this
32287dd7cddfSDavid du Colombierallows more efficient (delta) representation of halftone indices in the band
32297dd7cddfSDavid du Colombierlist.  (gxcldev.h, gxclist.c, gxclread.c, gxht.c)
32307dd7cddfSDavid du Colombier
32317dd7cddfSDavid du ColombierSubstantially speeds up entering anti-aliased characters in the cache, by
32327dd7cddfSDavid du Colombierremoving white space before compressing rather than vice versa.
32337dd7cddfSDavid du Colombier(gsbitops.c, gxccman.c)
32347dd7cddfSDavid du Colombier
32353ff48bf5SDavid du Colombier</pre>
32367dd7cddfSDavid du Colombier
32373ff48bf5SDavid du Colombier<hr>
32383ff48bf5SDavid du Colombier
32393ff48bf5SDavid du Colombier<h2><a name="Version3.53"></a>Version 3.53 (1/10/96)</h2>
32403ff48bf5SDavid du Colombier
32413ff48bf5SDavid du Colombier<p>
32427dd7cddfSDavid du ColombierThis is an anomalous, out-of-sequence release requested by a commercial
32437dd7cddfSDavid du Colombierlicensee.  It consists of 3.52 plus the following retrofits from 3.60
32447dd7cddfSDavid du Colombierthrough 3.63:
32457dd7cddfSDavid du Colombier	- PDF interpreter and pdf2ps;
32467dd7cddfSDavid du Colombier	- Type 1 rasterizer fixes;
32477dd7cddfSDavid du Colombier	- Type 1 rasterizer and polygon fill performance improvements;
32487dd7cddfSDavid du Colombier	- MS Windows and OS/2 fixes;
32497dd7cddfSDavid du Colombier	- A few other important fixes.
32507dd7cddfSDavid du ColombierIt does NOT fix all problems reported since 3.52.
32517dd7cddfSDavid du Colombier
32523ff48bf5SDavid du Colombier<p>
32537dd7cddfSDavid du ColombierThe list of changes below indicates which subsequent release was the source
32547dd7cddfSDavid du Colombierof each change.  In several cases, minor editing of the change was required
32557dd7cddfSDavid du Colombierto make it compatible with 3.52.
32567dd7cddfSDavid du Colombier
32573ff48bf5SDavid du Colombier<h3><a name="V3.53_Documentation"></a>Documentation</h3><pre>
32587dd7cddfSDavid du ColombierFixes bugs:
32597dd7cddfSDavid du Colombier	[3.61] The analysis of curve monotonocity in gxpcopy.c had an error.
32607dd7cddfSDavid du Colombier(gxpcopy.c)
32617dd7cddfSDavid du Colombier
32627dd7cddfSDavid du Colombier[3.63] Notes that the OS/2 implementation now requires EMX/GCC 0.9b rather
32637dd7cddfSDavid du Colombierthan 0.9a.  (use.doc)
32647dd7cddfSDavid du Colombier
32657dd7cddfSDavid du Colombier[3.62] Notes that for Win32s, gs16spl.exe must be in the same directory as
32667dd7cddfSDavid du Colombiergswin32.exe.  (use.doc)
32677dd7cddfSDavid du Colombier
32687dd7cddfSDavid du Colombier[3.62] Adds a reference to dos-psv, another "dumb terminal" user interface
32697dd7cddfSDavid du Colombierfor Ghostscript intended for MS-DOS users.  (README)
32707dd7cddfSDavid du Colombier
32717dd7cddfSDavid du Colombier[3.61] Adds a pointer to DEC's free pstotext utility.  (README)
32727dd7cddfSDavid du Colombier
32737dd7cddfSDavid du Colombier[3.60] Adds a reference to ps_view.ps, a "dumb terminal" user interface for
32747dd7cddfSDavid du ColombierGhostscript intended for MS-DOS users.  (README)
32757dd7cddfSDavid du Colombier
32763ff48bf5SDavid du Colombier</pre><h3><a name="V3.53_Procedures"></a>Procedures</h3><pre>
32777dd7cddfSDavid du Colombier
32787dd7cddfSDavid du ColombierFixes bugs:
32797dd7cddfSDavid du Colombier	[3.60] The geninit program (the implementation of COMPILE_INITS=1)
32807dd7cddfSDavid du Colombierdidn't parse the command line properly, and didn't check for PostScript
32817dd7cddfSDavid du Colombierfiles properly.  (geninit.c)
32827dd7cddfSDavid du Colombier	[3.60] ccfontab.c was omitted from the fileset.  The easiest way to
32837dd7cddfSDavid du Colombierfix this was to rename it to icfontab.c.  (gs.mak, int.mak, ccfontab.c)
32847dd7cddfSDavid du Colombier	[3.60] The definition of pdfread.dev did an ADDMOD, not a SETMOD.
32857dd7cddfSDavid du Colombier(int.mak)
32867dd7cddfSDavid du Colombier
32877dd7cddfSDavid du Colombier[3.60] Adds a -dNOFONTPATH switch to suppress any consultation of the
32887dd7cddfSDavid du ColombierFONTPATH variable or the GS_FONTPATH environment variable.  (gs_fonts.ps,
32897dd7cddfSDavid du Colombiergs_init.ps)
32907dd7cddfSDavid du Colombier
32913ff48bf5SDavid du Colombier</pre><h3><a name="V3.53_Utilities"></a>Utilities</h3><pre>
32927dd7cddfSDavid du Colombier
32937dd7cddfSDavid du ColombierFixes bugs:
32947dd7cddfSDavid du Colombier	[3.61] pdf2ps didn't write Widths or Encoding in the converted file,
32957dd7cddfSDavid du Colombierproducing incorrect spacing and incorrect characters.  (pdf_2ps.ps)
32967dd7cddfSDavid du Colombier	[3.60] ps2ascii left a value on the stack for each unrecognized
32977dd7cddfSDavid du Colombiercharacter it processed, eventually causing a stackoverflow.  (ps2ascii.ps)
32987dd7cddfSDavid du Colombier
32997dd7cddfSDavid du Colombier[3.61] Changes the rollconv.ps utility to produce files whose names conform
33007dd7cddfSDavid du Colombierto the 8.3 length restriction, and to reduce the fixed RAM overhead for
33017dd7cddfSDavid du ColombierKanji fonts.  (rollconv.ps)
33027dd7cddfSDavid du Colombier
33037dd7cddfSDavid du Colombier[3.60] Adds a utility for converting files produced by Macromedia's Rollup
33047dd7cddfSDavid du Colombierprogram to a Type 0 form directly usable by Ghostscript.  (rollconv.ps)
33057dd7cddfSDavid du Colombier
33063ff48bf5SDavid du Colombier</pre><h3><a name="V3.53_Drivers"></a>Drivers</h3><pre>
33077dd7cddfSDavid du Colombier
33087dd7cddfSDavid du ColombierFixes bugs:
33097dd7cddfSDavid du Colombier	[3.60] Because of a typo, the LaserJet drivers had incorrect
33107dd7cddfSDavid du Colombiermargins.  This was probably a new bug in 3.5x.  (gdevdjet.c)
33117dd7cddfSDavid du Colombier	[3.60] A private name was duplicated.  (gdevtfax.c)
33127dd7cddfSDavid du Colombier	[3.60] The x11alpha driver passed invalid colors to the X library.
33137dd7cddfSDavid du Colombier(gdevxalt.c)
33147dd7cddfSDavid du Colombier	[3.60] The x11alpha driver set the blue component of colors
33157dd7cddfSDavid du Colombierincorrectly.  (gdevxalt.c)
33167dd7cddfSDavid du Colombier
33173ff48bf5SDavid du Colombier</pre><h3><a name="V3.53_Platforms"></a>Platforms</h3><pre>
33187dd7cddfSDavid du Colombier
33197dd7cddfSDavid du ColombierFixes bugs:
33207dd7cddfSDavid du Colombier	[3.63] The test for WinExec failure on Win32 was incorrect.
33217dd7cddfSDavid du Colombier(gp_mswin.c)
33227dd7cddfSDavid du Colombier	[3.63] getenv was declared redundantly on OS/2.  (gp_os2.c)
33237dd7cddfSDavid du Colombier	[3.63] gs16spl.c was missing &lt;string.h&gt;.  (gs16spl.c)
33247dd7cddfSDavid du Colombier	[3.61] Printing didn't work in 32-bit MS Windows environments.
33257dd7cddfSDavid du Colombier(bcwin32.mak, gdevmswn.c, gp_mswin.c)
33267dd7cddfSDavid du Colombier	[3.61] There were some compatibility problems with IBM C.  (os2.mak,
33277dd7cddfSDavid du Colombiergsdll.h, gdevpm.c, gp_os2.c)
33287dd7cddfSDavid du Colombier	[3.60] The printjob created by Ghostscript was called "Ghostscirpt"
33297dd7cddfSDavid du Colombierinstead of "Ghostscript".  (gp_os2.c)
33307dd7cddfSDavid du Colombier	[3.60] An "export" declaration was omitted from DllInit.
33317dd7cddfSDavid du Colombier(gp_mswin.c)
33327dd7cddfSDavid du Colombier
33337dd7cddfSDavid du Colombier[3.61] Adds a conditional to work around a bug in gcc 2.7.x (it didn't
33347dd7cddfSDavid du Colombierrecognize that the target of a const T * might still be mutable through
33357dd7cddfSDavid du Colombieraliasing).  (stdpre.h)
33367dd7cddfSDavid du Colombier
33373ff48bf5SDavid du Colombier</pre><h3><a name="V3.53_Fonts"></a>Fonts</h3><pre>
33387dd7cddfSDavid du Colombier
33397dd7cddfSDavid du ColombierFixes bugs:
33407dd7cddfSDavid du Colombier	[3.61] Rasterizing a character in a Type 1 font with an invalid
33417dd7cddfSDavid du ColombierFontBBox left some garbage on the operand stack (bug introduced in 3.52 or
33427dd7cddfSDavid du Colombier3.60).  (gs_type1.ps)
33437dd7cddfSDavid du Colombier	[3.61] The font substitution algorithm could fail or loop.
33447dd7cddfSDavid du Colombier(gs_fonts.ps)
33457dd7cddfSDavid du Colombier
33467dd7cddfSDavid du Colombier[3.60] Adds Heavy as a synonym for Bold when doing intelligent font
33477dd7cddfSDavid du Colombiersubstitution.  (gs_fonts.ps)
33487dd7cddfSDavid du Colombier
33493ff48bf5SDavid du Colombier</pre><h3><a name="V3.53_Interpreter"></a>Interpreter</h3><pre>
33507dd7cddfSDavid du Colombier
33517dd7cddfSDavid du ColombierFixes bugs:
33527dd7cddfSDavid du Colombier	[3.63] Invoking setpagedevice with an undefined key, even with
33537dd7cddfSDavid du ColombierPolicy = 1, caused an error.  (gs_setpd.ps)
33547dd7cddfSDavid du Colombier	[3.62] Setting the PageSize policy to 1 and then trying to set the
33557dd7cddfSDavid du Colombierpage size caused an error if FIXEDMEDIA was selected.  (gs_setpd.ps)
33567dd7cddfSDavid du Colombier	[3.61] Rotated characters were rendered incorrectly (bug introduced
33577dd7cddfSDavid du Colombierin 3.52).  (gstype1.c)
33587dd7cddfSDavid du Colombier	[3.60] currentscreen and currentcolorscreen could give an error if
33597dd7cddfSDavid du Colombierthe current screen was set with sethalftone (or, for currentscreen,
33607dd7cddfSDavid du Colombiersetcolorscreen).  (gs_dps1.ps)
33617dd7cddfSDavid du Colombier	[3.60] Streams could get removed from a bookkeeping list
33627dd7cddfSDavid du Colombierprematurely, and wind up dangling.  (zfile.c)
33637dd7cddfSDavid du Colombier	[3.60] Multiple -I switches set the search path incorrectly.
33647dd7cddfSDavid du Colombier(gsmain.c)
33657dd7cddfSDavid du Colombier	[3.60] Fonts could wind up with a pointer to the wrong VM space,
33667dd7cddfSDavid du Colombiercausing potential GC or save/restore confusion.  (zfont2.c)
33677dd7cddfSDavid du Colombier	[3.60] upath could leave garbage on the stack if it failed.
33687dd7cddfSDavid du Colombier(gs_dps1.ps)
33697dd7cddfSDavid du Colombier
33707dd7cddfSDavid du Colombier[3.61] Extends the client API to allow for pushing values onto the operand
33717dd7cddfSDavid du Colombierstack.  (imain.h, gs.c, gsmain.c)
33727dd7cddfSDavid du Colombier
33737dd7cddfSDavid du Colombier[3.61] Defines a .setdefaultscreen procedure that sets the default halftone
33747dd7cddfSDavid du Colombierscreen, transfer function, and stroke adjustment for the current device.
33757dd7cddfSDavid du ColombierChanges selectdevice and setpagedevice so that they call .setdefaultscreen;
33767dd7cddfSDavid du Colombiersetpagedevice calls .setdefaultscreen before calling the Install procedure,
33777dd7cddfSDavid du Colombierso that Install can set different parameters if it wishes.  Note that
33787dd7cddfSDavid du Colombiersetdevice does not do this.  (gs_init.ps, gs_setpd.ps)
33797dd7cddfSDavid du Colombier
33807dd7cddfSDavid du Colombier[3.60] Speeds up rasterizing characters into the cache a little.
33817dd7cddfSDavid du Colombier(gs_type0.ps)
33827dd7cddfSDavid du Colombier
33837dd7cddfSDavid du Colombier[3.60] Changes the default limit on the size of cached characters from the
33847dd7cddfSDavid du Colombiermaximum of (18 points or 5 times the "average" character size) to (18 points
33857dd7cddfSDavid du Colombieror 1% of the total cache size).  (gs_init.ps)
33867dd7cddfSDavid du Colombier
33877dd7cddfSDavid du Colombier[3.60] Implements parts of the Type 1 BuildChar callout in C.  (gs_type1.ps,
33887dd7cddfSDavid du Colombierzchar.c)
33897dd7cddfSDavid du Colombier
33903ff48bf5SDavid du Colombier</pre><h3><a name="V3.53_Interpreter_PDF"></a>Interpreter (PDF)</h3><pre>
33917dd7cddfSDavid du Colombier
33927dd7cddfSDavid du ColombierFixes bugs:
33937dd7cddfSDavid du Colombier	[3.62] If a PDF file substituted a calibrated color space for the
33947dd7cddfSDavid du ColombierDeviceGray or DeviceRGB color space using a ColorSpace resource, the
33957dd7cddfSDavid du ColombierPostScript file that pdf2ps produced from that PDF file caused an error.
33967dd7cddfSDavid du Colombier(gs_pdf.ps)
33977dd7cddfSDavid du Colombier	[3.61] Tf set the current text font twice, and interacted with
33987dd7cddfSDavid du Colombierpdf2ps in an awkward way.  (gs_pdf.ps, pdf_2ps.ps, pdf_font.ps)
33997dd7cddfSDavid du Colombier	[3.61] If a font had variant Widths, it could get confused in the
34007dd7cddfSDavid du Colombiercache with the underlying font.  (pdf_font.ps)
34017dd7cddfSDavid du Colombier	[3.61] If a character appeared twice in an encoding and the font
34027dd7cddfSDavid du Colombierspecified different Widths values for the two occurrences, the last Width
34037dd7cddfSDavid du Colombierwould be used.  We patched this to ignore zero Widths, which is not the
34047dd7cddfSDavid du Colombiercorrect solution but which almost always produces correct output.
34057dd7cddfSDavid du Colombier(pdf_font.ps)
34067dd7cddfSDavid du Colombier	[3.61] Arrays containing nulls didn't print out correctly (bug
34077dd7cddfSDavid du Colombierintroduced in 3.60).  (gs_init.ps)
34087dd7cddfSDavid du Colombier	[3.61] Some PDF files contain very large dictionaries, which caused
34097dd7cddfSDavid du Colombiera stackoverflow.  (pdf_base.ps)
34107dd7cddfSDavid du Colombier	[3.60] The length of an image's data was sometimes calculated
34117dd7cddfSDavid du Colombierincorrectly, causing an error when converting PDF to PostScript.
34127dd7cddfSDavid du Colombier(pdf_draw.ps)
34137dd7cddfSDavid du Colombier	[3.60] If word spacing and/or text spacing was non-zero, an error
34147dd7cddfSDavid du Colombiercould occur.  (gs_pdf.ps)
34157dd7cddfSDavid du Colombier	[3.60] Text that was both filled and stroked caused an error.
34167dd7cddfSDavid du Colombier(gs_pdf.ps)
34177dd7cddfSDavid du Colombier
34187dd7cddfSDavid du Colombier[3.61] Speeds up the initial processing of PDF files by caching the map from
34197dd7cddfSDavid du Colombierpage numbers to page objects, and by not scanning the outlines if we aren't
34207dd7cddfSDavid du Colombierproducing PostScript output.  (pdf_2ps.ps, pdf_base.ps, pdf_main.ps)
34217dd7cddfSDavid du Colombier
34223ff48bf5SDavid du Colombier</pre><h3><a name="V3.53_Streams"></a>Streams</h3><pre>
34237dd7cddfSDavid du Colombier
34247dd7cddfSDavid du ColombierFixes bugs:
34257dd7cddfSDavid du Colombier	[3.60] When closing an encoding filter stream whose target was also
34267dd7cddfSDavid du Colombiera filter, the latter could get called incorrectly with last = 1, possibly
34277dd7cddfSDavid du Colombiermore than once, leading to premature EOD markers.  (stream.c)
34287dd7cddfSDavid du Colombier	[3.60] The LZW-compatible encoder put out an incorrect end-of-data
34297dd7cddfSDavid du Colombiercode.  (slzwce.c)
34307dd7cddfSDavid du Colombier	[3.60] The LZW-compatible encoder didn't put out a reset code soon
34317dd7cddfSDavid du Colombierenough.  (slzwce.c)
34327dd7cddfSDavid du Colombier	[3.60] Doing a sgets on a closed stream could call sreadbuf,
34337dd7cddfSDavid du Colombierpossibly causing an error.  (stream.c)
34347dd7cddfSDavid du Colombier
34353ff48bf5SDavid du Colombier</pre><h3><a name="V3.53_Library"></a>Library</h3><pre>
34367dd7cddfSDavid du Colombier
34377dd7cddfSDavid du ColombierFixes bugs:
34387dd7cddfSDavid du Colombier	[3.63] On 16-bit platforms, the computation of t2 and t3 in
34397dd7cddfSDavid du Colombiergx_curve_x_at_y could overflow, leading to incorrect output.  (gxpcopy.c)
34407dd7cddfSDavid du Colombier	[3.61] glyphshow displayed a character with code 0 rather than the
34417dd7cddfSDavid du Colombierrequested character (bug introduced in 3.60.)  (gschar.c)
34427dd7cddfSDavid du Colombier	[3.61] If trimming white space around a character reduced its
34437dd7cddfSDavid du Colombierraster, the character was garbled in the cache (bug introduced in 3.60.)
34447dd7cddfSDavid du Colombier(gxccman.c)
34457dd7cddfSDavid du Colombier	[3.61] colorimage would incorrectly convert white pixels to black if
34467dd7cddfSDavid du Colombierthe image color space was CMYK, the current color space was not CMYK, and
34477dd7cddfSDavid du Colombierthe number of bits per pixel was 4 or 8.  (gsimage2.c)
34487dd7cddfSDavid du Colombier	[3.61] Type 1 fonts that used the Flex feature applied hints to the
34497dd7cddfSDavid du Colombierpath multiple times, causing dropouts, uneven stems, and other problems (bug
34507dd7cddfSDavid du Colombierprobably introduced in 3.21).  (gstype1.c)
34517dd7cddfSDavid du Colombier	[3.61] If a Type 1 font used the Flex feature within the accent of
34527dd7cddfSDavid du Colombieran accented character defined with seac, the shape of the accent could be
34537dd7cddfSDavid du Colombierdistorted.  (gxtype1.h, gstype1.c)
34547dd7cddfSDavid du Colombier	[3.61] If a Type 1 font changed hints using the hint replacement
34557dd7cddfSDavid du Colombierfacility when the last operation was a closepath, the old hints would be
34567dd7cddfSDavid du Colombierapplied a second time, distorting the shape.  (gxhint2.c, gxhint3.c)
34577dd7cddfSDavid du Colombier	[3.60] Cached characters sometimes had extra blank space on the
34587dd7cddfSDavid du Colombierleft, leading to some unnecessary bit-shuffling when imaging them.
34597dd7cddfSDavid du Colombier(gxccman.c)
34607dd7cddfSDavid du Colombier	[3.60] The list of all-bands commands wasn't initialized/reset
34617dd7cddfSDavid du Colombierproperly.  (gxclist.c)
34627dd7cddfSDavid du Colombier	[3.60] Because of a typo in a macro formal parameter list, a private
34637dd7cddfSDavid du Colombiername was duplicated.  (gsstruct.h)
34647dd7cddfSDavid du Colombier	[3.60] Text display operations didn't update the current character
34657dd7cddfSDavid du Colombierin the enumerator structure during the fastest path through the code.  This
34667dd7cddfSDavid du Colombieronly matters to one very unusual commercial client.  (gschar.c)
34677dd7cddfSDavid du Colombier
34687dd7cddfSDavid du Colombier[3.61] Adds an alternative implementation of the core path filling algorithm
34697dd7cddfSDavid du Colombierthat is much faster on objects with curves but doesn't handle Y fattening.
34707dd7cddfSDavid du ColombierThis is the implementation that will normally be used for rasterizing
34717dd7cddfSDavid du Colombiercharacters.  This implementation rasterizes curves directly, without
34727dd7cddfSDavid du Colombierflattening them.  (gxfixed.h, gxpath.h, gzpath.h, gxdraw.c, gxfill.c,
34737dd7cddfSDavid du Colombiergxpcopy.c)
34747dd7cddfSDavid du Colombier
34757dd7cddfSDavid du Colombier[3.61] Speeds up the flattening of curves substantially by omitting more
34767dd7cddfSDavid du Colombierredundant points.  (gxpcopy.c)
34777dd7cddfSDavid du Colombier
34787dd7cddfSDavid du Colombier[3.61] Speeds up character bitmap compression a little more.  (gsbitops.h,
34797dd7cddfSDavid du Colombiergdevabuf.c, gsbitops.c, gxccman.c)
34807dd7cddfSDavid du Colombier
34817dd7cddfSDavid du Colombier[3.61] Speeds up anti-aliased graphics a bit by computing a bounding box
34827dd7cddfSDavid du Colombierbefore converting from oversampling to alpha values, and by speeding up the
34837dd7cddfSDavid du Colombierbounding box computation itself.  (gsbitops.h, gdevabuf.c, gsbitops.c,
34847dd7cddfSDavid du Colombiergxccman.c)
34857dd7cddfSDavid du Colombier
34867dd7cddfSDavid du Colombier[3.60] Speeds up getting the side bearing and width of a Type 1 charstring a
34877dd7cddfSDavid du Colombierlittle.  (gxtype1.h, gstype1.c)
34887dd7cddfSDavid du Colombier
34897dd7cddfSDavid du Colombier[3.60] Adds a compile-time option, ALPHA_LSB_FIRST, which causes
34907dd7cddfSDavid du Colombieralpha-sampled characters to be nibble-reversed in the cache.  This was
34917dd7cddfSDavid du Colombiercreated for a specialized application and does not interact well with the
34927dd7cddfSDavid du Colombierrest of the code.  (gsbitops.c)
34937dd7cddfSDavid du Colombier
34947dd7cddfSDavid du Colombier[3.60] Substantially speeds up entering anti-aliased characters in the
34957dd7cddfSDavid du Colombiercache, by removing white space before compressing rather than vice versa.
34967dd7cddfSDavid du Colombier(gsbitops.c, gxccman.c)
34977dd7cddfSDavid du Colombier
34983ff48bf5SDavid du Colombier</pre>
34997dd7cddfSDavid du Colombier
35003ff48bf5SDavid du Colombier<h2><a name="Version3.52"></a>Version 3.52 (limited) (10/6/95)</h2>
35013ff48bf5SDavid du Colombier
35023ff48bf5SDavid du Colombier<p>
35037dd7cddfSDavid du ColombierThis is an incremental release to fix a few problems in 3.51.  Since it is
35047dd7cddfSDavid du Colombierbeing made in an environment with no network connectivity, it will probably
35057dd7cddfSDavid du Colombiernot be released to the general public.  ****** THE CHANGES MARKED WITH ***
35067dd7cddfSDavid du ColombierBELOW WERE LOST IN THE PROCESS OF SHUFFLING FILESETS BETWEEN ENVIRONMENTS.
35077dd7cddfSDavid du ColombierTHEY ARE INCORPORATED IN 3.60 BUT NOT IN 3.52. ******
35087dd7cddfSDavid du Colombier
35093ff48bf5SDavid du Colombier<h3><a name="V3.52_Procedures"></a>Procedures</h3><pre>
35107dd7cddfSDavid du ColombierFixes bugs:
35117dd7cddfSDavid du Colombier	- The fileset included a meaningless empty file.  (acctest.ps)
35127dd7cddfSDavid du Colombier	*** The definition of pdfread.dev did an ADDMOD, not a SETMOD.
35137dd7cddfSDavid du Colombier(int.mak)
35147dd7cddfSDavid du Colombier
35153ff48bf5SDavid du Colombier</pre><h3><a name="V3.52_Interpreter"></a>Interpreter</h3><pre>
35167dd7cddfSDavid du Colombier
35177dd7cddfSDavid du ColombierFixes bugs:
35187dd7cddfSDavid du Colombier	- The RunLengthEncode filter used with a dictionary argument could
35197dd7cddfSDavid du Colombiergive a spurious error.  (zfilter.c)
35207dd7cddfSDavid du Colombier	- The fast form of the 'dup' operator failed to check for stack
35217dd7cddfSDavid du Colombieroverflow, which could lead to memory smashing.  (interp.c)
35227dd7cddfSDavid du Colombier	*** Level 1 configurations gave errors during initialization.
35237dd7cddfSDavid du Colombier(ialloc.c, iinit.c, ireclaim.c)
35247dd7cddfSDavid du Colombier	*** Attempting to look up or insert a noaccess string as a
35257dd7cddfSDavid du Colombierdictionary key converted the string to a name rather than giving an error.
35267dd7cddfSDavid du Colombier(idict.h, idict.c)
35277dd7cddfSDavid du Colombier
35287dd7cddfSDavid du ColombierAdds a C implementation of the .dicttomark (&gt;&gt;) procedure.  (gs_init.ps,
35297dd7cddfSDavid du Colombierzdict.c)
35307dd7cddfSDavid du Colombier
35317dd7cddfSDavid du Colombier*** Implements parts of the Type 1 BuildChar callout in C.  (gs_type1.ps,
35327dd7cddfSDavid du Colombierifont.h, zchar.c, zfont1.c, zfont2.c)
35337dd7cddfSDavid du Colombier
35343ff48bf5SDavid du Colombier</pre><h3><a name="V3.52_Library"></a>Library</h3><pre>
35357dd7cddfSDavid du Colombier
35367dd7cddfSDavid du ColombierFixes bugs:
35377dd7cddfSDavid du Colombier	- Braces were missing in an initializer.  (gxdcolor.h)
35387dd7cddfSDavid du Colombier	- Composite fonts with a non-zero translation in the FontMatrix
35397dd7cddfSDavid du Colombierpositioned characters incorrectly.  (gschar.c)
35407dd7cddfSDavid du Colombier	*** gsparam.c wouldn't compile with some versions of the Borland
35417dd7cddfSDavid du Colombiercompiler.  (gsparam.c)
35427dd7cddfSDavid du Colombier
35437dd7cddfSDavid du ColombierSpeeds up the handling of curve segments in Type 1 fonts a little.
35447dd7cddfSDavid du Colombier(gstype1.c)
35457dd7cddfSDavid du Colombier
35467dd7cddfSDavid du ColombierSpeeds up displaying very short strings a little.  (gschar.c)
35477dd7cddfSDavid du Colombier
35487dd7cddfSDavid du Colombier*** Implements parts of the Type 1 BuildChar callout in C.  (gxfont.h)
35497dd7cddfSDavid du Colombier
35503ff48bf5SDavid du Colombier</pre>
35517dd7cddfSDavid du Colombier
35523ff48bf5SDavid du Colombier<h2><a name="Version3.51"></a>Version 3.51 (9/27/95)</h2>
35533ff48bf5SDavid du Colombier
35543ff48bf5SDavid du Colombier<p>
35557dd7cddfSDavid du ColombierThis is the first public release since 3.33.  Its main features are a
35567dd7cddfSDavid du Colombierworking setpagedevice, a working PDF interpreter, and a working PDF to PS
35577dd7cddfSDavid du Colombierconverter.
35587dd7cddfSDavid du Colombier
35593ff48bf5SDavid du Colombier<h3><a name="V3.51_Documentation"></a>Documentation</h3><pre>
35607dd7cddfSDavid du Colombier
35617dd7cddfSDavid du ColombierFixes bugs:
35627dd7cddfSDavid du Colombier	- The -dSHORTERRORS switch wasn't documented in enough places.
35637dd7cddfSDavid du Colombier(current.doc, use.doc)
35647dd7cddfSDavid du Colombier	- The DLL documentation was internally inconsistent.  (dll.doc)
35657dd7cddfSDavid du Colombier	- The %pipe% file name syntax wasn't documented.  (language.doc)
35667dd7cddfSDavid du Colombier
35673ff48bf5SDavid du Colombier</pre><h3><a name="V3.51_Procedures"></a>Procedures</h3><pre>
35687dd7cddfSDavid du Colombier
35697dd7cddfSDavid du ColombierFixes bugs:
35707dd7cddfSDavid du Colombier	- caption.ps wasn't installed properly.  (unix-end.mak)
35717dd7cddfSDavid du Colombier	- geninit depended on $(gconfig_h) in an improper way.  (geninit.c,
35727dd7cddfSDavid du Colombierint.mak, *.mak)
35737dd7cddfSDavid du Colombier	- One script lacked the #!/bin/sh header.  (gsdj500)
35747dd7cddfSDavid du Colombier
35757dd7cddfSDavid du ColombierAdds the 24-bit color TIFF driver to all configurations that support
35767dd7cddfSDavid du Colombierblack-and-white TIFF.  (*.mak)
35777dd7cddfSDavid du Colombier
35783ff48bf5SDavid du Colombier</pre><h3><a name="V3.51_Utilities"></a>Utilities</h3><pre>
35797dd7cddfSDavid du Colombier
35807dd7cddfSDavid du ColombierFixes bugs:
35817dd7cddfSDavid du Colombier	- align.ps was omitted from the fileset.  (psfiles.doc, align.ps,
35827dd7cddfSDavid du Colombierunix-end.mak)
35837dd7cddfSDavid du Colombier
35843ff48bf5SDavid du Colombier</pre><h3><a name="V3.51_Drivers"></a>Drivers</h3><pre>
35857dd7cddfSDavid du Colombier
35867dd7cddfSDavid du ColombierFixes bugs:
35877dd7cddfSDavid du Colombier	- A driver had some \s in formal parameter lists.  (gdevcdj.c)
35887dd7cddfSDavid du Colombier	- A driver had some improper &amp;s.  (gdevtifs.c)
35897dd7cddfSDavid du Colombier	- The default MS Windows printer driver was very slow.  (gdevwpr2.c)
35907dd7cddfSDavid du Colombier	- The (newly restructured) TIFF drivers could produce a memory
35917dd7cddfSDavid du Colombieraccess error.  (gdevtifs.c)
35927dd7cddfSDavid du Colombier	- The CGM drivers referred to an obsolete structure member.
35937dd7cddfSDavid du Colombier(gdevcgm.c)
35947dd7cddfSDavid du Colombier	- The black-and-white H-P drivers didn't set the margins properly
35957dd7cddfSDavid du Colombier(again).  (gdevdjet.c)
35967dd7cddfSDavid du Colombier	- Several of the most common printer drivers omitted some scan lines
35977dd7cddfSDavid du Colombierat the bottom of the page.  (gdevprn.h, gdevprn.c)
35987dd7cddfSDavid du Colombier
35997dd7cddfSDavid du ColombierAt the request of the main OS/2 developer, adds a printer device for OS/2.
36007dd7cddfSDavid du Colombier(gdevos2p.c, os2.mak)
36017dd7cddfSDavid du Colombier
36027dd7cddfSDavid du ColombierMakes many changes to the stcolor driver, submitted by the developer just
36037dd7cddfSDavid du Colombierbefore the release.  (devices.doc, unix-end.mak, gdevstc.h, gdevstc*.c,
36047dd7cddfSDavid du Colombierstcinfo.ps, stcolor.ps, stcinfo.ps)
36057dd7cddfSDavid du Colombier
36063ff48bf5SDavid du Colombier</pre><h3><a name="V3.51_Platforms"></a>Platforms</h3><pre>
36077dd7cddfSDavid du Colombier
36087dd7cddfSDavid du ColombierFixes bugs:
36097dd7cddfSDavid du Colombier	- usertime (and realtime) were broken on VMS.  (gp_vms.c)
36107dd7cddfSDavid du Colombier	- The 32-bit MS Windows DLL control file had a typo.  (gsdll32.def)
36117dd7cddfSDavid du Colombier
36127dd7cddfSDavid du ColombierRemoves the color inkjet drivers from the 16-bit Windows executable, because
36137dd7cddfSDavid du Colombierthey overflow the 64K default data segment; adds PCX, TIFF, and BMP output
36147dd7cddfSDavid du Colombierformats.  (bcwin.mak)
36157dd7cddfSDavid du Colombier
36163ff48bf5SDavid du Colombier</pre><h3><a name="V3.51_Interpreter"></a>Interpreter</h3><pre>
36177dd7cddfSDavid du Colombier
36187dd7cddfSDavid du ColombierFixes bugs:
36197dd7cddfSDavid du Colombier	- A routine was declared 'private' inconsistently.  (zcie.c)
36207dd7cddfSDavid du Colombier	- -dSHORTERRORS didn't remove enough non-Adobe error output.
36217dd7cddfSDavid du Colombier(gs_init.ps)
36227dd7cddfSDavid du Colombier
36233ff48bf5SDavid du Colombier</pre><h3><a name="V3.51_Interpreter_PDF"></a>Interpreter (PDF)</h3><pre>
36247dd7cddfSDavid du Colombier
36257dd7cddfSDavid du ColombierFixes bugs:
36267dd7cddfSDavid du Colombier	- The ProcSet relied on the presence of NullFont.  (gs_pdf.ps)
36277dd7cddfSDavid du Colombier
36283ff48bf5SDavid du Colombier</pre><h3><a name="V3.51_Library"></a>Library</h3><pre>
36297dd7cddfSDavid du Colombier
36307dd7cddfSDavid du ColombierFixes bugs:
36317dd7cddfSDavid du Colombier	- There was an extraneous \ outside a macro.  (gsline.c)
36327dd7cddfSDavid du Colombier	- Scaling up a black-and-white image could caused many scan lines to
36337dd7cddfSDavid du Colombierbe inverted.  (gsimage1.c)
36347dd7cddfSDavid du Colombier	- The initial clipping path did not take Margins into account
36357dd7cddfSDavid du Colombierproperly.  (gxdevice.h, gdevxalt.c, gscoord.c, gsdevice.c, gsdevmem.c,
36367dd7cddfSDavid du Colombiergsdparam.c, gspath.c)
36377dd7cddfSDavid du Colombier	- If banding was required, characters could come out as solid black
36387dd7cddfSDavid du Colombierrectangles.  (gxclist.c, gxclread.c)
36397dd7cddfSDavid du Colombier
36403ff48bf5SDavid du Colombier</pre>
36417dd7cddfSDavid du Colombier
36423ff48bf5SDavid du Colombier<h2><a name="Version3.50"></a>Version 3.50 (limited) (9/24/95)</h2>
36433ff48bf5SDavid du Colombier
36443ff48bf5SDavid du Colombier<p>
36457dd7cddfSDavid du ColombierThis is the last limited bug-fix release during beta test.  The color
36467dd7cddfSDavid du ColombierDeskJet drivers are broken (they sometimes produce black rectangles instead
36477dd7cddfSDavid du Colombierof characters); we will fix this in the next release.
36483ff48bf5SDavid du Colombier<p>
36497dd7cddfSDavid du ColombierThe following issues have been postponed to an unspecified future release:
36503ff48bf5SDavid du Colombier<ul>
36513ff48bf5SDavid du Colombier<li>	- Filling areas often writes pixels twice, causing incorrect
36523ff48bf5SDavid du Colombieroutput
36537dd7cddfSDavid du Colombierwith certain unusual RasterOp values.  [1.814]
36543ff48bf5SDavid du Colombier<li>	- The tar.gz archives should include a subdirectory like
36553ff48bf5SDavid du Colombiergs-3.46/ in
36567dd7cddfSDavid du Colombierthe file names.
36573ff48bf5SDavid du Colombier<li>	- The CCITTFaxDecode filter should skip initial junk if
36583ff48bf5SDavid du ColombierEndOfLine =
36597dd7cddfSDavid du Colombiertrue.  [1844 8/24/95, NRE]
36603ff48bf5SDavid du Colombier</ul>
36617dd7cddfSDavid du Colombier
36623ff48bf5SDavid du Colombier<h3><a name="V3.50_Procedures"></a>Procedures</h3><pre>
36637dd7cddfSDavid du ColombierFixes bugs:
36647dd7cddfSDavid du Colombier	- The name of the new 24-bit TIFF driver was incorrect in one place.
36657dd7cddfSDavid du Colombier(vms.mak)
36667dd7cddfSDavid du Colombier
36673ff48bf5SDavid du Colombier</pre><h3><a name="V3.50_Utilities"></a>Utilities</h3><pre>
36687dd7cddfSDavid du Colombier
36697dd7cddfSDavid du ColombierAdds a new utility to put a caption in a box at the bottom of each page.
36707dd7cddfSDavid du Colombier(caption.ps)
36717dd7cddfSDavid du Colombier
36723ff48bf5SDavid du Colombier</pre><h3><a name="V3.50_Drivers"></a>Drivers</h3><pre>
36737dd7cddfSDavid du Colombier
36747dd7cddfSDavid du ColombierFixes bugs:
36757dd7cddfSDavid du Colombier	- The PC display devices weren't page devices.  Probably all the
36767dd7cddfSDavid du Colombierother display and window system devices should be made page devices too, but
36777dd7cddfSDavid du Colombierwe aren't going to bother tracking them down.  (gdevpcfb.c)
36787dd7cddfSDavid du Colombier	- There was a lot of duplicated code in the TIFF drivers.
36797dd7cddfSDavid du Colombier(gdevtifs.h, gdevtfax.c, gdevtfnx.c, gdevtifs.c)
36807dd7cddfSDavid du Colombier
36817dd7cddfSDavid du ColombierUpdates the bjc600 / bjc800 drivers with changes from the author.
36827dd7cddfSDavid du Colombier(devices.doc, gdevbjc.h, gdevcdj.c)
36837dd7cddfSDavid du Colombier
36843ff48bf5SDavid du Colombier</pre><h3><a name="V3.50_Interpreter"></a>Interpreter</h3><pre>
36857dd7cddfSDavid du Colombier
36867dd7cddfSDavid du ColombierFixes bugs:
36877dd7cddfSDavid du Colombier	- Building with COMPILE_INITS=1 produced a stackunderflow error.
36887dd7cddfSDavid du Colombier(gs_pdf_e.ps)
36897dd7cddfSDavid du Colombier	- An internal operator didn't have a name.  (ztoken.c)
36907dd7cddfSDavid du Colombier	- Some error and information messages weren't in the Adobe format.
36917dd7cddfSDavid du Colombier(gs_fonts.ps, gs_init.ps)
36927dd7cddfSDavid du Colombier	- Some common Adobe compatibility operators weren't implemented:
36937dd7cddfSDavid du Colombierpagemargin, pageparams, setpagemargin.  (gs_statd.ps, gs_lev2.ps)
36947dd7cddfSDavid du Colombier	- setpageparams set Margins rather than PageOffset.  (gs_lev2.ps)
36957dd7cddfSDavid du Colombier	- setpage and setpageparams didn't set Orientation.  (gs_lev2.ps)
36967dd7cddfSDavid du Colombier	- If the end of an input buffer fell just after the / of a literal
36977dd7cddfSDavid du Colombiername, a memory access error could occur.  (iscan.c)
36987dd7cddfSDavid du Colombier	- When the interpreter returned from gs_[main_]run_string_continue,
36997dd7cddfSDavid du Colombierthere could be an extra value on the operand stack.  (iscan.h, istream.h,
37007dd7cddfSDavid du Colombierinterp.c, iscan.c, zfileio.c, zfproc.c, zpaint.c, ztoken.c)
37017dd7cddfSDavid du Colombier	- If the character cache was disabled, or if a character was too
37027dd7cddfSDavid du Colombierlarge to be cached, returning from a font BuildChar procedure could do an
37037dd7cddfSDavid du Colombiererasepage.  (zchar.c)
37047dd7cddfSDavid du Colombier
37057dd7cddfSDavid du ColombierA minor change was required for compatibility with the library change for
37067dd7cddfSDavid du Colombierimage devices.  (zdevice.c)
37077dd7cddfSDavid du Colombier
37087dd7cddfSDavid du ColombierAdds a -dSHORTERRORS switch that changes some of the common error and
37097dd7cddfSDavid du Colombierwarning messages for greater Adobe compatibility.  (gs_init.ps, gs_fonts.ps)
37107dd7cddfSDavid du Colombier
37113ff48bf5SDavid du Colombier</pre><h3><a name="V3.50_Interpreter_PDF"></a>Interpreter (PDF)</h3><pre>
37127dd7cddfSDavid du Colombier
37137dd7cddfSDavid du ColombierFixes bugs:
37147dd7cddfSDavid du Colombier	- If a CharProc for a Type 3 font did a BT/ET, the graphics state
37157dd7cddfSDavid du Colombiercould get confused.  (gs_pdf.ps)
37167dd7cddfSDavid du Colombier	- If a Tf occurred inside a BT/ET, it didn't take effect on
37177dd7cddfSDavid du Colombiersubsequent BT/ETs.  (gs_pdf.ps)
37187dd7cddfSDavid du Colombier
37193ff48bf5SDavid du Colombier</pre><h3><a name="V3.50_Library"></a>Library</h3><pre>
37207dd7cddfSDavid du Colombier
37217dd7cddfSDavid du ColombierFixes bugs:
37227dd7cddfSDavid du Colombier	- There was no way to control whether an image device was a page
37237dd7cddfSDavid du Colombierdevice.  Fixing this required a NON-BACKWARD-COMPATIBLE CHANGE to
37247dd7cddfSDavid du Colombiergs_makewordimagedevice and gs_initialize_wordimagedevice to take a Boolean
37257dd7cddfSDavid du Colombierpage_device argument.  Fortunately, this change affects only a few obscure
37267dd7cddfSDavid du Colombierlibrary clients.  (gsdevice.h, gsdevmem.c)
37277dd7cddfSDavid du Colombier
37287dd7cddfSDavid du ColombierAdds translation capability to clipping devices.  This isn't used anywhere
37297dd7cddfSDavid du Colombieryet.  (gxcpath.h, gxcpath.c)
37307dd7cddfSDavid du Colombier
37317dd7cddfSDavid du ColombierAdds procedures for doing unaligned copy_xxx operations.  These were added
37327dd7cddfSDavid du Colombierfor a customer.  (gxdevice.h, gsdevice.c)
37337dd7cddfSDavid du Colombier
37347dd7cddfSDavid du ColombierChanges the (undocumented) return value of gs_setcachedevice[2]: they used
37357dd7cddfSDavid du Colombierto return 1 if the current show operation was a non-displaying one
37367dd7cddfSDavid du Colombier(stringwidth or cshow), and now return 1 if the cache device was just
37377dd7cddfSDavid du Colombierinstalled.  This change was required to fix the BuildChar page clearing bug
37387dd7cddfSDavid du Colombierin the interpreter.  THIS IS A NON-BACKWARD-COMPATIBLE CHANGE, but as far as
37397dd7cddfSDavid du ColombierI know, there aren't any external clients of these routines.  (gschar.h,
37407dd7cddfSDavid du Colombiergschar.c)
37417dd7cddfSDavid du Colombier
37423ff48bf5SDavid du Colombier</pre>
37437dd7cddfSDavid du Colombier
37443ff48bf5SDavid du Colombier<hr>
37453ff48bf5SDavid du Colombier
37463ff48bf5SDavid du Colombier<h2><a name="Version3.49"></a>Version 3.49 (limited) (9/20/95)</h2>
37473ff48bf5SDavid du Colombier
37483ff48bf5SDavid du Colombier<p>
37497dd7cddfSDavid du ColombierThis is another bug-fix release during beta test.  There are other bugs
37507dd7cddfSDavid du Colombieroutstanding, but the ones I know about right now are all platform-specific.
37517dd7cddfSDavid du Colombier
37523ff48bf5SDavid du Colombier<h3><a name="V3.49_Documentation"></a>Documentation</h3><pre>
37537dd7cddfSDavid du ColombierFixes bugs:
37547dd7cddfSDavid du Colombier	- make.doc didn't mention that the .def files are needed to build a
37557dd7cddfSDavid du ColombierMS Windows executable.  (make.doc)
37567dd7cddfSDavid du Colombier
37573ff48bf5SDavid du Colombier</pre><h3><a name="V3.49_Procedures"></a>Procedures</h3><pre>
37587dd7cddfSDavid du Colombier
37597dd7cddfSDavid du ColombierFixes bugs:
37607dd7cddfSDavid du Colombier	- There were some forward references to macro definitions in the
37617dd7cddfSDavid du Colombiermakefiles.  (int.mak, lib.mak)
37627dd7cddfSDavid du Colombier	- The default device for library configurations was the null page
37637dd7cddfSDavid du Colombierdevice, not the first device in DEVICE_DEVS.  (ugcclib.mak)
37647dd7cddfSDavid du Colombier
37653ff48bf5SDavid du Colombier</pre><h3><a name="V3.49_Drivers"></a>Drivers</h3><pre>
37667dd7cddfSDavid du Colombier
37677dd7cddfSDavid du ColombierFixes bugs:
37687dd7cddfSDavid du Colombier	- The BJC600 / BJC800 drivers were missing a header file.
37697dd7cddfSDavid du Colombier(gdevbjc.h, gdevcdj.c)
37707dd7cddfSDavid du Colombier	- A procedure name was used in two different files.  (gdevcdj.c)
37717dd7cddfSDavid du Colombier	- The PCX driver didn't return an error code in case of failure.
37727dd7cddfSDavid du Colombier(gdevpcx.c)
37737dd7cddfSDavid du Colombier	- The X Windows driver produced some confusing warning messages.
37747dd7cddfSDavid du Colombier(gdevxini.c)
37757dd7cddfSDavid du Colombier	- Some names were duplicated between drivers.  (gdevepsc.c)
37767dd7cddfSDavid du Colombier	- The X driver maintained its own, peculiar initial matrix even if
37777dd7cddfSDavid du ColombierGhostview wasn't involved.  (gdevx.c)
37787dd7cddfSDavid du Colombier
37797dd7cddfSDavid du ColombierWith the permission of the author, changes the 24-bit TIFF license from GNU
37807dd7cddfSDavid du Colombierto Aladdin.  (gdevtfnx.c)
37817dd7cddfSDavid du Colombier
37823ff48bf5SDavid du Colombier</pre><h3><a name="V3.49_Platforms"></a>Platforms</h3><pre>
37837dd7cddfSDavid du Colombier
37847dd7cddfSDavid du ColombierFixes bugs:
37857dd7cddfSDavid du Colombier	- The VMS build scripts were out of sync with the makefiles (again).
37867dd7cddfSDavid du Colombier(modules.lis, vms.mak)
37877dd7cddfSDavid du Colombier
37883ff48bf5SDavid du Colombier</pre><h3><a name="V3.49_Interpreter"></a>Interpreter</h3><pre>
37897dd7cddfSDavid du Colombier
37907dd7cddfSDavid du ColombierFixes bugs:
37917dd7cddfSDavid du Colombier	- When the requested media size matched an available size exactly
37927dd7cddfSDavid du Colombierwith a 90 degree rotation, Orientation was ignored.  (zmedia2.c)
37937dd7cddfSDavid du Colombier
37947dd7cddfSDavid du ColombierMakes zcurrentdevice extern.  (opextern.h, zdevice.c)
37957dd7cddfSDavid du Colombier
37963ff48bf5SDavid du Colombier</pre><h3><a name="V3.49_Library"></a>Library</h3><pre>
37977dd7cddfSDavid du Colombier
37987dd7cddfSDavid du ColombierFixes bugs:
37997dd7cddfSDavid du Colombier	- A couple of places used memcpy instead of memmove.  (gxclread.c)
38007dd7cddfSDavid du Colombier	- If a bitmap image was compressed with RLE compression in a band
38017dd7cddfSDavid du Colombierlist, it would cause an error on decompression.  (gxclread.c)
38027dd7cddfSDavid du Colombier	- The representation of colors in the band list was needlessly
38037dd7cddfSDavid du Colombierinefficient.  (gxcldev.h, gxclist.c, gxclread.c)
38047dd7cddfSDavid du Colombier	- When using colored halftones, snowflak.ps crashed with an invalid
38057dd7cddfSDavid du Colombiermemory access.  More generally, any use of halftones could cause the garbage
38067dd7cddfSDavid du Colombiercollector to make an invalid access.  (gsstate.c)
38077dd7cddfSDavid du Colombier
38087dd7cddfSDavid du ColombierAdds some more code for paths in band lists, but again doesn't activate it.
38097dd7cddfSDavid du Colombier(gxcldev.h, gxpath.h, gzline.h, gsline.c, gspath1.c, gxclist.c, gxclread.c,
38107dd7cddfSDavid du Colombiergxpath.c)
38117dd7cddfSDavid du Colombier
38123ff48bf5SDavid du Colombier</pre>
38137dd7cddfSDavid du Colombier
38143ff48bf5SDavid du Colombier<h2><a name="Version3.48"></a>Version 3.48 (limited) (9/17/95)</h2>
38153ff48bf5SDavid du Colombier
38163ff48bf5SDavid du Colombier<p>
38177dd7cddfSDavid du ColombierThis is the second bug-fix release during beta test.  Among other things, it
38187dd7cddfSDavid du Colombierfixes a bug introduced in 3.47 that caused all PDF files to give an error.
38193ff48bf5SDavid du Colombier
38203ff48bf5SDavid du Colombier<p>
38217dd7cddfSDavid du Colombier******NOTE: the BJC600 and BCJ800 drivers do not work in this release,
38227dd7cddfSDavid du Colombierbecause we didn't get a file from the author in time.  They will compile,
38237dd7cddfSDavid du Colombierbut not run.  This will be fixed in the next round.
38247dd7cddfSDavid du Colombier
38253ff48bf5SDavid du Colombier<h3><a name="V3.48_Documentation"></a>Documentation</h3><pre>
38267dd7cddfSDavid du ColombierFixes bugs:
38277dd7cddfSDavid du Colombier	- Alan Barclay's contact information was wrong.  (README)
38287dd7cddfSDavid du Colombier
38293ff48bf5SDavid du Colombier</pre><h3><a name="V3.48_Procedures"></a>Procedures</h3><pre>
38307dd7cddfSDavid du Colombier
38317dd7cddfSDavid du ColombierFixes bugs:
38327dd7cddfSDavid du Colombier	- The linker path for Watcom C++ 10.5 was wrong.  (wccommon.mak)
38337dd7cddfSDavid du Colombier	- There was a syntax error in a batch file.  (pdf2ps.bat)
38347dd7cddfSDavid du Colombier	- The VMS build script didn't have entries for some printers.
38357dd7cddfSDavid du Colombier(vms.mak)
38367dd7cddfSDavid du Colombier
38377dd7cddfSDavid du ColombierAdds the bjc600 and bjc800 devices on all platforms that already include the
38387dd7cddfSDavid du Colombiercolor DeskJet devices.  (*.mak)
38397dd7cddfSDavid du Colombier
38403ff48bf5SDavid du Colombier</pre><h3><a name="V3.48_Drivers"></a>Drivers</h3><pre>
38417dd7cddfSDavid du Colombier
38427dd7cddfSDavid du ColombierFixes bugs:
38437dd7cddfSDavid du Colombier	- The H-P drivers didn't reposition the cursor properly at the
38447dd7cddfSDavid du Colombierbeginning of pages after the first page, causing the image to be shifted
38457dd7cddfSDavid du Colombierdown slightly and cut off at the bottom.  (gdevdjet.c)
38467dd7cddfSDavid du Colombier	- The x11alpha driver was extremely slow.  (gdevxalt.c)
38477dd7cddfSDavid du Colombier	- The -g switch by itself didn't work for the X Windows driver.
38487dd7cddfSDavid du Colombier(gdevxini.c)
38497dd7cddfSDavid du Colombier	- .installpagedevice can get a rangecheck on MS Windows because the
38507dd7cddfSDavid du ColombierHWColorMap can change spontaneously.  (gs_setpd.ps)
38517dd7cddfSDavid du Colombier
38527dd7cddfSDavid du ColombierUpdates the bjc600 and bjc800 drivers with new versions from Yves Arrouye.
38537dd7cddfSDavid du Colombier(gdevcdj.c)
38547dd7cddfSDavid du Colombier
38557dd7cddfSDavid du ColombierAdds a user-contributed driver that writes uncompressed 24-bit RGB TIFF
38567dd7cddfSDavid du Colombierimages in a format that is standard on NeXT platforms.  This driver is
38577dd7cddfSDavid du Colombiergoverned by the GNU license and is therefore separated from the rest of the
38587dd7cddfSDavid du ColombierAladdin distribution.  (gdevtfnx.c)
38597dd7cddfSDavid du Colombier
38603ff48bf5SDavid du Colombier</pre><h3><a name="V3.48_Platforms"></a>Platforms</h3><pre>
38617dd7cddfSDavid du Colombier
38627dd7cddfSDavid du ColombierFixes bugs:
38637dd7cddfSDavid du Colombier	- There was an undefined reference to clock_gettime on some Unix
38647dd7cddfSDavid du Colombiersystems.  (gp_unix.c)
38657dd7cddfSDavid du Colombier	- The new gp_fopen routine had several errors.  (gp_vms.c)
38667dd7cddfSDavid du Colombier
38673ff48bf5SDavid du Colombier</pre><h3><a name="V3.48_Interpreter"></a>Interpreter</h3><pre>
38687dd7cddfSDavid du Colombier
38697dd7cddfSDavid du ColombierFixes bugs:
38707dd7cddfSDavid du Colombier	- Some routines that should be main-instance-specific weren't.
38717dd7cddfSDavid du Colombier(imain.h, main.h, gsmain.c)
38727dd7cddfSDavid du Colombier	- sethalftone with a Type 2 or Type 4 halftone didn't work on CMYK
38737dd7cddfSDavid du Colombierdevices.  (zht2.c)
38747dd7cddfSDavid du Colombier	- Setting A4 paper as the default in gs_init.ps, or specifying
38757dd7cddfSDavid du Colombier-dPAPERSIZE, conflicted with -g.  (gs_init.ps)
38767dd7cddfSDavid du Colombier	- The maximum value of a single-precision float wasn't correct on
38777dd7cddfSDavid du ColombierVAX systems.  (math_.h, iscannum.c)
38787dd7cddfSDavid du Colombier	- Some integer expressions were passed as floating point arguments.
38797dd7cddfSDavid du Colombier(gs.c, zmedia2.c)
38807dd7cddfSDavid du Colombier	- Media selection in setpagedevice was broken (again), as of 3.46.
38817dd7cddfSDavid du Colombier(gs_setpd.ps, zmedia2.c)
38827dd7cddfSDavid du Colombier
38833ff48bf5SDavid du Colombier</pre><h3><a name="V3.48_Interpreter_PDF"></a>Interpreter (PDF)</h3><pre>
38847dd7cddfSDavid du Colombier
38857dd7cddfSDavid du ColombierFixes bugs:
38867dd7cddfSDavid du Colombier	- Substituted color spaces caused an error.  (gs_pdf.ps,
38877dd7cddfSDavid du Colombierpdf_draw.ps)
38887dd7cddfSDavid du Colombier
38893ff48bf5SDavid du Colombier</pre><h3><a name="V3.48_Library"></a>Library</h3><pre>
38907dd7cddfSDavid du Colombier
38917dd7cddfSDavid du ColombierFixes bugs:
38927dd7cddfSDavid du Colombier	- If a halftone had no non-default components that matched the
38937dd7cddfSDavid du Colombierdevice's primary colors, the result would be a solid color rather than a
38947dd7cddfSDavid du Colombierhalftone using the default screen.  (gsht.c)
38957dd7cddfSDavid du Colombier	- sethalftone with a Type 2 or Type 4 halftone didn't work on CMYK
38967dd7cddfSDavid du Colombierdevices.  (gxht.h, gsht.c, gsht1.c)
38977dd7cddfSDavid du Colombier	- The new gp_fopen routine wasn't being used.  (gsiodev.c)
38987dd7cddfSDavid du Colombier	- A mixing of float and fixed values caused a clipping region to be
38997dd7cddfSDavid du Colombierpossibly incorrect by up to 1 pixel.  (gspaint.c)
39007dd7cddfSDavid du Colombier	- A function definition was inconsistent with the prototype.
39017dd7cddfSDavid du Colombier(gspath1.c)
39027dd7cddfSDavid du Colombier
39037dd7cddfSDavid du ColombierAdds preliminary code for including paths in band lists, but doesn't
39047dd7cddfSDavid du Colombieractivate any of it.  (lib.mak, gxcldev.h, gxclist.c, gxclread.c)
39057dd7cddfSDavid du Colombier
39063ff48bf5SDavid du Colombier</pre>
39077dd7cddfSDavid du Colombier
39083ff48bf5SDavid du Colombier<h2><a name="Version3.47"></a>Version 3.47 (limited) (9/14/95)</h2>
39093ff48bf5SDavid du Colombier
39103ff48bf5SDavid du Colombier<p>
39117dd7cddfSDavid du ColombierThis is a bug-fix release during beta test.  It is meant to have no new
39127dd7cddfSDavid du Colombierfunctionality, although in the case of setpagedevice that's stretching
39137dd7cddfSDavid du Colombierthings a little.
39147dd7cddfSDavid du Colombier
39153ff48bf5SDavid du Colombier<h3><a name="V3.47_Documentation"></a>Documentation</h3><pre>
39167dd7cddfSDavid du ColombierFixes bugs:
39177dd7cddfSDavid du Colombier	- The Mac documentation still referred to IJG JPEG v5a rather than
39187dd7cddfSDavid du Colombierv6.  (make.doc)
39197dd7cddfSDavid du Colombier	- The RasterOp texture device was identified incorrectly.
39207dd7cddfSDavid du Colombier(gdevmrop.c)
39217dd7cddfSDavid du Colombier	- use.doc and psfiles.doc didn't mention the PDF-related files.
39227dd7cddfSDavid du Colombier(psfiles.doc, use.doc)
39237dd7cddfSDavid du Colombier	- psview is no longer available.  (README)
39247dd7cddfSDavid du Colombier	- current.doc didn't document the recognized setpagedevice keys.
39257dd7cddfSDavid du Colombier(current.doc)
39267dd7cddfSDavid du Colombier
39273ff48bf5SDavid du Colombier</pre><h3><a name="V3.47_Procedures"></a>Procedures</h3><pre>
39287dd7cddfSDavid du Colombier
39297dd7cddfSDavid du ColombierFixes bugs:
39307dd7cddfSDavid du Colombier	- Many utility programs weren't included in the Unix 'install' list.
39317dd7cddfSDavid du Colombier(unix-end.mak)
39327dd7cddfSDavid du Colombier	- It wasn't at all convenient to make configurations without the BCP
39337dd7cddfSDavid du Colombieror other non-standard filters.  (*.mak, int.mak, modules.lis, zfilter2.c,
39347dd7cddfSDavid du Colombierzfilterx.c)
39357dd7cddfSDavid du Colombier	- The gconfig.c and iconfig.c files weren't deleted after
39367dd7cddfSDavid du Colombiercompilation.  (int.mak, lib.mak)
39377dd7cddfSDavid du Colombier	- unix-end.mak referred to the nonexistent macros INT{1,2}_MAK.
39387dd7cddfSDavid du Colombier(unix-end.mak)
39397dd7cddfSDavid du Colombier	- The rules for building the dfax drivers were incorrect.  (devs.mak)
39407dd7cddfSDavid du Colombier	- Omitting filter.dev produced an undefined reference.  (int.mak)
39417dd7cddfSDavid du Colombier
39427dd7cddfSDavid du ColombierAdds a customer-contributed makefile for Microsoft Visual C++ 2.n under
39437dd7cddfSDavid du ColombierWindows NT.  (msvcwint.mak)
39447dd7cddfSDavid du Colombier
39453ff48bf5SDavid du Colombier</pre><h3><a name="V3.47_Utilities"></a>Utilities</h3><pre>
39467dd7cddfSDavid du Colombier
39477dd7cddfSDavid du ColombierFixes bugs:
39487dd7cddfSDavid du Colombier	- The JPEG utility didn't support the new progressive JPEG modes,
39497dd7cddfSDavid du Colombierand didn't invert Adobe Photoshop output as needed.  (viewjpeg.ps)
39507dd7cddfSDavid du Colombier	- The printafm utility had a single font name wired in.  (printafm,
39517dd7cddfSDavid du Colombierprintafm.ps)
39527dd7cddfSDavid du Colombier	- The CIE lookup simulation had several bugs.  (docie.ps)
39537dd7cddfSDavid du Colombier	- pdf2ps[.bat] were missing from the fileset.
39547dd7cddfSDavid du Colombier	- Files produced by pdf_2ps didn't include the GS_PDF ProcSet.
39557dd7cddfSDavid du Colombier(gs_pdf.ps, pdf_2ps.ps, pdf_base.ps, pdf_main.ps)
39567dd7cddfSDavid du Colombier
39573ff48bf5SDavid du Colombier</pre><h3><a name="V3.47_Drivers"></a>Drivers</h3><pre>
39587dd7cddfSDavid du Colombier
39597dd7cddfSDavid du ColombierFixes bugs:
39607dd7cddfSDavid du Colombier	- Bits read back from an EGA or VGA device were incorrect.
39617dd7cddfSDavid du Colombier(gdevpcfb.c)
39627dd7cddfSDavid du Colombier	- The 24-bit PCX run length compressor used a slow algorithm.
39637dd7cddfSDavid du Colombier(gdevpcx.c)
39647dd7cddfSDavid du Colombier	- gdevstc.c wouldn't compile with the Borland compiler.  (gdevstc.c)
39657dd7cddfSDavid du Colombier	- There was a typo in the OS/2 PM driver.  (gdevpm.c)
39667dd7cddfSDavid du Colombier	- .installpagedevice gets a rangecheck on X Windows because the
39677dd7cddfSDavid du ColombierHWColorMap can change spontaneously.  (gs_setpd.ps)
39687dd7cddfSDavid du Colombier	- The left margin for the DeskJet 500 was wrong.  (gdevdjet.c)
39697dd7cddfSDavid du Colombier	- The two notions of "margin" (offset of 0,0 from physical page
39707dd7cddfSDavid du Colombiercorner vs. unprintable area around edges of physical page) were still
39717dd7cddfSDavid du Colombierconfused.  We've now fixed this for the H-P monochrome printers, but it's
39727dd7cddfSDavid du Colombierprobably still confused for all other printers.  (gdevprn.h, gdevdjet.c)
39737dd7cddfSDavid du Colombier
39743ff48bf5SDavid du Colombier</pre><h3><a name="V3.47_Platforms"></a>Platforms</h3><pre>
39757dd7cddfSDavid du Colombier
39767dd7cddfSDavid du ColombierFixes bugs:
39777dd7cddfSDavid du Colombier	- The Windows print spooler header file wasn't included when it
39787dd7cddfSDavid du Colombierneeded to be, and some other Win32-specific changes were missing.
39797dd7cddfSDavid du Colombier(gsdll32.def, gp_mswin.c)
39807dd7cddfSDavid du Colombier	- Windows DLLs didn't parse "s in the command "arguments" correctly.
39817dd7cddfSDavid du Colombier(gsdll.c)
39827dd7cddfSDavid du Colombier
39833ff48bf5SDavid du Colombier</pre><h3><a name="V3.47_Fonts"></a>Fonts</h3><pre>
39847dd7cddfSDavid du Colombier
39857dd7cddfSDavid du ColombierFixes bugs:
39867dd7cddfSDavid du Colombier	- FAKEFONTS could get the font directories into inconsistent states.
39877dd7cddfSDavid du Colombier(gs_dps1.ps, gs_fonts.ps)
39887dd7cddfSDavid du Colombier	- The substitutions for Adobe's Myriad and Minion fonts weren't
39897dd7cddfSDavid du Colombierappropriate.  (gs_fonts.ps)
39907dd7cddfSDavid du Colombier
39913ff48bf5SDavid du Colombier</pre><h3><a name="V3.47_Interpreter"></a>Interpreter</h3><pre>
39927dd7cddfSDavid du Colombier
39937dd7cddfSDavid du ColombierFixes bugs:
39947dd7cddfSDavid du Colombier	- If pathforall got an error computing the user-space points on a
39957dd7cddfSDavid du Colombierpath, it could cause an invalid access.  (zpath1.c)
39967dd7cddfSDavid du Colombier	- A 'private' declaration were omitted.  (Why doesn't gcc catch
39977dd7cddfSDavid du Colombierthis??)  (zcie.c)
39987dd7cddfSDavid du Colombier	- Setting GS_FONTPATH produced a stackunderflow error.
39997dd7cddfSDavid du Colombier(gs_fonts.ps)
40007dd7cddfSDavid du Colombier	- currentscreen caused a typecheck if the screen had been set by
40017dd7cddfSDavid du Colombiersetcolorscreen.  (gs_dps1.ps)
40027dd7cddfSDavid du Colombier	- setcolorrendering tried to cache values computed from the color
40037dd7cddfSDavid du Colombierspace even if the current color space wasn't a CIE space.  (zcrd.c)
40047dd7cddfSDavid du Colombier	- Out-of-range numbers like 10E38 caused a floating point exception.
40057dd7cddfSDavid du Colombier(iscannum.c)
40067dd7cddfSDavid du Colombier	- Giving a closed readable file as input for a filter caused an
40077dd7cddfSDavid du Colombierinvalidaccess.  (files.h, interp.c, zfilter.c)
40087dd7cddfSDavid du Colombier	- setpagedevice opened the default device even with -dNODISPLAY.
40097dd7cddfSDavid du Colombier(gs_init.ps, gs_setpd.ps)
40107dd7cddfSDavid du Colombier	- realtime returned the same value as usertime.  (gs_lev2.ps,
40117dd7cddfSDavid du Colombierzmisc.c)
40127dd7cddfSDavid du Colombier	- Storing a local value into systemdict caused some redundant code
40137dd7cddfSDavid du Colombierto be executed.  (zdict.c)
40147dd7cddfSDavid du Colombier	- Files with a very long first line could cause a rangecheck error.
40157dd7cddfSDavid du Colombier(gs_init.ps)
40167dd7cddfSDavid du Colombier	- The PageOffset page device parameter was ignored.  (gs_setpd.ps)
40177dd7cddfSDavid du Colombier	- The Orientation page device parameter wasn't handled properly.
40187dd7cddfSDavid du Colombier(gs_setpd.ps, idparam.h, idparam.c, zmedia2.c)
40197dd7cddfSDavid du Colombier	- setpagedevice could set device parameters twice, with an
40207dd7cddfSDavid du Colombierincomplete update the first time.  (gs_setpd.ps)
40217dd7cddfSDavid du Colombier
40223ff48bf5SDavid du Colombier</pre><h3><a name="V3.47_Interpreter_PDF"></a>Interpreter (PDF)</h3><pre>
40237dd7cddfSDavid du Colombier
40247dd7cddfSDavid du ColombierFixes bugs:
40257dd7cddfSDavid du Colombier	- Readers confused the internal pdfrun procedure with the public
40267dd7cddfSDavid du Colombierrunpdf procedure.  (pdf_*.ps)
40277dd7cddfSDavid du Colombier
40283ff48bf5SDavid du Colombier</pre><h3><a name="V3.47_Streams"></a>Streams</h3><pre>
40297dd7cddfSDavid du Colombier
40307dd7cddfSDavid du ColombierFixes bugs:
40317dd7cddfSDavid du Colombier	- Closed streams had a NULL state pointer, causing problems for some
40327dd7cddfSDavid du Colombierclients.  (stream.c)
40337dd7cddfSDavid du Colombier	- Group 4 decoding could get an ioerror if an end-of-buffer occurred
40347dd7cddfSDavid du Colombierin a horizontal code sequence between a makeup code and the termination
40357dd7cddfSDavid du Colombiercode.  (scfd.c)
40367dd7cddfSDavid du Colombier
40373ff48bf5SDavid du Colombier</pre><h3><a name="V3.47_Library"></a>Library</h3><pre>
40387dd7cddfSDavid du Colombier
40397dd7cddfSDavid du ColombierFixes bugs:
40407dd7cddfSDavid du Colombier	- Some 'private' declarations were omitted.  (Why doesn't gcc catch
40417dd7cddfSDavid du Colombierthese??)  (gdevmrop.c, gxht.c)
40427dd7cddfSDavid du Colombier	- Patterns could produce bad output in the band list.  (gxclist.c)
40437dd7cddfSDavid du Colombier	- RasterOp wasn't implemented at all for 2- or 4-bit devices.  (In
40447dd7cddfSDavid du Colombierthis release, we implement only a subset, and without handling transparency
40457dd7cddfSDavid du Colombierproperly.)  (gdevm2.c, gdevm4.c, gdevmrop.c)
40467dd7cddfSDavid du Colombier	- Drawing operations and text sometimes didn't apply the RasterOp
40477dd7cddfSDavid du Colombierwhen they should, and vice versa.  (gxdcolor.h, gxdraw.c)
40487dd7cddfSDavid du Colombier	- setcolorrendering tried to cache values computed from the color
40497dd7cddfSDavid du Colombierspace even if the current color space wasn't a CIE space.  (gscie.h,
40507dd7cddfSDavid du Colombiergscie.c)
40517dd7cddfSDavid du Colombier	- Some CIE color spaces produced very distorted colors.  (gscie.c)
40527dd7cddfSDavid du Colombier	- setpagedevice opened a window even with -dNODISPLAY.  (gsdevice.c,
40537dd7cddfSDavid du Colombiergsdparam.c)
40547dd7cddfSDavid du Colombier	- realtime returned the same value as usertime.  (gp.h, time_.h,
40557dd7cddfSDavid du Colombiergp_*.c)
40567dd7cddfSDavid du Colombier	- The library level attempted to handle the Orientation page device
40577dd7cddfSDavid du Colombierparameter.  (gxdevice.h, gdevbit.c, gsdevice.c, gsdparam.c, gspath.c)
40587dd7cddfSDavid du Colombier	- Severely non-linear CIE encoding/decoding functions produced
40597dd7cddfSDavid du Colombierseriously skewed colors near the ends of the color value range.  This
40607dd7cddfSDavid du Colombierproblem can now be alleviated, at a significant cost in performance, by
40617dd7cddfSDavid du Colombierchanging configuration parameters at the beginning of gscie.h.  (gscie.h,
40627dd7cddfSDavid du Colombiergscie.c)
40637dd7cddfSDavid du Colombier	- Files FTP'ed in binary mode weren't being opened properly on VMS.
40647dd7cddfSDavid du Colombier(gp.h, gp_*.c, gsiodev.c)
40657dd7cddfSDavid du Colombier	- A header file had an inconsistent declaration.  (math_.h)
40667dd7cddfSDavid du Colombier
40677dd7cddfSDavid du ColombierAdds a new gp_get_usertime procedure to gp.h.  THIS IS A
40687dd7cddfSDavid du ColombierNON-BACKWARD-COMPATIBLE CHANGE, affecting only platform implementors.  It
40697dd7cddfSDavid du Colombierwas necessary to fix the realtime/usertime bug.  (gp.h, time_.h, gp_*.c)
40707dd7cddfSDavid du Colombier
40717dd7cddfSDavid du ColombierAdds a new gp_fopen procedure to gp.h.  THIS IS A NON-BACKWARD-COMPATIBLE
40727dd7cddfSDavid du ColombierCHANGE, affecting only platform implementors.  It was necessary to fix the
40737dd7cddfSDavid du Colombierbinary file problem on VMS.  (gp.h, gp_*.c)
40747dd7cddfSDavid du Colombier
40753ff48bf5SDavid du Colombier</pre>
40767dd7cddfSDavid du Colombier
40773ff48bf5SDavid du Colombier<h2><a name="Version3.46"></a>Version 3.46 (limited) (9/4/95)</h2>
40783ff48bf5SDavid du Colombier
40793ff48bf5SDavid du Colombier<p>
40807dd7cddfSDavid du ColombierThis is the "serious beta test" release for the next public release.  It
40817dd7cddfSDavid du Colombierfinishes implementing RasterOp in the graphics state, and the remaining
40827dd7cddfSDavid du Colombiercommonly used parts of setpagedevice.
40837dd7cddfSDavid du Colombier
40843ff48bf5SDavid du Colombier<h3><a name="V3.46_Documentation"></a>Documentation</h3><pre>
40857dd7cddfSDavid du ColombierDocuments some possible problems when building with DJGPP v2.0-beta.
40867dd7cddfSDavid du Colombier(make.doc)
40877dd7cddfSDavid du Colombier
40887dd7cddfSDavid du ColombierAdds documentation on using Ghostscript as a PDF interpreter.  (use.doc)
40897dd7cddfSDavid du Colombier
40907dd7cddfSDavid du ColombierNotes linking problems with the Watcom 10.0 environment.  (make.doc)
40917dd7cddfSDavid du Colombier
40923ff48bf5SDavid du Colombier</pre><h3><a name="V3.46_Procedures"></a>Procedures</h3><pre>
40937dd7cddfSDavid du Colombier
40947dd7cddfSDavid du ColombierFixes bugs:
40957dd7cddfSDavid du Colombier	- The rule for $(ccfonts).dev was wrong.  (gs.mak)
40967dd7cddfSDavid du Colombier
40977dd7cddfSDavid du ColombierMakes some additional filters into 'features'.  (devs.mak, gs.mak)
40987dd7cddfSDavid du Colombier
40997dd7cddfSDavid du ColombierSplits off 2 new makefiles from gs.mak, which had gotten very large: lib.mak
41007dd7cddfSDavid du Colombier(graphics library) and int.mak (interpreters).  (tar_cat, tar_cat.bat,
41017dd7cddfSDavid du Colombier*.mak)
41027dd7cddfSDavid du Colombier
41037dd7cddfSDavid du ColombierAdds a new 'config-clean' target that may be helpful in changing
41047dd7cddfSDavid du Colombierconfiguration definitions.  (gs.mak)
41057dd7cddfSDavid du Colombier
41067dd7cddfSDavid du ColombierNotes in the relevant makefiles that on Unix and DVX systems, one should not
41077dd7cddfSDavid du Colombieredit 'makefile' or the concatenated makefile, but should edit the individual
41087dd7cddfSDavid du Colombiersubfile and run tar_cat.  (ansihead.mak, cc-head.mak, dgc-head.mak,
41097dd7cddfSDavid du Colombiergcc-head.mak, devs.mak)
41107dd7cddfSDavid du Colombier
41117dd7cddfSDavid du ColombierUpdates the Watcom makefiles to handle Watcom release 10.5, in which many
41127dd7cddfSDavid du Colombierexecutables moved to different directories.  (watc.mak, watcwin.mak,
41137dd7cddfSDavid du Colombierwccommon.mak)
41147dd7cddfSDavid du Colombier
41157dd7cddfSDavid du ColombierAdds a pdf2ps shell script.  (pdf2ps, pdf2ps.bat)
41167dd7cddfSDavid du Colombier
41177dd7cddfSDavid du ColombierAdds a -sFONTMAP= switch to specify the name of the Fontmap file.
41187dd7cddfSDavid du Colombier(gs_fonts.ps)
41197dd7cddfSDavid du Colombier
41207dd7cddfSDavid du ColombierAdds a -u&lt;name&gt; switch to undefine a name from systemdict.  (interp.h, gs.c,
41217dd7cddfSDavid du Colombieriinit.c)
41227dd7cddfSDavid du Colombier
41237dd7cddfSDavid du ColombierAdds a -dFIXEDRESOLUTION switch to parallel -dFIXEDMEDIA.  Makes -g set
41247dd7cddfSDavid du ColombierFIXEDMEDIA and -r set FIXEDRESOLUTION.  (gs_init.ps, gs_setpd.ps, gs.c)
41257dd7cddfSDavid du Colombier
41267dd7cddfSDavid du ColombierChanges some build procedures to avoid problems with read-only source files.
41277dd7cddfSDavid du Colombier(gs.mak, int.mak, lib.mak)
41287dd7cddfSDavid du Colombier
41293ff48bf5SDavid du Colombier</pre><h3><a name="V3.46_Utilities"></a>Utilities</h3><pre>
41307dd7cddfSDavid du Colombier
41317dd7cddfSDavid du ColombierAdds a utility for emulating the CIE color mapping algorithms.  (docie.ps)
41327dd7cddfSDavid du Colombier
41333ff48bf5SDavid du Colombier</pre><h3><a name="V3.46_Drivers"></a>Drivers</h3><pre>
41347dd7cddfSDavid du Colombier
41357dd7cddfSDavid du ColombierChanges the x11alpha device so that it uses 32-bit pixels with 8 bits of
41367dd7cddfSDavid du Colombieralpha.  (gdevxalt.c)
41377dd7cddfSDavid du Colombier
41387dd7cddfSDavid du ColombierUpdates the Epson Stylus Color driver to Gunther Hess's release 1.17.
41397dd7cddfSDavid du Colombier(devs.mak, unix-end.mak, devices.doc, stcolor.ps, gdevstc.h, gdevstc*.c)
41407dd7cddfSDavid du Colombier
41417dd7cddfSDavid du ColombierUpdates the alternate X drivers for the change from PageSize to MediaSize.
41427dd7cddfSDavid du Colombier(gdevxalt.c)
41437dd7cddfSDavid du Colombier
41447dd7cddfSDavid du ColombierMakes Duplex an optional parameter of printer devices rather than of all
41457dd7cddfSDavid du Colombierdevices.  (gdevprn.h, gxdevice.h, gsdparam.c, gdevdjet.c, gdevprn.c)
41467dd7cddfSDavid du Colombier
41473ff48bf5SDavid du Colombier</pre><h3><a name="V3.46_Platforms"></a>Platforms</h3><pre>
41487dd7cddfSDavid du Colombier
41497dd7cddfSDavid du ColombierMakes pipes (%pipe% file syntax) a selectable option on Unix platforms,
41507dd7cddfSDavid du Colombierrather than always being included.  (ansihead.mak, cc-head.mak,
41517dd7cddfSDavid du Colombiergcc-head.mak, ugcclib.mak, unixtail.mak)
41527dd7cddfSDavid du Colombier
41533ff48bf5SDavid du Colombier</pre><h3><a name="V3.46_Interpreter"></a>Interpreter</h3><pre>
41547dd7cddfSDavid du Colombier
41557dd7cddfSDavid du ColombierFixes bugs:
41567dd7cddfSDavid du Colombier	- colorimage, and the dictionary form of image with
41577dd7cddfSDavid du ColombierMultipleDataSources = true, didn't check that all the data sources were of
41587dd7cddfSDavid du Colombierthe same type.  (zpaint.c)
41597dd7cddfSDavid du Colombier	- colorimage, and dictionary-type images with MultipleDataSources =
41607dd7cddfSDavid du Colombiertrue, usually didn't work properly with files.  (zpaint.c)
41617dd7cddfSDavid du Colombier	- grestoreall left a dangling pointer to the transfer function
41627dd7cddfSDavid du Colombiercache.  (gsstate.c)
41637dd7cddfSDavid du Colombier	- Changes made by setpagedevice could get 'lost' and not installed
41647dd7cddfSDavid du Colombierin the current page device dictionary.  (gs_setpd.ps)
41657dd7cddfSDavid du Colombier	- The Install procedure was called before the new page device
41667dd7cddfSDavid du Colombierdictionary had gotten installed.  (gs_setpd.ps)
41677dd7cddfSDavid du Colombier	- If a grestore/grestoreall/restore/setgstate operation switched
41687dd7cddfSDavid du Colombierpage devices, the new page device didn't get installed properly.
41697dd7cddfSDavid du Colombier(gs_setpd.ps, opextern.h, zdevice2.c, zdps1.c)
41707dd7cddfSDavid du Colombier	- If the current screen was a Type 1 halftone, currentscreen and
41717dd7cddfSDavid du Colombiercurrentcolorscreen returned frequency = 60, angle = 0 rather than the
41727dd7cddfSDavid du ColombierFrequency and Angle from the halftone (see Adobe TN 5085).  (gs_dps1.ps,
41737dd7cddfSDavid du Colombiergs_init.ps)
41747dd7cddfSDavid du Colombier	- setscreen with a Type 1 halftone dictionary didn't insert the
41757dd7cddfSDavid du Colombierfrequency and angle into the dictionary (see Adobe TN 5085).  (gs_dps1.ps)
41767dd7cddfSDavid du Colombier	- upath didn't include a trailing moveto in the bounding box.
41777dd7cddfSDavid du Colombier(gs_dps1.ps, zpath1.c)
41787dd7cddfSDavid du Colombier	- setpagedevice didn't automatically rotate or scale the image when
41797dd7cddfSDavid du Colombiernecessary.  (gs_setpd.ps, zmedia2.c)
41807dd7cddfSDavid du Colombier
41817dd7cddfSDavid du ColombierMoves the RasterOp operators to a separate file.  (iutil.h, iutil.c,
41827dd7cddfSDavid du Colombierzgstate.c, zrop.c)
41837dd7cddfSDavid du Colombier
41847dd7cddfSDavid du ColombierEliminates the unnecessary "wrapper" around .setdevice.  (zdevice2.c)
41857dd7cddfSDavid du Colombier
41867dd7cddfSDavid du ColombierEstablishes the convention that all interpreter callbacks into PostScript
41877dd7cddfSDavid du Colombiercode use procedure names that begin with %; documents this in gs_init.ps.
41887dd7cddfSDavid du ColombierChanges Type1BuildChar and Type1BuildGlyph to %Type1BuildChar and
41897dd7cddfSDavid du Colombier%Type1BuildGlyph.  (gs_init.ps, gs_type1.ps, zfont0.c, zfont1.c)
41907dd7cddfSDavid du Colombier
41917dd7cddfSDavid du ColombierChanges image / imagemask / colorimage for the new library API.  (zimage2.c,
41927dd7cddfSDavid du Colombierzpaint.c)
41937dd7cddfSDavid du Colombier
41947dd7cddfSDavid du ColombierReorganizes font loading to make compiled fonts and Fontmap interact better
41957dd7cddfSDavid du Colombierwith each other.  (gs_ccfnt.ps, gs_fonts.ps, gs_init.ps, gs_res.ps)
41967dd7cddfSDavid du Colombier
41977dd7cddfSDavid du ColombierImplements parameter collection for the new CIEBasedDEF[G] color spaces, but
41987dd7cddfSDavid du Colombierdoesn't actually implement the color spaces themselves.  (icie.h, zcie.c,
41997dd7cddfSDavid du Colombierzcrd.c)
42007dd7cddfSDavid du Colombier
42017dd7cddfSDavid du ColombierRenames iconfig.c as iconf.c to avoid problems with read-only source files.
42027dd7cddfSDavid du Colombier(iconf.c)
42037dd7cddfSDavid du Colombier
42043ff48bf5SDavid du Colombier</pre><h3><a name="V3.46_Interpreter_PDF"></a>Interpreter (PDF)</h3><pre>
42057dd7cddfSDavid du Colombier
42067dd7cddfSDavid du ColombierFixes bugs:
42077dd7cddfSDavid du Colombier	- PDF to PostScript conversion didn't work.  (pdf_main.ps)
42087dd7cddfSDavid du Colombier
42097dd7cddfSDavid du ColombierShifts most of the work in the PDF interpreter from the reader to the
42107dd7cddfSDavid du ColombierProcSet.  This simplifies the code considerably and also makes it easier to
42117dd7cddfSDavid du Colombiermodify.  (gs_pdf.ps, pdf_draw.ps, pdf_font.ps, pdf_main.ps)
42127dd7cddfSDavid du Colombier
42133ff48bf5SDavid du Colombier</pre><h3><a name="V3.46_Library"></a>Library</h3><pre>
42147dd7cddfSDavid du Colombier
42157dd7cddfSDavid du ColombierFixes bugs:
42167dd7cddfSDavid du Colombier	- 'static' was omitted in a place that some compilers require it.
42177dd7cddfSDavid du Colombier(gxccman.c)
42187dd7cddfSDavid du Colombier	- Some compilers don't allow a variable with the same name as a
42197dd7cddfSDavid du Colombierpreprocessor macro with arguments.  (gscie.c)
42207dd7cddfSDavid du Colombier	- Some places did a "return -1" rather than a proper error return.
42217dd7cddfSDavid du Colombier(gsdevice.c, gxclist.c)
42227dd7cddfSDavid du Colombier	- An external declaration had a typo.  (gsrop.h)
42237dd7cddfSDavid du Colombier	- An extra semicolon upset some compilers.  (gzpath.h)
42247dd7cddfSDavid du Colombier	- Printer devices that didn't use the standard macros for generating
42257dd7cddfSDavid du Colombiertheir procedure vector wound up being considered as non-page devices.
42267dd7cddfSDavid du Colombier(gdevprn.c)
42277dd7cddfSDavid du Colombier	- Some compilers truncated identifiers longer than 31 characters.
42287dd7cddfSDavid du Colombier(gscspace.h, zcie.c, gscie.c)
42297dd7cddfSDavid du Colombier	- upath didn't include a trailing moveto in the bounding box.
42307dd7cddfSDavid du Colombier(gspath.h, gspath1.c)
42317dd7cddfSDavid du Colombier	- RasterOp value 126 returned an incorrect result.  (gsroptab.c)
42327dd7cddfSDavid du Colombier
42337dd7cddfSDavid du ColombierFinishes implementing RasterOp in the graphics state.  (gdevmrop.h, gsrop.h,
42347dd7cddfSDavid du Colombiergsropt.h, gsstate.h, gxbitmap.h, gxcindex.h, gxdcolor.h, gxdevice.h,
42357dd7cddfSDavid du Colombiergzstate.h, gdevmrop.c, gscolor.c, gsdevice.c, gsimage.c, gsimage1.c,
42367dd7cddfSDavid du Colombiergsimage2.c, gsimage3.c, gspcolor.c, gsrop.c, gsstate.c, gxacpath.c,
42377dd7cddfSDavid du Colombiergxccache.c, gxcht.c, gxcmap.c, gxdither.c, gxdraw.c, gxht.c)
42387dd7cddfSDavid du Colombier
42397dd7cddfSDavid du ColombierChanges forwarding devices so they forward get_bits by default.  This
42407dd7cddfSDavid du Colombierprobably doesn't affect any existing code.  (gxdevice.h, gsdevice.c)
42417dd7cddfSDavid du Colombier
42427dd7cddfSDavid du ColombierChanges the API for gs_image[mask]_init to pass a structure rather than a
42437dd7cddfSDavid du Colombiervery large number of scalars.  THIS IS A NON-BACKWARD-COMPATIBLE CHANGE,
42447dd7cddfSDavid du Colombiermotivated by the addition of further image parameters to support RasterOp.
42457dd7cddfSDavid du ColombierSince there are no external clients of the library yet, it shouldn't matter.
42467dd7cddfSDavid du Colombier(gsimage.h, gsimage.c, gslib.c, gxccache.c)
42477dd7cddfSDavid du Colombier
42487dd7cddfSDavid du ColombierRedefines the device "page size" as being the size of the actual media,
42497dd7cddfSDavid du Colombierchanging the name of the gx_device PageSize member to MediaSize, the name of
42507dd7cddfSDavid du Colombierthe PageSize device parameter to .MediaSize (but keeping PageSize as
42517dd7cddfSDavid du Colombierequivalent, for backward compatibility), and the name of the
42527dd7cddfSDavid du Colombiergx_device_set_page_size procedure to gx_device_set_media_size (keeping the
42537dd7cddfSDavid du Colombierold name as a macro).  THIS IS A NON-BACKWARD-COMPATIBLE CHANGE.  It is
42547dd7cddfSDavid du Colombiernecessary to make setpagedevice work, and to avoid confusion about what
42557dd7cddfSDavid du Colombier"page size" means.  It potentially affects any device driver, but almost
42567dd7cddfSDavid du Colombiernone of the device drivers distributed with Ghostscript are affected, and
42577dd7cddfSDavid du Colombierthose have been updated.  (gsparam.h, gxdevice.h, gsdevice.c, gsdparam.c,
42587dd7cddfSDavid du Colombiergspath.c)
42597dd7cddfSDavid du Colombier
42607dd7cddfSDavid du ColombierRenames gconfig.c as gconf.c to avoid problems with read-only source files.
42617dd7cddfSDavid du Colombier(gconf.c)
42627dd7cddfSDavid du Colombier
42637dd7cddfSDavid du ColombierAdds an API procedure for setting a bitmap pattern.  (gscolor2.h,
42647dd7cddfSDavid du Colombiergspcolor.c)
42657dd7cddfSDavid du Colombier
42663ff48bf5SDavid du Colombier</pre>
42677dd7cddfSDavid du Colombier
42683ff48bf5SDavid du Colombier<h2><a name="Version3.45"></a>Version 3.45 (limited) (8/27/95)</h2>
42693ff48bf5SDavid du Colombier
42703ff48bf5SDavid du Colombier<p>
42717dd7cddfSDavid du ColombierThe purpose of this release is to fix some minor bugs reported by commercial
42727dd7cddfSDavid du Colombierlicensees, and to add two enhancements: optional RenderTable interpolation
42737dd7cddfSDavid du Colombierfor CIE color, and reducing the temporary space used during character
42747dd7cddfSDavid du Colombiercaching (also for a licensee).
42757dd7cddfSDavid du Colombier
42763ff48bf5SDavid du Colombier<h3><a name="V3.45_Documentation"></a>Documentation</h3><pre>
42777dd7cddfSDavid du Colombier
42787dd7cddfSDavid du ColombierNotes that the only valid return values from get_alpha_bits are 1, 2, and 4.
42797dd7cddfSDavid du Colombier(drivers.doc)
42807dd7cddfSDavid du Colombier
42817dd7cddfSDavid du ColombierNotes that the get_bits driver procedure will return a pointer to aligned
42827dd7cddfSDavid du Colombierdata, but does not require the caller's data area to be aligned.
42837dd7cddfSDavid du Colombier(drivers.doc)
42847dd7cddfSDavid du Colombier
42853ff48bf5SDavid du Colombier</pre><h3><a name="V3.45_Procedures"></a>Procedures</h3><pre>
42867dd7cddfSDavid du Colombier
42877dd7cddfSDavid du ColombierFixes bugs:
42887dd7cddfSDavid du Colombier	- Many of the printer and file output drivers in devs.mak still
42897dd7cddfSDavid du Colombierincluded gdevprn.$(OBJ) in their dependencies.  (devs.mak)
42907dd7cddfSDavid du Colombier	- PDEVH was used before it was defined.  (devs.mak)
42917dd7cddfSDavid du Colombier	- GENCONF_XE was used before it was defined.  (unixhead.mak,
42927dd7cddfSDavid du Colombierunix-end.mak)
42937dd7cddfSDavid du Colombier
42947dd7cddfSDavid du ColombierMakes it possible to switch sfile implementations without editing gs.mak.
42957dd7cddfSDavid du Colombier(gs.mak)
42967dd7cddfSDavid du Colombier
42977dd7cddfSDavid du ColombierMakes it possible to specify alternate compiled font tables without editing
42987dd7cddfSDavid du Colombiergs.mak.  (gs.mak)
42997dd7cddfSDavid du Colombier
43007dd7cddfSDavid du ColombierAllows quoted arguments in @-files, e.g.,
43017dd7cddfSDavid du Colombier	-sOutputFile="a file name with spaces"
43027dd7cddfSDavid du Colombier(gs.c)
43037dd7cddfSDavid du Colombier
43043ff48bf5SDavid du Colombier</pre><h3><a name="V3.45_Utilities"></a>Utilities</h3><pre>
43057dd7cddfSDavid du Colombier
43067dd7cddfSDavid du ColombierFixes bugs:
43077dd7cddfSDavid du Colombier	- The ps2ascii script could fail to delete temporary files in case
43087dd7cddfSDavid du Colombierof an abnormal exit.  (ps2ascii)
43097dd7cddfSDavid du Colombier
43103ff48bf5SDavid du Colombier</pre><h3><a name="V3.45_Drivers"></a>Drivers</h3><pre>
43117dd7cddfSDavid du Colombier
43127dd7cddfSDavid du ColombierFixes bugs:
43137dd7cddfSDavid du Colombier	- The MS Windows printer capability test was wrong.  (gdevwpr2.c)
43147dd7cddfSDavid du Colombier	- The MS Windows and OS/2/PM displays weren't page devices.
43157dd7cddfSDavid du Colombier(gdevwdib.c, gdevpm.c)
43167dd7cddfSDavid du Colombier
43177dd7cddfSDavid du ColombierGets rid of all direct references to dev-&gt;PageSize in drivers.  (gdevl256.c,
43187dd7cddfSDavid du Colombiergdevvglb.c)
43197dd7cddfSDavid du Colombier
43203ff48bf5SDavid du Colombier</pre><h3><a name="V3.45_Platforms"></a>Platforms</h3><pre>
43217dd7cddfSDavid du Colombier
43227dd7cddfSDavid du ColombierFixes bugs:
43237dd7cddfSDavid du Colombier	- The 32-bit MS Windows configuration file for the Borland C++
43247dd7cddfSDavid du Colombiercompiler was missing from the fileset.  (bcc32.cfg, tar_gs)
43257dd7cddfSDavid du Colombier
43267dd7cddfSDavid du ColombierMakes the printer devices in the OS/2 implementation capable of outputting
43277dd7cddfSDavid du Colombierdirectly to the print spooler.  (use.doc, gp_os2.c)
43287dd7cddfSDavid du Colombier
43297dd7cddfSDavid du ColombierMakes printing on Windows NT and Windows 95 use the printer queue.
43307dd7cddfSDavid du Colombier(gp_mswin.c, gswin32.rc)
43317dd7cddfSDavid du Colombier
43323ff48bf5SDavid du Colombier</pre><h3><a name="V3.45_Interpreter"></a>Interpreter</h3><pre>
43337dd7cddfSDavid du Colombier
43347dd7cddfSDavid du ColombierFixes bugs:
43357dd7cddfSDavid du Colombier	- Copying a null device produced an uninitialized pointer.
43367dd7cddfSDavid du Colombier(gsdevice.c)
43377dd7cddfSDavid du Colombier	- The dictionary returned by deviceinfo wasn't read-only.
43387dd7cddfSDavid du Colombier(gs_lev2.ps)
43397dd7cddfSDavid du Colombier	- If a filter's init code failed, an entry on the operand stack
43407dd7cddfSDavid du Colombier(usually the top) could be smashed.  (files.h, zfile.c, zfilter.c)
43417dd7cddfSDavid du Colombier
43427dd7cddfSDavid du ColombierAdds const in a few places that needed it.  (zwppm.c)
43437dd7cddfSDavid du Colombier
43447dd7cddfSDavid du ColombierAdds interpolation to the CIE RenderTable lookup.  (icie.h, zcie.c, zcrd.c)
43457dd7cddfSDavid du Colombier
43463ff48bf5SDavid du Colombier</pre><h3><a name="V3.45_Interpreter_PDF"></a>Interpreter (PDF)</h3><pre>
43477dd7cddfSDavid du Colombier
43487dd7cddfSDavid du ColombierAllows PDF files with control-character garbage at the end, and up to 250
43497dd7cddfSDavid du Colombiercharacters of garbage at the beginning.  The latter is only supported by
43507dd7cddfSDavid du Colombierrunpdf, not by run.  (pdf_base.ps, pdf_main.ps)
43517dd7cddfSDavid du Colombier
43523ff48bf5SDavid du Colombier</pre><h3><a name="V3.45_Streams"></a>Streams</h3><pre>
43537dd7cddfSDavid du Colombier
43547dd7cddfSDavid du ColombierFixes bugs:
43557dd7cddfSDavid du Colombier	- A 1-D CCITTFaxDecode stream could give an error if an input buffer
43567dd7cddfSDavid du Colombierboundary fell just before a 0-length termination code.  (scfx.h, scfd.c)
43577dd7cddfSDavid du Colombier
43583ff48bf5SDavid du Colombier</pre><h3><a name="V3.45_Library"></a>Library</h3><pre>
43597dd7cddfSDavid du Colombier
43607dd7cddfSDavid du ColombierFixes bugs:
43617dd7cddfSDavid du Colombier	- A variable was used before being set, which could cause band
43627dd7cddfSDavid du Colombierdevices to become confused when processing colored halftones.  (gxclist.c)
43637dd7cddfSDavid du Colombier	- Some of the color and tile bookkeeping for band lists was wrong
43647dd7cddfSDavid du Colombier(as of 3.44), causing tiled areas to be filled with garbage.  (gxclist.c,
43657dd7cddfSDavid du Colombiergxclread.c)
43667dd7cddfSDavid du Colombier	- Colored Patterns showed up blank on devices whose native
43677dd7cddfSDavid du Colombierrepresentation of `black' was a non-zero value.  The fix removes the
43687dd7cddfSDavid du Colombier'cached' member of the gx_device structure, and requires monobit memory
43697dd7cddfSDavid du Colombierdevices to have a palette; this is a NON-BACKWARD-COMPATIBLE CHANGE for
43707dd7cddfSDavid du Colombieranyone who was foolish enough to statically initialize a gx_device structure
43717dd7cddfSDavid du Colombierwithout using the macros in gxdevice.h or gdevprn.h.  (gdevmem.h,
43727dd7cddfSDavid du Colombiergxdevice.h, gxdevmem.h, gdevm1.c, gdevmrop.c, gsdevice.c, gxcpath.c,
43737dd7cddfSDavid du Colombiergxdither.c)
43747dd7cddfSDavid du Colombier
43757dd7cddfSDavid du ColombierProvides the framework for band devices to implement alpha (anti-aliasing).
43767dd7cddfSDavid du Colombier(gxcldev.h, gdevprn.c, gsdevice.c, gxclist.c, gxclread.c)
43777dd7cddfSDavid du Colombier
43787dd7cddfSDavid du ColombierImplements an efficient API for enumerating paths using device coordinates.
43797dd7cddfSDavid du Colombier(gspath.h, gxpath.h, gzpath.h, gspath1.c, gxpath2.c)
43807dd7cddfSDavid du Colombier
43817dd7cddfSDavid du ColombierChanges the character cache logic so that when rasterizing large
43827dd7cddfSDavid du Colombieranti-aliased characters, it converts the oversampled bits to alpha values on
43837dd7cddfSDavid du Colombierthe fly rather than waiting until it has rasterized the entire character.
43847dd7cddfSDavid du ColombierThis saves a lot of temporary space, at the expense of some extra time and
43857dd7cddfSDavid du Colombierlower quality results for Type 3 characters that don't use a single fill or
43867dd7cddfSDavid du Colombierimagemask operation to draw the character.  This enhancement requires adding
43877dd7cddfSDavid du Colombiera member to the gx_device structure (max_fill_band), which is a
43887dd7cddfSDavid du ColombierNON-BACKWARD-COMPATIBLE CHANGE for badly written drivers (see above).
43897dd7cddfSDavid du Colombier(gxchar.h, gxdevice.h, gxpaint.h, gdevabuf.c, gschar.c, gspaint.c,
43907dd7cddfSDavid du Colombiergxccache.c, gxccman.c, gxfill.c)
43917dd7cddfSDavid du Colombier
43927dd7cddfSDavid du ColombierChanges the palette member of memory devices from gs_string to
43937dd7cddfSDavid du Colombiergs_const_string.  (gdevmem.h, gxdevmem.h, gdevmem.c, gdevm1.c)
43947dd7cddfSDavid du Colombier
43957dd7cddfSDavid du ColombierStarts to decouple halftoning from the graphics state machinery, so
43967dd7cddfSDavid du Colombierit can be applied after banding rather than before.  (gxdcolor.h,
43977dd7cddfSDavid du Colombiergxdht.h, gxdither.h, gzht.h, gxcmap.c, gxdither.c, gxdraw.c)
43987dd7cddfSDavid du Colombier
43997dd7cddfSDavid du ColombierStarts to decouple path filling from the graphics state machinery, so
44007dd7cddfSDavid du Colombierthat we can pass paths through band lists.  (gxpaint.h, gxfill.c)
44017dd7cddfSDavid du Colombier
44027dd7cddfSDavid du ColombierAdds interpolation to the CIE RenderTable lookup.  This is optional, enabled
44037dd7cddfSDavid du Colombierby #define CIE_RENDER_TABLE_INTERPOLATE in gscie.h.  (gscie.h, gxctable.h,
44047dd7cddfSDavid du Colombiergscie.c, gxctable.c)
44057dd7cddfSDavid du Colombier
44063ff48bf5SDavid du Colombier</pre>
44077dd7cddfSDavid du Colombier
44083ff48bf5SDavid du Colombier<h2><a name="Version3.44"></a>Version 3.44 (limited) (8/21/95)</h2>
44093ff48bf5SDavid du Colombier
44103ff48bf5SDavid du Colombier<p>
44117dd7cddfSDavid du ColombierThis includes a few bug fixes, but its main purpose is to add two new
44127dd7cddfSDavid du Colombierfeatures: monobit and 8-bit gray-scale RasterOp (at the driver level, not at
44137dd7cddfSDavid du Colombierthe gstate level yet), and (compressed) band lists in RAM.  Of course, these
44147dd7cddfSDavid du Colombiernew features may have introduced new bugs!
44157dd7cddfSDavid du Colombier
44163ff48bf5SDavid du Colombier<h3><a name="V3.44_Documentation"></a>Documentation</h3><pre>
44177dd7cddfSDavid du ColombierAdds contact information for a user working on NeXT machines.  (README)
44187dd7cddfSDavid du Colombier
44197dd7cddfSDavid du ColombierNotes that Ghostscript runs on FreeBSD.  (README)
44207dd7cddfSDavid du Colombier
44217dd7cddfSDavid du ColombierAdds copy_rop (the RasterOp operation) to the driver interface.
44227dd7cddfSDavid du Colombier(drivers.doc)
44237dd7cddfSDavid du Colombier
44247dd7cddfSDavid du ColombierAdds FONTPATH information for more operating systems.  (use.doc)
44257dd7cddfSDavid du Colombier
44263ff48bf5SDavid du Colombier</pre><h3><a name="V3.44_Procedures"></a>Procedures</h3><pre>
44277dd7cddfSDavid du Colombier
44287dd7cddfSDavid du ColombierFixes bugs:
44297dd7cddfSDavid du Colombier	- The tar_cat script needed a #!/bin/sh to execute correctly on all
44307dd7cddfSDavid du Colombierplatforms.  (tar_cat)
44317dd7cddfSDavid du Colombier	- There were a number of minor errors in the makefiles.  (gs.mak,
44327dd7cddfSDavid du Colombierunixhead.mak)
44337dd7cddfSDavid du Colombier	- Level 2 configurations without command lists had two undefined
44347dd7cddfSDavid du Colombierreferences.  (gs.mak)
44357dd7cddfSDavid du Colombier	- Some shells required an extra ';' to terminate an 'if' command.
44367dd7cddfSDavid du Colombier(ugcclib.mak, unix-end.mak, unixtail.mak)
44377dd7cddfSDavid du Colombier
44387dd7cddfSDavid du ColombierUpdates the JPEG code to the officially released version 6 of the IJG
44397dd7cddfSDavid du Colombierlibrary.  See jpeg.mak for information on where to find this library.
44407dd7cddfSDavid du Colombier(jpeg/*, jpeg.mak, *.mak, modules.lis)
44417dd7cddfSDavid du Colombier
44427dd7cddfSDavid du ColombierAdds a definition of XEAUX to the makefiles to parallel CCAUX, primarily for
44437dd7cddfSDavid du Colombiercross-compilation environments.  All references to &lt;some-program&gt;$(XE) must
44447dd7cddfSDavid du Colombierbe replaced by $(&lt;SOME-PROGRAM&gt;_XE), where some-program={$(GS), ansi2knr,
44457dd7cddfSDavid du Colombierechogs, genarch, genconf, geninit}.  This is a NON-BACKWARD-COMPATIBLE
44467dd7cddfSDavid du ColombierCHANGE, required in order for the makefiles to work in cross-compiled
44477dd7cddfSDavid du Colombierenvironments.  (For non-cross-compiled environments, it currently doesn't
44487dd7cddfSDavid du Colombiermatter.)  (gs.mak, *.mak)
44497dd7cddfSDavid du Colombier
44503ff48bf5SDavid du Colombier</pre><h3><a name="V3.44_Utilities"></a>Utilities</h3><pre>
44517dd7cddfSDavid du Colombier
44527dd7cddfSDavid du ColombierUpdates ps2ai.ps to version 2.13.  (ps2ai.ps)
44537dd7cddfSDavid du Colombier
44547dd7cddfSDavid du ColombierChanges all the utility shell scripts to include #!/bin/sh, to use exec, and
44557dd7cddfSDavid du Colombierto pass the original arguments using "$@".  (bdftops, font2c, gsbj, gsdj,
44567dd7cddfSDavid du Colombiergslj, gslp, gsnd, wftopfa)
44577dd7cddfSDavid du Colombier
44583ff48bf5SDavid du Colombier</pre><h3><a name="V3.44_Drivers"></a>Drivers</h3><pre>
44597dd7cddfSDavid du Colombier
44607dd7cddfSDavid du ColombierAdds the requirement that all page-oriented devices (i.e., those that use
44617dd7cddfSDavid du Colombiergdevprn.h and implement the print_page procedure) include page.dev in their
44627dd7cddfSDavid du Colombierdependencies and use $(SETPDEV) rather than $(SETDEV) in their makefile rule
44637dd7cddfSDavid du Colombierbodies.  THIS IS A NON-BACKWARD-COMPATIBLE CHANGE.  Without this change, the
44647dd7cddfSDavid du Colombiercommand list logic (over 25K of unnecessary object code) would have to be
44657dd7cddfSDavid du Colombierincluded in every configuration.  (gs.mak, devs.mak, echogs.c)
44667dd7cddfSDavid du Colombier
44677dd7cddfSDavid du ColombierAdds a user-contributed driver for the Okidata Microline (IBM compatible)
44687dd7cddfSDavid du Colombierdot matrix printers.  (gdevokii.c)
44697dd7cddfSDavid du Colombier
44707dd7cddfSDavid du ColombierAdds copy_rop (the RasterOp operation) to the driver interface.  Currently,
44717dd7cddfSDavid du Colombieronly monobit and 8-bit gray-scale devices implement it.  (gxdevice.h,
44727dd7cddfSDavid du Colombiergsdevice.c)
44737dd7cddfSDavid du Colombier
44747dd7cddfSDavid du ColombierAdds the ability to read back bits from the display to the x11 devices.
44757dd7cddfSDavid du Colombier(x_.h, gdevx.c, gdevxalt.c)
44767dd7cddfSDavid du Colombier
44773ff48bf5SDavid du Colombier</pre><h3><a name="V3.44_Platforms"></a>Platforms</h3><pre>
44787dd7cddfSDavid du Colombier
44797dd7cddfSDavid du ColombierMakes some minor changes to support QNX.  (stat_.h)
44807dd7cddfSDavid du Colombier
44817dd7cddfSDavid du ColombierRemoves the mswinprn driver from the 16-bit Windows configuration, because
44827dd7cddfSDavid du Colombierthe 64K default data segment overflowed.  (bcwin.mak)
44837dd7cddfSDavid du Colombier
44843ff48bf5SDavid du Colombier</pre><h3><a name="V3.44_Interpreter"></a>Interpreter</h3><pre>
44857dd7cddfSDavid du Colombier
44867dd7cddfSDavid du ColombierFixes bugs:
44877dd7cddfSDavid du Colombier	- Type 1 fonts didn't accept packed arrays for Subrs or OtherSubrs.
44887dd7cddfSDavid du Colombier(zchar1.c, zfont1.c)
44897dd7cddfSDavid du Colombier	- TBCP-encoded files (yes, I know there isn't supposed to be any
44907dd7cddfSDavid du Colombiersuch thing) didn't automatically activate TBCP decoding.  (gs_init.ps)
44917dd7cddfSDavid du Colombier	- Fonts with invalid FID entries weren't detected.  (zfont.c)
44927dd7cddfSDavid du Colombier
44937dd7cddfSDavid du ColombierSpeeds up dictionary operations slightly by removing redundant checks for
44947dd7cddfSDavid du Colombiernulls.  (zdict.c)
44957dd7cddfSDavid du Colombier
44967dd7cddfSDavid du ColombierStarts adding support for the new CIEBasedDEF and CIEBasedDEFG color spaces.
44977dd7cddfSDavid du Colombier(gs_l2img.ps, gs_lev2.ps, igstate.h, zcrd.c)
44987dd7cddfSDavid du Colombier
44997dd7cddfSDavid du ColombierAdds access operators for RasterOp and transparency in the graphics state.
45007dd7cddfSDavid du Colombier(They don't actually do anything yet.)  (zgstate.c)
45017dd7cddfSDavid du Colombier
45023ff48bf5SDavid du Colombier</pre><h3><a name="V3.44_Interpreter_PDF"></a>Interpreter (PDF)</h3><pre>
45037dd7cddfSDavid du Colombier
45047dd7cddfSDavid du ColombierFixes bugs:
45057dd7cddfSDavid du Colombier	- PDFDocEncoding was missing characters 24-31.  (gs_pdf_e.ps)
45067dd7cddfSDavid du Colombier
45077dd7cddfSDavid du ColombierMoves the definition of pdfmark from systemdict to userdict so that Adobe
45087dd7cddfSDavid du ColombierPostScript files won't think the interpreter is a distiller.  (gs_pdf.ps)
45097dd7cddfSDavid du Colombier
45103ff48bf5SDavid du Colombier</pre><h3><a name="V3.44_Library"></a>Library</h3><pre>
45117dd7cddfSDavid du Colombier
45127dd7cddfSDavid du ColombierFixes bugs:
45137dd7cddfSDavid du Colombier	- Some JPEG images had bands of garbage alternating with bands of
45147dd7cddfSDavid du Colombiervalid data.  IJG v6 fixed this -- see above.
45157dd7cddfSDavid du Colombier	- With FPU_TYPE = -1, the cosine routine returned incorrect values
45167dd7cddfSDavid du Colombierfor angles above 270 degrees.  (gsmisc.c)
45177dd7cddfSDavid du Colombier	- CIE color conversion didn't work on 16-bit systems.  (gscie.h,
45187dd7cddfSDavid du Colombiergscie.c)
45197dd7cddfSDavid du Colombier
45207dd7cddfSDavid du ColombierPartially implements reducing the intermediate space for rasterizing
45217dd7cddfSDavid du Colombieranti-aliased characters by compressing the oversampled representation to an
45227dd7cddfSDavid du Colombieralpha array incrementally.  (gdevmem.h, gxchar.h, gxdevmem.h, gdevabuf.c,
45237dd7cddfSDavid du Colombiergschar.c, gspaint.c, gxccman.c)
45247dd7cddfSDavid du Colombier
45257dd7cddfSDavid du ColombierStarts adding support for the new CIEBasedDEF and CIEBasedDEFG color spaces.
45267dd7cddfSDavid du Colombier(gscie.h, gscspace.h, gscie.c)
45277dd7cddfSDavid du Colombier
45287dd7cddfSDavid du ColombierCompletes the implementation of band lists in RAM.  To select this feature,
45297dd7cddfSDavid du Colombierchange the definition of cl_impl in gs.mak from clfile to clmem.  (Someday
45307dd7cddfSDavid du Colombierwe'll make this easier.)  (gxclmem.h, gxclmem.c)
45317dd7cddfSDavid du Colombier
45327dd7cddfSDavid du ColombierFinishes implementing RasterOp and transparency at the driver level for
45337dd7cddfSDavid du Colombiermonobit and 8-bit gray-scale devices, and implements some of the framework
45347dd7cddfSDavid du Colombierfor general multiple-bit-per-pixel devices.  See drivers.doc for
45357dd7cddfSDavid du Colombierdocumentation.  (gsropt.h, gxcldev.h, gxclist.h, gdevm1.c, gdevm8.c,
45367dd7cddfSDavid du Colombiergdevmem.c, gdevmrop.c, gschar.c, gxclist.c, gxclread.c)
45377dd7cddfSDavid du Colombier
45387dd7cddfSDavid du ColombierImplements the ability to include commands applicable to all bands, rather
45397dd7cddfSDavid du Colombierthan an individual band, in the band list.  Eventually this will be used for
45407dd7cddfSDavid du Colombierpassing halftones through the band list.  (gxcldev.h, gxclist.h, gxclist.c)
45417dd7cddfSDavid du Colombier
45427dd7cddfSDavid du ColombierAdds support for 2-bit-deep 'word' memory devices.  (gdevmem.h, gxdevmem.c,
45437dd7cddfSDavid du Colombiergdevm2.c)
45447dd7cddfSDavid du Colombier
45457dd7cddfSDavid du ColombierChanges the initialization for memory devices so that they determine their
45467dd7cddfSDavid du Colombierpolarity from the device for which they are buffering the image (if any).
45477dd7cddfSDavid du ColombierThis is a subtle change.  (gdevmem.h, gdevmem.c, gdevm1.c, gsdevmem.c)
45487dd7cddfSDavid du Colombier
45493ff48bf5SDavid du Colombier</pre>
45507dd7cddfSDavid du Colombier
45513ff48bf5SDavid du Colombier<h2><a name="Version3.43"></a>Version 3.43 (limited) (8/10/95)</h2>
45523ff48bf5SDavid du Colombier
45533ff48bf5SDavid du Colombier<p>
45547dd7cddfSDavid du ColombierFixes a few more minor bugs, and changes FEATURE selection back to
45557dd7cddfSDavid du Colombieressentially the way it was before 3.41.
45567dd7cddfSDavid du Colombier
45573ff48bf5SDavid du Colombier<h3><a name="V3.43_Documentation"></a>Documentation</h3><pre>
45587dd7cddfSDavid du ColombierFixes bugs:
45597dd7cddfSDavid du Colombier	- A ~ was missing in a URL.  (README)
45607dd7cddfSDavid du Colombier
45617dd7cddfSDavid du ColombierAdds information about an Amiga port of Ghostscript.  (README)
45627dd7cddfSDavid du Colombier
45637dd7cddfSDavid du ColombierRemoves a file called gs.1.c, which appears to be an obsolete version of
45647dd7cddfSDavid du Colombiergs.1.
45657dd7cddfSDavid du Colombier
45667dd7cddfSDavid du ColombierAdds DCX documentation to the PCX driver.  (We don't support DCX yet, but we
45677dd7cddfSDavid du Colombiermight in the future.)  (gdevpcx.c)
45687dd7cddfSDavid du Colombier
45697dd7cddfSDavid du ColombierAdds information about getting Type 1 fonts from H-P if you have an H-P
45707dd7cddfSDavid du ColombierPostScript printer.  (use.doc)
45717dd7cddfSDavid du Colombier
45723ff48bf5SDavid du Colombier</pre><h3><a name="V3.43_Procedures"></a>Procedures</h3><pre>
45737dd7cddfSDavid du Colombier
45747dd7cddfSDavid du ColombierFixes bugs:
45757dd7cddfSDavid du Colombier	- The auxiliary programs wouldn't compile with ANSI compilers that
45767dd7cddfSDavid du Colombierdon't accept K&amp;R syntax.  (ccgs, gs.mak, ugcclib.mak, *head.mak,
45777dd7cddfSDavid du Colombierunixtail.mak, echogs.c, genarch.c, genconf.c, geninit.c)
45787dd7cddfSDavid du Colombier
45797dd7cddfSDavid du ColombierReinstates FEATURE_DEVS in the makefiles, getting rid of FEATURE1..10.  THIS
45807dd7cddfSDavid du ColombierIS A NON-BACKWARD-COMPATIBLE CHANGE, but it puts things back the way they
45817dd7cddfSDavid du Colombierwere before 3.41, with one exception: compiling the PostScript
45827dd7cddfSDavid du Colombierinitialization code into the executable is now a separate macro
45837dd7cddfSDavid du ColombierCOMPILE_INITS with a definition of 0 or 1, instead of the ccinit 'feature'.
45847dd7cddfSDavid du Colombier(gs.mak, *.mak, fonts.doc, make.doc)
45857dd7cddfSDavid du Colombier
45867dd7cddfSDavid du ColombierAdds a CCLEAF macro to the makefiles, for optimizing the compilation of
45877dd7cddfSDavid du Colombiermodules containing only leaf procedures.  (gs.mak, *.mak)
45887dd7cddfSDavid du Colombier
45897dd7cddfSDavid du ColombierAdds a CONFIG makefile variable that helps in maintaining multiple variants
45907dd7cddfSDavid du Colombierin a single directory.  (gs.mak, *.mak)
45917dd7cddfSDavid du Colombier
45923ff48bf5SDavid du Colombier</pre><h3><a name="V3.43_Platforms"></a>Platforms</h3><pre>
45937dd7cddfSDavid du Colombier
45947dd7cddfSDavid du ColombierFixes bugs:
45957dd7cddfSDavid du Colombier	- An extern for exit() (in &lt;stdlib.h&gt;) was omitted.  (gp_vms.c)
45967dd7cddfSDavid du Colombier
45973ff48bf5SDavid du Colombier</pre><h3><a name="V3.43_Fonts"></a>Fonts</h3><pre>
45987dd7cddfSDavid du Colombier
45997dd7cddfSDavid du ColombierReorganizes the compiled font facility so that fonts can be compiled and
46007dd7cddfSDavid du Colombierturned into a library by third parties.  (gs.mak, font2c.ps, gs_ccfnt.ps,
46017dd7cddfSDavid du Colombierccfont.h, iccfont.c, ccfontab.c)
46027dd7cddfSDavid du Colombier
46033ff48bf5SDavid du Colombier</pre><h3><a name="V3.43_Interpreter"></a>Interpreter</h3><pre>
46047dd7cddfSDavid du Colombier
46057dd7cddfSDavid du ColombierFixes bugs:
46067dd7cddfSDavid du Colombier	- internaldict was implemented as a dictionary in systemdict and an
46077dd7cddfSDavid du Colombieroperator in userdict, rather than as an operator in systemdict.  This caused
46087dd7cddfSDavid du Colombiera noaccess error when loading certain Type 1 fonts.  (gs_init.ps,
46097dd7cddfSDavid du Colombiergs_type1.ps)
46107dd7cddfSDavid du Colombier	- xfonts couldn't handle modified encodings.  (zfont2.c)
46117dd7cddfSDavid du Colombier
46127dd7cddfSDavid du ColombierChanges the build date printout in the help message to YYYY-MM-DD.  (gs.c)
46137dd7cddfSDavid du Colombier
46147dd7cddfSDavid du ColombierAdds native support for Multiple Master fonts (WeightVector).  (zfont1.c)
46157dd7cddfSDavid du Colombier
46167dd7cddfSDavid du ColombierImplements sin and cos more efficiently (by table lookup with linear
46177dd7cddfSDavid du Colombierinterpolation) on machines with slow (or no) floating point.  (zmath.c)
46187dd7cddfSDavid du Colombier
46197dd7cddfSDavid du ColombierSeparates out the code for 'reading' the .ps initialization files, for the
46207dd7cddfSDavid du Colombiernew COMPILE_INITS arrangement.  (imain.h, gconfig.c, gsmain.c, iconfig.c,
46217dd7cddfSDavid du Colombiericcinit0.c, iinit.c)
46227dd7cddfSDavid du Colombier
46233ff48bf5SDavid du Colombier</pre><h3><a name="V3.43_Streams"></a>Streams</h3><pre>
46247dd7cddfSDavid du Colombier
46257dd7cddfSDavid du ColombierFixes bugs:
46267dd7cddfSDavid du Colombier	- The CCITTFaxDecode filter could read up to 3 bytes beyond EOD.
46277dd7cddfSDavid du ColombierThis fix doesn't quite cover all cases, but at least it makes things better.
46287dd7cddfSDavid du Colombier(ghc.h, sbhc.c, scfd.c)
46297dd7cddfSDavid du Colombier
46303ff48bf5SDavid du Colombier</pre><h3><a name="V3.43_Library"></a>Library</h3><pre>
46317dd7cddfSDavid du Colombier
46327dd7cddfSDavid du ColombierFixes bugs:
46337dd7cddfSDavid du Colombier	- After a nocurrentpoint error from a show operation with a
46347dd7cddfSDavid du Colombiercomposite font, the bookkeeping was confused and could cause an access
46357dd7cddfSDavid du Colombiererror.  (gschar.c)
46367dd7cddfSDavid du Colombier	- xfonts couldn't handle modified encodings.  (gsccode.h, gxchar.h,
46377dd7cddfSDavid du Colombiergxfont.h, gxxfont.h, gschar.c, gxccache.c)
46387dd7cddfSDavid du Colombier
46397dd7cddfSDavid du ColombierMakes .charboxpath able to use cached character information.  (gxchar.h,
46407dd7cddfSDavid du Colombiergschar.c)
46417dd7cddfSDavid du Colombier
46427dd7cddfSDavid du ColombierAdds native support for Multiple Master fonts (OtherSubrs 14-18).
46437dd7cddfSDavid du Colombier(gxfont1.h, gstype1.c)
46447dd7cddfSDavid du Colombier
46457dd7cddfSDavid du ColombierImproves the hashing functions for the character cache.  (gxfcache.h,
46467dd7cddfSDavid du Colombiergxccman.c)
46477dd7cddfSDavid du Colombier
46487dd7cddfSDavid du ColombierAdjusts the character oversampling algorithm to reduce thickening for
46497dd7cddfSDavid du Colombierdevices with alpha capability.  (gsbitops.c)
46507dd7cddfSDavid du Colombier
46517dd7cddfSDavid du ColombierImproves the encoding of the band list for certain kinds of small
46527dd7cddfSDavid du Colombierrectangles.  (gxcldev.h, gxclist.c, gxclread.c)
46537dd7cddfSDavid du Colombier
46547dd7cddfSDavid du ColombierImplements sin and cos efficiently on machines with slow (or no) floating
46557dd7cddfSDavid du Colombierpoint.  (gxfarith.h, gsmatrix.c, gsmisc.c, gspath1.c)
46567dd7cddfSDavid du Colombier
46573ff48bf5SDavid du Colombier</pre>
46587dd7cddfSDavid du Colombier
46593ff48bf5SDavid du Colombier<h2><a name="Version3.42"></a>Version 3.42 (limited) (8/2/95)</h2>
46603ff48bf5SDavid du Colombier
46613ff48bf5SDavid du Colombier<p>
46627dd7cddfSDavid du ColombierFixes a few significant problems in 3.41, and brings the DLL code up to
46637dd7cddfSDavid du Colombierdate.
46647dd7cddfSDavid du Colombier
46653ff48bf5SDavid du Colombier<h3><a name="V3.42_Documentation"></a>Documentation</h3><pre>
46667dd7cddfSDavid du ColombierFixes bugs:
46677dd7cddfSDavid du Colombier	- language.doc still referred to rectappend rather than .rectappend.
46687dd7cddfSDavid du Colombier(language.doc)
46697dd7cddfSDavid du Colombier
46707dd7cddfSDavid du ColombierAdds documentation on the Macintosh port.  (readme, make.doc)
46717dd7cddfSDavid du Colombier
46727dd7cddfSDavid du ColombierUpdates the DLL documentation.  (dll.doc)
46737dd7cddfSDavid du Colombier
46747dd7cddfSDavid du ColombierDocuments the BCP and TBCP filters as non-experimental.  (language.doc)
46757dd7cddfSDavid du Colombier
46763ff48bf5SDavid du Colombier</pre><h3><a name="V3.42_Procedures"></a>Procedures</h3><pre>
46777dd7cddfSDavid du Colombier
46787dd7cddfSDavid du ColombierChanges the build date printout to YYYY-MM-DD.  (gs_init.ps)
46797dd7cddfSDavid du Colombier
46803ff48bf5SDavid du Colombier</pre><h3><a name="V3.42_Platforms"></a>Platforms</h3><pre>
46817dd7cddfSDavid du Colombier
46827dd7cddfSDavid du ColombierFixes bugs:
46837dd7cddfSDavid du Colombier	- The VMS build script had gotten out of sync with the makefiles
46847dd7cddfSDavid du Colombier(again).  (vms.mak, modules.lis)
46857dd7cddfSDavid du Colombier
46867dd7cddfSDavid du ColombierBrings the MS Windows and OS/2 platforms up to date with the rest of the
46877dd7cddfSDavid du Colombiercode, including DLL support for OS/2.  (os2.mak, gsdll*.def, gdevswn.c,
46887dd7cddfSDavid du Colombiergdevpm.c, gdevwdib.c, gp_mswin.c, gp_os2.c, gsdll.c, gsmain.c)
46897dd7cddfSDavid du Colombier
46907dd7cddfSDavid du ColombierAdds a new platform-specific routine gp_do_exit, as an alias for the C
46917dd7cddfSDavid du Colombierlibrary `exit' call.  (gp.h, gsdll.c, gsmain.c, gp_*.c)
46927dd7cddfSDavid du Colombier
46933ff48bf5SDavid du Colombier</pre><h3><a name="V3.42_Interpreter"></a>Interpreter</h3><pre>
46947dd7cddfSDavid du Colombier
46957dd7cddfSDavid du ColombierFixes bugs:
46967dd7cddfSDavid du Colombier	- .forgetsave at the outermost level didn't clear the l_new bit,
46977dd7cddfSDavid du Colombiercausing changes to be undone improperly.  (isave.c)
46987dd7cddfSDavid du Colombier	- A 'void' formal parameter list upset some compilers (as it should
46997dd7cddfSDavid du Colombierhave).  (gsmain.c)
47007dd7cddfSDavid du Colombier
47017dd7cddfSDavid du ColombierAdds a .charboxpath operator that appends to the current path the bounding
47027dd7cddfSDavid du Colombierboxes of the characters of a string.  (zchar.c, zchar1.c)
47037dd7cddfSDavid du Colombier
47043ff48bf5SDavid du Colombier</pre><h3><a name="V3.42_Streams"></a>Streams</h3><pre>
47057dd7cddfSDavid du Colombier
47067dd7cddfSDavid du ColombierFixes bugs:
47077dd7cddfSDavid du Colombier	- A procedure was declared private inconsistently.  (siscale.c)
47087dd7cddfSDavid du Colombier
47093ff48bf5SDavid du Colombier</pre><h3><a name="V3.42_Library"></a>Library</h3><pre>
47107dd7cddfSDavid du Colombier
47117dd7cddfSDavid du ColombierFixes bugs:
47127dd7cddfSDavid du Colombier	- The library test program didn't do a necessary initial gsave.
47137dd7cddfSDavid du Colombier(gslib.c)
47147dd7cddfSDavid du Colombier	- The fix for landscape monobit images in 3.41 could smash memory.
47157dd7cddfSDavid du Colombier(gsimage1.c)
47167dd7cddfSDavid du Colombier	- 1-pixel-wide lines drawn with image or imagemask still disappeared
47177dd7cddfSDavid du Colombiersometimes.  (gsimage.c)
47187dd7cddfSDavid du Colombier
47197dd7cddfSDavid du ColombierDoes some more preparatory work for the implementation of command lists in
47207dd7cddfSDavid du ColombierRAM.  (gdevprn.h, gxclio.h, gxclist.h, gxclfile.c, gxclist.c, gxclread.c)
47217dd7cddfSDavid du Colombier
47227dd7cddfSDavid du ColombierAdds a gs_charboxpath procedure that appends to the current path the
47237dd7cddfSDavid du Colombierbounding boxes of the characters of a string.  (gschar.h, gscpm.h,
47247dd7cddfSDavid du Colombiergstype1.h, gxchar.h, gxpath.h, gxtype1.h, gzstate.h, gschar.c, gspaint.c,
47257dd7cddfSDavid du Colombiergstype1.c, gxpath.c)
47267dd7cddfSDavid du Colombier
47273ff48bf5SDavid du Colombier</pre>
47287dd7cddfSDavid du Colombier
47293ff48bf5SDavid du Colombier<h2><a name="Version3.41"></a>Version 3.41 (limited) (7/27/95)</h2>
47303ff48bf5SDavid du Colombier<p>
47317dd7cddfSDavid du ColombierAnother incremental release with bug fixes and customer-requested
47327dd7cddfSDavid du Colombierenhancements.  This release was intended to include the full setpagedevice
47337dd7cddfSDavid du Colombiermedia matching and adjustment algorithm, but we discovered some
47347dd7cddfSDavid du Colombierarchitectural problems during development, and have postponed it.
47357dd7cddfSDavid du Colombier
47363ff48bf5SDavid du Colombier<h3><a name="V3.41_Documentation"></a>Documentation</h3><pre>
47377dd7cddfSDavid du Colombier
47387dd7cddfSDavid du ColombierReplaces the build instructions for NeXTSTEP with more up-to-date and
47397dd7cddfSDavid du Colombieraccurate ones.  (make.doc)
47407dd7cddfSDavid du Colombier
47417dd7cddfSDavid du ColombierNotes that some extra manual steps are required when cross-compiling.
47427dd7cddfSDavid du Colombier(make.doc)
47437dd7cddfSDavid du Colombier
47447dd7cddfSDavid du ColombierDocuments how to define new 'features' in the makefile.  (gs.mak)
47457dd7cddfSDavid du Colombier
47463ff48bf5SDavid du Colombier</pre><h3><a name="V3.41_Procedures"></a>Procedures</h3><pre>
47477dd7cddfSDavid du Colombier
47487dd7cddfSDavid du ColombierFixes bugs:
47497dd7cddfSDavid du Colombier	- The build rule for ccinit.dev was circular.  Fixing this required
47507dd7cddfSDavid du Colombiera small but NON-BACKWARD-COMPATIBLE change in the way that features are
47517dd7cddfSDavid du Colombierselected in the makefiles (FEATURE_DEVS replaced by FEATURE1..10).  (*.mak,
47527dd7cddfSDavid du Colombierfonts.doc, make.doc)
47537dd7cddfSDavid du Colombier
47547dd7cddfSDavid du ColombierChanges the build rule for gconfig.h to be less likely to overrun MS-DOS's
47557dd7cddfSDavid du Colombiercommand line length limit.  (gs.mak)
47567dd7cddfSDavid du Colombier
47577dd7cddfSDavid du ColombierAdds a -dFIXEDMEDIA switch to indicate that the media size should be
47587dd7cddfSDavid du Colombierconsidered fixed after initialization.  (gs_init.ps)
47597dd7cddfSDavid du Colombier
47603ff48bf5SDavid du Colombier</pre><h3><a name="V3.41_Utilities"></a>Utilities</h3><pre>
47617dd7cddfSDavid du Colombier
47627dd7cddfSDavid du ColombierFixes bugs:
47637dd7cddfSDavid du Colombier	- traceimg.ps incorrectly referred to .stdout.  (traceimg.ps)
47647dd7cddfSDavid du Colombier	- prfont.ps didn't display unencoded characters correctly.
47657dd7cddfSDavid du Colombier(prfont.ps)
47667dd7cddfSDavid du Colombier	- ps2epsi didn't give correct bounding box information.  (ps2epsi,
47677dd7cddfSDavid du Colombierps2epsi.ps)
47687dd7cddfSDavid du Colombier	- ps2epsi produced DSC comments that didn't fully conform to the
47697dd7cddfSDavid du ColombierAdobe standard.  (ps2epsi, ps2epsi.ps)
47707dd7cddfSDavid du Colombier
47717dd7cddfSDavid du ColombierAllows viewpbm.ps to take multiple files on the command line.  (viewpbm.ps)
47727dd7cddfSDavid du Colombier
47733ff48bf5SDavid du Colombier</pre><h3><a name="V3.41_Drivers"></a>Drivers</h3><pre>
47747dd7cddfSDavid du Colombier
47757dd7cddfSDavid du ColombierAdds a preliminary, contributed PNG driver.  THIS IS NOT USABLE YET -- DON'T
47767dd7cddfSDavid du ColombierTRY TO USE IT.  (png.mak, gdevpng.c)
47777dd7cddfSDavid du Colombier
47787dd7cddfSDavid du ColombierIncreases the maximum allowable scan line width for the TIFF drivers from
47797dd7cddfSDavid du Colombier5183 pixels to 12863 pixels.  (scf.h)
47807dd7cddfSDavid du Colombier
47813ff48bf5SDavid du Colombier</pre><h3><a name="V3.41_Platforms"></a>Platforms</h3><pre>
47827dd7cddfSDavid du Colombier
47837dd7cddfSDavid du ColombierUpdates the MS Windows DLL code to export the new, suspendable run_string
47847dd7cddfSDavid du Colombierinterface.  (gsdll.h, gsdll.c, dll.doc)
47857dd7cddfSDavid du Colombier
47863ff48bf5SDavid du Colombier</pre><h3><a name="V3.41_Fonts"></a>Fonts</h3><pre>
47877dd7cddfSDavid du Colombier
47887dd7cddfSDavid du ColombierFixes bugs:
47897dd7cddfSDavid du Colombier	- There were several errors in cfonts.mak.  (cfonts.mak)
47907dd7cddfSDavid du Colombier	- The compiled fonts option didn't offer both free and standard
47917dd7cddfSDavid du Colombierconfigurations.  (gs.mak)
47927dd7cddfSDavid du Colombier	- A bug in the handling of Encoding resources prevented compiled
47937dd7cddfSDavid du Colombierfonts from working.  (gs_res.ps)
47947dd7cddfSDavid du Colombier
47957dd7cddfSDavid du ColombierAdds a little more support for CID-keyed fonts.  They still aren't anywhere
47967dd7cddfSDavid du Colombiernear usable.  (gs_cidfn.ps, gs_type1.ps)
47977dd7cddfSDavid du Colombier
47987dd7cddfSDavid du ColombierAdds a new Fontmap for Solaris 2.3.  (Fontmap.Solaris)
47997dd7cddfSDavid du Colombier
48007dd7cddfSDavid du ColombierAdds support for Type 4 fonts (Type 1 fonts with their own BuildChar
48017dd7cddfSDavid du Colombierprocedures), including the CCRun procedure in internaldict.  (gs_fonts.ps,
48027dd7cddfSDavid du Colombiergs_res.ps, gs_type1.ps)
48037dd7cddfSDavid du Colombier
48043ff48bf5SDavid du Colombier</pre><h3><a name="V3.41_Interpreter"></a>Interpreter</h3><pre>
48057dd7cddfSDavid du Colombier
48067dd7cddfSDavid du ColombierFixes bugs:
48077dd7cddfSDavid du Colombier	- showpage and copypage didn't honor NumCopies in a page device.
48087dd7cddfSDavid du Colombier(gs_setpd.ps, zdevice2.c)
48097dd7cddfSDavid du Colombier	- currentpagedevice returned incorrect information if the current
48107dd7cddfSDavid du Colombierdevice wasn't a page device.  (gs_setpd.ps)
48117dd7cddfSDavid du Colombier	- currentpagedevice didn't guarantee the presence of InputAttributes
48127dd7cddfSDavid du Colombierand OutputAttributes.  (gs_setpd.ps)
48137dd7cddfSDavid du Colombier	- The l_new bit wasn't set properly when a dictionary changed from
48147dd7cddfSDavid du Colombierpacked to unpacked keys, leading to unnecessary saves.  (idict.c)
48157dd7cddfSDavid du Colombier	- Streams requiring intermediate buffering could read ahead too far,
48167dd7cddfSDavid du Colombiercausing input data to be skipped.  (zfilter.c)
48177dd7cddfSDavid du Colombier	- cshow didn't reset the font to the base font when calling the
48187dd7cddfSDavid du Colombierprocedure.  (zchar2.c)
48197dd7cddfSDavid du Colombier	- The Install procedure in a page device didn't set the default CTM.
48207dd7cddfSDavid du Colombier(gs_setpd.ps, zmatrix.c)
48217dd7cddfSDavid du Colombier	- findlibfile didn't handle special files like %stdin correctly.
48227dd7cddfSDavid du Colombier(zfile.c)
48237dd7cddfSDavid du Colombier	- setpagedevice didn't implement media matching.  (gs_setpd.ps,
48247dd7cddfSDavid du Colombierzdevice2.c, zmedia2.c, zmatrix.c)
48257dd7cddfSDavid du Colombier	- Some floating point numbers didn't print out with enough digits to
48267dd7cddfSDavid du Colombierread back in with the identical value.  (iutil.c)
48277dd7cddfSDavid du Colombier	- Integers that overflowed 31 bits (but not 32 bits) were converted
48287dd7cddfSDavid du Colombierto negative integers rather than correct positive reals.  (iscannum.c)
48297dd7cddfSDavid du Colombier
48307dd7cddfSDavid du ColombierRemoves an experimental operator that called the image scaling/interpolation
48317dd7cddfSDavid du Colombiercode.  (zimage2.c)
48327dd7cddfSDavid du Colombier
48337dd7cddfSDavid du ColombierAdds a -sSUBSTFONT=&lt;fontname&gt; switch that substitutes the given font for all
48347dd7cddfSDavid du Colombierunknown fonts, bypassing the normal intelligent substitution algorithm.
48357dd7cddfSDavid du Colombier(gs_fonts.ps)
48367dd7cddfSDavid du Colombier
48377dd7cddfSDavid du ColombierAdds the Revision system parameter.  (zmisc2.c)
48387dd7cddfSDavid du Colombier
48397dd7cddfSDavid du ColombierAdds a .knownundef operator that does an undef and returns true iff the key
48407dd7cddfSDavid du Colombierwas formerly present.  (zdict.c)
48417dd7cddfSDavid du Colombier
48427dd7cddfSDavid du ColombierMakes the maximum length of names be 256 if EXTEND_NAMES is being used, 16K
48437dd7cddfSDavid du Colombierotherwise.  (inamedef.h, iname.c)
48447dd7cddfSDavid du Colombier
48457dd7cddfSDavid du ColombierAdds internaldict.  (gs_init.ps, iinit.c)
48467dd7cddfSDavid du Colombier
48477dd7cddfSDavid du ColombierAdds support for Type 4 fonts.  (bfont.h, zchar.c, zchar1.c, zfont1.c,
48487dd7cddfSDavid du Colombierzfont2.c)
48497dd7cddfSDavid du Colombier
48507dd7cddfSDavid du ColombierChanges .encodingdict to EncodingDirectory, for compatibility with Adobe
48517dd7cddfSDavid du Colombierinterpreters.  (gs_init.ps, gs_kanji.ps, gs_res.ps)
48527dd7cddfSDavid du Colombier
48537dd7cddfSDavid du ColombierAdds superexec, an undocumented operator that is equivalent to exec but
48547dd7cddfSDavid du Colombiersuppresses all invalidaccess checks.  NOT COMPLETED YET; currently superexec
48557dd7cddfSDavid du Colombieris equivalent to exec.  (zcontrol.c)
48567dd7cddfSDavid du Colombier
48573ff48bf5SDavid du Colombier</pre><h3><a name="V3.41_Interpreter_PDF"></a>Interpreter (PDF)</h3><pre>
48587dd7cddfSDavid du Colombier
48597dd7cddfSDavid du ColombierFixes bugs:
48607dd7cddfSDavid du Colombier	- .stderr was used but is no longer defined.  (pdf_base.ps)
48617dd7cddfSDavid du Colombier
48623ff48bf5SDavid du Colombier</pre><h3><a name="V3.41_Streams"></a>Streams</h3><pre>
48637dd7cddfSDavid du Colombier
48647dd7cddfSDavid du ColombierFixes bugs:
48657dd7cddfSDavid du Colombier	- Not all streams initialized their state pointer.  (stream.c,
48667dd7cddfSDavid du Colombiersfile.c, sfileno.c)
48677dd7cddfSDavid du Colombier
48687dd7cddfSDavid du ColombierAdds a filter for the smoothed image scaling algorithm.  Eventually this
48697dd7cddfSDavid du Colombierfilter will require very little intermediate storage; right now it still
48707dd7cddfSDavid du Colombierneeds to buffer the entire intermediate image.  (siscale.h, siscale.c)
48717dd7cddfSDavid du Colombier
48727dd7cddfSDavid du ColombierIncreases the maximum allowable scan line width for the CCITTFaxEncode
48737dd7cddfSDavid du Colombierfilter from 5183 pixels to 12863 pixels.  (scf.h)
48747dd7cddfSDavid du Colombier
48753ff48bf5SDavid du Colombier</pre><h3><a name="V3.41_Library"></a>Library</h3><pre>
48767dd7cddfSDavid du Colombier
48777dd7cddfSDavid du ColombierFixes bugs:
48787dd7cddfSDavid du Colombier	- setpagedevice didn't update NumCopies correctly.  (gdevprn.c,
48797dd7cddfSDavid du Colombiergsdparam.c)
48807dd7cddfSDavid du Colombier	- The newly optimized code for monobit bitmaps could cause an
48817dd7cddfSDavid du Colombierout-of-bounds memory access and/or make unaligned references.  (gsimage1.c)
48827dd7cddfSDavid du Colombier	- setpagedevice with unknown keys could cause an /undefined error.
48837dd7cddfSDavid du Colombier(gsdparam.c)
48847dd7cddfSDavid du Colombier	- cshow didn't reset the font to the base font when calling the
48857dd7cddfSDavid du Colombierprocedure.  (gschar.h, gschar.c)
48867dd7cddfSDavid du Colombier	- The Install procedure in a page device didn't set the default CTM.
48877dd7cddfSDavid du Colombier(gzstate.h, gschar.c, gscoord.c, gsdevice.c)
48887dd7cddfSDavid du Colombier	- Very non-linear EncodeABC procedures in a color rendering
48897dd7cddfSDavid du Colombierdictionary could produce very inaccurate results.  (gscie.h, gscie.c)
48907dd7cddfSDavid du Colombier	- The line_ptrs pointer in memory devices didn't get relocated if
48917dd7cddfSDavid du Colombierthe bitmap was moved during garbage collection, leading to memory smashing.
48927dd7cddfSDavid du Colombier(gdevmem.c)
48937dd7cddfSDavid du Colombier	- setpagedevice didn't implement media matching.  (gsdparam.c,
48947dd7cddfSDavid du Colombiergscoord.c)
48957dd7cddfSDavid du Colombier	- 'word' memory devices weren't recognized as memory devices.
48967dd7cddfSDavid du Colombier(gdevmem.c)
48977dd7cddfSDavid du Colombier	- makeimagedevice allocated, and then didn't free, an unnecessary
48987dd7cddfSDavid du Colombierpalette for monobit devices.  (gsdevmem.c)
48997dd7cddfSDavid du Colombier	- The hack for 1-bit-wide images didn't work consistently,
49007dd7cddfSDavid du Colombierparticularly in landscape orientation.  (gsimage.c, gsimage0.c)
49017dd7cddfSDavid du Colombier
49027dd7cddfSDavid du ColombierAdds an .IgnoreNumCopies page device parameter that causes #copies and
49037dd7cddfSDavid du ColombierNumCopies to be ignored.  (gxdevice.h, gsdevice.c, gsdparam.c)
49047dd7cddfSDavid du Colombier
49057dd7cddfSDavid du ColombierRemoves the .IsPageDevice device parameter.  (gsdparam.c)
49067dd7cddfSDavid du Colombier
49077dd7cddfSDavid du ColombierConverts the image scaling/interpolation code to a filter.  (gximage.h,
49087dd7cddfSDavid du Colombiergsimage.c, gsimage0.c, gsimage3.c)
49097dd7cddfSDavid du Colombier
49107dd7cddfSDavid du ColombierAdds support for Type 4 fonts.  (gxfont.h)
49117dd7cddfSDavid du Colombier
49127dd7cddfSDavid du ColombierAdds a default implementation of parameter lists, designed to be usable
49137dd7cddfSDavid du Colombiereasily from C code.  (gsparam.h, gsparam.c)
49147dd7cddfSDavid du Colombier
49153ff48bf5SDavid du Colombier</pre>
49167dd7cddfSDavid du Colombier
49173ff48bf5SDavid du Colombier<h2><a name="Version3.40"></a>Version 3.40 (limited) (6/28/95)</h2>
49183ff48bf5SDavid du Colombier
49193ff48bf5SDavid du Colombier<p>
49207dd7cddfSDavid du ColombierThis is another incremental limited release for delivery of a couple of
49217dd7cddfSDavid du Colombierimportant bug fixes (pixel 'holes' in rotated images, setpagedevice errors
49227dd7cddfSDavid du Colombieron some platforms) and an enhancement (architectural support for band lists
49237dd7cddfSDavid du Colombierin RAM).
49247dd7cddfSDavid du Colombier
49253ff48bf5SDavid du Colombier<h3><a name="V3.40_Documentation"></a>Documentation</h3><pre>
49267dd7cddfSDavid du ColombierFixes bugs:
49277dd7cddfSDavid du Colombier	- The FTP location of the EMX DLLs was incorrect.  (use.doc)
49287dd7cddfSDavid du Colombier
49293ff48bf5SDavid du Colombier</pre><h3><a name="V3.40_Procedures"></a>Procedures</h3><pre>
49307dd7cddfSDavid du Colombier
49317dd7cddfSDavid du ColombierFixes bugs:
49327dd7cddfSDavid du Colombier	- A couple of build rules for IJG v6 were omitted.  (jpeg.mak)
49337dd7cddfSDavid du Colombier
49343ff48bf5SDavid du Colombier</pre><h3><a name="V3.40_Utilities"></a>Utilities</h3><pre>
49357dd7cddfSDavid du Colombier
49367dd7cddfSDavid du ColombierFixes bugs:
49377dd7cddfSDavid du Colombier	- prfont.ps wouldn't print more than 128 unencoded characters.
49387dd7cddfSDavid du Colombier(prfont.ps)
49397dd7cddfSDavid du Colombier
49403ff48bf5SDavid du Colombier</pre><h3><a name="V3.40_Platforms"></a>Platforms</h3><pre>
49417dd7cddfSDavid du Colombier
49427dd7cddfSDavid du ColombierFixes bugs:
49437dd7cddfSDavid du Colombier	- setpagedevice often caused /undefined errors on MS Windows and
49447dd7cddfSDavid du ColombierOS/2 platforms.  (gdevmswn.c, gdevpm.c)
49457dd7cddfSDavid du Colombier	- The VMS module list had gotten out of sync with the makefiles
49467dd7cddfSDavid du Colombier(again).  (modules.lis)
49477dd7cddfSDavid du Colombier
49483ff48bf5SDavid du Colombier</pre><h3><a name="V3.40_Interpreter"></a>Interpreter</h3><pre>
49497dd7cddfSDavid du Colombier
49507dd7cddfSDavid du ColombierFixes bugs:
49517dd7cddfSDavid du Colombier	- A couple of casts betwen char * and byte * were omitted.
49527dd7cddfSDavid du Colombier(gsmain.c)
49537dd7cddfSDavid du Colombier	- gs_[main_]run_file_open wasn't exported properly.  (imain.h,
49547dd7cddfSDavid du Colombiermain.h, gsmain.c)
49557dd7cddfSDavid du Colombier
49563ff48bf5SDavid du Colombier</pre><h3><a name="V3.40_Streams"></a>Streams</h3><pre>
49577dd7cddfSDavid du Colombier
49587dd7cddfSDavid du ColombierChanges the DCTEncode filter to return an error if it wasn't supplied enough
49597dd7cddfSDavid du Colombierdata before being closed.  (sdcte.c)
49607dd7cddfSDavid du Colombier
49613ff48bf5SDavid du Colombier</pre><h3><a name="V3.40_Library"></a>Library</h3><pre>
49627dd7cddfSDavid du Colombier
49637dd7cddfSDavid du ColombierFixes bugs:
49647dd7cddfSDavid du Colombier	- The coordinate computations for all filling operations were
49657dd7cddfSDavid du Colombierslightly inaccurate, leading to pixel 'holes' in rotated images.  (gxdda.h,
49667dd7cddfSDavid du Colombiergximage.h, gsimage*.c, gxdraw.c, gxfill.c)
49677dd7cddfSDavid du Colombier
49687dd7cddfSDavid du ColombierUndoes an "optimization" (inlining the normal, fast case of a procedure)
49697dd7cddfSDavid du Colombierthat actually hurt performance.  (gxclist.c)
49707dd7cddfSDavid du Colombier
49717dd7cddfSDavid du ColombierRefactors the command list code so that it in the future it will be able to
49727dd7cddfSDavid du Colombierstore command lists either in RAM or in the file system.  (gdevprn.h,
49737dd7cddfSDavid du Colombiergxcldev.h, gxclio.h, gxclist.h, gdevprn.c, gxclfile.c, gxclist.c,
49747dd7cddfSDavid du Colombiergxclread.c)
49757dd7cddfSDavid du Colombier
49767dd7cddfSDavid du ColombierChanges the interface to the path filling code to take separate X and Y
49777dd7cddfSDavid du Colombieradjustment values.  (gxpaint.h, gspaint.c, gxfill.c)
49787dd7cddfSDavid du Colombier
49797dd7cddfSDavid du ColombierMakes the command list allocate a small tile cache if the device doesn't
49807dd7cddfSDavid du Colombierneed halftones.  (gxclist.c)
49817dd7cddfSDavid du Colombier
49823ff48bf5SDavid du Colombier</pre>
49837dd7cddfSDavid du Colombier
49843ff48bf5SDavid du Colombier<hr>
49853ff48bf5SDavid du Colombier
49863ff48bf5SDavid du Colombier<h2><a name="Version3.39"></a>Version 3.39 (limited) (6/24/95)</h2>
49873ff48bf5SDavid du Colombier
49883ff48bf5SDavid du Colombier<p>
49897dd7cddfSDavid du ColombierThis is again an incremental release primarily for delivery of enhancements
49907dd7cddfSDavid du Colombier(suspendable string input in particular) to commercial customers, and with a
49917dd7cddfSDavid du Colombierfew bug fixes.
49927dd7cddfSDavid du Colombier
49933ff48bf5SDavid du Colombier<h3><a name="V3.39_Documentation"></a>Documentation</h3><pre>
49947dd7cddfSDavid du ColombierNotes that PDF files and repositioning PostScript files do not work if
49957dd7cddfSDavid du ColombierGhostscript was compiled with VAX C.  (use.doc)
49967dd7cddfSDavid du Colombier
49977dd7cddfSDavid du ColombierNotes the requirement for EOD lookahead in decoding filters.  (strimpl.h)
49987dd7cddfSDavid du Colombier
49993ff48bf5SDavid du Colombier</pre><h3><a name="V3.39_Procedures"></a>Procedures</h3><pre>
50007dd7cddfSDavid du Colombier
50017dd7cddfSDavid du ColombierFixes bugs:
50027dd7cddfSDavid du Colombier	- There were a number of undefined or used-before-defined variables
50037dd7cddfSDavid du Colombierin the makefiles.  (devs.mak, dvx-head.mak, unixhead.mak, gs.mak)
50047dd7cddfSDavid du Colombier	- Some commands in the makefile exceeded the MS-DOS limit of 120
50057dd7cddfSDavid du Colombiercharacters.  (gs.mak)
50067dd7cddfSDavid du Colombier
50077dd7cddfSDavid du ColombierAdds a -P and -P- switch to control whether the search path automatically
50087dd7cddfSDavid du Colombierincludes `.' as its first element.  Moves the default value of this choice
50097dd7cddfSDavid du Colombier(SEARCH_HERE_FIRST) from gsmain.c to iminst.h.  (iminst.h, gs.c, gsmain.c,
50107dd7cddfSDavid du Colombieruse.doc)
50117dd7cddfSDavid du Colombier
50127dd7cddfSDavid du ColombierMakes some makefile changes in anticipation of the IJG v6 release.  (*.mak)
50137dd7cddfSDavid du Colombier
50143ff48bf5SDavid du Colombier</pre><h3><a name="V3.39_Utilities"></a>Utilities</h3><pre>
50157dd7cddfSDavid du Colombier
50167dd7cddfSDavid du ColombierFixes bugs:
50177dd7cddfSDavid du Colombier	- font2c generated invalid C procedure names from font names that
50187dd7cddfSDavid du Colombiercontained non-alphanumerics other then '-'.  (font2c.ps)
50197dd7cddfSDavid du Colombier	- font2c generated a single element of incorrect type for numeric
50207dd7cddfSDavid du Colombierarrays of zero length.  (font2c.ps)
50217dd7cddfSDavid du Colombier
50223ff48bf5SDavid du Colombier</pre><h3><a name="V3.39_Platforms"></a>Platforms</h3><pre>
50237dd7cddfSDavid du Colombier
50247dd7cddfSDavid du ColombierFixes bugs:
50257dd7cddfSDavid du Colombier	- The VMS build scripts had gotten out of sync (again).  (vms*.mak,
50267dd7cddfSDavid du Colombiermodules.lis)
50277dd7cddfSDavid du Colombier
50283ff48bf5SDavid du Colombier</pre><h3><a name="V3.39_Fonts"></a>Fonts</h3><pre>
50297dd7cddfSDavid du Colombier
50307dd7cddfSDavid du ColombierMakes the FONTPATH directory scanner accept fonts that begin with
50317dd7cddfSDavid du Colombier%!PS-AdobeFont or %!FontType1 with no following `-'.  (gs_fonts.ps)
50327dd7cddfSDavid du Colombier
50333ff48bf5SDavid du Colombier</pre><h3><a name="V3.39_Interpreter"></a>Interpreter</h3><pre>
50347dd7cddfSDavid du Colombier
50357dd7cddfSDavid du ColombierFixes bugs:
50367dd7cddfSDavid du Colombier	- eq and ne on arrays or dictionaries required read access.
50377dd7cddfSDavid du Colombier(zrelbit.c)
50387dd7cddfSDavid du Colombier	- An include was missing.  (zcsindex.c)
50397dd7cddfSDavid du Colombier	- .forgetsave at the outermost level didn't reset the l_new flag in
50407dd7cddfSDavid du Colombierchanged slots, leading to an anomalous (although perhaps not harmful) state.
50417dd7cddfSDavid du Colombier(isave.c)
50427dd7cddfSDavid du Colombier	- Dictionary growing or unpacking would both save and free the old
50437dd7cddfSDavid du Colombierkeys array, leading to a dangling reference.  (idict.c)
50447dd7cddfSDavid du Colombier
50457dd7cddfSDavid du ColombierChanges gs_interpret so that for .quit with a negative operand &lt;= -100,
50467dd7cddfSDavid du Colombiergs_interpret returns e_Fatal rather than the operand.  THIS IS A
50477dd7cddfSDavid du ColombierNON-BACKWARD-COMPATIBLE CHANGE, but as far as we know, it doesn't affect
50487dd7cddfSDavid du Colombieranyone.  (interp.c)
50497dd7cddfSDavid du Colombier
50507dd7cddfSDavid du ColombierAdds an API to allow feeding string input to the interpreter in pieces.
50517dd7cddfSDavid du Colombier(errors.h, imain.h, main.h, gs.c, gsmain.c, interp.c, zcontrol.c, zfilter.c)
50527dd7cddfSDavid du Colombier
50537dd7cddfSDavid du ColombierAdds new predicates .identeq and .identne that test "pointer equality", even
50547dd7cddfSDavid du Colombierfor numbers and strings.  (iutil.h, iutil.c, zrelbit.c)
50557dd7cddfSDavid du Colombier
50567dd7cddfSDavid du ColombierChanges a few uses of return_error to return in places that don't lead
50577dd7cddfSDavid du Colombierdirectly to a PostScript error.  (idict.c)
50587dd7cddfSDavid du Colombier
50593ff48bf5SDavid du Colombier</pre><h3><a name="V3.39_Streams"></a>Streams</h3><pre>
50607dd7cddfSDavid du Colombier
50617dd7cddfSDavid du ColombierFixes bugs:
50627dd7cddfSDavid du Colombier	- The logic for skipping up to a 0xff byte when decoding JPEG data
50637dd7cddfSDavid du Colombiercould skip too much.  (sdctd.c, sjpegd.c)
50647dd7cddfSDavid du Colombier	- If a buffer boundary fell in the middle of, or just before, an
50657dd7cddfSDavid du ColombierEOD, some decoding filters could stop reading too soon.  (sbcp.c, smtf.c,
50667dd7cddfSDavid du Colombiersstring.c)
50677dd7cddfSDavid du Colombier
50687dd7cddfSDavid du ColombierMakes some minor changes in anticipation of the IJG v6 release.
50697dd7cddfSDavid du Colombier(gsjmorec.h)
50707dd7cddfSDavid du Colombier
50713ff48bf5SDavid du Colombier</pre><h3><a name="V3.39_Library"></a>Library</h3><pre>
50727dd7cddfSDavid du Colombier
50737dd7cddfSDavid du ColombierFixes bugs:
50747dd7cddfSDavid du Colombier	- A declaration should have been removed.  (gsdll.c)
50757dd7cddfSDavid du Colombier	- The library initialization/termination API wasn't declared.
50767dd7cddfSDavid du Colombier(gslib.h, gsinit.c, gsmain.c)
50777dd7cddfSDavid du Colombier	- A variable and a preprocessor macro with the same name confused
50787dd7cddfSDavid du ColombierVAX C.  (gxclist.c)
50797dd7cddfSDavid du Colombier	- Image devices with depth 2-8 and only gray shades in the palette
50807dd7cddfSDavid du Colombierdidn't set color_info correctly.  (gsdevice.c)
50817dd7cddfSDavid du Colombier
50827dd7cddfSDavid du ColombierSpeeds up unrotated black-and-white images further by making them render
50837dd7cddfSDavid du Colombierdirectly into a memory device when possible.  (gxdevmem.h, gsimage1.c)
50847dd7cddfSDavid du Colombier
50853ff48bf5SDavid du Colombier</pre>
50867dd7cddfSDavid du Colombier
50873ff48bf5SDavid du Colombier<h2><a name="Version3.38"></a>Version 3.38 (limited) (6/18/95)</h2>
50883ff48bf5SDavid du Colombier
50893ff48bf5SDavid du Colombier<p>
50907dd7cddfSDavid du ColombierThis release incorporates several customer-requested enhancements (cleaner
50917dd7cddfSDavid du Colombierseparation of the graphics library from the interpreter, option for &gt;64K
50927dd7cddfSDavid du Colombiernames, true garbage collection of names, better handling of halftones on
50937dd7cddfSDavid du Colombierband devices).  It is intended primarily for those customers, but is
50947dd7cddfSDavid du Colombierintended as a dry run for the next public release.
50957dd7cddfSDavid du Colombier
50963ff48bf5SDavid du Colombier<h3><a name="V3.38_Documentation"></a>Documentation</h3><pre>
50977dd7cddfSDavid du ColombierFixes bugs:
50987dd7cddfSDavid du Colombier	- gx_bitmap had not been updated to gx_tile_bitmap.
50997dd7cddfSDavid du Colombier(drivers.doc)
51007dd7cddfSDavid du Colombier
51013ff48bf5SDavid du Colombier</pre><h3><a name="V3.38_Procedures"></a>Procedures</h3><pre>
51027dd7cddfSDavid du Colombier
51037dd7cddfSDavid du ColombierFixes bugs:
51047dd7cddfSDavid du Colombier	- The man page extension in the Unix makefiles was still $(manext),
51057dd7cddfSDavid du Colombiernot $(man1ext).  (unix-end.mak)
51067dd7cddfSDavid du Colombier	- 'make clean' didn't remove gs_init.c.  (gs.mak)
51077dd7cddfSDavid du Colombier
51087dd7cddfSDavid du ColombierRestructures the makefiles to better separate the language interpreters from
51097dd7cddfSDavid du Colombierthe graphics core.  (gs.mak)
51107dd7cddfSDavid du Colombier
51117dd7cddfSDavid du ColombierAdds a -dNOPROMPT switch to suppress the end-of-page prompts (but still wait
51127dd7cddfSDavid du Colombierfor the user to type a newline).  This is different from -dNOPAUSE, which
51137dd7cddfSDavid du Colombiersuppresses both the prompts and the wait.  (gs_init.ps)
51147dd7cddfSDavid du Colombier
51153ff48bf5SDavid du Colombier</pre><h3><a name="V3.38_Utilities"></a>Utilities</h3><pre>
51167dd7cddfSDavid du Colombier
51177dd7cddfSDavid du ColombierReplaces the mergeini.ps program with an equivalent (actually slightly
51187dd7cddfSDavid du Colombierbetter) version written in C.  (gs.mak, *.mak, psfiles.doc, use.doc,
51197dd7cddfSDavid du Colombiergeninit.c)
51207dd7cddfSDavid du Colombier
51213ff48bf5SDavid du Colombier</pre><h3><a name="V3.38_Drivers"></a>Drivers</h3><pre>
51227dd7cddfSDavid du Colombier
51237dd7cddfSDavid du ColombierFixes bugs:
51247dd7cddfSDavid du Colombier	- The color DeskJet drivers wouldn't compile with a K&amp;R compiler,
51257dd7cddfSDavid du Colombierbecause some of the procedure definitions weren't in the restricted syntax
51267dd7cddfSDavid du Colombierthat ansi2knr requires.  (gdevcdj.c)
51277dd7cddfSDavid du Colombier	- The color DeskJet drivers wouldn't compile because of a bug in
51287dd7cddfSDavid du ColombierSun's cc.  (gdevcdj.c)
51297dd7cddfSDavid du Colombier
51307dd7cddfSDavid du ColombierChanges the BJ-10e(x) margins to be identical to those of the BJ-200.
51317dd7cddfSDavid du Colombier(gdevbj10.c)
51327dd7cddfSDavid du Colombier
51337dd7cddfSDavid du ColombierChanges the LaserJet margins in response to a user's request.  (gdevdjet.c)
51347dd7cddfSDavid du Colombier
51357dd7cddfSDavid du ColombierChanges the psmono driver to produce slightly larger files that execute
51367dd7cddfSDavid du Colombierfaster on typical Level 1 printers.  (gdevpsim.c)
51377dd7cddfSDavid du Colombier
51387dd7cddfSDavid du ColombierChanges the psmono driver so that it does not scale the image to fit the
51397dd7cddfSDavid du Colombierpage size, but instead scales it to be the same physical size on the page.
51407dd7cddfSDavid du ColombierTHIS IS A NON BACKWARD COMPATIBLE CHANGE.  However, for full-page images, it
51417dd7cddfSDavid du Colombierwill not have any visible effect.  (gdevpsim.c)
51427dd7cddfSDavid du Colombier
51433ff48bf5SDavid du Colombier</pre><h3><a name="V3.38_Platforms"></a>Platforms</h3><pre>
51447dd7cddfSDavid du Colombier
51457dd7cddfSDavid du ColombierFixes bugs:
51467dd7cddfSDavid du Colombier	- There were some problems associated with printing in 32-bit
51477dd7cddfSDavid du ColombierWindows environments.  (gp_mswin.c)
51487dd7cddfSDavid du Colombier	- The IBM RS/6000 needs both &lt;time.h&gt; and &lt;sys/time.h&gt;.  (time_.h)
51497dd7cddfSDavid du Colombier
51507dd7cddfSDavid du ColombierAdds the PDF interpreter to the standard MS Windows configuration.
51517dd7cddfSDavid du Colombier(bcwin.mak)
51527dd7cddfSDavid du Colombier
51533ff48bf5SDavid du Colombier</pre><h3><a name="V3.38_Fonts"></a>Fonts</h3><pre>
51547dd7cddfSDavid du Colombier
51557dd7cddfSDavid du ColombierFixes bugs:
51567dd7cddfSDavid du Colombier	- The entry for Courier-BoldItalic in cfonts.mak incorrectly named
51577dd7cddfSDavid du Colombierit as Courier-Italic.  (cfonts.mak)
51587dd7cddfSDavid du Colombier	- The files for Courier-Italic in cfonts.mak were inconsistently
51597dd7cddfSDavid du Colombiernamed ncrri instead of ncri.  (cfonts.mak)
51607dd7cddfSDavid du Colombier	- The rules in cfonts.mak covered only the fonts distributed with
51617dd7cddfSDavid du Colombierthe free versions of Ghostscript, omitting some of the standard set of 35.
51627dd7cddfSDavid du Colombier(cfonts.mak)
51637dd7cddfSDavid du Colombier	- The maximum number of stem hints per character in Type 1 fonts
51647dd7cddfSDavid du Colombierwasn't large enough for complex Asian characters. (gxtype1.h)
51657dd7cddfSDavid du Colombier
51667dd7cddfSDavid du ColombierAdds a -dNOFONTMAP switch to suppress loading the Fontmap file.
51677dd7cddfSDavid du Colombier(gs_init.ps, gs_fonts.ps)
51687dd7cddfSDavid du Colombier
51693ff48bf5SDavid du Colombier</pre><h3><a name="V3.38_Interpreter"></a>Interpreter</h3><pre>
51707dd7cddfSDavid du Colombier
51717dd7cddfSDavid du ColombierFixes bugs:
51727dd7cddfSDavid du Colombier	- One of the GC marking routines for halftones had a typo,
51737dd7cddfSDavid du Colombierpossibly leading to an invalid access.  (zht2.c)
51747dd7cddfSDavid du Colombier	- The GC could store beyond the end of the mark stack,
51757dd7cddfSDavid du Colombierpossibly smashing some characters of a string or name.  (igc.c)
51767dd7cddfSDavid du Colombier	- If the allocator allocated a new ref object from a
51777dd7cddfSDavid du Colombierfreelist, the bookkeeping for the current ref object could get
51787dd7cddfSDavid du Colombierconfused.  (ialloc.c)
51797dd7cddfSDavid du Colombier	- The GC didn't remove names properly from the hash table.
51807dd7cddfSDavid du Colombier(iname.c)
51817dd7cddfSDavid du Colombier	- If a DOS editor added a ^Z to the end of an initialization file,
51827dd7cddfSDavid du Colombieran error occurred during initialization.  (gs_init.ps)
51837dd7cddfSDavid du Colombier	- If an initialization file had any lines longer than 128
51847dd7cddfSDavid du Colombiercharacters, .skipeof would get an error.  (gs_init.ps)
51857dd7cddfSDavid du Colombier	- makepattern could create structures in global VM pointing to
51867dd7cddfSDavid du Colombierstructures in local VM.  (zpcolor.c)
51877dd7cddfSDavid du Colombier	- The default color rendering dictionary didn't specify large enough
51887dd7cddfSDavid du Colombierranges for some intermediate values.  (gs_lev2.ps)
51897dd7cddfSDavid du Colombier	- Files being freed by a restore weren't unlinked properly, leading
51907dd7cddfSDavid du Colombierto dangling pointers.  (zfile.c)
51917dd7cddfSDavid du Colombier	- The interpreter used strlen without a prototype.  (interp.c)
51927dd7cddfSDavid du Colombier	- Indexed or Separation colors with a CIE base or alternate space
51937dd7cddfSDavid du Colombierdidn't work.  (zcie.c)
51947dd7cddfSDavid du Colombier	- The Watcom C 10.0 compiler produced incorrect code for an
51957dd7cddfSDavid du Colombieroverlapping structure assignment.  (zcsindex.c)
51967dd7cddfSDavid du Colombier
51977dd7cddfSDavid du ColombierRemoves limit of 64K names, if EXTEND_NAMES is defined at compile
51987dd7cddfSDavid du Colombiertime.  (*.mak, idebug.h, iminst.h, iname.h, gs.c, gsmain.c, idebug.c,
51997dd7cddfSDavid du Colombieriname.c)
52007dd7cddfSDavid du Colombier
52017dd7cddfSDavid du ColombierMakes the garbage collector really collect names.  (iname.h, inamedef.h,
52027dd7cddfSDavid du Colombierisstate.h, igc.c, iname.c, isave.c)
52037dd7cddfSDavid du Colombier
52047dd7cddfSDavid du ColombierRestructures some files to better separate the language interpreters
52057dd7cddfSDavid du Colombierfrom their support code.  (gconfig.c, iconfig.c, iinit.c)
52067dd7cddfSDavid du Colombier
52077dd7cddfSDavid du ColombierRestructures some files to better separate the language interpreters
52087dd7cddfSDavid du Colombierfrom the graphics core.  (iastate.h, iastruct.h, ialloc.c)
52097dd7cddfSDavid du Colombier
52107dd7cddfSDavid du ColombierAllows the operands of cshow to be in either order on the stack.  Adobe
52117dd7cddfSDavid du Colombierinterpreters apparently allow this, even though it's not documented.
52127dd7cddfSDavid du Colombier(zchar2.c)
52137dd7cddfSDavid du Colombier
52147dd7cddfSDavid du ColombierAdds a hack in cvs to truncate non-standard operator names, rather than
52157dd7cddfSDavid du Colombiergiving a rangecheck, to work around the "max err string" problem in some
52167dd7cddfSDavid du Colombiercommon error handlers.  (ztype.c)
52177dd7cddfSDavid du Colombier
52187dd7cddfSDavid du ColombierChanges the print string for unregistered operators from operator_0x... to
52197dd7cddfSDavid du Colombier@0x....  (iutil.c)
52207dd7cddfSDavid du Colombier
52217dd7cddfSDavid du ColombierChanges the garbage collector so it tries to allocate a large mark stack, to
52227dd7cddfSDavid du Colombieravoid going into its 'slow' mode if the mark stack overflows.  (igc.c)
52237dd7cddfSDavid du Colombier
52243ff48bf5SDavid du Colombier</pre><h3><a name="V3.38_Interpreter_PDF"></a>Interpreter (PDF)</h3><pre>
52257dd7cddfSDavid du Colombier
52267dd7cddfSDavid du ColombierFixes bugs:
52277dd7cddfSDavid du Colombier	- Stroked text used the text matrix, rather than just the
52287dd7cddfSDavid du ColombierCTM, for scaling the line width, which could lead to inappropriately
52297dd7cddfSDavid du Colombierwide lines.  (gs_pdf.ps)
52307dd7cddfSDavid du Colombier	- Fonts based on other than a 1000-unit scale (i.e., with a
52317dd7cddfSDavid du ColombierFontMatrix other than [0.001 0 0 0.001 0 0]) didn't scale Widths to
52327dd7cddfSDavid du Colombiermatch the font scaling.  (pdf_font.ps)
52337dd7cddfSDavid du Colombier
52347dd7cddfSDavid du ColombierImplements the PDF 1.1 color space extensions, except for Lab space.
52357dd7cddfSDavid du Colombier(gs_pdf.ps, pdf_draw.ps)
52367dd7cddfSDavid du Colombier
52377dd7cddfSDavid du ColombierImplements the Rotate key for pages.  (pdf_main.ps)
52387dd7cddfSDavid du Colombier
52393ff48bf5SDavid du Colombier</pre><h3><a name="V3.38_Streams"></a>Streams</h3><pre>
52407dd7cddfSDavid du Colombier
52417dd7cddfSDavid du ColombierFixes bugs:
52427dd7cddfSDavid du Colombier	- When the garbage collector closed a file stream, the stream
52437dd7cddfSDavid du Colombierincorrectly attempted to free the buffer.  (stream.c)
52447dd7cddfSDavid du Colombier
52457dd7cddfSDavid du ColombierSeparates out some stream implementations to better distinguish the
52467dd7cddfSDavid du Colombiergraphics core from the language interpreters.  (smtf.h, sfilter1.c,
52477dd7cddfSDavid du Colombiersmtf.c, srld.c, srle.c)
52487dd7cddfSDavid du Colombier
52493ff48bf5SDavid du Colombier</pre><h3><a name="V3.38_Library"></a>Library</h3><pre>
52507dd7cddfSDavid du Colombier
52517dd7cddfSDavid du ColombierFixes bugs:
52527dd7cddfSDavid du Colombier	- Compressing characters being entered in the cache could cause an
52537dd7cddfSDavid du Colombierinvalid memory access.  (gsbitops.c)
52547dd7cddfSDavid du Colombier	- The setbbox bounding box check was slightly inaccurate.
52557dd7cddfSDavid du Colombier(gsdps1.c)
52567dd7cddfSDavid du Colombier	- makepattern could create structures in global VM pointing to
52577dd7cddfSDavid du Colombierstructures in local VM.  (gscolor2.h, gspcolor.c)
52587dd7cddfSDavid du Colombier	- Out-of-range values during CIE color conversion led to random
52597dd7cddfSDavid du Colombierresults.  (gscie.c)
52607dd7cddfSDavid du Colombier	- On output devices with non-inverted Y axes (such as MS Windows),
52617dd7cddfSDavid du ColombierInterpolated images would smash memory.  (gsimage.c)
52627dd7cddfSDavid du Colombier	- 90 degree rotated zero-width images caused an invalid memory
52637dd7cddfSDavid du Colombieraccess.  (gsimage1.c)
52647dd7cddfSDavid du Colombier	- If #copies was zero, showpage could create bogus empty output
52657dd7cddfSDavid du Colombierfiles.  (gdevprn.c)
52667dd7cddfSDavid du Colombier	- PageCount didn't take #copies into account.  (gsdevice.c)
52677dd7cddfSDavid du Colombier	- Indexed or Separation colors with a CIE base or alternate space
52687dd7cddfSDavid du Colombierdidn't work.  (gscie.h, gscie.c)
52697dd7cddfSDavid du Colombier
52707dd7cddfSDavid du ColombierImplements triangular line caps and joins, in anticipation of adding
52717dd7cddfSDavid du Colombiera PCL5 interpreter.  (gsline.h, gxstroke.c)
52727dd7cddfSDavid du Colombier
52737dd7cddfSDavid du ColombierMoves some procedures around for better separation of library from
52747dd7cddfSDavid du Colombierinterpreter.  (gsinit.c, gslib.c, gsmain.c, gsmisc.c)
52757dd7cddfSDavid du Colombier
52767dd7cddfSDavid du ColombierMoves the standard allocator from the interpreter to the library.
52777dd7cddfSDavid du Colombier(gsalloc.h, gxalloc.h, gxobj.h, gsalloc.c)
52787dd7cddfSDavid du Colombier
52797dd7cddfSDavid du ColombierStarts to change the representation of paths slightly to make it possible to
52807dd7cddfSDavid du Colombieridentify arcs.  This change is backward-compatible for all code except
52817dd7cddfSDavid du Colombiercallers of gx_path_add_arc.  (gxpath.h, gspath1.c, gxpath.c, gxstroke.c)
52827dd7cddfSDavid du Colombier
52837dd7cddfSDavid du ColombierAdds some framework for keeping track of RasterOp and "transparency" in the
52847dd7cddfSDavid du Colombiergraphics state, although these don't actually have any effect yet.
52857dd7cddfSDavid du Colombier(gsrop.h, gsropt.h, gsstate.h, gxcldev.h, gzstate.h, gsrop.c, gsstate.c,
52867dd7cddfSDavid du Colombiergxclist.c, gxclread.c)
52877dd7cddfSDavid du Colombier
52887dd7cddfSDavid du ColombierAdds a compile-time option for using the Adobe RGB&lt;-&gt;CMYK conversion rules.
52897dd7cddfSDavid du Colombier(gxdcconv.c)
52907dd7cddfSDavid du Colombier
52917dd7cddfSDavid du ColombierAdds a driver procedure for identifying band devices.  This change is
52927dd7cddfSDavid du Colombierbackward-compatible for all existing devices.  (gdevmem.h, gxdevice.h,
52937dd7cddfSDavid du Colombiergsdevice.c, gxclip2.c, gxclist.c, gxcpath.c)
52947dd7cddfSDavid du Colombier
52957dd7cddfSDavid du ColombierSpeeds up gray-scale images on devices requiring banding, and enables
52967dd7cddfSDavid du Colombierfurther optimizations, by reintroducing the distinction between banded and
52977dd7cddfSDavid du Colombiernon-banded devices.  (gxdevice.h, gdevprn.c, gsimage1.c)
52987dd7cddfSDavid du Colombier
52997dd7cddfSDavid du ColombierReduces the size of the band list for halftoned images by encoding tile
53007dd7cddfSDavid du Colombierindices more compactly.  (gxcldev.h, gxclist.h, gxclist.c, gxclread.c)
53017dd7cddfSDavid du Colombier
53027dd7cddfSDavid du ColombierExtends the band list so it can cache more than 256 halftone tiles, and to
53037dd7cddfSDavid du Colombiermake better decisions about tile caching.  (gxcldev.h, gxclist.h, gxclist.c,
53047dd7cddfSDavid du Colombiergxclread.c)
53057dd7cddfSDavid du Colombier
53063ff48bf5SDavid du Colombier</pre>
53077dd7cddfSDavid du Colombier
53083ff48bf5SDavid du Colombier<h2><a name="Version3.37"></a>Version 3.37 (limited) (5/11/95)</h2>
53093ff48bf5SDavid du Colombier
53103ff48bf5SDavid du Colombier<p>
53117dd7cddfSDavid du ColombierAnother bug fix release distributed only to customers.
53127dd7cddfSDavid du Colombier
53133ff48bf5SDavid du Colombier<h3><a name="V3.37_Documentation"></a>Documentation</h3><pre>
53147dd7cddfSDavid du ColombierFixes bugs:
53157dd7cddfSDavid du Colombier	- Some documentation about parameter lists was incorrect.
53167dd7cddfSDavid du Colombier(gsparam.h)
53177dd7cddfSDavid du Colombier	- The documentation did not note that one cannot "pipe" PDF files
53187dd7cddfSDavid du Colombierinto the interpreter.  (use.doc)
53197dd7cddfSDavid du Colombier
53207dd7cddfSDavid du ColombierAdds documentation for the BJC-600 to devices.doc.  (devices.doc)
53217dd7cddfSDavid du Colombier
53223ff48bf5SDavid du Colombier</pre><h3><a name="V3.37_Procedures"></a>Procedures</h3><pre>
53237dd7cddfSDavid du Colombier
53247dd7cddfSDavid du ColombierChanges the debugging switch for OS calls from -Z0 to -Ze, and adds -Z0 for
53257dd7cddfSDavid du Colombierhigh-level GC tracing.  (use.doc, gp_unifs.c, ialloc.c, igc.c)
53267dd7cddfSDavid du Colombier
53273ff48bf5SDavid du Colombier</pre><h3><a name="V3.37_Utilities"></a>Utilities</h3><pre>
53287dd7cddfSDavid du Colombier
53297dd7cddfSDavid du ColombierFixes bugs:
53307dd7cddfSDavid du Colombier	- The ps2ascii shell script included an erroneous @d.  (ps2ascii)
53317dd7cddfSDavid du Colombier
53327dd7cddfSDavid du ColombierEnhances ps2ascii to output color and rectangle fill/stroke information if
53337dd7cddfSDavid du ColombierCOMPLEX is defined.  (ps2ascii.ps)
53347dd7cddfSDavid du Colombier
53353ff48bf5SDavid du Colombier</pre><h3><a name="V3.37_Drivers"></a>Drivers</h3><pre>
53367dd7cddfSDavid du Colombier
53377dd7cddfSDavid du ColombierFixes bugs:
53387dd7cddfSDavid du Colombier	- the BJC-600 driver didn't handle BitsPerPixel correctly.
53397dd7cddfSDavid du Colombier(gdevcdj.c)
53407dd7cddfSDavid du Colombier
53413ff48bf5SDavid du Colombier</pre><h3><a name="V3.37_Fonts"></a>Fonts</h3><pre>
53427dd7cddfSDavid du Colombier
53437dd7cddfSDavid du ColombierFixes bugs:
53447dd7cddfSDavid du Colombier	- Some buggy Type 1 fonts confused the Type 1 font reader.
53457dd7cddfSDavid du Colombier(gs_fonts.ps, gs_type1.ps, pdf_font.ps)
53467dd7cddfSDavid du Colombier
53473ff48bf5SDavid du Colombier</pre><h3><a name="V3.37_Interpreter_PostScript"></a>Interpreter (PostScript)</h3><pre>
53487dd7cddfSDavid du Colombier
53497dd7cddfSDavid du ColombierFixes bugs:
53507dd7cddfSDavid du Colombier	- .registerencoding didn't accept mixedarrays, which could cause an
53517dd7cddfSDavid du Colombiererror if an encoding was loaded long after initialization.  (zfont2.c)
53527dd7cddfSDavid du Colombier	- If a program did a lot of saves and restores, the garbage
53537dd7cddfSDavid du Colombiercollector could get invoked much too often.  (iastate.h, ialloc.c, igc.c,
53547dd7cddfSDavid du Colombierisave.c)
53557dd7cddfSDavid du Colombier
53567dd7cddfSDavid du ColombierChanges the name of the rectappend operator to .rectappend, since it isn't a
53577dd7cddfSDavid du Colombierstandard PostScript operator.  (zdps1.c)
53587dd7cddfSDavid du Colombier
53593ff48bf5SDavid du Colombier</pre><h3><a name="V3.37_Interpreter_PDF"></a>Interpreter (PDF)</h3><pre>
53607dd7cddfSDavid du Colombier
53617dd7cddfSDavid du ColombierFixes bugs:
53627dd7cddfSDavid du Colombier	- PDF files didn't interact properly with ps2ascii.  (gs_pdf.ps)
53637dd7cddfSDavid du Colombier	- setdash wouldn't accept a packed array.  (zgstate.c)
53647dd7cddfSDavid du Colombier	- PDF files with incorrect generation numbers in object references
53657dd7cddfSDavid du Colombierproduced an error rather than a warning.  (pdf_base.ps)
53667dd7cddfSDavid du Colombier
53673ff48bf5SDavid du Colombier</pre>
53687dd7cddfSDavid du Colombier
53693ff48bf5SDavid du Colombier<h2><a name="Version3.36"></a>Version 3.36 (limited) (5/4/95)</h2>
53703ff48bf5SDavid du Colombier
53713ff48bf5SDavid du Colombier<p>
53727dd7cddfSDavid du ColombierThis is a limited-distribution release for distributing bug fixes to a few
53737dd7cddfSDavid du Colombiercustomers.
53747dd7cddfSDavid du Colombier
53753ff48bf5SDavid du Colombier<h3><a name="V3.36_Documentation"></a>Documentation</h3><pre>
53767dd7cddfSDavid du ColombierAdds some environment variables to the man page.  (gs.1)
53777dd7cddfSDavid du Colombier
53783ff48bf5SDavid du Colombier</pre><h3><a name="V3.36_Procedures"></a>Procedures</h3><pre>
53797dd7cddfSDavid du Colombier
53807dd7cddfSDavid du ColombierAdds the psmono device to all 32-bit configurations.  (*.mak)
53817dd7cddfSDavid du Colombier
53827dd7cddfSDavid du ColombierMoves the psmono and 'bit' devices to DEVICE_DEVS12 to avoid exceeding the
53837dd7cddfSDavid du Colombier120-character maximum length of the DOS command line.  (*.mak)
53847dd7cddfSDavid du Colombier
53853ff48bf5SDavid du Colombier</pre><h3><a name="V3.36_Drivers"></a>Drivers</h3><pre>
53867dd7cddfSDavid du Colombier
53877dd7cddfSDavid du ColombierChanges the pgm[raw] and ppm[raw] drivers so they do *not* automatically
53887dd7cddfSDavid du Colombierswitch to pbm or pgm/ppm respectively if this is possible for the particular
53897dd7cddfSDavid du Colombierpage being rendered; adds pgnm[raw] and pnm[raw] drivers that *do* do this.
53907dd7cddfSDavid du ColombierTHIS IS A NON-BACKWARD-COMPATIBLE CHANGE.  However, existing programs will
53917dd7cddfSDavid du Colombierstill work; they just won't produce the smallest and simplest possible
53927dd7cddfSDavid du Colombieroutput.  (devs.mak, gdevpbm.c)
53937dd7cddfSDavid du Colombier
53943ff48bf5SDavid du Colombier</pre><h3><a name="V3.36_Interpreter"></a>Interpreter</h3><pre>
53957dd7cddfSDavid du Colombier
53967dd7cddfSDavid du ColombierFixes bugs:
53977dd7cddfSDavid du Colombier	- A multi-level restore didn't free gstates allocated by
53987dd7cddfSDavid du Colombierintermediate saves, causing some global VM to be lost until a garbage
53997dd7cddfSDavid du Colombiercollection.  (isave.h, isave.c, zvmem.c)
54007dd7cddfSDavid du Colombier
54017dd7cddfSDavid du ColombierSpeeds up restore by skipping the scan of the character cache if no new
54027dd7cddfSDavid du Colombiernames have been allocated since the save.  (zfont.c)
54037dd7cddfSDavid du Colombier
54047dd7cddfSDavid du ColombierExtends the client API to allow for popping return values off the operand
54057dd7cddfSDavid du Colombierstack.  (imain.h, gs.c, gsmain.c)
54067dd7cddfSDavid du Colombier
54073ff48bf5SDavid du Colombier</pre><h3><a name="V3.36_Library"></a>Library</h3><pre>
54087dd7cddfSDavid du Colombier
54097dd7cddfSDavid du ColombierModifies the character oversampling algorithms to help prevent dropouts.
54107dd7cddfSDavid du Colombier(gsbitops.c, gschar.c)
54117dd7cddfSDavid du Colombier
54123ff48bf5SDavid du Colombier</pre>
54137dd7cddfSDavid du Colombier
54143ff48bf5SDavid du Colombier<h2><a name="Version3.35"></a>Version 3.35 (internal) (5/2/95)</h2>
54153ff48bf5SDavid du Colombier
54163ff48bf5SDavid du Colombier<p>
54177dd7cddfSDavid du ColombierThis is another internal "snapshot" version.
54187dd7cddfSDavid du Colombier
54193ff48bf5SDavid du Colombier<h3><a name="V3.35_Documentation"></a>Documentation</h3><pre>
54207dd7cddfSDavid du ColombierFixes bugs:
54217dd7cddfSDavid du Colombier	- Some of the file names in the `man' page had gotten out of date.
54227dd7cddfSDavid du Colombier(gs.1)
54237dd7cddfSDavid du Colombier	- Two references to .PageCount hadn't been changed to PageCount.
54247dd7cddfSDavid du Colombier(language.doc, devarch.doc)
54257dd7cddfSDavid du Colombier
54263ff48bf5SDavid du Colombier</pre><h3><a name="V3.35_Procedures"></a>Procedures</h3><pre>
54277dd7cddfSDavid du Colombier
54287dd7cddfSDavid du ColombierPuts writeppmfile back in the standard Unix and DV/X configurations, since
54297dd7cddfSDavid du Colombiergsftopk uses it.  Also puts the PDF reader in all 32-bit configurations.
54307dd7cddfSDavid du Colombier(*.mak)
54317dd7cddfSDavid du Colombier
54327dd7cddfSDavid du ColombierMoves the BMP devices to DEVICE_DEVS11 to avoid exceeding the 120-character
54337dd7cddfSDavid du Colombiermaximum length of the DOS command line.  (bcwin.mak, bcwin32.mak, os2.mak)
54347dd7cddfSDavid du Colombier
54353ff48bf5SDavid du Colombier</pre><h3><a name="V3.35_Utilities"></a>Utilities</h3><pre>
54367dd7cddfSDavid du Colombier
54377dd7cddfSDavid du ColombierFixes bugs:
54387dd7cddfSDavid du Colombier	- unix-lpr.sh didn't handle 32-bit devices.  (unix-lpr.sh)
54397dd7cddfSDavid du Colombier	- unix-lpr.sh still used the name .PageCount rather than PageCount.
54407dd7cddfSDavid du Colombier(unix-lpr.sh)
54417dd7cddfSDavid du Colombier	- font2c gave an error when trying to write general procedures in
54427dd7cddfSDavid du Colombierfont dictionaries.  (font2c.ps)
54437dd7cddfSDavid du Colombier
54447dd7cddfSDavid du ColombierAdds a pdf2dsc.ps utility for writing out fake DSC-compliant PostScript code
54457dd7cddfSDavid du Colombierto invoke the PDF reader, for the benefit of viewer programs that aren't
54467dd7cddfSDavid du ColombierPDF-aware.  (unix-end.mak, pdf2dsc.ps)
54477dd7cddfSDavid du Colombier
54483ff48bf5SDavid du Colombier</pre><h3><a name="V3.35_Drivers"></a>Drivers</h3><pre>
54497dd7cddfSDavid du Colombier
54507dd7cddfSDavid du ColombierFixes bugs:
54517dd7cddfSDavid du Colombier	- The TIFF drivers put out incorrect PageNumber values.
54527dd7cddfSDavid du Colombier(gdevtfax.c)
54537dd7cddfSDavid du Colombier	- Printer (and file output) devices got closed and reopened
54547dd7cddfSDavid du Colombierunnecessarily when changing parameters.  (gdevprn.c)
54557dd7cddfSDavid du Colombier	- Printer (and file output) devices didn't check for invalid formats
54567dd7cddfSDavid du Colombierfollowing a % in OutputFile.  (devs.mak, gdevprn.c)
54577dd7cddfSDavid du Colombier	- 1-bit memory devices were not considered page devices, unlike all
54587dd7cddfSDavid du Colombierother memory devices.  (gsdevice.c)
54597dd7cddfSDavid du Colombier	- The black-and-white H-P printers didn't close the printer
54607dd7cddfSDavid du Colombierproperly, causing printing not to happen under MS Windows.  (gdevprn.c)
54617dd7cddfSDavid du Colombier	- Some compilers didn't like initializing a const char * to NULL.
54627dd7cddfSDavid du Colombier(gdevlbp8.c)
54637dd7cddfSDavid du Colombier
54647dd7cddfSDavid du ColombierChanges the X Windows driver so that if Ghostview specifies a bounding box,
54657dd7cddfSDavid du Colombierthis also sets ImagingBBox.  (gdevxini.c)
54667dd7cddfSDavid du Colombier
54677dd7cddfSDavid du ColombierAt the request of a customer, adds 1-, 4-, 8-, 24-, and 32-bit-deep memory
54687dd7cddfSDavid du Colombierdevices that store bits in 32-bit units rather than byte units.  (gdevmem.h,
54697dd7cddfSDavid du Colombiergxdevmem.h, gdevmem.c, gdevm1.c, gdevm2.c, gdevm4.c, gdevm8.c, gdevm16.c,
54707dd7cddfSDavid du Colombiergdevm24.c, gdevm32.c)
54717dd7cddfSDavid du Colombier
54727dd7cddfSDavid du ColombierAdds a new MS Windows printer driver, mswinpr2, that uses a DIB rather than
54737dd7cddfSDavid du Colombiera DDB.  (gdevwpr2.c)
54747dd7cddfSDavid du Colombier
54753ff48bf5SDavid du Colombier</pre><h3><a name="V3.35_Platforms"></a>Platforms</h3><pre>
54767dd7cddfSDavid du Colombier
54777dd7cddfSDavid du ColombierFixes bugs:
54787dd7cddfSDavid du Colombier	- A routine wouldn't compile because of a bug in the SGI C compiler.
54797dd7cddfSDavid du Colombier(zcsindex.c)
54807dd7cddfSDavid du Colombier	- Some declarations were inconsistent when compiling for segmented
54817dd7cddfSDavid du Colombierenvironments.  (gscie.c)
54827dd7cddfSDavid du Colombier	- A routine wouldn't compile because of a bug in the VAX C compiler.
54837dd7cddfSDavid du Colombier(gscie.c)
54847dd7cddfSDavid du Colombier
54857dd7cddfSDavid du ColombierTurns on compiler optimization for OS/2; adds PDF support and more devices
54867dd7cddfSDavid du Colombierfor Win32 and OS/2.  (bcwin.mak, bcwin32.mak, os2.mak)
54877dd7cddfSDavid du Colombier
54883ff48bf5SDavid du Colombier</pre><h3><a name="V3.35_Fonts"></a>Fonts</h3><pre>
54897dd7cddfSDavid du Colombier
54907dd7cddfSDavid du ColombierFixes bugs:
54917dd7cddfSDavid du Colombier	- Font loading used 'setglobal' without binding it, which caused
54927dd7cddfSDavid du Colombiersome EPS files to signal errors.  (gs_fonts.ps)
54937dd7cddfSDavid du Colombier	- A zero-length string with offset = 0 in a binary object sequence
54947dd7cddfSDavid du Colombiercaused an error.  (iscanbin.c)
54957dd7cddfSDavid du Colombier
54967dd7cddfSDavid du ColombierAdds a LOCALFONTS switch that causes Ghostscript to load Type 1 fonts into
54977dd7cddfSDavid du Colombierthe current VM, rather than global VM.  According to Adobe, this is what
54987dd7cddfSDavid du ColombierAdobe printers (but not other interpreters, such as DPS and CPSI) do.
54997dd7cddfSDavid du Colombier(gs_init.ps, gs_fonts.ps)
55007dd7cddfSDavid du Colombier
55013ff48bf5SDavid du Colombier</pre><h3><a name="V3.35_Interpreter"></a>Interpreter</h3><pre>
55027dd7cddfSDavid du Colombier
55037dd7cddfSDavid du ColombierFixes bugs:
55047dd7cddfSDavid du Colombier	- The 'note' page size command caused pages to be clipped
55057dd7cddfSDavid du Colombierimproperly.  (gs_statd.ps)
55067dd7cddfSDavid du Colombier
55077dd7cddfSDavid du ColombierAdds "word" image devices.  (gs_init.ps, zdevice.c)
55087dd7cddfSDavid du Colombier
55097dd7cddfSDavid du ColombierStarts converting the interpreter to use an explicit instance pointer.  This
55107dd7cddfSDavid du Colombieris very fragmentary so far and not really supported.  (main.h, gs.c,
55117dd7cddfSDavid du Colombiergsmain.c, iccinit.c)
55127dd7cddfSDavid du Colombier
55133ff48bf5SDavid du Colombier</pre><h3><a name="V3.35_Library"></a>Library</h3><pre>
55147dd7cddfSDavid du Colombier
55157dd7cddfSDavid du ColombierAdds "word" image devices.  (gsdevice.h, gsdevice.c)
55167dd7cddfSDavid du Colombier
55177dd7cddfSDavid du ColombierRemoves the requirement that ImagingBBox[0] and [1] be non-negative.  (The
55187dd7cddfSDavid du ColombierAdobe specification requires this, but Ghostscript supports more general
55197dd7cddfSDavid du Colombierinitial CTMs than the Adobe spec.)  (gsdparam.c)
55207dd7cddfSDavid du Colombier
55213ff48bf5SDavid du Colombier</pre>
55227dd7cddfSDavid du Colombier
55233ff48bf5SDavid du Colombier<h2><a name="Version3.34"></a>Version 3.34 (internal) (4/18/95)</h2>
55243ff48bf5SDavid du Colombier
55253ff48bf5SDavid du Colombier<p>
55267dd7cddfSDavid du ColombierThis is a "snapshot" version made for internal purposes.  It was never
55277dd7cddfSDavid du Colombierreleased to anyone.
55287dd7cddfSDavid du Colombier
55293ff48bf5SDavid du Colombier<h3><a name="V3.34_Documentation"></a>Documentation</h3><pre>
55307dd7cddfSDavid du ColombierUpdates commprod.doc to be fully consistent with the AGFPL.  (commprod.doc)
55317dd7cddfSDavid du Colombier
55323ff48bf5SDavid du Colombier</pre><h3><a name="V3.34_Procedures"></a>Procedures</h3><pre>
55337dd7cddfSDavid du Colombier
55347dd7cddfSDavid du ColombierFixes bugs:
55357dd7cddfSDavid du Colombier	- tar_x was out of date.  (tar_x)
55367dd7cddfSDavid du Colombier	- tar_gs assumed that if any PC executables were present, gs.exe
55377dd7cddfSDavid du Colombierwould exist.  (tar_gs)
55387dd7cddfSDavid du Colombier	- jpeg.mak said the current IJG version was 5b, but the makefiles
55397dd7cddfSDavid du Colombieractually referred to version 5a.  (jpeg.mak)
55407dd7cddfSDavid du Colombier	- The build rule for the LIPS III driver was incorrect.  (devs.mak)
55417dd7cddfSDavid du Colombier	- Some definitions in the makefiles occurred out of order.
55427dd7cddfSDavid du Colombier(ansihead.mak, cc-head.mak, gcc-head.mak, unixhead.mak, unixtail.mak)
55437dd7cddfSDavid du Colombier	- The build rule for dvx-gcc.mak was incorrect.  (unix-end.mak)
55447dd7cddfSDavid du Colombier
55453ff48bf5SDavid du Colombier</pre><h3><a name="V3.34_Interpreter"></a>Interpreter</h3><pre>
55467dd7cddfSDavid du Colombier
55477dd7cddfSDavid du ColombierRestructures the CIE caches to move much more of the computation from color
55487dd7cddfSDavid du Colombiermapping time to cache loading time.  (zcie.c)
55497dd7cddfSDavid du Colombier
55503ff48bf5SDavid du Colombier</pre><h3><a name="V3.34_Library"></a>Library</h3><pre>
55517dd7cddfSDavid du Colombier
55527dd7cddfSDavid du ColombierFixes bugs:
55537dd7cddfSDavid du Colombier	- Color conversion of 12-bit images was very slightly inaccurate.
55547dd7cddfSDavid du Colombier(gxfrac.h)
55557dd7cddfSDavid du Colombier
55567dd7cddfSDavid du ColombierChanges the transfer function, black generation, and undercolor removal
55577dd7cddfSDavid du Colombiercaches so that they sample at 1024 points and don't interpolate, rather than
55587dd7cddfSDavid du Colombiersampling at 256 points and interpolating.  This significantly improves the
55597dd7cddfSDavid du Colombierspeed of colored image rendering.  ****** LIMITED TO 256 POINTS BECAUSE OF
55607dd7cddfSDavid du ColombierO-STACK SIZE LIMIT. ****** (gxfmap.h, gxcmap.c)
55617dd7cddfSDavid du Colombier
55627dd7cddfSDavid du ColombierRestructures the CIE caches to move much more of the computation from color
55637dd7cddfSDavid du Colombiermapping time to cache loading time.  (gscie.h, gscie.c)
55647dd7cddfSDavid du Colombier
55653ff48bf5SDavid du Colombier</pre>
55667dd7cddfSDavid du Colombier
55673ff48bf5SDavid du Colombier<h2><a name="Version3.33"></a>Version 3.33 (4/13/95)</h2>
55683ff48bf5SDavid du Colombier
55693ff48bf5SDavid du Colombier<p>
55707dd7cddfSDavid du ColombierA few more last-minute bug fixes.  This is, finally, the first public
55717dd7cddfSDavid du Colombierrelease since 3.12.
55727dd7cddfSDavid du Colombier
55733ff48bf5SDavid du Colombier<h3><a name="V3.33_Documentation"></a>Documentation</h3><pre>
55747dd7cddfSDavid du Colombier
55757dd7cddfSDavid du ColombierFixes bugs:
55767dd7cddfSDavid du Colombier	- There was a reference to "VAX with OSF/1", which doesn't exist,
55777dd7cddfSDavid du Colombierand an incorrect reference to VAX with Ultrix.  (make.doc)
55787dd7cddfSDavid du Colombier	- The Unix makefiles incorrectly stated that gsdatadir was only
55797dd7cddfSDavid du Colombierrelevant to `make install'.  (ansihead.mak, cc-head.mak, dgc-head.mak,
55807dd7cddfSDavid du Colombiergcc-head.mak)
55817dd7cddfSDavid du Colombier	- Notes that DV/X users should use the zip version of the JPEG
55827dd7cddfSDavid du Colombierlibrary.  (jpeg.mak)
55837dd7cddfSDavid du Colombier
55843ff48bf5SDavid du Colombier</pre><h3><a name="V3.33_Procedures"></a>Procedures</h3><pre>
55857dd7cddfSDavid du Colombier
55867dd7cddfSDavid du ColombierFixes bugs:
55877dd7cddfSDavid du Colombier	- A command line had gotten too long for the MS-DOS shell.
55887dd7cddfSDavid du Colombier(gs.mak)
55897dd7cddfSDavid du Colombier	- The VMS DEC C script didn't explicitly select DEC C.
55907dd7cddfSDavid du Colombier(vms-decc.mak)
55917dd7cddfSDavid du Colombier	- The VMS MODULES.LIS omitted SPDIFF and ZFPDIFF.  (modules.lis)
55927dd7cddfSDavid du Colombier	- The VMS script had an incorrect entry.  (vms.mak)
55937dd7cddfSDavid du Colombier	- The `if' fix in 3.31 broke some Unix systems with different
55947dd7cddfSDavid du Colombierimplementations of sh.  (unix-end.mak)
55957dd7cddfSDavid du Colombier	- The makefile definition of gscspace_h was out of order.  (gs.mak)
55967dd7cddfSDavid du Colombier	- An extra ; got written in gconfig_.h on DV/X platforms.
55977dd7cddfSDavid du Colombier(dvx-tail.mak)
55987dd7cddfSDavid du Colombier	- '.' was incorrectly prepended to the library search list on DV/X
55997dd7cddfSDavid du Colombierplatforms.  (dgc-head.mak)
56007dd7cddfSDavid du Colombier	- The build rules for unix*.mak didn't work on DV/X.  (unix-end.mak)
56017dd7cddfSDavid du Colombier
56027dd7cddfSDavid du ColombierAdds a description of the -c quit switch to the help message.  (gs.c)
56037dd7cddfSDavid du Colombier
56047dd7cddfSDavid du ColombierFor the DV/X platform, changes /usr/include to /djgpp/include as the place
56057dd7cddfSDavid du Colombierto look for header files.  I'm not sure this is always correct.
56067dd7cddfSDavid du Colombier(dvx-tail.mak)
56077dd7cddfSDavid du Colombier
56083ff48bf5SDavid du Colombier</pre><h3><a name="V3.33_Utilities"></a>Utilities</h3><pre>
56097dd7cddfSDavid du Colombier
56107dd7cddfSDavid du ColombierFixes bugs:
56117dd7cddfSDavid du Colombier	- ps2ascii would cause an error if given a font that didn't have an
56127dd7cddfSDavid du Colombier'X' character.  (ps2ascii.ps)
56137dd7cddfSDavid du Colombier	- ps2ascii didn't intercept the Level 2 string display operators.
56147dd7cddfSDavid du Colombier(ps2ascii.ps)
56157dd7cddfSDavid du Colombier
56163ff48bf5SDavid du Colombier</pre><h3><a name="V3.33_Drivers"></a>Drivers</h3><pre>
56177dd7cddfSDavid du Colombier
56187dd7cddfSDavid du ColombierFixes bugs:
56197dd7cddfSDavid du Colombier	- The Stylus Color driver had an incorrect type name.  (gdevstc.c)
56207dd7cddfSDavid du Colombier
56213ff48bf5SDavid du Colombier</pre><h3><a name="V3.33_Platforms"></a>Platforms</h3><pre>
56227dd7cddfSDavid du Colombier
56237dd7cddfSDavid du ColombierFixes bugs:
56247dd7cddfSDavid du Colombier	- -dBitsPerPixel= didn't work properly for MS Windows or OS/2 PM.
56257dd7cddfSDavid du Colombier(gdevmswn.c, gdevpm.c)
56267dd7cddfSDavid du Colombier	- The Win32 platform didn't compile properly.  (memory_.h)
56277dd7cddfSDavid du Colombier
56283ff48bf5SDavid du Colombier</pre><h3><a name="V3.33_Fonts"></a>Fonts</h3><pre>
56297dd7cddfSDavid du Colombier
56307dd7cddfSDavid du ColombierImproves the font substitution algorithm to take the face name into account
56317dd7cddfSDavid du Colombierin more cases.  (gs_fonts.ps)
56327dd7cddfSDavid du Colombier
56333ff48bf5SDavid du Colombier</pre><h3><a name="V3.33_Library"></a>Library</h3><pre>
56347dd7cddfSDavid du Colombier
56357dd7cddfSDavid du ColombierFixes bugs:
56367dd7cddfSDavid du Colombier	- Unrotated black-and-white bitmaps with an inverted device X axis
56377dd7cddfSDavid du Colombierwere displaced in X.  (gsimage1.c)
56387dd7cddfSDavid du Colombier
56393ff48bf5SDavid du Colombier</pre>
56407dd7cddfSDavid du Colombier
56413ff48bf5SDavid du Colombier<h2><a name="Version3.32"></a>Version 3.32 (4/7/95)</h2>
56423ff48bf5SDavid du Colombier
56433ff48bf5SDavid du Colombier<p>
56447dd7cddfSDavid du ColombierMore bug fixes.  This is still not a public release.
56457dd7cddfSDavid du Colombier
56463ff48bf5SDavid du Colombier<h3><a name="V3.32_Documentation"></a>Documentation</h3><pre>
56477dd7cddfSDavid du ColombierFurther clarifies the "two-phase commit" algorithm for device put_params
56487dd7cddfSDavid du Colombierprocedures.  (drivers.doc, gsparam.h)
56497dd7cddfSDavid du Colombier
56507dd7cddfSDavid du ColombierAdds a note about a compiler bug under Ultrix 4.4.  (make.doc)
56517dd7cddfSDavid du Colombier
56523ff48bf5SDavid du Colombier</pre><h3><a name="V3.32_Procedures"></a>Procedures</h3><pre>
56537dd7cddfSDavid du Colombier
56547dd7cddfSDavid du ColombierFixes bugs:
56557dd7cddfSDavid du Colombier	- Some installation scripts could fail because some implementations
56567dd7cddfSDavid du Colombierof sh take the status of an `if' condition as the status of the `if'
56577dd7cddfSDavid du Colombiercommand.  (unix-end.mak)
56587dd7cddfSDavid du Colombier
56597dd7cddfSDavid du ColombierAdds "maintainer-clean" as a synonym for "real-clean".  (gs.mak)
56607dd7cddfSDavid du Colombier
56617dd7cddfSDavid du ColombierAdds a -dORIENT1 switch that defines orientation = 1 as portrait for
56627dd7cddfSDavid du Colombiersetpage[params].  (use.doc, gs_init.ps, gs_lev2.ps, gs_statd.ps)
56637dd7cddfSDavid du Colombier
56643ff48bf5SDavid du Colombier</pre><h3><a name="V3.32_Utilities"></a>Utilities</h3><pre>
56657dd7cddfSDavid du Colombier
56667dd7cddfSDavid du ColombierFixes bugs:
56677dd7cddfSDavid du Colombier	- ps2ascii didn't redirect %stdout completely.  (ps2ascii.ps)
56687dd7cddfSDavid du Colombier	- ps2ascii didn't preserve the local/global VM mode.  (ps2ascii.ps)
56697dd7cddfSDavid du Colombier	- ps2ascii didn't handle fonts with an all-zero or missing bounding
56707dd7cddfSDavid du Colombierbox correctly.  (ps2ascii.ps)
56717dd7cddfSDavid du Colombier	- viewpbm didn't scale the image properly.  (viewpbm.ps)
56727dd7cddfSDavid du Colombier
56733ff48bf5SDavid du Colombier</pre><h3><a name="V3.32_Drivers"></a>Drivers</h3><pre>
56747dd7cddfSDavid du Colombier
56757dd7cddfSDavid du ColombierFixes bugs:
56767dd7cddfSDavid du Colombier	- The CGM driver wrote out an incorrect color precision value.
56777dd7cddfSDavid du Colombier(gdevcgm.c)
56787dd7cddfSDavid du Colombier	- The SGI bitmap driver was named "sgi" rather than "sgirgb".
56797dd7cddfSDavid du Colombier(gdevsgi.c)
56807dd7cddfSDavid du Colombier	- The PCX driver didn't round up an odd line length for gray-scale
56817dd7cddfSDavid du Colombieroutput.  (gdevpcx.c)
56827dd7cddfSDavid du Colombier	- The PCX driver produced incorrect output for gray-scale or 4- or
56837dd7cddfSDavid du Colombier8-bit color.  (gdevpcx.c)
56847dd7cddfSDavid du Colombier
56853ff48bf5SDavid du Colombier</pre><h3><a name="V3.32_Platforms"></a>Platforms</h3><pre>
56867dd7cddfSDavid du Colombier
56877dd7cddfSDavid du ColombierFixes bugs:
56887dd7cddfSDavid du Colombier	- The VMS MODULES.LIS file had gotten out of sync with the Unix
56897dd7cddfSDavid du Colombiermakefiles (again).  (modules.lis)
56907dd7cddfSDavid du Colombier
56913ff48bf5SDavid du Colombier</pre><h3><a name="V3.32_Interpreter"></a>Interpreter</h3><pre>
56927dd7cddfSDavid du Colombier
56937dd7cddfSDavid du ColombierFixes bugs:
56947dd7cddfSDavid du Colombier	- Some compilers won't accept '\l', even in the false arm of a
56957dd7cddfSDavid du Colombierpreprocessor conditional.  (scanchar.h)
56967dd7cddfSDavid du Colombier	- A procedure was declared with an incorrect argument type.
56977dd7cddfSDavid du Colombier(zcsindex.c)
56987dd7cddfSDavid du Colombier	- The scaled font cache didn't copy XUIDs properly.  (bfont.h,
56997dd7cddfSDavid du Colombierzfont.c, zfont2.c)
57007dd7cddfSDavid du Colombier	- status could return true even if the file was closed.  (zfile.c)
57017dd7cddfSDavid du Colombier
57023ff48bf5SDavid du Colombier</pre><h3><a name="V3.32_Streams"></a>Streams</h3><pre>
57037dd7cddfSDavid du Colombier
57047dd7cddfSDavid du ColombierFixes bugs:
57057dd7cddfSDavid du Colombier	- The LZW filters were factored improperly.  (modules.lis, gs.mak,
57067dd7cddfSDavid du Colombiervms.mak, slzwx.h, slzwc.c, slzwd.c)
57077dd7cddfSDavid du Colombier
57087dd7cddfSDavid du ColombierChanges the DCTDecode filter for compatibility with Adobe implementations:
57097dd7cddfSDavid du Colombier	- Ignore bytes preceding the 0xff that marks the beginning of the
57107dd7cddfSDavid du ColombierJPEG data.  (sdctd.c)
57117dd7cddfSDavid du Colombier	- Set MAX_BLOCKS_IN_MCU to 64.  (jpeg.mak, gsjpglib.h)
57127dd7cddfSDavid du Colombier
57133ff48bf5SDavid du Colombier</pre><h3><a name="V3.32_Library"></a>Library</h3><pre>
57147dd7cddfSDavid du Colombier
57157dd7cddfSDavid du ColombierFixes bugs:
57167dd7cddfSDavid du Colombier	- The "two-phase commit" for device parameters wasn't fully
57177dd7cddfSDavid du Colombierimplemented.  (gsiodev.c)
57187dd7cddfSDavid du Colombier	- Asking for a device color map before the device was opened could
57197dd7cddfSDavid du Colombiercause a crash.  (gsdparam.c)
57207dd7cddfSDavid du Colombier	- The scaled font cache didn't copy XUIDs properly.  (gxfont.h,
57217dd7cddfSDavid du Colombiergsfont.c)
57227dd7cddfSDavid du Colombier	- 90 or 270 degree rotated black-and-white bitmaps (including
57237dd7cddfSDavid du Colombierbitmapped fonts such as downloaded TrueType fonts) with an inverted device Y
57247dd7cddfSDavid du Colombieraxis were displaced in Y.  (gsimage1.c)
57257dd7cddfSDavid du Colombier	- On high-resolution devices, parts of regions filled with halftones
57267dd7cddfSDavid du Colombiercould fail to be painted.  (gxclist.c)
57277dd7cddfSDavid du Colombier
57283ff48bf5SDavid du Colombier</pre>
57297dd7cddfSDavid du Colombier
57303ff48bf5SDavid du Colombier<h2><a name="Version3.31"></a>Version 3.31 (4/2/95)</h2>
57313ff48bf5SDavid du Colombier
57323ff48bf5SDavid du Colombier<p>
57337dd7cddfSDavid du ColombierA few final bug fixes for the release.  Includes significant speed
57347dd7cddfSDavid du Colombierimprovements for CIE color, and a first draft of a low-level CGM driver.
57357dd7cddfSDavid du Colombier
57363ff48bf5SDavid du Colombier<h3><a name="V3.31_Documentation"></a>Documentation</h3><pre>
57377dd7cddfSDavid du ColombierNotes that the BJC600 driver also works for the BJC4000.  (devs.mak)
57387dd7cddfSDavid du Colombier
57393ff48bf5SDavid du Colombier</pre><h3><a name="V3.31_Procedures"></a>Procedures</h3><pre>
57407dd7cddfSDavid du Colombier
57417dd7cddfSDavid du ColombierAt the suggestion of a user, changes the default protections for installed
57427dd7cddfSDavid du Colombierfiles on Unix and DV/X systems from 775/664 to 755/644.  (*head.mak)
57437dd7cddfSDavid du Colombier
57447dd7cddfSDavid du ColombierAt the suggestion of a user, adds a -dNOCIE switch to substitute DeviceGray
57457dd7cddfSDavid du Colombierand DeviceRGB color spaces for CIEBasedA and CIEBasedABC spaces
57467dd7cddfSDavid du Colombierrespectively.  (gs_init.ps, gs_lev2.ps)
57477dd7cddfSDavid du Colombier
57483ff48bf5SDavid du Colombier</pre><h3><a name="V3.31_Utilities"></a>Utilities</h3><pre>
57497dd7cddfSDavid du Colombier
57507dd7cddfSDavid du ColombierChanges gslp and its relatives to use ISOLatin1Encoding for output, and to
57517dd7cddfSDavid du Colombiersend almost all printout to stderr rather than stdout (for use as a filter
57527dd7cddfSDavid du Colombierunder Unix).  (gslp.ps)
57537dd7cddfSDavid du Colombier
57543ff48bf5SDavid du Colombier</pre><h3><a name="V3.31_Drivers"></a>Drivers</h3><pre>
57557dd7cddfSDavid du Colombier
57567dd7cddfSDavid du ColombierFixes bugs:
57577dd7cddfSDavid du Colombier	- The fax/TIFF driver no longer exported gdev_fax_print_page, which
57587dd7cddfSDavid du Colombierthe DigiFax driver needs.  (gdevtfax.c)
57597dd7cddfSDavid du Colombier	- The color DeskJet drivers gave an error for BitsPerPixel=3.
57607dd7cddfSDavid du Colombier(gdevcdj.c)
57617dd7cddfSDavid du Colombier	- The "Windows printer" driver was setting its margins in points
57627dd7cddfSDavid du Colombierrather than inches.  (gdevwprn.c)
57637dd7cddfSDavid du Colombier	- The BJ10 and BJ200 drivers calculated vertical skip distances
57647dd7cddfSDavid du Colombierwrong.  (gdevbj10.c)
57657dd7cddfSDavid du Colombier	- The BJ10 and BJ200 drivers output two garbage bytes following the
57667dd7cddfSDavid du Colombierinitialization string.  (gdevbj10.c)
57677dd7cddfSDavid du Colombier
57687dd7cddfSDavid du ColombierAdds a preliminary driver that produces low-level CGM output.  (gdevcgml.h,
57697dd7cddfSDavid du Colombiergdevcgmx.h, gdevcgm.c, gdevcgml.c)
57707dd7cddfSDavid du Colombier
57713ff48bf5SDavid du Colombier</pre><h3><a name="V3.31_Platforms"></a>Platforms</h3><pre>
57727dd7cddfSDavid du Colombier
57737dd7cddfSDavid du ColombierFixes bugs:
57747dd7cddfSDavid du Colombier	- The VMS files had gotten out of sync with the other makefiles
57757dd7cddfSDavid du Colombier(again).  (modules.lis, vms.mak)
57767dd7cddfSDavid du Colombier	- The MS Windows and OS/2-PM drivers hadn't been updated to handle
57777dd7cddfSDavid du ColombierBitsPerPixel as a standard parameter.  (gdevmswn.c, gdevpm.c)
57787dd7cddfSDavid du Colombier
57797dd7cddfSDavid du ColombierRemoves the TIFF drivers from the Windows platform, and restores the BMP
57807dd7cddfSDavid du Colombierdrivers.  (bcwin.mak)
57817dd7cddfSDavid du Colombier
57823ff48bf5SDavid du Colombier</pre><h3><a name="V3.31_Interpreter"></a>Interpreter</h3><pre>
57837dd7cddfSDavid du Colombier
57847dd7cddfSDavid du ColombierFixes bugs:
57857dd7cddfSDavid du Colombier	- The CIE color mapping cache could produce anomalous results
57867dd7cddfSDavid du Colombierfor the default (all zero values) color if some of the mapping
57877dd7cddfSDavid du Colombierfunctions were non-linear.  (zcie.c)
57887dd7cddfSDavid du Colombier	- MultiMaster font substitution got confused if substituted
57897dd7cddfSDavid du Colombierfonts had their FontName changed.  (gs_fonts.ps)
57907dd7cddfSDavid du Colombier	- A procedure was declared as private inconsistently.  (zdevcal.c)
57917dd7cddfSDavid du Colombier	- Some pointer relocation procedures didn't work correctly on
57927dd7cddfSDavid du Colombiersystems with sizeof(T *) &gt; sizeof(int).  (istack.c)
57937dd7cddfSDavid du Colombier	- The freelist vector wasn't large enough to handle graphics state
57947dd7cddfSDavid du Colombierobjects on 64-bit systems, leading to severe memory sandbars.  (iastate.h)
57957dd7cddfSDavid du Colombier	- The debugging messages from the allocator had gotten inconsistent
57967dd7cddfSDavid du Colombierand hard to use.  (ialloc.c)
57977dd7cddfSDavid du Colombier	- Mixing save/restore with allocation could cause the GC never to
57987dd7cddfSDavid du Colombierget run.  (isave.c)
57997dd7cddfSDavid du Colombier
58007dd7cddfSDavid du ColombierSpeeds up the mapping of CIE colors.  (zcie.c)
58017dd7cddfSDavid du Colombier
58027dd7cddfSDavid du ColombierAdds a .namestring operator for getting the string of a name without having
58037dd7cddfSDavid du Colombierto copy it.  (zstring.c)
58047dd7cddfSDavid du Colombier
58053ff48bf5SDavid du Colombier</pre><h3><a name="V3.31_Streams"></a>Streams</h3><pre>
58067dd7cddfSDavid du Colombier
58077dd7cddfSDavid du ColombierFixes bugs:
58087dd7cddfSDavid du Colombier	- The IJG code needed a couple more flags set for IJG v6.
58097dd7cddfSDavid du Colombier(gsjmorec.h)
58107dd7cddfSDavid du Colombier	- Some pointer relocation procedures didn't work correctly on
58117dd7cddfSDavid du Colombiersystems with sizeof(T *) &gt; sizeof(int).  (stream.c)
58127dd7cddfSDavid du Colombier
58133ff48bf5SDavid du Colombier</pre><h3><a name="V3.31_Library"></a>Library</h3><pre>
58147dd7cddfSDavid du Colombier
58157dd7cddfSDavid du ColombierFixes bugs:
58167dd7cddfSDavid du Colombier	- The end-test for the fast case of monobit images was wrong,
58177dd7cddfSDavid du Colombierleading to out-of-range memory accesses.  (gsimage1.c)
58187dd7cddfSDavid du Colombier	- Monobit images rotated by 270 degrees displayed incorrectly.
58197dd7cddfSDavid du Colombier(gsimage1.c)
58207dd7cddfSDavid du Colombier	- If a Type 1 font used hint replacement, some parts of the outline
58217dd7cddfSDavid du Colombierbefore the hint replacement ignored the old hints.  (gstype1.c)
58227dd7cddfSDavid du Colombier	- Some compilers didn't accept a variable name that was the same as
58237dd7cddfSDavid du Colombiera macro with parameters.  (gxht.c)
58247dd7cddfSDavid du Colombier	- A procedure was declared as private inconsistently.  (gdevm1.c)
58257dd7cddfSDavid du Colombier	- Some pointer relocation procedures didn't work correctly on
58267dd7cddfSDavid du Colombiersystems with sizeof(T *) &gt; sizeof(int).  (gdevmem.c, gsstate.c)
58277dd7cddfSDavid du Colombier	- The test on FORCE_HINTS_TO_BIG_PIXELS was backwards.  This bug was
58287dd7cddfSDavid du Colombiersupposed to have been fixed in 3.30, but somehow the fix got lost.
58297dd7cddfSDavid du Colombier(gstype1.c)
58307dd7cddfSDavid du Colombier	- 90 degree rotated monobit images could drop some scan lines.
58317dd7cddfSDavid du Colombier(gsimage*.c)
58327dd7cddfSDavid du Colombier
58337dd7cddfSDavid du ColombierSpeeds up the mapping of CIE colors.  (gscie.h, gxcmap.h, gscie.c, gxcmap.c)
58347dd7cddfSDavid du Colombier
58357dd7cddfSDavid du ColombierSpeeds up color images (non-interpolated, 1-8 bits per component) by adding
58367dd7cddfSDavid du Colombiera cache for mapped color values.  (gximage.h, gsimage.c, gsimage1.c,
58377dd7cddfSDavid du Colombiergsimage2.c)
58387dd7cddfSDavid du Colombier
58397dd7cddfSDavid du ColombierShrinks the band list file slightly by using only as many bytes as necessary
58407dd7cddfSDavid du Colombierfor writing out colors, rather than always using 4 bytes.  (gxclist.c,
58417dd7cddfSDavid du Colombiergxclread.c)
58427dd7cddfSDavid du Colombier
58433ff48bf5SDavid du Colombier</pre>
58447dd7cddfSDavid du Colombier
58453ff48bf5SDavid du Colombier<h2><a name="Version3.30"></a>Version 3.30 (beta) (3/21/95)</h2>
58463ff48bf5SDavid du Colombier
58473ff48bf5SDavid du Colombier<p>
58487dd7cddfSDavid du ColombierMore bug fixes.  The garbage collector and PDF interpreter finally appear to
58497dd7cddfSDavid du Colombierwork reliably.
58507dd7cddfSDavid du Colombier
58513ff48bf5SDavid du Colombier<h3><a name="V3.30_Documentation"></a>Documentation</h3><pre>
58527dd7cddfSDavid du ColombierFixes bugs:
58537dd7cddfSDavid du Colombier	- language.doc had gotten out of date.  (language.doc)
58547dd7cddfSDavid du Colombier
58553ff48bf5SDavid du Colombier</pre><h3><a name="V3.30_Utilities"></a>Utilities</h3><pre>
58567dd7cddfSDavid du Colombier
58577dd7cddfSDavid du ColombierFixes bugs:
58587dd7cddfSDavid du Colombier	- Changes in the handling of %stdout had broken ps2ascii.
58597dd7cddfSDavid du Colombier(gs_dps1.ps, ps2ascii.ps)
58607dd7cddfSDavid du Colombier
58617dd7cddfSDavid du ColombierImproves ps2ascii to skip empty strings and not output redundant font
58627dd7cddfSDavid du Colombierchanges.  (ps2ascii.ps)
58637dd7cddfSDavid du Colombier
58643ff48bf5SDavid du Colombier</pre><h3><a name="V3.30_Drivers"></a>Drivers</h3><pre>
58657dd7cddfSDavid du Colombier
58667dd7cddfSDavid du ColombierFixes bugs:
58677dd7cddfSDavid du Colombier	- The fax and TIFF drivers didn't free all their working storage.
58687dd7cddfSDavid du Colombier(This bug was fixed in 3.27, and the fix somehow got lost.)  (gdevtfax.c)
58697dd7cddfSDavid du Colombier
58707dd7cddfSDavid du ColombierAdds new drivers:
58717dd7cddfSDavid du Colombier	- sgirgb, to produce SGI RGB raster files.  (gdevsgi.c)
58727dd7cddfSDavid du Colombier	- tiffcrle, to produce output in TIFF "CCITT 1-dimensional Huffman
58737dd7cddfSDavid du ColombierRLE" format (Group 3 fax with no EOLs). (gdevtfax.c)
58747dd7cddfSDavid du Colombier	- tifflzw, to produce output in TIFF LZW format (using the existing
58757dd7cddfSDavid du ColombierCCITTFaxEncode filter code). (gdevtfax.c)
58767dd7cddfSDavid du Colombier	- tiffpack, to produce output in TIFF PackBits format. (gdevtfax.c)
58777dd7cddfSDavid du Colombier
58783ff48bf5SDavid du Colombier</pre><h3><a name="V3.30_Interpreter_PostScript"></a>Interpreter (PostScript)</h3><pre>
58797dd7cddfSDavid du Colombier
58807dd7cddfSDavid du ColombierFixes bugs:
58817dd7cddfSDavid du Colombier	- If the current screen was set with a halftone, setcolorscreen
58827dd7cddfSDavid du Colombierwouldn't accept what currentcolorscreen returned.  (gs_dps1.ps)
58837dd7cddfSDavid du Colombier	- debug_print_full_ref didn't print t_oparray objects correctly.
58847dd7cddfSDavid du Colombier(idebug.c)
58857dd7cddfSDavid du Colombier	- The internal data for a font could be allocated in a different VM
58867dd7cddfSDavid du Colombierspace from the font dictionary, causing dangling pointers.  (zfont2.c)
58877dd7cddfSDavid du Colombier	- definefont became confused if a program failed to delete the FID
58887dd7cddfSDavid du Colombierfrom a re-encoded font.  (This is questionable PostScript, but dvips does
58897dd7cddfSDavid du Colombierit.)  (zfont2.c)
58907dd7cddfSDavid du Colombier	- If a BuildChar procedure did a save before the setcachedevice and
58917dd7cddfSDavid du Colombiera restore afterwards, the memory manager would attempt to free the cache
58927dd7cddfSDavid du Colombierdevice after it had already been freed by the restore, leading to damaged
58937dd7cddfSDavid du Colombierfreelists.  (gschar.c)
58947dd7cddfSDavid du Colombier	- setresolution (in statusdict) was ignored.  (gs_lev2.ps,
58957dd7cddfSDavid du Colombiergs_statd.ps)
58967dd7cddfSDavid du Colombier	- If a string containing a string containing a \ was passed to the
58977dd7cddfSDavid du Colombiertoken operator, the \ was not recognized properly in a Level 2 environment.
58987dd7cddfSDavid du Colombier(iscan.c)
58997dd7cddfSDavid du Colombier	- A couple of default dictionary sizes had become too small.
59007dd7cddfSDavid du Colombier(iinit.c)
59017dd7cddfSDavid du Colombier
59027dd7cddfSDavid du ColombierMakes DOS EOF (control-Z, 0x1a) a self-delimiting token, like left bracket.
59037dd7cddfSDavid du ColombierTHIS IS A NON-BACKWARD-COMPATIBLE CHANGE, but it should not have any adverse
59047dd7cddfSDavid du Colombiereffects.  (gs_init.ps, iscan.c, iscantab.c)
59057dd7cddfSDavid du Colombier
59067dd7cddfSDavid du ColombierDistinguishes arch_small_memory from arch_ints_are_short, and adds a new
59077dd7cddfSDavid du Colombier-Z. switch to force small-memory table sizes regardless of actual memory
59087dd7cddfSDavid du Colombiersize.  (dstack.h, idict.c, zpcolor.c, zvmem2.c)
59097dd7cddfSDavid du Colombier
59103ff48bf5SDavid du Colombier</pre><h3><a name="V3.30_Interpreter_PDF"></a>Interpreter (PDF)</h3><pre>
59117dd7cddfSDavid du Colombier
59127dd7cddfSDavid du ColombierFixes bugs:
59137dd7cddfSDavid du Colombier	- A page with no Contents caused an error.  (pdf_main.ps)
59147dd7cddfSDavid du Colombier	- Executing a Form resource caused an error.  (pdf_draw.ps)
59157dd7cddfSDavid du Colombier	- Outlines with open entries caused an error.  (pdf_main.ps)
59167dd7cddfSDavid du Colombier	- Embedded Type 3 fonts caused an error.  (pdf_draw.ps, pdf_font.ps)
59177dd7cddfSDavid du Colombier	- The Widths array of fonts was ignored.  (pdf_font.ps)
59187dd7cddfSDavid du Colombier
59193ff48bf5SDavid du Colombier</pre><h3><a name="V3.30_Library"></a>Library</h3><pre>
59207dd7cddfSDavid du Colombier
59217dd7cddfSDavid du ColombierFixes bugs:
59227dd7cddfSDavid du Colombier	- Freeing an entry in the pattern cache didn't clear the pointers to
59237dd7cddfSDavid du Colombierthe raster data, producing a dangling reference that confused the garbage
59247dd7cddfSDavid du Colombiercollector.  (gxpcmap.c)
59257dd7cddfSDavid du Colombier	- The test on FORCE_HINTS_TO_BIG_PIXELS was backwards.  (gstype1.c)
59267dd7cddfSDavid du Colombier	- The pattern cache bookkeeping was incorrect.  (gxpcmap.c)
59277dd7cddfSDavid du Colombier	- Depending on the order in which pointers were relocated, the
59287dd7cddfSDavid du Colombiergarbage collector could incorrectly relocate pointers from the character
59297dd7cddfSDavid du Colombiercache.  (gxfcache.h, gsfont.c, gxccache.c, gxccman.c)
59307dd7cddfSDavid du Colombier
59317dd7cddfSDavid du ColombierChanges the fast case of black-and-white images so it aligns scaled images
59327dd7cddfSDavid du Colombierwith the device coordinate system, to improve performance.  (gsimage1.c)
59337dd7cddfSDavid du Colombier
59347dd7cddfSDavid du ColombierExtends the coordinate transformation routines to handle absurdly large
59357dd7cddfSDavid du Colombiertranslation values in the CTM as long as the final device device coordinates
59367dd7cddfSDavid du Colombierare within fixed-point range.  (gxmatrix.h, gxpath.h, gschar.c, gscoord.c,
59377dd7cddfSDavid du Colombiergsmatrix.c, gxhint2.c, gxpath2.c)
59387dd7cddfSDavid du Colombier
59397dd7cddfSDavid du ColombierDistinguishes arch_small_memory from arch_ints_are_short, and adds a new
59407dd7cddfSDavid du Colombier-Z. switch to force small-memory table sizes regardless of actual memory
59417dd7cddfSDavid du Colombiersize.  (gdevprn.h, gxpcolor.h, gzht.h, std.h, gsfont.c, gsht1.c, gspaint.c,
59427dd7cddfSDavid du Colombiergsstate.c, gxcht.c, gxht.c, gxpcmap.c)
59437dd7cddfSDavid du Colombier
59443ff48bf5SDavid du Colombier</pre>
59457dd7cddfSDavid du Colombier
59463ff48bf5SDavid du Colombier<hr>
59473ff48bf5SDavid du Colombier
59483ff48bf5SDavid du Colombier<h2><a name="Version3.29"></a>Version 3.29 (internal) (3/8/95)</h2>
59493ff48bf5SDavid du Colombier
59503ff48bf5SDavid du Colombier<p>
59517dd7cddfSDavid du ColombierAnother bug-fix release.  This release processes all but 7 of the 500+ files
59527dd7cddfSDavid du Colombieron the Adobe Acrobat Sampler CD-ROM without giving an error.  The garbage
59537dd7cddfSDavid du Colombiercollector finally appears to be stable.  This version was created for a
59547dd7cddfSDavid du Colombiercustomer; it was not released to the general public or even to the beta test
59557dd7cddfSDavid du Colombierlist.
59567dd7cddfSDavid du Colombier
59573ff48bf5SDavid du Colombier<h3><a name="V3.29_Documentation"></a>Documentation</h3><pre>
59587dd7cddfSDavid du ColombierDocuments the possible need to set LD_RUN_PATH on SVR4 platforms.
59597dd7cddfSDavid du Colombier(make.doc)
59607dd7cddfSDavid du Colombier
59617dd7cddfSDavid du ColombierExpands the description of the device life cycle, and of the constraints on
59627dd7cddfSDavid du Colombierput_params procedures.  (drivers.doc)
59637dd7cddfSDavid du Colombier
59647dd7cddfSDavid du ColombierAdds an explicit copyright notice to the Aladdin Ghostscript Free Public
59657dd7cddfSDavid du ColombierLicense.  (PUBLIC)
59667dd7cddfSDavid du Colombier
59677dd7cddfSDavid du ColombierClarifies that the Win32s documentation also applies to Windows NT.
59687dd7cddfSDavid du Colombier(make.doc)
59697dd7cddfSDavid du Colombier
59703ff48bf5SDavid du Colombier</pre><h3><a name="V3.29_Procedures"></a>Procedures</h3><pre>
59717dd7cddfSDavid du Colombier
59727dd7cddfSDavid du ColombierRemoves the obsolete writeppmfile operator from the standard configurations.
59737dd7cddfSDavid du Colombier(gs.mak)
59747dd7cddfSDavid du Colombier
59757dd7cddfSDavid du ColombierChanges the Watcom makefiles to work properly with Watcom C/C++ 10.0.
59767dd7cddfSDavid du Colombier(make.doc, msc.mak, watc.mak, watcwin.mak, wccommon.mak)
59777dd7cddfSDavid du Colombier
59783ff48bf5SDavid du Colombier</pre><h3><a name="V3.29_Utilities"></a>Utilities</h3><pre>
59797dd7cddfSDavid du Colombier
59807dd7cddfSDavid du ColombierAdds a wftopfa utility for converting the Wadalab fonts to usable Type 0 and
59817dd7cddfSDavid du ColombierType 1 form.  (wftopfa)
59827dd7cddfSDavid du Colombier
59833ff48bf5SDavid du Colombier</pre><h3><a name="V3.29_Fonts"></a>Fonts</h3><pre>
59847dd7cddfSDavid du Colombier
59857dd7cddfSDavid du ColombierFixes bugs:
59867dd7cddfSDavid du Colombier	- Entries added automatically by definefont (FontInfo, ExactSize)
59877dd7cddfSDavid du Colombiercould cause a font dictionary to become full.  (gs_fonts.ps, gs_type1.ps)
59887dd7cddfSDavid du Colombier	- wrfont.ps couldn't deal with very long CharStrings.  (wrfont.ps)
59897dd7cddfSDavid du Colombier
59907dd7cddfSDavid du ColombierMakes the name of the Fontmap file an easily editable parameter.
59917dd7cddfSDavid du Colombier(gs_fonts.ps)
59927dd7cddfSDavid du Colombier
59937dd7cddfSDavid du ColombierAdds a utility for converting the Wadalab font to usable Type 0 and Type 1
59947dd7cddfSDavid du Colombierform.  (wrfont.ps, wftopfa.ps)
59957dd7cddfSDavid du Colombier
59963ff48bf5SDavid du Colombier</pre><h3><a name="V3.29_Drivers"></a>Drivers</h3><pre>
59977dd7cddfSDavid du Colombier
59987dd7cddfSDavid du ColombierFixes bugs:
59997dd7cddfSDavid du Colombier	- The top margin for printer (and fax) devices was computed
60007dd7cddfSDavid du Colombierincorrectly, using the X resolution rather than the Y resolution.
60017dd7cddfSDavid du Colombier(gdevprn.h)
60027dd7cddfSDavid du Colombier	- Changing the page size or resolution of a printer device closed
60037dd7cddfSDavid du Colombierand reopened the device unnecessarily.  (gdevprn.c)
60047dd7cddfSDavid du Colombier	- Changing the page size of the X11 device didn't change the initial
60057dd7cddfSDavid du Colombiermatrix, so (0,0) didn't wind up in the lower left corner.  (gdevx.c)
60067dd7cddfSDavid du Colombier	- The bit devices didn't allow changing the number of bits per
60077dd7cddfSDavid du Colombierpixel.  (gdevbit.c)
60087dd7cddfSDavid du Colombier
60097dd7cddfSDavid du ColombierAdds a settable .IsPageDevice boolean device parameter to the X Windows
60107dd7cddfSDavid du Colombierdriver.  The default value is true.  (gdevx.h, gdevx.c)
60117dd7cddfSDavid du Colombier
60127dd7cddfSDavid du ColombierChanges the PPM driver so that it chooses between PBM/PGM/PPM on a
60137dd7cddfSDavid du Colombierpage-by-page basis, rather retaining the most general format ever required
60147dd7cddfSDavid du Colombierby any page.  (gdevpbm.c)
60157dd7cddfSDavid du Colombier
60163ff48bf5SDavid du Colombier</pre><h3><a name="V3.29_Interpreter_PostScript"></a>Interpreter (PostScript)</h3><pre>
60177dd7cddfSDavid du Colombier
60187dd7cddfSDavid du ColombierFixes bugs:
60197dd7cddfSDavid du Colombier	- The current page device could be null, rather than an empty
60207dd7cddfSDavid du Colombierdictionary.  (igstate.h, zchar.c, zdevice.c, zdevice2.c, zgstate.c)
60217dd7cddfSDavid du Colombier	- The scanner didn't signal an error for names or strings that were
60227dd7cddfSDavid du Colombiertoo long.  (iscan.c)
60237dd7cddfSDavid du Colombier	- A missing header file upset the VAX compilers.  (ztype.c)
60247dd7cddfSDavid du Colombier	- Some places expecting dictionary operands didn't check the type,
60257dd7cddfSDavid du Colombierbecause they incorrectly assumed that the dict_check_read/write macro did
60267dd7cddfSDavid du Colombierthis.  (idict.h, zdevice2.c, zht2.c, zmisc2.c)
60277dd7cddfSDavid du Colombier	- The definition of quit in systemdict wasn't disabled within
60287dd7cddfSDavid du Colombierencapsulated jobs.  (gs_lev2.ps)
60297dd7cddfSDavid du Colombier	- resetfile gave an error if the file was closed, rather than doing
60307dd7cddfSDavid du Colombiernothing.  (zfileio.c)
60317dd7cddfSDavid du Colombier	- The scanner attempted to free an uninitialized pointer if it
60327dd7cddfSDavid du Colombierreached EOF after a / or //.  (iscan.c)
60337dd7cddfSDavid du Colombier	- A restore in a different file than the corresponding save caused
60347dd7cddfSDavid du Colombieran invalidrestore error.  (gs_init.ps)
60357dd7cddfSDavid du Colombier	- The default value of EndOfData in RunLengthDecode streams was set
60367dd7cddfSDavid du Colombierto false.  (zfilter.c)
60377dd7cddfSDavid du Colombier	- .registerencoding didn't invoke the save machinery correctly,
60387dd7cddfSDavid du Colombierleading to GC problems.  (zfont2.c)
60397dd7cddfSDavid du Colombier	- The facility for overriding .printerror didn't work correctly.
60407dd7cddfSDavid du Colombier(gs_init.ps)
60417dd7cddfSDavid du Colombier	- gs_run_file_open wasn't public.  (gsmain.c)
60427dd7cddfSDavid du Colombier	- The interpreter returned e_undefined for undefined error names,
60437dd7cddfSDavid du Colombierrather than the error code.  (interp.c)
60447dd7cddfSDavid du Colombier	- Allocation in system memory (specifically, adding a block to a
60457dd7cddfSDavid du Colombierstack) couldn't trigger automatic garbage collection.  (interp.c, igc.c,
60467dd7cddfSDavid du Colombierzvmem2.c)
60477dd7cddfSDavid du Colombier	- A restore in a different invocation of gs_run_string than the
60487dd7cddfSDavid du Colombiercorresponding save would stop reading the string.  (files.h, gsmain.c,
60497dd7cddfSDavid du Colombiericcinit.c, zfile.c)
60507dd7cddfSDavid du Colombier	- The Type 1 rasterizer state included a pointer into the middle of
60517dd7cddfSDavid du Colombieran object, confusing the garbage collector.  (zchar1.c, zfont1.c)
60527dd7cddfSDavid du Colombier	- When the garbage collector deleted a name, it didn't zero out the
60537dd7cddfSDavid du Colombierstring pointer.  (iname.c)
60547dd7cddfSDavid du Colombier	- On platforms where obj_align_mod &gt; 4, the memory manager could
60557dd7cddfSDavid du Colombieraccess 1 beyond the end of its freelists.  (iastate.h)
60567dd7cddfSDavid du Colombier	- makefont and scalefont didn't check the type of their font operand
60577dd7cddfSDavid du Colombiersoon enough.  (zfont.c)
60587dd7cddfSDavid du Colombier	- restore didn't finalize the objects it freed.  (isave.c)
60597dd7cddfSDavid du Colombier	- restore didn't free system VM.  (isave.c)
60607dd7cddfSDavid du Colombier	- Freeing a ref array that occupied an entire chunk didn't free the
60617dd7cddfSDavid du Colombierchunk.  (ialloc.c)
60627dd7cddfSDavid du Colombier
60637dd7cddfSDavid du ColombierAdds a .runexec operator which implements the 'close if error' function of
60647dd7cddfSDavid du Colombierrun.  (zfile.c, zfileio.c)
60657dd7cddfSDavid du Colombier
60667dd7cddfSDavid du ColombierMoves the obsolete writeppmfile operator into a separate file.  (zfileio.c,
60677dd7cddfSDavid du Colombierzwppm.c)
60687dd7cddfSDavid du Colombier
60697dd7cddfSDavid du ColombierMakes the statistics returned by the memory manager more accurate.
60707dd7cddfSDavid du Colombier(ialloc.c, zvmem.c)
60717dd7cddfSDavid du Colombier
60727dd7cddfSDavid du ColombierAdds a (read-only) %Calendar% IODevice.  (zdevcal.c)
60737dd7cddfSDavid du Colombier
60747dd7cddfSDavid du ColombierAdds a "hook" in the character operators to allow external code to
60757dd7cddfSDavid du Colombierintervene; this is needed for a customer.  (ichar.h, zchar.c, zchar2.c)
60767dd7cddfSDavid du Colombier
60777dd7cddfSDavid du ColombierMakes control-D (0x04) a self-delimiting token, like left bracket.  THIS IS
60787dd7cddfSDavid du ColombierA NON-BACKWARD-COMPATIBLE CHANGE, but it should not have any adverse
60797dd7cddfSDavid du Colombiereffects.  (scanchar.h, iscan.c, iscantab.c)
60807dd7cddfSDavid du Colombier
60817dd7cddfSDavid du ColombierChanges the error stack printout so that it puts line breaks between items
60827dd7cddfSDavid du Colombieriff the items are being printed with ==.  (gs_init.ps)
60837dd7cddfSDavid du Colombier
60847dd7cddfSDavid du ColombierUses finalization to close streams being freed.  (igc.c, zfile.c, ziodev.c)
60857dd7cddfSDavid du Colombier
60863ff48bf5SDavid du Colombier</pre><h3><a name="V3.29_Interpreter_PDF"></a>Interpreter (PDF)</h3><pre>
60877dd7cddfSDavid du Colombier
60887dd7cddfSDavid du ColombierFixes bugs:
60897dd7cddfSDavid du Colombier	- Embedded Type 1 fonts that invoked save and restore while being
60907dd7cddfSDavid du Colombierread caused an error.  (pdf_font.ps)
60917dd7cddfSDavid du Colombier	- Large files that referenced a non-alphabetic font for the first
60927dd7cddfSDavid du Colombiertime late in the file could cause an error.  (pdf_main.ps)
60937dd7cddfSDavid du Colombier
60943ff48bf5SDavid du Colombier</pre><h3><a name="V3.29_Streams"></a>Streams</h3><pre>
60957dd7cddfSDavid du Colombier
60967dd7cddfSDavid du ColombierFixes bugs:
60977dd7cddfSDavid du Colombier	- SubFileDecode streams didn't copy partial matches of the EOD
60987dd7cddfSDavid du Colombierstring into their output.  (sfilter1.c)
60997dd7cddfSDavid du Colombier
61007dd7cddfSDavid du ColombierMakes switching between read and write modes a stream procedure.  (stream.h,
61017dd7cddfSDavid du Colombiersfile.c, sfileno.c, stream.c, zfileio.c)
61027dd7cddfSDavid du Colombier
61037dd7cddfSDavid du ColombierMakes file streams close themselves when finalized.  (We can't do this for
61047dd7cddfSDavid du Colombierother streams, because finalization procedures aren't allowed to free
61057dd7cddfSDavid du Colombierstorage explicitly.)  (stream.h, sfile.c, sfileno.c, stream.c)
61067dd7cddfSDavid du Colombier
61073ff48bf5SDavid du Colombier</pre><h3><a name="V3.29_Library"></a>Library</h3><pre>
61087dd7cddfSDavid du Colombier
61097dd7cddfSDavid du ColombierFixes bugs:
61107dd7cddfSDavid du Colombier	- The obsolete files gcdefs.h and gsfile.c were still included in
61117dd7cddfSDavid du Colombierthe fileset.
61127dd7cddfSDavid du Colombier	- A number of places didn't deal with null patterns properly (p_tile
61137dd7cddfSDavid du Colombier== 0).  (gxdcolor.h, gspcolor.c, gxpcmap.c)
61147dd7cddfSDavid du Colombier	- The pattern tiling algorithm was numerically unstable, especially
61157dd7cddfSDavid du Colombierif the X/YStep vectors were close to the axes.  (gxcolor2.h, gspcolor.c,
61167dd7cddfSDavid du Colombiergxpcmap.c)
61177dd7cddfSDavid du Colombier	- setdeviceparams checked the values of read-only byte array
61187dd7cddfSDavid du Colombierparameters incorrectly.  (gsdparam.c)
61197dd7cddfSDavid du Colombier	- The statistics macros in gxfill.c didn't use DO_NOTHING when
61207dd7cddfSDavid du Colombierdisabled.  (gxfill.c)
61217dd7cddfSDavid du Colombier	- Changing the orientation of a device closed and reopened the
61227dd7cddfSDavid du Colombierdevice unnecessarily.  (gsdparam.c)
61237dd7cddfSDavid du Colombier	- ioerrors occurring when writing command lists weren't reported
61247dd7cddfSDavid du Colombierproperly.  (gxclist.h, gxclist.c)
61257dd7cddfSDavid du Colombier	- Errors from device procedures weren't always propagated up to
61267dd7cddfSDavid du Colombierclients.  (gsimage1.c, gsimage3.c, gxclip2.c, gxclist.c)
61277dd7cddfSDavid du Colombier	- Overflowing the fixed-point translation values in the CTM caused a
61287dd7cddfSDavid du Colombierfloating point exception rather than a limitcheck.  (gxmatrix.h, gscoord.c)
61297dd7cddfSDavid du Colombier	- charpath set the current point correctly, but didn't append a
61307dd7cddfSDavid du Colombiermoveto element to the path.  (This mostly affected Mathematica output.)
61317dd7cddfSDavid du Colombier(gzpath.h)
61327dd7cddfSDavid du Colombier	- Image devices mapped colors incorrectly.  (gdevmem.c, gdevm16.c)
61337dd7cddfSDavid du Colombier	- On devices with color capability but fewer than 4 bits per pixel,
61347dd7cddfSDavid du Colombiercolor halftones didn't work (and could cause an arithmetic exception).
61357dd7cddfSDavid du Colombier(gxdither.c)
61367dd7cddfSDavid du Colombier	- Black-on-white memory devices didn't map colors properly.
61377dd7cddfSDavid du Colombier(gdevprn.h, gxdevice.h, gxdevmem.h, gdevmem.c, gdevm1.c, gsdevice.c)
61387dd7cddfSDavid du Colombier	- Memory devices with a non-zero origin in their initial matrix
61397dd7cddfSDavid du Colombierclipped the image improperly.  (gsdevice.c)
61407dd7cddfSDavid du Colombier	- The Type 1 rasterizer state included a pointer into the middle of
61417dd7cddfSDavid du Colombieran object, confusing the garbage collector.  (gstype1.h, gxfont1.h,
61427dd7cddfSDavid du Colombiergxtype1.h, gstype1.c, gxhint2.c)
61437dd7cddfSDavid du Colombier	- The band rasterizer could produce garbled output for images
61447dd7cddfSDavid du Colombier(including characters) on 64-bit architectures.  (gxclread.c)
61457dd7cddfSDavid du Colombier	- Bounding boxes (for pathbbox and setbbox) could be slightly
61467dd7cddfSDavid du Colombierinaccurate.  (gsmatrix.c)
61477dd7cddfSDavid du Colombier	- On 64-bit architectures, halftone tiles less than 16 bits wide
61487dd7cddfSDavid du Colombierwere handled incorrectly.  (gxclist.c)
61497dd7cddfSDavid du Colombier
61507dd7cddfSDavid du ColombierAdds an .IsPageDevice boolean device parameter (normally read-only).
61517dd7cddfSDavid du Colombier(gsdparam.c)
61527dd7cddfSDavid du Colombier
61537dd7cddfSDavid du ColombierRemoves the library code for implementing the obsolete writeppmfile
61547dd7cddfSDavid du Colombieroperator.  (gswppm.c)
61557dd7cddfSDavid du Colombier
61567dd7cddfSDavid du ColombierMakes the default matrix (for initmatrix and defaultmatrix) a settable
61577dd7cddfSDavid du Colombierparameter in the graphics state.  (gscoord.h, gzstate.h, gscoord.c,
61587dd7cddfSDavid du Colombiergsdevice.c, gsdparam.c)
61597dd7cddfSDavid du Colombier
61607dd7cddfSDavid du ColombierMakes the statistics returned by the memory manager more accurate.
61617dd7cddfSDavid du Colombier(gsmemory.h)
61627dd7cddfSDavid du Colombier
61637dd7cddfSDavid du ColombierAdds a compile-time flag to choose whether or not to force Type 1 hints to
61647dd7cddfSDavid du Colombier"big pixel" boundaries when oversampling.  (gstype1.c)
61657dd7cddfSDavid du Colombier
61667dd7cddfSDavid du ColombierChanges the .PageCount device parameter back to PageCount, because the
61677dd7cddfSDavid du Colombierchange broke some scripts.  (gsdparam.c)
61687dd7cddfSDavid du Colombier
61697dd7cddfSDavid du ColombierAdds optimization for 90 degree rotated images with pure colors.
61707dd7cddfSDavid du Colombier(gximage.h, gsimage.c, gsimage1.c)
61717dd7cddfSDavid du Colombier
61727dd7cddfSDavid du ColombierChanges the band rasterizer so that replicated halftone tiles are written on
61737dd7cddfSDavid du Colombierthe band list in unreplicated form.  (gsbitops.h, gxcldev.h, gsbitops.c,
61747dd7cddfSDavid du Colombiergxclist.c, gxclread.c, gxht.c)
61757dd7cddfSDavid du Colombier
61767dd7cddfSDavid du ColombierChanges the .HWBitsPerPixel device parameter to BitsPerPixel.  (drivers.doc,
61777dd7cddfSDavid du Colombierlanguage.doc, gdevcdj.c, gdevstc.c, gsdparam.c)
61787dd7cddfSDavid du Colombier
61793ff48bf5SDavid du Colombier</pre>
61807dd7cddfSDavid du Colombier
61813ff48bf5SDavid du Colombier<h2><a name="Version3.28"></a>Version 3.28 (beta) (2/13/95)</h2>
61823ff48bf5SDavid du Colombier
61833ff48bf5SDavid du Colombier<p>
61847dd7cddfSDavid du ColombierAnother bug-fix beta release.  The number of bugs being fixed in each of
61857dd7cddfSDavid du Colombierthese sub-releases does exceed the number of new bugs introduced, but the
61867dd7cddfSDavid du Colombierlatter number is discouragingly high.
61877dd7cddfSDavid du Colombier
61883ff48bf5SDavid du Colombier<h3><a name="V3.28_Documentation"></a>Documentation</h3><pre>
61897dd7cddfSDavid du ColombierAdds some information about handling VMS file attributes for files
61907dd7cddfSDavid du Colombiertransferred by FTP.  (use.doc)
61917dd7cddfSDavid du Colombier
61923ff48bf5SDavid du Colombier</pre><h3><a name="V3.28_Procedures"></a>Procedures</h3><pre>
61937dd7cddfSDavid du Colombier
61947dd7cddfSDavid du ColombierFixes bugs:
61957dd7cddfSDavid du Colombier	- unix-gcc.mak said the static linkage switch for SunOS was -Bstatic
61967dd7cddfSDavid du Colombierrather than -static.  (unix-gcc.mak)
61977dd7cddfSDavid du Colombier	- Some dependency lists in gs.mak were out of date.  (gs.mak)
61987dd7cddfSDavid du Colombier
61993ff48bf5SDavid du Colombier</pre><h3><a name="V3.28_Utilities"></a>Utilities</h3><pre>
62007dd7cddfSDavid du Colombier
62017dd7cddfSDavid du ColombierFixes bugs:
62027dd7cddfSDavid du Colombier	- markhint.ps didn't check for protected fonts.  (markhint.ps)
62037dd7cddfSDavid du Colombier
62043ff48bf5SDavid du Colombier</pre><h3><a name="V3.28_Drivers"></a>Drivers</h3><pre>
62057dd7cddfSDavid du Colombier
62067dd7cddfSDavid du ColombierFixes bugs:
62077dd7cddfSDavid du Colombier	- The cdj driver had a byte/char agreement problem.  (gdevcdj.c)
62087dd7cddfSDavid du Colombier	- The cdj driver attempted to initialize a dynamic array.
62097dd7cddfSDavid du Colombier(gdevcdj.c)
62107dd7cddfSDavid du Colombier
62117dd7cddfSDavid du ColombierRemoves the setting of InputAttributes and OutputAttributes from the H-P
62127dd7cddfSDavid du Colombierdrivers, since this causes more problems than it solves.  (gdevdjet.c)
62137dd7cddfSDavid du Colombier
62143ff48bf5SDavid du Colombier</pre><h3><a name="V3.28_Interpreter"></a>Interpreter</h3><pre>
62157dd7cddfSDavid du Colombier
62167dd7cddfSDavid du ColombierFixes bugs:
62177dd7cddfSDavid du Colombier	- makeoperator assigned incorrect attributes to operators. (bug
62187dd7cddfSDavid du Colombierintroduced in 3.27) (opdef.h, iinit.c, iutil.c, zmisc.c)
62197dd7cddfSDavid du Colombier
62203ff48bf5SDavid du Colombier</pre><h3><a name="V3.28_Library"></a>Library</h3><pre>
62217dd7cddfSDavid du Colombier
62227dd7cddfSDavid du ColombierFixes bugs:
62237dd7cddfSDavid du Colombier	- gs_makeimagedevice didn't set the caller's pointer to the newly
62247dd7cddfSDavid du Colombiercreated device.  (bug introduced in 3.27) (gsdevice.c)
62257dd7cddfSDavid du Colombier	- There were still some mismatches between char * and byte * values.
62267dd7cddfSDavid du Colombier(gsdparam.c)
62277dd7cddfSDavid du Colombier	- The halftone replication algorithm could produce inappropriately
62287dd7cddfSDavid du Colombierlarge replicated masks.  (gxht.c)
62297dd7cddfSDavid du Colombier	- stroke usually did the wrong thing for degenerate (single-point)
62307dd7cddfSDavid du Colombiersubpaths.  (gxstroke.c)
62317dd7cddfSDavid du Colombier
62323ff48bf5SDavid du Colombier</pre>
62337dd7cddfSDavid du Colombier
62343ff48bf5SDavid du Colombier<h2><a name="Version3.27"></a>Version 3.27 (beta)(withdrawn) (2/8/95)</h2>
62353ff48bf5SDavid du Colombier
62363ff48bf5SDavid du Colombier<p>
62377dd7cddfSDavid du ColombierYet another bug-fix beta release.  This release had so many serious problems
62387dd7cddfSDavid du Colombier(the most serious being at least one changed file that the release tool
62397dd7cddfSDavid du Colombierfailed to include in the fileset) that it was withdrawn less than a day
62407dd7cddfSDavid du Colombierafter it was issued.
62417dd7cddfSDavid du Colombier
62423ff48bf5SDavid du Colombier<h3><a name="V3.27_Documentation"></a>Documentation</h3><pre>
62437dd7cddfSDavid du ColombierFixes bugs:
62447dd7cddfSDavid du Colombier	- The NEWS for 3.26 didn't mention the fact that the stdxxx stream
62457dd7cddfSDavid du Colombierinterface used by MS Windows, OS/2, and Macintosh implementations had
62467dd7cddfSDavid du Colombierchanged.  (NEWS)
62477dd7cddfSDavid du Colombier	- The file public.doc wasn't distributed with the previous fileset.
62487dd7cddfSDavid du Colombier
62497dd7cddfSDavid du ColombierBrings the NeXTSTEP documentation up to date for NeXTSTEP releases 3.2 and
62507dd7cddfSDavid du Colombiersubsequent.  (make.doc)
62517dd7cddfSDavid du Colombier
62523ff48bf5SDavid du Colombier</pre><h3><a name="V3.27_Procedures"></a>Procedures</h3><pre>
62537dd7cddfSDavid du Colombier
62547dd7cddfSDavid du ColombierFixes bugs:
62557dd7cddfSDavid du Colombier	- Some dependency lists in gs.mak were out of date.  (gs.mak)
62567dd7cddfSDavid du Colombier	- A 'fi;' was missing in the Unix install script.  (unix-end.mak)
62577dd7cddfSDavid du Colombier	- There was no VMS build script for the PDF options.  (vms.mak)
62587dd7cddfSDavid du Colombier	- The VMS script used CC_QUALI instead of CC_QUAL in several places.
62597dd7cddfSDavid du Colombier(vms.mak)
62607dd7cddfSDavid du Colombier
62613ff48bf5SDavid du Colombier</pre><h3><a name="V3.27_Utilities"></a>Utilities</h3><pre>
62627dd7cddfSDavid du Colombier
62637dd7cddfSDavid du ColombierFixes bugs:
62647dd7cddfSDavid du Colombier	- ps2epsi's usage prompt referred to "pstoepsi".  (ps2epsi)
62657dd7cddfSDavid du Colombier	- ps2epsi set PATH and LOCALPATH unilaterally.  (ps2epsi)
62667dd7cddfSDavid du Colombier
62677dd7cddfSDavid du ColombierComments out the sample usage line at the end of viewjpeg.ps.  (viewjpeg.ps)
62687dd7cddfSDavid du Colombier
62693ff48bf5SDavid du Colombier</pre><h3><a name="V3.27_Drivers"></a>Drivers</h3><pre>
62707dd7cddfSDavid du Colombier
62717dd7cddfSDavid du ColombierFixes bugs:
62727dd7cddfSDavid du Colombier	- The fax and tiff drivers didn't free all of their working storage.
62737dd7cddfSDavid du Colombier(gdevtfax.c)
62747dd7cddfSDavid du Colombier
62757dd7cddfSDavid du ColombierAdds user-contributed drivers for the BJC 600 and ESC/P printers.
62767dd7cddfSDavid du Colombier(devs.mak, gdevcdj.c)
62777dd7cddfSDavid du Colombier
62783ff48bf5SDavid du Colombier</pre><h3><a name="V3.27_Platforms"></a>Platforms</h3><pre>
62797dd7cddfSDavid du Colombier
62807dd7cddfSDavid du ColombierFixes bugs:
62817dd7cddfSDavid du Colombier	- Some necessary casts of string parameters to (const byte *) were
62827dd7cddfSDavid du Colombieromitted.  (gp_mswin.c, gp_os2.c)
62837dd7cddfSDavid du Colombier
62847dd7cddfSDavid du ColombierAdds the psmono and bit* drivers, and removes the p*m drivers, in the OS/2,
62857dd7cddfSDavid du Colombier32-bit MS-DOS, and 32-bit Windows configurations.  (bcwin32.mak, os2.mak,
62867dd7cddfSDavid du Colombierwatc.mak)
62877dd7cddfSDavid du Colombier
62883ff48bf5SDavid du Colombier</pre><h3><a name="V3.27_Fonts"></a>Fonts</h3><pre>
62897dd7cddfSDavid du Colombier
62907dd7cddfSDavid du ColombierFixes bugs:
62917dd7cddfSDavid du Colombier	- The Fontmap for Ultrix had somehow become slightly incorrect.
62927dd7cddfSDavid du Colombier(Fontmap.Ult)
62937dd7cddfSDavid du Colombier
62947dd7cddfSDavid du ColombierRemoves the font file names from the dependency lists in cfonts.mak.  This
62957dd7cddfSDavid du Colombiermakes cfonts.mak readily usable with any set of fonts, but it also means
62967dd7cddfSDavid du Colombierthat it will always run font2c, rather than being able to avoid this if the
62977dd7cddfSDavid du Colombier.c file is up to date.  (cfonts.mak)
62987dd7cddfSDavid du Colombier
62993ff48bf5SDavid du Colombier</pre><h3><a name="V3.27_Interpreter"></a>Interpreter</h3><pre>
63007dd7cddfSDavid du Colombier
63017dd7cddfSDavid du ColombierFixes bugs:
63027dd7cddfSDavid du Colombier	- Some operators could fail if the stdxxx streams weren't currently
63037dd7cddfSDavid du Colombieropen.  (files.h, zfileio.c, ziodev.c)
63047dd7cddfSDavid du Colombier	- setpagedevice didn't handle unrecognized keys properly.
63057dd7cddfSDavid du Colombier(gs_setpd.ps)
63067dd7cddfSDavid du Colombier	- The value returned for the HWColorMap device parameter was
63077dd7cddfSDavid du Colombierallocated incorrectly, confusing the garbage collector.  (iparam.c)
63087dd7cddfSDavid du Colombier	- Typing ahead at the &gt;&gt;showpage&lt;&lt; prompt no longer caused all
63097dd7cddfSDavid du Colombierfurther pages to be processed without stopping.  (gs_init.ps)
63107dd7cddfSDavid du Colombier	- Setting DEVICEWIDTHPOINTS or DEVICEHEIGHTPOINTS on the command
63117dd7cddfSDavid du Colombierline caused a typecheck.  (gs_init.ps)
63127dd7cddfSDavid du Colombier	- The garbage collector didn't handle halftone threshold arrays
63137dd7cddfSDavid du Colombierproperly.  (zht2.c)
63147dd7cddfSDavid du Colombier	- setdefaulttimeouts caused an error on Level 2 systems.
63157dd7cddfSDavid du Colombier(gs_lev2.ps)
63167dd7cddfSDavid du Colombier	- cvi and cvr weren't equivalent to token followed by a type check.
63177dd7cddfSDavid du Colombier(iscan.h, iscannum.h, iscan.c, iscannum.c, ztoken.c, ztype.c)
63187dd7cddfSDavid du Colombier	- In Level 2 systems, image and colorimage didn't allow 12 bits per
63197dd7cddfSDavid du Colombiersample.  (zpaint.c)
63207dd7cddfSDavid du Colombier	- If debugging was enabled, the garbage collector printed spurious
63217dd7cddfSDavid du Colombiererror messages about the allocator objects not being in a chunk.  (ialloc.c)
63227dd7cddfSDavid du Colombier	- restore didn't reset the count of operator procedures, so the
63237dd7cddfSDavid du Colombieroperator procedure table could fill up.  Fixing this required splitting the
63247dd7cddfSDavid du Colombierop_array_table into a global table and a local table.  (opdef.h, iinit.c,
63257dd7cddfSDavid du Colombieriutil.c, zmisc.c)
63267dd7cddfSDavid du Colombier	- .forgetsave could leave a dangling pointer in the memory manager,
63277dd7cddfSDavid du Colombiercausing an access error.  (ialloc.c, isave.c)
63287dd7cddfSDavid du Colombier	- Freed objects weren't always marked as freed, which could confuse
63297dd7cddfSDavid du Colombierthe memory validator.  (ialloc.c)
63307dd7cddfSDavid du Colombier	- .forgetsave didn't mark inner chunk headers as free, leading to
63317dd7cddfSDavid du Colombieraccess errors.  (isave.c)
63327dd7cddfSDavid du Colombier
63337dd7cddfSDavid du ColombierChanges the representation of operator procedures so that they point
63347dd7cddfSDavid du Colombierdirectly to their definition in the op_array_table.  (iref.h, opdef.h,
63357dd7cddfSDavid du Colombieridebug.c, igc.c, igcref.c, interp.c, zmisc.c)
63367dd7cddfSDavid du Colombier
63377dd7cddfSDavid du ColombierRemoves .makeglobaloperator.  (zmisc.c)
63387dd7cddfSDavid du Colombier
63397dd7cddfSDavid du ColombierAdds patches to discard some common garbage produced by H-P-oriented
63407dd7cddfSDavid du Colombierapplications and drivers.  (gs_init.ps)
63417dd7cddfSDavid du Colombier
63427dd7cddfSDavid du ColombierChanges the &gt;&gt;showpage&lt;&lt; prompt so that if the input reaches EOF, the
63437dd7cddfSDavid du Colombierinterpreter still stops after the next &gt;&gt;showpage&lt;&lt;, rather than processing
63447dd7cddfSDavid du Colombierall subsequent pages.  This is a consequence of the bug fix that
63457dd7cddfSDavid du Colombierautomatically reopens the stdxxx files.
63467dd7cddfSDavid du Colombier
63477dd7cddfSDavid du ColombierAdds an optional dictionary parameter for the RunLengthEncode/Decode
63487dd7cddfSDavid du Colombierfilters, to allow specifying EndOfData.  The default is true.  (zfilter.c)
63497dd7cddfSDavid du Colombier
63507dd7cddfSDavid du ColombierAdds ByteTranslateEncode/Decode filters.  (zfilter2.c)
63517dd7cddfSDavid du Colombier
63523ff48bf5SDavid du Colombier</pre><h3><a name="V3.27_Streams"></a>Streams</h3><pre>
63537dd7cddfSDavid du Colombier
63547dd7cddfSDavid du ColombierFixes bugs:
63557dd7cddfSDavid du Colombier	- The K &gt; 0 option of the CCITTFaxDecode filter switched back to 2-D
63567dd7cddfSDavid du Colombierencoding if an output buffer boundary fell in the middle of a 1-D line, and
63577dd7cddfSDavid du Colombiersignalled an error if an input buffer boundary fell in the middle of an EOL.
63587dd7cddfSDavid du Colombier(scfd.c)
63597dd7cddfSDavid du Colombier
63607dd7cddfSDavid du ColombierAdds an EndOfData flag to the RunLengthEncode/Decode filters.  If true, RLE
63617dd7cddfSDavid du Colombiergenerates 128 as EOD, and RLD recognizes it; if false, RLE does not mark
63627dd7cddfSDavid du ColombierEOD, and RLD ignores 128.  (srlx.h, gxclist.c, gxclread.c, sfilter1.c)
63637dd7cddfSDavid du Colombier
63647dd7cddfSDavid du ColombierAdds ByteTranslateEncode/Decode streams.  (sbtx.h, sfilter2.c)
63657dd7cddfSDavid du Colombier
63663ff48bf5SDavid du Colombier</pre><h3><a name="V3.27_Library"></a>Library</h3><pre>
63677dd7cddfSDavid du Colombier
63687dd7cddfSDavid du ColombierFixes bugs:
63697dd7cddfSDavid du Colombier	- There were some mismatches between char * and byte * values.
63707dd7cddfSDavid du Colombier(gsdparam.c)
63717dd7cddfSDavid du Colombier	- Failure to round a scaling coordinate caused one-for-one
63727dd7cddfSDavid du Colombierblack-and-white images to render slower than they should.  (gsimage.c)
63737dd7cddfSDavid du Colombier	- Setting PageSize without setting HWResolution could cause an
63747dd7cddfSDavid du Colombierinvalid memory access.  (gsdparam.c)
63757dd7cddfSDavid du Colombier	- The garbage collector didn't handle halftone threshold arrays
63767dd7cddfSDavid du Colombierproperly.  (gxht.h, gsht.c, gsht1.c)
63777dd7cddfSDavid du Colombier
63783ff48bf5SDavid du Colombier</pre>
63797dd7cddfSDavid du Colombier
63803ff48bf5SDavid du Colombier<h2><a name="Version3.26"></a>Version 3.26 (beta) (2/1/95)</h2>
63813ff48bf5SDavid du Colombier
63823ff48bf5SDavid du Colombier<p>
63837dd7cddfSDavid du ColombierYet another bug-fix beta release, still not ready for public release.
63847dd7cddfSDavid du Colombier
63853ff48bf5SDavid du Colombier<h3><a name="V3.26_Documentation"></a>Documentation</h3><pre>
63867dd7cddfSDavid du ColombierFixes bugs:
63877dd7cddfSDavid du Colombier	- The description of device properties had gotten out of sync with
63887dd7cddfSDavid du Colombierthe code.  (language.doc)
63897dd7cddfSDavid du Colombier
63907dd7cddfSDavid du ColombierSplits off documentation specific to the Aladdin (non-GNU) release into a
63917dd7cddfSDavid du Colombierseparate file.  (readme, public.doc, unix-end.mak)
63927dd7cddfSDavid du Colombier
63937dd7cddfSDavid du ColombierAdds a pointer to a collection of other free fonts (including some Cyrillic
63947dd7cddfSDavid du Colombierones) available on the net.  (public.doc)
63957dd7cddfSDavid du Colombier
63963ff48bf5SDavid du Colombier</pre><h3><a name="V3.26_Procedures"></a>Procedures</h3><pre>
63977dd7cddfSDavid du Colombier
63987dd7cddfSDavid du ColombierFixes bugs:
63997dd7cddfSDavid du Colombier	- On VMS systems with both VAX C and DEC C installed, the build script
64007dd7cddfSDavid du Colombierused VAX C rather than DEC C.  (vms.mak)
64017dd7cddfSDavid du Colombier	- zfdecode.c didn't have a build rule.  (gs.mak)
64027dd7cddfSDavid du Colombier	- Several macros in the makefile were used before they were defined.
64037dd7cddfSDavid du Colombier(gs.mak)
64047dd7cddfSDavid du Colombier	- Several macros in the makefile were used without being defined.
64057dd7cddfSDavid du Colombier(gs.mak)
64067dd7cddfSDavid du Colombier
64077dd7cddfSDavid du ColombierReplaces the gssetdev, gssetmod, and gsaddmod scripts with more variants of
64087dd7cddfSDavid du Colombierechogs.  (echogs.c, gs.mak)
64097dd7cddfSDavid du Colombier
64103ff48bf5SDavid du Colombier</pre><h3><a name="V3.26_Utilities"></a>Utilities</h3><pre>
64117dd7cddfSDavid du Colombier
64127dd7cddfSDavid du ColombierFixes bugs:
64137dd7cddfSDavid du Colombier	- The ps2ascii shell script passed a -f flag to the shell, which not
64147dd7cddfSDavid du Colombierall shells recognize.  (ps2ascii)
64157dd7cddfSDavid du Colombier
64163ff48bf5SDavid du Colombier</pre><h3><a name="V3.26_Drivers"></a>Drivers</h3><pre>
64177dd7cddfSDavid du Colombier
64187dd7cddfSDavid du ColombierFixes bugs:
64197dd7cddfSDavid du Colombier	- Due to a typo in an initialization string, the H-P printers didn't
64207dd7cddfSDavid du Colombierreset the top margin to zero.  (gdevdjet.c)
64217dd7cddfSDavid du Colombier
64227dd7cddfSDavid du ColombierAdds InputAttributes and OutputAttributes entries to the H-P drivers.  (This
64237dd7cddfSDavid du Colombiershould probably be generic to all printers.)  (gdevdjet.c)
64247dd7cddfSDavid du Colombier
64257dd7cddfSDavid du ColombierReplaces the contributed Epson Stylus Color driver with a newer version.
64267dd7cddfSDavid du Colombier(devices.doc, gdevstc.c)
64277dd7cddfSDavid du Colombier
64283ff48bf5SDavid du Colombier</pre><h3><a name="V3.26_Platforms"></a>Platforms</h3><pre>
64297dd7cddfSDavid du Colombier
64307dd7cddfSDavid du ColombierFixes bugs:
64317dd7cddfSDavid du Colombier	- DEC C complained about 'abs' and 'exit' not being declared.  (x_.h)
64327dd7cddfSDavid du Colombier	- gp_mswin.c and gp_os2.c wouldn't compile.  (gp_mswin.c, gp_os2.c,
64337dd7cddfSDavid du Colombierziodev.c)
64347dd7cddfSDavid du Colombier
64353ff48bf5SDavid du Colombier</pre><h3><a name="V3.26_Interpreter"></a>Interpreter</h3><pre>
64367dd7cddfSDavid du Colombier
64377dd7cddfSDavid du ColombierFixes bugs:
64387dd7cddfSDavid du Colombier	- The default CIE rendering dictionary gave everything a magenta tint.
64397dd7cddfSDavid du Colombier(gs_lev2.ps)
64407dd7cddfSDavid du Colombier	- Changing HWResolution and PageSize in the same call of
64417dd7cddfSDavid du Colombiersetpagedevice produced an incorrect HWSize.  (gsdparam.c)
64427dd7cddfSDavid du Colombier	- .putdeviceparams didn't accept all the keys that .getdeviceparams
64437dd7cddfSDavid du Colombierreturned.  (gsdparam.c)
64447dd7cddfSDavid du Colombier	- The default handler for interrupt and timeout errors didn't push a
64457dd7cddfSDavid du Colombiercurrent object (command) on the stack.  (gs_init.ps)
64467dd7cddfSDavid du Colombier	- The garbage collector didn't handle strings larger than 64K
64477dd7cddfSDavid du Colombierproperly.  (iastate.h, ialloc.c, igcstr.c)
64487dd7cddfSDavid du Colombier
64497dd7cddfSDavid du ColombierAdds media matching and Policy consultation to the implementation of
64507dd7cddfSDavid du Colombiersetpagedevice.  (gs_setpd.ps)
64517dd7cddfSDavid du Colombier
64527dd7cddfSDavid du ColombierAdds a MaxGlobalVM system parameter.  (zmisc2.c)
64537dd7cddfSDavid du Colombier
64543ff48bf5SDavid du Colombier</pre><h3><a name="V3.26_Streams"></a>Streams</h3><pre>
64557dd7cddfSDavid du Colombier
64567dd7cddfSDavid du ColombierFixes bugs:
64577dd7cddfSDavid du Colombier	- The CCITTFaxEncode filter could access a byte beyond the end of
64587dd7cddfSDavid du Colombierthe allocated area.  (scfe.c)
64597dd7cddfSDavid du Colombier	- The CCITTFaxDecode filter could get an ioerror if a buffer
64607dd7cddfSDavid du Colombierboundary fell in exactly the wrong place.  (scfd.c)
64617dd7cddfSDavid du Colombier
64623ff48bf5SDavid du Colombier</pre><h3><a name="V3.26_Library"></a>Library</h3><pre>
64637dd7cddfSDavid du Colombier
64647dd7cddfSDavid du ColombierFixes bugs:
64657dd7cddfSDavid du Colombier	- The garbage collector didn't trace colored halftones properly.
64667dd7cddfSDavid du Colombier(gzht.h)
64677dd7cddfSDavid du Colombier	- The garbage collector didn't relocate the bitmap pointers in
64687dd7cddfSDavid du Colombierhalftone caches properly.  (gzht.h, gxht.c)
64697dd7cddfSDavid du Colombier
64707dd7cddfSDavid du ColombierAdds the ability to transmit dictionaries through the param_list mechanism
64717dd7cddfSDavid du Colombier(specifically, as device parameters).  This change is
64727dd7cddfSDavid du Colombiernon-backward-compatible only for implementors of parameter lists, which only
64737dd7cddfSDavid du Colombierexist within the Ghostscript core.  (gsparam.h, iparam.h, iparam.c)
64747dd7cddfSDavid du Colombier
64757dd7cddfSDavid du ColombierRemoves the InitialMatrix device property.  (gsdparam.c)
64767dd7cddfSDavid du Colombier
64773ff48bf5SDavid du Colombier</pre>
64787dd7cddfSDavid du Colombier
64793ff48bf5SDavid du Colombier<h2><a name="Version3.25"></a>Version 3.25 (beta) (1/24/95)</h2>
64803ff48bf5SDavid du Colombier
64813ff48bf5SDavid du Colombier<p>
64827dd7cddfSDavid du ColombierYet another bug-fix beta release.  There are still at least half a dozen
64837dd7cddfSDavid du Colombiersignificant known bugs to be fixed before a public release.
64847dd7cddfSDavid du Colombier
64853ff48bf5SDavid du Colombier<h3><a name="V3.25_Documentation"></a>Documentation</h3><pre>
64867dd7cddfSDavid du ColombierNotes that on Unix systems, one should not edit 'makefile', but should edit
64877dd7cddfSDavid du Colombierthe individual subfile and run tar_cat.  THIS IS A NON-BACKWARD-COMPATIBLE
64887dd7cddfSDavid du ColombierCHANGE.  (make.doc)
64897dd7cddfSDavid du Colombier
64907dd7cddfSDavid du ColombierAdds information on the Macintosh implementation.  (readme)
64917dd7cddfSDavid du Colombier
64923ff48bf5SDavid du Colombier</pre><h3><a name="V3.25_Procedures"></a>Procedures</h3><pre>
64937dd7cddfSDavid du ColombierFixes bugs:
64947dd7cddfSDavid du Colombier	- make clean failed on Unix systems where rm -f requires at least one
64957dd7cddfSDavid du Colombierfile name.  (gs.mak)
64967dd7cddfSDavid du Colombier	- math_.h was omitted from many dependency lists.  (gs.mak)
64977dd7cddfSDavid du Colombier
64983ff48bf5SDavid du Colombier</pre><h3><a name="V3.25_Drivers"></a>Drivers</h3><pre>
64997dd7cddfSDavid du Colombier
65007dd7cddfSDavid du ColombierFixes bugs:
65017dd7cddfSDavid du Colombier	- The X Windows and MS Windows draw-line routines couldn't possibly
65027dd7cddfSDavid du Colombierproduce sufficiently correct output (since the interface only provides integer
65037dd7cddfSDavid du Colombiercoordinates).  (gdevx.c, gdevwddb.c)
65047dd7cddfSDavid du Colombier
65057dd7cddfSDavid du ColombierIn response to patent-related actions by Unisys and CompuServe, removes the
65067dd7cddfSDavid du ColombierGIF driver.  (*.mak)
65077dd7cddfSDavid du Colombier
65087dd7cddfSDavid du ColombierChanges dci_std_color (and std_device_std_color_* and prn_device_std_*) so
65097dd7cddfSDavid du Colombierthat if the number of bits per pixel is 32, the device is defined as CMYK
65107dd7cddfSDavid du Colombierrather than RGB.  (gxdevice.h)
65117dd7cddfSDavid du Colombier
65127dd7cddfSDavid du ColombierRemoves the tseng8 device, which is no longer useful.  (devs.mak, gdevsvga.c)
65137dd7cddfSDavid du Colombier
65147dd7cddfSDavid du ColombierAdds pseudo-alpha support to the SVGA drivers, via the TextAlphaBits and
65157dd7cddfSDavid du ColombierGraphicsAlphaBits device parameters.  (gdevsvga.h, gdevsvga.c)
65167dd7cddfSDavid du Colombier
65177dd7cddfSDavid du ColombierAdds a user-contributed driver for the Epson Stylus Color printer.  (devs.mak,
65187dd7cddfSDavid du Colombiergdevstc.c, devices.doc)
65197dd7cddfSDavid du Colombier
65203ff48bf5SDavid du Colombier</pre><h3><a name="V3.25_Platforms"></a>Platforms</h3><pre>
65217dd7cddfSDavid du Colombier
65227dd7cddfSDavid du ColombierFixes bugs:
65237dd7cddfSDavid du Colombier	- The VMS build scripts had gotten out of sync (again).  (vms*.mak)
65247dd7cddfSDavid du Colombier
65253ff48bf5SDavid du Colombier</pre><h3><a name="V3.25_Interpreter"></a>Interpreter</h3><pre>
65267dd7cddfSDavid du Colombier
65277dd7cddfSDavid du ColombierFixes bugs:
65287dd7cddfSDavid du Colombier	- The emulator name array was incorrectly declared const in one place.
65297dd7cddfSDavid du Colombier(gs.c)
65307dd7cddfSDavid du Colombier	- A closed file could incorrectly appear to be 'eq' to another file
65317dd7cddfSDavid du Colombier(open or closed).  (iutil.c)
65327dd7cddfSDavid du Colombier	- If %stdin/%stdout/%stderr was ever closed, it couldn't be
65337dd7cddfSDavid du Colombierreopened.  (gs_btokn.ps, gs_init.ps, files.h, zfile.c, zfileio.c, zfilter.c,
65347dd7cddfSDavid du Colombierzfproc.c, ziodev.c)
65357dd7cddfSDavid du Colombier
65367dd7cddfSDavid du ColombierChanges (almost) all the operator routines to 'static'.  (z*.c)
65377dd7cddfSDavid du Colombier
65383ff48bf5SDavid du Colombier</pre><h3><a name="V3.25_Library"></a>Library</h3><pre>
65397dd7cddfSDavid du Colombier
65407dd7cddfSDavid du ColombierFixes bugs:
65417dd7cddfSDavid du Colombier	- The raster value for replicated tiles in the halftone cache was
65427dd7cddfSDavid du Colombierincorrect, causing unaligned memory accesses.  (gxht.c)
65437dd7cddfSDavid du Colombier	- stroke and strokepath could produce slightly inaccurate output
65447dd7cddfSDavid du Colombier(leading to slight visible anomalies) as a result of stroke adjustment.
65457dd7cddfSDavid du Colombier(gxstroke.c)
65467dd7cddfSDavid du Colombier	- Attempting to draw an arc with zero radius could cause a numeric
65477dd7cddfSDavid du Colombierexception.  (gspath1.c)
65487dd7cddfSDavid du Colombier	- Setting the Orientation of a device to null resulted in actually
65497dd7cddfSDavid du Colombiersetting it to a random value.  (gsdparam.c)
65507dd7cddfSDavid du Colombier	- charpath, stringwidth, and cshow attempted to remap the current
65517dd7cddfSDavid du Colombiercolor unnecessarily.  (gschar.c)
65527dd7cddfSDavid du Colombier
65537dd7cddfSDavid du ColombierAdds the ability to trace calls on the sqrt function (and possibly other math
65547dd7cddfSDavid du Colombierfunctions in the future.)  (math_.h, gsmisc.c)
65557dd7cddfSDavid du Colombier
65567dd7cddfSDavid du ColombierAdds additional interrupt checks in the banding code.  (gxclist.c, gxclread.c)
65577dd7cddfSDavid du Colombier
65583ff48bf5SDavid du Colombier</pre>
65597dd7cddfSDavid du Colombier
65603ff48bf5SDavid du Colombier<h2><a name="Version3.24"></a>Version 3.24 (beta) (1/17/95)</h2>
65613ff48bf5SDavid du Colombier
65623ff48bf5SDavid du Colombier<p>
65637dd7cddfSDavid du ColombierThis was supposed to be a public release, but too many bugs showed up in 3.23,
65647dd7cddfSDavid du Colombierso this is another bug-fix beta release.  This is the first release with a
65657dd7cddfSDavid du Colombierworking PDF reader.
65667dd7cddfSDavid du Colombier
65673ff48bf5SDavid du Colombier<h3><a name="V3.24_Documentation"></a>Documentation</h3><pre>
65687dd7cddfSDavid du ColombierNotes that Solaris requires using installbsd instead of install.  (make.doc)
65697dd7cddfSDavid du Colombier
65703ff48bf5SDavid du Colombier</pre><h3><a name="V3.24_Procedures"></a>Procedures</h3><pre>
65717dd7cddfSDavid du Colombier
65727dd7cddfSDavid du ColombierChanges 'make mostlyclean' so that it doesn't delete the Ghostscript
65737dd7cddfSDavid du Colombierexecutable (but deletes everything else that 'make clean' does).  (gs.mak)
65747dd7cddfSDavid du Colombier
65757dd7cddfSDavid du ColombierChanges the link list generator so it eliminates duplicate library requests.
65767dd7cddfSDavid du Colombier(genconf.c)
65777dd7cddfSDavid du Colombier
65787dd7cddfSDavid du ColombierFactors the interpreter further so as to include less unnecessary PostScript
65797dd7cddfSDavid du Colombiersupport in the PDF interpreter.  (gs.mak, zpath.c, zpath1.c)
65807dd7cddfSDavid du Colombier
65817dd7cddfSDavid du ColombierAdds a printout of the available language interpreters to the -h message.
65827dd7cddfSDavid du Colombier(genconf.c, gs.c, iinit.c, gs.mak)
65837dd7cddfSDavid du Colombier
65843ff48bf5SDavid du Colombier</pre><h3><a name="V3.24_Drivers"></a>Drivers</h3><pre>
65857dd7cddfSDavid du Colombier
65867dd7cddfSDavid du ColombierFixes bugs:
65877dd7cddfSDavid du Colombier	- The alternate X drivers used a cast in an initializer, causing a
65887dd7cddfSDavid du Colombiercompilation error on some platforms.  (gdevxalt.c)
65897dd7cddfSDavid du Colombier
65907dd7cddfSDavid du ColombierAdds a driver for the LaserJet IIID, including duplex printing if specified by
65917dd7cddfSDavid du Colombierthe Duplex page device parameter.  (gdevdjet.c)
65927dd7cddfSDavid du Colombier
65937dd7cddfSDavid du ColombierAdds Orientation to the bit device.  (gdevbit.c)
65947dd7cddfSDavid du Colombier
65953ff48bf5SDavid du Colombier</pre><h3><a name="V3.24_Platforms"></a>Platforms</h3><pre>
65967dd7cddfSDavid du Colombier
65977dd7cddfSDavid du ColombierFixes bugs:
65987dd7cddfSDavid du Colombier	- There was an extraneous pfen-&gt; in the NT file system module, causing
65997dd7cddfSDavid du Colombiera compilation error.  (gp_ntfs.c)
66007dd7cddfSDavid du Colombier	- The DLL code referred to an obsolete symbol a_foreign.  (gsdll.c)
66017dd7cddfSDavid du Colombier	- The VMS build scripts omitted the LaserJet 4 driver.  (vms-*.mak)
66027dd7cddfSDavid du Colombier	- The VMS build scripts had several other minor errors.  (vms.mak)
66037dd7cddfSDavid du Colombier
66043ff48bf5SDavid du Colombier</pre><h3><a name="V3.24_Fonts"></a>Fonts</h3><pre>
66057dd7cddfSDavid du Colombier
66067dd7cddfSDavid du ColombierFixes bugs:
66077dd7cddfSDavid du Colombier	- Defining a font alias in global VM with a name that was a string in
66087dd7cddfSDavid du Colombierlocal VM caused an error.  (gs_fonts.ps)
66097dd7cddfSDavid du Colombier	- The font compiler referred to an obsolete symbol a_foreign.
66107dd7cddfSDavid du Colombier(font2c.ps)
66117dd7cddfSDavid du Colombier
66123ff48bf5SDavid du Colombier</pre><h3><a name="V3.24_Interpreter"></a>Interpreter</h3><pre>
66137dd7cddfSDavid du Colombier
66147dd7cddfSDavid du ColombierFixes bugs:
66157dd7cddfSDavid du Colombier	- There was an extraneous '#' before an extern declaration.
66167dd7cddfSDavid du Colombier(gsmain.c)
66177dd7cddfSDavid du Colombier	- The interpreter could (incorrectly) attempt to expand the e-stack.
66187dd7cddfSDavid du Colombier(istack.h, interp.c, istack.c)
66197dd7cddfSDavid du Colombier	- zfproc.c called memcpy but didn't include memory_.h.  (zfproc.c)
66207dd7cddfSDavid du Colombier	- A garbage collection occurring within a 'save' would often smash
66217dd7cddfSDavid du Colombiermemory.  (igc.c)
66227dd7cddfSDavid du Colombier	- If the last character returned by the procedure of a procedure-based
66237dd7cddfSDavid du Colombierfilter was \r, readline could get an endless loop.  (zfileio.c)
66247dd7cddfSDavid du Colombier	- Saving a change to a ref member of a structure confused the garbage
66257dd7cddfSDavid du Colombiercollector.  (isave.h, isave.c, zdict.c)
66267dd7cddfSDavid du Colombier	- The -Zu debugging printout could cause an access error under rare
66277dd7cddfSDavid du Colombiercircumstances.  (isave.c)
66287dd7cddfSDavid du Colombier	- Save objects could get allocated in global VM, causing dangling
66297dd7cddfSDavid du Colombierreferences.  (zvmem.c)
66307dd7cddfSDavid du Colombier	- The vmsave object created by the interpreter for a save didn't get
66317dd7cddfSDavid du Colombierfreed properly if the memory manager created an invisible save level, which
66327dd7cddfSDavid du Colombiercould cause the next garbage collection to crash.  (zvmem.c)
66337dd7cddfSDavid du Colombier	- 'run' always printed an error message, rather than letting the
66347dd7cddfSDavid du Colombiertop-level control loop do it.  (gs.c, gs_init.ps)
66357dd7cddfSDavid du Colombier
66367dd7cddfSDavid du ColombierAdds support for duplex devices.  (gxdevice.h, gsdparam.c, gs_statd.ps,
66377dd7cddfSDavid du Colombiergs_setpd.ps)
66387dd7cddfSDavid du Colombier
66397dd7cddfSDavid du ColombierAdds the beginnings of support for CID-keyed fonts.  (gs_cidfn.ps)
66407dd7cddfSDavid du Colombier
66417dd7cddfSDavid du ColombierChanges the format of the stack dump printed for errors, to make it easier to
66427dd7cddfSDavid du Colombierread.  (gs_init.ps)
66437dd7cddfSDavid du Colombier
66443ff48bf5SDavid du Colombier</pre><h3><a name="V3.24_Interpreter_PostScript"></a>Interpreter (PostScript)</h3><pre>
66457dd7cddfSDavid du Colombier
66467dd7cddfSDavid du ColombierFixes bugs:
66477dd7cddfSDavid du Colombier	- The .local/global allocation operators always allocated in system
66487dd7cddfSDavid du ColombierVM.  (zsysvm.c)
66497dd7cddfSDavid du Colombier	- setpage[params] caused an error.  (gs_lev2.ps)
66507dd7cddfSDavid du Colombier	- If an error occurred during a cshow or (x|y|xy)show, the interpreter
66517dd7cddfSDavid du Colombierfreed the enumerator twice.  (zchar.c, zchar2.c)
66527dd7cddfSDavid du Colombier
66537dd7cddfSDavid du ColombierChanges setpageparams so that orientation = 0 means portrait.  This is not
66547dd7cddfSDavid du Colombiercompatible with AGFA's convention for roll-feed devices, but it is compatible
66557dd7cddfSDavid du Colombierwith the more common cut-sheet printers.  (gs_statd.ps)
66567dd7cddfSDavid du Colombier
66577dd7cddfSDavid du ColombierAdds meaningful values for the Emulator resource.  (gsmain.c, gs_res.ps)
66587dd7cddfSDavid du Colombier
66597dd7cddfSDavid du ColombierMakes -Z? validate the state of memory before and after save and restore.
66607dd7cddfSDavid du Colombier(ialloc.h, igc.h, ialloc.c, igc.c, ilocate.c, zvmem.c)
66617dd7cddfSDavid du Colombier
66623ff48bf5SDavid du Colombier</pre><h3><a name="V3.24_Interpreter_PDF"></a>Interpreter (PDF)</h3><pre>
66637dd7cddfSDavid du Colombier
66647dd7cddfSDavid du ColombierFixes bugs:
66657dd7cddfSDavid du Colombier	- The Unix install script didn't install the PDF files if they were
66667dd7cddfSDavid du Colombierpresent.  (unix-end.mak)
66677dd7cddfSDavid du Colombier	- PDF to PostScript conversion didn't work at all.  (It still doesn't
66687dd7cddfSDavid du Colombierwork very well.)  (pdf_2ps.ps, pdf_main.ps)
66697dd7cddfSDavid du Colombier	- Images with an Indexed color space and no Decode entry caused an
66707dd7cddfSDavid du Colombiererror.  (pdf_draw.ps)
66717dd7cddfSDavid du Colombier	- The 'Page &lt;n&gt;' messages were printed even if QUIET was set.
66727dd7cddfSDavid du Colombier(pdf_main.ps)
66737dd7cddfSDavid du Colombier
66747dd7cddfSDavid du ColombierChanges the interpreter so that when it encounters an unknown operator, it
66757dd7cddfSDavid du Colombierprints an error message and continues, rather than signalling an error.
66767dd7cddfSDavid du Colombier(pdf_base.ps)
66777dd7cddfSDavid du Colombier
66787dd7cddfSDavid du ColombierMakes F a synonym for f if there is nothing on the operand stack, to
66797dd7cddfSDavid du Colombiercompensate for a bug in some Adobe software.  (pdf_base.ps)
66807dd7cddfSDavid du Colombier
66817dd7cddfSDavid du ColombierChanges pdfgetpage so it uses 1-origin rather than 0-origin indexing.  THIS IS
66827dd7cddfSDavid du ColombierA NON-BACKWARD-COMPATIBLE CHANGE.  (pdf_main.ps)
66837dd7cddfSDavid du Colombier
66843ff48bf5SDavid du Colombier</pre><h3><a name="V3.24_Streams"></a>Streams</h3><pre>
66857dd7cddfSDavid du Colombier
66867dd7cddfSDavid du ColombierFixes bugs:
66877dd7cddfSDavid du Colombier	- The Group 3 2-D and Group 4 encoders produced incorrect output if a
66887dd7cddfSDavid du Colombierscan line beginning with a black pixel was followed by a scan line beginning
66897dd7cddfSDavid du Colombierwith a white pixel.  (scfe.c)
66907dd7cddfSDavid du Colombier	- A SubFileDecode filter with a count of 1 and a non-empty EOD string
66917dd7cddfSDavid du Colombierwould smash memory.  (sfilter1.c)
66927dd7cddfSDavid du Colombier
66937dd7cddfSDavid du ColombierUpdates the DCT filters so they will work with the latest version (5a) of the
66947dd7cddfSDavid du ColombierIJG library.  (*.mak, jpeg.mak, sjpegerr.c)
66957dd7cddfSDavid du Colombier
66963ff48bf5SDavid du Colombier</pre><h3><a name="V3.24_Library"></a>Library</h3><pre>
66977dd7cddfSDavid du Colombier
66987dd7cddfSDavid du ColombierFixes bugs:
66997dd7cddfSDavid du Colombier	- A call with integer parameters to a procedure with floating point
67007dd7cddfSDavid du Colombierarguments didn't work on non-ANSI compilers.  (gsimage.c)
67017dd7cddfSDavid du Colombier	- Arcs could get turned into polygons if the scaling values in the CTM
67027dd7cddfSDavid du Colombierwere very large and the radius was (in user space coordinates) very small.
67037dd7cddfSDavid du Colombier(gspath.c)
67047dd7cddfSDavid du Colombier	- The current point was defined when a BuildChar procedure was called.
67057dd7cddfSDavid du Colombier(This bug was documented as fixed in version 2.2!)  (gschar.c)
67067dd7cddfSDavid du Colombier
67077dd7cddfSDavid du ColombierAdds support for Orientation and Duplex page device parameters, for those
67087dd7cddfSDavid du Colombierdevices that support these.  (gdevprn.h, gxdevice.h, gsdevice.c, gsdparam.c)
67097dd7cddfSDavid du Colombier
67103ff48bf5SDavid du Colombier</pre>
67117dd7cddfSDavid du Colombier
67123ff48bf5SDavid du Colombier<h2><a name="Version3.23"></a>Version 3.23 (beta) (1/5/95)</h2>
67133ff48bf5SDavid du Colombier
67143ff48bf5SDavid du Colombier<p>
67157dd7cddfSDavid du ColombierThis is almost entirely a bug fix release.  It also includes a largely working
67167dd7cddfSDavid du ColombierPDF reader.  This is intended as the beta test release for the next public
67177dd7cddfSDavid du Colombierrelease.
67187dd7cddfSDavid du Colombier
67193ff48bf5SDavid du Colombier<h3><a name="V3.23_Documentation"></a>Documentation</h3><pre>
67207dd7cddfSDavid du ColombierFixes bugs:
67217dd7cddfSDavid du Colombier	- COPYLEFT, COPYING, NEWS, PUBLIC, README, and the standard Fontmap
67227dd7cddfSDavid du Colombierwere omitted from the 3.22 fileset.
67237dd7cddfSDavid du Colombier
67247dd7cddfSDavid du ColombierDocuments the use of the -oldc switch to work around a compiler crash on
67257dd7cddfSDavid du Colombierthe DECstation.
67267dd7cddfSDavid du Colombier
67277dd7cddfSDavid du ColombierExpands and clarifies the documentation for building the DesqView/X version
67287dd7cddfSDavid du Colombierwith djgcc.  (make.doc)
67297dd7cddfSDavid du Colombier
67307dd7cddfSDavid du ColombierAdds documentation on the "600x300" H-P inkjet printers, explaining why
67317dd7cddfSDavid du Colombierthis alleged higher resolution is not available.  (devices.doc)
67327dd7cddfSDavid du Colombier
67337dd7cddfSDavid du ColombierAdds to the PUBLIC license a warning that it is not a GNU License, and a
67347dd7cddfSDavid du Colombierrequirement to include a copy of or a pointer to the License in any written
67357dd7cddfSDavid du Colombiermaterial.  (PUBLIC)
67367dd7cddfSDavid du Colombier
67377dd7cddfSDavid du ColombierDocuments the fact that Ghostscript *does* attempt to look up files in the
67387dd7cddfSDavid du Colombiercurrent directory first.  (use.doc)
67397dd7cddfSDavid du Colombier
67403ff48bf5SDavid du Colombier</pre><h3><a name="V3.23_Procedures"></a>Procedures</h3><pre>
67417dd7cddfSDavid du Colombier
67427dd7cddfSDavid du ColombierFixes bugs:
67437dd7cddfSDavid du Colombier	- In VMS.MAK, .JPEG should have been changed to .JPEG-5 in a few
67447dd7cddfSDavid du Colombierplaces.  (vms.mak)
67457dd7cddfSDavid du Colombier
67467dd7cddfSDavid du ColombierAdds the pjxl300 driver to all configurations that include the other color
67477dd7cddfSDavid du ColombierDeskJet drivers.  Replaces pjet and pjetxl with pj and pjxl.  (*.mak)
67487dd7cddfSDavid du Colombier
67497dd7cddfSDavid du ColombierMakes 'run' recognize PDF files if the PDF reader is included.
67507dd7cddfSDavid du Colombier(pdf_main.ps)
67517dd7cddfSDavid du Colombier
67523ff48bf5SDavid du Colombier</pre><h3><a name="V3.23_Utilities"></a>Utilities</h3><pre>
67537dd7cddfSDavid du Colombier
67547dd7cddfSDavid du ColombierFixes bugs:
67557dd7cddfSDavid du Colombier	- viewjpeg.ps needed the test for languagelevel = 2 at the
67567dd7cddfSDavid du Colombierbeginning of the file.  (viewjpeg.ps)
67577dd7cddfSDavid du Colombier	- prfont.ps used 'min', which isn't a standard PostScript operator.
67587dd7cddfSDavid du Colombier(prfont.ps)
67597dd7cddfSDavid du Colombier	- prfont.ps created Encoding vectors that weren't 256 elements
67607dd7cddfSDavid du Colombierlong.  (prfont.ps)
67617dd7cddfSDavid du Colombier
67627dd7cddfSDavid du ColombierAdds the gsdj500 script to the installation list.  (unix-end.mak)
67637dd7cddfSDavid du Colombier
67647dd7cddfSDavid du ColombierChanges the Unix "line printer" shell scripts to add the date to the page
67657dd7cddfSDavid du Colombierheader.  (gsbj, gsdj, gsdj500, gslj)
67667dd7cddfSDavid du Colombier
67677dd7cddfSDavid du ColombierChanges ansi2knr so that it will work properly on systems where the ctype
67687dd7cddfSDavid du Colombiermacros don't handle 8-bit characters correctly.  (ansi2knr.c)
67697dd7cddfSDavid du Colombier
67703ff48bf5SDavid du Colombier</pre><h3><a name="V3.23_Drivers"></a>Drivers</h3><pre>
67717dd7cddfSDavid du Colombier
67727dd7cddfSDavid du ColombierFixes bugs:
67737dd7cddfSDavid du Colombier	- Some compilers don't allow casts in initialization expressions.
67747dd7cddfSDavid du Colombier(gdevx.c, gdevxalt.c)
67757dd7cddfSDavid du Colombier	- The cdj drivers didn't initialize the color_info structure
67767dd7cddfSDavid du Colombierproperly.  (gdevcdj.c)
67777dd7cddfSDavid du Colombier
67787dd7cddfSDavid du ColombierAdds another alternate X Windows driver, x11mono, that is a black-and-white
67797dd7cddfSDavid du Colombierdevice.  (devs.mak, gdevxalt.c)
67807dd7cddfSDavid du Colombier
67817dd7cddfSDavid du ColombierAdds a user-contributed driver for the Apple Imagewriter LQ.  (devs.mak,
67827dd7cddfSDavid du Colombiergdevadmp.c)
67837dd7cddfSDavid du Colombier
67843ff48bf5SDavid du Colombier</pre><h3><a name="V3.23_Platforms"></a>Platforms</h3><pre>
67857dd7cddfSDavid du Colombier
67867dd7cddfSDavid du ColombierFixes bugs:
67877dd7cddfSDavid du Colombier	- The VMS MODULES.LIS file had gotten out of sync with the makefile
67887dd7cddfSDavid du Colombier(again); GDEVABUF and GSBITOPS were missing.  (modules.lis)
67897dd7cddfSDavid du Colombier	- The VMS script file had gotten out of sync with the makefile
67907dd7cddfSDavid du Colombier(again).  (vms.mak)
67917dd7cddfSDavid du Colombier	- The MS Windows platform code didn't recognize Windows 95 (Windows
67927dd7cddfSDavid du Colombier4.0) as equivalent to Windows NT.  (gp_mswin.c)
67937dd7cddfSDavid du Colombier	- File name enumeration didn't work on OS/2 or win32.  (gp_ntfs.c,
67947dd7cddfSDavid du Colombiergp_os2.c)
67957dd7cddfSDavid du Colombier	- -sOutputFile= didn't work under MS Windows.  (gp_mswin.c)
67967dd7cddfSDavid du Colombier
67977dd7cddfSDavid du ColombierChanges the SCO Unix direct frame buffer driver so it generates in-line
67987dd7cddfSDavid du Colombierinstructions to access the frame buffer, for a dramatic speed improvement.
67997dd7cddfSDavid du Colombier(gdevpcfb.h, gdevsco.c)
68007dd7cddfSDavid du Colombier
68013ff48bf5SDavid du Colombier</pre><h3><a name="V3.23_Fonts"></a>Fonts</h3><pre>
68027dd7cddfSDavid du Colombier
68037dd7cddfSDavid du ColombierFixes bugs:
68047dd7cddfSDavid du Colombier	- If a font couldn't be found in the Fontmap, a recursion loop
68057dd7cddfSDavid du Colombiersometimes occurred.  (gs_fonts.ps)
68067dd7cddfSDavid du Colombier	- Aliases for global fonts weren't automatically created as global,
68077dd7cddfSDavid du Colombierpossibly leading to a recursion loop.  (gs_dps1.ps, gs_fonts.ps)
68087dd7cddfSDavid du Colombier	- If a font was loaded into global VM within an inner save, the restore
68097dd7cddfSDavid du Colombierdeleted it from FontDirectory but not from SharedFontDirectory, causing a
68107dd7cddfSDavid du Colombierpossible recursion loop.  (gs_dps1.ps, gs_fonts.ps, idict.h, idict.c, zdict.c)
68117dd7cddfSDavid du Colombier
68127dd7cddfSDavid du ColombierFurther improves the algorithm for substituting for unknown fonts.
68137dd7cddfSDavid du Colombier(gs_fonts.ps)
68147dd7cddfSDavid du Colombier
68153ff48bf5SDavid du Colombier</pre><h3><a name="V3.23_Interpreter_PostScript"></a>Interpreter (PostScript)</h3><pre>
68167dd7cddfSDavid du Colombier
68177dd7cddfSDavid du ColombierFixes bugs:
68187dd7cddfSDavid du Colombier	- zcontrol.c had an assignment of const char * to const byte *,
68197dd7cddfSDavid du Colombierwhich some compilers don't like.  (zcontrol.c)
68207dd7cddfSDavid du Colombier	- Setting an Indexed color space based on a CIE space caused an
68217dd7cddfSDavid du Colombierattempt to free a random block of memory.  (zcsindex.c)
68227dd7cddfSDavid du Colombier	- Some compilers don't like mixing conditionals and casts in
68237dd7cddfSDavid du Colombierinitialization expressions.  (iref.h)
68247dd7cddfSDavid du Colombier	- Some calculations of table sizes for string garbage collection
68257dd7cddfSDavid du Colombierdidn't work if sizeof(long) != 4, leading to smashed strings.  (iastate.h,
68267dd7cddfSDavid du Colombierialloc.c, igcstr.c)
68277dd7cddfSDavid du Colombier	- Strings longer than about 7000 bytes smashed their chunk header
68287dd7cddfSDavid du Colombierand confused the garbage collector.  (ialloc.c)
68297dd7cddfSDavid du Colombier	- Some compilers needed iccfont.c to include strimpl.h.
68307dd7cddfSDavid du Colombier(iccfont.c)
68317dd7cddfSDavid du Colombier	- The obsolete file zcspace2.c was still included in the fileset.
68327dd7cddfSDavid du Colombier	- If the command line included any @-files that required searching
68337dd7cddfSDavid du Colombierthe library path, a limitcheck would occur.  (zfile.c)
68347dd7cddfSDavid du Colombier	- The insideness testing operators caused a memory access error,
68357dd7cddfSDavid du Colombierbecause the procedure vector hadn't been updated to provide a default
68367dd7cddfSDavid du Colombierget_alpha_bits procedure.  (zupath.c)
68377dd7cddfSDavid du Colombier	- gcheck didn't check for stack underflow.  (zvmem2.c)
68387dd7cddfSDavid du Colombier	- cleardictstack could fail to clear the dictionary stack if the
68397dd7cddfSDavid du Colombierstack had overflowed into additional blocks.  (zdict.c)
68407dd7cddfSDavid du Colombier	- If the '-' switch was selected, resources weren't released
68417dd7cddfSDavid du Colombierproperly on exit.  (gs.c)
68427dd7cddfSDavid du Colombier	- Setting a Pattern color space based on a CIE space caused an
68437dd7cddfSDavid du Colombierinvalid memory access.  (zcsindex.c)
68447dd7cddfSDavid du Colombier	- The garbage collector didn't treat refs properly on machines with
68457dd7cddfSDavid du Colombiershort ints.  (igcref.c)
68467dd7cddfSDavid du Colombier	- Operators with more than 16 arguments could break the
68477dd7cddfSDavid du Colombierinterpreter.  (interp.h, iinit.c, interp.c)
68487dd7cddfSDavid du Colombier	- save/restore didn't restore the setting of the current allocator
68497dd7cddfSDavid du ColombierVM (local/global).  (isstate.h, isave.c)
68507dd7cddfSDavid du Colombier	- stdpre.h declared exit as an extern, instead of letting gsmain.c
68517dd7cddfSDavid du Colombierdeclare it.  (stdpre.h, gsmain.c)
68527dd7cddfSDavid du Colombier	- gs.c used fputs to print help messages rather than fprintf.
68537dd7cddfSDavid du Colombier(gs.c)
68547dd7cddfSDavid du Colombier	- Interrupts failed to re-execute the operation that was
68557dd7cddfSDavid du Colombierinterrupted.  (interp.c)
68567dd7cddfSDavid du Colombier	- Low-resolution CMYK devices didn't use separate screens for each
68577dd7cddfSDavid du Colombiercolor plane as the default.  (gs_init.ps)
68587dd7cddfSDavid du Colombier	- filterdict wasn't getting undef'ed at the end of initialization.
68597dd7cddfSDavid du Colombier(gs_init.ps)
68607dd7cddfSDavid du Colombier	- gstate operations were broken (bug introduced in 3.02).
68617dd7cddfSDavid du Colombier(zdevice2.c)
68627dd7cddfSDavid du Colombier	- resourceforall didn't remove the resource dictionary from the
68637dd7cddfSDavid du Colombierdictionary stack when calling the client-supplied procedure.  (gs_res.ps)
68647dd7cddfSDavid du Colombier	- currentcolor with an Indexed color space returned a real rather
68657dd7cddfSDavid du Colombierthan an integer.  (zcolor2.c)
68667dd7cddfSDavid du Colombier	- setshared / setglobal left the stack in an unobvious state if
68677dd7cddfSDavid du Colombierthey were given a non-Boolean argument.  (gs_dps1.ps)
68687dd7cddfSDavid du Colombier	- sethalftone followed by currenthalftone returned an invalid value.
68697dd7cddfSDavid du Colombier(zht2.c)
68707dd7cddfSDavid du Colombier	- Empty strings produced spurious garbage collector error messages.
68717dd7cddfSDavid du Colombier(gsstruct.h, scommon.h, igc.c, igcstr.c, iname.c)
68727dd7cddfSDavid du Colombier	- The garbage collector didn't trace Separation color spaces properly.
68737dd7cddfSDavid du Colombier(gscsepr.c)
68747dd7cddfSDavid du Colombier
68757dd7cddfSDavid du ColombierChanges defineresource so that it does not, by default, make instances
68767dd7cddfSDavid du Colombierread-only.  (gs_res.ps)
68777dd7cddfSDavid du Colombier
68787dd7cddfSDavid du ColombierAdds .{local,global}{array,dict,packedarray,string} operators for creating
68797dd7cddfSDavid du Colombierobjects in a specific VM space.  (zsysvm.c, gs_dps1.ps)
68807dd7cddfSDavid du Colombier
68817dd7cddfSDavid du ColombierAdds definitions of setpage and setpageparams to statusdict.  (gs_setpd.ps,
68827dd7cddfSDavid du Colombiergs_statd.ps)
68837dd7cddfSDavid du Colombier
68847dd7cddfSDavid du ColombierAlleviates some performance problems in the garbage collector.  (igc.c)
68857dd7cddfSDavid du Colombier
68863ff48bf5SDavid du Colombier</pre><h3><a name="V3.23_Interpreter_PDF"></a>Interpreter (PDF)</h3><pre>
68877dd7cddfSDavid du Colombier
68887dd7cddfSDavid du ColombierFixes bugs:
68897dd7cddfSDavid du Colombier	- PDF files that used filters with parameters caused a typecheck
68907dd7cddfSDavid du Colombiererror because the arguments to 'filter' were reversed.  (pdf_base.ps)
68917dd7cddfSDavid du Colombier	- The (undocumented) PDF 1.1 ability to specify link and annotation
68927dd7cddfSDavid du Colombierdestinations indirectly was not supported.  (pdf_main.ps)
68937dd7cddfSDavid du Colombier	- The (undocumented) PDF ability to specify a null page in a link
68947dd7cddfSDavid du Colombierdestination was not supported.  (pdf_main.ps)
68957dd7cddfSDavid du Colombier	- The PDF encodings weren't loaded properly in a system with both
68967dd7cddfSDavid du ColombierPS Level 2 and PDF features.  (gs_res.ps, gs_init.ps)
68977dd7cddfSDavid du Colombier	- If the next line after a stream keyword was blank, the line
68987dd7cddfSDavid du Colombierwasn't skipped, which matters for binary data.  (pdf_base.ps)
68997dd7cddfSDavid du Colombier	- A Q operator with no matching q operator caused an error.
69007dd7cddfSDavid du Colombier(pdf_draw.ps)
69017dd7cddfSDavid du Colombier	- The text position wasn't preserved across a fill or stroke
69027dd7cddfSDavid du Colombieroperator.  (gs_pdf.ps, pdf_draw.ps)
69037dd7cddfSDavid du Colombier	- Embedded Type 3 fonts didn't work.  (pdf_base.ps, pdf_draw.ps,
69047dd7cddfSDavid du Colombierpdf_main.ps)
69057dd7cddfSDavid du Colombier	- Masked images with no Decode value had their polarity inverted.
69067dd7cddfSDavid du Colombier(pdf_draw.ps)
69077dd7cddfSDavid du Colombier	- Embedded Type 1 fonts referenced from within a stream didn't
69087dd7cddfSDavid du Colombierwork.  (pdf_font.ps)
69097dd7cddfSDavid du Colombier
69107dd7cddfSDavid du ColombierChanges the PDF code so that it automatically recognizes PDF files as such.
69117dd7cddfSDavid du Colombier(pdf_main.ps)
69127dd7cddfSDavid du Colombier
69137dd7cddfSDavid du ColombierSplits out the PixelDifference filters as a separate "feature".  (gs.mak)
69147dd7cddfSDavid du Colombier
69153ff48bf5SDavid du Colombier</pre><h3><a name="V3.23_Streams"></a>Streams</h3><pre>
69167dd7cddfSDavid du Colombier
69177dd7cddfSDavid du ColombierFixes bugs:
69187dd7cddfSDavid du Colombier	- Closing the primary input stream caused an invalid memory access.
69197dd7cddfSDavid du Colombier(stream.c)
69207dd7cddfSDavid du Colombier	- Increasing the size of a buffer within a save resulted in a
69217dd7cddfSDavid du Colombierdangling reference after the restore.  (files.h, sfilter.h, zfile.c,
69227dd7cddfSDavid du Colombierzfilter.c)
69237dd7cddfSDavid du Colombier	- The garbage collector didn't properly trace streams that referenced
69247dd7cddfSDavid du Colombierstrings directly.  (stream.h, stream.c, ziodev.c)
69257dd7cddfSDavid du Colombier
69263ff48bf5SDavid du Colombier</pre><h3><a name="V3.23_Library"></a>Library</h3><pre>
69277dd7cddfSDavid du Colombier
69287dd7cddfSDavid du ColombierFixes bugs:
69297dd7cddfSDavid du Colombier	- An extraneous \ upset some compilers.  (gdevabuf.c)
69307dd7cddfSDavid du Colombier	- Uncolored Patterns that completely filled their bounding box
69317dd7cddfSDavid du Colombiercaused an invalid memory access.  (gspcolor.c)
69327dd7cddfSDavid du Colombier	- If a color image required clipping, black or white pixels might
69337dd7cddfSDavid du Colombierbe rendered with incorrect (random) colors.  (gxcpath.c)
69347dd7cddfSDavid du Colombier	- Reference counts for color spaces were sometimes set too high, so
69357dd7cddfSDavid du Colombierthey would only be freed by restore or garbage collection.  (gscolor.c)
69367dd7cddfSDavid du Colombier	- The character cache could get confused if the Encoding for the
69377dd7cddfSDavid du Colombiercharacter wasn't a name.  (gschar.c)
69387dd7cddfSDavid du Colombier	- Character outlines were always rendered with flatness = 0,
69397dd7cddfSDavid du Colombiercausing very bad performance for large characters.  (gzstate.h, gschar.c,
69407dd7cddfSDavid du Colombiergsimage.c, gxfill.c, gxstroke.c)
69417dd7cddfSDavid du Colombier	- If a device (presumably uninitialized) had a
69427dd7cddfSDavid du Colombiercolor_info.num_components of zero, an invalid memory access could occur.
69437dd7cddfSDavid du Colombier(gsdparam.c)
69447dd7cddfSDavid du Colombier	- Intersecting clipping paths that are not both rectangular didn't
69457dd7cddfSDavid du Colombierproperly set the outer box of new clipping path, leading to unnecessary
69467dd7cddfSDavid du Colombiercomputation.  (gxcpath.h, gxacpath.c, gxcpath.c)
69477dd7cddfSDavid du Colombier	- A call passed false instead of NULL.  (gschar.c)
69487dd7cddfSDavid du Colombier	- On machines where sizeof returns a long, genarch.c failed.
69497dd7cddfSDavid du Colombier(genarch.c)
69507dd7cddfSDavid du Colombier	- xfonts were consulted, incorrectly, even for stroked characters.
69517dd7cddfSDavid du Colombier(gxccman.c)
69527dd7cddfSDavid du Colombier	- gstate/currentgstate/setgstate didn't work properly.  (gsline.c,
69537dd7cddfSDavid du Colombiergsstate.c)
69547dd7cddfSDavid du Colombier	- On CMYK devices needing halftoning, colors with C = M = Y were
69557dd7cddfSDavid du Colombieralways converted to gray shades.  (gxcmap.c)
69567dd7cddfSDavid du Colombier	- Isolated horizontal lines, or the horizontal edges of rectangles,
69577dd7cddfSDavid du Colombiercould get drawn with one or both end pixels missing.  (gxfill.c)
69587dd7cddfSDavid du Colombier
69597dd7cddfSDavid du ColombierChanges the character cache back so it oversamples characters at small
69607dd7cddfSDavid du Colombiersizes.  (gschar.c)
69617dd7cddfSDavid du Colombier
69627dd7cddfSDavid du ColombierChanges all occurrences of (void)x to discard(x), and defines discard in
69637dd7cddfSDavid du Colombierstdpre.h as a cast to void, to make it possible to pacify compilers that
69647dd7cddfSDavid du Colombierdon't accept this construct for some kinds of x.  (gpcheck.h, stdpre.h,
69657dd7cddfSDavid du Colombierstore.h, gdevmswn.c, gp_mswin.c, gscoord.c, gxclread.c, igc.c, sfile.c,
69667dd7cddfSDavid du Colombiersfileno.c, zcie.c, zht2.c, ziodev.c, zmisc1.c)
69677dd7cddfSDavid du Colombier
69687dd7cddfSDavid du ColombierIncreases the size of the halftone cache on large-memory machines from 35K
69697dd7cddfSDavid du Colombierto 100K.  This substantially improves halftoning performance at higher
69707dd7cddfSDavid du Colombierresolutions.  (gxht.c)
69717dd7cddfSDavid du Colombier
69723ff48bf5SDavid du Colombier</pre>
69737dd7cddfSDavid du Colombier
69743ff48bf5SDavid du Colombier<h2><a name="Version3.22"></a>Version 3.22 (beta) (11/30/94)</h2>
69753ff48bf5SDavid du Colombier
69763ff48bf5SDavid du Colombier<p>
69777dd7cddfSDavid du ColombierThis is primarily a bug fix release.  It also includes limited anti-aliased
69787dd7cddfSDavid du Colombiergraphics capability.  This release was not distributed to the public.
69797dd7cddfSDavid du Colombier
69803ff48bf5SDavid du Colombier<h3><a name="V3.22_Procedures"></a>Procedures</h3><pre>
69817dd7cddfSDavid du Colombier
69827dd7cddfSDavid du ColombierFixes bugs:
69837dd7cddfSDavid du Colombier	- The definition of ghost_h was misplaced, so changes in it or its
69847dd7cddfSDavid du Colombierantecedents didn't force recompilation of its dependents.  (gs.mak)
69857dd7cddfSDavid du Colombier
69867dd7cddfSDavid du ColombierActually implements the -Z+ switch, for forcing small stack blocks.
69877dd7cddfSDavid du Colombier(interp.c)
69887dd7cddfSDavid du Colombier
69897dd7cddfSDavid du ColombierMakes the -dSAFER switch disable the %pipe syntax for file names, even for
69907dd7cddfSDavid du Colombierreading.  (gs_init.ps)
69917dd7cddfSDavid du Colombier
69923ff48bf5SDavid du Colombier</pre><h3><a name="V3.22_Drivers"></a>Drivers</h3><pre>
69937dd7cddfSDavid du Colombier
69947dd7cddfSDavid du ColombierFixes bugs:
69957dd7cddfSDavid du Colombier	- The dfax drivers incorrectly set EncodedByteAlign to false.
69967dd7cddfSDavid du Colombier(gdevdfax.c)
69977dd7cddfSDavid du Colombier	- softwareValue and dateTimeValue were declared as byte rather than
69987dd7cddfSDavid du Colombierchar.  (gdevtfax.c)
69997dd7cddfSDavid du Colombier
70003ff48bf5SDavid du Colombier</pre><h3><a name="V3.22_Platforms"></a>Platforms</h3><pre>
70017dd7cddfSDavid du Colombier
70027dd7cddfSDavid du ColombierFixes bugs:
70037dd7cddfSDavid du Colombier	- The VMS DEC C compilers declare delete in unixio.h, and doesn't
70047dd7cddfSDavid du Colombierdeclare unlink anywhere.  (stdio_.h)
70057dd7cddfSDavid du Colombier	- The VMS compilers declare malloc and free in stdlib.h, which
70067dd7cddfSDavid du Colombierwasn't being included in malloc_.h.  (malloc_.h)
70077dd7cddfSDavid du Colombier	- The SCO Unix C compiler needs both &lt;sys/time.h&gt; and &lt;time.h&gt;.
70087dd7cddfSDavid du Colombier(time_.h)
70097dd7cddfSDavid du Colombier	- The VMS compilers declare abs in stdlib.h, which wasn't being
70107dd7cddfSDavid du Colombierincluded anywhere.  (gshtscr.c)
70117dd7cddfSDavid du Colombier	- The definition for A4 paper in VMS-AXP.MAK was incorrect.
70127dd7cddfSDavid du Colombier(vms-axp.mak)
70137dd7cddfSDavid du Colombier
70147dd7cddfSDavid du ColombierRenames VMS-AXP.MAK as VMS-DECC.MAK, with some changes that make it
70157dd7cddfSDavid du Colombierappropriate for DEC C on both VAX and AXP platforms.  (vms-axp.mak =&gt;
70167dd7cddfSDavid du Colombiervms.decc.mak)
70177dd7cddfSDavid du Colombier
70183ff48bf5SDavid du Colombier</pre><h3><a name="V3.22_Fonts"></a>Fonts</h3><pre>
70197dd7cddfSDavid du Colombier
70207dd7cddfSDavid du ColombierFixes bugs:
70217dd7cddfSDavid du Colombier	- gs_kanji.ps got an invalidaccess error.  (gs_kanji.ps)
70227dd7cddfSDavid du Colombier
70233ff48bf5SDavid du Colombier</pre><h3><a name="V3.22_Interpreter"></a>Interpreter</h3><pre>
70247dd7cddfSDavid du Colombier
70257dd7cddfSDavid du ColombierFixes bugs:
70267dd7cddfSDavid du Colombier	- An off-by-1 test in the roll operator caused it to smash the
70277dd7cddfSDavid du Colombierstack if the operand stack had overflowed into additional blocks.
70287dd7cddfSDavid du Colombier(zstack.c)
70297dd7cddfSDavid du Colombier	- The default CIE color rendering dictionary didn't assume a
70307dd7cddfSDavid du Colombierreasonable intermediate (XYZ) space.  (gs_lev2.ps)
70317dd7cddfSDavid du Colombier	- CIE color mapping tables weren't traced properly by the garbage
70327dd7cddfSDavid du Colombiercollector.  (gscie.h, gscie.c, zcie.c)
70337dd7cddfSDavid du Colombier	- If the very last character of a file was a ^M, the scanner
70347dd7cddfSDavid du Colombier(incorrectly) signaled a syntaxerror.  (iscan.c)
70357dd7cddfSDavid du Colombier	- If an operator could return both a typecheck and a
70367dd7cddfSDavid du Colombierstackunderflow, it always returned a stackunderflow, which doesn't match
70377dd7cddfSDavid du Colombierthe behavior of Adobe interpreters.  (opcheck.h, idparam.c, interp.c,
70387dd7cddfSDavid du Colombieriutil.c, z*.c)
70397dd7cddfSDavid du Colombier	- astore, dictstack, and execstack could return a spurious
70407dd7cddfSDavid du Colombierinvalidaccess error (or fail to detect an invalid access) if the operand
70417dd7cddfSDavid du Colombierstack had overflowed into additional blocks.  (istack.c)
70427dd7cddfSDavid du Colombier	- The garbage collector didn't relocate pointers to names!  (Bug
70437dd7cddfSDavid du Colombierintroduced in 3.20.)  (iname.h)
70447dd7cddfSDavid du Colombier	- If the dictionary stack overflowed into additional blocks, the
70457dd7cddfSDavid du Colombiercached value pointer for a name could get set incorrectly, and also not get
70467dd7cddfSDavid du Colombierrelocated by the garbage collector.  (idict.c)
70477dd7cddfSDavid du Colombier	- If the dictionary stack overflowed into additional blocks, the
70487dd7cddfSDavid du Colombierpost-GC fixup of cached value pointers in names could cause an addressing
70497dd7cddfSDavid du Colombiererror.  (igc.c)
70507dd7cddfSDavid du Colombier	- With the -Z? switch set, the garbage collector could incorrectly
70517dd7cddfSDavid du Colombierreport that objects or strings weren't in any chunk.  (igc.c)
70527dd7cddfSDavid du Colombier	- &lt;&lt; /a 1 /a 2 &gt;&gt; /a get gave the value 2 rather than 1.
70537dd7cddfSDavid du Colombier(gs_init.ps)
70547dd7cddfSDavid du Colombier	- Numbers in binary object sequences and encoded number arrays
70557dd7cddfSDavid du Colombierdidn't work properly on machines where sizeof(short) != 2 or sizeof(long)
70567dd7cddfSDavid du Colombier!= 4.  (ibnum.c)
70577dd7cddfSDavid du Colombier	- The put operator for dictionaries allowed null as a key.
70587dd7cddfSDavid du Colombier(idict.h, idict.c)
70597dd7cddfSDavid du Colombier	- &gt;&gt; didn't give an error if there were an odd number of values on
70607dd7cddfSDavid du Colombierthe stack above the next mark.  (gs_init.ps)
70617dd7cddfSDavid du Colombier	- Operations that explicitly freed ref objects (setting a CIE
70627dd7cddfSDavid du Colombiercolorspace, resizing a dictionary, popping a block off a stack) could
70637dd7cddfSDavid du Colombiercorrupt storage.  (ialloc.c)
70647dd7cddfSDavid du Colombier	- The -Z@ switch, which fills freed blocks with a recognizable bit
70657dd7cddfSDavid du Colombierpattern, could incorrectly overwrite freed blocks in previous save levels,
70667dd7cddfSDavid du Colombiercausing invalid memory accesses.  (ialloc.c)
70677dd7cddfSDavid du Colombier	- Since streams freed by a restore weren't marked as free, they
70687dd7cddfSDavid du Colombiercould confuse the garbage collector and lead to invalid memory accesses.
70697dd7cddfSDavid du Colombier(zfile.c)
70707dd7cddfSDavid du Colombier	- If one of the built-in dictionaries overflowed during
70717dd7cddfSDavid du Colombierinitialization, no error was reported -- entries were simply discarded.
70727dd7cddfSDavid du Colombier(iinit.c)
70737dd7cddfSDavid du Colombier	- If the level2.dev feature was combined with certain other
70747dd7cddfSDavid du Colombierfeatures, the current languagelevel was 2 when some gs_*.ps files were
70757dd7cddfSDavid du Colombierloaded, causing them to load incorrectly.  (gs_btokn.ps, gs_setpd.ps)
70767dd7cddfSDavid du Colombier	- If readline read a line that ended with only a CR (no LF)
70777dd7cddfSDavid du Colombierfollowed by an end-of-file, it incorrectly closed the stream.  (zfileio.c)
70787dd7cddfSDavid du Colombier
70797dd7cddfSDavid du ColombierAdds a .cond operator, similar to the Lisp multi-arm conditional.
70807dd7cddfSDavid du Colombier(zcontrol.c)
70817dd7cddfSDavid du Colombier
70827dd7cddfSDavid du ColombierAdds a .makeglobaloperator operator, allowing the definition of operator
70837dd7cddfSDavid du Colombierprocedures in local VM that turn into global operators, provided the save
70847dd7cddfSDavid du Colombierlevel is zero.  (iref.h, opdef.h, iinit.c, interp.c, zmisc.c)
70857dd7cddfSDavid du Colombier
70867dd7cddfSDavid du ColombierNote: the fix for returning typecheck vs. stackunderflow requires that all
70877dd7cddfSDavid du Colombieroperators (or other code) that uses return_error(e_typecheck) to indicate
70887dd7cddfSDavid du Colombieran incorrect object type on the operand stack must change this to
70897dd7cddfSDavid du Colombierreturn_op_typecheck(op), where op points to the operand.  THIS IS A
70907dd7cddfSDavid du ColombierNON-BACKWARD-COMPATIBLE CHANGE.
70917dd7cddfSDavid du Colombier
70927dd7cddfSDavid du ColombierImplements string array and name array parameters for parameter lists.
70937dd7cddfSDavid du Colombier(gsparam.h, iparam.c)
70947dd7cddfSDavid du Colombier
70957dd7cddfSDavid du ColombierBrings filterdict inside the INITIAL_DICTIONARIES conditional.  (iinit.c)
70967dd7cddfSDavid du Colombier
70977dd7cddfSDavid du ColombierAdds a .currentscreenlevels operator that returns the number of
70987dd7cddfSDavid du Colombierdistinguishable halftone levels.  (zht.c)
70997dd7cddfSDavid du Colombier
71003ff48bf5SDavid du Colombier</pre><h3><a name="V3.22_Streams"></a>Streams</h3><pre>
71017dd7cddfSDavid du Colombier
71027dd7cddfSDavid du ColombierFixes bugs:
71037dd7cddfSDavid du Colombier	- The 2-D case of CCITTFaxDecode could get confused by an input
71047dd7cddfSDavid du Colombierdata buffer boundary that fell immediately after a horizontal code.
71057dd7cddfSDavid du Colombier(scfd.c)
71067dd7cddfSDavid du Colombier	- The LZW decoder didn't detect invalid data unless DEBUG was
71077dd7cddfSDavid du Colombierselected at build time.  (slzwd.c)
71087dd7cddfSDavid du Colombier
71093ff48bf5SDavid du Colombier</pre><h3><a name="V3.22_Library"></a>Library</h3><pre>
71107dd7cddfSDavid du Colombier
71117dd7cddfSDavid du ColombierFixes bugs:
71127dd7cddfSDavid du Colombier	- The clipping region accumulator could refer to a clipping
71137dd7cddfSDavid du Colombierrectangle even after it had been freed.  (No effect on execution unless the
71147dd7cddfSDavid du Colombier-Z@ switch was selected.)  (gxacpath.c)
71157dd7cddfSDavid du Colombier	- setbbox expanded the bounding box, but didn't place a limit on
71167dd7cddfSDavid du Colombierfurther path elements, if the current path wasn't empty.  (gsdps1.c)
71177dd7cddfSDavid du Colombier	- setbbox didn't make sufficient allowance for rounding.
71187dd7cddfSDavid du Colombier(gsdps1.c)
71197dd7cddfSDavid du Colombier
71207dd7cddfSDavid du ColombierImplements the ProcessColorModel parameter (read-only) for all devices.
71217dd7cddfSDavid du Colombier(gsdparam.c)
71227dd7cddfSDavid du Colombier
71237dd7cddfSDavid du ColombierAdds a gs_currentscreenlevels procedure that returns the number of
71247dd7cddfSDavid du Colombierdistinguishable halftone levels.  (gsht.c)
71257dd7cddfSDavid du Colombier
71263ff48bf5SDavid du Colombier</pre>
71277dd7cddfSDavid du Colombier
71283ff48bf5SDavid du Colombier<h2><a name="Version3.21"></a>Version 3.21 (beta) (11/17/94)</h2>
71293ff48bf5SDavid du Colombier
71303ff48bf5SDavid du Colombier<p>
71317dd7cddfSDavid du ColombierThis is primarily a bug fix release.  It also includes a substantial
71327dd7cddfSDavid du Colombierimprovement in the Type 1 font hinting algorithms.  This release was not
71337dd7cddfSDavid du Colombierdistributed to the public.
71347dd7cddfSDavid du Colombier
71353ff48bf5SDavid du Colombier<h3><a name="V3.21_Documentation"></a>Documentation</h3><pre>
71367dd7cddfSDavid du ColombierFixes bugs:
71377dd7cddfSDavid du Colombier	- The `man' page referred to gnu.ghostscript.bug rather than
71387dd7cddfSDavid du Colombiercomp.lang.postscript.  (gs.1)
71397dd7cddfSDavid du Colombier
71407dd7cddfSDavid du ColombierDocuments the special entries in operator definition tables that allow
71417dd7cddfSDavid du Colombierswitching dictionaries.  (opdef.h)
71427dd7cddfSDavid du Colombier
71433ff48bf5SDavid du Colombier</pre><h3><a name="V3.21_Procedures"></a>Procedures</h3><pre>
71447dd7cddfSDavid du Colombier
71457dd7cddfSDavid du ColombierMoves the definition of JSRCDIR to the individual platform makefiles, to
71467dd7cddfSDavid du Colombiermake it easier to change on platforms that don't have file links.  (*.mak)
71477dd7cddfSDavid du Colombier
71483ff48bf5SDavid du Colombier</pre><h3><a name="V3.21_Utilities"></a>Utilities</h3><pre>
71497dd7cddfSDavid du Colombier
71507dd7cddfSDavid du ColombierFixes bugs:
71517dd7cddfSDavid du Colombier	- ansi2knr didn't recognize that a line ending with } couldn't be a
71527dd7cddfSDavid du Colombierfunction definition.  (ansi2knr.c)
71537dd7cddfSDavid du Colombier	- ps2epsi always returned an empty bounding box.  (ps2epsi,
71547dd7cddfSDavid du Colombierps2epsi.bat)
71557dd7cddfSDavid du Colombier
71563ff48bf5SDavid du Colombier</pre><h3><a name="V3.21_Drivers"></a>Drivers</h3><pre>
71577dd7cddfSDavid du Colombier
71587dd7cddfSDavid du ColombierFixes bugs:
71597dd7cddfSDavid du Colombier	- The bitrgb device had an invalid depth of 3.  (gdevbit.c)
71607dd7cddfSDavid du Colombier
71617dd7cddfSDavid du ColombierReplaces the color mapping code in the X driver with a much faster
71627dd7cddfSDavid du Colombieralgorithm, courtesy of Tim Theisen.  (gdevx.h, gdevx.c, gdevxini.c)
71637dd7cddfSDavid du Colombier
71643ff48bf5SDavid du Colombier</pre><h3><a name="V3.21_Platforms"></a>Platforms</h3><pre>
71657dd7cddfSDavid du Colombier
71667dd7cddfSDavid du ColombierFixes bugs:
71677dd7cddfSDavid du Colombier	- Two variable names were misspelled.  (gdevpm.c, gp_mswin.c)
71687dd7cddfSDavid du Colombier	- It wasn't possible to compile a non-DLL configuration under OS/2.
71697dd7cddfSDavid du Colombier(os2.mak)
71707dd7cddfSDavid du Colombier	- Compilation under Microsoft C/C++ 8.0 gave errors.  (gp_mswin.h,
71717dd7cddfSDavid du Colombiergp_mswin.c, gshtscr.c)
71727dd7cddfSDavid du Colombier
71737dd7cddfSDavid du ColombierAdds some more devices to the OS/2 makefile.  (os2.mak)
71747dd7cddfSDavid du Colombier
71753ff48bf5SDavid du Colombier</pre><h3><a name="V3.21_Fonts"></a>Fonts</h3><pre>
71767dd7cddfSDavid du Colombier
71777dd7cddfSDavid du ColombierFixes bugs:
71787dd7cddfSDavid du Colombier	- wrfont.ps, and hence bdftops, didn't write out the FontType or
71797dd7cddfSDavid du ColombierPaintType.  (Bug introduced since 2.6.1)  (wrfont.ps)
71807dd7cddfSDavid du Colombier	- wrfont.ps omitted a 'begin' and 'end', causing -! or -| to be
71817dd7cddfSDavid du Colombierundefined when the font was loaded.  (Bug introduced since 2.6.1)
71827dd7cddfSDavid du Colombier(wrfont.ps)
71837dd7cddfSDavid du Colombier
71843ff48bf5SDavid du Colombier</pre><h3><a name="V3.21_Interpreter"></a>Interpreter</h3><pre>
71857dd7cddfSDavid du Colombier
71867dd7cddfSDavid du ColombierFixes bugs:
71877dd7cddfSDavid du Colombier	- make_tasv_old called make_tasv_new with extra arguments.
71887dd7cddfSDavid du Colombier(store.h)
71897dd7cddfSDavid du Colombier	- currentcacheparams only returned 2 values instead of 3.
71907dd7cddfSDavid du Colombier(zfont.c)
71917dd7cddfSDavid du Colombier	- ustroke popped one element too many off the stack if a matrix was
71927dd7cddfSDavid du Colombiersupplied.  (zupath.c)
71937dd7cddfSDavid du Colombier	- inu[eo]fill popped one element too many off the stack.
71947dd7cddfSDavid du Colombier(zupath.c)
71957dd7cddfSDavid du Colombier	- The color rendering dictionary was initialized to null rather
71967dd7cddfSDavid du Colombierthan a valid dictionary.  (gs_lev2.ps)
71977dd7cddfSDavid du Colombier	- An invalid IODevice resource named "9" got created.  (gs_res.ps)
71987dd7cddfSDavid du Colombier	- bytesavailable often caused an error rather than returning -1.
71997dd7cddfSDavid du Colombier(zfileio.c, stream.c)
72007dd7cddfSDavid du Colombier	- The insideness testing operators always returned true if the
72017dd7cddfSDavid du Colombieraperture was defined by a user path rather than a point.  (zupath.c)
72027dd7cddfSDavid du Colombier	- If INITIAL_DICTIONARIES was defined in the makefile, the
72037dd7cddfSDavid du Colombierdefinition of the initial_dictionaries array was missing a comma.
72047dd7cddfSDavid du Colombier(iinit.c)
72057dd7cddfSDavid du Colombier	- Even if userdict appeared in INITIAL_DICTIONARIES, gs_init.ps set
72067dd7cddfSDavid du Colombierits maxlength to 200.  (gs_init.ps)
72077dd7cddfSDavid du Colombier	- Setting a CIE color space left a garbage value on the stack.
72087dd7cddfSDavid du Colombier(zcie.c)
72097dd7cddfSDavid du Colombier	- If a file or filter was opened and then closed, opening a file
72107dd7cddfSDavid du Colombiersubsequently within a 'save' could lead to a memory access error in the
72117dd7cddfSDavid du Colombiergarbage collector.  (zfile.c)
72127dd7cddfSDavid du Colombier	- Setting an Indexed or Separation color space could cause a crash
72137dd7cddfSDavid du Colombiereither in the garbage collector or when printing out the e-stack.
72147dd7cddfSDavid du Colombier(icsmap.h, zcsindex.c, zcssepr.c)
72157dd7cddfSDavid du Colombier	- Invoking a filter with an invalid data source or sink could cause
72167dd7cddfSDavid du Colombiera memory access error (bug introduced in 3.20).  (zfilter.c)
72177dd7cddfSDavid du Colombier	- Invoking stringwidth on a font whose BuildChar procedure did a
72187dd7cddfSDavid du Colombiersave could cause a memory manager error or infinite loop, because
72197dd7cddfSDavid du Colombierstringwidth attempted to use an inapplicable shortcut.  (gschar.c)
72207dd7cddfSDavid du Colombier	- The bounding box for rendering stroked Type 1 characters didn't
72217dd7cddfSDavid du Colombiertake square caps and miter joins into account.  (gs_type1.ps)
72227dd7cddfSDavid du Colombier	- Invoking filter with DCTDecode or DCTEncode could cause an
72237dd7cddfSDavid du Colombieraddressing error if no dictionary argument was supplied.  (zfdctd.c,
72247dd7cddfSDavid du Colombierzfdcte.c)
72257dd7cddfSDavid du Colombier	- The Generic resource, the Font resource, and half a dozen
72267dd7cddfSDavid du Colombierresources with no predefined instances all shared the same Instances
72277dd7cddfSDavid du Colombierdictionary.  (gs_res.ps)
72287dd7cddfSDavid du Colombier	- The temporary null device allocated for stringwidth was never
72297dd7cddfSDavid du Colombierfreed.  (gschar.h, gschar.c, zchar.c)
72307dd7cddfSDavid du Colombier	- Internal operators, and structures that might be freed on stack
72317dd7cddfSDavid du Colombierunwinding, could "escape" from the e-stack.  (zcontrol.c, ztype.c)
72327dd7cddfSDavid du Colombier	- makefont and scalefont didn't properly handle a font whose
72337dd7cddfSDavid du ColombierEncoding had been changed.  (bfont.h, zfont.c, zfont2.c)
72347dd7cddfSDavid du Colombier	- Type 1 fonts with PaintType = 2 incorrectly checked for an xfont.
72357dd7cddfSDavid du Colombier(gxfont.h, gschar.c, gsfont.c, zchar1.c, zfont1.c, zfont2.c)
72367dd7cddfSDavid du Colombier	- Specifying a string argument with -d...=(...) or -d...=&lt;...&gt;
72377dd7cddfSDavid du Colombierwould cause an invalidaccess error.  (gs.c)
72387dd7cddfSDavid du Colombier	- The environment for encapsulated jobs didn't rebind quit to stop
72397dd7cddfSDavid du Colombierin userdict.  (gs_lev2.ps)
72407dd7cddfSDavid du Colombier	- restore didn't deal properly with open files on the e-stack.
72417dd7cddfSDavid du Colombier(zvmem.c)
72427dd7cddfSDavid du Colombier	- Even with the '-' switch, Ghostscript would try to read ahead in
72437dd7cddfSDavid du Colombierthe input stream rather than processing input character-by-character.
72447dd7cddfSDavid du Colombier(ziodev.c)
72457dd7cddfSDavid du Colombier	- If an error occurred with a unreadable dictionary on any stack,
72467dd7cddfSDavid du Colombierthe standard error printer would get into an error loop and exit the
72477dd7cddfSDavid du Colombierinterpreter.  (gs_init.ps)
72487dd7cddfSDavid du Colombier	- The for_roots macro in igc.c used ap rather than mem as its
72497dd7cddfSDavid du Colombiersecond formal parameter.  (This typo had no effect on the executable
72507dd7cddfSDavid du Colombierprogram.)  (igc.c)
72517dd7cddfSDavid du Colombier	- If saving the stacks for an error caused a GC request, a value
72527dd7cddfSDavid du Colombiercould get stored into an improper variable on the C stack, causing havoc.
72537dd7cddfSDavid du Colombier(interp.c)
72547dd7cddfSDavid du Colombier	- setdash checked to make sure that the distance array had read
72557dd7cddfSDavid du Colombieraccess; Adobe interpreters don't check this.  (zgstate.c)
72567dd7cddfSDavid du Colombier	- The roots for gs_run_string and gs_interpret weren't registered
72577dd7cddfSDavid du Colombierproperly, which could cause a dangling reference in the case of a restore
72587dd7cddfSDavid du Colombierwhose save had been done earlier.  (gsmain.c, interp.c)
72597dd7cddfSDavid du Colombier
72607dd7cddfSDavid du ColombierAdds an OpenOutputFile Boolean device parameter for printer devices; if
72617dd7cddfSDavid du Colombiertrue, the device opens the OutputFile at the time the device is opened,
72627dd7cddfSDavid du Colombierinstead of waiting for the first showpage.  This helps with synchronization
72637dd7cddfSDavid du Colombierwhen the OutputFile is a pipe.  (gdevprn.h, gdevprn.c)
72647dd7cddfSDavid du Colombier
72657dd7cddfSDavid du ColombierChanges the BEGIN/END_OP_DEFS macros to require an explicit { and } at each
72667dd7cddfSDavid du Colombieruse.  (gsmain.c, interp.c, z*.c)
72677dd7cddfSDavid du Colombier
72687dd7cddfSDavid du ColombierArranges things so that the operators that the interpreter handles
72697dd7cddfSDavid du Colombierspecially are assigned the first N operator indices [internal change only].
72707dd7cddfSDavid du Colombier(interp.h, iinit.c, interp.c)
72717dd7cddfSDavid du Colombier
72727dd7cddfSDavid du ColombierChanges the operators max and min to .max and .min, to avoid conflicts with
72737dd7cddfSDavid du ColombierPostScript programs that use these names for variables and also use 'bind'.
72747dd7cddfSDavid du ColombierTHIS IS A NON-BACKWARD-COMPATIBLE CHANGE from programs that depend on
72757dd7cddfSDavid du Colombier'bind' binding in these operators; however, we have also defined procedures
72767dd7cddfSDavid du Colombiermax and min that just call the operators, which should take care of any
72777dd7cddfSDavid du Colombierordinary code.  (*.ps, zrelbit.c)
72787dd7cddfSDavid du Colombier
72793ff48bf5SDavid du Colombier</pre><h3><a name="V3.21_Streams"></a>Streams</h3><pre>
72807dd7cddfSDavid du Colombier
72817dd7cddfSDavid du ColombierFixes bugs:
72827dd7cddfSDavid du Colombier	- The pfb_state pointer in the eexecDecode filter state wasn't
72837dd7cddfSDavid du Colombiermarked as traceable for the garbage collector.  (sfilter.h)
72847dd7cddfSDavid du Colombier	- The eexec decoding filter could access invalid memory or return
72857dd7cddfSDavid du Colombiergarbage under some conditions.  (Bug introduced in 3.12.)  (zmisc1.c)
72867dd7cddfSDavid du Colombier	- The eexec decoding filter would incorrectly ask for more input if
72877dd7cddfSDavid du Colombierthe output buffer was full.  (seexec.c)
72887dd7cddfSDavid du Colombier
72893ff48bf5SDavid du Colombier</pre><h3><a name="V3.21_Library"></a>Library</h3><pre>
72907dd7cddfSDavid du Colombier
72917dd7cddfSDavid du ColombierFixes bugs:
72927dd7cddfSDavid du Colombier	- Some compilers reserve the word 'try'.  (gshtscr.c)
72937dd7cddfSDavid du Colombier	- Some compilers don't like line continuations (\) within a
72947dd7cddfSDavid du Colombierpreprocessor macro formal parameter list.  (gdevprn.h, gxdevice.h)
72957dd7cddfSDavid du Colombier	- Memory devices created with an inverted palette (0=white,
72967dd7cddfSDavid du Colombier1=black) interchanged white and black in fill operations.  (gdevmem1.c)
72977dd7cddfSDavid du Colombier	- The 'bits' variable in mem_mono_copy_mono was unused on
72987dd7cddfSDavid du Colombierlittle-endian machines.  (gdevmem1.c)
72997dd7cddfSDavid du Colombier	- Some garbage collector procedures were declared 'private'
73007dd7cddfSDavid du Colombierinconsistently.  (gscie.c)
73017dd7cddfSDavid du Colombier	- The new anti-aliased text capability accidentally caused all
73027dd7cddfSDavid du Colombiercharacters to be oversampled.  (gschar.c)
73037dd7cddfSDavid du Colombier	- Type 1 fonts with PaintType = 2 and StrokeWidth = 0 came out with
73047dd7cddfSDavid du Colombiermany pixels missing because of oversampling.  (gschar.c)
73057dd7cddfSDavid du Colombier	- Type 1 font stem hints were not being processed correctly.
73067dd7cddfSDavid du Colombier(gstype1.h, gxtype1.h, gstype1.c, gxhint2.c, gxhint3.c, gxpath.c)
73077dd7cddfSDavid du Colombier	- The tracing message for 9/7 composite fonts incorrectly
73087dd7cddfSDavid du Colombieridentified them as 1/7 fonts.  (gschar0.c)
73097dd7cddfSDavid du Colombier	- If a 1/7 or 9/7 composite font was a child of a non-modal font,
73107dd7cddfSDavid du Colombierthe font number of the child font was computed incorrectly.  (gschar0.c)
73117dd7cddfSDavid du Colombier
73127dd7cddfSDavid du ColombierSplits up the various memory devices into one file per depth [internal
73137dd7cddfSDavid du Colombierchange only].  (gdevm*.c)
73147dd7cddfSDavid du Colombier
73153ff48bf5SDavid du Colombier</pre>
73167dd7cddfSDavid du Colombier
73173ff48bf5SDavid du Colombier<h2><a name="Version3.20"></a>Version 3.20 (beta) (10/31/94)</h2>
73183ff48bf5SDavid du Colombier
73193ff48bf5SDavid du Colombier<p>
73207dd7cddfSDavid du ColombierThis version contains some support for a PDF interpreter; however, the PDF
73217dd7cddfSDavid du Colombiercode itself is not ready for release yet.  It also includes anti-aliased text
73227dd7cddfSDavid du Colombiercapability.  This release was not distributed to the public.
73237dd7cddfSDavid du Colombier
73243ff48bf5SDavid du Colombier<h3><a name="V3.20_Documentation"></a>Documentation</h3><pre>
73257dd7cddfSDavid du ColombierNotes that the FAQ has moved to smallo.ruhr.de:pub/ghost/gs.faq.  (readme)
73267dd7cddfSDavid du Colombier
73277dd7cddfSDavid du ColombierDocuments various implementation limits.  (language.doc)
73287dd7cddfSDavid du Colombier
73293ff48bf5SDavid du Colombier</pre><h3><a name="V3.20_Procedures"></a>Procedures</h3><pre>
73307dd7cddfSDavid du Colombier
73317dd7cddfSDavid du ColombierFixes bugs:
73327dd7cddfSDavid du Colombier	- bcp.dev wasn't included in the list of dependencies for
73337dd7cddfSDavid du Colombierlevel1.dev.  (gs.mak)
73347dd7cddfSDavid du Colombier
73357dd7cddfSDavid du ColombierChanges the printout of version numbers so that it is always A.BC,
73367dd7cddfSDavid du Colombierrather than A.B if C is zero.  (gs.c, gs_init.ps)
73377dd7cddfSDavid du Colombier
73383ff48bf5SDavid du Colombier</pre><h3><a name="V3.20_Utilities"></a>Utilities</h3><pre>
73397dd7cddfSDavid du Colombier
73407dd7cddfSDavid du ColombierFixes bugs:
73417dd7cddfSDavid du Colombier	- font2c didn't correctly handle Metrics or Metrics2 dictionaries
73427dd7cddfSDavid du Colombierwhose entries were arrays rather than scalars.  (font2c.ps, ccfont.h,
73437dd7cddfSDavid du Colombiericcfont.c)
73447dd7cddfSDavid du Colombier	- font2c didn't handle CDevProc.  (font2c.ps, ccfont.h, iccfont.c)
73457dd7cddfSDavid du Colombier	- genconf could get a stack overflow on small machines.
73467dd7cddfSDavid du Colombier(genconf.c)
73477dd7cddfSDavid du Colombier
73487dd7cddfSDavid du ColombierChanges mergeini.ps so it can take arguments on the command line specifying
73497dd7cddfSDavid du Colombierthe input and output files.  (mergeini.ps)
73507dd7cddfSDavid du Colombier
73517dd7cddfSDavid du ColombierAdds a gsdj500 shell script to parallel gsdj500.bat.  (gsdj500)
73527dd7cddfSDavid du Colombier
73533ff48bf5SDavid du Colombier</pre><h3><a name="V3.20_Drivers"></a>Drivers</h3><pre>
73547dd7cddfSDavid du Colombier
73557dd7cddfSDavid du ColombierFixes bugs:
73567dd7cddfSDavid du Colombier	- The X driver didn't mask dynamically assigned colors properly, so
73577dd7cddfSDavid du Colombierit could request the same color over and over again.  (gdevx.c)
73587dd7cddfSDavid du Colombier
73597dd7cddfSDavid du ColombierAdds two alternate X Windows drivers, for helping debug drivers with other
73607dd7cddfSDavid du Colombiercolor models:
73617dd7cddfSDavid du Colombier	- x11alpha, an RGB device with 4-bit alpha capability (for
73627dd7cddfSDavid du Colombier	  copy_alpha only);
73637dd7cddfSDavid du Colombier	- x11cmyk, a 1-bit-per-component CMYK device.
73647dd7cddfSDavid du Colombier(devs.mak, gdevxalt.c)
73657dd7cddfSDavid du Colombier
73667dd7cddfSDavid du ColombierChanges the left margin of the lj4dith driver to 0.26".  (gdevcdj.c)
73677dd7cddfSDavid du Colombier
73683ff48bf5SDavid du Colombier</pre><h3><a name="V3.20_Platforms"></a>Platforms</h3><pre>
73697dd7cddfSDavid du Colombier
73707dd7cddfSDavid du ColombierFixes bugs:
73717dd7cddfSDavid du Colombier	- If &lt;sys/time.h&gt; didn't exist, time_.h didn't always include
73727dd7cddfSDavid du Colombier&lt;time.h&gt;.  (time_.h)
73737dd7cddfSDavid du Colombier	- The OS/2 platform wouldn't compile.  (gdevpm.c)
73747dd7cddfSDavid du Colombier	- The auxiliary VMS command files sometimes got blank lines
73757dd7cddfSDavid du Colombierinserted when going through EOL conversion.  (vms.mak; delete gs_.com)
73767dd7cddfSDavid du Colombier	- The VMS makefiles didn't include the Level 1 operators in
73777dd7cddfSDavid du Colombierlevel1.dev.  (vms.mak)
73787dd7cddfSDavid du Colombier	- The VMS gcc makefile didn't handle undefined DEVICE_DEVSn
73797dd7cddfSDavid du Colombiervariables properly.  (vms*.mak)
73807dd7cddfSDavid du Colombier	- The VMS makefiles didn't recognize DEVICE_DEVS{1,2,5,7}.
73817dd7cddfSDavid du Colombier(vms.mak)
73827dd7cddfSDavid du Colombier
73837dd7cddfSDavid du ColombierAt the request of a Unix expert, changes all the Unix shell scripts to use
73847dd7cddfSDavid du Colombierexec gs ... "$@" rather than gs ... $*.  (gsnd, gsbj, gsdj, gslj, gslp)
73857dd7cddfSDavid du Colombier
73867dd7cddfSDavid du ColombierModifies the JPEG library so that it uses 4K less of the automatic data
73877dd7cddfSDavid du Colombiersegment in 16-bit environments.  (bcwin.mak, jpeg.mak, sjpeg.c, sjpegerr.c)
73887dd7cddfSDavid du Colombier
73897dd7cddfSDavid du ColombierAdds the bmp drivers back into the 16-bit MS Windows executable, since they
73907dd7cddfSDavid du Colombierwill fit now.  (bcwin.mak)
73917dd7cddfSDavid du Colombier
73923ff48bf5SDavid du Colombier</pre><h3><a name="V3.20_Fonts"></a>Fonts</h3><pre>
73937dd7cddfSDavid du Colombier
73947dd7cddfSDavid du ColombierMakes the font substitution algorithm recognize the word Roman as calling
73957dd7cddfSDavid du Colombierfor a serif font.  (gs_fonts.ps)
73967dd7cddfSDavid du Colombier
73973ff48bf5SDavid du Colombier</pre><h3><a name="V3.20_Interpreters"></a>Interpreters</h3><pre>
73987dd7cddfSDavid du Colombier
73997dd7cddfSDavid du ColombierFixes bugs:
74007dd7cddfSDavid du Colombier	- The fix in 3.13 for the inexact function values at 0 didn't work.
74017dd7cddfSDavid du Colombier(zcontrol.c)
74027dd7cddfSDavid du Colombier	- Level 1 configurations referenced an undefined procedure
74037dd7cddfSDavid du Colombiergs_currenthalftone.  (gsht.c, gsht1.c)
74047dd7cddfSDavid du Colombier	- Specifying any device properties (including -r and -g) on the
74057dd7cddfSDavid du Colombiercommand line caused an error.  (gs_init.ps)
74067dd7cddfSDavid du Colombier	- The forward declaration of cfont_name_array_create was
74077dd7cddfSDavid du Colombierincorrect.  (iccfont.c)
74087dd7cddfSDavid du Colombier	- save and restore could get called before the graphics state stack
74097dd7cddfSDavid du Colombierhad been initialized properly.  (gs_mex_e.ps)
74107dd7cddfSDavid du Colombier	- Some encodings weren't loaded properly.  (gs.mak, gs_mex_e.ps,
74117dd7cddfSDavid du Colombiergs_mro_e.ps, gs_pdf_e.ps, gs_wan_e.ps)
74127dd7cddfSDavid du Colombier	- Zero-height images were allowed, but zero-width images
74137dd7cddfSDavid du Colombierweren't.  (zpaint.c)
74147dd7cddfSDavid du Colombier	- Neither zero-width nor zero-height images popped their
74157dd7cddfSDavid du Colombierarguments from the operand stack.  (zpaint.c)
74167dd7cddfSDavid du Colombier	- lib_file_fopen overwrote its file name argument, causing havoc
74177dd7cddfSDavid du Colombierwith @-files.  (gxiodev.h, gdevpipe.c, gsiodev.c, zfile.c)
74187dd7cddfSDavid du Colombier	- The garbage collector got confused if there were any arrays or
74197dd7cddfSDavid du Colombierdictionaries with 8K or more elements.  (igcref.c)
74207dd7cddfSDavid du Colombier	- &gt;&gt; could leave the stacks in a questionable state if it failed.
74217dd7cddfSDavid du Colombier(gs_init.ps)
74227dd7cddfSDavid du Colombier	- The Category resource category didn't implement undefineresource.
74237dd7cddfSDavid du Colombier(gs_res.ps)
74247dd7cddfSDavid du Colombier	- When the token operator read the last token from a string, it
74257dd7cddfSDavid du Colombierleft an unchanged string on the stack instead of an empty string.
74267dd7cddfSDavid du Colombier(stream.c)
74277dd7cddfSDavid du Colombier	- noaccess didn't give an invalidaccess error when applied to the
74287dd7cddfSDavid du Colombierpermanent dictionaries.  (dstack.h, idict.c, ztype.c)
74297dd7cddfSDavid du Colombier	- Overflowing the exec stack wasn't handled properly.  (istack.h,
74307dd7cddfSDavid du Colombieristack.c)
74317dd7cddfSDavid du Colombier	- The garbage collector cleared the cached value pointers in names,
74327dd7cddfSDavid du Colombiercausing interpretation to slow down substantially.  (idict.c, igc.c,
74337dd7cddfSDavid du Colombieriname.c)
74347dd7cddfSDavid du Colombier	- 0 dict created a dictionary with a maxlength of 1.  (idict.c)
74357dd7cddfSDavid du Colombier
74367dd7cddfSDavid du ColombierChanges the default size of the execution stack from 150 to 250, to match
74377dd7cddfSDavid du Colombierthe Adobe "typical" value.  (interp.c)
74387dd7cddfSDavid du Colombier
74397dd7cddfSDavid du ColombierMoves the operator definitions out of the automatic data segment.
74407dd7cddfSDavid du Colombier(opdef.h, iinit.c, z*.c)
74417dd7cddfSDavid du Colombier
74427dd7cddfSDavid du ColombierAdds operators that allow creation of objects in system space:
74437dd7cddfSDavid du Colombier.systemvmstring, .systemvmarray, .systemvmpackedarray, .systemvmdict,
74447dd7cddfSDavid du Colombier.systemvmcheck.  (zsysvm.c)
74457dd7cddfSDavid du Colombier
74467dd7cddfSDavid du ColombierRenames gcdefs.h as gscdefs.h.
74477dd7cddfSDavid du Colombier
74487dd7cddfSDavid du ColombierAllocates names in system space rather than global space.  (gsmain.c)
74497dd7cddfSDavid du Colombier
74507dd7cddfSDavid du ColombierChanges the memory manager so that it allows programs to create objects in
74517dd7cddfSDavid du Colombiersystem space.  (iref.h, iutil.h, ivmspace.h, ...)
74527dd7cddfSDavid du Colombier
74537dd7cddfSDavid du ColombierChanges the implementation of filters so they appear in their own
74547dd7cddfSDavid du Colombierdictionary named filterdict.  (gs_init.ps, z*.c)
74557dd7cddfSDavid du Colombier
74567dd7cddfSDavid du ColombierChanges the implementation of color spaces so each one has its own
74577dd7cddfSDavid du Colombiersetcolorspace procedure, defined in a new dictionary named
74587dd7cddfSDavid du Colombiercolorspacedict.  (gs_lev2.ps, z*.c)
74597dd7cddfSDavid du Colombier
74607dd7cddfSDavid du ColombierAdds a new debugging switch, $, that always initializes all fields in a
74617dd7cddfSDavid du Colombierref, in order to keep Purify happy.  (store.h)
74627dd7cddfSDavid du Colombier
74633ff48bf5SDavid du Colombier</pre><h3><a name="V3.20_Library"></a>Library</h3><pre>
74647dd7cddfSDavid du Colombier
74657dd7cddfSDavid du ColombierFixes bugs:
74667dd7cddfSDavid du Colombier	- The page size for image devices was always set to (0, 0).
74677dd7cddfSDavid du Colombier(gsdevice.c)
74687dd7cddfSDavid du Colombier	- The PageSize computation in gx_default_put_params could overflow
74697dd7cddfSDavid du Colombieron 16-bit machines.  (gsdparam.c)
74707dd7cddfSDavid du Colombier	- An omitted 'static' on an initialized array caused a compiler
74717dd7cddfSDavid du Colombiererror.  (gxccman.c)
74727dd7cddfSDavid du Colombier	- If interpolated image rendering was requested but not
74737dd7cddfSDavid du Colombieractually carried out, gs_image_cleanup could attempt to free a random
74747dd7cddfSDavid du Colombierpointer.  (gsimage.c)
74757dd7cddfSDavid du Colombier	- Some compilers only retain 23 characters of procedure names, but
74767dd7cddfSDavid du Colombiersome procedure names weren't unique in the first 23 characters.  (gscie.c,
74777dd7cddfSDavid du Colombiergscolor.c, gscolor1.c, gxcmap.c)
74787dd7cddfSDavid du Colombier	- The garbage collector didn't trace device colors properly.
74797dd7cddfSDavid du Colombier(gxdcolor.h, gzht.h, gsimage1.c, gspcolor.c, gxcht.c, gxcmap.c, gxdraw.c,
74807dd7cddfSDavid du Colombiergxht.c)
74817dd7cddfSDavid du Colombier	- For CMYK devices, the transfer functions were being applied to
74827dd7cddfSDavid du Colombierthe CMYK values rather than the complemented RGBW values.  (gxcmap.c)
74837dd7cddfSDavid du Colombier	- Memory devices used their own color mapping procedures rather
74847dd7cddfSDavid du Colombierthan those of the target; this could cause incorrect colors for patterns on
74857dd7cddfSDavid du Colombierdevices with more than 1 bit per pixel.  (gxdevmem.h, gdevmem1.c, gdevpm.c,
74867dd7cddfSDavid du Colombiergdevprn.c, gdevwdib.c, gschar.c, gsdevice.c, gxccache.c, gxccman.c,
74877dd7cddfSDavid du Colombiergxclip2.c, gxclread.c, gxpcmap.c)
74887dd7cddfSDavid du Colombier	- The garbage collector didn't trace image enumerators properly in
74897dd7cddfSDavid du Colombierthe image_render_simple case.  (gsimage.c)
74907dd7cddfSDavid du Colombier	- stroke produced different-looking output for thin (zero-width)
74917dd7cddfSDavid du Colombierlines depending on whether or not clipping was invoked.  (gxstroke.c)
74927dd7cddfSDavid du Colombier	- If a clipping list changed from multiple rectangles to a single
74937dd7cddfSDavid du Colombierrectangle, it could fail to clip properly thereafter.  (gxacpath.c)
74947dd7cddfSDavid du Colombier
74957dd7cddfSDavid du ColombierAdds two new device procedures: alpha_bits and copy_alpha.  This change is
74967dd7cddfSDavid du Colombierbackward-compatible for all existing devices.  (gdevmem.h, gxdevice.h,
74977dd7cddfSDavid du Colombiergsdevice.c, gxclip2.c, gxclist.c, gxcpath.c)
74987dd7cddfSDavid du Colombier
74997dd7cddfSDavid du ColombierChanges the implementation of color halftones so that, when appropriate, it
75007dd7cddfSDavid du Colombiergenerates a single cell and uses the device tile_rectangle procedure.
75017dd7cddfSDavid du Colombier(gzht.h, gsht.c, gxcht.c, gxclist.c, gxclread.c)
75027dd7cddfSDavid du Colombier
75037dd7cddfSDavid du ColombierAdds partial support for the Orientation page device parameter.
75047dd7cddfSDavid du Colombier(gsdevice.c)
75057dd7cddfSDavid du Colombier
75067dd7cddfSDavid du ColombierAdds support for anti-aliased characters using 2 or 4 bits of alpha.
75077dd7cddfSDavid du Colombier(gxfcache.h, gschar.c, gxccache.c)
75087dd7cddfSDavid du Colombier
75093ff48bf5SDavid du Colombier</pre>
75107dd7cddfSDavid du Colombier
75113ff48bf5SDavid du Colombier<hr>
75123ff48bf5SDavid du Colombier
75133ff48bf5SDavid du Colombier<h2><a name="Version3.13"></a>Version 3.13(private) (10/3/94)</h2>
75143ff48bf5SDavid du Colombier
75153ff48bf5SDavid du Colombier<p>
75167dd7cddfSDavid du ColombierThis release was created for a customer; it was not distributed to the
75177dd7cddfSDavid du Colombierpublic.
75187dd7cddfSDavid du Colombier
75193ff48bf5SDavid du Colombier<h3><a name="V3.13_Documentation"></a>Documentation</h3><pre>
75207dd7cddfSDavid du ColombierNotes in make.doc that the file names in the IJG archive distributed with
75217dd7cddfSDavid du ColombierGhostscript do not include the gsA.BC/ prefix.  (make.doc)
75227dd7cddfSDavid du Colombier
75237dd7cddfSDavid du ColombierAdds a cross-reference to make.doc to the Watcom makefiles.  (watc.mak,
75247dd7cddfSDavid du Colombierwatcwin.mak, wccommon.mak)
75257dd7cddfSDavid du Colombier
75263ff48bf5SDavid du Colombier</pre><h3><a name="V3.13_Procedures"></a>Procedures</h3><pre>
75277dd7cddfSDavid du Colombier
75287dd7cddfSDavid du ColombierFixes bugs:
75297dd7cddfSDavid du Colombier	- The makefile rule for gconfig.h et al had a couple of blank lines
75307dd7cddfSDavid du Colombierin the middle of it.  (gs.mak)
75317dd7cddfSDavid du Colombier
75323ff48bf5SDavid du Colombier</pre><h3><a name="V3.13_Utilities"></a>Utilities</h3><pre>
75337dd7cddfSDavid du Colombier
75347dd7cddfSDavid du ColombierFixes bugs:
75357dd7cddfSDavid du Colombier	- wrfont.ps didn't add a lenIV entry to the Private dictionary if
75367dd7cddfSDavid du Colombierit was needed.  (wrfont.ps)
75377dd7cddfSDavid du Colombier
75387dd7cddfSDavid du ColombierAdds a packfile.ps utility that allows compressing multiple files into a
75397dd7cddfSDavid du Colombiersingle file for environments with very little permanent storage.
75407dd7cddfSDavid du Colombier(gs_pfile.ps, packfile.ps, wrfont.ps)
75417dd7cddfSDavid du Colombier
75423ff48bf5SDavid du Colombier</pre><h3><a name="V3.13_Drivers"></a>Drivers</h3><pre>
75437dd7cddfSDavid du Colombier
75447dd7cddfSDavid du ColombierFixes bugs:
75457dd7cddfSDavid du Colombier	- The {tiff,fax}{g32d,g4} devices could produce incorrect output.
75467dd7cddfSDavid du ColombierSee under Streams below.
75477dd7cddfSDavid du Colombier	- The dfax drivers referred to the obsolete structure member
75487dd7cddfSDavid du ColombierEncodedEOLAlign.  (gdevdfax.c)
75497dd7cddfSDavid du Colombier
75507dd7cddfSDavid du ColombierChanges the default bit order for TIFF/F output to little-endian, which is
75517dd7cddfSDavid du Colombierapparently what the majority of TIFF decoders like best.  The bit order for
75527dd7cddfSDavid du Colombierthe fax drivers is still big-endian.  (gdevdfax.c, gdevtfax.c)
75537dd7cddfSDavid du Colombier
75543ff48bf5SDavid du Colombier</pre><h3><a name="V3.13_Platforms"></a>Platforms</h3><pre>
75557dd7cddfSDavid du Colombier
75567dd7cddfSDavid du ColombierFixes bugs:
75577dd7cddfSDavid du Colombier	- The VMS build script used -a rather than -w for creating
75587dd7cddfSDavid du Colombiergconfig_.h.  (vms.mak)
75597dd7cddfSDavid du Colombier	- The VMS build script didn't create gconfigv.h.  (vms.mak)
75607dd7cddfSDavid du Colombier	- The VMS Fontmap had incorrect entries for the Bitstream Charter
75617dd7cddfSDavid du Colombierfonts.  (fontmap.vms)
75627dd7cddfSDavid du Colombier	- The VMS MODULES.LIS file assumed the JPEG library files were in
75637dd7cddfSDavid du Colombierdirectory JPEG rather than JPEG-5.  (modules.lis)
75647dd7cddfSDavid du Colombier
75653ff48bf5SDavid du Colombier</pre><h3><a name="V3.13_Fonts"></a>Fonts</h3><pre>
75667dd7cddfSDavid du Colombier
75677dd7cddfSDavid du ColombierFixes bugs:
75687dd7cddfSDavid du Colombier	- Using DISKFONTS resulted in an invalidaccess error.
75697dd7cddfSDavid du Colombier(gs_fonts.ps)
75707dd7cddfSDavid du Colombier
75713ff48bf5SDavid du Colombier</pre><h3><a name="V3.13_Interpreter"></a>Interpreter</h3><pre>
75727dd7cddfSDavid du Colombier
75737dd7cddfSDavid du ColombierFixes bugs:
75747dd7cddfSDavid du Colombier	- The standard transfer function considered gray values above
75757dd7cddfSDavid du Colombierroughly 0.994 equivalent to white; 0.999 is a better value.  (gs_init.ps)
75767dd7cddfSDavid du Colombier	- The transfer, black generation, and undercolor removal functions
75777dd7cddfSDavid du Colombiergave slightly inexact results for an input value of 0.  (zcolor.c,
75787dd7cddfSDavid du Colombierzcontrol.c)
75797dd7cddfSDavid du Colombier	- setpagedevice gave an /undefined error if it did not recognize a
75807dd7cddfSDavid du Colombierkey, rather than ignoring the key.  (zdevice.c, gs_init.ps, gs_lev2.ps,
75817dd7cddfSDavid du Colombiergs_setpd.ps)
75827dd7cddfSDavid du Colombier
75837dd7cddfSDavid du ColombierChanges .putdeviceparams to take an additional argument, a Boolean that
75847dd7cddfSDavid du Colombiersays whether or not unrecognized keys should be reported as /undefined
75857dd7cddfSDavid du Colombiererrors.  THIS IS A NON-BACKWARD-COMPATIBLE CHANGE; however, no user-written
75867dd7cddfSDavid du Colombiercode should be calling .putdeviceparams.  (zdevice.c)
75877dd7cddfSDavid du Colombier
75883ff48bf5SDavid du Colombier</pre><h3><a name="V3.13_Streams"></a>Streams</h3><pre>
75897dd7cddfSDavid du Colombier
75907dd7cddfSDavid du ColombierFixes bugs:
75917dd7cddfSDavid du Colombier	- The Group 3 2-D and Group 4 fax encoders could emit incorrect
75927dd7cddfSDavid du Colombieroutput.  (scfe.c)
75937dd7cddfSDavid du Colombier	- The algorithm for constructing optimal Huffman codes could
75947dd7cddfSDavid du Colombierproduce invalid codes in some rare cases.  (shcgen.c)
75957dd7cddfSDavid du Colombier
75963ff48bf5SDavid du Colombier</pre><h3><a name="V3.13_Library"></a>Library</h3><pre>
75977dd7cddfSDavid du Colombier
75987dd7cddfSDavid du ColombierFixes bugs:
75997dd7cddfSDavid du Colombier	- Rectangles closed with lineto rather than closepath weren't
76007dd7cddfSDavid du Colombierrecognized as rectangles.  (This only affected performance, not
76017dd7cddfSDavid du Colombierfunctionality.)  (gxpath2.c)
76027dd7cddfSDavid du Colombier	- The xfont lookup_font procedure could get called with a matrix
76037dd7cddfSDavid du Colombierwhose translation components had never been initialized.  (gxccman.c)
76047dd7cddfSDavid du Colombier	- Some compilers don't allow \ in the formal argument list of a
76057dd7cddfSDavid du Colombierpreprocessor macro.  (gdevprn.h, gxdevice.h)
76067dd7cddfSDavid du Colombier
76073ff48bf5SDavid du Colombier</pre>
76087dd7cddfSDavid du Colombier
76093ff48bf5SDavid du Colombier<h2><a name="Version3.12"></a>Version 3.12 (9/29/94)</h2>
76103ff48bf5SDavid du Colombier
76113ff48bf5SDavid du Colombier<p>
76127dd7cddfSDavid du ColombierThis is another bug fix release, the first Level 2 release that we believe
76137dd7cddfSDavid du Colombieris reasonably reliable.
76147dd7cddfSDavid du Colombier
76153ff48bf5SDavid du Colombier<h3><a name="V3.12_Documentation"></a>Documentation</h3><pre>
76167dd7cddfSDavid du Colombier
76177dd7cddfSDavid du ColombierAdds some text warning about making copies of the makefile.  (make.doc)
76187dd7cddfSDavid du Colombier
76193ff48bf5SDavid du Colombier</pre><h3><a name="V3.12_Procedures"></a>Procedures</h3><pre>
76207dd7cddfSDavid du Colombier
76217dd7cddfSDavid du ColombierFixes bugs:
76227dd7cddfSDavid du Colombier	- There were a number of unnecessary dependencies on $(MAKEFILE) in
76237dd7cddfSDavid du Colombiergs.mak, left over from before the existence of gconfigv.h.  (gs.mak)
76247dd7cddfSDavid du Colombier	- JPEGSRC was defined in gs.mak rather than in jpeg.mak.  (gs.mak,
76257dd7cddfSDavid du Colombierjpeg.mak)
76267dd7cddfSDavid du Colombier
76277dd7cddfSDavid du ColombierChanges the version numbering scheme back to A.BC, since people seem to be
76287dd7cddfSDavid du Colombieradapting to the change, and this allows using the version number directly
76297dd7cddfSDavid du Colombieras a MS-DOS directory name.  (gconfig.c, gdevtfax.c, gs.c, gs_init.ps)
76307dd7cddfSDavid du Colombier
76317dd7cddfSDavid du ColombierUpdates the JPEG library to version 5 (official release) of the IJG code.
76327dd7cddfSDavid du Colombier(jpeg/*, jpeg.mak)
76337dd7cddfSDavid du Colombier
76343ff48bf5SDavid du Colombier</pre><h3><a name="V3.12_Drivers"></a>Drivers</h3><pre>
76357dd7cddfSDavid du Colombier
76367dd7cddfSDavid du ColombierFixes bugs:
76377dd7cddfSDavid du Colombier	- The TIFF/F driver put out invalid PageNumber and Software
76387dd7cddfSDavid du Colombierentries.  (gdevtifs.h, gdevtfax.c)
76397dd7cddfSDavid du Colombier	- The TIFF/F and fax Group 3 2-D drivers used K=3 and K=5 instead
76407dd7cddfSDavid du Colombierof K=2 and K=4.  (gdevtfax.c)
76417dd7cddfSDavid du Colombier	- The TIFF/F and fax Group 3 2-D drivers emitted improperly aligned
76427dd7cddfSDavid du Colombieroutput.  (See under Streams below.)
76437dd7cddfSDavid du Colombier	- The MS Windows driver didn't resize the window properly in
76447dd7cddfSDavid du Colombierresponse to changing the device parameters.  (gdevmswn.c)
76457dd7cddfSDavid du Colombier
76467dd7cddfSDavid du ColombierBecause of complementary bugs in various C compilers, changes all the
76477dd7cddfSDavid du Colombiernon-printer devices to use a different set of macros.  (gdevmem.h,
76487dd7cddfSDavid du Colombiergdevpcfb.h, gdevprn.h, gdevsvga.h, gxdevice.h, gdev{3b1, bgi, herc, l256,
76497dd7cddfSDavid du Colombierpe, pm, sun, vglb, wddb, wdib, wprn, x}.c, gsdevice.c, gxacpath.c,
76507dd7cddfSDavid du Colombiergxclip2.c, gxcpath.c, gxpcmap.c, zupath.c)
76517dd7cddfSDavid du Colombier
76527dd7cddfSDavid du ColombierChanges the X11 driver to ignore the "margins" specified by Ghostview.
76537dd7cddfSDavid du ColombierThis is apparently necessary for Ghostview to handle landscape display
76547dd7cddfSDavid du Colombierproperly.  (gdevxini.c)
76557dd7cddfSDavid du Colombier
76567dd7cddfSDavid du ColombierAdds a WindowID parameter to the X11 device, to allow setting the window
76577dd7cddfSDavid du Colombierfor the output.  (gdevx.h, gdevx.c, gdevxini.c)
76587dd7cddfSDavid du Colombier
76593ff48bf5SDavid du Colombier</pre><h3><a name="V3.12_Platforms"></a>Platforms</h3><pre>
76607dd7cddfSDavid du Colombier
76617dd7cddfSDavid du ColombierFixes bugs:
76627dd7cddfSDavid du Colombier	- The definition of BEGINFILES in os2.mak occurred too late in the
76637dd7cddfSDavid du Colombierfile to have the desired effect.  (os2.mak)
76647dd7cddfSDavid du Colombier
76653ff48bf5SDavid du Colombier</pre><h3><a name="V3.12_Interpreter"></a>Interpreter</h3><pre>
76667dd7cddfSDavid du Colombier
76677dd7cddfSDavid du ColombierFixes bugs:
76687dd7cddfSDavid du Colombier	- Updating the list of allocated file objects at a restore didn't
76697dd7cddfSDavid du Colombierclear the prev pointer of the new head, which could cause the garbage
76707dd7cddfSDavid du Colombiercollector to encounter an invalid pointer.  (Bug introduced by .forgetsave
76717dd7cddfSDavid du Colombierin 3.0.3.)  (zfile.c)
76727dd7cddfSDavid du Colombier
76733ff48bf5SDavid du Colombier</pre><h3><a name="V3.12_Streams"></a>Streams</h3><pre>
76747dd7cddfSDavid du Colombier
76757dd7cddfSDavid du ColombierFixes bugs:
76767dd7cddfSDavid du Colombier	- The CCITTFaxEncode filter with K &gt; 0 and EncodedByteAlign = true
76777dd7cddfSDavid du Colombierincorrectly aligned the 1-D/2-D bit as the last bit of a byte, rather than
76787dd7cddfSDavid du Colombierthe first bit.  (scfx.h, scfe.c)
76797dd7cddfSDavid du Colombier	- eexec could loop indefinitely under certain conditions.
76807dd7cddfSDavid du Colombier(seexec.c)
76817dd7cddfSDavid du Colombier	- eexec's algorithm for recognizing text vs. binary encoding didn't
76827dd7cddfSDavid du Colombierwork properly in some cases that don't conform to the Adobe Type 1 Font
76837dd7cddfSDavid du ColombierFormat documentation.  (seexec.c)
76847dd7cddfSDavid du Colombier	- Closing a stream didn't clear out the strm and state pointers,
76857dd7cddfSDavid du Colombierwhich could cause invalid accesses by the garbage collector.  (stream.c)
76867dd7cddfSDavid du Colombier
76873ff48bf5SDavid du Colombier</pre><h3><a name="V3.12_Library"></a>Library</h3><pre>
76887dd7cddfSDavid du Colombier
76897dd7cddfSDavid du ColombierFixes bugs:
76907dd7cddfSDavid du Colombier	- fill_loop could loop indefinitely under certain conditions.
76917dd7cddfSDavid du Colombier(Introduced by a bug fix in 3.1.)  (gxfill.c)
76927dd7cddfSDavid du Colombier	- fill/eofill sometimes failed to paint parts of a region.
76937dd7cddfSDavid du Colombier(Introduced by a bug fix in 3.1.1.)  (gxfill.c)
76947dd7cddfSDavid du Colombier	- Non-convex clipping paths sometimes omitted thin horizontal
76957dd7cddfSDavid du Colombierslivers of the region.  (Probably introduced by the "thin graphics" fix in
76967dd7cddfSDavid du Colombier3.1.)  (gxacpath.c)
76977dd7cddfSDavid du Colombier
76983ff48bf5SDavid du Colombier</pre>
76997dd7cddfSDavid du Colombier
77003ff48bf5SDavid du Colombier<h2><a name="Version3.1.1"></a>Version 3.1.1 (9/25/94)</h2>
77013ff48bf5SDavid du Colombier
77023ff48bf5SDavid du Colombier<p>
77037dd7cddfSDavid du ColombierThis is primarily a bug fix release.  It was originally intended for some
77047dd7cddfSDavid du Colombiercommercial licensees, but beta testers found too many problems with it.
77057dd7cddfSDavid du Colombier
77063ff48bf5SDavid du Colombier<h3><a name="V3.1.1_Documentation"></a>Documentation</h3><pre>
77077dd7cddfSDavid du Colombier
77087dd7cddfSDavid du ColombierFixes bugs:
77097dd7cddfSDavid du Colombier	- NEWS didn't indicate that there was a non-backward-compatible
77107dd7cddfSDavid du Colombierchange in the gx_device structure -- specifically, that l_margin,
77117dd7cddfSDavid du Colombierb_margin, r_margin, and t_margin were replaced by macros named
77127dd7cddfSDavid du Colombierdev_l_margin(dev), etc.  (news)
77137dd7cddfSDavid du Colombier
77147dd7cddfSDavid du ColombierDescribes the two-phase commit requirement for device put_params
77157dd7cddfSDavid du Colombierprocedures.  (drivers.doc, gsparam.h)
77167dd7cddfSDavid du Colombier
77173ff48bf5SDavid du Colombier</pre><h3><a name="V3.1.1_Procedures"></a>Procedures</h3><pre>
77187dd7cddfSDavid du Colombier
77197dd7cddfSDavid du ColombierFixes bugs:
77207dd7cddfSDavid du Colombier	- The new S macro in genarch.c didn't work on compilers that do
77217dd7cddfSDavid du Colombiermacro substitution within string constants (which is forbidden by the ANSI
77227dd7cddfSDavid du Colombierstandard).  (genarch.c)
77237dd7cddfSDavid du Colombier
77243ff48bf5SDavid du Colombier</pre><h3><a name="V3.1.1_Drivers"></a>Drivers</h3><pre>
77257dd7cddfSDavid du Colombier
77267dd7cddfSDavid du ColombierFixes bugs:
77277dd7cddfSDavid du Colombier	- Driver put_params implementations didn't observe a "two-phase
77287dd7cddfSDavid du Colombiercommit" discipline; this could lead to the current device in the graphics
77297dd7cddfSDavid du Colombierstate being closed, and other inconsistencies.  (gsparam.h, gxdevice.h,
77307dd7cddfSDavid du Colombieriparam.h, gdevbit.c, gdevcdj.c, gdevmswn.c, gdevpcfb.c, gdevpm.c,
77317dd7cddfSDavid du Colombiergdevprn.c, gdevx.c, gsdevice.c, gsdparam.c, zdevice.c, ziodev2.c, zmisc2.c)
77327dd7cddfSDavid du ColombierTHIS IS A NON-BACKWARD-COMPATIBLE CHANGE; however, it only affects
77337dd7cddfSDavid du Colombierput_params implementations, of which there are few.
77347dd7cddfSDavid du Colombier
77357dd7cddfSDavid du ColombierNOTE THE NON-BACKWARD-COMPATIBLE CHANGE IN THE gx_device STRUCTURE UNDER
77367dd7cddfSDavid du Colombier'Documentation' ABOVE.  (gdevescp.c, gdevsj48.c, gdevsppr.c, gdevxini.c)
77377dd7cddfSDavid du Colombier
77383ff48bf5SDavid du Colombier</pre><h3><a name="V3.1.1_Platforms"></a>Platforms</h3><pre>
77397dd7cddfSDavid du Colombier
77407dd7cddfSDavid du ColombierEnsures that the Unix makefiles all include all the variants of TIFF/F and
77417dd7cddfSDavid du Colombierfax drivers.  (ansihead.mak, cc-head.mak, gcc-head.mak)
77427dd7cddfSDavid du Colombier
77433ff48bf5SDavid du Colombier</pre><h3><a name="V3.1.1_Interpreter"></a>Interpreter</h3><pre>
77447dd7cddfSDavid du Colombier
77457dd7cddfSDavid du ColombierFixes bugs:
77467dd7cddfSDavid du Colombier	- Most of the contents of statusdict were missing when
77477dd7cddfSDavid du Colombierrunning a Level 2 system in Level 1 mode.  (zmisc2.c)
77487dd7cddfSDavid du Colombier
77493ff48bf5SDavid du Colombier</pre>
77507dd7cddfSDavid du Colombier
77513ff48bf5SDavid du Colombier<h2><a name="Version3.1"></a>Version 3.1 (9/20/94)</h2>
77523ff48bf5SDavid du Colombier
77533ff48bf5SDavid du Colombier<p>
77547dd7cddfSDavid du ColombierThis release finally includes a usable subset implementation of
77557dd7cddfSDavid du Colombiersetpagedevice, including all the machinery needed to address the
77567dd7cddfSDavid du Colombierlong-standing "margins" problems.
77577dd7cddfSDavid du Colombier
77583ff48bf5SDavid du Colombier<h3><a name="V3.1_Documentation"></a>Documentation</h3><pre>
77597dd7cddfSDavid du Colombier
77607dd7cddfSDavid du ColombierFixes bugs:
77617dd7cddfSDavid du Colombier	- t_oparray objects weren't identified as behaving differently
77627dd7cddfSDavid du Colombierdepending on whether they were marked executable.  (iref.h)
77637dd7cddfSDavid du Colombier	- drivers.doc had gx_color_value instead of gx_color_index in
77647dd7cddfSDavid du Colombierthe description of color mapping.  (drivers.doc)
77657dd7cddfSDavid du Colombier
77667dd7cddfSDavid du ColombierUpdates drivers.doc to reflect the change from static_procs to
77677dd7cddfSDavid du Colombierstd_procs in the gx_device structure.  (drivers.doc)
77687dd7cddfSDavid du Colombier
77693ff48bf5SDavid du Colombier</pre><h3><a name="V3.1_Procedures"></a>Procedures</h3><pre>
77707dd7cddfSDavid du Colombier
77717dd7cddfSDavid du ColombierFixes bugs:
77727dd7cddfSDavid du Colombier	- The commands for building the JPEG library used rm instead
77737dd7cddfSDavid du Colombierof rm -f.  (jpeg.mak)
77747dd7cddfSDavid du Colombier
77753ff48bf5SDavid du Colombier</pre><h3><a name="V3.1_Drivers"></a>Drivers</h3><pre>
77767dd7cddfSDavid du Colombier
77777dd7cddfSDavid du ColombierFixes bugs:
77787dd7cddfSDavid du Colombier	- The X Windows driver hadn't been updated to reflect some
77797dd7cddfSDavid du Colombiername changes in members of the gx_color_info structure.  (gdevx.h,
77807dd7cddfSDavid du Colombiergdevx.c, gdevxini.c)
77817dd7cddfSDavid du Colombier
77827dd7cddfSDavid du ColombierChanges all non-printer drivers so that they use the new std_device_body
77837dd7cddfSDavid du Colombiermacros.  (gdev*.c)
77847dd7cddfSDavid du Colombier
77857dd7cddfSDavid du ColombierAdds a print_page_copies procedure for printer drivers, allowing the
77867dd7cddfSDavid du Colombierdriver to receive num_copies.  (gdevprn.h, gdevprn.c)
77877dd7cddfSDavid du Colombier
77883ff48bf5SDavid du Colombier</pre><h3><a name="V3.1_Interpreter"></a>Interpreter</h3><pre>
77897dd7cddfSDavid du Colombier
77907dd7cddfSDavid du ColombierFixes bugs:
77917dd7cddfSDavid du Colombier	- ref_memory_enum/reloc_ptrs were declared inconsistently.
77927dd7cddfSDavid du Colombier(ialloc.c)
77937dd7cddfSDavid du Colombier	- If the operand of restore was invalid, the restore did
77947dd7cddfSDavid du Colombiernothing, instead of giving a typecheck.  (zvmem.c)
77957dd7cddfSDavid du Colombier	- In Level 2, the margins and setmargins compatibility
77967dd7cddfSDavid du Colombieroperators were defined incorrectly in terms of current/setpagedevice.
77977dd7cddfSDavid du Colombier(gs_lev2.ps)
77987dd7cddfSDavid du Colombier
77997dd7cddfSDavid du ColombierEnables .makeoperator to make local operators as well as global ones.
78007dd7cddfSDavid du Colombier(opdef.h, iinit.c, zmisc.c, zpacked.c)
78017dd7cddfSDavid du Colombier
78027dd7cddfSDavid du ColombierFinishes implementing the TransferFunction entry in halftone
78037dd7cddfSDavid du Colombierdictionaries.  (zht1.c, zht2.c)
78047dd7cddfSDavid du Colombier
78057dd7cddfSDavid du ColombierAdds .set/currentfilladjust operators for access to the fill
78067dd7cddfSDavid du Colombieradjustment parameter in the graphics state.  (zgstate.h)
78077dd7cddfSDavid du Colombier
78087dd7cddfSDavid du ColombierRemoves the deviceinitialmatrix operator.  (zdevice.c)
78097dd7cddfSDavid du Colombier
78107dd7cddfSDavid du ColombierChanges defaultmatrix from a procedure to an operator.  (zmatrix.c)
78117dd7cddfSDavid du Colombier
78127dd7cddfSDavid du ColombierSets the fill adjustment to 0.5 for high-resolution devices, effectively
78137dd7cddfSDavid du Colombierimplementing Adobe's any-part-of-pixel filling rule.  (gs_init.ps)
78147dd7cddfSDavid du Colombier
78157dd7cddfSDavid du ColombierImplements a small but useful subset of setpagedevice.  (gs_lev2.ps)
78167dd7cddfSDavid du Colombier
78173ff48bf5SDavid du Colombier</pre><h3><a name="V3.1_Streams"></a>Streams</h3><pre>
78187dd7cddfSDavid du Colombier
78197dd7cddfSDavid du ColombierFixes bugs:
78207dd7cddfSDavid du Colombier	- The eexec decoder incorrectly concluded that its data was
78217dd7cddfSDavid du Colombierin hex form if the first data character was whitespace.  (seexec.c)
78227dd7cddfSDavid du Colombier
78233ff48bf5SDavid du Colombier</pre><h3><a name="V3.1_Library"></a>Library</h3><pre>
78247dd7cddfSDavid du Colombier
78257dd7cddfSDavid du ColombierFixes bugs:
78267dd7cddfSDavid du Colombier	- Thin graphics (e.g., lines or rectangles) with small angles
78277dd7cddfSDavid du Colombierrelative to the X axis rendered with many points missing.  (gxdraw.c,
78287dd7cddfSDavid du Colombiergxfill.c)
78297dd7cddfSDavid du Colombier	- The character cache rejected oversampled characters if the
78307dd7cddfSDavid du Colombierscaled-up size was too large, even if the scaled-down size wasn't.
78317dd7cddfSDavid du Colombier(gxchar.h, gschar.c, gxccache.c, gxccman.c)
78327dd7cddfSDavid du Colombier	- A call on sqrt with an integer argument didn't promote it
78337dd7cddfSDavid du Colombierexplicitly to double, which is required for non-ANSI compilers.
78347dd7cddfSDavid du Colombier(gshtscr.c)
78357dd7cddfSDavid du Colombier
78367dd7cddfSDavid du ColombierFinishes implementing the TransferFunction entry in halftone
78377dd7cddfSDavid du Colombierdictionaries.  (gsht1.c)
78387dd7cddfSDavid du Colombier
78397dd7cddfSDavid du ColombierModifies the character oversampler so it can produce gray scale
78407dd7cddfSDavid du Colombieroutput instead of a 1-bit mask.  We don't actually make use of this
78417dd7cddfSDavid du Colombierability yet.  (gxccman.c)
78427dd7cddfSDavid du Colombier
78437dd7cddfSDavid du ColombierAdds gs_set/currentfilladjust for access to the fill adjustment
78447dd7cddfSDavid du Colombierparameter in the graphics state.  (gsstate.h, gsstate.c)
78457dd7cddfSDavid du Colombier
78467dd7cddfSDavid du ColombierChanges the names of the last few routines beginning with gz_ to
78477dd7cddfSDavid du Colombierbegin with gx_ instead.  (gzdraw.h =&gt; gxdraw.h, gsimage*.c, gxdraw.c,
78487dd7cddfSDavid du Colombiergxfill.c, gxstroke.c)
78497dd7cddfSDavid du Colombier
78507dd7cddfSDavid du ColombierProperly implements the PageSize, Margins, .HWMargins, and ImagingBBox
78517dd7cddfSDavid du Colombierdevice parameters for all devices.  (gscoord.c, gsdparam.c, gspath2.c)
78527dd7cddfSDavid du ColombierImplements the NumCopies device parameter for printer devices.
78537dd7cddfSDavid du Colombier(gdevprn.c)
78547dd7cddfSDavid du Colombier
78557dd7cddfSDavid du ColombierImplements std_device_body macros to help insulate statically initialized
78567dd7cddfSDavid du Colombiernon-printer devices from future changes in the gx_device structure.
78577dd7cddfSDavid du Colombier(gxdevice.h, ... many .c files ...)
78587dd7cddfSDavid du Colombier
78593ff48bf5SDavid du Colombier</pre>
78607dd7cddfSDavid du Colombier
78613ff48bf5SDavid du Colombier<hr>
78623ff48bf5SDavid du Colombier
78633ff48bf5SDavid du Colombier<h2><a name="Version3.0.3"></a>Version 3.0.3 (9/16/94)</h2>
78643ff48bf5SDavid du Colombier
78653ff48bf5SDavid du Colombier<p>
78667dd7cddfSDavid du ColombierThis is primarily a bug fix release; it also implements most of the
78677dd7cddfSDavid du Colombierremaining Level 2 loose ends (except for setpagedevice).
78687dd7cddfSDavid du Colombier
78693ff48bf5SDavid du Colombier<h3><a name="V3.0.3_Documentation"></a>Documentation</h3><pre>
78707dd7cddfSDavid du Colombier
78717dd7cddfSDavid du ColombierChanges code that refers to "Ghostscript" to use the correct product
78727dd7cddfSDavid du Colombiername from gs_product.  (gs.mak, gdevpbm.c, gdevsun.c, gswppm.c)
78737dd7cddfSDavid du Colombier
78747dd7cddfSDavid du ColombierDocuments the new .forgetsave operator.  (language.doc)
78757dd7cddfSDavid du Colombier
78767dd7cddfSDavid du ColombierClarifies the distinction between commercial licensing and single-copy
78777dd7cddfSDavid du Colombierend-user sales.  (readme)
78787dd7cddfSDavid du Colombier
78793ff48bf5SDavid du Colombier</pre><h3><a name="V3.0.3_Procedures"></a>Procedures</h3><pre>
78807dd7cddfSDavid du Colombier
78817dd7cddfSDavid du ColombierFixes bugs:
78827dd7cddfSDavid du Colombier	- The compilation rule for gdevadmp.c was missing from the
78837dd7cddfSDavid du Colombiermakefile.  (devs.mak)
78847dd7cddfSDavid du Colombier
78857dd7cddfSDavid du ColombierChanges the version numbering scheme back to A.B.C, since too many
78867dd7cddfSDavid du Colombierpeople got confused by the change to A.BC.  (gconfig.c, gs.c,
78877dd7cddfSDavid du Colombiergs_init.ps)
78887dd7cddfSDavid du Colombier
78897dd7cddfSDavid du ColombierAdds a -dNOGC switch to prevent the garbage collector from being
78907dd7cddfSDavid du Colombierenabled.  (gs_init.ps)
78917dd7cddfSDavid du Colombier
78923ff48bf5SDavid du Colombier</pre><h3><a name="V3.0.3_Utilities"></a>Utilities</h3><pre>
78937dd7cddfSDavid du Colombier
78947dd7cddfSDavid du ColombierRemoves the ps2image utility, since the new psmono driver replaces it.
78957dd7cddfSDavid du Colombier
78963ff48bf5SDavid du Colombier</pre><h3><a name="V3.0.3_Drivers"></a>Drivers</h3><pre>
78977dd7cddfSDavid du Colombier
78987dd7cddfSDavid du ColombierFixes bugs:
78997dd7cddfSDavid du Colombier	- The TIFF drivers incorrectly assumed that short and ulong
79007dd7cddfSDavid du Colombierwere the same size as TIFF_short and TIFF_ulong, causing problems on
79017dd7cddfSDavid du Colombier64-bit systems.  (gdevtfax.c)
79027dd7cddfSDavid du Colombier	- The EGA/VGA driver didn't do gray halftones properly if it
79037dd7cddfSDavid du Colombierwas configured as a monochrome or 8-color device.  (gdevpcfb.h)
79047dd7cddfSDavid du Colombier	- The comment in gdevevga.c incorrectly identified the file
79057dd7cddfSDavid du Colombieras gdevpcfb.c.  (gdevevga.c)
79067dd7cddfSDavid du Colombier
79077dd7cddfSDavid du ColombierChanges the PC display drivers to save and restore more of the BIOS
79087dd7cddfSDavid du Colombierstate.  (gdevpcfb.h, gdevevga.c, gdevpcfb.c, gdevsco.c)
79097dd7cddfSDavid du Colombier
79107dd7cddfSDavid du ColombierAdds a new psmono driver that does the same thing as ps2image, faster
79117dd7cddfSDavid du Colombierand more conveniently.  (gdevpsim.c)
79127dd7cddfSDavid du Colombier
79137dd7cddfSDavid du ColombierReplaces the X11 driver with the one from 3.01, since the color
79147dd7cddfSDavid du Colombierhandling rewrite in 3.02 introduced serious bugs.  (gdevx.h, gdevx.c,
79157dd7cddfSDavid du Colombiergdevxini.c)
79167dd7cddfSDavid du Colombier
79173ff48bf5SDavid du Colombier</pre><h3><a name="V3.0.3_Platforms"></a>Platforms</h3><pre>
79187dd7cddfSDavid du Colombier
79197dd7cddfSDavid du ColombierChanges the definition of gx_no_color_index to work around one of the
79207dd7cddfSDavid du Colombierbugs in the SGI Irix compiler.  (gxdcolor.h)
79217dd7cddfSDavid du Colombier
79227dd7cddfSDavid du ColombierRewrites the installation commands in unix-end.mak so they don't have
79237dd7cddfSDavid du Colombiervery long lines.  (unix-end.mak)
79247dd7cddfSDavid du Colombier
79253ff48bf5SDavid du Colombier</pre><h3><a name="V3.0.3_Fonts"></a>Fonts</h3><pre>
79267dd7cddfSDavid du Colombier
79277dd7cddfSDavid du ColombierFixes bugs:
79287dd7cddfSDavid du Colombier	- Fonts that used 2- or 4-element arrays in the Metrics dictionary
79297dd7cddfSDavid du Colombierinterpreted the width and side bearing interchanged with each other.
79307dd7cddfSDavid du Colombier(gs_type1.ps)
79317dd7cddfSDavid du Colombier	- Setting FONTPATH on the command line didn't work.  (gs_fonts.ps)
79327dd7cddfSDavid du Colombier
79333ff48bf5SDavid du Colombier</pre><h3><a name="V3.0.3_Streams"></a>Streams</h3><pre>
79347dd7cddfSDavid du Colombier
79357dd7cddfSDavid du ColombierFixes bugs:
79367dd7cddfSDavid du Colombier	- The stream position wasn't updated properly if sgets
79377dd7cddfSDavid du Colombiercrossed a buffer boundary.  (stream.c)
79387dd7cddfSDavid du Colombier
79397dd7cddfSDavid du ColombierExtends the BoundedHuffman filters so they can encode and decode runs of
79407dd7cddfSDavid du Colombierzeros specially, and so they mark and detect EOD.  (sbhc.h, shc.h, sbhc.c,
79417dd7cddfSDavid du Colombierzfilter2.c)
79427dd7cddfSDavid du Colombier
79437dd7cddfSDavid du ColombierProvides an alternate implementation of file streams which doesn't use
79447dd7cddfSDavid du Colombierstdio buffering and which works around the System V "interrupted system
79457dd7cddfSDavid du Colombiercall" problem.  (stream.c, sfile.c, sfileno.c)
79467dd7cddfSDavid du Colombier
79477dd7cddfSDavid du ColombierIncreases the maximum LZW output code from 3000 to 4095.  (slzwe.c)
79487dd7cddfSDavid du Colombier
79493ff48bf5SDavid du Colombier</pre><h3><a name="V3.0.3_Interpreter"></a>Interpreter</h3><pre>
79507dd7cddfSDavid du Colombier
79517dd7cddfSDavid du ColombierFixes bugs:
79527dd7cddfSDavid du Colombier	- Opening a filter on a file of the wrong access type (read
79537dd7cddfSDavid du Colombiervs. write) didn't cause an error.  (stream.h, sbasic.c, zfile.c, zfileio.c)
79547dd7cddfSDavid du Colombier	- save performed an extra, unnecessary gsave.  (zvmem.c)
79557dd7cddfSDavid du Colombier	- sethalftone always gave a /undefined error.  (zht2.c)
79567dd7cddfSDavid du Colombier	- eexec decryption read too much data from the input -- in
79577dd7cddfSDavid du ColombierLevel 2, it isn't allowed to read 512 characters ahead.  (sfilter.h,
79587dd7cddfSDavid du Colombierstrimpl.h, seexec.c, sstring.c, zfileio.c, zmisc1.c)
79597dd7cddfSDavid du Colombier	- The scanner was too aggressive about allocating additional
79607dd7cddfSDavid du Colombierspace for strings on small machines.  (iscan.c)
79617dd7cddfSDavid du Colombier	- The AccurateScreens flag in Type 1 and Type 2 halftone
79627dd7cddfSDavid du Colombierdictionaries was being ignored.  (zht2.c)
79637dd7cddfSDavid du Colombier	- The Level 2 definition of margins in statusdict didn't
79647dd7cddfSDavid du Colombierallow for Margins being undefined in the current page device.
79657dd7cddfSDavid du Colombier(gs_lev2.ps)
79667dd7cddfSDavid du Colombier	- The Interpolate flag was being ignored in image
79677dd7cddfSDavid du Colombierdictionaries.  [implemented in library]
79687dd7cddfSDavid du Colombier	- The TransferFunction option was being ignored in halftone
79697dd7cddfSDavid du Colombierdictionaries.  (zht2.c)
79707dd7cddfSDavid du Colombier	- Type 5 halftones usually didn't work, because they called
79717dd7cddfSDavid du Colombierthe wrong (or an invalid) spot function.  (zht2.c)
79727dd7cddfSDavid du Colombier
79737dd7cddfSDavid du ColombierImplements a .forgetsave operator that effectively causes a given save (and
79747dd7cddfSDavid du Colombierall more recent saves) to disappear.  (isave.h, stream.h, isave.c, zfile.c,
79757dd7cddfSDavid du Colombierzvmem.c)
79767dd7cddfSDavid du Colombier
79773ff48bf5SDavid du Colombier</pre><h3><a name="V3.0.3_Library"></a>Library</h3><pre>
79787dd7cddfSDavid du Colombier
79797dd7cddfSDavid du ColombierFixes bugs:
79807dd7cddfSDavid du Colombier	- In the 1-operand form of the image operator, a Decode value of [1
79817dd7cddfSDavid du Colombier0] with 8-bit sample values and a single data source was treated the same
79827dd7cddfSDavid du Colombieras [0 1].  (gsimage1.c)
79837dd7cddfSDavid du Colombier	- Some Monotype fonts put a callsubr between an OtherSubr call and
79847dd7cddfSDavid du Colombierthe following 'pop' opcodes (which the Adobe documentation forbids); The
79857dd7cddfSDavid du ColombierType 1 font interpreter gave an invalidfont error rather than allowing
79867dd7cddfSDavid du Colombierthis.  (gxtype1.h, gstype1.c)
79877dd7cddfSDavid du Colombier	- Patterns didn't implement XStep and YStep properly.
79887dd7cddfSDavid du Colombier(gxpcolor.h, gspcolor.c, gxclip2.c)
79897dd7cddfSDavid du Colombier	- Clipping regions were sometimes 1 pixel too small at the edges;
79907dd7cddfSDavid du Colombierthis could cause vertical and horizontal lines produced by certain Windows
79917dd7cddfSDavid du Colombierdrivers to disappear.  (gzpath.h, gxacpath.c, gxcpath.c, gxfill.c)
79927dd7cddfSDavid du Colombier	- Oversampling cached rotated characters produced very bad
79937dd7cddfSDavid du Colombierresults (many dropouts).  (gschar.c)
79947dd7cddfSDavid du Colombier	- Rendering a DeviceGray color on a DeviceCMYK device applied
79957dd7cddfSDavid du Colombierthe transfer function to all 4 components, not just to the K
79967dd7cddfSDavid du Colombiercomponent.  (gxcmap.c)
79977dd7cddfSDavid du Colombier	- A screen specified with setcolorscreen didn't take effect
79987dd7cddfSDavid du Colombierproperly on CMYK devices.  (gsht.c)
79997dd7cddfSDavid du Colombier
80007dd7cddfSDavid du ColombierImplements the Interpolate option for images.  Currently this is only
80017dd7cddfSDavid du Colombierimplemented for portrait-orientation images (no rotation, skewing, or
80027dd7cddfSDavid du ColombierX-reflection).  (gscspace.h, gximage.h, gscie.c, gscolor.c, gscolor1.c,
80037dd7cddfSDavid du Colombiergscolor2.c, gspcolor.c, gxcmap.c, gsimage.c, gsimage2.c, gsimage3.c)
80047dd7cddfSDavid du Colombier
80057dd7cddfSDavid du ColombierImplements AccurateScreens, but only in the form of a larger limit on
80067dd7cddfSDavid du Colombierthe size of a halftone super-cell.  (gxht.h, gsht.c, gsht1.c)
80077dd7cddfSDavid du Colombier
80087dd7cddfSDavid du ColombierStarts to implement the TransferFunction option for halftones.
80097dd7cddfSDavid du Colombier(gzht.h, gzstate.h, gsht.c, ...too many others to list...)
80107dd7cddfSDavid du Colombier
80113ff48bf5SDavid du Colombier</pre>
80127dd7cddfSDavid du Colombier
80133ff48bf5SDavid du Colombier<h2><a name="Version3.02"></a>Version 3.02 (8/30/94)</h2>
80143ff48bf5SDavid du Colombier
80153ff48bf5SDavid du Colombier<p>
80167dd7cddfSDavid du ColombierThis is another bug fix release.  It was distributed only to a few people,
80177dd7cddfSDavid du Colombiersince the new X Windows color mapping code is not reliable yet.
80187dd7cddfSDavid du Colombier
80193ff48bf5SDavid du Colombier<h3><a name="V3.02_Documentation"></a>Documentation</h3><pre>
80207dd7cddfSDavid du Colombier
80217dd7cddfSDavid du ColombierFixes bugs:
80227dd7cddfSDavid du Colombier	- make.doc, but not unixtail.mak, called for setting PLATFORM=unix_
80237dd7cddfSDavid du Colombieron SVR4 platforms.  (unixtail.mak)
80247dd7cddfSDavid du Colombier	- drivers.doc contained some wording that suggested that
80257dd7cddfSDavid du ColombierGhostscript always used RGB colors internally.  (drivers.doc)
80267dd7cddfSDavid du Colombier	- The definition of gx_device in drivers.doc had gotten out of sync
80277dd7cddfSDavid du Colombierwith gxdevice.h.  (drivers.doc)
80287dd7cddfSDavid du Colombier	- README claimed that Ghostscript is not compatible with the
80297dd7cddfSDavid du ColombierVAX/VMS DEC C compiler, which is no longer true.  (readme)
80307dd7cddfSDavid du Colombier
80317dd7cddfSDavid du ColombierAdds a new section on printer drivers to drivers.doc.  (drivers.doc)
80327dd7cddfSDavid du Colombier
80337dd7cddfSDavid du ColombierAdds a large number of new display boards to the 800x600 SVGA section of
80347dd7cddfSDavid du Colombieruse.doc.  (use.doc)
80357dd7cddfSDavid du Colombier
80367dd7cddfSDavid du ColombierAdds a bug report form to the README file.  (readme)
80377dd7cddfSDavid du Colombier
80387dd7cddfSDavid du ColombierNotes that OSF/1 AXP systems require changing the definition of INSTALL
80397dd7cddfSDavid du Colombierfrom install to installbsd.  (make.doc)
80407dd7cddfSDavid du Colombier
80413ff48bf5SDavid du Colombier</pre><h3><a name="V3.02_Procedures"></a>Procedures</h3><pre>
80427dd7cddfSDavid du Colombier
80437dd7cddfSDavid du ColombierRemoves -Wno-uninitialized from the gcc flags, and fixes all the places (in
80447dd7cddfSDavid du ColombierAladdin's code only) that need to be fixed to pacify gcc after doing this.
80457dd7cddfSDavid du Colombier(gcc-head.mak, gdevgif.c, gdevmem2.c, gdevpcl.c, gs.c, gsht1.c, gsimpath.c,
80467dd7cddfSDavid du Colombiergsutil.c, gxclread.c, gxpcopy.c, gxstroke.c, idict.c, iscannum.c, stream.c,
80477dd7cddfSDavid du Colombierzdevice2.c) (NOT FINISHED YET)
80487dd7cddfSDavid du Colombier
80497dd7cddfSDavid du ColombierAdds a FAKEFONTS switch that makes fake entries in FontDirectory for
80507dd7cddfSDavid du Colombierunloaded fonts, for the benefit of programs that think they can find all
80517dd7cddfSDavid du Colombierthe available fonts by scanning FontDirectory.  (gs_fonts.ps, gs_init.ps)
80527dd7cddfSDavid du Colombier
80533ff48bf5SDavid du Colombier</pre><h3><a name="V3.02_Utilities"></a>Utilities</h3><pre>
80547dd7cddfSDavid du Colombier
80557dd7cddfSDavid du ColombierFixes bugs:
80567dd7cddfSDavid du Colombier	- ps2epsi didn't work, because setdevice now erases the page.
80577dd7cddfSDavid du Colombier(ps2epsi.ps)
80587dd7cddfSDavid du Colombier	- ps2epsi didn't work, because -dNODISPLAY installs a null device
80597dd7cddfSDavid du Colombierwith 0 width and height.  The fix -- to remove the -dNODISPLAY -- is not
80607dd7cddfSDavid du Colombiersatisfactory, because it opens an unnecessary window.  (ps2epsi)
80617dd7cddfSDavid du Colombier
80623ff48bf5SDavid du Colombier</pre><h3><a name="V3.02_Drivers"></a>Drivers</h3><pre>
80637dd7cddfSDavid du Colombier
80647dd7cddfSDavid du ColombierFixes bugs:
80657dd7cddfSDavid du Colombier	- gdev_fax_open was incorrectly declared static in gdevtfax.c,
80667dd7cddfSDavid du Colombiercausing the extern reference in the dfax drivers not to be resolved.
80677dd7cddfSDavid du Colombier(gdevtfax.c)
80687dd7cddfSDavid du Colombier	- devs.mak included a duplicate definition of gdevmswn_h.
80697dd7cddfSDavid du Colombier(devs.mak)
80707dd7cddfSDavid du Colombier	- The fax drivers didn't link properly in Level 1 systems, because
80717dd7cddfSDavid du Colombiershc.c was omitted from their dependency list.  (gs.mak, devs.mak)
80727dd7cddfSDavid du Colombier	- The TIFF/F drivers didn't set RowsPerStrip properly.
80737dd7cddfSDavid du Colombier(gdevtfax.c)
80747dd7cddfSDavid du Colombier	- The TIFF/F drivers didn't byte-align the EOL properly.  (scfx.h,
80757dd7cddfSDavid du Colombiergdevdfax.c, gdevtfax.c, scfe.c, zfilter2.c)
80767dd7cddfSDavid du Colombier	- The rule for compiling gdevpccm.c incorrectly specified
80777dd7cddfSDavid du Colombierdependency on gs.h rather than gx.h.  (devs.mak)
80787dd7cddfSDavid du Colombier	- The rule for compiling gdevtfax.c didn't include time_.h as a
80797dd7cddfSDavid du Colombierdependency.  (devs.mak)
80807dd7cddfSDavid du Colombier	- The mode 2 compression routine for the DeskJet/LaserJet printers
80817dd7cddfSDavid du Colombierwas broken.  (gdevpcl.c)
80827dd7cddfSDavid du Colombier
80837dd7cddfSDavid du ColombierRemoves the -O0 from the compilation rule for gdevsco.c, since it was
80847dd7cddfSDavid du Colombiermisplaced to begin with.  (devs.mak)
80857dd7cddfSDavid du Colombier
80867dd7cddfSDavid du ColombierAdds a maxDynamicColors X resource to control dynamic allocation in the
80877dd7cddfSDavid du Colombiercolor map.  Replaces the X color lookup algorithms with completely new
80887dd7cddfSDavid du Colombierones, for a substantial performance gain.  (gdevx.h, gdevx.c, gdevxini.c)
80897dd7cddfSDavid du Colombier
80907dd7cddfSDavid du ColombierAdds PageNumber, Software, and DateTime entries to the TIFF/F drivers.
80917dd7cddfSDavid du Colombier(gdevtifs.h, gdevtfax.c)
80927dd7cddfSDavid du Colombier
80937dd7cddfSDavid du ColombierChanges the margins for the LaserJet 4 to 0.  (gdevdjet.c)
80947dd7cddfSDavid du Colombier
80957dd7cddfSDavid du ColombierAdds a user-contributed LaserJet 4 driver that does Floyd-Steinberg
80967dd7cddfSDavid du Colombierdithering.  (gdevcdj.c)
80977dd7cddfSDavid du Colombier
80983ff48bf5SDavid du Colombier</pre><h3><a name="V3.02_Platforms"></a>Platforms</h3><pre>
80997dd7cddfSDavid du Colombier
81007dd7cddfSDavid du ColombierFixes bugs:
81017dd7cddfSDavid du Colombier	- The exit codes for Ghostscript should be different on VMS.
81027dd7cddfSDavid du Colombier(iastate.h, gs.c, gsmain.c, igc.c, igcref.c)
81037dd7cddfSDavid du Colombier	- The VMS DEC C compiler declares malloc and free in stdlib.h, and
81047dd7cddfSDavid du Colombierdelete and unlink in stdlib.h.  (malloc_.h, stdio_.h)
81057dd7cddfSDavid du Colombier	- st_prn_device wasn't defined, which upset the VMS linker even
81067dd7cddfSDavid du Colombierthough there were no references.  (gdevprn.h)
81077dd7cddfSDavid du Colombier	- stdpre.h didn't bring in the right headers when running gcc on
81087dd7cddfSDavid du ColombierSCO Unix, causing compilation warnings/errors.  (stdpre.h)
81097dd7cddfSDavid du Colombier	- The definition of rename in gp_sysv didn't include const for the
81107dd7cddfSDavid du Colombierarguments.  (gp_sysv.c)
81117dd7cddfSDavid du Colombier	- The definition of gettimeofday in gp_sysv didn't return any
81127dd7cddfSDavid du Colombiervalue.  (gp_sysv.c)
81137dd7cddfSDavid du Colombier	- time_.h didn't work on MS-DOS systems.  (time_.h)
81147dd7cddfSDavid du Colombier	- math_.h didn't include &lt;math.h&gt; when compiling with gcc on VMS
81157dd7cddfSDavid du Colombiersystems.  (math_.h)
81167dd7cddfSDavid du Colombier	- DesqView/X doesn't have a 'cat' command, which caused problems in
81177dd7cddfSDavid du Colombierthe linking step.  (dvx-tail.mak)
81187dd7cddfSDavid du Colombier
81197dd7cddfSDavid du ColombierChanges the definitions of popen in gdevpipe.c and gp_unix.c so they don't
81207dd7cddfSDavid du Colombierspecify the argument list.  This is an attempt to get around the fact that
81217dd7cddfSDavid du Colombierthere is no easy way to detect whether the available header files declare
81227dd7cddfSDavid du Colombierpopen correctly (with const arguments), incorrectly (with non-const
81237dd7cddfSDavid du Colombierarguments), or not at all.  (gdevpipe.c, gp_unix.c)
81247dd7cddfSDavid du Colombier
81257dd7cddfSDavid du ColombierReplaces VMS.MAK, VMS-CC.MAK, and VMS-AXP.MAK with new versions provided by
81267dd7cddfSDavid du Colombiera user.  (vms.mak, vms-cc.mak, vms-axp.mak)
81277dd7cddfSDavid du Colombier
81287dd7cddfSDavid du ColombierChanges the 16-bit Borland makefiles so their standard configuration is
81297dd7cddfSDavid du ColombierLevel 1 plus color.dev (CMYK color and colorimage).  (bc.mak, bcwin.mak)
81307dd7cddfSDavid du Colombier
81313ff48bf5SDavid du Colombier</pre><h3><a name="V3.02_Fonts"></a>Fonts</h3><pre>
81327dd7cddfSDavid du Colombier
81337dd7cddfSDavid du ColombierFixes bugs:
81347dd7cddfSDavid du Colombier	- cfonts.mak still referred to some .gsf files that have been
81357dd7cddfSDavid du Colombierreplaced by .pfa files.  (cfonts.mak)
81367dd7cddfSDavid du Colombier	- Compiled fonts got entered into FontDirectory, but didn't get
81377dd7cddfSDavid du Colombierregistered as resources.  (gs_ccfnt.ps)
81387dd7cddfSDavid du Colombier	- The Cyrillic, Kana, Hershey .gsf, and URW fonts didn't include a
81397dd7cddfSDavid du Colombiernecessary systemdict begin/end, which caused them to fail in badly designed
81407dd7cddfSDavid du Colombierenvironments.  (fonts/f*.gsf, fonts/h*.gsf, fonts/?0*.gsf)
81417dd7cddfSDavid du Colombier
81427dd7cddfSDavid du ColombierChanges the default target directory in cfonts.mak from fonts/c to .;
81437dd7cddfSDavid du Colombierchanges the names of the Zapf Chancery compiled font procedures from c* to
81447dd7cddfSDavid du Colombierzc*.  (cfonts.mak)
81457dd7cddfSDavid du Colombier
81467dd7cddfSDavid du ColombierAdds more fonts from the Adobe Type Manager package for MS Windows to
81477dd7cddfSDavid du ColombierFontmap.ATM.  (fontmap.atm)
81487dd7cddfSDavid du Colombier
81497dd7cddfSDavid du ColombierAdds the entire set of 35 standard fonts to the ccfonts feature in gs.mak;
81507dd7cddfSDavid du Colombierremoves all the compilation rules for compiled fonts, since these rules are
81517dd7cddfSDavid du Colombierin cfonts.mak already.  (gs.mak)
81527dd7cddfSDavid du Colombier
81533ff48bf5SDavid du Colombier</pre><h3><a name="V3.02_Interpreter"></a>Interpreter</h3><pre>
81547dd7cddfSDavid du Colombier
81557dd7cddfSDavid du ColombierFixes bugs:
81567dd7cddfSDavid du Colombier	- kshow executed a null, rather than the correct procedure, between
81577dd7cddfSDavid du Colombierthe characters of the string, and got a typecheck error at the end.
81587dd7cddfSDavid du Colombier(zchar.c)
81597dd7cddfSDavid du Colombier	- MultiMaster fonts computed their side bearing and width
81607dd7cddfSDavid du Colombierincorrectly, producing incorrect output.  (zchar1.c)
81617dd7cddfSDavid du Colombier	- There was no structure definition for gs_type1_state, so a GC
81627dd7cddfSDavid du Colombierduring the execution of an OtherSubrs procedure could scramble pointers in
81637dd7cddfSDavid du Colombierthe saved state.  (zchar1.c, zfont1.c; also affects library, see below)
81647dd7cddfSDavid du Colombier	- kshow didn't work properly if the kerning procedure changed the
81657dd7cddfSDavid du Colombierdepth of the operand or dictionary stack.  (zchar.c)
81667dd7cddfSDavid du Colombier	- If the element count for roll was too large by only 1 or 2, the
81677dd7cddfSDavid du Colombierresult was a crash rather than a rangecheck.  (zstack.c)
81687dd7cddfSDavid du Colombier	- restore didn't undo currentgstate.  (igstate.h, store.h,
81697dd7cddfSDavid du Colombiergsstate.c, zdevice2.c, zdps1.c, ztype.c)
81707dd7cddfSDavid du Colombier	- The scanner didn't set the local bit properly in a suspended
81717dd7cddfSDavid du Colombierstate.  (iscan.c)
81727dd7cddfSDavid du Colombier	- copypage disregarded #copies.  (gs_init.ps)
81737dd7cddfSDavid du Colombier	- An incorrectly declared pointer led to addressing faults on
81747dd7cddfSDavid du Colombier16-bit systems.  (zchar1.c)
81757dd7cddfSDavid du Colombier	- The cache for Separation colors was allocated with one element
81767dd7cddfSDavid du Colombiertoo few.  (zcsindex.c)
81777dd7cddfSDavid du Colombier
81787dd7cddfSDavid du ColombierChanges `executive' so that if an error other than EOF occurs in the
81797dd7cddfSDavid du Colombierreading of the statement, the interpreter prints the error message, but
81807dd7cddfSDavid du Colombiercontrol remains in the executive loop.  (This isn't a very good fix; a
81817dd7cddfSDavid du Colombierbetter one will require refactoring executive / execute / run.)
81827dd7cddfSDavid du Colombier(gs_init.ps)
81837dd7cddfSDavid du Colombier
81847dd7cddfSDavid du ColombierChanges dictionary undo saving to use the new ref_must_save macro [internal
81857dd7cddfSDavid du Colombierchange only].  (idict.c)
81867dd7cddfSDavid du Colombier
81877dd7cddfSDavid du ColombierMoves configuration definitions from iinit.c to gconfig.c.  (gcdefs.h,
81887dd7cddfSDavid du Colombierinterp.h, gconfig.c, gs.c, iinit.c, zmisc2.c, gs.mak)
81897dd7cddfSDavid du Colombier
81907dd7cddfSDavid du ColombierMoves =string from systemdict to userdict for Adobe compatibility.
81917dd7cddfSDavid du Colombier(gs_init.ps)
81927dd7cddfSDavid du Colombier
81937dd7cddfSDavid du ColombierStarts to implement the Interpolate flag in image dictionaries.  See under
81947dd7cddfSDavid du ColombierLibrary below for restrictions.  (zpaint.c, zimage2.c)
81957dd7cddfSDavid du Colombier
81963ff48bf5SDavid du Colombier</pre><h3><a name="V3.02_Streams"></a>Streams</h3><pre>
81977dd7cddfSDavid du Colombier
81987dd7cddfSDavid du ColombierFixes bugs:
81997dd7cddfSDavid du Colombier	- stream_compact attempted to compact a read-only string being used
82007dd7cddfSDavid du Colombieras the data source of a filter.  (sbasic.c, stream.c)
82017dd7cddfSDavid du Colombier
82027dd7cddfSDavid du ColombierAdds an EncodedEOLAlign flag to the CCITTFaxEncode stream, to allow direct
82037dd7cddfSDavid du Colombiergeneration of TIFF/F output.  (scfx.h, scfe.c, zfilter2.c)
82047dd7cddfSDavid du Colombier
82053ff48bf5SDavid du Colombier</pre><h3><a name="V3.02_Library"></a>Library</h3><pre>
82067dd7cddfSDavid du Colombier
82077dd7cddfSDavid du ColombierFixes bugs:
82087dd7cddfSDavid du Colombier	- There was no structure definition for gs_type1_state, so a GC
82097dd7cddfSDavid du Colombierduring the execution of an OtherSubrs procedure could scramble pointers in
82107dd7cddfSDavid du Colombierthe saved state.  (gxfont1.h, gxtype1.h, gstype1.c, gxhint2.c)
82117dd7cddfSDavid du Colombier	- A couple of calls had to discard const, but didn't include the
82127dd7cddfSDavid du Colombiernecessary cast.  (gxpcmap.c)
82137dd7cddfSDavid du Colombier	- makeimagedevice refused to accept an empty image.  (gsdevice.c)
82147dd7cddfSDavid du Colombier	- The extra parentheses around arguments in memory_.h caused some
82157dd7cddfSDavid du Colombiercompilers to fail.  (memory_.h)
82167dd7cddfSDavid du Colombier	- Floating point overflows during coordinate conversion terminated
82177dd7cddfSDavid du ColombierGhostscript.  (gxfarith.h, gxfixed.h, gsmatrix.c, gsmisc.c)
82187dd7cddfSDavid du Colombier	- Accents still weren't getting placed properly on characters
82197dd7cddfSDavid du Colombiercreated with seac.  (gstype1.c, gxhint2.c)
82207dd7cddfSDavid du Colombier	- The SGI C compiler couldn't handle the (perfectly legal)
82217dd7cddfSDavid du Colombierdefinitions of dev_init_[open_]misc.  (gxdevice.h)
82227dd7cddfSDavid du Colombier	- string_.h caused some problems with gcc on some versions of
82237dd7cddfSDavid du ColombierSolaris.  (string_.h)
82247dd7cddfSDavid du Colombier	- The halftone levels for color screens were computed incorrectly.
82257dd7cddfSDavid du Colombier(gzht.h, gxdither.c)
82267dd7cddfSDavid du Colombier	- Color screens sometimes had vertical stripes of solid color
82277dd7cddfSDavid du Colombierinterspersed.  (gxcht.c)
82287dd7cddfSDavid du Colombier	- Colors could get mapped incorrectly if a compiler aggressively
82297dd7cddfSDavid du Colombier(and incorrectly) reordered the computation of procedure arguments
82307dd7cddfSDavid du Colombierinvolving the unit_frac macro.  (gxcmap.c)
82317dd7cddfSDavid du Colombier	- setcachedevice[2] insisted that the corners of the bounding box
82327dd7cddfSDavid du Colombierbe given in the correct order, i.e., llx &lt; urx and lly &lt; ury.  (gschar.c)
82337dd7cddfSDavid du Colombier	- The image operator gave a limitcheck on unrotated 1-bit-per-pixel
82347dd7cddfSDavid du Colombierimages whose width in device coordinates exceeded 65529.  (gsimage.c)
82357dd7cddfSDavid du Colombier	- The garbage collector didn't trace the input data of an
82367dd7cddfSDavid du Colombierin-progress image operator correctly.  (gsimage.c)
82377dd7cddfSDavid du Colombier
82387dd7cddfSDavid du ColombierChanges the max_rgb and dither_rgb members of gx_device_color_info to
82397dd7cddfSDavid du Colombiermax_color and dither_colors, since Ghostscript now uses these for CMYK
82407dd7cddfSDavid du Colombierdevices as well.  Also changes dither_gray to dither_grays.  (gdevmem.h,
82417dd7cddfSDavid du Colombiergdevprn.h, gxdevice.h, gdevbit.c, gdevcdj.c, gdevprn.c, gdevxini.c,
82427dd7cddfSDavid du Colombiergsdparam.c, gxcht.c, gxcmap.c)
82437dd7cddfSDavid du Colombier
82447dd7cddfSDavid du ColombierStarts to implement the Interpolate option for images.  Currently this is
82457dd7cddfSDavid du Colombieronly implemented for image, not imagemask, and only for rotations that are
82467dd7cddfSDavid du Colombiermultiples of 90 degrees (possibly with reflection).  (gsimage.h,
82477dd7cddfSDavid du Colombiergsiscale.h, gximage.h, gsimage.c, gsimage1.c, gsiscale.c)
82487dd7cddfSDavid du Colombier
82497dd7cddfSDavid du ColombierStarts to implement XStep and YStep in pattern dictionaries.  (gxdcolor.h,
82507dd7cddfSDavid du Colombiergxpcolor.h, gspcolor.c, gxpcmap.c)
82517dd7cddfSDavid du Colombier
82523ff48bf5SDavid du Colombier</pre>
82537dd7cddfSDavid du Colombier
82543ff48bf5SDavid du Colombier<h2><a name="Version3.01"></a>Version 3.01 (8/14/94)</h2>
82553ff48bf5SDavid du Colombier
82563ff48bf5SDavid du Colombier<p>
82577dd7cddfSDavid du ColombierThis is a patch release to fix early problems in release 3.0, and to clean
82587dd7cddfSDavid du Colombierup a few known loose ends.
82597dd7cddfSDavid du Colombier
82603ff48bf5SDavid du Colombier<h3><a name="V3.01_Documentation"></a>Documentation</h3><pre>
82617dd7cddfSDavid du Colombier
82627dd7cddfSDavid du ColombierFixes bugs:
82637dd7cddfSDavid du Colombier	- language.doc still documented the devicename procedure, which has
82647dd7cddfSDavid du Colombierbeen withdrawn.  (language.doc)
82657dd7cddfSDavid du Colombier	- drivers.doc didn't specify under what circumstances each
82667dd7cddfSDavid du Colombierprocedure could be called.  (drivers.doc)
82677dd7cddfSDavid du Colombier	- current.doc said that setcachedevice and makeimagedevice wouldn't
82687dd7cddfSDavid du Colombieraccept packed arrays, but neither of these operators takes any array
82697dd7cddfSDavid du Colombierarguments.  (current.doc)
82707dd7cddfSDavid du Colombier	- current.doc said that definefont didn't interact properly with
82717dd7cddfSDavid du Colombierthe resource machinery, which apparently is no longer true.  (current.doc)
82727dd7cddfSDavid du Colombier	- make.doc incorrectly gave the name of the DVX makefile as
82737dd7cddfSDavid du Colombierdvx-djg.mak rather than dvx-gcc.mak.  (make.doc)
82747dd7cddfSDavid du Colombier	- In one place, devices.doc incorrectly used -sBitsPerPixel= rather
82757dd7cddfSDavid du Colombierthan -dBitsPerPixel=.  (devices.doc)
82767dd7cddfSDavid du Colombier
82777dd7cddfSDavid du ColombierNotes that a kernel bug in SCO Unix makes Ghostscript not work correctly in
82787dd7cddfSDavid du Colombiersome circumstances.  (use.doc)
82797dd7cddfSDavid du Colombier
82803ff48bf5SDavid du Colombier</pre><h3><a name="V3.01_Procedures"></a>Procedures</h3><pre>
82817dd7cddfSDavid du Colombier
82827dd7cddfSDavid du ColombierFixes bugs:
82837dd7cddfSDavid du Colombier	- devs.mak incorrectly referred to gdevjetp.c instead of
82847dd7cddfSDavid du Colombiergdev3852.c.  (devs.mak)
82857dd7cddfSDavid du Colombier	- The obsolete file gsprops.c was accidentally included in the
82867dd7cddfSDavid du Colombierfileset.
82877dd7cddfSDavid du Colombier
82887dd7cddfSDavid du ColombierChanges the version numbering scheme from A.BCC to A.B[C].  E.g., this
82897dd7cddfSDavid du Colombierrelease will be 3.01, not 3.001.  (gs_init.ps, gs.c, iinit.c)
82907dd7cddfSDavid du Colombier
82917dd7cddfSDavid du ColombierAdds the LaserJet 4 driver to all makefiles that already include the
82927dd7cddfSDavid du ColombierLaserJet 3 driver.  (*.mak)
82937dd7cddfSDavid du Colombier
82947dd7cddfSDavid du ColombierAdds the BJ-200 driver to all makefiles that already included the BJ-10e
82957dd7cddfSDavid du Colombierdriver.  (*.mak)
82967dd7cddfSDavid du Colombier
82977dd7cddfSDavid du ColombierSplits the Unix 'install' target into install-exec and install-data.  Moves
82987dd7cddfSDavid du Colombierthe executable scripts from gsdatadir to a new directory scriptdir, which
82997dd7cddfSDavid du Colombierdefaults to bindir.  (ansihead.mak, cc-head.mak, gcc-head.mak,
83007dd7cddfSDavid du Colombierunix-end.mak)
83017dd7cddfSDavid du Colombier
83023ff48bf5SDavid du Colombier</pre><h3><a name="V3.01_Utilities"></a>Utilities</h3><pre>
83037dd7cddfSDavid du Colombier
83047dd7cddfSDavid du ColombierFixes bugs:
83057dd7cddfSDavid du Colombier	- genconf had fixed buffer sizes built into it, which it could
83067dd7cddfSDavid du Colombieroverrun its working storage without checking.  (genconf.c)
83077dd7cddfSDavid du Colombier
83087dd7cddfSDavid du ColombierRemoves RCS or SCCS headers from two utility files.  (pj-gs.sh,
83097dd7cddfSDavid du Colombierprintafm.ps)
83107dd7cddfSDavid du Colombier
83113ff48bf5SDavid du Colombier</pre><h3><a name="V3.01_Drivers"></a>Drivers</h3><pre>
83127dd7cddfSDavid du Colombier
83137dd7cddfSDavid du ColombierFixes bugs:
83147dd7cddfSDavid du Colombier	- The new dfaxhigh and dfaxlow drivers didn't set
83157dd7cddfSDavid du Colombierstate.EncodedByteAlign to false.  (gdevdfax.c)
83167dd7cddfSDavid du Colombier	- The sunview driver assumed that the device would be open before
83177dd7cddfSDavid du Colombiermap_rgb_color was called.  (gdevsun.c)
83187dd7cddfSDavid du Colombier	- The CP50 driver incremented page_count itself, rather than
83197dd7cddfSDavid du Colombierletting the core library do it.  (gdevcp50.c)
83207dd7cddfSDavid du Colombier	- The GIF driver(s) could loop indefinitely under certain
83217dd7cddfSDavid du Colombiercircumstances.  (gdevgif.c)
83227dd7cddfSDavid du Colombier	- The Group 4 fax drivers incorrectly included end-of-line codes in
83237dd7cddfSDavid du Colombierthe output.  (gdevtfax.c, gdevdfax.c)
83247dd7cddfSDavid du Colombier	- The Group 4 fax drivers could put out an EOB in the middle of the
83257dd7cddfSDavid du Colombierdata.  (scfe.c)
83267dd7cddfSDavid du Colombier	- The DesignJet 650C driver didn't use the correct compression
83277dd7cddfSDavid du Colombiermode.  (gdevcdj.c)
83287dd7cddfSDavid du Colombier	- The Hercules and EGA/VGA/SVGA drivers computed the page height
83297dd7cddfSDavid du Colombierincorrectly according to the A4 switch.  (gdevherc.c, gdevpcfb.h)
83307dd7cddfSDavid du Colombier
83317dd7cddfSDavid du ColombierChanges the page_count and showpage_count members of the device structure
83327dd7cddfSDavid du Colombierfrom int to long.  (gxdevice.h, gdevprn.c, gsdparam.c)
83337dd7cddfSDavid du Colombier
83347dd7cddfSDavid du ColombierChanges the faxg3, faxg32d, and faxg4 drivers so that, like the TIFF and
83357dd7cddfSDavid du Colombierdfax drivers, they adjust the page size to one of the three CCITT standard
83367dd7cddfSDavid du Colombiersizes if this is reasonable.  (gdevtfax.c)
83377dd7cddfSDavid du Colombier
83387dd7cddfSDavid du ColombierSplits the bit driver into bit, bitrgb, and bitcmyk.  Adds bitrgb and
83397dd7cddfSDavid du Colombierbitcmyk to all makefiles that included bit.  (*.mak, devs.mak, gdevbit.c)
83407dd7cddfSDavid du Colombier
83417dd7cddfSDavid du ColombierReplaces the atiw16, tseng16, and tvga16 SuperVGA drivers with a single
83427dd7cddfSDavid du Colombiersvga16 driver that allows specifying the display mode number.  (devs.mak,
83437dd7cddfSDavid du Colombiergdevpcfb.c)
83447dd7cddfSDavid du Colombier
83453ff48bf5SDavid du Colombier</pre><h3><a name="V3.01_Platforms"></a>Platforms</h3><pre>
83467dd7cddfSDavid du Colombier
83477dd7cddfSDavid du ColombierFixes bugs:
83487dd7cddfSDavid du Colombier	- The MS Windows and OS/2 drivers allocated their terminal input
83497dd7cddfSDavid du Colombierbuffers in a way that could cause the GC to crash.  (gp_mswin.c, gp_os2.c)
83507dd7cddfSDavid du Colombier	- The handling of gettimeofday on SVR4 platforms was incorrect.
83517dd7cddfSDavid du Colombier(time_.h, gp_sysv.c, gp_unix.c)
83527dd7cddfSDavid du Colombier	- On some platforms, function prototypes were not enabled even if
83537dd7cddfSDavid du Colombier__STDC__ was defined.  (stdpre.h)
83547dd7cddfSDavid du Colombier	- The VMS build script referred to an obsolete feature lev2only.
83557dd7cddfSDavid du Colombier(vms.mak)
83567dd7cddfSDavid du Colombier
83577dd7cddfSDavid du ColombierChanges the DVX platform so that stdprn is buffered.  This should improve
83587dd7cddfSDavid du Colombierprinting performance dramatically.  (gp_dvx.c)
83597dd7cddfSDavid du Colombier
83603ff48bf5SDavid du Colombier</pre><h3><a name="V3.01_Fonts"></a>Fonts</h3><pre>
83617dd7cddfSDavid du Colombier
83627dd7cddfSDavid du ColombierFixes bugs:
83637dd7cddfSDavid du Colombier	- Setting DISKFONTS resulted in a reference to FontFileDirectory
83647dd7cddfSDavid du Colombierbefore it was defined.  (gs_type1.ps, gs_fonts.ps)
83657dd7cddfSDavid du Colombier	- /Font findresource gave an error rather than doing font
83667dd7cddfSDavid du Colombiersubstitution.  (gs_res.ps)
83677dd7cddfSDavid du Colombier	- FontDirectory wasn't rebound to GlobalFontDirectory when global
83687dd7cddfSDavid du ColombierVM was current.  (gs_res.ps, zdict.c)
83697dd7cddfSDavid du Colombier	- Type 1 fonts weren't loaded into global VM.  (gs_fonts.ps)
83707dd7cddfSDavid du Colombier	- In the standard Fontmap, the Utopia fonts had extension .gsf
83717dd7cddfSDavid du Colombierrather than .pfa.  (fontmap.gs)
83727dd7cddfSDavid du Colombier	- Fonts whose FontBBox was [0 0 0 0] were not displayed, or were
83737dd7cddfSDavid du Colombierdisplayed as tiny dots.  (gs_type1.ps)
83747dd7cddfSDavid du Colombier
83753ff48bf5SDavid du Colombier</pre><h3><a name="V3.01_Interpreter"></a>Interpreter</h3><pre>
83767dd7cddfSDavid du Colombier
83777dd7cddfSDavid du ColombierFixes bugs:
83787dd7cddfSDavid du Colombier	- dict_put could read from the variable pvslot before it was used.
83797dd7cddfSDavid du Colombier(This was harmless, since the value was never actually used; it just upset
83807dd7cddfSDavid du ColombierPurify.)  (idict.c)
83817dd7cddfSDavid du Colombier	- Binary object sequences could cause addressing faults.
83827dd7cddfSDavid du Colombier(iscanbin.c)
83837dd7cddfSDavid du Colombier	- The attributes on names were set incorrectly in binary object
83847dd7cddfSDavid du Colombiersequences.  (iscanbin.c)
83857dd7cddfSDavid du Colombier	- gs.c duplicated (in some cases incorrectly) some definitions in
83867dd7cddfSDavid du Colombierinterp.h.  (gs.c)
83877dd7cddfSDavid du Colombier	- gs_lib_paths was declared const in one place and non-const in
83887dd7cddfSDavid du Colombieranother.  (zfile.c)
83897dd7cddfSDavid du Colombier	- file_restore and font_restore had inconsistent const declarations
83907dd7cddfSDavid du Colombierfor their argument.  (isave.c)
83917dd7cddfSDavid du Colombier	- iodev_os_open_file was missing its last formal parameter.
83927dd7cddfSDavid du Colombier(ziodev.c)
83937dd7cddfSDavid du Colombier	- gs.c declared gs_devicename with an incorrect extern.  (gs.c)
83947dd7cddfSDavid du Colombier	- undefinefont didn't interact properly with the resource
83957dd7cddfSDavid du Colombiermachinery.  (gs_lev2.ps)
83967dd7cddfSDavid du Colombier	- The declaration for swap_entry used a typedef name as a formal
83977dd7cddfSDavid du Colombierparameter, which upset some compilers.  (zmisc2.c)
83987dd7cddfSDavid du Colombier	- Including the ccinit feature could cause the garbage collector to
83997dd7cddfSDavid du Colombiermake an invalid access.  (stream.c)
84007dd7cddfSDavid du Colombier	- The check for t_[a]struct types in ztype.c was incorrect.
84017dd7cddfSDavid du Colombier(ztype.c)
84027dd7cddfSDavid du Colombier	- After the collection of halftone samples, temporary data
84037dd7cddfSDavid du Colombierstructures were freed incorrectly.  (gzht.h, gsht1.c, zht.c)
84047dd7cddfSDavid du Colombier	- Images with source width between 489 and 492 crashed the
84057dd7cddfSDavid du Colombiermemory manager.  (iastate.h)
84067dd7cddfSDavid du Colombier
84077dd7cddfSDavid du ColombierMakes it possible to define SEARCH_HERE_FIRST (gsmain.c) in the makefile.
84087dd7cddfSDavid du Colombier(gsmain.c)
84097dd7cddfSDavid du Colombier
84107dd7cddfSDavid du ColombierSplits the Level 2 resource machinery into a separate file.  (gs_lev2.ps,
84117dd7cddfSDavid du Colombiergs_res.ps, gs.mak, unix-end.mak, vms.mak).
84127dd7cddfSDavid du Colombier
84137dd7cddfSDavid du ColombierChanges the names of the DiffEncode/Decode filters to
84147dd7cddfSDavid du ColombierPixelDifferenceEncode/Decode, and splits them off into a separate
84157dd7cddfSDavid du Colombier"feature".  (gs.mak, zfilter2.c, zfpdiff.c, spdiff.c, spdiffx.h)
84167dd7cddfSDavid du Colombier
84177dd7cddfSDavid du ColombierAdds experimental code for filtered image scaling.  DON'T USE THIS CODE.
84187dd7cddfSDavid du Colombier(zimage2.c)
84197dd7cddfSDavid du Colombier
84203ff48bf5SDavid du Colombier</pre><h3><a name="V3.01_Streams"></a>Streams</h3><pre>
84217dd7cddfSDavid du Colombier
84227dd7cddfSDavid du ColombierFixes bugs:
84237dd7cddfSDavid du Colombier	- The CCITTFaxEncode filter could put out an EOB in the middle of
84247dd7cddfSDavid du Colombierthe data.  (scfe.c)
84257dd7cddfSDavid du Colombier
84267dd7cddfSDavid du ColombierSplits off the PixelDifferenceEncode/Decode filters into a separate
84277dd7cddfSDavid du Colombier"feature".  (gs.mak)
84287dd7cddfSDavid du Colombier
84293ff48bf5SDavid du Colombier</pre><h3><a name="V3.01_Library"></a>Library</h3><pre>
84307dd7cddfSDavid du Colombier
84317dd7cddfSDavid du ColombierFixes bugs:
84327dd7cddfSDavid du Colombier	- gs_setcachedevice could return a garbage error code.  (gschar.c)
84337dd7cddfSDavid du Colombier	- joins on stroked lines were incorrect if the device coordinate
84347dd7cddfSDavid du Colombiersystem mapped +Y to +Y.  (gxstroke.c)
84357dd7cddfSDavid du Colombier	- If gsmisc.c supplied versions of missing library routines, they
84367dd7cddfSDavid du Colombiercould clash with the names of the real ones if those were present
84377dd7cddfSDavid du Colombierunexpectedly.  (memory_.h, gsmisc.c)
84387dd7cddfSDavid du Colombier	- The initialization expression for is_open in the
84397dd7cddfSDavid du Colombierdev_init_misc_open macro included a cast, which some compilers don't allow.
84407dd7cddfSDavid du Colombier(gxdevice.h, gsdevice.c, gxclip2.c, gxpcmap.c)
84417dd7cddfSDavid du Colombier	- In Type 1 fonts, character that specified their side bearing and
84427dd7cddfSDavid du Colombierwidth with sbw rather than hsbw gave an invalidfont error.  (gstype1.c)
84437dd7cddfSDavid du Colombier	- Some procedures were declared inconsistently with regard to const
84447dd7cddfSDavid du Colombierarguments.  (gscie.c, gxpcmap.c, gxacpath.c, gxcmap.c)
84457dd7cddfSDavid du Colombier	- A few places still assumed that pointers occupied 4 bytes.
84467dd7cddfSDavid du Colombier(gxclist.c)
84477dd7cddfSDavid du Colombier	- Rendering a gray halftone on a CMYK device called the device's
84487dd7cddfSDavid du Colombiermap_rgb_color procedure instead of map_cmyk_color.  (gxdither.c)
84497dd7cddfSDavid du Colombier
84507dd7cddfSDavid du ColombierRenames gsfile.c as gswppm.c.  (gsfile.c, gswppm.c)
84517dd7cddfSDavid du Colombier
84527dd7cddfSDavid du ColombierImplements the ability to cache arbitrarily transformed characters.  This
84537dd7cddfSDavid du Colombieris currently enabled by a compile-time flag in gschar.c.  (gschar.c)
84547dd7cddfSDavid du Colombier
84553ff48bf5SDavid du Colombier</pre>
84567dd7cddfSDavid du Colombier
84573ff48bf5SDavid du Colombier<h2><a name="Version3.0"></a>Version 3.0 (8/1/94)</h2>
84583ff48bf5SDavid du Colombier
84593ff48bf5SDavid du Colombier<p>
84607dd7cddfSDavid du ColombierThis is the first full Level 2 version released to the public.
84617dd7cddfSDavid du ColombierUnfortunately, we were not able to include setpagedevice in this release.
84627dd7cddfSDavid du Colombier
84633ff48bf5SDavid du Colombier<h3><a name="V3.0_Documentation"></a>Documentation</h3><pre>
84647dd7cddfSDavid du Colombier
84657dd7cddfSDavid du ColombierFixes bugs:
84667dd7cddfSDavid du Colombier	- README didn't mention Aladdin's European distributor.
84677dd7cddfSDavid du Colombier	- psfiles.doc didn't describe some of the newer gs_*.ps files.
84687dd7cddfSDavid du Colombier
84697dd7cddfSDavid du ColombierNotes that gcc -O2 (version 2.5.8 of gcc) generates incorrect code for some
84707dd7cddfSDavid du Colombiermodules on the H-P RISC architecture.
84717dd7cddfSDavid du Colombier
84727dd7cddfSDavid du ColombierNotes that on AXP platforms running VMS, DEC C V4.0 is required.
84737dd7cddfSDavid du Colombier
84743ff48bf5SDavid du Colombier</pre><h3><a name="V3.0_Procedures"></a>Procedures</h3><pre>
84757dd7cddfSDavid du Colombier
84767dd7cddfSDavid du ColombierFixes bugs:
84777dd7cddfSDavid du Colombier	- 'make clean' didn't delete devs.tr or t.tr.
84787dd7cddfSDavid du Colombier	- devs.mak was missing the entry for faxg32d.
84797dd7cddfSDavid du Colombier	- unixansi.mak omitted some drivers that were included in
84807dd7cddfSDavid du Colombierunix-cc.mak and unix-gcc.mak.
84817dd7cddfSDavid du Colombier
84827dd7cddfSDavid du ColombierUpdates jpeg.mak to reference version 5beta1 of the IJG JPEG code.
84837dd7cddfSDavid du Colombier
84847dd7cddfSDavid du ColombierChanges the version numbering scheme from A.B.C to A.B[CC].  I.e., the
84857dd7cddfSDavid du Colombierfirst sub-release after 3.0 will be 3.01 or 3.001, not 3.0.1.
84867dd7cddfSDavid du Colombier
84873ff48bf5SDavid du Colombier</pre><h3><a name="V3.0_Utilities"></a>Utilities</h3><pre>
84887dd7cddfSDavid du Colombier
84897dd7cddfSDavid du ColombierFixes bugs:
84907dd7cddfSDavid du Colombier	- ps2ascii didn't do a setglobal.
84917dd7cddfSDavid du Colombier
84927dd7cddfSDavid du ColombierAdds an option to ansi2knr to convert ... to va_alist/va_dcl.
84937dd7cddfSDavid du Colombier
84943ff48bf5SDavid du Colombier</pre><h3><a name="V3.0_Drivers"></a>Drivers</h3><pre>
84957dd7cddfSDavid du Colombier
84967dd7cddfSDavid du ColombierFixes bugs:
84977dd7cddfSDavid du Colombier	- The newly added faxg32d driver didn't have an entry in devs.mak.
84987dd7cddfSDavid du Colombier	- The BMP, GIF, and PCX drivers wrote out an incorrect color
84997dd7cddfSDavid du Colombierpalette (the blue values were too small).
85007dd7cddfSDavid du Colombier	- The vgalib driver had some compilation problems.
85017dd7cddfSDavid du Colombier	- The TIFF drivers didn't produce correct multi-page output.
85027dd7cddfSDavid du Colombier
85037dd7cddfSDavid du ColombierAdds faxg32d and tiffg32d drivers.
85047dd7cddfSDavid du Colombier
85057dd7cddfSDavid du ColombierReinstates the DigiFax drivers, which were withdrawn when the new fax
85067dd7cddfSDavid du Colombierdrivers were added.
85077dd7cddfSDavid du Colombier
85083ff48bf5SDavid du Colombier</pre><h3><a name="V3.0_Platforms"></a>Platforms</h3><pre>
85097dd7cddfSDavid du Colombier
85107dd7cddfSDavid du ColombierFixes bugs:
85117dd7cddfSDavid du Colombier	- gs_btokn.ps and gs_ccfnt.ps weren't installed on Unix platforms.
85127dd7cddfSDavid du Colombier	- The VMS module list omitted SBHC, included a non-existent GXDASH,
85137dd7cddfSDavid du Colombierand had incorrect names for some of the IJG JPEG files.
85147dd7cddfSDavid du Colombier	- The VMS build scripts (vms*.mak) had incorrect "boilerplate".
85157dd7cddfSDavid du Colombier	- The VMS script file gssetmod.com had \r characters in it, as well
85167dd7cddfSDavid du Colombieras \n characters.
85177dd7cddfSDavid du Colombier	- The echogs and genarch utilities didn't return the correct exit
85187dd7cddfSDavid du Colombiercodes under VMS.
85197dd7cddfSDavid du Colombier	- The VMS Fontmap had incorrect entries for the Courier and Charter
85207dd7cddfSDavid du Colombierfonts.
85217dd7cddfSDavid du Colombier	- When running under Ghostview, Ghostscript didn't drain the input
85227dd7cddfSDavid du Colombierpipe.  (We fixed this with a temporary patch in gs.c; this isn't a good
85237dd7cddfSDavid du Colombiersolution for the longer term.)
85247dd7cddfSDavid du Colombier
85253ff48bf5SDavid du Colombier</pre><h3><a name="V3.0_Fonts"></a>Fonts</h3><pre>
85267dd7cddfSDavid du Colombier
85277dd7cddfSDavid du ColombierFixes bugs:
85287dd7cddfSDavid du Colombier	- The free AvantGarde, Bookman, and Palatino font families had
85297dd7cddfSDavid du Colombierincorrect FontBBox values.
85307dd7cddfSDavid du Colombier	- The 'f' and 'j' in the free AvantGarde-DemiOblique,
85317dd7cddfSDavid du ColombierBookman-DemiItalic, Bookman-LightItalic, and Palatino-Italic fonts were
85327dd7cddfSDavid du Colombierchopped off on the right.  (The bitmaps were chopped off in the original
85337dd7cddfSDavid du ColombierBDF fonts from which these fonts were made.)  ****** THIS PROBLEM WAS NOT
85347dd7cddfSDavid du ColombierACTUALLY FIXED. ******
85357dd7cddfSDavid du Colombier
85363ff48bf5SDavid du Colombier</pre><h3><a name="V3.0_Interpreter"></a>Interpreter</h3><pre>
85377dd7cddfSDavid du Colombier
85387dd7cddfSDavid du ColombierFixes bugs:
85397dd7cddfSDavid du Colombier	- gs -h and gs -v didn't print the tertiary version number correctly.
85407dd7cddfSDavid du Colombier	- Binary object sequences with no strings or names didn't read in
85417dd7cddfSDavid du Colombiercorrectly.
85427dd7cddfSDavid du Colombier	- Binary object sequences that crossed an input buffer boundary
85437dd7cddfSDavid du Colombierdidn't read in correctly.
85447dd7cddfSDavid du Colombier	- Binary object sequences read in as {[e1 .. en] e1 ... en} instead
85457dd7cddfSDavid du Colombierof {[e1 ... en]}.  (New bug in 2.9.x.)
85467dd7cddfSDavid du Colombier	- setpattern didn't set the current color space correctly if the
85477dd7cddfSDavid du Colombiercurrent color space wasn't a Pattern space.
85487dd7cddfSDavid du Colombier	- If the current color space was an uncolored Pattern space but the
85497dd7cddfSDavid du Colombiercurrent color was a colored Pattern, currentcolor returned extra values on
85507dd7cddfSDavid du Colombierthe operands stack.
85517dd7cddfSDavid du Colombier	- .buildfont1 in gs_type1.ps didn't force binding of the old
85527dd7cddfSDavid du Colombierdefinition, causing ps2ascii to loop endlessly.
85537dd7cddfSDavid du Colombier
85547dd7cddfSDavid du ColombierAdds a facility for writing and reading dictionaries in binary object
85557dd7cddfSDavid du Colombiersequences.  This is experimental and subject to change in the future.
85567dd7cddfSDavid du Colombier
85573ff48bf5SDavid du Colombier</pre><h3><a name="V3.0_Streams"></a>Streams</h3><pre>
85587dd7cddfSDavid du Colombier
85597dd7cddfSDavid du ColombierFixes bugs:
85607dd7cddfSDavid du Colombier	- gs_run_string and ccinit didn't have any way to mark the string
85617dd7cddfSDavid du Colombieras "foreign", which confused the GC.
85627dd7cddfSDavid du Colombier
85633ff48bf5SDavid du Colombier</pre><h3><a name="V3.0_Library"></a>Library</h3><pre>
85647dd7cddfSDavid du Colombier
85657dd7cddfSDavid du ColombierFixes bugs:
85667dd7cddfSDavid du Colombier	- gxchar.h had an extra comma after the last element of the
85677dd7cddfSDavid du Colombiershow_width_status enum, which upset some compilers.
85687dd7cddfSDavid du Colombier	- stroke and strokepath didn't correctly skip zero-length segments
85697dd7cddfSDavid du Colombierif the line width was less than one pixel, or if there was a closed subpath
85707dd7cddfSDavid du Colombierconsisting entirely of zero-length segments.
85717dd7cddfSDavid du Colombier	- strokepath sometimes incorrectly added a moveto at the end of the
85727dd7cddfSDavid du Colombierpath.
85737dd7cddfSDavid du Colombier</pre>
85747dd7cddfSDavid du Colombier
85757dd7cddfSDavid du Colombier<!-- [3.0 begin visible trailer] =========================================== -->
85767dd7cddfSDavid du Colombier<hr>
85777dd7cddfSDavid du Colombier
85783ff48bf5SDavid du Colombier<p>
85793ff48bf5SDavid du Colombier<small>Copyright &copy; 1996, 1997, 1998 Aladdin Enterprises.
85803ff48bf5SDavid du ColombierAll rights reserved.</small>
85817dd7cddfSDavid du Colombier
85827dd7cddfSDavid du Colombier<p>
8583*593dc095SDavid du ColombierThis software is provided AS-IS with no warranty, either express or
8584*593dc095SDavid du Colombierimplied.
8585*593dc095SDavid du Colombier
8586*593dc095SDavid du ColombierThis software is distributed under license and may not be copied,
8587*593dc095SDavid du Colombiermodified or distributed except as expressly authorized under the terms
8588*593dc095SDavid du Colombierof the license contained in the file LICENSE in this distribution.
8589*593dc095SDavid du Colombier
8590*593dc095SDavid du ColombierFor more information about licensing, please refer to
8591*593dc095SDavid du Colombierhttp://www.ghostscript.com/licensing/. For information on
8592*593dc095SDavid du Colombiercommercial licensing, go to http://www.artifex.com/licensing/ or
8593*593dc095SDavid du Colombiercontact Artifex Software, Inc., 101 Lucas Valley Road #110,
8594*593dc095SDavid du ColombierSan Rafael, CA  94903, U.S.A., +1(415)492-9861.
85957dd7cddfSDavid du Colombier
85963ff48bf5SDavid du Colombier<p>
8597*593dc095SDavid du Colombier<small>Ghostscript version 8.53, 20 October 2005
85983ff48bf5SDavid du Colombier
85997dd7cddfSDavid du Colombier
86007dd7cddfSDavid du Colombier<!-- [3.0 end visible trailer] ============================================= -->
86017dd7cddfSDavid du Colombier
86027dd7cddfSDavid du Colombier</body>
86037dd7cddfSDavid du Colombier</html>
8604