File: Details.htm

package info (click to toggle)
ghostscript 8.62.dfsg.1-3.2lenny5
  • links: PTS
  • area: main
  • in suites: lenny
  • size: 55,332 kB
  • ctags: 73,646
  • sloc: ansic: 505,865; sh: 34,002; python: 4,917; cpp: 3,961; asm: 3,565; ada: 1,681; tcl: 1,469; pascal: 1,089; makefile: 885; cs: 879; lisp: 407; xml: 263; perl: 158; awk: 66; yacc: 15
file content (2845 lines) | stat: -rw-r--r-- 101,546 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
2103
2104
2105
2106
2107
2108
2109
2110
2111
2112
2113
2114
2115
2116
2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149
2150
2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
2168
2169
2170
2171
2172
2173
2174
2175
2176
2177
2178
2179
2180
2181
2182
2183
2184
2185
2186
2187
2188
2189
2190
2191
2192
2193
2194
2195
2196
2197
2198
2199
2200
2201
2202
2203
2204
2205
2206
2207
2208
2209
2210
2211
2212
2213
2214
2215
2216
2217
2218
2219
2220
2221
2222
2223
2224
2225
2226
2227
2228
2229
2230
2231
2232
2233
2234
2235
2236
2237
2238
2239
2240
2241
2242
2243
2244
2245
2246
2247
2248
2249
2250
2251
2252
2253
2254
2255
2256
2257
2258
2259
2260
2261
2262
2263
2264
2265
2266
2267
2268
2269
2270
2271
2272
2273
2274
2275
2276
2277
2278
2279
2280
2281
2282
2283
2284
2285
2286
2287
2288
2289
2290
2291
2292
2293
2294
2295
2296
2297
2298
2299
2300
2301
2302
2303
2304
2305
2306
2307
2308
2309
2310
2311
2312
2313
2314
2315
2316
2317
2318
2319
2320
2321
2322
2323
2324
2325
2326
2327
2328
2329
2330
2331
2332
2333
2334
2335
2336
2337
2338
2339
2340
2341
2342
2343
2344
2345
2346
2347
2348
2349
2350
2351
2352
2353
2354
2355
2356
2357
2358
2359
2360
2361
2362
2363
2364
2365
2366
2367
2368
2369
2370
2371
2372
2373
2374
2375
2376
2377
2378
2379
2380
2381
2382
2383
2384
2385
2386
2387
2388
2389
2390
2391
2392
2393
2394
2395
2396
2397
2398
2399
2400
2401
2402
2403
2404
2405
2406
2407
2408
2409
2410
2411
2412
2413
2414
2415
2416
2417
2418
2419
2420
2421
2422
2423
2424
2425
2426
2427
2428
2429
2430
2431
2432
2433
2434
2435
2436
2437
2438
2439
2440
2441
2442
2443
2444
2445
2446
2447
2448
2449
2450
2451
2452
2453
2454
2455
2456
2457
2458
2459
2460
2461
2462
2463
2464
2465
2466
2467
2468
2469
2470
2471
2472
2473
2474
2475
2476
2477
2478
2479
2480
2481
2482
2483
2484
2485
2486
2487
2488
2489
2490
2491
2492
2493
2494
2495
2496
2497
2498
2499
2500
2501
2502
2503
2504
2505
2506
2507
2508
2509
2510
2511
2512
2513
2514
2515
2516
2517
2518
2519
2520
2521
2522
2523
2524
2525
2526
2527
2528
2529
2530
2531
2532
2533
2534
2535
2536
2537
2538
2539
2540
2541
2542
2543
2544
2545
2546
2547
2548
2549
2550
2551
2552
2553
2554
2555
2556
2557
2558
2559
2560
2561
2562
2563
2564
2565
2566
2567
2568
2569
2570
2571
2572
2573
2574
2575
2576
2577
2578
2579
2580
2581
2582
2583
2584
2585
2586
2587
2588
2589
2590
2591
2592
2593
2594
2595
2596
2597
2598
2599
2600
2601
2602
2603
2604
2605
2606
2607
2608
2609
2610
2611
2612
2613
2614
2615
2616
2617
2618
2619
2620
2621
2622
2623
2624
2625
2626
2627
2628
2629
2630
2631
2632
2633
2634
2635
2636
2637
2638
2639
2640
2641
2642
2643
2644
2645
2646
2647
2648
2649
2650
2651
2652
2653
2654
2655
2656
2657
2658
2659
2660
2661
2662
2663
2664
2665
2666
2667
2668
2669
2670
2671
2672
2673
2674
2675
2676
2677
2678
2679
2680
2681
2682
2683
2684
2685
2686
2687
2688
2689
2690
2691
2692
2693
2694
2695
2696
2697
2698
2699
2700
2701
2702
2703
2704
2705
2706
2707
2708
2709
2710
2711
2712
2713
2714
2715
2716
2717
2718
2719
2720
2721
2722
2723
2724
2725
2726
2727
2728
2729
2730
2731
2732
2733
2734
2735
2736
2737
2738
2739
2740
2741
2742
2743
2744
2745
2746
2747
2748
2749
2750
2751
2752
2753
2754
2755
2756
2757
2758
2759
2760
2761
2762
2763
2764
2765
2766
2767
2768
2769
2770
2771
2772
2773
2774
2775
2776
2777
2778
2779
2780
2781
2782
2783
2784
2785
2786
2787
2788
2789
2790
2791
2792
2793
2794
2795
2796
2797
2798
2799
2800
2801
2802
2803
2804
2805
2806
2807
2808
2809
2810
2811
2812
2813
2814
2815
2816
2817
2818
2819
2820
2821
2822
2823
2824
2825
2826
2827
2828
2829
2830
2831
2832
2833
2834
2835
2836
2837
2838
2839
2840
2841
2842
2843
2844
2845
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"   "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Ghostscript change history (detailed)</title></title>
<!-- generated by split_changelog.py from the output of cvs2cl.pl -->
<!-- $Id: Details.htm 8566 2008-03-01 00:42:04Z giles $ -->
<link rel=stylesheet type="text/css" href="gs.css">
</head>
<body>

<p><strong><a name="2008-02-29T235931.476236Z"></a>
2008-02-29T23:59:31.476236Z Ray Johnston</strong></p>
<blockquote>
<pre>
Fix typo that caused unbalanced 'q' 'Q' operators in PDF's (caused by
rev 8501). Bug 689728.

</pre>
<p>[src/gdevpdfi.c]</p>
</blockquote>

<p><strong><a name="2008-02-29T222759.143965Z"></a>
2008-02-29T22:27:59.143965Z Ralph Giles</strong></p>
<blockquote>
<pre>
Release notes for the 8.62 release. Thanks to Ray Johnston for compiling these.
</pre>
<p>[doc/News.htm]</p>
</blockquote>

<p><strong><a name="2008-02-29T204904.253927Z"></a>
2008-02-29T20:49:04.253927Z Ralph Giles</strong></p>
<blockquote>
<pre>
Remove some C++ style comments.
</pre>
<p>[src/siscale.c src/gdevijs.c]</p>
</blockquote>

<p><strong><a name="2008-02-29T204902.503198Z"></a>
2008-02-29T20:49:02.503198Z Ralph Giles</strong></p>
<blockquote>
<pre>
Add some new files to the documentation tree.
</pre>
<p>[doc/Develop.htm]</p>
</blockquote>

<p><strong><a name="2008-02-29T204752.884152Z"></a>
2008-02-29T20:47:52.884152Z Ralph Giles</strong></p>
<blockquote>
<pre>
Update product name, copyright and release dates.
</pre>
<p>[doc/History7.htm doc/Projects.htm doc/History8.htm man/dvipdf.1 man/ps2ascii.1 doc/Use.htm doc/Readme.htm doc/Deprecated.htm doc/Source.htm man/ps2epsi.1 doc/Install.htm src/gscdef.c doc/API.htm doc/Issues.htm doc/DLL.htm doc/Drivers.htm man/pfbtopfa.1 doc/Release.htm doc/Commprod.htm doc/Xfonts.htm doc/Devices.htm doc/Language.htm src/version.mak man/gs.1 src/dwsetup.rc man/pf2afm.1 doc/Fonts.htm doc/Ps2ps2.htm man/printafm.1 doc/Develop.htm doc/Ps2pdf.htm doc/Helpers.htm man/pdf2dsc.1 doc/Psfiles.htm doc/Lib.htm doc/gs-vms.hlp doc/Htmstyle.htm man/font2c.1 man/gsnd.1 man/pdfopt.1 src/winint.mak doc/News.htm man/pdf2ps.1 man/ps2pdf.1 doc/Make.htm doc/Details8.htm doc/Testing.htm doc/Unix-lpr.htm doc/Ps-style.htm doc/C-style.htm doc/History1.htm doc/History2.htm man/gslp.1 doc/History3.htm man/wftopfa.1 doc/Ps2epsi.htm doc/History4.htm man/ps2pdfwr.1 man/ps2ps.1 doc/History5.htm doc/History6.htm]</p>
</blockquote>

<p><strong><a name="2008-02-29T185314.162723Z"></a>
2008-02-29T18:53:14.162723Z Ray Johnston</strong></p>
<blockquote>
<pre>
Add default FontResourceDir needed when COMPILE_INITS=1 is used so
that the fonts from Resource/Font in the distribution directory that
are built into %rom%Resource/Font/ will be found.
</pre>
<p>[src/iccinit1.c]</p>
</blockquote>

<p><strong><a name="2008-02-29T081308.227205Z"></a>
2008-02-29T08:13:08.227205Z Ray Johnston</strong></p>
<blockquote>
<pre>
Fix COMPILE_INITS=1. Note the next commit to the PCL tree will combine
with this one, but we can't commit to both trees atomically.

DETAILS:

Tested with Windows and linux. Needs OS/2 testing. Other build systems
may have bit rotted, and I don't hav them to test. Some of the changes
here are to allow working with a PCL or XPS only build where the PS
interpreter is not used/needed.

I noticed that the default systemparam value for FontResourceDir isn't
getting et to %rom$Resource/Font/ as it should, but GenericResourceDir
_is_ being initialized correctly to %rom%Resource/ which is _NOT_
fixed by this commit.

</pre>
<p>[src/openvms.mak src/psromfs.mak src/macosx.mak src/int.mak src/watcw32.mak src/dvx-gcc.mak src/unixansi.mak src/msvclib.mak src/unixlink.mak src/os2.mak src/lib.mak src/bcwin32.mak src/ugcclib.mak src/gsromfs0.c src/Makefile.in src/msvc32.mak src/unix-gcc.mak src/unix-aux.mak src/macos-mcp.mak src/watclib.mak]</p>
</blockquote>

<p><strong><a name="2008-02-28T145632.629339Z"></a>
2008-02-28T14:56:32.629339Z Alex Cherepanov</strong></p>
<blockquote>
<pre>
Attempt to repair invalid embedded TT fonts without cmap table.
Bug 689707, customer 531.

DETAILS:
1. Use identity cmap if it is missing from the TT file. Set an unknown
   language ID to activate post table processing.

2. To avoid false rejection during the validation of post table run the
   validator only on the TT files generated by an utility that is known
   to write broken post tables.

</pre>
<p>[lib/gs_ttf.ps]</p>
</blockquote>

<p><strong><a name="2008-02-27T193618.181168Z"></a>
2008-02-27T19:36:18.181168Z Igor Melichev</strong></p>
<blockquote>
<pre>
Fix (clist interpreter) : Improve transparency performance, step 4a.

DETAILS :

Bug 689708 "Long processing time of PDF file"
Bug 689714 "Severe performance penalty for PDF transparency through to clist"

The last patch is incomplete due to a commitment failure.
The patch completely removes .inittransparencymask because it is noop.

With the test case of the bug 689708 at 144 dpi 
with default band size it reduces
the temp file size from 64.8Meg to 36.5 Meg,
and speeds up the rendering in 11 times.

With the test case of the bug 689714 at 144 dpi
with default band size it reduces
the temp file size from 12.0Meg to 3.3 Meg,
and speeds up the rendering in 11 times.

The speed factor depends on resolution.

</pre>
<p>[lib/pdf_draw.ps lib/pdf_ops.ps]</p>
</blockquote>

<p><strong><a name="2008-02-27T192257.279403Z"></a>
2008-02-27T19:22:57.279403Z Igor Melichev</strong></p>
<blockquote>
<pre>
Fix (clist interpreter) : Improve transparency performance, step 4.

DETAILS :

Bug 689708 "Long processing time of PDF file"
Bug 689714 "Severe performance penalty for PDF transparency through to clist"

The patch completely removes .inittransparencymask because it is noop.

With the test case of the bug 689708 at 144 dpi 
with default band size it reduces
the temp file size from 64.8Meg to 36.5 Meg,
and speeds up the rendering in 11 times.

With the test case of the bug 689714 at 144 dpi
with default band size it reduces
the temp file size from 12.0Meg to 3.3 Meg,
and speeds up the rendering in 11 times.

The speed factor depends on resolution.

</pre>
<p>[src/gstrans.c src/ztrans.c src/gdevpdft.c src/gstrans.h src/gdevp14.c]</p>
</blockquote>

<p><strong><a name="2008-02-27T183931.036262Z"></a>
2008-02-27T18:39:31.036262Z Igor Melichev</strong></p>
<blockquote>
<pre>
Fix (clist interpreter) : Improve transparency performance, step 3.

DETAILS :

This is a preparation for fixing bug 689708 "Long processing time of PDF file"
The last patch appears incomplete, now fixing.

</pre>
<p>[src/gxistate.h]</p>
</blockquote>

<p><strong><a name="2008-02-27T004737.036819Z"></a>
2008-02-27T00:47:37.036819Z Marcos Woehrmann</strong></p>
<blockquote>
<pre>
Added setting of fill_rule in pclxl_endpath().

DETAILS:

The pclxl_endpath() function checked if a clip_rule needed to be set but not a fill_rule.

This is a fix for bug 689665.


</pre>
<p>[src/gdevpx.c]</p>
</blockquote>

<p><strong><a name="2008-02-27T000822.308407Z"></a>
2008-02-27T00:08:22.308407Z Igor Melichev</strong></p>
<blockquote>
<pre>
Fix (clist interpreter) : Improve transparency performance, step 2.

DETAILS :

