summaryrefslogtreecommitdiff
path: root/xsane.CHANGES
blob: 6eb2476a6a920a1fbc320016c91daa13d6d226e9 (plain)
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
CHANGES FOR FRONTEND XSANE FOR SANE:
------------------------------------

xsane-0.11 beta and before:
---------------------------

 - based on gtk-1.0.x
 - histogram
 - online color enhancement
 - gamma table: tested with
   - 8, 10 and 12 input bits per color
   - 8 output bits per color
 - standard and advanced options in own (non scrollable) window
 - photocopy function via postscript output (gray + color, not lineart)
 - frontend/Makefile.in changed for xsane


xsane-0.11 -> 0.12:
-------------------

 - added ps, jpeg and png(1+8bit) output format, selected by filename
 - added lineart support for ps 
 - changed configure.in and config.h.in and included them into xsane
 - changed device selection dialog: scanner vendor and model added
 - added xsane-logo (winner from gimp-contest) to device-selection and about-window,
   it is loaded from SANE_DATA_PATH/sane/xsane-logo.xpm (/usr/local/share/sane/...)
 - histogram window now always exists and may be hidden
 - changed handling of devicename given as commandline option:
   sane_get_devices is called and the vendor, model and type get identified,
   if the given device name does not fit to the beginning of an existing device name
   the device selection is opened


xsane-0.12 -> 0.13:
-------------------

 - file format detection now works with case insensetive
 - changed font for device selection
 - changed output format of device list for selection
 - disabled gamma table for 1 bit grayscale (lineart)
 - improved error handling of saving routines
 - removed ram eater in preview routine
 - added default gamma upload into preview scan routine
 - added tiff-output-format
 - changed lineart to grayscale conversion in saving-routines
 - added test if selected output format is supported before scan



xsane-0.13 -> 0.14:
-------------------

 - added info window that displays hidden options/values
 - xsane compiles without sane-source-package now,
   sane must be installed.
 - if scan is started with save for unsupported graphics format
   an error message comes up before scanning is started
 - tested for param.depth>1 for gamma correction
 - added test for sane major version number, abort if mismatch


xsane-0.14 -> 0.15:
-------------------

 - if device is given as commandline option it is now loaded again
   if it is not in the devicelist
 - moved some functions in xsane.c out of a #ifdef HAVE_LIBGIMP .. #endif-block
 - added sliders in the gray/red/green/blue-levels for black/gray/white points
 - gamma correction in preview is now only done if depth > 1
 - enhancement sliders are not shown in lineart mode any more


xsane-0.15 -> 0.16:
-------------------

 - moved save-routines to xsane-save, named xsane* to xsane-*
 - included progress-routines into xsane.c
 - moved xsane.h to xsane-text.h
 - moved definitions and external used function headers to xsane.h
 - added test for depth > 1 before calculating preview histogram
 - added test for preview_gamma_data_red before calculating preview histogram
 - added test for preview_gamma_data_red before doing preview gamma correction
 - added p->image_data_raw = malloc(3*p->image_width*p->image_height);
   in xsane-preview.c/scan_start
 - added authorization_callback routine
 - renamed a lot of routines * -> xsane_*
 - added p->previous_selection.active = FALSE; draw_selection(p);
   to preview_gamma_correction to redraw selection
 - added preview_update(p); to scan_done in xsane-preview.c to reactivate selection
 - added header for saving >8bpp raw data (SANE_GRAYSCALE_RAW, SANE_RGB_RAW)
 - added 16 bit saving routines for pnm(ascii), png and raw
 - added 16 bit routines to xsane_read_image_data, added 16 bit gamma software support


xsane-0.16 -> 0.17:
-------------------

 - xsane-gtk.c moved free(elem->menu); elem->menu = 0; in panel_destroy out of
   the for-loop
 - added some #ifdefs #endifs around saving routines for TIFF, PNG and JPEG
 - added BIT_DEPTH as well known option, preview sets this value to 8 if it is greater than 8
 - added range checks in calculation for auto enhancement values
 - calculation of auto enhancement values is not called in lineart mode any more


xsane-0.17 -> 0.18:
-------------------

 - added quit_xsane in xsane_choose_dialog_ok_callback if no device was opened
 - added sane_get_parameters(..) in xsane_scan_dialog
 - added xsane_increase_counter_in_filename to xsane-save.[ch]
 - Filename counter is automatically increased after scan
 - Changed setup_dialog callbacks, cancel does work now
 - zoomfactor is calculated now if copy mode is selected
 - added tooltips for xsane setup options
 - changed "destroy"-event of authorization dialog to "delete_event"
 - in gsg_message made the ok button default
 - added gsg_decision routine
 - added overwrite warning
 - postscript images are saved in original size in scan mode now


xsane-0.18 -> 0.19:
-------------------

 - added cancel callback routine for conversion/saving routines
 - printer_resolution now is set if OK is pressed in setup
 - overwrite warning is not shown in copy mode any more
 - changed fclose to pclose for closing pipe to printer command
 - restored xsane.resolution in xsane_pref_device_restore
 - added Help menu, called Netscape -remote to open help-files
 - set sensetivity of xsane dialog and histogram dialog while
   scan and preview scan to false
 - added some help(html) files to the doc directory


xsane-0.19 -> 0.20:
-------------------

 - improved online help
 - added own version number for xsane, there are three version
   numbers now:
   - xsane version
   - sane version
   - package version (e.g if there is a package of different frontends)
 - added gamma value (gray, red, green, blue) for printer (copy mode)
 - changed sane-style.rc -> xsane.style.rc
 - changed PATH_SANE_DATA_DIR -> old PATH_SANE_DATA_DIR/sane
 - preview gamma correction is done by the xsane gamma correction instead of
   the Xserver gamma correction, there are also values for red, green and blue
   now.
 - spilt setup window into notebook pages
 - replaced in xsane_pref_set_unit_callback preview_update by preview_area_resize,
   the ruler units are updated now if unit is changed
 - made menue length unit inactive if length unit is pixel
 - added dialogs for batch scan list and fax page list, but not finished and disabled
 - changed local includes from <...> to "..."
 - test for filetype is only done in scanmode now
 - added list of (up to 10) printers for photocopy mode 
 - added error messages if failed to open files
 - added sigpipe_handler for handling broken pipe while writing to printercommand


xsane-0.20 -> 0.21:
-------------------

 - in xsane-preview.c if backend does not use scanareaselection dev_selection[i]
   is set to width/height of image
 - replaced most sprintf by snprintf
 - made menue length unit inactive if scanare is nut supported by the backend
 - set maximum value in 16 bit saving routines to 16 bit/65535
 - 1 bit/pixel png file is saved with 1 bit/pixel instead of 8 bit/pixel now
 - added support for gtk-1.2
 - font are set in xsane-style.rc now


xsane-0.21 -> 0.22:
-------------------

 - split xsane.c in:
   - xsane.c
   - xsane-setup.c
   - xsane-gamma.c
   - xsane-front-gtk.c
   - xsane-scan.c
 - renamed xsane-gtk.c to xsane-back-gtk.c
 - removed libtool from package
 - added experimental fax support

xsane-0.22 -> 0.23:
-------------------

 - changed configure.in, removed some unnecessary parts
   and added error messages if gtk or sane is not installed

 - removed copy-mode resolution bug (was not changed if zoom slider was moved)
 - removed bug in faxmode if faxproject did not exist (fclose(0))
 - changed definition of struct xsane and struct xsane_setup
 - added documentation-viewer-command to setup, netscaperemote is selected
   via the keyword "netscape-remote"

xsane-0.23 -> 0.24:
-------------------

 - removed some bugs in gamma value calculation for real scan (preview was ok)
 - added activation for some windows after scan error
 - removed bugs in startup if no device is available or selected,
   the xsane.rc-file keeps untouched now


xsane-0.24 -> 0.25:
-------------------

 - moved xsane_pixmap_new as xsane_create_histogram from xsane-front-gtk.c to
   xsane-gamma.c
 - now putting the histogram sliders directly into the slider preview instead
   of drawing into the preview window, the sliders are not erased by other
   other windows now
 - added block_update_param flag, the update_param and update_histogram routines
   are now called only one time if the preview scan area is changed
 - added changing of one edge in preview scanarea (left mousebotton near the edge)
 - added moving of preview scanarea (middle or right mousebutton)
 - moved creation of histogram dialog to xsane-gamma.c
 - removed some bugs in the preview, resizing the preview window should work now
 - added an experimental zoom for the preview


xsane-0.25 -> 0.26:
-------------------

 - removed some preview_update calls or replaced them by preview_update_selection
 - renamed preview_update to preview_update_surface and made surface_changed a parameter
 - ruler scaling is now ok in resized windows and zoomed previews
 - added some range checks in preview_calculate_histogram
 - parts in the preview window that are not part of the scan area are painted gray now
 - added image_surface to preview structure, it stands for the surface of the scanned preview image
 - renamed preview_get_image_scale to preview_get_scale_preview_to_image
 - added routine preview_get_scale_device_to_preview
 - added Zoom 20% out routine
 - the selected area can be larger than the viewable preview now
 - added Pipette functions (pick black, gray and white) - mouse pointer does change to pipetty icon
 - p->aspect is calculated by image-size now if the surface is not defined (INF) in
   preview_update_surface
 - preview_update_surface is called now after preview scan and preview_restore_image
 - moved the "Help" menu in the main dialog to the right


xsane-0.26 -> 0.27:
-------------------

 - added scantips and index of backends to help menu
 - changed configure.in, libpng should be found on (all ?) systems now
 - black and white point sliders use the two additional pixels now
 - user can preset (reduce) the preview area now
 - added "Select visible area" button
 - removed some bugs in gray gamma value calculation for real scan (preview was ok)
 - setup of faxoptions: normal, fine and postscript option is saved now


xsane-0.27 -> 0.28:
-------------------

 - added option negative into enhancement and changed create_gamma
   draw_histogram and auto_enhancement to work with it!

 - increased contrast range from -100..+100 to -100..+200
   and brightness range from -100..+100 to -200..+200
   because the old values were not sufficent for scanning negatives

 - added selection for number of copies in copy mode


xsane-0.28 -> 0.29:
-------------------

 - removed bug in xsane_set_resolution that could cause a segmentation fault
 - added support for resolution of type CONSTRAINT_WORD_LIST 
 - xsane-mode (scan, copy, fax) can be selected as command line option (-s, -c, -f) now
 - most texts that are defined in xsane are defined in xsane-text now


xsane-0.29 -> 0.30:
-------------------

 - removed bug in xsane_set_resolution, now highest resolution can be set if
   resolution is a list!
 - added RGBI support - must be activated in xsane.h (SUPPORT_RGBI)
 - added options rgb default and negative to preferences
 - enhancement values are saved with device settings now
 - The filename can be specified now for the file in which the device settings are saved
   or from which they are loaded.
   - changed extension from ".rc" to ".drc" (device rc)
   - added header "XSANE_DEVICE_RC" to identify it as device-rc-file
 - added calculation for color components to auto enhancement
 - pipette functions: middle mouse button defines shadow/gray/highlight
   for color components, left mouse button only defines gray values!
 - auto enhancement values are set to standard values in
   xsane_calculate_histogram if no values could be calculated
 - histogram is cleared when sensitivity is set to false
 - improved calculation of auto enhancement values
 - increased contrast range from -100..+200 to -100..+300 (gray) and
   -300..+300 (color) and brightness range from -200..+200 to -300..+300


xsane-0.30 -> 0.31:
-------------------

 - changed filename character transformation: erase " ", "_" -> "__", "/" -> "_"
 - device settings standard file name is vendor:model
   so it does not matter any more if the sg-device name has changed
 - the xsane main window can be a fixed or a scrolled, resizable window now.
   selection is done with setup/display/"main window fixed",
   the main window mode can be overwritten by specifying a command
   line option:
   -R or --Resizeable activates the resizeable, scrolled window,
   -F or --Fixed activates the fixed (non resizable) window (default)
 - histogram is cleared when info dialog or about dialog is opened
 - changed version option from -V to -v
 - added support for Automatic Document Feeder (scan until error)
   this is experimentary because in the SANE-standard there is
   no way defined how a frontend can identify an ADF.
   The backend has to load the next document automatically!
 - in xsane_enhancement_update replaced gtk_signal_emit_by_name
   by gtk_signal_emit
 - moved more texts to xsane-text.h
 - changed all RGBI -> RGBA because the 4th channel is ALPHA
   I think that SANE_FRAME_RGBA will be added to the sane standard
 - gtk+-1.2.0 is minimum requirement: removed tests for
   gtk_tooltips_set_tips, gtk_scrolled_window_add_with_viewport
   and gtk_events_pending that were needed for gtk+-1.0.x
 - added option "--device-settings file" to define default
   filename for device-settings
 - corrected "legal" size in preview
 - added device_text to info and preview window title
 - moved color definition to xsane_creat_histogram_dialog
 - pixmap colors depend on histogram_dialog now because
   the histogram dialog is the first dialog that exists
 - renamed all gtk functions like defined in gtkcompat.h
   (gtk+-1.0.x -> gtk+-1.2.x)
 - removed bug in device selection, device can be selected
   now with keyboard
 - xsane info window prints gamma depth "none" in 1 bit modes


