xref: /plan9/sys/src/cmd/gs/doc/History2.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 1.n</title>
5*593dc095SDavid du Colombier<!-- $Id: History2.htm,v 1.39 2005/10/20 19:46:23 ray Exp $ -->
67dd7cddfSDavid du Colombier<!-- Originally: history2.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 2.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="#Version2.9.10b">Version 2.9.10-beta (7/28/94)</a>
327dd7cddfSDavid du Colombier<ul>
337dd7cddfSDavid du Colombier<li><a href="#V2.9.10b_Documentation">Documentation</a>,
347dd7cddfSDavid du Colombier    <a href="#V2.9.10b_Procedures">Procedures</a>,
357dd7cddfSDavid du Colombier    <a href="#V2.9.10b_Utilities">Utilities</a>,
367dd7cddfSDavid du Colombier    <a href="#V2.9.10b_Drivers">Drivers</a>,
377dd7cddfSDavid du Colombier    <a href="#V2.9.10b_Platforms">Platforms</a>,
387dd7cddfSDavid du Colombier    <a href="#V2.9.10b_Fonts">Fonts</a>,
397dd7cddfSDavid du Colombier    <a href="#V2.9.10b_Interpreter">Interpreter</a>,
407dd7cddfSDavid du Colombier    <a href="#V2.9.10b_Streams">Streams</a>,
417dd7cddfSDavid du Colombier    <a href="#V2.9.10b_Library">Library</a>
427dd7cddfSDavid du Colombier</ul>
437dd7cddfSDavid du Colombier<li><a href="#Version2.9.9b">Version 2.9.9-beta (6/23/94)</a>
447dd7cddfSDavid du Colombier<ul>
457dd7cddfSDavid du Colombier<li><a href="#V2.9.9b_Documentation">Documentation</a>,
467dd7cddfSDavid du Colombier    <a href="#V2.9.9b_Platforms">Platforms</a>,
477dd7cddfSDavid du Colombier    <a href="#V2.9.9b_Fonts">Fonts</a>,
487dd7cddfSDavid du Colombier    <a href="#V2.9.9b_Interpreter">Interpreter</a>,
497dd7cddfSDavid du Colombier    <a href="#V2.9.9b_Library">Library</a>
507dd7cddfSDavid du Colombier</ul>
517dd7cddfSDavid du Colombier<li><a href="#Version2.9.8">Version 2.9.8 (6/20/94)</a>
527dd7cddfSDavid du Colombier<ul>
537dd7cddfSDavid du Colombier<li><a href="#V2.9.8_Documentation">Documentation</a>,
547dd7cddfSDavid du Colombier    <a href="#V2.9.8_Procedures">Procedures</a>,
557dd7cddfSDavid du Colombier    <a href="#V2.9.8_Utilities">Utilities</a>,
567dd7cddfSDavid du Colombier    <a href="#V2.9.8_Drivers">Drivers</a>,
577dd7cddfSDavid du Colombier    <a href="#V2.9.8_Platforms">Platforms</a>,
587dd7cddfSDavid du Colombier    <a href="#V2.9.8_Fonts">Fonts</a>,
597dd7cddfSDavid du Colombier    <a href="#V2.9.8_Interpreter">Interpreter</a>,
607dd7cddfSDavid du Colombier    <a href="#V2.9.8_Library">Library</a>
617dd7cddfSDavid du Colombier</ul>
627dd7cddfSDavid du Colombier<li><a href="#Version2.9.7b">Version 2.9.7-beta (6/5/94)</a>
637dd7cddfSDavid du Colombier<ul>
647dd7cddfSDavid du Colombier<li><a href="#V2.9.7b_Documentation">Documentation</a>,
657dd7cddfSDavid du Colombier    <a href="#V2.9.7b_Procedures">Procedures</a>,
667dd7cddfSDavid du Colombier    <a href="#V2.9.7b_Utilities">Utilities</a>,
677dd7cddfSDavid du Colombier    <a href="#V2.9.7b_Drivers">Drivers</a>,
687dd7cddfSDavid du Colombier    <a href="#V2.9.7b_Platforms">Platforms</a>,
697dd7cddfSDavid du Colombier    <a href="#V2.9.7b_Fonts">Fonts</a>,
707dd7cddfSDavid du Colombier    <a href="#V2.9.7b_Interpreter">Interpreter</a>,
717dd7cddfSDavid du Colombier    <a href="#V2.9.7b_Library">Library</a>
727dd7cddfSDavid du Colombier</ul>
737dd7cddfSDavid du Colombier<li><a href="#Version2.9.6b">Version 2.9.6-beta (5/23/94, not distributed to the public)</a>
747dd7cddfSDavid du Colombier<ul>
757dd7cddfSDavid du Colombier<li><a href="#V2.9.6b_Documentation">Documentation</a>,
767dd7cddfSDavid du Colombier    <a href="#V2.9.6b_Procedures">Procedures</a>,
777dd7cddfSDavid du Colombier    <a href="#V2.9.6b_Utilities">Utilities</a>,
787dd7cddfSDavid du Colombier    <a href="#V2.9.6b_Drivers">Drivers</a>,
797dd7cddfSDavid du Colombier    <a href="#V2.9.6b_Platforms">Platforms</a>,
807dd7cddfSDavid du Colombier    <a href="#V2.9.6b_Fonts">Fonts</a>,
817dd7cddfSDavid du Colombier    <a href="#V2.9.6b_Interpreter">Interpreter</a>,
827dd7cddfSDavid du Colombier    <a href="#V2.9.6b_Library">Library</a>
837dd7cddfSDavid du Colombier</ul>
847dd7cddfSDavid du Colombier<li><a href="#Version2.9.5b">Version 2.9.5-beta (4/11/94)</a>
857dd7cddfSDavid du Colombier<ul>
867dd7cddfSDavid du Colombier<li><a href="#V2.9.5b_Documentation">Documentation</a>,
877dd7cddfSDavid du Colombier    <a href="#V2.9.5b_Procedures">Procedures</a>,
887dd7cddfSDavid du Colombier    <a href="#V2.9.5b_Utilities">Utilities</a>,
897dd7cddfSDavid du Colombier    <a href="#V2.9.5b_Drivers">Drivers</a>,
907dd7cddfSDavid du Colombier    <a href="#V2.9.5b_Platforms">Platforms</a>,
917dd7cddfSDavid du Colombier    <a href="#V2.9.5b_Interpreter">Interpreter</a>,
927dd7cddfSDavid du Colombier    <a href="#V2.9.5b_Library">Library</a>
937dd7cddfSDavid du Colombier</ul>
947dd7cddfSDavid du Colombier<li><a href="#Version2.9.4b">Version 2.9.4-beta (2/19/94)</a>
957dd7cddfSDavid du Colombier<ul>
967dd7cddfSDavid du Colombier<li><a href="#V2.9.4b_Procedures">Procedures</a>,
977dd7cddfSDavid du Colombier    <a href="#V2.9.4b_Utilities">Utilities</a>,
987dd7cddfSDavid du Colombier    <a href="#V2.9.4b_Drivers">Drivers</a>,
997dd7cddfSDavid du Colombier    <a href="#V2.9.4b_Platforms">Platforms</a>,
1007dd7cddfSDavid du Colombier    <a href="#V2.9.4b_Interpreter">Interpreter</a>,
1017dd7cddfSDavid du Colombier    <a href="#V2.9.4b_Library">Library</a>
1027dd7cddfSDavid du Colombier</ul>
1037dd7cddfSDavid du Colombier<li><a href="#Version2.9.3b">Version 2.9.3-beta (1/19/94)</a>
1047dd7cddfSDavid du Colombier<ul>
1057dd7cddfSDavid du Colombier<li><a href="#V2.9.3b_Documentation">Documentation</a>,
1067dd7cddfSDavid du Colombier    <a href="#V2.9.3b_Procedures">Procedures</a>,
1077dd7cddfSDavid du Colombier    <a href="#V2.9.3b_Drivers">Drivers</a>,
1087dd7cddfSDavid du Colombier    <a href="#V2.9.3b_Platforms">Platforms</a>,
1097dd7cddfSDavid du Colombier    <a href="#V2.9.3b_Interpreter">Interpreter</a>,
1107dd7cddfSDavid du Colombier    <a href="#V2.9.3b_Library">Library</a>
1117dd7cddfSDavid du Colombier</ul>
1127dd7cddfSDavid du Colombier<li><a href="#Version2.9.2b">Version 2.9.2-beta (1/2/94)</a>
1137dd7cddfSDavid du Colombier<ul>
1147dd7cddfSDavid du Colombier<li><a href="#V2.9.2b_Documentation">Documentation</a>,
1157dd7cddfSDavid du Colombier    <a href="#V2.9.2b_Utilities">Utilities</a>,
1167dd7cddfSDavid du Colombier    <a href="#V2.9.2b_Drivers">Drivers</a>,
1177dd7cddfSDavid du Colombier    <a href="#V2.9.2b_Platforms">Platforms</a>,
1187dd7cddfSDavid du Colombier    <a href="#V2.9.2b_Fonts">Fonts</a>,
1197dd7cddfSDavid du Colombier    <a href="#V2.9.2b_Interpreter">Interpreter</a>,
1207dd7cddfSDavid du Colombier    <a href="#V2.9.2b_Library">Library</a>
1217dd7cddfSDavid du Colombier</ul>
1227dd7cddfSDavid du Colombier<li><a href="#Version2.9.1b">Version 2.9.1-beta (12/7/93)</a>
1237dd7cddfSDavid du Colombier<ul>
1247dd7cddfSDavid du Colombier<li><a href="#V2.9.1b_Utilities">Utilities</a>,
1257dd7cddfSDavid du Colombier    <a href="#V2.9.1b_Interpreter">Interpreter</a>,
1267dd7cddfSDavid du Colombier    <a href="#V2.9.1b_Library">Library</a>
1277dd7cddfSDavid du Colombier</ul>
1287dd7cddfSDavid du Colombier<li><a href="#Version2.9b">Version 2.9-beta (12/6/93)</a>
1297dd7cddfSDavid du Colombier<ul>
1307dd7cddfSDavid du Colombier<li><a href="#V2.9b_Documentation">Documentation</a>,
1317dd7cddfSDavid du Colombier    <a href="#V2.9b_Procedures">Procedures</a>,
1327dd7cddfSDavid du Colombier    <a href="#V2.9b_Utilities">Utilities</a>,
1337dd7cddfSDavid du Colombier    <a href="#V2.9b_Drivers">Drivers</a>,
1347dd7cddfSDavid du Colombier    <a href="#V2.9b_Platforms">Platforms</a>,
1357dd7cddfSDavid du Colombier    <a href="#V2.9b_Interpreter">Interpreter</a>,
1367dd7cddfSDavid du Colombier    <a href="#V2.9b_Library">Library</a>
1377dd7cddfSDavid du Colombier</ul>
1387dd7cddfSDavid du Colombier<li><a href="#Version2.8b">Version 2.8-beta (11/10/93)</a>
1397dd7cddfSDavid du Colombier<ul>
1407dd7cddfSDavid du Colombier<li><a href="#V2.8b_Documentation">Documentation</a>,
1417dd7cddfSDavid du Colombier    <a href="#V2.8b_Procedures">Procedures</a>,
1427dd7cddfSDavid du Colombier    <a href="#V2.8b_Utilities">Utilities</a>,
1437dd7cddfSDavid du Colombier    <a href="#V2.8b_Drivers">Drivers</a>,
1447dd7cddfSDavid du Colombier    <a href="#V2.8b_Platforms">Platforms</a>,
1457dd7cddfSDavid du Colombier    <a href="#V2.8b_Fonts">Fonts</a>,
1467dd7cddfSDavid du Colombier    <a href="#V2.8b_Interpreter">Interpreter</a>,
1477dd7cddfSDavid du Colombier    <a href="#V2.8b_Library">Library</a>
1487dd7cddfSDavid du Colombier</ul>
1497dd7cddfSDavid du Colombier<li><a href="#Version2.7.2b">Version 2.7.2-beta (10/11/93)</a>
1507dd7cddfSDavid du Colombier<ul>
1517dd7cddfSDavid du Colombier<li><a href="#V2.7.2b_Utilities">Utilities</a>,
1527dd7cddfSDavid du Colombier    <a href="#V2.7.2b_Interpreter">Interpreter</a>,
1537dd7cddfSDavid du Colombier    <a href="#V2.7.2b_Library">Library</a>
1547dd7cddfSDavid du Colombier</ul>
1557dd7cddfSDavid du Colombier<li><a href="#Version2.7.1b">Version 2.7.1-beta (10/4/93, not distributed to the public)</a>
1567dd7cddfSDavid du Colombier<ul>
1577dd7cddfSDavid du Colombier<li><a href="#V2.7.1b_Documentation">Documentation</a>,
1587dd7cddfSDavid du Colombier    <a href="#V2.7.1b_Utilities">Utilities</a>,
1597dd7cddfSDavid du Colombier    <a href="#V2.7.1b_Drivers">Drivers</a>,
1607dd7cddfSDavid du Colombier    <a href="#V2.7.1b_Platforms">Platforms</a>,
1617dd7cddfSDavid du Colombier    <a href="#V2.7.1b_Fonts">Fonts</a>,
1627dd7cddfSDavid du Colombier    <a href="#V2.7.1b_Interpreter">Interpreter</a>,
1637dd7cddfSDavid du Colombier    <a href="#V2.7.1b_Library">Library</a>
1647dd7cddfSDavid du Colombier</ul>
1657dd7cddfSDavid du Colombier<li><a href="#Version2.7b">Version 2.7-beta (9/20/93, not distributed to the public)</a>
1667dd7cddfSDavid du Colombier<ul>
1677dd7cddfSDavid du Colombier<li><a href="#V2.7b_Documentation">Documentation</a>,
1687dd7cddfSDavid du Colombier    <a href="#V2.7b_Procedures">Procedures</a>,
1697dd7cddfSDavid du Colombier    <a href="#V2.7b_Utilities">Utilities</a>,
1707dd7cddfSDavid du Colombier    <a href="#V2.7b_Drivers">Drivers</a>,
1717dd7cddfSDavid du Colombier    <a href="#V2.7b_Platforms">Platforms</a>,
1727dd7cddfSDavid du Colombier    <a href="#V2.7b_Fonts">Fonts</a>,
1737dd7cddfSDavid du Colombier    <a href="#V2.7b_Interpreter">Interpreter</a>,
1747dd7cddfSDavid du Colombier    <a href="#V2.7b_Library">Library</a>
1757dd7cddfSDavid du Colombier</ul>
1767dd7cddfSDavid du Colombier<li><a href="#Version2.6.1">Version 2.6.1 (5/28/93)</a>
1777dd7cddfSDavid du Colombier<ul>
1787dd7cddfSDavid du Colombier<li><a href="#V2.6.1_Documentation">Documentation</a>,
1797dd7cddfSDavid du Colombier    <a href="#V2.6.1_Procedures">Procedures</a>,
1807dd7cddfSDavid du Colombier    <a href="#V2.6.1_Utilities">Utilities</a>,
1817dd7cddfSDavid du Colombier    <a href="#V2.6.1_Drivers">Drivers</a>,
1827dd7cddfSDavid du Colombier    <a href="#V2.6.1_Platforms">Platforms</a>,
1837dd7cddfSDavid du Colombier    <a href="#V2.6.1_Fonts">Fonts</a>,
1847dd7cddfSDavid du Colombier    <a href="#V2.6.1_Interpreter">Interpreter</a>,
1857dd7cddfSDavid du Colombier    <a href="#V2.6.1_Library">Library</a>
1867dd7cddfSDavid du Colombier</ul>
1877dd7cddfSDavid du Colombier<li><a href="#Version2.6">Version 2.6 (5/9/93)</a>
1887dd7cddfSDavid du Colombier<ul>
1897dd7cddfSDavid du Colombier<li><a href="#V2.6_Documentation">Documentation</a>,
1907dd7cddfSDavid du Colombier    <a href="#V2.6_Procedures">Procedures</a>,
1917dd7cddfSDavid du Colombier    <a href="#V2.6_Utilities">Utilities</a>,
1927dd7cddfSDavid du Colombier    <a href="#V2.6_Platforms">Platforms</a>,
1937dd7cddfSDavid du Colombier    <a href="#V2.6_Fonts">Fonts</a>,
1947dd7cddfSDavid du Colombier    <a href="#V2.6_Drivers">Drivers</a>,
1957dd7cddfSDavid du Colombier    <a href="#V2.6_Interpreter">Interpreter</a>,
1967dd7cddfSDavid du Colombier    <a href="#V2.6_Library">Library</a>
1977dd7cddfSDavid du Colombier</ul>
1987dd7cddfSDavid du Colombier<li><a href="#Version2.5.2">Version 2.5.2 (9/20/92)</a>
1997dd7cddfSDavid du Colombier<ul>
2007dd7cddfSDavid du Colombier<li><a href="#V2.5.2_Procedures">Procedures</a>,
2017dd7cddfSDavid du Colombier    <a href="#V2.5.2_Utilities">Utilities</a>,
2027dd7cddfSDavid du Colombier    <a href="#V2.5.2_Platforms">Platforms</a>,
2037dd7cddfSDavid du Colombier    <a href="#V2.5.2_Drivers">Drivers</a>,
2047dd7cddfSDavid du Colombier    <a href="#V2.5.2_Interpreter">Interpreter</a>,
2057dd7cddfSDavid du Colombier    <a href="#V2.5.2_Library">Library</a>
2067dd7cddfSDavid du Colombier</ul>
2077dd7cddfSDavid du Colombier<li><a href="#Version2.5.1">Version 2.5.1 (9/11/92)</a>
2087dd7cddfSDavid du Colombier<ul>
2097dd7cddfSDavid du Colombier<li><a href="#V2.5.1_Procedures">Procedures</a>,
2107dd7cddfSDavid du Colombier    <a href="#V2.5.1_Utilities">Utilities</a>,
2117dd7cddfSDavid du Colombier    <a href="#V2.5.1_Platforms">Platforms</a>,
2127dd7cddfSDavid du Colombier    <a href="#V2.5.1_Fonts">Fonts</a>,
2137dd7cddfSDavid du Colombier    <a href="#V2.5.1_Drivers">Drivers</a>,
2147dd7cddfSDavid du Colombier    <a href="#V2.5.1_Interpreter">Interpreter</a>,
2157dd7cddfSDavid du Colombier    <a href="#V2.5.1_Library">Library</a>
2167dd7cddfSDavid du Colombier</ul>
2177dd7cddfSDavid du Colombier<li><a href="#Version2.5">Version 2.5 (8/18/92)</a>
2187dd7cddfSDavid du Colombier<ul>
2197dd7cddfSDavid du Colombier<li><a href="#V2.5_Procedures">Procedures</a>,
2207dd7cddfSDavid du Colombier    <a href="#V2.5_Utilities">Utilities</a>,
2217dd7cddfSDavid du Colombier    <a href="#V2.5_Platforms">Platforms</a>,
2227dd7cddfSDavid du Colombier    <a href="#V2.5_Fonts">Fonts</a>,
2237dd7cddfSDavid du Colombier    <a href="#V2.5_Drivers">Drivers</a>,
2247dd7cddfSDavid du Colombier    <a href="#V2.5_Interpreter">Interpreter</a>,
2257dd7cddfSDavid du Colombier    <a href="#V2.5_Library">Library</a>
2267dd7cddfSDavid du Colombier</ul>
2277dd7cddfSDavid du Colombier<li><a href="#Version2.4.2">Version 2.4.2 (5/8/92)</a>
2287dd7cddfSDavid du Colombier<ul>
2297dd7cddfSDavid du Colombier<li><a href="#V2.4.2_Procedures">Procedures</a>,
2307dd7cddfSDavid du Colombier    <a href="#V2.4.2_Utilities">Utilities</a>,
2317dd7cddfSDavid du Colombier    <a href="#V2.4.2_Platforms">Platforms</a>,
2327dd7cddfSDavid du Colombier    <a href="#V2.4.2_Fonts">Fonts</a>,
2337dd7cddfSDavid du Colombier    <a href="#V2.4.2_Drivers">Drivers</a>,
2347dd7cddfSDavid du Colombier    <a href="#V2.4.2_Interpreter">Interpreter</a>,
2357dd7cddfSDavid du Colombier    <a href="#V2.4.2_Library">Library</a>
2367dd7cddfSDavid du Colombier</ul>
2377dd7cddfSDavid du Colombier<li><a href="#Version2.4.1">Version 2.4.1 (4/21/92)</a>
2387dd7cddfSDavid du Colombier<ul>
2397dd7cddfSDavid du Colombier<li><a href="#V2.4.1_Procedures">Procedures</a>,
2407dd7cddfSDavid du Colombier    <a href="#V2.4.1_Utilities">Utilities</a>,
2417dd7cddfSDavid du Colombier    <a href="#V2.4.1_Drivers">Drivers</a>,
2427dd7cddfSDavid du Colombier    <a href="#V2.4.1_Fonts">Fonts</a>,
2437dd7cddfSDavid du Colombier    <a href="#V2.4.1_Interpreter">Interpreter</a>,
2447dd7cddfSDavid du Colombier    <a href="#V2.4.1_Library">Library</a>
2457dd7cddfSDavid du Colombier</ul>
2467dd7cddfSDavid du Colombier<li><a href="#Version2.4">Version 2.4 (3/25/92)</a>
2477dd7cddfSDavid du Colombier<ul>
2487dd7cddfSDavid du Colombier<li><a href="#V2.4_Procedures">Procedures</a>,
2497dd7cddfSDavid du Colombier    <a href="#V2.4_Utilities">Utilities</a>,
2507dd7cddfSDavid du Colombier    <a href="#V2.4_Drivers">Drivers</a>,
2517dd7cddfSDavid du Colombier    <a href="#V2.4_Fonts">Fonts</a>,
2527dd7cddfSDavid du Colombier    <a href="#V2.4_Interpreter">Interpreter</a>,
2537dd7cddfSDavid du Colombier    <a href="#V2.4_Library">Library</a>
2547dd7cddfSDavid du Colombier</ul>
2557dd7cddfSDavid du Colombier<li><a href="#Version2.3">Version 2.3 (8/28/91)</a>
2567dd7cddfSDavid du Colombier<ul>
2577dd7cddfSDavid du Colombier<li><a href="#V2.3_Utilities">Utilities</a>,
2587dd7cddfSDavid du Colombier    <a href="#V2.3_Drivers">Drivers</a>
2597dd7cddfSDavid du Colombier</ul>
2607dd7cddfSDavid du Colombier<li><a href="#Version2.2">Version 2.2 (6/1/91)</a>
2617dd7cddfSDavid du Colombier<ul>
2627dd7cddfSDavid du Colombier<li><a href="#V2.2_Procedures">Procedures</a>,
2637dd7cddfSDavid du Colombier    <a href="#V2.2_Drivers">Drivers</a>,
2647dd7cddfSDavid du Colombier    <a href="#V2.2_Fonts">Fonts</a>,
2657dd7cddfSDavid du Colombier    <a href="#V2.2_Utilities">Utilities</a>,
2667dd7cddfSDavid du Colombier    <a href="#V2.2_Interpreter">Interpreter</a>,
2677dd7cddfSDavid du Colombier    <a href="#V2.2_Library">Library</a>
2687dd7cddfSDavid du Colombier</ul>
2697dd7cddfSDavid du Colombier<li><a href="#Version2.1.1">Version 2.1.1 (1/15/91)</a>
2707dd7cddfSDavid du Colombier<ul>
2717dd7cddfSDavid du Colombier<li><a href="#V2.1.1_Build_procedures">Build procedures</a>,
2727dd7cddfSDavid du Colombier    <a href="#V2.1.1_Interpreter">Interpreter</a>,
2737dd7cddfSDavid du Colombier    <a href="#V2.1.1_Drivers">Drivers</a>,
2747dd7cddfSDavid du Colombier    <a href="#V2.1.1_Library">Library</a>
2757dd7cddfSDavid du Colombier</ul>
2767dd7cddfSDavid du Colombier<li><a href="#Version2.1">Version 2.1 (12/31/90)</a>
2777dd7cddfSDavid du Colombier<ul>
2787dd7cddfSDavid du Colombier<li><a href="#V2.1_Build_procedures">Build procedures</a>,
2797dd7cddfSDavid du Colombier    <a href="#V2.1_Drivers">Drivers</a>,
2807dd7cddfSDavid du Colombier    <a href="#V2.1_Fonts">Fonts</a>,
2817dd7cddfSDavid du Colombier    <a href="#V2.1_Interpreter">Interpreter</a>,
2827dd7cddfSDavid du Colombier    <a href="#V2.1_Library">Library</a>
2837dd7cddfSDavid du Colombier</ul>
2847dd7cddfSDavid du Colombier<li><a href="#Version2.0">Version 2.0 (9/12/90)</a>
2857dd7cddfSDavid du Colombier<ul>
2867dd7cddfSDavid du Colombier<li><a href="#V2.0_Miscellaneous">Miscellaneous</a>,
2877dd7cddfSDavid du Colombier    <a href="#V2.0_Drivers">Drivers</a>,
2887dd7cddfSDavid du Colombier    <a href="#V2.0_Build_procedures">Build procedures</a>,
2897dd7cddfSDavid du Colombier    <a href="#V2.0_Interpreter">Interpreter</a>,
2907dd7cddfSDavid du Colombier    <a href="#V2.0_Library">Library</a>
2917dd7cddfSDavid du Colombier</ul>
2927dd7cddfSDavid du Colombier</ul></blockquote>
2937dd7cddfSDavid du Colombier
2947dd7cddfSDavid du Colombier<!-- [1.2 end table of contents] =========================================== -->
2957dd7cddfSDavid du Colombier
2967dd7cddfSDavid du Colombier<!-- [1.3 begin hint] ====================================================== -->
2977dd7cddfSDavid du Colombier
2987dd7cddfSDavid du Colombier<p>
2997dd7cddfSDavid du ColombierThis document is a history of Ghostscript releases numbered 2.n.  For more
3007dd7cddfSDavid du Colombierrecent changes, see the the other history documents and, for the latest
3017dd7cddfSDavid du Colombierversions, the new:
3027dd7cddfSDavid du Colombier
3037dd7cddfSDavid du Colombier<blockquote>
3047dd7cddfSDavid du Colombier<a href="News.htm">News</a><br>
3057dd7cddfSDavid du Colombier<a href="History4.htm">History of Ghostscript versions 4.n</a><br>
3067dd7cddfSDavid du Colombier<a href="History3.htm">History of Ghostscript versions 3.n</a><br>
3077dd7cddfSDavid du ColombierHistory of Ghostscript versions 2.n (this document)<br>
3087dd7cddfSDavid du Colombier<a href="History1.htm">History of Ghostscript versions 1.n</a>
3097dd7cddfSDavid du Colombier</blockquote>
3107dd7cddfSDavid du Colombier
3117dd7cddfSDavid du Colombier<p>For other information, see the <a href="Readme.htm">Ghostscript
3127dd7cddfSDavid du Colombieroverview</a>.
3137dd7cddfSDavid du Colombier
3147dd7cddfSDavid du Colombier<!-- [1.3 end hint] ======================================================== -->
3157dd7cddfSDavid du Colombier
3167dd7cddfSDavid du Colombier<hr>
3177dd7cddfSDavid du Colombier
3187dd7cddfSDavid du Colombier<!-- [1.0 end visible header] ============================================== -->
3197dd7cddfSDavid du Colombier
3203ff48bf5SDavid du Colombier<h2><a name="Version2.9.10b"></a>Version 2.9.10-beta (7/28/94)</h2>
3217dd7cddfSDavid du Colombier
3223ff48bf5SDavid du Colombier<p>
3237dd7cddfSDavid du ColombierThis is the last 2.9 beta, since 3.0 will be released on July 31.
3247dd7cddfSDavid du Colombier
3253ff48bf5SDavid du Colombier<h3><a name="V2.9.10b_Documentation"></a>Documentation</h3><pre>
3267dd7cddfSDavid du ColombierFixes bugs:
3277dd7cddfSDavid du Colombier	- A | in gs.1 had a \ in front of it instead of \\.
3287dd7cddfSDavid du Colombier
3297dd7cddfSDavid du ColombierAdds a paragraph in gs.1 that tells how to select paper size.
3307dd7cddfSDavid du Colombier
3317dd7cddfSDavid du ColombierNotes in devs.mak that the cdj550 driver is the best one for the H-P
3327dd7cddfSDavid du ColombierDeskJet 520, and the pjxl300 driver is the right one for the H-P DeskJet
3337dd7cddfSDavid du Colombier1200C.
3347dd7cddfSDavid du Colombier
3357dd7cddfSDavid du ColombierNotes in make.doc that Watcom C++ 10.0 may require a change in a makefile.
3367dd7cddfSDavid du Colombier
3373ff48bf5SDavid du Colombier</pre><h3><a name="V2.9.10b_Procedures"></a>Procedures</h3><pre>
3387dd7cddfSDavid du ColombierRemoves ICCINIT from MODULES.LIS for VMS systems.
3397dd7cddfSDavid du Colombier
3407dd7cddfSDavid du ColombierUpdates VMS.MAK to support Motif V1.2.
3417dd7cddfSDavid du Colombier
3427dd7cddfSDavid du ColombierUpdates jpeg.mak to work with version 5alpha4 of the IJG JPEG code.
3437dd7cddfSDavid du Colombier
3443ff48bf5SDavid du Colombier</pre><h3><a name="V2.9.10b_Utilities"></a>Utilities</h3><pre>
3457dd7cddfSDavid du ColombierFixes bugs:
3467dd7cddfSDavid du Colombier	- font2c didn't leave extra room in Type 0 font dictionaries for
3477dd7cddfSDavid du Colombierentries added by definefont.
3487dd7cddfSDavid du Colombier	- font2c left extra information on the stack.
3497dd7cddfSDavid du Colombier	- ansi2knr would remove newline characters within formal argument
3507dd7cddfSDavid du Colombierlists.
3517dd7cddfSDavid du Colombier	- font2c got an Error: /undefined in makefontprocname.
3527dd7cddfSDavid du Colombier
3537dd7cddfSDavid du ColombierUpdates ansi2knr to work better with the GNU configure program.
3547dd7cddfSDavid du Colombier
3557dd7cddfSDavid du ColombierUpdates ansi2knr to handle procedure formal arguments automatically.
3567dd7cddfSDavid du Colombier
3573ff48bf5SDavid du Colombier</pre><h3><a name="V2.9.10b_Drivers"></a>Drivers</h3><pre>
3587dd7cddfSDavid du ColombierFixes bugs:
3597dd7cddfSDavid du Colombier	- If a file contained color or gray-scale information followed by a
3607dd7cddfSDavid du Colombiermasked image, the X driver would sometimes invert the polarity of the
3617dd7cddfSDavid du Colombierimage.
3627dd7cddfSDavid du Colombier
3633ff48bf5SDavid du Colombier</pre><h3><a name="V2.9.10b_Platforms"></a>Platforms</h3><pre>
3647dd7cddfSDavid du ColombierFixes bugs:
3657dd7cddfSDavid du Colombier	- Unix systems with a 2-argument gettimeofday returned garbage
3667dd7cddfSDavid du Colombiervalues for the current time.
3677dd7cddfSDavid du Colombier	- The VMS build script for compiled fonts omitted the requirement
3687dd7cddfSDavid du Colombierto load gs_ccfnt.ps.
3697dd7cddfSDavid du Colombier	- memory_.h didn't note that System V Unix platforms need memmove.
3707dd7cddfSDavid du Colombier
3717dd7cddfSDavid du ColombierOn Unix systems, changes the subdirectory of $datadir/ghostscript to just
3727dd7cddfSDavid du Colombierbe the version number (e.g., 2.9.10 rather than gs-2.9.9).
3737dd7cddfSDavid du Colombier
3743ff48bf5SDavid du Colombier</pre><h3><a name="V2.9.10b_Fonts"></a>Fonts</h3><pre>
3757dd7cddfSDavid du ColombierAdds support code for the Wadalab (University of Tokyo) free Kanji font.
3767dd7cddfSDavid du Colombier
3777dd7cddfSDavid du ColombierNotes in the documentation in Fontmap that .pfa and .pfb fonts are
3787dd7cddfSDavid du Colombiercompatible with ATM, but .gsf fonts are not.
3797dd7cddfSDavid du Colombier
3807dd7cddfSDavid du ColombierChanges the names of Thomas Wolff's expanded Hershey fonts, replacing .gsf
3817dd7cddfSDavid du Colombierwith .pfa.
3827dd7cddfSDavid du Colombier
3833ff48bf5SDavid du Colombier</pre><h3><a name="V2.9.10b_Interpreter"></a>Interpreter</h3><pre>
3847dd7cddfSDavid du ColombierFixes bugs:
3857dd7cddfSDavid du Colombier	- The scanner became confused if the literal names /&lt;&lt; or /&gt;&gt;
3867dd7cddfSDavid du Colombierstraddled an input buffer boundary.
3877dd7cddfSDavid du Colombier	- .setlanguagelevel gave an invalidaccess error when
3887dd7cddfSDavid du Colombierswitching from level 2 to level 1.
3897dd7cddfSDavid du Colombier	- currentgstate, setgstate, and copy for gstates didn't do
3907dd7cddfSDavid du Colombierthe necessary access checks.
3917dd7cddfSDavid du Colombier	- The Category resource category didn't define .ResourceFile, so
3927dd7cddfSDavid du Colombier/Category resourcestatus gave an error.
3937dd7cddfSDavid du Colombier	- The garbage collector didn't trace the structures used by
3947dd7cddfSDavid du Colombierfilenameforall properly on most platforms.
3957dd7cddfSDavid du Colombier	- Automatically expanding systemdict didn't work, but didn't give
3967dd7cddfSDavid du Colombieran error.
3977dd7cddfSDavid du Colombier	- Automatically expanding a dictionary usually expanded it by too
3987dd7cddfSDavid du Colombiermuch.
3997dd7cddfSDavid du Colombier	- systemdict was created too small.
4007dd7cddfSDavid du Colombier	- The garbage collector didn't trace the structures referenced only
4017dd7cddfSDavid du Colombierfrom allocator objects, leading to attempts to access freed storage.
4027dd7cddfSDavid du Colombier	- If a chunk was empty, the GC tried to free it even if it had
4037dd7cddfSDavid du Colombierinner chunks.
4047dd7cddfSDavid du Colombier*	- The outer loop in dict_find_name_by_index() could cause an
4057dd7cddfSDavid du Colombieraddressing fault on segmented machines when looking up Level 2 operators,
4067dd7cddfSDavid du Colombierbecause the offset could get decremented past 0.
4077dd7cddfSDavid du Colombier	- The heap_available procedure in gsmemory.c didn't convert
4087dd7cddfSDavid du Colombierproperly to non-ANSI syntax.  (New bug in 2.9.9.)
4097dd7cddfSDavid du Colombier	- The ledgertray procedure wasn't implemented.
4107dd7cddfSDavid du Colombier	- The xxxtray procedures didn't set the page size.
4117dd7cddfSDavid du Colombier	- The settumble operator wasn't implemented, even as a dummy.
4127dd7cddfSDavid du Colombier	- glyphshow didn't work with Type 3 fonts.
4137dd7cddfSDavid du Colombier	- Supplying a RenderTable for a CIE color space caused an error.
4147dd7cddfSDavid du Colombier	- The DCT filter code had the jpeg/ subdirectory name "wired in" to
4157dd7cddfSDavid du Colombierthe source files.
4167dd7cddfSDavid du Colombier
4177dd7cddfSDavid du ColombierAdds experimental filters for Burrows/Wheeler block sorting compression
4187dd7cddfSDavid du Colombier(BWBlockSortEncode/Decode), described in DEC SRC Research Report #124,
4197dd7cddfSDavid du Colombiermove-to-front coding (MoveToFrontEncode/Decode), and a simple form of
4207dd7cddfSDavid du ColombierHuffman coding (BoundedHuffmanEncode/Decode).  These are experimental -- do
4217dd7cddfSDavid du Colombiernot rely on them remaining the same (or existing at all) in future
4227dd7cddfSDavid du Colombierreleases!
4237dd7cddfSDavid du Colombier
4247dd7cddfSDavid du ColombierAdds all function prototypes needed to pacify strict compilers.
4257dd7cddfSDavid du Colombier
4267dd7cddfSDavid du ColombierRemoves all explicit references to userdict from the C code.
4277dd7cddfSDavid du Colombier
4287dd7cddfSDavid du ColombierChanges the SAFER switch so that it disallows not only explicit writing,
4297dd7cddfSDavid du Colombierdeleting, or renaming of files, but also disallows specifying an explicit
4307dd7cddfSDavid du ColombierOutputFile for any device (except for the initial device, by means of
4317dd7cddfSDavid du Colombier-sOutputFile= on the command line).
4327dd7cddfSDavid du Colombier
4333ff48bf5SDavid du Colombier</pre><h3><a name="V2.9.10b_Streams"></a>Streams</h3><pre>
4347dd7cddfSDavid du ColombierFixes bugs:
4357dd7cddfSDavid du Colombier	- Hex decoding (ASCIIHexDecode stream and &lt;&gt; literals) didn't treat
4367dd7cddfSDavid du Colombierthe data source as read-only (although it restored it to its original
4377dd7cddfSDavid du Colombiercontents).
4387dd7cddfSDavid du Colombier
4397dd7cddfSDavid du ColombierImplements move-to-front coding, a simple form of Huffman coding, and
4407dd7cddfSDavid du ColombierBurrows/Wheeler block sorting compression.
4417dd7cddfSDavid du Colombier
4423ff48bf5SDavid du Colombier</pre><h3><a name="V2.9.10b_Library"></a>Library</h3><pre>
4437dd7cddfSDavid du ColombierFixes bugs:
4447dd7cddfSDavid du Colombier*	- (The following bug fix was actually implemented somewhere around
4457dd7cddfSDavid du Colombierversion 2.7.)  restore didn't purge character cache entries whose keys were
4467dd7cddfSDavid du Colombiernames created more recently than the save.
4477dd7cddfSDavid du Colombier	- gstype1.h declared gs_type1_state_sizeof as an extern, but this
4487dd7cddfSDavid du Colombierwasn't defined anywhere.
4497dd7cddfSDavid du Colombier	- gs_makeimagedevice didn't set the size of the palette correctly,
4507dd7cddfSDavid du Colombierwhich confused the GC.
4517dd7cddfSDavid du Colombier	- gs_makeimagedevice didn't set num_components to 1 for
4527dd7cddfSDavid du Colombiermapped-color devices with only gray values.
4537dd7cddfSDavid du Colombier*	- The two-color halftoning algorithms truncated when computing the
4547dd7cddfSDavid du Colombierhalftone level, rather than rounding it.
4557dd7cddfSDavid du Colombier*	- If a path being filled had line segments that fell entirely to
4567dd7cddfSDavid du Colombierthe right of the clipping region, part of the path might not be filled.
4577dd7cddfSDavid du Colombier	- The optimized code for 24-bit color didn't ensure properly that
4587dd7cddfSDavid du Colombier32-bit accesses would be aligned appropriately.
4597dd7cddfSDavid du Colombier	- The miter join check had gotten reversed somewhere along the way.
4607dd7cddfSDavid du Colombier*	- Because x and y were interchanged in the miter check computation,
4617dd7cddfSDavid du Colombierin some situations the check was inverted.  (This is a very old bug!)
4627dd7cddfSDavid du Colombier	- It was believed that strokepath didn't work with dashed lines;
4637dd7cddfSDavid du Colombierthe problem appears to have been an incorrect testing program.
4647dd7cddfSDavid du Colombier
4657dd7cddfSDavid du ColombierAdds all function prototypes needed to pacify strict compilers.
4667dd7cddfSDavid du Colombier
4677dd7cddfSDavid du ColombierChanges fixed2float so it doesn't cast the result to float, and removes
4687dd7cddfSDavid du Colombierfixed2double.  This produces slightly more accurate results in many places,
4697dd7cddfSDavid du Colombierand may even be faster (for FPUs that normally generate double rather than
4707dd7cddfSDavid du Colombiersingle precision results).
4717dd7cddfSDavid du Colombier
4723ff48bf5SDavid du Colombier</pre>
4737dd7cddfSDavid du Colombier
4743ff48bf5SDavid du Colombier<h2><a name="Version2.9.9b"></a>Version 2.9.9-beta (6/23/94)</h2>
4757dd7cddfSDavid du Colombier
4763ff48bf5SDavid du Colombier<h3><a name="V2.9.9b_Documentation"></a>Documentation</h3><pre>
4777dd7cddfSDavid du ColombierPuts a pointer to devs.mak in the section of use.doc that talks about
4787dd7cddfSDavid du ColombierMS-DOS displays.
4797dd7cddfSDavid du Colombier
4803ff48bf5SDavid du Colombier</pre><h3><a name="V2.9.9b_Platforms"></a>Platforms</h3><pre>
4817dd7cddfSDavid du ColombierFixes bugs:
4827dd7cddfSDavid du Colombier	- The %pipe% IODevice was omitted on System V platforms.
4837dd7cddfSDavid du Colombier	- The AXP VMS build script needed /NESTED_INCLUDE=PRIMARY in
4847dd7cddfSDavid du ColombierCC_QUAL to work around a bug in the DEC C compiler.
4857dd7cddfSDavid du Colombier
4863ff48bf5SDavid du Colombier</pre><h3><a name="V2.9.9b_Fonts"></a>Fonts</h3><pre>
4877dd7cddfSDavid du ColombierFixes bugs:
4887dd7cddfSDavid du Colombier	- gs_lev2.ps redefined .loadFontmap incorrectly.
4897dd7cddfSDavid du Colombier
4903ff48bf5SDavid du Colombier</pre><h3><a name="V2.9.9b_Interpreter"></a>Interpreter</h3><pre>
4917dd7cddfSDavid du ColombierFixes bugs:
4927dd7cddfSDavid du Colombier	- stream_compact used memcpy even though the source and destination
4937dd7cddfSDavid du Colombiermight overlap.
4947dd7cddfSDavid du Colombier	- filter applied to a closed file could cause a crash.
4957dd7cddfSDavid du Colombier
4963ff48bf5SDavid du Colombier</pre><h3><a name="V2.9.9b_Library"></a>Library</h3><pre>
4977dd7cddfSDavid du ColombierFixes bugs:
4987dd7cddfSDavid du Colombier	- putdeviceparams to a printer didn't close and reopen the device
4997dd7cddfSDavid du Colombierif only the page size or resolution was changed.
5007dd7cddfSDavid du Colombier
5013ff48bf5SDavid du Colombier</pre>
5027dd7cddfSDavid du Colombier
5033ff48bf5SDavid du Colombier<h2><a name="Version2.9.8"></a>Version 2.9.8 (6/20/94)</h2>
5043ff48bf5SDavid du Colombier
5053ff48bf5SDavid du Colombier<p>
5063ff48bf5SDavid du ColombierThis is the first version that claims to be a full Level 2
5073ff48bf5SDavid du Colombierimplementation.
5087dd7cddfSDavid du ColombierIt was distributed to satisfy a contractual requirement.
5093ff48bf5SDavid du Colombier</p>
5107dd7cddfSDavid du Colombier
5113ff48bf5SDavid du Colombier<h3><a name="V2.9.8_Documentation"></a>Documentation</h3><pre>
5127dd7cddfSDavid du ColombierIn make.doc:
5137dd7cddfSDavid du Colombier	- Adds a reference to the generic System V section at the end of
5147dd7cddfSDavid du Colombierthe SCO section.
5157dd7cddfSDavid du Colombier	- Notes that DEC OSF/1 systems may require changing the name of the
5167dd7cddfSDavid du Colombierinstall program to installbsd.
5177dd7cddfSDavid du Colombier
5187dd7cddfSDavid du ColombierUpdates drivers.doc to reflect the change from "properties" to
5197dd7cddfSDavid du Colombier"parameters".
5207dd7cddfSDavid du Colombier
5217dd7cddfSDavid du ColombierUpdates the Aladdin Enterprises Free Public License to version 1.
5227dd7cddfSDavid du Colombier
5237dd7cddfSDavid du ColombierIn language.doc, notes that certain device parameters will be phased out.
5247dd7cddfSDavid du Colombier
5253ff48bf5SDavid du Colombier</pre><h3><a name="V2.9.8_Procedures"></a>Procedures</h3><pre>
5267dd7cddfSDavid du ColombierFixes bugs:
5277dd7cddfSDavid du Colombier	- The file aa.ps was included in the distribution by mistake.
5287dd7cddfSDavid du Colombier
5297dd7cddfSDavid du ColombierNotes in the Unix makefiles that X11R6 probably needs SM and ICE added to
5307dd7cddfSDavid du ColombierXLIBS.
5317dd7cddfSDavid du Colombier
5323ff48bf5SDavid du Colombier</pre><h3><a name="V2.9.8_Utilities"></a>Utilities</h3><pre>
5337dd7cddfSDavid du ColombierFixes bugs:
5347dd7cddfSDavid du Colombier	- viewjpeg.ps used a non-existent file as its example.
5357dd7cddfSDavid du Colombier	- A temporary string in wrfont.ps was allocated too small.
5367dd7cddfSDavid du Colombier
5377dd7cddfSDavid du ColombierUpgrades font2c.ps so it will handle (simple) Type 0 fonts as well as Type
5387dd7cddfSDavid du Colombier1.
5397dd7cddfSDavid du Colombier
5403ff48bf5SDavid du Colombier</pre><h3><a name="V2.9.8_Drivers"></a>Drivers</h3><pre>
5417dd7cddfSDavid du ColombierFixes bugs:
5427dd7cddfSDavid du Colombier	- The TIFF drivers didn't byte-align each scan line.
5437dd7cddfSDavid du Colombier	- gdevtfax.c applied &amp; to an array member of a structure.
5447dd7cddfSDavid du Colombier
5457dd7cddfSDavid du ColombierChanges the param_list interface slightly: Implementations of the
5467dd7cddfSDavid du Colombierput_params driver procedure should now use param_signal_error to report
5477dd7cddfSDavid du Colombiererrors, and should not give up at the first error.  (Even though this is a
5487dd7cddfSDavid du Colombiernon-backward-compatible change, old implementations will continue to work;
5497dd7cddfSDavid du Colombierthey just won't deliver complete results to the setpagedevice Policies
5507dd7cddfSDavid du Colombiermachinery.)
5517dd7cddfSDavid du Colombier
5523ff48bf5SDavid du Colombier</pre><h3><a name="V2.9.8_Platforms"></a>Platforms</h3><pre>
5537dd7cddfSDavid du ColombierFixes bugs:
5547dd7cddfSDavid du Colombier	- Removes the time zone adjustment from gp_get_clock in gp_unix.c,
5557dd7cddfSDavid du Colombiersince the value returned by all Unix systems is bogus.
5567dd7cddfSDavid du Colombier	- The DV/X makefile still included the dfaxhigh and dfaxlow drivers.
5577dd7cddfSDavid du Colombier	- gssetmod.com (VMS command file) didn't work properly if the
5587dd7cddfSDavid du Colombierargument list was empty.
5597dd7cddfSDavid du Colombier	- vms.mak, vms-axp.mak, and modules.lis hadn't been updated to
5607dd7cddfSDavid du Colombierreflect changes in 2.9.7.
5617dd7cddfSDavid du Colombier	- The MS Windows version wouldn't link (overflowed the 64K primary
5627dd7cddfSDavid du Colombierdata segment).
5637dd7cddfSDavid du Colombier
5643ff48bf5SDavid du Colombier</pre><h3><a name="V2.9.8_Fonts"></a>Fonts</h3><pre>
5657dd7cddfSDavid du ColombierMakes the font substitution algorithm somewhat more intelligent.
5667dd7cddfSDavid du Colombier
5673ff48bf5SDavid du Colombier</pre><h3><a name="V2.9.8_Interpreter"></a>Interpreter</h3><pre>
5687dd7cddfSDavid du ColombierFixes bugs:
5697dd7cddfSDavid du Colombier	- Enumerating the pointers of a zero-length array of structures
5707dd7cddfSDavid du Colombiercaused a divide by zero.
5717dd7cddfSDavid du Colombier	- iref.h didn't protect itself against multiple inclusion.
5727dd7cddfSDavid du Colombier	- The CCITTFaxEncode filter didn't byte-align the final
5737dd7cddfSDavid du Colombierend-of-block code if EndOfBlock and EncodedByteAlign were both true.
5747dd7cddfSDavid du Colombier	- make_initial_dict in iinit.c used `name' as a formal parameter
5757dd7cddfSDavid du Colombiername, which some compilers believe conflicts with a typedef.
5767dd7cddfSDavid du Colombier	- Not all internal operators had registered names.
5777dd7cddfSDavid du Colombier	- The GC used memcpy, rather than bytes_copy, when compacting
5787dd7cddfSDavid du Colombierobjects, even though the source and destination might overlap.
5797dd7cddfSDavid du Colombier	- When debugging was enabled, gc_string_mark could give a spurious
5807dd7cddfSDavid du Colombiererror indication.
5817dd7cddfSDavid du Colombier	- vmstatus returned too small a value for the maximum VM.
5827dd7cddfSDavid du Colombier	- The scanner could get into a loop when reading a radix-85 string.
5837dd7cddfSDavid du Colombier	- The GC could get into a state where it was called after every
5847dd7cddfSDavid du Colombierallocation (because of the patch setting global = true in ireclaim).
5857dd7cddfSDavid du Colombier	- The general path filling algorithm didn't skip regions that were
5867dd7cddfSDavid du Colombiercompletely outside the clipping box.
5877dd7cddfSDavid du Colombier	- The gs_screen_enum structure contained a pointer (porder) that
5887dd7cddfSDavid du Colombierpointed into the middle of a structure, confusing the GC.
5897dd7cddfSDavid du Colombier
5907dd7cddfSDavid du ColombierImplements the BitmapWidths flag in fonts.  The default of false means that
5917dd7cddfSDavid du Colombierwe use scalable widths even with xfonts.
5927dd7cddfSDavid du Colombier
5937dd7cddfSDavid du ColombierChanges the Generic resource category so that ResourceFileName is optional.
5947dd7cddfSDavid du Colombier
5957dd7cddfSDavid du ColombierChanges the .getdeviceparams operator so that it takes an optional
5967dd7cddfSDavid du Colombierdictionary giving the set of keys whose values are wanted.  Changes the
5977dd7cddfSDavid du Colombier.putdeviceparams operator so that it takes an optional policy dictionary
5987dd7cddfSDavid du Colombierspecifying the action to be taken on errors, and returns a list of keys and
5997dd7cddfSDavid du Colombiererrors if it fails, rather than causing an error.  These are
6007dd7cddfSDavid du Colombiernon-backward-compatible changes, but ordinary programs do not use these
6017dd7cddfSDavid du Colombieroperators.
6027dd7cddfSDavid du Colombier
6037dd7cddfSDavid du ColombierChanges the names of some internal operators and procedures by adding
6047dd7cddfSDavid du Colombiera . to the beginning:
6057dd7cddfSDavid du Colombier	currenttime
6067dd7cddfSDavid du Colombier	devicename
6077dd7cddfSDavid du Colombier
6087dd7cddfSDavid du ColombierImplements currentpagedevice, and a small subset of setpagedevice.  Only
6097dd7cddfSDavid du Colombierthe following keys in the page device dictionary are known to the current
6107dd7cddfSDavid du Colombierimplementation, and the ones marked with * are not actually processed:
6117dd7cddfSDavid du Colombier	PageSize
6127dd7cddfSDavid du Colombier	InputAttributes
6137dd7cddfSDavid du Colombier	MediaColor, MediaWeight, MediaType, InsertSheet
6147dd7cddfSDavid du Colombier	  (for InputAttributes matching only)
6157dd7cddfSDavid du Colombier	*ImagingBBox
6167dd7cddfSDavid du Colombier	OutputAttributes
6177dd7cddfSDavid du Colombier	OutputType
6187dd7cddfSDavid du Colombier	  (for OutputAttributes matching only)
6197dd7cddfSDavid du Colombier	NumCopies
6207dd7cddfSDavid du Colombier	HWResolution
6217dd7cddfSDavid du Colombier	*Margins
6227dd7cddfSDavid du Colombier	*Orientation (for all devices, not just roll devices)
6237dd7cddfSDavid du Colombier	Policies
6247dd7cddfSDavid du Colombier	Install
6257dd7cddfSDavid du Colombier	BeginPage
6267dd7cddfSDavid du Colombier	EndPage
6277dd7cddfSDavid du ColombierDoes not implement:
6287dd7cddfSDavid du Colombier	- Updating InputAttributes or OutputAttributes by sensing the state
6297dd7cddfSDavid du Colombier	  of the device;
6307dd7cddfSDavid du Colombier	- Retrying media matching after an initial failure;
6317dd7cddfSDavid du Colombier	- Automatic handling of portrait vs. landscape page size;
6327dd7cddfSDavid du Colombier	- Recording the CTM after Install as the one to be used for
6337dd7cddfSDavid du Colombier	  defaultmatrix, initmatrix, and initgraphics.
6347dd7cddfSDavid du ColombierAlso, media matching is normally disabled (with InputAttributes = null)
6357dd7cddfSDavid du Colombierfor all devices.  ****** We had to disable setpagedevice just before
6367dd7cddfSDavid du Colombiershipping this release, because of interactions with the older device
6377dd7cddfSDavid du Colombierhandling machinery that we could not fix in the time available.
6387dd7cddfSDavid du Colombier
6393ff48bf5SDavid du Colombier</pre><h3><a name="V2.9.8_Library"></a>Library</h3><pre>
6407dd7cddfSDavid du ColombierFixes bugs:
6417dd7cddfSDavid du Colombier	- 24-bit color (mem_true24_fill_rectangle and _copy_mono) had
6427dd7cddfSDavid du Colombieralgorithm bugs.
6437dd7cddfSDavid du Colombier	- A complex conditional expression in gx_render_gray wouldn't
6447dd7cddfSDavid du Colombiercompile properly with the DECStation 3100 Ultrix 4.3 compiler.
6457dd7cddfSDavid du Colombier	- The GC routines for gx_device_clip didn't handle the case where
6467dd7cddfSDavid du Colombierthe 'current' pointer pointed to list.single.
6477dd7cddfSDavid du Colombier	- gx_add_char_bits used memcpy, rather than bytes_copy, for
6487dd7cddfSDavid du Colombiercompressing character bitmaps, even though the source and destination might
6497dd7cddfSDavid du Colombieroverlap.
6507dd7cddfSDavid du Colombier	- Some compilers require the definition of st_gstate_contents to
6517dd7cddfSDavid du Colombierprecede the definitions of the GC procedures.
6527dd7cddfSDavid du Colombier	- Filling a large rectangle (more than 1K of bitmap) with a colored
6537dd7cddfSDavid du Colombierhalftone overwrote random areas of the stack.
6547dd7cddfSDavid du Colombier
6557dd7cddfSDavid du ColombierChanges gs_setcachedevice[2] to take a pointer to an array of floats,
6567dd7cddfSDavid du Colombierrather than 6 or 10 individual floats.  THIS IS A NON-BACKWARD-COMPATIBLE
6577dd7cddfSDavid du ColombierCHANGE.
6587dd7cddfSDavid du Colombier
6597dd7cddfSDavid du ColombierImplements the BitmapWidths flag in fonts.
6607dd7cddfSDavid du Colombier
6613ff48bf5SDavid du Colombier</pre>
6627dd7cddfSDavid du Colombier
6633ff48bf5SDavid du Colombier<h2><a name="Version2.9.7b"></a>Version 2.9.7-beta (6/5/94)</h2>
6643ff48bf5SDavid du Colombier
6653ff48bf5SDavid du Colombier<p>
6663ff48bf5SDavid du ColombierYet another pre-3.0 beta.  The main features are a fairly reliable
6673ff48bf5SDavid du Colombiergarbage
6687dd7cddfSDavid du Colombiercollector, and function prototypes almost everywhere they are needed.
6697dd7cddfSDavid du Colombier
6703ff48bf5SDavid du Colombier<h3><a name="V2.9.7b_Documentation"></a>Documentation</h3><pre>
6717dd7cddfSDavid du ColombierFixes bugs:
6727dd7cddfSDavid du Colombier	- The comment at the beginning of the zfindlibfile procedure was
6737dd7cddfSDavid du Colombierincorrect.
6747dd7cddfSDavid du Colombier
6757dd7cddfSDavid du ColombierReplaces the GNU License (the COPYING file) with version 0 of the new
6767dd7cddfSDavid du ColombierAladdin Enterprises Free Public License (the PUBLIC file).
6777dd7cddfSDavid du Colombier
6783ff48bf5SDavid du Colombier</pre><h3><a name="V2.9.7b_Procedures"></a>Procedures</h3><pre>
6797dd7cddfSDavid du ColombierFixes bugs:
6807dd7cddfSDavid du Colombier	- The definition of cmykread.dev in gs.mak was incorrect (it
6817dd7cddfSDavid du Colombiermodified color.dev).
6827dd7cddfSDavid du Colombier
6837dd7cddfSDavid du ColombierAdds the ability to specify a value for FONTPATH on the command line
6847dd7cddfSDavid du Colombier(-sFONTPATH=), overriding GS_FONTPATH.
6857dd7cddfSDavid du Colombier
6867dd7cddfSDavid du ColombierReplaces the -oper2 configuration resource type with the ability to specify
6877dd7cddfSDavid du Colombierin the op_def list the dictionary in which operators will be defined.  (See
6887dd7cddfSDavid du Colombieropdef.h for more details.)  This is an internal change only.
6897dd7cddfSDavid du Colombier
6903ff48bf5SDavid du Colombier</pre><h3><a name="V2.9.7b_Utilities"></a>Utilities</h3><pre>
6917dd7cddfSDavid du ColombierFixes bugs:
6927dd7cddfSDavid du Colombier	- viewgif.ps got an error on interlaced GIF files whose height
6937dd7cddfSDavid du Colombierwasn't a multiple of 8.
6947dd7cddfSDavid du Colombier
6957dd7cddfSDavid du ColombierChanges traceop.ps so it stores the traced operator in the same dictionary
6967dd7cddfSDavid du Colombierwhere the operator is currently defined, if possible.
6977dd7cddfSDavid du Colombier
6983ff48bf5SDavid du Colombier</pre><h3><a name="V2.9.7b_Drivers"></a>Drivers</h3><pre>
6997dd7cddfSDavid du ColombierFixes bugs:
7007dd7cddfSDavid du Colombier	- The new G3 fax drivers crashed on page widths greater than 2623
7017dd7cddfSDavid du Colombier(40 * 64 + 63) pixels.  (We fixed this by disallowing page widths greater
7027dd7cddfSDavid du Colombierthan approximately twice this.)
7037dd7cddfSDavid du Colombier	- The 24-bit PCX driver had some debugging code accidentally left
7047dd7cddfSDavid du Colombierin it that produced large volumes of useless console output.
7057dd7cddfSDavid du Colombier
7067dd7cddfSDavid du ColombierRemoves the previous (Leffler) TIFF/F driver and the TruFax driver.
7077dd7cddfSDavid du Colombier
7083ff48bf5SDavid du Colombier</pre><h3><a name="V2.9.7b_Platforms"></a>Platforms</h3><pre>
7097dd7cddfSDavid du ColombierFixes bugs:
7107dd7cddfSDavid du Colombier	- time_.h, gp_unix.c, and gp_sysv.c didn't do the right thing on
7117dd7cddfSDavid du ColombierSVR4 platforms, where gettimeofday only takes 1 argument.
7127dd7cddfSDavid du Colombier	- The final linking command on Turbo C platforms didn't specify the
7137dd7cddfSDavid du ColombierCOMPDIR directory for the linker.
7147dd7cddfSDavid du Colombier
7153ff48bf5SDavid du Colombier</pre><h3><a name="V2.9.7b_Fonts"></a>Fonts</h3><pre>
7167dd7cddfSDavid du Colombier
7177dd7cddfSDavid du ColombierChanges the standard Fontmap to use the URW contributed fonts as
7187dd7cddfSDavid du Colombierwork-alikes for Helvetica and Times Roman.
7197dd7cddfSDavid du Colombier
7203ff48bf5SDavid du Colombier</pre><h3><a name="V2.9.7b_Interpreter"></a>Interpreter</h3><pre>
7217dd7cddfSDavid du ColombierFixes bugs:
7227dd7cddfSDavid du Colombier	- The garbage collector wasn't in a consistent state.
7237dd7cddfSDavid du Colombier	- In Level 2 mode, statusdict was allocated in global VM rather
7247dd7cddfSDavid du Colombierthan local VM.
7257dd7cddfSDavid du Colombier	- resourceforall gave an error on the built-in categories such as
7267dd7cddfSDavid du ColombierFilter.
7277dd7cddfSDavid du Colombier	- The file searching algorithm didn't check the current directory
7287dd7cddfSDavid du Colombierfirst.
7297dd7cddfSDavid du Colombier	- When opening a file failed, it didn't return a different error
7307dd7cddfSDavid du Colombierdepending on the problem.
7317dd7cddfSDavid du Colombier	- The CCITTFaxEncode filter crashed on widths larger than 2623 (64
7327dd7cddfSDavid du Colombier* 40 + 63) pixels.  (We fixed this by disallowing page widths greater than
7337dd7cddfSDavid du Colombierapproximately twice this.)
7347dd7cddfSDavid du Colombier	- The .type1getsbw operator gave an invalidfont error if a
7357dd7cddfSDavid du ColombierCharString started with anything other than a [h]sbw.  (Adobe's published
7367dd7cddfSDavid du Colombierspecs say this is invalid, but some Adobe MultiMaster fonts start with a
7377dd7cddfSDavid du Colombiercallsubr and/or a callothersubr.)
7387dd7cddfSDavid du Colombier	- When printing out the stack with == after an error, the error
7397dd7cddfSDavid du Colombierhandler got a repeated (and ultimately fatal) typecheck error if it
7407dd7cddfSDavid du Colombierencountered an object of non-standard type.
7417dd7cddfSDavid du Colombier	- The token operator could incorrectly attempt to free a structure
7427dd7cddfSDavid du Colombieron the stack if it encountered an input buffer boundary.
7437dd7cddfSDavid du Colombier	- string_to_ref didn't correctly set the a_local flag in the string
7447dd7cddfSDavid du Colombierobject it created.
7457dd7cddfSDavid du Colombier	- If the -c switch was the last switch on the command line,
7467dd7cddfSDavid du ColombierGhostscript always exited without going into interactive mode.
7477dd7cddfSDavid du Colombier	- copy didn't check for errors when copying a dictionary.
7487dd7cddfSDavid du Colombier
7497dd7cddfSDavid du ColombierMakes many minor changes (mostly adding prototypes) to reduce error and
7507dd7cddfSDavid du Colombierwarning messages from gcc and other strict compilers.
7517dd7cddfSDavid du Colombier
7527dd7cddfSDavid du ColombierAdds files containing the 4 predefined PDF encodings (MacRoman, MacExpert,
7537dd7cddfSDavid du ColombierWinAnsi, and PDFDoc).
7547dd7cddfSDavid du Colombier
7553ff48bf5SDavid du Colombier</pre><h3><a name="V2.9.7b_Library"></a>Library</h3><pre>
7567dd7cddfSDavid du ColombierFixes bugs:
7577dd7cddfSDavid du Colombier	- image_bbox in gxccman.c could produce a division by 0 if a
7587dd7cddfSDavid du Colombier0-width character was being entered into the cache.
7597dd7cddfSDavid du Colombier	- gx_image_cached_char incorrectly specified a scale of 2x2 rather
7607dd7cddfSDavid du Colombierthan 1x1 if it had to read bits from an xfont.
7617dd7cddfSDavid du Colombier	- Stale pointers in the halftone cache weren't cleared properly by
7627dd7cddfSDavid du Colombiera restore.  (We fixed this by making grestoreall clear the halftone cache.)
7637dd7cddfSDavid du Colombier	- setdash used gs_malloc, rather than the current allocator, for
7647dd7cddfSDavid du Colombierallocating the dash pattern.
7657dd7cddfSDavid du Colombier	- If one attempted to fill a very wide region with a colored
7667dd7cddfSDavid du Colombierhalftone, gx_dc_ht_colored_fill_rectangle would loop indefinitely.
7677dd7cddfSDavid du Colombier	- The container_offset in clipping devices was set incorrectly,
7687dd7cddfSDavid du Colombiercausing the garbage collector to mangle pointers.
7697dd7cddfSDavid du Colombier
7707dd7cddfSDavid du ColombierChanges the fopen routine in IODevices so that it can return an arbitrary
7717dd7cddfSDavid du Colombiererror code, rather than simply succeeding or failing.  THIS IS A
7727dd7cddfSDavid du ColombierNON-BACKWARD-COMPATIBLE CHANGE.  It only affects IODevice implementations,
7737dd7cddfSDavid du Colombierof which there are very few.  (It doesn't affect ordinary device drivers.)
7747dd7cddfSDavid du Colombier
7757dd7cddfSDavid du ColombierChanges the char_metrics xfont procedure so it returns the width as
7767dd7cddfSDavid du Colombierfloating point numbers rather than integers.  THIS IS A
7777dd7cddfSDavid du ColombierNON-BACKWARD-COMPATIBLE CHANGE.  It only affects xfont implementations, of
7787dd7cddfSDavid du Colombierwhich there are very few.
7797dd7cddfSDavid du Colombier
7807dd7cddfSDavid du ColombierMakes many minor changes (mostly adding prototypes) to reduce error and
7817dd7cddfSDavid du Colombierwarning messages from gcc and other strict compilers.
7827dd7cddfSDavid du Colombier
7833ff48bf5SDavid du Colombier</pre>
7847dd7cddfSDavid du Colombier
7853ff48bf5SDavid du Colombier<h2><a name="Version2.9.6b"></a>Version 2.9.6-beta (5/23/94, not
7863ff48bf5SDavid du Colombierdistributed to the public)</h2>
7873ff48bf5SDavid du Colombier
7883ff48bf5SDavid du Colombier<p>
7893ff48bf5SDavid du ColombierThis, too, was supposed to be the last beta release for public
7903ff48bf5SDavid du Colombierrelease 3.0.
7917dd7cddfSDavid du ColombierIt was created primarily for a user who desperately needed a Level 1 system
7927dd7cddfSDavid du Colombierthat would run properly on a 64-bit hardware architecture.  The garbage
7937dd7cddfSDavid du Colombiercollector is badly broken (it's in the middle of an architectural change);
7947dd7cddfSDavid du Colombiersetpagedevice is still not implemented.
7957dd7cddfSDavid du Colombier
7963ff48bf5SDavid du Colombier<h3><a name="V2.9.6b_Documentation"></a>Documentation</h3>
7977dd7cddfSDavid du Colombier
7983ff48bf5SDavid du Colombier<pre>
7997dd7cddfSDavid du ColombierDocuments the standard location of Type 1 fonts on AIX.
8007dd7cddfSDavid du Colombier
8017dd7cddfSDavid du ColombierChanges the last few mentions of Ghostview for Microsoft Windows to GSview
8027dd7cddfSDavid du Colombierfor Windows.
8037dd7cddfSDavid du Colombier
8047dd7cddfSDavid du ColombierNotes that Solaris 2.n provides the X11 header files in a different place.
8057dd7cddfSDavid du Colombier
8067dd7cddfSDavid du ColombierChanges README to reflect the differentiation between Aladdin Ghostscript
8077dd7cddfSDavid du Colombierand GNU Ghostscript.
8087dd7cddfSDavid du Colombier
8093ff48bf5SDavid du Colombier</pre>
8103ff48bf5SDavid du Colombier<h3><a name="V2.9.6b_Procedures"></a>Procedures</h3>
8117dd7cddfSDavid du Colombier
8123ff48bf5SDavid du Colombier<pre>
8137dd7cddfSDavid du ColombierFixes bugs:
8147dd7cddfSDavid du Colombier	- The compilation rules for the modules that call the IJG library
8157dd7cddfSDavid du Colombierused -Ijpeg rather than -I$(JPEGSRC).
8167dd7cddfSDavid du Colombier	- The rule for gslib.dev omitted echogs$(XE) as a prerequisite.
8177dd7cddfSDavid du Colombier
8187dd7cddfSDavid du ColombierMakes it possible to define the values of buildtime, copyright, revision,
8197dd7cddfSDavid du Colombierrevisiondate, and serialnumber in the makefile.
8207dd7cddfSDavid du Colombier
8213ff48bf5SDavid du Colombier</pre><h3><a name="V2.9.6b_Utilities"></a>Utilities</h3><pre>
8227dd7cddfSDavid du ColombierFixes bugs:
8237dd7cddfSDavid du Colombier	- The viewgif.ps utility didn't handle local color tables.
8247dd7cddfSDavid du Colombier
8257dd7cddfSDavid du ColombierUpdates ps2ai.ps to version 1.81.
8267dd7cddfSDavid du Colombier
8273ff48bf5SDavid du Colombier</pre><h3><a name="V2.9.6b_Drivers"></a>Drivers</h3><pre>
8287dd7cddfSDavid du ColombierFixes bugs:
8297dd7cddfSDavid du Colombier	- The TIFF and fax devices used some identical names, causing
8307dd7cddfSDavid du Colombierlinker complaints.
8317dd7cddfSDavid du Colombier	- The bj10e/bj200 driver inadvertently disabled the sheet feeder.
8327dd7cddfSDavid du Colombier(The change may not actually fix this bug, since we don't have either of
8337dd7cddfSDavid du Colombierthese printers with a sheet feeder to test it on.)
8347dd7cddfSDavid du Colombier	- The 'bit' device didn't map colors to pixel values correctly.
8357dd7cddfSDavid du Colombier	- The monochrome PCL driver didn't work around the fact that the
8367dd7cddfSDavid du ColombierCanon LBP4i printer didn't clear its seed row correctly.
8377dd7cddfSDavid du Colombier
8387dd7cddfSDavid du ColombierAdds new drivers:
8397dd7cddfSDavid du Colombier	- A user-contributed driver for the H-P DesignJet 650C.
8407dd7cddfSDavid du Colombier	- A user-contributed driver for the Canon LIPS III printer.
8417dd7cddfSDavid du Colombier	- A completely new tiffg3 driver with one based on the new, fast
8427dd7cddfSDavid du Colombierfaxg3 code.  This driver does not include any external code, and carries an
8437dd7cddfSDavid du ColombierAladdin copyright.
8447dd7cddfSDavid du Colombier	- A tiffg4 driver, also based on the fast CCITT filter code.
8457dd7cddfSDavid du Colombier
8467dd7cddfSDavid du ColombierRemoves the tiffg3x driver that appeared briefly in 2.9.5, and renames the
8477dd7cddfSDavid du Colombierprevious (Leffler) tiffg3 driver as tiffg3x.
8487dd7cddfSDavid du Colombier
8497dd7cddfSDavid du ColombierAdds support for A0, A1, and A2 paper sizes to PCL drivers.
8507dd7cddfSDavid du Colombier
8517dd7cddfSDavid du ColombierChanges all the names involving "props" to "params", for consistency with
8527dd7cddfSDavid du Colombierthe header files, some other internal interfaces, and Adobe's terminology.
8537dd7cddfSDavid du ColombierTHIS IS A NON-BACKWARD-COMPATIBLE CHANGE.  However, it only affects devices
8547dd7cddfSDavid du Colombierthat implement their own get_props and put_props procedures, of which there
8557dd7cddfSDavid du Colombieraren't very many.
8567dd7cddfSDavid du Colombier
8573ff48bf5SDavid du Colombier</pre><h3><a name="V2.9.6b_Platforms"></a>Platforms</h3><pre>
8587dd7cddfSDavid du ColombierFixes bugs:
8597dd7cddfSDavid du Colombier	- The DV/X makefile used X11 rather than X for the X11 library name.
8607dd7cddfSDavid du Colombier	- The DV/X makefile incorrectly included the PC display drivers.
8617dd7cddfSDavid du Colombier	- The DV/X makefile omitted gp_dosfs.$(OBJ) from the list of
8627dd7cddfSDavid du Colombierplatform-specific files.
8637dd7cddfSDavid du Colombier	- The DV/X makefile used : rather than ; for separating directory
8647dd7cddfSDavid du Colombiernames in GS_LIB_DEFAULT.
8657dd7cddfSDavid du Colombier	- x_.h omitted a needed alias for XtAppSetFallbackResources.
8667dd7cddfSDavid du Colombier	- The makefile entry for System V Unix systems didn't include
8677dd7cddfSDavid du Colombiergp_unifn.$(OBJ).
8687dd7cddfSDavid du Colombier	- The comment before LDFLAGS in the gcc makefiles incorrectly
8697dd7cddfSDavid du Colombiersuggested using the -x switch on Ultrix platforms.
8707dd7cddfSDavid du Colombier	- The forward declaration of quant_params in zfdct.c upset the Sun
8717dd7cddfSDavid du Colombiercompiler because it declared a parameter as float rather than floatp.
8727dd7cddfSDavid du Colombier*	- The Microsoft C compiler, like the Borland C compilers, only
8737dd7cddfSDavid du Colombiercompares the offset part of segmented pointers.
8747dd7cddfSDavid du Colombier
8753ff48bf5SDavid du Colombier</pre><h3><a name="V2.9.6b_Fonts"></a>Fonts</h3><pre>
8767dd7cddfSDavid du Colombier
8777dd7cddfSDavid du ColombierAdds a fontmap suitable for use with Adobe Type Basics.
8787dd7cddfSDavid du Colombier
8793ff48bf5SDavid du Colombier</pre><h3><a name="V2.9.6b_Interpreter"></a>Interpreter</h3><pre>
8807dd7cddfSDavid du ColombierFixes bugs:
8817dd7cddfSDavid du Colombier	- The STACK_LOOP_BEGIN macro in istack.h didn't work correctly on
8827dd7cddfSDavid du Colombiersegmented systems.
8837dd7cddfSDavid du Colombier	- The end_phase procedure in igc.c didn't work correctly on
8847dd7cddfSDavid du Colombiersegmented systems.
8857dd7cddfSDavid du Colombier	- Indexed color spaces didn't mark their base space properly when
8867dd7cddfSDavid du Colombiergarbage collecting.
8877dd7cddfSDavid du Colombier	- The garbage collector didn't work on segmented systems, because
8887dd7cddfSDavid du Colombierit smashed the lsize field of large objects with mark/reloc information.
8897dd7cddfSDavid du Colombier	- Some structures didn't have correct associated GC procedures:
8907dd7cddfSDavid du Colombiergs_indexed_map, gs_client_pattern, gs_pattern_instance.
8917dd7cddfSDavid du Colombier	- restore could free names or stack segments that were still
8927dd7cddfSDavid du Colombierreferenced.
8937dd7cddfSDavid du Colombier*	- If a packed object caused an error, the error object could be set
8947dd7cddfSDavid du Colombierto garbage rather than the correct object.
8957dd7cddfSDavid du Colombier*	- Badly designed error handlers which use $error for temporary
8967dd7cddfSDavid du Colombierstorage could cause a dictfull error.
8977dd7cddfSDavid du Colombier	- Some compilers objected to the use of "dict" as a variable name
8987dd7cddfSDavid du Colombierin a scope where it was defined as a type.
8997dd7cddfSDavid du Colombier	- IODevices were declared const and non-const inconsistently.
9007dd7cddfSDavid du Colombier	- setpagedevice popped one object too many off the stack if the
9017dd7cddfSDavid du Colombierrequest included any subdictionaries that needed to be merged.
9027dd7cddfSDavid du Colombier	- More garbage collector bugs were fixed.
9037dd7cddfSDavid du Colombier	- If the current stack block was empty, Level 2 restore would give
9047dd7cddfSDavid du Colombiera spurious typecheck error.
9057dd7cddfSDavid du Colombier	- The CCITTFaxEncode filter could get confused if it emptied the
9067dd7cddfSDavid du Colombierinput and filled the output at the same time.
9077dd7cddfSDavid du Colombier	- The CCITTFaxEncode filter could insert an extra EOL if it had to
9087dd7cddfSDavid du Colombiersuspend at certain times.
9097dd7cddfSDavid du Colombier	- The new parser for literal strings (as of 2.9.5) could mis-count
9107dd7cddfSDavid du Colombierinternal parentheses if a parenthesis caused the internal buffer collecting
9117dd7cddfSDavid du Colombierthe string to overflow.
9127dd7cddfSDavid du Colombier	- If the current stack block had fewer than 3 elements,
9137dd7cddfSDavid du Colombier.type1addpath could report a spurious typecheck error.
9147dd7cddfSDavid du Colombier	- Text rendering operations (show, stringwidth, etc.) caused a
9157dd7cddfSDavid du Colombiercrash if the current color was a Pattern that hadn't already been
9167dd7cddfSDavid du Colombierrasterized.
9177dd7cddfSDavid du Colombier	- If a program did a grestore when the graphics state stack was
9187dd7cddfSDavid du Colombierempty, the graphics state was initialized to unexpected (and, in some
9197dd7cddfSDavid du Colombiercases, invalid) values.
9207dd7cddfSDavid du Colombier	- pathforall could cause a bogus stackoverflow if it overflowed the
9217dd7cddfSDavid du Colombiercurrent stack block.
9227dd7cddfSDavid du Colombier	- Closing an encoding filter with a procedure as target left the
9237dd7cddfSDavid du Colombierfilter on the stack.
9247dd7cddfSDavid du Colombier*	- The outer loop in dict_lookup() could cause an addressing fault
9257dd7cddfSDavid du Colombieron segmented machines when looking up Level 2 operators, because the offset
9267dd7cddfSDavid du Colombiercould get decremented past 0.
9277dd7cddfSDavid du Colombier	- There was an = instead of an == in a test in scanner_reloc_ptrs.
9287dd7cddfSDavid du Colombier	- The call on gs_reloc_refs in sproc_reloc_ptrs in zfproc.c omitted
9297dd7cddfSDavid du Colombierthe last (gcst) argument.
9307dd7cddfSDavid du Colombier
9317dd7cddfSDavid du Colombier(Re-)implements the 2-D case of CCITTFaxEncode, and fixes a couple of bugs
9327dd7cddfSDavid du Colombierin it.
9337dd7cddfSDavid du Colombier
9347dd7cddfSDavid du ColombierAdds DiffEncode and DiffDecode filters that implement color prediction for
9357dd7cddfSDavid du Colombierthe PDF variant of the LZWDecode filter.
9367dd7cddfSDavid du Colombier
9377dd7cddfSDavid du ColombierChanges the specification of .oserrorstring to be similar to getenv,
9387dd7cddfSDavid du Colombierwhere, etc.  THIS IS A NON-BACKWARD-COMPATIBLE CHANGE; however, no
9397dd7cddfSDavid du Colombieruser-written code should be using .oserrorstring.
9407dd7cddfSDavid du Colombier
9417dd7cddfSDavid du ColombierAdds oversampling for better character rasterizing.
9427dd7cddfSDavid du Colombier
9433ff48bf5SDavid du Colombier</pre><h3><a name="V2.9.6b_Library"></a>Library</h3><pre>
9447dd7cddfSDavid du ColombierFixes bugs:
9457dd7cddfSDavid du Colombier	- gx_dc_ht_colored_fill_rectangle gave a compiler warning because
9467dd7cddfSDavid du Colombierof a problem with const pointers.
9477dd7cddfSDavid du Colombier	- dfmul2fixed_vars (in gxfixed.h) omitted the &amp; before vda on
9487dd7cddfSDavid du Colombierbig-endian platforms, causing compilation errors.
9497dd7cddfSDavid du Colombier	- IODevices were declared const and non-const inconsistently.
9507dd7cddfSDavid du Colombier	- The Type 1 rasterizer never enabled overshoot suppression.
9517dd7cddfSDavid du Colombier	- stroke didn't fatten the line properly if stroke adjustment was
9527dd7cddfSDavid du Colombierenabled, or if the line was horizontal or vertical.
9537dd7cddfSDavid du Colombier*	- The clipping test for characters was too strict by almost 1
9547dd7cddfSDavid du Colombierpixel, leading to unnecessary clipping of text at the edge of the clipping
9557dd7cddfSDavid du Colombierbox.
9567dd7cddfSDavid du Colombier*	- The initial clipping box was computed incorrectly for devices
9577dd7cddfSDavid du Colombierwhose initial transformation matrix included a rotation.
9587dd7cddfSDavid du Colombier
9597dd7cddfSDavid du ColombierChanged the implementation of clipping lists and show enumerators to use
9607dd7cddfSDavid du Colombierseparate objects rather than embedded objects, to pacify the GC.  (This is
9617dd7cddfSDavid du Colombieran internal change, not visible at the PostScript or API level.)
9627dd7cddfSDavid du Colombier
9637dd7cddfSDavid du ColombierMakes the character cache trim off left and right blank areas, as well as
9647dd7cddfSDavid du Colombiertop and bottom.  (Internal change.)
9657dd7cddfSDavid du Colombier
9667dd7cddfSDavid du ColombierAdds oversampling for better character rasterizing.
9677dd7cddfSDavid du Colombier
9683ff48bf5SDavid du Colombier</pre>
9697dd7cddfSDavid du Colombier
9703ff48bf5SDavid du Colombier<h2><a name="Version2.9.5b"></a>Version 2.9.5-beta (4/11/94)</h2>
9713ff48bf5SDavid du Colombier
9723ff48bf5SDavid du Colombier<p>
9733ff48bf5SDavid du ColombierThis was supposed to be the last beta release before 3.0, but it
9743ff48bf5SDavid du Colombierwon't be.
9757dd7cddfSDavid du ColombierThe only known major defects are the unreliable garbage collector, and the
9767dd7cddfSDavid du Colombierdummy implementation of setpagedevice/currentpagedevice.
9777dd7cddfSDavid du Colombier
9783ff48bf5SDavid du Colombier<h3><a name="V2.9.5b_Documentation"></a>Documentation</h3>
9797dd7cddfSDavid du Colombier
9803ff48bf5SDavid du Colombier<pre>
9817dd7cddfSDavid du ColombierFixes bugs:
9827dd7cddfSDavid du Colombier	- The file commnew.doc didn't belong in the fileset.
9837dd7cddfSDavid du Colombier
9847dd7cddfSDavid du ColombierNotes in the makefiles that SVR4 systems may need to set EXTRALIBS=-lnsl.
9857dd7cddfSDavid du Colombier
9867dd7cddfSDavid du ColombierAdds a user-contributed `man' page for the ps2epsi utility.
9877dd7cddfSDavid du Colombier
9883ff48bf5SDavid du Colombier</pre><h3><a name="V2.9.5b_Procedures"></a>Procedures</h3><pre>
9897dd7cddfSDavid du ColombierFixes bugs:
9907dd7cddfSDavid du Colombier	- The IJG files didn't compile properly by themselves, because they
9917dd7cddfSDavid du Colombierdidn't have $(AK) in their dependency list.
9927dd7cddfSDavid du Colombier
9937dd7cddfSDavid du ColombierChanges back the handling of files named on the command line, so that they
9947dd7cddfSDavid du Colombierare first sought in the current directory, and if that fails, use the
9957dd7cddfSDavid du Colombiersearch path.  (2.9.4-beta changed things so that files on the command line
9967dd7cddfSDavid du Colombierdid not use the search path, because as of that version, the search path
9977dd7cddfSDavid du Colombierdoesn't necessarily include the current directory.  I consider the "check
9987dd7cddfSDavid du Colombierthe current directory and then use the search path" rule, which is the
9997dd7cddfSDavid du ColombierMS-DOS standard and was used in Ghostscript prior to 2.9.4, a serious
10007dd7cddfSDavid du Colombiermistake, since it is one of the best-known security holes in Unix and can
10017dd7cddfSDavid du Colombieralso produce confusing and unexpected results depending on the current
10027dd7cddfSDavid du Colombierdirectory; I would much rather have a clear distinction between
10037dd7cddfSDavid du Colombieruser-specified files, which should not use any path searching, and system
10047dd7cddfSDavid du Colombierfiles, that only use the defined search path.  However, as of this moment,
10057dd7cddfSDavid du Colombierusers seem to want the convenience at the expense of insecurity and
10067dd7cddfSDavid du Colombierconfusion.)
10077dd7cddfSDavid du Colombier
10087dd7cddfSDavid du ColombierAdds '.' to the beginning of the search path for MS-DOS platforms, to
10097dd7cddfSDavid du Colombierconform to the usual MS-DOS file searching convention.
10107dd7cddfSDavid du Colombier
10117dd7cddfSDavid du ColombierAdds a -c ("code") switch, which interprets following arguments (until the
10127dd7cddfSDavid du Colombiernext switch) as PostScript tokens.
10137dd7cddfSDavid du Colombier
10147dd7cddfSDavid du ColombierChanges the handling of FEATURE_DEVS so that either level1.dev or
10157dd7cddfSDavid du Colombierlevel2.dev must normally be selected.  THIS IS A NON-BACKWARD-COMPATIBLE
10167dd7cddfSDavid du ColombierCHANGE for Level 1 systems, which formerly set FEATURE_DEVS to an empty
10177dd7cddfSDavid du Colombierdefinition.
10187dd7cddfSDavid du Colombier
10193ff48bf5SDavid du Colombier</pre><h3><a name="V2.9.5b_Utilities"></a>Utilities</h3><pre>
10207dd7cddfSDavid du ColombierFixes bugs:
10217dd7cddfSDavid du Colombier	- bench.ps didn't switch back to local VM properly before running
10227dd7cddfSDavid du Colombierthe program being benchmarked.
10237dd7cddfSDavid du Colombier
10247dd7cddfSDavid du ColombierAdds a ppmsetpagesize command to the pstoppm utility.
10257dd7cddfSDavid du Colombier
10263ff48bf5SDavid du Colombier</pre><h3><a name="V2.9.5b_Drivers"></a>Drivers</h3><pre>
10277dd7cddfSDavid du ColombierFixes bugs:
10287dd7cddfSDavid du Colombier	- The PCX and GIF drivers used an incorrect algorithm for computing
10297dd7cddfSDavid du Colombierthe blue component of the color palette, which could cause colors to come
10307dd7cddfSDavid du Colombierout with not quite enough blue.
10317dd7cddfSDavid du Colombier	- The SPARCprinter driver wouldn't compile with non-ANSI compilers.
10327dd7cddfSDavid du Colombier
10337dd7cddfSDavid du ColombierAdds new drivers:
10347dd7cddfSDavid du Colombier	- A user-contributed driver for DEC sixel displays like the VT240
10357dd7cddfSDavid du Colombier(sxlcrt, in gdevln03.c, which has a FSF copyright.)
10367dd7cddfSDavid du Colombier	- A much larger and supposedly faster version of the TIFF/F driver
10377dd7cddfSDavid du Colombier(tiffg3x, in gdevtifx.c), contributed by a user.  This has the same
10387dd7cddfSDavid du Colombiercopyright as the TIFF/F driver (gdevtiff.c).
10397dd7cddfSDavid du Colombier	- A driver (faxg3, in gdevfax.c) that produces plain Group 3 fax
10407dd7cddfSDavid du Colombieroutput with no header, using the CCITTFaxEncode filter to do the work.
10417dd7cddfSDavid du Colombier(This is around 2.5-3 times as fast as the other fax drivers distributed
10427dd7cddfSDavid du Colombierwith Ghostscript.)
10437dd7cddfSDavid du Colombier	- A user-contributed driver for the Mitsubishi CP50 color printer.
10447dd7cddfSDavid du Colombier
10457dd7cddfSDavid du ColombierChanges the `bit' driver so one can set the Colors and *Values properties.
10467dd7cddfSDavid du Colombier
10477dd7cddfSDavid du ColombierMakes the color mapping for PC displays, PCX files, and GIF files identical
10487dd7cddfSDavid du Colombier(they differed slightly before).
10497dd7cddfSDavid du Colombier
10503ff48bf5SDavid du Colombier</pre><h3><a name="V2.9.5b_Platforms"></a>Platforms</h3><pre>
10517dd7cddfSDavid du ColombierFixes bugs:
10527dd7cddfSDavid du Colombier	- VMS used DISPLAY rather than DECW$DISPLAY to get the display name
10537dd7cddfSDavid du Colombierif opening the display failed.
10547dd7cddfSDavid du Colombier	- Many minor bugs relating to OS/2 and Win32 were fixed.
10557dd7cddfSDavid du Colombier	- On Unix and DV/X platforms, the install script didn't mkdir
10567dd7cddfSDavid du Colombier$(gsdir), and didn't mkdir the intermediate directory for the man page.
10577dd7cddfSDavid du Colombier	- On BSD and UTek platforms, the declaration of memset in
10587dd7cddfSDavid du Colombiermemory_.h, and the definition in gsmisc.c, conflicted with the ANSI
10597dd7cddfSDavid du Colombierdeclaration.
10607dd7cddfSDavid du Colombier	- One of the SPARC compilers compiled the intersection computation
10617dd7cddfSDavid du Colombierin arc_either (gspath.c) incorrectly.
10627dd7cddfSDavid du Colombier	- The temporary file names created under OS/2 could exceed the 8.3
10637dd7cddfSDavid du Colombierlength limit.
10647dd7cddfSDavid du Colombier
10653ff48bf5SDavid du Colombier</pre><h3><a name="V2.9.5b_Interpreter"></a>Interpreter</h3><pre>
10667dd7cddfSDavid du ColombierFixes bugs:
10677dd7cddfSDavid du Colombier	- The test files for the IJG library had been damaged by EOL
10687dd7cddfSDavid du Colombierconversion.
10697dd7cddfSDavid du Colombier	- The garbage collector didn't mark some of the most recently
10707dd7cddfSDavid du Colombiercreated names.
10717dd7cddfSDavid du Colombier	- The interpreter would sometimes report a typecheck instead of a
10727dd7cddfSDavid du Colombierstackunderflow.
10737dd7cddfSDavid du Colombier	- If aload didn't have enough room on the stack, it would report a
10747dd7cddfSDavid du Colombierrangecheck rather than a stackoverflow.
10757dd7cddfSDavid du Colombier	- zcontext wouldn't compile, because it hadn't been updated to the
10767dd7cddfSDavid du Colombiernew GC interfaces.
10777dd7cddfSDavid du Colombier	- The definition of private_st_stream_proc_state in ifilter.h ended
10787dd7cddfSDavid du Colombierwith a semicolon, which upset some compilers.
10797dd7cddfSDavid du Colombier	- load didn't check to make sure that the dictionaries it examined
10807dd7cddfSDavid du Colombierhad read access.
10817dd7cddfSDavid du Colombier	- cvrs didn't handle negative numbers in radix 2 or 3 properly.
10827dd7cddfSDavid du Colombier	- The allocator could become confused if it was asked to allocate a
10837dd7cddfSDavid du Colombierlarge array.
10847dd7cddfSDavid du Colombier	- readline gave an ioerror rather than a rangecheck if it
10857dd7cddfSDavid du Colombieroverflowed the string.
10867dd7cddfSDavid du Colombier	- The allocator didn't free packed arrays properly.
10877dd7cddfSDavid du Colombier	- The allocator's check for LIFO freeing of arrays was off by 1, so
10887dd7cddfSDavid du Colombierit never succeeded.
10897dd7cddfSDavid du Colombier	- The undercolor removal and black generation procedures weren't
10907dd7cddfSDavid du Colombierinitialized properly.
10917dd7cddfSDavid du Colombier	- If the interpreter couldn't find gs_init.ps, it returned a random
10927dd7cddfSDavid du Colombierexit code.
10937dd7cddfSDavid du Colombier	- If an operator expected a procedure and didn't get one, it
10947dd7cddfSDavid du Colombiersometimes gave an invalidaccess rather than a typecheck.
10957dd7cddfSDavid du Colombier	- Unix file enumeration often did the wrong thing if there were
10967dd7cddfSDavid du Colombierdirectories in the pattern.
10977dd7cddfSDavid du Colombier	- The ASCIIHexDecode filter read an extra character after the
10987dd7cddfSDavid du Colombierterminating &gt;.
10997dd7cddfSDavid du Colombier	- scalefont didn't fill in ScaleMatrix properly.
11007dd7cddfSDavid du Colombier	- The CCITTFaxEncode filter crashed if the width of the page wasn't
11017dd7cddfSDavid du Colombiera multiple of 8 bits.
11027dd7cddfSDavid du Colombier	- The error printing code used .languagelevel, which wasn't defined
11037dd7cddfSDavid du Colombierin Level 1 configurations.
11047dd7cddfSDavid du Colombier	- setpagedevice didn't pop its argument.
11057dd7cddfSDavid du Colombier	- Definitions in statusdict didn't change according to the current
11067dd7cddfSDavid du Colombierlanguage level.
11077dd7cddfSDavid du Colombier	- Separation color spaces didn't allow strings as color space names.
11087dd7cddfSDavid du Colombier	- Due to a bug in chunk_locate_ptr, the garbage collector sometimes
11097dd7cddfSDavid du Colombierdecided incorrectly that a pointer was pointing outside collectable space.
11107dd7cddfSDavid du Colombier	- (Many other garbage collector bugs were fixed.)
11117dd7cddfSDavid du Colombier
11127dd7cddfSDavid du ColombierImplements additional Level 2 features:
11137dd7cddfSDavid du Colombier	- Garbage collection for strings.
11147dd7cddfSDavid du Colombier	- Expandable operand and dictionary stacks, and the ability to set
11157dd7cddfSDavid du Colombier	the maximum size of these stacks.
11167dd7cddfSDavid du Colombier	- Additional user and system parameters.  The following are dummies:
11177dd7cddfSDavid du Colombier	AccurateScreens, JobName, JobTimeout, WaitTimeout.
11187dd7cddfSDavid du Colombier	- Procedure-based filters usable with cvx/exec and token.
11197dd7cddfSDavid du Colombier	- Separation color spaces (always using the alternate space).
11207dd7cddfSDavid du Colombier	(These were theoretically implemented in version 2.6, but they were
11217dd7cddfSDavid du Colombier	never tested and were actually missing most of the implementation.)
11227dd7cddfSDavid du Colombier	- VMThreshold and VMReclaim for invoking GC automatically.
11237dd7cddfSDavid du Colombier
11247dd7cddfSDavid du ColombierAdds a hook in iscan.c for parsing DSC comments.
11257dd7cddfSDavid du Colombier
11267dd7cddfSDavid du ColombierAdds encoding and decoding filters for the BCP and TBCP protocols.  These
11277dd7cddfSDavid du Colombierare not fully implemented yet:
11287dd7cddfSDavid du Colombier	- The interrupt and status request characters are ignored on input,
11297dd7cddfSDavid du Colombier	and never generated on output;
11307dd7cddfSDavid du Colombier	- The TBCP encoder doesn't emit the start-of-protocol string;
11317dd7cddfSDavid du Colombier	- The TBCP decoder doesn't recognize the end-of-protocol string.
11327dd7cddfSDavid du Colombier
11337dd7cddfSDavid du ColombierFactors out Type 1 font capability as a separate feature.
11347dd7cddfSDavid du Colombier
11357dd7cddfSDavid du ColombierChanges the names of some files:
11367dd7cddfSDavid du Colombier	packed.h to ipacked.h;
11377dd7cddfSDavid du Colombier	bnum.h to ibnum.h.
11387dd7cddfSDavid du Colombier
11397dd7cddfSDavid du ColombierChanges the name of the value.index member of a ref to value.boolval.
11407dd7cddfSDavid du Colombier(Internal change only.)
11417dd7cddfSDavid du Colombier
11423ff48bf5SDavid du Colombier</pre><h3><a name="V2.9.5b_Library"></a>Library</h3><pre>
11437dd7cddfSDavid du ColombierFixes bugs:
11447dd7cddfSDavid du Colombier	- The definition of RELOC_PTRS_BEGIN in gsstruct.h wouldn't compile
11457dd7cddfSDavid du Colombierproperly with non-ANSI compilers.
11467dd7cddfSDavid du Colombier	- The JPEG library wouldn't compile properly with non-ANSI compilers.
11477dd7cddfSDavid du Colombier*	- The platform font machinery gave up too easily in some cases.
11487dd7cddfSDavid du Colombier	- CMYK devices needing halftoning converted the CMYK color to RGB.
11497dd7cddfSDavid du Colombier	- The debugging code in arc_add (gspath.c) didn't print the output
11507dd7cddfSDavid du Colombiervalues correctly.
11517dd7cddfSDavid du Colombier
11527dd7cddfSDavid du ColombierFactors out Type 1 font capability as a separate feature.
11537dd7cddfSDavid du Colombier
11543ff48bf5SDavid du Colombier</pre>
11557dd7cddfSDavid du Colombier
11563ff48bf5SDavid du Colombier<h2><a name="Version2.9.4b"></a>Version 2.9.4-beta (2/19/94)</h2>
11577dd7cddfSDavid du Colombier
11583ff48bf5SDavid du Colombier<h3><a name="V2.9.4b_Procedures"></a>Procedures</h3>
11593ff48bf5SDavid du Colombier
11603ff48bf5SDavid du Colombier<pre>
11617dd7cddfSDavid du ColombierChanges Ghostscript's path searching algorithm so that it does not
11627dd7cddfSDavid du Colombierautomatically look in the current directory first.  (The former algorithm
11637dd7cddfSDavid du Colombierwas more MS-DOS-like; the new one is more Unix-like.)  If you want to
11647dd7cddfSDavid du Colombierinclude the current directory, you must include '.' in the search path.
11657dd7cddfSDavid du ColombierTHIS IS A NON-BACKWARD-COMPATIBLE CHANGE.
11667dd7cddfSDavid du Colombier
11677dd7cddfSDavid du ColombierAdds two new resource types for genconf.c:
11687dd7cddfSDavid du Colombier	- -header filexxx.h adds #include "filexxx.h" to gconfig.h.
11697dd7cddfSDavid du Colombier	- -libpath dir adds dir to the list of library search paths.
11707dd7cddfSDavid du Colombier
11713ff48bf5SDavid du Colombier</pre><h3><a name="V2.9.4b_Utilities"></a>Utilities</h3><pre>
11727dd7cddfSDavid du ColombierFixes bugs:
11737dd7cddfSDavid du Colombier	- impath.ps (used by bdftops) computed the starting X coordinate
11747dd7cddfSDavid du Colombierincorrectly, typically causing characters to be displaced slightly to the
11757dd7cddfSDavid du Colombierright.
11767dd7cddfSDavid du Colombier	- pstoppm.ps didn't handle local and global VM properly.
11777dd7cddfSDavid du Colombier
11787dd7cddfSDavid du ColombierAdds a ps2ai.ps utility, contributed by a user, for converting arbitrary
11797dd7cddfSDavid du ColombierPostScript files into a form compatible with Adobe Illustrator.
11807dd7cddfSDavid du Colombier
11813ff48bf5SDavid du Colombier</pre><h3><a name="V2.9.4b_Drivers"></a>Drivers</h3><pre>
11827dd7cddfSDavid du Colombier
11837dd7cddfSDavid du ColombierAdds new drivers:
11847dd7cddfSDavid du Colombier	- A user-contributed driver for Imagen Impress laser printers.
11857dd7cddfSDavid du Colombier	- A user-contributed driver for the DEC LA75plus printer.
11867dd7cddfSDavid du Colombier
11873ff48bf5SDavid du Colombier</pre><h3><a name="V2.9.4b_Platforms"></a>Platforms</h3><pre>
11887dd7cddfSDavid du Colombier
11897dd7cddfSDavid du ColombierUnder OS/2, adds the ability to keep Ghostscript in memory for a
11907dd7cddfSDavid du Colombierspecified number of minutes.
11917dd7cddfSDavid du Colombier
11927dd7cddfSDavid du ColombierAdds support for Win32 and Win32s.
11937dd7cddfSDavid du Colombier
11947dd7cddfSDavid du ColombierChanges the MS Windows platform font interface so that it does not attempt
11957dd7cddfSDavid du Colombierto render fonts at sizes smaller than 6 pixels.  Changes the X Windows
11967dd7cddfSDavid du Colombierinterface, which already did this for 4-point and smaller fonts, to also
11977dd7cddfSDavid du Colombieruse a lower limit of 6 pixels.  Also changes the X Windows platform font
11987dd7cddfSDavid du Colombiermachinery so it does not render fonts at sizes larger than 36 pixels: at
11997dd7cddfSDavid du Colombierlarge sizes, Ghostscript does a perfectly good job, and some X font servers
12007dd7cddfSDavid du Colombierrasterize the entire font and lock up the entire window system while doing
12017dd7cddfSDavid du Colombierso.
12027dd7cddfSDavid du Colombier
12033ff48bf5SDavid du Colombier</pre><h3><a name="V2.9.4b_Interpreter"></a>Interpreter</h3><pre>
12047dd7cddfSDavid du ColombierFixes bugs:
12057dd7cddfSDavid du Colombier	- currentdash always returned a new array of reals, rather than the
12067dd7cddfSDavid du Colombieractual argument of setdash.
12077dd7cddfSDavid du Colombier	- Strings in binary object sequences read in as integers.
12087dd7cddfSDavid du Colombier	- Because of a bug in chunk_locate_ptr, some large objects didn't
12097dd7cddfSDavid du Colombierget freed properly.
12107dd7cddfSDavid du Colombier	- If an error occurred while processing an image, Ghostscript would
12117dd7cddfSDavid du Colombierattempt to free random blocks of storage.
12127dd7cddfSDavid du Colombier	- Input filters discarded trailing data, rather than filling it out
12137dd7cddfSDavid du Colombierwith zeros.  (This is now fixed for ASCIIHexDecode and ASCII85Decode; it's
12147dd7cddfSDavid du Colombiernot clear what other filters it should affect.)
12157dd7cddfSDavid du Colombier	- The ASCII85Encode filter produced garbage output for the final
12167dd7cddfSDavid du Colombier1-4 bytes before EOD.
12177dd7cddfSDavid du Colombier*	- The TIFF output driver produced incorrect output for the second
12187dd7cddfSDavid du Colombierand subsequent pages if the output was being produced on multiple files.
12197dd7cddfSDavid du Colombier*	- The default handleerror did a 'stop', which was not correct.
12207dd7cddfSDavid du Colombier	- gpcheck.h converted all positive return codes to 0 if interrupt
12217dd7cddfSDavid du Colombierchecking was enabled.
12227dd7cddfSDavid du Colombier	- Images with multiple data sources didn't work.
12237dd7cddfSDavid du Colombier	- Images with 12-bit sample values didn't work.
12247dd7cddfSDavid du Colombier	- Images with a file as the data source read additional data beyond
12257dd7cddfSDavid du Colombierwhat was required.
12267dd7cddfSDavid du Colombier	- 2 vmreclaim worked (pretty much), but 1 vmreclaim didn't.
12277dd7cddfSDavid du Colombier	- If %lineedit was opened multiple times, characters from later
12287dd7cddfSDavid du Colombieropenings overwrote characters from earlier ones.
12297dd7cddfSDavid du Colombier	- token returned garbage for the "remaining string" result when
12307dd7cddfSDavid du Colombierreading from a string, if it actually read all of the string.  (New bug in
12317dd7cddfSDavid du Colombier2.9.2, probably.)
12327dd7cddfSDavid du Colombier
12337dd7cddfSDavid du ColombierImplements additional Level 2 features:
12347dd7cddfSDavid du Colombier	- DCTEncode and DCTDecode filters.
12357dd7cddfSDavid du Colombier	- Filters with procedures as the data source or target.
12367dd7cddfSDavid du Colombier	(Except for token and cvx/exec.)
12377dd7cddfSDavid du Colombier	- Garbage collection for names.
12387dd7cddfSDavid du Colombier
12397dd7cddfSDavid du ColombierChanges the error printout so that strings are always truncated at 200
12407dd7cddfSDavid du Colombiercharacters.
12417dd7cddfSDavid du Colombier
12427dd7cddfSDavid du ColombierFor Level 2 systems, changes the initial setting of the object format
12437dd7cddfSDavid du Colombierparameter from 0 to an appropriate non-zero value.
12447dd7cddfSDavid du Colombier
12457dd7cddfSDavid du Colombier* Changes the .quit operator so that it takes two operands, an error object
12467dd7cddfSDavid du Colombierand an error code; if the latter is negative, the interpreter returns this
12477dd7cddfSDavid du Colombieras the error code, rather than e_Quit.
12487dd7cddfSDavid du Colombier
12497dd7cddfSDavid du ColombierMakes StandardEncoding and ISOLatin1Encoding arrays, rather than packed
12507dd7cddfSDavid du Colombierarrays, on large-memory systems, for compatibility with certain test
12517dd7cddfSDavid du Colombiersuites.  Changes .registerencoding to accept arrays as well as packed
12527dd7cddfSDavid du Colombierarrays.
12537dd7cddfSDavid du Colombier
12543ff48bf5SDavid du Colombier</pre><h3><a name="V2.9.4b_Library"></a>Library</h3><pre>
12557dd7cddfSDavid du ColombierFixes bugs:
12567dd7cddfSDavid du Colombier	- Due to an error in cie_mult3, CIE-based colors were badly
12577dd7cddfSDavid du Colombiermis-mapped.
12587dd7cddfSDavid du Colombier*	- Very narrow (but not empty) rectangles would disappear.
12597dd7cddfSDavid du Colombier*	- Small halftone cells could smash the next higher entry in the
12607dd7cddfSDavid du Colombierhalftone cache.
12617dd7cddfSDavid du Colombier	- The orientation algorithm in gxstroke.c still interchanged
12627dd7cddfSDavid du Colombierclockwise and counter-clockwise coordinate systems (after having been
12637dd7cddfSDavid du Colombier"fixed" at least 3 times).
12647dd7cddfSDavid du Colombier	- Stroking 1-pixel-wide lines shortened them, instead of
12657dd7cddfSDavid du Colombierlengthening them, if non-butt caps were requested.
12667dd7cddfSDavid du Colombier
12677dd7cddfSDavid du ColombierRefactors mem_mapped8_copy_mono because of limitations in the bcc32
12687dd7cddfSDavid du Colombiercompiler.
12697dd7cddfSDavid du Colombier
12703ff48bf5SDavid du Colombier</pre>
12717dd7cddfSDavid du Colombier
12723ff48bf5SDavid du Colombier<h2><a name="Version2.9.3b"></a>Version 2.9.3-beta (1/19/94)</h2>
12733ff48bf5SDavid du Colombier
12743ff48bf5SDavid du Colombier<p>This version was created for evaluation purposes for a few users who
12757dd7cddfSDavid du Colombierneeded Level 2 capability; it was never released to anyone else, even
12767dd7cddfSDavid du Colombierbeta testers.
12777dd7cddfSDavid du Colombier
12783ff48bf5SDavid du Colombier<h3><a name="V2.9.3b_Documentation"></a>Documentation</h3><pre>
12797dd7cddfSDavid du ColombierFixes bugs:
12807dd7cddfSDavid du Colombier	- The description of psview and xpsview was incorrect.
12817dd7cddfSDavid du Colombier
12823ff48bf5SDavid du Colombier</pre><h3><a name="V2.9.3b_Procedures"></a>Procedures</h3><pre>
12837dd7cddfSDavid du ColombierChanges the installation directories for Unix and similar systems to put
12847dd7cddfSDavid du ColombierGhostscript data in $(datadir)/ghostscript/gs-NN.NN.NN rather than directly
12857dd7cddfSDavid du Colombierin $(datadir)/ghostscript.  (Fonts still go in $(datadir)/ghostscript/fonts.)
12867dd7cddfSDavid du Colombier
12873ff48bf5SDavid du Colombier</pre><h3><a name="V2.9.3b_Drivers"></a>Drivers</h3><pre>
12887dd7cddfSDavid du ColombierFixes bugs:
12897dd7cddfSDavid du Colombier	- Some spaces were incorrectly replaced with tabs in the help
12907dd7cddfSDavid du Colombiermessage in the 3B1 display driver.
12917dd7cddfSDavid du Colombier	- The BMP driver wrote a spurious scan line at the beginning
12927dd7cddfSDavid du Colombierof its output.
12937dd7cddfSDavid du Colombier	- The monochrome PCX driver had the two palette elements
12947dd7cddfSDavid du Colombierinterchanged.
12957dd7cddfSDavid du Colombier
12967dd7cddfSDavid du ColombierAdds new drivers:
12977dd7cddfSDavid du Colombier	- A user-contributed driver for the Xerox XES printer format.  This
12987dd7cddfSDavid du Colombierhas a FSF copyright.
12997dd7cddfSDavid du Colombier	- A user-contributed driver for the Epson AP3250 printer.  (This is
13007dd7cddfSDavid du Colombierthe same as the Stylus 800, with slightly different margins.)
13017dd7cddfSDavid du Colombier	- A user-contributed driver for the DEC LA70 printer with some
13027dd7cddfSDavid du Colombieralgorithms for improving text at low resolutions.  This has a FSF
13037dd7cddfSDavid du Colombiercopyright.
13047dd7cddfSDavid du Colombier	- A user-contributed driver for an intermediate-resolution mode
13057dd7cddfSDavid du Colombierfor 9-pin "Epson-compatible" printers.
13067dd7cddfSDavid du Colombier
13077dd7cddfSDavid du ColombierChanges the name of the Stylus 800 driver from escp2 to st800.
13087dd7cddfSDavid du Colombier
13097dd7cddfSDavid du ColombierAdds a compile-time flag to the Epson driver to cope with Panasonic 9-pin
13107dd7cddfSDavid du Colombierprinters, which sometimes have trouble mixing graphics and tabs.
13117dd7cddfSDavid du Colombier
13123ff48bf5SDavid du Colombier</pre><h3><a name="V2.9.3b_Platforms"></a>Platforms</h3><pre>
13137dd7cddfSDavid du ColombierFixes bugs:
13147dd7cddfSDavid du Colombier	- The MS Windows driver (gp_mswin.c) referred to iodev.h rather
13157dd7cddfSDavid du Colombierthan gxiodev.h.
13167dd7cddfSDavid du Colombier	- On Unix System V platforms, gp_unifs.c and gdevpipe.c were
13177dd7cddfSDavid du Colombierincorrectly omitted from the link list.
13187dd7cddfSDavid du Colombier	- (Some?) System V platforms don't have the S_ISDIR macro,
13197dd7cddfSDavid du Colombierrequiring a change in stat_.h.
13207dd7cddfSDavid du Colombier	- The Unix `install' target didn't install gs_std_e.ps and
13217dd7cddfSDavid du Colombiergs_iso_e.ps.
13227dd7cddfSDavid du Colombier	- No MODULES.LIS file was provided for VMS.
13237dd7cddfSDavid du Colombier
13247dd7cddfSDavid du ColombierAdds Desqview/X makefiles that actually work.
13257dd7cddfSDavid du Colombier
13267dd7cddfSDavid du ColombierDocuments the set of H-P-supplied patches needed to make H-P's
13277dd7cddfSDavid du Colombiercompilers process Ghostscript.
13287dd7cddfSDavid du Colombier
13297dd7cddfSDavid du ColombierChanges the MS Windows driver so that if the user presses the Enter key
13307dd7cddfSDavid du Colombierwhile the image window has the focus, the text window will be brought to
13317dd7cddfSDavid du Colombierthe top and made the active window.  This is useful when viewing a
13327dd7cddfSDavid du Colombiermulti-page document with Ghostscript.
13337dd7cddfSDavid du Colombier
13343ff48bf5SDavid du Colombier</pre>
13353ff48bf5SDavid du Colombier<h3><a name="V2.9.3b_Interpreter"></a>Interpreter</h3><pre>
13367dd7cddfSDavid du ColombierFixes bugs:
13377dd7cddfSDavid du Colombier	- The definition of public_st_client_color() in gxccolor.h
13387dd7cddfSDavid du Colombierincluded an extraneous semicolon.
13397dd7cddfSDavid du Colombier	- The definition of private_st_AXD_state() in sfilter.h included an
13407dd7cddfSDavid du Colombierextraneous semicolon.
13417dd7cddfSDavid du Colombier	- saxx.c didn't include sfilter.h, which it needed for the
13427dd7cddfSDavid du Colombierdefinition of private_st_AXD_state().
13437dd7cddfSDavid du Colombier	- ialloc_struct failed to create a separate chunk if the structure
13447dd7cddfSDavid du Colombierwas very large.
13457dd7cddfSDavid du Colombier	- setcolorspace didn't allocate the colorspace object in the same
13467dd7cddfSDavid du ColombierVM space as the graphics state, causing problems when the colorspace was
13477dd7cddfSDavid du Colombierfreed.
13487dd7cddfSDavid du Colombier	- In rare circumstances, currentfile could return an empty array
13497dd7cddfSDavid du Colombierrather than a file.
13507dd7cddfSDavid du Colombier	- Dictionary keys were always allocated in global VM.
13517dd7cddfSDavid du Colombier	- If NOPLATFONTS was true, definefont didn't check whether the
13527dd7cddfSDavid du Colombierdictionary was read-only before trying to insert an ExactSize key.
13537dd7cddfSDavid du Colombier	- startjob could get an invalidaccess error, because serverdict was
13547dd7cddfSDavid du Colombierallocated in global VM.
13557dd7cddfSDavid du Colombier	- Using definefont with an already registered font created a
13567dd7cddfSDavid du Colombiercircular list structure.
13577dd7cddfSDavid du Colombier	- If a PostScript procedure appeared as a CharString in a Type 1
13587dd7cddfSDavid du Colombierfont, it was always called with the character name, never the character
13597dd7cddfSDavid du Colombiercode.
13607dd7cddfSDavid du Colombier	- The SubFileDecode filter didn't work with a non-empty EOD string
13617dd7cddfSDavid du Colombier(went into an endless loop).  (Probably a new bug in 2.8.)
13627dd7cddfSDavid du Colombier	- save/restore didn't properly restore the maxlength of a
13637dd7cddfSDavid du Colombierdictionary, causing data to get smashed at random.  (New bug in 2.9.)
13647dd7cddfSDavid du Colombier	- save didn't mark objects as old, so a nested restore had no
13657dd7cddfSDavid du Colombiereffect.  (New bug in 2.9.2.)
13667dd7cddfSDavid du Colombier	- After returning from an OtherSubrs callback, op_type1_free
13677dd7cddfSDavid du Colombierfreed the saved interpreter state incorrectly.  (New bug in 2.7.)
13687dd7cddfSDavid du Colombier	- Level 1 configurations didn't work because .makeoperator gave an
13697dd7cddfSDavid du Colombierinvalidaccess error.  (New bug in 2.9.2.)
13707dd7cddfSDavid du Colombier	- ASCII85 string literals didn't work.  (Probably a new bug in 2.8.)
13717dd7cddfSDavid du Colombier	- If the current global/local allocation mode was different at the
13727dd7cddfSDavid du Colombierend of a file than at the beginning, an addressing fault could occur
13737dd7cddfSDavid du Colombier(gs_unregister_root in gs_run_string).  (New bug in 2.9.2.)
13747dd7cddfSDavid du Colombier	- After a setfileposition on a file open for reading,
13757dd7cddfSDavid du Colombierfileposition would return an incorrect value, even though the stream
13767dd7cddfSDavid du Colombierwas actually repositioned properly.
13777dd7cddfSDavid du Colombier
13787dd7cddfSDavid du ColombierBrings the dictionary unpacking code for the DCT filters into line with
13797dd7cddfSDavid du ColombierAdobe Technical Note 5116, which describes the Picky parameter for
13807dd7cddfSDavid du ColombierDCTDecode and the NoMarker, Resync, Blend, Picky, and Relax parameters for
13817dd7cddfSDavid du ColombierDCTEncode.
13827dd7cddfSDavid du Colombier
13837dd7cddfSDavid du ColombierChanges the .quit operator so that if given a negative argument, the
13847dd7cddfSDavid du Colombierinterpreter returns this as the error code, rather than e_Quit.
13857dd7cddfSDavid du Colombier
13867dd7cddfSDavid du ColombierChanges the Ghostscript integer version number from 100P+10S+T to
13877dd7cddfSDavid du Colombier10000P+100S+T.
13887dd7cddfSDavid du Colombier
13897dd7cddfSDavid du ColombierChanges the default halftone screen for high-resolution devices, both
13907dd7cddfSDavid du Colombierblack-and-white and color.
13917dd7cddfSDavid du Colombier
13923ff48bf5SDavid du Colombier</pre><h3><a name="V2.9.3b_Library"></a>Library</h3><pre>
13937dd7cddfSDavid du ColombierFixes bugs:
13947dd7cddfSDavid du Colombier	- The software floating multiply code used with USE_FPU=-1 only
13957dd7cddfSDavid du Colombierworked on little-endian platforms.
13967dd7cddfSDavid du Colombier	- Specifying a left side bearing to .type1addpath produced an
13977dd7cddfSDavid du Colombierinappropriate offset.
13987dd7cddfSDavid du Colombier
13993ff48bf5SDavid du Colombier</pre>
14007dd7cddfSDavid du Colombier
14013ff48bf5SDavid du Colombier<h2><a name="Version2.9.2b"></a>Version 2.9.2-beta (1/2/94)</h2>
14023ff48bf5SDavid du Colombier
14033ff48bf5SDavid du Colombier<p>This version was distributed only to beta testers.  It adds a garbage
14047dd7cddfSDavid du Colombiercollector and full local and global VM support.  It is the first version
14057dd7cddfSDavid du Colombierthat sets languagelevel = 2, i.e., claims to be a Level 2 implementation.
14067dd7cddfSDavid du Colombier
14073ff48bf5SDavid du Colombier<h3><a name="V2.9.2b_Documentation"></a>Documentation</h3><pre>
14087dd7cddfSDavid du ColombierFixes bugs:
14097dd7cddfSDavid du Colombier	- make.doc still referred to use_* variables in gdevx.c, and
14107dd7cddfSDavid du Colombieruse.doc didn't explain the use* X resources.
14117dd7cddfSDavid du Colombier
14127dd7cddfSDavid du ColombierNotes that -Olimit=1000 is needed to compile Ghostscript on AXP systems
14137dd7cddfSDavid du Colombierunder OSF/1 1.3.
14147dd7cddfSDavid du Colombier
14153ff48bf5SDavid du Colombier</pre>
14167dd7cddfSDavid du Colombier
14173ff48bf5SDavid du Colombier<h3><a name="V2.9.2b_Utilities"></a>Utilities</h3><pre>
14187dd7cddfSDavid du ColombierFixes bugs:
14197dd7cddfSDavid du Colombier	- viewgif.ps did not work with interlaced images.
14207dd7cddfSDavid du Colombier	- font2c.ps omitted gsmemory.h from the #include list in compiled
14217dd7cddfSDavid du Colombierfonts.
14227dd7cddfSDavid du Colombier
14233ff48bf5SDavid du Colombier</pre><h3><a name="V2.9.2b_Drivers"></a>Drivers</h3><pre>
14247dd7cddfSDavid du ColombierFixes bugs:
14257dd7cddfSDavid du Colombier	- The MS Windows driver hadn't been updated to work with the
14267dd7cddfSDavid du Colombiernew additions to the gx_device structure.
14277dd7cddfSDavid du Colombier	- The BMP file driver wrote one scan line too many.
14287dd7cddfSDavid du Colombier	- The cdj driver omitted an important cast to int in the error
14297dd7cddfSDavid du Colombierdiffusion code (FSdither macro).
14307dd7cddfSDavid du Colombier
14317dd7cddfSDavid du ColombierChanges the SuperVGA drivers to recognize erasepage and reset the
14327dd7cddfSDavid du Colombiercolor table, like the X driver.
14337dd7cddfSDavid du Colombier
14347dd7cddfSDavid du ColombierAdds some fragmentary code to begin implementing the PostScript fax
14357dd7cddfSDavid du Colombierextensions.
14367dd7cddfSDavid du Colombier
14373ff48bf5SDavid du Colombier</pre><h3><a name="V2.9.2b_Platforms"></a>Platforms</h3><pre>
14387dd7cddfSDavid du ColombierFixes bugs:
14397dd7cddfSDavid du Colombier	- The procedure initializers for the MS Windows console I/O
14407dd7cddfSDavid du Colombierwere missing the new reset element.
14417dd7cddfSDavid du Colombier	- The makefile entry in bcwin.mak used -fdev rather than -iodev.
14427dd7cddfSDavid du Colombier	- The Borland C++ makefiles exceeded MS-DOS's line length limit if
14437dd7cddfSDavid du Colombierthe compiler files were in the standard Borland directory (BORLANDC).
14447dd7cddfSDavid du Colombier	- Some procedures weren't declared with prototypes in gp_vms.c.
14457dd7cddfSDavid du Colombier	- Some declarations had to be reordered to pacify the VAX compiler.
14467dd7cddfSDavid du Colombier	- Under MS Windows, Ghostscript didn't automatically de-iconify the
14477dd7cddfSDavid du Colombiertext window to display messages on an error exit.
14487dd7cddfSDavid du Colombier	- The Unix makefile rule for gconfig_.h used echogs rather than
14497dd7cddfSDavid du Colombier./echogs.
14507dd7cddfSDavid du Colombier	- The Microsoft C makefile referred to an obsolete file gs.tr.
14517dd7cddfSDavid du Colombier	- gp_unifs.c used strpbrk and strrchr, which some systems lack.
14527dd7cddfSDavid du Colombier
14537dd7cddfSDavid du ColombierUpdates the OS/2 code and documentation for compatibility with the current
14547dd7cddfSDavid du ColombierGhostscript version.
14557dd7cddfSDavid du Colombier
14563ff48bf5SDavid du Colombier</pre><h3><a name="V2.9.2b_Fonts"></a>Fonts</h3><pre>
14577dd7cddfSDavid du ColombierFixes bugs:
14587dd7cddfSDavid du Colombier	- The X11 .pfa fonts replaced their .gsf requirements in the
14597dd7cddfSDavid du Colombierfontmap, but not distributed with the previous (beta) release.
14607dd7cddfSDavid du Colombier
14617dd7cddfSDavid du ColombierAdds fontmaps appropriate for use with DEC Ultrix and OSF/1 systems.
14627dd7cddfSDavid du Colombier
14633ff48bf5SDavid du Colombier</pre><h3><a name="V2.9.2b_Interpreter"></a>Interpreter</h3><pre>
14647dd7cddfSDavid du ColombierFixes bugs:
14657dd7cddfSDavid du Colombier	- 4-value entries in the Metrics dictionary were interpreted with
14667dd7cddfSDavid du Colombierthe width and side bearing interchanged.
14677dd7cddfSDavid du Colombier	- Objects large enough to require their own chunk were not freed
14687dd7cddfSDavid du Colombierproperly.
14697dd7cddfSDavid du Colombier	- The GS_FONTPATH scanner didn't deal with the possibility that
14707dd7cddfSDavid du Colombieropening a file might fail.
14717dd7cddfSDavid du Colombier	- The interrupt and timeout errors incorrectly pushed an error
14727dd7cddfSDavid du Colombierobject on the operand stack.
14737dd7cddfSDavid du Colombier	- imagemask gave an error if it was invoked with a dictionary
14747dd7cddfSDavid du Colombierargument with a current color space with more than 1 parameter.
14757dd7cddfSDavid du Colombier	- definefont insisted that a new font not have a FID entry.
14767dd7cddfSDavid du Colombier	- Some places didn't cast char to byte when needed.
14777dd7cddfSDavid du Colombier	- An extra element was left on the stack when substituting the
14787dd7cddfSDavid du Colombierdefault font for a font whose file couldn't be found.
14797dd7cddfSDavid du Colombier	- The CCITTFaxDecode filter didn't allow the dictionary to be
14807dd7cddfSDavid du Colombieromitted.  (The Adobe documentation doesn't allow this, but Adobe
14817dd7cddfSDavid du Colombierimplementations do.)
14827dd7cddfSDavid du Colombier	- When the input came from a pipe (`-') switch, opening a filter on
14837dd7cddfSDavid du Colombiercurrentfile that required more than 1 input byte to make progress would
14847dd7cddfSDavid du Colombiercause Ghostscript to hang (in sreadbuf).
14857dd7cddfSDavid du Colombier	- The interpreter didn't call gs_set_lib_paths before executing a
14867dd7cddfSDavid du Colombiercompiled-in initialization file.
14877dd7cddfSDavid du Colombier	- A stream could be closed more than once.  (New bug in 2.8.)
14887dd7cddfSDavid du Colombier	- The LZW decoder produced incorrect output if a code string was
14897dd7cddfSDavid du Colombiertoo long to fit into a single output buffer.  (New bug as of 2.8.)
14907dd7cddfSDavid du Colombier
14917dd7cddfSDavid du ColombierImplements a special check in def to allow construction of systemdict,
14927dd7cddfSDavid du Colombierwhich is stored in global VM but references dictionaries in local VM.
14937dd7cddfSDavid du Colombier
14947dd7cddfSDavid du ColombierImplements additional Level 2 features:
14957dd7cddfSDavid du Colombier	- %null% and %ram% IODevices.
14967dd7cddfSDavid du Colombier	- startjob, exitserver.
14977dd7cddfSDavid du Colombier	- Local and global VM (finish).
14987dd7cddfSDavid du Colombier	- Garbage collection (for everything except names and strings).
14997dd7cddfSDavid du Colombier
15007dd7cddfSDavid du ColombierMoves the procedures for selecting paper size from systemdict to userdict.
15017dd7cddfSDavid du Colombier
15027dd7cddfSDavid du ColombierSets languagelevel to 2 in Level 2 mode, since essentially all of
15037dd7cddfSDavid du ColombierLevel 2 is now implemented.
15047dd7cddfSDavid du Colombier
15057dd7cddfSDavid du ColombierFactors out the Level 1 extended color facilities (CMYK color and
15067dd7cddfSDavid du Colombiercolorimage) as a separate configuration feature.
15077dd7cddfSDavid du Colombier
15087dd7cddfSDavid du ColombierAdds some preliminary code to begin implementing the Adobe BCP and TBCP
15097dd7cddfSDavid du Colombiercommunication protocols.
15107dd7cddfSDavid du Colombier
15117dd7cddfSDavid du ColombierChanges the implementation of save and restore so that the bookkeeping
15127dd7cddfSDavid du Colombierstructures are allocated in the new area, not the old.  (This is an
15137dd7cddfSDavid du Colombierinternal change not visible at the PostScript level.)
15147dd7cddfSDavid du Colombier
15153ff48bf5SDavid du Colombier</pre><h3><a name="V2.9.2b_Library"></a>Library</h3><pre>
15167dd7cddfSDavid du ColombierFixes bugs:
15177dd7cddfSDavid du Colombier	- gdevprn used some preprocessor macros in formal argument
15187dd7cddfSDavid du Colombierlists that ansi2knr couldn't handle.
15197dd7cddfSDavid du Colombier	- pick_cell_size called gs_distance_transform with a 0 argument
15207dd7cddfSDavid du Colombierthat non-ANSI compilers didn't automatically promote to floating point.
15217dd7cddfSDavid du Colombier	- gs_screen_init called hypot with integer arguments that
15227dd7cddfSDavid du Colombiernon-ANSI compilers didn't automatically promote to floating point.
15237dd7cddfSDavid du Colombier	- Some places didn't cast char to byte when needed.
15247dd7cddfSDavid du Colombier	- The vx/vy origin adjustment for WMode=1 wasn't implemented.
15257dd7cddfSDavid du Colombier	- The pattern cache wasn't initialized properly.
15267dd7cddfSDavid du Colombier	- Composite fonts didn't properly decode strings that started with
15277dd7cddfSDavid du Colombieran escape sequence, which have a special (undocumented) decoding rule, and
15287dd7cddfSDavid du Colombieralso didn't properly decode strings with multiple consecutive escape
15297dd7cddfSDavid du Colombiersequences.
15307dd7cddfSDavid du Colombier
15317dd7cddfSDavid du ColombierFactors out the Level 1 extended color facilities (CMYK color and
15327dd7cddfSDavid du Colombiercolorimage) as a separate configuration feature.
15337dd7cddfSDavid du Colombier
15343ff48bf5SDavid du Colombier</pre>
15357dd7cddfSDavid du Colombier
15363ff48bf5SDavid du Colombier<h2><a name="Version2.9.1b"></a>Version 2.9.1-beta (12/7/93)</h2>
15377dd7cddfSDavid du Colombier
15383ff48bf5SDavid du Colombier<p>This version was distributed only to beta testers.
15397dd7cddfSDavid du Colombier
15403ff48bf5SDavid du Colombier<h3><a name="V2.9.1b_Utilities"></a>Utilities</h3><pre>
15417dd7cddfSDavid du ColombierAdds a viewgif.ps utility to view GIF files.  The current version does not
15427dd7cddfSDavid du Colombierwork with interlaced data, local color tables, or files containing more
15437dd7cddfSDavid du Colombierthan one image.
15447dd7cddfSDavid du Colombier
15453ff48bf5SDavid du Colombier</pre><h3><a name="V2.9.1b_Interpreter"></a>Interpreter</h3><pre>
15467dd7cddfSDavid du ColombierFixes bugs:
15477dd7cddfSDavid du Colombier	- putinterval and copy didn't do the right thing if the source and
15487dd7cddfSDavid du Colombierdestination were aliases for overlapping sections of the same array or
15497dd7cddfSDavid du Colombierstring.
15507dd7cddfSDavid du Colombier	- The DCT filter stub didn't allow the dictionary to be omitted.
15517dd7cddfSDavid du Colombier(The Adobe documentation doesn't allow this, but Adobe implementations
15527dd7cddfSDavid du Colombierdo.)
15537dd7cddfSDavid du Colombier
15547dd7cddfSDavid du ColombierAdds an optional dictionary argument to the LZWDecode filter, containing
15557dd7cddfSDavid du ColombierInitialCodeLength, FirstBitLowOrder, BlockData, and EarlyChange entries.
15567dd7cddfSDavid du ColombierSetting these parameters appropriately allows reading (non-interlaced) GIF
15577dd7cddfSDavid du Colombierdata directly.
15587dd7cddfSDavid du Colombier
15593ff48bf5SDavid du Colombier</pre><h3><a name="V2.9.1b_Library"></a>Library</h3><pre>
15607dd7cddfSDavid du ColombierFixes bugs:
15617dd7cddfSDavid du Colombier	- setdash produced inverted output if the pattern had an odd
15627dd7cddfSDavid du Colombiernumber of elements and the offset O had the property that L &lt;= O mod
15637dd7cddfSDavid du Colombier2*L, where L was the sum of the pattern elements.
15647dd7cddfSDavid du Colombier
15653ff48bf5SDavid du Colombier</pre>
15667dd7cddfSDavid du Colombier
15673ff48bf5SDavid du Colombier<h2><a name="Version2.9b"></a>Version 2.9-beta (12/6/93)</h2>
15683ff48bf5SDavid du Colombier
15693ff48bf5SDavid du Colombier<p>Like 2.7, this version was created to satisfy a contractual
15703ff48bf5SDavid du Colombierrequirement,
15717dd7cddfSDavid du Colombierand will never be distributed to anyone other than the other party to the
15727dd7cddfSDavid du Colombiercontract.
15737dd7cddfSDavid du Colombier
15743ff48bf5SDavid du Colombier<h3><a name="V2.9b_Documentation"></a>Documentation</h3><pre>
15757dd7cddfSDavid du ColombierNotes that Ghostscript runs on IBM PCs and compatibles under DR DOS
15767dd7cddfSDavid du Colombier6.0.
15777dd7cddfSDavid du Colombier
15787dd7cddfSDavid du ColombierNotes that Ghostscript will run on IBM PCs and compatibles with
15797dd7cddfSDavid du ColombierHercules display cards if you redirect text output to a file.
15807dd7cddfSDavid du Colombier
15817dd7cddfSDavid du ColombierNotes that the alternate DeskJet 500C driver (djet500c) does not work
15827dd7cddfSDavid du Colombieron the 550C.
15837dd7cddfSDavid du Colombier
15847dd7cddfSDavid du ColombierGives a list of system-specific directories where Type 1 fonts are
15857dd7cddfSDavid du Colombierlikely to be installed, as a suggested setting for GS_FONTPATH.
15867dd7cddfSDavid du Colombier
15873ff48bf5SDavid du Colombier</pre><h3><a name="V2.9b_Procedures"></a>Procedures</h3><pre>
15887dd7cddfSDavid du ColombierChanges the distribution script so that it stores all text files in the
15897dd7cddfSDavid du Colombiermain source archive with Unix end-of-line conventions, but with DOS
15907dd7cddfSDavid du Colombierend-of-line conventions in the MS-DOS-specific archive.
15917dd7cddfSDavid du Colombier
15927dd7cddfSDavid du ColombierChanges the MS-DOS, MS Windows, and OS/2 makefiles so that 486SX and 486DX
15937dd7cddfSDavid du Colombierprocessors are different CPU_TYPEs.  (The former, designated by
15947dd7cddfSDavid du ColombierCPU_TYPE=485, does not include an on-chip FPU.)
15957dd7cddfSDavid du Colombier
15967dd7cddfSDavid du ColombierAdds a line to gs_init.ps which can be uncommented to select A4 as
15977dd7cddfSDavid du Colombierthe default paper size.
15987dd7cddfSDavid du Colombier
15997dd7cddfSDavid du ColombierAdds a definable CFLAGS macro to the makefiles, allowing -DA4 to
16007dd7cddfSDavid du Colombierselect A4 as the default paper size.
16017dd7cddfSDavid du Colombier
16027dd7cddfSDavid du ColombierAdds the H-P printer drivers to the standard Unix configurations.
16037dd7cddfSDavid du Colombier
16043ff48bf5SDavid du Colombier</pre><h3><a name="V2.9b_Utilities"></a>Utilities</h3><pre>
16057dd7cddfSDavid du ColombierFixes bugs:
16067dd7cddfSDavid du Colombier	- If there were no unencoded characters, prfont.ps would get
16077dd7cddfSDavid du Colombieran error.
16087dd7cddfSDavid du Colombier
16097dd7cddfSDavid du ColombierChanges ansi2knr to accept a wider range of function declaration syntax,
16107dd7cddfSDavid du Colombierand to not depend on any Ghostscript header files.
16117dd7cddfSDavid du Colombier
16123ff48bf5SDavid du Colombier</pre><h3><a name="V2.9b_Drivers"></a>Drivers</h3><pre>
16137dd7cddfSDavid du ColombierFixes bugs:
16147dd7cddfSDavid du Colombier	- Several drivers (DigiFax, Epson LQ-2550, NEC P6) didn't handle
16157dd7cddfSDavid du ColombierA4 paper width.
16167dd7cddfSDavid du Colombier	- The IBM ProPrinter wasn't being initialized properly.
16177dd7cddfSDavid du Colombier	- The Epson driver didn't work properly with compilers that
16187dd7cddfSDavid du Colombierinsisted on 'char' being a signed type.
16197dd7cddfSDavid du Colombier	- The Epson driver ignored its end_string argument, producing
16207dd7cddfSDavid du Colombierincorrect end-of-page behavior on some printers.
16217dd7cddfSDavid du Colombier
16227dd7cddfSDavid du ColombierAdds new drivers:
16237dd7cddfSDavid du Colombier	- User-contributed drivers for Bellcore MGR (a window manager most
16247dd7cddfSDavid du Colombiercommonly used with OS-9) devices.
16257dd7cddfSDavid du Colombier	- A user-contributed driver for the CIF file format.
16267dd7cddfSDavid du Colombier	- A user-contributed driver for the HP 2563B line printer.
16277dd7cddfSDavid du Colombier
16287dd7cddfSDavid du ColombierChanges the LaserJet 2p, 3, and 4 drivers so they set the initial position
16297dd7cddfSDavid du Colombierto (0,0) rather than (0,0.25").  (I don't remember why it was the other
16307dd7cddfSDavid du Colombierway.)
16317dd7cddfSDavid du Colombier
16327dd7cddfSDavid du ColombierImplements the PageCount property in all drivers, not just printer
16337dd7cddfSDavid du Colombierdrivers.
16347dd7cddfSDavid du Colombier
16357dd7cddfSDavid du ColombierIntroduces a new gx_tile_bitmap type, and changes the tile_rectangle
16367dd7cddfSDavid du Colombierdevice procedure to take it in place of gx_bitmap.  THIS IS A
16377dd7cddfSDavid du ColombierNON-BACKWARD-COMPATIBLE CHANGE.  However, it only affects devices that
16387dd7cddfSDavid du Colombierimplement their own tile_rectangle procedures, of which there aren't very
16397dd7cddfSDavid du Colombiermany.
16407dd7cddfSDavid du Colombier
16413ff48bf5SDavid du Colombier</pre><h3><a name="V2.9b_Platforms"></a>Platforms</h3><pre>
16427dd7cddfSDavid du ColombierFixes bugs:
16437dd7cddfSDavid du Colombier	- The VMS module lists referred to SDCTD and SDCTE instead of
16447dd7cddfSDavid du ColombierSDCT.
16457dd7cddfSDavid du Colombier	- The Unix install script tried to install the non-existent file
16467dd7cddfSDavid du Colombierreadme.doc.
16477dd7cddfSDavid du Colombier	- Microsoft C does something bizarre with empty macro parameters,
16487dd7cddfSDavid du Colombierwhich caused a problem with the gs_struct_type_... macros.
16497dd7cddfSDavid du Colombier	- The Unix platforms didn't automatically handle the presence
16507dd7cddfSDavid du Colombieror absence of &lt;dirent.h&gt;.
16517dd7cddfSDavid du Colombier	- The DEC Alpha OSF/1 1.3 library lacks `const' in the prototype
16527dd7cddfSDavid du Colombierfor popen, which requires a workaround.
16537dd7cddfSDavid du Colombier	- The DEC Alpha OSF/1 1.3 X Windows library uses `private' as a
16547dd7cddfSDavid du Colombiermember name.
16557dd7cddfSDavid du Colombier
16567dd7cddfSDavid du ColombierSplits off gp_unifs.c, containing code common to "Unix-like" file systems.
16577dd7cddfSDavid du Colombier
16587dd7cddfSDavid du ColombierAdds a user-contributed OS-9 platform.
16597dd7cddfSDavid du Colombier
16603ff48bf5SDavid du Colombier</pre><h3><a name="V2.9b_Interpreter"></a>Interpreter</h3><pre>
16617dd7cddfSDavid du ColombierFixes bugs:
16627dd7cddfSDavid du Colombier	- The currentfile cache wasn't updated properly if an executable
16637dd7cddfSDavid du Colombierfile appeared in the middle of a procedure.  In particular, eexec-encoded
16647dd7cddfSDavid du Colombier.PFB fonts often didn't work.
16657dd7cddfSDavid du Colombier	- There was an extraneous `goto top' in scfd.c.
16667dd7cddfSDavid du Colombier	- An integer constant overflowed in iname.c.
16677dd7cddfSDavid du Colombier	- -2147483648 (i.e., -1 &lt;&lt; 31) was converted to a float.
16687dd7cddfSDavid du Colombier	- eexec didn't skip the first 4 characters correctly if they were
16697dd7cddfSDavid du Colombiersplit across a buffer boundary.
16707dd7cddfSDavid du Colombier	- The font/matrix pair cache didn't properly free entries with only
16717dd7cddfSDavid du Colombieran XUID that was being deallocated.
16727dd7cddfSDavid du Colombier
16737dd7cddfSDavid du ColombierImplements additional Level 2 features:
16747dd7cddfSDavid du Colombier	- Patterns, makepattern, setpattern.
16757dd7cddfSDavid du Colombier	- IODevice resource, setdevparams, currentdevparams.
16767dd7cddfSDavid du Colombier	- OutputDevice resource, setpagedevice, currentpagedevice.
16777dd7cddfSDavid du Colombier	(Partially implemented.)
16787dd7cddfSDavid du Colombier
16797dd7cddfSDavid du ColombierAdds a new type t_struct to handle miscellaneous types that are allocated
16807dd7cddfSDavid du Colombieras objects and that the interpreter doesn't handle specially, and changes
16817dd7cddfSDavid du Colombiercondition, fontID, gstate, lock, and save types to use t_struct.  (This is
16827dd7cddfSDavid du Colombieran internal change, not visible at the language level.)
16837dd7cddfSDavid du Colombier
16847dd7cddfSDavid du ColombierMoves the maxlength of a dictionary to its own ref, eliminating the "size
16857dd7cddfSDavid du Colombierof integer" hack.  (This is an internal change, not visible at the
16867dd7cddfSDavid du Colombierlanguage level.)
16877dd7cddfSDavid du Colombier
16887dd7cddfSDavid du ColombierAdds the last OS error number to the error printout.
16897dd7cddfSDavid du Colombier
16907dd7cddfSDavid du ColombierRemoves the obsolete framedevice operator.
16917dd7cddfSDavid du Colombier
16927dd7cddfSDavid du ColombierImplements resetfile (the only Level 1 operator not yet implemented!).
16937dd7cddfSDavid du Colombier
16947dd7cddfSDavid du ColombierChanges the name of the getdevice operator to .getdevice.
16957dd7cddfSDavid du Colombier
16963ff48bf5SDavid du Colombier</pre><h3><a name="V2.9b_Library"></a>Library</h3><pre>
16977dd7cddfSDavid du ColombierFixes bugs:
16987dd7cddfSDavid du Colombier	- A couple of necessary casts from char * to byte * were omitted.
16997dd7cddfSDavid du Colombier	- A Sun compiler required an extra cast to (void *) in the e1
17007dd7cddfSDavid du Colombiermacro in clip_rect_enum_ptrs in gxcpath.c.
17017dd7cddfSDavid du Colombier	- The gx_dc_ procedures defined in gxdraw.c weren't marked as
17027dd7cddfSDavid du Colombier'private'.
17037dd7cddfSDavid du Colombier	- The number of "on" pixels in a halftone cell sometimes varied by
17047dd7cddfSDavid du Colombier1 from cell to cell.
17057dd7cddfSDavid du Colombier	- Mapping a gray level to CMYK didn't subtract it from 1 (to
17067dd7cddfSDavid du Colombierproduce the K component).
17077dd7cddfSDavid du Colombier*	- charpath took hints into account.
17087dd7cddfSDavid du Colombier
17097dd7cddfSDavid du ColombierShuffles the order of some declarations to pacify the VMS C compiler.
17107dd7cddfSDavid du Colombier
17113ff48bf5SDavid du Colombier</pre>
17127dd7cddfSDavid du Colombier
17133ff48bf5SDavid du Colombier<hr>
17143ff48bf5SDavid du Colombier
17153ff48bf5SDavid du Colombier<h2><a name="Version2.8b"></a>Version 2.8-beta (11/10/93)</h2>
17163ff48bf5SDavid du Colombier
17173ff48bf5SDavid du Colombier<p>This version was distributed only to beta testers.  It adds Type 0
17183ff48bf5SDavid du Colombierfont
17197dd7cddfSDavid du Colombiersupport.  It also includes extensive redesign of streams (to eventually
17207dd7cddfSDavid du Colombiersupport procedure streams) and device properties (to eventually support
17217dd7cddfSDavid du Colombierget/setpagedevice and get/setdevparams).
17227dd7cddfSDavid du Colombier
17233ff48bf5SDavid du Colombier<h3><a name="V2.8b_Documentation"></a>Documentation</h3>
17247dd7cddfSDavid du Colombier
17253ff48bf5SDavid du Colombier<pre>
17267dd7cddfSDavid du ColombierNotes the change in X11 foreground/background handling.
17277dd7cddfSDavid du Colombier
17287dd7cddfSDavid du ColombierChanges README so it no longer claims that Ghostscript works with X11R3.
17297dd7cddfSDavid du Colombier
17307dd7cddfSDavid du ColombierNotes (in devs.mak) that the cdjmono driver is the best one to use for the
17317dd7cddfSDavid du ColombierDeskJet 510.
17327dd7cddfSDavid du Colombier
17333ff48bf5SDavid du Colombier</pre><h3><a name="V2.8b_Procedures"></a>Procedures</h3><pre>
17347dd7cddfSDavid du ColombierFixes bugs:
17357dd7cddfSDavid du Colombier	- echogs wasn't always invoked with ./ on Unix systems.
17367dd7cddfSDavid du Colombier
17377dd7cddfSDavid du ColombierChanges the file name unix-ansi.mak to unixansi.mak, so it can be created
17387dd7cddfSDavid du Colombieron a MS-DOS system.
17397dd7cddfSDavid du Colombier
17407dd7cddfSDavid du ColombierAdds a new "feature", ccinit.dev, which compiles and links the
17417dd7cddfSDavid du Colombierinitialization files (gs_*.ps) into the executable, just as ccfonts.dev
17427dd7cddfSDavid du Colombiercompiles and links fonts.  If ccinit and ccfonts are both selected, the
17437dd7cddfSDavid du Colombieronly external file needed at run time is Fontmap.  Note that you must have
17447dd7cddfSDavid du Colombiera working version of Ghostscript already in order to create a version that
17457dd7cddfSDavid du Colombieruses the ccinit feature, just as for ccfonts.
17467dd7cddfSDavid du Colombier
17473ff48bf5SDavid du Colombier</pre><h3><a name="V2.8b_Utilities"></a>Utilities</h3><pre>
17487dd7cddfSDavid du ColombierFixes bugs:
17497dd7cddfSDavid du Colombier	- the ps2image utility didn't put a %! on the first line of the
17507dd7cddfSDavid du Colombieroutput.
17517dd7cddfSDavid du Colombier
17523ff48bf5SDavid du Colombier</pre><h3><a name="V2.8b_Drivers"></a>Drivers</h3><pre>
17537dd7cddfSDavid du ColombierFixes bugs:
17547dd7cddfSDavid du Colombier	- The Hercules display driver didn't include definitions for
17557dd7cddfSDavid du Colombieroutport2 and PAGE_HEIGHT_INCHES, which it uses.
17567dd7cddfSDavid du Colombier	- The BGI driver didn't call setactivepage or setvisualpage,
17577dd7cddfSDavid du Colombierwhich it needs to do in general.
17587dd7cddfSDavid du Colombier	- The Apple DMP driver declared dmp_print_page rather than
17597dd7cddfSDavid du Colombierappledmp_print_page, causing a compilation error.
17607dd7cddfSDavid du Colombier
17617dd7cddfSDavid du ColombierChanges the X11 driver so that it doesn't use the default foreground and
17627dd7cddfSDavid du Colombierbackground colors: you must set foreground and background explicitly for
17637dd7cddfSDavid du ColombierGhostscript if you want them to be other than black and white
17647dd7cddfSDavid du Colombierrespectively.
17657dd7cddfSDavid du Colombier
17667dd7cddfSDavid du ColombierAdds new user-contributed drivers for:
17677dd7cddfSDavid du Colombier	- The StarJet 48 inkjet printer;
17687dd7cddfSDavid du Colombier	- The Linux VGALIB display interface.
17697dd7cddfSDavid du Colombier	- OS/2 Presentation Manager.
17707dd7cddfSDavid du Colombier
17717dd7cddfSDavid du ColombierChanges the margins of the Epson driver to 0.2, 0.0, 0.0, 0.0, which
17727dd7cddfSDavid du Colombiermore accurately reflect the printer's capabilities.
17737dd7cddfSDavid du Colombier
17747dd7cddfSDavid du ColombierChanges the get_props and put_props device procedures to take property
17757dd7cddfSDavid du Colombierlist "objects" with a procedural interface, rather than a data structure
17767dd7cddfSDavid du Colombierinterface.  THIS IS A NON-BACKWARD-COMPATIBLE CHANGE.  It affects all
17777dd7cddfSDavid du Colombierget_props and put_props procedures.  Fortunately, there were only a few
17787dd7cddfSDavid du Colombierdevices that implemented their own get_props and put_props procedures (the
17797dd7cddfSDavid du ColombierH-P color printers, and the three window systems -- X Windows, MS Windows,
17807dd7cddfSDavid du Colombierand OS/2 PM).
17817dd7cddfSDavid du Colombier
17823ff48bf5SDavid du Colombier</pre><h3><a name="V2.8b_Platforms"></a>Platforms</h3><pre>
17837dd7cddfSDavid du ColombierFixes bugs:
17847dd7cddfSDavid du Colombier	- The meaning of the -p switch for the Watcom compile-and-link
17857dd7cddfSDavid du Colombierprogram was changed between Watcom C/386 versions 8.5 and 9.5, causing the
17867dd7cddfSDavid du Colombiermake process to malfunction.
17877dd7cddfSDavid du Colombier	- The SCFTAB and SCFDTAB modules were omitted from the VMS link
17887dd7cddfSDavid du Colombierlist.
17897dd7cddfSDavid du Colombier
17907dd7cddfSDavid du ColombierAdds user-contributed code for OS/2.
17917dd7cddfSDavid du Colombier
17927dd7cddfSDavid du ColombierRemoves the assumption that an 80486 CPU implies the presence of hardware
17937dd7cddfSDavid du Colombierfloating point, since the 486SX and Cyrix 486SLC don't have it.
17947dd7cddfSDavid du Colombier
17953ff48bf5SDavid du Colombier</pre><h3><a name="V2.8b_Fonts"></a>Fonts</h3><pre>
17967dd7cddfSDavid du ColombierFixes bugs:
17977dd7cddfSDavid du Colombier*	- The GS_FONTPATH scanner didn't recognize .PFB fonts beginning
17987dd7cddfSDavid du Colombierwith %!PS-AdobeFont.
17997dd7cddfSDavid du Colombier*	- The GS_FONTPATH scanner often didn't recognize .PFB fonts at all.
18007dd7cddfSDavid du Colombier	- Type 1 fonts always set the line join, line cap, and miter limit
18017dd7cddfSDavid du Colombierto known values, rather than using the current values.  (Using the current
18027dd7cddfSDavid du Colombiervalues doesn't make much sense, but it's apparently what the Adobe
18037dd7cddfSDavid du Colombierimplementations do.)
18047dd7cddfSDavid du Colombier	- DISKFONTS didn't work, because of the change in the Ghostscript
18057dd7cddfSDavid du Colombierfonts to do a systemdict begin/end (in version 2.7.1).
18067dd7cddfSDavid du Colombier
18073ff48bf5SDavid du Colombier</pre><h3><a name="V2.8b_Interpreter"></a>Interpreter</h3><pre>
18087dd7cddfSDavid du ColombierFixes bugs:
18097dd7cddfSDavid du Colombier	- == didn't produce exactly the same output as the Adobe
18107dd7cddfSDavid du Colombierinterpreters.  (Some automated debugging and testing programs care.)
18117dd7cddfSDavid du Colombier	- The CCITTFaxEncode filter could get caught in an infinite loop,
18127dd7cddfSDavid du Colombierbecause it failed to mask a byte datum when scanning for runs of black
18137dd7cddfSDavid du Colombierpixels.
18147dd7cddfSDavid du Colombier	- The write operator gave an error for values outside the range 0
18157dd7cddfSDavid du Colombierto 255, rather than just using the low-order 8 bits.
18167dd7cddfSDavid du Colombier	- Some applications call a statusdict procedure named
18177dd7cddfSDavid du Colombiersetresolution without checking first whether it is present; Ghostscript
18187dd7cddfSDavid du Colombierdidn't provide one.
18197dd7cddfSDavid du Colombier	- Reading from a closed stream caused an error instead of
18207dd7cddfSDavid du Colombierreturning EOF.
18217dd7cddfSDavid du Colombier	- Input streams didn't close automatically at EOF.
18227dd7cddfSDavid du Colombier	- findfont was defined as an operator, not a procedure.
18237dd7cddfSDavid du Colombier	- closefile on a closed file gave an error.  (It isn't obvious
18247dd7cddfSDavid du Colombierthat the Adobe documentation specifies that it shouldn't, but that's what
18257dd7cddfSDavid du ColombierAdobe says they do.)
18267dd7cddfSDavid du Colombier	- The LZWDecode filter didn't handle codes representing strings
18277dd7cddfSDavid du Colombierlonger than the buffer size correctly.
18287dd7cddfSDavid du Colombier	- The LZWDecode filter only allowed 4095 codes to be used, rather
18297dd7cddfSDavid du Colombierthan 4096.
18307dd7cddfSDavid du Colombier	- The rand operator produced an infinite string of zeros if
18317dd7cddfSDavid du Colombiergiven 0 or 0x7fffffff as the seed.
18327dd7cddfSDavid du Colombier	- When a CDevProc procedure was called, there was an extra
18337dd7cddfSDavid du Colombiercopy of the character name on the operand stack below the operands of
18347dd7cddfSDavid du ColombierCDevProc.
18357dd7cddfSDavid du Colombier
18367dd7cddfSDavid du ColombierReplaces all stream implementations with new ones designed to allow
18377dd7cddfSDavid du Colombierinterruption at arbitrary times.  ****** The 2-D case of CCITTFaxEncode
18387dd7cddfSDavid du Colombierhasn't been converted (but it probably didn't work before, either).
18397dd7cddfSDavid du Colombier
18407dd7cddfSDavid du ColombierImplements additional Level 2 features:
18417dd7cddfSDavid du Colombier	- Type 0 (composite) fonts.
18427dd7cddfSDavid du Colombier
18437dd7cddfSDavid du ColombierAdds an eexecEncode filter.
18447dd7cddfSDavid du Colombier
18457dd7cddfSDavid du ColombierImplements setcolorscreen, which was accidentally omitted from 2.7.
18467dd7cddfSDavid du Colombier
18473ff48bf5SDavid du Colombier</pre><h3><a name="V2.8b_Library"></a>Library</h3><pre>
18487dd7cddfSDavid du ColombierFixes bugs:
18497dd7cddfSDavid du Colombier*	- In colorimage, if the color space of the image was different
18507dd7cddfSDavid du Colombierfrom the current color space, and the first data values on a scan line
18517dd7cddfSDavid du Colombierwere zeros, the wrong color could result.
18527dd7cddfSDavid du Colombier	- The new flatness testing algorithm could overflow, producing
18537dd7cddfSDavid du Colombierstraight lines or obvious polygons instead of curves.
18547dd7cddfSDavid du Colombier	- Images could fail to display pixels after the first non-blank
18557dd7cddfSDavid du Colombierpixel on a line if halftoned color was required.  (This bug was probably
18567dd7cddfSDavid du Colombierintroduced in 2.7.)
18577dd7cddfSDavid du Colombier	- Interpolation between transfer map entries didn't work, because
18587dd7cddfSDavid du Colombierof a rounding/truncation bug in frac2bits (bug introduced in 2.7.1.)
18597dd7cddfSDavid du Colombier	- cshow did an extra grestore at the end.
18607dd7cddfSDavid du Colombier
18617dd7cddfSDavid du Colombier* Implements a hack to slightly displace 1-bit-wide or -high images.  This
18627dd7cddfSDavid du Colombieris necessary to work around a bug in TeX (or dvips?), which uses such
18637dd7cddfSDavid du Colombierimages to draw horizontal and vertical lines without positioning them to
18647dd7cddfSDavid du Colombierensure that they cover device pixel centers.
18657dd7cddfSDavid du Colombier
18667dd7cddfSDavid du ColombierAdds support for composite fonts (no new client procedures).
18677dd7cddfSDavid du Colombier
18683ff48bf5SDavid du Colombier</pre>
18697dd7cddfSDavid du Colombier
18703ff48bf5SDavid du Colombier<hr>
18717dd7cddfSDavid du Colombier
18723ff48bf5SDavid du Colombier<h2><a name="Version2.7.2b"></a>Version 2.7.2-beta (10/11/93)</h2>
18737dd7cddfSDavid du Colombier
18743ff48bf5SDavid du Colombier<p>This version was distributed only to alpha testers.
18753ff48bf5SDavid du Colombier
18763ff48bf5SDavid du Colombier<h3><a name="V2.7.2b_Utilities"></a>Utilities</h3><pre>
18777dd7cddfSDavid du ColombierFixes bugs:
18787dd7cddfSDavid du Colombier	- prfont.ps didn't print unencoded characters.
18797dd7cddfSDavid du Colombier
18807dd7cddfSDavid du ColombierImproves mergeini.ps to remove embedded comments.
18817dd7cddfSDavid du Colombier
18823ff48bf5SDavid du Colombier</pre><h3><a name="V2.7.2b_Interpreter"></a>Interpreter</h3><pre>
18837dd7cddfSDavid du ColombierFixes bugs:
18847dd7cddfSDavid du Colombier	- An error occurring within the scope of an internal .stopped
18857dd7cddfSDavid du Colombierdidn't pop the command and error name off the stack.
18867dd7cddfSDavid du Colombier*	- The = and == procedures weren't re-entrant.
18877dd7cddfSDavid du Colombier
18887dd7cddfSDavid du Colombier* Adds a .writecvs operator that does a cvs to an internal string followed
18897dd7cddfSDavid du Colombierby a writestring.
18907dd7cddfSDavid du Colombier
18913ff48bf5SDavid du Colombier</pre><h3><a name="V2.7.2b_Library"></a>Library</h3><pre>
18927dd7cddfSDavid du ColombierFixes bugs:
18937dd7cddfSDavid du Colombier	- grestore freed the path and the clip path in an order that
18947dd7cddfSDavid du Colombierwas likely to lead to memory sandbars.
18957dd7cddfSDavid du Colombier	- moveto + closepath didn't actually close the path.
18967dd7cddfSDavid du Colombier	- moveto + reversepath produced an empty path (no moveto).
18977dd7cddfSDavid du Colombier	- moveto + closepath + reversepath produced an extra lineto.
18987dd7cddfSDavid du Colombier	- reversepath didn't set the current point to the end (i.e., the
18997dd7cddfSDavid du Colombierformer beginning) of the last subpath.
19007dd7cddfSDavid du Colombier
19017dd7cddfSDavid du ColombierAdds a "planar" memory device.
19027dd7cddfSDavid du Colombier
19033ff48bf5SDavid du Colombier</pre>
19047dd7cddfSDavid du Colombier
19053ff48bf5SDavid du Colombier<h2><a name="Version2.7.1b"></a>Version 2.7.1-beta (10/4/93, not distributed to the public)</h2>
19063ff48bf5SDavid du Colombier
19073ff48bf5SDavid du Colombier<p>Like 2.7, this version was created to satisfy a contractual
19083ff48bf5SDavid du Colombierrequirement,
19097dd7cddfSDavid du Colombierand will never be distributed to anyone other than the other party to the
19107dd7cddfSDavid du Colombiercontract.
19117dd7cddfSDavid du Colombier
19123ff48bf5SDavid du Colombier<h3><a name="V2.7.1b_Documentation"></a>Documentation</h3><pre>
19137dd7cddfSDavid du ColombierDocuments the GS_OPTIONS environment variable.
19147dd7cddfSDavid du Colombier
19157dd7cddfSDavid du ColombierAdds a summary of all environment variables to the documentation
19167dd7cddfSDavid du Colombier(use.doc).
19177dd7cddfSDavid du Colombier
19187dd7cddfSDavid du ColombierDocuments the existence of a third free viewer built on Ghostscript.
19197dd7cddfSDavid du Colombier
19203ff48bf5SDavid du Colombier</pre><h3><a name="V2.7.1b_Utilities"></a>Utilities</h3><pre>
19217dd7cddfSDavid du ColombierFixes bugs:
19227dd7cddfSDavid du Colombier	- wrfont didn't wrap a systemdict begin / end around the body of
19237dd7cddfSDavid du Colombierthe font.
19247dd7cddfSDavid du Colombier	- wrfont wrote out the Symbol and ZapfDingbats encodings in a way
19257dd7cddfSDavid du Colombierthat only worked if the encoding was known by name.
19267dd7cddfSDavid du Colombier
19277dd7cddfSDavid du ColombierChanges bdftops to include an XUID if desired.
19287dd7cddfSDavid du Colombier
19297dd7cddfSDavid du ColombierChanges bdftops so that it uses 'show' for unknown ligatures, rather than
19307dd7cddfSDavid du Colombierexecuting the characters as subroutines; this makes such ligatures work
19317dd7cddfSDavid du Colombierproperly with xfonts.
19327dd7cddfSDavid du Colombier
19333ff48bf5SDavid du Colombier</pre><h3><a name="V2.7.1b_Drivers"></a>Drivers</h3><pre>
19347dd7cddfSDavid du ColombierFixes bugs:
19357dd7cddfSDavid du Colombier	- The PCL drivers sent a printer reset (&lt;ESC&gt;E) at the beginning
19367dd7cddfSDavid du Colombierof every page, instead of only before the first page.
19377dd7cddfSDavid du Colombier	- The PCX driver didn't round up the scan line width in the
19387dd7cddfSDavid du Colombierheader, even though it produced scan lines with the correct (rounded)
19397dd7cddfSDavid du Colombiernumber of bytes.
19407dd7cddfSDavid du Colombier
19417dd7cddfSDavid du ColombierAdds a new map_rgb_alpha_color procedure.  This is a backward-compatible
19427dd7cddfSDavid du Colombierchange; this procedure defaults to calling map_rgb_color.
19437dd7cddfSDavid du Colombier
19443ff48bf5SDavid du Colombier</pre><h3><a name="V2.7.1b_Platforms"></a>Platforms</h3><pre>
19457dd7cddfSDavid du ColombierFixes bugs:
19467dd7cddfSDavid du Colombier	- On Unix platforms, the value of the TEMP environment variable
19477dd7cddfSDavid du Colombierhad to end with a '/'.
19487dd7cddfSDavid du Colombier	- On MS-DOS systems, printer output to devices other than PRN
19497dd7cddfSDavid du Colombier(specifically, LPTn) didn't put the device into binary mode.
19507dd7cddfSDavid du Colombier
19517dd7cddfSDavid du ColombierAdds FPU_TYPE to the Unix makefiles, with a default value of 1.
19527dd7cddfSDavid du Colombier
19537dd7cddfSDavid du ColombierRemoves the mention of Xmu linking problems on the SunOS platform,
19547dd7cddfSDavid du Colombiersince the problem no longer exists.
19557dd7cddfSDavid du Colombier
19567dd7cddfSDavid du ColombierChanges the order of X Windows libraries from Xt X11 Xext to Xt Xext X11.
19577dd7cddfSDavid du ColombierThis makes the OSF/1 linker happier.
19587dd7cddfSDavid du Colombier
19593ff48bf5SDavid du Colombier</pre><h3><a name="V2.7.1b_Fonts"></a>Fonts</h3><pre>
19607dd7cddfSDavid du ColombierFixes bugs:
19617dd7cddfSDavid du Colombier	- All the fonts originated by Aladdin, and the shareware fonts,
19627dd7cddfSDavid du Colombierhad UniqueIDs in the 4xxxxxx range, which is only supposed to be used for
19637dd7cddfSDavid du Colombierlimited-distribution fonts.
19647dd7cddfSDavid du Colombier*	- When Ghostscript loaded a font, it pushed a scratch dictionary
19657dd7cddfSDavid du Colombieron the dictionary stack, rather than userdict.  (Note that this fix also
19667dd7cddfSDavid du Colombierrequires fixing the fonts to include a protective systemdict begin /
19677dd7cddfSDavid du Colombierend; see below.)
19687dd7cddfSDavid du Colombier*	- When loading a font failed, Ghostscript didn't check the font
19697dd7cddfSDavid du Colombiername against the default font name properly.
19707dd7cddfSDavid du Colombier	- Ghostscript's own fonts didn't include a systemdict begin /
19717dd7cddfSDavid du Colombierend to guard against redefinition of names used in the reading
19727dd7cddfSDavid du Colombierprocedures (e.g., index).
19737dd7cddfSDavid du Colombier*	- When Ghostscript scanned a .PFB font to get the FontName, it
19747dd7cddfSDavid du Colombierdidn't skip over the 6-byte header, which could cause confusion or a
19757dd7cddfSDavid du Colombiersyntaxerror.
19767dd7cddfSDavid du Colombier	- Loading a .PFB font that left extra information on the
19777dd7cddfSDavid du Colombieroperand stack didn't work.
19787dd7cddfSDavid du Colombier
19797dd7cddfSDavid du ColombierChanges the ZapfDingbats font to use DingbatsEncoding rather than include
19807dd7cddfSDavid du Colombiera copy of the encoding in itself, if DingbatsEncoding is known.  Changes
19817dd7cddfSDavid du Colombierthe Symbol font similarly.
19827dd7cddfSDavid du Colombier
19837dd7cddfSDavid du ColombierRemoves eexec encryption from the 4 URW fonts, so they will work with
19847dd7cddfSDavid du ColombierDISKFONTS.
19857dd7cddfSDavid du Colombier
19867dd7cddfSDavid du ColombierAdds shareware Hiragana and Katakana fonts (Calligraphic-Hiragana and
19877dd7cddfSDavid du ColombierCalligraphic-Katakana, by Kevin Hartig).
19887dd7cddfSDavid du Colombier
19897dd7cddfSDavid du ColombierAdds GS on the end of the family names of all of Aladdin's own converted
19907dd7cddfSDavid du Colombierfonts.
19917dd7cddfSDavid du Colombier
19927dd7cddfSDavid du ColombierReplaces many of the Hershey fonts with new ones (mostly Type 1) created
19937dd7cddfSDavid du Colombierby Thomas Wolff, who added accents, accented characters, and other
19947dd7cddfSDavid du Colombiernon-alphabetics.  These too now have proper UniqueIDs.
19957dd7cddfSDavid du Colombier
19963ff48bf5SDavid du Colombier</pre><h3><a name="V2.7.1b_Interpreter"></a>Interpreter</h3><pre>
19977dd7cddfSDavid du ColombierFixes bugs:
19987dd7cddfSDavid du Colombier*	- imagemask interpreted the Decode array incorrectly (inverted).
19997dd7cddfSDavid du Colombier	- Running out of memory when constructing a path incorrectly
20007dd7cddfSDavid du Colombiersignalled a limitcheck rather than a VMerror.
20017dd7cddfSDavid du Colombier	- restore didn't purge uncached scaled fonts properly.
20027dd7cddfSDavid du Colombier
20037dd7cddfSDavid du ColombierAdds alpha (opacity) to the graphics state, and setalpha and
20047dd7cddfSDavid du Colombiercurrentalpha operators.
20057dd7cddfSDavid du Colombier
20067dd7cddfSDavid du ColombierRedefines erasepage in terms of a new .fillpage operator that fills
20077dd7cddfSDavid du Colombierthe current page with the current color and then does a sync_output.
20087dd7cddfSDavid du Colombier
20097dd7cddfSDavid du ColombierRedefines setdevice and putdeviceprops in terms of new .setdevice and
20107dd7cddfSDavid du Colombier.putdeviceprops operators that return a boolean indicating whether the
20117dd7cddfSDavid du Colombierpage needs to be erased.  With this change, operators that erase the page
20127dd7cddfSDavid du Colombieralways call erasepage at the interpreter level rather than calling
20137dd7cddfSDavid du Colombiergs_erasepage directly.
20147dd7cddfSDavid du Colombier
20153ff48bf5SDavid du Colombier</pre><h3><a name="V2.7.1b_Library"></a>Library</h3><pre>
20167dd7cddfSDavid du ColombierFixes bugs:
20177dd7cddfSDavid du Colombier	- The null device allowed its size to be reset.
20187dd7cddfSDavid du Colombier	- clippath didn't establish a current point if the clipping
20197dd7cddfSDavid du Colombierpath was empty.
20207dd7cddfSDavid du Colombier*	- The Type 1 font interpreter (gs_type1_interpret) flattened
20217dd7cddfSDavid du Colombiercurves even if it was being invoked for charpath.
20227dd7cddfSDavid du Colombier	- Colored halftones usually didn't come out with the correct
20237dd7cddfSDavid du Colombierphase, and had several other problems.
20247dd7cddfSDavid du Colombier	- A show or charpath within a BuildChar procedure didn't work.
20257dd7cddfSDavid du Colombier	- Accented characters composed with seac used the base
20267dd7cddfSDavid du Colombiercharacter width instead of the composed character width.  (The Adobe
20277dd7cddfSDavid du Colombierdocumentation says these must be the same, but some commercial fonts
20287dd7cddfSDavid du Colombierdon't obey this.)
20297dd7cddfSDavid du Colombier	- setcurrentpoint in the accent of a character composed with
20307dd7cddfSDavid du Colombierseac didn't take the accent's displacement into account.
20317dd7cddfSDavid du Colombier
20327dd7cddfSDavid du ColombierAdds an alpha (coverage) value to the graphics state, and
20337dd7cddfSDavid du Colombiergs_setalpha/currentalpha procedures.  Currently Ghostscript just passes
20347dd7cddfSDavid du Colombierthe alpha value to the driver; it doesn't attempt to emulate alpha
20357dd7cddfSDavid du Colombierhandling if the driver doesn't support it.
20367dd7cddfSDavid du Colombier
20377dd7cddfSDavid du ColombierRedefines gs_erasepage to call gs_fillpage.
20387dd7cddfSDavid du Colombier
20397dd7cddfSDavid du ColombierBypasses the fill code if the clipping box is empty.  This makes a big
20407dd7cddfSDavid du Colombierdifference for stringwidth, and doesn't hurt anything else.
20417dd7cddfSDavid du Colombier
20427dd7cddfSDavid du ColombierChanges frac_1 from 0x7fff to 0x7ff8.  This allows exact representation of
20437dd7cddfSDavid du Colombierpractically all useful fractions, since this number (32760) is
20447dd7cddfSDavid du Colombier2*2*2*3*3*5*7*13.
20457dd7cddfSDavid du Colombier
20467dd7cddfSDavid du ColombierChanges float to double in several matrix routines for better accuracy.
20477dd7cddfSDavid du Colombier
20487dd7cddfSDavid du ColombierAdds new device properties to implement the deviceinfo operator:
20497dd7cddfSDavid du ColombierColors, GrayValues, RedValues, GreenValues, BlueValues, ColorValues.
20507dd7cddfSDavid du ColombierAlso adds HWBitsPerPixel and HWColorMap.
20517dd7cddfSDavid du Colombier
20527dd7cddfSDavid du ColombierChanges the sorting algorithm for halftones to use qsort instead of
20537dd7cddfSDavid du Colombierspecial code.
20547dd7cddfSDavid du Colombier
20557dd7cddfSDavid du ColombierChanges the Type 1 interpreter so that it uses the current point, rather
20567dd7cddfSDavid du Colombierthan (0,0), as the character origin.
20577dd7cddfSDavid du Colombier
20583ff48bf5SDavid du Colombier</pre>
20597dd7cddfSDavid du Colombier
20603ff48bf5SDavid du Colombier<h2><a name="Version2.7b"></a>Version 2.7-beta (9/20/93, not distributed to the public)</h2>
20613ff48bf5SDavid du Colombier
20623ff48bf5SDavid du Colombier<p>This is the first of a series of beta-only versions planned for
20633ff48bf5SDavid du Colombierrelease
20647dd7cddfSDavid du Colombierbetween 2.6.n and 3.0.  This version, in particular, was created to
20657dd7cddfSDavid du Colombiersatisfy a contractual requirement, and will never be distributed to anyone
20667dd7cddfSDavid du Colombierother than the other party to the contract.
20677dd7cddfSDavid du Colombier
20683ff48bf5SDavid du Colombier<h3><a name="V2.7b_Documentation"></a>Documentation</h3><pre>
20697dd7cddfSDavid du ColombierFixes bugs:
20707dd7cddfSDavid du Colombier	- The "HP XLFD extensions" to X11R5 are not specific to H-P
20717dd7cddfSDavid du Colombierplatforms.
20727dd7cddfSDavid du Colombier	- The configuration generation script used rm rather than rm -f.
20737dd7cddfSDavid du Colombier	- gs.1 was installed in $(docdir) rather than $(mandir);
20747dd7cddfSDavid du Colombier$(mandir) wasn't defined.
20757dd7cddfSDavid du Colombier	- ansi2knr.1 was installed in $(docdir), which was
20767dd7cddfSDavid du Colombierinappropriate because ansi2knr itself wasn't installed anywhere.
20777dd7cddfSDavid du Colombier
20787dd7cddfSDavid du ColombierMoves documentation for versions 2.4.x and 2.5.x to history.doc.
20797dd7cddfSDavid du Colombier
20807dd7cddfSDavid du ColombierMoves the documentation on how to add devices to the configuration
20817dd7cddfSDavid du Colombierfrom devs.mak to make.doc.
20827dd7cddfSDavid du Colombier
20837dd7cddfSDavid du ColombierChanges the name of readme.doc to current.doc, since the presence of
20847dd7cddfSDavid du Colombiertwo "readme" files was confusing to users.
20857dd7cddfSDavid du Colombier
20867dd7cddfSDavid du ColombierDocuments how to use the Microsoft Windows PostScript printer driver
20877dd7cddfSDavid du Colombierto convert TrueType fonts to Type 1 fonts embedded in the document.
20887dd7cddfSDavid du Colombier
20897dd7cddfSDavid du ColombierCorrects several errors in the documentation of the get_bits driver
20907dd7cddfSDavid du Colombierprocedure.
20917dd7cddfSDavid du Colombier
20927dd7cddfSDavid du ColombierDocuments the fact that X11R3 is no longer supported.
20937dd7cddfSDavid du Colombier
20947dd7cddfSDavid du ColombierRemoves the last references to "Ghostscript" from the comments in the
20957dd7cddfSDavid du Colombiergs_*.ps files.  The only remaining reference, other than the boilerplate
20967dd7cddfSDavid du Colombiercomments at the beginning of each file, is in the message at the end of
20977dd7cddfSDavid du Colombiergs_init.ps.
20987dd7cddfSDavid du Colombier
20997dd7cddfSDavid du ColombierDocuments the use of WMAKEL rather than WMAKE with the Watcom compiler.
21007dd7cddfSDavid du Colombier
21013ff48bf5SDavid du Colombier</pre><h3><a name="V2.7b_Procedures"></a>Procedures</h3><pre>
21027dd7cddfSDavid du ColombierFixes bugs:
21037dd7cddfSDavid du Colombier*	- The Unix install script used gs rather than $(GS) as the name of
21047dd7cddfSDavid du Colombierthe executable.
21057dd7cddfSDavid du Colombier*	- The Unix install script didn't copy gs_dbt_e.ps to $(gsdatadir).
21067dd7cddfSDavid du Colombier	- genconf.c used ps2 as a variable name; ps2 is a predefined
21077dd7cddfSDavid du Colombierpreprocessor symbol in the VSC compiler used by IBM.
21087dd7cddfSDavid du Colombier	- @-expansion didn't interact properly with -- and -+.
21097dd7cddfSDavid du Colombier	- The Unix install script didn't copy COPYING to $(docdir),
21107dd7cddfSDavid du Colombierand copied README to $(gsdatadir) rather than $(docdir).
21117dd7cddfSDavid du Colombier	- ps2ascii used /bin/sh -f, which is an incorrect flag.
21127dd7cddfSDavid du Colombier
21137dd7cddfSDavid du ColombierRemoves all uses and mentions of USG (a now-obsolete GNU convention)
21147dd7cddfSDavid du Colombieras a synonym for SYSV.
21157dd7cddfSDavid du Colombier
21167dd7cddfSDavid du ColombierRemoves filter.dev and dps.dev from FEATURE_DEVS if level2.dev is
21177dd7cddfSDavid du Colombierincluded, since they don't add anything beyond level2.dev.
21187dd7cddfSDavid du Colombier
21197dd7cddfSDavid du ColombierChanges the ccgs script to explictly remove the old .o file before
21207dd7cddfSDavid du Colombierdoing the mv, for the benefit of people who have changed mv to prompt
21217dd7cddfSDavid du Colombierbefore overwriting.  Changes the configuration script to use rm -f
21227dd7cddfSDavid du Colombierfor the same reason.
21237dd7cddfSDavid du Colombier
21247dd7cddfSDavid du ColombierChanges the -Z switch so an empty list of options does nothing, rather
21257dd7cddfSDavid du Colombierthan turning on all options.
21267dd7cddfSDavid du Colombier
21277dd7cddfSDavid du ColombierAdds a -@ switch which is like -- and -+ except that it does
21287dd7cddfSDavid du Colombier@-expansion of arguments.
21297dd7cddfSDavid du Colombier
21307dd7cddfSDavid du ColombierChanges genconf so it takes patterns from the command line that describe
21317dd7cddfSDavid du Colombierhow to write the linker control files, rather than having the patterns
21327dd7cddfSDavid du Colombierbuilt in.
21337dd7cddfSDavid du Colombier
21347dd7cddfSDavid du ColombierChanges -d and -D so that if no value is supplied, the default is
21357dd7cddfSDavid du Colombiertrue rather than null.
21367dd7cddfSDavid du Colombier
21373ff48bf5SDavid du Colombier</pre><h3><a name="V2.7b_Utilities"></a>Utilities</h3><pre>
21387dd7cddfSDavid du ColombierFixes bugs:
21397dd7cddfSDavid du Colombier*	- The ps2ascii script still referenced ps2ascii.ps under its
21407dd7cddfSDavid du Colombierold name gs_2asc.ps.
21417dd7cddfSDavid du Colombier*	- ps2image.ps had a 'pop' missing in the written-out
21427dd7cddfSDavid du Colombierdefinition of 'max' in the boilerplate code it put at the beginning
21437dd7cddfSDavid du Colombierof compressed files.
21447dd7cddfSDavid du Colombier*	- ps2image.ps got a typecheck if a scan line had no repeated
21457dd7cddfSDavid du Colombierdata in it anywhere.
21467dd7cddfSDavid du Colombier	- wrfont.ps didn't handle CharStrings or Subrs that weren't
21477dd7cddfSDavid du Colombierstrings.
21487dd7cddfSDavid du Colombier	- mergeini.ps produced an init file that incorrectly
21497dd7cddfSDavid du Colombierattempted to load the Symbol and Dingbats encodings dynamically.
21507dd7cddfSDavid du Colombier
21517dd7cddfSDavid du ColombierRemoves the gsview.bat file, since it was confusingly named and not
21527dd7cddfSDavid du Colombiergenerally useful.
21537dd7cddfSDavid du Colombier
21547dd7cddfSDavid du ColombierChanges bdftops back to using encrypted CharStrings, for compatibility
21557dd7cddfSDavid du Colombierwith Adobe interpreters, but also changes lenIV to 0, to save a little
21567dd7cddfSDavid du Colombiermore space.
21577dd7cddfSDavid du Colombier
21587dd7cddfSDavid du ColombierChanges the traceop utility so it makes traced operators appear to be
21597dd7cddfSDavid du Colombieroperators, and so it will replace a definition in systemdict if explicitly
21607dd7cddfSDavid du Colombierrequested to do so and systemdict is writable.
21617dd7cddfSDavid du Colombier
21627dd7cddfSDavid du ColombierAdds a printafm utility for printing the metrics of fonts in AFM format.
21637dd7cddfSDavid du Colombier
21643ff48bf5SDavid du Colombier</pre><h3><a name="V2.7b_Drivers"></a>Drivers</h3><pre>
21657dd7cddfSDavid du ColombierFixes bugs:
21667dd7cddfSDavid du Colombier	- The cdj driver was missing a few type casts that were needed to
21677dd7cddfSDavid du Colombiersatisfy pedantic compilers.
21687dd7cddfSDavid du Colombier	- For banded devices, many of the non-displaying target routines
21697dd7cddfSDavid du Colombierwere getting called with the original device as the first argument, not
21707dd7cddfSDavid du Colombierthe target device.  (This didn't make any difference in practice, because
21717dd7cddfSDavid du Colombiergdev_prn_open explicitly copied the non-rendering procedures back into the
21727dd7cddfSDavid du Colombierprocedure vector.)
21737dd7cddfSDavid du Colombier*	- The X driver didn't catch and discard bogus errors on
21747dd7cddfSDavid du ColombierXFreeColors, which faulty servers generate.
21757dd7cddfSDavid du Colombier*	- The X driver gave up on color allocation too easily.
21767dd7cddfSDavid du Colombier*	- The X driver dynamic color table size could become negative.
21777dd7cddfSDavid du Colombier*	- x_lookup_font could return platform fonts of very small sizes,
21787dd7cddfSDavid du Colombierwhich have very inaccurate metrics.
21797dd7cddfSDavid du Colombier*	- The ESCP/2 driver was incorrectly named gdevescp2 in devs.mak.
21807dd7cddfSDavid du Colombier	- The Apple DMP driver used #if 0 / #endif instead of comment
21817dd7cddfSDavid du Colombierbrackets, and was incorrectly named "dmp" instead of "appledmp" in
21827dd7cddfSDavid du Colombierthe source code.
21837dd7cddfSDavid du Colombier*	- The X driver didn't free dynamic colors at the start of each page.
21847dd7cddfSDavid du Colombier*	- The X driver didn't bind foreground/background defaults tightly.
21857dd7cddfSDavid du Colombier*	- The X driver didn't check for GHOSTVIEW_COLORS properly.
21867dd7cddfSDavid du Colombier*	- The X driver freed too many colors if an allocation request failed.
21877dd7cddfSDavid du Colombier*	- The X driver didn't check return value of gs_malloc for being NULL.
21887dd7cddfSDavid du Colombier*	- The DeskJet/LaserJet driver used an incorrect command for
21897dd7cddfSDavid du Colombierend-of-page.
21907dd7cddfSDavid du Colombier*	- The DeskJet/LaserJet driver incorrectly reset the printer at the
21917dd7cddfSDavid du Colombierbeginning of every page.
21927dd7cddfSDavid du Colombier*	- The PCX driver put an old version number in the header, and
21937dd7cddfSDavid du Colombierdidn't pad scan lines to an even number of bytes.
21947dd7cddfSDavid du Colombier	- The BMP driver used a variable named `quad', which is a
21957dd7cddfSDavid du Colombierreserved word on some platforms.
21967dd7cddfSDavid du Colombier*	- The TIFF driver didn't handle A4 or B4 size paper correctly.
21977dd7cddfSDavid du Colombier*	- The X11 driver incorrectly demanded the Xmu library, which was
21987dd7cddfSDavid du Colombiernot needed and which caused link errors on some versions of SunOS.
21997dd7cddfSDavid du Colombier*	- X11 font matching scheme was too loose, causing overlaps and
22007dd7cddfSDavid du Colombierother problems.
22017dd7cddfSDavid du Colombier*	- X11 Font Extensions (rotated and mirrored fonts) did not work
22027dd7cddfSDavid du Colombierproperly on NCD terminals.
22037dd7cddfSDavid du Colombier*	- When freeing the rgb cube/gray ramp, the parameters to gs_free()
22047dd7cddfSDavid du Colombierdid not exactly match the parameters to gs_malloc().
22057dd7cddfSDavid du Colombier*	- Ghostscript failed to warn the user when it could not allocate
22067dd7cddfSDavid du Colombierthe original color cube/gray ramp and dropped back to a smaller
22077dd7cddfSDavid du Colombiercube/ramp, or from color to mono.
22087dd7cddfSDavid du Colombier*	- x_release could cause Ghostscript to fail if a font was freed
22097dd7cddfSDavid du Colombierafter the device was closed.
22107dd7cddfSDavid du Colombier	- The X driver continued to ask the server for colors even after a
22117dd7cddfSDavid du Colombierrequest failed, causing colored images to display very slowly.
22127dd7cddfSDavid du Colombier
22137dd7cddfSDavid du Colombier* Adds a pcxgray driver to provide 8-bit gray scale output in PCX format.
22147dd7cddfSDavid du Colombier
22157dd7cddfSDavid du ColombierAdds a pcx24b driver to provide 24-bit RGB color PCX output.
22167dd7cddfSDavid du Colombier
22177dd7cddfSDavid du Colombier* Adds a LaserJet 4 driver.
22187dd7cddfSDavid du Colombier
22197dd7cddfSDavid du ColombierAdds a user-contributed driver for the DEC LA70 (very similar to the LA75).
22207dd7cddfSDavid du Colombier
22217dd7cddfSDavid du ColombierSubstantially improves the performance of the PxM drivers by eliminating
22227dd7cddfSDavid du Colombieran unnecessary copying step and by writing each scan line with a single
22237dd7cddfSDavid du Colombierfwrite when possible.
22247dd7cddfSDavid du Colombier
22257dd7cddfSDavid du ColombierMoves the gray-scale and 24-bit RGB device color mapping routines to
22267dd7cddfSDavid du Colombiergxcmap.c from gdevpcx.c and (nowhere).
22277dd7cddfSDavid du Colombier
22287dd7cddfSDavid du ColombierAllows window granularities smaller than 64K in the VESA driver.
22297dd7cddfSDavid du Colombier
22307dd7cddfSDavid du ColombierChanges the LaserJet margins again.
22317dd7cddfSDavid du Colombier
22323ff48bf5SDavid du Colombier</pre><h3><a name="V2.7b_Platforms"></a>Platforms</h3><pre>
22337dd7cddfSDavid du ColombierFixes bugs:
22347dd7cddfSDavid du Colombier	- Platforms where stat doesn't return a st_blocks value
22357dd7cddfSDavid du Colombiercomputed the block count wrong.
22367dd7cddfSDavid du Colombier	- In gp_vms.c, the call on SYS$FILESCAN needed two uint *s
22377dd7cddfSDavid du Colombierrather than a long * and a struct *.
22387dd7cddfSDavid du Colombier*	- The VMS script files referenced IBSCAN instead of ISCAN2,
22397dd7cddfSDavid du Colombierand omitted GDEVXXF.
22407dd7cddfSDavid du Colombier*	- The UUENCODEd icons for the MS Windows platform were omitted
22417dd7cddfSDavid du Colombierfrom the fileset.
22427dd7cddfSDavid du Colombier*	- On MS-DOS systems, filenameforall didn't interpret * alone
22437dd7cddfSDavid du Colombieras a pattern matching all files.
22447dd7cddfSDavid du Colombier
22457dd7cddfSDavid du ColombierAdds wildcard matching capability to filenameforall under Unix.
22467dd7cddfSDavid du Colombier
22477dd7cddfSDavid du ColombierRemoves gp_file_status from the platform interface, since all
22487dd7cddfSDavid du Colombierplatforms provide identical stat calls in the C library.
22497dd7cddfSDavid du Colombier
22507dd7cddfSDavid du ColombierAdds DesqView/X (using djgcc and go32) as a platform.
22517dd7cddfSDavid du Colombier
22527dd7cddfSDavid du ColombierRemoves the S3 driver from the standard PC configurations.
22537dd7cddfSDavid du Colombier
22547dd7cddfSDavid du ColombierAdds documentation for compiling Ghostscript on the Intergraph Clipper.
22557dd7cddfSDavid du Colombier
22567dd7cddfSDavid du ColombierUpdates the documentation to add a better list of X Windows font
22577dd7cddfSDavid du Colombiernames for the Sun platform.
22587dd7cddfSDavid du Colombier
22593ff48bf5SDavid du Colombier</pre><h3><a name="V2.7b_Fonts"></a>Fonts</h3><pre>
22607dd7cddfSDavid du Colombier
22617dd7cddfSDavid du ColombierCreates an external file (gs_dbt_e.ps) with the ZapfDingbats encoding
22627dd7cddfSDavid du Colombier(actually in 2.6.1, but not documented there).
22637dd7cddfSDavid du Colombier
22647dd7cddfSDavid du ColombierChanges the names of the Cyrillic fonts to Shareware-Cyrillic-Regular
22657dd7cddfSDavid du Colombierand Shareware-Cyrillic-Italic, keeping Cyrillic, Cyrillic-Regular,
22667dd7cddfSDavid du Colombierand Cyrillic-Italic as aliases.
22677dd7cddfSDavid du Colombier
22687dd7cddfSDavid du Colombier* Removes the requirement that the FontName in the font file be the same
22697dd7cddfSDavid du Colombieras the name in Fontmap.  (This requirement led to the need for aliases,
22707dd7cddfSDavid du Colombierand was extremely confusing to users.)
22717dd7cddfSDavid du Colombier
22727dd7cddfSDavid du Colombier* Adds a GS_FONTPATH environment variable containing a list of directories
22737dd7cddfSDavid du Colombierthat should be scanned automatically for fonts.
22747dd7cddfSDavid du Colombier
22757dd7cddfSDavid du Colombier* Gets rid of the Ugly font, and changes the default to the IBM Courier
22767dd7cddfSDavid du Colombierfont, which is freely distributable.
22777dd7cddfSDavid du Colombier
22783ff48bf5SDavid du Colombier</pre><h3><a name="V2.7b_Interpreter"></a>Interpreter</h3><pre>
22797dd7cddfSDavid du ColombierFixes bugs:
22807dd7cddfSDavid du Colombier	- cvs didn't check for stack underflow.
22817dd7cddfSDavid du Colombier*	- zht2.c didn't include alloc.h.
22827dd7cddfSDavid du Colombier*	- execstackoverflow cleared the e-stack instead of just
22837dd7cddfSDavid du Colombiercutting it back.
22847dd7cddfSDavid du Colombier	- if and ifelse incorrectly reported typecheck instead of
22857dd7cddfSDavid du Colombierstackunderflow.
22867dd7cddfSDavid du Colombier	- Copying a dictionary could alter some items even if a later
22877dd7cddfSDavid du Colombieritem causes an invalidaccess error because of an attempted store of a
22887dd7cddfSDavid du Colombierlocal object into global VM.
22897dd7cddfSDavid du Colombier	- bitshift and cvrs assumed that longs occupied 32 bits.
22907dd7cddfSDavid du Colombier*	- exitserver didn't check the password, and always succeeded.
22917dd7cddfSDavid du Colombier	- Font loading didn't suppress all output messages if QUIET
22927dd7cddfSDavid du Colombierwas set.
22937dd7cddfSDavid du Colombier*	- The interpreter incorrectly pushed its exit procedure on
22947dd7cddfSDavid du Colombierthe e-stack if it was called again after an interrupt.
22957dd7cddfSDavid du Colombier*	- The interpreter didn't treat timeout like interrupt in
22967dd7cddfSDavid du Colombierterms of re-executing the current operation.
22977dd7cddfSDavid du Colombier*	- `show' operators popped their operands before they were
22987dd7cddfSDavid du Colombiersure they wouldn't be interrupted.
22997dd7cddfSDavid du Colombier*	- rotate with a matrix operand didn't check for multiples of
23007dd7cddfSDavid du Colombier90 degrees.
23017dd7cddfSDavid du Colombier	- In the system name table, ge was misspelled eg, and
23027dd7cddfSDavid du Colombierpathforall was misspelled pathfoall.
23037dd7cddfSDavid du Colombier*	- file_close_file attempted to free the buffer even if it was an
23047dd7cddfSDavid du Colombierexternally supplied string (specifically, the argument of gs_run_string).
23057dd7cddfSDavid du Colombier	- setprintername (in gs_statd.ps) set printername rather than
23067dd7cddfSDavid du Colombier.printername.
23077dd7cddfSDavid du Colombier
23087dd7cddfSDavid du ColombierImplements additional Level 2 features:
23097dd7cddfSDavid du Colombier	- Indexed color space with lookup procedure.
23107dd7cddfSDavid du Colombier	- sethalftone, except for the transfer function override,
23117dd7cddfSDavid du Colombier	and currenthalftone.
23127dd7cddfSDavid du Colombier
23137dd7cddfSDavid du ColombierImplements OtherSubrs for indices greater than 3 (required for
23147dd7cddfSDavid du ColombierMultiMaster fonts).
23157dd7cddfSDavid du Colombier
23167dd7cddfSDavid du ColombierImplements black generation and undercolor removal.
23177dd7cddfSDavid du Colombier
23187dd7cddfSDavid du ColombierChanges `store' from a C procedure to a PostScript procedure.
23197dd7cddfSDavid du Colombier
23207dd7cddfSDavid du ColombierChanges idiv back so it requires integer operands, per the Adobe
23217dd7cddfSDavid du Colombierdocumentation but not per some old Adobe interpreters.
23227dd7cddfSDavid du Colombier
23237dd7cddfSDavid du Colombier* Adds many new paper sizes to gs_statd.ps.  It now includes ISO a0-a10
23247dd7cddfSDavid du Colombierand b0-b10, and CAD sizes archA-archE.
23257dd7cddfSDavid du Colombier
23267dd7cddfSDavid du ColombierImplements `status' for non-%os% files.  (This is currently a no-op,
23277dd7cddfSDavid du Colombierbut the framework is there.)
23287dd7cddfSDavid du Colombier
23297dd7cddfSDavid du ColombierChanges the error handler so it normally uses = rather than == to print
23307dd7cddfSDavid du Colombierthe operand stack, to avoid recursive errors.
23317dd7cddfSDavid du Colombier
23327dd7cddfSDavid du Colombier* Adds time slicing capability to the interpreter.
23337dd7cddfSDavid du Colombier
23347dd7cddfSDavid du ColombierImplements setcolorscreen/currentcolorscreen.
23357dd7cddfSDavid du Colombier
23363ff48bf5SDavid du Colombier</pre><h3><a name="V2.7b_Library"></a>Library</h3><pre>
23377dd7cddfSDavid du ColombierFixes bugs:
23387dd7cddfSDavid du Colombier*	- Rectangles with vertices specified in clockwise order were
23397dd7cddfSDavid du Colombierdrawn as 0-width lines.
23407dd7cddfSDavid du Colombier*	- The string matching function reported that 'abcdefg'
23417dd7cddfSDavid du Colombiermatched the pattern 'abcde'.
23427dd7cddfSDavid du Colombier*	- The bounding box of non-rectangular clipping paths was not
23437dd7cddfSDavid du Colombierbeing marked as valid, so cached characters would simply get
23447dd7cddfSDavid du Colombierdiscarded as being outside the bounding box.
23457dd7cddfSDavid du Colombier	- erasepage filled the page with the device's white color,
23467dd7cddfSDavid du Colombiernot with gray level 1 passed through the transfer function.
23477dd7cddfSDavid du Colombier*	- Colors with equal R/G/B or C/M/Y components were rendered
23487dd7cddfSDavid du Colombierincorrectly if the 3 or 4 transfer functions were not all the same.
23497dd7cddfSDavid du Colombier*	- Because of a bug in rc_unshare, using CIE color would give
23507dd7cddfSDavid du Colombierrandom errors (such as /invalidaccess in --for--).
23517dd7cddfSDavid du Colombier*	- setbbox didn't round the coordinates properly, which could
23527dd7cddfSDavid du Colombiercause erroneous rangecheck errors with coordinates on the edge of the
23537dd7cddfSDavid du Colombierbox.
23547dd7cddfSDavid du Colombier*	- Color halftones "flipped over" at the 50% point, inverting
23557dd7cddfSDavid du Colombierforeground and background.
23567dd7cddfSDavid du Colombier	- Quite a few places assumed that longs occupied 32 bits.
23577dd7cddfSDavid du Colombier*	- kshow passed an incorrect c1 value to the procedure.
23587dd7cddfSDavid du Colombier	- The debugging code in update_x_list in gxfill.c didn't take
23597dd7cddfSDavid du Colombierinto account the possibility that the active line at x_first might be
23607dd7cddfSDavid du Colombierdeleted.
23617dd7cddfSDavid du Colombier	- gx_image_cached_char called the xfont render_char procedure an
23627dd7cddfSDavid du Colombierextra time if it failed with required=0 and succeeded with required=1.
23637dd7cddfSDavid du Colombier(This was just a small inefficiency, not a logic bug.)
23647dd7cddfSDavid du Colombier	- Non-rectangular clipping regions weren't computed correctly,
23657dd7cddfSDavid du Colombierbecause accum_add_rect didn't handle overlapping rectangles.
23667dd7cddfSDavid du Colombier	- Drivers didn't report file system errors (such as file system
23677dd7cddfSDavid du Colombierfull) as an ioerror.
23687dd7cddfSDavid du Colombier*	- setdevice didn't reset the charpath and setcachedevice flags.
23697dd7cddfSDavid du Colombier	- The Zortech compiler produced wrong code for the uid_equal
23707dd7cddfSDavid du Colombiermacro; uid_equal is now a procedure.
23717dd7cddfSDavid du Colombier
23727dd7cddfSDavid du ColombierPasses OtherSubrs arguments back to the caller correctly for indices
23737dd7cddfSDavid du Colombiergreater than 3.
23747dd7cddfSDavid du Colombier
23757dd7cddfSDavid du ColombierImplements black generation and undercolor removal.
23767dd7cddfSDavid du Colombier
23777dd7cddfSDavid du ColombierRemoves gdev_mem_ensure_byte_order, which was no longer used or useful.
23787dd7cddfSDavid du Colombier
23797dd7cddfSDavid du ColombierRemoves gstdev.c (device tracing), since it hasn't been used in a
23807dd7cddfSDavid du Colombierlong time and is of little value given a reasonable debugger.
23817dd7cddfSDavid du Colombier
23827dd7cddfSDavid du ColombierChanges the interface to the xfont char_metrics and render_char
23837dd7cddfSDavid du Colombierprocedures to allow them to return 1.
23847dd7cddfSDavid du Colombier
23857dd7cddfSDavid du ColombierChanges 32-bit memory devices so they use CMYK color mapping rather
23867dd7cddfSDavid du Colombierthan RGB mapping with an unused byte.
23877dd7cddfSDavid du Colombier
23887dd7cddfSDavid du ColombierImplements gs_setcolorscreen/currentcolorscreen.
23897dd7cddfSDavid du Colombier
23907dd7cddfSDavid du ColombierImplements Level 2 halftones, except for the transfer function override.
23917dd7cddfSDavid du Colombier
23927dd7cddfSDavid du ColombierImplements a hack to make zero-width rectangles display as one pixel wide,
23937dd7cddfSDavid du Colombierto work around a bug in the Microsoft Windows PostScript driver.
23947dd7cddfSDavid du ColombierCurrently the hack only works for vertical lines, not horizontal ones.
23957dd7cddfSDavid du Colombier
23963ff48bf5SDavid du Colombier</pre>
23977dd7cddfSDavid du Colombier
23983ff48bf5SDavid du Colombier<hr>
23993ff48bf5SDavid du Colombier
24003ff48bf5SDavid du Colombier<h2><a name="Version2.6.1"></a>Version 2.6.1 (5/28/93)</h2>
24013ff48bf5SDavid du Colombier
24023ff48bf5SDavid du Colombier<p>This is primarily a bug-fix release for 2.6, with a couple of minor
24037dd7cddfSDavid du Colombieradditions.
24047dd7cddfSDavid du Colombier
24053ff48bf5SDavid du Colombier<h3><a name="V2.6.1_Documentation"></a>Documentation</h3><pre>
24067dd7cddfSDavid du Colombier
24077dd7cddfSDavid du ColombierAdds proper `man' pages ansi2knr.1 and gs.1.
24087dd7cddfSDavid du Colombier
24093ff48bf5SDavid du Colombier</pre><h3><a name="V2.6.1_Procedures"></a>Procedures</h3><pre>
24107dd7cddfSDavid du ColombierFixes bugs:
24117dd7cddfSDavid du Colombier	- The Unix makefile produced an incorrect linker command if
24127dd7cddfSDavid du ColombierEXTRALIBS was not empty.
24137dd7cddfSDavid du Colombier	- The Unix install commands didn't copy devices.doc,
24147dd7cddfSDavid du Colombierps2epsi.doc, and xfonts.doc to the documentation directory.
24157dd7cddfSDavid du Colombier	- echogs.c didn't include &lt;sys/types.h&gt;, which is needed for
24167dd7cddfSDavid du Colombiertime_t on some systems.
24177dd7cddfSDavid du Colombier	- malloc_.h used &lt;malloc.h&gt; rather than &lt;stdlib.h&gt; on
24187dd7cddfSDavid du ColombierNeXTStep systems.
24197dd7cddfSDavid du Colombier
24207dd7cddfSDavid du ColombierChanges the configuration procedure to use a C program rather than
24217dd7cddfSDavid du Colombiercomplex shell scripts.
24227dd7cddfSDavid du Colombier
24233ff48bf5SDavid du Colombier</pre><h3><a name="V2.6.1_Utilities"></a>Utilities</h3><pre>
24247dd7cddfSDavid du ColombierFixes bugs:
24257dd7cddfSDavid du Colombier	- The boilerplate produced by ps2image used the 'max'
24267dd7cddfSDavid du Colombieroperator, which is not a standard PostScript operator.
24277dd7cddfSDavid du Colombier	- The winmaps.ps utility had 'floring' instead of 'florin' in
24287dd7cddfSDavid du Colombierthe OEMEncoding table.
24297dd7cddfSDavid du Colombier	- quit.ps was omitted from the PC distribution.
24307dd7cddfSDavid du Colombier
24317dd7cddfSDavid du ColombierChanges the name of the dicttomark procedure to .dicttomark.
24327dd7cddfSDavid du Colombier
24337dd7cddfSDavid du ColombierRenames gs_2asc.ps as ps2ascii.ps, so it matches the names of the
24347dd7cddfSDavid du Colombierscript files.
24357dd7cddfSDavid du Colombier
24363ff48bf5SDavid du Colombier</pre><h3><a name="V2.6.1_Drivers"></a>Drivers</h3><pre>
24377dd7cddfSDavid du ColombierFixes bugs:
24387dd7cddfSDavid du Colombier	- The pbmraw driver was writing out RGG instead of RGB values.
24397dd7cddfSDavid du Colombier	- The X11 driver used NULL in a place where it should have
24407dd7cddfSDavid du Colombierused None.
24417dd7cddfSDavid du Colombier	- For multi-file output, the GIF driver didn't write a header
24427dd7cddfSDavid du Colombierat the beginning of each file.
24437dd7cddfSDavid du Colombier	- The Epson driver didn't honor the -A4 compilation switch,
24447dd7cddfSDavid du Colombierdidn't put (0,0) at the physical corner of the page, and was too
24457dd7cddfSDavid du Colombierliberal about using tabs instead of spaces.
24467dd7cddfSDavid du Colombier
24477dd7cddfSDavid du ColombierReplaces the color handling algorithms in the X Windows driver with
24487dd7cddfSDavid du Colombiernew, much better ones.
24497dd7cddfSDavid du Colombier
24507dd7cddfSDavid du ColombierMakes the PC display drivers recognize the -A4 compilation switch,
24517dd7cddfSDavid du Colombierlike the printer drivers.
24527dd7cddfSDavid du Colombier
24537dd7cddfSDavid du ColombierAdds new user-contributed drivers:
24547dd7cddfSDavid du Colombier	- A driver for Epson printers that use the ESC/P 2 control
24557dd7cddfSDavid du Colombierlanguage, such as the Stylus 800.
24567dd7cddfSDavid du Colombier	- A driver for the Apple Dot Matrix Printer and Imagewriter.
24577dd7cddfSDavid du Colombier
24587dd7cddfSDavid du ColombierAdds a new get_xfont_device driver procedure.  This is a
24597dd7cddfSDavid du Colombierbackward-compatible change, since there is a sensible default.
24607dd7cddfSDavid du Colombier
24613ff48bf5SDavid du Colombier</pre><h3><a name="V2.6.1_Platforms"></a>Platforms</h3><pre>
24627dd7cddfSDavid du ColombierFixes bugs:
24637dd7cddfSDavid du Colombier	- On VMS, gconfig.h didn't have #include "gsconfig.h" as its
24647dd7cddfSDavid du Colombierfirst line.
24657dd7cddfSDavid du Colombier	- gconfig.c compiled incorrectly on the RS/6000 because the
24667dd7cddfSDavid du Colombiercompiler evaluated a constant of the form (x&lt;&lt;y)+z incorrectly.
24677dd7cddfSDavid du Colombier	- Quite a few files that used the mem... functions didn't
24687dd7cddfSDavid du Colombierinclude memory_.h, which caused trouble on some bsd4.2 systems.
24697dd7cddfSDavid du Colombier	- The definition of zfont_char_xglyph confused one of the AIX
24707dd7cddfSDavid du Colombiercompilers.
24717dd7cddfSDavid du Colombier	- On VMS, DEC C allows extra arguments for fopen, but gcc doesn't.
24727dd7cddfSDavid du Colombier	- On the MS Windows platform, 2.6 used gdevwddb rather than
24737dd7cddfSDavid du Colombiergdevwdib; the latter is almost always faster.
24747dd7cddfSDavid du Colombier	- The PC .zip files didn't include the Windows .ICO and .RES
24757dd7cddfSDavid du Colombierfiles in either GSEXE.ZIP or GSFILES.ZIP.
24767dd7cddfSDavid du Colombier
24777dd7cddfSDavid du ColombierOn PC platforms, adds an option (FPU_TYPE=-1) to optimize for
24787dd7cddfSDavid du Colombiermachines lacking a floating point processor.
24797dd7cddfSDavid du Colombier
24803ff48bf5SDavid du Colombier</pre><h3><a name="V2.6.1_Fonts"></a>Fonts</h3><pre>
24817dd7cddfSDavid du Colombier
24827dd7cddfSDavid du ColombierAdds 4 new fonts contributed by URW.  These have a URW copyright and
24837dd7cddfSDavid du Colombierare governed by the GNU License.
24847dd7cddfSDavid du Colombier
24857dd7cddfSDavid du ColombierDocuments the fact that font names in Fontmap can be strings, not
24867dd7cddfSDavid du Colombieronly names.
24877dd7cddfSDavid du Colombier
24887dd7cddfSDavid du ColombierAdds DingbatsEncoding as a predefined encoding (in addition to
24897dd7cddfSDavid du ColombierStandard, ISOLatin1, and Symbol).
24907dd7cddfSDavid du Colombier
24913ff48bf5SDavid du Colombier</pre><h3><a name="V2.6.1_Interpreter"></a>Interpreter</h3><pre>
24927dd7cddfSDavid du ColombierFixes bugs:
24937dd7cddfSDavid du Colombier	- memchr (used in zfile.c) isn't available on all platforms.
24947dd7cddfSDavid du Colombier	- languagelevel was defined as an operator rather than an
24957dd7cddfSDavid du Colombierinteger.
24967dd7cddfSDavid du Colombier	- iccfont.c referred to name_StandardEncoding instead of
24977dd7cddfSDavid du Colombier#include'ing font.h and referring just to StandardEncoding.
24987dd7cddfSDavid du Colombier	- The CCITTFaxDecode filter didn't work on 32- (or 64-) bit
24997dd7cddfSDavid du Colombiermachines, because of a bug in more_bits().
25007dd7cddfSDavid du Colombier	- The structures recording an allocation within the scope of
25017dd7cddfSDavid du Colombiera save could get allocated unnecessarily, because they weren't
25027dd7cddfSDavid du Colombierproperly marked as free when an array was freed.
25037dd7cddfSDavid du Colombier
25047dd7cddfSDavid du ColombierRenames the following Ghostscript-specific operators by adding a '.'
25057dd7cddfSDavid du Colombierat the front: makeoperator, setdebug, setmaxlength, stringmatch,
25067dd7cddfSDavid du Colombiertype1decrypt, type1encrypt.
25077dd7cddfSDavid du Colombier
25087dd7cddfSDavid du ColombierAdds a real implementation of glyphshow.
25097dd7cddfSDavid du Colombier
25103ff48bf5SDavid du Colombier</pre><h3><a name="V2.6.1_Library"></a>Library</h3><pre>
25117dd7cddfSDavid du ColombierFixes bugs:
25127dd7cddfSDavid du Colombier	- Discarding fractional character coordinates in the Type 1
25137dd7cddfSDavid du Colombierrasterizer led to some rendering anomalies (e.g., characters 1 pixel
25147dd7cddfSDavid du Colombiertoo high).
25157dd7cddfSDavid du Colombier	- If a font had a non-standard encoding (i.e., not
25167dd7cddfSDavid du ColombierStandardEncoding, ISOLatin1Encoding, or SymbolEncoding), Ghostscript
25177dd7cddfSDavid du Colombierwould never invoke the platform font code.
25187dd7cddfSDavid du Colombier	- The RGB to HSB color conversion algorithms produced
25197dd7cddfSDavid du Colombiernonsensical values.
25207dd7cddfSDavid du Colombier	- struct cached_char_s was defined redundantly in gxcdir.h,
25217dd7cddfSDavid du Colombiercausing compilation problems on some systems.
25227dd7cddfSDavid du Colombier	- 32-bit color devices didn't work properly on little-endian
25237dd7cddfSDavid du Colombiermachines (arrange_bytes in gdevmem2 was wrong).
25247dd7cddfSDavid du Colombier	- The scaled font cache could confuse two fonts with the same
25257dd7cddfSDavid du ColombierUniqueID and different Encodings.
25267dd7cddfSDavid du Colombier	- Under many common circumstances (first use of a character
25277dd7cddfSDavid du Colombierwas with stringwidth, the font was renamed, the font encoding was
25287dd7cddfSDavid du Colombierchanged), xfonts would not be used.
25297dd7cddfSDavid du Colombier
25307dd7cddfSDavid du ColombierAdds gs_glyphshow.
25317dd7cddfSDavid du Colombier
25323ff48bf5SDavid du Colombier</pre>
25337dd7cddfSDavid du Colombier
25343ff48bf5SDavid du Colombier<h2><a name="Version2.6"></a>Version 2.6 (5/9/93)</h2>
25353ff48bf5SDavid du Colombier
25363ff48bf5SDavid du Colombier<p>The main new feature in this release is the ability to use platform
25377dd7cddfSDavid du Colombierfonts.  It also adds many more Level 2 PostScript facilities.
25387dd7cddfSDavid du Colombier
25393ff48bf5SDavid du Colombier<h3><a name="V2.6_Documentation"></a>Documentation</h3><pre>
25407dd7cddfSDavid du Colombier
25417dd7cddfSDavid du ColombierCorrects some errors in the documentation of the makeimagedevice operator.
25427dd7cddfSDavid du Colombier
25437dd7cddfSDavid du ColombierAdds operand and result types to the comments at the beginning of all the
25447dd7cddfSDavid du Colombieroperators.
25457dd7cddfSDavid du Colombier
25467dd7cddfSDavid du ColombierAdds new sections on installation in use.doc.
25477dd7cddfSDavid du Colombier
25487dd7cddfSDavid du ColombierReinstates history.doc as a repository for old and no longer interesting
25497dd7cddfSDavid du Colombierhistory information.
25507dd7cddfSDavid du Colombier
25517dd7cddfSDavid du ColombierAdds a new file, devices.doc, with documentation for specific devices.
25527dd7cddfSDavid du Colombier
25537dd7cddfSDavid du ColombierPoints out that font2c must be run with a Fontmap that includes the fonts
25547dd7cddfSDavid du Colombierbeing converted, and that its arguments must be quoted with "" on VMS
25557dd7cddfSDavid du Colombiersystems.
25567dd7cddfSDavid du Colombier
25577dd7cddfSDavid du ColombierNotes that the font name in the Fontmap must be the same as the FontName
25587dd7cddfSDavid du Colombierin the font.
25597dd7cddfSDavid du Colombier
25607dd7cddfSDavid du ColombierAdds a list of the Level 2 facilities not provided by Ghostscript.
25617dd7cddfSDavid du Colombier
25627dd7cddfSDavid du ColombierIdentifies bug-ghostscript@prep.ai.mit.edu as an alias for the
25637dd7cddfSDavid du Colombiergnu.ghostscript.bug newsgroup.
25647dd7cddfSDavid du Colombier
25657dd7cddfSDavid du ColombierPoints out explicitly that -sOutputFile=- sends output to stdout, and
25667dd7cddfSDavid du Colombierrequires using the -q switch.
25677dd7cddfSDavid du Colombier
25687dd7cddfSDavid du ColombierDocuments the use of tar_cat to construct the Unix makefiles.
25697dd7cddfSDavid du Colombier
25707dd7cddfSDavid du ColombierAdds a new file, xfonts.doc, that describes the external font interface.
25717dd7cddfSDavid du Colombier
25727dd7cddfSDavid du ColombierDocuments the fact that drivers must use gs_malloc and gs_free rather than
25737dd7cddfSDavid du Colombiermalloc and free.
25747dd7cddfSDavid du Colombier
25757dd7cddfSDavid du ColombierDocuments the *.sh (shell script) files.
25767dd7cddfSDavid du Colombier
25777dd7cddfSDavid du ColombierAdds brief documentation on some additional development tool .ps files.
25787dd7cddfSDavid du Colombier
25797dd7cddfSDavid du ColombierDocuments the TEMP and GS_OPTIONS environment variable.
25807dd7cddfSDavid du Colombier
25817dd7cddfSDavid du ColombierPoints out the need to run Windows in 386 Enhanced mode on machines
25827dd7cddfSDavid du Colombierthat have less than 6 Mb of RAM.
25837dd7cddfSDavid du Colombier
25847dd7cddfSDavid du ColombierConsolidates documentation on compiler switches in make.doc (some of
25857dd7cddfSDavid du Colombierit had been in the unix*.mak files).
25867dd7cddfSDavid du Colombier
25873ff48bf5SDavid du Colombier</pre><h3><a name="V2.6_Procedures"></a>Procedures</h3><pre>
25887dd7cddfSDavid du ColombierFixes bugs:
25897dd7cddfSDavid du Colombier	- \'s in arguments following -- were doubled.
25907dd7cddfSDavid du Colombier
25917dd7cddfSDavid du ColombierIncludes the full set of filters automatically if the level2 feature
25927dd7cddfSDavid du Colombieris selected.
25937dd7cddfSDavid du Colombier
25947dd7cddfSDavid du ColombierExtends DEVICE_DEVS... up to DEVS9.  Adds DEVICE_DEVS1 as well.
25957dd7cddfSDavid du Colombier
25967dd7cddfSDavid du ColombierRenames turboc.mak and tbcplus.mak as tc.mak and bc.mak.
25977dd7cddfSDavid du Colombier
25987dd7cddfSDavid du ColombierMakes @-files use the library path (GS_LIB, -I).
25997dd7cddfSDavid du Colombier
26007dd7cddfSDavid du ColombierChanged the Unix install script to use install &lt;file&gt; &lt;destfile&gt;
26017dd7cddfSDavid du Colombierrather than install &lt;file&gt; &lt;directory&gt;.
26027dd7cddfSDavid du Colombier
26037dd7cddfSDavid du ColombierAdds a GS_OPTIONS environment variable that acts like an implicit @-file
26047dd7cddfSDavid du Colombierat the beginning of the command line (i.e., may contain switches and
26057dd7cddfSDavid du Colombierinitialization files).
26067dd7cddfSDavid du Colombier
26077dd7cddfSDavid du ColombierRenames sym__enc.ps as gs_sym_e.ps.
26087dd7cddfSDavid du Colombier
26097dd7cddfSDavid du ColombierAdds a user-contributed shell script for using Ghostscript with an
26107dd7cddfSDavid du ColombierH-P printer spooler.
26117dd7cddfSDavid du Colombier
26127dd7cddfSDavid du ColombierAdds level1.ps to the set of installed utility files.
26137dd7cddfSDavid du Colombier
26147dd7cddfSDavid du ColombierExtends the TEMP environment variable (the directory for scratch
26157dd7cddfSDavid du Colombierfiles) to work on Unix as well as MS-DOS.
26167dd7cddfSDavid du Colombier
26177dd7cddfSDavid du ColombierChanges the MS Windows makefile to generate gswin.exe rather than
26187dd7cddfSDavid du Colombiergs.exe, and the Watcom makefile to generate gs386.exe.
26197dd7cddfSDavid du Colombier
26207dd7cddfSDavid du ColombierMoves the "product" string from gs_init.ps to iinit.c.
26217dd7cddfSDavid du Colombier
26227dd7cddfSDavid du ColombierAdds a GS macro to the makefiles, to allow choosing the name of the
26237dd7cddfSDavid du Colombierexecutable.
26247dd7cddfSDavid du Colombier
26253ff48bf5SDavid du Colombier</pre><h3><a name="V2.6_Utilities"></a>Utilities</h3><pre>
26267dd7cddfSDavid du ColombierFixes bugs:
26277dd7cddfSDavid du Colombier*	- font2c did the wrong thing (still) for fonts that didn't
26287dd7cddfSDavid du Colombieruse StandardEncoding, ISOLatin1Encoding, or SymbolEncoding.
26297dd7cddfSDavid du Colombier*	- impath.ps had a fatal bug (wrong operand order for
26307dd7cddfSDavid du Colombiercharstack_write) that caused bdftops to fail.
26317dd7cddfSDavid du Colombier	- gslp didn't wrap or truncate lines.
26327dd7cddfSDavid du Colombier	- gslp didn't handle tabs in a second or subsequent column
26337dd7cddfSDavid du Colombierproperly.
26347dd7cddfSDavid du Colombier	- The definition of ashow in gs_2asc.ps incorrectly undid the
26357dd7cddfSDavid du Colombierincrement following the last character.
26367dd7cddfSDavid du Colombier	- The definition of awidthshow in gs_2asc.ps failed to pop
26377dd7cddfSDavid du Colombiertwo entries from the stack, and also tested the character against the
26387dd7cddfSDavid du Colombierwrong value.
26397dd7cddfSDavid du Colombier
26407dd7cddfSDavid du ColombierAdds a shell script (sysvlp.sh) that interfaces Ghostscript with the
26417dd7cddfSDavid du ColombierSystem V 3.2 lp interface.
26427dd7cddfSDavid du Colombier
26437dd7cddfSDavid du ColombierAdds ps2ascii and ps2epsi script/batch files.
26447dd7cddfSDavid du Colombier
26457dd7cddfSDavid du ColombierAdds a new utility, mergeini.ps, for concatenating all the
26467dd7cddfSDavid du ColombierGhostscript initialization files into a single file, optionally
26477dd7cddfSDavid du Colombierremoving comments and blank lines.
26487dd7cddfSDavid du Colombier
26497dd7cddfSDavid du ColombierAdds new switches to gslp:
26507dd7cddfSDavid du Colombier	-q: suppress all printed output.
26517dd7cddfSDavid du Colombier	--detect: check whether the file begins with %!, and if so,
26527dd7cddfSDavid du Colombier	    interpret it directly as a PostScript file.
26537dd7cddfSDavid du Colombier	--first-page &lt;page#&gt;: replaces the former -P switch.
26547dd7cddfSDavid du Colombier	--last-page &lt;page#&gt;: replaces the former -Q switch.
26557dd7cddfSDavid du Colombier	--(heading|footing)-(left|center|right) &lt;string&gt;: define
26567dd7cddfSDavid du Colombier	    headers/footers.  # inserts the page number.
26577dd7cddfSDavid du Colombier	--margin-(top|bottom|left|right) &lt;inches&gt;: define margins.
26587dd7cddfSDavid du Colombier	--spacing &lt;n&gt;: for double, triple, etc. spacing.
26597dd7cddfSDavid du ColombierAlso makes gslp ignore all the enscript flags it doesn't implement.
26607dd7cddfSDavid du Colombier
26617dd7cddfSDavid du ColombierAdds an option to wrfont.ps to do encryption at read-in time.  (This
26627dd7cddfSDavid du Colombierallows much better compression of the standard Ghostscript fonts.)
26637dd7cddfSDavid du ColombierChanges bdftops to use this option.
26647dd7cddfSDavid du Colombier
26657dd7cddfSDavid du ColombierChanges gslp to accept wild cards in file names.
26667dd7cddfSDavid du Colombier
26677dd7cddfSDavid du ColombierReplaces landscap.ps with a new one contributed by a user.
26687dd7cddfSDavid du Colombier
26697dd7cddfSDavid du ColombierChanges the compression scheme used in ps2image to a much more
26707dd7cddfSDavid du Colombiereffective one.  Writing images is much slower than with the previous
26717dd7cddfSDavid du Colombierscheme, but reading is not.
26727dd7cddfSDavid du Colombier
26733ff48bf5SDavid du Colombier</pre><h3><a name="V2.6_Platforms"></a>Platforms</h3><pre>
26747dd7cddfSDavid du ColombierFixes bugs:
26757dd7cddfSDavid du Colombier	- SCFDTAB and SCFTAB were omitted from the VMS module lists.
26767dd7cddfSDavid du Colombier	- Function prototypes were not being used with the Watcom
26777dd7cddfSDavid du Colombiercompiler.
26787dd7cddfSDavid du Colombier	- On MS-DOS platforms, if the value of the TEMP variable had
26797dd7cddfSDavid du Colombiera trailing : or \, Ghostscript appended a \ anyway.
26807dd7cddfSDavid du Colombier	- Under Windows, changing the size or resolution of the image
26817dd7cddfSDavid du Colombierclosed and reopened the window.
26827dd7cddfSDavid du Colombier	- Ghostscript would not build correctly with the Watcom compiler
26837dd7cddfSDavid du Colombierif DOS4G=quiet was not set, because the DOS4GW copyright message was sent
26847dd7cddfSDavid du Colombierto stdout.
26857dd7cddfSDavid du Colombier*	- Finally gets Ghostscript to run properly on the RS/6000, by
26867dd7cddfSDavid du Colombieradding a compiler bug workaround to arc_add and arc_either.
26877dd7cddfSDavid du Colombier*	- Finally gets Ghostscript to compile properly on Sun SPARC
26887dd7cddfSDavid du Colombiersystems, by adding a compiler bug workaround in scan_number.
26897dd7cddfSDavid du Colombier
26907dd7cddfSDavid du ColombierChanges the default MS-DOS configuration from 8086/8088 to 80286.
26917dd7cddfSDavid du Colombier
26927dd7cddfSDavid du ColombierAdds all the SuperVGA drivers to the BC++ and Watcom executables
26937dd7cddfSDavid du Colombier(except for the VESA driver in the Watcom executable).
26947dd7cddfSDavid du Colombier
26957dd7cddfSDavid du ColombierAdds a makefile (msc.mak) for the Microsoft C/C++ 7.0 platform.  This
26967dd7cddfSDavid du Colombieris currently a MS-DOS, not a MS Windows, platform.
26977dd7cddfSDavid du Colombier
26987dd7cddfSDavid du ColombierChanges gp_enumerate_files_init so it takes a gs_memory_procs *, not
26997dd7cddfSDavid du Colombierseparate proc_alloc_t and proc_free_t arguments; also, it must
27007dd7cddfSDavid du Colombierenumerate precisely the requested set of files, not a superset.  THIS
27017dd7cddfSDavid du ColombierIS A NON-BACKWARD-COMPATIBLE CHANGE.  It affects all gp_*.c files.
27027dd7cddfSDavid du Colombier
27037dd7cddfSDavid du ColombierAdds the P*M drivers and bit.dev to the standard configuration on
27047dd7cddfSDavid du ColombierUnix platforms.
27057dd7cddfSDavid du Colombier
27067dd7cddfSDavid du ColombierChanges the Watcom makefile so it uses the WATCOM environment variable (by
27077dd7cddfSDavid du Colombierdefault) as the base directory for the Watcom executables.
27087dd7cddfSDavid du Colombier
27097dd7cddfSDavid du ColombierAdds the MS Windows COMMDLG.DLL and SHELL.DLL files to the set of
27107dd7cddfSDavid du Colombierfiles incorporated in GSEXE.ZIP, since the new MS Windows code uses
27117dd7cddfSDavid du Colombierthem, and they aren't provided with Windows 3.0.
27127dd7cddfSDavid du Colombier
27137dd7cddfSDavid du ColombierMakes major revisions to the MS Windows platform and driver code, to
27147dd7cddfSDavid du Colombiersupport the gsview front end, and also to remove the dependence on the
27157dd7cddfSDavid du ColombierBorland EasyWin library.  NOTE: Compiling the MS Windows code now requires
27167dd7cddfSDavid du ColombierBorland C++ 3.1 (not 3.0).
27177dd7cddfSDavid du Colombier
27187dd7cddfSDavid du ColombierChanges time_.h so that Ghostscript will compile and run on A/UX.
27197dd7cddfSDavid du Colombier
27207dd7cddfSDavid du ColombierChanges the MS-DOS implementation of file enumeration so it always
27217dd7cddfSDavid du Colombiertreats \s in the file name as literal characters, not escapes, unless
27227dd7cddfSDavid du Colombierthere are two \\s in a row.  This does the most sensible thing given
27237dd7cddfSDavid du Colombierthe DOS file naming conventions.
27247dd7cddfSDavid du Colombier
27257dd7cddfSDavid du ColombierAdds a %pipe% file device under Unix.
27267dd7cddfSDavid du Colombier
27277dd7cddfSDavid du ColombierAdds a makefile for Watcom C under MS Windows.  This is very preliminary;
27287dd7cddfSDavid du Colombierin particular, NO display output is supported.
27297dd7cddfSDavid du Colombier
27303ff48bf5SDavid du Colombier</pre><h3><a name="V2.6_Fonts"></a>Fonts</h3><pre>
27317dd7cddfSDavid du ColombierFixes bugs:
27327dd7cddfSDavid du Colombier	- fonts.mak referred to ncri and puti rather than ncrri and
27337dd7cddfSDavid du Colombierputri.
27347dd7cddfSDavid du Colombier	- cyr and cyri had the wrong protection.
27357dd7cddfSDavid du Colombier	- The Hershey fonts left the font on the stack when they were
27367dd7cddfSDavid du Colombierloaded.
27377dd7cddfSDavid du Colombier*	- The FontName of an aliased font was the original FontName
27387dd7cddfSDavid du Colombierfrom the file, not the alias.
27397dd7cddfSDavid du Colombier*	- Fontmap.BTS had incorrect entries for AvantGarde-Demi and
27407dd7cddfSDavid du ColombierAvantGarde-DemiOblique.
27417dd7cddfSDavid du Colombier	- Ghostscript pushed userdict, rather than an empty writable
27427dd7cddfSDavid du Colombierdictionary, onto the stack when loading a font, leading to name clashes.
27437dd7cddfSDavid du Colombier
27447dd7cddfSDavid du ColombierAdds a new cfonts.mak with a full set of rules for compiling all the
27457dd7cddfSDavid du Colombierstandard Ghostscript fonts (except the Hershey fonts) into C.
27467dd7cddfSDavid du Colombier
27477dd7cddfSDavid du ColombierAdds UniqueIDs to the Hershey fonts, and removes the UniqueIDs from
27487dd7cddfSDavid du Colombierthe Hershey entries in the Fontmap.
27497dd7cddfSDavid du Colombier
27507dd7cddfSDavid du ColombierAdds a new Fontmap for VAX/VMS with DECWindows/Motif.
27517dd7cddfSDavid du Colombier
27527dd7cddfSDavid du ColombierChanges MakeHersheyFont so it takes the encoding as an additional
27537dd7cddfSDavid du Colombierparameter, and changes the Hershey-Symbol font to use SymbolEncoding.
27547dd7cddfSDavid du Colombier
27553ff48bf5SDavid du Colombier</pre><h3><a name="V2.6_Drivers"></a>Drivers</h3><pre>
27567dd7cddfSDavid du ColombierFixes bugs:
27577dd7cddfSDavid du Colombier	- The !@*&amp;^%#@$ PCL drivers *still* didn't do the right thing
27587dd7cddfSDavid du Colombierabout vertical spacing: the &lt;ESC&gt;*p+&lt;n&gt;Y command works on all PCL 3,
27597dd7cddfSDavid du Colombier4, and 5 printers *except* the LaserJet IIp.
27607dd7cddfSDavid du Colombier	- The cdj driver used recursive macros (height, t_margin,
27617dd7cddfSDavid du Colombierb_margin) that not all compilers handled correctly.
27627dd7cddfSDavid du Colombier	- The djtc driver used some assignments including =*, which
27637dd7cddfSDavid du Colombiersome compilers dislike.
27647dd7cddfSDavid du Colombier	- The S3 driver wouldn't compile correctly with the Watcom
27657dd7cddfSDavid du Colombiercompiler.
27667dd7cddfSDavid du Colombier	- The makefile entry for the S3 driver was wrong.
27677dd7cddfSDavid du Colombier	- The SuperVGA drivers returned an error, rather than using
27687dd7cddfSDavid du Colombierthe highest available resolution, if a too-high resolution was
27697dd7cddfSDavid du Colombierrequested.
27707dd7cddfSDavid du Colombier	- The GIF driver produced an incorrect header for images
27717dd7cddfSDavid du Colombierwider or taller than 32K pixels.
27727dd7cddfSDavid du Colombier	- The GIF driver wasn't able to handle multi-page documents
27737dd7cddfSDavid du Colombiercorrectly.
27747dd7cddfSDavid du Colombier	- The margins on the DeskJet were still not correct.
27757dd7cddfSDavid du Colombier	- Some ANSI C compilers rejected a complex expression in
27767dd7cddfSDavid du Colombiergdevpccm.c.
27777dd7cddfSDavid du Colombier	- Printer drivers didn't recover cleanly from problems in
27787dd7cddfSDavid du Colombieropening the scratch files.
27797dd7cddfSDavid du Colombier	- The BJ-10e driver used the same name `out' for a label and
27807dd7cddfSDavid du Colombiera variable.
27817dd7cddfSDavid du Colombier	- The SCO ODT compiler couldn't handle sizeof(ppdev-&gt;fname).
27827dd7cddfSDavid du Colombier	- The Epson driver used the wrong value for ESC in the
27837dd7cddfSDavid du Colombierinitialization string.
27847dd7cddfSDavid du Colombier
27857dd7cddfSDavid du ColombierAdds new drivers:
27867dd7cddfSDavid du Colombier	- Drivers to produce MS Windows .BMP format output.
27877dd7cddfSDavid du Colombier	- A new ATI Wonder display driver (800x600, 16 colors) and a
27887dd7cddfSDavid du Colombier1024x768 mode for the existing driver.
27897dd7cddfSDavid du Colombier
27907dd7cddfSDavid du ColombierAdds new user-contributed drivers:
27917dd7cddfSDavid du Colombier	- A driver for the Tektronix 4693d color printer.  This carries a
27927dd7cddfSDavid du Colombieruniversity copyright.
27937dd7cddfSDavid du Colombier	- A driver for the SPARCprinter.
27947dd7cddfSDavid du Colombier	- A driver for the Canon BJ200 printer.
27957dd7cddfSDavid du Colombier	- A driver for the IBM ProPrinter.
27967dd7cddfSDavid du Colombier	- A driver for the DEC LJ250 printer, which has a
27977dd7cddfSDavid du ColombierPaintJet-compatible mode.
27987dd7cddfSDavid du Colombier	- A replacement driver for the Sony NWP533.
27997dd7cddfSDavid du Colombier	- A driver that writes TIFF/F (Group 3 fax) files.  This carries
28007dd7cddfSDavid du Colombieran external copyright.
28017dd7cddfSDavid du Colombier	- A driver for the C.Itoh M8510 printer.
28027dd7cddfSDavid du Colombier	- A driver for the Okidata MicroLine 182 9-pin dot-matrix printer.
28037dd7cddfSDavid du Colombier	- A Hercules Graphics driver.
28047dd7cddfSDavid du Colombier	- A driver for printers under MS Windows.
28057dd7cddfSDavid du Colombier	- A driver for direct frame buffer addressing under SCO Unix
28067dd7cddfSDavid du Colombierand Xenix and AT&amp;T SVR4.
28077dd7cddfSDavid du Colombier
28087dd7cddfSDavid du ColombierChanges the get_bits driver procedure so it always reads a single
28097dd7cddfSDavid du Colombierscan line, and optionally does not copy the data.  THIS IS A
28107dd7cddfSDavid du ColombierNON-BACKWARD-COMPATIBLE CHANGE.  However, this change does not affect
28117dd7cddfSDavid du Colombierany existing printer driver, since these all go through intermediate
28127dd7cddfSDavid du Colombierroutines in gdevprn.c.
28137dd7cddfSDavid du Colombier
28147dd7cddfSDavid du ColombierChanges gdevprn.h, and the relevant printer drivers, so that -DA4
28157dd7cddfSDavid du Colombierwill change the default paper size for any printer driver.
28167dd7cddfSDavid du Colombier
28177dd7cddfSDavid du ColombierAllows the use of NULL or 0 for default procedures in the driver
28187dd7cddfSDavid du Colombierprocedure vector.
28197dd7cddfSDavid du Colombier
28207dd7cddfSDavid du ColombierAdds an optional map_cmyk_color procedure to the driver procedure
28217dd7cddfSDavid du Colombiervector.
28227dd7cddfSDavid du Colombier
28237dd7cddfSDavid du ColombierChanges the Epson driver so that the minimum amount of white space
28247dd7cddfSDavid du Colombierrequired to use a tab is an easily changed parameter.
28257dd7cddfSDavid du Colombier
28267dd7cddfSDavid du ColombierChanges the BGI driver to use separate segments for the Borland
28277dd7cddfSDavid du Colombierdevice drivers, to reduce the risk of overflowing a segment.
28287dd7cddfSDavid du Colombier
28297dd7cddfSDavid du ColombierAdds an optimization option (normally enabled) to the PGM and PPM drivers
28307dd7cddfSDavid du Colombiersuch that they revert to PBM or (for PPM) PGM if the page can be
28317dd7cddfSDavid du Colombierrepresented that way.
28327dd7cddfSDavid du Colombier
28337dd7cddfSDavid du ColombierAdds a new (optional) driver procedure to get the procedure vector
28347dd7cddfSDavid du Colombierfor external fonts.
28357dd7cddfSDavid du Colombier
28367dd7cddfSDavid du ColombierAdds an argument to gp_open_printer to indicate whether the file should be
28377dd7cddfSDavid du Colombieropened in binary or text mode.  THIS IS A NON-BACKWARD-COMPATIBLE CHANGE.
28387dd7cddfSDavid du ColombierHowever, this change does not affect any existing printer driver, since
28397dd7cddfSDavid du Colombierthese all go through intermediate routines in gdevprn.c.
28407dd7cddfSDavid du Colombier
28417dd7cddfSDavid du ColombierChanges the LN03/LA50/LA75 driver so it uses a text record mode to open
28427dd7cddfSDavid du Colombierthe output file under VMS (by adding an argument to gp_open_printer to
28437dd7cddfSDavid du Colombierindicate this.)
28447dd7cddfSDavid du Colombier
28457dd7cddfSDavid du ColombierAllows (indeed, encourages) drivers to use far_data to declare the device
28467dd7cddfSDavid du Colombierstructure, primarily to avoid overflowing the 64K data segment under MS
28477dd7cddfSDavid du ColombierWindows.  Changes the file output drivers and many of the printer drivers
28487dd7cddfSDavid du Colombierto declare their device structures as far_data.
28497dd7cddfSDavid du Colombier
28507dd7cddfSDavid du ColombierReplaces the AT&amp;T 3B1 driver with an updated version (from the same
28517dd7cddfSDavid du Colombiercontributor).
28527dd7cddfSDavid du Colombier
28537dd7cddfSDavid du ColombierChanges the Epson BJ driver and the SPARCprinter driver so they align
28547dd7cddfSDavid du Colombierthe (0,0) point of the page with the physical corner of the paper
28557dd7cddfSDavid du Colombierrather than with the origin of the printable area.
28567dd7cddfSDavid du Colombier
28577dd7cddfSDavid du ColombierRemoves the EIZO MDB-10 driver, since it caused complications for the
28587dd7cddfSDavid du ColombierEGA and VGA drivers and is not a widely used device.
28597dd7cddfSDavid du Colombier
28603ff48bf5SDavid du Colombier</pre><h3><a name="V2.6_Interpreter"></a>Interpreter</h3><pre>
28617dd7cddfSDavid du ColombierFixes bugs:
28627dd7cddfSDavid du Colombier	- The entry for the copydevice operator in the operator table
28637dd7cddfSDavid du Colombierwas initialized incorrectly.
28647dd7cddfSDavid du Colombier	- printobject and writeobject didn't handle nested arrays.
28657dd7cddfSDavid du Colombier	- restore didn't properly close the current file (if
28667dd7cddfSDavid du Colombierappropriate), causing an invalidaccess error.
28677dd7cddfSDavid du Colombier	- buildfont required the presence of a valid, 4-element
28687dd7cddfSDavid du ColombierFontBBox.  (The Red Books say it's required, but Adobe interpreters
28697dd7cddfSDavid du Colombierdon't require it; some DEC software generates a 3-element FontBBox.)
28707dd7cddfSDavid du Colombier	- resourceforall had several bugs; it didn't do even
28717dd7cddfSDavid du Colombierapproximately the right thing.  There were quite a few other problems
28727dd7cddfSDavid du Colombierwith the implementation of resources.
28737dd7cddfSDavid du Colombier	- setfont, makefont, and scalefont would accept a font with
28747dd7cddfSDavid du Colombierno FID entry.
28757dd7cddfSDavid du Colombier*	- Loading a .PFB font left the file open (until the next
28767dd7cddfSDavid du Colombierrestore or quit).
28777dd7cddfSDavid du Colombier	- The default (null) font didn't include a PaintType entry,
28787dd7cddfSDavid du Colombierwhich some PostScript files expected.
28797dd7cddfSDavid du Colombier*	- The ASCIIHexDecode filter sometimes thought the underlying
28807dd7cddfSDavid du Colombierstream was at EOF even when there was (at most one buffer's worth of)
28817dd7cddfSDavid du Colombierdata left.
28827dd7cddfSDavid du Colombier	- iscan.c included &lt;ctype.h&gt; before std.h, causing type name
28837dd7cddfSDavid du Colombierclashes on some systems.
28847dd7cddfSDavid du Colombier*	- save and restore didn't handle the pointers in the graphics
28857dd7cddfSDavid du Colombierstate correctly; for example, the current font wasn't restored
28867dd7cddfSDavid du Colombierproperly.
28877dd7cddfSDavid du Colombier	- Binary object sequences at the top interpreter level didn't
28887dd7cddfSDavid du Colombierget executed immediately.
28897dd7cddfSDavid du Colombier	- On high-resolution devices, the default transfer function
28907dd7cddfSDavid du Colombierconverted almost-white grays to very light grays rather than white.
28917dd7cddfSDavid du Colombier	- The `string' operator was checking the string length
28927dd7cddfSDavid du Colombieragainst max_uint rather than max_ushort, which could cause invalid
28937dd7cddfSDavid du Colombierlengths to be accepted.
28947dd7cddfSDavid du Colombier*	- deviceinfo caused a stackunderflow error.
28957dd7cddfSDavid du Colombier*	- idiv could give incorrect results for quotients or
28967dd7cddfSDavid du Colombierremainders that didn't fit in 24 bits.
28977dd7cddfSDavid du Colombier*	- The ASCII85Encode filter padded trailing bytes with 1's
28987dd7cddfSDavid du Colombierrather than 0's.
28997dd7cddfSDavid du Colombier*	- The ASCII85Decode filter had a typo that produced incorrect
29007dd7cddfSDavid du Colombierresults if there were exactly 2 trailing bytes.
29017dd7cddfSDavid du Colombier	- findlibfile didn't push a copy of the file name if it was
29027dd7cddfSDavid du Colombierthe name of a special (%) file.
29037dd7cddfSDavid du Colombier	- setduplexmode was not defined in statusdict, causing
29047dd7cddfSDavid du Colombier/undefined errors from some poorly designed input files.
29057dd7cddfSDavid du Colombier*	- The CCITTFaxDecode filter had several bugs in 2-D decoding.
29067dd7cddfSDavid du Colombier*	- The ASCII85Decode filter didn't read ahead to detect EOD if
29077dd7cddfSDavid du Colombierit fell precisely on a buffer boundary.
29087dd7cddfSDavid du Colombier	- If a file mentioned on the command line redefined `start',
29097dd7cddfSDavid du ColombierGhostscript would run the new definition rather than the built-in one
29107dd7cddfSDavid du Colombierafter processing all the files on the command line.
29117dd7cddfSDavid du Colombier	- The SCO ODT compiler couldn't handle the conditionals in the
29127dd7cddfSDavid du Colombierngetc (iscan.c) and sgetc* (stream.h) macros.
29137dd7cddfSDavid du Colombier	- makefont and scalefont didn't cache the PostScript dictionaries
29147dd7cddfSDavid du Colombierfor scaled fonts.
29157dd7cddfSDavid du Colombier	- Changing the elements of the Encoding of a font dynamically
29167dd7cddfSDavid du Colombierdidn't take effect if the character was already cached.
29177dd7cddfSDavid du Colombier	- makefont and scalefont didn't add the (undocumented) OrigFont
29187dd7cddfSDavid du Colombierand ScaleMatrix entries to the new font.
29197dd7cddfSDavid du Colombier*	- findfont insisted that the font name be a string or a name.
29207dd7cddfSDavid du Colombier	- filenameforall could cause an incorrect transfer of control
29217dd7cddfSDavid du Colombierif no files matched the pattern.
29227dd7cddfSDavid du Colombier*	- ISOLatin1Encoding had hyphen instead of minus at code 45.
29237dd7cddfSDavid du Colombier	- restore didn't reset saved_cbot and saved_ctop correctly;
29247dd7cddfSDavid du Colombieras a result, some freed blocks could get abandoned rather than put on
29257dd7cddfSDavid du Colombierthe free list.
29267dd7cddfSDavid du Colombier	- Some numerical constants in zarith.c assumed that longs
29277dd7cddfSDavid du Colombieroccupied 32 bits.
29287dd7cddfSDavid du Colombier
29297dd7cddfSDavid du ColombierImplements additional Level 2 features:
29307dd7cddfSDavid du Colombier	- %device%file names (only the "os" device is provided).
29317dd7cddfSDavid du Colombier	- &lt;~ ~&gt; for ASCII-85 strings.
29327dd7cddfSDavid du Colombier	- Binary error messages.
29337dd7cddfSDavid du Colombier	- BuildGlyph.
29347dd7cddfSDavid du Colombier	- CCITTFaxDecode filter entries EndOfBlock, Rows, and
29357dd7cddfSDavid du Colombier	(undocumented) FirstBitLowOrder.
29367dd7cddfSDavid du Colombier	- {set/current}{color/colorspace/overprint/colorrendering/
29377dd7cddfSDavid du Colombier	blackgeneration/undercolorremoval}.  (See below under library
29387dd7cddfSDavid du Colombier	for limitations.)
29397dd7cddfSDavid du Colombier	- Decode for the dictionary form of image.
29407dd7cddfSDavid du Colombier	- File access modes a, r/w/a+.
29417dd7cddfSDavid du Colombier	- Font entries CDevProc, Metrics2, and WMode.
29427dd7cddfSDavid du Colombier	- Font operators cshow, findencoding, rootfont, and
29437dd7cddfSDavid du Colombier	setcachedevice2.
29447dd7cddfSDavid du Colombier	- glyphshow (emulated with PostScript code).
29457dd7cddfSDavid du Colombier	- languagelevel.
29467dd7cddfSDavid du Colombier	- realtime.
29477dd7cddfSDavid du Colombier	- setbbox.
29487dd7cddfSDavid du Colombier	- (Subset of) system and user parameters.
29497dd7cddfSDavid du Colombier	- xshow, yshow, and xyshow.
29507dd7cddfSDavid du Colombier	- XUIDs for fonts.
29517dd7cddfSDavid du Colombier
29527dd7cddfSDavid du ColombierMoves the installation of systemdict and the initial allocation of
29537dd7cddfSDavid du Colombierglobaldict (if relevant) and userdict from gs_init.ps to iinit.c.
29547dd7cddfSDavid du Colombier
29557dd7cddfSDavid du ColombierMakes Level 2 features dynamically selectable through the
29567dd7cddfSDavid du Colombier.setlanguagelevel operator; disables all Level 2 features
29577dd7cddfSDavid du Colombier(specifically including automatic dictionary expansion) unless the
29587dd7cddfSDavid du Colombierlevel2 feature is included and active.
29597dd7cddfSDavid du Colombier
29607dd7cddfSDavid du ColombierAdds the .knownget operator for speeding up system procedures.
29617dd7cddfSDavid du Colombier
29627dd7cddfSDavid du ColombierRenames the type1addpath operator as .type1addpath; adds an optional
29637dd7cddfSDavid du Colombierleft side bearing argument; changes it so it does not do the
29647dd7cddfSDavid du Colombiersetcachedevice, fill, or stroke, but does do a moveto for the
29657dd7cddfSDavid du Colombiercharacter width.  Changes Type1BuildChar appropriately.  (All this is
29667dd7cddfSDavid du Colombierneeded to make WMode work.)
29677dd7cddfSDavid du Colombier
29687dd7cddfSDavid du ColombierRemoves the .setmetrics operator, which is no longer needed.
29697dd7cddfSDavid du Colombier
29707dd7cddfSDavid du Colombier* Changes the meaning of the user_errors argument to gs_run_file and
29717dd7cddfSDavid du Colombiergs_run_string so that -1 means always return on an error, 0 means
29727dd7cddfSDavid du Colombieronly return on an error not within a `stopped'.
29737dd7cddfSDavid du Colombier
29747dd7cddfSDavid du ColombierAdds all the necessary checks and operators for local/global VM, but
29757dd7cddfSDavid du Colombierdoesn't actually implement local/global mode.
29767dd7cddfSDavid du Colombier
29777dd7cddfSDavid du ColombierChanges setcachedevice back so that it requires 4 numbers on the
29787dd7cddfSDavid du Colombierstack rather than a 4-element array.  (It was changed to be the other
29797dd7cddfSDavid du Colombierway in release 2.0, but that was because I didn't realize that fonts
29807dd7cddfSDavid du Colombierhad to have an executable FontBBox, and some of the Ghostscript fonts
29817dd7cddfSDavid du Colombierdidn't.)
29827dd7cddfSDavid du Colombier
29837dd7cddfSDavid du ColombierChanges all the filter operators from .filterxxx to .filter_xxx, and
29847dd7cddfSDavid du Colombierremoves the need to enumerate them in gs_init.ps.
29857dd7cddfSDavid du Colombier
29867dd7cddfSDavid du ColombierAdds .oserrno and .oserrorstring operators for getting the last OS
29877dd7cddfSDavid du Colombiererror (in the current context).
29887dd7cddfSDavid du Colombier
29897dd7cddfSDavid du ColombierChanges gs_finit similarly to gp_exit.  Adds gs_exit_with_code that
29907dd7cddfSDavid du Colombiertakes both an exit status and a Ghostscript error code.
29917dd7cddfSDavid du Colombier
29927dd7cddfSDavid du ColombierChanges the name of name.h to iname.h.
29937dd7cddfSDavid du Colombier
29947dd7cddfSDavid du ColombierAdds support for the `interrupt' error (but doesn't provide any standard
29957dd7cddfSDavid du Colombierway of generating one, other than through the gp_check_interrupts polling
29967dd7cddfSDavid du Colombierfunction).
29977dd7cddfSDavid du Colombier
29987dd7cddfSDavid du ColombierAdds copyright to systemdict.
29997dd7cddfSDavid du Colombier
30007dd7cddfSDavid du ColombierChanges the spot halftone screen to an elliptical screen supplied by
30017dd7cddfSDavid du ColombierBerthold K. P. Horn.
30027dd7cddfSDavid du Colombier
30037dd7cddfSDavid du ColombierAdds a check that the first token in gs_init.ps is an integer.  In
30047dd7cddfSDavid du Colombierconjunction with other code in gs_init.ps, this should catch all attempts
30057dd7cddfSDavid du Colombierto run Ghostscript with a gs_init.ps that doesn't match the executable.
30067dd7cddfSDavid du Colombier
30077dd7cddfSDavid du ColombierChanges all relevant occurrences of sizeof to size_of in order to
30087dd7cddfSDavid du Colombierwork with the buggy SVR4.2 C compiler.
30097dd7cddfSDavid du Colombier
30107dd7cddfSDavid du ColombierChanges gp_exit so it is passed both the Ghostscript error code and
30117dd7cddfSDavid du Colombierthe exit status code as arguments.  This is backward-compatible for
30127dd7cddfSDavid du Colombierall but the pickiest compilers.
30137dd7cddfSDavid du Colombier
30147dd7cddfSDavid du ColombierAdds a call on gp_check_interrupts() after fwrite calls in the stream
30157dd7cddfSDavid du Colombiermachinery.  This prevents lengthy console output from locking out
30167dd7cddfSDavid du Colombierother programs.
30177dd7cddfSDavid du Colombier
30187dd7cddfSDavid du ColombierChanges a couple of occurrences of op_def_ptr in iinit.c to work around a
30197dd7cddfSDavid du Colombier`const' bug in Sun's SC1.0 compiler.
30207dd7cddfSDavid du Colombier
30217dd7cddfSDavid du ColombierAdds a special hack in the 'where' operator to work around a bug in Aldus
30227dd7cddfSDavid du ColombierFreehand 2.x.
30237dd7cddfSDavid du Colombier
30247dd7cddfSDavid du ColombierChanges all empty argument lists from () to (void), which is the ANSI
30257dd7cddfSDavid du ColombierC syntax.
30267dd7cddfSDavid du Colombier
30277dd7cddfSDavid du ColombierAdds a hack to ignore ^[ and ^D^[ tokens, to work around the prologue
30287dd7cddfSDavid du Colombierand epilogue emitted by the MS Windows LaserJet IV driver.
30297dd7cddfSDavid du Colombier
30307dd7cddfSDavid du ColombierDefines the processcolors operator, which should not be needed, but
30317dd7cddfSDavid du Colombieris required because of bugs in Lotus 1-2-3 and Adobe PhotoShop.
30327dd7cddfSDavid du Colombier
30337dd7cddfSDavid du ColombierChanges the allocator (ialloc) to fill all allocated and/or freed
30347dd7cddfSDavid du Colombierblocks with a marker if gs_alloc_debug is set, as gs_malloc and
30357dd7cddfSDavid du Colombiergs_free already do.
30367dd7cddfSDavid du Colombier
30373ff48bf5SDavid du Colombier</pre><h3><a name="V2.6_Library"></a>Library</h3><pre>
30387dd7cddfSDavid du ColombierFixes bugs:
30397dd7cddfSDavid du Colombier	- 16-bit memory devices stored the bytes of each pixel in the
30407dd7cddfSDavid du Colombierwrong order.
30417dd7cddfSDavid du Colombier	- copy_mono did the wrong thing when copying 1 source chunk
30427dd7cddfSDavid du Colombierto 2 destination chunks with polarity inverted.  (This probably
30437dd7cddfSDavid du Colombierdidn't affect any actual uses of Ghostscript.)
30447dd7cddfSDavid du Colombier*	- The compile-time check for ints being 2 or 4 bytes used the
30457dd7cddfSDavid du Colombier#error directive, which most compilers don't recognize.
30467dd7cddfSDavid du Colombier	- arc and arcn didn't do the right thing for degenerate
30477dd7cddfSDavid du Colombier(single-point) arcs, or for arcs drawn in the "wrong" direction that
30487dd7cddfSDavid du Colombierwere multiples of 360 degrees.
30497dd7cddfSDavid du Colombier	- charpath did the wrong thing with Type 3 fonts.
30507dd7cddfSDavid du Colombier	- copyscanlines gave an error if the buffer was too large.
30517dd7cddfSDavid du Colombier	- The copy_mono procedure (used for text and halftones) for
30527dd7cddfSDavid du Colombier2- and 4-bit-per-pixel memory and printer devices incorrectly
30537dd7cddfSDavid du Colombierincremented the destination pointer after every pixel, instead of
30547dd7cddfSDavid du Colombieronly after every byte.
30557dd7cddfSDavid du Colombier	- The fill_rectangle procedure (used for graphics) for 2- and
30567dd7cddfSDavid du Colombier4-bit-per-pixel memory and printer devices, if given any color other
30577dd7cddfSDavid du Colombierthan all 0's or all 1's, multiplied the X coordinate and width by 2
30587dd7cddfSDavid du Colombieror 4, thereby filling the wrong area.
30597dd7cddfSDavid du Colombier	- The use of 'data' in both gs_type1_data and gs_font upset
30607dd7cddfSDavid du Colombierthe VMS compiler.
30617dd7cddfSDavid du Colombier	- The `Flex' feature wasn't implemented for Type 1 fonts,
30627dd7cddfSDavid du Colombierwhich caused serious errors in rendering some fonts that use it.
30637dd7cddfSDavid du Colombier(Unfortunately, some Adobe fonts violate the specification, so we had
30647dd7cddfSDavid du Colombierto implement Flex to always use a curve.)
30657dd7cddfSDavid du Colombier*	- Stem width adjustment was too eager, producing very strange
30667dd7cddfSDavid du Colombiereffects on small characters with tight curves (a curve point could
30677dd7cddfSDavid du Colombierget snapped to the other side of the open area).
30687dd7cddfSDavid du Colombier	- The allocator didn't align structures adequately on
30697dd7cddfSDavid du Colombiermachines where sizeof(long) or sizeof(char *) was 8 bytes.
30707dd7cddfSDavid du Colombier	- The test for IEEE floating point gave an incorrect
30717dd7cddfSDavid du Colombier(negative) result on machines where sizeof(long) was 8 bytes.
30727dd7cddfSDavid du Colombier	- genarch.c assumed that the result of subtracting two
30737dd7cddfSDavid du Colombierpointers was an int, leading to a garbage arch.h file on systems
30747dd7cddfSDavid du Colombierwhere this was false.
30757dd7cddfSDavid du Colombier*	- The Type 1 font interpreter incorrectly reset the adjusted
30767dd7cddfSDavid du Colombierpath position to be the same as the unadjusted path position whenever
30777dd7cddfSDavid du Colombierit returned control to the client (in particular, for callothersubr),
30787dd7cddfSDavid du Colombierleading to discontinuities and distortions in the character shapes.
30797dd7cddfSDavid du Colombier*	- Accented characters in Type 1 fonts often misplaced the
30807dd7cddfSDavid du Colombieraccent to the left.
30817dd7cddfSDavid du Colombier	- gsmisc.c wouldn't compile on machines with 64-bit pointers,
30827dd7cddfSDavid du Colombierbecause _pad was 0, and ANSI compilers don't accept 0-length arrays.
30837dd7cddfSDavid du Colombier	- pathforall got confused if the client procedures modified
30847dd7cddfSDavid du Colombierthe path.
30857dd7cddfSDavid du Colombier	- The command list file representation limited X and Y
30867dd7cddfSDavid du Colombiercoordinates to 15 bits.
30877dd7cddfSDavid du Colombier*	- stroke could produce spikes or other garbage for mitered
30887dd7cddfSDavid du Colombierjoins as a result of stroke adjustment.
30897dd7cddfSDavid du Colombier	- The params_size field of the null device was wrong, so
30907dd7cddfSDavid du Colombierscaling the null device produced unpredictable results.
30917dd7cddfSDavid du Colombier
30927dd7cddfSDavid du ColombierChanges monobit memory devices to always store data big-endian.  This
30937dd7cddfSDavid du Colombiereliminates byte-swapping, at the cost of slightly slower rendering.
30947dd7cddfSDavid du Colombier
30957dd7cddfSDavid du ColombierRemoves the memswab* routines, since they are no longer needed.
30967dd7cddfSDavid du Colombier
30977dd7cddfSDavid du ColombierImplements gs_cshow_[n_]init, which provides support for cshow, and
30987dd7cddfSDavid du Colombiergs_xyshow_[n_]init, which provides support for {x,y,xy}show.
30997dd7cddfSDavid du Colombier
31007dd7cddfSDavid du ColombierAdds an optional left side bearing argument to gs_type1_interpret.
31017dd7cddfSDavid du Colombier
31027dd7cddfSDavid du ColombierChanges gs_type1_interpret so it does not do a setcachedevice, fill,
31037dd7cddfSDavid du Colombieror stroke, but only appends the character outline to the path
31047dd7cddfSDavid du Colombier(including a moveto for the character width.)
31057dd7cddfSDavid du Colombier
31067dd7cddfSDavid du ColombierRemoves gs_setmetrics, which is no longer needed.
31077dd7cddfSDavid du Colombier
31087dd7cddfSDavid du ColombierImplements gs_setcachedevice2, which provides support for
31097dd7cddfSDavid du Colombiersetcachedevice2.
31107dd7cddfSDavid du Colombier
31117dd7cddfSDavid du ColombierSpeeds up gsave/grestore by allocating, deallocating, and copying as
31127dd7cddfSDavid du Colombiermuch as possible of the graphics state in a single operation.
31137dd7cddfSDavid du Colombier
31147dd7cddfSDavid du ColombierImplements gs_{set/current}{color/colorspace/overprint/colorrendering/
31157dd7cddfSDavid du Colombierblackgeneration/undercolorremoval}.  Device, indexed (with table, not
31167dd7cddfSDavid du Colombierwith procedure), CIE, and (substituted) separation colors are
31177dd7cddfSDavid du Colombiersupported; some of the setup code for patterns is also present.
31187dd7cddfSDavid du Colombier
31197dd7cddfSDavid du ColombierIncreases the size of temporary file names in gdevprn.h from 30
31207dd7cddfSDavid du Colombiercharacters to 60.
31217dd7cddfSDavid du Colombier
31227dd7cddfSDavid du ColombierChanges the character cache to be allocated dynamically in chunks.
31237dd7cddfSDavid du Colombier
31247dd7cddfSDavid du ColombierSplits gxcache.c into gxccache.c (fast "hit" code) and gxccman.c (all
31257dd7cddfSDavid du Colombierother code).
31267dd7cddfSDavid du Colombier
31277dd7cddfSDavid du ColombierChanges all occurrences of sizeof to size_of in order to work with the
31287dd7cddfSDavid du Colombierbuggy SVR4.2 C compiler.
31297dd7cddfSDavid du Colombier
31307dd7cddfSDavid du ColombierAdds a new concept of "external fonts", which allow a driver to
31317dd7cddfSDavid du Colombiersubstitute its own fonts for the ones obtained through the normal
31327dd7cddfSDavid du Colombierfont machinery.
31337dd7cddfSDavid du Colombier
31347dd7cddfSDavid du ColombierChanges all empty argument lists from () to (void), which is the ANSI
31357dd7cddfSDavid du ColombierC syntax.
31367dd7cddfSDavid du Colombier
31373ff48bf5SDavid du Colombier</pre>
31387dd7cddfSDavid du Colombier
31393ff48bf5SDavid du Colombier<hr>
31403ff48bf5SDavid du Colombier
31413ff48bf5SDavid du Colombier<h2><a name="Version2.5.2"></a>Version 2.5.2 (9/20/92)</h2>
31423ff48bf5SDavid du Colombier
31433ff48bf5SDavid du Colombier<p>This is yet another bug fix release to (finally!) get the PCL drivers
31447dd7cddfSDavid du Colombierworking again.
31457dd7cddfSDavid du Colombier
31463ff48bf5SDavid du Colombier<h3><a name="V2.5.2_Procedures"></a>Procedures</h3><pre>
31477dd7cddfSDavid du ColombierFixes bugs:
31487dd7cddfSDavid du Colombier	- The comment in devs.mak for cdjcolor said it used 8 bits
31497dd7cddfSDavid du Colombierper pixel, rather than the correct 24.
31507dd7cddfSDavid du Colombier
31517dd7cddfSDavid du ColombierAdds gsbj/dj/lj/lp and gslp.ps to the installed files on Unix
31527dd7cddfSDavid du Colombiersystems.
31537dd7cddfSDavid du Colombier
31547dd7cddfSDavid du ColombierRemoves dps.dev and level2.dev from the standard configurations on
31557dd7cddfSDavid du Colombierall platforms, since the presence of the setcolor operator was
31567dd7cddfSDavid du Colombiercausing the output of some common applications to fail.
31577dd7cddfSDavid du Colombier
31583ff48bf5SDavid du Colombier</pre>
31597dd7cddfSDavid du Colombier
31603ff48bf5SDavid du Colombier<h3><a name="V2.5.2_Utilities"></a>Utilities</h3><pre>
31617dd7cddfSDavid du ColombierFixes bugs:
31627dd7cddfSDavid du Colombier	- font2c produced invalid output for any font that didn't use
31637dd7cddfSDavid du ColombierStandardEncoding or ISOLatin1Encoding.
31647dd7cddfSDavid du Colombier
31653ff48bf5SDavid du Colombier</pre>
31667dd7cddfSDavid du Colombier
31673ff48bf5SDavid du Colombier<h3><a name="V2.5.2_Platforms"></a>Platforms</h3><pre>
31687dd7cddfSDavid du ColombierFixes bugs:
31697dd7cddfSDavid du Colombier	- gp_sysv.c required an extern long timezone.
31707dd7cddfSDavid du Colombier
31713ff48bf5SDavid du Colombier</pre>
31727dd7cddfSDavid du Colombier
31733ff48bf5SDavid du Colombier<h3><a name="V2.5.2_Drivers"></a>Drivers</h3><pre>
31747dd7cddfSDavid du ColombierFixes bugs:
31757dd7cddfSDavid du Colombier	- The PCL drivers were *still* doing the wrong thing about
31767dd7cddfSDavid du Colombierzeroing the seed row for Mode 3 compression.
31777dd7cddfSDavid du Colombier	- Setting the resolution with -r didn't work under Windows.
31787dd7cddfSDavid du Colombier	- The Windows driver got a stack overflow if it was ever
31797dd7cddfSDavid du Colombierasked to display a bit image wider than 32 pixels.
31807dd7cddfSDavid du Colombier	- The Tseng driver didn't sense the model (ET3000 vs. ET4000)
31817dd7cddfSDavid du Colombiercorrectly.
31827dd7cddfSDavid du Colombier
31837dd7cddfSDavid du ColombierAdds the eps9high device to the standard MS-DOS makefiles.
31847dd7cddfSDavid du Colombier
31853ff48bf5SDavid du Colombier</pre>
31867dd7cddfSDavid du Colombier
31873ff48bf5SDavid du Colombier<h3><a name="V2.5.2_Interpreter"></a>Interpreter</h3><pre>
31887dd7cddfSDavid du ColombierFixes bugs:
31897dd7cddfSDavid du Colombier	- gs_run_string used gs_user_errors (a global) rather than
31907dd7cddfSDavid du Colombieruser_errors (its argument) to control error handling.  (This does not
31917dd7cddfSDavid du Colombieraffect normal operation of Ghostscript, only use as a server.)
31927dd7cddfSDavid du Colombier	- eexec popped the top element of the dictionary stack
31937dd7cddfSDavid du Colombierafterwards even if the encrypted code had pushed something onto it.
31947dd7cddfSDavid du ColombierThis caused problems for some badly written PostScript code.
31957dd7cddfSDavid du Colombier	- The printed form of real numbers didn't always include a
31967dd7cddfSDavid du Colombierdecimal point, causing compatibility problems.
31977dd7cddfSDavid du Colombier
31987dd7cddfSDavid du ColombierMakes -s and -d work for device properties.
31997dd7cddfSDavid du Colombier
32007dd7cddfSDavid du ColombierIncreases the cache limit on large-memory systems.
32017dd7cddfSDavid du Colombier
32027dd7cddfSDavid du ColombierAdds a check to ensure that the revision of gs_init.ps matches that
32037dd7cddfSDavid du Colombierof the interpreter.
32047dd7cddfSDavid du Colombier
32057dd7cddfSDavid du ColombierAdds the .knownget operator.
32067dd7cddfSDavid du Colombier
32073ff48bf5SDavid du Colombier</pre><h3><a name="V2.5.2_Library"></a>Library</h3><pre>
32087dd7cddfSDavid du ColombierFixes bugs:
32097dd7cddfSDavid du Colombier	- The raster computation in clist_render_init, and the
32107dd7cddfSDavid du Colombiercomputation of state_size in clist_open, didn't widen an operand to
32117dd7cddfSDavid du Colombierlong, leading to possibly incorrect operation for 24-bit-per-pixel
32127dd7cddfSDavid du Colombierprinters on MS-DOS systems.
32137dd7cddfSDavid du Colombier	- The flatness was set too large for Type 1 characters,
32147dd7cddfSDavid du Colombierleading to visible straight edges instead of curves at large sizes.
32157dd7cddfSDavid du Colombier	- Type 1 fonts that contained out-of-range coordinates would
32167dd7cddfSDavid du Colombierproduce garbled output.  (This was not a problem with the standard
32177dd7cddfSDavid du ColombierGhostscript fonts, or with Adobe Type Manager fonts.)
32187dd7cddfSDavid du Colombier	- gschar0.c wouldn't compile, because it referred to a
32197dd7cddfSDavid du Colombiernon-existing structure member penum-&gt;chr.  (This had no effect on
32207dd7cddfSDavid du ColombierGhostscript's operation.)
32217dd7cddfSDavid du Colombier	- The curve flattener required line segments to be no more
32227dd7cddfSDavid du Colombierthan 8 x the flatness in length, leading to an enormous number of
32237dd7cddfSDavid du Colombiersegments.
32247dd7cddfSDavid du Colombier	- pathforall would cause an addressing fault if the path
32257dd7cddfSDavid du Colombierconsisted of only a moveto.
32267dd7cddfSDavid du Colombier
32277dd7cddfSDavid du ColombierRefactors some header files so that std.h is always included before
32287dd7cddfSDavid du Colombierany system header file that might include sys/types.h.
32297dd7cddfSDavid du Colombier
32307dd7cddfSDavid du ColombierAdds logic for removing top and bottom blank rows in cached
32317dd7cddfSDavid du Colombiercharacters.  (This is the beginning of compression for the cache.)
32327dd7cddfSDavid du Colombier
32337dd7cddfSDavid du ColombierChanges the arguments of memswab2/4 from char * to byte *, for more
32347dd7cddfSDavid du Colombieraccurate type conformance.
32357dd7cddfSDavid du Colombier
32363ff48bf5SDavid du Colombier</pre>
32377dd7cddfSDavid du Colombier
32383ff48bf5SDavid du Colombier<h2><a name="Version2.5.1"></a>Version 2.5.1 (9/11/92)</h2>
32397dd7cddfSDavid du Colombier
32403ff48bf5SDavid du Colombier<p>This is the usual bug fix re-release.
32417dd7cddfSDavid du Colombier
32423ff48bf5SDavid du Colombier<h3><a name="V2.5.1_Procedures"></a>Procedures</h3><pre>
32437dd7cddfSDavid du ColombierFixes bugs:
32447dd7cddfSDavid du Colombier	- The makefile rules for compiled fonts had a circular
32457dd7cddfSDavid du Colombierdependency.
32467dd7cddfSDavid du Colombier	- `make begin' didn't work properly on all platforms.
32477dd7cddfSDavid du Colombier
32487dd7cddfSDavid du ColombierEnsures that all batch files end with a newline.  (The absence of the
32497dd7cddfSDavid du Colombiernewline was confusing the GNU diff program.)
32507dd7cddfSDavid du Colombier
32517dd7cddfSDavid du ColombierDocuments the fact that the -dASCIIOUT switch no longer exists.
32527dd7cddfSDavid du Colombier
32533ff48bf5SDavid du Colombier</pre><h3><a name="V2.5.1_Utilities"></a>Utilities</h3><pre>
32547dd7cddfSDavid du ColombierFixes bugs:
32557dd7cddfSDavid du Colombier	- pstoppm didn't `bind' its internal procedures.
32567dd7cddfSDavid du Colombier	- grestoreall would undo the output device selected by
32577dd7cddfSDavid du Colombierpstoppm.
32587dd7cddfSDavid du Colombier
32597dd7cddfSDavid du ColombierChanges the utilities for reading and writing Type 1 character
32607dd7cddfSDavid du Colombieroutlines so they can work with stack representations as well as
32617dd7cddfSDavid du Colombierarrays.
32627dd7cddfSDavid du Colombier
32637dd7cddfSDavid du ColombierRemoves the pfbtogs.ps, phonbook.ps, and showpbm.ps utilities from
32647dd7cddfSDavid du Colombierthe distribution.
32657dd7cddfSDavid du Colombier
32667dd7cddfSDavid du ColombierAdds a gslj utility to parallel gslp and gsdj.
32677dd7cddfSDavid du Colombier
32683ff48bf5SDavid du Colombier</pre><h3><a name="V2.5.1_Platforms"></a>Platforms</h3>
32697dd7cddfSDavid du Colombier
32703ff48bf5SDavid du Colombier<pre>
32717dd7cddfSDavid du ColombierAdds the DeskJet 500C drivers (cdeskjet/cdj*) to the MS-DOS / Borland
32727dd7cddfSDavid du ColombierC++, MS-DOS / Watcom C/386, and MS-Windows configurations.
32737dd7cddfSDavid du Colombier
32747dd7cddfSDavid du ColombierRemoves the PCX file driver from the MS Windows executable, because
32757dd7cddfSDavid du Colombierthe static data segment exceeded 64K.
32767dd7cddfSDavid du Colombier
32777dd7cddfSDavid du ColombierMakes some changes in the Unix System V platform file (gp_sysv.c) and
32787dd7cddfSDavid du Colombierin time_.h and unixtail.mak to accommodate the 3B1.
32797dd7cddfSDavid du Colombier
32803ff48bf5SDavid du Colombier</pre><h3><a name="V2.5.1_Fonts"></a>Fonts</h3><pre>
32817dd7cddfSDavid du ColombierFixes bugs:
32827dd7cddfSDavid du Colombier	- The Charter-Italic font was named bchi.pfa rather than
32837dd7cddfSDavid du Colombierbchri.pfa.
32847dd7cddfSDavid du Colombier	- The Cyrillic fonts (cyr.gsf, cyri.gsf) were omitted from
32857dd7cddfSDavid du Colombierthe fileset.
32867dd7cddfSDavid du Colombier	- Ghostscript incorrectly assumed that all Type 1 fonts had a
32877dd7cddfSDavid du ColombierFontInfo dictionary.
32887dd7cddfSDavid du Colombier	- .loadfont used false PFBDecode, so a few .PFB fonts would
32897dd7cddfSDavid du Colombierget errors because the first eexec byte would be whitespace.
32907dd7cddfSDavid du Colombier
32917dd7cddfSDavid du ColombierChanges font2c and its supporting code so that compiled fonts are
32927dd7cddfSDavid du Colombierlocation-independent.
32937dd7cddfSDavid du Colombier
32943ff48bf5SDavid du Colombier</pre><h3><a name="V2.5.1_Drivers"></a>Drivers</h3><pre>
32957dd7cddfSDavid du ColombierFixes bugs:
32967dd7cddfSDavid du Colombier	- The margins for the H-P printers were still wrong.
32977dd7cddfSDavid du Colombier	- The H-P drivers accidentally cleared the compression seed
32987dd7cddfSDavid du Colombierrow when switching compression modes.
32997dd7cddfSDavid du Colombier	- Some of the H-P drivers used the wrong control codes for
33007dd7cddfSDavid du Colombierskipping blank lines.
33017dd7cddfSDavid du Colombier
33027dd7cddfSDavid du ColombierAdds user-supported drivers for the AT&amp;T 3B1 console device, and for
33037dd7cddfSDavid du Colombierthe NEC P6+ printer.
33047dd7cddfSDavid du Colombier
33057dd7cddfSDavid du ColombierUpdates the SunView driver with a new version supplied by a(nother)
33067dd7cddfSDavid du Colombieruser.
33077dd7cddfSDavid du Colombier
33087dd7cddfSDavid du ColombierChanges the X Windows driver so the Ghostscript window doesn't get
33097dd7cddfSDavid du Colombierinput focus.
33107dd7cddfSDavid du Colombier
33117dd7cddfSDavid du ColombierChanges the common code for the printer drivers so that if it can
33127dd7cddfSDavid du Colombierallocate a full bitmap but there isn't at least a minimum amount of
33137dd7cddfSDavid du Colombiermemory left afterwards, it switches to banding.
33147dd7cddfSDavid du Colombier
33157dd7cddfSDavid du ColombierChanges the Windows driver so it handles devices with more than 8
33167dd7cddfSDavid du Colombierbits per pixel.  (We haven't been able to test this.)
33177dd7cddfSDavid du Colombier
33187dd7cddfSDavid du ColombierAdds a read-only PageCount device property (for printer devices
33197dd7cddfSDavid du Colombieronly).
33207dd7cddfSDavid du Colombier
33217dd7cddfSDavid du ColombierChanges all Aladdin-supported drivers to clip drawing requests to the
33227dd7cddfSDavid du Colombier((0,0), (width,height)) rectangle of device space.
33237dd7cddfSDavid du Colombier
33243ff48bf5SDavid du Colombier</pre><h3><a name="V2.5.1_Interpreter"></a>Interpreter</h3><pre>
33257dd7cddfSDavid du ColombierFixes bugs:
33267dd7cddfSDavid du Colombier	- Closing a NullEncode filter always gave an ioerror.
33277dd7cddfSDavid du Colombier	- If a single-character name occurred 1 character before the
33287dd7cddfSDavid du Colombierend of an input buffer, the character would be doubled.
33297dd7cddfSDavid du Colombier	- The procedures in gs_statd.ps didn't use "bind".
33307dd7cddfSDavid du Colombier	- Setting the page size didn't work properly with devices
33317dd7cddfSDavid du Colombierwith rotated coordinate systems.
33327dd7cddfSDavid du Colombier	- If an error occurred, and the error object wasn't the last
33337dd7cddfSDavid du Colombierelement of its procedure, the interpreter would re-execute the error
33347dd7cddfSDavid du Colombierobject after running the error handler.
33357dd7cddfSDavid du Colombier	- Memory devices didn't get resized if HWSize was changed,
33367dd7cddfSDavid du Colombierleading to out-of-bounds memory accesses.
33377dd7cddfSDavid du Colombier
33387dd7cddfSDavid du ColombierMoves revision and revisiondate from gs_init.ps to iinit.c.  Adds a
33397dd7cddfSDavid du Colombier-v switch that just prints these out.
33407dd7cddfSDavid du Colombier
33417dd7cddfSDavid du ColombierArranges things so that if Ghostscript is reading from a pipe (`-'
33427dd7cddfSDavid du Colombierswitch on the command line) and encounters an error, it exits with
33437dd7cddfSDavid du Colombierstatus 1 rather than 0.
33447dd7cddfSDavid du Colombier
33457dd7cddfSDavid du ColombierChanges the interpreter interface so the caller explicitly passes a
33467dd7cddfSDavid du Colombierpointer for storing an error object.
33477dd7cddfSDavid du Colombier
33483ff48bf5SDavid du Colombier</pre><h3><a name="V2.5.1_Library"></a>Library</h3><pre>
33497dd7cddfSDavid du ColombierFixes bugs:
33507dd7cddfSDavid du Colombier	- The automatic adjustment of the scaling for variant paper
33517dd7cddfSDavid du Colombiersizes caused the image to get expanded when it should have been
33527dd7cddfSDavid du Colombiercontracted, and vice versa.
33537dd7cddfSDavid du Colombier	- The curve flattener insisted that each line segment be no
33547dd7cddfSDavid du Colombiermore than 2 x the flatness in length, leading to an enormous number
33557dd7cddfSDavid du Colombierof segments even when not necessary for accuracy.
33567dd7cddfSDavid du Colombier	- flattenpath and strokepath discarded a trailing moveto.
33577dd7cddfSDavid du Colombier	- strokepath treated "0-width" lines as really having a width
33587dd7cddfSDavid du Colombierof zero, rather than one pixel.
33597dd7cddfSDavid du Colombier	- Buffered devices weren't closed and reopened if the amount
33607dd7cddfSDavid du Colombierof buffer space was changed.
33617dd7cddfSDavid du Colombier	- stroke used the line cap at the beginning of each subpath
33627dd7cddfSDavid du Colombiereven if the subpath was closed.
33637dd7cddfSDavid du Colombier
33647dd7cddfSDavid du ColombierRemoves the requirement that the clipping rectangle fall in the
33657dd7cddfSDavid du Colombiernon-negative quadrant of device space.  (This was causing problems
33667dd7cddfSDavid du Colombierfor Ghostview, but removing it required adding the extra clipping
33677dd7cddfSDavid du Colombierstep to the drawing routines in the drivers.)
33687dd7cddfSDavid du Colombier
33693ff48bf5SDavid du Colombier</pre>
33707dd7cddfSDavid du Colombier
33713ff48bf5SDavid du Colombier<h2><a name="Version2.5"></a>Version 2.5 (8/18/92)</h2>
33723ff48bf5SDavid du Colombier
33733ff48bf5SDavid du Colombier<p>This version adds Type 1 hinting, CCITTFax encoding and decoding, and
33747dd7cddfSDavid du ColombierMicrosoft Windows support, as well as the usual minor improvements
33757dd7cddfSDavid du Colombierand bug fixes.
33767dd7cddfSDavid du Colombier
33773ff48bf5SDavid du Colombier<h3><a name="V2.5_Procedures"></a>Procedures</h3><pre>
33787dd7cddfSDavid du ColombierFixes bugs:
33797dd7cddfSDavid du Colombier	- GSIMPATH, SLZWD, and SLZWE were omitted from the VMS
33807dd7cddfSDavid du Colombiermakefiles, and GSIM2OUT was not removed.
33817dd7cddfSDavid du Colombier	- landscap.ps messed up the current path.
33827dd7cddfSDavid du Colombier
33837dd7cddfSDavid du ColombierAdds new switches:
33847dd7cddfSDavid du Colombier	-dSAFER disables file writing and directory modification.
33857dd7cddfSDavid du Colombier	-dESTACKPRINT causes errors to print the execution stack with
33867dd7cddfSDavid du Colombier== instead of =.
33877dd7cddfSDavid du Colombier	-sOutputFile=&lt;string&gt; replaces -sOUTPUTFILE (which is still
33887dd7cddfSDavid du Colombierrecognized) for setting the output file or pipe for the default
33897dd7cddfSDavid du Colombier(printer) device.
33907dd7cddfSDavid du Colombier	-sPAPERSIZE=&lt;sizename&gt; initializes the paper size.
33917dd7cddfSDavid du Colombier	-dBufferSpace=&lt;number&gt; sets the buffer size for the default
33927dd7cddfSDavid du Colombier(printer) device.
33937dd7cddfSDavid du Colombier
33947dd7cddfSDavid du ColombierFor Unix systems, changes the directories in GS_LIB_DEFAULT from
33957dd7cddfSDavid du Colombier`pwd` to $(gsdatadir), i.e., normally $(datadir)/ghostscript, where
33967dd7cddfSDavid du Colombierdatadir is normally /usr/local/lib.
33977dd7cddfSDavid du Colombier
33987dd7cddfSDavid du ColombierAdds a note in the header file to the effect that the X Windows
33997dd7cddfSDavid du Colombierdriver expects to find header files in $(XINCLUDE)/X11, not in
34007dd7cddfSDavid du Colombier$(XINCLUDE).
34017dd7cddfSDavid du Colombier
34027dd7cddfSDavid du ColombierChanges -q so it defines QUIET as true instead of null (so it can be
34037dd7cddfSDavid du Colombierused in the middle of the command line as well as at the beginning).
34047dd7cddfSDavid du Colombier
34057dd7cddfSDavid du ColombierRenames the history.doc file as NEWS.
34067dd7cddfSDavid du Colombier
34073ff48bf5SDavid du Colombier</pre>
34087dd7cddfSDavid du Colombier
34093ff48bf5SDavid du Colombier<h3><a name="V2.5_Utilities"></a>Utilities</h3>
34107dd7cddfSDavid du Colombier
34113ff48bf5SDavid du Colombier<h3><a name="V2.5_Platforms"></a>Platforms</h3><pre>
34127dd7cddfSDavid du ColombierFixes bugs:
34137dd7cddfSDavid du Colombier	- The stack size was not getting increased on the Watcom
34147dd7cddfSDavid du Colombierplatform.
34157dd7cddfSDavid du Colombier
34167dd7cddfSDavid du ColombierRemoves "b" from the scratch file opening modes in gp_unix.c and
34177dd7cddfSDavid du Colombier(conditionally) in gdevprn.c, to pacify the DECstation Ultrix system.
34187dd7cddfSDavid du Colombier
34197dd7cddfSDavid du ColombierAdds a makefile (bcwin.mak) and a platform file (gp_mswin.c) for
34207dd7cddfSDavid du ColombierMicrosoft Windows.
34217dd7cddfSDavid du Colombier
34227dd7cddfSDavid du ColombierOn MS-DOS platforms (including Windows), uses the TEMP environment
34237dd7cddfSDavid du Colombiervariable to designate the directory for scratch files.
34247dd7cddfSDavid du Colombier
34257dd7cddfSDavid du ColombierChanges std.h so that the VMS C compiler uses function prototypes and
34267dd7cddfSDavid du Colombier'const'.
34277dd7cddfSDavid du Colombier
34287dd7cddfSDavid du ColombierChanges the VMS cc makefile so it doesn't use ansi2knr.
34297dd7cddfSDavid du Colombier
34303ff48bf5SDavid du Colombier</pre><h3><a name="V2.5_Fonts"></a>Fonts</h3><pre>
34317dd7cddfSDavid du ColombierFixes bugs:
34327dd7cddfSDavid du Colombier	- findfont left an extra entry on the stack if it couldn't
34337dd7cddfSDavid du Colombierfind the default font.
34347dd7cddfSDavid du Colombier
34357dd7cddfSDavid du ColombierRenames bchi, ncri, and puti as bchri, ncrri, and putri, to conform
34367dd7cddfSDavid du Colombierwith the naming scheme for other fonts.
34377dd7cddfSDavid du Colombier
34387dd7cddfSDavid du ColombierAdds $(CCFLAGS) to the command line used for compiling fonts.
34397dd7cddfSDavid du Colombier
34407dd7cddfSDavid du ColombierConverts the .pfa fonts (CharterBT, IBM Courier, and Utopia) to .gsf,
34417dd7cddfSDavid du Colombierby removing eexec encryption and also removing some mysterious
34427dd7cddfSDavid du Colombierunmapped characters from Courier.  This makes these fonts work with
34437dd7cddfSDavid du ColombierDISKFONTS.
34447dd7cddfSDavid du Colombier
34457dd7cddfSDavid du ColombierChanges the implementation of compiled fonts so they are read-only
34467dd7cddfSDavid du Colombierand sharable (no external references).  (They are, however, not
34477dd7cddfSDavid du Colombierposition-independent.)
34487dd7cddfSDavid du Colombier
34497dd7cddfSDavid du ColombierProvides a way to use compiled fonts on platforms that limit the
34507dd7cddfSDavid du Colombiernumber of characters in an identifier.
34517dd7cddfSDavid du Colombier
34527dd7cddfSDavid du ColombierAdds public-domain Cyrillic and Cyrillic-Italic fonts.
34537dd7cddfSDavid du Colombier
34547dd7cddfSDavid du ColombierAdds a 'userdict begin' to .loadfont, because Type 3 fonts produced
34557dd7cddfSDavid du Colombierby Fontographer expect a writable dictionary on the top of the stack.
34567dd7cddfSDavid du Colombier
34577dd7cddfSDavid du ColombierChanges definefont for Type 1 fonts to insert UnderlinePosition and
34587dd7cddfSDavid du ColombierUnderlineThickness entries in FontInfo if they are absent, because
34597dd7cddfSDavid du Colombiermany word processors incorrectly assume these entries are present.
34607dd7cddfSDavid du Colombier
34613ff48bf5SDavid du Colombier</pre><h3><a name="V2.5_Drivers"></a>Drivers</h3><pre>
34627dd7cddfSDavid du ColombierFixes bugs:
34637dd7cddfSDavid du Colombier	- The documentation in use.doc said that the densities for
34647dd7cddfSDavid du Colombier9-pin Epson printers were 60x60 to 240x60, rather than 60x72 to
34657dd7cddfSDavid du Colombier240x72.
34667dd7cddfSDavid du Colombier	- gdevprn.c smashed one byte beyond the end of the string
34677dd7cddfSDavid du Colombiergiven as the OutputFile device property.
34687dd7cddfSDavid du Colombier	- The X11 driver used XVisualIDFromVisual, which is not
34697dd7cddfSDavid du Colombierdefined in X11R3.
34707dd7cddfSDavid du Colombier	- The SunView driver modified the input data, which was
34717dd7cddfSDavid du Colombierdeclared as const.
34727dd7cddfSDavid du Colombier	- The LaserJet IIP and III drivers shifted the page 185
34737dd7cddfSDavid du Colombierpixels to the left and 0.25" down, because the initialization string
34747dd7cddfSDavid du Colombierwas incorrect.
34757dd7cddfSDavid du Colombier	- The PCX driver wrote 16-bit values using the byte ordering
34767dd7cddfSDavid du Colombierof the platform, rather than always LSB first.
34777dd7cddfSDavid du Colombier	- For vertical spacing, the LaserJet and DeskJet drivers used
34787dd7cddfSDavid du Colombiera command that spaces N/300", rather than N scan lines, but gave it a
34797dd7cddfSDavid du Colombierparameter in scan lines.
34807dd7cddfSDavid du Colombier	- The VESA driver didn't allocate a full 256-byte buffer for
34817dd7cddfSDavid du Colombierreading the mode information from the BIOS, causing the stack to get
34827dd7cddfSDavid du Colombiersmashed by newer VESA implementations.
34837dd7cddfSDavid du Colombier	- The VESA driver didn't use the scan line length returned by
34847dd7cddfSDavid du Colombierthe BIOS, causing garbage output for some cards and some resolutions.
34857dd7cddfSDavid du Colombier	- The generic printer driver didn't free the bitmap when
34867dd7cddfSDavid du Colombierclosing the device, if it fit entirely in memory.
34877dd7cddfSDavid du Colombier	- The PaintJet driver allocated its data areas on the stack
34887dd7cddfSDavid du Colombierinstead of with gs_malloc.
34897dd7cddfSDavid du Colombier	- The generic printer driver didn't attempt to increase the
34907dd7cddfSDavid du Colombierbuffer size if it was too small.
34917dd7cddfSDavid du Colombier	- The band list driver didn't split large bitmaps properly,
34927dd7cddfSDavid du Colombierleading to garbled characters at high resolutions.
34937dd7cddfSDavid du Colombier	- The GIF and PCX drivers used a color map that often turned
34947dd7cddfSDavid du Colombiergray colors into non-grays.
34957dd7cddfSDavid du Colombier
34967dd7cddfSDavid du ColombierChanges the default put_props procedure so that if the device is
34977dd7cddfSDavid du Colombieropen, setting HWSize and/or HWResolution closes the device and
34987dd7cddfSDavid du Colombierreopens it.
34997dd7cddfSDavid du Colombier
35007dd7cddfSDavid du ColombierAdds a driver for Microsoft Windows 3.n.
35017dd7cddfSDavid du Colombier
35027dd7cddfSDavid du ColombierUpdates the 'cdj' and 'dj500c' DeskJet 500C drivers with new versions.
35037dd7cddfSDavid du Colombier(This are user-contributed drivers.)
35047dd7cddfSDavid du Colombier
35057dd7cddfSDavid du ColombierChanges gdev_prn_put_props so OutputFile can be changed dynamically.
35067dd7cddfSDavid du Colombier
35077dd7cddfSDavid du ColombierUpdates the DEC LN03 driver to also handle the LA50 and LA75.  (This
35087dd7cddfSDavid du Colombieris a user-contributed driver with a FSF copyright.)
35097dd7cddfSDavid du Colombier
35107dd7cddfSDavid du ColombierChanges the LaserJet/DeskJet driver so that -DA4 in the makefile
35117dd7cddfSDavid du Colombiermakes A4 paper the default.  The driver now also sends an appropriate
35127dd7cddfSDavid du Colombierpage size selection command to the printer if the printer supports it.
35137dd7cddfSDavid du Colombier
35147dd7cddfSDavid du ColombierChanges all the Aladdin-supported drivers to return appropriate error
35157dd7cddfSDavid du Colombiercodes rather than -1.
35167dd7cddfSDavid du Colombier
35177dd7cddfSDavid du ColombierAdds a driver for the S3 86C911, a PC graphics accelerator used in
35187dd7cddfSDavid du Colombierthe popular Diamond Stealth board.  This is the first driver that
35197dd7cddfSDavid du Colombieruploads character bitmaps to a device; others will probably follow.
35207dd7cddfSDavid du Colombier
35217dd7cddfSDavid du ColombierAdds user-supplied code to the Epson driver so it will do triple
35227dd7cddfSDavid du Colombierpasses on 9-pin printers for higher resolution.
35237dd7cddfSDavid du Colombier
35247dd7cddfSDavid du ColombierAdds user-supplied code for the PaintJet XL to the PaintJet driver.
35257dd7cddfSDavid du Colombier
35263ff48bf5SDavid du Colombier</pre><h3><a name="V2.5_Interpreter"></a>Interpreter</h3><pre>
35277dd7cddfSDavid du ColombierFixes bugs:
35287dd7cddfSDavid du Colombier	- zdps1.c didn't include alloc.h.
35297dd7cddfSDavid du Colombier	- On 32-bit systems, if maxlength of a dictionary was less
35307dd7cddfSDavid du Colombierthan the actual allocated space, length could become larger than
35317dd7cddfSDavid du Colombiermaxlength.
35327dd7cddfSDavid du Colombier	- flushfile didn't actually flush data when reading.
35337dd7cddfSDavid du Colombier	- The ASCII85Decode filter signalled EOF prematurely.
35347dd7cddfSDavid du Colombier	- The scanner interpreted .3D.glorp as the number 0.3, rather
35357dd7cddfSDavid du Colombierthan as a name.
35367dd7cddfSDavid du Colombier	- Closing a file freed the stream structure, creating
35377dd7cddfSDavid du Colombierdangling references if there were other file objects pointing to the
35387dd7cddfSDavid du Colombiersame stream.
35397dd7cddfSDavid du Colombier	- eexec called handleerror if an error occurred, instead of
35407dd7cddfSDavid du Colombierletting the error propagate to an enclosing stopped.
35417dd7cddfSDavid du Colombier	- gs.h made perror illegal, instead of defining it in terms
35427dd7cddfSDavid du Colombierof strerror.
35437dd7cddfSDavid du Colombier	- One-character names weren't being allocated at
35447dd7cddfSDavid du Colombierinitialization, so they could be left dangling after a restore.
35457dd7cddfSDavid du Colombier	- Internal gsaves (i.e., the ones in show and setcachedevice)
35467dd7cddfSDavid du Colombierdidn't also save istate, so setfont inside a BuildChar procedure
35477dd7cddfSDavid du Colombiermight cause the font outside to get changed.
35487dd7cddfSDavid du Colombier	- The allocator incorrectly freed objects in the current
35497dd7cddfSDavid du Colombierchunk that were older than the current save.
35507dd7cddfSDavid du Colombier	- mark was just an object, rather than an operator, so 'bind'
35517dd7cddfSDavid du Colombierdidn't bind it.  (This is theoretically a problem for null, true, and
35527dd7cddfSDavid du Colombierfalse also, but even more unlikely to be a problem in practice.)
35537dd7cddfSDavid du Colombier	- packed_get didn't cast packed integers to int, so negative
35547dd7cddfSDavid du Colombierinteger elements of packed arrays came out wrong.
35557dd7cddfSDavid du Colombier	- quit just did a gs_exit, instead of returning to the driver
35567dd7cddfSDavid du Colombierin an orderly way.
35577dd7cddfSDavid du Colombier	- Because check_type_access checked for errors in the wrong
35587dd7cddfSDavid du Colombierorder, sometimes type errors were reported as access errors.
35597dd7cddfSDavid du Colombier	- eq didn't check for stack underflow.
35607dd7cddfSDavid du Colombier	- Some of the stream_procs structures weren't properly
35617dd7cddfSDavid du Colombierdeclared const, leading to link errors on VMS.
35627dd7cddfSDavid du Colombier
35637dd7cddfSDavid du ColombierImplements currentcolor, currentcolorspace, setcolor, and
35647dd7cddfSDavid du Colombiersetcolorspace (for DeviceGray, DeviceRGB, and DeviceCMYK only).
35657dd7cddfSDavid du Colombier
35667dd7cddfSDavid du ColombierImplements the dictionary form of image and imagemask.  All the pairs
35677dd7cddfSDavid du Colombierin the Decode array must be the same; Interpolate is ignored.  The
35687dd7cddfSDavid du Colombieronly supported color spaces are DeviceGray, DeviceRGB, and
35697dd7cddfSDavid du ColombierDeviceCMYK.
35707dd7cddfSDavid du Colombier
35717dd7cddfSDavid du ColombierImplements files as allowable sources for the image operators.
35727dd7cddfSDavid du Colombier
35737dd7cddfSDavid du ColombierRemoves the index field from the name structure, moving it to the
35747dd7cddfSDavid du Colombier'size' field of name refs.
35757dd7cddfSDavid du Colombier
35767dd7cddfSDavid du ColombierChanges the unread/sungetc operation to require that the character be
35777dd7cddfSDavid du Colombierthe same as the last one read from the file.
35787dd7cddfSDavid du Colombier
35797dd7cddfSDavid du ColombierAdds fflush calls to some debugging printout routines, because Unix
35807dd7cddfSDavid du Colombiersometimes buffers terminal output.
35817dd7cddfSDavid du Colombier
35827dd7cddfSDavid du ColombierImplements the CCITTFaxEncode and CCITTFaxDecode filters.  Implements
35837dd7cddfSDavid du Colombierthe general case of the SubFileDecode filter.
35847dd7cddfSDavid du Colombier
35857dd7cddfSDavid du ColombierChanges definefont to treat a UniqueID of 0 as equivalent to no
35867dd7cddfSDavid du ColombierUniqueID, because Fontographer output apparently often violates the
35877dd7cddfSDavid du Colombierspecification in this way.
35887dd7cddfSDavid du Colombier
35897dd7cddfSDavid du ColombierChanges the default printer screen from 32.5 to 46 cells/inch.  (The
35907dd7cddfSDavid du Colombierold value was appropriate for a hand-rotated cell with two spots in
35917dd7cddfSDavid du Colombierit.)
35927dd7cddfSDavid du Colombier
35937dd7cddfSDavid du ColombierChanges the utility routines to allow an integral real wherever an
35947dd7cddfSDavid du Colombierinteger parameter is expected in a dictionary, because Fontographer
35957dd7cddfSDavid du Colombierproduces fonts that violate the Adobe specification in this way.
35967dd7cddfSDavid du Colombier
35977dd7cddfSDavid du ColombierAdds a `dosio' feature that provides direct access to memory and to
35987dd7cddfSDavid du ColombierI/O ports under MS-DOS.  (This feature is not included in the
35997dd7cddfSDavid du Colombierstandard executables, of course.)
36007dd7cddfSDavid du Colombier
36017dd7cddfSDavid du ColombierChanges the default character cache limit to a 1/4" x 1/4" character
36027dd7cddfSDavid du Colombierat the default resolution, rather than basing it on the preallocated
36037dd7cddfSDavid du Colombiercache size.
36047dd7cddfSDavid du Colombier
36057dd7cddfSDavid du ColombierRemoves support for t_color objects, which haven't actually been used
36067dd7cddfSDavid du Colombierfor several releases.
36077dd7cddfSDavid du Colombier
36087dd7cddfSDavid du ColombierImplements setcmykcolor and currentcmykcolor as operators, so they
36097dd7cddfSDavid du Colombierwill interact properly with setcolorspace and currentcolorspace.
36107dd7cddfSDavid du Colombier
36117dd7cddfSDavid du ColombierChanges the name of the file.h header file to files.h, to work around
36127dd7cddfSDavid du Colombiera bug in the VMS header library.
36137dd7cddfSDavid du Colombier
36147dd7cddfSDavid du ColombierAdds command line switches @file (to treat file as more command line,
36157dd7cddfSDavid du Colombierto get around the DOS 128-character command line limit) and -ffile
36167dd7cddfSDavid du Colombier(so one can specify file names that begin with - or @).
36177dd7cddfSDavid du Colombier
36187dd7cddfSDavid du ColombierChanges the PFBDecode filter so it takes an additional boolean that
36197dd7cddfSDavid du Colombiersays whether or not to convert binary packets to hex.  (Conversion to
36207dd7cddfSDavid du Colombierhex and back to binary accounted for a substantial amount of the time
36217dd7cddfSDavid du Colombierrequired to load .PFB fonts.)
36227dd7cddfSDavid du Colombier
36237dd7cddfSDavid du ColombierSplits off `copydevice' as a separate operator again.
36247dd7cddfSDavid du Colombier
36253ff48bf5SDavid du Colombier</pre><h3><a name="V2.5_Library"></a>Library</h3><pre>
36267dd7cddfSDavid du ColombierFixes bugs:
36277dd7cddfSDavid du Colombier	- In the VMS environment, string_.h used its own prototypes
36287dd7cddfSDavid du Colombierfor the str... and mem... functions instead of &lt;string.h&gt;
36297dd7cddfSDavid du Colombier	- gx_alloc_char_bits declared cdsize as long, but didn't
36307dd7cddfSDavid du Colombiershorten it when passing it to shorten_cached_char.
36317dd7cddfSDavid du Colombier	- Stroking didn't suppress fattening of the lines.
36327dd7cddfSDavid du Colombier	- kshow didn't update the cached CTM information in the show
36337dd7cddfSDavid du Colombierenumerator when returning from the callout, so further characters
36347dd7cddfSDavid du Colombiercould get drawn in the wrong place.
36357dd7cddfSDavid du Colombier	- When a memory device returned its initial matrix, it
36367dd7cddfSDavid du Colombiersmashed the padding fields, which contained the interpreter's type
36377dd7cddfSDavid du Colombierinformation.
36387dd7cddfSDavid du Colombier	- setcachedevice didn't set the initial matrix in the cache
36397dd7cddfSDavid du Colombiermemory device.
36407dd7cddfSDavid du Colombier	- image_set_rgb (in the image operators) didn't do a
36417dd7cddfSDavid du Colombiergx_color_from_rgb, so in principle one could sometimes get incorrect
36427dd7cddfSDavid du Colombiercolors in an image.
36437dd7cddfSDavid du Colombier	- The decision about whether or not to cache a character
36447dd7cddfSDavid du Colombierbitmap incorrectly compared the character size against cmax rather
36457dd7cddfSDavid du Colombierthan cdata_size.
36467dd7cddfSDavid du Colombier	- show didn't reset the in_cachedevice flag in the graphics
36477dd7cddfSDavid du Colombierstate, so characters rendered by a recursive show were never cached.
36487dd7cddfSDavid du Colombier	- clip and eoclip didn't release the intermediate flattened
36497dd7cddfSDavid du Colombierclip path, causing memory to be lost.
36507dd7cddfSDavid du Colombier	- The tile_diff routine didn't handle the case of two
36517dd7cddfSDavid du Colombieridentical tiles properly; this produced garbage in the band list
36527dd7cddfSDavid du Colombierfile.
36537dd7cddfSDavid du Colombier	- stringwidth didn't round the character origin to an
36547dd7cddfSDavid du Colombierintegral pixel; this interacted badly with hinting, causing
36557dd7cddfSDavid du Colombierimproperly hinted characters to wind up in the cache.
36567dd7cddfSDavid du Colombier	- Bitmaps (including characters) were displaced, as well as
36577dd7cddfSDavid du Colombierbeing clipped, if they intersected the top of a clipping region.
36587dd7cddfSDavid du Colombier	- In gxclist and gdevmem1, the raster computation (although
36597dd7cddfSDavid du Colombiernot the result) could overflow an int on 16-bit machines.
36607dd7cddfSDavid du Colombier
36617dd7cddfSDavid du ColombierImplements decoding (sample mapping) for image and imagemask.
36627dd7cddfSDavid du Colombier
36637dd7cddfSDavid du ColombierImplements hinting for Type 1 fonts, based on (but not copying) the
36647dd7cddfSDavid du Colombieralgorithms from the X11R5 tape.
36657dd7cddfSDavid du Colombier
36667dd7cddfSDavid du ColombierChanges curve rasterizing to use sampling, rather than recursive
36677dd7cddfSDavid du Colombiersubdivision, for characters.  This produces noticeably better output.
36687dd7cddfSDavid du ColombierSpeed penalty for non-cached characters is less than 10% at display
36697dd7cddfSDavid du Colombierresolutions, up to 50% for 300 dpi printers.
36707dd7cddfSDavid du Colombier
36717dd7cddfSDavid du ColombierImplements gs_setcmykcolor and gs_currentcmykcolor.  These are
36727dd7cddfSDavid du Colombiersemi-fake, since they simply convert the color to and from RGB, but
36737dd7cddfSDavid du Colombierthe former does set the current color space properly.
36747dd7cddfSDavid du Colombier
36757dd7cddfSDavid du ColombierChanges clipping regions so they use the any-part-of-pixel rule
36767dd7cddfSDavid du Colombierrather than the center-of-pixel rule.  This helps avoid dropouts when
36777dd7cddfSDavid du Colombierusing very small regions.
36787dd7cddfSDavid du Colombier
36797dd7cddfSDavid du ColombierImplements stroke adjustment.
36807dd7cddfSDavid du Colombier
36813ff48bf5SDavid du Colombier</pre>
36827dd7cddfSDavid du Colombier
36833ff48bf5SDavid du Colombier<hr>
36843ff48bf5SDavid du Colombier
36853ff48bf5SDavid du Colombier<h2><a name="Version2.4.2"></a>Version 2.4.2 (5/8/92)</h2>
36863ff48bf5SDavid du Colombier
36873ff48bf5SDavid du Colombier<p>
36887dd7cddfSDavid du ColombierThis is another quick release.  It finally fixes rotated halftone
36897dd7cddfSDavid du Colombierscreens, and cleans up a few minor problems from 2.4.1.
36907dd7cddfSDavid du Colombier
36913ff48bf5SDavid du Colombier<p>
36927dd7cddfSDavid du ColombierThis release is being distributed only to beta testers and commercial
36937dd7cddfSDavid du Colombierlicensees, since I don't want to be distracted from working on 2.5.
36947dd7cddfSDavid du Colombier
36953ff48bf5SDavid du Colombier<h3><a name="V2.4.2_Procedures"></a>Procedures</h3><pre>
36967dd7cddfSDavid du ColombierFixes bugs:
36977dd7cddfSDavid du Colombier	- UTRACE still appeared in the VMS makefiles.
36987dd7cddfSDavid du Colombier	- The support files (*.bat, *.doc, *.gsf, *.ps, Fontmap,
36997dd7cddfSDavid du ColombierCOPYING, README) weren't included in the MS-DOS tar file.
37007dd7cddfSDavid du Colombier	- The Unix install script didn't install landscap.ps.
37017dd7cddfSDavid du Colombier
37027dd7cddfSDavid du ColombierReplaces the type1imagepath operator with PostScript code (impath.ps,
37037dd7cddfSDavid du Colombiertype1ops.ps) based on the new .imagepath operator.
37047dd7cddfSDavid du Colombier
37057dd7cddfSDavid du ColombierRenames LICENSE as COPYING.
37067dd7cddfSDavid du Colombier
37073ff48bf5SDavid du Colombier</pre><h3><a name="V2.4.2_Utilities"></a>Utilities</h3><pre>
37087dd7cddfSDavid du ColombierFixes bugs:
37097dd7cddfSDavid du Colombier	- pcharstr.ps had an occurrence of Subrs rather than /Subrs,
37107dd7cddfSDavid du Colombiercausing it to not print the Subrs, or to get an error if there were
37117dd7cddfSDavid du Colombiernone.
37127dd7cddfSDavid du Colombier	- font2c.ps didn't get the const declarations for string
37137dd7cddfSDavid du Colombierdictionaries quite right.
37147dd7cddfSDavid du Colombier	- The missing newline at the end of gsbj.bat confused GNU
37157dd7cddfSDavid du Colombierdiff.
37167dd7cddfSDavid du Colombier	- ansi2knr would go into an infinite loop if a statement
37177dd7cddfSDavid du Colombierexceeded its internal buffer size.
37187dd7cddfSDavid du Colombier	- Compiled fonts would get processed by ansi2knr, which
37197dd7cddfSDavid du Colombiermessed them up.
37207dd7cddfSDavid du Colombier
37213ff48bf5SDavid du Colombier</pre><h3><a name="V2.4.2_Platforms"></a>Platforms</h3><pre>
37227dd7cddfSDavid du ColombierFixes bugs:
37237dd7cddfSDavid du Colombier	- Ghostscript didn't supply equivalents for rename and
37247dd7cddfSDavid du Colombiergettimeofday, which some System V platforms lack.
37257dd7cddfSDavid du Colombier	- The missing newline at the end of gp_dosfb.c confused GNU
37267dd7cddfSDavid du Colombierdiff.
37277dd7cddfSDavid du Colombier
37287dd7cddfSDavid du ColombierChanges the Borland makefiles so that stack checking is only enabled
37297dd7cddfSDavid du Colombierif DEBUG or TDEBUG is set.
37307dd7cddfSDavid du Colombier
37313ff48bf5SDavid du Colombier</pre><h3><a name="V2.4.2_Fonts"></a>Fonts</h3>
37327dd7cddfSDavid du Colombier
37333ff48bf5SDavid du Colombier<pre>
37347dd7cddfSDavid du ColombierChanges the names of the Utopia fonts from utrg/utb/utbi/uti to
37357dd7cddfSDavid du Colombierputr/putb/putbi/puti, for consistency with the rest of the font names.
37367dd7cddfSDavid du ColombierChanges cour/courb/courbi/couri to ncrr/ncrb/ncrbi/ncri likewise.
37377dd7cddfSDavid du Colombier
37387dd7cddfSDavid du ColombierReplaces the Charter fonts with the CharterBT fonts donated by
37397dd7cddfSDavid du ColombierBitstream to the X11R5 distribution.
37407dd7cddfSDavid du Colombier
37417dd7cddfSDavid du ColombierAdds font aliasing capability to Fontmap.  Replaces
37427dd7cddfSDavid du ColombierCourier-[Bold]Oblique and ZapfChancery-MediumItalic by aliases.
37437dd7cddfSDavid du Colombier
37447dd7cddfSDavid du ColombierChanges the FontBBox of the Hershey fonts to be an executable, rather
37457dd7cddfSDavid du Colombierthan a literal, array.
37467dd7cddfSDavid du Colombier
37473ff48bf5SDavid du Colombier</pre><h3><a name="V2.4.2_Drivers"></a>Drivers</h3><pre>
37487dd7cddfSDavid du ColombierFixes bugs:
37497dd7cddfSDavid du Colombier	- The GIF driver omitted a `private' on the definition of
37507dd7cddfSDavid du Colombiergif_print_page.
37517dd7cddfSDavid du Colombier	- The GIF driver wrote 16-bit values using the byte ordering
37527dd7cddfSDavid du Colombierof the platform, rather than always LSB first.
37537dd7cddfSDavid du Colombier	- George Cameron's DeskJet 500C driver had an incorrect
37547dd7cddfSDavid du Colombiercontrol sequence for skipping blank lines.
37557dd7cddfSDavid du Colombier
37567dd7cddfSDavid du ColombierAdds 'const' in many places, including the tile and bitmap arguments
37577dd7cddfSDavid du Colombierof the tile_rectangle, copy_mono, and copy_color driver routines.
37587dd7cddfSDavid du ColombierTHIS IS A DRIVER INTERFACE CHANGE.  (Printer drivers are not
37597dd7cddfSDavid du Colombieraffected, since they don't implement these routines.)
37607dd7cddfSDavid du Colombier
37617dd7cddfSDavid du ColombierAdds a driver for the Trident TVGA.
37627dd7cddfSDavid du Colombier
37633ff48bf5SDavid du Colombier</pre><h3><a name="V2.4.2_Interpreter"></a>Interpreter</h3><pre>
37647dd7cddfSDavid du ColombierFixes bugs:
37657dd7cddfSDavid du Colombier	- alloc_free sometimes incorrectly chose to put an unaligned
37667dd7cddfSDavid du Colombierblock in an old segment on a freelist.
37677dd7cddfSDavid du Colombier	- The default undercolor removal function returned its
37687dd7cddfSDavid du Colombierargument rather than returning 0.
37697dd7cddfSDavid du Colombier
37707dd7cddfSDavid du ColombierAdds NullEncode and SubFileDecode to the standard filters, since
37717dd7cddfSDavid du Colombierbdftops uses the latter.
37727dd7cddfSDavid du Colombier
37737dd7cddfSDavid du ColombierAdds RunLengthEncode and RunLengthDecode to the optional filters.
37747dd7cddfSDavid du Colombier
37757dd7cddfSDavid du ColombierRemoves the type1imagepath operator.  (It is still available as
37767dd7cddfSDavid du ColombierPostScript code, impath.ps.)  Replaces it with a simpler outline
37777dd7cddfSDavid du Colombiertracing operator .imagepath.
37787dd7cddfSDavid du Colombier
37797dd7cddfSDavid du ColombierAdds 'const' in many places.
37807dd7cddfSDavid du Colombier
37817dd7cddfSDavid du ColombierMakes fileposition (but not setfileposition) legal for NullEncode
37827dd7cddfSDavid du Colombierfilters.
37837dd7cddfSDavid du Colombier
37847dd7cddfSDavid du ColombierChanges the default transfer function for high-resolution devices
37857dd7cddfSDavid du Colombierfrom the identity function to the square root function.
37867dd7cddfSDavid du Colombier
37877dd7cddfSDavid du ColombierMoves array_get from zgeneric.c to iutil.c.
37887dd7cddfSDavid du Colombier
37897dd7cddfSDavid du ColombierChanges uses of fopen to add a "b" to the access mode, rather than
37907dd7cddfSDavid du Colombierrelying on the _fmode global variable on MS-DOS platforms.
37917dd7cddfSDavid du Colombier
37927dd7cddfSDavid du ColombierAllows use of the -Z switch even when gsmain.c wasn't compiled with
37937dd7cddfSDavid du Colombier-DDEBUG, since other modules might have been.
37947dd7cddfSDavid du Colombier
37957dd7cddfSDavid du ColombierReorganizes gs.c and gsmain.c so that the latter can be used in
37967dd7cddfSDavid du Colombierserver environments.
37977dd7cddfSDavid du Colombier
37987dd7cddfSDavid du ColombierReplaces all uses of stdin/out/err with gs_stdin/out/err.
37997dd7cddfSDavid du Colombier
38007dd7cddfSDavid du ColombierMakes the number of permanent entries on the dictionary stack a
38017dd7cddfSDavid du Colombierparameter, to allow inserting globaldict in the future.
38027dd7cddfSDavid du Colombier
38037dd7cddfSDavid du ColombierChanges BlueShift in the Type 1 font Private dictionary to allow real
38047dd7cddfSDavid du Colombiernumbers.  (This differs from the Adobe specification, but at least
38057dd7cddfSDavid du Colombierone commercial font has a real number for BlueShift.)
38067dd7cddfSDavid du Colombier
38073ff48bf5SDavid du Colombier</pre><h3><a name="V2.4.2_Library"></a>Library</h3><pre>
38087dd7cddfSDavid du ColombierFixes bugs:
38097dd7cddfSDavid du Colombier	- The doubling check in init_ht (gxht.c) still sometimes
38107dd7cddfSDavid du Colombierthought there was enough room to double the tile when there actually
38117dd7cddfSDavid du Colombierwasn't.
38127dd7cddfSDavid du Colombier	- Rotated halftone screens didn't work.
38137dd7cddfSDavid du Colombier	- gxarith.h used #ifdef vax, rather than #if
38147dd7cddfSDavid du Colombier!arch_floats_are_IEEE, to test whether IEEE floats were being used.
38157dd7cddfSDavid du Colombier	- pathforall didn't report a trailing moveto.
38167dd7cddfSDavid du Colombier
38177dd7cddfSDavid du ColombierReplaces gs_type1imagepath with gs_imagepath.
38187dd7cddfSDavid du Colombier
38197dd7cddfSDavid du ColombierAllows sOUTPUTFILE=-, meaning output to stdout.
38207dd7cddfSDavid du Colombier
38217dd7cddfSDavid du ColombierAdds 'const' in many places.
38227dd7cddfSDavid du Colombier
38237dd7cddfSDavid du ColombierReplaces all uses of stdin/out/err with gs_stdin/out/err.
38247dd7cddfSDavid du Colombier
38253ff48bf5SDavid du Colombier</pre>
38267dd7cddfSDavid du Colombier
38273ff48bf5SDavid du Colombier<h2><a name="Version2.4.1"></a>Version 2.4.1 (4/21/92)</h2>
38283ff48bf5SDavid du Colombier
38293ff48bf5SDavid du Colombier<p>This is a quick release to fix minor problems discovered in 2.4, and
38307dd7cddfSDavid du Colombierto add a few improvements that didn't quite make it into 2.4.  It
38317dd7cddfSDavid du Colombieralso adds GIF and PCX file support.
38327dd7cddfSDavid du Colombier
38333ff48bf5SDavid du Colombier<h3><a name="V2.4.1_Procedures"></a>Procedures</h3><pre>
38347dd7cddfSDavid du ColombierFixes bugs:
38357dd7cddfSDavid du Colombier	- Some makefile dependencies, and the ccgs script, caused trouble
38367dd7cddfSDavid du Colombierfor parallel versions of `make'.
38377dd7cddfSDavid du Colombier	- Compiling genarch with -O with gcc on the RS/6000 produced a
38387dd7cddfSDavid du Colombierbuggy executable.
38397dd7cddfSDavid du Colombier
38407dd7cddfSDavid du ColombierFixes some minor problems in make.doc.
38417dd7cddfSDavid du Colombier
38427dd7cddfSDavid du ColombierAdds DEVICE_DEVS2..5 to handle long device lists.
38437dd7cddfSDavid du Colombier
38447dd7cddfSDavid du ColombierRemoves the need to set GS_RUN_EXE when using the Watcom compiler on
38457dd7cddfSDavid du ColombierMS-DOS systems.
38467dd7cddfSDavid du Colombier
38477dd7cddfSDavid du ColombierGets rid of gs_ccfnt.ps, merging its function into gs_fonts.ps.
38487dd7cddfSDavid du Colombier
38497dd7cddfSDavid du ColombierGets rid of gconfig.ps; this information is now compiled in gconfig.c.
38507dd7cddfSDavid du Colombier
38513ff48bf5SDavid du Colombier</pre><h3><a name="V2.4.1_Utilities"></a>Utilities</h3><pre>
38527dd7cddfSDavid du ColombierFixes bugs:
38537dd7cddfSDavid du Colombier	- The palette for pstoppm in 8-bit mode didn't contain all 8
38547dd7cddfSDavid du Colombierprimary colors.
38557dd7cddfSDavid du Colombier	- font2c used just values_ to mean &amp;values_[0]; some compilers
38567dd7cddfSDavid du Colombiercouldn't handle this.
38577dd7cddfSDavid du Colombier
38587dd7cddfSDavid du ColombierMakes font2c insert `const' in many appropriate places.
38597dd7cddfSDavid du Colombier
38603ff48bf5SDavid du Colombier</pre><h3><a name="V2.4.1_Drivers"></a>Drivers</h3><pre>
38617dd7cddfSDavid du ColombierFixes bugs:
38627dd7cddfSDavid du Colombier	- The SunView driver had not been updated properly for 2.4 and was
38637dd7cddfSDavid du Colombierpretty thoroughly broken.
38647dd7cddfSDavid du Colombier	- None of the printer drivers worked properly with the Watcom
38657dd7cddfSDavid du Colombiercompiler, because stdprn was doing \n -&gt; \r\n substitution.
38667dd7cddfSDavid du Colombier	- If the generic printer driver couldn't allocate the requested
38677dd7cddfSDavid du Colombiersize command list buffer, it gave up rather than trying to allocate a
38687dd7cddfSDavid du Colombiersmaller buffer.
38697dd7cddfSDavid du Colombier	- The SuperVGA drivers (except for the VESA driver) didn't
38707dd7cddfSDavid du Colombierwork with the Watcom compiler, because a couple of places in the
38717dd7cddfSDavid du Colombierdrivers weren't truncating the offset of "segmented" pointers
38727dd7cddfSDavid du Colombierproperly.
38737dd7cddfSDavid du Colombier	- Some of the H-P used &lt;esc&gt;*b#Y rather than &lt;esc&gt;*p+#Y for
38747dd7cddfSDavid du Colombiervertical positioning; this apparently is wrong, at least for the
38757dd7cddfSDavid du ColombierLJIIp.
38767dd7cddfSDavid du Colombier
38777dd7cddfSDavid du ColombierRemoves the dependence of the X Windows driver on Xt, Xext, and Xmu.  As a
38787dd7cddfSDavid du Colombierresult, Ghostscript will not install a standard colormap itself, but it
38797dd7cddfSDavid du Colombierwill use one if one is already installed.
38807dd7cddfSDavid du Colombier
38817dd7cddfSDavid du ColombierAdds a set of drivers for Portable Bitmap, Graymap, and Pixmap file
38827dd7cddfSDavid du Colombierformats.
38837dd7cddfSDavid du Colombier
38847dd7cddfSDavid du ColombierAdds drivers for monochrome, EGA/VGA-style, and SuperVGA-style PCX
38857dd7cddfSDavid du Colombierfile formats.
38867dd7cddfSDavid du Colombier
38877dd7cddfSDavid du ColombierAdds drivers for monochrome and 256-color GIF file formats.
38887dd7cddfSDavid du Colombier
38893ff48bf5SDavid du Colombier</pre><h3><a name="V2.4.1_Fonts"></a>Fonts</h3><pre>
38907dd7cddfSDavid du ColombierAdds ZapfChancery-MediumItalic as a copy of ZapfChancery-Oblique.
38917dd7cddfSDavid du Colombier
38923ff48bf5SDavid du Colombier</pre><h3><a name="V2.4.1_Interpreter"></a>Interpreter</h3><pre>
38937dd7cddfSDavid du ColombierFixes bugs:
38947dd7cddfSDavid du Colombier	- A value with l_new set could 'escape' to save level 0 on a
38957dd7cddfSDavid du Colombierstack; if stored, it prevented the slot from being saved and restored
38967dd7cddfSDavid du Colombierproperly.
38977dd7cddfSDavid du Colombier	- 16#7fffffff + 1 gave the floating point equivalent of -2^31, not
38987dd7cddfSDavid du Colombier2^31.
38997dd7cddfSDavid du Colombier	- The PFBDecode filter computed the packet length incorrectly if
39007dd7cddfSDavid du Colombierthe 0x8000-bit of the length was set.
39017dd7cddfSDavid du Colombier	- 5-byte numbers in Type 1 CharStrings complained of a rangecheck
39027dd7cddfSDavid du Colombierif they exceeded 16 bits, rather than if they exceeded the integer part of
39037dd7cddfSDavid du Colombiera fixed.
39047dd7cddfSDavid du Colombier	- (, ), and \ appearing in file name arguments in the command
39057dd7cddfSDavid du Colombierline did not work properly.
39067dd7cddfSDavid du Colombier
39077dd7cddfSDavid du ColombierAdds 'const' in many places.
39087dd7cddfSDavid du Colombier
39097dd7cddfSDavid du ColombierChanges the random number generator to be the same as the one used in
39107dd7cddfSDavid du ColombierLevel 2 PostScript (as reported by Ed Taft on comp.lang.postscript).
39117dd7cddfSDavid du Colombier
39127dd7cddfSDavid du ColombierExits with code 1 rather than code 0 on an unrecoverable error detected at
39137dd7cddfSDavid du Colombierthe PostScript level.
39147dd7cddfSDavid du Colombier
39157dd7cddfSDavid du ColombierMakes dictionaries expand automatically when they fill up.
39167dd7cddfSDavid du Colombier
39177dd7cddfSDavid du ColombierAdds gp_exit to complement gp_init.
39187dd7cddfSDavid du Colombier
39197dd7cddfSDavid du ColombierChanges dictionaries to always allocate a power of 2 entries on
39207dd7cddfSDavid du Colombier32-bit machines.  Changes the name table to allocate indices
39217dd7cddfSDavid du Colombierscattered, so dictionary lookup doesn't have to do a multiply to
39227dd7cddfSDavid du Colombierscramble the index.
39237dd7cddfSDavid du Colombier
39247dd7cddfSDavid du ColombierChanges the handling of currentfile to do "shallow binding" so stack
39257dd7cddfSDavid du Colombiersearching is almost never required.
39267dd7cddfSDavid du Colombier
39273ff48bf5SDavid du Colombier</pre><h3><a name="V2.4.1_Library"></a>Library</h3><pre>
39287dd7cddfSDavid du ColombierFixes bugs:
39297dd7cddfSDavid du Colombier	- arc and arcn got a numeric exception if the radius was zero.
39307dd7cddfSDavid du Colombier	- The undocumented 15 opcode in Type 1 fonts wasn't ignored.
39317dd7cddfSDavid du Colombier	- PaintType 3 wasn't allowed.  (It isn't clear what it should
39327dd7cddfSDavid du Colombiermean; we treat it as equivalent to 0.)
39337dd7cddfSDavid du Colombier	- The VAX/VMS C compiler was generating incorrect code for the
39347dd7cddfSDavid du Colombierchi_bits and cmask macros in gdevmem, producing incorrect output.
39357dd7cddfSDavid du Colombier	- If the result of the slow algorithm for intersecting clipping
39367dd7cddfSDavid du Colombierpaths was a rectangle, the wrong thing happened (cbox didn't get set).
39377dd7cddfSDavid du Colombier	- gx_path_is_rectangle didn't recognize open rectangles.
39387dd7cddfSDavid du Colombier	- clist_change_tile didn't check properly whether the tile
39397dd7cddfSDavid du Colombiersize had changed, so changing the screen could produce invalid band
39407dd7cddfSDavid du Colombierfiles.
39417dd7cddfSDavid du Colombier	- The image operators did the wrong thing in the 1-for-1
39427dd7cddfSDavid du Colombiercase, interleaving N bytes of data with 7*N bytes of garbage.
39437dd7cddfSDavid du Colombier	- stroke sometimes handled bevel and miter joins wrong in
39447dd7cddfSDavid du Colombierreflected coordinate systems.
39457dd7cddfSDavid du Colombier	- init_ht checked incorrectly whether there was enough room
39467dd7cddfSDavid du Colombierto Y-replicate tiles, so sometimes it did it when it shouldn't have.
39477dd7cddfSDavid du Colombier	- stroke sometimes thought lines were thin when they weren't.
39487dd7cddfSDavid du Colombier
39497dd7cddfSDavid du ColombierAdds 'const' in many places.
39507dd7cddfSDavid du Colombier
39517dd7cddfSDavid du ColombierAdds support for 2- and 4-bit-per-pixel memory devices.
39527dd7cddfSDavid du Colombier
39533ff48bf5SDavid du Colombier</pre>
39547dd7cddfSDavid du Colombier
39553ff48bf5SDavid du Colombier<h2><a name="Version2.4"></a>Version 2.4 (3/25/92)</h2>
39563ff48bf5SDavid du Colombier
39573ff48bf5SDavid du Colombier<p>This is a major release that adds SuperVGA support, support for
39583ff48bf5SDavid du ColombierMetrics,
39597dd7cddfSDavid du Colombiersettable device properties, and incremental font loading.  It also
39607dd7cddfSDavid du Colombierincludes important performance improvements, based on rewrites of some key
39617dd7cddfSDavid du Colombieralgorithms, and quite a few new Level 2 / Display PostScript facilities.
39627dd7cddfSDavid du Colombier
39633ff48bf5SDavid du Colombier<h3><a name="V2.4_Procedures"></a>Procedures</h3><pre>
39647dd7cddfSDavid du ColombierFixes bugs:
39657dd7cddfSDavid du Colombier	- The rule for compiling gconfig.c didn't include the -I switches.
39667dd7cddfSDavid du Colombier	- .bat files were being distributed with a \n line terminator
39677dd7cddfSDavid du Colombierrather than \r\n.
39687dd7cddfSDavid du Colombier	- A CLOSE MODULE_LIST was needed after END_COMPILE: in the VMS
39697dd7cddfSDavid du Colombiercommand files.
39707dd7cddfSDavid du Colombier	- Unix systems couldn't handle multiple drivers with overlapping
39717dd7cddfSDavid du Colombiersets of files.
39727dd7cddfSDavid du Colombier	- -s&lt;name&gt; defined &lt;name&gt; as a null, rather than as an empty string.
39737dd7cddfSDavid du Colombier
39747dd7cddfSDavid du ColombierAdds gconfig.ps to the list of needed configuration files.
39757dd7cddfSDavid du Colombier
39767dd7cddfSDavid du ColombierChanges the way that the makefile handles nested .h files, so that it
39777dd7cddfSDavid du Colombierdoesn't have to `touch' them.
39787dd7cddfSDavid du Colombier
39797dd7cddfSDavid du ColombierAdds the loadallfonts procedure to gs_fonts.ps.
39807dd7cddfSDavid du Colombier
39817dd7cddfSDavid du ColombierChanges the standard DOS configuration to include VGA, EGA, VESA, Epson,
39827dd7cddfSDavid du ColombierBubbleJet, and H-P printer drivers.
39837dd7cddfSDavid du Colombier
39847dd7cddfSDavid du ColombierRenames ghost.mak as gs.mak, and gdevs.mak as devs.mak.
39857dd7cddfSDavid du Colombier
39867dd7cddfSDavid du ColombierAdds a USE_ASM flag so that one can build a DOS version of Ghostscript
39877dd7cddfSDavid du Colombierwithout having an assembler.
39887dd7cddfSDavid du Colombier
39897dd7cddfSDavid du ColombierSplits off common code from the two MS-DOS makefiles into tccommon.mak.
39907dd7cddfSDavid du Colombier
39917dd7cddfSDavid du ColombierReplaces the COPYING and LICENSE files with a new LICENSE file containing
39927dd7cddfSDavid du Colombierversion 2 of the GNU General Public License.
39937dd7cddfSDavid du Colombier
39947dd7cddfSDavid du ColombierRemoves DEVICES and DEVICE_OBJS from the makefiles, since they are no
39957dd7cddfSDavid du Colombierlonger needed.
39967dd7cddfSDavid du Colombier
39977dd7cddfSDavid du ColombierAdds a GS_DEVICE environment variable to supply a default device name if
39987dd7cddfSDavid du Colombierdesired.
39997dd7cddfSDavid du Colombier
40007dd7cddfSDavid du ColombierAdds ansihead.mak and unix-ansi.mak, to parallel [g]cc-head.mak and
40017dd7cddfSDavid du Colombierunix-[g]cc.mak, for other ANSI C compilers.
40027dd7cddfSDavid du Colombier
40037dd7cddfSDavid du ColombierChanges the way that optional features are defined in the makefiles, so
40047dd7cddfSDavid du Colombierthat they actually work.
40057dd7cddfSDavid du Colombier
40067dd7cddfSDavid du ColombierAdds support for the Watcom C/386 compiler.
40077dd7cddfSDavid du Colombier
40087dd7cddfSDavid du ColombierAllows # in the command line as equivalent to =, to compensate for
40097dd7cddfSDavid du Colombierbrain-damaged MS-DOS shell.
40107dd7cddfSDavid du Colombier
40117dd7cddfSDavid du ColombierAdds -sOUTPUTFILE= to set the output file or pipe.
40127dd7cddfSDavid du Colombier
40137dd7cddfSDavid du ColombierAdds -dWRITESYSTEMDICT to leave systemdict writable.
40147dd7cddfSDavid du Colombier
40153ff48bf5SDavid du Colombier</pre><h3><a name="V2.4_Utilities"></a>Utilities</h3><pre>
40167dd7cddfSDavid du ColombierFixes bugs:
40177dd7cddfSDavid du Colombier	- pcharstr.ps insisted on having Subrs be present in the font.
40187dd7cddfSDavid du Colombier	- pcharstr.ps decoded negative numbers between -108 and -1131
40197dd7cddfSDavid du Colombierincorrectly.
40207dd7cddfSDavid du Colombier	- pfbtogs.ps didn't handle packets longer than 64K correctly.
40217dd7cddfSDavid du Colombier
40227dd7cddfSDavid du ColombierChanges the bdftops utility so that it makes entries for UnderlinePosition
40237dd7cddfSDavid du Colombierand UnderlineThickness in FontInfo, and so that it always records a
40247dd7cddfSDavid du ColombierFullName (the FontName if no other is provided).
40257dd7cddfSDavid du Colombier
40267dd7cddfSDavid du ColombierChanges the name of the pfbtops utility to pfbtogs, because groff already
40277dd7cddfSDavid du Colombierincludes a program called pfbtops.
40287dd7cddfSDavid du Colombier
40297dd7cddfSDavid du ColombierAdds the gslp utility for doing "line printing" of text files, similar to
40307dd7cddfSDavid du Colombierenscript + lpr.
40317dd7cddfSDavid du Colombier
40327dd7cddfSDavid du ColombierAdds a new variable DITHERPPI that enables a different dither pattern,
40337dd7cddfSDavid du Colombierclaimed to be better for printers.
40347dd7cddfSDavid du Colombier
40357dd7cddfSDavid du ColombierAdds the font2c utility for compiling Type 1 fonts into C, so they can be
40367dd7cddfSDavid du Colombierlinked into an executable rather than loaded dynamically.
40377dd7cddfSDavid du Colombier
40383ff48bf5SDavid du Colombier</pre><h3><a name="V2.4_Drivers"></a>Drivers</h3><pre>
40397dd7cddfSDavid du ColombierFixes bugs:
40407dd7cddfSDavid du Colombier	- gdev_prn_copy_scan_lines was erroneously masking the last byte
40417dd7cddfSDavid du Colombierof data even on color printers, as was paintjet_print_page.
40427dd7cddfSDavid du Colombier	- The TruFax driver had a couple of compilation errors, since it
40437dd7cddfSDavid du Colombierhadn't been compiled in a while.
40447dd7cddfSDavid du Colombier	- The BGI driver sometimes didn't consult BGIPATH when looking for
40457dd7cddfSDavid du Colombier.BGI files.
40467dd7cddfSDavid du Colombier	- initclip did the wrong thing with memory devices.
40477dd7cddfSDavid du Colombier	- The BGI driver didn't look in BGIDIR for .BGI files.
40487dd7cddfSDavid du Colombier	- The Epson driver didn't set the right margin properly with
40497dd7cddfSDavid du ColombierESC+Q.
40507dd7cddfSDavid du Colombier	- The BJ-10e driver was badly broken.
40517dd7cddfSDavid du Colombier	- gdev_prn_open/close_printer didn't reset the command list file,
40527dd7cddfSDavid du Colombierso it was taking quadratic time to print multi-page documents.
40537dd7cddfSDavid du Colombier
40547dd7cddfSDavid du ColombierAdds color to the SunView driver.
40557dd7cddfSDavid du Colombier
40567dd7cddfSDavid du ColombierAdds selectable resolution (75, 100, 150, or 300 DPI) to the
40577dd7cddfSDavid du ColombierDeskJet/LaserJet driver.
40587dd7cddfSDavid du Colombier
40597dd7cddfSDavid du ColombierChanges gssetdev so that drivers can specify special libraries to be
40607dd7cddfSDavid du Colombierloaded, as well as object files.
40617dd7cddfSDavid du Colombier
40627dd7cddfSDavid du ColombierAdds a driver for VESA-compliant SuperVGA displays.  This driver handles
40637dd7cddfSDavid du Colombierall resolutions from 640 x 400 up to 1280 x 1024, in 256-color mode.  The
40647dd7cddfSDavid du Colombierdefault is VGA resolution (640 x 480).
40657dd7cddfSDavid du Colombier
40667dd7cddfSDavid du ColombierAdds a driver for the ATI Wonder SuperVGA card, and for SuperVGA cards
40677dd7cddfSDavid du Colombierusing the Tseng Labs ET3000 or ET4000 chip such as the STB VGA EM-16 and
40687dd7cddfSDavid du Colombierthe Orchid ProDesigner II (256-color modes only).
40697dd7cddfSDavid du Colombier
40707dd7cddfSDavid du ColombierAdds a driver for Trident and Tseng Labs SuperVGA cards in 800 x 600,
40717dd7cddfSDavid du Colombier16-color modes (for cards with only 256K of memory).
40727dd7cddfSDavid du Colombier
40737dd7cddfSDavid du ColombierAdds user-contributed drivers for the Ricoh 4081, DEC LN03, Canon LBP-8II,
40747dd7cddfSDavid du Colombierand H-P DeskJet 500C printers.
40757dd7cddfSDavid du Colombier
40767dd7cddfSDavid du ColombierAdds Tim Theisen's Ghostview changes to the X11 driver.
40777dd7cddfSDavid du Colombier
40787dd7cddfSDavid du ColombierMAKES NON-BACKWARD-COMPATIBLE CHANGES TO THE DRIVER PROCEDURE INTERFACE as
40797dd7cddfSDavid du Colombierfollows:
40807dd7cddfSDavid du Colombier
40817dd7cddfSDavid du Colombier	- Changes map_rgb_color and map_color_rgb to always work in a
40827dd7cddfSDavid du Colombier	    16-bit color value space, rather than a space defined by the
40837dd7cddfSDavid du Colombier	    maximum number of distinct colors provided by the device.
40847dd7cddfSDavid du Colombier
40857dd7cddfSDavid du Colombier	- Adds an argument to the output_page procedure to indicate
40867dd7cddfSDavid du Colombier	    whether the procedure is being called for copypage or
40877dd7cddfSDavid du Colombier	    showpage, and a num_copies argument.
40887dd7cddfSDavid du Colombier
40897dd7cddfSDavid du Colombier	- Adds a gx_bitmap_id to the copy_ and tile_ procedures, so that
40907dd7cddfSDavid du Colombier	    drivers can cache bitmaps in the server or device if they want
40917dd7cddfSDavid du Colombier	    to.
40927dd7cddfSDavid du Colombier
40937dd7cddfSDavid du Colombier	- Removes fill_trapezoid and tile_trapezoid.
40947dd7cddfSDavid du Colombier
40957dd7cddfSDavid du Colombier	- Adds a new get_bits procedure for reading the bits back from the
40967dd7cddfSDavid du Colombier	    driver buffer (when possible), replacing copy_scan_lines.
40977dd7cddfSDavid du Colombier	    This procedure takes a new argument describing padding and
40987dd7cddfSDavid du Colombier	    byte swapping, and returns a different value from
40997dd7cddfSDavid du Colombier	    copy_scan_lines.
41007dd7cddfSDavid du Colombier
41017dd7cddfSDavid du Colombier	- Adds get_props and put_props procedures for accessing arbitrary
41027dd7cddfSDavid du Colombier	    additional properties of devices.  The interface is quite
41037dd7cddfSDavid du Colombier	    complex, but provides a great deal of flexibility.
41047dd7cddfSDavid du Colombier
41057dd7cddfSDavid du ColombierSee drivers.doc for details.
41067dd7cddfSDavid du Colombier
41077dd7cddfSDavid du ColombierChanges gdev_mem_bytes_per_scan_line to gdev_prn_bytes_per_scan_line.
41087dd7cddfSDavid du Colombier
41097dd7cddfSDavid du ColombierAdds a user-contributed driver for DigiBoard, Inc.'s fax software.
41107dd7cddfSDavid du Colombier
41113ff48bf5SDavid du Colombier</pre><h3><a name="V2.4_Fonts"></a>Fonts</h3>
41127dd7cddfSDavid du Colombier
41133ff48bf5SDavid du Colombier<pre>
41147dd7cddfSDavid du ColombierChanges Type1BuildChar so it uses the information from the Metrics
41157dd7cddfSDavid du Colombierdictionary in the font, if Metrics is present.
41167dd7cddfSDavid du Colombier
41177dd7cddfSDavid du ColombierChanges findfont (.loadfont) so it recognizes .PFB fonts and can load them
41187dd7cddfSDavid du Colombierdirectly.  Also changes .loadfont to disable packing temporarily, because
41197dd7cddfSDavid du Colombiersome fonts rely on procedures being writable (!).
41207dd7cddfSDavid du Colombier
41213ff48bf5SDavid du Colombier</pre><h3><a name="V2.4_Interpreter"></a>Interpreter</h3><pre>
41227dd7cddfSDavid du ColombierFixes bugs:
41237dd7cddfSDavid du Colombier	- The hypot function is not available on some Unix systems.
41247dd7cddfSDavid du Colombier	- Ghostscript didn't flush and close files when exiting.
41257dd7cddfSDavid du Colombier	- In statusdict, the /margins procedure used .leftmargin, but
41267dd7cddfSDavid du Colombier/setmargins used .lmargin.
41277dd7cddfSDavid du Colombier	- An out-of-range putinterval would simply do nothing, rather than
41287dd7cddfSDavid du Colombierreporting an error.
41297dd7cddfSDavid du Colombier	- If an attempt to allocate a block larger than the allocator's
41307dd7cddfSDavid du Colombierchunk size (20K) failed, the allocator would erroneously think it had
41317dd7cddfSDavid du Colombiersucceeded.
41327dd7cddfSDavid du Colombier	- The bind operator made the top-level procedure read-only, as
41337dd7cddfSDavid du Colombierwell as interior procedures.
41347dd7cddfSDavid du Colombier	- gs.c copied 1 extra character for the value of strings defined
41357dd7cddfSDavid du Colombieron the command line with -s...=, which could smash the first byte of the
41367dd7cddfSDavid du Colombiernext object in memory.
41377dd7cddfSDavid du Colombier	- copying a dictionary erroneously required the maxlength of the
41387dd7cddfSDavid du Colombierdestination to be greater than or equal to the maxlength of the source,
41397dd7cddfSDavid du Colombierrather than the length of the source.
41407dd7cddfSDavid du Colombier	- undef didn't correctly decide when to mark a deleted entry as
41417dd7cddfSDavid du Colombierdeleted vs. free; as a result, some keys couldn't be looked up properly
41427dd7cddfSDavid du Colombierafter an undef.
41437dd7cddfSDavid du Colombier	- type1encrypt and type1decrypt didn't set the size of the result
41447dd7cddfSDavid du Colombierproperly.
41457dd7cddfSDavid du Colombier	- cvi and cvr didn't allow leading or trailing whitespace in
41467dd7cddfSDavid du Colombierstrings.
41477dd7cddfSDavid du Colombier	- cvs didn't cause an error if the destination string was too
41487dd7cddfSDavid du Colombiershort.
41497dd7cddfSDavid du Colombier	- Many operators didn't check correctly for stack underflow (off
41507dd7cddfSDavid du Colombierby 1).
41517dd7cddfSDavid du Colombier	- `for' used reals, rather than integers, if the limit was a real,
41527dd7cddfSDavid du Colombiereven if the initial value and increment were integers.
41537dd7cddfSDavid du Colombier	- `restore' didn't properly invalidate copies of the save object
41547dd7cddfSDavid du Colombierbeing restored from; `save dup restore restore' would crash.
41557dd7cddfSDavid du Colombier	- `restore' sometimes didn't undo stores into matrices that were
41567dd7cddfSDavid du Colombierstored into by operators.  (The identity matrix always had l_new set.)
41577dd7cddfSDavid du Colombier	- readline gave a rangecheck if the input line exactly filled the
41587dd7cddfSDavid du Colombierstring.
41597dd7cddfSDavid du Colombier	- `--' as the last switch on the command line caused a crash
41607dd7cddfSDavid du Colombierrather than an error message.
41617dd7cddfSDavid du Colombier	- On MS-DOS systems, filenameforall didn't handle patterns with a
41627dd7cddfSDavid du Colombierdrive or directory specifier properly.
41637dd7cddfSDavid du Colombier	- stroke sometimes called gz_draw_line_fixed even if the line went
41647dd7cddfSDavid du Colombieroutside the clipping box by 1 pixel.
41657dd7cddfSDavid du Colombier
41667dd7cddfSDavid du ColombierChanges the loop that binds procedure "operators" to entirely disable the
41677dd7cddfSDavid du Colombierhandling of the typecheck error, rather than to use stopped.  This cuts
41687dd7cddfSDavid du Colombierinitialization time significantly, and also eliminates about 35K of wasted
41697dd7cddfSDavid du Colombierspace (for saving the stacks).
41707dd7cddfSDavid du Colombier
41717dd7cddfSDavid du ColombierChanges the version "operator" so it returns 47.0.  Adds "revision" to
41727dd7cddfSDavid du Colombierdefine the Ghostscript version # x 100.
41737dd7cddfSDavid du Colombier
41747dd7cddfSDavid du ColombierAdds gscurrentresolution and gssetresolution procedures for getting and
41757dd7cddfSDavid du Colombiersetting the device resolution.
41767dd7cddfSDavid du Colombier
41777dd7cddfSDavid du ColombierAdds -r&lt;res&gt; and -r&lt;xres&gt;x&lt;yres&gt; as command line options for setting
41787dd7cddfSDavid du Colombierdevice resolution.
41797dd7cddfSDavid du Colombier
41807dd7cddfSDavid du ColombierAdds a facility for incrementally loading the individual CharStrings of a
41817dd7cddfSDavid du ColombierGhostscript font from the disk.  This can save a lot of memory, at the
41827dd7cddfSDavid du Colombierexpense of slower rendering.  (It is intended primarily for MS-DOS
41837dd7cddfSDavid du Colombiersystems.)
41847dd7cddfSDavid du Colombier
41857dd7cddfSDavid du ColombierChanges findlibfile to return the name of the file that was actually
41867dd7cddfSDavid du Colombieropened, as well as the file itself, when the operation succeeds.
41877dd7cddfSDavid du Colombier
41887dd7cddfSDavid du ColombierChanges the name of the main entry to the interpreter from interpret to
41897dd7cddfSDavid du Colombiergs_interpret, because of a conflict with a Data General library procedure.
41907dd7cddfSDavid du Colombier
41917dd7cddfSDavid du ColombierAdds the .setmetrics operator to set the metrics for the current
41927dd7cddfSDavid du Colombiercharacter for Type 1 fonts.
41937dd7cddfSDavid du Colombier
41947dd7cddfSDavid du ColombierAdds more LaserWriter-specific entries to statusdict.
41957dd7cddfSDavid du Colombier
41967dd7cddfSDavid du ColombierGives names to all the internal `operators', so they will print out
41977dd7cddfSDavid du Colombierreasonably when an error occurs.
41987dd7cddfSDavid du Colombier
41997dd7cddfSDavid du ColombierExtends the status operator to accept a string and return file
42007dd7cddfSDavid du Colombierinformation, as defined for Level 2 PostScript.
42017dd7cddfSDavid du Colombier
42027dd7cddfSDavid du ColombierAdds the filter operator and some specific filters: ASCII85Encode,
42037dd7cddfSDavid du ColombierASCII85Decode, ASCIIHexEncode, ASCIIHexDecode, eexecDecode, NullEncode,
42047dd7cddfSDavid du ColombierPFBDecode, and the null case of SubFileDecode.
42057dd7cddfSDavid du Colombier
42067dd7cddfSDavid du ColombierExtends the scanner to recognize the Level 2 &lt;&lt; and &gt;&gt; tokens.
42077dd7cddfSDavid du Colombier
42087dd7cddfSDavid du ColombierAdds a facility for extracting the text strings from a PostScript file and
42097dd7cddfSDavid du Colombierwriting them out in a simple format (selected by -dASCIIOUT, implemented
42107dd7cddfSDavid du Colombierby gs_2asc.ps).
42117dd7cddfSDavid du Colombier
42127dd7cddfSDavid du ColombierImplements all of the remaining Display PostScript facilities that are
42137dd7cddfSDavid du Colombieralso in Level 2 (i.e., everything in section A.1.3 of the PostScript
42147dd7cddfSDavid du ColombierLanguage Reference Manual, Second Edition, that is not also in section
42157dd7cddfSDavid du ColombierA.1.2).  The virtual memory operations are all stubs; the new halftone
42167dd7cddfSDavid du Colombieroptions are not fully implemented.
42177dd7cddfSDavid du Colombier
42187dd7cddfSDavid du ColombierChanges makeimagedevice to use a string of gray or RGB values, rather than
42197dd7cddfSDavid du Colombieran array of color objects, to specify the palette.  Removes
42207dd7cddfSDavid du Colombiercurrentgscolor and setgscolor from the interpreter, but leaves t_color
42217dd7cddfSDavid du Colombierobjects in, since they may be useful later.
42227dd7cddfSDavid du Colombier
42237dd7cddfSDavid du ColombierAdds getdeviceprops and putdeviceprops for manipulating device properties.
42247dd7cddfSDavid du ColombierCurrently defined properties for all devices: InitialMatrix, HWResolution,
42257dd7cddfSDavid du ColombierHWSize, Name.  Currently defined properties for printers: BufferSpace,
42267dd7cddfSDavid du ColombierMaxBitmap, OutputFile.  OutputFile allows |command for piping on Unix
42277dd7cddfSDavid du Colombiersystems.
42287dd7cddfSDavid du Colombier
42297dd7cddfSDavid du ColombierRemoves deviceparams and makedevice.  Adds devicedefaultmatrix.
42307dd7cddfSDavid du Colombier
42317dd7cddfSDavid du ColombierImplements reversepath.
42327dd7cddfSDavid du Colombier
42337dd7cddfSDavid du ColombierMakes copy work on devices.
42347dd7cddfSDavid du Colombier
42357dd7cddfSDavid du ColombierMS-DOS specific
42367dd7cddfSDavid du Colombier- - - - - - - -
42377dd7cddfSDavid du Colombier
42387dd7cddfSDavid du ColombierFixes bugs:
42397dd7cddfSDavid du Colombier	- iutilasm.asm wouldn't assemble with newer versions of MASM if
42407dd7cddfSDavid du ColombierCPU_TYPE was set to 286 or above.
42417dd7cddfSDavid du Colombier	- CPU_TYPE=386 didn't properly substitute the faster
42427dd7cddfSDavid du Colombiermultiply/divide routines under Turbo C++ or Borland C++, only under the
42437dd7cddfSDavid du Colombieroriginal Turbo C.
42447dd7cddfSDavid du Colombier
42453ff48bf5SDavid du Colombier</pre><h3><a name="V2.4_Library"></a>Library</h3><pre>
42467dd7cddfSDavid du ColombierFixes bugs:
42477dd7cddfSDavid du Colombier	- A curve whose first and last points were the same wouldn't get
42487dd7cddfSDavid du Colombierdrawn at all.
42497dd7cddfSDavid du Colombier	- A bug in the Turbo C++ compiler generated bad code when shifting
42507dd7cddfSDavid du Colombiera long right by 1 bit.
42517dd7cddfSDavid du Colombier	- If stroking a dashed line ever encountered a segment that was
42527dd7cddfSDavid du Colombiercompletely blank, Ghostscript would indirect through a null pointer.
42537dd7cddfSDavid du Colombier	- arc and arcn gave an error if the radius was negative.
42547dd7cddfSDavid du Colombier	- stroke always used the general algorithm, even if the line was
42557dd7cddfSDavid du Colombierguaranteed to be thin.
42567dd7cddfSDavid du Colombier	- arc and arcn erroneously reduced the angles mod 360.
42577dd7cddfSDavid du Colombier	- Very large or negative 32-bit numbers in Type 1 fonts didn't
42587dd7cddfSDavid du Colombierwork properly on MS-DOS systems (the ff0000 bits got set to zero).
42597dd7cddfSDavid du Colombier	- Color printer devices rendering entirely in memory only
42607dd7cddfSDavid du Colombierallocated a monochrome-sized bitmap.
42617dd7cddfSDavid du Colombier	- clip and eoclip didn't intersect the paths properly in the
42627dd7cddfSDavid du Colombiergeneral case.
42637dd7cddfSDavid du Colombier	- charpath erroneously rounded the current point to an integral
42647dd7cddfSDavid du Colombiervalue, causing characters to be spaced improperly.
42657dd7cddfSDavid du Colombier	- The definition of max_color_param got some compilers confused.
42667dd7cddfSDavid du Colombier	- charpath always used quadratic time and space, and dropped all
42677dd7cddfSDavid du Colombierbut the last character when used with a Type 3 font.
42687dd7cddfSDavid du Colombier	- Stroking a path with a 180 degree angle would incorrectly miter
42697dd7cddfSDavid du Colombierinstead of beveling.
42707dd7cddfSDavid du Colombier	- Type 1 fonts used the current flatness for curves, which could
42717dd7cddfSDavid du Colombierproduce bad (and inconsistent) results.
42727dd7cddfSDavid du Colombier	- Stroking a degenerate line segment produced incorrect results.
42737dd7cddfSDavid du Colombier
42747dd7cddfSDavid du ColombierChanges the character cache to use the UniqueID as the key, when
42757dd7cddfSDavid du Colombieravailable, instead of the font pointer.  This dramatically improves
42767dd7cddfSDavid du Colombierperformance when fonts are getting removed and reloaded because of page
42777dd7cddfSDavid du Colombierisolation with save/restore.
42787dd7cddfSDavid du Colombier
42797dd7cddfSDavid du ColombierRemoves some unnecessary casts to (float) from gsmatrix.c and gscoord.c.
42807dd7cddfSDavid du Colombier
42817dd7cddfSDavid du ColombierChanges the Type 1 interpreter so that it rounds line and curve endpoints
42827dd7cddfSDavid du Colombierto the center of the nearest half-pixel, and omits null line segments.
42837dd7cddfSDavid du ColombierThis both speeds up rendering at small sizes and improves output quality.
42847dd7cddfSDavid du Colombier
42857dd7cddfSDavid du ColombierChanges gs_deviceparams to return resolution as well as extent; changes
42867dd7cddfSDavid du Colombiergs_makedevice to accept resolution as well as extent.
42877dd7cddfSDavid du Colombier
42887dd7cddfSDavid du ColombierReplaces the algorithm for approximating circular arcs with curves with a
42897dd7cddfSDavid du Colombiermore accurate one.
42907dd7cddfSDavid du Colombier
42917dd7cddfSDavid du ColombierChanges gs_point and gs_rect to use doubles rather than floats.
42927dd7cddfSDavid du Colombier
42937dd7cddfSDavid du ColombierAdds gs_setmetrics, for overriding Type 1 font metrics for the current
42947dd7cddfSDavid du Colombiercharacter.
42957dd7cddfSDavid du Colombier
42967dd7cddfSDavid du ColombierChanges clipping to use lists of rectangles rather than path intersection.
42977dd7cddfSDavid du Colombier This makes a big difference when clipping bitmaps (including characters).
42987dd7cddfSDavid du Colombier
42997dd7cddfSDavid du ColombierChanges the character cache to discard entries incrementally, rather than
43007dd7cddfSDavid du Colombierclearing the entire cache when it fills up.
43017dd7cddfSDavid du Colombier
43027dd7cddfSDavid du ColombierChanges the implementation of transfer functions to use a cached map,
43037dd7cddfSDavid du Colombierbuilt when the transfer function is set.  This makes transfer functions
43047dd7cddfSDavid du Colombierwork properly in all situations, including images.
43057dd7cddfSDavid du Colombier
43067dd7cddfSDavid du ColombierDefines a .quit operator that takes an exit code, and redefines quit in
43077dd7cddfSDavid du Colombierterms of it.
43087dd7cddfSDavid du Colombier
43097dd7cddfSDavid du ColombierAdds support for 16-bit-per-pixel devices in gdevmem.
43107dd7cddfSDavid du Colombier
43117dd7cddfSDavid du ColombierAdds gs_copydevice and gs_deviceinitialmatrix; removes gs_deviceparams and
43127dd7cddfSDavid du Colombiergs_makedevice.
43137dd7cddfSDavid du Colombier
43147dd7cddfSDavid du ColombierChanges setscreen to ensure that the cell is always at least 4x4 pixels in
43157dd7cddfSDavid du Colombiersize.
43167dd7cddfSDavid du Colombier
43173ff48bf5SDavid du Colombier</pre>
43187dd7cddfSDavid du Colombier
43193ff48bf5SDavid du Colombier<h2><a name="Version2.3"></a>Version 2.3 (8/28/91)</h2>
43203ff48bf5SDavid du Colombier
43213ff48bf5SDavid du Colombier<p>This is a minor release to fix two bugs and add the PaintJet driver,
43223ff48bf5SDavid du Colombierwhich
43237dd7cddfSDavid du Colombierdidn't make it into 2.2.
43247dd7cddfSDavid du Colombier
43253ff48bf5SDavid du Colombier<h3><a name="V2.3_Utilities"></a>Utilities</h3><pre>
43267dd7cddfSDavid du ColombierChanges the pstoppm utility so it counts pages correctly even in the
43277dd7cddfSDavid du Colombierpresence of arbitrary saves and restores.
43287dd7cddfSDavid du Colombier
43293ff48bf5SDavid du Colombier</pre><h3><a name="V2.3_Drivers"></a>Drivers</h3><pre>
43307dd7cddfSDavid du ColombierAdds a new, "supported" PaintJet driver.
43317dd7cddfSDavid du Colombier
43327dd7cddfSDavid du ColombierChanges the Epson driver to use ESC+D rather than ESC+\ for horizontal
43337dd7cddfSDavid du Colombierpositioning, since many printers don't support the latter.
43347dd7cddfSDavid du Colombier
43357dd7cddfSDavid du ColombierAdds horizontal double-density (two-pass) printing to the Epson driver, so
43367dd7cddfSDavid du Colombierit can do 240 x 60 and 360 x 180 densities.  (Vertical double density is
43377dd7cddfSDavid du Colombiernot supported yet.)
43387dd7cddfSDavid du Colombier
43393ff48bf5SDavid du Colombier</pre>
43407dd7cddfSDavid du Colombier
43413ff48bf5SDavid du Colombier<hr>
43423ff48bf5SDavid du Colombier
43433ff48bf5SDavid du Colombier<h2><a name="Version2.2"></a>Version 2.2 (6/1/91)</h2>
43443ff48bf5SDavid du Colombier
43453ff48bf5SDavid du Colombier<p>
43467dd7cddfSDavid du ColombierThe purpose of this release is to add save/restore, and a few
43477dd7cddfSDavid du Colombiermiscellaneous Level 2 P*stScr*pt features such as undef.  It also includes
43487dd7cddfSDavid du Colombiermajor improvements in graphics quality and in handling of high-resolution
43497dd7cddfSDavid du Colombierprinters.
43507dd7cddfSDavid du Colombier
43513ff48bf5SDavid du Colombier<h3><a name="V2.2_Procedures"></a>Procedures</h3><pre>
43527dd7cddfSDavid du ColombierChanges the version numbering to M.mpp rather than M.m.p, so that
43537dd7cddfSDavid du Colombier`version' can be a real number for those programs that insist on it.
43547dd7cddfSDavid du Colombier
43557dd7cddfSDavid du ColombierRenames ghost.ps as gs_init.ps, gfonts.ps as gs_fonts.ps, and statusd.ps
43567dd7cddfSDavid du Colombieras gs_statd.ps.  The initialization files now all are named gs_*.ps.
43577dd7cddfSDavid du Colombier
43587dd7cddfSDavid du ColombierRenames gdevs.{c,h,tl} as gconfig.{c,h,tl}.
43597dd7cddfSDavid du Colombier
43607dd7cddfSDavid du ColombierChanges the relevant makefiles and command files so that a single build
43617dd7cddfSDavid du Colombiercan contain several drivers that share code, e.g., the Epson driver and
43627dd7cddfSDavid du Colombierthe DeskJet driver.
43637dd7cddfSDavid du Colombier
43647dd7cddfSDavid du ColombierChanges gs_init.ps so it relies on an external gconfig.ps file rather than
43657dd7cddfSDavid du Colombiermaking a specific test for the presence of Level 2 features.
43667dd7cddfSDavid du Colombier
43677dd7cddfSDavid du ColombierAdds an entry for uglyr.gsf to the makefile.
43687dd7cddfSDavid du Colombier
43697dd7cddfSDavid du ColombierRemoves the distinction between CCA and CCNA, since most of the files now
43707dd7cddfSDavid du Colombiercontain constructs that require non-ANSI compilation on MS-DOS platforms.
43717dd7cddfSDavid du Colombier
43727dd7cddfSDavid du ColombierAdds a `man' page for the ansi2knr utility.
43737dd7cddfSDavid du Colombier
43747dd7cddfSDavid du ColombierChanges the documentation (use.doc) to show how to use -sDEVICE=&lt;device&gt;,
43757dd7cddfSDavid du Colombieror the selectdevice procedure, to select devices by name.
43767dd7cddfSDavid du Colombier
43777dd7cddfSDavid du ColombierAdds DEVICE_DEVS to the makefiles (analogous to DEVICES and DEVICE_OBJS).
43787dd7cddfSDavid du ColombierThis finally makes the make procedure fully automatic.
43797dd7cddfSDavid du Colombier
43807dd7cddfSDavid du ColombierAdds the name of the initialization file (gs_init.ps) as a
43817dd7cddfSDavid du Colombierplatform-specific makefile parameter, GS_INIT.
43827dd7cddfSDavid du Colombier
43837dd7cddfSDavid du ColombierRemoves the test program gt.{c,tr} from the fileset, since it is not
43847dd7cddfSDavid du Colombieruseful to users.
43857dd7cddfSDavid du Colombier
43867dd7cddfSDavid du ColombierMoves the Symbol encoding vector to a separate file (symbol_e.ps), from
43877dd7cddfSDavid du Colombierwhich it is loaded when first used.
43887dd7cddfSDavid du Colombier
43897dd7cddfSDavid du ColombierChanges the error handler so it can handle errors that occur while reading
43907dd7cddfSDavid du Colombierthe initialization files.
43917dd7cddfSDavid du Colombier
43927dd7cddfSDavid du ColombierExtends ansi2knr so it can handle `void' and `...' in parameter lists.
43937dd7cddfSDavid du Colombier
43947dd7cddfSDavid du ColombierAdds quit.ps to the set of installed files.
43957dd7cddfSDavid du Colombier
43967dd7cddfSDavid du ColombierMS-DOS-specific changes
43977dd7cddfSDavid du Colombier- - - - - - - - - - - -
43987dd7cddfSDavid du Colombier
43997dd7cddfSDavid du ColombierAdds the VGA and BGI drivers to the standard MS-DOS configuration, and
44007dd7cddfSDavid du Colombiermakes VGA the default.
44017dd7cddfSDavid du Colombier
44027dd7cddfSDavid du ColombierAdds a `+' and a newline at the end of gs.tr, to avoid problems with file
44037dd7cddfSDavid du Colombiertransfer programs or editors that add a newline at the end of files.
44047dd7cddfSDavid du Colombier
44057dd7cddfSDavid du ColombierChanges the name of msdos.mak to turboc.mak, and creates a new tbcplus.mak
44067dd7cddfSDavid du Colombiermakefile for use with Turbo C++ and Borland C++.
44077dd7cddfSDavid du Colombier
44087dd7cddfSDavid du ColombierChanges the extension of the loader response files from .tl to .tr.
44097dd7cddfSDavid du Colombier
44107dd7cddfSDavid du ColombierChanges the default search path from c:/ghost and c:/ghost/fonts to c:/gs
44117dd7cddfSDavid du Colombierand c:/gs/fonts.
44127dd7cddfSDavid du Colombier
44137dd7cddfSDavid du ColombierChanges the directory separator from `|' back to ';', since it appears
44147dd7cddfSDavid du Colombierthat DOS can handle a ; in a command line if it is prefixed with \.
44157dd7cddfSDavid du Colombier
44167dd7cddfSDavid du ColombierUnix-specific changes
44177dd7cddfSDavid du Colombier- - - - - - - - - - -
44187dd7cddfSDavid du Colombier
44197dd7cddfSDavid du ColombierChanges the uses of install in unixtail.mak so they only install a single
44207dd7cddfSDavid du Colombierfile at a time, which is all that the standard Unix install allows.
44217dd7cddfSDavid du Colombier
44227dd7cddfSDavid du ColombierRemoves the duplicate files (README/readme, LICENSE/license,
44237dd7cddfSDavid du ColombierCOPYING/copying, Fontmap/fontmap).
44247dd7cddfSDavid du Colombier
44257dd7cddfSDavid du ColombierChanges the ld flags from LDPLAT to LDFLAGS.
44267dd7cddfSDavid du Colombier
44277dd7cddfSDavid du ColombierAdds XCFLAGS and XLDFLAGS.  These are concatenated with CFLAGS and LDFLAGS
44287dd7cddfSDavid du Colombierrespectively.  The intention is that they be set from the `make' command
44297dd7cddfSDavid du Colombierline if desired.
44307dd7cddfSDavid du Colombier
44317dd7cddfSDavid du ColombierVMS-specific changes
44327dd7cddfSDavid du Colombier- - - - - - - - - -
44337dd7cddfSDavid du Colombier
44347dd7cddfSDavid du ColombierRepairs the omission of ZPACKED from the VMS build lists.
44357dd7cddfSDavid du Colombier
44363ff48bf5SDavid du Colombier</pre>
44377dd7cddfSDavid du Colombier
44383ff48bf5SDavid du Colombier<h3><a name="V2.2_Drivers"></a>Drivers</h3><pre>
44397dd7cddfSDavid du ColombierFixes bugs:
44407dd7cddfSDavid du Colombier	- The SunView driver produced semi-garbage on little-endian
44417dd7cddfSDavid du Colombierplatforms (Sun-386i) because it didn't swap the bit order.
44427dd7cddfSDavid du Colombier	- The X driver would dump core if it couldn't open the display and
44437dd7cddfSDavid du Colombierthe DISPLAY environment variable wasn't set.
44447dd7cddfSDavid du Colombier	- The X driver relied on white = 0, black = ones in a couple of
44457dd7cddfSDavid du Colombierplaces;
44467dd7cddfSDavid du Colombier	- The X driver would return an error, instead of clipping, if
44477dd7cddfSDavid du Colombierasked to display outside the window.
44487dd7cddfSDavid du Colombier	- The X driver would create inappropriately sized windows, because
44497dd7cddfSDavid du Colombierit believed the server's report of the screen resolution.
44507dd7cddfSDavid du Colombier
44517dd7cddfSDavid du ColombierAdds Fran Taylor's Private Eye driver to gdevs.mak and the fileset (not
44527dd7cddfSDavid du Colombiersupported by Aladdin Enterprises).
44537dd7cddfSDavid du Colombier
44547dd7cddfSDavid du ColombierAdds Neil Ostroff's TruFax driver to gdevs.mak and the fileset (not
44557dd7cddfSDavid du Colombiersupported by Aladdin Enterprises).
44567dd7cddfSDavid du Colombier
44577dd7cddfSDavid du ColombierMakes the scratch file template for the printer drivers a per-platform
44587dd7cddfSDavid du Colombierquantity (gp_scratch_file_name_template).  Puts the default scratch files
44597dd7cddfSDavid du Colombierfor Unix in /usr/tmp rather than /tmp.
44607dd7cddfSDavid du Colombier
44617dd7cddfSDavid du ColombierChanges the SunView driver to prevent the Ghostscript window from being
44627dd7cddfSDavid du Colombierdestroyed (which badly confuses the interpreter).
44637dd7cddfSDavid du Colombier
44647dd7cddfSDavid du ColombierExtends the Epson driver to handle a variety of print densities in both X
44657dd7cddfSDavid du Colombierand Y, to handle 24-pin as well as 8-pin graphics, and to allow optional
44667dd7cddfSDavid du Colombierspecification of default density in the makefile (gdevs.mak).
44677dd7cddfSDavid du Colombier
44687dd7cddfSDavid du ColombierRefactors the printer drivers so that a single driver handles both DeskJet
44697dd7cddfSDavid du Colombierand LaserJet.  Adds LaserJet drivers that use the new compression modes on
44707dd7cddfSDavid du Colombierthe LJ IId/IIp and LJ III.
44717dd7cddfSDavid du Colombier
44727dd7cddfSDavid du ColombierChanges all the printer drivers to use band lists rather than bitmap
44737dd7cddfSDavid du Colombierpaging as the buffering method.  (The individual drivers need only a
44747dd7cddfSDavid du Colombierone-line change to replace mem_copy_scan_lines with
44757dd7cddfSDavid du Colombiergdev_prn_copy_scan_lines with a different argument.)
44767dd7cddfSDavid du Colombier
44777dd7cddfSDavid du ColombierAdds the halftone phase as additional arguments to tile_rectangle and
44787dd7cddfSDavid du Colombiertile_trapezoid.
44797dd7cddfSDavid du Colombier
44807dd7cddfSDavid du ColombierAdds an entirely new and much simpler PaintJet driver, using the new band
44817dd7cddfSDavid du Colombierlist interface.
44827dd7cddfSDavid du Colombier
44837dd7cddfSDavid du ColombierAdds margin information to the device structure.  This is currently only
44847dd7cddfSDavid du Colombierrelevant for printer devices.
44857dd7cddfSDavid du Colombier
44867dd7cddfSDavid du ColombierAdds BGIPATH and BGIUSER environment variables, allowing additional
44877dd7cddfSDavid du Colombiercontrol of the BGI driver.
44887dd7cddfSDavid du Colombier
44897dd7cddfSDavid du ColombierChanges the x/y_pixels_per_inch member of the device structure from int to
44907dd7cddfSDavid du Colombierfloat.
44917dd7cddfSDavid du Colombier
44923ff48bf5SDavid du Colombier</pre>
44937dd7cddfSDavid du Colombier
44943ff48bf5SDavid du Colombier<h3><a name="V2.2_Fonts"></a>Fonts</h3>
44953ff48bf5SDavid du Colombier
44963ff48bf5SDavid du Colombier<pre>
44977dd7cddfSDavid du ColombierPatches gs_fonts.ps so definefont will add an isFixedPitch entry to
44987dd7cddfSDavid du ColombierFontInfo if there isn't one there.
44997dd7cddfSDavid du Colombier
45007dd7cddfSDavid du ColombierRemoves the old "type 7 path" encoding code from gs_fonts.ps.
45017dd7cddfSDavid du Colombier
45027dd7cddfSDavid du ColombierChanges bdftops so it puts isFixedWidth and ItalicAngle entries in the
45037dd7cddfSDavid du ColombierFontInfo dictionary of the fonts it creates, since some P*stScr*pt
45047dd7cddfSDavid du Colombierprograms rely on this.
45057dd7cddfSDavid du Colombier
45067dd7cddfSDavid du ColombierChanges bdftops so it synthesizes as many missing characters as possible
45077dd7cddfSDavid du Colombierout of the ones that are there (in particular: synthesizes accents out of
45087dd7cddfSDavid du Colombierpunctuation marks, and accented characters using seac.)  The results
45097dd7cddfSDavid du Colombieraren't all that good, but they're a lot better than having characters
45107dd7cddfSDavid du Colombiermissing out of the font.
45117dd7cddfSDavid du Colombier
45123ff48bf5SDavid du Colombier</pre><h3><a name="V2.2_Utilities"></a>Utilities</h3><pre>
45137dd7cddfSDavid du ColombierAdds a pfbtops utility for converting .PFB fonts to standard Ghostscript
45147dd7cddfSDavid du Colombierfonts.
45157dd7cddfSDavid du Colombier
45167dd7cddfSDavid du ColombierFixes bugs:
45177dd7cddfSDavid du Colombier	- ps2image didn't reset things properly between pages for
45187dd7cddfSDavid du Colombiermulti-page documents.
45197dd7cddfSDavid du Colombier
45203ff48bf5SDavid du Colombier</pre><h3><a name="V2.2_Interpreter"></a>Interpreter</h3><pre>
45217dd7cddfSDavid du ColombierMakes Ghostscript recognize `-' alone as meaning that it should read from
45227dd7cddfSDavid du Colombierstandard input as though it were a file.  This allows Ghostscript to
45237dd7cddfSDavid du Colombieraccept a pipe as input.
45247dd7cddfSDavid du Colombier
45257dd7cddfSDavid du ColombierFixes bugs:
45267dd7cddfSDavid du Colombier	- seac in type1addpath used the current font's encoding, not
45277dd7cddfSDavid du ColombierStandardEncoding.
45287dd7cddfSDavid du Colombier	- type1decryptfile (eexec) didn't recognize binary (as opposed to
45297dd7cddfSDavid du Colombierhex) representation.
45307dd7cddfSDavid du Colombier	- Mentioning a name whose value was a no-access object caused an
45317dd7cddfSDavid du Colombierinvalidaccess error.
45327dd7cddfSDavid du Colombier	- There was a bogus definition of `run' in zfile.c.
45337dd7cddfSDavid du Colombier	- The interpreter didn't handle end-of-file on stdin properly.
45347dd7cddfSDavid du Colombier	- Real numbers with an 'e' or 'E' but no decimal point were not
45357dd7cddfSDavid du Colombierrecognized.
45367dd7cddfSDavid du Colombier	- On MS-DOS systems, inside strings, \ followed by a newline was
45377dd7cddfSDavid du Colombiernot discarded properly.
45387dd7cddfSDavid du Colombier	- On MS-DOS systems, the long unsigned divide routine sometimes
45397dd7cddfSDavid du Colombiergave incorrect answers.  Among other things, this caused alternate-radix
45407dd7cddfSDavid du Colombiernumbers sometimes to crash the interpreter.
45417dd7cddfSDavid du Colombier	- cvrs didn't do the right thing about reals or negative integers.
45427dd7cddfSDavid du Colombier	- .echo.mode was being reset with def instead of store, and was
45437dd7cddfSDavid du Colombierdefined in systemdict rather than userdict.
45447dd7cddfSDavid du Colombier	- setgray and settransfer didn't interact properly.
45457dd7cddfSDavid du Colombier	- 16#80000000 was being interpreted as a signed integer (and
45467dd7cddfSDavid du Colombierconverted to a real) rather than an unsigned one.
45477dd7cddfSDavid du Colombier	- atan returned 0 sometimes when it should have returned 180.
45487dd7cddfSDavid du Colombier	- currentcmykcolor was defined wrong.
45497dd7cddfSDavid du Colombier
45507dd7cddfSDavid du ColombierRemoves the filename operator, since no standard Ghostscript code used it,
45517dd7cddfSDavid du Colombierand it caused problems with some P*stScr*pt files.
45527dd7cddfSDavid du Colombier
45537dd7cddfSDavid du ColombierImplements new operators: filenameforall, selectfont (as a procedure),
45547dd7cddfSDavid du Colombierstringmatch, undef.
45557dd7cddfSDavid du Colombier
45567dd7cddfSDavid du ColombierAdds new standard procedures: selectdevice.
45577dd7cddfSDavid du Colombier
45587dd7cddfSDavid du ColombierFor MS-DOS, requires that the operand and execution stacks be located in
45597dd7cddfSDavid du Colombierthe data segment, and uses short pointers to address them.  This produces
45607dd7cddfSDavid du Colombiersignificantly smaller and faster code.  (These changes are not visible to
45617dd7cddfSDavid du Colombierusers or library clients.)
45627dd7cddfSDavid du Colombier
45637dd7cddfSDavid du ColombierChanges the assignment of attribute bits, and adds new bits for
45647dd7cddfSDavid du Colombiersave/restore and the garbage collector.  Changes many of the macros in
45657dd7cddfSDavid du Colombierstore.h to support save/restore.  (These changes are not visible to users
45667dd7cddfSDavid du Colombieror library clients.)  Implements save and restore.
45677dd7cddfSDavid du Colombier
45687dd7cddfSDavid du ColombierMoves type names from gs_init.ps to ghost.h and ztype.c.
45697dd7cddfSDavid du Colombier
45707dd7cddfSDavid du ColombierMoves error names from gs_init.ps to errors.h and iinit.c.
45717dd7cddfSDavid du Colombier
45727dd7cddfSDavid du ColombierIntroduces gp.h as a documented interface to the platform-specific files.
45737dd7cddfSDavid du Colombier
45747dd7cddfSDavid du ColombierAdds the -- switch, which allows Ghostscript programs to take arguments
45757dd7cddfSDavid du Colombierfrom the command line.
45767dd7cddfSDavid du Colombier
45777dd7cddfSDavid du ColombierChanges many uses of the name `name' to something else, to avoid upsetting
45787dd7cddfSDavid du Colombierthe Microsoft C compiler.
45797dd7cddfSDavid du Colombier
45807dd7cddfSDavid du ColombierReally implements packed arrays -- they took the same amount of space as
45817dd7cddfSDavid du Colombierordinary arrays in previous versions.
45827dd7cddfSDavid du Colombier
45837dd7cddfSDavid du ColombierChanges exitserver in serverdict so that it just clears the stacks.  (This
45847dd7cddfSDavid du Colombierisn't the correct fix, but it will do as a workaround.)
45857dd7cddfSDavid du Colombier
45867dd7cddfSDavid du ColombierMakes many miscellaneous small changes to pacify various compilers.
45877dd7cddfSDavid du Colombier
45887dd7cddfSDavid du ColombierChanges gs_fonts.ps so that when "quiet" mode is selected (-q switch),
45897dd7cddfSDavid du ColombierGhostscript doesn't print anything when loading fonts or when substituting
45907dd7cddfSDavid du Colombierfor undefined characters.
45917dd7cddfSDavid du Colombier
45927dd7cddfSDavid du ColombierDefines the name consisting of just a control-D as a no-op, because some
45937dd7cddfSDavid du ColombierP*stScr*pt-generating applications put control-Ds in their output.
45947dd7cddfSDavid du Colombier
45957dd7cddfSDavid du ColombierImplements halftone phase (sethalftonephase and currenthalftonephase
45967dd7cddfSDavid du Colombieroperators).
45977dd7cddfSDavid du Colombier
45987dd7cddfSDavid du ColombierRemoves the -E switch, since it is no longer useful.
45997dd7cddfSDavid du Colombier
46007dd7cddfSDavid du ColombierChanges the -w and -h switches to a single -g (geometry) switch, with
46017dd7cddfSDavid du Colombierusage -g&lt;width&gt;x&lt;height&gt;.  Makes the -h switch, and a new -? switch, print
46027dd7cddfSDavid du Colombierusage help.
46037dd7cddfSDavid du Colombier
46047dd7cddfSDavid du ColombierImplements correct handling of stack overflow errors (makes an array out
46057dd7cddfSDavid du Colombierof the contents of the overflowing stack, and resets the stack, before
46067dd7cddfSDavid du Colombierinvoking the error handler).
46077dd7cddfSDavid du Colombier
46087dd7cddfSDavid du ColombierAdds t_oparray (`operators' defined as procedures) and the makeoperator
46097dd7cddfSDavid du Colombieroperator.  This is so that programs like the Distillery that rely on all
46107dd7cddfSDavid du Colombieroperators being bound by `bind' will work properly.
46117dd7cddfSDavid du Colombier
46127dd7cddfSDavid du ColombierAdds a new NOPAUSE flag to suppress the prompt and pause at copypage and
46137dd7cddfSDavid du Colombiershowpage.
46147dd7cddfSDavid du Colombier
46153ff48bf5SDavid du Colombier</pre><h3><a name="V2.2_Library"></a>Library</h3><pre>
46167dd7cddfSDavid du ColombierFixes bugs:
46177dd7cddfSDavid du Colombier	- gs_type1_interpret didn't store the encryption state or the skip
46187dd7cddfSDavid du Colombiercount before returning to let the client handle a seac or an endchar in
46197dd7cddfSDavid du Colombierthe middle of a seac.
46207dd7cddfSDavid du Colombier	- The definition of the Type 1 operator ce_testadd was based on
46217dd7cddfSDavid du Colombierwrong information; the operator takes only 2 operands and does something
46227dd7cddfSDavid du Colombierunknown.
46237dd7cddfSDavid du Colombier	- mem_true24_copy_mono wasn't incrementing the destination pointer
46247dd7cddfSDavid du Colombierif the color was transparent, leading to garbled characters.
46257dd7cddfSDavid du Colombier	- gx_lookup_fm_pair would sometimes look at one entry beyond the
46267dd7cddfSDavid du Colombierend of the cached font/matrix pair area.  (This probably had no practical
46277dd7cddfSDavid du Colombiereffect.)
46287dd7cddfSDavid du Colombier	- gs_type1_interpret didn't save the current point when returning
46297dd7cddfSDavid du Colombierto the client for a callothersubr, causing some characters to be rendered
46307dd7cddfSDavid du Colombierdisplaced (such as some of the chess pieces in chess.ps).
46317dd7cddfSDavid du Colombier	- gs_setgray, gs_sethsbcolor, gs_setrgbcolor, gs_setflat, and
46327dd7cddfSDavid du Colombiergs_setlinewidth gave errors for out-of-range operands rather than forcing
46337dd7cddfSDavid du Colombierthem into range.
46347dd7cddfSDavid du Colombier	- Transfer functions were not actually supported.
46357dd7cddfSDavid du Colombier	- The area fill algorithm failed on certain complex paths.
46367dd7cddfSDavid du Colombier	- The current point was sometimes defined when a BuildChar
46377dd7cddfSDavid du Colombierprocedure was called.
46387dd7cddfSDavid du Colombier	- Stroking a degenerate line didn't display anything for round
46397dd7cddfSDavid du Colombiercaps or joins.
46407dd7cddfSDavid du Colombier	- If the ends of a curve had exactly the same X coordinate, the
46417dd7cddfSDavid du Colombiercurve sometimes wouldn't be displayed.
46427dd7cddfSDavid du Colombier	- Very thin lines that went outside the clipping region would
46437dd7cddfSDavid du Colombiersometimes be displayed as dashed, or not at all.
46447dd7cddfSDavid du Colombier	- The translation in a FontMatrix was ignored.
46457dd7cddfSDavid du Colombier	- Very wide, shallow lines would color extraneous pixels when
46467dd7cddfSDavid du Colombierusing bevel or miter joins.
46477dd7cddfSDavid du Colombier	- Dashed lines didn't join properly at the beginning of a closed
46487dd7cddfSDavid du Colombierpath.
46497dd7cddfSDavid du Colombier	- 0-degree arcs didn't add the appropriate line (possibly
46507dd7cddfSDavid du Colombierdegenerate) to the path.
46517dd7cddfSDavid du Colombier	- gs_type1_interpret didn't reset the callsubr stack when starting
46527dd7cddfSDavid du Colombierthe base character of a seac, which caused confusion if the accent's
46537dd7cddfSDavid du Colombierendchar fell inside a Subr.
46547dd7cddfSDavid du Colombier	- Non-monochrome memory memory devices weren't checking the
46557dd7cddfSDavid du Colombierarguments of the drawing procedures properly.
46567dd7cddfSDavid du Colombier	- The initial clipping rectangle for memory devices was being
46577dd7cddfSDavid du Colombiercomputed wrong.
46587dd7cddfSDavid du Colombier	- Null devices had a semi-infinite clipping rectangle instead of
46597dd7cddfSDavid du Colombieran empty one.
46607dd7cddfSDavid du Colombier	- gs_setlinewidth was treating negative arguments as zero, instead
46617dd7cddfSDavid du Colombierof taking the absolute value.
46627dd7cddfSDavid du Colombier	- imagemask with a dithered color used a solid color rather than
46637dd7cddfSDavid du Colombierthe dithered one.
46647dd7cddfSDavid du Colombier
46657dd7cddfSDavid du ColombierTweaks the area fill and image rendering algorithms to be a little more
46667dd7cddfSDavid du Colombierliberal with paint when being used to render characters.
46677dd7cddfSDavid du Colombier
46687dd7cddfSDavid du ColombierChanges the name of the 8-bit mapped color memory device from
46697dd7cddfSDavid du Colombiermem_mapped_color_device to mem_mapped8_color_device.
46707dd7cddfSDavid du Colombier
46717dd7cddfSDavid du ColombierChanges the memory devices so that on little-endian platforms, they can
46727dd7cddfSDavid du Colombierstore the bytes within a word in either order.  (Little-endian order
46737dd7cddfSDavid du Colombierallows efficient 32-bit updating, big-endian is required when displaying
46747dd7cddfSDavid du Colombieror writing to a printer or a file.)
46757dd7cddfSDavid du Colombier
46767dd7cddfSDavid du ColombierImplements halftone phase.
46777dd7cddfSDavid du Colombier
46787dd7cddfSDavid du ColombierReplaces the trapezoid fill algorithm with a much more accurate one
46797dd7cddfSDavid du Colombierinspired by a contribution from Paul Haeberli.  This also changes the
46807dd7cddfSDavid du Colombiergraphics convention back to filling only pixels whose center falls within
46817dd7cddfSDavid du Colombierthe region to be filled.
46827dd7cddfSDavid du Colombier
46837dd7cddfSDavid du ColombierChanges the character cache to allocate headers and bits contiguously out
46847dd7cddfSDavid du Colombierof a single ring buffer.
46857dd7cddfSDavid du Colombier
46867dd7cddfSDavid du ColombierChanges gs_imagemask and gs_imagemask_init to take a thickness adjustment
46877dd7cddfSDavid du Colombierparameter.
46887dd7cddfSDavid du Colombier
46897dd7cddfSDavid du ColombierChanges gs_setcachedevice and gs_setcharwidth to take the graphics state
46907dd7cddfSDavid du Colombieras a parameter.
46917dd7cddfSDavid du Colombier
46927dd7cddfSDavid du ColombierRenames gx_device_memory_bitmap_size as gdev_mem_bitmap_size,
46937dd7cddfSDavid du Colombiermem_copy_scan_lines as gdev_mem_copy_scan_lines, and
46947dd7cddfSDavid du Colombiermem_bytes_per_scan_line as gdev_mem_bytes_per_scan_line.
46957dd7cddfSDavid du Colombier
46963ff48bf5SDavid du Colombier</pre>
46977dd7cddfSDavid du Colombier
46983ff48bf5SDavid du Colombier<hr>
46993ff48bf5SDavid du Colombier
47003ff48bf5SDavid du Colombier<h2><a name="Version2.1.1"></a>Version 2.1.1 (1/15/91)</h2>
47013ff48bf5SDavid du Colombier
47023ff48bf5SDavid du Colombier<p>This is a sub-release distributed to fix a few early bugs in 2.1,
47033ff48bf5SDavid du Colombierjust in
47047dd7cddfSDavid du Colombiertime for the new GNU master tape.
47057dd7cddfSDavid du Colombier
47063ff48bf5SDavid du Colombier<h3><a name="V2.1.1_Build_procedures"></a>Build procedures</h3><pre>
47077dd7cddfSDavid du ColombierRemoves all of the (undebugged) Level 2 code from the fileset, as well as
47087dd7cddfSDavid du Colombierthe (unused) file gdevvga.c.
47097dd7cddfSDavid du Colombier
47107dd7cddfSDavid du ColombierChanges the tar file so that the files are stored in the directory
47117dd7cddfSDavid du Colombiergs&lt;version&gt; rather than simply gs, e.g., gs211.
47127dd7cddfSDavid du Colombier
47133ff48bf5SDavid du Colombier</pre><h3><a name="V2.1.1_Interpreter"></a>Interpreter</h3><pre>
47147dd7cddfSDavid du ColombierChanges the scanner so that \ is recognized within strings regardless of
47157dd7cddfSDavid du Colombierwhether the scanner is reading from a string or from a file.  This is
47167dd7cddfSDavid du Colombiercompatible with newer P*stScr*pt interpreters, and with the newer
47177dd7cddfSDavid du ColombierP*stSc*pt language specification, but not with the older specification in
47187dd7cddfSDavid du Colombierthe original PostScript Language Reference Manual.
47197dd7cddfSDavid du Colombier
47203ff48bf5SDavid du Colombier</pre><h3><a name="V2.1.1_Drivers"></a>Drivers</h3><pre>
47217dd7cddfSDavid du ColombierFixes the max_value macro in gdevmem.c so that compilers won't complain
47227dd7cddfSDavid du Colombierabout a left shift by 32.
47237dd7cddfSDavid du Colombier
47247dd7cddfSDavid du ColombierAdds 'byte' to the list of types that gdevx.c must sidestep because header
47257dd7cddfSDavid du Colombierfiles use them.
47267dd7cddfSDavid du Colombier
47273ff48bf5SDavid du Colombier</pre><h3><a name="V2.1.1_Library"></a>Library</h3><pre>
47287dd7cddfSDavid du ColombierChanges the computation of penum-&gt;unpack in gsimage.c so as not to upset
47297dd7cddfSDavid du Colombiercompilers that don't treat procedures and pointers to procedures as
47307dd7cddfSDavid du Colombiercompatible types for conditional expressions.
47317dd7cddfSDavid du Colombier
47323ff48bf5SDavid du Colombier</pre>
47333ff48bf5SDavid du Colombier<h2><a name="Version2.1"></a>Version 2.1 (12/31/90)</h2>
47347dd7cddfSDavid du Colombier
47353ff48bf5SDavid du Colombier<p>This is primarily a bug fix release to clean up problems in 2.0.  It
47363ff48bf5SDavid du Colombieralso implements a first cut at the new color operators.
47377dd7cddfSDavid du Colombier
47383ff48bf5SDavid du Colombier<h3><a name="V2.1_Build_procedures"></a>Build procedures</h3><pre>
47397dd7cddfSDavid du ColombierChanges the separator for multiple directories in MS-DOS from ';' to '|',
47407dd7cddfSDavid du Colombiersince there is no way to include a ';' in a command line.
47417dd7cddfSDavid du Colombier
47427dd7cddfSDavid du ColombierAdds &lt;dir&gt;/fonts to the default search path, where &lt;dir&gt; is c:/ghost for
47437dd7cddfSDavid du ColombierMS-DOS systems and `pwd` for Unix systems.
47447dd7cddfSDavid du Colombier
47457dd7cddfSDavid du ColombierAdds new documentation describing how to direct output to the printer.
47467dd7cddfSDavid du Colombier
47477dd7cddfSDavid du ColombierChanges the PROCTYPE and USE8087 options in MSDOS.MAK to CPU_TYPE and
47487dd7cddfSDavid du ColombierFPU_TYPE.  The latter now indicates the type of FPU to generate code for,
47497dd7cddfSDavid du Colombierif any.
47507dd7cddfSDavid du Colombier
47513ff48bf5SDavid du Colombier</pre>
47527dd7cddfSDavid du Colombier
47533ff48bf5SDavid du Colombier<h3><a name="V2.1_Drivers"></a>Drivers</h3>
47543ff48bf5SDavid du Colombier
47553ff48bf5SDavid du Colombier<pre>
47567dd7cddfSDavid du ColombierAdds a driver for the Canon BubbleJet BJ10e.
47577dd7cddfSDavid du Colombier
47587dd7cddfSDavid du ColombierModifies the EGA driver to handle (non-standard) frame buffers larger than
47597dd7cddfSDavid du Colombier64K.  Adds drivers for the VGA and for the EIZO MDB-10 (a 1024 x 768 frame
47607dd7cddfSDavid du Colombierbuffer).
47617dd7cddfSDavid du Colombier
47627dd7cddfSDavid du ColombierChanges the X driver so that it clips to the window dimensions, rather
47637dd7cddfSDavid du Colombierthan reporting an error.
47647dd7cddfSDavid du Colombier
47657dd7cddfSDavid du ColombierNotes that the H-P LaserJet driver, like the DeskJet driver, works under
47667dd7cddfSDavid du ColombierUnix as well as MS-DOS.
47677dd7cddfSDavid du Colombier
47687dd7cddfSDavid du ColombierAdds support for 120 X DPI mode, and for the LQ-1500, to the Epson driver.
47697dd7cddfSDavid du Colombier
47703ff48bf5SDavid du Colombier</pre><h3><a name="V2.1_Fonts"></a>Fonts</h3><pre>
47717dd7cddfSDavid du ColombierFixes bugs in bdftops:
47727dd7cddfSDavid du Colombier	- It was using /UniqueId instead of /UniqueID as the key for the
47737dd7cddfSDavid du Colombierfont unique ID.  This effectively disabled the font cache.
47747dd7cddfSDavid du Colombier	- The definition for .notdef was bogus -- an invalid CharString.
47757dd7cddfSDavid du Colombier
47767dd7cddfSDavid du ColombierChanges ghost.ps and gfonts.ps so that NullFont is the initial font,
47777dd7cddfSDavid du Colombierrather than Ugly.
47787dd7cddfSDavid du Colombier
47797dd7cddfSDavid du ColombierArranges things so that when attempting a font substitution, if the
47807dd7cddfSDavid du Colombierdefault font is not found, NullFont is used instead.
47817dd7cddfSDavid du Colombier
47827dd7cddfSDavid du ColombierExtends bdftops so that if certain easily synthesized characters are
47837dd7cddfSDavid du Colombiermissing from a font, it will attempt to synthesize them using available
47847dd7cddfSDavid du Colombiercharacters.
47857dd7cddfSDavid du Colombier
47863ff48bf5SDavid du Colombier</pre><h3><a name="V2.1_Interpreter"></a>Interpreter</h3><pre>
47877dd7cddfSDavid du ColombierExtends the -T switch to allow specifying a printf template for the
47887dd7cddfSDavid du Colombierarguments of the procedure being traced.
47897dd7cddfSDavid du Colombier
47907dd7cddfSDavid du ColombierFixes bugs:
47917dd7cddfSDavid du Colombier	- /0 was interpreted as equivalent to 0 (a number) rather than a
47927dd7cddfSDavid du Colombierliteral name.
47937dd7cddfSDavid du Colombier	- packedarray was defined as being like array, instead of like
47947dd7cddfSDavid du Colombierarray followed by astore.
47957dd7cddfSDavid du Colombier	- Many minor and harmless type mismatches (and a couple of very
47967dd7cddfSDavid du Colombierminor genuine bugs) were upsetting the Apollo C compiler.
47977dd7cddfSDavid du Colombier	- exp was incorrectly failing in certain cases with a negative
47987dd7cddfSDavid du Colombierfirst argument.
47997dd7cddfSDavid du Colombier	- copyscanlines incorrectly required at least 4 elements on the
48007dd7cddfSDavid du Colombieroperand stack, although it correctly only used the top 3.
48017dd7cddfSDavid du Colombier	- readhexstring incorrectly read 1 byte even if the string length
48027dd7cddfSDavid du Colombierwas zero.
48037dd7cddfSDavid du Colombier	- Not every place that expected an array would accept a packed
48047dd7cddfSDavid du Colombierarray.
48057dd7cddfSDavid du Colombier	- Very complex paths (and infrequently other things) could produce
48067dd7cddfSDavid du Colombiera 'memory leak'.
48077dd7cddfSDavid du Colombier	- / alone would skip following whitespace and gather following
48087dd7cddfSDavid du Colombiercharacters, rather than creating an empty name.
48097dd7cddfSDavid du Colombier	- ghost.ps left newerror defined as true in $error, which resulted
48107dd7cddfSDavid du Colombierin an erroneous error report if a program executed a 'stop'.
48117dd7cddfSDavid du Colombier	- The definition of exitserver in serverdict didn't clear the
48127dd7cddfSDavid du Colombierstack.
48137dd7cddfSDavid du Colombier	- currentfile returned an executable file, rather than a literal
48147dd7cddfSDavid du Colombierone.
48157dd7cddfSDavid du Colombier	- setfont for Type 1 fonts didn't check the UniqueID in the font
48167dd7cddfSDavid du Colombierdictionary against the one in the font's Private dictionary.
48177dd7cddfSDavid du Colombier	- A value stored in a dictionary under the key /xxx couldn't be
48187dd7cddfSDavid du Colombierretrieved using the key (xxx), and vice versa.
48197dd7cddfSDavid du Colombier	- charpath with a Type 1 font on a string containing a 'space'
48207dd7cddfSDavid du Colombierwould produce garbage (it released the parent path inappropriately).
48217dd7cddfSDavid du Colombier	- bytesavailable did not work properly for terminal input.
48227dd7cddfSDavid du Colombier
48237dd7cddfSDavid du ColombierChanges the interface to the memory allocator so that it always takes an
48247dd7cddfSDavid du Colombierelement size and an element count, like calloc instead of malloc (but note
48257dd7cddfSDavid du Colombierthat alloc does *not* clear just-allocated blocks).  Gets rid of the
48267dd7cddfSDavid du Colombierspecial 'dynamic' allocation procedures.
48277dd7cddfSDavid du Colombier
48287dd7cddfSDavid du ColombierChanges the random number operators to use a better implementation.
48297dd7cddfSDavid du Colombier
48307dd7cddfSDavid du ColombierChanges the idiv operator so it will accept any numbers, not just
48317dd7cddfSDavid du Colombierintegers, as arguments.  (The PostScript manual doesn't allow this, but
48327dd7cddfSDavid du Colombierimplementations apparently do.)
48337dd7cddfSDavid du Colombier
48347dd7cddfSDavid du ColombierProvides semi-fake but usable definitions for all of the color PostScript
48357dd7cddfSDavid du Colombierextensions, including a real implementation of colorimage.
48367dd7cddfSDavid du Colombier
48377dd7cddfSDavid du ColombierNo longer uses the name 'null', which is apparently reserved by Microsoft
48387dd7cddfSDavid du ColombierC.  Makes a number of other minor changes required to pacify the Microsoft
48397dd7cddfSDavid du ColombierC compiler.
48407dd7cddfSDavid du Colombier
48417dd7cddfSDavid du ColombierImplements %statementedit and %lineedit.  (%statementedit is equivalent to
48427dd7cddfSDavid du Colombier%lineedit, which is wrong.)  Changes the interactive interpreter to use
48437dd7cddfSDavid du Colombier%statementedit.
48447dd7cddfSDavid du Colombier
48457dd7cddfSDavid du ColombierChanges the scanner to accept null, ctrl-K (vertical tab), and ctrl-L
48467dd7cddfSDavid du Colombier(form feed) as whitespace.  Ctrl-L terminates a comment, null and ctrl-K
48477dd7cddfSDavid du Colombierdo not.
48487dd7cddfSDavid du Colombier
48497dd7cddfSDavid du ColombierAllows a literal string as the 'proc' argument(s) for image, imagemask,
48507dd7cddfSDavid du Colombierand colorimage.
48517dd7cddfSDavid du Colombier
48527dd7cddfSDavid du ColombierAdds the following operators/procedures: arct, cleardictstack, deletefile,
48537dd7cddfSDavid du Colombierrenamefile.
48547dd7cddfSDavid du Colombier
48557dd7cddfSDavid du ColombierDefines =print as a synonym for =, for the benefit of LaserPrep.
48567dd7cddfSDavid du Colombier
48577dd7cddfSDavid du ColombierImplements non-zero PaintType for the show operators (but not for
48587dd7cddfSDavid du Colombiercharpath) for Type 1 fonts.
48597dd7cddfSDavid du Colombier
48607dd7cddfSDavid du ColombierAdds the ISOLatin1Encoding encoding vector.
48617dd7cddfSDavid du Colombier
48627dd7cddfSDavid du ColombierRenames currentcolor and setcolor as currentgscolor and setgscolor, to
48637dd7cddfSDavid du Colombieravoid conflict with the Level 2 PostScript names.  Removes colorhsb,
48647dd7cddfSDavid du Colombiercolorrgb, hsbcolor, and rgbcolor.
48657dd7cddfSDavid du Colombier
48663ff48bf5SDavid du Colombier</pre><h3><a name="V2.1_Library"></a>Library</h3><pre>
48677dd7cddfSDavid du ColombierFixes bugs:
48687dd7cddfSDavid du Colombier	- In a couple of places, a 0 was being passed as a pointer
48697dd7cddfSDavid du Colombierargument without casting, which confused the Microsoft C compiler.
48707dd7cddfSDavid du Colombier	- Image devices were not recognized properly in debugging
48717dd7cddfSDavid du Colombierconfigurations.
48727dd7cddfSDavid du Colombier	- Inverted-color monochrome image devices were not recognized
48737dd7cddfSDavid du Colombierproperly.
48747dd7cddfSDavid du Colombier	- Images that exactly fill the drawing area rendered very slowly,
48757dd7cddfSDavid du Colombierbecause they erroneously used the general clipping algorithm.
48767dd7cddfSDavid du Colombier	- Images that are 1-for-1 with the device were incorrectly scaled
48777dd7cddfSDavid du Colombierby a factor of 8 in X.
48787dd7cddfSDavid du Colombier	- Rounding artifacts sometimes caused characters to be unevenly
48797dd7cddfSDavid du Colombieroffset vertically by 1 pixel.
48807dd7cddfSDavid du Colombier	- Type 1 fonts that used the Flex feature resulted in garbled
48817dd7cddfSDavid du Colombierimages.
48827dd7cddfSDavid du Colombier	- The show operator routines would incorrectly fill or stroke a
48837dd7cddfSDavid du Colombierpath that existed at the time the show was started.
48847dd7cddfSDavid du Colombier	- setscreen truncated the cell size instead of rounding, which
48857dd7cddfSDavid du Colombiercould produce off-by-1 anomalies.
48867dd7cddfSDavid du Colombier	- stroke would sometimes produce garbage (or nothing at all) for
48877dd7cddfSDavid du Colombiervery narrow lines.
48887dd7cddfSDavid du Colombier	- path filling would only color the pixels whose centers fell
48897dd7cddfSDavid du Colombierinside the path: the Adobe specification requires coloring a pixel if any
48907dd7cddfSDavid du Colombierpart of it falls inside the path.
48917dd7cddfSDavid du Colombier
48927dd7cddfSDavid du ColombierChanges the Epson printer driver so that it drives the printer directly
48937dd7cddfSDavid du Colombierrather than writing to a file.
48947dd7cddfSDavid du Colombier
48957dd7cddfSDavid du ColombierChanges pathbbox so that if the path is empty but there is a current
48967dd7cddfSDavid du Colombierpoint, it returns a null rectangle at the current point.
48977dd7cddfSDavid du Colombier
48987dd7cddfSDavid du ColombierChanges gs_image_init to take an additional parameter (after bps) giving
48997dd7cddfSDavid du Colombierthe number of samples per pixel (1, 3, or 4), and an indication of whether
49007dd7cddfSDavid du Colombierthe samples for each pixel are together or separated (-3 or -4).
49017dd7cddfSDavid du Colombier
49027dd7cddfSDavid du ColombierRenames the gs_image_data and gs_imagemask_data procedures as gs_image and
49037dd7cddfSDavid du Colombiergs_imagemask, and removes the old versions of the latter.
49047dd7cddfSDavid du Colombier
49057dd7cddfSDavid du ColombierAdds gs_colorimage.
49067dd7cddfSDavid du Colombier
49077dd7cddfSDavid du ColombierReplaces Snoopy's color dithering algorithm with one contributed by Paul
49087dd7cddfSDavid du ColombierHaeberli.
49097dd7cddfSDavid du Colombier
49107dd7cddfSDavid du ColombierChanges gs_setgray, gs_[set]hsbcolor, and gs_[set]rgbcolor so that they
49117dd7cddfSDavid du Colombiercoerce arguments outside the range [0..1] back into the range, instead of
49127dd7cddfSDavid du Colombiersignalling an error.
49137dd7cddfSDavid du Colombier
49147dd7cddfSDavid du ColombierMakes a number of minor changes required to pacify the Microsoft C
49157dd7cddfSDavid du Colombiercompiler.
49167dd7cddfSDavid du Colombier
49177dd7cddfSDavid du ColombierChanges gs_arcto so that if the last argument is a null pointer, the
49187dd7cddfSDavid du Colombiertangent points are not returned.
49197dd7cddfSDavid du Colombier
49207dd7cddfSDavid du ColombierRemoves gs_type1addpath, which is not useful.  (Clients must call
49217dd7cddfSDavid du Colombiergs_type1_init and gs_type1_interpret directly.)
49227dd7cddfSDavid du Colombier
49237dd7cddfSDavid du ColombierImplements the 'seac' opcode for Type 1 fonts, allowing fonts with accented
49247dd7cddfSDavid du Colombiercharacters to display properly.
49257dd7cddfSDavid du Colombier
49267dd7cddfSDavid du ColombierImplements the undocumented 'testadd' opcode for Type 1 fonts, which is
49277dd7cddfSDavid du Colombierused by some Adobe fonts.
49287dd7cddfSDavid du Colombier
49297dd7cddfSDavid du ColombierRenames gs_currentcolor and gs_setcolor as gs_currentgscolor and
49307dd7cddfSDavid du Colombiergs_setgscolor.  Removes gs_colorhsb, gs_colorrgb, gs_hsbcolor, and
49317dd7cddfSDavid du Colombiergs_rgbcolor.
49327dd7cddfSDavid du Colombier
49333ff48bf5SDavid du Colombier</pre>
49347dd7cddfSDavid du Colombier
49353ff48bf5SDavid du Colombier<hr>
49363ff48bf5SDavid du Colombier
49373ff48bf5SDavid du Colombier<h2><a name="Version2.0"></a>Version 2.0 (9/12/90)</h2>
49383ff48bf5SDavid du Colombier
49393ff48bf5SDavid du Colombier<p>The main purpose of this release is to add fonts, support for
49403ff48bf5SDavid du Colombiermultiple
49417dd7cddfSDavid du Colombierdevices, and imaging into memory.  It also fixes a number of miscellaneous
49427dd7cddfSDavid du Colombierbugs.  (Unfortunately, accurate records of the bugs fixed are not
49437dd7cddfSDavid du Colombieravailable.)  The changes were so extensive that we chose to increment the
49447dd7cddfSDavid du Colombiermajor version number.
49457dd7cddfSDavid du Colombier
49463ff48bf5SDavid du Colombier<h3><a name="V2.0_Miscellaneous"></a>Miscellaneous</h3><pre>
49477dd7cddfSDavid du ColombierDoesn't attempt to open the .MAP file on Unix systems.
49487dd7cddfSDavid du Colombier
49497dd7cddfSDavid du ColombierAdds mention of statusd.ps to interp.doc.
49507dd7cddfSDavid du Colombier
49517dd7cddfSDavid du ColombierNotes that Turbo C 2.0, not 1.5, is required for building the MS-DOS
49527dd7cddfSDavid du Colombierversion.
49537dd7cddfSDavid du Colombier
49547dd7cddfSDavid du ColombierAdds a DEVICES= line to the makefile, and allows multiple devices.
49557dd7cddfSDavid du Colombier
49567dd7cddfSDavid du ColombierDocuments, in interp.doc, the X Windows resources that Ghostscript
49577dd7cddfSDavid du Colombierrecognizes.
49587dd7cddfSDavid du Colombier
49597dd7cddfSDavid du ColombierAdds three PostScript masters to the fileset: chess.ps (+ cheq.ps),
49607dd7cddfSDavid du Colombiergolfer.ps, and escher.ps.
49617dd7cddfSDavid du Colombier
49623ff48bf5SDavid du Colombier</pre><h3><a name="V2.0_Drivers"></a>Drivers</h3><pre>
49637dd7cddfSDavid du ColombierChanges the names of all the device drivers.  See gdevs.mak for the
49647dd7cddfSDavid du Colombierupdated list.
49657dd7cddfSDavid du Colombier
49667dd7cddfSDavid du ColombierAdds a (working) driver for SunView.
49677dd7cddfSDavid du Colombier
49687dd7cddfSDavid du ColombierAdds drivers for the Sony NeWS frame buffer, and the Sony Microsystems
49697dd7cddfSDavid du ColombierNWP533 printers.  These drivers were contributed by users, so we aren't
49707dd7cddfSDavid du Colombierprepared to answer questions about them.
49717dd7cddfSDavid du Colombier
49727dd7cddfSDavid du ColombierAdds a driver for the Borland Graphics Interface (BGI) for MS-DOS systems.
49737dd7cddfSDavid du ColombierNote that to use this driver with a non-EGA/VGA display, you need a .BGI
49747dd7cddfSDavid du Colombierfile appropriate for your hardware.  (The Ghostscript executable includes
49757dd7cddfSDavid du Colombierthe EGA/VGA driver.)
49767dd7cddfSDavid du Colombier
49777dd7cddfSDavid du ColombierAdds a driver for Epson printers.  The driver has only been tested on an
49787dd7cddfSDavid du ColombierLX-800, and on an H-P DeskJet in FX-80 emulation mode, but may work on
49797dd7cddfSDavid du Colombierother models.  The driver could be adapted to work on Unix systems, but as
49807dd7cddfSDavid du Colombierdistributed, it only works on MS-DOS systems.
49817dd7cddfSDavid du Colombier
49827dd7cddfSDavid du ColombierAdds a driver for the Hewlett-Packard DeskJet printer.  The driver could
49837dd7cddfSDavid du Colombierbe adapted to work on Unix systems, but as distributed, it only works on
49847dd7cddfSDavid du ColombierMS-DOS systems.
49857dd7cddfSDavid du Colombier
49867dd7cddfSDavid du ColombierThe X Windows driver no longer waits for the user to type a character
49877dd7cddfSDavid du Colombierbefore bringing up the initial display.
49887dd7cddfSDavid du Colombier
49897dd7cddfSDavid du ColombierAdds information to drivers.doc describing how to change the definition of
49907dd7cddfSDavid du Colombierthe device structure and procedure table.
49917dd7cddfSDavid du Colombier
49927dd7cddfSDavid du ColombierExtends the tile_rectangle and tile_trapezoid driver procedures to
49937dd7cddfSDavid du Colombierinterpret color0 = color1 = gx_no_color_index as meaning that the tile is
49947dd7cddfSDavid du Colombieractually colored, not a mask.
49957dd7cddfSDavid du Colombier
49963ff48bf5SDavid du Colombier</pre><h3><a name="V2.0_Build_procedures"></a>Build procedures</h3><pre>
49977dd7cddfSDavid du ColombierChanges the tar file so it puts everything in a directory called gs.
49987dd7cddfSDavid du Colombier
49997dd7cddfSDavid du ColombierRemoves the -ansi switch for gcc (this was causing problems with &lt;math.h&gt;
50007dd7cddfSDavid du Colombieron some systems).
50017dd7cddfSDavid du Colombier
50027dd7cddfSDavid du ColombierChanges LDPLAT to the string -X, which is appropriate for most Unix
50037dd7cddfSDavid du Colombiersystems (but not for SunOS 4.n).
50047dd7cddfSDavid du Colombier
50057dd7cddfSDavid du ColombierAdds EXTRALIBS to the makefile, for specifying additional libraries to be
50067dd7cddfSDavid du Colombierlinked in.
50077dd7cddfSDavid du Colombier
50087dd7cddfSDavid du ColombierAdds a 'clean' target for 'make', to get rid of all temporary files, the
50097dd7cddfSDavid du Colombierbinaries, and the executable.
50107dd7cddfSDavid du Colombier
50117dd7cddfSDavid du ColombierChanges names of system-specific files from gp-xxx.c to gp_xxx.c.
50127dd7cddfSDavid du Colombier
50137dd7cddfSDavid du ColombierAdds support for VMS (gp_vms.c and ghost.dcl).
50147dd7cddfSDavid du Colombier
50157dd7cddfSDavid du ColombierCreates a new file gdevs.mak, and reorganizes the other makefiles, so that
50167dd7cddfSDavid du Colombierthe choice of which device driver(s) to include is isolated in a single
50177dd7cddfSDavid du Colombierline in the platform-specific makefile.
50187dd7cddfSDavid du Colombier
50197dd7cddfSDavid du ColombierChanges the standard MS-DOS makefile so it builds for 8088/86 (not 80386),
50207dd7cddfSDavid du Colombierwith neither -DNOPRIVATE nor -DDEBUG.
50217dd7cddfSDavid du Colombier
50227dd7cddfSDavid du ColombierChanges the name of the MS-DOS makefile from dos-ega.mak to msdos.mak, and
50237dd7cddfSDavid du Colombierthe Unix makefiles from ux-[g]cc-x.mak to unix-[g]cc.mak.
50247dd7cddfSDavid du Colombier
50257dd7cddfSDavid du ColombierUpdates drivers.doc to describe how to add new drivers in gdevs.mak.
50267dd7cddfSDavid du Colombier
50277dd7cddfSDavid du ColombierRemoves gdevs.ps: the drivers are now responsible for specifying the size
50287dd7cddfSDavid du Colombierof the imaging region.
50297dd7cddfSDavid du Colombier
50303ff48bf5SDavid du Colombier</pre><h3><a name="V2.0_Interpreter"></a>Interpreter</h3><pre>
50317dd7cddfSDavid du ColombierAdds a makefile macro GS_LIB_DEFAULT and an environment variable GS_LIB to
50327dd7cddfSDavid du Colombierdefine a search path for the library (initialization and font) files, and
50337dd7cddfSDavid du Colombierimplements the -I switch for the same purpose (replacing -sLIB=, which was
50347dd7cddfSDavid du Colombiernever actually implemented).  See interp.doc for details.
50357dd7cddfSDavid du Colombier
50367dd7cddfSDavid du ColombierNo longer clears the operand stack between interactive inputs.  No longer
50377dd7cddfSDavid du Colombierprints the contents of the operand stack after every input in debug mode.
50387dd7cddfSDavid du Colombier
50397dd7cddfSDavid du ColombierDoesn't "eat" the character that the user types to proceed after a
50407dd7cddfSDavid du Colombiershowpage, unless it's an isolated &lt;return&gt;.
50417dd7cddfSDavid du Colombier
50427dd7cddfSDavid du ColombierChanges the prompt so that it says
50437dd7cddfSDavid du Colombier	GS&gt;
50447dd7cddfSDavid du Colombierif the operand stack is empty, or
50457dd7cddfSDavid du Colombier	GS&lt;n&gt;
50467dd7cddfSDavid du Colombierif there are n &gt; 0 elements on the operand stack.
50477dd7cddfSDavid du Colombier
50487dd7cddfSDavid du ColombierAdds -w and -h switches to the command line, equivalent to -dWIDTH= and
50497dd7cddfSDavid du Colombier-dHEIGHT= except that they require numeric arguments.
50507dd7cddfSDavid du Colombier
50517dd7cddfSDavid du ColombierAdds -q (quiet startup) switch to the command line, which suppresses some
50527dd7cddfSDavid du Colombierinitial messages and also has an effect equivalent to -dQUIET.
50537dd7cddfSDavid du Colombier
50547dd7cddfSDavid du ColombierFixes bugs:
50557dd7cddfSDavid du Colombier	- = and == caused an error on some kinds of objects if the object
50567dd7cddfSDavid du Colombierdidn't have read access.
50577dd7cddfSDavid du Colombier	- cvs didn't print operator names.
50587dd7cddfSDavid du Colombier	- The definition of dynamic_begin in iscan.c caused the DEC VMS C
50597dd7cddfSDavid du Colombiercompiler to produce incorrect code.
50607dd7cddfSDavid du Colombier	- mul didn't return a correct (real) result when multiplying a
50617dd7cddfSDavid du Colombiervery large integer by an integer that wasn't very large.
50627dd7cddfSDavid du Colombier	- eq and ne didn't work on files, fonts, save objects, and some
50637dd7cddfSDavid du Colombieroperators.
50647dd7cddfSDavid du Colombier	- The scanner would sometimes blow up on floating point numbers
50657dd7cddfSDavid du Colombierbeginning with a '.'.
50667dd7cddfSDavid du Colombier	- flushfile didn't pop its argument from the stack.
50677dd7cddfSDavid du Colombier	- put and putinterval would store into a packed array.
50687dd7cddfSDavid du Colombier	- a few operators didn't check properly for stack underflow.
50697dd7cddfSDavid du Colombier	- cvrs produced wrong output for radix values greater than 10.
50707dd7cddfSDavid du Colombier	- The scanner would convert upper-case letters in alternate-radix
50717dd7cddfSDavid du Colombiernumbers wrong on Unix systems.
50727dd7cddfSDavid du Colombier	- String comparisons other than equality often produced the wrong
50737dd7cddfSDavid du Colombierresult if the strings were of different lengths.
50747dd7cddfSDavid du Colombier	- An ifelse as the last thing inside a forall would confuse the
50757dd7cddfSDavid du Colombierexecution stack.
50767dd7cddfSDavid du Colombier	- There were some omitted casts and 'private' declarations that
50777dd7cddfSDavid du Colombiermade the GNU compiler unhappy.
50787dd7cddfSDavid du Colombier	- There was a memory leak in the image[mask] operators that caused
50797dd7cddfSDavid du Colombier516 bytes to be permanently lost each time one of them was used.
50807dd7cddfSDavid du Colombier	- Quoted strings of length greater than 50 and less than 100 would
50817dd7cddfSDavid du Colombierget mangled when being read in.
50827dd7cddfSDavid du Colombier	- The scanner didn't consume the whitespace character following a
50837dd7cddfSDavid du Colombiertoken, so programs that read data out of the program file could get
50847dd7cddfSDavid du Colombierconfused.
50857dd7cddfSDavid du Colombier	- Under rare circumstances, an object of size between 249 and 255
50867dd7cddfSDavid du Colombierbytes could get allocated on top of another object.
50877dd7cddfSDavid du Colombier
50887dd7cddfSDavid du ColombierAllows bind to bind packed arrays, even though they aren't normally
50897dd7cddfSDavid du Colombierwritable.
50907dd7cddfSDavid du Colombier
50917dd7cddfSDavid du ColombierChanges the length operator to allow a name as the argument.  (The
50927dd7cddfSDavid du ColombierPostScript manual doesn't allow this, but implementations apparently do.)
50937dd7cddfSDavid du Colombier
50947dd7cddfSDavid du ColombierChanges the setcachedevice operator to allow the bounding box to be
50957dd7cddfSDavid du Colombierspecified as a 4-element array instead of 4 scalars.  (The PostScript
50967dd7cddfSDavid du Colombiermanual doesn't allow this, but implementations apparently do.)
50977dd7cddfSDavid du Colombier
50987dd7cddfSDavid du ColombierRemoves a line from ghost.ps that accidentally disabled the font cache.
50997dd7cddfSDavid du Colombier
51007dd7cddfSDavid du ColombierImplements memory devices (makeimagedevice, copyscanlines, and makedevice
51017dd7cddfSDavid du Colombierfor image devices).  makeimagedevice is implemented only for 1, 8, 24, and
51027dd7cddfSDavid du Colombier32 bits per pixel.
51037dd7cddfSDavid du Colombier
51047dd7cddfSDavid du ColombierChanges the deviceparams operator so it pushes a mark on the stack below
51057dd7cddfSDavid du Colombierthe parameters.  This is to allow for devices that have more than the
51067dd7cddfSDavid du Colombierstandard set of parameters.
51077dd7cddfSDavid du Colombier
51087dd7cddfSDavid du ColombierReplaces defaultdevicename with two new operators, getdevice and
51097dd7cddfSDavid du Colombierdevicename.
51107dd7cddfSDavid du Colombier
51117dd7cddfSDavid du ColombierAdds a flushpage operator that flushes any outstanding buffered output to
51127dd7cddfSDavid du Colombierthe screen.  This is not the same as copypage: on printers, copypage
51137dd7cddfSDavid du Colombieractually prints a page, whereas flushpage may do nothing; on displays,
51147dd7cddfSDavid du Colombierflushpage and copypage may both flush output to a server.
51157dd7cddfSDavid du Colombier
51167dd7cddfSDavid du ColombierAdds an unread operator for pushing back a character into a file.
51177dd7cddfSDavid du Colombier
51187dd7cddfSDavid du ColombierAdds a description of proposed grayimage and colorimage operators to
51197dd7cddfSDavid du Colombierghost.doc, even though they aren't implemented yet.
51207dd7cddfSDavid du Colombier
51217dd7cddfSDavid du ColombierChanges the name of the currentfileposition operator to fileposition.
51227dd7cddfSDavid du Colombier
51237dd7cddfSDavid du ColombierRemoves the framedevice operator, since the new device operators supersede
51247dd7cddfSDavid du Colombierit.
51257dd7cddfSDavid du Colombier
51267dd7cddfSDavid du ColombierAdds a writeppmfile operator, for writing the contents of a memory device
51277dd7cddfSDavid du Colombierto a ppm file.
51287dd7cddfSDavid du Colombier
51297dd7cddfSDavid du ColombierMakes Ghostscript work even when the &gt;&gt; operator doesn't sign-extend
51307dd7cddfSDavid du Colombiernegative numbers.  (This has not been tested.)
51317dd7cddfSDavid du Colombier
51327dd7cddfSDavid du ColombierAdds the Symbol encoding to ghost.ps.
51337dd7cddfSDavid du Colombier
51347dd7cddfSDavid du ColombierAdds two new file-related operators, filename and findlibfile.  See
51357dd7cddfSDavid du Colombierghost.doc and interp.doc for details.
51367dd7cddfSDavid du Colombier
51377dd7cddfSDavid du ColombierAdds type1encrypt and type1decrypt operators for manipulating Adobe Type 1
51387dd7cddfSDavid du Colombierencoded fonts.
51397dd7cddfSDavid du Colombier
51407dd7cddfSDavid du ColombierChanges the imagecharpath and addcharpath operators to type1imagepath and
51417dd7cddfSDavid du Colombiertype1addpath.  These operators now work with the Adobe Type 1 font
51427dd7cddfSDavid du Colombierencoding.
51437dd7cddfSDavid du Colombier
51447dd7cddfSDavid du ColombierAdds the type1decryptfile operator for reading Adobe Type 1 encrypted
51457dd7cddfSDavid du Colombierfonts.
51467dd7cddfSDavid du Colombier
51473ff48bf5SDavid du Colombier</pre><h3><a name="V2.0_Library"></a>Library</h3><pre>
51487dd7cddfSDavid du ColombierFixes bugs:
51497dd7cddfSDavid du Colombier	- curveto and lineto didn't check for the current point being
51507dd7cddfSDavid du Colombierdefined.
51517dd7cddfSDavid du Colombier	- stringwidth would fail if there was no current point.
51527dd7cddfSDavid du Colombier	- There were omitted casts that made the GNU compiler unhappy.
51537dd7cddfSDavid du Colombier	- Line caps and joins didn't always work.
51547dd7cddfSDavid du Colombier	- Dashed lines didn't work at all.
51557dd7cddfSDavid du Colombier	- If you read out the current matrix while inside a BuildChar
51567dd7cddfSDavid du Colombierprocedure, the result was garbage.
51577dd7cddfSDavid du Colombier	- image[mask] would crash if you gave it a single string with more
51587dd7cddfSDavid du Colombierthan 64K-1 pixels (MS-DOS only).
51597dd7cddfSDavid du Colombier	- Filling with a gray pattern sometimes wrote into pixels beyond
51607dd7cddfSDavid du Colombierthe right edge of the region (MS-DOS only).
51617dd7cddfSDavid du Colombier	- The font cache would mistake fonts for each other if both fonts
51627dd7cddfSDavid du Colombierhad a default (unsupplied) "unique ID".
51637dd7cddfSDavid du Colombier	- When a character was entered into the font cache for the first
51647dd7cddfSDavid du Colombiertime, sometimes it would display as garbage and/or displaced vertically
51657dd7cddfSDavid du Colombierfrom its proper position.
51667dd7cddfSDavid du Colombier
51677dd7cddfSDavid du ColombierImplements gs_makeimagedevice, gs_copyscanlines, gs_getdevice,
51687dd7cddfSDavid du Colombiergs_devicename, gs_flushpage, gs_writeppmfile, gs_type1encrypt,
51697dd7cddfSDavid du Colombiergs_type1decrypt, gs_type1imagepath, and gs_type1addpath procedures
51707dd7cddfSDavid du Colombiercorresponding to the new operators in the interpreter (see preceding
51717dd7cddfSDavid du Colombiersection).
51727dd7cddfSDavid du Colombier
51737dd7cddfSDavid du ColombierChanges [gs_]setdevice so that it does an erasepage when it first opens
51747dd7cddfSDavid du Colombierthe device.
51757dd7cddfSDavid du Colombier
51767dd7cddfSDavid du ColombierChanges definition of gx_device structure as follows.  NOTE: THIS AFFECTS
51777dd7cddfSDavid du ColombierALL DRIVERS.
51787dd7cddfSDavid du Colombier
51797dd7cddfSDavid du Colombier	- Removes bits_from_MSB (which wasn't actually used, in any case).
51807dd7cddfSDavid du Colombier	    Ghostscript now assumes officially, as it always did in
51817dd7cddfSDavid du Colombier	    practice, that device bitmaps are stored MSB first, i.e., X=0
51827dd7cddfSDavid du Colombier	    corresponds to the 0x80 bit in the first byte.
51837dd7cddfSDavid du Colombier
51847dd7cddfSDavid du Colombier	- Removes the initial_matrix member, which wasn't actually being
51857dd7cddfSDavid du Colombier	    set up.
51867dd7cddfSDavid du Colombier
51877dd7cddfSDavid du Colombier	- Adds a new member 'name', a string giving the device name.
51887dd7cddfSDavid du Colombier
51897dd7cddfSDavid du Colombier	- Adds new members 'x_pixels_per_inch' and 'y_pixels_per_inch'.
51907dd7cddfSDavid du Colombier	    These are only used by the default initial_matrix procedure
51917dd7cddfSDavid du Colombier	    (see below).
51927dd7cddfSDavid du Colombier
51937dd7cddfSDavid du Colombier	- Adds a new procedure 'output_page'.  The default implementation
51947dd7cddfSDavid du Colombier	    (gx_default_output_page) just calls the sync_output procedure.
51957dd7cddfSDavid du Colombier
51967dd7cddfSDavid du Colombier	- Adds a new procedure 'get_initial_matrix'.  The default
51977dd7cddfSDavid du Colombier	    procedure uses the width, height, and x/y_pixels_per_inch
51987dd7cddfSDavid du Colombier	    members to compute the matrix, assuming that X values run from
51997dd7cddfSDavid du Colombier	    right to left, and Y values run from top to bottom.
52007dd7cddfSDavid du Colombier
52017dd7cddfSDavid du ColombierChanges the names of the allocation procedure types gs_proc_alloc and
52027dd7cddfSDavid du Colombiergs_proc_free to proc_alloc_t and proc_free_t, and moves them from gs.h to
52037dd7cddfSDavid du Colombierstd.h.
52047dd7cddfSDavid du Colombier
52057dd7cddfSDavid du ColombierMakes Ghostscript work even when the &gt;&gt; operator doesn't sign-extend
52067dd7cddfSDavid du Colombiernegative numbers.  (This has not been tested.)
52073ff48bf5SDavid du Colombier
52087dd7cddfSDavid du Colombier</pre>
52097dd7cddfSDavid du Colombier
52107dd7cddfSDavid du Colombier<!-- [3.0 begin visible trailer] =========================================== -->
52117dd7cddfSDavid du Colombier<hr>
52127dd7cddfSDavid du Colombier
52133ff48bf5SDavid du Colombier<p>
52143ff48bf5SDavid du Colombier<small>Copyright &copy; 1996, 1997, 1998 Aladdin Enterprises.
52153ff48bf5SDavid du ColombierAll rights reserved.</small>
52167dd7cddfSDavid du Colombier
52177dd7cddfSDavid du Colombier<p>
5218*593dc095SDavid du ColombierThis software is provided AS-IS with no warranty, either express or
5219*593dc095SDavid du Colombierimplied.
5220*593dc095SDavid du Colombier
5221*593dc095SDavid du ColombierThis software is distributed under license and may not be copied,
5222*593dc095SDavid du Colombiermodified or distributed except as expressly authorized under the terms
5223*593dc095SDavid du Colombierof the license contained in the file LICENSE in this distribution.
5224*593dc095SDavid du Colombier
5225*593dc095SDavid du ColombierFor more information about licensing, please refer to
5226*593dc095SDavid du Colombierhttp://www.ghostscript.com/licensing/. For information on
5227*593dc095SDavid du Colombiercommercial licensing, go to http://www.artifex.com/licensing/ or
5228*593dc095SDavid du Colombiercontact Artifex Software, Inc., 101 Lucas Valley Road #110,
5229*593dc095SDavid du ColombierSan Rafael, CA  94903, U.S.A., +1(415)492-9861.
52307dd7cddfSDavid du Colombier
52313ff48bf5SDavid du Colombier<p>
5232*593dc095SDavid du Colombier<small>Ghostscript version 8.53, 20 October 2005
52337dd7cddfSDavid du Colombier
52347dd7cddfSDavid du Colombier<!-- [3.0 end visible trailer] ============================================= -->
52357dd7cddfSDavid du Colombier
52367dd7cddfSDavid du Colombier</body>
52377dd7cddfSDavid du Colombier</html>
5238