This is a preparation for fixing bug 689708 "Long processing time of PDF file"
The last patch appears incomplete due to a missed dependence in makefile.
Now we see the mask pointer was used but it was always NULL.

</pre>
<p>[src/lib.mak src/gxistate.h src/gsistate.c src/gdevpdfg.c]</p>
</blockquote>

<p><strong><a name="2008-02-26T231440.608304Z"></a>
2008-02-26T23:14:40.608304Z Igor Melichev</strong></p>
<blockquote>
<pre>
Fix (clist interpreter) : Improve transparency performance, step 1.

DETAILS :

This is a preparation for fixing bug 689708 "Long processing time of PDF file"
It completely removes the mask pointer field from gs_transparency_source_s.
No idea what it was defined for. Nobody uses it.

</pre>
<p>[src/gstrans.c src/gstrans.h]</p>
</blockquote>

<p><strong><a name="2008-02-26T071249.848447Z"></a>
2008-02-26T07:12:49.848447Z Alex Cherepanov</strong></p>
<blockquote>
<pre>
Change the decimal separator in generated strings to '.' effectively selecting
a C numeric locale without calling any locale functions. Bug 689624.

DETAILS:
For most clients Ghostscript is a library. We cannot set C locale before
sprintf() and reset it afterwards because this may affect other threads.

</pre>
<p>[src/spprint.c src/zdouble.c]</p>
</blockquote>

<p><strong><a name="2008-02-25T161043.614503Z"></a>
2008-02-25T16:10:43.614503Z Alex Cherepanov</strong></p>
<blockquote>
<pre>
Remove a space betveen -f and a file name to prevent parsing of the file name
that starts with '-' as an options. Bug 689682.

</pre>
<p>[lib/ps2pdfxx.bat]</p>
</blockquote>

<p><strong><a name="2008-02-25T054845.219666Z"></a>
2008-02-25T05:48:45.219666Z Alex Cherepanov</strong></p>
<blockquote>
<pre>
Add a check for null value. Since rev. 6956 following Adobe implementation
Ghostscript doesn't accept null as a key in dictionary look-up. Bug 689696.

</pre>
<p>[lib/pdf2dsc.ps]</p>
</blockquote>

<p><strong><a name="2008-02-25T042047.177440Z"></a>
2008-02-25T04:20:47.177440Z Alex Cherepanov</strong></p>
<blockquote>
<pre>
When the values of the color key mask exceed the valid range clip them to the
nearest valid values and continue. Don't discard the mask as we did before.
Bug 689717, customer 580.

</pre>
<p>[lib/pdf_draw.ps]</p>
</blockquote>

<p><strong><a name="2008-02-24T092154.361457Z"></a>
2008-02-24T09:21:54.361457Z Igor Melichev</strong></p>
<blockquote>
<pre>
Fix (images) : Improve coordinate precision when scaling an image (continued 8).

DETAILS :

Ghostscript Bug 687345 "Image interpolation problem at a band boundary"
Ghostscript Bug 689686 "siscale.c contrast degradation"

Accurately compute pixel center coordinates when applying the interpolation filter.
See comment in code. When scale=1, the offsets mutually eliminate.
Also the old code missed a bit when computing center_denom/2 in integers.

</pre>
<p>[src/siscale.c]</p>
</blockquote>

<p><strong><a name="2008-02-24T033703.979896Z"></a>
2008-02-24T03:37:03.979896Z Igor Melichev</strong></p>
<blockquote>
<pre>
Fix (images) : Improve coordinate precision when scaling an image (continued 7).

DETAILS :

Ghostscript Bug 687345 "Image interpolation problem at a band boundary"
Ghostscript Bug 689720 "Hang with -dDOINTERPOLATE caused by rev 8530 changes"

An expression for HeightOut missed 'abs' with recent patch.
Thanks to Ray for pointing it out.

</pre>
<p>[src/gxiscale.c]</p>
</blockquote>

<p><strong><a name="2008-02-24T025834.824461Z"></a>
2008-02-24T02:58:34.824461Z Alex Cherepanov</strong></p>
<blockquote>
<pre>
Fix link errors in the file descriptor-based implementation of file streams.
Move function used by both fd and stdio implementations to a separate file
and compile it in both versions. Bug 688918.

DETAILS:
Although the patch fixes link errors, pdfwrite and other devices,
use stdio functions directly and generate incorrect documents in fd version.

</pre>
<p>[src/lib.mak src/sfxstdio.c src/sfxcommon.c]</p>
</blockquote>

<p><strong><a name="2008-02-24T011218.214936Z"></a>
2008-02-24T01:12:18.214936Z Alex Cherepanov</strong></p>
<blockquote>
<pre>
Add definitions of some C99 types missing from old versions of Cygwin.
</pre>
<p>[src/stdint_.h]</p>
</blockquote>

<p><strong><a name="2008-02-23T222601.799844Z"></a>
2008-02-23T22:26:01.799844Z Ray Johnston</strong></p>
<blockquote>
<pre>
Fix typo that caused Cygwin build to fail if 'fontconfig' package was present.
</pre>
<p>[src/configure.ac]</p>
</blockquote>

<p><strong><a name="2008-02-22T201808.422807Z"></a>
2008-02-22T20:18:08.422807Z Igor Melichev</strong></p>
<blockquote>
<pre>
Fix (images) : Improve coordinate precision when scaling an image (continued 6).

DETAILS :

Ghostscript Bug 687345 "Image interpolation problem at a band boundary"
Ghostscript Bug 689718 "Regression: differences in FIG3.eps".

1. siscale.c : The revision 8529 patch part 4 tried to represent 'ceil' with rational 
arithmetics. But when downsampling the argument still uses a floating
number WidthIn, so we still need 'ceil'. 
This patch converts the formula back to floats, 
assuming that double precision is enough for precise result 
because source image size usually is smaller than 2^24.

The wrong rational representation of 'ceil' caused an array element index 
to fall outside the array. Debugged with FIG3.eps.

2. Improved debug printing and visual trace.

</pre>
<p>[src/gsimage.c src/lib.mak src/gxiscale.c src/siscale.c src/gdevm24.c]</p>
</blockquote>

<p><strong><a name="2008-02-22T102949.290734Z"></a>
2008-02-22T10:29:49.290734Z Igor Melichev</strong></p>
<blockquote>
<pre>
Fix (FAPI) : Embedded fonts didn't work (continued).

DETAILS :

A condition for querying a glyph in GlyphDirectory was wrong.
Debugged with buttons.pdf from Karen.

</pre>
<p>[src/zfapi.c]</p>
</blockquote>

<p><strong><a name="2008-02-22T100930.542153Z"></a>
2008-02-22T10:09:30.542153Z Igor Melichev</strong></p>
<blockquote>
<pre>
Fix (FAPI) : Embedded fonts didn't work.

DETAILS :

Embedded Type 42 FAPI support was broken since
Revision 7107 Sun Oct 15 17:19:45 2006 UTC (16 months, 1 week ago)
due to premature binding.

</pre>
<p>[lib/gs_typ42.ps]</p>
</blockquote>

<p><strong><a name="2008-02-20T210248.212097Z"></a>
2008-02-20T21:02:48.212097Z Igor Melichev</strong></p>
<blockquote>
<pre>
Fix (images) : Improve coordinate precision when scaling an image (continued 5).

DETAILS :

Ghostscript Bug 687345 "Image interpolation problem at a band boundary"

This is a further improvement to image placement precision.
Debugged with a.pdf .

The old code provides insufficientg precision when computing 
transformation matrix for an image. This computation
include matrix inversion and matrix miltiplication.
The old code uses floats and causes a visible shift of subimages with banding.
The new code uses double precision.

We didn't test how it relates to the revision 7026 change, 
which dectreased the matrix precision for CPSI compatibility.
It should be a separate job.

In the new gsmatrix.c code we simply duplicate old code fragments
and replace types for double. We don't want to define a template
for now. Will see after the code passes enough practical work.

Besides that, in gxidata.c replaced fixed2int_pixround
with fixed2int_pixround_perfect. It is not related to a.pdf,
but we believe it is an useful change.

In gxipixel.c the patch replaces dda_advance with a repeated dda_next.
The old code appears implrecise due to loosing fraction pixels.
It eliminates a 1 pixel difference with Bug688789.pdf .

Minor changes : inserted debug printing and visual trace.

</pre>
<p>[src/lib.mak src/gsmatrix.c src/gximono.c src/gxidata.c src/gsmatrix.h src/gdevm24.c src/gxipixel.c]</p>
</blockquote>

<p><strong><a name="2008-02-18T202859.836803Z"></a>
2008-02-18T20:28:59.836803Z Ralph Giles</strong></p>
<blockquote>
<pre>
Propagate the new method argument change introduced in r8528 to the wts
device so that it compiles again.
</pre>
<p>[src/gdevwts.c]</p>
</blockquote>

<p><strong><a name="2008-02-17T233650.588580Z"></a>
2008-02-17T23:36:50.588580Z Igor Melichev</strong></p>
<blockquote>
<pre>
Fix (images) : Improve coordinate precision when scaling an image (continued 4).

DETAILS :

Ghostscript Bug 687345 "Image interpolation problem at a band boundary"

This patch doesn't change the algorithm.
It only removes tracks of dead development branches.

</pre>
<p>[src/gxiscale.c src/siscale.c src/gxipixel.c]</p>
</blockquote>

<p><strong><a name="2008-02-17T232547.528293Z"></a>
2008-02-17T23:25:47.528293Z Igor Melichev</strong></p>
<blockquote>
<pre>
Fix (images) : Improve coordinate precision when scaling an image (continued 3).

DETAILS :

Ghostscript Bug 687345 "Image interpolation problem at a band boundary"

1. The macro fixed2int_pixround returns a mathematically incorrect
result with negative half-integer arguments.
For example fixed2int_pixround(-2.5) = -3 when the math gives -2.
We guess it was designed for positive page coordinates only,
but later it was applied to objects with negative coordinates.
Particularly, an image can start outside the page with a negative coordinate,
and fixed2int_pixround causes distorsions with banding.

We do not update fixed2int_pixround for backward compatibility 
of other parts of the algorithm. Instead that the patch defines 
a mew macro fixed2int_pixround_perfect, and applies it to
images with Interpolate=true. (gxfixed.h, gxipixel.c, gxiscale.c).

2. Added gx_image_enum_s::yi0 to provide entire image origion in the page.
This value does not depend on band size, so it gives more stability -
see below. (gximage.h).

3. Added entire image sizes to stream_image_scale_params_s
for source image and scaled image. These values do not depend on band size
and provide more stability - see how they are used in siscale.c. 
(sisparam.h, gxiscale.c).

4. (siscale.c) calculate_contrib now computes the filter kernel center
with global (page) coordinates of the image, using the right macro 
fixed2int_pixround_perfect and with the rational arithmetics
instead floats. It gives the kernel center position relatively to source image
with no dependence on the band size.  Also improved the debug printing
about that.

5. In siscale.c we keep track of some experiments done while
developing the patch. We need to save them to history because they're not trivial.
See comments in code. We'll remove them from trunk with a separate patch.

</pre>
<p>[src/lib.mak src/gxiscale.c src/gxfixed.h src/siscale.c src/sisparam.h src/gximage.h src/gxipixel.c]</p>
</blockquote>

<p><strong><a name="2008-02-17T223215.427994Z"></a>
2008-02-17T22:32:15.427994Z Igor Melichev</strong></p>
<blockquote>
<pre>
Fix (images) : Improve coordinate precision when scaling an image (continued 2).

DETAILS :

Ghostscript Bug 687345 "Image interpolation problem at a band boundary"

This patch does not change the algorithm,
except adding a debug printing with y coordinate of an image rectangle
in the page coordinate systems. It allows to compare
image fragments, which fall to verious bands depending on band size.

We could wrap the definition of gx_device_memory_s::band_y 
and all access to it with #ifdef DEBUG,
but we don't want to reduce the readability and because
memory and the CPU time expense is too small.

</pre>
<p>[src/gxclist.c src/gxdevbuf.h src/gxdevmem.h src/gdevppla.c src/gdevmem.c src/gdevbmpa.c src/gdevprn.c src/gdevppla.h src/gdevm24.c src/gxclread.c src/gdevpng.c src/gdevprn.h src/gdevijs.c]</p>
</blockquote>

<p><strong><a name="2008-02-17T035945.216145Z"></a>
2008-02-17T03:59:45.216145Z Ray Johnston</strong></p>
<blockquote>
<pre>
Fix for regressions introduced with rev 8526. Some resolutions of CMYK, 1-bit
per component devices that had CMYK colors and Gray colors had strange dithers.
Bug 689706.

DETAILS:

The previous changes missed changing the cache index logic in gx_render_ht_1_level,
If the cache had been set with one of the other routines, gx_render_ht_default or
gx_dc_ht_binary_load_cache, then gx_render_ht_1_level would be inconsistent.

EXPECTED DIFFERNCES:

This is expected to resolve the regressions from rev 8527 with pkmraw on:

035-01.ps
119-28.ps
1_2001.pdf
Altona-Testsuite_p2_S_x3.pdf
Altona_Measure_1v1.pdf
Altona_Visual_bb_1v1_x3.pdf
Altona_Visual_sb_1v1_x3.pdf
BEST8-99-Path.fh7.pdf
BW0696FOLD1FRONT.pdf
Bug687489.ps
Bug687724.pdf
Bug687832.pdf
Bug687840.pdf
Bug688308.ps
Bug688822.eps
Bug689269.ps
Clarke-Tate-Manns-Chinese.ai
H00216q.pdf
Original.pdf
S2_Digitalproof-Forum_x3k.pdf
a.pdf
besttest.pdf
cmyk.pdf
foo.pdf
knight.pdf
test.pdf
time1.pdf
</pre>
<p>[src/gxht.c]</p>
</blockquote>

<p><strong><a name="2008-02-14T083456.225081Z"></a>
2008-02-14T08:34:56.225081Z Ray Johnston</strong></p>
<blockquote>
<pre>
Improve Halftone tile cache efficiency. Make default cache large enough
on default 32-bit (LARGE) configuration to allow for > 256 cache tiles
when using the 'ht_ccsto.ps' 167x167 Threshold array. Change cache
lookup logic to eliminate collisions when the number of cache slots
exceeds the number of levels (the normal case). Remove duplicated
ht cache default size #defines and normalize the names to end in
_size (to imply size in bytes) and be consistent with other similar
function/macro names.