xsane-0.31 -> 0.32:
-------------------

 - added option --no-mode-selection/-s to disable menu for
   xsane mode selection
 - prepared text outputs (in xsane-text.h) for NLS/gettext support
 - multiple \n in scanf while reading saved preview image removed
 - added AM_PROG_CC_STDC to configure.in for HP/UX
 - added a break statement after each default in switch block
 - changed test for multiple image scan, when sane_read returned with
   SANE_STATUS_GOOD when the image is finished we start a new scan,
   SANE_STATUS_EOF is expected when scanning should be stopped.
   This way the Automatic Document Feeder is supported a way
   like planned in the sane standard, the backend says
   if the frontend shall call sane_start repeatadly.


xsane-0.32 -> 0.33:
-------------------

 - removed change about SANE_STATUS_GOOD in multiple image mode.
   Adf mode is detected by scanmode again. This would be better
   selected by a mulit_image bit in the preferences block.
 - added common rotuine xsane_set_sensitivity to xsane-front-gtk.c
 - renamed xsane_test_adf to xsane_test_multi_scan


xsane-0.33 -> 0.34:
-------------------

 - the preview selection is based on device coordinates instead of
   preview window coordinates now
 - added preview buttons and preview viewport to xsane_set_sensitivity
 - info and about dialog use xsane_set_sensitivity now
 - dummy_filename is created and opened for writing AFTER sane_start is called.
 - sane_start() == NO_DOCS is not handled as error any more
 - xsane_scan_done -> sane_cancel is called now if an error occurs
 - if an error occurs while scanning the created file is removed
 - xsane windows/buttons get inactive while setup dialog is open
 - xsane_scan_done -> sane_cancel is called when main window is closed
   (while scanning)
 - if there are no standard device settings at program startup, xsane
   take the backend predefined resolution (before this was set to 100)
 - if no scanarea options are given, the preview works with
   [0,INF] instead of [-INF,INF] now
 - transformed all gif files in directory doc to jpeg format because of
   all the trouble about the gif licence.  Will never use gif again!


xsane-0.34 -> 0.35:
-------------------

 - corrected doc/Makefile.in for change gif->jpg
 - added tiff compression type selection for multi bit and one bit images to
   setup:
   none, CCITT 1D Huffman compression, CCITT Group 3 Fax compression,
   CCITT Group 4 Fax compression, Lempel-Ziv & Welch, JPEG DCT compression,
   pack bits
 - implemented real single-bit format for tiff
 - setup/jpeg quality selection is enabled if jpeglib or libtiff is available
 - added gimp_image_set_resolution(...) to gimp saving routine
 - added test for libgimp/gimpfeatures.h to configure.in and config.h.in
 - disabled sensetivity while filename browse window is open
 - added handling if fileselection window was closed
 - moved filename "Browse" button from the right to to the left with disk-image inside
 - (added image filetype menu to the image filename line - not ready)
 - replaced button-texts negative, rgb default, auto, default, store and
   restore by icons


xsane-0.35 -> 0.36:
-------------------

 - moved xsane_generate_dummy_filename in xsane-scan.c out of a
   #ifdef HAVE_LIBGIMP_H block
 - changed some icons
 - added #ifdef HAVE_LIBTIFF around TIFF-relevant definitions in
   xsane_setup_dialog in xsane-setup.c
 - included NLS/gettext version 0.10.35
 - texts that are created by xsane can be converted to other languages
   now - texts created by the backend can not be translated yet!
 - added gettext relevant routines to aclocal.m4 and correct some bugs
 - added french translation - thanks to Vincent Renardias <vincent@ldsol.com>
 - added german translation table
 - translation files "*.po" are created by "*.po.in" with help of the
   preprocessor of gcc, all texts are #defined in frontend/xsane-text.h


xsane-0.36 -> 0.37:
-------------------

 - added some texts to xsane-text.h and newlanguage.po.in[.in],
   created file add-0.37.po.in where the new entries are listed
 - moved generation of xsane.backend (backendname like umax)
   from xsane_help_build_menu to xsane_device_dialog, needed for
   translation of backend options
 - added translation for backend options:
   Backend translation is done with translation table sane-BACKENDNAME.mo 
 - removed bug in preview_update_selection()
   (forgotten p->selection.active = TRUE)
   The selection box is updated correct now
 - removed bug in aclocal.m4: not fount "-lintl" when gettext is in glibc


xsane-0.37 -> 0.38:
-------------------

 - changed STANDALONE -> XSANE_STANDALONE and
   GIMP_EXTENSION ->  XSANE_GIMP_EXTENSION because GIMP_EXTENSION
   now (gimp-1.1.10) is used in the Gimp
 - changed brightness and contrast range maximum form 300 to 400 %
 - moved gimp installation texts to xsane-text.h
   added entries to po/newlamguage*
 - xsane -g now does not print anything and does not abort if gimp
   support is compiled in
 - changed lib/Makefile.in and sanei/Makefile in, make install should
   work without a previous make now
 - xsane gimp-plugin is selected via file/acquire now when
   gimp-version >= 1.1.9
 - . removed ../intl/libintl.a form frontend/Makefile.in and
   . added CATOBJEXT=UNKNOWN and XGETTEXT=":" in if "gettext is in libc"
     to aclocal.m4
   hope this solves problems with missing "-lintl" now on all systems
 - moved "show xxx" menu items form menu "Preferences" to menu "View"
 - added continuous update to histogram sliders and preview selection
 - added preferences menu item "Update policy"
 - now options are only changable if SANE_CAP_SOFT_SELECT is set
 - added test for bitdepth in xsane_scan_dialog for GIMP mode,
   error message pops up when unsupported bit depths are selected
 - moved case XSANE_PNM16 out of a #ifdef HAVE_LIBPNG block
 - position of all windows and size of main window and preview window
   is save in device settings, setting preview window geometry
   does not work because window does not exist at relevant times.


xsane-0.38 -> 0.39:
-------------------

 - bounded contrast to >=-100.0
 - Added test if GIMP_CHECK_VERSION is defined


xsane-0.39 -> 0.40:
-------------------

 - device name is saved in drc file now
 - xsane version is saved in drc file now
 - warning is printed if device rc file was not created for active device
 - removed member device from struct preferences - was never used
 - changed frontend/Makefile.in (XSCAN->BINPROGS)
 - changed configure.in:
   - changed order of some checks
   - added status messages at the end
   - added "--enable-intl-patch" which adds -lintl to check for libsane
   - added "--disable-gimp"
   - added "--disable-jpeg"
   - added "--disable-tiff"
   - added "--disable-png"
 - moved xsane_generate_dummy_filename and fopen() into if XSANE_STANDALONE block,
   there is no empty file created in gimp mode any more.


xsane-0.40 -> 0.41:
-------------------

 - renamed xsane-incons.h -> xsane-icons.c and xsane-icons-def.h -> xsane-icons.h
 - moved all includes that are needed by most xsane sources to xsane.h
   problem with missing stdio.h is solved that way
 - changed configure script:
   - check for sane is moved to the end because of missing libintl,
   - check for png is done with x_includes and x_libraries,
     and libpng is added to lib after all checks are done


xsane-0.41 -> 0.42:
-------------------

 - changed configure.in, error message about missing sane is also printed if sane.h
   is not found.
 - changed info row (size box, start button): the start button is made smaller when
   the info box needs more place
 - changed calculateion of size in info row from unisgned long to float
   because unsigned long / 10 were to small to fit A4 with 1200x1200 dpi
 - changed png part of configure, HAVE_LIBPNG is now defined again
 - corrected png lineart saving


xsane-0.42 -> 0.43:
-------------------

 - disabled LZW-compression for TIFF.
   Unisys holds a patent for LZW compression. I am not sure
   about the licence status of LZW and TIFF. GIF is not supported
   because of the licence problem. LZW for TIFF is disabled now.
 - removed all LZW entries in sourcecode and translation tables


xsane-0.43 -> 0.44:
-------------------

 - renamed NOTEBOOK_PRINTER_OPTIONS to NOTEBOOK_COPY_OPTIONS
 - added sane-problems-doc.html to the help menu
 - added functions around "by ext" menu
 - all functions in xsane-back-gtk.c are named with xsane_back_gtk_* now


xsane-0.44 -> 0.45:
-------------------

 - added *s = 0; in sanei_codec_ascii.c when reading a string that
   does not start with '"'

 - added test "if (!w.status)" when reading a string in sanei_load_values.c
   the missing test caused a segfault when a string was expected but
   the line did not start with '"'

 - merged together all needed sanei_* routines in xsane-rc-io.c
   and renamed all sanei_* to xsane_rc_io_*, removed subdir sanei
   and changed xsane.c and xsane-preferences.c to use xsane-rc-io.[ch]
   and reprogrammed some things.

 - renamed all xsane_pref_device_* to xsane_device_preferences_*
   and moved them to xsane-device-preferences.c

 - renamed sanei_w_[load|save]_values to xsane_device_preferencs_[load|save]_values
   and moved them to xsane-device-preferences.c


xsane-0.45 -> 0.46:
-------------------

 - changed xsane_rc_io_w_space: returns ENODATA instead of EINVAL at EOF

 - added xsane_rc_io_w_skip_newline

 - changed xsane_device_preferences_load_values:
   - begin at start of file is only inciated if w.status == ENODATA 
   - if w.status is an other error, the line is skipped

 - moved and renamed w_string, w_int, w_double from xsane-preferences.c
   to xsane_rc_pref_* in xsane-rc-io.c

 - repleaced fprintf/fscanf for reading xsane device preferences by
   xsane_rc_io_w_* routines
   This way the floating point values (xsane- gamma, brightness and contrast)
   are saved different and the *.drc-files are incompatible in that point.

 - added test for lineart mode (depth == 1) in xsane_enhancement_update
   solves segmentation fault problem when device settings with lineart enabled
   are loaded
 

xsane-0.46 -> 0.47:
-------------------

 - if helpfile viewer is netscape-remote and netscape is not running
   it is started

 - replaced ENODATA (used for EOF detection in xsane-rc-io and
   xsane-device-preferences) by XSANE_EOF (=-1)
   (ENODATA is not defined on all systems)

 - If faxproject does not exist, project data entries are made insensitive
   and buttons "send project" and "delete project" are replaced by "create project"

 - Added missing "&" in xsane_device_preferences_save_values:
   xsane_rc_io_w_array(w, &len, (void **) &word_array, (WireCodecFunc) xsane_rc_io_w_word, sizeof(SANE_Word));
   that cause segmentation fault when writing bool, int or fixpoint arrays.
 

xsane-0.47 -> 0.48:
-------------------

 - "START" button is made insensitive in fax mode if project does not exist.

 - Preview window is created at the same time as the main dialog and it is destroyed
   at program end. Disabling "show preview" hides the preview window. This way the preview
   window placement does work correct.

 - set default values in xsane_device_preferences_load_file(char *filename)
   before reading the saved values, show_preview default = true

 - Mouse pointers display relevant mode icons in preview window now.

 - In copy mode the maximum selectable size that fits to the selected printer is drawn
   by a rect now. Selection is limited to the printer size.

 - if no local xsane.rc, xsane-style.rc or DEVICE.drc file exists it is loaded from SANE_DATA_DIR/xsane

 - all xsane rc files are placed in a subdirectory xsane now (~/.sane/xsane, SANE_DATA/DIR/xsane)

 - temporary files (previews, conversions) are saved in /tmp (defined in SANE_PATH_TMP in xsane.h) now

 - added window decoration icon (top left) to each xsane window (does work with kwm, does not work with fvwm2)

 - added warning icon and error icon

 - removed xsane_files_exit_callback, now xsane_scan_win_delete is used for all exit program calls

 - conversion-* and preview-* files are created with permission "-rw-------",
   images- and project-files are created with "preferences.image_umask"
   xsane.rc and *.drc are created with XSANE_DEFAULT_UMASK defined in xsane.h

 - added file permission selection in preferences/saving options for image file and for directory (faxproject)

 - disabled fileoptions (mkdir, rm, mv) in loading/saving preferences


