1CHANGES FOR FRONTEND XSANE FOR SANE:
2------------------------------------
3
4xsane-0.11 beta and before:
5---------------------------
6
7 - based on gtk-1.0.x
8 - histogram
9 - online color enhancement
10 - gamma table: tested with
11   - 8, 10 and 12 input bits per color
12   - 8 output bits per color
13 - standard and advanced options in own (non scrollable) window
14 - photocopy function via postscript output (gray + color, not lineart)
15 - frontend/Makefile.in changed for xsane
16
17
18xsane-0.11 -> 0.12:
19-------------------
20
21 - added ps, jpeg and png(1+8bit) output format, selected by filename
22 - added lineart support for ps
23 - changed configure.in and config.h.in and included them into xsane
24 - changed device selection dialog: scanner vendor and model added
25 - added xsane-logo (winner from gimp-contest) to device-selection and about-window,
26   it is loaded from SANE_DATA_PATH/sane/xsane-logo.xpm (/usr/local/share/sane/...)
27 - histogram window now always exists and may be hidden
28 - changed handling of devicename given as commandline option:
29   sane_get_devices is called and the vendor, model and type get identified,
30   if the given device name does not fit to the beginning of an existing device name
31   the device selection is opened
32
33
34xsane-0.12 -> 0.13:
35-------------------
36
37 - file format detection now works with case insensetive
38 - changed font for device selection
39 - changed output format of device list for selection
40 - disabled gamma table for 1 bit grayscale (lineart)
41 - improved error handling of saving routines
42 - removed ram eater in preview routine
43 - added default gamma upload into preview scan routine
44 - added tiff-output-format
45 - changed lineart to grayscale conversion in saving-routines
46 - added test if selected output format is supported before scan
47
48
49
50xsane-0.13 -> 0.14:
51-------------------
52
53 - added info window that displays hidden options/values
54 - xsane compiles without sane-source-package now,
55   sane must be installed.
56 - if scan is started with save for unsupported graphics format
57   an error message comes up before scanning is started
58 - tested for param.depth>1 for gamma correction
59 - added test for sane major version number, abort if mismatch
60
61
62xsane-0.14 -> 0.15:
63-------------------
64
65 - if device is given as commandline option it is now loaded again
66   if it is not in the devicelist
67 - moved some functions in xsane.c out of a #ifdef HAVE_LIBGIMP .. #endif-block
68 - added sliders in the gray/red/green/blue-levels for black/gray/white points
69 - gamma correction in preview is now only done if depth > 1
70 - enhancement sliders are not shown in lineart mode any more
71
72
73xsane-0.15 -> 0.16:
74-------------------
75
76 - moved save-routines to xsane-save, named xsane* to xsane-*
77 - included progress-routines into xsane.c
78 - moved xsane.h to xsane-text.h
79 - moved definitions and external used function headers to xsane.h
80 - added test for depth > 1 before calculating preview histogram
81 - added test for preview_gamma_data_red before calculating preview histogram
82 - added test for preview_gamma_data_red before doing preview gamma correction
83 - added p->image_data_raw = malloc(3*p->image_width*p->image_height);
84   in xsane-preview.c/scan_start
85 - added authorization_callback routine
86 - renamed a lot of routines * -> xsane_*
87 - added p->previous_selection.active = FALSE; draw_selection(p);
88   to preview_gamma_correction to redraw selection
89 - added preview_update(p); to scan_done in xsane-preview.c to reactivate selection
90 - added header for saving >8bpp raw data (SANE_GRAYSCALE_RAW, SANE_RGB_RAW)
91 - added 16 bit saving routines for pnm(ascii), png and raw
92 - added 16 bit routines to xsane_read_image_data, added 16 bit gamma software support
93
94
95xsane-0.16 -> 0.17:
96-------------------
97
98 - xsane-gtk.c moved free(elem->menu); elem->menu = 0; in panel_destroy out of
99   the for-loop
100 - added some #ifdefs #endifs around saving routines for TIFF, PNG and JPEG
101 - added BIT_DEPTH as well known option, preview sets this value to 8 if it is greater than 8
102 - added range checks in calculation for auto enhancement values
103 - calculation of auto enhancement values is not called in lineart mode any more
104
105
106xsane-0.17 -> 0.18:
107-------------------
108
109 - added quit_xsane in xsane_choose_dialog_ok_callback if no device was opened
110 - added sane_get_parameters(..) in xsane_scan_dialog
111 - added xsane_increase_counter_in_filename to xsane-save.[ch]
112 - Filename counter is automatically increased after scan
113 - Changed setup_dialog callbacks, cancel does work now
114 - zoomfactor is calculated now if copy mode is selected
115 - added tooltips for xsane setup options
116 - changed "destroy"-event of authorization dialog to "delete_event"
117 - in gsg_message made the ok button default
118 - added gsg_decision routine
119 - added overwrite warning
120 - postscript images are saved in original size in scan mode now
121
122
123xsane-0.18 -> 0.19:
124-------------------
125
126 - added cancel callback routine for conversion/saving routines
127 - printer_resolution now is set if OK is pressed in setup
128 - overwrite warning is not shown in copy mode any more
129 - changed fclose to pclose for closing pipe to printer command
130 - restored xsane.resolution in xsane_pref_device_restore
131 - added Help menu, called Netscape -remote to open help-files
132 - set sensetivity of xsane dialog and histogram dialog while
133   scan and preview scan to false
134 - added some help(html) files to the doc directory
135
136
137xsane-0.19 -> 0.20:
138-------------------
139
140 - improved online help
141 - added own version number for xsane, there are three version
142   numbers now:
143   - xsane version
144   - sane version
145   - package version (e.g if there is a package of different frontends)
146 - added gamma value (gray, red, green, blue) for printer (copy mode)
147 - changed sane-style.rc -> xsane.style.rc
148 - changed PATH_SANE_DATA_DIR -> old PATH_SANE_DATA_DIR/sane
149 - preview gamma correction is done by the xsane gamma correction instead of
150   the Xserver gamma correction, there are also values for red, green and blue
151   now.
152 - spilt setup window into notebook pages
153 - replaced in xsane_pref_set_unit_callback preview_update by preview_area_resize,
154   the ruler units are updated now if unit is changed
155 - made menue length unit inactive if length unit is pixel
156 - added dialogs for batch scan list and fax page list, but not finished and disabled
157 - changed local includes from <...> to "..."
158 - test for filetype is only done in scanmode now
159 - added list of (up to 10) printers for photocopy mode
160 - added error messages if failed to open files
161 - added sigpipe_handler for handling broken pipe while writing to printercommand
162
163
164xsane-0.20 -> 0.21:
165-------------------
166
167 - in xsane-preview.c if backend does not use scanareaselection dev_selection[i]
168   is set to width/height of image
169 - replaced most sprintf by snprintf
170 - made menue length unit inactive if scanare is nut supported by the backend
171 - set maximum value in 16 bit saving routines to 16 bit/65535
172 - 1 bit/pixel png file is saved with 1 bit/pixel instead of 8 bit/pixel now
173 - added support for gtk-1.2
174 - font are set in xsane-style.rc now
175
176
177xsane-0.21 -> 0.22:
178-------------------
179
180 - split xsane.c in:
181   - xsane.c
182   - xsane-setup.c
183   - xsane-gamma.c
184   - xsane-front-gtk.c
185   - xsane-scan.c
186 - renamed xsane-gtk.c to xsane-back-gtk.c
187 - removed libtool from package
188 - added experimental fax support
189
190xsane-0.22 -> 0.23:
191-------------------
192
193 - changed configure.in, removed some unnecessary parts
194   and added error messages if gtk or sane is not installed
195
196 - removed copy-mode resolution bug (was not changed if zoom slider was moved)
197 - removed bug in faxmode if faxproject did not exist (fclose(0))
198 - changed definition of struct xsane and struct xsane_setup
199 - added documentation-viewer-command to setup, netscaperemote is selected
200   via the keyword "netscape-remote"
201
202xsane-0.23 -> 0.24:
203-------------------
204
205 - removed some bugs in gamma value calculation for real scan (preview was ok)
206 - added activation for some windows after scan error
207 - removed bugs in startup if no device is available or selected,
208   the xsane.rc-file keeps untouched now
209
210
211xsane-0.24 -> 0.25:
212-------------------
213
214 - moved xsane_pixmap_new as xsane_create_histogram from xsane-front-gtk.c to
215   xsane-gamma.c
216 - now putting the histogram sliders directly into the slider preview instead
217   of drawing into the preview window, the sliders are not erased by other
218   other windows now
219 - added block_update_param flag, the update_param and update_histogram routines
220   are now called only one time if the preview scan area is changed
221 - added changing of one edge in preview scanarea (left mousebotton near the edge)
222 - added moving of preview scanarea (middle or right mousebutton)
223 - moved creation of histogram dialog to xsane-gamma.c
224 - removed some bugs in the preview, resizing the preview window should work now
225 - added an experimental zoom for the preview
226
227
228xsane-0.25 -> 0.26:
229-------------------
230
231 - removed some preview_update calls or replaced them by preview_update_selection
232 - renamed preview_update to preview_update_surface and made surface_changed a parameter
233 - ruler scaling is now ok in resized windows and zoomed previews
234 - added some range checks in preview_calculate_histogram
235 - parts in the preview window that are not part of the scan area are painted gray now
236 - added image_surface to preview structure, it stands for the surface of the scanned preview image
237 - renamed preview_get_image_scale to preview_get_scale_preview_to_image
238 - added routine preview_get_scale_device_to_preview
239 - added Zoom 20% out routine
240 - the selected area can be larger than the viewable preview now
241 - added Pipette functions (pick black, gray and white) - mouse pointer does change to pipetty icon
242 - p->aspect is calculated by image-size now if the surface is not defined (INF) in
243   preview_update_surface
244 - preview_update_surface is called now after preview scan and preview_restore_image
245 - moved the "Help" menu in the main dialog to the right
246
247
248xsane-0.26 -> 0.27:
249-------------------
250
251 - added scantips and index of backends to help menu
252 - changed configure.in, libpng should be found on (all ?) systems now
253 - black and white point sliders use the two additional pixels now
254 - user can preset (reduce) the preview area now
255 - added "Select visible area" button
256 - removed some bugs in gray gamma value calculation for real scan (preview was ok)
257 - setup of faxoptions: normal, fine and postscript option is saved now
258
259
260xsane-0.27 -> 0.28:
261-------------------
262
263 - added option negative into enhancement and changed create_gamma
264   draw_histogram and auto_enhancement to work with it!
265
266 - increased contrast range from -100..+100 to -100..+200
267   and brightness range from -100..+100 to -200..+200
268   because the old values were not sufficent for scanning negatives
269
270 - added selection for number of copies in copy mode
271
272
273xsane-0.28 -> 0.29:
274-------------------
275
276 - removed bug in xsane_set_resolution that could cause a segmentation fault
277 - added support for resolution of type CONSTRAINT_WORD_LIST
278 - xsane-mode (scan, copy, fax) can be selected as command line option (-s, -c, -f) now
279 - most texts that are defined in xsane are defined in xsane-text now
280
281
282xsane-0.29 -> 0.30:
283-------------------
284
285 - removed bug in xsane_set_resolution, now highest resolution can be set if
286   resolution is a list!
287 - added RGBI support - must be activated in xsane.h (SUPPORT_RGBI)
288 - added options rgb default and negative to preferences
289 - enhancement values are saved with device settings now
290 - The filename can be specified now for the file in which the device settings are saved
291   or from which they are loaded.
292   - changed extension from ".rc" to ".drc" (device rc)
293   - added header "XSANE_DEVICE_RC" to identify it as device-rc-file
294 - added calculation for color components to auto enhancement
295 - pipette functions: middle mouse button defines shadow/gray/highlight
296   for color components, left mouse button only defines gray values!
297 - auto enhancement values are set to standard values in
298   xsane_calculate_histogram if no values could be calculated
299 - histogram is cleared when sensitivity is set to false
300 - improved calculation of auto enhancement values
301 - increased contrast range from -100..+200 to -100..+300 (gray) and
302   -300..+300 (color) and brightness range from -200..+200 to -300..+300
303
304
305xsane-0.30 -> 0.31:
306-------------------
307
308 - changed filename character transformation: erase " ", "_" -> "__", "/" -> "_"
309 - device settings standard file name is vendor:model
310   so it does not matter any more if the sg-device name has changed
311 - the xsane main window can be a fixed or a scrolled, resizable window now.
312   selection is done with setup/display/"main window fixed",
313   the main window mode can be overwritten by specifying a command
314   line option:
315   -R or --Resizeable activates the resizeable, scrolled window,
316   -F or --Fixed activates the fixed (non resizable) window (default)
317 - histogram is cleared when info dialog or about dialog is opened
318 - changed version option from -V to -v
319 - added support for Automatic Document Feeder (scan until error)
320   this is experimentary because in the SANE-standard there is
321   no way defined how a frontend can identify an ADF.
322   The backend has to load the next document automatically!
323 - in xsane_enhancement_update replaced gtk_signal_emit_by_name
324   by gtk_signal_emit
325 - moved more texts to xsane-text.h
326 - changed all RGBI -> RGBA because the 4th channel is ALPHA
327   I think that SANE_FRAME_RGBA will be added to the sane standard
328 - gtk+-1.2.0 is minimum requirement: removed tests for
329   gtk_tooltips_set_tips, gtk_scrolled_window_add_with_viewport
330   and gtk_events_pending that were needed for gtk+-1.0.x
331 - added option "--device-settings file" to define default
332   filename for device-settings
333 - corrected "legal" size in preview
334 - added device_text to info and preview window title
335 - moved color definition to xsane_creat_histogram_dialog
336 - pixmap colors depend on histogram_dialog now because
337   the histogram dialog is the first dialog that exists
338 - renamed all gtk functions like defined in gtkcompat.h
339   (gtk+-1.0.x -> gtk+-1.2.x)
340 - removed bug in device selection, device can be selected
341   now with keyboard
342 - xsane info window prints gamma depth "none" in 1 bit modes
343
344
345xsane-0.31 -> 0.32:
346-------------------
347
348 - added option --no-mode-selection/-s to disable menu for
349   xsane mode selection
350 - prepared text outputs (in xsane-text.h) for NLS/gettext support
351 - multiple \n in scanf while reading saved preview image removed
352 - added AM_PROG_CC_STDC to configure.in for HP/UX
353 - added a break statement after each default in switch block
354 - changed test for multiple image scan, when sane_read returned with
355   SANE_STATUS_GOOD when the image is finished we start a new scan,
356   SANE_STATUS_EOF is expected when scanning should be stopped.
357   This way the Automatic Document Feeder is supported a way
358   like planned in the sane standard, the backend says
359   if the frontend shall call sane_start repeatadly.
360
361
362xsane-0.32 -> 0.33:
363-------------------
364
365 - removed change about SANE_STATUS_GOOD in multiple image mode.
366   Adf mode is detected by scanmode again. This would be better
367   selected by a mulit_image bit in the preferences block.
368 - added common rotuine xsane_set_sensitivity to xsane-front-gtk.c
369 - renamed xsane_test_adf to xsane_test_multi_scan
370
371
372xsane-0.33 -> 0.34:
373-------------------
374
375 - the preview selection is based on device coordinates instead of
376   preview window coordinates now
377 - added preview buttons and preview viewport to xsane_set_sensitivity
378 - info and about dialog use xsane_set_sensitivity now
379 - dummy_filename is created and opened for writing AFTER sane_start is called.
380 - sane_start() == NO_DOCS is not handled as error any more
381 - xsane_scan_done -> sane_cancel is called now if an error occurs
382 - if an error occurs while scanning the created file is removed
383 - xsane windows/buttons get inactive while setup dialog is open
384 - xsane_scan_done -> sane_cancel is called when main window is closed
385   (while scanning)
386 - if there are no standard device settings at program startup, xsane
387   take the backend predefined resolution (before this was set to 100)
388 - if no scanarea options are given, the preview works with
389   [0,INF] instead of [-INF,INF] now
390 - transformed all gif files in directory doc to jpeg format because of
391   all the trouble about the gif licence.  Will never use gif again!
392
393
394xsane-0.34 -> 0.35:
395-------------------
396
397 - corrected doc/Makefile.in for change gif->jpg
398 - added tiff compression type selection for multi bit and one bit images to
399   setup:
400   none, CCITT 1D Huffman compression, CCITT Group 3 Fax compression,
401   CCITT Group 4 Fax compression, Lempel-Ziv & Welch, JPEG DCT compression,
402   pack bits
403 - implemented real single-bit format for tiff
404 - setup/jpeg quality selection is enabled if jpeglib or libtiff is available
405 - added gimp_image_set_resolution(...) to gimp saving routine
406 - added test for libgimp/gimpfeatures.h to configure.in and config.h.in
407 - disabled sensetivity while filename browse window is open
408 - added handling if fileselection window was closed
409 - moved filename "Browse" button from the right to to the left with disk-image inside
410 - (added image filetype menu to the image filename line - not ready)
411 - replaced button-texts negative, rgb default, auto, default, store and
412   restore by icons
413
414
415xsane-0.35 -> 0.36:
416-------------------
417
418 - moved xsane_generate_dummy_filename in xsane-scan.c out of a
419   #ifdef HAVE_LIBGIMP_H block
420 - changed some icons
421 - added #ifdef HAVE_LIBTIFF around TIFF-relevant definitions in
422   xsane_setup_dialog in xsane-setup.c
423 - included NLS/gettext version 0.10.35
424 - texts that are created by xsane can be converted to other languages
425   now - texts created by the backend can not be translated yet!
426 - added gettext relevant routines to aclocal.m4 and correct some bugs
427 - added french translation - thanks to Vincent Renardias <vincent@ldsol.com>
428 - added german translation table
429 - translation files "*.po" are created by "*.po.in" with help of the
430   preprocessor of gcc, all texts are #defined in frontend/xsane-text.h
431
432
433xsane-0.36 -> 0.37:
434-------------------
435
436 - added some texts to xsane-text.h and newlanguage.po.in[.in],
437   created file add-0.37.po.in where the new entries are listed
438 - moved generation of xsane.backend (backendname like umax)
439   from xsane_help_build_menu to xsane_device_dialog, needed for
440   translation of backend options
441 - added translation for backend options:
442   Backend translation is done with translation table sane-BACKENDNAME.mo
443 - removed bug in preview_update_selection()
444   (forgotten p->selection.active = TRUE)
445   The selection box is updated correct now
446 - removed bug in aclocal.m4: not fount "-lintl" when gettext is in glibc
447
448
449xsane-0.37 -> 0.38:
450-------------------
451
452 - changed STANDALONE -> XSANE_STANDALONE and
453   GIMP_EXTENSION ->  XSANE_GIMP_EXTENSION because GIMP_EXTENSION
454   now (gimp-1.1.10) is used in the Gimp
455 - changed brightness and contrast range maximum form 300 to 400 %
456 - moved gimp installation texts to xsane-text.h
457   added entries to po/newlamguage*
458 - xsane -g now does not print anything and does not abort if gimp
459   support is compiled in
460 - changed lib/Makefile.in and sanei/Makefile in, make install should
461   work without a previous make now
462 - xsane gimp-plugin is selected via file/acquire now when
463   gimp-version >= 1.1.9
464 - . removed ../intl/libintl.a form frontend/Makefile.in and
465   . added CATOBJEXT=UNKNOWN and XGETTEXT=":" in if "gettext is in libc"
466     to aclocal.m4
467   hope this solves problems with missing "-lintl" now on all systems
468 - moved "show xxx" menu items form menu "Preferences" to menu "View"
469 - added continuous update to histogram sliders and preview selection
470 - added preferences menu item "Update policy"
471 - now options are only changable if SANE_CAP_SOFT_SELECT is set
472 - added test for bitdepth in xsane_scan_dialog for GIMP mode,
473   error message pops up when unsupported bit depths are selected
474 - moved case XSANE_PNM16 out of a #ifdef HAVE_LIBPNG block
475 - position of all windows and size of main window and preview window
476   is save in device settings, setting preview window geometry
477   does not work because window does not exist at relevant times.
478
479
480xsane-0.38 -> 0.39:
481-------------------
482
483 - bounded contrast to >=-100.0
484 - Added test if GIMP_CHECK_VERSION is defined
485
486
487xsane-0.39 -> 0.40:
488-------------------
489
490 - device name is saved in drc file now
491 - xsane version is saved in drc file now
492 - warning is printed if device rc file was not created for active device
493 - removed member device from struct preferences - was never used
494 - changed frontend/Makefile.in (XSCAN->BINPROGS)
495 - changed configure.in:
496   - changed order of some checks
497   - added status messages at the end
498   - added "--enable-intl-patch" which adds -lintl to check for libsane
499   - added "--disable-gimp"
500   - added "--disable-jpeg"
501   - added "--disable-tiff"
502   - added "--disable-png"
503 - moved xsane_generate_dummy_filename and fopen() into if XSANE_STANDALONE block,
504   there is no empty file created in gimp mode any more.
505
506
507xsane-0.40 -> 0.41:
508-------------------
509
510 - renamed xsane-incons.h -> xsane-icons.c and xsane-icons-def.h -> xsane-icons.h
511 - moved all includes that are needed by most xsane sources to xsane.h
512   problem with missing stdio.h is solved that way
513 - changed configure script:
514   - check for sane is moved to the end because of missing libintl,
515   - check for png is done with x_includes and x_libraries,
516     and libpng is added to lib after all checks are done
517
518
519xsane-0.41 -> 0.42:
520-------------------
521
522 - changed configure.in, error message about missing sane is also printed if sane.h
523   is not found.
524 - changed info row (size box, start button): the start button is made smaller when
525   the info box needs more place
526 - changed calculateion of size in info row from unisgned long to float
527   because unsigned long / 10 were to small to fit A4 with 1200x1200 dpi
528 - changed png part of configure, HAVE_LIBPNG is now defined again
529 - corrected png lineart saving
530
531
532xsane-0.42 -> 0.43:
533-------------------
534
535 - disabled LZW-compression for TIFF.
536   Unisys holds a patent for LZW compression. I am not sure
537   about the licence status of LZW and TIFF. GIF is not supported
538   because of the licence problem. LZW for TIFF is disabled now.
539 - removed all LZW entries in sourcecode and translation tables
540
541
542xsane-0.43 -> 0.44:
543-------------------
544
545 - renamed NOTEBOOK_PRINTER_OPTIONS to NOTEBOOK_COPY_OPTIONS
546 - added sane-problems-doc.html to the help menu
547 - added functions around "by ext" menu
548 - all functions in xsane-back-gtk.c are named with xsane_back_gtk_* now
549
550
551xsane-0.44 -> 0.45:
552-------------------
553
554 - added *s = 0; in sanei_codec_ascii.c when reading a string that
555   does not start with '"'
556
557 - added test "if (!w.status)" when reading a string in sanei_load_values.c
558   the missing test caused a segfault when a string was expected but
559   the line did not start with '"'
560
561 - merged together all needed sanei_* routines in xsane-rc-io.c
562   and renamed all sanei_* to xsane_rc_io_*, removed subdir sanei
563   and changed xsane.c and xsane-preferences.c to use xsane-rc-io.[ch]
564   and reprogrammed some things.
565
566 - renamed all xsane_pref_device_* to xsane_device_preferences_*
567   and moved them to xsane-device-preferences.c
568
569 - renamed sanei_w_[load|save]_values to xsane_device_preferencs_[load|save]_values
570   and moved them to xsane-device-preferences.c
571
572
573xsane-0.45 -> 0.46:
574-------------------
575
576 - changed xsane_rc_io_w_space: returns ENODATA instead of EINVAL at EOF
577
578 - added xsane_rc_io_w_skip_newline
579
580 - changed xsane_device_preferences_load_values:
581   - begin at start of file is only inciated if w.status == ENODATA
582   - if w.status is an other error, the line is skipped
583
584 - moved and renamed w_string, w_int, w_double from xsane-preferences.c
585   to xsane_rc_pref_* in xsane-rc-io.c
586
587 - repleaced fprintf/fscanf for reading xsane device preferences by
588   xsane_rc_io_w_* routines
589   This way the floating point values (xsane- gamma, brightness and contrast)
590   are saved different and the *.drc-files are incompatible in that point.
591
592 - added test for lineart mode (depth == 1) in xsane_enhancement_update
593   solves segmentation fault problem when device settings with lineart enabled
594   are loaded
595
596
597xsane-0.46 -> 0.47:
598-------------------
599
600 - if helpfile viewer is netscape-remote and netscape is not running
601   it is started
602
603 - replaced ENODATA (used for EOF detection in xsane-rc-io and
604   xsane-device-preferences) by XSANE_EOF (=-1)
605   (ENODATA is not defined on all systems)
606
607 - If faxproject does not exist, project data entries are made insensitive
608   and buttons "send project" and "delete project" are replaced by "create project"
609
610 - Added missing "&" in xsane_device_preferences_save_values:
611   xsane_rc_io_w_array(w, &len, (void **) &word_array, (WireCodecFunc) xsane_rc_io_w_word, sizeof(SANE_Word));
612   that cause segmentation fault when writing bool, int or fixpoint arrays.
613
614
615xsane-0.47 -> 0.48:
616-------------------
617
618 - "START" button is made insensitive in fax mode if project does not exist.
619
620 - Preview window is created at the same time as the main dialog and it is destroyed
621   at program end. Disabling "show preview" hides the preview window. This way the preview
622   window placement does work correct.
623
624 - set default values in xsane_device_preferences_load_file(char *filename)
625   before reading the saved values, show_preview default = true
626
627 - Mouse pointers display relevant mode icons in preview window now.
628
629 - In copy mode the maximum selectable size that fits to the selected printer is drawn
630   by a rect now. Selection is limited to the printer size.
631
632 - if no local xsane.rc, xsane-style.rc or DEVICE.drc file exists it is loaded from SANE_DATA_DIR/xsane
633
634 - all xsane rc files are placed in a subdirectory xsane now (~/.sane/xsane, SANE_DATA/DIR/xsane)
635
636 - temporary files (previews, conversions) are saved in /tmp (defined in SANE_PATH_TMP in xsane.h) now
637
638 - added window decoration icon (top left) to each xsane window (does work with kwm, does not work with fvwm2)
639
640 - added warning icon and error icon
641
642 - removed xsane_files_exit_callback, now xsane_scan_win_delete is used for all exit program calls
643
644 - conversion-* and preview-* files are created with permission "-rw-------",
645   images- and project-files are created with "preferences.image_umask"
646   xsane.rc and *.drc are created with XSANE_DEFAULT_UMASK defined in xsane.h
647
648 - added file permission selection in preferences/saving options for image file and for directory (faxproject)
649
650 - disabled fileoptions (mkdir, rm, mv) in loading/saving preferences
651
652
653xsane-0.48 -> 0.49:
654-------------------
655
656 - added support for different x/y resolutions and zoom factors,
657   the y-resolution slider is added to the xsane main dialog now
658
659 - in gimp mode x- and y-resolution infos are set correct now
660
661 - added resolution and zoom icons for x- and y-dimension
662
663 - added fax_width and fax_height to preferences
664
665 - added paper size frame in fax mode preview
666
667 - added czech translation - thanks to by Stanislav Brabec <utx@k332.feld.cvut.cz>
668
669 - changed gimp_install_procedure(...): "RGB, GRAY" -> 0
670
671 - changed printer geometry setup from 1/72 ich to mm
672
673 - added setup entries for fax- width, height, left_offset and bottom_offset
674
675 - corrected terminating \0 of strings in sane_choose_device
676
677 - when button "Negative" is pressed the white/gray/black points
678   are also inverted
679
680 - split preview_restore_image into preview_restore_image and
681   preview_restore_image_from_file, it can zoom into a saved
682   image now.
683
684 - zoom functions are done now without a new preview scan.
685   3 different zoom levels are stored.
686
687 - in xsane_scan_start the output file is only opend once in multi pass scan
688   three pass scan does work now again.
689
690 - added several missing routines for gamma correction in three pass scan
691
692
693xsane-0.49 -> 0.50:
694-------------------
695
696 - removed bug in calculation of paper size in copy and fax mode
697
698 - added support for rotate image in xsane_save_ps
699
700 - added support for rotate (landscape mode) in copy mode and save-ps mode
701   and added preferences menu "Rotate Postscript"
702
703 - added bugfix for gtk_tooltips_set_colors as long as it does not work in gtk
704
705 - improved memory allocation routines and error handling in preview
706
707 - after the main window is created the resolution, resolution_x amd resolution_y
708   are made up to date now
709
710 - changed dynamic menue list definition in xsane_setup for TIFF_COMPRESSION menu
711
712
713xsane-0.50 -> 0.51:
714-------------------
715
716 - added some rangechecks to histogram->gamma calculation
717   it is done as histogram->gamma->histogram now
718
719 - changed redraw frame in preview_display_partial_image(),
720   now the old image is completely overpainted!
721
722 - added xsane_set_all_resolutions() to xsane_printer_callback,
723   now paper size frame is updated when printer is changed
724
725 - corrected wrong error message in setting of scansource_selection
726   from "unknown type" to "unknown constraint type"
727
728 - moved xsane.header_size = 0; to the end of xsane_scan_done so it is called in each case
729   the missing command was responsible for a segfault when starting a scan after xsane_cancel
730   has been called
731
732 - moved progress_bar from it's own window to the bottom of the main window
733   progress_bar texts are displayed in info frame and in progress bar
734
735 - added size in mm/cm/in to progress bar when not scanning
736
737 - in scales the number of digits is defined by quantization now, if no quantization is given
738   by backend (quant=0, SANE_TYPE_FIXED) x.2 digits are displayed
739
740 - corrected page_step for scales
741
742 - selection_active is reset in preview_display_partial_image instead of preview_paint_image
743
744 - updated czech translation file cs.po.in - thanks to Stansislav Brabec
745
746
747xsane-0.51 -> 0.52:
748-------------------
749
750 - changed gimp_install_procedure(...) for specified device: "RGB, GRAY" -> 0
751
752 - in xsane-scan.c and xsane-preview.c added " | GDK_INPUT_EXCEPTION" to
753   gdk_input_add(fd, GDK_INPUT_READ | GDK_INPUT_EXCEPTION, preview_read_image_data, p);
754
755 - added static int xsane_set_modus_defaults(void)
756   zoomfactor is set to 1.0 if copy mode is selected
757   full preview area is selected if copy or fax mode is selected
758
759 - removed a second xsane_device_preferences_restore(); in static void xsane_device_dialog(void)
760
761 - zoom factor keeps unchanged when printer is changed
762
763 - added psfile-geometry to setup/saving options, it is used when saving postscript in scanmode
764
765 - moved exisiting routines to open functions to xsane-front-gtk.c:
766   void xsane_define_output_filename(void);
767   void xsane_identify_output_format(char **ext);
768
769 - define_maximum_output_size is called in each routine that changes filename or fileextension
770   because the output frame is also drawn in scanmode with filetype postscript now
771
772 - included Stanislav Brabec's <utx@penguin.cz> sed-scripts and changes for Makefile.in in xsane-*/po
773
774 - added creation of newlanguage.po in po/Makefile.in
775
776 - updated german translation file de.po
777
778 - updated czech translation file cs.po - thanks to Stanislav Brabec <utx@k332.feld.cvut.cz>
779
780 - updated french translation file fr.po
781
782
783xsane-0.52 -> 0.53:
784-------------------
785
786 - added test if vendor, model and type strings do exists (pointer != 0)
787   otherwise "no vendor",... is printed
788
789 - changed
790     ext = &extension;
791   to
792     if (extension)
793     {
794       *ext = strdup(extension);
795     }
796     else
797     {
798       *ext = 0;
799     }
800   in xsane_identify_output_format - bad thing, I get old ;-)
801
802 - added new routine xsane_find_best_resolution that makes sure that the selected resolution
803   fits into range/quantization given by backend.
804   This is used by xsane_set_resolution and when resolution_list is created.
805
806 - added xsane_set_all_resolutions to xsane_set_modus_defaults
807
808 - xsane resolution can be changed by backend now
809
810
811xsane-0.53 -> 0.54:
812-------------------
813
814 - updated french translation table
815
816 - updated german translation table
817
818 - changed type of umask in preferences from mode_t to int because
819   sizeof(mode_t) is on some machines only 2 bytes what cause problems.
820   all calls of umask(foo) are changed to umask((mode_t) foo)
821
822 - changed preferences update_policy from GtkUpdateType to int.
823
824 - selection box can not be moved out of the preview window, the
825   size of the selection keeps unchanged in that case now.
826
827 - removed some gtk_main_iteration and reordered some selection drawing routines.
828
829 - removed unused files/directories from package:
830   sanei, include/sane/sanei_(some).h, po_old
831
832
833xsane-0.54 -> 0.55:
834-------------------
835
836 - added preview support for 16 bpp (transformed to 8bpp)
837
838 - added copyright line in devcie selection dialog
839
840 - preview selection frame is only active when backend supports coordinate selection
841
842 - added preview oversampling factor (multiplier for calculated preview resolution)
843
844 - added lineart enhancement: preview can be done in grayscale now,
845   threshold value change is displayed without a new preview scan.
846
847 - added "device options" to setup dialog:
848   - Scanner dependant options for grayscale->lineart conversion have
849     to be entered there.
850
851 - a color preview is now displayed gray when grayscale mode is selected
852
853 - updated de.po, cs.po, fr.po
854
855 - updated po/xsane-pot.sed
856
857
858xsane-0.55 -> 0.56:
859-------------------
860
861 - added hold timer to preview (update-policy=delayed)
862
863 - added hold timer to xsane_slider (update-policy=delayed)
864
865 - moved help menu from file to help
866
867 - added swedish (sv) translation - thanks to Johan Bengtsson <johanb@lls.se>
868
869 - removed bug in xsane_rc_io_w_string, it returns EINVAL now each time when the string
870   does not begin with "
871
872
873xsane-0.56 -> 0.57:
874-------------------
875
876 - made xsane_choose_device return type to void (was gint32)
877
878 - arranged device-preferences in struct xsane in the order they are used
879   as device preferences, made sure that all variable types are correct:
880   - changed type of xsane.mode from gint32 to int
881   - changed type of xsane.lineart_mode from gint32 to int
882   - changed type of xsane.show_preview from SANE_Bool to int
883   - changed type of xsane.enhancement_rgb_default from SANE_Bool to int
884   - changed type of xsane.fax_finemode from SANE_Bool to int
885
886 - added mask for *_lock in preview motion_notify_event handling
887   Preview selection can be done with locks activated now
888
889 - histogram is cleared before/redrawn after saving/loading device settings
890
891 - added xsane_control_option() that tests if option >= 0 and returns SANE_STATUS_INVAL if not
892
893 - added xsane_get_option_descriptor() that tests if option >= 0 and returns NULL if not
894
895 - changed parameters of preview_area_resize and added preview_area_resize_handler
896
897 - removed a lot of gtk_main_iterations from xsane_preview.c
898   they make problems in the redrawing order and can cause display problems
899
900
901xsane-0.57 -> 0.58:
902-------------------
903
904 - split the preview_event_handler into
905   - preview_press_button_event_handler
906   - preview_motion_event_handler
907   - preview_release_button_event_handler
908
909 - the preview_expose_event_handler now is called twice,
910   the second call has been placed in the preview_event_handler_before
911
912 - reactivated gtk_main_iteration after at the end of motion_event
913
914 - added warning window when xsane is started as root
915
916 - added selection of temporary directory in preferences/setup/saving options
917
918 - added gdk_input_remove(xsane.input_tag); before xsane_start_scan is called
919   in 3-pass scanning mode (suggestion from Heiko_Schroeder@t-online.de)
920
921 - changed output of "xsane -v"
922
923 - in xsane_scan_done moved xsane.header_size = 0; before test for ADF
924   Thanks to Russell Coggrave for the info about it.
925
926 - added gtk_set_locale() before gtk_init()
927
928 - added copyright sign "(c)" to translated texts because it is not available on all charsets
929
930 - temporary filenames are created random and unique (mktemp + random number)
931   due to security problems with fixed/calculateable tempfiles.
932
933 - the preview-files are created (empty) at program startup now
934
935 - when program exits the previews are erased
936   there is no way to store the preview images any more when the program is closed
937
938 - preview_restore_image() creates the xsane-startimage if no preview is stored
939
940 - renamed directory frontend to src
941
942 - create xsane-help script that opens online helpfile
943
944
945xsane-0.58 -> 0.59:
946-------------------
947
948 - preview_do_gamma_correction does test for 3 pass scanner color mode
949
950 - changed fax x-resolution and standard resolution from 98 ppi to 204 ppi
951   and with of faxpage from 210.0 to 215.7 (so we get 1728 pixels in x direction,
952   hxlafax-faq says that is the correct size)
953
954 - split preferences.printer[..].resolution -> lineart, grayscale and color_resolution
955
956 - added setlocale(LC_NUMERIC, "C"); in xsane_init() and #include <locale.h> in xsane.h
957   this should solve the problems with empty images (100%transparent) with gimp
958   and other problems that were caused by local settings (1.3 <=> 1,3).
959
960 - added setup-option "disable gimp preview gamma"
961
962 - added selection (preferences/setup/enhancement options) if autoenhancement changes gamma value
963
964 - renamed Preferences/Setup/"Device options" to "Enhancement options"
965
966 - removed xsane internal callbacks from dialog struct, the functions are called directly now
967
968 - changed the reading of the preview image header. The last newline character before the image
969   data starts again made some problems, this seems to depend on the data that follows. So I added
970   a fgets() command to skip the newline character - this seems to work.
971
972 - changed increase_filename_in_counter, does work now if the only character of the base-filename
973   is the counter
974
975 - reduced size of src/xsane-startimage.pnm (1MB => 0.6MB)
976
977
978xsane-0.59 -> 0.60:
979-------------------
980
981 - after filename counter is increased the cursor in the outputfilename entry is moved to the right
982
983 - in preview_read_image_data when image is complete:
984    preview_update_surface(p, 0);
985   is called before
986    preview_display_image(p);
987   this way the geometry of the first preview scan is correct.
988
989 - moved xsane_set_all_resolutions in xsane_update_xsane_callback(),
990   it now also is called when the backend only uses one reesolution
991
992 - added calibration image (xsane-calibration.pnm) that is loaded when setup window is created.
993   The xsane enhancement functions are disabled in calibration mode, the image can not be
994   resized (xscale = yscale = 1.0).
995   The previsous image is reloaded when the setup window is closed again.
996
997 - enviornment variable SANE_DEFAULT_DEVICE is used to activate the radiobutton in the
998   device selection menu
999
1000 - removed unused item "custom" from preview surface menu
1001
1002 - changed preview surface menu items:
1003   A3  -> A3P (portrait)
1004   A4  -> A4P (portrait)
1005   A4H -> A4L (landscape)
1006   A5  -> A5P (portrait)
1007   A5H -> A5L (landscape)
1008
1009 - removed script xsane-help, necessary command now is listed in xsane.PROBLEMS
1010
1011
1012xsane-0.60 -> 0.61:
1013-------------------
1014
1015 - added debug output function and messages (environment variable XSANE_DEBUG)
1016
1017 - moved all global variables and struct GSGdialog to global struct xsane
1018
1019 - cleaned up some variable names
1020
1021 - added free gamma curve dialog (not ready)
1022
1023 - prepared xsane for win32:
1024   - when BUGGY_GDK_INPUT_EXCEPTION is defined only blocking mode is used
1025     (needed because GDK input exception does not work on win32)
1026   - on win32 you cannot get a homedirectory, for this
1027     XSANE_FIXED_HOME_PATH has to be set to the path that shall be
1028     used as homedirectory
1029   - replaced all gtk_dialog_new by gtk_window_new and added hbox and vbox to the window
1030     (gtk_dialog_new does not work on WIN32)
1031   - added xsane.WIN32 and xsane.WIN32-compilation that describes how xsane
1032     is build on WIN32 with CYGWIN
1033   - replaced "/" in all paths, added label SLASH that is predefined to '/' if it is
1034     not defined by compiler option. For WIN32 it is set to '\' by compiler option
1035   - all fopen functions use argument "rb" or "wb" now (b=binary). This is needed for WIN32
1036     and the b is ignored on unix systems.
1037   - published binary version xsane-win32-0v01 and xsane-win32-0v02 based on
1038     xsane-pre0.61 versions
1039
1040 - removed an ugly bug: in struct Preferences there was predefined a string ("/tmp/")
1041   that caused a bad memory state when the string memory was freed,
1042   instead the string is defined in xsane_pref_restore now
1043
1044 - changes for tiff format:
1045   - added support for 16 bit tiff format.
1046   - predefined tiff-compression is changed from 5 to PACKBITS(16bit), JPEG(8bit), FAXG3(1bit).
1047   - add resoultion-tags and datetime-tag to tiff files.
1048
1049 - added "change directory" entry to preferences menu
1050
1051 - added "scanning for devices" dialog
1052
1053
1054xsane-0.61 -> 0.62:
1055-------------------
1056
1057 - updated manpage (was about 1 year old)
1058
1059 - removed sigprocmask.c from xsane-*/lib (not used)
1060
1061 - added icons (32x32 and 48x48) for unix(xpm) and Windows(ico)
1062
1063 - some additional changes for rotating preview
1064
1065 - removed bug in preview_get_color that caused segfault when
1066   click with pipette was placed into preview area but outside the image,
1067   ( there was no test for image size )
1068
1069 - in info dialog tiff is now listed as supported 16 bit format
1070
1071 - filename counter is increased now if path or filename includes a "."
1072   and fileytpe is seleced by menu
1073
1074 - added possibility to move the edge of the preview selection frame
1075   thanks to Laurent Martelli for his suggestion for that
1076
1077 - added sane_get_parameters(xsane.dev, &xsane.param) at end of preview_scan_done
1078   this way it is made sure that xsane.param is correct after preview scan
1079   (was not correct in copy mode with lineart=grayscale->lineart preview)
1080
1081 - added explaination of "[DEVICE]" in xsane help message
1082
1083 - gimp handling now is always called in xsane_scan_done
1084   (was not called when an error occured or the cancel button was pressed).
1085
1086 - moved selection of fax finemode to fax-project window, image is always scanned
1087   in fine mode resolution.
1088
1089 - html-documentation is updated (a bit)
1090
1091 - removed bad "+ 0.5" from calculation in preview_set_option_float: word = SANE_FIX(value) + 0.5;
1092
1093 - included italian translation table (it.po), thanks to Mauro Colorio <macolori@tin.it>
1094
1095 - added error message in xsane_control_option if command failed
1096
1097 - p->startimage is set to 0 in preview_scan_start
1098
1099
1100xsane-0.62 -> 0.63:
1101-------------------
1102
1103 - added turkish translation (thanks to Togan Muftuoglu <toganm@turk.net>)
1104
1105 - changed gimp interface from 1.0 to 1.1.2x (GParam->GimpParam etc),
1106   added xsane-oldgimp.h that adds #defines for the old gimp interface
1107
1108 - added "make uninstall"
1109
1110 - changed confiure.in, added test for x_includes before it is used,
1111   renamed it to configure.old
1112
1113 - new configure.in file that does use "sane-config" now to find the sane libraries
1114
1115
1116xsane-0.63 -> 0.64:
1117-------------------
1118
1119 - changed xsane-oldgimp.h to work with gimp-1.0.4
1120
1121 - added info icon (green triangle with explanation mark)
1122
1123 - added info window function: xsane_back_gtk_info
1124
1125 - ADF mode: if first  scan fails with NO_DOCS => error message: no docs
1126             if another scan ends with NO_DOCS => info message: scanned pages: #
1127
1128 - added some accelerator keys. The key definitions may change any time,
1129   this is a first test version. The key-definitions are listed in xsane.ACCELKEYS
1130
1131 - added grab_default for close buttton in info and about dialog
1132
1133 - changed test for sane-libs in aclocal.m4, "-lintl" is removed from
1134   the output of "sane-config --libs"
1135   (this caused segfaults when gettext is included in libc)
1136
1137 - added about translation dialog
1138
1139 - added options "-p", "--print-filenames", if enabled and xsane runs in scanmode it
1140   prints names of produced image files to stdout
1141
1142 - added options "-N name", "--force-filename name", if set the user filename selection
1143   is disabled and the given name is used as filename. The filename should be of the
1144   form "basename-00001.filetype". The size of the counter has to be suffisunt large.
1145
1146 - some changes in configure script (missing libs needed by sane are not linked any more)
1147
1148
1149xsane-0.64 -> 0.65:
1150-------------------
1151
1152 - src/Makefile.in: added usage of SANE_CFLAGS and GTK_CFLAGS
1153
1154 - added secure password transmission for authorisation (md5digest)
1155
1156 - ~/.sane/pass is used for reading user:password:resource from file before asking the user
1157
1158 - configure: removed test for X (AC_PATH_X), this is done in GTK (gtk-config)
1159   gtk includes and libs are used for png test (because png often is in X directories)
1160
1161 - changed xsane_*_with_pixmap:
1162   old status: routines used xsane.histogram_dialog->window as window for gdk_pixmap_create_from_xpm_d()
1163     this made problems with preview window if X default color depth differd from X color depth
1164   new status: routines are called with parameter GdkWindow *window now.
1165
1166
1167xsane-0.65 -> 0.66:
1168-------------------
1169
1170 - added setup menu for Automatic Document Feeder Scansource
1171   (ADF-Scansource name was predefined to "Automatic Document Feeder" before,
1172    now it can be defined for each device (is saved in decice settings))
1173
1174 - changed setup for lineart->grayscale scanmode from entry to menu with available scanmodes
1175
1176 - updated xsane.WIN32-compilation and src/Makefile.in.WIN32
1177   I compiled a pre version of xsane-0.66 with the cygwin snapshot from 2000-12-10 and
1178   gtk+-dev-20001023.zip, glib-dev-20001023.zip, libiconv-dev-20001007.zip
1179   with the way described in xsane.WIN32-compilation without any problems.
1180   The problem with the fork() seems to be solved in this cygwin version.
1181
1182 - updated aclocal.m4 and configure (gimp test)
1183
1184
1185xsane-0.66 -> 0.67:
1186-------------------
1187
1188 - added test if (xsane.adf_scansource) before usage of xsane.adf_scansource
1189   (caused segfault when no ADF Scanmode was defined in setup)
1190
1191
1192xsane-0.67 -> 0.68:
1193-------------------
1194
1195 - changed src/Makefile.in.WIN32 so that the installation directory can
1196   be selected by configure --prefix=... and the used paths are more
1197   common to the one on unix (/usr/local => c:\sane)
1198
1199 - changed src/Makefile.in.WIN32 for gimp support (uncomment GIMP_LIBS)
1200
1201 - WIN32+gimp-support: set_gimp_PLUG_IN_INFO_PTR(&PLUG_IN_INFO) is called
1202
1203 - added extern GimpPlugIn PLUG_IN_INFO to xsane.h (needed in xsane.c for win32)
1204
1205 - replaced free(xsane.tile) by g_free(xsane.tile)
1206   (the free(...) caused a crash on win32)
1207
1208 - changed aclocal.m4: gimp test does work with gimp-1.0.x version again
1209
1210 - renamed xsane.WIN32 and xsane.WIN32-compilation to xsane-WIN32.txt
1211   and xsane-WIN32-compilation.txt (it is easer to use on windows)
1212
1213 - removed (#ifndef _WIN32) gtk_set_locale() from xsane.c for win32
1214   (when it was called gimp plugin created transparent images)
1215
1216 - saved xsane-style.rc in DOS mode (\n\r)
1217
1218
1219xsane-0.68 -> 0.69:
1220-------------------
1221
1222 - some changes in aclocal.m4 for gimp test:
1223   - When gimp-config is not found, the output of gtk-config is used
1224   - GTK_CFLAGS or GIMP_CFLAGS are added to CPPFLAGS for test for gimp.h and gimpfeatures.h
1225   - GTK_CFLAGS and GTK_LIBS are erased when gimp_config is available
1226
1227 - changed src/Makefile.in: GIMP_CFLAGS is used now
1228
1229 - saved xsane-style.rc in unix mode (\n) because DOS mode (\n\r) made problems
1230
1231 - added new way to call netscape remote command:
1232   at first xsane tries to find out if netscape is running, for this it tries to
1233   find out if there is a link "~/.netscape/lock". If this link exists netscape should
1234   be running and xsane calls "netscape -remote openFile(...)". Otherwise xsane calls
1235   "netscape ..."
1236
1237 - changed keywork "netscape-remote" as docviewer to "netscape"
1238
1239 - changed way to find out home directory in xsane-back-gtk.c:
1240   now getenv(ENVIRONMENT_HOME_DIR_NAME) is used instead of getpwuid(...)->pw_dir.
1241   (getenv is usable for Win32 and unix, getpwuid makes problems on Win32)
1242
1243
1244
1245xsane-0.69 -> 0.70:
1246-------------------
1247
1248 - removed some bugs in text for pipette in sane-xsane-preview-doc.html
1249
1250 - changed acloacal.m4: when gimp-config is not found we look for gimptool
1251
1252 - for WIN32 the filetypes listed in the filetype menu are ".jpg" and ".tif"
1253   instead of ".jpeg" and ".tiff"
1254
1255 - added manufacturer image to bottom of standard and advanced options window.
1256   The name of the image is "vendor"-logo.xpm" or "sane-"backend"-logo.xpm",
1257   the size of the image should be 256x48 pixels with a transparent background.
1258
1259 - changed src/Makfile.in: *-logo.xpm are installed (make install) and
1260   uninstalled (make uninstall) now
1261
1262 - changed src/Makfile.in.WIN32: *-logo.xpm are installed (make install)now
1263
1264 - several changes in xsane-preview.c for rotating preview by 0/90/180/270 degree
1265   the preview rotation is ready now
1266
1267 - added new routine xsane_save_rotate_image to xsane-save.c
1268
1269 - added new routine xsane_save_grayscale_image_as_lineart to xsane-save.c
1270
1271 - lineart images are saved in grayscale mode at first if transformation has to be done
1272
1273 - xsane_save_rotate_image is called beween scanning and saving image
1274
1275 - xsane_save_grayscale_image_as_lineart is called beween rotating and saving image
1276
1277 - aclocal.m4/configure: changed sane_major_version etc to SANE_CURRENT_MAJOR
1278
1279 - fileheader of raw format changed. This format is not defined, but some programs
1280   can read it as 16 bit pnm binary data, so we use a compatible header now:
1281     P5
1282     # This file is in a not public defined data format.
1283     # It is a 16 bit gray binary format.
1284     # Some programs can read this as pnm/pgm format.
1285     # SANE data follows.
1286     100 100
1287     65535
1288
1289
1290
1291xsane-0.70 -> 0.71:
1292-------------------
1293
1294 - corrected aspect ratio in xsane-preview.c in routine that calculates preview resolution
1295
1296 - corrected user definition of maximum scanner surface
1297
1298 - added translation of preview menu maximum surface(preset area)
1299
1300 - added tooltip for maximum surface(preset area) menu and rotation menu
1301
1302 - finished  preview_autoselect_scanarea()
1303
1304 - added autoselect scanarea button to preview window
1305
1306 - changed automaitic increase of filename counter:
1307   - the step direction and length is not forced to +1,
1308     the user can select one of the values -2/-1/0/+1/+2.
1309     It is defined by preferences.filename_counter_step.
1310     This way it is possible to scan double sided papers
1311     with correct automatic page number generation.
1312   - the digits are not increased by a loop any more,
1313     the number is read, the new number is calculated
1314     and the new filename is generated. The user can
1315     select a minimum filename counter length now,
1316     it is defined in preferences.filename_counter_len
1317     and can be selected by the user in setup/saving options
1318   - when the number of digits are not enough the number is
1319     automatically increased now.
1320   - a message comes up when counter gets smaller than 0
1321
1322 - pipette the color is averaged on a square, the size of the
1323   square can be defined by the user
1324
1325 - updated html doc (not complete)
1326
1327 - added tooltips to permission buttons (r,w,x)
1328   permission texts: user, group, all, read, write, execute can be translated now.
1329
1330 - added japanese translation (thanks to Kimizuka Tomokazu <sgtom@pluto.dti.ne.jp>)
1331
1332 - renamed oldgimp.h to gimp-1_0-compat.h
1333
1334
1335xsane-0.71 -> 0.72:
1336-------------------
1337
1338 - changed default postscript viewer from xv to gv
1339
1340 - moved int i, select = 1; in static void xsane_saving_notebook() out of #ifdef HAVE_LIBTIFF block
1341
1342 - filename counter length correction is only done in sane_start when there is a user selectable filename
1343
1344 - if external filename is given the counter len is not touched when not necessary
1345
1346 - added "insert file" function to fax mode
1347
1348 - added output of gamma, brightness and contrast settings to pnm headers
1349
1350 - updated xsane online-documentation (html)
1351
1352 - added license dialog, it is shown when it was not already accepted for this xsane version
1353   (tested in local xsane.rc)
1354
1355 - about and about translation dialogs do not set XSane�s sensitivity to false any more
1356
1357 - copyright sign is now always defined as "(c)", can be translated with \251 if character is available
1358
1359 - device preferences are not saved/loaded any more when file selection is aborted
1360
1361 - in xsane_info_dialog the scanner type is translated now
1362
1363 - added accelerator keys to device selection dialog:
1364     Escape   -> Cancel
1365     F1,F2,.. -> select device number 1,2,...
1366
1367 - added usleep(100ms) in device selection dialog before scanning for devices, this way we make
1368   sure that the text "scanning for devices" is displayed
1369
1370 - added some accelarator keys to the preview window:
1371    Alt ESC   Cancel Preview Scan
1372    Alt KP+  Zoom in
1373    Alt KP-  Zoom out
1374    Alt KP*  Zoom not
1375    Alt KP/  Zoom undo
1376    Alt A     Autoselect scanarea
1377    Alt V     Select visible scanarea
1378
1379 - added accelerator key Escape to file-selection-dialog, about-dialog and about-translation-dialog
1380   attached to cancel/close button
1381
1382 - updated translations:
1383   - german translation
1384   - czech translation    - thanks to Stanislav Brabec <utx@penguin.cz>
1385   - turkish translation  - thanks to Togan Muftuoglo <toganm@yahoo.com>
1386   - japanese translation - thanks to Kimizuka Tomokazu <sgtom@pluto.dti.ne.jp>
1387   - french translation   - thanks to Laurent Grawet <laurent.grawet@ibelgique.com>
1388
1389
1390xsane-0.72 -> 0.73:
1391-------------------
1392
1393 - moved call to display license after test for command line options,
1394   so it is not necessary to accept the license to print help/version/license
1395
1396 - added slowenian translation, thanks to Ales Kosir <ales.kosir@zaslon.com>
1397
1398 - an error message is printed when a preview file could not be created
1399
1400 - netscape is called with option new-window now
1401
1402 - rotating scanned image uses memory mapped image file if possible
1403   thanks to Salvador Pinto Abreu <spa@di.uevora.pt> for his suggestions
1404
1405 - xsane windows are set insensitive while faxproject is generated/queued.
1406   For this waitpid is called in a loop.
1407
1408 - before a html documentation is displayed xsane does test if the requetsted file
1409   does exist in the subdirectory language_dir = gettext("language_dir")
1410   (what e.g. gives "de" for german). If it does exist it is displayed, otherwise
1411   the original english doc is displayed.
1412   "language_dir" has to be part of the translation table, it should be
1413   translated to the correct translation direcotry name, e.g. de for german
1414
1415 - preferences.printer momory is defined dynamicall now (has been defined to 10
1416   pointers to printerdefinition before)
1417
1418 - chaged with of some setup fields - have been too small for large fonts
1419
1420 - xsane-scan:xsane_scan_dialog():
1421   added test for color scan to the test if gamma tables for red, green and blue
1422   exists (coolscan backend defines color gamma tables in grayscale mode
1423   what caused segfault in xsane).
1424
1425 - added preselect scanarea after preview scan (selection in enhancment setup)
1426
1427 - added automatic color correction after preview scan (selection in enhancement setup)
1428
1429 - removed bug (that caused segfault when opening setup dialog) in xsane_enhance_notebook
1430   while setting up menu itmes for grayscale scanmode selection:
1431   replaced xsane.well_known.scanSOURCE xsane.well_known.scanMODE
1432
1433 - added option in prefences/setup saving options: save device preferences at exit
1434
1435 - now using always gdk_window_get_root_origin() to get a position of a window on desktop
1436
1437
1438xsane-0.73 -> 0.74:
1439-------------------
1440
1441 - transfering data to gimp plugin now is handled like saving to a special file format.
1442   this way it is possibe to support handheld scanners and to get advance of
1443   some xsane features like image rotation.
1444
1445 - corrected mmap() part in xsane-save.c/rotation:
1446   data is mmaped with offset pos0, the offset pos0 is removed from pointer calculation
1447
1448 - changed xsane_enhancement_by_histogram() and xsane_histogram_to_gamma(): the ranges
1449   for gamma, brightness and contrast are checked correct now
1450
1451 - added function preview_transform_coordinate_window_to_image(), it is used in
1452   preview_get_color(). Pipette functions do work with rotated preview now.
1453
1454 - corrected bug in ruler calculation. The rulers do work correct now with rotated preview
1455
1456 - corrected bug in reading 16 bit preview data: sizeof(buf16)-> sizeof(buf)
1457   now preview transformation from 16 to 8 bit is as fast as 8 bit preview
1458
1459 - preset areas are defined with position (new) and size (old) now.
1460
1461 - surface changes (size and rotation) do not change the selected preview area
1462   any more if possible
1463
1464
1465xsane-0.74 -> 0.75:
1466-------------------
1467
1468 - xsane_read_image_data() does reduce 16 bit images to 8 bit when necessary/requested
1469
1470 - when scanning with 16 bits/color in gimp mode, to jpeg-file or postscript-file
1471   xsane does ask if the image should be reduced to 8 bits/color
1472
1473 - added functions for mirroring preview and mirroring while rotating scan
1474
1475 - moved saving device preferences from xsane_quit() to xsane_scan_win_delete()
1476   and replaced call to xsane_quit() by xsane_exit() in choose_device dialog
1477   (this could cause a segfault).
1478
1479 - corrected a bug in calculation of histogram for rotation of 270 degree
1480
1481 - added xsane_bound_int(&mid, min, max) to xsane_calculate_auto_enhancement()
1482   a segfault could occur when autoenhancement was activated when only a few
1483   preview-pixels where available for calculation of autoenhancement values
1484
1485
1486xsane-0.75 -> 0.76:
1487-------------------
1488
1489 - rotoation routine: mmap does map the full image file (not only from pos0)
1490
1491 - added xsane.depth, it stores the depth of the scanned image,
1492   it may differ from xsane.param.depth when lineart is converted to grayscale
1493   or 16 bit image is reduced to 8 bit
1494
1495 - preview: preset_area list is read from xsane.rc
1496
1497 - added context menu to preview preset_area menu, the preset areas can
1498   be changed by user now
1499
1500 - transformation 16->8 bits/color: replaced val/256 by val >> 8,
1501   a user said that his compiler is too stupid for such an optimization
1502
1503 - updated translations: cs, de, fr, ja, sv
1504
1505 - calibration image is not rotated any more
1506
1507 - corrected exposure event handling (drawing of the selection frame)
1508
1509 - added call of preview_restore_image() at the beginning of preview_update_surface().
1510   This way the correct image parameters are used for the calculation in
1511   preview_update_surface(). preview_restore_image() does not paint the image any
1512   more, this is done at the end of preview_update_surface() now.
1513
1514 - corrected bug in xsane_calculate_histogram() with zoomed and rotated preview
1515   with angels 90 and 270 degree.
1516
1517 - info dialog does print sane version as #.#.# (instead of #.#) again.
1518   sane-dll will return the version of the sane package from sane-1.0.5
1519   so it is possible to find out the used library version in most cases.
1520
1521 - xsane-scan.c: scan data is not written with fwrite() in 1 byte steps
1522   any more because it looks like some systems (at least HP 9000/B1000
1523   (processor PA8500/300 MHz, 384 MB RAM) operating system HP-UX 10.20)
1524   have problems with this. The data is stored in the read buffer when
1525   any transformation (gamma, 16->8 bit) is needed, the complete
1526   buffer that is read with sane_read is written in one part.
1527
1528 - added xsane.spec - created by Sebastian Wenzler <wenzler@techie.com>
1529
1530 - autoselection of scanarea is not done for startimage
1531
1532 - preview image files (level 0-2) are removed and recreated when
1533   the temporary directory is changed in the saving setup
1534   (Preview scan has to be reacquried after changing the temporary directory)
1535
1536 - directory selection dialogs (change working directory and select temporary directory)
1537   do not display filelist and delete-file widgets.
1538
1539 - xsane-preview.c and xsane-gamma.c:
1540   - raw preview data is stored with 16 bits/color
1541   - gamma correction is done with (8-16) bit to 8 bit enhanced data
1542     the gamma input bits is set to 12 (but could be changed if we
1543     add a widget that can change this value)
1544     12 bit = 4096 values for each gamma table, this is a good
1545     compromise between image quality, speed and memory usage
1546   - All this slows down gamma and histogram routines, because of this
1547     I accelerated these routines again:
1548     - replaced field indexes by optimized pointer routines
1549     - preview_motion_event_handler improved: continuous mode does use
1550       a timer function now. this way the selection has a higher priority
1551       than displaying the histograms.
1552     - the raw histogram is only recalculated and displayed when it has been changed.
1553
1554 - improved event handling of the histogram sliders:
1555   when continuous mode is active xsane_enhancement_by_histogram() is not called
1556   directly any more, it is called via the xsane_slider_hold_event handler now
1557
1558 - split setup notebook "saving options" into "saving options" and "image options"
1559
1560 - added option "reduce 16 bit image to 8 bit" to setup/image options
1561   This way you can use the preview with the full bit depth the scanner
1562   can output and save it as image with 8 bits/color.
1563   This is interesting e.g. when you scan slides or negatives.
1564
1565 - changed ouput in parameter box from "width x height (size unit)" to
1566   "witdh x height x depth (size unit)"
1567
1568 - filetype menu is displayed correct now when xsane main window is rebuild
1569
1570 - removed a bug in aclocal.m4 wehn gimp was not found
1571
1572
1573xsane-0.76 -> 0.77:
1574-------------------
1575
1576 - removed "+0.5" in calculation of gamma table. A gamma value of 1.000 does
1577   not change the image data any more
1578
1579 - xsane_update_gamma_curve(TRUE /* update raw */); is called when setup dialog is closed
1580   (apply and cancel), now the preview is displayed with correct gamma values when setup
1581   dialog is closed.
1582
1583 - configure does set gtk parameters correct when compiling gimp testprogram failed
1584
1585 - xsane internal gamma tables for scanning are created after sane_start is called,
1586   this makes sure that the gamma table size calculated with param.depth really is correct
1587
1588 - setup uses selected length unit
1589
1590 - length unit is printed in top left edge between rulers in preview window
1591
1592 - when length unit is saved as inch the length unit submenu "in" now is selected at program start
1593
1594 - removed xsane.spec because I got a mail that it does not produce working installations
1595
1596 - length unit also can be selected now when backend length unit is pixel, so it
1597   is possible to change the length unit of the setup window
1598
1599 - save device preferneces dialog is opened when user closes setup dialog and any
1600   device options have been changed
1601
1602 - replaced all fprintf(stderr, ... by DBG(...
1603
1604 - updated translations: cs, de, fr, ja, sv, tr
1605
1606
1607xsane-0.77 -> 0.78:
1608-------------------
1609
1610 - when the backend defines a new scanner surface it is updated correct now
1611   when the reduced preview surface does not limit the new surface
1612   (added expand_surface to preview_update_surface()
1613
1614 - preview scan is aborted when backend sends more image data than expected,
1615   the preview image is saved in this case
1616
1617 - the preview image is saved now when the preview scan is canceld, so the
1618   already scanned part of the preview keeps visible
1619
1620 - when two preview levels have comparable quality it is used the preview
1621   that is more up to date (scanned later)
1622
1623 - applied sanei_wire.c patches from sane-backends-1.0.5 to xsane-rc-io.c
1624
1625 - changed default values: histogram, and standard options windows are visible by default now
1626
1627 - added function (pirate icon) to delete preview image cache
1628
1629 - added mail project dialog
1630
1631 - added mail setup dialog
1632
1633 - added routines for sending images by mail (base64encoding, mail headers, smtp headers)
1634
1635
1636xsane-0.78 -> 0.79:
1637-------------------
1638
1639 - added test for lstat in configure/configure.in/config.h.in
1640
1641 - when lstat is available it is used for testing netscape lock file,
1642   otherwise stat is used
1643
1644 - changed order of include lines in xsane-save.c
1645
1646 - for OS/2: in xsane_back_gtk_make_path() a colon ":" is replacte by "_"
1647
1648 - changed last argument of xsane_back_gtk_set_tooltip from char to gchar
1649
1650 - added function xsane_widget_test_uposition(GtkWidget *gtk_window)
1651   that does test if gdk_window_get_deskrelative_origin or
1652   gdk_window_get_root_origin gives the correct positions.
1653   test is done with "scanning for devices" window.
1654
1655 - in xsane.c changed #if 1 to #ifdef BUGGY_GTK_TOOLTIPS_SET_COLORS
1656
1657 - split preview_increment_image_y in ... and preview_test_image_y,
1658   test is called before a byte is copied into the buffer
1659
1660 - xsane-preview.c: preview_scan_start: preview image memory is only cleaned for
1661   single pass mode and 1 pass of 3 pass mode (3 pass preview does work again)
1662
1663 - mail is sent in subprocess
1664
1665 - added "MIME-Version: 1.0" to mail header
1666
1667 - added mail status in mailfile, error messages while sending are stored in this file too
1668
1669 - aclocal.m4 test for gimp: moved saving of GTK_* to beginning of routine,
1670   the GTK_* things should be set correct now when gimp-config is not found
1671
1672 - xsane.h: mail is deactivated when png is not available
1673
1674 - added preferences menu item "Medium":
1675   The highlight/shadow/gamma values are defined to the intensity range
1676   of the selected medium (e.g. agfa negative).
1677   If possible the analog highlight/shadow function is used,
1678   if not then the scanner internal digital gamma table is used
1679   in bot then xsane�s internal gamma correction is used.
1680   When the correct medium is selected it only is necessary to
1681   do "soft" color corrections. Because of this the 400% values
1682   in brightness/contrast have been reduced to 100% values now.
1683   This is a typically range that e.g. also is used by the gimp.
1684   If someone needs the larger ranges, change the following definitions
1685   in sane.h:
1686   #define XSANE_BRIGHTNESS_MIN    -100.0
1687   #define XSANE_BRIGHTNESS_MAX    100.0
1688   #define XSANE_CONTRAST_GRAY_MIN -100.0
1689   #define XSANE_CONTRAST_MIN      -100.0
1690   #define XSANE_CONTRAST_MAX      100.0
1691
1692 - moved call xsane_update_counter_in_filename as correction for counter length from
1693   xsane_start_scan to xsane_scan_dialog (before open command), this way the
1694   counter also is correct when the file is not transformed (pnm).
1695
1696 - corrected xsane_update_counter_in_filename: removed some pointer bugs when skipping
1697   exisiting filenames
1698
1699 - added test for os2.h to configure/configure.in
1700
1701 - added set_gimp_PLUG_IN_INFO(&PLUG_IN_INFO); for os2
1702
1703 - removed "+0.5" in calculation of negative preview gamma table. A gamma value of 1.000 does
1704   not change the image data any more
1705
1706 - effective user id is set to real user id in all subprocesses
1707
1708 - cancel preview does now only call sane_cancel and tests for SANE_STATUS_CANCELLED while
1709   reading image data.
1710
1711
1712xsane-0.79 -> 0.80:
1713-------------------
1714
1715 - moved setting of medium gamma correction values from xsane_set_medium_callback in xsane.c
1716   to xsane_set_medium in xsane-gamma.c
1717
1718 - xsane_set_medium is called in xsane_scan_dialog and in preview_scan
1719
1720 - replaced predefined areas 10x14 cm and 14x10 cm by 10x15 cm and 15x10 cm
1721
1722 - updated documentation (partly)
1723
1724 - correcting image height when canceling conversion to jpeg format,
1725   program does not crash any more
1726
1727 - added russian translation - thanks to John Profic <profic@lrn.ru>
1728
1729 - solved problem with lineart image saved as png (wrong byte width)
1730
1731 - moved medium selection menue from preferences menu to xsane main dialog
1732
1733 - inactive backend options are not saved to the device-rc file
1734
1735 - added progress_bar to the paramter list of xsane_save_*
1736
1737 - added xsane-viewer.c and xsane-viewer.h to the src directory
1738
1739 - added fflush(outfile); to end of rotation routine, this seems to
1740   solve a problem of incomplete files when rotating the image file
1741
1742 - added routine xsane_read_pnm_header to get correct header offset
1743   and read geometrie values
1744
1745 - for saving routines now the header offset and geometrie values of
1746   xsane_load_pnm_header are used instead of xsane�s internal values
1747
1748 - changed handling of color identification:
1749   old: xsane_color  == 0 => grayscale/lineart
1750   new: xsane_colors == 1 => grayscale/lineart
1751
1752 - when image is saved as postscript file (not copy mode etc)
1753   then the bounding box exactly surrounds the image now.
1754   Removed psfile parts from setup and preferences.
1755
1756 - xsane_widget_test_uposition(gtk_window) does wait now until
1757   gtk_window is realized before gtk_widget_set/get_uposition
1758   test is done
1759
1760 - for hpux added include of alloca.h to sane.h
1761
1762 - added function xsane_debug_message that is used for DBG when
1763   gcc is not used because defines with variable arguments is
1764   not ANSI.
1765
1766 - updated translations: cs, de, fr, ja, ru, tr
1767
1768
1769xsane-0.80 -> 0.81:
1770-------------------
1771
1772 - xsane-gamma.c:
1773     void xsane_calculate_raw_histogram(void): changed "maxval_raw = 0;" to "... = 1;"
1774     void xsane_calculate_enh_histogram(void): changed "maxval_enh = 0;" to "... = 1;"
1775   this avoids a floating point exception on some systems
1776
1777 - xsane-viewer.c: set default viewer size from 400, 400 to
1778   0.3 * screen_width, 0.5 * screen height
1779
1780 - xsane-save.c: xsane_save_rotate_image() swaps x and y resolution when
1781   rotation 90 or 270 degree
1782
1783 - removed slash at end of mkdir("~/.sane/xsane/"), OS/2 did not like this
1784
1785 - when temporary direcotry is not defined (xsane.rc does not exist)
1786   then xsane at first tries to read the environment variable
1787   defined by ENVIRONMENT_TEMP_DIR_NAME (default TMP) and if that
1788   does not exist it uses a predefined (TEMP_PATH) path.
1789   When xsane.rc does exist the temporary directory stored in xsane.rc is used.
1790
1791 - added blur and despeckle selction dialog to select filter radius
1792
1793 - changed viewer and preview window type from GTK_WINDOW_DIALOG to GTK_WINDOW_TOPLEVEL
1794
1795 - preview gamma does not have any effect to the enhanced histogram any more
1796
1797 - preview does medium gamma correction now when scanner does not support
1798   gamma tables
1799
1800 - medium selection is disabled for lineart mode, gamma table is set to default
1801   in this case. This guarantees that advanced lineart preview (by grayscale scan)
1802   does work conform to the real scan.
1803
1804 - default resolution set to 72 dpi (if no resolution is defined by backend)
1805
1806 - added scanning/valid/incomplete/invalid pixmap to preview action area
1807
1808 - preview cancel does call preview_get_image_data after canceling the
1809   scan, this makes sure that xsane does detect a cancled scan when
1810   gdk_input does not detect closing the select_fd (what happens when
1811   the backend does close the select_fd too early (what is allowed by
1812   the sane standard))
1813
1814 - scan cancel does make sure that xsane_read_image_data is run
1815   after sane_cancel is called
1816
1817 - added SIGTERM handler: xsane_quit() is called on SIGTERM
1818
1819 - when faxproject/xsane-fax-list can not be created an error
1820   message is printed and the creation of the project is aborted
1821
1822 - in saving mode temporary conversion file is removed after conversion
1823
1824 - corrected wrong filenames while saving mail image after scanning
1825
1826 - added ocr function to viewer
1827
1828
1829xsane-0.81 -> 0.82:
1830-------------------
1831
1832 - number of medium items and area definitions is calculated by size of the
1833   structure now.
1834
1835 - Improved security of temporary file handling:
1836   - replaced mktemp() my mkstemp() in xsane_back_gtk_make_path.
1837     The filename format changed because mkstemp creates the file
1838     and so it is not possible to add an extension and the file
1839     has to end with "XXXXXX" what is replaced by the safe random number
1840     generated by mkstemp.
1841
1842   - before creating the image filename in xsane-scan.c the filename
1843     is removed only if the created file is not a temporary file.
1844
1845   - removed remove() in xsane_save_image_as_lineart()
1846
1847   - added routine xsane_create_secure_file() that makes sure that the created
1848     file does not follow a symlink
1849
1850
1851 - when an error occurs while saving a file or the saving is aborted then
1852   the created image is removed
1853
1854 - swaped order of opening inputfile and outputfile (outputfile now first) in
1855   xsane_save_image_as_lineart()
1856
1857 - viewer_save_callback(): several changes for saving as lineart
1858
1859 - moved xsane_update_histogram() at end of xsane_update_gamma_curve()
1860   into if (xsane.preview) block - this avoids segfault on some systems
1861
1862 - despeckle radius and blur radius dialogs are closed before routine is started
1863
1864 - removed bug in despeckle routine
1865
1866 - increased speed of despeckle routine by about factor 6
1867
1868 - changed despeckle radius range from 1-9 to 2-10
1869
1870 - changed blur radius range from 1-9 to 2-20
1871
1872 - routines xsane_draw_histogram_with_*() do not have parameter "int invert" any more,
1873   the inversion already is done in the medium dependant histogram of the preview.
1874
1875 - added image scaling routine to viewer
1876
1877 - added spanish translation (es.po) - thanks to
1878   Gustavo D. Vranjes <gvranjes@abaconet.com.ar>
1879
1880 - added dutch translation (nl.po) - thanks to
1881   "Wim Sinke" <sinke@wirehub.nl>
1882
1883
1884xsane-0.82 -> 0.83:
1885-------------------
1886
1887 - scaling image size does work for 16 bit images now
1888
1889 - xsane_create_secure_file() now always removes the file (not only if it is a link),
1890   this is needed because open(..., O_EXCL) does fail when the file exists (what can
1891   happend when we want to overwrite an existing file).
1892
1893 - removed buggy ";" at end of if statement in xsane_enhancement_negative_callback
1894
1895 - default mode is viewer instead of saving mode
1896
1897 - updated po-files: nl
1898
1899 - xsane-front-gtk.c: void xsane_progress_cancel(GtkWidget *widget, gpointer data)
1900   changed GtkSignalFunc callback = (GtkSignalFunc) data; to
1901   GtkFunction callback = (GtkFunction) data;
1902
1903 - added media, experimentally determined values with UMAX Powerlook3:
1904   Agfa XRG 200-4
1905   Agfa HDC 100
1906   Konica VX 100
1907   Rossmann HR 100
1908
1909 - preview.c: preview_update_surface calls preview_update_selection at first to
1910   make sure that the preview selection is up to date. Now xsane comes up with
1911   the saved area selection when e.g. transparency mode is stored which forces
1912   a change of the surface
1913
1914 - removed parameter negative from xsane_calculate_auto_enhancement,
1915   autoenhancement does work again when negative button is pressed
1916
1917 - added mode "--Medium-definition"/"-M":
1918   - preview is done without scanner gamma correction for medium
1919   - added two icons to the main dialog: medium new and medium delete
1920
1921 - added xsanedocdir to doc/Makefile.in and src/Makefile.in
1922   the path is used by xsane.c and the mentioned Makefiles
1923
1924 - removed in xsane-viewer.c, line 222: xsane_create_secure_file(outputfilename) before
1925   xsane_save_image_as(...)
1926
1927
1928xsane-0.83 -> 0.84:
1929-------------------
1930
1931 - if xsane-license.txt is not found when it shall be displayed then xsane does
1932   print an error message and behaves like when the user did not accept the license.
1933
1934 - if xsane-startimage.pnm is not found then an image of the size 1x1 pixel is
1935   created instead. This should normally never happen but some people start
1936   xsane without that it has been installed. Then the behaviour of the preview
1937   has been undefined before.
1938
1939 - removed "rm -f $cache_file" when gtk or sane was not found in configure.in,
1940   this was bad when a user used a global cache file
1941
1942 - viewer is created with image size - if possible
1943
1944 - added serbian translation file (sr.po) - thanks to Du�ko Rusmir <drusmir@gmx.ch>
1945
1946 - xsane_sigpipe_handler: changed
1947   xsane_cancel_save(0);
1948   to
1949   xsane_cancel_save(&xsane.cancel_save);
1950
1951 - updated po-files: es, fr, ja, nl, ru, sr, tr
1952
1953 - x and y resolution information are added to jpeg and png files now
1954
1955 - preview zoom buttons are now also available when backend does geometry
1956   options with unit pixel
1957
1958 - added Plustek logo
1959
1960
1961xsane-0.84 -> 0.85:
1962-------------------
1963
1964 - replaced xsane_control_option by back_gtk_set_option in xsane_set_resolution.
1965   if changing resolution causes a SANE_RELOAD_OPTIONS this is handled now.
1966
1967 - replaced xsane_save_scaled_image by a routine that does a blur over all covered pixel
1968   insetad of using one pixel in the middle of the covered area
1969
1970 - changed radius definition of blur and despeckle, now r=1 means nothing happens
1971
1972 - extended blur routine, radius is now of type float, so you e.g. can blur with a
1973   radius of 1.3.
1974
1975 - replaced all xsane*_scale_new* by xsane*_range_new*, the range can be displayed as:
1976   - slider (scale) + value on right
1977   - slider (scrollbar) + value on right
1978   - spinbutton
1979   - scale + spinbutton
1980   - scrollbar + spinbutton
1981  the user can select, which disply mode he likes to use.
1982
1983 - added timeout callback for xsane_resolution to set correct quantisation
1984
1985 - Some people complained that the user has to accept the GPL to use the program.
1986   In fact from the view of the GPL it is not necessary that the user accepts
1987   the license to run the program. But it is important that the user reads
1988   and accepts the "NO WARRANTY" part of the license. Due to this I created
1989   two license dialogs:
1990    - EULA-Dialog displays the "NO WARRANTY" part of the GPL
1991    - GPL-Dialog displays the compelte GPL
1992   To run the program the user has to accept the "NO WARRANTY" agreement
1993   after installation and each update of xsane.
1994   I hope this compromise is usable for every side. Please understand and
1995   accept that it is necessary in some countries that the user accepts the
1996   no warranty agreement to make sure that the authors and others do not
1997   have to pay any compensation in the case of any damage
1998
1999 - removed bug in scan and in preview-scan 16 bit routines when
2000   sane_read returned with odd number of bytes
2001
2002 - reduced maximum filename counter length from 10 digits to 9 digits.
2003   (10 digits need more than long int, long long int is not portable (not ANSI C))
2004
2005 - update_counter_in_filename does not touch the counter when step = 0 and
2006   min_length = 0
2007
2008 - added preview function autoraise_scanarea (may be the name is stupid?):
2009   if you select this function and click to an image then the image
2010   is selected as scanarea
2011
2012 - colored preview pipette icons and zoom icons
2013
2014 - Changes/preparation for gtk+-2.0:
2015
2016   - added xsane-gtk-1_x-compat.h that wraps gtk+-2.0 functions to gtk+-1.x functions
2017     when gtk+-1.x is used
2018
2019   - replaced all gtk_accel_group_attach() by gtk_window_add_accel_group() and
2020     gtk_menu_set_accel_group()
2021
2022   - repleaced all GTK_WINDOW_DIALOG by GTK_WINDOW_TOPLEVEL
2023
2024   - addeded alternative part that uses gtk_text_view (gtk+-2.0) instead of gtk_text (gtk+-1.x)
2025
2026   - repleaced all gtk_signal_connect* by g_signal_connect* and defined makros for gtk+-1.x
2027   - repleaced all gtk_signal_handler* by g_signal_handlers* and defined makros for gtk+-1.x
2028
2029   - repleaced (gtk+-1.x)
2030       gtk_widget_draw(hist->pixmapwid, &rect);
2031     for gtk+-2.0 by
2032       gtk_widget_queue_draw(hist->pixmapwid);
2033       gdk_window_process_updates(hist->pixmapwid->window, FALSE);
2034
2035   - filename entry is not set directly by gtk_entry_set_text(), it is set
2036     by xsane_set_filename() now
2037
2038
2039xsane-0.85 -> 0.86:
2040-------------------
2041
2042 - reversed the change of xsane-0.84->0.85 that replaced
2043   xsane_control_option by back_gtk_set_option in xsane_set_resolution.
2044   If resolution change causes a SANE_RELOAD_OPTIONS this is not handled any
2045   more.
2046   Reason: It caused a segfault in different situations when panel_rebuild
2047   was called. I tried to implement that it works like expected, but the
2048   resolution option needs a lot of special cases handling that makes it
2049   very hard to handle this. Also the gtk slider does not work when
2050   the panel is rebuild each time when the value is changed.
2051
2052 - increased vendor length from 9 to 12 characters.
2053
2054 - changed dialog of viewer/scale
2055   - The dialog uses xsane_range instead of a spinbutton now
2056   - The scale sliders for x and y can be binded now,
2057
2058 - added %%Pages: 1 1 to header of postscript files in xsane-save.c
2059
2060 - changed preview zoom icons and function names:
2061   - changed icon and name of zoom_in to zoom_area
2062   - added new function zoom_in: if enabled a zoom cursor
2063     is selected and when the user clicks to the preview
2064     with the left or middle mouse button then it is zoomed
2065     to the clicked position
2066
2067
2068xsane-0.86 -> 0.87:
2069-------------------
2070
2071 - preview_update_maximum_output_size: function sets block bit
2072   at beginning of routine and resets it at end of routine, this
2073   way it is made sure that the function is not called
2074   recursive. This avoids infinite loops when backend
2075   changes geometry options.
2076
2077 - xsane-device-preferences.c: saving and loading device options
2078   does test for num_options now
2079
2080 - added xsane.ipc_pipefd and gdk_input_add(xsane.ipc_pipefd,...),
2081   a child process can write to the pipe and xsane displays the
2082   text in an error dialog (not for win32)
2083 - added inter process communication pipe. When a child process
2084   wants to display an error message it can write the message to
2085   ipc_pipefd[1] and xsane will display the message in an error dialog
2086
2087 - xsane_back_gtk_decision_dialog can handle multiple dialogs now,
2088   (used by xsane_back_gtk_error/warning/message/info
2089
2090 - added clear/redraw histogram to xsane_set_sensitivity()
2091   removed clear/redraw histogram near calls to xsane_set_sensitivity()
2092
2093 - add xsane_sigchld_handler to cleanup zombie child processes,
2094   this replaces xsane_mail_send_process_exited()
2095
2096 - changed progress bar pipe of ocr program:
2097   -default option is "-x" (gocr)
2098   -default progress keyword is "" (gocr)
2099   -expects to values: "%d %d\r", main, sub
2100    first value is used for progress bar, both are printed as text
2101
2102 - moved at the end of function xsane_device_dialog()
2103   the call xsane_set_all_resolutions(); after xsane_refresh_dialog();
2104   this way the backend default resolution is not overwritten at program startup
2105
2106 - changed calculation of aspect for startimage in preview_update_surface() from image aspect
2107   to preview aspect
2108
2109 - xsane-scan.c saving lineart image as grayscale does work correct now:
2110   - fwrite writes correct number of bytes
2111   - x value is stored in global struct XSane so that it is not reset at
2112     the beginning of xsane_read_image_data()
2113
2114 - moved ocr routine from xsane-viewer.c to xsane-save.c
2115
2116 - ocr routine can be selected by saving image as ".txt" or ".text" format
2117
2118 - added filetype menu to fileselection dialog
2119
2120 - changed behaviour of filetype menues: the extension immedeatly is added to/changed in
2121   the filename (and is not added/corrected when the scan begins).
2122   Now the filetype menu does behave the same way as gimp does. This means that
2123   you e.g. can select filetype "jpeg" and name the file "image.pnm", in this
2124   case the filetype is (like selected) "jpeg". I do not like this, but this is
2125   how most programs do handle this situation.
2126
2127 - filetype is saved in preferences
2128
2129 - filetype "by ext" is handled as "" instead of NULL now
2130
2131 - selected working directory is saved in xsane preferences
2132
2133 - error_xpm, warning_xpm and info_xpm got a little 3d look
2134
2135 - added test for gtk2 to aclocal.m4 and configure.in/configure
2136
2137 - added bind_textdomain_codeset(xsane.prog_name, "UTF-8"); after bindtextdomain
2138
2139 - gtk-fileselection for selecting directories: for gtk2:
2140   - selection_entry hidden
2141   - added "/." to end of predefined path
2142   - for gtk1 the text in selection_entry is removed from the filename after selection has finished
2143
2144 - updated translations: de, tr, ja, es, fr, cs, sv
2145
2146 - new translation: sk (slovakian), thanks to Zdenko Podobn� <zdpo@mailbox.sk>
2147
2148 - changed configure script to support gtk2
2149
2150
2151xsane-0.87 -> 0.88:
2152-------------------
2153
2154 - xsane_back_gtk_range_new: made sure that digits is not negative
2155   and for gtk+-1 that digits<6
2156
2157 - xsane_load_mail_project: changed "char c" to "int c" to get a chance to
2158   identify EOF
2159
2160 - xsane_load_fax_project: changed "char c" to "int c" to get a chance to
2161   identify EOF
2162
2163 - xsane_resolution_list_callback: changed "gchar *name" to "const gchar *name"
2164
2165 - xsane_add_medium_definition: changed "char *definition_name" to "const gchar *definition_name"
2166
2167 - added xsane-batch-scan.[ch]
2168
2169 - added routine preview_create_batch_icon_from_file() to xsane-preview.c
2170
2171 - xsane_batch_scan_update_icon_list is called by xsane_enhancement_by_gamma via a timer
2172   this way a gamma correction also is visible in the icon list
2173
2174 - added xsane.scan_rotation that is used by xsane-scan.c instead of xsane.preview->rotation
2175
2176 - updated translations: cs, de, es, ja, ru, tr
2177
2178
2179xsane-0.88 -> 0.89:
2180-------------------
2181
2182 - 3 pass scanning: data interleaving is done in buffer, patch by <Oliver.Friedrich@hamburg.de>
2183
2184 - replaced fork() by spawnvp for ocr command in xsane-save.c (patch by Franz Bakan)
2185
2186 - xsane_save_jpeg does reduce a 16bit/sample images to 8bit/sample at first because jpeg does
2187   not support 16 bit/sample
2188
2189 - xsane_save_ps does reduce 16bit/sample images to 8bit/sample while saving
2190
2191 - When scanning to file (mode SAVE) then the warning about image depth reduction 16->8 bit/sample
2192   for jpeg and postscript is not printed any more.
2193
2194 - Since april 2000 there is defined a pnm (ppm/pgm) format for 16 bit binary images.
2195   With this format the unofficial RAW16 format that has been used by xsane until version 0.88
2196   becomes senseless. The RAW16 format has been removed, xsane does create 16 bit binary pnm files
2197   now (the difference between the RAW16 and the pnm16binary format is that the pnm16binary format
2198   always uses MSB first while RAW16 was written in machine byte order).
2199   In preferences-Setup->Image there is a selection if the pnm16 image shall be saved in ascii or
2200   binary format.
2201   When you have any problems with the pnm16binary format then make sure at first that the program
2202   you use does support it correct. imagemagic does support it, the xv version 3.10a does not
2203   support it.
2204
2205 - read_pnm_header now does read the gamma, contrast, brightness, threshold values, so when these
2206   data is saved in an image then it is correct now.
2207
2208 - gamma, brightness, contrast and threshold are added in the header of pnm files now
2209
2210 - when 16 bit image is scanned and "reduce 16bit image to 8bit" is selected and the image
2211   is saved as pnm then the file is created correct now
2212
2213 - batch scan thumbnail: replaced gdk_image by gtk_preview
2214   gdk_image needs pixel colors based on hardware, gtk_preview uses truecolor pixels.
2215
2216 - added po file converstion to utf8 in po/Makefile[.in]
2217
2218 - added documentation for batch scan window
2219
2220 - changed page size in range from (max-min)*1e-40 to (max-min)*1e-30
2221   because some systems like solaris had problems (one long bar that
2222   could not be moved)
2223
2224 - xsane-preview.c: in case of an error the error error text is created before
2225   preview_scan_done is called when parameters->* are needed for creating the
2226   error message
2227
2228 - made html pages compatible to html 4.01
2229
2230 - changed header of postscript files, may be this solves the printing problem on some systems
2231
2232 - added "%%EOF" to end of postscript files
2233
2234 - updated translations: cs, de, fr, ja, nl, ru, sv (update for 0.88), tr
2235 - new translations: pt, pt_BR
2236
2237 - add no_device icon in error message: no devices available
2238
2239 - added help_no_devices dialog
2240
2241 - added device icon in device_scanning_dialog
2242
2243 - added a frame in the decision dialog
2244
2245 - when preview_autoselect_scanarea does not find an image then
2246   the complete image is used
2247
2248 - added accelerator key ESC to decision dialog:
2249   when a reject button (right) is available then ESC=reject,
2250   when no reject button is available then ESC=OK.
2251
2252 - set block_update_maximum_output_size_clipping in preview_rotation_callback,
2253   now rotation does work like expected when in copy mode
2254
2255 - added paper_orientation menu in copy mode
2256
2257
2258
2259xsane-0.89 -> 0.90:
2260-------------------
2261
2262 - replaced "round(i+0.5)" in xsane_save_ps by "ceil(i)" because round is not
2263   available on all systems
2264
2265 - replaced order of includes for sys/types.h ans sys/stat.h in xsane.h
2266
2267 - removed some includes from some *.c files that are already in xsane.h
2268
2269 - added to xsane.h:
2270   #ifdef HAVE_OS2_H
2271   # define strcasecmp stricmp
2272   #endif
2273
2274 - always set position of outputfilename_entry to the right
2275
2276 - added test for (pid_status < 0) in xsane_fax_send in routine
2277   waiting for child process. The program does continue now
2278   when the fax is sent.
2279
2280 - fax setup: added "set program defaults" buttons for efax, hylafax and mgetty+sendfax
2281
2282 - bindtextdomain for backend is set for sane-"backendname" and sane-backends
2283   sane-backends is used when sane-"backendname" does not exist (no "" entry)
2284
2285 - set codeset for backend textdomain to "UTF-8"
2286
2287 - xsane-preview.c: motion_notify_event_handler: added
2288   if (p->selection_xedge != -1) and if (p->selection_yedge != -1)
2289   before setting new coordinates
2290
2291 - xsane-preview.c: added aspect_ratio function to motion_event_handler
2292
2293 - added aspect_ratio menu to preview window
2294
2295 - xsane-save.c: save_scaled_image: added " 0.5" to round image width and height
2296
2297 - xsane-viewer.c: added widgets to scale dialog that allow defining image size
2298
2299 - aclocal.m4: added "-lintl" when gettext is found in libintl
2300
2301 - aclocal.m4: added warning that check for gtk is not possible when pkg-config
2302   is not available
2303
2304 - added romanian (ro.po), vietnamese (vi.po) and danish (da.po) translation
2305
2306 - updated translation based on xsane-0.89 texts: es, it, ru
2307
2308 - updated translations: cs, de, fr, nl, sk, tr
2309
2310 - replaced some signals for spinbutton by signals for adjustments in xsane-viewer.c
2311
2312 - xsane_mail_dialog_close() and xsane_fax_dialog_close():
2313   removed gtk_window_remove_accel_group(GTK_WINDOW(xsane.mail_dialog), xsane.accelerator_group);
2314
2315 - xsane-scan.c/xsane_read_image_data() and xsane-preview.c/preview_read_image_data:
2316   when we have no select_fd then we don't leave the scanloop with break; but
2317   we do a gtk_main_loop and  continue;
2318
2319 - xsane-scan.c and xsane-preview.c: WIN32 now also does use the gdk_input_add functions.
2320
2321 - preview: added output of RGB values of the pixel under the pointer in the preview
2322
2323 - xsane_create_preview_gamma_curve: replaced 255 by 255.99999 to create correct preview gamma table
2324
2325
2326xsane-0.90 -> 0.91:
2327-------------------
2328
2329 - xsane_generate_dummy_filename(): use temporary file in case xsane.mode == XSANE_GIMP_EXTENSION
2330
2331 - changed <Shift> accellerator keys that used letters to other key (if possible same key with <Ctrl>,
2332   because with these accelartor keys it was not possible to enter these letters in any entries.
2333
2334 - added accelerator group to mail dialog again, it is now possible to enter all texts and use
2335   the accelerator keys at the same time
2336
2337 - added zoom of image under the pointer to the preview window
2338
2339 - removed all c++ style remarks "//"
2340
2341 - changed behaviour of medium definition mode:
2342   - The raw histogram now does show the raw data when the selected medium definition
2343     is not set to the full range
2344   - When creating a new medium definition the name of the used definition is preset
2345   - When creating a new medium definition then this definition is selected
2346   - When deleting a definition then the previous definition is selected
2347
2348 - renamed temporary file "preview-level*" to "xsane-preview-level*"
2349
2350 - position of batch scan dialog is saved in device preferences
2351
2352 - added chines tranlation (zh)
2353
2354 - corrected RGBA mode
2355
2356 - added blocking function to viewer: it is not possible to open two dialogs for the same
2357   viewer at the same time
2358
2359 - added signal handling for SIGINT and SIGHUP
2360
2361 - in Batch scanning mode sane_cancel is called between all scans! This has to be done
2362   because it is not allowed to change scan parameters between sane_start and sane_cancel.
2363
2364
2365xsane-0.91 -> 0.92:
2366-------------------
2367
2368 - moved setting of preview gamma table from preview_start_scan (called 3 times for
2369   3 pass scan) to preview_scan (called once when "preview scan" button is pressed).
2370   This should avoid error messages in 3 pass scanning mode
2371
2372 - removed parameter label from xsane_back_gtk_autobutton_new()
2373
2374 - xsane_back_gtk_autobutton_update sets range widget to insensitive in automatic mode
2375
2376 - added jpeg error_exit handler
2377
2378 - added several tests for errors after wrting image data (full disk) (not complete)
2379
2380 - if an advanced option is defined in a standard group then this option is listed in
2381   the advanced options window now. For this a standard group also is created in the
2382   advanced options window. If a group has no items then the group is not shown.
2383
2384 - an option without SANE_CAP_SOFT_DETECT is not read any more in xsane_control_option
2385
2386 - updated translations: sv
2387
2388
2389xsane-0.92 -> 0.93:
2390-------------------
2391
2392 - added ranlib to lib/Makefile.in to process liblib.a
2393
2394 - added 2 calls xsane_find_best_resolution() in xsane_resolution_widget_new()
2395   to make sure that active value really is selectable in a list of resolutions
2396
2397 - added range values 9-25% to scaling list of xsane-viewer: 9, 13, 18, 25, 35, 50, 71, 100, 141, 200, 282, 400
2398
2399 - when no docviewer is defined at xsane startup (generally when xsane is started the first time) then
2400   xsane tries to read the environment variable $BROWSER, if this fails it sets docviewer to netscape.
2401
2402 - xsane-preferences.c: mail dependant entries are only used when mail is activated
2403
2404 - replaced label HAVE_LIBGIMP_GIMP_H by HAVE_ANY_GIMP
2405   HAVE_ANY_GIMP is defined in configure.in when HAVE_GIMP=yes
2406
2407 - added HAVE_GIMP_2 parts to xsane.c, xsane.h and xsane-save.c
2408   HAVE_GIMP_2 is defined by configure.in when GIMP-2.0 was found
2409
2410 - created subdirectory m4 and put self written macros from aclocal.m4 to m4/*.m4,
2411   copied gtk.m4, gtk-2.0.m4 and gimp-2.0.m4 from aclocal installation to m4 subdirectory,
2412   gimp-orauch.m4 contains a modified gimp.m4 that also can handle gimp-1.0.x
2413   (the original script only does work when gimptool is installed, gimp-1.0.x comes without it)
2414   a new aclocal.m4 can be created with "aclocal -I m4/."
2415
2416 - configure.in: changed AM_FUNC_ALLOCA to AC_FUNC_ALLOCA
2417
2418 - configure.in + src/xsane.c: changed PACKAGE_VERSION to XSANE_PACKAGE_VERSION
2419   because PACKAGE_VERSION did not work any more, looks like a new feature of aclocal or autoconf
2420
2421 - updated translations: de, it, da, cs, nl, es, sk, ro, fr
2422
2423 - po/Makefile.in: added test for msgfmt, gmsgfmt, gencat
2424
2425xsane-0.93 -> 0.94:
2426-------------------
2427
2428 - changed "�s" to UTF8 codeset
2429
2430 - added test and warning message if option is defined without name (NULL)
2431   to xsane_panel_build
2432
2433 - added handling for options with of SANE_TYPE_INT and SANE_TYPE FIXED
2434   with CONSTRAINT_TYPE_NONE , uses spinbutton, no sliders
2435
2436 - changed default medium definition of Slide from highlight=30% to highlight=40%
2437
2438 - xsane_[back_gtk_]option_menu_new: added empty element to end of list
2439   xsane_[back_gtk_]option_menu_lookup: test for existing element before comparision
2440
2441 - moved media defintions from xsane.rc to xsane.mdf
2442
2443 - preview: preset area: added definition name to context menu items
2444
2445 - preview: add preset area: you can change the suggested name now
2446
2447 - medium definitions: added same context menue like in preset area menu,
2448   removed buttons "add medium" and "delete medium", they are in the
2449   contect menu now
2450
2451 - added documentation how to use a medium and how to define a medium
2452
2453 - improved documentation how to edit the preset area definitions
2454
2455 - in edit medium definition mode autmatic scanarea selection and automatic
2456   color correction is disbaled
2457
2458 - docs: replaced www.mostang.com/sane by www.sane-project.org
2459         and sane-devel@mostang.com by sane-devel@lists.alioth.debian.org
2460
2461 - batch_scan default list is loaded at program startup
2462
2463 - added test for BUGGY_GDK_INPUT_EXECEPTION in xsane.c and xsane-preview.c
2464   when gdk_input_add shall be used
2465
2466 - changed order in xsane.h: system includes are moved to the beginning of
2467   the file. This way it is possible to test for operating system header files
2468   to decide how some #defines are made
2469
2470 - added m4 makro test for msnative struct for windows
2471
2472 - BUGGY_GDK_INPUT_EXCEPTION is defined for windows
2473
2474 - src/Makefile.in: removed both "\" in
2475   -DPATH_XSANE_DOC_DIR=\$(xsanedocdir) -DPATH_SANE_DATA_DIR=\$(sanedatadir)
2476
2477 - created new xsane-WIN32-compilation.txt
2478
2479 - for windows the GTK1 version of xsane_window_get_position is used
2480
2481 - xsane_back_gtk_get_filename: directory is prepared with ending SLASH
2482   instead of ending "/.", this does work with windows now when SLASH is \
2483
2484
2485xsane-0.94 -> 0.95:
2486-------------------
2487
2488 - For xsane-win32 the xsane icon is added to the windows ressource of xsane.exe:
2489   added definition of XSANE_ICON=xsane-icon.opc to configure[.in]
2490   added creation rule of xsane-icon.opc to src/Makefile[.in]
2491   added @XSANE_ICON@ to XSANE_OBJS
2492
2493 - in xsane_back_gtk_value_update: removed rounding (+ 0.5) in case SANE_TYPE_INT
2494
2495 - changed menues in the xsane main dialog:
2496   - added new menu "Window"
2497   - moved Window menue entries form "View" to "Window"
2498   - moved "Show resolution list" entry from menu "Preferences" to "View"
2499   - moved "Update policy" entry from menu "Preferences" to "View"
2500   - moved "Length unit" entry from menu "Preferences" to "View"
2501
2502 - added test if resolution list is displayed or scale is displayed in
2503   xsane_resolution_timer_callback(). Without this test it sometimes
2504   happened that pressing CTRL+L (Swap show resolution list) caused a
2505   segfault because the timer callback was executed in a moment where the
2506   adjustment is not valid
2507
2508 - added: if (???->window)
2509   before each: gdk_window_process_updates(???->window)
2510   in xsane-gamma.c, this made problems with gtk+2.x
2511
2512 - when a postscript file is added to a faxproject then the original name of the
2513   file is also used in the faxproject now. The pagecounter is still increased!
2514
2515 - fax fine mode selection is stored in preferences now
2516
2517 - handling of viewer filenames changed:
2518   - when an image is saved in the viewer then the viewer shows the filename in
2519     the window title and the viewer remembers the filename
2520   - when the image has been changed after it has been saved then the filename
2521     in the window title is shown in brackets
2522   - when the filename ends with a number (counter) then the number is automatically
2523     increased when the file is saved
2524   - when a saved image is cloned then the suggested filename of the cloned image is
2525     clone-of-"old-filename"
2526
2527 - viewer: added support for different modification restrictions
2528   - VIEWER_NO_MODIFICATION (only view)
2529   - VIEWER_NO_NAME_AND_SIZE_MODIFICATION (some filters allowed but keep size, e.g. fax)
2530   - VIEWER_NO_NAME_MODIFICATION (use given name, e.g. fax, mail)
2531   - VIEWER_FULL_MODIFICATION (normal mode)
2532
2533 - added undo function (1 step) to viewer
2534
2535 - changed menues in the xsane viewer dialog:
2536   - added menu "Edit"
2537   - added menu "Geometry"
2538   - moved Scale function from menu "File" to menu "Geometry"
2539   - added rotation and mirror functions to menu "Geometry"
2540   - added undo function to menu "Edit"
2541
2542 - changed button boxes/icons in the xsane viewer dialog:
2543   - added button boxes equal to menus: file, edit, filters, geometry
2544   - added undo icon to edit box
2545   - moved blur uand despeckle icon to filter box
2546   - moved scale, rotation and mirrir icons to geometry box
2547
2548 - replaced several "char buf[???];" by "char filename[PATH_MAX];"
2549
2550 - changed fax mode:
2551   - scanned images are stored in pnm format
2552   - for each list entry there is a data and a type information now
2553   - internal viewer is used now for pnm-fax files
2554   - faxviewer is used for ps files
2555   - before sending the fax pnm images are converted into ps images
2556   - after sending the fax ps images are erased
2557
2558 - changed e-mail mode:
2559   - scanned images are stored in pnm format
2560   - for each list entry there is a data and a type information now
2561   - internal viewer is used now for pnm-mail files
2562   - before sending the mail pnm images are converted into png images
2563   - after sending the mail the png images are erased
2564   - mail project status is translated now
2565   - BUGFIX: end of email text is marked with 0 byte
2566
2567 - added function xsane_viewer_set_sensitivity()
2568   - moved all gtk_widget_set_sensitive(GTK_WIDGET(v->button_box), TRUE/FALSE); to it
2569   - added several gtk_widget_set_sensitive(???_menu, TRUE/FALSE); commands to it
2570   - moved almost all v->block_actions to it
2571   - now it should not be possible any more to crash xsane by closing the viewer
2572     while it is saving something
2573
2574 - added info "reduce to lineart" to image_info + xsane-pnm-header
2575
2576 - renamed viewer v->reduce_to_lineart to v->allow_reduction_to_lineart
2577
2578 - save_image_as() now automatically reduces lineart images to pbm before saving
2579
2580 - new translations: hu
2581
2582 - updated translations: de, es, ja, pt, pt_BR, sk
2583
2584
2585xsane-0.95 -> 0.96:
2586-------------------
2587
2588 - fax progress bar does not change it's height any more when the fax dialog is resized
2589
2590 - mail progress bar does not change it's height any more when the mail dialog is resized
2591
2592 - added lockfile to mail project. The lockfile contains status and progress information
2593   from the mail_send_process and is used to display a progress_bar
2594
2595 - mail status is only translated when it is displayed via gtk, in the data structures
2596   the untranslated texts are used
2597
2598 - changed mail_attach_image_png to mail_attach_image, mime type is defined by parameter
2599
2600 - added filetype menu to mail dialog with filetypes PNG, JPEG and TIFF
2601
2602 - bugfix: viewer saves lineart PNM images again as lineart (bug in xsane-0.95)
2603
2604 - when image is saved as pnm and it is not reduced to lineart then the input file
2605   is copied with xsane_copy_file => much faster
2606
2607 - xsane-save.c: reordered function parameters for saving/conversion functions to
2608   (outfile, infile,...) or (output_filename, input_filename, ...)
2609   (before we had sometimes infile at first and sometimes outfile at first)
2610
2611 - xsane_set_sensitivity: mail_dialog and fax_dialog:
2612   the sensitivity off all but the progress_bar is set
2613
2614 - While mail is prepared (images are converted) the xsane sensitivity is set to
2615   FALSE to make sure that the xsane mode is not changed in this case.
2616   while sending the mail (after preparation) the xsane sensitivity is set to
2617   TRUE and the project entry sensitivity is also TRUE, it is allowed to
2618   changed xsane mode and to change the mailproject, because the
2619   sending of the mail is done in a separate process, so there is no
2620   influence by changing the mail project name.
2621
2622 - Comment:
2623   When xsane is closed while sending one or more mails then xsane is closed
2624   but the mail sending subprocesses are not terminated.
2625
2626 - added SMTP (HELO/FROM/RCPT/DATA) errors to mail status
2627
2628 - added xsane.fax_status, it is saved in the first line of the xsane-fax-list
2629   this means that the fax project directories are incompatible to earlier versions!
2630
2631 - added mail_status and fax_status = ..._CHANGED when a new page is added to
2632   the project
2633
2634 - updated images in documentation
2635
2636 - updated email modus in documentation
2637
2638 - email images are named "image-1" instead of "page-1"
2639
2640 - fax_dialog_delete() and mail_dialog_delete() return TRUE now.
2641   In windows it was possible to delete the dialogs what caused
2642   a crash when the window should be used or closed.
2643
2644 - translations: U=updated, N=not updated
2645   cs da de es fr hu it ja nl pt pt_BR ro ru sk sl sr sv tr vi zh
2646   U  U  U  U  U  N  N  U  U  U  U     U  U  N  N  N  N  U  U  N
2647
2648 - xsane-preferences.c: when identifier is unknown or not a string then
2649   the parser does not abort or crash any more.
2650   XSane now should not have any problems with old config files.
2651
2652
2653xsane-0.96 -> 0.97:
2654-------------------
2655
2656 - write_smtp_footer(): changed ".\r\n" by "\r\n.\r\n", this
2657   solves problems with microsoft exchange servers.
2658
2659 - translations: U=updated, N=not updated, A=added/new
2660   cs da de es fr hu it ja nl pl pt pt_BR ro ru sk sl sr sv tr vi zh
2661   N  N  N  N  N  N  U  N  N  A  N  N     N  N  N  N  N  N  N  N  U
2662
2663 - xsane-save.c: xsane_copy_file(): removed fclose(infile) and fclose(outfile)
2664   this bug caused the error "*** glibc detected *** double free or corruption (!prev): 0x........ ***"
2665   with new gelibc versions
2666   xsane-save.c: xsane_copy_file_by_name(): added fclose(infile) and fclose(outfile)
2667
2668 - rmoved gtk_events_pending() from the waiting loop in xsane_back_gtk_get_filename,
2669   it looks like gtk_events_pending() increases CPU load very much.
2670
2671 - xsane-scan.c: function xsane_reduce_to_lineart(): corrected order of filenames in
2672   xsane_save_image_as_lineart()
2673
2674 - xsane_device_dialog(...): uses sane_control_option instead of xsane_control_option
2675   to read option number 0. This means that it is not needed that SANE_CAP_SOFT_DETECT
2676   is set for option number 0
2677
2678
2679xsane-0.97 -> 0.98:
2680-------------------
2681
2682 - void xsane_batch_scan_scan_list(void):
2683   added if (gtk_events_pending()) in while (xsane.scanning)
2684   (this was removed in xsane-0.97 what made a lot of trouble)
2685
2686 - corrected bad <Toolbox/...> italian transations for gimp plugin
2687
2688 - added Postscript Zlib-Compression and Ascii-85 compression
2689   (patch by Julien BLACHE <jb@jblache.org>)
2690
2691 - added (single page) PDF saving routine
2692   (patch by Julien BLACHE <jb@jblache.org>)
2693
2694 - added PDF and Postscript to mail-mode. PDF and Postscript documents can not
2695   be displayed inline in html mails. I also do not know a way to display a
2696   link to a document that is integrated in the mail. So the <IMAGE> tag
2697   has no effect for pdf and postscript documents in html mode.
2698
2699 - --print-filenames prints the filenames after conversion, so it is
2700   safe that the file exists and is complete
2701
2702 - selected medium definition is stored in preferences now
2703
2704 - BUGFIX for scanners that do not allow to set all resolutions.
2705   In fax mode and possibly also in copy mode the created pages
2706   had a wrong scaling when the scanner did not support the
2707   desired resolution:
2708   - xsane_set_resolution returns bestdpi = selected resolution
2709   - xsane_set_all_resolutions stores bestdpi as used resolution
2710
2711 - when option 0 (num_options) has not defined SANE_CAP_SOFT_DETECT
2712   then xsane prints a warning but does try to read the option value
2713
2714 - added xsane_mode (VIEWER/SAVE/EMAIL/FAX/etc) to preferences
2715
2716 - po/*: all po files are in UTF-8 code now
2717   to transform non-UTF-8 po files to UTF-8 put the po file
2718   into the IMPORT_PO_DIR directory and call in the po directory
2719   "make import-po-files"
2720
2721 - rename xsane-logo2.jpg to xsane-logo.jpg and changed all
2722   html files to xsane-logo.jpg
2723
2724 - viewer uses preferences.filetype instead of "by ext"
2725
2726 - localedir for sane-backends is set by sane-prefix instead of xsane-prefix
2727
2728 - replaced printf by g_print to get correct output on non-utf-8 terminals
2729
2730 - question mark '?' and asterisk '*' in filenames are replaced by underscore '_'
2731
2732 - translations: U=updated, N=not updated, A=added/new
2733   cs da de es fr hu it ja nl pl pt pt_BR ro ru sk sl sr sv tr vi zh
2734   U  U  U  N  N  U  U  N  N  N  N  N     N  U  U  N  N  N  N  N  N
2735
2736xsane-0.98 -> 0.98a:
2737--------------------
2738
2739 - corrected gimp_plugin bug:
2740   xsane_mode now is hold in xsane.xsane_mode like bevore xsane-0.98,
2741   additionally preferences.xsane_mode is used to store the user
2742   selection
2743   the user selection is loaded at program start when nothing else is predefined
2744
2745
2746xsane-0.98a -> 0.98b:
2747---------------------
2748
2749 - changed bug in header file due to conficting types in xsane-front-gtk.h
2750   from:  int xsane_set_resolution(int well_known_option, double resolution);
2751   to: double xsane_set_resolution(int well_known_option, double resolution);
2752
2753
2754xsane-0.98b -> 0.99:
2755--------------------
2756
2757 - added preferences/setup options:
2758   - save_ps_flatdecoded
2759   - save_pdf_flatdecoded
2760   - fax_ps_flatdecoded
2761   - printer[i].ps_flatdecoded
2762
2763 - changed xsane-preferences reading routines for printer definitions and
2764   preset area definitions
2765
2766 - changed postscript and tiff saving routines:
2767   - split in subroutines:
2768     - create_document_header (ps, pdf)
2769     - save image as page (ps, pdf, tiff)
2770     - create_document_trailer (ps, pdf)
2771
2772 - split xsane.c into xsane.c, xsane-fax-project.c and xsane-mail-project.c
2773
2774 - created xsane-multipage.c that adds a multipage project dialog
2775   supported file formats:
2776   - ps
2777   - pdf
2778   - tiff
2779
2780 - corrected viewer to display bits/sample and size correct
2781
2782 - changed handling of viewer filename and filetype selection:
2783   when a new viewer window is created then it copies the active
2784   filename and filetype. Changing the viewer�s selection does not
2785   change the prefered setting any more.
2786
2787 - when no resolution option is available then xsane uses a resolution
2788   of 72.0 dpi. This e.g. is used for postscript and PDF.
2789
2790 - changed tiff saving routine:
2791   - added deflate (zip) compression for 8 bit and 16 bit / sample images
2792   - corrected jpeg rgb compression
2793
2794 - changed mixed up e-mail names (mail, email, e-mail):
2795   - all xsane internal names are: email
2796   - all user visible texts are  : e-mail
2797   - changed acceleration key for email mode to GDK_E
2798   - changed command line option from --mail and -m to --email and -e
2799
2800 - changed name of notebook "image" to "filetype"
2801
2802 - when force_filename is set then the filetype is defined by the filename
2803   instead of preferences.filetype
2804
2805 - project dialog position is saved in devices preferences now
2806
2807 - when a dialog is closed then the position is stored in preferences
2808   so it can be saved when the window is invisible at program exit
2809
2810 - changed handling of ADF:
2811   - removed ADF scanmode selection from setup
2812   - added entry for number of pages to scan in xsane main dialog
2813   - next scan is not started by
2814       g_signal_emit_by_name(xsane.start_button, "clicked"); /* press START button */
2815     any more. This executed the next scan before all active scan subroutines
2816     have been finished. Now we use
2817       gtk_timeout_add(100, (GtkFunction)xsane_scan_dialog, NULL);
2818     to start xsane_scan_dialog after 100ms.
2819
2820 - batch scan window now uses preview levels (zoomed previews) to display batch icons
2821
2822 - added ASMTP authentication PLAIN and LOGIN
2823
2824 - changed size definition of preview window for GTK2 to gtk_window_resize()
2825
2826 - added $(DESTDIR) before each destination path in all Makefile.in
2827
2828 - made usage of MKINSTALLDIRS unique in all Makefile.in
2829
2830 - cleaned up subdir intl
2831
2832 - translations: U=updated (* for 0.99-pre1), N=not updated, A=added/new
2833   cs da de es fr hu it ja nl pl pt pt_BR ro ru sk sl sr sv tr vi zh
2834   U  U  U  N  N  U  N  N  U* U* N  N     N  U  N  U  N  N  U* N  N
2835last upd    96 95    96 95       96 96    96    98    76 92    96 96
2836
2837
2838xsane-0.99 -> 0.991:
2839--------------------
2840 - replaced all char buf[255], char buf[256] etc by char buf[TEXTBUFSIZE]
2841   with #define TEXTBUFSIZE 255
2842
2843 - replaced all char filename[255] etc by char filename[PATH_MAX]
2844
2845 - translations: U=updated (* for 0.99-pre1), N=not updated, A=added/new
2846   cs da de es fr hu it ja nl pl pt pt_BR ro ru sk sl sr sv tr vi zh
2847   N  N  N  N  N  N  U  N  N  N  N  N     N  N  N  N  N  N  N  N  N
2848   99 99 99 96 95 99    95 99 99 96 96    96 99 98 99 76 92 99 96 96
2849
2850 - added default multipage_filetype (PDF).
2851   No default multipage_filetype produced the following problem:
2852   - error message when creating multipage file: could not create secure file
2853
2854 - lineart images are expanded to grayscale in multipage mode.
2855   solves segmentation fault when "show page" in multipage project was selected
2856
2857 - corrected calculation of width and height in copy mode for backends
2858   that do not support arbitary resolutions
2859
2860 - multipage mode: lineart images (that are stored as grayscale images)
2861   are reduced to lineart before the page is put into the multipage file
2862
2863 - viewer shows image info with bit depth = 1 when reduce_to_lineart is set
2864
2865 - change handling of zoom (photocopy mode):
2866   - now there is only one zoom value even if there is a resolution_x and
2867     a resolution_y option, zoom_x and zoom_y are removed
2868   - the zoom factor is directly used to define the image output size
2869     (before the scanresolution was used to define the image output size)
2870   - the resolution is not changed any more when an other printer with a
2871     different printer resolution is selected
2872 - replaced all char buf[255], char buf[256] etc by char buf[TEXTBUFSIZE]
2873
2874xsane-0.991 -> 0.992:
2875---------------------
2876 - there was still a bug concerning the gimp plugin
2877   when xsane has been quit in copy mode and afterwards
2878   started as gimp plugin then xsane used the printer paper
2879   size in the preview window. This is solved now:
2880   replaced preferences.xsane_mode by xsane.xsane_mode
2881   in xsane_define_maximum_output_size()
2882
2883 - xsane_save_scaled_image sometimes did not write the last line
2884   and produced a tuncated image. this is corrected now
2885
2886 - viewer: when saved image is cloned and the viewer of the cloned
2887   image is closed then no dialog pops up any more
2888
2889 - translations: U=updated, N=not updated, A=added/new
2890   ca cs da de es fr hu it ja nl pl pt pt_BR ro ru sk sl sr sv tr vi zh zh_CN
2891   A  N  N  N  N  N  N  U  N  N  N  N  N     N  N  N  N  N  N  N  N  N  A
2892   99299 99 99 96 95 99    95 99 99 96 96    96 99 98 99 76 92 99 96 96 992
2893
2894 - xsane-preview.c: preview_create_batch_icon():
2895   bugfix: files (in) are closed directly after use now,
2896   bug report from Norman Hill - thanks
2897
2898 - corrected order of filetypes in xsane_back_gtk_filetype_menu_set_history, now
2899   the filetype are not mixed any more when the disk icon is pressed
2900
2901 - replaced all "\n" by "\r\n" in email
2902
2903 - corrected some signdness warnings in xsane-preview.c (buf)
2904
2905 - fixed memory bug that caused crash when setup was closed (display_notebook):
2906   added strdup to preferences.browser = strdup(getenv(STRINGIFY(ENVIRONMENT_BROWSER_NAME)));
2907
2908 - added command line option --xsane-rc / -r to change give alternative filename for xsane.rc
2909
2910 - added support for color management:
2911   - added tab "color management" to setup/preferences
2912   - preview can display ICC/ICM corrected images with 8bits/color and with 16bits/color input bit depth
2913   - viewer can display ICC/ICM corrected images with 8bits/color and with 16bits/color input bit depth
2914   - gamma correction and medium selection is disabled when color management is enabled
2915   - added support for embedded ICC/ICM files for
2916     - tiff
2917     - jpeg
2918     - png
2919     - gimp plugin
2920
2921 - replaced several GtkObject* by GtkWidget* to avoid type-punned-pointer warning
2922
2923 - replaced several (void**) typecasts in xsane-rc-io.c to avoid type-punned-pointer warning
2924
2925xsane-0.992 -> 0.993:
2926---------------------
2927
2928 - removed proofing intent options saturation and perceptual, only relative and absolutle colorimetric are available now
2929
2930 - added CMS transformation to saving routines: pnm(8bit), pnm(16bit ascii and binary), png, jpeg, tiff, gimp-plugin, ps, pdf
2931   (missing routines: multipage)
2932
2933 - added support for gtk_file_chooser_dialog
2934   all filenames are handled as full paths (beginning with a slahs) now,
2935   the "change working directory" option has been removed
2936
2937 - made "CANCEL" and "OK" button positions the same as gimp uses it (CANCEL=left, OK=right)
2938
2939 - added browse function for projects directories
2940
2941 - removed bugs in mail mode:
2942    write(fd, "\r\n\r\n", 2) -> write(fd, "\r\n\r\n", 4)
2943    write(fd, "\r\n", 1)     -> write(fd, "\r\n", 2)
2944
2945 - added embedded ICC profiles for postscript (CSA+CRD) and pdf
2946
2947 - added 12 bits/channel support for postscript
2948
2949 - added flatedecode without Asci85 compression for PDF
2950
2951
2952xsane-0.993 -> 0.994:
2953---------------------
2954
2955 - corrected postscript bug: moved "/DeviceRGB setcolorspace" and "CSA... setcolorspace" from document setup to page setup
2956
2957 - added black point compensation to printer setup dialog
2958
2959 - xsane-scan.c: if (channels==1) then scanner_default_gray_icm_profile is used instead of scanner_default_color_icm_profile
2960
2961 - xsane-scan.c: bugfix segfault when scanning: when scanner_default_color_icm_profile is not defined then "" is used instead of scanner_default_color_icm_profile
2962
2963
2964xsane-0.994 -> 0.995:
2965---------------------
2966
2967 - changed layout of copy setup, removed border around all setup tabs
2968
2969 - changed layout of xsane main window
2970
2971 - xsane-front-gtk.c: xsane_browse_filename_callback: xsane.cms_function_option_menu is only updated when xsane.enable_color_management is active
2972
2973 - xsane-save.c: write_smtp_header(): it is allowed to specify multiple mail receivers in a comma separated list now
2974
2975 - xsane-save.c: write_smtp_header(): MAIL FROM and RCPT TO use syntax "<user@domain.org>" instead of "user@domain.org" now
2976
2977 - xsane-front-gtk.c: created xsane_progress_bar_set_fraction which uses the gtk2
2978   functions when available and which only updates the progress_bar every 2.5 percent
2979   what speeds up several functions - especially saving file routines -
2980
2981   xsane*.c: replaced all gtk_progress_bar_update() by xsane_progress_bar_set_fraction()
2982
2983 - xsane-back-gtk.c: in function xsane_back_gtk_value_update()
2984   replaced comparison for SANE_FIX values
2985     if (new_val != val)
2986   by
2987     if (abs(new_val - val) > 1)
2988
2989 - changed all "scanarea" to "scan_area" or "scan area"
2990
2991 - xsane-gtk-1_x-compat.h: changed gtk_progress_bar_set_ellipsize() to
2992   gtk_progress_bar_set_ellipsize(pbar, mode)
2993
2994 - xsane_help_no_devices() changed buf size to 1024
2995
2996 - translations: U=updated, N=not updated, A=added/new
2997   ca cs da de es fi fr hu it ja nl pa pl pt pt_BR ro ru sk sl sr sv tr vi zh zh_CN
2998   U  N  U  N  N  A  N  N  U  N  N  U  N  N  N     N  N  U  N  U  N  N  N  N  N
2999   99599 99599 96 99595 99 99595 99 99599 96 96    96 99 99599 99592 99 96 96 992
3000
3001xsane-0.995 -> 0.996:
3002---------------------
3003
3004 - removed bug when deleting medium types: removed free() command, added realloc()
3005
3006 - xsane_viewer.c: reduced maximum viewer size form gdk_screen_width/gdk_screen_height to
3007   gdk_screen_width-1/gdk_screen_height-1
3008
3009 - xsane-save.c: PDF: ICC object 4+5 are initialized with offset 0
3010 - xsane-save.c: PDF: objects with offset 0 are makred free (f) in xref table
3011
3012
3013xsane-0.996 -> 0.997:
3014---------------------
3015
3016 - removed SANE_CAP_ALWAYS_SETTABLE (not SANE1)
3017 - added test for (opt->size == 0) for SANE_TYPE_STRING in xsane.c
3018 - in gtk_adjustment_new changed page_size from (min-max)*1e-30 to 0
3019   because new gtk versions don`t like non zero values for spinbuttons
3020 - added several gdk_drawable_unref(mask)
3021
3022xsane-0.997 -> 0.998:
3023---------------------
3024 - removed bug saving image as 16 bit png:
3025   until now all low byte data has been a copy of the high byte data,
3026   so in fact all images saved untile xsane-0.997 are saved as 8 bit image
3027   in a 16 bit format.
3028 - changed some more gtk_adjustment_new(...) page_sizes to 0
3029 - added several bytes_read = and bytes_written = before fread, read, fwrite, write
3030 - added some items_done = before fscanf
3031 - corrected some format stings (missing "%s")
3032
3033
3034xsane-0.998 -> 0.999:
3035---------------------
3036 - better preview window size calculation (thanks to Nils Phillipsen)
3037 - removed null-pointer bug in xsane_update_param (thanks to Nils Phillipsen)
3038 - manual page bugix
3039 - changed email password storage
3040