DETAILS:

When we have more cache slots than the number of levels, we can use
the 'b_level' directly and don't lookup based on the 'number of bits'
(level). This ELIMINATES collisions and on customer 661's benchmarks
resulted in up to 40% performance improvement for some files with
no performance degradation on any when running a large threshold
array based halftone (as the customer does).

The previous -Z. behavior is retained, although small cache sizes
are of questionable value, and this is sort of confusing since a
small memory build will use the same cache size with and without
-Z.

</pre>
<p>[src/gshtscr.c src/gzht.h src/gsht.c src/gdevprna.c src/gxht.c]</p>
</blockquote>

<p><strong><a name="2008-02-12T203017.540929Z"></a>
2008-02-12T20:30:17.540929Z Igor Melichev</strong></p>
<blockquote>
<pre>
Fix (images) : Improve coordinate precision when scaling an image (continued).

DETAILS :

Ghostscript Bug 687345 "Image interpolation problem at a band boundary"

This is another partial fix for the bug 687345 for portrait images with Interpolate=true.
Debugged with CET 148-13.

1. The old code inprecisely computes the scaling factor
when interpolating images with Mitchel filter.
The computation was done with the subimage rectangle,
which is different for different bands.
The new code always computes the scale from the entire image rectangle,
which's size is same for all bands.

2. New fields are inserted into gx_image_enum_s and stream_image_scale_params_s
to provide data delivery for (1).

3. In calculate_contrib in siscale.c the variable input_index
is renamed into starting_output_index for a better reflection of its semantics.

4. In calculate_contrib in siscale.c the new variable dst_offset_fraction
is added for a preciser positioning of the filter center,
when it fails between device pixel rows. The old code missed fractional
pixels when stepping to a next band. The expression for its value 
was created empirically, so it may need further improvements.

5. Inserted visual trace instructions for easier debugging.

6. Improved the debug trace printing.

</pre>
<p>[src/gxdda.h src/lib.mak src/gxiscale.c src/siscale.c src/sisparam.h src/gximage.h src/gxipixel.c]</p>
</blockquote>

<p><strong><a name="2008-02-12T190319.125442Z"></a>
2008-02-12T19:03:19.125442Z Ralph Giles</strong></p>
<blockquote>
<pre>
Document the need to update the current documentation snapshot.
</pre>
<p>[doc/Release.htm]</p>
</blockquote>

<p><strong><a name="2008-02-09T023031.322331Z"></a>
2008-02-09T02:30:31.322331Z Ralph Giles</strong></p>
<blockquote>
<pre>
Clamp the number components read from the ICC DataSource array to the 
number actually allocated to avoid buffer overflow. CESA-2008-001.
</pre>
<p>[src/zicc.c]</p>
</blockquote>

<p><strong><a name="2008-02-09T005538.575949Z"></a>
2008-02-09T00:55:38.575949Z Ralph Giles</strong></p>
<blockquote>
<pre>
Include 12 and 16 bit image support as part of the core graphics 
library. Bug 689688.

Details:

Previously, the core graphics library defaulted to including the 
'no12bit' and 'no16bit' modules, which contained stubs. These modules
were replaced by full implementations when the psl2lib (12 bit) and 
pdfread (16 bit) modules were included.

We now consider this build-time flexibility redundant. The extra code is 
not large and the default build generally includes it as these images 
are part of all the newer page description languages. We therefore 
include the unpack routines directly in libcore and remove the 
noi1xbit modules entirely.
</pre>
<p>[src/lib.mak src/int.mak]</p>
</blockquote>

<p><strong><a name="2008-02-07T093322.506379Z"></a>
2008-02-07T09:33:22.506379Z Ken Sharp</strong></p>
<blockquote>
<pre>
Fix (pdfwrite): problems with unusual PDF text rendering modes.

Details:
Bug #689596 "Generated PDF loses an image from original".

Although the PDF interpreter stores both stroke and fill colours,
there is no way to pass both these colours to the graphics library.
The PostScript graphics state may only contain a single colour, and the
device interface only allows for a single colour to be passed.

The old code set the text rendering mode, and assumed that if the
current device was pdfwrite this would be sufficient. However the
need to set both colours causes this to fail.

Modified the pdf_ops to set a show/colour/charpath/stroke combination
instead. The existing code will spot text followed by a charpath of
the same text and collapse it back.

A number of other problems with text rendering modes were also addressed
at the same time, but in a less than optimal fashion. This patch
is a temporary fix while an enhancement is coded to better address
the problem.

(gdevpdts.c) pdf_render_mode_uses_stroke, was checking for render mode
not 0 (fill). Altered to check against the actual stroking modes.

(gdevpdtt.c) pdf_update_text_state was setting the text rendering mode
to 0 (fill) under most conditions. Altered this to set the mode from
the graphics state, unless the current font PaintType is 2 (stroke),
and the render mode is 0, in which case set render mode to 1 (stroke).

(pdf_ops.ps) Modify setshowstate to provide better methods of implementing
various text rendering modes to pdfwrite. Rendering is unaffected by
this change.

</pre>
<p>[src/gdevpdts.c src/gdevpdtt.c lib/pdf_ops.ps]</p>
</blockquote>

<p><strong><a name="2008-02-04T221808.283584Z"></a>
2008-02-04T22:18:08.283584Z Igor Melichev</strong></p>
<blockquote>
<pre>
Fix (images) : Improve coordinate precision when scaling an image.

DETAILS :

Ghostscript Bug 687345 "Image interpolation problem at a band boundary"

This is a partial fix for the bug 687345 for images with Interpolate=false.
Actually it is related to scaling raher than interpolation.

1. gx_image_enum_begin performed inaccurate coordinate computations,
which caused a different image bias for different bands
due to a wrong coordinate rounding.
The patch replaces it with a better code,
which provides same bias for all bands and for unbanded rendering.
But we're not sure that image placement is now perfect,
because the initial rounding looks strange.
We keep the initial rounding to be compatible with the old code
to minimize raster differences and easier visual analyzis.
For a while we keep the old code in #if 0 because
it may be useful for next patch.

2. image_render_frac contains optimized branches for the case when
image's axes are parallel to page's axes.
Those optimized branches convert parallelograms into rectangles,
except for the last parallelogramm in the chunk.
It caused the last parallelogram to shift in 1 pixel relatively 
to the rectangles. This patch adds the optimized branch
for the last parallelogram, so that all image parts
are now placed with same rounding. It avoids rendering artifacts
with 148-05.ps and many other tests. Note that the patch does not fix
the rectangle shift from parallelograms,
so probably it still contain another bug,
which may need a separate fix.

3. While working on this patch we noted that update_strip
doesn't correctly preserve the fractional part for
dda.strip and dda.pixel . We include a track of that experiment
in the new code in #if 0 section for further development.
See comment in code.

4. Inserted visual trace commands for easier debugging.

</pre>
<p>[src/lib.mak src/gxidata.c src/gdevddrw.c src/gdevm24.c src/gxclread.c src/gxi12bit.c src/gxipixel.c]</p>
</blockquote>

<p><strong><a name="2008-02-03T175423.256452Z"></a>
2008-02-03T17:54:23.256452Z Alex Cherepanov</strong></p>
<blockquote>
<pre>
Modify pdf_info utility to match the changes in PDF interpreter interface.
Bug 689680.
</pre>
<p>[toolbin/pdf_info.ps]</p>
</blockquote>

<p><strong><a name="2008-02-01T220551.322620Z"></a>
2008-02-01T22:05:51.322620Z Igor Melichev</strong></p>
<blockquote>
<pre>
Fix (graphics) : Interpolated images were shifed in a half of source pixel.

DETAILS :

Bug 687039 "Interpolated images looks strange on Win32 display device".

1. The old code maps the center of the [0,0]th source pixel
   to the output image origin. However Adobe maps 
   the source pixel's corner to the output origin.
   This patch compensates the shift when computing the
   filter kernel position - see '0.5' when computing 'center'.

2. When the filter kernel scans partially outside the source image,
   the math requires to extrapolate source data somenow
   to fill the kernel. However the old code performs some strange
   computation, which we're not sure what for.
   It looks as a rudiment of wrapping the source image
   like a thorus. Well, it's an useful math for periodic patterns,
   but not for single images. Since we never apply siscale.c to 
   patterns, we replace this code portion with a simpler one,
   which duplicates pixels at image boundaries.
   See attachment to the bug to prove that Adobe does so.

</pre>
<p>[src/siscale.c]</p>
</blockquote>

<p><strong><a name="2008-01-31T222032.934182Z"></a>
2008-01-31T22:20:32.934182Z Ray Johnston</strong></p>
<blockquote>
<pre>
Fix ColorValues parameter problem when device has total number of bits (depth)
of more than 31 bits, resulting in a "rangecheck" (-15) error.

DETAILS:

The default get_params would not return -1 for values too large for 32 bits,
but the default put_params tested for this. The rangecheck would show up
on 32-bit devices, such as tiff32nc when running:
   "currentpagedevice setpagedevice"
Note that the value returned for ColorValues was platform dependent since
it previously set ColorValues to 1<<depth, but 1<<32 is not -1 on any
platform (that I know of).
</pre>
<p>[src/gsdparam.c]</p>
</blockquote>

<p><strong><a name="2008-01-29T170250.720617Z"></a>
2008-01-29T17:02:50.720617Z Igor Melichev</strong></p>
<blockquote>
<pre>
Fix (graphics) : Optimize filling a path with a shading color (continued 2).

DETAILS :

Bug 688970 "(shadings) Optimize filling a path with a shading color".

A minor code cleanup : Removing code portions that became unused.

</pre>
<p>[src/gsptype2.c src/gsptype2.h src/gximask.c src/gxfill.c]</p>
</blockquote>

<p><strong><a name="2008-01-29T124142.337727Z"></a>
2008-01-29T12:41:42.337727Z mpsuzuki</strong></p>
<blockquote>
<pre>
Fix (TT): Ignore broken post 2.0 table generated by "Windows Type 1 Installer".

DETAILS:

This is the second fix for bug 689495, that is quite specific
to a TrueType font generated by "Windows Type 1 Installer".

"Windows Type 1 Installer" makes a TrueType font including broken
post table in format 2.0. Previous fix (SVN revision 8351) just
ignores such broken post table, and ISOLatin1Encoding is used
for fallback. When such TrueType font is combined with WinAnsiEncoding,
some glyph names (exists only in WinAnsiEncoding) cannot be resolved.

The post table format 2.0 uses 2 maps to assign a glyph name to
TrueType glyph index: the first map is from TrueType glyph index
to glyph name index (glyphNameIndex[] array), the second map is
from glyph name index to glyph name string (names[] Pascal string
array). The broken post table generated by "Windows Type 1 Installer"
seems to use name[] array by TrueType glyph index directly, and
the glyphNameIndex[] array has unreliable values.

This patch sets /.broken_post when the post table is broken (the
detection of broken post table is same with SVN revision 8351),
then use names[] array by TrueType glyph index when /.broken_post
is set.

</pre>
<p>[lib/gs_ttf.ps]</p>
</blockquote>

<p><strong><a name="2008-01-29T115450.007576Z"></a>
2008-01-29T11:54:50.007576Z Igor Melichev</strong></p>
<blockquote>
<pre>
Fix (graphics) : Optimize filling a path with a shading color (continued).

DETAILS :

Bug 688970 "(shadings) Optimize filling a path with a shading color".

A minor code cleanup : prepare to eliminate gx_dc_pattern2_clip_with_bbox.

</pre>
<p>[src/gximask.c]</p>
</blockquote>

<p><strong><a name="2008-01-28T230259.180158Z"></a>
2008-01-28T23:02:59.180158Z Igor Melichev</strong></p>
<blockquote>
<pre>
Fix (graphics) : Optimize filling a path with a shading color.

DETAILS :

Bug 688970 "(shadings) Optimize filling a path with a shading color".

When filling a path with a shading color, the old code
first intersects the the clipping path with the path,
then intersects the result with the shading BBox.
However the intermediate result frequently appears to be 
a big list of rectangles, so the second intersection is slow.

This patch accounts that the clipping path and shading BBox
frequently are rectangles, which are easier to intersect with
no converting to paths. Also the shading box is always a quadrangle,
so intersecting it early gives a smaller intermediate result.
Therefore we first intersect the clipping path with the shading BBox,
then with the path.

This patch keeps the old code within #if #endif
until the full regression testing is passed on the server.
Also would like to eliminate the old complicated function 
gx_dc_pattern2_clip_with_bbox, which is still called from elswhere.

</pre>
<p>[src/gsptype2.c src/gsptype2.h src/gxfill.c]</p>
</blockquote>

<p><strong><a name="2008-01-28T103145.187261Z"></a>
2008-01-28T10:31:45.187261Z mpsuzuki</strong></p>
<blockquote>
<pre>
Fix: ignore the embedded font resource when PDF interpreter resolves
     the unembedded font resource.

DETAILS:

Some PDF generators (e.g. Microsoft Office 2007 add-on to export the
documents to PDF format) emits incompatible font objects with same
resource name. The sample PDF in bug 689637 includes 2 "Times New
Roman" font objects: one is embedded CID-keyed TrueType for Cyrillic
glyphs, another is unembedded WinAnsiEncoding TrueType (possibly for
empty page header or footer). When PDF interpreter resolves latter
unembedded "Times New Roman", external font resource should be used
(Adobe Reader does so). But current Ghostscript uses former embedded
"Times New Roman", because the sample PDF includes "Times New Roman"
without randomization prefix.

To avoid the confusion between embedded and unembedded fonts with
same name, pfont->is_resource flag (=0 embedded, =1 unembedded)
is checked during font object resolution. Even if a cached font
object with same name is found, it is ignored if it is embedded
font. To execute this check in PostScript space (pdf_font.ps),
new operator ".isregisteredfont" is introduced. This patch assumes
that embedded font object in PDF is resolvable by tracking the
indirect object references. If a PDF assumes name-based resolution
of embedded font object (without indirect object), it may be
rendered by external font resource. At present, we don't have
such sample.

By this patch, bug 689637 is fixed.

</pre>
<p>[lib/pdf_font.ps src/zfont.c]</p>
</blockquote>

<p><strong><a name="2008-01-28T095854.861949Z"></a>
2008-01-28T09:58:54.861949Z mpsuzuki</strong></p>
<blockquote>
<pre>
Fix (TT): Fix a bug in /getinterval_from_stringarray

