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