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
2846
2847
2848
2849
2850
2851
2852
2853
2854
2855
2856
2857
2858
2859
2860
2861
2862
2863
2864
2865
2866
2867
2868
2869
2870
2871
2872
2873
2874
2875
2876
2877
2878
2879
2880
2881
2882
2883
2884
2885
2886
2887
2888
2889
2890
2891
2892
2893
2894
2895
2896
2897
2898
2899
2900
2901
2902
2903
2904
2905
2906
2907
2908
2909
2910
2911
2912
2913
2914
2915
2916
2917
2918
2919
2920
2921
2922
2923
2924
2925
2926
2927
2928
2929
2930
2931
2932
2933
2934
2935
2936
2937
2938
2939
2940
2941
2942
2943
2944
2945
2946
2947
2948
2949
2950
2951
2952
2953
2954
2955
2956
2957
2958
2959
2960
2961
2962
2963
2964
2965
2966
2967
2968
2969
2970
2971
2972
2973
2974
2975
2976
2977
2978
2979
2980
2981
2982
2983
2984
2985
2986
2987
2988
2989
2990
2991
2992
2993
2994
2995
2996
2997
2998
2999
3000
3001
3002
3003
3004
3005
3006
3007
3008
3009
3010
3011
3012
3013
3014
3015
3016
3017
3018
3019
3020
3021
3022
3023
3024
3025
3026
3027
3028
3029
3030
3031
3032
3033
3034
3035
3036
3037
3038
3039
3040
3041
3042
3043
3044
3045
3046
3047
3048
3049
3050
3051
3052
3053
3054
3055
3056
3057
3058
3059
3060
3061
3062
3063
3064
3065
3066
3067
3068
3069
3070
3071
3072
3073
3074
3075
3076
3077
3078
3079
3080
3081
3082
3083
3084
3085
3086
3087
3088
3089
3090
3091
3092
3093
3094
3095
3096
3097
3098
3099
3100
3101
3102
3103
3104
3105
3106
3107
3108
3109
3110
3111
3112
3113
3114
3115
3116
3117
3118
3119
3120
3121
3122
3123
3124
3125
3126
3127
3128
3129
3130
3131
3132
3133
3134
3135
3136
3137
3138
3139
3140
3141
3142
3143
3144
3145
3146
3147
3148
3149
3150
3151
3152
3153
3154
3155
3156
3157
3158
3159
3160
3161
3162
3163
3164
3165
3166
3167
3168
3169
3170
3171
3172
3173
3174
3175
3176
3177
3178
3179
3180
3181
3182
3183
3184
3185
3186
3187
3188
3189
3190
3191
3192
3193
3194
3195
3196
3197
3198
3199
3200
3201
3202
3203
3204
3205
3206
3207
3208
3209
3210
3211
3212
3213
3214
3215
3216
3217
3218
3219
3220
3221
3222
3223
3224
3225
3226
3227
3228
3229
3230
3231
3232
3233
3234
3235
3236
3237
3238
3239
3240
3241
3242
3243
3244
3245
3246
3247
3248
3249
3250
3251
3252
3253
3254
3255
3256
3257
3258
3259
3260
3261
3262
3263
3264
3265
3266
3267
3268
3269
3270
3271
3272
3273
3274
3275
3276
3277
3278
3279
3280
3281
3282
3283
3284
3285
3286
3287
3288
3289
3290
3291
3292
3293
3294
3295
3296
3297
3298
3299
3300
3301
3302
3303
3304
3305
3306
3307
3308
3309
3310
3311
3312
3313
3314
3315
3316
3317
3318
3319
3320
3321
3322
3323
3324
3325
3326
3327
3328
3329
3330
3331
3332
3333
3334
3335
3336
3337
3338
3339
3340
3341
3342
3343
3344
3345
3346
3347
3348
3349
3350
3351
3352
3353
3354
3355
3356
3357
3358
3359
3360
3361
3362
3363
3364
3365
3366
3367
3368
3369
3370
3371
3372
3373
3374
3375
3376
3377
3378
3379
3380
3381
3382
3383
3384
3385
3386
3387
3388
3389
3390
3391
3392
3393
3394
3395
3396
3397
3398
3399
3400
3401
3402
3403
3404
3405
3406
3407
3408
3409
3410
3411
3412
3413
3414
3415
3416
3417
3418
3419
3420
3421
3422
3423
3424
3425
3426
3427
3428
3429
3430
3431
3432
3433
3434
3435
3436
3437
3438
3439
3440
3441
3442
3443
3444
3445
3446
3447
3448
3449
3450
3451
3452
3453
3454
3455
3456
3457
3458
3459
3460
3461
3462
3463
3464
3465
3466
3467
3468
3469
3470
3471
3472
3473
3474
3475
3476
3477
3478
3479
3480
3481
3482
3483
3484
3485
3486
3487
3488
3489
3490
3491
3492
3493
3494
3495
3496
3497
3498
3499
3500
3501
3502
3503
3504
3505
3506
3507
3508
3509
3510
3511
3512
3513
3514
3515
3516
3517
3518
3519
3520
3521
3522
3523
3524
3525
3526
3527
3528
3529
3530
3531
3532
3533
3534
3535
3536
3537
3538
3539
3540
3541
3542
3543
3544
3545
3546
3547
3548
3549
3550
3551
3552
3553
3554
3555
3556
3557
3558
3559
3560
3561
3562
3563
3564
3565
3566
3567
3568
3569
3570
3571
3572
3573
3574
3575
3576
3577
3578
3579
3580
3581
3582
3583
3584
3585
3586
3587
3588
3589
3590
3591
3592
3593
3594
3595
3596
3597
3598
3599
3600
3601
3602
3603
3604
3605
3606
3607
3608
3609
3610
3611
3612
3613
3614
3615
3616
3617
3618
3619
3620
3621
3622
3623
3624
3625
3626
3627
3628
3629
3630
3631
3632
3633
3634
3635
3636
3637
3638
3639
3640
3641
3642
3643
3644
3645
3646
3647
3648
3649
3650
3651
3652
3653
3654
3655
3656
3657
3658
3659
3660
3661
3662
3663
3664
3665
3666
3667
3668
3669
3670
3671
3672
3673
3674
3675
3676
3677
3678
3679
3680
3681
3682
3683
3684
3685
3686
3687
3688
3689
3690
3691
3692
3693
3694
3695
3696
3697
3698
3699
3700
3701
3702
3703
3704
3705
3706
3707
3708
3709
3710
3711
3712
3713
3714
3715
3716
3717
3718
3719
3720
3721
3722
3723
3724
3725
3726
3727
3728
3729
3730
3731
3732
3733
3734
3735
3736
3737
3738
3739
3740
3741
3742
3743
3744
3745
3746
3747
3748
3749
3750
3751
3752
3753
3754
3755
3756
3757
3758
3759
3760
3761
3762
3763
3764
3765
3766
3767
3768
3769
3770
3771
3772
3773
3774
3775
3776
3777
3778
3779
3780
3781
3782
3783
3784
3785
3786
3787
3788
3789
3790
3791
3792
3793
3794
3795
3796
3797
3798
3799
3800
3801
3802
3803
3804
3805
3806
3807
3808
3809
3810
3811
3812
3813
3814
3815
3816
3817
3818
3819
3820
3821
3822
3823
3824
3825
3826
3827
3828
3829
3830
3831
3832
3833
3834
3835
3836
3837
3838
3839
3840
3841
3842
3843
3844
3845
3846
3847
3848
3849
3850
3851
3852
3853
3854
3855
3856
3857
3858
3859
3860
3861
3862
3863
3864
3865
3866
3867
3868
3869
3870
3871
3872
3873
3874
3875
3876
3877
3878
3879
3880
3881
3882
3883
3884
3885
3886
3887
3888
3889
3890
3891
3892
3893
3894
3895
3896
3897
3898
3899
3900
3901
3902
3903
3904
3905
3906
3907
3908
3909
3910
3911
3912
3913
3914
3915
3916
3917
3918
3919
3920
3921
3922
3923
3924
3925
3926
3927
3928
3929
3930
3931
3932
3933
3934
3935
3936
3937
3938
3939
3940
3941
3942
3943
3944
3945
3946
3947
3948
3949
3950
3951
3952
3953
3954
3955
3956
3957
3958
3959
3960
3961
3962
3963
3964
3965
3966
3967
3968
3969
3970
3971
3972
3973
3974
3975
3976
3977
3978
3979
3980
3981
3982
3983
3984
3985
3986
3987
3988
3989
3990
3991
3992
3993
3994
3995
3996
3997
3998
3999
4000
4001
4002
4003
4004
4005
4006
4007
4008
4009
4010
4011
4012
4013
4014
4015
4016
4017
4018
4019
4020
4021
4022
4023
4024
4025
4026
4027
4028
4029
4030
4031
4032
4033
4034
4035
4036
4037
4038
4039
4040
4041
4042
4043
4044
4045
4046
4047
4048
4049
4050
4051
4052
4053
4054
4055
4056
4057
4058
4059
4060
4061
4062
4063
4064
4065
4066
4067
4068
4069
4070
4071
4072
4073
4074
4075
4076
4077
4078
4079
4080
4081
4082
4083
4084
4085
4086
4087
4088
4089
4090
4091
4092
4093
4094
4095
4096
4097
4098
4099
4100
4101
4102
4103
4104
4105
4106
4107
4108
4109
4110
4111
4112
4113
4114
4115
4116
4117
4118
4119
4120
4121
4122
4123
4124
4125
4126
4127
4128
4129
4130
4131
4132
4133
4134
4135
4136
4137
4138
4139
4140
4141
4142
4143
4144
4145
4146
4147
4148
4149
4150
4151
4152
4153
4154
4155
4156
4157
4158
4159
4160
4161
4162
4163
4164
4165
4166
4167
4168
4169
4170
4171
4172
4173
4174
4175
4176
4177
4178
4179
4180
4181
4182
4183
4184
4185
4186
4187
4188
4189
4190
4191
4192
4193
4194
4195
4196
4197
4198
4199
4200
4201
4202
4203
4204
4205
4206
4207
4208
4209
4210
4211
4212
4213
4214
4215
4216
4217
4218
4219
4220
4221
4222
4223
4224
4225
4226
4227
4228
4229
4230
4231
4232
4233
4234
4235
4236
4237
4238
4239
4240
4241
4242
4243
4244
4245
4246
4247
4248
4249
4250
4251
4252
4253
4254
4255
4256
4257
4258
4259
4260
4261
4262
4263
4264
4265
4266
4267
4268
4269
4270
4271
4272
4273
4274
4275
4276
4277
4278
4279
4280
4281
4282
4283
4284
4285
4286
4287
4288
4289
4290
4291
4292
4293
4294
4295
4296
4297
4298
4299
4300
4301
4302
4303
4304
4305
4306
4307
4308
4309
4310
4311
4312
4313
4314
4315
4316
4317
4318
4319
4320
4321
4322
4323
4324
4325
4326
4327
4328
4329
4330
4331
4332
4333
4334
4335
4336
4337
4338
4339
4340
4341
4342
4343
4344
4345
4346
4347
4348
4349
4350
4351
4352
4353
4354
4355
4356
4357
4358
4359
4360
4361
4362
4363
4364
4365
4366
4367
4368
4369
4370
4371
4372
4373
4374
4375
4376
4377
4378
4379
4380
4381
4382
4383
4384
4385
4386
4387
4388
4389
4390
4391
4392
4393
4394
4395
4396
4397
4398
4399
4400
4401
4402
4403
4404
4405
4406
4407
4408
4409
4410
4411
4412
4413
4414
4415
4416
4417
4418
4419
4420
4421
4422
4423
4424
4425
4426
4427
4428
4429
4430
4431
4432
4433
4434
4435
4436
4437
4438
4439
4440
4441
4442
4443
4444
4445
4446
4447
4448
4449
4450
4451
4452
4453
4454
4455
4456
4457
4458
4459
4460
4461
4462
4463
4464
4465
4466
4467
4468
4469
4470
4471
4472
4473
4474
4475
4476
4477
4478
4479
4480
4481
4482
4483
4484
4485
4486
4487
4488
4489
4490
4491
4492
4493
4494
4495
4496
4497
4498
4499
4500
4501
4502
4503
4504
4505
4506
4507
4508
4509
4510
4511
4512
4513
4514
4515
4516
4517
4518
4519
4520
4521
4522
4523
4524
4525
4526
4527
4528
4529
4530
4531
4532
4533
4534
4535
4536
4537
4538
4539
4540
4541
4542
4543
4544
4545
4546
4547
4548
4549
4550
4551
4552
4553
4554
4555
4556
4557
4558
4559
4560
4561
4562
4563
4564
4565
4566
4567
4568
4569
4570
4571
4572
4573
4574
4575
4576
4577
4578
4579
4580
4581
4582
4583
4584
4585
4586
4587
4588
4589
4590
4591
4592
4593
4594
4595
4596
4597
4598
4599
4600
4601
4602
4603
4604
4605
4606
4607
4608
4609
4610
4611
4612
4613
4614
4615
4616
4617
4618
4619
4620
4621
4622
4623
4624
4625
4626
4627
4628
4629
4630
4631
4632
4633
4634
4635
4636
4637
4638
4639
4640
4641
4642
4643
4644
4645
4646
4647
4648
4649
4650
4651
4652
4653
4654
4655
4656
4657
4658
4659
4660
4661
4662
4663
4664
4665
4666
4667
4668
4669
4670
4671
4672
4673
4674
4675
4676
4677
4678
4679
4680
4681
4682
4683
4684
4685
4686
4687
4688
4689
4690
4691
4692
4693
4694
4695
4696
4697
4698
4699
4700
4701
4702
4703
4704
4705
4706
4707
4708
4709
4710
4711
4712
4713
4714
4715
4716
4717
4718
4719
4720
4721
4722
4723
4724
4725
4726
4727
4728
4729
4730
4731
4732
4733
4734
4735
4736
4737
4738
4739
4740
4741
4742
4743
4744
4745
4746
4747
4748
4749
4750
4751
4752
4753
4754
4755
4756
4757
4758
4759
4760
4761
4762
4763
4764
4765
4766
4767
4768
4769
4770
4771
4772
4773
4774
4775
4776
4777
4778
4779
4780
4781
4782
4783
4784
4785
4786
4787
4788
4789
4790
4791
4792
4793
4794
4795
4796
4797
4798
4799
4800
4801
4802
4803
4804
4805
4806
4807
4808
4809
4810
4811
4812
4813
4814
4815
4816
4817
4818
4819
4820
4821
4822
4823
4824
4825
4826
4827
4828
4829
4830
4831
4832
4833
4834
4835
4836
4837
4838
4839
4840
4841
4842
4843
4844
4845
4846
4847
4848
4849
4850
4851
4852
4853
4854
4855
4856
4857
4858
4859
4860
4861
4862
4863
4864
4865
4866
4867
4868
4869
4870
4871
4872
4873
4874
4875
4876
4877
4878
4879
4880
4881
4882
4883
4884
4885
4886
4887
4888
4889
4890
4891
4892
4893
4894
4895
4896
4897
4898
4899
4900
4901
4902
4903
4904
4905
4906
4907
4908
4909
4910
4911
4912
4913
4914
4915
4916
4917
4918
4919
4920
4921
4922
4923
4924
4925
4926
4927
4928
4929
4930
4931
4932
4933
4934
4935
4936
4937
4938
4939
4940
4941
4942
4943
4944
4945
4946
4947
4948
4949
4950
4951
4952
4953
4954
4955
4956
4957
4958
4959
4960
4961
4962
4963
4964
4965
4966
4967
4968
4969
4970
4971
4972
4973
4974
4975
4976
4977
4978
4979
4980
4981
4982
4983
4984
4985
4986
4987
4988
4989
4990
4991
4992
4993
4994
4995
4996
4997
4998
4999
5000
5001
5002
5003
5004
5005
5006
5007
5008
5009
5010
5011
5012
5013
5014
5015
5016
5017
5018
5019
5020
5021
5022
5023
5024
5025
5026
5027
5028
5029
|
<!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$ -->
<link rel=stylesheet type="text/css" href="gs.css">
</head>
<body>
<p><strong><a name="2005-04-12_2221"></a>
2005-04-12 22:21 Ralph Giles</strong></p>
<blockquote>
<pre>
Remove a spurious blockquote.</pre>
<p>[doc/News.htm 1.161]</p>
</blockquote>
<p><strong><a name="2005-04-12_2210"></a>
2005-04-12 22:10 Ralph Giles</strong></p>
<blockquote>
<pre>
Propagate release date changes to the other documentation files.</pre>
<p>[doc/API.htm 1.49, doc/Bug-form.htm 1.45, doc/Bug-info.htm 1.45, doc/C-style.htm 1.51, doc/Commprod.htm 1.37, doc/Copying.htm 1.35, doc/DLL.htm 1.39, doc/Deprecated.htm 1.16, doc/Details8.htm 1.17, doc/Develop.htm 1.145, doc/Devices.htm 1.86, doc/Drivers.htm 1.54, doc/Fonts.htm 1.47, doc/Helpers.htm 1.40, doc/History1.htm 1.35, doc/History2.htm 1.35, doc/History3.htm 1.35, doc/History4.htm 1.35, doc/History5.htm 1.37, doc/History6.htm 1.52, doc/History7.htm 1.40, doc/History8.htm 1.22, doc/Htmstyle.htm 1.40, doc/Install.htm 1.51, doc/Issues.htm 1.48, doc/Language.htm 1.91, doc/Lib.htm 1.39, doc/Maintain.htm 1.46, doc/Make.htm 1.86, doc/Projects.htm 1.63, doc/Ps-style.htm 1.33, doc/Ps2epsi.htm 1.38, doc/Ps2pdf.htm 1.78, doc/Psfiles.htm 1.60, doc/Readme.htm 1.66, doc/Release.htm 1.90, doc/Source.htm 1.35, doc/Testing.htm 1.33, doc/Unix-lpr.htm 1.35, doc/Use.htm 1.131, doc/Xfonts.htm 1.35, doc/gs-vms.hlp 1.33, man/dvipdf.1 1.33, man/font2c.1 1.33, man/gs.1 1.34, man/gslp.1 1.33, man/gsnd.1 1.33, man/pdf2dsc.1 1.32, man/pdf2ps.1 1.34, man/pdfopt.1 1.32, man/pf2afm.1 1.33, man/pfbtopfa.1 1.34, man/printafm.1 1.33, man/ps2ascii.1 1.32, man/ps2epsi.1 1.31, man/ps2pdf.1 1.38, man/ps2pdfwr.1 1.37, man/ps2ps.1 1.40, man/wftopfa.1 1.33]</p>
</blockquote>
<p><strong><a name="2005-04-12_2205"></a>
2005-04-12 22:05 Ralph Giles</strong></p>
<blockquote>
<pre>
Update copyright dates and release notes for 8.15.</pre>
<p>[doc/News.htm 1.160, src/dwsetup.rc 1.14, src/gscdef.c 1.53, src/version.mak 1.81, src/winint.mak 1.26]</p>
</blockquote>
<p><strong><a name="2005-04-12_2120"></a>
2005-04-12 21:20 Ray Johnston</strong></p>
<blockquote>
<pre>
Fix for SEGV when PreserveHalftoneInfo=true is given as a pdfwrite
option. Bug 688018.
DETAILS:
The initial problem was that the num_comp was not being looked at
when HalftoneType 5 was written and if num_comp was 3, the 4th
element of ht_ids[] was being used (UMR-wise). The solution to
this was to only write the three halftones and to use the 'Green'
halftone (arbitrarily) for Default.
After fixing the SEGV, another problem surfaced because the object
dictionary was not being terminated with the ">>".
Since I suspected that the threshold_halftone writers were also
broken I tested with 258-01.ps and found more problems. This
code was also quite broken. Since the Threshold array is the
stream data for HalftoneType 6 and 16, I changed this a lot to
emit valid PDF.
EXPECTED DIFFERENCES:
None, since we don't set PreserveHalftoneInfo.</pre>
<p>[src/gdevpdfg.c 1.61]</p>
</blockquote>
<p><strong><a name="2005-04-12_0043"></a>
2005-04-12 00:43 Russell Lang</strong></p>
<blockquote>
<pre>
Make the OS/2 device list almost match that of Windows, with the only
differences being IJS and the Windows or OS/2 specific devices.</pre>
<p>[src/os2.mak 1.45]</p>
</blockquote>
<p><strong><a name="2005-04-08_2355"></a>
2005-04-08 23:55 Dan Coby</strong></p>
<blockquote>
<pre>
Fix for 688019 /configurationerror in --setpagedevice--. The PDF
interpreter was incorrectly determining the size of the page.
DETAILS:
The test file specifies the following media box:
/MediaBox [ 0 1080 1620 0 ]
The PDF 1.6 specification says the following about media box rectangles:
"3.8.4 Rectangles
Rectangles are used to describe locations on a page and bounding boxes for a
variety of objects, such as fonts. A rectangle is written as an array of four
numbers giving the coordinates of a pair of diagonally opposite corners.
Typically, the array takes the form
[llx lly urx ury]
specifying the lower-left x, lower-left y, upper-right x, and upper-right
coordinates of the rectangle, in that order. The other two corners of the
rectangle are then assumed to have coordinates (llx, ury) and (urx, lly).
Note: Although rectangles are conventionally specified by their lower-left and
upperright corners, it is acceptable to specify any two diagonally opposite
corners. Applications that process PDF should be prepared to normalize such
rectangles in situations where specific corners are required."
The PDF interpreter was assuming that the MediaBox and the CropBox were
in the 'typical' form. This fix consists of creating a pair of procedures
for converting rectangles into the typical form and then using the
procedures.</pre>
<p>[lib/pdf_main.ps 1.96]</p>
</blockquote>
<p><strong><a name="2005-04-08_2331"></a>
2005-04-08 23:31 Dan Coby</strong></p>
<blockquote>
<pre>
Removed some extra cntl-M at the end of lines. These caused problems with
the Borland compiler.</pre>
<p>[src/gdevtfax.c 1.10]</p>
</blockquote>
<p><strong><a name="2005-04-07_0912"></a>
2005-04-07 09:12 Igor Melichev</strong></p>
<blockquote>
<pre>
Fix : An MSVC8 warning.
DETAILS :
MSVC claims an implicit type case introduced by the last patch.
EXPECTED DIFFERENCES :
None.</pre>
<p>[src/gdevdjet.c 1.13]</p>
</blockquote>
<p><strong><a name="2005-04-07_0844"></a>
2005-04-07 08:44 Igor Melichev</strong></p>
<blockquote>
<pre>
Drivers.htm : Improving the documentation about linear color device virtual functions.
DETAILS :
Bug 688016 "Color(s) that define a gradient fill".
EXPECTED DIFFERENCES :
None.</pre>
<p>[doc/Drivers.htm 1.53]</p>
</blockquote>
<p><strong><a name="2005-04-06_1645"></a>
2005-04-06 16:45 Raph Levien</strong></p>
<blockquote>
<pre>
Conveys input tray selection info (/ManualFeed and /MediaPosition)
setpagedevice requests to PCL devices. Fixes bug #687899.
DETAILS
1. The behavior of MediaPosition is changed significantly. Previously,
it was ignored (i.e. omitted altogether from setpd merging). Just
adding it to setpd merging would not be good - if set at the PS
level, then it would get checked for equality at the C level (by
zmatchmedia), and fail horribly if it didn't match. In accordance
with the PLRM3 text (it will be honored provided it can satisfy the
normal media matching), in the new version a mismatch simply adds a
.001 penalty to the matching score.
2. The ljet4 device now contains ManualFeed and MediaPosition fields,
with appropriate putparams logic to set them.
3. The MediaPosition and ManualFeed strings now create an ESC & l H
init string, according to the following logic. ManualFeed sends
ESC & l 2 H; if ManualFeed is false (or not set), then MediaPosition
0 sends ESC & l 5 H, and MediaPosition1 sends ESC & l 1 H. If none
of these are set, then no extra init string is generated.
Obviously, for this feature to be useful, there needs to be an
InputAttributes dictionary in effect, for which the PageSize of
positions 0 and 1 match the PageSize of the setpagedevice request.
[Actually, if only ManualFeed is desired, then there is no need to
fiddle with InputAttributes].
I think these changes bring our media selection more in line with
what Adobe intended, and could be useful for embedded PS projects as
well. I believe the risk of unwanted changes is small, but considering
the delicacy of the setpagedevice logic, review and testing is
warranted.</pre>
<p>[lib/gs_setpd.ps 1.26, src/gdevdjet.c 1.12, src/zmedia2.c 1.18]</p>
</blockquote>
<p><strong><a name="2005-04-05_1937"></a>
2005-04-05 19:37 Ralph Giles</strong></p>
<blockquote>
<pre>
Disable non-fatal jbig2 debug messages unless JBIG2_DEBUG is defined in the
C preprocessor. Previously, all messages were reported in the general gs
debug build, which was distracting.
Also, initialize the global context pointer to NULL. This isn't necessary
in the standard call order, but is extra insurance against an improper free.</pre>
<p>[src/sjbig2.c 1.6]</p>
</blockquote>
<p><strong><a name="2005-04-05_1617"></a>
2005-04-05 16:17 Igor Melichev</strong></p>
<blockquote>
<pre>
ps2write : Fix problems with encodings.
DETAILS :
1. Since we don't want to include numerous encodings in the output,
opdfread.ps needs Differences to be computed against StandardEncoding.
gdevpdtw.c is changed to provide a compatibility.
2. Fixed a bug in opdfread.ps when invresing an encoding in which
a glyph name appears multiple times. Debugged with comparefiles\01_001.pdf .
EXPECTED DIFFERENCES :
None.</pre>
<p>[lib/opdfread.ps 1.62, src/gdevpdtw.c 1.42]</p>
</blockquote>
<p><strong><a name="2005-04-05_1544"></a>
2005-04-05 15:44 Igor Melichev</strong></p>
<blockquote>
<pre>
pdfwrite : Implementing a viewer's resource memory control, part 3.
DETAILS :
Fixed a memory management problem in pdfwrite :
a reference to a freed object happened due to
font descriptor components are not explicitely released.
Debugged with ps2write comparefiles\01_001.pdf .
This patch provides a minimal change against that,
rather there are other components,
which would be useful to release explicitly.
EXPECTED DIFFERENCES :
None.</pre>
<p>[src/devs.mak 1.129, src/gdevpdfu.c 1.76, src/gdevpdtd.c 1.22, src/gdevpdtd.h 1.5, src/gdevpdtw.c 1.41]</p>
</blockquote>
<p><strong><a name="2005-04-05_1129"></a>
2005-04-05 11:29 Igor Melichev</strong></p>
<blockquote>
<pre>
ps2write : Implementing a viewer's resource memory control, part 2.
DETAILS :
1. opdfread.ps :
Defined the new procedure CleanAllResources and called it after each page,
which defines /.ClearResources /All.
Currently it cleans all objects and all non-standard fonts.
Daemons, if they are stored in the Registry, are not cleaned.
(BTW, daemons may contain a reference to an object,
but we believe that currently unresolved daemons never appear
in Registry when ClearAllResources is being called).
2. ps2write.bat : Updated to involve the resource memory control.
See the log message of the previous patch for more information.
EXPECTED DIFFERENCES :
None.</pre>
<p>[lib/opdfread.ps 1.61, lib/ps2write.bat 1.12]</p>
</blockquote>
<p><strong><a name="2005-04-05_0948"></a>
2005-04-05 09:48 Igor Melichev</strong></p>
<blockquote>
<pre>
pdfwrite : Implementing a viewer's resource memory control, part 1.
DETAILS :
This patch implements a primitive viewer's resource memory control.
A new device parameter MaxViewerMemorySize specifies the number of bytes
available for storing resources in the viewer's memory.
This parameter defined almost for future extensions.
Currently we distinguish two cases only : if the parameter is greater
than 10000000 bytes, no resource control is being applied,
i.e. pdfwrite assumes that the viewer can store all resources of entire document.
Othervise pdfwrite assumes that the viewer can store resources of a single page.
In the second case pdfwrite cleans internal resource caches after each page,
so that any new resource usage will generate another resource instance
in the output PDF file.
To inform the viewer that the resources may be cleaned,
we add a new key to a page contents stream dictionary.
This is our extension to the PDF specification in order to control
the resource management in the viewer.
The new key name is /.CleanResources.
Currently we provide only the value /All. It means that resources
may be cleaned *after* ending the contents stream.
In future on necessity we can split a page contents stream into substreams
and provide a finer control by resource types with providing
more values for the key /.CleanResources.
When the viewer is informed with allowing to clean resources,
it is not obliged to do so. Further resource appearences simply replace
old ones, if they have same resource name.
Actually now this happens only with font and CID font resources.
Other resource instances may persist in the viewer's memory until
the viewer's garbager frees them when they are not
referred from resource tree dictionaries.
The resource control is mainly intended for ps2write.
An implementation of the viewer's side (in opdfread.ps) will be a separate patch.
Note that when a resource control is being applied,
the output document size may increase significantly.
Currently we don't add MaxViewerMemorySize to user's documentation,
because it depends on another undocumenmted parameter ForOPDFRead
through the ResourcesBeforeUsage flag. First we need to take a decision
whether ps2write will become a new Ghostscript device or it stays a tool
represented with a script. The latter gives more flexibility to users
about composing the header procsets of the generated Postscript document.
EXPECTED DIFFERENCES :
None.</pre>
<p>[src/gdevpdf.c 1.109, src/gdevpdfp.c 1.48, src/gdevpdfu.c 1.75, src/gdevpdfx.h 1.115, src/gdevpdtf.c 1.44, src/gdevpdtf.h 1.28, src/gdevpdti.c 1.43, src/gdevpdtt.c 1.102, src/gdevpdtw.c 1.40]</p>
</blockquote>
<p><strong><a name="2005-04-04_2300"></a>
2005-04-04 23:00 Igor Melichev</strong></p>
<blockquote>
<pre>
Fix : LZWEncode filtyer template didn't provide a set_defaults method.
DETAILS :
A problem happens when converting comparefiles\PT.ps with ps2write :
an encoded stream could not decode. The reason is that pdf_flate_binary
did not set defaults to LZWE template.
1. Provided a set_defaults method (fixes pdf_flate_binary).
2. Used it instead an old hack in gdevpsdi.c (a minor improvement).
EXPECTED DIFFERENCES :
None.</pre>
<p>[src/gdevpsdi.c 1.41, src/slzwe.c 1.4]</p>
</blockquote>
<p><strong><a name="2005-04-04_2033"></a>
2005-04-04 20:33 Igor Melichev</strong></p>
<blockquote>
<pre>
pdfwrite : Improve the font handling options.
DETAILS :
1. Made the ps2write code be permanent with removing the configuration switch PS2WRITE.
2. Renamed OrderResources into ForOPDFRead for a better reflection of its semantics.
3. Defined new flags for a better code readability :
ResourcesBeforeUsage
HavePDFWidths
HaveStrokeColor
HaveCFF
They are set when ForOPDFRead is true and used to control particular features.
EXPECTED DIFFERENCES :
None.</pre>
<p>[lib/ps2write.bat 1.11]</p>
</blockquote>
<p><strong><a name="2005-04-04_2028"></a>
2005-04-04 20:28 Igor Melichev</strong></p>
<blockquote>
<pre>
pdfwrite : Improve the font handling options.
DETAILS :
1. Made the ps2write code be permanent with removing the configuration switch PS2WRITE.
2. Renamed OrderResources into ForOPDFRead for a better reflection of its semantics.
3. Defined new flags for a better code readability :
ResourcesBeforeUsage
HavePDFWidths
HaveStrokeColor
HaveCFF
They are set when ForOPDFRead is true and used to control particular features.
EXPECTED DIFFERENCES :
None.</pre>
<p>[src/gdevpdf.c 1.108, src/gdevpdfb.c 1.28, src/gdevpdfd.c 1.59, src/gdevpdfg.h 1.41, src/gdevpdfj.c 1.43, src/gdevpdfp.c 1.47, src/gdevpdfu.c 1.74, src/gdevpdfx.h 1.114, src/gdevpdtb.c 1.35, src/gdevpdtt.c 1.101, src/gdevpdtw.c 1.39, src/gdevpsdf.h 1.32, src/gsshade.c 1.15, src/gx.h 1.44, src/gxdevcli.h 1.37, src/gxshade6.c 1.93]</p>
</blockquote>
<p><strong><a name="2005-04-04_1620"></a>
2005-04-04 16:20 Igor Melichev</strong></p>
<blockquote>
<pre>
ps2write : Improve the font handling options.
DETAILS :
1. The option HaveCIDSystem is propagated from ps2write to pdfwrite.
It is still not implemented.
2. The option HaveTrueTypes is added for controlling the availability of TrueTypes.
3. The option PSVersion is removed due to low usefullness after (2).
EXPECTED DIFFERENCES :
None.</pre>
<p>[doc/Ps2pdf.htm 1.77, src/gdevpdfp.c 1.46, src/gdevpdtt.c 1.100, src/gdevpsdf.h 1.31]</p>
</blockquote>
<p><strong><a name="2005-04-04_1438"></a>
2005-04-04 14:38 Igor Melichev</strong></p>
<blockquote>
<pre>
pdfwrite : When generating a PDF 1.2, convert PSLL3 images and shadings into PSLL2 images
DETAILS :
This change propagates recent code from ps2write to pdfwrite.
The old code converts PSLL3 images and shadings into lots of rectangles.
The new code does into an imagemask with a pattern color
(when PatternImagemask == true),
or into a clipped image (when PatternImagemask == false, default).
Note that the latter misses the mask interpolation.
EXPECTED DIFFERENCES :
None.</pre>
<p>[doc/Ps2pdf.htm 1.76, src/gdevpdfd.c 1.58, src/gdevpdfi.c 1.70, src/gdevpdfj.c 1.42]</p>
</blockquote>
<p><strong><a name="2005-04-04_1153"></a>
2005-04-04 11:53 Igor Melichev</strong></p>
<blockquote>
<pre>
ps2write : Convert shadings into a clipped image (continued 7).
DETAILS :
1. Check for empty bbox before pdf_setup_masked_image_converter,
because memory devices with empty bbox fail.
2. Create a copy of a path_intersection before scaling it,
because it may be shared.
3. Fixed the client name gdev_pdf_fill_path when calling some path functions.
Debugged with 478-01.ps .
EXPECTED DIFFERENCES :
None.</pre>
<p>[src/gdevpdfd.c 1.57]</p>
</blockquote>
<p><strong><a name="2005-04-04_1042"></a>
2005-04-04 10:42 Igor Melichev</strong></p>
<blockquote>
<pre>
pdfwrite : Don't use Indexed with a spacial base color space generating a PDF 1.2.
DETAILS :
1. Indexed over a special base color space is a PDF 1.3 feature.
2. Improving the last patch comparing CompatibilityLevel with 1.3 for making
such checks more uniform through code.
EXPECTED DIFFERENCES :
None.</pre>
<p>[src/gdevpdfc.c 1.52, src/gdevpdfu.c 1.73]</p>
</blockquote>
<p><strong><a name="2005-04-04_1014"></a>
2005-04-04 10:14 Igor Melichev</strong></p>
<blockquote>
<pre>
pdfwrite : Don't use FlateDecode generating a PDF 1.2.
DETAILS :
FlateDecode is a PDF 1.3 feature.
The change is important for ps2write.
EXPECTED DIFFERENCES :
None.</pre>
<p>[src/gdevpdfu.c 1.72]</p>
</blockquote>
<p><strong><a name="2005-04-04_1011"></a>
2005-04-04 10:11 Igor Melichev</strong></p>
<blockquote>
<pre>
ps2write : Improving a debug printing.
DETAILS :
1. The errorhandler should print -mark- to simplify the analysis.
2. Removing an unintended 'pstack' that caused HP LaserJet 1320 to discontinue the interpretation.
EXPECTED DIFFERENCES :
None.</pre>
<p>[lib/opdfread.ps 1.60]</p>
</blockquote>
<p><strong><a name="2005-04-04_0932"></a>
2005-04-04 09:32 Igor Melichev</strong></p>
<blockquote>
<pre>
ps2write : Convert shadings into a clipped image (continued 6).
DETAILS :
Fixed a unitialized variable.
Debugged with 468-01-fixed.ps .
EXPECTED DIFFERENCES :
None.</pre>
<p>[src/gdevpdfd.c 1.56]</p>
</blockquote>
<p><strong><a name="2005-04-04_0853"></a>
2005-04-04 08:53 Igor Melichev</strong></p>
<blockquote>
<pre>
ps2write : Dropping the code !PDFW_DELAYED_STREAMS.
DETAILS :
PDFW_DELAYED_STREAMS now becomes a permanent feature.
EXPECTED DIFFERENCES :
None.</pre>
<p>[src/gdevpdf.c 1.107, src/gdevpdfu.c 1.71, src/gdevpdtb.c 1.34, src/gdevpdtd.c 1.21, src/gdevpdtf.c 1.43, src/gdevpdti.c 1.42, src/gdevpdtw.c 1.38, src/gdevpdfx.h 1.113, src/gdevpdtb.h 1.11, src/gdevpdtw.h 1.6]</p>
</blockquote>
<p><strong><a name="2005-04-03_1833"></a>
2005-04-03 18:33 Igor Melichev</strong></p>
<blockquote>
<pre>
ps2write : Convert shadings into a clipped image (continued 5).
DETAILS :
1. Fixed the problem with
<</PatternImagemask false /MaxClipPathSize 12000 /MaxShadingBitmapSize 100000000>>,
which was mentioned in the last log message.
The shading and masked image conversion now looks complete.
2. Fixed a minor problem with 'const'.
EXPECTED DIFFERENCES :
None.</pre>
<p>[src/gdevpdfd.c 1.55]</p>
</blockquote>
<p><strong><a name="2005-04-01_1742"></a>
2005-04-01 17:42 stefan</strong></p>
<blockquote>
<pre>
Fixed null pointer access in pdfwrite.
pdf_put_uncolored_pattern() sets pres to null when it selects a solid color.
It's clients must check for this null as it indicates a
done writing the pattern state.</pre>
<p>[src/gdevpdfg.c 1.60]</p>
</blockquote>
<p><strong><a name="2005-03-31_2046"></a>
2005-03-31 20:46 Igor Melichev</strong></p>
<blockquote>
<pre>
ps2write : Convert shadings into a clipped image (continued 4).
DETAILS :
Implement a downsampling when converting a shading into bitmap.
1. A new device parameter MaxShadingBitmapSize controls the downsampling.
Shadings, which give a (uncompressed) bitmap over the specified size,
will be scaled down.
2. The scaling algorithm goes to gdevpdfd.c .
It appears pretty tricky because we need to setup a device with a smaller
resolution than the target device. Due to that we need to scale paths and colors,
which are represented in the device space. The function scale_path works for it.
3. The scaling creates a local copy of a device color (which handles the shading)
and scales the color. Since we can't access further spatial transformations of the color,
we apply some unusual operation : multiply matrices in the reverse order
than usual 'concat' does. This makes some useful equations to be soluble
due to the offset is being scaled as well.
4. A code portion was copied from gx_default_fill_path
(see comment in code).
We're unhappy about uncomfortable code structurization.
5. path_scale is implemented with floating point for a debug purpose,
but in production we use only integers being a power of 2.
6. There is a problem with
<</PatternImagemask false /MaxClipPathSize 12000 /MaxShadingBitmapSize 100000000>>
The problem happens when dividing the scaled bitmap in smaller ones
due to clip path overflow. This mode to be debugged separately.
For now set either smaller bitmap size of bigger clip path size.
Default settings work fine for most cases.
EXPECTED DIFFERENCES :
None.</pre>
<p>[src/devs.mak 1.128, src/gdevpdf.c 1.106, src/gdevpdfd.c 1.54, src/gdevpdfp.c 1.45, src/gdevpdfx.h 1.112, src/spprint.c 1.7]</p>
</blockquote>
<p><strong><a name="2005-03-31_0612"></a>
2005-03-31 06:12 Dan Coby</strong></p>
<blockquote>
<pre>
Fix for 688011 Segment fault with -r150 and the mswindll device.
DETAILS:
The routine gx_image_cached_char creates a mono bit memory device with
the memory structure pointer set to 0. It then passes this device to
win_render_char which seg faults when it tries to allocate memory for
a bit map.
The fix consists of using the parent device's memory structure for the
mono bit memory device.</pre>
<p>[src/gxccache.c 1.33]</p>
</blockquote>
<p><strong><a name="2005-03-31_0234"></a>
2005-03-31 02:34 Jack Moffitt</strong></p>
<blockquote>
<pre>
Fix bug where raster lookups failed on new files causing the regression
tool to stop. Also, skip processing for files without previous rasters
to compare.</pre>
<p>[toolbin/tests/gscheck_pdfwrite.py 1.25, toolbin/tests/gscheck_raster.py 1.15]</p>
</blockquote>
<p><strong><a name="2005-03-30_1633"></a>
2005-03-30 16:33 Raph Levien</strong></p>
<blockquote>
<pre>
Add a discussion of the libjpeg6b component id issue to Issues.htm,
pointing people to a patch. Resolves bug #686980.</pre>
<p>[doc/Issues.htm 1.47]</p>
</blockquote>
<p><strong><a name="2005-03-30_1406"></a>
2005-03-30 14:06 Igor Melichev</strong></p>
<blockquote>
<pre>
ps2write : Convert type 3,4 image into a clipped image (continued 3).
DETAILS :
Apply loseless filters for images smaller than 500 Kbytes
(Useful for images like 468-01-fixed.ps).
We would like to apply the compression chooser.
Dalaying it until users request so.
EXPECTED DIFFERENCES :
None.</pre>
<p>[src/gdevpdfb.c 1.27]</p>
</blockquote>
<p><strong><a name="2005-03-30_1343"></a>
2005-03-30 13:43 Igor Melichev</strong></p>
<blockquote>
<pre>
ps2write : Convert type 3,4 image into a clipped image (continued 2).
DETAILS :
1. Optimisation: Merge equal lines while converting a mask into clip path.
2. Bug : When the mask has a bigger resolution, scale up the data image and the mask
to allow the mask to rasterize in the natural resolution
(debugged with 468-01-fixed.ps).
EXPECTED DIFFERENCES :
None.</pre>
<p>[src/gdevpdfd.c 1.53, src/gdevpdfi.c 1.69]</p>
</blockquote>
<p><strong><a name="2005-03-30_1248"></a>
2005-03-30 12:48 Igor Melichev</strong></p>
<blockquote>
<pre>
ps2write : Convert type 3,4 image into a clipped image (continued).
DETAILS :
1. Improved the prototype of pdf_setup_masked_image_converter.
2. Renamed 'autorelease' into 'write_on_close' for a better reflection of its meaning.
3. Renamed gx_device_pdf::image_mask_matrix into gx_device_pdf::converting_image_matrix.
3. Type 3 images now convert with no scaling to the device space (int pdf_begin_typed_image).
The mask image of the typoe 3 image is scaled to the size of the data image.
EXPECTED DIFFERENCES :
None.</pre>
<p>[src/gdevpdfd.c 1.52, src/gdevpdfi.c 1.68, src/gdevpdfx.h 1.111]</p>
</blockquote>
<p><strong><a name="2005-03-29_2133"></a>
2005-03-29 21:33 Igor Melichev</strong></p>
<blockquote>
<pre>
ps2write : Convert type 4 image into a clipped image.
DETAILS :
Since HP LaserJet 1320 unsatisfactory handles imagemask with a pattern color,
now we implement an alternative method for type 4 imege representation.
The method creates a clipping path and an image rendered with it.
See http://ghostscript.com/pipermail/gs-cvs/2005-March/005356.html
for additional details.
1. Fixed a typoe in lcvd_get_clipping_box_from_tadget.
The new correct name is lcvd_get_clipping_box_from_target.
2. Fixed choices of allocators in pdf_setup_masked_image_converter.
3. pdf_image_cvd_enum_procs, pdf_image_end_image_cvd work for cleaning up temporary devices
after a type 4 image has been processed with pdf_setup_masked_image_converter.
4. Added a branch into pdf_begin_typed_image to work with
pdf_setup_masked_image_converter when
pdev->OrderResources && !pdev->PatternImagemask.
We still use OrderResources as a general switch for the ps2write mode.
To be improved later.
EXPECTED DIFFERENCES :
None.</pre>
<p>[src/gdevpdfd.c 1.51, src/gdevpdfi.c 1.67]</p>
</blockquote>
<p><strong><a name="2005-03-29_1731"></a>
2005-03-29 17:31 Igor Melichev</strong></p>
<blockquote>
<pre>
ps2write : Convert type 3 image into a clipped image.
DETAILS :
Since HP LaserJet 1320 unsatisfactory handles imagemask with a pattern color,
now we implement an alternative method for type 3 imege representation.
The method creates a clipping path and an image rendered with it.
See http://ghostscript.com/pipermail/gs-cvs/2005-March/005356.html
for additional details.
1. Moved pdf_lcvd_t to the pdfwrite scope gdevpdfx.h .
2. pdf_lcvd_t::mask is being allocated dymacially for a compatibility to gx_image3_end_image.
3. Made a garbager discriptor for pdf_lcvd_t since it is allocated dynamically
for a compatibility with gx_image3_end_image.
4. Applied pdf_put_matrix for writing matrices.
5. Renamed dump_image into pdf_dump_converted_image.
6. Replaced gs_point pdf_lcvd_t::p with gs_matrix pdf_lcvd_t::m.
7. Factored out pdf_setup_masked_image_converter and pdf_remove_masked_image_converter.
8. Added branches to pdf_image3_make_mid and pdf_image3_make_mcde
to work with pdf_setup_masked_image_converter.
EXPECTED DIFFERENCES :
None.</pre>
<p>[src/devs.mak 1.127, src/gdevpdfd.c 1.50, src/gdevpdfi.c 1.66, src/gdevpdfx.h 1.110]</p>
</blockquote>
<p><strong><a name="2005-03-29_1426"></a>
2005-03-29 14:26 Igor Melichev</strong></p>
<blockquote>
<pre>
Fix : Propagate return codes truoug gx_image3_end_image.
DETAILS :
The change is important for ps2write.
We don't consider it to te a part of the ps2write project,
because it is generallly useful.
EXPECTED DIFFERENCES :
None.</pre>
<p>[src/gximage3.c 1.15]</p>
</blockquote>
<p><strong><a name="2005-03-28_1403"></a>
2005-03-28 14:03 Igor Melichev</strong></p>
<blockquote>
<pre>
ps2write : Convert shadings into a clipped image.
DETAILS :
Since HP LaserJet 1320 unsatisfactory handles imagemask with a pattern color,
now we implement an alternative method for shadings representation.
The method creates a clipping path and an image rendered with it.
The new device parameter PatternImagemask specifies whether
imagemask with a pattern color is allowed. Now it defaults to false.
When false, a conversion to a clipped image happens.
The new device parameter MaxClipPathSize specifies a restriction
for clip path segments. When a mask converts into a too big clipping path,
the image and the mask are being subdivided into smaller chunks.
Minor change : Moved the flag OrderResources to gx_device_pdf_s
(it had a too general scope).
A conversion of Type 3 images into clipped images will be a separate patch.
EXPECTED DIFFERENCES :
None.</pre>
<p>[src/gdevpdf.c 1.105, src/gdevpdfd.c 1.49, src/gdevpdfp.c 1.44, src/gdevpdfx.h 1.109, src/gdevpsdf.h 1.30]</p>
</blockquote>
<p><strong><a name="2005-03-25_2126"></a>
2005-03-25 21:26 Igor Melichev</strong></p>
<blockquote>
<pre>
ps2write : A misprint in option list.
EXPECTED DIFFERENCES :
None.</pre>
<p>[lib/ps2write.bat 1.10]</p>
</blockquote>
<p><strong><a name="2005-03-25_2013"></a>
2005-03-25 20:13 Igor Melichev</strong></p>
<blockquote>
<pre>
ps2write : Don't set a pattern space when it is already set (continued 2).
DETAILS :
The previous patch caused a problem with 3d party interpreters.
This patch provides a compatibility to gs3.70 and HP LaserJet 1320.
Since we duplicate color commands for stroking and non-stroking colors,
a dup of 'setpattern' caused a problem, because it tried
to setup a pattern over a pattern.
EXPECTED DIFFERENCES :
None.</pre>
<p>[lib/opdfread.ps 1.59]</p>
</blockquote>
<p><strong><a name="2005-03-25_1931"></a>
2005-03-25 19:31 Igor Melichev</strong></p>
<blockquote>
<pre>
ps2write : Don't set a pattern space when it is already set (continued).
DETAILS :
The previous patch caused a problem with some files,
which set a non-stroke color first.
This patch provides a compatibility to gs3.70 .
Since we duplicate color commands for stroking and non-stroking colors,
a dup of 'setpattern' caused a problem, because it tried
to setup a pattern over a pattern.
EXPECTED DIFFERENCES :
None.</pre>
<p>[lib/opdfread.ps 1.58]</p>
</blockquote>
<p><strong><a name="2005-03-25_1800"></a>
2005-03-25 18:00 Igor Melichev</strong></p>
<blockquote>
<pre>
ps2write : Don't set a pattern space when it is already set.
DETAILS :
This patch provides a compatibility to gs3.70 .
Since we duplicate color commands for stroking and non-stroking colors,
a dup of 'setpattern' caused a problem, because it tried
to setup a pattern over a pattern.
EXPECTED DIFFERENCES :
None.</pre>
<p>[lib/opdfread.ps 1.57]</p>
</blockquote>
<p><strong><a name="2005-03-25_1738"></a>
2005-03-25 17:38 Igor Melichev</strong></p>
<blockquote>
<pre>
ps2write : Implementing the RotatePages and the FitPages options (continued).
DETAILS :
.HWMargins caused a problem with 3d party interpreters.
EXPECTED DIFFERENCES :
None.</pre>
<p>[lib/opdfread.ps 1.56]</p>
</blockquote>
<p><strong><a name="2005-03-25_1307"></a>
2005-03-25 13:07 Igor Melichev</strong></p>
<blockquote>
<pre>
ps2write : Create contents streams for empty pages.
DETAILS :
opdfread can't handle pages with no contents due to object ordering.
Minor change : propagated return codes from pdf_open_contents in pdf_close_contents.
This minor change also affects pdfwrite.
EXPECTED DIFFERENCES :
None.</pre>
<p>[src/gdevpdf.c 1.104, src/gdevpdfu.c 1.70]</p>
</blockquote>
<p><strong><a name="2005-03-25_1113"></a>
2005-03-25 11:13 Igor Melichev</strong></p>
<blockquote>
<pre>
ps2write : Work around HP LaserJet 1320 bugs (continued).
DETAILS :
A previous patch fails when no filters applied.
This one fixes that.
EXPECTED DIFFERENCES :
None.</pre>
<p>[lib/opdfread.ps 1.55]</p>
</blockquote>
<p><strong><a name="2005-03-25_1011"></a>
2005-03-25 10:11 Igor Melichev</strong></p>
<blockquote>
<pre>
ps2write : Improve the handling of encodings.
DETAILS :
1. Fixed a bug in GetMacRomanEncodingInverse.
2. Dropped some unused encodings.
EXPECTED DIFFERENCES :
None.</pre>
<p>[lib/opdfread.ps 1.54, lib/ps2write.bat 1.9]</p>
</blockquote>
<p><strong><a name="2005-03-25_0822"></a>
2005-03-25 08:22 Igor Melichev</strong></p>
<blockquote>
<pre>
ps2write : Implementing the RotatePages and the FitPages options.
DETAILS :
This is a further improvement of the last patch.
When RotatePages is defined in the target device,
the opdfread procset rotates pages for a better fitting
into the page size.
When FitPages is defined in the target device,
the opdfread procset scales pages for a better fitting
into the page size.
Note thet if both options are specified,
the procset first rotates and then scales a page.
No rotations happen if a page fits with no rotation or
if a rotation doesn't improve the fitting.
Rather the RotatePages option looks similar to
the distiller parameter AutoRotatePages,
it affects a PS interpreter in the target printer
rather than the distiller in the ps2write host.
Thge implementation accounts /.HWMargins,
which is Ghostscript specific feature.
It is useful when the printer embeds Ghostscript.
Since now the options may appear either in systemdict,
or in userdict, or in globaldict of the printer.
EXPECTED DIFFERENCES :
None.</pre>
<p>[lib/opdfread.ps 1.53]</p>
</blockquote>
<p><strong><a name="2005-03-24_2137"></a>
2005-03-24 21:37 Igor Melichev</strong></p>
<blockquote>
<pre>
ps2write : Implementing the RotatePages option.
DETAILS :
When RotatePages is defined in the target device,
the opdfread procset rotates pages for a better fitting
into the page size.
Rather the RotatePages option looks similar to
the distiller parameter AutoRotatePages,
it affects a PS interpreter in the target printer
rather than the distiller in the ps2write host.
EXPECTED DIFFERENCES :
None.</pre>
<p>[lib/opdfread.ps 1.52]</p>
</blockquote>
<p><strong><a name="2005-03-24_1934"></a>
2005-03-24 19:34 Igor Melichev</strong></p>
<blockquote>
<pre>
ps2write : Fixing problems with TrueType fonts.
DETAILS :
1. The old code tried to position a non-positionable file reading cmap subtables.
The new code read cmap subtables in the order of the file.
2. 'sfnts' array got an exctra element 'true' causing 'invalidfont' with 3d party interpreters.
3. Improved the debug printout of a Type 42 font dictionary.
The old code printed too big strings causing a problem with CPSI.
Debugged with comparefiles\Bug687597.ps and HP LaserJet 1320.
EXPECTED DIFFERENCES :
None.</pre>
<p>[lib/opdfread.ps 1.51]</p>
</blockquote>
<p><strong><a name="2005-03-23_1945"></a>
2005-03-23 19:45 Dan Coby</strong></p>
<blockquote>
<pre>
Fix for 687434, 687835, and 687982. These reports are /vmerror in
--eofill-- or --fill--. They are caused by the pattern accumulation
device trying to allocate excessively large buffers.
DETAILS:
The pattern accumulation device allocates an image buffer for holding
patterns. The size of the pattern buffer (prior to this fix) is based
upon the bounding box specified with the pattern. For the problem files,
the pattern bounding boxes are excessively large. The vmerrors are the
result.
This fix consists of comparing the pattern bounding boxes to the size
of the page to be imaged. (All of the files have bounding boxes which
are much larger than the page.) We determine which part of the pattern
will actually be used and limit the pattern accumulation to the area
which is needed. Most of this fix consists of stepping the pattern to
check the intersection between the pattern and the page. The major
complication in this process is simply due to the arbitrary transform
matrix which can be applied between the coordinate space used to define
the pattern and the coordinate frame of the output page.
This fix significantly reduces the buffer sizes required for these
test files. However it is still possible for a pattern buffer to
exceed available memory. It is possible to create a solution using some
version of a band list. However my estimate on that task keeps getting
larger as I look at the details.</pre>
<p>[src/gsptype1.c 1.21]</p>
</blockquote>
<p><strong><a name="2005-03-23_1840"></a>
2005-03-23 18:40 Raph Levien</strong></p>
<blockquote>
<pre>
Set PJL RENDERMODE to GRAYSCALE or COLOR depending on whether device is
pxlmono or pxlcolor, respectively. Fixes bug #687990. Thanks to Jonathan
Kamens for the patch.</pre>
<p>[src/gdevpxut.c 1.6]</p>
</blockquote>
<p><strong><a name="2005-03-23_1741"></a>
2005-03-23 17:41 Ralph Giles</strong></p>
<blockquote>
<pre>
Add the missing ijs-config.1 manpage so our distributed ijs tree
builds cleanly as a separate package. Include other sync changes
to the 0.35 release. Closes bug 687991.</pre>
<p>[ijs/Makefile.am 1.2, ijs/README 1.3, ijs/configure.ac 1.2, ijs/ijs-config.1 1.2, ijs/ijs_spec.pdf 1.2]</p>
</blockquote>
<p><strong><a name="2005-03-18_1952"></a>
2005-03-18 19:52 Igor Melichev</strong></p>
<blockquote>
<pre>
Fix (pdfwrite) : Don't apply ASCII85Encode to page contents streams which appear to be already ASCII (continued 2).
DETAILS :
Last two patches are incomplete - font streams were not ASCII encoded.
This one fixes that (All 3 to be applied).
EXPECTED DIFFERENCES :
None.</pre>
<p>[src/gdevpdfu.c 1.69, src/gdevpdfx.h 1.108, src/gdevpdti.c 1.41]</p>
</blockquote>
<p><strong><a name="2005-03-18_1748"></a>
2005-03-18 17:48 Ralph Giles</strong></p>
<blockquote>
<pre>
Clean up a remaining link to the New-user documentation.</pre>
<p>[doc/Bug-info.htm 1.44]</p>
</blockquote>
<p><strong><a name="2005-03-18_1738"></a>
2005-03-18 17:38 Igor Melichev</strong></p>
<blockquote>
<pre>
Fix (pdfwrite) : Don't apply ASCII85Encode to page contents streams which appear to be already ASCII (continued).
DETAILS :
The last patch was buggy. This one fixes that (both to be applied).
It's a bug introduced when implementing PDFW_DELAYED_STREAMS.
Restoring the old behavior now.
EXPECTED DIFFERENCES :
None.</pre>
<p>[src/gdevpdfu.c 1.68]</p>
</blockquote>
<p><strong><a name="2005-03-18_1728"></a>
2005-03-18 17:28 Ralph Giles</strong></p>
<blockquote>
<pre>
Link to Commprod for the difference between GPL and AFPL Ghostscript.</pre>
<p>[doc/Readme.htm 1.65]</p>
</blockquote>
<p><strong><a name="2005-03-18_1726"></a>
2005-03-18 17:26 Ralph Giles</strong></p>
<blockquote>
<pre>
Remove the out-of-date 'new user' documentation. Most of this is covered by
the readme and the website.</pre>
<p>[doc/Fonts.htm 1.46, doc/Helpers.htm 1.39, doc/Install.htm 1.50, doc/New-user.htm 1.56, doc/Readme.htm 1.64, doc/Use.htm 1.130]</p>
</blockquote>
<p><strong><a name="2005-03-18_1715"></a>
2005-03-18 17:15 Ralph Giles</strong></p>
<blockquote>
<pre>
Remove the obsolete Tester.htm documentation file.</pre>
<p>[doc/Readme.htm 1.63, doc/Tester.htm 1.35]</p>
</blockquote>
<p><strong><a name="2005-03-18_1615"></a>
2005-03-18 16:15 Igor Melichev</strong></p>
<blockquote>
<pre>
ps2write : Work around HP LaserJet 1320 bugs.
DETAILS :
HP LaserJet 1320 appears to have problems with streams -
see comments in code.
EXPECTED DIFFERENCES :
None.</pre>
<p>[lib/opdfread.ps 1.50]</p>
</blockquote>
<p><strong><a name="2005-03-18_1448"></a>
2005-03-18 14:48 Igor Melichev</strong></p>
<blockquote>
<pre>
Fix (pdfwrite) : Don't apply ASCII85Encode to page contents streams which appear to be already ASCII.
DETAILS :
It's a bug introduced when implementing PDFW_DELAYED_STREAMS.
Restoring the old behavior now.
EXPECTED DIFFERENCES :
None.</pre>
<p>[src/gdevpdfu.c 1.67]</p>
</blockquote>
<p><strong><a name="2005-03-18_1215"></a>
2005-03-18 12:15 Igor Melichev</strong></p>
<blockquote>
<pre>
ps2write : Improve the error handler.
EXPECTED DIFFERENCES :
None.</pre>
<p>[lib/opdfread.ps 1.49]</p>
</blockquote>
<p><strong><a name="2005-03-18_1121"></a>
2005-03-18 11:21 Igor Melichev</strong></p>
<blockquote>
<pre>
ps2write : Add EndOfTask character at the end of a task.
EXPECTED DIFFERENCES :
None.</pre>
<p>[lib/ps2write.bat 1.8]</p>
</blockquote>
<p><strong><a name="2005-03-18_1036"></a>
2005-03-18 10:36 Igor Melichev</strong></p>
<blockquote>
<pre>
ps2write : Add EndOfTask character at the end of a task.
EXPECTED DIFFERENCES :
None.</pre>
<p>[lib/EndOfTask.ps 1.1, lib/ps2write.bat 1.7]</p>
</blockquote>
<p><strong><a name="2005-03-17_1545"></a>
2005-03-17 15:45 Igor Melichev</strong></p>
<blockquote>
<pre>
ps2write : Don't write empty elements of Subrs.
DETAILS :
gdevpsf1.c created an incorrect Type 1 font file due to
'readstring' causes a rangecheck with empty string.
Skipping empty elements of Subrs against that.
An empty element of Subr isn't a correct code since
it must contain at least a 'ret' instruction.
Thus empty element actually means "no element".
EXPECTED DIFFERENCES :
None,
because normally pdfwrite doesan't call this code portion.</pre>
<p>[src/gdevpsf1.c 1.21]</p>
</blockquote>
<p><strong><a name="2005-03-17_1308"></a>
2005-03-17 13:08 Igor Melichev</strong></p>
<blockquote>
<pre>
Fix : Building GS with MSVC, use a proper CRTL version (debug|nodebug).
EXPECTED DIFFERENCES :
None.</pre>
<p>[src/msvc32.mak 1.71]</p>
</blockquote>
<p><strong><a name="2005-03-17_1306"></a>
2005-03-17 13:06 Igor Melichev</strong></p>
<blockquote>
<pre>
ps2write : Write pages in the proper order.
DETAILS :
Bug 687923 "New ps2write inverts the page order".
EXPECTED DIFFERENCES :
None.</pre>
<p>[src/gdevpdf.c 1.103, src/gdevpdfu.c 1.66, src/gdevpdfx.h 1.107]</p>
</blockquote>
<p><strong><a name="2005-03-17_1052"></a>
2005-03-17 10:52 Igor Melichev</strong></p>
<blockquote>
<pre>
fuzzy.c : Fixing the error message format.</pre>
<p>[toolbin/tests/fuzzy.c 1.18]</p>
</blockquote>
<p><strong><a name="2005-03-17_1045"></a>
2005-03-17 10:45 Igor Melichev</strong></p>
<blockquote>
<pre>
ps2write : Fixing an initial matrix bug.
EXPECTED DIFFERENCES :
None.</pre>
<p>[lib/opdfread.ps 1.48]</p>
</blockquote>
<p><strong><a name="2005-03-16_2304"></a>
2005-03-16 23:04 Alex Cherepanov</strong></p>
<blockquote>
<pre>
Keep the operands of knownoget_safe pseudo-operator on the stack to ensure
proper restoration of the operands when it fails. Correctly adjust the stack
in the caller when knownoget_safe fails.
Fix bug 687473 from the customer 780.</pre>
<p>[lib/pdf_main.ps 1.95]</p>
</blockquote>
<p><strong><a name="2005-03-16_1457"></a>
2005-03-16 14:57 Igor Melichev</strong></p>
<blockquote>
<pre>
Fix : MSVC8 warning.
DETAILS :
This change is algorythmically equivalent.
EXPECTED DIFFERENCES :
None.</pre>
<p>[src/sjpx.c 1.12, src/spdiff.c 1.9]</p>
</blockquote>
<p><strong><a name="2005-03-16_1227"></a>
2005-03-16 12:27 Igor Melichev</strong></p>
<blockquote>
<pre>
Fix : Coding style and MSVC8 warning in gsciemap.c .
DETAILS :
This change is algorythmically equivalent.
The old code applies macros to generate 3 expressions like this :
(8 >= ((((1 << 2) * 8 - 9 - 2) < (10)) ? ((1 << 2) * 8 - 9 - 2) :
(10))) ? (((pcrd->caches.EncodeABC[0].fixeds.ints.values)
[((tabc[0]) >> ((((1 << 2) * 8 - 9 - 2) < (10)) ? ((1 << 2) * 8 - 9 - 2) : (10)))] +
(frac)(((long)((pcrd->caches.EncodeABC[0].fixeds.ints.values)
[((tabc[0]) >> ((((1 << 2) * 8 - 9 - 2) < (10)) ? ((1 << 2) * 8 - 9 - 2) : (10))) + 1] -
(pcrd->caches.EncodeABC[0].fixeds.ints.values)[((tabc[0]) >> ((((1 << 2) * 8 - 9 - 2) < (10)) ?
((1 << 2) * 8 - 9 - 2) : (10)))]) * ((int)(tabc[0]) & ((1 << ((((1 << 2) * 8 - 9 - 2) < (10)) ?
((1 << 2) * 8 - 9 - 2) : (10))) - 1))) >> (((((1 << 2) * 8 - 9 - 2) < (10)) ? ((1 << 2) * 8 - 9 - 2) :
(10))))) << (8 - ((((1 << 2) * 8 - 9 - 2) < (10)) ? ((1 << 2) * 8 - 9 - 2) : (10)))) :
(((pcrd->caches.EncodeABC[0].fixeds.ints.values)
[((tabc[0]) >> ((((1 << 2) * 8 - 9 - 2) < (10)) ? ((1 << 2) * 8 - 9 - 2) : (10)))] +
(frac)(((long)((pcrd->caches.EncodeABC[0].fixeds.ints.values)
[((tabc[0]) >> ((((1 << 2) * 8 - 9 - 2) < (10)) ? ((1 << 2) * 8 - 9 - 2) : (10))) + 1] -
(pcrd->caches.EncodeABC[0].fixeds.ints.values)
[((tabc[0]) >> ((((1 << 2) * 8 - 9 - 2) < (10)) ? ((1 << 2) * 8 - 9 - 2) : (10)))]) *
((int)(tabc[0]) & ((1 << ((((1 << 2) * 8 - 9 - 2) < (10)) ? ((1 << 2) * 8 - 9 - 2) :
(10))) - 1))) >> -(8 - ((((1 << 2) * 8 - 9 - 2) < (10)) ? ((1 << 2) * 8 - 9 - 2) :
(10))))) >> (((((1 << 2) * 8 - 9 - 2) < (10)) ? ((1 << 2) * 8 - 9 - 2) : (10))))
(the other 2 ones replace "[0]" with "[1]" and "[2]").
We gues that MSVC8 is not enough intelligent to prove that the static (sub)expression
((((1 << 2) * 8 - 9 - 2) < (10)) ? ((1 << 2) * 8 - 9 - 2) : (10))
is always within the interval [0, 10] and therefore it claims a possible error.
This patch replaces it with a dynamic constant 's',
so that the warning doesn't appear.
In any case we believe that the huge expression above isn't a
good coding style since humans need to read the code sometimes.
For ones who wish a further simplification,
we're happy to bring some useful definitions :
XXX = ((((1 << 2) * 8 - 9 - 2) < (10)) ? ((1 << 2) * 8 - 9 - 2) : (10))
YYY = ((int)(tabc[0]) & ((1 << XXX) - 1))
ZZZ = ((tabc[0]) >> XXX)
TTT = (pcrd->caches.EncodeABC[0].fixeds.ints.values)
Using them the expression reduces to :
(8 >= XXX) ? ((TTT[ZZZ] + (frac)(((long)(TTT[ZZZ + 1] - TTT[ZZZ]) * YYY) >> (XXX))) << (8 - XXX))
: ((TTT[ZZZ] + (frac)(((long)(TTT[ZZZ + 1] - TTT[ZZZ]) * YYY) >> (XXX))) >> -(8 - XXX))
EXPECTED DIFFERENCES :
None.</pre>
<p>[src/gsciemap.c 1.16]</p>
</blockquote>
<p><strong><a name="2005-03-16_0947"></a>
2005-03-16 09:47 Igor Melichev</strong></p>
<blockquote>
<pre>
ps2write : Don't drop extension glyphs writing an embedded font.
DETAILS :
The pdf interpreter creates glyph copies with unique_name
to resolve glyph name conflicts while converting Widths to Metrics.
Then pdfwrite drops the extended glyph names (made with unique_name),
to aviod font expansion in the output PDF.
We do not wont to port unique_name and related stuff
to opdfread.ps in order to simplify the latter.
Therefore the drop_extension_glyphs and related things must not be called
when pdfwrite works in the ps2write mode.
We still use OrderResources as a general switch for the ps2write mode.
This should be improved later.
EXPECTED DIFFERENCES :
None.</pre>
<p>[src/gdevpdtb.c 1.33, src/gdevpdtw.c 1.37]</p>
</blockquote>
<p><strong><a name="2005-03-16_0938"></a>
2005-03-16 09:38 Igor Melichev</strong></p>
<blockquote>
<pre>
ps2write : Improving the processing of True Type encodings.
EXPECTED DIFFERENCES :
None.</pre>
<p>[lib/opdfread.ps 1.47]</p>
</blockquote>
<p><strong><a name="2005-03-15_1414"></a>
2005-03-15 14:14 Igor Melichev</strong></p>
<blockquote>
<pre>
ps2write : Fit a page with MediaBox.
EXPECTED DIFFERENCES :
None.</pre>
<p>[lib/opdfread.ps 1.46]</p>
</blockquote>
<p><strong><a name="2005-03-15_1136"></a>
2005-03-15 11:36 Igor Melichev</strong></p>
<blockquote>
<pre>
Fix : Cygwin/gcc warnings.
EXPECTED DIFFERENCES :
None.</pre>
<p>[src/gdevpdtc.c 1.41, src/gstype42.c 1.51, src/gxhintn.c 1.58, src/gxshade6.c 1.92]</p>
</blockquote>
<p><strong><a name="2005-03-15_1121"></a>
2005-03-15 11:21 Igor Melichev</strong></p>
<blockquote>
<pre>
ps2write : Fixing minor problems with text placing.
EXPECTED DIFFERENCES :
None.</pre>
<p>[lib/opdfread.ps 1.45]</p>
</blockquote>
<p><strong><a name="2005-03-14_1808"></a>
2005-03-14 18:08 Dan Coby</strong></p>
<blockquote>
<pre>
Fix for 687696 PDF 1.4 transparency can use large chunks of memory.
Prior to this fix the handling of PDF 1.4 transparency features used one
or more full size image buffers. With high resolutions and large images,
these buffers can be multiple gigabytes. As a result, we were not able
to handle these files.
DETAILS:
PDF 1.4 transparency is handled by a device which is inserted into the
device chain. Prior to this fix, this device was via the 'device filter'
logic. With this fix, the PDF 1.4 transparency device is inserted via
the compositor device mechanism. This change was made since the device
filter logic did not allow other devices to control where the PDF 1.4
transparency device is placed in the device chain. There is a device
proc which implements the create compositor action. This allows more
control than the device filter logic.
The first step in this fix was to convert the PDF 1.4 transparency
logic to use the create compositor mechanism. For situations in which
the clist logic is not being used, the PDF 1.4 transparency device is
created and placed in the same location in the device chain as it was put
by the device filter logic. In this situation, there is very little
logical difference in the operation of the PDF 1.4 transparency.
For situations in which the clist is used, there are two PDF 1.4
compositing devices created. There is one device before the clist when the
clist is being written. There is a second device after the clist when
the clist data is being read.
The device before the clist serves two purposes, it provides a means for
implementing the process color model for the PDF 1.4 compositing. (The
PDF 1.4 compositing may used a different process color model from the output
device.) Thus this device has color_info and encode/decode color procs
which match the PDF 1.4 blending color space. This device also ensures
that the PDF 1.4 blending parameters (blend mode, shape, opacity, etc.)
are passed through the clist to the second PDF 1.4 device.
The second PDF 1.4 device (the one when the clist is being read) is the
same PDF 1.4 compositing device which is used when the clist is not being
used. This is the device which does the blending operations. Since the
device is after the clist, the buffers that it needs are the size of a
single band instead of the full page. This device is placed prior to
the memory device which is used for drawing the raster data.
Two changes were made in the 'create compositor' logic. The imager state
was being passed as a 'const'. It is no longer const since the PDF 1.4
transparency compositing changes the cmap procs in the imager state to not
use transfer functions during color calculations. The transfer functions
are applied later (and the cmap procs restored) when blended image data
is output from the PDF 1.4 compositing buffers.
The second change to the create compositor logic is the addition of two
more procedures to the gs_composite_type_t.procs list. These procedures
are used by the clist device create compositor routines. The first
is used to create the PDF 1.4 clist write device. The second saves and
restores the color_info field for the clist device (see below).
Default versions of the added gs_composite_t.procs were also added for
use by the other compositor devices. The defaults are no-ops.
The clist logic has a few changes. Since the PDF 1.4 compositor device
may use a different process color model from the output device, the number
of colorants and the depth (bits per pixel) can be different for the PDF
1.4 compositor and the output device. Thus changes were needed in parts
of the clist logic which assumed that these items were constant during the
processing of the clist. An extra field was added to the device halftone
to indicate the number of colorants in effect when the device halftone was
created. This data is included when the halftone is serialized for the
clist. (Fortunately the PDF 1.4 compositing does not use halftones or
transfer functions. So the device halftones and transfer functions do
not need to be changed when the PDF 1.4 compositor is installed.)
As previously mentioned the create compositor procedures for the clist
writer and reader now call a couple of compositor specific routines. These
allow the compositor to implement actions related to the clist device.
(The PDF 1.4 compositor uses these routines to create the 'write clist'
PDF 1.4 compositor and to save and restore the clist device color info.
The color_info field of the clist device is changed to match the process
color model of the PDF 1.4 compositor while the PDF 1.4 compositor is active.
A additional device parameter (PageUsesTransparency) was added. This
parameter is sent by the PDF interpreter to indicate if PDF 1.4 transparency
will be used on the page. The banding/no banding decision and the size
of a band includes an estimate of the size of the PDF 1.4 blending buffers
if this parameter is true. Note: The estimate of the size of the
blending buffers is not exact since this calculation is made before the
actual number of buffers, the number of blending colors and alpha channels
is known. Fixed values are used for the estimated buffer size. This is
still much better than the pervious situation, in which the only the
output raster size was being used. The blending buffers can easily be
30 or more times larger than the raster buffer.
This fix also involves the removal of the PDF 1.4 'marking' devices.
The marking devices were used to actually implement the pixel marking.
The marking devices were created at the start of each high level drawing
operation and deleted after the completion of the operation. The marking
device action has been merged into the primary PDF 1.4 compositing device.
This change eliminates some device creation overhead. The overhead would
have been worse since most information about high level drawing operations
is not passed through the clist. As a result it would have been necessary
to create marking devices for each low level operations.
The following issues are not included in this fix but need to be considered.
1) The device filter logic is no longer used. It may be desired to remove
this logic.
2) We currently have a 'create_compositor' device proc. However there
is not a 'delete_compositor' device proc. As a result, compositor devices
can stay in the device chain even when they are no longer needed. The
current fix turns the PDF 1.4 compositor into a 'forwarding' device. This
is the same method used by the overprint compositor device. I do not like
leaving these devices since there is some extra overhead and there may be
possible side effects. (Testing has been done to try to find side effects
and none has been found with the current code.)
3) This change only affects devices which can use the clist logic. This
excludes the 'high' level devices. These include the 'display', 'x11',
and 'pdfwrite' devices. Thus these device will continue to use a full
image buffer. It is possible to extend this fix to use a clist device
for the PDF 1.4 device for these devices.</pre>
<p>[src/gdevbbox.c 1.23, src/gdevdflt.c 1.25, src/gdevmem.c 1.9, src/gdevnfwd.c 1.28, src/gdevp14.c 1.27, src/gdevp14.h 1.4, src/gdevprn.c 1.19, src/gdevprn.h 1.14, src/gdevpsdu.c 1.23, src/gsalphac.c 1.8, src/gsht.c 1.23, src/gsistate.c 1.11, src/gsovrc.c 1.9, src/gsropc.c 1.5, src/gstparam.h 1.11, src/gstrans.c 1.19, src/gstrans.h 1.10, src/gxband.h 1.5, src/gxcldev.h 1.14, src/gxclimag.c 1.12, src/gxclist.c 1.15, src/gxclist.h 1.7, src/gxclrast.c 1.33, src/gxclutil.c 1.12, src/gxcmap.c 1.24, src/gxcomp.h 1.7, src/gxdevcli.h 1.36, src/gxdevice.h 1.21, src/gxdevmem.h 1.7, src/gxdht.h 1.9, src/gxdhtserial.c 1.8, src/gxistate.h 1.22, src/lib.mak 1.206, src/zdpnext.c 1.8, src/ztrans.c 1.23, lib/pdf_draw.ps 1.91, lib/pdf_main.ps 1.94]</p>
</blockquote>
<p><strong><a name="2005-03-14_1746"></a>
2005-03-14 17:46 Igor Melichev</strong></p>
<blockquote>
<pre>
ps2write : Assume same color for stroking and non-stroking operations.
DETAILS :
An improvement to opdfread.ps with maintaining different colors
for stroking and non-stroking operations would too complicated.
So we patch pdfwrite against it.
We still use OrderResources as a general switch for ps2write mode.
It should be improved later.
EXPECTED DIFFERENCES :
None.</pre>
<p>[src/gdevpdfd.c 1.48]</p>
</blockquote>
<p><strong><a name="2005-03-10_1634"></a>
2005-03-10 16:34 Igor Melichev</strong></p>
<blockquote>
<pre>
Fix (type 1 hinter) : Inconsistent transform coefficients after the dynamic glyph scaling.
DETAILS :
Bug 687939 "Fixed precision problems".
t1_hinter__adjust_matrix_precision did not adjust rational transform coefficients.
Due to that, t1_hinter__align_stem_to_grid caused glyph distortions.
EXPECTED DIFFERENCES :
None.</pre>
<p>[src/gxhintn.c 1.57]</p>
</blockquote>
<p><strong><a name="2005-03-10_1457"></a>
2005-03-10 14:57 Alex Cherepanov</strong></p>
<blockquote>
<pre>
Initialize ColorSpace parameter in ijs driver to DeviceRGB. This
prevents a PostScript error in "currentpagedevice setpagedevice"
and similar code when ColorSpace is not explicitly initialized.
Fix bug 687013.</pre>
<p>[src/gdevijs.c 1.10]</p>
</blockquote>
<p><strong><a name="2005-03-10_1301"></a>
2005-03-10 13:01 Alex Cherepanov</strong></p>
<blockquote>
<pre>
Add FillOrder device parameter to TIFF fax devices and document the
changes in Devices.htm .
Fix bug 687324
DETAILS :
This fix changes the default from FillOrder = 2 to FillOrder = 1.
According to the TIFF 6.0 specification, Section 8, page 32, support of
FillOrder = 2 is not required in a Baseline TIFF compliant reader.
Support of FillOrder will be addressed to tiffpack and tifflzw devices as
a part of bug 614298 resolution.
EXPECTED DIFFERENCES :
None. TIFF devices are not tested by the regression test.</pre>
<p>[doc/Devices.htm 1.85, src/gdevtfax.c 1.9]</p>
</blockquote>
<p><strong><a name="2005-03-09_1221"></a>
2005-03-09 12:21 Igor Melichev</strong></p>
<blockquote>
<pre>
Fix (pdfwrite) : Equal image merging could break the Mask object of a type 3 image.
DETAILS :
Bug 687926 "ps2pdf13 Segfaults on eps figure".
The old code set a reference to a Mask object,
which was freed while the equal image merging.
Delay adding the "Mask" entry into a type 3 image dictionary
until the mask is completed and merged
(maybe replaced with an equal one).
Minor change : fixed a typoe in "pdf_image_useage_t".
EXPECTED DIFFERENCES :
None.</pre>
<p>[src/gdevpdfi.c 1.65]</p>
</blockquote>
<p><strong><a name="2005-03-09_0901"></a>
2005-03-09 09:01 Igor Melichev</strong></p>
<blockquote>
<pre>
Fix (pdfwrite) : Don't create a CMap resource list.
DETAILS :
Old revisions created an object for CMap resource list.
That object is not required by the PDF specification,
and it was left unreferenced.
EXPECTED DIFFERENCES :
None.</pre>
<p>[src/gdevpdtw.c 1.36]</p>
</blockquote>
<p><strong><a name="2005-03-09_0843"></a>
2005-03-09 08:43 Igor Melichev</strong></p>
<blockquote>
<pre>
Fix : MSVC 8 debug build was broken.
DETAILS :
Since msvccmd.mak version 1.25 a debug build compiles with no debug info.
This patch restores necessary compiler options.
Particularly msvccmd.mak version 1.25 reads :
# MSVC 8 does not support debug compile and continue /Gi /ZI.
Don't know where it comes from. My copy of MSVC 8
does support it and I do use it.
EXPECTED DIFFERENCES :
None.</pre>
<p>[src/msvccmd.mak 1.26]</p>
</blockquote>
<p><strong><a name="2005-03-08_0740"></a>
2005-03-08 07:40 Ralph Giles</strong></p>
<blockquote>
<pre>
Add uncompr.c which supplies the uncompress() zlib utility routine to our
makefile. This routine isn't currently used by ghostscript, but was available
prior to the source re-arrangement in the zlib 1.2.x releases.</pre>
<p>[src/zlib.mak 1.10]</p>
</blockquote>
<p><strong><a name="2005-03-04_2212"></a>
2005-03-04 22:12 Russell Lang</strong></p>
<blockquote>
<pre>
Correct HTML error in documentation.</pre>
<p>[doc/Use.htm 1.129]</p>
</blockquote>
<p><strong><a name="2005-03-04_2202"></a>
2005-03-04 22:02 Russell Lang</strong></p>
<blockquote>
<pre>
Set the default paper size with DEFAULTPAPERSIZE in gs_init.ps,
which only affects devices that default to A4 or letter paper.
This avoids inappropriately setting the bbox device to
A4 or letter size.
DETAILS:
Some linux distributions change the default paper size
to A4 by uncommenting the following line in gs_init.ps.
% Optionally choose a default paper size other than U.S. letter.
% (a4) /PAPERSIZE where { pop pop } { /PAPERSIZE exch def } ifelse
Unfortunately this sets the default paper size for all devices,
including the bbox device for which this is not appropriate.
If the bbox device is set to A4 paper and drawing occurs
outside this area, the bbox device will report an incorrect
bounding box. There may be custom printer devices which don't
support A4 or letter paper.
The default paper size is now set with DEFAULTPAPERSIZE,
which sets PAPERSIZE only if the paper size is not otherwise
set, the device defaulted to A4 or letter.</pre>
<p>[doc/Use.htm 1.128, lib/gs_init.ps 1.118]</p>
</blockquote>
<p><strong><a name="2005-03-04_2200"></a>
2005-03-04 22:00 Russell Lang</strong></p>
<blockquote>
<pre>
The display device row alignment must be equal to or greater than
the pointer size, since this is a requirement of the memory devices.
Problem noticed on 64-bit builds.</pre>
<p>[src/gdevdsp.c 1.32, src/gdevdsp.h 1.12]</p>
</blockquote>
<p><strong><a name="2005-03-04_2158"></a>
2005-03-04 21:58 Russell Lang</strong></p>
<blockquote>
<pre>
Compile Ghostscript for 64-bit Windows with AMD64 processor.
Change the default install directory to "c:\program files\gs".
DETAILS:
Microsoft Visual Studio .NET 2003 with Windows Server 2003 DDK,
or Microsoft Visual Studio 8 (.NET 2005 beta) are required
to compile for 64-bits.
Dialog boxes return type INT_PTR not BOOL.
Install to the "Program Files" directory as default,
instead of c:\gs. This allows 32-bit and 64-bit
versions to be installed in separate locations.
For 32-bit GS on 32-bit Windows, "c:\Program Files\gs"
For 32-bit GS on 64-bit Windows, "c:\Program Files (x86)\gs"
For 64-bit GS on 64-bit Windows, "c:\Program Files\gs"
The " (x86)" is added by Windows when a 32-bit program asks
for the "Program Files" folder on 64-bit Windows.
Other languages will translate "Program Files".
The programs still have "32" in their names: gswin32c.exe,
gswin32.exe and gsdll32.dll. They are distinguished from
the 32-bit versions by their install location.
This avoids changes to many batch files.
The registry entries written by the installer do not
conflict between 32 and 64-bit.
For 32 on 32, or 64 on 64, the location is
HKLM\Software\AFPL Ghostscript\N.NN
For 32 on 64, Windows adds "WoW6432Node\" to make it
HKLM\Software\Wow6432Node\AFPL Ghostscript\N.NN
If the "Program Files" folder has a " (x86)" suffix,
this is used as a suffix on the Start Menu items. This
allows 32-bit and 64-bit GS to be installed without
conflict. The start menu item for 32-bit GS on 64-bit
Windows is "Ghostscript N.NN (x86)".
Building 64-bit GS on 32-bit Windows can be done
by the usual method - either execute genconf.exe on
a 64-bit platform or hand edit arch.h.
A separate patch will fix the display device DisplayHandle
parameter which is currently truncated to 32-bits.
There is a warning from the linker about exports being
defined multiple ways. This is not a problem with the
32-bit compile. This is due to the C code
specifying export and the module definition file
also specifying the export. Removing the function
names from the module definition file would make the
warning message go away, but may affect 32-bit compiles.</pre>
<p>[doc/Make.htm 1.85, src/dwsetup.cpp 1.11, src/dwsetup.rc 1.13, src/dwuninst.cpp 1.6, src/gp_mswin.c 1.25, src/gp_mswin.h 1.7, src/gsdll32.def 1.6, src/msvc32.mak 1.70, src/msvccmd.mak 1.25, src/msvctail.mak 1.11, src/winint.mak 1.25]</p>
</blockquote>
<p><strong><a name="2005-03-04_2156"></a>
2005-03-04 21:56 Russell Lang</strong></p>
<blockquote>
<pre>
Change display device parameter DisplayHandle from an integer
to a string, to add support for 64-bit platforms.
DETAILS:
The display device passes a (void *) handle to callback functions.
The handle is set before the device is opened, and attempting to
change it afterwards is an error.
The handle may be used by the caller to identify an instance of
the display device, for example it may point to the display instance
object in the caller.
This handle was set using a PostScript integer which is 32-bits long,
typically with -dDisplayHandle.
The existing code will not work correctly on 64-bit architectures.
The display device is changed to return a string as the
DisplayHandle parameter.
Previously the handle would be set using -dDisplayHandle=1234.
The changed code allows it to be passed as
-dDisplayHandle=1234
-sDisplayHandle=1234
-sDisplayHandle=10#1234
-sDisplayHandle=16#04d2
This should be backward compatible, since users of the
display device will most likely only set the DisplayHandle,
not read its value.
The ghostscript example code in dw*.c, dx*.c and dp*.c
does not use DisplayHandle, so is unaffected by this change.
GSview does use DisplayHandle and will require this
change for operation on 64-bit platforms.
It is assumed that size_t is an integer with the same size
as a pointer.
For HEAD, GS_8_1X</pre>
<p>[src/gdevdsp.c 1.31, src/gdevdsp.h 1.11]</p>
</blockquote>
<p><strong><a name="2005-03-04_1442"></a>
2005-03-04 14:42 Igor Melichev</strong></p>
<blockquote>
<pre>
Unwinding the last patch, which was erroneusely aplied to a wrong branch.</pre>
<p>[src/gdevpdfj.c 1.41]</p>
</blockquote>
<p><strong><a name="2005-03-04_1438"></a>
2005-03-04 14:38 Igor Melichev</strong></p>
<blockquote>
<pre>
pdfwrite : ASCII encoding was not applied to some images when requested.
DETAILS :
It fixes a bug, which has been put when implementing the compression chooser.
This is a part of ps2write development, which is also important for pdfwrite.
EXPECTED DIFFERENCES :
None.</pre>
<p>[src/gdevpdfj.c 1.39, src/gdevpdfj.c 1.40]</p>
</blockquote>
<p><strong><a name="2005-03-04_1027"></a>
2005-03-04 10:27 Russell Lang</strong></p>
<blockquote>
<pre>
Fix bug #687958 gswin32: Assertion fails due to a bug in dwtext.c.
Keep argument to isprint() within 0-255.</pre>
<p>[src/dwtext.c 1.9]</p>
</blockquote>
<p><strong><a name="2005-03-03_1905"></a>
2005-03-03 19:05 Ray Johnston</strong></p>
<blockquote>
<pre>
Eliminate a performance problem when a TT font has a large 'loca' table.
A fix for 687889 used .sort on the 'loca' table but this takes a long
time if the table is large. Only run the .sort if the table is out of
order which is rare since the TT font spec requires an in-order table.
Bug 687968.
DETAILS:
Apparently our conversion of the 'japan.ps' file creates a TT font with
a loca table that has 20458 entries (even though the original font
in japan.ps didn't have that many). This is needed because there are
many glyphs that are not present, but we need loca table slots that
represent the missing glyphs (same starting offset as next glyph).
The time was being spent doing the '{ lt } .sort' of the array :-(
I added logic that checked the order as the loca table was converted
to an array so that the .sort could be skipped as long as the table is
in order (which it *should* be for a valid TT font). After this change,
the HEAD time is 1.16 CPU seconds versus 1.08 seconds for gs8.50.
(with the .sort, the time was 257 seconds).
I suppose that we could optimize the .sort (put it into 'C') but
for now I'll just avoid it most of the time.
Note that since the .sort has a procedure callout for the ordering test,
it might not speed up that much in 'C'. That's the other reason that it
is worthwhile to avoid the .sort when possible.</pre>
<p>[lib/gs_ttf.ps 1.43]</p>
</blockquote>
<p><strong><a name="2005-03-03_1315"></a>
2005-03-03 13:15 Igor Melichev</strong></p>
<blockquote>
<pre>
pdfwrite : Use character codes instead CIDs when creating a ToUnicode CMap.
DETAILS :
Bug 687954 "copy and pasting asian text problems".
The problem depends on what a Postscript printer driver
puts into the GlyphNames2Unicode table.
GlyphNames2Unicode is an undocumented feature, which PScript5.dll uses to
communicate with Adobe Distiller. A long ago from its name
we concluded that it maps character names to Unicode, and it was
confirmed with multiple documents. Now we got a document
(the test case of the bug 687954), which uses character codes instead CIDs,
(CIDs are usually interpreted as "glyph names" in the case of CID fonts).
In the test document CIDs are not equal to character codes due to the embedded CMap
named WinCharSetFFFF-H2. We did not notice this problem before
due to most old documents from PScript5.dll use an identity CMap WinCharSetFFFF-H,
Now we change Ghostscript with using character codes instead CIDs
as keys to GlyphNames2Unicode. We have no technology for a regression test
of the related behavior. We will pass this revision to users in order to study
consequences of this patch from users' responses.
EXPECTED DIFFERENCES :
None.</pre>
<p>[src/gdevpdtc.c 1.40, src/gdevpdte.c 1.70]</p>
</blockquote>
<p><strong><a name="2005-03-03_0750"></a>
2005-03-03 07:50 Igor Melichev</strong></p>
<blockquote>
<pre>
ps2write : Write "/Type/CMap" to a CMap resource dictionary.
DETAILS :
Bug 687955 "ghostscript generated pdf causes error in adobe reader"
EXPECTED DIFFERENCES :
None.</pre>
<p>[src/gdevpdtw.c 1.35]</p>
</blockquote>
<p><strong><a name="2005-03-02_1808"></a>
2005-03-02 18:08 Raph Levien</strong></p>
<blockquote>
<pre>
Fix: Move setting of #copies userdict entry outside restore operation
so it doesn't get clobbered. Fixes bug #687964. Thanks to Leon Sha for
the patch.</pre>
<p>[src/gdevpsu.c 1.19]</p>
</blockquote>
<p><strong><a name="2005-03-01_2044"></a>
2005-03-01 20:44 Ray Johnston</strong></p>
<blockquote>
<pre>
Fix a problem with .dividesfnts for large Type42 fonts introduced with the
previous commit. Also replace macro with C-Style compliant inline function.
DETAILS:
The previous code constructed a single 'locatable' string of 4 byte entries
from the sorted array of loca entries. This would fail if the original
was 2 byte (u16) offsets, as seen with 'fonts.pdf' in the regression suite.
The new code constructs the "splitarray" list using the sorted array so
that the string is never created (it wasn't used afterwards).
Also, the related file src/gstype42.c was changed to avoid adding another
macro that doesn't follow C-Style. I intentionally left the ACCESS macro
since this would need at least two lines to replace each ACCESS line.</pre>
<p>[lib/gs_ttf.ps 1.42, src/gstype42.c 1.50]</p>
</blockquote>
<p><strong><a name="2005-02-28_1000"></a>
2005-02-28 10:00 Igor Melichev</strong></p>
<blockquote>
<pre>
ps2write : Reset the clipping path before starting a page.
DETAILS :
Bug 687952 "Clipping path is ignored on pages after first page of PDF output".
Patch from SaGS.
Actually it resets the clipping path before the first page and after each page.
Resetting it after the last page saves few memory for PDF completion.
EXPECTED DIFFERENCES :
None.</pre>
<p>[src/gdevpdf.c 1.102]</p>
</blockquote>
<p><strong><a name="2005-02-27_0556"></a>
2005-02-27 05:56 Ray Johnston</strong></p>
<blockquote>
<pre>
Fix handling of broken TrueType fonts that have a loca table that is not
in order. Bug 687889 for customer 670.
DETAILS:
This is clearly a questionable TT font since the Apple TT font reference
manual clearly states that the length of glyphs can be inferred from
the difference in successive offsets.
Note that the PostScript code only needs to deal with the sorted 'locatable'
in order to decide where to split the glyf strings in the sfnts array
(in the .dividesfnts proc). Otherwise the PostScript code doesn't care.
If the .dividesfnts uses a sorted locatable, but doesn't replace the 'loca'
table written into the sfnts, then the VMerror occurs because the C code
in 'default_get_outline' calculated the glyph_length for the gs_alloc
using loca table entries that might be out of order.
In order to effect the entire fix, I sorted the 'locatable' for the PS
code in .dividesfnts as well as creating a new 'len_glyphs' array in
the gs_type42_data structure that holds the actual glyph lengths.
The glyph lengths are calculated once when the font is initialized in
gs_type42_font_init. If the 'loca' table is in order, then nothing
changes, but if it is out of order, we get the lengths by finding the
next higher glyph offset anywhere in the loca table.
These changes let the file run and show the same glyphs as Adobe Acrobat
Reader.</pre>
<p>[lib/gs_ttf.ps 1.41, src/gstype42.c 1.49, src/gxfont42.h 1.21]</p>
</blockquote>
<p><strong><a name="2005-02-26_2100"></a>
2005-02-26 21:00 Igor Melichev</strong></p>
<blockquote>
<pre>
ps2write : Fixing minor problems with debug printing.
DETAILS :
EXPECTED DIFFERENCES :
None.</pre>
<p>[lib/opdfread.ps 1.44]</p>
</blockquote>
<p><strong><a name="2005-02-26_1807"></a>
2005-02-26 18:07 Igor Melichev</strong></p>
<blockquote>
<pre>
ps2write : Implementing a conversion of images into ProcessColorModel, step 3 (final).
DETAILS :
1. Attached the "image colors" filter and
provided appropriate color conversions.
2. Changed function prototype to pass filter parameters.
3. Removed all related stubs.
EXPECTED DIFFERENCES :
None.</pre>
<p>[src/devs.mak 1.126, src/gdevpdfi.c 1.64, src/gdevpsdf.h 1.29, src/gdevpsdi.c 1.40, src/gdevpsds.c 1.14, src/gdevpsds.h 1.12]</p>
</blockquote>
<p><strong><a name="2005-02-26_1332"></a>
2005-02-26 13:32 Igor Melichev</strong></p>
<blockquote>
<pre>
ps2write : Implementing a conversion of images into ProcessColorModel, step 2.
DETAILS :
This step generalizes the "image to mask" filter into
a general image color conversion filter.
Also improved return codes from s_image_colors_process
in complience to constraints defined in strimpl.h .
EXPECTED DIFFERENCES :
None.</pre>
<p>[src/gdevpsdi.c 1.39, src/gdevpsds.c 1.13, src/gdevpsds.h 1.11]</p>
</blockquote>
<p><strong><a name="2005-02-25_2108"></a>
2005-02-25 21:08 Igor Melichev</strong></p>
<blockquote>
<pre>
ps2write : Implementing a conversion of images into ProcessColorModel, step 1.
DETAILS :
This patch defines overall logic and data exchange for converting images to
ProcessColorModel color space. For a while, the real convertion is stubbed
with conversion into a bitmask (a 1 bit per sample image).
1. When pdf_begin_typed_image calls pdf_color_space,
a failure means that the image can't represent in the output PDF.
Then we setg up a n image color conversion filter with
psdf_setup_image_colors_filter.
2. The function psdf_setup_image_colors_filter currently is stubbed
with etting up the "image_to_mask" filter instead a general color conversion filter.
Implementing the general filter will be the next step.
3. When conversion happens, pdf_begin_typed_image writes
a ProcessColorModel colore space instead the image color space.
Currently it is stubbed with gs_color_space_index_DeviceGray
to comply with the stub in psdf_setup_image_colors_filter.
4. Multiple bugs (mainly the order of bits in the stream,
and row to tyte alignment) have bin fixed in s_image_to_mask_process.
5. We continue to use pdev->OrderResources as a general switch
for the ps2write mode, rather it's not fully correct.
The new code will be useful for pdfwrite with CompatibilityLevel < 1.3,
so later we'll need to remove the switch from pdf_begin_typed_image.
EXPECTED DIFFERENCES :
None.</pre>
<p>[src/gdevpdfi.c 1.63, src/gdevpsdi.c 1.38, src/gdevpdfx.h 1.106, src/gdevpsdf.h 1.28, src/gdevpsds.c 1.12]</p>
</blockquote>
<p><strong><a name="2005-02-25_1402"></a>
2005-02-25 14:02 Igor Melichev</strong></p>
<blockquote>
<pre>
pdfwrite : Simplify data exchange for pdf_color_space.
DETAILS :
1. The old code assumes a constraint explained in the comment :
/* SRZB 2001-04-25/Bl
* Since psdf_setup_image_filters may change the color space
* (in case of pdev->params.ConvertCMYKImagesToRGB == true),
* we postpone the selection of the PDF color space to here:
*/
Implement this dependence implicitly with defining a new function
psdf_is_converting_image_to_RGB, in order to cancel the "postpone" constraint.
2. Call pdf_color_space before setting up image filters.
This allows a proper check of the color space compatibility
before image filters are set.
This is important since we'll apply a filter
for the image color space conversion.
EXPECTED DIFFERENCES :
None.</pre>
<p>[src/gdevpdfi.c 1.62, src/gdevpsdf.h 1.27, src/gdevpsdi.c 1.37]</p>
</blockquote>
<p><strong><a name="2005-02-25_0758"></a>
2005-02-25 07:58 Igor Melichev</strong></p>
<blockquote>
<pre>
ps2write : Unwind the last patch (disallow ICCBased color spaces when writing a ps2write output).
DETAILS :
When applied the last patch,
we decided to convert ICC profile into a CIEBased color space.
But ICC profiles (especially ones coming from PDF documents from wild)
may contain a general lookup table, and a general lookup
table can't convert into M1*T*M2 transformation,
where Mi are 3D linear transformations, and and
T is unlinear 3-component transformation.
Since a CIEBased color space is restricted with
M1*T*M2 transformation, in a general ICC profile
can't convert into a CIEBased.
Besides that, the ICC-based method can't apply to DeviceN spaces.
Therefore now we choose another implementation strategy.
Single colors will be converted into low level colors in
the ps2write step, and images will be filtered to convert
into low level color spaces.
Will implement a special filter for that.
Due to all above, the last patch appears wrong.
Unwinding it now.
EXPECTED DIFFERENCES :
None.</pre>
<p>[src/gdevpdfk.c 1.10]</p>
</blockquote>
<p><strong><a name="2005-02-24_1946"></a>
2005-02-24 19:46 Igor Melichev</strong></p>
<blockquote>
<pre>
ps2write : Allow ICCBased color spaces when writing a ps2write output.
DETAILS :
Since CIEBased is not a PDF 1.2 object, we need to convert it somehow.
One possible way is to write CIEBased into PDF.
We do not choose this way because (1) it will generate an invalid PDF
so that we'll not be able to verify the output with PDF readers;
(2) we have no code for writing a CIEBased color space to PDF or Postscript,
but we do have one for ICCBased.
Another way is to write ICCBased into the ps2write output
and to implement a parsing of ICC profile in opdfread.ps .
We prefer this way since a part of this algorithm (an ICC writer)
already presents in Ghostscript.
Strongly saying, a PDF with ICCBased is not a valid PDF 1.2 document.
But as we noticed before, Adobe PDF viewers simply ignore
pdf level from the document header. So we'll be able to view it
as it is or after a small modification of the header.
We continue to use the flag OrderResources as a general switch for
ps2write mode. Doing so because we still have no
a perfect decision about the list and logics of configuration options.
Later we'll need to bring more order to this field.
Possibly writing a "restricted PDF1.3" would be better that
writing an "extended PDF 1.2".
By the way, pdfwrite appears to have a rudimentary branch
pdf_convert_cie_to_lab, which currently is a stub,
which always fails. We think that this conversion isn't possible
in general due to Lab restricts with a very special class of
transformations. So lakely this branch will never be implemented
and it must always fail.
Please note that with this patch ps2write successfully converts
a smaller class of input files then before it,
because the writer becomes inconsistent with
the reader coded in opdfread.ps . But we do need this step
in the develoipment technology. Actually the files outside the class
were converted into a too long PDF.
EXPECTED DIFFERENCES :
None.</pre>
<p>[src/gdevpdfk.c 1.9]</p>
</blockquote>
<p><strong><a name="2005-02-24_1126"></a>
2005-02-24 11:26 Igor Melichev</strong></p>
<blockquote>
<pre>
Fix (pdfwrite) : Improving the heap consistensy with compression chooser.
DETAILS :
When a compression chooser is being installed,
s_add_fimter may insert another NullEncode filter to comply the buffering
between the compression chooser and its target.
After the compression chooser is closed, the old code
left the NullEncode filter unreleased in the heap,
so that the heap consistency check claimed a reference
from it to a freed object, which is the target of the
NullEncode. It's not a real bug sisnce NullEncode was never referred,
But running with -Z? got a failure in the heap consistency check.
This patch generalizes the code with closing all filters in the chain
(including the NullEncode) without a dependence on
features of specific filters.
BTW, we're unappy of all this stuff,
becauase actually the compression chooser filter doesn't need any target.
A dummy one was inserted only to work around a crash in
s_add_filter, in the check of the buffer size compliance,
and now we fix a problem with the dummy thing.
Maybe a simpler way would be patching s_add_filter
to allow NULL target (I mean no target at all,
rather than a null filter as the target),
but we don't want to modify that fundamental thing,
which is handled by another engineer.
EXPECTED DIFFERENCES :
None.</pre>
<p>[src/gdevpdfj.c 1.38, src/gdevpsdi.c 1.36]</p>
</blockquote>
<p><strong><a name="2005-02-23_1510"></a>
2005-02-23 15:10 Igor Melichev</strong></p>
<blockquote>
<pre>
ps2write : Improving the compatyibility to another PSLL2 interpreter 5D PDF Creator.
DETAILS :
EXPECTED DIFFERENCES :
None.</pre>
<p>[lib/opdfread.ps 1.43]</p>
</blockquote>
<p><strong><a name="2005-02-23_1048"></a>
2005-02-23 10:48 Igor Melichev</strong></p>
<blockquote>
<pre>
ps2write : A wrong data were set to sfnts defining a Type 42 font.
DETAILS :
It attached an encoded data.
EXPECTED DIFFERENCES :
None.</pre>
<p>[lib/opdfread.ps 1.42]</p>
</blockquote>
<p><strong><a name="2005-02-23_1008"></a>
2005-02-23 10:08 Igor Melichev</strong></p>
<blockquote>
<pre>
Fix : Erase all pointers initializing a font structure.
DETAILS :
Bug 687951 "Inconsistent heap after 'definefont' fails.".
EXPECTED DIFFERENCES :
None.</pre>
<p>[src/gsfont.c 1.35]</p>
</blockquote>
<p><strong><a name="2005-02-23_0957"></a>
2005-02-23 09:57 Igor Melichev</strong></p>
<blockquote>
<pre>
Fix (pdfdwrite) : Don't apply FlateEncode generating a PDF 1.2.
DETAILS :
FlateEncode is a PDF 1.2 and PSLL3 feature.
This patch is important for ps2write project.
EXPECTED DIFFERENCES :
None.</pre>
<p>[src/gdevpsdi.c 1.35]</p>
</blockquote>
<p><strong><a name="2005-02-22_1541"></a>
2005-02-22 15:41 Igor Melichev</strong></p>
<blockquote>
<pre>
A new implementation of shadings, step 89.
DETAILS :
This is a partial fix for the bug 687948
"Performance of shading fill much worse than 8.00".
This patch improves the decision how to subdivide a quadrangle patch.
EXPECTED DIFFERENCES :
normal, 72dpi :
"442-01.ps"
"464-01-fixed.ps"
"478-01.ps"
"Altona-Testsuite_p2_S_x3.pdf"
"Altona_Visual_bb_1v1_x3.pdf"
"Altona_Visual_sb_1v1_x3.pdf"
"chilis_black.pdf"
"Clarke Tate Manns Chinese.ai"
"S2_Digitalproof-Forum_x3k.pdf"
"SmoothShading.pdf"
"STEUER-RollingMesh 1(linear).ai"
"STEUER-RollingMesh 2(radial).ai"
normal, 300dpi :
"442-01.ps"
"464-01-fixed.ps"
"478-01.ps"
"Altona-Testsuite_p2_S_x3.pdf"
"Altona_Visual_bb_1v1_x3.pdf"
"Altona_Visual_sb_1v1_x3.pdf"
"chilis_black.pdf"
"Clarke Tate Manns Chinese.ai"
"S2_Digitalproof-Forum_x3k.pdf"
"SmoothShading.pdf"</pre>
<p>[src/gxshade6.c 1.91]</p>
</blockquote>
<p><strong><a name="2005-02-18_2038"></a>
2005-02-18 20:38 Russell Lang</strong></p>
<blockquote>
<pre>
Fix conformance problems in ghostpdf.ppd. Now tested with cupstestppd.</pre>
<p>[lib/ghostpdf.ppd 1.3]</p>
</blockquote>
<p><strong><a name="2005-02-17_2140"></a>
2005-02-17 21:40 Igor Melichev</strong></p>
<blockquote>
<pre>
ps2write : A compatibility to a PSLL@ interpreter gs3_70.
DETAILS :
1. With GS HEAD 'makepattern' always returns a local dictionary, but
with gs3_70 it depends on current allocation mode.
Forced the local allocation mode for any case.
2. Fixed the file name in the error handler message.
EXPECTED DIFFERENCES :
None.</pre>
<p>[lib/opdfread.ps 1.41]</p>
</blockquote>
<p><strong><a name="2005-02-16_2205"></a>
2005-02-16 22:05 Igor Melichev</strong></p>
<blockquote>
<pre>
ps2write : Fix problems with hex encodings (continued).
DETAILS :
The old code sometimes corrupted data when pdfwrite applies /ASCII85EncodePages true .
The data corruption happened while applying ASCII85Decode filter
together with another filter for inline images or embedded fonts.
The reason is that two instances of the stream dumper shared same buffer.
EXPECTED DIFFERENCES :
None.</pre>
<p>[lib/opdfread.ps 1.40]</p>
</blockquote>
<p><strong><a name="2005-02-16_1529"></a>
2005-02-16 15:29 Igor Melichev</strong></p>
<blockquote>
<pre>
ps2write : Implementing a conversion of type 4 images into an 'imagemask' with a pattern color.
DETAILS :
The mask is being generated with a new 4th alternative stream of pdf_image_writer.
Note it's a completely different way than image type 3.
1. Fixed a typo in 'pdf_image_writer_num_alt_streams'.
2. pdf_image_writer_num_alt_streams is increased to 4,
and added pdf_image_writer::pres_mask.
3. Garbager methods of pdf_image_writer are updated with (2) in gdevpdfj.c .
4. Factored out pdf_begin_image_data_decoded (an equivalent code change).
5. Factored out pdf_end_and_do_image (an equivalent code change).
6. pdf_begin_write_image now may be called at 2nd time to set up the 4th alternative stream.
The branches for mask==true work for that.
7. Implenented a new filter image_to_mask for converting a colored
image with MaskColors into an imagemask (gdevpsds.h, gdevpsds.c).
8. psdf_setup_image_to_mask_filter helps for (7). (gdevpsdf.h, gdevpsdi.c)/
9. pdf_begin_typed_image now creates 4th alternative image stream with
applying the image_to_mask filter - see the branch
"if (pic->type->index == 4 && pdev->CompatibilityLevel < 1.3)".
See comment in there.
10. pdf_image_end_image_data handles the 4th stream
with the branch "if (pie->writer.alt_writer_count == 2)".
11. pdf_choose_compression_cos preserves the 4th alternative stream (gdevpdfj.c).
EXPECTED DIFFERENCES :
None.</pre>
<p>[src/devs.mak 1.125, src/gdevpdfg.h 1.40, src/gdevpdfi.c 1.61, src/gdevpdfj.c 1.37, src/gdevpsdf.h 1.26, src/gdevpsdi.c 1.34, src/gdevpsds.c 1.11, src/gdevpsds.h 1.10]</p>
</blockquote>
<p><strong><a name="2005-02-16_1111"></a>
2005-02-16 11:11 Igor Melichev</strong></p>
<blockquote>
<pre>
Fix (pdfwrite) : Improve garbager methods of pdf_image_writer.
DETAILS :
This change should be algorithmically equivalent,
rather the order of pointer enumeration is changed slightly.
The goal is to simplify the ps2write project.
EXPECTED DIFFERENCES :
None.</pre>
<p>[src/gdevpdfg.h 1.39, src/gdevpdfj.c 1.36]</p>
</blockquote>
<p><strong><a name="2005-02-16_0913"></a>
2005-02-16 09:13 Igor Melichev</strong></p>
<blockquote>
<pre>
Fix (pdfwrite) : Implement an explicit initialization of pdf_image_writer.
DETAILS :
This change should be algorithmically equivalent,
rather it initializes more data, which were left uninitiaized
(and hopely unused) by the old code.
The goal is to simplify the ps2write project.
The patch simplifies the logics of pdf_begin_write_image,
and drops its argument, which was added when implementing
the compression chooser.
EXPECTED DIFFERENCES :
None.</pre>
<p>[src/gdevpdfb.c 1.26, src/gdevpdfg.h 1.38, src/gdevpdfi.c 1.60, src/gdevpdfj.c 1.35, src/gdevpdfv.c 1.38]</p>
</blockquote>
<p><strong><a name="2005-02-16_0631"></a>
2005-02-16 06:31 Ray Johnston</strong></p>
<blockquote>
<pre>
Add a pdfformaterror Warning for the case where an outline link destination
does not exist (so that the resulting PDF will not have dangling links).</pre>
<p>[lib/pdf_main.ps 1.93]</p>
</blockquote>
<p><strong><a name="2005-02-16_0628"></a>
2005-02-16 06:28 Ray Johnston</strong></p>
<blockquote>
<pre>
Tolerate non-printing garbage characters prior to the %PDF header of a PDF
file. Bug 687942 for customer 670.
DETAILS:
This is yet another example of PDF's that Acrobat Reader can handle that
don't quite meet the spec. AR has the advantage that they don't have to
'auto-sense' PostScript, EPS and PDF and they can just ignore garbage
before the %PDF header. We don't have that advantage.
We've had previous proposals to operate the way AR does, but this would
require a command line switch to force PDF language mode (akin to the
PJL ENTER LANGUAGE functionality of PCL).
This is a simple enough patch and does solve at least one customer's
issue so I'm committing this patch. We can always improve on it later.
Note that skipping initial non-printing characters doesn't interfere
with PostScript or EPS recognition or processing (and may help).</pre>
<p>[lib/pdf_main.ps 1.92]</p>
</blockquote>
<p><strong><a name="2005-02-16_0501"></a>
2005-02-16 05:01 Raph Levien</strong></p>
<blockquote>
<pre>
Fix: make sure that transfer functions and spot functions are permuted
to the same order as the other halftoning parameters. Fixes bug #687916.</pre>
<p>[src/zht2.c 1.13]</p>
</blockquote>
<p><strong><a name="2005-02-15_1447"></a>
2005-02-15 14:47 Igor Melichev</strong></p>
<blockquote>
<pre>
Fix (the filling algorithm) : Drpouts could appear at Y-extremes of the path (continued).
DETAILS :
This is a continuation of the patch
http://ghostscript.com/pipermail/gs-cvs/2005-January/005180.html .
Bug 687940 "Infinite loop in spot_into_scan_lines_fd".
EXPECTED DIFFERENCES :
None.</pre>
<p>[src/gxfillsl.h 1.8]</p>
</blockquote>
<p><strong><a name="2005-02-14_0237"></a>
2005-02-14 02:37 Ray Johnston</strong></p>
<blockquote>
<pre>
Provide more robust handling of errors in an attempt to prevent badly
formed error handlers defined in the PS file from causing nested errors
(and the infamous dump-like "Unexpected interpreter error").
Refer to bug 687925.
DETAILS:
Note that broken error handlers are fairly common, so running them in a
.internalstopped context makes sense. The .internalstopped is used to
avoid side effects such as modifying the $error dict contents.
Also note that the -dJOBSERVER may often be needed to actually see the
error message since this forces the use of the "standard" error reporting
to stdout.
Expected Differences:
None.</pre>
<p>[lib/gs_init.ps 1.117]</p>
</blockquote>
<p><strong><a name="2005-02-13_2131"></a>
2005-02-13 21:31 Ray Johnston</strong></p>
<blockquote>
<pre>
Fix a problem with the initial matrix when the InputAttributes has a page
size range (four element array) with the lower bounds greater than 0.
Patch submitted by Till Kamppeter for bug 687902.
DETAILS:
The logic was clearly broken. There was an arbitrary MIN_MEDIA_SIZE #define
that was used to allow setting the media size correctly (to the request
instead of the range maximum). The corrected logic determines that a range
is being used when the medium.p{x|y} is not the same as medium.q{x|y}.
Expected Differences:
Since the default InputAttributes only has a single range page size slot,
and the minimum values are 0, 0, this won't change the default behaviour.</pre>
<p>[src/zmedia2.c 1.17]</p>
</blockquote>
<p><strong><a name="2005-02-12_2029"></a>
2005-02-12 20:29 Ray Johnston</strong></p>
<blockquote>
<pre>
Fix so that outline links to non-existent pages do not get processed or
included in the outline passed to pdfwrite (via pdfmark). Bug 687917.
DETAILS:
Broken links cause a 'rangecheck in --get--' in the pdfpagenumber proc.
called from 'linkdest'. We now catch errors (any) using stopped and simply
omit the link from the outline that we write.</pre>
<p>[lib/pdf_main.ps 1.91]</p>
</blockquote>
<p><strong><a name="2005-02-10_2313"></a>
2005-02-10 23:13 Dan Coby</strong></p>
<blockquote>
<pre>
Fix for 687935 rangecheck in stroke while overprinting on the display device.
DETAILS:
This fix corrects a problem in gx_default_get_bits_rectangle. The fix
forces the 'actual_data' parameter to NULL when the GB_RETURN_POINTER
option is not included in the parameter options. A value of NULL in the
actual_data parameter forces the get_bits routine to copy data instead of
simply returning a pointer to the data.
The default implementation of overprinting uses the device get_bit_rectangle
proc to retrieve the current pixel data. This one of the few situations that
only uses the 'GB_RETURN_COPY' option to the get_bits routine. (Most cases
use both GB_RETURN_COPY and GB_RETURN_POINTER.)</pre>
<p>[src/gdevdgbr.c 1.12]</p>
</blockquote>
<p><strong><a name="2005-02-09_1942"></a>
2005-02-09 19:42 Igor Melichev</strong></p>
<blockquote>
<pre>
ps2write : Fix problems with heh encodings.
DETAILS :
The old code failed when pdfwrite applies /ASCII85EncodePages true .
This patch fixes that.
When reading the generated PS file with Ghostscript,
we observe a problem with ASCII85Decode filter :
images and fonts appear corrupt,
and embedded fonts cause an access violation on Windows.
In same time Adobe Reader reads them fine.
This secondary problem shouldn't be important for the Postscript generation.
It will be fixed separately.
EXPECTED DIFFERENCES :
None.</pre>
<p>[lib/opdfread.ps 1.39, lib/ps2write.bat 1.6]</p>
</blockquote>
<p><strong><a name="2005-02-09_1830"></a>
2005-02-09 18:30 Ray Johnston</strong></p>
<blockquote>
<pre>
Revert to the redistributable Identity-H and Identity-V CMaps (same as
the CVS revision 1.1). Bug 687933.</pre>
<p>[Resource/CMap/Identity-H 1.3, Resource/CMap/Identity-V 1.3]</p>
</blockquote>
<p><strong><a name="2005-02-09_1636"></a>
2005-02-09 16:36 Igor Melichev</strong></p>
<blockquote>
<pre>
ps2write : Implementing a conversion of type 3 images into an 'imagemask' with a pattern color.
DETAILS :
1. The main worker is use_image_as_pattern.
2. pdf_image_end_image_object2 transfers the condition for calling use_image_as_pattern.
3. pdf_image_end_image_data handles more cases, including the new USE_AS_PATTERN.
See comment in code near it. Other 2 cases are equivalent to old ones.
4. Don't write the Mask key when the image is used as the pattern color.
5. New fields are added into pdf_device_s to provide a data transfer for use_image_as_pattern.
6. pdf_do_image is splitted into 2 functions. A further simplification
would be useful, but we delay it in order to simplify this patch.
See new comments in code.
7. A comment is inserted into gdevpdfd.c to provide a reference to a similar
code fragment. Maybe we should factor out a common function.
Delaying to simplify this patch.
8. Added a 'const' to a pdf_add_resource argument,
since this patch calls it with a constant.
EXPECTED DIFFERENCES :
None.</pre>
<p>[src/devs.mak 1.124, src/gdevpdfd.c 1.47, src/gdevpdfg.h 1.37, src/gdevpdfi.c 1.59, src/gdevpdfj.c 1.34, src/gdevpdfx.h 1.105, src/gdevpdti.c 1.40]</p>
</blockquote>
<p><strong><a name="2005-02-08_1652"></a>
2005-02-08 16:52 Igor Melichev</strong></p>
<blockquote>
<pre>
Implementing a conversion of a shading to a raster image for high level devices (continued 2).
DETAILS :
1. When a patch possibly is self-overlapping, patch_fill passes an empty path
(instead the patch boundary) to the device. Receiveing an empty path, the device
knows that it must convert the coverage area into a mask.
2. pdfwrite converts self-overlapping patches into an imagemask with a colored pattern color,
which paints the shading image. See the new code and comments in gdevpdfd.c.
3. An auxiliary function is added to gsptype2.c .
4. Probably we'll need to break big patterns into small ones
against the printer RAM overflow. Delaying for a while.
EXPECTED DIFFERENCES :
None.</pre>
<p>[src/devs.mak 1.123, src/gdevpdfd.c 1.46, src/gsptype2.c 1.17, src/gsptype2.h 1.12, src/gxshade6.c 1.90]</p>
</blockquote>
<p><strong><a name="2005-02-08_1557"></a>
2005-02-08 15:57 Igor Melichev</strong></p>
<blockquote>
<pre>
ps2write : Allow image compression.
EXPECTED DIFFERENCES :
None.
3</pre>
<p>[lib/ps2write.bat 1.5]</p>
</blockquote>
<p><strong><a name="2005-02-07_0638"></a>
2005-02-07 06:38 Dan Coby</strong></p>
<blockquote>
<pre>
Fix for 687849 Unrecoverable error, converting PDF to TIF. Igor determined
that the file has a problem that that causes the XREF rebuilding logic to
be invoked and that object 74 0 was not being found. With this fix, we are
able to rebuild the file.
DETAILS:
The XREF rebuild logic uses a working string while searching for objects.
Object 74 0 was not being found because it is larger than the working
string. This fix increases the working string size to 65535 bytes (the
maximum size for a string).</pre>
<p>[lib/pdf_rbld.ps 1.8]</p>
</blockquote>
<p><strong><a name="2005-02-06_2132"></a>
2005-02-06 21:32 Ray Johnston</strong></p>
<blockquote>
<pre>
Update the currentpoint after processing invisible text. BUg 687860.
DETAILS:
This could be more efficient, but invisible text is not assumed to be
very performance sensitive. I tested the bugs related to this one
(see the bug report) and this patch still works for those.
Expected Differences:
None.</pre>
<p>[lib/pdf_ops.ps 1.38]</p>
</blockquote>
<p><strong><a name="2005-02-03_0540"></a>
2005-02-03 05:40 Ray Johnston</strong></p>
<blockquote>
<pre>
Fix for miterlimit value that is smaller than PostScript PLRM allows.
Bug 687895. Somewhat based on patch from Alex Cherepanov.
DETAILS:
The patch from Alex issued a pdfformaterror *** Warning but reading the
PDF specification, the minimum value of 1 given in the PostScript ref
manual is NOT stated, so we clamp the value to a lower bound of 1 silently.</pre>
<p>[lib/pdf_draw.ps 1.90]</p>
</blockquote>
<p><strong><a name="2005-01-31_1539"></a>
2005-01-31 15:39 Ray Johnston</strong></p>
<blockquote>
<pre>
Some dependencies were missing that caused the build to fail when a subset
of DEVICE_DEVS were included. Specifically, zlib and the 'display' device
were problems. Bug 687920 for customer #580.
DETAILS:
Apparently the needed modules for zlib have changed, but when a 'png'
device was included, the crc32 module was included anyway.
The display device didn't include several dependencies for the new DeviceN
and Spot Color support: gdevdevn.obj gsequivc.obj gdevdcrd.obj</pre>
<p>[src/devs.mak 1.122, src/zlib.mak 1.9]</p>
</blockquote>
<p><strong><a name="2005-01-31_0308"></a>
2005-01-31 03:08 Igor Melichev</strong></p>
<blockquote>
<pre>
Implementing a conversion of a shading to a raster image for high level devices (continued).
DETAILS :
1. In pdf_copy_color_data, allowed the new value 2 for the parameter for_pattern.
In this case non-lossless filters are allowed.
2. In gdev_pdf_fill_path, fixed the grouping of clip paths for all
meshes|patches of a shading.
3. In gdev_pdf_fill_path, used the shading BBox to minimize
the size of the raster image.
4. In gdevpdfp.c allowed CompatibilityLevel=1.1 .
Now this is done mainly for debug purpose,
but likely we'll use it in ps2write when the target doesn't handle TT fonts.
5. The new function gx_dc_pattern2_get_bbox works for (3).
6. The function shade_bbox_transform2fixed has been renamed into
gx_dc_pattern2_shade_bbox_transform2fixed with making its scope bigger
to work for (5). It has been moved into gsptype2.c,
which is mode fundamental than gxshade.c .
The following changes happened due to that : gsptype2.c, gsptype2.h,
gsshade.c, gxshade.c, gxshade1.c, gxshade4.c.
We would like to do more cleanup with replacing it with
gx_dc_pattern2_get_bbox, but currently we delay that to simplify this patch.
7. Introduced a new field patch_curve_t::straight to know whether a patch
boundary is a straight line. patch_fill uses it when passing the
shading coverage area.
8. mesh_triangle now passes the coverage area.
An auxiliary function mesh_triangle_rec is factored out for that.
9. patch_fill checks for self-overlapoped patches
and prints a warning is the patch appears suspicious.
Comments in patch_fill about that have been improved.
10. patch_fill and mesh_triangle check the sign odf the coverage area,
and change the contour direction for making all contours be positive.
This works for proper clipping.
11. Fixed compressed streams in opdfread.ps .
EXPECTED DIFFERENCES :
None.</pre>
<p>[src/gdevpdfb.c 1.25, src/gdevpdfd.c 1.45, src/gdevpdfp.c 1.43, src/gsptype2.c 1.16, src/gsptype2.h 1.11, src/gsshade.c 1.14, src/gxshade.c 1.22, src/gxshade.h 1.12, src/gxshade1.c 1.36, src/gxshade4.c 1.28, src/gxshade6.c 1.89, lib/opdfread.ps 1.38, src/gxshade4.h 1.38, src/lib.mak 1.205]</p>
</blockquote>
<p><strong><a name="2005-01-31_0202"></a>
2005-01-31 02:02 Igor Melichev</strong></p>
<blockquote>
<pre>
Fix (pdfwrite) : Improving the check for a degenerate curve.
DETAILS :
This is a minor optimization for the case when a curve degenerates to a dot.
The old code converted it into the PDF instruction 'y', which looks uneven.
EXPECTED DIFFERENCES :
pdfwrite :
"Openhuis_pdf_zw.pdf"</pre>
<p>[src/gdevpsdu.c 1.22]</p>
</blockquote>
<p><strong><a name="2005-01-30_2349"></a>
2005-01-30 23:49 Igor Melichev</strong></p>
<blockquote>
<pre>
A new implementation of shadings, step 88.
DETAILS :
The function is_bended could give a wrong result (false instead true) when
the first vector product is zero. This could cause insufficient subdivision.
EXPECTED DIFFERENCES :
normal, 72dpi :
"442-01.ps"
"446-01-fixed.ps"
"483-05-fixed.ps"
normal, 300dpi :
"442-01.ps"
pdfwrite 72dpi :
"442-01.ps"
normal 300dpi :
"442-01.ps"</pre>
<p>[src/gxshade6.c 1.88]</p>
</blockquote>
<p><strong><a name="2005-01-30_2059"></a>
2005-01-30 20:59 Igor Melichev</strong></p>
<blockquote>
<pre>
Fix (pdfwrite) : Uninitialized variables when applying LZWEncode.
DETAILS :
Normally pdfwrite doesn't apply LZWEncode since it prefers FlateEncode.
Meanwhile ps2write needs LZWEncode, and we found unitialized variables in there.
EXPECTED DIFFERENCES :
None.</pre>
<p>[src/gdevpsdi.c 1.33]</p>
</blockquote>
<p><strong><a name="2005-01-28_1911"></a>
2005-01-28 19:11 Igor Melichev</strong></p>
<blockquote>
<pre>
Implementing a convertion of a shading to a raster image for high level devices.
DETAILS :
If a high level device can't handle a shading,
it is being converted to a raster image.
This patch implements it only in OrderResources mode.
A generalization to "normal" mode will be done in a separate patch.
The generated bitmap sometimes appears too big since it
doesn't accout a bbox of a real shading coverage.
An optimization is coming soon.
1.The device virtual function pattern_manage now handles
a new request pattern_manage__shading_area.
If it returns 1, the graphics library will pass
the shading area as a special call to fill_path,
with passing NULL images\r state and NULL clipping path.
Such call immediately follows pattern_manage(...., pattern_manage__shading_area).
Currently it goes only to a special converter device (see below),
other devices and the default implementation return 0
for pattern_manage(...., pattern_manage__shading_area).
2. A new local type pdf_lcvd_t implements a subclass for
memory device, which is used especially for converting shadings
to raster image. It is defined locally in pdfwrite.
The subcalss redefines 4 device methods :
2.1. fill_rectangle with shifting the device space.
It is used to mapo the shading and its paths to the image coordinate system.
2.2. get_clipping_box returns the target clipping box,
to deceive a cut-off condition in the shading algorythm.
2.3. pattern_manage returns 1 for pattern_manage__shading_area.
2.4. fill_path is used only for handling the shading area.
It sets a clipping when instantiating the bitmap.
3. gdev_pdf_fill_path implements the convertion with (2).
4. gs_shading_fill_path doesn't set up a clipper device
when it works with the shading convertion device.
Instead that the clipping path is being passed through (2.4).
5,. patch_fill in gxshade6.c checks if the devices needs the
shading area, and if so, passes the area throuhg the special call to
fill_path.
EXPECTED DIFFERENCES :
None.</pre>
<p>[src/devs.mak 1.121, src/gdevpdfb.c 1.24, src/gdevpdfd.c 1.44, src/gdevpdfg.h 1.36, src/gdevpdfi.c 1.58, src/gdevvec.h 1.16, src/gsshade.c 1.13, src/gx.h 1.43, src/gxdevcli.h 1.35, src/gxshade6.c 1.87]</p>
</blockquote>
<p><strong><a name="2005-01-28_1851"></a>
2005-01-28 18:51 stefan</strong></p>
<blockquote>
<pre>
fix memory leak for indexed color space data when banding.
In gxclrast.c::clist_playback_band()
color_space.params.indexed.lookup.table.data
leaked on a per band basis. table.size indicates allocated memory
which is freed at the end of the routine.
The reallocate case when multiple colorspaces are used per band was
correctly handled.
Using a more descriptive client name of "color_space indexed table".</pre>
<p>[src/gxclrast.c 1.32]</p>
</blockquote>
<p><strong><a name="2005-01-28_1811"></a>
2005-01-28 18:11 Igor Melichev</strong></p>
<blockquote>
<pre>
Fix : gx_forward_pattern_manage missed a return code.
EXPECTED DIFFERENCES :
None.</pre>
<p>[src/gdevnfwd.c 1.27]</p>
</blockquote>
<p><strong><a name="2005-01-26_1848"></a>
2005-01-26 18:48 Raph Levien</strong></p>
<blockquote>
<pre>
Fix: Resolve indirect object references in Widths array. Fixes bug
#687906.</pre>
<p>[lib/pdf_font.ps 1.76]</p>
</blockquote>
<p><strong><a name="2005-01-26_1639"></a>
2005-01-26 16:39 Jack Moffitt</strong></p>
<blockquote>
<pre>
Fix update_specific so that it gets the correct parameters for pdfwrite
testing. It was previously using the superset of raster parameters.</pre>
<p>[toolbin/tests/update_specific 1.5]</p>
</blockquote>
<p><strong><a name="2005-01-25_2222"></a>
2005-01-25 22:22 Igor Melichev</strong></p>
<blockquote>
<pre>
(pdfwrite) : Don't skip white color while painting a pattern (continued 2).
DETAILS :
This change is important for ps2write only.
It is algorithmically equivalent for other invocations.
1. The patch http://ghostscript.com/pipermail/gs-cvs/2005-January/005163.html
broke the OrderResources mode. Fixed in gdevpdfu.c .
This is another fix to that.
2. Removed the hack about writing non-eexec fonts
because PDF specification doesn't allow it.
Rather ps2write can handle them, we use a PDF viewer
to debug the writer.
EXPECTED DIFFERENCES :
None.</pre>
<p>[src/gdevpdfu.c 1.65, src/gdevpdtb.c 1.32]</p>
</blockquote>
<p><strong><a name="2005-01-25_2123"></a>
2005-01-25 21:23 Igor Melichev</strong></p>
<blockquote>
<pre>
Fix (PDF interpreter) : A minor change for fixing the repository consistency.
DETAILS :
A wrong revision of pdf_font.ps was committed by error and then removed.
This minor change in a space provides a right repository synchronization.
EXPECTED DIFFERENCES :
None.</pre>
<p>[lib/pdf_font.ps 1.75]</p>
</blockquote>
<p><strong><a name="2005-01-25_2040"></a>
2005-01-25 20:40 Ray Johnston</strong></p>
<blockquote>
<pre>
Fix for an infinite loop in a PDF file that uses Patterns. Bug 687802
for customer #850.
DETAILS:
The problem was that the DefaultQstate used when making a Pattern
was the device *BEFORE* the pdf14 device filter was inserted as
the device. If the underlying device had a different 'depth' than
the PDF14 device, the pattern cache lookup would always fail which
would then cause the fill to return e_RemapColor and perform the
PaintProc again. The 'depth' comparison is in gsptype1.c in the
gx_pattern_cache_lookup function.
The fix is to set the DefaultQstate *AFTER* the pushpdf14devicefilter
is performed (and of course also reset it after popdevicefilter
is done).
Expected Differences:
None (we didn't have any regression tests that use Patterns in pages
with transparency). In fact, we only had two pages with ANY transparency:
ai2.pdf and dina3_watermark.pdf.</pre>
<p>[lib/pdf_main.ps 1.90]</p>
</blockquote>
<p><strong><a name="2005-01-25_2028"></a>
2005-01-25 20:28 Igor Melichev</strong></p>
<blockquote>
<pre>
ps2write : Improving the output file structure (continued).
DETAILS :
Removed a debug option that was added unintentionally.
EXPECTED DIFFERENCES :
None.</pre>
<p>[lib/ps2write.bat 1.4]</p>
</blockquote>
<p><strong><a name="2005-01-25_1839"></a>
2005-01-25 18:39 Igor Melichev</strong></p>
<blockquote>
<pre>
ps2write : Improving the output file structure (continued).
DETAILS :
Removed a debug option that was added unintentionally.
EXPECTED DIFFERENCES :
None.</pre>
<p>[lib/ps2write.bat 1.3]</p>
</blockquote>
<p><strong><a name="2005-01-25_1833"></a>
2005-01-25 18:33 Igor Melichev</strong></p>
<blockquote>
<pre>
ps2write : Improving the output file structure.
DETAILS :
1. Merge opdfread.ps and opdferrh.ps .
2. Fix a header commant in opdfread.
3. Remove opdferrh.ps from ps2write.bat and from documentation.
4. Change the documentation since ps2write is not a "device".
EXPECTED DIFFERENCES :
None.</pre>
<p>[lib/opdfrerh.ps 1.3]</p>
</blockquote>
<p><strong><a name="2005-01-25_1830"></a>
2005-01-25 18:30 Igor Melichev</strong></p>
<blockquote>
<pre>
ps2write : Improving the output file structure.
DETAILS :
1. Merge opdfread.ps and opdferrh.ps .
2. Fix a header commant in opdfread.
3. Remove opdferrh.ps from ps2write.bat and from documentation.
4. Change the documentation since ps2write is not a "device".
EXPECTED DIFFERENCES :
None.</pre>
<p>[doc/Psfiles.htm 1.59, lib/opdfread.ps 1.37, lib/ps2write.bat 1.2]</p>
</blockquote>
<p><strong><a name="2005-01-25_1826"></a>
2005-01-25 18:26 Igor Melichev</strong></p>
<blockquote>
<pre>
(pdfwrite) : Don't skip white color while painting a pattern (continued).
DETAILS :
1. The patch http://ghostscript.com/pipermail/gs-cvs/2005-January/005163.html
broke the OrderResources mode. Fixed in gdevpdfu.c .
2. Error codes were wrongly propagated in gdevpdfd.c .
EXPECTED DIFFERENCES :
None.</pre>
<p>[src/gdevpdfd.c 1.43, src/gdevpdfu.c 1.64]</p>
</blockquote>
<p><strong><a name="2005-01-25_1118"></a>
2005-01-25 11:18 Igor Melichev</strong></p>
<blockquote>
<pre>
Fix (the filling algorithm) : Drpouts could appear at Y-extremes of the path.
DETAILS :
Bug 687717 "Dropouts at Y-extremes when filling a path".
EXPECTED DIFFERENCES :
Normal, 72pdi :
"0.pdf"
"012-01.ps"
"012-05.ps"
"012-09.ps"
"012-13.ps"
"013-01.ps"
"013-05.ps"
"013-09.ps"
"013-13.ps"
"014-01.ps"
"014-05.ps"
"014-09.ps"
"014-13.ps"
"015-01.ps"
"015-05.ps"
"015-09.ps"
"017-01.ps"
"020-01.ps"
"027-01.ps"
"027-05.ps"
"027-09.ps"
"031-01.ps"
"032-01.ps"
"032-07.ps"
"034-01.ps"
"034-10.ps"
"036-01.ps"
"039-01.ps"
"045-01.ps"
"083-01.ps"
"083-05.ps"
"083-09.ps"
"083-13.ps"
"104-01.ps"
"109-01.ps"
"123-01.ps"
"123-05.ps"
"123-09.ps"
"136-01.ps"
"148-16.ps"
"150-01.ps"
"154-01.ps"
"158-01.ps"
"165-01.ps"
"169-01.ps"
"169-05.ps"
"169-09.ps"
"169-13.ps"
"176-01.ps"
"181-01.ps"
"192-01.ps"
"1_2001.pdf"
"1_pct_50_bang.pdf"
"205-01.ps"
"205-05.ps"
"205-09.ps"
"205-13.ps"
"212-01.ps"
"213-01.ps"
"214-01.ps"
"220-01.ps"
"220-07.ps"
"222-01.ps"
"222-05.ps"
"222-09.ps"
"222-13.ps"
"223-01.ps"
"226-01.ps"
"244-01.ps"
"245-01.ps"
"245-07.ps"
"245-13.ps"
"245-17.ps"
"250-01.ps"
"251-01.ps"
"255-01.ps"
"258-01.ps"
"260-01.ps"
"264-01.ps"
"269-01.ps"
"270-01.ps"
"281-01.ps"
"289-01.ps"
"297-01.ps"
"303-01.ps"
"307-01.ps"
"307-07.ps"
"308-04.ps"
"311-03.ps"
"316-07.ps"
"320-01.ps"
"335-01.ps"
"336-01.ps"
"446-01-fixed.ps"
"455690.pdf"
"687572.pdf"
"86554321.pdf"
"a.pdf"
"adesso1.pdf"
"adesso6.pdf"
"adesso8.pdf"
"Altona-Testsuite_p2_S_x3.pdf"
"Altona.Page_3.2002-09-27.pdf"
"Altona_Measure_1v1.pdf"
"Altona_Technical_1v1_x3.pdf"
"Altona_Visual_bb_1v1_x3.pdf"
"Altona_Visual_sb_1v1_x3.pdf"
"BEST8-99-Path.fh7.pdf"
"besttest.pdf"
"budget2.pdf"
"budget2_ai87.pdf"
"Bug1344.ps"
"Bug687044.ps"
"Bug687207.ps"
"Bug687396.ps"
"Bug687546.ps"
"Bug687603.pdf"
"Bug687603.ps"
"Bug687660.ps"
"Bug687660a.ps"
"Bug687698.ps"
"Bug687724.pdf"
"Bug687812.ps"
"Bug687828.pdf"
"Bug687840.pdf"
"bugsample.pdf"
"BW0696FOLD1FRONT.pdf"
"ca.pdf"
"chilis_black.pdf"
"chilis_red.pdf"
"Clarke Tate Manns Chinese.ai"
"colorcir.ps"
"DisplayedGood.pdf"
"DisplayedWrong.pdf"
"escher.ps"
"file2.pdf"
"golfer.eps"
"gs.anotherfailure.pdf"
"gs5.98-dragon.pdf"
"gs6.0-dragon.pdf"
"gslandscape.pdf"
"H00216q.pdf"
"InstandardBuildChar.ps"
"john_clippedimage.pdf"
"knight.pdf"
"LMG-40-7161-RU-DUC-01.pdf"
"messenger.pdf"
"messenger16.pdf"
"motor.pdf"
"muur.eps"
"Openhuis_pdf_zw.pdf"
"Page01.pdf"
"PixelisAd.pdf"
"probe3.pdf"
"PT.ps"
"ridt91.eps"
"RodinCIDEmbed.pdf"
"S2_Digitalproof-Forum_circles.pdf"
"S2_Digitalproof-Forum_x3k.pdf"
"shading_prob_800.ps"
"si_tg_brochure.pdf"
"SmoothShading.pdf"
"STEUER-RollingMesh 1(linear).ai"
"STEUER-RollingMesh 2(radial).ai"
"STEUER-RollingMesh 3(Final).ai"
"test.pdf"
"tiger.eps"
"time1.pdf"
"type3xshow.eps"
"unihaken-color.pdf"
"vasarely.ps"
"vsem0093.pdf"
Normal, 300dpi :
"0.pdf"
"001-13.ps"
"002-09.ps"
"012-01.ps"
"012-05.ps"
"012-09.ps"
"012-13.ps"
"013-01.ps"
"013-05.ps"
"013-09.ps"
"013-13.ps"
"014-01.ps"
"014-05.ps"
"014-09.ps"
"014-13.ps"
"015-01.ps"
"015-05.ps"
"015-09.ps"
"017-01.ps"
"01_001.pdf"
"020-01.ps"
"027-01.ps"
"027-05.ps"
"027-09.ps"
"027-13.ps"
"031-01.ps"
"032-01.ps"
"032-07.ps"
"034-01.ps"
"034-10.ps"
"035-07.ps"
"036-01.ps"
"039-01.ps"
"045-01.ps"
"083-01.ps"
"083-05.ps"
"083-09.ps"
"083-13.ps"
"102-01.ps"
"103-01.ps"
"104-01.ps"
"109-01.ps"
"118-01.ps"
"123-01.ps"
"123-05.ps"
"123-09.ps"
"136-01.ps"
"148-16.ps"
"149-05.ps"
"150-01.ps"
"154-01.ps"
"158-01.ps"
"165-01.ps"
"169-01.ps"
"169-05.ps"
"169-09.ps"
"169-13.ps"
"175-01.ps"
"176-01.ps"
"181-01.ps"
"192-01.ps"
"1_2001.pdf"
"1_pct_50_bang.pdf"
"205-01.ps"
"205-05.ps"
"205-09.ps"
"205-13.ps"
"212-01.ps"
"213-01.ps"
"214-01.ps"
"220-01.ps"
"220-07.ps"
"222-01.ps"
"222-05.ps"
"222-09.ps"
"222-13.ps"
"223-01.ps"
"226-01.ps"
"231-01.ps"
"237-01.ps"
"244-01.ps"
"245-01.ps"
"245-07.ps"
"245-13.ps"
"245-17.ps"
"250-01.ps"
"251-01.ps"
"255-01.ps"
"257-01.ps"
"258-01.ps"
"260-01.ps"
"264-01.ps"
"269-01.ps"
"270-01.ps"
"281-01.ps"
"289-01.ps"
"297-01.ps"
"298-01.ps"
"298-05.ps"
"298-09.ps"
"303-01.ps"
"307-01.ps"
"307-07.ps"
"308-04.ps"
"310-04.ps"
"311-03.ps"
"316-07.ps"
"320-01.ps"
"321-01.ps"
"321-05.ps"
"321-09.ps"
"321-13.ps"
"327-01.ps"
"334-01.ps"
"335-01.ps"
"336-01.ps"
"442-01.ps"
"446-01-fixed.ps"
"687572.pdf"
"86554321.pdf"
"a.pdf"
"adesso8.pdf"
"Altona-Testsuite_p2_S_x3.pdf"
"Altona.Page_3.2002-09-27.pdf"
"Altona_Measure_1v1.pdf"
"Altona_Technical_1v1_x3.pdf"
"Altona_Visual_bb_1v1_x3.pdf"
"Altona_Visual_sb_1v1_x3.pdf"
"BEST8-99-Path.fh7.pdf"
"besttest.pdf"
"budget2.pdf"
"budget2_ai87.pdf"
"Bug1344.ps"
"Bug687044.ps"
"Bug687207.ps"
"Bug687396.ps"
"Bug687472.ps"
"Bug687489.ps"
"Bug687546.ps"
"Bug687598.ps"
"Bug687603.pdf"
"Bug687603.ps"
"Bug687660.ps"
"Bug687660a.ps"
"Bug687698.ps"
"Bug687724.pdf"
"Bug687812.ps"
"Bug687828.pdf"
"Bug687832.pdf"
"Bug687840.pdf"
"bugsample.pdf"
"bulletin.pdf"
"BW0696FOLD1FRONT.pdf"
"ca.pdf"
"CAT_LOGO.ps"
"chilis_black.pdf"
"chilis_red.pdf"
"Clarke Tate Manns Chinese.ai"
"colorcir.ps"
"DisplayedGood.pdf"
"DisplayedWrong.pdf"
"doretree.ps"
"Es001-01.pdf"
"escher.ps"
"file.pdf"
"file2.pdf"
"Fixed_Original.pdf"
"golfer.eps"
"gs.anotherfailure.pdf"
"gs5.98-dragon.pdf"
"gs6.0-dragon.pdf"
"H00216q.pdf"
"InstandardBuildChar.ps"
"john_clippedimage.pdf"
"knight.pdf"
"LMG-40-7161-RU-DUC-01.pdf"
"messenger.pdf"
"messenger16.pdf"
"motor.pdf"
"mspro.pdf"
"muur.eps"
"non-sepqxd2distiller.pdf"
"Openhuis_pdf_zw.pdf"
"Original.pdf"
"p2b-100.pdf"
"Page01.pdf"
"PixelisAd.pdf"
"probe3.pdf"
"PT.ps"
"QA_Inv.pdf"
"ridt91.eps"
"RodinCIDEmbed.pdf"
"rotate0.pdf"
"rotate180.pdf"
"rotate270.pdf"
"rotate90.pdf"
"S2_Digitalproof-Forum_circles.pdf"
"S2_Digitalproof-Forum_x3k.pdf"
"shading_prob_800.ps"
"si_tg_brochure.pdf"
"SmoothShading.pdf"
"Svd.pdf"
"test.pdf"
"tiger.eps"
"time1.pdf"
"Type3stringwidth.ps"
"type3xshow.eps"
"unihaken-color.pdf"
"UnusualFontMatrix.ps"
"vasarely.ps"
"vsem0093.pdf"
pdfwrite,72dpi :
"0.pdf"
"012-01.ps"
"012-05.ps"
"012-09.ps"
"012-13.ps"
"013-01.ps"
"013-05.ps"
"013-09.ps"
"013-13.ps"
"014-01.ps"
"014-05.ps"
"014-09.ps"
"014-13.ps"
"015-01.ps"
"015-05.ps"
"015-09.ps"
"017-01.ps"
"01_001.pdf"
"020-01.ps"
"027-01.ps"
"027-05.ps"
"027-09.ps"
"031-01.ps"
"032-01.ps"
"032-07.ps"
"034-01.ps"
"034-10.ps"
"039-01.ps"
"045-01.ps"
"083-01.ps"
"083-05.ps"
"083-09.ps"
"083-13.ps"
"093-01.ps"
"103-01.ps"
"104-01.ps"
"109-01.ps"
"118-01.ps"
"123-01.ps"
"123-05.ps"
"123-09.ps"
"136-01.ps"
"148-16.ps"
"150-01.ps"
"154-01.ps"
"158-01.ps"
"165-01.ps"
"169-01.ps"
"169-05.ps"
"169-09.ps"
"169-13.ps"
"176-01.ps"
"181-01.ps"
"192-01.ps"
"1_2001.pdf"
"1_pct_50_bang.pdf"
"205-01.ps"
"205-05.ps"
"205-09.ps"
"205-13.ps"
"212-01.ps"
"213-01.ps"
"214-01.ps"
"220-01.ps"
"220-07.ps"
"222-01.ps"
"222-05.ps"
"222-09.ps"
"222-13.ps"
"223-01.ps"
"226-01.ps"
"237-01.ps"
"244-01.ps"
"245-01.ps"
"245-07.ps"
"245-13.ps"
"245-17.ps"
"250-01.ps"
"251-01.ps"
"255-01.ps"
"258-01.ps"
"260-01.ps"
"264-01.ps"
"269-01.ps"
"270-01.ps"
"281-01.ps"
"297-01.ps"
"303-01.ps"
"307-01.ps"
"307-07.ps"
"308-04.ps"
"311-03.ps"
"316-07.ps"
"320-01.ps"
"335-01.ps"
"336-01.ps"
"446-01-fixed.ps"
"455690.pdf"
"687572.pdf"
"86554321.pdf"
"a.pdf"
"adesso1.pdf"
"adesso6.pdf"
"adesso8.pdf"
"Altona-Testsuite_p2_S_x3.pdf"
"Altona.Page_3.2002-09-27.pdf"
"Altona_Measure_1v1.pdf"
"Altona_Technical_1v1_x3.pdf"
"Altona_Visual_bb_1v1_x3.pdf"
"Altona_Visual_sb_1v1_x3.pdf"
"annots.pdf"
"BEST8-99-Path.fh7.pdf"
"besttest.pdf"
"budget2.pdf"
"budget2_ai87.pdf"
"Bug1344.ps"
"Bug687044.ps"
"Bug687207.ps"
"Bug687396.ps"
"Bug687546.ps"
"Bug687603.pdf"
"Bug687603.ps"
"Bug687660.ps"
"Bug687660a.ps"
"Bug687698.ps"
"Bug687724.pdf"
"Bug687812.ps"
"Bug687828.pdf"
"Bug687832.pdf"
"Bug687840.pdf"
"bugsample.pdf"
"bulletin.pdf"
"BW0696FOLD1FRONT.pdf"
"ca.pdf"
"chilis_black.pdf"
"chilis_red.pdf"
"Clarke Tate Manns Chinese.ai"
"colorcir.ps"
"DisplayedGood.pdf"
"DisplayedWrong.pdf"
"escher.ps"
"file2.pdf"
"golfer.eps"
"gs.anotherfailure.pdf"
"gs5.98-dragon.pdf"
"gs6.0-dragon.pdf"
"gslandscape.pdf"
"GS_Stroke_error.pdf"
"H00216q.pdf"
"InstandardBuildChar.ps"
"john_clippedimage.pdf"
"knight.pdf"
"LMG-40-7161-RU-DUC-01.pdf"
"messenger.pdf"
"messenger16.pdf"
"motor.pdf"
"mspro.pdf"
"muur.eps"
"Openhuis_pdf_zw.pdf"
"Page01.pdf"
"PixelisAd.pdf"
"probe3.pdf"
"PT.ps"
"RodinCIDEmbed.pdf"
"rotate180.pdf"
"S2_Digitalproof-Forum_circles.pdf"
"S2_Digitalproof-Forum_x3k.pdf"
"shading_prob_800.ps"
"si_tg_brochure.pdf"
"SmoothShading.pdf"
"test.pdf"
"tiger.eps"
"time1.pdf"
"type3xshow.eps"
"unihaken-color.pdf"
"vasarely.ps"
"vsem0093.pdf"
pdfwrite 300dpi:
"0.pdf"
"001-13.ps"
"002-09.ps"
"012-01.ps"
"012-05.ps"
"012-09.ps"
"012-13.ps"
"013-01.ps"
"013-05.ps"
"013-09.ps"
"013-13.ps"
"014-01.ps"
"014-05.ps"
"014-09.ps"
"014-13.ps"
"015-01.ps"
"015-05.ps"
"015-09.ps"
"017-01.ps"
"01_001.pdf"
"020-01.ps"
"027-01.ps"
"027-05.ps"
"027-09.ps"
"027-13.ps"
"031-01.ps"
"032-01.ps"
"032-07.ps"
"034-01.ps"
"034-10.ps"
"035-07.ps"
"036-01.ps"
"039-01.ps"
"045-01.ps"
"083-01.ps"
"083-05.ps"
"083-09.ps"
"083-13.ps"
"093-01.ps"
"102-01.ps"
"103-01.ps"
"104-01.ps"
"109-01.ps"
"118-01.ps"
"123-01.ps"
"123-05.ps"
"123-09.ps"
"136-01.ps"
"148-16.ps"
"149-05.ps"
"150-01.ps"
"154-01.ps"
"158-01.ps"
"165-01.ps"
"169-01.ps"
"169-05.ps"
"169-09.ps"
"169-13.ps"
"175-01.ps"
"176-01.ps"
"181-01.ps"
"192-01.ps"
"1_2001.pdf"
"1_pct_50_bang.pdf"
"205-01.ps"
"205-05.ps"
"205-09.ps"
"205-13.ps"
"212-01.ps"
"213-01.ps"
"214-01.ps"
"220-01.ps"
"220-07.ps"
"222-01.ps"
"222-05.ps"
"222-09.ps"
"222-13.ps"
"223-01.ps"
"226-01.ps"
"231-01.ps"
"237-01.ps"
"244-01.ps"
"245-01.ps"
"245-07.ps"
"245-13.ps"
"245-17.ps"
"250-01.ps"
"251-01.ps"
"255-01.ps"
"257-01.ps"
"258-01.ps"
"260-01.ps"
"264-01.ps"
"269-01.ps"
"270-01.ps"
"281-01.ps"
"297-01.ps"
"298-01.ps"
"298-05.ps"
"298-09.ps"
"303-01.ps"
"307-01.ps"
"307-07.ps"
"308-04.ps"
"310-04.ps"
"311-03.ps"
"316-07.ps"
"320-01.ps"
"321-01.ps"
"321-05.ps"
"321-09.ps"
"321-13.ps"
"327-01.ps"
"334-01.ps"
"335-01.ps"
"336-01.ps"
"442-01.ps"
"446-01-fixed.ps"
"483-05-fixed.ps"
"687572.pdf"
"86554321.pdf"
"a.pdf"
"adesso1.pdf"
"adesso7.pdf"
"adesso8.pdf"
"Altona-Testsuite_p2_S_x3.pdf"
"Altona.Page_3.2002-09-27.pdf"
"Altona_Measure_1v1.pdf"
"Altona_Technical_1v1_x3.pdf"
"Altona_Visual_bb_1v1_x3.pdf"
"Altona_Visual_sb_1v1_x3.pdf"
"BEST8-99-Path.fh7.pdf"
"besttest.pdf"
"budget2.pdf"
"budget2_ai87.pdf"
"Bug1344.ps"
"Bug687044.ps"
"Bug687207.ps"
"Bug687396.ps"
"Bug687472.ps"
"Bug687489.ps"
"Bug687546.ps"
"Bug687598.ps"
"Bug687603.pdf"
"Bug687603.ps"
"Bug687660.ps"
"Bug687660a.ps"
"Bug687698.ps"
"Bug687724.pdf"
"Bug687812.ps"
"Bug687828.pdf"
"Bug687832.pdf"
"Bug687840.pdf"
"bugsample.pdf"
"bulletin.pdf"
"BW0696FOLD1FRONT.pdf"
"ca.pdf"
"CAT_LOGO.ps"
"chilis_black.pdf"
"chilis_red.pdf"
"Clarke Tate Manns Chinese.ai"
"colorcir.ps"
"DisplayedGood.pdf"
"DisplayedWrong.pdf"
"doretree.ps"
"Es001-01.pdf"
"escher.ps"
"file.pdf"
"file2.pdf"
"Fixed_Original.pdf"
"golfer.eps"
"gs.anotherfailure.pdf"
"gs5.98-dragon.pdf"
"gs6.0-dragon.pdf"
"GS_Stroke_error.pdf"
"H00216q.pdf"
"InstandardBuildChar.ps"
"john_clippedimage.pdf"
"knight.pdf"
"LMG-40-7161-RU-DUC-01.pdf"
"messenger.pdf"
"messenger16.pdf"
"motor.pdf"
"mspro.pdf"
"muur.eps"
"ngnews.pdf"
"ngnews1.pdf"
"non-sepqxd2distiller.pdf"
"Openhuis_pdf_zw.pdf"
"Original.pdf"
"p2b-100.pdf"
"Page01.pdf"
"PixelisAd.pdf"
"probe3.pdf"
"PT.ps"
"QA_Inv.pdf"
"RodinCIDEmbed.pdf"
"rotate0.pdf"
"rotate180.pdf"
"rotate270.pdf"
"rotate90.pdf"
"S2_Digitalproof-Forum_circles.pdf"
"S2_Digitalproof-Forum_x3k.pdf"
"shading_prob_800.ps"
"si_tg_brochure.pdf"
"SmoothShading.pdf"
"Svd.pdf"
"test.pdf"
"test3.pdf"
"tiger.eps"
"time1.pdf"
"Type3stringwidth.ps"
"type3xshow.eps"
"unihaken-color.pdf"
"UnusualFontMatrix.ps"
"vasarely.ps"
"vsem0093.pdf"
"xngnews.pdf"</pre>
<p>[src/gxfill.c 1.121, src/gxfilltr.h 1.12]</p>
</blockquote>
<p><strong><a name="2005-01-25_0119"></a>
2005-01-25 01:19 Ralph Giles</strong></p>
<blockquote>
<pre>
Always rebuild the jasper autoconf header when configure is run to prevent
the persistence of stale versions. Closes bug 687852.</pre>
<p>[src/configure.ac 1.50]</p>
</blockquote>
<p><strong><a name="2005-01-24_1603"></a>
2005-01-24 16:03 Igor Melichev</strong></p>
<blockquote>
<pre>
Fix (pdfwrite) : Register charproc XObjects with a page (continued);
DETAILS :
Fixing cygwin/gcc warnings in the last patch.
EXPECTED DIFFERENCES :
None.</pre>
<p>[src/gdevpdfg.h 1.35, src/gdevpdte.c 1.69, src/gdevpdtx.h 1.4]</p>
</blockquote>
<p><strong><a name="2005-01-24_1537"></a>
2005-01-24 15:37 Igor Melichev</strong></p>
<blockquote>
<pre>
Fix (pdfwrite) : Register charproc XObjects with a page.
DETAILS :
If an XObject is uzed in a charproc,
it has to be added to the page resource list.
Bug 687894 "Wrong handling of Type 3 fonts (?)"
Generalized pdf_font_resource_t::used_fonts, pdf_register_charproc_font and
pdf_used_charproc_fonts for any resource type.
EXPECTED DIFFERENCES :
None.</pre>
<p>[src/gdevpdfj.c 1.33, src/gdevpdte.c 1.68, src/gdevpdtf.c 1.42, src/gdevpdtf.h 1.27, src/gdevpdts.c 1.28, src/gdevpdtx.h 1.3]</p>
</blockquote>
<p><strong><a name="2005-01-24_1219"></a>
2005-01-24 12:19 Igor Melichev</strong></p>
<blockquote>
<pre>
Fix (pdfwrite) : Cygwin/gcc warnings.
EXPECTED DIFFERENCES :
None.</pre>
<p>[src/gdevpdte.c 1.67, src/gdevpdtt.c 1.99]</p>
</blockquote>
<p><strong><a name="2005-01-24_1200"></a>
2005-01-24 12:00 Igor Melichev</strong></p>
<blockquote>
<pre>
Define more CMap resources.
DETAILS :
Adding more 4 redistributable Adobe CMaps.
EXPECTED DIFFERENCES :
None.</pre>
<p>[Resource/CMap/Adobe-CNS1-3 1.1, Resource/CMap/Adobe-GB1-4 1.1, Resource/CMap/Adobe-Japan1-4 1.1, Resource/CMap/Adobe-Korea1-2 1.1]</p>
</blockquote>
<p><strong><a name="2005-01-20_0510"></a>
2005-01-20 05:10 Dan Coby</strong></p>
<blockquote>
<pre>
Add switch -dNO_TN5044 to disable the TN 5044 pusedo operators. These
operators are needed from some QuarkXpress files but cause probems with
some Illustrator 88 and Corel 9 files. Also add documentation to Use.htm.
This is part of bug 687884.</pre>
<p>[lib/gs_lev2.ps 1.36, doc/Use.htm 1.127]</p>
</blockquote>
<p><strong><a name="2005-01-20_0026"></a>
2005-01-20 00:26 Ray Johnston</strong></p>
<blockquote>
<pre>
Add the "Identity-" CMaps to the decode list.</pre>
<p>[lib/gs_ciddc.ps 1.14]</p>
</blockquote>
<p><strong><a name="2005-01-20_0021"></a>
2005-01-20 00:21 Ralph Giles</strong></p>
<blockquote>
<pre>
Correct a comment typo.</pre>
<p>[src/sjbig2.h 1.5]</p>
</blockquote>
<p><strong><a name="2005-01-19_0024"></a>
2005-01-19 00:24 Dan Coby</strong></p>
<blockquote>
<pre>
Fix for 687897 There are still devices not switched to new API.
This change implements the DeviceN color related changes in the device
API four these four source files. These devices are not normally part of
the Ghostscript build but they are present in the GS sources.</pre>
<p>[src/gdevccr.c 1.6, src/gdevcp50.c 1.7, src/gdevifno.c 1.6, src/gdevmgr.c 1.8]</p>
</blockquote>
<p><strong><a name="2005-01-17_1736"></a>
2005-01-17 17:36 Ralph Giles</strong></p>
<blockquote>
<pre>
Add new files to the documentation listing.</pre>
<p>[doc/Develop.htm 1.144, doc/Psfiles.htm 1.58]</p>
</blockquote>
<p><strong><a name="2005-01-17_1458"></a>
2005-01-17 14:58 Igor Melichev</strong></p>
<blockquote>
<pre>
(pdfwrite) : Don't skip white color while painting a pattern.
DETAILS :
Bug 687890 "pattern misconverted".
1. Don't skip white color while painting a pattern (gdevpdfd.c).
2. The "%PDF-" file tag was erroneusely written into the pattern stream (gdevpdfu.c).
EXPECTED DIFFERENCES :
None.</pre>
<p>[src/gdevpdfd.c 1.42, src/gdevpdfu.c 1.63]</p>
</blockquote>
<p><strong><a name="2005-01-13_1707"></a>
2005-01-13 17:07 Igor Melichev</strong></p>
<blockquote>
<pre>
(ps2write) : Convert unsupported font types into bitmap fonts (continued).
DETAILS :
This patch is a part of ps2write project.
It has no effect with "usual" invocation of Ghostscript.
1. A code for setting the device parameter HaveCIDSystem was missed from the last patch.
Adding it now.
2. Replace a magic constant with a meanful name psdf_version_ll3.
EXPECTED DIFFERENCES :
None.</pre>
<p>[src/gdevpdfp.c 1.42, src/gdevpsdf.h 1.25]</p>
</blockquote>
<p><strong><a name="2005-01-13_1658"></a>
2005-01-13 16:58 Igor Melichev</strong></p>
<blockquote>
<pre>
(ps2write) : Convert unsupported font types into bitmap fonts.
DETAILS :
This patch is a part of ps2write project.
It has no effect with "usual" invocation of Ghostscript.
1. If the target device doesn't support Postscript version 2010,
convert Type 42 fonts into bitmap fonts.
2. Ever convert Type1C into bitmaps since Postscript
level 2 can't handle Type 2 charstrings.
3. Convert CIDFontType0 into bitmap if the target device has no
CID system installed or the font has Type 2 subfonts.
4. Convert CIDFontType2 into bitmap if the target device has no
CID system installed or it doesn't support Postscript version 2010.
5. A new device parameter HaveCIDSystem is defined to the pdfwrite device
to provide information for (3), (4).
A new function gs_cid0_has_type2 is defined to implement (3).
Also fixed a header comment gs_cid0_indexed_font, which was entirely wrong.
EXPECTED DIFFERENCES :
None.</pre>
<p>[src/gdevpdtt.c 1.98, src/gdevpsdf.h 1.24, src/gsfcid.c 1.14, src/gxfcid.h 1.14]</p>
</blockquote>
<p><strong><a name="2005-01-13_1226"></a>
2005-01-13 12:26 Igor Melichev</strong></p>
<blockquote>
<pre>
(ps2write) : Require lesser encoding resources.
DETAILS :
This patch is a part of ps2write project.
It has no effect with "usual" invocation of Ghostscript.
1. Defined a new device parameter PSVersion to the pdfwrite device.
It is being ignored without OrderResources.
Reserved for future development.
2. pdf_refine_encoding_index allows lesser encodings with OrderResources.
3. MacRomanEncoding and MacGlyphEncoding are still needed for True Type fonts.
Their access has been simplified in lib/opdfread.ps, lib/opdfrerh.ps .
4. Created gs/lib/ps2write.bat to simplify the further maintenance
of the file list to be concatenated.
EXPECTED DIFFERENCES :
None.</pre>
<p>[src/gdevpdfp.c 1.41, src/gdevpdtt.c 1.97, src/gdevpsdf.h 1.23, lib/opdfread.ps 1.36, lib/opdfrerh.ps 1.2, lib/ps2write.bat 1.1]</p>
</blockquote>
<p><strong><a name="2005-01-12_1846"></a>
2005-01-12 18:46 Ralph Giles</strong></p>
<blockquote>
<pre>
Update broken Adobe documentation links. Closes bug 687892.</pre>
<p>[doc/Ps2epsi.htm 1.37, doc/Ps2pdf.htm 1.75, doc/Readme.htm 1.62, doc/Use.htm 1.126]</p>
</blockquote>
<p><strong><a name="2005-01-12_1802"></a>
2005-01-12 18:02 Ralph Giles</strong></p>
<blockquote>
<pre>
Correct a typo in the installation file list. Closes bug 687891.</pre>
<p>[src/unixinst.mak 1.38]</p>
</blockquote>
<p><strong><a name="2005-01-12_1023"></a>
2005-01-12 10:23 Igor Melichev</strong></p>
<blockquote>
<pre>
(ps2write) : Provide a compatibility to Adobe CPSI.
DETAILS :
This patch is a part of ps2write project.
It has no effect with "regular" invocation.
1. Defined an error handler and necessary GS-specific operators in a new file opdfrerh.ps .
2. Defined the missed debug switch TTFDEBUG.
3. Defined a debug printing 'printdict', 'printfont'.
4. Fixed an unconformity in FunctionToProc4 with 'run'.
5. Fixed an unconformity: encoding must not be packed arrays ('packedarray' in opdfrerh.ps).
A minor massive change : inserted a space between '=' to
distinguish temporary and permanent debug printing.
EXPECTED DIFFERENCES :
None.</pre>
<p>[lib/opdfread.ps 1.35, lib/opdfrerh.ps 1.1]</p>
</blockquote>
<p><strong><a name="2005-01-12_1009"></a>
2005-01-12 10:09 Igor Melichev</strong></p>
<blockquote>
<pre>
Fix (pdfwrite) : Wrong options were passed to psf_write_type1_font.
DETAILS :
This patch is a part of ps2write project.
It has no effect with "regular" invocation (when OrderResources=false).
EXPECTED DIFFERENCES :
None.</pre>
<p>[src/gdevpdtb.c 1.31]</p>
</blockquote>
<p><strong><a name="2005-01-11_1234"></a>
2005-01-11 12:34 Igor Melichev</strong></p>
<blockquote>
<pre>
[Log message beg]
Fix : Unimplemented CIDFont feature with a Type 3 font descendent (continued).
DETAILS :
This is a partial fix for the bug 687875
"pdfwrite : Type 0 FMapType 9 font with a Type 3 descendent converts to bitmaps".
The old code created two fonts and duplicated the text.
With this path the font still converts to bitmaps,
but the text duplication is fixed.
EXPECTED DIFFERENCES :
pdfwrite Bug687845.ps</pre>
<p>[src/gdevpdtt.c 1.96]</p>
</blockquote>
<p><strong><a name="2005-01-10_1454"></a>
2005-01-10 14:54 Alex Cherepanov</strong></p>
<blockquote>
<pre>
Ignore / as a name of BaseEncoding; recover broken PDF files generated
by J.D.Edwards OneWorld (B7333).
Fix bug 687786 from customer 220.</pre>
<p>[lib/pdf_font.ps 1.74]</p>
</blockquote>
<p><strong><a name="2005-01-10_1433"></a>
2005-01-10 14:33 Igor Melichev</strong></p>
<blockquote>
<pre>
Fix (the new filling algorithm) : Prevent painting outside the clipping box.
DETAILS :
Bug 687872 "access violation in GS 8.50".
When a trapesoid degenerates to a rectangle,
the old code wrongly truncated it with the clipping box.
Minor change : Moved ybot, ytop definitions closer to their usage.
Due to another known bug 687717, this patch may sometimes cause a regression,
which looks as another missed pixel at a path's Y extreme.
Such regression, when it appears with this patch,
to be considered as a part of the problem 687717.
Expected differences are such cases.
EXPECTED DIFFERENCES :
Normal, 300 dpi :
"Clarke Tate Manns Chinese.ai"
"doretree.ps"
"gs5.98-dragon.pdf"
"gs6.0-dragon.pdf"
"QA_Inv.pdf"
"shading_prob_800.ps"
pdfwrite 300 dpi :
"doretree.ps"
"gs5.98-dragon.pdf"
"gs6.0-dragon.pdf"
"QA_Inv.pdf"</pre>
<p>[src/gxfilltr.h 1.11]</p>
</blockquote>
<p><strong><a name="2005-01-10_1132"></a>
2005-01-10 11:32 Igor Melichev</strong></p>
<blockquote>
<pre>
Fix : CDevProc|Metrics|Metrics2 did not work with CIDFontType 0 (continued 2).
DETAILS :
Bug 687832 (PDF interpreter) : CID Font in PDF
The CDevProc output was transformed with w CID font leaf's FontMatrix.
See comment in code.
EXPECTED DIFFERENCES :
None.</pre>
<p>[src/gxchar.c 1.44]</p>
</blockquote>
<p><strong><a name="2005-01-06_1745"></a>
2005-01-06 17:45 Ray Johnston</strong></p>
<blockquote>
<pre>
Fix for possibly non-compliant PDF where the /DecodeParms for a stream is
an array, but the /F consists of a single filter name. Bug 687861 for
customer 700.</pre>
<p>[lib/pdf_base.ps 1.45]</p>
</blockquote>
<p><strong><a name="2004-12-25_1049"></a>
2004-12-25 10:49 Alex Cherepanov</strong></p>
<blockquote>
<pre>
Search the whole PDF file for the last occurrence of %%EOF string starting
from the last 1024 bytes. Following Acrobat example, accept invalid PDF files
that have large number of junk bytes at the end.
Fix bug 687474 from customer 580.</pre>
<p>[lib/pdf_main.ps 1.89]</p>
</blockquote>
<p><strong><a name="2004-12-23_2348"></a>
2004-12-23 23:48 Igor Melichev</strong></p>
<blockquote>
<pre>
Fix : CDevProc|Metrics|Metrics2 did not work with CIDFontType 0 (continued).
DETAILS :
Bug 687846 "parenthesis misplaced and text strings too long with vertical text".
The bug title is mosleading - actually all glyphs were shifted,
but parenthesis were shifted in another direction due to a different WMode.
We didn't pass actual glyph width to CDevProc when
use_FontBBox_as_Metrics2 is true - see the patch.
I reacll that I wrote this portion of code from scratch 3 years ago.
Our test base did not include test cases for it.
Now we got one.
EXPECTED DIFFERENCES :
None.</pre>
<p>[src/zchar1.c 1.43]</p>
</blockquote>
<p><strong><a name="2004-12-22_1852"></a>
2004-12-22 18:52 Igor Melichev</strong></p>
<blockquote>
<pre>
Fix : Unimplemented CIDFont feature with a Type 3 font descendent.
DETAILS :
Bug 645316 Quark EPS file with CID fonts
Bug 687845 text doesn't appear from embedded japanese font
Bug 687847 text missing from CIDFont
From PLRM3 section 5.11 page 389 :
Under special conditions, a CID can be used when the descendant is a Type 3
base font. The font's BuildGlyph or BuildChar procedure is invoked to render a
character whose code is the last byte originally extracted from the show string.
If this procedure executes setfont to establish a CIDFont as the current font
and then executes a show operation on a string consisting of just that character
code, the code is ignored; instead, the CID determined by the earlier CMap
mapping is used to look up the glyph in the CIDFont. This special case exists
for compatibility with applications that substitute Type 3 fonts for base fonts
in a composite font hierarchy to achieve certain special effects.
This patch fixes the PS interpreter,
but pdfwrite processing needs a separate improvement,
which is described in the new bug 687875.
EXPECTED DIFFERENCES :
None.</pre>
<p>[src/gstext.c 1.19, src/gxtext.h 1.16, src/int.mak 1.133, src/zchar.c 1.16]</p>
</blockquote>
<p><strong><a name="2004-12-21_2013"></a>
2004-12-21 20:13 Igor Melichev</strong></p>
<blockquote>
<pre>
Fix (TT interpreter) : Provide a tolerance to the FDef array overflow.
DETAILS :
Bug 687858 /invalidfont in --charpath--.
A buggy TT fopnt defines more functions than the max profile specifies.
EXPECTED DIFFERENCES :
None.</pre>
<p>[src/ttobjs.c 1.9]</p>
</blockquote>
<p><strong><a name="2004-12-21_1127"></a>
2004-12-21 11:27 Igor Melichev</strong></p>
<blockquote>
<pre>
Fix (PDF interpreter) : The interpretation must not depend on the font subset prefix.
DETAILS :
Bug 687856 "PDF interpretation depends on the font subset prefix.".
1. Remaned pdfcachefont into pdffindcachedfont for a better reflection of its function.
2. Defined pdfaddcachedfont.
3. Used it immediately when an embedded font is loaded.
4. Added a comment to code. See it for more details.
EXPECTED DIFFERENCES :
pdfwrite tpc2.ps</pre>
<p>[lib/pdf_font.ps 1.73]</p>
</blockquote>
<p><strong><a name="2004-12-21_0853"></a>
2004-12-21 08:53 Igor Melichev</strong></p>
<blockquote>
<pre>
Fix (pdfwrite) : Propagate error code from setup_image_compression.
DETAILS :
Bug 687854 "-dAutoFilterColorImages=false -dColorImageFilter=/FlateEncode" doesn't work .
EXPECTED DIFFERENCES :
None.</pre>
<p>[src/gdevpsdi.c 1.32]</p>
</blockquote>
<p><strong><a name="2004-12-20_2235"></a>
2004-12-20 22:35 Igor Melichev</strong></p>
<blockquote>
<pre>
Fix : Targets gconfxx.h and ld.tr had an incorrect dependence in the makefile.
DETAILS :
Bug 687059 "Re-building a ready gswin32.exe".
The old rule
$(ld_tr) : $(gconfig_h)
wrongly established a dependence opposite to the file modification order.
Diagnosed with inserting "echo xxxxxxxxxxx" after the rule above.
Made the order of targets to be same as the order of
file modifications when they are created with genconf.exe and echogs.exe .
EXPECTED DIFFERENCES :
None.</pre>
<p>[src/gs.mak 1.30]</p>
</blockquote>
<p><strong><a name="2004-12-20_2222"></a>
2004-12-20 22:22 Igor Melichev</strong></p>
<blockquote>
<pre>
Fix : Restore missed dependencies on gconfxx.h .
DETAILS :
This is a preparation for fixing the bug
Bug 687059 "Re-building a ready gswin32.exe".
We prefer to commit it separately, since it's definitely an independent bug.
EXPECTED DIFFERENCES :
None.</pre>
<p>[src/int.mak 1.132, src/lib.mak 1.204]</p>
</blockquote>
<p><strong><a name="2004-12-20_2217"></a>
2004-12-20 22:17 Igor Melichev</strong></p>
<blockquote>
<pre>
Fix : Completely remove the platform dependent target lib.tr from makefiles.
DETAILS :
This is a preparation for fixing the bug
Bug 687059 "Re-building a ready gswin32.exe".
The file lib.tr was created for old linkers,
which can't handle objs and libs in a single list file.
This change affects FAPI, which only uses a list of libs,
and only on Windows and OS/2 platforms.
We did not test Borland and Watcom compilers,
but unlikely FAPI is compiled with them.
EXPECTED DIFFERENCES :
None.</pre>
<p>[src/bcwin32.mak 1.36, src/genconf.c 1.10, src/gs.mak 1.29, src/msvc32.mak 1.69, src/msvccmd.mak 1.24, src/msvclib.mak 1.29, src/os2.mak 1.44, src/watcw32.mak 1.33, src/winint.mak 1.24]</p>
</blockquote>
<p><strong><a name="2004-12-19_1724"></a>
2004-12-19 17:24 Igor Melichev</strong></p>
<blockquote>
<pre>
Fix (pdfwrite) : The "NeverEmbed" logics was broken (continued 2).
DETAILS :
Bug 687836 "Crash with -dNeverEmbed".
Fixes a cast in the previous patch.
EXPECTED DIFFERENCES :
None.</pre>
<p>[src/gdevpdtd.c 1.20]</p>
</blockquote>
<p><strong><a name="2004-12-19_1719"></a>
2004-12-19 17:19 Igor Melichev</strong></p>
<blockquote>
<pre>
Fix (pdfwrite) : The "NeverEmbed" logics was broken (continued).
DETAILS :
Bug 687836 "Crash with -dNeverEmbed".
Fixes 'const' in the previous patch.
EXPECTED DIFFERENCES :
None.</pre>
<p>[src/gdevpdtd.c 1.19]</p>
</blockquote>
<p><strong><a name="2004-12-19_1710"></a>
2004-12-19 17:10 Igor Melichev</strong></p>
<blockquote>
<pre>
Fix (pdfwrite) : The "NeverEmbed" logics was broken.
DETAILS :
Bug 687836 "Crash with -dNeverEmbed".
It was an inaccuracy (incomplete testing) when implementing
PDFW_DELAYED_STREAMS for the ps2write project.
EXPECTED DIFFERENCES :
None.</pre>
<p>[src/gdevpdtd.c 1.18]</p>
</blockquote>
<p><strong><a name="2004-12-17_2057"></a>
2004-12-17 20:57 Ray Johnston</strong></p>
<blockquote>
<pre>
Fix for invalid (zero width) BBox in PDF Form Xobject or Annotation.
Bug 687862 for customer 770.</pre>
<p>[lib/pdf_draw.ps 1.89]</p>
</blockquote>
<p><strong><a name="2004-12-16_1234"></a>
2004-12-16 12:34 Igor Melichev</strong></p>
<blockquote>
<pre>
Fix (PDF interpreter) : Prefer 'post' to cmap 1.0, because obsolete PDF writers misuse the latter.
DETAILS :
Bug 687828 "pages retain some of earlier pages displayed/"
The bug title above is misleading.
Real problem is missing characters and rendering .notdef instead.
This patch improves hewristics for choosing an encoding
for True Type fonts. Obsolete versions of Distiller and Ghostscript
wrote a cmap 1.0 (Macintosh Roman) into a PDF, which really uses a
random encoding. For example, the test case of the bug 687828
encodes Arabian characters with cmap 1.0.
Thits patch prefers to use 'post' table instead cmap 1.0,
when a 'post' table presents, and font resource dictionary
doesn't specify Encoding.
Also improved a debug printing.
EXPECTED DIFFERENCES :
None.</pre>
<p>[lib/gs_ttf.ps 1.40, lib/gs_typ42.ps 1.7]</p>
</blockquote>
<p><strong><a name="2004-12-15_2321"></a>
2004-12-15 23:21 Igor Melichev</strong></p>
<blockquote>
<pre>
Fix : A hang adding over 256 glyphs for a stable font copy.
DETAILS :
Bug 687816 "Hang in named_glyph_slot_hashed".
1. Added gs_copied_font_data_s::num_glyphs to monitor
the current number of glyphs in a stable font copy (gxfcopy.c).
2. copy_glyph_data maintains gs_copied_font_data_s::num_glyphs (gxfcopy.c).
3. gs_copied_can_copy_glyphs checks whether the preallocated
size of the glyphs array doesn't exceed (gxfcopy.c).
4. copy_glyph_data is fixed to return error code when
trying to add a glyph over the preallocated size of the glyphs array (gxfcopy.c).
5. pdf_obtain_font_resource_encoded is changed to handle the case when
new glyphs overflow the font copy (gdevpdtt.c).
The changes above fix the bug, but we also provide an additional optimization
with GLYPHS_SIZE_IS_PRIME 1 (gxfcopy.c):
6. Preallocate at least 257 ghyphs rather than 256 ones by the old code;
This coners a font of 256 glyphs and 1 .notdef (gxfcopy.c).
(Well, that could fix the hang in the sample case of the bug 687816,
but generally there exist other cases due to the font merging,
which require the changes 1-5 above.
7. Use primes numbers for the size of glyphs array instead powers of 2
against unprodactive expense of RAM (gxfcopy.c).
When the changes 5 was done, a regression happened with tpc2.ps :
pdfwrite generated an incorrect PDF. To fix that, we forced to do more changes :
8. pdf_register_charproc_font recieved a gs_id of the PS font instead
the PDF object id. It caused a problem with multiple muster fonts,
because MM instances have same id as the MM font.
pdf_encode_string is changed to pass a correct resource id (gdevpdte.c),
9. Since tpc2.ps generates hundreds of MM font instances, the field
pdf_font_resource_s::u.s.used_fonts may not have a staticly defined size.
replaced with a dynamicly allocated array (gdevpdtf.h, gdevpdte.c).
10. Garbager descriptor for pdf_font_resource_s is changed to maintain (9).
11. A new function pdf_find_resource_by_resource_id is defined for
the correct implementation of pdf_used_charproc_fonts (gdevpdfu.c).
After it another tpc2.ps regression persisted : the character 'y'
dissapperaed in some words. The following changes are done to fix that :
12. Improved thge hash function in pdf_add_subset_prefix (gdevpdtb.c).
13. Defined FINE_GLYPH_USAGE 1 for a better precision of the font subset,
in the case when a PS interpreter callout happens fro CDevProc or for a Type 3 BuildChar
(gdevpdfx.h, gdevpdte.c). Currently it works for non-CID fonts only.
14. Improved the diagnistics for the missed glyph in a Type 1 font (gs_type1.ps).
Actually the last regression reflects another problem in the PDF interpreter,
which is described in a new bug 687856.
EXPECTED DIFFERENCES :
pdfwrite :
test-setweightvector.ps
tpc2.ps
The distilled tpc2.ps gets 1 progression and 1 regression.
The progression is the glyph width. The regression is an ununiform
stem width while rendering the PDF due to problem in the PDF interpreter.
We describe that problem in the new bug 687857.</pre>
<p>[src/gdevpdfu.c 1.62, src/gdevpdfx.h 1.104, src/gdevpdtb.c 1.30, src/gdevpdte.c 1.66, src/gdevpdtf.c 1.41, src/gdevpdtf.h 1.26, src/gdevpdtt.c 1.95, src/gxfcopy.c 1.55, lib/gs_type1.ps 1.16]</p>
</blockquote>
<p><strong><a name="2004-12-14_1242"></a>
2004-12-14 12:42 Igor Melichev</strong></p>
<blockquote>
<pre>
Fix : gs_function_is_monotonic computed an unused auxiliary result (continued 5).
DETAILS :
Interval boundaries for subfunctions of a stitching function got an
artithmetic error, which caused the interval to move outside the
subfunction domain. Bug 687840 "/rangecheck in --fill--".
The effect only appeared with MSVC6 release build.
The hunk #2 of this patch fixes the particular problem, but
we prefer to provide a better safety with the hunk #3.
EXPECTED DIFFERENCES :
None.</pre>
<p>[src/gsfunc3.c 1.23]</p>
</blockquote>
<p><strong><a name="2004-12-14_0932"></a>
2004-12-14 09:32 Igor Melichev</strong></p>
<blockquote>
<pre>
Fix (TT grid fitting) : An assertion failed in the spot analyzer (continued).
DETAILS :
A condition for a stem prolongation was too weak.
Bug 687823 "assert in gzspotan.c with ttcf2cid font".
This re-applies the resent patch, which was reverted before 8.50 release. See
http://ghostscript.com/pipermail/gs-cvs/2004-December/005087.html
http://ghostscript.com/pipermail/gs-cvs/2004-December/005091.html
EXPECTED DIFFERENCES :
The list of differences, which are caused by the patch, is applied below.
Meanwhile the baseline was already upgraded with them :
http://ghostscript.com/pipermail/gs-regression/2004-December/001324.html,
and then the patch was reverted. When the patch was reverted,
the reverse difference should have appeared in the regression report,
but it did not appear for an unclear reason.
72dpi :
01_001.pdf
159.pdf
289-01.ps
adesso7.pdf
adesso8.pdf
Altona.Page_3.2002-09-27.pdf
Altona_Technical_1v1_x3.pdf
Bug687603.ps
Bug687724.pdf
bugsample.pdf
CAIB_highres_page4.pdf
Faktura.pdf
fonts.pdf
japan.ps
keyboard.pdf
korea.ps
STEUER-RollingMesh 1(linear).ai
STEUER-RollingMesh 2(radial).ai
STEUER-RollingMesh 3(Final).ai
Testform.v1.0.2.pdf
type42_glyph_index.ps
normal, 300dpi :
01_001.pdf
159.pdf
289-01.ps
adesso2.pdf
adesso8.pdf
Altona.Page_3.2002-09-27.pdf
Altona_Technical_1v1_x3.pdf
Bug687603.ps
Bug687724.pdf
bugsample.pdf
CAIB_highres_page4.pdf
Faktura.pdf
fonts.pdf
japan.ps
keyboard.pdf
korea.ps
STEUER-RollingMesh 1(linear).ai
STEUER-RollingMesh 2(radial).ai
STEUER-RollingMesh 3(Final).ai
Testform.v1.0.2.pdf
pdfwrite 300 dpi :
01_001.pdf
159.pdf
adesso2.pdf
adesso8.pdf
Altona.Page_3.2002-09-27.pdf
Altona_Technical_1v1_x3.pdf
Bug687603.ps
Bug687724.pdf
bugsample.pdf
CAIB_highres_page4.pdf
Faktura.pdf
fonts.pdf
japan.ps
keyboard.pdf
korea.ps
shading_prob_800.ps
STEUER-RollingMesh 1(linear).ai
STEUER-RollingMesh 2(radial).ai
STEUER-RollingMesh 3(Final).ai
Testform.v1.0.2.pdf</pre>
<p>[src/gzspotan.c 1.13]</p>
</blockquote>
<p><strong><a name="2004-12-13_1754"></a>
2004-12-13 17:54 Ralph Giles</strong></p>
<blockquote>
<pre>
Bump the version after the 8.50 release.</pre>
<p>[lib/gs_init.ps 1.116, src/gscdef.c 1.52, src/version.mak 1.80]</p>
</blockquote>
</body>
</html>
|