DETAILS:

getinterval_from_stringarray is a procedure defined to
extract a substring from long table of TrueType font.
When a table is too long to fit into 16bit-length string
object in PostScript, gs_ttf.ps split the table into
the array of strings. When getinterval_from_stringarray
is requested to extract a string which starts in one
member and ends in following member, it returns a string
that only the content of the first member is copied.
There was a wrong conditional that made the substring
extraction aborted. It was fixed to return the correct
substring.

By this fix, bug 689593 (IPA font 2007 edition cannot
be parsed correctly) is closed.

</pre>
<p>[lib/gs_ttf.ps]</p>
</blockquote>

<p><strong><a name="2008-01-28T085010.139318Z"></a>
2008-01-28T08:50:10.139318Z Igor Melichev</strong></p>
<blockquote>
<pre>
Fix (clist & transparency) : Improve the compositor queue logic (continued).

DETAILS :

The last commit is incomplete due to human error.
Please don't use the last revision.

Bug 689492 "Ghostscript uses a large amount of memory", part 2.

This patch fixes the missed shadow of a text, which is mentioned 
in the Comment #8 of the bug report.

1. Added macros for configuring visual trace for easier debugging.
2. The idle transparency bufer allocation condition was wrong. 
   The patched code allocated ;esser buffers.
3. Found more cases when a mask needs to be released.
4. The old code immediately executes idle masks.
   It caused a wrong order for compositor execution
   with images that have a soft mask.
   With the test case the image's mask was executed before 
   the group that containing the image.
   It caused a premature releasing of a mask,
   which preceeeds the group and must noy be released.

   The new code delays the execution of idle masks
   after all containing groups are executed,
   so that the queue is now longer and stores all masks.
   We beleive that's not harmful, because
   transparency queue elements are pretty small and
   work for hos based applications only.

   The new function mark_as_idle works for the new logic.
   Few aother functions are enhanced with a smarter
   processing of the idle flag.
5. Improved comments for the compositor queue logic.

</pre>
<p>[src/gdevp14.c]</p>
</blockquote>

<p><strong><a name="2008-01-28T084521.850870Z"></a>
2008-01-28T08:45:21.850870Z Igor Melichev</strong></p>
<blockquote>
<pre>
Fix (clist & transparency) : Improve the compositor queue logic.

DETAILS :

Bug 689492 "Ghostscript uses a large amount of memory", part 2.

This patch fixes the missed shadow of a text, which is mentioned 
in the Comment #8 of the bug report.

1. Added macros for configuring visual trace for easier debugging.
2. The idle transparency bufer allocation condition was wrong. 
   The patched code allocated ;esser buffers.
3. Found more cases when a mask needs to be released.
4. The old code immediately executes idle masks.
   It caused a wrong order for compositor execution
   with images that have a soft mask.
   With the test case the image's mask was executed before 
   the group that containing the image.
   It caused a premature releasing of a mask,
   which preceeeds the group and must noy be released.

   The new code delays the execution of idle masks
   after all containing groups are executed,
   so that the queue is now longer and stores all masks.
   We beleive that's not harmful, because
   transparency queue elements are pretty small and
   work for hos based applications only.

   The new function mark_as_idle works for the new logic.
   Few aother functions are enhanced with a smarter
   processing of the idle flag.
5. Improved comments for the compositor queue logic.

</pre>
<p>[src/gxclrast.c]</p>
</blockquote>

<p><strong><a name="2008-01-26T132127.618379Z"></a>
2008-01-26T13:21:27.618379Z Igor Melichev</strong></p>
<blockquote>
<pre>
Fix (transparency) : Memory leak after an image with soft mask.

DETAILS :

Bug 689492 "Ghostscript uses a large amount of memory".

When a PDF command stream executes "/d1 gs /d2 gs" where d1 and d2 both define an 
untrivial SMask (not important whether they are same mask or different masks),
the second mask replaces the first one, and the first one to be released.

When a transparent group includes an image with a soft mask 
(this case happens in the test document for the bug), the image's soft mask must 
*temporary* replace the groups soft mask, and the first mask must not 
be released.

The old code does not distinguish these cases, assuming that 
a mask buffer is being released after rendering a group with it.
Due to that some mask buffers were never released,
causing a memory leak with banded rendering,
because the clist interpreter doesn't run the garbager.

A simpler case for demonstrating the leak could be created with 
"/d1 gs /d2 gs" as explained above.

The patch defines a new bool gs_transparency_mask_params_s::replacing, 
gx_transparency_mask_params_s::replacing and gs_pdf14trans_params_s::replacing
for passing the necessary information through old interfaces.
Note that as usual we cannot change the device interface for 
an easier passing of this info, because we need to maintain
the compatibility with 3d party devices.

Using the 'replacing' flag, pdf14_push_transparency_mask either replaces
the old mask buffer, or creates a new one as a temporary substitution for
an image with a soft mask. In the second case the group mask is
saved in the last transparency stack element in the field 
buf->maskbuf. After rendering the image's group 
the function pdf14_pop_transparency_group restores 
the saved mask buffer, as it was set in the transparency context
before starting the image's mask. For more details see
comments added into gdevp14.c .

</pre>
<p>[src/gstrans.c src/ztrans.c src/gstparam.h src/gstrans.h src/gdevp14.c]</p>
</blockquote>

<p><strong><a name="2008-01-25T081716.431601Z"></a>
2008-01-25T08:17:16.431601Z Igor Melichev</strong></p>
<blockquote>
<pre>
Fix (Font renderer) : Horizontal metrics sometimes applied with WMode 1 fonts.

DETAILS :

Bug 689464 "Japanese font writing direction (vertical ?)".
Bug 689646 "vertical text rendered by external CIDFontType0 flows horizontal".

1. When a descendent font of a type 0 CID font has zero FontBBox,
   use the FontBBox of the CID font. This is another case when
   a 3d party software generates a font with zero FontBBox.
   We believe that such font data is incorrect, 
   but this patch provides a simple workaround.

2. When FontBBox to be used to compute Metrics2,
   don't obtain sbw from type 1 glyph descriptions.
   The old code does so causing the horizontal metrics
   to be used when rendering a WMode 1 font. 

3. The case (2) appears to have an exception,
   when the font has CDevProc. In this case 
   we do need sbw from the glyph description
   to provide arguments for CDevProc.
   See alse the comment added to code.

Note that Type 1 font renderer now depends on some knowledge about type 0 CID font.
But this dependence does not break the configurability
because only an .h file is included into the Type 1 font renderer.

</pre>
<p>[src/int.mak src/zchar1.c]</p>
</blockquote>

<p><strong><a name="2008-01-23T211316.354024Z"></a>
2008-01-23T21:13:16.354024Z Igor Melichev</strong></p>
<blockquote>
<pre>
Fix (clist & transparency) : Inconsisting compressed color index info.

DETAILS :

Bug 689626 "Segmentation Fault using 'bit' device to clist.".

The bug was put while the custom color callback merge in revision 7795.
The color index information to be passed to the clist writer
after restoring the color information to the clist writer.
Before restoring it is set to a blending space,
which may be incompatible with the target device's color index type.

I'm unable to test this patch fully
due to no test cases for antrivial spot colors with transparency.

</pre>
<p>[src/gdevp14.c]</p>
</blockquote>

<p><strong><a name="2008-01-23T183335.648405Z"></a>
2008-01-23T18:33:35.648405Z Igor Melichev</strong></p>
<blockquote>
<pre>
Fix (DSC parser) : Avoid a structure type name duplicate.

DETAILS :

The old name cmd_list_s is also defined in gxclist.h .
It confused MSVC debugger while tracing gxclutil.c for bug 689626.

</pre>
<p>[src/zdscpars.c]</p>
</blockquote>

<p><strong><a name="2008-01-23T181227.956590Z"></a>
2008-01-23T18:12:27.956590Z Igor Melichev</strong></p>
<blockquote>
<pre>
Fix (patterns) : The clipping was wrong with antrivial pattern matrix (continued).

DETAILS :

Bug 687196 "Incorrect pattern processing from Adobe test file pattyp1.ps".
This is a partial fix for the bug, which fixes vector devices only.
It closes the bug with the last patch applied.

The old code set identity matrix for a pattern dstream accummulation.
It appears incompatible with Type 2 pattern handler, which assumes
the default page matrix. This patch changes the matrix and improves
the pattern stream accumulator with accounting the default page scale. 

</pre>
<p>[src/gdevpdfi.c src/zpcolor.c]</p>
</blockquote>

<p><strong><a name="2008-01-23T180949.970130Z"></a>
2008-01-23T18:09:49.970130Z Igor Melichev</strong></p>
<blockquote>
<pre>
Fix (patterns) : The clipping was wrong with antrivial pattern matrix.

DETAILS :

Bug 687196 "Incorrect pattern processing from Adobe test file pattyp1.ps".
This is a partial fix for the bug, which fixes raster devices only.

1. The old code always sets a canonic rectangular clipping,
   which is wrong with rotated or skewed matrices.

   Note the patch resets path in the pattern's graphic state.
   It is not done in the old code, so it may cause raster diferences.
   But it is required in PLRM chapter 8 by the definition of 'makepattern'.

2. Adjust the pattern matrix to pixel grid.
   After doing the change (1) the clipping area appears too small for some cases.
   It happens because the tile origin falls at fractional pixels,
   The new code causes a massive raster difference, which actually is minor
   (a shift of some pattern instances in 1 pixel).

   Note that PLRM requires to adjust pattern matrix in the definition of 'makepattern',
   but doesn't explain how to.

3. In compute_inst_matrix perform computations in 'float'
   because the matrix is represented with 'float'.

4. (miror change) Expanded the 'mat' macro for easier debugging with MSVC.

</pre>
<p>[src/gsptype1.c]</p>
</blockquote>

<p><strong><a name="2008-01-23T164951.344351Z"></a>
2008-01-23T16:49:51.344351Z Ken Sharp</strong></p>
<blockquote>
<pre>
Fix (pdfwrite): Wrong format string for pprintg.

Details:
Bug #689661 "pdfwrite : Incorrect sprintf format".

(gdevpdfu.c) The new function, 'pdf_write_font_bbox_float,
added in revision 8360, used the wrong format string (%f
instead of %g) to write the font BBox.

</pre>
<p>[src/gdevpdfu.c]</p>
</blockquote>

<p><strong><a name="2008-01-23T133039.283039Z"></a>
2008-01-23T13:30:39.283039Z Igor Melichev</strong></p>
<blockquote>
<pre>
Fix (shadings) : A memory deallocation problem.

DETAILS :

Bug 689660 "memory deallication problems with shadings".

The old code used pdev->memory for temporary storing 
an intersection of clipping path with shading bbox.
This is the global memory space.
However if the intersection is trivial,
the path of the clipping path is copied from the 
original clipping path, which is allocated in the local memory space.
Later it causes a freeing of path segments to a wrong memory space.

This patch chooses the original clipping path's memory space
when the clipping path is available, and the global space otherwise.

</pre>
<p>[src/lib.mak src/gsptype2.c]</p>
</blockquote>

<p><strong><a name="2008-01-23T132309.676697Z"></a>
2008-01-23T13:23:09.676697Z Till Kamppeter</strong></p>
<blockquote>
<pre>
Added HP's KRGB patch for improved control of true black text printing on color printers with HPIJS. Bug #689065 (Ubuntu LP: #69905) is fixed in this updated version of the patch.
</pre>
<p>[src/gdevijs.c]</p>
</blockquote>

<p><strong><a name="2008-01-21T205955.657274Z"></a>
2008-01-21T20:59:55.657274Z Igor Melichev</strong></p>
<blockquote>
<pre>
Fix (save/restore) : Remove gs_ref_memory_s::inherited.

DETAILS :

It is not used since revision 5250.

</pre>
<p>[src/gxalloc.h src/igc.c src/gsalloc.c src/isave.c]</p>
</blockquote>

<p><strong><a name="2008-01-20T222307.686290Z"></a>
2008-01-20T22:23:07.686290Z Igor Melichev</strong></p>
<blockquote>
<pre>
Fix (save/restore) : Do not create invisible save levels.

DETAILS :

Invisible save levels is a rudiment of old code.
gs_ref_memory_s::scan_limit effectively work instead them 
since revision 6706 committed on April 14 2006.

We're not sure what gs_ref_memory_s::inherited works for.
Keeping it updated for a while, and don't remove the 
old code for reference. Note the maintanence of gs_ref_memory_s::inherited
in the new code is not fully equivalent to old code.

</pre>
<p>[src/isave.c]</p>
</blockquote>

<p><strong><a name="2008-01-20T095615.017727Z"></a>
2008-01-20T09:56:15.017727Z Ralph Giles</strong></p>
<blockquote>
<pre>
Only report the ICC Profile colorspace when the jasper library's debug 
level is above zero. Bug 689662.
</pre>
<p>[jasper/src/libjasper/jp2/jp2_dec.c]</p>
</blockquote>

<p><strong><a name="2008-01-20T092115.660626Z"></a>
2008-01-20T09:21:15.660626Z Igor Melichev</strong></p>
<blockquote>
<pre>
Fix (save/restore) : Compact the changes list against big memory leak.

DETAILS :

Bug 689536 "Memory leak reading PostScript file (PMR 53877).".

The old implementation includes an optimization agains a big CPU time expense
in 'save' and 'restore' for sedtting and resetting l_mark flags.

Normally, when executing 'save', the memory manager needs
to reset l_new marks for objects modified or allocated at the last save level,
so that their further modification on the next save level to be saved
in the changes list. When executing 'restore' these flags to be set 
to prevent redundant save.

When the last save level includes many allocations, 
the number of scanned objects is big and it causes a significant
time expense. A long ago Ghostscript implements an optimization,
which shorten the scanned list against the big time expense.
However the shortening causes redundant saving.

The redundant saving itself isn't harmful because
it happens seldon and spends a small memory.
However if a redundant save element points to a reference to
a newly allocated array or dictionary, the array or dictionary
can't be garbage collected. When a client executes such allocation and 
same reference modification multiple times, all allocated arrays
and dictionaries persist in memory, causing a significant memory leak.

This patch compacts the saved change list whem a significant memory 
allocation is accummulated since last save or since last compacting.
The new field gs_ref_memory_s::total_scanned_after_compacting
works for counting allocated elements. The new function 
drop_redundant_changes performs the compacting. See comments in its code.