xsane-0.48 -> 0.49:
-------------------

 - added support for different x/y resolutions and zoom factors,
   the y-resolution slider is added to the xsane main dialog now

 - in gimp mode x- and y-resolution infos are set correct now

 - added resolution and zoom icons for x- and y-dimension

 - added fax_width and fax_height to preferences

 - added paper size frame in fax mode preview

 - added czech translation - thanks to by Stanislav Brabec <utx@k332.feld.cvut.cz>

 - changed gimp_install_procedure(...): "RGB, GRAY" -> 0

 - changed printer geometry setup from 1/72 ich to mm

 - added setup entries for fax- width, height, left_offset and bottom_offset

 - corrected terminating \0 of strings in sane_choose_device

 - when button "Negative" is pressed the white/gray/black points
   are also inverted

 - split preview_restore_image into preview_restore_image and
   preview_restore_image_from_file, it can zoom into a saved
   image now.

 - zoom functions are done now without a new preview scan.
   3 different zoom levels are stored.

 - in xsane_scan_start the output file is only opend once in multi pass scan
   three pass scan does work now again.

 - added several missing routines for gamma correction in three pass scan


xsane-0.49 -> 0.50:
-------------------

 - removed bug in calculation of paper size in copy and fax mode

 - added support for rotate image in xsane_save_ps

 - added support for rotate (landscape mode) in copy mode and save-ps mode
   and added preferences menu "Rotate Postscript"

 - added bugfix for gtk_tooltips_set_colors as long as it does not work in gtk

 - improved memory allocation routines and error handling in preview

 - after the main window is created the resolution, resolution_x amd resolution_y
   are made up to date now

 - changed dynamic menue list definition in xsane_setup for TIFF_COMPRESSION menu


xsane-0.50 -> 0.51:
-------------------

 - added some rangechecks to histogram->gamma calculation
   it is done as histogram->gamma->histogram now

 - changed redraw frame in preview_display_partial_image(),
   now the old image is completely overpainted! 

 - added xsane_set_all_resolutions() to xsane_printer_callback,
   now paper size frame is updated when printer is changed

 - corrected wrong error message in setting of scansource_selection
   from "unknown type" to "unknown constraint type"

 - moved xsane.header_size = 0; to the end of xsane_scan_done so it is called in each case
   the missing command was responsible for a segfault when starting a scan after xsane_cancel
   has been called

 - moved progress_bar from it's own window to the bottom of the main window
   progress_bar texts are displayed in info frame and in progress bar

 - added size in mm/cm/in to progress bar when not scanning

 - in scales the number of digits is defined by quantization now, if no quantization is given
   by backend (quant=0, SANE_TYPE_FIXED) x.2 digits are displayed

 - corrected page_step for scales

 - selection_active is reset in preview_display_partial_image instead of preview_paint_image

 - updated czech translation file cs.po.in - thanks to Stansislav Brabec


xsane-0.51 -> 0.52:
-------------------

 - changed gimp_install_procedure(...) for specified device: "RGB, GRAY" -> 0

 - in xsane-scan.c and xsane-preview.c added " | GDK_INPUT_EXCEPTION" to
   gdk_input_add(fd, GDK_INPUT_READ | GDK_INPUT_EXCEPTION, preview_read_image_data, p);

 - added static int xsane_set_modus_defaults(void)
   zoomfactor is set to 1.0 if copy mode is selected
   full preview area is selected if copy or fax mode is selected

 - removed a second xsane_device_preferences_restore(); in static void xsane_device_dialog(void)

 - zoom factor keeps unchanged when printer is changed

 - added psfile-geometry to setup/saving options, it is used when saving postscript in scanmode

 - moved exisiting routines to open functions to xsane-front-gtk.c:
   void xsane_define_output_filename(void);
   void xsane_identify_output_format(char **ext);

 - define_maximum_output_size is called in each routine that changes filename or fileextension
   because the output frame is also drawn in scanmode with filetype postscript now

 - included Stanislav Brabec's <utx@penguin.cz> sed-scripts and changes for Makefile.in in xsane-*/po

 - added creation of newlanguage.po in po/Makefile.in

 - updated german translation file de.po

 - updated czech translation file cs.po - thanks to Stanislav Brabec <utx@k332.feld.cvut.cz>

 - updated french translation file fr.po


xsane-0.52 -> 0.53:
-------------------

 - added test if vendor, model and type strings do exists (pointer != 0)
   otherwise "no vendor",... is printed

 - changed
     ext = &extension;
   to
     if (extension)
     {
       *ext = strdup(extension);
     }
     else
     {
       *ext = 0;
     }
   in xsane_identify_output_format - bad thing, I get old ;-)

 - added new routine xsane_find_best_resolution that makes sure that the selected resolution
   fits into range/quantization given by backend.
   This is used by xsane_set_resolution and when resolution_list is created.

 - added xsane_set_all_resolutions to xsane_set_modus_defaults

 - xsane resolution can be changed by backend now


xsane-0.53 -> 0.54:
-------------------

 - updated french translation table

 - updated german translation table

 - changed type of umask in preferences from mode_t to int because
   sizeof(mode_t) is on some machines only 2 bytes what cause problems.
   all calls of umask(foo) are changed to umask((mode_t) foo)

 - changed preferences update_policy from GtkUpdateType to int.

 - selection box can not be moved out of the preview window, the
   size of the selection keeps unchanged in that case now.

 - removed some gtk_main_iteration and reordered some selection drawing routines.

 - removed unused files/directories from package:
   sanei, include/sane/sanei_(some).h, po_old


xsane-0.54 -> 0.55:
-------------------

 - added preview support for 16 bpp (transformed to 8bpp)

 - added copyright line in devcie selection dialog

 - preview selection frame is only active when backend supports coordinate selection

 - added preview oversampling factor (multiplier for calculated preview resolution)

 - added lineart enhancement: preview can be done in grayscale now,
   threshold value change is displayed without a new preview scan.

 - added "device options" to setup dialog:
   - Scanner dependant options for grayscale->lineart conversion have
     to be entered there.

 - a color preview is now displayed gray when grayscale mode is selected

 - updated de.po, cs.po, fr.po

 - updated po/xsane-pot.sed


xsane-0.55 -> 0.56:
-------------------

 - added hold timer to preview (update-policy=delayed)

 - added hold timer to xsane_slider (update-policy=delayed)

 - moved help menu from file to help

 - added swedish (sv) translation - thanks to Johan Bengtsson <johanb@lls.se>

 - removed bug in xsane_rc_io_w_string, it returns EINVAL now each time when the string
   does not begin with "


xsane-0.56 -> 0.57:
-------------------

 - made xsane_choose_device return type to void (was gint32)

 - arranged device-preferences in struct xsane in the order they are used
   as device preferences, made sure that all variable types are correct:
   - changed type of xsane.mode from gint32 to int
   - changed type of xsane.lineart_mode from gint32 to int
   - changed type of xsane.show_preview from SANE_Bool to int
   - changed type of xsane.enhancement_rgb_default from SANE_Bool to int
   - changed type of xsane.fax_finemode from SANE_Bool to int

 - added mask for *_lock in preview motion_notify_event handling
   Preview selection can be done with locks activated now

 - histogram is cleared before/redrawn after saving/loading device settings

 - added xsane_control_option() that tests if option >= 0 and returns SANE_STATUS_INVAL if not

 - added xsane_get_option_descriptor() that tests if option >= 0 and returns NULL if not

 - changed parameters of preview_area_resize and added preview_area_resize_handler

 - removed a lot of gtk_main_iterations from xsane_preview.c
   they make problems in the redrawing order and can cause display problems


xsane-0.57 -> 0.58:
-------------------

 - split the preview_event_handler into
   - preview_press_button_event_handler
   - preview_motion_event_handler
   - preview_release_button_event_handler

 - the preview_expose_event_handler now is called twice,
   the second call has been placed in the preview_event_handler_before

 - reactivated gtk_main_iteration after at the end of motion_event

 - added warning window when xsane is started as root

 - added selection of temporary directory in preferences/setup/saving options

 - added gdk_input_remove(xsane.input_tag); before xsane_start_scan is called
   in 3-pass scanning mode (suggestion from Heiko_Schroeder@t-online.de)

 - changed output of "xsane -v"

 - in xsane_scan_done moved xsane.header_size = 0; before test for ADF
   Thanks to Russell Coggrave for the info about it.

 - added gtk_set_locale() before gtk_init()

 - added copyright sign "(c)" to translated texts because it is not available on all charsets

 - temporary filenames are created random and unique (mktemp + random number)
   due to security problems with fixed/calculateable tempfiles.

 - the preview-files are created (empty) at program startup now

 - when program exits the previews are erased
   there is no way to store the preview images any more when the program is closed

 - preview_restore_image() creates the xsane-startimage if no preview is stored

 - renamed directory frontend to src

 - create xsane-help script that opens online helpfile


xsane-0.58 -> 0.59:
-------------------

 - preview_do_gamma_correction does test for 3 pass scanner color mode

 - changed fax x-resolution and standard resolution from 98 ppi to 204 ppi
   and with of faxpage from 210.0 to 215.7 (so we get 1728 pixels in x direction,
   hxlafax-faq says that is the correct size)

 - split preferences.printer[..].resolution -> lineart, grayscale and color_resolution

 - added setlocale(LC_NUMERIC, "C"); in xsane_init() and #include <locale.h> in xsane.h
   this should solve the problems with empty images (100%transparent) with gimp
   and other problems that were caused by local settings (1.3 <=> 1,3).

 - added setup-option "disable gimp preview gamma"
 
 - added selection (preferences/setup/enhancement options) if autoenhancement changes gamma value

 - renamed Preferences/Setup/"Device options" to "Enhancement options"

 - removed xsane internal callbacks from dialog struct, the functions are called directly now

 - changed the reading of the preview image header. The last newline character before the image
   data starts again made some problems, this seems to depend on the data that follows. So I added
   a fgets() command to skip the newline character - this seems to work.

 - changed increase_filename_in_counter, does work now if the only character of the base-filename
   is the counter

 - reduced size of src/xsane-startimage.pnm (1MB => 0.6MB)


xsane-0.59 -> 0.60:
-------------------

 - after filename counter is increased the cursor in the outputfilename entry is moved to the right

 - in preview_read_image_data when image is complete:
    preview_update_surface(p, 0);
   is called before
    preview_display_image(p);
   this way the geometry of the first preview scan is correct.

 - moved xsane_set_all_resolutions in xsane_update_xsane_callback(),
   it now also is called when the backend only uses one reesolution

 - added calibration image (xsane-calibration.pnm) that is loaded when setup window is created.
   The xsane enhancement functions are disabled in calibration mode, the image can not be
   resized (xscale = yscale = 1.0).
   The previsous image is reloaded when the setup window is closed again.

 - enviornment variable SANE_DEFAULT_DEVICE is used to activate the radiobutton in the
   device selection menu

 - removed unused item "custom" from preview surface menu

 - changed preview surface menu items:
   A3  -> A3P (portrait)
   A4  -> A4P (portrait)
   A4H -> A4L (landscape)
   A5  -> A5P (portrait)
   A5H -> A5L (landscape)

 - removed script xsane-help, necessary command now is listed in xsane.PROBLEMS


xsane-0.60 -> 0.61:
-------------------

 - added debug output function and messages (environment variable XSANE_DEBUG)

 - moved all global variables and struct GSGdialog to global struct xsane

 - cleaned up some variable names

 - added free gamma curve dialog (not ready)

 - prepared xsane for win32:
   - when BUGGY_GDK_INPUT_EXCEPTION is defined only blocking mode is used
     (needed because GDK input exception does not work on win32)
   - on win32 you cannot get a homedirectory, for this
     XSANE_FIXED_HOME_PATH has to be set to the path that shall be
     used as homedirectory
   - replaced all gtk_dialog_new by gtk_window_new and added hbox and vbox to the window
     (gtk_dialog_new does not work on WIN32)
   - added xsane.WIN32 and xsane.WIN32-compilation that describes how xsane
     is build on WIN32 with CYGWIN
   - replaced "/" in all paths, added label SLASH that is predefined to '/' if it is
     not defined by compiler option. For WIN32 it is set to '\' by compiler option
   - all fopen functions use argument "rb" or "wb" now (b=binary). This is needed for WIN32
     and the b is ignored on unix systems.
   - published binary version xsane-win32-0v01 and xsane-win32-0v02 based on
     xsane-pre0.61 versions

 - removed an ugly bug: in struct Preferences there was predefined a string ("/tmp/")
   that caused a bad memory state when the string memory was freed,
   instead the string is defined in xsane_pref_restore now

 - changes for tiff format:
   - added support for 16 bit tiff format.
   - predefined tiff-compression is changed from 5 to PACKBITS(16bit), JPEG(8bit), FAXG3(1bit).
   - add resoultion-tags and datetime-tag to tiff files.

 - added "change directory" entry to preferences menu

 - added "scanning for devices" dialog


