11998-11-21  David Mosberger-Tang  <David.Mosberger@acm.org>
2
3	* Version 1.0 released
4
5	* From Brian J. Murrell:
6
7	* backend/dll.conf: Mention dc210.
8
9	* backend/cderror.h: New file.
10	* backend/jinclude.h: Ditto.
11	* backend/djpeg.c: Ditto.
12	* backend/dc210.desc: Ditto.
13	* backend/dc210.h: Ditto.
14	* backend/dc210.c: Ditto.
15	* backend/cdjpeg.h: Ditto.
16
17	* doc/Makefile.in (SECT5): Mention sane-abaton.5.
18	* doc/sane-abaton.man: New file.
19	* backend/abaton.c: Ditto.
20	(wait_ready): Explicitly cost tv_sec member to (long) in order
21	to print it (avoids warning on platforms where tv_sec is not a long).
22
23	* backend/abaton.h: Ditto.
24	* backend/abaton.conf: Ditto.
25	* backend/abaton.desc: Ditto.
26	* backend/dll.conf: Mention abaton.
27
28	* Apollo/DomainOS fixes by Paul Walker:
29	* sanei/sanei_DomainOS.h: Add this missing file.
30	* sanei/sanei_config2.c: Include <sane/config.h> to get
31	u_char defined if necessary.
32	* sanei/sanei_DomainOS.c (upper_string): Delete.
33	(do_help): Ditto.
34	* include/sane/config.h.in: Add #undef HAVE_SYS_TIME_H.
35
36	* lib/usleep.c [HAVE_SYS_TIME_H]: Include <sys/time.h> only if
37	we have it.
38
39	* configure.in (CPPFLAGS): Check for sys/time.h.
40
41	* frontend/gtkglue.c: Move include of <sys/types.h> in front
42	of include of <sys/stat.h>.
43
44	* config.sub: Apply patch to recognize -sys5.3.
45
46	* backend/microtek.c: Applied Matto's latest patch to upgrade
47	backend from v0.9 to v0.10.
48
491998-11-04  David Mosberger-Tang  <David.Mosberger@acm.org>
50
51	* backend/microtek2.desc: Mention ScanMaker X6 and Phantom 636.
52
53	* backend/microtek2.c (check_inquiry): Mention Phantom 636 in
54	model string.
55
561998-11-03  David Mosberger-Tang  <David.Mosberger@acm.org>
57
58	* backend/microtek2.c (check_inquiry): Added patch by Sebastian
59	Erdmann <serdmann@cs.tu-berlin.de> to recognize ScanMaker X6.
60
611998-11-02  David Mosberger-Tang  <David.Mosberger@acm.org>
62
63	* backend/artec.c: Print size_t as recommended in backend/GUIDE.
64
651998-11-02  Chris Pinkham <cpinkham@infi.net>
66
67	* backend/artec.c: changes to correct bugs when using AT12.
68	(sense_handler): New function (by Dick Bruijn).
69	(wait_ready): Ditto (by Dick Bruijn).
70	(abort_scan): Ditto (by Dick Bruijn).
71	Support added to read capability data from scanner if the model.
72	Supports this command (by Dick Bruijn).
73	Added call to sanei_scsi_close() if detected scanner is not
74	a Artec/Ultima model (by Francois Ouellet).
75	Added Negative option.  Added Halftone Pattern option.
76	Added Filter Type option for mono scans.
77	Added Quality Calibration option.
78	Moved test_unit_ready command till AFTER we check for ULTIMA scanner.
79
801998-11-02  David Mosberger-Tang  <David.Mosberger@acm.org>
81
82	* config.guess: Upgrade to libtool v1.2.
83	* config.sub: Ditto.
84	* ltconfig: Ditto.
85	* ltmain.sh: Ditto.
86
871998-10-29  David Mosberger-Tang  <David.Mosberger@acm.org>
88
89	* backend/mustek.c (encode_resolution): If MUSTEK_FLAG_DOUBLE_RES
90	is set, use resolution encoding reported by
91	<Heiko_Schroeder@t-online.de>
92	(attach): Set MUSTEK_FLAG_DOUBLE_RES for MSF-06000CZ.  Do other
93	models need this, too?
94	(calibration): Declare NUM as size_t, not int.  #ifdef out this
95	unused routine.
96	(reader_process): Print size_t values as %lu with explicit cast
97	to u_long.
98
99	* backend/mustek.h (MUSTEK_FLAG_DOUBLE_RES): New flag.
100
101	* backend/mustek.c (init_options): Initialize resolution with 18
102	dpi, not 100dpi so that "scanimage" without options gives a
103	preview-quality image that doesn't take much space or time.
104
105	* backend/mustek.c: Updated with Andreas Bolsch's version (adds
106	support for SE models).
107	* backend/mustek.h: Ditto.
108	* backend/mustek.spec: Ditto.
109
110	* backend/pnm.c (sane_read): Replace C++ comment with C comment.
111
112	* backend/microtek2.c: Updated with Bernd's v0.5.
113	* backend/microtek2.h: Ditto.
114	* backend/microtek2.conf: Ditto.
115
116	* backend/umax.c: Updated with Oliver's latest version.
117	* backend/umax.h: Ditto.
118	* backend/umax-scsidef.h: Ditto.
119	* backend/umax-scanner.h: Ditto.
120	* backend/umax-uc630.h: Ditto.
121	* backend/umax-uc840.h: Ditto.
122	* backend/umax-ug630.h: Ditto.
123	* backend/umax-ug80.h: Ditto.
124	* backend/umax-uc1200s.h: Ditto.
125	* backend/umax-uc1200se.h: Ditto.
126	* backend/umax-uc1260.h: Ditto.
127	* backend/umax.conf: Ditto.
128	* include/sane/saneopts.h: Ditto.
129	* doc/sane-umax-doc.html: Ditto.
130	* doc/sane-umax-doc.tex: Ditto.
131	* doc/sane-umax.man: Ditto.
132
1331998-10-28  David Mosberger-Tang  <David.Mosberger@acm.org>
134
135	* doc/sane.tex (subsection{sane_control_option}): Clarify that
136	parameter "v" is ignored for SET_AUTO calls.
137
138	* frontend/saned.c (init): Initialize w->version.
139
140	* backend/net.c (connect_dev): Accept version code 2 and
141	set peer's version code in dev->wire.version.
142
143	* include/sane/sanei_wire.h: New member "version".
144
145	* sanei/sanei_net.c (sanei_w_control_option_req): Encode
146	option value only if peer_version is < 3 or if action is
147	not SANE_ACTION_SET_AUTO.
148
149	* include/sane/sanei_net.h (SANEI_NET_PROTOCOL_VERSION): Up
150	protocol version to version 3.
151
152	* sanei/sanei_net.c (sanei_w_control_option_req): Transcode
153	value_type, value_size, and value only if req->action !=
154	SANE_ACTION_SET_AUTO.  Reported by Petter Reinholdtsen.
155
156	Patches by Petter Reinholdtsen <pere@hungry.com>:
157
158	* backend/dmc.c (attach_one): Don't use C++-style comments.
159
160	* backend/dc25.h (DEFAULT_TTY_BAUD): New macro.  Move SPEEDS macro
161	to dc25.c.
162
163	* backend/dc25.c: Initialize tty_baud to DEFAULT_TTY_BAUD.  Use
164	B57600 and B115200 only if defined.
165
166	* doc/saned.man: Mention that hostname matching no longer is case
167	significant.
168
169	* configure.in
170	(lib/Makefile.in,lib/strcasecmp.c,frontend/saned.c): Use
171	strcasecmp() instead of strcmp to compare DNS hostnames.  Case is
172	irrelevant when using DNS.
173
174	* backend/dll.c: Add support for HP-UX 10.xx style shared
175	libs.
176
177	* configure.in include/sane/config.h.in backends/dll.c:
178	Use dhl_load() family for DLL support on HP/UX.
179
180	* backend/snapscan.c (sane_snapscan_open): Don't cast lvalue
181	(illegal according to ANSI C, I think).
182
183	* backend/apple.c (init_options): Add explicit "break" after
184	"default:" to make HP-UX compiler happy (?).
185	(sane_read): Make stuff after #endif a comment.
186
187	* backend/agfafocus.c: New file (by Karl Anders Oygard
188	<karlo@opera.no>).
189	* backend/agfafocus.h: Ditto.
190	* doc/sane-agfafocus.man: Ditto.
191
192	* doc/sane-net.man: Fix typo: network service is called "sane",
193	not "saned" (by Andreas Dilger <adilger@enel.ucalgary.ca>).
194
195	* backend/hp-scl.c (sanei_hp_scsi_pipeout): Use SIGPWR only if its
196	defined (by Peter Kirchgessner).
197
198	* frontend/Makefile.in (INCLUDES): Mention @GTK_CFLAGS@ as part of
199	INCLUDES macro instead of CFLAGS.  Despite its name, @GTK_CFLAGS@
200	is guaranteed to contain CPP include directives only.  (Reported
201	by Kevin Dalley <kevind@rahul.net>.)
202
2031998-10-27  David Mosberger-Tang  <David.Mosberger@acm.org>
204
205	* sanei/sanei_scsi.c (sanei_scsi_open): Return
206	SANE_STATUS_ACCESS_DENIED if open() fails with errno==EACCES.
207
208	* backend/ricoh-scsi.c: #ifdef out unused code and print values of
209	type size_t as prescribed in the file backend/GUIDE.
210
211	* backend/dll.conf: Mention Ricoh backend.
212
213	* backend/ricoh.c: New file (by Ricoh Dillema).
214	* backend/ricoh.h: Ditto..
215	* backend/ricoh-scsi.c: Ditto..
216
217	* backend/microtek.c: Apply Aug 7 patch by Matto Marjanovic.
218
219	* backend/dc25.c: Apply patch by Peter Fales (v1.1).
220	* backend/dc25.desc: Ditto.
221	* doc/sane-dc25.man: Ditto.
222
223	* backend/pnm.c: Applied patch by Goran Thyni <goran@bildbasen.se>
224	that allows scanning parts of a PNM image.
225
226	* backend/GUIDE: Add Matto's comment on .desc files.
227
228	* backend/hp.c: New file from Peter Kirch (formerly known as xhp).
229	* backend/hp.h: Ditto.
230	* backend/hp-accessor.h: Ditto.
231	* backend/hp-device.h: Ditto.
232	* backend/hp-handle.h: Ditto.
233	* backend/hp-option.h: Ditto.
234	* backend/hp-scl.h: Ditto.
235	* backend/hp-scsi.h: Ditto.
236	* backend/hp-accessor.c: Ditto.
237	* backend/hp-device.c: Ditto.
238	* backend/hp-handle.c: Ditto.
239	* backend/hp-hpmem.c: Ditto.
240	* backend/hp-option.c: Ditto.
241	* backend/hp-scl.c: Ditto.
242	* backend/Makefile.in (libsane-hp.la): Make libsane-hp.la
243	dependent upon hp-accessor.lo, hp-device.lo, hp-handle.lo,
244	hp-hpmem.lo, hp-option.lo, and hp-scl.lo.
245
2461998-10-22  David Mosberger-Tang  <David.Mosberger@acm.org>
247
248	* doc/sane-hp.man (Model): Mention HP6200 as per report by Tom
249	Martone <tommartone@erols.com>.
250
2511998-07-30  David Mosberger-Tang  <David.Mosberger@acm.org>
252
253	* include/sane/config.h.in: Apply Cory Kempf's
254	<ckempf@enigami.com> FreeBSD CAM support patch.
255	* sanei/sanei_scsi.c: Ditto.
256	* tools/find-scanner.c: Ditto.
257	* configure.in: Ditto.
258
2591998-07-27  David Mosberger-Tang  <David.Mosberger@acm.org>
260
261	* Version 0.74 released.
262
263	* configure.in (CPPFLAGS): Save old CPPFLAGS in saved_CPPFLAGS and
264	then set CPPFLAGS (not saved_CPPFLAGS!) to include GTK_CFLAGS.
265	This should get GIMP detected again.
266
267	* frontend/xscanimage.c (init): Add missing newline.
268
269	* backend/net.c (sane_init): Look for service "sane", not "saned".
270
271	* configure.in (V_MINOR): Make it 74.
272
273	* tools/sane-desc.el: Hack a bit so sane-backends.html can be
274	generated some place other than the working directory
275	(which may not be writable).
276
277	* tools/sane-desc.el: New file by Matto.
278
279	* doc/Makefile.in (sane-backends-html): New rule to generate
280	sane-backends.html.
281
282	* backend/apple.desc: List sane-apple man page.
283
284	* backend/umax.c: Updated with Oliver's latest version (with Irix
285	4MB workaround).
286
287	* backend/microtek.c: Updated with Matto's v0.9.
288	* backend/microtek.h: Ditto.
289	* backend/microtek.conf: Ditto.
290	* backend/microtek.desc: Ditto.
291	* doc/sane-microtek.man: Ditto.
292
293	* backend/apple.h: Updated with Milon's v0.3.
294	* backend/apple.c: Ditto.
295
296	* doc/sane-apple.man: New file (contributed by Milon Firirkis).
297
2981998-07-23  David Mosberger-Tang  <David.Mosberger@acm.org>
299
300	* backend/canon-scsi.c (reserve_unit): Don't compile unused
301	reserve_unit().
302
303	* sanei/sanei_scsi.c: Apply Yuri's patch to add
304	sanei_scsi_find_devices() support to OS/2.
305
306	* sanei/sanei_pio.c: Include <sane/sanei_backend.h> instead of
307	just <sanei/sanei_debug.h> so we pick up #define's for inb and
308	out.
309
310	* include/sane/config.h.in: Mention HAVE_OS2_H and
311	HAVE_SYS_TYPES_H.
312
313	* configure.in (AC_CHECK_HEADERS): Mention sys/hw.h and
314	sys/types.h.
315	(AC_CHECK_LIB): Check for syslog.
316	(AC_CHECK_FUNCS): Check for _portaccess.
317	(CPPFLAGS): Don't disable qcam backend if we have _portaccess.
318	These patches contributed by Yuri for the benefit of OS/2.
319
320	* backend/qcam.c (qc_unlock) [!F_SETLK]: Fall back to convention
321	UNIX-style locking using O_EXCL (not ideal, but better than
322	nothing at all).
323	(qc_lock_wait): Ditto.
324
325	* sanei/sanei_scsi.c (KillDomainServer): Add missing paren.
326
327	* lib/usleep.c [HAVE_SYS_SELECT_H]: Include <sys/select.h>.
328
329	* include/sane/sanei_backend.h: Define i/o-port access
330	compatibility macros (by Yuri Dario).
331
332	* backend/Makefile.in (CONFIGS): Mention dummy saned.conf
333	(this really ought to go in frontend/Makefile, but I'm too lazy to
334	add a configuration-install rule there...).
335
336	* backend/coolscan.c: Update with Didier's latest version.
337	(send_one_LUT): Merge in alloca() fix from 1998-04-04.
338
3391998-07-22  David Mosberger-Tang  <David.Mosberger@acm.org>
340
341	* backend/dll.conf: Mention artec backend.
342
343	* backend/mustek.c (sane_start): Remove duplicate status test.
344
3451998-07-21  David Mosberger-Tang  <David.Mosberger@acm.org>
346
347	* frontend/saned.c (main): Look for service name "sane", not
348	"saned".
349
3501998-07-20  David Mosberger-Tang  <David.Mosberger@acm.org>
351
352	* backend/epson.c (epson_cmd): Add patch by Holger Frahm
353	<frahm@itp.uni-hannover.de> to support GT9500.
354
355	* backend/microtek.c: Update with latest version (v0.8).
356
357	* backend/artec.c (PREFER_PIXEL_MODE): Apply Chris Pinkham's
358	6/4/98 patch to add preliminary support for AT6 and AT12 scanner
359	models.
360
361	* backend/epson.c: Apply Christian Bucher's patch.
362
363	* backend/dc25.h: New file (by Peter Fales <psfales@earthling.net>)
364	* backend/dc25.c: Ditto.
365	* backend/dc25.conf: Ditto.
366	* doc/sane-dc25.man: Ditto.
367
368	* backend/microtek2.c: Replace dynamically sized array with
369	alloca() to be ANSI C compliant.
370
371	* backend/epson.c: Replace zero-sized byte arrays with 1 byte
372	arrays to be ANSI C compliant.
373
374	* doc/sane-hp.man: Mention ScanJet 3P (reported by Patrick Debois
375	<Patrick.Debois@lin.vlaanderen.be>).
376
377	* backend/umax.c: Updated with Oliver's 5/7/98 patch.
378
3791998-07-20  Chris Pinkham  <cpinkham@infi.net>
380
381	* backend/artec.c: Added code to default to using millimeters
382	instead of pixels for measurements, can revert to pixels by
383	defining PREFER_PIXEL_MODE at compilation time.
384
385	Added code to cause sane_read to block until data available to return,
386	also buffers as much data as possible before returning.
387
388	Added code to cause sane_read to read as much data from scanner as
389	possible for each call, previously would read 1 line max from
390	scanner.
391
392	Added code to attempt to detect scanner capabilities from scanner
393	if scanner supports this command, it not program has defaults
394	coded in for certain scanner models.
395
396	Separated horizontal and vertical resolution settings with ability
397	to bind them together.  This still has a bug, so the option is is
398	disabled by default until I can get it working correctly.
399
400	Bug-fixes to get backend working properly with xscanimage.
401	Added preview mode option.
402	Added threshold option.
403
404	* backend/artec.h: Added options codes to go along with options
405	added in artec.c file.
406
4071998-07-20  David Mosberger-Tang  <David.Mosberger@acm.org>
408
409	* backend/epson.c (scsi_write): Apply patch by Thomas Bogendoerfer
410	<tsbogend@alpha.franken.de> to get Epson backend to work for SCSI
411	scanners again.
412
4131998-06-05  David Mosberger-Tang  <David.Mosberger@acm.org>
414
415	* backend/mustek.c (attach): Move dev_wait_ready() after the check
416	for a Mustek scanner.  This is to make sure we don't issue any
417	command other than INQUIRY to SCSI devices that are not known to
418	be Mustek scanners.
419
4201998-05-22  David Mosberger-Tang  <David.Mosberger@acm.org>
421
422	* backend/dmc.c: Updated with David Skoll's latest patch.
423
424	* sanei/sanei_scsi.c (sanei_scsi_find_devices): Declare missing
425	findtype arg for dummy sanei_scsi_find_devices().
426
4271998-05-16  David Mosberger-Tang  <David.Mosberger@acm.org>
428
429	* backend/hp.c (attach): Return right after INQUIRY if the device
430	doesn't look like an HP scanner.
431
4321998-05-15  David Mosberger-Tang  <David.Mosberger@acm.org>
433
434	* Version 0.73 released.
435
436	* backend/mustek.c (attach): Initialize *devp to 0.
437
438	* configure.in: Use AM_PATH_GTK to figure out if/how to compile
439	with gtk libs.
440
441	* aclocal.m4: Include gtk.m4 from gtk-1.0.1 distribution.
442
443	* backend/Makefile.in (install): Change install rule so there is
444	guaranteed to be a (symlink) of the form
445	libsane-$(BACKEND).so.$(V_MAJOR) pointing to the right version
446	of a dll.
447
448	* backend/dll.c (load): Get rid of .la parsing non-sense.  Instead,
449	always attempt to open libsane-$(BACKEND).so.$(V_MAJOR).
450
451	* backend/mustek.c (sane_init): Make sure empty lines really
452	are ignored.
453
4541998-05-13  David Mosberger-Tang  <David.Mosberger@acm.org>
455
456	* backend/microtek2.conf: Add line "scsi * * Scanner".
457	* backend/microtek.conf: Ditto.
458
459	* sanei/sanei_scsi.c (get_devicename): New function.
460
461	* sanei/sanei_config2.c: New file.
462
463	* sanei/Makefile.in (LIBSANEI_OBJS): Mention sanei_config2.
464	(LIBSANEI_LTOBJS): Ditto.
465
466	* sanei/sanei_scsi.c (sanei_scsi_find_devices): New function
467	(comes in two flavors: one for Linux, one for the remaining
468	platforms).
469
470	* include/sane/sanei_scsi.h: New function.
471
472	* doc/sane-dll.man: Fix to make it work with man2html (use
473	\- instead of -).
474	* doc/sane-dmc.man: Ditto.
475	* doc/sane-epson.man: Ditto.
476	* doc/sane-hp.man: Ditto.
477	* doc/sane-microtek.man: Ditto.
478	* doc/sane-microtek2.man: Ditto.
479	* doc/sane-mustek.man: Ditto.
480	* doc/sane-pint.man: Ditto.
481	* doc/sane-scsi.man: Ditto.
482	* doc/sane-umax.man: Ditto.
483	* doc/saned.man: Ditto.
484	* doc/scanimage.man: Ditto.
485	* doc/xscanimage.man: Ditto.
486
487	* doc/Makefile.in (MAN2HTML): New macro.
488	(html-man): New rule to generate HTML version of man-pages.
489
490	* configure.in (V_MINOR): Up to 73.
491
492	* backend/umax.conf: Add lines "scsi UMAX" and "scsi LinoHell
493	Office".
494
495	* backend/microtek2.h: New file (by Bernd Schroeder
496	<bernd@aquila.muc.de>).
497	* backend/microtek2.c: Ditto.
498	* backend/microtek2.conf: Ditto.
499
500	* backend/dll.conf: Mention "microtek2".
501
502	* backend/apple.conf: Add line "scsi APPLE".
503	* backend/mustek.conf: Add lines for "scsi MUSTEK" and "scsi
504	SCANNER".
505
506	* backend/apple.c (attach_one): New function.
507	(sane_init): Use sanei_config_attach_matching_devices().
508	* backend/artec.c: Like for apple.c.
509	* backend/canon.c: Ditto.
510	* backend/coolscan.c: Ditto.
511	* backend/dmc.c: Ditto.
512	* backend/epson.c: Ditto.
513	* backend/hp.c: Ditto.
514	* backend/microtek.c: Ditto.
515	* backend/mustek.c: Ditto.
516	* backend/s9036.c: Ditto.
517	* backend/snapscan.c: Ditto.
518	* backend/tamarack.c: Ditto.
519
5201998-05-11  David Mosberger-Tang  <David.Mosberger@acm.org>
521
522	* backend/snapscan.c (sane_snapscan_get_parameters): Always set
523	depth of 8.
524
525	* configure.in: Check for gtk_tooltips_set_tips _after_ gtk
526	libraries have been located.  (Patch by Jake E. Hamby
527	<jehamby@lightside.com>).
528
5291998-05-09  David Mosberger-Tang  <David.Mosberger@acm.org>
530
531	* sanei/Makefile.in (.c.o): Patch by Kaz Sasayama
532	<Kaz.Sasayama@hypercore.co.jp>: invoke $(COMPILE) if libtool
533	doesn't give us a regular .o file.
534	* lib/Makefile.in (.c.o): Ditto.
535
536	* frontend/preview.c (preview_update): Call update_selection() so
537	selection is updated when scanwindow geometry changes.  The patch
538	from 1998/4/2 never worked satisfactorily (and indeed was never
539	enabled in any of the SANE releases).
540
5411998-05-06  David Mosberger-Tang  <David.Mosberger@acm.org>
542
543	* backend/mustek.c (sane_init): Use sanei_config_skip_whitespace()
544	to skip whitespace.
545
5461998-05-05  David Mosberger-Tang  <David.Mosberger@acm.org>
547
548	* frontend/xscanimage.c (init): Allow -g as an option.
549
550	* sanei/sanei_config.c (sanei_config_get_string): New function.
551	(sanei_config_skip_whitespace): Ditto.
552
553	* backend/umax.c: Updated with Oliver's latest patch.
554
555	* Makefile.in (INSTALLED_INCLUDES): Mention sanei_readproc.h.
556
557	* backend/microtek.h: Updated with Matto's 0.7 patch.
558	* doc/sane-microtek.man: Ditto.
559	* backend/microtek.c: Ditto.
560	Added precalibration code:  tries to intelligently have scanner
561	run a calibration only once when necessary --- this shaves a solid
562	six seconds off every scan!
563	Added model code/vendor name for ScanMaker 600ZS.
564	Added model codes/vendor name for Agfa Arcus II, StudioScan,
565	StudioScan II.
566	Patched up 3-pass scanning (forgot to switch color planes).
567	Corrected IIHR to 600dpi base resolution.
568	Check so that 0x0 regions are recognized as invalid.
569	Fixed subtle buffering bug in color scans.
570	Fixed-up active/inactive dependencies among options.
571	Make sure shadow <= midtone <= highlight.
572	Let shadow/midtone/highlight be active during LineArt and Halftone.
573	"Halftoning" option moved into Scan Mode Group (from Enhancement).
574	Removed some illegal "TEST_UNIT_READY" commands (during scan).
575	Removed "MODE_SENSE_1", since it didn't quite work anyway.
576
5771998-05-03  David Mosberger-Tang  <David.Mosberger@acm.org>
578
579	* frontend/xscanimage.c (scan_preview): Don't register
580	preview_window_destroyed as a delete_event handler.
581
5821998-05-02  David Mosberger-Tang  <David.Mosberger@acm.org>
583
584	* backend/Makefile.in: Remove unused LIBLIB macro.
585
5861998-04-30  David Mosberger-Tang  <David.Mosberger@acm.org>
587
588	Patches by Matto Marjanovic:
589
590	* frontend/gtkglue.c (gsg_close_dialog_callback): Remove
591	client_data pointer arg.
592
593	* frontend/xscanimage.c (scan_win_delete): Remove GdkEvent arg.
594	(preview_window_destroyed): Ditto.
595	(input_available): Include bad_depth handling code only if
596	HAVE_LIBGIMP_GIMP_H is defined.
597	(scan_dialog): Remove client_data pointer arg.
598
5991998-04-29  David Mosberger-Tang  <David.Mosberger@acm.org>
600
601	* frontend/gtkglue.c (gsg_get_filename): Use gtk_events_pending()
602	instead of gdk_events_pending().
603	* frontend/preview.c (input_available): Ditto.
604	* frontend/xscanimage.c (quit_xscan): Ditto.
605	(input_available): Ditto.
606
6071998-04-08  David Mosberger-Tang  <David.Mosberger@acm.org>
608
609	* sanei/sanei_pio.c (sanei_pio_open): Fix prototype.
610
6111998-04-07  David Mosberger-Tang  <David.Mosberger@acm.org>
612
613	* Version 0.72 released.
614
615	* backend/epson.c (sane_init): Fix up config file reading
616	to be more like that of other backends.
617	(PATH_MAX): Use PATH_MAX instead of FILENAME_MAX.
618
619	* backend/canon.c (sane_init): Read & process canon.conf (patch by
620	Yuri Dario <mc6530@mclink.it>).
621
6221998-04-06  David Mosberger-Tang  <David.Mosberger@acm.org>
623
624	* sanei/sanei_init_debug.c (sanei_init_debug): Move up #endif
625	so NULL-test works for OS/2, too.
626
627	* frontend/saned.c: Include <sys/types.h>.
628
629	* backend/snapscan.c: Don't include non-ANSI <values.h>.
630	(sane_snapscan_start): Use INT_MAX instead of MAXINT.
631	(PATH_MAX): Define PATH_MAX as 1024 if not defined otherwise.
632
6331998-04-05  David Mosberger-Tang  <David.Mosberger@acm.org>
634
635	* backend/umax.c: Updated with Oliver's latest version
636	(0.72pre-a).
637
6381998-04-04  David Mosberger-Tang  <David.Mosberger@acm.org>
639
640	* backend/coolscan.c: Do lalloca.h spiel instead of including
641	alloca.h.
642
643	* configure.in: Look for glib/include directory in /usr/local/lib
644	and /usr/lib.  Add $C_SWITCH_X_SITE to CPPFLAGS, not DEFS.
645
646	* doc/sane-mustek.man: Mention MFS-1200SP v1.07 as working as
647	reported by ehramm@dk3uz.hh.provi.de (Edmund H. Ramm).
648
6491998-04-03  David Mosberger-Tang  <David.Mosberger@acm.org>
650
651	* backend/canon-scsi.c (request_sense): ifdef out to quiet down
652	gcc.
653
654	* backend/artec.c (read_data): Print size_t as (u_long) to make it
655	work right and without compiler warning both on 32 and 64 bit
656	platforms.
657	(artec_get_status): Ditto.
658	(init_and_start_scan): Ditto.
659	(sane_start): Ditto.
660	(sane_read): Ditto.
661	(artec_buffer_line_offset): Declare LEN as size_t.
662	* backend/epson.c (sane_read): Ditto.
663
664	* sanei/sanei_pio.c (pio_wait): Initialize STAT with 0 to quiet
665	down gcc.
666
667	* backend/Makefile.in (libsane-epson.la): Mention sanei_pio.lo.
668	(libsane-dll.la libsane.la): Ditto.
669
670	* sanei/Makefile.in (LIBSANEI_OBJS): Mention sanei_pio.o.
671	(LIBSANEI_LTOBJS): Mention sanei_pio.lo.
672
673	* frontend/xcam.c (input_available): Undo braindamage regarding
674	break out of scan loop (the SANE docs _do_ specify that in
675	blocking mode, *len==0 implies end of scan).
676	* frontend/xscanimage.c: Ditto.
677
678	* doc/sane-dmc.man: New file by David Skoll.
679
680	* sanei/sanei_DomainOS.c: New file by Paul Walker.
681
682	* backend/snapscan.c (DL_INFO, DL_MAJOR_ERROR): Up error code to 1
683	to avoid printing anything unless the user specifically asked
684	for this.
685
686	* include/sane/sanei_debug.h (DBG_LEVEL): Define debug level
687	variable as macro DBG_LEVEL.
688
689	* README.solaris (NOTE): Emphasize that generic scsi driver
690	needs to be installed before running configure.
691
692	* backend/s9036.c: Don't depend on GNU C dynamically sized arrays.
693
694	* backend/coolscan.c (send_one_LUT): Use alloca() instead of
695	depending on GNU C dynamically sized arrays.
696	Include <alloca.h>.
697
698	* frontend/xscanimage.c (input_available): Break out of the
699	loop only if LEN==0 _and_ we have a non-negative input tag.
700	* frontend/xcam.c (input_available): Ditto.
701
702	* backend/microtek.c (parse_inquiry): Handle for ScanMaker 35t+.
703	(id_microtek): Ditto.
704
7051998-04-02  David Mosberger-Tang  <David.Mosberger@acm.org>
706
707	* configure.in (CPPFLAGS): Check for libXi.
708
709	* frontend/gtkglue.c (panel_destroy): Clear dialog elements
710	after destroying the panel.
711
712	Patches by Christian Bucher <cbucher@vernetzt.at>:
713
714	* include/sane/sanei_pio.h: New file.
715	* sanei/sanei_pio.c: Ditto.
716	* backend/epson.c, backend/epson.h, backend/epson.conf: Updated
717	with Christian's version adds support for parallel port interface.
718
719	* sanei/sanei_scsi.c (sanei_scsi_req_wait): Patch by Matto to let
720	sense-handler decide whether a non-zero sense_buffer[0] really
721	should be considered an error (needed for Microtek backend).
722
723	* doc/sane.tex (\subsubsection{Option Value Unit}): Document new
724	unit SANE_UNIT_MICROSECOND.
725
726	Patches by Oliver Rauch:
727
728	* frontend/gtkglue.c (unit_string): Handle SANE_UNIT_MICROSECOND.
729	* frontend/scanimage.c (print_unit): Ditto.
730	(parse_scalar): Ditto.
731
732	* include/sane/sane.h: Add SANE_UNIT_MICROSECOND.
733
734	* Upgrade to Kevin's latest SnapScan backend (0.4).
735
736	* doc/sane-hp.man: Mention ScanJet IIp C1790A as working (reported
737	by Ronald.Vogelaar@nl.origin-it.com).
738
739	* frontend/xscanimage.c (init): Issue an error message when we see
740	option -g as this is most likely due to someone invoking
741	xscanimage through GIMP when GIMP support is missing.
742	(scan_done): Add sanity check.
743	(scan_start): Ditto.
744
745	* Upgraded to Matto's latest Microtek backend (0.6).
746
747	* Upgraded to Oliver's latest UMAX backend (0.71h).
748
749	* frontend/preview.c (draw_selection): Fix so that selection is
750	updated when sliders are moved.  Patch by Mikko Tyo"la"ja"rvi.
751
752	* backend/snapscan.c (DL_INFO): Increase from 0 to 1.
753	(DL_MAJOR_ERROR): Ditto.  This avoids printing error messages
754	unless the user specifically requests them.
755
756	* frontend/gtkglue.c: Include <sys/types.h>.
757
758	* include/sane/config.h.in: Ignore HAVE_USLEEP under Apollo
759	Domain.
760
761	Patches by Paul Walker:
762
763	* sanei/sanei_scsi.c: New Domain OS code.
764
765	* tools/find-scanner.c: Include <sane/config.h>.
766
767	* lib/usleep.c (usleep): Use time_$wait() to avoid broken usleep()
768	implementation in Domain Sys5.3 environment.
769
770	* config.sub: Translate sys5.3 into sysv3 for the benefit
771	of Apollo Domain/OS.
772
773	* sanei/sanei_init_debug.c (sanei_init_debug): Use DosScanEnv()
774	instead of getenv() under OS/2.  (Patch by Yuri Dario
775	<mc6530@mclink.it>)
776
7771998-03-02  David Mosberger-Tang  <David.Mosberger@acm.org>
778
779	* frontend/xcam.c (main): Remove obsolete call to
780	gdk_set_debug_level (0).
781
782	* backend/mustek.c (attach): Print debug message when discovering
783	unknown model.
784
785	* doc/sane-scsi.man: Mention Adaptec 1505.
786
787	* tools/find-scanner.c (main): List FreeBSD specific device names.
788
789	* tools/Makefile.in (LIBS): Define.
790	(find-scanner): Mention $(LIBS).
791
792	* backend/epson.conf: New file.
793
794	Patches by Yuri Dario <mc6530@mclink.it>:
795
796	* backend/epson.c (sane_init): Support config file.
797
798	* sanei/sanei_ab306.c (outb): Add missing parens.
799
800	* backend/snapscan.c: Don't include <values.h>
801
802	* backend/net.c: Include netdb.h after in.h to appease OS/2.
803	Include <sys/types.h>.
804
805	* sane-0.71.spec (%files): Mention sane-dmc.5.
806	* doc/Makefile.in (SECT5): Ditto.
807
808	* backend/dmc.c, backend/dmc.h: Update with Feb 26 patch from
809	David Skoll.
810	* doc/dmc.man: New file by David Skoll.
811
8121998-02-25  David Mosberger-Tang  <David.Mosberger@acm.org>
813
814	* backend/dmc.c (DMCSetMode): Add missing field name (patch by
815	Martin Huber).
816
817	* tools/find-scanner.c (main) [__sun]: Add missing command (patch
818	by Martin Huber.
819
820	* sanei/sanei_scsi.c (sanei_scsi_cmd): Fix typo: fd_Info->fd_info
821	(patch by Jeff Freedman).
822
823	* configure.os2: Update with patch by Jeff Freedman.
824
825	* backend/snapscan.c (sane_snapscan_start): Replace non-standard
826	MAXINT by INT_MAX from <limits.h>.
827	(PATH_MAX): Define PATH_MAX as 1024 if not defined by headers.
828
8291998-02-23  David Mosberger-Tang  <David.Mosberger@acm.org>
830
831	* Version 0.71 released.
832
833	* backend/dmc.c (DMCAttach): Close scsi fd before returning.
834
835	* backend/microtek.c: Default to no_dump.
836	(sane_init): Change "nodump" into "dump" option.
837	* doc/sane-microtek.man: Document this change.
838
839	* backend/snapscan.c: Include <sane/sanei_config.h>.
840	(sane_snapscan_init): Use sanei_config_open() instead of fopen().
841
842	* backend/snapscan.c: Upgrade to latest version (0.3 patch 7).
843	* backend/snapscan.h: Ditto.
844
845	* configure.in (V_MINOR): Up version to 0.71.
846
847	* sanei/sanei_scsi.c (scsi_cmd) [USE == SOLARIS_INTERFACE]: "or"
848	in lun instead of overwriting cdb[1] (patch by Martin Huber
849	<hu@garfield.m.isar.de>).
850
851	* backend/snapscan.c: Replace <posix1_lim.h> with <limits.h>.
852
853	* backend/mustek.c (fix_line_distance_mfs): Add back missing
854	multiplication by bpl (patch by Stefano Garavaglia
855	<alter.ego@iol.it>).
856
857	* backend/coolscan.c: Updated with Didier's latest version.
858	(COOLSCAN_CONFIG_FILE): Rename from PATH_COOLSCAN_CONFIG and
859	define as "coolscan.conf".  Include <sane/sanei_config.h>.
860	(sanei_init): Use sanei_config_open() instead of fopen().
861
862	* backend/coolscan-scsidef.h: Ditto.
863	* backend/coolscan.h: Ditto.
864
865	* backend/hp.c (sane_close): Change s to s->next (patch by David
866	Skoll <dskoll@chipworks.com>).
867
8681998-02-17  David Mosberger-Tang  <David.Mosberger@acm.org>
869
870	* backend/Makefile.in (PRELOADABLE_BACKENDS): Mention apple &
871	coolscan.
872
873	* backend/coolscan.c: New file (by Didier Carlier
874	<didier@sema.be>)..
875	* backend/coolscan.h: Ditto.
876	* backend/coolscan-scsidef.h: Ditto.
877
878	* backend/apple.c: Include <sane/sanei_config.h>
879	(APPLE_CONFIG_FILE): Rename from PATH_APPLE_CONFIG.
880	(sane_init): Use sanei_config_open().
881
882	* backend/apple.conf: New file.
883
884	* backend/dll.conf: Mention apple & coolscan backends.
885
886	* backend/apple.c: New file (by Milon Firikis
887	<milonf@isosun.ariadne-t.gr>).
888	* backend/apple.h: Ditto.
889
890	* sane-0.70.spec: Make symlink for libsane.so.0.
891
892	* doc/sane-epson.man: Mention GT-5500 scanner as working (as
893	reported by Umberto Zanatta <uzanatta@foscolo.org>).
894
8951998-02-12  David Mosberger-Tang  <David.Mosberger@acm.org>
896
897	* sanei/sanei_scsi.c (DOMAINOS_INTERFACE): Define.  Add
898	Apollo Domain/OS support contributed by Paul Walker.
899
900	* configure.in (AC_CHECK_HEADERS): Mention apollo/scsi.h.
901	Add #undef of HAVE_APOLLO_SCSI_H.  Add type checks for u_char,
902	u_int, u_long (DomainOS reportedly needs these).
903
904	* sanei/sanei_scsi.c (sanei_scsi_req_wait) [USE ==
905	LINUX_INTERFACE]: Always check for a non-zero error code in the
906	sense-buffer.  The Linux sg driver guarantees that the sense
907	buffer is clear to zero when no sense code has been requested, so
908	this is safe.
909
9101998-01-28  David Mosberger-Tang  <David.Mosberger@acm.org>
911
912	* Version 0.7 released.
913
9141998-01-27  David Mosberger-Tang  <David.Mosberger@acm.org>
915
916	* frontend/xscanimage.c (quit_xscan): Exit with status 0, not 1.
917
918	* tools/xerox (scale): Added improvements contributed by Joachim
919	Woll <woll@physik.uni-kassel.de>.
920
921	* Upgrade to Oliver's latest UMAX backend.
922
923	* include/Makefile.in (distclean): Add empty all rule.  Add
924	distclean rule to delete Makefile.
925
926	* Makefile.in (distclean): Delete japi/Makefile as well (this
927	command should be removed once japi gets added to SUBDIRS).
928
929	* backend/Makefile.in (EXTRA): Remove ../lib/usleep.lo and
930	../lib/strndup.lo.
931	(libsane.la): Make dependent on $(LIBOBJS).
932
933	* frontend/xscanimage.c (preview_window_destroyed): Declare second
934	arg (added in some version of gtk?).
935
936	* tools/find-scanner.c (main): Change __sgi__ to __sgi.
937
9381998-01-26  David Mosberger-Tang  <David.Mosberger@acm.org>
939
940	* backend/microtek.c: Don't declare strdup()---you're bound to get
941	it wrong for some platforms!
942
943	* doc/sane-scsi.man: Say explicitly that generic SCSI support needs
944	to be enabled.
945
946	* doc/sane-hp.man (Problems): Document PhotoSmart problems
947	as reported Peter Kirchgessner <Pkirchg@aol.com>.
948
949	* backend/snapscan.c: Upgrade to v0.3 from
950	http://www.cs.ualberta.ca/~charter/snapscan.html.
951	* backend/snapscan.h: Ditto.
952
9531998-01-22  David Mosberger-Tang  <David.Mosberger@acm.org>
954
955	SnapScan backend by Franck Schnefra, Michel Roelofs and
956	Kevin Charter:
957
958	* backend/snapscan.c: New file.
959	* backend/snapscan.h: Ditto.
960	* backend/snapscan.conf: Ditto.
961
962	* backend/umax-scanner.h (scanner_str): Add missing comma.
963
964	* sanei/sanei_scsi.c (sanei_scsi_cmd): Pass sense_handler_arg to
965	sense handler for BSD_INTERFACE, HPUX_INTERFACE,
966	OPENSTEP_INTERFACE, DECUNIX_INTERFACE, SCO_OS5_INTERFACE,
967	OS2_INTERFACE, IRIX_INTERFACE, AIX_GSC_INTERFACE, and
968	SOLARIS_INTERFACE.
969
970	* include/sane/config.h.in: Add missing #undef of
971	HAVE_SYS_SCSI_TARGETS_SCGIO_H.
972	Ditto for HAVE_SYS_SCSI_SGDEFS_H.
973
9741998-01-20  David Mosberger-Tang  <David.Mosberger@acm.org>
975
976	* Version 0.69 released.
977
978	* doc/sane-scsi.man: Limit ncr810 patch to kernel versions <
979	2.0.33.
980
981	* tools/xerox (HEIGHT): Add A4 paper size as comment.
982
9831998-01-19  David Mosberger-Tang  <David.Mosberger@acm.org>
984
985	* frontend/preview.c (make_preview_image_path): New function.
986	(preview_destroy): Save scan surface parameters as a comment
987	in the preview image.
988	(restore_preview_image): Read scan surface parameters from
989	preview image file and restore only if the parameters match
990	the currently selected surface.
991	(paint_image): Gracefully handle NULL image_data.
992	(event_handler): Don't call restore_preview_image().
993	(preview_update): Detect if the scan surface changed.  If so,
994	establish a new preview widget size, preview area size, and
995	restore a preview image, if available.
996
997	* backend/mustek.c (sense_handler): Declare closure argument.
998
999	* sanei/sanei_scsi.c (sanei_scsi_open): Fix typos.
1000
1001	* backend/umax-scsi.c (umax_open_scanner): Pass us as sense_arg.
1002	(umax_open_scanner): Ditto.
1003	(umax_open_scanner): Ditto.
1004	* backend/umax.c (sane_start): Ditto.
1005
1006	* backend/canon.c (attach): Pass 0 as sense_arg to sanei_scsi_open().
1007	(sane_start): Ditto.
1008	* backend/epson.c (attach): Ditto.
1009	(sane_start): Ditto.
1010	* backend/tamarack.c (sense_handler): Ditto.
1011	* backend/s9036.c (sane_start): Ditto.
1012	* backend/mustek.c (dev_open): Ditto.
1013	* backend/hp.c (attach): Ditto.
1014	(sane_start): Ditto.
1015	* backend/mustek.c (dev_open): Ditto.
1016	* tools/find-scanner.c (main): Ditto.
1017
1018	* include/sane/sanei_scsi.h (SANEI_SCSI_Sense_Handler): Declare
1019	closure arg.
1020	(sanei_scsi_open): Ditto.
1021
1022	* doc/sane-hp.man (Model): Remove obsolete comment regardign 5P.
1023
10241998-01-17  David Mosberger-Tang  <David.Mosberger@acm.org>
1025
1026	* backend/mustek.c (dev_open): Fix debug message.
1027
1028	* Solaris related patches by Martin Huber:
1029
1030	* backend/umax-scsi.c (umax_wait_scanner): Sleep for 1 second
1031	instead of 100ms on Sun platforms---the SCHILYscg driver prints a
1032	warning message each time a device is busy.  Duh.
1033	(umax_get_data_buffer_status): Don't do
1034	umax_get_data_buffer_status() on Sun's.  This should be fixed...
1035
1036	* sanei/sanei_scsi.c (sanei_scsi_open): Call unit_ready() towards
1037	the end of this function.
1038	(CCS_SENSE_LEN): Define as 18 if not defined
1039	by any header files.
1040	(sanei_scsi_cmd): Use sensebuffer to collect sense info.
1041	(scsi_cmd): Better error handling when using SCHILYscg driver.
1042
10431998-01-14  David Mosberger-Tang  <David.Mosberger@acm.org>
1044
1045	* frontend/xscanimage.c (scan_start): Turn off dialog sensitivity.
1046	(scan_done): Restore dialog sensitivity.
1047
1048	* backend/qcam.c (init_options): Turn on SANE_CAP_ALWAYS_SETTABLE.
1049
1050	* frontend/preview.c (scan_done): Enable dialog sensitivity.
1051	(scan_start): Disable dialog sensitivity.
1052
1053	* include/sane/sane.h (SANE_CAP_ACTIVE_WHILE_SCANNING): New
1054	manifest constant.
1055
10561998-01-12  David Mosberger-Tang  <David.Mosberger@acm.org>
1057
1058	* frontend/gtkglue.c (panel_destroy): Call gtk_tooltips_unref()
1059	instead of gtk_tooltips_destroy() as suggested by Ben Gertzfield
1060	<che@debian.org>.
1061
10621997-12-25  David Mosberger-Tang  <David.Mosberger@acm.org>
1063
1064	* backend/canon.c: New file by Helmut Koeberle
1065	<helmut.koeberle@bytec.de>.
1066	(sane_start): Print variables of type size_t as %lu and cast to
1067	(u_long), to make it compile without warning on all platforms.
1068	(attach): Remove extraneous semicolon.
1069
1070	* backend/canon.h (canon_h): Ditto
1071	* backend/canon-scsi.c: Ditto.
1072
10731997-12-24  David Mosberger-Tang  <David.Mosberger@acm.org>
1074
1075	* sanei/sanei_ab306.c (sanei_ab306_cmd): Write the first
1076	6 bytes of a SCSI command only (suggested by Andreas, but
1077	is this really correct??).
1078
1079	* backend/mustek.c (gamma_correction): Add patch by Andreas
1080	Czechanowski <andreas@inspc44c.ins.uni-stuttgart.de> to
1081	fix lineart scanning for Paragon II 600 N scanner.
1082
10831997-12-23  David Mosberger-Tang  <David.Mosberger@acm.org>
1084
1085	* tools/find-scanner.c (scanner_identify_scanner): Print info on
1086	all SCSI devices when --verbose is in effect.
1087	(main): Add Sun device names.
1088
1089	* include/sane/config.h.in: Define _POSIX_SOURCE and
1090	__EXTENSIONS__ when compiling on a Sun with GCC.
1091
1092	* configure.in (AC_CHECK_HEADERS): Mention sys/scsi/sgdefs.h and
1093	sys/scsi/targets/scgio.h.
1094
10951997-12-17  David Mosberger-Tang  <David.Mosberger@acm.org>
1096
1097	* frontend/xscanimage.c (device_dialog): Suggestion by Matt: set
1098	window auto-shrink by calling gtk_window_set_policy().
1099
1100	* japi/ImageCanvas.java: Updated with Jeff's latest patch.
1101	* japi/Jscanimage.java: Ditto.
1102	* japi/Makefile.in: Ditto.
1103	* japi/README.JAVA: Ditto.
1104	* japi/ScanIt.java: Ditto.
1105	* japi/ImageCanvasClient.java: New file.
1106
11071997-12-16  David Mosberger-Tang  <David.Mosberger@acm.org>
1108
1109	* frontend/gtkglue.c (panel_build): Patch by Matt: a) For all
1110	individual options flagged as "advanced", panel_build will only
1111	display the option if the "Show advanced" button is toggled.
1112	Group identifiers flagged as "advanced" are handled the same as
1113	before.  b) panel_rebuild is called whenever the "Show advanced"
1114	button is toggled on or off.
1115
1116	* doc/sane-scsi.man: Mention sane-epson(5) and sane-microtek(5).
1117	* doc/scanimage.man: Ditto.
1118	* doc/xscanimage.man: Ditto.
1119
1120	* doc/sane-microtek.man: New file by Matt.
1121
1122	* backend/microtek.c: Updated with Matt's version 0.4.
1123	* backend/microtek.h: Ditto.
1124	* backend/microtek.conf: Ditto.
1125
1126	* doc/Makefile.in (SECT5): Mention sane-microtek.5.
1127
11281997-12-15  Fred Hucht & Michael Staats <{fred|michael}@thp.Uni-Duisburg.DE>
1129
1130	* Added support for generic SCSI under AIX 4.1.x using the device
1131	driver gsc written by Matthew Jacob <mjacob@feral.com> (nice piece
1132	of work!).
1133	Find this driver under
1134	ftp://ftp.feral.com/pub/aix/gsc.tar.gz or
1135	ftp://ftp.thp.Uni-Duisburg.DE/pub/source/gsc.tar.gz.
1136	Changed files: sanei/sanei_scsi.c, include/sane/config.h.in,
1137	configure.in.
1138
1139	* Moved '#include <lalloca.h>' to very beginning in all source
1140	files as AIX needs it there.
1141
1142	* Added define OUTFILENAME to frontend/xscanimage.c.
1143
1144	* Fixed wrong environment reference in /doc/sane-scsi.man.
1145
1146	* Several changes in tools/find-scanner.c to run using
1147	above mentioned driver.
1148	Fixed wrong IN_periph_devtype_cpu (was 1, should be 3).
1149
11501997-12-14  David Mosberger-Tang  <David.Mosberger@acm.org>
1151
1152	* doc/sane-hp.man: Mention ScanJet 4P (reported to work by
1153	Adam Sjoegren <asjo@diku.dk>).
1154
11551997-12-09  David Mosberger-Tang  <David.Mosberger@acm.org>
1156
1157	* frontend/saned.c (check_host): Change len from size_t to int to
1158	match getpeername() as per Single Unix Spec (as opposed to POSIX
1159	drafts...).
1160	(start_scan): Ditto for getsockname().
1161	* backend/net.c (sane_start): Ditto.
1162
1163	* backend/tamarack.c (TAMARACK_CONFIG_FILE): Delete.
1164	(TAMARACK_CONFIG_FILE): New macro.
1165	Include <sane/sanei_config.h>.
1166	(sane_init): Use sanei_config_open() instead of fopen().
1167	(read_data): Declare nbytes as size_t---makes a difference
1168	on 64-bit platforms.
1169
11701997-12-07  David Mosberger-Tang  <David.Mosberger@acm.org>
1171
1172	* backend/s9036.c (sane_init): Run through "indent -gnu". Use
1173	sanei_config_open() instead of fopen().  Include
1174	<sane/sanei_config.h>.
1175	(read_more_data): Print size_t variables by casting them to
1176	(u_long) and using %lu format (some platforms have size_t as
1177	u_long, others as u_int, which does make a difference if
1178	sizeof(long) > sizeof(int).
1179	(sane_start): Ditto.
1180	Add English translation for comments that were in German only.
1181
1182	* backend/s9306.c: New file by Ingo Schneider.
1183	* backend/s9306.h: New file by Ingo Schneider.
1184
11851997-12-04  David Mosberger-Tang  <David.Mosberger@acm.org>
1186
1187	* backend/mustek.c (sane_cancel): Collect child process status
1188	after killing it (avoids accumulating zombie processes).  Reported
1189	by Mike Sweet.
1190	* backend/umax.c (sane_cancel): Ditto.
1191	* backend/qcam.c (sane_close): Ditto.
1192	(sane_cancel): Ditto.
1193
11941997-12-03  David Mosberger-Tang  <David.Mosberger@acm.org>
1195
1196	* Version 0.68 released.
1197
11981997-12-02  David Mosberger-Tang  <David.Mosberger@acm.org>
1199
1200	* frontend/scanimage.c (window_val_user): New variable.
1201	(fetch_options): Don't overwrite window_val[i] if it's
1202	user-specified.
1203	(main): Set window_val_user[i] as necessary.
1204
1205	* backend/mustek.c (send_gamma_table): New function.
1206	(sane_start): Send gamma table both before and after start_scan().
1207	The MFS-06000CX is reported to need the gamma-table before
1208	start_scan() and the Mustek docs do indeed indicate downloading
1209	the gamma-table twice.
1210	(init_options): Make --custom-gamma option active by default (since
1211	gray-scale mode is the default mode).
1212
12131997-11-30  David Mosberger-Tang  <David.Mosberger@acm.org>
1214
1215	* doc/sane-mustek.man: Mention MFC-08000CZ.
1216
1217	* backend/mustek.c (attach): Reduce y_range.max for MFC-08000CZ
1218	from 300 to 292mm as reported by Jeroen Steenblik
1219	<jeroens@esrac.ele.tue.nl>.  Ditto for MFC-06000CZ.
1220
12211997-11-28  David Mosberger-Tang  <David.Mosberger@acm.org>
1222
1223	* backend/umax-scanner.h (scanner_str): Add "Astra 610S".
1224	(known_scanners): Increment from 13 to 14.
1225
1226	PP fixes by Andreas Czechanowski:
1227	* backend/mustek.c (EXTRA_SAVE_LINES): New macro.
1228	(fix_line_distance_pp): Use EXTRA_SAVE_LINES instead of hardcoded
1229	constant.  Various fixes to make it actually work.
1230	(reader_process): Initialize s->ld_ld_line to zero.
1231
1232	* backend/mustek.h (struct Mustek_Scanner): Add member ld_line.
1233
12341997-11-26  David Mosberger-Tang  <David.Mosberger@acm.org>
1235
1236	* tools/Makefile.in (.c.o): Add this rule.
1237
1238	* tools/find-scanner.c: Include sanei_scsi.h and sanei_debug.h
1239	via <> quotes (note "").
1240
12411997-11-25  David Mosberger-Tang  <David.Mosberger@acm.org>
1242
1243	* sanei/sanei_ab306.c (sanei_ab306_exit): Fix by Andreas
1244	Czechanowski: output 0x00 at port[i].base + 1 instead.
1245
12461997-11-22  David Mosberger-Tang  <David.Mosberger@acm.org>
1247
1248	* doc/sane-mustek.man (Model): Clarify that parallel port != printer
1249	port.
1250
1251	* backend/mustek.c (fix_line_distance_mfs): Add missing SANE_UNFIX()
1252	calls for x_range.max and dpi_range.max.
1253	(fix_line_distance_pp): Correct based on Andreas' feedback.
1254
12551997-11-18  David Mosberger-Tang  <David.Mosberger@acm.org>
1256
1257	* configure.in (CFLAGS): Don't specify -ansi---with older libcs,
1258	it's causing more problems than it's worth.
1259
1260	* Patch by Jeff Freedman:
1261
1262	* japi/Sane.c: Limit string length to option size.
1263
1264	* japi/SaneOption.java: Fix indentation.
1265	(unitString): New function.
1266
1267	* japi/ImageCanvas.java: New file.
1268	* japi/Jscanimage.java: Ditto.
1269	* japi/ScanIt.java: Ditto.
1270
1271	* japi/Makefile.in (CLASSES): Mention ScanIt.class and
1272	ImageCanvas.class.
1273	(all): Mention Jscanimage.class.
1274	* japi/Scan.c: Include <string.h>.
1275	(String_length): New function.
1276
12771997-11-16  David Mosberger-Tang  <David.Mosberger@acm.org>
1278
1279	* frontend/gtkglue.c (scale_update): In recent versions of GTK,
1280	"value_changed" callbacks no longer return a value.  Change this
1281	function to type "void" accordingly.
1282
1283	* sanei/sanei_scsi.c: Declare cam_fd only if USE ==
1284	DECUNIX_INTERFACE.
1285
1286	* sanei/sanei_load_values.c (sanei_load_values): Detect errors
1287	while reading the option name (first call to sanei_w_string()).
1288	Reported by Geoffrey T. Dairiki.
1289
1290	* sanei/sanei_ab306.c [HAVE_UNISTD_H]: Include <unistd.h>.  Fix by
1291	Geoffrey T. Dairiki.
1292
1293	* lib/alloca.c: Enclose in #ifndef HAVE_ALLOCA bracket.  Fix by
1294	Geoffrey T. Dairiki.
1295
1296	* include/lalloca.h: Declare alloca() as returning void* when
1297	__STDC__ is in effect so declaration matches definition in
1298	lib/alloca.c.  Reported by Geoffrey T. Dairiki.
1299
1300	* frontend/preview.c (update_selection): Set coord[] values to
1301	rounded-to-nearest-int of float values.  This avoids the jumping
1302	selection box effect. Fix by Geoffrey T. Dairiki.
1303
1304	* frontend/gtkglue.c (scale_update): Patch by Geoffrey T. Dairiki
1305	<dairiki@apl.washington.edu>: emit value_changed signal if the
1306	backend changed the value.
1307
1308	* backend/umax.c: Upgraded to Oliver's latest UMAX version.
1309
1310	* backend/mustek.c (sane_init): Ignore white space in front of an
1311	option/device-name.
1312
13131997-11-12  David Mosberger-Tang  <David.Mosberger@acm.org>
1314
1315	* sanei/sanei_ab306.c (sanei_ab306_get_io_privilege):
1316	(struct port): Remove member HAVE_IO_PRIVS.
1317	(sanei_ab306_get_io_privilege): Get ioperm()issions independent of
1318	HAVE_IO_PRIVS.
1319
1320	* backend/mustek.c (do_stop): Always send STOP command before
1321	closing the device.
1322	(dev_read_req_enter): For parallel-port scanner, set *idp to 0.
1323
13241997-11-10  David Mosberger-Tang  <David.Mosberger@acm.org>
1325
1326	Bug reported by Matto Marjanovic <maddog@mir.com>:
1327
1328	* frontend/gtkglue.c (panel_build): Create button only after we
1329	know the option's value.
1330	(button_new): Add VAL argument and initialize button state to
1331
1332	correct value before connecting the toggled callback.
1333
1334	Bugs reported by Petter Reinholdtsen <pere@link.no>:
1335
1336	* sanei/sanei_config.c (sanei_config_open): Add missing cast to
1337	(char *).
1338
1339	* sanei/sanei_scsi.c (sanei_scsi_cmd) [USE == IRIX_INTERFACE]: Fix
1340	(u_char) cast to (u_char *).
1341
13421997-11-06  David Mosberger-Tang  <David.Mosberger@acm.org>
1343
1344	* backend/qcam.c (init_options): Set the type of OPT_NUM_OPTS to
1345	SANE_TYPE_INT (suggested by Guido Muesch
1346	<odiug@faho.rwth-aachen.de>).
1347	* backend/mustek.c (init_options): Ditto.
1348
13491997-11-04  David Mosberger-Tang  <David.Mosberger@acm.org>
1350
1351	* frontend/xcam.c (xcam_exit): Protect against recursive
1352	invocation.
1353	(main): Turn on preferences.advanced as no graphical geometry
1354	selection exists right now.
1355	Include <preferences.h>.
1356	preferences: New variable.
1357	(pref_toggle_advanced): New function.
1358	(pref_toggle_tooltips): Ditto.
1359	(build_preferences_menu): Add button to control advanced & tooltips
1360	preferences.
1361
1362	* doc/sane.tex (subsection{sanecontrol_option}): Make it illegal
1363	for SANE_INFO_RELOAD_OPTIONS to be set needlessly.
1364
1365	* backend/hp.c (sane_control_option): Only turn on RELOAD_PARAMS
1366	when value changed.
1367
1368	* backend/qcam.c (sane_control_option): Only turn on
1369	RELOAD_PARAMS when value changed.
1370
1371	* backend/mustek.c (sane_control_option): Only turn on
1372	RELOAD_OPTIONS and/or RELOAD_PARAMS when value changes.
1373
1374	* Integrate b&w quickcam fixes by Guido Muesch
1375	<odiug@faho.rwth-aachen.de>:
1376
1377	* backend/qcam.c (bw_x_range, odd_bw_x_range, bw_y_range,
1378	odd_bw_y_range): New constants.
1379	(sane_open): Disable despeckle, black-level, hue, saturation,
1380	resolution & test options for b&w camera (either not useful or not
1381	supported at this point).
1382	(sane_start): Use QC_MONO_SET_CONTRAST instead of
1383	QC_BW_SET_CONTRAST.
1384	(sane_start): Call qc_reset() for b&w camera to avoid hangs (color
1385	camera doesn't need this and is faster that way).
1386	(sane_start): Multiply undecimated_width by s->val[OPT_DEPTH].w,
1387	not 4.
1388
1389	* backend/qcam.h: Remove obsolete QC_BW_SET_CONTRAST,
1390	QC_BW_AUTO_ADJUST_OFFSET, QC_BW_GET_OFFSET, and QC_SET_CONTRAST
1391	macros.
1392
13931997-11-02  David Mosberger-Tang  <David.Mosberger@acm.org>
1394
1395	* doc/sane-hp.man (Model): Mention ScanJet IIcx.  Johannes Geiger
1396	<J_Geiger@fleury.de> reported it to work fine under OS/2 with
1397	sane-0.66
1398
1399	* backend/umax.c: Apply patch by Oliver Rauch that avoid
1400	umax hangs.
1401
14021997-11-01  David Mosberger-Tang  <David.Mosberger@acm.org>
1403
1404	* Version 0.67 released.
1405
1406	* sanei/sanei_ab306.c: New file.
1407
1408	* backend/mustek.h (MUSTEK_FLAG_PP): New macro.
1409	(struct Mustek_Scanner): Add members ld.index and ld.lmod3
1410	for parallel-port scanner line-distance correction.
1411
1412	* backend/mustek.c (color_seq): Move to global level from
1413	fix_line_distance_normal().
1414	(fix_line_distance_pp): New function.
1415	(scsi_wait_ready): Renamed from wait_ready().
1416	(pp_wait_ready): New function.
1417	(dev_wait_ready): Ditto.
1418	(dev_open): Ditto.
1419	(dev_cmd): Ditto.
1420	(dev_req_wait): Ditto.
1421	(dev_read_start): Ditto.
1422	(dev_read_req_enter): Ditto.
1423	(dev_close): Ditto.
1424	(attach): Modify to use dev_open().  Set minimum scan resolution
1425	to 51 dpi for parallel-port scanners.
1426	(scan_area_and_windows): Call dev_cmd() instead of
1427	sanei_scsi_cmd().
1428	(mode_select): Ditto.
1429	(gamma_correction): Ditto.
1430	(start_scan): Ditto.
1431	(stop_scan): Ditto.
1432	(line_distance): Ditto.
1433	(get_image_status): Ditto.
1434	(backtrack_and_adf): Ditto.
1435	(gamma_correction): Return immediately if custom-gamma is turned
1436	off or if not doing a multibit scan.  Add support for sending all
1437	three gamma tables with a single command.
1438	(line_distance): Initialize additional line-distance correction
1439	state needed by parallel-port scanner.
1440	(read_req_enter): Remove.
1441	(send_data): Modify to support parallel-port scanner line-distance
1442	correction.
1443	(reader_process): Require I/O-privilege if dealing with parallel
1444	port scanner and call dev_read_start().  Use dev_read_req_enter()
1445	instead of read_req_enter(), dev_req_wait() instead of
1446	sanei_scsi_req_wait().
1447	(sane_start): For parallel-port scanner, send gamma table with
1448	a single gamma_correction() call.
1449
1450	* doc/sane-mustek.man: Update with info regarding parallel port
1451	scanner.
1452
1453	* backend/dll.c (add_backend): When a backend is present already,
1454	move it to the head of the backend list, so pre-loaded backends
1455	appear in the same order as if they had been loaded dynamically
1456
1457	* backend/mustek.c (pp_mode_list): New constant.
1458
1459	* backend/mustek.c (init_options): Use pp_mode_list for parallel
1460	port type scanners (no color lineart/halftone modes).
1461
1462	* sanei/sanei_codec_ascii.c (ascii_w_string): free(*s) only if *s
1463	is non-NULL (reported by Geoffrey T. Dairiki
1464	<dairiki@apl.washington.edu>).
1465
1466	* backend/mustek.c (attach): Turn on MUSTEK_FLAG_LD_NONE for
1467	MFS-12000SP with firmware 1.02 or newer. Reported by Henning
1468	Busacker <henning.busacker@Duesseldorf.netsurf.de>.
1469
14701997-10-25  David Mosberger-Tang  <David.Mosberger@acm.org>
1471
1472	* doc/sane.tex (chapter{Contact Information}): Update mailing list
1473	and home page address.
1474
1475	* backend/dll.c: Include <sane/sanei_config.h>.  Call
1476	sanei_config_open() instead of fopen().
1477	* backend/hp.c: Ditto.
1478	* backend/mustek.c: Ditto.
1479	* backend/net.c: Ditto.
1480	* backend/pint.c: Ditto.
1481	* backend/qcam.c: Ditto.
1482	* backend/umax.c: Ditto.
1483
1484	* backend/Makefile.in (EXTRA): Mention ../sanei/sanei_config.lo.
1485
1486	* doc/sane-dll.man: Document SANE_CONFIG_DIR.
1487	* doc/sane-hp.man: Ditto.
1488	* doc/sane-mustek.man: Ditto.
1489	* doc/sane-net.man: Ditto.
1490	* doc/sane-pint.man: Ditto.
1491	* doc/sane-qcam.man: Ditto.
1492	* doc/sane-scsi.man: Ditto.
1493	* doc/sane-umax.man: Ditto.
1494	* doc/saned.man: Ditto.
1495
1496	* backend/microtek.c: Updated with v0.3 from Matt.
1497	Include <sane/sanei_config.h>
1498	(MICROTEK_CONFIG_FILE): Define as "microtek.conf".
1499	(PATH_MICROTEK_CONFIG): Delete.
1500	(sane_init): Replace fopen() with sanei_config_open().
1501
1502	* backend/microtek.h: Ditto.
1503
15041997-10-24  David Mosberger-Tang  <David.Mosberger@acm.org>
1505
1506	* sanei/sanei_config.c (sanei_config_open): Add multiple-directory
1507	support for SANE_CONFIG_DIR.
1508
1509	* sanei/sanei_config.c: New file by Jeff Freedman.
1510	* include/sane/sanei_config.h: Ditto.
1511
15121997-10-23  David Mosberger-Tang  <David.Mosberger@acm.org>
1513
1514	* Fixes for OS/2 by Jeff Freedman:
1515	* frontend/Makefile.in (SBINPROGS): Set to @SANED@.
1516	* configure.os2 (LN_S): Add --sysconfdir=.
1517	* configure.in: Set up SANED depending on <sys/socket.h>.
1518	* backend/Makefile.in (EXTRA): Mention usleep.lo and strndup.lo.
1519	* backend/pnm.c (rgblength, rgbbuf, rgbleftover): Declare as
1520	static.
1521	* ltconfig: Upgrade to 1.0d.
1522	* ltmain.sh: Ditto.
1523	* sanei/sanei_constrain_value.c: Include <sane/config.h>.
1524
15251997-10-22  David Mosberger-Tang  <David.Mosberger@acm.org>
1526
1527	* frontend/gtkglue.h (struct GSGDialog): Remove idle_id member.
1528
1529	* frontend/gtkglue.c (idle_handler): Remove.  GTK's reference
1530	counting appears to have been fixed (?).
1531
1532	* backend/umax_scanner.h: Update with Oliver's latest version.
1533	* backend/umax-scsi.c: Ditto.
1534	* backend/umax-scsidef.h: Ditto.
1535	* backend/umax-struct.h: Ditto.
1536	* backend/umax.c: Ditto.
1537	* backend/umax.h: Ditto.
1538
15391997-10-18  David Mosberger-Tang  <David.Mosberger@acm.org>
1540
1541	* sanei/sanei_scsi.c (sanei_scsi_req_enter): Set cdb.hdr.pack_id
1542	to unique id number.
1543
15441997-10-17  David Mosberger-Tang  <David.Mosberger@acm.org>
1545
1546	* japi/Makefile.in: New file (by Jeff Freedman <jsf@hevanet.com>).
1547	* japi/README.JAVA: Ditto.
1548	* japi/Sane.c: Ditto.
1549	* japi/Sane.java: Ditto.
1550	* japi/SaneDevice.java: Ditto.
1551	* japi/SaneOption.java: Ditto.
1552	* japi/SaneParameters.java: Ditto.
1553	* japi/SaneRange.java: Ditto.
1554	* japi/Test.java: Ditto.
1555
1556	* configure.in (AC_OUTPUT): Mention japi/Makefile.
1557
1558	* sanei/sanei_scsi.c (sanei_scsi_cmd) [USE == IRIX_INTERFACE]:
1559	Add data buffer alignment fix by Michael Sweet.
1560
15611997-10-24  Jeff Freedman <jsf@hevanet.com>
1562
1563	* sanei_open_config() added.  Backends call it to open .conf files.
1564
15651997-10-14  David Mosberger-Tang  <David.Mosberger@acm.org>
1566
1567	* Version 0.66 released.
1568
1569	* README: Update with new URLs and latest GIMP/GTK info.
1570
15711997-10-11  David Mosberger-Tang  <David.Mosberger@acm.org>
1572
1573	* include/sane/saneopts.h: Add #defines for TEN_BIT_MODE, WARMUP,
1574	RGB_PREVIEW_PATCH, and START_SCAN_PATCH.
1575
1576	* README: Remove umax-specific configure options (they're now
1577	runtime options).
1578	* configure.in (CPPFLAGS): Ditto.
1579	* include/sane/config.h.in: Ditto.
1580
1581	* backend/epson.c: Updated
1582
15831997-10-09  David Mosberger-Tang  <David.Mosberger@acm.org>
1584
1585	* backend/umax.c (sane_exit): Remove bogus call to free()
1586	(reported by Peter).
1587
1588Thu Oct  9 20:20:32 1997  Kazuhiro Sasayama  <kaz@hypercore.co.jp>
1589
1590	* epson.c (sane_start): Fix lcount computation.
1591
1592Thu Oct  9 11:44:03 1997  Kazuhiro Sasayama  <kaz@hypercore.co.jp>
1593	* epson.c (sane_start): Use byte-interleaved mode if available.
1594	(sane_start): Set line counter for byte-interleaved mode.
1595	(sane_read): Handle byte-interleaved mode.
1596	(sane_init) [PACKAGE && VERSION]: Debug out PACKAGE and VERSION.
1597
1598Tue Oct  7 18:44:36 1997  Kazuhiro Sasayama  <kaz@hypercore.co.jp>
1599
1600	* epson.c (set_lcount): New function.
1601	(sane_start): Use block mode for monochrome if available.
1602	(sane_read): Handle block mode.
1603
1604	* epson.h (struct Epson_Scanner): Add block.
1605
1606Tue Oct  7 15:48:11 1997  Kazuhiro Sasayama  <kaz@hypercore.co.jp>
1607
1608	* epson.c (set_speed): New function.
1609	(sane_start): Use set_speed.
1610
1611Tue Oct  7 15:44:33 1997  Kazuhiro Sasayama  <kaz@hypercore.co.jp>
1612
1613	* README: Add info about a mailing list.
1614
1615	* Makefile.am (libsane_epsonx_la_LDFLAGS): Increment the revision.
1616
1617	* epson.c (identify): Debug output the command level.
1618
16191997-10-08  David Mosberger-Tang  <David.Mosberger@acm.org>
1620
1621	* backend/mustek.conf: Turn on linedistance-fix and lineart-fix by
1622	default.
1623
1624	* include/sane/config.h.in: Remove
1625	NEED_MUSTEK_LINE_DISTANCE_WORKAROUND.
1626
1627	* doc/sane-mustek.man (CONFIGURATION): Document option
1628	linedistance-fix and lineart-fix.
1629
1630	* configure.in: Remove test for --enable-ld-fix.
1631
1632	* backend/mustek.h (MUSTEK_FLAG_LD_FIX): New flag.
1633	(MUSTEK_FLAG_LINEART_FIX): Ditto.
1634
1635	* backend/mustek.c (line_distance): Replace
1636	NEED_MUSTEK_LINE_DISTANCE_WORKAROUND with runtime test for same.
1637	(reader_process): If MUSTEK_FLAG_LINEART_FIX is on, delay 200ms
1638	when scanning in lineart mode.
1639	(sane_init): New variable.  Add linedistance-fix and lineart-fix
1640	support.
1641
1642	* backend/Makefile.in (install): Fix install rule so all symlinks
1643	necessary for libsane.so are installed.
1644
1645	* backend/dll.c (load): Change from LIBNAME to LIBPATH (as per
1646	libtool-1.0c documentation).
1647
1648	* sanei/sanei_scsi.c (issue): Declare `static'.
1649
1650	* aclocal.m4: Update with contents of libtool.m4.
1651
1652	* configure.in (AC_PROG_RANLIB): Remove (once again!).
1653
1654	* config.guess: Update from libtool-1.0c.
1655	* config.sub: Ditto.
1656	* ltconfig: Ditto.
1657	* ltmain.sh: Ditto.
1658
1659	* backend/epson.c: Update with Kazuhiro's latest epson version
1660	(1.1.6).
1661
16621997-10-07  David Mosberger-Tang  <David.Mosberger@acm.org>
1663
1664	* frontend/gtkglue.c (panel_destroy): Clear elem->menu after
1665	freeing it (reported by Kazuhiro Sasayama <kaz@hypercore.co.jp>).
1666
16671997-10-06  David Mosberger-Tang  <David.Mosberger@acm.org>
1668
1669	* backend/epson.c: Updated with Kazuhiro Sasayama
1670	<kaz@hypercore.co.jp> latest version (1.1.5).
1671
16721997-10-04  David Mosberger-Tang  <David.Mosberger@acm.org>
1673
1674	* Version 0.65 released.
1675
1676	* sanei/sanei_scsi.c (close_aspi): Rename from sanei_close_aspi (static
1677	functions don't need ugly sanei_ prefix...).
1678	(open_aspi): Ditto.
1679
1680	* configure.os2: New file (from Jeff's config.os2).
1681
1682	* backend/umax-scsi.c: Mmove include of <scsi/scsi.h> and
1683	<scsi/sg.h> into !def UMAX_TO_SANE bracket.
1684
1685	* backend/pnm.c (getparmfromfile): Open with mode "rb" to get
1686	binary file on platforms where this is meaningful.
1687
16881997-10-02  David Mosberger-Tang  <David.Mosberger@acm.org>
1689
1690	* doc/sane-epson.man: Mention that backend is known to work with
1691	GT-5000.
1692
16931997-10-01  David Mosberger-Tang  <David.Mosberger@acm.org>
1694
1695	* doc/sane-epson.man: New file (based on Kzuhiro's README file).
1696
1697	* backend/Makefile.in (PRELOADABLE_BACKENDS): Mention epson.
1698	(libsane-epson.la): Add dependencies for Epson backend.
1699
1700	* backend/epson.c: New file by Kazuhiro Sasayama
1701	<kaz@hypercore.co.jp>.
1702	* backend/epson.h: Ditto.
1703
1704	* backend/microtek.c: Updated with latest version from
1705	http://www.mir.com/mtek/ by Matt Marjanovic <maddog@mir.com>.
1706	* backend/microtek.h: Ditto.
1707
17081997-10-3   Jeff Freedman <jsf@hevanet.com>
1709
1710	* sanei/sanei_scsi.c:  Minor fixes for OS/2 support.
1711
1712	* configure.in: Check for presence of sys/socket.h to set @NET@.
1713
1714	* backend/Makefile.in: net -> @NET@
1715
17161997-09-30  David Mosberger-Tang  <David.Mosberger@acm.org>
1717
1718	* sanei/sanei_scsi.c: Integrate OS/2 support by Jeff Freedman:
1719	(OS2_INTERFACE) Define.
1720	(open_aspi,close_aspi): New OS/2-specific functions.
1721	(sanei_scsi_open): Add OS/2 support.
1722	[USE = OS2_INTERFACE]: OS/2 version of sanei_scsi_cmd().
1723	(sanei_scsi_cmd, sanei_scsi_req_wait) [STUBBED_INTERFACE]:
1724	Return proper value.
1725
1726	* include/sane/config.h.in (HAVE_STRNCASECMP, HAVE_OS2_H): Add
1727	#undef.  If !HAVE_STRNCASECMP, define strncasecmp macro as
1728	alias for strnicmp.
1729
1730	* configure.in (AC_CHECK_FUNCS): Check for strncasecmp().
1731	(AC_CHECK_HEADERS): Check for os2.h.
1732
17331997-09-30  David Mosberger-Tang  <David.Mosberger@acm.org>
1734
1735	* sanei/sanei_scsi.c: Integrate OS/2 support by Jeff Freedman:
1736	(OS2_INTERFACE) Define.
1737	(open_aspi,close_aspi): New OS/2-specific functions.
1738	(sanei_scsi_open): Add OS/2 support.
1739	[USE = OS2_INTERFACE]: OS/2 version of sanei_scsi_cmd().
1740	(sanei_scsi_cmd, sanei_scsi_req_wait) [STUBBED_INTERFACE]:
1741	Return proper value.
1742
1743	* include/sane/config.h.in (HAVE_STRNCASECMP, HAVE_OS2_H): Add
1744	#undef.  If !HAVE_STRNCASECMP, define strncasecmp macro as
1745	alias for strnicmp.
1746
1747	* configure.in (AC_CHECK_FUNCS): Check for strncasecmp().
1748	(AC_CHECK_HEADERS): Check for os2.h.
1749
17501997-09-24  David Mosberger-Tang  <davidm@azstarnet.com>
1751
1752	* Version 0.64 released.
1753
1754	* PROJECTS (Backend): Update microtek entry.
1755	Add entry for sgivl.
1756
1757	* backend/microtek.conf: New file.
1758
1759	* backend/dll.conf: Mention microtek.
1760
1761	* backend/Makefile.in (PRELOADABLE_BACKENDS): Mention microtek.
1762	(libsane-microtek.la): Mention microtek dependencies.
1763
1764	* backend/microtek.c: New file by Matthew Marjanovic.
1765	* backend/microtek.h: Ditto.
1766
17671997-09-23  David Mosberger-Tang  <davidm@azstarnet.com>
1768
1769	* sanei/sanei_scsi.c (sanei_scsi_cmd): Integrate Michael Sweet's
1770	latest Irix implementation of sanei_scsi_cmd().
1771
1772Sat Sep  6 08:59:24 1997  David Mosberger-Tang  <David.Mosberger@acm.org>
1773
1774	* Version 0.63 released.
1775
1776	* configure.in (V_MINOR): Bump up to 63.
1777
1778	* configure.in (AM_PROG_RANLIB): Go back to AC_PROG_RANLIB.  The
1779 	former causes a bad configure script.
1780
1781Fri Aug 29 16:08:05 1997  David Mosberger-Tang  <David.Mosberger@acm.org>
1782
1783	* doc/sane-umax.man: Change status of "Astra 1200S" to "all modes ok"
1784	as Oliver tells me that this has been tested and is working now.
1785
1786Wed Aug 20 17:23:04 1997  David Mosberger-Tang  <David.Mosberger@acm.org>
1787
1788	* sane-0.63.lsm: Update email addresses etc.
1789
1790	Integrate Oliver Rauch's UMAX improvements:
1791
1792	* README: Document --enable-umax-preview-fix,
1793 	--enable-umax-start-scan-fix.
1794
1795	* configure.in (UMAX_RGB_PREVIEW, UMAX_START_SCAN_PATCH): Define if
1796	necessary.
1797
1798	* include/sane/config.h.in (UMAX_RGB_PREVIEW, UMAX_START_SCAN_PATCH):
1799	Add #undef.
1800
1801	* include/sane/saneopts.h: Add manifest constants for options
1802	resolution-bind, negative, quality-cal, threshold, analog-gamma,
1803	analog-gamma-r, analog-gamma-g, analog-gamma-b, analog-gamma-bind,
1804	smear, white-bind, black-bind.
1805
1806	* AUTHORS (Frontends): Update email addresses of Oliver Rauch and
1807	myself.
1808
18091997-08-07  David Mosberger-Tang  <davidm@azstarnet.com>
1810
1811	* backend/mustek.c (attach): Print Mustek scanner info at
1812	debug level 2, not 3.
1813
18141997-08-06  David Mosberger-Tang  <davidm@azstarnet.com>
1815
1816	* frontend/preview.c (XSERVER_WITH_BUGGY_VISUALS): Make conditional
1817	on #ifdef __alpha__ (Michael Sweet reports that the old code broke
1818	SGI IRIX 6.3).
1819
18201998-08-01  David Mosberger-Tang  <davidm@azstarnet.com>
1821
1822	* include/sane/config.h.in (HAVE_SYS_SCSICMD_H, HAVE_SYS_DSREQ_H):
1823 	Undefine.
1824
1825	* configure.in (AC_CHECK_HEADERS): Mention sys/scsicmd.h and
1826 	sys/dsreq.h.
1827
1828	* sanei/sanei_scsi.c (SCO_OS55_INTERFACE, IRIX_INTERFACE,
1829 	SOLARIS_INTERFACE): Define.
1830
18311997-07-27  David Mosberger-Tang  <davidm@azstarnet.com>
1832
1833	* frontend/xscanimage.c (quit_xscan) [HAVE_LIBGIMP_GIMP_H]: When
1834	running as a GIMP extension, call gimp_quit().
1835	(init) [HAVE_LIBGIMP_GIMP_H]: Set GDK's xshm flag based on GIMP's
1836	flag.
1837
1838	* doc/sane-mustek.man (SCSI ADAPTER TIPS): Try to make complete
1839	sentences.
1840
18411997-07-25  David Mosberger-Tang  <davidm@azstarnet.com>
1842
1843	* Version 0.62 released.
1844
1845	* configure.in (CPPFLAGS): Test for gtk_gamma_curve_new() to
1846	see whether appropriate version of gtk is installed.
1847
1848	* backend/mustek.c (sane_init): Add parsing support for option
1849	`strip-height'.
1850	(strip_height): New variable to limit scan strip height.
1851	(reader_process): If strip_height is greater than 0.0, limit
1852	lines_per_buffer so that no more than strip_height inches are
1853	scanned with a single SCSI read command.
1854
1855	* doc/sane-mustek.man (CONFIGURATION): Describe strip-height
1856	option.
1857
18581997-07-23  David Mosberger-Tang  <davidm@azstarnet.com>
1859
1860	* doc/sane-hp.man (Model): Added ScanJet 3c info.
1861
18621997-07-22  David Mosberger-Tang  <davidm@azstarnet.com>
1863
1864	* frontend/scanimage.README: Remove file.
1865
1866	* doc/sane-scsi.man: Add info on generic AM53C974 driver.
1867
18681997-07-19  David Mosberger-Tang  <davidm@azstarnet.com>
1869
1870	* sanei/sanei_scsi.c [USE == LINUX_INTERFACE]: Include
1871	<sys/time.h>.
1872
18731997-07-18  David Mosberger-Tang  <davidm@azstarnet.com>
1874
1875	* sanei/sanei_scsi.c (sanei_scsi_req_flush_all)
1876	[WE_HAVE_ASYNC_SCSI]: Implement stub.
1877
1878	* scripts/xerox: New file (simple xeroxing script).
1879
1880	* frontend/scanimage.c (main): When opening a device fails, also
1881	print reason for failure.
1882
1883	* frontend/preview.c (preview_new): Register expose_event handler.
1884	(preview_destroy): Call scan_done() if called when preview
1885	scanning in progress.
1886
1887	* backend/mustek.c (attach): Add argument MAY_WAIT.  If it's TRUE,
1888	wait for scanner to become ready before sending inquiry command.
1889	(do_cancel): Rename to do_stop.  Ignore child's exist status
1890	when we're really cancelling a scan.  Issue stop_scan() command
1891	only if the scan got cancelled and do a wait_ready() before
1892	issuing the stop_scan().
1893	(read_data): Delete.
1894	(sane_init): Call attach() with MAY_WAIT set to SANE_FALSE.
1895	(sane_open): Call attach() with MAY_WAIT set to SANE_TRUE.
1896
1897	* frontend/preview.c (display_partial_image): Use gtk_preview_put()
1898	to update the preview window.  Much faster than hiding/showing the
1899	widget.
1900	(expose_handler): New function.
1901
1902	* frontend/progress.c (progress_new): Make "Cancel" button a
1903	toggle-button so user can see when it was pressed down while
1904	the backend cancels its operation.
1905
1906	* backend/mustek.c (do_cancel): Call wait_ready() before
1907	attempting to stop scanner.
1908	(read_req_enter): New function.
1909	(send_data): Ditto.
1910	(sigterm_handler): New function.
1911	(reader_process): Reimplement using asynchronous SCSI command
1912	interface.
1913	(wait_ready): Use gettimeofday() to implement timeout.  The
1914	scsi command itself may take a considerable amount of time
1915	(1 second or more) so we can't just loop for a fixed number
1916	of times.
1917
1918	* include/sane/sanei_scsi.h: Declre sanei_scsi_req_enter,
1919	sanei_scsi_req_wait, and sanei_scsi_req_flush_all.
1920
1921	* sanei/sanei_scsi.c [WE_HAVE_ASYNC_SCSI]: Define.
1922	(issue): New function.
1923	(sanei_scsi_req_flush_all): New function.
1924	(sanei_scsi_req_enter): Ditto.
1925	(sanei_scsi_req_wait): Ditto.
1926	(sanei_scsi_cmd): Reimplement in terms of enter/wait.
1927	(sanei_scsi_req_enter) [!WE_HAVE_ASYNC_SCSI]: Stub that
1928	simply calls sanei_scsi_cmd().
1929	(sanei_scsi_req_wait): Empty stub.
1930
19311997-07-16  David Mosberger-Tang  <davidm@azstarnet.com>
1932
1933	* doc/sane-scsi.man: Add Tekram DC390 info (contributed by
1934	kawk@Home.Yo.COM (Kolja Waschk))
1935
19361997-07-15  David Mosberger-Tang  <davidm@azstarnet.com>
1937
1938	* sanei/sanei_scsi.c (sanei_scsi_cmd) [USE==LINUX_INTERFACE]:
1939	Return SANE_STATUS_NO_MEM if write() of SCSI command fails.
1940
1941	* backend/mustek.c (do_cancel): If reader_process exited, use
1942	exit status as return value.
1943	(reader_process): Return SANE_STATUS_IO_ERROR instead of 1.
1944	Return SANE_STATUS_NO_MEM instead of 2.  Return STATUS instead
1945	of 3.  Return SANE_STATUS_GOOD instead of 0.
1946	(sane_read): If do_cancel() returns anything but
1947	SANE_STATUS_CANCELLED or SANE_STATUS_GOOD, something bad has
1948	happened and the return status should be returned.
1949
1950	* doc/sane-scsi.man: Fix typo: sg.h is in /usr/include/scsi, not
1951	/usr/include.
1952
1953	* PROBLEMS: Add warning about updating Linux kernel after increasing
1954	SG_BIG_BUFF.
1955
19561997-07-14  David Mosberger-Tang  <davidm@azstarnet.com>
1957
1958	* frontend/xscanimage.c (quit_xscan): Destroy preview window before
1959	quitting, so preview image gets saved if necessary.
1960
1961	* frontend/Makefile.in (LIBX11): New macro.
1962	(LIBGTK): Ditto.
1963	(xscanimage): Use $(LIBGTK) instead of $(LIBS).
1964	(xcam): Use $(LIBGTK) instead of $(LIBS).
1965
1966	* configure.in (LIBX11): Define as all libraries necessary when
1967	using X11.
1968	(LIBGTK): Define as all libraries necessary when using GTK+.
1969
1970	* backend/mustek.c (sane_start): Don't send gamma in lineart and
1971	halftone mode!
1972
1973	* doc/sane-scsi.man: Add info on how to setup BT958 card (contributed
1974	by Jeremy <jeremy@xxedgexx.com>).
1975
19761997-07-13  David Mosberger-Tang  <davidm@azstarnet.com>
1977
1978	* doc/sane-scsi.man: Add info on FreeBSD.
1979
19801997-07-12  David Mosberger-Tang  <davidm@azstarnet.com>
1981
1982	* ltmain.sh: Installed libtool-1.0-nomode patch.
1983
1984	* configure.in (AC_PROG_RANLIB): Change to AM_PROG_RANLIB.
1985
19861997-07-11  David Mosberger-Tang  <davidm@azstarnet.com>
1987
1988	* ltmain.sh: Upgrade to libtool-1.0.
1989	* ltconfig: Ditto.
1990	* config.guess: Ditto.
1991	* config.sub: Ditto.
1992	* aclocal.m4: Ditto.
1993
19941997-07-08  David Mosberger-Tang  <davidm@azstarnet.com>
1995
1996	* Version 0.61 released.
1997
1998	* backend/Makefile.in (LIBLIB_FUNCS): Mention snprintf.
1999
2000	* backend/umax-struct.h (LINEART, HALFTONE, GREYSCALE, RGB): Move
2001	the pound sign to the beginning of the line.
2002	* backend/umax-scsidef.h: Ditto for all indendent #defines in this
2003	file.
2004	* backend/umax-scsi.c: Ditto for all # directives in here.
2005
2006	* frontend/saned.c [HAVE_LIBC_H]: Include <libc.h>.
2007
20081997-07-07  David Mosberger-Tang  <davidm@azstarnet.com>
2009
2010	* backend/net.c [HAVE_LIBC_H]: Include <libc.h>.
2011
2012	* lib/usleep.c: New file (adapted from glibc).
2013
2014	* lib/strndup.c: Move #ifndef HAVE_STRNDUP up so nothing
2015	except <config.h> gets included unless really needed.
2016	Include <sys/types.h> to get size_t defined.
2017
2018	* lib/snprintf.c (vsnprintf): Rename from vplp_snprintf.
2019	(snprintf): Rename from plp_snprintf.
2020
2021	* include/sane/config.h.in: Add #undef HAVE_USLEEP.  Add #undef
2022	HAVE_IO_CAM_CAM_H.
2023
2024	* configure.in: Test ${ac_cv_prog_gcc} instead of $CC to find out
2025	whether we're dealing with gcc.  Test for io/cam/cam.h header.
2026	(AC_C_INLINE): Add.
2027	(AC_CHECK_FUNCS): Mention usleep.
2028	Check for Xext after checking for X11 since on some platforms,
2029	linking against Xext requires functions from X11.
2030
2031	* backend/umax.c (PATH_MAX): Define as 1024 if undefined.
2032
2033	* backend/Makefile.in (CONFIGS): Don't add $(srcdir) prefix.
2034	(LIBLIB_FUNCS): Mention usleep.
2035	(install): Invoke $(LIBTOOL) $(MINST) --finish $(libdir) in
2036	a final step.  Correct installation rule for config files.
2037
20381997-07-06  David Mosberger-Tang  <davidm@azstarnet.com>
2039
2040	* sanei/sanei_scsi.c (sanei_scsi_cmd): New variable RESULT.
2041
20421997-07-05  David Mosberger-Tang  <davidm@azstarnet.com>
2043
2044	* sanei/sanei_scsi.c (sanei_scsi_cmd): Improve BSD version based
2045	on patch by Amancio Hasty <hasty@rah.star-gate.com>.
2046	(BSD_INTERFACE): Rename from NETBSD_INTERFACE (FreeBSD uses the
2047	same interface).
2048
2049	* configure.in (CPPFLAGS): Check for scsireq_enter in libscsi.a.
2050
2051	* doc/Makefile.in (SECT5): Mention sane-scsi.5.
2052	* doc/sane-scsi.man: New file.
2053
2054	* doc/sane-umax.man: Add SEE ALSO section mentioning sane-scsi(5).
2055	* doc/sane-mustek.man: Ditto.
2056
2057	* doc/scanimage.man: Mention sane-umax(5).
2058	* doc/xscanimage.man: Ditto.
2059	* doc/saned.man: Ditto.
2060
2061	* configure.in (AC_TYPE_PID_T): Add.
2062	* include/sane/config.h.in: Add undef of pid_t.
2063
20641997-07-04  David Mosberger-Tang  <davidm@azstarnet.com>
2065
2066	* lib/sigprocmask.c (sigprocmask): Use hardcoded values instead
2067	of SIG_BLOCK, SIG_UNBLOCK, and SIG_SETPROCMASK.
2068
20691997-07-03  David Mosberger-Tang  <davidm@azstarnet.com>
2070
2071	* configure.in (CPPFLAGS): Remove -D_POSIX_SOURCE.  We can't define
2072	it safely since it causes select() related typedefs and defines
2073	to go away under FreeBSD, for example.
2074
20751997-07-02  David Mosberger-Tang  <davidm@azstarnet.com>
2076
2077	* configure.in (CPPFLAGS): Put -D_GNU_SOURCE and -D_POSIX_SOURCE
2078	in CPPFLAGS, not CFLAGS.
2079
2080	* doc/sane-umax.man: Change SG_BIG_BUFF example from 128KB to
2081	127.5KB.
2082	* doc/sane-mustek.man: Ditto.  Mention DTC3181E together with
2083	DTCT436.
2084
2085	* frontend/gtkglue.c (gsg_create_dialog): Initialize dialog->advanced
2086	to TRUE so "dumb" frontends will show all options.
2087
2088	* frontend/xscanimage.c (device_dialog): Turn off advanced options
2089	by default.
2090
2091	* configure.in (AC_CHECK_TYPE): Check for u_long and u_int.
2092	Check for scsireq_t.
2093	* sanei/sanei_scsi.c: Don't define scsireq_t here.
2094
2095	* include/sane/config.h.in: Add undef of u_long, u_int, and
2096	scsireq_t.
2097
20981997-07-01  David Mosberger-Tang  <davidm@azstarnet.com>
2099
2100	* frontend/xscanimage.c (quit_xscan): No longer call
2101	preview_destroy() since that now gets called as part of
2102	the "destroy" callback.
2103
2104	* backend/hp.c (attach) [PREFER_DEVICEPIXEL]: Use device-pixel
2105	unit commands instead of decipoint commands so things work on a 5p
2106	as well (contributed by NOGAYA Shigeki
2107	<nogaya@mbox.kyoto-inet.or.jp>).
2108	(sane_start) [PREFER_DEVICEPIXEL]: Convert from mm to pixels.
2109
2110	* frontend/preview.c (input_available): Break out of per-bit loop
2111	when done with one line (fix contributed by NOGAYA Shigeki
2112	<nogaya@mbox.kyoto-inet.or.jp>).
2113	* frontend/xscanimage.c (input_available): Ditto.
2114
2115	* doc/sane-umax.man: Rename SCSI id to Product id to reduce
2116	confusion.
2117	* doc/sane-hp.man: Ditto.
2118	* doc/sane-mustek.man: Ditto.
2119
2120	* backend/mustek.c (wait_ready): Ignore errors during wait_ready().
2121	With 3-pass scanners, ncr810 driver returns EIO while the scanner
2122	is getting ready for pass 2 or 3.
2123
21241997-06-30  David Mosberger-Tang  <davidm@azstarnet.com>
2125
2126	* backend/mustek.c (sense_handler): Print debug info if we
2127	find unknown sense result.
2128
2129	* sanei/sanei_scsi.c (sanei_scsi_cmd): Consider sense_buffer[]
2130	only when result != 0.
2131
2132	* frontend/scanimage.c (sighandler): Change return value type
2133	from void to RETSIGTYPE (from <sane/config.h>).
2134
2135	* doc/sane-mustek.man: Mention problems with MSFS-12000SP.
2136
2137	* backend/umax.c (sane_start): Don't use C++ style line comments.
2138
2139	* backend/umax-scsi.c (umax_do_scsi_cmd): Use sigemptyset() to clear
2140	out signal set.  Include <sane/config.h>.
2141
2142	* frontend/saned.c [HAVE_SYS_SELECT_H]: Include <sys/select.h>.
2143	* include/sane/config.h.in: Mention HAVE_SYS_SELECT_H.
2144
2145Thu Jun 26 10:19:50 1997  David Mosberger-Tang  <davidm@azstarnet.com>
2146
2147	* README: Mention permissions on generic SCSI device.
2148
2149Tue Jun 24 17:35:52 1997  David Mosberger-Tang  <davidm@azstarnet.com>
2150
2151	* doc/xscanimage.man: Fix spacing.
2152
2153	* doc/sane-dll.man: Mention how list of pre-loaded backends
2154	can be changed.
2155
2156Sun Jun 22 08:29:47 1997  David Mosberger-Tang  <davidm@azstarnet.com>
2157
2158	* PROBLEMS: Add note on SCSI device names under OpenStep.
2159
2160	* sanei/sanei_scsi.c (sanei_scsi_cmd): Fix various minor bugs.
2161	(sanei_scsi_open): Add support for OpenStep.
2162
2163	* backend/Makefile.in (install): Replace 'ln -f -s' with `rm -f',
2164 	`ln -s' sequence.  OpenStep doesn't support the -f option at all.
2165
2166Fri Jun 20 07:30:18 1997  David Mosberger-Tang  <davidm@azstarnet.com>
2167
2168	* doc/sane-qcam.man: Updated B&W status.
2169
2170	* sanei/sanei_save_values.c [HAVE_LIBC_H]: Include <libc.h>.
2171	* sanei/sanei_load_values.c: Ditto.
2172
2173	* lib/sigprocmask.c: New file.
2174	* lib/strdup.c: Ditto.
2175
2176	* lib/Makefile.in (LIBLIB_OBJS): Mention strdup.o and sigprocmask.o.
2177	(LIBLIB_LTOBJS):  Mention strdup.lo and sigprocmask.lo.
2178	(liblib.a): Use $(RANLIB) instead of -ranlib.
2179
2180	* include/sane/sanei_backend.h [!HAVE_SIGPROCMASK]: Define
2181 	compatibility macros sigset_t, sigemptyset(), sigfillset(),
2182	sigaddset(), sigdelset(), and sigaction().
2183	Define macro SIGACTION.
2184
2185	* frontend/saned.c (HAVE_VARARG_MACROS): Don't define unless we
2186	have at least gcc 2.6.
2187	* include/sane/sanei_debug.h Ditto.  Use HAVE_VARARG_MACROS
2188	instead of __GNUC__.
2189	* sanei/sanei_init_debug.c: Ditto.
2190
2191	* configure.in (AC_PROG_RANLIB): Mention.
2192	(CFLAGS): Move up near the beginning and add -D_POSIX_SOURCE.
2193	(AC_CHECK_HEADERS): Test for libc.h.
2194	(AC_TYPE_SIGNAL): Mention.
2195	(AC_CHECK_FUNCS): Check for sigprocmask.
2196
2197	* backend/net.c (sane_init): Honor SANE_NET_HOSTS even if
2198	net.conf does not exist.
2199
2200	* backend/mustek.c (sane_start): Use "struct SIGACTION" so it's
2201	easier to make code work on platforms that don't support
2202	sigprocmask().
2203	* backend/umax.c (sane_start): Ditto.
2204
2205	* ltmain.sh: Upgrade to libtool-0.9h.
2206	* ltconfig: Ditto.
2207	* config.guess: Ditto.
2208	* config.sub: Ditto.
2209	* aclocal.m4: Ditto.
2210
2211Thu Jun 19 08:26:33 1997  David Mosberger-Tang  <davidm@azstarnet.com>
2212
2213	* configure.in (V_MINOR): Update forgotten version number...
2214
2215	* backend/qcam.c (reader_process): Scale 4 and 6 bpp to 8 bpp.
2216
2217	* backend/mustek.h (MUSTEK_FLAG_LD_NONE): New flag.
2218	* backend/mustek.c (attach): Turn on MUSTEK_FLAG_LD_NONE for
2219	MSF-06000SP (this fixes the problems for Andreas Gaumann
2220 	<gg261@appl2.hrz.uni-siegen.de>).
2221	(attach): Print debug message when MUSTEK_FLAG_LD_NONE is on.
2222	(line_distance): Fix up ld correction only if MUSTEK_FLAG_LD_NONE
2223	is not on.
2224
2225Wed Jun 18 15:42:25 1997  David Mosberger-Tang  <davidm@azstarnet.com>
2226
2227	* doc/sane.tex (section{Image Data Format}}): Clarify
2228	what valid bit-depths are.
2229
2230Tue Jun 17 07:47:51 1997  David Mosberger-Tang  <davidm@azstarnet.com>
2231
2232	* backend/qcam.c (sane_get_parameters): Test for != QC_COLOR
2233	instead of == QC_MONO.  Apparently, there are several versions
2234	of the monochrome camera.
2235	(qc_setscanmode): Ditto.
2236
2237	* lib/snprintf.c: Update with latest version (also includes
2238	license information now).
2239
2240	* sane-0.6.lsm (Author): Update Tristan Tarrant's email address.
2241	* AUTHORS: Ditto.
2242	* frontend/xscanimage.c: Ditto.
2243
2244Sun Jun 15 10:08:44 1997  David Mosberger-Tang  <davidm@azstarnet.com>
2245
2246	* doc/xscanimage.man: Add section on how to run xscanimage under
2247 	the GIMP.
2248
2249	* frontend/xscanimage.c (init) [HAVE_LIBGIMP_GIMP_H]: Call
2250 	gtk_rc_parse() with gimp_gtk_rc() to get space-saving layout of
2251 	The GIMP. (Suggested by Sven Neumann.)
2252
2253	* sanei/sanei_scsi.c (sanei_scsi_cmd): Add NeXTStep/OpenStep
2254 	implementation.
2255	(sanei_scsi_cmd): Adjust NetBSD version to make it more like
2256	NeXTStep/OpenStep version.
2257
2258	* configure.in (AC_CHECK_HEADERS): Mention bsd/dev/scsireg.h.
2259
2260Thu Jun 19 15:19:38 1997  Gordon Matzigkeit  <gord@gnu.ai.mit.edu>
2261
2262	* backend/umax-scsi.c: Parameterize slightly more so that the
2263 	build succeeds on non-Linux platforms.
2264
2265	* Makefile.in, backend/Makefile.in, doc/Makefile.in,
2266 	frontend/Makefile.in (install): Fail immediately if any
2267 	installation fails.  Use mkinstalldirs to create all installation
2268 	directories.
2269
2270Sat Jun 14 11:07:13 1997  David Mosberger-Tang  <davidm@azstarnet.com>
2271
2272	* Version 0.6 released.
2273
2274	* frontend/preview.c (preview_new): Connect "destroy" signal
2275	so we notice if window manager closes our window.
2276	(top_destroyed): New function.
2277
2278	* frontend/xscanimage.c (scan_preview): Make it robust against
2279 	preview_new() returning NULL and connect "destroy" signal so we
2280 	notice when the window manager closes the preview window.
2281	(preview_window_destroyed): New function.
2282
2283	* LICENSE: New file.
2284
2285	* backend/dll.c: Change license from GPL to relaxed GPL.
2286	* backend/hp.c: Ditto.
2287	* backend/hp.h: Ditto.
2288	* backend/mustek.c: Ditto.
2289	* backend/mustek.h: Ditto.
2290	* backend/net.c: Ditto.
2291	* backend/net.h: Ditto.
2292	* backend/pint.c: Ditto.
2293	* backend/pint.h: Ditto.
2294	* backend/pnm.c: Ditto.
2295	* backend/pnm.h: Ditto.
2296	* backend/qcam.c: Ditto.
2297	* backend/qcam.h: Ditto.
2298	* sanei/sanei_codec_ascii.c: Ditto.
2299	* sanei/sanei_codec_bin.c: Ditto.
2300	* sanei/sanei_constrain_value.c: Ditto.
2301	* sanei/sanei_init_debug.c: Ditto.
2302	* sanei/sanei_load_values.c: Ditto.
2303	* sanei/sanei_net.c: Ditto.
2304	* sanei/sanei_save_valus.c: Ditto.
2305	* sanei/sanei_scsi.c: Ditto.
2306	* sanei/sanei_wire.c: Ditto.
2307
2308Fri Jun 13 18:35:47 1997  David Mosberger-Tang  <davidm@azstarnet.com>
2309
2310	* lib/snprintf.c: New file (Patrick Powell).
2311
2312	* frontend/xcam.c: Use guint32 and guint32 instead of u_int16_t
2313 	and u_int32_t (Tristan Tarrant).
2314
2315	* doc/Makefile.in (SECT5): Mention sane-umax.5.
2316
2317	* configure.in (PACKAGE_VERSION): Check for snprintf (Tristan
2318 	Tarrant).
2319
2320	* backend/dll.conf: Mention umax.
2321
2322	* backend/umax-scanner.h: New file (from umax-0.5.5).
2323	* backend/umax-scsi.c: Ditto.
2324	* backend/umax-scsidef.h: Ditto.
2325	* backend/umax-struct.h: Ditto.
2326	* backend/umax-uc630.h: Ditto.
2327	* backend/umax-ug630.h: Ditto.
2328	* backend/umax-umax.c: Ditto.
2329	* backend/umax.conf: Ditto.
2330	* backend/umax.h: Ditto.
2331	* doc/sane-umax.5: Ditto.
2332
2333	* backend/Makefile.in (PRELOADABLE_BACKENDS): Mention umax.
2334	(libsane-umax.la): List dependencies for umax library.
2335
2336	* COPYING: New file.
2337
2338	* include/sane/config.h.in: Add #undef HAVE_SNPRINTF.
2339
2340Tue Jun 10 21:00:34 1997  David Mosberger-Tang  <davidm@azstarnet.com>
2341
2342	* ltmain.sh: Upgrade to libtool-0.9g.
2343
2344Sun Jun  8 21:24:27 1997  David Mosberger-Tang  <davidm@azstarnet.com>
2345
2346	* backend/dll.c (load): Also check SHLIB_PATH (HP-UX) and LIBPATH
2347 	(AIX).
2348
2349	* include/sane/config.h.in: Remove HAVE_GTK_GTKCURVE_H.
2350
2351Sat Jun  7 11:19:57 1997  David Mosberger-Tang  <davidm@azstarnet.com>
2352
2353	* frontend/xscanimage.c (pref_device_save): Call gsg_sync() before
2354	saving the values.
2355
2356	* backend/Makefile.in (libsane-%.la): Add -export-dynamic flag.
2357
2358	* frontend/xscanimage.c (query): Rename "/Extensions/" to "/Xtns/"
2359 	to reflect gimp-0.99.10 changes.
2360	(query): Don't put in separator---it confuses gimp.
2361	(main): Temporarily install a null print handler so gimp_main()
2362 	doesn't produce any ugly messages when program gets invoked in
2363 	stand-alone mode.
2364
2365	* ltconfig: Upgrade libtool to version 0.9f.
2366	* ltmain.sh: Ditto.
2367	* config.guess: Ditto.
2368	* config.sub: Ditto.
2369
2370	* frontend/Makefile.in (install): Define MKDIR as
2371	$(top_srcdir)/mkinstallldirs.
2372	Use $(MKDIR) instead of mkdir.
2373	* backend/Makefile.in (install): Ditto.
2374	* doc/Makefile.in (install): Ditto.
2375
2376	* mkinstalldirs: New file (from maint-0.1g).
2377
2378Tue Jun  3 10:29:17 1997  David Mosberger-Tang  <davidm@azstarnet.com>
2379
2380	* LEVEL2: New file.
2381
2382Sun Jun  1 13:26:40 1997  David Mosberger-Tang  <davidm@azstarnet.com>
2383
2384	* doc/Makefile.in (LATEX, DLH): New macros.
2385	(sane.ind): Prefix source filename with $(srcdir).
2386	(ps): Ditto.
2387	(html): Ditto.
2388
2389	* doc/net.tex (subsection{SANE_NET_START}): Document member
2390	byte_order.
2391
2392	* sanei/sanei_net.c (sanei_w_start_reply): (De-)code BYTE_ORDER
2393 	member.
2394
2395	* frontend/saned.c (byte_order): New union.
2396	(process_request): Initialize byte_order member.
2397
2398	* include/sane/sanei_net.h (SANE_Net_Byte_Order): New enum type.
2399	(SANE_Start_Reply): New member BYTE_ORDER.
2400
2401Wed May 28 17:13:43 1997  David Mosberger-Tang  <davidm@azstarnet.com>
2402
2403	* doc/Makefile.in (install): Create $(mandir)/man1 and
2404 	$(mandir)/man5 if necessary.
2405
2406Tue May 27 09:31:39 1997  David Mosberger-Tang  <davidm@azstarnet.com>
2407
2408	* backend/hp.c: Remove s7_range and s1_range.
2409	(attach): Add inquiry of min/max brightness/contrast and fill in
2410 	dev->brightness_range and dev->contrast_range accordingly.
2411	(init_options): Use s->hw->brightness_range instead of s7_range.
2412  	Use s->hw->contrast_range instead of s7_range.  Disable contrast
2413 	option if min value is same as max value.
2414
2415	* backend/hp.h (struct HP_Device): Add members BRIGHTNESS_RANGE
2416 	and CONTRAST_RANGE.
2417
2418	* sanei/sanei_scsi.c (sanei_scsi_open): Add more debug info.
2419
2420Mon May 26 10:43:51 1997  David Mosberger-Tang  <davidm@azstarnet.com>
2421
2422	* sanei/Makefile.in: Add definitions for VPATH, srcdir, top_srcdir,
2423 	and top_builddir.
2424	(INCLUDES): Move -I directives from CPPFLAGS to this macro.  Also
2425 	search in $(srcdir), $(top_builddir)/include, and
2426	$(top_srcdir)/include.
2427
2428	* lib/Makefile.in: Add definitions for VPATH, srcdir, top_srcdir,
2429 	and top_builddir.
2430	(INCLUDES): Move -I directives from CPPFLAGS to this macro.  Also
2431 	search in $(srcdir), $(top_builddir)/include, and
2432	$(top_srcdir)/include.
2433
2434	* include/Makefile.in: New file.
2435
2436	* frontend/Makefile.in: Add definitions for VPATH, srcdir, top_srcdir,
2437 	and top_builddir.
2438	(INCLUDES): Also search in $(srcdir), $(top_builddir)/include, and
2439	$(top_srcdir)/include.
2440	(install): Add $(srcdir) prefix to sane-style.rc.
2441
2442	* doc/Makefile.in: Add definitions for VPATH, srcdir, top_srcdir,
2443 	and top_builddir.
2444	(%.1 %.5): Use $^ instead of $* so source file can be found even
2445	when in a different directory.
2446
2447	* configure.in (AC_OUTPUT): Create (dummy) include/Makefile to
2448	ensure include directory exists in build tree.
2449
2450	* backend/Makefile.in: Add definitions for VPATH, srcdir,
2451 	top_srcdir, and top_builddir.
2452	(INCLUDES): Also search in $(srcdir), $(top_builddir)/include, and
2453	$(top_srcdir)/include.
2454	(CONFIGS): Add $(srcdir) prefix.
2455	(%-s.c): Ditto.
2456
2457	* Makefile.in (INSTALLED_INCLUDES): Mention include/sane/config.h.
2458	Add definitions for VPATH, srcdir, top_srcdir, and top_builddir.
2459	(INSTALLED_INCLUDES): Change include/sane to $(top_srcdir)/include/sane
2460	and use "addprefix" function to add prefix.
2461
2462Thu May 15 07:26:06 1997  David Mosberger-Tang  <davidm@azstarnet.com>
2463
2464	* doc/sane-mustek.man (Model): Add entry for MFC-600CD.
2465	(Model): Mention AHA-2940.
2466
2467	* frontend/xscanimage.c (scan_dialog): Move gsg_sync() to here
2468 	(from scan_start()).
2469
2470	* backend/mustek.c (init_options): Disable brightness/contrast for
2471 	1-pass scanners only (in color mode).
2472
2473Wed May 14 09:17:02 1997  David Mosberger-Tang  <davidm@azstarnet.com>
2474
2475	* backend/mustek.c: Add ax_brightness_range, ax_contrast_range.
2476	(init_options): Use ax_brightness_range/ax_contrast_range for
2477	brightness/contrast option when using a 3-pass scanner.
2478	(encode_percentage): Remove extraneous division by 100.0.
2479
2480	* doc/sane-mustek.man (Model): Add MFS-12000CX entry.
2481
2482Mon May 12 07:58:34 1997  David Mosberger-Tang  <davidm@azstarnet.com>
2483
2484	* frontend/scanimage.c (main): Shorten help string so it fits in
2485 	80 characters.
2486
2487	* frontend/preview.c (paint_image): Only increment height if
2488 	height < p->image_height.
2489
2490Sat May 10 14:43:05 1997  David Mosberger-Tang  <davidm@azstarnet.com>
2491
2492	* Version 0.57 released.
2493
2494	* backend/mustek.c (attach): Fix range to 220x300mm.
2495	(init_options): Initialize OPT_PREVIEW and OPT_GRAY_PREVIEW.
2496	(sane_control_option): Handle OPT_PREVIEW and OPT_GRAY_PREVIEW.
2497  	Do not allow OPT_NUM_OPTS to be set.
2498	(sane_get_parameters): Except for s->params.format and
2499 	s->params.last_frame, do not change any parameters when scanning
2500	is in progress.
2501	(sane_start): Handle mono-chrome previewing.
2502
2503	* backend/mustek.h (Mustek_Option): Add OPT_PREVIEW and
2504 	OPT_GRAY_PREVIEW.
2505
2506	* frontend/progress.c (progress_new): Fix position of progress bar
2507 	window to (progress_x,progress_y).
2508
2509	* frontend/gtkglue.c (panel_build): Skip Preview option.
2510
2511Thu May  8 19:39:48 1997  David Mosberger-Tang  <davidm@azstarnet.com>
2512
2513	* doc/scanimage.man: New file.
2514
2515	* doc/Makefile.in (SECT1): Mention scanimage.1.
2516
2517	* backend/dll.conf: Add hp to dll.conf.
2518
2519Wed May  7 07:28:18 1997  David Mosberger-Tang  <davidm@azstarnet.com>
2520
2521	* include/sane/sanei_scsi.h (SANEI_SCSI_Sense_Handler): New type.
2522	(sanei_scsi_close): Add SENSE_HANDLER argument (NULL means no
2523 	special handler needed).
2524
2525	* backend/hp.c (sane_start): Pass 0 as SENSE_HANDLER argument.
2526	(attach): Ditto.
2527
2528	* backend/mustek.c (sense_handler): Rename from request_sense and
2529	simplify.
2530	Remove all explicit request-sense calls.
2531
2532	* sanei/sanei_scsi.c: Include <stdlib.h>.
2533	(num_handlers_alloced): New variable.
2534	(sense_handler): Ditto.
2535	(sanei_scsi_open): Add SENSE_HANDLER argument.  Stash it away in
2536 	SENSE_HANDLER array if non-NULL.
2537	(sanei_scsi_cmd) [HAVE_SYS_SG]: Invoke SENSE_HANDLER[FD] if it
2538 	exists and is non-NULL and we have a valid sense-buffer.
2539	(sanei_scsi_cmd) [HAVE_SYS_SCSI]: Ditto.
2540	(sanei_scsi_close): Reset SENSE_HANDLER[FD] to NULL if it exists.
2541
2542	* frontend/xcam.c: Include <sane/config.h>.
2543
2544	* configure.in: Add a big fat warning that PROBLEMS should be
2545	read before running any programs.
2546
2547	* PROBLEMS: Add info on how to avoid damaging Mustek scanners.
2548
2549Mon May  5 07:06:54 1997  David Mosberger-Tang  <davidm@azstarnet.com>
2550
2551	* doc/sane.tex (chapter{Contact Information}): Fix URL.
2552
2553	* doc/net.tex: Add missing sections.  Make into chapter.
2554
2555	* backend/pint.README: Remove.
2556
2557	* backend/dll.c (ASSERT_SPACE): Call malloc() when devlist is
2558 	NULL.  SunOS realloc() returns NULL otherwise.
2559	* backend/net.c (ASSERT_SPACE): Ditto.
2560
2561Sun May  4 09:21:48 1997  David Mosberger-Tang  <davidm@azstarnet.com>
2562
2563	* frontend/saned.c (EXIT_SUCCESS): Define as 0 if not defined by
2564 	stdlib.h.
2565
2566	* frontend/scanimage.c: Include <sys/types.h>.
2567
2568	* backend/qcam.c: Define PATH_MAX as 1024 if limits.h doesn't
2569 	define it.
2570	* backend/dll.c: Ditto.
2571	* backend/hp.c: Ditto.
2572	* backend/mustek.c: Ditto.
2573	* backend/net.c: Ditto.
2574	* backend/pint.c: Ditto.
2575	* backend/qcam.c: Ditto.
2576	* frontend/xscanimage.c: Ditto.
2577	* frontend/xcam.c: Ditto.
2578	* frontend/preview.c: Ditto.
2579
2580	* sanei/sanei_wire.c: Include <sane/config.h>.
2581	* sanei/sanei_net.c: Ditto.
2582	* sanei/sanei_codec_ascii.c: Ditto.
2583	* sanei/sanei_codec_bin.c: Ditto.
2584	* sanei/sanei_save_values.c: Ditto.
2585	* backend/net.c: Ditto.
2586	* frontend/saned.c: Ditto.
2587
2588	* configure.in (AC_CHECK_HEADERS): Mention
2589 	/usr/src/linux/include/scsi/sg.h.
2590
2591	* include/sane/config.h.in: Add
2592 	#undef HAVE__USR_SRC_LINUX_INCLUDE_SCSI_SG_H.
2593
2594	* sanei/sanei_scsi.c [HAVE__USR_SRC_LINUX_INCLUDE_SCSI_SG_H]:
2595 	Include "/usr/src/linux/include/scsi/sg.
2596	(sanei_scsi_cmd): Use Linux version if either HAVE_SCSI_SG_H or
2597	HAVE__USR_SRC_LINUX_INCLUDE_SCSI_SG_H are defined.
2598
2599	* doc/xscanimage.man: Rename --no-shm to --no-xshm.
2600
2601Mon Apr 28 09:55:02 1997  David Mosberger-Tang  <davidm@azstarnet.com>
2602
2603	* Version 0.56 released.
2604
2605	* backend/qcam.c (sane_open): Move disabling of despeckle-filter
2606	for b&w cameras to here (from init_options()).
2607
2608	* frontend/preferences.c: Add missing default value for FILENAME.
2609
2610	* backend/qcam.h: Add QC_BW_SET_CONTRAST,
2611 	QC_BW_AUTO_ADJUST_OFFSET, and QC_BW_GET_OFFSET.  * backend/qcam.c
2612 	(sane_start): Use QC_BW_SET_CONTRAST when dealing with B&W camera.
2613  	Fix computation of QC_SET_NUM_H value.  [Based on Guido Muensch's
2614 	patches.]
2615
2616	* frontend/scanimage.c (advance): Move out-of-memory error message
2617 	from scan_it() to here.
2618	(scan_it): When height is known a priori, allocate one extra line
2619 	to avoid realloc() when image has been filled.
2620
2621	* backend/hp.c (BACKEND_NAME): Define as hp (reported by Henryk
2622 	Paluch).
2623
2624	* backend/mustek.c (request_sense): Increase result size from 4 to
2625 	16 bytes to shut up aha1542 driver (reported by Mathias Lautner).
2626
2627	* frontend/scanimage.c (advance): Fix memory allocation logic
2628	(bug reported by Matthias Lautner).
2629
2630	* doc/sane-dll.man: Clarify that pre-loaded backends are not
2631 	affected by dll.conf.
2632
2633	* doc/sane-pint.man: New file (contributed by Gordon Matzigkeit).
2634
2635	* backend/dll.c (RTLD_NOW): Define as 0 if dlfcn.h doesn't define
2636 	it.
2637
2638Wed Apr 23 23:03:47 1997  Gordon Matzigkeit  <gord@gnu.ai.mit.edu>
2639
2640	* backend/Makefile.in, frontend/Makefile.in: Specify full
2641 	filenames, rather than just the directory name for INSTALL
2642 	destinations.  This Automakeism helps debugging when the target
2643 	directory doesn't exist.
2644
2645	* include/sane/config.h.in (HAVE_SYS_SCANIO_H): Define, for PINT's
2646	sake.
2647
2648	* backend/pint.c: Prefix sane includes with <sane/...>.
2649
2650	* backend/dll.c (RTLD_NOW): Paramaterize, so that RTLD_LAZY is
2651	used if RTLD_NOW is not defined.
2652	(load): Try looking up the symbol with a leading underscore, if we
2653 	can't find it the first time.
2654
2655	Make dynamic loading conditional on HAVE_DLOPEN rather than the
2656 	library and header file.
2657
2658	* configure.in (enable_dynamic): Disable dynamic loading if the
2659	system doesn't have dlopen.
2660
2661Tue Apr 22 00:17:41 1997  David Mosberger-Tang  <davidm@azstarnet.com>
2662
2663	* Version 0.55 released.
2664
2665	* frontend/xscanimage.c (browse_filename_callback): Initialize
2666	FILENAME before calling gsg_get_filename().
2667
2668	* doc/sane.tex: Change obsolete \driver{DVIps} into DVIps document
2669 	style option.
2670
2671	* frontend/xscanimage.c (query): Update to new command name
2672 	length.
2673
2674Mon Apr 21 08:27:28 1997  David Mosberger-Tang  <davidm@azstarnet.com>
2675
2676	* doc/Makefile.in (install): Add rule to install man-pages.
2677	(%.1 %.5): Add rule to generate man-pages (by substituting
2678	actual paths).
2679	(SECT1): New variable.
2680	(SECT5): Ditto.
2681	(MANPAGES): Ditto.
2682
2683	* doc/sane-pnm.man: New file.
2684	* backend/pnm.README: Deleted.
2685
2686	* doc/sane-hp.man: New file.
2687	* backend/hp.README: Deleted.
2688
2689	* doc/saned.man: New file.
2690	* frontend/saned.README: Deleted.
2691
2692	* doc/sane-qcam.man: New file.
2693	* backend/qcam.README: Deleted.
2694
2695	* doc/sane-mustek.man: New file.
2696	* backend/mustek.README: Deleted.
2697
2698	* doc/sane-net.man: New file.
2699	* backend/net.README: Deleted.
2700
2701	* doc/sane-dll.man: New file.
2702	* backend/dll.README: Deleted.
2703
2704	* doc/xscanimage.man: New file.
2705	* frontend/xscanimage.README: Deleted.
2706
2707	* frontend/preview.c (event_handler): Restore preview image only
2708	if preferences.preserve_preview is TRUE.
2709
2710	* frontend/xscanimage.c (preview_options_dialog): Add an option
2711	to control whether the preview image should be preserved.
2712
2713	* sanei/sanei_load_values.c (sanei_load_values): Copy string value
2714	into temporary buffer that is opt->size bytes long.  Then pass copy
2715	to sane_control_option().
2716
2717	* AUTHORS (Backends): Updated according to recent changes.
2718
2719	* doc/sane.tex (The SANE Application Programmer Interface (API)):
2720 	Fix typo: replace () by {}.
2721
2722	* PROJECTS (Backend): Update PINT entry.
2723
2724	* frontend/xscanimage.c (prog_name): New variable.
2725	(input_available): Use prog_name instead of hardcoding "xscan".
2726	(preview_options_ok_callback): Ditto.
2727	(preview_options_dialog): Ditto.
2728	(usage): Ditto.
2729	(interface): Ditto.
2730	(main): Initialize prog_name.
2731
2732	* frontend/scanimage.c: Update for new name (scanimage instead of
2733 	scan).
2734
2735	* frontend/Makefile.in (SCAN_OBJS): Rename sources to xscanimage.c
2736 	and scanimage.c as well.
2737
2738Sun Apr 20 09:09:06 1997  David Mosberger-Tang  <davidm@azstarnet.com>
2739
2740	* Version 0.54 released.
2741
2742	* sanei/Makefile.in (LIBSANEI_LTOBJS): Remove @LTALLOCA@.
2743	(LIBSANEI_OBJS): Remove @ALLOCA@.
2744
2745	* lib/Makefile.in: Invoke $(LIBTOOL) with --mode arg to avoid
2746 	depending on command names.  Prefix $(LIBTOOL) invocation with
2747	@-sign to reduce verbosity.
2748	* frontend/Makefile.in: Ditto.
2749	* backend/Makefile.in: Ditto.
2750	* sanei/Makefile.in: Ditto.
2751
2752	* frontend/saned.c (_PATH_HEQUIV): Define if not defined yet..
2753
2754	* configure.in: Check for libgimp/gimp.h instead of -lgimp since
2755	-lgimp cannot be linked by itself (it has an unresolved reference
2756	to PLUG_IN_INFO).
2757
2758	* lib/strndup.c (strndup): Include <stdlib.h>.
2759
2760	* frontend/xscanimage.README: Update.
2761
2762	* sanei/sanei_scsi.c: Add missing "int" type in front of
2763 	sanei_scsi_max_request_size.
2764
2765	* configure.in: Check for -lintl, -lsocket, and -lnsl for
2766 	braindamaged SVR4 systems.
2767
2768	* frontend/scan.c (scan_it): Initialize min with 0xff, not ~0
2769	(Sun CC complains otherwise).
2770
2771	* backend/Makefile.in: Use "ln -f -s", not "ln -sf", Solaris doesn't
2772	like the former.  Grrr...
2773
2774	* lib/alloca.c: Don't use xmalloc().
2775
2776	* frontend/saned.c (store_reclen): Declare BUF as a pointer to
2777 	SANE_Byte (not char).
2778	(do_scan): Ditto.
2779
2780	* frontend/scan.c (fetch_options): Cast opt->name to (char *)
2781	to suppress (spurious) warning.
2782
2783	* backend/dll.c (sane_init): Skip preloaded backends with no name.
2784
2785	* backend/hp.c (inquire): Cast BUF to (char *) to avoid warning.
2786	(sane_read): Change type of NREAD to size_t (from ssize_t).
2787
2788	* include/sane/sanei_backend.h (u_int16_t): Define u_int8_t,
2789 	u_int16_t, and u_int32_t if necessary.
2790
2791	* include/sane/sane.h (sane_strstatus): Remove non-ANSI "const".
2792	* backend/sane_strstatus.c (sane_strstatus): Ditto
2793
2794	* include/sane/sanei_debug.h (DBG): Define alternate version for
2795	non-GNU C compilers.
2796
2797	* sanei/sanei_init_debug.c (sanei_debug) [!__GNUC__]: New function.
2798	(max_level) [!__GNUC__]: New variable.
2799
2800	* include/sane/sanei_wire.h: Fix typo in prototype for
2801 	sanei_w_value_type.
2802
2803	* configure.in: Test for gtk_check_button_new() in libgtk.
2804
2805	* lib/Makefile.in (CPPFLAGS): Add -I../include/sane.
2806
2807	* frontend/scan.c (STRIP_HEIGHT): New macro.
2808	(advance): Use above macro instead of hard-coding value.
2809	(scan_it): Ditto.
2810	(scan_it): Print error when out of memory.
2811
2812	* frontend/sane-style.rc: Make the curve in the graph red.
2813
2814	* frontend/preview.c (XSERVER_WITH_BUGGY_VISUALS): Define for now.
2815	(preview_new): Avoid push_visual()/get_visual() since it seems to
2816 	cause problems with some XFree86 servers (and may be others as
2817 	well).
2818
2819	* frontend/preferences.h: Add member ADVANCED.
2820	* frontend/preferences.c: Initialize member ADVANCED and add
2821	an option descriptor for it.
2822
2823	* frontend/gtkglue.c (panel_build): Layout panel different: all
2824 	options are now in one column (advanced options are at the
2825 	bottom).  The graph widget (if any), will be shown in a separate
2826 	column to the right of the options.  Display a group only when
2827 	there is at least one option in it.  Create graph widget if there
2828 	is at least one vector-valued option.
2829	(gsg_sync): New function.
2830	(gsg_set_advanced): Ditto.
2831	(gsg_message_dialog_active): Rename from SHOWING_MESSAGE and make
2832	global.
2833
2834	* frontend/gtkglue.h (GSGDialog): Rename member NOTEBOOK to
2835 	MAIN_HBOX.  Add members ADVANCED_VBOX and ADVANCED.
2836
2837	* frontend/gtkglue.c (group_new): New function.
2838	(curve_new): Ditto.
2839	(vector_new): Ditto.
2840
2841	* backend/mustek.c (init_options): Initialize OPT_CUSTOM_GAMMA.
2842	(sane_control_option): Handle OPT_CUSTOM_GAMMA.
2843
2844	* backend/mustek.h (OPT_CUSTOM_GAMMA): New option.
2845
2846	* configure.in (AC_CONFIG_HEADER): Update for new location.
2847
2848	* include/sane/config.h.in: Move to here from include/config.h.
2849	* *.[ch]: Replace <config.h> with <sane/config.h> (except for
2850	files in lib.
2851
2852	* frontend/saned.README: saned moved from bin/saned to sbin/saned.
2853
2854	* configure.in (AC_CHECK_HEADERS): Check for gtk/gtkcurve.h.
2855
2856	* backend/mustek.c (init_options): Undo changes of April 18th.
2857
2858	* frontend/Makefile.in (install): Install $(BINPROGS) in $(bindir)
2859 	and $(SBINPROGS) in $(sbindir).
2860	(SBINPROGS): New variable.
2861	(BINPROGS): Ditto.
2862	(PROGRAMS): Define as concatenation of the two vars above.
2863	(install): Create $(bindir) and $(sbindir) if necessary.
2864
2865Sat Apr 19 18:21:02 1997  David Mosberger-Tang  <davidm@azstarnet.com>
2866
2867	* frontend/Makefile.in (scanimage): Rename "scan" binary to
2868 	"scanimage" to avoid name-collision with MH's scan command.
2869
2870	* backend/mustek.c (gamma_correction): Update according to new
2871	gamma-table handling.
2872
2873	* backend/mustek.h: Declare gamma_table as 4 arrays of 256 words
2874	each.
2875
2876	* backend/mustek.c (sane_control_option): Add missing return after
2877	setting OPT_GAMMA_VECTOR.
2878
2879	* frontend/progress.h: Protect against multiple inclusion using
2880 	macro progress_h, not __PROGRESS_H__ (names starting with
2881 	underscores are reserved for libc/system).
2882
2883	* frontend/gtkglue.c: Remove include of <gtk.h>.
2884	* frontend/xcam.c: Ditto.
2885	* frontend/xscan.c: Ditto.
2886
2887	* frontend/gtkglue.h: Include <gtk/gtk.h> instead of <gtk.h>.
2888	* frontend/progress.c: Ditto.
2889
2890	* Makefile.in (install): Install headerfiles.
2891	(INSTALLED_INCLUDES): List of header files that need to be
2892 	installed.
2893
2894Sat Apr 19 18:15:03 1997  Michael K. Johnson <johnsonm@redhat.com>
2895
2896	* */*.[ch]: Prefix sane-includes with <sane/...>.
2897	include/sane*: Move to include/sane subdirectory.
2898
2899Sat Apr 19 08:25:36 1997  David Mosberger-Tang  <davidm@azstarnet.com>
2900
2901	* frontend/gtkglue.c (set_option): Add missing return and use
2902	snprintf instead of sprintf.
2903
2904	* frontend/xscan.c (update_param): Multiply size by 3 if we're
2905	dealing with a frame from a 3-pass image.
2906
2907Fri Apr 18 07:28:46 1997  David Mosberger-Tang  <davidm@azstarnet.com>
2908
2909	* backend/mustek.c (init_options): Mark all vector options as
2910	SANE_CAP_ADVANCED.
2911
2912	* frontend/scan.c (scan_it): Fail if advance() fails.
2913
2914Thu Apr 17 08:59:00 1997  David Mosberger-Tang  <davidm@azstarnet.com>
2915
2916	* backend/mustek.c (sane_read): Add debug statement.
2917	(reader_process): Remove extraneous if-statement that had the
2918 	effect of not passing along any data in 3-pass mode.
2919
2920Wed Apr 16 09:16:01 1997  David Mosberger-Tang  <davidm@azstarnet.com>
2921
2922	* frontend/preview.h: Add member CANCEL.
2923	* frontend/preview.c (scan_start): Make p->cancel sensitive.
2924	(scan_done): Make p->cancel insensitive.
2925	(preview_new): Set p->cancel insensitive.
2926
2927	* frontend/preferences.h (Preferences): Add member "filename".
2928	* frontend/preferences.c: Initialize new member "filename".
2929	Declare member "filename" as a string.
2930
2931	* frontend/xscan.c (device_dialog): Rename "Files" to "File".
2932	(quit_xscan): Call pref_xscan_save() before exiting.  Replace
2933	global variable filename by preferences.filename.
2934
2935	* frontend/xcam.c (main): Ditto.
2936
2937	* PROBLEMS: New file.
2938
2939	* frontend/gtkglue.c (scale_new): Set the adjustment page size to
2940 	0.0.  Make horizontal scale 200 pixels wide.
2941
2942	* frontend/xscan.c (device_dialog): Move gtk_widget_show
2943 	(ScanWin.shell) after pref_device_restore (0, 0).
2944	(pref_device_restore): Make arg-less since callback arguments must
2945 	not be used.
2946	(device_dialog): Remove dummy args from call to pref_device_restore().
2947
2948	* include/saneopts.h (SANE_TITLE_SCAN_TL_X, SANE_TITLE_SCAN_TL_Y,
2949 	SANE_TITLE_SCAN_BR_X, SANE_TITLE_SCAN_BR_Y): Shorten titles.
2950
2951	* frontend/xcam.c (main): Move gtk_widget_show(win.shell) to end
2952	of function.
2953
2954	* backend/mustek.c (attach): Turn on MUSTEK_FLAG_USE_EIGHTS for
2955 	MFS-12000CX.
2956	(sane_get_parameters): Must not depend on s->mode in this routine,
2957	since s->mode is valid only once scanning has begun.
2958
2959Tue Apr 15 23:06:17 1997  David Mosberger-Tang  <davidm@azstarnet.com>
2960
2961	* backend/mustek.c (sane_start): Issue SCAN_AREA and BACKTRACK
2962 	commands even during second and third pass.
2963	(sane_get_parameters): Be sure to properly update the
2964 	params.format member during second and third pass.
2965
2966Sat Apr 12 11:40:52 1997  David Mosberger-Tang  <davidm@azstarnet.com>
2967
2968	* frontend/scan.c (STRIP_HEIGHT): New macro.
2969	(scan_it): Fix typo: test parm.lines instead of image.height.
2970
2971	* backend/pnm.c (hand_scanner): New variable.
2972	(sane_control_option): Handle setting/reading of HAND_SCANNER
2973 	option.
2974	(getparmfromfile): Set parms.lines to -1 when simulating
2975 	hand-scanner.
2976	(sod): Add hand-scanner option descriptor.
2977
2978	* frontend/gtkglue.c (panel_build): Move gtk_widget_show
2979 	(notebook) to the very of this function.  This works around the
2980 	notebook redrawing problems.  Define WORKING_NOTEBOOK.
2981
2982	* frontend/xscan.c (interface): Call quit_xscan() if
2983 	device_dialog() did not end up with a non-NULL dialog.
2984	(quit_xscan): Add missing exit() call.
2985
2986	* backend/mustek.c (attach): Print more debug info on detected
2987 	scanner (1 vs 3-pass, ADF & TA support).
2988	(start_scan): Fix typo in code selecting the three-pass color filter.
2989
2990Sun Apr 13 23:53:02 1997  Gordon Matzigkeit  <gord@gnu.ai.mit.edu>
2991
2992	* backend/pint.c, backend/pint.h, backend/pint.README: Added to
2993 	distribution.
2994
2995Fri Apr 11 22:04:17 1997  David Mosberger-Tang  <davidm@azstarnet.com>
2996
2997	* Version 0.53 released.
2998
2999	* frontend/xscan.c: Default to "out.pnm" instead of "out.ppm".
3000
3001	* backend/mustek.c (get_image_status): Add debug message.
3002	(sane_start): Only divide pixels_per_line by three if we're doing
3003 	a one-pass color scan.
3004	(do_eof): New function.
3005	(sane_read): Call do_eof() when done with a frame.
3006	(do_cancel): Call do_eof().
3007
3008	* frontend/scan.c (write_pnm_header): New function.
3009	(advance): Ditto.
3010	(scan_it): Modify to support three-pass scanning and scanning of
3011 	images whose height is not known a priori (hand-held scanners).
3012
3013Wed Apr  9 14:39:59 1997  David Mosberger-Tang  <davidm@azstarnet.com>
3014
3015	* frontend/xscan.c (ok_choose_dialog_callback): Make
3016 	argument-free.
3017	(select_device_callback): Declare event as second argument and
3018 	call ok_choose_dialog_callback() if the callback was invoked
3019 	through a double-click.
3020	(choose_device): Register select_device_callback() as
3021 	"button_press_event" handler instead of as "clicked" so we can
3022 	catch double-clicks.
3023
3024Tue Apr  8 10:31:47 1997  David Mosberger-Tang  <davidm@azstarnet.com>
3025
3026	* frontend/xscan.c (init): Enable gtk_rc_parse() code (GTK-0.99.7
3027 	requires patch for gtkstyle.c).
3028
3029	* backend/hp.c (attach): Fix parenthization to shut up gcc.
3030
3031Mon Apr  7 13:08:45 1997  David Mosberger-Tang  <davidm@azstarnet.com>
3032
3033	* frontend/xscan.c (preview_options_dialog): Rename "changed_text"
3034	to "changed" to reflect latest GTK version.
3035	(device_dialog): Ditto.
3036	* frontend/gtkglue.c (text_entry_new): Ditto.
3037
3038	* Version 0.52 released.
3039
3040	* AUTHORS: Various updates.
3041
3042	* backend/mustek.README: Add Adaptec info.
3043
3044	* backend/mustek.c (sane_start): Call wait_ready() before any
3045	other scanner command.
3046	(wait_ready): New function.
3047	(attach): Call wait_ready() instead of open-coding it.
3048
3049	* doc/sane.tex (subsection{\code{sane\_strstatus}}): Include
3050 	net.tex.
3051	* doc/net.tex: New file.
3052
3053Thu Apr  3 08:51:13 1997  David Mosberger-Tang  <davidm@azstarnet.com>
3054
3055	* frontend/xscan.c (update_param): Change type of SIZE to u_long
3056 	(from long) since under NetBSD there seem to be some odd sign
3057 	problems otherwise (compiler bug?).
3058
3059Wed Apr  2 07:15:41 1997  David Mosberger-Tang  <davidm@azstarnet.com>
3060
3061	* backend/mustek.c (sane_read): Always deliver EOF after reading
3062	0 bytes.
3063
3064	* backend/qcam.c (reader_process): Fine-tune pixel interpolation.
3065	(despeckle32): Ignore last red pixel in every line (it's always
3066 	black).  Switch red and blue pixel location (the Connectix docs
3067 	are wrong).
3068
3069	* backend/mustek.c (start_scan): Fix typo that caused start[4] to
3070	be set incorrectly.
3071
3072	* frontend/preview.c: Include <sys/param.h> to get PATH_MAX.
3073
3074Tue Apr  1 18:45:14 1997  David Mosberger-Tang  <davidm@azstarnet.com>
3075
3076	* backend/qcam.c (despeckle): New function.
3077	(despeckle32): Ditto.
3078	(init_options): Initialize OPT_DESPECKLE.
3079	(reader_process): Add despeckling support.
3080	(sane_control_option): Ditto.
3081	(sane_start): Initialize req.despeckle.
3082
3083	* backend/qcam.h: New member DESPECKLE.
3084
3085	* frontend/preview.c (restore_option): Fix typo: it should be
3086 	SANE_ACTION_SET_VALUE (not _get_).
3087
3088	* backend/mustek.c (attach): Turn on MUSTEK_FLAG_USE_EIGHTS for
3089 	MFS-06000CX.
3090
3091	* backend/hp.c (attach): Allow both TYPE_PROCESSOR (0x03) and
3092	TYPE_SCANNER (0x06) as the first inquiry byte---some scanners use
3093	the former, others the latter.
3094
3095	* Version 0.51 released.
3096
3097	* configure.in: Check for gtk_tooltips_new in libgtk.
3098
3099Mon Mar 31 14:42:56 1997  Gordon Matzigkeit  <gord@gnu.ai.mit.edu>
3100
3101	* frontend/scan.c (main): Added full_optstring, to allow getopt to
3102	do full parsing of the option arguments.
3103
3104	* backend/pnm.c (getparmfromfile): Need to round up the number of
3105	bytes per line when scanning bitmaps.
3106
3107Mon Mar 31 07:48:50 1997  David Mosberger-Tang  <davidm@azstarnet.com>
3108
3109	* backend/qcam.c (attach): Send a dummy black-level command.  The
3110 	first black-level command aftera camera reset doesn't appear to
3111 	"take."
3112
3113	* lib/strndup.c: Correct typo: HAVE_STRDUP -> HAVE_STRNDUP.
3114
3115	* frontend/xscan.c (pref_set_tooltips): New function.
3116	(pref_build_menu): Build tooltip submenu.
3117
3118	* frontend/preferences.h: New member TOOLTIPS_ENABLED.
3119	* frontend/preferences.c: Add entry for TOOLTIPS_ENABLED.
3120
3121	* frontend/gtkglue.h: Add members TOOLTIPS, TOOLTIPS_FG, and
3122 	TOOLTIPS_BG.
3123
3124	* frontend/gtkglue.c (set_tooltip): New function.
3125	(autobutton_new): Add argument TOOLTIPS and add button-description
3126 	via set_tooltip().
3127	(button_new): New args TOOLTIPS & DESC.  Set DESC as tooltip help
3128 	string.
3129	(scale_new): Ditto.
3130	(option_menu_new): Ditto.
3131	(text_entry_new): Ditto.
3132	(panel_destroy): Destroy dialog tooltips as well.
3133	(panel_build): Create tooltips and allocate colors for it; pass
3134	new args to above functions.
3135	(gsg_set_tooltips): New function.
3136
3137	* Version 0.5 released.
3138
3139	* backend/Makefile.in (install): Add missing double-quotes to
3140 	$(LIBS) and $(CONFIGS).  Also create a symlink for libsane.a.
3141
3142	* ltconfig: Revert back to version 0.9.
3143	* ltmain.sh: Ditto.
3144
3145	* frontend/scan.c (print_option): Substitute our own help string
3146 	for -x and -y options.
3147	(main): Remove BROKEN_GETOPT code.
3148
3149	* frontend/Makefile.in (CPPFLAGS): Undo yesterday's change.
3150	* lib/getopt1.c: Ditto.
3151	* lib/getopt.c: Ditto.
3152
3153	* frontend/scan.c (main): Add some clever getopt () hackery to
3154 	work around multi-scan getopt () bug (patch by Gord Matzigkeit).
3155
3156	* backend/qcam.README: Correct path of configuration file.
3157
3158Sun Mar 30 21:42:12 1997  David Mosberger-Tang  <davidm@azstarnet.com>
3159
3160	* frontend/Makefile.in (CPPFLAGS): Add back -DBROKEN_GETOPT.
3161
3162	* frontend/scan.c (main): Reinstantiate BROKEN_GETOPT code.
3163	getopt_long() is _STILL_ broken. ;-(
3164
3165	* lib/getopt.c: Use this code if __GNU_LIBRARY__ <= 6.  Early
3166	versions of glibc had a buggy getopt().
3167	* lib/getopt1.c: Ditto.
3168
3169	* frontend/Makefile.in (xscan): Mention $(LIBSANEI).
3170
3171	* frontend/xscan.c: Include <libgimp/gimp.h>, not <gimp.h>.
3172
3173	* Makefile.in (distclean): Mention libtool.
3174	* configure.in (AC_CHECK_FUNCS): Ditto.
3175
3176	* include/config.h.in: Add undef of STRSEP.
3177
3178	* sanei/sane_strstatus.c: Move to backend directory to minimize
3179	chance of confusing this with a SANE-internal routine.
3180
3181	* sanei/Makefile.in (LIBSANEI_OBJS): Remove sane_strstatus.o.
3182	(LIBSANEI_LTOBJS):  Remove sane_strstatus.lo.
3183
3184	* backend/Makefile.in (libsane-%.la): Mention sane_strstatus.lo
3185 	explicitly (every SANE backend library MUST define this function
3186	so we can switch backends at will).
3187
3188	* frontend/Makefile.in (SCAN_OBJS): Remove getopt.o, getopt1.o.
3189
3190	* Makefile.in (SUBDIRS): Mention lib as first directory.
3191
3192	* configure.in (AC_OUTPUT): Mention lib/Makefile.
3193
3194	* lib/strsep.c: New file.
3195	* lib/strndup.c: Ditto.
3196	* lib/Makefile.in: Ditto.
3197
3198	* sanei/test_wire.c (main): Initialize codecs through
3199 	sanei_w_init().
3200
3201	* sanei/sanei_codec_bin.c (sanei_codec_bin_init): Ditto.
3202
3203	* sanei/sanei_codec_ascii.c (sanei_codec_ascii_init): Remove
3204 	w->buffer initalization---this function should be called through
3205	sanei_w_init () only.
3206
3207	* sanei/sanei_scsi.c: Rename _sanei_scsi_max_request_size to
3208 	sanei_scsi_max_request_size.
3209
3210	* backend/mustek.c (reader_process): Rename macro
3211 	SANEI_SCSI_MAX_REQUEST_SIZE to variable
3212 	sanei_scsi_max_request_size.
3213
3214	* include/sanei_scsi.h: Rename _sanei_scsi_max_request_size to
3215 	sanei_scsi_max_request_size (names with a leading underscore are
3216 	reserved for libc/system).
3217	(SANEI_SCSI_MAX_REQUEST_SIZE): Remove macro.
3218
3219	* frontend/scan.c (main): Add a brief description of the program.
3220
3221	* frontend/getopt.c: Move to lib.
3222	* frontend/getopt1.c: Ditto.
3223
3224	* backend/pnm.c (enum ppm_type): Remove non-ANSI trailing comma.
3225	Correct struct indentation.
3226
3227	* include/lalloca.h: Isolate alloca cruft in this file.
3228	* frontend/gtkglue.c: Include lalloca.h in place of alloca hack.
3229	* frontend/dll.c: Ditto.
3230	* frontend/scan.c: Ditto.
3231	* sanei/sanei_load_values.c: Ditto.
3232	* sanei/sanei_scsi.c: Ditto.
3233
3234Sat Mar 29 00:14:37 1997  Gordon Matzigkeit  <gord@gnu.ai.mit.edu>
3235
3236	* backend/pnm.c (sane_read): Slurp in RGB files all at once,
3237	rather than limping along three bytes at a time.
3238
3239	* frontend/xscan.c (advance): Only define if HAVE_LIBGIMP.
3240
3241	* backend/pnm.c (sane_read, sane_start, getparmfromfile): Handle
3242 	grayscale and monochrome bitmapped PNM files.
3243
3244	* frontend/scan.c (main): Remove BROKEN_GETOPT workaround---the
3245	new getopt() works properly when making multiple passes over the
3246	argument list.
3247
3248Fri Mar 28 21:33:36 1997  Gordon Matzigkeit  <gord@gnu.ai.mit.edu>
3249
3250	* configure.in: Make the QuickCam device conditional on whether or
3251 	not the ioperm function exists.
3252
3253	* sanei/sanei_scsi.c: created a stubbed version of sanei_scsi_cmd.
3254
3255	* frontend/scan.c (main): Only print error messages to stderr.
3256	Use fputs or fputc when it is possible to avoid printf.
3257
3258	* sanei/sanei_wire.c (sanei_w_array, sanei_w_ptr, sanei_w_init),
3259 	sanei/sanei_save_values.c (sanei_save_values),
3260 	sanei/sanei_codec_ascii.c (ascii_w_string): Return an error if
3261 	malloc fails.
3262
3263	* sanei/test_wire.c (main): Added --readonly flag to help test
3264	wire robustness.
3265
3266	* backend/Makefile.in (LIBSANEI): Deleted the `EXTRA' variable,
3267	and used the convenience library, ../sanei/libsanei.a.
3268
3269Sat Mar 29 10:19:58 1997  David Mosberger-Tang  <davidm@azstarnet.com>
3270
3271	* doc/sane.tex: Change version from 0.42 to 0.5.
3272
3273	* README: Add pointer to frontend & backend specific README files.
3274
3275	* backend/net.c (connect_dev): Ensure dev->ctl gets closed and
3276 	reset to -1 in case of failure.
3277
3278	* configure.in: Look for gtk_preview_new() in libgtk so we can
3279	ignore old GTK versions against which we can't build.
3280
3281	* (config.sub): Replace with version that comes with
3282 	autoconf-2.12.  The version that came with libtool-0.9
3283	doesn't like i686-unknown-linux.
3284
3285Fri Mar 28 13:12:17 1997  David Mosberger-Tang  <davidm@azstarnet.com>
3286
3287	* doc/sane.tex (subsection{sane_get_select_fd}): Remove extraneous
3288 	backslash.
3289
3290	* backend/stubs.c (sane_cancel): Don't return anything.
3291
3292	* include/sane.h: Remove trailing comma (for -pedantic).
3293
3294	* frontend/xscan.c (interface): Complain when trying to call
3295	a device that's unavailable.
3296	(select_device_callback): Correct prototype.
3297
3298	* frontend/xcam.c (main): Remove unused variable `label.'
3299
3300	* backend/net.c (sane_cancel): Call SANE_NET_CANCEL.
3301	(sane_start): Handle failure of SANE_NET_START.
3302
3303	* frontend/saned.c (process_request): Implement SANE_NET_CANCEL.
3304
3305	* frontend/gtkglue.h (GSGDialogElement): Remove member "label".
3306	* frontend/gtkglue.c: Update accordingly.
3307	(button_new): Use gtk_check_button_new_with_label () to simplify
3308	this function.
3309
3310	* frontend/gtkglue.c (unit_string): New function.
3311	(panel_build): Append unit_string () to option's title if
3312	the unit is not SANE_UNIT_NONE.  Use "title" instead of opt->title
3313	when creating widgets.
3314
3315	* frontend/preview.c (preview_update): Compute width/height as
3316	(max - min + eps) where eps is 1 for integer coordinates and
3317 	SANE_UNFIX(1) for fixed-point coordinates.
3318	(display_partial_image): Support different scaling in x/y
3319 	direction.  In the case where surface_unit == SANE_UNIT_PIXEL,
3320 	compute xscale/yscale based on the ratio between the _expected_
3321 	width/height and the actual width/height.  If they're not equal,
3322 	the backend must be doing some scaling (e.g., transfer-scale in
3323 	the qcam backend).
3324
3325	* frontend/xscan.c (init): Disable gtk_rc_parse () calls for now
3326	since gtk styles seem to be a bit buggy right now.
3327	(scan_done): Remove input_tag if it is >= 0.
3328
3329	* frontend/gtkglue.c: Include <preferences.h>.
3330	(panel_build): For fixed-point range-constraints scale min/max/quant
3331	based on the preferred metric.
3332	(scale_update): Ditto.
3333	(gsg_update_scan_window): Ditto.
3334
3335	* backend/mustek.c (sane_control_option): For OPT_GAMMA_VECTOR_*
3336 	options, fail with SANE_STATUS_INVAL if the vector has zero length
3337 	(i.e., hasn't been set yet).
3338
3339	* frontend/progress.c (progress_new): Don't make Cancel the
3340 	default-button---it's too easy to cancel by mistake otherwise.
3341
3342	* frontend/sane-style.rc: New file.
3343
3344	* frontend/xscan.c (init): New function.  Parse gtk_rc_parse ()
3345	on /usr/local/share/sane-style.rc and ~/.sane/sane-style.rc if
3346	those files exist.
3347
3348	* configure.in (CPPFLAGS): Add PATH_SANE_DATA_DIR.
3349
3350	* frontend/gtkglue.c (gsg_warning): New function.
3351	(gsg_message): New function.
3352	(gsg_error): Implement in terms of gsg_message ().
3353
3354Thu Mar 27 16:52:27 1997  David Mosberger-Tang  <davidm@azstarnet.com>
3355
3356	* frontend/gtkglue.c (gsg_make_path): Terminate buffer with '\0'
3357	before attempting mkdir().
3358
3359	* frontend/xcam.c (main): Use gtk_menu_item_new_label () instead
3360	of gtk_label_new ()/gtk_menu_item_new ().
3361
3362	* frontend/preview.c (establish_selection): Invoke
3363 	param_change_callback only if non-NULL.
3364	(preview_update): Convert scale range to inches if that's user's
3365	preference.
3366
3367	* frontend/xcam.c (delayed_switch): New function.
3368	(device_activate_callback): Call delayed_switch() rather than
3369 	executing that code directly.  Pete tells me GTK is not designed
3370 	to have a widget rebuilt while a submenu is active.
3371
3372	* frontend/gtkglue.c (panel_build): Avoid using notebook widget
3373 	until GTK+ has been fixed.
3374	(idle_handler): New function: rebuild dialog if dialog->rebuild is
3375 	set.
3376	(set_option): Set dialog->rebuild to TRUE and schedule
3377 	idle_handler() rather than directly calling panel_rebuild().  Pete
3378 	tells me GTK is not designed to have a widget rebuilt while a
3379 	submenu is active.
3380	(gsg_refresh_dialog): Ditto.
3381
3382Thu Mar 27 14:54:23 1997  Gordon Matzigkeit  <gord@gnu.ai.mit.edu>
3383
3384	* backend/Makefile.in: Converted all for statements that might be
3385	empty to use a temporary list variable.
3386
3387	* frontend/Makefile.in (scan): Added getopt.o, getopt1.o to scan
3388	dependencies.
3389
3390	* frontend/getopt.c, frontend/getopt1.c, include/getopt.h: Added
3391	to the distribution.
3392
3393	* backend/net.c (connect_dev), frontend/saned.c (main): Don't use
3394 	TCP_NODELAY if it has not been defined.  Look up tcp protocol
3395 	number if SOL_TCP is not defined.
3396
3397	* sanei/test_wire.c (main): lseek after changing direction, or the
3398	direction change ends up at the end of the output file.
3399	Added option parsing, a usage message, and other cleanups.
3400
3401	* sanei/sanei_codec_ascii.c (sanei_codec_ascii_init),
3402 	sanei/sanei_codec_bin.c (sanei_codec_bin_init): Initialize the
3403 	wire if it has a 0-length buffer.
3404
3405	* sanei/sanei_wire.c (sanei_w_init): Only call the codec_init_func
3406	if it is not NULL.
3407
3408	* sanei/sanei_scsi.c: Parameterize inclusion of generic SCSI
3409	headers based on HAVE_SCSI_SG_H, HAVE_SYS_SCSI_H, or
3410	HAVE_SYS_SCSIIO_H.
3411
3412	* configure.in (AC_CHECK_HEADERS): Check for scsi/sg.h,
3413	sys/scsi.h, and sys/scsiio.h.
3414
3415	* sanei/sanei_load_values.c, sanei/sanei_scsi.c, backend/dll.c:
3416 	Replaced unconditional alloca.h include with the cruft suggested
3417 	by the Autoconf manual.
3418
3419	* sanei/alloca.c: Add to distribution.
3420
3421	* sanei/Makefile.in: Eliminate GNU make dependencies, and use
3422	@ALLOCA@ and @LTALLOCA@ as appropriate.
3423
3424	* configure.in (AM_FUNC_ALLOCA): Use it.
3425
3426	* aclocal.m4 (AM_FUNC_ALLOCA): Define it.
3427
3428Wed Mar 26 17:25:49 1997  David Mosberger-Tang  <davidm@azstarnet.com>
3429
3430	* sanei/sanei_wire.c (sanei_w_status): Update *v only when decoding.
3431	(sanei_w_bool): Ditto.
3432	(sanei_w_constraint_type): Ditto.
3433	(sanei_w_value_type): Ditto.
3434	(sanei_w_unit): Ditto.
3435	(sanei_w_action): Ditto.
3436	(sanei_w_frame): Ditto.
3437
3438	* frontend/xscan.c (quit_xscan): Always invoke gtk_main_quit()
3439	(not just in standalone mode).
3440	(quit_callback): Correct prototype.
3441
3442	* backend/pnm.c (sod): Fix doc-string for option "three-pass".
3443
3444	* frontend/xscan.c (advance): New function.
3445	(input_available): Support 1 bpp frames.  Call advance() instead
3446 	of open-coding it.  Add RED/GREEN/BLUE frame support in GIMP mode.
3447	Complain when encountering unknown depth.
3448	(ScanWin): add member first_frame.
3449	(scan_start): Initialize first_frame and frame_offset in
3450	GIMP mode.
3451
3452	* Integrate force unidirectional mode patch by Guido Muesch
3453	  <odiug@faho.rwth-aachen.de>:
3454	* backend/qcam.c (attach): Force uni-directional mode if port
3455	address starts with `u'.
3456	(attach): Add debug statement to print QCam version.
3457
3458	* Integrate 3-pass patches by Heiko
3459	  <Heiko.Schroeder@Post.RWTH-Aachen.de>:
3460	* backend/mustek.cb
3461 	(scan_area_and_windows): Use 1/8" mode when MUSTEK_FLAG_USE_EIGHTS
3462 	is on (instead of pixel unit).
3463	(mode_select): Set bit 3 in mode byte only if
3464 	MUSTEK_FLAG_USE_EIGHTS is off.
3465	(encode_resolution): Don't do funky encoding for 3-pass scanners
3466 	in 10% resolution mode.  It seems the docs are wrong and the
3467 	actual scanners require a much simpler setup.
3468
3469	* frontend/preview.h: Add include of <sys/types.h>.
3470
3471Sat Mar 22 16:37:34 1997  David Mosberger-Tang  <davidm@azstarnet.com>
3472
3473	* frontend/xscan.c (input_available): Reset ScanWin.x to zero at
3474 	the end of each line.
3475	(input_available): Reset tile_offset to zero after updating a
3476 	tile.
3477	(scan_done): Call gimp_display_new() to display the newly acquired
3478	image.  Draw final few lines of image if image height is not a multiple
3479	of the tile-height.
3480
3481	* frontend/saned.c (process_request): quit when receiving
3482	unexpected procedure number---ignoring is dangerous.
3483
3484	* backend/dll.c (load): Fix off-by-one bug in allocation of
3485	libname.
3486
3487	* frontend/xcam.c (prompt_for_device_name): Move grab-default
3488	call behind signal_connect since otherwise the default action
3489	won't work.
3490
3491	* frontend/xscan.c (choose_device): Let "Ok" button be the one
3492	that gets activated by default (by hitting the Return key).
3493
3494	* frontend/preview.c (preview_destroy): Rename save_preview_image
3495	to preserve_preview_image.
3496  	* frontend/preview.h: Ditto.
3497
3498	* frontend/preview.c (restore_preview_image): New function.
3499	(preview_destroy): Save preview image if it exists.
3500	(preview_scan): New parameter SELECTION_ONLY.  If true,
3501 	preview-scanning is limited to the selected area.
3502
3503	* frontend/xscan.c (scan_done): Call quit_xscan() to exit.
3504	(quit_xscan): Destroy preview if ScanWin.preview is non-NULL.
3505
3506	* frontend/preview.c (draw_selection): Don't draw if p->gc is
3507	NULL (i.e., if windows aren't mapped yet).
3508
3509	* frontend/xscan.c: Move HAVE_LIBGIMP-specific code further
3510	down (past the type & global variable decls).
3511
3512	* configure.in (CPPFLAGS): Make --disable-shared impy
3513 	--enable-preload.
3514
3515	* include/config.h.in: Add HAVE_STRNDUP.
3516
3517Fri Mar 21 00:01:00 1997  David Mosberger-Tang  <davidm@azstarnet.com>
3518
3519	* sanei/sanei_scsi.c (sanei_scsi_cmd): Implemented FreeBSD
3520	version (untested).
3521
3522	* sanei/sanei_load_values.c: Include <alloca.h>
3523
3524	* frontend/preview.c (update_selection): New function to set
3525	selection based on current scan-area option values.
3526	(preview_update): Call update_selection ().
3527
3528	* sanei/sanei_save_values.c: Add copyright notice.
3529	* sanei/sanei_load_values.c: Add copyright notice and explanation
3530	of algorithm.
3531	(BITS_PER_LONG): New macro.
3532	(SET): Ditto.
3533	(IS_SET): Ditto.
3534	(sanei_load_values): Add variables caused_reload and keep_going to
3535	keep track of what options caused a reload_option and whether
3536	the whole option-value setting process should be repeated.
3537
3538	* include/config.h.in: Add #undef HAVE_LIBGIMP.
3539	* frontend/xscan.c: Put all GIMP-dependencies inside
3540	#ifdef HAVE_LIBGIMP.
3541	Include <config.h>.
3542
3543	* sanei/sanei_wire.c (sanei_w_init): Initialize status to 0.
3544	(sanei_w_free): Preserve existing direction and do not flush i/o.
3545	(sanei_w_space): Return EINVAL if reading 0 bytes.
3546
3547Thu Mar 20 09:11:21 1997  David Mosberger-Tang  <davidm@azstarnet.com>
3548
3549	* frontend/gtkglue.h (dev_name): New member.
3550	* frontend/gtkglue.c (gsg_destroy_dialog): free dialog->dev_name.
3551	(gsg_create_dialog): Keep copy of device name in dev_name member.
3552
3553	* include/sanei_backend.h: Move stubs into backend/stubs.c and
3554	define redirection macros only if STUBS is not defined.
3555	* backend/stubs.c: New file.
3556
3557	* configure.in (AC_PROG_RANLIB): Removed.  No longer needed with
3558	libtool.
3559	* (frontend/Makefile.in): Adapt to libtool.
3560	* (backend/Makefile.in): Ditto.
3561	* (sanei/Makefile.in): Ditto.
3562
3563	* backend/mustek.c (attach): Check result[0] == 0x06 to find out
3564	whether we're dealing with a scanner (rather than attempting to
3565 	find the string "SCANNER" ).
3566
3567	* backend/hp.c (sane_read): Initialize nread with max_len, not
3568 	*len.
3569	(sane_get_parameters): Add missing `== 0' comparison for strcmp()
3570 	calls.
3571	(inquire): Generalize so we can inquire any quantity and improve
3572 	parsing.
3573	(attach): Use reasonable default value if inquiry of a quantity
3574 	fails.
3575	(sane_start): Report error if inquiry of a scan parameter fails.
3576
3577Wed Mar 19 18:03:38 1997  David Mosberger-Tang  <davidm@azstarnet.com>
3578
3579	* frontend/xcam.c (prompt_for_device_name): grab default for OK
3580 	button (doesn't seem to work, though).
3581
3582	* frontend/progress.c (progress_new): Connect progress_cancel()
3583 	via signal_connect(), not signal_connect_object() and pass P, not
3584 	P->SHELL.
3585	(progress_cancel): Don't free progress structure (must be done by
3586 	app).
3587
3588	* frontend/xscan.c (input_available): New function.
3589	(scan_done): Ditto.
3590	(scan_start): Ditto.
3591	(progress_cancel): Simply call sane_cancel().
3592	(scan_dialog): Moved most of the code to above functions.
3593
3594	* frontend/gtkglue.c (get_filename_button_clicked): New function.
3595	(gsg_get_filename): Ditto.
3596
3597	* frontend/xscan.c (scan_dialog): Do not quit xscan when in
3598	standalone mode.
3599	(scan_dialog): Prompt for output filename in standalone mode.
3600	(filename): New variable.
3601
3602	* backend/pnm.c (sane_control_option): Remove "pnm." prefix
3603	in debug messages.
3604
3605	* backend/qcam.c (sane_cancel): Remove "qcam." prefix in debug
3606 	messages.
3607
3608	* backend/mustek.c: Remove "mustek." prefix in debug messages.
3609
3610Tue Mar 18 17:30:29 1997  David Mosberger-Tang  <davidm@azstarnet.com>
3611
3612	* backend/mustek.c (sane_close): Remove superfluous "[mustek]" in
3613 	debug string.
3614
3615	* sanei/sanei_scsi.c (sanei_scsi_cmd): Implement HP-UX version
3616	of this function (untested).
3617
3618	* backend/qcam.c (reader_process): Enable code to handle 4 bpp
3619	and 6 bpp cases.
3620
3621Thu Mar 13 13:15:21 1997  David Mosberger-Tang  <davidm@azstarnet.com>
3622
3623	* doc/sane.tex (subsection{Scan Area Options}): Attempt to
3624	clarify the meaning of "top-left" corner.
3625
3626Tue Mar 11 07:12:53 1997  David Mosberger-Tang  <davidm@azstarnet.com>
3627
3628	* frontend/gtkglue.c (panel_build): Fix typo in matching of
3629	"resolution" option (missing == 0).
3630
3631Mon Mar 10 20:19:06 1997  David Mosberger-Tang  <davidm@azstarnet.com>
3632
3633	* Announced pre0.5 snapshot.
3634
3635	* backend/qcam.h: Make transfer-scale part of the "mode" group.
3636
3637	* backend/qcam.c (sane_read): Moved return of SANE_STATUS_EOF
3638 	behind test for delivering EOF.
3639
3640	* frontend/xscan.c (device_dialog): Relabel "Cancel" button to
3641	"Quit".
3642
3643	* backend/qcam.c (init_options): Set SANE_CAP_ADVANCED for geometry
3644	group.
3645	* backend/mustek.c (init_options): Ditto.
3646
3647	* backend/pnm.c (pass, three_pass): New variables.
3648	(sod): Add option "three-pass" to simulate a three-pass scanner.
3649	(sane_control_option): Add support for three_pass option.
3650	(getparmfromfile): In three-pass mode, set format and last_frame
3651	based on `pass'.
3652	(sane_start): If input file is open already, fail unless we're
3653	scanning the next frame of a three-pass image.
3654	(sane_read): Handle three-pass case.
3655
3656Sun Mar  9 13:20:19 1997  David Mosberger-Tang  <davidm@azstarnet.com>
3657
3658	* frontend/gtkglue.c (text_entry_callback): Only call
3659 	gtk_entry_set_text() if the backend modified the string.  Otherwise,
3660	infinite recursion occurs on any change (since the change results
3661	in a change...).
3662
3663	* frontend/xcam.c (next_frame): Reset win.remaining to zero.
3664
3665	* backend/qcam.c (init_options): Set size of "resolution" option
3666	to sizeof("High").
3667
3668	* doc/sane.tex (subsection{Scan Area Options}): Allow word-list
3669	as a constraint.
3670
3671	* configure.in (CFLAGS): Add -D_GNU_SOURCE to CFLAGS since we
3672	now depend on snprintf ().
3673
3674	* frontend/xscan.c (device_dialog): Fix typo: PixelHeight should
3675 	be > 0, not == 0 in order for us to create the preview window.
3676	(device_dialog): Ditto.
3677	(device_dialog): Add ScanWin.preview to frame container.
3678
3679Sat Mar  8 10:19:41 1997  David Mosberger-Tang  <davidm@azstarnet.com>
3680
3681	* doc/sane.tex (subsection{sane_get_select_fd}): Clarify what
3682	must happen when the end of a frame has been reached.
3683
3684	* frontend/xcam.c (input_available): Stop when sane_read() returns
3685	0 bytes.  Fix typo: win.data needs to be set to dst, not src, on
3686	exit.
3687
3688	* backend/qcam.h (read_fd): New member.
3689	* backend/qcam.c (sane_get_select_fd): Return read_fd instead of
3690	from_child.
3691	(sane_open): Initialize s->read_fd to -1.
3692	(sane_close): Close s->select_fd if >= 0.
3693	(sane_start): Make read_fd dup() of s->from_child.
3694	(sane_cancel): Close s->read_fd if >= 0.
3695	(sane_set_io_mode): Modify s->read_fd instead of s->from_child.
3696
3697	* frontend/scan.c: Include <sanei.h> for NELEMS macro.
3698	* frontend/xcam.c: Ditto.
3699
3700	* configure.in (CPPFLAGS): Add defines for V_MAJOR and V_MINOR.
3701	(V_MAJOR, V_MINOR): New variables.
3702
3703	* sanei/Makefile.in (SANEI_OBJS): Mention sanei_net.o.
3704
3705	* include/sanei_net.h: New file (split from sanei_wire.h).
3706	* sanei/sanei_net.c: New file  (split from sanei_wire.c).
3707
3708	* configure.in: Add -Wall to CFLAGS when using gcc.
3709
3710	* frontend/Makefile.in (saned): List -lsanei before -lsane
3711	so saned never depends on sanei_*-routines that may be present
3712	in -lsane (the only dependencies for that library must be
3713	on sane_* names).
3714
3715	* backend/Makefile.in (LIBS): Remove -ldl (configure will add
3716	it if available).
3717	(SHLDFLAGS): Use -usanei_init instead of --whole-archive option.
3718	(SHLDPOSTFLAGS): Remove --no-whole-archive.
3719
3720	* backend/dll.c: Add include of <config.h>.
3721	(DYNAMIC): New macro.  Defined it dynamic loading support is
3722	available and enabled.
3723	Include <dlfcn.h> only when DYNAMIC is defined.
3724	(load): Make no-op when DYNAMIC is not defined.
3725	(sane_exit): Never call dlclose() if DYNAMIC is not defined.
3726
3727	* include/sanei_scsi.h: Rename from genscsi.h and rename prefix
3728	from `genscsi_' to `sanei_scsi_'.
3729	* sanei/sanei_scsi.c: Ditto.
3730	* backend/mustek.c: Rename `genscsi_' to `sanei_scsi_'.
3731
3732	* configure.in: Check for availability of -ldl and <dlfcn.h>.
3733
3734Fri Mar  7 15:21:38 1997  David Mosberger-Tang  <davidm@azstarnet.com>
3735
3736	* sanei/sanei_wire.c: New file.
3737	* sanei/sanei_codec_bin.c: Ditto.
3738	* sanei/sanei_codec_ascii.c: Ditto.
3739
3740	* backend/dll.c (sane_exit): Call dlclose() only if handle is
3741 	non-NULL.
3742	(sane_init): Chain together preloaded backends.
3743
3744	* backend/qcam.c (attach): Make static.
3745	(sighandler): Ditto.
3746	(qc_getstatus): Ditto.
3747	* backend/mustek.c (attach): Ditto.
3748
3749	* backend/dll.c (op_name): Remove `sane_' prefix.
3750
3751	* sanei/sanei_init_debug.c (sanei_init_debug): Upcase backend
3752	name when building environment variable name.
3753
3754	* backend/genscsi.c: Make use of sanei_debug.h.
3755
3756	* backend/mustek.c: Adapt to use sanei_backend.h.
3757	* backend/net.c: Ditto.
3758	* backend/pnm.c: Ditto.
3759	* backend/qcam.c: Ditto.
3760
3761	* backend/dll.c (sane_exit): Fix typo that resulted in the
3762	last backend not being exited.
3763
3764Thu Mar  6 21:25:27 1997  David Mosberger-Tang  <davidm@azstarnet.com>
3765
3766	* doc/sane.tex (subsection{\code{sane\_init}}): Allow
3767 	authorization callbacks during sane_start() but not during
3768 	sane_read().
3769
3770Tue Mar  4 21:04:16 1997  David Mosberger-Tang  <davidm@azstarnet.com>
3771
3772	* backend/mustek.c (sane_close): Print debug message when trying
3773	to close an unknown handle.
3774
3775Thu Feb 27 18:10:20 1997  David Mosberger-Tang  <davidm@azstarnet.com>
3776
3777	* doc/sane.tex (chapter{Contact Information}\label{chap:contact}):
3778	Add `listserv.' to mailing list address---seems to be needed for
3779	subscriptions etc.
3780
3781Sun Feb  9 12:54:20 1997  David Mosberger-Tang  <davidm@azstarnet.com>
3782
3783	* backend/mustek.README: Add pointer to Ingmar's 53c400 patch.
3784
3785Sat Feb  8 11:49:24 1997  David Mosberger-Tang  <davidm@azstarnet.com>
3786
3787	* backend/mustek.c (line_distance): Add more debug output.
3788
3789Fri Feb  7 19:21:36 1997  David Mosberger-Tang  <davidm@azstarnet.com>
3790
3791	* backend/mustek.c (line_distance): Remove erroneous #ifdef
3792	around FACTOR and COLOR.
3793
3794	* doc/sane.tex (subsection{sane_init}): Make username/password
3795	fixed length arrays so no malloc/free magic is needed.
3796	(subsection{Preview Mode Option}): New section.
3797
3798	* include/sane.h: Ditto.
3799
3800	* include/sane.h (SANE_Char): New type.
3801
3802Tue Feb  4 18:47:52 1997  David Mosberger-Tang  <davidm@azstarnet.com>
3803
3804	* backend/mustek.c (sane_get_parameters): Correct typo: replace
3805	s->pass with s->params.format.
3806
3807Fri Jan 31 16:16:26 1997  David Mosberger-Tang  <davidm@azstarnet.com>
3808
3809	* backend/mustek.c (attach): Print debug message when using
3810 	special line-distance algorithm.
3811	Enable special line-distance algorithm only for firmware
3812 	revisions < 1.02.
3813	Determine fw revision based on INQUIRY result.
3814
3815Thu Jan 30 21:22:38 1997  David Mosberger-Tang  <davidm@azstarnet.com>
3816
3817	* doc/sane.tex (section{Attaching to a SANE backend}): Rename
3818	metanet -> net, netproxy -> saned, metadl -> dll and update
3819	hierarchy figure as well.  Added autolum meta backend as a
3820	filter example.
3821
3822	* TODO: Rename metanet -> net, metadl -> dll.
3823
3824	* AUTHORS (Frontends): Rename metanet -> net, metadl -> dll,
3825	mention saned and xcam and sort entries alphabetically.
3826
3827	* backend/net.c (sane_control_option): Replace all occurrences of
3828 	metanet with net.
3829	* backend/net.README: Ditto.
3830	Rename env var METANETHOST to SANE_NET_HOST.
3831
3832	* backend/dll.README: Replace all occurrences of metadl with dll.
3833	* backend/dll.c: Ditto.
3834
3835	* backend/dll.conf: Comment out metanet since it's a bit of a
3836 	security risk (no authentication just yet).
3837
3838	* backend/Makefile.in (CONFIGS): New macro (list of config files)
3839	(install): Change install rule so existing configuration files
3840	are not overwritten.
3841	Replace all occurrences of metanet with net.
3842
3843	(V_MINOR): Bump up to 43.
3844
3845Tue Jan 28 08:17:18 1997  David Mosberger-Tang  <davidm@azstarnet.com>
3846
3847	* frontend/Makefile (saned): Mention -lsanei before -lsane so
3848 	saned does not incorrectly depend on sanei_printf/sanei_scanf in
3849 	-lsane (if it happens to define those symbols).
3850
3851	* backend/metanet.c (sane_init): Rename SANE_Authorization_Callback
3852	to SANE_Auth_Callback.
3853	* backend/mustek.c (sane_init): Ditto.
3854	* backend/pnm.c (sane_init): Ditto.
3855	* backend/metadl.c (sane_init): Ditto.
3856
3857	* frontend/saned.c (main): Put output socket in TCP_NODELAY mode.
3858	Include of <sys/socket.h>
3859
3860	* backend/metanet.c (openit): Ditto.
3861
3862Mon Jan 27 19:32:29 1997  David Mosberger-Tang  <davidm@azstarnet.com>
3863
3864
3865	* doc/sane.tex (subsection{Device Descriptor Type}): Change vendor
3866 	name "None" to "Noname".
3867	* backend/pnm.c (dev): Change vendor name from "noname" to "Noname".
3868
3869	* include/sane.h (SANE_STATUS_ACCESS_DENIED): New status value.
3870	* sanei/sane_strstatus.c (sane_strstatus): Return appropriate
3871	status string.
3872
3873	* frontend/xscan.c (scan_dialog): Don't depend on first_frame
3874	when creating image---the old code didn't work for R/G/B-only
3875	frames anyhow, so there is no point pretending.
3876
3877	* include/sane.h (SANE_Parameters): Rename first_frame to
3878	last_frame.
3879	* backend/metanet.c (sane_get_parameters): Update accordingly.
3880	* backend/qcam.c (sane_get_parameters): Ditto.
3881	* frontend/saned.c (readcmd): Ditto.
3882	* frontend/test.c (testsane): Ditto.
3883	* backend/mustek.c (sane_get_parameters): Set last_frame unless
3884	the current pass is acquiring a red- or green-only frame.
3885
3886	* doc/sane.tex (subsection{sane_get_parameters)): Change
3887 	FIRST_FRAME into LAST_FRAME.
3888
3889	* backend/metanet.c: Initialize PEER with -1.
3890	(sane_get_select_fd): Return PEER and succeed if not negative.
3891
3892	* include/netsane.h (ns_printf, ns_scanf, netfd_wr, netfd_rd):
3893 	Remove (obsolete).
3894
3895	* frontend/saned.c: Increase STRBUF size to 32KB to get better
3896	scan_read() throughput.
3897
3898	* include/sane.h (SANE_Athorization_Callback): Return void
3899 	(instead of int) and make USERNAME and PASSWORD (pointers to)
3900 	return values.
3901
3902	* frontend/saned.c (netsane_auth_callback): Update prototype.
3903
3904	* backend/metanet.c (sane_init): Move assignments out of
3905 	if-conditional for clarity (and to avoid gcc warning).
3906
3907	* sanei/sanei_printf.c: Include <memory.h>, <string.h>.
3908
3909	* backend/Makefile.in (libsane-mustek.a): Replace
3910 	../sanei/sane_strstatus.o with appropriately defined EXTRA
3911	macro.
3912
3913	* backend/mustek.c (attach): Initialize ld.mode to MLD_NORMAL for
3914 	all scanners but MFS-12000SP.
3915	(line_distance): In MD_MFS correction mode, do not issue LD
3916 	command.
3917	(sane_close): Free s->ld.red_buf if non-NULL.
3918	(fix_line_distance_mfs): New function.
3919	(fix_line_distance_normal): Rename from fix_line_distance().
3920	(reader_process): In MLD_MFS line-distance mode, call the
3921	mfs-specific routine, not the normal one.
3922
3923	* backend/mustek.h (Mustek_Scanner): New members ld.red_buf,
3924 	ld.green_buf.
3925	(MUSTEK_FLAG_LD_MFS): New flag to indicate when MFS-specific
3926 	line-distance correction is needed.
3927
3928	* backend/metanet.c: Fix up some minor formatting problems due
3929	to indent.
3930
3931	* Merge in Andy's netsane diffs.
3932
3933Sun Jan 26 00:04:22 1997  David Mosberger-Tang  <davidm@azstarnet.com>
3934
3935	* frontend/xscan.c (zoom_in_preview): Ignore selections of zero
3936	or negative width/height.
3937	(set_max_selection): Use SANE_UNFIX() instead of open coding.
3938	Adapted to use gtkglue.
3939
3940	* backend/metadl.c (sane_init): Grab authorization callback.
3941	(authorization_callback): New variable.
3942	(load): Pass authorization callback to init function.
3943
3944	* frontend/gtkglue.h (gsg_destroy_dialog): Add param_callback.
3945
3946Sat Jan 25 17:35:52 1997  David Mosberger-Tang  <davidm@azstarnet.com>
3947
3948	* frontend/Makefile.in (distclean): Mention $(TESTPROGRAMS).
3949
3950	* backend/metanet.c (copy_opt): Fix constraint-length computation.
3951
3952	* backend/metadl.c (sane_get_devices): Pass along LOCA_ONLY arg
3953	to backend.
3954
3955	* frontend/xcam.c (main): Remove extraneous calls to gtk_exit()
3956	and sane_exit().
3957
3958	* frontend/scan.c (main): Install sane_exit() as atexit handler.
3959
3960	* backend/metadl.c (sane_get_devices): Ignore NULL BE_LIST.
3961
3962	* frontend/saned.c (quit): New function.
3963	(main): catch SIGALRM, and SIGPIPE.
3964
3965	* backend/metanet.c (sane_get_devices): Return empty list of
3966	LOCAL_ONLY is TRUE.
3967
3968	* frontend/saned.c (readcmd): Don't take LOCAL arg from
3969 	request---always pass SANE_TRUE!
3970
3971	* doc/netprotocol.doc (sane_get_devices): Don't need LOCAL arg.
3972
3973	* include/sanei.h: Include <sane.h>.
3974
3975	* frontend/test.c (testsane): Print status message instead of
3976	status code and make robust against failed calls.  Use fprintf(stderr
3977	instead of printf.
3978
3979	* backend/qcam.c (reader_process): Remove extraneous arg.
3980	(reader_process): Declare `static' to make setjmp() safe.
3981
3982	* frontend/saned.c (readcmd): Delete unused variable schr_hlp.
3983	(peerfp): New variable.
3984	Rename ns_printf() to sanei_printf() and pass peerfp arg.
3985	Rename ns_scanf() to sanei_scanf() and pass peerfp arg.
3986	(say_helo): Make peerfp refer to fd 0.
3987
3988	* backend/metanet.c (openit): Return FILE*, not socket.
3989	(openit): Return 0, not -1 in case of failure.
3990	(peerfp): New variable.
3991	Rename ns_printf() to sanei_printf() and pass peerfp arg.
3992	Rename ns_scanf() to sanei_scanf() and pass peerfp arg.
3993
3994	* sanei/sane_strstatus.c: New file (in lieu of backend/sane.c)
3995	* sanei/sanei_constrain_value.c: Ditto.
3996	* sanei/sanei_init_debug.c: Ditto.
3997
3998	* sanei/sanei_scanf.c (ns_scanf): New file (based on Andy's
3999 	ns_scanf).
4000	Use int8_t for 'c', int32_t for 'd'.
4001	Include <sys/types.h>.
4002
4003	* sanei/sanei_printf.c (sanei_printf): New file (based on Andy's
4004 	ns_printf).
4005	Use int8_t for 'c', int32_t for 'd'.
4006	Include <sys/types.h>.
4007
4008	* include/netsane.h (CMD_SANE_STRS): Remove.
4009
4010	* backend/metanet.c: Include <errno.h>
4011	(sane_strstatus): Remove.
4012
4013	* backend/Makefile.in (BACKENDS): Mention libsane-metanet.
4014
4015	* backend/metanet.c (openit): Use memcpy instead of bcopy.  Use
4016 	inet_aton() instead of inet_addr(), don't prototype.
4017	(sane_get_devices): Use strdup() instead of opencoding it.
4018	(sane_get_devices): Don't append " (NS)" to modelname!  Metanet
4019 	already prefixes the devicename with netsane, which is good
4020 	enough.
4021
4022	* backend/sanei.h (IF_DBG): New macro.
4023
4024	* PROJECTS (Backend): Mention saned, metanet, and autoadj.
4025	(Frontend): New info.
4026
4027	* AUTHORS: Update to reflect sanescan -> xscan namechange.
4028	Credit Andy for netsane.
4029
4030Fri Jan 24 00:01:45 1997  David Mosberger-Tang  <davidm@azstarnet.com>
4031
4032	* doc/sane.tex (subsection{\code{sane\_get\_option\_descriptor}}):
4033	Define how long the returned option descriptor must remain valid.
4034
4035	* frontend/gtkglue.c (autobutton_update): Check for
4036 	SANE_INFO_RELOAD_OPTIONS.
4037	(button_update): Ditto.
4038
4039	* frontend/xcam.c (main): Add device info label.
4040
4041	* backend/mustek.c (init_options): Make OPT_BRIGHTNESS and
4042 	OPT_CONTRAST inactive by default.
4043
4044	* frontend/xcam.c (exit_callback): Only call gsg_destroy_dialog()
4045	if dialog is non-null.
4046
4047Thu Jan 23 00:17:46 1997  David Mosberger-Tang  <davidm@azstarnet.com>
4048
4049	* backend/mustek.c (sane_control_option): Return
4050 	SANE_STATUS_DEVICE_BUSY when attempting to set option during
4051 	scanning.
4052	(sane_close): Call do_cancel(), not sane_cancel().
4053	(sane_start): Ditto.
4054
4055	* backend/pnm.c (sod): Rename "File" group to "Source Selection".
4056
4057	* frontend/xcam.c (device_name_dialog_cancel): New function.
4058	(device_name_dialog_ok): Ditto.
4059	(prompt_for_device_name): Ditto.
4060	(build_device_menu): Move "Rescan devices..." from build_files_menu()
4061	to here.  Add "Specify device name..." entry that invokes
4062	prompt_for_device_name.
4063	(play_stop_button): Ignore call if there is no device_dialog yet.
4064	(main): Don't attempt to set preview size if there is no device
4065	dialog yet.
4066
4067	* frontend/gtkglue.c (text_entry_callback): Don't ignore tab
4068	key---it's used to switch focus!
4069
4070	* backend/qcam.c (qc_wait): Return read value so optimizer won't
4071 	be able to get rid of it easily.
4072	(qc_lock_wait): Use same lockname as qcam-0.7d for
4073 	interoperability.
4074	(reader_process): Explicitly do an enable_ports() in the reader
4075 	process.  Linux/x86 doesn't inherit i/o port access rights.
4076
4077	* frontend/xcam.c (stop_camera): New function.
4078	(input_available): Use stop_camera().
4079	(next_frame): Ditto.
4080
4081	* backend/genscsi.c (genscsi_open): Add missing DBG_INIT(GENSCSI).
4082	(genscsi_cmd): Return SANE_STATUS_DEVICE_BUSY if EBUSY is
4083 	returned.
4084
4085	* frontend/xcam.c (input_available): Fix line wrap for
4086 	SANE_FRAME_GRAY.
4087
4088	* include/sane.h: Remove old SANE_STATUS_AGAIN.
4089	* backend/sane.c (sane_strstatus): Ditto.
4090	* backend/mustek.c (sane_read): Return SANE_STATUS_GOOD, not AGAIN
4091	when no data available.
4092	(sane_start): Add debug printing.
4093	(sane_set_io_mode): Fix typo: return SANE_STATUS_GOOD on success.
4094
4095	* backend/mustek.c (sane_control_option): Add support for
4096 	OPT_BACKTRACK.
4097	(attach): Add lots of debug printing.
4098
4099	* backend/qcam.README: New file.
4100
4101	* backend/qcam.c (sane_control_option): Allow changing resolution
4102 	while scan is in progress, but set RELOAD_OPTIONS only if not
4103 	scanning already.
4104
4105	* frontend/xcam.c (canvas_events): Get rid of old debug messages.
4106
4107	* backend/qcam.c (sane_get_parameters): Update parameters only if
4108 	not scanning.  This makes it possible to change certain options
4109	(such as width/height while a scan is in progress).
4110	(sane_control_option): Allow changing of image corners,
4111 	transfer-scale, and depth while scan is in progress.  Set
4112	RELOAD_PARAMS only if scan is not in progress.
4113	(sane_start): Return DEVICE_BUSY if scan is in progress.
4114
4115	* configure.in (PACKAGE_VERSION): Version 0.41 released.
4116
4117	* backend/qcam.c (brightness_range): New variable.
4118	(init_options): Use brightness_range instead of u8_range to
4119	avoid going into bulb-mode accidentally.
4120
4121Wed Jan 22 09:16:21 1997  David Mosberger-Tang  <davidm@azstarnet.com>
4122
4123	* backend/qcam.c (reader_process): Correct typo: it's buf, not
4124 	buffer that we want to write out in high-res mode.
4125	(qc_reset): New function.
4126	(reader_process): Send at least one byte of data after receiving a
4127 	signal.
4128	(sighandler): New function.
4129	(sane_cancel): If a read request is outstanding, cancel request by
4130 	(a) sending SIGINT to reader process, (b) reading one byte of data
4131 	in blocking mode, and then (c) reading whatever is left in the
4132 	pipe in non-blocking mode.
4133	(sane_read): Return SANE_STATUS_CANCELLED if SCANNING is not set.
4134
4135	* backend/qcam.h (QC_Scanner): Remove unused x/y fields.
4136
4137	* backend/qcam.c (sane_close): Call disable_ports().
4138	(sane_init): Replace isblank() with isspace() (former is a GNU
4139 	extension).
4140	(sane_control_option): Scale corner coordinates when switching
4141 	resolution and ensure they're always legal values.
4142	(sane_close): Check for reader_pid >= 0 not != 0!
4143	(sane_exit): Move disable_ports () from sane_close to here.
4144	(sane_start): Keep track of when we're holding lock.
4145	(sane_read): Release lock if s->holding_lock is TRUE and we
4146	read a few bytes.
4147	(sane_cancel): Release lock if it's being held.
4148
4149	* backend/qcam.c: Clean up unused variables.
4150
4151Tue Jan 21 13:49:00 1997  David Mosberger-Tang  <davidm@azstarnet.com>
4152
4153	* backend/qcam.c (sane_control_option): Keep track of changes to
4154 	option values.
4155	(sane_get_select_fd): Implemented.
4156	(sane_set_io_mode): Ditto.
4157	(reader_process): New function.
4158	(sane_start): Modify to use reader_process().
4159
4160	* backend/qcam.h: (struct QC_Scanner): New field value_changed.
4161
4162Mon Jan 20 22:11:11 1997  David Mosberger-Tang  <davidm@azstarnet.com>
4163
4164	* backend/metadl.c (sane_open): Correctly handle case where
4165	backend name is empty.
4166
4167Sun Jan 19 10:29:43 1997  David Mosberger-Tang  <davidm@azstarnet.com>
4168
4169	* backend/qcam.c (attach): Add qc_wait() calls after each
4170 	write_lpcontrol() call to ensure reliable communication.
4171	(attach): Add debug output in case of failure.
4172
4173	* Version 0.4 released.
4174
4175Sat Jan 18 10:12:40 1997  David Mosberger-Tang  <davidm@azstarnet.com>
4176
4177	* frontend/xscan.c (get_scan_size): Handle case where scan
4178 	width/height is of type SANE_TYPE_INT.
4179	(get_scan_size): If width/height unit is pixels and the height is
4180 	less than 500 pixels, use a ratio of 1.
4181	(device_dialog): Call update_complete_dialog() to ensure inactive
4182 	options do not show (there probably is a better solution to this).
4183
4184	* frontend/scan.c (main): Compute bottom-right position as
4185 	top-left + width/height - 1 (the - 1 is new and necessary and
4186 	works both for fixed and integer values).
4187	(print_option): Insert line-break when column >= 79 (not 80) to
4188 	leave last column blank (better when running inside Emacs, for
4189 	example).
4190	(main): Fix typos: case 't': window[2] -> window[3], switch short
4191 	option names for top/left.
4192	(print_option): Print current option values (except for vectors).
4193	(fetch_options): Another off by one bug: width is br_x|y-tl_x|y+1.
4194
4195Thu Jan 16 20:26:29 1997  David Mosberger-Tang  <davidm@azstarnet.com>
4196
4197	* backend/sane.c (sanei_constrain_value): Fix so it properly
4198 	handles strings that are longer than any of the strings in a
4199 	string list.
4200
4201	* frontend/scan.c (main): Subtract value of top-left-x/top-left-y
4202	from width/height, respectively after all options have been
4203	read in.
4204	(main): Print help message _after_ options have been processed.
4205	(fetch_options): New function.
4206	(set_option): Call fetch_options() if SANE_INFO_RELOAD_OPTIONS is
4207	set.
4208	(main): Call fetch_options() instead of open-coding same.
4209
4210	* doc/sane.tex (subsection{Device Descriptor Type}): Add index
4211	entry for device-name.
4212
4213Wed Jan 15 19:55:03 1997  David Mosberger-Tang  <davidm@azstarnet.com>
4214
4215	* backend/metadl.c (sane_init): Call DBG_INIT() and declare
4216	debug level variable with DBG_DECL.  Added various debug
4217	statements.
4218
4219	* backend/pnm.c (sane_init): Ditto.
4220	* backend/mustek.c (sane_init): Ditto.
4221
4222	* frontend/scan.c (parse_scalar): Default to mm again (instead of
4223 	cm).  Using `mm' as the default is counter-intuitive since the
4224 	help info is printed with `mm' as the unit.
4225
4226	* frontend/xscan.c (main): Pass local_only==SANE_FALSE as second
4227	argument to sane_get_devices().
4228
4229Sun Jan 12 13:12:45 1997  David Mosberger-Tang  <davidm@azstarnet.com>
4230
4231	* backend/sane.c (sanei_constrain_value): For string-lists, ignore
4232 	case and allow prefixes as long as they remain unique.
4233
4234	* frontend/scan.c (print_option): Print "auto" as a legal option
4235 	value if the option has capability SANE_CAP_AUTOMATIC set.
4236	(process_backend_option): If option has SANE_CAP_AUTOMATIC set,
4237 	let option value of "auto" turn on automatic mode.
4238
4239Wed Jan  8 19:55:31 1997  David Mosberger-Tang  <davidm@azstarnet.com>
4240
4241	* backend/Makefile.in (install): Modify install rule so that
4242	$(libdir) gets added to /etc/ld.so.conf if it isn't there
4243	already.
4244	(COMPILE): Use $(SHCFLAGS) instead of $(CFLAGS).
4245	(LINK): Remove (unused).
4246
4247Wed Dec 25 20:21:39 1996  David Mosberger-Tang  <davidm@azstarnet.com>
4248
4249	* backend/mustek.README: Add section "SCSI Adapter Tips".
4250
4251Fri Dec 13 20:02:03 1996  David Mosberger-Tang  <davidm@azstarnet.com>
4252
4253	* backend/mustek.c (line_distance): Rename
4254 	LINE_DISTANCE_WORKAROUND to NEED_MUSTEK_LINE_DISTANCE_WORKAROUND.
4255	Include <config.h>.
4256
4257Thu Dec 12 20:19:26 1996  David Mosberger-Tang  <davidm@azstarnet.com>
4258
4259	* backend/mustek.h (next): New member.  Forms linked list of open
4260 	handles.  * backend/mustek.c (first_handle): New variable.  Root
4261 	of list of open handles.
4262	(sane_open): Insert handle into list of open handles.
4263	(sane_close): Remove handle from list of open handles.
4264
4265Wed Dec  4 18:37:45 1996  David Mosberger-Tang  <davidm@azstarnet.com>
4266
4267	* backend/mustek.c (attach): Added back MFS-12000SP, MFS-08000SP,
4268 	and MFS-06000SP.  At least the first one really does exist.  I
4269 	don't know how the differ from the other scanners, but it looks as
4270 	if line-distance correction might be different.
4271
4272Tue Dec  3 21:22:54 1996  David Mosberger-Tang  <davidm@azstarnet.com>
4273
4274	* backend/sane.c (sane_strstatus): Remove trailing dot from error
4275 	message.
4276
4277Mon Dec  2 19:12:53 1996  David Mosberger-Tang  <davidm@azstarnet.com>
4278
4279	* backend/mustek.c (max_string_size): New function to determine
4280 	maximum size of a string constraint list.
4281	(init_options): Use max_string_size () to initialize size of
4282 	string-valued options.
4283
4284Sun Dec  1 15:44:53 1996  David Mosberger-Tang  <davidm@azstarnet.com>
4285
4286	* Version 0.1 released.
4287
4288	* backend/mustek.c (attach): Fix misspelled/bad model names:
4289		MFS-12000SP -> MSF-12000SP
4290		MFS-08000SP -> MSF-08000SP
4291		MFS-06000SP -> MSF-06000SP
4292		MFS-08000CZ -> <removed>
4293		MFS-06000CZ -> <removed>
4294
4295Tue Nov 26 19:11:18 1996  David Mosberger-Tang  <davidm@azstarnet.com>
4296
4297	* frontend/scan.c (print_option): Separate option name from option
4298 	values by blank, not equal so the syntax is correct even for short
4299 	options.
4300	(parse_scalar): Added missing newline to error message.
4301
4302Sat Nov 16 17:26:19 1996  David Mosberger-Tang  <davidm@azstarnet.com>
4303
4304	* frontend/scan.c (main): Created (by Andy).
4305
4306	* backend/pnm.c: Adapted from Andy's pnm.c (just minor updates).
4307
4308	* backend/mustek.c: Created.
4309	* backend/metadl.c: Ditto.
4310