The threshold for starting drop_redundant_changes is choosen arbitrary. 
It must not be too small, because the CPU time expense
optimization wouldn't be effective. Also it can't be too big,
because the memory leak recovery would not be effective.
This patch sets it to about 1600000 objects,
which is an experimental trade-of.

Note that this patch reduces the memory leak but doesn't
eliminate it to zero, because more data may be allocated
after the last filtering.

We could implement a filtering within the garbager rather 
than withis save/restore. Actually it wouldn't change 
the behavior to much, because the threshold would be still needed 
against the CPU time expense, It happens because the scanning
deals with array or dictioanr elements rather than with
whole aggregates. Also we don't want to complicate the garbager.

Note that the arbitrary threshold is bigger than neccessary
for the simplified test case included into the bug report.
Due ti that the leak elimination does not happen with this test.
For the compacting to take place the sequence "NEWJOB Z"
to be repeated 90 times rather than 40 in the supplied test. 
The customer's test does demonstrate the leak reducing.

</pre>
<p>[src/gxalloc.h src/gsalloc.c src/isave.c]</p>
</blockquote>

<p><strong><a name="2008-01-18T215038.830947Z"></a>
2008-01-18T21:50:38.830947Z Alex Cherepanov</strong></p>
<blockquote>
<pre>
Explicitly close CMap files opened during CMap-CIDFont font enumeration.
On certain systems file handles were used up before GC freed inaccessible
handles causing PostScript errors. Bug 689594.

</pre>
<p>[lib/gs_cidcm.ps]</p>
</blockquote>

<p><strong><a name="2008-01-18T061702.734368Z"></a>
2008-01-18T06:17:02.734368Z Alex Cherepanov</strong></p>
<blockquote>
<pre>
Add redefinition of setpagedevice to ps2epsi utility to support PS files
that call setpagedevice. Bug 689650.
</pre>
<p>[lib/ps2epsi lib/ps2epsi.ps lib/ps2epsi.cmd lib/ps2epsi.bat]</p>
</blockquote>

<p><strong><a name="2008-01-17T135043.754302Z"></a>
2008-01-17T13:50:43.754302Z Igor Melichev</strong></p>
<blockquote>
<pre>
Fix (clist interpreter) : Skip idle compositors, step 6.

DETAILS :

Enabling visual trace for buffer backdropping.

</pre>
<p>[src/gdevp14.c]</p>
</blockquote>

<p><strong><a name="2008-01-17T134711.707889Z"></a>
2008-01-17T13:47:11.707889Z Igor Melichev</strong></p>
<blockquote>
<pre>
Fix (visual trace) : Add a single pixels painting operation.

DETAILS :

This patch doesn't change the algorithm.
It only enhances debuging instrument.
The new instrument will be used for debugging the clist logics about transparency masks.

</pre>
<p>[src/vdtrace.h src/vdtrace.c src/dwtrace.c]</p>
</blockquote>

<p><strong><a name="2008-01-17T133719.476394Z"></a>
2008-01-17T13:37:19.476394Z Igor Melichev</strong></p>
<blockquote>
<pre>
Fix : Cygwin/gcc warnings.
</pre>
<p>[src/gdevcgm.c src/int.mak src/gstrans.c src/gdevpdfe.c src/gdevbit.c src/devs.mak src/gxclread.c src/gscdevn.c src/gscie.c src/gxclutil.c src/lib.mak src/gdevp2up.c src/gxclmem.c src/gdevdflt.c src/gdevpdtd.c src/gxcomp.h src/gsovrc.c src/gdevprn.c src/gscsepr.c src/genarch.c src/ztoken.c src/gdevp14.c]</p>
</blockquote>

<p><strong><a name="2008-01-17T031602.921192Z"></a>
2008-01-17T03:16:02.921192Z Alex Cherepanov</strong></p>
<blockquote>
<pre>
Comment-only change: remove obsolete reference to MS-DOS limitations and 
mention that PDF interpreter passes un-escaped font names to PS level.
Bug 689651.
</pre>
<p>[lib/Fontmap.GS]</p>
</blockquote>

<p><strong><a name="2008-01-17T031245.266699Z"></a>
2008-01-17T03:12:45.266699Z Alex Cherepanov</strong></p>
<blockquote>
<pre>
Remove the warning about non-embedded TrueType fonts in PDF files because it
confuses users but seems to have little effect on the main producer of
non-conforming files.

</pre>
<p>[lib/pdf_main.ps lib/pdf_font.ps]</p>
</blockquote>

<p><strong><a name="2008-01-16T233548.055065Z"></a>
2008-01-16T23:35:48.055065Z Ralph Giles</strong></p>
<blockquote>
<pre>
Unbreak the build.
</pre>
<p>[src/gdevp14.c]</p>
</blockquote>

<p><strong><a name="2008-01-16T225542.290132Z"></a>
2008-01-16T22:55:42.290132Z Igor Melichev</strong></p>
<blockquote>
<pre>
Fix (clist interpreter) : Skip idle compositors, step 5.

DETAILS :

This really skips compositors which don't paint anything.

Compositor parameter list structures are extended with a new boolean field 'idle'.
These fields pass information whether something was painted to a compositor.
We choosen this way for passing this info because 
(1) we can't change the device inteface with new function arguments, and 
(2) we need to pass it through the device chain
(for example, when a clipper is installed onth the overprint device).

This patch only affects the transparency and the overprint.
Other compositors (gsalphac.c, gxropc.c) behave as before. 
They may need further improvements.

This patch does not fix the bug 689492.
That fix may be done either before or after this one,
but in any case the patches need to adopt each to another.

The new compositor virtual method is_closing
checks whether a current compositor command
closes an older command, and finds the opening command.
Now we provide untrivial implementations for transparency and overprint compositors.
Would like to define an enum for return values of is_closing.

The old device method create_compositor now passes the 'idle' parameter via 
gs_composite_s structure. By default it is false and the behaviour
is same as before. But the clist interpreter is modified
to provide true value when a compositor doesn't paint anything.
To compute this flag the compositor queue now works with its full power.
Note we changed the queue representation with a bilikned list.

This patch entroduces the concept of 'friendly operations'
for compositor operations. These are those operations, which
may interchange with compositor installation/deinstallation.
One example is halftone operations, which always affect
the device below the compositor device, i.e. the target device
of the compositor device. The new compositor virtual method
is_friendly is implemented in an intrivial way for the
transparency compositor especially to exchange with halftone
operations while queueing clist operations.
This especially helps to delay the pdf14 device installation
so that it may completely annihilate with its deinstallation
if nothing is painted through the compositor in a band.

Overprint and transparency compositor implementations
are changed with checking the idle flag.
If it is set, they don't perform neither color blending, nor
raster buffer allocation. Note the pdf14 device maintains the buffer stack
as before, but the allocation of buffers may be skipped.
It saves significant time from cleaning up raster buffers when they are idle.

This patch may need further improvements for the case when
different compositor types are mixed in one queue. 
We could not fully test it due to absence of practical tests.

Another useful improvement would be to convert 
"0 .inittransparencymask 1 .inittransparencymask dict .setblendparams"
into a single command. It would simplify the compositor queue logic.
Also we think that the name .inittransparencymask doesn't reflect the function purpose.
Will improve someday.

We're not sure whether this patch correctly works with idle masks.
We could not debug it due to no practical cases.
Possibly idle mask will need an additional effort to skip 
the group painting to the band.

Also disabled cmd_put_halftone in c_pdf14trans_clist_write_update -
see comment in code.

Monor change : Inserted a visual trace support for transparency buffers.

</pre>
<p>[src/lib.mak src/zdict.c src/gdevdflt.c src/gdevp14.h src/gstrans.c src/gsalphac.c src/gxcomp.h src/gsovrc.c src/gstparam.h src/gstrans.h src/gxclrast.c src/gsovrc.h src/gdevp14.c]</p>
</blockquote>

<p><strong><a name="2008-01-09T003630.938192Z"></a>
2008-01-09T00:36:30.938192Z Marcos Woehrmann</strong></p>
<blockquote>
<pre>
Fixed umlauts (maybe, am having trouble testing the results).
</pre>
<p>[man/de/pdf2dsc.1]</p>
</blockquote>

<p><strong><a name="2008-01-09T002450.313955Z"></a>
2008-01-09T00:24:50.313955Z Marcos Woehrmann</strong></p>
<blockquote>
<pre>
Corrected man page (thanks to Peter Dyballa).
</pre>
<p>[man/de/pdf2dsc.1]</p>
</blockquote>

<p><strong><a name="2008-01-09T000059.719986Z"></a>
2008-01-09T00:00:59.719986Z Alex Cherepanov</strong></p>
<blockquote>
<pre>
Add unmodified byte-oriented AES encryption code by Brian Gladman. These
files serve as a reference point. They are not yet included into any
project nor can be compiled by some of the compilers we support.

</pre>
<p>[src/aes.h src/aes.c]</p>
</blockquote>

<p><strong><a name="2008-01-07T205840.018332Z"></a>
2008-01-07T20:58:40.018332Z Ralph Giles</strong></p>
<blockquote>
<pre>
Remove the obsolete gconfigv.h.
</pre>
<p>[src/lib.mak toolbin/msvcxml.bat src/openvms.mak src/unix-end.mak src/gs.mak src/std.h src/gscdefs.h src/macos-mcp.mak src/openvms.mmk src/os2.mak src/wctail.mak src/winlib.mak]</p>
</blockquote>

<p><strong><a name="2008-01-07T205836.882379Z"></a>
2008-01-07T20:58:36.882379Z Ralph Giles</strong></p>
<blockquote>
<pre>
Remove EXTEND_NAMES from the top level makefiles.

There is a fallback to the default value of 0 in inameidx.h so there
is no change in the default behaviour. The extended name table can
still be activated by defining EXTEND_NAMES on the compiler command
line or changing the source directly.
</pre>
<p>[toolbin/msvcxml.bat src/openvms.mak src/unix-end.mak src/gs.mak doc/Use.htm src/int.mak src/macosx.mak src/Makefile.in src/inameidx.h src/unix-gcc.mak src/macos-mcp.mak src/openvms.mmk src/os2.mak src/wctail.mak src/winlib.mak]</p>
</blockquote>

<p><strong><a name="2008-01-07T184302.811990Z"></a>
2008-01-07T18:43:02.811990Z Henry Stiles</strong></p>
<blockquote>
<pre>
Deprecate USE_FPU, no changes expected.
</pre>
<p>[src/gxchar.c src/openvms.mak src/unix-end.mak src/gsjmorec.h src/macosx.mak src/dvx-gcc.mak src/gxfarith.h src/msvccmd.mak src/siscale.c src/unixansi.mak src/gsmisc.c src/msvclib.mak src/gsfemu.c src/os2.mak src/openvms.mmk src/lib.mak src/bcwin32.mak src/ugcclib.mak src/gscie.h src/Makefile.in src/unix-gcc.mak src/gxfixed.h src/msvc32.mak src/macos-mcp.mak src/wccommon.mak src/wctail.mak src/winlib.mak src/watclib.mak]</p>
</blockquote>

<p><strong><a name="2008-01-02T235844.056429Z"></a>
2008-01-02T23:58:44.056429Z Alex Cherepanov</strong></p>
<blockquote>
<pre>
Re-export runpdfbegin, dopdfpages, and runpdfend procedures, which turned out
to be used by 3rd party programs. Partly revert the rev. 8325.

</pre>
<p>[lib/pdf_main.ps]</p>
</blockquote>

<p><strong><a name="2008-01-02T131059.547816Z"></a>
2008-01-02T13:10:59.547816Z Ken Sharp</strong></p>
<blockquote>
<pre>
Fix (pdfwrite): Tidy up after the prior patch, 
algorithmically this is the same as before.

Details:
Bug #689597 "PDF created with NoEmbed has wrong BaseFont name".

gdevpdtb.c, gdevpdtf.c, gdevpdtf.h, remove the redundant
routine pdf_choose_font_name.

gdevpdtb.c, gdevpdtd.c, gdevpdtf.c, gdevpdtb.h, modify the
function pdf_base_font_alloc to remove the redundant
argument 'orig_name', we always use the original font name
now.

</pre>
<p>[src/gdevpdtb.c src/gdevpdtd.c src/gdevpdtf.c src/gdevpdtb.h src/gdevpdtf.h]</p>
</blockquote>

<p><strong><a name="2008-01-01T204452.186969Z"></a>
2008-01-01T20:44:52.186969Z Alex Cherepanov</strong></p>
<blockquote>
<pre>
Don't ignore xref stream in a hybrid  "classic xref" + "stream xref" file
as PDF 1.5-compatible should do. Thanks to SaGS for the patch. Bug 688282.

</pre>
<p>[lib/pdf_main.ps]</p>
</blockquote>

<p><strong><a name="2008-01-01T142830.927323Z"></a>
2008-01-01T14:28:30.927323Z Alex Cherepanov</strong></p>
<blockquote>
<pre>
Replace clearly invalid generation numbers out of 0..65535 range with 0 during
rebuilding of xref table. Bug 689634.

</pre>
<p>[lib/pdf_rbld.ps]</p>
</blockquote>

<p><strong><a name="2008-01-01T013052.687921Z"></a>
2008-01-01T01:30:52.687921Z Ralph Giles</strong></p>
<blockquote>
<pre>
Remove the SYSTEM_CONSTANTS_ARE_WRITABLE compile-time define.

Details:

This was added so a particular application could rewrite the product name,
version, etc. after loading the library. We're not aware of anyone still
using the feature, and if so they can just change the source, which is
more appropriate in any case.

Also, remove USE_ASM from the msvc project file.
</pre>
<p>[toolbin/msvcxml.bat src/openvms.mak src/unix-end.mak src/gs.mak src/gscdefs.h src/openvms.mmk src/os2.mak src/wctail.mak src/winlib.mak src/gscdef.c]</p>
</blockquote>

<p><strong><a name="2007-12-31T224650.849681Z"></a>
2007-12-31T22:46:50.849681Z Alex Cherepanov</strong></p>
<blockquote>
<pre>
Add a flag that marks PDF text rendering mode 3 to avoid confusion with other
non-rendering text operations such as stringwidth. This avoids unnecessary 
calculation of the current point, which fails when the CTM is singular. This
patch continues conservative approach to the text rendering modes started in
rev. 4006. Bug 689614, customer 384.

