CHANGES FOR FRONTEND XSANE FOR SANE:
------------------------------------

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

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


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

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


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

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



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

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


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

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


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

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


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

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


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

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


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

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


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

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


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

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


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

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

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

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

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

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

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


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

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


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

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


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

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


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

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

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

 - added selection for number of copies in copy mode


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

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


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

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


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

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


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

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


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

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


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

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


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

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


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

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


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

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


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

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


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

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


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

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


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

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


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

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


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

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


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

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


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

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

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

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

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

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


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

 - changed xsane_rc_io_w_space: returns ENODATA instead of EINVAL at EOF

 - added xsane_rc_io_w_skip_newline

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

 - added warning icon and error icon

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

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

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

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


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

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

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

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

 - added fax_width and fax_height to preferences

 - added paper size frame in fax mode preview

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

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

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

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

 - corrected terminating \0 of strings in sane_choose_device

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

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

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

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

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


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

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

 - added support for rotate image in xsane_save_ps

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

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

 - improved memory allocation routines and error handling in preview

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

 - changed dynamic menue list definition in xsane_setup for TIFF_COMPRESSION menu


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

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

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

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

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

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

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

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

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

 - corrected page_step for scales

 - selection_active is reset in preview_display_partial_image instead of preview_paint_image

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


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

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

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

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

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

 - zoom factor keeps unchanged when printer is changed

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

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

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

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

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

 - updated german translation file de.po

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

 - updated french translation file fr.po


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

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

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

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

 - added xsane_set_all_resolutions to xsane_set_modus_defaults

 - xsane resolution can be changed by backend now


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

 - updated french translation table

 - updated german translation table

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

 - changed preferences update_policy from GtkUpdateType to int.

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

 - removed some gtk_main_iteration and reordered some selection drawing routines.

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


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

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

 - added copyright line in devcie selection dialog

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

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

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

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

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

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

 - updated po/xsane-pot.sed


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

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

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

 - moved help menu from file to help

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

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


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

 - made xsane_choose_device return type to void (was gint32)

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

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

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

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

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

 - changed parameters of preview_area_resize and added preview_area_resize_handler

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


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

 - split the preview_event_handler into
   - preview_press_button_event_handler
   - preview_motion_event_handler
   - preview_release_button_event_handler

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

 - reactivated gtk_main_iteration after at the end of motion_event

 - added warning window when xsane is started as root

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

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

 - changed output of "xsane -v"

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

 - added gtk_set_locale() before gtk_init()

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

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

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

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

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

 - renamed directory frontend to src

 - create xsane-help script that opens online helpfile


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

 - preview_do_gamma_correction does test for 3 pass scanner color mode

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

 - removed unused item "custom" from preview surface menu

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

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


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

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

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

 - cleaned up some variable names

 - added free gamma curve dialog (not ready)

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

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

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

 - added "change directory" entry to preferences menu

 - added "scanning for devices" dialog


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

 - updated manpage (was about 1 year old)

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

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

 - some additional changes for rotating preview

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

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

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

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

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

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

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

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

 - html-documentation is updated (a bit)

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

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

 - added error message in xsane_control_option if command failed

 - p->startimage is set to 0 in preview_scan_start


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

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

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

 - added "make uninstall"

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

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


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

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

 - added info icon (green triangle with explanation mark)

 - added info window function: xsane_back_gtk_info

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

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

 - added grab_default for close buttton in info and about dialog

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

 - added about translation dialog

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

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

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


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

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

 - added secure password transmission for authorisation (md5digest)

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

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

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


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

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

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

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

 - updated aclocal.m4 and configure (gimp test)


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

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


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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

 - added new routine xsane_save_rotate_image to xsane-save.c

 - added new routine xsane_save_grayscale_image_as_lineart to xsane-save.c

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

 - xsane_save_rotate_image is called beween scanning and saving image

 - xsane_save_grayscale_image_as_lineart is called beween rotating and saving image

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

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



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

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

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

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

 - finished  preview_autoselect_scanarea()

 - added autoselect scanarea button to preview window

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

 - updated html doc (not complete)

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

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

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


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

 - changed default postscript viewer from xv to gv

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

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

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

 - added "insert file" function to fax mode

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

 - updated xsane online-documentation (html)

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

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

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

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

 - in xsane_info_dialog the scanner type is translated now

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

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

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

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

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


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

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

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

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

 - netscape is called with option new-window now

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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


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

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

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

 - added functions for mirroring preview and mirroring while rotating scan

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

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

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


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

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

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

 - preview: preset_area list is read from xsane.rc

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

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

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

 - calibration image is not rotated any more

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

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

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

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

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

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

 - autoselection of scanarea is not done for startimage

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

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

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

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

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

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

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

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

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


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

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

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

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

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

 - setup uses selected length unit

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

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

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

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

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

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

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


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

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

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

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

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

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

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

 - added mail project dialog

 - added mail setup dialog

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


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

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

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

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

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

 - changed last argument of xsane_back_gtk_set_tooltip from char to gchar

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

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

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

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

 - mail is sent in subprocess

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

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

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

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

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

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

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

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

 - added set_gimp_PLUG_IN_INFO(&PLUG_IN_INFO); for os2

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

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

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


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

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

 - xsane_set_medium is called in xsane_scan_dialog and in preview_scan

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

 - updated documentation (partly)

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

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

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

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

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

 - added progress_bar to the paramter list of xsane_save_*

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

 - added blur and despeckle selction dialog to select filter radius

 - changed viewer and preview window type from GTK_WINDOW_DIALOG to GTK_WINDOW_TOPLEVEL

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

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

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

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

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

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

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

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

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

 - in saving mode temporary conversion file is removed after conversion

 - corrected wrong filenames while saving mail image after scanning

 - added ocr function to viewer


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

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

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

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

   - removed remove() in xsane_save_image_as_lineart()

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


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

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

 - viewer_save_callback(): several changes for saving as lineart

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

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

 - removed bug in despeckle routine

 - increased speed of despeckle routine by about factor 6

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

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

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

 - added image scaling routine to viewer

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

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


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

 - scaling image size does work for 16 bit images now

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

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

 - default mode is viewer instead of saving mode

 - updated po-files: nl

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

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

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

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

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

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

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


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

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

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

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

 - viewer is created with image size - if possible

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

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

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

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

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

 - added Plustek logo


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

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

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

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

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

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

 - added timeout callback for xsane_resolution to set correct quantisation

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

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

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

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

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

 - Changes/preparation for gtk+-2.0:

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

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

   - repleaced all GTK_WINDOW_DIALOG by GTK_WINDOW_TOPLEVEL

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

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

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

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


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

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

 - increased vendor length from 9 to 12 characters.

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

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

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