xsane-0.61 -> 0.62:
-------------------

 - updated manpage (was about 1 year old)

 - removed sigprocmask.c from xsane-*/lib (not used)

 - added icons (32x32 and 48x48) for unix(xpm) and Windows(ico)

 - some additional changes for rotating preview

 - removed bug in preview_get_color that caused segfault when
   click with pipette was placed into preview area but outside the image,
   ( there was no test for image size )

 - in info dialog tiff is now listed as supported 16 bit format

 - filename counter is increased now if path or filename includes a "."
   and fileytpe is seleced by menu

 - added possibility to move the edge of the preview selection frame
   thanks to Laurent Martelli for his suggestion for that

 - added sane_get_parameters(xsane.dev, &xsane.param) at end of preview_scan_done
   this way it is made sure that xsane.param is correct after preview scan
   (was not correct in copy mode with lineart=grayscale->lineart preview)

 - added explaination of "[DEVICE]" in xsane help message

 - gimp handling now is always called in xsane_scan_done
   (was not called when an error occured or the cancel button was pressed).

 - moved selection of fax finemode to fax-project window, image is always scanned
   in fine mode resolution.

 - html-documentation is updated (a bit)

 - removed bad "+ 0.5" from calculation in preview_set_option_float: word = SANE_FIX(value) + 0.5;

 - included italian translation table (it.po), thanks to Mauro Colorio <macolori@tin.it>

 - added error message in xsane_control_option if command failed

 - p->startimage is set to 0 in preview_scan_start


xsane-0.62 -> 0.63:
-------------------

 - added turkish translation (thanks to Togan Muftuoglu <toganm@turk.net>)

 - changed gimp interface from 1.0 to 1.1.2x (GParam->GimpParam etc),
   added xsane-oldgimp.h that adds #defines for the old gimp interface

 - added "make uninstall"

 - changed confiure.in, added test for x_includes before it is used,
   renamed it to configure.old

 - new configure.in file that does use "sane-config" now to find the sane libraries


xsane-0.63 -> 0.64:
-------------------

 - changed xsane-oldgimp.h to work with gimp-1.0.4

 - added info icon (green triangle with explanation mark)

 - added info window function: xsane_back_gtk_info

 - ADF mode: if first  scan fails with NO_DOCS => error message: no docs
             if another scan ends with NO_DOCS => info message: scanned pages: #

 - added some accelerator keys. The key definitions may change any time,
   this is a first test version. The key-definitions are listed in xsane.ACCELKEYS

 - added grab_default for close buttton in info and about dialog

 - changed test for sane-libs in aclocal.m4, "-lintl" is removed from
   the output of "sane-config --libs"
   (this caused segfaults when gettext is included in libc)

 - added about translation dialog

 - added options "-p", "--print-filenames", if enabled and xsane runs in scanmode it
   prints names of produced image files to stdout 

 - added options "-N name", "--force-filename name", if set the user filename selection
   is disabled and the given name is used as filename. The filename should be of the
   form "basename-00001.filetype". The size of the counter has to be suffisunt large.

 - some changes in configure script (missing libs needed by sane are not linked any more)


xsane-0.64 -> 0.65:
-------------------

 - src/Makefile.in: added usage of SANE_CFLAGS and GTK_CFLAGS

 - added secure password transmission for authorisation (md5digest)

 - ~/.sane/pass is used for reading user:password:resource from file before asking the user

 - configure: removed test for X (AC_PATH_X), this is done in GTK (gtk-config)
   gtk includes and libs are used for png test (because png often is in X directories)

 - changed xsane_*_with_pixmap:
   old status: routines used xsane.histogram_dialog->window as window for gdk_pixmap_create_from_xpm_d()
     this made problems with preview window if X default color depth differd from X color depth
   new status: routines are called with parameter GdkWindow *window now.


xsane-0.65 -> 0.66:
-------------------

 - added setup menu for Automatic Document Feeder Scansource
   (ADF-Scansource name was predefined to "Automatic Document Feeder" before,
    now it can be defined for each device (is saved in decice settings))

 - changed setup for lineart->grayscale scanmode from entry to menu with available scanmodes

 - updated xsane.WIN32-compilation and src/Makefile.in.WIN32
   I compiled a pre version of xsane-0.66 with the cygwin snapshot from 2000-12-10 and
   gtk+-dev-20001023.zip, glib-dev-20001023.zip, libiconv-dev-20001007.zip
   with the way described in xsane.WIN32-compilation without any problems.
   The problem with the fork() seems to be solved in this cygwin version.

 - updated aclocal.m4 and configure (gimp test)


xsane-0.66 -> 0.67:
-------------------

 - added test if (xsane.adf_scansource) before usage of xsane.adf_scansource
   (caused segfault when no ADF Scanmode was defined in setup)