</pre>
<p>[src/gxchar.c src/gstext.c src/gstext.h]</p>
</blockquote>

<p><strong><a name="2007-12-31T190652.216061Z"></a>
2007-12-31T19:06:52.216061Z Ray Johnston</strong></p>
<blockquote>
<pre>
Correct polarity of the stochastic threshold array so that the images are
not too dark.

DETAILS:

The original conversion from the threshold array provided by CalComp had
the threshold values inverted so that the implicit linearization was
inverted, making images much too dark. This correction provides reasonable
results on printers. Fine tuning of transfer functions can be used for
specific printers.

</pre>
<p>[lib/ht_ccsto.ps]</p>
</blockquote>

<p><strong><a name="2007-12-31T180759.109475Z"></a>
2007-12-31T18:07:59.109475Z Ralph Giles</strong></p>
<blockquote>
<pre>
Remove the USE_ASM build flag.
    
Details:
   
It was originally added to support vga mode setting, and has been 
used for a few minor optimizations since. We don't believe these 
are worth the trouble with modern compilers, so it is removed to 
simplify configuration management.

</pre>
<p>[src/unix-end.mak src/openvms.mak src/watcw32.mak src/gdevpcfb.c doc/Develop.htm src/msvccmd.mak src/iutilasm.asm src/gsmisc.c src/msvclib.mak src/dvx-head.mak src/devs.mak src/os2.mak src/openvms.mmk src/unixhead.mak src/lib.mak src/bcwin32.mak src/winint.mak src/gdevegaa.asm src/msvc32.mak src/gdevsvga.c src/gsutil.c src/wccommon.mak src/wctail.mak src/winlib.mak]</p>
</blockquote>

<p><strong><a name="2007-12-31T061033.027699Z"></a>
2007-12-31T06:10:33.027699Z Alex Cherepanov</strong></p>
<blockquote>
<pre>
Don't try to obtain the bounding box of a glyph when FontBBox is invalid and
CTM is singular. Set an empty box and consider it valid. The bounding box is
not used when the CTM is singular. Bug 689614, customer 384.

</pre>
<p>[src/zchar1.c]</p>
</blockquote>

<p><strong><a name="2007-12-29T025321.940078Z"></a>
2007-12-29T02:53:21.940078Z Ralph Giles</strong></p>
<blockquote>
<pre>
Remove the ARCH_CAN_SHIFT_FULL_LONG define and its derivatives. Bug 689611.

Details:

This was only used in one place, in an attempt to support
non-portable code. However this caused problems with recent
gcc's which optimized the test one way and the code in gxshade.c
another. We're therefore removing it entirely and just using
portable code.
</pre>
<p>[src/std.h src/gxshade.c src/gxbitops.h src/genarch.c]</p>
</blockquote>

<p><strong><a name="2007-12-27T222836.610626Z"></a>
2007-12-27T22:28:36.610626Z Ralph Giles</strong></p>
<blockquote>
<pre>
Add -Wundef to the autoconf build.

There have been a number of problems related to missing defines lately.
</pre>
<p>[src/configure.ac]</p>
</blockquote>

<p><strong><a name="2007-12-22T191320.335131Z"></a>
2007-12-22T19:13:20.335131Z Ralph Giles</strong></p>
<blockquote>
<pre>
Correction to the refcount documentation.

Our allocator can't double free, but attempting to trace a freed pointer
can confuse things, possibly resulting in a segfault or other
misbehaviour.
</pre>
<p>[src/gsrefct.h]</p>
</blockquote>

<p><strong><a name="2007-12-22T020540.922995Z"></a>
2007-12-22T02:05:40.922995Z Ralph Giles</strong></p>
<blockquote>
<pre>
Also remove gdevcmap from the documentation.
</pre>
<p>[doc/Develop.htm]</p>
</blockquote>

<p><strong><a name="2007-12-22T020536.008019Z"></a>
2007-12-22T02:05:36.008019Z Ralph Giles</strong></p>
<blockquote>
<pre>
Include gconfigv.h in std.h so defines like USE_FPU are more
consistently defined.
</pre>
<p>[src/lib.mak src/gscie.h src/std.h src/gdevpcfb.c src/gxfarith.h src/siscale.c src/gsmisc.c src/gdevsvga.c src/devs.mak src/sidscale.c src/gxpcopy.c]</p>
</blockquote>

<p><strong><a name="2007-12-22T001936.075695Z"></a>
2007-12-22T00:19:36.075695Z Ralph Giles</strong></p>
<blockquote>
<pre>
Document the behaviour of the reference count macros.
</pre>
<p>[src/gsrefct.h]</p>
</blockquote>

<p><strong><a name="2007-12-22T001005.865239Z"></a>
2007-12-22T00:10:05.865239Z Ralph Giles</strong></p>
<blockquote>
<pre>
Remove the unused cmap device.
</pre>
<p>[src/lib.mak src/ugcclib.mak src/gslib.c src/gdevcmap.c src/gdevcmap.h]</p>
</blockquote>

<p><strong><a name="2007-12-21T195819.459173Z"></a>
2007-12-21T19:58:19.459173Z Ralph Giles</strong></p>
<blockquote>
<pre>
Further update the graphics library unit test and build. The gslib test 
executable builds and works now.

</pre>
<p>[src/ugcclib.mak src/gslib.c]</p>
</blockquote>

<p><strong><a name="2007-12-21T195607.995361Z"></a>
2007-12-21T19:56:07.995361Z Ralph Giles</strong></p>
<blockquote>
<pre>
Construct romfs.dev in the graphics library's gen directory instead of 
the ps interpreter's so building just the library is possible.
</pre>
<p>[src/gs.mak]</p>
</blockquote>

<p><strong><a name="2007-12-21T103100.226023Z"></a>
2007-12-21T10:31:00.226023Z Ken Sharp</strong></p>
<blockquote>
<pre>
Fix (jbig2dec): The global data stream for a JBIG2 image in a PDF
file was being released, and the data freed by the garbage collector,
before the data was used.

Details: Bug #689568 and #689569. Uses the patch supplied by Alex
in thread for #689569, implements Ralph's comments about the structure 
naming. Does not attempt to change the memory allocator. This slightly
modified patch also works with the Luratech decoder.

sjbig2.h, sjbig2_luratech.h; make the global data structure 
s_jbig2_global_data_t public. Store the structure in the 
stream decoder state.

sjbig2.c, sjbig2_luratech.c; store a pointer to the global
data structure. 

sjbig2_luratech.c; don't reset the pointer during initialisation!

zfjbig2.c; Pass the global pointer to the stream decoder for
release in the finalize routine.

</pre>
<p>[src/sjbig2_luratech.h src/zfjbig2.c src/sjbig2.c src/sjbig2.h src/sjbig2_luratech.c]</p>
</blockquote>

<p><strong><a name="2007-12-21T001553.911110Z"></a>
2007-12-21T00:15:53.911110Z Ralph Giles</strong></p>
<blockquote>
<pre>
Remove some old helper scripts.

They aren't used much and we no longer wish to maintain them.
</pre>
<p>[toolbin/many2pdf.tcl toolbin/pre toolbin/gssubst toolbin/gsindent]</p>
</blockquote>

<p><strong><a name="2007-12-21T001154.376327Z"></a>
2007-12-21T00:11:54.376327Z Ralph Giles</strong></p>
<blockquote>
<pre>
Make pre.tcl more robust in creating temporary files.

Also update the copyright header and fix a bug in an error handler.
</pre>
<p>[toolbin/pre.tcl]</p>
</blockquote>

<p><strong><a name="2007-12-19T062541.308572Z"></a>
2007-12-19T06:25:41.308572Z Alex Cherepanov</strong></p>
<blockquote>
<pre>
Ignore operator readonly when it is applied to a wrong type inside an
embedded Type 1 font. Bug 689617, customer 580.

</pre>
<p>[lib/pdf_font.ps]</p>
</blockquote>

<p><strong><a name="2007-12-19T062222.816836Z"></a>
2007-12-19T06:22:22.816836Z Alex Cherepanov</strong></p>
<blockquote>
<pre>
Treat the text after empty ASCII block in PFB stream as ASCII sub-stream
terminated by 0x80 character, a presumed header of the next block.
Bug 689617, customer 580.

</pre>
<p>[src/sfilter1.c]</p>
</blockquote>

<p><strong><a name="2007-12-19T002508.107768Z"></a>
2007-12-19T00:25:08.107768Z Ralph Giles</strong></p>
<blockquote>
<pre>
Update the graphics library unit tests for recent code changes.
</pre>
<p>[src/gslib.c]</p>
</blockquote>

<p><strong><a name="2007-12-18T100307.564012Z"></a>
2007-12-18T10:03:07.564012Z Ken Sharp</strong></p>
<blockquote>
<pre>
Fix (pdfwrite): Font Descriptors for fonts not embedded, due to
EmbedAllFonts=false, did not preserve the original font name.

Details:
Bug #689597 "PDF created with NoEmbed has wrong BaseFont name".

(gdevpdtd.c) pdf_font_descriptor_alloc, do not use the 'embed'
status to determine whether to use the font or key name. Always
use the font name.

pdf_compute_font_descriptor. Remove the simplistic test for
symbolic. In the loop retrieving glyph information, check to see 
if the glyph name is present in ISO Latin 1. If not, the font is
symbolic.

</pre>
<p>[src/gdevpdtd.c]</p>
</blockquote>

<p><strong><a name="2007-12-18T100209.815887Z"></a>
2007-12-18T10:02:09.815887Z Ken Sharp</strong></p>
<blockquote>
<pre>
Fix (pdfwrite): PDFXTrimBoxToMediaBoxOffset used the supplied data
incorrectly.

Details:
Bug #689578 "PDFXTrimBoxToMediaBoxOffset".

Patch supplied by Adam Augusta.

(gdevpdf.c) pdf_write_page. When using the PDFXTrimBoxToMediaBoxOffset
data, we need to subtract the bottom right offset from the MediaBox
not add it, the trim box must lie inside the media (see Acrobat 7.0
distiller parameters manual, pp. 102-103).

</pre>
<p>[src/gdevpdf.c]</p>
</blockquote>

<p><strong><a name="2007-12-18T034036.305448Z"></a>
2007-12-18T03:40:36.305448Z Ralph Giles</strong></p>
<blockquote>
<pre>
Remove the unused composite_rop device.

DETAILS:

This was an attempt to implement PCL raster operations as an interposed 
device which first rendered to an intermediate buffer and them 
composited with the underlying device buffer, similar to how the
"PDF 1.4 Transparency" device works.

While this would be a nice approach, allowing raster operations to 
function in more color spaces, it was never completed, and presents
a maintenance burden for ongoing clist improvements. We are therefore
removing it. It can be reinstated later as a starting point for further 
development if needed.
</pre>
<p>[src/lib.mak src/gsropc.c src/gsropc.h doc/Develop.htm src/gxropc.h]</p>
</blockquote>

<p><strong><a name="2007-12-17T213335.320044Z"></a>
2007-12-17T21:33:35.320044Z Igor Melichev</strong></p>
<blockquote>
<pre>
Fix (transparency) : Providing a right nested masks logic (continued).

DETAILS :

The revision 8439 missed an initializer.

</pre>
<p>[src/gdevp14.c]</p>
</blockquote>

<p><strong><a name="2007-12-17T072822.397599Z"></a>
2007-12-17T07:28:22.397599Z Alex Cherepanov</strong></p>
<blockquote>
<pre>
Improve outline pdfmarks produced by the pdf interpreter. Add page number and view
values. Thanks to Leon Bottou for the patch. Bug 689599.

</pre>
<p>[lib/pdf_main.ps]</p>
</blockquote>

<p><strong><a name="2007-12-16T153809.417159Z"></a>
2007-12-16T15:38:09.417159Z Igor Melichev</strong></p>
<blockquote>
<pre>
Fix (clist interpreter) : Improving debug trace about compositors.

DETAILS :

This only improves a debug printing.
The algorithm isn't changed.

This change simplifies the debug trace analysis with
using C function names as event marks in the trace.
Also return_error is now not used when c_pdf14trans_write
is called for estimating the buffer size.

</pre>
<p>[src/gdevp14.c]</p>
</blockquote>

<p><strong><a name="2007-12-16T013756.744199Z"></a>
2007-12-16T01:37:56.744199Z Alex Cherepanov</strong></p>
<blockquote>
<pre>
Don't skip space characters after eexec in embedded PDF fonts but
continue to do so in other cases. Bug 689615.

</pre>
<p>[src/seexec.c src/sfilter.h lib/pdf_font.ps src/zmisc1.c doc/Language.htm]</p>
</blockquote>

<p><strong><a name="2007-12-14T195101.706015Z"></a>
2007-12-14T19:51:01.706015Z Alex Cherepanov</strong></p>
<blockquote>
<pre>
Work around a GCC 4.2.1 bug on PowerPC that generates incorrect code in the
release build affecting scanning of binary tokens containing floating point
numbers. Bug 689586.

</pre>
<p>[src/ibnum.c]</p>
</blockquote>

<p><strong><a name="2007-12-14T184031.738291Z"></a>
2007-12-14T18:40:31.738291Z Marcos Woehrmann</strong></p>
<blockquote>
<pre>
Added casts to sprintf debugging statements (thanks for Michael Rutter for finding these).
</pre>
<p>[contrib/eplaser/gdevescv.c]</p>
</blockquote>

<p><strong><a name="2007-12-14T183139.938693Z"></a>
2007-12-14T18:31:39.938693Z Alex Cherepanov</strong></p>
<blockquote>
<pre>
Align the pointer to gx_clist_state array in gx_device_clist_writer device to
the natural boundary to avoid misaligned memory access and bus errors on ARM
processors. Bug 689600.

</pre>
<p>[src/gxclist.c]</p>
</blockquote>

<p><strong><a name="2007-12-12T202944.002303Z"></a>
2007-12-12T20:29:44.002303Z Igor Melichev</strong></p>
<blockquote>
<pre>
Fix (transparency) : Providing a right nested masks logic.

DETAILS :

This redoes the change 8340 without extra assumptions.
See comments in code.

</pre>
<p>[src/gdevp14.h src/gdevp14.c]</p>
</blockquote>

<p><strong><a name="2007-12-12T195831.269810Z"></a>
2007-12-12T19:58:31.269810Z Igor Melichev</strong></p>
<blockquote>
<pre>
Fix (transparency) : Unwinding the nested masks logic.

