aboutsummaryrefslogtreecommitdiff
path: root/doc/notes.v210
blob: 41eec3c8ce101fea890c0e2675e5fc70e359e330 (plain) (blame)
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
5030
5031
5032
5033
5034
5035
5036
5037
5038
5039
5040
5041
5042
5043
5044
5045
5046
5047
5048
5049
5050
5051
5052
5053
5054
5055
5056
5057
5058
5059
5060
5061
5062
5063
5064
5065
5066
5067
5068
5069
5070
5071
5072
5073
5074
5075
5076
5077
5078
5079
5080
5081
5082
5083
5084
5085
5086
5087
5088
5089
5090
5091
5092
5093
5094
5095
5096
5097
5098
5099
5100
5101
5102
5103
5104
5105
5106
5107
5108
5109
5110
5111
5112
5113
5114
5115
5116
5117
5118
5119
5120
5121
5122
5123
5124
5125
5126
5127
5128
5129
5130
5131
5132
5133
5134
5135
5136
5137
5138
5139
5140
5141
5142
5143
5144
5145
5146
5147
5148
5149
5150
5151
5152
5153
5154
5155
5156
5157
5158
5159
5160
5161
5162
5163
5164
5165
5166
5167
5168
5169
5170
5171
5172
5173
5174
5175
5176
5177
5178
5179
5180
5181
5182
5183
5184
5185
5186
5187
5188
5189
5190
5191
5192
5193
5194
5195
5196
5197
5198
5199
5200
5201
5202
5203
5204
5205
5206
5207
5208
5209
5210
5211
5212
5213
5214
5215
5216
5217
5218
5219
5220
5221
5222
5223
5224
5225
5226
5227
5228
5229
5230
5231
5232
5233
5234
5235
5236
5237
5238
5239
5240
5241
5242
5243
5244
5245
5246
5247
5248
5249
5250
5251
5252
5253
5254
5255
5256
5257
5258
5259
5260
5261
5262
5263
5264
5265
5266
5267
5268
5269
5270
5271
5272
5273
5274
5275
5276
5277
5278
5279
5280
5281
5282
5283
5284
5285
5286
5287
5288
5289
5290
5291
5292
5293
5294
5295
5296
5297
5298
5299
5300
5301
5302
5303
5304
5305
5306
5307
5308
5309
5310
5311
5312
5313
5314
5315
5316
5317
5318
5319
5320
5321
5322
5323
5324
5325
5326
5327
5328
5329
5330
5331
5332
5333
5334
5335
5336
5337
5338
5339
5340
5341
5342
5343
5344
5345
5346
5347
5348
5349
5350
5351
5352
5353
5354
5355
5356
5357
5358
5359
5360
5361
5362
5363
5364
5365
5366
5367
5368
5369
5370
5371
5372
5373
5374
5375
5376
5377
5378
5379
5380
5381
5382
5383
5384
5385
5386
5387
5388
5389
5390
5391
5392
5393
5394
5395
5396
5397
5398
5399
5400
5401
5402
5403
5404
5405
5406
5407
5408
5409
5410
5411
5412
5413
5414
5415
5416
5417
5418
5419
5420
5421
5422
5423
5424
5425
5426
5427
5428
5429
5430
5431
5432
5433
5434
5435
5436
5437
5438
5439
5440
5441
5442
5443
5444
5445
5446
5447
5448
5449
5450
5451
5452
5453
5454
5455
5456
5457
5458
5459
5460
5461
5462
5463
5464
5465
5466
5467
5468
5469
5470
5471
5472
5473
5474
5475
5476
5477
5478
5479
5480
5481
5482
5483
5484
5485
5486
5487
5488
5489
5490
5491
5492
5493
5494
5495
5496
5497
5498
5499
5500
5501
5502
5503
5504
5505
5506
5507
5508
5509
5510
5511
5512
5513
5514
5515
5516
5517
5518
5519
5520
5521
5522
5523
5524
5525
5526
5527
5528
5529
5530
5531
5532
5533
5534
5535
5536
5537
5538
5539
5540
5541
5542
5543
5544
5545
5546
5547
5548
5549
5550
5551
5552
5553
5554
5555
5556
5557
5558
5559
5560
5561
5562
5563
5564
5565
5566
5567
5568
5569
5570
5571
5572
5573
5574
5575
5576
5577
5578
5579
5580
5581
5582
5583
5584
5585
5586
5587
5588
5589
5590
5591
5592
5593
5594
5595
5596
5597
5598
5599
5600
5601
5602
5603
5604
5605
5606
5607
5608
5609
5610
5611
5612
5613
5614
5615
5616
5617
5618
5619
5620
5621
5622
5623
5624
5625
5626
5627
5628
5629
5630
5631
5632
5633
5634
5635
5636
5637
5638
5639
5640
5641
5642
5643
5644
5645
5646
5647
5648
5649
5650
5651
5652
5653
5654
5655
5656
5657
5658
5659
5660
5661
5662
5663
5664
5665
5666
5667
5668
5669
5670
5671
5672
5673
5674
5675
5676
5677
5678
5679
5680
5681
5682
5683
5684
5685
5686
5687
5688
5689
5690
5691
5692
5693
5694
5695
5696
5697
5698
5699
5700
5701
5702
5703
5704
5705
5706
5707
5708
5709
5710
5711
5712
5713
5714
5715
5716
5717
5718
5719
5720
5721
5722
5723
5724
5725
5726
5727
5728
5729
5730
5731
5732
5733
5734
5735
5736
5737
5738
5739
5740
5741
5742
5743
5744
5745
5746
5747
5748
5749
5750
5751
5752
5753
5754
5755
5756
5757
5758
5759
5760
5761
5762
5763
5764
5765
5766
5767
5768
5769
5770
5771
5772
5773
5774
5775
5776
5777
5778
5779
5780
5781
5782
5783
5784
5785
5786
5787
5788
5789
5790
5791
5792
5793
5794
5795
5796
5797
5798
5799
5800
5801
5802
5803
5804
5805
5806
5807
5808
5809
5810
5811
5812
5813
5814
5815
5816
5817
5818
5819
5820
5821
5822
5823
5824
5825
5826
5827
5828
5829
5830
5831
5832
5833
5834
5835
5836
5837
5838
5839
5840
5841
5842
5843
5844
5845
5846
5847
5848
5849
5850
5851
5852
5853
5854
5855
5856
5857
5858
5859
5860
5861
5862
5863
5864
5865
5866
5867
5868
5869
5870
5871
5872
5873
5874
5875
5876
5877
5878
5879
5880
5881
5882
5883
5884
5885
5886
5887
5888
5889
5890
5891
5892
5893
5894
5895
5896
5897
5898
5899
5900
5901
5902
5903
5904
5905
5906
5907
5908
5909
5910
5911
5912
5913
5914
5915
5916
5917
5918
5919
5920
5921
5922
5923
5924
5925
5926
5927
5928
5929
5930
5931
5932
5933
5934
5935
5936
5937
5938
5939
5940
5941
5942
5943
5944
5945
5946
5947
5948
5949
5950
5951
5952
5953
5954
5955
5956
5957
5958
5959
5960
5961
5962
5963
5964
5965
5966
5967
5968
5969
5970
5971
5972
5973
5974
5975
5976
5977
5978
5979
5980
5981
5982
5983
5984
5985
5986
5987
5988
5989
5990
5991
5992
5993
5994
5995
5996
5997
5998
5999
6000
6001
6002
6003
6004
6005
6006
6007
6008
6009
6010
6011
6012
6013
6014
6015
6016
6017
6018
6019
6020
6021
6022
6023
6024
6025
6026
6027
6028
6029
6030
6031
6032
6033
6034
6035
6036
6037
6038
6039
6040
6041
6042
6043
6044
6045
6046
6047
6048
6049
6050
6051
6052
6053
6054
6055
6056
6057
6058
6059
6060
6061
6062
6063
6064
6065
6066
6067
6068
6069
6070
6071
6072
6073
6074
6075
6076
6077
6078
6079
6080
6081
6082
6083
6084
6085
6086
6087
6088
6089
6090
6091
6092
6093
6094
6095
6096
6097
6098
6099
6100
6101
6102
6103
6104
6105
6106
6107
6108
6109
6110
6111
6112
6113
6114
6115
6116
6117
6118
6119
6120
6121
6122
6123
6124
6125
6126
6127
6128
6129
6130
6131
6132
6133
6134
6135
6136
6137
6138
6139
6140
6141
6142
6143
6144
6145
6146
6147
6148
6149
6150
6151
6152
6153
6154
6155
6156
6157
6158
6159
6160
6161
6162
6163
6164
6165
6166
6167
6168
6169
6170
6171
6172
6173
6174
6175
6176
6177
6178
6179
6180
6181
6182
6183
6184
6185
6186
6187
6188
6189
6190
6191
6192
6193
6194
6195
6196
6197
6198
6199
6200
6201
6202
6203
6204
6205
6206
6207
6208
6209
6210
6211
6212
6213
6214
6215
6216
6217
6218
6219
6220
6221
6222
6223
6224
6225
6226
6227
6228
6229
6230
6231
6232
6233
6234
6235
6236
6237
6238
6239
6240
6241
6242
6243
6244
6245
6246
6247
6248
6249
6250
6251
6252
6253
6254
6255
6256
6257
6258
6259
6260
6261
6262
6263
6264
6265
6266
6267
6268
6269
6270
6271
6272
6273
6274
6275
6276
6277
6278
6279
6280
6281
6282
6283
6284
6285
6286
6287
6288
6289
6290
6291
6292
6293
6294
6295
6296
6297
6298
6299
6300
6301
6302
6303
6304
6305
6306
6307
6308
6309
6310
6311
6312
6313
6314
6315
6316
6317
6318
6319
6320
6321
6322
6323
6324
6325
6326
6327
6328
6329
6330
6331
6332
6333
6334
6335
6336
6337
6338
6339
6340
6341
6342
6343
6344
6345
6346
6347
6348
6349
6350
6351
6352
6353
6354
6355
6356
6357
6358
6359
6360
6361
6362
6363
6364
6365
6366
6367
6368
6369
6370
6371
6372
6373
6374
6375
6376
6377
6378
6379
6380
6381
6382
6383
6384
6385
6386
6387
6388
6389
6390
6391
6392
6393
6394
6395
6396
6397
6398
6399
6400
6401
6402
6403
6404
6405
6406
6407
6408
6409
6410
6411
6412
6413
6414
6415
6416
6417
6418
6419
6420
6421
6422
6423
6424
6425
6426
6427
6428
6429
6430
6431
6432
6433
6434
6435
6436
6437
6438
6439
6440
6441
6442
6443
6444
6445
6446
6447
6448
6449
6450
6451
6452
6453
6454
6455
6456
6457
6458
6459
6460
6461
6462
6463
6464
6465
6466
6467
6468
6469
6470
6471
6472
6473
6474
6475
6476
6477
6478
6479
6480
6481
6482
6483
6484
6485
6486
6487
6488
6489
6490
6491
6492
6493
6494
6495
6496
6497
6498
6499
6500
6501
6502
6503
6504
6505
6506
6507
6508
6509
6510
6511
6512
6513
6514
6515
6516
6517
6518
6519
6520
6521
6522
6523
6524
6525
6526
6527
6528
6529
6530
6531
6532
6533
6534
6535
6536
6537
6538
6539
6540
6541
6542
6543
6544
6545
6546
6547
6548
6549
6550
6551
6552
6553
6554
6555
6556
6557
6558
6559
6560
6561
6562
6563
6564
6565
6566
6567
6568
6569
6570
6571
6572
6573
6574
6575
6576
6577
6578
6579
6580
6581
6582
6583
6584
6585
6586
6587
6588
6589
6590
6591
6592
6593
6594
6595
6596
6597
6598
6599
6600
6601
6602
6603
6604
6605
6606
6607
6608
6609
6610
6611
6612
6613
6614
6615
6616
6617
6618
6619
6620
6621
6622
6623
6624
6625
6626
6627
6628
6629
6630
6631
6632
6633
6634
6635
6636
6637
6638
6639
6640
6641
6642
6643
6644
6645
6646
6647
6648
6649
6650
6651
6652
6653
6654
6655
6656
6657
6658
6659
6660
6661
6662
6663
6664
6665
6666
6667
6668
6669
6670
6671
6672
6673
6674
6675
6676
6677
6678
6679
6680
6681
6682
6683
6684
6685
6686
6687
6688
6689
6690
6691
6692
6693
6694
6695
6696
6697
6698
6699
6700
6701
6702
6703
6704
6705
6706
6707
6708
6709
6710
6711
6712
6713
6714
6715
6716
6717
6718
6719
6720
6721
6722
6723
6724
6725
6726
6727
6728
6729
6730
6731
6732
6733
6734
6735
6736
6737
6738
6739
6740
6741
6742
6743
6744
6745
6746
6747
6748
6749
6750
6751
6752
6753
6754
6755
6756
6757
6758
6759
6760
6761
6762
6763
6764
6765
6766
6767
6768
6769
6770
6771
6772
6773
6774
6775
6776
6777
6778
6779
6780
6781
6782
6783
6784
6785
6786
6787
6788
6789
6790
6791
6792
6793
6794
6795
6796
6797
6798
6799
6800
6801
6802
6803
6804
6805
6806
6807
6808
6809
6810
6811
6812
6813
6814
6815
6816
6817
6818
6819
6820
6821
6822
6823
6824
6825
6826
6827
6828
6829
6830
6831
6832
6833
6834
6835
6836
6837
6838
6839
6840
6841
6842
6843
6844
6845
6846
6847
6848
6849
6850
6851
6852
6853
6854
6855
6856
6857
6858
6859
6860
6861
6862
6863
6864
6865
6866
6867
6868
6869
6870
6871
6872
6873
6874
6875
6876
6877
6878
6879
6880
6881
6882
6883
6884
6885
6886
6887
6888
6889
6890
6891
6892
6893
6894
6895
6896
6897
6898
6899
6900
6901
6902
6903
6904
6905
6906
6907
6908
6909
6910
6911
6912
6913
6914
6915
6916
6917
6918
6919
6920
6921
6922
6923
6924
6925
6926
6927
6928
6929
6930
6931
6932
6933
6934
6935
6936
6937
6938
6939
6940
6941
6942
6943
6944
6945
6946
6947
6948
6949
6950
6951
6952
6953
6954
6955
6956
6957
6958
6959
6960
6961
6962
6963
6964
6965
6966
6967
6968
6969
6970
6971
6972
6973
6974
6975
6976
6977
6978
6979
6980
6981
6982
6983
6984
6985
6986
6987
6988
6989
6990
6991
6992
6993
6994
6995
6996
6997
6998
6999
7000
7001
7002
7003
7004
7005
7006
7007
7008
7009
7010
7011
7012
7013
7014
7015
7016
7017
7018
7019
7020
7021
7022
7023
7024
7025
7026
7027
7028
7029
7030
7031
7032
7033
7034
7035
7036
7037
7038
7039
7040
7041
7042
7043
7044
7045
7046
7047
7048
7049
7050
7051
7052
7053
7054
7055
7056
7057
7058
7059
7060
7061
7062
7063
7064
7065
7066
7067
7068
7069
7070
7071
7072
7073
7074
7075
7076
7077
7078
7079
7080
7081
7082
7083
7084
7085
7086
7087
7088
7089
7090
7091
7092
7093
7094
7095
7096
7097
7098
7099
7100
7101
7102
7103
7104
7105
7106
7107
7108
7109
7110
7111
7112
7113
7114
7115
7116
7117
7118
7119
7120
7121
7122
7123
7124
7125
7126
7127
7128
7129
7130
7131
7132
7133
7134
7135
7136
7137
7138
7139
7140
7141
7142
7143
7144
7145
7146
7147
7148
7149
7150
7151
7152
7153
7154
7155
7156
7157
7158
7159
7160
7161
7162
7163
7164
7165
7166
7167
7168
7169
7170
7171
7172
7173
7174
7175
7176
7177
7178
7179
7180
7181
7182
7183
7184
7185
7186
7187
7188
7189
7190
7191
7192
7193
7194
7195
7196
7197
7198
7199
7200
7201
7202
7203
7204
7205
7206
7207
7208
7209
7210
7211
7212
7213
7214
7215
7216
7217
7218
7219
7220
7221
7222
7223
7224
7225
7226
7227
7228
7229
7230
7231
7232
7233
7234
7235
7236
7237
7238
7239
7240
7241
7242
7243
7244
7245
7246
7247
7248
7249
7250
7251
7252
7253
7254
7255
7256
7257
7258
7259
7260
7261
7262
7263
7264
7265
7266
7267
7268
7269
7270
7271
7272
7273
7274
7275
7276
7277
7278
7279
7280
7281
7282
7283
7284
7285
7286
7287
7288
7289
7290
7291
7292
7293
7294
7295
7296
7297
7298
7299
7300
7301
7302
7303
7304
7305
7306
7307
7308
7309
7310
7311
7312
7313
7314
7315
7316
7317
7318
7319
7320
7321
7322
7323
7324
7325
7326
7327
7328
7329
7330
7331
7332
7333
7334
7335
7336
7337
7338
7339
7340
7341
7342
7343
7344
7345
7346
7347
7348
7349
7350
7351
7352
7353
7354
7355
7356
7357
7358
7359
7360
7361
7362
7363
7364
7365
7366
7367
7368
7369
7370
7371
7372
7373
7374
7375
7376
7377
7378
7379
7380
7381
7382
7383
7384
7385
7386
7387
7388
7389
7390
7391
7392
7393
7394
7395
7396
7397
7398
7399
7400
7401
7402
7403
7404
7405
7406
7407
7408
7409
7410
7411
7412
7413
7414
7415
7416
7417
7418
7419
7420
7421
7422
7423
7424
7425
7426
7427
7428
7429
7430
7431
7432
7433
7434
7435
7436
7437
7438
7439
7440
7441
7442
7443
7444
7445
7446
7447
7448
7449
7450
7451
7452
7453
7454
7455
7456
7457
7458
7459
7460
7461
7462
7463
7464
7465
7466
7467
7468
7469
7470
7471
7472
7473
7474
7475
7476
7477
7478
7479
7480
7481
7482
7483
7484
7485
7486
7487
7488
7489
7490
7491
7492
7493
7494
7495
7496
7497
7498
7499
7500
7501
7502
7503
7504
7505
7506
7507
7508
7509
7510
7511
7512
7513
7514
7515
7516
7517
7518
7519
7520
7521
7522
7523
7524
7525
7526
7527
7528
7529
7530
7531
7532
7533
7534
7535
7536
7537
7538
7539
7540
7541
7542
7543
7544
7545
7546
7547
7548
7549
7550
7551
7552
7553
7554
7555
7556
7557
7558
7559
7560
7561
7562
7563
7564
7565
7566
7567
7568
7569
7570
7571
7572
7573
7574
7575
7576
7577
7578
7579
7580
7581
7582
7583
7584
7585
7586
7587
7588
7589
7590
7591
7592
7593
7594
7595
7596
7597
7598
7599
7600
7601
7602
7603
7604
7605
7606
7607
7608
7609
7610
7611
7612
7613
7614
7615
7616
7617
7618
7619
7620
7621
7622
7623
7624
7625
7626
7627
7628
7629
7630
7631
7632
7633
7634
7635
7636
7637
7638
7639
7640
7641
7642
7643
7644
7645
7646
7647
7648
7649
7650
7651
7652
7653
7654
7655
7656
7657
7658
7659
7660
7661
7662
7663
7664
7665
7666
7667
7668
7669
7670
7671
7672
7673
7674
7675
7676
7677
7678
7679
7680
7681
7682
7683
7684
7685
7686
7687
7688
7689
7690
7691
7692
7693
7694
7695
7696
7697
7698
7699
7700
7701
7702
7703
7704
7705
7706
7707
7708
7709
7710
7711
7712
7713
7714
7715
7716
7717
7718
7719
7720
7721
7722
7723
7724
7725
7726
7727
7728
7729
7730
7731
7732
7733
7734
7735
7736
7737
7738
7739
7740
7741
7742
7743
7744
7745
7746
7747
7748
7749
7750
7751
7752
7753
7754
7755
7756
7757
7758
7759
7760
7761
7762
7763
7764
7765
7766
7767
7768
7769
7770
7771
7772
7773
7774
7775
7776
7777
7778
7779
7780
7781
7782
7783
7784
7785
7786
7787
7788
7789
7790
7791
7792
7793
7794
7795
7796
7797
7798
7799
7800
7801
7802
7803
7804
7805
7806
7807
7808
7809
7810
7811
7812
7813
7814
7815
7816
7817
7818
7819
7820
7821
7822
7823
7824
7825
7826
7827
7828
7829
7830
7831
7832
7833
7834
7835
7836
7837
7838
7839
7840
7841
7842
7843
7844
7845
7846
7847
7848
7849
7850
7851
7852
7853
7854
7855
7856
7857
7858
7859
7860
7861
7862
7863
7864
7865
7866
7867
7868
7869
7870
7871
7872
7873
7874
7875
7876
7877
7878
7879
7880
7881
7882
7883
7884
7885
7886
7887
7888
7889
7890
7891
7892
7893
7894
7895
7896
7897
7898
7899
7900
7901
7902
7903
7904
7905
7906
7907
7908
7909
7910
7911
7912
7913
7914
7915
7916
7917
7918
7919
7920
7921
7922
7923
7924
7925
7926
7927
7928
7929
7930
7931
7932
7933
7934
7935
7936
7937
7938
7939
7940
7941
7942
7943
7944
7945
7946
7947
7948
7949
7950
7951
7952
7953
7954
7955
7956
7957
7958
7959
7960
7961
7962
7963
7964
7965
7966
7967
7968
7969
7970
7971
7972
7973
7974
7975
7976
7977
7978
7979
7980
7981
7982
7983
7984
7985
7986
7987
7988
7989
7990
7991
7992
7993
7994
7995
7996
7997
7998
7999
8000
8001
8002
8003
8004
8005
8006
8007
8008
8009
8010
8011
8012
8013
8014
8015
8016
8017
8018
8019
8020
8021
8022
8023
8024
8025
8026
8027
8028
8029
8030
8031
8032
8033
8034
8035
8036
8037
8038
8039
8040
8041
8042
8043
8044
8045
8046
8047
8048
8049
8050
8051
8052
8053
8054
8055
8056
8057
8058
8059
8060
8061
8062
8063
8064
8065
8066
8067
8068
8069
8070
8071
8072
8073
8074
8075
8076
8077
8078
8079
8080
8081
8082
8083
8084
8085
8086
8087
8088
8089
8090
8091
8092
8093
8094
8095
8096
8097
8098
8099
8100
8101
8102
8103
8104
8105
8106
8107
8108
8109
8110
8111
8112
8113
8114
8115
8116
8117
8118
8119
8120
8121
8122
8123
8124
8125
8126
8127
8128
8129
8130
8131
8132
8133
8134
8135
8136
8137
8138
8139
8140
8141
8142
8143
8144
8145
8146
8147
8148
8149
8150
8151
8152
8153
8154
8155
8156
8157
8158
8159
8160
8161
8162
8163
8164
8165
8166
8167
8168
8169
8170
8171
8172
8173
8174
8175
8176
8177
8178
8179
8180
8181
8182
8183
8184
8185
8186
8187
8188
8189
8190
8191
8192
8193
8194
8195
8196
8197
8198
8199
8200
8201
8202
8203
8204
8205
8206
8207
8208
8209
8210
8211
8212
8213
8214
8215
8216
8217
8218
8219
8220
8221
8222
8223
8224
8225
8226
8227
8228
8229
8230
8231
8232
8233
8234
8235
8236
8237
8238
8239
8240
8241
8242
8243
8244
8245
8246
8247
8248
8249
8250
8251
8252
8253
8254
8255
8256
8257
8258
8259
8260
8261
8262
8263
8264
8265
8266
8267
8268
8269
8270
8271
8272
8273
8274
8275
8276
8277
8278
8279
8280
8281
8282
8283
8284
8285
8286
8287
8288
8289
8290
8291
8292
8293
8294
8295
8296
8297
8298
8299
8300
8301
8302
8303
8304
8305
8306
8307
8308
8309
8310
8311
8312
8313
8314
8315
8316
8317
8318
8319
8320
8321
8322
8323
8324
8325
8326
8327
8328
8329
8330
8331
8332
8333
8334
8335
8336
8337
8338
8339
8340
8341
8342
8343
8344
8345
8346
8347
8348
8349
8350
8351
8352
8353
8354
8355
8356
8357
8358
8359
8360
8361
8362
8363
8364
8365
8366
8367
8368
8369
8370
8371
8372
8373
8374
8375
8376
8377
8378
8379
8380
8381
8382
8383
8384
8385
8386
8387
8388
8389
8390
8391
8392
8393
8394
8395
8396
8397
8398
8399
8400
8401
8402
8403
8404
8405
8406
8407
8408
8409
8410
8411
8412
8413
8414
8415
8416
8417
8418
8419
8420
8421
8422
8423
8424
8425
8426
8427
8428
8429
8430
8431
8432
8433
8434
8435
8436
8437
8438
8439
8440
8441
8442
8443
8444
8445
8446
8447
8448
8449
8450
8451
8452
8453
8454
8455
8456
8457
8458
8459
8460
8461
8462
8463
8464
8465
8466
8467
8468
8469
8470
8471
8472
8473
8474
8475
8476
8477
8478
8479
8480
8481
8482
8483
8484
8485
8486
8487
8488
8489
8490
8491
8492
8493
8494
8495
8496
8497
8498
8499
8500
8501
8502
8503
8504
8505
8506
8507
8508
8509
8510
8511
8512
8513
8514
8515
8516
8517
8518
8519
8520
8521
8522
8523
8524
8525
8526
8527
8528
8529
8530
8531
8532
8533
8534
8535
8536
8537
8538
8539
8540
8541
8542
8543
8544
8545
8546
8547
8548
8549
8550
8551
8552
8553
8554
8555
8556
8557
8558
8559
8560
8561
8562
8563
8564
8565
8566
8567
8568
8569
8570
8571
8572
8573
8574
8575
8576
8577
8578
8579
8580
8581
8582
8583
8584
8585
8586
8587
8588
8589
8590
8591
8592
8593
8594
8595
8596
8597
8598
8599
8600
8601
8602
8603
8604
8605
8606
8607
8608
8609
8610
8611
8612
8613
8614
8615
8616
8617
8618
8619
8620
8621
8622
8623
8624
8625
8626
8627
8628
8629
8630
8631
8632
8633
8634
8635
8636
8637
8638
8639
8640
8641
8642
8643
8644
8645
8646
8647
8648
8649
8650
8651
8652
8653
8654
8655
8656
8657
8658
8659
8660
8661
8662
8663
8664
8665
8666
8667
8668
8669
8670
8671
8672
8673
8674
8675
8676
8677
8678
8679
8680
8681
8682
8683
8684
8685
8686
8687
8688
8689
8690
8691
8692
8693
8694
8695
8696
8697
8698
8699
8700
8701
8702
8703
8704
8705
8706
8707
8708
8709
8710
8711
8712
8713
8714
8715
8716
8717
8718
8719
8720
8721
8722
8723
8724
8725
8726
8727
8728
8729
8730
8731
8732
8733
8734
8735
8736
8737
8738
8739
8740
8741
8742
8743
8744
8745
8746
8747
8748
8749
8750
8751
8752
8753
8754
8755
8756
8757
8758
8759
8760
8761
8762
8763
8764
8765
8766
8767
8768
8769
8770
8771
8772
8773
8774
8775
8776
8777
8778
8779
8780
8781
8782
8783
8784
8785
8786
8787
8788
8789
8790
8791
8792
8793
8794
8795
8796
8797
8798
8799
8800
8801
8802
8803
8804
8805
8806
8807
8808
8809
8810
8811
8812
8813
8814
8815
8816
8817
8818
8819
8820
8821
8822
8823
8824
8825
8826
8827
8828
8829
8830
8831
8832
8833
8834
8835
8836
8837
8838
8839
8840
8841
8842
8843
8844
8845
8846
8847
8848
8849
8850
8851
8852
8853
8854
8855
8856
8857
8858
8859
8860
8861
8862
8863
8864
8865
8866
8867
8868
8869
8870
8871
8872
8873
8874
8875
8876
8877
8878
8879
8880
8881
8882
8883
8884
8885
8886
8887
8888
8889
8890
8891
8892
8893
8894
8895
8896
8897
8898
8899
8900
8901
8902
8903
8904
8905
8906
8907
8908
8909
8910
8911
8912
8913
8914
8915
8916
8917
8918
8919
8920
8921
8922
8923
8924
8925
8926
8927
8928
8929
8930
8931
8932
8933
8934
8935
8936
8937
8938
8939
8940
8941
8942
8943
8944
8945
8946
8947
8948
8949
8950
8951
8952
8953
8954
8955
8956
8957
8958
8959
8960
8961
8962
8963
8964
8965
8966
8967
8968
8969
8970
8971
8972
8973
8974
8975
8976
8977
8978
8979
8980
8981
8982
8983
8984
8985
8986
8987
8988
8989
8990
8991
8992
8993
8994
8995
8996
8997
8998
8999
9000
9001
9002
9003
9004
9005
9006
9007
9008
9009
9010
9011
9012
9013
9014
9015
9016
9017
9018
9019
9020
9021
9022
9023
9024
9025
9026
9027
9028
9029
9030
9031
9032
9033
9034
9035
9036
9037
9038
9039
9040
9041
9042
9043
9044
9045
9046
9047
9048
9049
9050
9051
9052
9053
9054
9055
9056
9057
9058
9059
9060
9061
9062
9063
9064
9065
9066
9067
9068
9069
9070
9071
9072
9073
9074
9075
9076
9077
9078
9079
9080
9081
9082
9083
9084
9085
9086
9087
9088
9089
9090
9091
9092
9093
9094
9095
9096
9097
9098
9099
9100
9101
9102
9103
9104
9105
9106
9107
9108
9109
9110
9111
9112
9113
9114
9115
9116
9117
9118
9119
9120
9121
9122
9123
9124
9125
9126
9127
9128
9129
9130
9131
9132
9133
9134
9135
9136
9137
9138
9139
9140
9141
9142
9143
9144
9145
9146
9147
9148
9149
9150
9151
9152
9153
9154
9155
9156
9157
9158
9159
9160
9161
9162
9163
9164
9165
9166
9167
9168
9169
9170
9171
9172
9173
9174
9175
9176
9177
9178
9179
9180
9181
9182
9183
9184
9185
9186
9187
9188
9189
9190
9191
9192
9193
9194
9195
9196
9197
9198
9199
9200
9201
9202
9203
9204
9205
9206
9207
9208
9209
9210
9211
9212
9213
9214
9215
9216
9217
9218
9219
9220
9221
9222
9223
9224
9225
9226
9227
9228
9229
9230
9231
9232
9233
9234
9235
9236
9237
9238
9239
9240
9241
9242
9243
9244
9245
9246
9247
9248
9249
9250
9251
9252
9253
9254
9255
9256
9257
9258
9259
9260
9261
9262
9263
9264
9265
9266
9267
9268
9269
9270
9271
9272
9273
9274
9275
9276
9277
9278
9279
9280
9281
9282
9283
9284
9285
9286
9287
9288
9289
9290
9291
9292
9293
9294
9295
9296
9297
9298
9299
9300
9301
9302
9303
9304
9305
9306
9307
9308
9309
9310
9311
9312
9313
9314
9315
9316
9317
9318
9319
9320
9321
9322
9323
9324
9325
9326
9327
9328
9329
9330
9331
9332
9333
9334
9335
9336
9337
9338
9339
9340
9341
9342
9343
9344
9345
9346
9347
9348
9349
9350
9351
9352
9353
9354
9355
9356
9357
9358
9359
9360
9361
9362
9363
9364
9365
9366
9367
9368
9369
9370
9371
9372
9373
9374
9375
9376
9377
9378
9379
9380
9381
9382
9383
9384
9385
9386
9387
9388
9389
9390
9391
9392
9393
9394
9395
9396
9397
9398
9399
9400
9401
9402
9403
9404
9405
9406
9407
9408
9409
9410
9411
9412
9413
9414
9415
9416
9417
9418
9419
9420
9421
9422
9423
9424
9425
9426
9427
9428
9429
9430
9431
9432
9433
9434
9435
9436
9437
9438
9439
9440
9441
9442
9443
9444
9445
9446
9447
9448
9449
9450
9451
9452
9453
9454
9455
9456
9457
9458
9459
9460
9461
9462
9463
9464
9465
9466
9467
9468
9469
9470
9471
9472
9473
9474
9475
9476
9477
9478
9479
9480
9481
9482
9483
9484
9485
9486
9487
9488
9489
9490
9491
9492
9493
9494
9495
9496
9497
9498
9499
9500
9501
9502
9503
9504
9505
9506
9507
9508
9509
9510
9511
9512
9513
9514
9515
9516
9517
9518
9519
9520
9521
9522
9523
9524
9525
9526
9527
9528
9529
9530
9531
9532
9533
9534
9535
9536
9537
9538
9539
9540
9541
9542
9543
9544
9545
9546
9547
9548
9549
9550
9551
9552
9553
9554
9555
9556
9557
9558
9559
9560
9561
9562
9563
9564
9565
9566
9567
9568
9569
9570
9571
9572
9573
9574
9575
9576
9577
9578
9579
9580
9581
9582
9583
9584
9585
9586
9587
9588
9589
9590
9591
9592
9593
9594
9595
9596
9597
9598
9599
9600
9601
9602
9603
9604
9605
9606
9607
9608
9609
9610
9611
9612
9613
9614
9615
9616
9617
9618
9619
9620
9621
9622
9623
9624
9625
9626
9627
9628
9629
9630
9631
9632
9633
9634
9635
9636
9637
9638
9639
9640
9641
9642
System Notes File for IRAF Version 2.10.
Begun 15 May 1990.
-------------------------------------------

pkg/cl/cl.par
doc/notes.v29 +
local/notes.v210 +
doc/bugs.v28 +
local/bugs.log
unix/hlib/buglog.csh
unix/hlib/motd
unix/hlib/zzsetenv.def
	Switched IRAFX development systems to version 2.10.  (5/15)

unix/hlib/install
	Added xyacc to the list of HSI tasks to be installed as command in
	the unix local/bin.  (5/16)

dev/graphcap
	Updated entries for devices uapl[123457] and vapl[123457] to include
	newly measured values of xs, ys and ar.	 (5/21 ShJ)

mkpkg
bin.dsux		+
noao/mkpkg
noao/bin.dsux		+
noao/lib/mkpkg.inc
noao/lib/mkpkg.sf.MIPS
noao/lib/mkpkg.sf.DSUX	+
local/.login
unix/hlib/cl.csh
unix/hlib/install
unix/hlib/irafuser.csh		[DSUX ONLY]
unix/hlib/mkpkg.inc
unix/mkpkg.sh
unix/setarch.sh		+
unix/os/irafpath.c
unix/os/zgcmdl.c
	1. Modified DECstation/IRAF to change the architecture name from "mips"
	to "dsux".  Anyone having IRAFARCH defined in their environment as
	"mips" will have to change it to "dsux" to run IRAF.
	2. A couple of the files in OS were modified to change #ifdef mips
	constructs to also check for #ifdef ultrix.  If both mips and ultrix
	are defined it is a DECstation, otherwise at present we will assume
	the OS is umips.  (5/27)

mkpkg
noao/mkpkg
	Modified so that the same mkpkg file can be used for DSUX and MIPS
	systems without change.  (5/27)

local/COPYRIGHT		-
local/COPYRIGHTS	+
	Replaced the COPYRIGHT file by the more carefully prepared COPYRIGHTS
	file from the network archive.  (5/27)

doc/ports/notes.mips	-
doc/ports/notes.dsux	+
	Renamed the notes file for the DECstation port.  (5/28)

sys/mwcs/README		+
	Added a README file to MWCS, containing an interface summary.  (6/5)

sys/mwcs/iwewcs.x
	The code which computes CRPIX when reconstructing the Wterm from a
	FITS header was optimized with a "if (have_ltv)" but this was
	incorrect, since the computation uses both the LTV and LTM portions
	of the Lterm (hence it is necessary to test have_ltm as well).
	The result was that, given an Lterm consisting of only a scale term
	and no shift, the code could fail to restore the correct Wterm
	reference pixel coordinate.  (6/7)

dev/termcap	[tucana, orion, gemini]
	Added Rob's 3 two-column landscape mode printer entries.  (6/12/90 SRo)

*
	Removed world write permission from all iraf files.  Only a few were
	affected, but there were a few files and directories that happened
	to have world write perm, and none should (too easy for users to
	delete or modify files, accidentally or otherwise).  (6/18)

pkg/softools/mkttydata.hlp
	Deleted the explicit instructions for performing a sysgen-relink,
	which are no longer applicable to all versions of IRAF, and added
	comments to the affect that use of MKTTYDATA to cache termcap or
	graphcap entries is inadvisable for most sites.  (6/19)

sys/qpoe/QPOE.hlp
	Revised and updated the section on QPEX; the documentation for this
	section was out of date.  (6/20)

lib/syserrmsg
	Changed the error message for SYS_QPUKNPAR from "attempt to delete a
	nonexistent parameter" to "unknown parameter".  This message is used
	for all unknown parameter references, not just parameter deletions.
	(6/22)

sys/qpoe/qpgpsym.x
sys/qpoe/qpgmsym.x
sys/qpoe/qpaccessf.x
sys/qpoe/README
	1. The QPOE macro facility supports two kinds of macros, global macros
	defined in an external QPDEFS type file which affect all QPOE file
	references, and datafile-local macros defined as "macro" type
	parameters in the individual QPOE file headers.  There was a problem
	with the latter feature (datafile-local macros) due to QPOE header
	parameter references employing full macro expansion.  A routine
	such as qp_write would perform macro expansion on the parameter name,
	and if the referenced parameter was the macro parameter itself, one
	would get the parameter pointed to by the macro alias rather than
	the macro parameter, making it impossible to access macro parameters
	once defined.  The solution adopted was to disable expansion of
	datafile-local macros in low level header parameter accesses.
	Datafile-local macros are still used in expressions, hence can be
	used to define things like event struct fields names.  Also, global
	macros are still used in header parameter accesses, hence header
	parameters may still be aliased using global defines.

	2. The routine qp_expandtext was reclassed as an interface routine
	instead of an internal routine.  If aliasing of header parameters
	using datafile-local macro parameters is desired, this routine may
	be called to conditionally translate the parameter name before
	accessing the parameter, allowing the name to be aliased.  (6/24)

unix/boot/rtar/rtar.c
unix/boot/rtar/rtar.hlp
	Added two new switches to RTAR.

		-m	Do not restore the file modify times.
		-u	Do not attempt to reset the user and group ids.
	(6/25)

sys/qpoe/qpclose.x
	A qp_open to create a new qpoe file followed immediately by a qp_close
	would create a file with no qpoe file header descriptor, causing an
	error when the file was subsequently opened with qp_open.  qp_close
	was checking for the case of an open/close with no header writes and
	was forcing a qp_bind in this case, but the QP_MODIFIED flag was zero
	so the file header was not being updated.  Added a QP_MODIFIED(qp)=YES
	to force the file header to be updated, if qp_close is called on a
	new qpoe file before any header modifications have been made.  (6/26)

sys/gio/imdkern/imdopen.x
sys/gio/imdkern/imdopenws.x
	The imd_openws routine in the new IMD kernel was given a calling
	sequence of imd_openws(devname,n,frame,color,mode) when the kernel
	was first written.  However, this routine is one of the externally
	callable driver routines and the calling sequence is fixed as defined
	by the GKI interface (the calling sequence must be the same for all
	GIO kernels).  The IMD kernel will work fine when run standalone,
	but could die on a segmentation violation when called as a GIO
	subkernel, since the subkernel interface is GKI.  By chance this
	escaped all our testing, as the argument list mismatch can easily
	go undetected, depending upon the chance contents of the registers
	or stack locations associated with the missing input arguments.  (7/1)

unix/hlib/mkiraf.csh
	Modified the unix/iraf mkiraf script to prevent the user from running
	mkiraf in an iraf system directory (any iraf directory other than
	iraf/local).  (7/5)

unix/hlib/mkpkg.inc
unix/shlib/edsym.c
	1. In the tucana/irafx mkpkg.inc, deleted the -T from the default
	link flags to allow editing of shared image symbols.

	2. When shared image versions were added a while back I forgot
	to add version support to EDSYM, the symbol table editor.  The
	program has been modified to examine the text segment of the
	file being edited to determine the shared library version number,
	and use this to access the correct shared image (e.g., S5.e is
	the version 5 shared image).  With these changes, executables
	linked in the default way will again have the correct symbols
	for the shared image (allowing use of adb or dbx to examine
	locations in the shared image, without having to relink -z).  (7/5)

unix/boot/spp/xc.c
	Modified XC to automatically disable the call to EDSYM (the symbol
	table editor) when linking a host program (xc -h).  (7/6)

sys/imfort/mkpkg
sys/imfort/imfparse.x
sys/imfort/imfmkpfn.x
sys/imfort/imftrans.x			+
	1. Due to the use of vfn_translate in imfparse.x, the directory prefix
	field, if any, of the image name was being discarded.  This would
	prevent use of IMFORT to access images other than in the current
	directory.  The use of vfn_translate was inadvisable in any case,
	as it performs more VFN translation than is desired, and IMFORT is
	supposed to allow unrestricted use of host filenames.  The fix was
	to replace the call to vfn_translate by a call to a new internal
	imfort routine imf_trans.  This will still do a very limited amount
	of escape sequence encoding on the image filename, allowing mixed
	case and multiple "." delimited fields to be input and translated
	as for IRAF vfns, e.g., on VMS.  Since such filenames are not legal
	in VMS (mixed case is legal but is not very useful in VMS) this
	level of translation should be fairly safe.

	This was introduced into V2.9 on 11/28/89 (when the IMFORT pixel-file-
	clobber bug was fixed).  It is surprising that the problem was not
	reported earlier.  Most people must access only images in the current
	directory.  (7/6)

	2. The call to vfn_encode in imf_parse was not quite right either.
	vfn_encode only returns the next field of a pathname, and when
	imf_parse was called with a path and a non-image 3 char extension,
	part of the path would be lost.  The solution was to replace the
	call to vfn_encode by a call to the new imf_trans routine, which
	avoids just this problem.  (7/9)

dev/hosts	[tucana, orion, gemini]
	Changed cmd field for draco, to use known object "241", which
	currently points at usr$0:[rooke]irafks.com, but will shortly
	point to usr$3:[irafext.kpnolocal.src.dni]irafks.com.  (7/12 SRo)

dev/graphcap	[tucana, orion, gemini]
	Added iism70d field for draco-hosted iis, aliased to iism70c & iism70l
	for backward compatibility.  Changed DD in default iism70 entry to
	point to draco, using iia0, as we currently have no UNIX-hosted iis.
	(7/12 SRo)

unix/os/zmain.c
unix/os/zzsetk.c
unix/os/zfiopr.c
	Added a new facility to UNIX/IRAF for debugging interprocess
	communication (IPC).  This feature will also be useful for debugging
	tasks standalone, particularly in cases where a bug seen when the
	task is run from the CL is difficult to reproduce when the task
	is run standalone.

	The facility is this: if LOGIPC is defined in the host environment
	when an iraf process is started, the process will create two files
	PID.in and PID.out, where PID is the process id.  Everything read
	from the IPC input file is copied to the .in file, and everything
	written to the IPC output (e.g., sent back to the CL) is copied to
	the .out file.  This is done only for connected subprocesses.
	It will work for any connected subprocess, e.g., normal cached
	processes and graphics subkernels in both foreground and background
	CLs, but not the i/o of the CL itself since it is not driven by IPC.

	The IPC streams saved are an exact binary copy of whatever was sent
	via IPC, including the binary IPC packet headers, binary graphics
	data, etc.  However, most IPC traffic is textual in nature, so it
	will usually be possible to read the IPC files with a file pager,
	or even "cat" them to the screen (not avisable if graphics data is
	involved).

	A particularly interesting use of this feature is to allow a process
	to be run under the CL in the normal fashion, then rerun under the
	debugger using the saved IPC input to duplicate the input and actions
	of the process when run under the CL.  For example:

		% setenv LOGIPC
		% cl
		cl> dir
		cl> logout
		% unsetenv LOGIPC

	Will run the CL, saving the IPC of all subprocesses (x_system.e).
	We can then run the system process manually, using the saved IPC
	input:

		% $iraf/bin/x_system.e -c < PID.in

	To run the process under ADB or DBX, using the saved input:

		% adb $iraf/bin/x_system.e
		:r <PID.in -c
	or
		% dbx $iraf/bin/x_system.e
		dbx> r -c < PID.in

	Note that the redirection has to be given first for ADB, and last
	for DBX.  [In recent versions of SunOS there must be no space after
	the "<" in the :r command to adb.]

	Running a task in this way is not identical to running the task
	standalone, e.g. using a DPARAM file for parameter input, because
	the exact runtime context of the process as run under the CL is
	reproduced.  The differences are subtle but can be important when
	trying to reproduce a bug seen when the process is run under the
	CL.  For example, the functioning of the task is slightly differenct
	when the -c flag is used, the environment is passed in via IPC rather
	than being read from hlib$zzsetenv.def, and so on.  Except for
	possible kernel level differences associated with spawning the
	process by forking a shell rather than the CL, the process should
	execute identically as it did under the CL.  (7/17)

sys/vops/amov.gx
	This routine could fail, corrupting the data array, in some
	cases when the input and output arrays overlap.  The same
	problem exists in standard V2.9 iraf except that in most iraf
	implementations, a host optimized version of AMOV is used,
	hence the bug has not been seen.  (7/19)

sys/imfort/tasks/pcube.f
	This file contained a subroutine containing the following sequence of
	statements (irrelevant statements ommitted):

		subroutine pcuber (pix, nx,ny,nz, i1,i2, j1,j2, k1,k2)
		real	pix(nx,ny,nz)
		integer	nx, ny, nz

	On the MIPS, this produced a warning about nx/ny/nz already having
	been declared.  Probably when the compiler processes the REAL
	statement it assumes the parameters are type integer.  This seems
	reasonable, so I moved the INTEGER card up before the REAL and the
	warning went away.  (7/19)

sys/imfort/tasks/mkim.f
	This task creates a test image where the pixel value is computed based
	on the position of the pixel in the image.  The relation being used
	was (j*ncols+i), which is the pixel number starting at [1,1], except
	that the value is offset by a line, which is ok but not what one would
	expect.  I changed it to ((j-1)*ncols+i).  (7/19)

vms/hlib/sigqueue.com
	Added qualifiers /passall/nofeed to the ln03 print command.  (7/20 ShJ)

pkg/utilities/doc/polyfit.hlp
	Added the missing "statistical" heading under the weighting section
	in the polyfit task help page. (7/23/90 LED)

sys/plio/pllpr.x
sys/plio/pllnext.x
sys/plio/pll2r.gx
sys/plio/pll2p.gx
sys/plio/plcmpress.x
	These files each contained statements of the form

		(foo * I_SHIFT) + goo

	where foo is type short and I_SHIFT is an integer constant.  The VMS
	Fortran compiler, due to a misfeature or otherwise, evaluates a short
	times an integer literal using short integer arithmetic, causing
	integer overflow in the short integer intermediate expression.  The
	solution adopted was to replace the "foo" in expressions such as the
	above by "int(foo)".  (7/24)

vms/os/zmain.c
	The vms/iraf process main was modified to add support for calling
	iraf tasks on the host system command line, a feature which was added
	to unix/iraf some time ago.  As with unix/iraf, any extra command
	line arguments are passed on to the iraf main as the iraf command to
	be executed.  The vms/iraf version has the additional feature that
	the process stdin and stdout/stderr may be redirected on the command
	line, using the usual syntax <file >file >>file.  This is NOT THE
	SAME as redirecting the i/o of the iraf task, with 4>file etc.
	arguments to the task.  Both or either form of redirection may be
	used, but the process main arguments must preceed the command to be
	passed to the iraf main.  (7/24)

noao/lib/strip.noao
	Added ONEDSPEC to the list of packages to be stripped; don't know
	why this was missing.  (7/25)

pkg/utilities/t_curfit.x,curfit.gx
	Moved the ic_close(rd) calls out of the input file/image loop
	and into the main routine. The pointer to icfit was being freed
	after the first file of data was fit and not reallocated before the
	next fit was initiated resulting in a segmentation violation.
	(LED 7/30/90)

dev/hosts	[tucana only]
	Added adonis (engineering hp9000/370) to network for hpux testing.
	(7/30/90 SRo)

math/gsurfit/gsder.gx,gsderd.x
	Corrected a typo in the gsder.gx routine which was causing a
	pointer to be passed to the salloc routine instead of a size.
	If the pointer addresses became very large this caused
	an out of memory allocation error. This error has been in existence
	as long as the package but only showed up on the MIPS.
	(8/1/90 LED)

sys/imio/iki/oif/oifmkpfn.x
	Modified to check for the null image, and return "dev$null" as
	the pixel file name in this case.  (8/4)

unix/boot/spp/xc.c
	1. All internal system executables called by XC (currently xpp.e,
	rpp.e, and edsym.e) are now located using the iraf routine
	os_sysfile, rather than searching through the host system
	directories /usr/bin, /usr/local/bin, and so on.  This ensures
	that XC will always find these executables, regardless of where
	the iraf host level commands xpp, rpp, etc. are installed (XC does
	not even care if these are installed as user commands, anymore).

	2. The technique used to locate host commands such as f77 and cc
	was changed to the following sequence: [1] first the directories
	defined by the user's $PATH are searched (using execvp), [2] the
	internally defined directory SYSBINDIR is searched (this defaults
	to /usr/lang on a Sun), [3] the internally defined directory
	LOCALBINDIR is searched (defaults to /usr/local/bin).

	3. When linking on a Sun/IRAF system, -lI77 is searched only if
	the old (pre-V1.3) compilers are being used, as I77 has been
	deleted with the V1.3 compiler.

	The result of the above change for Sun/IRAF is that the revised XC
	will work with either the new V1.3[.1] compiler, or any of the old
	compilers.  If both compilers are installed, either may be
	selected using $PATH.  If the system contains only the new
	compiler at /usr/lang and the user has not included this directory
	in their path, XC will still find the compiler.  (8/4)

	NOTE - Although IRAF can now make use of the new V1.3 compilers,
	these are NOT fully supported yet.  These appear to be largely new
	compilers.  A new set of system default compiler switches will
	have to be developed, and the full iraf system recompiled from
	scratch and tested before the new compilers are fully supported.
	In particular, note that there is no guarantee that sources
	compiled with the new compiler will link correctly with iraf
	objects produced by the old compiler, or that old iraf objects
	will link properly with the system libraries included with the
	new compiler.  The default iraf mkpkg compiler switches may not
	be correct for the new compilers.  Compiler bugs are likely.

unix/boot/spp/xpp/decl.c
unix/boot/spp/xpp/xppcode.c
	Modified the code which outputs runtime initialization statements
	to output these statements after any DATA initialization statements
	(they were coming out before the DATA statements).  Runtime
	initialization is used to zero the function value of real and double
	functions upon procedure entry.  (8/7)

sys/qpoe/README
sys/qpoe/mkpkg
sys/qpoe/qpio.h
sys/qpoe/qpmacro.x
sys/qpoe/qpoe.h
sys/qpoe/qpopen.x
	1. The builtin interface default blocking factor for QPOE was changed
	from 8 to 1.

	2. The default blocking factor may now be specified individually for
	each datafile, by defining the optional parameter "defblock" in the
	QPOE header.   If a datafile default is given this overrides the
	builtin interface default; any global SET value overrides both,
	and setting the block factor in the runtime filter expression or
	in a runtime call to an interface seti routine will override both
	the datafile and global defaults.

	3. In a related change made while implementing the above feature,
	qp_open was modified so that interface parameters set in global
	SET statements (as in QPDEFS) will override datafile parameters
	inherited from an existing datafile in a NEW_COPY operation.
	In other words, if the user explicitly specifies a parameter such
	as "pagesize" or "bucketlen" in their QPDEFS, this will override
	the default value inherited from an old datafile when a new copy
	is made.  As before, any runtime qp_seti calls made once the new
	datafile has been opened will override these defaults.  This was
	necessary to be consistent with the rule that the most recently
	specified value for a parameter takes precedence.  (8/8)

pkg/system/directory.x
	A couple of obscure bugs were fixed which affected unsorted
	directory listings.  (8/8)

pkg/images/imarith/imasub.gx
	Fixed a bug in the special path for subtracting an image from
	the constant zero; i.e. negation via subtraction.  (8/15)

pkg/images/imutil/hedit.x
	Modified hedit to use the maximum of the default task min_lenuserarea
	value (28800) and the "min_lenuserarea" environment variable if
	defined. The previous version always used the default value. (8/15 LED)

dev/graphcap	[tucana, orion]
	Known object irafks.e is failing due to some problem with its I/O
	channels at startup time; this happened apparently without any change
	to VMS or IRAF software.  IIS access via dni from tucana or orion
	still works if the user has an irafks.com in their login directory.
	Changed draco!iis to dnidraco!iis, so that the private irafks.com
	is used.  Will have to fix known object irafks.e later.  (8/17/90 SRo)

pkg/dataio/t2d/t_t2d.x
	Increased OBUF_PAD, which controls the size of a data record read,
	from 20000 to 32767 chars.  This value limits the maximum size of
	an input data record in the tape record, and it is a read error if
	the actual record is larger.  (Also increased SZ_OBUF to the next
	larger power of two and increased the max ranges, not that the latter
	is likely to matter).  (8/22)

dev/uhosts
	Updated this file to reflect changes in the NOAO internet.  This file 
	is a modified version of tucana's /etc/hosts file.  (ShJ 8/29)

dev/graphcap
	Added entries for all colors of imd devices; color indices 202 through
	217 are now available.  Also added a device "imddicomed" suitable for
	drawing black, variable width lines destined for dicomed output via
	the imdkernel.  The imd entry was modified so xs=ys=#0.263, indicating
	a physically square device.  (8/30 ShJ)

unix/hlib/config.h
	Changed MT_SZBDEFIBUF (the default maximum input buffer size for
	magtape i/o) from 32768 to 65535.  This more nearly reflects the
	maximum record size of most modern devices, and the change was needed
	to permit the full range of blocking factors for tapes.  (9/3)

unix/os/zfiomt.c
unix/os/zfiomt.c.BSD            +
	Installed the temporary "hacked magtape driver" for SunOS, which
	includes Exabyte support.  This will be replaced shortly in V2.10
	but is what is being shipped in V2.9.1.  This driver supports the
	following combinations of devices and host drivers (given the
	current chaotic situation with tape drivers on Suns it is unlikely
	that any combinations not tested will work):

	    1/2" reel tape	4.0.3	all except ST (SCSI tape) driver
	    1/2" reel tape	4.1	untested, but should work

	    Exabyte		4.0.3	Sun ST driver, Ciprico RT driver
					sparcstation under 4.0.3 not tested
	    Exabyte		4.1	Sun ST driver, except sparcstation

	1/4" cartridge tape and 1/2" reel tape on the Sun SCSI driver (at
	least under 4.0.3) is not currently supported.  The Exabyte on the
	sparcstation version of the ST driver is not currently supported
	due to serious bugs in the sparcstation version of the ST driver,
	which is different than any other version of the ST driver.

	The driver automatically determines whether the current system is
	running 4.0.3 or 4.1 and adjusts it behavior accordingly.  The
	behavior of the ST driver differs from 4.0.3 to 4.1, and worse,
	the driver ioctls changed, which prevents magtape code compiled
	under 4.0.3 from even running on 4.1.  zfiomt works around this
	by using the hardwired values of the iocts for the two SunOS
	versions.  (9/3)

unix/os/tape.c                  +
	This file (not part of the runtime iraf system) is a host level
	magtape test program, which should compile and run on most unix
	systems.  It is kind of like the unix "mt" program, except that it
	runs as a command interpreter, allowing one to open a drive and
	issue a series of commands to exercise the drive.  All the
	standard driver ioctls are provided, plus commands for reading and
	writing data records, and various interpreter control commands.
	The program is useful for exercising drivers (and drives) to
	determine exactly what they do when the various driver ioctls are
	issued.

	The following commands are provided:

	    open [device [r|w]]    rewind                   fsf [n]
	    close                  read [nrec [bufsz]]      fsr [n]
	    log [file]             write [nrec [bufsz]]     bsf [n]
	    run <file>             weof                     bsr [n]
	    verbose                status                   quit

	The "write" command writes records of the given size (default 1024)
	containing a comment such as "file M, block N" at the beginning of
	each record.  The "read" command prints out the first 80 printable
	chars or so of each record read, omitting unprintable chars.  These
	commands can be used to prepare test tapes and determine to what
	record the tape is positioned after a given ioctl or command is
	issued.  (The program is also useful as a crude mtexamine type
	program).  (9/3)

unix/boot/spp/xc.c		[Sun/IRAF only]
	The SunOS version of the XC compiler, which makes a stab at trying
	to support the version 1.3 Sun Fortran and other compilers, was
	modified as follows:

	    o	When a compile is performed with the new compilers in the
		path, the compiler runtime BIN directory /usr/lang/SC0.0
		(or whatever - the path is generated at runtime to reflect
		whereever the user installed the compiler) is passed as
		in -L/usr/lang/SC0.0 to the CC command used to link.  This
		is necessary because the version of CC used to link may be
		the old C compiler, which will not automatically search
		the compiler BIN directory /usr/lang.

		The actual library search path specified depends upon
		whether FLOAT_OPTION is defined in the user environment.
		For example, if FLOAT_OPTION is defined in the user
		environment as "ffpa", the search path command line options 
		will be -L/usr/lang/SC0.0/ffpa -L/usr/lang/SC0.0 (where
		the user specified path (/usr/lang) and BIN version (SC0.0)
		are determined automatically at runtime).  Referencing the
		right version of each library is necessary in order to get
		the library version optimized for the local floating point
		hardware on Sun-3s.

	    o	The host libraries searched to link with the 1.3 compilers
		were changed to -lF77 -lm.  It appears that -lU77 was
		eliminated in 1.3, as well as the -lI77 noted earlier.

	Using, e.g., f77 to perform the link would avoid the need to have
	XC know the details of the host libraries but is probably not a
	workable solution since iraf programs are not Fortran programs
	("host" programs linked with xc -h are not necessarily Fortran
	programs either).  f77 would set up the startup files etc.
	required by f77 programs, whereas an iraf program is to the host
	system a C program which uses some of the f77 libraries.  If f77
	could be used to link a C program then it might provide an
	alternative to having XC know what host libraries to link against,
	but I doubt if this would work.

	It should be noted that while we are attempting to support the new
	compilers, full support cannot be expected until the IRAF project
	begins using these compilers routinely.  (9/3)

	Addendum - Note on 1.3 compilers.  Testing the new XC with the 1.3
	compilers on a Sun-3, I find that FLOAT_OPTION no longer works as
	it used to.  If FLOAT_OPTION is defined in the environment and one
	does, e.g., a cc to compile a file, a message is printed warning that
	FLOAT_OPTION is being ignored and the the default (fsoft) is being
	used.  It is necessary to explicitly compile with -f68881 or whatever
	to get the desired architecture.  This is not a problem for mkpkg or
	fc, since these utilities automatically generate the -float arguments,
	but if one calls xc directly the argument must be given.  (9/4)

dev/graphcap	[orion, tucana]
	Changed dni networking to draco back to normal (known object) mode
	after fixing vms irafks.e startup problem (kpnolocal version).
	(9/4/90 SRo)

dev/hosts	[orion only]
	Added columba to hosts file (gemini & tucana were okay).  (9/7/90 SRo)

--------------------
All tucana architectures and irafx@draco were updated to the latest snapshot
of V2.10.  orion, pegasus, columba, cephus, and iraf@draco were updated to
V2.9.1 and the V2.9 distribution files rebuilt in the network archive.
(3-9 Sept.)

sys/imio/db/idbfind.x
	Commented out a couple of lines of code in the code which scans
	an unblocked header.   The erroneous code was harmless given a
	normal header containing nonempty cards, but could result in header
	cards being skipped if blank header lines were encountered.  (9/11)

doc/ports/notes.mips		+
	Archived the notes for the the MIPS port.  (9/17)

unix/os/tape.c
	Installed a newer version which is more conservative about the use
	of the status (NOP) ioctl.  (9/17)

math/curfit/cvrestore.gx,cvrestorer.x,cvrestored.x
math/gsurfit/gsrestore.gx,gsrestorer.x,gsrestored.x
math/surfit/isreplace.x
	Changed all the int() calls to nint() calls in the above math
	package restore routines. This is a totally safe way for the 
	math routines to do the required floating point to integer
	conversions and removes any potential precision problems for
	tasks which read the math package structures back from a text
	file. This change was made in response to problems encountered
	with reading text databases on the HP. (LED 9/18)

unix/hlib/zzsetenv.def
	Removed the default imdir=tmp$ entry.  Having this in zzsetenv.def
	prevents use of a host level environment definition to set the per-user
	default, and isn't necessary as IMIO will default to imdir=HDR$ if
	imdir is not defined.  (10/2)

dataio/doc/wfits.hlp
	Added some comments to the wfits help page concerning the unwisdom
	of writing to EOT on a blank tape. Updated the section describing
	the tape blocking factors and added an example showing how
	wfits can be used to write exabyte tapes with large blocking
	factors. (LED 10/3)

-----------
f68881,ffpa,sparc binaries updated on tucana.  (10/16)

unix/boot/spp/xpp/xppcode.c
	Fixed a typo on line 888, changing "op >= &sbuf" to "op >= &obuf".
	(10/19)

pkg/images/imhistogram.par
pkg/images/iminfo/imhistogram.x
pkg/images/doc/imhistogram.hlp
	Added a new parameter binwidth to the imhistogram task so that the
	user can define the imhistogram resolution in terms of intensity
	units or number of bins. (LED 10/26)

pkg/images/tv/doc/display.hlp
	Modified the description of zrange to note that the minimum and
	maximum pixel values, if not already known, are estimated rather
	than computed by examination of the full image.  (11/5)

sys/INDEX		+
	I added a MKTAGS procedure index listing to the SYS directory,
	to make it easier for people to locate VOS routines without having
	to know about MKTAGS (since few do, it seems).  This file contains
	a list of all the procedures defined in all the .x source files in
	the sys$ directories, giving the calling sequence and source file
	and line number for each.  (11/8)

dev/graphcap
unix/sun/imtoolrc
	Added a new entry for the GONG Cache Monitor.  (11/9/90 ShJ)

sys/qpoe/qpexdebug.x
	Modified to print the lookup table zero to NDIGITS_DP precision,
	in the case of a double precision lookup table.  (11/9)

sys/qpoe/zzdebug.x
	1. Modified the `hlist' task to survive the case of a symbol
	returned by qp_gnfn not being found by qp_gpsym; this can happen
	when the symbol name is a macro.
	2. Modified the default debug event list struct to agree with that
	of PROS/Einstein datafiles, for convenience sake when debugging with
	this data (the zzdebug code is crude and uses a wired-in compile
	time event struct).  (11/10)

dev/hosts
dev/devices
dev/devices.hlp
	1. Added node ursa.
	2. The 1/2" drives now have a default density of 6250 instead of 1600.
	3. devices.hlp file updated to reflect the above changes.
	(ShJ 11/12) (CB 11/12)

pkg/images/images.hd
pkg/images/rotate.cl
pkg/images/imlintran.cl
pkg/images/register.cl
pkg/images/register.par
	Added src="script file name" entries to the IMAGES help database
	for the tasks ROTATE, IMLINTRAN, and REGISTER.  Changed the CL
	script for REGISTER to a procedure script to remove the ugly
	local variable declarations.  Added a few comments to the scripts.
	(LED 11/12)

sys/qpoe/README
sys/qpoe/mkpkg
sys/qpoe/qpexgetat.x			+
sys/qpoe/qpexattrl.gx			+
	Added the following new routines to QPEX:

	     nc = qpex_getattribute (ex, attribute, outstr, maxch)
	       nr = qpex_attrl[ird] (ex, attribute, xs, xe, xlen)

	The qpex_getattribute routine is like qpex_getfilter, except that it
	returns only that portion of the current compiled filter which
	pertains to the named attribute.  The filter expression for the
	attribute is returned as a text string.  The family of routines
	qpex_attrl[ird] are similar, except that they return the filter for
	the named attribute as a binary range list.  In both cases, the
	actual filter is stored internally in the QPEX descriptor as a
	compiled program, hence the attribute or expression is only a
	representation of the actual filter.  Unless there is a bug they
	should amount to the same thing, but one should be aware that the
	internal form of the compiled filter is not a simple range list.
	(11/12)

sys/qpoe/zzdebug.x
	Added a new debug task TFILTER, used to verify time filtering.  Also
	tests qpex_attrld, qpex_getattribute, and the use of QPEX and QPIO
	independently, using qpex_seti to set the event attribute filter and
	rewind the event list.  Time filtering is tested by filtering the
	event list once using the normal optimized time filtering code,
	saving the x/y of each event which passes the filter in a memory
	array.  The event list is then rewound, the filter removed,
	qpex_attrld called to get the time filter as a binary range list,
	and the raw event list is manually filtered and the x/y of each
	event which passes the filter saved in memory.  The filter results
	are then compared to see if they agree.  (11/12)

	[I wasted half a day getting TFILTER working, due to a very uncommon
	problem.  Changing the name of the task in the task statement in the
	QPOE zzdebug.x would cause QPEX parsing (totally unrelated) to fail
	in some cases and work in others.  I traced this to particular file,
	but when it was recompiled the bug went away.  The newly compiled
	object, though, was identical to that on orion (V2.9.1).  Short of
	recalling files from a backup tape, it was impossible to look into
	this further.]

sys/qpoe/qpexeval.x
	In testing the time filtering code with the new debug task I found
	the following bugs.

	1. The code which evaluates the filter expression for a single event
	was not initializing the value of the expression to false before
	evaluation.  In most cases this step is redundant (which is probably
	why I didn't put it in the original code) but it turns out that
	there is a case in the lookup table code used to evaluate long range
	lists where the old expression value is pushed before evaluating a
	subexpression, and an undefined value could be pushed causing events
	near a range boundary to occasionally be passed when they shouldn't.

	2. The first thing the lookup table code does is map the data value
	to a bin of the lookup table.  This involves an INT operation, and
	values a fraction of a data value left of the first bin of the table
	would have a fractional negative value which INT would convert to
	a zero, causing values just left of the first bin to erroneously be
	mapped into the first bin.  (11/14)

unix/os/tape.c
	Was opening the tape drive with mode 1 when open-write was specified;
	changed this to open with mode 2, read-write.  (11/15)

sys/qpoe/qpexcode.gx
	Nested range list evaluation lookup tables occur where a bin of the
	table at level N maps to so many closely spaced ranges that another
	lookup table at level N+1 is needed to evaluate the range list for a
	value that maps into the bin.  Using the new TFILTER debug task to
	test nested floating time filter lookup tables, I found that a
	couple of internal variables were not being saved on the stack when
	the routine recursed to generate code for the new table.  (This is
	the first time this feature was ever tested, as it has not been
	needed until now).  (11/15)

sys/qpoe/qpex.h
	Increased the size of the program and data buffers used for
	expression evaluation by QPEX.  These can overflow at runtime
	causing a program abort and the memory is dynamically allocated so
	we may as well be more generous.  There is still a builtin default
	upper limit, but if someone does come up with a filter which is
	large enough to overflow either buffer the size can be increased in
	QPDEFS before compiling the filter.  (11/15)

pkg/system/doc/help.hlp
	Added REFERENCES and PHELP to the "SEE ALSO" section.  (11/16)

unix/os/mkpkg.sh
	Modified the bootstrap code to avoid compiling sources such as
	getproc.c and tape.c into LIBOS, since these are not part of the
	library.  The new version compiles all z*.c files plus an explicit
	list of other files which are part of the kernel, such as
	irafpath.c, prwait.c, and so on.  (11/19)

pkg/images/doc/gauss.hlp
	Added a detailed mathematical description of the form of the 
	Gaussian kernel used in the GAUSS task to the help page. (28/11/90)

pkg/images/filters/t_convolve.x
	CONVOLVE was not decoding the legal 1D kernel "1.0 2.0 1.0" correctly
	although the alternate form "1.0 2.0 1.0;" worked. Leading blanks in
	string kernels as in for example " 1.0 2.0 1.0" also generated
	an error.  Fixed these bugs and added some  additional error checking
	code.  (11/28/90 Davis)

dev/hosts [draco, iraf and irafx]
	Changed path to irafks.e to use "bin.dsux" for cephus.  Other
	DECstation installations left as "bin.mips.  Node equuleus uses
	mips as IRAF architecture; couldn't check virgo (passwd changed?).
	(11/28/90 CB)

unix/boot/spp/xc.c
	While testing the magtape driver code on Ursa (Sun 470, SunOS 4.1)
	I had occasion to compile a file and found that XC failed with the
	message "f77 not found".  The following two changes were made.

	1. There was an actual bug in the code for "run".  This would build
	the path of the executable, e.g., "/usr/lang/f77", but not use it,
	calling execv with only the task name, e.g. "f77".  Hence the routine
	would only work if the executable was found in the user's path.

	2. Evidently the V1.3 compiler cannot even execute unless the
	directory containing the f77 driver (normally /usr/lang) is in the
	user's path.  Since we want XC to function properly whether or not
	the user has /usr/lang in their path, I modified XC to use PUTENV to
	add /usr/lang to PATH in the environment for the XC process, if f77
	is found in this directory.  (If f77 is in some nonstandard location
	then the user will already have the directory in their path).
	(12/1)

dev/hosts	[tucana only]
	Added madrona (George Jacoby) to network.
	(12/4/90 FV)

sys/qpoe/qpgettok.x
	Edited the description of TOK_IDENTIFIER in the file header.  The list
	of legal identifier characters ommitted certain characters.  (12/4)

pkg/dataio/fits/t_rfits.x
        Modified the rfits task so that it will supply a temporary root output
	file name if old_irafname="yes" or quit with a clear error message if 
	old_irafname="no", in the case where the user sets the output file 
	to the null string "". (12/6/90 LED)

dev/hosts
        Modified the dev/hosts file on draco (iraf and irafx) so that
        the kernel server was started on orion-gw rather than orion. 
        (12/6/90 jvb)

pkg/system/cmdstr.x
	Would ignore any parameter the name of which began with "mode".
	Fixed to ignore only the mode parameter (I guess this is right;
	actually it is not obvious if the mode parameter really has to
	be skipped, although it should be safe to do so).  (12/11)

doc/ports/notes.dsux
	Fixed a typo; a Dec 1990 date should have been Dec 1989.  (12/13)

sys/imio/impmap.x
	The "flags" value was being passed to im_pmopen, rather than "mode",
	causing im_pmopen to get an access mode of zero.  This was harmless
	when opening masks read only but prevented opening new masks.  (12/14)

sys/imio/immap.x
	The case of a NEW_COPY .pl image (mask image) was broken out as a
	special case.  A mask image is created with mode NEW_IMAGE, set to
	the logical size of the image being copied, and im_make_newcopy is
	called to copy the header and other inheritable image attributes.

	This is not a normal create-mask operation because the new mask is
	actually an image stored as a mask which is a new copy of another
	image; this is not the same as a new mask which is created for use
	with some reference image.  The main difference is that a mask is
	always associated with the physical image matrix, and inherits any
	runtime section defined for the reference image, whereas an image
	which is a new copy of another image is sized according to any
	section defined for the old image.  In other words, a new-copy .pl
	mask-image created from a section of an existing image will be the
	size of the section being copied, rather than the size of the full
	image.  Normal mask operations do not work that way, which is why
	im_pmmap cannot be called directly in this case to make a NEW_COPY
	mask.  (12/15)

sys/imio/impmmap.x
sys/imio/impmopen.x
	The flag PL_BOOL (create boolean mask) was being set in IM_PLFLAGS
	by im_pmopen, but that was incorrect as this routine doesn't have
	access to the image descriptor.  Moved the flag setting code to
	im_pmmap.  (12/15)

sys/imio/impmhdr.x              +
sys/imio/impmmap.x
sys/imio/imunmap.x
	The IMIO image mask support was modified to save the image header in
	the PLIO save file, and restore the header when the mask is later
	mapped onto an image descriptor.  The image title string and header
	cards are stored in the mask "title" string as an arbitrarily long
	string consisting of a number of lines of text.  In effect, this
	gives PLIO mask images (.pl images) the same header functionality
	as, e.g., OIF format images.  Mask images can now be dynamically
	created, edited, etc., and have full headers, so they can be
	considered full fledged images except for the one restriction that
	the pixel type is always integer (with 28 bit unsigned integer
	pixels).  The semantics of accessing or copying sections, world
	coordinates, etc., are the same as for any other image format.
	Randomly accessing an image should be efficient despite the
	compression, since the mask lines are compressed and indexed
	individually.

	One possibly useful feature of image masks is that they represent
	the first machine independent image format for iraf.  Character
	data is stored as byte packed ascii strings, and the save format
	for mask image data is an MII short integer sequence.

	Mask images provide a general image compression capability for
	integer images.  If you try to store a floating image in a mask it
	will work, but the data will be converted to integer (with
	incredible compression if the data converts to zeros!).  Since the
	compression algorithm was designed for masks there will be little
	compression for noisy 16 bit images.  32 bit integer images, or any
	smooth (low noise) integer image will compress to some degree.
	Compression factors for actual image masks, of course, will be very
	large, with factors of 100-1000 being common.  (12/17)

sys/imio/iki/iki.h
sys/imio/iki/ikiinit.x
sys/imio/iki/mkpkg
sys/imio/iki/plf/README		+
sys/imio/iki/plf/mkpkg		+
sys/imio/iki/plf/plf.h		+
sys/imio/iki/plf/plfcopy.x	+
sys/imio/iki/plf/plfdelete.x	+
sys/imio/iki/plf/plfrename.x	+
sys/imio/iki/plf/plfaccess.x	+
sys/imio/iki/plf/plfnull.x	+
	Added limited support to the IKI interface for PLIO image masks.
	A new mini-kernel PLF was added; this consists of about half of
	an IKI kernel (the access/copy/delete/rename primitives), with
	the open/close, header access, and i/o functions being performed
	directly in the IMIO code and in the IMPM code in IMIO.  With
	this change operations such as imaccess, imdelete, imrename, etc.
	will work for .pl image masks as for the other image formats.

	In principle everything related to image masks should be isolated to
	an IKI kernel, but the mask i/o stuff does not fit the current image
	kernel model very well, and it was simpler to solve the problem as a
	special case in the IMIO code.  This will be cleaned up later as
	part of the new image structures project when the IKI interface is
	redesigned.  (12/17)

pkg/images/imfit/imsurfit.x
pkg/images/imfit/t_imsurfit.x
pkg/images/lib/pixlist.h
pkg/images/lib/pixlist.x
	Changed the package prefix of the "pixlist" package, used internally
	within IMSURFIT, from "pl" to "prl" (pixel range list) to avoid a
	name conflict with the system interface PLIO.  (12/18)

sys/imio/immap.x
	Modified so that the .pl extension does not have to be given
	explicitly for the code therein to recognize a mask image.  (12/18)

sys/plio/plloadf.x
	Modified to make specification of the .pl extension optional when
	opening an existing save file.  (12/18)

sys/imio/immap.x
sys/imio/imunmap.x
sys/imio/iki/ikiinit.x
sys/imio/iki/plf/mkpkg
sys/imio/iki/plf/plfclose.x
sys/imio/iki/plf/plfupdhdr.x
sys/imio/iki/plf/plfopen.x
	The special case nature of the code to map pixel mask images in
	IMMAP led to further complications, to the point where it became
	worthwhile to scrap this and move the open procedure into the
	IKI PLF kernel where it belongs.  Added open, update header, and
	close procedures to the PLF image kernel and deleted the special
	case code in immap.x and imunmap.x  The main thing still missing
	from this kernel is the i/o, which is still handled directly in
	IMIO (pixel masks do not fit the virtual file model very well).
	(12/20)

sys/imio/imopsf.x
	The code in this file which copies the descriptor of the reference
	image was doing too much.  Replaced by some code that copies only
	selected fields.  The concept of what a reference image means in
	this case is still muddy, however, so I doubt if this stuff is right
	yet. (12/20)

sys/imio/imioff.x
	The impkden computation could result in a divide by zero if the
	logical block size was 1 char.  Alignment does nothing in such a
	case anyhow, so I put an IF around this code to skip it if the
	logical block size is given as 1 char.  This is the case in some
	of the new image kernels which do not do anything so simple as
	store pixels on a blocked device.  (12/20)

sys/qpoe/qpoe.h
sys/qpoe/qpgettok.x
sys/qpoe/qpioopen.x
sys/qpoe/qpioparse.x
sys/qpoe/qpexeval.x
sys/qpoe/qpexmodfil.x
	QPOE has a parameter "deffilt" which can be used to define a default
	event attribute filter for event i/o.  Previously, either the default
	filter was used or a user specified filter was used, i.e., if the
	user specified a filter it would *replace* the default filter.  This
	was changed so that the user specifed filter would add to or modify
	the default filter, on an attribute by attribute basis.  In effect
	the data is run through the default filter, then the result is run
	through the user filter.

	The expected use of the default filter, which is stored in the
	datafile with the data, is to exclude "bad" data from normal analysis.
	Since all the data is nonetheless present, the default filter can
	be overridden to get at the normally excluded data.  This can be done
	by editing the value of the deffilt parameter, deleting the parameter,
	or by overriding elements of the filter in the user specified filter
	at run time.

	For example,

	    cl> countpoe "foo.qp[time:=@times]"

	would replace the time term of the default filter with the time list
	from the file "times", preserving any other terms of the default
	filter, whereas

	    cl> countpoe "foo.qp[time+=@times]"
	or
	    cl> countpoe "foo.qp[time=@times]"

	would modify the filter for the time attribute, passing only those
	events which pass both the default time filter and the time filter
	given in the file "times".  The new assignment operator ":=" must
	be used to override any existing filter term; if the usual "=" is
	used, the default filter term, if any, remains in effect.

	The default filter is a string of the form "attr=expr[,attr=expr...]".
	This is parsed at qpio_open time just as the user specified filter
	is, hence the default filter may reference macros, include files,
	etc.  Operators such as qpex_getattribute and qpex_attrl will return
	the final filter or range list as used to filter the data, produced
	by combining the default and user filters.  (12/27)

sys/qpoe/zzdebug.x
	Added a new debug task SETFILT, used to set the value of the "deffilt"
	parameter in a QPOE datafile.  (12/27)

sys/qpoe/QPDEFS
	1. Added a comment at the top to make it more clear that this file
	is only intended as an example of a QPDEFS file, and to give some
	pointers regarding how to use the global macro facility.
	2. Changed the event structure definitions to match those now used
	in qpoe$zzdebug.x.  (12/28)

sys/qpoe/qpexpand.x
	This routine copies the input string to the output string, expanding
	any macros or include file references in the process.  The problem
	was that qp_gettok returns a string token with the quotes removed,
	and qp_expand was merely copying tokens out, resulting in the quotes
	being stripped from string tokens.  qp_expand was modified to
	restore the quotes to string tokens written to the output stream.
	I checked various other places where text is pushed back, and all
	other instances preserved the quotes.  (12/29)

sys/qpoe/qpgettok.x
	Added support for the builtin symbol or macro "$DFN".  When
	encountered in the input stream being processed by qp_gettok(), this
	results in the datafile name being returned as a string token.  This
	can be used, for example, in macros used to call external tasks,
	e.g.,  [time=`mytask($DFN,arg,...)`].  (12/29)

sys/qpoe/qpiogetev.x
	When rereading an event list opened and read earlier, and a PLRIO
	descriptor was created, any existing PLRIO descriptor would not be
	closed first.  Added a plr_close call to deal with this case.  (12/29)

sys/qpoe/zzdebug.x
	Added a new debug task TESTPOE, used to make simple artificial or test
	qpoe files for testing purposes.  This was used to check out a bug
	report that events with x=y=1 would pass a filter containing a mask
	which excluded this corner of the image, however I was unable to
	duplicate the problem.  (12/30)

sys/qpoe/qpioparse.x
	This routine was missing a call to qp_closetext(), causing it to leave
	an open file descriptor behind.  This would cause a task which did
	many qpio_open() calls to eventually run out of file descriptors.
	[FDEBUG is very useful to diagnose problems like this).  (12/30)

sys/qpoe/qpioopen.x
sys/qpoe/qpioclose.x
	While working on other things I noticed that qpio_open() was not
	setting the IO_EXCLOSE flag when calling qpex_open to open an
	expression evaluator.  This did not matter much as qpio_close was
	not checking the flag to see if it needed to close the QPEX, but in
	the rare circumstance that a new QPEX was set with qpio_seti() an
	open descriptor would have been left behind.  Also a QPEX passed in
	with qpio_seti() woudl be closed by qpio_close() when it shouldn't.
	Modified qpio_open() to set the flag and qpio_close to check it.
	(12/30)

lib/qpset.h
lib/qpioset.h
sys/qpoe/qpoe.h
sys/qpoe/qpio.h
sys/qpoe/qpseti.x
sys/qpoe/qpstati.x
sys/qpoe/qpioseti.x
sys/qpoe/qpiostati.x
sys/qpoe/qpmacro.x
sys/qpoe/qpioopen.x
	Since the default filter (and probably mask eventually) are now much
	more dangerous or noticeable than previously, I added switches in all
	the usual places to disable the use of these defaults.  Specifically,
	in <qpset.h> we have

		QPOE_NODEFFILT
		QPOE_NODEFMASK

	(default off, i.e., use default filter or mask.  In <qpioset.h> we
	have the same thing, just at the level of a specific QPIO descriptor:

		QPIO_NODEFFILT
		QPIO_NODEFMASK

	And for global control by the user we have the new global set options

		set nodeffilt
		set nodefmask

	which do what they say (omit or comment out these definitions to
	enable use of the default filter and mask).  (12/31)

sys/qpoe/qpioparse.x
	As an alternative to the "attr := expr" syntax, which can only
	override any earlier filter terms for the referenced attribute (such
	as terms of the default filter) I added some new syntax which can
	disable the entire default filter and mask for a particular filter
	expression.  This is done by adding a "!" after the leading "[", and
	before the new filter, e.g.:

		display "foo[!time=@times.lst,pha=(3,8:11)]"

	would temporarily disable both the default filter and mask.  This
	does not affect the use of ! within expressions since an expression
	cannot be the first term of a filter.  (12/31)

sys/qpoe/qpioopen.x
	A QPOE file is supposed to be able to contain more than one event
	list, so the default filter/mask facility was modified to permit
	a different default filter or mask to be specified for each event
	list.  For example, to define a default filter for event list "foo",
	one would insert the parameter "deffilt.foo" into the datafile.
	When looking for the default filter or mask, qpio_open() will look
	first for the "def[filt|mask].<evl>" parameter, then "def[filt|mask]".
	(1/1/91)

sys/qpoe/qpiolmask.x
sys/qpoe/qpioopen.x
sys/qpoe/qpiosetfil.x
	The default mask mechanism was modified to provide the same
	semantics as the default filter.  If a default mask is defined and
	nodefmask is not set, the default mask is used as a spatial filter
	for event i/o.  If a default mask is defined, nodefmask is not set,
	and a user mask is also specified, the user mask is edited using the
	default mask as a stencil (the new mask is the user mask, with only
	those pixels set which were also set in the default mask).  Setting
	nodefmask, QPOE_NODEFMASK, QPIO_NODEFMASK, or using ! or mask:= in a
	filter expression disables the default mask.  If the mask is set
	with an explicit qpio_seti() call the default mask is ignored.  (1/1)

sys/plio/plsten.x
	This routine was evidently not working at all, due to an internal
	interface change that was never propagated to this routine.  The
	call to pl_linestencil was missing the maxpixval argument for both
	the source and destination line lists.  (1/1)

sys/qpoe/qpexcode.gx
	The QPEX parser syntax for bitmask expressions was generalized
	somewhat to permit expression negation and parens, e.g., "%1",
	"!%1", "!(%1)", "!(!%1)", etc. are now handled properly.  Range
	lists are still not supported for bitmask expressions, as it is
	not clear that such a feature would be useful (one can just enter
	a different bitmask instead).  (1/1)

sys/qpoe/README
	Updated this file to reflect all recent changes to the QPOE
	interfaces.  (1/2)

pkg/dataio/doc/rcardimage.hlp
pkg/dataio/cardimage/t_rcardimage.x
	Modified the rcardimage help page to include an example of how
	to reformat an odd-blocked cardimage tape with reblock.
	Modified the rcardimage task to print a clearer error message
	when it encounters an odd-blocked rcardimage tape. (1/3 LED)

pkg/system/help/help.par
pkg/system/help/t_help.x
pkg/system/help/tlist.x
pkg/system/help/help.h
	The HELP task was modified to add a new parameter "curpack", default
	value "AskCL".  With this default the help task will issue a clcmdw
	to ask the CL the name of the current package; this is necessary to
	preserve the current semantics of HELP (in the case of task redefs,
	help for the task in the current package is returned).  The reason
	for the new parameter is to allow the current package to be
	specified explicitly to avoid the clcmdw query, e.g., when calling
	the task at the host level.  (1/4)

dev/hosts
	Added noctua to iraf hosts table.  (1/8/91 SRo)

pkg/dataio/fits/fits_rimage.x
pkg/dataio/fits/fits_wimage.x
	The scaling routines in rfits and wfits were modified to minimize
        the precision lost when converting from real pixels to fits integers
	and vice versa. (1/17/91 LED)

dev/hosts
        Added aquarius to iraf hosts table on tucana and Draco/iraf.
        (1/17/91 jvb)

unix/hlib/extern.pkg	[orion, tucana]
	Added steward package at iraftest level after numerous discussions.
	(1/22/91 SRo)

dev/devices		[ursa]
	Added argo and libra exabytes, since these machines are hosted by
	ursa now.  Just tacked onto the end (mt[fgh]); perhaps we should
	establish noao conventions for which letters represent 9track,
	cartridge, exabyte, dat.  (1/28/91 SRo)

pkg/images/gradient.par
pkg/images/laplace.par
pkg/images/gauss.par
pkg/images/convolve.par
pkg/images/doc/gradient.hlp
pkg/images/doc/laplace.hlp
pkg/images/doc/gauss.hlp
pkg/images/doc/convolve.hlp
pkg/images/filter/t_gradient.x
pkg/images/filter/t_laplace.x
pkg/images/filter/t_gauss.x
pkg/images/filter/t_convolve.x
pkg/images/filter/convolve.x
pkg/images/filter/xyconvolve.x
pkg/images/filter/radcnv.x
	Modified the convolution operators (laplace, gauss, and convolve) to
	make use of symmetries in the convolution kernel to compute the
	convolution much faster. Laplace now makes use of radial
	symmetry in the y direction as well as the x direction
	resulting in a modest decrease in execution time. Gauss now
	computes 2 indepedent 1D convolutions in x and y if the user
	specified kernel is separable in x and y instead of the full 2D
	kernel. (1/29/91 LED)

dev/hosts
	Added Doug Rabin's mozart to irafx host table.  (1/30/91 SRo)

--------------------------
Tucana system upgraded from SunOS 4.0.3 to 4.1.1.  (2/4)
Began revisions of Sun/IRAF to support SunOS 4.1.  (2/5)

./*
	The iraf root was relocated to /u3/iraf on tucana, retaining link
	at /usr/iraf.  All of the iraf runtime files (sources and bins) are
	now consolidated on /u3.  (2/6)

unix/*
	Did a bootstrap of the system (mc68020 version) under 4.1.1 without
	incident.  (2/6)

local/.login
local/.exrc
	Made a number of changes for 4.1.1.  Added OPENWINHOME and MANPATH
	definitions.  Added /usr/lang (default location of new Fortran
	compiler) to the default PATH.  FLOAT_OPTION is no longer defined
	as it is not used by the new compilers and causes a warning message
	to be issued.  The default IRAFARCH for Sun-3 systems is now f68881
	if the f68881 binaries are installed.  EXINIT is no longer defined,
	added a .exrc file instead to allow for vi macros such as the very
	useful "@".  Deleted the susp/eof control in STTY, it seems time to
	abandon the DEC defaults and go with the UNIX standard ctrl/z and
	ctrl/d instead.  (2/6)

unix/boot/spp/xc.c
	The SunOS version of XC was modified to look for the IRAFARCH
	environment variable and add a -f68881, -ffpa, etc. switch to the
	f77 or cc command line.  Specifying any switch beginning with -/f on
	the XC command line overrides the use of IRAFARCH.  With this change
	the architecture used for both compilation and linking is controlled
	entirely by IRAFARCH, and FLOAT_OPTION is no longer used.  So long
	as IRAFARCH is specified and all modules of a program are compiled
	with the same setting, mixing of modules or libraries compiled for
	different architectures is ruled out.  (2/6)

unix/shlib/edsym.c
	Looking at the edsym code I note that lseek(fd,o,L_SET) is now
	considered obsolete and one is supposed to use lseek(fd,o,SEEK_SET)
	instead, including <unistd.h> to define SEEK_SET.  L_SET is still
	defined for backwards compatibility so I think I will leave things
	as they are for now.  (No changes.)  (2/6)

unix/shlib/mkshlib.csh
	1. Modified to support the new Sun V1.3 Fortran compiler.  The iraf
	shared image is linked explicitly with LD and it is necessary to
	specify exactly the directories, objects, and libraries to be
	linked.  These are much different for the new compiler than for the
	old one.  For example, for f68881 one links with
	/usr/lang/SC0.0/crt0.o, /usr/lang/SC0.0/f68881/_crt1.o, the libm.a
	in SC0.0/f68881 (linking with the SC0.0 version of libm.a causes
	Mlog10[ds] to be unresolved), and the libF77.a in SC0.0.  In
	principle the directory /usr/lang can be relocated so this is
	defined as a variable at the top of the file.

	2. The following error message was being reported (by edsym) when
	linking shared with XC under SunOS 4.1:

	    cannot read shared image version number from <file>.e

	In the code which generates the S.s file (the shared library) I
	moved ushlib from data space to text space.  Evidently under 4.1.1
	the system is more clever and can have initialized data at addresses
	for which corresponding file offsets do not exist in the executable
	file.  This results in a seek to an offset beyond the end of the .e
	file, leading to the error message shown above.  Since ushlib is not
	modified at runtime we can just as easily have it in text space,
	which avoids the problem.  A simple workaround for this problem is
	to link -e (no edsym symbol table editing).  (2/6)

unix/hlib/mkpkg.inc
	Added -libmil (use inline templates) and -dalign (double align type
	double data) to the list of default mkpkg compile switches for the
	new compiler.  By default the compiler will use optimization level -O3
	and on a Sun-4, will compile -cg87.  This latter option is necessary
	for code compiled for a Sun-4 to run on both older and newer Suns,
	which have different floating point units.  There is another option
	-cg89 which tells the compile to take advantage of certain features
	of the newer floating point units (e.g. hardware sqrt) but we can't
	use that for binaries that must run on all sparc systems.  (2/6)

unix/hlib/mkpkg.sf.SUN3
unix/hlib/mkpkg.sf.SUN4
	Commented out all the bug entries, we should start over with this
	new compiler.  (2/6)

---------------------
Started full f68881 sysgen/recompile.  (2/6)

unix/hlib/mkpkg.sf.SUN3
	The files vops$ak/{abnekx.x,abnex.x} and vops$lz/aveqx.x, all of
	which contain equality comparisons of complex numbers, produced the
	following message from the V1.3 compiler:

	    warning: unexpected parent of complex expression subtree

	Compiling the files without optimization avoids the problem.  The
	floating point or complex equalities used in these routines are
	questionable, but there does not appear to be anything wrong with
	the code.  (2/7)

unix/boot/spp/xpp/decl.c
	The d_runtime() routine returns in a char argument any runtime
	initialization text needed for a procedure.  The routine would do
	nothing if no initialization was required, which was incorrect, as
	any old text in the string buffer argument would then be reused.
	Modified to write an EOS into the output string in this case.
	This bug was introduced as a result of a recent change in V2.10
	iraf.  (2/7)

pkg/cl/compile.c
	The CL failed to come up after the sysgen.  This was eventually
	traced to the compile() function.  This contains a register flag
	"status" which was used without being initialized.  The routine
	would operate correctly provided the (random) value of the variable
	was anything other than ERR.  This is highly likely which is why
	the bug has gone undetected for so long.  (2/7)

unix/sun/Makefile
	Changed the suggested values of FLOAT from fswitch/fsingle for
	Sun-3/other to -f68881/"".  (2/7)

-----------------------------------
Sysgen of f68881 binaries for core system completed.
Sparc bootstrap completed; sparc sysgen begun.
Sysgen of f68881 binaries for noao packages begun.  (2/7)

unix/hlib/mkpkg/host.c
	In the sparc sysgen I got an error message complaining that a $purge
	directive had failed.  It turns out that the unix/iraf version of
	h_purge in host.c is a no-op and does not even return an exit status,
	which is incorrect as the status of the routine is checked by the
	portable mkpkg code.  I modified it to always return an exit status
	of OK.  Checking the rest of the routines in the file, there was
	one other routine which inconsistently returned status values and I
	fixed that as well.  (2/8)

unix/hlib/mkpkg.inc
	Deleted the "-dalign" switch from all X*FLAGS entries.  It turns out
	that the CL does not begin to double align double data, and cannot
	be easily modified to do so, so this cannot be used, at least with
	the CL C code (SPP pretty much double aligns all double data so there
	is no problem there).  This option only affects Sun-4s, i.e., the
	already compiled f68881 code is not affected by this switch.  (2/8)

-----------------------------------
ffpa sysgen begun.  (2/8)

unix/boot/spp/xc.c
	The ffpa sysgen went fine except that all the links failed with a
	ffpa_used unresolved external message.  This was occurring due to
	the -Bstatic and the reference was occuring in one of the C libraries.
	It was necessary to add a -f<float-option> switch to the CC command
	used for the link to avoid the problem.  XC explicitly links all the
	right Fortran libraries for a given architecture, but it is still
	necessary to pass the -fxxx flag for the benefit of the C libraries.
	(2/8)

bin.ffpa/S.e
bin.f68881/S.e
bin.sparc/S.e
unix/boot/spp/xc.c
	Since shared image version support has been around for a year or so
	and V2.10 no longer uses the older shared images I deleted S.e and
	S4.e in the recent sysgens, leaving only the current (actually V2.9)
	shared image S5.e.  It turns out however, that XC needs to have a
	file entry S.e in the directory containing the real shared image in
	order to permit runtime searching to find the file (runtime searching
	is necessary to provide architecture support, IRAFULIB support, etc.).
	XC could search for S<n>.e except that it is difficult to determine
	the shared image version number.  The simple solution was to add a
	file entry S.e in each of the core system BIN directories.  This is
	not an actual shared image, rather a zero length directory entry used
	to flag the directory containing the real shared image or images.
	If this marker file is not present the system will still run, but
	link time EDSYM symbol editing will be disabled.  (2/10)

unix/shlib/mkshlib.csh
unix/os/zmain.c
unix/os/zzstrt.c
unix/os/zshlib.c
	It turned out that zmain/zzstrt were using the ushlib vector to pass
	the sh_debug flag, used to map the shared image text writable so
	that debug breakpoints can be set (as in :r -w in adb).  This was a
	bit of a trick and doesn't work any more since I moved ushlib to the
	text segment, so I made sh_debug an explicit variable in data space.
	It is defined in the shared library (libshare.a) or in zshlib.o if
	linking unshared.  (2/10)

unix/hlib/install
	I added a rm -f preceeding each ln -s, since ln will not clobber
	any existing link.  This could occur in certain cases when link
	/usr/include/iraf.h already existed but had the wrong value.  (2/10)

unix/as.sparc/oscmd.s		+
unix/hlib/mkpkg.sf.SUN4
	After the sparc sysgen with the new compiler all OS escapes would
	fail with the error "cannot open `A'".  This was traced to a host
	compiler error for file oscmd.x.  The null string "" was being passed
	to a subroutine; in Fortran this is a short array of length 1
	initialized to zero, but the compiler was initializing the value to
	random garbage, in this case A (in tests I ran other values were
	generated).  Other identical cases of "" being passed to subroutines
	in the same file were compiled correctly.  Compiling without
	optimization did not help, so I had to edit the assembler and place
	the file on the special file list.  (2/10)

---------------------------------
SunOS 4.1.1 / Sun Fortran 1.3.1 upgrades completed (except for full
testing and further bug fixing).  (2/10)

iraf/dev/devices  [Ursa only]
        Added mti to the devices file for libra's 9track tape drive.  It
        was interesting that there was no entry in the devices file when
        libra was served by orion - but then the host names were the same
        for both orion and libra's mtas.

sys/qpoe/qpioparse.x
	The event list filter syntax supports runtime specification of the
	event coordinate system to be used with the notation key=(xoff,yoff)
	where xoff,yoff are event field specifiers, e.g., (s0,s2).  Fixed
	two problems with the code in this routine which parses the KEY
	keyword: 1) whitespace etc. was not being skipped properly, causing
	the key= expression to be rejected, and 2) the offset values were
	being used directly, which is incorrect, since at the user level
	event struct offsets are specified in bytes, whereas in the QPIO
	descriptor short integer offsets are used for efficiency reasons.
	With these problems fixed the key=(x,y) feature checks out, i.e.,
	QPIO itself handles the key properly and it was only the parsing
	routine which had problems.  (2/10)

dev/devices 	[tucana]
	deleted mt device aliases no longer used in OS 4.1.1  (2/12 ShJ)

sys/qpoe/qprenamef.x
	This routine renames a header parameter by creating a new one and
	setting the deleted bit in the old one.  There was a subtle bug
	which could cause the old parameter to fail to be deleted.  The
	routine was indeed setting the delete bit in the symstruct of the
	old parameter, but it was doing so *after* adding the new parameter
	to the SYMTAB symbol table.  This was not correct because the
	symstruct of the first parameter was being referenced by an absolute
	pointer the value of which was computed before the new parameter
	was added.  In SYMTAB adding a new parameter can cause the symbol
	table to be reallocated, invalidated any such pointer.  (2/13)

sys/qpoe/qpgnfn.x
	1. The pattern string input by the user was being used almost directly,
	after only * -> ?* mapping.  Any match was accepted.  This is
	incorrect because we want to accept matches which only match the
	*entire* field name.  It is necessary to constrain the match to
	begin at the beginning of the string being checked, and verify that
	the entire string is matched.
	2. Sorting was not working correctly.  The package was using zero
	indexed string buffer offsets internally, and calling STRSRT with
	this index array.  This is incorrect because STRSRT expects a one
	indexed index array.  The result was that the list would be sorted
	ignoring the first character of each string.  (2/13)

sys/qpoe/zzdebug.x
	Added a "sort" parameter to the HLIST task.  (2/13)

sys/imio/db/imgnfn.x
sys/imfort/db/imgnfn.x
pkg/images/doc/hedit.hlp
	Since the QPOE gnfn code was derived from IMIO I figured the IMIO
	code might have the same bug and indeed it did (the pattern matching
	bug, not the sort bug).  Fixing this should fix the problem of HSELECT
	matching field names using a prefix-match rather than full match.
	The IMIO version was mapping * to ?* and was constraining the match
	to the beginning of the name, but was not checking for a full
	length match.  This was not completely trivial as the name being
	matched is embedded in a FITS card, hence space or "=" terminates
	the name, rather than EOS.  (2/13)

sys/ki/ki.h
sys/ki/kighost.x
	Added support for an optional environment variable "irafhostnametable".
	If defined, this specifies the host pathname of the hosts file to be
	used for iraf networking.  The default is dev$hosts.  (2/13)

	[Changed variable name to "irafhnt".  The original name was too long,
	this could conceivably cause problems on some systems. (5/13)]

unix/hlib/mkpkg.sf.SUN4
	Evidently with the latest OS, the sparc register set is no longer
	saved with the version of SETJMP found on a Sun-4.  This would cause
	a process executed on a Sun-4 to die in the iraf main during error
	recovery, upon return from the ZSVJMP call.  Compiling without
	optimization so that the compiler does not cache values in registers
	seems to avoid the problem.  I added etc$main.x to the special file
	list to be compiled without optimization, although this is probably
	going to be sufficiently common problem that we might want to
	consider some more machine independent way of always compiling
	without optimization routines that use ZSVJMP.  (2/14)

pkg/images/doc/hedit.hlp
pkg/images/doc/hselect.hlp
pkg/images/doc/imheader.hlp
pkg/images/doc/imgets.hlp
	Added a reference to the imgets and imheader tasks in the SEE ALSO
	sections of the HEDIT and HSELECT tasks. Added a reference to the
	HSELECT and HEDIT tasks in the SEE ALSO sections of the IMHEADER
	and IMGETS tasks. (2/22/91 LED)

pkg/images/imfit/imsurfit.x
        Fixed a bug in the deviant pixel rejection code in the IMSURFIT
	task. If the parameter upper > 0 and lower = 0.0 or vice versa
	the rejection limits were not being computed correctly. In the
	former case all point with negative residuals were rejected
	instead of none and in the latter case all points with positive
	residuals were rejected instead of none. (2/25/91 LED)

sys/fio/getlline.x
sys/fio/glongline.x
	Added some comments to the file headers noting that the size of
	the output buffer must be at least SZ_LINE characters larger than
	the length of the longest line to be read.  (3/01)

sys/mwcs/iwewcs.x
	The value of the (obsolete) FITS keyword CROTA2, which is input in
	decimal degrees, was being used without first converting to radians.
	There is no problem when the CD matrix notation is used instead. (3/12)

pkg/images/tv/display/sigl2.x
	The routine si_blkavgs, which is used to block average an image
	(when scaling a large image to fit into a small display window)
	would accumulate the sum of several short integer image lines in
	a short integer buffer.  This could lead to integer overflow in
	the case of images with large pixel values.  The routine was
	modified to accumulate into a buffer of type long.  (Note that
	the problem affected only block averaging in Y, X was being
	handled correctly by the vector operator ABAV.).  (3/20)

dev/hosts
	Updated grus from 68881 to sparc.  (3/21/91 SRo)

dev/hosts
	Added herbie, Stuart Jeffries' new workstation to table.  (4/2/91 SRo)

sys/fio/fstati.x
sys/fio/fmkpbbuf.x
	1. A fstati on F_UNREAD returns the number of unread characters in the
	file buffer.  This was ignoring any pushback; the fstati routine was
	modified to count pushed back data as well as any data remaining to
	be read in the current buffer area.  Zero will be returned only if
	the file buffer is empty and there is no pushed back data.
	2. fmkppbuf (make pushback buffer) will now automatically create the
	normal file i/o buffer if any pushback occurs.  Probably this is not
	necessary but we may as well make sure that pushback before any file
	i/o occurs is not different than after i/o has occurred and a buffer
	has been created.  (4/2)

sys/imio/iki/oif/mkpkg
sys/imio/iki/oif/oifgpfn.x
	Added an "include <knet.h>" to oifgpfn.x.  This is needed for the
	zfsubd call in the routine.  (4/3)

sys/ki/kfsubd.x
	Was not returning the length of the output string correctly in
	the case of a file on the local node, but with the node name
	prefix included.  (4/3)

dev$hosts
        Added khaki, lapis, taupe, scarlet, and elsol to dev$hosts on
        tucana, orion, gemini, and ursa.  (4/5 jb)

pkg/images/geometry/geofit.x
pkg/images/geometry/geogmap.x
pkg/images/doc/geomap.hlp
	Cross-term fitting will now work in the case where xxorder=2
	and xyorder=2 (x fit) and in the case where yxorder=2 and
	yyorder=2 (y fit). (4/9/91)

dev$hosts
        Added aliases to dev$hosts on tucana, orion, gemini, and ursa
        for machines on mountain (machine.kpno.noao.edu).  (4/10 jb)

hlib$extern.pkg
	Swapped RV0 for RV since this will be the new package.  No tucana
	users are working w/ RV at present anyway.  (4/16  MJF)

pkg/images/geometry/t_blkavg.x
pkg/images/geometry/blkavg.gx
pkg/images/geometry/blkavg.x
        The blkavg task was partially modified to support complex image data.  
	The full modifications cannot be made because of an error in abavx.x
	and the missing routine absux.x. (4/18/91 LED)

pkg/images/imarith/t_imcombine.x
	Changed the order in which images are unmapped to unmap the output
	images last.  Closing the input images frees file descriptors
	which are needed for the temporary file used when updating
	STF images.  Previously IMCOMBINE would fail for STF images which
	used the full number of file descriptors, had a sigma output
	image, and a logfile.  (4/22/91, Valdes)

math/curfit/cv_b1eval.gx
math/curfit/cv_beval.gx
math/curfit/cv_feval.gx
math/curfit/cvaccum.gx
math/curfit/cvacpts.gx
math/curfit/cvchomat.gx
math/curfit/cvfree.gx
math/curfit/cvinit.gx
	Did some cleaning up in the .gx files to make the code easier to
	read. (4/23/91, LED)

sys/ki/ki.h
	Increased the maximum number of nodes from 64 to 128.  This is only a
	stopgap measure; eventually the code should be rewritten to eliminate
	the fixed size static host name table.  (4/29)

dev/devices.hlp
dev/graphcap
dev/termcap
	Added "lw6" and removed "imagen" from these files on tucana, gemini, 
	ursa, orion and irafx@draco.			(4/30 ShJ)

pkg/images/doc/imarith.hlp
	Fixed some formating problems in the IMARITH help page. (5/2/91 LED)

math/curfit/cvpower.gx
	Changed the amovk$t (INDEFR,,,) call to amovk$t (INDEF,,,) to avoid
	the double precision version of the routine being called with
	INDEFR. This problem was caught with f2c on the Mac. (5/6/91 LED).

math/gsurfit/gs_f1deval.gx
	Changed the amulk$t (,,,2.,,,) call to amulk$t (,,,2$f,,,) to remove
	a type dependency mismatch in the routine.  This problem was caught
	with f2c on the Mac. (5/6/91 LED).

math/curfit/cverrors.gx
math/curfit/cvpower.gx
math/curfit/cvrefit.gx
math/curfit/cvrestore.gx
	Finished cleaning up the .gx files in the curfit directory. (5/6/91 LED)

unix/hlib/login.cl
        The line

            if (access ("home$loginuser.cl") cl < "home$loginuser.cl"

        causes the following statement to be ignored if the IF is true.
        This is a CL bug, but for now the workaround is to add a null
        statement ; to the line following the IF.  (5/6)

unix/sun/imtoolrc
	Added a new config imt31|imtret for the Reticon CCD (1240x400_
	at the request of CTIO.  (5/8)

lib/math/curfit.h
lib/math/gsurfit.h
lib/math/iminterp.h
lib/math/interp.h
lib/math/surfit.h
	Added dictionary string definitions for the interpolator types and
	weights.  Use of these strings insures that strdic/clgwrd will
	return the correct type code.  Currently one has to assume the code
	definitions will not change or put a lookup table with a data
	statement containing the macro definitions.  The code would also
	have to be modified to add new types.  The dates were restored to
	their original values to avoid recompilation.  (5/9, Valdes)

	[I updated the dates on the above files and performed sysgen updates
	over the weekend.  It is dangerous to modify files without modifing
	the file date, as this can break various automatic system maintenance
	procedures.  (5/11DCT)]

unix/hlib/login.cl
	The noao and proto packages are now loaded by default in the standard
	login.cl.  This indirectly includes images, tv, and plot.  (5/11)

pkg/images/imarith/t_imarith.x
	There was a missing statement to set an error flag if the operand
	image dimensions do not agree.  (5/14/91, Valdes/Schaller)

pkg/images/minmax.par
pkg/images/imutil/t_minmax.x
pkg/images/imutil/minmax.x
pkg/images/doc/minmax.hlp
	Modified the minmax task to compute the minimum and maximum
	pixel values with the correct precision if the input images are
	of type double precision or complex. Note that does not get
	around the fact that the minimum and maximum pixel values are
	stored in the image header as type real. (5/16/91 Davis)

pkg/images/listpixels.par
pkg/images/iminfo/listpixels.x
pkg/images/doc/listpixels.hlp
	Modified the listpixels task to print the image pixel coordinates
	in logical, physical or world coordinates. The default is logical
	as before. (5/17/91 Davis)

unix/boot/spp/xc.c
unix/boot/mkpkg/main.c
unix/boot/mkpkg/mkpkg.h
	These tasks have supported multiple -p pkg arguments for some time,
	but would only pass one such argument on to subprocesses.  XC was
	modified to pass multiple -p pkg arguments on to XPP and MKPKG was
	modified to load the mkpkg.inc file for multiple enviroments
	(formerly it would load multiple environments, but would only read
	one mkpkg.inc in addition to the global core system one).  The PKGENV
	environment variable was generalized; this can be now be a
	whitespace delimited list of packages, not just a single package
	name.  It was not necessary to modify MKPKG to pass -p pkg stuff
	on to XC, since this is done explicitly in the package mkpkg.inc
	files (by redefining XFLAGS and LFLAGS).  (5/21)

sys/vops/asqr.gx
	Changed to test for <0 rather than <=0, since taking the square root
	of zero is a legal operation.  (6/3)

pkg/dataio/fits/fits_read.x
pkg/dataio/fits/fits_write.x
	Modified the fits reader and writer to deal correctly with
	image sections in the IRAFNAME header parameter. (11/6 LED)

pkg/images/iminfo/imhistogram.x
	The imhistogram task has been modified to print out the value
	at the middle of the histogram bin instead of the value of the
	left most edge if the output type is list. (11/6 LED)

pkg/dataio/doc/wfits.hlp
pkg/dataio/fits/wfits.h
pkg/dataio/fits/t_wfits.x
pkg/dataio/fits/fits_write.x
pkg/dataio/fits/fits_wheader.x
	The wfits task has been modified to write IEEE format FITS files,
	fits bitpix = -32 and -64, instead of scaled integers if the input
	image pixel type is real or double respectively and if the wfits
	parameter bitpix is left at the default. If the user overrides the
	default and elects to scale the data, a warning message with an
	estimate of the maximum precision loss is provided. (11/6 LED)

dev/termcap
	Fixed typo so that "stty wyse" works, not just "stty wyse75".
	(6/12/91 SRo)

dev/devices [gemini only]
        Updated the devices file on gemini for Tom Duvall's two Exabytes
        on his workstation.  They are called rst0 and rst1 so this
        causes duplicate entries in the devices file for different
        mt[devices].  (6/13/91 jb)

sys/etc/mkpkg
sys/etc/qsort.x
sys/etc/xqsort.x		+
	Added a new routine XQSORT, a variant on the old QSORT routine.
	This is identical to qsort except for an extra argument which is
	private to the compare routine and merely passed on to the compare
	routine by xqsort.  The intent of this is to avoid the need for
	initialization routines and commons to pass context information
	on to the compare routine.  The datatype of the "private data"
	argument is int but a pointer can be passed as well, as in C where
	an integer cast is used to pass pointer data in an integer.  Since
	a pointer can be passed, if necessary any arbitrarily complex
	descriptor can be passed on to the compare routine.  (6/15)

	!NOTE -- the name of this procedure had to be changed to "gqsort".
	!See note below.  (6/27)

lib/clio.h
lib/clset.h
sys/clio/README
sys/clio/mkpkg
sys/clio/clcache.x
sys/clio/clstati.x
sys/clio/clepset.x		+
sys/clio/clgpseta.x		+
sys/clio/clppseta.x		+
sys/clio/clgpset.x
sys/clio/clppset.x
	1. Added a full CLIO interface definition to the README file.

	2. The pset routines cl[gp]pset, used to get/put the values of
	string valued parameters, where named to cl[gp]pseta as the old
	names were too misleading (what does it mean to get/put a pset).
	The old routines are retained for compatibility but are now
	considered obsolete.

	3. The CLGFIL routines are also now considered obsolete.  clgstr
	and fntgfn etc. should be used instead.  It doesn't make any sense
	to have a system routine that arbitrarily combines two such 
	different facilities as get-string and the file name template
	package (if this is justified then any number of other equally
	logical combinations are possible too).

	4. Added a new routine CLEPSET to the pset package.  This is called
	to "edit" a pset.  So far as the application is concerned all this
	means is that the pset values can be changed by the operation.  In
	the specific case of the current combination of CLIO and the CL,
	EPARAM is called to edit the pset and the edited values are updated
	in the parameter cache in the local process.  This routine is still
	considered experimental.  (6/22)

pkg/cl/task.h
pkg/cl/exec.c
pkg/cl/opcodes.c
	Minor changes to the CL were required to support the CLEPSET
	routine.  clepset uses dparam to efficiently obtain the edited pset
	and update the local parameter cache.  A way was needed to redirect
	the output of a task like dparam back to CLIO in a subprocess.  A
	hidden special file ("IPC$IPCIO-OUT" currently, but this could
	change at any time) was defined such that if a task is run with the
	output redirected as in "dparam > IPC$IPCIO-OUT" the stdout of the
	task is sent to t_out, the CLIN of the subprocess which issued the
	command.  When the task terminates the message "# IPC$IPCIO-FINISHED\n"
	is sent to mark the end of the output from the task.

	These changes are considered internal to CLIO.  The method used to
	implement this feature is a minimum-modification approach which
	only solves a part of a more general problem, hence this facility
	should not be used outside of CLIO.  (6/22)

sys/clio/README
sys/clio/clcache.x
sys/clio/clio.com
sys/clio/clepset.x
sys/etc/main.x
	1. Added a new routine clc_compress() to the CLIO parameter cache
	code, with a call to this routine in clepset().  The caching
	mechanism handles parameter updates by simply redefining the
	parameter and its value in the symbol table; if there are many
	parameter updates significant wasted space can result.  clc_compress
	rebuilds the cache symbol table, saving only the most recent entry
	for each parameter.

	2. Modified clc_init() to permit it to be called repeatedly to
	reinitialize the parameter cache.  Modified main.x to use clc_init
	instead of clc_mark/clc_free to reinitialize the cache before
	running a task.  This was done to eliminate the external marker,
	which would be invalidated after rebuilding the cache symbol table
	in an operation such as clc_compress.  (6/23)

sys/gio/imdkern/idk.x
	The arguments "frame" and "color" to the idk_open procedure were
	being modified by the procedure, causing the external values to be
	preserved across open/close workstation calls.  This was causing
	the automatic frame number detection logic to fail when displaying
	to multiple frames without restarting the kernel.  (6/23)

sys/clio/README
sys/clio/mkpkg
sys/clio/clcache.x
sys/clio/cllpset.x			+
	Added a new routine clc_list(fd,pset,format) to the parameter
	cache package, and a corresponding routine cllpset(pp,format) to
	the pset package.  These are used to list the contents of a pset,
	or of the full parameter cache, to an output file using a caller
	specified format.  (6/23)

sys/fio/fseti.x
	Added a call to fcanpb() in the F_CANCEL code to cancel any pushed
	back input.  (6/24)

dev/hosts
	Added radix (Richard Green) to host table.  (6/27/91 SRo)

sys/etc/mkpkg
sys/etc/qsort.x
sys/etc/xqsort.x		-
sys/etc/gqsort.x		+
	It was necessary to change the name of the recently added procedure
	"xqsort" to "gqsort" to avoid a library name conflict.  The old
	qsort procedure is defined in hlib$iraf.h as "xqsort".  The best
	thing to do would have been to change this definition to something
	more obscure, but this would have required recompiling all existing
	applications that use qsort, and worse, since there would be a new
	procedure xqsort with a different calling sequence, existing 
	applications using the new shared image would get the new xqsort
	and would have died with a segvio when the program was executed.
	It is easier to pick a new name then force recompilation of the
	existing applications.  (6/27)

dev/termcap
dev/graphcap
	Added new entry for pericomdg submitted by Skip Schaller.  Modified
	existing termcap entry for vi501 as suggested by Alan Koski.  (7/5 ShJ)

dev$hosts
	Added aliases to dev$hosts on tucana, orion, gemini, ursa,
	and draco for downtown node "morrison".  (CB, 7/5/91)

ursa!hlib$extern.pkg
	Set ccdacq as a top level package to point to /u2/rooke/ice/ccdaqcq.
	(7/5/91 SRo)

sys/pmio/miogl.x
	The activation code in this routine was not initializing the "ve"
	vector.  The error was harmless in the typical case where the
	i/o range is the full image, but could lead to an error when
	mio_setrange was used to specify a subregion, becasuse the "ve"
	vector was only used in the latter case.  (7/6)

sys/pmio/zzdebug.x
	Added a "region" parameter to the MIO zzdebug task, to allow testing
	of mio_setrange.  (7/6)

sys/imio/db/imgnfn.x
sys/imio/db/idbkwlu.x
sys/imio/db/imgftype.x
sys/imio/db/idbpstr.x
sys/imio/db/idbgstr.x
	1.  The image keyword list (gnfn) stuff, which was modified earlier
	to require full keyword matches for header keywords, would still
	permit partial matches for the standard builtin keywords (there
	was a second call to patmatch, used to check the stadard keywords,
	which was missed earlier).
	2. Tightened up the keyword matching performed on the naxisN keywords.
	Formerly there would have been a conflict if a user keyword happened
	to have a name such as "naxisNfoo".
	3. In imgftype, there was some code in the procedure to check for
	"i_" and naxisN which was apparently redundant (idb_kwlookup already
	does this) so I deleted the code.  (7/8)

pkg/system/help/helpdb.x
pkg/system/help/helpdir.x
	1. Added a new routine hd_debug to helpdir.x.  This dumps the
	descriptor of a compiled help directory to a file and is used for
	debugging purposes (it is not used in the runtime system).

	2. The routine hdb_make_rhd, used to make the root help directory
	(directory of packages), contained a line HD_NMODULES(hd) =
	HDB_NENTRIES(db) which was incorrect; this could add extra,
	unitialized modules to the help directory just assembled, possibly
	leading to a segementation violation when later the unitialized
	entries were referenced.  This was causing segmentation violations
	when many external packages were loaded (the bug would only come
	into effect with root help directories, and each external package
	has one).  The bug has always been there, it is just more likely to
	cause a problem when there are many packages.  (7/10)

sys/qpoe/qpexmodfil.x
	A filter expresion such as "foo = expr" is supposed to be the same
	as "foo += expr", adding to any existing filter term, instead of
	replacing the existing filter as with "foo := expr".  This code had
	it the other way around, i.e., = was the same as := (replace).  (7/15)

unix/hlib/login.cl
	Modified the template login.cl as follows:
	1. Added code to check the environment variable TERM, if it exists,
	for the special cases "sun" and "xterm".  This won't work in many
	cases but should make it easier for people to customize things if
	they want, without requiring a loginuser.cl.
	2. If the file ".hushiraf" is seen during login the message of the
	day is not printed and cl.menus is set to no.  This makes it
	possible to get a simple cl prompt without all the other verbiage
	being printed, which experienced users don't necessarily want
	to see during every login.
	3. Deleted some old stuff that has been commented out for quite a
	while without causing problems.  (7/15)

pkg/system/doc/mkdir.hlp
	Fixed a typo.  (7/18)

dev/hosts
        Added enzo to the hosts table (Frank Hill's new machine). Did this on
        tucana and gemini. (7/19 jb)

pkg/images/imarith/imc* -
pkg/images/imarith/ic* +
pkg/images/imarith/t_imcombine.x
pkg/images/imarith/mkpkg
pkg/images/imarith/generic/mkpkg
pkg/images/imcombine.par
pkg/images/doc/imcombine.hlp
	Replaced old version of IMCOMBINE with new version supporting masks,
	offsets, and new algorithms.  (7/19 fv)

lib/math/iminterp.h
math/iminterp/arbpix.x
math/iminterp/arider.x
math/iminterp/arieval.x
math/iminterp/asider.x
math/iminterp/asieval.x
math/iminterp/asifit.x
math/iminterp/asiffree.x
math/iminterp/asigrl.x
math/iminterp/asiinit.x
math/iminterp/asirestore.x
math/iminterp/asisave.x
math/iminterp/asivector.x
math/iminterp/ii_1dinteg.x
math/iminterp/ii_eval.x
math/iminterp/ii_pc1deval.x
math/iminterp/im1interpdef.h
math/iminterp/doc/arbpix.hlp 
math/iminterp/doc/arider.hlp
math/iminterp/doc/arieval.hlp
math/iminterp/doc/asider.hlp
math/iminterp/doc/asieval.hlp
math/iminterp/doc/asifit.hlp
math/iminterp/doc/asigrl.hlp
math/iminterp/doc/asiinit.hlp
math/iminterp/doc/asivector.hlp
	The 1D image interpolation routines were replaced with new versions 
	modified by Frank Valdes to support sinc interpolation. (7/26/91 Davis)

sys/qpoe/qprlmerge.gx		+
sys/qpoe/qpexattrl.gx
sys/qpoe/qpexgetat.x
sys/qpoe/README
sys/qpoe/mkpkg
sys/qpoe/gen/mkpkg
sys/qpoe/zzdebug.x
	The qpex_attrl routine would fail for attribute expressions
	containing multiple eterms (filter subexpressions).  Instead of
	AND-ing the successive filter terms, it was combining them (OR-ing
	them) to produce a single expression, and parsing the result
	to return the output range list.

	1. Modified qpex_getattribute to return expressions containing
	multiple eterms with a semicolon rather than a comma delimiting
	each eterm, so that the eterms can be distinguished.
	2. Added a new routine qp_rlmerge, used to merge (AND) two range
	lists of any datatype.
	3. Modified qpex_attrl to parse each eterm separately and merge
	the resultant range list into the output range list.
	4. Added a new debug task mergei and used this to test the new
	merge range list routine.  (7/27)

sys/imio/iki/stf/stfrgpb.x
	Added a check for a group index out of range.  (7/28)

sys/pmio/miopl.gx
sys/pmio/miogl.gx
sys/pmio/miostati.x
sys/pmio/mioseti.x
sys/pmio/miosrange.x
sys/pmio/mio.h
	MIO_SETRANGE still wasn't working correctly so I had a more careful
	look at the mio_[gp]l routines.

	1. The fix made earlier to initialize the "ve" vector was incorrect,
	as any data that wants to be saved between calls has to be saved in
	the i/o descriptor and "ve" is a local variable.  Moved the "ve"
	initialization to immediately before the call to imggsc, where the
	variable is used.

	2. Made extensive changes to the way the "V" vector is handled.
	This is passed back by the routines in each call to give the
	coordinates of the first pixel of the referenced line segment.
	Modified the routine to pass back a vector matching the image
	dimension rather than of length IM_MAXDIM, to lessen the chance
	of overrunning the client's buffer.  Fixed a bug that was preventing
	the routine from returning correct vector coordinates when doing
	i/o on a subregion (mio_setrange) of the image.  Fixed a bug that
	would cause the data pointer to be offset when accessing subregions.

	3. By default the coordinates of the V vector returned by the
	mio_[gp]l routines will be relative to any subregion specified
	with a prior call to mio_setrange.  This is convenient when using
	mio_setrange to randomly access subregions of the image.  If this
	is not what is desired it is now possible to follow the mio_setrange
	call with a call to "mio_seti(mio,P_REGCOORDS,NO)" to cause the
	V vector to be returned in image rather than region relative
	coordinates.  This is more convenient for applications that use
	mio_setrange only to optimize i/o and want this to be transparent
	to the rest of the code.  (7/28)

pkg/images/geometry/t_imshift.x
        The shifts file pointer was not being correctly initialized to NULL 
        in the case where no shifts file was declared. When the task
	was invoked repeatedly from a script, this  could result in an array
	being referenced,  for which space not been previously allocated.
	(LED 7/29/91)

unix/hlib/extern.pkg	URSA ONLY
	Changed ccdacq from /u2/rooke/ice/ccdacq/ to
	/ursa/iraf/extern/ice/ccdacq.  We now have "production" and development
	versions on ursa.  (7/31/91 SRo)

dev/hosts
        Added mira, Mike Merrill's machine - this had been added to gemini
        but not to tucana.  (8/3/91 jb)

mkpkg
noao/mkpkg
	Added a new entry point "arch" as an alias for "showfloat".  The
	command "mkpkg arch" will print the current architecture.  (8/06)

pkg/xtools/inlfit/		+
pkg/xtools/doc/inlfit.hlp	+
pkg/xtools/mkpkg
	The interactive non-linear least squares fitting package inlfit
	developed by Pedro Gigoux and used by the photcal package has
	been added to xtools. (8/7/91 LED) 

dev/hosts	[tucana, gemini, ursa]
	Changed lapis to /usr/iraf/iraf.  Other mountain systems should be
	changed as Jim Davis gets around to them.  (8/8/91 SRo)

sys/libc/qsort.c
	Added the copyright notice from the BSD source.  Berkeley finally
	made this source publically available without a unix source license,
	provided the copyright notice is retained.  (8/11)

sys/imio/iki/stf/stfaddpar.x
	Added a case for TY_BOOL (LOGICAL*4), and changed the abbreviated
	type names "INT*4" etc. to their full Fortran equivalents.  (Bug
	fix contributed by B.Simon).  (8/11)

sys/mwcs/mwgsys.x		+
sys/mwcs/mkpkg
	Added source for the routine mw_gsystem.  This was in the interface
	specification but was missing from the interface.  (8/11)

unix/sun/imtoolrc
unix/sun/imtool.c
	Added several new entries to the imtoolrc file.  Increased the
	maximum number of frame buffer configuration entries from 64 to 128,
	and added a comment to the file suggesting that users add their
	custom additions starting with config #64.  (8/11)

pkg/plot/phistogram.par
pkg/plot/phistogram.x
pkg/plot/phminmax.x
pkg/plot/doc/phistogram.hlp
	Added a new task phistogram to the plot package. Phistogram takes
	input from either an image or a list and permits full control over
	the plotting parameters. The histogram computation is done in
	and identical manner to the imhistogram task. (8/14/91 LED)

pkg/plot/pradprof.par
pkg/plot/t_pradprof.x
pkg/plot/doc/pradprof.hlp
	Added a new task pradprof to the plot package. (8/16/91 LED)

unix/gdev/sgidev/mkpkg.sh
unix/gdev/sgidev/sgi2ueps.c
	Installed new SGI to EPS (encapsulated postscript) graphics driver.
	(8/16)

dev/graphcap
	1. Installed a minor bug fix affecting the vhpl (VMS) entry.
	2. Added entries for the EPS driver.  Device "eps" is the default
	portrait mode output, "epsl" provides landscape mode.  (8/16)

dev/hosts	[tucana, gemini, ursa]
	Changed khaki to /usr/iraf/iraf.  (8/16 jb)

pkg/cl/exec.c
	There was a bug in the oneof() function in how the "alldone" flag
	is set to cause termination of a background process.  The flag
	would be set when attempting to pop (at task termination) a task
	that has the T_BATCH flag set.  The problem is that this test
	would result in the continued execution of the task *after* execution
	of the background command completed.  In the normal case of a
	background command submitted interactively on the command line this
	would be harmless as the task would be "cl", which would see EOF
	on the stdin and exit.  In more complex cases, e.g., an executable
	task or a script reading from a file, this could result in an
	attempt to read from a stream that existed in the foreground CL
	but which was never opened in the background CL.

	The particular case in which this showed up was in the OBSERVE task
	in CCDACQ, when submitting the command "display <image> 1 &" to
	the CL from the subprocess, using clcmd.  The display task would
	run normally, being left behind in the process cache as the first
	non-system process.  The task descriptor for the observe task in
	the background cl would be set up to read from a connected subprocess,
	and after execution of the display command would resume waiting for
	commands from the subprocess.  Meanwhile, the subprocess actually
	in the cache would be display rather than observe, and display would
	have already terminated, resulting in deadlock with both the CL
	(observe) and the display task executable waiting for a command.
	Due to the deadlock the background job would never terminate and
	after this sequence had repeated several times background job
	submission would fail in the foreground cl with "no more background
	job slots".  (8/18)

pkg/plot/phistogram.par
pkg/plot/phistogram.x
pkg/plot/phminmax.x
pkg/plot/doc/phistogram.hlp
	The new phistogram task has been restored to the plot package after
	the disk crash.  (8/26/91 LED)

pkg/plot/pradprof.par
pkg/plot/t_pradprof.x
pkg/plot/doc/pradprof.hlp
	The new pradprof task has been restored to the plot package after
	the disk crash. (8/26/91 LED)

dev/graphcap
	Added the six new ICE imtool frame buffer entries.  (8/27/91 SRo)

sys/qpoe/qpexmodfil.x
	There was a simple bug in the buffer reallocation code which would
	cause filter expansion to fail for expressions longer than 1024
	characters.  A "sz_expr = INC_SZEXPRBUF" should have been
	"sz_expr = sz_expr + INC_SZEXPRBUF".  (9/04)

unix/shlib/mkshlib.csh		[not modified]
	After a sysgen all sparc executables would fail to run due to an
	access violation.  This was due to a problem with the shared image;
	the data and text segments were overlapping by 8 bytes, evidently
	due to a linker bug in SunOS 4.1.1.  I worked around the problem by
	manually relinking the shared image including a dummy object "foo.o"
	in the link to make the text segment slightly larger.  Since the
	text size of the shared image will change as soon as any code is
	changed, it doesn't seem worthwhile to devise a more permanent
	workaround.  It looks like the linker fails to align the data segment
	properly if etext is close to a page boundary.  (9/07)

unix/hlib/math.h
	Changed the name of the define "E" to "BASE_E", to decrease the
	chance of accidental name aliases.  (9/17)

pkg/images/doc/magnify.hlp
	Fixed a bug in the magnify task help page.
	(9/18/91 LED)

pkg/images/filters/t_gauss.x
	The code which computes the gaussian kernel in the gauss task
	was producing a divide by zero error if ratio=0.0 and bilinear=yes
	(2.10 version only). (9/18/91 LED)

sys/gio/gadraw.x
	It was possible for integer overflow to occur for case linear in the
	assignments mx=x,my=y.  Added 0:MAXNDC pre-clipping for case linear.
	(9/20)

pkg/system/help/helpdb.x
	There were still problems with the code in helpdb which reorders
	the package index help directory to depth-first order.  A bug
	which would cause commands such as "help lists.*" to print each
	module twice was traced to this code.  The help directory
	reordering code was rewritten (inverting the two main loops) to
	ensure that the reordered help directory does not have any holes
	in it, and that the number of modules is correct.  (9/21)

dev$hosts
	Changed aliases in dev$hosts on tucana, orion, gemini, ursa,
	and draco for downtown node "morrison" to "vegemite".  (CB, 9/21/91)

-----------------------------------------------------------------------
Merge changes (including many minor bug fixes) from A/UX IRAF port.
This includes support for GCC and ANSI C, and limited SYSV support.  (9/21)

unix/hlib/install
	1. Added a #!/bin/csh at the top of the script.
	2. Added a "set path" so that explicit paths to executables can be
	avoided.  Changed "/etc/chown" to "chown" (this utility is in
	different places on different systems).
	3. I had trouble on A/UX with the $hbin/sgi2* $hlib/sgi2* stuff in
	MODEFILES.  The second did not expand to anything and the string
	"$hlib/sgi2*" was left in MODEFILES with the * unexpanded, causing
	problems later when appended to a directory prefix.  Since there are
	not supposed to be any executables in hlib anyhow I deleted the
	second reference.
	4. In the code which checks the MODEFILES, I added a test to see if
	$file exists as named, before looking for it in each of the
	directories.  Otherwise the $hbin/sgi2* entries, which are already
	fully resolved pathnames, expand to pathnames referencing
	nonexistent directories when a BINDIRS prefix is prepended.
	This could cause the install script to bomb on A/UX.
	5. Changed all occurrences of constructs like `ls ...` to `$LS ...`
	with LS defined as /bin/ls at the top of the file.  The problem is
	that a subshell is spawned to evaluate the command in the back
	ticks, and if "ls" is defined as an alias in a .cshrc file, as is
	typically necessary on SYSV systems (to get -C) the alias will be
	used, causing the output to be different than expected by the script.
	(9/21)

unix/hlib/irafuser.csh
	Generalized somewhat - added some commented out GCC definitions,
	and new definitions for CC, F77, HSI_F77LIBS, and RANLIB.  These
	are used in the mkpkg.sh files (used to bootstrap the HSI).  (9/22)

unix/hlib/mkfloat.csh
	Added a definition TARXFLGS, with BSD and SYSV versions.  (9/22)

unix/boot/bootlib/mkpkg.sh
unix/boot/generic/mkpkg.sh
unix/boot/mkpkg/mkpkg.sh
unix/boot/rmbin/mkpkg.sh
unix/boot/rmfiles/mkpkg.sh
unix/boot/rtar/mkpkg.sh
unix/boot/spp/mkpkg.sh
unix/boot/spp/mkxc.sh
unix/boot/spp/rpp/mkpkg.sh
unix/boot/spp/rpp/ratlibc/mkpkg.sh
unix/boot/spp/rpp/ratlibf/mkpkg.sh
unix/boot/spp/rpp/rppfor/mkpkg.sh
unix/boot/spp/xpp/mkpkg.sh
unix/boot/wtar/mkpkg.sh
unix/boot/xyacc/mkpkg.sh
unix/gdev/sgidev/mkpkg.sh
unix/os/mkpkg.sh
unix/shlib/mkpkg.sh
	Changed all occurrences of "cc" to "$CC" and all occurrences of "f77"
	to "$F77".  Changed all occurrences of "ranlib" to $RANLIB.  (9/22)

unix/setarch.sh
        The A/UX version of "test" does not have the -h flag to test for
        symbolic links, so the existing script did not work.  Still trying
        to find a portable way to do this, I changed the script to use the
        construct:  if [ "`ls -d as`" = "as" ]; then ...  (9/22)

unix/os/alloc.c
        1. The file header comment section contained the sequence "for the
        /dev/* entries...".  The "/*" would cause a warning from gcc that
        there might be a comment buried in another comment, which can cause
        a comment to terminate prematurely.  In this case it was harmless
        and indeed there was no error, but I changed the text to eliminate
        the warning.
        2. Moved the #include <sys/types.h> to before the #include <utmp.h>,
        as the A/UX version of the latter requires the former, and SunOS
	doesn't care.  (9/22)

unix/os/prwait.c
        In pr_getipc(), deleted unused variables error_code, error_status,
        waitpid.  (9/22)

unix/os/zalloc.c
        1. In ZDVALL, deleted unused variable x_status.
        2. Deleted unused variable i in loggedin().  (9/22)

unix/os/zfioks.c
unix/hlib/irafuser.csh
        1. Deleted the old, commented out code for rcmd(), as variables
        defined for this were being reported as unused.  Added a comment
        explaining that rcmd and friendly-host authentication cannot be
        used without making the process suid root.
        2. Added #ifdef SYSV support for SYSV termio.  Terminal driver ioctls
	are used in this routine to set raw mode for the password prompts.
        3. GCC was complaining that the setjmp/longjmp used in zardks,
        zawrks could cause certain register variables to become undefined
        (op and nbytes in zardks, ofd in zawrks), so I changed the storage
        class from register to auto for these variables.
	4. GCC would still warn that longjmp could clobber the values of
	several local variables in zardks.  Evidently this is a feature of
	ANSI C.  The values of automatic variables not declared "volatile"
	are not guaranteed to be preserved in a longjmp.  Added a -DANSI to
	irafuser.csh and some #ifdef ANSI code to zfioks.c to provide the
	necessary (but not non-ANSI backwards compatible) definitions. (9/22)

unix/os/zfiolp.c
        I had to change the declaration

            static PKCHAR xnullstr[1] = XEOS;
        to
            static PKCHAR xnullstr[1] = { XEOS };

        (PKCHAR=short and XEOS=0) or GCC would complain about an invalid
        initializer.  Must be a feature of the ANSI C syntax.  (9/22)

unix/os/zfiotx.c
unix/hlib/libc/kernel.h
        1. Modified to add #ifdef SYSV support for SysV terminal i/o.
        2. GCC complained about some functions which were used (default
        storage class extern) and later declared static; added static
        declarations for these functions to the file header to eliminate
        these (harmless) warning messages.
        3. Another longjmp warning, this time in zgettx.  Variable "op" might
        not be saved over a longjmp.  In this case I was able to avoid the
        problem merely by moving the op initialization statement to after
        the setjmp.  (9/22)

unix/os/zfxdir.c
        Deleted unused local variable "ch".  (9/22)

unix/os/zgcmdl.c
        Deleted unused local variable "ev".  (9/22)

unix/os/zgtime.c
        Had to #ifndef SYSV the #include <sys/timeb.h> as this file does
        not exist on SysV systems.  (9/22)

unix/os/zmain.c
        Deleted unused local variables "junk" and "wsetsize".  (9/22)

unix/os/zwmsec.c
        Added "static" to explicitly specify the storage class in the first
        declarations of "napmsx", which is declared static in the source
        given later in the file.  (9/22)

unix/os/zxwhen.c
        1. GCC did not realize that the call to kernel_panic in zxwhen was
        an exit, and would warn that the value of variable "vex", used later
        in the procedure, could be unitialized.  Added a statement to init
        this to null to avoid the warning message.
        2. In zxgmes, the char pointer to the returned error message was
        not being initialized if no error had occurred.  Modified to return
        the null string in this case.  (9/22)

unix/os/zzstrt.c
        Added #ifdef SUNOS4 conditionals around certain declarations which
        are used only the #ifdef SUNOS4 code which follows, to avoid unused
        variable warnings on non-Sun systems.  (9/22)

unix/boot/bootlib/envinit.c
        Deleted the unused variable "osfn" in loadpkgenv.  (9/22)

unix/boot/bootlib/bootlib.h
        Deleted the commented out #define NOVOS definition, which causes
        a /* in comment warning and doesn't need to be in this file anyhow.
        (9/22)

unix/boot/bootlib/osfcopy.c
        1. Deleted the unused variable "binary_file".
        2. Added a return at the end of the function, to guarantee that
        a function value was returned.  (9/22)

unix/boot/bootlib/ostime.c
        Modified with #ifdef SYSV for SysV.  This whole business needs to
        be redone sometime to provide rigorously correct time primitives
        for iraf.  (9/22)

unix/boot/bootlib/vfn2osfn.c
        Local variable "first_time" defined but never used.  (9/22)

unix/boot/generic/generic.c
        1. In copy_comment(), added an entry time initializer for the
        local variable "flag".
        2. GCC complained about the variable "ch" in evaluate_expr() possibly
        being used before being initialized.  This looked harmless in this
        case, but I added a global initializer to eliminate the warning
        message.  (9/22)

unix/boot/mkpkg/host.c
        1. Deleted a couple of unused "exit_status" variables.  Changed some
	"return(exit_status=N)" constructs to separate assignment and return
	statements in cases where the function does not return a value.
        2. Deleted unused variable "ip" in search_mkpkgfile().
        3. Added a #ifdef SYSV to the code which calls RANLIB, since this is
        not used on SYSV (COFF) systems.  (9/22)

unix/boot/mkpkg/mkpkg
unix/boot/mkpkg/mkpkg.h
unix/boot/mkpkg/scanlib.c
        1. Added a #include "mkpkg.h" to scanlib.c.  This file includes extern.h
        which references a structure defined in mkpkg.h.
        2. Deleted unused local variable "key" in h_scanlibrary().
        3. Replaced the MAX_SYMBOLS definition in scanlib.c by MAX_LIBFILES,
        as there is also a MAX_SYMBOLS in mkpkg.h which means something
        quite different.  (9/22)

unix/boot/mkpkg/sflist.c
        In sf_scanlist, the GCC static analysis indicated that variable "tail"
        could possibly be used without being initialized.  Added code to
        initialize tail=head before scanning the list.  (9/22)

unix/boot/mkpkg/tok.c
        1. In do_if(), in the event of a syntax error the local variable "bval"
        could be used without being initialized.  Once again probably harmless
        but it makes GCC complain.
        2. Unused variable "ch" in do_call().
        3. Module do_include() was not returning an exit status in all
        cases.  (9/22)

unix/boot/rmfiles.c
        1. Unused variable "i" in main().
        2. Another warning from GCC static analysis suggesting that local
        variable "fp" might be being used before being initialized (definitely
        not in this case, but I added an initializer to avoid the message).
        (9/22)

unix/boot/wtar/wtar.c
        Unused variable "op" in putheader().  (9/22)

unix/boot/spp/xc.c
        1. Unused variable "cmdbuf" in main().
        2. Variable "append" in sys() could be used before being
        initialized.  (9/22)

unix/boot/spp/xpp/xppcode.c
        1. Unused variable "irafdefs" in do_include().
        2. parse_task_statement() did not return a function value in all cases.
        3. accum() did not return a function value in all cases.
        4. Unused variable "digit" in charcon().  Function did not return
        a value in all cases.
        5. Variable "value" not initialized in all cases (when an error
        occurs, but it causes a warning message).  (9/22)

unix/boot/spp/xpp/decl.c
        1. Local variable "sp" was not being initialized in all cases (i.e.,
        when an error occurred).
	2. Added a new procedure d_declfunc which is called to output function
	declarations.  Currently this doesn't do anything special, but it
	provides a single point of modification should it be necessary to do
	any special processing of function declarations in the future (for
	example intrinsic functions).  (9/22)

unix/boot/spp/rpp/ratlibc/getlin.c
        The local variable "c" was not being initialized in all cases.  (9/22)

unix/gdev/sgidev/sgidispatch.c
        Deleted unused local variables "maxch" and "status".  (9/22)

unix/os/gmttolst.c
        Added #ifdef SYSV support.  SYSV uses a global variable "timezone"
	(a questionable construct - see below) while BSD uses a time_info
	structure returned in a function call.  (9/23)

unix/os/zzstrt.c
	This problem was indirect and hence difficult to track down.  The
	time-task feature of iraf, e.g., "$imstat dev$pix", when run for the
	first time in a new process, would return a clock time such as
	"-416:+0" instead of "0:13" or whatever.  Thereafter it would be ok,
	until the process was restarted.  This turned out to be due to the
	clock time returned by the first call to ZGTIME being wrong.  The
	eventual solution was to add a call to TZSET to zzstrt to initialize
	the SysV time stuff before any time calculations take place.  What I
	suspect was happening is that in gmt_to_lst I was accessing
	"timezone", which is a global data variable in SysV, but the value
	was being changed sometime later in an indirect call to TZSET.
	Using a global variable for something like this that is evidently
	not constant is a very questionable feature of SVID (unless this
	was a bug in A/UX).  (9/23)

unix/os/mkpkg.sh
        Changed the "rm alloc.o" to "rm -f alloc.o", as the .o file is
        not being left behind on this system, using GCC.  (9/23)

unix/os/zfiopl.c
        In zclspl, another case of an array aggregate initializer "= val;"
        having to be changed to "= { val };" when initializing an array of
        length 1.  (9/23)

unix/os/zoscmd.c
        1. Modified so that if SYSV is defined, "fork" is used instead of
        the BSD-ism "vfork".
	2. On Sun systems <vfork.h> is included (disables the global optimizer
	on sparc systems due to nonstandard register usage).  (9/23)

unix/boot/spp/rpp/ratlibr/defs
	Replaced by the version rpprat/defs (they should be the same, although
	in this case the differences did not affect the ratlib code).  (9/24)

unix/boot/spp/rpp/ratlibr/Makefile
unix/boot/spp/rpp/rpprat/Makefile
	These makefiles now use a .r.f rule using /usr/local/bin/ratfor to
	generate the .f files, rather than using f77 -F, which requires
	replacing the host version of ratfor.  (9/24)

unix/boot/spp/rpp/ratlibf/*.f
unix/boot/spp/rpp/rppfor/*.f
	Regenerated all the preprocessor Fortran sources.  The new files are
	lower case.  Although upper case source is standard Fortran, all
	modern compilers I am aware of accept lower case source (SPP outputs
	lower case after all), and a case sensitive compiler may generate
	upper case externals for upper case procedure names, causing a case
	mismatch when linking with the C support library.  (9/24)

unix/boot/spp/rpp/ratlibc/r4tocstr.c
	Installed a minor bug fix which allows the routine to accept as
	input character arrays consisting of either one char per integer, or
	a char plus 3 blanks per integer.  The old F66 convention of
	assigning one Hollerith character to a binary integer can generate
	either type of integer value.  (9/24)

sys/imfort/imemsg.x
        This file contained four Fortran escapes (error message strings)
        which ran over the 72 character line limit of Fortran.  (9/24)

sys/gio/nspp/portlib/gridal.f
        The equivalence on line 4 was incorrect (or at least ill-advised)
        due to a dimension error.  The code "mfmtx(1),ifmt(1))" should
        have been "mfmtx(1),ifmt(1,1))".  (9/24)

sys/gio/nspp/portlib/z8zpbd.f
sys/gio/nspp/portlib/z8zpii.f
	The z8zpbd.f file was using DATA statements to initialize variables
	in common (works on most systems but is technically illegal).  I
	moved all the remaining DATA statements out of z8zpbd.f into run
	time initialization statements in z8zpbd.f  (9/24)

unix/boot/spp/xc.c
        The routine printargs() was attempting to print one more argument
	than it should, due to a <= that should have been a < in a FOR loop.
	(9/24)

pkg/system/help/lroff/textout.x
        Modified to eliminate the ENTRY point.  (9/24)

sys/fmtio/ctotok.x
        Local variable numch never used (this is old code so I don't know
        why no other compiler has found this).  (9/24)

sys/fmtio/evexpr.y
sys/fmtio/evexpr.x
        The second argument (a debug flag) to yyparse (xev_parse) is a
        boolean, but xev_parse was being called elsewhere with an integer
        argument.  Changed to a boolean since the Y*cc code contains many
        if (yydebug) constructs.  (9/24)

sys/etc/main.x
        FREDIR is a subroutine but was being called as a function in one
        place in this file.  (9/24)

sys/tty/ttyputl.x
        This file contained a statement  call putci (fd, "_")  which was
        incorrect, since the argument "_" is type char but is supposed to
        be integer.  (9/24)

sys/gio/gopen.x
        1. The pointer array graphcap_file was not being used.
        2. Local string variable graphcap never used.  (9/24)

sys/pmio/pmplls.x
        The second call to pl_plls was missing the ll_depth argument.  (9/24)

sys/qpoe/qpppar.x
        The second call to qp_sizeof was missing an argument.  (9/24)

sys/imfort/bfio.x
        There was an extra "status" argument to one of the calls to
        zsttbf.  (9/24)

sys/gio/ncarutil/conran.f
        Local variable LNGTHS not used.  (9/24)

pkg/plot/crtpict/t_crtpict.x
        A call to gargwrd was missing the maxch argument. (9/24)

pkg/plot/t_graph.x
        Variable window declared but not used.  (9/24)

pkg/plot/t_velvect.x
        Variable nset declared but not used.  (9/24)

sys/fmio/fmlfundel.x
        The two calls to fmio_bind and fmio_errck were both lacking the
        fm argument.  (9/24)

sys/ki/kireceive.x
        A call to strcpy was missing an argument.  (9/24)

sys/imio/imopsf.x
        The call to pl_ssize had an extra unused argument.  (9/24)

sys/etc/pagefiles.x
        ttyctrl, which is an integer function, was being called as a
        subroutine.  (9/24)

sys/imio/iki/oif/oifclose.x
sys/imio/iki/oif/oifdelete.x
        The integer function protect() was being called as a subroutine.
	(9/24)

sys/plio/plglr.gx
        The routine pl_rangerop was being called incorrectly.  (9/24)

sys/plio/plprop.gx
        The VOPS routine argt (replace if greater than) was being
        called incorrectly in three places.  (9/24)

sys/plio/plascii.x
        The subroutine pl_glpi() was being called as a function.  (9/24)

sys/plio/pldebug.x
        The integer function pl_l2ri() was being called as a subroutine.
        (9/24)

sys/pmio/pmglp.gx
        The routine pl_pixrop was being called incorrectly.  (9/24)

sys/qpoe/qpioopen.x
        A call to syserr was being made where syserrs was intended.  (9/24)

sys/gio/cursor/grccmd.x
        External pr_psio() declared but never used.  (9/24)

sys/gio/stdgraph/stgclws.x
        External std_onerror() declared but never used.  (9/24)

sys/libc/qsort.c
        The static function qst() was being used before being declared,
        resulting in an extern/static declaration inconsistency.  (9/24)

sys/ki/irafks.x
        The "task irafks = onentry" was incorrect since ONENTRY is an integer
        function.  This was harmless since the purpose of the task statement
        was merely to get an iraf main, but I set up a dummy t_irafks task
        to avoid the type clash.  (9/24)

pkg/cl/bkg.c
        Static function bkg_close() used before being declared static.
        Added a static function declaration to the file header.  (9/24)

pkg/cl/debug.c
        Same as above, function dd_f().  (9/24)

pkg/cl/edcap.c
        Same as above, function map_escapes().  (9/24)

pkg/cl/pfiles.c
        Same as above, function mapname().  (9/24)

pkg/cl/cl.x
        Same problem as in irafks, above.  ONENTRY is a function and should
        not be referenced as a subroutine in the task statement.  Added a
        dummy t_cl procedure to avoid the type clash.  (9/24)

-------------------
End of revisions merge from A/UX GCC/ANSI-C/F2C work.

dev/graphcap
dev/devices.hlp
	Output can now be directed to the default UNIX `lpr' device using
	any of the aliases "lpr", "lp", or "lw".  The actual device is
	defined by the value of PRINTER if defined in the user's environment,
	else is the "lp" device in /etc/printcap.  (9/23)

	(lw is no longer an alias for the NOAO/Tucson device lw1)

pkg/images/iminfo/t_imstat.x
pkg/images/doc/imstat.hlp
	Corrected a bug in the mode computation in imstatistics. The parabolic
	interpolation correction for computing the histogram peak was being
	applied in the wrong direction. Note that for dev$pix the wrong answer
	is actually closer to the expected answer than the correct answer
	due to binning effects.  (LED 9/24)

unix/hlib/iraf.h
unix/hlib/libc/xnames.h
	Added the following name redefinitions.  On systems where Fortran and
	C share the same name space these can cause name collisions.  (9/28)

	define	fatal	xfatal
	define	fchdir	xfchdr
	define	fscan	xfscan
	define	getopt	xgtopt
	define	getpid	xgtpid
	define	getuid	xgtuid
	define	rename	xfrnam
	define	reset	xreset
	define	scan	xxscan

-------------------------------------------
Started a full bootstrap and recompile for the sparc architecture.  (9/28)

sys/fmtio/tokdata.inc
	Deleted the DATA statement for numch, which is no longer used by
	ctotok.x, the routine which includes this file.  (9/29)

lib/plset.h
	Added PL$T_LEN defines for type long, required for the generic
	expansion of plglr.gx in PLIO.  (9/29)

unix/boot/mkpkg/host.c
	Added a return(OK) to h_purge(), which is a no-op on unix systems.
	(9/29)

pkg/images/imarith/mkpkg
pkg/images/imarith/imsum.gx
pkg/images/imarith/generic/mkpkg
pkg/images/imarith/generic/imsum.h	-
	Images failed to link, with all the imsum externals reported as
	undefined externals.
	1. Edited imsum.gx and changed `include "imsum.h"' to `include
	"../imsum.h"'.
	2. Deleted generic/imsum.h and the code in imarith/mkpkg which
	generates it.  There should not be multiple copies of global header
	files.
	3. Rebuilt the generic/mkpkg using mkmlist, to ensure that the
	library list is correct (all the imsum entries were missing).  (9/29)

noao/artdata/mkheader.x
	1. Fixed a "local variable ua never used" warning, caused by some code
	being commented out.
	2. I was also surprised to see the construct `fd = immap (fname, ...)'
	in this file.  FD means file descriptor whereas immap returns an
	image descriptor.  FNAME means file name but an image name is not a
	file name.  FD is declared pointer in this file but is used later in
	the same routine to hold a file descriptor, which is an integer.
	This code is illegally accessing the user area of the image header.
	(9/29)

noao/twodspec/longslit/illumination.x
	This file failed to compile, with the following errors:
	    local variable "clgeti" never used
	    attempt to use undefined variable "im"
	    attempt to use untyped function "clgetr"
	1. Changed the call to clgetr to a call to clgeti, since the
	parameter being fetched is integer.  Added a declaration for im.
	2. In the process of doing this I noticed that in the call
	    iferr (axis = imgeti (im, "dispaxis")) {
	the variable IM was being used before being initialized (or declared).
	I changed the "im" to "in" but couldn't be certain this was correct
	since there are two input image pointers (I think; I couldn't be
	certain they were both input since there are no #[IOU] markers in the
	comments).  (9/29)

noao/twodspec/longslit/response.x
noao/twodspec/longslit/fluxcalib.x
	Similar construct.  Changed calls to clgetr to clgeti in both
	routines.  (9/29)

unix/hlib/extern.pkg
	All the digiphot packages failed to link, due to the cross link
	against the V2.9 versions of the TABLES libraries (due to the
	recent name changes in iraf.h all code has to be recompiled for
	V2.10).  I temporarily created a local copy of TABLES in
	/u3/extra/tables and compiled this with V2.10.  (9/29)

bin.sparc/S5.e
bin.sparc/S6.e			+
	Installed the V2.9.3 version of S5.e (the V2.9 shared image) from ursa.
	S6.e is the V2.10 shared image.  (9/29)

unix/boot/xyacc/mkpkg.sh
	Added a rm -f *.o to delete the xyacc objects after a bootstrap. (9/29)

---------------------------------------------
Begin f68881 bootstrap and full sysgen-recompile.  (9/29)

sys/ki/koscmd.x
	The output spool file on the local node was being opened with zopntx,
	but written to with kputtx with an invalid channel descriptor, causing
	the output to be lost when attempting to redirect the output.  The
	fix was to change the call to kputtx to a call to zputtx.  (9/30)

dev/imtoolrc			+
unix/hlib/install
	Copied imtoolrc into dev so that the frame buffer entries in graphcap
	and imtoolrc can be more easily maintained together, and so that
	the user does not have to modify a source directory (unix/sun) in
	order to change a runtime configuration file (imtoolrc).  Modified
	the install script to make /usr/local/lib/imtoolrc a link to the
	file in DEV, instead of a copy of the file.  (9/30)

noao$rv/			+
noao$mkpkg
noao$noao.hd
noao$noao.cl
noao$noao.men
noao$lib/strip.noao
noao$lib/zzsetenv.def
noao$lib/scr/fxcor.key		+
noao$lib/scr/specmode.key	+
noao$lib/scr/fftmode.key	+
	Installed the RV0 package as the NOAO.RV package and recompiled for 
	the f68881.  A sparc executable was built separately and installed in
	noao$bin.sparc.  The noao helpdb was also recompiled to include the
	new rv help pages.	(9/30  MJF)

hlib$extern.pkg
	Removed the RV0 package definition from the V2.10 iraf.  (9/30  MJF)

hlib$extern.pkg
	Removed the testphot package definition from the V2.10 iraf. (9/30 LED)

bin.f68881/S5.e
	Replaced by the V2.9.3 version.   (9/30)

unix/os/zfioks.c
unix/os/zfiotx.c
	Fixed minor typos in the #ifdef SYSV code.  (10/02)

unix/boot/mkpkg.pkg.c
	Deleted declarations for a couple of unused variables.  (10/02)

unix/os/zawset.c
	Added SYSV support.  (10/02)

unix/os/zfiopr.c
	Added SYSV support (vfork is defined as fork).  On Sun systems
	<vfork.h> is conditionally included.  (10/02)

unix/os/zgtenv.c
	Replaced a comment within a comment construct (example from <iraf.h>)
	by a version which substitutes @ for *, to avoid GCC warning messages
	about a possible problem with nested comments.  (10/02)

unix/os/zopdpr.c
	Added SYSV support for vfork/fork as above, plus nice() is used
	for SYSV instead of the BSD {get|set}priority.  (10/02)

unix/boot/spp/rpp/rpprat/gtok.r
unix/boot/spp/rpp/rppfor/gtok.f
	Commented out the declaration for the unused variable "digits". (10/02)

math/gsurfit/mkpkg
	Contained a statement $ifeq (USE_GENERIC, YES) which was incorrect,
	as a lower case "yes" is required since $ifeq uses a simple string
	comparison.  I noticed this because a bug had been fixed in a .gx
	file, but was still present in the real/double files, which had not
	been modified since 1987.  (10/02)

math/nlfit/nlfitdefr.h
math/nlfit/nlfitdefd.h
math/nlfit/nlzero.gx
	Corrected several bugs in the way the aclr$t routines were being
	called in the nlzero(rd) routine. (10/3/91 LED)

pkg/plot/phistogram.x
	Corrected some type mismatch problem in calls to gset. (10/3/91 LED)

sys/gio/ncarutil/pwrity.f
        Unused variable LEN on line 335.  (10/02)

sys/gio/ncarutil/pwrzi.f
sys/gio/ncarutil/pwrzs.f
sys/gio/ncarutil/pwrzt.f
        Variables HIGH,WIDE,WHITE, and LNGTH not used (same problem in
        all three files).  (10/02)

sys/ki/koscmd.x
	In the call to zopntx to open the local spool file (when redirecting
	the output), the unpacked version of the filename was being used
	instead of the packed version required by the kernel routine.  (10/05)

pkg/plot/crtpict/calchgms.x
	Changed the declarations for the variables min_val and max_val in
	the procedure crt_user_hgram from int to short. (10/5/91 LED) 
		 
dev$hosts
	Added felis to dev$hosts for Shopbell. On tucana only since irafks.e
	on felis seems quirky.  (10/5/91 MJF)

pkg/dataio/fits/fits_rpixels.x
        1. The rfits task has been modified to accept a short last record, i.e.
        a last record that has not been padded out to 2880 bytes, without
        generating any warning messages. Short last records were only a
        problem for IRAF 2.9 when the blocking code was rewritten.
	(10/8/91 LED)

unix/boot/generic/generic.c
	The -k (clobber) option would fail to clobber an existing file if
	account executing generic did not own the file.  (10/09)

pkg/images/iminfo/t_imstat.x
	Corrected a bug in the kurtosis computation, wherein a 4.0 was
	being subtracted from the sum instead of a 3.0 (10/11/91 LED)

unix/boot/spp/xc.c
	Minor typo in run() code.  (10/11)

pkg/dataio/fits/fits_cards.x
        Changed the name of the IRAF-B/P keyword to IRAF-BPX to conform to the
        new FITS standard. (10/15/91 LED)

unix/sun/README
unix/sun/gterm.c
unix/sun/halley.lut
unix/sun/heat.lut
unix/sun/imtool.c
unix/sun/imtool.icon
unix/sun/screendump.c
	I have been holding off on installing this for a couple of weeks
	in the hopes of finishing the planned work, but rather than delay
	longer I have installed this version, to be updated later.  The
	main changes or new features are as follows.

	1. Screendump parameters (R_DISPOSE etc.) are now in the setup panel.
	2. A number of new builtin lookup table options (e.g. HEAT) have
	been added.
	3. User defined lookup tables are now supported.
	4. Updating of the global screen colortable is now a setup panel
	option.  This allows it to be turned off, which makes imtool
	better behaved under openwindows.

	Features not yet in are EPS support, more flexibility in the use
	of FIFOs, and maybe socket support.  (10/20)

unix/os/zfiomt.c
unix/os/zalloc.c
unix/os/alloc.c
sys/mkpkg
sys/mtio/*
sys/gty/*
sys/libc/(some)
sys/ki/(some)
pkg/cl/builtin.c
dev/tapecap
	Installed the new magtape i/o subsystem.  I will document this more
	fully later.  Usage is much as before.  The key file controlling the
	configuration is dev$tapecap.  A description of the tapecap
	parameters is given in os$zfiomt.c.  Testing and configuration of
	the tapecap file is only rudimentary at this point.  I have
	successfully tested thus far with the DC2000 cartridge tape and
	floppy disk on lepus, the DAT drive on coma, and the 1/2inch 6250
	bpi tape on tucana.  There is some confusion (dev$devices out of
	date) regarding the device entries for the 1/4inch cartridge drive
	on tucana so I did not complete the tapecap entry for this drive.
	The driver is new and MTIO has been extensively revised.  The new
	GTY interface provides a general termcap style database facility
	which is used for tapecap.  (10/20)

dev/termcap
	Added a new entry for "xirafhelp".  (11/10)

dev/hosts
        Added sonoma to the hosts file on tucana and ursa.  (11/13 jb)

pkg/plot/t_graph.x
plt/plot/doc/graph.hlp
	1. Local variables overplot,append in t_graph were declared int
	but were used everywhere as bool.
	2. Missing .le in help page entry for overplot.  (11/20)

lib/fio.h
	Added a comment for LEN_RAWCMD.  (11/20)

lib/fset.h
sys/fio/fseti.x
sys/fio/fstati.x
unix/hlib/libc/fset.h
	Added a new fset option F_IOMODE.  The value field is a bit flag
	consisting of either IO_NORMAL (normal line by line i/o with echo)
	or some combination of, currently, IO_RAW and IO_NDELAY.  F_RAW is
	also still defined and if used in a fseti call will set F_IOMODE
	to IO_RAW with IO_NDELAY disabled.  On a fstati query, F_RAW checks
	if IO_RAW mode is set, and F_IOMODE returns the i/o mode as a bit
	flag integer word.  (11/20)

	[Note - the fset integer codes were modified.  This will require
	[that all layered software which uses fset/fstat be recompiled.]

sys/etc/prpsio.x
	Testing revealed that while both raw mode and NDELAY (nonblocking
	i/o) worked from a stand alone process, and raw mode worked from
	a subprocess, NDELAY would not work from a subprocess.  This was
	due to the prpsio code, which must check for the i/o mode control
	strings and make a local fseti call if these are seen.  The prpsio
	code would set raw mode but was ignoring NDELAY, hence setting
	IO_RAW+IO_NDELAY in a subprocess would result in only raw mode
	being set in the pseudofile i/o control process (the CL).  (11/20)

sys/tty/ttyread.x
	Modified to set F_IOMODE rather than F_RAW.  Since this routine
	uses NDELAY it it worth updating to use the new bit flags.  Most
	of the old VOS code still uses F_RAW=(YES|NO), which is fine so
	long as only raw mode is being set.  (11/20)

pkg/cl/mkpkg
	Added <libc/fset.h> to the header file dependency list for
	history.c.  (11/20)

sys/tty/mkpkg
	Entry in library dependency list for ttygsize.x was incorrect;
	rebuilt list with mkmlist.  (11/21)

dev/graphcap
dev/imtoolrc
	Added imt13-16, imttall128 (128x1056), imttall256 (256x1056),
	imtwide128 (1056x128), and imtwide256 (1056x256) for use in
	spectroscopy at request of KPNO.  Also added aliases for the new
	KPNO 1992 chip names to the six entries between imt32 and imt37.
	(11/22/91 SRo)

unix/sun/imtoolrc
	Installed the above mentioned imtoolrc in the imtool source
	directory.  (11/22)

sys/fio/fstati.x
	Fixed a bug which could cause fstati(fd,F_UNREAD) to return an
	incorrect unread character count for pushed back data.  (11/27)

mwcs.h
mwswtype.x
	Removed the compile time SZ_ATVAL restriction on the length of
	a WCS attribute value.  The size of an attribute value string is
	now determined dynamically at run time and the buffers sized
	accordingly.  (11/27)

mwsaveim.x
	Deleted the call to mw_ssystem, which would force mw_saveim to
	save the default world system.  mw_saveim will now save the current
	world system instead; the application should call mw_ssystem first
	if it wishes to save a particular system.  This applies only to
	the use of mw_saveim with the current FITS-header images.  In future
	image formats mw_saveim will save the entire MWCS and it will not
	be necessary to specify which WCS to save.  (11/27)

wfinit.x
wfmspec.x			+
wfsin.x				+
wfgls.x				+
wfarc.x				+
iwewcs.x
mkpkg
	Installed four new MWCS function drivers:

	    sin			sin projection
	    arc			arc projection
	    gls			global sinusoidal projection
	    multispec		multispec image format (ONEDSPEC etc.)
	(11/27)

pkg/dataio/mtexamine/mkpkg
	The mkpkg was missing an entry for fseti.h (among other things).
	Rebuilt library module list with mkmlist.  (11/27)

sys/mtio/mtio.h
	Was getting truncation of tapecap entry string during tape testing
	on orion.  This was traced to a buffer size being set too small in
	zopnmt.x (SZ_DEVCAP).  Increased to 512 chars.  (11/27)

unix/os/zfiomt.c
	Fixed a bug in the new V2.10 zfiomt.c which affected appending to
	a tape after a rewind.  (12/01)

unix/os/zfiomt.c
	1. RE now causes a read error to be ignored not only when positioning
	to EOT, but on a file read if recno=1 (a read a the beginning of a
	file is used by high level programs like mtexamine to detect EOT).
	2. The tapeused counter was not being updated properly (the size of
	a filemark was not being counted) when EOF was seen on a read.  (12/02)

dev/tapecap
	Installed a new, better organized and more complete version of the
	tapecap file.  This now includes support for the HP 88780 and Exabyte
	drives under SunOS.  (12/02)

unix/os/zfiomt.c
	1. When passed a tapecap device entry containing multiple entries for
	the same capability, the driver was allowing later entries to
	override the first entry, whereas the termcap convention is that
	the first entry given overrides any later (tc=) entries.
	2. Added support for negated entries, as in ":nb@:".  (12/02)

pkg/dataio/cardimage/mkpkg
	The mkpkg was missing several file dependencies including
	fset.h. (LED 12/03)

pkg/dataio/fits/mkpkg
	The mkpkg was missing several some file dependencies.
	(LED 12/03)

pkg/dataio/imtext/mkpkg
	The mkpkg was missing several some file dependencies.
	(LED 12/03)

vms/gdev/zfiovi.c
	Installed a bug fix (actually workaround for an apparent VMS problem)
	reported by STScI.  The lock enqueue code can receive the status
	SS$_VALNOTVALID even though the value block is apparently valid.
	The workaround is to issue a warning but otherwise ignore the
	condition.  Hopefully this is correct.  (12/03)

dev/tapecap
	Replaced with new version with expanded support for QIC cartridge
	drives.  Unfortunately not yet fully tested due to system problems
	with the QIC-11/24 drive I was using for testing.  (12/05)

sys/mwcs/wfsin.x
	The forward transform now checks for a negative value before taking
	a square root.  (12/06)

unix/os/zfiomt.c
	Installed a new version of the new magtape driver which adds
	support for status output to a TCP/IP socket.  I also have a new
	program XTAPEMON (not currently installed in IRAF) which listens
	on a socket and accepts connections from the the new driver (or
	any similar client) displaying tape status messages in a window
	on any X server while the drive is being accessed.

	Status output may be directed to either a file or a socket, using
	the syntax ":so=foo:".  If foo is an absolute pathname beginning
	with / then output is to a file (this field is interpreted by the
	unix driver so we are talking about unix pathnames).  Otherwise, the
	field is assumed to refer to a socket of the form ":so=[host][,port]",
	e.g., ":so=lepus:", ":so=lepus,5138", ":so=,2345:", and so on.
	If no host is specified localhost is assumed.  If no port is
	specified the default port is used.

	In practice, the minimal specification is ":so:".  This will cause
	the drive to atempt to open a socket connection to the default port
	on the local host.  If no server is registered the connection will
	fail harmlessly.  If xtapemon is running on the local host it will
	accept the connection.  Currently, xtapemon supports multiple
	concurrent servers (using consecutive port numbers) but the driver
	does not, unless the port number is given explicitly.  Multiple
	clients are allowed to access the same server, e.g., multiple
	processes in the same process tree.

	Note that status output, if enabled, is output in an ascii text
	stream to either a socket or a file (including things like
	/dev/ttyX, /dev/tty, /dev/console etc. as well as disk files).
	Hence the xtapemon utility, while useful for workstations running X,
	is not required in any way to use the new magtape system or even to
	view status output.  In the simplest case, "devstatus" may be used
	to print the drive status.  (12/15)

unix/os/zopdir.c
	The zopdir routines were modified to read the UNIX directory into a
	buffer and sort it, before returning filenames to the caller (some
	VOS routine).  UNIX directories are not stored in sort order on
	disk, and previously, IRAF routines which read directories to
	produce file lists but which did not sort the list for some reason,
	could produce what appeared to be randomly ordered lists (for
	example, in image templates).

	A practical result of this revision is that dir sort- will produce
	a listing which is sorted across the columns rather than along the
	columns.  This may be preferable when listing very large directories.
	(12/15)

sys/etc/main.x
sys/etc/onentry.x		# INTERFACE CHANGE
pkg/cl/cl.x
sys/ki/irafks.x
	The calling sequence for ONENTRY was modified to add a third
	argument "command".  This is used to pass any optional arguments
	given on the host command line when the process is executed at
	the host level.  Since the purpose of the ONENTRY procedure is to
	provide an alternative to the normal iraf process level command
	interpreter, the procedure should get full access to the command line.
	(12/26)

dev/irafhosts           +
unix/os/zfioks.c
sys/ki/irafks.x
        Totally new networking driver.  This version supports both RSH and
        REXEC connection protocols.  The default RSH protocol avoids
        password prompts.  In addition, a feature is provided to spawn a
        daemon process in.irafksd which makes it much faster to fork a new
        kernel server, once the first RSH connection to a server node has
        been made.  The new kernel server is largely backwards compatible
        (although due to magtape i/o changes V2.10 networking cannot be used
        with older systems anyhow).  The new driver still uses a .irafhosts
        file, but it need not contain passwords, and the file is automatically
        created and read protected.  Details to follow.  (12/26)

	Here is some more information on the new networking system (12/31).

	The new driver support three different connection protocols.  The
	default protocol uses rsh|remsh to spawn a networking daemon which
	is used thereafter to start iraf kernel server processes on that
	node (more on the this later).  This is the most efficient protocol,
	and does not require any passwords.  A rsh only protocol is also
	supported which requires a rsh connection every time a connection is
	made.  This is slightly more secure than the rsh/daemon protocol but
	considerably less efficient.  Finally, the old rexec protocol is
	still supported.  This is what is used if a password is given for a
	node in the .irafhosts file.  It is also now possible to use iraf
	networking even if no rsh or rexec service is available, by manually
	starting the iraf networking daemon on a server node.

	The rsh/daemon protocol works as follows.  The client calls the
	zfioks driver to open a connection.  zfioks reads the irafhosts file
	and determines that the rsh/daemon protocol should be used for the
	named host.  zfioks attempts to connect to the daemon process on the
	remote host.  If the connection is made the client passes its port
	number and an authorization code to the daemon, the daemon forks to
	create a new irafks kernel server, which then connects to the client
	via the client supplied port number, and the connection is made.  If
	the client cannot connect to the daemon, the client forks and execs
	the rsh task which is used to start up the daemon process on the
	remote host.  The client can then connect to the daemon in the usual
	way.

	When the daemon is first started with rsh, the client passes a
	unique long integer authorization code.  All subsequent connections
	to the daemon must supply the same code or the connection will be
	refused.  The authorization code is given in the irafhosts file.
	Since this networking scheme avoids any suid root processes, the
	daemon process runs with the uid of the user whose client issued
	the original rsh request to start the daemon.  Each user has their
	own daemon process on each server node.  The daemon is started
	automatically when the first connection is made.  After a certain
	period of inactivity (default 1 hour) the daemon process will exit.

	Once a daemon has been started with rsh (this takes several seconds)
	a network connection can be made very quickly, as all that is
	required is a connect to a remote socket, a fork of the daemon
	process, and a connect back to the client supplied socket.  The
	irafks server and the client zfioks driver will then be directly
	connected via a socket.  The daemon process is just the usual
	irafks.e running as a daemon, which is why it only needs to fork to
	spawn a new irafks server.  Only one daemon process is required per
	user per server node, but there can be any number of irafks
	servers.  Any number of client hosts can connect to a single server
	host via a single daemon process, provided the user has set up a
	.irafhosts with the same authorization code on each client node (if
	this is not done the connection will still be made, but will require
	an expensive rsh connect on each call).

	The new driver still uses the .irafhosts file, although most of the
	motivation for including passwords in the file is gone.  The
	.irafhosts file is required and will be created automatically by the
	system if not present.  If an old style .irafhosts file is present
	it will be replaced by the new version of the file.  The system
	automatically read protects the file.  The .irafhosts file contains
	three regions:  some header comments, some keyword=value networking
	parameters, and the user supplied host list.

	The irafhosts keywords are as follows.

	port		The TCP port number used by the daemon process.
			Normally set to "default", which tells the driver
			to assign a port for each user based on HIPORT
			and the user uid code.  If PORT is set to "none"
			use of the daemon is disabled and rsh will be used
			for every connect (this is provided in case someone
			doesn't feel the authorization code scheme is
			secure enough).

	auth		The user authorization code.  Set to "default" in
			dev$irafhosts, but replaced by a unique authorization
			code when the user uses networking for the first time
			and the .irafhosts file is created.

	hiport		Used to dynamically assign unique port numbers
			(see "port" above).  hiport defines the top of the
			reserved port region used for the irafks daemon.
			Normally set to "default" (47000).

	timeout		The idle time in seconds after which the daemon
			will exit.  Normally set to "default".  The builtin
			default timeout is 1 hour.

	The format of a host-list entry is as follows.

		host-name  ":" login-name password

	The default host-list entry is the following.

		*  : <user> <user>

	This enables the rsh/daemon protocol for all server nodes.
	The login-name field may be set to "none" to disable networking
	for a node, or to the actual user login name to cause the
	connection to a node to be made with different login name than
	that of the user on the local host.  Setting the password field
	to an explicit password causes the rexec connect protocol to
	be used for that node.  Setting the password to "?" causes the
	driver to prompt for the password, after which the rexec protocol
	is used to make the connection.

	In actual practice, all of this is automatic and the user never
	needs to look at or modify the .irafhosts file, unless they want
	to customize things.  Once the .irafhosts file has been created
	by the system it should be copied to the user's login directory
	on other nodes in the local network.  If this is not done iraf
	networking will still work, but will be less efficient if iraf
	clients running on different hosts try to connect to the same
	server (they will have different authorization codes and the
	driver will have to fall back on the rsh connect protocol for
	every connection).

	The system template irafhosts file is dev$irafhosts.  The iraf
	system manager can set the default network parameters in this file
	if they don't like the builtin defaults.  Note that the hostlogin
	file is no longer used.  It was confusing for the files to have
	different names so dev$hostlogin was replaced by dev$irafhosts.

	COMPATIBILITY.  By default the system will try to use one of the
	rsh protocols, hence the server as well as the client must be
	running v2.10 iraf.  To connect to a pre-v2.10 server from a v2.10
	client the rexec protocol must be enabled by setting the password
	field in the irafhosts file.  A v2.9 client should be able to
	transparently connect to a v2.10 server.  In all cases where v2.9
	and v2.10 clients and servers are being mixed, remote magtape
	access cannot be used since the protocols have changed in v2.10.

sys/ki/kzopmt.x
	The devcap string was not being passed at the correct offset.
	(12/29)

sys/ki/irafks.x
        Fixed a couple of problem in the zfiomt server code which were
        preventing magtape i/o from working over the network.  The server
        was missing an entry for the new zzstmt routine.  (12/29)

unix/os/zfioks.c
	Fixed a bug that was causing remote device allocation/deallocation
	to fail, when accessing a device over the network.  SIGCLD was
	being received by the server when the alloc.e terminated and was
	executing a longjmp to a stack frame that no longer existed (the
	zfioks driver, with all its forks, has several parallel execution
	paths all in the same code).

	With this fix remote magtape access seems to be working again using
	the new magtape and networking drivers.  (12/30)

unix/os/zfiomt.c
	For a read (zzrdmt), the recsize output to the status output was
	changed from the requested read size to the actual read size, i.e.,
	the actual size of the record read.  (1/02/92)

unix/hlib/iraf.h
sys/mtio/mtio.h
	Moved the definition of EOT from mtio.h to iraf.h, so that applications
	can use it (required for mtparse/mtname).  (1/02)

sys/etc/xalloc.x
	Changed mt_allocate/mt_deallocate to mtallocate/mtdeallocate, to be
	consistent with the other extern MTIO routines.  (1/02)

sys/mtio/README
sys/mtio/mkpkg
sys/mtio/mtalloc.x
sys/mtio/mtcap.x
sys/mtio/mtdealloc.x
sys/mtio/mtglock.x
sys/mtio/mtgtyopen.x		+
sys/mtio/mtio.h
sys/mtio/mtname.x		+
sys/mtio/mtneedf.x		+
sys/mtio/mtopen.x
sys/mtio/mtparse.x
sys/mtio/mtpos.x
sys/mtio/mtrdlock.x
sys/mtio/mtrewind.x
sys/mtio/mtstatus.x
	1. An interface summary was added to the README file.
	2. Revised MTIO to add a number of new externally callable user
	routines.  The following is excerpted from the README file.

		yes|no = mtfile (fname)		# Is fname a magtape device?
	  yes|no = mtneedfileno (mtname)	# No file number given?
		    gty = mtcap (mtname)
			mtfname (mtname, fileno, outstr, maxch)

		        mtparse (mtname, device, fileno, recno, attrl, maxch)
		       mtencode (mtname, maxch, device, fileno, recno, attrl)

		    fd = mtopen (mtname, acmode, bufsize)
		       mtrewind (mtname, initcache)
		     mtposition (mtname, file, record)

	Use CLOSE to close a file descriptor opened with mtopen.
	Use GTYCLOSE to close a termcap descriptor opened with mtcap.
	MTNAME is the full magtape device specification, i.e, "mt[...]".

	The new routines are MTCAP, MTNEEDFILE, MTFNAME, MTPARSE, and
	MTENCODE.  MTCAP opens the GTY descriptor for the device specified
	in mtname.  MTNEEDFILE tells whether a file number is specified in
	the given mtname.  MTFNAME constructs a magtape file name, given an
	existing mtname and a file number.

	The MTPARSE and MTENCODE routines are lower level and are provided in
	case a mtname needs to be edited or constructed which the simpler
	routines given above cannot deal with.  MTPARSE parses an mtname
	into the device name, file and record numbers (set to ERR if not
	given) and tapecap attribute list, if any.  MTNAME does the reverse,
	building a mtname from these pieces.  (1/02)

dev/tapecap
unix/os/zfiomt.c
	Added a new capability "fb" to tapecap.  This specifies the default
	FITS block factor for each type of device.  (1/02)

unix/os/zfioks.c
	1. Tested the password prompting option (password = ?).  Fixed a
	bug in the SysV version of the password prompting code.
	2. Tested the in.irafksd idle-timeout feature, seems to work.
	3. Added a timeout feature to the handshaking that goes on between
	client and server during a connect.  The connect will now fail and
	shutdown automatically if there is no response for 45 seconds during
	a connect (e.g., because the guy on the other end is not what we
	expect it to be).  (1/02)

sys/qpoe/qpiosetrg.x
	Changed the dimension of the VS, VE input array arguments from "ndim"
	to "ARB".  (1/07)

sys/etc/xgdevlist.x
	Added a call to ki_xnode to propagate the network node prefix, if any,
	to the output resource string.  (1/07)

sys/ki/irafks.x
	The devpos struct (position information) was not being passed back
	properly when closing a magtape device opened for network access.
	(1/07)

sys/mtio/mtparse.x
	When called with sz_attrl=0, could write to attrl[0] (write off the
	beginning of the array).  Zero is of course not a legal index, but
	the routine should be able to accept it as a size, indicating that
	the attrl string is not desired.  In cases like this the application
	must still allow space for 1 char of output, e.g., the EOS.  (1/08)

sys/mtio/mtrewind.x
sys/mtio/mtposition.x
	These routines were constructing the magtape device name in order to
	position to a specific file, but were discarding the attrl field,
	preventing use of tapecap attributes on the command line in a rewind.
	Changed to use mtfname to construct the device name.  (1/08)

sys/ki/irafks.x
	Modified the debug output logging code to print more of the ARG
	array in the command packet.  Modified the zfiomt interface debug
	logging code to include devcap in the diagnostic output.  (1/08)

sys/ki/kzrwmt.x
sys/ki/kzopmt.x
sys/ki/kopdpr.x
sys/ki/kgfdir.x
	These routines were not computing the value of p_sbuflen correctly.
	This can affect optional string arguments passed in the networking
	packet header.  (1/08)

unix/hlib/irafuser.csh
	Changed the definition of mkz to link "-z -/Bstatic".  Omitting the
	-Bstatic has caused too much trouble on SunOS, when linking on one
	version of SunOS and executing on a different version.  (1/08)

unix/hlib/login.cl
	Added a definition for the convenience alias "cls" (unix clear;ls)
	to the template login.cl.  (1/08)

sys/mtio/mtopen.x
sys/mtio/mtcache.x
sys/mtio/mtrdlock.x
	Modified to pass the mtname parameter though to mtallocate, which
	can be called by mtrdlock.x in some circumstances.  (1/08)

unix/os/zfiomt.c
	1. Repeated calls to mtexamine on the same tape would result in the
	tapeused value incrementing slightly in each iteration.  This was
	due to the space for the last (EOT) filemark being counted in each
	read of the tape.  The problem would only show up on some drives;
	this was because the file mark size is only set to a nonzero value
	for some devices in tapecap.
	2. Modified the driver to record the checksum of the status output
	device, and check to see if the device has changed when the driver
	is opened repeatedly.  It will now automatically (witout flpr)
	detect any changes and close and reopen the status device.
	3. Status output to a file is now enabled if there is a / anywhere
	in the filename, not just as the first character.  Hence, :so=./file
	would write to a file in the current directory.  (1/08)

sys/mtio/mtgtyopen.x
	Modified to permit inclusion of device capabilities in the tapecap
	definition.  The syntax of a tapecap environment definition is now
	<tapecap-file><device-capabilities>, e.g., "home$tapecap:so".  Either
	field can be omitted.  For example,  set tapecap = ":so=host"  would
	cause MTIO to use the default tapecap (dev$tapecap) but enable
	status output to the named host for all magtape operations.

	Device capabilities can now be specified in the tapecap device
	entries, in the tapecap environment variable, or on the command line
	(as in "mta[:so=host]").  The precedence is the command line, which
	overrides everything, the tapecap environment variable, which
	overrides the tapecap file entries, and the tapecap file entry
	(followed lastly by the builtin defaults where applicable).  (1/09)

unix/os/zfioks.c
	1. Modified the rsh based connect code to add a fallback to rexec
	(with a password prompt) if the rsh fails for any reason.  If the
	connect succeeds, the daemon process will still be started as with
	rsh, hence all further connects will suceed by direct connection to
	the daemon.  In practice, what this means is that if an attempt is
	made to connect to a node to which rsh cannot connect (e.g., because
	there is no entry in hosts.equiv on the server node), the system
	will print "access denied", prompt for the user password, and then
	connect normally.  Subsequent connects will succeed immediately,
	without any further password prompts, until the daemon process times
	out and shuts down.

	2. If the integer variable "KSAUTH" is defined in the user
	environment, the value of "auth" in the user .irafhosts file is
	ignored and the environment value is used instead.  This makes it
	possible to dynamically assign authorization codes in the user
	environment at login time, if someone doesn't like having their
	kernel server authorization code in the .irafhosts file.  (1/10)

dev/termcap
dev/graphcap
        Modified and tested these entries for lw9 and lw10 on tucana,
        ursa, and gemini.  (1/20 - jb)

unix/hlib/zzsetenv.def
unix/hlib/clpackage.men
unix/hlib/clpackage.hd
unix/hlib/clpackage.cl
	Added entries for the new core system PROTO and OBSOLETE packages.
	(1/23)

sys/mwcs/mwcs.h
	Increased MAX_WATTR from 64 to 256, and resized the main MWCS
	descriptor accordingly.  (1/30)

pkg/proto/*			+
pkg/obsolete/*			+
unix/hlib/clpackage.cl
unix/hlib/clpackage.hd
unix/hlib/clpackage.men
unix/hlib/zzsetenv.def
	Added the new core IRAF system packages PROTO and OBSOLETE (the old
	NOAO package PROTO is renamed NPROTO for noao-proto). PROTO is for
	prototype or adhoc (interim, not fully general) tasks.  OBSOLETE is
	for obsoleted tasks that are one step away from disappearing. (Jan 92)

pkg/images/tv/*
	The TV package was extensively revised, adding the new tasks IMEDIT,
	IMEXAMINE, TVMARK, and WCSLAB and moving all the IIS control tasks
	(which don't work with display servers such as imtool or saoimage)
	to a new subpackage IIS.  The new tasks are from the old NOAO PROTO
	package, except for WCSLAB, which is contributed software from STScI
	written by Jonathan Eisenhamer.  (Jan 92)

unix/hlib/login.cl
	1. All the major core system packages are now loaded automatically
	at login time (dataio, images, lists, plot, proto, tv, utilities).
	The NOAO package is present but is commented out.
	2. The USER package was redone, adding many common unix tasks
	as foreign task aliases.
	3. The CL parameter showtype is now initialized to yes, causing
	packages and psets to be marked in package lists.  (2/08)

pkg/images/tv/mkpkg
unix/hlib/mkpkg.inc
	Added a USE_IIS conditional.  This can be set to "no" in mkpkg.inc
	on systems where the IIS package will not be used, to avoid trying
	to build the package.  (2/10)

pkg/cl/cl.par
	Updated the value of the version parameter to V2.10BETA (should have
	done this a few months ago).  (2/10)

unix/hlib/login.cl
pkg/cl/cl.par
pkg/images/images/cl
	Set up a mechanism to automatically detect and warn about out of
	date login.cl files.  A new parameter "logver", for login.cl file
	version, was added to cl.par, with the default value being the null
	string.  The real value is set by an assignment in the login.cl.
	When the IMAGES package is loaded, images.cl compares the value of
	cl.logver with cl.version and complains (harmlessly) if there is a
	mismatch, suggesting that `mkiraf' be used.  It is a bit of a kludge
	to use images.cl for this, but it is a simple technique and should
	work fine, since it is unlikely that anyone using IRAF will not be
	loading the IMAGES package at some point (clpackage.cl and system.cl
	cannot be used as they are read too early in the load cycle, and
	obviously login.cl cannot be used).  If there is any question about
	the comparative dates of IRAF and the user's login.cl this can be
	determined by executing "lpar cl" after the CL starts up.  (2/10)

	It is very important with V2.10 that the new login.cl be used.
	Magtape i/o depends upon this as does the new package loading scheme.

imio/iki/oif/oifopix.x
imio/iki/oif/oifupdhdr.x
imio/iki/oif/oifopen.x
	A couple of changes were made to improve error recovery for OIF
	format images, in the event that a task aborts before an image
	creation operation completes.  Previously this could leave a pixel
	file behind with no associated header file.

	1. The header of a new image is now updated at open time and at
	pixel file create time, as well as when the image is closed.  A
	legal image results even if the operation is aborted before the
	pixel file is created, or before writing the pixel file completes.
	2. The header file is now closed after the immap for new images
	and read-write images, as has always been the case for read-only
	images.  The header is reopened as necessary when updated.  In the
	case of a new image, it is necessary to close the header or the
	header file will be deleted by FIO if the task aborts before the
	file is completed and closed.  Closing the header of a new image
	also frees a file descriptor, and important consideration for
	applications that open many images.  (2/11)

unix/os/zfprot.c
	The protection code will now silently clobber any existing ..foo
	file entry when protecting file foo.  There is a slight risk in
	this, but it should be miniscule as .. prefixed files are very
	rarely encountered (other than for IRAF image header file protection).
	Also, the clobber can only occur when a file is protected, a rare
	operation in itself except for OIF format images.  (2/11)

sys/gty/gtyopen.x
	Modified to allow a device entry input as a character string to be
	opened on a GTY descriptor.  The routine already permitted a caplist
	to be input which would override selected fields of the named device
	entry, so the change was to allow the termcap file and device entry
	name to be omitted.  This routine is a useful corollary to GTYCAPS;
	gtycaps takes an open GTY descriptor and returns the device
	capability list (caplist) as a string, and gtyopen can now be used
	to take the caplist and open another descriptor on it.  This makes
	it possible to store device entries in any form, not just in termcap
	file form.  (2/12)

sys/mtio/mtcap.x
	Fixed a bug in this routine.  MTCAP takes a magtape device
	specification as input and returns as output the GTY tapecap
	descriptor corresponding to the named magtape device.  The problem
	was that it was calling mt_gtyopen and returning the gty descriptor
	returned by this routine directly to the client.  The client
	subsequently calls gtyclose to free the descriptor, but mt_gtyopen
	is used within MTIO to cache the most recently referenced tapecap
	device entry.  When the client closes the descriptor the cache is
	left pointing to a nonexistent descriptor.  The routine was modified
	to call GTYCAPS to get the caplist of the cached descriptor, then
	open a new descriptor on this with GTYOPEN.  (2/12)

sys/imio/iki/oif/oifrename.x
	This routine calls immapz (what a kludge) to open the image header
	and read/edit the pixel file name.  A minor modification was required
	to preserve the header file name in the descriptor to allow the
	subsequent header update to succeed, now that the header file is
	closed and reopened for updating.  (2/13)


pkg/dataio/wfits.par
pkg/dataio/doc/wfits.hlp
pkg/dataio/fits/wfits.h
pkg/dataio/fits/t_wfits.x
pkg/dataio/fits/fits_write.x
pkg/dataio/fits/fits_wheader.x
pkg/dataio/fits/fits_wimage.x
pkg/dataio/fits/fits_wpixels.x
	Modified wfits to fetch the default fits blocking factor for a device
	from the dev$tapecap file. The user can still overrride this value
	(which is usually set to 10) for variable blocked devices, but is no
	longer required to know or set the block size for fixed block devices
	like cartridge tapes. (2/13 LED)

unix/as.sparc/ieee.gx		+
unix/as.sparc/ieeer.x		+
unix/as.sparc/ieeed.x		+
unix/hlib/mkpkg.sf.SUN4
unix/as.mc68020/ieee.gx		+
unix/as.mc68020/ieeer.x		+
unix/as.mc68020/ieeed.x		+
unix/hlib/mkpkg.sf.SUN3
	Installed a custom Sun version of the IEEE-floating to native-floating
	conversion routines.  The code is actually fairly portable SPP code,
	but includes Sun Fortran escapes used for NaN mapping.  The routines
	iee[sg]nan[rd], used to set|get the reserved (native) magic value
	used to replace or match NaNs, are now functional (formerly they
	were stubbed out for SunOS).  On Sun-3s and Sun-4s, which are IEEE
	and unswapped, the only function of the IEEE conversion routines
	is to map NaNs to and from the reserved (ieesnan[rd]) value.

		ieemap[rd] (YES|NO)		# enable/disable NaN mapping

	A new routine IEEMAP[RD] (YES|NO) is used to explicitly enable or
	disable NaN mapping.  Note that NaN mapping occurs on both input
	and output, for both the scalar and vector conversion routines.
	NaN mapping is automatically enabled if IEESNAN[RD] is called.
	"call ieemap[rd](NO)" should be called before using the conversion
	routines, if NaN mapping is not desired.  (2/14)

pkg/dataio/fits/fits_rheader.x
	Modified rfits to replace control characters decimal 0 (00X) to
	31 (1FX) and decimal 127 (7FX) in fits card images with the blank
	character. The new fits standard now explicitly defines these
	as illegal in fits headers. (LED 14/2/92)

unix/gdev/sgidev/sgi2uapl.c
unix/sun/screencopy.c
	The call to the Postscript "setmatrix" operator was replaced by a
	functionally equivalent series of calls to the operators
	"initmatrix", "scale", and "translate", in an attempt to make
	the Postscript output of these routines more device independent.
	(2/14)

unix/as.sparc/ieee.gx
unix/as.sparc/ieeed.x
unix/as.sparc/ieeer.x
unix/as.sparc/ieee.gx
unix/as.sparc/ieeed.x
unix/as.sparc/ieeer.x
	The SunOS IEEE conversion package was modified to add support for
	counting any NaN values encountered during input and output
	conversions (the portable vops$ieee.gx still remains to be updated).

	The new routines are as follows.

		 ieestat[rd] (nin, nout)
		ieezstat[rd] ()

	IEEZSTAT zeros the counters (since there is no "open" procedure in
	this package this must be done explicitly).  IEESTAT returns the
	number of NaNs encountered in the IEEE input (nin) and the number of
	NaN values output (nout).  (2/14)


unix/as.sparc/ieee.gx
unix/as.sparc/ieeed.x
unix/as.sparc/ieeer.x
unix/as.sparc/ieee.gx
unix/as.sparc/ieeed.x
unix/as.sparc/ieeer.x
	I made one change to the IEEE interface - the calling sequence for
	IEEMAP[RD] is now

		ieemap[rd] (mapin, mapout)

	i.e., mapping can be enabled independently for input and output.

	The semantics of the IEESNAN routine were also changed slightly.
	IEESNAN now has the side effect of enabling mapping for both input
	and output (it did this before) and zeroing the statistics counters
	(this is new).  Hence, setting the native pseudo-NaN value will
	initialize the NaN mapping code.  (2/15)

sys/osb/ieee.gx
	Installed a new version of the "portable" IEEE conversions package.
	This is identical to the version developed for SunOS, with the code
	which initializes the IEEE NaN constant commented out (since the way
	this is done is system dependent).  The new version of the portable
	ieee.gx includes the new IEEMAP and IEESTAT/IEEZSTAT routines, and
	if input mapping is enabled is capable of detecting and converting
	input NaN values to the local pseudo-NaN value.  It will also
	attempt to convert pseudo-NaN to IEEE-NaN upon output (if mapout is
	enabled), but since the IEEE-NaN constant is not initialized the
	output NaN value will be something else, usually zero.  An
	as$ieee.gx version of the file is required to set the true IEEE-NaN
	value.  In principle this can be done portably using an integer
	equivalenced to a floating variable, but the current version does
	not bother with that (for output; a similar technique is used to
	recognize NaN values in the input).  (2/15)

pkg/images/tv/display/t_display.x
	Added a call to IMGIMAGE to strip any image section from the image
	name stored in the WCS passed to the display server.  Since the WCS
	output by display refers to the full image matrix ignoring any
	section, defining the image as a section was incorrect.  The WCS
	still does not deal correctly with dimensional reduction when
	displaying images greater than 2 dimensions.

	This was tested with both image raster and QPOE data using RIMCURSOR
	to generate coordinates and seems to work correctly.  In particular,
	the correct physical coordinates are generated for QPOE data
	regardless of the QPOE block factor or image section.  (2/16)

sys/qpoe/qpioparse.x
	Fixed a bug that was preventing the key=(x,y) (alternate coordinate
	system) feature of QPIO from working properly.  The code was setting
	the IO_EVXOFF field twice but was not setting IO_EVYOFF; hence, given
	a key such as key=(dx,dy), XOFF was being set to DY and YOFF would
	retain its old value, probably Y.  A reasonable looking image would
	result but it was the wrong image (we were seeing key=(dy,y)).  (2/16)

sys/imio/iki/qpf/qpf.h
sys/imio/iki/qpf/qpfwfilter.x
	Fixed a bug in the code which writes the QPIO filter to the QPF image
	header, which would cause it to omit all but the last card when
	writing filters longer than will fits on a single QPFILTxx header
	card.  (2/16)

sys/imio/imparse.x
	The routine was modified to make it a little more forgiving regarding
	variations on the standard image section syntax, and to improve error
	detection of invalid section specifications.  (2/16)

pkg/dataio/fits/fits_rimage.x
pkg/dataio/fits/fits_wimage.x
	Modified rfits so that the ieee +/-NaNs, and +/-Infs are correctly
	mapped to a user specified native floating point number. Underflow
	values are automatically converted to 0.0. A warning message is
	printed on the terminal if any bad pixels were replaced.  A warning
	message is also printed if valid floating point pixel values >
	MAX_REAL or < -MAX_REAL were detected which can happen for both fits
	bitpix -32 and -64 images.  Imreplace can be used to replace these
	explicitly. (LED 2/17/92)

pkg/dataio/fits/fits_wheader.x
	Modified the short_header=yes option in wfits so that the image
	pixel type, fits bitpix, and the scaling parameters are printed on
	the standard output, along with the image name, size, and number of
	records written. (LED 2/17/92)

pkg/dataio/fits/fits_params.x
	Modified wfits so that string parameters that are 1) written
	explictly by wfits, and 2) <= 20 characters long including quotes,
	will have the / in column 33 instead of 2 spaces past the end of the
	string. The affected keywords are OBJECT, ORIGIN, DATE, IRAFNAME,
	IRAF-BPX, and IRAFTYPE. (LED 2/17/92)

pkg/dataioo/fits/rfits.com
pkg/dataio/fits/t_rfits.x
pkg/dataio/fits/fits_read.x
	Implemented a scan mode in rfits so that devices which have a slow
	single-file file skip function (e.g. dat drives) can be used more
	efficiently with the rfits make_image=no option. (LED 2/18/92)


dataio$fits/t_rfits.x
dataio$fits/t_wfits.x
	Changed the maximum sequence number that can be appended to an output
	root image of fits file name from 999 to 9999. This is actually
	a format limitation %04d than a numerical limitation. (LED 2/18/92)

sys/qpoe/qpiogetfil.x
	Modified to remove an unneeded trailing comma which was being returned
	in some circumstances in the reconstructed filter expression output
	by the routine.  (2/18)

sys/qpoe/zzdebug.x
	The zzdebug would not link any more due to a routine being referred
	to by a name which had since changed (qp_rlmerge).  (2/18)

sys/imio/iki/qpf/mkpkg
sys/imio/iki/qpf/qpfwattr.x		+
	Added a new routine qpf_wattr to QPF.  This is called when an
	image descriptor is set up for a QPOE image.  The routine checks
	for the existence of a series of QPOE header paramters "defattr1",
	"defattr2", etc.  If present, these are string value parameters,
	the string value specifying the name of a parameter to be added
	to the output image header, and how to compute the value of the
	parameter.  For example, defattr1 might have the value

		exptime = integral time:d

	meaning add a parameter "exptime" to the output image header, giving
	as the value of the parameter the integral of the range-list of
	attribute "time", type double, of the event attribute expression
	used to filter the event list used to create the output image.  (In
	other words, compute EXPTIME, the total exposure time for the
	filtered image).  Currently, the syntax of the DEFATTRn parameter is
	very limited and must be similar to that shown in the example, but
	the parameter and attribute names can be anything, and the datatype
	can be int, real, or double.  Since the parameter is string valued
	it will be easy to generalize in the future should we need to do
	so.  (2/18)

sys/imio/iki/qpf/qpfcopypar.x
	Improved the error recovery.  (2/18)

pkg/cl/gram.c
	Constants such as 0:00:60 or even 0:00:59.999999999 could trigger
	an "illegal constant" error abort in CL scripts, due to round off
	errors in the CL code.  Technically there is no reason one cannot
	have a number such as 0:00:60 (or 0:00:any-positive-number for
	that matter), since the result is well defined, so I relaxed the
	overly stringent error checking in the gram.c code.  (2/19)

sys/gio/cursor/grcwcs.x
	The code which computes the scale terms for an axis could die on
	a divide by zero error when presented with an axis that has no
	range.  It will now detect the condition and set the scale term to
	1.0; the value is arbitrary, since there is no range on the axis
	and deviations from the mean will always be zero.  (2/19)

sys/imio/iki/stf/stfrdhdr.x
sys/imio/iki/stf/stfwfits.x
	The STF image kernel was modified slightly to support images with
	GROUPS=F.  When the FITS image header is read, if GCOUNT=F the
	parameters GCOUNT, PCOUNT, and PSIZE are initialized as for an image
	with a single group and no GPB.  The header update code was modified
	to omit these parameters when updating an image for which GROUPS=F,
	since the parameters should not be present in the FITS image header
	if the image unless GROUPS=T.  (2/19)

sys/imio/iki/oif/oifrename.x
	An image rename operation such as pix.0001.imh -> pix.imh would
	succeed for the header file but would fail to rename the pixel
	file.  This would often pass unnoticed using a hidden imdir, but
	is very evident when using imdir=HDR$.  The problem was due to the
	use of fnroot in oifrename, in a test to see if the root image
	name is the same for the rename operation.  This would fails as
	fnroot cannot descriminate between image extensions and file
	extensions.  I replaced the calls to fnroot by calls to zfnbrk,
	to get the root offset and hence strip off any logical directory
	prefix, which was the point of the original call to fnroot.  (2/19)

unix/os/zfiomt.c
	It turns out there was still one case where the new magtape driver
	did not emulate the simple unix model of open, write,write,write,
	close, open, write,write,write, close, open, etc.  The exception was
	minor, but caused a problem with the TIB SI driver for the HP drive
	on a Sun (the only one of these we have seen so far is at STScI).
	The result was a double EOT between each file on the tape, when
	appending files with WFITS.

	What was happening is that when the driver was opened to append a
	file to the tape, it opened the drive read-only to position the
	tape, then closed it and reopened write-only for writing.  This is
	done to avoid clobbering the tape if an abort occurs during the
	file positioning operation.  What was happening was that when already
	positioned to EOT, the drive would be opened read-only, no positioning
	would occur since the tape was already at EOT, the drive would be
	closed, and reopened for writing.  Hence there was an unnecessary
	open-read/close before writing each tape.  This should be harmless -
	it does not move the tape or talk to the hardware - but it was
	triggering a bug in the host driver.

	Evidently (this is my theory at least), this host driver is pretty
	clever and delays writing the double file mark marking end of tape.
	So long as you just append files it never write the EOT, until the
	tape is rewound.  A rewind or backspace should trigger writing of
	the EOT.  What I think was happening was that the open-read would
	trigger writing of the delayed-EOT.  The host driver would write
	two tapemarks and backspace over the second one.  Only problem is,
	it had already written one (one is always written after every file
	even with delayed EOT), so you end up with a double file mark, or
	EOT, between every file on the tape.  This is a blatant bug in the
	host driver.  We were able to duplicate this using only using UNIX
	TAR by writing a small C program which did  close(open(/dev/xxx,0));
	and was called before using tar to append each file.

	As a workaround I have revised the iraf driver to avoid opening the
	tape read-only for positioning unless some positioning is actually
	necessary.  If all one does is append files, the positioning open
	is avoided and the simple unix semantics are exactly duplicated,
	i.e., all the driver does is open for writing, write the file, and
	close.  (2/19)

pkg/dataio/fits/fits_write.x
	Replace a call to imgimage with one to imgcluster since the
	original purpose of the imgimage call was to extract the root
	image name. (have not yet rebuilt dataio) (2/20/92 LED)

------------------------
Beta system cut and installed on URSA (2/20).

unix/os/zfiomt.c
	Fixed a bug having to do with error recovery in the event that the
	device cannot be opened (as when attempting to rewind or deallocate
	a device that is offline).  (2/22)

unix/hlib/login.cl
	Modified the template login.cl to allow V2.10 login.cl files to be
	used with V2.9 IRAF (available as "irafo" on our systems).  It
	was necessary to add conditional references for LOGVER and PROTO.
	Also, the NOAO package is now loaded by default.  (2/22)

pkg/plot/crtpict.par
	Changed the default output device from "dicomed" to "film_recorder".
	The latter is a generic device alias set in graphcap to point to
	whatever the desired local device may be.  (2/22)

local/login.cl
	Updated to V2.10.  Edited so that it is fairly generic and has a
	chance to work when the system is installed on a different host.
	(2/22)

dev/tapecap
	1. Added local entries for node ursa.
	2. Added a SCSI 5 entry for the Sun HP drive.  (2/22)

dev/graphcap
	Additions for Solitaire film recorder.  Set the default generic
	"film_recorder" entry to point to the solitaire.  The Solitaire
	is currently interfaced via a custom graphics kernel (modified
	version of the SGI kernel) which resides outside the standard
	IRAF system, in the NLOCAL package.   (2/22)

pkg/system/rewind.par
	Changed the default for the "initcache" parameter from yes to no.
	initcache causes rewind to "forget" how many files there are on the
	tape, forcing a rescan the next time one seeks to EOT.   It is
	arguable whether it is safer to init the tape status cache on a
	rewind or now, but it sure can be a lot faster on devices with
	many files to retain this information.  (2/22)

-------------------------
Beta distribution files regenerated to pick up these changes. (2/22)

unix/bin.mc68020/gterm.e.403
unix/bin.mc68020/imtool.e.403
	Added SunOS 4.0.3 versions of the GTERM and IMTOOL executables,
	for the convenience of those who have not updated to 4.1.x (as is
	the case with argo, locally).  (2/23)

unix/as.sparc/ieee.gx
unix/as.mc68020/ieee.gx
sys/osb/ieee.gx
	Fixed a typo in the generic code for ieevupk - an "amovr" should have
	been a "amov$t".  This would cause type double vector unpack operations
	to fail for large numbers.  (2/25)

unix/os/zfiomt.c
	Added a new capability "fe" to tapecap.  This stands for "file
	equivalent" and is the amount of tape in Kb which, in a file read,
	is equivalent to a file-skip-forward 1 file operation.  This
	capability can be used by applications which scan large tapes
	containing many files to decide whether to read the rest of the
	file, or close the file immediately and open to the next file (which
	implies a FSF).  On devices (like some DAT drives) where a FSF
	operation can be slower than a file read, it is faster to read
	small files than to FSF to the next file.  If the fe parameter is
	missing the value is assumed to be zero, meaning that FSF is faster
	than reading the file.  Note that "fe" is not used by the driver,
	it is an optional parameter provided for use by tape applications
	as a device-dependent optimization.  (2/27)

pkg/dataio/fits/fits_read.x
	Changed the interpreation of the fe parameter as read from
	dev$tapecap from MB to KB. (2/27 LED)

dev$hosts
	Added spud and pantera to hosts file on tucana, orion, gemini and 
	ursa (MJF 2/28)

sys/etc/erract.x
	Replaced an explicit reference to the common "zjucom" by the symbol
	JUMPCOM defined in config.h.  (This was a historical oddity, harmless,
	but would cause a problem if the name of the common was ever changed
	in config.h).  (2/29)

sys/etc/onexit.x
sys/etc/onerror.x
	A procedure was added to both of these small packages, for removing
	previously posted onerror or onexit procedures.

	    onerror_remove (procname)
	     onexit_remove (procname)

	Previously there was no way to deactivate such procedures, other than
	during error recovery or task termination.  (2/29)

sys/mtio/mtupdlock.x
	This procedure calls FATAL if an error occurs while updating a lock
	file.  This was causing problems with magtape error recovery,
	because mt_sync, which causes the lock files to be updated, is
	posted by MTIO as an ONERROR procedure.  If an error occurred and
	the lock file could not be updated, FATAL would abort the task,
	error recovery would call mt_sync, which would try again to update
	the lock file, leading to error recursion or errors during error
	recovery, and various nasty scenarios.  With this change magtape
	error recovery appears to be working correctly again.  I tried
	several mtexamine runs, aborting each with a ctrl/c (but omitting
	the flpr) and the system recovered perfectly each time.  (2/29)

sys/mtio/mtdealloc.x
	Added calls to mtdeallocate to sync the MTIO cache (update the lock
	files with the current tape position) and then clear the cache,
	clearing the entry for the deallocated device as well as forcing all
	devices to reload their lock files.  This was the source of the
	problem where allocating and deallocating device A and then allocating
	device B would cause devstatus B to fail.  Following this fix various
	tests with two devices allocated and accessed together or alternately
	were performed without seeing any problems.  (2/29)

pkg/system/rewind.par
	Changed the default for the initcache parameter back to yes.  It is
	essential that the cache be initialized when a tape is removed and a
	new tape mounted, and it more likely that the user will rewind the
	tape (in software) than that they will deallocate/reallocate.  (3/01)

	rewind init[+|-] appears to be working correctly now, probably as a
	result of one of the bug fixes made during the period 2/29-3/01.

unix/os/zfiomt.c
	The tapeused counter is now cleared when opening a tape and the tape
	position is undefined.  This condition forces a rewind and clears
	all cached data.  (3/01)

sys/ki/kzopmt.x
sys/mtio/mtcache.x
sys/mtio/zclsmt.x
sys/mtio/zopnmt.x
	A number of changes were made to these routines during two days of
	beating on the system with ctrl/c interrupts to improve error
	recovery.  With these improvements the magtape i/o system again
	appears to be solid with respect to error recovery.  A tape task can
	be interrupted either during positioning or during a read and the
	system should recover completely, without need to do a flpr (I
	didn't do any flprs during all this testing).  Interrupting a write
	is ok too, but will leave a partial file on the tape.  Any kind of
	interrupt will cause the tape position to be marked undefined,
	forcing a rewind the next time the tape is accessed, and clearing
	all cached information (clearing cached tape information when an
	interrupt occurs during a read is not necessary in all
	circumstances, but simplifies things and is probably safer).

	1. The kzopmt routine (KI) had a serious bug in that it did not
	allocate a KI channel descriptor until after the device open.  This
	is ok for most devices, but not for tapes since the device open
	implies a tape positioning operation which may take a very long
	time, and hence is suspectible to interrupts.  FIO and MTIO error
	recovery has to be able to close a tape device which is "partially
	open", or open read-only for positioning, prior to the i/o operation.
	The close operation would fail as the kzclmt routine would be
	expecting a KI channel descriptor but would not get one, causing
	a bogus file descriptor to be closed.  This would cause the tape
	close to fail and could in some cases result in a segmentation
	violation or process panic shutdown.

	2. zopnmt was modified to update the cached file position after
	the driver open.  This was necessary to mark the cached entry
	for updating, to allow an undefined position to be written in the
	event that an interrupt occurred during i/o.

	3. zclsmt required minor changes for both the interrupt-while-
	positioning and interrupt-during-i/o cases.  In the IWP case mt_sync
	is now called with a status of ERR to cause an undefined position
	to be written.  In the IDIO case MT_FILNO = -1 in the internal
	MTIO descriptor is used to flag error recovery, but due to the
	calling sequence of the driver open having changed with the new
	driver, MT_FILNO was being overwritten with a valid tape position
	during the device close.  This would cause a valid position to be
	written to the .lok file when a tape operation was interrupted
	while i/o was in progress.

	4. The file position cache code underwent several subtle modifications.
	Probably these were not necessary but they bullet-proof the code a
	little bit.

	The result of all these changes is that, following an interrupt of
	a tape operation, 1) devstatus should always show file=-1, record=-1,
	and 2) the next tape operation should cause an automatic rewind
	followed by a space forward to the indicated file.  It should not be
	necessary to flush the process cache.  Any other behavior, even if
	harmless, is considered incorrect.  (3/01)

sys/etc/xalloc.x
sys/mtio/mtalloc.x
sys/mtio/mtstatus.x
	Modified the "devstatus" command to print the tape status file
	(.lok file) even if the device is not allocated, provided the file
	exists.  This is desirable since taping is now permitted even on
	unallocated devices, and it is useful to be able to see the tape
	status file to see what file the tape is positioned to, how much
	tape has been used, etc.   If the device has not been allocated
	devstatus will still issue a warning message to that effect, as it
	has always done, followed by the contents of the .lok file (tape
	status file), if such exists.  Since existence of the tape status
	file no longer necessarily implies that the tape has been allocated,
	the header message in the file was changed from "Magtape device X
	allocated to ..." to "Magtape device X status ...".  (3/01)

sys/mwcs/mwshow.x		+
	Added a new routine MW_SHOW to MWCS.  This is used to print a
	representation of a MWCS to an output file (usually, for debugging
	purposes when writing an application).

		call mw_show (mw, out, what)

	The routine does not yet print all that it could about the MWCS.
	The argument "what" is not yet used.  This routine was described
	in the original interface but had never been implemented.  (2/25-3/01)

sys/mwcs/mwcs.h
sys/mwcs/mwsv.h			+
sys/mwcs/wfinit.x
sys/mwcs/mwload.x
sys/mwcs/mkpkg
	In IRAF v2.10 we increased the max number of WCS attributes, which
	affected the size of the MWCS descriptor.  This caused the WCS stored
	in old QPOE files to be unreadable, since it turns out that while
	the MWCS interface (mw_save) encodes a MWCS descriptor in a machine
	independent form for external storage, this form is essentially just
	a copy of the internal MWCS binary descriptor.  When the internal
	descriptor changed the old saved descriptors could not be read.
	Since QPOE is a runtime binary format there is no requirement that
	the files be readable from one version of iraf to the next, but it
	is desirable to minimize such incompatibilities, or at least detect
	them and issue an appropriate error message.

	Really fixing this problem in a general way is not easy given the
	complexity of the MWCS descriptor.  What I did was define a separate
	MWSV save file descriptor in mwsv.h, deleting the old SV_ entries
	from mwcs.h.  The old save structure had some extra space in it for
	just this sort of emergency, which is zeroed out in the old MWCS
	savefile descriptors.  Fields giving the MWSV version number, number
	of WCS, and WCSLEN (WCS substructure length) were added to the save
	descriptor.  Since these fields are zero in the old descriptors the
	"version number" of these old descriptors is zero.  The mw_load code
	was modified to use a builtin MWSV version zero value for WCSLEN,
	and calculate NWCS, allowing it to read these old descriptors.  New
	descriptors are written using the actual values for NWCS and WCSLEN
	and a version number of 1.  Hence, the new mw_[save|load] code can
	both read old descriptors and write and read the new descriptor with
	its larger max number of WCS attributes.

	I also discovered and fixed a minor problem in the save code.  The
	SV header (integer) was being read and written directly without use
	of the MII routines, hence the MWCS save/load code was not fully
	machine independent.  The appropriate MII routines were added to
	pack and unpack (byte swap) the save header.  This won't affect
	existing saved MWCS written on big-endian machines like Sun, since
	the MII routines merely copy the data on such machines.  (2/25-3/01)

sys/mwcs/mwsctran.x
	Fixed a typo in the error checking code.  There was a "mw_system"
	reference which should have been "mw_ssystem".  (3/04)

plot/pltwcs.x
plot/t_graph.x
	Modifications were made to produce a label appropriate for the
	wcs type selected rather than always use the world system label
	in the image; i.e. if plotting in logical wcs the label is
	"Logical pixel" rather than something like "Wavelength (Angstroms)".
	The change affects pcol(s), prow(s), and graph.  (3/04 FV)

dev$hosts
	Added solarium and taco to the hosts file on tucana and orion.  Nigel
	added these to ursa and gemini.  He also notes that lyra, carina and
	aquila can be deleted.  (3/4/92 MJF)

unix/bin.mc68020.403		+
unix/bin.mc68020/gterm.e.403	-
unix/bin.mc68020/imtool.e.403	-
	Added a complete bin.mc68020 directory compiled and linked for
	SunOS 4.0.3.  Deleted the 4.0.3 versions of gterm.e and imtool.e
	from the SunOS 4.1.1 version of bin.mc68020.

	In case this problem occurs again here are the symptoms:

	ld.so: warning: /usr/lib/libc.so.0.12 has older revision than expected
	ld.so: call to undefined procedure _tolower from 0x20266

	This occurs when executing any HSI executable on a 4.0.3 system.
	If this occurs the solution will be to install bin.mc68020.403 as
	bin.mc68020, i.e.,

	% mv bin.mc68020 bin.mc68020.411; mv bin.mc68020.403 bin.mc68020

	Currently there are no plans to ship V2.10 with the 4.0.3 binaries
	installed by default.  Linking the HSI -Bstatic also avoids this
	problem but the executables are quite a bit larger and there may
	still be subtle problems which are dependent upon SunOS versions,
	e.g., with alloc.e.  (3/05)

sys/imio/iki/qpf/qpfwattr.x
	Modified to deal with the case where there is no filter expression
	and the QPEX descriptor is NULL.  (3/05)

pkg/images/iminfo/listpixels.x
	Modified the listpixels task to use the MWCS axis "format"
	attributes if they are present in the image header, and added
	support for dimensionally reduced images whose coordinate
	transformations are dependent on the reduced axis. (3/6/92 LED)

pkg/lists/rimcursor.par
pkg/lists/rimcursor.x
pkg/lists/doc/rimcursor.hlp 
        Added two new parameters wxformat and wyformat to the rimcursor task. 
        These formats if defined  take precedence over the formats stored in
	the  WCS in the image header, and the internal default format for
	all values of the wcs parameter. (Davis 9/3/92)

sys/mio/mtupdlock.x
	This, routine, which updates the magtape device status file (aka
	lockfile) was a bit too zealous about error checking and could fail
	to update the status file and cause a fatal exit of the task in
	circumstances where this was not really necessary, for example when
	the old status file did not exist or could not be read.  This could
	result in the message "fatal error while closing magtape file".  I
	modified the routine to recover if the old file could not be read
	and to take an error exit only if the new status file could not be
	written.  The error message was changed to "Fatal error writing
	magtape device lockfile".  (3/10)

sys/imio/iki/stf/stfaddpar.x
	The stf_addpar routine is used for a new image or a new copy of a
	non-STF image to add parameters to the GPB.  As each parameter is
	added a parameter is also added to the open image descriptor (image
	header).  The imaddX calls for the image header would initialize
	the value of any existing header parameters, causing any existing
	WCS to be lost (since the standard GPB parameters are for the WCS).
	The fix was to omit the imaddX call if the named parameter already
	exists in the image header.  (3/10)

sys/imio/iki/stf/stfaddpar.x
	The value of STF_PSIZE was being computed incorrectly.  There was
	an implicit assumption that the CTYPEn field was the same size as
	SZ_DOUBLE, evidently made in the original code to simplify the
	expression.  Rewrote to use an explicit 8 bytes for the CTYPEn field,
	and also reordered and commented the expression for clarity.  (3/10)

pkg/images/iminfo/t_imstat.x
	Precision was being lost unnecessarily in the computation of the
	standard deviation, skew, and kurtosis because two of the
	intermediate variables in the computation were real instead of
	double precision. (3/10/92, Davis)

dev$hosts
	Added 'elric' to hosts file on tucana, orion, and ursa.  Previously 
	added to gemini by Nigel.  (3/11 MJF)

pkg/images/imutil/t_imslice.x
pkg/images/doc/imslice.hlp
	Added wcs support to the imslice task. (3/12 LED)

unix/os/zfiomt.c
	Discovered and fixed another error recovery problem.  During testing
	using WFITS to write a number of very small images, the program was
	spending most of the time doing the file close on the magtape device
	(which writes a tape mark and takes a finite time for such a device).
	An interrupt would therefore usually occur during the close, resulting
	in a half-completed file close; error recovery closes open files, and
	the driver was bombing as part of the descriptor had already been
	deallocated.  The fix was to modify ZZCLMT to check for a partially
	deallocated descriptor before proceeding to close the file.  (3/14)

unix/os/zfiomt.c
	When appending files to a tape, the space for the file mark was not
	being counted, causing an incorrect tapeused value when writing to
	DAT or Exabyte.  (3/14)

unix/os/zfiomt.c
	Added two new tapecap device parameters "ro" and "rr".  If "ro"
	(rewind-on-open) is set the tape is rewound on every open to get to
	a known position, after which the driver will space forward to the
	desired file.  If "rr" (rewind-after-close-readonly) is set the tape
	is rewound when closed following a readonly operation.  These
	options are rather drastic, but are provided to deal with drives that
	leave the tape in an unknown position after a file operation.  (3/15)

	I also looked into the problem of fast techniques for finding the EOT
	of large tapes containing hundreds of files.  This is important as
	seeking to the end of tape file by file where are hundreds of files
	can be very time consuming.

	At least in the case of a DAT with the ApUNIX driver there is no
	system and driver independent way to do this because the driver does
	not report an error if one attempts a fsf N where N is greater than
	the number of files on the tape.  However, such an operation *does*
	leave the drive positioned to EOT, hence operations with large N can
	be used to position to EOT or append to a tape.  This is perhaps
	most easily explained with some examples.  Assume we have a tape mta
	with 100 files on it.

	    wfits dev$pix mta[999]	appends a file
	    mtex mta[999]		positions to EOT
	    mtex mta[998]		after the above, reads last file

	After one of the above operations the driver will report that
	there are 999 or 998 files on the tape.  A mtex of the full tape
	would automatically correct this figure.

	Of course if the user knows that there are 100 files on the tape
	they could just write to mta[101] or read mta[100], and the driver
	would immediately position to the indicated file using a multifile
	space operation (if enabled in tapecap).

	Further studies will be needed to determine if there is any way
	to exploit this sort of drive behavior in the driver to make things
	transparent to the user.

sys/fmtio/dtoc.x
sys/fmtio/fprfmt.x
sys/fmtio/parg.x
sys/libc/printf.c
	Added two new format specifiers %H and %M to FMTIO.  These are
	identical to %h and %m except that the value to be output is divided
	by 15.0 (to convert degrees to hours) before being printed.  (3/15)

pkg/lists/doc/rimcursor.hlp
	Added an explanation of the %H format and example of its use to
	the rimcursor help page. (3/16 LED)

sys/fmtio/lexdata.inc
sys/fmtio/doc/lexnum.hlp
	The action for the character B in the DHR production was incorrect;
	changed from d_d (reduce decimal) to HEX (go to the HEX production).
	(3/16)

sys/fmtio/dtoc3.x
	The DTOC3 code had a very nasty problem which showed up on a specific
	machine (lepus, mc68882 fp).  There is some code in this routine which
	goes as follows:

	do i = 1, no_digits {
	    v = v * 10.0d0
	    j = v
	    v = v - j
		(etc.)

	where V is double and J is integer.  In the case where this failed
	the number being printed was 6 and upon entry to the above loop V
	was 0.6 (normalized to 0-1).  The int operation J=V was setting J to
	5, but the V=V-J was returning 1.0.  In the next loop V was 1 and
	V * 10 was 10, causing digit conversion to fail, since the value 
	being digitized must be a single digit.

	In mathematical terms the code was correct but evidently it was
	failing due to some sort of roundoff problem.  I added some code
	to try to detect this condition and correct it.  The statement
	J=V was also replaced by J=INT(V+EPSILOND) to round up numbers
	which are integral to within the machine epsilon (e.g., 5.99999999
	with 16 or so 9s becomes 6).  (3/22)

	This sounds similar to a problem which has been reported before,
	it may fix the older problem.

sys/etc/oscmd.x
unix/as.sparc/oscmd.s
	I encountered some sort of bizarre (i.e. very subtle) problem with
	a minilanguage which would send an OS escape to the CL to be 
	executed, while there were already parameter set statements buffered
	in the CLOUT.  The CL (actually prpsio code) would get both in the
	same read and it was causing some problem which I did not have time
	to investigate.   Added a call to flush(CLOUT) to avoid the problem,
	is safer anyway.  (3/22)

	[need to add as.mc68020 version or remove from special file list]

pkg/images/tv/wlutil.x
	Wcslab was not working correctly if an image larger than the frame
	buffer was displayed with fill=no. (3/25/92 LED)

dataio$fits/t_rfits.x: Davis, Mar 25, 1992
	Rfits was using the value of the iraf_file parameter instead of the
	name of the first output image, if the value was an @file, e.g
        "@outlist" and the number of output files was 1.

dev$hosts
	Added Rob Hubbard's machine 'deneb' to hosts file.  Added to gemini 
	and ursa by Ed Anderson (3/31/92  MJF)

qpiogetfil.x
qpexpand.x
qpexgetfil.x
qpexgetat.x
	These routines return the string length of the output string as the
	function value.  If the output string overflows maxch characters are
	returned, however the function value in this case could be maxch-1,
	causing the calling routine to fail to detect string overflow.  The
	code was modified to return maxch if string overflow occurs.  (3/31)

qpmacro.x
	Modified to permit QPDEFS statements such as "set nodeffilt", i.e.,
	a SET statement with no value assignment.  (3/31)

qpex.h
	Doubled the default size of the program, data, and expression buffers.
	(3/31)

qpexparse.gx
	Timing tests on filter expressions containing many floating range
	list terms (e.g. large time filters) revealed that this routine was
	very inefficient in its used of fp_equal[rd].  I optimized a couple
	of inner loops slightly and was able to speed up expression
	compilation by a factor of 10-15.  (3/31)

qpexdebug.x
	Modified to allow for output of the full expression string when
	used with very long range lists.  (3/31)

--------------------------
TUCANA upgraded from a 3/160 to a Sparcstation 2.
SunOS 4.1.2, Sun Fortran 1.4, Sun C compiler.  (4/03)

unix/mkpkg				+
	Added a mkpkg file providing a "mkpkg summary" facility for compressing
	reboot output.  (4/04)

unix/shlib/mkshlib.csh
	Added support for Sun Fortran 1.4, for sparc only so far.  (4/04)

unix/hlib/mkpkg.sf.SUN4
	Commented out the special file list entry for oscmd.x, I doubt if
	it is needed any more.  (4/04)

--------------------------
Completed a full sparc bootstrap and sysgen-compile for SunOS 4.1.2,
Sun Fortran 1.4, and the unbundled C compiler.  (4/04)

unix/hlib/irafuser.csh
unix/bin.sparc
	Set up the HSI to link the HSI executables -Bstatic.  I don't like
	doing this as the resulting bin is 3.6 Mb, but the libc.a shared
	library versions are too much of a headache.  HSI executables
	linked shared under SunOS 4.1.2 will generate a shared library
	warning message when run under 4.1.1, and this is just a micro
	version difference.  The mc68020 executables (and local nodes) are
	still at 4.1.1 so there is no problem there.  (4/05)

unix/boot/mkpkg/host.c
	The code used to check two iraf directory pathnames for equality
	could fail for pathnames such as /u3/iraf/iraf, containing more than
	one "iraf/".  This caused the special file list to be ignored in
	the recent upgrades and full sysgen.  (4/06)

	[all affected files recompiled]

unix/hlib/install
	Modified the install script to choose /usr/local/bin over /local/bin
	if both are found.  (4/06)

noao/mkpkg
noao/nobsolete/mkpkg		+
	Added a stubbed-out mkpkg to nobsolete.  Uncommented the commented-out
	entries for nobsolete in noao/mkpkg.  Restore the original package
	build order, which builds all the main packages first followed by
	imred.  (4/06)

sys/etc/prpsio.x
	The code which intercepts raw mode control sequences would erroneously
	match any terminal output string of the same length as a raw mode
	control sequence and which begins with ESC (a full equality test was
	not being performed).  (4/06)

unix/os/zfiomt.c
	Due to a data structure change, tapecap parameter negation as in
	"mta[:xx@]" to negate parameter xx wasn't working.  (4/07)

pkg/images/iminfo/listpixels.x
	Added a formats parameter for formatting the output pixel
	coordinates to the listpixels task. These formats take precedence
	over the formats stored in the WCS in the image header and the
	previous default format.  (4/7/92, Davis)

unix/os/zfaloc.c
unix/os/zfiobf.c
unix/os/zoscmd.c
	Modified these routines to use the user's UMASK to compute the file
	mode for a new file.  zfiotx.c already does this, although it isn't
	entirely correct (one can add more permissions with umask but one
	always gets at least 0644 for new text files).  The other routines
	make full use of umask now.  (4/07)

unix/os/zfaloc.c
	Since I was already working on zfaloc I also added a feature to
	permit full preallocation of files on unix systems.  The default
	behavior of zfaloc, for efficiency reasons, is to physically
	preallocate only the last block of the file, leaving the remainder
	of the file blocks to be allocated when data is written to the file.
	Now, if "ZFALOC" is defined in the user's host environment, full
	preallocation of the file is enabled.  If the variable is defined
	but has no string value all zfaloc files are fully preallocated,
	otherwise, the string value is a comma delimited list of substrings,
	and a file will be fully preallocated only if one of those substrings
	matches a substring of the file name in the zfaloc call.  This allows
	files in certain directories or of certain types to be fully
	preallocated while others are allocated in the normal fashion, so
	that the behavior of the routine can be customized for a given
	type of application.  (4/07)

dev/hosts
	Corrected the Loden entry on Gemini for Rich Reed.  We should
	verify all these paths in the master system.  (4/07 RLS)

dev/pix.imh
dev/pix.pix
	Replaced dev$pix by a version that has the header tweaked up a bit.
	(4/08)

dev/termcap
	Added entries to allow two-up page printing on all printers.  Change
	also made to gemini and ursa termcap files.  (4/8 MJF)

pkg/plot/t_pcol.x
pkg/plot/t_implot.x
pkg/plot/t_graph.x
pkg/plot/t_pcols.x
pkg/plot/t_prows.x
pkg/plot/pltwcs.x
pkg/plot/graph.par
pkg/plot/prow.par
pkg/plot/prows.par
pkg/plot/pcol.par
pkg/plot/pcols.par
pkg/plot/doc/graph.hlp
pkg/plot/doc/implot.hlp
pkg/plot/doc/prow.hlp
pkg/plot/doc/prows.hlp
pkg/plot/doc/pcol.hlp
pkg/plot/doc/pcols.hlp
	1. Modified GRAPH, IMPLOT, PROW(S), and PCOL(S) to define and set a
	coordinate format in plots.  This allows graphs to be made in
	DD:MM:SS and related formats.
	2. Modified GRAPH, IMPLOT, PROW(S), and PCOL(S) to use any WCS
	attribute coordinate format found in the images.
	3. Added xformat and yformat parameters to GRAPH, PROW(S), and
	PCOL(S) to define coordinate plot formats.  This allows having a
	format when a format attribute in not found in the images, to
	override a format attribute, and to allow setting the format in
	simple text input.  For example, GRAPH can plot formated RA and DEC
	from a list of input RA and DEC coordinates.
	4. Added a ":f format" to IMPLOT to allow specifying/overriding the
	WCS attribute format.
	5. Added <space> as a key in IMPLOT to print coordinate and pixel
	value information:
	       line=256, column=142, coordinate=13:27:55.6, value=222.
	(4/9  Valdes)

pkg/cl/exec.c
	The symptom of this bug was that if a package which has package
	parameters was loaded at login time and the package parameters were
	later edited, the edited values would not be used.

	This was traced to a problem with the pfile pointer in the package
	descriptor pointing to a discarded copy of the package pset.  The
	PACKAGE command, executed in the package script task when the package
	was loaded, would quite correctly set up the package descriptor 
	pointing to the runtime copy of the package pset for the package
	script task.  When EOF of the login.cl was reached the package
	script task would terminate and the runtime pset would be copied
	back to the main package pset and the runtime pset freed - but the
	package descriptor was left pointing to the old, no longer used pset.

	The fix was to modify oneof() (that's "on-eof"), called when a task
	terminates, to check if the task is a package script task and if
	so fix the package descriptor to point to the main pset.  (4/09)

pkg/cl/builtin.c
pkg/cl/pfiles.c
	"unlearn pkgname" will now unlearn the package parameters of package
	pkgname, as well as the parameters of each task in the package (but
	it does not descend into subpackages).  (4/09)

sys/libc/cprintf.c		+
sys/libc/scanf.c
sys/libc/mkpkg
	Added an interface of the VOS printf routines to LIBC.  These are
	the routines c_printf, c_fprintf, c_parg[bcsilrd], and c_pargstr.
	LIBC already has unix stdio-like print routines, but the VOS
	routines avoid the varargs stuff, and do automatic type conversion.
	(4/11)

pkg/cl/gram.c
pkg/cl/debug.c
pkg/cl/y.output
pkg/cl/ytab.c
pkg/cl/ytab.h
pkg/cl/grammar.y
pkg/cl/opcodes.c
pkg/cl/compile.c
pkg/cl/opcodes.h
pkg/cl/scan.c
pkg/cl/builtin.c
pkg/cl/mkpkg
	Added the long-awaited ability to scan from a pipe (or whatever the
	stdin is connected to).  Also added the new formatted scan and print
	routines scanf, fscanf, and printf.  These are like the unix/stdio
	versions but use FMTIO, supporting such FMTIO features as %h and
	%*.*.  For example,

	    cl> printf ("%d foo %g\n") | scanf ("%d foo %g", i, x)

	or
		while (fscanf (list, "%d %s", i, s1) != EOF)
		    printf ("i=%d, s1=`%s'\n", i, s1)

	Don't forget the [f]scan routines, which may still be more convenient
	for simple unformatted scans.

	The new printf routine uses the VOS PARG routines to pass argument
	operands, hence provides automatic type conversion on output.  If an
	incorrect number of arguments are passed an incomplete format error
	will result.  The scanf routine is an interface to the LIBC scanf
	routine (actually, u_doscan).  The CL scanf/fscanf routines call the
	LIBC scanf which parses the format string and writes the output
	values whose addresses are passed in a manually crafted varargs
	argument list.  Since scanf writes directly into the value fields of
	the output parameter descriptors, no automatic type conversion is
	possible and there is no checking for string overflow when writing
	to a string valued parameter.  Care should be taken to make sure the
	scanf format matches the datatypes of the output parameters.  (4/11)
	
pkg/cl/debug.c
	Fixed a minor problem with the uncompiled output, where non-string
	values output for pushconst would contain a trailing '.  (4/11)

unix/os/zfiobf.c
unix/os/zfiotx.c
unix/hlib/libc/kernel.h
	Tested the recently added umask support and made a few changes.  The
	umask semantics for text files are now identical to those for binary
	files etc.   (4/11)

unix/hlib/zzsetenv.def
	Added an entry for the gty system source directory.  (4/17)

pkg/plot/doc/gdevices.hlp	+
pkg/plot/gdevices.par		+
pkg/plot/gdevices.x		+
pkg/plot/mkpkg
pkg/plot/plot.cl
pkg/plot/plot.hd
pkg/plot/plot.men
pkg/plot/x_plot.x
	Added a new task GDEVICES to PLOT.  This task will scan the active
	graphcap database and print a table of the available devices in the
	given class of devices (by default the stdimage devices), giving for
	each device a list of the device aliases, the device resolution in
	X and Y, and a short descriptive string if one was given in the
	graphcap entry for the device.  See the help file for examples.  (4/18)

sys/mwcs/imwcs.h
sys/mwcs/iwctype.x
sys/mwcs/iwsaxmap.x
sys/mwcs/mwloadim.x
sys/mwcs/mwsaveim.x
	Various changes were made to fix the MWCS "dimension mismatch"
	problem.  This would happen during an image open (iw_saxmap) when
	the dimension of the WCS was different than that of the image and 
	an image section was in use.  The error was being detected in
	mw_saxmap and was correct, i.e., the routine was being called
	incorrectly by iw_saxmap, part of the image header interface code.

	Evidently axis mapping was not fully implemented; it worked for
	runtime read-only maps of an image, but failed when making a new
	image which was a reduced-dimension section of another image
	(e.g., imcopy dev$pix[*,10] pix1 would do it).  The new image would
	retain the original WCSDIM which would not match the physical image
	dimension when the new image was later opened with a section and
	a new axis map created.

	The fix was to preserve the axis map in an mw_saveim/mw_loadim
	operation, and in iw_setaxmap, merge the new axis map for the
	reduced-dimension image into the axis map associated with the stored
	MWCS.  A new image header parameter WAXMAPnn was added to store the
	axis map.  iwsaxmap.x now reads the old axis map of dimension
	MI_NDIM, and merges it with the axis map for the new image of
	dimension IM_NPHYSDIM.  (4/19)

sys/mwcs/mwloadim.x
sys/mwcs/mwopen.x
	The axis map, even if unused, is initialized to the unitary
	transformation when a new MWCS is created.  (4/19)

sys/mwcs/iwctype.x
sys/mwcs/mwsaveim.x
	The FITS CD matrix as used in MWCS was transposed relative to what
	the draft FITS standard requires.  Modified the iwctype.x code (input)
	and mwsaveim.x (output) to swap the I,J axes in the CDi_j keyword,
	in effect transposing the matrix as seen by MWCS.  (4/19)

sys/mwcs/iwewcs.x
	Deleted the comma in "axis 1: axtype=ra, axis 2: axtype=dec" (in the
	"ra,").  The attribute list syntax does not permit a comma in this
	context and it is included in the axtype string value.  (4/19)

sys/mwcs/iwewcs.x
	Modified the code which sets up the CD matrix in the case when no
	CD matrix is given in the image header (in which case CDELT/CROTA2
	is normally used instead) to use a double DO-loop to initialize the
	CD matrix to the unitary matrix.  The old code had two bugs: 1) the
	full WCSDIM dimensioned CD matrix was not being initialized when
	CDELT/CROTA2 were used instead of the CDi_j notation, and 2) mk_idmd
	was being used to initialize IW_CD to the unitary matrix of dimension
	ndim, but this was no good as IW_CD has a fixed dimension of MAX_DIM.
	It is necessary to use an explicit DO-loop instead.  (4/19)

sys/mwcs/iwpstr.x
	Added a statement "Memc[bigstr+nchars] = EOS" after the blank fill
	loop - the string was not explicitly EOS terminated.  (4/19)

sys/mwcs/mwgwtermr.x
	Changed the aclrr in the code used to initialize the CD matrix, to a
	call to mw_mkidmr, which makes the identity matrix.  Formerly a zero
	matrix was being returned instead of the identity matrix.  (4/19)

sys/mwcs/mwmkidmr.x			+
sys/mwcs/mkpkg
	Added a new routine mw_mkidmr, used to create an identity matrix of
	type real.  (4/19)

pkg/images/imutil/imdelete.x
	A portion of the image title string is now included in the "delete
	image..." message when the verify option is enabled.  (4/20)

sys/gio/cursor/gtr.h
	Increased the default max graphics frame buffer from 64K to 128K.
	(4/20)

unix/hlib/login.cl
unix/hlib/zzsetenv.def
	Added a commented out entry for "imtype" to the template login.cl.
	Added values for imtype, cmbuflen, and min_lenuserarea to zzsetenv.def.
	The values for imtype and cmbuflen are the same as the builtin
	defaults.  The value for min_lenuserarea is temporarily set to 20K,
	until the real problem of image header truncation can be in the IMIO
	code.  (4/20)

pkg/proto/proto.cl
pkg/proto/proto.men
pkg/proto/proto.hd
pkg/proto/x_proto.x
pkg/proto/mkpkg
pkg/proto/wcsreset.par
pkg/proto/t_wcsreset.x
pkg/proto/doc/wcsreset.hlp
	A new task wcsreset has been added to the proto package.
	(4/21 LED)

sys/gio/glabax/glbfind.x
	GLABAX now uses a different, hopefully better algorithm for determining
	the spacing of the minor ticks (formerly the tick spacing algorithm
	used was the same as used for the major ticks).  As before, NMINOR
	is used as only a starting point for the automatic algorithm.  It
	is now possible however to disable the automatic algorithm by giving
	a negative NMINOR, in which case exactly abs(nminor) ticks will be
	drawn.  (4/21)

sys/fio/vfntrans.x
	The code in the vfn_translate routine which recognizes subdirectories
	was not sufficiently discriminating about "." and "..", and would
	treat . prefixed files as subdirectories during translation.  (4/21)

sys/fio/fntgfn.x
	Modified the file template code to check for a leading "." in the
	pattern string and automatically enable listing of the hidden files
	in a directory in this case.  (4/21)

pkg/proto/proto.cl
pkg/proto/proto.men
pkg/proto/proto.hd
pkg/proto/x_proto.x
pkg/proto/mkpkg
pkg/proto/wcsedit.par
pkg/proto/t_wcsedit.x
pkg/proto/doc/wcsedit.hlp
lib/scr/wcsedit.key
	A new task wcsedit has been added to the proto package.
	(4/22 LED)

unix/os/zfiotx.c
	In a normal raw mode read the terminal driver has interrupts
	enabled, but catches any interrupt occuring during a read and maps
	it into 003.  This approach doesn't work for nonblocking raw mode
	reads because since reads don't block, the driver spends only a
	miniscule amount of time in the ZGETTX read code.  This would cause
	interrupts to abort a task doing nonblocking raw mode reads.  The
	fix was to have the driver put the terminal into true raw mode, with
	signals disabled, when nonblocking raw mode is in effect.  This
	applies to suspend as well as interrupt.  (4/22)

sys/imfort/db/imputd.x
sys/imfort/db/mkpkg
	The double precision value could be truncated in some cases when
	copying the formatted string into the 20 char value field.  Modified
	(like imio/db/imputd.x) to use a loop, decreasing the formatted
	precision until the value fits.  (4/22)

--------------------------
"Final" V2.10.0 beta generated.  After this only minor bug fix type changes
will be made.

pkg/images/register.par
pkg/images/geotran.par
pkg/images/doc/register.hlp 
pkg/images/doc/geotran.hlp
	Changed the default values of the parameters xscale and yscale in
	the register and geotran tasks from INDEF to 1.0 (4/23 Davis)

pkg/images/geometry/t_imtrans.x
	Modified the imtranspose task to pick up the axis map and copy
	it to the wcs of the output image. (4/23 Davis)

pkg/images/geometry/t_blkavg.x
pkg/images/geometry/t_blkrep.x
	Modified the blkrep and blkavg tasks to set axbits explicitly in
	the calls to mw_shift and mw_scale. Axbits set to 0, meaning
	all axes, was producing a "singular matrix" error from mwcs.
	(4/23 Davis)

unix/os/zgtenv.c
	A link of an IMFORT program using V2.10 IRAF, compiled on a 4.1.1
	system, would fail with an

	    ld: Undefined symbol
	       _tolower

	on a 4.0.3 system.  This is actually the second time I have run
	into this problem.  It is caused by SunOS changing tolower from
	a macro to a library routine in 4.1.  The problem was avoided by
	changing the iraf code to define a macro to_lower which is used
	instead.  (4/23)

dev/imtoolrc
dev/graphcap
	Added new imt entries for Nigel's Solitaire formats.  These are
	named imt17|imtssy and imt18|imtssn for resolutions of 1008x648 and
	1024x680 respectively. Also added to gemini, ursa and orion. (4/23 MJF)

pkg/images/geometry/t_imslice.x
	Modified the imslice task to read the old and write a new axis map.
	(4/23 LED)

pkg/images/geometry/t_imstack.x
	Modified the imstack task to read the old and write a new axis map.
	(4/23 LED)

pkg/cl/grammar.y
	When scan from a pipe was used in a procedure script the scan would
	not write into a parameter belonging to the procedure calling scan.
	This was happening because except for the call by reference arguments,
	scan is implemented as a CL task.  The usual parameter search order
	would apply, i.e., task (scan), package, cl, hence the parameters for
	the task calling scan would not be seen.  This could be gotten around
	by referencing the parameters as task.pname, but this should not be
	necessary.  It was necessary to change the cl compiler to convert
	names such as "param" to "task.param" when compiling scan statements
	(scan as a task).  This is only done if no task or package name is
	given and the current task's pset includes the named parameter.  (4/26)

dev/hosts
	Corrected the loden entry and updated the khaki entry (it's now
	a sparc) for Rich Reed on tucana, gemini, and ursa.  I had fixed
	the loden entry previously (4/7).  It must have been clobbered
	somehow in the last three weeks.  (4/27 RLS)

dev/termcap
dev/graphcap
	Added contributed entries for the HP LaserJet III series printers.
	These entries are known to work but given the variety of PostScript
	cartridges available may need some adjusting.  Included in 2.10
	because the HP sgi translators are now distributed. (4/27  MJF)

pkg/dataio/fits/fits_read.x
	Modified rfits to use the tapecap fe parameter if present and
	greater than 0 to skip to EOF. (4/27 LED)

sys/mtio/mtio.h
sys/mtio/mtcache.x
sys/mtio/mtcache.com
	The symptoms of the bug fixed here were as follows: when testing the
	fixed block cartridge drive, mtexamine and rfits make+ would work fine,
	but rfits make- would fail with a read error.  The failure would only
	occur the second time the task was run, on the tenth file, and only
	when diagnostic output was enabled.  The read error was occurring
	because, for some reason, the read request being issued by IRAF was
	not a multiple of the device block size for this fixed block device.

	It took about 5 hours to track this one down as it took a while to
	find a repeatable test case (I used LOGIPC), and the actual bug was
	far removed from the read error seen during testing.  What was
	happening was that the 1) the read error was due to a read request
	not a multiple of the device block size, 2) the bad read request
	was due to a device open with no tapecap information (the driver
	actually works in this case, using all the builtin defaults which
	are correct for most variable block UNIX devices), 3) the lack of
	tapecap information was due to an invalid string pointer passed to
	the zopnmt routine at open time, 4) the bad pointer was due to the
	real GTY pointer being clobbered by a bug in the mtcache code.  The
	entire MTIO descriptor was being cached, including the runtime fields
	as well as the positional fields.  When a cached entry was recalled
	the GTY pointer stored in the descriptor would be overwritten.  Since
	the cache is updated in the first open following task invocation the
	cached values for the runtime fields would normally be valid and no
	error would be seen.  (4/29)

pkg/proto/doc/suntoiraf.hlp
	Replaced the suntoiraf help pages with an updated one. (4/30 LED)

unix/boot/spp/xc.c
	If a library specified as -lname does not resolve to an iraf library
	(i.e. it is a host library) the library will now be searched after the 
	iraf libraries are linked, rather than at the location of the -lname
	in the link line.  This allows searching of special host libraries
	after the iraf externals have been generated and before the standard
	Sun libraries libc, libm, etc. are searched.  If the old behavior
	is desired it can be achieved by using a reference of the form
	libname.a in place of the -lname.  (4/30)

unix/shlib/mkshlib.csh
	Modified to link against -lresolv, if such exists, when building the
	iraf shared image.  This allows the statically linked iraf executables
	to use the name server.  By default only SunOS executables which are
	dynamically linked use the name server.  The -lresolv code will fall
	back on the /etc/hosts file if the name server does not respond, so
	this should be safe.  (4/30)

dev/hosts
	Added kingfisher (aliased as 'kingfishe') to hosts file on tucana,
	orion, gemini and ursa.  (4/30  MJF)

unix/hlib/mkiraf.csh
	Updated the terminal type prompt slightly.  (4/30)

unix/hlib/irafuser.csh
	Disabled the -Bstatic option for linking the HSI executables.  This
	causes f68881_used undefined error messages from the linker on a
	Sun-3 (but it is ok on a sparc).  (4/30)

dev/wpix.imh		+
	Added a second version of the test image dev$pix called dev$wpix.
	This is dev$pix with a WCS in the image header.  To save space, both
	image headers point to the same pixel file.  (4/30)

unix/hlib/motd
unix/hlib/login.cl
unix/hlib/zzsetenv.def
pkg/cl/cl.par
	Changed IRAF version to V2.10EXPORT.  (4/30)

--------------------------
Built initial V2.10EXPORT distribution files and began testing of same.
V2.10EXPORT was installed from the network archive on ursa, orion, and
several mountain nodes to check with problems having to do with how the
distribution was built.  (4/30)

local/.login
	1. Commented out the "setenv TERM sun".  This was getting pretty
	annoying as I usually use an xterm.  Better to let the login inherit
	the terminal type.
	2. Added a set prompt statement for a "iraf@hostname% " type prompt.
	3. Made the "setenv iraf" a bit smarter.  iraf is still set to a
	constant value, but the file now checks to see if $iraf exists and
	if not sets $iraf to `(cd ..;cwd)`/.  The constant value is still
	desirable to allow use of symbolic directory links.
	(5/02)

unix/os/zzstrt.c
	Modified this routine to map the data and bss sections of the iraf
	shared image with execute permission.  There are cases where the Sun
	compilers can generate executable code in the data segment.  Old Sun
	hardware does not implement hardware checking for execute
	permission, but some of the new hardware does.  This was causing a
	routine (iraf networking using the name server library, which is
	linked -pic) to fail on a new Sun multiprocessor system which would
	execute fine on older hardware.  (5/02)

unix/bin.sparc/gterm.e
unix/bin.sparc/imtool.e
	Rebuilt these executables under SunOS 4.1.1.  The versions built under
	4.1.2 would cause shared library version older than expected warning
	messages when run on a 4.1.1 system.  (5/02)

	(It is not necessary to do this for the bin.mc68020 versions since
	our Sun-3s are still all running 4.1.1).

unix/hlib/install
	1. Smartened up the code used to guess the iraf root directory.  It now
	looks for /iraf/iraf before /iraf in the "pretty name" section (needed
	to support symbolic links).  When all done, it checks to see if the
	directory actually exists and if not sets the value to (cd ../..;cwd)
	instead, assuming install is being run from $iraf/unix/hlib.  This
	latter feature also has the effect of ignoring an incorrect value of
	$iraf set before running the install script.
	2. Added a "set hlib = " to the "Set the BINDIRS" section.  An old
	value of hlib set when install was run would otherwise be inherited
	ignoring the new value of $iraf set in the script.  (5/02)

sys/imfort/imflsh.x
	The integer function bfflsh was being called as a subroutine with the
	wrong number of arguments.  (5/02)

--------------------------
Performed a sysgen to pick up the zzstrt.c change above, and rebuilt the
distribution files.  (5/02)

unix/hlib/install
	Added a $iraf relative definition of $host, since this is used in the
	MODEFILES definition but is not defined in the script, hence would be
	inherited from outside, possibly with the wrong value.  (5/03)

unix/os/zfioks.c
	Fixed a minor bug in the new zfioks code.  If client authorization
	fails (as when one has different authorization codes in .irafhosts
	files on different nodes) the driver is supposed to shutdown the
	old in.irafksd daemon and start another one via rsh for the new
	authorization code.  This was failing as a status value was not being
	cleared before doing the rsh.  The rsh would succeed but then the
	client would see a bad status and give up (unnecessarily), falling
	back on a password prompt and rexec call to make the connection.
	It was actually working due to the redundancy in the driver, but
	due to the bug one would get the unnecessary password prompt for the
	rexec.  (5/04)

dev/tapecap
	Fixed a typo (wrong device entry) in the mtst1.qic-24 entry.  (5/05)

unix/os/zfmkdr.c
	This routine was missed a while back when the UMASK support was
	redone.  (5/06)

dev/tapecap
	The entries for the QIC drives were modified to fix a problem where,
	e.g., every other file on a tape would be read in an operation such
	as rfits.  Currently the :se capability is only enabled for the QIC
	drive on ursa, since this appears to be needed only for the ST
	driver bug seen on this system.  The fb#2000 capability (which avoids
	file skip operations which cause problems on the QIC drives due to
	(I think) buffered data being lost) is more generic and harmless so
	I moved that to the generic device entry.  (5/07)

sys/imio/iki/ikiopen.x
sys/imio/iki/ikiinit.x
sys/imio/iki/ikildd.x
sys/imio/iki/iki.h
	IKI was modified to add a flag word for each driver which can be
	used to note IKI level characteristics of the different image kernels.
	This was used to flag that the QPF driver cannot write to or create
	QPOE images.  In a new copy operation, iki_open will not automatically
	preserve the image type if the read-only flag is set for the input
	image type.  Hence, in a new copy of a QPOE image, the type of the
	new image will be controlled by the imtype environment variable rather
	than trying to make a .qp image.  For other images types a new-copy
	operation will preserve the image type as before.  Explicitly giving
	the image extension for a new image always forces that type of image
	to attempt to be created, whether it can be created by the image
	kernel or not.  (5/07)

sys/imio/iki/stf/stfhextn.x
	This bug was unrelated to the above change but was found during
	testing (in fact it has been there for years).  In v2.10, "imtype"
	is set by default, with value "imh".  In an imcopy operation such as

	    imcopy foo.hhh foo2

	the output image preserves the image type of the input image,
	i.e., an STF image is created.  What was happening was that an STF
	image was being created named "foo2.imh", since imtype was set to
	"imh" and this is a legal STF image extension.  I hacked stfhextn.x
	to ignore imtype if set to "imh".  (5/07)

pkg/dataio/fits/fits_wheader.x
pkg/dataio/fits/mkpkg
	Modified the wfits file format message to include a "blkfac=xxx"
	field.  The xxx is the blocking factor for variable blocked devices,
	and the string "fixed" for fixed block devices.  (5/07)

--------------------------
Rebuilt distribution files.  (5/07)

dev/hosts
	Added 'dynamo' to orion, gemini, and ursa.  Primary name is
	'dynamo.kpno.noao.edu' since this is all it responds to, but made an
	alias named 'dynamo'.  Not added to Tucana while release being worked 
	on, I'll do it later.  (5/8/92  MJF)

dev/termcap
	Made an entry for the machine in Pat Osmer's office, lw8, on gemini,
	ursa, and orion.  Added to Tucana by JB.  (5/8/92  MJF)

unix/os/zfiomt.c
	1. Changed the builtin defaults for the maximum and optimum record
	sizes to 64512.  This is a more conservative value, smaller than the
	original defaults (maxrec was previously 65535), hence less likely
	to cause a read error.  The builtin defaults are overridden in most
	tapecap entries but will be used in user-written tapecap entries
	which do not set maxrec/optrec explicitly and are likely to rely
	heavily on the builtin defaults.  The value 64512 is the largest
	multiple of 1024 less than 65536, and is the minphys value in SunOS.
	On some devices a read request larger than this value cannot be
	serviced and will result in an i/o error.

	2. The maxrec value set in tapecap was not being used for file
	positioning where the driver searches for EOT by skipping a file
	and reading a record to check for EOT (a read after a fsf which
	returns zero signals EOT).  On some devices the large read request
	could cause the read operation to return an error.

	3. If a nonzero maxrec value is set, the driver now guarantees that
	optrec will not be greater than maxrec (this was not necessary since
	MTIO does this anyway, but it seems advisable to apply the constraint).
	(5/28)

pkg/images/tv/wcslab.par
pkg/images/tv/wcslab/doc/wcslab.hlp
	Changed the default value of the fill parameter from no to yes.
	(LED 5/29)

pkg/xtools/doc/inlfit.hlp
	The xtools inlfit help was not hooked up due to a bug in the inlfit
	help page. (LED 5/29)

pkg/images/doc/imstat.hlp
	Fixed a bug in the definition of variance in the imstatistics
	task help page. (LED 5/29)

sys/mtio/mtio.h
	Changed the magtape lock file directory from uparm$ to tmp$.  Storing
	the lok (magtape position) files in uparm causes problems if the
	user starts up two concurrent CLs with different uparms, and then
	tries to command the same device from both CLs.  Since they would have
	different uparms they would have different copies of the lok file for
	the device, and MTIO could get confused about the tape position.
	Years ago, in the early days of MTIO the lok files were moved to
	uparm to avoid multi-user problems (see below), but the multi-user
	problem is tractable and less of a problem than the concurrent-CL
	problem dealt with here.  (5/29)

pkg/system/x_system.x
pkg/system/mkpkg
pkg/system/system.cl
pkg/system/mtclean.x		+
pkg/system/mtclean.par		+
sys/mtio/mkpkg
sys/mtio/README
sys/mtio/mtclean.x		+
	Added a new (hidden) system task called MTCLEAN.  This is called at
	CL startup time to delete old magtape lok files.  Previously the
	login.cl file would delete these files using "delete
	uparm$mt*.lok".  This approach is no longer discriminating enough
	however, when the lok files are stored in tmp$ which is a public
	directory.  The MTCLEAN task is like "delete uparm$mt*.lok" except
	that it leaves a lok file alone if it belongs to a different user
	who currently has the drive allocated.  If the lok file is for a
	device which is not currently allocated it is unconditionally
	deleted.  If the lok file belongs to the current user it is deleted
	only if it is "stale", i.e., older than a certain interval
	(currently one hour, and a parameter default).

	It is harmless to delete lok files in the sense that MTIO will
	automatically recover (by rewinding the tape) if the lok file is
	lost, so it is safest to err on the side of occasionally deleting a
	lok file which is current.  However, this will only happen if the
	user has not allocated the drive and someone starts up a CL, or if
	someone using an allocated drive starts up a second CL and the lok
	file is older than the "stale" threshold.  (5/29)

unix/hlib/motd
unix/hlib/login.cl
pkg/cl/cl.par
	Changed the login.cl version string to force a mkiraf to pick up
	the "mtclean" addition.  This was done by adding a "revision 1"
	to the logver string.  (5/29)

pkg/obsolete/doc/imtitle.hlp
pkg/obsolete/doc/mkhistogram.hlp
pkg/obsolete/doc/radplt.hlp
pkg/obsolete/doc/oimcombine.hlp
	Added a "USE INSTEAD" section to the help pages for the obsolete
	tasks. (5/29 LED)

pkg/system/doc/rewind.hlp
	Added some comments on the "initcache" parameter to the help page
	for the REWIND task.  (5/29)

dev/tapecap
	Added support for the HP DAT drive under the ApUNIX driver.  (6/03)

unix/hlib/clpackage.men
	At Bob Hanisch's request changed "obsoleted tasks" to "obsolete
	tasks" so that stickers for obsoleted grammar won't cringe when
	reading this menu.  (6/19)

unix/hlib/login.cl
	Several minor changes were made to the template login.cl over the
	past couple of weeks.

	1. The "stty xterm" statement in if(envget("TERM")=="xterm") was
	changed to "stty xterm nl=44".  Since xterm does not have a screen
	size sense query (like gterm) we can't set the screen size correctly,
	but it is better to set a small wrong value than a large wrong value
	like the termcap default of 65.
	2. Added an if(deftask("mtclean")) to prevent mtclean from being
	called if it isn't defined, i.e., when running irafo=v2.9.
	3. Moved the cl<loginuser.cl to after the user package task
	definitions, to allow the user to override these definitions in
	their loginuser.cl file.  (6/20)

pkg/plot/t_pradprof.x
        The new pradprof task was using the file name template expansion
	routines instead of the image name template expansion routines
	producing an error if the input image name was an image section.
	(6/23/92, Davis)

pkg/images/imutil/imcopy.x
	Modified imcopy to write its verbose output to STDOUT instead of
	STDERR. (6/24/92, LED)

sys/mwcs/wfmspec.x
	Fixed a logical error affecting computation of the inverse
	transformation.  This could cause DISPCOR (resampling to linear
	coordinates) to fail in some cases.  (6/24)

dev/imtoolrc
	Updated the comments section slightly.  (6/24)

sys/gty/README
	Updated gtyopen entry.  (7/3)

doc/newsfile
	Added the V2.10 revisions summary to the newsfile.  (7/4)

doc/v210revs.ms			+
	Archived the V2.10 revisions summary document source.  (7/5)

doc/suniraf.ms
	Installed an updated version of the Sun/IRAF installation guide. (7/5)

doc/sunsmg.ms
	Installed an updated version of the Sun/IRAF site manager's guide.
	(7/7)

--------------------------------
V2.10.0 (patch0) generated.  (7/07)

dev/hosts
	Added a new machine, piscis, to hosts file.  Also added on Gemini,
	Ursa, and Orion.  (7/9  MJF)

local/login.cl
	Updated to V2.10.0 revision 1.  The SOS4 distribution (patch0 and
	as.sos4) was updated to pick up this change.  (7/09)

unix/hlib/motd
	Updated version to 2.10.1DEVELOP.  (7/15)

doc/suniraf.ms
	Fixed a typo: "cat /path/nb.sos4.spc/[ib].*" (ib -> nb).  (7/17)

pkg/plot/t_implot.x
	Changed an incorrect real array index to an int.  (FV 7/21)

unix/shlib/mkshlib.csh
	Modified to not link the shared image with -lresolve on a 386i.  (7/21)

pkg/images/filters/t_gauss.x
	An incorrect convolution kernel was being computed in the case
	theta=90.0, 0. < ratio < 1.0, and bilinear=yes, because the sigma
	argument were not being correctly entered into the routine which
	computes the gaussian function in that case. (7/23 LED)

pkg/math/nlfit/nlfit.gx
pkg/math/nlfit/nliter.gx
	Due to precision problems the nlfit code can go into an infinite
	loop if convergence is slow and the tolerance is set low.
	Added some checks to trap this condition (7/24 LED).

dev/hosts
	Added benhur (Ron Probst's Sun) to the hosts files on tucana, orion,
	gemini, and ursa - this is not a new machine but it must have slipped
	through the crack during the v2.10 upgrade.  (7/24 jvb)

--------------------------------
IRAF V2.10.1 (patch-1) released.  Tucana system version number incremented to
V2.10.2 (7/24)

lib/finfo.h
	1. This file contained a series of defines FI_[RW]OWNER etc. giving
	the bit *number* (1, 2, 3, etc.) for the file permissions bitflags.
	Bitflags are preferable and more conventional so I added a parallel
	set of statements FF_[RW]OWNER, FF_[RW]GROUP, etc., defining the
	bitflags.

	2. Two new file permissions flags FF_RDLOCK and FF_WRLOCK were added.
	These are normally zero (as before) but can be set by the zfinfo
	kernel routine to indicate that a temporary read or write lock is in
	place on the file.  (7/24)

sys/fio/fwtacc.x
	The routine had a number of problems.  It was rewritten to use the
	new FF_{RD|WR}LOCK flags returned by zfinfo to determine whether a
	temporary lock is preventing access to a file.  The "wait for
	access" will occur only if "filewait" is enabled in the environment
	and a temporary lock is in place on the file.  This should fix the
	bogus "waiting for access to file" messages we have been seeing
	occasionally.  (7/24)

sys/gty/gtyopen.x
sys/tty/ttyopen.x
	The code which scans along looking for the `:' character when
	expanding ":tc=device:" fields could run off the end of the string
	if the : character was missing.  Added checks for beginning of
	string and EOS.  (7/28)

pkg/images/imfit/t_imsurfit.x
        Fixed a bug in the section reading code. Imsurfit is supposed to switch
        the order of the section delimiters in x and y if x2 < x1 or y2 < 1.
        Unfortunately the y test in the code was if (y2 < x1) instead of 
        if (y2 < y1). Whether or not the code actually works correctly
        depends on the value of x1 relative to x2. This bug was not present
        in 2.9.1 but is present in subsequent releases. (7/30 LED)

mkpkg
noao/mkpkg
	Added a means to set the spoolfile name to the "mkpkg summary"
	function of the package root mkpkg file.  One can now generate the
	summary with a command such as

	    mkpkg summary spool=filename

	to cause the sumary to be generated from file "filename".  (8/03)

sys/osb/ieee.gx
sys/osb/ieeer.x
sys/osb/ieeed.x
unix/as.sparc/ieee.gx
unix/as.sparc/ieeer.x
unix/as.sparc/ieeed.x
unix/as.mc68020/ieee.gx
unix/as.mc68020/ieeer.x
unix/as.mc68020/ieeed.x
unix/as.i386/ieee.gx
unix/as.i386/ieeer.x
unix/as.i386/ieeed.x
	1. There was a (normally) harmless bug here in that the real and
	double versions of the ieenan common had the same name, i.e. were
	shared.  There are now separate ieenanr, ieenand commons.

	2. The code which detects a NaN uses the technique of equivalencing
	an integer array of length  1 (real) or 2 (double) to the floating
	value so that a bitmask can be used to check for the NaN exponent
	(here NaN actually means any non-finite IEEE value).  On most systems
	the exponent for a double will be in the first integer of the 2
	element array, but on a 386i (Intel) the second longword is used.
	The code was modified to parameterize this offset and flag it as
	machine dependent.  (8/15)

unix/hlib/mkpkg.sf.I386
	1. Added entries for the i386 versions of ieeer.x, ieeed.x.
	2. Set up mwcs$wftan.x to be compiled with no optimization.  The
	optimized version of this routine returns a garbage value for the
	declination (it calculates it correctly but the code which outputs
	the value to the w[] output array is incorrect).  (8/16)

pkg/cl/pfiles.c
	When pfileload is called to load the parmeters for a pset task the
	parameter file name assigned to the pset can come from the pset
	parameter of a running task which uses the pset.  Hence, pfileload
	scans the task descriptors on the task to see if any reference the
	pset.  The "newtask" pointer, set during task startup, was being
	used to start the scan of the control stack containing the task
	descriptors.  This could fail in some circumstances as newtask is an
	invalid pointer except when a new task is being initialized.  (8/17)

	This problem was an interesting case study in debugging techniques.
	I at first tried to use dbx on this problem; this is normally
	desirable with CL problems due to the lengthy procedures common in C
	code.  This was on the Sun 386i where the problem was seen.  I had a
	lot of trouble getting dbx on the 386i to use the source files, even
	though the files were compiled -g.  Eventually it became clear that
	dbx will not permit source code debugging on the 386 if the iraf
	shared image is used (there is no such problem on the other Suns).
	Source code debugging would work if the process was linked -z.  Of
	course, then the problem went way.  The 386i is very slow so by the
	time I determined that I was wasting my time I had wasted 2 hours.
	Looking at the problem with adb, I found the problem within 20
	minutes.

pkg/images/filters/mkpkg
pkg/images/filters/t_fmedian.x
pkg/images/filters/fmedian.x
pkg/images/filters/fmd_buf.x
pkg/images/filters/fmd_maxmin.x
	The fmedian task could crash with a segmentation violation if image
	pixel to integer mapping was turned off (hmin = zmin and hmax = zmax)
	and the input image contained data outside the range defined by zmin
	and zmax. Added calls to amink and amaxk for integer images and a
	call to amapr for floating point data to protect against out of bounds
	data. (8/18/92, Davis)

sys/imio/iki/qpf/qpfwattr.x
	Modified to return INDEF as the value of the integral over an
	attribute range list, if no range list is defined or either or both
	ends of the range are open.  (8/18)

sys/mwcs/mwsaveim.x
	The expression "if (ndim == 1 || (ndim == 2 && ...))" was incorrect
	as the ndim==2 case contained references to CD matrix elements that
	might not contain valid floating point values in the case of a 1 dim
	wcs.  (8/18)

pkg/images/imutil/imcopy.x
	Added a call to flush after the verbose status output so the the
	output will appear immediately on the terminal. (8/19 LED)

unix/os/zxwhen.c
	Added some #ifdef i386 code to reenable the floating point exceptions
	following such an exception.  On the other Sun systems this is
	automatic, but on the 386i it has to be done explicitly.  (8/20)

	Note 8/21 - the above fix works fine under the debugger, but there
	are still problems trapping repeated floating exceptions when a
	386i process executes normally.  There are no such problems on any
	of the other Suns (the interface is the same) so this tends to
	indicate a problem with the 386i.

dev/termcap
dev/graphcap
	Added entries for Kermit terminal emulator supplied by Pat Seitzer.  
	The termcap entry is for MS Kermit 3.0 in VT320 mode; graphcap for 
	Kermit3.10 and CGA or VGA display.		(8/20 ShJ)

unix/os/zfiomt.c
	1. The "ue" option (update-eot, or force search for EOT) was not
	working correctly - it had never been used until recently.
	2. The "ow" option (overwrite EOF) was tested and optimized.  (8/20)

sys/fmtio/dtcscl.x
	This routine scales a double floating value to determine its mantissa
	and exponent when printing the number.  For numbers smaller than .1
	this is done as follows:

	    while (v < 0.1d0) {
		v = v * 10.0d0
		e = e - 1
	
	The problem with this seemingly simple piece of code is that if V is
	an IEEE subnormal value and IEEE underflow-to-zero is enabled, any
	arithmetic operation on V will return a zero.  Hence, even though
	V is nonzero to start with, V * 10 returns zero.  If V underflows to
	zero the code segment above will enter an infinite loop.  To fix
	this a test for v==0 was added to the loop to check for underflow.

	On machines which have good hardware support for IEEE floating
	computations involving subnormals the best thing to do is to NOT
	underflow to zero, but rather to retain the subnormal values.  This
	increases the precision of floating point computations in small
	number arithmetic.  On some systems however, underflow (or inexact)
	requires a trap and recomputation in a trap handler to produce the
	correct IEEE result, and this can be very inefficient.

	As an example, In the case of Sun/IRAF we currently have underflow
	to zero enabled due to the expense of recomputation for the ffpa and
	some early sparc systems.  Suns with these processors will silently
	underflow to zero.  Some other Sun systems do not employ
	recomputation of subnormals and these systems ignore the request to
	underflow to zero, returning a valid IEEE subnormal instead.  This
	includes the 386i and some sparc based systems (different sparc
	systems have different floating point units).  Hence, the behavior
	of systems even within the Sun product line will vary in the way
	subnormals are treated.

	(A subnormal is a number smaller than about 1.175e-38 for real and
	2.225e-308 for double).  (8/21)

sys/gio/fpnormd.x
sys/gio/fpnormr.x
	These routines (called by fp_equal[rd]) scale floating point numbers
	in a way similar to dtcscl.x, above.  In principle they could be
	subject to the same problem with underflow to zero and infinite loops,
	so I added a check for underflow to these routines as well.  (8/21)

unix/os/zfioks.c
	1. Fixed a byte swap bug in the server side code that was preventing
	it from constructing the network address properly to call back the
	client.  This affected only the "little-endian" machines, such as
	the decstation and 386i.
	2. Changed the default value of MAXCONN from 0 to 1, since that is
	probably what it should be anyway (I think I got the 0 out of someone
	else's code).  (8/21)

unix/os/tape.c
	Will now increment the file number at close time after writing a
	file to tape.  (8/21)

dev/hosts
        Added kale (Bruce Bohannan's d/t Sun) to the hosts files on gemini,
        ursa, orion, and tucana.  (9/3  jb)

unix/os/tape.c
	1. Increased the maximum i/o buffer size to 262144 and changed the
	default read request size to 64512.
	2. Added a "seek" command, for testing i/o to devices that respond
	to a seek request.  "seek" to report the current offset, seek nnn[bkm]"
	to seek to the given block, kilobyte offset, or megabyte offset.
	The block size is whatever was used in the last read request, or
	64512 at program entry.  (9/07)

sys/osb/zzeps2.f
	Added an alternate version of the machine epsilon computation program
	which may avoid problems seen on some systems with excess precision
	due to the epsilon value being accumulated in a register.  (9/10)

sys/imio/imaccess.x
	Was failing to strip off the ksection before calling iki_access.
	Modified to treat a ksection similarly to an image section, i.e.,
	immap is called to test for the existence of the object specified
	by the full notation, if a section or ksection is given.  (9/11)

doc/unixsmg.ms
	Installed a new version of the UNIX/IRAF Site Manager's Guide, newly
	updated for V2.10.  (9/13)

doc/irixiraf.ms		+
doc/dsuxiraf.ms		+
doc/vxuxiraf.ms		+
	Installed new SGI IRIX, Decstation Ultrix, and VAX Ultrix
	Installation Guides.  (9/14)

dev/hosts
        Updated the lapis entry on gemini, ursa, orion, and tucana. (9/14 RLS)

unix/as.vax/ieeer.s
unix/as.vax/ieeed.s
	Updated to the V2.10 versions.  (9/21)

unix/as.rs6000		+
	Added the rs/6000 version of this directory.  (9/21)

unix/os/zgtime.c
	The expression that converts the cpu time from clock ticks to msec
	could result in integer overflow for very large numbers.  Restructured
	the code to avoid this problem, while preserving the maximum precision
	for small numbers.  (9/22)

unix/hlib/libc/knames.h
	Added a #define for zzstmt.  This should be there, but though missing
	did not cause a problem as no C code currently uses ZZSTMT.  (9/22)

mkpkg
	Merged in changes for DSUX, AIX3.  (9/23)

lib/plio.h
	The definitions for I_DATA and I_OPCODEMASK were modified to coerce
	the macro argument to int, to avoid a short/int type clash when the
	macro is called with a short integer argument.  (9/23)

noao/lib/mkpkg.inc
noao/lib/mkpkg.sf.DSUX		-
noao/lib/mkpkg.sf.DDEC		+
noao/lib/mkpkg.sf.DMIP		+
noao/lib/mkpkg.sf.AIX3		+
	Merged in mkpkg support for DSUX and AIX3.  (9/23)

pkg/images/tv/display/iisofm.x
	Added the int in "y[i] = max (int(y[i])," to fix a short/int type
	clash.  (9/23)

pkg/images/tv/iis/ids/idsinit.x
pkg/images/tv/iis/iism70/iissplit.x
pkg/plot/t_gkidir.x
	More fixes for short/int type clashes.  (9/23)

sys/gio/gki/gkiclose.x
	In "call zcall2 (epa, Mems[gki+GKI_CLOSEWS_D-1], n)", the gki pointer
	was missing.  (9/23)

sys/gio/ncarutil/autograph/agdash.f
sys/gio/ncarutil/autograph/agdflt.f
sys/gio/ncarutil/autograph/aglbls.f
sys/gio/ncarutil/autograph/agsetp.f
	Several declarations of the form CHARACTER*504 in these files were
	changed to CHARACTER*500.  The Fortran compiler on AIX does not allow
	character variables longer than 500.  IRAF does not use any of the
	NCAR autograph code anyway.  (9/23)

sys/imio/imsetr.x
	In the two statements

	    IM_PLFLAGS(im) = or (IM_PLFLAGS(im), PL_RLIO)
	    IM_PLFLAGS(im) = and (IM_PLFLAGS(im), not(PL_RLIO))

	the second "(im)" was missing.  (9/23)

sys/mwcs/mwtransd.x
	Changed the expression "* -ltv_1[i]" to "* (-ltv_1[i])".  The AIX
	compiler did not like this expression.  (9/23)

sys/plio/pllrop.x
sys/plio/pllsten.x
sys/plio/plp2l.gx
sys/plio/plr2l.gx
	Same thing, placed parens around the -dv in "M_DH + -dv".  (9/23)

sys/plio/plp2l.gx
sys/plio/plr2l.gx
	Had to add an int to "and (int(pv), I_DATAMAX)" to avoid a short/int
	type clash.  (9/23)

sys/plio/plrrop.gx
	Added an "int" to fix three cases of short/int type clash. (9/23)

sys/qpoe/qpiomkidx.x
	Added an int to fix a short/int type clash.  (9/23)

sys/vops/fftx.f
	This routine contained a declaration "x(2), y(2)" where the arrays
	X,Y are of arbitrary length.  Later on in the code the third and
	fourth elements of each array were referenced and this caused a
	compiler message about an incorrect constant array subscript.
	Changed the declaration to "x(*), y(*)".  (9/23)

unix/gdev/iism75/zrdm75.x
	Added an int to fix a short/int type clash.  (9/23)

unix/hlib/libc/kernel.h
unix/os/zgtime.c
	Changed the #define name "HZ" to "CLKFREQ" to reduce the probability
	of a name clash, as happened on the RS/6000. (9/23)

math/bevington/legfit.f
	This file, unmodified since 1985, had the character ^? at the end of
	line 77, which is a comment line.  Evidently most compilers ignore
	comment lines, but the VMS-5 Fortran compiler didn't like this one.
	(9/24)

sys/osb/strupk.c
	This routine was calling the C strlen(), which was an inadvertent
	interface violation (VOS code bypassing the kernel and using host
	facilities.  This caused a link failure on VMS/IRAF, after the
	str routines in the VMS/IRAF kernel were renamed to avoid name
	collisions with host library routines (hence strlen was no longer
	in libos.a).  The routine was rewritten to use a for loop instead
	of strlen.  (9/24)

dev/hosts
        Added a stis1 entry on gemini,ursa & tucana for Rich Reed. (10/1 RLS)

pkg/images/imarith/t_imcombine.x
pkg/images/imarith/icaclip.gx
pkg/images/imarith/iccclip.gx
pkg/images/imarith/icgrow.gx
pkg/images/imarith/iclog.x
pkg/images/imarith/icombine.com
pkg/images/imarith/icombine.gx
pkg/images/imarith/icombine.h
pkg/images/imarith/icpclip.gx
pkg/images/imarith/icscale.x
pkg/images/imarith/icsclip.gx
pkg/images/imarith/icsetout.x
pkg/images/imcombine.par
pkg/images/doc/combine.hlp
	The weighting was changed from using the square root of the exposure
	time or image statistics to using the values directly.  This
	corresponds to variance weighting.  Other options for specifying the
	scaling and weighting factors were added; namely from a file or from
	a different image header keyword.  The \fInkeep\fR parameter was
	added to allow controlling the maximum number of pixels to be
	rejected by the clipping algorithms.  The \fIsnoise\fR parameter was
	added to include a sensitivity or scale noise component to the noise
	model.  Errors will now delete the output image.  (9/30/92, Valdes)

unix/hlib/extern.pkg
	On Gemini, added definitions for the ccdacq package as mounted
	from Ursa.  (10/5 RLS)

dev/hosts
	Modified a number of these hosts files on different CCS Suns and
	IRAF development systems to establish and check IRAF networking
	to/from felis.  (10/5 jb)

unix/os/zfioks.c
	A new connect protocol has been added to iraf networking called
	rexec-callback.  This is a variation on the rexec protocol.  Rexec
	is used to start up the remote kernel server as before, but instead
	of communicating via the rexec stdio stream to the remote process,
	the server calls the client back on a private socket set up by the
	client.  This ensures a direct socket connection, which is not
	always guaranteed when using the rexec stdio streams.  For example
	when using rexec to start up a kernel server on a VMS host running
	Multinet, the stdio streams are routed through a VMS mailbox on the
	VMS side.  This fails due to lost data resulting from the mailbox
	being too small, and would be inefficient even if it worked.

	The rexec-callback connect protocol is enabled in the .irafhosts file
	entry for a node (since this is where protocol selection currently
	occurs for rexec vs. rsh).  To enable the rexec-callback protocol,
	one adds the string "rexec-callback" after the password field for a
	node, e.g.,

		robur		: <username> <password> rexec-callback

	A number of related changes were made to the VMS/IRAF networking
	driver, which is new for V2.10.  These are documented in the VMS/IRAF
	upgrade notes file.  (10/06)

	[NOTE - the way the rexec-connect protocol is enabled was changed;
	see the entry for zfioks below.  10/11]

sys/mtio/mtlocknam.x
	The magtape lock file name is now constructed as "node!tmp$mtxx.lok"
	rather than "tmp$mtxx_node.lok", causing the lock file to be
	maintained on the same node as the drive itself.  (10/07)

sys/ki/kienvreset.x
	This routine is called to propagate runtime changes of environment
	variables to remote iraf kernel servers.  It was passing all
	variables, but was modified to filter out redefinitions of the
	host-specific variables "iraf", "host", and "tmp".  This is necessary
	as these variables may have different values on different hosts.
	It is also needed to be consistent with kiopenks.x.  (10/07)

unix/boot/bootlib/tape.c
unix/boot/rtar/rtar.hlp
unix/boot/wtar/wtar.hlp
	Replaced RTAR and WTAR by new versions updated for V2.10 magtape
	i/o.  The old versions read the dev$devices file to map iraf device
	names like "mta" to the corresponding host device names.  In V2.10
	the tapecap file replaces the devices file, and the tapecap file
	format is too complex to be worth parsing in a HSI utility, so in
	V2.10 host magtape device names such as "/dev/nrmt8", "MSA0" etc.
	must be used with RTAR and WTAR.  The VMS/IRAF versions of these
	utilities now restore file dates properly, provided the VMS logical
	name IRAFGMTOFF is defined correctly (see the VMS notes file for the
	details).  (10/10)

sys/ki/ki.h
sys/ki/kiconnect.x
	The dev$hosts file now supports two types of host entries, "connect"
	entries and "route" entries.  A connect entry is what we have always
	had, e.g.

	    ursa u	: ursa!/iraf/iraf/bin.sparc/irafks.e

	A route entry is an entry such as that for node "draco" below:

	    robur	: robur!irafks
	    draco	: @robur!draco

	another use is for logical node names, e.g.,

	    lpnode	: @ursa

	A route entry is denoted by the character `@' as the first character
	in the server command field.  In a reference to a network object
	such as "node!foo", if node is defined as "@bar", the string "node"
	is replaced by "bar", i.e., by whatever follows the @, after which
	the network object name is rescanned.  For example, given the
	definitions for node robur and draco above, "draco!foo" and
	"robur!draco!foo" are equivalent references.  IRAF networking will
	automatically map the former reference to the latter internally.

	This facility provides a simple static routing capability for IRAF
	networking, allowing connects to specific nodes to be routed through
	another node.  This can be used, for example, to use a certain node
	as a gateway between different types of networks, such as tcp/ip and
	decnet.  (10/11)

unix/os/zfioks.c
	A number of features were added to the unix/iraf network driver.

	    o	The connect protocol may now be specified in the hosts
		file entry for a node.  For example,

		    robur	: -rcb robur!irafks

		causes the rexec-callback connect protocol to be used to
		connect to node robur.  The possible protocols are -rsh
		(rsh), -rex (rexec) and -rcb (rexec-callback), with the
		default being -rsh.  (The "irafks" in the above example
		is a VMS symbol defined in the VMS/IRAF irafuser.com file,
		used to start the kernel server on a VMS node).

	    o	A new argument "-log <file>" is now supported on the irafks
		command line.  Since the irafks command line is taken from
		the dev$hosts file in a normal client connect, the hosts
		file can be edited to turn on zfioks level debug logging.
		For example,

		    tucana t	: -log ks.out tucana!/usr/iraf/bin.sparc/...

		Any file can be specified, for example /dev/tty.  If the
		-log argument is given before the node!cmd as in the example
		above, logging is enabled on the local node.  If the -log
		argument follows the node!cmd, it is processed by the kernel
		server on the remote node and enables logging on that node.

		This is related to irafks level logging.  irafks level
		logging is a feature that irafks has supported for some
		time.  It is enabled by including "-d <file>" on the irafks
		command line.

	    o	The networking daemon for the in.irafksd daemon may now be
		started manually (normally it is started via a rsh command
		from a client during a rsh connect).  For example,

		    irafks.e in.irafksd <port> <auth> [timeout]

		would start the daemon on the specified port.  Clients would
		have to specify the given auth code to connect to the port.
		The daemon executes with the UID of the calling process.
		Care should be taken to avoid security problems, e.g., this
		should be used only with "safe" accounts.  Currently,
		commands such as sps, ps, etc. will show the full command
		line including the auth code so there is little security.

		When the daemon is started in this way the irafks.e will
		exit immediately, leaving the daemon running as a forked
		process.  The daemon runs forever until killed, unless a
		timeout is specified.

	    o	Arguments such as "rexec-callback" are no longer supported
		in the .irafhoss file.  Instead, this scheme has been
		generalized to permit any network parameter to be overridden
		for a particular node in the user's .iraf hosts file.
		The parameters that can be set are "port", "auth", "hiport",
		"timeout", and "protocol".  These are all numeric parameters
		except "protocol" which should be specified as "rsh", "rex",
		or "rcb".  For example,

		    corvus	: none none port=20000 auth=12345

		would cause connects to node corvus to be directed to
		socket 20000 using the auth code 12345.  The login name
		and password are not used when connecting to a running
		daemon, so they are given as "none" in the example.

	These changes should be backwards compatible with the V2.10.1
	version of IRAF networking.

	In case it isn't obvious, the above changes combined with the
	enhancements to VMS/IRAF networking support (tcp/ip servers, runtime
	selection of either tcp/ip or decnet transport) allow connections to
	be made transparently to any VMS node running decnet, using a node
	running both tcp/ip and decnet (e.g. a VMS node running Multinet) as
	a gateway between SPAN and the Internet.  For example, "type
	draco!login.com", where draco is a decnet node, given the hosts file
	configuration showed in the examples, would result in 1) "draco"
	being replaced by "robur!draco" causing the reference to be routed
	to node robur via rexec-connect, 2) robur passes the request to node
	draco via decnet.  This requires a .irafhosts file on the gateway
	node (robur) since there is no way to respond to a password prompt
	from a kernel server running as a network process on a remote node.
	(10/11)

unix/os/zmain.c
	Problems were encountered passing irafks commands such as -log or
	-rcmd to the irafks task when called as a standalone host process.
	This was because the IRAF zmain for unix/iraf was intercepting all
	`-' prefixed command arguments.  The zmain was changed to filter out
	only those arguments it uses, e.g., -c, -C, -d <file>, and -w.  For
	completeness a new flag -h (host process) was added.  This is the
	same as calling the process with no arguments, i.e., it is the
	default.  Unknown flags will no longer cause a usage message to be
	printed, instead they are just passed on to the iraf task.  (10/11)

pkg/cl/builtin.c
	The internal name clscan(), used to implement the CL scan() function,
	was changed to clscans() to avoid a name clash with the FMTIO routine
	clscan.  This only happens on systems where Fortran and C externals
	share the same name space, and shared libraries are used.  (10/12)

pkg/system/references.cl
	Changed a couple of "uniq"s to "unique", which is the full name of
	the LISTS task used in the script.  (10/12)

pkg/cl/grammar.y
	The CL grammar was changed to give a higher precedence to the
	exponentiation operator than to unary minus.  The former precedence
	was inconsistent with the Fortran expression syntax that the CL
	is supposed to emulate.  (10/12)

sys/ki/kbzstt.x
	This routine was calling zsttks (the status routine for the networking
	driver) with a fixed channel code of zero.  This worked up until now
	as most iraf network drivers ignore the channel code in zsttks, but
	this is not the case with the new VMS/IRAF driver.  (10/13)

dev/graphcap
	Added entries for em4010vg (em4010 for VGA) and vwsregis (regis
	emulator for VWS 3.3 and later).  (10/14)

sys/gio/fpequalr.x
sys/gio/fpequald.x
	These routines could fail when comparing small numbers to zero.
	For example, fp_equalr (1.0e-10, 0.0) would return false even though
	the numbers are equivalent to within the machine epsilon.  This is
	incorrect given the definition of fp_equal, even though the numbers
	are in fact not equal.  The routine would fail because zero is a
	special case: it cannot be normalized with fp_norm.  It was necessary
	to add code to handle the special case of either input operand being
	exactly zero.  (10/18)

unix/os/zfiomt.c
	1. Two new device capability switches were added.  ":ce" means
	ignore the status of the close() system call when closing a device
	opened read-only.  ":eo", used only in the VMS version of the
	driver, disables writing of the double tape mark at EOT when a tape
	opened for writing is closed.

	2. The ":nf" parameter was modified to allow an integer value to be
	given.  Without a parameter, ":nf" means rewind and space forward
	to backspace files on a tape, e.g., because this is faster than BSF.
	An entry such as ":nf#5" means do a BSF if the file is 5 files or
	less back, but if more files must be skipped do a rewind and space
	forward.  This parameter is intended mainly to help optimize file
	seeks on slow devices like cartridge tapes.

	3. The ":fc" parameter (device does a FSF on CLRO [close read-only])
	was put in when the driver was written to accomodate some SysV systems
	but had never been tested.  As it turns out, AIX is such a system and
	it was necessary to make minor changes.  In particular, the OS does
	not always do a FSF - it only does this when the file is partly read.
	If EOF has been reached on the file (hence the tape is positioned to
	the first record of the next file) then the FSF is skipped.

	4. I added a couple of zmtdbg calls during multifile skips to cause
	the file number to be updated more frequently, when using the status
	output feature.  (10/18)

pkg/proto/t_imcntr.x
	Modified the imcntr task to use image templates and to check for
	constant data. (10/27/92 LED)

dev/termcap
dev/graphcap
	Added "lwg", an HP IIIp LaserJet on Canopus, to these files on Ursa
	and Gemini at Frank Bull's request.  (10/27/92  MJF)

dev/termcap
dev/graphcap
	Added entries for xgterm.  (10/27)

sys/libc/cenvget.c
	Changed envgets() to use ENVFIND rather than ENVGETS, so that the
	routine will detect the environment variable not found condition
	and return NULL in that case.  (10/27)

sys/gio/gks/gschup.x
	Changed the character up vector to be calculated as the nearest integer
	instead of just being truncated to an integer.  (ShJ 10/29/92)

dev/hosts
        Added BigX to the hosts files on tucana, BigX, ursa, gemini, and
        orion to establish IRAF networking for our new server.  (11/12 jb)

dev/hosts
        Added claret to the hosts files on tucana.  (11/13 RLS)

sys/symtab/stalloc.x
sys/symtab/stsqueeze.x
sys/symtab/stpstr.x
sys/symtab/symtab.h
	The symtab package could fail with an "out of memory" error during
	symbol table or string buffer reallocation in applications which
	call stsqueeze to free unused storage (as when doing an stsave to
	save to a file).  This was caused by the buffer increment being
	increased by a factor of two during overflow, combined with stsqueeze
	returning the unused space.  Two changes were made, either of which
	will avoid the problem: 1) stsqueeze now reinitializes the buffer
	increment when the buffer length is reset, and 2) the buffer increment
	is now allowed to grow larger than a fixed value (32K) defined in
	symtab.h.  (11/16)

sys/qpoe/qpmacro.x
	1. The code which scans a file and decodes macros was using a large, but
	fixed size, string buffer to store the macro value.  This was
	overflowing when extremely large time filters were stored in QPDEFS
	as macros.  The routine was rewritten to use a dynamically reallocated
	buffer.
	2. The variables nodeffilt and nodefmask, which are false by default,
	could only be set true since the "set nodeffilt" type statement does
	not have a value and there is no unset.  For the moment, this was
	fixed as a special case by initializing the values of these parameters
	to the default before scanning the QPOE macro file.  (11/17)

sys/qpoe/zzdebug.x
	In the expand debug routine, used to test macro expansion, increased
	the size of the output buffer to 128k to accomodate extremely large
	macros.  (11/17)

sys/qpoe/qpioparse.x
	A bug which would cause "filter=..." terms in expressions to be
	discarded was fixed.  (11/17)

sys/qpoe/README
	Added optbufsize to the list of QPDEFS parameters.  (11/17)

sys/mwcs/imwcs.h
	Increased the size of the string buffer used in the FITS read code
	from 20480 chars to 102400 chars.  This fixed size buffer is not
	(easily) reallocatable because the card descriptors use pointers to
	point to the FITS card data in the buffer.  The buffer is only
	allocated while a header is being read so the size isn't really an
	issue.  (11/17)

sys/mwcs/mwsctran.x
	The internal variable pdim, the dimensionality of the linear portion
	of the transform, used to size the vector and matrix buffers for the
	linear algebra, was not being computed correctly.  This could cause
	problems when the dimension of a WCS in the transform was less than
	the dimension of the full MWCS system.  The problem was a typo in the
	statement

		pdim = min (WCS_NDIM(w1), WCS_NDIM(w1))

	the second w1 was changed to w2.  (11/17)

unix/os/zfioks.c
	Fixed a typo affecting stderr debug out to /dev/console.  (11/18)

------------------------
Patch 2.10.2 built; tucana irafx version incremented to v2.10.3.  (11/18)

pkg/cl/scan.c
	Removed several calls to "makelower".  These were forcing parameter
	name operands to lower case.  (11/20)

sys/imio/iki/qpf/qpfwfilter.x
	The QPF interface uses a sequence of QPFILTxx cards to record in the
	image header the QPOE filter used to generate an image.  To avoid
	overfilling the header, excessively long filter strings are truncated.
	The truncation limit was increased from 1024 chars to 4096, increasing
	the number of output cards from a maximum of 16 to 64.  In addition,
	if truncation occurs the string "..." is now written to the end of the
	last card to indicate that the filter string has been truncated. (11/20)

sys/mwcs/wfmspec.x
	Installed a new version of the multispec function driver.  (11/20)

mkpkg
	Added an entry for the f2c architecture.  (11/21)

dev/devices			-
dev/hostlogin			-
	Deleted these obsolete files, no longer used.  (11/21)

unix/os/zopdpr.c
	Added #ifdef SYSV support.  (11/21)

unix/boot/mkpkg/sflist.c
	A call to strcpy had an extra argument.  (11/21)

unix/boot/spp/rpp/rpprat/gtok.r
unix/boot/spp/rpp/rppfor/gtok.f
	Due to some commented out code, the external variable index was not
	used and was causing a warning message.  (11/21)

sys/mwcs/iwrfits.x
	Added a call to idb_close, to return the descriptor allocated by
	idb_open.  (11/23)

unix/hlib/login.cl
	Added lprm to the unix foreign task definitions.  (11/24)

dev/hosts
	Fixed the pathname to irafks.e for cephus (11/27  MJF)

dev/hosts
        Updated pathname to irafks.e for pegasus on tucana, ursa, gemini,
        and bigx.  (11/30 jb)

iraf/doc/aixiraf.ms		+
	Installed the IBM AIX/IRAF installation guide.  (11/30)

pkg/plot/crtpict/calchgms.x
	Fixed an argument type mismatch (int->short) in a call to amaps on
	line 158.  This was causing a floating divide by zero in the
	case of a user supplied lookup table when calculating the transformed
	histogram.				(12/05 ShJ)

pkg/cl/unop.c
	On some systems (sparc) CL expressions such as -(big-floating) would
	abort with a floating operand error.  This was the result of integer
	overflow occuring when the floating value was assigned to an int.
	The CL was checking for this case, but would fail for negative
	values.  (12/10)

unix/boot/wtar/wtar.hlp
	Updated a couple of paragraphs to document the recent changes to
	the utility.   (12/23)

dev/termcap
dev/graphcap
        Added entries for Kermit terminal emulator supplied by Pat Seitzer.
        The termcap entry is for MS Kermit 3.0 in VT320 mode; graphcap for
        Kermit3.12 and CGA or VGA display.              (1/7 MJF)

unix/boot/bootlib/tape.c
	Replaced a call to ACLRB by functionally equivalent C code.  The ACLRB
	works under normal circumstances, but fails in a NOVOS bootstrap.
	(1/08 1992)

sys/imio/db/imgnfn.x
pkg/images/doc/hedit.hlp
	The header keyword template package had a builtin limit of 128 on the
	maximum number of keywords matching a pattern (e.g. *).  This builtin
	limit was increased to 1024.  (1/11)

dev/hosts
        Added Dick Joyce's machine "charfman" to the file on Gemini
	(i.e., where Dick's IRAF comes from - networking was totally
	down).  (1/13 RLS)

./math/iminterp/arbpix.x
./math/interp/arbpix.x
./noao/astutil/t_setairmass.x
./noao/digiphot/photcal/evaluate/phprint.x
./noao/mtlocal/cyber/cykeywords.x
./noao/mtlocal/cyber/t_ridsfile.x
./noao/onedspec/ecidentify/ecline.x
./noao/onedspec/irsiids/t_bswitch.x
./noao/onedspec/irsiids/t_flatdiv.x
./noao/onedspec/irsiids/t_flatfit.x
./noao/onedspec/irsiids/t_sums.x
./noao/twodspec/apextract/peaks.x
./noao/twodspec/multispec/fitclean.x
./noao/twodspec/multispec/fitsmooth.x
./noao/twodspec/multispec/intgauss5.x
./noao/twodspec/multispec/peaks.x
./noao/twodspec/multispec/solve.x
./noao/twodspec/multispec/t_fitfunc.x
./pkg/bench/xctest/lintran.x
./pkg/images/lib/sigl2.x
./pkg/images/tv/display/sigl2.x
./pkg/images/tv/iis/src/sigl2.x
./pkg/lists/lintran.x
./pkg/plot/crtpict/sigl2.x
./pkg/proto/t_imscale.x
./sys/clio/clgeti.x
./sys/clio/clgetl.x
./sys/clio/clgetr.x
./sys/clio/clgets.x
./sys/clio/clglpi.x
./sys/clio/clglpl.x
./sys/clio/clglpr.x
./sys/clio/clglps.x
./sys/clio/clputi.x
./sys/gio/calcomp/t_calcomp.x
	These files were modified to replace equals-INDEF type constructs by
	IS_INDEF type constructs.  (1/15).

unix/mkpkg
	Modified the "mkpkg summary" feature to work for either cc or gcc.
	(1/15)

unix/os/zfiotx.c
	Modified to use the TCSETAW ioctl instead of TCSETAF in some cases
	(SysV systems only).  (1/15)

pkg/dataio/reblock/t_reblock.x
pkg/dataio/doc/reblock.hlp
	Added support for multiple disk file input and output to the reblock
	task. (1/20/93 LED)

dev/hosts
        Added Daryl Willmarth's machine "jannu" on Tucana.
	(1/20 FV)

dev/hosts
	At Ed Anderson's request, added nodes anasazi and prometheus to
	dev$hosts on tucana, ursa and gemini.  The lacerta pathname was 
	updated in these files as well.			(1/21/93 ShJ)

dev/termcap
dev/graphcap
	Cleaned up the VMS specific entries for lw6-10 so all are available
	now from VMS/IRAF.  Graphcap needed a vapl6 entry; termcap needed
	entries for vapple[6,8-10].			(1/20/93 ShJ)

dev/devices.hlp
	Updated the first section of this file to have accurate locations for
	the various printers and to include the device names for generating 
	PostScript output files. 			(1/21/93 ShJ)

pkg/images/filters/fmedian.x
	The fmedian task was printing a lot of garbage debugging information
	under iraf 2.10.2. Removed the eprintf statements. (1/25/93 LED)

pkg/system/phelp.cl
	Changed the default value for the parameter "all" to "yes".  This
	causes phelp to print help for all modules matching the given
	template, rather than just the first one.  (1/26)

pkg/system/doc/help.hlp
	Added a description of the "all" parameter.  (1/26)

sys/etc/xerstmt.x
	The code which modifies the `error (ddd, "message")' command sent to
	the CL when a task aborts was modified to eliminate characters such
	as newline or double quote which could cause the syntax of the
	generated command to be invalid.  (There are 31 cases of "call error"
	statements in the core distribution which contain unwanted newline
	characters in the message string).  (1/27)

pkg/images/tv/wcslab/wcslab.x
        Fixed a bug in the axis mapping code in wcslab which was causing the
	task to fail in some circumstances if the input image was a section 
	of a higher dimensioned parent image. (1/28/93, Davis)

vms/gdev/sgidev/sgi2veps.for +
vms/gdev/sgidev/mkpkg.com
vms/hlib/sgiqueue.com
dev/graphcap
	Added an SGI translator for Encapsulated PostScript to VMS/IRAF.
	As with the Unix version of the translator, the device names are
	eps, epsl and epsh.  The output file is named sgixxxxx.eps and
	is left in the users home$ directory.	(2/1/93 ShJ)

unix/hlib/install
	Added a number of statements such as "rm -f $TEMP >& /dev/null" to
	ensure that any existing temp files are deleted before trying to
	create new ones (file creation can fail due to permissions problems).
	(2/01)

vms/gdev/sgidev/sgi2vapl.for
	Modified to close the output file before sending it to the printer
	queue with sndjbcw.  Without this, the file wouldn't be closed until
	the program finished, possibily resulting in an intermittent error:
	%RMS-E-FLK, file currently locked by another user.  This was more
	likely to be seen on a [relatively] fast machine such as Robur, when
	the queue processing could turn on before the translator completed.
	In this case, the output file would still be open [and locked] by the
	executing sgi2vapl program.		(2/2/93 ShJ)

dev/hosts
        Modified this file on all hosts for Fred Gillett's new Sun called
        turkey.  (2/2/93 jb)

dev/hosts
	Added the GONG machines soi and mdi to hosts files on tucana, orion
	and ursa.  Added on gemini by Nigel.  (2/2/93 MJF)

pkg/images/tv/wcslab/wcslab.h
pkg/images/tv/wcslab/wcs_desc.h
pkg/images/tv/wcslab/wcslab.x
pkg/images/tv/wcslab/wlwcslab.x
        Removed a dependency on the file gio.h from the wcslab task.
	(2/11/93 LED)

pkg/images/imutil/t_imslice.x
	Removed an error check in imslice, that was preventing the task from
	being used to reduce the dimensionality of images where
	IM_LEN(im,slice_dimension) = 1.
	(2/16/93 LED)

dev/imtoolrc
dev/graphcap
	Added a new frame buffer, imt37, at Skip Schaller's request for
	the Loral 1200x800 CCDs. (2/17/93 MJF)  Modified imt37 and imt26
	(cryocam) to suit KPNO nomenclature.  (2/18/93 RLS)

pkg/images/tv/imexamine/ierimexam.x
pkg/images/tv/doc/imexamine.hlp
	The simple gaussian fitting was inadequate and gave biased answers.
	Replaced this algorithm with NLFIT version.  It is still just a two
	parameter fit with the center and sky being determined and then fixed
	as before.  (3/2/93, Valdes)

dev/hosts
        Merged all differences on ursa, gemini, orion, and bigx back into
        tucana's hosts file.  (3/5/93 jb)

pkg/images/tv/imexamine/iestatistics.x
	The statistics computation was done in real precision, using aavgr,
	which gives an incorrect standard deviation, presumable because of
	precision truncation, when the mean is large and the actual data
	noise is small.  The routine was changed to use the double
	precision version, aavgd, which gives the correct results.
	(3/10/93, Valdes)

noao/mkpkg
	Added support for HPUX.  (3/14)

pkg/cl/main.c
	Modified memneed(), used to allocate space at the end of the
	dictionary, to quad align the allocated storage.  (3/14)

pkg/cl/pfiles.c
	Modified this code to remove an assumption about the amount of
	space allocated by memneed.  (3/14)

sys/imfort/tasks/mkpkg		-
sys/imfort/tasks/README
	Deleted the mkpkg, which is system dependent.  (3/14)

unix/os/alloc.c
	Modified alloc to allow the drive in it unallocated state to be
	owned by any system uid (any uid < 10), rather than insisting that
	the drive be owned by root.  If the drive is owned by any system
	uid and has world rw permission it can be allocated under this
	new scheme.  This avoids requiring that the system manager set
	the device ownership to root on systems where the device is owned
	by bin or some other system uid.  (3/15)

mkpkg
	Added irix and hpux support.  (3/15)

dev/hosts
	Added otter to hosts file on tucana, ursa, gemini, orion, and 
	bigx.  (3/24 jb)

dev/graphcap
dev/termcap
	Added entries for lw15|lwcloset to tucana, ursa, gemini, orion, and
	bigX.  (3/26 ShJ)

sys/libc/cread.c
	The case of EOF on a text file was not being handled correctly.  (3/31)

sys/fio/ffilsz.x
	The file size was not being computed correctly in the case of a file
	opened for writing and positioned to EOF, with some unwritten data
	in the file buffer.  (4/05)

pkg/cl/exec.c
	The LT_STDINB, LT_STDOUTB flags were not being propagated into the
	task descriptor correctly (they were being treated as additional
	cases of mutually exclusive task types).  (4/07)

pkg/images/doc/gauss.hlp
	Fixed two sign error in the equations in the documentation for
	the gauss task. (4/13 LED)

unix/hlib/libc/stdio.h
	Added a declaration for gets().  (4/16)

pkg/images/imarith/imcombine.gx
	There was no error checking when writing to the output image.  If
	an error occurred (the example being when an imaccessible imdir was
	set) obscure messages would result.  Errchks were added.
	(4/16/93, Valdes)

pkg/images/doc/rotate.hlp
	Fixed a bug in the rotate task help page which implied that automatic
	image size computation would occur if ncols or nlines were set to 0
	instead of ncols and nlines.  (4/17/93, LED)

sys/imio/iki/stf/stfrgpb.x
	This code was directly referencing fields of the GPB in calls to
	imaddX routines to build the image header.  Since fields in STF
	group parameter blocks are often not aligned, this could fail for
	type double on machines that require that double values be double
	aligned.  The code was modified to copy the values out to
	temporary variables (which the compiler will automatically align),
	passing the aligned temporary values in the imaddX calls.  (5/04)

dev/graphcap
	Merged in latest xgterm entries (these are not compatible with
	early prerelease versions).  (5/05)

./lib/gescape.h
./lib/gim.h					+
./lib/gio.h
./lib/gki.h
./lib/gset.h
./lib/scr/cursor.key
./lib/scr/xgterm.gui				+
./pkg/language/doc/cursors.hlp
./pkg/plot/t_implot.x
./sys/etc/prpsio.x
./sys/gio/cursor/giotr.x
./sys/gio/cursor/grcaxes.x
./sys/gio/cursor/grccmd.x
./sys/gio/cursor/grcredraw.x
./sys/gio/cursor/grcwcs.x
./sys/gio/cursor/gtrctrl.x
./sys/gio/cursor/gtrdelete.x
./sys/gio/cursor/gtropenws.x
./sys/gio/cursor/gtrrcur.x
./sys/gio/cursor/gtrwsclip.x			+
./sys/gio/cursor/gtrwstran.x
./sys/gio/cursor/mkpkg
./sys/gio/cursor/rcursor.x
./sys/gio/gactivate.x
./sys/gio/ggcur.x
./sys/gio/gim/mkpkg				+
./sys/gio/gim/README				+
./sys/gio/gim/gimrasini.x			+
./sys/gio/gim/gimcrras.x			+
./sys/gio/gim/gimderas.x			+
./sys/gio/gim/gimwpix.x				+
./sys/gio/gim/gimrpix.x				+
./sys/gio/gim/gimqras.x				+
./sys/gio/gim/gimsetmap.x			+
./sys/gio/gim/gimrcmap.x			+
./sys/gio/gim/gimwcmap.x			+
./sys/gio/gim/gimimap.x				+
./sys/gio/gim/gimcpras.x			+
./sys/gio/gim/gimgetmap.x			+
./sys/gio/gim/gimenmap.x			+
./sys/gio/gim/gimref.x				+
./sys/gio/gim/gimsetras.x			+
./sys/gio/gim/gimrefpix.x			+
./sys/gio/gki/gkifaset.x
./sys/gio/gki/gkigcur.x
./sys/gio/gki/gkiprint.x
./sys/gio/gki/gkircval.x
./sys/gio/gki/gkiwesc.x				+
./sys/gio/gki/mkpkg
./sys/gio/gmprintf.x				+
./sys/gio/gmsg.x				+
./sys/gio/gopen.x
./sys/gio/gplcache.x
./sys/gio/greset.x
./sys/gio/gsetr.x
./sys/gio/gstatr.x
./sys/gio/gsview.x
./sys/gio/gswind.x
./sys/gio/mkpkg
./sys/gio/sgikern/sgifa.x
./sys/gio/stdgraph/mkpkg
./sys/gio/stdgraph/stdgraph.com
./sys/gio/stdgraph/stdgraph.h
./sys/gio/stdgraph/stgescape.x
./sys/gio/stdgraph/stgfaset.x
./sys/gio/stdgraph/stggcur.x
./sys/gio/stdgraph/stggim.x			+
./sys/gio/stdgraph/stginit.x
./sys/gio/stdgraph/stgopen.x
./sys/gio/stdgraph/stgopenws.x
./sys/gio/stdgraph/stgrcur.x
./sys/gio/stdgraph/stgreset.x
./sys/gio/stdgraph/stgscur.x
./sys/gio/stdgraph/stgwtty.x
./sys/tty/tty.h
./sys/tty/ttyopen.x
	Merged in a number of changes made to add IRAF-side support for the
	prototype widget server.  These will be documented in detail later.
	The changes should be backwards compatible; any compatibility
	problems should be reported.  (5/05)

pkg/images/geometry/t_imshift.x
	Added support for type ushort images to the imshift task in the
	case that the pixel shifts are integral not fractional.
	(5/8/93 Davis)

pkg/images/imarith/icmedian.gx
	The median calculation is now done so that the original input data
	is not lost.  This slightly greater inefficiency is required so that
	an output sigma image may be computed if desired.  (5/10/93, Valdes)

images/doc/imshift.hlp
	Fixed a typo in the name of the "interp_type" param. (5/13/92 MJF)

dev/tapecap
	Added support (mto*) for the new Exabyte 8500 drive on Argo.
	Added lo/hi/comp aliases for the ST driver entries.  (5/17)

dev/hosts
        Added aldebaran to all hosts files - needed temporarily until this
        machine becomes argo.  (5/19 jb)

pkg/images/tv/display/t_display.x
	The code for the fill+ option did not handle the case of a non-square
	display frame buffer correctly.  (5/19)

pkg/plot/phistogram.x
	Fixed a bug in the way the phistogram task was reading in data
	redirected from the standard input. (5/20 LED)

/dev/hosts
	Added lemming to all hosts files. (5/25 jb)

images/imarith/icgdata.gx
	There was an indexing error in setting up the ID array when using
	the grow option.  This caused the CRREJECT/CCDCLIP algorithm to
	fail with a floating divide by zero error when there were non-zero
	shifts.  (5/26/93, Valdes)

sys/ki/kixnode.x
	This routine used a fixed length intermediate buffer which could
	result in truncation of a resource name.  Modified to base the buffer
	size on the size of the resource string being edited.  (5/29)

doc/iraf92.tex
doc/iraf92f3.eps
	Installed ADASS-93 IRAF paper sources.  (6/02)

doc/ports/aux_port.doc
	Installed AUX/IRAF port notes.  (6/02)

lib/gescape.h
lib/gim.h
sys/gio/cursor/giotr.x
sys/gio/cursor/gtropenws.x
sys/gio/cursor/rcursor.x
sys/gio/gim/README
sys/gio/gim/gimlcmap.x
sys/gio/gim/gimwcmap.x
sys/gio/gim/mkpkg
sys/gio/sgikern/sgifa.x
sys/gio/stdgraph/mkpkg
sys/gio/stdgraph/stggcur.x
sys/gio/stdgraph/stggim.x
sys/gio/stdgraph/stgopenws.x
sys/gio/stdgraph/stgrcur.x
sys/gio/stdgraph/stgscur.x
	Various files updated as part of display interfaces enhancements;
	notes to be added later.  (6/02)

dev/hosts
	Added odysseus to tucana/orion.  Nigel added it to ursa/gemini.
	(6/15MF)

sys/vops/arav.gx
	Changed the termination condition to cause loop termination if an
	interation results in fewer pixels being rejected.  This shouldn't
	happen, but is possible due to arithmetic errors when the algorithm
	is near convergence.  (6/19)

sys/imio/iki/oif/oifopix.x
	Improved the error handling for the case where there is no pixel
	storage file.  (6/21)

gio/ncarutil/conbd.f
gio/ncarutil/conrec.f
	Dimension of array IR in subroutine STLINE was increased from 20k 
	to 80k.  This array, in common block CONRE2, holds the starting
	location of all contours at a given level.  Larger data arrays, and 
	users wanting to contour each pixel rather than subsampling or block 
	averaging, have necessitated the gradual increase of this array 
	over the years from its original value of 500 to 80000.  (ShJ 6/21)

pkg/plot/phistogram.x
	Fixed a bug in the way phistogram was binning real data read in from
	a list or image that was causing to create one less bin than required
	to hold the data. (26/6/93, Davis)

dev/hosts
        Added sandalwood to all hosts files, ie tucana, bigx, ursa, gemini,
        and orion.  (jb 7/1/93)

doc/vmsiraf.ms		+
doc/vmsiraf.ms.v29	+
	Installed the new, extensively revised VMS/IRAF manual.  (7/01)

unix/hlib/buglog.csh
	Modified to also append a new buglog entry to the bugs.log file in
	the network archive (~ftp/iraf/v210/bugs.log).  (7/02)

pkg/utilities/t_surfit.x +
pkg/utilities/surfit.par +
pkg/utilities/doc/surfit.hlp +
pkg/utilities/x_utilities.x
pkg/utilities/mkpkg
pkg/utilities/utilities.cl
pkg/utilities/utilities.men
pkg/utilities/utilities.hd
	A task for fitting a 2D function or "surface" to an irregularly
	sampled set of x, y, and z points has been added to the utilities
	package.  (fv 7/6)

pkg/images/geometry/geomap.par
pkg/images/geometry/t_geomap.x
pkg/images/geometry/geogmap.x
pkg/images/geometry/geofit.x
	Fixed a bug in the error handling code in geomap which was producing
	a segmentation violation on exit if the user's coordinate list
	had fewer than 3 data points. Also improved the error messages
	presented to the user in both interactive and non-interactive mode.
	(7/7/93, LED)

unix/os/zfmkcp.c
	This routine makes a zero-length copy of a file, preserving the file
	mode bits so that the application need not know about the host
	system's view of file types, permissions, etc.  The routine was
	modified to preserve the file mode bits EXCEPT that the new file has
	read and write permission enabled for the owner (it is likely that
	an IRAF application creating a new, zero length copy of a file or
	file template will want to write to the file).   (7/07)

dev/hosts
        Added pandora.  (7/10/93 jb)

sys/mwcs/mwsave.x
	Added a missing call to sfree.  (7/13)

pkg/system/doc/help.hlp
	Deleted a comment about using device=text with the help task and
	added another example showing how to use help | type dev=text to
	get a text file copy of a help page.  (7/23)

pkg/images/filters/t_median.x
pnkg/images/filters/t_mode.x
	Removed an extraneous invalid argument from the call to eprintf
	inside an iferr block. (7/28/93)

-------------------
V2.10.3 BETA, first release.  (7/29)

mkpkg
unix/hlib/strip.iraf
	Minor updates to strip a few things that were being missed.  mkpkg
	strip at the iraf root now prints some helpful messages.  (8/01)

unix/hlib/login.cl
	Added dbx and gdb to the default user package.  (8/01)

pkg/images/imarith/t_imcombine.x
	The algorithm for making sure there are enough file descriptors
	failed to account for the need to reopen the output image header
	for an update.  Thus when the number of input images + output
	images + logfile was exactly 60 the task would fail.  The update
	occurs when the output image is unmapped so the solution was to
	close the input images first except for the first image whose
	pointer is used in the new copy of the output image.  (8/4/93 fv)

pkg/images/imfit/fit1d.x
	When the input and output images are the same there was an typo error
	such that the output was opened separately but then never unmapped
	resulting in the end of the image not being updated.  Fixing the
	typo means that only one I/O pointer is used in READ_WRITE mode
	as intended.  (8/6/93 fv)

sys/mkpkg
sys/memdbg/			+
lib/libmemdbg.a			+
unix/hlib/mkpkg.sf.SUN4		+
unix/as.sparc/zrtadr.s		+
	Added a new system library -lmemdbg.  This is a debug version of MEMIO,
	used to log calls to the MEMIO routines and check programs for
	memory leaks (unfreed buffers).  See the README file in the memdbg
	directory for details on usage.  (8/08)

pkg/softools/memchk.par		+
pkg/softools/memchk.x		+
pkg/softools/mkpkg
pkg/softools/softools.cl
pkg/softools/softools.men
pkg/softools/x_softools.x
	Added a new task MEMCHK to the softools package.  This is used in
	conjunction with the memdbg facility.  (8/08)

pkg/system/sort.x
	This very old program had some pretty small buffer sizes and hence
	was slow sorting large files.  The buffer sizes were increased by
	about a factor of 10.  (8/08)

sys/clio/clclose.x
sys/clio/mkpkg
sys/etc/main.x
	Made a minor modification to the IRAF main to close the stdio
	streams during process shutdown.  This makes memdbg output a little
	less confusing, although the system still allocates a number of
	buffers that exist for the lifetime of the process and are never
	freed.  (8/08)

sys/fio/stropen.x
	Added a call to strclose to free the file pushback buffer if any.
	This is only necessary when pushback is used on a string buffer
	opened as a file, as in parsers.  (8/08)

sys/fio/vfnmap.x
	Added a missing sfree.  (8/08)

sys/vops/aselk.gx
sys/vops/lz/mkpkg
sys/vops/mkpkg
sys/vops/vops.calls
sys/vops/vops.men
sys/vops/vops.syn
	Added a missing VOPS routine aselk, the vector/scalar version of the
	existing asel routine.  (8/08)

lib/evvexpr.h			+
sys/fmtio/evvexpr.x		+
sys/fmtio/evvexpr.y		+
sys/fmtio/evvexpr.gy		+
sys/fmtio/evvexpr.com		+
sys/fmtio/mkpkg
	Installed a new FMTIO routine evvexpr, a vector version of the old
	evexpr with many other enhancements (expanded datatypes, intrinsic
	functions, etc.).  Refer to the imexpr help page and the comments
	at the top of evvepxr.gy for details.  (8/08)

pkg/images/images.hd
pkg/images/images.men
pkg/images/images.cl
pkg/images/x_images.x
pkg/images/imarith/mkpkg
pkg/images/imarith/imexpr.x	+
pkg/images/imarith/imexpr.gx	+
pkg/images/imarith/gettok.x	+
pkg/images/imarith/gettok.h	+
pkg/images/doc/imexpr.hlp	+
	Installed a new task IMEXPR, used to evaluate general image
	expressions.  Refer to the help page for details.  (8/08)

unix/boot/mkpkg/host.c
	The routine h_direq in this file is supposed to be smart enough
	to be able to match up directories even when symbolic links are
	used.  It was being fooled by a case where the name of the iraf
	root directory is not a simple "iraf" - for example on tucana the
	root directory is currently called "iraf/iraf.develop".  When
	h_direq fails it can cause mkpkg special file list entries to
	be ignored.  (8/11)

sys/fmtio/evvexpr.gy
	Swapped the precedence of the unary minus and exponentiation operators
	(the latter should have higher precedence).  (8/12)

sys/fmtio/evvexpr.gy
	1. The input arguments to the intrinsic functions INT and NINT were
	being coerced to floating before performing the operation (harmless
	but unnecessary, and inefficient).
	2. The code for the intrinsic functions "short" and "long" was missing
	and was added.  (9/04)

unix/hlib/mkpkg.sf.SUN3
unix/hlib/mkpkg.sf.SUN4
	Added the compiler switch "-Ns2048" for fmtio$evvexpr.x.  This routine
	(which is computer generated from evvexpr.gy and which is enormous)
	was overflowing the Fortran compiler symbol table.  Interestingly,
	I got the same error message and had to add exactly the same switch,
	using the Sun Fortran compiler on the Sun and F2C on A/UX!  (9/04)

dev/termcap
dev/graphcap
	Added HP LaserJet 4M 600dpi printer 'lw16' to graphcap/termcap file 
	on tucana, orion, gemini, ursa, and bigx.  (9/17/93 MJF)

dev/hosts
        Modified herbie entry on all hosts.  Herbie now feeds off of
        gemini.  (jb 9/23/93)

sys/mwcs/mwgctran.gx
	Fixed a typo that was preventing LTV from being output correctly.
	(9/24)

pkg/images/imarith/icscale.x
pkg/images/doc/imcombine.hlp
	The help indicated that user input scale or zero level factors
	by an @file or keyword are multiplicative and additive while the
	task was using then as divisive and subtractive.  This was
	corrected to agree with the intend of the documentation.
	Also the factors are no longer normalized.  (9/24/93, Valdes)

pkg/images/imarith/icsetout.x
	The case in which absolute offsets are specified but the offsets are
	all the same did not work correctly.  (9/24/93, Valdes)

sys/gio/gmsg.x
sys/gio/gmprintf.x
	1. gmsg (and indirectly gmsg[bcsilrdx]) was modified to format a
	message as required to the set the value of an OBM parameter object.
	Previously it was working, but it would send any message to any
	UI object and this would have required that applications format
	messages specially for UI parameters.
	2. Reviewing gmprintf.x it appeared that the routine was never
	finished and won't work - I added a comment to that effect.  The
	gmsg routines should prove more useful anyway.  (9/26)

sys/gio/stdgraph/stgopenws.x
	When reactivating a device in certain circumstances a flag was not
	being set to tell the kernel that the device was activated.  A symptom
	of this was that in a cursor read, colon commands would not be echoed
	or the 'C' key would appear to do nothing (the characters were
	actually being output but since the dialog box was never activated
	they were not being printed).  (10/01)

dev/graphcap
	The xgterm entry was modified to add a new field to the cursor
	return struct.  (10/7)

sys/gio/stdgraph/stgopen.x
sys/gio/stdgraph/stgopenws.x
sys/gio/stdgraph/stgclose.x
sys/gio/stdgraph/stgreset.x
sys/gio/stdgraph/stgrcur.x
sys/gio/stdgraph/stgrtty.x
sys/gio/stdgraph/stdgraph.com
sys/gio/stdgraph/stdgraph.h
	The stdgraph kernel was modified to allow a message to be returned
	as part of a cursor read.  The cursor value struct for devices such
	as xgterm contains a field "nchars" defining the number of chars,
	default zero, following the fixed size cursor value struct.  If this
	data is present it is read as part of the cursor read, and played
	in a dynamically reallocatable message buffer in the stdgraph
	kernel.  The next stg_readtty call (as used in CL cursor reads or
	when reading from STDIN when graphics is activated) returns data from
	this message buffer rather than reading from the terminal.  A new
	routine stg_msglen was added to allow the kernel to be queried to
	see how much message data is buffered.  The message buffer is
	emptied in each cursor read or after the first stg_readtty call.
	(10/7)

sys/gio/cursor/rcursor.x
	In a colon cursor read, the rcursor code (=gcur, clgcur) now calls
	stg_msglen and echoes the ":" only if there is no buffered message
	data.  (10/7)

sys/gio/gmsg.x
	The messaging routine gmsg now automatically disables and renables
	F_FLUSHNL if this is set on STDOUT, as this interferes with the
	operation of gmsg.  (10/7)

pkg/images/imarith/icsetout.x
	Added MWCS calls to update the axis mapping when using the project
	option in IMCOMBINE.  (10/8, Valdes)

dev/hosts
	Added node sol to tucana at Ed Anderson's request.  (10/8 ShJ)

pkg/dataio/imtext/t_rtextimage.x
pkg/dataio/imtext/t_wtextimage.x
pkg/dataio/imtext/rt_cvtpix.x
pkg/dataio/rtextimage.par
pkg/dataio/wtextimage.par
pkg/dataio/doc/rtextimage.hlp
pkg/dataio/doc/wtextimage.hlp
	A parameter was added to select whether to read or write the pixel
	values.  This is complementary to rfits/wfits and allows use of
	these tasks to store and restore image headers.  (10/22 FV)

dev/hosts
        Updated argo entry now that it has been updated to a sparc - on
        all servers.  (10/27 jb)

pkg/images/icgrow.gx
pkg/images/icpclip.gx
pkg/images/icsclip.gx
pkg/images/icaclip.gx
pkg/images/iccclip.gx
pkg/images/t_imcombine.x
pkg/images/doc/imcombine.hlp
	If there were fewer initial pixels than specified by nkeep then the
	task would attempt to add garbage data to achieve nkeep pixels.  This
	could occur when using offsets, bad pixel masks, or thresholds.  The
	code was changed to check against the initial number of pixels rather
	than the number of images.  Also a negative nkeep is no longer
	converted to a positive value based on the number of images.  Instead
	it specifies the maximum number of pixels to reject from the initial
	set of pixels.  (11/8, Valdes)

sys/fio/stropen.x
	There was an off by one problem with marking the end of the string
	buffer, making it possible to run off the end of the buffer by one
	char before overflow would occur.  (11/10)

pkg/images/tv/display/t_display.x
	Changed the format of the z1=,z2= message to produce something that
	can be cut and pasted into another CL display command to use the
	same scaling.   (11/12)

pkg/images/imarith/t_imarith.x
pkg/images/doc/imarith.hlp
	If no calculation type is specified then it will be at least real
	for a division.  Since the output pixel type defaults to the
	calculation type if not specified this will also result in a
	real output if dividing two integer images.  (11/12/93, Valdes)

sys/ki/irafks.x
	1. Modified the code which handles ZFSTT optbufsize,maxbufsize requests
	for the binary file drivers to also query the maxbufsize for ZFIOKS
	and return the minimum of this value and the device value.  This
	prevents the size of a binary file data transfer from exceeding the
	max size network transfer.
	2. The irafks.exe executable was updated in our VMS/IRAF system.
	(11/17)

sys/ki/kbzstt.x
	While looking at this code I noticed that the internal variable
	kb_maxbufsize could be used before being initalized.  Although I am
	not aware of this having caused any problems, I modified the code to
	properly initialize the variable.  (11/17)

sys/vops/arav.gx
	The change made on 6/19 (to avoid an infinite loop condition that
	could arise due to roundoff errors) introduced a bug that would cause
	the routine to return after one iteration, without rejecting any
	data.  (11/18)

sys/fmtio/gargs.x
	Was not properly checking for indefinite or overflow in the double
	to short conversion.  (11/22)

sys/gio/gmsg.x
	The gmsg routines now do an automatic gflush before sending the
	message.  The gflush and a flush of STDOUT are always done regardless
	of whether the output device supports messaging, to ensure that the
	flush semantics are not device dependent.  (11/24)

pkg/proto/t_bscale.x
	Added a call to flush after the status printout so that the output will
	appear after each image is processed. (11/29 LED)

dev/hosts
	Modified deneb entry at Ed Anderson's request.  (12/1 ShJ)

sys/imio/iki/stf/stfcopyf.x
	Added errchk declarations for getline and putline.  (12/10)

doc/ports/notes.aix		+
	It appears that we never installed the notes file from the AIX/IRAF
	port so I went ahead and did this.  (12/13)

sys/imio/iki/stf/stfcopyf.x
	Increased the size of the internal arrays to MAX_PCOUNT+NKW, and
	added a constraint on a loop index to ensure that images with large
	GPBs would not exceed this limit.  (12/20)

dev/hosts
	Modified herbie entry at Lisa Wells' request.  (12/22 ShJ)

pkg/images/geometry/t_geomap.x
pkg/images/geometry/geofit.x
pkg/images/geometry/geograph.x
        Fixed a bug in the geomap code which caused the linear portion of
	the transformation to be computed incorrectly if the x and y fits
	had a different functional form.  (12/29/93 LED)

unix/hlib/buglog.csh
	The buglog will now log the bug to adass.iraf.bugs in addition to
	all the usual places.  (01/06 1994)

noao/lib/zzsetenv.def
        Added a definition of "noao$bin(arch)/" to 'pkglibs' so that the
        smw and asttools libraries would be picked up  by other packages
        using '-p noao' when the package is configured generically.  
        (1/10/94 MJF)

math/gsurfit/gssub.gx
math/gsurfit/gssubd.x
	The gsurfit double precision routine gssubd was incorrectly calling
	the real precision routine gsgeti instead of the double precision
	routine dgsgeti due to an error in the gssub.gx file. This bug
	results in the wrong value of the parameter GSNSAVE being returned
	to the calling routine gssubd in the double precision case.
	(1/17/94 Davis)

unix/hlib/buglog.csh
	Changed the default version to V2.10.  (1/21)

sys/gio/stdgraph/stgwtty.x
	Due to a too-nonspecific test for the termination of a graphics
	message, a newline occuring at just the right position in a text
	message could cause termination of a message.  This was causing
	large messages to be prematurely terminated (actually this could
	occur in any message but it was more likely to be seen in a large
	message).  (1/24)

dev/termcap
	Added an entry for xgterm called "oldgterm".  This is for using
	xgterm with old versions of IRAF.  It makes the text window look
	like an xterm but the graphics is gterm.  (1/27)

sys/memdbg/README
	Fixed a couple of typos.  (1/28)

pkg/plot/t_implot.x
pkg/plot/implot.par
pkg/plot/doc/implot.hlp
   	The step for the j/k keys may now be set by a task parameter. (2/02 fv)

sys/gio/gmsg.x
	1. The dtoc and xtoc functions were being called incorrectly in the
	gmsg[rdx] routines.
	2. Corrected a minor typo in a procedure header.  (2/04)

pkg/dataio/doc/bintxt.hlp
pkg/dataio/doc/mtexamine.hlp
pkg/dataio/doc/rcardimage.hlp
pkg/dataio/doc/reblock.hlp
pkg/dataio/doc/rfits.hlp
pkg/dataio/doc/rtextimage.hlp
pkg/dataio/doc/txtbin.hlp
pkg/dataio/doc/wcardimage.hlp
pkg/dataio/doc/wfits.hlp
pkg/dataio/doc/wtextimage.hlp
	Added a "SEE ALSO" section to most of the help pages, and fixed a
	number of other minor formatting errors.  (2/13)

pkg/cl/login.cl
	Updated this file.  (2/14)

pkg/cl/lexicon.c
	When skipping leading whitespace before a token, will now recognize
	an escaped newline and skip the newline as well.  (2/14)

sys/memdbg/README
	Added a couple more minor comments.  (2/18)

unix/as.sparc/zrtadr.s
	MEMDBG was not returning valid values for the RETADR (return
	address) field.  This was traced to a problem with as$zrtadr.s.
	Evidently the real zrtadr.s was lost back when MEMDBG was written,
	probably due to an accidental cc -S after the package had already
	been debugged.  The version in as.sparc was the assembler for the
	dummy version (zrtadr.c) in sys/memdbg.  I had to rewrite the real
	assembler version of this routine from scratch (ouch).   (2/18)

dev/graphcap
gio/stdgraph/stggim.x
	The refresh pixels function was broken due to the graphcap entry for
	this function being aliased to that for read pixels (RP).  This
	would cause an "incomplete or reentrant format" error when trying to
	do a gim_refreshpix from an IRAF imaging application.  (2/24)

gio/gim/gimrefpix.x
	Edited the procedure header description to reflect a change in the
	definition of the GtRefreshPixels routine in the gterm widget.  (2/25)

dev/graphcap
sys/gio/stdgraph/stggim.x
	The name for the ME capability (refresh mapping) used in the xgterm
	graphcap entry was a redefinition of the marker-end capability used
	for drawing polymarkers.  Changed the name to MN.  We need a more
	rigorous way to register device capability names to avoid this sort
	of problem.  I usually search the graphcap file, but in this case
	the named was used in the stdgraph kernel but was not actually defined
	for any existing device.  (3/03)

sys/imio/imwrpx.x
	This code assumed that IM_PIXTYPE was int, the same as the type of
	the pixel masks.  Modified to convert the pixel values if necessary
	when writing to the output mask.  (Note that this is not necessary
	when *reading* a mask, as IM_PIXTYPE will always be int in that 
	case).  (3/07)

sys/plio/plp2l.gx
sys/plio/plp2r.gx
	Modified this code to apply a max(0,value) to the input pixel values,
	i.e. to clip at zero.  Masks permit only nonnegative pixel values.
	Negative input values could cause the data to be improperly encoded.
	(3/07)

pkg/math/gsurfit/gs_eval.gx
	The sfree statement was commented out in the routines gs_evpoly
	and dgs_evpoly. This results in over-utilization of memory and
	occasionally in out of memory errors for tasks which make many
	successive calls to gsvector or dgsvector if the surface type
	is polynomial. (3/08/94 LED)

dev/graphcap
dev/termcap
	Added entries for lw14 as requested by Ed Anderson.  (3/28/94 ShJ)

pkg/images/tv/imexamine/ierimexam.x
	Changed the gaussian fitting code to use a fraction of the fitting
	radius as the initial value for the full-width half-maximum in cases
	where the moment analysis failed, thus avoiding an occasional
	floating overflow error.  (4/15/94 LED)

dev/graphcap
	Updated the VMS solitaire entries for the new location of the 
	qsoli.com file, usr3\072[irafext.nlocal.lib]qsoli.com.  (ShJ 4/19/94)

unix/os/mkpkg
unix/os/zfiond.c		+
unix/hlib/libc/kernel.h
unix/hlib/libc/knames.h
sys/fio/mkpkg
sys/fio/ndopen.x
sys/fio/zzdebug.x
	Installed a new FIO driver, the ND or network device driver.  This
	driver can potentially support any connection oriented, streaming
	type network or IPC communications domain.  The initial set of
	supported communications domains are Internet sockets, UNIX domain
	sockets, and FIFO pipes.  The type of connection is specified by
	the "filename" argument to the driver at open time.   Both client
	and server connections are supported.

	A client or a server opens a network device connection as follows:

		fd = ndopen (filename, mode)

	The mode is NEW_FILE for a server, anything else for a client.
	The file descriptor is bidirectional.  The "filename" string syntax
	is determined by the ND driver and is transparent to IRAF system
	and applications code.  For the UNIX/IRAF ND driver, here are some
	examples:

		inet:5177			# Internet socket, server
		inet:5177:foo.bar.edu		# Internet socket, client
		unix:/tmp/.IMT%d		# UNIX domain socket
		fifo:/dev/imt1i:/dev/imt1o	# FIFO (named pipe)

	Refer to the comments in fio$ndopen.x and os$zfiond.c for further
	information.  The file fio$zzdebug.x contains sample client and
	server tasks.  (5/01)

sys/fio/zzdebug.x
	Added two tasks "client" and "server" for testing the ND driver.
	These also demonstrate how to do bidirectional i/o on a streaming
	file descriptor.
	(5/01)

dev/graphcap
unix/gdev/zfiogd.x
	Modified the display server interface to use the ND driver.  These
	changes allow use of socket connections to talk to the display
	server, but are backwards compatible and will work with older
	display server that only support fifos.

	1. The "/dev/imt1" was deleted from the imtool graphcap entries and
	replaced by the null string.  This causes the GD (not ND) driver
	to use a default network address for the connection: the default
	is 1) personal (per-user) unix domain socket at /tmp/.IMT<uid>,
	2) standard imtool fifo pair at /dev/imt1[io], 3) fail.

	2. The GD driver was modified to use the ND driver instead of
	the BF driver for generic device "imtool".  The user may define
	IMTDEV in their host environment to override the ND "pathname"
	given in the graphcap entry for the device.

	The new image display server ximtool also supports all three ND
	protocols (tcp/ip sockets, UNIX domain sockets, fifos) and will
	simultaneously listen for connections on all three.  Multiple
	connections are supported, e.g. the user can be running imexamine
	on one frame while client applications load images into 1 or more
	other frames.  Problems can still result if multiple clients try
	to simultaneously access the same frame buffer, or if different
	clients have different notions of the frame buffer configuration.
	(5/01)

unix/hlib/mkpkg.sf.SUN3
	Set the compile flags for evvexpr.x to "$xc -c -/Ns2048 -/Nx2048"
	for the Sun-3 (larger compiler tables).   (5/07)

sys/gio/cursor/gtrctrl.x
	Modified to set the SKIPOPEN flag on openws only for interactive
	(inline) graphics kernels.  A F_CANCEL on the graphics spool
	buffer in the prpsio code was cancelling the openws for a subkernel
	and preventing it from being passed to the kernel.  The SKIPOPEN
	is used to keep the giotr code from sending the openws again
	when the grahics data is processed.  A better solution might be
	to just omit the gki_write in gtrctrl but the current approch
	appears to work.  This fixes several bugs seen recently with
	graphics subkernels (SGI, IMD, etc.) where e.g. a gflush was
	necessary to make a plot appear, or to keep separate plots from
	being overplotted.  (5/07)

sys/fio/putline.x
        Putline would flush the output buffer after the last character
        written if the number of characters written exactly filled the
        buffer.  This was harmless in most cases, but would prevent using
        putline to write the last character in a stropen file.  This
        behavior was not quite correct, as FIO normally flushes the buffer
        only when one tries to write to the next character after the end of
        the buffer.

	This bug was causing the STF image kernel to fail to read STF
	images, due to the use of stropen in the kernel.  The bug was seen
	only recently due to a recent fix to stropen which caused the top of
	the buffer to be changed by one character.  The routine was changed
	to flush only when writing beyond the end of the current buffer.
	(5/07)

sys/fmtio/evvexpr.gy
	The code for the || operator was incorrect, it was computing the
	and instead.  (5/07)

pkg/images/imarith/imexpr.x
	This code is supposed to generate an integer image for a boolean
	operand when automatic determination of the output image type is
	enabled, but this was incompletely implemented.  Modified to
	generate a TY_SHORT image if the operant type is boolean and
	automatic determination of the output image type is enabled.  (5/07)

sys/fmtio/evvexpr.gy
	Changed MAX_ARGS from 16 to 17 in the arglist structure to double
	align the storage for the operand structs.  (5/08)

sys/mwcs/wfmspec.x
	Modified wf_msp_init to fix a problem in the computation of the
	inverse transformation which could occur when the first physical
	pixel in an image was greatly different from the first logical
	pixel.  (5/08)

---------------------------------
Another 2.10.3 beta released and installed on all the downtown tucana
sysems.   (5/08/94)
 
pkg/utilities/curfit.gx
	Removed the explicit x axis limits to allow the GTOOLS default
	buffer to be applied so that the end points don't fall on
	the vertical axes.  (5/10/94 FV)

lib/evvexpr.h
sys/fmtio/evvexpr.gy
	Added padding to the operand struct to cause arrays of operand
	structures to be double aligned.  (5/10)

sys/gio/cursor/giotr.x
	This file was evidently not updated when the change to gtrctrl.x
	was made on 5/07, but both were modified to fix the gflush or
	overlaid plots problem.  (5/10)

sys/fmtio/mkpkg
	Restructured the mkpkg so that the code which calls the generic
	preprocessor is called both when mkpkg is run in the source
	directory, and during a sysgen update.  (5/10)

sys/vops/mkpkg
	Minor cosmetic edit.  (5/10)

pkg/images/geometry/t_geotran.x
        In cases where the geomap database was undefined and the geometric
        transformation was linear, geotran was unnecessarily  overiding the
	size of the output image specified by the user, if this size was
	bigger than the default output size (the size of the output image
	which would include all the input image pixels if no user shifts
	were applied).  (5/10/94, Davis)

pkg/images/imarith/icaclip.gx
pkg/images/imarith/iccclip.gx
pkg/images/imarith/icpclip.gx
pkg/images/imarith/icsclip.gx
	The reordering step when a central median is used during rejection
	but the final combining is average was incorrect if the number
	of rejected low pixels was greater than the number of pixels
	not rejected.  See bug #244.  (5/25/94, Valdes)

dev/hosts
	Modified irafks.e path to deneb on all the servers, added dynamo.
	(6/3/94 MJF)

pkg/images/imarith/icaclip.gx
pkg/images/imarith/iccclip.gx
pkg/images/imarith/icpclip.gx
pkg/images/imarith/icsclip.gx
	The restoration of deleted pixels to satisfy the nkeep parameter
	was being done inside the iteration loop causing the possiblity
	of a non-terminating loop; i.e. pixels are rejected, they are
	restored, and the number left then does not statisfy the termination
	condition.  The restoration step was moved following the iterative
	rejection. (6/6/94, Valdes)

pkg/images/geometry/xregister/rgxicorr.x
	The path names to the xregister task interactive help files was
	incorrect. (6/13/94, Davis)

math/nlfit/nlfit.gx
math/nlfit/nlfitr.x
math/nlfit/nlfitd.x
 	Fixed a divide by zero error in the nlscatter routine which occurs
        if the fit has no degrees of freedom and the weighting type is
        WTS_SCATTER.  (6/13/94 Davis)

math/nlfit/nlchomat.gx
math/nlfit/nlchomatr.x
math/nlfit/nlchomatd.x
	Changed the singular matrix test to avoid problems with matrices
	whose diagonal elements have values in the same dynamic ranges as
	the machines epsilon. (6/15/94 Davis)

pkg/utilities$t_polyfit.x
pkg/utilities$pfregres.f
        Added a trap for rmul values < 0.0 and > 1.0 to the polyfit routine
        to avoid floating operand errors caused by trying to take the square
        route of a negative number.  (6/20/94 LED)

pkg/images/geometry/geofit.x
 	A routine expecting two char arrays was being passed two real arrays 
        instead resulting in a segmentation violation if calctype=real
        and reject > 0.  (6/21/94, Davis)

pkg/plot/t_surface.x
	The surface task no longer calls error when the input array is
	unsuitable for plotting (constant valued, entirely below floor or
	above ceiling).  The surf_limits procedure was modified to call
	eprintf and then return an error value to the calling program, which
	terminates the task quietly.  This less drastic error exit will
	allow [e.g., IRAF test] scripts to continue after calling SURFACE
	with an invalid input image.  (ShJ 6/23/94)

unix/os/zfiond.c
	Fixed a typo, fd2 was being used where fd1 was intended, in an
	fcntl call after an open for a client fifo.   (6/24)

unix/os/zshlib.c
	Fixed a syntax error on the last line, an extra ';' following a
	stubbed out function declaration.  (6/24)

pkg/images/tv/imexaine/ierimexam.x
	The Gaussian fitting can return a negative sigma**2 which would
	cause an FPE when the square root is taken.  This will only occur
	when there is no reasonable signal.  The results of the gaussian
	fitting are now set to INDEF if this unphysical result occurs.
	(7/7, Valdes)

unix/gdev/sgidev/sgi2uapl.c
unix/gdev/sgidev/sgi2ueps.c
	Merged in changes from Solaris port having to do with the declaration
	of a file descriptor as (FILE *) rather than int, added some #idefs
	to sgi2uapl.c needed by Solaris.  Also modified the header ID string
	produced by sgi2uapl to be "%!PS", this is required by certain HP
	LaserJet 4M printers.		(7/8/94 MJF)

pkg/utilities$t_polyfit.x
        Revoved the dependent variable normalization which was not doing
	anything to improve the numerical statbility of the routine and which
	was causing problems in the computation of the reduced chi-squared
	and standard deviation statistics.
        (7/11/94 LED)

sys/fio/zfiott.x
	Modified the ttyio logging code to flush the output after each
	log message.  (7/23)

pkg/images/tv/wcslab/wcslab.x
        Fixed an initialization bug in wcslab that was causing the axis labels
        of the plot to be drawn incorrectly the first time wcslab was run. 
        This was only a bug under 2.10.3
        (26/7/94 Davis)

pkg/images/geometry/xregister/rgxregions.x
        The routine strncmp was being called (with a missing number of
	characters argument) instead of strcmp. This was causing a bus error
	under solaris but not under sun os whenever the user set the regions
	parameter to "grid ...". (7/27/94 LED)

unix/hlib/libc/kernel.h
	Replaced this file with the version from the Solaris port, which
	replaces the overused PFI definition by definitions of PFI, PFV,
	and SIGFUNC.  (7/30)

pkg/images/geometry/xregister/rgxcorr.x
	A procedure was being incorrectly declared as an integer function.
	(8/02 LED)

unix/os/zfiotx.c
unix/os/zzstrt.c
	The terminal driver (zfioty i.e. zfiotx) has long had a weakness
	in that it had no protection against confusion over the terminal
	state if the terminal was accessed by two or more different file
	descriptors.  This was the chief cause of the cursor hang problem
	seen with xgterm occasionally.  The ehist/eparam code in the CL
	was using two different file descriptors to set the terminal modes,
	and when the second when in and out of raw mode it would leave the
	first descriptor thinking the terminal was in raw mode while it was
	not, causing the cursor to be read in "cooked" mode.  This would 
	cause the \r (CR) delimiter in a cursor read to be mapped to \n
	hence making it impossible to read the cursor.

	The terminal driver was rewritten to maintain an internal array
	of descriptors of open terminal devices.  When a file descriptor
	is used to access a terminal device the driver maps the file
	descriptor to its internal terminal device descriptor, which is
	used to uniquely maintain state information for the device.  This
	ensures that the device is handled consistently regardless of what
	file descriptor is used to set the device mode.

	The zzstrt code had to be modified to call ZOPNTY on each of the
	three stdio streams, to initialize the terminal device descriptor
	for the user terminal.  The driver looks for a special filename
	("unix-stdin" etc.) and uses the already open stream (stdin, stdout,
	or stderr) if one of the standard streams is specified.  (8/02)

dev/graphcap
	Changed the xgterm graphcap entry to recognize either \r or \n as
	the trailer code for a cursor read.  This is a safeguard to permit
	terminating a cursor read should the tty port somehow get raw mode
	cleared, e.g. by some third party process.  (8/02)

pkg/images/tv/imexamine/ierimexam.x
	World coordinates printed in the 'r' profile graph are now formated.
	(8/02, Valdes)

unix/hlib/login.cl
	Modified to eliminate the stty xterm case.  This causes problem when
	TERM is set to xterm in the host environment, but the terminal is
	an xgterm.  Now, if the user sets the terminal type to xgterm in
	their mkiraf, this is the value which will be used.  (8/10)

unix/hlib/mkiraf.csh
	Added "xgterm" to the list of suggested terminal types.  (8/10)

-------------------------------
2.10.3 beta-3 release cut (Solaris).  (8/10)

pkg/images/iminfo/imheader.x
	Changed the way this task tests whether a valid pixel file exists.
	This fixes the bug where [NO PIXEL FILE] is printed when the pixel
	file field in the header is something other than a filename.  (8/15)

-------------------------------
2.10.3 beta-3 release updated (Solaris).  (8/17)

doc/ports/notes.solaris		+
	Installed notes file from Solaris/IRAF port.  (8/17)

unix/boot/spp/xc.c
	Modified XC to support PKGENV values listing multiple packages.
	Formerly XC supported multiple package environments (-p pkgenv)
	on the command line, but permitted only a single package to be
	given in PKGENV.  MKPKG has long supported both options.  (8/18)

unix/os/zfiotx.c
	The terminal driver had a bug affecting nonblocking raw mode
	(IO_RAW+IO_NDELAY).  IO_NDELAY was implementing using fcntl O_NDELAY
	on the file descriptor, which sets asynchronous mode on the
	device with which the file descriptor is associated, i.e., the
	tty port for a terminal device.  This will fail if some other
	process, e.g. the unix wall/rwall task, opens and writes to the tty
	device, clearing asynchronous mode and causing the next read of
	the tty by the IRAF process to block.  It was necessary to modify
	ZGETTX to handle a nonblocking raw mode read as a special case.
	Select() is used to poll the device to see if there is any data to
	be read, and the read is performed only if there is data to be
	read.  (8/18)

-------------------------------
2.10.3 beta-3 release updated (Solaris).  (8/18)

local/login.cl
	Modified as per login.cl revision of 8/10.  (8/22)

sys/fmtio/dtoc3.x
	Fixed a bug that would prevent numbers from being rounded correctly
	in special cases.  The bug affected only fixed format where the
	number being printed was smaller than the number of decimal places.
	For example, 0.09 printed with %.1f would be printed as 0.0 as
	rounding was not being done properly.  (9/10)

sys/etc/prchdir.x
sys/etc/prenvset.x
sys/etc/prupdate.x
	Modified prupdate to add an argument "flushout", used to force flushing
	of the command output to the specified subprocess.  Modified prchdir
	and prenvset to use the new calling sequence for prupdate.  prchdir
	calls prupdate with flushout=YES, prenvset uses flushout=NO.  This
	should fix a problem where chdir requests could be buffered and later
	flushed after one of the referenced directories had been deleted,
	causing the chdir sequence to fail.  (9/14)

sys/mwcs/mwrotate.x
	When rotating about a nonzero center this code was failing to
	shift back to the original center after the rotate.  (9/16)

sys/mwcs/mwtransd.x
	The matrix multiplication in mw_axtran was not being done properly.
	The code would work in the most common cases but would fail when
	rotation (non-diagonal matrix) was combined was an axis flip.  (9/16)

unix/os/zfiotx.c
	tty_reset was being called incorrectly in zclstx().  (9/17)

sys/clio/clgcur.x
	Removed the limitation imposed by this routine on the maximum
	length of the string which can be returned.  (9/20)

pkg/images/tv/tvmark/mkmark.x
        Replaced a seek to EOF call with a flush call in the the tvmark task
        "add object" procedure. On SunOS systems the seek to EOF was apparently
        forcing the flush while on Solaris systems it was not, resulting in the
        added objects never being written to the coordinate file.
	(10/3 LED)

dev/hosts
	added entry for hohokam at Ed Anderson's request.  (ShJ 10/5/94)

sys/vops/awvg.gx
	Modified to always use double precision for the loop variables
	sum, sumsq, etc., even if the data is single precision.  (10/06)

sys/mwcs/wfmspec.x
	Code was added to perform a direct search if the default, faster
	inversion algorithm fails.  (10/07)

pkg/dataio/doc/rfits.hlp
	Removed a confusing reference to difficulties reading images with
	very long lines from the bugs section of the help page.
	(10/10/94 LED)

pkg/images/imfit/fit1d.x
	A Memc in the ratio output option was incorrectly used instead of Memr
	when the bug fix of 11/16/93 was made.  (10/14/94, Valdes)

dev/termcap
	Added a two-up termcap entry for lw16 called "lw16p2" (10/20/94 MJF)

pkg/images/iminfo/imheader.x
	Restructured the code which tests for the pixel file to avoid a
	potential reentrant printf.  (10/24)

sys/fmtio/ctod.x
	Fixed a typo in the comment specifying the lexical form of a
	sexagesimal number.  (10/24)

pkg/images/imarith/imexpr.gx
	The @file form of the expression parameter was failing due to the
	newline at the end of the expression as read from the text file.
	Modified to convert all newlines to spaces when the file is read
	in.  This should work as when invoked this way the included file
	can only contain a single expression, and no expression syntax
	requires a newline to be entered.  (10/25)

dev/termcap
dev/graphcap
	Added a new HP LJ 4 600dpi laserwriter to all servers (10/26/94 MJF)

sys/gio/gim/gimlcmap.x
	Fixed a case of an intrinsic function called with mixed type
	arguments.  (10/28)

sys/gio/glabax/glabax.x
	Modified to use the graphcap capability "fa" instead of "FS" to
	test whether the output device has a fill area capability.  (11/04)

unix/boot/mkpkg/mkpkg
	Changed a "cc" to a "$(CC)".  (11/04)

pkg/images/tv/imexamine/iecolon.x
pkg/images/tv/doc/imexamine.imh
lib/src/imexamine.key
	1.  The "label" parameter was incorrectly attributed to the surface
	    plot instead of the contour plot.
	2.  The "axes" parameter for the surface plot was missing in the code
	    though noted in the help.
	3.  Updated the help and key file to show the label parameter belongs
	    to the e plot and to show the axes parameter.
	(11/08)

pkg/images/xregister.par
pkg/images/doc/xregister.hlp
pkg/images/geometry/xregister/t_xregister.x
pkg/images/geometry/xregister/rgxcorr.x
pkg/images/geometry/xregister/rgxicorr.x
pkg/images/geometry/xregister/rgxcolon.x
pkg/images/geometry/xregister/rgxdbio.x
        The xregister task was modified to to write the output shifts file
        in either text database format (the current default)  or in simple text
        format. The change was made so that the output of xregister could
        both be edited more easily by the user and be used directly with the
        imshifts task. (11/11 LED)

pkg/images/geometry/xregister/rgxbckgrd.x
        In several places the construct array[1++nx-wborder] was being used
        instead of array[1+nx-wborder]. The Sun compilers did not catch this,
        but the IBM/RISC6000 compilers did. (11/16/94, LED)

dev/hosts
	At eanderson's request, added entry for dyevushka and deleted helios.
	(11/17/94 ShJ)

dev/hosts
	At eanderson's request, added entry for mimbres and changed equuleus.
	(11/18/94 MJF)

pkg/images/geometry/t_imshift.x
pkg/images/geometry/t_magnify.x
pkg/images/geometry/geotran.x
pkg/images/geometry/xregister/xrgximshift.x
	The buffering margins set for the bicubic spline interpolants were
	increased to improve the flux conservation properties of the interpolant
	in cases where the data is undersampled. (12/6/94, Davis)

unix/boot/spp/xpp/xppcode.c
	Increased MAX_STRINGS from 100 to 256.  (12/14)

pkg/cl/param.c
pkg/cl/modes.c
pkg/cl/operand.c
	Made minor changes to improve handling of INDEF.
	1) When scanning into a string parameter the string "INDEF" is no
	longer converted to an indefinite operand, it is left as string data
	(the INDEF test was being performed unconditionally for all operand
	types, which was incorrect).
	2) Fixed bugs in a couple of places were indefinite was being
	confused with undefined, or where indefinite was being treated as
	an invalid operand.  (12/23)

------------
The following changes are being merged back in following the DEC Alpha/OSF
port.  (12/30)

unix/hlib/libc/spp.h
	Set XLONG to int (32 bits) instead of long.  This should work for
	both 32 and 64 bit platforms.  (12/30)

unix/os/zdojmp.c
	This code assumed that jmpbuf was an int array and that a pointer
	could be stored in the first integer element.  This fails on 64
	bit machines where pointers are 64 bits and ints are 32.  Modified
	to coerce the jmpbuf array to long so that both 32 and 64 bit 
	machines will be supported.  (12/30)

unix/boot/wtar/wtar.c
	Fixed a bug in WTAR involving coercion of a pointer to an integer
	(line 536, bp = ...).  (12/30)

sys/gio/gks/gcas.x
	Changed the procedure name from "gca" to "gcas".  There is already
	another procedure in the same library called "gca".  "gcas" is
	supposed to be the type short version.  (12/30)

sys/gio/ncarutil/autograph/agrstr.f
	Commented out statements number 901, 902: "no path to this statement".
	These statements are never called as the code that calls them is also
	commented out.  (12/29)

sys/gio/ncarutil/autograph/agsave.f
	Same thing, statement 901.  (12/29)

sys/gio/ncarutil/conlib/consld.f
	Commented out statement functions SCRTCH and IARVL.  These are never
	called and result in a warning message.  (12/29)

sys/gio/ncarutil/conrec.f
	Commented out three lines around line 1226.  These lines were no
	longer used because other code had been commented out, and were
	resulting in a "Variable XX is used before it value has been
	defined" warnings.  (12/29)

sys/gio/nspp/sysint/encd.f
	Commented out several lines that were no longer used and were causing
	a "no path to this statement" warning.  (12/29)

math/deboor/setdat2.f
math/deboor/setdat3.f
	This library contains three files setdat.f, setdat2.f, setdat3.f
	all of which contain a procedure "setdat", causing library conflicts.
	These routines are not really part of the library anyway and are
	only used to generate data for examples in DeBoor's book, but to
	avoid the library conflicts I changed the names of the second and
	third procedures to setdt2, setdt3.  (12/29)

pkg/cl/bkg.c
pkg/cl/builtin.c
pkg/cl/compile.c
pkg/cl/config.h
pkg/cl/debug.c
pkg/cl/decl.c
pkg/cl/errs.c
pkg/cl/exec.c
pkg/cl/gram.c
pkg/cl/main.c
pkg/cl/mem.h
pkg/cl/modes.c
pkg/cl/opcodes.c
pkg/cl/opcodes.h
pkg/cl/operand.c
pkg/cl/param.c
pkg/cl/prcache.c
pkg/cl/scan.c
pkg/cl/stack.c
pkg/cl/task.c
        The CL has long defined the dictionary and stack as arrays of
        unsigned integer.  This causes problems on a 64 bit machine like
        the Alpha where integer and pointer are not the same size.
        To avoid this problem a new type "memel" was defined in a typedef
        in config.h.  The CL code was modified as necessary to declare
        all dictionary and stack storage and references using this new
        type.  (12/29)

pkg/cl/scan.c
        The varargs code in this routine failed to compile on the Alpha,
        which defines va_list as a structure rather than a variable.
        This caused a (va_list) cast to fail.  After studying this for
        a while I couldn't find any way to safely and portably use varargs
        to fake an argument list as an array.  The solution adopted was
        to just make a normal call to sscanf, putting the variable number
        of arguments on the argument list in the normal fashion as v[0],
        v[1], v[2], and so on.  The current implementation imposes a
        limit of at most 32 arguments for a CL scan operation.  (12/29-30)

mkpkg
noao/mkpkg
	Added an entry for the "alpha" architecture.  (12/29)

unix/hlib/mkfloat.csh
	1. Modified to look for .E files as well as .e files.
	2. The script was failing because tar -tf would output file names
	with a trailing space after the filename (surely a bug in OSF1 tar).
	Had to add a filter to trim the whitespace.
	3. Modified the script to treat the "generic" architecture specially,
	avoiding any attempt to restore any binaries etc.  (12/29)

sys/libc/zzdebug.c -> zztest.c
	Renamed zzdebug.c zztest.c to avoid a name conflict with the zzdebug.x
	in the same directory.  (12/29)

unix/hlib/libc/stdio.h
	In struct _iobuf, changed the type declarations from long and int
	to XLONG and XINT.  (12/29)

dev/hosts
	Added an entry for "lyra" to the hosts table.  (12/29)

unix/os/zopdir.c
	1. Modified to use (conditionally) the newer versions of
	opendir/readdir.
	2. Testing revealed a bug in this file.  This was preventing commands
	such as "dir /" from working on Solaris, due to a bug in the code
	which strips trailing slashes from directory names.
	3. zopdir would pass back a pointer coerced to an int as the "file
	descriptor" but this would fail on 64 bit systems where pointers
	don't fit in 32 bits.  Modified the routine to allocate a kernel
	file descriptor for the directory and pass back a normal fd instead.

	Items 1 and 2 above were actually made in the Solaris port.  (12/30)

pkg/dataio/fits/t_wfits.x
	Wfits was using the name of the @file instead of the first file  as the
        root output fits file name if the number of output files was 1.
        (1/18/94 LED)

unix/os/alloc.c
	Fixed a bug in alloc.e which could allow some files in /dev/ to be
	allocated even though the file permissions didn't permit this. (1/18)

tags
	Edited this old tags file to change absolute pathnames such as
	"/usr/iraf/sys/..." to "sys/...".   (1/19)

dev/hosts
        Added lyra to this file on ursa.  (01/20 jb)

unix/os/zfiond.c
	Added a check for the status returned by getstr() to avoid attempting
	undefined operations on a null return value.  (1/27)

sys/fio/zzdebug.x
	Added a task "daytime" to the FIO zzdebug.  This demonstrates use
	of the zfiond driver to connect to the TCP/IP "daytime" service to
	print out the date and time.  (1/27)

hlib/extern.pkg
	Added the ccdacq package from ursa to permit help to be accessed
	via the irafhelp web page per Jeannette's request. (2/1 RLS)

iraf/dev/hosts
        Added katmai to the hosts files on tucana, ursa, gemini, bigx and
        orion.  (2/7/95 jb)

pkg/math/curfit/doc/curfit.spc
	Fixed a bug in the specification of the Legendre polynomials.
	(2/15 LED)

pkg/images/tv/imexamine/iejimexam.x
	Fixed a pointer addressing error found by Zarate.  (2/16 FV)

pkg/plot/t_implot.x
pkg/plot/pltwcs.x
	When trying to plot a column of a 1D image the physical axis was
	being set to zero and then used inapproprriately as a pointer offset
	causing an error on the Dec Alpha port.  The axis now defaults to
	1 and also the task now beeps when attempting a column plot rather
	than plotting a point point line.  (2/16 FV)

sys/imio/iki/stf/stfopix.x
	The pointer o_im (old image header) was being used in an expression
	even for new (non new-copy) images.  Whether or not the pointer was
	actually referenced would depend on the Fortran compiler and how
	it evaluated the expression.  (2/18 1995)

sys/gio/cursor/grcread.x
	A call to grc_message was missing the "stream" argument.  (2/23)

pkg/system/help/helpdb.x
	The final call to error() was missing the errcode argument. (2/23)

sys/gio/gki/gkiexe.x
	The code for GETCELLARRAY was incorrectly using zcall7 instead of
	zcall6.  (2/23)

sys/gio/stdgraph/stgreset.x
	Not all polyline and fillarea attributes were being reset when a
	open or close workstation (stg_reset) occurred.  Added initializations
	for PLTYPE, FASTYLE, PLWIDTH.  (2/25)

unix/hlib/extern.pkg
	Installed IMCNV for use on tucana.  (3/2 MJF)

pkg/images/geometry/xregister/rgxtools.x
	Changed some incorrect amovr and amovi calls to the correct amovkr
	and amovki calls. (3/15 LED)

pkg/dataio/fits/fits_cards.x
	Added some wfits code to filter any "END     " keywords out of the 
	image header userarea. (3/17 LED)

pkg/images/tv/doc/display.hlp
	Clarified the explanation of the 'zrange' parameter to indicate that
	if min/max values are defined they will be used, otherwise the image
	is subsampled using nsample_lines to approximate the min/max when
	determining the mapping.  (3/22  MJF)

pkg/plot/t_gkixt.x
pkg/plot/doc/gkiextract.hlp
	Increased the size of the index array from 2048 to 8192 to accomodate
	very large metacode files.  Added a note to the help page mentioning
	the limit. (3/22  MJF)

pkg/images/geometry/xregister/t_xregister.x
	Added a test on the status code returned from the fitting routine to
        prevent the xregister task from writing an output image when the user
	quits the task in in interactive mode. (3/31/95, Davis)

dev/hosts
	Added 'vanilla' to the mountain sites on all servers.  (4/5/95  MJF)

sys/imio/iki/stf/stfrfits.x
	Added an errchk for open.  (4/03 1995)

sys/fio/open.x
	Added errchks for fgetfd, filopn, seek.  (4/03)

pkg/images/tv/mkpkg
pkg/images/tv/wcslab/mkpkg
	The general purpose routines in WCSLAB were moved into libds.a.  (4/10)

pkg/images/tv/doc/imexamine.hlp
	Fixed a typo in the equation for ellipticity.  (4/10)

pkg/images/tv/imedit/t_imedit.x
pkg/images/doc/imedit.hlp
	The 'j', 'k', 'n', and 'u' keys were added to those recorded in the
	logfile.  (4/11, FV)

sys/gio/imdkern/t_imdkern.x
	The IMD kernel was modified to add a new debug option that will
	work even when the kernel is run as a generic subkernel of the CL.
	For example if we do a "set idkdebug = /tmp/idk.out" then the
	kernel will log GKI input to the file ikd.out.  In debug mode output
	is flushed after every output line, hence one can do a "tail -f" on
	the file to monitor the kernel during execution, to see what the
	CL is sending it.  Currently this feature is only available in the
	IMD kernel but it would be easy to add it to other graphics kernels 
	if needed.  (4/13)

sys/etc/prpsio.x
	The pseudofile i/o controller was modified to fix what has been
	referred to as the "imdkern bug", where the IMD kernel would not
	flush its output to the image display as it used to prior to 2.10.3.

	What happened was that the addition of GUI support in 2.10.3
	included support for bidirectional GIO, where the application sends
	a request to the graphics server and reads back the response.  The
	pseudofile i/o system buffers messages in the graphics streams in
	the CL and in order to support bidirectional transfers it is
	necessary to cancel the i/o buffer for the graphics stream to
	prepare for a possible response.  No bug was found in this code, but
	what was happening was that when a control message was sent to
	PSIOCTRL a request such as close-workstation would write the GKI
	request to the graphics stream; this stream is just a file buffer in
	the CL and any data written there is not passed to the graphics
	subkernel until the subkernel reads from its input stream.  In most
	circumstances subsequent graphics output would cause the buffered
	control request to be passed on to the subkernel and this is what
	was happening in versions of IRAF prior to 2.10.3.  The addition of
	the cancel-stream statements in 2.10.3 would cause these buffered
	control requests to be discarded.  In the case of imdkern the kernel
	would never see the close-workstation request, and the output would
	not be flushed until an event occurred such as shutting down the
	kernel with gflush.

	The fix was to modify the PSIOCTRL handling in prpsio.x to push an
	XMIT request on the psio control stack, to cause the buffered
	control requests to be passed on to the subkernel in the next
	iteration of the pseudofile i/o controller.  (4/13)

kifndnode.x
kignode.x
kilnode.x
kimapname.x		+
kishownet.x
mkpkg
	KI was modified to change the way logical node names are handled.
	A logical node name is an environment variable which maps to a
	node name from the dev$hosts table.  Logical node names are used
	to create symbolic links to physical node names, providing physical
	node name independence, or to otherwise alias node names without
	having to modify the hosts table.

	The initial implementation of this feature was dangerous as logical
	node names and other environment variables share the same name
	space and inadvertent name collisions could occur.  The fix was to
	require a special syntax to define a logical node name: an environment
	variable is treated as a logical node name only if the node delimiter
	character "!" is appended to the value string.  For example, "set
	alpha = foo.bar.edu!" would define logical node alpha to be the same
	as foo.bar.edu.  (4/13)

unix/hlib/motd
	Version number incremented to V2.10.4BETA.  (4/13)

sys/fmtio/evvexpr.gy
	This routine was modified as follows to fix bugs seen in IMEXPR.
	1. There was a bug affecting binary scalar/vector boolean operations
	where the vector operand was the second operand: the type conversion
	would fail if the vector operand was of type boolean.  The routine
	xvv_boolop was modified to treat any input boolean operands as
	integer (they are stored in expressions operands as integers anyway),
	this avoids the special case and is a bit more general.  The test
	case used was the expression "(J <= 5 && I <= 10) ? 0 : a".
	2. xvv_quest was modified to permit int as well as bool for the
	input conditional.  A bug was fixed where the routine would fail
	if the input conditional was a scalar but the data operands were
	vectors; the code was assuming a vector conditional in this case.
	For example, "(J <= 5) ? 0 : a" would fail, as (J <= 5) is a scalar
	(J is a constant when evaluating the expression for a line).  (4/14)

sys/gio/gascale.x
sys/gio/grscale.x
	These routines can modify or set a WCS but they were not setting
	the WF_MODIFIED flag, a recent addition with the GUI support.  This
	fixes a problem first seen with IMPLOT where cursor reads would in
	some cases print NDC coordinates instead of pixel coordinates.  (4/15)

sys/osb/miinelem.x
	The miinelem routine was incorrectly rounding up to the next full
	mii_type when computing the number of mii_type items that can fit in
	a char array of a given length.  (Bug reported by Phil Hodge May94).
	(4/17)

pkg/images/doc/fit1d.hlp
	Added a description of the interactive parameter to the fit1d help
	page (4/17 LED).

sys/mwcs/mkpkg
sys/mwcs/mwsave.x
sys/mwcs/mwload.x
	1. The mw_save/mw_load routines are supposed to encode a MWCS in a
	machine independent form and later restore it, but due to a bug the
	encoded MWCS was not fully machine independent.  mw_save uses pl_p2li
	to compress the integer part of the MWCS descriptor, but mw_save
	was using miipak32 to encode this for external storage.  This is
	incorrect since pl_p2li produces a type short rather than integer
	array.  The bug was harmless on big-endian machines like a Sun or
	on any machine when the saved MWCS was read back on the same machine,
	but would cause the saved MWCS to fail to load when tranferred to a
	machine with a different architecture.  The fixed code now uses
	mii{pak,upk}16 to transform the data.  mw_load can still read old
	saved MWCS provided they were written on a machine of the same
	architecture.
	2. mw_load now initializes the axis map to a 1 to 1 mapping as in
	a call to mw_open to create a new MWCS (formerly the axis map
	storage was zeroed following a mw_load).  The axis map is not saved
	and restored over a mw_save/mw_load sequence.  (4/18)

sys/mwcs/zzdebug.x
	Added two new debug tasks "save" and "load".  SAVE creates a dummy
	MWCS, calls mw_save to encode it , and then saves it to a file
	"mwcs.sav" in the current directory.  LOAD calls mw_load to load
	the named MWCS save file.  Both routines call mw_show to display
	the MWCS so that one can easily verify that it has been saved and
	restored correctly.  (4/18)

sys/mwcs/iwewcs.x
	The routine iw_enterwcs could set the RA axis incorrectly for a ra/dec
	projection where the ra/dec axes were not axes 1/2 or 2/1 and the
	CDELT keywords were used rather than the CD matrix.  (4/18)

sys/mwcs/imwcs.h
sys/mwcs/iwctype.x
sys/mwcs/iwpstr.x
sys/mwcs/mwcs.h
sys/mwcs/mwsaveim.x
	The maximum number of WCS attributes was increased from 256 to 512.
	The WAT and WSV keyword handling code was modified to permit more
	than 999 keywords to be output; the format changes to omit the
	underscore if the index value exceeds 999.  These changes should be
	backwards compatible while allowing more complex WCS to be stored.
	(4/19)

pkg/system/rename.x
pkg/system/rename.par
pkg/system/doc/rename.hlp
	Modified the task to allow a destination directory to be specified
	without changing the filename.  A new "field" parameter option "all"
	was added and made the default so the entire filename is changed (or
	moved in the case of a destination directory).  When field is set to
	"extn" filenames without an extension will not have the new
	extension appended so a filename isn't generated which can get
	overwritten.  (3/14/95 MJF 4/19 DCT)

pkg/cl/builtin.c
	Appending the output of a foreign task now works correctly; previously
	it would overwrite any existing output file.  For example, "ls >> foo"
	will append the output of ls to file foo.  The bug addressed here
	affected only explicit redirection of the output of a foreign task.
	Previous version of the CL would correctly redirect the output of a
	foreign task so long as the task was called indirectly, e.g. from
	within a CL script.  (4/19)

sys/etc/oscmd.x
	Added clobber checking for the output redirection files if any.
	(4/19)

unix/shlib/mkshlib.csh
	We had another one of those nasty occurrences where the iraf shared
	library is rebuilt and suddenly nothing runs anymore (this happened
	after the trivial modifications to oscmd.x above).  The problem was
	traced to the setting of the "environ" pointer in low shared image
	memory by vlibinit when the shared image is mapped by zzstrt.  The
	environ variable is part of the Sun startup code and is one of the
	first objects linked into the shared library image.  The problem was
	that the data for this variable was located in the end of the last
	page of text, but since the text was mapped readonly a segvio would
	occur when attempting to write to this variable.  The fix, at least
	for the moment, was to add a ".align 4096" to the end of V.s to
	force the data segment to be aligned to a page boundary.  (4/20)

sys/imio/iki/stf/stfdelete.x
	stfdelete now checks to see if the pixel file exists before trying
	to delete it.  It is not considered an error if there is no pixel
	file.  (4/20)

pkg/cl/config.h
	Doubled the size of the stack and dictionary.  (4/21)

unix/hlib/zzsetenv.def
	The default printer and stdplot devices were changed to "lp", which
	on unix systems is the default line printer device.  If the user
	has PRINTER set in their host environment IRAF printer output will
	be directed to the user specified device.  The default printer
	device may still be overridden from within IRAF by setting an
	environment variable or via a parameter override.  (4/28)

unix/hlib/libc/kernel.h
unix/os/zawset.c
	A number of changes were made to ZAWSET (called by BEGMEM) to improve
	memory utilization for IRAF tasks that request and use very large
	amounts of memory.  These changes should be backwards compatible and
	the usages of ZAWSET and BEGMEM were not changed.

	1. Modified to make it easier to determine whether the setrlimit
	code is used on different platforms.
	2. Removed the setrlimit that was being performed at process
	initialization time to set the soft limit on a processes memory.
	It is questionable whether this should be limited by default on
	modern systems which are mostly personal workstations, and it
	is better to use the "limit" command in the CSH (or equivalent)
	to do this outside of IRAF, under user control.
	3. In kernel.h, increased the default WSS to 8 Mb and the builtin
	max WSS to 256 Mb.  These values are used only on platforms where
	ZAWSET can't determine the value from the UNIX kernel, e.g. using
	getrlimit.  Assuming MAXWORKSET is not defined (see below) the
	max WSS value compiled into the IRAF kernel, e.g. 256 Mb, will
	however serve as an upper limit on the amount of memory reported
	as available to an IRAF task.
	4. Added support for an environment variable "MAXWORKSET".  This
	value if defined sets an upper limit on the working set reported
	to a task via ZAWSET (or BEGMEM).  This can be used to override
	the builtin upper limit.  If the platform supports getrlimit and
	a memoryuse limit is defined which is less than MAXWORKSET, the
	getrlimit value will be used instead: this the current limit,
	as opposed to the maximum limit.  The units of MAXWORKSET are Mb,
	e.g. "setenv MAXWORKSET 32" sets the maximum working set to 32 Mb.
	Since MAXWORKSET is used by the host-level kernel code it must be
	set in the host environment, not in IRAF.

	A quick survey of SunOS, Solaris, and OSF/1 shows that the system
	default getrlimit returns the amount of available physical memory
	(57 Mb) on OSF/1, but an "unlimited" value (2 Gb) on the Sun systems.
	The OSF/1 value is what zawset ideally wants to return, i.e. the
	maximum amount of physical memory available to the process before
	paging occurs.  This can be difficult to determine on many unix
	platforms and currently the builtin kernel limit of 256 Mb will be
	what is returned on platforms like SunOS/Solaris that don't report
	the physical memory value.  With further research we may be able to
	find a way to do reliably return the correct value on platforms
	like Sun, however this can be a very system dependent feature to
	implement.  In the meantime the MAXWORKSET environment variable,
	or "limit" in the cshell (etc.) can be used to fine tune ZAWSET on
	platforms that can't determine the max physical memory.  (5/02)

unix/hlib/zzsetenv.def
	Changed "gterm" to "xgterm" for the default values of stdgraph
	and terminal.  (5/03)

sys/gio/fpequald.x
sys/gio/fpequalr.x
	The comparison could fail if either operand was zero and the other
	was a very small nonzero number.  (5/10)

------------------------------
V2.10.4 distribution (beta test for the NOAO servers) prepared.  (5/10/95)

unix/hlib/login.cl
	Added a note about the trailing "!" needed for "set node =" in
	V2.10.4.  (5/11)

sys/etc/xerpop.x
unix/hlib/libc/libc.h
	Changed the C construct {XERPSH();stmt;}if(XERPOP()) to
	{XERPSH();stmt;}if(XERPOPI()), and added a new routine XERPOPI to
	xerpop.x.  The original construct was incorrect as it was treating
	the result of the boolean function xerpop() as an integer.  (5/12)

------------------------------
V2.10.4 distribution upgrade prepared.  (5/14)

pkg/cl/scan.c
	Fixed a nasty bug in the scan code affecting scans into a string
	parameter; the string buffer was being improperly referenced.  This
	bug has been in place since the scan code was modified on 12/29/94
	but evidently was never seen as IRAF is not exercised enough on
	tucana.  Showed up right away when V2.10.4 moved to the user nodes.
	(5/15)

unix/os/zawset.c
	On Solaris it turns out that setrlimit, when used to set the soft
	memory limit, sets a hard limit on memory allocation for the process,
	causing malloc requests to fail if the set limit is exceeded.  This
	is not really the point of begmem/zawset, so the code was modified
	to only call setrlimit if one attempts to increase the current "soft"
	memory limit.  Requests for less working set than the soft limit
	do not result in a call to setrlimit, and the routine merely indicates
	that the requested space is available.  (5/15)

unix/hlib/zzsetenv.def
	Updated "version" to 2.10.4EXPORT.  (5/19)

unix/hlib/spy.cl
	Rewrote spy.cl to work on both BSD and SYSV systems (SunOS and
	Solaris in the case of Solaris/IRAF).  (5/19)

------------------------------
V2.10.4 distribution upgrade prepared.  (5/21)

dev/hosts
	Added Tod Lauer's machine seurat to hosts file on all servers (5/25 MJF)

sys/imio/db/imgnfn.x
	This code supported, for keyword selection, only naxis[1-3].  Added
	support for axes up to 7.  (5/26)

sys/fmtio/evvexpr.gy
	1. Modified the conditional expression code (xvv_quest) to consider
	the dimension of the condition operand as well as that of the two
	data operands when computing the dimension of the expression result.
	For example, if the condition is a vector but the two data operands
	are scalars, the expression result should be a vector (formerly it
	was a scalar).  The datatype of the expression is still determined
	solely by the datatypes of the two data operands.
	2. The condition operand for a conditional expression may now be any
	integer type, i.e. short or long as well as int, in addition to bool.
	If int is permitted it doesn't make much sense to exclude short and
	long.
	3. The logical not code (e.g. "!a") was modified to permit integer
	class operands (short, int, long) as well as boolean.  (5/27)

------------------------------
V2.10.4 distribution upgrade prepared.  (5/29)

dev/hosts
	Corrected path name to irafks.e for pyxis on all servers (5/31  MJF)

dev/hosts
	Added lonestar and tribble to all downtown servers (6/6 MJF)

------------------------------
IRAF V2.10.4 system copied to iraf.export and V2.11 development begun.  (6/12)

unix/hlib/motd
unix/hlib/zzsetenv.def
    Develop system version number incremented to V2.11.  (6/12)

pkg/images/geometry/t_geotran.x
pkg/images/geometry/geotran.x
pkg/images/geometry/geotimtran.x
	Fixed a bug in the buffering of the x and y coordinate surface
	interpolants which can cause a memory corruption error if, the
	nxsample or nysample parameters are > 1, and the nxblock or nyblock
	parameters are less than the x and y dimensions of the input image.
	Took the opportunity to clean up the code. (6/13/95, LED)


pkg/math/curfit/cvpower.gx
pkg/math/curfit/cvpowerr.x
pkg/math/curfit/cvpowerd.x
pkg/math/curfit/doc/curfit.hd
pkg/math/curfit/doc/curfit.men
pkg/math/curfit/doc/cvepower.hlp
	Added the new routine cvepower to the curfit math library. Cvepower
	computes the errors in the power series coefficients equivalent
	to the fitted Legendre and Chebyshev coefficients. Cvepower is
	available in both real and double precision versions. (6/13/95, LED)


pkg/images/fmedian.hlp
pkg/images/fmode.hlp
pkg/images/median.hlp
pkg/images/mode.hlp
pkg/images/fmedian.par
pkg/images/fmode.par
pkg/images/median.par
pkg/images/mode.par
pkg/images/filters/fmedian.h
pkg/images/filters/fmode.h
pkg/images/filters/median.h
pkg/images/filters/mode.h
pkg/images/filters/t_fmedian.x
pkg/images/filters/t_fmode.x
pkg/images/filters/t_median.x
pkg/images/filters/t_mode.x
pkg/images/filters/fmedian.x
pkg/images/filters/fmode.x
pkg/images/filters/median.x
pkg/images/filters/mode.x
pkg/images/filters/fmd_buf.x
pkg/images/filters/fmd_hist.x
pkg/images/filters/fmd_maxmin.x
pkg/images/filters/med_buf.x
pkg/images/filters/med_sort.x
	Added minimum and maximum good data parameters to the fmedian, fmode,
	median, and mode filtering tasks.  Removed the 64X64 kernel size limit
	in the median and mode tasks.  Replaced the common blocks with
	structures and .h files.  (6/20/95, LED)

pkg/images/frmedian.hlp
pkg/images/frmode.hlp
pkg/images/rmedian.hlp
pkg/images/rmode.hlp
pkg/images/frmedian.par
pkg/images/frmode.par
pkg/images/rmedian.par
pkg/images/rmode.par
pkg/images/filters/frmedian.h
pkg/images/filters/frmode.h
pkg/images/filters/rmedian.h
pkg/images/filters/rmode.h
pkg/images/filters/t_frmedian.x
pkg/images/filters/t_frmode.x
pkg/images/filters/t_rmedian.x
pkg/images/filters/t_rmode.x
pkg/images/filters/frmedian.x
pkg/images/filters/frmode.x
pkg/images/filters/rmedian.x
pkg/images/filters/rmode.x
pkg/images/filters/med_utils.x
	Added new ring median and modal filtering tasks frmedian, rmedian,
	frmode, and rmode to the images package.  (6/20/95, LED)

doc/ports/notes.osf1		+
	Added notes file from DEC Alpha OSF/1 port.  (6/21)

sys/fio/fioclean.x
sys/fio/stropen.x
	Two new internal routines str{set,get}mode were added to stropen.x.
	These are used to set or query the file access mode as stored for
	the string file, which represents these in a file-dependent way.
	fio_cleanup was modified to force the access mode of a string file
	to READ_ONLY before closing it during file cleanup, to prevent the
	writing of the trailing EOS when closing a string file opened for
	writing.  The latter could cause a segmentation violation if the
	string buffer was no longer in a mapped region of memory, as is
	possible if the string file is still open (i.e. not closed normally)
	following task termination when fio_cleanup is called.  This problem
	was found when testing the OSF/1 version of IRAF.  (6/21, merged from
	OSF1 revision of 6/06)

dev/termcap
	Added "lp" as an alias for "lpr".  (6/26)

dev/hosts
	Added solstice to the downtown servers (tucana,ursa,gemini,orion,bigx)
	at Ed Anderson's request (6/26 RLS)

unix/hlib/mkpkg
	Changed "mkshlib.csh" references to "./mkshlib.csh" to make the
	script more robust in cases where the user has the path screwed
	up.  (7/03)

dev/tapecap
	Added support for device mtc|mtcc for BIGX, an HPDAT drive using the
	ST driver.  Also generic device st-hpdat, the HPDAT on ST.  (7/18)

dev/hosts
	Added aten, volans, & musca to all servers, deleted vegemite (7/18 MJF)

dev/hosts
	Added soleil to all downtown server at Ed Anderson's request. (7/27 MJF)

sys/fmtio/strdic.x
	Was not ignoring leading whitespace on the string to be tested, when
	computing the length "len" of the string.  (7/31)

pkg/proto/t_wcsreset.x
        Added an error check to the mw_openim command so wcsreset can erase
        the world coordinate systems of images with wcss that it cannot
        read correctly. (1/8/95, Davis)

pkg/xtools/inlfit/incopy.gx
pkg/xtools/inlfit/incopyr.x
pkg/xtools/inlfit/incopyd.x
	Changed 4 MEMP (Memi) references to Mem$t references. (02/8/95, Davis)

dev/tapecap
	Modified gemini entry to change WangDat to an HP drive.  (8/10)

sys/fio/zzdebug.x
	Replaced the t_ndopen debug task by a more recent version.  (8/28)

lib/gio.h
sys/gio/gplcache.x
sys/gio/gctran.x
	The WCS transformation caching mechanism used in gctran was not
	reliable and could fail in some cases where the WCS was changed more
	frequently than gctran was called.  To make caching of WCS related
	information more robust a new field GP_WCSORD was added to the GIO
	descriptor.  This is set to a unique integer ordinal when a WCS is
	fixed.  If the ordinal changes any routines that cache WCS information
	should invalidate their cache (unless they cache it on the basis of
	WCSORD).  WCSORD will differ for WCS stored in different graphics
	descriptors, so testing WCSORD also does an implicit test that the
	GP has changed.  (8/28)

sys/mwcs/iwewcs.x
	Modified so that if an image contains a partial Lterm consisiting
	of an LTV but no LTM, the missing LTM will default to the identity
	matrix instead of the zero matrix (the latter causes a segvio if you
	try to invert it).  An image with a zero LTM is illegal but MWCS
	should not die with a segvio in this case.  (8/29)

sys/imio/immaky.x
sys/imio/mkpkg
	When copying an image section IMIO will call MWCS to update the Lterm
	of the output image.  This requires that it load any existing WCS
	so that it can be modified and written out to the output image.  IMIO
	was modified to put the mw_open in an iferr block, printing a warning
	message if the WCS cannot be loaded, rather than aborting the immap.
	Aborting means that all IRAF imaging tasks fails to access the image
	if it contains a WCS of a type not supported by IMIO.  (8/29)

sys/mwcs/iwgbfits.x
	The code which reads in multiline FITS strings (WATi_j etc.) would
	always read 68 characters per card.  This was changed to read at
	most 68 characters, terminating if newline, EOS, or a single closing
	quote is seen in the input data.  This allows the string on a line to
	be less than 68 characters.  It also avoids a bug seen with non-blocked
	headers where the cards may contain less than 80 characters.  (8/29)

sys/mwcs/iwpstr.x
	The final card of a multi-card string is no longer blank filled, i.e.
	the closing quote will appear at the end of the string instead of in
	column 80.  (8/30)

sys/mwcs/mwsaveim.x
	The code which puts spaces between a sequence of attribute=value
	keywords in a WCS attribute list was improved to avoid an unnecessary
	space at the end of the list (spaces are now only used between the
	members of the list).  (8/30)

sys/imio/db/impstr.x
	When writing a string valued parameter the code checks for a trailing
	quote and tries to add one if it is missing.  The closing quote is
	omitted if it would overwrite a data character - it isn't required
	when reading cards unless the string ends before column 80.  (8/30)

sys/mwcs/mwsave.x
	The DBUF offset in the save header was not being aligned to double.
	(8/30)

-------------------------------------
V2.10.4 patch 1 generated.  (8/30)

doc/rev2.hlp
	Renamed this file to rev2.txt, it is not a help file.  (9/03)

unix/boot/bootlib/osfiletype.c
	Added ".gz" to the list of "source" file types.  Also added ".fit"
	as an alias for ".fits".   (9/03)

mkpkg
noao/mkpkg
	Added entries for linux and linuz architectures.  (9/06)

unix/hlib/strip.iraf
noao/lib/strip.noao
	Replaced by updated versions, some files moved around and others
	have been added.  (9/06)

local/.cshrc
	Added "." and moved /usr/lang up in the hierarchy.  (9/21)

hlib/extern.pkg
	Added the helpdb for the finder package on gemini and ursa.  The
	package is still loaded through the nlocal package.  (10/12 RLS)

sys/mwcs/imwcs.h
	CROTA was being stored internally as an integer, causing small
	truncation errors of non-integral rotational angles.  (10/18)

dev/graphcap
dev/imtoolrc
	Added a new 8192x8192 frame buffer (imt7|imt8192).  Redefined the
	old imt7 (imt4x1) as imt19.  (11/01)

pkg/images/tv/imexamine/ierimexam.x
pkg/images/tv/imexamine/stfmeasure.x +
pkg/images/tv/imexamine/starfocus.h +
pkg/images/tv/imexamine/mkpkg
pkg/images/tv/doc/imexamine.hlp
lib/src/imexamine.key
	New FWHM estimates based on the enclosed flux and a direct
	measurement were added to the 'a' and 'r' keys.  The weights for
	the Gaussian fit were modified to reduce the influence of pixels
	outside the half-maximum radius.  The ? help and help page were
	revised to described the new output and algorithms.  (11/09)

dev/hosts
	Added 'inti' to all downtown servers.  (11/20  MJF)

pkg/images/median.par
pkg/images/rmedian.par
pkg/images/mode.par
pkg/images/rmode.par
pkg/images/fmedian.par
pkg/images/frmedian.par
pkg/images/fmode.par
pkg/images/frmode.par
pkg/images/doc/median.hlp
pkg/images/doc/rmedian.hlp
pkg/images/doc/mode.hlp
pkg/images/doc/rmode.hlp
pkg/images/doc/fmedian.hlp
pkg/images/doc/frmedian.hlp
pkg/images/doc/fmode.hlp
pkg/images/doc/frmode.hlp
pkg/images/filters/t_median.x
pkg/images/filters/t_rmedian.x
pkg/images/filters/t_mode.x
pkg/images/filters/t_rmode.x
pkg/images/filters/t_fmedian.x
pkg/images/filters/t_frmedian.x
pkg/images/filters/t_fmode.x
pkg/images/filters/t_frmode.x
	Added a verbose parameter to the median, rmedian, mode, rmode, fmedian,
	frmedian, fmode, and frmode tasks. (11/27/95, Davis)

dev/hosts
	Corrected path to irafks.e for cephus on all servers (11/30 MJF)

unix/boot/spp/xpp/xppcode.c
	Modified XPP to make keyword recognition case sensitive.  Keywords
	such as "int", "char", "procedure", etc. must be lower case to be
	recognized.  This permits macros to use the upper case versions of
	these keywords.  (12/05)

pkg/cl/debug.c
	Added INDXINCR and PUSHINDEX to the debug code.  (12/14)

pkg/cl/builtin.c
pkg/cl/compile.c
pkg/cl/debug.c
pkg/cl/exec.c
pkg/cl/grammar.y
pkg/cl/main.c
pkg/cl/opcodes.c
pkg/cl/opcodes.h
pkg/cl/prcache.c
	1. Fixed minor bugs in the CL array code which showed up on the 64bit
	DEC Alpha.  The array code had builtin assumptions about the size of
	structures stored in CL memory, but on 64 bit systems the CL stack
	and dictionary have a 64 bit memel size, rather than 32 bit.

	2. Added a new builtin "d_trace" which permits instruction and
	process tracing during execution.  Typing d_trace without any
	arguments toggles this feature.  An optional argument 0 or 1 may be
	used to disable or enable instruction tracing.  A source line trace
	feature might have been nicer, but instruction tracing should still
	be of use for tracking down bugs in scripts, or otherwise revealing
	what is going on when the CL executes a task.  (12/16)

sys/fmio/zzdebug.x
	Added a parameter to the create datafile task to allow specification
	of FM_MAXPTPAGES (max page table pages), for testing large datafiles.
	(12/18)

dev/hosts
	Added new solaris machine oso to all servers. (1/29/96 MJF)

pkg/images/imarith/imexpr.gx
	Modified imexpr so that it will accept an image name that looks like
	a number in the first few characters, but which is really an image
	name.  For example, "123.imh" or "../foo.imh".  The previous version
	of imexpr was treating any string which looked like a number in the
	first few characters as a numeric constant.  (2/8/96 LED  2/14 DCT).

dev/hosts
	Eliminated all references to /gemini and /ursa since all machines
	have been updated such that /iraf is the correct path.  Merged all
	changes from other servers to tucana so all hosts files are now
	identical, new machines added include ozzie, verdi, corondito and
	pearl.kpno.  Backups of previous files will be maintained. (2/14 MJF)

pkg/images/geometry/t_geotran.x
pkg/images/geometry/geograph.x
pkg/images/doc/geomap.hlp
         Corrected the definition of skew in the routines which, compute the
	geometric interpretation of the 6-coefficient fit, compute the
	coefficients from the geometric parameters, and in the relevant help
	pages.  (2/19/96, LED)

sys/fio/zzdebug.x
	Spiffed up the "daytime" debug/test task to permit entry of a host
	name, so that one can use this to find out what time it is at some
	site halfway around the world.   (2/23)

pkg/images/tv/imexamine/iejimexam.x
pkg/images/tv/jimexam.par
pkg/images/tv/doc/imexamine.hlp
	There were several errors in this which only showed up when using a
	world WCS.  The parameter prompt and help now indicate the initial
	sigma value is in pixels even when fitting in world coordinates.
	(2/27/96, FV)

pkg/images/tv/imexamine/iemw.x
	The inverse WCS function was incorrect and is fixed.  (2/27/96, FV)

pkg/dataio/doc/rfits.hlp
	Added a note about support for unsigned short integers to the
	rfits help page. (2/27/96, LED)

pkg/xtools/icfit/icvshow.gx
pkg/xtools/icfit/icshow.x
pkg/xtools/icfit/icerrors.gx
	All output except the tabular part of :xyshow now begins with
	the comment character.  (2/29, Valdes)

pkg/utilities/curfit.gx
	Removed repeated output and added a comment character to the table
	header line.  (2/29, Valdes)

dev/hosts
	Changed GONG machines soi/mdi to use bin.ssun after solaris upgrades.
	(3/8/96  MJF)

sys/fmio/fmio.h
sys/fmio/fmlfopen.x
sys/fmio/fmlfbwr.x
sys/fmio/fmlfbrd.x
sys/fmio/fmioextnd.x
sys/fmio/fmclose.x
	1. Changed the lfile pagemap (LF_PAGEMAP) from type short to int.
	This is entirely an internal array, created at lfile open time from
	the global pagemap, and never written out, so there should be no
	problem changing the datatype of the array.  A type short lfile
	pagemap limits the maximum datafile size by limiting the max file
	offset to 32K datafile pages.  This is not a problem for the global
	page table as the global table stores the lfile number in each PTE,
	with the offset of the PTE entry giving the associated file offset
	(page number).
	2. Increased the default lfile pagemap size and increment on
	overflow.  (3/11)

lib/qpset.h
sys/qpoe/qpoe.h
sys/qpoe/qpstati.x
sys/qpoe/qpseti.x
sys/qpoe/qpopen.x
sys/qpoe/qpmacro.x
sys/qpoe/qpbind.x
	Added a new parameter "maxptpages" (QPOE_MAXPTPAGES) to QPOE.  This
	is a datafile control parameter similar to "maxlfiles" or "pagesize".
	The pagesize and matptpages together determine the maximum datafile
	size.  In the past we have had to increase the pagesize to accomodate
	very large datafiles, but beyond a certain point it is better to
	increase the maximum page table size (maxptpages).  Since QPOE files
	can be very large it is necessary to allow control of this parameter
	from within QPOE.  (3/11)

dev/hosts
	Added Doug Geisler's machine kukita to all servers. (3/11/96  MJF)

sys/fmtio/dtoc.x
	Added some rounding to avoid printing numbers such as 12:29:60.0
	when formatting sexagesimal (HMS or MS) numbers.  (3/12)

sys/mwcs/iwewcs.x
	Modified the code which computes the CD matrix from CDELT/CROTA.
	The old code computed the diagonal (scale) terms correctly but the
	rotation terms were evidently incorrect.  The old code was based on
	the 1988 Hanisch and Wells WCS paper and the new code is based on a
	more recent paper by Mark Calabretta et. al. which supercedes the
	1988 representation.  The affect of this change should be limited
	as it only affects rotated images for which CDELT is given but no
	CD matrix is defined.  (3/13)

pkg/images/tv/src/iecolon.x
pkg/images/tv/src/starfocus.h
pkg/images/tv/src/stfmeasure.x
pkg/images/tv/src/ierimexam.x
pkg/images/tv/rimexam.par
pkg/images/doc/imexamine.hlp
lib/scr/imexamine.key
	The radial profile fitting and width measurements now have an option to
	use a Gaussian or Moffat profile model.  The model is selected by a
	new "fittype" parameter.  A new "beta" parameter may be specified as
	INDEF to be determined from the fit or have a fixed value.  The Moffat
	profile model does better in producing consistent FWHM values so
	this is the default.  (3/16, Valdes)

math/gsurfit/gsrestore.gx
math/gsurfit/gsrestorer.x
math/gsurfit/gsrestored.x
	Changed the type declaration of the xmin, xmax, ymin, ymax variables
        from real to PIXEL to avoid machine precision problems.  (3/21 Davis)

pkg/cl/builtin.c
	Modified the clprintf code to support INDEF operands.  (3/23)

pkg/images/tv/imedit/epsearch.x
pkg/images/tv/imedit/epgcur.x
	1.  The search algorithm produced incorrect results if part of the
	    aperture was off the edge (negative image coordinates).
	2.  The rounding was incorrect when part of the aperture was off the
	    edge (negative image coordinates).
	3.  A floating operand error occurs when a key is given without
	    coordinates.
	(3/26, Valdes)

pkg/plot/t_implot.x
	When the vector being plotted was constant the 'l' and 'c' keys
	selecting lines/columns from the right plot axis did not work.  The
	code was fixed for this case. (3/27, Valdes)

pkg/images/geometry/xregister/rgxfit.x
        Changed several Memr[] references to Memi[] in the rg_fit routine.
        This type conversion bug was causing a floating point error
	in the xregister task on the Dec Alpha machines if the coords file
	was defined, and could potentially cause problems on other machines.
	(Davis, April 3, 1996)

unix/os/gmttolst.c
unix/boot/bootlib/ostime.c
	Removed the type long variables gmtl, lstl and modified all calls to
	localtime() so that the argument is of type time_t.  This is standard
	for all modern systems.  Some older systems still require that the
	argument be type long, but as this is nonstandard it should be
	ifdef-ed in the source for these older systems.  (4/04 1996)

unix/hlib/libc/libc.h
	The macros Memcptr and Memiptr included a "+ 1" which shouldn't have
	been there.  The one indexing correction was already being done in
	the Memc/Memi macros and Memcptr/Memiptr take a zero indexed C pointer
	as input.  This was causing a bug in LIBC version of realloc, which
	is not used anywhere in the IRAF system code.  (4/05)

pkg/images/tv/imexamine/ierimexam.x
pkg/images/tv/imexamine/stfmeasure.x
	Fixed incorrect datatype declaration "real np" -> "int np" in various
	related places.  (4/9/96, Valdes)

unix/os/zmain.c
	Added a #ifdef SYSV conditional to change the calling sequence for
	setpgrp() for SYSV and BSD systems.  (4/24)

sys/imio/iki/plf/plfopen.x
	Fixed an imerr() call which had the wrong argument type.   (5/06)

sys/libc/realloc.c
	Modified to work when called with a null pointer.  (5/06)

sys/gio/stdgraph/stgdrawch.x
	The text drawing routines were not controlling the polyline width
	when drawing characters in software mode using polylines.  There is
	no line width attribute for graphics text and we probably don't want
	one, so the code was modified to force the line width to 1 when
	drawing software characters.  (5/10)

unix/boot/bootlib/osgetenv.c
	The envinit code calls _os_getenv to fetch the value of "pkglibs".
	This code assumes that _os_getenv returns the string argument, but
	nothing was being returned if the named environment variable was not
	found.  Changed it to return a NULL-terminated empty string in this
	case.  (5/10)

sys/etc/mkpkg
sys/etc/onentry.x
sys/etc/main.x
unix/os/zmain.c
	1. The IRAF main (irafmn) was changed to an integer function and
	modified to return an exit status.  If a task aborts and the main
	exits without running any more tasks (as when executing a task at
	the host level where only a single task is run) then the error status
	of the task is returned.  In normal use as a connected process this
	condition never occurs and the main always returns XOK as the status.

	2. Several calls to sys_panic in various etc$ routines were modified
	to ensure that a zero error code is not returned.  sys_panic returns
	the error code as the exit status of the process.

	3. The process main (zmain.c) was modified to call IRAF_MAIN as an
	integer function and to return its exit status.
	4. The call to exit() in zmain.c was changed to _exit().  (5/11)

pkg/plot/t_graph.x
pkg/plot/graph.par
pkg/plot/doc/graph.hlp
	Added parameters "ltypes" and "colors" to specify a list of line types
	and colors when doing multiple data sets.  (5/13, Valdes)

----------------------------------------
V2.10.4 patch 2 release.  (5/22 1996)

unix/boot/bootlib/envinit.c
	Fixed a typo in some code that went "printf (stderr, ...)" (should be
	fprintf), also changed following fflush to flush stderr. (5/27)

unix/boot/bootlib/vfn2osfn.c
	Deleted some unneeded semicolons from some stub routines, e.g. in
	"KI_SEND(){};" the ; should not be there.  (5/27)

unix/boot/generic/mkpkg.sh
unix/boot/mkpkg/mkpkg.sh
unix/boot/rmbin/mkpkg.sh
unix/boot/rmfiles/mkpkg.sh
unix/boot/rtar/mkpkg.sh
unix/boot/wtar/mkpkg.sh
unix/boot/spp/mkpkg.sh
unix/boot/spp/mkxc.sh
unix/boot/rpp/mkpkg.sh
unix/boot/xpp/mkpkg.sh
unix/boot/xyacc/mkpkg.sh
	Replaced HSI_CF by HSI_LF in the link line (5/28)

unix/hlib/irafuser.csh
	Added a dummy definition of HSI_LF (not used in SunOS/IRAF but is
	needed on other platforms).  (5/28)

unix/boot/rmfiles/mkpkg.sh
	Added a (char *) declaration for vfn2osfn().  (5/28)

pkg/cl/grammar.h
pkg/cl/globals.c
	Added global definitions for parse_state, proc_script, and parse_pfile
	to globals.c and modified grammar.h to define these as extern (found
	with the IRIX 5.3 port).  (6/03)

pkg/obsolete/<imcombine> -
	The old (V2.9) IMCOMBINE task was removed. (6/14 FV)

pkg/obsolete/t_fixpix.x +
pkg/obsolete/fixcol.gx +
pkg/obsolete/t_fixline.gx +
pkg/obsolete/ofixpix.par +
pkg/obsolete/doc/ofixpix.hlp +
pkg/obsolete/mkpkg
pkg/obsolete/x_obsolete.x
pkg/obsolete/obsolete.cl
pkg/obsolete/obsolete.hd
pkg/obsolete/obsolete.men
	Moved the V2.10.4 version of PROTO.FIXPIX to OBSOLETE and renamed
	it to OFIXPIX.  (6/14 FV)

pkg/proto/generic/	+
pkg/proto/imfunc.x -> generic/
pkg/proto/imrep.x -> generic/
	Added a generic directory for generic files.  The generic procedures
	imfunc.x and imrep.x are now in this directory.  (6/14 FV)

pkg/proto/t_fixpix.x
pkg/proto/fpfixpix.gx
pkg/proto/fixpix.par
pkg/proto/text2mask.par	+
pkg/proto/t_text2mask.x	+
pkg/proto/t_mask2text.x	+
pkg/proto/doc/fixpix.hlp
pkg/proto/doc/text2mask.hlp	+
pkg/proto/mkpkg
pkg/proto/x_proto.x
pkg/proto/proto.cl
pkg/proto/proto.hd
pkg/proto/proto.men
	Replaced the old version of FIXPIX by a new version that works with
	mask images.  Two new tasks were also added, TEXT2MASK and
	MASK2TEXT, that convert from the old text file description to mask
	images and back.  The MASK2TEXT task is hidden to discourage
	continued use of the text file description.  (6/14 FV)

unix/boot/spp/xc.c
	Fixed a couple bugs in the PKGENV processing code.  (7/05)

doc/ports/notes.irix		+
	Installed the notes file from the IRIX 5.3 port.  (7/07)

unix/os/irafpath.c
	Added entries for Solaris, Linux, FreeBSD.  (7/17)

unix/os/zfaloc.c
unix/os/zfiobf.c
	Changed type of lseek() to off_f.  (7/17)

unix/boot/spp/xpp/xppcode.c
	Changed warn() to a static function.   (7/17)

mkpkg
noao/mkpkg
	Added an entry for the "freebsd" architecture.  (7/17)

pkg/images/filters/median.x
	The routine mde_yefilter was being called with too many arguments.
	(7/18 LED)

pkg/xtools/inlfit/ingresults.gx
	Changed several INDEFR references to INDEF references so that INDEF
	as the correct data type (real or double) in the output .x files.
	(7/18 LED)

sys/gio/fpequald.x
sys/gio/fpequalr.x
	Backed off the tolerance slightly, from 10*EPSILON to 32*EPSILON.
	(7/25)

sys/imfort/bfio.x
	In zfaloc, the first arg to strpak was changed from fname (a Fortran
	character variable which was incorrect) to sppname.  (7/17(26))

pkg/images/imarith/icsort.gx
	There was an error in the ic_2sort routine when there are exactly
	three images that one of the explicit cases did not properly keep
	the image identifications.  See buglog 344.  (8/1 FV)

dev/hosts
	Revised the list of Kitt Peak hosts.  (8/7 RLS)

pkg/proto/fields.par
pkg/proto/doc/fields.hlp
	Changed the default lines in FIELDS to an open upper limit.  (8/22 FV)

pkg/images/tv/imexamine/stfmeasure.x
	Fixed bug in evaluation of enclosed flux profile in which the scaled
	radius was used for the gaussian subtraction stage instead of pixels.
	This does not currently affect IMEXAM because the scale is fixed
	at 1.  (8/29, FV)

unix/os/zfnbrk.c
	Modified this routine to ignore file or directory characters other
	than those it considers to be file or directory name delimiters.
	On platforms that permit it, the effect is to permit characters (such
	as + and -) in filenames other than simple identifier characters.
	There is no expectation at this point however that all IRAF code will
	permit this.  (9/03)

dev/hosts
	Updated the hosts file on all Tucson servers for rainbow, Jim
	Deveny's new Sun.  (9/10/96 jb)

pkg/system/phelp.cl
	Modified to copy the "template" argument into a local variable since
	it is referenced twice in the script.  (10/10)

sys/fio/fioclean.x
	The file descriptor was being accessed after the file had been
	closed.  (10/11)

unix/os/zfiond.c
	Added a ":<flag>" field to the ND network driver.  The only protocol
	flags currently supported are "text" and "binary".  If "text" is
	specified then the datastream is assumed to consist of byte packed
	ascii text, and the driver will automatically convert to and from
	SPP chars during i/o.  (10/29)

sys/fio/zzdebug.x
	Added a new debug task "http".  Given a hostname and a HTTPD-root
	relative file path the task will connect to the HTTP server on the
	given host and fetch the file at the given path.  The output
	consists of the HTTP/1.0 protocol header followed by a blank line
	and the contents of the requested file.  (10/29)

pkg/images/tv/wcslab/t_wcslab.x
pkg/images/tv/doc/wcslab.hlp
	Added an "overplot" option to append to a plot but with a different
	viewport.  (11/06/96 Valdes)

pkg/images/imarith/t_imcombine.x
pkg/images/imarith/icombine.gx
	Changed the error checking to catch additional errors relating to too
	many files.  (11/12/96, Valdes)

dev/hosts
	Added driftwood to all downtown servers. (11/18/96 MJF)

dev/hosts
	Updated block of KPNO hosts on solaris tree on Gemini.
	This was up to date on development system.  (11/19/96 RLS)

sys/fmtio/sscan.x
sys/fmtio/fscan.x
sys/fmtio/clscan.x
sys/fmtio/scan.com
	Modified scan.com to dimension scanbuf locally as SZ_SCANBUF instead of
	SZ_COMMAND, in the process increasing the size from 1024 to 4096.
	Modified sscan to check for overflow of the scan buffer.  (11/19)

sys/ki/ki.h
	Increased maximum network hosts in the in-core host table from 128 to
	256.  (11/21)

pkg/images/tv/imedit/epgsfit.x
pkg/images/tv/imedit/epcolon.x
pkg/images/tv/doc/imedit.hlp
pkg/images/tv/imedit/imedit.par
	Added a median background if the xorder or yorder is zero.
	(11/22/96 Valdes)

dev/hosts
	Cleaned up the hosts table: Deleted
	    adonis	  aldebaran	auriga
	    columba	  crater	irafdemo
	    libra	  noctua	octans
	    omega	  serpens	suntest
	    verdi	  vela
	Fixed path names for mytoy and scorpius (11/21/96 MJF)

pkg/images/imarith/icsetout.x
pkg/images/doc/imcombine.hlp
	A new option for computing offsets from the image WCS has been added.
	(11/30/96 Valdes)

pkg/images/tv/display/sigm2.x	+
	Added a version of the spatial interpolation routines that allows masks
	to interpolate the input across bad pixels. (12/5/96, Valdes)

pkg/images/tv/display/t_display.x
	1.  Fixed numerous problems with the coordinate system.
	2.  Fixed a bug in how ztrans=log was done.
	(12/5/96, Valdes)

pkg/images/tv/display/iishdr.x
pkg/images/tv/display/iisers.x
	Replaces SPP int -> short assignments by calls to achtiu because of
	overflow problems with some VMS fortran compilers.
	(12/6/96, Valdes as reported by Zarate)

pkg/images/tv/display/imdmapfr.x
pkg/images/tv/display/imdputwcs.x +
	Added two routines to hide knowledge of the channel structure and
	other details from the calling routines.  (12/11/96, Valdes)

dev/hosts
	Changed hohokam to ssun, updated all servers w/ master copy from
	tucana to remove hosts and fix /gemini path names. (1/7/97 MJF)

dev/hosts
	Changed the following SWN machines to bin.ssun:
	    aquarius 	    aten 	bokchoy
	    carina (new)    hedgehog 	herbie
	    inti 	    mdi 	potosi
	    soi 	    soleil
	Updated all servers. (1/15/97  MJF)

pkg/xtools/dttext.x
	Added the routine dtgetd to the text database package. (1/16/97 LED)

dev/hosts
	Changed norma to a solaris box.  (1/24/97  MJF)

unix/boot/bootlib/osfiletype.c
	Added several entries for files considered to be "source" files.
	These include .pl, .gif, .jpeg, and .tiff (.fits is already present).
	There are cases where it may make sense to include these files in
	the machine indendent source tree, e.g. for small test data files
	or for online help.  (1/11)  1997

dev/hosts
	Added George's linux box aloe to all servers.  (2/13/97  MJF)

unix/boot/spp/xpp/decl.c
unix/boot/spp/xpp/xppcode.c
	The recent change of warn() to static in xppcode.c caused a problem
	as warn is also used in decl.c.  Changed warn() back to an external
	function but changed the name to xpp_warn to avoid whatever the
	platform-specific problem was that resulted in the original fix
	(probably warn was an internal function in some platform system
	library).  (3/03)

sys/mwcs/wfmspec.x
	On line 327, changed  din=log10(in[1])  to  din=log10(din).  (3/04)

--------------------------------
Did a diff/merge of recent tucana HSI changes into the Solaris/IRAF HSI.
Replaced the "unix" directory on tucana SunOS/IRAF by the version from
Solaris/IRAF.  This HSI is supposed to work for both SunOS and Solaris
(SunOS compatibility was preserved but never tested during the Solaris/IRAF
port).  Did a bootstrap and sysgen under both SunOS and Solaris.

Mounted tucana iraf.develop as iraf.develop on Data.  tucana iraf (irafx)
is now solaris/iraf as well as sunos/iraf, they are the same thing.  One
benefit of this is that irafx is now available on solaris systems in the
building (although we do have to update the ssun binaries periodically or
it does no one any good).   A complication is that since we have to update
the ssun binaries, it is now more likely that the architecture may be set
to something other than sparc.  (3/19 1997)

local/.cshrc
local/.login
	Modified to work for both SunOS and Solaris.  (3/19)

unix/as.sparc/enbint.s
	This file from Solaris/IRAF isn't used by SunOS/IRAF, but it is
	probably better to provide it in the library than to add conditionals
	to the build files in OS.  (3/19)

unix/boot/bootlib/osfiletype.c
unix/boot/bootlib/vfn2osfn.c
unix/boot/spp/xpp/decl.c
unix/boot/spp/xpp/xppcode.c
unix/hlib/libc/kernel.h
unix/os/irafpath.c
unix/os/zfaloc.c
unix/os/zfiobf.c
unix/os/zfiomt.c
unix/os/zfiond.c
unix/os/zlocpr.c
unix/os/zzstrt.c
	Assorted minor changes to make these files work for both SunOS
	and Solaris.  (3/19)

unix/shlib/medit.c
unix/shlib/mkpkg
unix/shlib/mkpkg.sh
unix/shlib/mkshlib.sos4
unix/shlib/mkshlib.ssol
unix/shlib/mkshlib.ssol-sc34
	Various file modifications and file name changes to make shlib
	build for both SunOS and Solaris.  (3/19)

pkg/math/curfit/cvacpts.gx
pkg/math/curfit/cvacptsr.x
pkg/math/curfit/cvacptsd.x
pkg/math/curfit/doc/cvpower.hlp
pkg/math/curfit/cvpower.gx
pkg/math/curfit/cvpowerr.x
pkg/math/curfit/cvpowerd.x
	The weights computed by the WTS_CHISQ option in the routines
	cvacpts[rd] were not being forced to be positive as intended.  (3/20)

	There was an inconsistency in the way the ncoeff argument to the
	cvpower[rd] routines was being used internally. Ncoeff was intended
	to be an output argument but was being used as an input argument by
	one of the routines called by cvpower.  (3/20)

sys/mtio/mtgtyopen.x
	MTIO was modified to add support for server-specific tapecap files.
	When opening the tapecap file MTIO will now look for "tapecap.<node>"
	followed by the default "tapecap".  <node> should be the hostname
	(as used by IRAF networking) of the server hosting the tape drives
	described by the tapecap file.  For example if host "gemini" serves
	up some tape drives it's tapecap file is named "tapecap.gemini".
	If a server-specific tapecap file is not found the default "tapecap"
	(on the possibly remote server node) is used.  This feature allows
	a single IRAF installation to be shared by multiple servers.  (3/21)

dev/README
dev/tapecap.sunos		+
dev/tapecap.solaris		+
	Since the Sun/IRAF DEV is now shared by both SunOS and Solaris it
	now contains the template tapecap files for both systems.  The README
	in DEV contains some pointers on configuring tapecap and other device
	files.  (3/21)

pkg/images/tv/display.par
pkg/images/tv/display/t_display.x
pkg/images/tv/display/zscale.x
pkg/images/tv/display/sigm2.x	+
pkg/images/tv/display/maskcolor.x	+
pkg/images/tv/display/dspmmap.x	+
pkg/images/tv/display/display.h
pkg/images/tv/display/gwindow.h
pkg/images/tv/display/mkpkg
pkg/images/tv/doc/display.hlp
	1.  Improved the structure of DISPLAY.
	2.  Fixed coordinate system errors.
	3.  Added parameters to display bad pixel masks and overlay masks.
	4.  The z scaling sampling may use a pixel mask or image section.
	5.  The z scaling excludes bad pixels.
	(3/20, Valdes)

--------------------------------
The following series of revisions were made to increase the size of various
system buffers.  This included a full system reboot and recompile.  (3/24)

lib/fio.h
sys/fio/vfnmap.x
sys/fio/vfntrans.x
	Various buffer sizes affecting filename mapping were increased.
	SZ_VFNFN (max length of the root field of a VFN) went from 32 -> 127.
	SZ_OSDIR (max length of the osdir field of a VFN) from 79 -> 255.
	SZ_FFNAME, an internal filename buffer, went from 127 -> 255.
	In an unrelated change SZ_SPOOLBUF, the intial size of a spool
	buffer, was increased from 1024 to 4096.  (3/23)

unix/hlib/config.h
	1. MAX_ROOTLEN was increased from 32 to 128.  This is supposed to be the
	limit the host system places on the root portion of a filename (that
	is, only the root name, not the pathname).  Anything in the range
	128-256 is typical for unix systems today.
	2. The maximum number of open VOS files was increased from 128 -> 256.
	(3/23)

sys/fio/fntgfn.x
	SZ_PATTERN, SZ_TEMPLATE, SZ_LDIR, SZ_PATSTR were all increased,
	although so far as I know there has never been a case of pattern
	buffers overflowing.  The new limit for a pattern string is about
	1024.  (3/23)

unix/hlib/iraf.h
	SZ_FNAME went from 63 -> 255.
	SZ_PATHNAME went from 127 -> 511.
	SZ_LINE went from 161 -> 1023.
	SZ_COMMAND went from 1024 -> 2047.  (3/23)

unix/hlib/iraf.h
unix/hlib/mach.h
	MAX_EXPONENTD went from 38 (same as real) to 308, the value for
	IEEE double.  MAX_DOUBLE increased from 0.99d37 to 0.99d307.
	INDEFD was changed from 1.6d38 to 1.6d308 for IEEE systems.  (3/23)

unix/hlib/libc/libc.h
unix/hlib/libc/spp.h
	FIO_MAXFD, INDEFD, SZ_LINE, SZ_FNAME, SZ_PATHNAME, SZ_COMMAND were
	updated to agree with the SPP values.  (3/23)

sys/imio/iki/stf/stfrdhdr.x
	Unrelated STF bug fix.  stfrdhdr.x was modified to handle the case
	where datamin/datamax were not defined in the GPB, but were defined
	in the main image header.  (3/24)

unix/boot/spp/xpp/xppmain.c
	Removed a redundant SZ_PATHNAME.  (3/24)

unix/shlib/mkpkg
unix/shlib/mkshlib.sos4
	Changed the address of the shared library from 0xa000000 to 0x10000000.
	This increases the maximum available per-process dynamic memory from 
	167 MB to 268 MB (much more is possible if the process is statically
	linked).  (3/24)

unix/os/zzstrt.c
	Changed some address-related ints to unsigned just to be safe.  (3/24)

sys/etc/pagefiles.x
	Increased SZ_LONGLINE from 1024 to 4096.  At 1024 it was the same as
	the new SZ_LINE, causing a loop test to fail.  (3/25)

pkg/images/tv/rimexam.par
pkg/images/tv/doc/rimexam.par
	Changed the zero point of the magnitude scale from 30.0 to 25.0
	for the sake of consistency with other photometry tasks. (3/31, LED)

pkg/images/tv/imexamine/ierimexam.x
	The log output for 'a' or 'r' has one line per measurement as in
	previous versions.  The standard output, however, uses two lines to
	print nicely on 80 column windows.  (3/31, FV)

pkg/dataio/mkpkg
pkg/dataio/dataio.cl
pkg/dataio/dataio.hd
pkg/dataio/dataio.men
pkg/dataio/x_dataio.x
pkg/dataio/import/                  +
pkg/dataio/import.par               +
pkg/dataio/export/                  +
pkg/dataio/export.par               +
pkg/dataio/doc/import.hlp           +
pkg/dataio/doc/export.hlp           +
    	Installed the IMPORT/EXPORT task for general use.  The images database
    	used by the IMPORT task is currently defined to be stored in
	dataio$import/images.dat.   (3/31/97 MJF)

pkg/proto/proto.cl
pkg/proto/proto.men
pkg/proto/proto.hd
pkg/proto/x_proto.x
pkg/proto/mkpkg
	The tasks imalign, imcentroid, imfunction, imreplace, wcsedit, and
	wcsreset have been deleted from the proto package and moved to the
	reorganized images package. (3/31/97 LED)

lib/imhdr.h
lib/imio.h
	The sizes of the pixel file, header file, title and imhistory strings
	were increased.  Defines were added for the image header file and
	pixel file "magic' strings.  A couple fields were added relating to
	byte swapping.  IM_SWAPPED, in the image header, tells whether the
	pixels in the disk image are byte swapped.  (3/31)

sys/imio/iki/oif/imhv1.h
sys/imio/iki/oif/imhv2.h
sys/imio/iki/oif/mkpkg
sys/imio/iki/oif/oif.h
sys/imio/iki/oif/oifmkpfn.x
sys/imio/iki/oif/oifopen.x
sys/imio/iki/oif/oifopix.x
sys/imio/iki/oif/oifrdhdr.x		+
sys/imio/iki/oif/oifupdhdr.x
sys/imio/iki/oif/oifwrhdr.x		+
sys/imio/iki/oif/oifwphdr.x		-
	It was necessary to change the OIF kernel to increase the maximum
	path length for header and pixel files.  This made it necessary to
	change the disk image format, since the old format only allowed 80
	characters for the pixel file pathname.  In the process reading and
	writing the disk header was separated out from the in-memory
	header.  Support for two versions of the image and pixel file
	headers were added.  The "magic" string in the image or pixel file
	header identifies the version.  Old (version 1) image headers have
	"imhdr" at the head of the file, with the string in SPP chars.  The
	new (version 2) headers have "imhv2" as the magic string.  V2 headers
	are byte packed and machine independent.  The path limit is 255.
	(3/31)

sys/imio/immaky.x
sys/imio/imrdpx.x
sys/imio/imwrpx.x
	1. Support was added for byte swapping pixels.  With the machine
	independent V2 image header, this allows .imh images to be read on
	any node (integer) or any IEEE-compatible node (floating).  The
	pixels are written in the native swap order of the creating host,
	but the order is recorded in the IM_SWAPPED field of the image header,
	and IMIO uses this to determine whether or not the pixels need to
	be byte swapped during i/o.
	2. Minor changes to trim junk data after EOS delimited strings.
	Since the V2 headers are byte packed the string data in these headers
	can be viewed with Unix tools such as "less" and "strings".  (3/31)

	Some pointers: "strings foo.imh" (or other tools like less) can be
	used at the Unix level to look at V2 image headers.  New images are
	always written with host-native binary format pixels, so there is no
	byte swapping involved for images read and written on the same
	host.  Images can any other (IEEE) host can be read or written but
	there may be some slight overhead for byteswapping.  If the image is
	rewritten however using imcopy, the bytes will be swapped to the
	native ordering of the new host.

pkg/images/imutil/src/imheader.x
	The only change so far was to eliminate some histogram dependence,
	since this unused feature was removed from the standard IMIO in-memory
	image header.  (3/31)

dev/pix.imh
dev/pix.pix
dev/wpix.imh
	Regenerated using the V2 image format.  (3/31)

lib/imio.h
sys/imio/immapz.x
sys/imio/immaky.x
unix/hlib/zzsetenv.def
unix/hlib/login.cl
	Increased the default size of the user area (min_lenuserarea) to
	64000 (about 800 80 char cards).  There was some ambiguity about
	units for min_lenuserarea; it should be consistently chars now.
	Also increased the "padding" added to the header when creating a
	new copy of an existing image which has a large header.  (4/01)

sys/imio/immaky.x
	When the header of an old image is copied during an open-new-copy,
	IMIO now recomputes the length of the user area of the input header.
	Formerly if the header had grown since the image was opened, the
	added data could be lost in a subsquent new-copy operation.  (4/01)

sys/etc/oscmd.x
	Changed an fclobber(outfile) to fclobber(errfile).  (4/02)

sys/imfort/bfio.x
	The little Fortran-callable file i/o package BFIO used in IMFORT
	was enhanced to support writing and reading of fractional file blocks
	so that files can be any size.  The default random and sequential
	buffer sizes were increased.  In addition to the old random access
	i/o routines bfread/bfwrite there are now sequential i/o routines
	bfseek/bfrseq/bfwseq.  (4/02)

sys/imfort/mkpkg
sys/imfort/imfort.h
sys/imfort/imhv1.h		+
sys/imfort/imhv2.h		+
sys/imfort/oif.h
sys/imfort/imcrex.x
sys/imfort/imfgpfn.x
sys/imfort/imfupdhdr.x
sys/imfort/imgl1r.x
sys/imfort/imgl1s.x
sys/imfort/imgl2r.x
sys/imfort/imgl2s.x
sys/imfort/imgl3r.x
sys/imfort/imgl3s.x
sys/imfort/imgs1r.x
sys/imfort/imgs1s.x
sys/imfort/imgs2r.x
sys/imfort/imgs2s.x
sys/imfort/imgs3r.x
sys/imfort/imgs3s.x
sys/imfort/imopnx.x
sys/imfort/impl1r.x
sys/imfort/impl1s.x
sys/imfort/impl2r.x
sys/imfort/impl2s.x
sys/imfort/impl3r.x
sys/imfort/impl3s.x
sys/imfort/imps1r.x
sys/imfort/imps1s.x
sys/imfort/imps2r.x
sys/imfort/imps2s.x
sys/imfort/imps3r.x
sys/imfort/imps3s.x
sys/imfort/imrdhdr.x		+
sys/imfort/imswap.x		+
sys/imfort/imwpix.x		+
sys/imfort/imwrhdr.x		+
	1. IMFORT was brought up to date with IMIO to read and write the new
	version 2 ".imh" images.  As with IMIO, the old V1 format is still
	supported but new images are written using the new machine independent
	V2 format.
	2. Image headers can now be any size (the old IMFORT had a very
	strict limit on the image header size).  Since BFIO now writes partial
	blocks, headers are no longer blocked out to 32768 bytes.
	3. "min_lenuserarea" is now supported as for IMIO (since IMFORT is
	host level it must be defined in the host environment).  The builtin
	default header buffer is 64000 chars, which is about 800 card images.
	(4/02)

sys/imfort/mii.x		+
	A version of the MII routines mii{read,write}[silrc] modified to
	use BFIO was added to IMFORT.  These are used to read and write the
	machine independent headers.  (4/02)

dev/hosts
	Aliased 'kf' for kingfisher at Al Fowler's request (4/3 MJF)

lib/qpioset.h
lib/syserrmsg
sys/qpoe/qpio.h
sys/qpoe/qpoe.h
sys/qpoe/qpiogetev.x
sys/qpoe/qpiogetfil.x
sys/qpoe/qpiomkidx.x
sys/qpoe/qpioopen.x
sys/qpoe/qpioparse.x
sys/qpoe/qpiorpix.gx
sys/qpoe/qpioseti.x
sys/qpoe/qpiostati.x
sys/qpoe/qpiosync.x
	QPOE was modified to allow event coordinate (X,Y) key fields to be
	of type int as well as short.  All event handling code will now
	accept either type.  Keys may be specified using "i" as the field
	type as well as "s", e.g. "key=(i10,s14)".  X and Y do not have to
	be the same type.  There should be no significant CPU runtime
	penalty, although obviously events with integer coordinate fields
	will mean larger event files (file i/o times will be affected
	accordingly).  (4/03)

lib/qpioset.h
lib/qpset.h
sys/qpoe/QPOE.hlp
sys/qpoe/README
sys/qpoe/qpcopyf.x
sys/qpoe/qpio.h
sys/qpoe/qpiogetfil.x
sys/qpoe/qpiolwcs.x
sys/qpoe/qpioopen.x
sys/qpoe/qpioparse.x
sys/qpoe/qpioseti.x
sys/qpoe/qpiostati.x
sys/qpoe/qpmacro.x
sys/qpoe/qpoe.h
sys/qpoe/qpopen.x
sys/qpoe/qpqueryf.x
sys/qpoe/qpseti.x
sys/qpoe/qpstati.x
sys/qpoe/zzdebug.x
	Added support for separate X and Y blocking factors.  The "block"
	parameter is still recognized as before and will set both the X and
	Y blocking factors, or "xblock" and "yblock" can be used to set only
	one or the other.  All occurrences have been updated, including
	expressions, the QPDEFS environment, and qp_set qpio_set.  (4/04)

sys/qpoe/qpiorpix.gx
	[INTERFACE CHANGE]
	The calling sequence for qpio_readpix was modified to replace the
	"block" argument by the two arguments xblock and yblock.  A scan
	indicates that none of the layered packages we have installed at
	NOAO (including xray) currently uses this routine.  (4/04)

sys/plio/plrio.x
	The plrio package provides an efficient lookup-table-based means of
	randomly sampling 2D pixel masks.  The code which recursively divides
	a region into 4 quadrants could fail if the region being subdivided
	was 1 pixel wide in either axis.  If this happens 2 of the "quadrants"
	will be valid and 2 will be degenerate.  Added a test to detect and
	discard these degenerate subregions.  (4/04)

sys/plio/plsectne.x
sys/plio/plsectnc.x
	Both of these routines had a bug that could prevent them from
	examining the full region requested (the routines check for section
	not empty and section not constant).  Line lists are segmented in
	segments of at most I_DATAMAX (4095) pixels.  If the mask is large
	and has large regions of constant value, the list will consist of
	successive segments all at the same value.  The routines were only
	checking the first such segment.  The corrected code reads successive
	segments until all the pixels in the region have been examined.  (4/04)

sys/plio/zzdebug.x
	Fixed a couple of bugs and added several new routines to test the
	above fixes.  SECNE and SECNC test pl_sectnotempty and pl_sectnotconst.
	RIO tests plrio random mask access.  INVERT inverts a mask.  (4/04)

sys/imio/implhdr.x
	These routines, which copy an image header to and from an encoded title 
	string in a PLIO save file, were modified to save the ctime, mtime,
	limtime, minpixval, and maxpixval static fields of the image header
	in addition to the title string.  (4/04)

sys/qpoe/qpexeval.x
	The value of "pass" was not being initialized before starting
	subprogram execution when evaluating a complex LUT bin.  Added the
	initialization and also some comments giving an overview of how the
	evaluation is performed (since it took me several hours to figure
	this out again).  (4/04)

sys/imio/iki/qpf/qpfcopypar.x
sys/imio/iki/qpf/zfioqp.x
sys/imio/iki/qpf/qpfopen.x
sys/imio/iki/qpf/qpf.h
	Modified to support separate x and y blocking factors.  (4/05)

sys/plio/plupdate.x
	This routine contains code which collapses successive mask lines
	in Y to a single encoded mask line if the mask lines are equal,
	thereby compressing the encoded mask in Y.  The encoded mask lines
	are encoded in short integer arrays and a multiply referenced
	line has a reference count which is stored in a short integer field.
	The code was modified to stop when this counter reaches MAX_SHORT,
	adding a new line to the encoded mask and starting over.  Combined
	with the X segmentation of lines into blocks of at most 4095 pixels,
	this should allow masks to be nearly any size despite the use of
	short integers for the encoding.  (4/05)

sys/qpoe/qpiolwcs.x
	Modified the LTV_2 term of the logical transformation to set the
	fractional pixel zero point resulting from blocking the input data.
	If for example 2 input pixels map to 1 on output, the range of the
	output pixel (e.g.  0.5 to 1.5) maps to the range covered by the two
	input pixels (e.g.  0.5 to 2.5), and the center of the output pixel
	(e.g.  x = 1.0) maps to the center of the range spanned by the input
	pixels (e.g. 1.5).  For 3 to 1, 1.0 maps back to 2.0 in the input,
	for 4 to 1, 1.0 maps back to 2.5, and so on as (block+1)/2.  (4/05)