xsane-0.67 -> 0.68:
-------------------

 - changed src/Makefile.in.WIN32 so that the installation directory can
   be selected by configure --prefix=... and the used paths are more
   common to the one on unix (/usr/local => c:\sane)

 - changed src/Makefile.in.WIN32 for gimp support (uncomment GIMP_LIBS)

 - WIN32+gimp-support: set_gimp_PLUG_IN_INFO_PTR(&PLUG_IN_INFO) is called 

 - added extern GimpPlugIn PLUG_IN_INFO to xsane.h (needed in xsane.c for win32)

 - replaced free(xsane.tile) by g_free(xsane.tile)
   (the free(...) caused a crash on win32)

 - changed aclocal.m4: gimp test does work with gimp-1.0.x version again

 - renamed xsane.WIN32 and xsane.WIN32-compilation to xsane-WIN32.txt
   and xsane-WIN32-compilation.txt (it is easer to use on windows)
   
 - removed (#ifndef _WIN32) gtk_set_locale() from xsane.c for win32
   (when it was called gimp plugin created transparent images)

 - saved xsane-style.rc in DOS mode (\n\r)


xsane-0.68 -> 0.69:
-------------------

 - some changes in aclocal.m4 for gimp test:
   - When gimp-config is not found, the output of gtk-config is used
   - GTK_CFLAGS or GIMP_CFLAGS are added to CPPFLAGS for test for gimp.h and gimpfeatures.h
   - GTK_CFLAGS and GTK_LIBS are erased when gimp_config is available

 - changed src/Makefile.in: GIMP_CFLAGS is used now

 - saved xsane-style.rc in unix mode (\n) because DOS mode (\n\r) made problems

 - added new way to call netscape remote command:
   at first xsane tries to find out if netscape is running, for this it tries to
   find out if there is a link "~/.netscape/lock". If this link exists netscape should
   be running and xsane calls "netscape -remote openFile(...)". Otherwise xsane calls
   "netscape ..."

 - changed keywork "netscape-remote" as docviewer to "netscape"

 - changed way to find out home directory in xsane-back-gtk.c:
   now getenv(ENVIRONMENT_HOME_DIR_NAME) is used instead of getpwuid(...)->pw_dir.
   (getenv is usable for Win32 and unix, getpwuid makes problems on Win32)
   


xsane-0.69 -> 0.70:
-------------------

 - removed some bugs in text for pipette in sane-xsane-preview-doc.html

 - changed acloacal.m4: when gimp-config is not found we look for gimptool

 - for WIN32 the filetypes listed in the filetype menu are ".jpg" and ".tif"
   instead of ".jpeg" and ".tiff"

 - added manufacturer image to bottom of standard and advanced options window.
   The name of the image is "vendor"-logo.xpm" or "sane-"backend"-logo.xpm",
   the size of the image should be 256x48 pixels with a transparent background.

 - changed src/Makfile.in: *-logo.xpm are installed (make install) and
   uninstalled (make uninstall) now

 - changed src/Makfile.in.WIN32: *-logo.xpm are installed (make install)now

 - several changes in xsane-preview.c for rotating preview by 0/90/180/270 degree 
   the preview rotation is ready now

 - added new routine xsane_save_rotate_image to xsane-save.c

 - added new routine xsane_save_grayscale_image_as_lineart to xsane-save.c

 - lineart images are saved in grayscale mode at first if transformation has to be done

 - xsane_save_rotate_image is called beween scanning and saving image

 - xsane_save_grayscale_image_as_lineart is called beween rotating and saving image

 - aclocal.m4/configure: changed sane_major_version etc to SANE_CURRENT_MAJOR

 - fileheader of raw format changed. This format is not defined, but some programs
   can read it as 16 bit pnm binary data, so we use a compatible header now:
     P5
     # This file is in a not public defined data format.
     # It is a 16 bit gray binary format.
     # Some programs can read this as pnm/pgm format.
     # SANE data follows.
     100 100
     65535



xsane-0.70 -> 0.71:
-------------------

 - corrected aspect ratio in xsane-preview.c in routine that calculates preview resolution

 - corrected user definition of maximum scanner surface
 
 - added translation of preview menu maximum surface(preset area)

 - added tooltip for maximum surface(preset area) menu and rotation menu

 - finished  preview_autoselect_scanarea()

 - added autoselect scanarea button to preview window

 - changed automaitic increase of filename counter:
   - the step direction and length is not forced to +1,
     the user can select one of the values -2/-1/0/+1/+2.
     It is defined by preferences.filename_counter_step.
     This way it is possible to scan double sided papers
     with correct automatic page number generation.
   - the digits are not increased by a loop any more,
     the number is read, the new number is calculated
     and the new filename is generated. The user can
     select a minimum filename counter length now,
     it is defined in preferences.filename_counter_len
     and can be selected by the user in setup/saving options
   - when the number of digits are not enough the number is
     automatically increased now.
   - a message comes up when counter gets smaller than 0
   
 - pipette the color is averaged on a square, the size of the
   square can be defined by the user

 - updated html doc (not complete)

 - added tooltips to permission buttons (r,w,x)
   permission texts: user, group, all, read, write, execute can be translated now.

 - added japanese translation (thanks to Kimizuka Tomokazu <sgtom@pluto.dti.ne.jp>)

 - renamed oldgimp.h to gimp-1_0-compat.h


xsane-0.71 -> 0.72:
-------------------

 - changed default postscript viewer from xv to gv

 - moved int i, select = 1; in static void xsane_saving_notebook() out of #ifdef HAVE_LIBTIFF block

 - filename counter length correction is only done in sane_start when there is a user selectable filename

 - if external filename is given the counter len is not touched when not necessary

 - added "insert file" function to fax mode

 - added output of gamma, brightness and contrast settings to pnm headers

 - updated xsane online-documentation (html)

 - added license dialog, it is shown when it was not already accepted for this xsane version
   (tested in local xsane.rc)

 - about and about translation dialogs do not set XSane´s sensitivity to false any more

 - copyright sign is now always defined as "(c)", can be translated with \251 if character is available

 - device preferences are not saved/loaded any more when file selection is aborted

 - in xsane_info_dialog the scanner type is translated now

 - added accelerator keys to device selection dialog:
     Escape   -> Cancel
     F1,F2,.. -> select device number 1,2,...

 - added usleep(100ms) in device selection dialog before scanning for devices, this way we make
   sure that the text "scanning for devices" is displayed

 - added some accelarator keys to the preview window:
    Alt ESC   Cancel Preview Scan
    Alt KP+  Zoom in
    Alt KP-  Zoom out
    Alt KP*  Zoom not
    Alt KP/  Zoom undo
    Alt A     Autoselect scanarea
    Alt V     Select visible scanarea

 - added accelerator key Escape to file-selection-dialog, about-dialog and about-translation-dialog
   attached to cancel/close button

 - updated translations:
   - german translation
   - czech translation    - thanks to Stanislav Brabec <utx@penguin.cz>
   - turkish translation  - thanks to Togan Muftuoglo <toganm@yahoo.com>
   - japanese translation - thanks to Kimizuka Tomokazu <sgtom@pluto.dti.ne.jp>
   - french translation   - thanks to Laurent Grawet <laurent.grawet@ibelgique.com>


xsane-0.72 -> 0.73:
-------------------

 - moved call to display license after test for command line options,
   so it is not necessary to accept the license to print help/version/license

 - added slowenian translation, thanks to Ales Kosir <ales.kosir@zaslon.com>

 - an error message is printed when a preview file could not be created

 - netscape is called with option new-window now

 - rotating scanned image uses memory mapped image file if possible
   thanks to Salvador Pinto Abreu <spa@di.uevora.pt> for his suggestions

 - xsane windows are set insensitive while faxproject is generated/queued.
   For this waitpid is called in a loop.

 - before a html documentation is displayed xsane does test if the requetsted file
   does exist in the subdirectory language_dir = gettext("language_dir")
   (what e.g. gives "de" for german). If it does exist it is displayed, otherwise
   the original english doc is displayed.
   "language_dir" has to be part of the translation table, it should be
   translated to the correct translation direcotry name, e.g. de for german

 - preferences.printer momory is defined dynamicall now (has been defined to 10
   pointers to printerdefinition before)

 - chaged with of some setup fields - have been too small for large fonts

 - xsane-scan:xsane_scan_dialog():
   added test for color scan to the test if gamma tables for red, green and blue
   exists (coolscan backend defines color gamma tables in grayscale mode
   what caused segfault in xsane).

 - added preselect scanarea after preview scan (selection in enhancment setup)

 - added automatic color correction after preview scan (selection in enhancement setup)

 - removed bug (that caused segfault when opening setup dialog) in xsane_enhance_notebook
   while setting up menu itmes for grayscale scanmode selection:
   replaced xsane.well_known.scanSOURCE xsane.well_known.scanMODE

 - added option in prefences/setup saving options: save device preferences at exit

 - now using always gdk_window_get_root_origin() to get a position of a window on desktop


xsane-0.73 -> 0.74:
-------------------

 - transfering data to gimp plugin now is handled like saving to a special file format.
   this way it is possibe to support handheld scanners and to get advance of
   some xsane features like image rotation.

 - corrected mmap() part in xsane-save.c/rotation: 
   data is mmaped with offset pos0, the offset pos0 is removed from pointer calculation
   
 - changed xsane_enhancement_by_histogram() and xsane_histogram_to_gamma(): the ranges
   for gamma, brightness and contrast are checked correct now

 - added function preview_transform_coordinate_window_to_image(), it is used in
   preview_get_color(). Pipette functions do work with rotated preview now.

 - corrected bug in ruler calculation. The rulers do work correct now with rotated preview

 - corrected bug in reading 16 bit preview data: sizeof(buf16)-> sizeof(buf)
   now preview transformation from 16 to 8 bit is as fast as 8 bit preview

 - preset areas are defined with position (new) and size (old) now.

 - surface changes (size and rotation) do not change the selected preview area
   any more if possible


xsane-0.74 -> 0.75:
-------------------

 - xsane_read_image_data() does reduce 16 bit images to 8 bit when necessary/requested

 - when scanning with 16 bits/color in gimp mode, to jpeg-file or postscript-file
   xsane does ask if the image should be reduced to 8 bits/color

 - added functions for mirroring preview and mirroring while rotating scan

 - moved saving device preferences from xsane_quit() to xsane_scan_win_delete()
   and replaced call to xsane_quit() by xsane_exit() in choose_device dialog
   (this could cause a segfault).

 - corrected a bug in calculation of histogram for rotation of 270 degree

 - added xsane_bound_int(&mid, min, max) to xsane_calculate_auto_enhancement()
   a segfault could occur when autoenhancement was activated when only a few
   preview-pixels where available for calculation of autoenhancement values


xsane-0.75 -> 0.76:
-------------------

 - rotoation routine: mmap does map the full image file (not only from pos0)

 - added xsane.depth, it stores the depth of the scanned image,
   it may differ from xsane.param.depth when lineart is converted to grayscale
   or 16 bit image is reduced to 8 bit

 - preview: preset_area list is read from xsane.rc

 - added context menu to preview preset_area menu, the preset areas can
   be changed by user now

 - transformation 16->8 bits/color: replaced val/256 by val >> 8,
   a user said that his compiler is too stupid for such an optimization

 - updated translations: cs, de, fr, ja, sv

 - calibration image is not rotated any more

 - corrected exposure event handling (drawing of the selection frame)

 - added call of preview_restore_image() at the beginning of preview_update_surface().
   This way the correct image parameters are used for the calculation in
   preview_update_surface(). preview_restore_image() does not paint the image any
   more, this is done at the end of preview_update_surface() now.

 - corrected bug in xsane_calculate_histogram() with zoomed and rotated preview
   with angels 90 and 270 degree.

 - info dialog does print sane version as #.#.# (instead of #.#) again.
   sane-dll will return the version of the sane package from sane-1.0.5
   so it is possible to find out the used library version in most cases.

 - xsane-scan.c: scan data is not written with fwrite() in 1 byte steps
   any more because it looks like some systems (at least HP 9000/B1000
   (processor PA8500/300 MHz, 384 MB RAM) operating system HP-UX 10.20)
   have problems with this. The data is stored in the read buffer when
   any transformation (gamma, 16->8 bit) is needed, the complete
   buffer that is read with sane_read is written in one part.

 - added xsane.spec - created by Sebastian Wenzler <wenzler@techie.com>

 - autoselection of scanarea is not done for startimage

 - preview image files (level 0-2) are removed and recreated when
   the temporary directory is changed in the saving setup
   (Preview scan has to be reacquried after changing the temporary directory)

 - directory selection dialogs (change working directory and select temporary directory)
   do not display filelist and delete-file widgets.

 - xsane-preview.c and xsane-gamma.c:
   - raw preview data is stored with 16 bits/color
   - gamma correction is done with (8-16) bit to 8 bit enhanced data
     the gamma input bits is set to 12 (but could be changed if we
     add a widget that can change this value)
     12 bit = 4096 values for each gamma table, this is a good
     compromise between image quality, speed and memory usage
   - All this slows down gamma and histogram routines, because of this
     I accelerated these routines again:
     - replaced field indexes by optimized pointer routines
     - preview_motion_event_handler improved: continuous mode does use
       a timer function now. this way the selection has a higher priority
       than displaying the histograms.
     - the raw histogram is only recalculated and displayed when it has been changed.

 - improved event handling of the histogram sliders:
   when continuous mode is active xsane_enhancement_by_histogram() is not called
   directly any more, it is called via the xsane_slider_hold_event handler now

 - split setup notebook "saving options" into "saving options" and "image options"

 - added option "reduce 16 bit image to 8 bit" to setup/image options
   This way you can use the preview with the full bit depth the scanner
   can output and save it as image with 8 bits/color.
   This is interesting e.g. when you scan slides or negatives.

 - changed ouput in parameter box from "width x height (size unit)" to
   "witdh x height x depth (size unit)"

 - filetype menu is displayed correct now when xsane main window is rebuild

 - removed a bug in aclocal.m4 wehn gimp was not found


xsane-0.76 -> 0.77:
-------------------

 - removed "+0.5" in calculation of gamma table. A gamma value of 1.000 does
   not change the image data any more

 - xsane_update_gamma_curve(TRUE /* update raw */); is called when setup dialog is closed
   (apply and cancel), now the preview is displayed with correct gamma values when setup
   dialog is closed.

 - configure does set gtk parameters correct when compiling gimp testprogram failed

 - xsane internal gamma tables for scanning are created after sane_start is called,
   this makes sure that the gamma table size calculated with param.depth really is correct

 - setup uses selected length unit

 - length unit is printed in top left edge between rulers in preview window

 - when length unit is saved as inch the length unit submenu "in" now is selected at program start

 - removed xsane.spec because I got a mail that it does not produce working installations

 - length unit also can be selected now when backend length unit is pixel, so it
   is possible to change the length unit of the setup window

 - save device preferneces dialog is opened when user closes setup dialog and any
   device options have been changed

 - replaced all fprintf(stderr, ... by DBG(...

 - updated translations: cs, de, fr, ja, sv, tr


xsane-0.77 -> 0.78:
-------------------

 - when the backend defines a new scanner surface it is updated correct now
   when the reduced preview surface does not limit the new surface
   (added expand_surface to preview_update_surface()

 - preview scan is aborted when backend sends more image data than expected,
   the preview image is saved in this case
 
 - the preview image is saved now when the preview scan is canceld, so the
   already scanned part of the preview keeps visible

 - when two preview levels have comparable quality it is used the preview
   that is more up to date (scanned later)

 - applied sanei_wire.c patches from sane-backends-1.0.5 to xsane-rc-io.c

 - changed default values: histogram, and standard options windows are visible by default now

 - added function (pirate icon) to delete preview image cache

 - added mail project dialog

 - added mail setup dialog

 - added routines for sending images by mail (base64encoding, mail headers, smtp headers)


xsane-0.78 -> 0.79:
-------------------

 - added test for lstat in configure/configure.in/config.h.in

 - when lstat is available it is used for testing netscape lock file,
   otherwise stat is used

 - changed order of include lines in xsane-save.c

 - for OS/2: in xsane_back_gtk_make_path() a colon ":" is replacte by "_"

 - changed last argument of xsane_back_gtk_set_tooltip from char to gchar

 - added function xsane_widget_test_uposition(GtkWidget *gtk_window)
   that does test if gdk_window_get_deskrelative_origin or
   gdk_window_get_root_origin gives the correct positions.
   test is done with "scanning for devices" window.

 - in xsane.c changed #if 1 to #ifdef BUGGY_GTK_TOOLTIPS_SET_COLORS

 - split preview_increment_image_y in ... and preview_test_image_y,
   test is called before a byte is copied into the buffer

 - xsane-preview.c: preview_scan_start: preview image memory is only cleaned for
   single pass mode and 1 pass of 3 pass mode (3 pass preview does work again)

 - mail is sent in subprocess

 - added "MIME-Version: 1.0" to mail header

 - added mail status in mailfile, error messages while sending are stored in this file too

 - aclocal.m4 test for gimp: moved saving of GTK_* to beginning of routine,
   the GTK_* things should be set correct now when gimp-config is not found

 - xsane.h: mail is deactivated when png is not available

 - added preferences menu item "Medium":
   The highlight/shadow/gamma values are defined to the intensity range
   of the selected medium (e.g. agfa negative).
   If possible the analog highlight/shadow function is used,
   if not then the scanner internal digital gamma table is used
   in bot then xsane´s internal gamma correction is used.
   When the correct medium is selected it only is necessary to
   do "soft" color corrections. Because of this the 400% values
   in brightness/contrast have been reduced to 100% values now.
   This is a typically range that e.g. also is used by the gimp.
   If someone needs the larger ranges, change the following definitions
   in sane.h:
   #define XSANE_BRIGHTNESS_MIN    -100.0
   #define XSANE_BRIGHTNESS_MAX    100.0
   #define XSANE_CONTRAST_GRAY_MIN -100.0
   #define XSANE_CONTRAST_MIN      -100.0
   #define XSANE_CONTRAST_MAX      100.0

 - moved call xsane_update_counter_in_filename as correction for counter length from
   xsane_start_scan to xsane_scan_dialog (before open command), this way the
   counter also is correct when the file is not transformed (pnm).

 - corrected xsane_update_counter_in_filename: removed some pointer bugs when skipping
   exisiting filenames 

 - added test for os2.h to configure/configure.in

 - added set_gimp_PLUG_IN_INFO(&PLUG_IN_INFO); for os2

 - removed "+0.5" in calculation of negative preview gamma table. A gamma value of 1.000 does
   not change the image data any more

 - effective user id is set to real user id in all subprocesses

 - cancel preview does now only call sane_cancel and tests for SANE_STATUS_CANCELLED while
   reading image data.


xsane-0.79 -> 0.80:
-------------------

 - moved setting of medium gamma correction values from xsane_set_medium_callback in xsane.c
   to xsane_set_medium in xsane-gamma.c

 - xsane_set_medium is called in xsane_scan_dialog and in preview_scan

 - replaced predefined areas 10x14 cm and 14x10 cm by 10x15 cm and 15x10 cm

 - updated documentation (partly)

 - correcting image height when canceling conversion to jpeg format,
   program does not crash any more

 - added russian translation - thanks to John Profic <profic@lrn.ru>

 - solved problem with lineart image saved as png (wrong byte width)

 - moved medium selection menue from preferences menu to xsane main dialog

 - inactive backend options are not saved to the device-rc file

 - added progress_bar to the paramter list of xsane_save_*

 - added xsane-viewer.c and xsane-viewer.h to the src directory

 - added fflush(outfile); to end of rotation routine, this seems to
   solve a problem of incomplete files when rotating the image file

 - added routine xsane_read_pnm_header to get correct header offset
   and read geometrie values

 - for saving routines now the header offset and geometrie values of
   xsane_load_pnm_header are used instead of xsane´s internal values

 - changed handling of color identification:
   old: xsane_color  == 0 => grayscale/lineart
   new: xsane_colors == 1 => grayscale/lineart

 - when image is saved as postscript file (not copy mode etc)
   then the bounding box exactly surrounds the image now.
   Removed psfile parts from setup and preferences.

 - xsane_widget_test_uposition(gtk_window) does wait now until
   gtk_window is realized before gtk_widget_set/get_uposition
   test is done

 - for hpux added include of alloca.h to sane.h

 - added function xsane_debug_message that is used for DBG when
   gcc is not used because defines with variable arguments is
   not ANSI.

 - updated translations: cs, de, fr, ja, ru, tr


xsane-0.80 -> 0.81:
-------------------

 - xsane-gamma.c:
     void xsane_calculate_raw_histogram(void): changed "maxval_raw = 0;" to "... = 1;"
     void xsane_calculate_enh_histogram(void): changed "maxval_enh = 0;" to "... = 1;"
   this avoids a floating point exception on some systems

 - xsane-viewer.c: set default viewer size from 400, 400 to
   0.3 * screen_width, 0.5 * screen height

 - xsane-save.c: xsane_save_rotate_image() swaps x and y resolution when
   rotation 90 or 270 degree

 - removed slash at end of mkdir("~/.sane/xsane/"), OS/2 did not like this

 - when temporary direcotry is not defined (xsane.rc does not exist)
   then xsane at first tries to read the environment variable
   defined by ENVIRONMENT_TEMP_DIR_NAME (default TMP) and if that
   does not exist it uses a predefined (TEMP_PATH) path.
   When xsane.rc does exist the temporary directory stored in xsane.rc is used.

 - added blur and despeckle selction dialog to select filter radius

 - changed viewer and preview window type from GTK_WINDOW_DIALOG to GTK_WINDOW_TOPLEVEL

 - preview gamma does not have any effect to the enhanced histogram any more

 - preview does medium gamma correction now when scanner does not support
   gamma tables

 - medium selection is disabled for lineart mode, gamma table is set to default
   in this case. This guarantees that advanced lineart preview (by grayscale scan)
   does work conform to the real scan.

 - default resolution set to 72 dpi (if no resolution is defined by backend)

 - added scanning/valid/incomplete/invalid pixmap to preview action area

 - preview cancel does call preview_get_image_data after canceling the
   scan, this makes sure that xsane does detect a cancled scan when
   gdk_input does not detect closing the select_fd (what happens when
   the backend does close the select_fd too early (what is allowed by
   the sane standard))

 - scan cancel does make sure that xsane_read_image_data is run
   after sane_cancel is called

 - added SIGTERM handler: xsane_quit() is called on SIGTERM

 - when faxproject/xsane-fax-list can not be created an error
   message is printed and the creation of the project is aborted

 - in saving mode temporary conversion file is removed after conversion

 - corrected wrong filenames while saving mail image after scanning

 - added ocr function to viewer


xsane-0.81 -> 0.82:
-------------------

 - number of medium items and area definitions is calculated by size of the
   structure now.

 - Improved security of temporary file handling:
   - replaced mktemp() my mkstemp() in xsane_back_gtk_make_path.
     The filename format changed because mkstemp creates the file
     and so it is not possible to add an extension and the file
     has to end with "XXXXXX" what is replaced by the safe random number
     generated by mkstemp.

   - before creating the image filename in xsane-scan.c the filename
     is removed only if the created file is not a temporary file.

   - removed remove() in xsane_save_image_as_lineart()

   - added routine xsane_create_secure_file() that makes sure that the created
     file does not follow a symlink


 - when an error occurs while saving a file or the saving is aborted then
   the created image is removed

 - swaped order of opening inputfile and outputfile (outputfile now first) in
   xsane_save_image_as_lineart()

 - viewer_save_callback(): several changes for saving as lineart

 - moved xsane_update_histogram() at end of xsane_update_gamma_curve()
   into if (xsane.preview) block - this avoids segfault on some systems

 - despeckle radius and blur radius dialogs are closed before routine is started

 - removed bug in despeckle routine

 - increased speed of despeckle routine by about factor 6

 - changed despeckle radius range from 1-9 to 2-10

 - changed blur radius range from 1-9 to 2-20

 - routines xsane_draw_histogram_with_*() do not have parameter "int invert" any more,
   the inversion already is done in the medium dependant histogram of the preview.

 - added image scaling routine to viewer

 - added spanish translation (es.po) - thanks to 
   Gustavo D. Vranjes <gvranjes@abaconet.com.ar>

 - added dutch translation (nl.po) - thanks to 
   "Wim Sinke" <sinke@wirehub.nl>


xsane-0.82 -> 0.83:
-------------------

 - scaling image size does work for 16 bit images now

 - xsane_create_secure_file() now always removes the file (not only if it is a link),
   this is needed because open(..., O_EXCL) does fail when the file exists (what can
   happend when we want to overwrite an existing file).

 - removed buggy ";" at end of if statement in xsane_enhancement_negative_callback

 - default mode is viewer instead of saving mode

 - updated po-files: nl

 - xsane-front-gtk.c: void xsane_progress_cancel(GtkWidget *widget, gpointer data)
   changed GtkSignalFunc callback = (GtkSignalFunc) data; to
   GtkFunction callback = (GtkFunction) data;

 - added media, experimentally determined values with UMAX Powerlook3:
   Agfa XRG 200-4
   Agfa HDC 100
   Konica VX 100
   Rossmann HR 100

 - preview.c: preview_update_surface calls preview_update_selection at first to
   make sure that the preview selection is up to date. Now xsane comes up with
   the saved area selection when e.g. transparency mode is stored which forces
   a change of the surface

 - removed parameter negative from xsane_calculate_auto_enhancement,
   autoenhancement does work again when negative button is pressed

 - added mode "--Medium-definition"/"-M":
   - preview is done without scanner gamma correction for medium
   - added two icons to the main dialog: medium new and medium delete

 - added xsanedocdir to doc/Makefile.in and src/Makefile.in
   the path is used by xsane.c and the mentioned Makefiles

 - removed in xsane-viewer.c, line 222: xsane_create_secure_file(outputfilename) before
   xsane_save_image_as(...)


xsane-0.83 -> 0.84:
-------------------

 - if xsane-license.txt is not found when it shall be displayed then xsane does
   print an error message and behaves like when the user did not accept the license.

 - if xsane-startimage.pnm is not found then an image of the size 1x1 pixel is
   created instead. This should normally never happen but some people start
   xsane without that it has been installed. Then the behaviour of the preview
   has been undefined before.

 - removed "rm -f $cache_file" when gtk or sane was not found in configure.in,
   this was bad when a user used a global cache file

 - viewer is created with image size - if possible

 - added serbian translation file (sr.po) - thanks to Duško Rusmir <drusmir@gmx.ch>

 - xsane_sigpipe_handler: changed
   xsane_cancel_save(0);
   to
   xsane_cancel_save(&xsane.cancel_save);

 - updated po-files: es, fr, ja, nl, ru, sr, tr

 - x and y resolution information are added to jpeg and png files now

 - preview zoom buttons are now also available when backend does geometry
   options with unit pixel

 - added Plustek logo


xsane-0.84 -> 0.85:
-------------------

 - replaced xsane_control_option by back_gtk_set_option in xsane_set_resolution.
   if changing resolution causes a SANE_RELOAD_OPTIONS this is handled now.

 - replaced xsane_save_scaled_image by a routine that does a blur over all covered pixel
   insetad of using one pixel in the middle of the covered area

 - changed radius definition of blur and despeckle, now r=1 means nothing happens

 - extended blur routine, radius is now of type float, so you e.g. can blur with a 
   radius of 1.3.

 - replaced all xsane*_scale_new* by xsane*_range_new*, the range can be displayed as:
   - slider (scale) + value on right
   - slider (scrollbar) + value on right
   - spinbutton
   - scale + spinbutton
   - scrollbar + spinbutton
  the user can select, which disply mode he likes to use.

 - added timeout callback for xsane_resolution to set correct quantisation

 - Some people complained that the user has to accept the GPL to use the program.
   In fact from the view of the GPL it is not necessary that the user accepts
   the license to run the program. But it is important that the user reads
   and accepts the "NO WARRANTY" part of the license. Due to this I created
   two license dialogs:
    - EULA-Dialog displays the "NO WARRANTY" part of the GPL
    - GPL-Dialog displays the compelte GPL
   To run the program the user has to accept the "NO WARRANTY" agreement
   after installation and each update of xsane.
   I hope this compromise is usable for every side. Please understand and
   accept that it is necessary in some countries that the user accepts the
   no warranty agreement to make sure that the authors and others do not
   have to pay any compensation in the case of any damage

 - removed bug in scan and in preview-scan 16 bit routines when
   sane_read returned with odd number of bytes

 - reduced maximum filename counter length from 10 digits to 9 digits.
   (10 digits need more than long int, long long int is not portable (not ANSI C))

 - update_counter_in_filename does not touch the counter when step = 0 and
   min_length = 0

 - added preview function autoraise_scanarea (may be the name is stupid?):
   if you select this function and click to an image then the image
   is selected as scanarea
   
 - colored preview pipette icons and zoom icons

 - Changes/preparation for gtk+-2.0:

   - added xsane-gtk-1_x-compat.h that wraps gtk+-2.0 functions to gtk+-1.x functions
     when gtk+-1.x is used

   - replaced all gtk_accel_group_attach() by gtk_window_add_accel_group() and
     gtk_menu_set_accel_group()

   - repleaced all GTK_WINDOW_DIALOG by GTK_WINDOW_TOPLEVEL

   - addeded alternative part that uses gtk_text_view (gtk+-2.0) instead of gtk_text (gtk+-1.x)

   - repleaced all gtk_signal_connect* by g_signal_connect* and defined makros for gtk+-1.x
   - repleaced all gtk_signal_handler* by g_signal_handlers* and defined makros for gtk+-1.x

   - repleaced (gtk+-1.x)
       gtk_widget_draw(hist->pixmapwid, &rect);
     for gtk+-2.0 by 
       gtk_widget_queue_draw(hist->pixmapwid);
       gdk_window_process_updates(hist->pixmapwid->window, FALSE); 

   - filename entry is not set directly by gtk_entry_set_text(), it is set
     by xsane_set_filename() now


xsane-0.85 -> 0.86:
-------------------

 - reversed the change of xsane-0.84->0.85 that replaced
   xsane_control_option by back_gtk_set_option in xsane_set_resolution.
   If resolution change causes a SANE_RELOAD_OPTIONS this is not handled any
   more. 
   Reason: It caused a segfault in different situations when panel_rebuild
   was called. I tried to implement that it works like expected, but the
   resolution option needs a lot of special cases handling that makes it
   very hard to handle this. Also the gtk slider does not work when
   the panel is rebuild each time when the value is changed.

 - increased vendor length from 9 to 12 characters.

 - changed dialog of viewer/scale
   - The dialog uses xsane_range instead of a spinbutton now
   - The scale sliders for x and y can be binded now,

 - added %%Pages: 1 1 to header of postscript files in xsane-save.c

 - changed preview zoom icons and function names:
   - changed icon and name of zoom_in to zoom_area
   - added new function zoom_in: if enabled a zoom cursor
     is selected and when the user clicks to the preview
     with the left or middle mouse button then it is zoomed
     to the clicked position
    

xsane-0.86 -> 0.87:
-------------------

 - preview_update_maximum_output_size: function sets block bit
   at beginning of routine and resets it at end of routine, this
   way it is made sure that the function is not called
   recursive. This avoids infinite loops when backend
   changes geometry options.
   
 - xsane-device-preferences.c: saving and loading device options
   does test for num_options now
 
 - added xsane.ipc_pipefd and gdk_input_add(xsane.ipc_pipefd,...),
   a child process can write to the pipe and xsane displays the
   text in an error dialog (not for win32)
 - added inter process communication pipe. When a child process
   wants to display an error message it can write the message to
   ipc_pipefd[1] and xsane will display the message in an error dialog

 - xsane_back_gtk_decision_dialog can handle multiple dialogs now,
   (used by xsane_back_gtk_error/warning/message/info

 - added clear/redraw histogram to xsane_set_sensitivity()
   removed clear/redraw histogram near calls to xsane_set_sensitivity()

 - add xsane_sigchld_handler to cleanup zombie child processes,
   this replaces xsane_mail_send_process_exited()

 - changed progress bar pipe of ocr program:
   -default option is "-x" (gocr)
   -default progress keyword is "" (gocr)
   -expects to values: "%d %d\r", main, sub
    first value is used for progress bar, both are printed as text

 - moved at the end of function xsane_device_dialog()
   the call xsane_set_all_resolutions(); after xsane_refresh_dialog();
   this way the backend default resolution is not overwritten at program startup

 - changed calculation of aspect for startimage in preview_update_surface() from image aspect
   to preview aspect

 - xsane-scan.c saving lineart image as grayscale does work correct now:
   - fwrite writes correct number of bytes
   - x value is stored in global struct XSane so that it is not reset at
     the beginning of xsane_read_image_data()

 - moved ocr routine from xsane-viewer.c to xsane-save.c

 - ocr routine can be selected by saving image as ".txt" or ".text" format

 - added filetype menu to fileselection dialog

 - changed behaviour of filetype menues: the extension immedeatly is added to/changed in
   the filename (and is not added/corrected when the scan begins).
   Now the filetype menu does behave the same way as gimp does. This means that
   you e.g. can select filetype "jpeg" and name the file "image.pnm", in this
   case the filetype is (like selected) "jpeg". I do not like this, but this is
   how most programs do handle this situation.

 - filetype is saved in preferences

 - filetype "by ext" is handled as "" instead of NULL now

 - selected working directory is saved in xsane preferences

 - error_xpm, warning_xpm and info_xpm got a little 3d look

 - added test for gtk2 to aclocal.m4 and configure.in/configure

 - added bind_textdomain_codeset(xsane.prog_name, "UTF-8"); after bindtextdomain

 - gtk-fileselection for selecting directories: for gtk2:
   - selection_entry hidden
   - added "/." to end of predefined path
   - for gtk1 the text in selection_entry is removed from the filename after selection has finished

 - updated translations: de, tr, ja, es, fr, cs, sv

 - new translation: sk (slovakian), thanks to Zdenko Podobný <zdpo@mailbox.sk>

 - changed configure script to support gtk2
    

xsane-0.87 -> 0.88:
-------------------

 - xsane_back_gtk_range_new: made sure that digits is not negative
   and for gtk+-1 that digits<6

 - xsane_load_mail_project: changed "char c" to "int c" to get a chance to
   identify EOF

 - xsane_load_fax_project: changed "char c" to "int c" to get a chance to
   identify EOF

 - xsane_resolution_list_callback: changed "gchar *name" to "const gchar *name"

 - xsane_add_medium_definition: changed "char *definition_name" to "const gchar *definition_name"

 - added xsane-batch-scan.[ch]

 - added routine preview_create_batch_icon_from_file() to xsane-preview.c

 - xsane_batch_scan_update_icon_list is called by xsane_enhancement_by_gamma via a timer
   this way a gamma correction also is visible in the icon list

 - added xsane.scan_rotation that is used by xsane-scan.c instead of xsane.preview->rotation

 - updated translations: cs, de, es, ja, ru, tr


xsane-0.88 -> 0.89:
-------------------

 - 3 pass scanning: data interleaving is done in buffer, patch by <Oliver.Friedrich@hamburg.de>

 - replaced fork() by spawnvp for ocr command in xsane-save.c (patch by Franz Bakan)

 - xsane_save_jpeg does reduce a 16bit/sample images to 8bit/sample at first because jpeg does
   not support 16 bit/sample

 - xsane_save_ps does reduce 16bit/sample images to 8bit/sample while saving

 - When scanning to file (mode SAVE) then the warning about image depth reduction 16->8 bit/sample
   for jpeg and postscript is not printed any more.

 - Since april 2000 there is defined a pnm (ppm/pgm) format for 16 bit binary images.
   With this format the unofficial RAW16 format that has been used by xsane until version 0.88
   becomes senseless. The RAW16 format has been removed, xsane does create 16 bit binary pnm files
   now (the difference between the RAW16 and the pnm16binary format is that the pnm16binary format
   always uses MSB first while RAW16 was written in machine byte order).
   In preferences-Setup->Image there is a selection if the pnm16 image shall be saved in ascii or
   binary format.
   When you have any problems with the pnm16binary format then make sure at first that the program
   you use does support it correct. imagemagic does support it, the xv version 3.10a does not
   support it.

 - read_pnm_header now does read the gamma, contrast, brightness, threshold values, so when these
   data is saved in an image then it is correct now.

 - gamma, brightness, contrast and threshold are added in the header of pnm files now

 - when 16 bit image is scanned and "reduce 16bit image to 8bit" is selected and the image
   is saved as pnm then the file is created correct now

 - batch scan thumbnail: replaced gdk_image by gtk_preview
   gdk_image needs pixel colors based on hardware, gtk_preview uses truecolor pixels.

 - added po file converstion to utf8 in po/Makefile[.in]

 - added documentation for batch scan window

 - changed page size in range from (max-min)*1e-40 to (max-min)*1e-30
   because some systems like solaris had problems (one long bar that
   could not be moved)

 - xsane-preview.c: in case of an error the error error text is created before
   preview_scan_done is called when parameters->* are needed for creating the
   error message

 - made html pages compatible to html 4.01

 - changed header of postscript files, may be this solves the printing problem on some systems

 - added "%%EOF" to end of postscript files

 - updated translations: cs, de, fr, ja, nl, ru, sv (update for 0.88), tr
 - new translations: pt, pt_BR

 - add no_device icon in error message: no devices available

 - added help_no_devices dialog

 - added device icon in device_scanning_dialog

 - added a frame in the decision dialog

 - when preview_autoselect_scanarea does not find an image then
   the complete image is used

 - added accelerator key ESC to decision dialog:
   when a reject button (right) is available then ESC=reject,
   when no reject button is available then ESC=OK.

 - set block_update_maximum_output_size_clipping in preview_rotation_callback,
   now rotation does work like expected when in copy mode

 - added paper_orientation menu in copy mode



xsane-0.89 -> 0.90:
-------------------

 - replaced "round(i+0.5)" in xsane_save_ps by "ceil(i)" because round is not
   available on all systems

 - replaced order of includes for sys/types.h ans sys/stat.h in xsane.h

 - removed some includes from some *.c files that are already in xsane.h

 - added to xsane.h:
   #ifdef HAVE_OS2_H
   # define strcasecmp stricmp
   #endif

 - always set position of outputfilename_entry to the right

 - added test for (pid_status < 0) in xsane_fax_send in routine
   waiting for child process. The program does continue now
   when the fax is sent.

 - fax setup: added "set program defaults" buttons for efax, hylafax and mgetty+sendfax

 - bindtextdomain for backend is set for sane-"backendname" and sane-backends
   sane-backends is used when sane-"backendname" does not exist (no "" entry)

 - set codeset for backend textdomain to "UTF-8"

 - xsane-preview.c: motion_notify_event_handler: added 
   if (p->selection_xedge != -1) and if (p->selection_yedge != -1)
   before setting new coordinates

 - xsane-preview.c: added aspect_ratio function to motion_event_handler

 - added aspect_ratio menu to preview window

 - xsane-save.c: save_scaled_image: added " 0.5" to round image width and height

 - xsane-viewer.c: added widgets to scale dialog that allow defining image size

 - aclocal.m4: added "-lintl" when gettext is found in libintl

 - aclocal.m4: added warning that check for gtk is not possible when pkg-config
   is not available

 - added romanian (ro.po), vietnamese (vi.po) and danish (da.po) translation

 - updated translation based on xsane-0.89 texts: es, it, ru

 - updated translations: cs, de, fr, nl, sk, tr

 - replaced some signals for spinbutton by signals for adjustments in xsane-viewer.c

 - xsane_mail_dialog_close() and xsane_fax_dialog_close():
   removed gtk_window_remove_accel_group(GTK_WINDOW(xsane.mail_dialog), xsane.accelerator_group);

 - xsane-scan.c/xsane_read_image_data() and xsane-preview.c/preview_read_image_data:
   when we have no select_fd then we don't leave the scanloop with break; but
   we do a gtk_main_loop and  continue;

 - xsane-scan.c and xsane-preview.c: WIN32 now also does use the gdk_input_add functions.

 - preview: added output of RGB values of the pixel under the pointer in the preview

 - xsane_create_preview_gamma_curve: replaced 255 by 255.99999 to create correct preview gamma table


xsane-0.90 -> 0.91:
-------------------

 - xsane_generate_dummy_filename(): use temporary file in case xsane.mode == XSANE_GIMP_EXTENSION

 - changed <Shift> accellerator keys that used letters to other key (if possible same key with <Ctrl>,
   because with these accelartor keys it was not possible to enter these letters in any entries.

 - added accelerator group to mail dialog again, it is now possible to enter all texts and use
   the accelerator keys at the same time

 - added zoom of image under the pointer to the preview window

 - removed all c++ style remarks "//"

 - changed behaviour of medium definition mode:
   - The raw histogram now does show the raw data when the selected medium definition
     is not set to the full range
   - When creating a new medium definition the name of the used definition is preset
   - When creating a new medium definition then this definition is selected
   - When deleting a definition then the previous definition is selected

 - renamed temporary file "preview-level*" to "xsane-preview-level*"

 - position of batch scan dialog is saved in device preferences

 - added chines tranlation (zh)

 - corrected RGBA mode

 - added blocking function to viewer: it is not possible to open two dialogs for the same
   viewer at the same time

 - added signal handling for SIGINT and SIGHUP

 - in Batch scanning mode sane_cancel is called between all scans! This has to be done
   because it is not allowed to change scan parameters between sane_start and sane_cancel.


xsane-0.91 -> 0.92:
-------------------

 - moved setting of preview gamma table from preview_start_scan (called 3 times for
   3 pass scan) to preview_scan (called once when "preview scan" button is pressed).
   This should avoid error messages in 3 pass scanning mode

 - removed parameter label from xsane_back_gtk_autobutton_new()

 - xsane_back_gtk_autobutton_update sets range widget to insensitive in automatic mode

 - added jpeg error_exit handler

 - added several tests for errors after wrting image data (full disk) (not complete)

 - if an advanced option is defined in a standard group then this option is listed in
   the advanced options window now. For this a standard group also is created in the
   advanced options window. If a group has no items then the group is not shown.

 - an option without SANE_CAP_SOFT_DETECT is not read any more in xsane_control_option

 - updated translations: sv


xsane-0.92 -> 0.93:
-------------------

 - added ranlib to lib/Makefile.in to process liblib.a

 - added 2 calls xsane_find_best_resolution() in xsane_resolution_widget_new()
   to make sure that active value really is selectable in a list of resolutions

 - added range values 9-25% to scaling list of xsane-viewer: 9, 13, 18, 25, 35, 50, 71, 100, 141, 200, 282, 400

 - when no docviewer is defined at xsane startup (generally when xsane is started the first time) then
   xsane tries to read the environment variable $BROWSER, if this fails it sets docviewer to netscape.

 - xsane-preferences.c: mail dependant entries are only used when mail is activated

 - replaced label HAVE_LIBGIMP_GIMP_H by HAVE_ANY_GIMP
   HAVE_ANY_GIMP is defined in configure.in when HAVE_GIMP=yes

 - added HAVE_GIMP_2 parts to xsane.c, xsane.h and xsane-save.c
   HAVE_GIMP_2 is defined by configure.in when GIMP-2.0 was found

 - created subdirectory m4 and put self written macros from aclocal.m4 to m4/*.m4,
   copied gtk.m4, gtk-2.0.m4 and gimp-2.0.m4 from aclocal installation to m4 subdirectory,
   gimp-orauch.m4 contains a modified gimp.m4 that also can handle gimp-1.0.x
   (the original script only does work when gimptool is installed, gimp-1.0.x comes without it)
   a new aclocal.m4 can be created with "aclocal -I m4/."

 - configure.in: changed AM_FUNC_ALLOCA to AC_FUNC_ALLOCA

 - configure.in + src/xsane.c: changed PACKAGE_VERSION to XSANE_PACKAGE_VERSION
   because PACKAGE_VERSION did not work any more, looks like a new feature of aclocal or autoconf

 - updated translations: de, it, da, cs, nl, es, sk, ro, fr

 - po/Makefile.in: added test for msgfmt, gmsgfmt, gencat

xsane-0.93 -> 0.94:
-------------------

 - changed "ľs" to UTF8 codeset

 - added test and warning message if option is defined without name (NULL)
   to xsane_panel_build

 - added handling for options with of SANE_TYPE_INT and SANE_TYPE FIXED
   with CONSTRAINT_TYPE_NONE , uses spinbutton, no sliders

 - changed default medium definition of Slide from highlight=30% to highlight=40%

 - xsane_[back_gtk_]option_menu_new: added empty element to end of list
   xsane_[back_gtk_]option_menu_lookup: test for existing element before comparision

 - moved media defintions from xsane.rc to xsane.mdf

 - preview: preset area: added definition name to context menu items

 - preview: add preset area: you can change the suggested name now

 - medium definitions: added same context menue like in preset area menu,
   removed buttons "add medium" and "delete medium", they are in the
   contect menu now

 - added documentation how to use a medium and how to define a medium

 - improved documentation how to edit the preset area definitions

 - in edit medium definition mode autmatic scanarea selection and automatic
   color correction is disbaled

 - docs: replaced www.mostang.com/sane by www.sane-project.org
         and sane-devel@mostang.com by sane-devel@lists.alioth.debian.org

 - batch_scan default list is loaded at program startup

 - added test for BUGGY_GDK_INPUT_EXECEPTION in xsane.c and xsane-preview.c
   when gdk_input_add shall be used

 - changed order in xsane.h: system includes are moved to the beginning of
   the file. This way it is possible to test for operating system header files
   to decide how some #defines are made

 - added m4 makro test for msnative struct for windows

 - BUGGY_GDK_INPUT_EXCEPTION is defined for windows

 - src/Makefile.in: removed both "\" in
   -DPATH_XSANE_DOC_DIR=\$(xsanedocdir) -DPATH_SANE_DATA_DIR=\$(sanedatadir)

 - created new xsane-WIN32-compilation.txt

 - for windows the GTK1 version of xsane_window_get_position is used

 - xsane_back_gtk_get_filename: directory is prepared with ending SLASH
   instead of ending "/.", this does work with windows now when SLASH is \


xsane-0.94 -> 0.95:
-------------------

 - For xsane-win32 the xsane icon is added to the windows ressource of xsane.exe:
   added definition of XSANE_ICON=xsane-icon.opc to configure[.in]
   added creation rule of xsane-icon.opc to src/Makefile[.in]
   added @XSANE_ICON@ to XSANE_OBJS

 - in xsane_back_gtk_value_update: removed rounding (+ 0.5) in case SANE_TYPE_INT

 - changed menues in the xsane main dialog:
   - added new menu "Window"
   - moved Window menue entries form "View" to "Window"
   - moved "Show resolution list" entry from menu "Preferences" to "View"
   - moved "Update policy" entry from menu "Preferences" to "View"
   - moved "Length unit" entry from menu "Preferences" to "View"

 - added test if resolution list is displayed or scale is displayed in
   xsane_resolution_timer_callback(). Without this test it sometimes
   happened that pressing CTRL+L (Swap show resolution list) caused a
   segfault because the timer callback was executed in a moment where the
   adjustment is not valid

 - added: if (???->window)
   before each: gdk_window_process_updates(???->window)
   in xsane-gamma.c, this made problems with gtk+2.x

 - when a postscript file is added to a faxproject then the original name of the
   file is also used in the faxproject now. The pagecounter is still increased!

 - fax fine mode selection is stored in preferences now

 - handling of viewer filenames changed:
   - when an image is saved in the viewer then the viewer shows the filename in
     the window title and the viewer remembers the filename
   - when the image has been changed after it has been saved then the filename
     in the window title is shown in brackets 
   - when the filename ends with a number (counter) then the number is automatically
     increased when the file is saved
   - when a saved image is cloned then the suggested filename of the cloned image is
     clone-of-"old-filename"

 - viewer: added support for different modification restrictions
   - VIEWER_NO_MODIFICATION (only view)
   - VIEWER_NO_NAME_AND_SIZE_MODIFICATION (some filters allowed but keep size, e.g. fax)
   - VIEWER_NO_NAME_MODIFICATION (use given name, e.g. fax, mail)
   - VIEWER_FULL_MODIFICATION (normal mode)

 - added undo function (1 step) to viewer

 - changed menues in the xsane viewer dialog:
   - added menu "Edit"
   - added menu "Geometry"
   - moved Scale function from menu "File" to menu "Geometry"
   - added rotation and mirror functions to menu "Geometry"
   - added undo function to menu "Edit"

 - changed button boxes/icons in the xsane viewer dialog:
   - added button boxes equal to menus: file, edit, filters, geometry
   - added undo icon to edit box
   - moved blur uand despeckle icon to filter box
   - moved scale, rotation and mirrir icons to geometry box

 - replaced several "char buf[???];" by "char filename[PATH_MAX];"

 - changed fax mode:
   - scanned images are stored in pnm format
   - for each list entry there is a data and a type information now
   - internal viewer is used now for pnm-fax files
   - faxviewer is used for ps files
   - before sending the fax pnm images are converted into ps images
   - after sending the fax ps images are erased

 - changed e-mail mode:
   - scanned images are stored in pnm format
   - for each list entry there is a data and a type information now
   - internal viewer is used now for pnm-mail files
   - before sending the mail pnm images are converted into png images
   - after sending the mail the png images are erased
   - mail project status is translated now
   - BUFIX: end of email text is marked with 0 byte

 - added function xsane_viewer_set_sensitivity()
   - moved all gtk_widget_set_sensitive(GTK_WIDGET(v->button_box), TRUE/FALSE); to it
   - added several gtk_widget_set_sensitive(???_menu, TRUE/FALSE); commands to it
   - moved almost all v->block_actions to it
   - now it should not be possible any more to crash xsane by closing the viewer
     while it is saving something

 - added info "reduce to lineart" to image_info + xsane-pnm-header

 - renamed viewer v->reduce_to_lineart to v->allow_reduction_to_lineart

 - save_image_as() now automatically reduces lineart images to pbm before saving

 - new translations: hu

 - updated translations: de, es, ja, pt, pt_BR, sk


xsane-0.95 -> 0.96:
-------------------

 - fax progress bar does not change it's height any more when the fax dialog is resized

 - mail progress bar does not change it's height any more when the mail dialog is resized

 - added lockfile to mail project. The lockfile contains status and progress information
   from the mail_send_process and is used to display a progress_bar

 - mail status is only translated when it is displayed via gtk, in the data structures
   the untranslated texts are used

 - changed mail_attach_image_png to mail_attach_image, mime type is defined by parameter

 - added filetype menu to mail dialog with filetypes PNG, JPEG and TIFF

 - bugfix: viewer saves lineart PNM images again as lineart (bug in xsane-0.95)

 - when image is saved as pnm and it is not reduced to lineart then the input file
   is copied with xsane_copy_file => much faster
  
 - xsane-save.c: reordered function parameters for saving/conversion functions to
   (outfile, infile,...) or (output_filename, input_filename, ...) 
   (before we had sometimes infile at first and sometimes outfile at first)

 - xsane_set_sensitivity: mail_dialog and fax_dialog:
   the sensitivity off all but the progress_bar is set

 - While mail is prepared (images are converted) the xsane sensitivity is set to
   FALSE to make sure that the xsane mode is not changed in this case.
   while sending the mail (after preparation) the xsane sensitivity is set to
   TRUE and the project entry sensitivity is also TRUE, it is allowed to
   changed xsane mode and to change the mailproject, because the
   sending of the mail is done in a separate process, so there is no
   influence by changing the mail project name.
 
 - Comment:
   When xsane is closed while sending one or more mails then xsane is closed
   but the mail sending subprocesses are not terminated.

 - added SMTP (HELO/FROM/RCPT/DATA) errors to mail status

 - added xsane.fax_status, it is saved in the first line of the xsane-fax-list
   this means that the fax project directories are incompatible to earlier versions!

 - added mail_status and fax_status = ..._CHANGED when a new page is added to
   the project

 - updated images in documentation

 - updated email modus in documentation

 - email images are named "image-1" instead of "page-1"

 - fax_dialog_delete() and mail_dialog_delete() return TRUE now.
   In windows it was possible to delete the dialogs what caused
   a crash when the window should be used or closed.

 - translations: U=updated, N=not updated
   cs da de es fr hu it ja nl pt pt_BR ro ru sk sl sr sv tr vi zh
   U  U  U  U  U  N  N  U  U  U  U     U  U  N  N  N  N  U  U  N

 - xsane-preferences.c: when identifier is unknown or not a string then
   the parser does not abort or crash any more.
   XSane now should not have any problems with old config files.


xsane-0.96 -> 0.97:
-------------------

 - write_smtp_footer(): changed ".\r\n" by "\r\n.\r\n", this
   solves problems with microsoft exchange servers.

 - translations: U=updated, N=not updated, A=added/new
   cs da de es fr hu it ja nl pl pt pt_BR ro ru sk sl sr sv tr vi zh
   N  N  N  N  N  N  U  N  N  A  N  N     N  N  N  N  N  N  N  N  U

 - xsane-save.c: xsane_copy_file(): removed fclose(infile) and fclose(outfile)
   this bug caused the error "*** glibc detected *** double free or corruption (!prev): 0x........ ***"
   with new gelibc versions
   xsane-save.c: xsane_copy_file_by_name(): added fclose(infile) and fclose(outfile)

 - rmoved gtk_events_pending() from the waiting loop in xsane_back_gtk_get_filename,
   it looks like gtk_events_pending() increases CPU load very much.

 - xsane-scan.c: function xsane_reduce_to_lineart(): corrected order of filenames in
   xsane_save_image_as_lineart()

 - xsane_device_dialog(...): uses sane_control_option instead of xsane_control_option
   to read option number 0. This means that it is not needed that SANE_CAP_SOFT_DETECT
   is set for option number 0 


xsane-0.97 -> 0.98:
-------------------

 - void xsane_batch_scan_scan_list(void):
   added if (gtk_events_pending()) in while (xsane.scanning)
   (this was removed in xsane-0.97 what made a lot of trouble)

 - corrected bad <Toolbox/...> italian transations for gimp plugin

 - added Postscript Zlib-Compression and Ascii-85 compression
   (patch by Julien BLACHE <jb@jblache.org>)

 - added (single page) PDF saving routine
   (patch by Julien BLACHE <jb@jblache.org>)

 - added PDF and Postscript to mail-mode. PDF and Postscript documents can not
   be displayed inline in html mails. I also do not know a way to display a
   link to a document that is integrated in the mail. So the <IMAGE> tag
   has no effect for pdf and postscript documents in html mode.

 - --print-filenames prints the filenames after conversion, so it is
   safe that the file exists and is complete

 - selected medium definition is stored in preferences now

 - BUGFIX for scanners that do not allow to set all resolutions.
   In fax mode an possibly also in copy mode the created pages
   had a wrong scaling when the scanner did not support the
   desired resolution:
   - xsane_set_resolution returns bestdpi = selected resolution
   - xsane_set_all_resolutions stores bestdpi as used resolution

 - when option 0 (num_options) has not defined SANE_CAP_SOFT_DETECT
   then xsane prints a warning but does try to read the option value

 - added xsane_mode (VIEWER/SAVE/EMAIL/FAX/etc) to preferences

 - po/*: all po files are in UTF-8 code now
   to transform non-UTF-8 po files to UTF-8 put the po file
   into the IMPORT_PO_DIR directory and call in the po directory
   "make import-po-files"

 - rename xsane-logo2.jpg to xsane-logo.jpg and changed all
   html files to xsane-logo.jpg

 - viewer uses preferences.filetype instead of "by ext"

 - localedir for sane-backends is set by sane-prefix instead of xsane-prefix

 - replaced printf by g_print to get correct output on non-utf-8 terminals

 - question mark '?' and asterisk '*' in filenames are replaced by underscore '_'

 - translations: U=updated, N=not updated, A=added/new
   cs da de es fr hu it ja nl pl pt pt_BR ro ru sk sl sr sv tr vi zh
   U  U  U  N  N  U  U  N  N  N  N  N     N  U  U  N  N  N  N  N  N

xsane-0.98 -> 0.98a:
--------------------

 - corrected gimp_plugin bug:
   xsane_mode now is hold in xsane.xsane_mode like bevore xsane-0.98,
   additionally preferences.xsane_mode is used to store the user
   selection
   the user selection is loaded at program start when nothing else is predefined


xsane-0.98a -> 0.98b:
---------------------

 - changed bug in header file due to conficting types in xsane-front-gtk.h
   from:  int xsane_set_resolution(int well_known_option, double resolution);
   to: double xsane_set_resolution(int well_known_option, double resolution);