DETAILS :

The patch 8340 appears to be optimized for a particular case,
in which a call to pdf14_push_transparency_group
"will have been preceded by pdf14_push_transparency_mask ... pdf14_pop_transparency_mask".
This assumption is not true in general, when the clist interpreter
skips idle groups (either with incoming improvement or 
with using the band complexity array).

This patch unwinds the change 8340 and the dependent change 8342.
It also simplifies the garbager descriptor for pdf14_buf_s.

The nested mask problem is now reopen,
but we intend to close it shortly with a different patch.

</pre>
<p>[src/gdevp14.h src/gdevp14.c]</p>
</blockquote>

<p><strong><a name="2007-12-12T190044.753250Z"></a>
2007-12-12T19:00:44.753250Z Igor Melichev</strong></p>
<blockquote>
<pre>
Fix (clist interpreter) : Skip idle compositors, step 4.

DETAILS :

gs_pdf14trans_s doesn't need a reference counting.
Actually it was never used, so removing it should be
algorithmically equivalent.

</pre>
<p>[src/gsropc.c src/gsalphac.c src/gxcomp.h src/gsovrc.c src/gdevp14.c]</p>
</blockquote>

<p><strong><a name="2007-12-11T234718.340705Z"></a>
2007-12-11T23:47:18.340705Z Ray Johnston</strong></p>
<blockquote>
<pre>
Fix for SEGV when more than 4 colorants used with psdcmyk device.
Bug 689457 for customer #460.

DETAILS: 

Apparently the psdcmyk device never got updated with the ret_devn_params proc
as did the tiffsep device.
</pre>
<p>[src/gdevpsd.c]</p>
</blockquote>

<p><strong><a name="2007-12-11T212702.763129Z"></a>
2007-12-11T21:27:02.763129Z Ralph Giles</strong></p>
<blockquote>
<pre>
Store the posix persistent cache's last modified line as an unsigned 
long to avoid portability problems when reading and writing. Bug 689604.

DETAILS:

Previously we used time_t directly, but read and wrote it to the 
filesystem using the %ld printf format specifier, which is wrong
on systems where long int and time_t are different widths. Instead
we stort it as an unsigned long int, coercing the return value of
time(). This will be a year 2038 problem on systems with 32 bit longs, 
but seems the better option for portability now. There is no cast,
so the compiler should warn if this loses precision.
</pre>
<p>[src/gp_unix_cache.c]</p>
</blockquote>

