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 /<< or />> 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 <> 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 & 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 & 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 >. 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 <= 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 <dirent.h>. 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 << 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 (<ESC>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 <sys/types.h>, which is needed for 24167dd7cddfSDavid du Colombiertime_t on some systems. 24177dd7cddfSDavid du Colombier - malloc_.h used <malloc.h> rather than <stdlib.h> 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<<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 <file> <destfile> 26017dd7cddfSDavid du Colombierrather than install <file> <directory>. 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 <page#>: replaces the former -P switch. 26547dd7cddfSDavid du Colombier --last-page <page#>: replaces the former -Q switch. 26557dd7cddfSDavid du Colombier --(heading|footing)-(left|center|right) <string>: define 26567dd7cddfSDavid du Colombier headers/footers. # inserts the page number. 26577dd7cddfSDavid du Colombier --margin-(top|bottom|left|right) <inches>: define margins. 26587dd7cddfSDavid du Colombier --spacing <n>: 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 !@*&^%#@$ PCL drivers *still* didn't do the right thing 27587dd7cddfSDavid du Colombierabout vertical spacing: the <ESC>*p+<n>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->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&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&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 <ctype.h> 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 - <~ ~> 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->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&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=<string> 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=<sizename> initializes the paper size. 33917dd7cddfSDavid du Colombier -dBufferSpace=<number> 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 <string.h> 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 &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 -> \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 <esc>*b#Y rather than <esc>*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<name> defined <name> 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<res> and -r<xres>x<yres> 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 << and >> 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=<device>, 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<width>x<height>. 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<version> 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->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 <dir>/fonts to the default search path, where <dir> 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 <math.h> 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 <return>. 50417dd7cddfSDavid du Colombier 50427dd7cddfSDavid du ColombierChanges the prompt so that it says 50437dd7cddfSDavid du Colombier GS> 50447dd7cddfSDavid du Colombierif the operand stack is empty, or 50457dd7cddfSDavid du Colombier GS<n> 50467dd7cddfSDavid du Colombierif there are n > 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 >> 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 >> 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 © 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