2 |
- |
1 |
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
|
|
2 |
<html>
|
|
|
3 |
<head>
|
|
|
4 |
<title>History of Ghostscript versions 4.n</title>
|
|
|
5 |
<!-- $Id: History4.htm,v 1.39 2005/10/20 19:46:23 ray Exp $ -->
|
|
|
6 |
<!-- Originally: history4.txt -->
|
|
|
7 |
<!--
|
|
|
8 |
WARNING: do not use Pete Kaiser's emacs function "gs-toc" alone to
|
|
|
9 |
re-create the table of contents here, because it will replace the
|
|
|
10 |
hand-edited TOC subheads with a separate subhead for each H2 in
|
|
|
11 |
the body of the file. Or if you do, first look at the original
|
|
|
12 |
TOC to see how to edit it for visual conciseness.
|
|
|
13 |
-->
|
|
|
14 |
<link rel="stylesheet" type="text/css" href="gs.css" title="Ghostscript Style">
|
|
|
15 |
</head>
|
|
|
16 |
|
|
|
17 |
<body>
|
|
|
18 |
<!-- [1.0 begin visible header] ============================================ -->
|
|
|
19 |
|
|
|
20 |
<!-- [1.1 begin headline] ================================================== -->
|
|
|
21 |
|
|
|
22 |
<h1>History of Ghostscript versions 4.n</h1>
|
|
|
23 |
|
|
|
24 |
<!-- [1.1 end headline] ==================================================== -->
|
|
|
25 |
|
|
|
26 |
<!-- [1.2 begin table of contents] ========================================= -->
|
|
|
27 |
|
|
|
28 |
<h2>Table of contents</h2>
|
|
|
29 |
|
|
|
30 |
<blockquote><ul>
|
|
|
31 |
<li><a href="#Version4.81">Version 4.81 (6/1/97)</a>
|
|
|
32 |
<ul>
|
|
|
33 |
<li><a href="#V4.81_Documentation">Documentation</a>,
|
|
|
34 |
<a href="#V4.81_Procedures">Procedures</a>,
|
|
|
35 |
<a href="#V4.81_Utilities">Utilities</a>,
|
|
|
36 |
<a href="#V4.81_Drivers">Drivers</a>,
|
|
|
37 |
<a href="#V4.81_Platforms">Platforms</a>,
|
|
|
38 |
<a href="#V4.81_Interpreter">Interpreter</a>,
|
|
|
39 |
<a href="#V4.81_Library">Library</a>
|
|
|
40 |
</ul>
|
|
|
41 |
<li><a href="#Version4.80">Version 4.80 (limited) (5/28/97)</a>
|
|
|
42 |
<ul>
|
|
|
43 |
<li><a href="#V4.80_Documentation">Documentation</a>,
|
|
|
44 |
<a href="#V4.80_Procedures">Procedures</a>,
|
|
|
45 |
<a href="#V4.80_Utilities">Utilities</a>,
|
|
|
46 |
<a href="#V4.80_Drivers">Drivers</a>,
|
|
|
47 |
<a href="#V4.80_Platforms">Platforms</a>,
|
|
|
48 |
<a href="#V4.80_Fonts">Fonts</a>,
|
|
|
49 |
<a href="#V4.80_Interpreter">Interpreter</a>,
|
|
|
50 |
<a href="#V4.80_Streams">Streams</a>,
|
|
|
51 |
<a href="#V4.80_Library">Library</a>
|
|
|
52 |
</ul>
|
|
|
53 |
<li><a href="#Version4.74">Version 4.74 (limited) (5/5/97)</a>
|
|
|
54 |
<ul>
|
|
|
55 |
<li><a href="#V4.74_Documentation">Documentation</a>,
|
|
|
56 |
<a href="#V4.74_Utilities">Utilities</a>,
|
|
|
57 |
<a href="#V4.74_Drivers">Drivers</a>,
|
|
|
58 |
<a href="#V4.74_Interpreter">Interpreter</a>,
|
|
|
59 |
<a href="#V4.74_Streams">Streams</a>,
|
|
|
60 |
<a href="#V4.74_Library">Library</a>
|
|
|
61 |
</ul>
|
|
|
62 |
<li><a href="#Version4.73">Version 4.73 (limited) (4/19/97)</a>
|
|
|
63 |
<ul>
|
|
|
64 |
<li><a href="#V4.73_Documentation">Documentation</a>,
|
|
|
65 |
<a href="#V4.73_Procedures">Procedures</a>,
|
|
|
66 |
<a href="#V4.73_Utilities">Utilities</a>,
|
|
|
67 |
<a href="#V4.73_Drivers">Drivers</a>,
|
|
|
68 |
<a href="#V4.73_Platforms">Platforms</a>,
|
|
|
69 |
<a href="#V4.73_Interpreter">Interpreter</a>,
|
|
|
70 |
<a href="#V4.73_Interpreter_PDF">Interpreter (PDF)</a>,
|
|
|
71 |
<a href="#V4.73_Streams">Streams</a>,
|
|
|
72 |
<a href="#V4.73_Library">Library</a>
|
|
|
73 |
</ul>
|
|
|
74 |
<li><a href="#Version4.72">Version 4.72 (limited) (4/14/97)</a>
|
|
|
75 |
<ul>
|
|
|
76 |
<li><a href="#V4.72_Documentation">Documentation</a>,
|
|
|
77 |
<a href="#V4.72_Procedures">Procedures</a>,
|
|
|
78 |
<a href="#V4.72_Drivers">Drivers</a>,
|
|
|
79 |
<a href="#V4.72_Platforms">Platforms</a>,
|
|
|
80 |
<a href="#V4.72_Interpreter">Interpreter</a>,
|
|
|
81 |
<a href="#V4.72_Interpreter_PDF">Interpreter (PDF)</a>,
|
|
|
82 |
<a href="#V4.72_Streams">Streams</a>,
|
|
|
83 |
<a href="#V4.72_Library">Library</a>
|
|
|
84 |
</ul>
|
|
|
85 |
<li><a href="#Version4.71">Version 4.71 (limited) (3/31/97)</a>
|
|
|
86 |
<ul>
|
|
|
87 |
<li><a href="#V4.71_Documentation">Documentation</a>,
|
|
|
88 |
<a href="#V4.71_Procedures">Procedures</a>,
|
|
|
89 |
<a href="#V4.71_Drivers">Drivers</a>,
|
|
|
90 |
<a href="#V4.71_Interpreter">Interpreter</a>,
|
|
|
91 |
<a href="#V4.71_Streams">Streams</a>,
|
|
|
92 |
<a href="#V4.71_Library">Library</a>
|
|
|
93 |
</ul>
|
|
|
94 |
<li><a href="#Version4.70">Version 4.70 (limited) (3/26/97)</a>
|
|
|
95 |
<ul>
|
|
|
96 |
<li><a href="#V4.70_Documentation">Documentation</a>,
|
|
|
97 |
<a href="#V4.70_Procedures">Procedures</a>,
|
|
|
98 |
<a href="#V4.70_Drivers">Drivers</a>,
|
|
|
99 |
<a href="#V4.70_Platforms">Platforms</a>,
|
|
|
100 |
<a href="#V4.70_Interpreter">Interpreter</a>,
|
|
|
101 |
<a href="#V4.70_Interpreter_PDF">Interpreter (PDF)</a>,
|
|
|
102 |
<a href="#V4.70_Streams">Streams</a>,
|
|
|
103 |
<a href="#V4.70_Library">Library</a>
|
|
|
104 |
</ul>
|
|
|
105 |
<li><a href="#Version4.61">Version 4.61 (limited) (3/13/97)</a>
|
|
|
106 |
<ul>
|
|
|
107 |
<li><a href="#V4.61_Documentation">Documentation</a>,
|
|
|
108 |
<a href="#V4.61_Procedures">Procedures</a>,
|
|
|
109 |
<a href="#V4.61_Drivers">Drivers</a>,
|
|
|
110 |
<a href="#V4.61_Platforms">Platforms</a>,
|
|
|
111 |
<a href="#V4.61_Interpreter">Interpreter</a>,
|
|
|
112 |
<a href="#V4.61_Interpreter_PDF">Interpreter (PDF)</a>,
|
|
|
113 |
<a href="#V4.61_Streams">Streams</a>,
|
|
|
114 |
<a href="#V4.61_Library">Library</a>
|
|
|
115 |
</ul>
|
|
|
116 |
<li><a href="#Version4.60">Version 4.60 (limited) (3/2/97)</a>
|
|
|
117 |
<ul>
|
|
|
118 |
<li><a href="#V4.60_Documentation">Documentation</a>,
|
|
|
119 |
<a href="#V4.60_Procedures">Procedures</a>,
|
|
|
120 |
<a href="#V4.60_Drivers">Drivers</a>,
|
|
|
121 |
<a href="#V4.60_Platforms">Platforms</a>,
|
|
|
122 |
<a href="#V4.60_Fonts">Fonts</a>,
|
|
|
123 |
<a href="#V4.60_Interpreter">Interpreter</a>,
|
|
|
124 |
<a href="#V4.60_Interpreter_PDF">Interpreter (PDF)</a>,
|
|
|
125 |
<a href="#V4.60_Streams">Streams</a>,
|
|
|
126 |
<a href="#V4.60_Library">Library</a>
|
|
|
127 |
</ul>
|
|
|
128 |
<li><a href="#Version4.51">Version 4.51 (limited) (2/9/97)</a>
|
|
|
129 |
<ul>
|
|
|
130 |
<li><a href="#V4.51_Procedures">Procedures</a>,
|
|
|
131 |
<a href="#V4.51_Drivers">Drivers</a>,
|
|
|
132 |
<a href="#V4.51_Platforms">Platforms</a>,
|
|
|
133 |
<a href="#V4.51_Interpreter">Interpreter</a>,
|
|
|
134 |
<a href="#V4.51_Streams">Streams</a>,
|
|
|
135 |
<a href="#V4.51_Library">Library</a>
|
|
|
136 |
</ul>
|
|
|
137 |
<li><a href="#Version4.50">Version 4.50 (limited) (1/31/97)</a>
|
|
|
138 |
<ul>
|
|
|
139 |
<li><a href="#V4.50_Documentation">Documentation</a>,
|
|
|
140 |
<a href="#V4.50_Procedures">Procedures</a>,
|
|
|
141 |
<a href="#V4.50_Drivers">Drivers</a>,
|
|
|
142 |
<a href="#V4.50_Platforms">Platforms</a>,
|
|
|
143 |
<a href="#V4.50_Interpreter">Interpreter</a>,
|
|
|
144 |
<a href="#V4.50_Streams">Streams</a>,
|
|
|
145 |
<a href="#V4.50_Library">Library</a>
|
|
|
146 |
</ul>
|
|
|
147 |
<li><a href="#Version4.41">Version 4.41 (private) (1/21/97)</a>
|
|
|
148 |
<ul>
|
|
|
149 |
<li><a href="#V4.41_Procedures">Procedures</a>,
|
|
|
150 |
<a href="#V4.41_Drivers">Drivers</a>,
|
|
|
151 |
<a href="#V4.41_Fonts">Fonts</a>,
|
|
|
152 |
<a href="#V4.41_Interpreter">Interpreter</a>,
|
|
|
153 |
<a href="#V4.41_Streams">Streams</a>,
|
|
|
154 |
<a href="#V4.41_Library">Library</a>
|
|
|
155 |
</ul>
|
|
|
156 |
<li><a href="#Version4.40">Version 4.40 (private) (1/13/97)</a>
|
|
|
157 |
<ul>
|
|
|
158 |
<li><a href="#V4.40_Documentation">Documentation</a>,
|
|
|
159 |
<a href="#V4.40_Utilities">Utilities</a>,
|
|
|
160 |
<a href="#V4.40_Drivers">Drivers</a>,
|
|
|
161 |
<a href="#V4.40_Interpreter">Interpreter</a>,
|
|
|
162 |
<a href="#V4.40_Interpreter_PDF">Interpreter (PDF)</a>,
|
|
|
163 |
<a href="#V4.40_Library">Library</a>
|
|
|
164 |
</ul>
|
|
|
165 |
<li><a href="#Version4.39">Version 4.39 (limited) (1/1/97)</a>
|
|
|
166 |
<ul>
|
|
|
167 |
<li><a href="#V4.39_Documentation">Documentation</a>,
|
|
|
168 |
<a href="#V4.39_Procedures">Procedures</a>,
|
|
|
169 |
<a href="#V4.39_Utilities">Utilities</a>,
|
|
|
170 |
<a href="#V4.39_Drivers">Drivers</a>,
|
|
|
171 |
<a href="#V4.39_Interpreter">Interpreter</a>,
|
|
|
172 |
<a href="#V4.39_Streams">Streams</a>,
|
|
|
173 |
<a href="#V4.39_Library">Library</a>
|
|
|
174 |
</ul>
|
|
|
175 |
<li><a href="#Version4.38">Version 4.38 (limited) (12/20/96)</a>
|
|
|
176 |
<ul>
|
|
|
177 |
<li><a href="#V4.38_Interpreter">Interpreter</a>,
|
|
|
178 |
<a href="#V4.38_Streams">Streams</a>,
|
|
|
179 |
<a href="#V4.38_Library">Library</a>
|
|
|
180 |
</ul>
|
|
|
181 |
<li><a href="#Version4.37">Version 4.37 (limited) (12/10/96)</a>
|
|
|
182 |
<ul>
|
|
|
183 |
<li><a href="#V4.37_Fonts">Fonts</a>,
|
|
|
184 |
<a href="#V4.37_Interpreter">Interpreter</a>,
|
|
|
185 |
<a href="#V4.37_Interpreter_PDF">Interpreter (PDF)</a>,
|
|
|
186 |
<a href="#V4.37_Library">Library</a>
|
|
|
187 |
</ul>
|
|
|
188 |
<li><a href="#Version4.36">Version 4.36 (limited) (12/3/96)</a>
|
|
|
189 |
<ul>
|
|
|
190 |
<li><a href="#V4.36_Documentation">Documentation</a>,
|
|
|
191 |
<a href="#V4.36_Drivers">Drivers</a>,
|
|
|
192 |
<a href="#V4.36_Interpreter">Interpreter</a>,
|
|
|
193 |
<a href="#V4.36_Library">Library</a>
|
|
|
194 |
</ul>
|
|
|
195 |
<li><a href="#Version4.35">Version 4.35 (limited) (11/24/96)</a>
|
|
|
196 |
<ul>
|
|
|
197 |
<li><a href="#V4.35_Documentation">Documentation</a>,
|
|
|
198 |
<a href="#V4.35_Procedures">Procedures</a>,
|
|
|
199 |
<a href="#V4.35_Interpreter">Interpreter</a>,
|
|
|
200 |
<a href="#V4.35_Streams">Streams</a>,
|
|
|
201 |
<a href="#V4.35_Library">Library</a>
|
|
|
202 |
</ul>
|
|
|
203 |
<li><a href="#Version4.34">Version 4.34 (limited) (11/18/96)</a>
|
|
|
204 |
<ul>
|
|
|
205 |
<li><a href="#V4.34_Documentation">Documentation</a>,
|
|
|
206 |
<a href="#V4.34_Procedures">Procedures</a>,
|
|
|
207 |
<a href="#V4.34_Drivers">Drivers</a>,
|
|
|
208 |
<a href="#V4.34_Interpreter">Interpreter</a>,
|
|
|
209 |
<a href="#V4.34_Streams">Streams</a>,
|
|
|
210 |
<a href="#V4.34_Library">Library</a>
|
|
|
211 |
</ul>
|
|
|
212 |
<li><a href="#Version4.33">Version 4.33 (limited) (11/6/96)</a>
|
|
|
213 |
<ul>
|
|
|
214 |
<li><a href="#V4.33_Documentation">Documentation</a>,
|
|
|
215 |
<a href="#V4.33_Procedures">Procedures</a>,
|
|
|
216 |
<a href="#V4.33_Interpreter">Interpreter</a>,
|
|
|
217 |
<a href="#V4.33_Library">Library</a>
|
|
|
218 |
</ul>
|
|
|
219 |
<li><a href="#Version4.32">Version 4.32 (limited) (11/1/96)</a>
|
|
|
220 |
<ul>
|
|
|
221 |
<li><a href="#V4.32_Documentation">Documentation</a>,
|
|
|
222 |
<a href="#V4.32_Drivers">Drivers</a>,
|
|
|
223 |
<a href="#V4.32_Platforms">Platforms</a>,
|
|
|
224 |
<a href="#V4.32_Fonts">Fonts</a>,
|
|
|
225 |
<a href="#V4.32_Interpreter">Interpreter</a>,
|
|
|
226 |
<a href="#V4.32_Library">Library</a>
|
|
|
227 |
</ul>
|
|
|
228 |
<li><a href="#Version4.31">Version 4.31 (limited) (10/27/96)</a>
|
|
|
229 |
<ul>
|
|
|
230 |
<li><a href="#V4.31_Documentation">Documentation</a>,
|
|
|
231 |
<a href="#V4.31_Procedures">Procedures</a>,
|
|
|
232 |
<a href="#V4.31_Platforms">Platforms</a>,
|
|
|
233 |
<a href="#V4.31_Interpreter">Interpreter</a>,
|
|
|
234 |
<a href="#V4.31_Interpreter_PDF">Interpreter (PDF)</a>,
|
|
|
235 |
<a href="#V4.31_Streams">Streams</a>,
|
|
|
236 |
<a href="#V4.31_Library">Library</a>
|
|
|
237 |
</ul>
|
|
|
238 |
<li><a href="#Version4.30">Version 4.30 (limited) (10/23/96)</a>
|
|
|
239 |
<ul>
|
|
|
240 |
<li><a href="#V4.30_Documentation">Documentation</a>,
|
|
|
241 |
<a href="#V4.30_Drivers">Drivers</a>,
|
|
|
242 |
<a href="#V4.30_Platforms">Platforms</a>,
|
|
|
243 |
<a href="#V4.30_Fonts">Fonts</a>,
|
|
|
244 |
<a href="#V4.30_Interpreter">Interpreter</a>,
|
|
|
245 |
<a href="#V4.30_Library">Library</a>
|
|
|
246 |
</ul>
|
|
|
247 |
<li><a href="#Version4.21">Version 4.21 (limited) (10/17/96)</a>
|
|
|
248 |
<ul>
|
|
|
249 |
<li><a href="#V4.21_Documentation">Documentation</a>,
|
|
|
250 |
<a href="#V4.21_Procedures">Procedures</a>,
|
|
|
251 |
<a href="#V4.21_Drivers">Drivers</a>,
|
|
|
252 |
<a href="#V4.21_Platforms">Platforms</a>,
|
|
|
253 |
<a href="#V4.21_Fonts">Fonts</a>,
|
|
|
254 |
<a href="#V4.21_Interpreter">Interpreter</a>,
|
|
|
255 |
<a href="#V4.21_Library">Library</a>
|
|
|
256 |
</ul>
|
|
|
257 |
<li><a href="#Version4.20">Version 4.20 (limited) (10/13/96)</a>
|
|
|
258 |
<ul>
|
|
|
259 |
<li><a href="#V4.20_Documentation">Documentation</a>,
|
|
|
260 |
<a href="#V4.20_Procedures">Procedures</a>,
|
|
|
261 |
<a href="#V4.20_Utilities">Utilities</a>,
|
|
|
262 |
<a href="#V4.20_Drivers">Drivers</a>,
|
|
|
263 |
<a href="#V4.20_Interpreter">Interpreter</a>,
|
|
|
264 |
<a href="#V4.20_Library">Library</a>
|
|
|
265 |
</ul>
|
|
|
266 |
<li><a href="#Version4.10">Version 4.10 (limited) (9/25/96)</a>
|
|
|
267 |
<ul>
|
|
|
268 |
<li><a href="#V4.10_Documentation">Documentation</a>,
|
|
|
269 |
<a href="#V4.10_Utilities">Utilities</a>,
|
|
|
270 |
<a href="#V4.10_Drivers">Drivers</a>,
|
|
|
271 |
<a href="#V4.10_Interpreter">Interpreter</a>,
|
|
|
272 |
<a href="#V4.10_Interpreter_PDF">Interpreter (PDF)</a>,
|
|
|
273 |
<a href="#V4.10_Library">Library</a>
|
|
|
274 |
</ul>
|
|
|
275 |
<li><a href="#Version4.03">Version 4.03 (9/23/96)</a>
|
|
|
276 |
<ul>
|
|
|
277 |
<li><a href="#V4.03_Documentation">Documentation</a>,
|
|
|
278 |
<a href="#V4.03_Procedures">Procedures</a>,
|
|
|
279 |
<a href="#V4.03_Drivers">Drivers</a>,
|
|
|
280 |
<a href="#V4.03_Fonts">Fonts</a>,
|
|
|
281 |
<a href="#V4.03_Streams">Streams</a>
|
|
|
282 |
</ul>
|
|
|
283 |
<li><a href="#Version4.02">Version 4.02 (9/19/96)</a>
|
|
|
284 |
<ul>
|
|
|
285 |
<li><a href="#V4.02_Documentation">Documentation</a>,
|
|
|
286 |
<a href="#V4.02_Procedures">Procedures</a>,
|
|
|
287 |
<a href="#V4.02_Utilities">Utilities</a>,
|
|
|
288 |
<a href="#V4.02_Drivers">Drivers</a>,
|
|
|
289 |
<a href="#V4.02_Platforms">Platforms</a>,
|
|
|
290 |
<a href="#V4.02_Interpreter">Interpreter</a>,
|
|
|
291 |
<a href="#V4.02_Interpreter_PDF">Interpreter (PDF)</a>,
|
|
|
292 |
<a href="#V4.02_Streams">Streams</a>,
|
|
|
293 |
<a href="#V4.02_Library">Library</a>
|
|
|
294 |
</ul>
|
|
|
295 |
<li><a href="#Version4.01">Version 4.01 (7/10/96)</a>
|
|
|
296 |
<ul>
|
|
|
297 |
<li><a href="#V4.01_Documentation">Documentation</a>,
|
|
|
298 |
<a href="#V4.01_Procedures">Procedures</a>,
|
|
|
299 |
<a href="#V4.01_Utilities">Utilities</a>,
|
|
|
300 |
<a href="#V4.01_Platforms">Platforms</a>,
|
|
|
301 |
<a href="#V4.01_Platforms">Platforms</a>,
|
|
|
302 |
<a href="#V4.01_Interpreter">Interpreter</a>,
|
|
|
303 |
<a href="#V4.01_Library">Library</a>
|
|
|
304 |
</ul>
|
|
|
305 |
<li><a href="#Version4.0">Version 4.0 (6/28/96)</a>
|
|
|
306 |
<ul>
|
|
|
307 |
<li><a href="#V4.0_Documentation">Documentation</a>,
|
|
|
308 |
<a href="#V4.0_Procedures">Procedures</a>,
|
|
|
309 |
<a href="#V4.0_Utilities">Utilities</a>,
|
|
|
310 |
<a href="#V4.0_Drivers">Drivers</a>,
|
|
|
311 |
<a href="#V4.0_Platforms">Platforms</a>,
|
|
|
312 |
<a href="#V4.0_Interpreter">Interpreter</a>,
|
|
|
313 |
<a href="#V4.0_Streams">Streams</a>,
|
|
|
314 |
<a href="#V4.0_Library">Library</a>
|
|
|
315 |
</ul>
|
|
|
316 |
</ul></blockquote>
|
|
|
317 |
|
|
|
318 |
<!-- [1.2 end table of contents] =========================================== -->
|
|
|
319 |
|
|
|
320 |
<!-- [1.3 begin hint] ====================================================== -->
|
|
|
321 |
|
|
|
322 |
<p>
|
|
|
323 |
This document is a history of Ghostscript releases numbered 4.n. For more
|
|
|
324 |
recent changes, see the the other history documents and, for the latest
|
|
|
325 |
versions, the news:
|
|
|
326 |
|
|
|
327 |
<blockquote>
|
|
|
328 |
<a href="News.htm">News</a><br>
|
|
|
329 |
History of Ghostscript versions 4.n (this document)<br>
|
|
|
330 |
<a href="History3.htm">History of Ghostscript versions 3.n</a><br>
|
|
|
331 |
<a href="History2.htm">History of Ghostscript versions 2.n</a><br>
|
|
|
332 |
<a href="History1.htm">History of Ghostscript versions 1.n</a>
|
|
|
333 |
</blockquote>
|
|
|
334 |
|
|
|
335 |
<p>For other information, see the <a href="Readme.htm">Ghostscript
|
|
|
336 |
overview</a>.
|
|
|
337 |
|
|
|
338 |
<!-- [1.3 end hint] ======================================================== -->
|
|
|
339 |
|
|
|
340 |
<hr>
|
|
|
341 |
|
|
|
342 |
<!-- [1.0 end visible header] ============================================== -->
|
|
|
343 |
|
|
|
344 |
<h2><a name="Version4.81"></a>Version 4.81 (6/1/97)</h2>
|
|
|
345 |
|
|
|
346 |
<p>
|
|
|
347 |
This is a last-minute set of bug fixes before the 5.0 release.
|
|
|
348 |
|
|
|
349 |
<h3><a name="V4.81_Documentation"></a>Documentation</h3><pre>
|
|
|
350 |
|
|
|
351 |
Adds some overlooked helpers to the list. (helpers.txt)
|
|
|
352 |
|
|
|
353 |
</pre><h3><a name="V4.81_Procedures"></a>Procedures</h3><pre>
|
|
|
354 |
|
|
|
355 |
Makes a distinction between 2-part and 3-digit version numbers.
|
|
|
356 |
(version.mak, vms.mak)
|
|
|
357 |
|
|
|
358 |
</pre><h3><a name="V4.81_Utilities"></a>Utilities</h3><pre>
|
|
|
359 |
|
|
|
360 |
Develops the Type 1 to CFF converter a little further; it is still NOT
|
|
|
361 |
USABLE. (t1tot2.ps)
|
|
|
362 |
|
|
|
363 |
Removes the pstoppm.ps script, since the p*m drivers supersede it.
|
|
|
364 |
(pstoppm.ps, unix-end.mak)
|
|
|
365 |
|
|
|
366 |
</pre><h3><a name="V4.81_Drivers"></a>Drivers</h3><pre>
|
|
|
367 |
|
|
|
368 |
Fixes bugs:
|
|
|
369 |
- The PDF writer sometimes omitted an ET command before setting the
|
|
|
370 |
clip path. (gdevpdf.c)
|
|
|
371 |
- The PDF writer didn't initialize the "vector" state, leading to
|
|
|
372 |
some redundant output (performance bug only). (gdevpdf.c)
|
|
|
373 |
- The PDF writer wrote clip paths even when they included the entire
|
|
|
374 |
page (performance bug only). (gdevpdf.c)
|
|
|
375 |
|
|
|
376 |
Changes the PDF writer so that it recognizes not only the 14 built-in fonts
|
|
|
377 |
but any font with the same UniqueID and metrics. This covers some common
|
|
|
378 |
cases of re-registering a font with a variant Encoding. (gs_pdfwr.ps)
|
|
|
379 |
|
|
|
380 |
</pre><h3><a name="V4.81_Platforms"></a>Platforms</h3><pre>
|
|
|
381 |
|
|
|
382 |
Fixes bugs:
|
|
|
383 |
- SEARCH_HERE_FIRST was accidentally set to 0 on MS Windows
|
|
|
384 |
platforms. (bcwin32.mak, msvc4.mak, msvc5.mak, watcw32.mak)
|
|
|
385 |
|
|
|
386 |
Adds code to remove "" around arguments in the command line passed to
|
|
|
387 |
WinMain (MS Windows platforms). (dwmain.cpp, dwmainc.cpp)
|
|
|
388 |
|
|
|
389 |
</pre><h3><a name="V4.81_Interpreter"></a>Interpreter</h3><pre>
|
|
|
390 |
|
|
|
391 |
Fixes bugs:
|
|
|
392 |
- setsystemparams was broken. (gs_lev2.ps)
|
|
|
393 |
- restore was broken if -dNOBIND was invoked. (gs_dps1.ps)
|
|
|
394 |
- deviceinfo returned much more information than it should.
|
|
|
395 |
(gs_dps.ps)
|
|
|
396 |
- The fix for the default EndPage procedures not popping their page
|
|
|
397 |
count operand from the stack was wrong. (gs_init.ps, gs_setpd.ps)
|
|
|
398 |
|
|
|
399 |
</pre><h3><a name="V4.81_Library"></a>Library</h3><pre>
|
|
|
400 |
|
|
|
401 |
Fixes bugs:
|
|
|
402 |
- The saved character origin took the translation component of the
|
|
|
403 |
FontMatrix into account, which caused charpath on fonts with non-zero
|
|
|
404 |
translation in the FontMatrix to produce incorrect results. (gschar.c)
|
|
|
405 |
|
|
|
406 |
Removes incorrect access attributes on a couple of files. (gdevpdfm.c,
|
|
|
407 |
gxclist.h)
|
|
|
408 |
|
|
|
409 |
</pre>
|
|
|
410 |
|
|
|
411 |
<h2><a name="Version4.80"></a>Version 4.80 (limited) (5/28/97)</h2>
|
|
|
412 |
|
|
|
413 |
<p>
|
|
|
414 |
This is the candidate fileset for the 5.0 release.
|
|
|
415 |
|
|
|
416 |
<h3><a name="V4.80_Documentation"></a>Documentation</h3><pre>
|
|
|
417 |
|
|
|
418 |
Fixes bugs:
|
|
|
419 |
- The one-line description of the color image rendering module was
|
|
|
420 |
incorrect. (gximage3.c)
|
|
|
421 |
- Some of the VMS documentation was out of date. (make.txt,
|
|
|
422 |
use.txt)
|
|
|
423 |
- The description of the file name separator for -sFONTMAP= was
|
|
|
424 |
wrong. (use.txt)
|
|
|
425 |
- PSFile was misspelled PSfile. (use.txt)
|
|
|
426 |
- There were some minor typos. (gstype1.h)
|
|
|
427 |
- The build instructions had a lot of obsolete information for PC
|
|
|
428 |
environments, and didn't cover Microsoft Visual C++. (make.txt)
|
|
|
429 |
|
|
|
430 |
Explains that -sPAPERSIZE= only specifies the default papersize, and that
|
|
|
431 |
forcing a particular paper size also requires -dFIXEDMEDIA. (use.txt)
|
|
|
432 |
|
|
|
433 |
Adds information about building with GNU make on OpenVMS. (make.txt)
|
|
|
434 |
|
|
|
435 |
Clarifies the meaning of EOFC for streams. (strimpl.h)
|
|
|
436 |
|
|
|
437 |
Documents the new dictionary argument for the eexecDecode filter.
|
|
|
438 |
(language.doc)
|
|
|
439 |
|
|
|
440 |
</pre><h3><a name="V4.80_Procedures"></a>Procedures</h3><pre>
|
|
|
441 |
|
|
|
442 |
Fixes bugs:
|
|
|
443 |
- gs_epsf.ps didn't get installed on Unix systems. (unix-end.mak)
|
|
|
444 |
- The code wouldn't build with libpng 0.95b. (libpng.mak)
|
|
|
445 |
- One of the VMS scripts used CC_QUAL instead of CC_DEF.
|
|
|
446 |
(vms-cc.mak)
|
|
|
447 |
- version.mak wasn't included in a dependency list. (unix-end.mak)
|
|
|
448 |
|
|
|
449 |
Brings the VMS DCL script up to date again (for the last time, we hope).
|
|
|
450 |
(vms.mak)
|
|
|
451 |
|
|
|
452 |
Modifies all platform-independent uses of upper-case command line arguments
|
|
|
453 |
to deal properly with VMS, where the shell converts all command line
|
|
|
454 |
arguments to lower case, without requiring quotation. (devs.mak, gs.mak,
|
|
|
455 |
int.mak, lib.mak, zlib.mak)
|
|
|
456 |
|
|
|
457 |
Moves the compilation rules for the third-party libraries into gs.mak, so
|
|
|
458 |
they can be used to compile the callers as well. (gs.mak, jpeg.mak,
|
|
|
459 |
libpng.mak, zlib.mak)
|
|
|
460 |
|
|
|
461 |
Adds a set of files that allow building on OpenVMS using GNU make (slightly
|
|
|
462 |
patched). The timing on this is unfortunate, but we've wanted this for a
|
|
|
463 |
very long time. NOTE: be sure to look in the OpenVMS section of make.txt
|
|
|
464 |
for information on patching GNU make. (openvms.mak, append_l.com,
|
|
|
465 |
rm_all.com, rm_one.com, copy_one.com)
|
|
|
466 |
|
|
|
467 |
Adds new makefiles for building on 32-bit Windows with Borland, Watcom, and
|
|
|
468 |
Microsoft Visual C++ (versions 4.x and 5.0). The timing on this is
|
|
|
469 |
unfortunate too, but having this capability is so important that we couldn't
|
|
|
470 |
pass it up. (bcwin32.mak, msvc4.mak, msvc5.mak, msvccom.mak, watcw32.mak,
|
|
|
471 |
wincom.mak)
|
|
|
472 |
|
|
|
473 |
Removes now-obsolete makefiles. (dwcommon.mak, msc.mak, msvcwint.mak,
|
|
|
474 |
mscbegin.bat, watcwin.mak)
|
|
|
475 |
|
|
|
476 |
</pre><h3><a name="V4.80_Utilities"></a>Utilities</h3><pre>
|
|
|
477 |
|
|
|
478 |
Extends echogs to work in VMS environments, where the shell converts all
|
|
|
479 |
command line arguments to lower case, without requiring quotation.
|
|
|
480 |
(echogs.c)
|
|
|
481 |
|
|
|
482 |
Adds a sketch of a utility for converting Type 1 fonts to CFF. DOESN'T WORK
|
|
|
483 |
YET: DON'T TRY TO USE IT. (t1tot2.ps, type1ops.ps, writecff.ps)
|
|
|
484 |
|
|
|
485 |
</pre><h3><a name="V4.80_Drivers"></a>Drivers</h3><pre>
|
|
|
486 |
|
|
|
487 |
Fixes bugs:
|
|
|
488 |
- A type declaration wasn't compatible with libpng 0.95.
|
|
|
489 |
(gdevpng.c)
|
|
|
490 |
- kshow wasn't handled properly when producing PDF output.
|
|
|
491 |
(gs_pdfwr.ps)
|
|
|
492 |
- The PDF writer put out unnecessary ET/BT commands. (gdevpdfx.h,
|
|
|
493 |
gdevpdf.c, gdevpdfi.c, gdevpdfm.c, gdevpdft.c)
|
|
|
494 |
- The PCL XL writer put out real numbers for the miter limit, which
|
|
|
495 |
are not allowed (!). (gdevpx.c)
|
|
|
496 |
- The PCL XL writer didn't combine successive curves into a single
|
|
|
497 |
curve command (performance bug only). (gdevpx.c)
|
|
|
498 |
- The PCL XL writer could write uncompressed images with a tag
|
|
|
499 |
saying they were compressed. (gdevpx.c)
|
|
|
500 |
- The PCL XL writer always selected U.S. letter paper, rather than
|
|
|
501 |
the requested size. (gdevpxen.h, gdevpx.c)
|
|
|
502 |
- The PCL XL writer reselected the paper size on every page, even if
|
|
|
503 |
it hadn't changed. (gdevpx.c)
|
|
|
504 |
- The PCL XL writer always used shorts for line and curve
|
|
|
505 |
coordinates, rather than using bytes when possible (performance bug only).
|
|
|
506 |
(gdevpx.c)
|
|
|
507 |
- Because of a compiler bug, a macro with argument conflicted with a
|
|
|
508 |
variable name. (gdevpdfx.h, gdevpdf.c)
|
|
|
509 |
- A picky compiler objected to an extern for an undefined structure.
|
|
|
510 |
(gdevpsdf.h)
|
|
|
511 |
- The PDF writer sometimes didn't reset the clipping path, causing
|
|
|
512 |
bitmaps or rectangle to disappear. (gdevpdf.c, gdevpdfi.c)
|
|
|
513 |
- The PDF writer produced invalid output if the first page was
|
|
|
514 |
blank. (gdevpdf.c)
|
|
|
515 |
- The AutoRotatePages parameter for PostScript and PDF output (which
|
|
|
516 |
doesn't actually do anything yet) incorrectly expected a Boolean value
|
|
|
517 |
rather than an enumeration. (gdevpsdf.h, gdevpsdf.c)
|
|
|
518 |
- Some places returned -1 for an error without calling gs_note_error
|
|
|
519 |
or gs_return_error. (gdevm1.c, gdevmpla.c, gdevrun.c, gxclpath.c)
|
|
|
520 |
- The PCL XL writer produced extremely large files because it didn't
|
|
|
521 |
download character bitmaps. (OK, this isn't really a bug fix.) (gdevpx.c)
|
|
|
522 |
- The forwarding implementation of get_page_device didn't do the
|
|
|
523 |
right thing. (gdevnfwd.c)
|
|
|
524 |
- The x11alpha device didn't implement get_params properly, leading
|
|
|
525 |
to anomalous behavior. (gdevxalt.c)
|
|
|
526 |
- The PDF writer produced incorrect Count values for outlines: the
|
|
|
527 |
count only counted descendant leaves, omitting intermediate nodes.
|
|
|
528 |
(gdevpdfm.c)
|
|
|
529 |
|
|
|
530 |
Removes an assumption that images have at most 4 components. (gdevpdfi.c)
|
|
|
531 |
|
|
|
532 |
Adds an x11gray2 device, primarily for debugging. (devs.mak, gdevxalt.c)
|
|
|
533 |
|
|
|
534 |
Updates the unified printer driver with a newer version. (uninfo.ps,
|
|
|
535 |
gdevupd.c, *.upp)
|
|
|
536 |
|
|
|
537 |
</pre><h3><a name="V4.80_Platforms"></a>Platforms</h3><pre>
|
|
|
538 |
|
|
|
539 |
Adds the P*M devices and the X11 devices (commented out) to the OS/2
|
|
|
540 |
makefile. (os2.mak)
|
|
|
541 |
|
|
|
542 |
Updates the MS Windows platform to be compatible with Microsoft Visual C++
|
|
|
543 |
(as well as Watcom and Borland compilers). (gsdll32.def, gdevmswn.h,
|
|
|
544 |
gp_mswin.h, gsdll.h, dwimg.cpp, dwmain.cpp, dwmainc.cpp, dwtext.cpp,
|
|
|
545 |
gdevwdib.c, gdevwprn.c, gdevwpr2.c, gp_mswin.c, gsdll.c)
|
|
|
546 |
|
|
|
547 |
</pre><h3><a name="V4.80_Fonts"></a>Fonts</h3><pre>
|
|
|
548 |
|
|
|
549 |
Fixes bugs:
|
|
|
550 |
- Certain synthetic fonts incorrectly were loaded into local rather
|
|
|
551 |
than global VM. (These fonts are not part of the standard distribution.)
|
|
|
552 |
(gs_fonts.ps, gs_pfile.ps, *ss*.ps)
|
|
|
553 |
|
|
|
554 |
</pre><h3><a name="V4.80_Interpreter"></a>Interpreter</h3><pre>
|
|
|
555 |
|
|
|
556 |
Fixes bugs:
|
|
|
557 |
- The FAKEFONTS scan could leave junk on the stack. (gs_fonts.ps)
|
|
|
558 |
- Dynamically loading known encodings on demand left junk on the
|
|
|
559 |
stack, causing a typecheck error. (gs_res.ps)
|
|
|
560 |
- Some 'static' declarations were missing (gcc lossage). (iname.c)
|
|
|
561 |
- Some internal operators didn't have names, leading to unhelpful
|
|
|
562 |
error printout. (zfileio.c)
|
|
|
563 |
- The resource "operators" didn't always restore the stacks properly
|
|
|
564 |
on an error. (gs_res.ps)
|
|
|
565 |
- The CID font code left a garbage value on the stack during
|
|
|
566 |
loading. (gs_cidfn.ps)
|
|
|
567 |
- The defineresource implementation for built-in resources like
|
|
|
568 |
FMapType didn't leave the resource "value" on the stack. (gs_res.ps)
|
|
|
569 |
- If an operator defined by a procedure was bound into a packed
|
|
|
570 |
procedure, the stack-protection feature wasn't effective. (interp.c)
|
|
|
571 |
- findfont didn't restore the stack if it failed. (gs_res.ps)
|
|
|
572 |
- The showpage count passed to the BeginPage and EndPage procedures
|
|
|
573 |
was incremented only if a page was printed, rather than for every invocation
|
|
|
574 |
of showpage. (gs_init.ps, zdevice2.c)
|
|
|
575 |
- The default EndPage procedures didn't pop their page count operand
|
|
|
576 |
from the stack. (gs_init.ps, gs_setpd.ps)
|
|
|
577 |
- If the argument of findfont wasn't a name or a string, and no font
|
|
|
578 |
with that key had been registered, an error occurred. (gs_fonts.ps,
|
|
|
579 |
gs_res.ps)
|
|
|
580 |
|
|
|
581 |
Updates most of the remaining pseudo-operators to take advantage of stack
|
|
|
582 |
protection. (gs_btokn.ps, gs_cmap.ps, gs_dps1.ps, gs_dps2.ps, gs_fonts.ps,
|
|
|
583 |
gs_lev2.ps, gs_pdfwr.ps)
|
|
|
584 |
|
|
|
585 |
Splits the image operators into a separate file from the path painting
|
|
|
586 |
operators. (This should have been done a long time ago.) (iimage.h,
|
|
|
587 |
zimage.c, zpaint.c)
|
|
|
588 |
|
|
|
589 |
Adds more of the implementation of the NeXT alpha and compositing
|
|
|
590 |
operations, under an #ifdef DPNEXT. (iimage.h, zcolor1.c, zdpnext.c,
|
|
|
591 |
zimage.c)
|
|
|
592 |
|
|
|
593 |
Adds more of the implementation of DPS contexts. These are still not
|
|
|
594 |
usable. (icontext.h, icontext.c, zcontext.c, zmath.c)
|
|
|
595 |
|
|
|
596 |
Changes the help message to describe -dBATCH instead of -c quit.
|
|
|
597 |
(imainarg.c)
|
|
|
598 |
|
|
|
599 |
Recognizes the dictionary argument for the eexecDecode filter. (zmisc1.c)
|
|
|
600 |
|
|
|
601 |
</pre><h3><a name="V4.80_Streams"></a>Streams</h3><pre>
|
|
|
602 |
|
|
|
603 |
Fixes bugs:
|
|
|
604 |
- The tracing message when starting to decode 1-D fax data reported
|
|
|
605 |
the run_color incorrectly. (scfd.c)
|
|
|
606 |
- In the CCITTFaxDecode filter, if a buffer boundary fell between a
|
|
|
607 |
makeup code and a final zero-length termination code, an ioerror could
|
|
|
608 |
occur. (scfd.c)
|
|
|
609 |
- Per Adobe, in the CCITTFaxDecode filter, EndOfBlock = true should
|
|
|
610 |
cause Rows to be ignored. (scfd.c)
|
|
|
611 |
- If an output stream returned EOFC, an infinite loop might result.
|
|
|
612 |
This problem (and the fix) are in the same fragile code as the EOD fix in
|
|
|
613 |
4.74, and we may again have introduced a new bug. (stream.c)
|
|
|
614 |
|
|
|
615 |
Changes the eexecDecode filter so that instead of a number, it can take a
|
|
|
616 |
dictionary with two keys, seed and lenIV. (Having eexecDecode skip initial
|
|
|
617 |
bytes at all was a design bug that is too late to fix.) (sfilter.h,
|
|
|
618 |
seexec.c)
|
|
|
619 |
|
|
|
620 |
</pre><h3><a name="V4.80_Library"></a>Library</h3><pre>
|
|
|
621 |
|
|
|
622 |
Fixes bugs:
|
|
|
623 |
- The default mapping from RGB+alpha to RGB didn't lighten
|
|
|
624 |
(premultiply) the color according to the alpha value. (gxcmap.c)
|
|
|
625 |
- The angle error metric for rational tangent screen parameters
|
|
|
626 |
should be simply the difference in angle, not a ratio. (gshtscr.c)
|
|
|
627 |
- gs_setcolorscreen and gs_sethalftone didn't initialize an
|
|
|
628 |
allocator pointer, leading to memory access errors. (gsht1.c)
|
|
|
629 |
- If a banded image was clipped, an invalid band list could be
|
|
|
630 |
produced. (gxclimag.c)
|
|
|
631 |
- A picky compiler wouldn't allow an enum to be &&'ed with a
|
|
|
632 |
boolean. (gschar.c)
|
|
|
633 |
- A short-sighted compiler didn't allow the use of actual procedure
|
|
|
634 |
names (as opposed to procedure variables) in a conditional expression.
|
|
|
635 |
(gxfill.c)
|
|
|
636 |
- A compiler objected to a name longer than 31 characters. (gzht.h,
|
|
|
637 |
gsht.c, gxclread.c)
|
|
|
638 |
- The height computations for banded images were not consistent,
|
|
|
639 |
possibly leading to invalid band lists. (gxclimag.c)
|
|
|
640 |
- copypage didn't reset the band writer and band reader bookkeeping
|
|
|
641 |
consistently, leading to incorrect output and possible errors. (gxcldev.h,
|
|
|
642 |
gxclist.c, gxclread.c)
|
|
|
643 |
- When banding, changing the halftone could lead to accessing memory
|
|
|
644 |
after freeing it. (gxclread.c)
|
|
|
645 |
- When using disk files for band storage, showpage didn't actually
|
|
|
646 |
delete or truncate the band list file, possibly causing subsequent copypage
|
|
|
647 |
operations to become confused. (gxclfile.c)
|
|
|
648 |
- When banding, having more than one image operator in progress at a
|
|
|
649 |
time confused the rasterizing pass and could produce arbitrary errors. From
|
|
|
650 |
PostScript, this can only happen in the case of an image whose data source
|
|
|
651 |
was a procedure-based stream that itself invoked an image operator: this is
|
|
|
652 |
a senseless and perverse thing to do, but it shouldn't break the code (and a
|
|
|
653 |
Genoa CET file actually does it). (gxclist.h, gxclimag.c, gxclist.c)
|
|
|
654 |
- Some picky compilers objected to negating unsigned values.
|
|
|
655 |
(gsuid.h, gsht.c, gsmemory.c, gxpcopy.c)
|
|
|
656 |
- When banding, if a 90- or 270-degree rotated monobit image was
|
|
|
657 |
clipped, invalid memory accesses could occur. (gximage.h, gximage1.c)
|
|
|
658 |
- The showpage count passed to the BeginPage and EndPage procedures
|
|
|
659 |
was incremented only if a page was printed, rather than for every invocation
|
|
|
660 |
of showpage. Fixing this requires removing the incrementing of the count
|
|
|
661 |
from the library level altogether. (gsdevice.c)
|
|
|
662 |
- When rendering a subrectangle of an image, the X DDA was
|
|
|
663 |
initialized incorrectly, causing possible errors. We think this only
|
|
|
664 |
affected certain banded images. (gxdda.h)
|
|
|
665 |
|
|
|
666 |
Adds a provision for images with an alpha component, under an #ifdef DPNEXT.
|
|
|
667 |
****** THE BANDING CODE HAS NOT BEEN UPDATED YET. ****** (gsiparam.h,
|
|
|
668 |
gxcmap.h, gxdither.h, gximage.h, gsimage.c, gxclimag.c, gxclread.c,
|
|
|
669 |
gxcmap.c, gximage.c, gximage3.c, gximage4.c ****** NOT DONE YET ******,
|
|
|
670 |
gximage5.c)
|
|
|
671 |
|
|
|
672 |
Adds a return_if_error macro to capture the common idiom of making a call
|
|
|
673 |
and then returning its value if that value is negative (error). (gserror.h)
|
|
|
674 |
|
|
|
675 |
</pre>
|
|
|
676 |
|
|
|
677 |
<hr>
|
|
|
678 |
|
|
|
679 |
<h2><a name="Version4.74"></a>Version 4.74 (limited) (5/5/97)</h2>
|
|
|
680 |
|
|
|
681 |
<p>
|
|
|
682 |
This fileset is supposed to fix all remaining errors reported by the Genoa
|
|
|
683 |
CET, and is intended to be the last incremental test fileset before the 5.0
|
|
|
684 |
release.
|
|
|
685 |
|
|
|
686 |
<h3><a name="V4.74_Documentation"></a>Documentation</h3><pre>
|
|
|
687 |
|
|
|
688 |
Fixes bugs:
|
|
|
689 |
- Mark procedures are *not* executed in the normal return case.
|
|
|
690 |
(estack.h)
|
|
|
691 |
- The line_params element of a gs_imager_state is *not* allocated
|
|
|
692 |
separately. (gsstate.c)
|
|
|
693 |
- The value passed to the PDF writer for text is a dictionary, not
|
|
|
694 |
an array. (gdevpdft.c)
|
|
|
695 |
|
|
|
696 |
Improves the documentation of gstate memory management. (gsstate.c)
|
|
|
697 |
|
|
|
698 |
Documents end_status = EOFC for writing streams. (stream.h, strimpl.h)
|
|
|
699 |
|
|
|
700 |
Clarifies memory management for halftones and device halftones. (gsht1.h,
|
|
|
701 |
gxdht.h, gxht.h, gzht.h)
|
|
|
702 |
|
|
|
703 |
Removes the "experimental" tag from the PostScript and EPS writers.
|
|
|
704 |
(devs.mak)
|
|
|
705 |
|
|
|
706 |
</pre><h3><a name="V4.74_Utilities"></a>Utilities</h3><pre>
|
|
|
707 |
|
|
|
708 |
Fixes bugs:
|
|
|
709 |
- The viewpcx utility scaled images improperly. (viewpcx.ps)
|
|
|
710 |
- If a PDF file used F instead of f for filling a path, pdf2ps
|
|
|
711 |
didn't output the fill operation. (pdf_base.ps)
|
|
|
712 |
|
|
|
713 |
Changes the ps2pdf script so that, like pdf2ps, it allows debugging
|
|
|
714 |
switches. (ps2pdf)
|
|
|
715 |
|
|
|
716 |
</pre><h3><a name="V4.74_Drivers"></a>Drivers</h3><pre>
|
|
|
717 |
|
|
|
718 |
Fixes bugs:
|
|
|
719 |
- The vgalib driver didn't clip monobit images properly.
|
|
|
720 |
(gdevvglb.c)
|
|
|
721 |
- The X driver asked for exposure events to be reported, but never
|
|
|
722 |
read them, causing the event queue to grow indefinitely. (gdevxini.c)
|
|
|
723 |
- The "vector" drivers and the PDF writer didn't properly keep track
|
|
|
724 |
of whether the current clipping region was the default one. (gs_pdfwr.ps,
|
|
|
725 |
gdevvec.h, gdevvec.c, gdevpdf.c, gdevpdft.c)
|
|
|
726 |
- The PDF writer had word and character spacing interchanged.
|
|
|
727 |
(gdevpdft.c)
|
|
|
728 |
- The PDF writer scaled word and character spacing incorrectly.
|
|
|
729 |
(gdevpdft.c)
|
|
|
730 |
|
|
|
731 |
</pre><h3><a name="V4.74_Interpreter"></a>Interpreter</h3><pre>
|
|
|
732 |
|
|
|
733 |
Fixes bugs:
|
|
|
734 |
- The user object operators didn't leave the stack in a clean state
|
|
|
735 |
if they failed. (gs_dps2.ps)
|
|
|
736 |
- UserObjects wasn't actually defined. (gs_dps2.ps)
|
|
|
737 |
- deviceinfo and set/currenthalftonephase were defined even if the
|
|
|
738 |
dps feature wasn't selected. (int.mak, gs_dps.ps, gs_dps1.ps, gs_lev2.ps,
|
|
|
739 |
zdps.c, zdps1.c)
|
|
|
740 |
- The dps feature didn't automatically include the level2 feature,
|
|
|
741 |
which it needs. (int.mak)
|
|
|
742 |
- The DPS user names mechanism didn't work, since the user names
|
|
|
743 |
array was subject to save and restore. (It still doesn't really work --
|
|
|
744 |
there is no provision for expanding the user names array, which is created
|
|
|
745 |
with length 0.) (gs_btokn.ps, ivmspace.h, zbseq.c, zdps.c)
|
|
|
746 |
- The DPS context operators didn't do all the necessary error
|
|
|
747 |
checking. (zcontext.c)
|
|
|
748 |
- The debugging printout for names printed the name index in hex
|
|
|
749 |
without identifying it as such. (idebug.c)
|
|
|
750 |
- Adding the first non-name key (or name key with a name index
|
|
|
751 |
beyond 4K) to a dictionary that had any deleted entries could cause some
|
|
|
752 |
entries to apparently disappear. (idict.c)
|
|
|
753 |
- If a sub-table of the name table was freed during garbage
|
|
|
754 |
collection, memory could be left in an inconsistent state. (iname.c, igc.c)
|
|
|
755 |
- findfont didn't restore the stacks reliably if an error occurred.
|
|
|
756 |
(gs_fonts.ps)
|
|
|
757 |
- definefont with an invalid Type 0 font sometimes added a FID entry
|
|
|
758 |
(with a dangling pointer) if it failed. (Recovering properly from a VMerror
|
|
|
759 |
during font creation would require a much more complicated fix than this,
|
|
|
760 |
but since we expect a garbage collection to occur in that case, we aren't
|
|
|
761 |
concerned about it.) (zfont0.c)
|
|
|
762 |
- Reading parameter values from a dictionary could access beyond the
|
|
|
763 |
end of the array that keeps track of which entries had been referenced.
|
|
|
764 |
(idict.h, idict.c, iparam.c)
|
|
|
765 |
- Halftone data was allocated in the current VM rather than in the
|
|
|
766 |
same VM as the halftone dictionary or procedure. (Fixing this includes
|
|
|
767 |
updating code as necessary for the change in halftone and device halftone
|
|
|
768 |
allocation.) (iht.h, ivmspace.h, zht.c, zht1.c, zht2.c)
|
|
|
769 |
- Closed non-executable files on the e-stack could cause a restore
|
|
|
770 |
to be invalid. (zvmem.c)
|
|
|
771 |
|
|
|
772 |
Adds skeleton code for the NeXT Display PostScript alpha and compositing
|
|
|
773 |
operators. This is not ready for use yet! (errors.h, gs_dpnxt.ps,
|
|
|
774 |
zdpsnext.c)
|
|
|
775 |
|
|
|
776 |
Implements more of state saving and restoring for Display PostScript
|
|
|
777 |
contexts. This is not ready for use yet either. (int.mak, icontext.h,
|
|
|
778 |
istack.h, icontext.c, zcontext.c)
|
|
|
779 |
|
|
|
780 |
Adds stub code for the Display PostScript view clip operators. (gs_dps.ps,
|
|
|
781 |
zdps.c)
|
|
|
782 |
|
|
|
783 |
Removes the obsolete PPM-writing operator. (int.mak, vms.mak, *.mak,
|
|
|
784 |
zwppm.c)
|
|
|
785 |
|
|
|
786 |
Makes the random number generator state public so it can be stored in the
|
|
|
787 |
context state. (zmath.c)
|
|
|
788 |
|
|
|
789 |
Changes the flag for forcing global garbage collection to a run-time
|
|
|
790 |
variable, for debugging. (igc.c)
|
|
|
791 |
|
|
|
792 |
Changes the handling of job control so that it doesn't use procedures that
|
|
|
793 |
produce an execstackoverflow when being printed. (gs_init.ps)
|
|
|
794 |
|
|
|
795 |
Updates code as necessary for the change in reference counting. (zcie.c,
|
|
|
796 |
zcrd.c)
|
|
|
797 |
|
|
|
798 |
Updates code as necessary for the change in off-stack gstate copying.
|
|
|
799 |
(zdps1.c)
|
|
|
800 |
|
|
|
801 |
Removes a small bit of obsolete code. (interp.c)
|
|
|
802 |
|
|
|
803 |
</pre><h3><a name="V4.74_Streams"></a>Streams</h3><pre>
|
|
|
804 |
|
|
|
805 |
Fixes bugs:
|
|
|
806 |
- An output stream that was not the last one in a pipeline could
|
|
|
807 |
incorrectly be asked to write its EOD marker more than once. (The fix is
|
|
|
808 |
very fragile and may have introduced new bugs.) (stream.c)
|
|
|
809 |
|
|
|
810 |
</pre><h3><a name="V4.74_Library"></a>Library</h3><pre>
|
|
|
811 |
|
|
|
812 |
Fixes bugs:
|
|
|
813 |
- The gx_device_halftone_release procedure was declared in two
|
|
|
814 |
different header files. (gzht.h)
|
|
|
815 |
- Off-stack copying of gstates could lead to a situation where
|
|
|
816 |
different parts of a single gstate were owned by different allocators; this
|
|
|
817 |
could cause them to be freed improperly, corrupting memory. We fixed this
|
|
|
818 |
partly by making the mixed ownership situation work, and partly by copying
|
|
|
819 |
more of the gstate when off-stack gstates are involved. Unfortunately, the
|
|
|
820 |
fixes are subtle and may have introduced new bugs. (gsstate.h, gsht.c,
|
|
|
821 |
gsht1.c, gspcolor.c, gsstate.c)
|
|
|
822 |
- If an error occurred while creating a Pattern instance, the
|
|
|
823 |
partially initialized instance structure wasn't freed. (gspcolor.c)
|
|
|
824 |
- Halftones and device halftones didn't allocate their clones or
|
|
|
825 |
their subsidiary structures with the correct allocator. (gsht.c, gsht1.c)
|
|
|
826 |
- The error statement when allocating a reference-counted object had
|
|
|
827 |
to be a control transfer. (gsrefct.h)
|
|
|
828 |
- Copying gstates incorrectly copied the memory and saved pointers,
|
|
|
829 |
and the pointer to the dash pattern. (gsstate.c)
|
|
|
830 |
- Flatness values less than 0.5 produced far more line segments than
|
|
|
831 |
necessary (roughly the square of the required number). Fixing this may have
|
|
|
832 |
bad effects on character quality -- this remains to be seen. (gxpflat.c)
|
|
|
833 |
- An error during installation of a halftone could leave things in
|
|
|
834 |
an inconsistent state. (gsht.c)
|
|
|
835 |
- The API didn't provide enough flexibility with respect to memory
|
|
|
836 |
management for halftones, or guarantee consistent allocation of a halftone
|
|
|
837 |
and its subelements. (gsht1.h, gsht.c, gsht1.c, gshtscr.c)
|
|
|
838 |
- Releasing a path didn't clear enough pointers to ensure clean
|
|
|
839 |
garbage collection. (gxpath.c)
|
|
|
840 |
- Finalizing or discarding a (cached) scaled font didn't properly
|
|
|
841 |
unlink it from the scaled_fonts list. (gsfont.c)
|
|
|
842 |
- Invoking an image operator within the BuildChar procedure for a
|
|
|
843 |
charpath caused an infinite loop. (gsimage.c)
|
|
|
844 |
- The bookkeeping for the scaled font cache was incorrect: the count
|
|
|
845 |
didn't always get decremented when a scaled font was freed. (gsfont.c)
|
|
|
846 |
- "High level" masked images were written incorrectly in the band
|
|
|
847 |
list as black-and-white images. (gxclimag.c)
|
|
|
848 |
- For "high level" images with fewer than 4 samples per pixel,
|
|
|
849 |
non-standard Decode values were written incorrectly in the band list.
|
|
|
850 |
(gxclimag.c)
|
|
|
851 |
- The color wasn't set correctly for "high level" masked images.
|
|
|
852 |
(gxclimag.c)
|
|
|
853 |
- The fastest case of monobit image rendering could get a memory
|
|
|
854 |
access error if the image lay partly outside the page. (gximage1.c)
|
|
|
855 |
- Clipping with an empty path was a no-op, rather than clipping out
|
|
|
856 |
everything. (gxcpath.c)
|
|
|
857 |
|
|
|
858 |
Makes reference-counted objects remember which allocator owns them: this
|
|
|
859 |
entails a NON-BACKWARD-COMPATIBLE change to some of the macros for reference
|
|
|
860 |
counting. This was necessary to fix the off-stack gstate copying problem.
|
|
|
861 |
(gsrefct.h, gscie.c, gscolor.c, gscolor1.c, gscolor2.c, gscsepr.c,
|
|
|
862 |
gsstate.c, gxclread.c)
|
|
|
863 |
|
|
|
864 |
Refactors the unpacking of image data, to make unpacking available as a
|
|
|
865 |
general facility. (gximage.h, gxsample.h, gximage.c, gximage0.c,
|
|
|
866 |
gximage1.c, gximage4.c, gxsample.c)
|
|
|
867 |
|
|
|
868 |
Enhances -Z? so that before freeing an object, it checks that the object was
|
|
|
869 |
owned by the correct allocator. (gsalloc.c)
|
|
|
870 |
|
|
|
871 |
</pre>
|
|
|
872 |
|
|
|
873 |
<h2><a name="Version4.73"></a>Version 4.73 (limited) (4/19/97)</h2>
|
|
|
874 |
|
|
|
875 |
<p>
|
|
|
876 |
This is an incremental bug fix release made primarily to provide a
|
|
|
877 |
synchronization point for an upcoming trip.
|
|
|
878 |
|
|
|
879 |
<h3><a name="V4.73_Documentation"></a>Documentation</h3><pre>
|
|
|
880 |
|
|
|
881 |
Fixes bugs:
|
|
|
882 |
- A reference to the uniprint documentation was incorrect.
|
|
|
883 |
(current.txt)
|
|
|
884 |
- -Olimit 1000 is not enough now for DEC Ultrix, 1200 is required;
|
|
|
885 |
this is also required for SGI IRIX. (make.txt)
|
|
|
886 |
|
|
|
887 |
Adds argument/result comments to all the operators defined in gs_lev2.ps.
|
|
|
888 |
(Eventually we will do this for all operators defined as PostScript
|
|
|
889 |
procedures.) (gs_lev2.ps)
|
|
|
890 |
|
|
|
891 |
</pre><h3><a name="V4.73_Procedures"></a>Procedures</h3><pre>
|
|
|
892 |
|
|
|
893 |
Fixes bugs:
|
|
|
894 |
- The makefiles didn't provide a default value for GCONFIG_EXTRAS.
|
|
|
895 |
(gs.mak)
|
|
|
896 |
|
|
|
897 |
</pre><h3><a name="V4.73_Utilities"></a>Utilities</h3><pre>
|
|
|
898 |
|
|
|
899 |
Fixes bugs:
|
|
|
900 |
- pdf2ps didn't work with TrueType or compressed Type 1 fonts.
|
|
|
901 |
(gs_pdf.ps, pdf_2ps.ps, pdf_font.ps)
|
|
|
902 |
|
|
|
903 |
</pre><h3><a name="V4.73_Drivers"></a>Drivers</h3><pre>
|
|
|
904 |
|
|
|
905 |
Fixes bugs:
|
|
|
906 |
- A cast from byte to char was omitted. (gdevpdfm.c)
|
|
|
907 |
|
|
|
908 |
</pre><h3><a name="V4.73_Platforms"></a>Platforms</h3><pre>
|
|
|
909 |
|
|
|
910 |
Updates the VMS script (again). (vms.mak)
|
|
|
911 |
|
|
|
912 |
</pre><h3><a name="V4.73_Interpreter"></a>Interpreter</h3><pre>
|
|
|
913 |
|
|
|
914 |
Fixes bugs:
|
|
|
915 |
- A module that used strlen didn't include string_.h. (zdevice.c)
|
|
|
916 |
- Because of some bad PostScript code in FrameMaker output, identity
|
|
|
917 |
rather than unity black generation and undercolor removal functions are
|
|
|
918 |
required on black-and-white devices. (gs_init.ps)
|
|
|
919 |
- A harmless internal error during initialization left bogus
|
|
|
920 |
information in $error. (gs_cidfn.ps)
|
|
|
921 |
- startjob didn't clear the execution stack. Fixing this required
|
|
|
922 |
NON-BACKWARD-COMPATIBLE changes to the internal operators .instopped, .stop,
|
|
|
923 |
and .stopped, which are not supposed to be used by any external code.
|
|
|
924 |
(startjob will still give errors if executed in a file that isn't being
|
|
|
925 |
piped from stdin; this will take longer to fix.) (gs_init.ps, gs_lev2.ps,
|
|
|
926 |
iref.h, imain.c, interp.c, zcontrol.c, zfile.c)
|
|
|
927 |
|
|
|
928 |
Adds a new .execn operator, part of the startjob changes, that allows
|
|
|
929 |
pushing multiple items on the exec stack. Eventually this will allow us to
|
|
|
930 |
get rid of many dynamically created closures. (zcontrol.c)
|
|
|
931 |
|
|
|
932 |
</pre><h3><a name="V4.73_Interpreter_PDF"></a>Interpreter (PDF)</h3><pre>
|
|
|
933 |
|
|
|
934 |
Fixes bugs:
|
|
|
935 |
- Landscape-mode PDF files weren't rotated properly. (gs_pdf.ps,
|
|
|
936 |
pdf_main.ps)
|
|
|
937 |
|
|
|
938 |
Makes the default PDF configuration notify users more informatively when
|
|
|
939 |
encountering an encrypted file. (pdf_sec.ps)
|
|
|
940 |
|
|
|
941 |
</pre><h3><a name="V4.73_Streams"></a>Streams</h3><pre>
|
|
|
942 |
|
|
|
943 |
Makes the RunLengthEncode filter always generate optimally compressed
|
|
|
944 |
output. We did this because we thought one of the Genoa CET files loops
|
|
|
945 |
forever if this is not the case; but we were wrong. (srle.c)
|
|
|
946 |
|
|
|
947 |
</pre><h3><a name="V4.73_Library"></a>Library</h3><pre>
|
|
|
948 |
|
|
|
949 |
Fixes bugs:
|
|
|
950 |
- If one coordinate of a position or distance overflowed the
|
|
|
951 |
internal representable range, the other coordinate became garbage. (bug
|
|
|
952 |
introduced in 4.70) (gspath.c)
|
|
|
953 |
- The bounding box computation for strokes was slightly too large
|
|
|
954 |
(sometimes much too large). (gxpaint.h, gdevbbox.c, gxclpath.c, gxstroke.c)
|
|
|
955 |
|
|
|
956 |
Adds (under an #if 0) an experimental alternate halftone cell choice
|
|
|
957 |
algorithm. (gshtscr.c)
|
|
|
958 |
|
|
|
959 |
Adds a better comment to a particularly obscure line of C code.
|
|
|
960 |
(gxclimag.c)
|
|
|
961 |
|
|
|
962 |
</pre>
|
|
|
963 |
|
|
|
964 |
<h2><a name="Version4.72"></a>Version 4.72 (limited) (4/14/97)</h2>
|
|
|
965 |
|
|
|
966 |
<p>
|
|
|
967 |
This is another bug fix release, motivated mostly by Genoa testing. It also
|
|
|
968 |
updates the new uniprint driver with a major revision, and upgrades CFF
|
|
|
969 |
support a little bit.
|
|
|
970 |
|
|
|
971 |
<h3><a name="V4.72_Documentation"></a>Documentation</h3><pre>
|
|
|
972 |
|
|
|
973 |
Fixes bugs:
|
|
|
974 |
- -dNOGC only disables default automatic garbage collection, not all
|
|
|
975 |
garbage collection. (use.txt)
|
|
|
976 |
- Apparently a different set of flags is needed for newer H-P
|
|
|
977 |
compilers. (make.txt)
|
|
|
978 |
|
|
|
979 |
Replaces the tiny FAQ with a pointer to the on-line FAQ. (use.txt)
|
|
|
980 |
|
|
|
981 |
Updates the documentation for the uniprint driver. (devices.txt)
|
|
|
982 |
|
|
|
983 |
Clarifies the fact that Ghostscript reads Fontmap files from *all*
|
|
|
984 |
directories in the search list. (use.txt)
|
|
|
985 |
|
|
|
986 |
Notes that building on Linux may require SM and ICE in the list of X
|
|
|
987 |
libraries. (make.txt)
|
|
|
988 |
|
|
|
989 |
</pre><h3><a name="V4.72_Procedures"></a>Procedures</h3><pre>
|
|
|
990 |
|
|
|
991 |
Fixes bugs:
|
|
|
992 |
- An -include type42 was omitted from the level2 module description.
|
|
|
993 |
(int.mak)
|
|
|
994 |
- A mention of $(ECHOGS) in the rule for sfile should have been
|
|
|
995 |
$(ECHOGS_XE). (lib.mak)
|
|
|
996 |
- The pcx2up sample device should have been put in devs.mak rather
|
|
|
997 |
than lib.mak. (devs.mak, lib.mak)
|
|
|
998 |
- scanchar.h and scantab.c belong in the library, not the
|
|
|
999 |
interpreter. (devs.mak, int.mak, lib.mak)
|
|
|
1000 |
- Some _h definitions were used before being defined, or weren't
|
|
|
1001 |
defined at all. (devs.mak, lib.mak)
|
|
|
1002 |
- The JPEG driver was missing a dependency. (devs.mak)
|
|
|
1003 |
- The PDF writer was missing a dependency. (devs.mak)
|
|
|
1004 |
- Building Level 1 systems was no longer possible. (int.mak)
|
|
|
1005 |
|
|
|
1006 |
Updates the VMS build scripts. (vms.mak, vms-decc.mak)
|
|
|
1007 |
|
|
|
1008 |
Adds *.upp to the list of files installed under Unix. (unix-end.mak)
|
|
|
1009 |
|
|
|
1010 |
Adds rules to the Unix makefiles to build two library files: gs.a,
|
|
|
1011 |
consisting of the entire PostScript/PDF interpreter lacking only gs.c, and
|
|
|
1012 |
gslib.a, consisting of the graphics library without the gslib.c test driver.
|
|
|
1013 |
(ansihead.mak, cc-head.mak, gcc-head.mak, unixtail.mak)
|
|
|
1014 |
|
|
|
1015 |
</pre><h3><a name="V4.72_Drivers"></a>Drivers</h3><pre>
|
|
|
1016 |
|
|
|
1017 |
Fixes bugs:
|
|
|
1018 |
- The PS/EPS writers could generate a reference to an undefined
|
|
|
1019 |
name. (gdevps.c)
|
|
|
1020 |
- The PDF writer produced incorrect output for multi-level outlines.
|
|
|
1021 |
(gdevpdfm.c)
|
|
|
1022 |
- The PDF writer didn't convert /Action to /A, and /Action/Subtype
|
|
|
1023 |
to /S, in Annot dictionaries. (gdevpdfm.c)
|
|
|
1024 |
- The PDF writer didn't work in Level 1 systems. (gs_pdfwr.ps)
|
|
|
1025 |
- The PDF writer didn't transform /Rect and /R values to current
|
|
|
1026 |
user coordinates. (gs_pdfwr.ps, gdevpdfx.h, gdevpdfm.c)
|
|
|
1027 |
- The PNG writer could refer to the 3 predefined stdio files even in
|
|
|
1028 |
environments where this was undesirable. (gdevpng.c)
|
|
|
1029 |
- The PDF writer had a compiled-in limit of 100 pages of output.
|
|
|
1030 |
(gdevpdfx.h, gdevpdf.c)
|
|
|
1031 |
|
|
|
1032 |
Updates the uniprint driver with a major revision that uses device
|
|
|
1033 |
parameters that can be set from the command line, rather than PostScript
|
|
|
1034 |
code, for configuration choices. (gdevupd.c, *.upp)
|
|
|
1035 |
|
|
|
1036 |
</pre><h3><a name="V4.72_Platforms"></a>Platforms</h3><pre>
|
|
|
1037 |
|
|
|
1038 |
Fixes bugs:
|
|
|
1039 |
- gp_enumerate_files_next had no way to return an error. (gp.h,
|
|
|
1040 |
gp_dosfe.c, gp_ntfs.c, gp_os2.c, gp_unifs.c, gp_vms.c) ****** NOT
|
|
|
1041 |
IMPLEMENTED YET ******
|
|
|
1042 |
- On the Watcom platform, CPU_TYPE >= 486 didn't automatically set
|
|
|
1043 |
FPU_TYPE to 387. (wccommon.mak)
|
|
|
1044 |
|
|
|
1045 |
</pre><h3><a name="V4.72_Interpreter"></a>Interpreter</h3><pre>
|
|
|
1046 |
|
|
|
1047 |
Fixes bugs:
|
|
|
1048 |
- Caching the current device in userdict could create dangling
|
|
|
1049 |
references. (gs_init.ps, gs_pdfwr.ps, zdevice.c)
|
|
|
1050 |
- If an error occurred in a BuildChar or BuildGlyph procedure, the
|
|
|
1051 |
graphics state stack wasn't restored. (ichar.h, zchar.c, zchar2.c)
|
|
|
1052 |
- There was an obsolete check for a structure when cleaning up after
|
|
|
1053 |
a show operator. (zchar.c)
|
|
|
1054 |
- Attempting to show a character with no associated glyph in a Type
|
|
|
1055 |
3 font with a BuildGlyph procedure caused an error. (zchar.c)
|
|
|
1056 |
- noaccess on a read-only dictionary didn't give an error.
|
|
|
1057 |
(ztype.c)
|
|
|
1058 |
- The dictionary passed to a Pattern's PaintProc was the original
|
|
|
1059 |
template, not the copy made by makepattern. (gs_lev2.ps)
|
|
|
1060 |
- Invalid font parameters could result in partially constructed
|
|
|
1061 |
fonts, which caused problems for restore. (zfont0.c, zfont2.c)
|
|
|
1062 |
- Files run under job control caused an error when terminating.
|
|
|
1063 |
(gs_init.ps)
|
|
|
1064 |
- setpagedevice didn't protect itself against malfunctioning
|
|
|
1065 |
BeginPage or EndPage procedures. (The protection is still not perfect.)
|
|
|
1066 |
(gs_setpd.ps)
|
|
|
1067 |
- .type42execchar called font_param redundantly. (zchar42.c)
|
|
|
1068 |
- The font operators didn't protect themselves well enough against
|
|
|
1069 |
bogus font dictionaries. (zfont.c, zfont0.c)
|
|
|
1070 |
- If an error occurred within a stringwidth, the graphics state
|
|
|
1071 |
stack wasn't restored properly. (zchar.c)
|
|
|
1072 |
- If an error occurred within the PaintProc of a form, the graphics
|
|
|
1073 |
state stack was left with an extra entry. (gs_lev2.ps)
|
|
|
1074 |
- Registering a font under a second name could corrupt data
|
|
|
1075 |
structures. (zfont2.c)
|
|
|
1076 |
- Different scalings of the same font should have "equal" fontIDs,
|
|
|
1077 |
to match the Adobe implementations. (iutil.c)
|
|
|
1078 |
- Errors detected by PostScript code during initialization either
|
|
|
1079 |
allowed execution to continue or produced a hex stack dump, instead of just
|
|
|
1080 |
producing a message and exiting. (interp.c)
|
|
|
1081 |
- The memory validator didn't validate chunks at previous save
|
|
|
1082 |
levels. (ilocate.c)
|
|
|
1083 |
- The Level 1 size of systemdict was too small. (iinit.c)
|
|
|
1084 |
- Attempting to define a Category resource in local VM gave a
|
|
|
1085 |
typecheck error rather than an invalidaccess. (gs_res.ps)
|
|
|
1086 |
- Building Level 1 systems was no longer possible. (zusparam.c)
|
|
|
1087 |
|
|
|
1088 |
Rearranges the interpreter code slightly so that all operator invocations go
|
|
|
1089 |
through a single procedure when debugging. (interp.c)
|
|
|
1090 |
|
|
|
1091 |
Adds a -K<numK> switch to limit the total amount of memory that Ghostscript
|
|
|
1092 |
can acquire. (imainarg.c)
|
|
|
1093 |
|
|
|
1094 |
Makes the memory validator check packed refs more carefully. (ilocate.c)
|
|
|
1095 |
|
|
|
1096 |
Makes the memory validator check explicitly for pointers to freed objects.
|
|
|
1097 |
(igc.c, ilocate.c)
|
|
|
1098 |
|
|
|
1099 |
Makes the memory validator check dictionaries more carefully. (ilocate.c)
|
|
|
1100 |
|
|
|
1101 |
Makes the memory validator check refs embedded in structures. (ilocate.c)
|
|
|
1102 |
|
|
|
1103 |
Adds a debugging option that bypasses the garbage collector entirely.
|
|
|
1104 |
(igc.c)
|
|
|
1105 |
|
|
|
1106 |
Adds debugging options to validate memory before/after save/restore.
|
|
|
1107 |
(zvmem.c)
|
|
|
1108 |
|
|
|
1109 |
Removes the patch for the uniprint driver, since it is no longer needed.
|
|
|
1110 |
(gs_init.ps)
|
|
|
1111 |
|
|
|
1112 |
Implements real-number operands in CFF fonts. (gs_cff.ps)
|
|
|
1113 |
|
|
|
1114 |
Implements non-default charsets in CFF fonts. (gs_cff.ps)
|
|
|
1115 |
|
|
|
1116 |
</pre><h3><a name="V4.72_Interpreter_PDF"></a>Interpreter (PDF)</h3><pre>
|
|
|
1117 |
|
|
|
1118 |
Fixes bugs:
|
|
|
1119 |
- The PDF 1.2 "marked content" operators weren't defined.
|
|
|
1120 |
(pdf_main.ps)
|
|
|
1121 |
- Streams with binary data whose first character was an EOL (\n)
|
|
|
1122 |
didn't parse properly. Unfortunately, the way we fixed this may break some
|
|
|
1123 |
other files. (pdf_base.ps)
|
|
|
1124 |
- PDF 1.2 #nn escape syntax in names wasn't recognized. ****** This
|
|
|
1125 |
is implemented with an inefficient hack that should be moved down into C.
|
|
|
1126 |
However, I don't want to risk introducing new bugs during the beta test
|
|
|
1127 |
period. ****** (pdf_base.ps)
|
|
|
1128 |
- The interpreter had a limit of 64K objects. Removing this limit
|
|
|
1129 |
required changing a basic data structure -- admittedly a risky thing to do
|
|
|
1130 |
during beta test. (pdf_base.ps, pdf_main.ps)
|
|
|
1131 |
- TJ didn't multiply the offsets by the font size, causing incorrect
|
|
|
1132 |
character positioning. (gs_pdf.ps)
|
|
|
1133 |
|
|
|
1134 |
</pre><h3><a name="V4.72_Streams"></a>Streams</h3><pre>
|
|
|
1135 |
|
|
|
1136 |
Fixes bugs:
|
|
|
1137 |
- The ASCIIHexDecode filter read an extra character in case of
|
|
|
1138 |
error. (sstring.c)
|
|
|
1139 |
|
|
|
1140 |
Adds more tracing output to the CCITTFaxDecode stream. (scfd.c)
|
|
|
1141 |
|
|
|
1142 |
</pre><h3><a name="V4.72_Library"></a>Library</h3><pre>
|
|
|
1143 |
|
|
|
1144 |
Fixes bugs:
|
|
|
1145 |
- The allocator client name for rendering bitmap patterns was
|
|
|
1146 |
incorrect. (Only affects tracing output.) (gspcolor.c)
|
|
|
1147 |
- The check for exceeding the overall allocation limit was
|
|
|
1148 |
incorrect, because of unsigned arithmetic. (Only affects limitation of
|
|
|
1149 |
total allocation, which is only used for debugging and benchmarking.)
|
|
|
1150 |
(gsmemory.c)
|
|
|
1151 |
- The 0'th component of colored screens wasn't passed through the
|
|
|
1152 |
band list, possibly causing access errors when rasterizing. (gxclimag.c,
|
|
|
1153 |
gxclread.c)
|
|
|
1154 |
- setbbox could get an overflow without detecting it. (gsdps1.c)
|
|
|
1155 |
- Images with only one component but MultipleDataSources = true
|
|
|
1156 |
could cause a memory access error. (gximage.c)
|
|
|
1157 |
- The buffer for unpacking 12-bit-per-sample image data was too
|
|
|
1158 |
small, causing memory corruption. (gximage.c)
|
|
|
1159 |
- 12-bit-per-sample images with multiple data sources sometimes
|
|
|
1160 |
didn't pass correct pointers to image_data. (gsimage.c)
|
|
|
1161 |
- If an image data stream reached EOF before supplying enough data
|
|
|
1162 |
for the entire image, memory corruption could occur. (zpaint.c)
|
|
|
1163 |
- When a device halftone was freed, some pointers in the halftone
|
|
|
1164 |
cache weren't cleared, leading to possible dangling references. (gsstate.c)
|
|
|
1165 |
- Invalid font parameters could result in partially constructed
|
|
|
1166 |
fonts, which caused problems for restore. (gxfont0.h, gsfont.c)
|
|
|
1167 |
- If an error occurred within a stringwidth, the graphics state
|
|
|
1168 |
stack wasn't restored properly. (gschar.c)
|
|
|
1169 |
- The (static) limit on the size of a command line argument was too
|
|
|
1170 |
small. (gsargs.h)
|
|
|
1171 |
- Building Level 1 systems was no longer possible. (gxdht.h,
|
|
|
1172 |
gsht.c, gsht1.c)
|
|
|
1173 |
- Truncation instead of rounding caused colors on gray-scale devices
|
|
|
1174 |
to come out very slightly too dark. (gxcmap.c)
|
|
|
1175 |
- The Decode mapping table constructed for images was slightly
|
|
|
1176 |
inaccurate for ranges other than [0 1] or [1 0]. (gximage.c)
|
|
|
1177 |
|
|
|
1178 |
</pre>
|
|
|
1179 |
|
|
|
1180 |
<h2><a name="Version4.71"></a>Version 4.71 (limited) (3/31/97)</h2>
|
|
|
1181 |
|
|
|
1182 |
<p>
|
|
|
1183 |
This is a bug fix release during the beta test period.
|
|
|
1184 |
|
|
|
1185 |
<h3><a name="V4.71_Documentation"></a>Documentation</h3><pre>
|
|
|
1186 |
|
|
|
1187 |
Fixes bugs:
|
|
|
1188 |
- A larger value of -Olimit is now needed to optimize gxclread.c.
|
|
|
1189 |
(make.txt)
|
|
|
1190 |
- Some comments were incorrect. (gdevbbox.h, sfilter1.c)
|
|
|
1191 |
|
|
|
1192 |
Updates the GPL with a newer version from FSF. (COPYLEFT)
|
|
|
1193 |
|
|
|
1194 |
Notes that the gcc 2.7.x code generation bug is fixed in 2.7.2.1.
|
|
|
1195 |
(make.txt)
|
|
|
1196 |
|
|
|
1197 |
</pre><h3><a name="V4.71_Procedures"></a>Procedures</h3><pre>
|
|
|
1198 |
|
|
|
1199 |
Fixes bugs:
|
|
|
1200 |
- Some streams required by high-level drivers were incorrectly
|
|
|
1201 |
grouped with the interpreter rather than the library. (int.mak, lib.mak)
|
|
|
1202 |
- The choice of implementation for file streams was buried in an
|
|
|
1203 |
obscure place, rather than being included in the configuration definitions
|
|
|
1204 |
at the head of each makefile. (We believe there are no more such buried
|
|
|
1205 |
parameters.) This involved a NON-BACKWARD-COMPATIBLE change in the way this
|
|
|
1206 |
choice was specified. (lib.mak, *.mak)
|
|
|
1207 |
- Some dependencies were missing. (lib.mak)
|
|
|
1208 |
|
|
|
1209 |
</pre><h3><a name="V4.71_Drivers"></a>Drivers</h3><pre>
|
|
|
1210 |
|
|
|
1211 |
Fixes bugs:
|
|
|
1212 |
- A variable was used before being initialized, causing get_bits
|
|
|
1213 |
(and raster ops) to fail when using alternate X devices. (bug introduced in
|
|
|
1214 |
4.70.) (gdevxalt.c)
|
|
|
1215 |
- Some 'private' declarations were omitted. (It is infuriating that
|
|
|
1216 |
gcc doesn't check for this!) (gdevps.c, gdevpx.c)
|
|
|
1217 |
- A few character strings were used as byte arrays without a cast.
|
|
|
1218 |
(gdevpx.c)
|
|
|
1219 |
- The EPS writer didn't write a correct bounding box, and didn't
|
|
|
1220 |
write it at the beginning of the file. (gdevvec.h, gsstruct.h, gdevps.c,
|
|
|
1221 |
gdevvec.c)
|
|
|
1222 |
- x_copy_color specified an incorrect (too large) image width.
|
|
|
1223 |
Apparently this only mattered because it could cause invalid memory
|
|
|
1224 |
accesses. (gdevx.c)
|
|
|
1225 |
- x_copy_mono also specified too large an image width. It's not
|
|
|
1226 |
clear this made any difference. (gdevx.c)
|
|
|
1227 |
- The default implementation of strip_copy_rop didn't clamp Y values
|
|
|
1228 |
to legal values for get_bits. (gdevmrop.c)
|
|
|
1229 |
|
|
|
1230 |
</pre><h3><a name="V4.71_Interpreter"></a>Interpreter</h3><pre>
|
|
|
1231 |
|
|
|
1232 |
Fixes bugs:
|
|
|
1233 |
- Some initialization files prematurely switched the interpreter
|
|
|
1234 |
into Level 2 mode, causing some Level 2 operators not to be defined. (bug
|
|
|
1235 |
introduced in 4.60 or later.) (gs_cff.ps, gs_cidfn.ps, gs_cmap.ps,
|
|
|
1236 |
gs_init.ps, gs_res.ps)
|
|
|
1237 |
|
|
|
1238 |
</pre><h3><a name="V4.71_Streams"></a>Streams</h3><pre>
|
|
|
1239 |
|
|
|
1240 |
Fixes bugs:
|
|
|
1241 |
- The choice of procedure names for the file-descriptor-based
|
|
|
1242 |
implementation of file streams was buried in a .c file, rather than being
|
|
|
1243 |
chosen in the makefile. (sfile.c[deleted], sfileno.c[deleted], sfxstdio.c,
|
|
|
1244 |
sfxfd.c, sfxboth.c)
|
|
|
1245 |
|
|
|
1246 |
</pre><h3><a name="V4.71_Library"></a>Library</h3><pre>
|
|
|
1247 |
|
|
|
1248 |
Fixes bugs:
|
|
|
1249 |
- rcurveto was broken -- it drew curves to random points. (bug
|
|
|
1250 |
introduced in 4.61.) (gspath.c)
|
|
|
1251 |
- A trailing comma in an enum definition upset some compilers. (bug
|
|
|
1252 |
introduced in 4.70.) (gstype1.h)
|
|
|
1253 |
- Type 1 fonts with hint replacement could produce anomalous or
|
|
|
1254 |
clipped output, or even missing lines. (Also cleans up some out-of-date
|
|
|
1255 |
formatting.) (gxtype1.h, gstype1.c, gxhint2.c)
|
|
|
1256 |
- Removes some conditionals for choosing between old and new
|
|
|
1257 |
algorithms. (gxhint3.c)
|
|
|
1258 |
- makebitmappattern required that the bitmap consist of only a
|
|
|
1259 |
single tile repetition. (gspcolor.c)
|
|
|
1260 |
- Some computations on RasterOps didn't take transparency into
|
|
|
1261 |
account properly. (gdevmrop.c)
|
|
|
1262 |
- The structure definition for imager and graphics states had an
|
|
|
1263 |
incorrect offset for line_params, causing the garbage collector not to mark
|
|
|
1264 |
or relocate dash patterns, possibly causing memory faults, FPEs, or invalid
|
|
|
1265 |
output. (bug introduced since 4.03.) (gsstate.c)
|
|
|
1266 |
- 'show' operators gave a limitcheck for unreasonable coordinates,
|
|
|
1267 |
even if limit clamping was enabled. (gschar.c)
|
|
|
1268 |
|
|
|
1269 |
Implements banded filling and stroking with colored halftones, in addition
|
|
|
1270 |
to pure colors and binary halftones. Since we are in a beta test period,
|
|
|
1271 |
actual use of this feature (but *not* all the code implementing it) is
|
|
|
1272 |
disabled under an #ifdef FUTURE. (gsdcolor.h, gxcldev.h, gxclpath.h,
|
|
|
1273 |
gxdht.h, gxhttype.h, gsht.c, gxclimag.c, gxclpath.c, gxclread.c)
|
|
|
1274 |
|
|
|
1275 |
</pre>
|
|
|
1276 |
|
|
|
1277 |
<h2><a name="Version4.70"></a>Version 4.70 (limited) (3/26/97)</h2>
|
|
|
1278 |
|
|
|
1279 |
<p>
|
|
|
1280 |
This fileset fixes the one outstanding compilation problem on PC platforms
|
|
|
1281 |
and the old problem of limitchecks for out-of-bounds coordinates, and adds a
|
|
|
1282 |
variety of new features, including the ability to save away the band lists
|
|
|
1283 |
for pages and rasterize them later and/or elsewhere in any order and
|
|
|
1284 |
combination. This is the first "serious beta" candidate for the next
|
|
|
1285 |
general release.
|
|
|
1286 |
|
|
|
1287 |
<p>
|
|
|
1288 |
Fileset numbers 4.62 through 4.69 were skipped deliberately.
|
|
|
1289 |
|
|
|
1290 |
<h3><a name="V4.70_Documentation"></a>Documentation</h3><pre>
|
|
|
1291 |
|
|
|
1292 |
Fixes bugs:
|
|
|
1293 |
- The list of special -d and -s switches was out of date. (use.txt)
|
|
|
1294 |
- The name of the zlibDecode filter was incorrectly written
|
|
|
1295 |
zlibEncode. (language.txt)
|
|
|
1296 |
|
|
|
1297 |
Documents where to find out how to install gcc 2.7.x on SGI IRIX 6.x.
|
|
|
1298 |
(make.txt)
|
|
|
1299 |
|
|
|
1300 |
Documents a makefile patch required on NeXTStep. (make.txt)
|
|
|
1301 |
|
|
|
1302 |
Documents how to patch gcc to fix the AXP code generation bug. (make.txt)
|
|
|
1303 |
|
|
|
1304 |
Adds documentation for the new unified printer driver. (devices.txt)
|
|
|
1305 |
|
|
|
1306 |
</pre><h3><a name="V4.70_Procedures"></a>Procedures</h3><pre>
|
|
|
1307 |
|
|
|
1308 |
Fixes bugs:
|
|
|
1309 |
- 'make distclean' didn't remove a couple of files. (gs.mak)
|
|
|
1310 |
- A library module didn't include a necessary dependency. (lib.mak)
|
|
|
1311 |
- A new .ps file wasn't installed properly. (unix-end.mak)
|
|
|
1312 |
- File write dates weren't updated properly on PC platforms, causing
|
|
|
1313 |
unnecessary rebuilding. (cp.bat, gs.mak, msc.mak, msvcwint.mak, os2.mak,
|
|
|
1314 |
tccommon.mak, wccommon.mak, zlib.mak)
|
|
|
1315 |
- An unnecessary explicit compilation line for gdevcdj.c caused
|
|
|
1316 |
problems in the Mac environment. (devs.mak)
|
|
|
1317 |
- The VMS scripts were out of sync again. (vms.mak)
|
|
|
1318 |
- The VMS build scripts didn't include the new JPEG driver.
|
|
|
1319 |
(vms-*.mak)
|
|
|
1320 |
- A number of makefile macros were referenced before being defined.
|
|
|
1321 |
(devs.mak, lib.mak, int.mak, *.mak)
|
|
|
1322 |
- libpng.mak didn't work with PVERSION=90. (libpng.mak, zlib.mak)
|
|
|
1323 |
|
|
|
1324 |
Separates install-scripts from install-exec and install-data.
|
|
|
1325 |
(unix-end.mak)
|
|
|
1326 |
|
|
|
1327 |
Moves the definition of SEARCH_HERE_FIRST from iminst.h to the makefiles.
|
|
|
1328 |
(*.mak, iminst.h, iconf.c, imain.c)
|
|
|
1329 |
|
|
|
1330 |
Adds a -dBATCH switch that causes Ghostscript to exit after processing the
|
|
|
1331 |
files named on the command line. (gs_init.ps)
|
|
|
1332 |
|
|
|
1333 |
Adds the PostScript, EPS, and PCL XL writers, and the color and gray-scale
|
|
|
1334 |
JPEG drivers, to all Unix configurations. (ansihead.mak, cc-head.mak,
|
|
|
1335 |
gcc-head.mak)
|
|
|
1336 |
|
|
|
1337 |
</pre><h3><a name="V4.70_Drivers"></a>Drivers</h3><pre>
|
|
|
1338 |
|
|
|
1339 |
NOTE: because of a change in an internal interface (clist_output_page), the
|
|
|
1340 |
cp50 driver no longer works. This is a user-contributed driver for which we
|
|
|
1341 |
take no responsibility.
|
|
|
1342 |
|
|
|
1343 |
Fixes bugs:
|
|
|
1344 |
- gdevcdj.c wasn't compatible with ansi2knr. (gdevcdj.c)
|
|
|
1345 |
- 'private' was omitted from some declarations. (gdevjpeg.c)
|
|
|
1346 |
- The PostScript writer didn't keep track of the current color
|
|
|
1347 |
properly. (gdevps.c)
|
|
|
1348 |
- RESOLUTION was misspelled in a header. (gdevbjc.h)
|
|
|
1349 |
- Some compilers objected to the use of a floating point initial
|
|
|
1350 |
resolution value. (gdevbjc.h)
|
|
|
1351 |
- Some compilers didn't allow static initialization of a union.
|
|
|
1352 |
(gsdcolor.h)
|
|
|
1353 |
- If a TIFF driver got an error when initializing the CCITTFax
|
|
|
1354 |
encoder, it returned a bogus error code. (gdevtfax.c)
|
|
|
1355 |
- The PDF writer produced incorrect output for Indexed color space
|
|
|
1356 |
images. (gdevpdfi.c)
|
|
|
1357 |
- For many fatal error conditions, the X driver called exit()
|
|
|
1358 |
instead of returning an error. (gdevx*.c)
|
|
|
1359 |
|
|
|
1360 |
Adds new drivers:
|
|
|
1361 |
- epswrite, an EPS-writing driver (instead of making EPS output a
|
|
|
1362 |
parametric option of the PostScript-writing device). (devs.mak, gdevps.c)
|
|
|
1363 |
- pcxcmyk, a 4-bit CMYK PCX driver. This is probably only useful
|
|
|
1364 |
for debugging CMYK color rendering. (gdevpcx.c)
|
|
|
1365 |
- jpeggray, a JPEG driver that produces gray-scale rather than color
|
|
|
1366 |
output. Thanks to Tom Lane for contributing this. (gdevjpeg.c)
|
|
|
1367 |
- uniprint, a unified printer driver for a wide variety of inkjet
|
|
|
1368 |
printers. Thanks to Gunther Hess for contributing this. (gdevupd.c)
|
|
|
1369 |
|
|
|
1370 |
Adds the resolution (pHYs) to the output of the PNG drivers. (gdevpng.c)
|
|
|
1371 |
|
|
|
1372 |
Adds recognition of the ASCII85EncodePages parameter to the PostScript and
|
|
|
1373 |
EPS writers. (gdevps.c)
|
|
|
1374 |
|
|
|
1375 |
Makes the new JPEG driver write a JFIF header, which contains the image
|
|
|
1376 |
resolution. (gdevjpeg.c)
|
|
|
1377 |
|
|
|
1378 |
Changes the "vector" device support interface so relative movement can be
|
|
|
1379 |
detected easily. THIS IS STILL SUBJECT TO CHANGE WITHOUT NOTICE.
|
|
|
1380 |
(gdevvec.h, gdevpsdf.c, gdevps.c, gdevpx.c, gdevvec.c)
|
|
|
1381 |
|
|
|
1382 |
Changes the PostScript, EPS, and PDF writers to recognize curves and lines
|
|
|
1383 |
that can be represented more efficiently. (gdevpsdf.h, gdevpsdf.c,
|
|
|
1384 |
gdevps.c)
|
|
|
1385 |
|
|
|
1386 |
Adds a new parameter to the PDF writer, FirstObjectNumber. This defines the
|
|
|
1387 |
first object number that will be used in the output. The default, and
|
|
|
1388 |
minimum, value is 1; the maximum value is approximately 2^31. This is for
|
|
|
1389 |
the benefit of dvipdf; we don't expect it to be used otherwise. In fact,
|
|
|
1390 |
using it appears to produce files that Adobe Acrobat Reader won't accept,
|
|
|
1391 |
even though the files are perfectly compliant with the published PDF
|
|
|
1392 |
specification. (gdevpdfx.h, gdevpdf.c, gdevpdfp.c)
|
|
|
1393 |
|
|
|
1394 |
</pre><h3><a name="V4.70_Platforms"></a>Platforms</h3><pre>
|
|
|
1395 |
|
|
|
1396 |
Removes the makefile for the 16-bit Borland C++ platform. This was the last
|
|
|
1397 |
supported 16-bit platform; we expect to gradually drop all 16-bit
|
|
|
1398 |
concessions from the code itself. (bcwin.mak)
|
|
|
1399 |
|
|
|
1400 |
</pre><h3><a name="V4.70_Interpreter"></a>Interpreter</h3><pre>
|
|
|
1401 |
|
|
|
1402 |
Fixes bugs:
|
|
|
1403 |
- The initial size of systemdict was too small, causing the
|
|
|
1404 |
interpreter to slow down substantially. (iinit.c)
|
|
|
1405 |
- A library module depended on an interpreter module. (zcsindex.c)
|
|
|
1406 |
- A logically necessary (but accidentally always available) #include
|
|
|
1407 |
was missing. (ifont.h)
|
|
|
1408 |
|
|
|
1409 |
Moves set/currentoverprint to a more appropriate module. (zcolor2.c,
|
|
|
1410 |
zcssepr.c)
|
|
|
1411 |
|
|
|
1412 |
Changes the default transfer functions so that they do something reasonable
|
|
|
1413 |
when given operands outside the legal [0..1] range. We only do this to work
|
|
|
1414 |
around a bug in FrameMaker output, which uses the transfer function as the
|
|
|
1415 |
screen function (!). (gs_init.ps)
|
|
|
1416 |
|
|
|
1417 |
Changes the CMap construction algorithm to use the new, more compact
|
|
|
1418 |
representation. (zfcmap.c)
|
|
|
1419 |
|
|
|
1420 |
Adds support for Adobe's Compact Font Format. Many individual features are
|
|
|
1421 |
not implemented yet: see the comment in the source code for details.
|
|
|
1422 |
(gs_cff.ps)
|
|
|
1423 |
|
|
|
1424 |
Adds support for Type 2 charstrings in Type 1 fonts. (ifont.h, zfont1.c)
|
|
|
1425 |
|
|
|
1426 |
Changes the Type 1 character rendering operator for the library change in
|
|
|
1427 |
Type 1 fonts. (zchar1.c, zfont1.c)
|
|
|
1428 |
|
|
|
1429 |
Initializes the graphics state limit clamp flag to true. (zgstate.c)
|
|
|
1430 |
|
|
|
1431 |
Temporarily adds a configuration file for the new unified printer driver,
|
|
|
1432 |
and arranges for it to be read at startup. This arrangement will be
|
|
|
1433 |
replaced very soon by a different one based on command line parameters.
|
|
|
1434 |
(gs_init.ps, uniprint.ps)
|
|
|
1435 |
|
|
|
1436 |
</pre><h3><a name="V4.70_Interpreter_PDF"></a>Interpreter (PDF)</h3><pre>
|
|
|
1437 |
|
|
|
1438 |
Adds support for Compact Font Format fonts. (pdf_font.ps)
|
|
|
1439 |
|
|
|
1440 |
</pre><h3><a name="V4.70_Streams"></a>Streams</h3><pre>
|
|
|
1441 |
|
|
|
1442 |
Adds a glue procedure needed for the new jpeggray driver. (sjpeg.h,
|
|
|
1443 |
sjpege.c)
|
|
|
1444 |
|
|
|
1445 |
Removes the width limit of 32K in the CCITTFaxEncode filter. The new limit
|
|
|
1446 |
is absurdly large (about 50M). (scf.h, scfx.h, scfe.c)
|
|
|
1447 |
|
|
|
1448 |
</pre><h3><a name="V4.70_Library"></a>Library</h3><pre>
|
|
|
1449 |
|
|
|
1450 |
Fixes bugs:
|
|
|
1451 |
- A library module depended on an interpreter module. (gxcolor2.h,
|
|
|
1452 |
gscolor2.c)
|
|
|
1453 |
- When rendering a band, clipping was sometimes used when it wasn't
|
|
|
1454 |
necessary. (Performance only.) (gxclread.c)
|
|
|
1455 |
- Stroking didn't check the path against the device clipping box in
|
|
|
1456 |
the absence of an explicit (non-default) clipping path. (Performance only.)
|
|
|
1457 |
(gxstroke.c)
|
|
|
1458 |
- A reference to an opaque type upset a couple of compilers.
|
|
|
1459 |
(gxclread.c)
|
|
|
1460 |
- Negative 32-bit numbers in Type 1 fonts didn't work properly on
|
|
|
1461 |
64-bit systems. (gstype1.c)
|
|
|
1462 |
- A logically necessary (but accidentally always available) #include
|
|
|
1463 |
was missing. (gxbitmap.h)
|
|
|
1464 |
- A header wasn't protected against double inclusion. (gxclist.h)
|
|
|
1465 |
- Clipping devices didn't store their actual width and height.
|
|
|
1466 |
(gxcpath.c)
|
|
|
1467 |
- The slow-case check for thin lines was incorrect. (gxstroke.c)
|
|
|
1468 |
- Images didn't compute their clipping boxes correctly if there
|
|
|
1469 |
wasn't an explicit clipping path. (This must be a very recent bug, since it
|
|
|
1470 |
creates an overflow condition that prevents monochrome images from being
|
|
|
1471 |
rendered at all.) (gximage.c)
|
|
|
1472 |
|
|
|
1473 |
Moves set/currentoverprint to a more appropriate module. For clients of
|
|
|
1474 |
gs_set/currentoverprint, this is a NON-BACKWARD-COMPATIBLE CHANGE, since the
|
|
|
1475 |
header file is now separate. (gscolor2.h, gscsepr.h, gscolor2.c, gscsepr.c)
|
|
|
1476 |
|
|
|
1477 |
Replace the MetroWerks work-around with a different, more general one.
|
|
|
1478 |
(gdevmem.h, gdevmem.c, gxdevice.h)
|
|
|
1479 |
|
|
|
1480 |
Speeds up the Type 1 interpreter a little. (gstype1.c, gxhint3.c)
|
|
|
1481 |
|
|
|
1482 |
Redesigns the internal representation of CMaps to be more space-efficient.
|
|
|
1483 |
(gxfcmap.h, gschar0.c, gsfcmap.c)
|
|
|
1484 |
|
|
|
1485 |
Implements a facility for saving away pages and rendering them later.
|
|
|
1486 |
Currently this requires the pages to be represented as band lists on files,
|
|
|
1487 |
and only allows X translation when rendering. This involves adding the
|
|
|
1488 |
following new printer device parameters:
|
|
|
1489 |
BandHeight
|
|
|
1490 |
BandWidth
|
|
|
1491 |
BandBufferSpace
|
|
|
1492 |
Also changes the names of the printer device parameter elements from
|
|
|
1493 |
use_buffer_space to BufferSpace and from max_bitmap to MaxBitmap for
|
|
|
1494 |
consistency. (gdevprn.h, gxcldev.h, gxclio.h, gxclist.h, gxclmem.h,
|
|
|
1495 |
gxclpage.h, gxdevmem.h, gdevmem.c, gdevp2up.c, gdevprn.c, gxclmem.c,
|
|
|
1496 |
gxclpath.c, gxclread.c)
|
|
|
1497 |
|
|
|
1498 |
Changes the band list implementation API to allow closing a file without
|
|
|
1499 |
deleting it, and to allow reopening an existing file. This is a
|
|
|
1500 |
NON-BACKWARD-COMPATIBLE change to a deep internal interface. (gxclio.h,
|
|
|
1501 |
gxclmem.h, gxclfile.c, gxclist.c, gxclmem.c)
|
|
|
1502 |
|
|
|
1503 |
Speeds up rendering of colored halftones, by recognizing cases where one or
|
|
|
1504 |
more planes don't actually require screening, unrolling a loop, and doing
|
|
|
1505 |
basic clipping before halftoning. (gxcht.c)
|
|
|
1506 |
|
|
|
1507 |
Adds a graphics state parameter, gs_set/currentlimitclamp, that changes the
|
|
|
1508 |
handling of out-of-range coordinates to clamp them in a way that produces
|
|
|
1509 |
approximately the intended output most of the time, rather than causing a
|
|
|
1510 |
limitcheck. Currently this is only designed to work with the basic path
|
|
|
1511 |
construction operations ([r]moveto, [r]lineto, [r]curveto, closepath); it
|
|
|
1512 |
does not work with many other operations such as show, flattenpath or the
|
|
|
1513 |
rectangle operations. Note also that while currentpoint will return the
|
|
|
1514 |
correct (unclamped) value, reading out the path with pathforall will return
|
|
|
1515 |
clamped values. This involves NON-BACKWARD-COMPATIBLE changes to the path
|
|
|
1516 |
structure (but not to any public interfaces). (gxpath.h, gxtype1.h,
|
|
|
1517 |
gzpath.h, gzstate.h, gspath.c, gspath1.c, gsstate.c, gstype1.c, gxpaint.c,
|
|
|
1518 |
gxpath.c, gxpath2.c, gxpcopy.c)
|
|
|
1519 |
|
|
|
1520 |
Adds support for Type 2 charstrings. Some features are not implemented yet:
|
|
|
1521 |
see gstype2.c for details. (gscrypt1.h, gstype1.h, gxfont1.h, gxop1.h,
|
|
|
1522 |
gxtype1.h, gstype1.c, gstype2.c, gxhint2.c, gxhint3.c, gxtype1.c)
|
|
|
1523 |
|
|
|
1524 |
</pre>
|
|
|
1525 |
|
|
|
1526 |
<hr>
|
|
|
1527 |
|
|
|
1528 |
<h2><a name="Version4.61"></a>Version 4.61 (limited) (3/13/97)</h2>
|
|
|
1529 |
|
|
|
1530 |
<p>
|
|
|
1531 |
This fileset cleans up many compiler warnings. It adds support for
|
|
|
1532 |
CMap-encoded fonts, and a driver that writes JPEG images.
|
|
|
1533 |
|
|
|
1534 |
<h3><a name="V4.61_Documentation"></a>Documentation</h3><pre>
|
|
|
1535 |
|
|
|
1536 |
Corrects an error in the description of the internal CodeMap structure.
|
|
|
1537 |
(gs_cmap.ps)
|
|
|
1538 |
|
|
|
1539 |
Documents the fact that the optimizer in gcc 2.7.2.1 is broken on AXP
|
|
|
1540 |
machines. (make.txt)
|
|
|
1541 |
|
|
|
1542 |
Corrects the name of the .setglobal/.currentglobal procedures. (zvmem2.c)
|
|
|
1543 |
|
|
|
1544 |
Updates current.txt in preparation for the release. (current.txt)
|
|
|
1545 |
|
|
|
1546 |
</pre><h3><a name="V4.61_Procedures"></a>Procedures</h3><pre>
|
|
|
1547 |
|
|
|
1548 |
Fixes bugs:
|
|
|
1549 |
- The VMS script was out of date again. (vms.mak)
|
|
|
1550 |
- CIDFont support unnecessarily required composite font support.
|
|
|
1551 |
(int.mak)
|
|
|
1552 |
- CMap and CIDFont support had improper dependencies on
|
|
|
1553 |
initialization order. (lib.mak, int.mak)
|
|
|
1554 |
- Some dependencies were missing in the JPEG library code.
|
|
|
1555 |
(jpeg.mak)
|
|
|
1556 |
|
|
|
1557 |
Adds the new JPEG driver to all standard configurations. (*.mak)
|
|
|
1558 |
|
|
|
1559 |
</pre><h3><a name="V4.61_Drivers"></a>Drivers</h3><pre>
|
|
|
1560 |
|
|
|
1561 |
Fixes bugs:
|
|
|
1562 |
- A dependency was omitted from the makefile. (devs.mak, gdevps.c)
|
|
|
1563 |
|
|
|
1564 |
Cleans up some warnings from picky compilers. Some of these actually
|
|
|
1565 |
indicated problems, such as unreachable code. (gdevpdfx.h, gdevbj10.c,
|
|
|
1566 |
gdevcdj.c, gdevpdfp.c, gdevstc.c)
|
|
|
1567 |
|
|
|
1568 |
Adds a JPEG-writing driver. Currently this only produces RGB output and
|
|
|
1569 |
only has a QFactor parameter, but eventually it could take all the other
|
|
|
1570 |
parameters of the DCTEncode filter. (devs.mak, int.mak, lib.mak,
|
|
|
1571 |
gdevjpeg.c)
|
|
|
1572 |
|
|
|
1573 |
Refactors the PDF and PostScript output drivers so that both of them
|
|
|
1574 |
understand all the relevant documented PDF distiller parameters. (The
|
|
|
1575 |
PostScript driver currently disregards nearly all of them.) (gdevpdfx.h,
|
|
|
1576 |
gdevpsdf.h, gdevvec.h, gdevpdf*.c, gdevps.c, gdevpsdf.c, gdevpx.c)
|
|
|
1577 |
|
|
|
1578 |
</pre><h3><a name="V4.61_Platforms"></a>Platforms</h3><pre>
|
|
|
1579 |
|
|
|
1580 |
Fixes bugs:
|
|
|
1581 |
- The MetroWerks C compiler gave an inexplicable error on a
|
|
|
1582 |
particular initialization. (gdevmem.h, gdevmem.c)
|
|
|
1583 |
|
|
|
1584 |
</pre><h3><a name="V4.61_Interpreter"></a>Interpreter</h3><pre>
|
|
|
1585 |
|
|
|
1586 |
Fixes bugs:
|
|
|
1587 |
- The insideness testing operators sometimes reported hits
|
|
|
1588 |
incorrectly. (zupath.c)
|
|
|
1589 |
- Mixed-type arithmetic used floats rather than doubles when
|
|
|
1590 |
converting integers, possibly leading to loss of precision. (zarith.c,
|
|
|
1591 |
zrelbit.c)
|
|
|
1592 |
- composefont was defined in a private dictionary, not in
|
|
|
1593 |
systemdict. (gs_cmap.ps)
|
|
|
1594 |
- composefont didn't work, for several different reasons.
|
|
|
1595 |
(gs_cmap.ps)
|
|
|
1596 |
- After a Type 1 font called an OtherSubr, an invalid memory access
|
|
|
1597 |
usually occurred, because of an incorrect attempt to free a data structure.
|
|
|
1598 |
(zchar1.c)
|
|
|
1599 |
- 2 .setlanguagelevel gave an error if globaldict hadn't been
|
|
|
1600 |
defined yet. (zmisc2.c)
|
|
|
1601 |
|
|
|
1602 |
Cleans up some warnings from picky compilers. Some of these actually
|
|
|
1603 |
indicated problems, such as unreachable code, or failure to check for
|
|
|
1604 |
(implausible) out-of-range data. (idict.c, idparam.c, igc.c, iinit.c,
|
|
|
1605 |
imain.c, iscan.c, zbseq.c, zchar1.c, zdps1.c)
|
|
|
1606 |
|
|
|
1607 |
Adjusts clients for a change in the internal character cache structure and
|
|
|
1608 |
the introduction of the font next-glyph procedure. (zfont.c, zfont0.c)
|
|
|
1609 |
|
|
|
1610 |
Refactors the Level 1 / Level 2 interpreter split slightly so that composite
|
|
|
1611 |
fonts don't require all of Level 2. (int.mak, gs_dps1.ps, gs_dps2.ps)
|
|
|
1612 |
|
|
|
1613 |
Adds FMapType 9 (CMap-encoded) composite font support. (int.mak,
|
|
|
1614 |
gs_cmap.ps, ifont.h, zfcmap.c, zfont.c, zfont0.c)
|
|
|
1615 |
|
|
|
1616 |
</pre><h3><a name="V4.61_Interpreter_PDF"></a>Interpreter (PDF)</h3><pre>
|
|
|
1617 |
|
|
|
1618 |
Adds recognition of /Identity values for BG, UCR, and TR functions in
|
|
|
1619 |
ExtGState resources. (General function values still aren't recognized.)
|
|
|
1620 |
(pdf_draw.ps)
|
|
|
1621 |
|
|
|
1622 |
Centralizes the handling of inherited attributes. (pdf_draw.ps,
|
|
|
1623 |
pdf_main.ps)
|
|
|
1624 |
|
|
|
1625 |
Starts to add support for Type 0 fonts. (pdf_font.ps, pdf_main.ps)
|
|
|
1626 |
|
|
|
1627 |
</pre><h3><a name="V4.61_Streams"></a>Streams</h3><pre>
|
|
|
1628 |
|
|
|
1629 |
Cleans up some warnings from picky compilers. Some of these actually
|
|
|
1630 |
indicated problems, such as unreachable code. (shc.h, scfd.c, sfilter2.c,
|
|
|
1631 |
siscale.c, stream.c)
|
|
|
1632 |
|
|
|
1633 |
</pre><h3><a name="V4.61_Library"></a>Library</h3><pre>
|
|
|
1634 |
|
|
|
1635 |
Fixes bugs:
|
|
|
1636 |
- Some picky compilers disliked certain conditional expressions.
|
|
|
1637 |
(gxclread.c)
|
|
|
1638 |
- Some picky compilers couldn't handle an extraneous semicolon.
|
|
|
1639 |
(gdevvec.h)
|
|
|
1640 |
- A cast from byte ** to const byte ** was missing. (gdevvec.c)
|
|
|
1641 |
- Resizing the levels array of a halftone order when banding could
|
|
|
1642 |
cause invalid memory accesses. (bug introduced in 4.60) (gxclread.c)
|
|
|
1643 |
- One picky compiler didn't allow taking the address of an extern
|
|
|
1644 |
undefined structure. (lib.mak, gxclread.c)
|
|
|
1645 |
- When rendering Type 1 fonts, character overshoot was usually
|
|
|
1646 |
suppressed when it shouldn't have been, often producing "squashed"
|
|
|
1647 |
characters. (gxhint1.c)
|
|
|
1648 |
- On systems where sizeof(long) > sizeof(int), coordinate values of
|
|
|
1649 |
more than 22 bits were passed through the band list incorrectly, producing
|
|
|
1650 |
incorrect output. (gxclread.c)
|
|
|
1651 |
|
|
|
1652 |
Cleans up some warnings from picky compilers. Some of these actually
|
|
|
1653 |
indicated problems, such as unreachable code or (hypothetical) loss of
|
|
|
1654 |
precision. (gsdevice.c, gshsb.c, gsht.c, gsstate.c, gstype1.c, gxclimag.c,
|
|
|
1655 |
gxclpath.c, gxclread.c, gxpdash.c)
|
|
|
1656 |
|
|
|
1657 |
Makes using font hints conditional, for debugging. (gxhint1.c)
|
|
|
1658 |
|
|
|
1659 |
Adds library-level support for FMapType 9 (CMap-encoded) composite fonts.
|
|
|
1660 |
There is still no support for rearranged fonts. (gsccode.h, gsfcmap.h,
|
|
|
1661 |
gsstruct.h, gxfcache.h, gxfcmap.h, gxfont.h, gxfont0.h, gschar.c, gschar0.c,
|
|
|
1662 |
gsfcmap.c, gsfont.c, gsfont0.c)
|
|
|
1663 |
|
|
|
1664 |
Splits band list control and utilities from rectangle-oriented commands,
|
|
|
1665 |
because a file was getting too big. (gxclist.c, gxclrect.c)
|
|
|
1666 |
|
|
|
1667 |
Moves the temporary file names for command lists from the printer device
|
|
|
1668 |
structure to the command list structure; moves opening and closing the
|
|
|
1669 |
temporary files from gdev_prn_alloc/free to clist_open/close. (gdevprn.h,
|
|
|
1670 |
gxclist.h, gdevprn.c, gxclist.c, gxclread.c)
|
|
|
1671 |
|
|
|
1672 |
Changes the command list storage implementation interface to pass the file
|
|
|
1673 |
name to the clist_rewind and clist_fseek functions, for the benefit of OSs
|
|
|
1674 |
that require closing and reopening a file to switch between reading and
|
|
|
1675 |
writing. This is a NON-BACKWARD-COMPATIBLE change in a non-public
|
|
|
1676 |
interface. (gxclio.h, gxclmem.h, gxclfile.c, gxclist.c, gxclmem.c)
|
|
|
1677 |
|
|
|
1678 |
Changes the get_outline procedure in Type 42 fonts to return the length of
|
|
|
1679 |
the outline data as well as the pointer. This is a NON-BACKWARD-COMPATIBLE
|
|
|
1680 |
change in a semi-public interface. (gxfont42.h, gstype42.c)
|
|
|
1681 |
|
|
|
1682 |
</pre>
|
|
|
1683 |
|
|
|
1684 |
<h2><a name="Version4.60"></a>Version 4.60 (limited) (3/2/97)</h2>
|
|
|
1685 |
|
|
|
1686 |
<p>
|
|
|
1687 |
This fileset moves color rendering up from the graphics state to the imager
|
|
|
1688 |
state so that color rendering can happen after banding. It also shifts
|
|
|
1689 |
image rendering to the rendering pass of banding for many common cases
|
|
|
1690 |
(often referred to inaccurately as "high-level image" capability). The
|
|
|
1691 |
changes involved are substantial and in some respects subtle, so
|
|
|
1692 |
unfortunately it is quite possible that some new bugs have been introduced.
|
|
|
1693 |
|
|
|
1694 |
<p>
|
|
|
1695 |
This fileset also includes improvements to the new PCL XL driver
|
|
|
1696 |
(pxlmono/color), and introduces an experimental PostScript driver (pswrite).
|
|
|
1697 |
|
|
|
1698 |
<h3><a name="V4.60_Documentation"></a>Documentation</h3><pre>
|
|
|
1699 |
|
|
|
1700 |
Fixes bugs:
|
|
|
1701 |
- The argument list of colorimage was incorrect. (zcolor1.c)
|
|
|
1702 |
- false .charboxpath incorrectly claimed to create the correct path
|
|
|
1703 |
even when the CTM was not well-behaved. (language.txt)
|
|
|
1704 |
- The discussion of the "main program" files was out of date.
|
|
|
1705 |
(make.txt)
|
|
|
1706 |
|
|
|
1707 |
Updates the OS/2 EMX documentation. (make.txt)
|
|
|
1708 |
|
|
|
1709 |
Modifies the Aladdin Ghostscript Free Public License slightly so it may be
|
|
|
1710 |
applied to other software packages. (PUBLIC)
|
|
|
1711 |
|
|
|
1712 |
Updates inaccurate build documentation for several Unix platforms.
|
|
|
1713 |
(make.txt, ansihead.mak, cc-head.mak, gcc-head.mak, libpng.mak)
|
|
|
1714 |
|
|
|
1715 |
Notes a problem with the MIPSpro 7.1 compiler. (make.txt)
|
|
|
1716 |
|
|
|
1717 |
</pre><h3><a name="V4.60_Procedures"></a>Procedures</h3><pre>
|
|
|
1718 |
|
|
|
1719 |
Fixes bugs:
|
|
|
1720 |
- Most makefiles didn't include version.mak. (msc.mak,
|
|
|
1721 |
msvcwint.mak, os2.mak, tctail.mak, wctail.mak)
|
|
|
1722 |
- There was an incorrect dependency for the Windows printer device.
|
|
|
1723 |
(devs.mak)
|
|
|
1724 |
|
|
|
1725 |
Moves the PDF writer to devs.mak. (devs.mak, int.mak)
|
|
|
1726 |
|
|
|
1727 |
Updates the main VMS script to be structured like version.mak. (vms.mak)
|
|
|
1728 |
|
|
|
1729 |
</pre><h3><a name="V4.60_Drivers"></a>Drivers</h3><pre>
|
|
|
1730 |
|
|
|
1731 |
Factors out the stream-writing procedures from the PDF writer, so they can
|
|
|
1732 |
be shared with the new PostScript writer. (gdevpdfs.h => gdevpstr.h,
|
|
|
1733 |
gdevpdfx.h, gdevpsdf.h, gdevpdf.c, gdevpdfi.c, gdevpdfs.c => gdevpstr.c,
|
|
|
1734 |
gdevpdft.c, gdevpsdf.c)
|
|
|
1735 |
|
|
|
1736 |
Adds a PostScript writer (pswrite), similar to the PDF and PCL XL drivers.
|
|
|
1737 |
Currently this handles fill/stroke graphics and Level 1 images; everything
|
|
|
1738 |
else (including text) is turned into bitmaps. (devs.mak, gdevps.c)
|
|
|
1739 |
|
|
|
1740 |
Changes the names of the PCL XL drivers from hpxmono/color to pxlmono/color.
|
|
|
1741 |
(devs.mak, gdevpx.c)
|
|
|
1742 |
|
|
|
1743 |
Updates the "vector" device support interface. THIS IS STILL SUBJECT TO
|
|
|
1744 |
CHANGE WITHOUT NOTICE. (gdevvec.h, gdevpx.c, gdevvec.c)
|
|
|
1745 |
|
|
|
1746 |
Makes the vgalib driver a page device. This seems bizarre, but it's
|
|
|
1747 |
necessary for setpagedevice to work with it. (gdevvglb.c)
|
|
|
1748 |
|
|
|
1749 |
Updates some drivers for the new color mapping interfaces. (gdevpx.c)
|
|
|
1750 |
|
|
|
1751 |
Updates the user-contributed Canon LBP-8II and LIPS III driver.
|
|
|
1752 |
(gdevlbp8.c)
|
|
|
1753 |
|
|
|
1754 |
</pre><h3><a name="V4.60_Platforms"></a>Platforms</h3><pre>
|
|
|
1755 |
|
|
|
1756 |
Fixes bugs:
|
|
|
1757 |
- The workaround for Ultrix's incorrect implementation of sh -e
|
|
|
1758 |
still didn't work. (unixtail.mak)
|
|
|
1759 |
- The definition of offset_of didn't work on the Mac. (stdpre.h)
|
|
|
1760 |
|
|
|
1761 |
Updates the OS/2 EMX linker command per input from a user. (os2.mak)
|
|
|
1762 |
|
|
|
1763 |
</pre><h3><a name="V4.60_Fonts"></a>Fonts</h3><pre>
|
|
|
1764 |
|
|
|
1765 |
Adds .pss (apparently used by Adobe for Multiple Master font instances) to
|
|
|
1766 |
the list of extensions skipped by the GS_FONTPATH directory scanner.
|
|
|
1767 |
(gs_fonts.ps)
|
|
|
1768 |
|
|
|
1769 |
</pre><h3><a name="V4.60_Interpreter"></a>Interpreter</h3><pre>
|
|
|
1770 |
|
|
|
1771 |
Fixes bugs:
|
|
|
1772 |
- Programs that rebind null, true, and/or false could cause all
|
|
|
1773 |
kinds of problems. We've only fixed a couple of the places that might be
|
|
|
1774 |
affected (findfont, quit), by wrapping an explicit "systemdict begin/end"
|
|
|
1775 |
around the code; fixing this completely would probably require wrapping this
|
|
|
1776 |
implicitly around almost every pseudo-operator, which would be too
|
|
|
1777 |
expensive. (gs_fonts.ps, gs_lev2.ps)
|
|
|
1778 |
- In a Level 2 system, grestoreall stopped one level too early.
|
|
|
1779 |
(zdevice2.c)
|
|
|
1780 |
- setpagedevice didn't restore the stack properly if it got an
|
|
|
1781 |
error. (gs_setpd.ps)
|
|
|
1782 |
|
|
|
1783 |
Changes the GC pointer enumeration interface to reduce the number of
|
|
|
1784 |
'discarding const' warnings. See under Library below. (igc.c)
|
|
|
1785 |
|
|
|
1786 |
Updates the interpreter for the change in the imager / graphics state split.
|
|
|
1787 |
(zpcolor.c)
|
|
|
1788 |
|
|
|
1789 |
Makes the stack-restoring behavior of pseudo-operators non-optional.
|
|
|
1790 |
(interp.c)
|
|
|
1791 |
|
|
|
1792 |
</pre><h3><a name="V4.60_Interpreter_PDF"></a>Interpreter (PDF)</h3><pre>
|
|
|
1793 |
|
|
|
1794 |
Fixes bugs:
|
|
|
1795 |
- PDFDocEncoding and WinAnsiEncoding incorrectly had `minus' at
|
|
|
1796 |
position 45 rather than `hyphen'. (gs_pdf_e.ps, gs_wan_e.ps)
|
|
|
1797 |
|
|
|
1798 |
</pre><h3><a name="V4.60_Streams"></a>Streams</h3><pre>
|
|
|
1799 |
|
|
|
1800 |
Fixes bugs:
|
|
|
1801 |
- A header file wasn't protected against double inclusion.
|
|
|
1802 |
(stream.h)
|
|
|
1803 |
- any_abs was redefined. (spngp.c)
|
|
|
1804 |
- The CCITTFaxDecode filter didn't fully initialize the "previous
|
|
|
1805 |
line" for 2-D decoding, so if the very first line of data was 2-D, an
|
|
|
1806 |
out-of-bounds memory access could occur. (scfd.c)
|
|
|
1807 |
|
|
|
1808 |
</pre><h3><a name="V4.60_Library"></a>Library</h3><pre>
|
|
|
1809 |
|
|
|
1810 |
Fixes bugs:
|
|
|
1811 |
- gs_image_next could read too much data, causing errors at the
|
|
|
1812 |
interpreter level. (gsimage.c)
|
|
|
1813 |
- The bitmaps stored in the Pattern cache were usually freed,
|
|
|
1814 |
leaving dangling pointers. (gsdcolor.h, gxpcache.h, gxpcolor.h, gsstate.c,
|
|
|
1815 |
gxpcmap.c)
|
|
|
1816 |
- There was still one assignment to a const structure, and there
|
|
|
1817 |
were some unnecessary const-discarding casts. (gxclread.c)
|
|
|
1818 |
- If a character in a Type 3 font was defined by executing 'show'
|
|
|
1819 |
type commands, charpath did the wrong thing (didn't pick up the paths
|
|
|
1820 |
created by the inner show). Similarly, if it uses 'stroke', true charpath
|
|
|
1821 |
did the wrong thing (appended the path rather than the strokepath path).
|
|
|
1822 |
(gxchar.h, gschar.c, gspaint.c)
|
|
|
1823 |
- A header file wasn't protected against double inclusion.
|
|
|
1824 |
(gserror.h)
|
|
|
1825 |
- The new fast implementation of rectfill didn't handle rectangles
|
|
|
1826 |
with negative width/height. (bug introduced in 4.32) (gsdps1.c)
|
|
|
1827 |
- Reading banded high-level images calculated the image height
|
|
|
1828 |
incorrectly, (usually) causing a rangecheck. (gxclread.c)
|
|
|
1829 |
- When reading band data, a memory fault could occur if the halftone
|
|
|
1830 |
cache hadn't been allocated yet. (gxht.c)
|
|
|
1831 |
- The imager state data for high-level images wasn't written soon
|
|
|
1832 |
enough. (gxclimag.c)
|
|
|
1833 |
- High-level images computed bounding boxes incorrectly, so they
|
|
|
1834 |
could write some garbage data in the band list, and could also fail to write
|
|
|
1835 |
some information. (gsmatrix.h, gxmatrix.h, gxclimag.c)
|
|
|
1836 |
- High-level images wrote the raster value incorrectly in the band
|
|
|
1837 |
list. (gxclimag.c)
|
|
|
1838 |
- Images with non-zero initial source X and non-portrait orientation
|
|
|
1839 |
were displaced on the page. (In practice, this only applied to some banded
|
|
|
1840 |
high-level images.) (gximage.c)
|
|
|
1841 |
- The bounding box device didn't forward output_page calls, causing
|
|
|
1842 |
pages to be dropped or overprinted. (gdevbbox.c)
|
|
|
1843 |
- The band renderer considered all non-zero return codes as errors,
|
|
|
1844 |
rather than only negative codes. (gxclread.c)
|
|
|
1845 |
- An unnecessary extern hadn't been removed. (gxclimag.c)
|
|
|
1846 |
- Some macros didn't parenthesize uses of their arguments, causing
|
|
|
1847 |
syntax errors. (gsrefct.h)
|
|
|
1848 |
- The screen phase and color_info weren't set correctly when
|
|
|
1849 |
rendering bands. (gsstate.h, gsht.c, gxclread.c)
|
|
|
1850 |
- A header file didn't declare all the opaque types it used.
|
|
|
1851 |
(gsdevice.h)
|
|
|
1852 |
- Indexed color spaces didn't work with banded images. (They still
|
|
|
1853 |
don't -- the check for writing the color space, and the code for reading the
|
|
|
1854 |
table or map, are incomplete.) (gxclist.h, gxclpath.h, gxclimag.c,
|
|
|
1855 |
gxclpath.c, gxclread.c)
|
|
|
1856 |
|
|
|
1857 |
In preparation for implementing post-banding halftoning:
|
|
|
1858 |
|
|
|
1859 |
- Moves color rendering information, including alpha value, from
|
|
|
1860 |
graphics state to imager state; also moves the allocator pointer. This is
|
|
|
1861 |
quite a subtle change, and may have a significant bug tail. (gxdcolor.h,
|
|
|
1862 |
gxht.h, gxistate.h, gzstate.h, gschar.c, gsdps1.c, gspaint.c, gsstate.c,
|
|
|
1863 |
gxclread.c)
|
|
|
1864 |
|
|
|
1865 |
- Changes all the relevant color space and color mapping procedures
|
|
|
1866 |
so they take a const gs_imager_state * (and, in some cases, a [const]
|
|
|
1867 |
gx_device *) instead of a const gs_state *. This is a
|
|
|
1868 |
non-backward-compatible change, but it only affects internal interfaces.
|
|
|
1869 |
(gsdcolor.h, gxcmap.h, gxcspace.h, gxdcconv.h, gxdcolor.h, gxdither.h,
|
|
|
1870 |
gxpcolor.h, gzht.h, gschar.c, gscie.c, gscolor.c, gscolor1.c, gscolor2.c,
|
|
|
1871 |
gscsepr.c, gsdevice.c, gsimage.c, gspcolor.c, gxcht.c, gxcmap.c, gxdcconv.c,
|
|
|
1872 |
gxdcolor.c, gxht.c, gximage.c, gximage[2345].c, gxpcmap.c)
|
|
|
1873 |
|
|
|
1874 |
- Changes the color and color space reference count adjustment
|
|
|
1875 |
procedures similarly, to take a gs_memory_t * instead of a gs_state_t *.
|
|
|
1876 |
(gxcspace.h, gscie.c, gscolor.c, gscolor2.c, gscsepr.c, gspcolor.c)
|
|
|
1877 |
|
|
|
1878 |
- Changes the gs_halftone in the graphics state from being part of
|
|
|
1879 |
the gs_state_contents to being an independent reference-counted object.
|
|
|
1880 |
This too may have a significant bug tail. (gxht.h, gxistate.h, gsht.c,
|
|
|
1881 |
gsstate.c)
|
|
|
1882 |
|
|
|
1883 |
- Changes the image processing code so it no longer assumes that the
|
|
|
1884 |
gs_imager_state is actually a gs_state. (gximage.h, gximage.c, gximage2.c,
|
|
|
1885 |
gximage3.c, gximage4.c, gximage5.c)
|
|
|
1886 |
|
|
|
1887 |
- Adds a unique ID value to device halftones, so that it's possible
|
|
|
1888 |
to detect (non-)changes quickly. (gxdht.h, gsht.c)
|
|
|
1889 |
|
|
|
1890 |
Finishes the code for writing and reading color rendering information in the
|
|
|
1891 |
band list. This involves changes to several band list opcodes. (gsht.h,
|
|
|
1892 |
gsht1.h, gxcldev.h, gxclist.h, gxclpath.h, gxdht.h, gzht.h, gsht.c, gsht1.c,
|
|
|
1893 |
gxclbits.c, gxclimag.c, gxclist.c, gxclread.c)
|
|
|
1894 |
|
|
|
1895 |
Changes the garbage collector pointer enumeration procedure interface
|
|
|
1896 |
slightly to reduce the number of 'discarding const' warnings. THIS IS A
|
|
|
1897 |
NON-BACKWARD-COMPATIBLE CHANGE for anyone who didn't use the
|
|
|
1898 |
ENUM_PTRS_BEGIN[_PROC] macro to start a pointer enumeration procedure (which
|
|
|
1899 |
should be no one). (gsstruct.h, gsmemory.c)
|
|
|
1900 |
|
|
|
1901 |
Corrects a few more needlessly const-discarding casts. (gxfcache.h,
|
|
|
1902 |
gxccache.c)
|
|
|
1903 |
|
|
|
1904 |
Checks for file reading errors when rasterizing bands. (gxclread.c)
|
|
|
1905 |
|
|
|
1906 |
</pre>
|
|
|
1907 |
|
|
|
1908 |
<hr>
|
|
|
1909 |
|
|
|
1910 |
<h2><a name="Version4.51"></a>Version 4.51 (limited) (2/9/97)</h2>
|
|
|
1911 |
|
|
|
1912 |
<p>
|
|
|
1913 |
This version contains a more reasonable high-level PCL XL driver. The VMS
|
|
|
1914 |
build script is working again, we think.
|
|
|
1915 |
|
|
|
1916 |
<h3><a name="V4.51_Procedures"></a>Procedures</h3><pre>
|
|
|
1917 |
|
|
|
1918 |
Fixes bugs:
|
|
|
1919 |
- The gsdll_h macro wasn't defined all the places it was needed.
|
|
|
1920 |
(devs.mak, os2.mak)
|
|
|
1921 |
|
|
|
1922 |
</pre><h3><a name="V4.51_Drivers"></a>Drivers</h3><pre>
|
|
|
1923 |
|
|
|
1924 |
Continues to develop the "vector" driver infrastructure and the PCL XL
|
|
|
1925 |
driver. EVERYTHING IN THESE FILES IS SUBJECT TO CHANGE WITHOUT NOTICE.
|
|
|
1926 |
(gdevvec.h, gdevvec.c)
|
|
|
1927 |
|
|
|
1928 |
Brings the PCL XL driver up to usable quality for graphics. Most
|
|
|
1929 |
fill/stroke graphics, and portrait-orientation bitmap images up to 8 bits
|
|
|
1930 |
per pixel, are converted directly to their PCL XL equivalents. Text is
|
|
|
1931 |
still treated as bitmaps. Both gray-scale and color output are now
|
|
|
1932 |
supported. (devs.mak, gdevpx.c)
|
|
|
1933 |
|
|
|
1934 |
</pre><h3><a name="V4.51_Platforms"></a>Platforms</h3><pre>
|
|
|
1935 |
|
|
|
1936 |
Fixes bugs:
|
|
|
1937 |
- When using gsos2.exe with gsdll2.dll, reducing the size of the
|
|
|
1938 |
page bitmap caused a limitcheck error with the message
|
|
|
1939 |
Failed to decommit memory in pm_alloc_bitmap, rc = 87 (gdevpm.c)
|
|
|
1940 |
- The scripts that construct gconfig_.h failed on Ultrix, because
|
|
|
1941 |
Ultrix's implementation of sh -e is incorrect. (unixtail.mak, ugcclib.mak)
|
|
|
1942 |
- Some systems that have sys/times.h don't define CLK_TCK, making a
|
|
|
1943 |
compilation fail. (time_.h)
|
|
|
1944 |
|
|
|
1945 |
</pre><h3><a name="V4.51_Interpreter"></a>Interpreter</h3><pre>
|
|
|
1946 |
|
|
|
1947 |
Fixes bugs:
|
|
|
1948 |
- An omitted semicolon wasn't detected by gcc. (idict.c)
|
|
|
1949 |
|
|
|
1950 |
Removes a source of unnecessary duplication by getting the revision number
|
|
|
1951 |
and date from version.mak. (gs.mak, int.mak, version.mak, gscdef.c)
|
|
|
1952 |
|
|
|
1953 |
</pre><h3><a name="V4.51_Streams"></a>Streams</h3><pre>
|
|
|
1954 |
|
|
|
1955 |
Fixes bugs:
|
|
|
1956 |
- The minimum buffer sizes for the RunLengthDecode filter hadn't
|
|
|
1957 |
been changed to reflect the algorithm improvement made in release 4.38.
|
|
|
1958 |
(srld.c)
|
|
|
1959 |
|
|
|
1960 |
Changes the RunLengthEncode filter so it can make progress with only a
|
|
|
1961 |
2-byte output buffer. (srlx.h, srle.c)
|
|
|
1962 |
|
|
|
1963 |
</pre><h3><a name="V4.51_Library"></a>Library</h3><pre>
|
|
|
1964 |
|
|
|
1965 |
Fixes bugs:
|
|
|
1966 |
- Because of a typo, the slow general algorithm was always used for
|
|
|
1967 |
monochrome images. (Performance bug only, but a serious one.) (gximage2.c)
|
|
|
1968 |
- Dots (zero-length lines with round caps and zero dot length)
|
|
|
1969 |
caused an infinite loop. (bug introduced in 4.40) (gxstroke.c)
|
|
|
1970 |
- Some image data unpacking procedures were always required, but
|
|
|
1971 |
weren't always included. (bug introduced in 4.50) (gximage.c, gximage0.c,
|
|
|
1972 |
gximage3.c)
|
|
|
1973 |
- Images with 8 bits per pixel and non-identity Decode produced
|
|
|
1974 |
garbage. (bug introduced later than 4.03) (gximage0.c)
|
|
|
1975 |
- Some necessary casts and omitted punctuation weren't detected by
|
|
|
1976 |
gcc. (gxpath.h, gsargs.c, gsstate.c, gxclread.c, gxpdash.c)
|
|
|
1977 |
- The band list became confused if a band had no commands at all.
|
|
|
1978 |
(gxclread.c)
|
|
|
1979 |
- If a path included a closepath followed by a moveto to the same
|
|
|
1980 |
point, it could be written incorrectly in the band list. (bug probably
|
|
|
1981 |
introduced in 3.60) (gxclpath.c)
|
|
|
1982 |
|
|
|
1983 |
Changes some internal computations for arcs from float to double for greater
|
|
|
1984 |
accuracy. (gspath1.c)
|
|
|
1985 |
|
|
|
1986 |
</pre>
|
|
|
1987 |
|
|
|
1988 |
<h2><a name="Version4.50"></a>Version 4.50 (limited) (1/31/97)</h2>
|
|
|
1989 |
|
|
|
1990 |
<p>
|
|
|
1991 |
This release contains an experimental high-level PCL XL driver, a little
|
|
|
1992 |
more support for CID/CMap fonts, and the usual bug fixes. NOTE: the VMS
|
|
|
1993 |
build script is known to be out of sync with the makefiles again; we still
|
|
|
1994 |
don't see any alternative to constant struggles with this problem.
|
|
|
1995 |
|
|
|
1996 |
<h3><a name="V4.50_Documentation"></a>Documentation</h3><pre>
|
|
|
1997 |
|
|
|
1998 |
Corrects the -h message, which gave an incorrect file name for the bug
|
|
|
1999 |
report form. (imainarg.c)
|
|
|
2000 |
|
|
|
2001 |
Removes documentation for 16-bit MS-DOS platforms with the Borland compiler.
|
|
|
2002 |
(fonts.txt, make.txt, new-user.txt, use.txt)
|
|
|
2003 |
|
|
|
2004 |
</pre><h3><a name="V4.50_Procedures"></a>Procedures</h3><pre>
|
|
|
2005 |
|
|
|
2006 |
Fixes bugs:
|
|
|
2007 |
- The Watcom library makefile didn't define the directory
|
|
|
2008 |
information for libpng and zlib. (watclib.mak)
|
|
|
2009 |
|
|
|
2010 |
Moves the selection of band list implementation (file- vs. RAM-based) and
|
|
|
2011 |
the compression filter for RAM-based band lists up to the top-level
|
|
|
2012 |
makefiles. Again, this is a NON-BACKWARD-COMPATIBLE procedure change.
|
|
|
2013 |
(lib.mak, *.mak)
|
|
|
2014 |
|
|
|
2015 |
Moves the selection of version number for all platforms (except VMS, as
|
|
|
2016 |
usual) to a separate file. This will reduce the number of files that need
|
|
|
2017 |
editing when the version number changes. (ansihead.mak, cc-head.mak,
|
|
|
2018 |
gcc-head.mak, ugcclib.mak, version.mak, tar_cat)
|
|
|
2019 |
|
|
|
2020 |
</pre><h3><a name="V4.50_Drivers"></a>Drivers</h3><pre>
|
|
|
2021 |
|
|
|
2022 |
Fixes bugs:
|
|
|
2023 |
- An error in the (unsupported) SGI RGB driver could cause crashes
|
|
|
2024 |
or incorrect output. (gdevsgi.c)
|
|
|
2025 |
|
|
|
2026 |
Starts to create a framework for structured output ("vector") drivers (PDF,
|
|
|
2027 |
PostScript, PCL XL, etc.) (gdevbbox.h, gdevvec.h, gsdcolor.h, gsstruct.h,
|
|
|
2028 |
gxdevice.h, gdevvec.c)
|
|
|
2029 |
|
|
|
2030 |
Moves default page size parameters to a more accessible header. (gdevprn.h,
|
|
|
2031 |
gxdevice.h, gdevx.c)
|
|
|
2032 |
|
|
|
2033 |
Adds a driver that produces properly structured PCL XL output. This is
|
|
|
2034 |
highly experimental and not ready for use yet. (gdevpx.c)
|
|
|
2035 |
|
|
|
2036 |
</pre><h3><a name="V4.50_Platforms"></a>Platforms</h3><pre>
|
|
|
2037 |
|
|
|
2038 |
Removes support for 16-bit MS-DOS platforms with the Borland compiler. For
|
|
|
2039 |
the moment, 16-bit MS Windows is still supported. (bc.mak, bcflags.mak,
|
|
|
2040 |
bclib.mak, tc.mak)
|
|
|
2041 |
|
|
|
2042 |
</pre><h3><a name="V4.50_Interpreter"></a>Interpreter</h3><pre>
|
|
|
2043 |
|
|
|
2044 |
Fixes bugs:
|
|
|
2045 |
- File-based CIDFonts (with delayed, incremental loading of
|
|
|
2046 |
character outlines) didn't work. (gs_cidfn.ps)
|
|
|
2047 |
|
|
|
2048 |
Finishes implementing the definition of CMap resources, except for
|
|
|
2049 |
rearranged fonts. (gs_cidfn.ps, gs_cmap.ps)
|
|
|
2050 |
|
|
|
2051 |
Adds a little more CMap support code. (zcid.c)
|
|
|
2052 |
|
|
|
2053 |
Removes the .setcurrentfile operator, since it doesn't solve the problem it
|
|
|
2054 |
was intended to address. (zcontrol.c)
|
|
|
2055 |
|
|
|
2056 |
Adapts the interpreter to use the new argument processing code.
|
|
|
2057 |
(imainarg.c)
|
|
|
2058 |
|
|
|
2059 |
</pre><h3><a name="V4.50_Streams"></a>Streams</h3><pre>
|
|
|
2060 |
|
|
|
2061 |
Fixes bugs:
|
|
|
2062 |
- The CCITTFaxDecode filter could access as much as 3 bytes beyond
|
|
|
2063 |
the end of a buffer, causing an invalid memory access. (This is essentially
|
|
|
2064 |
the same bug that was fixed for the CCITTFaxEncode filter in 4.38.)
|
|
|
2065 |
(scfd.c)
|
|
|
2066 |
|
|
|
2067 |
</pre><h3><a name="V4.50_Library"></a>Library</h3><pre>
|
|
|
2068 |
|
|
|
2069 |
Fixes bugs:
|
|
|
2070 |
- Painting an image without having set up any halftone could cause a
|
|
|
2071 |
crash. (gxht.c)
|
|
|
2072 |
- In a very obscure case, an occasional scan line of landscape
|
|
|
2073 |
images could get corrupted. (gximage0.c)
|
|
|
2074 |
- Because of a rounding error, patterns could fail to be painted in
|
|
|
2075 |
certain cases. (gxpcolor.h, gspcolor.c, gxpcmap.c)
|
|
|
2076 |
- Very large line widths or miter limits could cause the computation
|
|
|
2077 |
of stroke expansion to overflow. (gxpaint.h, gdevbbox.c, gxclpath.c,
|
|
|
2078 |
gxstroke.c)
|
|
|
2079 |
- The phase could be incorrect for simple patterns. (gspcolor.c)
|
|
|
2080 |
- The default implementation of copy_mono used an incorrect
|
|
|
2081 |
RasterOp. (gdevdflt.c)
|
|
|
2082 |
- The default implementation of fill_masked didn't increment the row
|
|
|
2083 |
pointer, causing characters to appear as solid rectangular blocks.
|
|
|
2084 |
(gxdcolor.c)
|
|
|
2085 |
|
|
|
2086 |
Eliminates an unnecessary gsave and grestore from rectfill and rectstroke if
|
|
|
2087 |
the path was null. (gsdps1.c)
|
|
|
2088 |
|
|
|
2089 |
Adds a limit on the amount of space that the default (C heap) allocator will
|
|
|
2090 |
allocate, and a record of the maximum amount allocated, to help testing
|
|
|
2091 |
embedded products. (gsmemory.c)
|
|
|
2092 |
|
|
|
2093 |
Changes the band list algorithm for deciding how many replicas of a halftone
|
|
|
2094 |
tile to store in the tile cache. The previous algorithm was too liberal,
|
|
|
2095 |
which could cause the cache to overflow and many unnecessary bitmaps to be
|
|
|
2096 |
written in the band list. (gxclbits.c)
|
|
|
2097 |
|
|
|
2098 |
Writes clipping with a rectangle more compactly in the band list.
|
|
|
2099 |
(gxfixed.h, gxclpath.c)
|
|
|
2100 |
|
|
|
2101 |
Adds new band list commands for representing 90- and 180-degree arcs
|
|
|
2102 |
compactly. (gxclpath.h, gxclpath.c, gxclread.c)
|
|
|
2103 |
|
|
|
2104 |
Repackages handling of general monochrome images, color images, and 12-bit
|
|
|
2105 |
and interpolated images, so that they are included optionally rather than in
|
|
|
2106 |
all configurations. (int.mak, lib.mak, gximage.h, gximage.c,
|
|
|
2107 |
gximage[12345].c)
|
|
|
2108 |
|
|
|
2109 |
Changes the structure definition for devices to include no-op pointer
|
|
|
2110 |
enumeration and relocation, so they can have subclasses. (gxdevice.h)
|
|
|
2111 |
|
|
|
2112 |
Adds a library facility for processing command line arguments with
|
|
|
2113 |
@-expansion. (gsargs.h, gsargs.c)
|
|
|
2114 |
|
|
|
2115 |
</pre>
|
|
|
2116 |
|
|
|
2117 |
<hr>
|
|
|
2118 |
|
|
|
2119 |
<h2><a name="Version4.41"></a>Version 4.41 (private) (1/21/97)</h2>
|
|
|
2120 |
|
|
|
2121 |
<p>
|
|
|
2122 |
This release adds a PCL XL output driver, and a few performance
|
|
|
2123 |
improvements.
|
|
|
2124 |
|
|
|
2125 |
<h3><a name="V4.41_Procedures"></a>Procedures</h3><pre>
|
|
|
2126 |
|
|
|
2127 |
Fixes bugs:
|
|
|
2128 |
- The zlib library used an incorrect header file when compiling.
|
|
|
2129 |
(zlib.mak)
|
|
|
2130 |
|
|
|
2131 |
Changes the names of the preprocessor symbols indicating the presence of
|
|
|
2132 |
system header files to be consistent with the ones used by GNU configure.
|
|
|
2133 |
(dvx-tail.mak, ugcclib.mak, unixtail.mak, vms.mak; dirent_.h, time_.h;
|
|
|
2134 |
gp_unix.c)
|
|
|
2135 |
|
|
|
2136 |
Changes the method for choosing the compression filter for RAM-based band
|
|
|
2137 |
lists. This is a NON-BACKWARD-COMPATIBLE change in the makefile. (lib.mak)
|
|
|
2138 |
|
|
|
2139 |
</pre><h3><a name="V4.41_Drivers"></a>Drivers</h3><pre>
|
|
|
2140 |
|
|
|
2141 |
Adds black-and-white and 8-bit gray PCL XL (PCL 6) drivers for the LaserJet
|
|
|
2142 |
5 and 6 family. This driver is extremely simple and just emits bitmaps;
|
|
|
2143 |
future drivers will use more PCL XL high-level constructs. (gdevlj56.c)
|
|
|
2144 |
|
|
|
2145 |
</pre><h3><a name="V4.41_Fonts"></a>Fonts</h3><pre>
|
|
|
2146 |
|
|
|
2147 |
Updates the free font distribution to add the URW Grotesk and Antiqua fonts.
|
|
|
2148 |
|
|
|
2149 |
</pre><h3><a name="V4.41_Interpreter"></a>Interpreter</h3><pre>
|
|
|
2150 |
|
|
|
2151 |
Fixes bugs:
|
|
|
2152 |
- gs -h and -v returned with a non-zero exit code on all platforms.
|
|
|
2153 |
(This is necessary under Windows, to keep the message visible on the screen,
|
|
|
2154 |
but nowhere else.) (imainarg.c)
|
|
|
2155 |
- Resizing a dictionary could exceed dict_max_size, causing memory
|
|
|
2156 |
corruption. (dstack.h, idict.h, idict.c, zdict.c)
|
|
|
2157 |
|
|
|
2158 |
Adds .setlinecap and .setlinejoin that can use the extended range of line
|
|
|
2159 |
cap/join values, and redefines setlinecap and setlinejoin in terms of them.
|
|
|
2160 |
(gs_init.ps, zgstate.c)
|
|
|
2161 |
|
|
|
2162 |
</pre><h3><a name="V4.41_Streams"></a>Streams</h3><pre>
|
|
|
2163 |
|
|
|
2164 |
Fixes bugs:
|
|
|
2165 |
- The CCITTFaxDecode filter with EncodedByteAlign = true skipped to
|
|
|
2166 |
a byte boundary before checking for an EOL. This may be wrong if EndOfLine
|
|
|
2167 |
= true; we aren't at all sure what should happen if EndOfLine = false.
|
|
|
2168 |
(scfd.c)
|
|
|
2169 |
|
|
|
2170 |
Adds a "no wrapper" option to the zlib streams, to optionally suppress the
|
|
|
2171 |
time-consuming integrity checksum computation. (szlibx.h, szlibc.c,
|
|
|
2172 |
szlibd.c, szlibe.c)
|
|
|
2173 |
|
|
|
2174 |
</pre><h3><a name="V4.41_Library"></a>Library</h3><pre>
|
|
|
2175 |
|
|
|
2176 |
Fixes bugs:
|
|
|
2177 |
- Dashed lines with zero-length drawn segments (dots) that fell
|
|
|
2178 |
exactly on a corner produced inappropriate output. (pcl/test19.pxs)
|
|
|
2179 |
(gxpdash.c, gxstroke.c)
|
|
|
2180 |
- Dashed lines didn't set the segment notes properly. (gxpdash.c)
|
|
|
2181 |
- The bounding box device didn't free a bookkeeping structure at the
|
|
|
2182 |
end of processing an image. (gdevbbox.c)
|
|
|
2183 |
- Curve points could get computed incorrectly when using emulated
|
|
|
2184 |
floating point. (gxpcopy.c)
|
|
|
2185 |
- The 1-element cache for curve_x_at_y didn't work if Y was
|
|
|
2186 |
decreasing. (gxfixed.h, gxpcopy.c)
|
|
|
2187 |
|
|
|
2188 |
Distinguishes between error and informational exits. (stdpre.h)
|
|
|
2189 |
|
|
|
2190 |
Defines and checks maximum values for line cap and join parameters.
|
|
|
2191 |
(gslparam.h, gsline.c)
|
|
|
2192 |
|
|
|
2193 |
Removes the 'not last' segment note, since it is not used for anything.
|
|
|
2194 |
(gxpath.h, gspath1.c, gxpath2.c, gxpcopy.c, gxpflat.c, gxstroke.c)
|
|
|
2195 |
|
|
|
2196 |
Changes the memory freeing algorithm for RAM-based band lists back to the
|
|
|
2197 |
original one, since the "improved" one had more bugs than it was worth
|
|
|
2198 |
chasing. (gxclmem.c)
|
|
|
2199 |
|
|
|
2200 |
Speeds up the A * B / C algorithm a little. (gsmisc.c)
|
|
|
2201 |
|
|
|
2202 |
Speeds up curve_x_at_y by recognizing more cases that don't require the slow
|
|
|
2203 |
A * B / C algorithm. (gxpcopy.c)
|
|
|
2204 |
|
|
|
2205 |
Changes the path filling code so it uses fill-by-trapezoids even if
|
|
|
2206 |
fill_adjust is zero, as long as the flatness is at least 1 pixel.
|
|
|
2207 |
(gxfill.c)
|
|
|
2208 |
|
|
|
2209 |
Removes the (unneeded) floating point operations from gx_curve_log2_samples.
|
|
|
2210 |
(gxpflat.c)
|
|
|
2211 |
|
|
|
2212 |
Changes the memory-based implementation of band lists so that it constructs
|
|
|
2213 |
the compressor and decompressor by calling procedures rather than
|
|
|
2214 |
instantiating templates: this allows setting filter parameters to
|
|
|
2215 |
non-default values. (gxclmem.h, gxcllzw.c, gxclmem.c, gxclzlib.c)
|
|
|
2216 |
|
|
|
2217 |
</pre>
|
|
|
2218 |
|
|
|
2219 |
<h2><a name="Version4.40"></a>Version 4.40 (private) (1/13/97)</h2>
|
|
|
2220 |
|
|
|
2221 |
<p>
|
|
|
2222 |
This version finally handles the last graphics model discrepancies between
|
|
|
2223 |
PostScript and PCL, by correctly implementing null joins, minimum dot
|
|
|
2224 |
lengths, and tangent-aligned curve ends. It also contains some significant
|
|
|
2225 |
performance improvements, and as usual a few bug fixes.
|
|
|
2226 |
|
|
|
2227 |
<h3><a name="V4.40_Documentation"></a>Documentation</h3><pre>
|
|
|
2228 |
|
|
|
2229 |
Documents the new accurate curves and path dashing operators.
|
|
|
2230 |
(language.txt)
|
|
|
2231 |
|
|
|
2232 |
</pre><h3><a name="V4.40_Utilities"></a>Utilities</h3><pre>
|
|
|
2233 |
|
|
|
2234 |
Adds switches for genconf to set and unset a prefix for file names.
|
|
|
2235 |
(genconf.c)
|
|
|
2236 |
|
|
|
2237 |
</pre><h3><a name="V4.40_Drivers"></a>Drivers</h3><pre>
|
|
|
2238 |
|
|
|
2239 |
Adds recognition of the new Distiller 3.0 parameters to the PDF writer.
|
|
|
2240 |
(None of them have any effect yet.) (gs_pdfwr.ps, gdevpdfx.h, gdevpdf.c,
|
|
|
2241 |
gdevpdfp.c)
|
|
|
2242 |
|
|
|
2243 |
Converts all the output functions in the PDF writer from being file-based to
|
|
|
2244 |
using streams, in anticipation of adding compression. (gdevpdfs.h,
|
|
|
2245 |
gdevpdfx.h, gdevpdf*.c, gdevpdfs.c)
|
|
|
2246 |
|
|
|
2247 |
</pre><h3><a name="V4.40_Interpreter"></a>Interpreter</h3><pre>
|
|
|
2248 |
|
|
|
2249 |
Adds operators for accessing the new accurate curves flag in the graphics
|
|
|
2250 |
state. (zgstate.c)
|
|
|
2251 |
|
|
|
2252 |
Adds an operator for invoking gs_dashpath. (zpath1.c)
|
|
|
2253 |
|
|
|
2254 |
</pre><h3><a name="V4.40_Interpreter_PDF"></a>Interpreter (PDF)</h3><pre>
|
|
|
2255 |
|
|
|
2256 |
Fixes bugs:
|
|
|
2257 |
- Indexed color spaces whose base space was a CIE space caused an
|
|
|
2258 |
error. (pdf_draw.ps)
|
|
|
2259 |
|
|
|
2260 |
</pre><h3><a name="V4.40_Library"></a>Library</h3><pre>
|
|
|
2261 |
|
|
|
2262 |
Fixes bugs:
|
|
|
2263 |
- A pointer was declared const incorrectly. (gxcpath.c)
|
|
|
2264 |
- Filling with a pattern often failed to pass a non-null bitmap ID,
|
|
|
2265 |
causing excessive writing in the band list. (Performance bug only.)
|
|
|
2266 |
(gspcolor.c)
|
|
|
2267 |
- The bounding box device didn't discount copy_mono or draw_line
|
|
|
2268 |
operations drawing in white. (gdevbbox.c)
|
|
|
2269 |
- The bounding box device didn't read out the bounding box correctly
|
|
|
2270 |
as the PageBoundingBox device parameter. (It did return it correctly
|
|
|
2271 |
through the gx_device_bbox_bbox procedure.) (gdevbbox.c)
|
|
|
2272 |
- The default implementation of fill_triangle drew nothing or
|
|
|
2273 |
incorrect output if the corners of the triangle were specified in certain
|
|
|
2274 |
orders (ax < 0 or bx < 0) (i.e., the previous "fix" had a bug).
|
|
|
2275 |
(gdevddrw.c)
|
|
|
2276 |
|
|
|
2277 |
Changes tile size from always being set in all bands to being 'known' by
|
|
|
2278 |
bands individually. (gxclist.h, gxcldev.h, gxclbits.c, gxclist.c)
|
|
|
2279 |
|
|
|
2280 |
Computes an additional value in advance when rendering images. (gximage.h,
|
|
|
2281 |
gximage1.c, gximage2.c)
|
|
|
2282 |
|
|
|
2283 |
Replaces some slow loops with calls of memmove. (gxclmem.c)
|
|
|
2284 |
|
|
|
2285 |
Provides a fixed-point implementation of A * B / C for machines with slow
|
|
|
2286 |
floating point. (gxfixed.h, gsmisc.c)
|
|
|
2287 |
|
|
|
2288 |
Extends the "device color" type to implement filling masked regions as well
|
|
|
2289 |
as rectangles. (gxdcolor.h, gdevdflt.c, gspcolor.c, gxcht.c, gxdcolor.c,
|
|
|
2290 |
gxht.c)
|
|
|
2291 |
|
|
|
2292 |
Makes unclipped monobit portrait and landscape images and image masks use
|
|
|
2293 |
the new masked fill capability of device colors. (gximage.h, gximage.c,
|
|
|
2294 |
gximage1.c, gximage2.c)
|
|
|
2295 |
|
|
|
2296 |
Adds a macro for determining pointer alignment. (stdpre.h, gdevdflt.c)
|
|
|
2297 |
|
|
|
2298 |
When floating point is slow, uses a different, faster algorithm for
|
|
|
2299 |
gx_curve_x_at_y. (gxpcopy.c)
|
|
|
2300 |
|
|
|
2301 |
Improves performance by adding a one-element cache for gx_curve_x_at_y.
|
|
|
2302 |
(gzpath.h, gxpcopy.c)
|
|
|
2303 |
|
|
|
2304 |
Reduces overhead when banded images are pre-rasterized (currently, always).
|
|
|
2305 |
(gxclimag.c)
|
|
|
2306 |
|
|
|
2307 |
Adds a rendering cost estimate field to each band in a band list. This
|
|
|
2308 |
field isn't actually used for anything yet; eventually, the intent is that
|
|
|
2309 |
bands with a high cost will get rendered, and stored in compressed form,
|
|
|
2310 |
before starting the engine. (gxclist.h)
|
|
|
2311 |
|
|
|
2312 |
Adds the concept of 'notes' for path segments, to allow remember what
|
|
|
2313 |
segments constitute a single curve or arc. Currently we set these properly
|
|
|
2314 |
for everything except dashed paths. (gxclpath.h, gxpath.h, gzpath.h,
|
|
|
2315 |
gspath1.c, gxclpath.c, gxclread.c, gxpath.c, gxpath2.c, gxpcopy.c)
|
|
|
2316 |
|
|
|
2317 |
When the dot length is non-zero, changes curve stroking to always use bevel
|
|
|
2318 |
joins within each curve rather than the current join. This prevents a
|
|
|
2319 |
"bristly" look with no join and butt caps. (gxstroke.c)
|
|
|
2320 |
|
|
|
2321 |
Adds an "accurate curves" capability that makes the last line segment of a
|
|
|
2322 |
flattened curve actually be tangent to the curve, which in turn makes
|
|
|
2323 |
flat-end caps be correctly perpendicular to the tangent. (gxpath.h,
|
|
|
2324 |
gxpcopy.c)
|
|
|
2325 |
|
|
|
2326 |
Adds an "accurate curves" flag in the graphics state. (gsline.h,
|
|
|
2327 |
gxclpath.h, gxistate.h, gsline.c, gspath.c, gspath1.c, gxclpath.c,
|
|
|
2328 |
gxclread.c, gxfill.c, gxstroke.c)
|
|
|
2329 |
|
|
|
2330 |
Changes the meaning of "no join" (gs_join_none) so that instead of producing
|
|
|
2331 |
no join and butt caps, it produces whatever the current cap is. This is
|
|
|
2332 |
compatible with the H-P definition. (gxstroke.c)
|
|
|
2333 |
|
|
|
2334 |
Implements non-zero dot length for dash patterns. (gxpdash.c)
|
|
|
2335 |
|
|
|
2336 |
Splits off the curve flattening algorithms into a separate file.
|
|
|
2337 |
(gxpcopy.c, gxpflat.c)
|
|
|
2338 |
|
|
|
2339 |
</pre>
|
|
|
2340 |
|
|
|
2341 |
<hr>
|
|
|
2342 |
|
|
|
2343 |
<h2><a name="Version4.39"></a>Version 4.39 (limited) (1/1/97)</h2>
|
|
|
2344 |
|
|
|
2345 |
<p>
|
|
|
2346 |
This version was created only to accompany a release of the PCL XL
|
|
|
2347 |
interpreter. It was withdrawn the day after it was released, because the
|
|
|
2348 |
tools used to produce it put the wrong files in the filesets.
|
|
|
2349 |
|
|
|
2350 |
<h3><a name="V4.39_Documentation"></a>Documentation</h3><pre>
|
|
|
2351 |
|
|
|
2352 |
Adds a more detailed description of the third-party ps_view viewer
|
|
|
2353 |
interface. (new-user.txt)
|
|
|
2354 |
|
|
|
2355 |
Corrects an error in a reference to the PSLRM. (lib.txt)
|
|
|
2356 |
|
|
|
2357 |
Documents the change in .makeoperator. (language.txt)
|
|
|
2358 |
|
|
|
2359 |
Updates the FTP location of the zlib sources. (zlib.mak)
|
|
|
2360 |
|
|
|
2361 |
</pre><h3><a name="V4.39_Procedures"></a>Procedures</h3><pre>
|
|
|
2362 |
|
|
|
2363 |
Fixes bugs:
|
|
|
2364 |
- The Unix library makefile didn't include the necessary definitions
|
|
|
2365 |
for libpng and zlib. (ugcclib.mak)
|
|
|
2366 |
|
|
|
2367 |
Allows selecting the compression filters for memory-based band lists in the
|
|
|
2368 |
makefile. Makes zlib (deflate) the default compressor for memory-based band
|
|
|
2369 |
lists. (lib.mak)
|
|
|
2370 |
|
|
|
2371 |
</pre><h3><a name="V4.39_Utilities"></a>Utilities</h3><pre>
|
|
|
2372 |
|
|
|
2373 |
Fixes bugs:
|
|
|
2374 |
- prfont.ps wouldn't print unencoded characters in Type 42 fonts.
|
|
|
2375 |
(prfont.ps)
|
|
|
2376 |
|
|
|
2377 |
</pre><h3><a name="V4.39_Drivers"></a>Drivers</h3><pre>
|
|
|
2378 |
|
|
|
2379 |
Fixes bugs:
|
|
|
2380 |
- The H-P monochrome driver didn't put out enough initialization
|
|
|
2381 |
commands at the beginning of each page to make each page printable
|
|
|
2382 |
independently. (gdevdjet.c)
|
|
|
2383 |
|
|
|
2384 |
</pre><h3><a name="V4.39_Interpreter"></a>Interpreter</h3><pre>
|
|
|
2385 |
|
|
|
2386 |
Changes ref_stack_count_inline so it never does a procedure call.
|
|
|
2387 |
(istack.h)
|
|
|
2388 |
|
|
|
2389 |
Changes .makeoperator so that operator procedures save the stack depths, and
|
|
|
2390 |
restore the stack pointers (if possible) if the operator encounters an
|
|
|
2391 |
error. This is a NON-BACKWARD-COMPATIBLE CHANGE; it requires rewriting the
|
|
|
2392 |
'stop' and 'stopped' pseudo-operators (and, if there were any, any other
|
|
|
2393 |
pseudo-operators that interact with the error handling machinery) in C.
|
|
|
2394 |
(gs_init.ps, interp.c, zcontrol.c)
|
|
|
2395 |
|
|
|
2396 |
Adds recognition of the LeadingEdge, MediaClass, and RollFedMedia keys in a
|
|
|
2397 |
page device dictionary, per the Adobe supplement for their version 2017
|
|
|
2398 |
interpreter. This involves a NON-BACKWARD-COMPATIBLE change to the
|
|
|
2399 |
(undocumented) .matchpagesize operator. (gs_setpd.ps, zmedia2.c)
|
|
|
2400 |
|
|
|
2401 |
Makes necessary changes for compatibility with the added parameters for the
|
|
|
2402 |
zlib filters. (zfzlib.c)
|
|
|
2403 |
|
|
|
2404 |
</pre><h3><a name="V4.39_Streams"></a>Streams</h3><pre>
|
|
|
2405 |
|
|
|
2406 |
Fixes bugs:
|
|
|
2407 |
- The zlib encoder returned EOFC when it should have returned 0.
|
|
|
2408 |
(szlibe.c)
|
|
|
2409 |
|
|
|
2410 |
Adds optional parameters and reset procedures for the zlib filters.
|
|
|
2411 |
(szlibx.h, szlibc.c, szlibd.c, szlibe.c)
|
|
|
2412 |
|
|
|
2413 |
</pre><h3><a name="V4.39_Library"></a>Library</h3><pre>
|
|
|
2414 |
|
|
|
2415 |
Fixes bugs:
|
|
|
2416 |
- Displaying characters with a non-standard RasterOp could cause an
|
|
|
2417 |
invalid memory access. (gdevdflt.c)
|
|
|
2418 |
- Banding sometimes used an incorrect RasterOp. (gxclread.c)
|
|
|
2419 |
- When banding, mixing Patterns and halftones could confuse the
|
|
|
2420 |
bookkeeping of tile size, leading to incorrect generation of the band list
|
|
|
2421 |
and error messages or confusion when rasterizing. (gxclist.h, gxclbits.c,
|
|
|
2422 |
gxclread.c)
|
|
|
2423 |
- If only the dash pattern offset changed, and not any of the other
|
|
|
2424 |
dash-related parameters, the new offset wasn't written in the band list,
|
|
|
2425 |
causing incorrect output. (gxclpath.c)
|
|
|
2426 |
- Oversized halftone tiles didn't report their error code properly.
|
|
|
2427 |
(gxclbits.c)
|
|
|
2428 |
- Oversized halftone tiles with RasterOp caused an error.
|
|
|
2429 |
(gxclist.c)
|
|
|
2430 |
- When banding, RasterOp transfers that crossed a band boundary
|
|
|
2431 |
didn't access the correct source data on bands other than the first.
|
|
|
2432 |
(gxclist.c)
|
|
|
2433 |
- There were redundant copies of the code for writing a RasterOp
|
|
|
2434 |
value in the band list. (gxclimag.c, gxclpath.c)
|
|
|
2435 |
- Oversized patterns or halftones produced garbled output.
|
|
|
2436 |
(gxclbits.c)
|
|
|
2437 |
- The check for oversized patterns or halftones was slightly
|
|
|
2438 |
incorrect, leading to the possibility of writing out a tile that would
|
|
|
2439 |
overflow the reading buffer and corrupt memory. (gxclbits.c)
|
|
|
2440 |
- When banding, RasterOp wasn't applied to fill and stroke
|
|
|
2441 |
operations, and wasn't applied correctly to characters. (gdevdflt.c,
|
|
|
2442 |
gxclimag.c, gxclread.c)
|
|
|
2443 |
- The RasterOp-related optimizations for black-and-white images
|
|
|
2444 |
sometimes produced incorrect output. (gximage.c, gximage2.c)
|
|
|
2445 |
- The default implementation of fill_triangle didn't draw anything
|
|
|
2446 |
if the corners of the triangle were specified in certain orders (ax < 0 or
|
|
|
2447 |
bx < 0). (gdevddrw.c)
|
|
|
2448 |
- Painting with a Pattern could pass out-of-range phase values to
|
|
|
2449 |
driver procedures. (gspcolor.c)
|
|
|
2450 |
- Because of an off-by-1 error, halftones or patterns passed through
|
|
|
2451 |
the band list could write past the end of their allocated space in the band
|
|
|
2452 |
tile cache, leading to incorrect output or possible arithmetic exceptions or
|
|
|
2453 |
memory access errors. (gsbitops.c)
|
|
|
2454 |
|
|
|
2455 |
Adds -Z: for printing only the minimal command list statistics. (gxclist.c,
|
|
|
2456 |
gxclread.c)
|
|
|
2457 |
|
|
|
2458 |
Expands band list tracing so it includes all of the data associated with the
|
|
|
2459 |
command, not just the command name and a few command parameters.
|
|
|
2460 |
(gxclread.c)
|
|
|
2461 |
|
|
|
2462 |
Adds free lists for strings. Currently these are only used in
|
|
|
2463 |
non-garbage-collected environments. (gxalloc.h, gsalloc.c, gsnogc.c)
|
|
|
2464 |
|
|
|
2465 |
Adds a procedure for copying a path structure, and an (internal) accessor
|
|
|
2466 |
for the current path in the graphics state. (gxpath.h, gspath.c, gxpath.c)
|
|
|
2467 |
|
|
|
2468 |
Speeds up filling characters with halftones a little bit. (gdevdflt.c)
|
|
|
2469 |
|
|
|
2470 |
Changes the memory-based implementation of band lists so it can use any
|
|
|
2471 |
compression / decompression filter, so it only compresses when it has
|
|
|
2472 |
allocated a specified amount of buffer storage, and so it releases its
|
|
|
2473 |
buffer storage at the end of each page. (gxclmem.h, gxclmem.c)
|
|
|
2474 |
|
|
|
2475 |
Speeds up counting the number of 1-bits in a byte, which is used in some
|
|
|
2476 |
image processing algorithms. (gsbittab.h, gsbittab.c)
|
|
|
2477 |
|
|
|
2478 |
Reduces the band list space required for changing tile size. (gxcldev.h,
|
|
|
2479 |
gxclbits.c, gxclread.c)
|
|
|
2480 |
|
|
|
2481 |
</pre>
|
|
|
2482 |
|
|
|
2483 |
<h2><a name="Version4.38"></a>Version 4.38 (limited) (12/20/96)</h2>
|
|
|
2484 |
|
|
|
2485 |
<p>
|
|
|
2486 |
Adds support for a couple of undocumented features in Type 1 fonts.
|
|
|
2487 |
|
|
|
2488 |
<h3><a name="V4.38_Interpreter"></a>Interpreter</h3><pre>
|
|
|
2489 |
|
|
|
2490 |
Adds handling of the Type 1 font subroutineNumberBias (an optional entry in
|
|
|
2491 |
the Private dictionary) and lenIV = -1 features at the interpreter level.
|
|
|
2492 |
(zchar1.c, zfont1.c)
|
|
|
2493 |
|
|
|
2494 |
</pre><h3><a name="V4.38_Streams"></a>Streams</h3><pre>
|
|
|
2495 |
|
|
|
2496 |
Fixes bugs:
|
|
|
2497 |
- The CCITTFaxEncode filter could access as much as 3 bytes beyond
|
|
|
2498 |
the end of a buffer, causing an invalid memory access. (scfe.c)
|
|
|
2499 |
|
|
|
2500 |
Changes the RunLengthDecode filter so it can make progress (produce output)
|
|
|
2501 |
with only a 1-byte output buffer. (srlx.h, srld.c)
|
|
|
2502 |
|
|
|
2503 |
</pre><h3><a name="V4.38_Library"></a>Library</h3><pre>
|
|
|
2504 |
|
|
|
2505 |
Fixes bugs:
|
|
|
2506 |
- The sine and cosine of multiples of 90 degrees weren't exact.
|
|
|
2507 |
(gxfarith.h, gsmisc.c)
|
|
|
2508 |
- The expanded bounding box computation for strokes didn't take into
|
|
|
2509 |
account the possibility of overflow. (gxstroke.c)
|
|
|
2510 |
- The allocator didn't fill freed strings with the 'free' mark.
|
|
|
2511 |
(gsalloc.c)
|
|
|
2512 |
- When using a pattern with RasterOp, the phase was computed
|
|
|
2513 |
incorrectly, leading to anomalous filling patterns. (gspcolor.c)
|
|
|
2514 |
- Patterns with a non-zero translation in the matrix passed to
|
|
|
2515 |
makepattern didn't translate the pattern origin properly. (gxcolor2.h,
|
|
|
2516 |
gxpcolor.h, gspcolor.c)
|
|
|
2517 |
|
|
|
2518 |
Adds a subroutineNumberBias field to Type 1 fonts. This is an undocumented
|
|
|
2519 |
feature of the Type 1 font format. (gxfont1.h, gstype1.c)
|
|
|
2520 |
|
|
|
2521 |
Interprets lenIV = -1 in Type 1 fonts as meaning that the CharStrings are
|
|
|
2522 |
unencrypted. This too is an undocumented feature of the Type 1 format.
|
|
|
2523 |
(gxfont1.h, gxtype1.h, gstype1.c, gstype2.c)
|
|
|
2524 |
|
|
|
2525 |
Changes gs_clippath so it returns more reasonable outlines. (There are too
|
|
|
2526 |
many programs that rely on being able to stroke the result of clippath, even
|
|
|
2527 |
though both the Adobe and H-P literature specifically say the results are
|
|
|
2528 |
unpredictable.) (gxcpath.h, gxcpath.c)
|
|
|
2529 |
|
|
|
2530 |
</pre>
|
|
|
2531 |
|
|
|
2532 |
<h2><a name="Version4.37"></a>Version 4.37 (limited) (12/10/96)</h2>
|
|
|
2533 |
|
|
|
2534 |
<p>
|
|
|
2535 |
This version implements separate halftone phase for source and texture,
|
|
|
2536 |
required for PCL XL implementation.
|
|
|
2537 |
|
|
|
2538 |
<h3><a name="V4.37_Fonts"></a>Fonts</h3><pre>
|
|
|
2539 |
|
|
|
2540 |
Fixes bugs:
|
|
|
2541 |
- Loading a native TrueType font without a 'post' table caused an
|
|
|
2542 |
error. (gs_ttf.ps)
|
|
|
2543 |
|
|
|
2544 |
</pre><h3><a name="V4.37_Interpreter"></a>Interpreter</h3><pre>
|
|
|
2545 |
|
|
|
2546 |
Extends the interpreter to handle the new separate halftone phases for the
|
|
|
2547 |
RasterOp source and texture. (gs_dps1.ps, zdps1.c)
|
|
|
2548 |
|
|
|
2549 |
Makes a small change to accommodate a library change supporting Type 2
|
|
|
2550 |
charstrings. (zfont1.c)
|
|
|
2551 |
|
|
|
2552 |
</pre><h3><a name="V4.37_Interpreter_PDF"></a>Interpreter (PDF)</h3><pre>
|
|
|
2553 |
|
|
|
2554 |
Implements the FontFile2 key for embedded TrueType fonts. (pdf_font.ps)
|
|
|
2555 |
|
|
|
2556 |
Starts to implement the FontFile3 key for compressed Type 1 fonts. This
|
|
|
2557 |
code is currently disabled, because none of the necessary underlying C is
|
|
|
2558 |
written yet. (pdf_font.ps)
|
|
|
2559 |
|
|
|
2560 |
</pre><h3><a name="V4.37_Library"></a>Library</h3><pre>
|
|
|
2561 |
|
|
|
2562 |
Fixes bugs:
|
|
|
2563 |
- The floating point emulator often returned incorrect results (too
|
|
|
2564 |
many bugs to list). (This is not used in any standard configuration.)
|
|
|
2565 |
(gsfemu.c)
|
|
|
2566 |
- The new copy_for procedure for gstates incorrectly declared an
|
|
|
2567 |
argument as const. (gxstate.h, gsstate.c)
|
|
|
2568 |
- If a curve had to be split twice along the same axis to make it
|
|
|
2569 |
monotonic, the split points could still be returned in the wrong order,
|
|
|
2570 |
possibly causing curved edges to turn into straight lines, and the algorithm
|
|
|
2571 |
still produced the wrong results if the curve had to be split twice along a
|
|
|
2572 |
single axis. This is the second time we have "fixed" these problems and the
|
|
|
2573 |
4th time we have "fixed" the curve monotonizing algorithm. (gxpcopy.c)
|
|
|
2574 |
- Setting halftones cause a memory leak, because the subsidiary
|
|
|
2575 |
objects of the device halftone weren't freed properly. Fixing this required
|
|
|
2576 |
changing the graphics state implementation from allocating a device halftone
|
|
|
2577 |
for each gstate to managing the device halftone with reference counting.
|
|
|
2578 |
(gxdht.h, gzstate.h, gsht.c, gsstate.c)
|
|
|
2579 |
|
|
|
2580 |
Provides an optimized version of ldexp for FPU-less configurations, and
|
|
|
2581 |
changes one key algorithm to use it. (gxfixed.h, gsmisc.c, gxpcopy.c)
|
|
|
2582 |
|
|
|
2583 |
Speeds up imagemask with a halftone a little. (This will eventually require
|
|
|
2584 |
more serious optimization.) (gximage2.c)
|
|
|
2585 |
|
|
|
2586 |
Adds a -Z* switch for tracing varieties of image rendering. (gximage.c)
|
|
|
2587 |
|
|
|
2588 |
Recognizes that if the logical operation is equivalent to D = S (after
|
|
|
2589 |
accounting for a constant texture, if any), or if it is equivalent to D = ~S
|
|
|
2590 |
or D = D {&,|}{S,~S} and D and S are both monobit and both colors are pure,
|
|
|
2591 |
imaging with RasterOp can be executed without invoking RasterOp. (gsropt.h,
|
|
|
2592 |
gximage.c)
|
|
|
2593 |
|
|
|
2594 |
Makes coordinate transformations with landscape matrices execute as fast as
|
|
|
2595 |
with portrait matrices. (gxmatrix.h, gscoord.c, gsmatrix.c)
|
|
|
2596 |
|
|
|
2597 |
Adds some sketch code for interpreting Type 2 charstrings. It compiles, but
|
|
|
2598 |
it makes no pretense of being runnable. (gstype1.h, gxop1.h, gxtype1.h,
|
|
|
2599 |
gstype2.h, gxfont1.h, gstype1.c, gstype2.c)
|
|
|
2600 |
|
|
|
2601 |
Extends the library to allow setting separate halftone phases for the
|
|
|
2602 |
RasterOp source and texture, which is needed to implement halftone screens
|
|
|
2603 |
that behave like those in H-P's PCL XL printers. (gscsel.h, gsstate.h,
|
|
|
2604 |
gxcmap.h, gxcspace.h, gxdcolor.h, gxdither.h, gxpcolor.h, gzht.h, gzstate.h,
|
|
|
2605 |
gscie.c, gscsepr.c, gsht.c, gspcolor.c, gxcht.c, gxcmap.c, gxdcolor.c,
|
|
|
2606 |
gxht.c, gximage.c, gximage[2345].c, gspcmap.c) ****** STILL NEED TO UPDATE
|
|
|
2607 |
BANDING CODE, grep FOR phase ******
|
|
|
2608 |
|
|
|
2609 |
Removes the rc_header member from the gs_halftone structure, since we don't
|
|
|
2610 |
need it after all. (gxht.h)
|
|
|
2611 |
|
|
|
2612 |
</pre>
|
|
|
2613 |
|
|
|
2614 |
<h2><a name="Version4.36"></a>Version 4.36 (limited) (12/3/96)</h2>
|
|
|
2615 |
|
|
|
2616 |
<p>
|
|
|
2617 |
This version fixes a number of library bugs related to RasterOp, Patterns,
|
|
|
2618 |
and memory management.
|
|
|
2619 |
|
|
|
2620 |
<h3><a name="V4.36_Documentation"></a>Documentation</h3><pre>
|
|
|
2621 |
|
|
|
2622 |
Changes the definition of texture transparency to match the peculiar H-P
|
|
|
2623 |
specification. (drivers.txt, language.txt)
|
|
|
2624 |
|
|
|
2625 |
</pre><h3><a name="V4.36_Drivers"></a>Drivers</h3><pre>
|
|
|
2626 |
|
|
|
2627 |
Fixes bugs:
|
|
|
2628 |
- x_get_bits didn't flush updates to the frame buffer, leading to
|
|
|
2629 |
possibly incorrect data being returned. (gdevx.c)
|
|
|
2630 |
- x_get_bits added padding to the scan line being copied, possibly
|
|
|
2631 |
corrupting memory. (gdevx.c)
|
|
|
2632 |
|
|
|
2633 |
Changes the x11mono driver to define white = 0, black = 1 to more closely
|
|
|
2634 |
model black-and-white printers. (This is an internal change that doesn't
|
|
|
2635 |
affect the output.) (gdevxalt.c)
|
|
|
2636 |
|
|
|
2637 |
</pre><h3><a name="V4.36_Interpreter"></a>Interpreter</h3><pre>
|
|
|
2638 |
|
|
|
2639 |
Removes some code that is no longer needed, by virtue of the fix for the
|
|
|
2640 |
memory leak in Pattern remapping. (zpcolor.c)
|
|
|
2641 |
|
|
|
2642 |
</pre><h3><a name="V4.36_Library"></a>Library</h3><pre>
|
|
|
2643 |
|
|
|
2644 |
Fixes bugs:
|
|
|
2645 |
- Patterns wider than 1024 bits caused a rangecheck. (gxclip2.h,
|
|
|
2646 |
gxclip2.c)
|
|
|
2647 |
- Dash patterns never got freed. The fix for this slows down gsave
|
|
|
2648 |
and grestore slightly, but we don't see any way around it. (gsline.c,
|
|
|
2649 |
gsstate.c)
|
|
|
2650 |
- If the CTM was very non-uniform in X and Y, stroke sometimes
|
|
|
2651 |
didn't recognize thin lines as being thin, leading to dropouts.
|
|
|
2652 |
(gxstroke.c)
|
|
|
2653 |
- RasterOps that didn't use S or T still took S or T transparency
|
|
|
2654 |
into account. (gdevmrop.c)
|
|
|
2655 |
- RasterOps with no source didn't handle the possibility that the
|
|
|
2656 |
device color for black might have a value other than 0. (gxdcolor.h,
|
|
|
2657 |
gspcolor.c, gxcht.c, gxdcolor.c, gxht.c)
|
|
|
2658 |
- White pixels in halftones on black-and-white devices apparently
|
|
|
2659 |
are *not* supposed to be treated as opaque for RasterOp. (gxcht.c, gxht.c)
|
|
|
2660 |
- clippath caused memory to be lost until a restore or a garbage
|
|
|
2661 |
collection. (gspath.c)
|
|
|
2662 |
- Clipping lists weren't ever freed, and clipping paths sometimes
|
|
|
2663 |
weren't freed, causing memory to be lost until a restore or a garbage
|
|
|
2664 |
collection. (gzacpath.h, gxacpath.c, gxcpath.c)
|
|
|
2665 |
- Freeing a pattern instance referenced a pointer after it had been
|
|
|
2666 |
freed, causing an invalid memory access. (gspcolor.c)
|
|
|
2667 |
- Remapping a Pattern color lost track of the temporary gstate,
|
|
|
2668 |
memory devices, and possibly the mask, causing memory to be lost until a
|
|
|
2669 |
restore or GC. (gxpcolor.h, gxpcmap.c)
|
|
|
2670 |
- Remapping a Pattern color could cause paths to be marked as
|
|
|
2671 |
shared, preventing them from being freed until a restore or GC. (gxpcmap.c)
|
|
|
2672 |
|
|
|
2673 |
Enhances the non-tracing garbage collector so that if there are no strings
|
|
|
2674 |
allocated at all, it resets the string allocation pointers. (gsnogc.c)
|
|
|
2675 |
|
|
|
2676 |
Optimizes the black-and-white RasterOp implementation by recognizing cases
|
|
|
2677 |
that can be implemented directly by fill_rectangle, copy_mono, or
|
|
|
2678 |
tile_rectangle. (gdevmrop.h, gsropt.h, gdevmrop.c, gsroptab.c)
|
|
|
2679 |
|
|
|
2680 |
Changes -ZA so it no longer produces [P] tracing messages for path
|
|
|
2681 |
construction. (gxpath.c)
|
|
|
2682 |
|
|
|
2683 |
Adds a gx_pattern_cache_winnow procedure for selectively removing entries
|
|
|
2684 |
from the Pattern cache, similar to gx_purge_selected_cached_chars.
|
|
|
2685 |
(gscolor2.h, gxpcolor.h, gxpcmap.c)
|
|
|
2686 |
|
|
|
2687 |
Adds the Pattern UID to Pattern cache entries. (gxpcolor.h, gxpcmap.c)
|
|
|
2688 |
****** MUST HANDLE XUID POINTERS ON GC (RELOC) & RESTORE (CLEAR LIKE HT
|
|
|
2689 |
CACHE) ******
|
|
|
2690 |
|
|
|
2691 |
Makes gs_gstate free the path representation of the clipping path if it's a
|
|
|
2692 |
rectangle, since reconstructing it is cheap and otherwise the path segments
|
|
|
2693 |
would not be freeable until a restore or GC. (gsstate.c)
|
|
|
2694 |
|
|
|
2695 |
Extends the "client data" interface for gstates so that the copy procedure
|
|
|
2696 |
can determine why it is being called. (gxstate.h, gsstate.c)
|
|
|
2697 |
|
|
|
2698 |
</pre>
|
|
|
2699 |
|
|
|
2700 |
<h2><a name="Version4.35"></a>Version 4.35 (limited) (11/24/96)</h2>
|
|
|
2701 |
|
|
|
2702 |
<p>
|
|
|
2703 |
This contains the usual bug fixes, and two minor enhancements: an option for
|
|
|
2704 |
handling EPSF files with binary headers, and support for file-based
|
|
|
2705 |
resources.
|
|
|
2706 |
|
|
|
2707 |
<h3><a name="V4.35_Documentation"></a>Documentation</h3><pre>
|
|
|
2708 |
|
|
|
2709 |
Documents the new EPSF-reading capability. (gs.mak)
|
|
|
2710 |
|
|
|
2711 |
</pre><h3><a name="V4.35_Procedures"></a>Procedures</h3><pre>
|
|
|
2712 |
|
|
|
2713 |
Fixes bugs:
|
|
|
2714 |
- Some obsolete definitions were accidentally left in the rules for
|
|
|
2715 |
compiling fonts into the executable. (int.mak)
|
|
|
2716 |
|
|
|
2717 |
</pre><h3><a name="V4.35_Interpreter"></a>Interpreter</h3><pre>
|
|
|
2718 |
|
|
|
2719 |
Fixes bugs:
|
|
|
2720 |
- initgraphics left the current color space in an inconsistent
|
|
|
2721 |
state. (bug introduced in 4.32) (zgstate.c)
|
|
|
2722 |
- restore didn't properly rebind FontDirectory to either Local or
|
|
|
2723 |
SharedFontDirectory according to the current VM selection. (gs_dps1.ps)
|
|
|
2724 |
- If FontDirectory was redefined, many things broke. (gs_ccfnt.ps,
|
|
|
2725 |
gs_dps1.ps, gs_fonts.ps, gs_pdfwr.ps)
|
|
|
2726 |
- If a resource provided a file name but the file couldn't be
|
|
|
2727 |
opened, an error occurred. (gs_res.ps)
|
|
|
2728 |
- flushfile didn't work with procedure-based streams. (zfileio.c)
|
|
|
2729 |
|
|
|
2730 |
Adds a feature (epsf.dev) that allows the interpreter to recognize and
|
|
|
2731 |
handle MS-DOS EPSF files with a binary header. (int.mak, gs_epsf.ps,
|
|
|
2732 |
gs_init.ps, pdf_main.ps)
|
|
|
2733 |
|
|
|
2734 |
Adds (internal) .getuserparam and .getsystemparam operators for getting the
|
|
|
2735 |
value of a single user or system parameter. (gs_lev2.ps, zusparam.c)
|
|
|
2736 |
|
|
|
2737 |
To support file-based resources, implements the FontResourceDir,
|
|
|
2738 |
GenericResourceDir, and GenericResourcePathSep system parameters, and
|
|
|
2739 |
ResourceFileName for the built-in resource categories. (gs_init.ps,
|
|
|
2740 |
gs_lev2.ps, gs_res.ps)
|
|
|
2741 |
|
|
|
2742 |
</pre><h3><a name="V4.35_Streams"></a>Streams</h3><pre>
|
|
|
2743 |
|
|
|
2744 |
Fixes bugs:
|
|
|
2745 |
- The 2-D CCITTFaxDecode filter became confused if a buffer boundary
|
|
|
2746 |
fell between a horizontal make-up code and its terminating code, typically
|
|
|
2747 |
causing an ioerror. (scfd.c)
|
|
|
2748 |
|
|
|
2749 |
</pre><h3><a name="V4.35_Library"></a>Library</h3><pre>
|
|
|
2750 |
|
|
|
2751 |
Fixes bugs:
|
|
|
2752 |
- Using the null color could confuse the reference counts for color
|
|
|
2753 |
spaces, causing memory access errors. (gscolor.c)
|
|
|
2754 |
- Images with CombineWithColor = true caused memory access error,
|
|
|
2755 |
because a structure element wasn't initialized. (gdevmrop.c)
|
|
|
2756 |
- gs_setnullcolor tried to return an error code, even though it was
|
|
|
2757 |
declared as returning void. (Why doesn't gcc catch this??) (gscolor.h,
|
|
|
2758 |
gscolor.c)
|
|
|
2759 |
- gs_setnullcolor was declared inconsistently as taking a const or
|
|
|
2760 |
non-const argument. (gscolor.h)
|
|
|
2761 |
- Small color tiles in the band list were not read in correctly.
|
|
|
2762 |
(gxclread.c)
|
|
|
2763 |
- The band list could get confused, causing ioerrors, invalid memory
|
|
|
2764 |
accesses, or garbled output, because the algorithms for computing the size
|
|
|
2765 |
of bitmaps when writing and when reading had gotten inconsistent. This code
|
|
|
2766 |
has been broken and "fixed" at least 4 or 5 times. (gxcldev.h, gxclbits.c,
|
|
|
2767 |
gxclread.c)
|
|
|
2768 |
- When using banding, characters that extended off the page
|
|
|
2769 |
vertically in the -Y direction came out garbled. (gxclimag.c)
|
|
|
2770 |
- The bounding box device didn't compute the box correctly for
|
|
|
2771 |
trapezoids. (gdevbbox.c)
|
|
|
2772 |
- The fastest case of rendering monochrome images could cause
|
|
|
2773 |
unaligned data accesses. (bug introduced recently.) (gximage.h,
|
|
|
2774 |
gximage1.c)
|
|
|
2775 |
- TrueType characters with no contours could cause an invalid memory
|
|
|
2776 |
access. (gstype42.c)
|
|
|
2777 |
- Composite TrueType characters weren't rendered properly.
|
|
|
2778 |
(gstype42.c)
|
|
|
2779 |
|
|
|
2780 |
Adds a get_outline procedure to the Type 42 font header, to provide a
|
|
|
2781 |
callback for getting the outline data for a glyph. (gxfont42.h, gstype42.c)
|
|
|
2782 |
|
|
|
2783 |
</pre>
|
|
|
2784 |
|
|
|
2785 |
<h2><a name="Version4.34"></a>Version 4.34 (limited) (11/18/96)</h2>
|
|
|
2786 |
|
|
|
2787 |
<p>
|
|
|
2788 |
This release adds a little more support for CID-keyed fonts and for PCL
|
|
|
2789 |
emulation, and a bit more of the machinery for passing images through the
|
|
|
2790 |
band list.
|
|
|
2791 |
|
|
|
2792 |
<h3><a name="V4.34_Documentation"></a>Documentation</h3><pre>
|
|
|
2793 |
|
|
|
2794 |
Fixes bugs:
|
|
|
2795 |
- The RasterOp source device wasn't listed as an internal device in
|
|
|
2796 |
drivers.txt. (drivers.txt)
|
|
|
2797 |
|
|
|
2798 |
Corrects a statement regarding the pstotext license. (new-user.txt)
|
|
|
2799 |
|
|
|
2800 |
</pre><h3><a name="V4.34_Procedures"></a>Procedures</h3><pre>
|
|
|
2801 |
|
|
|
2802 |
Fixes bugs:
|
|
|
2803 |
- The Watcom makefile for the library didn't work properly if
|
|
|
2804 |
certain variables were overridden from the command line. (watclib.mak)
|
|
|
2805 |
- The library code inadvertently depended on an interpreter header
|
|
|
2806 |
file. (*.mak)
|
|
|
2807 |
|
|
|
2808 |
</pre><h3><a name="V4.34_Drivers"></a>Drivers</h3><pre>
|
|
|
2809 |
|
|
|
2810 |
Fixes bugs:
|
|
|
2811 |
- Some very picky compilers complained about assigning 0 to a
|
|
|
2812 |
variable of an enum type. (gdevpdfx.h, gdevpdf.c)
|
|
|
2813 |
|
|
|
2814 |
</pre><h3><a name="V4.34_Interpreter"></a>Interpreter</h3><pre>
|
|
|
2815 |
|
|
|
2816 |
Fixes bugs:
|
|
|
2817 |
- Some very picky compilers didn't like a cast from a pointer type
|
|
|
2818 |
to an int type. (idebug.c)
|
|
|
2819 |
- Some very picky (and non-ANSI-compliant) compilers didn't allow
|
|
|
2820 |
assigning an int to a variable of enumerated type. (zfont2.c, zht2.c)
|
|
|
2821 |
- The library code inadvertently depended on an interpreter header
|
|
|
2822 |
file. (iref.h)
|
|
|
2823 |
|
|
|
2824 |
Restructures the font building code slightly to support CID fonts better.
|
|
|
2825 |
(gs_cidfn.ps, bfont.h, zcid.c, zfont0.c, zfont1.c, zfont2.c, zfont42.c)
|
|
|
2826 |
|
|
|
2827 |
Adds a .setcurrentfile operator to allow disk-based fonts to keep their file
|
|
|
2828 |
open. (gs_cidfn.ps, zcontrol.c)
|
|
|
2829 |
|
|
|
2830 |
</pre><h3><a name="V4.34_Streams"></a>Streams</h3><pre>
|
|
|
2831 |
|
|
|
2832 |
Fixes bugs:
|
|
|
2833 |
- Some very picky compilers didn't like the computation (const byte
|
|
|
2834 |
*)0 - 1. (stream.c)
|
|
|
2835 |
- A cast to ulong was omitted. (smtf.c)
|
|
|
2836 |
- Some compilers got confused by typedefs in the zlib header files.
|
|
|
2837 |
(szlibd.c, szlibe.c)
|
|
|
2838 |
|
|
|
2839 |
</pre><h3><a name="V4.34_Library"></a>Library</h3><pre>
|
|
|
2840 |
|
|
|
2841 |
Fixes bugs:
|
|
|
2842 |
- A header file didn't select the proper system header on all POSIX
|
|
|
2843 |
systems. (malloc_.h)
|
|
|
2844 |
- A subclass/superclass type discrepancy upset some compilers.
|
|
|
2845 |
(gsline.h, gsline.c, gxpdash.c)
|
|
|
2846 |
- Some very picky compilers didn't accept the previous definition of
|
|
|
2847 |
the offset_of macro. (stdpre.h)
|
|
|
2848 |
- Some very picky (and non-ANSI-compliant) compilers didn't like
|
|
|
2849 |
mixing int and enumerated types. (gsropt.h, gzstate.h, gdevmrop.c,
|
|
|
2850 |
gdevrrgb.c, gsrop.c, gxclist.c)
|
|
|
2851 |
- A cast was missing. (gslib.c)
|
|
|
2852 |
- The gs_setxxxtransparent procedures interpreted their argument
|
|
|
2853 |
backwards (i.e., as "opaque" rather than "transparent"). (gsrop.c)
|
|
|
2854 |
- Intersecting clipping paths didn't reset the logical operation to
|
|
|
2855 |
the default, causing a possible crash. (gsrop.h, gsrop.c, gxacpath.c)
|
|
|
2856 |
- Pattern accumulation didn't reset the logical operation to the
|
|
|
2857 |
default, possibly causing incorrect output. (gspcolor.c)
|
|
|
2858 |
- If a Type 1 character ended with a curve and a closepath, a
|
|
|
2859 |
microscopic line could result, causing output anomalies. (gstype1.c)
|
|
|
2860 |
- Stroking a path with a mix of thin and non-thin lines could cause
|
|
|
2861 |
extraneous lines to appear. (gxstroke.c)
|
|
|
2862 |
- Zero-width rectangles were painted even when fill adjustment was
|
|
|
2863 |
turned off. (gxpaint.c, gxstroke.c)
|
|
|
2864 |
- The algorithm for dividing a curve into monotonic pieces could
|
|
|
2865 |
produce incorrect results, causing anomalies when filling curved regions
|
|
|
2866 |
with zero fill adjustment. (gxpcopy.c)
|
|
|
2867 |
- The algorithms for outside clipping were wrong, causing some
|
|
|
2868 |
inside regions not to be clipped. (gxcpath.c)
|
|
|
2869 |
- The white pixels in halftones weren't treated as unconditionally
|
|
|
2870 |
opaque for RasterOp. (gxht.c, gxcht.c)
|
|
|
2871 |
- Images with RasterOp didn't work properly. (gdevmrop.c,
|
|
|
2872 |
gximage[2345].c, gxpcmap.c)
|
|
|
2873 |
- The library code inadvertently depended on an interpreter header
|
|
|
2874 |
file. (gxalloc.h, genarch.c)
|
|
|
2875 |
- An important optimization for stroking (recognizing portrait,
|
|
|
2876 |
landscape, and unscaled CTMs) was commented out. WE DON'T HAVE ANY RECORD
|
|
|
2877 |
OF WHY WE DID THIS, AND RESTORING IT MAY INTRODUCE NEW BUGS. (gxstroke.c)
|
|
|
2878 |
- Bitmap images with non-zero data_x values were passed through the
|
|
|
2879 |
band list incorrectly, possibly causing vertical "streaks" in the output.
|
|
|
2880 |
(gxcldev.h, gxclread.c)
|
|
|
2881 |
- If a curve had to be split twice along the same axis to make it
|
|
|
2882 |
monotonic, the split points were returned in the wrong order, possibly
|
|
|
2883 |
causing curved edges to turn into straight lines. (gxpcopy.c)
|
|
|
2884 |
|
|
|
2885 |
Changes the debugging printout format for paths so the output can be
|
|
|
2886 |
processed mechanically more easily. (gxpath.c)
|
|
|
2887 |
|
|
|
2888 |
Adds gs_glyphpath, like charpath but taking a glyph rather than a string of
|
|
|
2889 |
character codes. (gschar.h, gschar.c)
|
|
|
2890 |
|
|
|
2891 |
Adds an internal concept of a "null color", a color that doesn't actually
|
|
|
2892 |
mark any pixels. (gscolor.h, gsdcolor.h, gxdcolor.h, gscolor.c, gxdcolor.c)
|
|
|
2893 |
|
|
|
2894 |
Takes the next incremental steps towards passing images through the band
|
|
|
2895 |
list:
|
|
|
2896 |
- Implements the ability to pass some color mapping information
|
|
|
2897 |
(transfer functions, black generation, undercolor removal) through the band
|
|
|
2898 |
list. (gxclist.h, gxclimag.c, gxclist.c, gxclread.c)
|
|
|
2899 |
|
|
|
2900 |
</pre>
|
|
|
2901 |
|
|
|
2902 |
<h2><a name="Version4.33"></a>Version 4.33 (limited) (11/6/96)</h2>
|
|
|
2903 |
|
|
|
2904 |
<p>
|
|
|
2905 |
This release fixes yet another obscure bug in the recently rewritten fast
|
|
|
2906 |
loops for image rendering. (These loops have caused more problems than any
|
|
|
2907 |
other single module of the entire library.) It also adds preliminary
|
|
|
2908 |
support for CID-keyed fonts (CIDFonts only, not CMaps yet) and some library
|
|
|
2909 |
extensions for supporting HP-GL/2.
|
|
|
2910 |
|
|
|
2911 |
<h3><a name="V4.33_Documentation"></a>Documentation</h3><pre>
|
|
|
2912 |
|
|
|
2913 |
Adds considerable new material to the C style document. (c-style.txt)
|
|
|
2914 |
|
|
|
2915 |
Changes -cckr to -ansi in the SGI build procedure. (make.txt)
|
|
|
2916 |
|
|
|
2917 |
Corrects an error in the description of the .type42execchar operator.
|
|
|
2918 |
(gs_typ42.ps)
|
|
|
2919 |
|
|
|
2920 |
</pre><h3><a name="V4.33_Procedures"></a>Procedures</h3><pre>
|
|
|
2921 |
|
|
|
2922 |
Fixes bugs:
|
|
|
2923 |
- The 'man' pages were installed in the documentation directory as
|
|
|
2924 |
well as in the man directory. (unix-end.mak)
|
|
|
2925 |
|
|
|
2926 |
</pre><h3><a name="V4.33_Interpreter"></a>Interpreter</h3><pre>
|
|
|
2927 |
|
|
|
2928 |
Adds support for CID-keyed fonts. There is no CMap support yet, and some
|
|
|
2929 |
things are done with hacks. (int.mak, gs_cidfn.ps, gs_cmap.ps, ichar.h,
|
|
|
2930 |
zchar.c, zchar2.c, zchar42.c, zfont2.c, zfont42.c, zcid.c)
|
|
|
2931 |
|
|
|
2932 |
Adds operators for accessing the new dash adaptation and dot length
|
|
|
2933 |
parameters in the graphics state. (gs_init.ps, zgstate.c)
|
|
|
2934 |
|
|
|
2935 |
</pre><h3><a name="V4.33_Library"></a>Library</h3><pre>
|
|
|
2936 |
|
|
|
2937 |
Fixes bugs:
|
|
|
2938 |
- The fast case of monobit image rendering could overwrite memory.
|
|
|
2939 |
(gximage1.c)
|
|
|
2940 |
- The new fast implementation of rectfill didn't check for
|
|
|
2941 |
fixed-point overflow. (gsdps1.c)
|
|
|
2942 |
- Internally, fonts with no name all appeared to have the same name,
|
|
|
2943 |
possibly confusing the xfont machinery. (gxccman.c)
|
|
|
2944 |
- A cast to remove const was omitted, upsetting some compilers.
|
|
|
2945 |
(gximage1.c)
|
|
|
2946 |
- The driver's stroke_path routine was not called if the logical
|
|
|
2947 |
operation was not the default one. (gxpaint.c)
|
|
|
2948 |
|
|
|
2949 |
Adds support for CID-keyed fonts. (gsccode.h, gxfont.h)
|
|
|
2950 |
|
|
|
2951 |
Adds a new "dash pattern adaptation" flag in the imager state. When this
|
|
|
2952 |
flag is set and a dash pattern is in effect, each line segment will receive
|
|
|
2953 |
an integral number of repetitions of the dash pattern (if necessary, rounded
|
|
|
2954 |
up). (gsline.h, gxline.h, gsline.c, gsstate.c, gxpdash.c)
|
|
|
2955 |
|
|
|
2956 |
Adds a new "dot length" parameter to the imager state. If this parameter is
|
|
|
2957 |
non-zero, it gives a length for rendering dots (zero-length lines). See
|
|
|
2958 |
language.txt for details. (gsline.h, gxline.h, gsline.c, gsstate.c,
|
|
|
2959 |
gxstroke.c)
|
|
|
2960 |
|
|
|
2961 |
Extends band lists so they can handle dash pattern adaptation and dot
|
|
|
2962 |
length. (gxcldev.h, gxclpath.h, gxclpath.c, gxclread.c)
|
|
|
2963 |
|
|
|
2964 |
Adds a floating point emulator to allow more realistic profiling of
|
|
|
2965 |
configurations without a FPU. (gsfemu.c)
|
|
|
2966 |
|
|
|
2967 |
</pre>
|
|
|
2968 |
|
|
|
2969 |
<h2><a name="Version4.32"></a>Version 4.32 (limited) (11/1/96)</h2>
|
|
|
2970 |
|
|
|
2971 |
<p>
|
|
|
2972 |
This fixes a couple more bugs, most notably the infamous "pixel stripe" bug.
|
|
|
2973 |
|
|
|
2974 |
<h3><a name="V4.32_Documentation"></a>Documentation</h3><pre>
|
|
|
2975 |
|
|
|
2976 |
Fixes bugs:
|
|
|
2977 |
- The documentation said that Ghostscript could not interpret
|
|
|
2978 |
encrypted PDF files. (language.txt)
|
|
|
2979 |
- A number of Ghostscript's extensions to the PostScript language
|
|
|
2980 |
were missing. (language.txt)
|
|
|
2981 |
|
|
|
2982 |
</pre><h3><a name="V4.32_Drivers"></a>Drivers</h3><pre>
|
|
|
2983 |
|
|
|
2984 |
Fixes bugs:
|
|
|
2985 |
- A compiler complained about initializing an unsigned variable with
|
|
|
2986 |
a negative value. (gdevx.c)
|
|
|
2987 |
- An off-by-1 allocation error could cause memory overwriting.
|
|
|
2988 |
(gdevepsc.c)
|
|
|
2989 |
|
|
|
2990 |
</pre><h3><a name="V4.32_Platforms"></a>Platforms</h3><pre>
|
|
|
2991 |
|
|
|
2992 |
Declares a pointer 'const' that is actually only used for reading.
|
|
|
2993 |
(gp_unifs.c)
|
|
|
2994 |
|
|
|
2995 |
</pre><h3><a name="V4.32_Fonts"></a>Fonts</h3><pre>
|
|
|
2996 |
|
|
|
2997 |
Fixes bugs:
|
|
|
2998 |
- The code for adding nominal UnderlinePosition and
|
|
|
2999 |
UnderlineThickness entries to FontInfo assumed (incorrectly) that all Type 1
|
|
|
3000 |
fonts had FontBBox entries. (gs_type1.ps)
|
|
|
3001 |
|
|
|
3002 |
Brings CIDFont support closer to reality. It doesn't work yet, though.
|
|
|
3003 |
(gs_cidfn.ps, gs_fonts.ps, gs_init.ps, gs_res.ps, gs_typ42.ps)
|
|
|
3004 |
|
|
|
3005 |
</pre><h3><a name="V4.32_Interpreter"></a>Interpreter</h3><pre>
|
|
|
3006 |
|
|
|
3007 |
Removes a redundant implementation of initgraphics. (gs_init.ps)
|
|
|
3008 |
|
|
|
3009 |
Speeds up rectfill a little for the common case (4 numbers on the stack).
|
|
|
3010 |
(zdps1.c)
|
|
|
3011 |
|
|
|
3012 |
</pre><h3><a name="V4.32_Library"></a>Library</h3><pre>
|
|
|
3013 |
|
|
|
3014 |
Fixes bugs:
|
|
|
3015 |
- Zero-width, 1-bit-deep, landscape or portrait images could
|
|
|
3016 |
overwrite memory ad lib. (gximage1.c)
|
|
|
3017 |
- A procedure was declared 'static' inconsistently, upsetting many
|
|
|
3018 |
compilers (but not gcc, which, in contradiction to the ANSI standard,
|
|
|
3019 |
doesn't check this properly). (gxcpath.c)
|
|
|
3020 |
- A local variable was initialized with a value computed from a
|
|
|
3021 |
variable that hadn't been set yet, leading to possibly incorrect coloring of
|
|
|
3022 |
the first run of pixels in images with 12 bits per sample. (gximage4.c)
|
|
|
3023 |
- A compiler complained about initializing an unsigned variable with
|
|
|
3024 |
a negative value. (shcgen.c)
|
|
|
3025 |
- A rounding problem could produce a vertical stripe of 1 (or on
|
|
|
3026 |
very large images possibly more) incorrect pixels at the right edge of a
|
|
|
3027 |
1-bit-deep image. (gxdda.h, gximage1.c)
|
|
|
3028 |
|
|
|
3029 |
Speeds up gs_rectfill substantially for the portrait/landscape case with a
|
|
|
3030 |
rectangular clipping region. (gsdps1.c)
|
|
|
3031 |
|
|
|
3032 |
Adds a parameter so we can include gx_line_params in subclasses. (gzline.h)
|
|
|
3033 |
|
|
|
3034 |
</pre>
|
|
|
3035 |
|
|
|
3036 |
<h2><a name="Version4.31"></a>Version 4.31 (limited) (10/27/96)</h2>
|
|
|
3037 |
|
|
|
3038 |
<p>
|
|
|
3039 |
This is primarily a bug fix release for 4.30, which we had hoped wouldn't be
|
|
|
3040 |
necessary....
|
|
|
3041 |
|
|
|
3042 |
<h3><a name="V4.31_Documentation"></a>Documentation</h3><pre>
|
|
|
3043 |
|
|
|
3044 |
Fixes bugs:
|
|
|
3045 |
- The comment describing the order of coefficients in a CTM written
|
|
|
3046 |
on the band list was wrong. (gxclpath.h)
|
|
|
3047 |
|
|
|
3048 |
</pre><h3><a name="V4.31_Procedures"></a>Procedures</h3><pre>
|
|
|
3049 |
|
|
|
3050 |
Fixes bugs:
|
|
|
3051 |
- bug-form.txt wasn't installed by 'make install'. (unix-end.mak)
|
|
|
3052 |
- The default flags in ugcclib.mak didn't take the gcc code
|
|
|
3053 |
generation bug into account. (ugcclib.mak)
|
|
|
3054 |
|
|
|
3055 |
</pre><h3><a name="V4.31_Platforms"></a>Platforms</h3><pre>
|
|
|
3056 |
|
|
|
3057 |
Fixes bugs:
|
|
|
3058 |
- MetroWerks CodeWarrior predefines true and false, causing
|
|
|
3059 |
compilation errors on the Mac. (stdpre.h)
|
|
|
3060 |
|
|
|
3061 |
</pre><h3><a name="V4.31_Interpreter"></a>Interpreter</h3><pre>
|
|
|
3062 |
|
|
|
3063 |
Updates code for the change in the ENUM_PTR macros. (iscan.c)
|
|
|
3064 |
|
|
|
3065 |
Changes the allocator to keep track of "lost" ref space separately, to allow
|
|
|
3066 |
an independent check on its activities. (gxalloc.h, ialloc.c, isave.c)
|
|
|
3067 |
|
|
|
3068 |
Changes the garbage collector API slightly to allow implementation of the
|
|
|
3069 |
API in applications other than PostScript interpreters. (ivmspace.h,
|
|
|
3070 |
ireclaim.c, igc.c)
|
|
|
3071 |
|
|
|
3072 |
</pre><h3><a name="V4.31_Interpreter_PDF"></a>Interpreter (PDF)</h3><pre>
|
|
|
3073 |
|
|
|
3074 |
Implements the PDF 1.1 BX and EX operators. (pdf_base.ps, pdf_main.ps)
|
|
|
3075 |
|
|
|
3076 |
</pre><h3><a name="V4.31_Streams"></a>Streams</h3><pre>
|
|
|
3077 |
|
|
|
3078 |
Fixes bugs:
|
|
|
3079 |
- Some (harmless) pointer incompatibilities upset some compilers.
|
|
|
3080 |
(szlibd.c, szlibe.c)
|
|
|
3081 |
|
|
|
3082 |
Updates code for the change in the ENUM_PTR macros. (stream.c)
|
|
|
3083 |
|
|
|
3084 |
</pre><h3><a name="V4.31_Library"></a>Library</h3><pre>
|
|
|
3085 |
|
|
|
3086 |
Fixes bugs:
|
|
|
3087 |
- A label in the ENUM_PTR procedure generating macros was often not
|
|
|
3088 |
referenced, leading to compiler warnings. (gsstruct.h, gxxfont.h,
|
|
|
3089 |
gdevmem.c, gschar.c, gscolor2.c, gsdevice.c, gsfont0.c, gsht.c, gsstate.c,
|
|
|
3090 |
gxcpath.c, gximage.c)
|
|
|
3091 |
- Using the gstate version of setflat rather than the imager version
|
|
|
3092 |
caused compiler warnings (and, in some cases, errors). (gstype1.c)
|
|
|
3093 |
- Non-standard ImageMatrix values for banded images didn't work.
|
|
|
3094 |
(This wasn't actually used.) (gxclread.c)
|
|
|
3095 |
- imagemask with a halftone and portrait orientation colored some
|
|
|
3096 |
inappropriate pixels. (bug introduced in 4.30) (gximage2.c)
|
|
|
3097 |
- When banding, if a character straddled a band boundary the first
|
|
|
3098 |
time it occurred, all occurrences of it were clipped. (bug introduced in
|
|
|
3099 |
4.2x or 4.30) (gxclimag.c)
|
|
|
3100 |
- Degenerate clipping rectangles sometimes got turned into
|
|
|
3101 |
non-degenerate ones by swapping the min and max coordinates. (gxcpath.c)
|
|
|
3102 |
- Resizing an object either allocated a new object unnecessarily
|
|
|
3103 |
(performance bug only), or in very rare cases could corrupt memory.
|
|
|
3104 |
(gsalloc.c)
|
|
|
3105 |
- Very small objects didn't get put on a free list when freed.
|
|
|
3106 |
(Performance bug only.) (gsalloc.c)
|
|
|
3107 |
- Some pointers were incorrectly declared 'const', upsetting some
|
|
|
3108 |
compilers. (gxclread.c)
|
|
|
3109 |
|
|
|
3110 |
Adds more tracing output for -ZL. (gxclread.c)
|
|
|
3111 |
|
|
|
3112 |
Changes the -Za tracing output slightly to aid mechanical analysis of
|
|
|
3113 |
allocation traces: allocation events now always include a '+', deallocation
|
|
|
3114 |
events always include a '-', and the address is always the address of the
|
|
|
3115 |
object data and not the header. (gsalloc.c, gsmemory.c)
|
|
|
3116 |
|
|
|
3117 |
Changes the allocator to keep track of "lost" object and string space
|
|
|
3118 |
separately, to allow an independent check on its activities. (gxalloc.h,
|
|
|
3119 |
gsalloc.c)
|
|
|
3120 |
|
|
|
3121 |
Changes the allocator to use 'memmove' in an obvious place. (gsalloc.c)
|
|
|
3122 |
|
|
|
3123 |
Provides a garbage collector API at the library level to allow
|
|
|
3124 |
implementation of the API in applications other than PostScript
|
|
|
3125 |
interpreters. (gsgc.h)
|
|
|
3126 |
|
|
|
3127 |
</pre>
|
|
|
3128 |
|
|
|
3129 |
<h2><a name="Version4.30"></a>Version 4.30 (limited) (10/23/96)</h2>
|
|
|
3130 |
|
|
|
3131 |
<p>
|
|
|
3132 |
The main purpose of this release is to implement a substantial change in the
|
|
|
3133 |
"high level" image API, after which we believe this API will be stable.
|
|
|
3134 |
|
|
|
3135 |
<h3><a name="V4.30_Documentation"></a>Documentation</h3><pre>
|
|
|
3136 |
|
|
|
3137 |
Documents the changes in the begin_image and image_data device procedures.
|
|
|
3138 |
(drivers.txt)
|
|
|
3139 |
|
|
|
3140 |
</pre><h3><a name="V4.30_Drivers"></a>Drivers</h3><pre>
|
|
|
3141 |
|
|
|
3142 |
Speeds up the PDF writer a little by reducing the amount of allocation,
|
|
|
3143 |
which was causing very frequent garbage collections. (gs_pdfwr.ps,
|
|
|
3144 |
gdevpdft.c)
|
|
|
3145 |
|
|
|
3146 |
Updates the PDF writer for the change in begin_image/image_data.
|
|
|
3147 |
(gdevpdfi.c)
|
|
|
3148 |
|
|
|
3149 |
</pre><h3><a name="V4.30_Platforms"></a>Platforms</h3><pre>
|
|
|
3150 |
|
|
|
3151 |
Fixes bugs:
|
|
|
3152 |
- Some versions of the SGI IRIX compiler have a bug that causes them
|
|
|
3153 |
to try to expand macros that require arguments even when the macro name
|
|
|
3154 |
isn't followed by a left parenthesis. (gdevsgi.h, gdevsgi.c)
|
|
|
3155 |
- The IBM RS6000 compilers now provide <stdlib.h>, so our
|
|
|
3156 |
definitions of malloc and free caused a conflict. (malloc_.h)
|
|
|
3157 |
|
|
|
3158 |
</pre><h3><a name="V4.30_Fonts"></a>Fonts</h3><pre>
|
|
|
3159 |
|
|
|
3160 |
Fixes bugs:
|
|
|
3161 |
- Many Fontmaps included obsolete references to an old
|
|
|
3162 |
Helvetica-Narrow font. (Fontmap.*)
|
|
|
3163 |
|
|
|
3164 |
Makes the GS_FONTPATH directory scanner a little more liberal about what
|
|
|
3165 |
files it examines: it will now examine any file whose first line begins with
|
|
|
3166 |
%!PS-Adobe or %!FontType. (gs_fonts.ps)
|
|
|
3167 |
|
|
|
3168 |
To match an apparent Adobe convention, augments findfont so that if a font
|
|
|
3169 |
isn't in the Fontmap, it will try to load a file whose name is the same as
|
|
|
3170 |
the font name. (gs_fonts.ps)
|
|
|
3171 |
|
|
|
3172 |
To make some questionable Apple font inquiry code work, augments the
|
|
|
3173 |
FAKEFONTS facility so that it sets the FontType of fake fonts to 1.
|
|
|
3174 |
(gs_fonts.ps)
|
|
|
3175 |
|
|
|
3176 |
</pre><h3><a name="V4.30_Interpreter"></a>Interpreter</h3><pre>
|
|
|
3177 |
|
|
|
3178 |
Fixes bugs:
|
|
|
3179 |
- .checkpassword, .putdeviceparams, .putdevparams, setsystemparams,
|
|
|
3180 |
and setuserparams didn't free the results byte array, causing a memory leak
|
|
|
3181 |
(until the next garbage collection). (zdevice.c, ziodev.c, zusparam.c)
|
|
|
3182 |
|
|
|
3183 |
</pre><h3><a name="V4.30_Library"></a>Library</h3><pre>
|
|
|
3184 |
|
|
|
3185 |
Fixes bugs:
|
|
|
3186 |
- The code for emulating floating point multiplication with
|
|
|
3187 |
conversion to fixed point didn't detect overflow correctly, which could
|
|
|
3188 |
produce incorrect results instead of a limitcheck. (gsmisc.c)
|
|
|
3189 |
- A macro cast a pointer incorrectly, leading to spurious compiler
|
|
|
3190 |
warnings. (gxfixed.h)
|
|
|
3191 |
- The code for emulating fixed-to-float conversion computed the
|
|
|
3192 |
exponent incorrectly. (gsmisc.c)
|
|
|
3193 |
- The algorithm for advancing a DDA a given number of steps (not
|
|
|
3194 |
actually used anywhere before this version) was wrong. (gxdda.h)
|
|
|
3195 |
- The clipping box returned by clipping devices was incorrect,
|
|
|
3196 |
causing parts of the page to disappear. (bug introduced in 4.20)
|
|
|
3197 |
(gxcpath.c)
|
|
|
3198 |
|
|
|
3199 |
Changes the begin_image and image_data device procedures:
|
|
|
3200 |
- begin_image now takes an optional subrectangle instead of a set of
|
|
|
3201 |
shape flags.
|
|
|
3202 |
- image_data now always takes complete rows of pixels, takes a
|
|
|
3203 |
source X offset, and returns 1 when it has received all the data.
|
|
|
3204 |
|
|
|
3205 |
The change in begin_image and image_data is a NON-BACKWARD-COMPATIBLE CHANGE
|
|
|
3206 |
IN A PUBLIC INTERFACE; however, this interface was still designated "subject
|
|
|
3207 |
to change", per the notes for release 3.67 and the documentation in
|
|
|
3208 |
drivers.txt. (gsiparam.h, gxclpath.h, gxdda.h, gxdevice.h, gximage.h,
|
|
|
3209 |
gdevbbox.c, gdevnfwd.c, gsimage.c, gxclimag.c, gxclread.c, gximage.c,
|
|
|
3210 |
gximage?.c)
|
|
|
3211 |
|
|
|
3212 |
</pre>
|
|
|
3213 |
|
|
|
3214 |
<hr>
|
|
|
3215 |
|
|
|
3216 |
<h2><a name="Version4.21"></a>Version 4.21 (limited) (10/17/96)</h2>
|
|
|
3217 |
|
|
|
3218 |
<p>
|
|
|
3219 |
The purpose of this release is to fix bugs reported in 4.0x, 4.10, and 4.20.
|
|
|
3220 |
|
|
|
3221 |
<h3><a name="V4.21_Documentation"></a>Documentation</h3><pre>
|
|
|
3222 |
|
|
|
3223 |
Fixes bugs:
|
|
|
3224 |
- The Ghostscript man page had a .TH in the middle. (gs.1)
|
|
|
3225 |
|
|
|
3226 |
</pre><h3><a name="V4.21_Procedures"></a>Procedures</h3><pre>
|
|
|
3227 |
|
|
|
3228 |
Fixes bugs:
|
|
|
3229 |
- The shared version of zlib was always called libgz; on most
|
|
|
3230 |
systems, it is now called libz (but not on Red Hat Linux, where libz is a
|
|
|
3231 |
library for dealing with time zones). (*.mak, gs.mak, libpng.mak, zlib.mak)
|
|
|
3232 |
- The pdf2dsc.1 man page wasn't installed on Unix systems.
|
|
|
3233 |
(unix-end.mak)
|
|
|
3234 |
- font2c generated procedures named gsf_xxx, but genconf assumed
|
|
|
3235 |
they were named gs_f_xxx. (int.mak)
|
|
|
3236 |
|
|
|
3237 |
</pre><h3><a name="V4.21_Drivers"></a>Drivers</h3><pre>
|
|
|
3238 |
|
|
|
3239 |
Updates the user-contributed LBP-8II driver to correct unspecified problems.
|
|
|
3240 |
(gdevlbp8.c)
|
|
|
3241 |
|
|
|
3242 |
Adds a user-contributed driver for Avance Logic SuperVGA cards.
|
|
|
3243 |
(gdevsvga.c, devs.mak)
|
|
|
3244 |
|
|
|
3245 |
</pre><h3><a name="V4.21_Platforms"></a>Platforms</h3><pre>
|
|
|
3246 |
|
|
|
3247 |
Fixes bugs:
|
|
|
3248 |
- On Windows NT, a 32-bit parameter was truncated to 16 bits,
|
|
|
3249 |
preventing drawing of scroll bars of the image window when the window is
|
|
|
3250 |
uncovered. (dwimg.cpp)
|
|
|
3251 |
|
|
|
3252 |
</pre><h3><a name="V4.21_Fonts"></a>Fonts</h3><pre>
|
|
|
3253 |
|
|
|
3254 |
Fixes bugs:
|
|
|
3255 |
- The free URW Grotesk and Antiqua fonts were omitted from the
|
|
|
3256 |
distribution.
|
|
|
3257 |
|
|
|
3258 |
</pre><h3><a name="V4.21_Interpreter"></a>Interpreter</h3><pre>
|
|
|
3259 |
|
|
|
3260 |
Fixes bugs:
|
|
|
3261 |
- Defining a new global instance of a built-in resource
|
|
|
3262 |
(ColorRendering, ColorSpace, Form, Halftone, Pattern, ProcSet) caused an
|
|
|
3263 |
invalidaccess error. (gs_res.ps)
|
|
|
3264 |
- pathbbox with no current path left an extra item on the stack when
|
|
|
3265 |
the error occurred. (gs_init.ps)
|
|
|
3266 |
- findresource for an undefined resource instance didn't preserve
|
|
|
3267 |
the contents of the stack. (gs_res.ps)
|
|
|
3268 |
|
|
|
3269 |
Adds a new file providing a procedural interface with a very rudimentary
|
|
|
3270 |
form of job encapsulation. (gserver.c)
|
|
|
3271 |
|
|
|
3272 |
Changes the initial value of MaxOpStack to 20000, for the sake of a few
|
|
|
3273 |
badly-behaved files. (gs_init.ps, pdf_base.ps)
|
|
|
3274 |
|
|
|
3275 |
</pre><h3><a name="V4.21_Library"></a>Library</h3><pre>
|
|
|
3276 |
|
|
|
3277 |
Fixes bugs:
|
|
|
3278 |
- If the image operators failed to allocated their bookkeeping
|
|
|
3279 |
structure, the result was a crash rather than VMerror. (gximage.c)
|
|
|
3280 |
- gx_default_fill_triangle (currently used only to implement the
|
|
|
3281 |
fastest case of stroke) had a typo that could cause a numeric exception or
|
|
|
3282 |
incorrect output, and another typo that could produce incorrect output.
|
|
|
3283 |
(gdevddrw.c)
|
|
|
3284 |
- When banding, if the first occurrence of a character fell partly
|
|
|
3285 |
off the page, all occurrences of that character on the page could be clipped
|
|
|
3286 |
or mangled. (gxclbits.c, gxclimag.c)
|
|
|
3287 |
- When testing whether it's worthwhile compressing a bitmap for
|
|
|
3288 |
banding, the compressor was allowed to generate a lot more output than
|
|
|
3289 |
needed to make the test. (gxclbits.c)
|
|
|
3290 |
- Certain cases of unrotated gray-scale images dropped the first or
|
|
|
3291 |
last pixel of each scan line. (gximage2.c)
|
|
|
3292 |
- In rare cases, a run of pixels in a image could get erroneously
|
|
|
3293 |
displayed in the same color as the previous run, because of a cache
|
|
|
3294 |
bookkeeping bug. (gximage3.c)
|
|
|
3295 |
- The sample driver for the library had gotten inconsistent with a
|
|
|
3296 |
header file. (gslib.c)
|
|
|
3297 |
- A declaration was followed by an extraneous semicolon, which upset
|
|
|
3298 |
some compilers. (gxht.h)
|
|
|
3299 |
- Missing parentheses caused a test for thin lines to be incorrect.
|
|
|
3300 |
(gxstroke.c)
|
|
|
3301 |
|
|
|
3302 |
</pre>
|
|
|
3303 |
|
|
|
3304 |
<h2><a name="Version4.20"></a>Version 4.20 (limited) (10/13/96)</h2>
|
|
|
3305 |
|
|
|
3306 |
<p>
|
|
|
3307 |
This release has internal changes for future support of banded image
|
|
|
3308 |
processing, but no externally visible changes. Its primary purpose is to
|
|
|
3309 |
incorporate speedups for clipped images. It does *not* incorporate fixes
|
|
|
3310 |
for all problems reported in 4.0x or 4.10.
|
|
|
3311 |
|
|
|
3312 |
<h3><a name="V4.20_Documentation"></a>Documentation</h3><pre>
|
|
|
3313 |
|
|
|
3314 |
Documents the new get_clipping_box device procedure. (drivers.txt)
|
|
|
3315 |
|
|
|
3316 |
</pre><h3><a name="V4.20_Procedures"></a>Procedures</h3><pre>
|
|
|
3317 |
|
|
|
3318 |
Fixes bugs:
|
|
|
3319 |
- There were many, many minor inconsistencies between the makefiles
|
|
|
3320 |
and the source code. (We finally have an automated tool to detect these.)
|
|
|
3321 |
(devs.mak, int.mak, lib.mak, unixtail.mak; gsutil.c, zwppm.c)
|
|
|
3322 |
- Some makefile rules weren't properly terminated by a blank line.
|
|
|
3323 |
(lib.mak)
|
|
|
3324 |
|
|
|
3325 |
</pre><h3><a name="V4.20_Utilities"></a>Utilities</h3><pre>
|
|
|
3326 |
|
|
|
3327 |
Fixes bugs:
|
|
|
3328 |
- The comments in gslp.ps had gotten out of date. (gslp.ps)
|
|
|
3329 |
|
|
|
3330 |
Adds --no-eject-file and --no-eject-formfeed switches to gslp.ps, to allow
|
|
|
3331 |
packing files in multi-column printouts. (gslp.ps)
|
|
|
3332 |
|
|
|
3333 |
</pre><h3><a name="V4.20_Drivers"></a>Drivers</h3><pre>
|
|
|
3334 |
|
|
|
3335 |
Adds a user-contributed driver for the Epson LP-8000 laser printer.
|
|
|
3336 |
(gdevlp8k.c)
|
|
|
3337 |
|
|
|
3338 |
Adds a DisplayMode parameter to the vgalib device. (gdevvglb.c)
|
|
|
3339 |
|
|
|
3340 |
Removes the requirement of typing a character at the end of each page using
|
|
|
3341 |
the vgalib driver. THIS IS A USER-VISIBLE, NON-BACKWARD-COMPATIBLE CHANGE.
|
|
|
3342 |
(gdevvglb.c)
|
|
|
3343 |
|
|
|
3344 |
</pre><h3><a name="V4.20_Interpreter"></a>Interpreter</h3><pre>
|
|
|
3345 |
|
|
|
3346 |
Updates code to accommodate the new get_clipping_box device procedure.
|
|
|
3347 |
(zupath.c)
|
|
|
3348 |
|
|
|
3349 |
</pre><h3><a name="V4.20_Library"></a>Library</h3><pre>
|
|
|
3350 |
|
|
|
3351 |
Fixes bugs:
|
|
|
3352 |
- When a CTM was passed through the band list, it didn't get
|
|
|
3353 |
translated to match the band coordinate system. (This had no effect,
|
|
|
3354 |
because the translation part of the CTM was never used.) (gxclread.c)
|
|
|
3355 |
|
|
|
3356 |
Adds a ',' debugging switch to disable high-level operations when banding.
|
|
|
3357 |
(gxclpath.c)
|
|
|
3358 |
|
|
|
3359 |
Adds an optional get_clipping_box device procedure, so that filling and
|
|
|
3360 |
stroking can clip more aggressively. (gdevmem.h, gdevprn.h, gxdevice.h,
|
|
|
3361 |
gxpaint.h, gxpath.h, gzacpath.h, gdevdflt.c, gdevht.c, gdevnfwd.c,
|
|
|
3362 |
gxacpath.c, gxclip2.c, gxclist.c, gxcpath.c, gxpcmap.c, gxfill.c,
|
|
|
3363 |
gxstroke.c)
|
|
|
3364 |
|
|
|
3365 |
Speeds up clipped filling and stroking, by checking against the device
|
|
|
3366 |
clipping box. (gxfill.c, gxstroke.c)
|
|
|
3367 |
|
|
|
3368 |
Adds the ability to clip with a rectangle a clipping path being accumulated,
|
|
|
3369 |
and uses it to do more aggressive clipping when banding. (gzacpath.h,
|
|
|
3370 |
gxacpath.c, gxclread.c)
|
|
|
3371 |
|
|
|
3372 |
Speeds up clipping of objects lying partly above or below the clipping
|
|
|
3373 |
region. (gxcpath.c)
|
|
|
3374 |
|
|
|
3375 |
Speeds up clipping vertically-oriented objects (such as 90 degree rotated
|
|
|
3376 |
images or vertical rectangles) with convex clipping regions, by checking for
|
|
|
3377 |
vertical rectangles contained in multiple clipping rectangles. (gxcpath.c)
|
|
|
3378 |
|
|
|
3379 |
Speeds up the handling of 90 degree rotated gray-scale images. (gximage2.c)
|
|
|
3380 |
|
|
|
3381 |
Enhances the band list so that it can contain commands for a range of bands,
|
|
|
3382 |
not just a single band or all bands. (gxcldev.h, gxclist.h, gxclbits.c,
|
|
|
3383 |
gxclist.c, gxclread.c)
|
|
|
3384 |
|
|
|
3385 |
Adds an operation to the DDA structure, for eventual support of clipped
|
|
|
3386 |
images. (gxdda.h)
|
|
|
3387 |
|
|
|
3388 |
Factors out some macros useful for generating bit-transformation tables.
|
|
|
3389 |
(gsbittab.h, gsbittab.c, gsflip.c)
|
|
|
3390 |
|
|
|
3391 |
</pre>
|
|
|
3392 |
|
|
|
3393 |
<hr>
|
|
|
3394 |
|
|
|
3395 |
<h2><a name="Version4.10"></a>Version 4.10 (limited) (9/25/96)</h2>
|
|
|
3396 |
|
|
|
3397 |
<p>
|
|
|
3398 |
This release adds local garbage collection, and a number of performance
|
|
|
3399 |
improvements for garbage collection in general. We will support it for one
|
|
|
3400 |
or two OEMs, but it is not a public release.
|
|
|
3401 |
|
|
|
3402 |
<h3><a name="V4.10_Documentation"></a>Documentation</h3><pre>
|
|
|
3403 |
|
|
|
3404 |
Moves documentation for all releases before 4.0 to history3.txt. (NEWS,
|
|
|
3405 |
history3.txt)
|
|
|
3406 |
|
|
|
3407 |
</pre><h3><a name="V4.10_Utilities"></a>Utilities</h3><pre>
|
|
|
3408 |
|
|
|
3409 |
Fixes bugs:
|
|
|
3410 |
- pdf2dsc.ps didn't have a proper license notice. (pdf2dsc.ps)
|
|
|
3411 |
|
|
|
3412 |
</pre><h3><a name="V4.10_Drivers"></a>Drivers</h3><pre>
|
|
|
3413 |
|
|
|
3414 |
Adds a psgray driver, like psmono, to produce 8-bit gray PostScript (level
|
|
|
3415 |
1) images. (devs.mak, *.mak, gdevpsim.c)
|
|
|
3416 |
|
|
|
3417 |
Changes the psmono driver to allow runs of up to 255 repeated bytes.
|
|
|
3418 |
(gdevpsim.c)
|
|
|
3419 |
|
|
|
3420 |
</pre><h3><a name="V4.10_Interpreter"></a>Interpreter</h3><pre>
|
|
|
3421 |
|
|
|
3422 |
Fixes bugs:
|
|
|
3423 |
- setdevice erased the page even if this wasn't necessary.
|
|
|
3424 |
(zdevice.c)
|
|
|
3425 |
|
|
|
3426 |
Speeds up the garbage collector, primarily by speeding up pointer
|
|
|
3427 |
relocation. (int.mak, ipacked.h, iref.h, ialloc.c, igc.c, igcref.c)
|
|
|
3428 |
|
|
|
3429 |
Actually implements local garbage collection. (igc.h, ivmspace.h, igc.c,
|
|
|
3430 |
igcref.c, igcstr.c, ireclaim.c)
|
|
|
3431 |
|
|
|
3432 |
Adds some additional error checking for the -Z? switch. (ilocate.c)
|
|
|
3433 |
|
|
|
3434 |
Moves a utility for color mapping from the interpreter to the library.
|
|
|
3435 |
(icolor.h, zcolor.c)
|
|
|
3436 |
|
|
|
3437 |
Adds a MinScreenLevels user parameter. (zusparam.c)
|
|
|
3438 |
|
|
|
3439 |
</pre><h3><a name="V4.10_Interpreter_PDF"></a>Interpreter (PDF)</h3><pre>
|
|
|
3440 |
|
|
|
3441 |
Adds partial support for the PDF 1.2 gs operator, reverse engineered from a
|
|
|
3442 |
PDF 1.2 file. (pdf_draw.ps)
|
|
|
3443 |
|
|
|
3444 |
</pre><h3><a name="V4.10_Library"></a>Library</h3><pre>
|
|
|
3445 |
|
|
|
3446 |
Fixes bugs:
|
|
|
3447 |
- The test for "thin" stroked lines incorrectly claimed some
|
|
|
3448 |
non-thin lines were thin. (gxstroke.c)
|
|
|
3449 |
- The computations for halftone cells didn't work for non-square
|
|
|
3450 |
pixels. (gxdht.h, gsht.c, gsht1.c, gshtscr.c)
|
|
|
3451 |
|
|
|
3452 |
Speeds up the garbage collector a little. (gsstruct.h, gxalloc.h,
|
|
|
3453 |
gxfcache.h, gsfont.c)
|
|
|
3454 |
|
|
|
3455 |
Replaces references to private statically allocated color spaces with
|
|
|
3456 |
references to shared dynamically allocated ones, which are guaranteed to be
|
|
|
3457 |
fully filled-in. (gscie.c)
|
|
|
3458 |
|
|
|
3459 |
Moves a utility for color mapping from the interpreter to the library.
|
|
|
3460 |
(gxfmap.h, gxcmap.c)
|
|
|
3461 |
|
|
|
3462 |
Makes available an imager analogue of setmatrix. (gscoord.h, gscoord.c)
|
|
|
3463 |
|
|
|
3464 |
Adds a parameter to control the minimum number of halftone screen levels.
|
|
|
3465 |
If a halftone cell has fewer pixels than this number, it will be replicated
|
|
|
3466 |
(similar to what AccurateScreens does) until the replicated screen has
|
|
|
3467 |
enough levels. (gxht.h, gshtscr.c)
|
|
|
3468 |
|
|
|
3469 |
</pre>
|
|
|
3470 |
|
|
|
3471 |
<hr>
|
|
|
3472 |
|
|
|
3473 |
<h2><a name="Version4.03"></a>Version 4.03 (9/23/96)</h2>
|
|
|
3474 |
|
|
|
3475 |
<p>
|
|
|
3476 |
This was an emergency re-release of 4.02 to fix the stdin redirection
|
|
|
3477 |
problem. It has essentially no other changes.
|
|
|
3478 |
|
|
|
3479 |
<h3><a name="V4.03_Documentation"></a>Documentation</h3><pre>
|
|
|
3480 |
|
|
|
3481 |
Fixes bugs:
|
|
|
3482 |
- Solaris 2.x has /usr/ucb/install, not installbsd. (make.txt)
|
|
|
3483 |
|
|
|
3484 |
Updates current.txt to mention the ability to share libpng and libgz.
|
|
|
3485 |
(current.txt)
|
|
|
3486 |
|
|
|
3487 |
</pre><h3><a name="V4.03_Procedures"></a>Procedures</h3><pre>
|
|
|
3488 |
|
|
|
3489 |
Fixes bugs:
|
|
|
3490 |
- A rule assumed that the makefile was named `makefile'.
|
|
|
3491 |
(unixtail.mak)
|
|
|
3492 |
|
|
|
3493 |
</pre><h3><a name="V4.03_Drivers"></a>Drivers</h3><pre>
|
|
|
3494 |
|
|
|
3495 |
Fixes bugs:
|
|
|
3496 |
- The stcolor drivers had an off-by-1 error that could cause them to
|
|
|
3497 |
write into unallocated memory. (gdevstc.c)
|
|
|
3498 |
- The Imagen driver wouldn't compile with gcc. (gdevimgn.c)
|
|
|
3499 |
|
|
|
3500 |
</pre><h3><a name="V4.03_Fonts"></a>Fonts</h3><pre>
|
|
|
3501 |
|
|
|
3502 |
Fixes bugs:
|
|
|
3503 |
- The Solaris fontmap had gotten out of date. (Fontmap.Sol)
|
|
|
3504 |
|
|
|
3505 |
</pre><h3><a name="V4.03_Streams"></a>Streams</h3><pre>
|
|
|
3506 |
|
|
|
3507 |
Fixes bugs:
|
|
|
3508 |
- The test for stdin being non-seekable could leave the file error
|
|
|
3509 |
flag set, which caused an infinite loop when trying to read from the file
|
|
|
3510 |
later. (sfile.c, sfileno.c)
|
|
|
3511 |
|
|
|
3512 |
</pre>
|
|
|
3513 |
|
|
|
3514 |
<h2><a name="Version4.02"></a>Version 4.02 (9/19/96)</h2>
|
|
|
3515 |
|
|
|
3516 |
<p>
|
|
|
3517 |
This release fixes a few more bugs, and adds the ability to read encrypted
|
|
|
3518 |
PDF files and some PDF 1.2 files.
|
|
|
3519 |
|
|
|
3520 |
<p>
|
|
|
3521 |
This release was withdrawn after a few days because the stdin redirection
|
|
|
3522 |
fix, which was made at the last minute, cause Ghostview to hang.
|
|
|
3523 |
|
|
|
3524 |
<h3><a name="V4.02_Documentation"></a>Documentation</h3><pre>
|
|
|
3525 |
|
|
|
3526 |
Fixes bugs:
|
|
|
3527 |
- The list of required support files was incorrect. (install.txt)
|
|
|
3528 |
- The descriptions of file name lookup weren't accurate. (use.txt)
|
|
|
3529 |
- A J should have been an H. (gxbitmap.h)
|
|
|
3530 |
|
|
|
3531 |
Updates the documentation about encrypted PDF files. (new-user.txt)
|
|
|
3532 |
|
|
|
3533 |
Documents what the 13 base PDF fonts are. (ps2pdf.txt)
|
|
|
3534 |
|
|
|
3535 |
Fixes a tiny typo. (c-style.txt)
|
|
|
3536 |
|
|
|
3537 |
Adds a user-contributed man page for the new pdf2dsc script. (pdf2dsc.1)
|
|
|
3538 |
|
|
|
3539 |
Updates the government restricted rights notice in the Aladdin Ghostscript
|
|
|
3540 |
Free Public License. (PUBLIC)
|
|
|
3541 |
|
|
|
3542 |
Adds the URL of test files to the bug report form. (new-user.txt)
|
|
|
3543 |
|
|
|
3544 |
Puts the bug reporting form in a separate file. (readme, bug-form.txt,
|
|
|
3545 |
new-user.txt)
|
|
|
3546 |
|
|
|
3547 |
Notes that map_xxx_color procedures should not return gx_no_color_index.
|
|
|
3548 |
(drivers.txt)
|
|
|
3549 |
|
|
|
3550 |
Notes that Ghostscript supports the Flate filters. (language.txt)
|
|
|
3551 |
|
|
|
3552 |
Documents the use of the system libpng and zlib. (make.txt, gs.mak)
|
|
|
3553 |
|
|
|
3554 |
Notes that Borland C++ 5.0 and 5.01 will not compile Ghostscript correctly.
|
|
|
3555 |
(make.txt)
|
|
|
3556 |
|
|
|
3557 |
</pre><h3><a name="V4.02_Procedures"></a>Procedures</h3><pre>
|
|
|
3558 |
|
|
|
3559 |
Fixes bugs:
|
|
|
3560 |
- Using both DELAYBIND and SAFER caused problems. (pstotext uses
|
|
|
3561 |
DELAYBIND.) (gs_init.ps)
|
|
|
3562 |
|
|
|
3563 |
</pre><h3><a name="V4.02_Utilities"></a>Utilities</h3><pre>
|
|
|
3564 |
|
|
|
3565 |
Fixes bugs:
|
|
|
3566 |
- Some pdf2ps machinery interfered with the PDF interpreter.
|
|
|
3567 |
(pdf_2ps.ps, pdf_main.ps)
|
|
|
3568 |
- In the output of pdf2ps, page numbers in link destinations were
|
|
|
3569 |
too high by 1. (pdf_main.ps)
|
|
|
3570 |
- viewpbm didn't handle value ranges other than [0..255] correctly.
|
|
|
3571 |
(viewpbm.ps)
|
|
|
3572 |
|
|
|
3573 |
Adds a user-contributed shell script to invoke pdf2dsc.ps. (pdf2dsc,
|
|
|
3574 |
unix-end.mak)
|
|
|
3575 |
|
|
|
3576 |
Adds a switch to the genconf utility to set the prefix for generated
|
|
|
3577 |
procedure names. (genconf.c)
|
|
|
3578 |
|
|
|
3579 |
Adds the option of using system libraries (possibly shared) for libpng
|
|
|
3580 |
and/or zlib. (*head.mak, msc*.mak, os2.mak, tccommon.mak, wccommon.mak;
|
|
|
3581 |
libpng.mak, zlib.mak)
|
|
|
3582 |
|
|
|
3583 |
</pre><h3><a name="V4.02_Drivers"></a>Drivers</h3><pre>
|
|
|
3584 |
|
|
|
3585 |
Fixes bugs:
|
|
|
3586 |
- The X11 display devices ignored the -DA4 compile-time option.
|
|
|
3587 |
(gdevx.c)
|
|
|
3588 |
- The garbage collector could scramble the state of the CGM drivers.
|
|
|
3589 |
(gxdevice.h, gdevcgm.c)
|
|
|
3590 |
- An identifier of more than 31 characters upset the VAX DEC C
|
|
|
3591 |
compiler. (gdevcgml.h, gdevcgml.c)
|
|
|
3592 |
- In case of an error in trying to set the CoreDistVersion distiller
|
|
|
3593 |
parameter, a variable could be used without initialization. (gdevpdfp.c)
|
|
|
3594 |
- When DEBUG is selected, the X Windows driver referenced _Xdebug,
|
|
|
3595 |
which is not defined in (at least the VMS version of) DECWindows. (x_.h,
|
|
|
3596 |
gdevxini.c)
|
|
|
3597 |
- Some map_cmyk_color implementations could return "transparent".
|
|
|
3598 |
(gdevbit.c)
|
|
|
3599 |
- Setting GraphicsAlphaBits or TextAlphaBits in the P*M drivers
|
|
|
3600 |
caused an error. (gdevpbm.c)
|
|
|
3601 |
- If a user cancelled printing under MS Windows, a confusing error
|
|
|
3602 |
resulted, and a temporary file wasn't deleted. (gdevwpr2.c)
|
|
|
3603 |
- The map_color_rgb procedure for the bit devices produced incorrect
|
|
|
3604 |
results. (This probably had no effect in practice.) (gdevbit.c)
|
|
|
3605 |
- The os2prn device produced incorrect output. (gdevos2p.c)
|
|
|
3606 |
- The OS/2 PM device didn't detect PM applications correctly.
|
|
|
3607 |
(gdevpm.c)
|
|
|
3608 |
- The MS Windows printer driver didn't automatically detect the
|
|
|
3609 |
printer's color capabilities. (gdevwpr2.c)
|
|
|
3610 |
- The BJC-610 driver didn't print at 720 dpi. (gdevcdj.c)
|
|
|
3611 |
- The static prototypes of many devices didn't include the far_data
|
|
|
3612 |
keyword. (gdev3852.c, gdev4081.c, gdevbgi.c, gdevcgm.c, gdevht.c,
|
|
|
3613 |
gdevimgn.c, gdevl256.c, gdevmrop.c, gdevn533.c, gdevnfwd.c, gdevnp6.c,
|
|
|
3614 |
gdevo182.c, gdevpcfb.c, gdevpdf.c, gdevpe.c, gdevpm.c, gdevs3ga.c,
|
|
|
3615 |
gdevsnfb.c, gdevsppr.c, gdevsun.c, gdevsvga.c, gdevtknk.c, gdevvglb.c,
|
|
|
3616 |
gdevwddb.c, gdevwprn.c, gdevx.c, gdevxalt.c)
|
|
|
3617 |
- The (original) deskjet driver collapsed print lines towards the
|
|
|
3618 |
left margin. (gdevdjet.c)
|
|
|
3619 |
|
|
|
3620 |
Adds to the pgm/pgnm/ppm/pnm[raw] drivers the ability to set the maximum
|
|
|
3621 |
pixel value, by setting any of the Gray/Red/Green/BlueValues device
|
|
|
3622 |
parameters. (gdevpbm.c)
|
|
|
3623 |
|
|
|
3624 |
Adds pkm[raw] drivers, which do all their internal computations in CMYK and
|
|
|
3625 |
convert the data to RGB as they write the file. (gdevpbm.c)
|
|
|
3626 |
|
|
|
3627 |
</pre><h3><a name="V4.02_Platforms"></a>Platforms</h3><pre>
|
|
|
3628 |
|
|
|
3629 |
Fixes bugs:
|
|
|
3630 |
- The VMS script referred to old versions of the third-party
|
|
|
3631 |
libraries. (vms.mak)
|
|
|
3632 |
- Under VMS with DEC C, attempting to open a new file fails.
|
|
|
3633 |
(gp_vms.c)
|
|
|
3634 |
- If you tried to print (gp_printfile) under Windows on a system
|
|
|
3635 |
with no printers installed, Ghostscript caused a GPF. (gp_mswin.c)
|
|
|
3636 |
|
|
|
3637 |
Restores support for a non-DLL MS Windows platform. (bcwin32.mak,
|
|
|
3638 |
dwnodll.cpp)
|
|
|
3639 |
|
|
|
3640 |
Adds a new MS Windows DLL call, gsdll_get_bitmap. (gsdll16.def,
|
|
|
3641 |
gsdll32.def, dll.txt, gdevwdib.c)
|
|
|
3642 |
|
|
|
3643 |
Fixes a variety of other small Windows- and OS/2-related problems, mostly
|
|
|
3644 |
related to printing. (gp_mswin.h, dpmainc.c, dwmain.cpp, dwmainc.cpp,
|
|
|
3645 |
gdevmswn.c, gdevpm.c, gdevwpr2.c, gp_mswin.c)
|
|
|
3646 |
|
|
|
3647 |
</pre><h3><a name="V4.02_Interpreter"></a>Interpreter</h3><pre>
|
|
|
3648 |
|
|
|
3649 |
Fixes bugs:
|
|
|
3650 |
- The value of /newerror in $error was true at the end of
|
|
|
3651 |
initialization. We now reset it after each internal use of stopped if
|
|
|
3652 |
necessary. (gs_dps1.ps, gs_fform.ps, gs_fonts.ps, gs_init.ps, gs_pdf.ps,
|
|
|
3653 |
gs_res.ps, gs_type1.ps)
|
|
|
3654 |
- setpagedevice (and finddevice) didn't recognize Default.
|
|
|
3655 |
(gs_init.ps)
|
|
|
3656 |
- When running with -dNODISPLAY, calling gssetresolution would cause
|
|
|
3657 |
a crash. (gs_init.ps)
|
|
|
3658 |
- A particular combination of save, .forgetsave, and garbage
|
|
|
3659 |
collection could cause a memory access error in restore. (isave.c)
|
|
|
3660 |
- Some references to systemdict were affected if a user redefined
|
|
|
3661 |
the name /systemdict. (gs_cmdl.ps, gs_fonts.ps, gs_kanji.ps, gs_dps1.ps,
|
|
|
3662 |
gs_init.ps, gs_res.ps, gs_statd.ps, gs_type1.ps)
|
|
|
3663 |
- The insideness testing operators caused an invalid memory access.
|
|
|
3664 |
(drivers.txt, zupath.c)
|
|
|
3665 |
- If a readline reached an input buffer boundary between the \r and
|
|
|
3666 |
\n of a 2-character EOL, an error could occur. (zfileio.c)
|
|
|
3667 |
- setdevparams caused an error. (gs_lev2.ps)
|
|
|
3668 |
|
|
|
3669 |
Changes file names beginning with ./ or ../ so they are recognized as
|
|
|
3670 |
"absolute" and not subject to the search path. (gp_dosfs.c, gp_ntfs.c,
|
|
|
3671 |
gp_os2.c, gp_unifn.c)
|
|
|
3672 |
|
|
|
3673 |
Changes the exit code for -h or --help from 0 to 1, so an invoking program
|
|
|
3674 |
will keep the output around for the user to look at. (imainarg.c)
|
|
|
3675 |
|
|
|
3676 |
Adds the FlateEncode and FlateDecode filters; adds PNG pixel prediction to
|
|
|
3677 |
the LZW filters. These additions are required for PDF 1.2 and will be part
|
|
|
3678 |
of PostScript Level 3. (int.mak, lib.mak, zfdecode.c, zfilter2.c, zfzlib.c,
|
|
|
3679 |
zfpngp.c [deleted])
|
|
|
3680 |
|
|
|
3681 |
</pre><h3><a name="V4.02_Interpreter_PDF"></a>Interpreter (PDF)</h3><pre>
|
|
|
3682 |
|
|
|
3683 |
Fixes bugs:
|
|
|
3684 |
- The copyright notices on some files didn't mention the Aladdin
|
|
|
3685 |
free license. (pdf_*.ps)
|
|
|
3686 |
- Some references to systemdict were affected if a user redefined
|
|
|
3687 |
the name /systemdict. (pdf_font.ps)
|
|
|
3688 |
- The value of /newerror in $error was true at the end of
|
|
|
3689 |
initialization. We now reset it after each internal use of stopped if
|
|
|
3690 |
necessary. (pdf_main.ps)
|
|
|
3691 |
- stdin redirection failed for PDF files even if the new stdin was
|
|
|
3692 |
seekable. (pdf_main.ps)
|
|
|
3693 |
- The Rotate key rotated pages in the wrong direction.
|
|
|
3694 |
(pdf_main.ps)
|
|
|
3695 |
|
|
|
3696 |
Adds a minimal "security socket" to the interpreter. This does not include
|
|
|
3697 |
any actual decryption code; such code is available elsewhere (see
|
|
|
3698 |
new-user.txt). (int.mak, pdf_base.ps, pdf_main.ps, pdf_sec.ps)
|
|
|
3699 |
|
|
|
3700 |
Adds a PDF 1.2 capability:
|
|
|
3701 |
- The destination in a Dest array can be a page number as well as a
|
|
|
3702 |
page object. (pdf_main.ps)
|
|
|
3703 |
|
|
|
3704 |
</pre><h3><a name="V4.02_Streams"></a>Streams</h3><pre>
|
|
|
3705 |
|
|
|
3706 |
Fixes bugs:
|
|
|
3707 |
- stdin was assumed to be non-seekable. (sfile.c, sfileno.c)
|
|
|
3708 |
|
|
|
3709 |
</pre><h3><a name="V4.02_Library"></a>Library</h3><pre>
|
|
|
3710 |
|
|
|
3711 |
Fixes bugs:
|
|
|
3712 |
- Garbage collection could corrupt a pointer in Type 0 fonts.
|
|
|
3713 |
(gxfont0.h, gsfont0.c)
|
|
|
3714 |
- When applying hints to a Type 1 font outline, the last point could
|
|
|
3715 |
sometimes get moved twice, causing output anomalies. (gxhint3.c)
|
|
|
3716 |
- An #include needed for debugging was missing. (gxcmap.h)
|
|
|
3717 |
- Graphics states included a no-longer-used private color space
|
|
|
3718 |
object. (gsstate.c)
|
|
|
3719 |
- Images could get clipped randomly in the X direction. (I don't
|
|
|
3720 |
understand why this problem hasn't shown up more often, since it's been
|
|
|
3721 |
there since release 4.00.) (gximage.c)
|
|
|
3722 |
- The arct and arcto operators failed to draw the line to the
|
|
|
3723 |
starting point of the arc. (bug introduced in 4.01) (gspath1.c)
|
|
|
3724 |
- Prefix subclasses of simple structures caused an invalid memory
|
|
|
3725 |
access. (gsstruct.h)
|
|
|
3726 |
- The variable fheight was sometimes unused. (gstype1.c)
|
|
|
3727 |
- igcd and imod didn't have prototypes in an appropriate header
|
|
|
3728 |
file, and were declared extern in several places. (gsdcolor.h, gsline.h,
|
|
|
3729 |
gxarith.h, gxdht.h, gsht.c, gshtscr.c, gsimage.c, gsline.c, gstype1.c,
|
|
|
3730 |
gxclimag.c)
|
|
|
3731 |
- When using a non-identity RenderTable in a CIE rendering
|
|
|
3732 |
dictionary, all colors came out too light. (gscie.c)
|
|
|
3733 |
- When using anti-aliased graphics, stroked lines were rendered too
|
|
|
3734 |
thin. (gspaint.c)
|
|
|
3735 |
- The default map_cmyk_color implementations could return
|
|
|
3736 |
"transparent". (gxcmap.c)
|
|
|
3737 |
- The number of bits of alpha requested when rendering anti-aliased
|
|
|
3738 |
characters could exceed 4. (gschar.c)
|
|
|
3739 |
- Multi-screen halftones could cause errors or infinite looping when
|
|
|
3740 |
banding. (This problem predates 4.0; I don't know why it didn't show up
|
|
|
3741 |
before.) (gxcldev.h, gxclist.c, gxclread.c)
|
|
|
3742 |
- Skewed or rotated gray-scale images, or masks with a halftoned
|
|
|
3743 |
color, omitted one line of pixels and displaced the image by one pixel.
|
|
|
3744 |
(gximage2.c)
|
|
|
3745 |
|
|
|
3746 |
Adds an implementation of realloc, for systems that don't have one that
|
|
|
3747 |
works. I don't know how to determine this automatically, so for the moment,
|
|
|
3748 |
the code uses our own implementation on Linux (where realloc is known to be
|
|
|
3749 |
broken, at least in some releases) and nowhere else. (malloc_.h,
|
|
|
3750 |
gsmemory.c, gsmisc.c)
|
|
|
3751 |
|
|
|
3752 |
Removes the "OLD" algorithms from the Type 1 hinting source code, since they
|
|
|
3753 |
are no longer executed. (If necessary, they can be retrieved from an older
|
|
|
3754 |
version.) (gxhint3.c)
|
|
|
3755 |
|
|
|
3756 |
</pre>
|
|
|
3757 |
|
|
|
3758 |
<h2><a name="Version4.01"></a>Version 4.01 (7/10/96)</h2>
|
|
|
3759 |
|
|
|
3760 |
<p>
|
|
|
3761 |
This fixes a few minor bugs discovered since the 4.0 release.
|
|
|
3762 |
|
|
|
3763 |
<h3><a name="V4.01_Documentation"></a>Documentation</h3><pre>
|
|
|
3764 |
|
|
|
3765 |
Fixes bugs:
|
|
|
3766 |
- An installation directory name was wrong. (make.txt,
|
|
|
3767 |
unix-lpr.txt)
|
|
|
3768 |
- A URL was wrong. (devices.txt)
|
|
|
3769 |
- A reference to use.doc hadn't been updated. (gs.1)
|
|
|
3770 |
- Some references to /usr/local/lib hadn't been updated. (gs.1)
|
|
|
3771 |
- The NEWS file and history* files still referred to *.doc rather
|
|
|
3772 |
than *.txt. (NEWS, history*.txt)
|
|
|
3773 |
|
|
|
3774 |
Adds a note about compilation on Digital Unix. (make.txt)
|
|
|
3775 |
|
|
|
3776 |
Clarifies that calling gs_exit calls gs_finit automatically. (imain.h)
|
|
|
3777 |
|
|
|
3778 |
Adds a pointer to the PDF encryption patch. (Ridiculous U.S. export control
|
|
|
3779 |
laws don't allow including the patch itself in the main fileset.)
|
|
|
3780 |
(new-user.txt)
|
|
|
3781 |
|
|
|
3782 |
Adds a help file for VMS. (gs-vms.hlp)
|
|
|
3783 |
|
|
|
3784 |
</pre><h3><a name="V4.01_Procedures"></a>Procedures</h3><pre>
|
|
|
3785 |
|
|
|
3786 |
Fixes bugs:
|
|
|
3787 |
- vms.mak had gotten out of sync with the makefiles (again).
|
|
|
3788 |
(vms.mak)
|
|
|
3789 |
- DEVICE{WIDTH,HEIGHT}POINTS didn't override PAPERSIZE.
|
|
|
3790 |
(gs_init.ps)
|
|
|
3791 |
- The Microsoft C makefiles had gotten out of date. (msc.mak)
|
|
|
3792 |
|
|
|
3793 |
The (few) GNU-Licensed drivers were accidentally omitted from the fileset.
|
|
|
3794 |
|
|
|
3795 |
Modifies a makefile for greater reusability. (watclib.mak)
|
|
|
3796 |
|
|
|
3797 |
Adds a 'debug' target for making Unix debugging configurations.
|
|
|
3798 |
(unix-end.mak)
|
|
|
3799 |
|
|
|
3800 |
</pre><h3><a name="V4.01_Utilities"></a>Utilities</h3><pre>
|
|
|
3801 |
|
|
|
3802 |
Fixes bugs:
|
|
|
3803 |
- Some uses of 'run' should be changed to runlibfile. (bdftops.ps,
|
|
|
3804 |
impath.ps, markhint.ps, packfile.ps, showchar.ps, waterfal.ps, wftopfa.ps,
|
|
|
3805 |
wrfont.ps)
|
|
|
3806 |
- Some debugging code hadn't been removed. (gslp.ps)
|
|
|
3807 |
|
|
|
3808 |
Adds a new utility, viewcmyk.ps, for viewing 4-bit CMYK data. (psfiles.txt,
|
|
|
3809 |
unix-end.mak, viewcmyk.ps)
|
|
|
3810 |
|
|
|
3811 |
Improves pdf2dsc by including Title and CreationDate DSC comments (these are
|
|
|
3812 |
displayed by Ghostview) and reducing the size of typical output files by a
|
|
|
3813 |
factor of about 3. (pdf2dsc.ps)
|
|
|
3814 |
|
|
|
3815 |
Incorporates major changes (claimed to be improvements) to ps2ascii
|
|
|
3816 |
contributed by a user. If you have problems with it, please contact him,
|
|
|
3817 |
not Aladdin. (ps2ascii.ps)
|
|
|
3818 |
|
|
|
3819 |
</pre><h3><a name="V4.01_Platforms"></a>Platforms</h3><pre>
|
|
|
3820 |
|
|
|
3821 |
Fixes bugs:
|
|
|
3822 |
- The X value of a bounding box could be computed incorrectly.
|
|
|
3823 |
(gdevbbox.c)
|
|
|
3824 |
|
|
|
3825 |
</pre><h3><a name="V4.01_Platforms"></a>Platforms</h3><pre>
|
|
|
3826 |
|
|
|
3827 |
Fixes bugs:
|
|
|
3828 |
- The Windows DLL sometimes didn't clean up properly. (dll.txt,
|
|
|
3829 |
dpmainc.c, dwdll.cpp, dwmain.cpp, dwmainc.cpp, gsdll.c, gsdll.h)
|
|
|
3830 |
|
|
|
3831 |
</pre><h3><a name="V4.01_Interpreter"></a>Interpreter</h3><pre>
|
|
|
3832 |
|
|
|
3833 |
Fixes bugs:
|
|
|
3834 |
- Reading from a filter could hang forever, because a buffer was
|
|
|
3835 |
allocated 1 byte too small. (zfilter.c)
|
|
|
3836 |
- The search path could become garbage under some circumstances.
|
|
|
3837 |
(imain.c)
|
|
|
3838 |
- A dangling reference to a stack-allocated variable could corrupt
|
|
|
3839 |
memory if a client mixed interpreter calls and direct C calls. (interp.c)
|
|
|
3840 |
- Printing an object to a procedure-based filter could cause an
|
|
|
3841 |
invalid memory access. (zfileio.c)
|
|
|
3842 |
|
|
|
3843 |
</pre><h3><a name="V4.01_Library"></a>Library</h3><pre>
|
|
|
3844 |
|
|
|
3845 |
Fixes bugs:
|
|
|
3846 |
- Setting parameters for an unopened device could cause an access
|
|
|
3847 |
error or invoke the wrong put_params procedure. (gsdparam.c)
|
|
|
3848 |
- Reading from a filter could hang forever, because a buffer was
|
|
|
3849 |
allocated 1 byte too small. (stream.h)
|
|
|
3850 |
- If the current device was the nullpage device, doing a [g]save,
|
|
|
3851 |
selecting a different device, and doing a [g]restore caused an error.
|
|
|
3852 |
(gsdparam.c)
|
|
|
3853 |
|
|
|
3854 |
Adds the ability to append arcs without the initial lineto, for PCL
|
|
|
3855 |
emulation. (gspath.h, gspath1.c)
|
|
|
3856 |
|
|
|
3857 |
</pre>
|
|
|
3858 |
|
|
|
3859 |
<h2><a name="Version4.0"></a>Version 4.0 (6/28/96)</h2>
|
|
|
3860 |
|
|
|
3861 |
<p>
|
|
|
3862 |
This is the first public release since 3.53, with a few more last-minute
|
|
|
3863 |
patches beyond 3.70.
|
|
|
3864 |
|
|
|
3865 |
<h3><a name="V4.0_Documentation"></a>Documentation</h3><pre>
|
|
|
3866 |
|
|
|
3867 |
Fixes bugs:
|
|
|
3868 |
- Many makefiles still referred to .doc files rather than .txt.
|
|
|
3869 |
(cfonts.mak, devs.mak, gs.mak, int.mak, libpng.mak, unix-end.mak, watc.mak,
|
|
|
3870 |
watcwin.mak, wccommon.mak, zlib.mak)
|
|
|
3871 |
- Some FONTPATH-related information was out of date. (use.txt)
|
|
|
3872 |
- The installation directory for fonts was incorrect. (install.txt)
|
|
|
3873 |
- The libpng and zlib versions were out of date. (libpng.mak,
|
|
|
3874 |
zlib.mak)
|
|
|
3875 |
- Some information about GSview was incorrect or incomplete.
|
|
|
3876 |
(new-user.txt)
|
|
|
3877 |
- make.txt said it described installation as well as building.
|
|
|
3878 |
(make.txt)
|
|
|
3879 |
|
|
|
3880 |
Notes that the current release of zlib won't compile and link correctly with
|
|
|
3881 |
Sun cc. (make.txt)
|
|
|
3882 |
|
|
|
3883 |
Adds a little more detail to the C style document. (c-style.txt)
|
|
|
3884 |
|
|
|
3885 |
</pre><h3><a name="V4.0_Procedures"></a>Procedures</h3><pre>
|
|
|
3886 |
|
|
|
3887 |
Fixes bugs:
|
|
|
3888 |
- Some documentation files weren't installed. (unix-end.mak)
|
|
|
3889 |
- Some dependencies were incorrect. (bcwin32.mak)
|
|
|
3890 |
- 'make begin' and 'make clean' deleted too many and/or the wrong
|
|
|
3891 |
files. (bcwin.mak, bcwin32.mak)
|
|
|
3892 |
- libpng.mak didn't work with libpng version 0.89c. (libpng.mak)
|
|
|
3893 |
- -d<var>=<name> was equivalent to -d<var>=/<name>, and there was no
|
|
|
3894 |
way to set a variable to true, false, or null. (use.txt, gs_init.ps,
|
|
|
3895 |
iinit.c, imainarg.c)
|
|
|
3896 |
|
|
|
3897 |
Removes the modules.lis file, which is no longer used.
|
|
|
3898 |
|
|
|
3899 |
Undoes detecting automatically the need to run tar_cat -- the mechanism
|
|
|
3900 |
didn't work, and caused confusion. (unix-end.mak)
|
|
|
3901 |
|
|
|
3902 |
Updates the makefiles to libpng version 0.89, but allows them to work with
|
|
|
3903 |
either 0.88 or 0.89. (*.mak)
|
|
|
3904 |
|
|
|
3905 |
</pre><h3><a name="V4.0_Utilities"></a>Utilities</h3><pre>
|
|
|
3906 |
|
|
|
3907 |
Fixes bugs:
|
|
|
3908 |
- Showing the details of a protected font caused an error.
|
|
|
3909 |
(markhint.ps)
|
|
|
3910 |
|
|
|
3911 |
</pre><h3><a name="V4.0_Drivers"></a>Drivers</h3><pre>
|
|
|
3912 |
|
|
|
3913 |
Fixes bugs:
|
|
|
3914 |
- A copyright notice was wrong. (gs_pdfwr.ps)
|
|
|
3915 |
- PDF link annotations could get written with two Dest keys.
|
|
|
3916 |
(gdevpdfm.c)
|
|
|
3917 |
- MakeProcInstance and FreeProcInstance were called on platforms
|
|
|
3918 |
where it wasn't appropriate. (gdevwpr2.c, gdevwprn.c, gp_mswin.c)
|
|
|
3919 |
- On X servers that return very large values for the "virtual
|
|
|
3920 |
screen" size in millimeters but correct values for the screen size in
|
|
|
3921 |
pixels, a rangecheck could occur. (gdevxini.c)
|
|
|
3922 |
- The bounding box device could return garbage if stroke or fill was
|
|
|
3923 |
ever invoked with an empty path. (gdevbbox.c)
|
|
|
3924 |
|
|
|
3925 |
Replaces the LBP8 driver with a revised one contributed by a user.
|
|
|
3926 |
(gdevlbp8.c, devs.mak)
|
|
|
3927 |
|
|
|
3928 |
</pre><h3><a name="V4.0_Platforms"></a>Platforms</h3><pre>
|
|
|
3929 |
|
|
|
3930 |
Fixes bugs:
|
|
|
3931 |
- Some Windows menu parameters were incorrect. (gsdll16.rc,
|
|
|
3932 |
gsdll32.rc)
|
|
|
3933 |
|
|
|
3934 |
</pre><h3><a name="V4.0_Interpreter"></a>Interpreter</h3><pre>
|
|
|
3935 |
|
|
|
3936 |
Fixes bugs:
|
|
|
3937 |
- .getdevparams sometimes returned duplicate entries for /Type.
|
|
|
3938 |
(ziodev2.c)
|
|
|
3939 |
- File names weren't parsed or concatenated properly on all
|
|
|
3940 |
platforms. (gs_fonts.ps, zfile.c)
|
|
|
3941 |
- Filter lookahead caused problems with special files. (zfproc.c)
|
|
|
3942 |
- If a TransformPQR procedure in a CIE color rendering dictionary
|
|
|
3943 |
didn't pop its 4 array arguments, an error occurred. (gs_lev2.ps, zcrd.c)
|
|
|
3944 |
|
|
|
3945 |
</pre><h3><a name="V4.0_Streams"></a>Streams</h3><pre>
|
|
|
3946 |
|
|
|
3947 |
Fixes bugs:
|
|
|
3948 |
- Filter lookahead caused problems with special files. (bug
|
|
|
3949 |
introduced in 3.70) (stream.h)
|
|
|
3950 |
|
|
|
3951 |
</pre><h3><a name="V4.0_Library"></a>Library</h3><pre>
|
|
|
3952 |
|
|
|
3953 |
Fixes bugs:
|
|
|
3954 |
- .getdevparams sometimes returned duplicate entries for /Type.
|
|
|
3955 |
(gxiodev.h, gsiodev.c)
|
|
|
3956 |
|
|
|
3957 |
</pre>
|
|
|
3958 |
|
|
|
3959 |
<!-- [3.0 begin visible trailer] =========================================== -->
|
|
|
3960 |
<hr>
|
|
|
3961 |
|
|
|
3962 |
<p>
|
|
|
3963 |
<small>Copyright © 1996, 1997, 1998 Aladdin Enterprises.
|
|
|
3964 |
All rights reserved.</small>
|
|
|
3965 |
|
|
|
3966 |
<p>
|
|
|
3967 |
This software is provided AS-IS with no warranty, either express or
|
|
|
3968 |
implied.
|
|
|
3969 |
|
|
|
3970 |
This software is distributed under license and may not be copied,
|
|
|
3971 |
modified or distributed except as expressly authorized under the terms
|
|
|
3972 |
of the license contained in the file LICENSE in this distribution.
|
|
|
3973 |
|
|
|
3974 |
For more information about licensing, please refer to
|
|
|
3975 |
http://www.ghostscript.com/licensing/. For information on
|
|
|
3976 |
commercial licensing, go to http://www.artifex.com/licensing/ or
|
|
|
3977 |
contact Artifex Software, Inc., 101 Lucas Valley Road #110,
|
|
|
3978 |
San Rafael, CA 94903, U.S.A., +1(415)492-9861.
|
|
|
3979 |
|
|
|
3980 |
<p>
|
|
|
3981 |
<small>Ghostscript version 8.53, 20 October 2005
|
|
|
3982 |
|
|
|
3983 |
<!-- [3.0 end visible trailer] ============================================= -->
|
|
|
3984 |
|
|
|
3985 |
</body>
|
|
|
3986 |
</html>
|