<p><strong><a name="2007-12-11T165405.187153Z"></a>
2007-12-11T16:54:05.187153Z Marcos Woehrmann</strong></p>
<blockquote>
<pre>
Replaced C++ comments with C comments (// -> /* */).
</pre>
<p>[imdi/imdi.c imdi/imdi_tab.c imdi/imdi_gen.c imdi/cctiff.c]</p>
</blockquote>

<p><strong><a name="2007-12-11T082958.454613Z"></a>
2007-12-11T08:29:58.454613Z Ken Sharp</strong></p>
<blockquote>
<pre>
Fix (jbig2dec): Missing support for decoding multiple symbols
from a symbol dictionary, when using refinement/aggregation.

Details:
Bug #688945 "jbig2dec FATAL ERROR decoding image: aggregate
coding with REFAGGNINST=2 (segment 0x03)".

Improved the previous patch. We need to have a symbol dictionary
which contains all the original symbols, plus all the symbols decoded
so far, for the refinement/aggregation. Previously we created this
anew for each symbol, this patch creates the dictionary once at
the start of the dictionary decoding, and releases it when decoding
is complete.

Also releases the Huffman tables (if used), which was missed
in the previous patch.

</pre>
<p>[jbig2dec/jbig2_symbol_dict.c]</p>
</blockquote>

<p><strong><a name="2007-12-10T221105.461373Z"></a>
2007-12-10T22:11:05.461373Z Tor Andersson</strong></p>
<blockquote>
<pre>
Update to previous commit. Add pdf14_buffer maskbuf pointer to GC structures.</pre>
<p>[src/gdevp14.c]</p>
</blockquote>

<p><strong><a name="2007-12-10T202711.787298Z"></a>
2007-12-10T20:27:11.787298Z Alex Cherepanov</strong></p>
<blockquote>
<pre>
Fix a compilation error on Tru64's native cc, which doesn't tolerate spaces
between -I and the directory. Thanks to M. Rutter for the patch. Bug 689602
</pre>
<p>[contrib/contrib.mak]</p>
</blockquote>

<p><strong><a name="2007-12-10T161326.551663Z"></a>
2007-12-10T16:13:26.551663Z Tor Andersson</strong></p>
<blockquote>
<pre>
Pick up the transparency mask buffer when a new transparency group is pushed rather than when it is popped. Solves memory leaks and incorrect rendering when transparency groups are nested.</pre>
<p>[src/gdevp14.h src/gdevp14.c]</p>
</blockquote>

<p><strong><a name="2007-12-10T094503.624134Z"></a>
2007-12-10T09:45:03.624134Z Ken Sharp</strong></p>
<blockquote>
<pre>
Fix (jbig2dec): Missing support for decoding multiple symbols
from a symbol dictionary, when using refinement/aggregation.

Details:
Bug #688945 "jbig2dec FATAL ERROR decoding image: aggregate
coding with REFAGGNINST=2 (segment 0x03)".

Added missing support. When decoding a symbol dictionary, using
refinement/aggregation, and decoding multiple symbols, we need
to use text region decoding (single symbols use refinement
region decoding, already implemented).

This required making the text region decoding procedure available
to the symbol dictionary decoding routine, and correctly
initialising the parameters.

(jbig2_text.h) New include file. The 'Jbig2TextRegionParams'
structure and Jbig2RefCorner enum have been moved here from
jbig2_text.c, and a prototype for 'jbig2_decode_text_region'
created.

Added pointers for the adaptive arithmetic decoder tables to the
Jbig2TextRegionParams structure, as these tables must now be passed
to the decoder routine (see below) rather than initialised in it.

(jbig2_text.c) Modified the 'jbig2_decode_text_region' routine to
take the arithmetic decoder state or data stream (for Huffman
decoding) as a parameter. When being called from the symbol
dictionary decoder we must use the current decoder state; removed
the initialisation of the decoder state, this is passed as a
parameter Removed the initialisation of the adaptive arithmetic
decoder tables, these are now passed as part of the
Jbig2TextRegionParams structure.

Modified 'jbig2_parse_text_region' to create and initialise the
arithmetic decoder state (or data stream for Huffman). If
using adaptive arithmetic encoding, create and initialise the
tables.Required now that these are parameters to the text
region decoder.

(jbig2_symbol_dict.c) 'jbig2_decode_symbol_dict', when we
encounter refinement/aggregation with REFAGGNINST > 1, instead of
flagging an error create a Jbig2TextRegionParams structure (if
not already present), initialise the arithmetic decoder tables, and
call the text region decoder to create the bitmap. If we already
have a Jbig2TextRegionParams structure (because we have already
decoded a symbol this way) just use it as the argument to the
text region decoder.

</pre>
<p>[jbig2dec/jbig2_text.c src/jbig2.mak jbig2dec/jbig2_symbol_dict.c jbig2dec/jbig2_text.h]</p>
</blockquote>

<p><strong><a name="2007-12-09T063300.168945Z"></a>
2007-12-09T06:33:00.168945Z Alex Cherepanov</strong></p>
<blockquote>
<pre>
Use a smaller buffer for eexecDecode filter to avoid consumption of the data
that follow a short (and incorrect) run of 0's in PS files generated by
Adobe Acrobat from PDF files with usage restrictions. Bug 689577

DETAILS:
The buffer size of 132 has been selected from a middle of small window that
fixes the bug but doesn't cause regession in comparefiles/fonttest.pdf.
Detection of EOF after seing a run of 0's is worth to note as an alternative.

</pre>
<p>[src/seexec.c]</p>
</blockquote>

<p><strong><a name="2007-12-08T135753.015953Z"></a>
2007-12-08T13:57:53.015953Z Ken Sharp</strong></p>
<blockquote>
<pre>
Update the MSVC makefile to work with Visual Studio 2005 (nmake version 8). 
Should still be OK with MSVC 6.
</pre>
<p>[jbig2dec/msvc.mak]</p>
</blockquote>

<p><strong><a name="2007-12-07T233906.271814Z"></a>
2007-12-07T23:39:06.271814Z Igor Melichev</strong></p>
<blockquote>
<pre>
Fix (clist interpreter) : Skip idle compositors, step 3.

DETAILS :

The clist writer writes the 'create compositor' operation to all bands,
including ones that are not covered by a transparency.
It does so because this operation changes the number of color components.

When rendering a specific band, it frequently happens that a compositor
is created and then immediately destroyed. Such thing happens outside 
the transparency bbox, and within the transparency bbox if
the band has no transparent objects. When compositor is created,
it allocates a big raster buffer and cleans it. 
Due to that we observe a significant CPU time expence
when running the test case of the bug 689155.

This patch is a preparation for further improvements.
This patch includes CTM into pdf14 compositor params
(see changes to c_pdf14trans_read, c_pdf14trans_write, clist_create_compositor).
The result should be same as the old code, but the algorithm is different.
The old code wrote CTM as a separate command before cmd_opv_ext_create_compositor.
The new code does not, and in many cases compositor commads 
immediately follow each another.

The last fact changes the behavior of the compositor queue :
before this patch it consisted of 1 element maximum,
but after it the queue becomes longer (up to 10 elements
with SoftMaskGroup.pdf). A bug is fixed in the queue logic 
in gxclrast.c ln 1355.

The queue is still immediately executed
when a non-compositor command appears in the input stream.
An annihilation of neighbour idle compositors will be a next step.

Minor changes:

- added a new method adjust_ctm to gs_composite_type_procs_t.
- added type checks with composite_*_proc macros to all compositor types.
- dependencies were broken for gdevp14.c in lib.mak .

</pre>
<p>[src/lib.mak src/gsropc.c src/gdevdflt.c src/gxclpath.h src/gxcldev.h src/gsalphac.c src/gxcomp.h src/gsovrc.c src/gstrans.h src/gxclrast.c src/gdevp14.c src/gxclpath.c src/gxclimag.c src/gxclutil.c]</p>
</blockquote>

<p><strong><a name="2007-12-05T233942.529355Z"></a>
2007-12-05T23:39:42.529355Z Igor Melichev</strong></p>
<blockquote>
<pre>
Fix (clist interpreter) : Skip idle compositors, step 2.

DETAILS :

The clist writer writes the 'create compositor' operation to all bands,
including ones that are not covered by a transparency.
It does so because this operation changes the number of color components.

When rendering a specific band, it frequently happens that a compositor
is created and then immediately destroyed. Such thing happens outside 
the transparency bbox, and within the transparency bbox if
the band has no transparent objects. When compositor is created,
it allocates a big raster buffer and cleans it. 
Due to that we observe a significant CPU time expence
when running the test case of the bug 689155.

This patch is a preparation for further improvements.
The change is algorithmically equivalent.
It implements a compositor queue for a delayed applying of compositors.
Nevertheless currently the compositors are still applied immediately 
due to stubs in is_null_compositor_op, is_closing_compositor.

</pre>
<p>[src/gxcomp.h src/gxclrast.c]</p>
</blockquote>

<p><strong><a name="2007-12-05T164041.424504Z"></a>
2007-12-05T16:40:41.424504Z Igor Melichev</strong></p>
<blockquote>
<pre>
Fix (clist interpreter) : Skip idle compositors, step 1.

DETAILS :

The clist writer writes the 'create compositor' operation to all bands,
including ones that are not covered by a transparency.
It does so because this operation changes the number of color components.

When rendering a specific band, it frequently happens that a compositor
is created and then immediately destroyed. Such thing happens outside 
the transparency bbox, and within the transparency bbox if
the band has no transparent objects. When compositor is created,
it allocates a big raster buffer and cleans it. 
Due to that we observe a significant CPU time expence
when running the test case of the bug 689155.

This patch is a preparation for further improvements.
The change is algorithmically equivalent.
I simply divides read_create_compositor into 2 ones :
the first one just reads the instruction,
and the second one applies it. 
Also did a mionor code cleanup.

</pre>
<p>[src/gxclrast.c]</p>
</blockquote>

<p><strong><a name="2007-12-05T000850.583846Z"></a>
2007-12-05T00:08:50.583846Z Till Kamppeter</strong></p>
<blockquote>
<pre>
Let CUPS filters use buffered input to Ghostscript via '-_', to work around bug #689577. 
</pre>
<p>[cups/pstoraster.in cups/pstopxl.in]</p>
</blockquote>

<p><strong><a name="2007-12-03T213116.528843Z"></a>
2007-12-03T21:31:16.528843Z Henry Stiles</strong></p>
<blockquote>
<pre>
Replace the "tricky" unit_frac macro with a normal function call.  The
macro produced a false positive in valgrind and seems to cause
incorrect code generation on gcc 4.1.2 with optimization but we did
not study it in detail.  The change should be equivalent to the
previous code, reviewed by Ralph Giles.
</pre>
<p>[src/gxcmap.c src/gxcmap.h src/gscsepr.c src/gscdevn.c]</p>
</blockquote>

<p><strong><a name="2007-12-03T200705.165284Z"></a>
2007-12-03T20:07:05.165284Z Igor Melichev</strong></p>
<blockquote>
<pre>
Fix (shadings) : Optimize fill_linear_color_scanline with analitic computation of the color change position.

DETAILS :

Debugged with the test case of the bug 689155.

This optimizes slightly changing gradients.
It speeds up the test case from 6 hours to 5 hours.

The old code in gx_default_fill_linear_color_scanline 
recomputes color for each pixel.
The new code checks whether neighbour pixels have same color,
and if so it finds the color change position 
with solving a linear equation, 
and fills entire constant color interval 
without computing color for each pixel.

The linear equation is solved with 64 bits arithmetics.
We would like to create a 32bits algorithm someday.
We think it is possible with rounding colors to 16 bits
and restricting a run length with 15 bits. 
Note it must not accummulate rounding errors,
so it needs to compute from the run start at each iteration.
So if the scanline is wide, first split it into smaller ones
by coordinates, then break each subscanline into runs by color changes.

</pre>
<p>[src/gdevdsha.c]</p>
</blockquote>

<p><strong><a name="2007-11-30T221349.581001Z"></a>
2007-11-30T22:13:49.581001Z L. Peter Deutsch</strong></p>
<blockquote>
<pre>
Add a tool that analyzes logs produced by gs -Z67, producing a report of
memory leaks.
</pre>
<p>[toolbin/memory.py]</p>
</blockquote>

<p><strong><a name="2007-11-30T064347.688763Z"></a>
2007-11-30T06:43:47.688763Z L. Peter Deutsch</strong></p>
<blockquote>
<pre>
Adds the base font address to the -Zm tracing output.
</pre>
<p>[src/gsfont.c]</p>
</blockquote>

<p><strong><a name="2007-11-30T064312.449891Z"></a>
2007-11-30T06:43:12.449891Z L. Peter Deutsch</strong></p>
<blockquote>
<pre>
Fixes bug: -Z89 produced slightly mangled output (-Z9 output inserted in the
middle of a line of -Z8 output).
</pre>
<p>[src/igcref.c]</p>
</blockquote>

<p><strong><a name="2007-11-30T004553.632689Z"></a>
2007-11-30T00:45:53.632689Z Ray Johnston</strong></p>
<blockquote>
<pre>
Add URW fonts to the Resource/Font directory. These will be included when
COMPILE_INITS=1. Fontmap.GS still references the disk file name so that
the disk file based fonts can still be used if they are available.
</pre>
<p>[Resource/Font/URWPalladioL-BoldItal Resource/Font/NimbusRomNo9L-Medi Resource/Font/NimbusSanL-Bold Resource/Font/Dingbats Resource/Font/URWChanceryL-MediItal Resource/Font/CenturySchL-Roma Resource/Font Resource/Font/NimbusMonL-Bold Resource/Font/URWGothicL-Demi Resource/Font/NimbusSanL-BoldItal Resource/Font/NimbusRomNo9L-MediItal Resource/Font/StandardSymL Resource/Font/URWBookmanL-DemiBold Resource/Font/NimbusRomNo9L-Regu Resource/Font/URWGothicL-Book Resource/Font/NimbusSanL-ReguCond Resource/Font/CenturySchL-Bold Resource/Font/URWBookmanL-Ligh Resource/Font/NimbusRomNo9L-ReguItal Resource/Font/URWBookmanL-DemiBoldItal Resource/Font/NimbusMonL-ReguObli Resource/Font/NimbusSanL-ReguCondItal Resource/Font/CenturySchL-Ital Resource/Font/URWPalladioL-Roma Resource/Font/CenturySchL-BoldItal Resource/Font/URWBookmanL-LighItal Resource/Font/NimbusSanL-BoldCond Resource/Font/NimbusMonL-BoldObli Resource/Font/NimbusSanL-BoldCondItal Resource/Font/URWGothicL-DemiObli Resource/Font/NimbusSanL-Regu Resource/Font/URWPalladioL-Bold Resource/Font/NimbusMonL-Regu Resource/Font/URWGothicL-BookObli Resource/Font/NimbusSanL-ReguItal Resource/Font/URWPalladioL-Ital]</p>
</blockquote>

<p><strong><a name="2007-11-29T213953.584646Z"></a>
2007-11-29T21:39:53.584646Z Igor Melichev</strong></p>
<blockquote>
<pre>
Fix (shadings) : Optimize path manipulations for shading fill (continued).

DETAILS :

Debugged with the test case of the bug 689155.

A long ago the graphics library converted the sfill clipping into a path.
It was improved with revision 8017 with introducing 
a device response for pattern_manage__shfill_doesnt_need_path.
However the revision 8017 appears incomplete : 
it missed the related change to the clist writer device
and to pdf14 device. This patch fixes it.

This patch causes a progression for the problem
known as bug 689338 "Raster depends on bands".
With banded rendering some shadings are now painted some wider,
and the raster appears equal to one from unbanded rendering.
It happens because the old code doesn't convert shfill clipping
into a path when no banding, and does convert when banding.
The new code does not convert in both cases.

</pre>
<p>[src/gdevp14.c src/gxclpath.c src/gxclrect.c]</p>
</blockquote>

<p><strong><a name="2007-11-29T014216.432740Z"></a>
2007-11-29T01:42:16.432740Z L. Peter Deutsch</strong></p>
<blockquote>
<pre>
Remove obsolete variables dstderr and estderr; repair tracing code in
igcstr.c that would cause a crash if -Z5 was used.

</pre>
<p>[src/interp.c src/gdebug.h src/igcstr.c]</p>
</blockquote>

<p><strong><a name="2007-11-28T200434.791598Z"></a>
2007-11-28T20:04:34.791598Z Ray Johnston</strong></p>
<blockquote>
<pre>
Add the 'pamcmyk32' (previously the 'pam' device) to all default builds.
This will be used for regression testing of 32-bit CMYK.

DETAILS:

The 'pam' device is retained, but not included in the default builds,
in case anyone was using this. The 'pamcmyk32' name was created as
more descriptive.
</pre>
<p>[src/bcwin32.mak src/openvms.mak src/ugcclib.mak src/macosx.mak src/watcw32.mak src/dvx-gcc.mak src/msvc32.mak src/unix-gcc.mak src/gdevpbm.c src/unixansi.mak src/macos-mcp.mak src/devs.mak src/os2.mak]</p>
</blockquote>

<p><strong><a name="2007-11-28T194748.435055Z"></a>
2007-11-28T19:47:48.435055Z Ralph Giles</strong></p>
<blockquote>
<pre>
Document the jasper build file version skew menioned in Bug 689570.
</pre>
<p>[doc/Release.htm]</p>
</blockquote>

<p><strong><a name="2007-11-28T184655.924792Z"></a>
2007-11-28T18:46:55.924792Z Ray Johnston</strong></p>
<blockquote>
<pre>
Fix #defines when USE_COMPRESSED_ENCODING == 0 so that the number of
components, separable/linear and encode/decode values are correct.
Also add checking for TIFF file larger than max_long.
</pre>
<p>[src/gdevtsep.c]</p>
</blockquote>

<p><strong><a name="2007-11-28T183959.435918Z"></a>
2007-11-28T18:39:59.435918Z Ray Johnston</strong></p>
<blockquote>
<pre>
Fix CIEBasedA problem, add DeviceGray and DeviceRGB support to this utility.

DETAILS:

This isn't used by Ghostscript, but is a useful utility for 'running' a
CIE colorspace conversion to see the intermediate and final results.
</pre>
<p>[lib/docie.ps]</p>
</blockquote>

<p><strong><a name="2007-11-27T225840.032075Z"></a>
2007-11-27T22:58:40.032075Z Ralph Giles</strong></p>
<blockquote>
<pre>
Also install gdevdsp.h in the unix so build. This header contains the
callback definitions for the "display" device. Bug 689576.
</pre>
<p>[src/unix-dll.mak]</p>
</blockquote>

<p><strong><a name="2007-11-27T204309.836338Z"></a>
2007-11-27T20:43:09.836338Z Ralph Giles</strong></p>
<blockquote>
<pre>
Update the regression code license headers with the current contact
address.
</pre>
<p>[toolbin/tests/dump_checksum.py toolbin/tests/cmpi.py toolbin/tests/gscheck_testfiles.py toolbin/tests/dump_checksum_plus.py toolbin/tests/check_source.py toolbin/tests/gssum.py toolbin/tests/gscheck_all.py toolbin/tests/dump_checksum_raw.py toolbin/tests/make_two_pdfversions toolbin/tests/check_all.py toolbin/tests/rasterdb.py toolbin/tests/gsutil.py toolbin/tests/gscheck_fuzzypdf.py toolbin/tests/revert_pdfbaseline toolbin/tests/build_revision.py toolbin/tests/compare_checksumdb.py toolbin/tests/gsconf.py toolbin/tests/revert_baseline toolbin/tests/update_baseline.py toolbin/tests/make_baselinedb.py toolbin/tests/gscheck_raster.py toolbin/tests/gsparamsets.py toolbin/tests/gstestutils.py toolbin/tests/compare_checksums.py toolbin/tests/check_dirs.py toolbin/tests/update_specific toolbin/tests/run_nightly.py toolbin/tests/gstestgs.py toolbin/tests/myoptparse.py toolbin/tests/run_regression.py toolbin/tests/get_baselines.py toolbin/tests/make_two_versions toolbin/tests/testdiff.py toolbin/tests/gscheck_pdfwrite.py toolbin/tests/make_testdb.py toolbin/tests/check_comments.py toolbin/tests/check_docrefs.py toolbin/tests/get_baseline_log.py]</p>
</blockquote>

<p><strong><a name="2007-11-27T204307.921159Z"></a>
2007-11-27T20:43:07.921159Z Ralph Giles</strong></p>
<blockquote>
<pre>
Change the regression scripts to rewrite the product as
"GPL Ghostscript".
</pre>
<p>[toolbin/tests/build_revision.py toolbin/tests/update_specific]</p>
</blockquote>

<p><strong><a name="2007-11-27T181110.542532Z"></a>
2007-11-27T18:11:10.542532Z Igor Melichev</strong></p>
<blockquote>
<pre>
Fix (graphics) : Improving the setoverprint logic.

DETAILS :

Debugged with the test case of the bug 689155.

This eliminates unnecessary calls of dx_device::procs.create_compositor.
In the test case the oprator 'show' calls gs_save and gs_restore
and the latter performs unnecessary call to gs_do_set_overprint
due to overprint is set at page start. It causes a significant CPU time expense 
while clist interpretation.

We're not sure why the old code is such,
we change it as we think correct.
Will see the regression test results.
A local test gave no differences.

</pre>
<p>[src/gsstate.c]</p>
</blockquote>

<p><strong><a name="2007-11-23T092306.243419Z"></a>
2007-11-23T09:23:06.243419Z Ken Sharp</strong></p>
<blockquote>
<pre>
Fix (pdfwrite): Fonts containing glyphs with no sbw or hsbw
instruction caused pdfwrite to crash.

Details:
Bug #689544 "Segmentation fault writing PDF file".

The job contains a number of fonts apparently converted from 
TrueType to type 1. The /.notdef glyph in every case consists
only of an endchar instruction. Techincally invalid since the 
specification says the first instruction must be either an sbw
or hsbw instruction.

This causes a crash because gs_type1_glyph_info didn't create
a path before interpreting the glyph. If we encountered a path
operation before a sbw instruction we attempted to write to the 
non-existent path.

(gxtype1.c), gs_type1_glyph_info, create a path for the type 1
interpreter to work with. Make it a bbox_accumulator so we don't
allocate memory for path segments.

(gdevpsfu.c), psf_check_outline_glyphs, if we get an invalidfont
error return from the font's 'glyph_info' procedure, don't exit
immediately. Check each glyph, and only return an error if 
there are no good glyphs. 

</pre>
<p>[src/gxtype1.c src/gdevpsfu.c]</p>
</blockquote>

<p><strong><a name="2007-11-22T024659.719550Z"></a>
2007-11-22T02:46:59.719550Z Ralph Giles</strong></p>
<blockquote>
<pre>
Correct Id line and double-include protection warnings.
</pre>
<p>[src/ConvertUTF.h toolbin/tests/check_source.py src/expat.mak]</p>
</blockquote>

<p><strong><a name="2007-11-22T010346.485805Z"></a>
2007-11-22T01:03:46.485805Z Ralph Giles</strong></p>
<blockquote>
<pre>
Update the run_nightly regression script to rewrite the product
name to GPL Ghostscript instead of AFPL Ghostscript. Also, include
quotation marks in the optional part of the regex so we work when
GS_PRODUCT is set to another macro and does not include a literal
string, as it does at release time.
</pre>
<p>[toolbin/tests/run_nightly.py]</p>
</blockquote>

<p><strong><a name="2007-11-22T005403.544607Z"></a>
2007-11-22T00:54:03.544607Z Ralph Giles</strong></p>
<blockquote>
<pre>
Correct a format string error in the PDF 1.4 spot color name generation.
</pre>
<p>[src/gdevp14.c]</p>
</blockquote>

<p><strong><a name="2007-11-22T005401.468513Z"></a>
2007-11-22T00:54:01.468513Z Ralph Giles</strong></p>
<blockquote>
<pre>
Update release procedure documentation.
</pre>
<p>[doc/Release.htm]</p>
</blockquote>

<p><strong><a name="2007-11-21T224203.178745Z"></a>
2007-11-21T22:42:03.178745Z Ralph Giles</strong></p>
<blockquote>
<pre>
Bump the version number and date after the 8.61 release.
</pre>
<p>[doc/News.htm lib/gs_init.ps src/gscdef.c src/version.mak]</p>
</blockquote>

<p><strong><a name="2007-11-21T200708.596302Z"></a>
2007-11-21T20:07:08.596302Z Ralph Giles</strong></p>
<blockquote>
<pre>
Update changelogs and release date for the second 8.61 candidate.
</pre>
<p>[doc/History7.htm doc/Projects.htm doc/History8.htm man/dvipdf.1 man/ps2ascii.1 doc/Use.htm doc/Readme.htm doc/Source.htm doc/Deprecated.htm man/ps2epsi.1 doc/Install.htm doc/Changes.htm doc/API.htm doc/Issues.htm doc/DLL.htm doc/Drivers.htm man/pfbtopfa.1 doc/Release.htm doc/Commprod.htm doc/Xfonts.htm doc/Devices.htm doc/Language.htm man/gs.1 src/version.mak man/pf2afm.1 doc/Ps2ps2.htm doc/Fonts.htm man/printafm.1 doc/Ps2pdf.htm doc/Develop.htm doc/Helpers.htm man/pdf2dsc.1 doc/Psfiles.htm doc/Lib.htm doc/gs-vms.hlp doc/Htmstyle.htm man/font2c.1 man/gsnd.1 man/pdfopt.1 doc/News.htm man/pdf2ps.1 man/ps2pdf.1 doc/Testing.htm doc/Make.htm doc/Details8.htm doc/Unix-lpr.htm doc/C-style.htm doc/Ps-style.htm doc/History1.htm doc/History2.htm man/gslp.1 man/wftopfa.1 doc/History3.htm doc/Details.htm doc/Ps2epsi.htm doc/History4.htm man/ps2pdfwr.1 man/ps2ps.1 doc/History5.htm doc/History6.htm]</p>
</blockquote>
</body>
</html>