summaryrefslogtreecommitdiff
path: root/ChangeLog-1.0.0
diff options
context:
space:
mode:
authorJörg Frings-Fürst <debian@jff-webhosting.net>2014-10-06 14:00:40 +0200
committerJörg Frings-Fürst <debian@jff-webhosting.net>2014-10-06 14:00:40 +0200
commit6e9c41a892ed0e0da326e0278b3221ce3f5713b8 (patch)
tree2e301d871bbeeb44aa57ff9cc070fcf3be484487 /ChangeLog-1.0.0
Initial import of sane-backends version 1.0.24-1.2
Diffstat (limited to 'ChangeLog-1.0.0')
-rw-r--r--ChangeLog-1.0.04309
1 files changed, 4309 insertions, 0 deletions
diff --git a/ChangeLog-1.0.0 b/ChangeLog-1.0.0
new file mode 100644
index 0000000..0600ae1
--- /dev/null
+++ b/ChangeLog-1.0.0
@@ -0,0 +1,4309 @@
+1998-11-21 David Mosberger-Tang <David.Mosberger@acm.org>
+
+ * Version 1.0 released
+
+ * From Brian J. Murrell:
+
+ * backend/dll.conf: Mention dc210.
+
+ * backend/cderror.h: New file.
+ * backend/jinclude.h: Ditto.
+ * backend/djpeg.c: Ditto.
+ * backend/dc210.desc: Ditto.
+ * backend/dc210.h: Ditto.
+ * backend/dc210.c: Ditto.
+ * backend/cdjpeg.h: Ditto.
+
+ * doc/Makefile.in (SECT5): Mention sane-abaton.5.
+ * doc/sane-abaton.man: New file.
+ * backend/abaton.c: Ditto.
+ (wait_ready): Explicitly cost tv_sec member to (long) in order
+ to print it (avoids warning on platforms where tv_sec is not a long).
+
+ * backend/abaton.h: Ditto.
+ * backend/abaton.conf: Ditto.
+ * backend/abaton.desc: Ditto.
+ * backend/dll.conf: Mention abaton.
+
+ * Apollo/DomainOS fixes by Paul Walker:
+ * sanei/sanei_DomainOS.h: Add this missing file.
+ * sanei/sanei_config2.c: Include <sane/config.h> to get
+ u_char defined if necessary.
+ * sanei/sanei_DomainOS.c (upper_string): Delete.
+ (do_help): Ditto.
+ * include/sane/config.h.in: Add #undef HAVE_SYS_TIME_H.
+
+ * lib/usleep.c [HAVE_SYS_TIME_H]: Include <sys/time.h> only if
+ we have it.
+
+ * configure.in (CPPFLAGS): Check for sys/time.h.
+
+ * frontend/gtkglue.c: Move include of <sys/types.h> in front
+ of include of <sys/stat.h>.
+
+ * config.sub: Apply patch to recognize -sys5.3.
+
+ * backend/microtek.c: Applied Matto's latest patch to upgrade
+ backend from v0.9 to v0.10.
+
+1998-11-04 David Mosberger-Tang <David.Mosberger@acm.org>
+
+ * backend/microtek2.desc: Mention ScanMaker X6 and Phantom 636.
+
+ * backend/microtek2.c (check_inquiry): Mention Phantom 636 in
+ model string.
+
+1998-11-03 David Mosberger-Tang <David.Mosberger@acm.org>
+
+ * backend/microtek2.c (check_inquiry): Added patch by Sebastian
+ Erdmann <serdmann@cs.tu-berlin.de> to recognize ScanMaker X6.
+
+1998-11-02 David Mosberger-Tang <David.Mosberger@acm.org>
+
+ * backend/artec.c: Print size_t as recommended in backend/GUIDE.
+
+1998-11-02 Chris Pinkham <cpinkham@infi.net>
+
+ * backend/artec.c: changes to correct bugs when using AT12.
+ (sense_handler): New function (by Dick Bruijn).
+ (wait_ready): Ditto (by Dick Bruijn).
+ (abort_scan): Ditto (by Dick Bruijn).
+ Support added to read capability data from scanner if the model.
+ Supports this command (by Dick Bruijn).
+ Added call to sanei_scsi_close() if detected scanner is not
+ a Artec/Ultima model (by Francois Ouellet).
+ Added Negative option. Added Halftone Pattern option.
+ Added Filter Type option for mono scans.
+ Added Quality Calibration option.
+ Moved test_unit_ready command till AFTER we check for ULTIMA scanner.
+
+1998-11-02 David Mosberger-Tang <David.Mosberger@acm.org>
+
+ * config.guess: Upgrade to libtool v1.2.
+ * config.sub: Ditto.
+ * ltconfig: Ditto.
+ * ltmain.sh: Ditto.
+
+1998-10-29 David Mosberger-Tang <David.Mosberger@acm.org>
+
+ * backend/mustek.c (encode_resolution): If MUSTEK_FLAG_DOUBLE_RES
+ is set, use resultion encoding reported by
+ <Heiko_Schroeder@t-online.de>
+ (attach): Set MUSTEK_FLAG_DOUBLE_RES for MSF-06000CZ. Do other
+ models need this, too?
+ (calibration): Declare NUM as size_t, not int. #ifdef out this
+ unused routine.
+ (reader_process): Print size_t values as %lu with explicit cast
+ to u_long.
+
+ * backend/mustek.h (MUSTEK_FLAG_DOUBLE_RES): New flag.
+
+ * backend/mustek.c (init_options): Initialize resolution with 18
+ dpi, not 100dpi so that "scanimage" without options gives a
+ preview-quality image that doesn't take much space or time.
+
+ * backend/mustek.c: Updated with Andreas Bolsch's version (adds
+ support for SE models).
+ * backend/mustek.h: Ditto.
+ * backend/mustek.spec: Ditto.
+
+ * backend/pnm.c (sane_read): Replace C++ comment with C comment.
+
+ * backend/microtek2.c: Updated with Bernd's v0.5.
+ * backend/microtek2.h: Ditto.
+ * backend/microtek2.conf: Ditto.
+
+ * backend/umax.c: Updated with Oliver's latest version.
+ * backend/umax.h: Ditto.
+ * backend/umax-scsidef.h: Ditto.
+ * backend/umax-scanner.h: Ditto.
+ * backend/umax-uc630.h: Ditto.
+ * backend/umax-uc840.h: Ditto.
+ * backend/umax-ug630.h: Ditto.
+ * backend/umax-ug80.h: Ditto.
+ * backend/umax-uc1200s.h: Ditto.
+ * backend/umax-uc1200se.h: Ditto.
+ * backend/umax-uc1260.h: Ditto.
+ * backend/umax.conf: Ditto.
+ * include/sane/saneopts.h: Ditto.
+ * doc/sane-umax-doc.html: Ditto.
+ * doc/sane-umax-doc.tex: Ditto.
+ * doc/sane-umax.man: Ditto.
+
+1998-10-28 David Mosberger-Tang <David.Mosberger@acm.org>
+
+ * doc/sane.tex (subsection{sane_control_option}): Clarify that
+ paramter "v" is ignored for SET_AUTO calls.
+
+ * frontend/saned.c (init): Initialize w->version.
+
+ * backend/net.c (connect_dev): Accept version code 2 and
+ set peer's version code in dev->wire.version.
+
+ * include/sane/sanei_wire.h: New member "version".
+
+ * sanei/sanei_net.c (sanei_w_control_option_req): Encode
+ option value only if peer_version is < 3 or if action is
+ not SANE_ACTION_SET_AUTO.
+
+ * include/sane/sanei_net.h (SANEI_NET_PROTOCOL_VERSION): Up
+ protocol version to version 3.
+
+ * sanei/sanei_net.c (sanei_w_control_option_req): Transcode
+ value_type, value_size, and value only if req->action !=
+ SANE_ACTION_SET_AUTO. Reported by Petter Reinholdtsen.
+
+ Patches by Petter Reinholdtsen <pere@hungry.com>:
+
+ * backend/dmc.c (attach_one): Don't use C++-style comments.
+
+ * backend/dc25.h (DEFAULT_TTY_BAUD): New macro. Move SPEEDS macro
+ to dc25.c.
+
+ * backend/dc25.c: Initialize tty_baud to DEFAULT_TTY_BAUD. Use
+ B57600 and B115200 only if defined.
+
+ * doc/saned.man: Mention that hostname matching no longer is case
+ significant.
+
+ * configure.in
+ (lib/Makefile.in,lib/strcasecmp.c,frontend/saned.c): Use
+ strcasecmp() instead of strcmp to compare DNS hostnames. Case is
+ irrelevant when using DNS.
+
+ * backend/dll.c: Add support for HP-UX 10.xx style shared
+ libs.
+
+ * configure.in include/sane/config.h.in backends/dll.c:
+ Use dhl_load() family for DLL support on HP/UX.
+
+ * backend/snapscan.c (sane_snapscan_open): Don't cast lvalue
+ (illegal according to ANSI C, I think).
+
+ * backend/apple.c (init_options): Add explicit "break" after
+ "default:" to make HP-UX compiler happy (?).
+ (sane_read): Make stuff after #endif a comment.
+
+ * backend/agfafocus.c: New file (by Karl Anders Oygard
+ <karlo@opera.no>).
+ * backend/agfafocus.h: Ditto.
+ * doc/sane-agfafocus.man: Ditto.
+
+ * doc/sane-net.man: Fix typo: network service is called "sane",
+ not "saned" (by Andreas Dilger <adilger@enel.ucalgary.ca>).
+
+ * backend/hp-scl.c (sanei_hp_scsi_pipeout): Use SIGPWR only if its
+ defined (by Peter Kirchgessner).
+
+ * frontend/Makefile.in (INCLUDES): Mention @GTK_CFLAGS@ as part of
+ INCLUDES macro instead of CFLAGS. Despite its name, @GTK_CFLAGS@
+ is guaranteed to contain CPP include directives only. (Reported
+ by Kevin Dalley <kevind@rahul.net>.)
+
+1998-10-27 David Mosberger-Tang <David.Mosberger@acm.org>
+
+ * sanei/sanei_scsi.c (sanei_scsi_open): Return
+ SANE_STATUS_ACCESS_DENIED if open() fails with errno==EACCES.
+
+ * backend/ricoh-scsi.c: #ifdef out unused code and print values of
+ type size_t as prescribed in the file backend/GUIDE.
+
+ * backend/dll.conf: Mention Ricoh backend.
+
+ * backend/ricoh.c: New file (by Ricoh Dillema).
+ * backend/ricoh.h: Ditto..
+ * backend/ricoh-scsi.c: Ditto..
+
+ * backend/microtek.c: Apply Aug 7 patch by Matto Marjanovic.
+
+ * backend/dc25.c: Apply patch by Peter Fales (v1.1).
+ * backend/dc25.desc: Ditto.
+ * doc/sane-dc25.man: Ditto.
+
+ * backend/pnm.c: Applied patch by Goran Thyni <goran@bildbasen.se>
+ that allows scanning parts of a PNM image.
+
+ * backend/GUIDE: Add Matto's comment on .desc files.
+
+ * backend/hp.c: New file from Peter Kirch (formerly known as xhp).
+ * backend/hp.h: Ditto.
+ * backend/hp-accessor.h: Ditto.
+ * backend/hp-device.h: Ditto.
+ * backend/hp-handle.h: Ditto.
+ * backend/hp-option.h: Ditto.
+ * backend/hp-scl.h: Ditto.
+ * backend/hp-scsi.h: Ditto.
+ * backend/hp-accessor.c: Ditto.
+ * backend/hp-device.c: Ditto.
+ * backend/hp-handle.c: Ditto.
+ * backend/hp-hpmem.c: Ditto.
+ * backend/hp-option.c: Ditto.
+ * backend/hp-scl.c: Ditto.
+ * backend/Makefile.in (libsane-hp.la): Make libsane-hp.la
+ dependent upon hp-accessor.lo, hp-device.lo, hp-handle.lo,
+ hp-hpmem.lo, hp-option.lo, and hp-scl.lo.
+
+1998-10-22 David Mosberger-Tang <David.Mosberger@acm.org>
+
+ * doc/sane-hp.man (Model): Mention HP6200 as per report by Tom
+ Martone <tommartone@erols.com>.
+
+1998-07-30 David Mosberger-Tang <David.Mosberger@acm.org>
+
+ * include/sane/config.h.in: Apply Cory Kempf's
+ <ckempf@enigami.com> FreeBSD CAM support patch.
+ * sanei/sanei_scsi.c: Ditto.
+ * tools/find-scanner.c: Ditto.
+ * configure.in: Ditto.
+
+1998-07-27 David Mosberger-Tang <David.Mosberger@acm.org>
+
+ * Version 0.74 released.
+
+ * configure.in (CPPFLAGS): Save old CPPFLAGS in saved_CPPFLAGS and
+ then set CPPFLAGS (not saved_CPPFLAGS!) to include GTK_CFLAGS.
+ This should get GIMP detected again.
+
+ * frontend/xscanimage.c (init): Add missing newline.
+
+ * backend/net.c (sane_init): Look for service "sane", not "saned".
+
+ * configure.in (V_MINOR): Make it 74.
+
+ * tools/sane-desc.el: Hack a bit so sane-backends.html can be
+ generated some place other than the working directory
+ (which may not be writable).
+
+ * tools/sane-desc.el: New file by Matto.
+
+ * doc/Makefile.in (sane-backends-html): New rule to generate
+ sane-backends.html.
+
+ * backend/apple.desc: List sane-apple man page.
+
+ * backend/umax.c: Updated with Oliver's latest version (with Irix
+ 4MB workaround).
+
+ * backend/microtek.c: Updated with Matto's v0.9.
+ * backend/microtek.h: Ditto.
+ * backend/microtek.conf: Ditto.
+ * backend/microtek.desc: Ditto.
+ * doc/sane-microtek.man: Ditto.
+
+ * backend/apple.h: Updated with Milon's v0.3.
+ * backend/apple.c: Ditto.
+
+ * doc/sane-apple.man: New file (contributed by Milon Firirkis).
+
+1998-07-23 David Mosberger-Tang <David.Mosberger@acm.org>
+
+ * backend/canon-scsi.c (reserve_unit): Don't compile unused
+ reserve_unit().
+
+ * sanei/sanei_scsi.c: Apply Yuri's patch to add
+ sanei_scsi_find_devices() support to OS/2.
+
+ * sanei/sanei_pio.c: Include <sane/sanei_backend.h> instead of
+ just <sanei/sanei_debug.h> so we pick up #define's for inb and
+ out.
+
+ * include/sane/config.h.in: Mention HAVE_OS2_H and
+ HAVE_SYS_TYPES_H.
+
+ * configure.in (AC_CHECK_HEADERS): Mention sys/hw.h and
+ sys/types.h.
+ (AC_CHECK_LIB): Check for syslog.
+ (AC_CHECK_FUNCS): Check for _portaccess.
+ (CPPFLAGS): Don't disable qcam backend if we have _portaccess.
+ These patches contributed by Yuri for the benefit of OS/2.
+
+ * backend/qcam.c (qc_unlock) [!F_SETLK]: Fall back to convention
+ UNIX-style locking using O_EXCL (not ideal, but better than
+ nothing at all).
+ (qc_lock_wait): Ditto.
+
+ * sanei/sanei_scsi.c (KillDomainServer): Add missing paren.
+
+ * lib/usleep.c [HAVE_SYS_SELECT_H]: Include <sys/select.h>.
+
+ * include/sane/sanei_backend.h: Define i/o-port access
+ compatibility macros (by Yuri Dario).
+
+ * backend/Makefile.in (CONFIGS): Mention dummy saned.conf
+ (this really ought to go in frontend/Makefile, but I'm too lazy to
+ add a configuration-install rule there...).
+
+ * backend/coolscan.c: Update with Didier's latest version.
+ (send_one_LUT): Merge in alloca() fix from 1998-04-04.
+
+1998-07-22 David Mosberger-Tang <David.Mosberger@acm.org>
+
+ * backend/dll.conf: Mention artec backend.
+
+ * backend/mustek.c (sane_start): Remove duplicate status test.
+
+1998-07-21 David Mosberger-Tang <David.Mosberger@acm.org>
+
+ * frontend/saned.c (main): Look for service name "sane", not
+ "saned".
+
+1998-07-20 David Mosberger-Tang <David.Mosberger@acm.org>
+
+ * backend/epson.c (epson_cmd): Add patch by Holger Frahm
+ <frahm@itp.uni-hannover.de> to support GT9500.
+
+ * backend/microtek.c: Update with latest version (v0.8).
+
+ * backend/artec.c (PREFER_PIXEL_MODE): Apply Chris Pinkham's
+ 6/4/98 patch to add preliminary support for AT6 and AT12 scanner
+ models.
+
+ * backend/epson.c: Apply Christian Bucher's patch.
+
+ * backend/dc25.h: New file (by Peter Fales <psfales@earthling.net>)
+ * backend/dc25.c: Ditto.
+ * backend/dc25.conf: Ditto.
+ * doc/sane-dc25.man: Ditto.
+
+ * backend/microtek2.c: Replace dynamically sized array with
+ alloca() to be ANSI C compliant.
+
+ * backend/epson.c: Replace zero-sized byte arrays with 1 byte
+ arrays to be ANSI C compliant.
+
+ * doc/sane-hp.man: Mention ScanJet 3P (reported by Patrick Debois
+ <Patrick.Debois@lin.vlaanderen.be>).
+
+ * backend/umax.c: Updated with Oliver's 5/7/98 patch.
+
+1998-07-20 Chris Pinkham <cpinkham@infi.net>
+
+ * backend/artec.c: Added code to default to using millimeters
+ instead of pixels for measurements, can revert to pixels by
+ defining PREFER_PIXEL_MODE at compilation time.
+
+ Added code to cause sane_read to block until data available to return,
+ also buffers as much data as possible before returning.
+
+ Added code to cause sane_read to read as much data from scanner as
+ possible for each call, previously would read 1 line max from
+ scanner.
+
+ Added code to attempt to detect scanner capabilities from scanner
+ if scanner supports this command, it not program has defaults
+ coded in for certain scanner models.
+
+ Separated horizontal and vertical resolution settings with ability
+ to bind them together. This still has a bug, so the option is is
+ disabled by default until I can get it working correctly.
+
+ Bug-fixes to get backend working properly with xscanimage.
+ Added preview mode option.
+ Added threshold option.
+
+ * backend/artec.h: Added options codes to go along with options
+ added in artec.c file.
+
+1998-07-20 David Mosberger-Tang <David.Mosberger@acm.org>
+
+ * backend/epson.c (scsi_write): Apply patch by Thomas Bogendoerfer
+ <tsbogend@alpha.franken.de> to get Epson backend to work for SCSI
+ scanners again.
+
+1998-06-05 David Mosberger-Tang <David.Mosberger@acm.org>
+
+ * backend/mustek.c (attach): Move dev_wait_ready() after the check
+ for a Mustek scanner. This is to make sure we don't issue any
+ command other than INQUIRY to SCSI devices that are not known to
+ be Mustek scanners.
+
+1998-05-22 David Mosberger-Tang <David.Mosberger@acm.org>
+
+ * backend/dmc.c: Updated with David Skoll's latest patch.
+
+ * sanei/sanei_scsi.c (sanei_scsi_find_devices): Declare missing
+ findtype arg for dummy sanei_scsi_find_devices().
+
+1998-05-16 David Mosberger-Tang <David.Mosberger@acm.org>
+
+ * backend/hp.c (attach): Return right after INQUIRY if the device
+ doesn't look like an HP scanner.
+
+1998-05-15 David Mosberger-Tang <David.Mosberger@acm.org>
+
+ * Version 0.73 released.
+
+ * backend/mustek.c (attach): Initialize *devp to 0.
+
+ * configure.in: Use AM_PATH_GTK to figure out if/how to compile
+ with gtk libs.
+
+ * aclocal.m4: Include gtk.m4 from gtk-1.0.1 distribution.
+
+ * backend/Makefile.in (install): Change install rule so there is
+ guaranteed to be a (symlink) of the form
+ libsane-$(BACKEND).so.$(V_MAJOR) pointing to the right version
+ of a dll.
+
+ * backend/dll.c (load): Get rid of .la parsing non-sense. Instead,
+ always attempt to open libsane-$(BACKEND).so.$(V_MAJOR).
+
+ * backend/mustek.c (sane_init): Make sure empty lines really
+ are ignored.
+
+1998-05-13 David Mosberger-Tang <David.Mosberger@acm.org>
+
+ * backend/microtek2.conf: Add line "scsi * * Scanner".
+ * backend/microtek.conf: Ditto.
+
+ * sanei/sanei_scsi.c (get_devicename): New function.
+
+ * sanei/sanei_config2.c: New file.
+
+ * sanei/Makefile.in (LIBSANEI_OBJS): Mention sanei_config2.
+ (LIBSANEI_LTOBJS): Ditto.
+
+ * sanei/sanei_scsi.c (sanei_scsi_find_devices): New function
+ (comes in two flavors: one for Linux, one for the remaining
+ platforms).
+
+ * include/sane/sanei_scsi.h: New function.
+
+ * doc/sane-dll.man: Fix to make it work with man2html (use
+ \- instead of -).
+ * doc/sane-dmc.man: Ditto.
+ * doc/sane-epson.man: Ditto.
+ * doc/sane-hp.man: Ditto.
+ * doc/sane-microtek.man: Ditto.
+ * doc/sane-microtek2.man: Ditto.
+ * doc/sane-mustek.man: Ditto.
+ * doc/sane-pint.man: Ditto.
+ * doc/sane-scsi.man: Ditto.
+ * doc/sane-umax.man: Ditto.
+ * doc/saned.man: Ditto.
+ * doc/scanimage.man: Ditto.
+ * doc/xscanimage.man: Ditto.
+
+ * doc/Makefile.in (MAN2HTML): New macro.
+ (html-man): New rule to generate HTML version of man-pages.
+
+ * configure.in (V_MINOR): Up to 73.
+
+ * backend/umax.conf: Add lines "scsi UMAX" and "scsi LinoHell
+ Office".
+
+ * backend/microtek2.h: New file (by Bernd Schroeder
+ <bernd@aquila.muc.de>).
+ * backend/microtek2.c: Ditto.
+ * backend/microtek2.conf: Ditto.
+
+ * backend/dll.conf: Mention "microtek2".
+
+ * backend/apple.conf: Add line "scsi APPLE".
+ * backend/mustek.conf: Add lines for "scsi MUSTEK" and "scsi
+ SCANNER".
+
+ * backend/apple.c (attach_one): New function.
+ (sane_init): Use sanei_config_attach_matching_devices().
+ * backend/artec.c: Like for apple.c.
+ * backend/canon.c: Ditto.
+ * backend/coolscan.c: Ditto.
+ * backend/dmc.c: Ditto.
+ * backend/epson.c: Ditto.
+ * backend/hp.c: Ditto.
+ * backend/microtek.c: Ditto.
+ * backend/mustek.c: Ditto.
+ * backend/s9036.c: Ditto.
+ * backend/snapscan.c: Ditto.
+ * backend/tamarack.c: Ditto.
+
+1998-05-11 David Mosberger-Tang <David.Mosberger@acm.org>
+
+ * backend/snapscan.c (sane_snapscan_get_parameters): Always set
+ depth of 8.
+
+ * configure.in: Check for gtk_tooltips_set_tips _after_ gtk
+ libraries have been located. (Patch by Jake E. Hamby
+ <jehamby@lightside.com>).
+
+1998-05-09 David Mosberger-Tang <David.Mosberger@acm.org>
+
+ * sanei/Makefile.in (.c.o): Patch by Kaz Sasayama
+ <Kaz.Sasayama@hypercore.co.jp>: invoke $(COMPILE) if libtool
+ doesn't give us a regular .o file.
+ * lib/Makefile.in (.c.o): Ditto.
+
+ * frontend/preview.c (preview_update): Call update_selection() so
+ selection is updated when scanwindow geometry changes. The patch
+ from 1998/4/2 never worked satisfactorily (and indeed was never
+ enabled in any of the SANE releases).
+
+1998-05-06 David Mosberger-Tang <David.Mosberger@acm.org>
+
+ * backend/mustek.c (sane_init): Use sanei_config_skip_whitespace()
+ to skip whitespace.
+
+1998-05-05 David Mosberger-Tang <David.Mosberger@acm.org>
+
+ * frontend/xscanimage.c (init): Allow -g as an option.
+
+ * sanei/sanei_config.c (sanei_config_get_string): New function.
+ (sanei_config_skip_whitespace): Ditto.
+
+ * backend/umax.c: Updated with Oliver's latest patch.
+
+ * Makefile.in (INSTALLED_INCLUDES): Mention sanei_readproc.h.
+
+ * backend/microtek.h: Updated with Matto's 0.7 patch.
+ * doc/sane-microtek.man: Ditto.
+ * backend/microtek.c: Ditto.
+ Added precalibration code: tries to intelligently have scanner
+ run a calibration only once when necessary --- this shaves a solid
+ six seconds off every scan!
+ Added model code/vendor name for ScanMaker 600ZS.
+ Added model codes/vendor name for Agfa Arcus II, StudioScan,
+ StudioScan II.
+ Patched up 3-pass scanning (forgot to switch color planes).
+ Corrected IIHR to 600dpi base resolution.
+ Check so that 0x0 regions are recognized as invalid.
+ Fixed subtle buffering bug in color scans.
+ Fixed-up active/inactive dependencies among options.
+ Make sure shadow <= midtone <= highlight.
+ Let shadow/midtone/hightlight be active during LineArt and Halftone.
+ "Halftoning" option moved into Scan Mode Group (from Enhancement).
+ Removed some illegal "TEST_UNIT_READY" commands (during scan).
+ Removed "MODE_SENSE_1", since it didn't quite work anyway.
+
+1998-05-03 David Mosberger-Tang <David.Mosberger@acm.org>
+
+ * frontend/xscanimage.c (scan_preview): Don't register
+ preview_window_destroyed as a delete_event handler.
+
+1998-05-02 David Mosberger-Tang <David.Mosberger@acm.org>
+
+ * backend/Makefile.in: Remove unused LIBLIB macro.
+
+1998-04-30 David Mosberger-Tang <David.Mosberger@acm.org>
+
+ Patches by Matto Marjanovic:
+
+ * frontend/gtkglue.c (gsg_close_dialog_callback): Remove
+ client_data pointer arg.
+
+ * frontend/xscanimage.c (scan_win_delete): Remove GdkEvent arg.
+ (preview_window_destroyed): Ditto.
+ (input_available): Include bad_depth handling code only if
+ HAVE_LIBGIMP_GIMP_H is defined.
+ (scan_dialog): Remove client_data pointer arg.
+
+1998-04-29 David Mosberger-Tang <David.Mosberger@acm.org>
+
+ * frontend/gtkglue.c (gsg_get_filename): Use gtk_events_pending()
+ instead of gdk_events_pending().
+ * frontend/preview.c (input_available): Ditto.
+ * frontend/xscanimage.c (quit_xscan): Ditto.
+ (input_available): Ditto.
+
+1998-04-08 David Mosberger-Tang <David.Mosberger@acm.org>
+
+ * sanei/sanei_pio.c (sanei_pio_open): Fix prototype.
+
+1998-04-07 David Mosberger-Tang <David.Mosberger@acm.org>
+
+ * Version 0.72 released.
+
+ * backend/epson.c (sane_init): Fix up config file reading
+ to be more like that of other backends.
+ (PATH_MAX): Use PATH_MAX instead of FILENAME_MAX.
+
+ * backend/canon.c (sane_init): Read & process canon.conf (patch by
+ Yuri Dario <mc6530@mclink.it>).
+
+1998-04-06 David Mosberger-Tang <David.Mosberger@acm.org>
+
+ * sanei/sanei_init_debug.c (sanei_init_debug): Move up #endif
+ so NULL-test works for OS/2, too.
+
+ * frontend/saned.c: Include <sys/types.h>.
+
+ * backend/snapscan.c: Don't include non-ANSI <values.h>.
+ (sane_snapscan_start): Use INT_MAX instead of MAXINT.
+ (PATH_MAX): Define PATH_MAX as 1024 if not defined otherwise.
+
+1998-04-05 David Mosberger-Tang <David.Mosberger@acm.org>
+
+ * backend/umax.c: Updated with Oliver's latest version
+ (0.72pre-a).
+
+1998-04-04 David Mosberger-Tang <David.Mosberger@acm.org>
+
+ * backend/coolscan.c: Do lalloca.h spiel instead of including
+ alloca.h.
+
+ * configure.in: Look for glib/include directory in /usr/local/lib
+ and /usr/lib. Add $C_SWITCH_X_SITE to CPPFLAGS, not DEFS.
+
+ * doc/sane-mustek.man: Mention MFS-1200SP v1.07 as working as
+ reported by ehramm@dk3uz.hh.provi.de (Edmund H. Ramm).
+
+1998-04-03 David Mosberger-Tang <David.Mosberger@acm.org>
+
+ * backend/canon-scsi.c (request_sense): ifdef out to quiet down
+ gcc.
+
+ * backend/artec.c (read_data): Print size_t as (u_long) to make it
+ work right and without compiler warning both on 32 and 64 bit
+ platforms.
+ (artec_get_status): Ditto.
+ (init_and_start_scan): Ditto.
+ (sane_start): Ditto.
+ (sane_read): Ditto.
+ (artec_buffer_line_offset): Declare LEN as size_t.
+ * backend/epson.c (sane_read): Ditto.
+
+ * sanei/sanei_pio.c (pio_wait): Initialize STAT with 0 to quiet
+ down gcc.
+
+ * backend/Makefile.in (libsane-epson.la): Mention sanei_pio.lo.
+ (libsane-dll.la libsane.la): Ditto.
+
+ * sanei/Makefile.in (LIBSANEI_OBJS): Mention sanei_pio.o.
+ (LIBSANEI_LTOBJS): Mention sanei_pio.lo.
+
+ * frontend/xcam.c (input_available): Undo braindamage regarding
+ break out of scan loop (the SANE docs _do_ specify that in
+ blocking mode, *len==0 implies end of scan).
+ * frontend/xscanimage.c: Ditto.
+
+ * doc/sane-dmc.man: New file by David Skoll.
+
+ * sanei/sanei_DomainOS.c: New file by Paul Walker.
+
+ * backend/snapscan.c (DL_INFO, DL_MAJOR_ERROR): Up error code to 1
+ to avoid printing anything unless the user specifically asked
+ for this.
+
+ * include/sane/sanei_debug.h (DBG_LEVEL): Define debug level
+ variable as macro DBG_LEVEL.
+
+ * README.solaris (NOTE): Emphasize that generic scsi driver
+ needs to be installed before running configure.
+
+ * backend/s9036.c: Don't depend on GNU C dynamically sized arrays.
+
+ * backend/coolscan.c (send_one_LUT): Use alloca() instead of
+ depending on GNU C dynamically sized arrays.
+ Include <alloca.h>.
+
+ * frontend/xscanimage.c (input_available): Break out of the
+ loop only if LEN==0 _and_ we have a non-negative input tag.
+ * frontend/xcam.c (input_available): Ditto.
+
+ * backend/microtek.c (parse_inquiry): Handle for ScanMaker 35t+.
+ (id_microtek): Ditto.
+
+1998-04-02 David Mosberger-Tang <David.Mosberger@acm.org>
+
+ * configure.in (CPPFLAGS): Check for libXi.
+
+ * frontend/gtkglue.c (panel_destroy): Clear dialog elements
+ after destroying the panel.
+
+ Patches by Christian Bucher <cbucher@vernetzt.at>:
+
+ * include/sane/sanei_pio.h: New file.
+ * sanei/sanei_pio.c: Ditto.
+ * backend/epson.c, backend/epson.h, backend/epson.conf: Updated
+ with Christian's version adds support for parallel port interface.
+
+ * sanei/sanei_scsi.c (sanei_scsi_req_wait): Patch by Matto to let
+ sense-handler decide whether a non-zero sense_buffer[0] really
+ should be considered an error (needed for Microtek backend).
+
+ * doc/sane.tex (\subsubsection{Option Value Unit}): Document new
+ unit SANE_UNIT_MICROSECOND.
+
+ Patches by Oliver Rauch:
+
+ * frontend/gtkglue.c (unit_string): Handle SANE_UNIT_MICROSECOND.
+ * frontend/scanimage.c (print_unit): Ditto.
+ (parse_scalar): Ditto.
+
+ * include/sane/sane.h: Add SANE_UNIT_MICROSECOND.
+
+ * Upgrade to Kevin's latest SnapScan backend (0.4).
+
+ * doc/sane-hp.man: Mention ScanJet IIp C1790A as working (reported
+ by Ronald.Vogelaar@nl.origin-it.com).
+
+ * frontend/xscanimage.c (init): Issue an error message when we see
+ option -g as this is most likely due to someone invoking
+ xscanimage through GIMP when GIMP support is missing.
+ (scan_done): Add sanity check.
+ (scan_start): Ditto.
+
+ * Upgraded to Matto's latest Microtek backend (0.6).
+
+ * Upgraded to Oliver's latest UMAX backend (0.71h).
+
+ * frontend/preview.c (draw_selection): Fix so that selection is
+ updated when sliders are moved. Patch by Mikko Tyo"la"ja"rvi.
+
+ * backend/snapscan.c (DL_INFO): Increase from 0 to 1.
+ (DL_MAJOR_ERROR): Ditto. This avoids printing error messages
+ unless the user specifically requests them.
+
+ * frontend/gtkglue.c: Include <sys/types.h>.
+
+ * include/sane/config.h.in: Ignore HAVE_USLEEP under Apollo
+ Domain.
+
+ Patches by Paul Walker:
+
+ * sanei/sanei_scsi.c: New Domain OS code.
+
+ * tools/find-scanner.c: Include <sane/config.h>.
+
+ * lib/usleep.c (usleep): Use time_$wait() to avoid broken usleep()
+ implementation in Domain Sys5.3 environment.
+
+ * config.sub: Translate sys5.3 into sysv3 for the benefit
+ of Apollo Domain/OS.
+
+ * sanei/sanei_init_debug.c (sanei_init_debug): Use DosScanEnv()
+ instead of getenv() under OS/2. (Patch by Yuri Dario
+ <mc6530@mclink.it>)
+
+1998-03-02 David Mosberger-Tang <David.Mosberger@acm.org>
+
+ * frontend/xcam.c (main): Remove obsolete call to
+ gdk_set_debug_level (0).
+
+ * backend/mustek.c (attach): Print debug message when discovering
+ unknown model.
+
+ * doc/sane-scsi.man: Mention Adaptec 1505.
+
+ * tools/find-scanner.c (main): List FreeBSD specific device names.
+
+ * tools/Makefile.in (LIBS): Define.
+ (find-scanner): Mention $(LIBS).
+
+ * backend/epson.conf: New file.
+
+ Patches by Yuri Dario <mc6530@mclink.it>:
+
+ * backend/epson.c (sane_init): Support config file.
+
+ * sanei/sanei_ab306.c (outb): Add missing parens.
+
+ * backend/snapscan.c: Don't include <values.h>
+
+ * backend/net.c: Include netdb.h after in.h to appease OS/2.
+ Include <sys/types.h>.
+
+ * sane-0.71.spec (%files): Mention sane-dmc.5.
+ * doc/Makefile.in (SECT5): Ditto.
+
+ * backend/dmc.c, backend/dmc.h: Update with Feb 26 patch from
+ David Skoll.
+ * doc/dmc.man: New file by David Skoll.
+
+1998-02-25 David Mosberger-Tang <David.Mosberger@acm.org>
+
+ * backend/dmc.c (DMCSetMode): Add missing field name (patch by
+ Martin Huber).
+
+ * tools/find-scanner.c (main) [__sun]: Add missing command (patch
+ by Martin Huber.
+
+ * sanei/sanei_scsi.c (sanei_scsi_cmd): Fix typo: fd_Info->fd_info
+ (patch by Jeff Freedman).
+
+ * configure.os2: Update with patch by Jeff Freedman.
+
+ * backend/snapscan.c (sane_snapscan_start): Replace non-standard
+ MAXINT by INT_MAX from <limits.h>.
+ (PATH_MAX): Define PATH_MAX as 1024 if not defined by headers.
+
+1998-02-23 David Mosberger-Tang <David.Mosberger@acm.org>
+
+ * Version 0.71 released.
+
+ * backend/dmc.c (DMCAttach): Close scsi fd before returning.
+
+ * backend/microtek.c: Default to no_dump.
+ (sane_init): Change "nodump" into "dump" option.
+ * doc/sane-microtek.man: Document this change.
+
+ * backend/snapscan.c: Include <sane/sanei_config.h>.
+ (sane_snapscan_init): Use sanei_config_open() instead of fopen().
+
+ * backend/snapscan.c: Upgrade to latest version (0.3 patch 7).
+ * backend/snapscan.h: Ditto.
+
+ * configure.in (V_MINOR): Up version to 0.71.
+
+ * sanei/sanei_scsi.c (scsi_cmd) [USE == SOLARIS_INTERFACE]: "or"
+ in lun instead of overwriting cdb[1] (patch by Martin Huber
+ <hu@garfield.m.isar.de>).
+
+ * backend/snapscan.c: Replace <posix1_lim.h> with <limits.h>.
+
+ * backend/mustek.c (fix_line_distance_mfs): Add back missing
+ multiplication by bpl (patch by Stefano Garavaglia
+ <alter.ego@iol.it>).
+
+ * backend/coolscan.c: Updated with Didier's latest version.
+ (COOLSCAN_CONFIG_FILE): Rename from PATH_COOLSCAN_CONFIG and
+ define as "coolscan.conf". Include <sane/sanei_config.h>.
+ (sanei_init): Use sanei_config_open() instead of fopen().
+
+ * backend/coolscan-scsidef.h: Ditto.
+ * backend/coolscan.h: Ditto.
+
+ * backend/hp.c (sane_close): Change s to s->next (patch by David
+ Skoll <dskoll@chipworks.com>).
+
+1998-02-17 David Mosberger-Tang <David.Mosberger@acm.org>
+
+ * backend/Makefile.in (PRELOADABLE_BACKENDS): Mention apple &
+ coolscan.
+
+ * backend/coolscan.c: New file (by Didier Carlier
+ <didier@sema.be>)..
+ * backend/coolscan.h: Ditto.
+ * backend/coolscan-scsidef.h: Ditto.
+
+ * backend/apple.c: Include <sane/sanei_config.h>
+ (APPLE_CONFIG_FILE): Rename from PATH_APPLE_CONFIG.
+ (sane_init): Use sanei_config_open().
+
+ * backend/apple.conf: New file.
+
+ * backend/dll.conf: Mention apple & coolscan backends.
+
+ * backend/apple.c: New file (by Milon Firikis
+ <milonf@isosun.ariadne-t.gr>).
+ * backend/apple.h: Ditto.
+
+ * sane-0.70.spec: Make symlink for libsane.so.0.
+
+ * doc/sane-epson.man: Mention GT-5500 scanner as working (as
+ reported by Umberto Zanatta <uzanatta@foscolo.org>).
+
+1998-02-12 David Mosberger-Tang <David.Mosberger@acm.org>
+
+ * sanei/sanei_scsi.c (DOMAINOS_INTERFACE): Define. Add
+ Apollo Domain/OS support contributed by Paul Walker.
+
+ * configure.in (AC_CHECK_HEADERS): Mention apollo/scsi.h.
+ Add #undef of HAVE_APOLLO_SCSI_H. Add type checks for u_char,
+ u_int, u_long (DomainOS reportedly needs these).
+
+ * sanei/sanei_scsi.c (sanei_scsi_req_wait) [USE ==
+ LINUX_INTERFACE]: Always check for a non-zero error code in the
+ sense-buffer. The Linux sg driver guarantees that the sense
+ buffer is clear to zero when no sense code has been requested, so
+ this is safe.
+
+1998-01-28 David Mosberger-Tang <David.Mosberger@acm.org>
+
+ * Version 0.7 released.
+
+1998-01-27 David Mosberger-Tang <David.Mosberger@acm.org>
+
+ * frontend/xscanimage.c (quit_xscan): Exit with status 0, not 1.
+
+ * tools/xerox (scale): Added improvements contributed by Joachim
+ Woll <woll@physik.uni-kassel.de>.
+
+ * Upgrade to Oliver's latest UMAX backend.
+
+ * include/Makefile.in (distclean): Add empty all rule. Add
+ distclean rule to delete Makefile.
+
+ * Makefile.in (distclean): Delete japi/Makefile as well (this
+ command should be removed once japi gets added to SUBDIRS).
+
+ * backend/Makefile.in (EXTRA): Remove ../lib/usleep.lo and
+ ../lib/strndup.lo.
+ (libsane.la): Make dependent on $(LIBOBJS).
+
+ * frontend/xscanimage.c (preview_window_destroyed): Declare second
+ arg (added in some version of gtk?).
+
+ * tools/find-scanner.c (main): Change __sgi__ to __sgi.
+
+1998-01-26 David Mosberger-Tang <David.Mosberger@acm.org>
+
+ * backend/microtek.c: Don't declare strdup()---you're bound to get
+ it wrong for some platforms!
+
+ * doc/sane-scsi.man: Say explicity that generic SCSI support needs
+ to be enabled.
+
+ * doc/sane-hp.man (Problems): Document PhotoSmart problems
+ as reported Peter Kirchgessner <Pkirchg@aol.com>.
+
+ * backend/snapscan.c: Upgrade to v0.3 from
+ http://www.cs.ualberta.ca/~charter/snapscan.html.
+ * backend/snapscan.h: Ditto.
+
+1998-01-22 David Mosberger-Tang <David.Mosberger@acm.org>
+
+ SnapScan backend by Franck Schnefra, Michel Roelofs and
+ Kevin Charter:
+
+ * backend/snapscan.c: New file.
+ * backend/snapscan.h: Ditto.
+ * backend/snapscan.conf: Ditto.
+
+ * backend/umax-scanner.h (scanner_str): Add missing comma.
+
+ * sanei/sanei_scsi.c (sanei_scsi_cmd): Pass sense_handler_arg to
+ sense handler for BSD_INTERFACE, HPUX_INTERFACE,
+ OPENSTEP_INTERFACE, DECUNIX_INTERFACE, SCO_OS5_INTERFACE,
+ OS2_INTERFACE, IRIX_INTERFACE, AIX_GSC_INTERFACE, and
+ SOLARIS_INTERFACE.
+
+ * include/sane/config.h.in: Add missing #undef of
+ HAVE_SYS_SCSI_TARGETS_SCGIO_H.
+ Ditto for HAVE_SYS_SCSI_SGDEFS_H.
+
+1998-01-20 David Mosberger-Tang <David.Mosberger@acm.org>
+
+ * Version 0.69 released.
+
+ * doc/sane-scsi.man: Limit ncr810 patch to kernel versions <
+ 2.0.33.
+
+ * tools/xerox (HEIGHT): Add A4 paper size as comment.
+
+1998-01-19 David Mosberger-Tang <David.Mosberger@acm.org>
+
+ * frontend/preview.c (make_preview_image_path): New function.
+ (preview_destroy): Save scan surface parameters as a comment
+ in the preview image.
+ (restore_preview_image): Read scan surface parameters from
+ preview image file and restore only if the parameters match
+ the currently selected surface.
+ (paint_image): Gracefully handle NULL image_data.
+ (event_handler): Don't call restore_preview_image().
+ (preview_update): Detect if the scan surface changed. If so,
+ establish a new preview widget size, preview area size, and
+ restore a preview image, if available.
+
+ * backend/mustek.c (sense_handler): Declare closure argument.
+
+ * sanei/sanei_scsi.c (sanei_scsi_open): Fix typos.
+
+ * backend/umax-scsi.c (umax_open_scanner): Pass us as sense_arg.
+ (umax_open_scanner): Ditto.
+ (umax_open_scanner): Ditto.
+ * backend/umax.c (sane_start): Ditto.
+
+ * backend/canon.c (attach): Pass 0 as sense_arg to sanei_scsi_open().
+ (sane_start): Ditto.
+ * backend/epson.c (attach): Ditto.
+ (sane_start): Ditto.
+ * backend/tamarack.c (sense_handler): Ditto.
+ * backend/s9036.c (sane_start): Ditto.
+ * backend/mustek.c (dev_open): Ditto.
+ * backend/hp.c (attach): Ditto.
+ (sane_start): Ditto.
+ * backend/mustek.c (dev_open): Ditto.
+ * tools/find-scanner.c (main): Ditto.
+
+ * include/sane/sanei_scsi.h (SANEI_SCSI_Sense_Handler): Declare
+ closure arg.
+ (sanei_scsi_open): Ditto.
+
+ * doc/sane-hp.man (Model): Remove obsolete comment regardign 5P.
+
+1998-01-17 David Mosberger-Tang <David.Mosberger@acm.org>
+
+ * backend/mustek.c (dev_open): Fix debug message.
+
+ * Solaris related patches by Martin Huber:
+
+ * backend/umax-scsi.c (umax_wait_scanner): Sleep for 1 second
+ instead of 100ms on Sun platforms---the SCHILYscg driver prints a
+ warning message each time a device is busy. Duh.
+ (umax_get_data_buffer_status): Don't do
+ umax_get_data_buffer_status() on Sun's. This should be fixed...
+
+ * sanei/sanei_scsi.c (sanei_scsi_open): Call unit_ready() towards
+ the end of this function.
+ (CCS_SENSE_LEN): Define as 18 if not defined
+ by any header files.
+ (sanei_scsi_cmd): Use sensebuffer to collect sense info.
+ (scsi_cmd): Better error handling when using SCHILYscg driver.
+
+1998-01-14 David Mosberger-Tang <David.Mosberger@acm.org>
+
+ * frontend/xscanimage.c (scan_start): Turn off dialog sensitivity.
+ (scan_done): Restore dialog sensitivity.
+
+ * backend/qcam.c (init_options): Turn on SANE_CAP_ALWAYS_SETTABLE.
+
+ * frontend/preview.c (scan_done): Enable dialog sensitivity.
+ (scan_start): Disable dialog sensitivity.
+
+ * include/sane/sane.h (SANE_CAP_ACTIVE_WHILE_SCANNING): New
+ manifest constant.
+
+1998-01-12 David Mosberger-Tang <David.Mosberger@acm.org>
+
+ * frontend/gtkglue.c (panel_destroy): Call gtk_tooltips_unref()
+ instead of gtk_tooltips_destroy() as suggested by Ben Gertzfield
+ <che@debian.org>.
+
+1997-12-25 David Mosberger-Tang <David.Mosberger@acm.org>
+
+ * backend/canon.c: New file by Helmut Koeberle
+ <helmut.koeberle@bytec.de>.
+ (sane_start): Print variables of type size_t as %lu and cast to
+ (u_long), to make it compile without warning on all platforms.
+ (attach): Remove extraneous semicolon.
+
+ * backend/canon.h (canon_h): Ditto
+ * backend/canon-scsi.c: Ditto.
+
+1997-12-24 David Mosberger-Tang <David.Mosberger@acm.org>
+
+ * sanei/sanei_ab306.c (sanei_ab306_cmd): Write the first
+ 6 bytes of a SCSI command only (suggested by Andreas, but
+ is this really correct??).
+
+ * backend/mustek.c (gamma_correction): Add patch by Andreas
+ Czechanowski <andreas@inspc44c.ins.uni-stuttgart.de> to
+ fix lineart scanning for Paragon II 600 N scanner.
+
+1997-12-23 David Mosberger-Tang <David.Mosberger@acm.org>
+
+ * tools/find-scanner.c (scanner_identify_scanner): Print info on
+ all SCSI devices when --verbose is in effect.
+ (main): Add Sun device names.
+
+ * include/sane/config.h.in: Define _POSIX_SOURCE and
+ __EXTENSIONS__ when compiling on a Sun with GCC.
+
+ * configure.in (AC_CHECK_HEADERS): Mention sys/scsi/sgdefs.h and
+ sys/scsi/targets/scgio.h.
+
+1997-12-17 David Mosberger-Tang <David.Mosberger@acm.org>
+
+ * frontend/xscanimage.c (device_dialog): Suggestion by Matt: set
+ window auto-shrink by calling gtk_window_set_policy().
+
+ * japi/ImageCanvas.java: Updated with Jeff's latest patch.
+ * japi/Jscanimage.java: Ditto.
+ * japi/Makefile.in: Ditto.
+ * japi/README.JAVA: Ditto.
+ * japi/ScanIt.java: Ditto.
+ * japi/ImageCanvasClient.java: New file.
+
+1997-12-16 David Mosberger-Tang <David.Mosberger@acm.org>
+
+ * frontend/gtkglue.c (panel_build): Patch by Matt: a) For all
+ individual options flagged as "advanced", panel_build will only
+ display the option if the "Show advanced" button is toggled.
+ Group identifiers flagged as "advanced" are handled the same as
+ before. b) panel_rebuild is called whenever the "Show advanced"
+ button is toggled on or off.
+
+ * doc/sane-scsi.man: Mention sane-epson(5) and sane-microtek(5).
+ * doc/scanimage.man: Ditto.
+ * doc/xscanimage.man: Ditto.
+
+ * doc/sane-microtek.man: New file by Matt.
+
+ * backend/microtek.c: Updated with Matt's version 0.4.
+ * backend/microtek.h: Ditto.
+ * backend/microtek.conf: Ditto.
+
+ * doc/Makefile.in (SECT5): Mention sane-microtek.5.
+
+1997-12-15 Fred Hucht & Michael Staats <{fred|michael}@thp.Uni-Duisburg.DE>
+
+ * Added support for generic SCSI under AIX 4.1.x using the device
+ driver gsc written by Matthew Jacob <mjacob@feral.com> (nice piece
+ of work!).
+ Find this driver under
+ ftp://ftp.feral.com/pub/aix/gsc.tar.gz or
+ ftp://ftp.thp.Uni-Duisburg.DE/pub/source/gsc.tar.gz.
+ Changed files: sanei/sanei_scsi.c, include/sane/config.h.in,
+ configure.in.
+
+ * Moved '#include <lalloca.h>' to very beginning in all source
+ files as AIX needs it there.
+
+ * Added define OUTFILENAME to frontend/xscanimage.c.
+
+ * Fixed wrong environment reference in /doc/sane-scsi.man.
+
+ * Several changes in tools/find-scanner.c to run using
+ above mentioned driver.
+ Fixed wrong IN_periph_devtype_cpu (was 1, should be 3).
+
+1997-12-14 David Mosberger-Tang <David.Mosberger@acm.org>
+
+ * doc/sane-hp.man: Mention ScanJet 4P (reported to work by
+ Adam Sjoegren <asjo@diku.dk>).
+
+1997-12-09 David Mosberger-Tang <David.Mosberger@acm.org>
+
+ * frontend/saned.c (check_host): Change len from size_t to int to
+ match getpeername() as per Single Unix Spec (as opposed to POSIX
+ drafts...).
+ (start_scan): Ditto for getsockname().
+ * backend/net.c (sane_start): Ditto.
+
+ * backend/tamarack.c (TAMARACK_CONFIG_FILE): Delete.
+ (TAMARACK_CONFIG_FILE): New macro.
+ Include <sane/sanei_config.h>.
+ (sane_init): Use sanei_config_open() instead of fopen().
+ (read_data): Declare nbytes as size_t---makes a difference
+ on 64-bit platforms.
+
+1997-12-07 David Mosberger-Tang <David.Mosberger@acm.org>
+
+ * backend/s9036.c (sane_init): Run through "indent -gnu". Use
+ sanei_config_open() instead of fopen(). Include
+ <sane/sanei_config.h>.
+ (read_more_data): Print size_t variables by casting them to
+ (u_long) and using %lu format (some platforms have size_t as
+ u_long, others as u_int, which does make a difference if
+ sizeof(long) > sizeof(int).
+ (sane_start): Ditto.
+ Add English translation for comments that were in German only.
+
+ * backend/s9306.c: New file by Ingo Schneider.
+ * backend/s9306.h: New file by Ingo Schneider.
+
+1997-12-04 David Mosberger-Tang <David.Mosberger@acm.org>
+
+ * backend/mustek.c (sane_cancel): Collect child process status
+ after killing it (avoids accumulating zombie processes). Reported
+ by Mike Sweet.
+ * backend/umax.c (sane_cancel): Ditto.
+ * backend/qcam.c (sane_close): Ditto.
+ (sane_cancel): Ditto.
+
+1997-12-03 David Mosberger-Tang <David.Mosberger@acm.org>
+
+ * Version 0.68 released.
+
+1997-12-02 David Mosberger-Tang <David.Mosberger@acm.org>
+
+ * frontend/scanimage.c (window_val_user): New variable.
+ (fetch_options): Don't overwrite window_val[i] if it's
+ user-specified.
+ (main): Set window_val_user[i] as necessary.
+
+ * backend/mustek.c (send_gamma_table): New function.
+ (sane_start): Send gamma table both before and after start_scan().
+ The MFS-06000CX is reported to need the gamma-table before
+ start_scan() and the Mustek docs do indeed indicate downloading
+ the gamma-table twice.
+ (init_options): Make --custom-gamma option active by default (since
+ gray-scale mode is the default mode).
+
+1997-11-30 David Mosberger-Tang <David.Mosberger@acm.org>
+
+ * doc/sane-mustek.man: Mention MFC-08000CZ.
+
+ * backend/mustek.c (attach): Reduce y_range.max for MFC-08000CZ
+ from 300 to 292mm as reported by Jeroen Steenblik
+ <jeroens@esrac.ele.tue.nl>. Ditto for MFC-06000CZ.
+
+1997-11-28 David Mosberger-Tang <David.Mosberger@acm.org>
+
+ * backend/umax-scanner.h (scanner_str): Add "Astra 610S".
+ (known_scanners): Increment from 13 to 14.
+
+ PP fixes by Andreas Czechanowski:
+ * backend/mustek.c (EXTRA_SAVE_LINES): New macro.
+ (fix_line_distance_pp): Use EXTRA_SAVE_LINES instead of hardcoded
+ constant. Various fixes to make it actually work.
+ (reader_process): Initialize s->ld_ld_line to zero.
+
+ * backend/mustek.h (struct Mustek_Scanner): Add member ld_line.
+
+1997-11-26 David Mosberger-Tang <David.Mosberger@acm.org>
+
+ * tools/Makefile.in (.c.o): Add this rule.
+
+ * tools/find-scanner.c: Include sanei_scsi.h and sanei_debug.h
+ via <> quotes (note "").
+
+1997-11-25 David Mosberger-Tang <David.Mosberger@acm.org>
+
+ * sanei/sanei_ab306.c (sanei_ab306_exit): Fix by Andreas
+ Czechanowski: output 0x00 at port[i].base + 1 instead.
+
+1997-11-22 David Mosberger-Tang <David.Mosberger@acm.org>
+
+ * doc/sane-mustek.man (Model): Clarify that paralell port != printer
+ port.
+
+ * backend/mustek.c (fix_line_distance_mfs): Add missing SANE_UNFIX()
+ calls for x_range.max and dpi_range.max.
+ (fix_line_distance_pp): Correct based on Andreas' feedback.
+
+1997-11-18 David Mosberger-Tang <David.Mosberger@acm.org>
+
+ * configure.in (CFLAGS): Don't specify -ansi---with older libcs,
+ it's causing more problems than it's worth.
+
+ * Patch by Jeff Freedman:
+
+ * japi/Sane.c: Limit string length to option size.
+
+ * japi/SaneOption.java: Fix indentation.
+ (unitString): New function.
+
+ * japi/ImageCanvas.java: New file.
+ * japi/Jscanimage.java: Ditto.
+ * japi/ScanIt.java: Ditto.
+
+ * japi/Makefile.in (CLASSES): Mention ScanIt.class and
+ ImageCanvas.class.
+ (all): Mention Jscanimage.class.
+ * japi/Scan.c: Include <string.h>.
+ (String_length): New function.
+
+1997-11-16 David Mosberger-Tang <David.Mosberger@acm.org>
+
+ * frontend/gtkglue.c (scale_update): In recent versions of GTK,
+ "value_changed" callbacks no longer return a value. Change this
+ function to type "void" accordingly.
+
+ * sanei/sanei_scsi.c: Declare cam_fd only if USE ==
+ DECUNIX_INTERFACE.
+
+ * sanei/sanei_load_values.c (sanei_load_values): Detect errors
+ while reading the option name (first call to sanei_w_string()).
+ Reported by Geoffrey T. Dairiki.
+
+ * sanei/sanei_ab306.c [HAVE_UNISTD_H]: Include <unistd.h>. Fix by
+ Geoffrey T. Dairiki.
+
+ * lib/alloca.c: Enclose in #ifndef HAVE_ALLOCA bracket. Fix by
+ Geoffrey T. Dairiki.
+
+ * include/lalloca.h: Declare alloca() as returning void* when
+ __STDC__ is in effect so declaration matches definition in
+ lib/alloca.c. Reported by Geoffrey T. Dairiki.
+
+ * frontend/preview.c (update_selection): Set coord[] values to
+ rounded-to-nearest-int of float values. This avoids the jumping
+ selection box effect. Fix by Geoffrey T. Dairiki.
+
+ * frontend/gtkglue.c (scale_update): Patch by Geoffrey T. Dairiki
+ <dairiki@apl.washington.edu>: emit value_changed signal if the
+ backend changed the value.
+
+ * backend/umax.c: Upgraded to Oliver's latest UMAX version.
+
+ * backend/mustek.c (sane_init): Ignore white space in front of an
+ option/device-name.
+
+1997-11-12 David Mosberger-Tang <David.Mosberger@acm.org>
+
+ * sanei/sanei_ab306.c (sanei_ab306_get_io_privilege):
+ (struct port): Remove member HAVE_IO_PRIVS.
+ (sanei_ab306_get_io_privilege): Get ioperm()issions independent of
+ HAVE_IO_PRIVS.
+
+ * backend/mustek.c (do_stop): Always send STOP command before
+ closing the device.
+ (dev_read_req_enter): For parallel-port scanner, set *idp to 0.
+
+1997-11-10 David Mosberger-Tang <David.Mosberger@acm.org>
+
+ Bug reported by Matto Marjanovic <maddog@mir.com>:
+
+ * frontend/gtkglue.c (panel_build): Create button only after we
+ know the option's value.
+ (button_new): Add VAL argument and initialize button state to
+
+ correct value before connecting the toggled callback.
+
+ Bugs reported by Petter Reinholdtsen <pere@link.no>:
+
+ * sanei/sanei_config.c (sanei_config_open): Add missing cast to
+ (char *).
+
+ * sanei/sanei_scsi.c (sanei_scsi_cmd) [USE == IRIX_INTERFACE]: Fix
+ (u_char) cast to (u_char *).
+
+1997-11-06 David Mosberger-Tang <David.Mosberger@acm.org>
+
+ * backend/qcam.c (init_options): Set the type of OPT_NUM_OPTS to
+ SANE_TYPE_INT (suggested by Guido Muesch
+ <odiug@faho.rwth-aachen.de>).
+ * backend/mustek.c (init_options): Ditto.
+
+1997-11-04 David Mosberger-Tang <David.Mosberger@acm.org>
+
+ * frontend/xcam.c (xcam_exit): Protect against recursive
+ invocation.
+ (main): Turn on preferences.advanced as no graphical geometry
+ selection exists right now.
+ Include <preferences.h>.
+ preferences: New variable.
+ (pref_toggle_advanced): New function.
+ (pref_toggle_tooltips): Ditto.
+ (build_preferences_menu): Add button to control advanced & tooltips
+ preferences.
+
+ * doc/sane.tex (subsection{sanecontrol_option}): Make it illegal
+ for SANE_INFO_RELOAD_OPTIONS to be set needlessly.
+
+ * backend/hp.c (sane_control_option): Only turn on RELOAD_PARAMS
+ when value changed.
+
+ * backend/qcam.c (sane_control_option): Only turn on
+ RELOAD_PARAMS when value changed.
+
+ * backend/mustek.c (sane_control_option): Only turn on
+ RELOAD_OPTIONS and/or RELOAD_PARAMS when value changes.
+
+ * Integrate b&w quickcam fixes by Guido Muesch
+ <odiug@faho.rwth-aachen.de>:
+
+ * backend/qcam.c (bw_x_range, odd_bw_x_range, bw_y_range,
+ odd_bw_y_range): New constants.
+ (sane_open): Disable despeckle, black-level, hue, saturation,
+ resolution & test options for b&w camera (either not useful or not
+ supported at this point).
+ (sane_start): Use QC_MONO_SET_CONTRAST instead of
+ QC_BW_SET_CONTRAST.
+ (sane_start): Call qc_reset() for b&w camera to avoid hangs (color
+ camera doesn't need this and is faster that way).
+ (sane_start): Multiply undecimated_width by s->val[OPT_DEPTH].w,
+ not 4.
+
+ * backend/qcam.h: Remove obsolete QC_BW_SET_CONTRAST,
+ QC_BW_AUTO_ADJUST_OFFSET, QC_BW_GET_OFFSET, and QC_SET_CONTRAST
+ macros.
+
+1997-11-02 David Mosberger-Tang <David.Mosberger@acm.org>
+
+ * doc/sane-hp.man (Model): Mention ScanJet IIcx. Johannes Geiger
+ <J_Geiger@fleury.de> reported it to work fine under OS/2 with
+ sane-0.66
+
+ * backend/umax.c: Apply patch by Oliver Rauch that avoid
+ umax hangs.
+
+1997-11-01 David Mosberger-Tang <David.Mosberger@acm.org>
+
+ * Version 0.67 released.
+
+ * sanei/sanei_ab306.c: New file.
+
+ * backend/mustek.h (MUSTEK_FLAG_PP): New macro.
+ (struct Mustek_Scanner): Add members ld.index and ld.lmod3
+ for parallel-port scanner line-distance correction.
+
+ * backend/mustek.c (color_seq): Move to global level from
+ fix_line_distance_normal().
+ (fix_line_distance_pp): New function.
+ (scsi_wait_ready): Renamed from wait_ready().
+ (pp_wait_ready): New function.
+ (dev_wait_ready): Ditto.
+ (dev_open): Ditto.
+ (dev_cmd): Ditto.
+ (dev_req_wait): Ditto.
+ (dev_read_start): Ditto.
+ (dev_read_req_enter): Ditto.
+ (dev_close): Ditto.
+ (attach): Modify to use dev_open(). Set minimum scan resolution
+ to 51 dpi for parallel-port scanners.
+ (scan_area_and_windows): Call dev_cmd() instead of
+ sanei_scsi_cmd().
+ (mode_select): Ditto.
+ (gamma_correction): Ditto.
+ (start_scan): Ditto.
+ (stop_scan): Ditto.
+ (line_distance): Ditto.
+ (get_image_status): Ditto.
+ (backtrack_and_adf): Ditto.
+ (gamma_correction): Return immediately if custom-gamma is turned
+ off or if not doing a multibit scan. Add support for sending all
+ three gamma tables with a single command.
+ (line_distance): Initialize additional line-distance correction
+ state needed by parallel-port scanner.
+ (read_req_enter): Remove.
+ (send_data): Modify to support parallel-port scanner line-distance
+ correction.
+ (reader_process): Require I/O-privilege if dealing with parallel
+ port scanner and call dev_read_start(). Use dev_read_req_enter()
+ instead of read_req_enter(), dev_req_wait() instead of
+ sanei_scsi_req_wait().
+ (sane_start): For parallel-port scanner, send gamma table with
+ a single gamma_correction() call.
+
+ * doc/sane-mustek.man: Update with info regarding parallel port
+ scanner.
+
+ * backend/dll.c (add_backend): When a backend is present already,
+ move it to the head of the backend list, so pre-loaded backends
+ appear in the same order as if they had been loaded dynamically
+
+ * backend/mustek.c (pp_mode_list): New constant.
+
+ * backend/mustek.c (init_options): Use pp_mode_list for parallel
+ port type scanners (no color lineart/halftone modes).
+
+ * sanei/sanei_codec_ascii.c (ascii_w_string): free(*s) only if *s
+ is non-NULL (reported by Geoffrey T. Dairiki
+ <dairiki@apl.washington.edu>).
+
+ * backend/mustek.c (attach): Turn on MUSTEK_FLAG_LD_NONE for
+ MFS-12000SP with firmware 1.02 or newer. Reported by Henning
+ Busacker <henning.busacker@Duesseldorf.netsurf.de>.
+
+1997-10-25 David Mosberger-Tang <David.Mosberger@acm.org>
+
+ * doc/sane.tex (chapter{Contact Information}): Update mailing list
+ and home page address.
+
+ * backend/dll.c: Include <sane/sanei_config.h>. Call
+ sanei_config_open() instead of fopen().
+ * backend/hp.c: Ditto.
+ * backend/mustek.c: Ditto.
+ * backend/net.c: Ditto.
+ * backend/pint.c: Ditto.
+ * backend/qcam.c: Ditto.
+ * backend/umax.c: Ditto.
+
+ * backend/Makefile.in (EXTRA): Mention ../sanei/sanei_config.lo.
+
+ * doc/sane-dll.man: Document SANE_CONFIG_DIR.
+ * doc/sane-hp.man: Ditto.
+ * doc/sane-mustek.man: Ditto.
+ * doc/sane-net.man: Ditto.
+ * doc/sane-pint.man: Ditto.
+ * doc/sane-qcam.man: Ditto.
+ * doc/sane-scsi.man: Ditto.
+ * doc/sane-umax.man: Ditto.
+ * doc/saned.man: Ditto.
+
+ * backend/microtek.c: Updated with v0.3 from Matt.
+ Include <sane/sanei_config.h>
+ (MICROTEK_CONFIG_FILE): Define as "microtek.conf".
+ (PATH_MICROTEK_CONFIG): Delete.
+ (sane_init): Replace fopen() with sanei_config_open().
+
+ * backend/microtek.h: Ditto.
+
+1997-10-24 David Mosberger-Tang <David.Mosberger@acm.org>
+
+ * sanei/sanei_config.c (sanei_config_open): Add multiple-directory
+ support for SANE_CONFIG_DIR.
+
+ * sanei/sanei_config.c: New file by Jeff Freedman.
+ * include/sane/sanei_config.h: Ditto.
+
+1997-10-23 David Mosberger-Tang <David.Mosberger@acm.org>
+
+ * Fixes for OS/2 by Jeff Freedman:
+ * frontend/Makefile.in (SBINPROGS): Set to @SANED@.
+ * configure.os2 (LN_S): Add --sysconfdir=.
+ * configure.in: Set up SANED depending on <sys/socket.h>.
+ * backend/Makefile.in (EXTRA): Mention usleep.lo and strndup.lo.
+ * backend/pnm.c (rgblength, rgbbuf, rgbleftover): Declare as
+ static.
+ * ltconfig: Upgrade to 1.0d.
+ * ltmain.sh: Ditto.
+ * sanei/sanei_constrain_value.c: Include <sane/config.h>.
+
+1997-10-22 David Mosberger-Tang <David.Mosberger@acm.org>
+
+ * frontend/gtkglue.h (struct GSGDialog): Remove idle_id member.
+
+ * frontend/gtkglue.c (idle_handler): Remove. GTK's reference
+ counting appears to have been fixed (?).
+
+ * backend/umax_scanner.h: Update with Oliver's latest version.
+ * backend/umax-scsi.c: Ditto.
+ * backend/umax-scsidef.h: Ditto.
+ * backend/umax-struct.h: Ditto.
+ * backend/umax.c: Ditto.
+ * backend/umax.h: Ditto.
+
+1997-10-18 David Mosberger-Tang <David.Mosberger@acm.org>
+
+ * sanei/sanei_scsi.c (sanei_scsi_req_enter): Set cdb.hdr.pack_id
+ to unique id number.
+
+1997-10-17 David Mosberger-Tang <David.Mosberger@acm.org>
+
+ * japi/Makefile.in: New file (by Jeff Freedman <jsf@hevanet.com>).
+ * japi/README.JAVA: Ditto.
+ * japi/Sane.c: Ditto.
+ * japi/Sane.java: Ditto.
+ * japi/SaneDevice.java: Ditto.
+ * japi/SaneOption.java: Ditto.
+ * japi/SaneParameters.java: Ditto.
+ * japi/SaneRange.java: Ditto.
+ * japi/Test.java: Ditto.
+
+ * configure.in (AC_OUTPUT): Mention japi/Makefile.
+
+ * sanei/sanei_scsi.c (sanei_scsi_cmd) [USE == IRIX_INTERFACE]:
+ Add data buffer alignment fix by Michael Sweet.
+
+1997-10-24 Jeff Freedman <jsf@hevanet.com>
+
+ * sanei_open_config() added. Backends call it to open .conf files.
+
+1997-10-14 David Mosberger-Tang <David.Mosberger@acm.org>
+
+ * Version 0.66 released.
+
+ * README: Update with new URLs and latest GIMP/GTK info.
+
+1997-10-11 David Mosberger-Tang <David.Mosberger@acm.org>
+
+ * include/sane/saneopts.h: Add #defines for TEN_BIT_MODE, WARMUP,
+ RGB_PREVIEW_PATCH, and START_SCAN_PATCH.
+
+ * README: Remove umax-specific configure options (they're now
+ runtime options).
+ * configure.in (CPPFLAGS): Ditto.
+ * include/sane/config.h.in: Ditto.
+
+ * backend/epson.c: Updated
+
+1997-10-09 David Mosberger-Tang <David.Mosberger@acm.org>
+
+ * backend/umax.c (sane_exit): Remove bogus call to free()
+ (reported by Peter).
+
+Thu Oct 9 20:20:32 1997 Kazuhiro Sasayama <kaz@hypercore.co.jp>
+
+ * epson.c (sane_start): Fix lcount computation.
+
+Thu Oct 9 11:44:03 1997 Kazuhiro Sasayama <kaz@hypercore.co.jp>
+ * epson.c (sane_start): Use byte-interleaved mode if available.
+ (sane_start): Set line counter for byte-interleaved mode.
+ (sane_read): Handle byte-interleaved mode.
+ (sane_init) [PACKAGE && VERSION]: Debug out PACKAGE and VERSION.
+
+Tue Oct 7 18:44:36 1997 Kazuhiro Sasayama <kaz@hypercore.co.jp>
+
+ * epson.c (set_lcount): New function.
+ (sane_start): Use block mode for monochrome if available.
+ (sane_read): Handle block mode.
+
+ * epson.h (struct Epson_Scanner): Add block.
+
+Tue Oct 7 15:48:11 1997 Kazuhiro Sasayama <kaz@hypercore.co.jp>
+
+ * epson.c (set_speed): New function.
+ (sane_start): Use set_speed.
+
+Tue Oct 7 15:44:33 1997 Kazuhiro Sasayama <kaz@hypercore.co.jp>
+
+ * README: Add info about a mailing list.
+
+ * Makefile.am (libsane_epsonx_la_LDFLAGS): Increment the revision.
+
+ * epson.c (identify): Debug output the command level.
+
+1997-10-08 David Mosberger-Tang <David.Mosberger@acm.org>
+
+ * backend/mustek.conf: Turn on linedistance-fix and lineart-fix by
+ default.
+
+ * include/sane/config.h.in: Remove
+ NEED_MUSTEK_LINE_DISTANCE_WORKAROUND.
+
+ * doc/sane-mustek.man (CONFIGURATION): Document option
+ linedistance-fix and lineart-fix.
+
+ * configure.in: Remove test for --enable-ld-fix.
+
+ * backend/mustek.h (MUSTEK_FLAG_LD_FIX): New flag.
+ (MUSTEK_FLAG_LINEART_FIX): Ditto.
+
+ * backend/mustek.c (line_distance): Replace
+ NEED_MUSTEK_LINE_DISTANCE_WORKAROUND with runtime test for same.
+ (reader_process): If MUSTEK_FLAG_LINEART_FIX is on, delay 200ms
+ when scanning in lineart mode.
+ (sane_init): New variable. Add linedistance-fix and lineart-fix
+ support.
+
+ * backend/Makefile.in (install): Fix install rule so all symlinks
+ necessary for libsane.so are installed.
+
+ * backend/dll.c (load): Change from LIBNAME to LIBPATH (as per
+ libtool-1.0c documention).
+
+ * sanei/sanei_scsi.c (issue): Declare `static'.
+
+ * aclocal.m4: Update with contents of libtool.m4.
+
+ * configure.in (AC_PROG_RANLIB): Remove (once again!).
+
+ * config.guess: Update from libtool-1.0c.
+ * config.sub: Ditto.
+ * ltconfig: Ditto.
+ * ltmain.sh: Ditto.
+
+ * backend/epson.c: Update with Kazuhiro's latest epson version
+ (1.1.6).
+
+1997-10-07 David Mosberger-Tang <David.Mosberger@acm.org>
+
+ * frontend/gtkglue.c (panel_destroy): Clear elem->menu after
+ freeing it (reported by Kazuhiro Sasayama <kaz@hypercore.co.jp>).
+
+1997-10-06 David Mosberger-Tang <David.Mosberger@acm.org>
+
+ * backend/epson.c: Updated with Kazuhiro Sasayama
+ <kaz@hypercore.co.jp> latest version (1.1.5).
+
+1997-10-04 David Mosberger-Tang <David.Mosberger@acm.org>
+
+ * Version 0.65 released.
+
+ * sanei/sanei_scsi.c (close_aspi): Rename from sanei_close_aspi (static
+ functions don't need ugly sanei_ prefix...).
+ (open_aspi): Ditto.
+
+ * configure.os2: New file (from Jeff's config.os2).
+
+ * backend/umax-scsi.c: Mmove include of <scsi/scsi.h> and
+ <scsi/sg.h> into !def UMAX_TO_SANE bracket.
+
+ * backend/pnm.c (getparmfromfile): Open with mode "rb" to get
+ binary file on platforms where this is meaningful.
+
+1997-10-02 David Mosberger-Tang <David.Mosberger@acm.org>
+
+ * doc/sane-epson.man: Mention that backend is known to work with
+ GT-5000.
+
+1997-10-01 David Mosberger-Tang <David.Mosberger@acm.org>
+
+ * doc/sane-epson.man: New file (based on Kzuhiro's README file).
+
+ * backend/Makefile.in (PRELOADABLE_BACKENDS): Mention epson.
+ (libsane-epson.la): Add dependencies for Epson backend.
+
+ * backend/epson.c: New file by Kazuhiro Sasayama
+ <kaz@hypercore.co.jp>.
+ * backend/epson.h: Ditto.
+
+ * backend/microtek.c: Updated with latest version from
+ http://www.mir.com/mtek/ by Matt Marjanovic <maddog@mir.com>.
+ * backend/microtek.h: Ditto.
+
+1997-10-3 Jeff Freedman <jsf@hevanet.com>
+
+ * sanei/sanei_scsi.c: Minor fixes for OS/2 support.
+
+ * configure.in: Check for presence of sys/socket.h to set @NET@.
+
+ * backend/Makefile.in: net -> @NET@
+
+1997-09-30 David Mosberger-Tang <David.Mosberger@acm.org>
+
+ * sanei/sanei_scsi.c: Integrate OS/2 support by Jeff Freedman:
+ (OS2_INTERFACE) Define.
+ (open_aspi,close_aspi): New OS/2-specific functions.
+ (sanei_scsi_open): Add OS/2 support.
+ [USE = OS2_INTERFACE]: OS/2 version of sanei_scsi_cmd().
+ (sanei_scsi_cmd, sanei_scsi_req_wait) [STUBBED_INTERFACE]:
+ Return proper value.
+
+ * include/sane/config.h.in (HAVE_STRNCASECMP, HAVE_OS2_H): Add
+ #undef. If !HAVE_STRNCASECMP, define strncasecmp macro as
+ alias for strnicmp.
+
+ * configure.in (AC_CHECK_FUNCS): Check for strncasecmp().
+ (AC_CHECK_HEADERS): Check for os2.h.
+
+1997-09-30 David Mosberger-Tang <David.Mosberger@acm.org>
+
+ * sanei/sanei_scsi.c: Integrate OS/2 support by Jeff Freedman:
+ (OS2_INTERFACE) Define.
+ (open_aspi,close_aspi): New OS/2-specific functions.
+ (sanei_scsi_open): Add OS/2 support.
+ [USE = OS2_INTERFACE]: OS/2 version of sanei_scsi_cmd().
+ (sanei_scsi_cmd, sanei_scsi_req_wait) [STUBBED_INTERFACE]:
+ Return proper value.
+
+ * include/sane/config.h.in (HAVE_STRNCASECMP, HAVE_OS2_H): Add
+ #undef. If !HAVE_STRNCASECMP, define strncasecmp macro as
+ alias for strnicmp.
+
+ * configure.in (AC_CHECK_FUNCS): Check for strncasecmp().
+ (AC_CHECK_HEADERS): Check for os2.h.
+
+1997-09-24 David Mosberger-Tang <davidm@azstarnet.com>
+
+ * Version 0.64 released.
+
+ * PROJECTS (Backend): Update microtek entry.
+ Add entry for sgivl.
+
+ * backend/microtek.conf: New file.
+
+ * backend/dll.conf: Mention microtek.
+
+ * backend/Makefile.in (PRELOADABLE_BACKENDS): Mention microtek.
+ (libsane-microtek.la): Mention microtek dependencies.
+
+ * backend/microtek.c: New file by Matthew Marjanovic.
+ * backend/microtek.h: Ditto.
+
+1997-09-23 David Mosberger-Tang <davidm@azstarnet.com>
+
+ * sanei/sanei_scsi.c (sanei_scsi_cmd): Integrate Michael Sweet's
+ latest Irix implementation of sanei_scsi_cmd().
+
+Sat Sep 6 08:59:24 1997 David Mosberger-Tang <David.Mosberger@acm.org>
+
+ * Version 0.63 released.
+
+ * configure.in (V_MINOR): Bump up to 63.
+
+ * configure.in (AM_PROG_RANLIB): Go back to AC_PROG_RANLIB. The
+ former causes a bad configure script.
+
+Fri Aug 29 16:08:05 1997 David Mosberger-Tang <David.Mosberger@acm.org>
+
+ * doc/sane-umax.man: Change status of "Astra 1200S" to "all modes ok"
+ as Oliver tells me that this has been tested and is working now.
+
+Wed Aug 20 17:23:04 1997 David Mosberger-Tang <David.Mosberger@acm.org>
+
+ * sane-0.63.lsm: Update email addresses etc.
+
+ Integrate Oliver Rauch's UMAX improvements:
+
+ * README: Document --enable-umax-preview-fix,
+ --enable-umax-start-scan-fix.
+
+ * configure.in (UMAX_RGB_PREVIEW, UMAX_START_SCAN_PATCH): Define if
+ necessary.
+
+ * include/sane/config.h.in (UMAX_RGB_PREVIEW, UMAX_START_SCAN_PATCH):
+ Add #undef.
+
+ * include/sane/saneopts.h: Add manifest constants for options
+ resolution-bind, negative, quality-cal, threshold, analog-gamma,
+ analog-gamma-r, analog-gamma-g, analog-gamma-b, analog-gamma-bind,
+ smear, white-bind, black-bind.
+
+ * AUTHORS (Frontends): Update email addresses of Oliver Rauch and
+ myself.
+
+1997-08-07 David Mosberger-Tang <davidm@azstarnet.com>
+
+ * backend/mustek.c (attach): Print Mustek scanner info at
+ debug level 2, not 3.
+
+1997-08-06 David Mosberger-Tang <davidm@azstarnet.com>
+
+ * frontend/preview.c (XSERVER_WITH_BUGGY_VISUALS): Make conditional
+ on #ifdef __alpha__ (Michael Sweet reports that the old code broke
+ SGI IRIX 6.3).
+
+1998-08-01 David Mosberger-Tang <davidm@azstarnet.com>
+
+ * include/sane/config.h.in (HAVE_SYS_SCSICMD_H, HAVE_SYS_DSREQ_H):
+ Undefine.
+
+ * configure.in (AC_CHECK_HEADERS): Mention sys/scsicmd.h and
+ sys/dsreq.h.
+
+ * sanei/sanei_scsi.c (SCO_OS55_INTERFACE, IRIX_INTERFACE,
+ SOLARIS_INTERFACE): Define.
+
+1997-07-27 David Mosberger-Tang <davidm@azstarnet.com>
+
+ * frontend/xscanimage.c (quit_xscan) [HAVE_LIBGIMP_GIMP_H]: When
+ running as a GIMP extension, call gimp_quit().
+ (init) [HAVE_LIBGIMP_GIMP_H]: Set GDK's xshm flag based on GIMP's
+ flag.
+
+ * doc/sane-mustek.man (SCSI ADAPTER TIPS): Try to make complete
+ sentences.
+
+1997-07-25 David Mosberger-Tang <davidm@azstarnet.com>
+
+ * Version 0.62 released.
+
+ * configure.in (CPPFLAGS): Test for gtk_gamma_curve_new() to
+ see whether appropriate version of gtk is installed.
+
+ * backend/mustek.c (sane_init): Add parsing support for option
+ `strip-height'.
+ (strip_height): New variable to limit scan strip height.
+ (reader_process): If strip_height is greater than 0.0, limit
+ lines_per_buffer so that no more than strip_height inches are
+ scanned with a single SCSI read command.
+
+ * doc/sane-mustek.man (CONFIGURATION): Describe strip-height
+ option.
+
+1997-07-23 David Mosberger-Tang <davidm@azstarnet.com>
+
+ * doc/sane-hp.man (Model): Added ScanJet 3c info.
+
+1997-07-22 David Mosberger-Tang <davidm@azstarnet.com>
+
+ * frontend/scanimage.README: Remove file.
+
+ * doc/sane-scsi.man: Add info on generic AM53C974 driver.
+
+1997-07-19 David Mosberger-Tang <davidm@azstarnet.com>
+
+ * sanei/sanei_scsi.c [USE == LINUX_INTERFACE]: Include
+ <sys/time.h>.
+
+1997-07-18 David Mosberger-Tang <davidm@azstarnet.com>
+
+ * sanei/sanei_scsi.c (sanei_scsi_req_flush_all)
+ [WE_HAVE_ASYNC_SCSI]: Implement stub.
+
+ * scripts/xerox: New file (simple xeroxing script).
+
+ * frontend/scanimage.c (main): When opening a device fails, also
+ print reason for failure.
+
+ * frontend/preview.c (preview_new): Register expose_event handler.
+ (preview_destroy): Call scan_done() if called when preview
+ scanning in progress.
+
+ * backend/mustek.c (attach): Add argument MAY_WAIT. If it's TRUE,
+ wait for scanner to become ready before sending inquiry command.
+ (do_cancel): Rename to do_stop. Ignore child's exist status
+ when we're really cancelling a scan. Issue stop_scan() command
+ only if the scan got cancelled and do a wait_ready() before
+ issueing the stop_scan().
+ (read_data): Delete.
+ (sane_init): Call attach() with MAY_WAIT set to SANE_FALSE.
+ (sane_open): Call attach() with MAY_WAIT set to SANE_TRUE.
+
+ * frontend/preview.c (display_partial_image): Use gtk_preview_put()
+ to update the preview window. Much faster than hiding/showing the
+ widget.
+ (expose_handler): New function.
+
+ * frontend/progress.c (progress_new): Make "Cancel" button a
+ toggle-button so user can see when it was pressed down while
+ the backend cancels its operation.
+
+ * backend/mustek.c (do_cancel): Call wait_ready() before
+ attempting to stop scanner.
+ (read_req_enter): New function.
+ (send_data): Ditto.
+ (sigterm_handler): New function.
+ (reader_process): Reimplement using asynchronous SCSI command
+ interface.
+ (wait_ready): Use gettimeofday() to implement timeout. The
+ scsi command itself may take a considerable amount of time
+ (1 second or more) so we can't just loop for a fixed number
+ of times.
+
+ * include/sane/sanei_scsi.h: Declre sanei_scsi_req_enter,
+ sanei_scsi_req_wait, and sanei_scsi_req_flush_all.
+
+ * sanei/sanei_scsi.c [WE_HAVE_ASYNC_SCSI]: Define.
+ (issue): New function.
+ (sanei_scsi_req_flush_all): New function.
+ (sanei_scsi_req_enter): Ditto.
+ (sanei_scsi_req_wait): Ditto.
+ (sanei_scsi_cmd): Reimplement in terms of enter/wait.
+ (sanei_scsi_req_enter) [!WE_HAVE_ASYNC_SCSI]: Stub that
+ simply calls sanei_scsi_cmd().
+ (sanei_scsi_req_wait): Empty stub.
+
+1997-07-16 David Mosberger-Tang <davidm@azstarnet.com>
+
+ * doc/sane-scsi.man: Add Tekram DC390 info (contributed by
+ kawk@Home.Yo.COM (Kolja Waschk))
+
+1997-07-15 David Mosberger-Tang <davidm@azstarnet.com>
+
+ * sanei/sanei_scsi.c (sanei_scsi_cmd) [USE==LINUX_INTERFACE]:
+ Return SANE_STATUS_NO_MEM if write() of SCSI command fails.
+
+ * backend/mustek.c (do_cancel): If reader_process exited, use
+ exit status as return value.
+ (reader_process): Return SANE_STATUS_IO_ERROR instead of 1.
+ Return SANE_STATUS_NO_MEM instead of 2. Return STATUS instead
+ of 3. Return SANE_STATUS_GOOD instead of 0.
+ (sane_read): If do_cancel() returns anything but
+ SANE_STATUS_CANCELLED or SANE_STATUS_GOOD, something bad has
+ happened and the return status should be returned.
+
+ * doc/sane-scsi.man: Fix typo: sg.h is in /usr/include/scsi, not
+ /usr/include.
+
+ * PROBLEMS: Add warning about updating Linux kernel after increasing
+ SG_BIG_BUFF.
+
+1997-07-14 David Mosberger-Tang <davidm@azstarnet.com>
+
+ * frontend/xscanimage.c (quit_xscan): Destroy preview window before
+ quitting, so preview image gets saved if necessary.
+
+ * frontend/Makefile.in (LIBX11): New macro.
+ (LIBGTK): Ditto.
+ (xscanimage): Use $(LIBGTK) instead of $(LIBS).
+ (xcam): Use $(LIBGTK) instead of $(LIBS).
+
+ * configure.in (LIBX11): Define as all libraries necessary when
+ using X11.
+ (LIBGTK): Define as all libraries necessary when using GTK+.
+
+ * backend/mustek.c (sane_start): Don't send gamma in lineart and
+ halftone mode!
+
+ * doc/sane-scsi.man: Add info on how to setup BT958 card (contributed
+ by Jeremy <jeremy@xxedgexx.com>).
+
+1997-07-13 David Mosberger-Tang <davidm@azstarnet.com>
+
+ * doc/sane-scsi.man: Add info on FreeBSD.
+
+1997-07-12 David Mosberger-Tang <davidm@azstarnet.com>
+
+ * ltmain.sh: Installed libtool-1.0-nomode patch.
+
+ * configure.in (AC_PROG_RANLIB): Change to AM_PROG_RANLIB.
+
+1997-07-11 David Mosberger-Tang <davidm@azstarnet.com>
+
+ * ltmain.sh: Upgrade to libtool-1.0.
+ * ltconfig: Ditto.
+ * config.guess: Ditto.
+ * config.sub: Ditto.
+ * aclocal.m4: Ditto.
+
+1997-07-08 David Mosberger-Tang <davidm@azstarnet.com>
+
+ * Version 0.61 released.
+
+ * backend/Makefile.in (LIBLIB_FUNCS): Mention snprintf.
+
+ * backend/umax-struct.h (LINEART, HALFTONE, GREYSCALE, RGB): Move
+ the pound sign to the beginning of the line.
+ * backend/umax-scsidef.h: Ditto for all indendent #defines in this
+ file.
+ * backend/umax-scsi.c: Ditto for all # directives in here.
+
+ * frontend/saned.c [HAVE_LIBC_H]: Include <libc.h>.
+
+1997-07-07 David Mosberger-Tang <davidm@azstarnet.com>
+
+ * backend/net.c [HAVE_LIBC_H]: Include <libc.h>.
+
+ * lib/usleep.c: New file (adapted from glibc).
+
+ * lib/strndup.c: Move #ifndef HAVE_STRNDUP up so nothing
+ except <config.h> gets included unless really needed.
+ Include <sys/types.h> to get size_t defined.
+
+ * lib/snprintf.c (vsnprintf): Rename from vplp_snprintf.
+ (snprintf): Rename from plp_snprintf.
+
+ * include/sane/config.h.in: Add #undef HAVE_USLEEP. Add #undef
+ HAVE_IO_CAM_CAM_H.
+
+ * configure.in: Test ${ac_cv_prog_gcc} instead of $CC to find out
+ whether we're dealing with gcc. Test for io/cam/cam.h header.
+ (AC_C_INLINE): Add.
+ (AC_CHECK_FUNCS): Mention usleep.
+ Check for Xext after checking for X11 since on some platforms,
+ linking against Xext requires functions from X11.
+
+ * backend/umax.c (PATH_MAX): Define as 1024 if undefined.
+
+ * backend/Makefile.in (CONFIGS): Don't add $(srcdir) prefix.
+ (LIBLIB_FUNCS): Mention usleep.
+ (install): Invoke $(LIBTOOL) $(MINST) --finish $(libdir) in
+ a final step. Correct installation rule for config files.
+
+1997-07-06 David Mosberger-Tang <davidm@azstarnet.com>
+
+ * sanei/sanei_scsi.c (sanei_scsi_cmd): New variable RESULT.
+
+1997-07-05 David Mosberger-Tang <davidm@azstarnet.com>
+
+ * sanei/sanei_scsi.c (sanei_scsi_cmd): Improve BSD version based
+ on patch by Amancio Hasty <hasty@rah.star-gate.com>.
+ (BSD_INTERFACE): Rename from NETBSD_INTERFACE (FreeBSD uses the
+ same interface).
+
+ * configure.in (CPPFLAGS): Check for scsireq_enter in libscsi.a.
+
+ * doc/Makefile.in (SECT5): Mention sane-scsi.5.
+ * doc/sane-scsi.man: New file.
+
+ * doc/sane-umax.man: Add SEE ALSO section mentioning sane-scsi(5).
+ * doc/sane-mustek.man: Ditto.
+
+ * doc/scanimage.man: Mention sane-umax(5).
+ * doc/xscanimage.man: Ditto.
+ * doc/saned.man: Ditto.
+
+ * configure.in (AC_TYPE_PID_T): Add.
+ * include/sane/config.h.in: Add undef of pid_t.
+
+1997-07-04 David Mosberger-Tang <davidm@azstarnet.com>
+
+ * lib/sigprocmask.c (sigprocmask): Use hardcoded values instead
+ of SIG_BLOCK, SIG_UNBLOCK, and SIG_SETPROCMASK.
+
+1997-07-03 David Mosberger-Tang <davidm@azstarnet.com>
+
+ * configure.in (CPPFLAGS): Remove -D_POSIX_SOURCE. We can't define
+ it safely since it causes select() related typedefs and defines
+ to go away under FreeBSD, for example.
+
+1997-07-02 David Mosberger-Tang <davidm@azstarnet.com>
+
+ * configure.in (CPPFLAGS): Put -D_GNU_SOURCE and -D_POSIX_SOURCE
+ in CPPFLAGS, not CFLAGS.
+
+ * doc/sane-umax.man: Change SG_BIG_BUFF example from 128KB to
+ 127.5KB.
+ * doc/sane-mustek.man: Ditto. Mention DTC3181E together with
+ DTCT436.
+
+ * frontend/gtkglue.c (gsg_create_dialog): Initialize dialog->advanced
+ to TRUE so "dumb" frontends will show all options.
+
+ * frontend/xscanimage.c (device_dialog): Turn off advanced options
+ by default.
+
+ * configure.in (AC_CHECK_TYPE): Check for u_long and u_int.
+ Check for scsireq_t.
+ * sanei/sanei_scsi.c: Don't define scsireq_t here.
+
+ * include/sane/config.h.in: Add undef of u_long, u_int, and
+ scsireq_t.
+
+1997-07-01 David Mosberger-Tang <davidm@azstarnet.com>
+
+ * frontend/xscanimage.c (quit_xscan): No longer call
+ preview_destroy() since that now gets called as part of
+ the "destroy" callback.
+
+ * backend/hp.c (attach) [PREFER_DEVICEPIXEL]: Use device-pixel
+ unit commands instead of decipoint commands so things work on a 5p
+ as well (contributed by NOGAYA Shigeki
+ <nogaya@mbox.kyoto-inet.or.jp>).
+ (sane_start) [PREFER_DEVICEPIXEL]: Convert from mm to pixels.
+
+ * frontend/preview.c (input_available): Break out of per-bit loop
+ when done with one line (fix contributed by NOGAYA Shigeki
+ <nogaya@mbox.kyoto-inet.or.jp>).
+ * frontend/xscanimage.c (input_available): Ditto.
+
+ * doc/sane-umax.man: Rename SCSI id to Product id to reduce
+ confusion.
+ * doc/sane-hp.man: Ditto.
+ * doc/sane-mustek.man: Ditto.
+
+ * backend/mustek.c (wait_ready): Ignore errors during wait_ready().
+ With 3-pass scanners, ncr810 driver returns EIO while the scanner
+ is getting ready for pass 2 or 3.
+
+1997-06-30 David Mosberger-Tang <davidm@azstarnet.com>
+
+ * backend/mustek.c (sense_handler): Print debug info if we
+ find unknown sense result.
+
+ * sanei/sanei_scsi.c (sanei_scsi_cmd): Consider sense_buffer[]
+ only when result != 0.
+
+ * frontend/scanimage.c (sighandler): Change return value type
+ from void to RETSIGTYPE (from <sane/config.h>).
+
+ * doc/sane-mustek.man: Mention problems with MSFS-12000SP.
+
+ * backend/umax.c (sane_start): Don't use C++ style line comments.
+
+ * backend/umax-scsi.c (umax_do_scsi_cmd): Use sigemptyset() to clear
+ out signal set. Include <sane/config.h>.
+
+ * frontend/saned.c [HAVE_SYS_SELECT_H]: Include <sys/select.h>.
+ * include/sane/config.h.in: Mention HAVE_SYS_SELECT_H.
+
+Thu Jun 26 10:19:50 1997 David Mosberger-Tang <davidm@azstarnet.com>
+
+ * README: Mention permissions on generic SCSI device.
+
+Tue Jun 24 17:35:52 1997 David Mosberger-Tang <davidm@azstarnet.com>
+
+ * doc/xscanimage.man: Fix spacing.
+
+ * doc/sane-dll.man: Mention how list of pre-loaded backends
+ can be changed.
+
+Sun Jun 22 08:29:47 1997 David Mosberger-Tang <davidm@azstarnet.com>
+
+ * PROBLEMS: Add note on SCSI device names under OpenStep.
+
+ * sanei/sanei_scsi.c (sanei_scsi_cmd): Fix various minor bugs.
+ (sanei_scsi_open): Add support for OpenStep.
+
+ * backend/Makefile.in (install): Replace 'ln -f -s' with `rm -f',
+ `ln -s' sequence. OpenStep doesn't support the -f option at all.
+
+Fri Jun 20 07:30:18 1997 David Mosberger-Tang <davidm@azstarnet.com>
+
+ * doc/sane-qcam.man: Updated B&W status.
+
+ * sanei/sanei_save_values.c [HAVE_LIBC_H]: Include <libc.h>.
+ * sanei/sanei_load_values.c: Ditto.
+
+ * lib/sigprocmask.c: New file.
+ * lib/strdup.c: Ditto.
+
+ * lib/Makefile.in (LIBLIB_OBJS): Mention strdup.o and sigprocmask.o.
+ (LIBLIB_LTOBJS): Mention strdup.lo and sigprocmask.lo.
+ (liblib.a): Use $(RANLIB) instead of -ranlib.
+
+ * include/sane/sanei_backend.h [!HAVE_SIGPROCMASK]: Define
+ compatibility macros sigset_t, sigemptyset(), sigfillset(),
+ sigaddset(), sigdelset(), and sigaction().
+ Define macro SIGACTION.
+
+ * frontend/saned.c (HAVE_VARARG_MACROS): Don't define unless we
+ have at least gcc 2.6.
+ * include/sane/sanei_debug.h Ditto. Use HAVE_VARARG_MACROS
+ instead of __GNUC__.
+ * sanei/sanei_init_debug.c: Ditto.
+
+ * configure.in (AC_PROG_RANLIB): Mention.
+ (CFLAGS): Move up near the beginning and add -D_POSIX_SOURCE.
+ (AC_CHECK_HEADERS): Test for libc.h.
+ (AC_TYPE_SIGNAL): Mention.
+ (AC_CHECK_FUNCS): Check for sigprocmask.
+
+ * backend/net.c (sane_init): Honor SANE_NET_HOSTS even if
+ net.conf does not exist.
+
+ * backend/mustek.c (sane_start): Use "struct SIGACTION" so it's
+ easier to make code work on platforms that don't support
+ sigprocmask().
+ * backend/umax.c (sane_start): Ditto.
+
+ * ltmain.sh: Upgrade to libtool-0.9h.
+ * ltconfig: Ditto.
+ * config.guess: Ditto.
+ * config.sub: Ditto.
+ * aclocal.m4: Ditto.
+
+Thu Jun 19 08:26:33 1997 David Mosberger-Tang <davidm@azstarnet.com>
+
+ * configure.in (V_MINOR): Update forgotten version number...
+
+ * backend/qcam.c (reader_process): Scale 4 and 6 bpp to 8 bpp.
+
+ * backend/mustek.h (MUSTEK_FLAG_LD_NONE): New flag.
+ * backend/mustek.c (attach): Turn on MUSTEK_FLAG_LD_NONE for
+ MSF-06000SP (this fixes the problems for Andreas Gaumann
+ <gg261@appl2.hrz.uni-siegen.de>).
+ (attach): Print debug message when MUSTEK_FLAG_LD_NONE is on.
+ (line_distance): Fix up ld correction only if MUSTEK_FLAG_LD_NONE
+ is not on.
+
+Wed Jun 18 15:42:25 1997 David Mosberger-Tang <davidm@azstarnet.com>
+
+ * doc/sane.tex (section{Image Data Format}}): Clarify
+ what valid bit-depths are.
+
+Tue Jun 17 07:47:51 1997 David Mosberger-Tang <davidm@azstarnet.com>
+
+ * backend/qcam.c (sane_get_parameters): Test for != QC_COLOR
+ instead of == QC_MONO. Apparently, there are several versions
+ of the monochrome camera.
+ (qc_setscanmode): Ditto.
+
+ * lib/snprintf.c: Update with latest version (also includes
+ license information now).
+
+ * sane-0.6.lsm (Author): Update Tristan Tarrant's email address.
+ * AUTHORS: Ditto.
+ * frontend/xscanimage.c: Ditto.
+
+Sun Jun 15 10:08:44 1997 David Mosberger-Tang <davidm@azstarnet.com>
+
+ * doc/xscanimage.man: Add section on how to run xscanimage under
+ the GIMP.
+
+ * frontend/xscanimage.c (init) [HAVE_LIBGIMP_GIMP_H]: Call
+ gtk_rc_parse() with gimp_gtk_rc() to get space-saving layout of
+ The GIMP. (Suggested by Sven Neumann.)
+
+ * sanei/sanei_scsi.c (sanei_scsi_cmd): Add NeXTStep/OpenStep
+ implementation.
+ (sanei_scsi_cmd): Adjust NetBSD version to make it more like
+ NeXTStep/OpenStep version.
+
+ * configure.in (AC_CHECK_HEADERS): Mention bsd/dev/scsireg.h.
+
+Thu Jun 19 15:19:38 1997 Gordon Matzigkeit <gord@gnu.ai.mit.edu>
+
+ * backend/umax-scsi.c: Parameterize slightly more so that the
+ build succeeds on non-Linux platforms.
+
+ * Makefile.in, backend/Makefile.in, doc/Makefile.in,
+ frontend/Makefile.in (install): Fail immediately if any
+ installation fails. Use mkinstalldirs to create all installation
+ directories.
+
+Sat Jun 14 11:07:13 1997 David Mosberger-Tang <davidm@azstarnet.com>
+
+ * Version 0.6 released.
+
+ * frontend/preview.c (preview_new): Connect "destroy" signal
+ so we notice if window manager closes our window.
+ (top_destroyed): New function.
+
+ * frontend/xscanimage.c (scan_preview): Make it robust against
+ preview_new() returning NULL and connect "destroy" signal so we
+ notice when the window manager closes the preview window.
+ (preview_window_destroyed): New function.
+
+ * LICENSE: New file.
+
+ * backend/dll.c: Change license from GPL to relaxed GPL.
+ * backend/hp.c: Ditto.
+ * backend/hp.h: Ditto.
+ * backend/mustek.c: Ditto.
+ * backend/mustek.h: Ditto.
+ * backend/net.c: Ditto.
+ * backend/net.h: Ditto.
+ * backend/pint.c: Ditto.
+ * backend/pint.h: Ditto.
+ * backend/pnm.c: Ditto.
+ * backend/pnm.h: Ditto.
+ * backend/qcam.c: Ditto.
+ * backend/qcam.h: Ditto.
+ * sanei/sanei_codec_ascii.c: Ditto.
+ * sanei/sanei_codec_bin.c: Ditto.
+ * sanei/sanei_constrain_value.c: Ditto.
+ * sanei/sanei_init_debug.c: Ditto.
+ * sanei/sanei_load_values.c: Ditto.
+ * sanei/sanei_net.c: Ditto.
+ * sanei/sanei_save_valus.c: Ditto.
+ * sanei/sanei_scsi.c: Ditto.
+ * sanei/sanei_wire.c: Ditto.
+
+Fri Jun 13 18:35:47 1997 David Mosberger-Tang <davidm@azstarnet.com>
+
+ * lib/snprintf.c: New file (Patrick Powell).
+
+ * frontend/xcam.c: Use guint32 and guint32 instead of u_int16_t
+ and u_int32_t (Tristan Tarrant).
+
+ * doc/Makefile.in (SECT5): Mention sane-umax.5.
+
+ * configure.in (PACKAGE_VERSION): Check for snprintf (Tristan
+ Tarrant).
+
+ * backend/dll.conf: Mention umax.
+
+ * backend/umax-scanner.h: New file (from umax-0.5.5).
+ * backend/umax-scsi.c: Ditto.
+ * backend/umax-scsidef.h: Ditto.
+ * backend/umax-struct.h: Ditto.
+ * backend/umax-uc630.h: Ditto.
+ * backend/umax-ug630.h: Ditto.
+ * backend/umax-umax.c: Ditto.
+ * backend/umax.conf: Ditto.
+ * backend/umax.h: Ditto.
+ * doc/sane-umax.5: Ditto.
+
+ * backend/Makefile.in (PRELOADABLE_BACKENDS): Mention umax.
+ (libsane-umax.la): List dependencies for umax library.
+
+ * COPYING: New file.
+
+ * include/sane/config.h.in: Add #undef HAVE_SNPRINTF.
+
+Tue Jun 10 21:00:34 1997 David Mosberger-Tang <davidm@azstarnet.com>
+
+ * ltmain.sh: Upgrade to libtool-0.9g.
+
+Sun Jun 8 21:24:27 1997 David Mosberger-Tang <davidm@azstarnet.com>
+
+ * backend/dll.c (load): Also check SHLIB_PATH (HP-UX) and LIBPATH
+ (AIX).
+
+ * include/sane/config.h.in: Remove HAVE_GTK_GTKCURVE_H.
+
+Sat Jun 7 11:19:57 1997 David Mosberger-Tang <davidm@azstarnet.com>
+
+ * frontend/xscanimage.c (pref_device_save): Call gsg_sync() before
+ saving the values.
+
+ * backend/Makefile.in (libsane-%.la): Add -export-dynamic flag.
+
+ * frontend/xscanimage.c (query): Rename "/Extensions/" to "/Xtns/"
+ to reflect gimp-0.99.10 changes.
+ (query): Don't put in separator---it confuses gimp.
+ (main): Temporarily install a null print handler so gimp_main()
+ doesn't produce any ugly messages when program gets invoked in
+ stand-alone mode.
+
+ * ltconfig: Upgrade libtool to version 0.9f.
+ * ltmain.sh: Ditto.
+ * config.guess: Ditto.
+ * config.sub: Ditto.
+
+ * frontend/Makefile.in (install): Define MKDIR as
+ $(top_srcdir)/mkinstallldirs.
+ Use $(MKDIR) instead of mkdir.
+ * backend/Makefile.in (install): Ditto.
+ * doc/Makefile.in (install): Ditto.
+
+ * mkinstalldirs: New file (from maint-0.1g).
+
+Tue Jun 3 10:29:17 1997 David Mosberger-Tang <davidm@azstarnet.com>
+
+ * LEVEL2: New file.
+
+Sun Jun 1 13:26:40 1997 David Mosberger-Tang <davidm@azstarnet.com>
+
+ * doc/Makefile.in (LATEX, DLH): New macros.
+ (sane.ind): Prefix source filename with $(srcdir).
+ (ps): Ditto.
+ (html): Ditto.
+
+ * doc/net.tex (subsection{SANE_NET_START}): Document member
+ byte_order.
+
+ * sanei/sanei_net.c (sanei_w_start_reply): (De-)code BYTE_ORDER
+ member.
+
+ * frontend/saned.c (byte_order): New union.
+ (process_request): Initialize byte_order member.
+
+ * include/sane/sanei_net.h (SANE_Net_Byte_Order): New enum type.
+ (SANE_Start_Reply): New member BYTE_ORDER.
+
+Wed May 28 17:13:43 1997 David Mosberger-Tang <davidm@azstarnet.com>
+
+ * doc/Makefile.in (install): Create $(mandir)/man1 and
+ $(mandir)/man5 if necessary.
+
+Tue May 27 09:31:39 1997 David Mosberger-Tang <davidm@azstarnet.com>
+
+ * backend/hp.c: Remove s7_range and s1_range.
+ (attach): Add inquiry of min/max brightness/contrast and fill in
+ dev->brightness_range and dev->contrast_range accordingly.
+ (init_options): Use s->hw->brightness_range instead of s7_range.
+ Use s->hw->contrast_range instead of s7_range. Disable contrast
+ option if min value is same as max value.
+
+ * backend/hp.h (struct HP_Device): Add members BRIGHTNESS_RANGE
+ and CONTRAST_RANGE.
+
+ * sanei/sanei_scsi.c (sanei_scsi_open): Add more debug info.
+
+Mon May 26 10:43:51 1997 David Mosberger-Tang <davidm@azstarnet.com>
+
+ * sanei/Makefile.in: Add definitions for VPATH, srcdir, top_srcdir,
+ and top_builddir.
+ (INCLUDES): Move -I directives from CPPFLAGS to this macro. Also
+ search in $(srcdir), $(top_builddir)/include, and
+ $(top_srcdir)/include.
+
+ * lib/Makefile.in: Add definitions for VPATH, srcdir, top_srcdir,
+ and top_builddir.
+ (INCLUDES): Move -I directives from CPPFLAGS to this macro. Also
+ search in $(srcdir), $(top_builddir)/include, and
+ $(top_srcdir)/include.
+
+ * include/Makefile.in: New file.
+
+ * frontend/Makefile.in: Add definitions for VPATH, srcdir, top_srcdir,
+ and top_builddir.
+ (INCLUDES): Also search in $(srcdir), $(top_builddir)/include, and
+ $(top_srcdir)/include.
+ (install): Add $(srcdir) prefix to sane-style.rc.
+
+ * doc/Makefile.in: Add definitions for VPATH, srcdir, top_srcdir,
+ and top_builddir.
+ (%.1 %.5): Use $^ instead of $* so source file can be found even
+ when in a different directory.
+
+ * configure.in (AC_OUTPUT): Create (dummy) include/Makefile to
+ ensure include directory exists in build tree.
+
+ * backend/Makefile.in: Add definitions for VPATH, srcdir,
+ top_srcdir, and top_builddir.
+ (INCLUDES): Also search in $(srcdir), $(top_builddir)/include, and
+ $(top_srcdir)/include.
+ (CONFIGS): Add $(srcdir) prefix.
+ (%-s.c): Ditto.
+
+ * Makefile.in (INSTALLED_INCLUDES): Mention include/sane/config.h.
+ Add definitions for VPATH, srcdir, top_srcdir, and top_builddir.
+ (INSTALLED_INCLUDES): Change include/sane to $(top_srcdir)/include/sane
+ and use "addprefix" function to add prefix.
+
+Thu May 15 07:26:06 1997 David Mosberger-Tang <davidm@azstarnet.com>
+
+ * doc/sane-mustek.man (Model): Add entry for MFC-600CD.
+ (Model): Mention AHA-2940.
+
+ * frontend/xscanimage.c (scan_dialog): Move gsg_sync() to here
+ (from scan_start()).
+
+ * backend/mustek.c (init_options): Disable brightness/contrast for
+ 1-pass scanners only (in color mode).
+
+Wed May 14 09:17:02 1997 David Mosberger-Tang <davidm@azstarnet.com>
+
+ * backend/mustek.c: Add ax_brightness_range, ax_contrast_range.
+ (init_options): Use ax_brightness_range/ax_contrast_range for
+ brightness/contrast option when using a 3-pass scanner.
+ (encode_percentage): Remove extraneous division by 100.0.
+
+ * doc/sane-mustek.man (Model): Add MFS-12000CX entry.
+
+Mon May 12 07:58:34 1997 David Mosberger-Tang <davidm@azstarnet.com>
+
+ * frontend/scanimage.c (main): Shorten help string so it fits in
+ 80 characters.
+
+ * frontend/preview.c (paint_image): Only increment height if
+ height < p->image_height.
+
+Sat May 10 14:43:05 1997 David Mosberger-Tang <davidm@azstarnet.com>
+
+ * Version 0.57 released.
+
+ * backend/mustek.c (attach): Fix range to 220x300mm.
+ (init_options): Initialize OPT_PREVIEW and OPT_GRAY_PREVIEW.
+ (sane_control_option): Handle OPT_PREVIEW and OPT_GRAY_PREVIEW.
+ Do not allow OPT_NUM_OPTS to be set.
+ (sane_get_parameters): Except for s->params.format and
+ s->params.last_frame, do not change any parameters when scanning
+ is in progress.
+ (sane_start): Handle mono-chrome previewing.
+
+ * backend/mustek.h (Mustek_Option): Add OPT_PREVIEW and
+ OPT_GRAY_PREVIEW.
+
+ * frontend/progress.c (progress_new): Fix position of progress bar
+ window to (progress_x,progress_y).
+
+ * frontend/gtkglue.c (panel_build): Skip Preview option.
+
+Thu May 8 19:39:48 1997 David Mosberger-Tang <davidm@azstarnet.com>
+
+ * doc/scanimage.man: New file.
+
+ * doc/Makefile.in (SECT1): Mention scanimage.1.
+
+ * backend/dll.conf: Add hp to dll.conf.
+
+Wed May 7 07:28:18 1997 David Mosberger-Tang <davidm@azstarnet.com>
+
+ * include/sane/sanei_scsi.h (SANEI_SCSI_Sense_Handler): New type.
+ (sanei_scsi_close): Add SENSE_HANDLER argument (NULL means no
+ special handler needed).
+
+ * backend/hp.c (sane_start): Pass 0 as SENSE_HANDLER argument.
+ (attach): Ditto.
+
+ * backend/mustek.c (sense_handler): Rename from request_sense and
+ simplify.
+ Remove all explicit request-sense calls.
+
+ * sanei/sanei_scsi.c: Include <stdlib.h>.
+ (num_handlers_alloced): New variable.
+ (sense_handler): Ditto.
+ (sanei_scsi_open): Add SENSE_HANDLER argument. Stash it away in
+ SENSE_HANDLER array if non-NULL.
+ (sanei_scsi_cmd) [HAVE_SYS_SG]: Invoke SENSE_HANDLER[FD] if it
+ exists and is non-NULL and we have a valid sense-buffer.
+ (sanei_scsi_cmd) [HAVE_SYS_SCSI]: Ditto.
+ (sanei_scsi_close): Reset SENSE_HANDLER[FD] to NULL if it exists.
+
+ * frontend/xcam.c: Include <sane/config.h>.
+
+ * configure.in: Add a big fat warning that PROBLEMS should be
+ read before running any programs.
+
+ * PROBLEMS: Add info on how to avoid damaging Mustek scanners.
+
+Mon May 5 07:06:54 1997 David Mosberger-Tang <davidm@azstarnet.com>
+
+ * doc/sane.tex (chapter{Contact Information}): Fix URL.
+
+ * doc/net.tex: Add missing sections. Make into chapter.
+
+ * backend/pint.README: Remove.
+
+ * backend/dll.c (ASSERT_SPACE): Call malloc() when devlist is
+ NULL. SunOS realloc() returns NULL otherwise.
+ * backend/net.c (ASSERT_SPACE): Ditto.
+
+Sun May 4 09:21:48 1997 David Mosberger-Tang <davidm@azstarnet.com>
+
+ * frontend/saned.c (EXIT_SUCCESS): Define as 0 if not defined by
+ stdlib.h.
+
+ * frontend/scanimage.c: Include <sys/types.h>.
+
+ * backend/qcam.c: Define PATH_MAX as 1024 if limits.h doesn't
+ define it.
+ * backend/dll.c: Ditto.
+ * backend/hp.c: Ditto.
+ * backend/mustek.c: Ditto.
+ * backend/net.c: Ditto.
+ * backend/pint.c: Ditto.
+ * backend/qcam.c: Ditto.
+ * frontend/xscanimage.c: Ditto.
+ * frontend/xcam.c: Ditto.
+ * frontend/preview.c: Ditto.
+
+ * sanei/sanei_wire.c: Include <sane/config.h>.
+ * sanei/sanei_net.c: Ditto.
+ * sanei/sanei_codec_ascii.c: Ditto.
+ * sanei/sanei_codec_bin.c: Ditto.
+ * sanei/sanei_save_values.c: Ditto.
+ * backend/net.c: Ditto.
+ * frontend/saned.c: Ditto.
+
+ * configure.in (AC_CHECK_HEADERS): Mention
+ /usr/src/linux/include/scsi/sg.h.
+
+ * include/sane/config.h.in: Add
+ #undef HAVE__USR_SRC_LINUX_INCLUDE_SCSI_SG_H.
+
+ * sanei/sanei_scsi.c [HAVE__USR_SRC_LINUX_INCLUDE_SCSI_SG_H]:
+ Include "/usr/src/linux/include/scsi/sg.
+ (sanei_scsi_cmd): Use Linux version if either HAVE_SCSI_SG_H or
+ HAVE__USR_SRC_LINUX_INCLUDE_SCSI_SG_H are defined.
+
+ * doc/xscanimage.man: Rename --no-shm to --no-xshm.
+
+Mon Apr 28 09:55:02 1997 David Mosberger-Tang <davidm@azstarnet.com>
+
+ * Version 0.56 released.
+
+ * backend/qcam.c (sane_open): Move disabling of despeckle-filter
+ for b&w cameras to here (from init_options()).
+
+ * frontend/preferences.c: Add missing default value for FILENAME.
+
+ * backend/qcam.h: Add QC_BW_SET_CONTRAST,
+ QC_BW_AUTO_ADJUST_OFFSET, and QC_BW_GET_OFFSET. * backend/qcam.c
+ (sane_start): Use QC_BW_SET_CONTRAST when dealing with B&W camera.
+ Fix computation of QC_SET_NUM_H value. [Based on Guido Muensch's
+ patches.]
+
+ * frontend/scanimage.c (advance): Move out-of-memory error message
+ from scan_it() to here.
+ (scan_it): When height is known a priori, allocate one extra line
+ to avoid realloc() when image has been filled.
+
+ * backend/hp.c (BACKEND_NAME): Define as hp (reported by Henryk
+ Paluch).
+
+ * backend/mustek.c (request_sense): Increase result size from 4 to
+ 16 bytes to shut up aha1542 driver (reported by Mathias Lautner).
+
+ * frontend/scanimage.c (advance): Fix memory allocation logic
+ (bug reported by Matthias Lautner).
+
+ * doc/sane-dll.man: Clarify that pre-loaded backends are not
+ affected by dll.conf.
+
+ * doc/sane-pint.man: New file (contributed by Gordon Matzigkeit).
+
+ * backend/dll.c (RTLD_NOW): Define as 0 if dlfcn.h doesn't define
+ it.
+
+Wed Apr 23 23:03:47 1997 Gordon Matzigkeit <gord@gnu.ai.mit.edu>
+
+ * backend/Makefile.in, frontend/Makefile.in: Specify full
+ filenames, rather than just the directory name for INSTALL
+ destinations. This Automakeism helps debugging when the target
+ directory doesn't exist.
+
+ * include/sane/config.h.in (HAVE_SYS_SCANIO_H): Define, for PINT's
+ sake.
+
+ * backend/pint.c: Prefix sane includes with <sane/...>.
+
+ * backend/dll.c (RTLD_NOW): Paramaterize, so that RTLD_LAZY is
+ used if RTLD_NOW is not defined.
+ (load): Try looking up the symbol with a leading underscore, if we
+ can't find it the first time.
+
+ Make dynamic loading conditional on HAVE_DLOPEN rather than the
+ library and header file.
+
+ * configure.in (enable_dynamic): Disable dynamic loading if the
+ system doesn't have dlopen.
+
+Tue Apr 22 00:17:41 1997 David Mosberger-Tang <davidm@azstarnet.com>
+
+ * Version 0.55 released.
+
+ * frontend/xscanimage.c (browse_filename_callback): Initialize
+ FILENAME before calling gsg_get_filename().
+
+ * doc/sane.tex: Change obsolete \driver{DVIps} into DVIps document
+ style option.
+
+ * frontend/xscanimage.c (query): Update to new command name
+ length.
+
+Mon Apr 21 08:27:28 1997 David Mosberger-Tang <davidm@azstarnet.com>
+
+ * doc/Makefile.in (install): Add rule to install man-pages.
+ (%.1 %.5): Add rule to generate man-pages (by substituting
+ actual paths).
+ (SECT1): New variable.
+ (SECT5): Ditto.
+ (MANPAGES): Ditto.
+
+ * doc/sane-pnm.man: New file.
+ * backend/pnm.README: Deleted.
+
+ * doc/sane-hp.man: New file.
+ * backend/hp.README: Deleted.
+
+ * doc/saned.man: New file.
+ * frontend/saned.README: Deleted.
+
+ * doc/sane-qcam.man: New file.
+ * backend/qcam.README: Deleted.
+
+ * doc/sane-mustek.man: New file.
+ * backend/mustek.README: Deleted.
+
+ * doc/sane-net.man: New file.
+ * backend/net.README: Deleted.
+
+ * doc/sane-dll.man: New file.
+ * backend/dll.README: Deleted.
+
+ * doc/xscanimage.man: New file.
+ * frontend/xscanimage.README: Deleted.
+
+ * frontend/preview.c (event_handler): Restore preview image only
+ if preferences.preserve_preview is TRUE.
+
+ * frontend/xscanimage.c (preview_options_dialog): Add an option
+ to control whether the preview image should be preserved.
+
+ * sanei/sanei_load_values.c (sanei_load_values): Copy string value
+ into temporary buffer that is opt->size bytes long. Then pass copy
+ to sane_control_option().
+
+ * AUTHORS (Backends): Updated according to recent changes.
+
+ * doc/sane.tex (The SANE Application Programmer Interface (API)):
+ Fix typo: replace () by {}.
+
+ * PROJECTS (Backend): Update PINT entry.
+
+ * frontend/xscanimage.c (prog_name): New variable.
+ (input_available): Use prog_name instead of hardcoding "xscan".
+ (preview_options_ok_callback): Ditto.
+ (preview_options_dialog): Ditto.
+ (usage): Ditto.
+ (interface): Ditto.
+ (main): Initialize prog_name.
+
+ * frontend/scanimage.c: Update for new name (scanimage instead of
+ scan).
+
+ * frontend/Makefile.in (SCAN_OBJS): Rename sources to xscanimage.c
+ and scanimage.c as well.
+
+Sun Apr 20 09:09:06 1997 David Mosberger-Tang <davidm@azstarnet.com>
+
+ * Version 0.54 released.
+
+ * sanei/Makefile.in (LIBSANEI_LTOBJS): Remove @LTALLOCA@.
+ (LIBSANEI_OBJS): Remove @ALLOCA@.
+
+ * lib/Makefile.in: Invoke $(LIBTOOL) with --mode arg to avoid
+ depending on command names. Prefix $(LIBTOOL) invocation with
+ @-sign to reduce verbosity.
+ * frontend/Makefile.in: Ditto.
+ * backend/Makefile.in: Ditto.
+ * sanei/Makefile.in: Ditto.
+
+ * frontend/saned.c (_PATH_HEQUIV): Define if not defined yet..
+
+ * configure.in: Check for libgimp/gimp.h instead of -lgimp since
+ -lgimp cannot be linked by itself (it has an unresolved reference
+ to PLUG_IN_INFO).
+
+ * lib/strndup.c (strndup): Include <stdlib.h>.
+
+ * frontend/xscanimage.README: Update.
+
+ * sanei/sanei_scsi.c: Add missing "int" type in front of
+ sanei_scsi_max_request_size.
+
+ * configure.in: Check for -lintl, -lsocket, and -lnsl for
+ braindamaged SVR4 systems.
+
+ * frontend/scan.c (scan_it): Initialize min with 0xff, not ~0
+ (Sun CC complains otherwise).
+
+ * backend/Makefile.in: Use "ln -f -s", not "ln -sf", Solaris doesn't
+ like the former. Grrr...
+
+ * lib/alloca.c: Don't use xmalloc().
+
+ * frontend/saned.c (store_reclen): Declare BUF as a pointer to
+ SANE_Byte (not char).
+ (do_scan): Ditto.
+
+ * frontend/scan.c (fetch_options): Cast opt->name to (char *)
+ to suppress (spurious) warning.
+
+ * backend/dll.c (sane_init): Skip preloaded backends with no name.
+
+ * backend/hp.c (inquire): Cast BUF to (char *) to avoid warning.
+ (sane_read): Change type of NREAD to size_t (from ssize_t).
+
+ * include/sane/sanei_backend.h (u_int16_t): Define u_int8_t,
+ u_int16_t, and u_int32_t if necessary.
+
+ * include/sane/sane.h (sane_strstatus): Remove non-ANSI "const".
+ * backend/sane_strstatus.c (sane_strstatus): Ditto
+
+ * include/sane/sanei_debug.h (DBG): Define alternate version for
+ non-GNU C compilers.
+
+ * sanei/sanei_init_debug.c (sanei_debug) [!__GNUC__]: New function.
+ (max_level) [!__GNUC__]: New variable.
+
+ * include/sane/sanei_wire.h: Fix typo in prototype for
+ sanei_w_value_type.
+
+ * configure.in: Test for gtk_check_button_new() in libgtk.
+
+ * lib/Makefile.in (CPPFLAGS): Add -I../include/sane.
+
+ * frontend/scan.c (STRIP_HEIGHT): New macro.
+ (advance): Use above macro instead of hard-coding value.
+ (scan_it): Ditto.
+ (scan_it): Print error when out of memory.
+
+ * frontend/sane-style.rc: Make the curve in the graph red.
+
+ * frontend/preview.c (XSERVER_WITH_BUGGY_VISUALS): Define for now.
+ (preview_new): Avoid push_visual()/get_visual() since it seems to
+ cause problems with some XFree86 servers (and may be others as
+ well).
+
+ * frontend/preferences.h: Add member ADVANCED.
+ * frontend/preferences.c: Initialize member ADVANCED and add
+ an option descriptor for it.
+
+ * frontend/gtkglue.c (panel_build): Layout panel different: all
+ options are now in one column (advanced options are at the
+ bottom). The graph widget (if any), will be shown in a separate
+ column to the right of the options. Display a group only when
+ there is at least one option in it. Create graph widget if there
+ is at least one vector-valued option.
+ (gsg_sync): New function.
+ (gsg_set_advanced): Ditto.
+ (gsg_message_dialog_active): Rename from SHOWING_MESSAGE and make
+ global.
+
+ * frontend/gtkglue.h (GSGDialog): Rename member NOTEBOOK to
+ MAIN_HBOX. Add members ADVANCED_VBOX and ADVANCED.
+
+ * frontend/gtkglue.c (group_new): New function.
+ (curve_new): Ditto.
+ (vector_new): Ditto.
+
+ * backend/mustek.c (init_options): Initialize OPT_CUSTOM_GAMMA.
+ (sane_control_option): Handle OPT_CUSTOM_GAMMA.
+
+ * backend/mustek.h (OPT_CUSTOM_GAMMA): New option.
+
+ * configure.in (AC_CONFIG_HEADER): Update for new location.
+
+ * include/sane/config.h.in: Move to here from include/config.h.
+ * *.[ch]: Replace <config.h> with <sane/config.h> (except for
+ files in lib.
+
+ * frontend/saned.README: saned moved from bin/saned to sbin/saned.
+
+ * configure.in (AC_CHECK_HEADERS): Check for gtk/gtkcurve.h.
+
+ * backend/mustek.c (init_options): Undo changes of April 18th.
+
+ * frontend/Makefile.in (install): Install $(BINPROGS) in $(bindir)
+ and $(SBINPROGS) in $(sbindir).
+ (SBINPROGS): New variable.
+ (BINPROGS): Ditto.
+ (PROGRAMS): Define as concatenation of the two vars above.
+ (install): Create $(bindir) and $(sbindir) if necessary.
+
+Sat Apr 19 18:21:02 1997 David Mosberger-Tang <davidm@azstarnet.com>
+
+ * frontend/Makefile.in (scanimage): Rename "scan" binary to
+ "scanimage" to avoid name-collision with MH's scan command.
+
+ * backend/mustek.c (gamma_correction): Update according to new
+ gamma-table handling.
+
+ * backend/mustek.h: Declare gamma_table as 4 arrays of 256 words
+ each.
+
+ * backend/mustek.c (sane_control_option): Add missing return after
+ setting OPT_GAMMA_VECTOR.
+
+ * frontend/progress.h: Protect against multiple inclusion using
+ macro progress_h, not __PROGRESS_H__ (names starting with
+ underscores are reserved for libc/system).
+
+ * frontend/gtkglue.c: Remove include of <gtk.h>.
+ * frontend/xcam.c: Ditto.
+ * frontend/xscan.c: Ditto.
+
+ * frontend/gtkglue.h: Include <gtk/gtk.h> instead of <gtk.h>.
+ * frontend/progress.c: Ditto.
+
+ * Makefile.in (install): Install headerfiles.
+ (INSTALLED_INCLUDES): List of header files that need to be
+ installed.
+
+Sat Apr 19 18:15:03 1997 Michael K. Johnson <johnsonm@redhat.com>
+
+ * */*.[ch]: Prefix sane-includes with <sane/...>.
+ include/sane*: Move to include/sane subdirectory.
+
+Sat Apr 19 08:25:36 1997 David Mosberger-Tang <davidm@azstarnet.com>
+
+ * frontend/gtkglue.c (set_option): Add missing return and use
+ snprintf instead of sprintf.
+
+ * frontend/xscan.c (update_param): Multiply size by 3 if we're
+ dealing with a frame from a 3-pass image.
+
+Fri Apr 18 07:28:46 1997 David Mosberger-Tang <davidm@azstarnet.com>
+
+ * backend/mustek.c (init_options): Mark all vector options as
+ SANE_CAP_ADVANCED.
+
+ * frontend/scan.c (scan_it): Fail if advance() fails.
+
+Thu Apr 17 08:59:00 1997 David Mosberger-Tang <davidm@azstarnet.com>
+
+ * backend/mustek.c (sane_read): Add debug statement.
+ (reader_process): Remove extraneous if-statement that had the
+ effect of not passing along any data in 3-pass mode.
+
+Wed Apr 16 09:16:01 1997 David Mosberger-Tang <davidm@azstarnet.com>
+
+ * frontend/preview.h: Add member CANCEL.
+ * frontend/preview.c (scan_start): Make p->cancel sensitive.
+ (scan_done): Make p->cancel insensitive.
+ (preview_new): Set p->cancel insensitive.
+
+ * frontend/preferences.h (Preferences): Add member "filename".
+ * frontend/preferences.c: Initialize new member "filename".
+ Declare member "filename" as a string.
+
+ * frontend/xscan.c (device_dialog): Rename "Files" to "File".
+ (quit_xscan): Call pref_xscan_save() before exiting. Replace
+ global variable filename by preferences.filename.
+
+ * frontend/xcam.c (main): Ditto.
+
+ * PROBLEMS: New file.
+
+ * frontend/gtkglue.c (scale_new): Set the adjustment page size to
+ 0.0. Make horizontal scale 200 pixels wide.
+
+ * frontend/xscan.c (device_dialog): Move gtk_widget_show
+ (ScanWin.shell) after pref_device_restore (0, 0).
+ (pref_device_restore): Make arg-less since callback arguments must
+ not be used.
+ (device_dialog): Remove dummy args from call to pref_device_restore().
+
+ * include/saneopts.h (SANE_TITLE_SCAN_TL_X, SANE_TITLE_SCAN_TL_Y,
+ SANE_TITLE_SCAN_BR_X, SANE_TITLE_SCAN_BR_Y): Shorten titles.
+
+ * frontend/xcam.c (main): Move gtk_widget_show(win.shell) to end
+ of function.
+
+ * backend/mustek.c (attach): Turn on MUSTEK_FLAG_USE_EIGHTS for
+ MFS-12000CX.
+ (sane_get_parameters): Must not depend on s->mode in this routine,
+ since s->mode is valid only once scanning has begun.
+
+Tue Apr 15 23:06:17 1997 David Mosberger-Tang <davidm@azstarnet.com>
+
+ * backend/mustek.c (sane_start): Issue SCAN_AREA and BACKTRACK
+ commands even during second and third pass.
+ (sane_get_parameters): Be sure to properly update the
+ params.format member during second and third pass.
+
+Sat Apr 12 11:40:52 1997 David Mosberger-Tang <davidm@azstarnet.com>
+
+ * frontend/scan.c (STRIP_HEIGHT): New macro.
+ (scan_it): Fix typo: test parm.lines instead of image.height.
+
+ * backend/pnm.c (hand_scanner): New variable.
+ (sane_control_option): Handle setting/reading of HAND_SCANNER
+ option.
+ (getparmfromfile): Set parms.lines to -1 when simulating
+ hand-scanner.
+ (sod): Add hand-scanner option descriptor.
+
+ * frontend/gtkglue.c (panel_build): Move gtk_widget_show
+ (notebook) to the very of this function. This works around the
+ notebook redrawing problems. Define WORKING_NOTEBOOK.
+
+ * frontend/xscan.c (interface): Call quit_xscan() if
+ device_dialog() did not end up with a non-NULL dialog.
+ (quit_xscan): Add missing exit() call.
+
+ * backend/mustek.c (attach): Print more debug info on detected
+ scanner (1 vs 3-pass, ADF & TA support).
+ (start_scan): Fix typo in code selecting the three-pass color filter.
+
+Sun Apr 13 23:53:02 1997 Gordon Matzigkeit <gord@gnu.ai.mit.edu>
+
+ * backend/pint.c, backend/pint.h, backend/pint.README: Added to
+ distribution.
+
+Fri Apr 11 22:04:17 1997 David Mosberger-Tang <davidm@azstarnet.com>
+
+ * Version 0.53 released.
+
+ * frontend/xscan.c: Default to "out.pnm" instead of "out.ppm".
+
+ * backend/mustek.c (get_image_status): Add debug message.
+ (sane_start): Only divide pixels_per_line by three if we're doing
+ a one-pass color scan.
+ (do_eof): New function.
+ (sane_read): Call do_eof() when done with a frame.
+ (do_cancel): Call do_eof().
+
+ * frontend/scan.c (write_pnm_header): New function.
+ (advance): Ditto.
+ (scan_it): Modify to support three-pass scanning and scanning of
+ images whose height is not known a priori (hand-held scanners).
+
+Wed Apr 9 14:39:59 1997 David Mosberger-Tang <davidm@azstarnet.com>
+
+ * frontend/xscan.c (ok_choose_dialog_callback): Make
+ argument-free.
+ (select_device_callback): Declare event as second argument and
+ call ok_choose_dialog_callback() if the callback was invoked
+ through a double-click.
+ (choose_device): Register select_device_callback() as
+ "button_press_event" handler instead of as "clicked" so we can
+ catch double-clicks.
+
+Tue Apr 8 10:31:47 1997 David Mosberger-Tang <davidm@azstarnet.com>
+
+ * frontend/xscan.c (init): Enable gtk_rc_parse() code (GTK-0.99.7
+ requires patch for gtkstyle.c).
+
+ * backend/hp.c (attach): Fix parenthization to shut up gcc.
+
+Mon Apr 7 13:08:45 1997 David Mosberger-Tang <davidm@azstarnet.com>
+
+ * frontend/xscan.c (preview_options_dialog): Rename "changed_text"
+ to "changed" to reflect latest GTK version.
+ (device_dialog): Ditto.
+ * frontend/gtkglue.c (text_entry_new): Ditto.
+
+ * Version 0.52 released.
+
+ * AUTHORS: Various updates.
+
+ * backend/mustek.README: Add Adaptec info.
+
+ * backend/mustek.c (sane_start): Call wait_ready() before any
+ other scanner command.
+ (wait_ready): New function.
+ (attach): Call wait_ready() instead of open-coding it.
+
+ * doc/sane.tex (subsection{\code{sane\_strstatus}}): Include
+ net.tex.
+ * doc/net.tex: New file.
+
+Thu Apr 3 08:51:13 1997 David Mosberger-Tang <davidm@azstarnet.com>
+
+ * frontend/xscan.c (update_param): Change type of SIZE to u_long
+ (from long) since under NetBSD there seem to be some odd sign
+ problems otherwise (compiler bug?).
+
+Wed Apr 2 07:15:41 1997 David Mosberger-Tang <davidm@azstarnet.com>
+
+ * backend/mustek.c (sane_read): Always deliver EOF after reading
+ 0 bytes.
+
+ * backend/qcam.c (reader_process): Fine-tune pixel interpolation.
+ (despeckle32): Ignore last red pixel in every line (it's always
+ black). Switch red and blue pixel location (the Connectix docs
+ are wrong).
+
+ * backend/mustek.c (start_scan): Fix typo that caused start[4] to
+ be set incorrectly.
+
+ * frontend/preview.c: Include <sys/param.h> to get PATH_MAX.
+
+Tue Apr 1 18:45:14 1997 David Mosberger-Tang <davidm@azstarnet.com>
+
+ * backend/qcam.c (despeckle): New function.
+ (despeckle32): Ditto.
+ (init_options): Initialize OPT_DESPECKLE.
+ (reader_process): Add despeckling support.
+ (sane_control_option): Ditto.
+ (sane_start): Initialize req.despeckle.
+
+ * backend/qcam.h: New member DESPECKLE.
+
+ * frontend/preview.c (restore_option): Fix typo: it should be
+ SANE_ACTION_SET_VALUE (not _get_).
+
+ * backend/mustek.c (attach): Turn on MUSTEK_FLAG_USE_EIGHTS for
+ MFS-06000CX.
+
+ * backend/hp.c (attach): Allow both TYPE_PROCESSOR (0x03) and
+ TYPE_SCANNER (0x06) as the first inquiry byte---some scanners use
+ the former, others the latter.
+
+ * Version 0.51 released.
+
+ * configure.in: Check for gtk_tooltips_new in libgtk.
+
+Mon Mar 31 14:42:56 1997 Gordon Matzigkeit <gord@gnu.ai.mit.edu>
+
+ * frontend/scan.c (main): Added full_optstring, to allow getopt to
+ do full parsing of the option arguments.
+
+ * backend/pnm.c (getparmfromfile): Need to round up the number of
+ bytes per line when scanning bitmaps.
+
+Mon Mar 31 07:48:50 1997 David Mosberger-Tang <davidm@azstarnet.com>
+
+ * backend/qcam.c (attach): Send a dummy black-level command. The
+ first black-level command aftera camera reset doesn't appear to
+ "take."
+
+ * lib/strndup.c: Correct typo: HAVE_STRDUP -> HAVE_STRNDUP.
+
+ * frontend/xscan.c (pref_set_tooltips): New function.
+ (pref_build_menu): Build tooltip submenu.
+
+ * frontend/preferences.h: New member TOOLTIPS_ENABLED.
+ * frontend/preferences.c: Add entry for TOOLTIPS_ENABLED.
+
+ * frontend/gtkglue.h: Add members TOOLTIPS, TOOLTIPS_FG, and
+ TOOLTIPS_BG.
+
+ * frontend/gtkglue.c (set_tooltip): New function.
+ (autobutton_new): Add argument TOOLTIPS and add button-description
+ via set_tooltip().
+ (button_new): New args TOOLTIPS & DESC. Set DESC as tooltip help
+ string.
+ (scale_new): Ditto.
+ (option_menu_new): Ditto.
+ (text_entry_new): Ditto.
+ (panel_destroy): Destroy dialog tooltips as well.
+ (panel_build): Create tooltips and allocate colors for it; pass
+ new args to above functions.
+ (gsg_set_tooltips): New function.
+
+ * Version 0.5 released.
+
+ * backend/Makefile.in (install): Add missing double-quotes to
+ $(LIBS) and $(CONFIGS). Also create a symlink for libsane.a.
+
+ * ltconfig: Revert back to version 0.9.
+ * ltmain.sh: Ditto.
+
+ * frontend/scan.c (print_option): Substitute our own help string
+ for -x and -y options.
+ (main): Remove BROKEN_GETOPT code.
+
+ * frontend/Makefile.in (CPPFLAGS): Undo yesterday's change.
+ * lib/getopt1.c: Ditto.
+ * lib/getopt.c: Ditto.
+
+ * frontend/scan.c (main): Add some clever getopt () hackery to
+ work around multi-scan getopt () bug (patch by Gord Matzigkeit).
+
+ * backend/qcam.README: Correct path of configuration file.
+
+Sun Mar 30 21:42:12 1997 David Mosberger-Tang <davidm@azstarnet.com>
+
+ * frontend/Makefile.in (CPPFLAGS): Add back -DBROKEN_GETOPT.
+
+ * frontend/scan.c (main): Reinstantiate BROKEN_GETOPT code.
+ getopt_long() is _STILL_ broken. ;-(
+
+ * lib/getopt.c: Use this code if __GNU_LIBRARY__ <= 6. Early
+ versions of glibc had a buggy getopt().
+ * lib/getopt1.c: Ditto.
+
+ * frontend/Makefile.in (xscan): Mention $(LIBSANEI).
+
+ * frontend/xscan.c: Include <libgimp/gimp.h>, not <gimp.h>.
+
+ * Makefile.in (distclean): Mention libtool.
+ * configure.in (AC_CHECK_FUNCS): Ditto.
+
+ * include/config.h.in: Add undef of STRSEP.
+
+ * sanei/sane_strstatus.c: Move to backend directory to minimize
+ chance of confusing this with a SANE-internal routine.
+
+ * sanei/Makefile.in (LIBSANEI_OBJS): Remove sane_strstatus.o.
+ (LIBSANEI_LTOBJS): Remove sane_strstatus.lo.
+
+ * backend/Makefile.in (libsane-%.la): Mention sane_strstatus.lo
+ explicitly (every SANE backend library MUST define this function
+ so we can switch backends at will).
+
+ * frontend/Makefile.in (SCAN_OBJS): Remove getopt.o, getopt1.o.
+
+ * Makefile.in (SUBDIRS): Mention lib as first directory.
+
+ * configure.in (AC_OUTPUT): Mention lib/Makefile.
+
+ * lib/strsep.c: New file.
+ * lib/strndup.c: Ditto.
+ * lib/Makefile.in: Ditto.
+
+ * sanei/test_wire.c (main): Initialize codecs through
+ sanei_w_init().
+
+ * sanei/sanei_codec_bin.c (sanei_codec_bin_init): Ditto.
+
+ * sanei/sanei_codec_ascii.c (sanei_codec_ascii_init): Remove
+ w->buffer initalization---this function should be called through
+ sanei_w_init () only.
+
+ * sanei/sanei_scsi.c: Rename _sanei_scsi_max_request_size to
+ sanei_scsi_max_request_size.
+
+ * backend/mustek.c (reader_process): Rename macro
+ SANEI_SCSI_MAX_REQUEST_SIZE to variable
+ sanei_scsi_max_request_size.
+
+ * include/sanei_scsi.h: Rename _sanei_scsi_max_request_size to
+ sanei_scsi_max_request_size (names with a leading underscore are
+ reserved for libc/system).
+ (SANEI_SCSI_MAX_REQUEST_SIZE): Remove macro.
+
+ * frontend/scan.c (main): Add a brief description of the program.
+
+ * frontend/getopt.c: Move to lib.
+ * frontend/getopt1.c: Ditto.
+
+ * backend/pnm.c (enum ppm_type): Remove non-ANSI trailing comma.
+ Correct struct indentation.
+
+ * include/lalloca.h: Isolate alloca cruft in this file.
+ * frontend/gtkglue.c: Include lalloca.h in place of alloca hack.
+ * frontend/dll.c: Ditto.
+ * frontend/scan.c: Ditto.
+ * sanei/sanei_load_values.c: Ditto.
+ * sanei/sanei_scsi.c: Ditto.
+
+Sat Mar 29 00:14:37 1997 Gordon Matzigkeit <gord@gnu.ai.mit.edu>
+
+ * backend/pnm.c (sane_read): Slurp in RGB files all at once,
+ rather than limping along three bytes at a time.
+
+ * frontend/xscan.c (advance): Only define if HAVE_LIBGIMP.
+
+ * backend/pnm.c (sane_read, sane_start, getparmfromfile): Handle
+ grayscale and monochrome bitmapped PNM files.
+
+ * frontend/scan.c (main): Remove BROKEN_GETOPT workaround---the
+ new getopt() works properly when making multiple passes over the
+ argument list.
+
+Fri Mar 28 21:33:36 1997 Gordon Matzigkeit <gord@gnu.ai.mit.edu>
+
+ * configure.in: Make the QuickCam device conditional on whether or
+ not the ioperm function exists.
+
+ * sanei/sanei_scsi.c: created a stubbed version of sanei_scsi_cmd.
+
+ * frontend/scan.c (main): Only print error messages to stderr.
+ Use fputs or fputc when it is possible to avoid printf.
+
+ * sanei/sanei_wire.c (sanei_w_array, sanei_w_ptr, sanei_w_init),
+ sanei/sanei_save_values.c (sanei_save_values),
+ sanei/sanei_codec_ascii.c (ascii_w_string): Return an error if
+ malloc fails.
+
+ * sanei/test_wire.c (main): Added --readonly flag to help test
+ wire robustness.
+
+ * backend/Makefile.in (LIBSANEI): Deleted the `EXTRA' variable,
+ and used the convenience library, ../sanei/libsanei.a.
+
+Sat Mar 29 10:19:58 1997 David Mosberger-Tang <davidm@azstarnet.com>
+
+ * doc/sane.tex: Change version from 0.42 to 0.5.
+
+ * README: Add pointer to frontend & backend specific README files.
+
+ * backend/net.c (connect_dev): Ensure dev->ctl gets closed and
+ reset to -1 in case of failure.
+
+ * configure.in: Look for gtk_preview_new() in libgtk so we can
+ ignore old GTK versions against which we can't build.
+
+ * (config.sub): Replace with version that comes with
+ autoconf-2.12. The version that came with libtool-0.9
+ doesn't like i686-unknown-linux.
+
+Fri Mar 28 13:12:17 1997 David Mosberger-Tang <davidm@azstarnet.com>
+
+ * doc/sane.tex (subsection{sane_get_select_fd}): Remove extraneous
+ backslash.
+
+ * backend/stubs.c (sane_cancel): Don't return anything.
+
+ * include/sane.h: Remove trailing comma (for -pedantic).
+
+ * frontend/xscan.c (interface): Complain when trying to call
+ a device that's unavailable.
+ (select_device_callback): Correct prototype.
+
+ * frontend/xcam.c (main): Remove unused variable `label.'
+
+ * backend/net.c (sane_cancel): Call SANE_NET_CANCEL.
+ (sane_start): Handle failure of SANE_NET_START.
+
+ * frontend/saned.c (process_request): Implement SANE_NET_CANCEL.
+
+ * frontend/gtkglue.h (GSGDialogElement): Remove member "label".
+ * frontend/gtkglue.c: Update accordingly.
+ (button_new): Use gtk_check_button_new_with_label () to simplify
+ this function.
+
+ * frontend/gtkglue.c (unit_string): New function.
+ (panel_build): Append unit_string () to option's title if
+ the unit is not SANE_UNIT_NONE. Use "title" instead of opt->title
+ when creating widgets.
+
+ * frontend/preview.c (preview_update): Compute width/height as
+ (max - min + eps) where eps is 1 for integer coordinates and
+ SANE_UNFIX(1) for fixed-point coordinates.
+ (display_partial_image): Support different scaling in x/y
+ direction. In the case where surface_unit == SANE_UNIT_PIXEL,
+ compute xscale/yscale based on the ratio between the _expected_
+ width/height and the actual width/height. If they're not equal,
+ the backend must be doing some scaling (e.g., transfer-scale in
+ the qcam backend).
+
+ * frontend/xscan.c (init): Disable gtk_rc_parse () calls for now
+ since gtk styles seem to be a bit buggy right now.
+ (scan_done): Remove input_tag if it is >= 0.
+
+ * frontend/gtkglue.c: Include <preferences.h>.
+ (panel_build): For fixed-point range-constraints scale min/max/quant
+ based on the preferred metric.
+ (scale_update): Ditto.
+ (gsg_update_scan_window): Ditto.
+
+ * backend/mustek.c (sane_control_option): For OPT_GAMMA_VECTOR_*
+ options, fail with SANE_STATUS_INVAL if the vector has zero length
+ (i.e., hasn't been set yet).
+
+ * frontend/progress.c (progress_new): Don't make Cancel the
+ default-button---it's too easy to cancel by mistake otherwise.
+
+ * frontend/sane-style.rc: New file.
+
+ * frontend/xscan.c (init): New function. Parse gtk_rc_parse ()
+ on /usr/local/share/sane-style.rc and ~/.sane/sane-style.rc if
+ those files exist.
+
+ * configure.in (CPPFLAGS): Add PATH_SANE_DATA_DIR.
+
+ * frontend/gtkglue.c (gsg_warning): New function.
+ (gsg_message): New function.
+ (gsg_error): Implement in terms of gsg_message ().
+
+Thu Mar 27 16:52:27 1997 David Mosberger-Tang <davidm@azstarnet.com>
+
+ * frontend/gtkglue.c (gsg_make_path): Terminate buffer with '\0'
+ before attempting mkdir().
+
+ * frontend/xcam.c (main): Use gtk_menu_item_new_label () instead
+ of gtk_label_new ()/gtk_menu_item_new ().
+
+ * frontend/preview.c (establish_selection): Invoke
+ param_change_callback only if non-NULL.
+ (preview_update): Convert scale range to inches if that's user's
+ preference.
+
+ * frontend/xcam.c (delayed_switch): New function.
+ (device_activate_callback): Call delayed_switch() rather than
+ executing that code directly. Pete tells me GTK is not designed
+ to have a widget rebuilt while a submenu is active.
+
+ * frontend/gtkglue.c (panel_build): Avoid using notebook widget
+ until GTK+ has been fixed.
+ (idle_handler): New function: rebuild dialog if dialog->rebuild is
+ set.
+ (set_option): Set dialog->rebuild to TRUE and schedule
+ idle_handler() rather than directly calling panel_rebuild(). Pete
+ tells me GTK is not designed to have a widget rebuilt while a
+ submenu is active.
+ (gsg_refresh_dialog): Ditto.
+
+Thu Mar 27 14:54:23 1997 Gordon Matzigkeit <gord@gnu.ai.mit.edu>
+
+ * backend/Makefile.in: Converted all for statements that might be
+ empty to use a temporary list variable.
+
+ * frontend/Makefile.in (scan): Added getopt.o, getopt1.o to scan
+ dependencies.
+
+ * frontend/getopt.c, frontend/getopt1.c, include/getopt.h: Added
+ to the distribution.
+
+ * backend/net.c (connect_dev), frontend/saned.c (main): Don't use
+ TCP_NODELAY if it has not been defined. Look up tcp protocol
+ number if SOL_TCP is not defined.
+
+ * sanei/test_wire.c (main): lseek after changing direction, or the
+ direction change ends up at the end of the output file.
+ Added option parsing, a usage message, and other cleanups.
+
+ * sanei/sanei_codec_ascii.c (sanei_codec_ascii_init),
+ sanei/sanei_codec_bin.c (sanei_codec_bin_init): Initialize the
+ wire if it has a 0-length buffer.
+
+ * sanei/sanei_wire.c (sanei_w_init): Only call the codec_init_func
+ if it is not NULL.
+
+ * sanei/sanei_scsi.c: Parameterize inclusion of generic SCSI
+ headers based on HAVE_SCSI_SG_H, HAVE_SYS_SCSI_H, or
+ HAVE_SYS_SCSIIO_H.
+
+ * configure.in (AC_CHECK_HEADERS): Check for scsi/sg.h,
+ sys/scsi.h, and sys/scsiio.h.
+
+ * sanei/sanei_load_values.c, sanei/sanei_scsi.c, backend/dll.c:
+ Replaced unconditional alloca.h include with the cruft suggested
+ by the Autoconf manual.
+
+ * sanei/alloca.c: Add to distribution.
+
+ * sanei/Makefile.in: Eliminate GNU make dependencies, and use
+ @ALLOCA@ and @LTALLOCA@ as appropriate.
+
+ * configure.in (AM_FUNC_ALLOCA): Use it.
+
+ * aclocal.m4 (AM_FUNC_ALLOCA): Define it.
+
+Wed Mar 26 17:25:49 1997 David Mosberger-Tang <davidm@azstarnet.com>
+
+ * sanei/sanei_wire.c (sanei_w_status): Update *v only when decoding.
+ (sanei_w_bool): Ditto.
+ (sanei_w_constraint_type): Ditto.
+ (sanei_w_value_type): Ditto.
+ (sanei_w_unit): Ditto.
+ (sanei_w_action): Ditto.
+ (sanei_w_frame): Ditto.
+
+ * frontend/xscan.c (quit_xscan): Always invoke gtk_main_quit()
+ (not just in standalone mode).
+ (quit_callback): Correct prototype.
+
+ * backend/pnm.c (sod): Fix doc-string for option "three-pass".
+
+ * frontend/xscan.c (advance): New function.
+ (input_available): Support 1 bpp frames. Call advance() instead
+ of open-coding it. Add RED/GREEN/BLUE frame support in GIMP mode.
+ Complain when encountering unknown depth.
+ (ScanWin): add member first_frame.
+ (scan_start): Initialize first_frame and frame_offset in
+ GIMP mode.
+
+ * Integrate force unidirectional mode patch by Guido Muesch
+ <odiug@faho.rwth-aachen.de>:
+ * backend/qcam.c (attach): Force uni-directional mode if port
+ address starts with `u'.
+ (attach): Add debug statement to print QCam version.
+
+ * Integrate 3-pass patches by Heiko
+ <Heiko.Schroeder@Post.RWTH-Aachen.de>:
+ * backend/mustek.cb
+ (scan_area_and_windows): Use 1/8" mode when MUSTEK_FLAG_USE_EIGHTS
+ is on (instead of pixel unit).
+ (mode_select): Set bit 3 in mode byte only if
+ MUSTEK_FLAG_USE_EIGHTS is off.
+ (encode_resolution): Don't do funky encoding for 3-pass scanners
+ in 10% resolution mode. It seems the docs are wrong and the
+ actual scanners require a much simpler setup.
+
+ * frontend/preview.h: Add include of <sys/types.h>.
+
+Sat Mar 22 16:37:34 1997 David Mosberger-Tang <davidm@azstarnet.com>
+
+ * frontend/xscan.c (input_available): Reset ScanWin.x to zero at
+ the end of each line.
+ (input_available): Reset tile_offset to zero after updating a
+ tile.
+ (scan_done): Call gimp_display_new() to display the newly acquired
+ image. Draw final few lines of image if image height is not a multiple
+ of the tile-height.
+
+ * frontend/saned.c (process_request): quit when receiving
+ unexpected procedure number---ignoring is dangerous.
+
+ * backend/dll.c (load): Fix off-by-one bug in allocation of
+ libname.
+
+ * frontend/xcam.c (prompt_for_device_name): Move grab-default
+ call behind signal_connect since otherwise the default action
+ won't work.
+
+ * frontend/xscan.c (choose_device): Let "Ok" button be the one
+ that gets activated by default (by hitting the Return key).
+
+ * frontend/preview.c (preview_destroy): Rename save_preview_image
+ to preserve_preview_image.
+ * frontend/preview.h: Ditto.
+
+ * frontend/preview.c (restore_preview_image): New function.
+ (preview_destroy): Save preview image if it exists.
+ (preview_scan): New parameter SELECTION_ONLY. If true,
+ preview-scanning is limited to the selected area.
+
+ * frontend/xscan.c (scan_done): Call quit_xscan() to exit.
+ (quit_xscan): Destroy preview if ScanWin.preview is non-NULL.
+
+ * frontend/preview.c (draw_selection): Don't draw if p->gc is
+ NULL (i.e., if windows aren't mapped yet).
+
+ * frontend/xscan.c: Move HAVE_LIBGIMP-specific code further
+ down (past the type & global variable decls).
+
+ * configure.in (CPPFLAGS): Make --disable-shared impy
+ --enable-preload.
+
+ * include/config.h.in: Add HAVE_STRNDUP.
+
+Fri Mar 21 00:01:00 1997 David Mosberger-Tang <davidm@azstarnet.com>
+
+ * sanei/sanei_scsi.c (sanei_scsi_cmd): Implemented FreeBSD
+ version (untested).
+
+ * sanei/sanei_load_values.c: Include <alloca.h>
+
+ * frontend/preview.c (update_selection): New function to set
+ selection based on current scan-area option values.
+ (preview_update): Call update_selection ().
+
+ * sanei/sanei_save_values.c: Add copyright notice.
+ * sanei/sanei_load_values.c: Add copyright notice and explanation
+ of algorithm.
+ (BITS_PER_LONG): New macro.
+ (SET): Ditto.
+ (IS_SET): Ditto.
+ (sanei_load_values): Add variables caused_reload and keep_going to
+ keep track of what options caused a reload_option and whether
+ the whole option-value setting process should be repeated.
+
+ * include/config.h.in: Add #undef HAVE_LIBGIMP.
+ * frontend/xscan.c: Put all GIMP-dependencies inside
+ #ifdef HAVE_LIBGIMP.
+ Include <config.h>.
+
+ * sanei/sanei_wire.c (sanei_w_init): Initialize status to 0.
+ (sanei_w_free): Preserve existing direction and do not flush i/o.
+ (sanei_w_space): Return EINVAL if reading 0 bytes.
+
+Thu Mar 20 09:11:21 1997 David Mosberger-Tang <davidm@azstarnet.com>
+
+ * frontend/gtkglue.h (dev_name): New member.
+ * frontend/gtkglue.c (gsg_destroy_dialog): free dialog->dev_name.
+ (gsg_create_dialog): Keep copy of device name in dev_name member.
+
+ * include/sanei_backend.h: Move stubs into backend/stubs.c and
+ define redirection macros only if STUBS is not defined.
+ * backend/stubs.c: New file.
+
+ * configure.in (AC_PROG_RANLIB): Removed. No longer needed with
+ libtool.
+ * (frontend/Makefile.in): Adapt to libtool.
+ * (backend/Makefile.in): Ditto.
+ * (sanei/Makefile.in): Ditto.
+
+ * backend/mustek.c (attach): Check result[0] == 0x06 to find out
+ whether we're dealing with a scanner (rather than attemting to
+ find the string "SCANNER" ).
+
+ * backend/hp.c (sane_read): Initialize nread with max_len, not
+ *len.
+ (sane_get_parameters): Add missing `== 0' comparison for strcmp()
+ calls.
+ (inquire): Generalize so we can inquire any quantity and improve
+ parsing.
+ (attach): Use reasonable default value if inquiry of a quantity
+ fails.
+ (sane_start): Report error if inquiry of a scan parameter fails.
+
+Wed Mar 19 18:03:38 1997 David Mosberger-Tang <davidm@azstarnet.com>
+
+ * frontend/xcam.c (prompt_for_device_name): grab default for OK
+ button (doesn't seem to work, though).
+
+ * frontend/progress.c (progress_new): Connect progress_cancel()
+ via signal_connect(), not signal_connect_object() and pass P, not
+ P->SHELL.
+ (progress_cancel): Don't free progress structure (must be done by
+ app).
+
+ * frontend/xscan.c (input_available): New function.
+ (scan_done): Ditto.
+ (scan_start): Ditto.
+ (progress_cancel): Simply call sane_cancel().
+ (scan_dialog): Moved most of the code to above functions.
+
+ * frontend/gtkglue.c (get_filename_button_clicked): New function.
+ (gsg_get_filename): Ditto.
+
+ * frontend/xscan.c (scan_dialog): Do not quit xscan when in
+ standalone mode.
+ (scan_dialog): Prompt for output filename in standalone mode.
+ (filename): New variable.
+
+ * backend/pnm.c (sane_control_option): Remove "pnm." prefix
+ in debug messages.
+
+ * backend/qcam.c (sane_cancel): Remove "qcam." prefix in debug
+ messages.
+
+ * backend/mustek.c: Remove "mustek." prefix in debug messages.
+
+Tue Mar 18 17:30:29 1997 David Mosberger-Tang <davidm@azstarnet.com>
+
+ * backend/mustek.c (sane_close): Remove superfluous "[mustek]" in
+ debug string.
+
+ * sanei/sanei_scsi.c (sanei_scsi_cmd): Implement HP-UX version
+ of this function (untested).
+
+ * backend/qcam.c (reader_process): Enable code to handle 4 bpp
+ and 6 bpp cases.
+
+Thu Mar 13 13:15:21 1997 David Mosberger-Tang <davidm@azstarnet.com>
+
+ * doc/sane.tex (subsection{Scan Area Options}): Attempt to
+ clarify the meaning of "top-left" corner.
+
+Tue Mar 11 07:12:53 1997 David Mosberger-Tang <davidm@azstarnet.com>
+
+ * frontend/gtkglue.c (panel_build): Fix typo in matching of
+ "resolution" option (missing == 0).
+
+Mon Mar 10 20:19:06 1997 David Mosberger-Tang <davidm@azstarnet.com>
+
+ * Announced pre0.5 snapshot.
+
+ * backend/qcam.h: Make transfer-scale part of the "mode" group.
+
+ * backend/qcam.c (sane_read): Moved return of SANE_STATUS_EOF
+ behind test for delivering EOF.
+
+ * frontend/xscan.c (device_dialog): Relabel "Cancel" button to
+ "Quit".
+
+ * backend/qcam.c (init_options): Set SANE_CAP_ADVANCED for geometry
+ group.
+ * backend/mustek.c (init_options): Ditto.
+
+ * backend/pnm.c (pass, three_pass): New variables.
+ (sod): Add option "three-pass" to simulate a three-pass scanner.
+ (sane_control_option): Add support for three_pass option.
+ (getparmfromfile): In three-pass mode, set format and last_frame
+ based on `pass'.
+ (sane_start): If input file is open already, fail unless we're
+ scanning the next frame of a three-pass image.
+ (sane_read): Handle three-pass case.
+
+Sun Mar 9 13:20:19 1997 David Mosberger-Tang <davidm@azstarnet.com>
+
+ * frontend/gtkglue.c (text_entry_callback): Only call
+ gtk_entry_set_text() if the backend modified the string. Otherwise,
+ infinite recursion occurs on any change (since the change results
+ in a change...).
+
+ * frontend/xcam.c (next_frame): Reset win.remaining to zero.
+
+ * backend/qcam.c (init_options): Set size of "resolution" option
+ to sizeof("High").
+
+ * doc/sane.tex (subsection{Scan Area Options}): Allow word-list
+ as a constraint.
+
+ * configure.in (CFLAGS): Add -D_GNU_SOURCE to CFLAGS since we
+ now depend on snprintf ().
+
+ * frontend/xscan.c (device_dialog): Fix typo: PixelHeight should
+ be > 0, not == 0 in order for us to create the preview window.
+ (device_dialog): Ditto.
+ (device_dialog): Add ScanWin.preview to frame container.
+
+Sat Mar 8 10:19:41 1997 David Mosberger-Tang <davidm@azstarnet.com>
+
+ * doc/sane.tex (subsection{sane_get_select_fd}): Clarify what
+ must happen when the end of a frame has been reached.
+
+ * frontend/xcam.c (input_available): Stop when sane_read() returns
+ 0 bytes. Fix typo: win.data needs to be set to dst, not src, on
+ exit.
+
+ * backend/qcam.h (read_fd): New member.
+ * backend/qcam.c (sane_get_select_fd): Return read_fd instead of
+ from_child.
+ (sane_open): Initialize s->read_fd to -1.
+ (sane_close): Close s->select_fd if >= 0.
+ (sane_start): Make read_fd dup() of s->from_child.
+ (sane_cancel): Close s->read_fd if >= 0.
+ (sane_set_io_mode): Modify s->read_fd instead of s->from_child.
+
+ * frontend/scan.c: Include <sanei.h> for NELEMS macro.
+ * frontend/xcam.c: Ditto.
+
+ * configure.in (CPPFLAGS): Add defines for V_MAJOR and V_MINOR.
+ (V_MAJOR, V_MINOR): New variables.
+
+ * sanei/Makefile.in (SANEI_OBJS): Mention sanei_net.o.
+
+ * include/sanei_net.h: New file (split from sanei_wire.h).
+ * sanei/sanei_net.c: New file (split from sanei_wire.c).
+
+ * configure.in: Add -Wall to CFLAGS when using gcc.
+
+ * frontend/Makefile.in (saned): List -lsanei before -lsane
+ so saned never depends on sanei_*-routines that may be present
+ in -lsane (the only dependencies for that library must be
+ on sane_* names).
+
+ * backend/Makefile.in (LIBS): Remove -ldl (configure will add
+ it if available).
+ (SHLDFLAGS): Use -usanei_init instead of --whole-archive option.
+ (SHLDPOSTFLAGS): Remove --no-whole-archive.
+
+ * backend/dll.c: Add include of <config.h>.
+ (DYNAMIC): New macro. Defined it dynamic loading support is
+ available and enabled.
+ Include <dlfcn.h> only when DYNAMIC is defined.
+ (load): Make no-op when DYNAMIC is not defined.
+ (sane_exit): Never call dlclose() if DYNAMIC is not defined.
+
+ * include/sanei_scsi.h: Rename from genscsi.h and rename prefix
+ from `genscsi_' to `sanei_scsi_'.
+ * sanei/sanei_scsi.c: Ditto.
+ * backend/mustek.c: Rename `genscsi_' to `sanei_scsi_'.
+
+ * configure.in: Check for availability of -ldl and <dlfcn.h>.
+
+Fri Mar 7 15:21:38 1997 David Mosberger-Tang <davidm@azstarnet.com>
+
+ * sanei/sanei_wire.c: New file.
+ * sanei/sanei_codec_bin.c: Ditto.
+ * sanei/sanei_codec_ascii.c: Ditto.
+
+ * backend/dll.c (sane_exit): Call dlclose() only if handle is
+ non-NULL.
+ (sane_init): Chain together preloaded backends.
+
+ * backend/qcam.c (attach): Make static.
+ (sighandler): Ditto.
+ (qc_getstatus): Ditto.
+ * backend/mustek.c (attach): Ditto.
+
+ * backend/dll.c (op_name): Remove `sane_' prefix.
+
+ * sanei/sanei_init_debug.c (sanei_init_debug): Upcase backend
+ name when building environment variable name.
+
+ * backend/genscsi.c: Make use of sanei_debug.h.
+
+ * backend/mustek.c: Adapt to use sanei_backend.h.
+ * backend/net.c: Ditto.
+ * backend/pnm.c: Ditto.
+ * backend/qcam.c: Ditto.
+
+ * backend/dll.c (sane_exit): Fix typo that resulted in the
+ last backend not being exited.
+
+Thu Mar 6 21:25:27 1997 David Mosberger-Tang <davidm@azstarnet.com>
+
+ * doc/sane.tex (subsection{\code{sane\_init}}): Allow
+ authorization callbacks during sane_start() but not during
+ sane_read().
+
+Tue Mar 4 21:04:16 1997 David Mosberger-Tang <davidm@azstarnet.com>
+
+ * backend/mustek.c (sane_close): Print debug message when trying
+ to close an unknown handle.
+
+Thu Feb 27 18:10:20 1997 David Mosberger-Tang <davidm@azstarnet.com>
+
+ * doc/sane.tex (chapter{Contact Information}\label{chap:contact}):
+ Add `listserv.' to mailing list address---seems to be needed for
+ subscriptions etc.
+
+Sun Feb 9 12:54:20 1997 David Mosberger-Tang <davidm@azstarnet.com>
+
+ * backend/mustek.README: Add pointer to Ingmar's 53c400 patch.
+
+Sat Feb 8 11:49:24 1997 David Mosberger-Tang <davidm@azstarnet.com>
+
+ * backend/mustek.c (line_distance): Add more debug output.
+
+Fri Feb 7 19:21:36 1997 David Mosberger-Tang <davidm@azstarnet.com>
+
+ * backend/mustek.c (line_distance): Remove erroneous #ifdef
+ around FACTOR and COLOR.
+
+ * doc/sane.tex (subsection{sane_init}): Make username/password
+ fixed length arrays so no malloc/free magic is needed.
+ (subsection{Preview Mode Option}): New section.
+
+ * include/sane.h: Ditto.
+
+ * include/sane.h (SANE_Char): New type.
+
+Tue Feb 4 18:47:52 1997 David Mosberger-Tang <davidm@azstarnet.com>
+
+ * backend/mustek.c (sane_get_parameters): Correct typo: replace
+ s->pass with s->params.format.
+
+Fri Jan 31 16:16:26 1997 David Mosberger-Tang <davidm@azstarnet.com>
+
+ * backend/mustek.c (attach): Print debug message when using
+ special line-distance algorithm.
+ Enable special line-distance algorithm only for firmware
+ revisions < 1.02.
+ Determine fw revision based on INQUIRY result.
+
+Thu Jan 30 21:22:38 1997 David Mosberger-Tang <davidm@azstarnet.com>
+
+ * doc/sane.tex (section{Attaching to a SANE backend}): Rename
+ metanet -> net, netproxy -> saned, metadl -> dll and update
+ hierarchy figure as well. Added autolum meta backend as a
+ filter example.
+
+ * TODO: Rename metanet -> net, metadl -> dll.
+
+ * AUTHORS (Frontends): Rename metanet -> net, metadl -> dll,
+ mention saned and xcam and sort entries alphabetically.
+
+ * backend/net.c (sane_control_option): Replace all occurances of
+ metanet with net.
+ * backend/net.README: Ditto.
+ Rename env var METANETHOST to SANE_NET_HOST.
+
+ * backend/dll.README: Replace all occurances of metadl with dll.
+ * backend/dll.c: Ditto.
+
+ * backend/dll.conf: Comment out metanet since it's a bit of a
+ security risk (no authentication just yet).
+
+ * backend/Makefile.in (CONFIGS): New macro (list of config files)
+ (install): Change install rule so existing configuration files
+ are not overwritten.
+ Replace all occurances of metanet with net.
+
+ (V_MINOR): Bump up to 43.
+
+Tue Jan 28 08:17:18 1997 David Mosberger-Tang <davidm@azstarnet.com>
+
+ * frontend/Makefile (saned): Mention -lsanei before -lsane so
+ saned does not incorrectly depend on sanei_printf/sanei_scanf in
+ -lsane (if it happens to define those symbols).
+
+ * backend/metanet.c (sane_init): Rename SANE_Authorization_Callback
+ to SANE_Auth_Callback.
+ * backend/mustek.c (sane_init): Ditto.
+ * backend/pnm.c (sane_init): Ditto.
+ * backend/metadl.c (sane_init): Ditto.
+
+ * frontend/saned.c (main): Put output socket in TCP_NODELAY mode.
+ Include of <sys/socket.h>
+
+ * backend/metanet.c (openit): Ditto.
+
+Mon Jan 27 19:32:29 1997 David Mosberger-Tang <davidm@azstarnet.com>
+
+
+ * doc/sane.tex (subsection{Device Descriptor Type}): Change vendor
+ name "None" to "Noname".
+ * backend/pnm.c (dev): Change vendor name from "noname" to "Noname".
+
+ * include/sane.h (SANE_STATUS_ACCESS_DENIED): New status value.
+ * sanei/sane_strstatus.c (sane_strstatus): Return appropriate
+ status string.
+
+ * frontend/xscan.c (scan_dialog): Don't depend on first_frame
+ when creating image---the old code didn't work for R/G/B-only
+ frames anyhow, so there is no point pretending.
+
+ * include/sane.h (SANE_Parameters): Rename first_frame to
+ last_frame.
+ * backend/metanet.c (sane_get_parameters): Update accordingly.
+ * backend/qcam.c (sane_get_parameters): Ditto.
+ * frontend/saned.c (readcmd): Ditto.
+ * frontend/test.c (testsane): Ditto.
+ * backend/mustek.c (sane_get_parameters): Set last_frame unless
+ the current pass is acquiring a red- or green-only frame.
+
+ * doc/sane.tex (subsection{sane_get_parameters)): Change
+ FIRST_FRAME into LAST_FRAME.
+
+ * backend/metanet.c: Initialize PEER with -1.
+ (sane_get_select_fd): Return PEER and succeed if not negative.
+
+ * include/netsane.h (ns_printf, ns_scanf, netfd_wr, netfd_rd):
+ Remove (obsolete).
+
+ * frontend/saned.c: Increase STRBUF size to 32KB to get better
+ scan_read() throughput.
+
+ * include/sane.h (SANE_Athorization_Callback): Return void
+ (instead of int) and make USERNAME and PASSWORD (pointers to)
+ return values.
+
+ * frontend/saned.c (netsane_auth_callback): Update prototype.
+
+ * backend/metanet.c (sane_init): Move assignments out of
+ if-conditional for clarity (and to avoid gcc warning).
+
+ * sanei/sanei_printf.c: Include <memory.h>, <string.h>.
+
+ * backend/Makefile.in (libsane-mustek.a): Replace
+ ../sanei/sane_strstatus.o with appropriately defined EXTRA
+ macro.
+
+ * backend/mustek.c (attach): Initialize ld.mode to MLD_NORMAL for
+ all scanners but MFS-12000SP.
+ (line_distance): In MD_MFS correction mode, do not issue LD
+ command.
+ (sane_close): Free s->ld.red_buf if non-NULL.
+ (fix_line_distance_mfs): New function.
+ (fix_line_distance_normal): Rename from fix_line_distance().
+ (reader_process): In MLD_MFS line-distance mode, call the
+ mfs-specific routine, not the normal one.
+
+ * backend/mustek.h (Mustek_Scanner): New members ld.red_buf,
+ ld.green_buf.
+ (MUSTEK_FLAG_LD_MFS): New flag to indicate when MFS-specific
+ line-distance correction is needed.
+
+ * backend/metanet.c: Fix up some minor formatting problems due
+ to indent.
+
+ * Merge in Andy's netsane diffs.
+
+Sun Jan 26 00:04:22 1997 David Mosberger-Tang <davidm@azstarnet.com>
+
+ * frontend/xscan.c (zoom_in_preview): Ignore selections of zero
+ or negative width/height.
+ (set_max_selection): Use SANE_UNFIX() instead of open coding.
+ Adapted to use gtkglue.
+
+ * backend/metadl.c (sane_init): Grab authorization callback.
+ (authorization_callback): New variable.
+ (load): Pass authorization callback to init function.
+
+ * frontend/gtkglue.h (gsg_destroy_dialog): Add param_callback.
+
+Sat Jan 25 17:35:52 1997 David Mosberger-Tang <davidm@azstarnet.com>
+
+ * frontend/Makefile.in (distclean): Mention $(TESTPROGRAMS).
+
+ * backend/metanet.c (copy_opt): Fix constraint-length computation.
+
+ * backend/metadl.c (sane_get_devices): Pass along LOCA_ONLY arg
+ to backend.
+
+ * frontend/xcam.c (main): Remove extraneous calls to gtk_exit()
+ and sane_exit().
+
+ * frontend/scan.c (main): Install sane_exit() as atexit handler.
+
+ * backend/metadl.c (sane_get_devices): Ignore NULL BE_LIST.
+
+ * frontend/saned.c (quit): New function.
+ (main): catch SIGALRM, and SIGPIPE.
+
+ * backend/metanet.c (sane_get_devices): Return empty list of
+ LOCAL_ONLY is TRUE.
+
+ * frontend/saned.c (readcmd): Don't take LOCAL arg from
+ request---always pass SANE_TRUE!
+
+ * doc/netprotocol.doc (sane_get_devices): Don't need LOCAL arg.
+
+ * include/sanei.h: Include <sane.h>.
+
+ * frontend/test.c (testsane): Print status message instead of
+ status code and make robust against failed calls. Use fprintf(stderr
+ instead of printf.
+
+ * backend/qcam.c (reader_process): Remove extraneous arg.
+ (reader_process): Declare `static' to make setjmp() safe.
+
+ * frontend/saned.c (readcmd): Delete unused variable schr_hlp.
+ (peerfp): New variable.
+ Rename ns_printf() to sanei_printf() and pass peerfp arg.
+ Rename ns_scanf() to sanei_scanf() and pass peerfp arg.
+ (say_helo): Make peerfp refer to fd 0.
+
+ * backend/metanet.c (openit): Return FILE*, not socket.
+ (openit): Return 0, not -1 in case of failure.
+ (peerfp): New variable.
+ Rename ns_printf() to sanei_printf() and pass peerfp arg.
+ Rename ns_scanf() to sanei_scanf() and pass peerfp arg.
+
+ * sanei/sane_strstatus.c: New file (in lieu of backend/sane.c)
+ * sanei/sanei_constrain_value.c: Ditto.
+ * sanei/sanei_init_debug.c: Ditto.
+
+ * sanei/sanei_scanf.c (ns_scanf): New file (based on Andy's
+ ns_scanf).
+ Use int8_t for 'c', int32_t for 'd'.
+ Include <sys/types.h>.
+
+ * sanei/sanei_printf.c (sanei_printf): New file (based on Andy's
+ ns_printf).
+ Use int8_t for 'c', int32_t for 'd'.
+ Include <sys/types.h>.
+
+ * include/netsane.h (CMD_SANE_STRS): Remove.
+
+ * backend/metanet.c: Include <errno.h>
+ (sane_strstatus): Remove.
+
+ * backend/Makefile.in (BACKENDS): Mention libsane-metanet.
+
+ * backend/metanet.c (openit): Use memcpy instead of bcopy. Use
+ inet_aton() instead of inet_addr(), don't prototype.
+ (sane_get_devices): Use strdup() instead of opencoding it.
+ (sane_get_devices): Don't append " (NS)" to modelname! Metanet
+ already prefixes the devicename with netsane, which is good
+ enough.
+
+ * backend/sanei.h (IF_DBG): New macro.
+
+ * PROJECTS (Backend): Mention saned, metanet, and autoadj.
+ (Frontend): New info.
+
+ * AUTHORS: Update to reflect sanescan -> xscan namechange.
+ Credit Andy for netsane.
+
+Fri Jan 24 00:01:45 1997 David Mosberger-Tang <davidm@azstarnet.com>
+
+ * doc/sane.tex (subsection{\code{sane\_get\_option\_descriptor}}):
+ Define how long the returned option descriptor must remain valid.
+
+ * frontend/gtkglue.c (autobutton_update): Check for
+ SANE_INFO_RELOAD_OPTIONS.
+ (button_update): Ditto.
+
+ * frontend/xcam.c (main): Add device info label.
+
+ * backend/mustek.c (init_options): Make OPT_BRIGHTNESS and
+ OPT_CONTRAST inactive by default.
+
+ * frontend/xcam.c (exit_callback): Only call gsg_destroy_dialog()
+ if dialog is non-null.
+
+Thu Jan 23 00:17:46 1997 David Mosberger-Tang <davidm@azstarnet.com>
+
+ * backend/mustek.c (sane_control_option): Return
+ SANE_STATUS_DEVICE_BUSY when attempting to set option during
+ scanning.
+ (sane_close): Call do_cancel(), not sane_cancel().
+ (sane_start): Ditto.
+
+ * backend/pnm.c (sod): Rename "File" group to "Source Selection".
+
+ * frontend/xcam.c (device_name_dialog_cancel): New function.
+ (device_name_dialog_ok): Ditto.
+ (prompt_for_device_name): Ditto.
+ (build_device_menu): Move "Rescan devices..." from build_files_menu()
+ to here. Add "Specify device name..." entry that invokes
+ prompt_for_device_name.
+ (play_stop_button): Ignore call if there is no device_dialog yet.
+ (main): Don't attempt to set preview size if there is no device
+ dialog yet.
+
+ * frontend/gtkglue.c (text_entry_callback): Don't ignore tab
+ key---it's used to switch focus!
+
+ * backend/qcam.c (qc_wait): Return read value so optimizer won't
+ be able to get rid of it easily.
+ (qc_lock_wait): Use same lockname as qcam-0.7d for
+ interoperability.
+ (reader_process): Explicitly do an enable_ports() in the reader
+ process. Linux/x86 doesn't inherit i/o port access rights.
+
+ * frontend/xcam.c (stop_camera): New function.
+ (input_available): Use stop_camera().
+ (next_frame): Ditto.
+
+ * backend/genscsi.c (genscsi_open): Add missing DBG_INIT(GENSCSI).
+ (genscsi_cmd): Return SANE_STATUS_DEVICE_BUSY if EBUSY is
+ returned.
+
+ * frontend/xcam.c (input_available): Fix line wrap for
+ SANE_FRAME_GRAY.
+
+ * include/sane.h: Remove old SANE_STATUS_AGAIN.
+ * backend/sane.c (sane_strstatus): Ditto.
+ * backend/mustek.c (sane_read): Return SANE_STATUS_GOOD, not AGAIN
+ when no data available.
+ (sane_start): Add debug printing.
+ (sane_set_io_mode): Fix typo: return SANE_STATUS_GOOD on success.
+
+ * backend/mustek.c (sane_control_option): Add support for
+ OPT_BACKTRACK.
+ (attach): Add lots of debug printing.
+
+ * backend/qcam.README: New file.
+
+ * backend/qcam.c (sane_control_option): Allow changing resolution
+ while scan is in progress, but set RELOAD_OPTIONS only if not
+ scanning already.
+
+ * frontend/xcam.c (canvas_events): Get rid of old debug messages.
+
+ * backend/qcam.c (sane_get_parameters): Update parameters only if
+ not scanning. This makes it possible to change certain options
+ (such as width/height while a scan is in progress).
+ (sane_control_option): Allow changing of image corners,
+ transfer-scale, and depth while scan is in progress. Set
+ RELOAD_PARAMS only if scan is not in progress.
+ (sane_start): Return DEVICE_BUSY if scan is in progress.
+
+ * configure.in (PACKAGE_VERSION): Version 0.41 released.
+
+ * backend/qcam.c (brightness_range): New variable.
+ (init_options): Use brightness_range instead of u8_range to
+ avoid going into bulb-mode accidentally.
+
+Wed Jan 22 09:16:21 1997 David Mosberger-Tang <davidm@azstarnet.com>
+
+ * backend/qcam.c (reader_process): Correct typo: it's buf, not
+ buffer that we want to write out in high-res mode.
+ (qc_reset): New function.
+ (reader_process): Send at least one byte of data after receiving a
+ signal.
+ (sighandler): New function.
+ (sane_cancel): If a read request is outstanding, cancel request by
+ (a) sending SIGINT to reader process, (b) reading one byte of data
+ in blocking mode, and then (c) reading whatever is left in the
+ pipe in non-blocking mode.
+ (sane_read): Return SANE_STATUS_CANCELLED if SCANNING is not set.
+
+ * backend/qcam.h (QC_Scanner): Remove unused x/y fields.
+
+ * backend/qcam.c (sane_close): Call disable_ports().
+ (sane_init): Replace isblank() with isspace() (former is a GNU
+ extension).
+ (sane_control_option): Scale corner coordinates when switching
+ resolution and ensure they're always legal values.
+ (sane_close): Check for reader_pid >= 0 not != 0!
+ (sane_exit): Move disable_ports () from sane_close to here.
+ (sane_start): Keep track of when we're holding lock.
+ (sane_read): Release lock if s->holding_lock is TRUE and we
+ read a few bytes.
+ (sane_cancel): Release lock if it's being held.
+
+ * backend/qcam.c: Clean up unused variables.
+
+Tue Jan 21 13:49:00 1997 David Mosberger-Tang <davidm@azstarnet.com>
+
+ * backend/qcam.c (sane_control_option): Keep track of changes to
+ option values.
+ (sane_get_select_fd): Implemented.
+ (sane_set_io_mode): Ditto.
+ (reader_process): New function.
+ (sane_start): Modify to use reader_process().
+
+ * backend/qcam.h: (struct QC_Scanner): New field value_changed.
+
+Mon Jan 20 22:11:11 1997 David Mosberger-Tang <davidm@azstarnet.com>
+
+ * backend/metadl.c (sane_open): Correctly handle case where
+ backend name is empty.
+
+Sun Jan 19 10:29:43 1997 David Mosberger-Tang <davidm@azstarnet.com>
+
+ * backend/qcam.c (attach): Add qc_wait() calls after each
+ write_lpcontrol() call to ensure reliable communication.
+ (attach): Add debug output in case of failure.
+
+ * Version 0.4 released.
+
+Sat Jan 18 10:12:40 1997 David Mosberger-Tang <davidm@azstarnet.com>
+
+ * frontend/xscan.c (get_scan_size): Handle case where scan
+ width/height is of type SANE_TYPE_INT.
+ (get_scan_size): If width/height unit is pixels and the height is
+ less than 500 pixels, use a ratio of 1.
+ (device_dialog): Call update_complete_dialog() to ensure inactive
+ options do not show (there probably is a better solution to this).
+
+ * frontend/scan.c (main): Compute bottom-right position as
+ top-left + width/height - 1 (the - 1 is new and necessary and
+ works both for fixed and integer values).
+ (print_option): Insert line-break when column >= 79 (not 80) to
+ leave last column blank (better when running inside Emacs, for
+ example).
+ (main): Fix typos: case 't': window[2] -> window[3], switch short
+ option names for top/left.
+ (print_option): Print current option values (except for vectors).
+ (fetch_options): Another off by one bug: width is br_x|y-tl_x|y+1.
+
+Thu Jan 16 20:26:29 1997 David Mosberger-Tang <davidm@azstarnet.com>
+
+ * backend/sane.c (sanei_constrain_value): Fix so it properly
+ handles strings that are longer than any of the strings in a
+ string list.
+
+ * frontend/scan.c (main): Subtract value of top-left-x/top-left-y
+ from width/height, respectively after all options have been
+ read in.
+ (main): Print help message _after_ options have been processed.
+ (fetch_options): New function.
+ (set_option): Call fetch_options() if SANE_INFO_RELOAD_OPTIONS is
+ set.
+ (main): Call fetch_options() instead of open-coding same.
+
+ * doc/sane.tex (subsection{Device Descriptor Type}): Add index
+ entry for device-name.
+
+Wed Jan 15 19:55:03 1997 David Mosberger-Tang <davidm@azstarnet.com>
+
+ * backend/metadl.c (sane_init): Call DBG_INIT() and declare
+ debug level variable with DBG_DECL. Added various debug
+ statements.
+
+ * backend/pnm.c (sane_init): Ditto.
+ * backend/mustek.c (sane_init): Ditto.
+
+ * frontend/scan.c (parse_scalar): Default to mm again (instead of
+ cm). Using `mm' as the default is counter-intuitive since the
+ help info is printed with `mm' as the unit.
+
+ * frontend/xscan.c (main): Pass local_only==SANE_FALSE as second
+ argument to sane_get_devices().
+
+Sun Jan 12 13:12:45 1997 David Mosberger-Tang <davidm@azstarnet.com>
+
+ * backend/sane.c (sanei_constrain_value): For string-lists, ignore
+ case and allow prefixes as long as they remain unique.
+
+ * frontend/scan.c (print_option): Print "auto" as a legal option
+ value if the option has capability SANE_CAP_AUTOMATIC set.
+ (process_backend_option): If option has SANE_CAP_AUTOMATIC set,
+ let option value of "auto" turn on automatic mode.
+
+Wed Jan 8 19:55:31 1997 David Mosberger-Tang <davidm@azstarnet.com>
+
+ * backend/Makefile.in (install): Modify install rule so that
+ $(libdir) gets added to /etc/ld.so.conf if it isn't there
+ already.
+ (COMPILE): Use $(SHCFLAGS) instead of $(CFLAGS).
+ (LINK): Remove (unused).
+
+Wed Dec 25 20:21:39 1996 David Mosberger-Tang <davidm@azstarnet.com>
+
+ * backend/mustek.README: Add section "SCSI Adapter Tips".
+
+Fri Dec 13 20:02:03 1996 David Mosberger-Tang <davidm@azstarnet.com>
+
+ * backend/mustek.c (line_distance): Rename
+ LINE_DISTANCE_WORKAROUND to NEED_MUSTEK_LINE_DISTANCE_WORKAROUND.
+ Include <config.h>.
+
+Thu Dec 12 20:19:26 1996 David Mosberger-Tang <davidm@azstarnet.com>
+
+ * backend/mustek.h (next): New member. Forms linked list of open
+ handles. * backend/mustek.c (first_handle): New variable. Root
+ of list of open handles.
+ (sane_open): Insert handle into list of open handles.
+ (sane_close): Remove handle from list of open handles.
+
+Wed Dec 4 18:37:45 1996 David Mosberger-Tang <davidm@azstarnet.com>
+
+ * backend/mustek.c (attach): Added back MFS-12000SP, MFS-08000SP,
+ and MFS-06000SP. At least the first one really does exist. I
+ don't know how the differ from the other scanners, but it looks as
+ if line-distance correction might be different.
+
+Tue Dec 3 21:22:54 1996 David Mosberger-Tang <davidm@azstarnet.com>
+
+ * backend/sane.c (sane_strstatus): Remove trailing dot from error
+ message.
+
+Mon Dec 2 19:12:53 1996 David Mosberger-Tang <davidm@azstarnet.com>
+
+ * backend/mustek.c (max_string_size): New function to determine
+ maximum size of a string constraint list.
+ (init_options): Use max_string_size () to initialize size of
+ string-valued options.
+
+Sun Dec 1 15:44:53 1996 David Mosberger-Tang <davidm@azstarnet.com>
+
+ * Version 0.1 released.
+
+ * backend/mustek.c (attach): Fix mispelled/bad model names:
+ MFS-12000SP -> MSF-12000SP
+ MFS-08000SP -> MSF-08000SP
+ MFS-06000SP -> MSF-06000SP
+ MFS-08000CZ -> <removed>
+ MFS-06000CZ -> <removed>
+
+Tue Nov 26 19:11:18 1996 David Mosberger-Tang <davidm@azstarnet.com>
+
+ * frontend/scan.c (print_option): Separate option name from option
+ values by blank, not equal so the syntax is correct even for short
+ options.
+ (parse_scalar): Added missing newline to error message.
+
+Sat Nov 16 17:26:19 1996 David Mosberger-Tang <davidm@azstarnet.com>
+
+ * frontend/scan.c (main): Created (by Andy).
+
+ * backend/pnm.c: Adapted from Andy's pnm.c (just minor updates).
+
+ * backend/mustek.c: Created.
+ * backend/metadl.c: Ditto.