From f3843702a12cf46f9cd4d1be772055ec6893a1bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Frings-F=C3=BCrst?= Date: Mon, 27 Apr 2015 06:51:24 +0200 Subject: Release 1.0.25+git20150425-1 --- AUTHORS | 1 + ChangeLog | 88 + backend/Makefile.am | 19 +- backend/Makefile.in | 228 +- backend/avision.c | 397 +-- backend/avision.h | 84 +- backend/canon_dr.c | 36 +- backend/canon_dr.conf.in | 1 + backend/dll.conf.in | 1 + backend/epjitsu.c | 26 +- backend/epson2-commands.c | 4 +- backend/epson2-io.c | 9 +- backend/epson2-ops.c | 34 +- backend/epson2.c | 63 +- backend/epson2.h | 2 +- backend/epsonds-cmd.c | 899 ++++++ backend/epsonds-cmd.h | 29 + backend/epsonds-io.c | 177 ++ backend/epsonds-io.h | 33 + backend/epsonds-jpeg.c | 221 ++ backend/epsonds-jpeg.h | 19 + backend/epsonds-ops.c | 474 +++ backend/epsonds-ops.h | 41 + backend/epsonds-usb.c | 33 + backend/epsonds-usb.h | 24 + backend/epsonds.c | 1434 +++++++++ backend/epsonds.conf.in | 12 + backend/epsonds.h | 198 ++ backend/genesys.c | 56 +- backend/genesys.conf.in | 6 + backend/genesys.h | 1 + backend/genesys_devices.c | 155 + backend/genesys_gl124.c | 39 +- backend/genesys_gl124.h | 14 +- backend/genesys_low.c | 43 +- backend/genesys_low.h | 5 + backend/hp5590.c | 8 + backend/pixma.c | 2 +- backend/pixma.h | 4 +- backend/pixma_common.c | 2 +- backend/pixma_common.h | 2 +- backend/pixma_imageclass.c | 12 +- backend/pixma_io_sanei.c | 2 +- backend/pixma_mp150.c | 11 +- backend/pixma_mp730.c | 2 +- backend/pixma_mp750.c | 2 +- backend/pixma_mp810.c | 25 +- configure.in | 2 +- debian/changelog | 60 + debian/control | 12 +- debian/libsane.symbols | 2065 ++++++++++++ debian/patches/0005-mk_reproducible_results.patch | 22 + debian/patches/001-scanimage_manpage.patch | 21 + debian/patches/0510-disable-html-tests.patch | 35 + debian/patches/dll_backend_conf.patch | 8 +- debian/patches/libsane_deps.patch | 8 +- debian/patches/multiarch_dll_search_path.patch | 18 +- debian/patches/multiarch_manpages_libdir.patch | 8 +- debian/patches/sane-desc.c_debian_mods.patch | 3506 ++++++++++----------- debian/patches/series | 3 + debian/rules | 10 +- debian/sane-utils.lintian-overrides | 5 + debian/sane-utils.postrm | 33 +- debian/saned@.service | 3 +- debian/tests/control | 9 + debian/tests/start-net | 29 + doc/Makefile.am | 5 +- doc/Makefile.in | 9 +- doc/descriptions/avision.desc | 10 +- doc/descriptions/canon_dr.desc | 6 +- doc/descriptions/epjitsu.desc | 4 +- doc/descriptions/epsonds.desc | 97 + doc/descriptions/genesys.desc | 14 +- doc/descriptions/kodakaio.desc | 10 +- doc/descriptions/pixma.desc | 62 +- doc/sane-avision.man | 4 +- doc/sane-epjitsu.man | 2 +- doc/sane-epsonds.man | 101 + doc/sane-genesys.man | 17 +- doc/sane-pixma.man | 22 +- 80 files changed, 8924 insertions(+), 2274 deletions(-) create mode 100644 backend/epsonds-cmd.c create mode 100644 backend/epsonds-cmd.h create mode 100644 backend/epsonds-io.c create mode 100644 backend/epsonds-io.h create mode 100644 backend/epsonds-jpeg.c create mode 100644 backend/epsonds-jpeg.h create mode 100644 backend/epsonds-ops.c create mode 100644 backend/epsonds-ops.h create mode 100644 backend/epsonds-usb.c create mode 100644 backend/epsonds-usb.h create mode 100644 backend/epsonds.c create mode 100644 backend/epsonds.conf.in create mode 100644 backend/epsonds.h create mode 100644 debian/libsane.symbols create mode 100644 debian/patches/0005-mk_reproducible_results.patch create mode 100644 debian/patches/001-scanimage_manpage.patch create mode 100644 debian/patches/0510-disable-html-tests.patch create mode 100644 debian/tests/control create mode 100644 debian/tests/start-net create mode 100644 doc/descriptions/epsonds.desc create mode 100644 doc/sane-epsonds.man diff --git a/AUTHORS b/AUTHORS index 0f553ac..cf0f5e0 100644 --- a/AUTHORS +++ b/AUTHORS @@ -35,6 +35,7 @@ Backends: epjitsu: m. allan noah (*) epson: Karl Heinz Kremer (*) epson2: Alessandro Zummo (*) + epsonds: Alessandro Zummo (*) fujitsu: Randolph Bentson, Frederik Ramm, Oliver Schirrmeister (*), m. allan noah (*) gphoto2: Peter Fales (*) diff --git a/ChangeLog b/ChangeLog index e398d74..81b904f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,91 @@ +2015-04-12 Stéphane Voltz + * doc/sane-genesys.man backend/genesys.[ch] backend/genesys_low.c: + fix calibration cleared when calibration file loaded, + add expiration time option for cache. + +2015-04-07 Rolf Bensch + * backend/pixma_mp810.c: Canon Pixma MP990 TPU scan patch from Guillaume + Courtois. + * doc/descriptions/pixma.desc: remove unmaintained websites + * backend/pixma.h, doc/descriptions/pixma.desc: Pixma backend version 0.17.17 + +2015-04-03 Rolf Bensch + * backend/pixma_imageclass.c, doc/descriptions/pixma.desc, + doc/sane-pixma.man: New Canon scanners i-SENSYS MF210 Series, MF220 Series, + MF5900 Series, MF6100 Series and imageCLASS MF810/820. All scanners need + further testing. + * backend/pixma.h, doc/descriptions/pixma.desc: Pixma backend version 0.17.16 + * backend/pixma.[ch], backend/pixma_common.[ch], backend/pixma_imageclass.c, + backend/pixma_io_sanei.c, backend/pixma_mp150.c, backend/pixma_mp7[35]0.c, + backend/pixma_mp810.c: update copyright. + +2015-03-17 Stéphane Voltz + * backend/genesys.c, backend/genesys.conf.in, + backend/genesys_devices.c, backend/genesys_gl124.c, + backend/genesys_gl124.h, backend/genesys_low.h, + doc/descriptions/genesys.desc, doc/sane-genesys.man: add support for + Canon LiDE 120 + +2015-03-14 René Rebe + * backend/avision.h backend/avision.c: + fixed 32-bit build regression due new feature_type and + reverted 4d38523bdacd18186857ee8a93daaa0f8721c89b + +2015-03-13 René Rebe + * doc/sane-avision.man, backend/avision.h, backend/avision.c: + fixed newer avision scanner duplex scanning, and removed unnecessary + feature_type2 clutter by using a uint64_t to share all bits + +2015-03-12 René Rebe + * doc/descriptions/avision.desc, backend/avision.c: + fixed multiple regressions (range initilaizer, clobbering + paper-length window bits, ...) introduced over the past years, added + support for newer ASIC gamma table size, added AV220D2+ ID +2015-03-04 Stéphane Voltz + * doc/descriptions/genesys.desc: mark LiDE 120 as unsupported. + +2015-03-02 Stéphane Voltz + * backend/genesys_low.c, backend/genesys_gl124.[ch]: + improve parking reliability for LiDE 210 + +2015-03-01 Stéphane Voltz + * backend/genesys_devices.c, backend/genesys_gl124.c: + final tuning for Canon LiDE 220 + +2015-02-26 Stéphane Voltz + * backend/genesys.c, backend/genesys.conf.in, + backend/genesys_devices.c, backend/genesys_gl124.c, + backend/genesys_gl124.h, backend/genesys_low.h, + doc/descriptions/genesys.desc, doc/sane-genesys.man: add support for + Canon LiDE 220 + +2015-02-21 Rolf Bensch + * backend/pixma_mp150.c: Canon PIXMA MG6400 Series doesn't need special + image format post processing. + * doc/descriptions/pixma.desc, doc/sane-pixma.man: + Canon PIXMA MG6400 Series is working, reported by Christian Spielberger. + * backend/pixma_mp150.c, doc/descriptions/pixma.desc, doc/sane-pixma.man: + New scanners Canon PIXMA MX490 Series and E480 Series. All scanners need + further testing. + * backend/pixma.h, doc/descriptions/pixma.desc: Pixma backend version 0.17.15 + +2015-02-09 Rolf Bensch + * doc/descriptions/pixma.desc: Canon PIXMA MX920 Series supports Ethernet + and WiFi interfaces. + +2015-02-06 Rolf Bensch + * doc/descriptions/pixma.desc, doc/sane-pixma.man: + Canon PIXMA MG2500 Series is working, reported by Brenda Ruch. + +2015-01-20 Ilia Sotnikov + * backend/hp5590.c: + Invert pixels in case of TMA Negatives source has been selected. + Thanks for Will Kranz who reported this. + +2015-01-17 Rolf Bensch + * doc/descriptions/pixma.desc, doc/sane-pixma.man: + Canon PIXMA MG2200 Series is working (bug #314944). + 2014-12-31 Paul Newall

* backend/kodakaio.c: connection to device moved from sane_open to sane_start diff --git a/backend/Makefile.am b/backend/Makefile.am index f84d23e..40ec6c6 100644 --- a/backend/Makefile.am +++ b/backend/Makefile.am @@ -83,7 +83,7 @@ BACKEND_CONFS= abaton.conf agfafocus.conf apple.conf artec.conf \ canon_pp.conf cardscan.conf coolscan2.conf coolscan3.conf \ coolscan.conf dc210.conf dc240.conf dc25.conf \ dell1600n_net.conf dmc.conf epjitsu.conf epson2.conf \ - epson.conf fujitsu.conf genesys.conf gphoto2.conf \ + epson.conf epsonds.conf fujitsu.conf genesys.conf gphoto2.conf \ gt68xx.conf hp3900.conf hp4200.conf hp5400.conf \ hp.conf hpsj5s.conf hs2p.conf ibm.conf kodak.conf kodakaio.conf\ leo.conf lexmark.conf ma1509.conf magicolor.conf \ @@ -171,7 +171,7 @@ be_convenience_libs = libabaton.la libagfafocus.la \ libcoolscan2.la libcoolscan3.la libdc25.la \ libdc210.la libdc240.la libdell1600n_net.la \ libdmc.la libdll.la libdll_preload.la libepjitsu.la libepson.la \ - libepson2.la libfujitsu.la libgenesys.la \ + libepson2.la libepsonds.la libfujitsu.la libgenesys.la \ libgphoto2_i.la libgt68xx.la libhp.la \ libhp3500.la libhp3900.la libhp4200.la \ libhp5400.la libhp5590.la libhpljm1005.la \ @@ -204,7 +204,7 @@ be_dlopen_libs = libsane-abaton.la libsane-agfafocus.la \ libsane-coolscan2.la libsane-coolscan3.la libsane-dc25.la \ libsane-dc210.la libsane-dc240.la libsane-dell1600n_net.la \ libsane-dmc.la libsane-epjitsu.la libsane-epson.la \ - libsane-epson2.la libsane-fujitsu.la libsane-genesys.la \ + libsane-epson2.la libsane-epsonds.la libsane-fujitsu.la libsane-genesys.la \ libsane-gphoto2.la libsane-gt68xx.la libsane-hp.la \ libsane-hp3500.la libsane-hp3900.la libsane-hp4200.la \ libsane-hp5400.la libsane-hp5590.la libsane-hpljm1005.la \ @@ -471,6 +471,19 @@ libsane_epson2_la_LDFLAGS = $(DIST_SANELIBS_LDFLAGS) libsane_epson2_la_LIBADD = $(COMMON_LIBS) libepson2.la ../sanei/sanei_init_debug.lo ../sanei/sanei_constrain_value.lo ../sanei/sanei_config.lo ../sanei/sanei_config2.lo sane_strstatus.lo ../sanei/sanei_usb.lo ../sanei/sanei_scsi.lo ../sanei/sanei_pio.lo ../sanei/sanei_tcp.lo ../sanei/sanei_udp.lo $(SCSI_LIBS) $(USB_LIBS) $(SOCKET_LIBS) $(MATH_LIB) $(RESMGR_LIBS) EXTRA_DIST += epson2.conf.in +libepsonds_la_SOURCES = epsonds.c epsonds.h epsonds-usb.c epsonds-usb.h epsonds-io.c epsonds-io.h \ + epsonds-cmd.c epsonds-cmd.h epsonds-ops.c epsonds-ops.h epsonds-jpeg.c epsonds-jpeg.h +libepsonds_la_CPPFLAGS = $(AM_CPPFLAGS) -DBACKEND_NAME=epsonds + +nodist_libsane_epsonds_la_SOURCES = epsonds-s.c +libsane_epsonds_la_CPPFLAGS = $(AM_CPPFLAGS) -DBACKEND_NAME=epsonds +libsane_epsonds_la_LDFLAGS = $(DIST_SANELIBS_LDFLAGS) +libsane_epsonds_la_LIBADD = $(COMMON_LIBS) libepsonds.la ../sanei/sanei_init_debug.lo ../sanei/sanei_constrain_value.lo \ + ../sanei/sanei_config.lo ../sanei/sanei_config2.lo sane_strstatus.lo \ + ../sanei/sanei_usb.lo ../sanei/sanei_scsi.lo \ + @SANEI_SANEI_JPEG_LO@ $(JPEG_LIBS) $(USB_LIBS) $(MATH_LIB) $(RESMGR_LIBS) +EXTRA_DIST += epsonds.conf.in + libfujitsu_la_SOURCES = fujitsu.c fujitsu.h fujitsu-scsi.h libfujitsu_la_CPPFLAGS = $(AM_CPPFLAGS) -DBACKEND_NAME=fujitsu diff --git a/backend/Makefile.in b/backend/Makefile.in index 3f7fa12..b688e93 100644 --- a/backend/Makefile.in +++ b/backend/Makefile.in @@ -1,4 +1,4 @@ -# Makefile.in generated by automake 1.13.4 from Makefile.am. +# Makefile.in generated by automake 1.14.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. @@ -211,6 +211,12 @@ am_libepson2_la_OBJECTS = libepson2_la-epson2.lo \ libepson2_la-epson2-commands.lo libepson2_la-epson2-ops.lo \ libepson2_la-epson2-cct.lo libepson2_la_OBJECTS = $(am_libepson2_la_OBJECTS) +libepsonds_la_LIBADD = +am_libepsonds_la_OBJECTS = libepsonds_la-epsonds.lo \ + libepsonds_la-epsonds-usb.lo libepsonds_la-epsonds-io.lo \ + libepsonds_la-epsonds-cmd.lo libepsonds_la-epsonds-ops.lo \ + libepsonds_la-epsonds-jpeg.lo +libepsonds_la_OBJECTS = $(am_libepsonds_la_OBJECTS) libfujitsu_la_LIBADD = am_libfujitsu_la_OBJECTS = libfujitsu_la-fujitsu.lo libfujitsu_la_OBJECTS = $(am_libfujitsu_la_OBJECTS) @@ -654,6 +660,18 @@ libsane_epson2_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(AM_CFLAGS) $(CFLAGS) $(libsane_epson2_la_LDFLAGS) $(LDFLAGS) \ -o $@ +libsane_epsonds_la_DEPENDENCIES = $(COMMON_LIBS) libepsonds.la \ + ../sanei/sanei_init_debug.lo ../sanei/sanei_constrain_value.lo \ + ../sanei/sanei_config.lo ../sanei/sanei_config2.lo \ + sane_strstatus.lo ../sanei/sanei_usb.lo ../sanei/sanei_scsi.lo \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) +nodist_libsane_epsonds_la_OBJECTS = libsane_epsonds_la-epsonds-s.lo +libsane_epsonds_la_OBJECTS = $(nodist_libsane_epsonds_la_OBJECTS) +libsane_epsonds_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ + $(AM_CFLAGS) $(CFLAGS) $(libsane_epsonds_la_LDFLAGS) \ + $(LDFLAGS) -o $@ libsane_fujitsu_la_DEPENDENCIES = $(COMMON_LIBS) libfujitsu.la \ ../sanei/sanei_init_debug.lo ../sanei/sanei_constrain_value.lo \ ../sanei/sanei_config.lo ../sanei/sanei_config2.lo \ @@ -1505,24 +1523,24 @@ SOURCES = $(libabaton_la_SOURCES) $(libagfafocus_la_SOURCES) \ $(libdll_la_SOURCES) $(libdll_preload_la_SOURCES) \ $(libdmc_la_SOURCES) $(libepjitsu_la_SOURCES) \ $(libepson_la_SOURCES) $(libepson2_la_SOURCES) \ - $(libfujitsu_la_SOURCES) $(libgenesys_la_SOURCES) \ - $(libgphoto2_i_la_SOURCES) $(libgt68xx_la_SOURCES) \ - $(libhp_la_SOURCES) $(libhp3500_la_SOURCES) \ - $(libhp3900_la_SOURCES) $(libhp4200_la_SOURCES) \ - $(libhp5400_la_SOURCES) $(libhp5590_la_SOURCES) \ - $(libhpljm1005_la_SOURCES) $(libhpsj5s_la_SOURCES) \ - $(libhs2p_la_SOURCES) $(libibm_la_SOURCES) \ - $(libkodak_la_SOURCES) $(libkodakaio_la_SOURCES) \ - $(libkvs1025_la_SOURCES) $(libkvs20xx_la_SOURCES) \ - $(libkvs40xx_la_SOURCES) $(libleo_la_SOURCES) \ - $(liblexmark_la_SOURCES) $(libma1509_la_SOURCES) \ - $(libmagicolor_la_SOURCES) $(libmatsushita_la_SOURCES) \ - $(libmicrotek_la_SOURCES) $(libmicrotek2_la_SOURCES) \ - $(libmustek_la_SOURCES) $(libmustek_pp_la_SOURCES) \ - $(libmustek_usb_la_SOURCES) $(libmustek_usb2_la_SOURCES) \ - $(libnec_la_SOURCES) $(libnet_la_SOURCES) \ - $(libniash_la_SOURCES) $(libp5_la_SOURCES) \ - $(libpie_la_SOURCES) $(libpint_la_SOURCES) \ + $(libepsonds_la_SOURCES) $(libfujitsu_la_SOURCES) \ + $(libgenesys_la_SOURCES) $(libgphoto2_i_la_SOURCES) \ + $(libgt68xx_la_SOURCES) $(libhp_la_SOURCES) \ + $(libhp3500_la_SOURCES) $(libhp3900_la_SOURCES) \ + $(libhp4200_la_SOURCES) $(libhp5400_la_SOURCES) \ + $(libhp5590_la_SOURCES) $(libhpljm1005_la_SOURCES) \ + $(libhpsj5s_la_SOURCES) $(libhs2p_la_SOURCES) \ + $(libibm_la_SOURCES) $(libkodak_la_SOURCES) \ + $(libkodakaio_la_SOURCES) $(libkvs1025_la_SOURCES) \ + $(libkvs20xx_la_SOURCES) $(libkvs40xx_la_SOURCES) \ + $(libleo_la_SOURCES) $(liblexmark_la_SOURCES) \ + $(libma1509_la_SOURCES) $(libmagicolor_la_SOURCES) \ + $(libmatsushita_la_SOURCES) $(libmicrotek_la_SOURCES) \ + $(libmicrotek2_la_SOURCES) $(libmustek_la_SOURCES) \ + $(libmustek_pp_la_SOURCES) $(libmustek_usb_la_SOURCES) \ + $(libmustek_usb2_la_SOURCES) $(libnec_la_SOURCES) \ + $(libnet_la_SOURCES) $(libniash_la_SOURCES) \ + $(libp5_la_SOURCES) $(libpie_la_SOURCES) $(libpint_la_SOURCES) \ $(libpixma_la_SOURCES) $(libplustek_la_SOURCES) \ $(libplustek_pp_la_SOURCES) $(libpnm_la_SOURCES) \ $(libqcam_la_SOURCES) $(libricoh_la_SOURCES) \ @@ -1552,6 +1570,7 @@ SOURCES = $(libabaton_la_SOURCES) $(libagfafocus_la_SOURCES) \ $(nodist_libsane_epjitsu_la_SOURCES) \ $(nodist_libsane_epson_la_SOURCES) \ $(nodist_libsane_epson2_la_SOURCES) \ + $(nodist_libsane_epsonds_la_SOURCES) \ $(nodist_libsane_fujitsu_la_SOURCES) \ $(nodist_libsane_genesys_la_SOURCES) \ $(nodist_libsane_gphoto2_la_SOURCES) \ @@ -1638,24 +1657,24 @@ DIST_SOURCES = $(libabaton_la_SOURCES) $(libagfafocus_la_SOURCES) \ $(libdll_la_SOURCES) $(libdll_preload_la_SOURCES) \ $(libdmc_la_SOURCES) $(libepjitsu_la_SOURCES) \ $(libepson_la_SOURCES) $(libepson2_la_SOURCES) \ - $(libfujitsu_la_SOURCES) $(libgenesys_la_SOURCES) \ - $(libgphoto2_i_la_SOURCES) $(libgt68xx_la_SOURCES) \ - $(libhp_la_SOURCES) $(libhp3500_la_SOURCES) \ - $(libhp3900_la_SOURCES) $(libhp4200_la_SOURCES) \ - $(libhp5400_la_SOURCES) $(libhp5590_la_SOURCES) \ - $(libhpljm1005_la_SOURCES) $(libhpsj5s_la_SOURCES) \ - $(libhs2p_la_SOURCES) $(libibm_la_SOURCES) \ - $(libkodak_la_SOURCES) $(libkodakaio_la_SOURCES) \ - $(libkvs1025_la_SOURCES) $(libkvs20xx_la_SOURCES) \ - $(libkvs40xx_la_SOURCES) $(libleo_la_SOURCES) \ - $(liblexmark_la_SOURCES) $(libma1509_la_SOURCES) \ - $(libmagicolor_la_SOURCES) $(libmatsushita_la_SOURCES) \ - $(libmicrotek_la_SOURCES) $(libmicrotek2_la_SOURCES) \ - $(libmustek_la_SOURCES) $(libmustek_pp_la_SOURCES) \ - $(libmustek_usb_la_SOURCES) $(libmustek_usb2_la_SOURCES) \ - $(libnec_la_SOURCES) $(libnet_la_SOURCES) \ - $(libniash_la_SOURCES) $(libp5_la_SOURCES) \ - $(libpie_la_SOURCES) $(libpint_la_SOURCES) \ + $(libepsonds_la_SOURCES) $(libfujitsu_la_SOURCES) \ + $(libgenesys_la_SOURCES) $(libgphoto2_i_la_SOURCES) \ + $(libgt68xx_la_SOURCES) $(libhp_la_SOURCES) \ + $(libhp3500_la_SOURCES) $(libhp3900_la_SOURCES) \ + $(libhp4200_la_SOURCES) $(libhp5400_la_SOURCES) \ + $(libhp5590_la_SOURCES) $(libhpljm1005_la_SOURCES) \ + $(libhpsj5s_la_SOURCES) $(libhs2p_la_SOURCES) \ + $(libibm_la_SOURCES) $(libkodak_la_SOURCES) \ + $(libkodakaio_la_SOURCES) $(libkvs1025_la_SOURCES) \ + $(libkvs20xx_la_SOURCES) $(libkvs40xx_la_SOURCES) \ + $(libleo_la_SOURCES) $(liblexmark_la_SOURCES) \ + $(libma1509_la_SOURCES) $(libmagicolor_la_SOURCES) \ + $(libmatsushita_la_SOURCES) $(libmicrotek_la_SOURCES) \ + $(libmicrotek2_la_SOURCES) $(libmustek_la_SOURCES) \ + $(libmustek_pp_la_SOURCES) $(libmustek_usb_la_SOURCES) \ + $(libmustek_usb2_la_SOURCES) $(libnec_la_SOURCES) \ + $(libnet_la_SOURCES) $(libniash_la_SOURCES) \ + $(libp5_la_SOURCES) $(libpie_la_SOURCES) $(libpint_la_SOURCES) \ $(libpixma_la_SOURCES) $(libplustek_la_SOURCES) \ $(libplustek_pp_la_SOURCES) $(libpnm_la_SOURCES) \ $(libqcam_la_SOURCES) $(libricoh_la_SOURCES) \ @@ -1916,31 +1935,32 @@ EXTRA_DIST = sane_strstatus.c stubs.c saned.conf.in abaton.conf.in \ cardscan.conf.in coolscan.conf.in coolscan2.conf.in \ coolscan3.conf.in dc25.conf.in dc210.conf.in dc240.conf.in \ dell1600n_net.conf.in dmc.conf.in epjitsu.conf.in \ - epson.conf.in epson2.conf.in fujitsu.conf.in genesys.conf.in \ - genesys_conv.c genesys_conv_hlp.c genesys_devices.c \ - gphoto2.conf.in gt68xx.conf.in gt68xx_devices.c \ - gt68xx_generic.c gt68xx_generic.h gt68xx_gt6801.c \ - gt68xx_gt6801.h gt68xx_gt6816.c gt68xx_gt6816.h gt68xx_high.c \ - gt68xx_high.h gt68xx_low.c gt68xx_low.h gt68xx_mid.c \ - gt68xx_mid.h gt68xx_shm_channel.c gt68xx_shm_channel.h \ - hp.conf.in hp.README hp.TODO hp3900.conf.in hp3900_config.c \ - hp3900_debug.c hp3900_rts8822.c hp3900_sane.c hp3900_types.c \ - hp3900_usb.c hp4200.conf.in hp4200_lm9830.c hp4200_lm9830.h \ - hp5400.conf.in hp5400_debug.c hp5400_debug.h hp5400_internal.c \ - hp5400_internal.h hp5400_sane.c hp5400_sanei.c hp5400_sanei.h \ - hp5400_xfer.h hp5590_cmds.c hp5590_cmds.h hp5590_low.c \ - hp5590_low.h hpsj5s.conf.in hs2p.conf.in hs2p-scsi.c \ - hs2p-scsi.h ibm.conf.in ibm-scsi.c kodak.conf.in \ - kodakaio.conf.in leo.conf.in lexmark.conf.in lexmark_models.c \ - lexmark_sensors.c ma1509.conf.in magicolor.conf.in \ - matsushita.conf.in microtek.conf.in microtek2.conf.in \ - mustek.conf.in mustek_scsi_pp.c mustek_scsi_pp.h \ - mustek_pp.conf.in mustek_pp_ccd300.c mustek_pp_ccd300.h \ - mustek_pp_cis.c mustek_pp_cis.h mustek_pp_null.c \ - mustek_usb.conf.in mustek_usb_high.c mustek_usb_high.h \ - mustek_usb_low.c mustek_usb_low.h mustek_usb_mid.c \ - mustek_usb_mid.h mustek_usb2_asic.c mustek_usb2_asic.h \ - mustek_usb2_high.c mustek_usb2_high.h mustek_usb2_reflective.c \ + epson.conf.in epson2.conf.in epsonds.conf.in fujitsu.conf.in \ + genesys.conf.in genesys_conv.c genesys_conv_hlp.c \ + genesys_devices.c gphoto2.conf.in gt68xx.conf.in \ + gt68xx_devices.c gt68xx_generic.c gt68xx_generic.h \ + gt68xx_gt6801.c gt68xx_gt6801.h gt68xx_gt6816.c \ + gt68xx_gt6816.h gt68xx_high.c gt68xx_high.h gt68xx_low.c \ + gt68xx_low.h gt68xx_mid.c gt68xx_mid.h gt68xx_shm_channel.c \ + gt68xx_shm_channel.h hp.conf.in hp.README hp.TODO \ + hp3900.conf.in hp3900_config.c hp3900_debug.c hp3900_rts8822.c \ + hp3900_sane.c hp3900_types.c hp3900_usb.c hp4200.conf.in \ + hp4200_lm9830.c hp4200_lm9830.h hp5400.conf.in hp5400_debug.c \ + hp5400_debug.h hp5400_internal.c hp5400_internal.h \ + hp5400_sane.c hp5400_sanei.c hp5400_sanei.h hp5400_xfer.h \ + hp5590_cmds.c hp5590_cmds.h hp5590_low.c hp5590_low.h \ + hpsj5s.conf.in hs2p.conf.in hs2p-scsi.c hs2p-scsi.h \ + ibm.conf.in ibm-scsi.c kodak.conf.in kodakaio.conf.in \ + leo.conf.in lexmark.conf.in lexmark_models.c lexmark_sensors.c \ + ma1509.conf.in magicolor.conf.in matsushita.conf.in \ + microtek.conf.in microtek2.conf.in mustek.conf.in \ + mustek_scsi_pp.c mustek_scsi_pp.h mustek_pp.conf.in \ + mustek_pp_ccd300.c mustek_pp_ccd300.h mustek_pp_cis.c \ + mustek_pp_cis.h mustek_pp_null.c mustek_usb.conf.in \ + mustek_usb_high.c mustek_usb_high.h mustek_usb_low.c \ + mustek_usb_low.h mustek_usb_mid.c mustek_usb_mid.h \ + mustek_usb2_asic.c mustek_usb2_asic.h mustek_usb2_high.c \ + mustek_usb2_high.h mustek_usb2_reflective.c \ mustek_usb2_transparent.c nec.conf.in net.conf.in niash_core.c \ niash_core.h niash_xfer.c niash_xfer.h pie.conf.in p5.conf.in \ p5_device.c pixma.conf.in pixma_sane_options.c \ @@ -1984,7 +2004,7 @@ BACKEND_CONFS = abaton.conf agfafocus.conf apple.conf artec.conf \ canon_pp.conf cardscan.conf coolscan2.conf coolscan3.conf \ coolscan.conf dc210.conf dc240.conf dc25.conf \ dell1600n_net.conf dmc.conf epjitsu.conf epson2.conf \ - epson.conf fujitsu.conf genesys.conf gphoto2.conf \ + epson.conf epsonds.conf fujitsu.conf genesys.conf gphoto2.conf \ gt68xx.conf hp3900.conf hp4200.conf hp5400.conf \ hp.conf hpsj5s.conf hs2p.conf ibm.conf kodak.conf kodakaio.conf\ leo.conf lexmark.conf ma1509.conf magicolor.conf \ @@ -2020,7 +2040,7 @@ be_convenience_libs = libabaton.la libagfafocus.la \ libcoolscan2.la libcoolscan3.la libdc25.la \ libdc210.la libdc240.la libdell1600n_net.la \ libdmc.la libdll.la libdll_preload.la libepjitsu.la libepson.la \ - libepson2.la libfujitsu.la libgenesys.la \ + libepson2.la libepsonds.la libfujitsu.la libgenesys.la \ libgphoto2_i.la libgt68xx.la libhp.la \ libhp3500.la libhp3900.la libhp4200.la \ libhp5400.la libhp5590.la libhpljm1005.la \ @@ -2054,7 +2074,7 @@ be_dlopen_libs = libsane-abaton.la libsane-agfafocus.la \ libsane-coolscan2.la libsane-coolscan3.la libsane-dc25.la \ libsane-dc210.la libsane-dc240.la libsane-dell1600n_net.la \ libsane-dmc.la libsane-epjitsu.la libsane-epson.la \ - libsane-epson2.la libsane-fujitsu.la libsane-genesys.la \ + libsane-epson2.la libsane-epsonds.la libsane-fujitsu.la libsane-genesys.la \ libsane-gphoto2.la libsane-gt68xx.la libsane-hp.la \ libsane-hp3500.la libsane-hp3900.la libsane-hp4200.la \ libsane-hp5400.la libsane-hp5590.la libsane-hpljm1005.la \ @@ -2244,6 +2264,18 @@ nodist_libsane_epson2_la_SOURCES = epson2-s.c libsane_epson2_la_CPPFLAGS = $(AM_CPPFLAGS) -DBACKEND_NAME=epson2 libsane_epson2_la_LDFLAGS = $(DIST_SANELIBS_LDFLAGS) libsane_epson2_la_LIBADD = $(COMMON_LIBS) libepson2.la ../sanei/sanei_init_debug.lo ../sanei/sanei_constrain_value.lo ../sanei/sanei_config.lo ../sanei/sanei_config2.lo sane_strstatus.lo ../sanei/sanei_usb.lo ../sanei/sanei_scsi.lo ../sanei/sanei_pio.lo ../sanei/sanei_tcp.lo ../sanei/sanei_udp.lo $(SCSI_LIBS) $(USB_LIBS) $(SOCKET_LIBS) $(MATH_LIB) $(RESMGR_LIBS) +libepsonds_la_SOURCES = epsonds.c epsonds.h epsonds-usb.c epsonds-usb.h epsonds-io.c epsonds-io.h \ + epsonds-cmd.c epsonds-cmd.h epsonds-ops.c epsonds-ops.h epsonds-jpeg.c epsonds-jpeg.h + +libepsonds_la_CPPFLAGS = $(AM_CPPFLAGS) -DBACKEND_NAME=epsonds +nodist_libsane_epsonds_la_SOURCES = epsonds-s.c +libsane_epsonds_la_CPPFLAGS = $(AM_CPPFLAGS) -DBACKEND_NAME=epsonds +libsane_epsonds_la_LDFLAGS = $(DIST_SANELIBS_LDFLAGS) +libsane_epsonds_la_LIBADD = $(COMMON_LIBS) libepsonds.la ../sanei/sanei_init_debug.lo ../sanei/sanei_constrain_value.lo \ + ../sanei/sanei_config.lo ../sanei/sanei_config2.lo sane_strstatus.lo \ + ../sanei/sanei_usb.lo ../sanei/sanei_scsi.lo \ + @SANEI_SANEI_JPEG_LO@ $(JPEG_LIBS) $(USB_LIBS) $(MATH_LIB) $(RESMGR_LIBS) + libfujitsu_la_SOURCES = fujitsu.c fujitsu.h fujitsu-scsi.h libfujitsu_la_CPPFLAGS = $(AM_CPPFLAGS) -DBACKEND_NAME=fujitsu nodist_libsane_fujitsu_la_SOURCES = fujitsu-s.c @@ -2848,6 +2880,9 @@ libepson.la: $(libepson_la_OBJECTS) $(libepson_la_DEPENDENCIES) $(EXTRA_libepson libepson2.la: $(libepson2_la_OBJECTS) $(libepson2_la_DEPENDENCIES) $(EXTRA_libepson2_la_DEPENDENCIES) $(AM_V_CCLD)$(LINK) $(libepson2_la_OBJECTS) $(libepson2_la_LIBADD) $(LIBS) +libepsonds.la: $(libepsonds_la_OBJECTS) $(libepsonds_la_DEPENDENCIES) $(EXTRA_libepsonds_la_DEPENDENCIES) + $(AM_V_CCLD)$(LINK) $(libepsonds_la_OBJECTS) $(libepsonds_la_LIBADD) $(LIBS) + libfujitsu.la: $(libfujitsu_la_OBJECTS) $(libfujitsu_la_DEPENDENCIES) $(EXTRA_libfujitsu_la_DEPENDENCIES) $(AM_V_CCLD)$(LINK) $(libfujitsu_la_OBJECTS) $(libfujitsu_la_LIBADD) $(LIBS) @@ -3055,6 +3090,9 @@ libsane-epson.la: $(libsane_epson_la_OBJECTS) $(libsane_epson_la_DEPENDENCIES) $ libsane-epson2.la: $(libsane_epson2_la_OBJECTS) $(libsane_epson2_la_DEPENDENCIES) $(EXTRA_libsane_epson2_la_DEPENDENCIES) $(AM_V_CCLD)$(libsane_epson2_la_LINK) $(libsane_epson2_la_OBJECTS) $(libsane_epson2_la_LIBADD) $(LIBS) +libsane-epsonds.la: $(libsane_epsonds_la_OBJECTS) $(libsane_epsonds_la_DEPENDENCIES) $(EXTRA_libsane_epsonds_la_DEPENDENCIES) + $(AM_V_CCLD)$(libsane_epsonds_la_LINK) $(libsane_epsonds_la_OBJECTS) $(libsane_epsonds_la_LIBADD) $(LIBS) + libsane-fujitsu.la: $(libsane_fujitsu_la_OBJECTS) $(libsane_fujitsu_la_DEPENDENCIES) $(EXTRA_libsane_fujitsu_la_DEPENDENCIES) $(AM_V_CCLD)$(libsane_fujitsu_la_LINK) $(libsane_fujitsu_la_OBJECTS) $(libsane_fujitsu_la_LIBADD) $(LIBS) @@ -3347,6 +3385,12 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libepson_la-epson.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libepson_la-epson_scsi.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libepson_la-epson_usb.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libepsonds_la-epsonds-cmd.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libepsonds_la-epsonds-io.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libepsonds_la-epsonds-jpeg.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libepsonds_la-epsonds-ops.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libepsonds_la-epsonds-usb.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libepsonds_la-epsonds.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libfujitsu_la-fujitsu.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgenesys_la-genesys.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgenesys_la-genesys_gl124.Plo@am__quote@ @@ -3446,6 +3490,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsane_epjitsu_la-epjitsu-s.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsane_epson2_la-epson2-s.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsane_epson_la-epson-s.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsane_epsonds_la-epsonds-s.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsane_fujitsu_la-fujitsu-s.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsane_genesys_la-genesys-s.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsane_gphoto2_la-gphoto2-s.Plo@am__quote@ @@ -3539,14 +3584,14 @@ distclean-compile: @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @@ -3814,6 +3859,48 @@ libepson2_la-epson2-cct.lo: epson2-cct.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libepson2_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libepson2_la-epson2-cct.lo `test -f 'epson2-cct.c' || echo '$(srcdir)/'`epson2-cct.c +libepsonds_la-epsonds.lo: epsonds.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libepsonds_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libepsonds_la-epsonds.lo -MD -MP -MF $(DEPDIR)/libepsonds_la-epsonds.Tpo -c -o libepsonds_la-epsonds.lo `test -f 'epsonds.c' || echo '$(srcdir)/'`epsonds.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libepsonds_la-epsonds.Tpo $(DEPDIR)/libepsonds_la-epsonds.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsonds.c' object='libepsonds_la-epsonds.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libepsonds_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libepsonds_la-epsonds.lo `test -f 'epsonds.c' || echo '$(srcdir)/'`epsonds.c + +libepsonds_la-epsonds-usb.lo: epsonds-usb.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libepsonds_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libepsonds_la-epsonds-usb.lo -MD -MP -MF $(DEPDIR)/libepsonds_la-epsonds-usb.Tpo -c -o libepsonds_la-epsonds-usb.lo `test -f 'epsonds-usb.c' || echo '$(srcdir)/'`epsonds-usb.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libepsonds_la-epsonds-usb.Tpo $(DEPDIR)/libepsonds_la-epsonds-usb.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsonds-usb.c' object='libepsonds_la-epsonds-usb.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libepsonds_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libepsonds_la-epsonds-usb.lo `test -f 'epsonds-usb.c' || echo '$(srcdir)/'`epsonds-usb.c + +libepsonds_la-epsonds-io.lo: epsonds-io.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libepsonds_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libepsonds_la-epsonds-io.lo -MD -MP -MF $(DEPDIR)/libepsonds_la-epsonds-io.Tpo -c -o libepsonds_la-epsonds-io.lo `test -f 'epsonds-io.c' || echo '$(srcdir)/'`epsonds-io.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libepsonds_la-epsonds-io.Tpo $(DEPDIR)/libepsonds_la-epsonds-io.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsonds-io.c' object='libepsonds_la-epsonds-io.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libepsonds_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libepsonds_la-epsonds-io.lo `test -f 'epsonds-io.c' || echo '$(srcdir)/'`epsonds-io.c + +libepsonds_la-epsonds-cmd.lo: epsonds-cmd.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libepsonds_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libepsonds_la-epsonds-cmd.lo -MD -MP -MF $(DEPDIR)/libepsonds_la-epsonds-cmd.Tpo -c -o libepsonds_la-epsonds-cmd.lo `test -f 'epsonds-cmd.c' || echo '$(srcdir)/'`epsonds-cmd.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libepsonds_la-epsonds-cmd.Tpo $(DEPDIR)/libepsonds_la-epsonds-cmd.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsonds-cmd.c' object='libepsonds_la-epsonds-cmd.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libepsonds_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libepsonds_la-epsonds-cmd.lo `test -f 'epsonds-cmd.c' || echo '$(srcdir)/'`epsonds-cmd.c + +libepsonds_la-epsonds-ops.lo: epsonds-ops.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libepsonds_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libepsonds_la-epsonds-ops.lo -MD -MP -MF $(DEPDIR)/libepsonds_la-epsonds-ops.Tpo -c -o libepsonds_la-epsonds-ops.lo `test -f 'epsonds-ops.c' || echo '$(srcdir)/'`epsonds-ops.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libepsonds_la-epsonds-ops.Tpo $(DEPDIR)/libepsonds_la-epsonds-ops.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsonds-ops.c' object='libepsonds_la-epsonds-ops.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libepsonds_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libepsonds_la-epsonds-ops.lo `test -f 'epsonds-ops.c' || echo '$(srcdir)/'`epsonds-ops.c + +libepsonds_la-epsonds-jpeg.lo: epsonds-jpeg.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libepsonds_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libepsonds_la-epsonds-jpeg.lo -MD -MP -MF $(DEPDIR)/libepsonds_la-epsonds-jpeg.Tpo -c -o libepsonds_la-epsonds-jpeg.lo `test -f 'epsonds-jpeg.c' || echo '$(srcdir)/'`epsonds-jpeg.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libepsonds_la-epsonds-jpeg.Tpo $(DEPDIR)/libepsonds_la-epsonds-jpeg.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsonds-jpeg.c' object='libepsonds_la-epsonds-jpeg.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libepsonds_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libepsonds_la-epsonds-jpeg.lo `test -f 'epsonds-jpeg.c' || echo '$(srcdir)/'`epsonds-jpeg.c + libfujitsu_la-fujitsu.lo: fujitsu.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libfujitsu_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libfujitsu_la-fujitsu.lo -MD -MP -MF $(DEPDIR)/libfujitsu_la-fujitsu.Tpo -c -o libfujitsu_la-fujitsu.lo `test -f 'fujitsu.c' || echo '$(srcdir)/'`fujitsu.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libfujitsu_la-fujitsu.Tpo $(DEPDIR)/libfujitsu_la-fujitsu.Plo @@ -4507,6 +4594,13 @@ libsane_epson2_la-epson2-s.lo: epson2-s.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsane_epson2_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libsane_epson2_la-epson2-s.lo `test -f 'epson2-s.c' || echo '$(srcdir)/'`epson2-s.c +libsane_epsonds_la-epsonds-s.lo: epsonds-s.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsane_epsonds_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libsane_epsonds_la-epsonds-s.lo -MD -MP -MF $(DEPDIR)/libsane_epsonds_la-epsonds-s.Tpo -c -o libsane_epsonds_la-epsonds-s.lo `test -f 'epsonds-s.c' || echo '$(srcdir)/'`epsonds-s.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsane_epsonds_la-epsonds-s.Tpo $(DEPDIR)/libsane_epsonds_la-epsonds-s.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='epsonds-s.c' object='libsane_epsonds_la-epsonds-s.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsane_epsonds_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libsane_epsonds_la-epsonds-s.lo `test -f 'epsonds-s.c' || echo '$(srcdir)/'`epsonds-s.c + libsane_fujitsu_la-fujitsu-s.lo: fujitsu-s.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsane_fujitsu_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libsane_fujitsu_la-fujitsu-s.lo -MD -MP -MF $(DEPDIR)/libsane_fujitsu_la-fujitsu-s.Tpo -c -o libsane_fujitsu_la-fujitsu-s.lo `test -f 'fujitsu-s.c' || echo '$(srcdir)/'`fujitsu-s.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsane_fujitsu_la-fujitsu-s.Tpo $(DEPDIR)/libsane_fujitsu_la-fujitsu-s.Plo diff --git a/backend/avision.c b/backend/avision.c index 74ffe80..146125c 100644 --- a/backend/avision.c +++ b/backend/avision.c @@ -39,25 +39,22 @@ ***************************************************************************** - This backend is based upon the Tamarack backend and adapted to the Avision - scanners by René Rebe and Meino Cramer. - This file implements a SANE backend for the Avision SCSI Scanners (like the AV 630 / 620 (CS) ...) and some Avision (OEM) USB scanners (like the HP 53xx, 74xx, Minolta FS-V1 ...) or Fujitsu ScanPartner with the AVISION SCSI-2/3 - or USB command set. + or USB command set and written by René Rebe and Meino Cramer. + + Copyright 2002 - 2015 by + "Ren Rebe" + Copyright 1999, 2000, 2001 by "René Rebe" "Meino Christian Cramer" Copyright 2002 by - "René Rebe" "Jose Paulo Moitinho de Almeida" - Copyright 2003, 2004, 2005, 2006, 2007 by - "René Rebe" - Copyright 2010, 2011 by "Mike Kelly" @@ -167,444 +164,451 @@ static Avision_HWEntry Avision_Device_List [] = { "AVISION", "AV100CS", 0, 0, "Avision", "AV100CS", - 0,0}, + 0}, /* status="untested" */ { "AVISION", "AV100IIICS", 0, 0, "Avision", "AV100IIICS", - 0,0}, + 0}, /* status="untested" */ { "AVISION", "AV100S", 0, 0, "Avision", "AV100S", - 0,0}, + 0}, /* status="untested" */ { NULL, NULL, 0x0638, 0x0A27, "Avision", "AV120", - AV_INT_STATUS,0}, + AV_INT_STATUS}, /* comment="sheetfed scanner" */ /* status="complete" */ { NULL, NULL, 0x0638, 0x0A3C, "Avision", "AV121", - AV_INT_BUTTON | AV_DOES_KEEP_WINDOW | AV_DOES_KEEP_GAMMA,0}, + AV_INT_BUTTON | AV_DOES_KEEP_WINDOW | AV_DOES_KEEP_GAMMA}, /* comment="sheetfed scanner" */ /* status="good" */ { NULL, NULL, 0x0638, 0x0A33, "Avision", "AV122", - AV_INT_BUTTON | AV_2ND_LINE_INTERLACED | AV_NO_REAR | AV_SOFT_SCALE | AV_DOES_KEEP_WINDOW | AV_DOES_KEEP_GAMMA | AV_REAR_OFFSET,0}, + AV_INT_BUTTON | AV_2ND_LINE_INTERLACED | AV_NO_REAR | AV_SOFT_SCALE | AV_DOES_KEEP_WINDOW | AV_DOES_KEEP_GAMMA | AV_REAR_OFFSET}, /* comment="sheetfed duplex scanner" */ /* status="good" */ { NULL, NULL, 0x0638, 0x0A93, "Avision", "AV122 C2", - AV_INT_BUTTON | AV_2ND_LINE_INTERLACED | AV_NO_REAR | AV_SOFT_SCALE | AV_DOES_NOT_KEEP_WINDOW | AV_DOES_KEEP_GAMMA | AV_REAR_OFFSET,0}, + AV_INT_BUTTON | AV_2ND_LINE_INTERLACED | AV_NO_REAR | AV_SOFT_SCALE | AV_DOES_NOT_KEEP_WINDOW | AV_DOES_KEEP_GAMMA | AV_REAR_OFFSET}, /* comment="sheetfed duplex scanner" */ /* status="good" */ { NULL, NULL, 0x0638, 0x0A24, "Avision", "AV210", - AV_INT_BUTTON | AV_ACCEL_TABLE,0}, + AV_INT_BUTTON | AV_ACCEL_TABLE}, /* comment="sheetfed scanner" */ /* status="complete" */ { NULL, NULL, 0x0638, 0x0A25, "Avision", "AV210", - AV_INT_BUTTON | AV_ACCEL_TABLE | AV_NO_64BYTE_ALIGN,0}, + AV_INT_BUTTON | AV_ACCEL_TABLE | AV_NO_64BYTE_ALIGN}, /* comment="sheetfed scanner" */ /* status="complete" */ { NULL, NULL, 0x0638, 0x0A3A, "Avision", "AV210C2", - AV_INT_BUTTON | AV_GRAY_MODES,0}, + AV_INT_BUTTON | AV_GRAY_MODES}, /* comment="sheetfed scanner" */ /* status="complete" */ { NULL, NULL, 0x0638, 0x0A2F, "Avision", "AV210C2-G", - AV_INT_BUTTON | AV_GRAY_MODES,0}, + AV_INT_BUTTON | AV_GRAY_MODES}, /* comment="sheetfed scanner" */ /* status="complete" */ { NULL, NULL, 0x0638, 0x1A35, "Avision", "AV210D2+", - AV_INT_BUTTON, AV_USE_GRAY_FILTER}, + AV_INT_BUTTON | AV_USE_GRAY_FILTER}, /* comment="sheetfed scanner" */ /* status="complete" */ { NULL, NULL, 0x0638, 0x0A23, "Avision", "AV220", - AV_INT_BUTTON | AV_GRAY_MODES,0}, + AV_INT_BUTTON | AV_GRAY_MODES}, /* comment="duplex! sheetfed scanner" */ /* status="complete" */ { NULL, NULL, 0x0638, 0x0A2A, "Avision", "AV220C2", - AV_INT_BUTTON | AV_CANCEL_BUTTON,0}, + AV_INT_BUTTON | AV_CANCEL_BUTTON}, /* comment="duplex! sheetfed scanner" */ /* status="complete" */ { NULL, NULL, 0x0638, 0x0A2B, "Avision", "AV220D2", - AV_INT_BUTTON | AV_CANCEL_BUTTON,0}, + AV_INT_BUTTON | AV_CANCEL_BUTTON}, + /* comment="duplex! sheetfed scanner" */ + /* status="complete" */ + + { NULL, NULL, + 0x0638, 0x1A31, + "Avision", "AV220D2+", + AV_INT_BUTTON | AV_CANCEL_BUTTON | AV_USE_GRAY_FILTER}, /* comment="duplex! sheetfed scanner" */ /* status="complete" */ { NULL, NULL, 0x0638, 0x0A2C, "Avision", "AV220+", - AV_INT_BUTTON | AV_CANCEL_BUTTON,0}, + AV_INT_BUTTON | AV_CANCEL_BUTTON}, /* comment="duplex! sheetfed scanner" */ /* status="complete" */ { NULL, NULL, 0x0638, 0x0A2D, "Avision", "AV220C2-G", - AV_INT_BUTTON | AV_CANCEL_BUTTON,0}, + AV_INT_BUTTON | AV_CANCEL_BUTTON}, /* comment="duplex! sheetfed scanner" */ /* status="complete" */ { NULL, NULL, 0x0638, 0x0A2E, "Avision", "AV220C2-B", - AV_INT_BUTTON | AV_CANCEL_BUTTON,0}, + AV_INT_BUTTON | AV_CANCEL_BUTTON}, /* comment="duplex! sheetfed scanner" */ /* status="complete" */ { NULL, NULL, 0x0638, 0x0A94, "Avision", "AV220-G", - AV_INT_BUTTON | AV_2ND_LINE_INTERLACED, AV_FIRMWARE}, + AV_INT_BUTTON | AV_2ND_LINE_INTERLACED | AV_FIRMWARE}, /* comment="duplex! sheetfed scanner" */ /* status="complete" */ { "AVISION", "AV240SC", 0, 0, "Avision", "AV240SC", - 0,0}, + 0}, /* status="untested" */ { "AVISION", "AV260CS", 0, 0, "Avision", "AV260CS", - 0,0}, + 0}, /* status="untested" */ { "AVISION", "AV360CS", 0, 0, "Avision", "AV360CS", - 0,0}, + 0}, /* status="untested" */ { "AVISION", "AV363CS", 0, 0, "Avision", "AV363CS", - 0,0}, + 0}, /* status="untested" */ { "AVISION", "AV420CS", 0, 0, "Avision", "AV420CS", - 0,0}, + 0}, /* status="untested" */ { "AVISION", "AV6120", 0, 0, "Avision", "AV6120", - 0,0}, + 0}, /* status="untested" */ { NULL, "AV610", 0x0638, 0x0a18, "Avision", "AV610", - AV_GRAY_CALIB_BLUE | AV_ACCEL_TABLE | AV_NO_64BYTE_ALIGN | AV_INT_BUTTON, 0}, + AV_GRAY_CALIB_BLUE | AV_ACCEL_TABLE | AV_NO_64BYTE_ALIGN | AV_INT_BUTTON}, /* status="good" */ { NULL, NULL, 0x0638, 0x0a18, "Avision", "AV600U Plus", /* If this unit requires the AV_INT_STATUS flag, then we'll need to alter the code to deal with two different devices with the same USB id (AV610 above) */ - AV_GRAY_CALIB_BLUE | AV_ACCEL_TABLE | AV_NO_64BYTE_ALIGN | /* AV_INT_STATUS | */ AV_INT_BUTTON,0}, + AV_GRAY_CALIB_BLUE | AV_ACCEL_TABLE | AV_NO_64BYTE_ALIGN | /* AV_INT_STATUS | */ AV_INT_BUTTON}, /* status="good" */ { NULL, NULL, 0x0638, 0x0a5e, "Avision", "AV610C2", - AV_NO_BACKGROUND | AV_INT_BUTTON,0}, /* cancel button -> sense abort! */ + AV_NO_BACKGROUND | AV_INT_BUTTON}, /* cancel button -> sense abort! */ /* status="good" */ { NULL, NULL, 0x0638, 0x0a41, "Avision", "AM3000 Series", - 0,0}, + 0}, /* comment="MFD" */ /* status="basic" */ { NULL, NULL, 0x0638, 0x0a16, "Avision", "DS610CU Scancopier", - AV_INT_STATUS,0}, + AV_INT_STATUS}, /* comment="1 pass, 600 dpi, A4" */ /* status="good" */ { "AVISION", "AV620CS", 0, 0, "Avision", "AV620CS", - 0,0}, + 0}, /* comment="1 pass, 600 dpi" */ /* status="complete" */ { "AVISION", "AV620CS Plus", 0, 0, "Avision", "AV620CS Plus", - 0,0}, + 0}, /* comment="1 pass, 1200 dpi" */ /* status="complete" */ { "AVISION", "AV630CS", 0, 0, "Avision", "AV630CS", - 0,0}, + 0}, /* comment="1 pass, 1200 dpi" */ /* status="complete" */ { "AVISION", "AV630CSL", 0, 0, "Avision", "AV630CSL", - 0,0}, + 0}, /* comment="1 pass, 1200 dpi" */ /* status="untested" */ { "AVISION", "AV6240", 0, 0, "Avision", "AV6240", - 0,0}, + 0}, /* comment="1 pass, ??? dpi" */ /* status="complete" */ { NULL, NULL, 0x0638, 0x0A13, "Avision", "AV600U", - AV_MULTI_CALIB_CMD | AV_ADF_BGR_ORDER_INVERT | AV_SOFT_SCALE | AV_INT_STATUS | AV_NO_BUTTON,0}, + AV_MULTI_CALIB_CMD | AV_ADF_BGR_ORDER_INVERT | AV_SOFT_SCALE | AV_INT_STATUS | AV_NO_BUTTON}, /* comment="1 pass, 600 dpi" */ /* status="good" */ { "AVISION", "AV660S", 0, 0, "Avision", "AV660S", - 0,0}, + 0}, /* comment="1 pass, ??? dpi" */ /* status="untested" */ { "AVISION", "AV680S", 0, 0, "Avision", "AV680S", - 0,0}, + 0}, /* comment="1 pass, ??? dpi" */ /* status="untested" */ { "AVISION", "AV690U", 0, 0, "Avision", "AV690U", - 0,0}, + 0}, /* comment="1 pass, 2400 dpi" */ /* status="untested" */ { "AVISION", "AV800S", 0, 0, "Avision", "AV800S", - 0,0}, + 0}, /* comment="1 pass, ??? dpi" */ /* status="untested" */ { "AVISION", "AV810C", 0, 0, "Avision", "AV810C", - 0,0}, + 0}, /* comment="1 pass, ??? dpi" */ /* status="untested" */ { "AVISION", "AV820", 0, 0, "Avision", "AV820", - 0,0}, + 0}, /* comment="1 pass, ??? dpi" */ /* status="untested" */ { "AVISION", "AV820C", 0, 0, "Avision", "AV820C", - 0,0}, + 0}, /* comment="1 pass, ??? dpi" */ /* status="complete" */ { "AVISION", "AV820C Plus", 0, 0, "Avision", "AV820C Plus", - 0,0}, + 0}, /* comment="1 pass, ??? dpi" */ /* status="complete" */ { "AVISION", "AV830C", 0, 0, "Avision", "AV830C", - 0,0}, + 0}, /* comment="1 pass, ??? dpi" */ /* status="complete" */ { "AVISION", "AV830C Plus", 0, 0, "Avision", "AV830C Plus", - 0,0}, + 0}, /* comment="1 pass, ??? dpi" */ /* status="untested" */ { "AVISION", "AV880", 0, 0, "Avision", "AV880", - 0,0}, + 0}, /* comment="1 pass, ??? dpi" */ /* status="untested" */ { "AVISION", "AV880C", 0, 0, "Avision", "AV880C", - 0,0}, + 0}, /* comment="1 pass, ??? dpi" */ /* status="untested" */ { "AVISION", "AV3200C", 0, 0, "Avision", "AV3200C", - AV_NON_INTERLACED_DUPLEX_300 | AV_FASTER_WITH_FILTER,0}, + AV_NON_INTERLACED_DUPLEX_300 | AV_FASTER_WITH_FILTER}, /* comment="1 pass, ??? dpi" */ /* status="complete" */ { "AVISION", "AV3200SU", 0x0638, 0x0A4E, "Avision", "AV3200SU", - 0,0}, + 0}, /* comment="1 pass, ??? dpi" */ /* status="complete" */ { "AVISION", "AV3730SU", 0x0638, 0x0A4F, "Avision", "AV3730SU", - 0,0}, + 0}, /* comment="1 pass, ??? dpi" */ /* status="complete" */ { "AVISION", "AV3750SU", 0x0638, 0x0A65, "Avision", "AV3750SU", - 0,0}, + 0}, /* comment="1 pass, ??? dpi" */ /* status="complete" */ { "AVISION", "AV3800C", 0, 0, "Avision", "AV3800C", - 0,0}, + 0}, /* comment="1 pass, ??? dpi" */ /* status="complete" */ { "AVISION", "AV3850SU", 0x0638, 0x0a66, "Avision", "AV3850SU", - 0,0}, + 0}, /* comment="1 pass, ??? dpi" */ /* status="complete" */ { "AVISION", "FB6000E", 0, 0, "Avision", "FB6000E", - AV_NON_INTERLACED_DUPLEX_300,0}, + AV_NON_INTERLACED_DUPLEX_300}, /* comment="1 pass, 1200 dpi, A3 - duplex! - zero edge!" */ /* status="complete" */ { NULL, NULL, 0x0638, 0x0a82, "Avision", "FB6080E", - AV_NON_INTERLACED_DUPLEX_300,0}, + AV_NON_INTERLACED_DUPLEX_300}, /* comment="1 pass, 1200 dpi, A3 - duplex! - zero edge!" */ /* status="complete" */ { NULL, NULL, 0x0638, 0x0a84, "Avision", "FB2080E", - 0,0}, + 0}, /* comment="1 pass, 600 dpi, zero-edge" ASIC 7 */ /* status="basic" */ { "AVISION", "AV8000S", 0, 0, "Avision", "AV8000S", - AV_DOES_NOT_KEEP_WINDOW,0}, + AV_DOES_NOT_KEEP_WINDOW}, /* comment="1 pass, 1200 dpi, A3" */ /* status="complete" */ { NULL, NULL, 0x0638, 0x0a4d, "Avision", "AV8050U", - AV_NON_INTERLACED_DUPLEX_300 | AV_DOES_NOT_KEEP_GAMMA,0}, + AV_NON_INTERLACED_DUPLEX_300 | AV_DOES_NOT_KEEP_GAMMA}, /* comment="1 pass, 1200 dpi, A3 - duplex!" */ /* status="complete" */ { "AVISION", "AV8300", 0x0638, 0x0A40, "Avision", "AV8300", - AV_NON_INTERLACED_DUPLEX_300 | AV_DOES_NOT_KEEP_GAMMA,0}, + AV_NON_INTERLACED_DUPLEX_300 | AV_DOES_NOT_KEEP_GAMMA}, /* comment="1 pass, 1200 dpi, A3 - duplex!" */ /* status="complete" */ { "AVISION", "AV8350", 0x0638, 0x0A68, "Avision", "AV8350", - AV_NON_INTERLACED_DUPLEX_300 | AV_DOES_NOT_KEEP_GAMMA,0}, + AV_NON_INTERLACED_DUPLEX_300 | AV_DOES_NOT_KEEP_GAMMA}, /* comment="1 pass, 1200 dpi, A3 - duplex!" */ /* status="complete" */ { NULL, NULL, 0x0638, 0x0A61, "Avision", "IT8300", - AV_NON_INTERLACED_DUPLEX_300 | AV_ACCEL_TABLE,0}, + AV_NON_INTERLACED_DUPLEX_300 | AV_ACCEL_TABLE}, /* comment="1 pass, 1200 dpi, A3 - duplex!, LCD screen, paper sensors" */ /* status="good" */ { NULL, NULL, 0x0638, 0x0AA1, "Avision", "@V2500", - 0,0}, + 0}, /* comment="" */ /* status="untested" */ { NULL, NULL, 0x0638, 0x0A45, "Avision", "@V5100", - 0,0}, + 0}, /* comment="1 pass, 1200 dpi, A3 - duplex!, LCD screen, paper sensors" */ /* status="good" */ { "AVISION", "AVA3", 0, 0, "Avision", "AVA3", - AV_FORCE_A3,0}, + AV_FORCE_A3}, /* comment="1 pass, 600 dpi, A3" */ /* status="basic" */ @@ -613,21 +617,21 @@ static Avision_HWEntry Avision_Device_List [] = { "HP", "ScanJet 5300C", 0x03f0, 0x0701, "Hewlett-Packard", "ScanJet 5300C", - AV_INT_STATUS,0}, + AV_INT_STATUS}, /* comment="1 pass, 2400 dpi - some FW revisions have x-axis image scaling problems over 1200 dpi" */ /* status="complete" */ { "HP", "ScanJet 5370C", 0x03f0, 0x0701, "Hewlett-Packard", "ScanJet 5370C", - AV_MULTI_CALIB_CMD | AV_INT_STATUS, 0 }, + AV_MULTI_CALIB_CMD | AV_INT_STATUS}, /* comment="1 pass, 2400 dpi - some FW revisions have x-axis image scaling problems over 1200 dpi" */ /* status="good" */ { "hp", "scanjet 7400c", 0x03f0, 0x0801, "Hewlett-Packard", "ScanJet 7400c", - AV_LIGHT_CHECK_BOGUS | AV_NO_64BYTE_ALIGN | AV_INT_STATUS,0}, + AV_LIGHT_CHECK_BOGUS | AV_NO_64BYTE_ALIGN | AV_INT_STATUS}, /* comment="1 pass, 2400 dpi - dual USB/SCSI interface" */ /* status="good" */ @@ -635,14 +639,14 @@ static Avision_HWEntry Avision_Device_List [] = { "hp", "scanjet 7450c", 0x03f0, 0x0801, "Hewlett-Packard", "ScanJet 7450c", - AV_NO_64BYTE_ALIGN | AV_INT_STATUS,0}, + AV_NO_64BYTE_ALIGN | AV_INT_STATUS}, /* comment="1 pass, 2400 dpi - dual USB/SCSI interface" */ /* status="good" */ { "hp", "scanjet 7490c", 0x03f0, 0x0801, "Hewlett-Packard", "ScanJet 7490c", - AV_NO_64BYTE_ALIGN | AV_INT_STATUS,0}, + AV_NO_64BYTE_ALIGN | AV_INT_STATUS}, /* comment="1 pass, 1200 dpi - dual USB/SCSI interface" */ /* status="good" */ @@ -650,7 +654,7 @@ static Avision_HWEntry Avision_Device_List [] = { "HP", "C9930A", 0x03f0, 0x0b01, "Hewlett-Packard", "ScanJet 8200", - 0, AV_ADF_FLIPPING_DUPLEX | AV_FIRMWARE }, + AV_ADF_FLIPPING_DUPLEX | AV_FIRMWARE}, /* comment="1 pass, 4800 (?) dpi - USB 2.0" */ /* status="good" */ @@ -658,7 +662,7 @@ static Avision_HWEntry Avision_Device_List [] = { "HP", "C9930A", 0x03f0, 0x0b01, "Hewlett-Packard", "ScanJet 8250", - 0, AV_ADF_FLIPPING_DUPLEX | AV_FIRMWARE }, + AV_ADF_FLIPPING_DUPLEX | AV_FIRMWARE}, /* comment="1 pass, 4800 (?) dpi - USB 2.0" */ /* status="good" */ #endif @@ -666,7 +670,7 @@ static Avision_HWEntry Avision_Device_List [] = { "HP", "C9930A", 0x03f0, 0x3905, "Hewlett-Packard", "ScanJet 8270", - 0, AV_ADF_FLIPPING_DUPLEX | AV_FIRMWARE }, + AV_ADF_FLIPPING_DUPLEX | AV_FIRMWARE}, /* comment="1 pass, 4800 (?) dpi - USB 2.0" */ /* status="good" */ @@ -674,7 +678,7 @@ static Avision_HWEntry Avision_Device_List [] = { "HP", "C9930A", 0x03f0, 0x0b01, "Hewlett-Packard", "ScanJet 8290", - 0, AV_ADF_FLIPPING_DUPLEX | AV_FIRMWARE }, + AV_ADF_FLIPPING_DUPLEX | AV_FIRMWARE}, /* comment="1 pass, 4800 (?) dpi - USB 2.0 and SCSI - only SCSI tested so far" */ /* status="good" */ @@ -682,7 +686,7 @@ static Avision_HWEntry Avision_Device_List [] = { "HP", "C9930A", 0x03f0, 0x3805, "Hewlett-Packard", "ScanJet 8300", - 0,0}, + 0}, /* comment="1 pass, 4800 (?) dpi - USB 2.0" */ /* status="good" */ @@ -690,14 +694,14 @@ static Avision_HWEntry Avision_Device_List [] = { "HP", "C9930A", 0x03f0, 0x3805, "Hewlett-Packard", "ScanJet 8350", - 0,0}, + 0}, /* comment="1 pass, 4800 (?) dpi - USB 2.0" */ /* status="good" */ { "HP", "C9930A", 0x03f0, 0x3805, "Hewlett-Packard", "ScanJet 8390", - 0,0}, + 0}, /* comment="1 pass, 4800 (?) dpi - USB 2.0" */ /* status="good" */ @@ -705,79 +709,79 @@ static Avision_HWEntry Avision_Device_List [] = { "Minolta", "#2882", 0, 0, "Minolta", "Dimage Scan Dual I", - AV_FORCE_FILM | AV_NO_START_SCAN,0}, /* not AV_FILMSCANNER (no frame control) */ + AV_FORCE_FILM | AV_NO_START_SCAN}, /* not AV_FILMSCANNER (no frame control) */ /* status="basic" */ { "Minolta", "#2887", 0, 0, "Minolta", "Scan Multi Pro", - AV_FORCE_FILM | AV_NO_START_SCAN,0}, /* AV_FILMSCANNER (frame control)? */ + AV_FORCE_FILM | AV_NO_START_SCAN}, /* AV_FILMSCANNER (frame control)? */ /* status="untested" */ { "MINOLTA", "FS-V1", 0x0638, 0x026a, "Minolta", "Dimage Scan Dual II", - AV_FILMSCANNER | AV_ONE_CALIB_CMD | AV_12_BIT_MODE,0}, + AV_FILMSCANNER | AV_ONE_CALIB_CMD | AV_12_BIT_MODE}, /* comment="1 pass, film-scanner" */ /* status="good" */ { "MINOLTA", "Elite II", 0x0686, 0x4004, "Minolta", "Elite II", - AV_FILMSCANNER | AV_ONE_CALIB_CMD,0}, + AV_FILMSCANNER | AV_ONE_CALIB_CMD}, /* comment="1 pass, film-scanner" */ /* status="untested" */ { "MINOLTA", "FS-V3", 0x0686, 0x400d, "Minolta", "Dimage Scan Dual III", - AV_FILMSCANNER | AV_ONE_CALIB_CMD | AV_ACCEL_TABLE ,0}, + AV_FILMSCANNER | AV_ONE_CALIB_CMD | AV_ACCEL_TABLE}, /* comment="1 pass, film-scanner" */ /* status="good" */ { "MINOLTA", "FS-V4", 0x0686, 0x400e, "Minolta", "Dimage Scan Elite 5400", - AV_FILMSCANNER | AV_ONE_CALIB_CMD | /*AV_ACCEL_TABLE |*/ AV_NO_START_SCAN,0}, + AV_FILMSCANNER | AV_ONE_CALIB_CMD | /*AV_ACCEL_TABLE |*/ AV_NO_START_SCAN}, /* comment="1 pass, film-scanner" */ /* status="good" */ { "QMS", "SC-110", 0x0638, 0x0a15, "Minolta-QMS", "SC-110", - 0,0}, + 0}, /* comment="" */ /* status="untested" */ { "QMS", "SC-215", 0x0638, 0x0a16, "Minolta-QMS", "SC-215", - 0,0}, + 0}, /* comment="" */ /* status="good" */ { "MITSBISH", "MCA-ADFC", 0, 0, "Mitsubishi", "MCA-ADFC", - 0,0}, + 0}, /* status="untested" */ { "MITSBISH", "MCA-S1200C", 0, 0, "Mitsubishi", "S1200C", - 0,0}, + 0}, /* status="untested" */ { "MITSBISH", "MCA-S600C", 0, 0, "Mitsubishi", "S600C", - 0,0}, + 0}, /* status="untested" */ { "MITSBISH", "SS600", 0, 0, "Mitsubishi", "SS600", - 0,0}, + 0}, /* status="good" */ /* The next are all untested ... */ @@ -785,209 +789,209 @@ static Avision_HWEntry Avision_Device_List [] = { "FCPA", "ScanPartner", 0, 0, "Fujitsu", "ScanPartner", - AV_FUJITSU,0}, + AV_FUJITSU}, /* status="untested" */ { "FCPA", "ScanPartner 10", 0, 0, "Fujitsu", "ScanPartner 10", - AV_FUJITSU,0}, + AV_FUJITSU}, /* status="untested" */ { "FCPA", "ScanPartner 10C", 0, 0, "Fujitsu", "ScanPartner 10C", - AV_FUJITSU,0}, + AV_FUJITSU}, /* status="untested" */ { "FCPA", "ScanPartner 15C", 0, 0, "Fujitsu", "ScanPartner 15C", - AV_FUJITSU,0}, + AV_FUJITSU}, /* status="untested" */ { "FCPA", "ScanPartner 300C", 0, 0, "Fujitsu", "ScanPartner 300C", - 0,0}, + 0}, /* status="untested" */ { "FCPA", "ScanPartner 600C", 0, 0, "Fujitsu", "ScanPartner 600C", - 0,0}, + 0}, /* status="untested" */ { "FCPA", "ScanPartner 620C", 0, 0, "Fujitsu", "ScanPartner 620C", - AV_LIGHT_CHECK_BOGUS,0}, + AV_LIGHT_CHECK_BOGUS}, /* status="good" */ { "FCPA", "ScanPartner Jr", 0, 0, "Fujitsu", "ScanPartner Jr", - 0,0}, + 0}, /* status="untested" */ { "FCPA", "ScanStation", 0, 0, "Fujitsu", "ScanStation", - 0,0}, + 0}, /* status="untested" */ { NULL, NULL, 0x04c5, 0x1029, "Fujitsu", "fi-4010CU", - 0,0}, + 0}, /* status="untested" */ { NULL, NULL, 0x04c5, 0x10ef, "Fujitsu", "fi-5015C", - 0,0}, + 0}, /* status="good" */ { NULL, NULL, 0x040a, 0x6001, "Kodak", "i30", - AV_INT_BUTTON | AV_GRAY_MODES,0}, + AV_INT_BUTTON | AV_GRAY_MODES}, /* status="untested" */ { NULL, NULL, 0x040a, 0x6002, "Kodak", "i40", - AV_INT_BUTTON | AV_GRAY_MODES,0}, + AV_INT_BUTTON | AV_GRAY_MODES}, /* status="basic" */ { NULL, NULL, 0x040a, 0x6003, "Kodak", "i50", - AV_INT_BUTTON,0}, + AV_INT_BUTTON}, /* status="untested" */ #ifdef FAKE_ENTRIES_FOR_DESC_GENERATION { NULL, NULL, 0x040a, 0x6003, "Kodak", "i55", - AV_INT_BUTTON,0}, + AV_INT_BUTTON}, /* status="untested" */ #endif { NULL, NULL, 0x040a, 0x6004, "Kodak", "i60", - AV_INT_BUTTON,0}, + AV_INT_BUTTON}, /* status="untested" */ #ifdef FAKE_ENTRIES_FOR_DESC_GENERATION { NULL, NULL, 0x040a, 0x6004, "Kodak", "i65", - AV_INT_BUTTON,0}, + AV_INT_BUTTON}, /* status="untested" */ #endif { NULL, NULL, 0x040a, 0x6005, "Kodak", "i80", - AV_INT_BUTTON,0}, + AV_INT_BUTTON}, /* status="good" */ { "iVina", "1200U", 0x0638, 0x0268, "iVina", "1200U", - 0,0}, + 0}, /* status="untested" */ { NULL, NULL, 0x04a7, 0x0424, "Visioneer", "Strobe XP 450", - AV_INT_BUTTON | AV_ACCEL_TABLE,0}, + AV_INT_BUTTON | AV_ACCEL_TABLE}, /* comment="sheetfed scanner" */ /* status="complete" */ { NULL, NULL, 0x04a7, 0x0491, "Visioneer", "Strobe XP 450-G", - AV_INT_BUTTON | AV_ACCEL_TABLE,0}, + AV_INT_BUTTON | AV_ACCEL_TABLE}, /* comment="sheetfed scanner" */ /* status="complete" */ { NULL, NULL, 0x04a7, 0x0479, "Visioneer", "Strobe XP 470", - AV_INT_BUTTON | AV_ACCEL_TABLE,0}, + AV_INT_BUTTON | AV_ACCEL_TABLE}, /* comment="sheetfed scanner" */ /* status="complete" */ { NULL, NULL, 0x04a7, 0x048F, "Visioneer", "Strobe XP 470-G", - AV_INT_BUTTON | AV_ACCEL_TABLE,0}, + AV_INT_BUTTON | AV_ACCEL_TABLE}, /* comment="sheetfed scanner" */ /* status="complete" */ { NULL, NULL, 0x04a7, 0x0420, "Visioneer", "9320", - 0,0}, + 0}, /* comment="sheetfed scanner" */ /* status="complete" */ { NULL, NULL, 0x04a7, 0x0421, "Visioneer", "9450", - AV_MULTI_CALIB_CMD | AV_ADF_BGR_ORDER_INVERT | AV_NO_BUTTON, AV_NO_TUNE_SCAN_LENGTH}, + AV_MULTI_CALIB_CMD | AV_ADF_BGR_ORDER_INVERT | AV_NO_BUTTON | AV_NO_TUNE_SCAN_LENGTH}, /* comment="sheetfed scanner" */ /* status="complete" */ { NULL, NULL, 0x04a7, 0x047A, "Visioneer", "9450-G", - 0,0}, + 0}, /* comment="sheetfed scanner" */ /* status="complete" */ { NULL, NULL, 0x04a7, 0x0422, "Visioneer", "9550", - 0,0}, + 0}, /* comment="sheetfed scanner" */ /* status="complete" */ { NULL, NULL, 0x04a7, 0x0390, "Visioneer", "9650", - 0,0}, + 0}, /* comment="sheetfed scanner" */ /* status="complete" */ { NULL, NULL, 0x04a7, 0x047B, "Visioneer", "9650-G", - 0,0}, + 0}, /* comment="sheetfed scanner" */ /* status="complete" */ { NULL, NULL, 0x04a7, 0x0423, "Visioneer", "9750", - AV_INT_BUTTON,0}, + AV_INT_BUTTON}, /* comment="sheetfed scanner" */ /* status="complete" */ { NULL, NULL, 0x04a7, 0x0493, "Visioneer", "9750-G", - AV_INT_BUTTON,0}, + AV_INT_BUTTON}, /* comment="sheetfed scanner" */ /* status="complete" */ { NULL, NULL, 0x04a7, 0x0497, "Visioneer", "Patriot 430", - AV_INT_BUTTON | AV_2ND_LINE_INTERLACED | AV_NO_REAR | AV_SOFT_SCALE | AV_DOES_KEEP_WINDOW | AV_DOES_KEEP_GAMMA | AV_REAR_OFFSET,0}, + AV_INT_BUTTON | AV_2ND_LINE_INTERLACED | AV_NO_REAR | AV_SOFT_SCALE | AV_DOES_KEEP_WINDOW | AV_DOES_KEEP_GAMMA | AV_REAR_OFFSET}, /* comment="sheetfed scanner" */ /* status="complete" */ @@ -995,7 +999,7 @@ static Avision_HWEntry Avision_Device_List [] = { NULL, NULL, 0x04a7, 0x048F, "Visioneer", "Patriot 470", - AV_INT_BUTTON,0}, + AV_INT_BUTTON}, /* comment="sheetfed scanner" */ /* status="complete" */ #endif @@ -1003,150 +1007,150 @@ static Avision_HWEntry Avision_Device_List [] = { NULL, NULL, 0x04a7, 0x0498, "Visioneer", "Patriot 680", - AV_INT_BUTTON,0}, + AV_INT_BUTTON}, /* comment="sheetfed scanner" */ /* status="complete" */ { NULL, NULL, 0x04a7, 0x0499, "Visioneer", "Patriot 780", - AV_INT_BUTTON,0}, + AV_INT_BUTTON}, /* comment="sheetfed scanner" */ /* status="complete" */ { NULL, NULL, 0x04a7, 0x049C, "Xerox", "DocuMate150", - AV_INT_BUTTON | AV_SOFT_SCALE | AV_DOES_KEEP_WINDOW | AV_DOES_KEEP_GAMMA | AV_BACKGROUND_QUIRK,0}, + AV_INT_BUTTON | AV_SOFT_SCALE | AV_DOES_KEEP_WINDOW | AV_DOES_KEEP_GAMMA | AV_BACKGROUND_QUIRK}, /* status="good" */ { NULL, NULL, 0x04a7, 0x0477, "Xerox", "DocuMate152", - AV_INT_BUTTON | AV_2ND_LINE_INTERLACED | AV_NO_REAR | AV_SOFT_SCALE | AV_DOES_KEEP_WINDOW | AV_DOES_KEEP_GAMMA | AV_REAR_OFFSET | AV_BACKGROUND_QUIRK,0}, + AV_INT_BUTTON | AV_2ND_LINE_INTERLACED | AV_NO_REAR | AV_SOFT_SCALE | AV_DOES_KEEP_WINDOW | AV_DOES_KEEP_GAMMA | AV_REAR_OFFSET | AV_BACKGROUND_QUIRK}, /* status="good" */ { NULL, NULL, 0x04a7, 0x049D, "Xerox", "DocuMate162", - AV_INT_BUTTON | AV_2ND_LINE_INTERLACED | AV_NO_REAR | AV_SOFT_SCALE | AV_DOES_KEEP_WINDOW | AV_DOES_KEEP_GAMMA | AV_REAR_OFFSET | AV_BACKGROUND_QUIRK,0}, + AV_INT_BUTTON | AV_2ND_LINE_INTERLACED | AV_NO_REAR | AV_SOFT_SCALE | AV_DOES_KEEP_WINDOW | AV_DOES_KEEP_GAMMA | AV_REAR_OFFSET | AV_BACKGROUND_QUIRK}, /* status="good" */ { NULL, NULL, 0x04a7, 0x0448, "Xerox", "DocuMate250", - AV_INT_BUTTON,0}, + AV_INT_BUTTON}, /* status="good" */ { NULL, NULL, 0x04a7, 0x0490, "Xerox", "DocuMate250-G", - AV_INT_BUTTON,0}, + AV_INT_BUTTON}, /* status="good" */ { NULL, NULL, 0x04a7, 0x0449, "Xerox", "DocuMate252", - AV_INT_BUTTON,0}, + AV_INT_BUTTON}, /* status="good" */ { NULL, NULL, 0x04a7, 0x048C, "Xerox", "DocuMate252-G", - AV_INT_BUTTON,0}, + AV_INT_BUTTON}, /* status="good" */ { NULL, NULL, 0x04a7, 0x0476, "Xerox", "DocuMate232", - AV_INT_BUTTON,0}, + AV_INT_BUTTON}, /* status="good" */ { NULL, NULL, 0x04a7, 0x044c, "Xerox", "DocuMate262", - AV_INT_BUTTON,0}, + AV_INT_BUTTON}, /* status="good" */ { NULL, NULL, 0x04a7, 0x048D, "Xerox", "DocuMate262-G", - AV_INT_BUTTON,0}, + AV_INT_BUTTON}, /* status="good" */ { NULL, NULL, 0x04a7, 0x04a7, "Xerox", "DocuMate262i", - AV_INT_BUTTON,0}, + AV_INT_BUTTON}, /* status="good" */ { NULL, NULL, 0x04a7, 0x0475, "Xerox", "DocuMate272", - AV_INT_BUTTON,0}, + AV_INT_BUTTON}, /* status="untested" */ { NULL, NULL, 0x04a7, 0x048E, "Xerox", "DocuMate272-G", - AV_INT_BUTTON,0}, + AV_INT_BUTTON}, /* status="untested" */ { NULL, NULL, 0x04a7, 0x0446, "Xerox", "DocuMate510", - AV_INT_BUTTON,0}, + AV_INT_BUTTON}, /* status="untested" */ { NULL, NULL, 0x04a7, 0x0495, "Xerox", "DocuMate512", - AV_INT_BUTTON,0}, + AV_INT_BUTTON}, /* status="untested" */ { NULL, NULL, 0x04a7, 0x047c, "Xerox", "DocuMate510-G", - AV_INT_BUTTON,0}, + AV_INT_BUTTON}, /* status="untested" */ { NULL, NULL, 0x04a7, 0x0447, "Xerox", "DocuMate520", - AV_INT_BUTTON,0}, + AV_INT_BUTTON}, /* status="untested" */ { NULL, NULL, 0x04a7, 0x0492, "Xerox", "DocuMate520-G", - AV_INT_BUTTON,0}, + AV_INT_BUTTON}, /* status="untested" */ #ifdef FAKE_ENTRIES_FOR_DESC_GENERATION { NULL, NULL, 0x04a7, 0x0498, "Xerox", "DocuMate632", - AV_INT_BUTTON,0}, + AV_INT_BUTTON}, /* status="untested" */ #endif { NULL, NULL, 0x04a7, 0x0478, "Xerox", "DocuMate752", - AV_INT_BUTTON,0}, + AV_INT_BUTTON}, /* status="untested" */ { NULL, NULL, 0x04a7, 0x049A, "Xerox", "DocuMate752", - AV_INT_BUTTON,0}, + AV_INT_BUTTON}, /* status="untested" */ #ifdef FAKE_ENTRIES_FOR_DESC_GENERATION { NULL, NULL, 0x0638, 0x0a16, "OKI", "S700 Scancopier", - 0,0}, + 0}, /* comment="1 pass, 600 dpi, A4" */ /* status="good" */ #endif @@ -1154,14 +1158,14 @@ static Avision_HWEntry Avision_Device_List [] = { "B+H", "2000F", 0, 0, "Bell+Howell", "2000F", - 0,0}, + 0}, /* comment="1 pass, ??? dpi, A4" */ /* status="basic" */ { NULL, NULL, 0x0482, 0x0335, "Kyocera", "FS-1016MFP", - 0,0}, + 0}, /* comment="1 pass, ??? dpi, A4" */ /* status="untested" */ @@ -1203,7 +1207,7 @@ Lexmark X4500 MFP { NULL, NULL, 0, 0, NULL, NULL, - 0,0} + 0} }; #if 0 @@ -3208,7 +3212,7 @@ get_accessories_info (Avision_Scanner* s) dev->inquiry_adf |= result [0]; - if (dev->hw->feature_type2 & AV_ADF_FLIPPING_DUPLEX) + if (dev->hw->feature_type & AV_ADF_FLIPPING_DUPLEX) { if (result[0] == 1) { @@ -3765,14 +3769,14 @@ attach (SANE_String_Const devname, Avision_ConnectionType con_type, if (!found) { DBG (0, "attach: \"%s\" - \"%s\" not yet in whitelist!\n", mfg, model); DBG (0, "attach: You might want to report this output.\n"); - DBG (0, "attach: To: mike@piratehaven.org (the Avision backend maintainer)\n"); + DBG (0, "attach: To: rene@exactcode.de (the Avision backend author)\n"); status = SANE_STATUS_INVAL; goto close_scanner_and_return; } /* second: maybe ask for the firmware status and flash ram info */ - if (Avision_Device_List [model_num].feature_type2 & AV_FIRMWARE) + if (Avision_Device_List [model_num].feature_type & AV_FIRMWARE) { DBG (3, "attach: reading firmware status\n"); status = get_firmware_status (&av_con); @@ -4211,7 +4215,7 @@ get_double ( &(result[48] ) )); } dev->inquiry_tune_scan_length = BIT(result[94],2); - if (Avision_Device_List [model_num].feature_type2 & AV_NO_TUNE_SCAN_LENGTH) + if (Avision_Device_List [model_num].feature_type & AV_NO_TUNE_SCAN_LENGTH) dev->inquiry_tune_scan_length = 0; dev->inquiry_background_raster = BIT(result[95],2); @@ -4278,7 +4282,9 @@ get_double ( &(result[48] ) )); else dev->scsi_buffer_size = sanei_scsi_max_request_size; - if (dev->inquiry_asic_type >= AV_ASIC_C5) + if (dev->inquiry_asic_type > AV_ASIC_C7 && dev->inquiry_asic_type < AV_ASIC_OA980) + dev->read_stripe_size = 16; + else if (dev->inquiry_asic_type >= AV_ASIC_C5) dev->read_stripe_size = 32; else /* tested on AV3200 with it's max of 300dpi @color */ dev->read_stripe_size = 8; /* maybe made dynamic on scan res ... */ @@ -5142,7 +5148,7 @@ send_gamma (Avision_Scanner* s) switch (dev->inquiry_asic_type) { case AV_ASIC_Cx: - case AV_ASIC_C1: /* from avision code */ + case AV_ASIC_C1: gamma_table_raw_size = 4096; gamma_table_size = 2048; break; @@ -5150,10 +5156,6 @@ send_gamma (Avision_Scanner* s) gamma_table_raw_size = 256; gamma_table_size = 256; break; - case AV_ASIC_C6: /* SPEC claims: 256 ... ? */ - case AV_ASIC_C7: - gamma_table_raw_size = 512; - gamma_table_size = 512; break; case AV_ASIC_OA980: gamma_table_raw_size = 4096; @@ -5164,7 +5166,8 @@ send_gamma (Avision_Scanner* s) gamma_table_size = 256; break; default: - gamma_table_raw_size = gamma_table_size = 4096; + gamma_table_raw_size = 512; /* SPEC claims: 256 ... ? */ + gamma_table_size = 512; } gamma_values = gamma_table_size / 256; @@ -5678,8 +5681,9 @@ set_window (Avision_Scanner* s) } } - if (s->val[OPT_PAPERLEN].w) + if (s->val[OPT_PAPERLEN].w != SANE_FALSE) { set_double (cmd.window.descriptor.paper_length, (int)((double)30.0*1200)); + } if ( !(dev->hw->feature_type & AV_FUJITSU) ) { @@ -5780,7 +5784,7 @@ set_window (Avision_Scanner* s) else { if (dev->hw->feature_type & AV_FASTER_WITH_FILTER) cmd.window.avision.bitset1 |= AVISION_FILTER_GREEN; - else if (dev->hw->feature_type2 & AV_USE_GRAY_FILTER) + else if (dev->hw->feature_type & AV_USE_GRAY_FILTER) cmd.window.avision.bitset1 |= AVISION_FILTER_GRAY; else cmd.window.avision.bitset1 |= AVISION_FILTER_NONE; @@ -6182,7 +6186,7 @@ do_eof (Avision_Scanner *s) /* we can now mark the rear data as valid */ if (s->avdimen.interlaced_duplex || - (s->hw->hw->feature_type2 & AV_ADF_FLIPPING_DUPLEX && s->source_mode == AV_ADF_DUPLEX)) { + (s->hw->hw->feature_type & AV_ADF_FLIPPING_DUPLEX && s->source_mode == AV_ADF_DUPLEX)) { DBG (3, "do_eof: toggling duplex rear data valid\n"); s->duplex_rear_valid = !s->duplex_rear_valid; DBG (3, "do_eof: duplex rear data valid: %x\n", @@ -6262,11 +6266,6 @@ init_options (Avision_Scanner* s) /* Init the SANE option from the scanner inquiry data */ - dev->x_range.max = SANE_FIX ( (int)dev->inquiry_x_ranges[s->source_mode_dim]); - dev->x_range.quant = 0; - dev->y_range.max = SANE_FIX ( (int)dev->inquiry_y_ranges[s->source_mode_dim]); - dev->y_range.quant = 0; - switch (dev->inquiry_asic_type) { case AV_ASIC_C2: dev->dpi_range.min = 100; @@ -6331,6 +6330,11 @@ init_options (Avision_Scanner* s) s->source_mode = match_source_mode (dev, s->val[OPT_SOURCE].s); s->source_mode_dim = match_source_mode_dim (s->source_mode); + dev->x_range.max = SANE_FIX ( (int)dev->inquiry_x_ranges[s->source_mode_dim]); + dev->x_range.quant = 0; + dev->y_range.max = SANE_FIX ( (int)dev->inquiry_y_ranges[s->source_mode_dim]); + dev->y_range.quant = 0; + /* resolution */ s->opt[OPT_RESOLUTION].name = SANE_NAME_SCAN_RESOLUTION; s->opt[OPT_RESOLUTION].title = SANE_TITLE_SCAN_RESOLUTION; @@ -6667,7 +6671,7 @@ init_options (Avision_Scanner* s) /* ADF page flipping */ s->opt[OPT_ADF_FLIP].cap = SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT | SANE_CAP_AUTOMATIC | SANE_CAP_ADVANCED; - if (!(s->hw->hw->feature_type2 & AV_ADF_FLIPPING_DUPLEX && s->source_mode == AV_ADF_DUPLEX)) + if (!(s->hw->hw->feature_type & AV_ADF_FLIPPING_DUPLEX && s->source_mode == AV_ADF_DUPLEX)) s->opt[OPT_ADF_FLIP].cap |= SANE_CAP_INACTIVE; s->opt[OPT_ADF_FLIP].name = "flip-page"; s->opt[OPT_ADF_FLIP].title = "Flip document after duplex scanning"; @@ -6782,7 +6786,7 @@ reader_process (void *data) return SANE_STATUS_NO_MEM; /* start scan ? */ - if ((deinterlace == NONE && !((dev->hw->feature_type2 & AV_ADF_FLIPPING_DUPLEX) && s->source_mode == AV_ADF_DUPLEX && s->duplex_rear_valid)) || + if ((deinterlace == NONE && !((dev->hw->feature_type & AV_ADF_FLIPPING_DUPLEX) && s->source_mode == AV_ADF_DUPLEX && s->duplex_rear_valid)) || (deinterlace != NONE && !s->duplex_rear_valid)) { /* reserve unit - in the past we did this in open - but the @@ -6820,7 +6824,7 @@ reader_process (void *data) /* setup file i/o for deinterlacing scans or if we are the back page with a flipping duplexer */ if (deinterlace != NONE || - (dev->hw->feature_type2 & AV_ADF_FLIPPING_DUPLEX && s->source_mode == AV_ADF_DUPLEX && !(s->page % 2))) + (dev->hw->feature_type & AV_ADF_FLIPPING_DUPLEX && s->source_mode == AV_ADF_DUPLEX && !(s->page % 2))) { if (!s->duplex_rear_valid) { /* create new file for writing */ DBG (3, "reader_process: opening duplex rear file for writing.\n"); @@ -6954,11 +6958,15 @@ reader_process (void *data) /* only EOF on the second stripe, as otherwise the rear page is shorter */ if (status == SANE_STATUS_EOF && deinterlace == STRIPE) { - static int already_eof = 0; - if (!already_eof) { - DBG (5, "reader_process: first EOF on stripe interlace: hiding.\n"); - status = SANE_STATUS_GOOD; - already_eof = 1; + if (dev->inquiry_asic_type > AV_ASIC_C7 && dev->inquiry_asic_type < AV_ASIC_OA980) { + this_read = 0; + } else { + static int already_eof = 0; + if (!already_eof) { + DBG (5, "reader_process: first EOF on stripe interlace: hiding.\n"); + status = SANE_STATUS_GOOD; + already_eof = 1; + } } } @@ -7047,7 +7055,7 @@ reader_process (void *data) DBG (9, "reader_process: after deinterlacing: useful_bytes: %d, stripe_fill: %d\n", useful_bytes, stripe_fill); } - if (dev->hw->feature_type2 & AV_ADF_FLIPPING_DUPLEX && s->source_mode == AV_ADF_DUPLEX && !(s->page % 2) && !s->duplex_rear_valid) { + if (dev->hw->feature_type & AV_ADF_FLIPPING_DUPLEX && s->source_mode == AV_ADF_DUPLEX && !(s->page % 2) && !s->duplex_rear_valid) { /* Here we flip the image by writing the lines from the end of the file to the beginning. */ unsigned int absline = (processed_bytes - stripe_fill) / s->avdimen.hw_bytes_per_line; unsigned int abslines = absline + useful_bytes / s->avdimen.hw_bytes_per_line; @@ -7454,7 +7462,7 @@ reader_process (void *data) /* Eject film holder and/or release_unit - but only for non-duplex-rear / non-virtual scans. */ if ((deinterlace != NONE && s->duplex_rear_valid) || - ((dev->hw->feature_type2 & AV_ADF_FLIPPING_DUPLEX) && s->source_mode == AV_ADF_DUPLEX && !(s->page % 2) && s->duplex_rear_valid)) + ((dev->hw->feature_type & AV_ADF_FLIPPING_DUPLEX) && s->source_mode == AV_ADF_DUPLEX && !(s->page % 2) && s->duplex_rear_valid)) { DBG (1, "reader_process: virtual duplex scan - no device cleanup!\n"); } @@ -7477,7 +7485,7 @@ reader_process (void *data) } } - if ((dev->hw->feature_type2 & AV_ADF_FLIPPING_DUPLEX) && s->source_mode == AV_ADF_DUPLEX && s->page % 2) { + if ((dev->hw->feature_type & AV_ADF_FLIPPING_DUPLEX) && s->source_mode == AV_ADF_DUPLEX && s->page % 2) { /* front page of flipping duplex */ if (exit_status == SANE_STATUS_EOF) { if (s->val[OPT_ADF_FLIP].w) { @@ -7891,7 +7899,7 @@ sane_open (SANE_String_Const devicename, SANE_Handle *handle) init_options (s); if (dev->inquiry_duplex_interlaced || dev->scanner_type == AV_FILM || - dev->hw->feature_type2 & AV_ADF_FLIPPING_DUPLEX) { + dev->hw->feature_type & AV_ADF_FLIPPING_DUPLEX) { /* Might need at least *DOS (Windows flavour and OS/2) portability fix However, I was told Cygwin (et al.) takes care of it. */ strncpy(s->duplex_rear_fname, "/tmp/avision-rear-XXXXXX", PATH_MAX); @@ -8188,7 +8196,7 @@ sane_control_option (SANE_Handle handle, SANE_Int option, dev->y_range.max = SANE_FIX ( dev->inquiry_y_ranges[s->source_mode_dim]); - if (s->hw->hw->feature_type2 & AV_ADF_FLIPPING_DUPLEX && s->source_mode == AV_ADF_DUPLEX) { + if (s->hw->hw->feature_type & AV_ADF_FLIPPING_DUPLEX && s->source_mode == AV_ADF_DUPLEX) { s->opt[OPT_ADF_FLIP].cap &= ~SANE_CAP_INACTIVE; } else { s->opt[OPT_ADF_FLIP].cap |= SANE_CAP_INACTIVE; @@ -8284,16 +8292,9 @@ sane_get_parameters (SANE_Handle handle, SANE_Parameters* params) } if (params) { + *params = s->params; /* add background raster lines */ - s->params.lines += s->val[OPT_BACKGROUND].w; - - /* copy structure members */ - params->format = s->params.format; - params->last_frame = s->params.last_frame; - params->bytes_per_line = s->params.bytes_per_line; - params->pixels_per_line = s->params.pixels_per_line; - params->lines = s->params.lines; - params->depth = s->params.depth; + params->lines += s->val[OPT_BACKGROUND].w; } return SANE_STATUS_GOOD; diff --git a/backend/avision.h b/backend/avision.h index 14134e1..2122e09 100644 --- a/backend/avision.h +++ b/backend/avision.h @@ -93,123 +93,119 @@ typedef struct Avision_HWEntry { /* feature overwrites - as embedded CPUs have 16bit enums - this would need a change ... */ - enum { /* force no calibration */ - AV_NO_CALIB = (1<<0), + #define AV_NO_CALIB ((uint64_t)1<<0) /* force all in one command calibration */ - AV_ONE_CALIB_CMD = (1<<1), + #define AV_ONE_CALIB_CMD ((uint64_t)1<<1) /* no gamma table */ - AV_NO_GAMMA = (1<<2), + #define AV_NO_GAMMA ((uint64_t)1<<2) /* light check is bogus */ - AV_LIGHT_CHECK_BOGUS = (1<<3), + #define AV_LIGHT_CHECK_BOGUS ((uint64_t)1<<3) /* no button though the device advertise it */ - AV_NO_BUTTON = (1<<4), + #define AV_NO_BUTTON ((uint64_t)1<<4) /* if the scan area needs to be forced to A3 */ - AV_FORCE_A3 = (1<<5), + #define AV_FORCE_A3 ((uint64_t)1<<5) /* if the scan area and resolution needs to be forced for films */ - AV_FORCE_FILM = (1<<6), + #define AV_FORCE_FILM ((uint64_t)1<<6) /* does not suport, or very broken background (added for AV610C2) */ - AV_NO_BACKGROUND = (1<<7), + #define AV_NO_BACKGROUND ((uint64_t)1<<7) /* is film scanner - no detection yet */ - AV_FILMSCANNER = (1<<8), + #define AV_FILMSCANNER ((uint64_t)1<<8) /* fujitsu adaption */ - AV_FUJITSU = (1<<9), + #define AV_FUJITSU ((uint64_t)1<<9) /* gray calibration data has to be uploaded on the blue channel ... ? */ - AV_GRAY_CALIB_BLUE = (1<<10), + #define AV_GRAY_CALIB_BLUE ((uint64_t)1<<10) /* Interrupt endpoint button readout (so far AV220) */ - AV_INT_BUTTON = (1<<11), + #define AV_INT_BUTTON ((uint64_t)1<<11) /* send acceleration table ... */ - AV_ACCEL_TABLE = (1<<12), + #define AV_ACCEL_TABLE ((uint64_t)1<<12) /* non-interlaced scanns up to 300 dpi (AV32xx / AV83xx) */ - AV_NON_INTERLACED_DUPLEX_300 = (1<<13), + #define AV_NON_INTERLACED_DUPLEX_300 ((uint64_t)1<<13) /* do not read multiples of 64 bytes - stalls the USB chip */ - AV_NO_64BYTE_ALIGN = (1<<14), + #define AV_NO_64BYTE_ALIGN ((uint64_t)1<<14) /* force channel-by-channel calibration */ - AV_MULTI_CALIB_CMD = (1<<15), + #define AV_MULTI_CALIB_CMD ((uint64_t)1<<15) /* non color scans are faster with a filter applied (AV32xx) */ - AV_FASTER_WITH_FILTER = (1<<16), + #define AV_FASTER_WITH_FILTER ((uint64_t)1<<16) /* interlaced data with 1 line distance */ - AV_2ND_LINE_INTERLACED = (1<<17), + #define AV_2ND_LINE_INTERLACED ((uint64_t)1<<17) /* does not keep the window though it advertices so */ - AV_DOES_NOT_KEEP_WINDOW = (1<<18), + #define AV_DOES_NOT_KEEP_WINDOW ((uint64_t)1<<18) /* does not keep the gamma though it advertices so */ - AV_DOES_NOT_KEEP_GAMMA = (1<<19), + #define AV_DOES_NOT_KEEP_GAMMA ((uint64_t)1<<19) /* advertises ADF is BGR order, but isn't (or vice versa) */ - AV_ADF_BGR_ORDER_INVERT = (1<<20), + #define AV_ADF_BGR_ORDER_INVERT ((uint64_t)1<<20) /* allows 12bit mode, though not flagged */ - AV_12_BIT_MODE = (1<<21), + #define AV_12_BIT_MODE ((uint64_t)1<<21) /* very broken background raster */ - AV_BACKGROUND_QUIRK = (1<<22), + #define AV_BACKGROUND_QUIRK ((uint64_t)1<<22) /* though marked as GRAY only the scanner can do GRAY modes */ - AV_GRAY_MODES = (1<<23), + #define AV_GRAY_MODES ((uint64_t)1<<23) /* no seperate, single REAR scan (AV122, DM152, ...) */ - AV_NO_REAR = (1<<24), + #define AV_NO_REAR ((uint64_t)1<<24) /* only scan with some known good hardware resolutions, as the scanner fails to properly interpoloate in between (e.g. AV121, DM152 on duplex scans - but also the AV600), software scale and interpolate to all the others */ - AV_SOFT_SCALE = (1<<25), + #define AV_SOFT_SCALE ((uint64_t)1<<25) /* does keep window though it does not advertice it - the AV122/DM152 mess up image data if window is resend between ADF pages */ - AV_DOES_KEEP_WINDOW = (1<<26), + #define AV_DOES_KEEP_WINDOW ((uint64_t)1<<26) /* does keep gamma though it does not advertice it */ - AV_DOES_KEEP_GAMMA = (1<<27), + #define AV_DOES_KEEP_GAMMA ((uint64_t)1<<27) /* does the scanner contain a Cancel button? */ - AV_CANCEL_BUTTON = (1<<28), + #define AV_CANCEL_BUTTON ((uint64_t)1<<28) /* is the rear image offset? */ - AV_REAR_OFFSET = (1<<29), + #define AV_REAR_OFFSET ((uint64_t)1<<29) /* some devices do not need a START_SCAN, even hang with it */ - AV_NO_START_SCAN = (1<<30), - - AV_INT_STATUS = (1<<31) + #define AV_NO_START_SCAN ((uint64_t)1<<30) - /* maybe more ...*/ - } feature_type; - - /*second enum cause 32 bit int above is full*/ - enum { + #define AV_INT_STATUS ((uint64_t)1<<31) + /* force no calibration */ - AV_NO_TUNE_SCAN_LENGTH = (1<<0), + #define AV_NO_TUNE_SCAN_LENGTH ((uint64_t)1<<32) /* for gray scans, set grey filter */ - AV_USE_GRAY_FILTER = (1<<1), + #define AV_USE_GRAY_FILTER ((uint64_t)1<<33) /* For (HP) scanners with flipping duplexers */ - AV_ADF_FLIPPING_DUPLEX = (1<<2), + #define AV_ADF_FLIPPING_DUPLEX ((uint64_t)1<<34) /* For scanners which need to have their firmware read to properly function. */ - AV_FIRMWARE = (1<<3) - } feature_type2; + #define AV_FIRMWARE ((uint64_t)1<<35) + + /* maybe more ...*/ + uint64_t feature_type; } Avision_HWEntry; diff --git a/backend/canon_dr.c b/backend/canon_dr.c index 15dcc59..0b120fa 100644 --- a/backend/canon_dr.c +++ b/backend/canon_dr.c @@ -309,6 +309,8 @@ - set another unknown byte in buffermode for ssm2 - add another gettimeofday call at end of do_usb_cmd - don't print 0 length line in hexdump + v49 2015-03-18, MAN + - initial support for DR-C125 SANE FLOW DIAGRAM @@ -358,7 +360,7 @@ #include "canon_dr.h" #define DEBUG 1 -#define BUILD 48 +#define BUILD 49 /* values for SANE_DEBUG_CANON_DR env var: - errors 5 @@ -1542,6 +1544,38 @@ init_model (struct scanner *s) s->can_monochrome=0; } + else if (strstr (s->model_name,"DR-C125") + || strstr (s->model_name,"DR-C225") + ){ + + /*confirmed settings*/ + s->gray_interlace[SIDE_FRONT] = GRAY_INTERLACE_2510; + s->gray_interlace[SIDE_BACK] = GRAY_INTERLACE_2510; + s->color_interlace[SIDE_FRONT] = COLOR_INTERLACE_2510; + s->color_interlace[SIDE_BACK] = COLOR_INTERLACE_2510; + s->duplex_interlace = DUPLEX_INTERLACE_2510; + s->unknown_byte2 = 0x88; + s->need_ccal = 1; + s->ccal_version = 3; + s->need_fcal = 1; + s->invert_tly = 1; + s->can_color = 1; + s->rgb_format = 1; + /*s->duplex_offset = 400; now set in config file*/ + + /*only in Y direction, so we trash them in X*/ + s->std_res_x[DPI_100]=0; + s->std_res_x[DPI_150]=0; + s->std_res_x[DPI_200]=0; + s->std_res_x[DPI_240]=0; + s->std_res_x[DPI_400]=0; + + /*suspected settings*/ + s->always_op = 0; + s->fixed_width = 1; + s->valid_x = 8.5 * 1200; + } + DBG (10, "init_model: finish\n"); return SANE_STATUS_GOOD; diff --git a/backend/canon_dr.conf.in b/backend/canon_dr.conf.in index e946d9b..453065b 100644 --- a/backend/canon_dr.conf.in +++ b/backend/canon_dr.conf.in @@ -150,6 +150,7 @@ option duplex-offset 400 usb 0x1083 0x163f # DR-C125 +option duplex-offset 400 usb 0x1083 0x1640 # DR-P215 diff --git a/backend/dll.conf.in b/backend/dll.conf.in index a7e4b3e..ee6f2f1 100644 --- a/backend/dll.conf.in +++ b/backend/dll.conf.in @@ -24,6 +24,7 @@ dmc epjitsu #epson epson2 +epsonds fujitsu #gphoto2 genesys diff --git a/backend/epjitsu.c b/backend/epjitsu.c index 08e78b2..7d987dc 100644 --- a/backend/epjitsu.c +++ b/backend/epjitsu.c @@ -146,6 +146,11 @@ - fix 150 dpi settings for fi-60F and fi-65F - make adf_height_padding variable - make white_factor variable + v27 2015-01-24, MAN + - don't override br_x and br_y + - call change_params after changing page_width + v28 2015-03-23, MAN + - call get_hardware_status before starting scan SANE FLOW DIAGRAM @@ -194,7 +199,7 @@ #include "epjitsu-cmd.h" #define DEBUG 1 -#define BUILD 26 +#define BUILD 28 #ifndef MAX3 #define MAX3(a,b,c) ((a) > (b) ? ((a) > (c) ? a : c) : ((b) > (c) ? b : c)) @@ -1712,8 +1717,8 @@ sane_control_option (SANE_Handle handle, SANE_Int option, return SANE_STATUS_GOOD; s->page_width = FIXED_MM_TO_SCANNER_UNIT(val_c); - *info |= SANE_INFO_RELOAD_OPTIONS; - return SANE_STATUS_GOOD; + *info |= SANE_INFO_RELOAD_PARAMS | SANE_INFO_RELOAD_OPTIONS; + return change_params(s); case OPT_PAGE_HEIGHT: if (s->page_height == FIXED_MM_TO_SCANNER_UNIT(val_c)) @@ -1970,11 +1975,6 @@ change_params(struct scanner *s) s->max_y = PIX_TO_SCANNER_UNIT( settings[i].max_y, settings[i].y_res ); s->min_y = PIX_TO_SCANNER_UNIT( settings[i].min_y, settings[i].y_res ); - /* wrong place for this?*/ - s->page_width = s->max_x; - s->br_x = s->max_x; - s->br_y = s->max_y; - /*current dpi*/ s->setWindowCoarseCal = settings[i].sw_coarsecal; s->setWindowCoarseCalLen = SET_WINDOW_LEN; @@ -2018,13 +2018,14 @@ change_params(struct scanner *s) if (s->page_height < s->min_y && s->page_height > 0) s->page_height = s->min_y; if (s->tl_y + s->page_height > s->max_y) - s->tl_y = s->max_y - s->adf_height_padding - s->page_height ; + s->tl_y = s->max_y - s->adf_height_padding - s->page_height; + if (s->tl_y < 0) + s->tl_y = 0; if (s->page_height > 0) { s->br_y = s->tl_y + s->page_height; } - else - { + else { s->br_y = s->max_y; } @@ -2370,6 +2371,9 @@ sane_start (SANE_Handle handle) s->side = !s->side; } + /* recent scanners need ghs called before scanning */ + ret = get_hardware_status(s); + /* ingest paper with adf */ if( s->source == SOURCE_ADF_BACK || s->source == SOURCE_ADF_FRONT || (s->source == SOURCE_ADF_DUPLEX && s->side == SIDE_FRONT) ){ diff --git a/backend/epson2-commands.c b/backend/epson2-commands.c index 0c28eab..eccd4ba 100644 --- a/backend/epson2-commands.c +++ b/backend/epson2-commands.c @@ -680,8 +680,10 @@ esci_set_scanning_parameter(SANE_Handle handle, unsigned char *buf) return status; status = e2_cmd_simple(s, buf, 64); - if (status != SANE_STATUS_GOOD) + if (status != SANE_STATUS_GOOD) { + DBG(1, "%s: invalid scanning parameters\n", __func__); return status; + } return SANE_STATUS_GOOD; } diff --git a/backend/epson2-io.c b/backend/epson2-io.c index 13adef4..4477963 100644 --- a/backend/epson2-io.c +++ b/backend/epson2-io.c @@ -110,8 +110,8 @@ e2_send(Epson_Scanner * s, void *buf, size_t buf_size, size_t reply_len, } ssize_t -e2_recv(Epson_Scanner * s, void *buf, ssize_t buf_size, - SANE_Status * status) +e2_recv(Epson_Scanner *s, void *buf, ssize_t buf_size, + SANE_Status *status) { ssize_t n = 0; @@ -142,8 +142,9 @@ e2_recv(Epson_Scanner * s, void *buf, ssize_t buf_size, } if (n < buf_size) { - DBG(1, "%s: expected = %lu, got = %ld\n", __func__, - (u_long) buf_size, (long) n); + DBG(1, "%s: expected = %lu, got = %ld, canceling: %d\n", __func__, + (u_long) buf_size, (long) n, s->canceling); + *status = SANE_STATUS_IO_ERROR; } diff --git a/backend/epson2-ops.c b/backend/epson2-ops.c index d81deaf..5d8c84d 100644 --- a/backend/epson2-ops.c +++ b/backend/epson2-ops.c @@ -472,8 +472,10 @@ e2_set_tpu2_area(struct Epson_Scanner *s, int x, int y, int unit) } void -e2_add_depth(Epson_Device * dev, SANE_Word depth) +e2_add_depth(Epson_Device *dev, SANE_Int depth) { + DBG(10, "%s: add (bpp): %d\n", __func__, depth); + if (depth > dev->maxDepth) dev->maxDepth = depth; @@ -765,7 +767,7 @@ e2_discover_capabilities(Epson_Scanner *s) * Check for the max. supported color depth and assign * the values to the bitDepthList. */ - dev->depth_list = malloc(sizeof(SANE_Word) * 4); + dev->depth_list = malloc(sizeof(SANE_Int) * (4 + 1)); if (dev->depth_list == NULL) { DBG(1, "out of memory (line %d)\n", __LINE__); return SANE_STATUS_NO_MEM; @@ -776,9 +778,12 @@ e2_discover_capabilities(Epson_Scanner *s) /* maximum depth discovery */ DBG(3, "discovering max depth, NAKs are expected\n"); - if (dev->maxDepth >= 16 || dev->maxDepth == 0) { - if (esci_set_data_format(s, 16) == SANE_STATUS_GOOD) - e2_add_depth(dev, 16); + /* add default depth */ + e2_add_depth(dev, 8); + + if (dev->maxDepth >= 12 || dev->maxDepth == 0) { + if (esci_set_data_format(s, 12) == SANE_STATUS_GOOD) + e2_add_depth(dev, 12); } if (dev->maxDepth >= 14 || dev->maxDepth == 0) { @@ -786,14 +791,11 @@ e2_discover_capabilities(Epson_Scanner *s) e2_add_depth(dev, 14); } - if (dev->maxDepth >= 12 || dev->maxDepth == 0) { - if (esci_set_data_format(s, 12) == SANE_STATUS_GOOD) - e2_add_depth(dev, 12); + if (dev->maxDepth >= 16 || dev->maxDepth == 0) { + if (esci_set_data_format(s, 16) == SANE_STATUS_GOOD) + e2_add_depth(dev, 16); } - /* add default depth */ - e2_add_depth(dev, 8); - DBG(1, "maximum supported color depth: %d\n", dev->maxDepth); /* @@ -1742,6 +1744,8 @@ e2_ext_read(struct Epson_Scanner *s) SANE_Status status = SANE_STATUS_GOOD; ssize_t buf_len = 0, read; + DBG(18, "%s: begin\n", __func__); + /* did we passed everything we read to sane? */ if (s->ptr == s->end) { @@ -1765,10 +1769,12 @@ e2_ext_read(struct Epson_Scanner *s) /* receive image data + error code */ read = e2_recv(s, s->buf, buf_len + 1, &status); - DBG(18, "%s: read %lu bytes\n", __func__, (unsigned long) read); + DBG(18, "%s: read %lu bytes, status: %d\n", __func__, (unsigned long) read, status); - if (read != buf_len + 1) - return SANE_STATUS_IO_ERROR; + if (status != SANE_STATUS_GOOD) { + e2_cancel(s); + return status; + } if (e2_dev_model(dev, "GT-8200") || e2_dev_model(dev, "Perfection1650")) { /* See http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=597922#127 */ diff --git a/backend/epson2.c b/backend/epson2.c index e023010..b1eda33 100644 --- a/backend/epson2.c +++ b/backend/epson2.c @@ -977,7 +977,7 @@ init_options(Epson_Scanner *s) s->opt[OPT_MODE].size = max_string_size(mode_list); s->opt[OPT_MODE].constraint_type = SANE_CONSTRAINT_STRING_LIST; s->opt[OPT_MODE].constraint.string_list = mode_list; - s->val[OPT_MODE].w = 0; /* Binary */ + s->val[OPT_MODE].w = 0; /* Lineart */ /* disable infrared on unsupported scanners */ if (!e2_model(s, "GT-X800") && !e2_model(s, "GT-X700") && !e2_model(s, "GT-X900")) @@ -988,14 +988,13 @@ init_options(Epson_Scanner *s) s->opt[OPT_BIT_DEPTH].title = SANE_TITLE_BIT_DEPTH; s->opt[OPT_BIT_DEPTH].desc = SANE_DESC_BIT_DEPTH; s->opt[OPT_BIT_DEPTH].type = SANE_TYPE_INT; - s->opt[OPT_BIT_DEPTH].unit = SANE_UNIT_NONE; + s->opt[OPT_BIT_DEPTH].unit = SANE_UNIT_BIT; s->opt[OPT_BIT_DEPTH].constraint_type = SANE_CONSTRAINT_WORD_LIST; s->opt[OPT_BIT_DEPTH].constraint.word_list = s->hw->depth_list; - s->opt[OPT_BIT_DEPTH].cap |= SANE_CAP_INACTIVE; - s->val[OPT_BIT_DEPTH].w = s->hw->depth_list[1]; /* the first "real" element is the default */ + s->val[OPT_BIT_DEPTH].w = 8; /* default to 8 bit */ - if (s->hw->depth_list[0] == 1) /* only one element in the list -> hide the option */ - s->opt[OPT_BIT_DEPTH].cap |= SANE_CAP_INACTIVE; + /* default is Lineart, disable depth selection */ + s->opt[OPT_BIT_DEPTH].cap |= SANE_CAP_INACTIVE; /* halftone */ s->opt[OPT_HALFTONE].name = SANE_NAME_HALFTONE; @@ -1535,6 +1534,8 @@ sane_close(SANE_Handle handle) int i; Epson_Scanner *s; + DBG(1, "* %s\n", __func__); + /* * XXX Test if there is still data pending from * the scanner. If so, then do a cancel @@ -1909,6 +1910,8 @@ setvalue(SANE_Handle handle, SANE_Int option, void *value, SANE_Int *info) sval->w = optindex; + DBG(17, "%s: setting mode to %d\n", __func__, optindex); + /* halftoning available only on bw scans */ if (s->hw->cmd->set_halftoning != 0) setOptionState(s, mode_params[optindex].depth == 1, @@ -1923,16 +1926,18 @@ setvalue(SANE_Handle handle, SANE_Int option, void *value, SANE_Int *info) /* if binary, then disable the bit depth selection */ if (optindex == 0) { + DBG(17, "%s: disabling bit depth selection\n", __func__); s->opt[OPT_BIT_DEPTH].cap |= SANE_CAP_INACTIVE; } else { - if (s->hw->depth_list[0] == 1) - s->opt[OPT_BIT_DEPTH].cap |= - SANE_CAP_INACTIVE; - else { - s->opt[OPT_BIT_DEPTH].cap &= - ~SANE_CAP_INACTIVE; - s->val[OPT_BIT_DEPTH].w = - mode_params[optindex].depth; + if (s->hw->depth_list[0] == 1) { + DBG(17, "%s: only one depth is available\n", __func__); + s->opt[OPT_BIT_DEPTH].cap |= SANE_CAP_INACTIVE; + } else { + + DBG(17, "%s: enabling bit depth selection\n", __func__); + + s->opt[OPT_BIT_DEPTH].cap &= ~SANE_CAP_INACTIVE; + s->val[OPT_BIT_DEPTH].w = mode_params[optindex].depth; } } @@ -2077,7 +2082,10 @@ sane_start(SANE_Handle handle) Epson_Device *dev = s->hw; SANE_Status status; - DBG(5, "%s\n", __func__); + DBG(5, "* %s\n", __func__); + + s->eof = SANE_FALSE; + s->canceling = SANE_FALSE; /* check if we just have finished working with the ADF */ status = e2_check_adf(s); @@ -2202,9 +2210,7 @@ sane_start(SANE_Handle handle) if (s->buf == NULL) return SANE_STATUS_NO_MEM; - s->eof = SANE_FALSE; s->ptr = s->end = s->buf; - s->canceling = SANE_FALSE; /* feed the first sheet in the ADF */ if (dev->ADF && dev->use_extension && dev->cmd->feed) { @@ -2275,8 +2281,14 @@ sane_read(SANE_Handle handle, SANE_Byte *data, SANE_Int max_length, SANE_Status status; Epson_Scanner *s = (Epson_Scanner *) handle; - if (s->buf == NULL || s->canceling) - return SANE_STATUS_CANCELLED; + DBG(18, "* %s: eof: %d, canceling: %d\n", + __func__, s->eof, s->canceling); + + /* sane_read called before sane_start? */ + if (s->buf == NULL) { + DBG(1, "%s: buffer is NULL", __func__); + return SANE_STATUS_INVAL; + } *length = 0; @@ -2285,9 +2297,12 @@ sane_read(SANE_Handle handle, SANE_Byte *data, SANE_Int max_length, else status = e2_block_read(s); - if (status == SANE_STATUS_CANCELLED) { + /* The scanning operation might be canceled by the scanner itself + * or the fronted program + */ + if (status == SANE_STATUS_CANCELLED || s->canceling) { e2_scan_finish(s); - return status; + return SANE_STATUS_CANCELLED; } /* XXX if FS G and STATUS_IOERR, use e2_check_extended_status */ @@ -2298,9 +2313,9 @@ sane_read(SANE_Handle handle, SANE_Byte *data, SANE_Int max_length, e2_copy_image_data(s, data, max_length, length); - DBG(18, "%d lines read, eof: %d, status: %d\n", + DBG(18, "%d lines read, eof: %d, canceling: %d, status: %d\n", *length / s->params.bytes_per_line, - s->eof, status); + s->canceling, s->eof, status); /* continue reading if appropriate */ if (status == SANE_STATUS_GOOD) @@ -2323,6 +2338,8 @@ sane_cancel(SANE_Handle handle) { Epson_Scanner *s = (Epson_Scanner *) handle; + DBG(1, "* %s\n", __func__); + s->canceling = SANE_TRUE; } diff --git a/backend/epson2.h b/backend/epson2.h index bb6c9e0..8650f01 100644 --- a/backend/epson2.h +++ b/backend/epson2.h @@ -346,7 +346,7 @@ struct Epson_Device SANE_Bool color_shuffle; /* does this scanner need color shuffling */ SANE_Int maxDepth; /* max. color depth */ - SANE_Word *depth_list; + SANE_Int *depth_list; SANE_Int optical_res; /* optical resolution */ SANE_Int max_line_distance; diff --git a/backend/epsonds-cmd.c b/backend/epsonds-cmd.c new file mode 100644 index 0000000..5fb1f9d --- /dev/null +++ b/backend/epsonds-cmd.c @@ -0,0 +1,899 @@ +/* + * epsonds-cmd.c - Epson ESC/I-2 routines. + * + * Copyright (C) 2015 Tower Technologies + * Author: Alessandro Zummo + * + * This file is part of the SANE package. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation, version 2. + */ + +#define DEBUG_DECLARE_ONLY + +#include "sane/config.h" +#include +#include /* sleep */ + +#include "epsonds.h" +#include "epsonds-io.h" +#include "epsonds-cmd.h" +#include "epsonds-ops.h" + +static SANE_Status +esci2_parse_block(char *buf, int len, void *userdata, SANE_Status (*cb)(void *userdata, char *token, int len)) +{ + SANE_Status status = SANE_STATUS_GOOD; + SANE_Status delayed_status = SANE_STATUS_GOOD; + + + char *start = buf; + char *end = (buf + len) - 1; + + /* 0 : # + * 1-3: param + * 4- : data + */ + + while (1) { + + char param[4]; + + while (*start != '#' && start < end) + start++; + + if (*start != '#') + break; + + param[0] = *++start; + param[1] = *++start; + param[2] = *++start; + param[3] = '\0'; + + if (strncmp("---", param, 3) == 0) + break; + + /* ugly hack to skip over GMT in RESA */ + if (strncmp("GMT", param, 3) == 0 && *(start + 5) == 'h') { + start = start + 4 + 0x100; + continue; + } + + /* find the end of the token */ + { + int tlen; + char *next = start; + + while (*next != '#' && *next != 0x00 && next < end) + next++; + + tlen = next - start - 1; + + if (cb) { + status = cb(userdata, start - 2, tlen); + if (status != SANE_STATUS_GOOD) { + delayed_status = status; + } + } + + start = next; + } + } + + if (delayed_status != SANE_STATUS_GOOD) + return delayed_status; + + return status; +} + +static SANE_Bool +esci2_check_header(const char *cmd, const char *buf, unsigned int *more) +{ + int err; + + *more = 0; + + if (strncmp(cmd, buf, 4) != 0) { + + if (strncmp("UNKN", buf, 4) == 0) { + DBG(1, "UNKN reply code received\n"); + } else if (strncmp("INVD", buf, 4) == 0) { + DBG(1, "INVD reply code received\n"); + } else { + DBG(1, "%c%c%c%c, unexpected reply code\n", buf[0], buf[1], buf[2], buf[3]); + } + + return 0; + } + + /* INFOx0000100#.... */ + + /* read the answer len */ + if (buf[4] != 'x') { + DBG(1, "unknown type in header: %c\n", buf[4]); + return 0; + } + + err = sscanf(&buf[5], "%x#", more); + if (err != 1) { + DBG(1, "cannot decode length from header\n"); + return 0; + } + + return 1; +} + +static SANE_Status esci2_cmd(epsonds_scanner* s, + char *cmd, size_t len, + char *payload, size_t plen, + void *userdata, SANE_Status (*cb)(void *userdata, char *token, int len)) +{ + SANE_Status status; + unsigned int more; + char rbuf[64]; + + DBG(8, "%s: %4s len %lu, payload len: %lu\n", __func__, cmd, len, plen); + + if (len < 12) { + DBG(1, "%s: command is too short (%lu)\n", __func__, len); + return SANE_STATUS_INVAL; + } + + /* merge the payload size and send the RequestBlock */ + if (payload && plen) { + + sprintf(rbuf, "%4.4sx%07x", cmd, (unsigned int)plen); + + DBG(8, " %s (%d)\n", rbuf, plen); + + eds_send(s, rbuf, 12, &status); + + } else { + eds_send(s, cmd, len, &status); + } + + if (status != SANE_STATUS_GOOD) { + return status; + } + + /* send ParameterBlock */ + if (payload && plen) { + + eds_send(s, payload, plen, &status); + if (status != SANE_STATUS_GOOD) { + return status; + } + } + + /* receive DataHeaderBlock */ + memset(rbuf, 0x00, sizeof(rbuf)); + + eds_recv(s, rbuf, 64, &status); + if (status != SANE_STATUS_GOOD) { + return status; + } + + /* rxbuf holds the DataHeaderBlock, which should be + * parsed to know if we need to read more data + */ + if (!esci2_check_header(cmd, rbuf, &more)) { + return SANE_STATUS_IO_ERROR; + } + + /* parse the received header block */ + if (cb) { + status = esci2_parse_block(rbuf + 12, 64 - 12, userdata, cb); + if (status != SANE_STATUS_GOOD && status != SANE_STATUS_DEVICE_BUSY) { + DBG(1, "%s: %4s error while parsing received header\n", __func__, cmd); + } + } + + /* header valid, get the data block if present */ + if (more) { + + char *pbuf = malloc(more); + if (pbuf) { + + ssize_t read = eds_recv(s, pbuf, more, &status); + if (read != more) { + } + + /* parse the received data block */ + if (cb) { + status = esci2_parse_block(pbuf, more, userdata, cb); + if (status != SANE_STATUS_GOOD) { + DBG(1, "%s: %4s error while parsing received data block\n", __func__, cmd); + } + } + + free(pbuf); + + } else { + return SANE_STATUS_NO_MEM; + } + } + + return status; +} + +static SANE_Status esci2_cmd_simple(epsonds_scanner* s, char *cmd, SANE_Status (*cb)(void *userdata, char *token, int len)) +{ + return esci2_cmd(s, cmd, 12, NULL, 0, s, cb); +} + +SANE_Status esci2_fin(epsonds_scanner *s) +{ + DBG(5, "%s\n", __func__); + + SANE_Status status = esci2_cmd_simple(s, "FIN x0000000", NULL); + s->locked = 0; + return status; +} + +SANE_Status esci2_can(epsonds_scanner *s) +{ + return esci2_cmd_simple(s, "CAN x0000000", NULL); +} + +static int decode_value(char *buf, int len) +{ + char tmp[10]; + + memcpy(tmp, buf, len); + tmp[len] = '\0'; + + if (buf[0] == 'd' && len == 4) { + return strtol(buf + 1, NULL, 10); + } else if (buf[0] == 'i' && len == 8) { + return strtol(buf + 1, NULL, 10); + } else if (buf[0] == 'x' && len == 8) { + return strtol(buf + 1, NULL, 16); + } else if (buf[0] == 'h' && len == 4) { + return strtol(buf + 1, NULL, 16); + } + + return -1; +} + +/* h000 */ +static char *decode_binary(char *buf) +{ + char tmp[6]; + + memcpy(tmp, buf, 4); + tmp[4] = '\0'; + + if (buf[0] != 'h') + return NULL; + + int hl = strtol(tmp + 1, NULL, 16); + if (hl) { + + char *v = malloc(hl + 1); + memcpy(v, buf + 4, hl); + v[hl] = '\0'; + + return v; + } + + return NULL; +} + +static char *decode_string(char *buf) +{ + char *s = decode_binary(buf); + if (s == NULL) + return NULL; + + /* trim white space at the end */ + char *p = s + strlen(s); + while (*--p == ' ') + *p = '\0'; + + return s; +} + +static void debug_token(int level, const char *func, char *token, int len) +{ + char *tdata = malloc(len + 1); + memcpy(tdata, token + 3, len); + tdata[len] = '\0'; + + DBG(level, "%s: %3.3s / %s / %d\n", func, token, tdata, len); + + free(tdata); +} + +static SANE_Status info_cb(void *userdata, char *token, int len) +{ + epsonds_scanner *s = (epsonds_scanner *)userdata; + + if (DBG_LEVEL >= 11) { + debug_token(DBG_LEVEL, __func__, token, len); + } + + /* pointer to the token's value */ + char *value = token + 3; + + /* nrd / nrdBUSY */ + + if (strncmp("nrd", token, 3) == 0) { + if (strncmp("BUSY", value, 4) == 0) { + return SANE_STATUS_DEVICE_BUSY; + } + } + + if (strncmp("PRD", token, 3) == 0) { + free(s->hw->model); + s->hw->model = decode_string(value); + s->hw->sane.model = s->hw->model; + DBG(1, " product: %s\n", s->hw->model); + /* we will free the string later */ + } + + if (strncmp("VER", token, 3) == 0) { + char *v = decode_string(value); + DBG(1, " version: %s\n", v); + free(v); + } + + if (strncmp("S/N", token, 3) == 0) { + char *v = decode_string(value); + DBG(1, " serial: %s\n", v); + free(v); + } + + if (strncmp("ADF", token, 3) == 0) { + + s->hw->has_adf = 1; + + if (len == 8) { + + if (strncmp("TYPEPAGE", value, len) == 0) { + DBG(1, " ADF: page type\n"); + } + + if (strncmp("TYPEFEED", value, len) == 0) { + DBG(1, " ADF: sheet feed type\n"); + } + + if (strncmp("DPLX1SCN", value, len) == 0) { + DBG(1, " ADF: duplex single pass\n"); + s->hw->adf_singlepass = 1; + } + + if (strncmp("DPLX2SCN", value, len) == 0) { + DBG(1, " ADF: duplex double pass\n"); + s->hw->adf_singlepass = 0; + } + + if (strncmp("FORDPF1N", value, len) == 0) { + DBG(1, " ADF: order is 1 to N\n"); + } + + if (strncmp("FORDPFN1", value, len) == 0) { + DBG(1, " ADF: order is N to 1\n"); + } + + if (strncmp("ALGNLEFT", value, len) == 0) { + DBG(1, " ADF: left aligned\n"); + s->hw->adf_alignment = 0; + } + + if (strncmp("ALGNCNTR", value, len) == 0) { + DBG(1, " ADF: center aligned\n"); + s->hw->adf_alignment = 1; + } + + if (strncmp("ALGNRIGT", value, len) == 0) { + DBG(1, " ADF: right aligned (not supported!)\n"); + s->hw->adf_alignment = 2; + } + } + + if (len == 4) { + + if (strncmp("PREF", value, len) == 0) { + DBG(1, " ADF: auto pre-feed\n"); + } + + if (strncmp("ASCN", value, len) == 0) { + DBG(1, " ADF: auto scan\n"); + } + + if (strncmp("RCVR", value, len) == 0) { + DBG(1, " ADF: auto recovery\n"); + } + } + + if (len == 20) { + + /* ADFAREAi0000850i0001400 */ + + if (strncmp("AREA", value, 4) == 0) { + + int min = decode_value(value + 4, 8); + int max = decode_value(value + 4 + 8, 8); + + DBG(1, " ADF: area %dx%d @ 100dpi\n", min, max); + } + + if (strncmp("AMIN", value, 4) == 0) { + + int min = decode_value(value + 4, 8); + int max = decode_value(value + 4 + 8, 8); + + DBG(1, " ADF: min %dx%d @ 100dpi\n", min, max); + } + + if (strncmp("AMAX", value, 4) == 0) { + + int min = decode_value(value + 4, 8); + int max = decode_value(value + 4 + 8, 8); + + DBG(1, " ADF: max %dx%d @ 100dpi\n", min, max); + + eds_set_adf_area(s->hw, min, max, 100); + } + } + + if (len == 12) { + + /* RESOi0000600 */ + + if (strncmp("RESO", value, 4) == 0) { + + int res = decode_value(value + 4, 8); + + DBG(1, " ADF: basic resolution is %d dpi\n", res); + } + + /* OVSNd025d035 */ + + if (strncmp("OVSN", value, 4) == 0) { + + int x = decode_value(value + 4, 4); + int y = decode_value(value + 4 + 4, 4); + + DBG(1, " ADF: overscan %dx%d @ 100dpi\n", x, y); + } + } + } + + if (strncmp("FB ", token, 3) == 0) { + + s->hw->has_fb = 1; + + if (len == 20) { + + /* AREAi0000850i0001400 */ + if (strncmp("AREA", value, 4) == 0) { + + int min = decode_value(value + 4, 8); + int max = decode_value(value + 4 + 8, 8); + + DBG(1, " FB: area %dx%d @ 100dpi\n", min, max); + + eds_set_fbf_area(s->hw, min, max, 100); + } + } + + if (len == 8) { + + if (strncmp("ALGNLEFT", value, len) == 0) { + DBG(1, " FB: left aligned\n"); + s->hw->fbf_alignment = 0; + } + + if (strncmp("ALGNCNTR", value, len) == 0) { + DBG(1, " FB: center aligned\n"); + s->hw->fbf_alignment = 1; + } + + if (strncmp("ALGNRIGT", value, len) == 0) { + DBG(1, " FB: right aligned (not supported!)\n"); + s->hw->fbf_alignment = 2; + } + } + + if (len == 12) { + + /* RESOi0000600 */ + + if (strncmp("RESO", value, 4) == 0) { + + int res = decode_value(value + 4, 8); + + DBG(1, " FB: basic resolution is %d dpi\n", res); + } + + /* OVSNd025d035 */ + + if (strncmp("OVSN", value, 4) == 0) { + + int x = decode_value(value + 4, 4); + int y = decode_value(value + 4 + 4, 4); + + DBG(1, " FB: overscan %dx%d @ 100dpi\n", x, y); + } + } + + if (len == 4) { + + if (strncmp("DETX", value, len) == 0) { + DBG(1, " FB: paper width detection\n"); + } + + if (strncmp("DETY", value, len) == 0) { + DBG(1, " FB: paper height detection\n"); + } + } + } + + return SANE_STATUS_GOOD; +} + +SANE_Status esci2_info(epsonds_scanner *s) +{ + DBG(1, "= gathering device information\n"); + + SANE_Status status; + int i = 4; + + do { + status = esci2_cmd_simple(s, "INFOx0000000", &info_cb); + if (status == SANE_STATUS_DEVICE_BUSY) { + sleep(2); + } + + i--; + + } while (status == SANE_STATUS_DEVICE_BUSY && i); + + return status; +} + +/* CAPA */ + +static SANE_Status capa_cb(void *userdata, char *token, int len) +{ + epsonds_scanner *s = (epsonds_scanner *)userdata; + + char *value = token + 3; + + if (DBG_LEVEL >= 11) { + debug_token(DBG_LEVEL, __func__, token, len); + } + + if (len == 4) { + + if (strncmp("ADFDPLX", token, 3 + 4) == 0) { + DBG(1, " ADF: duplex\n"); + s->hw->adf_is_duplex = 1; + } + + if (strncmp("ADFSKEW", token, 3 + 4) == 0) { + DBG(1, " ADF: skew correction\n"); + s->hw->adf_has_skew = 1; + } + + if (strncmp("ADFOVSN", token, 3 + 4) == 0) { + DBG(1, " ADF: overscan\n"); + } + + if (strncmp("ADFPEDT", token, 3 + 4) == 0) { + DBG(1, " ADF: paper end detection\n"); + } + + if (strncmp("ADFLOAD", token, 3 + 4) == 0) { + DBG(1, " ADF: paper load\n"); + s->hw->adf_has_load = 1; + } + + if (strncmp("ADFEJCT", token, 3 + 4) == 0) { + DBG(1, " ADF: paper eject\n"); + s->hw->adf_has_eject = 1; + } + + if (strncmp("ADFCRP ", token, 3 + 4) == 0) { + DBG(1, " ADF: image cropping\n"); + } + + if (strncmp("ADFFAST", token, 3 + 4) == 0) { + DBG(1, " ADF: fast mode available\n"); + } + + if (strncmp("ADFDFL1", token, 3 + 4) == 0) { + DBG(1, " ADF: double feed detection\n"); + } + } + + if (len == 8 && strncmp("ADFDFL1DFL2", token, 3 + 4) == 0) { + DBG(1, " ADF: double feed detection (high sensitivity)\n"); + } + + if (strncmp("FMT", token, 3) == 0) { + + /* a bit ugly... */ + + if (len >= 8) { + if (strncmp("RAW ", value + 4, 4) == 0) { + s->hw->has_raw = 1; + } + } + + if (len >= 12) { + if (strncmp("RAW ", value + 8, 4) == 0) { + s->hw->has_raw = 1; + } + } + } + + /* RSMRANGi0000050i0000600 */ + + if (strncmp("RSMRANG", token, 3 + 4) == 0) { + + char *p = token + 3 + 4; + + if (p[0] == 'i') { + + int min = decode_value(p, 8); + int max = decode_value(p + 8, 8); + + eds_set_resolution_range(s->hw, min, max); + + DBG(1, "resolution min/max %d/%d\n", min, max); + } + } + + /* RSMLISTi0000300i0000600 */ + + if (strncmp("RSMLIST", token, 3 + 4) == 0) { + + char *p = token + 3 + 4; + + if (p[0] == 'i') { + + int i; + int count = (len - 4) / 8; + + for (i = 0; i < count; i++) { + + eds_add_resolution(s->hw, decode_value(p, 8)); + p += 8; + } + } + } + + return SANE_STATUS_GOOD; +} + +SANE_Status esci2_capa(epsonds_scanner *s) +{ + return esci2_cmd_simple(s, "CAPAx0000000", &capa_cb); +} + +/* STAT */ + +static SANE_Status stat_cb(void *userdata, char *token, int len) +{ +/* + epsonds_scanner *s = (epsonds_scanner *)userdata; + char *value = token + 3; +*/ + userdata = userdata; + + if (DBG_LEVEL >= 11) { + debug_token(DBG_LEVEL, __func__, token, len); + } + + return SANE_STATUS_GOOD; +} + +SANE_Status esci2_stat(epsonds_scanner *s) +{ + return esci2_cmd_simple(s, "STATx0000000", &stat_cb); +} + +/* RESA */ + +static SANE_Status resa_cb(void *userdata, char *token, int len) +{ + /* epsonds_scanner *s = (epsonds_scanner *)userdata; */ + + userdata = userdata; + + if (DBG_LEVEL >= 11) { + debug_token(DBG_LEVEL, __func__, token, len); + } + + return SANE_STATUS_GOOD; +} + +SANE_Status esci2_resa(epsonds_scanner *s) +{ + return esci2_cmd_simple(s, "RESAx0000000", &resa_cb); +} + +/* PARA */ + +static SANE_Status para_cb(void *userdata, char *token, int len) +{ + if (DBG_LEVEL >= 11) { + debug_token(DBG_LEVEL, __func__, token, len); + } + + userdata = userdata; + + if (strncmp("par", token, 3) == 0) { + if (strncmp("FAIL", token + 3, 4) == 0) { + DBG(1, "%s: parameter setting failed\n", __func__); + return SANE_STATUS_INVAL; + } + } + + return SANE_STATUS_GOOD; +} + +SANE_Status esci2_para(epsonds_scanner *s, char *parameters) +{ + DBG(8, "%s: %s\n", __func__, parameters); + return esci2_cmd(s, "PARAx0000000", 12, parameters, strlen(parameters), NULL, ¶_cb); +} + +SANE_Status esci2_mech(epsonds_scanner *s, char *parameters) +{ + DBG(8, "%s: %s\n", __func__, parameters); + return esci2_cmd(s, "MECHx0000000", 12, parameters, strlen(parameters), NULL, ¶_cb); +} + +SANE_Status esci2_trdt(epsonds_scanner *s) +{ + return esci2_cmd_simple(s, "TRDTx0000000", NULL); +} + + +static SANE_Status img_cb(void *userdata, char *token, int len) +{ + struct epsonds_scanner *s = userdata; + + if (DBG_LEVEL >= 11) { + debug_token(DBG_LEVEL, __func__, token, len); + } + + /* psti0000256i0000000i0000945 / 24 */ + + /* integer comparison first so it's faster */ + if (len == 24 && strncmp("pst", token, 3) == 0) { + + s->dummy = decode_value(token + 3 + 8, 8); + + DBG(10, "%s: pst width: %d, height: %d, dummy: %d\n", + __func__, + decode_value(token + 3, 8), + decode_value(token + 3 + 8 + 8, 8), + s->dummy); + + return SANE_STATUS_GOOD; + } + + if (len == 16 && strncmp("pen", token, 3) == 0) { + DBG(10, "%s: page end\n", __func__); + s->eof = 1; + return SANE_STATUS_EOF; + } + + /* typIMGA or typIMGB */ + if (len == 4 && strncmp("typ", token, 3) == 0) { + + if (token[6] == 'B') + s->backside = 1; + else + s->backside = 0; + + return SANE_STATUS_GOOD; + } + + if (strncmp("err", token, 3) == 0) { + + s->scanning = 0; + + char *option = token + 3; /* ADF, TPU, FB */ + char *cause = token + 3 + 4; /* OPN, PJ, PE, ERR, LTF, LOCK, DFED, DTCL, AUT, PERM */ + + DBG(1, "%s: error on option %3.3s, cause %4.4s\n", + __func__, option, cause); + + if (cause[0] == 'P' && cause[1] == 'J') + return SANE_STATUS_JAMMED; + + if (cause[0] == 'P' && cause[1] == 'E') + return SANE_STATUS_NO_DOCS; + + if (cause[0] == 'O' && cause[1] == 'P' && cause[2] == 'N') + return SANE_STATUS_COVER_OPEN; + + return SANE_STATUS_IO_ERROR; + } + + if (len == 4 && strncmp("atnCAN ", token, 3 + 4) == 0) { + DBG(1, "%s: cancel request\n", __func__); + s->canceling = 1; + s->scanning = 0; + return SANE_STATUS_CANCELLED; + } + + if (len == 4 && strncmp("lftd000", token, 3 + 4) == 0) { + s->scanning = 0; + } + + return SANE_STATUS_GOOD; +} + + +SANE_Status +esci2_img(struct epsonds_scanner *s, SANE_Int *length) +{ + SANE_Status status = SANE_STATUS_GOOD; + + *length = 0; + + if (s->canceling) + return SANE_STATUS_CANCELLED; + + /* request image data */ + eds_send(s, "IMG x0000000", 12, &status); + if (status != SANE_STATUS_GOOD) { + return status; + } + + /* receive DataHeaderBlock */ + memset(s->buf, 0x00, 64); + eds_recv(s, s->buf, 64, &status); + if (status != SANE_STATUS_GOOD) { + return status; + } + + /* check if we need to read any image data */ + unsigned int more = 0; + if (!esci2_check_header("IMG ", (char *)s->buf, &more)) { + return SANE_STATUS_IO_ERROR; + } + + /* this handles eof and errors */ + SANE_Status parse_status = esci2_parse_block((char *)s->buf + 12, 64 - 12, s, &img_cb); + + /* no more data? return using the status of the esci2_parse_block + * call, which might hold other error conditions. + */ + if (!more) { + return parse_status; + } + + /* ALWAYS read image data */ + ssize_t read = eds_recv(s, s->buf, more, &status); + if (status != SANE_STATUS_GOOD) { + return status; + } + + if (read != more) { + return SANE_STATUS_IO_ERROR; + } + + /* handle esci2_parse_block errors */ + if (parse_status != SANE_STATUS_GOOD) { + return parse_status; + } + + DBG(15, "%s: read %lu bytes, status: %d\n", __func__, (unsigned long) read, status); + + *length = read; + + if (s->canceling) { + return SANE_STATUS_CANCELLED; + } + + return SANE_STATUS_GOOD; +} diff --git a/backend/epsonds-cmd.h b/backend/epsonds-cmd.h new file mode 100644 index 0000000..923e811 --- /dev/null +++ b/backend/epsonds-cmd.h @@ -0,0 +1,29 @@ +/* + * epsonds-cmd.h - Epson ESC/I-2 routines. + * + * Copyright (C) 2015 Tower Technologies + * Author: Alessandro Zummo + * + * This file is part of the SANE package. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation, version 2. + */ + +#ifndef epsonds_cmd_h +#define epsonds_cmd_h + +SANE_Status esci2_info(epsonds_scanner *s); +SANE_Status esci2_fin(epsonds_scanner *s); +SANE_Status esci2_can(epsonds_scanner *s); +SANE_Status esci2_capa(epsonds_scanner *s); +SANE_Status esci2_resa(epsonds_scanner *s); +SANE_Status esci2_stat(epsonds_scanner *s); +SANE_Status esci2_para(epsonds_scanner *s, char *parameters); +SANE_Status esci2_mech(epsonds_scanner *s, char *parameters); +SANE_Status esci2_trdt(epsonds_scanner *s); +SANE_Status esci2_img(struct epsonds_scanner *s, SANE_Int *length) ; + +#endif + diff --git a/backend/epsonds-io.c b/backend/epsonds-io.c new file mode 100644 index 0000000..28bacfc --- /dev/null +++ b/backend/epsonds-io.c @@ -0,0 +1,177 @@ +/* + * epsonds-io.c - Epson ESC/I-2 driver, low level I/O. + * + * Copyright (C) 2015 Tower Technologies + * Author: Alessandro Zummo + * + * This file is part of the SANE package. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation, version 2. + */ + +#define DEBUG_DECLARE_ONLY + +#include "sane/config.h" +#include +#include /* sleep */ + +#include "epsonds.h" +#include "epsonds-io.h" + +size_t eds_send(epsonds_scanner *s, void *buf, size_t length, SANE_Status *status) +{ + DBG(32, "%s: size = %lu\n", __func__, (u_long) length); + + if (length == 2) { + + char *cmd = buf; + + switch (cmd[0]) { + case FS: + DBG(9, "%s: FS %c\n", __func__, cmd[1]); + break; + } + } + + if (s->hw->connection == SANE_EPSONDS_NET) { + /* XXX */ + } else if (s->hw->connection == SANE_EPSONDS_USB) { + + size_t n = length; + + *status = sanei_usb_write_bulk(s->fd, buf, &n); + + return n; + } + + /* never reached */ + + *status = SANE_STATUS_INVAL; + + return 0; +} + +size_t eds_recv(epsonds_scanner *s, void *buf, size_t length, SANE_Status *status) +{ + size_t n = 0; + + DBG(30, "%s: size = %ld, buf = %p\n", __func__, (long) length, buf); + + if (s->hw->connection == SANE_EPSONDS_NET) { + /* XXX */ + } else if (s->hw->connection == SANE_EPSONDS_USB) { + + /* !!! only report an error if we don't read anything */ + + n = length; + *status = sanei_usb_read_bulk(s->fd, (SANE_Byte *)buf, + (size_t *) &n); + if (n > 0) + *status = SANE_STATUS_GOOD; + } + + if (n < length) { + DBG(1, "%s: expected = %lu, got = %ld, canceling: %d\n", __func__, + (u_long)length, (long)n, s->canceling); + + *status = SANE_STATUS_IO_ERROR; + } + + return n; +} + +/* Simple function to exchange a fixed amount of data with the scanner */ + +SANE_Status eds_txrx(epsonds_scanner* s, char *txbuf, size_t txlen, + char *rxbuf, size_t rxlen) +{ + SANE_Status status; + size_t done; + + done = eds_send(s, txbuf, txlen, &status); + if (status != SANE_STATUS_GOOD) { + DBG(1, "%s: tx err, %s\n", __func__, sane_strstatus(status)); + return status; + } + + if (done != txlen) { + DBG(1, "%s: tx err, short write\n", __func__); + return SANE_STATUS_IO_ERROR; + } + + done = eds_recv(s, rxbuf, rxlen, &status); + if (status != SANE_STATUS_GOOD) { + DBG(1, "%s: rx err, %s\n", __func__, sane_strstatus(status)); + } + + return status; +} + +/* This function should be used to send codes that only requires the scanner + * to give back an ACK or a NAK, namely FS X or FS Y + */ + +SANE_Status eds_control(epsonds_scanner *s, void *buf, size_t buf_size) +{ + char result; + SANE_Status status; + + DBG(12, "%s: size = %lu\n", __func__, (u_long) buf_size); + + status = eds_txrx(s, buf, buf_size, &result, 1); + if (status != SANE_STATUS_GOOD) { + DBG(1, "%s: failed, %s\n", __func__, sane_strstatus(status)); + return status; + } + + if (result == ACK) + return SANE_STATUS_GOOD; + + if (result == NAK) { + DBG(3, "%s: NAK\n", __func__); + return SANE_STATUS_INVAL; + } + + DBG(1, "%s: result is neither ACK nor NAK but 0x%02x\n", + __func__, result); + + return SANE_STATUS_INVAL; +} + +SANE_Status eds_fsy(epsonds_scanner *s) +{ + return eds_control(s, "\x1CY", 2); +} + +SANE_Status eds_fsx(epsonds_scanner *s) +{ + SANE_Status status = eds_control(s, "\x1CX", 2); + if (status == SANE_STATUS_GOOD) { + s->locked = 1; + } + + return status; +} + +SANE_Status eds_lock(epsonds_scanner *s) +{ + SANE_Status status; + + DBG(5, "%s\n", __func__); + + if (s->hw->connection == SANE_EPSONDS_USB) { + sanei_usb_set_timeout(USB_SHORT_TIMEOUT); + } + + status = eds_fsx(s); + + if (s->hw->connection == SANE_EPSONDS_USB) { + sanei_usb_set_timeout(USB_TIMEOUT); + } + + return status; +} + + diff --git a/backend/epsonds-io.h b/backend/epsonds-io.h new file mode 100644 index 0000000..1a1b2b7 --- /dev/null +++ b/backend/epsonds-io.h @@ -0,0 +1,33 @@ +/* + * epsonds-io.h - Epson ESC/I-2 driver, low level I/O. + * + * Copyright (C) 2015 Tower Technologies + * Author: Alessandro Zummo + * + * This file is part of the SANE package. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation, version 2. + */ + +#ifndef epsonds_io_h +#define epsonds_io_h + +#define USB_TIMEOUT (6 * 1000) +#define USB_SHORT_TIMEOUT (1 * 800) + +size_t eds_send(epsonds_scanner *s, void *buf, size_t length, SANE_Status *status); +size_t eds_recv(epsonds_scanner *s, void *buf, size_t length, SANE_Status *status); + +SANE_Status eds_txrx(epsonds_scanner *s, char *txbuf, size_t txlen, + char *rxbuf, size_t rxlen); + +SANE_Status eds_control(epsonds_scanner *s, void *buf, size_t buf_size); + +SANE_Status eds_fsy(epsonds_scanner *s); +SANE_Status eds_fsx(epsonds_scanner *s); +SANE_Status eds_lock(epsonds_scanner *s); + +#endif + diff --git a/backend/epsonds-jpeg.c b/backend/epsonds-jpeg.c new file mode 100644 index 0000000..d825d99 --- /dev/null +++ b/backend/epsonds-jpeg.c @@ -0,0 +1,221 @@ +/* + * epsonds-jpeg.c - Epson ESC/I-2 driver, JPEG support. + * + * Copyright (C) 2015 Tower Technologies + * Author: Alessandro Zummo + * + * This file is part of the SANE package. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation, version 2. + */ + +#define DEBUG_DECLARE_ONLY + +#include + +#include "epsonds.h" +#include "epsonds-jpeg.h" +#include "epsonds-ops.h" + +#define min(A,B) (((A)<(B)) ? (A) : (B)) + +typedef struct +{ + struct jpeg_source_mgr pub; + + epsonds_scanner *s; + JOCTET *buffer; + + SANE_Byte *linebuffer; + SANE_Int linebuffer_size; + SANE_Int linebuffer_index; +} +epsonds_src_mgr; + +METHODDEF(void) +jpeg_init_source(j_decompress_ptr UNUSEDARG cinfo) +{ +} + +METHODDEF(void) +jpeg_term_source(j_decompress_ptr UNUSEDARG cinfo) +{ +} + +METHODDEF(boolean) +jpeg_fill_input_buffer(j_decompress_ptr cinfo) +{ + epsonds_src_mgr *src = (epsonds_src_mgr *)cinfo->src; + + /* read from the scanner or the ring buffer */ + + int avail = eds_ring_avail(src->s->current); + if (avail == 0) { + return FALSE; + } + + /* read from scanner if no data? */ + int size = min(1024, avail); + + eds_ring_read(src->s->current, src->buffer, size); + + src->pub.next_input_byte = src->buffer; + src->pub.bytes_in_buffer = size; + + return TRUE; +} + +METHODDEF (void) +jpeg_skip_input_data(j_decompress_ptr cinfo, long num_bytes) +{ + epsonds_src_mgr *src = (epsonds_src_mgr *)cinfo->src; + + if (num_bytes > 0) { + + while (num_bytes > (long)src->pub.bytes_in_buffer) { + num_bytes -= (long)src->pub.bytes_in_buffer; + jpeg_fill_input_buffer(cinfo); + } + + src->pub.next_input_byte += (size_t) num_bytes; + src->pub.bytes_in_buffer -= (size_t) num_bytes; + } +} + +SANE_Status +eds_jpeg_start(epsonds_scanner *s) +{ + epsonds_src_mgr *src; + + s->jpeg_cinfo.err = jpeg_std_error(&s->jpeg_err); + + jpeg_create_decompress(&s->jpeg_cinfo); + + s->jpeg_cinfo.src = (struct jpeg_source_mgr *)(*s->jpeg_cinfo.mem->alloc_small)((j_common_ptr)&s->jpeg_cinfo, + JPOOL_PERMANENT, sizeof(epsonds_src_mgr)); + + memset(s->jpeg_cinfo.src, 0x00, sizeof(epsonds_src_mgr)); + + src = (epsonds_src_mgr *)s->jpeg_cinfo.src; + src->s = s; + + src->buffer = (JOCTET *)(*s->jpeg_cinfo.mem->alloc_small)((j_common_ptr)&s->jpeg_cinfo, + JPOOL_PERMANENT, + 1024 * sizeof(JOCTET)); + + src->pub.init_source = jpeg_init_source; + src->pub.fill_input_buffer = jpeg_fill_input_buffer; + src->pub.skip_input_data = jpeg_skip_input_data; + src->pub.resync_to_restart = jpeg_resync_to_restart; + src->pub.term_source = jpeg_term_source; + src->pub.bytes_in_buffer = 0; + src->pub.next_input_byte = NULL; + + s->jpeg_header_seen = 0; + + return SANE_STATUS_GOOD; +} + +SANE_Status +eds_jpeg_read_header(epsonds_scanner *s) +{ + epsonds_src_mgr *src = (epsonds_src_mgr *)s->jpeg_cinfo.src; + + if (jpeg_read_header(&s->jpeg_cinfo, TRUE)) { + + s->jdst = sanei_jpeg_jinit_write_ppm(&s->jpeg_cinfo); + + if (jpeg_start_decompress(&s->jpeg_cinfo)) { + + DBG(3, "%s: w: %d, h: %d, components: %d\n", + __func__, + s->jpeg_cinfo.output_width, s->jpeg_cinfo.output_height, + s->jpeg_cinfo.output_components); + + int size = s->jpeg_cinfo.output_width * s->jpeg_cinfo.output_components * 1; + + src->linebuffer = (*s->jpeg_cinfo.mem->alloc_large)((j_common_ptr)&s->jpeg_cinfo, + JPOOL_PERMANENT, size); + + src->linebuffer_size = 0; + src->linebuffer_index = 0; + + s->jpeg_header_seen = 1; + + return SANE_STATUS_GOOD; + + } else { + DBG(0, "%s: decompression failed\n", __func__); + return SANE_STATUS_IO_ERROR; + } + } else { + DBG(0, "%s: cannot read JPEG header\n", __func__); + return SANE_STATUS_IO_ERROR; + } +} + +void +eds_jpeg_finish(epsonds_scanner *s) +{ + jpeg_destroy_decompress(&s->jpeg_cinfo); +} + +void +eds_jpeg_read(SANE_Handle handle, SANE_Byte *data, + SANE_Int max_length, SANE_Int *length) +{ + epsonds_scanner *s = handle; + + *length = 0; + + struct jpeg_decompress_struct cinfo = s->jpeg_cinfo; + epsonds_src_mgr *src = (epsonds_src_mgr *)s->jpeg_cinfo.src; + + /* copy from line buffer if available */ + if (src->linebuffer_size && src->linebuffer_index < src->linebuffer_size) { + + *length = src->linebuffer_size - src->linebuffer_index; + + if (*length > max_length) + *length = max_length; + + memcpy(data, src->linebuffer + src->linebuffer_index, *length); + src->linebuffer_index += *length; + + return; + } + + if (cinfo.output_scanline >= cinfo.output_height) { + *length = 0; + return; + } + + /* scanlines of decompressed data will be in s->jdst->buffer + * only one line at time is supported + */ + + int l = jpeg_read_scanlines(&cinfo, s->jdst->buffer, 1); + if (l == 0) { + return; + } + + /* from s->jdst->buffer to linebuffer + * linebuffer holds width * bytesperpixel + */ + + (*s->jdst->put_pixel_rows)(&cinfo, s->jdst, 1, (char *)src->linebuffer); + + *length = cinfo.output_width * cinfo.output_components * 1; + src->linebuffer_size = *length; + src->linebuffer_index = 0; + + if (*length > max_length) + *length = max_length; + + memcpy(data, src->linebuffer + src->linebuffer_index, *length); + src->linebuffer_index += *length; +} + + diff --git a/backend/epsonds-jpeg.h b/backend/epsonds-jpeg.h new file mode 100644 index 0000000..c54208e --- /dev/null +++ b/backend/epsonds-jpeg.h @@ -0,0 +1,19 @@ +/* + * epsonds.c - Epson ESC/I-2 driver, JPEG support. + * + * Copyright (C) 2015 Tower Technologies + * Author: Alessandro Zummo + * + * This file is part of the SANE package. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation, version 2. + */ + +#define UNUSEDARG __attribute__ ((unused)) + +SANE_Status eds_jpeg_start(epsonds_scanner *s); +void eds_jpeg_finish(epsonds_scanner *s); +SANE_Status eds_jpeg_read_header(epsonds_scanner *s); +void eds_jpeg_read(SANE_Handle handle, SANE_Byte *data, SANE_Int max_length, SANE_Int *length); diff --git a/backend/epsonds-ops.c b/backend/epsonds-ops.c new file mode 100644 index 0000000..94f1071 --- /dev/null +++ b/backend/epsonds-ops.c @@ -0,0 +1,474 @@ +/* + * epsonds-ops.c - Epson ESC/I-2 driver, support routines. + * + * Copyright (C) 2015 Tower Technologies + * Author: Alessandro Zummo + * + * This file is part of the SANE package. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation, version 2. + */ + +#define DEBUG_DECLARE_ONLY + +#include "sane/config.h" + +#include /* sleep */ +#ifdef HAVE_SYS_SELECT_H +#include +#endif + +#include "epsonds.h" +#include "epsonds-io.h" +#include "epsonds-ops.h" +#include "epsonds-cmd.h" + +extern struct mode_param mode_params[]; + +/* Define the different scan sources */ + +#define FBF_STR SANE_I18N("Flatbed") +#define TPU_STR SANE_I18N("Transparency Unit") +#define ADF_STR SANE_I18N("Automatic Document Feeder") + +extern SANE_String_Const source_list[]; + +void +eds_dev_init(epsonds_device *dev) +{ + dev->res_list = malloc(sizeof(SANE_Word)); + dev->res_list[0] = 0; + + dev->depth_list = malloc(sizeof(SANE_Word)); + dev->depth_list[0] = 0; +} + +SANE_Status +eds_dev_post_init(struct epsonds_device *dev) +{ + DBG(10, "%s\n", __func__); + + SANE_String_Const *source_list_add = source_list; + if (dev->has_fb) + *source_list_add++ = FBF_STR; + + if (dev->has_adf) + *source_list_add++ = ADF_STR; + + if (source_list[0] == 0 + || (dev->res_list[0] == 0 && dev->dpi_range.min == 0) + || dev->depth_list[0] == 0) { + + DBG(1, "something is wrong in the discovery process, aborting.\n"); + DBG(1, "sources: %ld, res: %d, depths: %d.\n", + source_list_add - source_list, dev->res_list[0], dev->depth_list[0]); + + return SANE_STATUS_INVAL; + } + + return SANE_STATUS_GOOD; +} + +SANE_Status +eds_add_resolution(epsonds_device *dev, int r) +{ + DBG(10, "%s: add (dpi): %d\n", __func__, r); + + /* first element is the list size */ + dev->res_list[0]++; + dev->res_list = realloc(dev->res_list, + (dev->res_list[0] + 1) * + sizeof(SANE_Word)); + if (dev->res_list == NULL) + return SANE_STATUS_NO_MEM; + + dev->res_list[dev->res_list[0]] = r; + + return SANE_STATUS_GOOD; +} + +SANE_Status +eds_set_resolution_range(epsonds_device *dev, int min, int max) +{ + DBG(10, "%s: set min/max (dpi): %d/%d\n", __func__, min, max); + + dev->dpi_range.min = min; + dev->dpi_range.max = max; + dev->dpi_range.quant = 1; + + return SANE_STATUS_GOOD; +} + +void +eds_set_fbf_area(epsonds_device *dev, int x, int y, int unit) +{ + if (x == 0 || y == 0) + return; + + dev->fbf_x_range.min = 0; + dev->fbf_x_range.max = SANE_FIX(x * MM_PER_INCH / unit); + dev->fbf_x_range.quant = 0; + + dev->fbf_y_range.min = 0; + dev->fbf_y_range.max = SANE_FIX(y * MM_PER_INCH / unit); + dev->fbf_y_range.quant = 0; + + DBG(5, "%s: %f,%f %f,%f %d [mm]\n", + __func__, + SANE_UNFIX(dev->fbf_x_range.min), + SANE_UNFIX(dev->fbf_y_range.min), + SANE_UNFIX(dev->fbf_x_range.max), + SANE_UNFIX(dev->fbf_y_range.max), unit); +} + +void +eds_set_adf_area(struct epsonds_device *dev, int x, int y, int unit) +{ + dev->adf_x_range.min = 0; + dev->adf_x_range.max = SANE_FIX(x * MM_PER_INCH / unit); + dev->adf_x_range.quant = 0; + + dev->adf_y_range.min = 0; + dev->adf_y_range.max = SANE_FIX(y * MM_PER_INCH / unit); + dev->adf_y_range.quant = 0; + + DBG(5, "%s: %f,%f %f,%f %d [mm]\n", + __func__, + SANE_UNFIX(dev->adf_x_range.min), + SANE_UNFIX(dev->adf_y_range.min), + SANE_UNFIX(dev->adf_x_range.max), + SANE_UNFIX(dev->adf_y_range.max), unit); +} + +void +eds_set_tpu_area(struct epsonds_device *dev, int x, int y, int unit) +{ + dev->tpu_x_range.min = 0; + dev->tpu_x_range.max = SANE_FIX(x * MM_PER_INCH / unit); + dev->tpu_x_range.quant = 0; + + dev->tpu_y_range.min = 0; + dev->tpu_y_range.max = SANE_FIX(y * MM_PER_INCH / unit); + dev->tpu_y_range.quant = 0; + + DBG(5, "%s: %f,%f %f,%f %d [mm]\n", + __func__, + SANE_UNFIX(dev->tpu_x_range.min), + SANE_UNFIX(dev->tpu_y_range.min), + SANE_UNFIX(dev->tpu_x_range.max), + SANE_UNFIX(dev->tpu_y_range.max), unit); +} + +SANE_Status +eds_add_depth(epsonds_device *dev, SANE_Word depth) +{ + DBG(5, "%s: add (bpp): %d\n", __func__, depth); + + /* > 8bpp not implemented yet */ + if (depth > 8) { + DBG(1, " not supported"); + return SANE_STATUS_GOOD; + } + + if (depth > dev->max_depth) + dev->max_depth = depth; + + /* first element is the list size */ + dev->depth_list[0]++; + dev->depth_list = realloc(dev->depth_list, + (dev->depth_list[0] + 1) * + sizeof(SANE_Word)); + + if (dev->depth_list == NULL) + return SANE_STATUS_NO_MEM; + + dev->depth_list[dev->depth_list[0]] = depth; + + return SANE_STATUS_GOOD; +} + +SANE_Status +eds_init_parameters(epsonds_scanner *s) +{ + int dpi, bytes_per_pixel; + + memset(&s->params, 0, sizeof(SANE_Parameters)); + + s->dummy = 0; + + dpi = s->val[OPT_RESOLUTION].w; + + if (SANE_UNFIX(s->val[OPT_BR_Y].w) == 0 || + SANE_UNFIX(s->val[OPT_BR_X].w) == 0) + return SANE_STATUS_INVAL; + + s->left = ((SANE_UNFIX(s->val[OPT_TL_X].w) / MM_PER_INCH) * + s->val[OPT_RESOLUTION].w) + 0.5; + + s->top = ((SANE_UNFIX(s->val[OPT_TL_Y].w) / MM_PER_INCH) * + s->val[OPT_RESOLUTION].w) + 0.5; + + s->params.pixels_per_line = + ((SANE_UNFIX(s->val[OPT_BR_X].w - + s->val[OPT_TL_X].w) / MM_PER_INCH) * dpi) + 0.5; + s->params.lines = + ((SANE_UNFIX(s->val[OPT_BR_Y].w - + s->val[OPT_TL_Y].w) / MM_PER_INCH) * dpi) + 0.5; + + DBG(5, "%s: tlx %f tly %f brx %f bry %f [mm]\n", + __func__, + SANE_UNFIX(s->val[OPT_TL_X].w), SANE_UNFIX(s->val[OPT_TL_Y].w), + SANE_UNFIX(s->val[OPT_BR_X].w), SANE_UNFIX(s->val[OPT_BR_Y].w)); + + DBG(5, "%s: tlx %d tly %d brx %d bry %d [dots @ %d dpi]\n", + __func__, s->left, s->top, + s->params.pixels_per_line, s->params.lines, dpi); + + /* center aligned? */ + if (s->hw->alignment == 1) { + + SANE_Int offset = ((SANE_UNFIX(s->hw->x_range->max) / MM_PER_INCH) * dpi) + 0.5; + + s->left += ((offset - s->params.pixels_per_line) / 2); + + DBG(5, "%s: centered to tlx %d tly %d brx %d bry %d [dots @ %d dpi]\n", + __func__, s->left, s->top, + s->params.pixels_per_line, s->params.lines, dpi); + } + + /* + * Calculate bytes_per_pixel and bytes_per_line for + * any color depths. + * + * The default color depth is stored in mode_params.depth: + */ + + if (mode_params[s->val[OPT_MODE].w].depth == 1) + s->params.depth = 1; + else + s->params.depth = s->val[OPT_DEPTH].w; + + /* this works because it can only be set to 1, 8 or 16 */ + bytes_per_pixel = s->params.depth / 8; + if (s->params.depth % 8) { /* just in case ... */ + bytes_per_pixel++; + } + + /* pixels_per_line is rounded to the next 8bit boundary */ + s->params.pixels_per_line = s->params.pixels_per_line & ~7; + + s->params.last_frame = SANE_TRUE; + + switch (s->val[OPT_MODE].w) { + case MODE_BINARY: + case MODE_GRAY: + s->params.format = SANE_FRAME_GRAY; + s->params.bytes_per_line = + s->params.pixels_per_line * s->params.depth / 8; + break; + case MODE_COLOR: + s->params.format = SANE_FRAME_RGB; + s->params.bytes_per_line = + 3 * s->params.pixels_per_line * bytes_per_pixel; + break; + } + + if (s->params.bytes_per_line == 0) { + DBG(1, "bytes_per_line is ZERO\n"); + return SANE_STATUS_INVAL; + } + + /* + * If (s->top + s->params.lines) is larger than the max scan area, reset + * the number of scan lines: + * XXX: precalculate the maximum scanning area elsewhere (use dev max_y) + */ + + if (SANE_UNFIX(s->val[OPT_BR_Y].w) / MM_PER_INCH * dpi < + (s->params.lines + s->top)) { + s->params.lines = + ((int) SANE_UNFIX(s->val[OPT_BR_Y].w) / MM_PER_INCH * + dpi + 0.5) - s->top; + } + + if (s->params.lines <= 0) { + DBG(1, "wrong number of lines: %d\n", s->params.lines); + return SANE_STATUS_INVAL; + } + + return SANE_STATUS_GOOD; +} + +void +eds_copy_image_from_ring(epsonds_scanner *s, SANE_Byte *data, SANE_Int max_length, + SANE_Int *length) +{ + int lines, available; + int hw_line_size = (s->params.bytes_per_line + s->dummy); + + /* trim max_length to a multiple of hw_line_size */ + max_length -= (max_length % hw_line_size); + + /* check available data */ + available = eds_ring_avail(s->current); + if (max_length > available) + max_length = available; + + lines = max_length / hw_line_size; + + DBG(18, "copying %d lines (%d, %d)\n", lines, s->params.bytes_per_line, s->dummy); + + /* need more data? */ + if (lines == 0) { + *length = 0; + return; + } + + *length = (lines * s->params.bytes_per_line); + + /* we need to copy one line at time, skipping + * dummy bytes at the end of each line + */ + + /* lineart */ + if (s->params.depth == 1) { + + while (lines--) { + + eds_ring_read(s->current, s->line_buffer, s->params.bytes_per_line); + eds_ring_skip(s->current, s->dummy); + + int i; + + SANE_Byte *p = s->line_buffer; + + for (i = 0; i < s->params.bytes_per_line; i++) { + *data++ = ~*p++; + } + } + + } else { /* gray and color */ + + while (lines--) { + + eds_ring_read(s->current, data, s->params.bytes_per_line); + eds_ring_skip(s->current, s->dummy); + + data += s->params.bytes_per_line; + + } + } +} + +SANE_Status eds_ring_init(ring_buffer *ring, SANE_Int size) +{ + ring->ring = realloc(ring->ring, size); + if (!ring->ring) { + return SANE_STATUS_NO_MEM; + } + + ring->size = size; + ring->fill = 0; + ring->end = ring->ring + size; + ring->wp = ring->rp = ring->ring; + + return SANE_STATUS_GOOD; +} + +SANE_Status eds_ring_write(ring_buffer *ring, SANE_Byte *buf, SANE_Int size) +{ + if (size > (ring->size - ring->fill)) { + DBG(1, "ring buffer full, requested: %d, available: %d\n", size, ring->size - ring->fill); + return SANE_STATUS_NO_MEM; + } + + SANE_Int tail = ring->end - ring->wp; + if (size < tail) { + + memcpy(ring->wp, buf, size); + + ring->wp += size; + ring->fill += size; + + } else { + + memcpy(ring->wp, buf, tail); + size -= tail; + + ring->wp = ring->ring; + memcpy(ring->wp, buf + tail, size); + + ring->wp += size; + ring->fill += (tail + size); + } + + return SANE_STATUS_GOOD; +} + +SANE_Int eds_ring_read(ring_buffer *ring, SANE_Byte *buf, SANE_Int size) +{ + DBG(18, "reading from ring, %d bytes available\n", (int)ring->fill); + + /* limit read to available */ + if (size > ring->fill) { + DBG(1, "not enough data in the ring, shouldn't happen\n"); + size = ring->fill; + } + + SANE_Int tail = ring->end - ring->rp; + if (size < tail) { + + memcpy(buf, ring->rp, size); + + ring->rp += size; + ring->fill -= size; + + return size; + + } else { + + memcpy(buf, ring->rp, tail); + size -= tail; + + ring->rp = ring->ring; + memcpy(buf + tail, ring->rp, size); + + ring->rp += size; + ring->fill -= (size + tail); + + return size + tail; + } +} + +SANE_Int eds_ring_skip(ring_buffer *ring, SANE_Int size) +{ + /* limit skip to available */ + if (size > ring->fill) + size = ring->fill; + + SANE_Int tail = ring->end - ring->rp; + if (size < tail) { + ring->rp += size; + } else { + + ring->rp = ring->ring + (size - tail); + } + + ring->fill -= size; + + return size; +} + +SANE_Int eds_ring_avail(ring_buffer *ring) +{ + return ring->fill; +} + +void eds_ring_flush(ring_buffer *ring) +{ + eds_ring_skip(ring, ring->fill); +} + + diff --git a/backend/epsonds-ops.h b/backend/epsonds-ops.h new file mode 100644 index 0000000..3f45393 --- /dev/null +++ b/backend/epsonds-ops.h @@ -0,0 +1,41 @@ +/* + * epsonds-ops.h - Epson ESC/I-2 driver. + * + * Copyright (C) 2015 Tower Technologies + * Author: Alessandro Zummo + * + * This file is part of the SANE package. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation, version 2. + */ + +#define e2_model(s,m) e2_dev_model((s)->hw,(m)) + +extern void eds_dev_init(epsonds_device *dev); +extern SANE_Status eds_dev_post_init(struct epsonds_device *dev); + +extern SANE_Status eds_add_resolution(epsonds_device *dev, int r); +extern SANE_Status eds_set_resolution_range(epsonds_device *dev, int min, int max); +extern void eds_set_fbf_area(epsonds_device *dev, int x, int y, int unit); +extern void eds_set_adf_area(epsonds_device *dev, int x, int y, int unit); +extern void eds_set_tpu_area(epsonds_device *dev, int x, int y, int unit); + +extern SANE_Status eds_add_depth(epsonds_device *dev, SANE_Word depth); +extern SANE_Status eds_discover_capabilities(epsonds_scanner *s); +extern SANE_Status eds_set_extended_scanning_parameters(epsonds_scanner *s); +extern SANE_Status eds_set_scanning_parameters(epsonds_scanner *s); +extern void eds_setup_block_mode(epsonds_scanner *s); +extern SANE_Status eds_init_parameters(epsonds_scanner *s); + +extern void eds_copy_image_from_ring(epsonds_scanner *s, SANE_Byte *data, SANE_Int max_length, + SANE_Int *length); + +extern SANE_Status eds_ring_init(ring_buffer *ring, SANE_Int size); +extern SANE_Status eds_ring_write(ring_buffer *ring, SANE_Byte *buf, SANE_Int size); +extern SANE_Int eds_ring_read(ring_buffer *ring, SANE_Byte *buf, SANE_Int size); +extern SANE_Int eds_ring_skip(ring_buffer *ring, SANE_Int size); +extern SANE_Int eds_ring_avail(ring_buffer *ring); +extern void eds_ring_flush(ring_buffer *ring) ; + diff --git a/backend/epsonds-usb.c b/backend/epsonds-usb.c new file mode 100644 index 0000000..c7e514c --- /dev/null +++ b/backend/epsonds-usb.c @@ -0,0 +1,33 @@ +/* + * epsonds-usb.c - Epson ESC/I-2 driver, USB device list. + * + * Copyright (C) 2015 Tower Technologies + * Author: Alessandro Zummo + * + * This file is part of the SANE package. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation, version 2. + */ + +#include "epsonds-usb.h" + +SANE_Word epsonds_usb_product_ids[] = { + 0x0145, /* DS-5500, DS-6500, DS-7500 */ + 0x0146, /* DS-50000, DS-60000, DS-70000 */ + 0x014c, /* DS-510 */ + 0x014d, /* DS-560 */ + 0x0150, /* DS-40 */ + 0x0152, /* DS-760, DS-860 */ + 0x0154, /* DS-520 */ + 0x08bc, /* PX-M7050 Series, WF-8510/8590 Series */ + 0x08cc, /* PX-M7050FX Series, WF-R8590 Series */ + 0 /* last entry - this is used for devices that are specified + in the config file as "usb " */ +}; + +int epsonds_get_number_of_ids(void) +{ + return sizeof (epsonds_usb_product_ids) / sizeof (SANE_Word); +} diff --git a/backend/epsonds-usb.h b/backend/epsonds-usb.h new file mode 100644 index 0000000..96c77b5 --- /dev/null +++ b/backend/epsonds-usb.h @@ -0,0 +1,24 @@ +/* + * epsonds-usb.h - Epson ESC/I-2 driver, USB device list. + * + * Copyright (C) 2015 Tower Technologies + * Author: Alessandro Zummo + * + * This file is part of the SANE package. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation, version 2. + */ + +#include "sane/sane.h" + +#ifndef _EPSONDS_USB_H_ +#define _EPSONDS_USB_H_ + +#define SANE_EPSONDS_VENDOR_ID (0x4b8) + +extern SANE_Word epsonds_usb_product_ids[]; +extern int epsonds_get_number_of_ids(void); + +#endif diff --git a/backend/epsonds.c b/backend/epsonds.c new file mode 100644 index 0000000..d16744f --- /dev/null +++ b/backend/epsonds.c @@ -0,0 +1,1434 @@ +/* + * epsonds.c - Epson ESC/I-2 driver. + * + * Copyright (C) 2015 Tower Technologies + * Author: Alessandro Zummo + * + * This file is part of the SANE package. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation, version 2. + */ + +#define EPSONDS_VERSION 1 +#define EPSONDS_REVISION 0 +#define EPSONDS_BUILD 35 + +/* debugging levels: + * + * 32 eds_send + * 30 eds_recv + * 20 sane_read and related + * 18 sane_read and related + * 17 setvalue, getvalue, control_option + * 16 + * 15 esci2_img + * 13 image_cb + * 12 eds_control + * 11 all received params + * 10 some received params + * 9 + * 8 esci2_xxx + * 7 open/close/attach + * 6 print_params + * 5 basic functions + * 3 JPEG decompressor + * 1 scanner info and capabilities + * 0 errors + */ + +#include "sane/config.h" + +#include + +#include "sane/saneopts.h" +#include "sane/sanei_config.h" + +#include "epsonds.h" +#include "epsonds-usb.h" +#include "epsonds-io.h" +#include "epsonds-cmd.h" +#include "epsonds-ops.h" +#include "epsonds-jpeg.h" + +/* + * Definition of the mode_param struct, that is used to + * specify the valid parameters for the different scan modes. + * + * The depth variable gets updated when the bit depth is modified. + */ + +struct mode_param mode_params[] = { + {0, 0x00, 0x30, 1}, + {0, 0x00, 0x30, 8}, + {1, 0x02, 0x00, 8}, + {0, 0x00, 0x30, 1} +}; + +static SANE_String_Const mode_list[] = { + SANE_VALUE_SCAN_MODE_LINEART, + SANE_VALUE_SCAN_MODE_GRAY, + SANE_VALUE_SCAN_MODE_COLOR, + NULL +}; + +static const SANE_String_Const adf_mode_list[] = { + SANE_I18N("Simplex"), + SANE_I18N("Duplex"), + NULL +}; + +/* Define the different scan sources */ + +#define FBF_STR SANE_I18N("Flatbed") +#define ADF_STR SANE_I18N("Automatic Document Feeder") + +/* order will be fixed: fb, adf, tpu */ +SANE_String_Const source_list[] = { + NULL, + NULL, + NULL, + NULL +}; + +/* + * List of pointers to devices - will be dynamically allocated depending + * on the number of devices found. + */ +static const SANE_Device **devlist; + +/* Some utility functions */ + +static size_t +max_string_size(const SANE_String_Const strings[]) +{ + size_t size, max_size = 0; + int i; + + for (i = 0; strings[i]; i++) { + size = strlen(strings[i]) + 1; + if (size > max_size) + max_size = size; + } + return max_size; +} + +static SANE_Status attach_one_usb(SANE_String_Const devname); + +static void +print_params(const SANE_Parameters params) +{ + DBG(6, "params.format = %d\n", params.format); + DBG(6, "params.last_frame = %d\n", params.last_frame); + DBG(6, "params.bytes_per_line = %d\n", params.bytes_per_line); + DBG(6, "params.pixels_per_line = %d\n", params.pixels_per_line); + DBG(6, "params.lines = %d\n", params.lines); + DBG(6, "params.depth = %d\n", params.depth); +} + +static void +close_scanner(epsonds_scanner *s) +{ + DBG(7, "%s: fd = %d\n", __func__, s->fd); + + if (s->fd == -1) + return; + + if (s->locked) { + DBG(7, " unlocking scanner\n"); + esci2_fin(s); + } + + if (s->hw->connection == SANE_EPSONDS_USB) { + sanei_usb_close(s->fd); + } + + free(s->front.ring); + free(s->back.ring); + free(s->line_buffer); + free(s); + + DBG(7, "%s: ZZZ\n", __func__); +} + +static SANE_Status +open_scanner(epsonds_scanner *s) +{ + SANE_Status status = SANE_STATUS_INVAL; + + DBG(7, "%s: %s\n", __func__, s->hw->sane.name); + + if (s->fd != -1) { + DBG(5, "scanner is already open: fd = %d\n", s->fd); + return SANE_STATUS_GOOD; /* no need to open the scanner */ + } + + if (s->hw->connection == SANE_EPSONDS_USB) { + + status = sanei_usb_open(s->hw->sane.name, &s->fd); + sanei_usb_set_timeout(USB_TIMEOUT); + + } else { + DBG(1, "unknown connection type: %d\n", s->hw->connection); + } + + if (status == SANE_STATUS_ACCESS_DENIED) { + DBG(1, "please check that you have permissions on the device.\n"); + DBG(1, "if this is a multi-function device with a printer,\n"); + DBG(1, "disable any conflicting driver (like usblp).\n"); + } + + if (status != SANE_STATUS_GOOD) + DBG(1, "%s open failed: %s\n", + s->hw->sane.name, + sane_strstatus(status)); + else + DBG(5, " opened correctly\n"); + + return status; +} + +static SANE_Status +validate_usb(struct epsonds_scanner *s) +{ + DBG(1, "%s\n", __func__); + + SANE_Status status; + int vendor, product; + int i = 0, numIds; + + SANE_Bool is_valid = SANE_FALSE; + + /* if the sanei_usb_get_vendor_product call is not supported, + * then we just ignore this and rely on the user to config + * the correct device. + */ + status = sanei_usb_get_vendor_product(s->fd, &vendor, &product); + if (status != SANE_STATUS_GOOD) { + DBG(1, "the device cannot be verified - will continue\n"); + return SANE_STATUS_GOOD; + } + + /* check the vendor ID to see if we are dealing with an EPSON device */ + if (vendor != SANE_EPSONDS_VENDOR_ID) { + /* this is not a supported vendor ID */ + DBG(1, "not an Epson device at %s (vendor id=0x%x)\n", + s->hw->sane.name, vendor); + return SANE_STATUS_INVAL; + } + + numIds = epsonds_get_number_of_ids(); + + /* check all known product IDs to verify that we know + about the device */ + while (i != numIds && !is_valid) { + if (product == epsonds_usb_product_ids[i]) + is_valid = SANE_TRUE; + i++; + } + + if (is_valid == SANE_FALSE) { + DBG(1, "the device at %s is not a supported (product id=0x%x)\n", + s->hw->sane.name, product); + return SANE_STATUS_INVAL; + } + + DBG(1, "found valid Epson ESC/I-2 scanner: 0x%x/0x%x at %s\n", + vendor, product, s->hw->sane.name); + + return SANE_STATUS_GOOD; +} + +static int num_devices; /* number of scanners attached to backend */ +static epsonds_device *first_dev; /* first EPSON scanner in list */ + +static struct epsonds_scanner * +scanner_create(struct epsonds_device *dev, SANE_Status *status) +{ + struct epsonds_scanner *s; + + s = malloc(sizeof(struct epsonds_scanner)); + if (s == NULL) { + *status = SANE_STATUS_NO_MEM; + return NULL; + } + + /* clear verything */ + memset(s, 0x00, sizeof(struct epsonds_scanner)); + + s->fd = -1; + s->hw = dev; + + return s; +} + +static struct epsonds_scanner * +device_detect(const char *name, int type, SANE_Status *status) +{ + struct epsonds_scanner *s; + struct epsonds_device *dev; + + DBG(1, "%s\n", __func__); + + /* try to find the device in our list */ + for (dev = first_dev; dev; dev = dev->next) { + if (strcmp(dev->sane.name, name) == 0) { + DBG(1, " found cached device\n"); + return scanner_create(dev, status); + } + } + + /* not found, create new if valid */ + if (type == SANE_EPSONDS_NODEV) { + *status = SANE_STATUS_INVAL; + return NULL; + } + + /* alloc and clear our device structure */ + dev = malloc(sizeof(*dev)); + if (!dev) { + *status = SANE_STATUS_NO_MEM; + return NULL; + } + memset(dev, 0x00, sizeof(struct epsonds_device)); + + s = scanner_create(dev, status); + if (s == NULL) + return NULL; + + dev->connection = type; + dev->model = strdup("(undetermined)"); + + dev->sane.name = name; + dev->sane.vendor = "Epson"; + dev->sane.model = dev->model; + dev->sane.type = "ESC/I-2"; + + *status = open_scanner(s); + if (*status != SANE_STATUS_GOOD) { + free(s); + return NULL; + } + + if (dev->connection == SANE_EPSONDS_USB) { + *status = validate_usb(s); + } + + if (*status != SANE_STATUS_GOOD) + goto close; + + eds_dev_init(dev); + + /* lock scanner */ + *status = eds_lock(s); + if (*status != SANE_STATUS_GOOD) { + goto close; + } + + /* discover capabilities */ + *status = esci2_info(s); + if (*status != SANE_STATUS_GOOD) + goto close; + + *status = esci2_capa(s); + if (*status != SANE_STATUS_GOOD) + goto close; + + *status = esci2_resa(s); + if (*status != SANE_STATUS_GOOD) + goto close; + + /* assume 1 and 8 bit are always supported */ + eds_add_depth(s->hw, 1); + eds_add_depth(s->hw, 8); + + /* setup area according to available options */ + if (s->hw->has_fb) { + + dev->x_range = &dev->fbf_x_range; + dev->y_range = &dev->fbf_y_range; + dev->alignment = dev->fbf_alignment; + + } else if (s->hw->has_adf) { + + dev->x_range = &dev->adf_x_range; + dev->y_range = &dev->adf_y_range; + dev->alignment = dev->adf_alignment; + + } else { + DBG(0, "unable to lay on the flatbed or feed the feeder. is that a scanner??\n"); + } + + *status = eds_dev_post_init(dev); + if (*status != SANE_STATUS_GOOD) + goto close; + + DBG(1, "scanner model: %s\n", dev->model); + + /* add this scanner to the device list */ + + num_devices++; + dev->next = first_dev; + first_dev = dev; + + return s; + +close: + DBG(1, " failed\n"); + + close_scanner(s); + return NULL; +} + + +static SANE_Status +attach(const char *name, int type) +{ + SANE_Status status; + + DBG(7, "%s: devname = %s, type = %d\n", __func__, name, type); + + epsonds_scanner *s = device_detect(name, type, &status); + if (s == NULL) + return status; + + close_scanner(s); + return status; +} + +SANE_Status +attach_one_usb(const char *dev) +{ + DBG(7, "%s: dev = %s\n", __func__, dev); + return attach(dev, SANE_EPSONDS_USB); +} + +static SANE_Status +attach_one_config(SANEI_Config __sane_unused__ *config, const char *line) +{ + int vendor, product; + + int len = strlen(line); + + DBG(7, "%s: len = %d, line = %s\n", __func__, len, line); + + if (sscanf(line, "usb %i %i", &vendor, &product) == 2) { + + int numIds; + + /* add the vendor and product IDs to the list of + known devices before we call the attach function */ + + DBG(7, " user configured device\n"); + + numIds = epsonds_get_number_of_ids(); + if (vendor != 0x4b8) + return SANE_STATUS_INVAL; /* this is not an EPSON device */ + + /* add to last slot */ + epsonds_usb_product_ids[numIds - 1] = product; + sanei_usb_attach_matching_devices(line, attach_one_usb); + + } else if (strncmp(line, "usb", 3) == 0 && len == 3) { + + int i, numIds; + + DBG(7, " probing usb devices\n"); + + numIds = epsonds_get_number_of_ids(); + + for (i = 0; i < numIds; i++) { + sanei_usb_find_devices(0x4b8, + epsonds_usb_product_ids[i], attach_one_usb); + } + } else { + DBG(0, "unable to parse config line: %s\n", line); + } + + return SANE_STATUS_GOOD; +} + +static void +free_devices(void) +{ + epsonds_device *dev, *next; + + for (dev = first_dev; dev; dev = next) { + next = dev->next; + free(dev->name); + free(dev->model); + free(dev); + } + + free(devlist); + first_dev = NULL; +} + +static void +probe_devices(void) +{ + DBG(5, "%s\n", __func__); + + free_devices(); + sanei_configure_attach(EPSONDS_CONFIG_FILE, NULL, attach_one_config); +} + +/**** SANE API ****/ + +SANE_Status +sane_init(SANE_Int *version_code, SANE_Auth_Callback __sane_unused__ authorize) +{ + DBG_INIT(); + DBG(2, "%s: " PACKAGE " " VERSION "\n", __func__); + + DBG(1, "epsonds backend, version %i.%i.%i\n", + EPSONDS_VERSION, EPSONDS_REVISION, EPSONDS_BUILD); + + if (version_code != NULL) + *version_code = SANE_VERSION_CODE(SANE_CURRENT_MAJOR, V_MINOR, + EPSONDS_BUILD); + + sanei_usb_init(); + + return SANE_STATUS_GOOD; +} + +void +sane_exit(void) +{ + DBG(5, "** %s\n", __func__); + free_devices(); +} + +SANE_Status +sane_get_devices(const SANE_Device ***device_list, SANE_Bool __sane_unused__ local_only) +{ + int i; + epsonds_device *dev; + + DBG(5, "** %s\n", __func__); + + probe_devices(); + + devlist = malloc((num_devices + 1) * sizeof(devlist[0])); + if (!devlist) { + DBG(1, "out of memory (line %d)\n", __LINE__); + return SANE_STATUS_NO_MEM; + } + + DBG(5, "%s - results:\n", __func__); + + for (i = 0, dev = first_dev; i < num_devices && dev; dev = dev->next, i++) { + DBG(1, " %d (%d): %s\n", i, dev->connection, dev->model); + devlist[i] = &dev->sane; + } + + devlist[i] = NULL; + + *device_list = devlist; + + return SANE_STATUS_GOOD; +} + +static SANE_Status +init_options(epsonds_scanner *s) +{ + int i; + + for (i = 0; i < NUM_OPTIONS; i++) { + s->opt[i].size = sizeof(SANE_Word); + s->opt[i].cap = SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT; + } + + s->opt[OPT_NUM_OPTS].title = SANE_TITLE_NUM_OPTIONS; + s->opt[OPT_NUM_OPTS].desc = SANE_DESC_NUM_OPTIONS; + s->opt[OPT_NUM_OPTS].type = SANE_TYPE_INT; + s->opt[OPT_NUM_OPTS].cap = SANE_CAP_SOFT_DETECT; + s->val[OPT_NUM_OPTS].w = NUM_OPTIONS; + + /* "Scan Mode" group: */ + + s->opt[OPT_MODE_GROUP].title = SANE_I18N("Scan Mode"); + s->opt[OPT_MODE_GROUP].desc = ""; + s->opt[OPT_MODE_GROUP].type = SANE_TYPE_GROUP; + s->opt[OPT_MODE_GROUP].cap = 0; + + /* scan mode */ + s->opt[OPT_MODE].name = SANE_NAME_SCAN_MODE; + s->opt[OPT_MODE].title = SANE_TITLE_SCAN_MODE; + s->opt[OPT_MODE].desc = SANE_DESC_SCAN_MODE; + s->opt[OPT_MODE].type = SANE_TYPE_STRING; + s->opt[OPT_MODE].size = max_string_size(mode_list); + s->opt[OPT_MODE].constraint_type = SANE_CONSTRAINT_STRING_LIST; + s->opt[OPT_MODE].constraint.string_list = mode_list; + s->val[OPT_MODE].w = 0; /* Lineart */ + + /* bit depth */ + s->opt[OPT_DEPTH].name = SANE_NAME_BIT_DEPTH; + s->opt[OPT_DEPTH].title = SANE_TITLE_BIT_DEPTH; + s->opt[OPT_DEPTH].desc = SANE_DESC_BIT_DEPTH; + s->opt[OPT_DEPTH].type = SANE_TYPE_INT; + s->opt[OPT_DEPTH].unit = SANE_UNIT_BIT; + s->opt[OPT_DEPTH].constraint_type = SANE_CONSTRAINT_WORD_LIST; + s->opt[OPT_DEPTH].constraint.word_list = s->hw->depth_list; + s->val[OPT_DEPTH].w = s->hw->depth_list[1]; /* the first "real" element is the default */ + + /* default is Lineart, disable depth selection */ + s->opt[OPT_DEPTH].cap |= SANE_CAP_INACTIVE; + + /* resolution */ + s->opt[OPT_RESOLUTION].name = SANE_NAME_SCAN_RESOLUTION; + s->opt[OPT_RESOLUTION].title = SANE_TITLE_SCAN_RESOLUTION; + s->opt[OPT_RESOLUTION].desc = SANE_DESC_SCAN_RESOLUTION; + + s->opt[OPT_RESOLUTION].type = SANE_TYPE_INT; + s->opt[OPT_RESOLUTION].unit = SANE_UNIT_DPI; + + /* range */ + if (s->hw->dpi_range.quant) { + s->opt[OPT_RESOLUTION].constraint_type = SANE_CONSTRAINT_RANGE; + s->opt[OPT_RESOLUTION].constraint.range = &s->hw->dpi_range; + s->val[OPT_RESOLUTION].w = s->hw->dpi_range.min; + } else { /* list */ + s->opt[OPT_RESOLUTION].constraint_type = SANE_CONSTRAINT_WORD_LIST; + s->opt[OPT_RESOLUTION].constraint.word_list = s->hw->res_list; + s->val[OPT_RESOLUTION].w = s->hw->res_list[1]; + } + + /* "Geometry" group: */ + s->opt[OPT_GEOMETRY_GROUP].title = SANE_I18N("Geometry"); + s->opt[OPT_GEOMETRY_GROUP].desc = ""; + s->opt[OPT_GEOMETRY_GROUP].type = SANE_TYPE_GROUP; + s->opt[OPT_GEOMETRY_GROUP].cap = SANE_CAP_ADVANCED; + + /* top-left x */ + s->opt[OPT_TL_X].name = SANE_NAME_SCAN_TL_X; + s->opt[OPT_TL_X].title = SANE_TITLE_SCAN_TL_X; + s->opt[OPT_TL_X].desc = SANE_DESC_SCAN_TL_X; + s->opt[OPT_TL_X].type = SANE_TYPE_FIXED; + s->opt[OPT_TL_X].unit = SANE_UNIT_MM; + s->opt[OPT_TL_X].constraint_type = SANE_CONSTRAINT_RANGE; + s->opt[OPT_TL_X].constraint.range = s->hw->x_range; + s->val[OPT_TL_X].w = 0; + + /* top-left y */ + s->opt[OPT_TL_Y].name = SANE_NAME_SCAN_TL_Y; + s->opt[OPT_TL_Y].title = SANE_TITLE_SCAN_TL_Y; + s->opt[OPT_TL_Y].desc = SANE_DESC_SCAN_TL_Y; + + s->opt[OPT_TL_Y].type = SANE_TYPE_FIXED; + s->opt[OPT_TL_Y].unit = SANE_UNIT_MM; + s->opt[OPT_TL_Y].constraint_type = SANE_CONSTRAINT_RANGE; + s->opt[OPT_TL_Y].constraint.range = s->hw->y_range; + s->val[OPT_TL_Y].w = 0; + + /* bottom-right x */ + s->opt[OPT_BR_X].name = SANE_NAME_SCAN_BR_X; + s->opt[OPT_BR_X].title = SANE_TITLE_SCAN_BR_X; + s->opt[OPT_BR_X].desc = SANE_DESC_SCAN_BR_X; + + s->opt[OPT_BR_X].type = SANE_TYPE_FIXED; + s->opt[OPT_BR_X].unit = SANE_UNIT_MM; + s->opt[OPT_BR_X].constraint_type = SANE_CONSTRAINT_RANGE; + s->opt[OPT_BR_X].constraint.range = s->hw->x_range; + s->val[OPT_BR_X].w = s->hw->x_range->max; + + /* bottom-right y */ + s->opt[OPT_BR_Y].name = SANE_NAME_SCAN_BR_Y; + s->opt[OPT_BR_Y].title = SANE_TITLE_SCAN_BR_Y; + s->opt[OPT_BR_Y].desc = SANE_DESC_SCAN_BR_Y; + + s->opt[OPT_BR_Y].type = SANE_TYPE_FIXED; + s->opt[OPT_BR_Y].unit = SANE_UNIT_MM; + s->opt[OPT_BR_Y].constraint_type = SANE_CONSTRAINT_RANGE; + s->opt[OPT_BR_Y].constraint.range = s->hw->y_range; + s->val[OPT_BR_Y].w = s->hw->y_range->max; + + /* "Optional equipment" group: */ + s->opt[OPT_EQU_GROUP].title = SANE_I18N("Optional equipment"); + s->opt[OPT_EQU_GROUP].desc = ""; + s->opt[OPT_EQU_GROUP].type = SANE_TYPE_GROUP; + s->opt[OPT_EQU_GROUP].cap = SANE_CAP_ADVANCED; + + /* source */ + s->opt[OPT_SOURCE].name = SANE_NAME_SCAN_SOURCE; + s->opt[OPT_SOURCE].title = SANE_TITLE_SCAN_SOURCE; + s->opt[OPT_SOURCE].desc = SANE_DESC_SCAN_SOURCE; + s->opt[OPT_SOURCE].type = SANE_TYPE_STRING; + s->opt[OPT_SOURCE].size = max_string_size(source_list); + s->opt[OPT_SOURCE].constraint_type = SANE_CONSTRAINT_STRING_LIST; + s->opt[OPT_SOURCE].constraint.string_list = source_list; + s->val[OPT_SOURCE].w = 0; + + s->opt[OPT_EJECT].name = "eject"; + s->opt[OPT_EJECT].title = SANE_I18N("Eject"); + s->opt[OPT_EJECT].desc = SANE_I18N("Eject the sheet in the ADF"); + s->opt[OPT_EJECT].type = SANE_TYPE_BUTTON; + + if (!s->hw->adf_has_eject) + s->opt[OPT_EJECT].cap |= SANE_CAP_INACTIVE; + + s->opt[OPT_LOAD].name = "load"; + s->opt[OPT_LOAD].title = SANE_I18N("Load"); + s->opt[OPT_LOAD].desc = SANE_I18N("Load a sheet in the ADF"); + s->opt[OPT_LOAD].type = SANE_TYPE_BUTTON; + + if (!s->hw->adf_has_load) + s->opt[OPT_LOAD].cap |= SANE_CAP_INACTIVE; + + s->opt[OPT_ADF_MODE].name = "adf-mode"; + s->opt[OPT_ADF_MODE].title = SANE_I18N("ADF Mode"); + s->opt[OPT_ADF_MODE].desc = + SANE_I18N("Selects the ADF mode (simplex/duplex)"); + s->opt[OPT_ADF_MODE].type = SANE_TYPE_STRING; + s->opt[OPT_ADF_MODE].size = max_string_size(adf_mode_list); + s->opt[OPT_ADF_MODE].constraint_type = SANE_CONSTRAINT_STRING_LIST; + s->opt[OPT_ADF_MODE].constraint.string_list = adf_mode_list; + s->val[OPT_ADF_MODE].w = 0; /* simplex */ + + if (!s->hw->adf_is_duplex) + s->opt[OPT_ADF_MODE].cap |= SANE_CAP_INACTIVE; + + s->opt[OPT_ADF_SKEW].name = "adf-skew"; + s->opt[OPT_ADF_SKEW].title = SANE_I18N("ADF Skew Correction"); + s->opt[OPT_ADF_SKEW].desc = + SANE_I18N("Enables ADF skew correction"); + s->opt[OPT_ADF_SKEW].type = SANE_TYPE_BOOL; + s->val[OPT_ADF_SKEW].w = 0; + + if (!s->hw->adf_has_skew) + s->opt[OPT_ADF_SKEW].cap |= SANE_CAP_INACTIVE; + + return SANE_STATUS_GOOD; +} + +SANE_Status +sane_open(SANE_String_Const name, SANE_Handle *handle) +{ + SANE_Status status; + epsonds_scanner *s = NULL; + + int l = strlen(name); + + DBG(7, "** %s: name = %s\n", __func__, name); + + /* probe if empty device name provided */ + if (l == 0) { + + probe_devices(); + + if (first_dev == NULL) { + DBG(1, "no devices detected\n"); + return SANE_STATUS_INVAL; + } + + s = device_detect(first_dev->sane.name, first_dev->connection, + &status); + if (s == NULL) { + DBG(1, "cannot open a perfectly valid device (%s)," + " please report to the authors\n", name); + return SANE_STATUS_INVAL; + } + + } else { + + if (strncmp(name, "libusb:", 7) == 0) { + s = device_detect(name, SANE_EPSONDS_USB, &status); + if (s == NULL) + return status; + } else { + + /* as a last resort, check for a match + * in the device list. This should handle SCSI + * devices and platforms without libusb. + */ + + if (first_dev == NULL) + probe_devices(); + + s = device_detect(name, SANE_EPSONDS_NODEV, &status); + if (s == NULL) { + DBG(1, "invalid device name: %s\n", name); + return SANE_STATUS_INVAL; + } + } + } + + /* s is always valid here */ + + DBG(5, "%s: handle obtained\n", __func__); + + init_options(s); + + *handle = (SANE_Handle)s; + + status = open_scanner(s); + if (status != SANE_STATUS_GOOD) { + free(s); + return status; + } + + /* lock scanner if required */ + if (!s->locked) { + status = eds_lock(s); + } + + return status; +} + +void +sane_close(SANE_Handle handle) +{ + epsonds_scanner *s = (epsonds_scanner *)handle; + + DBG(1, "** %s\n", __func__); + + close_scanner(s); +} + +const SANE_Option_Descriptor * +sane_get_option_descriptor(SANE_Handle handle, SANE_Int option) +{ + epsonds_scanner *s = (epsonds_scanner *) handle; + + if (option < 0 || option >= NUM_OPTIONS) + return NULL; + + return s->opt + option; +} + +static const SANE_String_Const * +search_string_list(const SANE_String_Const *list, SANE_String value) +{ + while (*list != NULL && strcmp(value, *list) != 0) + list++; + + return ((*list == NULL) ? NULL : list); +} + +static void +activateOption(epsonds_scanner *s, SANE_Int option, SANE_Bool *change) +{ + if (!SANE_OPTION_IS_ACTIVE(s->opt[option].cap)) { + s->opt[option].cap &= ~SANE_CAP_INACTIVE; + *change = SANE_TRUE; + } +} + +static void +deactivateOption(epsonds_scanner *s, SANE_Int option, SANE_Bool *change) +{ + if (SANE_OPTION_IS_ACTIVE(s->opt[option].cap)) { + s->opt[option].cap |= SANE_CAP_INACTIVE; + *change = SANE_TRUE; + } +} + +/* + * Handles setting the source (flatbed, transparency adapter (TPU), + * or auto document feeder (ADF)). + * + * For newer scanners it also sets the focus according to the + * glass / TPU settings. + */ + +static void +change_source(epsonds_scanner *s, SANE_Int optindex, char *value) +{ + int force_max = SANE_FALSE; + SANE_Bool dummy; + + DBG(1, "%s: optindex = %d, source = '%s'\n", __func__, optindex, + value); + + s->val[OPT_SOURCE].w = optindex; + + /* if current selected area is the maximum available, + * keep this setting on the new source. + */ + if (s->val[OPT_TL_X].w == s->hw->x_range->min + && s->val[OPT_TL_Y].w == s->hw->y_range->min + && s->val[OPT_BR_X].w == s->hw->x_range->max + && s->val[OPT_BR_Y].w == s->hw->y_range->max) { + force_max = SANE_TRUE; + } + + if (strcmp(ADF_STR, value) == 0) { + + s->hw->x_range = &s->hw->adf_x_range; + s->hw->y_range = &s->hw->adf_y_range; + s->hw->alignment = s->hw->adf_alignment; + + if (s->hw->adf_is_duplex) { + activateOption(s, OPT_ADF_MODE, &dummy); + } else { + deactivateOption(s, OPT_ADF_MODE, &dummy); + s->val[OPT_ADF_MODE].w = 0; + } + + } else if (strcmp(TPU_STR, value) == 0) { + + s->hw->x_range = &s->hw->tpu_x_range; + s->hw->y_range = &s->hw->tpu_y_range; + + deactivateOption(s, OPT_ADF_MODE, &dummy); + + } else { + + /* neither ADF nor TPU active, assume FB */ + s->hw->x_range = &s->hw->fbf_x_range; + s->hw->y_range = &s->hw->fbf_y_range; + s->hw->alignment = s->hw->fbf_alignment; + } + + s->opt[OPT_BR_X].constraint.range = s->hw->x_range; + s->opt[OPT_BR_Y].constraint.range = s->hw->y_range; + + if (s->val[OPT_TL_X].w < s->hw->x_range->min || force_max) + s->val[OPT_TL_X].w = s->hw->x_range->min; + + if (s->val[OPT_TL_Y].w < s->hw->y_range->min || force_max) + s->val[OPT_TL_Y].w = s->hw->y_range->min; + + if (s->val[OPT_BR_X].w > s->hw->x_range->max || force_max) + s->val[OPT_BR_X].w = s->hw->x_range->max; + + if (s->val[OPT_BR_Y].w > s->hw->y_range->max || force_max) + s->val[OPT_BR_Y].w = s->hw->y_range->max; +} + +static SANE_Status +getvalue(SANE_Handle handle, SANE_Int option, void *value) +{ + epsonds_scanner *s = (epsonds_scanner *)handle; + SANE_Option_Descriptor *sopt = &(s->opt[option]); + Option_Value *sval = &(s->val[option]); + + DBG(17, "%s: option = %d\n", __func__, option); + + switch (option) { + + case OPT_NUM_OPTS: + case OPT_RESOLUTION: + case OPT_TL_X: + case OPT_TL_Y: + case OPT_BR_X: + case OPT_BR_Y: + case OPT_DEPTH: + case OPT_ADF_SKEW: + *((SANE_Word *) value) = sval->w; + break; + + case OPT_MODE: + case OPT_ADF_MODE: + case OPT_SOURCE: + strcpy((char *) value, sopt->constraint.string_list[sval->w]); + break; + + default: + return SANE_STATUS_INVAL; + } + + return SANE_STATUS_GOOD; +} + +static SANE_Status +setvalue(SANE_Handle handle, SANE_Int option, void *value, SANE_Int *info) +{ + epsonds_scanner *s = (epsonds_scanner *) handle; + SANE_Option_Descriptor *sopt = &(s->opt[option]); + Option_Value *sval = &(s->val[option]); + + SANE_Status status; + const SANE_String_Const *optval = NULL; + int optindex = 0; + SANE_Bool reload = SANE_FALSE; + + DBG(17, "** %s: option = %d, value = %p\n", __func__, option, value); + + status = sanei_constrain_value(sopt, value, info); + if (status != SANE_STATUS_GOOD) + return status; + + if (info && value && (*info & SANE_INFO_INEXACT) + && sopt->type == SANE_TYPE_INT) + DBG(17, " constrained val = %d\n", *(SANE_Word *) value); + + if (sopt->constraint_type == SANE_CONSTRAINT_STRING_LIST) { + optval = search_string_list(sopt->constraint.string_list, + (char *) value); + if (optval == NULL) + return SANE_STATUS_INVAL; + optindex = optval - sopt->constraint.string_list; + } + + /* block faulty frontends */ + if (sopt->cap & SANE_CAP_INACTIVE) { + DBG(1, " tried to modify a disabled parameter"); + return SANE_STATUS_INVAL; + } + + switch (option) { + + case OPT_ADF_MODE: /* simple lists */ + sval->w = optindex; + break; + + case OPT_ADF_SKEW: + case OPT_RESOLUTION: + sval->w = *((SANE_Word *) value); + reload = SANE_TRUE; + break; + + case OPT_BR_X: + case OPT_BR_Y: + sval->w = *((SANE_Word *) value); + if (SANE_UNFIX(sval->w) == 0) { + DBG(17, " invalid br-x or br-y\n"); + return SANE_STATUS_INVAL; + } + /* passthru */ + case OPT_TL_X: + case OPT_TL_Y: + sval->w = *((SANE_Word *) value); + if (NULL != info) + *info |= SANE_INFO_RELOAD_PARAMS; + break; + + case OPT_SOURCE: + change_source(s, optindex, (char *) value); + reload = SANE_TRUE; + break; + + case OPT_MODE: + { + /* use JPEG mode if RAW is not available when bpp > 1 */ + if (optindex > 0 && !s->hw->has_raw) { + s->mode_jpeg = 1; + } else { + s->mode_jpeg = 0; + } + + sval->w = optindex; + + /* if binary, then disable the bit depth selection */ + if (optindex == 0) { + s->opt[OPT_DEPTH].cap |= SANE_CAP_INACTIVE; + } else { + if (s->hw->depth_list[0] == 1) + s->opt[OPT_DEPTH].cap |= SANE_CAP_INACTIVE; + else { + s->opt[OPT_DEPTH].cap &= ~SANE_CAP_INACTIVE; + s->val[OPT_DEPTH].w = + mode_params[optindex].depth; + } + } + + reload = SANE_TRUE; + break; + } + + case OPT_DEPTH: + sval->w = *((SANE_Word *) value); + mode_params[s->val[OPT_MODE].w].depth = sval->w; + reload = SANE_TRUE; + break; + + case OPT_LOAD: + esci2_mech(s, "#ADFLOAD"); + break; + + case OPT_EJECT: + esci2_mech(s, "#ADFEJCT"); + break; + + default: + return SANE_STATUS_INVAL; + } + + if (reload && info != NULL) + *info |= SANE_INFO_RELOAD_OPTIONS | SANE_INFO_RELOAD_PARAMS; + + return SANE_STATUS_GOOD; +} + +SANE_Status +sane_control_option(SANE_Handle handle, SANE_Int option, SANE_Action action, + void *value, SANE_Int *info) +{ + DBG(17, "** %s: action = %x, option = %d\n", __func__, action, option); + + if (option < 0 || option >= NUM_OPTIONS) + return SANE_STATUS_INVAL; + + if (info != NULL) + *info = 0; + + switch (action) { + case SANE_ACTION_GET_VALUE: + return getvalue(handle, option, value); + + case SANE_ACTION_SET_VALUE: + return setvalue(handle, option, value, info); + + default: + return SANE_STATUS_INVAL; + } + + return SANE_STATUS_INVAL; +} + +SANE_Status +sane_get_parameters(SANE_Handle handle, SANE_Parameters *params) +{ + epsonds_scanner *s = (epsonds_scanner *)handle; + + DBG(5, "** %s\n", __func__); + + if (params == NULL) + DBG(1, "%s: params is NULL\n", __func__); + + /* + * If sane_start was already called, then just retrieve the parameters + * from the scanner data structure + */ + if (s->scanning) { + DBG(5, "scan in progress, returning saved params structure\n"); + } else { + /* otherwise initialize the params structure */ + eds_init_parameters(s); + } + + if (params != NULL) + *params = s->params; + + print_params(s->params); + + return SANE_STATUS_GOOD; +} + +/* + * This function is part of the SANE API and gets called from the front end to + * start the scan process. + */ + +SANE_Status +sane_start(SANE_Handle handle) +{ + epsonds_scanner *s = (epsonds_scanner *)handle; + char buf[64]; + SANE_Status status = 0; + + s->pages++; + + DBG(5, "** %s, pages = %d, scanning = %d, backside = %d, front fill: %d, back fill: %d\n", + __func__, s->pages, s->scanning, s->backside, + eds_ring_avail(&s->front), + eds_ring_avail(&s->back)); + + s->eof = 0; + s->canceling = 0; + + if ((s->pages % 2) == 1) { + s->current = &s->front; + eds_ring_flush(s->current); + } else if (eds_ring_avail(&s->back)) { + DBG(5, "back side\n"); + s->current = &s->back; + } + + /* prepare the JPEG decompressor */ + if (s->mode_jpeg) { + status = eds_jpeg_start(s); + if (status != SANE_STATUS_GOOD) { + goto end; + } } + + /* scan already in progress? (one pass adf) */ + if (s->scanning) { + DBG(5, " scan in progress, returning early\n"); + return SANE_STATUS_GOOD; + } + + /* calc scanning parameters */ + status = eds_init_parameters(s); + if (status != SANE_STATUS_GOOD) { + DBG(1, " parameters initialization failed\n"); + return status; + } + + /* allocate line buffer */ + s->line_buffer = realloc(s->line_buffer, s->params.bytes_per_line); + if (s->line_buffer == NULL) + return SANE_STATUS_NO_MEM; + + /* ring buffer for front page, twice bsz */ + /* XXX read value from scanner */ + status = eds_ring_init(&s->front, (65536 * 4) * 2); + if (status != SANE_STATUS_GOOD) { + return status; + } + + /* transfer buffer, bsz */ + /* XXX read value from scanner */ + s->buf = realloc(s->buf, 65536 * 4); + if (s->buf == NULL) + return SANE_STATUS_NO_MEM; + + print_params(s->params); + + /* set scanning parameters */ + + char cmd[100]; /* take care not to overflow */ + + /* document source */ + if (strcmp(source_list[s->val[OPT_SOURCE].w], ADF_STR) == 0) { + + sprintf(buf, "#ADF%s%s", + s->val[OPT_ADF_MODE].w ? "DPLX" : "", + s->val[OPT_ADF_SKEW].w ? "SKEW" : ""); + + } else if (strcmp(source_list[s->val[OPT_SOURCE].w], FBF_STR) == 0) { + + strcpy(buf, "#FB "); + + } else { + /* XXX */ + } + + strcpy(cmd, buf); + + if (s->params.format == SANE_FRAME_GRAY) { + sprintf(buf, "#COLM%03d", s->params.depth); + } else if (s->params.format == SANE_FRAME_RGB) { + sprintf(buf, "#COLC%03d", s->params.depth * 3); + } + + strcat(cmd, buf); + + /* image transfer format */ + if (!s->mode_jpeg) { + if (s->params.depth > 1 || s->hw->has_raw) { + strcat(cmd, "#FMTRAW "); + } + } else { + strcat(cmd, "#FMTJPG #JPGd090"); + } + + /* resolution (RSMi not always supported) */ + + if (s->val[OPT_RESOLUTION].w > 999) { + sprintf(buf, "#RSMi%07d", s->val[OPT_RESOLUTION].w); + } else { + sprintf(buf, "#RSMd%03d", s->val[OPT_RESOLUTION].w); + } + + strcat(cmd, buf); + + /* scanning area */ + sprintf(buf, "#ACQi%07di%07di%07di%07d", + s->left, s->top, s->params.pixels_per_line, s->params.lines); + + strcat(cmd, buf); + + status = esci2_para(s, cmd); + if (status != SANE_STATUS_GOOD) { + goto end; + } + + /* start scanning */ + DBG(1, "%s: scanning...\n", __func__); + + /* switch to data state */ + status = esci2_trdt(s); + if (status != SANE_STATUS_GOOD) { + goto end; + } + + /* first page is page 1 */ + s->pages = 1; + s->scanning = 1; + +end: + if (status != SANE_STATUS_GOOD) { + DBG(1, "%s: start failed: %s\n", __func__, sane_strstatus(status)); + } + + return status; +} + +/* this moves data from our buffers to SANE */ + +SANE_Status +sane_read(SANE_Handle handle, SANE_Byte *data, SANE_Int max_length, + SANE_Int *length) +{ + SANE_Int read = 0, tries = 3; + SANE_Status status = 0; + epsonds_scanner *s = (epsonds_scanner *)handle; + + *length = read = 0; + + DBG(20, "** %s: backside = %d\n", __func__, s->backside); + + /* sane_read called before sane_start? */ + if (s->current == NULL) { + DBG(0, "%s: buffer is NULL", __func__); + return SANE_STATUS_INVAL; + } + + /* anything in the buffer? pass it to the frontend */ + SANE_Int available = eds_ring_avail(s->current); + if (available) { + + DBG(18, "reading from ring buffer, %d left\n", available); + + if (s->mode_jpeg && !s->jpeg_header_seen) { + + status = eds_jpeg_read_header(s); + if (status != SANE_STATUS_GOOD && --tries) { + goto read_again; + } + } + + if (s->mode_jpeg) { + eds_jpeg_read(handle, data, max_length, &read); + } else { + eds_copy_image_from_ring(s, data, max_length, &read); + } + + if (read == 0) { + goto read_again; + } + + *length = read; + + return SANE_STATUS_GOOD; + + + } else if (s->current == &s->back) { + + /* finished reading the back page, next + * command should give us the EOF + */ + DBG(18, "back side ring buffer empty\n"); + } + + /* read until data or error */ + +read_again: + + status = esci2_img(s, &read); + if (status != SANE_STATUS_GOOD) { + DBG(20, "read: %d, eof: %d, backside: %d, status: %d\n", read, s->eof, s->backside, status); + } + + /* just got a back side page, alloc ring buffer if necessary + * we didn't before because dummy was not known + */ + if (s->backside) { + + int required = s->params.lines * (s->params.bytes_per_line + s->dummy); + + if (s->back.size < required) { + + DBG(20, "allocating buffer for the back side\n"); + + status = eds_ring_init(&s->back, required); + if (status != SANE_STATUS_GOOD) { + return status; + } + } + } + + /* abort scanning when appropriate */ + if (status == SANE_STATUS_CANCELLED) { + esci2_can(s); + return status; + } + + if (s->eof && s->backside) { + DBG(18, "back side scan finished\n"); + } + + /* read again if no error and no data */ + if (read == 0 && status == SANE_STATUS_GOOD) { + goto read_again; + } + + /* got something, write to ring */ + if (read) { + + DBG(20, " %d bytes read, %d lines, eof: %d, canceling: %d, status: %d, backside: %d\n", + read, read / (s->params.bytes_per_line + s->dummy), + s->canceling, s->eof, status, s->backside); + + /* move data to the appropriate ring */ + status = eds_ring_write(s->backside ? &s->back : &s->front, s->buf, read); + + if (0 && s->mode_jpeg && !s->jpeg_header_seen + && status == SANE_STATUS_GOOD) { + + status = eds_jpeg_read_header(s); + if (status != SANE_STATUS_GOOD && --tries) { + goto read_again; + } + } + } + + /* continue reading if appropriate */ + if (status == SANE_STATUS_GOOD) + return status; + + /* cleanup */ + DBG(5, "** %s: cleaning up\n", __func__); + + if (s->mode_jpeg) { + eds_jpeg_finish(s); + } + + eds_ring_flush(s->current); + + return status; +} + +/* + * void sane_cancel(SANE_Handle handle) + * + * Set the cancel flag to true. The next time the backend requests data + * from the scanner the CAN message will be sent. + */ + +void +sane_cancel(SANE_Handle handle) +{ + DBG(1, "** %s\n", __func__); + ((epsonds_scanner *)handle)->canceling = SANE_TRUE; +} + +/* + * SANE_Status sane_set_io_mode() + * + * not supported - for asynchronous I/O + */ + +SANE_Status +sane_set_io_mode(SANE_Handle __sane_unused__ handle, + SANE_Bool __sane_unused__ non_blocking) +{ + return SANE_STATUS_UNSUPPORTED; +} + +/* + * SANE_Status sane_get_select_fd() + * + * not supported - for asynchronous I/O + */ + +SANE_Status +sane_get_select_fd(SANE_Handle __sane_unused__ handle, + SANE_Int __sane_unused__ *fd) +{ + return SANE_STATUS_UNSUPPORTED; +} diff --git a/backend/epsonds.conf.in b/backend/epsonds.conf.in new file mode 100644 index 0000000..bd032f3 --- /dev/null +++ b/backend/epsonds.conf.in @@ -0,0 +1,12 @@ +# epsonds.conf +# +# here are some examples for how to configure the epsonds backend + +# USB +usb + +# For libusb support for unknown scanners use the following command +# usb +# e.g.: +# usb 0x4b8 0x14c + diff --git a/backend/epsonds.h b/backend/epsonds.h new file mode 100644 index 0000000..2c2e422 --- /dev/null +++ b/backend/epsonds.h @@ -0,0 +1,198 @@ +/* + * epsonds.c - Epson ESC/I-2 driver. + * + * Copyright (C) 2015 Tower Technologies + * Author: Alessandro Zummo + * + * This file is part of the SANE package. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation, version 2. + */ + +#ifndef epsonds_h +#define epsonds_h + +#undef BACKEND_NAME +#define BACKEND_NAME epsonds +#define DEBUG_NOT_STATIC + +#ifdef HAVE_SYS_IOCTL_H +#include +#endif + +#ifdef HAVE_STDDEF_H +#include +#endif + +#ifdef HAVE_STDLIB_H +#include +#endif + +#ifdef NEED_SYS_TYPES_H +#include +#endif + +#include /* for memset and memcpy */ +#include + +#include "sane/sane.h" +#include "sane/sanei_backend.h" +#include "sane/sanei_debug.h" +#include "sane/sanei_usb.h" +#include "sane/sanei_jpeg.h" + +#ifdef __GNUC__ +#define __func__ __FUNCTION__ +#else +#define __func__ "(undef)" +/* I cast my vote for C99... :) */ +#endif + +#define EPSONDS_CONFIG_FILE "epsonds.conf" + +#ifndef PATH_MAX +#define PATH_MAX (1024) +#endif + +#ifndef XtNumber +#define XtNumber(x) (sizeof(x) / sizeof(x[0])) +#define XtOffset(p_type, field) ((size_t)&(((p_type)NULL)->field)) +#define XtOffsetOf(s_type, field) XtOffset(s_type*, field) +#endif + +#define ACK 0x06 +#define NAK 0x15 +#define FS 0x1C + +#define FBF_STR SANE_I18N("Flatbed") +#define TPU_STR SANE_I18N("Transparency Unit") +#define ADF_STR SANE_I18N("Automatic Document Feeder") + +enum { + OPT_NUM_OPTS = 0, + OPT_MODE_GROUP, + OPT_MODE, + OPT_DEPTH, + OPT_RESOLUTION, + OPT_GEOMETRY_GROUP, + OPT_TL_X, + OPT_TL_Y, + OPT_BR_X, + OPT_BR_Y, + OPT_EQU_GROUP, + OPT_SOURCE, + OPT_EJECT, + OPT_LOAD, + OPT_ADF_MODE, + OPT_ADF_SKEW, + NUM_OPTIONS +}; + +typedef enum +{ /* hardware connection to the scanner */ + SANE_EPSONDS_NODEV, /* default, no HW specified yet */ + SANE_EPSONDS_USB, /* USB interface */ + SANE_EPSONDS_NET /* network interface (unsupported)*/ +} epsonds_conn_type; + +/* hardware description */ + +struct epsonds_device +{ + struct epsonds_device *next; + + epsonds_conn_type connection; + + char *name; + char *model; + + unsigned int model_id; + + SANE_Device sane; + SANE_Range *x_range; + SANE_Range *y_range; + SANE_Range dpi_range; + SANE_Byte alignment; + + + SANE_Int *res_list; /* list of resolutions */ + SANE_Int *depth_list; + SANE_Int max_depth; /* max. color depth */ + + SANE_Bool has_raw; /* supports RAW format */ + + SANE_Bool has_fb; /* flatbed */ + SANE_Range fbf_x_range; /* x range */ + SANE_Range fbf_y_range; /* y range */ + SANE_Byte fbf_alignment; /* left, center, right */ + SANE_Bool fbf_has_skew; /* supports skew correction */ + + SANE_Bool has_adf; /* adf */ + SANE_Range adf_x_range; /* x range */ + SANE_Range adf_y_range; /* y range */ + SANE_Bool adf_is_duplex; /* supports duplex mode */ + SANE_Bool adf_singlepass; /* supports single pass duplex */ + SANE_Bool adf_has_skew; /* supports skew correction */ + SANE_Bool adf_has_load; /* supports load command */ + SANE_Bool adf_has_eject; /* supports eject command */ + SANE_Byte adf_alignment; /* left, center, right */ + + SANE_Bool has_tpu; /* tpu */ + SANE_Range tpu_x_range; /* transparency unit x range */ + SANE_Range tpu_y_range; /* transparency unit y range */ +}; + +typedef struct epsonds_device epsonds_device; + +typedef struct ring_buffer +{ + SANE_Byte *ring, *wp, *rp, *end; + SANE_Int fill, size; + +} ring_buffer; + +/* an instance of a scanner */ + +struct epsonds_scanner +{ + struct epsonds_scanner *next; + struct epsonds_device *hw; + + int fd; + + SANE_Option_Descriptor opt[NUM_OPTIONS]; + Option_Value val[NUM_OPTIONS]; + SANE_Parameters params; + + SANE_Byte *buf, *line_buffer; + ring_buffer *current, front, back; + + SANE_Bool eof, scanning, canceling, locked, backside, mode_jpeg; + + SANE_Int left, top, pages, dummy; + + /* jpeg stuff */ + + djpeg_dest_ptr jdst; + struct jpeg_decompress_struct jpeg_cinfo; + struct jpeg_error_mgr jpeg_err; + SANE_Bool jpeg_header_seen; +}; + +typedef struct epsonds_scanner epsonds_scanner; + +struct mode_param +{ + int color; + int flags; + int dropout_mask; + int depth; +}; + +enum { + MODE_BINARY, MODE_GRAY, MODE_COLOR +}; + +#endif diff --git a/backend/genesys.c b/backend/genesys.c index 913a048..548d0da 100644 --- a/backend/genesys.c +++ b/backend/genesys.c @@ -58,7 +58,7 @@ * SANE backend for Genesys Logic GL646/GL841/GL842/GL843/GL846/GL847/GL124 based scanners */ -#define BUILD 2504 +#define BUILD 2506 #define BACKEND_NAME genesys #include "genesys.h" @@ -157,6 +157,15 @@ static const SANE_Range enhance_range = { 1 /* quantization */ }; +/** + * range for expiration time + */ +static const SANE_Range expiration_range = { + -1, /* minimum */ + 30000, /* maximum */ + 1 /* quantization */ +}; + void sanei_genesys_init_structs (Genesys_Device * dev) { @@ -3044,11 +3053,15 @@ genesys_send_shading_coefficient (Genesys_Device * dev) case CIS_CANONLIDE100: case CIS_CANONLIDE200: case CIS_CANONLIDE110: + case CIS_CANONLIDE120: case CIS_CANONLIDE210: + case CIS_CANONLIDE220: /* TODO store this in a data struct so we avoid * growing this switch */ if(dev->model->ccd_type!=CIS_CANONLIDE110 - && dev->model->ccd_type!=CIS_CANONLIDE210) + && dev->model->ccd_type!=CIS_CANONLIDE210 + && dev->model->ccd_type!=CIS_CANONLIDE120 + && dev->model->ccd_type!=CIS_CANONLIDE220) target_code=0xdc00; else target_code=0xf000; @@ -5307,6 +5320,9 @@ calc_parameters (Genesys_Scanner * s) s->dev->settings.brightness=0; } + /* cache expiration time */ + s->dev->settings.expiration_time=s->val[OPT_EXPIRATION_TIME].w; + return status; } @@ -5895,6 +5911,17 @@ init_options (Genesys_Scanner * s) } #endif + /* expiration time for calibration cache entries */ + s->opt[OPT_EXPIRATION_TIME].name = "expiration-time"; + s->opt[OPT_EXPIRATION_TIME].title = SANE_I18N ("Calibration cache expiration time"); + s->opt[OPT_EXPIRATION_TIME].desc = SANE_I18N ("Time (in minutes) before a cached calibration expires." + "A value of 0 means cache is not used used. A negative value means cache never expires."); + s->opt[OPT_EXPIRATION_TIME].type = SANE_TYPE_INT; + s->opt[OPT_EXPIRATION_TIME].unit = SANE_UNIT_NONE; + s->opt[OPT_EXPIRATION_TIME].constraint_type = SANE_CONSTRAINT_RANGE; + s->opt[OPT_EXPIRATION_TIME].constraint.range = &expiration_range; + s->val[OPT_EXPIRATION_TIME].w = 60; /* 60 minutes by default */ + /* Powersave time (turn lamp off) */ s->opt[OPT_LAMP_OFF_TIME].name = "lamp-off-time"; s->opt[OPT_LAMP_OFF_TIME].title = SANE_I18N ("Lamp off time"); @@ -6915,8 +6942,8 @@ sane_open (SANE_String_Const devicename, SANE_Handle * handle) tmpstr=calibration_filename(s->dev); s->val[OPT_CALIBRATION_FILE].s = strdup (tmpstr); s->dev->calib_file = strdup (tmpstr); - DBG (DBG_info, "Calibration filename set to:\n"); - DBG (DBG_info, ">%s<\n", s->dev->calib_file); + DBG (DBG_info, "%s: Calibration filename set to:\n", __FUNCTION__); + DBG (DBG_info, "%s: >%s<\n", __FUNCTION__, s->dev->calib_file); free(tmpstr); /* now open file, fetch calibration records */ @@ -7193,37 +7220,35 @@ static SANE_Status set_calibration_value (Genesys_Scanner * s, int option, void { SANE_Status status=SANE_STATUS_GOOD; char *tmp; - Genesys_Calibration_Cache *cache; Genesys_Device *dev=s->dev; + DBGSTART; + /* try to load file */ tmp=dev->calib_file; dev->calib_file=val; status=sanei_genesys_read_calibration (dev); - /* file exists but is invalid */ + /* file exists but is invalid, so fall back to previous cache file + * an re-read it */ if (status!=SANE_STATUS_IO_ERROR && status!=SANE_STATUS_GOOD) { dev->calib_file=tmp; + status=sanei_genesys_read_calibration (dev); return status; } - /* we can set no file name value */ + /* now we can set file name value */ if (s->val[option].s) free (s->val[option].s); s->val[option].s = strdup (val); if (tmp) free (tmp); dev->calib_file = strdup (val); + DBG (DBG_info, "%s: Calibration filename set to:\n", __FUNCTION__); + DBG (DBG_info, "%s: >%s<\n", __FUNCTION__, s->dev->calib_file); - /* clear device calibration cache */ - while(dev->calibration_cache!=NULL) - { - cache=dev->calibration_cache; - dev->calibration_cache=dev->calibration_cache->next; - free(cache); - } - + DBGCOMPLETED; return SANE_STATUS_GOOD; } @@ -7418,6 +7443,7 @@ set_option_value (Genesys_Scanner * s, int option, void *val, RIE(set_calibration_value (s, option, val)); break; case OPT_LAMP_OFF_TIME: + case OPT_EXPIRATION_TIME: if (*(SANE_Word *) val != s->val[option].w) { s->val[option].w = *(SANE_Word *) val; diff --git a/backend/genesys.conf.in b/backend/genesys.conf.in index 5300787..7899455 100644 --- a/backend/genesys.conf.in +++ b/backend/genesys.conf.in @@ -60,6 +60,12 @@ usb 0x04a9 0x1907 # Canon LiDE 210 usb 0x04a9 0x190a +# Canon LiDE 120 +usb 0x04a9 0x190e + +# Canon LiDE 220 +usb 0x04a9 0x190f + # Canon 5600f usb 0x04a9 0x1906 diff --git a/backend/genesys.h b/backend/genesys.h index fea3f3b..eab92bb 100644 --- a/backend/genesys.h +++ b/backend/genesys.h @@ -120,6 +120,7 @@ enum Genesys_Option OPT_DISABLE_INTERPOLATION, OPT_COLOR_FILTER, OPT_CALIBRATION_FILE, + OPT_EXPIRATION_TIME, OPT_SENSOR_GROUP, OPT_SCAN_SW, diff --git a/backend/genesys_devices.c b/backend/genesys_devices.c index 213b9c9..4358e94 100644 --- a/backend/genesys_devices.c +++ b/backend/genesys_devices.c @@ -660,6 +660,30 @@ static Genesys_Sensor Sensor[] = { {2.1, 2.1, 2.1}, {NULL, NULL, NULL}} , + + /* CANONLIDE120 */ + {CIS_CANONLIDE120, + 2400, /* optical resolution */ + 87, /* black pixels */ + 16, /* dummy pixels 16 */ + 303, /* 303 */ + 5168*4, /* total pixels */ + 210, + 200, + {0x00, 0x00, 0x00, 0x00}, + /* reg 0x10 - 0x15 : EXPR, EXPG and EXPB */ + {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + /* reg 0x16 - 0x1d */ + 0x10, 0x04, 0x00, 0x01, 0x30, 0x00, 0x02, 0x01 }, + /* reg 0x52 - 0x5e */ + { + 0x00, 0x02, 0x04, 0x06, 0x04, 0x04, 0x04, 0x04, + 0x1a, 0x00, 0xc0, 0x00, 0x00 + } + , + {2.1, 2.1, 2.1}, + {NULL, NULL, NULL}} + , /* CANON LIDE 210 sensor */ {CIS_CANONLIDE210, 2400, /* optical resolution */ @@ -683,6 +707,29 @@ static Genesys_Sensor Sensor[] = { {2.1, 2.1, 2.1}, {NULL, NULL, NULL}} , + /* CANON LIDE 220 sensor */ + {CIS_CANONLIDE220, + 2400, /* optical resolution */ + 87, /* black pixels */ + 16, /* dummy pixels 16 */ + 303, /* 303 */ + 5168*4, /* total pixels */ + 210, + 200, + {0x00, 0x00, 0x00, 0x00}, + /* reg 0x10 - 0x15 : EXPR, EXPG and EXPB */ + {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + /* reg 0x16 - 0x1d */ + 0x10, 0x04, 0x00, 0x01, 0x30, 0x00, 0x02, 0x01 }, + /* reg 0x52 - 0x5e */ + { + 0x00, 0x02, 0x04, 0x06, 0x04, 0x04, 0x04, 0x04, + 0x1a, 0x00, 0xc0, 0x00, 0x00 + } + , + {2.1, 2.1, 2.1}, + {NULL, NULL, NULL}} + , {CCD_PLUSTEK_3600, 1200, 87, /*(black) */ @@ -1854,6 +1901,59 @@ static Genesys_Model canon_lide_110_model = { 400 }; +static Genesys_Model canon_lide_120_model = { + "canon-lide-120", /* Name */ + "Canon", /* Device vendor string */ + "LiDE 120", /* Device model name */ + GENESYS_GL124, + NULL, + + {4800, 2400, 1200, 600, 300, 150, 100, 75, 0}, /* possible x-resolutions */ + {4800, 2400, 1200, 600, 300, 150, 100, 75, 0}, /* possible y-resolutions */ + {16, 8, 0}, /* possible depths in gray mode */ + {16, 8, 0}, /* possible depths in color mode */ + + SANE_FIX (2.2), /* Start of scan area in mm (x) */ + SANE_FIX (9.0), /* Start of scan area in mm (y) */ + SANE_FIX (216.70), /* Size of scan area in mm (x) */ + SANE_FIX (300.0), /* Size of scan area in mm (y) */ + + SANE_FIX (1.0), /* Start of white strip in mm (y) */ + SANE_FIX (0.0), /* Start of black mark in mm (x) */ + + SANE_FIX (0.0), /* Start of scan area in TA mode in mm (x) */ + SANE_FIX (0.0), /* Start of scan area in TA mode in mm (y) */ + SANE_FIX (100.0), /* Size of scan area in TA mode in mm (x) */ + SANE_FIX (100.0), /* Size of scan area in TA mode in mm (y) */ + + SANE_FIX (0.0), /* Start of white strip in TA mode in mm (y) */ + + SANE_FIX (0.0), /* Size of scan area after paper sensor stops + sensing document in mm */ + SANE_FIX (0.0), /* Amount of feeding needed to eject document + after finishing scanning in mm */ + + 0, 0, 0, /* RGB CCD Line-distance correction in pixel */ + + COLOR_ORDER_RGB, /* Order of the CCD/CIS colors */ + + SANE_TRUE, /* Is this a CIS scanner? */ + SANE_FALSE, /* Is this a sheetfed scanner? */ + CIS_CANONLIDE120, + DAC_CANONLIDE110, + GPO_CANONLIDE110, + MOTOR_CANONLIDE110, + GENESYS_FLAG_SKIP_WARMUP + | GENESYS_FLAG_OFFSET_CALIBRATION + | GENESYS_FLAG_DARK_CALIBRATION + | GENESYS_FLAG_HALF_CCD_MODE + | GENESYS_FLAG_SHADING_REPARK + | GENESYS_FLAG_CUSTOM_GAMMA, + GENESYS_HAS_SCAN_SW | GENESYS_HAS_COPY_SW | GENESYS_HAS_EMAIL_SW | GENESYS_HAS_FILE_SW, + 50, + 400 +}; + static Genesys_Model canon_lide_210_model = { "canon-lide-210", /* Name */ @@ -1908,6 +2008,59 @@ static Genesys_Model canon_lide_210_model = { 400 }; +static Genesys_Model canon_lide_220_model = { + "canon-lide-220", /* Name */ + "Canon", /* Device vendor string */ + "LiDE 220", /* Device model name */ + GENESYS_GL124, /* or a compatible one */ + NULL, + + {4800, 2400, 1200, 600, 300, 150, 100, 75, 0}, /* possible x-resolutions */ + {4800, 2400, 1200, 600, 300, 150, 100, 75, 0}, /* possible y-resolutions */ + {16, 8, 0}, /* possible depths in gray mode */ + {16, 8, 0}, /* possible depths in color mode */ + + SANE_FIX (2.2), /* Start of scan area in mm (x) */ + SANE_FIX (8.7), /* Start of scan area in mm (y) */ + SANE_FIX (216.70), /* Size of scan area in mm (x) */ + SANE_FIX (297.5), /* Size of scan area in mm (y) */ + + SANE_FIX (0.0), /* Start of white strip in mm (y) */ + SANE_FIX (0.0), /* Start of black mark in mm (x) */ + + SANE_FIX (0.0), /* Start of scan area in TA mode in mm (x) */ + SANE_FIX (0.0), /* Start of scan area in TA mode in mm (y) */ + SANE_FIX (100.0), /* Size of scan area in TA mode in mm (x) */ + SANE_FIX (100.0), /* Size of scan area in TA mode in mm (y) */ + + SANE_FIX (0.0), /* Start of white strip in TA mode in mm (y) */ + + SANE_FIX (0.0), /* Size of scan area after paper sensor stops + sensing document in mm */ + SANE_FIX (0.0), /* Amount of feeding needed to eject document + after finishing scanning in mm */ + + 0, 0, 0, /* RGB CCD Line-distance correction in pixel */ + + COLOR_ORDER_RGB, /* Order of the CCD/CIS colors */ + + SANE_TRUE, /* Is this a CIS scanner? */ + SANE_FALSE, /* Is this a sheetfed scanner? */ + CIS_CANONLIDE220, + DAC_CANONLIDE110, + GPO_CANONLIDE210, + MOTOR_CANONLIDE210, + GENESYS_FLAG_SKIP_WARMUP + | GENESYS_FLAG_OFFSET_CALIBRATION + | GENESYS_FLAG_DARK_CALIBRATION + | GENESYS_FLAG_HALF_CCD_MODE + | GENESYS_FLAG_SHADING_REPARK + | GENESYS_FLAG_CUSTOM_GAMMA, + GENESYS_HAS_SCAN_SW | GENESYS_HAS_COPY_SW | GENESYS_HAS_EMAIL_SW | GENESYS_HAS_FILE_SW | GENESYS_HAS_EXTRA_SW, + 60, + 400 +}; + static Genesys_Model canon_5600f_model = { "canon-5600f", /* Name */ "Canon", /* Device vendor string */ @@ -3507,7 +3660,9 @@ static Genesys_USB_Device_Entry genesys_usb_device_list[] = { {0x03f0, 0x4705, &hpn6310_model}, /* GL124 devices */ {0x04a9, 0x1909, &canon_lide_110_model}, + {0x04a9, 0x190e, &canon_lide_120_model}, {0x04a9, 0x190a, &canon_lide_210_model}, + {0x04a9, 0x190f, &canon_lide_220_model}, {0, 0, NULL} }; diff --git a/backend/genesys_gl124.c b/backend/genesys_gl124.c index 86aa4ee..eaac873 100644 --- a/backend/genesys_gl124.c +++ b/backend/genesys_gl124.c @@ -852,7 +852,7 @@ gl124_init_motor_regs_scan (Genesys_Device * dev, } else { - min_speed = 600; + min_speed = 900; if(dev->model->ccd_type==MOTOR_CANONLIDE110) { min_speed = 300; @@ -2108,6 +2108,17 @@ gl124_slow_back_home (Genesys_Device * dev, SANE_Bool wait_until_home) return SANE_STATUS_GOOD; } + /* feed a little first */ + if (strcmp (dev->model->name, "canon-lide-210") == 0) + { + status = gl124_feed (dev, 20, SANE_TRUE); + if (status != SANE_STATUS_GOOD) + { + DBG (DBG_error, "%s: failed to do initial feed: %s\n", __FUNCTION__, sane_strstatus (status)); + return status; + } + } + memcpy (local_reg, dev->reg, GENESYS_GL124_MAX_REGS * sizeof (Genesys_Register_Set)); resolution=sanei_genesys_get_lowest_dpi(dev); @@ -2202,12 +2213,13 @@ gl124_slow_back_home (Genesys_Device * dev, SANE_Bool wait_until_home) /** @brief moves the slider to steps at motor base dpi * @param dev device to work on * @param steps number of steps to move + * @param reverse true is moving backward * */ #ifndef UNIT_TESTING static #endif SANE_Status -gl124_feed (Genesys_Device * dev, unsigned int steps) +gl124_feed (Genesys_Device * dev, unsigned int steps, int reverse) { Genesys_Register_Set local_reg[GENESYS_GL124_MAX_REGS]; SANE_Status status; @@ -2242,9 +2254,7 @@ gl124_feed (Genesys_Device * dev, unsigned int steps) SCAN_FLAG_IGNORE_LINE_DISTANCE); if (status != SANE_STATUS_GOOD) { - DBG (DBG_error, - "gl124_feed: failed to set up registers: %s\n", - sane_strstatus (status)); + DBG (DBG_error, "%s: failed to set up registers: %s\n", __FUNCTION__, sane_strstatus (status)); DBGCOMPLETED; return status; } @@ -2262,6 +2272,13 @@ gl124_feed (Genesys_Device * dev, unsigned int steps) r = sanei_genesys_get_address (local_reg, REG01); r->value &= ~REG01_SCAN; + /* set up for reverse if needed */ + if(reverse) + { + r = sanei_genesys_get_address (local_reg, REG02); + r->value |= REG02_MTRREV; + } + /* send registers */ RIE (dev->model->cmd_set->bulk_write_register (dev, local_reg, GENESYS_GL124_MAX_REGS)); @@ -2653,7 +2670,7 @@ gl124_init_regs_for_scan (Genesys_Device * dev) if(channels*dev->settings.yres>=600 && move>700) { - status = gl124_feed (dev, move-500); + status = gl124_feed (dev, move-500, SANE_FALSE); if (status != SANE_STATUS_GOOD) { DBG (DBG_error, "%s: failed to move to scan area\n",__FUNCTION__); @@ -3511,12 +3528,13 @@ gl124_init_gpio (Genesys_Device * dev) DBGSTART; /* per model GPIO layout */ - if (strcmp (dev->model->name, "canon-lide-110") == 0) + if ((strcmp (dev->model->name, "canon-lide-110") == 0) + ||(strcmp (dev->model->name, "canon-lide-120") == 0)) { idx = 0; } else - { /* canon LiDE 210 case */ + { /* canon LiDE 210 and 220 case */ idx = 1; } @@ -3544,12 +3562,13 @@ gl124_init_memory_layout (Genesys_Device * dev) DBGSTART; /* point to per model memory layout */ - if (strcmp (dev->model->name, "canon-lide-110") == 0) + if ((strcmp (dev->model->name, "canon-lide-110") == 0) + ||(strcmp (dev->model->name, "canon-lide-120") == 0)) { idx = 0; } else - { /* canon LiDE 210 case */ + { /* canon LiDE 210 and 220 case */ idx = 1; } diff --git a/backend/genesys_gl124.h b/backend/genesys_gl124.h index 8b9998a..ae8016c 100644 --- a/backend/genesys_gl124.h +++ b/backend/genesys_gl124.h @@ -620,11 +620,23 @@ static Sensor_Profile sensors[]={ {CIS_CANONLIDE110, 1200, 0, 10528, 0x1e, 0x9f, 0x55, 5168, 163, 101, 388, 574, 393, order_01 , 0x00, 0x08, 0x20, 0x22}, {CIS_CANONLIDE110, 2400, 0, 20864, 0x1e, 0x9f, 0x55, 5168, 163, 4679, 6839, 8401, 6859, order_0213, 0x00, 0x06, 0x20, 0x24}, + /* LiDE 120 */ + {CIS_CANONLIDE120, 600, 1, 2768, 0x0f, 0x9f, 0x55, 2584, 154, 101, 388, 574, 393, NULL , 0x00, 0x0c, 0x20, 0x21}, + {CIS_CANONLIDE120, 600, 0, 5360, 0x0f, 0x9f, 0x55, 5168, 163, 101, 388, 574, 393, NULL , 0x00, 0x0a, 0x20, 0x21}, + {CIS_CANONLIDE120, 1200, 0, 10528, 0x0f, 0x9f, 0x55, 5168, 163, 101, 388, 574, 393, order_01 , 0x00, 0x08, 0x20, 0x22}, + {CIS_CANONLIDE120, 2400, 0, 20864, 0x0f, 0x9f, 0x55, 5168, 163, 4679, 6839, 8401, 6859, order_0213, 0x00, 0x06, 0x20, 0x24}, + /* LiDE 210 */ {CIS_CANONLIDE210, 600, 1, 2768, 0x1e, 0x9f, 0x55, 2584, 154, 101, 388, 574, 393, NULL , 0x00, 0x0c, 0x20, 0x21}, {CIS_CANONLIDE210, 600, 0, 5360, 0x1e, 0x9f, 0x55, 5168, 163, 101, 388, 574, 393, NULL , 0x00, 0x0a, 0x20, 0x21}, {CIS_CANONLIDE210, 1200, 0, 10528, 0x1e, 0x9f, 0x55, 5168, 163, 101, 388, 574, 393, order_01 , 0x00, 0x08, 0x20, 0x22}, {CIS_CANONLIDE210, 2400, 0, 20864, 0x1e, 0x9f, 0x55, 5168, 163, 4679, 6839, 8401, 6859, order_0213, 0x00, 0x06, 0x20, 0x24}, + + /* LiDE 220 */ + {CIS_CANONLIDE220, 600, 1, 2768, 0x0f, 0x9f, 0x55, 2584, 154, 101, 388, 574, 393, NULL , 0x00, 0x0c, 0x20, 0x21}, + {CIS_CANONLIDE220, 600, 0, 5360, 0x0f, 0x9f, 0x55, 5168, 163, 101, 388, 574, 393, NULL , 0x00, 0x0a, 0x20, 0x21}, + {CIS_CANONLIDE220, 1200, 0, 10528, 0x0f, 0x9f, 0x55, 5168, 163, 101, 388, 574, 393, order_01 , 0x00, 0x08, 0x20, 0x22}, + {CIS_CANONLIDE220, 2400, 0, 20864, 0x0f, 0x9f, 0x55, 5168, 163, 4679, 6839, 8401, 6859, order_0213, 0x00, 0x06, 0x20, 0x24}, }; @@ -704,7 +716,7 @@ SANE_Status gl124_send_shading_data (Genesys_Device * dev, uint8_t * data, int s #ifndef UNIT_TESTING static #endif -SANE_Status gl124_feed (Genesys_Device * dev, unsigned int steps); +SANE_Status gl124_feed (Genesys_Device * dev, unsigned int steps, int reverse); GENESYS_STATIC SANE_Status gl124_stop_action (Genesys_Device * dev); diff --git a/backend/genesys_low.c b/backend/genesys_low.c index 63420e4..0af2149 100644 --- a/backend/genesys_low.c +++ b/backend/genesys_low.c @@ -1437,6 +1437,7 @@ sanei_genesys_wait_for_home (Genesys_Device * dev) SANE_Status status; uint8_t val; int loop; + int max=300; DBGSTART; @@ -1492,7 +1493,14 @@ sanei_genesys_wait_for_home (Genesys_Device * dev) } ++loop; } - while (loop < 300 && !(val & HOMESNR) && status == SANE_STATUS_GOOD); + while (loop < max && !(val & HOMESNR) && status == SANE_STATUS_GOOD); + + /* if after the timeout, head is still not parked, error out */ + if(loop >= max && !(val & HOMESNR) && status == SANE_STATUS_GOOD) + { + DBG (DBG_error, "%s: failed to reach park position %ds\n", __FUNCTION__, max/10); + return SANE_STATUS_IO_ERROR; + } DBGCOMPLETED; return status; @@ -1755,7 +1763,11 @@ int sanei_genesys_get_lowest_dpi(Genesys_Device *dev) /** @brief check is a cache entry may be used * Compares current settings with the cache entry and return * SANE_TRUE if they are compatible. - */ + * A calibration cache is compatible if color mode and x dpi match the user + * requested scan. In the case of CIS scanners, dpi isn't a criteria. + * flatbed cache entries are considred too old and then expires if they + * are older than the expiration time option, forcing calibration at least once + * then given time. */ SANE_Status sanei_genesys_is_compatible_calibration (Genesys_Device * dev, Genesys_Calibration_Cache * cache, @@ -1771,22 +1783,20 @@ sanei_genesys_is_compatible_calibration (Genesys_Device * dev, if(dev->model->cmd_set->calculate_current_setup==NULL) { - DBG (DBG_proc, - "sanei_genesys_is_compatible_calibration: no calculate_setup, non compatible cache\n"); + DBG (DBG_proc, "%s: no calculate_setup, non compatible cache\n", __FUNCTION__); return SANE_STATUS_UNSUPPORTED; } status = dev->model->cmd_set->calculate_current_setup (dev); if (status != SANE_STATUS_GOOD) { - DBG (DBG_error, - "sanei_genesys_is_compatible_calibration: failed to calculate current setup: %s\n", + DBG (DBG_error, "%s: failed to calculate current setup: %s\n", __FUNCTION__, sane_strstatus (status)); return status; } dev->current_setup.scan_method = dev->settings.scan_method; - DBG (DBG_proc, "sanei_genesys_is_compatible_calibration: checking\n"); + DBG (DBG_proc, "%s: checking\n", __FUNCTION__); /* a calibration cache is compatible if color mode and x dpi match the user * requested scan. In the case of CIS scanners, dpi isn't a criteria */ @@ -1804,39 +1814,36 @@ sanei_genesys_is_compatible_calibration (Genesys_Device * dev, resolution=sanei_genesys_compute_dpihw(dev,dev->settings.xres); compatible = (resolution == ((int) sanei_genesys_compute_dpihw(dev,cache->used_setup.xres))); } + DBG (DBG_io, "%s: after resolution check current compatible=%d\n", __FUNCTION__, compatible); if (dev->current_setup.half_ccd != cache->used_setup.half_ccd) { - DBG (DBG_io, - "sanei_genesys_is_compatible_calibration: half_ccd=%d, used=%d\n", + DBG (DBG_io, "%s: half_ccd=%d, used=%d\n", __FUNCTION__, dev->current_setup.half_ccd, cache->used_setup.half_ccd); compatible = 0; } if (dev->current_setup.scan_method != cache->used_setup.scan_method) { - DBG (DBG_io, - "sanei_genesys_is_compatible_calibration: current method=%d, used=%d\n", + DBG (DBG_io, "%s: current method=%d, used=%d\n", __FUNCTION__, dev->current_setup.scan_method, cache->used_setup.scan_method); compatible = 0; } if (!compatible) { - DBG (DBG_proc, - "sanei_genesys_is_compatible_calibration: completed, non compatible cache\n"); + DBG (DBG_proc, "%s: completed, non compatible cache\n", __FUNCTION__); return SANE_STATUS_UNSUPPORTED; } - /* a cache entry expires after 60 minutes for non sheetfed scanners */ + /* a cache entry expires after afetr expiration time for non sheetfed scanners */ /* this is not taken into account when overwriting cache entries */ #ifdef HAVE_SYS_TIME_H - if(for_overwrite == SANE_FALSE) + if(for_overwrite == SANE_FALSE && dev->settings.expiration_time >=0) { gettimeofday (&time, NULL); - if ((time.tv_sec - cache->last_calibration > 60 * 60) + if ((time.tv_sec - cache->last_calibration > dev->settings.expiration_time*60) && (dev->model->is_sheetfed == SANE_FALSE) && (dev->settings.scan_method == SCAN_METHOD_FLATBED)) { - DBG (DBG_proc, - "sanei_genesys_is_compatible_calibration: expired entry, non compatible cache\n"); + DBG (DBG_proc, "%s: expired entry, non compatible cache\n", __FUNCTION__); return SANE_STATUS_UNSUPPORTED; } } diff --git a/backend/genesys_low.h b/backend/genesys_low.h index b1f29e1..b5a0a8f 100644 --- a/backend/genesys_low.h +++ b/backend/genesys_low.h @@ -382,6 +382,8 @@ Genesys_Color_Order; #define CCD_PLUSTEK3800 26 #define CIS_CANONLIDE210 27 #define CIS_CANONLIDE80 28 +#define CIS_CANONLIDE220 29 +#define CIS_CANONLIDE120 30 #define GPO_UMAX 0 #define GPO_ST12 1 @@ -705,6 +707,9 @@ typedef struct /**< value for brightness enhancement in the [-100..100] range */ int brightness; + + /**< cahe entries expiration time */ + int expiration_time; } Genesys_Settings; typedef struct Genesys_Current_Setup diff --git a/backend/hp5590.c b/backend/hp5590.c index 8db3d5e..7b1cd60 100644 --- a/backend/hp5590.c +++ b/backend/hp5590.c @@ -1239,6 +1239,14 @@ convert_to_rgb (struct hp5590_scanner *scanner, SANE_Byte *data, SANE_Int size) buf[i*6+5] = ptr[2*i+bytes_per_color*2]; } } + + /* Invert pixels in case of TMA Negatives source has been selected */ + if (scanner->source == SOURCE_TMA_NEGATIVES) + { + for (i = 0; i < bytes_per_line; i++) + buf[i] ^= 0xff; + } + memcpy (ptr, buf, bytes_per_line); } free (buf); diff --git a/backend/pixma.c b/backend/pixma.c index 4c7ec46..3396155 100644 --- a/backend/pixma.c +++ b/backend/pixma.c @@ -1,6 +1,6 @@ /* SANE - Scanner Access Now Easy. - Copyright (C) 2011-2014 Rolf Bensch + Copyright (C) 2011-2015 Rolf Bensch Copyright (C) 2007-2008 Nicolas Martin, Copyright (C) 2006-2007 Wittawat Yamwong diff --git a/backend/pixma.h b/backend/pixma.h index af38725..eedf74d 100644 --- a/backend/pixma.h +++ b/backend/pixma.h @@ -1,6 +1,6 @@ /* SANE - Scanner Access Now Easy. - Copyright (C) 2011-2014 Rolf Bensch + Copyright (C) 2011-2015 Rolf Bensch Copyright (C) 2007-2008 Nicolas Martin, Copyright (C) 2006-2007 Wittawat Yamwong @@ -114,7 +114,7 @@ typedef uint32_t uint32_t; /**@{*/ #define PIXMA_VERSION_MAJOR 0 #define PIXMA_VERSION_MINOR 17 -#define PIXMA_VERSION_BUILD 14 +#define PIXMA_VERSION_BUILD 17 /**@}*/ /** \name Error codes */ diff --git a/backend/pixma_common.c b/backend/pixma_common.c index 771a5af..0945a69 100644 --- a/backend/pixma_common.c +++ b/backend/pixma_common.c @@ -1,6 +1,6 @@ /* SANE - Scanner Access Now Easy. - Copyright (C) 2011-2014 Rolf Bensch + Copyright (C) 2011-2015 Rolf Bensch Copyright (C) 2007-2008 Nicolas Martin, Copyright (C) 2006-2007 Wittawat Yamwong diff --git a/backend/pixma_common.h b/backend/pixma_common.h index 55ab570..069f8b8 100644 --- a/backend/pixma_common.h +++ b/backend/pixma_common.h @@ -1,6 +1,6 @@ /* SANE - Scanner Access Now Easy. - Copyright (C) 2011-2014 Rolf Bensch + Copyright (C) 2011-2015 Rolf Bensch Copyright (C) 2006-2007 Wittawat Yamwong This file is part of the SANE package. diff --git a/backend/pixma_imageclass.c b/backend/pixma_imageclass.c index b2526fa..3995805 100644 --- a/backend/pixma_imageclass.c +++ b/backend/pixma_imageclass.c @@ -1,6 +1,6 @@ /* SANE - Scanner Access Now Easy. - Copyright (C) 2011-2014 Rolf Bensch + Copyright (C) 2011-2015 Rolf Bensch Copyright (C) 2007-2009 Nicolas Martin, Copyright (C) 2008 Dennis Lou, dlou 99 at yahoo dot com @@ -95,8 +95,13 @@ #define MF6680_PID 0x26fa #define MF8030_PID 0x2707 #define IR1133_PID 0x2742 +#define MF5900_PID 0x2743 #define D530_PID 0x2775 #define MF8500_PID 0x277a +#define MF6100_PID 0x278e +#define MF820_PID 0x27a6 +#define MF220_PID 0x27a8 +#define MF210_PID 0x27a9 enum iclass_state_t @@ -799,6 +804,11 @@ const pixma_config_t pixma_iclass_devices[] = { DEV ("Canon i-SENSYS MF5880dn", "MF5880", MF5880_PID, 600, 0, 640, 877, PIXMA_CAP_ADFDUP), DEV ("Canon i-SENSYS MF6680dn", "MF6680", MF6680_PID, 600, 0, 640, 877, PIXMA_CAP_ADFDUP), DEV ("Canon imageRUNNER 1133", "iR1133", IR1133_PID, 600, 0, 637, 877, PIXMA_CAP_ADFDUP), + DEV ("Canon i-SENSYS MF5900 Series", "MF5900", MF5900_PID, 600, 0, 640, 1050, PIXMA_CAP_ADFDUP), DEV ("Canon i-SENSYS MF8500C Series", "MF8500C", MF8500_PID, 600, 0, 640, 1050, PIXMA_CAP_ADFDUP), + DEV ("Canon i-SENSYS MF6100 Series", "MF6100", MF6100_PID, 600, 0, 640, 1050, PIXMA_CAP_ADFDUP), + DEV ("Canon imageClass MF810/820", "MF810/820", MF820_PID, 600, 0, 640, 1050, PIXMA_CAP_ADFDUP), + DEV ("Canon i-SENSYS MF220 Series", "MF220", MF220_PID, 600, 0, 640, 1050, PIXMA_CAP_ADFDUP), + DEV ("Canon i-SENSYS MF210 Series", "MF210", MF210_PID, 600, 0, 640, 1050, PIXMA_CAP_ADF), DEV (NULL, NULL, 0, 0, 0, 0, 0, 0) }; diff --git a/backend/pixma_io_sanei.c b/backend/pixma_io_sanei.c index 59d1602..08ec525 100644 --- a/backend/pixma_io_sanei.c +++ b/backend/pixma_io_sanei.c @@ -1,7 +1,7 @@ /* SANE - Scanner Access Now Easy. * For limitations, see function sanei_usb_get_vendor_product(). - Copyright (C) 2011-2014 Rolf Bensch + Copyright (C) 2011-2015 Rolf Bensch Copyright (C) 2006-2007 Wittawat Yamwong This file is part of the SANE package. diff --git a/backend/pixma_mp150.c b/backend/pixma_mp150.c index 22ca41d..79711fe 100644 --- a/backend/pixma_mp150.c +++ b/backend/pixma_mp150.c @@ -1,6 +1,6 @@ /* SANE - Scanner Access Now Easy. - Copyright (C) 2011-2014 Rolf Bensch + Copyright (C) 2011-2015 Rolf Bensch Copyright (C) 2007-2009 Nicolas Martin, Copyright (C) 2006-2007 Wittawat Yamwong @@ -224,6 +224,10 @@ #define MG2900_PID 0x1780 #define E460_PID 0x1788 +/* 2015 new devices (untested) */ +#define MX490_PID 0x1787 +#define E480_PID 0x1789 + /* Generation 4 XML messages that encapsulates the Pixma protocol messages */ #define XML_START_1 \ @@ -1149,6 +1153,7 @@ post_process_image_data (pixma_t * s, pixma_imagebuf_t * ib) && s->cfg->pid != MG5300_PID && s->cfg->pid != MG5500_PID && s->cfg->pid != MG6300_PID + && s->cfg->pid != MG6400_PID && s->cfg->pid != MG7100_PID) reorder_pixels (mp->linebuf, sptr, c, n, m, s->param->wx, line_size); @@ -1817,5 +1822,9 @@ const pixma_config_t pixma_mp150_devices[] = { DEVICE ("Canon PIXMA MG2900 Series", "MG2900", MG2900_PID, 600, 0, 0, 638, 877, PIXMA_CAP_CIS), DEVICE ("Canon PIXMA E460 Series", "E460", E460_PID, 600, 0, 0, 638, 877, PIXMA_CAP_CIS), + /* Latest devices (2015) Generation 4 CIS */ + DEVICE ("Canon PIXMA MX490 Series", "MX490", MX490_PID, 600, 0, 0, 638, 1050, PIXMA_CAP_CIS | PIXMA_CAP_ADF), + DEVICE ("Canon PIXMA E480 Series", "E480", E480_PID, 600, 0, 0, 638, 1050, PIXMA_CAP_CIS | PIXMA_CAP_ADF), + END_OF_DEVICE_LIST }; diff --git a/backend/pixma_mp730.c b/backend/pixma_mp730.c index 58d1994..2184ff7 100644 --- a/backend/pixma_mp730.c +++ b/backend/pixma_mp730.c @@ -1,6 +1,6 @@ /* SANE - Scanner Access Now Easy. - Copyright (C) 2011-2014 Rolf Bensch + Copyright (C) 2011-2015 Rolf Bensch Copyright (C) 2007-2008 Nicolas Martin, Copyright (C) 2006-2007 Wittawat Yamwong diff --git a/backend/pixma_mp750.c b/backend/pixma_mp750.c index e46a942..8d2d94c 100644 --- a/backend/pixma_mp750.c +++ b/backend/pixma_mp750.c @@ -1,6 +1,6 @@ /* SANE - Scanner Access Now Easy. - Copyright (C) 2011-2014 Rolf Bensch + Copyright (C) 2011-2015 Rolf Bensch Copyright (C) 2006-2007 Wittawat Yamwong This file is part of the SANE package. diff --git a/backend/pixma_mp810.c b/backend/pixma_mp810.c index 59e96eb..e8bf75f 100644 --- a/backend/pixma_mp810.c +++ b/backend/pixma_mp810.c @@ -1,6 +1,6 @@ /* SANE - Scanner Access Now Easy. - Copyright (C) 2011-2014 Rolf Bensch + Copyright (C) 2011-2015 Rolf Bensch Copyright (C) 2007-2009 Nicolas Martin, Copyright (C) 2006-2007 Wittawat Yamwong @@ -657,6 +657,23 @@ static unsigned calc_shifting (pixma_t * s) } break; + case MP990_PID: + if (s->param->xdpi == 4800) + { + if (is_scanning_from_tpu (s)) + { + mp->stripe_shift = 6; + mp->stripe_shift2 = 6; + } + else + { + mp->stripe_shift = 3; + mp->stripe_shift2 = 3; + } + mp->jumplines = 34; /* better than 32 or 34 : applies to flatbed & TPU */ + } + break; + default: /* Default, and all CIS devices */ break; } @@ -850,7 +867,7 @@ static int send_scan_param (pixma_t * s) * 0x24 | 1 | all | 0x01 * -----+-------+---------+--------------------------- * 0x25 | 1 | default | 0x00; cs8800f: 0x01 - * | | tpu | 0x00; cs9000f, mg8200: 0x01 + * | | tpu | 0x00; cs9000f, mg8200, mp990: 0x01 * | | tpuir | cs9000f: 0x00 * -----+-------+---------+--------------------------- * ... | 1 | all | 0x00 @@ -908,8 +925,8 @@ static int send_scan_param (pixma_t * s) data[0x23] = 0x02; data[0x24] = 0x01; - /* MG8200 addition */ - if (s->cfg->pid == MG8200_PID) + /* MG8200 & MP990 addition */ + if (s->cfg->pid == MG8200_PID || s->cfg->pid == MP990_PID) { if (is_scanning_from_tpu (s)) { diff --git a/configure.in b/configure.in index 4365868..48953d2 100644 --- a/configure.in +++ b/configure.in @@ -610,7 +610,7 @@ AC_ARG_ENABLE(local-backends, ALL_BACKENDS="abaton agfafocus apple artec artec_eplus48u as6e \ avision bh canon canon630u canon_dr canon_pp cardscan \ coolscan coolscan2 coolscan3 dc25 dc210 dc240 \ - dell1600n_net dmc epjitsu epson epson2 fujitsu genesys \ + dell1600n_net dmc epjitsu epson epson2 epsonds fujitsu genesys \ gphoto2 gt68xx hp hp3500 hp3900 hp4200 hp5400 \ hp5590 hpsj5s hpljm1005 hs2p ibm kodak kodakaio kvs1025 kvs20xx \ kvs40xx leo lexmark ma1509 magicolor \ diff --git a/debian/changelog b/debian/changelog index c7f5ad4..cba9e3b 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,63 @@ +sane-backends (1.0.25+git20150425-1) experimental; urgency=low + + * Build from daily snapshot sane-backends-git20150425.tar.gz. + * Refresh patches: + - debian/patches/dll_backend_conf.patch + - debian/patches/libsane_deps.patch + - debian/patches/multiarch_dll_search_path.patch + - debian/patches/multiarch_manpages_libdir.patch + - debian/patches/sane-desc.c_debian_mods.patch. + * New debian/TROUBLESHOOTING.debian: + - Add part for "usbfs: interface 1 claimed by usblp while ‘scanimage’ sets + config #1. + * Add link to TROUBLESHOOTING.debian into debian/README.debian. + * New debian/patches/001-scanimage_manpage.patch: + - Add remark for parameter to manpage. + * New debian/patches/0005-mk_reproducible_results.patch: + - Make builds reproducible. + * debian/control: + - On package libsane-dev change Depends from libgphoto2-2-dev to + libgphoto2-dev (auto-libgphoto2 transition). + - On package libsane remove package hpoj from Suggests + - Remove useless replaces because latest release in stable is 1.0.22-7: + + sane-utils: libsane (<< 1.0.11-4) + + libsane-common: libsane (<< 1.0.22-4~) + + libsane: libsane-extras (<< 1.0.18.14) + + libsane-dev: libsane-extras-dev (<< 1.0.18.14) + + libsane-dbg: libsane-extras-dbg (<< 1.0.18.14) + - Remove "libv4l-dev [linux-any]" from Build-Depends and Depends. + * debian/rules: + - Enable pnm backend for testing. + - Remove override_dh_builddeb because compression xz is now standard. + - Add configure parameter --without-vl4 to disable v4l + backend. + + The backend is writen for the kernel 2.4 and v4l. Now + we are at kernel 3.16 and v4l2. + * debian/saned@.service: + - Remove Alias from [Install] Section. + * sane-utils.[postinst|postrm]: + - Replace fixed path with a POSIX-compliant shell function to check + the existence of a command. + * Add autopkgtests: + - debian/control: + + Add Testsuite: autopkgtest. + - New debian/tests/control. + - New debian/tests/start-net: + - Testing network interface activation with systemd. + * Add symbols file: + - debian/rules: rewrite override_dh_makeshlibs. + * Comment out "set -e" at debian/sane-utils.postrm to prevent + piuparts errors. + * debian/saned@.service: + - Change StandardInput=socket to StandardInput=null to enable + working over network. + * New debian/patches/0510-disable-html-tests.patch: + - Disable some html tests because + debian/patches/sane-desc.c_debian_mods.patch change some links to + the doc directory. + + -- Jörg Frings-Fürst Sun, 26 Apr 2015 16:21:51 +0200 + sane-backends (1.0.25+git20150102-1) experimental; urgency=medium * Build from daily snapshot sane-backends-git20150102.tar.gz. diff --git a/debian/control b/debian/control index e01cd80..a1a5933 100644 --- a/debian/control +++ b/debian/control @@ -19,12 +19,12 @@ Build-Depends: libsystemd-dev [linux-any], libtiff-dev, libusb-1.0-0-dev [!hurd-i386], - libv4l-dev [linux-any], pkg-config, po-debconf, texlive, texlive-latex-extra, xutils-dev +Testsuite: autopkgtest Homepage: http://www.sane-project.org Vcs-Git: git://anonscm.debian.org/collab-maint/sane-backends.git Vcs-Browser: http://anonscm.debian.org/cgit/collab-maint/sane-backends.git @@ -38,7 +38,6 @@ Depends: ${misc:Depends}, ${shlibs:Depends} Suggests: avahi-daemon, unpaper -Replaces: libsane (<< 1.0.11-4) Description: API library for scanners -- utilities SANE stands for "Scanner Access Now Easy" and is an application programming interface (API) that provides standardized access to any @@ -58,7 +57,6 @@ Section: libs Architecture: all Multi-Arch: foreign Depends: ${misc:Depends} -Replaces: libsane (<< 1.0.22-4~) Description: API library for scanners -- documentation and support files SANE stands for "Scanner Access Now Easy" and is an application programming interface (API) that provides standardized access to any @@ -86,8 +84,7 @@ Depends: ${misc:Depends}, ${shlibs:Depends} Recommends: libsane-extras, sane-utils (>= ${binary:Version}) -Suggests: avahi-daemon, hplip, hpoj -Replaces: libsane-extras (<< 1.0.18.14) +Suggests: avahi-daemon, hplip Description: API library for scanners SANE stands for "Scanner Access Now Easy" and is an application programming interface (API) that provides standardized access to any @@ -112,17 +109,15 @@ Architecture: any Depends: libavahi-client-dev, libcam-dev [kfreebsd-any], - libgphoto2-2-dev, + libgphoto2-dev, libieee1284-3-dev [!hurd-i386], libjpeg-dev, libsane (= ${binary:Version}), libtiff-dev, libusb-1.0-0-dev [!hurd-i386], - libv4l-dev [linux-any], pkg-config, ${misc:Depends} Recommends: libsane-extras-dev -Replaces: libsane-extras-dev (<< 1.0.18.14) Description: API development library for scanners [development files] SANE stands for "Scanner Access Now Easy" and is an application programming interface (API) that provides standardized access to any @@ -144,7 +139,6 @@ Architecture: any Multi-Arch: same Depends: libsane (= ${binary:Version}), ${misc:Depends} Recommends: libsane-extras-dbg -Replaces: libsane-extras-dbg (<< 1.0.18.14) Description: API development library for scanners [debug symbols] SANE stands for "Scanner Access Now Easy" and is an application programming interface (API) that provides standardized access to any diff --git a/debian/libsane.symbols b/debian/libsane.symbols new file mode 100644 index 0000000..54e92d8 --- /dev/null +++ b/debian/libsane.symbols @@ -0,0 +1,2065 @@ +libsane.so.1 libsane #MINVER# + AllocateImageBuffer@Base 1.0.25 + CMD_get_buff_status@Base 1.0.25 + CMD_get_document_existanse@Base 1.0.25 + CMD_read_image@Base 1.0.25 + CMD_read_pic_elements@Base 1.0.25 + CMD_read_support_info@Base 1.0.25 + CMD_request_sense@Base 1.0.25 + CMD_reset_window@Base 1.0.25 + CMD_scan@Base 1.0.25 + CMD_set_timeout@Base 1.0.25 + CMD_set_window@Base 1.0.25 + CMD_test_unit_ready@Base 1.0.25 + CMD_wait_buff_status@Base 1.0.25 + CMD_wait_document_existanse@Base 1.0.25 + MatchVersions@Base 1.0.25 + ProcessAvahiDevice@Base 1.0.25 + RTS_Debug@Base 1.0.25 + RawScan@Base 1.0.25 + RawScanPath@Base 1.0.25 + ReadImageData@Base 1.0.25 + ReadImageDataDuplex@Base 1.0.25 + ReadImageDataSimplex@Base 1.0.25 + WRef@Base 1.0.25 + acccurvecount@Base 1.0.25 + arrangeline2@Base 1.0.25 + arrangeline@Base 1.0.25 + attach@Base 1.0.25 + auto_binarization@Base 1.0.25 + auto_separation@Base 1.0.25 + available_transports@Base 1.0.25 + binarythresholdh@Base 1.0.25 + binarythresholdl@Base 1.0.25 + bjnp_protocol_defs@Base 1.0.25 + buffer_crop@Base 1.0.25 + buffer_deskew@Base 1.0.25 + buffer_despeck@Base 1.0.25 + buffer_isblank@Base 1.0.25 + buffer_rotate@Base 1.0.25 + bw_threshold@Base 1.0.25 + bytesperline@Base 1.0.25 + calibdata@Base 1.0.25 + camera@Base 1.0.25 + cmparray@Base 1.0.25 + cmsg@Base 1.0.25 + compression@Base 1.0.25 + dataline_count@Base 1.0.25 + debug_options@Base 1.0.25 + deccurvecount@Base 1.0.25 + default_gain_offset@Base 1.0.25 + dir_buf2@Base 1.0.25 + dir_list@Base 1.0.25 + e2_ack@Base 1.0.25 + e2_ack_next@Base 1.0.25 + e2_add_depth@Base 1.0.25 + e2_add_resolution@Base 1.0.25 + e2_block_read@Base 1.0.25 + e2_cancel@Base 1.0.25 + e2_check_adf@Base 1.0.25 + e2_check_warm_up@Base 1.0.25 + e2_cmd_info_block@Base 1.0.25 + e2_cmd_simple@Base 1.0.25 + e2_copy_image_data@Base 1.0.25 + e2_dev_init@Base 1.0.25 + e2_dev_model@Base 1.0.25 + e2_dev_post_init@Base 1.0.25 + e2_discover_capabilities@Base 1.0.25 + e2_esc_cmd@Base 1.0.25 + e2_ext_read@Base 1.0.25 + e2_init_parameters@Base 1.0.25 + e2_recv@Base 1.0.25 + e2_recv_info_block@Base 1.0.25 + e2_scan_finish@Base 1.0.25 + e2_send@Base 1.0.25 + e2_set_adf_area@Base 1.0.25 + e2_set_cmd_level@Base 1.0.25 + e2_set_extended_scanning_parameters@Base 1.0.25 + e2_set_fbf_area@Base 1.0.25 + e2_set_model@Base 1.0.25 + e2_set_scanning_parameters@Base 1.0.25 + e2_set_tpu2_area@Base 1.0.25 + e2_set_tpu_area@Base 1.0.25 + e2_setup_block_mode@Base 1.0.25 + e2_start_ext_scan@Base 1.0.25 + e2_start_std_scan@Base 1.0.25 + e2_txrx@Base 1.0.25 + e2_wait_button@Base 1.0.25 + e2_wait_warm_up@Base 1.0.25 + eds_add_depth@Base 1.0.25 + eds_add_resolution@Base 1.0.25 + eds_control@Base 1.0.25 + eds_copy_image_from_ring@Base 1.0.25 + eds_dev_init@Base 1.0.25 + eds_dev_post_init@Base 1.0.25 + eds_fsx@Base 1.0.25 + eds_fsy@Base 1.0.25 + eds_init_parameters@Base 1.0.25 + eds_jpeg_finish@Base 1.0.25 + eds_jpeg_read@Base 1.0.25 + eds_jpeg_read_header@Base 1.0.25 + eds_jpeg_start@Base 1.0.25 + eds_lock@Base 1.0.25 + eds_recv@Base 1.0.25 + eds_ring_avail@Base 1.0.25 + eds_ring_flush@Base 1.0.25 + eds_ring_init@Base 1.0.25 + eds_ring_read@Base 1.0.25 + eds_ring_skip@Base 1.0.25 + eds_ring_write@Base 1.0.25 + eds_send@Base 1.0.25 + eds_set_adf_area@Base 1.0.25 + eds_set_fbf_area@Base 1.0.25 + eds_set_resolution_range@Base 1.0.25 + eds_set_tpu_area@Base 1.0.25 + eds_txrx@Base 1.0.25 + epson_cct_models@Base 1.0.25 + epson_cct_profiles@Base 1.0.25 + epsonds_get_number_of_ids@Base 1.0.25 + epsonds_usb_product_ids@Base 1.0.25 + esci2_can@Base 1.0.25 + esci2_capa@Base 1.0.25 + esci2_fin@Base 1.0.25 + esci2_img@Base 1.0.25 + esci2_info@Base 1.0.25 + esci2_mech@Base 1.0.25 + esci2_para@Base 1.0.25 + esci2_resa@Base 1.0.25 + esci2_stat@Base 1.0.25 + esci2_trdt@Base 1.0.25 + esci_eject@Base 1.0.25 + esci_enable_infrared@Base 1.0.25 + esci_feed@Base 1.0.25 + esci_get_scanning_parameter@Base 1.0.25 + esci_request_command_parameter@Base 1.0.25 + esci_request_extended_identity@Base 1.0.25 + esci_request_extended_status@Base 1.0.25 + esci_request_focus_position@Base 1.0.25 + esci_request_identity2@Base 1.0.25 + esci_request_identity@Base 1.0.25 + esci_request_push_button_status@Base 1.0.25 + esci_request_scanner_status@Base 1.0.25 + esci_request_status@Base 1.0.25 + esci_reset@Base 1.0.25 + esci_set_color_correction_coefficients@Base 1.0.25 + esci_set_gamma_table@Base 1.0.25 + esci_set_resolution@Base 1.0.25 + esci_set_scan_area@Base 1.0.25 + esci_set_scanning_parameter@Base 1.0.25 + esci_set_zoom@Base 1.0.25 + fixed_black_shading@Base 1.0.25 + fixed_white_shading@Base 1.0.25 + g_devices@Base 1.0.25 + g_devlist@Base 1.0.25 + gain@Base 1.0.25 + gamma_params@Base 1.0.25 + getEdgeIterate@Base 1.0.25 + getEdgeSlope@Base 1.0.25 + getTransitionsX@Base 1.0.25 + getTransitionsY@Base 1.0.25 + get_adjust_data@Base 1.0.25 + get_buffer_status@Base 1.0.25 + get_optval_list@Base 1.0.25 + global_firmware_filename@Base 1.0.25 + global_has_cal_buffer@Base 1.0.25 + global_lines_per_block@Base 1.0.25 + grayfilter@Base 1.0.25 + halftone@Base 1.0.25 + halftone_params@Base 1.0.25 + hexdump@Base 1.0.25 + hopper_down@Base 1.0.25 + hp_gamma@Base 1.0.25 + imageheight@Base 1.0.25 + imagesize@Base 1.0.25 + imagewidth3@Base 1.0.25 + inquiry@Base 1.0.25 + jkd_black@Base 1.0.25 + jkd_blackbpl@Base 1.0.25 + kodakaio_com_str@Base 1.0.25 + kv_already_open@Base 1.0.25 + kv_calc_paper_size@Base 1.0.25 + kv_close@Base 1.0.25 + kv_control_option@Base 1.0.25 + kv_enum_devices@Base 1.0.25 + kv_exit@Base 1.0.25 + kv_get_depth@Base 1.0.25 + kv_get_devices_list@Base 1.0.25 + kv_get_mode@Base 1.0.25 + kv_get_option_descriptor@Base 1.0.25 + kv_init_options@Base 1.0.25 + kv_open@Base 1.0.25 + kv_open_by_name@Base 1.0.25 + kv_send_command@Base 1.0.25 + kv_set_window_data@Base 1.0.25 + kv_usb_already_open@Base 1.0.25 + kv_usb_cleanup@Base 1.0.25 + kv_usb_close@Base 1.0.25 + kv_usb_enum_devices@Base 1.0.25 + kv_usb_escape@Base 1.0.25 + kv_usb_open@Base 1.0.25 + kv_usb_send_command@Base 1.0.25 + kvs20xx_document_exist@Base 1.0.25 + kvs20xx_init_options@Base 1.0.25 + kvs20xx_init_window@Base 1.0.25 + kvs20xx_read_image_data@Base 1.0.25 + kvs20xx_read_picture_element@Base 1.0.25 + kvs20xx_reset_window@Base 1.0.25 + kvs20xx_scan@Base 1.0.25 + kvs20xx_sense_handler@Base 1.0.25 + kvs20xx_set_timeout@Base 1.0.25 + kvs20xx_set_window@Base 1.0.25 + kvs20xx_test_unit_ready@Base 1.0.25 + kvs40xx_document_exist@Base 1.0.25 + kvs40xx_init_options@Base 1.0.25 + kvs40xx_init_window@Base 1.0.25 + kvs40xx_read_image_data@Base 1.0.25 + kvs40xx_read_picture_element@Base 1.0.25 + kvs40xx_reset_window@Base 1.0.25 + kvs40xx_scan@Base 1.0.25 + kvs40xx_sense_handler@Base 1.0.25 + kvs40xx_set_timeout@Base 1.0.25 + kvs40xx_set_window@Base 1.0.25 + kvs40xx_test_unit_ready@Base 1.0.25 + line_size@Base 1.0.25 + lineart_width@Base 1.0.25 + linedarlampoff@Base 1.0.25 + little_endian@Base 1.0.25 + mem_total@Base 1.0.25 + mitabla2@Base 1.0.25 + mode_params@Base 1.0.25 + noisematrix@Base 1.0.25 + numVersions@Base 1.0.25 + offset@Base 1.0.25 + paddingtype@Base 1.0.25 + pixeldarklevel@Base 1.0.25 + pixma_activate@Base 1.0.25 + pixma_activate_connection@Base 1.0.25 + pixma_binarize_line@Base 1.0.25 + pixma_deactivate@Base 1.0.25 + pixma_deactivate_connection@Base 1.0.25 + pixma_r_to_ir@Base 1.0.25 + pixma_rgb_to_gray@Base 1.0.25 + pl@Base 1.0.25 + pwmlamplevel@Base 1.0.25 + r_cmd_count@Base 1.0.25 + read_support_info@Base 1.0.25 + read_v15b4@Base 1.0.25 + ret_cancel@Base 1.0.25 + rotateOnCenter@Base 1.0.25 + sane_abaton_cancel@Base 1.0.25 + sane_abaton_close@Base 1.0.25 + sane_abaton_control_option@Base 1.0.25 + sane_abaton_exit@Base 1.0.25 + sane_abaton_get_devices@Base 1.0.25 + sane_abaton_get_option_descriptor@Base 1.0.25 + sane_abaton_get_parameters@Base 1.0.25 + sane_abaton_get_select_fd@Base 1.0.25 + sane_abaton_init@Base 1.0.25 + sane_abaton_open@Base 1.0.25 + sane_abaton_read@Base 1.0.25 + sane_abaton_set_io_mode@Base 1.0.25 + sane_abaton_start@Base 1.0.25 + sane_agfafocus_cancel@Base 1.0.25 + sane_agfafocus_close@Base 1.0.25 + sane_agfafocus_control_option@Base 1.0.25 + sane_agfafocus_exit@Base 1.0.25 + sane_agfafocus_get_devices@Base 1.0.25 + sane_agfafocus_get_option_descriptor@Base 1.0.25 + sane_agfafocus_get_parameters@Base 1.0.25 + sane_agfafocus_get_select_fd@Base 1.0.25 + sane_agfafocus_init@Base 1.0.25 + sane_agfafocus_open@Base 1.0.25 + sane_agfafocus_read@Base 1.0.25 + sane_agfafocus_set_io_mode@Base 1.0.25 + sane_agfafocus_start@Base 1.0.25 + sane_apple_cancel@Base 1.0.25 + sane_apple_close@Base 1.0.25 + sane_apple_control_option@Base 1.0.25 + sane_apple_exit@Base 1.0.25 + sane_apple_get_devices@Base 1.0.25 + sane_apple_get_option_descriptor@Base 1.0.25 + sane_apple_get_parameters@Base 1.0.25 + sane_apple_get_select_fd@Base 1.0.25 + sane_apple_init@Base 1.0.25 + sane_apple_open@Base 1.0.25 + sane_apple_read@Base 1.0.25 + sane_apple_set_io_mode@Base 1.0.25 + sane_apple_start@Base 1.0.25 + sane_artec_cancel@Base 1.0.25 + sane_artec_close@Base 1.0.25 + sane_artec_control_option@Base 1.0.25 + sane_artec_eplus48u_cancel@Base 1.0.25 + sane_artec_eplus48u_close@Base 1.0.25 + sane_artec_eplus48u_control_option@Base 1.0.25 + sane_artec_eplus48u_exit@Base 1.0.25 + sane_artec_eplus48u_get_devices@Base 1.0.25 + sane_artec_eplus48u_get_option_descriptor@Base 1.0.25 + sane_artec_eplus48u_get_parameters@Base 1.0.25 + sane_artec_eplus48u_get_select_fd@Base 1.0.25 + sane_artec_eplus48u_init@Base 1.0.25 + sane_artec_eplus48u_open@Base 1.0.25 + sane_artec_eplus48u_read@Base 1.0.25 + sane_artec_eplus48u_set_io_mode@Base 1.0.25 + sane_artec_eplus48u_start@Base 1.0.25 + sane_artec_exit@Base 1.0.25 + sane_artec_get_devices@Base 1.0.25 + sane_artec_get_option_descriptor@Base 1.0.25 + sane_artec_get_parameters@Base 1.0.25 + sane_artec_get_select_fd@Base 1.0.25 + sane_artec_init@Base 1.0.25 + sane_artec_open@Base 1.0.25 + sane_artec_read@Base 1.0.25 + sane_artec_set_io_mode@Base 1.0.25 + sane_artec_start@Base 1.0.25 + sane_as6e_cancel@Base 1.0.25 + sane_as6e_close@Base 1.0.25 + sane_as6e_control_option@Base 1.0.25 + sane_as6e_exit@Base 1.0.25 + sane_as6e_get_devices@Base 1.0.25 + sane_as6e_get_option_descriptor@Base 1.0.25 + sane_as6e_get_parameters@Base 1.0.25 + sane_as6e_get_select_fd@Base 1.0.25 + sane_as6e_init@Base 1.0.25 + sane_as6e_open@Base 1.0.25 + sane_as6e_read@Base 1.0.25 + sane_as6e_set_io_mode@Base 1.0.25 + sane_as6e_start@Base 1.0.25 + sane_auth@Base 1.0.25 + sane_auto_eject@Base 1.0.25 + sane_avision_cancel@Base 1.0.25 + sane_avision_close@Base 1.0.25 + sane_avision_control_option@Base 1.0.25 + sane_avision_exit@Base 1.0.25 + sane_avision_get_devices@Base 1.0.25 + sane_avision_get_option_descriptor@Base 1.0.25 + sane_avision_get_parameters@Base 1.0.25 + sane_avision_get_select_fd@Base 1.0.25 + sane_avision_init@Base 1.0.25 + sane_avision_open@Base 1.0.25 + sane_avision_read@Base 1.0.25 + sane_avision_set_io_mode@Base 1.0.25 + sane_avision_start@Base 1.0.25 + sane_bh_cancel@Base 1.0.25 + sane_bh_close@Base 1.0.25 + sane_bh_control_option@Base 1.0.25 + sane_bh_exit@Base 1.0.25 + sane_bh_get_devices@Base 1.0.25 + sane_bh_get_option_descriptor@Base 1.0.25 + sane_bh_get_parameters@Base 1.0.25 + sane_bh_get_select_fd@Base 1.0.25 + sane_bh_init@Base 1.0.25 + sane_bh_open@Base 1.0.25 + sane_bh_read@Base 1.0.25 + sane_bh_set_io_mode@Base 1.0.25 + sane_bh_start@Base 1.0.25 + sane_cancel@Base 1.0.24 + sane_canon630u_cancel@Base 1.0.25 + sane_canon630u_close@Base 1.0.25 + sane_canon630u_control_option@Base 1.0.25 + sane_canon630u_exit@Base 1.0.25 + sane_canon630u_get_devices@Base 1.0.25 + sane_canon630u_get_option_descriptor@Base 1.0.25 + sane_canon630u_get_parameters@Base 1.0.25 + sane_canon630u_get_select_fd@Base 1.0.25 + sane_canon630u_init@Base 1.0.25 + sane_canon630u_open@Base 1.0.25 + sane_canon630u_read@Base 1.0.25 + sane_canon630u_set_io_mode@Base 1.0.25 + sane_canon630u_start@Base 1.0.25 + sane_canon_cancel@Base 1.0.25 + sane_canon_close@Base 1.0.25 + sane_canon_control_option@Base 1.0.25 + sane_canon_dr_cancel@Base 1.0.25 + sane_canon_dr_close@Base 1.0.25 + sane_canon_dr_control_option@Base 1.0.25 + sane_canon_dr_exit@Base 1.0.25 + sane_canon_dr_get_devices@Base 1.0.25 + sane_canon_dr_get_option_descriptor@Base 1.0.25 + sane_canon_dr_get_parameters@Base 1.0.25 + sane_canon_dr_get_select_fd@Base 1.0.25 + sane_canon_dr_init@Base 1.0.25 + sane_canon_dr_open@Base 1.0.25 + sane_canon_dr_read@Base 1.0.25 + sane_canon_dr_set_io_mode@Base 1.0.25 + sane_canon_dr_start@Base 1.0.25 + sane_canon_exit@Base 1.0.25 + sane_canon_get_devices@Base 1.0.25 + sane_canon_get_option_descriptor@Base 1.0.25 + sane_canon_get_parameters@Base 1.0.25 + sane_canon_get_select_fd@Base 1.0.25 + sane_canon_init@Base 1.0.25 + sane_canon_open@Base 1.0.25 + sane_canon_pp_cancel@Base 1.0.25 + sane_canon_pp_close@Base 1.0.25 + sane_canon_pp_control_option@Base 1.0.25 + sane_canon_pp_exit@Base 1.0.25 + sane_canon_pp_get_devices@Base 1.0.25 + sane_canon_pp_get_option_descriptor@Base 1.0.25 + sane_canon_pp_get_parameters@Base 1.0.25 + sane_canon_pp_get_select_fd@Base 1.0.25 + sane_canon_pp_init@Base 1.0.25 + sane_canon_pp_open@Base 1.0.25 + sane_canon_pp_read@Base 1.0.25 + sane_canon_pp_set_io_mode@Base 1.0.25 + sane_canon_pp_start@Base 1.0.25 + sane_canon_read@Base 1.0.25 + sane_canon_set_io_mode@Base 1.0.25 + sane_canon_start@Base 1.0.25 + sane_cardscan_cancel@Base 1.0.25 + sane_cardscan_close@Base 1.0.25 + sane_cardscan_control_option@Base 1.0.25 + sane_cardscan_exit@Base 1.0.25 + sane_cardscan_get_devices@Base 1.0.25 + sane_cardscan_get_option_descriptor@Base 1.0.25 + sane_cardscan_get_parameters@Base 1.0.25 + sane_cardscan_get_select_fd@Base 1.0.25 + sane_cardscan_init@Base 1.0.25 + sane_cardscan_open@Base 1.0.25 + sane_cardscan_read@Base 1.0.25 + sane_cardscan_set_io_mode@Base 1.0.25 + sane_cardscan_start@Base 1.0.25 + sane_close@Base 1.0.24 + sane_control_option@Base 1.0.24 + sane_coolscan2_cancel@Base 1.0.25 + sane_coolscan2_close@Base 1.0.25 + sane_coolscan2_control_option@Base 1.0.25 + sane_coolscan2_exit@Base 1.0.25 + sane_coolscan2_get_devices@Base 1.0.25 + sane_coolscan2_get_option_descriptor@Base 1.0.25 + sane_coolscan2_get_parameters@Base 1.0.25 + sane_coolscan2_get_select_fd@Base 1.0.25 + sane_coolscan2_init@Base 1.0.25 + sane_coolscan2_open@Base 1.0.25 + sane_coolscan2_read@Base 1.0.25 + sane_coolscan2_set_io_mode@Base 1.0.25 + sane_coolscan2_start@Base 1.0.25 + sane_coolscan3_cancel@Base 1.0.25 + sane_coolscan3_close@Base 1.0.25 + sane_coolscan3_control_option@Base 1.0.25 + sane_coolscan3_exit@Base 1.0.25 + sane_coolscan3_get_devices@Base 1.0.25 + sane_coolscan3_get_option_descriptor@Base 1.0.25 + sane_coolscan3_get_parameters@Base 1.0.25 + sane_coolscan3_get_select_fd@Base 1.0.25 + sane_coolscan3_init@Base 1.0.25 + sane_coolscan3_open@Base 1.0.25 + sane_coolscan3_read@Base 1.0.25 + sane_coolscan3_set_io_mode@Base 1.0.25 + sane_coolscan3_start@Base 1.0.25 + sane_coolscan_cancel@Base 1.0.25 + sane_coolscan_close@Base 1.0.25 + sane_coolscan_control_option@Base 1.0.25 + sane_coolscan_exit@Base 1.0.25 + sane_coolscan_get_devices@Base 1.0.25 + sane_coolscan_get_option_descriptor@Base 1.0.25 + sane_coolscan_get_parameters@Base 1.0.25 + sane_coolscan_get_select_fd@Base 1.0.25 + sane_coolscan_init@Base 1.0.25 + sane_coolscan_open@Base 1.0.25 + sane_coolscan_read@Base 1.0.25 + sane_coolscan_set_io_mode@Base 1.0.25 + sane_coolscan_start@Base 1.0.25 + sane_dc210_cancel@Base 1.0.25 + sane_dc210_close@Base 1.0.25 + sane_dc210_control_option@Base 1.0.25 + sane_dc210_exit@Base 1.0.25 + sane_dc210_get_devices@Base 1.0.25 + sane_dc210_get_option_descriptor@Base 1.0.25 + sane_dc210_get_parameters@Base 1.0.25 + sane_dc210_get_select_fd@Base 1.0.25 + sane_dc210_init@Base 1.0.25 + sane_dc210_open@Base 1.0.25 + sane_dc210_read@Base 1.0.25 + sane_dc210_set_io_mode@Base 1.0.25 + sane_dc210_start@Base 1.0.25 + sane_dc240_cancel@Base 1.0.25 + sane_dc240_close@Base 1.0.25 + sane_dc240_control_option@Base 1.0.25 + sane_dc240_exit@Base 1.0.25 + sane_dc240_get_devices@Base 1.0.25 + sane_dc240_get_option_descriptor@Base 1.0.25 + sane_dc240_get_parameters@Base 1.0.25 + sane_dc240_get_select_fd@Base 1.0.25 + sane_dc240_init@Base 1.0.25 + sane_dc240_open@Base 1.0.25 + sane_dc240_read@Base 1.0.25 + sane_dc240_set_io_mode@Base 1.0.25 + sane_dc240_start@Base 1.0.25 + sane_dc25_cancel@Base 1.0.25 + sane_dc25_close@Base 1.0.25 + sane_dc25_control_option@Base 1.0.25 + sane_dc25_exit@Base 1.0.25 + sane_dc25_get_devices@Base 1.0.25 + sane_dc25_get_option_descriptor@Base 1.0.25 + sane_dc25_get_parameters@Base 1.0.25 + sane_dc25_get_select_fd@Base 1.0.25 + sane_dc25_init@Base 1.0.25 + sane_dc25_open@Base 1.0.25 + sane_dc25_read@Base 1.0.25 + sane_dc25_set_io_mode@Base 1.0.25 + sane_dc25_start@Base 1.0.25 + sane_dell1600n_net_cancel@Base 1.0.25 + sane_dell1600n_net_close@Base 1.0.25 + sane_dell1600n_net_control_option@Base 1.0.25 + sane_dell1600n_net_exit@Base 1.0.25 + sane_dell1600n_net_get_devices@Base 1.0.25 + sane_dell1600n_net_get_option_descriptor@Base 1.0.25 + sane_dell1600n_net_get_parameters@Base 1.0.25 + sane_dell1600n_net_get_select_fd@Base 1.0.25 + sane_dell1600n_net_init@Base 1.0.25 + sane_dell1600n_net_open@Base 1.0.25 + sane_dell1600n_net_read@Base 1.0.25 + sane_dell1600n_net_set_io_mode@Base 1.0.25 + sane_dell1600n_net_start@Base 1.0.25 + sane_dll_cancel@Base 1.0.25 + sane_dll_close@Base 1.0.25 + sane_dll_control_option@Base 1.0.25 + sane_dll_exit@Base 1.0.25 + sane_dll_get_devices@Base 1.0.25 + sane_dll_get_option_descriptor@Base 1.0.25 + sane_dll_get_parameters@Base 1.0.25 + sane_dll_get_select_fd@Base 1.0.25 + sane_dll_init@Base 1.0.25 + sane_dll_open@Base 1.0.25 + sane_dll_read@Base 1.0.25 + sane_dll_set_io_mode@Base 1.0.25 + sane_dll_start@Base 1.0.25 + sane_dmc_cancel@Base 1.0.25 + sane_dmc_close@Base 1.0.25 + sane_dmc_control_option@Base 1.0.25 + sane_dmc_exit@Base 1.0.25 + sane_dmc_get_devices@Base 1.0.25 + sane_dmc_get_option_descriptor@Base 1.0.25 + sane_dmc_get_parameters@Base 1.0.25 + sane_dmc_get_select_fd@Base 1.0.25 + sane_dmc_init@Base 1.0.25 + sane_dmc_open@Base 1.0.25 + sane_dmc_read@Base 1.0.25 + sane_dmc_set_io_mode@Base 1.0.25 + sane_dmc_start@Base 1.0.25 + sane_epjitsu_cancel@Base 1.0.25 + sane_epjitsu_close@Base 1.0.25 + sane_epjitsu_control_option@Base 1.0.25 + sane_epjitsu_exit@Base 1.0.25 + sane_epjitsu_get_devices@Base 1.0.25 + sane_epjitsu_get_option_descriptor@Base 1.0.25 + sane_epjitsu_get_parameters@Base 1.0.25 + sane_epjitsu_get_select_fd@Base 1.0.25 + sane_epjitsu_init@Base 1.0.25 + sane_epjitsu_open@Base 1.0.25 + sane_epjitsu_read@Base 1.0.25 + sane_epjitsu_set_io_mode@Base 1.0.25 + sane_epjitsu_start@Base 1.0.25 + sane_epson2_cancel@Base 1.0.25 + sane_epson2_close@Base 1.0.25 + sane_epson2_control_option@Base 1.0.25 + sane_epson2_exit@Base 1.0.25 + sane_epson2_get_devices@Base 1.0.25 + sane_epson2_get_option_descriptor@Base 1.0.25 + sane_epson2_get_parameters@Base 1.0.25 + sane_epson2_get_select_fd@Base 1.0.25 + sane_epson2_init@Base 1.0.25 + sane_epson2_open@Base 1.0.25 + sane_epson2_read@Base 1.0.25 + sane_epson2_set_io_mode@Base 1.0.25 + sane_epson2_start@Base 1.0.25 + sane_epson_cancel@Base 1.0.25 + sane_epson_close@Base 1.0.25 + sane_epson_control_option@Base 1.0.25 + sane_epson_exit@Base 1.0.25 + sane_epson_get_devices@Base 1.0.25 + sane_epson_get_option_descriptor@Base 1.0.25 + sane_epson_get_parameters@Base 1.0.25 + sane_epson_get_select_fd@Base 1.0.25 + sane_epson_init@Base 1.0.25 + sane_epson_open@Base 1.0.25 + sane_epson_read@Base 1.0.25 + sane_epson_set_io_mode@Base 1.0.25 + sane_epson_start@Base 1.0.25 + sane_epsonds_cancel@Base 1.0.25 + sane_epsonds_close@Base 1.0.25 + sane_epsonds_control_option@Base 1.0.25 + sane_epsonds_exit@Base 1.0.25 + sane_epsonds_get_devices@Base 1.0.25 + sane_epsonds_get_option_descriptor@Base 1.0.25 + sane_epsonds_get_parameters@Base 1.0.25 + sane_epsonds_get_select_fd@Base 1.0.25 + sane_epsonds_init@Base 1.0.25 + sane_epsonds_open@Base 1.0.25 + sane_epsonds_read@Base 1.0.25 + sane_epsonds_set_io_mode@Base 1.0.25 + sane_epsonds_start@Base 1.0.25 + sane_exit@Base 1.0.24 + sane_fujitsu_cancel@Base 1.0.25 + sane_fujitsu_close@Base 1.0.25 + sane_fujitsu_control_option@Base 1.0.25 + sane_fujitsu_exit@Base 1.0.25 + sane_fujitsu_get_devices@Base 1.0.25 + sane_fujitsu_get_option_descriptor@Base 1.0.25 + sane_fujitsu_get_parameters@Base 1.0.25 + sane_fujitsu_get_select_fd@Base 1.0.25 + sane_fujitsu_init@Base 1.0.25 + sane_fujitsu_open@Base 1.0.25 + sane_fujitsu_read@Base 1.0.25 + sane_fujitsu_set_io_mode@Base 1.0.25 + sane_fujitsu_start@Base 1.0.25 + sane_genesys_cancel@Base 1.0.25 + sane_genesys_close@Base 1.0.25 + sane_genesys_control_option@Base 1.0.25 + sane_genesys_exit@Base 1.0.25 + sane_genesys_get_devices@Base 1.0.25 + sane_genesys_get_option_descriptor@Base 1.0.25 + sane_genesys_get_parameters@Base 1.0.25 + sane_genesys_get_select_fd@Base 1.0.25 + sane_genesys_init@Base 1.0.25 + sane_genesys_open@Base 1.0.25 + sane_genesys_read@Base 1.0.25 + sane_genesys_set_io_mode@Base 1.0.25 + sane_genesys_start@Base 1.0.25 + sane_get_devices@Base 1.0.24 + sane_get_option_descriptor@Base 1.0.24 + sane_get_parameters@Base 1.0.24 + sane_get_select_fd@Base 1.0.24 + sane_gphoto2_cancel@Base 1.0.25 + sane_gphoto2_close@Base 1.0.25 + sane_gphoto2_control_option@Base 1.0.25 + sane_gphoto2_exit@Base 1.0.25 + sane_gphoto2_get_devices@Base 1.0.25 + sane_gphoto2_get_option_descriptor@Base 1.0.25 + sane_gphoto2_get_parameters@Base 1.0.25 + sane_gphoto2_get_select_fd@Base 1.0.25 + sane_gphoto2_init@Base 1.0.25 + sane_gphoto2_open@Base 1.0.25 + sane_gphoto2_read@Base 1.0.25 + sane_gphoto2_set_io_mode@Base 1.0.25 + sane_gphoto2_start@Base 1.0.25 + sane_gt68xx_cancel@Base 1.0.25 + sane_gt68xx_close@Base 1.0.25 + sane_gt68xx_control_option@Base 1.0.25 + sane_gt68xx_exit@Base 1.0.25 + sane_gt68xx_get_devices@Base 1.0.25 + sane_gt68xx_get_option_descriptor@Base 1.0.25 + sane_gt68xx_get_parameters@Base 1.0.25 + sane_gt68xx_get_select_fd@Base 1.0.25 + sane_gt68xx_init@Base 1.0.25 + sane_gt68xx_open@Base 1.0.25 + sane_gt68xx_read@Base 1.0.25 + sane_gt68xx_set_io_mode@Base 1.0.25 + sane_gt68xx_start@Base 1.0.25 + sane_hp3500_cancel@Base 1.0.25 + sane_hp3500_close@Base 1.0.25 + sane_hp3500_control_option@Base 1.0.25 + sane_hp3500_exit@Base 1.0.25 + sane_hp3500_get_devices@Base 1.0.25 + sane_hp3500_get_option_descriptor@Base 1.0.25 + sane_hp3500_get_parameters@Base 1.0.25 + sane_hp3500_get_select_fd@Base 1.0.25 + sane_hp3500_init@Base 1.0.25 + sane_hp3500_open@Base 1.0.25 + sane_hp3500_read@Base 1.0.25 + sane_hp3500_set_io_mode@Base 1.0.25 + sane_hp3500_start@Base 1.0.25 + sane_hp3900_cancel@Base 1.0.25 + sane_hp3900_close@Base 1.0.25 + sane_hp3900_control_option@Base 1.0.25 + sane_hp3900_exit@Base 1.0.25 + sane_hp3900_get_devices@Base 1.0.25 + sane_hp3900_get_option_descriptor@Base 1.0.25 + sane_hp3900_get_parameters@Base 1.0.25 + sane_hp3900_get_select_fd@Base 1.0.25 + sane_hp3900_init@Base 1.0.25 + sane_hp3900_open@Base 1.0.25 + sane_hp3900_read@Base 1.0.25 + sane_hp3900_set_io_mode@Base 1.0.25 + sane_hp3900_start@Base 1.0.25 + sane_hp4200_cancel@Base 1.0.25 + sane_hp4200_close@Base 1.0.25 + sane_hp4200_control_option@Base 1.0.25 + sane_hp4200_exit@Base 1.0.25 + sane_hp4200_get_devices@Base 1.0.25 + sane_hp4200_get_option_descriptor@Base 1.0.25 + sane_hp4200_get_parameters@Base 1.0.25 + sane_hp4200_get_select_fd@Base 1.0.25 + sane_hp4200_init@Base 1.0.25 + sane_hp4200_open@Base 1.0.25 + sane_hp4200_read@Base 1.0.25 + sane_hp4200_set_io_mode@Base 1.0.25 + sane_hp4200_start@Base 1.0.25 + sane_hp5400_cancel@Base 1.0.25 + sane_hp5400_close@Base 1.0.25 + sane_hp5400_control_option@Base 1.0.25 + sane_hp5400_exit@Base 1.0.25 + sane_hp5400_get_devices@Base 1.0.25 + sane_hp5400_get_option_descriptor@Base 1.0.25 + sane_hp5400_get_parameters@Base 1.0.25 + sane_hp5400_get_select_fd@Base 1.0.25 + sane_hp5400_init@Base 1.0.25 + sane_hp5400_open@Base 1.0.25 + sane_hp5400_read@Base 1.0.25 + sane_hp5400_set_io_mode@Base 1.0.25 + sane_hp5400_start@Base 1.0.25 + sane_hp5590_cancel@Base 1.0.25 + sane_hp5590_close@Base 1.0.25 + sane_hp5590_control_option@Base 1.0.25 + sane_hp5590_exit@Base 1.0.25 + sane_hp5590_get_devices@Base 1.0.25 + sane_hp5590_get_option_descriptor@Base 1.0.25 + sane_hp5590_get_parameters@Base 1.0.25 + sane_hp5590_get_select_fd@Base 1.0.25 + sane_hp5590_init@Base 1.0.25 + sane_hp5590_open@Base 1.0.25 + sane_hp5590_read@Base 1.0.25 + sane_hp5590_set_io_mode@Base 1.0.25 + sane_hp5590_start@Base 1.0.25 + sane_hp_cancel@Base 1.0.25 + sane_hp_close@Base 1.0.25 + sane_hp_control_option@Base 1.0.25 + sane_hp_exit@Base 1.0.25 + sane_hp_get_devices@Base 1.0.25 + sane_hp_get_option_descriptor@Base 1.0.25 + sane_hp_get_parameters@Base 1.0.25 + sane_hp_get_select_fd@Base 1.0.25 + sane_hp_init@Base 1.0.25 + sane_hp_open@Base 1.0.25 + sane_hp_read@Base 1.0.25 + sane_hp_set_io_mode@Base 1.0.25 + sane_hp_start@Base 1.0.25 + sane_hpljm1005_cancel@Base 1.0.25 + sane_hpljm1005_close@Base 1.0.25 + sane_hpljm1005_control_option@Base 1.0.25 + sane_hpljm1005_exit@Base 1.0.25 + sane_hpljm1005_get_devices@Base 1.0.25 + sane_hpljm1005_get_option_descriptor@Base 1.0.25 + sane_hpljm1005_get_parameters@Base 1.0.25 + sane_hpljm1005_get_select_fd@Base 1.0.25 + sane_hpljm1005_init@Base 1.0.25 + sane_hpljm1005_open@Base 1.0.25 + sane_hpljm1005_read@Base 1.0.25 + sane_hpljm1005_set_io_mode@Base 1.0.25 + sane_hpljm1005_start@Base 1.0.25 + sane_hpsj5s_cancel@Base 1.0.25 + sane_hpsj5s_close@Base 1.0.25 + sane_hpsj5s_control_option@Base 1.0.25 + sane_hpsj5s_exit@Base 1.0.25 + sane_hpsj5s_get_devices@Base 1.0.25 + sane_hpsj5s_get_option_descriptor@Base 1.0.25 + sane_hpsj5s_get_parameters@Base 1.0.25 + sane_hpsj5s_get_select_fd@Base 1.0.25 + sane_hpsj5s_init@Base 1.0.25 + sane_hpsj5s_open@Base 1.0.25 + sane_hpsj5s_read@Base 1.0.25 + sane_hpsj5s_set_io_mode@Base 1.0.25 + sane_hpsj5s_start@Base 1.0.25 + sane_hs2p_cancel@Base 1.0.25 + sane_hs2p_close@Base 1.0.25 + sane_hs2p_control_option@Base 1.0.25 + sane_hs2p_exit@Base 1.0.25 + sane_hs2p_get_devices@Base 1.0.25 + sane_hs2p_get_option_descriptor@Base 1.0.25 + sane_hs2p_get_parameters@Base 1.0.25 + sane_hs2p_get_select_fd@Base 1.0.25 + sane_hs2p_init@Base 1.0.25 + sane_hs2p_open@Base 1.0.25 + sane_hs2p_read@Base 1.0.25 + sane_hs2p_set_io_mode@Base 1.0.25 + sane_hs2p_start@Base 1.0.25 + sane_ibm_cancel@Base 1.0.25 + sane_ibm_close@Base 1.0.25 + sane_ibm_control_option@Base 1.0.25 + sane_ibm_exit@Base 1.0.25 + sane_ibm_get_devices@Base 1.0.25 + sane_ibm_get_option_descriptor@Base 1.0.25 + sane_ibm_get_parameters@Base 1.0.25 + sane_ibm_get_select_fd@Base 1.0.25 + sane_ibm_init@Base 1.0.25 + sane_ibm_open@Base 1.0.25 + sane_ibm_read@Base 1.0.25 + sane_ibm_set_io_mode@Base 1.0.25 + sane_ibm_start@Base 1.0.25 + sane_init@Base 1.0.24 + sane_kodak_cancel@Base 1.0.25 + sane_kodak_close@Base 1.0.25 + sane_kodak_control_option@Base 1.0.25 + sane_kodak_exit@Base 1.0.25 + sane_kodak_get_devices@Base 1.0.25 + sane_kodak_get_option_descriptor@Base 1.0.25 + sane_kodak_get_parameters@Base 1.0.25 + sane_kodak_get_select_fd@Base 1.0.25 + sane_kodak_init@Base 1.0.25 + sane_kodak_open@Base 1.0.25 + sane_kodak_read@Base 1.0.25 + sane_kodak_set_io_mode@Base 1.0.25 + sane_kodak_start@Base 1.0.25 + sane_kodakaio_cancel@Base 1.0.25 + sane_kodakaio_close@Base 1.0.25 + sane_kodakaio_control_option@Base 1.0.25 + sane_kodakaio_exit@Base 1.0.25 + sane_kodakaio_get_devices@Base 1.0.25 + sane_kodakaio_get_option_descriptor@Base 1.0.25 + sane_kodakaio_get_parameters@Base 1.0.25 + sane_kodakaio_get_select_fd@Base 1.0.25 + sane_kodakaio_init@Base 1.0.25 + sane_kodakaio_open@Base 1.0.25 + sane_kodakaio_read@Base 1.0.25 + sane_kodakaio_set_io_mode@Base 1.0.25 + sane_kodakaio_start@Base 1.0.25 + sane_kvs1025_cancel@Base 1.0.25 + sane_kvs1025_close@Base 1.0.25 + sane_kvs1025_control_option@Base 1.0.25 + sane_kvs1025_exit@Base 1.0.25 + sane_kvs1025_get_devices@Base 1.0.25 + sane_kvs1025_get_option_descriptor@Base 1.0.25 + sane_kvs1025_get_parameters@Base 1.0.25 + sane_kvs1025_get_select_fd@Base 1.0.25 + sane_kvs1025_init@Base 1.0.25 + sane_kvs1025_open@Base 1.0.25 + sane_kvs1025_read@Base 1.0.25 + sane_kvs1025_set_io_mode@Base 1.0.25 + sane_kvs1025_start@Base 1.0.25 + sane_kvs20xx_cancel@Base 1.0.25 + sane_kvs20xx_close@Base 1.0.25 + sane_kvs20xx_control_option@Base 1.0.25 + sane_kvs20xx_exit@Base 1.0.25 + sane_kvs20xx_get_devices@Base 1.0.25 + sane_kvs20xx_get_option_descriptor@Base 1.0.25 + sane_kvs20xx_get_parameters@Base 1.0.25 + sane_kvs20xx_get_select_fd@Base 1.0.25 + sane_kvs20xx_init@Base 1.0.25 + sane_kvs20xx_open@Base 1.0.25 + sane_kvs20xx_read@Base 1.0.25 + sane_kvs20xx_set_io_mode@Base 1.0.25 + sane_kvs20xx_start@Base 1.0.25 + sane_kvs40xx_cancel@Base 1.0.25 + sane_kvs40xx_close@Base 1.0.25 + sane_kvs40xx_control_option@Base 1.0.25 + sane_kvs40xx_exit@Base 1.0.25 + sane_kvs40xx_get_devices@Base 1.0.25 + sane_kvs40xx_get_option_descriptor@Base 1.0.25 + sane_kvs40xx_get_parameters@Base 1.0.25 + sane_kvs40xx_get_select_fd@Base 1.0.25 + sane_kvs40xx_init@Base 1.0.25 + sane_kvs40xx_open@Base 1.0.25 + sane_kvs40xx_read@Base 1.0.25 + sane_kvs40xx_set_io_mode@Base 1.0.25 + sane_kvs40xx_start@Base 1.0.25 + sane_leo_cancel@Base 1.0.25 + sane_leo_close@Base 1.0.25 + sane_leo_control_option@Base 1.0.25 + sane_leo_exit@Base 1.0.25 + sane_leo_get_devices@Base 1.0.25 + sane_leo_get_option_descriptor@Base 1.0.25 + sane_leo_get_parameters@Base 1.0.25 + sane_leo_get_select_fd@Base 1.0.25 + sane_leo_init@Base 1.0.25 + sane_leo_open@Base 1.0.25 + sane_leo_read@Base 1.0.25 + sane_leo_set_io_mode@Base 1.0.25 + sane_leo_start@Base 1.0.25 + sane_lexmark_cancel@Base 1.0.25 + sane_lexmark_close@Base 1.0.25 + sane_lexmark_control_option@Base 1.0.25 + sane_lexmark_exit@Base 1.0.25 + sane_lexmark_get_devices@Base 1.0.25 + sane_lexmark_get_option_descriptor@Base 1.0.25 + sane_lexmark_get_parameters@Base 1.0.25 + sane_lexmark_get_select_fd@Base 1.0.25 + sane_lexmark_init@Base 1.0.25 + sane_lexmark_open@Base 1.0.25 + sane_lexmark_read@Base 1.0.25 + sane_lexmark_set_io_mode@Base 1.0.25 + sane_lexmark_start@Base 1.0.25 + sane_ma1509_cancel@Base 1.0.25 + sane_ma1509_close@Base 1.0.25 + sane_ma1509_control_option@Base 1.0.25 + sane_ma1509_exit@Base 1.0.25 + sane_ma1509_get_devices@Base 1.0.25 + sane_ma1509_get_option_descriptor@Base 1.0.25 + sane_ma1509_get_parameters@Base 1.0.25 + sane_ma1509_get_select_fd@Base 1.0.25 + sane_ma1509_init@Base 1.0.25 + sane_ma1509_open@Base 1.0.25 + sane_ma1509_read@Base 1.0.25 + sane_ma1509_set_io_mode@Base 1.0.25 + sane_ma1509_start@Base 1.0.25 + sane_magicolor_cancel@Base 1.0.25 + sane_magicolor_close@Base 1.0.25 + sane_magicolor_control_option@Base 1.0.25 + sane_magicolor_exit@Base 1.0.25 + sane_magicolor_get_devices@Base 1.0.25 + sane_magicolor_get_option_descriptor@Base 1.0.25 + sane_magicolor_get_parameters@Base 1.0.25 + sane_magicolor_get_select_fd@Base 1.0.25 + sane_magicolor_init@Base 1.0.25 + sane_magicolor_open@Base 1.0.25 + sane_magicolor_read@Base 1.0.25 + sane_magicolor_set_io_mode@Base 1.0.25 + sane_magicolor_start@Base 1.0.25 + sane_matsushita_cancel@Base 1.0.25 + sane_matsushita_close@Base 1.0.25 + sane_matsushita_control_option@Base 1.0.25 + sane_matsushita_exit@Base 1.0.25 + sane_matsushita_get_devices@Base 1.0.25 + sane_matsushita_get_option_descriptor@Base 1.0.25 + sane_matsushita_get_parameters@Base 1.0.25 + sane_matsushita_get_select_fd@Base 1.0.25 + sane_matsushita_init@Base 1.0.25 + sane_matsushita_open@Base 1.0.25 + sane_matsushita_read@Base 1.0.25 + sane_matsushita_set_io_mode@Base 1.0.25 + sane_matsushita_start@Base 1.0.25 + sane_microtek2_cancel@Base 1.0.25 + sane_microtek2_close@Base 1.0.25 + sane_microtek2_control_option@Base 1.0.25 + sane_microtek2_exit@Base 1.0.25 + sane_microtek2_get_devices@Base 1.0.25 + sane_microtek2_get_option_descriptor@Base 1.0.25 + sane_microtek2_get_parameters@Base 1.0.25 + sane_microtek2_get_select_fd@Base 1.0.25 + sane_microtek2_init@Base 1.0.25 + sane_microtek2_open@Base 1.0.25 + sane_microtek2_read@Base 1.0.25 + sane_microtek2_set_io_mode@Base 1.0.25 + sane_microtek2_start@Base 1.0.25 + sane_microtek_cancel@Base 1.0.25 + sane_microtek_close@Base 1.0.25 + sane_microtek_control_option@Base 1.0.25 + sane_microtek_exit@Base 1.0.25 + sane_microtek_get_devices@Base 1.0.25 + sane_microtek_get_option_descriptor@Base 1.0.25 + sane_microtek_get_parameters@Base 1.0.25 + sane_microtek_get_select_fd@Base 1.0.25 + sane_microtek_init@Base 1.0.25 + sane_microtek_open@Base 1.0.25 + sane_microtek_read@Base 1.0.25 + sane_microtek_set_io_mode@Base 1.0.25 + sane_microtek_start@Base 1.0.25 + sane_mustek_cancel@Base 1.0.25 + sane_mustek_close@Base 1.0.25 + sane_mustek_control_option@Base 1.0.25 + sane_mustek_exit@Base 1.0.25 + sane_mustek_get_devices@Base 1.0.25 + sane_mustek_get_option_descriptor@Base 1.0.25 + sane_mustek_get_parameters@Base 1.0.25 + sane_mustek_get_select_fd@Base 1.0.25 + sane_mustek_init@Base 1.0.25 + sane_mustek_open@Base 1.0.25 + sane_mustek_pp_cancel@Base 1.0.25 + sane_mustek_pp_close@Base 1.0.25 + sane_mustek_pp_control_option@Base 1.0.25 + sane_mustek_pp_exit@Base 1.0.25 + sane_mustek_pp_get_devices@Base 1.0.25 + sane_mustek_pp_get_option_descriptor@Base 1.0.25 + sane_mustek_pp_get_parameters@Base 1.0.25 + sane_mustek_pp_get_select_fd@Base 1.0.25 + sane_mustek_pp_init@Base 1.0.25 + sane_mustek_pp_open@Base 1.0.25 + sane_mustek_pp_read@Base 1.0.25 + sane_mustek_pp_set_io_mode@Base 1.0.25 + sane_mustek_pp_start@Base 1.0.25 + sane_mustek_read@Base 1.0.25 + sane_mustek_set_io_mode@Base 1.0.25 + sane_mustek_start@Base 1.0.25 + sane_mustek_usb2_cancel@Base 1.0.25 + sane_mustek_usb2_close@Base 1.0.25 + sane_mustek_usb2_control_option@Base 1.0.25 + sane_mustek_usb2_exit@Base 1.0.25 + sane_mustek_usb2_get_devices@Base 1.0.25 + sane_mustek_usb2_get_option_descriptor@Base 1.0.25 + sane_mustek_usb2_get_parameters@Base 1.0.25 + sane_mustek_usb2_get_select_fd@Base 1.0.25 + sane_mustek_usb2_init@Base 1.0.25 + sane_mustek_usb2_open@Base 1.0.25 + sane_mustek_usb2_read@Base 1.0.25 + sane_mustek_usb2_set_io_mode@Base 1.0.25 + sane_mustek_usb2_start@Base 1.0.25 + sane_mustek_usb_cancel@Base 1.0.25 + sane_mustek_usb_close@Base 1.0.25 + sane_mustek_usb_control_option@Base 1.0.25 + sane_mustek_usb_exit@Base 1.0.25 + sane_mustek_usb_get_devices@Base 1.0.25 + sane_mustek_usb_get_option_descriptor@Base 1.0.25 + sane_mustek_usb_get_parameters@Base 1.0.25 + sane_mustek_usb_get_select_fd@Base 1.0.25 + sane_mustek_usb_init@Base 1.0.25 + sane_mustek_usb_open@Base 1.0.25 + sane_mustek_usb_read@Base 1.0.25 + sane_mustek_usb_set_io_mode@Base 1.0.25 + sane_mustek_usb_start@Base 1.0.25 + sane_nec_cancel@Base 1.0.25 + sane_nec_close@Base 1.0.25 + sane_nec_control_option@Base 1.0.25 + sane_nec_exit@Base 1.0.25 + sane_nec_get_devices@Base 1.0.25 + sane_nec_get_option_descriptor@Base 1.0.25 + sane_nec_get_parameters@Base 1.0.25 + sane_nec_get_select_fd@Base 1.0.25 + sane_nec_init@Base 1.0.25 + sane_nec_open@Base 1.0.25 + sane_nec_read@Base 1.0.25 + sane_nec_set_io_mode@Base 1.0.25 + sane_nec_start@Base 1.0.25 + sane_net_cancel@Base 1.0.25 + sane_net_close@Base 1.0.25 + sane_net_control_option@Base 1.0.25 + sane_net_exit@Base 1.0.25 + sane_net_get_devices@Base 1.0.25 + sane_net_get_option_descriptor@Base 1.0.25 + sane_net_get_parameters@Base 1.0.25 + sane_net_get_select_fd@Base 1.0.25 + sane_net_init@Base 1.0.25 + sane_net_open@Base 1.0.25 + sane_net_read@Base 1.0.25 + sane_net_set_io_mode@Base 1.0.25 + sane_net_start@Base 1.0.25 + sane_niash_cancel@Base 1.0.25 + sane_niash_close@Base 1.0.25 + sane_niash_control_option@Base 1.0.25 + sane_niash_exit@Base 1.0.25 + sane_niash_get_devices@Base 1.0.25 + sane_niash_get_option_descriptor@Base 1.0.25 + sane_niash_get_parameters@Base 1.0.25 + sane_niash_get_select_fd@Base 1.0.25 + sane_niash_init@Base 1.0.25 + sane_niash_open@Base 1.0.25 + sane_niash_read@Base 1.0.25 + sane_niash_set_io_mode@Base 1.0.25 + sane_niash_start@Base 1.0.25 + sane_open@Base 1.0.24 + sane_p5_cancel@Base 1.0.25 + sane_p5_close@Base 1.0.25 + sane_p5_control_option@Base 1.0.25 + sane_p5_exit@Base 1.0.25 + sane_p5_get_devices@Base 1.0.25 + sane_p5_get_option_descriptor@Base 1.0.25 + sane_p5_get_parameters@Base 1.0.25 + sane_p5_get_select_fd@Base 1.0.25 + sane_p5_init@Base 1.0.25 + sane_p5_open@Base 1.0.25 + sane_p5_read@Base 1.0.25 + sane_p5_set_io_mode@Base 1.0.25 + sane_p5_start@Base 1.0.25 + sane_pie_cancel@Base 1.0.25 + sane_pie_close@Base 1.0.25 + sane_pie_control_option@Base 1.0.25 + sane_pie_exit@Base 1.0.25 + sane_pie_get_devices@Base 1.0.25 + sane_pie_get_option_descriptor@Base 1.0.25 + sane_pie_get_parameters@Base 1.0.25 + sane_pie_get_select_fd@Base 1.0.25 + sane_pie_init@Base 1.0.25 + sane_pie_open@Base 1.0.25 + sane_pie_read@Base 1.0.25 + sane_pie_set_io_mode@Base 1.0.25 + sane_pie_start@Base 1.0.25 + sane_pixma_cancel@Base 1.0.25 + sane_pixma_close@Base 1.0.25 + sane_pixma_control_option@Base 1.0.25 + sane_pixma_exit@Base 1.0.25 + sane_pixma_get_devices@Base 1.0.25 + sane_pixma_get_option_descriptor@Base 1.0.25 + sane_pixma_get_parameters@Base 1.0.25 + sane_pixma_get_select_fd@Base 1.0.25 + sane_pixma_init@Base 1.0.25 + sane_pixma_open@Base 1.0.25 + sane_pixma_read@Base 1.0.25 + sane_pixma_set_io_mode@Base 1.0.25 + sane_pixma_start@Base 1.0.25 + sane_plustek_cancel@Base 1.0.25 + sane_plustek_close@Base 1.0.25 + sane_plustek_control_option@Base 1.0.25 + sane_plustek_exit@Base 1.0.25 + sane_plustek_get_devices@Base 1.0.25 + sane_plustek_get_option_descriptor@Base 1.0.25 + sane_plustek_get_parameters@Base 1.0.25 + sane_plustek_get_select_fd@Base 1.0.25 + sane_plustek_init@Base 1.0.25 + sane_plustek_open@Base 1.0.25 + sane_plustek_pp_cancel@Base 1.0.25 + sane_plustek_pp_close@Base 1.0.25 + sane_plustek_pp_control_option@Base 1.0.25 + sane_plustek_pp_exit@Base 1.0.25 + sane_plustek_pp_get_devices@Base 1.0.25 + sane_plustek_pp_get_option_descriptor@Base 1.0.25 + sane_plustek_pp_get_parameters@Base 1.0.25 + sane_plustek_pp_get_select_fd@Base 1.0.25 + sane_plustek_pp_init@Base 1.0.25 + sane_plustek_pp_open@Base 1.0.25 + sane_plustek_pp_read@Base 1.0.25 + sane_plustek_pp_set_io_mode@Base 1.0.25 + sane_plustek_pp_start@Base 1.0.25 + sane_plustek_read@Base 1.0.25 + sane_plustek_set_io_mode@Base 1.0.25 + sane_plustek_start@Base 1.0.25 + sane_pnm_cancel@Base 1.0.25 + sane_pnm_close@Base 1.0.25 + sane_pnm_control_option@Base 1.0.25 + sane_pnm_exit@Base 1.0.25 + sane_pnm_get_devices@Base 1.0.25 + sane_pnm_get_option_descriptor@Base 1.0.25 + sane_pnm_get_parameters@Base 1.0.25 + sane_pnm_get_select_fd@Base 1.0.25 + sane_pnm_init@Base 1.0.25 + sane_pnm_open@Base 1.0.25 + sane_pnm_read@Base 1.0.25 + sane_pnm_set_io_mode@Base 1.0.25 + sane_pnm_start@Base 1.0.25 + sane_qcam_cancel@Base 1.0.25 + sane_qcam_close@Base 1.0.25 + sane_qcam_control_option@Base 1.0.25 + sane_qcam_exit@Base 1.0.25 + sane_qcam_get_devices@Base 1.0.25 + sane_qcam_get_option_descriptor@Base 1.0.25 + sane_qcam_get_parameters@Base 1.0.25 + sane_qcam_get_select_fd@Base 1.0.25 + sane_qcam_init@Base 1.0.25 + sane_qcam_open@Base 1.0.25 + sane_qcam_read@Base 1.0.25 + sane_qcam_set_io_mode@Base 1.0.25 + sane_qcam_start@Base 1.0.25 + sane_read@Base 1.0.24 + sane_ricoh_cancel@Base 1.0.25 + sane_ricoh_close@Base 1.0.25 + sane_ricoh_control_option@Base 1.0.25 + sane_ricoh_exit@Base 1.0.25 + sane_ricoh_get_devices@Base 1.0.25 + sane_ricoh_get_option_descriptor@Base 1.0.25 + sane_ricoh_get_parameters@Base 1.0.25 + sane_ricoh_get_select_fd@Base 1.0.25 + sane_ricoh_init@Base 1.0.25 + sane_ricoh_open@Base 1.0.25 + sane_ricoh_read@Base 1.0.25 + sane_ricoh_set_io_mode@Base 1.0.25 + sane_ricoh_start@Base 1.0.25 + sane_rts8891_cancel@Base 1.0.25 + sane_rts8891_close@Base 1.0.25 + sane_rts8891_control_option@Base 1.0.25 + sane_rts8891_exit@Base 1.0.25 + sane_rts8891_get_devices@Base 1.0.25 + sane_rts8891_get_option_descriptor@Base 1.0.25 + sane_rts8891_get_parameters@Base 1.0.25 + sane_rts8891_get_select_fd@Base 1.0.25 + sane_rts8891_init@Base 1.0.25 + sane_rts8891_open@Base 1.0.25 + sane_rts8891_read@Base 1.0.25 + sane_rts8891_set_io_mode@Base 1.0.25 + sane_rts8891_start@Base 1.0.25 + sane_s9036_cancel@Base 1.0.25 + sane_s9036_close@Base 1.0.25 + sane_s9036_control_option@Base 1.0.25 + sane_s9036_exit@Base 1.0.25 + sane_s9036_get_devices@Base 1.0.25 + sane_s9036_get_option_descriptor@Base 1.0.25 + sane_s9036_get_parameters@Base 1.0.25 + sane_s9036_get_select_fd@Base 1.0.25 + sane_s9036_init@Base 1.0.25 + sane_s9036_open@Base 1.0.25 + sane_s9036_read@Base 1.0.25 + sane_s9036_set_io_mode@Base 1.0.25 + sane_s9036_start@Base 1.0.25 + sane_sceptre_cancel@Base 1.0.25 + sane_sceptre_close@Base 1.0.25 + sane_sceptre_control_option@Base 1.0.25 + sane_sceptre_exit@Base 1.0.25 + sane_sceptre_get_devices@Base 1.0.25 + sane_sceptre_get_option_descriptor@Base 1.0.25 + sane_sceptre_get_parameters@Base 1.0.25 + sane_sceptre_get_select_fd@Base 1.0.25 + sane_sceptre_init@Base 1.0.25 + sane_sceptre_open@Base 1.0.25 + sane_sceptre_read@Base 1.0.25 + sane_sceptre_set_io_mode@Base 1.0.25 + sane_sceptre_start@Base 1.0.25 + sane_set_io_mode@Base 1.0.24 + sane_sharp_cancel@Base 1.0.25 + sane_sharp_close@Base 1.0.25 + sane_sharp_control_option@Base 1.0.25 + sane_sharp_exit@Base 1.0.25 + sane_sharp_get_devices@Base 1.0.25 + sane_sharp_get_option_descriptor@Base 1.0.25 + sane_sharp_get_parameters@Base 1.0.25 + sane_sharp_get_select_fd@Base 1.0.25 + sane_sharp_init@Base 1.0.25 + sane_sharp_open@Base 1.0.25 + sane_sharp_read@Base 1.0.25 + sane_sharp_set_io_mode@Base 1.0.25 + sane_sharp_start@Base 1.0.25 + sane_sm3600_cancel@Base 1.0.25 + sane_sm3600_close@Base 1.0.25 + sane_sm3600_control_option@Base 1.0.25 + sane_sm3600_exit@Base 1.0.25 + sane_sm3600_get_devices@Base 1.0.25 + sane_sm3600_get_option_descriptor@Base 1.0.25 + sane_sm3600_get_parameters@Base 1.0.25 + sane_sm3600_get_select_fd@Base 1.0.25 + sane_sm3600_init@Base 1.0.25 + sane_sm3600_open@Base 1.0.25 + sane_sm3600_read@Base 1.0.25 + sane_sm3600_set_io_mode@Base 1.0.25 + sane_sm3600_start@Base 1.0.25 + sane_sm3840_cancel@Base 1.0.25 + sane_sm3840_close@Base 1.0.25 + sane_sm3840_control_option@Base 1.0.25 + sane_sm3840_exit@Base 1.0.25 + sane_sm3840_get_devices@Base 1.0.25 + sane_sm3840_get_option_descriptor@Base 1.0.25 + sane_sm3840_get_parameters@Base 1.0.25 + sane_sm3840_get_select_fd@Base 1.0.25 + sane_sm3840_init@Base 1.0.25 + sane_sm3840_open@Base 1.0.25 + sane_sm3840_read@Base 1.0.25 + sane_sm3840_set_io_mode@Base 1.0.25 + sane_sm3840_start@Base 1.0.25 + sane_snapscan_cancel@Base 1.0.25 + sane_snapscan_close@Base 1.0.25 + sane_snapscan_control_option@Base 1.0.25 + sane_snapscan_exit@Base 1.0.25 + sane_snapscan_get_devices@Base 1.0.25 + sane_snapscan_get_option_descriptor@Base 1.0.25 + sane_snapscan_get_parameters@Base 1.0.25 + sane_snapscan_get_select_fd@Base 1.0.25 + sane_snapscan_init@Base 1.0.25 + sane_snapscan_open@Base 1.0.25 + sane_snapscan_read@Base 1.0.25 + sane_snapscan_set_io_mode@Base 1.0.25 + sane_snapscan_start@Base 1.0.25 + sane_sp15c_cancel@Base 1.0.25 + sane_sp15c_close@Base 1.0.25 + sane_sp15c_control_option@Base 1.0.25 + sane_sp15c_exit@Base 1.0.25 + sane_sp15c_get_devices@Base 1.0.25 + sane_sp15c_get_option_descriptor@Base 1.0.25 + sane_sp15c_get_parameters@Base 1.0.25 + sane_sp15c_get_select_fd@Base 1.0.25 + sane_sp15c_init@Base 1.0.25 + sane_sp15c_open@Base 1.0.25 + sane_sp15c_read@Base 1.0.25 + sane_sp15c_set_io_mode@Base 1.0.25 + sane_sp15c_start@Base 1.0.25 + sane_st400_cancel@Base 1.0.25 + sane_st400_close@Base 1.0.25 + sane_st400_control_option@Base 1.0.25 + sane_st400_exit@Base 1.0.25 + sane_st400_get_devices@Base 1.0.25 + sane_st400_get_option_descriptor@Base 1.0.25 + sane_st400_get_parameters@Base 1.0.25 + sane_st400_get_select_fd@Base 1.0.25 + sane_st400_init@Base 1.0.25 + sane_st400_open@Base 1.0.25 + sane_st400_read@Base 1.0.25 + sane_st400_set_io_mode@Base 1.0.25 + sane_st400_start@Base 1.0.25 + sane_start@Base 1.0.24 + sane_strstatus@Base 1.0.24 + sane_stv680_cancel@Base 1.0.25 + sane_stv680_close@Base 1.0.25 + sane_stv680_control_option@Base 1.0.25 + sane_stv680_exit@Base 1.0.25 + sane_stv680_get_devices@Base 1.0.25 + sane_stv680_get_option_descriptor@Base 1.0.25 + sane_stv680_get_parameters@Base 1.0.25 + sane_stv680_get_select_fd@Base 1.0.25 + sane_stv680_init@Base 1.0.25 + sane_stv680_open@Base 1.0.25 + sane_stv680_read@Base 1.0.25 + sane_stv680_set_io_mode@Base 1.0.25 + sane_stv680_start@Base 1.0.25 + sane_tamarack_cancel@Base 1.0.25 + sane_tamarack_close@Base 1.0.25 + sane_tamarack_control_option@Base 1.0.25 + sane_tamarack_exit@Base 1.0.25 + sane_tamarack_get_devices@Base 1.0.25 + sane_tamarack_get_option_descriptor@Base 1.0.25 + sane_tamarack_get_parameters@Base 1.0.25 + sane_tamarack_get_select_fd@Base 1.0.25 + sane_tamarack_init@Base 1.0.25 + sane_tamarack_open@Base 1.0.25 + sane_tamarack_read@Base 1.0.25 + sane_tamarack_set_io_mode@Base 1.0.25 + sane_tamarack_start@Base 1.0.25 + sane_teco1_cancel@Base 1.0.25 + sane_teco1_close@Base 1.0.25 + sane_teco1_control_option@Base 1.0.25 + sane_teco1_exit@Base 1.0.25 + sane_teco1_get_devices@Base 1.0.25 + sane_teco1_get_option_descriptor@Base 1.0.25 + sane_teco1_get_parameters@Base 1.0.25 + sane_teco1_get_select_fd@Base 1.0.25 + sane_teco1_init@Base 1.0.25 + sane_teco1_open@Base 1.0.25 + sane_teco1_read@Base 1.0.25 + sane_teco1_set_io_mode@Base 1.0.25 + sane_teco1_start@Base 1.0.25 + sane_teco2_cancel@Base 1.0.25 + sane_teco2_close@Base 1.0.25 + sane_teco2_control_option@Base 1.0.25 + sane_teco2_exit@Base 1.0.25 + sane_teco2_get_devices@Base 1.0.25 + sane_teco2_get_option_descriptor@Base 1.0.25 + sane_teco2_get_parameters@Base 1.0.25 + sane_teco2_get_select_fd@Base 1.0.25 + sane_teco2_init@Base 1.0.25 + sane_teco2_open@Base 1.0.25 + sane_teco2_read@Base 1.0.25 + sane_teco2_set_io_mode@Base 1.0.25 + sane_teco2_start@Base 1.0.25 + sane_teco3_cancel@Base 1.0.25 + sane_teco3_close@Base 1.0.25 + sane_teco3_control_option@Base 1.0.25 + sane_teco3_exit@Base 1.0.25 + sane_teco3_get_devices@Base 1.0.25 + sane_teco3_get_option_descriptor@Base 1.0.25 + sane_teco3_get_parameters@Base 1.0.25 + sane_teco3_get_select_fd@Base 1.0.25 + sane_teco3_init@Base 1.0.25 + sane_teco3_open@Base 1.0.25 + sane_teco3_read@Base 1.0.25 + sane_teco3_set_io_mode@Base 1.0.25 + sane_teco3_start@Base 1.0.25 + sane_test_cancel@Base 1.0.25 + sane_test_close@Base 1.0.25 + sane_test_control_option@Base 1.0.25 + sane_test_exit@Base 1.0.25 + sane_test_get_devices@Base 1.0.25 + sane_test_get_option_descriptor@Base 1.0.25 + sane_test_get_parameters@Base 1.0.25 + sane_test_get_select_fd@Base 1.0.25 + sane_test_init@Base 1.0.25 + sane_test_open@Base 1.0.25 + sane_test_read@Base 1.0.25 + sane_test_set_io_mode@Base 1.0.25 + sane_test_start@Base 1.0.25 + sane_u12_cancel@Base 1.0.25 + sane_u12_close@Base 1.0.25 + sane_u12_control_option@Base 1.0.25 + sane_u12_exit@Base 1.0.25 + sane_u12_get_devices@Base 1.0.25 + sane_u12_get_option_descriptor@Base 1.0.25 + sane_u12_get_parameters@Base 1.0.25 + sane_u12_get_select_fd@Base 1.0.25 + sane_u12_init@Base 1.0.25 + sane_u12_open@Base 1.0.25 + sane_u12_read@Base 1.0.25 + sane_u12_set_io_mode@Base 1.0.25 + sane_u12_start@Base 1.0.25 + sane_umax1220u_cancel@Base 1.0.25 + sane_umax1220u_close@Base 1.0.25 + sane_umax1220u_control_option@Base 1.0.25 + sane_umax1220u_exit@Base 1.0.25 + sane_umax1220u_get_devices@Base 1.0.25 + sane_umax1220u_get_option_descriptor@Base 1.0.25 + sane_umax1220u_get_parameters@Base 1.0.25 + sane_umax1220u_get_select_fd@Base 1.0.25 + sane_umax1220u_init@Base 1.0.25 + sane_umax1220u_open@Base 1.0.25 + sane_umax1220u_read@Base 1.0.25 + sane_umax1220u_set_io_mode@Base 1.0.25 + sane_umax1220u_start@Base 1.0.25 + sane_umax_cancel@Base 1.0.25 + sane_umax_close@Base 1.0.25 + sane_umax_control_option@Base 1.0.25 + sane_umax_exit@Base 1.0.25 + sane_umax_get_devices@Base 1.0.25 + sane_umax_get_option_descriptor@Base 1.0.25 + sane_umax_get_parameters@Base 1.0.25 + sane_umax_get_select_fd@Base 1.0.25 + sane_umax_init@Base 1.0.25 + sane_umax_open@Base 1.0.25 + sane_umax_pp_cancel@Base 1.0.25 + sane_umax_pp_close@Base 1.0.25 + sane_umax_pp_control_option@Base 1.0.25 + sane_umax_pp_exit@Base 1.0.25 + sane_umax_pp_get_devices@Base 1.0.25 + sane_umax_pp_get_option_descriptor@Base 1.0.25 + sane_umax_pp_get_parameters@Base 1.0.25 + sane_umax_pp_get_select_fd@Base 1.0.25 + sane_umax_pp_init@Base 1.0.25 + sane_umax_pp_open@Base 1.0.25 + sane_umax_pp_read@Base 1.0.25 + sane_umax_pp_set_io_mode@Base 1.0.25 + sane_umax_pp_start@Base 1.0.25 + sane_umax_read@Base 1.0.25 + sane_umax_set_io_mode@Base 1.0.25 + sane_umax_start@Base 1.0.25 + sane_xerox_mfp_cancel@Base 1.0.25 + sane_xerox_mfp_close@Base 1.0.25 + sane_xerox_mfp_control_option@Base 1.0.25 + sane_xerox_mfp_exit@Base 1.0.25 + sane_xerox_mfp_get_devices@Base 1.0.25 + sane_xerox_mfp_get_option_descriptor@Base 1.0.25 + sane_xerox_mfp_get_parameters@Base 1.0.25 + sane_xerox_mfp_get_select_fd@Base 1.0.25 + sane_xerox_mfp_init@Base 1.0.25 + sane_xerox_mfp_open@Base 1.0.25 + sane_xerox_mfp_read@Base 1.0.25 + sane_xerox_mfp_set_io_mode@Base 1.0.25 + sane_xerox_mfp_start@Base 1.0.25 + sanei__hp_accessor_data@Base 1.0.25 + sanei_ab306_close@Base 1.0.25 + sanei_ab306_cmd@Base 1.0.25 + sanei_ab306_exit@Base 1.0.25 + sanei_ab306_get_io_privilege@Base 1.0.25 + sanei_ab306_open@Base 1.0.25 + sanei_ab306_rdata@Base 1.0.25 + sanei_ab306_test_ready@Base 1.0.25 + sanei_access_init@Base 1.0.25 + sanei_access_lock@Base 1.0.25 + sanei_access_unlock@Base 1.0.25 + sanei_bjnp_activate@Base 1.0.25 + sanei_bjnp_close@Base 1.0.25 + sanei_bjnp_deactivate@Base 1.0.25 + sanei_bjnp_find_devices@Base 1.0.25 + sanei_bjnp_init@Base 1.0.25 + sanei_bjnp_open@Base 1.0.25 + sanei_bjnp_read_bulk@Base 1.0.25 + sanei_bjnp_read_int@Base 1.0.25 + sanei_bjnp_set_timeout@Base 1.0.25 + sanei_bjnp_write_bulk@Base 1.0.25 + sanei_canon_pp_abort_scan@Base 1.0.25 + sanei_canon_pp_adjust_gamma@Base 1.0.25 + sanei_canon_pp_calibrate@Base 1.0.25 + sanei_canon_pp_check_status@Base 1.0.25 + sanei_canon_pp_close_scanner@Base 1.0.25 + sanei_canon_pp_detect@Base 1.0.25 + sanei_canon_pp_init_scan@Base 1.0.25 + sanei_canon_pp_initialise@Base 1.0.25 + sanei_canon_pp_load_weights@Base 1.0.25 + sanei_canon_pp_read@Base 1.0.25 + sanei_canon_pp_read_segment@Base 1.0.25 + sanei_canon_pp_scanner_init@Base 1.0.25 + sanei_canon_pp_set_ieee1284_mode@Base 1.0.25 + sanei_canon_pp_sleep_scanner@Base 1.0.25 + sanei_canon_pp_wake_scanner@Base 1.0.25 + sanei_canon_pp_write@Base 1.0.25 + sanei_check_value@Base 1.0.24 + sanei_codec_bin_init@Base 1.0.25 + sanei_config_attach_matching_devices@Base 1.0.25 + sanei_config_get_paths@Base 1.0.24 + sanei_config_get_string@Base 1.0.24 + sanei_config_open@Base 1.0.24 + sanei_config_read@Base 1.0.24 + sanei_config_skip_whitespace@Base 1.0.24 + sanei_configure_attach@Base 1.0.24 + sanei_constrain_value@Base 1.0.24 + sanei_debug_abaton@Base 1.0.25 + sanei_debug_agfafocus@Base 1.0.25 + sanei_debug_apple@Base 1.0.25 + sanei_debug_artec@Base 1.0.25 + sanei_debug_artec_eplus48u@Base 1.0.25 + sanei_debug_as6e@Base 1.0.25 + sanei_debug_avision@Base 1.0.25 + sanei_debug_bh@Base 1.0.25 + sanei_debug_bjnp@Base 1.0.25 + sanei_debug_canon630u@Base 1.0.25 + sanei_debug_canon@Base 1.0.25 + sanei_debug_canon_dr@Base 1.0.25 + sanei_debug_canon_pp@Base 1.0.25 + sanei_debug_canon_pp_call@Base 1.0.25 + sanei_debug_cardscan@Base 1.0.25 + sanei_debug_coolscan2@Base 1.0.25 + sanei_debug_coolscan3@Base 1.0.25 + sanei_debug_coolscan@Base 1.0.25 + sanei_debug_dc210@Base 1.0.25 + sanei_debug_dc240@Base 1.0.25 + sanei_debug_dc25@Base 1.0.25 + sanei_debug_dell1600n_net@Base 1.0.25 + sanei_debug_dll@Base 1.0.25 + sanei_debug_dmc@Base 1.0.25 + sanei_debug_epjitsu@Base 1.0.25 + sanei_debug_epson2@Base 1.0.25 + sanei_debug_epson2_call@Base 1.0.25 + sanei_debug_epson2_scsi@Base 1.0.25 + sanei_debug_epson@Base 1.0.25 + sanei_debug_epson_scsi@Base 1.0.25 + sanei_debug_epsonds@Base 1.0.25 + sanei_debug_epsonds_call@Base 1.0.25 + sanei_debug_fujitsu@Base 1.0.25 + sanei_debug_genesys@Base 1.0.25 + sanei_debug_genesys_gl124@Base 1.0.25 + sanei_debug_genesys_gl646@Base 1.0.25 + sanei_debug_genesys_gl841@Base 1.0.25 + sanei_debug_genesys_gl843@Base 1.0.25 + sanei_debug_genesys_gl846@Base 1.0.25 + sanei_debug_genesys_gl847@Base 1.0.25 + sanei_debug_genesys_low@Base 1.0.25 + sanei_debug_gphoto2@Base 1.0.25 + sanei_debug_gt68xx@Base 1.0.25 + sanei_debug_hp3500@Base 1.0.25 + sanei_debug_hp3900@Base 1.0.25 + sanei_debug_hp4200@Base 1.0.25 + sanei_debug_hp5400@Base 1.0.25 + sanei_debug_hp5400_call@Base 1.0.25 + sanei_debug_hp5590@Base 1.0.25 + sanei_debug_hp@Base 1.0.25 + sanei_debug_hp_call@Base 1.0.25 + sanei_debug_hpljm1005@Base 1.0.25 + sanei_debug_hpsj5s@Base 1.0.25 + sanei_debug_hs2p@Base 1.0.25 + sanei_debug_ibm@Base 1.0.25 + sanei_debug_kodak@Base 1.0.25 + sanei_debug_kodakaio@Base 1.0.25 + sanei_debug_kvs1025@Base 1.0.25 + sanei_debug_kvs1025_call@Base 1.0.25 + sanei_debug_kvs20xx@Base 1.0.25 + sanei_debug_kvs20xx_call@Base 1.0.25 + sanei_debug_kvs40xx@Base 1.0.25 + sanei_debug_kvs40xx_call@Base 1.0.25 + sanei_debug_leo@Base 1.0.25 + sanei_debug_lexmark@Base 1.0.25 + sanei_debug_lexmark_low@Base 1.0.25 + sanei_debug_ma1509@Base 1.0.25 + sanei_debug_magicolor@Base 1.0.25 + sanei_debug_matsushita@Base 1.0.25 + sanei_debug_microtek2@Base 1.0.25 + sanei_debug_microtek@Base 1.0.25 + sanei_debug_msg@Base 1.0.24 + sanei_debug_mustek@Base 1.0.25 + sanei_debug_mustek_pp@Base 1.0.25 + sanei_debug_mustek_usb2@Base 1.0.25 + sanei_debug_mustek_usb@Base 1.0.25 + sanei_debug_nec@Base 1.0.25 + sanei_debug_net@Base 1.0.25 + sanei_debug_niash@Base 1.0.25 + sanei_debug_p5@Base 1.0.25 + sanei_debug_pie@Base 1.0.25 + sanei_debug_pixma@Base 1.0.25 + sanei_debug_pixma_call@Base 1.0.25 + sanei_debug_plustek@Base 1.0.25 + sanei_debug_plustek_pp@Base 1.0.25 + sanei_debug_pnm@Base 1.0.25 + sanei_debug_qcam@Base 1.0.25 + sanei_debug_ricoh@Base 1.0.25 + sanei_debug_rts8891@Base 1.0.25 + sanei_debug_rts88xx_lib@Base 1.0.25 + sanei_debug_s9036@Base 1.0.25 + sanei_debug_sanei_ab306@Base 1.0.25 + sanei_debug_sanei_access@Base 1.0.25 + sanei_debug_sanei_config@Base 1.0.24 + sanei_debug_sanei_debug@Base 1.0.24 + sanei_debug_sanei_lm983x@Base 1.0.25 + sanei_debug_sanei_magic@Base 1.0.25 + sanei_debug_sanei_pa4s2@Base 1.0.25 + sanei_debug_sanei_pio@Base 1.0.25 + sanei_debug_sanei_pp@Base 1.0.25 + sanei_debug_sanei_pv8630@Base 1.0.25 + sanei_debug_sanei_scsi@Base 1.0.25 + sanei_debug_sanei_tcp@Base 1.0.25 + sanei_debug_sanei_thread@Base 1.0.25 + sanei_debug_sanei_udp@Base 1.0.25 + sanei_debug_sanei_usb@Base 1.0.25 + sanei_debug_sanei_wire@Base 1.0.25 + sanei_debug_sceptre@Base 1.0.25 + sanei_debug_sharp@Base 1.0.25 + sanei_debug_sm3600@Base 1.0.25 + sanei_debug_sm3840@Base 1.0.25 + sanei_debug_snapscan@Base 1.0.25 + sanei_debug_sp15c@Base 1.0.25 + sanei_debug_st400@Base 1.0.25 + sanei_debug_stv680@Base 1.0.25 + sanei_debug_tamarack@Base 1.0.25 + sanei_debug_teco1@Base 1.0.25 + sanei_debug_teco2@Base 1.0.25 + sanei_debug_teco3@Base 1.0.25 + sanei_debug_test@Base 1.0.25 + sanei_debug_u12@Base 1.0.25 + sanei_debug_umax1220u@Base 1.0.25 + sanei_debug_umax@Base 1.0.25 + sanei_debug_umax_pp@Base 1.0.25 + sanei_debug_umax_pp_call@Base 1.0.25 + sanei_debug_umax_pp_low@Base 1.0.25 + sanei_debug_xerox_mfp@Base 1.0.25 + sanei_debug_xerox_mfp_call@Base 1.0.25 + sanei_epson2_scsi_inquiry@Base 1.0.25 + sanei_epson2_scsi_read@Base 1.0.25 + sanei_epson2_scsi_sense_handler@Base 1.0.25 + sanei_epson2_scsi_test_unit_ready@Base 1.0.25 + sanei_epson2_scsi_write@Base 1.0.25 + sanei_epson_getNumberOfUSBProductIds@Base 1.0.25 + sanei_epson_net_lock@Base 1.0.25 + sanei_epson_net_read@Base 1.0.25 +#MISSING: 1.0.25# sanei_epson_net_read_raw@Base 1.0.24 + sanei_epson_net_unlock@Base 1.0.25 + sanei_epson_net_write@Base 1.0.25 + sanei_epson_scsi_inquiry@Base 1.0.25 + sanei_epson_scsi_read@Base 1.0.25 + sanei_epson_scsi_sense_handler@Base 1.0.25 + sanei_epson_scsi_write@Base 1.0.25 + sanei_epson_usb_product_ids@Base 1.0.25 + sanei_genesys_asic_init@Base 1.0.25 + sanei_genesys_buffer_alloc@Base 1.0.25 + sanei_genesys_buffer_consume@Base 1.0.25 + sanei_genesys_buffer_free@Base 1.0.25 + sanei_genesys_buffer_get_read_pos@Base 1.0.25 + sanei_genesys_buffer_get_write_pos@Base 1.0.25 + sanei_genesys_buffer_produce@Base 1.0.25 + sanei_genesys_bulk_write_register@Base 1.0.25 + sanei_genesys_calculate_zmode2@Base 1.0.25 + sanei_genesys_calculate_zmode@Base 1.0.25 + sanei_genesys_compute_dpihw@Base 1.0.25 + sanei_genesys_compute_max_shift@Base 1.0.25 + sanei_genesys_compute_step_type@Base 1.0.25 + sanei_genesys_create_gamma_table@Base 1.0.25 + sanei_genesys_create_slope_table3@Base 1.0.25 + sanei_genesys_create_slope_table@Base 1.0.25 + sanei_genesys_exposure_time2@Base 1.0.25 + sanei_genesys_exposure_time@Base 1.0.25 + sanei_genesys_fe_read_data@Base 1.0.25 + sanei_genesys_fe_write_data@Base 1.0.25 + sanei_genesys_generate_gamma_buffer@Base 1.0.25 + sanei_genesys_generate_slope_table@Base 1.0.25 + sanei_genesys_get_address@Base 1.0.25 + sanei_genesys_get_double@Base 1.0.25 + sanei_genesys_get_lowest_dpi@Base 1.0.25 + sanei_genesys_get_lowest_ydpi@Base 1.0.25 + sanei_genesys_get_motor_profile@Base 1.0.25 + sanei_genesys_get_status@Base 1.0.25 + sanei_genesys_get_triple@Base 1.0.25 + sanei_genesys_init_cmd_set@Base 1.0.25 + sanei_genesys_init_fe@Base 1.0.25 + sanei_genesys_init_shading_data@Base 1.0.25 + sanei_genesys_init_structs@Base 1.0.25 + sanei_genesys_is_compatible_calibration@Base 1.0.25 + sanei_genesys_load_lut@Base 1.0.25 + sanei_genesys_print_status@Base 1.0.25 + sanei_genesys_read_calibration@Base 1.0.25 + sanei_genesys_read_data_from_scanner@Base 1.0.25 + sanei_genesys_read_feed_steps@Base 1.0.25 + sanei_genesys_read_hregister@Base 1.0.25 + sanei_genesys_read_reg_from_set@Base 1.0.25 + sanei_genesys_read_register@Base 1.0.25 + sanei_genesys_read_scancnt@Base 1.0.25 + sanei_genesys_read_valid_words@Base 1.0.25 + sanei_genesys_search_reference_point@Base 1.0.25 + sanei_genesys_send_gamma_table@Base 1.0.25 + sanei_genesys_set_buffer_address@Base 1.0.25 + sanei_genesys_set_double@Base 1.0.25 + sanei_genesys_set_reg_from_set@Base 1.0.25 + sanei_genesys_set_triple@Base 1.0.25 + sanei_genesys_slope_table@Base 1.0.25 + sanei_genesys_test_buffer_empty@Base 1.0.25 + sanei_genesys_wait_for_home@Base 1.0.25 + sanei_genesys_write_0x8c@Base 1.0.25 + sanei_genesys_write_ahb@Base 1.0.25 + sanei_genesys_write_hregister@Base 1.0.25 + sanei_genesys_write_pnm_file@Base 1.0.25 + sanei_genesys_write_register@Base 1.0.25 + sanei_gl124_init_cmd_set@Base 1.0.25 + sanei_gl646_init_cmd_set@Base 1.0.25 + sanei_gl841_init_cmd_set@Base 1.0.25 + sanei_gl843_init_cmd_set@Base 1.0.25 + sanei_gl846_init_cmd_set@Base 1.0.25 + sanei_gl847_init_cmd_set@Base 1.0.25 + sanei_hp_accessor_bool_new@Base 1.0.25 + sanei_hp_accessor_choice_maxsize@Base 1.0.25 + sanei_hp_accessor_choice_new@Base 1.0.25 + sanei_hp_accessor_choice_strlist@Base 1.0.25 + sanei_hp_accessor_data@Base 1.0.25 + sanei_hp_accessor_fixed_new@Base 1.0.25 + sanei_hp_accessor_gamma_vector_new@Base 1.0.25 + sanei_hp_accessor_geometry_new@Base 1.0.25 + sanei_hp_accessor_get@Base 1.0.25 + sanei_hp_accessor_getint@Base 1.0.25 + sanei_hp_accessor_int_new@Base 1.0.25 + sanei_hp_accessor_matrix_vector_new@Base 1.0.25 + sanei_hp_accessor_new@Base 1.0.25 + sanei_hp_accessor_set@Base 1.0.25 + sanei_hp_accessor_setint@Base 1.0.25 + sanei_hp_accessor_size@Base 1.0.25 + sanei_hp_accessor_subvector_new@Base 1.0.25 + sanei_hp_accessor_vector_length@Base 1.0.25 + sanei_hp_accessor_vector_maxval@Base 1.0.25 + sanei_hp_accessor_vector_minval@Base 1.0.25 + sanei_hp_accessor_vector_new@Base 1.0.25 + sanei_hp_alloc@Base 1.0.25 + sanei_hp_allocz@Base 1.0.25 + sanei_hp_choice_isEnabled@Base 1.0.25 + sanei_hp_data_destroy@Base 1.0.25 + sanei_hp_data_dup@Base 1.0.25 + sanei_hp_data_new@Base 1.0.25 + sanei_hp_dbgdump@Base 1.0.25 + sanei_hp_device_compat@Base 1.0.25 + sanei_hp_device_get@Base 1.0.25 + sanei_hp_device_info_get@Base 1.0.25 + sanei_hp_device_new@Base 1.0.25 + sanei_hp_device_probe@Base 1.0.25 + sanei_hp_device_probe_model@Base 1.0.25 + sanei_hp_device_sanedevice@Base 1.0.25 + sanei_hp_device_simulate_clear@Base 1.0.25 + sanei_hp_device_simulate_get@Base 1.0.25 + sanei_hp_device_simulate_set@Base 1.0.25 + sanei_hp_device_support_get@Base 1.0.25 + sanei_hp_device_support_probe@Base 1.0.25 + sanei_hp_free@Base 1.0.25 + sanei_hp_free_all@Base 1.0.25 + sanei_hp_get_connect@Base 1.0.25 + sanei_hp_get_max_model@Base 1.0.25 + sanei_hp_handle_cancel@Base 1.0.25 + sanei_hp_handle_control@Base 1.0.25 + sanei_hp_handle_destroy@Base 1.0.25 + sanei_hp_handle_getParameters@Base 1.0.25 + sanei_hp_handle_getPipefd@Base 1.0.25 + sanei_hp_handle_new@Base 1.0.25 + sanei_hp_handle_read@Base 1.0.25 + sanei_hp_handle_saneoption@Base 1.0.25 + sanei_hp_handle_setNonblocking@Base 1.0.25 + sanei_hp_handle_startScan@Base 1.0.25 + sanei_hp_init_openfd@Base 1.0.25 + sanei_hp_is_active_xpa@Base 1.0.25 + sanei_hp_is_flatbed_adf@Base 1.0.25 + sanei_hp_memdup@Base 1.0.25 + sanei_hp_nonscsi_new@Base 1.0.25 + sanei_hp_optset_control@Base 1.0.25 + sanei_hp_optset_data_width@Base 1.0.25 + sanei_hp_optset_download@Base 1.0.25 + sanei_hp_optset_guessParameters@Base 1.0.25 + sanei_hp_optset_isImmediate@Base 1.0.25 + sanei_hp_optset_mirror_vert@Base 1.0.25 + sanei_hp_optset_new@Base 1.0.25 + sanei_hp_optset_output_8bit@Base 1.0.25 + sanei_hp_optset_saneoption@Base 1.0.25 + sanei_hp_optset_scan_type@Base 1.0.25 + sanei_hp_optset_scanmode@Base 1.0.25 + sanei_hp_optset_start_wait@Base 1.0.25 + sanei_hp_realloc@Base 1.0.25 + sanei_hp_scl_calibrate@Base 1.0.25 + sanei_hp_scl_clearErrors@Base 1.0.25 + sanei_hp_scl_download@Base 1.0.25 + sanei_hp_scl_errcheck@Base 1.0.25 + sanei_hp_scl_inquire@Base 1.0.25 + sanei_hp_scl_reset@Base 1.0.25 + sanei_hp_scl_set@Base 1.0.25 + sanei_hp_scl_startScan@Base 1.0.25 + sanei_hp_scl_upload@Base 1.0.25 + sanei_hp_scl_upload_binary@Base 1.0.25 + sanei_hp_scsi_destroy@Base 1.0.25 + sanei_hp_scsi_devicename@Base 1.0.25 + sanei_hp_scsi_get_connect@Base 1.0.25 + sanei_hp_scsi_inq@Base 1.0.25 + sanei_hp_scsi_model@Base 1.0.25 + sanei_hp_scsi_new@Base 1.0.25 + sanei_hp_scsi_pipeout@Base 1.0.25 + sanei_hp_scsi_vendor@Base 1.0.25 + sanei_hp_strdup@Base 1.0.25 + sanei_init_debug@Base 1.0.24 + sanei_jpeg_jinit_write_ppm@Base 1.0.25 + sanei_lexmark_low_assign_model@Base 1.0.25 + sanei_lexmark_low_calibration@Base 1.0.25 + sanei_lexmark_low_close_device@Base 1.0.25 + sanei_lexmark_low_destroy@Base 1.0.25 + sanei_lexmark_low_find_start_line@Base 1.0.25 + sanei_lexmark_low_gain_calibration@Base 1.0.25 + sanei_lexmark_low_init@Base 1.0.25 + sanei_lexmark_low_move_fwd@Base 1.0.25 + sanei_lexmark_low_offset_calibration@Base 1.0.25 + sanei_lexmark_low_open_device@Base 1.0.25 + sanei_lexmark_low_read_scan_data@Base 1.0.25 + sanei_lexmark_low_search_home_bwd@Base 1.0.25 + sanei_lexmark_low_search_home_fwd@Base 1.0.25 + sanei_lexmark_low_set_scan_regs@Base 1.0.25 + sanei_lexmark_low_shading_calibration@Base 1.0.25 + sanei_lexmark_low_start_scan@Base 1.0.25 + sanei_lm983x_init@Base 1.0.25 + sanei_lm983x_read@Base 1.0.25 + sanei_lm983x_reset@Base 1.0.25 + sanei_lm983x_write@Base 1.0.25 + sanei_lm983x_write_byte@Base 1.0.25 + sanei_magic_crop@Base 1.0.25 + sanei_magic_despeck@Base 1.0.25 + sanei_magic_findEdges@Base 1.0.25 + sanei_magic_findSkew@Base 1.0.25 + sanei_magic_findTurn@Base 1.0.25 + sanei_magic_getTransX@Base 1.0.25 + sanei_magic_getTransY@Base 1.0.25 + sanei_magic_init@Base 1.0.25 + sanei_magic_isBlank2@Base 1.0.25 + sanei_magic_isBlank@Base 1.0.25 + sanei_magic_rotate@Base 1.0.25 + sanei_magic_turn@Base 1.0.25 + sanei_magicolor_usb_product_ids@Base 1.0.25 + sanei_pa4s2_close@Base 1.0.25 + sanei_pa4s2_devices@Base 1.0.25 + sanei_pa4s2_enable@Base 1.0.25 + sanei_pa4s2_open@Base 1.0.25 + sanei_pa4s2_options@Base 1.0.25 + sanei_pa4s2_readbegin@Base 1.0.25 + sanei_pa4s2_readbyte@Base 1.0.25 + sanei_pa4s2_readend@Base 1.0.25 + sanei_pa4s2_scsi_pp_get_status@Base 1.0.25 + sanei_pa4s2_scsi_pp_open@Base 1.0.25 + sanei_pa4s2_scsi_pp_reg_select@Base 1.0.25 + sanei_pa4s2_writebyte@Base 1.0.25 + sanei_parport_find_device@Base 1.0.25 + sanei_parport_find_port@Base 1.0.25 + sanei_pio_close@Base 1.0.25 + sanei_pio_open@Base 1.0.25 + sanei_pio_read@Base 1.0.25 + sanei_pio_write@Base 1.0.25 + sanei_pixma_cancel@Base 1.0.25 + sanei_pixma_check_dpi@Base 1.0.25 + sanei_pixma_check_result@Base 1.0.25 + sanei_pixma_check_scan_param@Base 1.0.25 + sanei_pixma_cleanup@Base 1.0.25 + sanei_pixma_close@Base 1.0.25 + sanei_pixma_cmd_transaction@Base 1.0.25 + sanei_pixma_collect_devices@Base 1.0.25 + sanei_pixma_connect@Base 1.0.25 + sanei_pixma_disconnect@Base 1.0.25 + sanei_pixma_dump@Base 1.0.25 + sanei_pixma_enable_background@Base 1.0.25 + sanei_pixma_exec@Base 1.0.25 + sanei_pixma_exec_short_cmd@Base 1.0.25 + sanei_pixma_fill_gamma_table@Base 1.0.25 + sanei_pixma_find_scanners@Base 1.0.25 + sanei_pixma_get_be16@Base 1.0.25 + sanei_pixma_get_be32@Base 1.0.25 + sanei_pixma_get_config@Base 1.0.25 + sanei_pixma_get_device_config@Base 1.0.25 + sanei_pixma_get_device_id@Base 1.0.25 + sanei_pixma_get_device_model@Base 1.0.25 + sanei_pixma_get_device_status@Base 1.0.25 + sanei_pixma_get_string@Base 1.0.25 + sanei_pixma_get_time@Base 1.0.25 + sanei_pixma_hexdump@Base 1.0.25 + sanei_pixma_iclass_devices@Base 1.0.25 + sanei_pixma_init@Base 1.0.25 + sanei_pixma_io_cleanup@Base 1.0.25 + sanei_pixma_io_init@Base 1.0.25 + sanei_pixma_map_status_errno@Base 1.0.25 + sanei_pixma_mp150_devices@Base 1.0.25 + sanei_pixma_mp730_devices@Base 1.0.25 + sanei_pixma_mp750_devices@Base 1.0.25 + sanei_pixma_mp810_devices@Base 1.0.25 + sanei_pixma_newcmd@Base 1.0.25 + sanei_pixma_open@Base 1.0.25 + sanei_pixma_read@Base 1.0.25 + sanei_pixma_read_image@Base 1.0.25 + sanei_pixma_reset_device@Base 1.0.25 + sanei_pixma_scan@Base 1.0.25 + sanei_pixma_set_be16@Base 1.0.25 + sanei_pixma_set_be32@Base 1.0.25 + sanei_pixma_set_debug_level@Base 1.0.25 + sanei_pixma_set_interrupt_mode@Base 1.0.25 + sanei_pixma_sleep@Base 1.0.25 + sanei_pixma_strerror@Base 1.0.25 + sanei_pixma_sum_bytes@Base 1.0.25 + sanei_pixma_wait_event@Base 1.0.25 + sanei_pixma_wait_interrupt@Base 1.0.25 + sanei_pixma_write@Base 1.0.25 + sanei_pp_claim@Base 1.0.25 + sanei_pp_close@Base 1.0.25 + sanei_pp_getmodes@Base 1.0.25 + sanei_pp_inb_ctrl@Base 1.0.25 + sanei_pp_inb_data@Base 1.0.25 + sanei_pp_inb_epp@Base 1.0.25 + sanei_pp_inb_stat@Base 1.0.25 + sanei_pp_init@Base 1.0.25 + sanei_pp_open@Base 1.0.25 + sanei_pp_outb_addr@Base 1.0.25 + sanei_pp_outb_ctrl@Base 1.0.25 + sanei_pp_outb_data@Base 1.0.25 + sanei_pp_outb_epp@Base 1.0.25 + sanei_pp_release@Base 1.0.25 + sanei_pp_set_datadir@Base 1.0.25 + sanei_pp_setmode@Base 1.0.25 + sanei_pp_udelay@Base 1.0.25 + sanei_pp_uses_directio@Base 1.0.25 + sanei_pv8630_bulkread@Base 1.0.25 + sanei_pv8630_bulkwrite@Base 1.0.25 + sanei_pv8630_flush_buffer@Base 1.0.25 + sanei_pv8630_init@Base 1.0.25 + sanei_pv8630_prep_bulkread@Base 1.0.25 + sanei_pv8630_prep_bulkwrite@Base 1.0.25 + sanei_pv8630_read_byte@Base 1.0.25 + sanei_pv8630_wait_byte@Base 1.0.25 + sanei_pv8630_write_byte@Base 1.0.25 + sanei_pv8630_xpect_byte@Base 1.0.25 + sanei_rts88xx_cancel@Base 1.0.25 + sanei_rts88xx_data_count@Base 1.0.25 + sanei_rts88xx_get_lamp_status@Base 1.0.25 + sanei_rts88xx_get_lcd@Base 1.0.25 + sanei_rts88xx_get_mem@Base 1.0.25 + sanei_rts88xx_get_status@Base 1.0.25 + sanei_rts88xx_is_color@Base 1.0.25 + sanei_rts88xx_lib_init@Base 1.0.25 + sanei_rts88xx_nvram_ctrl@Base 1.0.25 + sanei_rts88xx_read_data@Base 1.0.25 + sanei_rts88xx_read_mem@Base 1.0.25 + sanei_rts88xx_read_reg@Base 1.0.25 + sanei_rts88xx_read_regs@Base 1.0.25 + sanei_rts88xx_reset_lamp@Base 1.0.25 + sanei_rts88xx_set_color_scan@Base 1.0.25 + sanei_rts88xx_set_gain@Base 1.0.25 + sanei_rts88xx_set_gray_scan@Base 1.0.25 + sanei_rts88xx_set_mem@Base 1.0.25 + sanei_rts88xx_set_offset@Base 1.0.25 + sanei_rts88xx_set_scan_area@Base 1.0.25 + sanei_rts88xx_set_scan_frequency@Base 1.0.25 + sanei_rts88xx_set_status@Base 1.0.25 + sanei_rts88xx_setup_nvram@Base 1.0.25 + sanei_rts88xx_wait_data@Base 1.0.25 + sanei_rts88xx_write_control@Base 1.0.25 + sanei_rts88xx_write_mem@Base 1.0.25 + sanei_rts88xx_write_reg@Base 1.0.25 + sanei_rts88xx_write_regs@Base 1.0.25 + sanei_scsi_close@Base 1.0.25 + sanei_scsi_cmd2@Base 1.0.25 + sanei_scsi_cmd@Base 1.0.25 + sanei_scsi_find_devices@Base 1.0.25 + sanei_scsi_max_request_size@Base 1.0.25 + sanei_scsi_open@Base 1.0.25 + sanei_scsi_open_extended@Base 1.0.25 + sanei_scsi_req_enter2@Base 1.0.25 + sanei_scsi_req_enter@Base 1.0.25 + sanei_scsi_req_flush_all@Base 1.0.25 + sanei_scsi_req_flush_all_extended@Base 1.0.25 + sanei_scsi_req_wait@Base 1.0.25 + sanei_tcp_close@Base 1.0.25 + sanei_tcp_open@Base 1.0.25 + sanei_tcp_read@Base 1.0.25 + sanei_tcp_write@Base 1.0.25 + sanei_thread_begin@Base 1.0.25 + sanei_thread_get_status@Base 1.0.25 + sanei_thread_init@Base 1.0.25 + sanei_thread_is_forked@Base 1.0.25 + sanei_thread_is_invalid@Base 1.0.25 + sanei_thread_kill@Base 1.0.25 + sanei_thread_sendsig@Base 1.0.25 + sanei_thread_waitpid@Base 1.0.25 + sanei_udp_close@Base 1.0.25 + sanei_udp_open@Base 1.0.25 + sanei_udp_open_broadcast@Base 1.0.25 + sanei_udp_read@Base 1.0.25 + sanei_udp_recvfrom@Base 1.0.25 + sanei_udp_set_nonblock@Base 1.0.25 + sanei_udp_write@Base 1.0.25 + sanei_udp_write_broadcast@Base 1.0.25 + sanei_umax_pp_UTA@Base 1.0.25 + sanei_umax_pp_attach@Base 1.0.25 + sanei_umax_pp_cancel@Base 1.0.25 + sanei_umax_pp_checkModel@Base 1.0.25 + sanei_umax_pp_close@Base 1.0.25 + sanei_umax_pp_cmdSync@Base 1.0.25 + sanei_umax_pp_endSession@Base 1.0.25 + sanei_umax_pp_gamma@Base 1.0.25 + sanei_umax_pp_getLeft@Base 1.0.25 + sanei_umax_pp_getastra@Base 1.0.25 + sanei_umax_pp_getauto@Base 1.0.25 + sanei_umax_pp_getfull@Base 1.0.25 + sanei_umax_pp_getparport@Base 1.0.25 + sanei_umax_pp_getport@Base 1.0.25 + sanei_umax_pp_initPort@Base 1.0.25 + sanei_umax_pp_initScanner@Base 1.0.25 + sanei_umax_pp_initTransport@Base 1.0.25 + sanei_umax_pp_lamp@Base 1.0.25 + sanei_umax_pp_model@Base 1.0.25 + sanei_umax_pp_open@Base 1.0.25 + sanei_umax_pp_park@Base 1.0.25 + sanei_umax_pp_parkWait@Base 1.0.25 + sanei_umax_pp_probeScanner@Base 1.0.25 + sanei_umax_pp_read@Base 1.0.25 + sanei_umax_pp_readBlock@Base 1.0.25 + sanei_umax_pp_scan@Base 1.0.25 + sanei_umax_pp_scannerStatus@Base 1.0.25 + sanei_umax_pp_setLamp@Base 1.0.25 + sanei_umax_pp_setLeft@Base 1.0.25 + sanei_umax_pp_setastra@Base 1.0.25 + sanei_umax_pp_setauto@Base 1.0.25 + sanei_umax_pp_setfull@Base 1.0.25 + sanei_umax_pp_setparport@Base 1.0.25 + sanei_umax_pp_setport@Base 1.0.25 + sanei_umax_pp_start@Base 1.0.25 + sanei_umax_pp_startScan@Base 1.0.25 + sanei_umax_pp_status@Base 1.0.25 + sanei_usb_attach_matching_devices@Base 1.0.25 + sanei_usb_claim_interface@Base 1.0.25 + sanei_usb_clear_halt@Base 1.0.25 + sanei_usb_close@Base 1.0.25 + sanei_usb_control_msg@Base 1.0.25 + sanei_usb_exit@Base 1.0.25 + sanei_usb_find_devices@Base 1.0.25 + sanei_usb_get_descriptor@Base 1.0.25 + sanei_usb_get_endpoint@Base 1.0.25 + sanei_usb_get_vendor_product@Base 1.0.25 + sanei_usb_get_vendor_product_byname@Base 1.0.25 + sanei_usb_init@Base 1.0.25 + sanei_usb_open@Base 1.0.25 + sanei_usb_read_bulk@Base 1.0.25 + sanei_usb_read_int@Base 1.0.25 + sanei_usb_release_interface@Base 1.0.25 + sanei_usb_reset@Base 1.0.25 + sanei_usb_scan_devices@Base 1.0.25 + sanei_usb_set_altinterface@Base 1.0.25 + sanei_usb_set_configuration@Base 1.0.25 + sanei_usb_set_endpoint@Base 1.0.25 + sanei_usb_set_timeout@Base 1.0.25 + sanei_usb_write_bulk@Base 1.0.25 + sanei_w_action@Base 1.0.25 + sanei_w_array@Base 1.0.25 + sanei_w_authorization_req@Base 1.0.25 + sanei_w_bool@Base 1.0.25 + sanei_w_byte@Base 1.0.25 + sanei_w_call@Base 1.0.25 + sanei_w_char@Base 1.0.25 + sanei_w_constraint_type@Base 1.0.25 + sanei_w_control_option_reply@Base 1.0.25 + sanei_w_control_option_req@Base 1.0.25 + sanei_w_device@Base 1.0.25 + sanei_w_device_ptr@Base 1.0.25 + sanei_w_exit@Base 1.0.25 + sanei_w_frame@Base 1.0.25 + sanei_w_free@Base 1.0.25 + sanei_w_get_devices_reply@Base 1.0.25 + sanei_w_get_parameters_reply@Base 1.0.25 + sanei_w_init@Base 1.0.25 + sanei_w_init_reply@Base 1.0.25 + sanei_w_init_req@Base 1.0.25 + sanei_w_open_reply@Base 1.0.25 + sanei_w_option_descriptor@Base 1.0.25 + sanei_w_option_descriptor_array@Base 1.0.25 + sanei_w_option_descriptor_ptr@Base 1.0.25 + sanei_w_parameters@Base 1.0.25 + sanei_w_ptr@Base 1.0.25 + sanei_w_range@Base 1.0.25 + sanei_w_reply@Base 1.0.25 + sanei_w_set_dir@Base 1.0.25 + sanei_w_space@Base 1.0.25 + sanei_w_start_reply@Base 1.0.25 + sanei_w_status@Base 1.0.25 + sanei_w_string@Base 1.0.25 + sanei_w_unit@Base 1.0.25 + sanei_w_value_type@Base 1.0.25 + sanei_w_void@Base 1.0.25 + sanei_w_word@Base 1.0.25 + scan2@Base 1.0.25 + scan@Base 1.0.25 + scantype@Base 1.0.25 + shadingbase@Base 1.0.25 + shadingfact@Base 1.0.25 + smearacccurvecount@Base 1.0.25 + smeardeccurvecount@Base 1.0.25 + source_list@Base 1.0.25 + stop_adf@Base 1.0.25 + tcp_configure_device@Base 1.0.25 + tcp_dev_close@Base 1.0.25 + tcp_dev_open@Base 1.0.25 + tcp_dev_request@Base 1.0.25 + toupper_ascii@Base 1.0.24 + usb_configure_device@Base 1.0.25 + usb_dev_close@Base 1.0.25 + usb_dev_open@Base 1.0.25 + usb_dev_request@Base 1.0.25 + usb_devfile@Base 1.0.25 + v0750@Base 1.0.25 + v07c0@Base 1.0.25 + v14b4@Base 1.0.25 + v15b4@Base 1.0.25 + v15bc@Base 1.0.25 + v15f8@Base 1.0.25 + v1600@Base 1.0.25 + v1604@Base 1.0.25 + v1608@Base 1.0.25 + v160c_block_size@Base 1.0.25 + v1619@Base 1.0.25 + v35b8@Base 1.0.25 + w_cmd_count@Base 1.0.25 + waitforpwm@Base 1.0.25 + wshading@Base 1.0.25 diff --git a/debian/patches/0005-mk_reproducible_results.patch b/debian/patches/0005-mk_reproducible_results.patch new file mode 100644 index 0000000..844f87e --- /dev/null +++ b/debian/patches/0005-mk_reproducible_results.patch @@ -0,0 +1,22 @@ +Description: Make build reproducible. +Author: Jörg Frings-Fürst +Last-Update: 2015-04-23 +--- +This patch header follows DEP-3: http://dep.debian.net/deps/dep3/ +Index: trunk/tools/sane-desc.c +=================================================================== +--- trunk.orig/tools/sane-desc.c ++++ trunk/tools/sane-desc.c +@@ -2816,8 +2816,10 @@ html_print_footer (void) + "

\n" + "Contact\n" "
\n" "\n"); +- printf ("This page was last updated on %s by sane-desc %s from %s\n", +- asctime (localtime (¤t_time)), SANE_DESC_VERSION, PACKAGE_STRING); ++/* printf ("This page was last updated on %s by sane-desc %s from %s\n", ++ asctime (localtime (¤t_time)), SANE_DESC_VERSION, PACKAGE_STRING); */ ++ printf ("This page was last updated by sane-desc %s from %s\n", ++ SANE_DESC_VERSION, PACKAGE_STRING); + printf ("\n"); + printf (" \n"); + } diff --git a/debian/patches/001-scanimage_manpage.patch b/debian/patches/001-scanimage_manpage.patch new file mode 100644 index 0000000..08e5cc1 --- /dev/null +++ b/debian/patches/001-scanimage_manpage.patch @@ -0,0 +1,21 @@ +Description: Add remark to options. +Author: Jörg Frings-Fürst +Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=418630 +Forwarded: +Last-Update: 2015-01-18 +--- +This patch header follows DEP-3: http://dep.debian.net/deps/dep3/ +Index: trunk/doc/scanimage.man +=================================================================== +--- trunk.orig/doc/scanimage.man ++++ trunk/doc/scanimage.man +@@ -73,6 +73,9 @@ To print all available options: + scanimage \-h + + .SH OPTIONS ++\fBRemark:\fR Parameter are defined by the backends. So are \-\-mode Gray and \-\-mode Grayscale in use. ++Please read the backend documentation first. ++ + Parameters are separated by a blank from single-character options (e.g. + \-d epson) and by a "=" from multi-character options (e.g. \-\-device\-name=epson). + diff --git a/debian/patches/0510-disable-html-tests.patch b/debian/patches/0510-disable-html-tests.patch new file mode 100644 index 0000000..f54ccf2 --- /dev/null +++ b/debian/patches/0510-disable-html-tests.patch @@ -0,0 +1,35 @@ +Description: Disable html tests. + Disable some html tests because debian/patches/ + sane-desc.c_debian_mods.patch change some links to + the doc directory. +Author: Jörg Frings-Fürst +Forwarded: not-needed +Last-Update: 2015-04-26 +--- +This patch header follows DEP-3: http://dep.debian.net/deps/dep3/ +Index: experimental/testsuite/tools/Makefile.am +=================================================================== +--- experimental.orig/testsuite/tools/Makefile.am ++++ experimental/testsuite/tools/Makefile.am +@@ -28,7 +28,7 @@ check: check.local + + check.local: + @echo "**** Testing $(SANEDESC) with $(TESTFILE)" +- @for mode in ascii html-backends-split html-mfgs xml statistics usermap db udev udev+acl udev+hwdb hwdb plist hal hal-new; \ ++ @for mode in ascii xml statistics usermap db udev udev+acl udev+hwdb hwdb plist hal hal-new; \ + do \ + echo "PASS: sane-desc -m $$mode -s $(srcdir)/data"; \ + $(SANEDESC) -m $$mode -s $(srcdir)/data >$$mode.res ;\ +Index: experimental/testsuite/tools/Makefile.in +=================================================================== +--- experimental.orig/testsuite/tools/Makefile.in ++++ experimental/testsuite/tools/Makefile.in +@@ -499,7 +499,7 @@ check: check.local + + check.local: + @echo "**** Testing $(SANEDESC) with $(TESTFILE)" +- @for mode in ascii html-backends-split html-mfgs xml statistics usermap db udev udev+acl udev+hwdb hwdb plist hal hal-new; \ ++ @for mode in ascii xml statistics usermap db udev udev+acl udev+hwdb hwdb plist hal hal-new; \ + do \ + echo "PASS: sane-desc -m $$mode -s $(srcdir)/data"; \ + $(SANEDESC) -m $$mode -s $(srcdir)/data >$$mode.res ;\ diff --git a/debian/patches/dll_backend_conf.patch b/debian/patches/dll_backend_conf.patch index 3b8583c..17f5f57 100644 --- a/debian/patches/dll_backend_conf.patch +++ b/debian/patches/dll_backend_conf.patch @@ -5,8 +5,10 @@ Description: Add a header to dll.conf Also remove the pint backend as it's not available on our platforms. Author: Julien BLACHE ---- a/backend/dll.conf.in -+++ b/backend/dll.conf.in +Index: experimental/backend/dll.conf.in +=================================================================== +--- experimental.orig/backend/dll.conf.in ++++ experimental/backend/dll.conf.in @@ -1,4 +1,12 @@ -# enable the next line if you want to allow access through the network: +# /etc/sane.d/dll.conf - Configuration file for the SANE dynamic backend loader @@ -21,7 +23,7 @@ Author: Julien BLACHE net abaton agfafocus -@@ -57,7 +65,6 @@ +@@ -58,7 +66,6 @@ nec niash #p5 pie diff --git a/debian/patches/libsane_deps.patch b/debian/patches/libsane_deps.patch index 478c9d2..ff8f99a 100644 --- a/debian/patches/libsane_deps.patch +++ b/debian/patches/libsane_deps.patch @@ -10,9 +10,11 @@ Original patch author: Julien BLACHE backend/Makefile.in | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) ---- a/backend/Makefile.in -+++ b/backend/Makefile.in -@@ -2660,10 +2660,9 @@ +Index: experimental/backend/Makefile.in +=================================================================== +--- experimental.orig/backend/Makefile.in ++++ experimental/backend/Makefile.in +@@ -2692,10 +2692,9 @@ libsane_dll_la_LIBADD = $(COMMON_LIBS) l nodist_libsane_la_SOURCES = dll-s.c libsane_la_CPPFLAGS = $(AM_CPPFLAGS) -DBACKEND_NAME=dll libsane_la_LDFLAGS = $(DIST_LIBS_LDFLAGS) diff --git a/debian/patches/multiarch_dll_search_path.patch b/debian/patches/multiarch_dll_search_path.patch index 703a408..7c24d21 100644 --- a/debian/patches/multiarch_dll_search_path.patch +++ b/debian/patches/multiarch_dll_search_path.patch @@ -3,9 +3,11 @@ Description: Keep /usr/lib/sane as a fallback for SANE backends but keep /usr/lib/sane as a fallback for now. Author: Julien BLACHE ---- a/backend/dll.c -+++ b/backend/dll.c -@@ -430,7 +430,7 @@ +Index: experimental/backend/dll.c +=================================================================== +--- experimental.orig/backend/dll.c ++++ experimental/backend/dll.c +@@ -430,7 +430,7 @@ load (struct backend *be) if (path) { @@ -14,7 +16,7 @@ Author: Julien BLACHE src = malloc (src_len); if (!src) { -@@ -438,12 +438,11 @@ +@@ -438,12 +438,11 @@ load (struct backend *be) return SANE_STATUS_NO_MEM; } orig_src = src; @@ -29,9 +31,11 @@ Author: Julien BLACHE if (!src) { DBG (1, "load: strdup failed: %s\n", strerror (errno)); ---- a/backend/Makefile.in -+++ b/backend/Makefile.in -@@ -1868,7 +1868,7 @@ +Index: experimental/backend/Makefile.in +=================================================================== +--- experimental.orig/backend/Makefile.in ++++ experimental/backend/Makefile.in +@@ -1887,7 +1887,7 @@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ diff --git a/debian/patches/multiarch_manpages_libdir.patch b/debian/patches/multiarch_manpages_libdir.patch index cd40126..12b66a0 100644 --- a/debian/patches/multiarch_manpages_libdir.patch +++ b/debian/patches/multiarch_manpages_libdir.patch @@ -3,9 +3,11 @@ Description: Use a generic multiarch path in man pages a generic /usr/lib/arch_triplet/sane path instead. Author: Julien BLACHE ---- a/doc/Makefile.in -+++ b/doc/Makefile.in -@@ -901,7 +901,7 @@ +Index: experimental/doc/Makefile.in +=================================================================== +--- experimental.orig/doc/Makefile.in ++++ experimental/doc/Makefile.in +@@ -902,7 +902,7 @@ all: bemans $(STANDARD) html-pages @sed -e 's|@DATADIR@|$(datadir)|g' \ -e 's|@CONFIGDIR@|$(configdir)|g' \ -e 's|@DOCDIR@|$(docdir)|g' \ diff --git a/debian/patches/sane-desc.c_debian_mods.patch b/debian/patches/sane-desc.c_debian_mods.patch index 4b9faec..9701cce 100644 --- a/debian/patches/sane-desc.c_debian_mods.patch +++ b/debian/patches/sane-desc.c_debian_mods.patch @@ -5,10 +5,10 @@ Description: Tweak sane-desc to suit our needs this breaks multiarch. Author: Julien BLACHE -Index: sane-backends-1.0.24/tools/sane-desc.c +Index: experimental/tools/sane-desc.c =================================================================== ---- sane-backends-1.0.24.orig/tools/sane-desc.c 2013-08-25 17:23:27.000000000 -0400 -+++ sane-backends-1.0.24/tools/sane-desc.c 2013-10-05 16:10:52.703408806 -0400 +--- experimental.orig/tools/sane-desc.c ++++ experimental/tools/sane-desc.c @@ -47,7 +47,7 @@ #define SANE_DESC_VERSION "3.5" @@ -18,31 +18,7 @@ Index: sane-backends-1.0.24/tools/sane-desc.c #define COLOR_MINIMAL "\"#B00000\"" #define COLOR_BASIC "\"#FF9000\"" #define COLOR_GOOD "\"#90B000\"" -@@ -2523,8 +2523,8 @@ - printf ("
\n"); - } - if (be->manpage) -- printf ("Manual page: %s
\n", be->manpage, be->manpage); -+ printf ("Manual page:" -+ "%s
\n", be->manpage); - - if (be->comment) - printf ("Comment: %s
\n", be->comment); -@@ -2758,9 +2758,9 @@ - - printf ("\n"); - if (model_record->be->manpage) -- printf ("%s\n", -- model_record->be->manpage, model_record->be->manpage); -+ printf ("" -+ "%s\n", -+ model_record->be->manpage); - else - printf ("?\n"); - -@@ -2785,8 +2785,8 @@ +@@ -2785,8 +2785,8 @@ html_print_header (void) printf ("\n" "\n" @@ -53,7 +29,7 @@ Index: sane-backends-1.0.24/tools/sane-desc.c printf ("

%s

\n", title); printf ("\n" "
\n"); printf ("%s\n", intro); -@@ -3463,8 +3463,8 @@ +@@ -3465,8 +3465,8 @@ print_udev_header (void) { time_t current_time = time (0); printf ("# This file was automatically created based on description files (*.desc)\n" @@ -64,10 +40,10 @@ Index: sane-backends-1.0.24/tools/sane-desc.c printf ("#\n" -Index: sane-backends-1.0.24/testsuite/tools/data/html-backends-split.ref +Index: experimental/testsuite/tools/data/html-backends-split.ref =================================================================== ---- sane-backends-1.0.24.orig/testsuite/tools/data/html-backends-split.ref 2013-08-25 17:23:27.000000000 -0400 -+++ sane-backends-1.0.24/testsuite/tools/data/html-backends-split.ref 2013-10-05 16:11:28.143407759 -0400 +--- experimental.orig/testsuite/tools/data/html-backends-split.ref ++++ experimental/testsuite/tools/data/html-backends-split.ref @@ -5,7 +5,6 @@ @@ -76,7 +52,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-backends-split.ref

SANE: Backends (Drivers)


-@@ -165,7 +164,7 @@ +@@ -165,7 +164,7 @@ isn't mentioned in this list at all.

(unmaintained)

@@ -85,7 +61,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-backends-split.ref

-@@ -197,7 +196,7 @@ +@@ -197,7 +196,7 @@ Abaton (unmaintained)

@@ -94,7 +70,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-backends-split.ref

-@@ -259,7 +258,7 @@ +@@ -259,7 +258,7 @@ Siemens (unmaintained)

@@ -103,7 +79,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-backends-split.ref

-@@ -300,7 +299,7 @@ +@@ -300,7 +299,7 @@ Siemens

Link(s): http://www4.infi.net/~cpinkham/sane/sane-artec-doc.html
@@ -112,7 +88,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-backends-split.ref

-@@ -378,7 +377,7 @@ +@@ -378,7 +377,7 @@ Siemens (unmaintained)

@@ -121,7 +97,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-backends-split.ref

-@@ -494,7 +493,7 @@ +@@ -494,7 +493,7 @@ Siemens

Link(s): http://as6edriver.sourceforge.net/
@@ -130,7 +106,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-backends-split.ref

-@@ -539,7 +538,7 @@ +@@ -539,7 +538,7 @@ Siemens

Link(s): http://skull.piratehaven.org/~mike/sane/avision.html
@@ -139,7 +115,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-backends-split.ref

-@@ -1619,7 +1618,7 @@ +@@ -1619,7 +1618,7 @@ Kyocera

Link(s): http://www.martoneconsulting.com/sane-bh.html
@@ -148,7 +124,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-backends-split.ref Comment: Supports Copiscan II scanners with Remote SCSI Controller (RSC) interface

-@@ -1682,7 +1681,7 @@ +@@ -1682,7 +1681,7 @@ Kyocera

Link(s): http://www.rzg.mpg.de/~mpd/sane/
@@ -157,7 +133,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-backends-split.ref

-@@ -1760,7 +1759,7 @@ +@@ -1760,7 +1759,7 @@ Kyocera

Link(s): http://canon-fb630u.sourceforge.net/
@@ -166,7 +142,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-backends-split.ref

-@@ -1794,7 +1793,7 @@ +@@ -1794,7 +1793,7 @@ Kyocera

Link(s): http://www.thebility.com/canon/
@@ -175,7 +151,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-backends-split.ref Comment: Backend updated for SANE release 1.0.23, see sane-canon_dr manpage

-@@ -2095,7 +2094,7 @@ +@@ -2095,7 +2094,7 @@ Kyocera

Link(s): http://canon-fb330p.sourceforge.net
@@ -184,7 +160,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-backends-split.ref

-@@ -2178,7 +2177,7 @@ +@@ -2178,7 +2177,7 @@ Kyocera

Link(s): http://www.thebility.com/cardscan/
@@ -193,7 +169,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-backends-split.ref Comment: Backend updated for SANE release 1.0.21, see sane-cardscan manpage

-@@ -2213,7 +2212,7 @@ +@@ -2213,7 +2212,7 @@ Kyocera

Link(s): http://andreas.rick.free.fr/sane/
@@ -202,7 +178,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-backends-split.ref

-@@ -2261,7 +2260,7 @@ +@@ -2261,7 +2260,7 @@ Kyocera

Link(s): http://coolscan2.sourceforge.net/
@@ -211,7 +187,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-backends-split.ref

-@@ -2335,7 +2334,7 @@ +@@ -2335,7 +2334,7 @@ Kyocera (1.0.0)

@@ -220,7 +196,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-backends-split.ref

-@@ -2448,7 +2447,7 @@ +@@ -2448,7 +2447,7 @@ Kyocera

Link(s): http://www.thebility.com/epjitsu/
@@ -229,7 +205,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-backends-split.ref Comment: Backend updated for SANE release 1.0.21, see sane-epjitsu manpage

-@@ -2504,7 +2503,7 @@ +@@ -2504,7 +2503,7 @@ Kyocera

Link(s): http://www.khk.net/sane
@@ -238,7 +214,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-backends-split.ref

-@@ -2984,7 +2983,7 @@ +@@ -2984,7 +2983,7 @@ Kyocera (1.0.124)

@@ -247,7 +223,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-backends-split.ref

-@@ -5398,7 +5397,7 @@ +@@ -5398,7 +5397,7 @@ Kyocera

Link(s): http://www.thebility.com/fujitsu/
@@ -256,7 +232,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-backends-split.ref Comment: Backend updated for SANE release 1.0.23, see sane-fujitsu manpage

-@@ -5923,7 +5922,7 @@ +@@ -5923,7 +5922,7 @@ Kyocera

Link(s): http://www.meier-geinitz.de/sane/genesys-backend/
@@ -265,7 +241,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-backends-split.ref Comment: Only the USB scanners mentioned below are currently supported.

-@@ -6242,7 +6241,7 @@ +@@ -6242,7 +6241,7 @@ Panasonic

Link(s): http://www.meier-geinitz.de/sane/gt68xx-backend/
@@ -274,7 +250,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-backends-split.ref Comment: Only the USB scanners mentioned below are supported. For other Mustek BearPaws, look at the Plustek and the MA-1509 backend.

-@@ -6774,7 +6773,7 @@ +@@ -6774,7 +6773,7 @@ RevScan

Link(s): http://www.kirchgessner.net/
@@ -283,7 +259,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-backends-split.ref

-@@ -6927,7 +6926,7 @@ +@@ -6927,7 +6926,7 @@ RevScan

Link(s): http://projects.troy.rollo.name/rt-scanners/
@@ -292,7 +268,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-backends-split.ref Comment: HP3500 series scanners.

-@@ -6969,7 +6968,7 @@ +@@ -6969,7 +6968,7 @@ RevScan

Link(s): http://sourceforge.net/projects/hp3900-series/
@@ -301,7 +277,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-backends-split.ref Comment: Still Beta

-@@ -7057,7 +7056,7 @@ +@@ -7057,7 +7056,7 @@ RevScan

Link(s): http://hp4200-backend.sourceforge.net
@@ -310,7 +286,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-backends-split.ref

-@@ -7098,7 +7097,7 @@ +@@ -7098,7 +7097,7 @@ RevScan

Link(s): http://sourceforge.net/projects/hp5400backend
@@ -319,7 +295,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-backends-split.ref Comment: HP5400 and HP5470 scanners. Prototype backend available

-@@ -7138,7 +7137,7 @@ +@@ -7138,7 +7137,7 @@ RevScan (1.0.5)

@@ -328,7 +304,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-backends-split.ref

-@@ -7198,7 +7197,7 @@ +@@ -7198,7 +7197,7 @@ RevScan (0)

@@ -337,7 +313,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-backends-split.ref

-@@ -7239,7 +7238,7 @@ +@@ -7239,7 +7238,7 @@ RevScan

Link(s): http://hpsj5s.sourceforge.net/
@@ -346,7 +322,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-backends-split.ref

-@@ -7266,7 +7265,7 @@ +@@ -7266,7 +7265,7 @@ RevScan

Link(s): http://www.acjlaw.net:8080/~jeremy/Ricoh/
@@ -355,7 +331,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-backends-split.ref Comment: This backend has been tested with the IS450DE (Duplex/Endorser). All major functions necessary for scanning are supported. This backend should work with all Ricoh scanners in the IS450 family as well as the IS420 series, but the IS420 has not yet been tested. Features provided by the optional Image Processing Unit (IPU) are not yet integrated into the backend, as my scanner lacks the IPU.

-@@ -7315,7 +7314,7 @@ +@@ -7315,7 +7314,7 @@ RevScan

Link(s): http://www.meier-geinitz.de/sane/ibm-backend/
@@ -364,7 +340,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-backends-split.ref Comment: This backend has had only limited testing. It needs more work especially for the Ricoh scanners. Patches are welcome.

-@@ -7366,7 +7365,7 @@ +@@ -7366,7 +7365,7 @@ Ricoh

Link(s): http://www.thebility.com/kodak/
@@ -373,7 +349,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-backends-split.ref Comment: New backend for SANE release 1.0.21, see sane-kodak manpage

-@@ -7618,7 +7617,7 @@ +@@ -7618,7 +7617,7 @@ Ricoh

Link(s): http://sourceforge.net/projects/cupsdriverkodak/
@@ -382,7 +358,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-backends-split.ref Comment: Backend for Kodak AiO ESP and Hero printers. Also possibly Advent AWL10

-@@ -7821,7 +7820,7 @@ +@@ -7821,7 +7820,7 @@ Ricoh (unmaintained)

@@ -391,7 +367,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-backends-split.ref Comment: New backend for SANE release 1.0.22, see sane-kvs20xx manpage

-@@ -7882,7 +7881,7 @@ +@@ -7882,7 +7881,7 @@ Ricoh (unmaintained)

@@ -400,7 +376,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-backends-split.ref Comment: New backend for SANE release 1.0.23, see sane-kvs40xx manpage

-@@ -7922,7 +7921,7 @@ +@@ -7922,7 +7921,7 @@ Ricoh (unmaintained)

@@ -409,7 +385,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-backends-split.ref Comment: New backend for SANE release 1.0.21, see sane-kvs1025 manpage

-@@ -7964,7 +7963,7 @@ +@@ -7964,7 +7963,7 @@ Ricoh

Link(s): http://www.zago.net/sane/#leo
@@ -418,7 +394,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-backends-split.ref

-@@ -8009,7 +8008,7 @@ +@@ -8009,7 +8008,7 @@ Genius

Link(s): http://stef.dev.free.fr/sane/lexmark
@@ -427,7 +403,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-backends-split.ref Comment: This backend supports lexmark x1100 series scanners.

-@@ -8109,7 +8108,7 @@ +@@ -8109,7 +8108,7 @@ Dell

Link(s): http://www.meier-geinitz.de/sane/ma1509-backend/
@@ -436,7 +412,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-backends-split.ref

-@@ -8145,7 +8144,7 @@ +@@ -8145,7 +8144,7 @@ Dell

Link(s): http://wiki.kainhofer.com/hardware/magicolor_scan
@@ -445,7 +421,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-backends-split.ref

-@@ -8186,7 +8185,7 @@ +@@ -8186,7 +8185,7 @@ Dell

Link(s): http://www.zago.net/sane
@@ -454,7 +430,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-backends-split.ref

-@@ -8283,7 +8282,7 @@ +@@ -8283,7 +8282,7 @@ Dell

Link(s): http://www.mir.com/mtek/
@@ -463,7 +439,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-backends-split.ref

-@@ -8463,7 +8462,7 @@ +@@ -8463,7 +8462,7 @@ Dell

Link(s): http://karstenfestag.gmxhome.de/linux.html
@@ -472,7 +448,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-backends-split.ref

-@@ -8713,7 +8712,7 @@ +@@ -8713,7 +8712,7 @@ Dell

Link(s): http://www.meier-geinitz.de/sane/mustek-backend/
@@ -481,7 +457,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-backends-split.ref Comment: Most Mustek SCSI scanners are supported by this backend. For USB scanners, look at the mustek_usb backend.

-@@ -8962,7 +8961,7 @@ +@@ -8962,7 +8961,7 @@ Dell

Link(s): http://penguin-breeder.org/sane/mustek_pp/
@@ -490,7 +466,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-backends-split.ref Comment: Supports CIS and CCD type parallel port scanners from Mustek.

-@@ -9160,7 +9159,7 @@ +@@ -9160,7 +9159,7 @@ Micromaxx

Link(s): http://www.meier-geinitz.de/sane/mustek_usb-backend/
@@ -499,7 +475,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-backends-split.ref Comment: Only the USB scanners mentioned below are supported. For BearPaws, look at the Plustek, MA-1509, and gt68xx backends.

-@@ -9218,7 +9217,7 @@ +@@ -9218,7 +9217,7 @@ Micromaxx

Link(s): http://www.meier-geinitz.de/sane/mustek_usb2-backend/
@@ -508,7 +484,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-backends-split.ref Comment: Only BearPaw 2448TA Pro is supported at the moment

-@@ -9246,7 +9245,7 @@ +@@ -9246,7 +9245,7 @@ Micromaxx

Link(s): http://www5a.biglobe.ne.jp/~saetaka/
@@ -517,7 +493,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-backends-split.ref

-@@ -9273,7 +9272,7 @@ +@@ -9273,7 +9272,7 @@ Micromaxx

Link(s): http://sourceforge.net/projects/hp3300backend
@@ -526,7 +502,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-backends-split.ref

-@@ -9339,7 +9338,7 @@ +@@ -9339,7 +9338,7 @@ Micromaxx

Link(s): http://www.sane-project.org/
@@ -535,7 +511,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-backends-split.ref Comment: New backend for SANE release 1.0.21, see sane-p5 manpage

-@@ -9367,7 +9366,7 @@ +@@ -9367,7 +9366,7 @@ Micromaxx

Link(s): http://www.munton.demon.co.uk/sane
@@ -544,7 +520,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-backends-split.ref

-@@ -9510,7 +9509,7 @@ +@@ -9510,7 +9509,7 @@ Adlib

Link(s): http://home.arcor.de/wittawat/pixma/, http://mp610.blogspot.com/
@@ -553,7 +529,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-backends-split.ref

-@@ -10496,7 +10495,7 @@ +@@ -10496,7 +10495,7 @@ Adlib

Link(s): http://www.gjaeger.de/scanner/plustek/
@@ -562,7 +538,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-backends-split.ref

-@@ -10818,7 +10817,7 @@ +@@ -10818,7 +10817,7 @@ Ambir

Link(s): http://www.gjaeger.de/scanner/plustek_pp/
@@ -571,7 +547,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-backends-split.ref

-@@ -11026,7 +11025,7 @@ +@@ -11026,7 +11025,7 @@ BrightScan (unmaintained)

@@ -580,7 +556,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-backends-split.ref

-@@ -11060,7 +11059,7 @@ +@@ -11060,7 +11059,7 @@ BrightScan

Link(s): http://stef.dev.free.fr/sane/rts8891/index.html
@@ -589,7 +565,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-backends-split.ref Comment: This backend supports Realtek RTS8891 ASIC bases scanners.

-@@ -11109,7 +11108,7 @@ +@@ -11109,7 +11108,7 @@ BrightScan (unmaintained)

@@ -598,7 +574,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-backends-split.ref

-@@ -11136,7 +11135,7 @@ +@@ -11136,7 +11135,7 @@ BrightScan

Link(s): http://www.zago.net/sane/
@@ -607,7 +583,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-backends-split.ref

-@@ -11172,7 +11171,7 @@ +@@ -11172,7 +11171,7 @@ BrightScan

Link(s): http://www.satzbau-gmbh.de/staff/abel/sane-sharp.html
@@ -616,7 +592,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-backends-split.ref

-@@ -11234,7 +11233,7 @@ +@@ -11234,7 +11233,7 @@ BrightScan

Link(s): http://sm3600.sourceforge.net/
@@ -625,7 +601,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-backends-split.ref

-@@ -11296,7 +11295,7 @@ +@@ -11296,7 +11295,7 @@ BrightScan

Link(s): http://www.ziplabel.com/sm3840/
@@ -634,7 +610,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-backends-split.ref Comment: This reverse-engineered backend supports the USB ScanMaker 3840 model

-@@ -11331,7 +11330,7 @@ +@@ -11331,7 +11330,7 @@ BrightScan

Link(s): http://snapscan.sourceforge.net/
@@ -643,7 +619,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-backends-split.ref Comment: Supported bit depths: 24 bit (color), 48 bit (color, Epson) 8 bit (gray)

-@@ -11757,7 +11756,7 @@ +@@ -11757,7 +11756,7 @@ BrightScan (unmaintained)

@@ -652,7 +628,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-backends-split.ref

-@@ -11791,7 +11790,7 @@ +@@ -11791,7 +11790,7 @@ BrightScan

Link(s): http://www.informatik.uni-oldenburg.de/~ingo/sane/
@@ -661,7 +637,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-backends-split.ref

-@@ -11823,7 +11822,7 @@ +@@ -11823,7 +11822,7 @@ BrightScan (unmaintained)

@@ -670,7 +646,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-backends-split.ref

-@@ -11864,7 +11863,7 @@ +@@ -11864,7 +11863,7 @@ Tamarack

Link(s): http://www.zago.net/sane/#teco
@@ -679,7 +655,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-backends-split.ref

-@@ -12021,7 +12020,7 @@ +@@ -12021,7 +12020,7 @@ Dextra

Link(s): http://gkall.hobby.nl/teco2.html
@@ -688,7 +664,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-backends-split.ref

-@@ -12122,7 +12121,7 @@ +@@ -12122,7 +12121,7 @@ Dextra

Link(s): http://www.zago.net/sane/#teco3
@@ -697,7 +673,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-backends-split.ref

-@@ -12190,7 +12189,7 @@ +@@ -12190,7 +12189,7 @@ Trust

Link(s): http://www.gjaeger.de/scanner/u12/
@@ -706,7 +682,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-backends-split.ref

-@@ -12256,7 +12255,7 @@ +@@ -12256,7 +12255,7 @@ RevScan

Link(s): http://www.rauch-domain.de/sane-umax/index.html
@@ -715,7 +691,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-backends-split.ref

-@@ -12749,7 +12748,7 @@ +@@ -12749,7 +12748,7 @@ Genius

Link(s): http://sourceforge.net/projects/umax1220u-sane
@@ -724,7 +700,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-backends-split.ref

-@@ -12797,7 +12796,7 @@ +@@ -12797,7 +12796,7 @@ Genius

Link(s): http://umax1220p.sourceforge.net/
@@ -733,7 +709,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-backends-split.ref

-@@ -15632,7 +15631,7 @@ +@@ -15632,7 +15631,7 @@ Vantas (1.0-13)

@@ -742,7 +718,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-backends-split.ref

-@@ -16131,7 +16130,7 @@ +@@ -16131,7 +16130,7 @@ Vantas

Link(s): mailto:peter@fales-lorenz.net
@@ -751,7 +727,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-backends-split.ref

-@@ -16165,7 +16164,7 @@ +@@ -16165,7 +16164,7 @@ Vantas

Link(s): mailto:peter@fales-lorenz.net
@@ -760,7 +736,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-backends-split.ref

-@@ -16192,7 +16191,7 @@ +@@ -16192,7 +16191,7 @@ Vantas

Link(s): mailto:peter@fales-lorenz.net
@@ -769,7 +745,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-backends-split.ref

-@@ -16217,7 +16216,7 @@ +@@ -16217,7 +16216,7 @@ Vantas (unmaintained)

@@ -778,7 +754,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-backends-split.ref

-@@ -16247,7 +16246,7 @@ +@@ -16247,7 +16246,7 @@ Vantas (unmaintained)

@@ -787,7 +763,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-backends-split.ref

-@@ -16281,7 +16280,7 @@ +@@ -16281,7 +16280,7 @@ Connectix

Link(s): http://gkall.hobby.nl/stv680-aiptek.html
@@ -796,7 +772,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-backends-split.ref Comment: This vidcam backend is for the stv0680 chipset, See the website for more info.

-@@ -16379,7 +16378,7 @@ +@@ -16379,7 +16378,7 @@ Grandtek Scopecam

Link(s): mailto:peter@fales-lorenz.net
@@ -805,7 +781,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-backends-split.ref Description: Multiple cameras supported by the gphoto2 libraries
Comment: The long-term plan is to support all the cameras supported by the gphoto2 libraries (currently over 140 models). However, at this stage, only a handful of cameras are definitely known to work with SANE. Other cameras will probably work if the native file format is EXIF or JPEG. Testers welcome!

-@@ -16387,7 +16386,7 @@ +@@ -16387,7 +16386,7 @@ Grandtek Scopecam (unmaintained)

@@ -814,7 +790,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-backends-split.ref Description: Scanners with the machine-independent PINT interface
Comment: Haven't been tested for a long time. Handle with care.

-@@ -16397,7 +16396,7 @@ +@@ -16397,7 +16396,7 @@ Grandtek Scopecam

Link(s): mailto:henning@meier-geinitz.de
@@ -823,7 +799,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-backends-split.ref Description: Reads PNM files
Comment: Used for debugging frontends. Obsolete, use test backend instead.

-@@ -16407,7 +16406,7 @@ +@@ -16407,7 +16406,7 @@ Grandtek Scopecam

Link(s): http://www.meier-geinitz.de/sane/test-backend/
@@ -832,7 +808,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-backends-split.ref Description: Frontend-tester
Comment: Backend for testing frontends. Also serves as example for SANE backend options.

-@@ -16417,7 +16416,7 @@ +@@ -16417,7 +16416,7 @@ Grandtek Scopecam

Link(s): mailto:henning@meier-geinitz.de
@@ -841,7 +817,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-backends-split.ref Description: Interface to Video For Linux API
Comment: Supports video cameras and other devices accessed by the v4l kernel API, e.g. bttv devices. Quite a lot of known bugs.

-@@ -16431,7 +16430,7 @@ +@@ -16431,7 +16430,7 @@ Grandtek Scopecam

Link(s): mailto:henning@meier-geinitz.de
@@ -850,7 +826,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-backends-split.ref Description: Dynamic loading of shared-library backends.

Backend: net -@@ -16440,7 +16439,7 @@ +@@ -16440,7 +16439,7 @@ Grandtek Scopecam

Link(s): http://www.penguin-breeder.org/?page=sane-net
@@ -859,10 +835,10 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-backends-split.ref Description: Network access to saned servers
Comment: Can be used to access any scanner supported by SANE over the net. Supports IPv4 and IPv6.

-Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref +Index: experimental/testsuite/tools/data/html-mfgs.ref =================================================================== ---- sane-backends-1.0.24.orig/testsuite/tools/data/html-mfgs.ref 2013-08-25 17:23:27.000000000 -0400 -+++ sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref 2013-10-05 17:15:20.619294522 -0400 +--- experimental.orig/testsuite/tools/data/html-mfgs.ref ++++ experimental/testsuite/tools/data/html-mfgs.ref @@ -5,7 +5,6 @@ @@ -871,7 +847,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref

SANE: Supported Devices


-@@ -225,7 +224,7 @@ +@@ -225,7 +224,7 @@ isn't mentioned in this list at all.

@@ -880,7 +856,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref -@@ -235,7 +234,7 @@ +@@ -235,7 +234,7 @@ abaton
(unmaintained) @@ -889,7 +865,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref
abaton
(unmaintained)
Scan 300/S SCSI abaton
(unmaintained)

Manufacturer: Acer Peripherals

-@@ -264,7 +263,7 @@ +@@ -264,7 +263,7 @@ abaton
(unmaintained) leo
(1.0-10) @@ -898,7 +874,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref

Manufacturer: Actown

-@@ -289,7 +288,7 @@ +@@ -289,7 +288,7 @@ abaton
(unmaintained) teco1
(1.0-10) @@ -907,7 +883,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref

Manufacturer: Adlib

-@@ -314,7 +313,7 @@ +@@ -314,7 +313,7 @@ abaton
(unmaintained) pie
(1.0) @@ -916,7 +892,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref JetScan636PRO SCSI -@@ -325,7 +324,7 @@ +@@ -325,7 +324,7 @@ abaton
(unmaintained) pie
(1.0) @@ -925,7 +901,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref

Manufacturer: Advent

-@@ -352,7 +351,7 @@ +@@ -352,7 +351,7 @@ abaton
(unmaintained) kodakaio
(2.4.6) @@ -934,7 +910,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref

Manufacturer: AGFA

-@@ -379,7 +378,7 @@ +@@ -379,7 +378,7 @@ abaton
(unmaintained) SnapScan
(1.4) @@ -943,7 +919,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Arcus II SCSI -@@ -390,7 +389,7 @@ +@@ -390,7 +389,7 @@ abaton
(unmaintained) microtek
(0.13.1) @@ -952,7 +928,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref DuoScan SCSI -@@ -401,7 +400,7 @@ +@@ -401,7 +400,7 @@ abaton
(unmaintained) microtek
(0.13.1) @@ -961,7 +937,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref DuoScan f40 USB IEEE-1394 -@@ -444,7 +443,7 @@ +@@ -444,7 +443,7 @@ abaton
(unmaintained) agfafocus
(unmaintained) @@ -970,7 +946,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Focus Color Plus SCSI -@@ -454,7 +453,7 @@ +@@ -454,7 +453,7 @@ agfafocus
(unmaintained) agfafocus
(unmaintained) @@ -979,7 +955,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Focus GS Scanner SCSI -@@ -464,7 +463,7 @@ +@@ -464,7 +463,7 @@ agfafocus
(unmaintained) agfafocus
(unmaintained) @@ -988,7 +964,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Focus II SCSI -@@ -474,7 +473,7 @@ +@@ -474,7 +473,7 @@ agfafocus
(unmaintained) agfafocus
(unmaintained) @@ -997,7 +973,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Focus Lineart Scanner SCSI -@@ -484,7 +483,7 @@ +@@ -484,7 +483,7 @@ agfafocus
(unmaintained) agfafocus
(unmaintained) @@ -1006,7 +982,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref SnapScan SCSI -@@ -495,7 +494,7 @@ +@@ -495,7 +494,7 @@ agfafocus
(unmaintained) SnapScan
(1.4) @@ -1015,7 +991,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref SnapScan 300 SCSI -@@ -506,7 +505,7 @@ +@@ -506,7 +505,7 @@ agfafocus
(unmaintained) SnapScan
(1.4) @@ -1024,7 +1000,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref SnapScan 310 SCSI -@@ -517,7 +516,7 @@ +@@ -517,7 +516,7 @@ agfafocus
(unmaintained) SnapScan
(1.4) @@ -1033,7 +1009,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref SnapScan 310P Parport -@@ -539,7 +538,7 @@ +@@ -539,7 +538,7 @@ agfafocus
(unmaintained) SnapScan
(1.4) @@ -1042,7 +1018,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref SnapScan 1200P Parport -@@ -572,7 +571,7 @@ +@@ -572,7 +571,7 @@ agfafocus
(unmaintained) SnapScan
(1.4) @@ -1051,7 +1027,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref SnapScan 1212U_2 USB -@@ -583,7 +582,7 @@ +@@ -583,7 +582,7 @@ agfafocus
(unmaintained) SnapScan
(1.4) @@ -1060,7 +1036,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref SnapScan 1236s SCSI -@@ -594,7 +593,7 @@ +@@ -594,7 +593,7 @@ agfafocus
(unmaintained) SnapScan
(1.4) @@ -1069,7 +1045,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref SnapScan 1236u USB -@@ -605,7 +604,7 @@ +@@ -605,7 +604,7 @@ agfafocus
(unmaintained) SnapScan
(1.4) @@ -1078,7 +1054,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref SnapScan e10 USB -@@ -616,7 +615,7 @@ +@@ -616,7 +615,7 @@ agfafocus
(unmaintained) SnapScan
(1.4) @@ -1087,7 +1063,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref SnapScan e20 USB -@@ -627,7 +626,7 @@ +@@ -627,7 +626,7 @@ agfafocus
(unmaintained) SnapScan
(1.4) @@ -1096,7 +1072,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref SnapScan e25 USB -@@ -638,7 +637,7 @@ +@@ -638,7 +637,7 @@ agfafocus
(unmaintained) SnapScan
(1.4) @@ -1105,7 +1081,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref SnapScan e26 USB -@@ -649,7 +648,7 @@ +@@ -649,7 +648,7 @@ agfafocus
(unmaintained) SnapScan
(1.4) @@ -1114,7 +1090,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref SnapScan e40 USB -@@ -660,7 +659,7 @@ +@@ -660,7 +659,7 @@ agfafocus
(unmaintained) SnapScan
(1.4) @@ -1123,7 +1099,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref SnapScan e42 USB -@@ -671,7 +670,7 @@ +@@ -671,7 +670,7 @@ agfafocus
(unmaintained) SnapScan
(1.4) @@ -1132,7 +1108,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref SnapScan e50 USB -@@ -682,7 +681,7 @@ +@@ -682,7 +681,7 @@ agfafocus
(unmaintained) SnapScan
(1.4) @@ -1141,7 +1117,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref SnapScan e52 USB -@@ -693,7 +692,7 @@ +@@ -693,7 +692,7 @@ agfafocus
(unmaintained) SnapScan
(1.4) @@ -1150,7 +1126,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref SnapScan e60 USB -@@ -704,7 +703,7 @@ +@@ -704,7 +703,7 @@ agfafocus
(unmaintained) SnapScan
(1.4) @@ -1159,7 +1135,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref SnapScan EZ Parport -@@ -726,7 +725,7 @@ +@@ -726,7 +725,7 @@ agfafocus
(unmaintained) niash
(0.3) @@ -1168,7 +1144,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref StudioScan SCSI -@@ -737,7 +736,7 @@ +@@ -737,7 +736,7 @@ agfafocus
(unmaintained) microtek
(0.13.1) @@ -1177,7 +1153,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref StudioScan II SCSI -@@ -748,7 +747,7 @@ +@@ -748,7 +747,7 @@ agfafocus
(unmaintained) microtek
(0.13.1) @@ -1186,7 +1162,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref StudioScan IIsi SCSI -@@ -759,7 +758,7 @@ +@@ -759,7 +758,7 @@ agfafocus
(unmaintained) microtek
(0.13.1) @@ -1195,7 +1171,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Studiostar SCSI -@@ -770,7 +769,7 @@ +@@ -770,7 +769,7 @@ agfafocus
(unmaintained) microtek
(0.13.1) @@ -1204,7 +1180,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref

Manufacturer: Ambir

-@@ -795,7 +794,7 @@ +@@ -795,7 +794,7 @@ agfafocus
(unmaintained) plustek
(0.52) @@ -1213,7 +1189,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref

Manufacturer: Apple

-@@ -821,7 +820,7 @@ +@@ -821,7 +820,7 @@ agfafocus
(unmaintained) apple
(unmaintained) @@ -1222,7 +1198,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Color OneScanner SCSI -@@ -831,7 +830,7 @@ +@@ -831,7 +830,7 @@ apple
(unmaintained) apple
(unmaintained) @@ -1231,7 +1207,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Color OneScanner 600/27 SCSI -@@ -842,7 +841,7 @@ +@@ -842,7 +841,7 @@ apple
(unmaintained) canon
(1.12) @@ -1240,7 +1216,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref OneScanner SCSI -@@ -852,7 +851,7 @@ +@@ -852,7 +851,7 @@ apple
(unmaintained) apple
(unmaintained) @@ -1249,7 +1225,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref

Manufacturer: Aries

-@@ -877,7 +876,7 @@ +@@ -877,7 +876,7 @@ apple
(unmaintained) plustek_pp
(0.43) @@ -1258,7 +1234,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref

Manufacturer: Artec/Ultima

-@@ -915,7 +914,7 @@ +@@ -915,7 +914,7 @@ apple
(unmaintained) artec
(unmaintained) @@ -1267,7 +1243,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref A6000C PLUS SCSI -@@ -926,7 +925,7 @@ +@@ -926,7 +925,7 @@ apple
(unmaintained) artec
(unmaintained) @@ -1276,7 +1252,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref AM12e+ Parport -@@ -948,7 +947,7 @@ +@@ -948,7 +947,7 @@ apple
(unmaintained) artec
(unmaintained) @@ -1285,7 +1261,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref AS6E Parport -@@ -959,7 +958,7 @@ +@@ -959,7 +958,7 @@ apple
(unmaintained) as6e
(0.5) @@ -1294,7 +1270,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref AT3 SCSI -@@ -970,7 +969,7 @@ +@@ -970,7 +969,7 @@ apple
(unmaintained) artec
(unmaintained) @@ -1303,7 +1279,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref AT6 SCSI -@@ -981,7 +980,7 @@ +@@ -981,7 +980,7 @@ apple
(unmaintained) artec
(unmaintained) @@ -1312,7 +1288,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref AT12 SCSI -@@ -992,7 +991,7 @@ +@@ -992,7 +991,7 @@ apple
(unmaintained) artec
(unmaintained) @@ -1321,7 +1297,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref E+ 48U USB -@@ -1002,7 +1001,7 @@ +@@ -1002,7 +1001,7 @@ apple
(unmaintained) artec_eplus48u
(unmaintained) @@ -1330,7 +1306,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref E+ Pro USB -@@ -1012,7 +1011,7 @@ +@@ -1012,7 +1011,7 @@ artec_eplus48u
(unmaintained) artec_eplus48u
(unmaintained) @@ -1339,7 +1315,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Ultima 2000 USB -@@ -1023,7 +1022,7 @@ +@@ -1023,7 +1022,7 @@ artec_eplus48u
(unmaintained) gt68xx
(1.0-84) @@ -1348,7 +1324,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Ultima 2000 (0x4001) USB -@@ -1045,7 +1044,7 @@ +@@ -1045,7 +1044,7 @@ artec_eplus48u
(unmaintained) gt68xx
(1.0-84) @@ -1357,7 +1333,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref

Manufacturer: Avigramm

-@@ -1097,7 +1096,7 @@ +@@ -1097,7 +1096,7 @@ artec_eplus48u
(unmaintained) avision
(Build: 296) @@ -1366,7 +1342,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref @V5100 USB -@@ -1108,7 +1107,7 @@ +@@ -1108,7 +1107,7 @@ artec_eplus48u
(unmaintained) avision
(Build: 296) @@ -1375,7 +1351,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref AM3000 Series USB -@@ -1119,7 +1118,7 @@ +@@ -1119,7 +1118,7 @@ artec_eplus48u
(unmaintained) avision
(Build: 296) @@ -1384,7 +1360,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref AV100CS SCSI -@@ -1130,7 +1129,7 @@ +@@ -1130,7 +1129,7 @@ artec_eplus48u
(unmaintained) avision
(Build: 296) @@ -1393,7 +1369,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref AV100IIICS SCSI -@@ -1141,7 +1140,7 @@ +@@ -1141,7 +1140,7 @@ artec_eplus48u
(unmaintained) avision
(Build: 296) @@ -1402,7 +1378,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref AV100S SCSI -@@ -1152,7 +1151,7 @@ +@@ -1152,7 +1151,7 @@ artec_eplus48u
(unmaintained) avision
(Build: 296) @@ -1411,7 +1387,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref AV120 USB -@@ -1163,7 +1162,7 @@ +@@ -1163,7 +1162,7 @@ artec_eplus48u
(unmaintained) avision
(Build: 296) @@ -1420,7 +1396,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref AV121 USB -@@ -1174,7 +1173,7 @@ +@@ -1174,7 +1173,7 @@ artec_eplus48u
(unmaintained) avision
(Build: 296) @@ -1429,7 +1405,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref AV122 USB -@@ -1185,7 +1184,7 @@ +@@ -1185,7 +1184,7 @@ artec_eplus48u
(unmaintained) avision
(Build: 296) @@ -1438,7 +1414,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref AV122 C2 USB -@@ -1196,7 +1195,7 @@ +@@ -1196,7 +1195,7 @@ artec_eplus48u
(unmaintained) avision
(Build: 296) @@ -1447,7 +1423,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref AV210 USB -@@ -1207,7 +1206,7 @@ +@@ -1207,7 +1206,7 @@ artec_eplus48u
(unmaintained) avision
(Build: 296) @@ -1456,7 +1432,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref AV210 USB -@@ -1218,7 +1217,7 @@ +@@ -1218,7 +1217,7 @@ artec_eplus48u
(unmaintained) avision
(Build: 296) @@ -1465,7 +1441,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref AV210C2 USB -@@ -1229,7 +1228,7 @@ +@@ -1229,7 +1228,7 @@ artec_eplus48u
(unmaintained) avision
(Build: 296) @@ -1474,7 +1450,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref AV210C2-G USB -@@ -1240,7 +1239,7 @@ +@@ -1240,7 +1239,7 @@ artec_eplus48u
(unmaintained) avision
(Build: 296) @@ -1483,7 +1459,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref AV210D2+ USB -@@ -1251,7 +1250,7 @@ +@@ -1251,7 +1250,7 @@ artec_eplus48u
(unmaintained) avision
(Build: 296) @@ -1492,7 +1468,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref AV220 USB -@@ -1262,7 +1261,7 @@ +@@ -1262,7 +1261,7 @@ artec_eplus48u
(unmaintained) avision
(Build: 296) @@ -1501,7 +1477,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref AV220+ USB -@@ -1273,7 +1272,7 @@ +@@ -1273,7 +1272,7 @@ artec_eplus48u
(unmaintained) avision
(Build: 296) @@ -1510,7 +1486,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref AV220-G USB -@@ -1284,7 +1283,7 @@ +@@ -1284,7 +1283,7 @@ artec_eplus48u
(unmaintained) avision
(Build: 296) @@ -1519,7 +1495,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref AV220C2 USB -@@ -1295,7 +1294,7 @@ +@@ -1295,7 +1294,7 @@ artec_eplus48u
(unmaintained) avision
(Build: 296) @@ -1528,7 +1504,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref AV220C2-B USB -@@ -1306,7 +1305,7 @@ +@@ -1306,7 +1305,7 @@ artec_eplus48u
(unmaintained) avision
(Build: 296) @@ -1537,7 +1513,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref AV220C2-G USB -@@ -1317,7 +1316,7 @@ +@@ -1317,7 +1316,7 @@ artec_eplus48u
(unmaintained) avision
(Build: 296) @@ -1546,7 +1522,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref AV220D2 USB -@@ -1328,7 +1327,7 @@ +@@ -1328,7 +1327,7 @@ artec_eplus48u
(unmaintained) avision
(Build: 296) @@ -1555,7 +1531,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref AV240SC SCSI -@@ -1339,7 +1338,7 @@ +@@ -1339,7 +1338,7 @@ artec_eplus48u
(unmaintained) avision
(Build: 296) @@ -1564,7 +1540,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref AV260CS SCSI -@@ -1350,7 +1349,7 @@ +@@ -1350,7 +1349,7 @@ artec_eplus48u
(unmaintained) avision
(Build: 296) @@ -1573,7 +1549,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref AV360CS SCSI -@@ -1361,7 +1360,7 @@ +@@ -1361,7 +1360,7 @@ artec_eplus48u
(unmaintained) avision
(Build: 296) @@ -1582,7 +1558,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref AV363CS SCSI -@@ -1372,7 +1371,7 @@ +@@ -1372,7 +1371,7 @@ artec_eplus48u
(unmaintained) avision
(Build: 296) @@ -1591,7 +1567,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref AV420CS SCSI -@@ -1383,7 +1382,7 @@ +@@ -1383,7 +1382,7 @@ artec_eplus48u
(unmaintained) avision
(Build: 296) @@ -1600,7 +1576,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref AV600U USB -@@ -1394,7 +1393,7 @@ +@@ -1394,7 +1393,7 @@ artec_eplus48u
(unmaintained) avision
(Build: 296) @@ -1609,7 +1585,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref AV600U Plus USB -@@ -1405,7 +1404,7 @@ +@@ -1405,7 +1404,7 @@ artec_eplus48u
(unmaintained) avision
(Build: 296) @@ -1618,7 +1594,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref AV610 USB -@@ -1416,7 +1415,7 @@ +@@ -1416,7 +1415,7 @@ artec_eplus48u
(unmaintained) avision
(Build: 296) @@ -1627,7 +1603,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref AV610C2 USB -@@ -1427,7 +1426,7 @@ +@@ -1427,7 +1426,7 @@ artec_eplus48u
(unmaintained) avision
(Build: 296) @@ -1636,7 +1612,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref AV620CS SCSI -@@ -1438,7 +1437,7 @@ +@@ -1438,7 +1437,7 @@ artec_eplus48u
(unmaintained) avision
(Build: 296) @@ -1645,7 +1621,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref AV620CS Plus SCSI -@@ -1449,7 +1448,7 @@ +@@ -1449,7 +1448,7 @@ artec_eplus48u
(unmaintained) avision
(Build: 296) @@ -1654,7 +1630,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref AV630CS SCSI -@@ -1460,7 +1459,7 @@ +@@ -1460,7 +1459,7 @@ artec_eplus48u
(unmaintained) avision
(Build: 296) @@ -1663,7 +1639,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref AV630CSL SCSI -@@ -1471,7 +1470,7 @@ +@@ -1471,7 +1470,7 @@ artec_eplus48u
(unmaintained) avision
(Build: 296) @@ -1672,7 +1648,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref AV660S SCSI -@@ -1482,7 +1481,7 @@ +@@ -1482,7 +1481,7 @@ artec_eplus48u
(unmaintained) avision
(Build: 296) @@ -1681,7 +1657,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref AV680S SCSI -@@ -1493,7 +1492,7 @@ +@@ -1493,7 +1492,7 @@ artec_eplus48u
(unmaintained) avision
(Build: 296) @@ -1690,7 +1666,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref AV690U SCSI -@@ -1504,7 +1503,7 @@ +@@ -1504,7 +1503,7 @@ artec_eplus48u
(unmaintained) avision
(Build: 296) @@ -1699,7 +1675,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref AV800S SCSI -@@ -1515,7 +1514,7 @@ +@@ -1515,7 +1514,7 @@ artec_eplus48u
(unmaintained) avision
(Build: 296) @@ -1708,7 +1684,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref AV810C SCSI -@@ -1526,7 +1525,7 @@ +@@ -1526,7 +1525,7 @@ artec_eplus48u
(unmaintained) avision
(Build: 296) @@ -1717,7 +1693,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref AV820 SCSI -@@ -1537,7 +1536,7 @@ +@@ -1537,7 +1536,7 @@ artec_eplus48u
(unmaintained) avision
(Build: 296) @@ -1726,7 +1702,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref AV820C SCSI -@@ -1548,7 +1547,7 @@ +@@ -1548,7 +1547,7 @@ artec_eplus48u
(unmaintained) avision
(Build: 296) @@ -1735,7 +1711,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref AV820C Plus SCSI -@@ -1559,7 +1558,7 @@ +@@ -1559,7 +1558,7 @@ artec_eplus48u
(unmaintained) avision
(Build: 296) @@ -1744,7 +1720,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref AV830C SCSI -@@ -1570,7 +1569,7 @@ +@@ -1570,7 +1569,7 @@ artec_eplus48u
(unmaintained) avision
(Build: 296) @@ -1753,7 +1729,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref AV830C Plus SCSI -@@ -1581,7 +1580,7 @@ +@@ -1581,7 +1580,7 @@ artec_eplus48u
(unmaintained) avision
(Build: 296) @@ -1762,7 +1738,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref AV880 SCSI -@@ -1592,7 +1591,7 @@ +@@ -1592,7 +1591,7 @@ artec_eplus48u
(unmaintained) avision
(Build: 296) @@ -1771,7 +1747,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref AV880C SCSI -@@ -1603,7 +1602,7 @@ +@@ -1603,7 +1602,7 @@ artec_eplus48u
(unmaintained) avision
(Build: 296) @@ -1780,7 +1756,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref AV3200C SCSI -@@ -1614,7 +1613,7 @@ +@@ -1614,7 +1613,7 @@ artec_eplus48u
(unmaintained) avision
(Build: 296) @@ -1789,7 +1765,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref AV3200SU USB -@@ -1625,7 +1624,7 @@ +@@ -1625,7 +1624,7 @@ artec_eplus48u
(unmaintained) avision
(Build: 296) @@ -1798,7 +1774,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref AV3730SU USB -@@ -1636,7 +1635,7 @@ +@@ -1636,7 +1635,7 @@ artec_eplus48u
(unmaintained) avision
(Build: 296) @@ -1807,7 +1783,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref AV3750SU USB -@@ -1647,7 +1646,7 @@ +@@ -1647,7 +1646,7 @@ artec_eplus48u
(unmaintained) avision
(Build: 296) @@ -1816,7 +1792,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref AV3800C SCSI -@@ -1658,7 +1657,7 @@ +@@ -1658,7 +1657,7 @@ artec_eplus48u
(unmaintained) avision
(Build: 296) @@ -1825,7 +1801,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref AV3850SU USB -@@ -1669,7 +1668,7 @@ +@@ -1669,7 +1668,7 @@ artec_eplus48u
(unmaintained) avision
(Build: 296) @@ -1834,7 +1810,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref AV6120 SCSI -@@ -1680,7 +1679,7 @@ +@@ -1680,7 +1679,7 @@ artec_eplus48u
(unmaintained) avision
(Build: 296) @@ -1843,7 +1819,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref AV6240 SCSI -@@ -1691,7 +1690,7 @@ +@@ -1691,7 +1690,7 @@ artec_eplus48u
(unmaintained) avision
(Build: 296) @@ -1852,7 +1828,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref AV8000S SCSI -@@ -1702,7 +1701,7 @@ +@@ -1702,7 +1701,7 @@ artec_eplus48u
(unmaintained) avision
(Build: 296) @@ -1861,7 +1837,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref AV8050U USB -@@ -1713,7 +1712,7 @@ +@@ -1713,7 +1712,7 @@ artec_eplus48u
(unmaintained) avision
(Build: 296) @@ -1870,7 +1846,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref AV8300 USB -@@ -1724,7 +1723,7 @@ +@@ -1724,7 +1723,7 @@ artec_eplus48u
(unmaintained) avision
(Build: 296) @@ -1879,7 +1855,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref AV8350 USB -@@ -1735,7 +1734,7 @@ +@@ -1735,7 +1734,7 @@ artec_eplus48u
(unmaintained) avision
(Build: 296) @@ -1888,7 +1864,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref AVA3 SCSI -@@ -1746,7 +1745,7 @@ +@@ -1746,7 +1745,7 @@ artec_eplus48u
(unmaintained) avision
(Build: 296) @@ -1897,7 +1873,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref DS310F Parport -@@ -1768,7 +1767,7 @@ +@@ -1768,7 +1767,7 @@ artec_eplus48u
(unmaintained) avision
(Build: 296) @@ -1906,7 +1882,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref FB2080E USB -@@ -1779,7 +1778,7 @@ +@@ -1779,7 +1778,7 @@ artec_eplus48u
(unmaintained) avision
(Build: 296) @@ -1915,7 +1891,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref FB6000E SCSI -@@ -1790,7 +1789,7 @@ +@@ -1790,7 +1789,7 @@ artec_eplus48u
(unmaintained) avision
(Build: 296) @@ -1924,7 +1900,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref FB6080E USB -@@ -1801,7 +1800,7 @@ +@@ -1801,7 +1800,7 @@ artec_eplus48u
(unmaintained) avision
(Build: 296) @@ -1933,7 +1909,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref IT8300 USB -@@ -1812,7 +1811,7 @@ +@@ -1812,7 +1811,7 @@ artec_eplus48u
(unmaintained) avision
(Build: 296) @@ -1942,7 +1918,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref iVina 1600 USB -@@ -1872,7 +1871,7 @@ +@@ -1872,7 +1871,7 @@ artec_eplus48u
(unmaintained) bh
(1.0-4) @@ -1951,7 +1927,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref COPISCAN II 2137(A) SCSI -@@ -1883,7 +1882,7 @@ +@@ -1883,7 +1882,7 @@ artec_eplus48u
(unmaintained) bh
(1.0-4) @@ -1960,7 +1936,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref COPISCAN II 2138A SCSI -@@ -1894,7 +1893,7 @@ +@@ -1894,7 +1893,7 @@ artec_eplus48u
(unmaintained) bh
(1.0-4) @@ -1969,7 +1945,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref COPISCAN II 3238 SCSI -@@ -1905,7 +1904,7 @@ +@@ -1905,7 +1904,7 @@ artec_eplus48u
(unmaintained) bh
(1.0-4) @@ -1978,7 +1954,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref COPISCAN II 3338(A) SCSI -@@ -1916,7 +1915,7 @@ +@@ -1916,7 +1915,7 @@ artec_eplus48u
(unmaintained) bh
(1.0-4) @@ -1987,7 +1963,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref COPISCAN II 6338 SCSI -@@ -1927,7 +1926,7 @@ +@@ -1927,7 +1926,7 @@ artec_eplus48u
(unmaintained) bh
(1.0-4) @@ -1996,7 +1972,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref

Manufacturer: Bell+Howell

-@@ -1952,7 +1951,7 @@ +@@ -1952,7 +1951,7 @@ artec_eplus48u
(unmaintained) avision
(Build: 296) @@ -2005,7 +1981,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref

Manufacturer: BenQ

-@@ -1979,7 +1978,7 @@ +@@ -1979,7 +1978,7 @@ artec_eplus48u
(unmaintained) hp3900
(0.12) @@ -2014,7 +1990,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref

Manufacturer: Benq (Acer)

-@@ -2007,7 +2006,7 @@ +@@ -2007,7 +2006,7 @@ artec_eplus48u
(unmaintained) SnapScan
(1.4) @@ -2023,7 +1999,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref 310P Parport -@@ -2029,7 +2028,7 @@ +@@ -2029,7 +2028,7 @@ artec_eplus48u
(unmaintained) SnapScan
(1.4) @@ -2032,7 +2008,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref 310U USB -@@ -2040,7 +2039,7 @@ +@@ -2040,7 +2039,7 @@ artec_eplus48u
(unmaintained) SnapScan
(1.4) @@ -2041,7 +2017,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref 320P Parport -@@ -2062,7 +2061,7 @@ +@@ -2062,7 +2061,7 @@ artec_eplus48u
(unmaintained) SnapScan
(1.4) @@ -2050,7 +2026,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref 340P Parport -@@ -2084,7 +2083,7 @@ +@@ -2084,7 +2083,7 @@ artec_eplus48u
(unmaintained) SnapScan
(1.4) @@ -2059,7 +2035,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref 610P Parport -@@ -2106,7 +2105,7 @@ +@@ -2106,7 +2105,7 @@ artec_eplus48u
(unmaintained) SnapScan
(1.4) @@ -2068,7 +2044,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref 610PT Parport -@@ -2128,7 +2127,7 @@ +@@ -2128,7 +2127,7 @@ artec_eplus48u
(unmaintained) SnapScan
(1.4) @@ -2077,7 +2053,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref 620P Parport -@@ -2161,7 +2160,7 @@ +@@ -2161,7 +2160,7 @@ artec_eplus48u
(unmaintained) SnapScan
(1.4) @@ -2086,7 +2062,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref 620U USB -@@ -2172,7 +2171,7 @@ +@@ -2172,7 +2171,7 @@ artec_eplus48u
(unmaintained) SnapScan
(1.4) @@ -2095,7 +2071,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref 620UT USB -@@ -2183,7 +2182,7 @@ +@@ -2183,7 +2182,7 @@ artec_eplus48u
(unmaintained) SnapScan
(1.4) @@ -2104,7 +2080,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref 640BT USB -@@ -2194,7 +2193,7 @@ +@@ -2194,7 +2193,7 @@ artec_eplus48u
(unmaintained) SnapScan
(1.4) @@ -2113,7 +2089,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref 640bu USB -@@ -2205,7 +2204,7 @@ +@@ -2205,7 +2204,7 @@ artec_eplus48u
(unmaintained) SnapScan
(1.4) @@ -2122,7 +2098,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref 640P Parport -@@ -2227,7 +2226,7 @@ +@@ -2227,7 +2226,7 @@ artec_eplus48u
(unmaintained) SnapScan
(1.4) @@ -2131,7 +2107,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref 1240 USB -@@ -2238,7 +2237,7 @@ +@@ -2238,7 +2237,7 @@ artec_eplus48u
(unmaintained) SnapScan
(1.4) @@ -2140,7 +2116,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref 3300 USB -@@ -2249,7 +2248,7 @@ +@@ -2249,7 +2248,7 @@ artec_eplus48u
(unmaintained) SnapScan
(1.4) @@ -2149,7 +2125,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref 3300 USB -@@ -2260,7 +2259,7 @@ +@@ -2260,7 +2259,7 @@ artec_eplus48u
(unmaintained) SnapScan
(1.4) @@ -2158,7 +2134,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref 4300 USB -@@ -2271,7 +2270,7 @@ +@@ -2271,7 +2270,7 @@ artec_eplus48u
(unmaintained) SnapScan
(1.4) @@ -2167,7 +2143,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref 4300 USB -@@ -2282,7 +2281,7 @@ +@@ -2282,7 +2281,7 @@ artec_eplus48u
(unmaintained) SnapScan
(1.4) @@ -2176,7 +2152,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref 5000 USB -@@ -2293,7 +2292,7 @@ +@@ -2293,7 +2292,7 @@ artec_eplus48u
(unmaintained) SnapScan
(1.4) @@ -2185,7 +2161,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref 5000E USB -@@ -2304,7 +2303,7 @@ +@@ -2304,7 +2303,7 @@ artec_eplus48u
(unmaintained) SnapScan
(1.4) @@ -2194,7 +2170,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref 5000U USB -@@ -2315,7 +2314,7 @@ +@@ -2315,7 +2314,7 @@ artec_eplus48u
(unmaintained) SnapScan
(1.4) @@ -2203,7 +2179,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref 5150 USB -@@ -2326,7 +2325,7 @@ +@@ -2326,7 +2325,7 @@ artec_eplus48u
(unmaintained) SnapScan
(1.4) @@ -2212,7 +2188,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref 5250 USB -@@ -2337,7 +2336,7 @@ +@@ -2337,7 +2336,7 @@ artec_eplus48u
(unmaintained) SnapScan
(1.4) @@ -2221,7 +2197,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref 5300 USB -@@ -2348,7 +2347,7 @@ +@@ -2348,7 +2347,7 @@ artec_eplus48u
(unmaintained) SnapScan
(1.4) @@ -2230,7 +2206,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref 5450 USB -@@ -2403,7 +2402,7 @@ +@@ -2403,7 +2402,7 @@ artec_eplus48u
(unmaintained) SnapScan
(1.4) @@ -2239,7 +2215,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref

Manufacturer: BlackWidow

-@@ -2430,7 +2429,7 @@ +@@ -2430,7 +2429,7 @@ artec_eplus48u
(unmaintained) artec
(unmaintained) @@ -2248,7 +2224,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref

Manufacturer: Boeder

-@@ -2466,7 +2465,7 @@ +@@ -2466,7 +2465,7 @@ artec_eplus48u
(unmaintained) gt68xx
(1.0-84) @@ -2257,7 +2233,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref

Manufacturer: BrightScan

-@@ -2491,7 +2490,7 @@ +@@ -2491,7 +2490,7 @@ artec_eplus48u
(unmaintained) plustek_pp
(0.43) @@ -2266,7 +2242,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref

Manufacturer: Brother

-@@ -2627,7 +2626,7 @@ +@@ -2627,7 +2626,7 @@ artec_eplus48u
(unmaintained) genesys
(1.0-63) @@ -2275,7 +2251,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref CanoScan 300 SCSI -@@ -2638,7 +2637,7 @@ +@@ -2638,7 +2637,7 @@ artec_eplus48u
(unmaintained) canon
(1.12) @@ -2284,7 +2260,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref CanoScan 600 SCSI -@@ -2649,7 +2648,7 @@ +@@ -2649,7 +2648,7 @@ artec_eplus48u
(unmaintained) canon
(1.12) @@ -2293,7 +2269,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref CanoScan 620S SCSI -@@ -2660,7 +2659,7 @@ +@@ -2660,7 +2659,7 @@ artec_eplus48u
(unmaintained) canon
(1.12) @@ -2302,7 +2278,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref CanoScan 700F USB -@@ -2671,7 +2670,7 @@ +@@ -2671,7 +2670,7 @@ artec_eplus48u
(unmaintained) genesys
(1.0-63) @@ -2311,7 +2287,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref CanoScan 1200S SCSI -@@ -2682,7 +2681,7 @@ +@@ -2682,7 +2681,7 @@ artec_eplus48u
(unmaintained) canon
(1.12) @@ -2320,7 +2296,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref CanoScan 2700F SCSI -@@ -2693,7 +2692,7 @@ +@@ -2693,7 +2692,7 @@ artec_eplus48u
(unmaintained) canon
(1.12) @@ -2329,7 +2305,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref CanoScan 2710S SCSI -@@ -2704,7 +2703,7 @@ +@@ -2704,7 +2703,7 @@ artec_eplus48u
(unmaintained) canon
(1.12) @@ -2338,7 +2314,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref CanoScan 3000 USB -@@ -2770,7 +2769,7 @@ +@@ -2770,7 +2769,7 @@ artec_eplus48u
(unmaintained) genesys
(1.0-63) @@ -2347,7 +2323,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref CanoScan 5000F USB -@@ -2803,7 +2802,7 @@ +@@ -2803,7 +2802,7 @@ artec_eplus48u
(unmaintained) genesys
(1.0-63) @@ -2356,7 +2332,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref CanoScan 8000F USB -@@ -2847,7 +2846,7 @@ +@@ -2847,7 +2846,7 @@ artec_eplus48u
(unmaintained) pixma
(0.17.3) @@ -2365,7 +2341,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref CanoScan 9000F USB -@@ -2858,7 +2857,7 @@ +@@ -2858,7 +2857,7 @@ artec_eplus48u
(unmaintained) pixma
(0.17.3) @@ -2374,7 +2350,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref CanoScan 9000F Mark II USB -@@ -2869,7 +2868,7 @@ +@@ -2869,7 +2868,7 @@ artec_eplus48u
(unmaintained) pixma
(0.17.3) @@ -2383,7 +2359,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref CanoScan 9900F USB -@@ -2924,7 +2923,7 @@ +@@ -2924,7 +2923,7 @@ artec_eplus48u
(unmaintained) plustek
(0.52) @@ -2392,7 +2368,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref CanoScan D1230U USB -@@ -2968,7 +2967,7 @@ +@@ -2968,7 +2967,7 @@ artec_eplus48u
(unmaintained) canon_pp
(0.33) @@ -2401,7 +2377,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref CanoScan FB320P Parport (ECP) -@@ -2979,7 +2978,7 @@ +@@ -2979,7 +2978,7 @@ artec_eplus48u
(unmaintained) canon_pp
(0.33) @@ -2410,7 +2386,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref CanoScan FB320U USB -@@ -3001,7 +3000,7 @@ +@@ -3001,7 +3000,7 @@ artec_eplus48u
(unmaintained) canon_pp
(0.33) @@ -2419,7 +2395,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref CanoScan FB610P Parport (ECP) -@@ -3012,7 +3011,7 @@ +@@ -3012,7 +3011,7 @@ artec_eplus48u
(unmaintained) canon_pp
(0.33) @@ -2428,7 +2404,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref CanoScan FB620P Parport (ECP) -@@ -3023,7 +3022,7 @@ +@@ -3023,7 +3022,7 @@ artec_eplus48u
(unmaintained) canon_pp
(0.33) @@ -2437,7 +2413,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref CanoScan FB620U USB -@@ -3045,7 +3044,7 @@ +@@ -3045,7 +3044,7 @@ artec_eplus48u
(unmaintained) canon_pp
(0.33) @@ -2446,7 +2422,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref CanoScan fb630u USB -@@ -3056,7 +3055,7 @@ +@@ -3056,7 +3055,7 @@ artec_eplus48u
(unmaintained) canon630u
(0.1) @@ -2455,7 +2431,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref CanoScan fb636u USB -@@ -3067,7 +3066,7 @@ +@@ -3067,7 +3066,7 @@ artec_eplus48u
(unmaintained) canon630u
(0.1) @@ -2464,7 +2440,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref CanoScan FB1210U USB -@@ -3089,7 +3088,7 @@ +@@ -3089,7 +3088,7 @@ artec_eplus48u
(unmaintained) genesys
(1.0-63) @@ -2473,7 +2449,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref CanoScan LiDE 40 USB -@@ -3100,7 +3099,7 @@ +@@ -3100,7 +3099,7 @@ artec_eplus48u
(unmaintained) genesys
(1.0-63) @@ -2482,7 +2458,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref CanoScan LiDE 50 USB -@@ -3111,7 +3110,7 @@ +@@ -3111,7 +3110,7 @@ artec_eplus48u
(unmaintained) genesys
(1.0-63) @@ -2491,7 +2467,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref CanoScan LiDE 60 USB -@@ -3122,7 +3121,7 @@ +@@ -3122,7 +3121,7 @@ artec_eplus48u
(unmaintained) genesys
(1.0-63) @@ -2500,7 +2476,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref CanoScan LiDE 70 USB -@@ -3166,7 +3165,7 @@ +@@ -3166,7 +3165,7 @@ artec_eplus48u
(unmaintained) genesys
(1.0-63) @@ -2509,7 +2485,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref CanoScan LiDE 110 USB -@@ -3177,7 +3176,7 @@ +@@ -3177,7 +3176,7 @@ artec_eplus48u
(unmaintained) genesys
(1.0-63) @@ -2518,7 +2494,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref CanoScan LiDE 200 USB -@@ -3188,7 +3187,7 @@ +@@ -3188,7 +3187,7 @@ artec_eplus48u
(unmaintained) genesys
(1.0-63) @@ -2527,7 +2503,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref CanoScan LiDE 210 USB -@@ -3199,7 +3198,7 @@ +@@ -3199,7 +3198,7 @@ artec_eplus48u
(unmaintained) genesys
(1.0-63) @@ -2536,7 +2512,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref CanoScan LiDE 500F USB -@@ -3243,7 +3242,7 @@ +@@ -3243,7 +3242,7 @@ artec_eplus48u
(unmaintained) plustek
(0.52) @@ -2545,7 +2521,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref CanoScan N340P Parport (ECP) -@@ -3254,7 +3253,7 @@ +@@ -3254,7 +3253,7 @@ artec_eplus48u
(unmaintained) canon_pp
(0.33) @@ -2554,7 +2530,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref CanoScan N640P Parport (ECP) -@@ -3265,7 +3264,7 @@ +@@ -3265,7 +3264,7 @@ artec_eplus48u
(unmaintained) canon_pp
(0.33) @@ -2563,7 +2539,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref CanoScan N640P ex Parport (ECP) -@@ -3276,7 +3275,7 @@ +@@ -3276,7 +3275,7 @@ artec_eplus48u
(unmaintained) canon_pp
(0.33) @@ -2572,7 +2548,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref CanoScan N650U/N656U USB -@@ -3287,7 +3286,7 @@ +@@ -3287,7 +3286,7 @@ artec_eplus48u
(unmaintained) plustek
(0.52) @@ -2581,7 +2557,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref CanoScan N670U/N676U/LiDE20 USB -@@ -3298,7 +3297,7 @@ +@@ -3298,7 +3297,7 @@ artec_eplus48u
(unmaintained) plustek
(0.52) @@ -2590,7 +2566,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref CanoScan N1220U USB -@@ -3309,7 +3308,7 @@ +@@ -3309,7 +3308,7 @@ artec_eplus48u
(unmaintained) plustek
(0.52) @@ -2599,7 +2575,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref CanoScan N1240U/LiDE30 USB -@@ -3320,7 +3319,7 @@ +@@ -3320,7 +3319,7 @@ artec_eplus48u
(unmaintained) plustek
(0.52) @@ -2608,7 +2584,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref CR-25 USB -@@ -3331,7 +3330,7 @@ +@@ -3331,7 +3330,7 @@ artec_eplus48u
(unmaintained) canon_dr
(38) @@ -2617,7 +2593,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref CR-55 USB -@@ -3342,7 +3341,7 @@ +@@ -3342,7 +3341,7 @@ artec_eplus48u
(unmaintained) canon_dr
(38) @@ -2626,7 +2602,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref CR-135i USB SCSI -@@ -3353,7 +3352,7 @@ +@@ -3353,7 +3352,7 @@ artec_eplus48u
(unmaintained) canon_dr
(38) @@ -2635,7 +2611,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref CR-180 USB SCSI -@@ -3364,7 +3363,7 @@ +@@ -3364,7 +3363,7 @@ artec_eplus48u
(unmaintained) canon_dr
(38) @@ -2644,7 +2620,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref CR-180II USB SCSI -@@ -3375,7 +3374,7 @@ +@@ -3375,7 +3374,7 @@ artec_eplus48u
(unmaintained) canon_dr
(38) @@ -2653,7 +2629,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref CR-190i USB SCSI -@@ -3386,7 +3385,7 @@ +@@ -3386,7 +3385,7 @@ artec_eplus48u
(unmaintained) canon_dr
(38) @@ -2662,7 +2638,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref DR-1210C USB -@@ -3397,7 +3396,7 @@ +@@ -3397,7 +3396,7 @@ artec_eplus48u
(unmaintained) canon_dr
(38) @@ -2671,7 +2647,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref DR-1210C USB -@@ -3408,7 +3407,7 @@ +@@ -3408,7 +3407,7 @@ artec_eplus48u
(unmaintained) canon_dr
(38) @@ -2680,7 +2656,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref DR-2010C USB -@@ -3419,7 +3418,7 @@ +@@ -3419,7 +3418,7 @@ artec_eplus48u
(unmaintained) canon_dr
(38) @@ -2689,7 +2665,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref DR-2010M USB -@@ -3430,7 +3429,7 @@ +@@ -3430,7 +3429,7 @@ artec_eplus48u
(unmaintained) canon_dr
(38) @@ -2698,7 +2674,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref DR-2020U USB -@@ -3452,7 +3451,7 @@ +@@ -3452,7 +3451,7 @@ artec_eplus48u
(unmaintained) canon_dr
(38) @@ -2707,7 +2683,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref DR-2050SP USB -@@ -3463,7 +3462,7 @@ +@@ -3463,7 +3462,7 @@ artec_eplus48u
(unmaintained) canon_dr
(38) @@ -2716,7 +2692,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref DR-2080C USB SCSI -@@ -3474,7 +3473,7 @@ +@@ -3474,7 +3473,7 @@ artec_eplus48u
(unmaintained) canon_dr
(38) @@ -2725,7 +2701,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref DR-2510C USB -@@ -3485,7 +3484,7 @@ +@@ -3485,7 +3484,7 @@ artec_eplus48u
(unmaintained) canon_dr
(38) @@ -2734,7 +2710,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref DR-2510M USB -@@ -3496,7 +3495,7 @@ +@@ -3496,7 +3495,7 @@ artec_eplus48u
(unmaintained) canon_dr
(38) @@ -2743,7 +2719,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref DR-2580C USB SCSI -@@ -3507,7 +3506,7 @@ +@@ -3507,7 +3506,7 @@ artec_eplus48u
(unmaintained) canon_dr
(38) @@ -2752,7 +2728,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref DR-3010C USB -@@ -3518,7 +3517,7 @@ +@@ -3518,7 +3517,7 @@ artec_eplus48u
(unmaintained) canon_dr
(38) @@ -2761,7 +2737,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref DR-3020C SCSI -@@ -3529,7 +3528,7 @@ +@@ -3529,7 +3528,7 @@ artec_eplus48u
(unmaintained) canon_dr
(38) @@ -2770,7 +2746,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref DR-3060 SCSI -@@ -3540,7 +3539,7 @@ +@@ -3540,7 +3539,7 @@ artec_eplus48u
(unmaintained) canon_dr
(38) @@ -2779,7 +2755,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref DR-3080C SCSI -@@ -3551,7 +3550,7 @@ +@@ -3551,7 +3550,7 @@ artec_eplus48u
(unmaintained) canon_dr
(38) @@ -2788,7 +2764,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref DR-3080CII USB SCSI -@@ -3562,7 +3561,7 @@ +@@ -3562,7 +3561,7 @@ artec_eplus48u
(unmaintained) canon_dr
(38) @@ -2797,7 +2773,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref DR-4010C USB -@@ -3573,7 +3572,7 @@ +@@ -3573,7 +3572,7 @@ artec_eplus48u
(unmaintained) canon_dr
(38) @@ -2806,7 +2782,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref DR-4580U USB -@@ -3584,7 +3583,7 @@ +@@ -3584,7 +3583,7 @@ artec_eplus48u
(unmaintained) canon_dr
(38) @@ -2815,7 +2791,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref DR-5010C USB -@@ -3595,7 +3594,7 @@ +@@ -3595,7 +3594,7 @@ artec_eplus48u
(unmaintained) canon_dr
(38) @@ -2824,7 +2800,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref DR-5020 SCSI -@@ -3606,7 +3605,7 @@ +@@ -3606,7 +3605,7 @@ artec_eplus48u
(unmaintained) canon_dr
(38) @@ -2833,7 +2809,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref DR-5060F SCSI -@@ -3617,7 +3616,7 @@ +@@ -3617,7 +3616,7 @@ artec_eplus48u
(unmaintained) canon_dr
(38) @@ -2842,7 +2818,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref DR-5080C SCSI -@@ -3628,7 +3627,7 @@ +@@ -3628,7 +3627,7 @@ artec_eplus48u
(unmaintained) canon_dr
(38) @@ -2851,7 +2827,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref DR-6010C USB SCSI -@@ -3639,7 +3638,7 @@ +@@ -3639,7 +3638,7 @@ artec_eplus48u
(unmaintained) canon_dr
(38) @@ -2860,7 +2836,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref DR-6030C USB SCSI -@@ -3650,7 +3649,7 @@ +@@ -3650,7 +3649,7 @@ artec_eplus48u
(unmaintained) canon_dr
(38) @@ -2869,7 +2845,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref DR-6050C USB SCSI -@@ -3661,7 +3660,7 @@ +@@ -3661,7 +3660,7 @@ artec_eplus48u
(unmaintained) canon_dr
(38) @@ -2878,7 +2854,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref DR-6080 USB SCSI -@@ -3672,7 +3671,7 @@ +@@ -3672,7 +3671,7 @@ artec_eplus48u
(unmaintained) canon_dr
(38) @@ -2887,7 +2863,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref DR-7080C USB SCSI -@@ -3683,7 +3682,7 @@ +@@ -3683,7 +3682,7 @@ artec_eplus48u
(unmaintained) canon_dr
(38) @@ -2896,7 +2872,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref DR-7090C USB SCSI -@@ -3694,7 +3693,7 @@ +@@ -3694,7 +3693,7 @@ artec_eplus48u
(unmaintained) canon_dr
(38) @@ -2905,7 +2881,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref DR-7550C USB SCSI -@@ -3705,7 +3704,7 @@ +@@ -3705,7 +3704,7 @@ artec_eplus48u
(unmaintained) canon_dr
(38) @@ -2914,7 +2890,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref DR-7580 USB SCSI -@@ -3716,7 +3715,7 @@ +@@ -3716,7 +3715,7 @@ artec_eplus48u
(unmaintained) canon_dr
(38) @@ -2923,7 +2899,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref DR-9050C USB SCSI -@@ -3727,7 +3726,7 @@ +@@ -3727,7 +3726,7 @@ artec_eplus48u
(unmaintained) canon_dr
(38) @@ -2932,7 +2908,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref DR-9080C USB SCSI -@@ -3738,7 +3737,7 @@ +@@ -3738,7 +3737,7 @@ artec_eplus48u
(unmaintained) canon_dr
(38) @@ -2941,7 +2917,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref DR-X10C USB SCSI -@@ -3749,7 +3748,7 @@ +@@ -3749,7 +3748,7 @@ artec_eplus48u
(unmaintained) canon_dr
(38) @@ -2950,7 +2926,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref DR3020 SCSI -@@ -3760,7 +3759,7 @@ +@@ -3760,7 +3759,7 @@ artec_eplus48u
(unmaintained) canon_dr
(38) @@ -2959,7 +2935,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref DR4080U USB -@@ -3771,7 +3770,7 @@ +@@ -3771,7 +3770,7 @@ artec_eplus48u
(unmaintained) canon_dr
(38) @@ -2968,7 +2944,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref FS4000 USB SCSI -@@ -3793,7 +3792,7 @@ +@@ -3793,7 +3792,7 @@ artec_eplus48u
(unmaintained) pixma
(0.17.3) @@ -2977,7 +2953,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref I-SENSYS MF4320d USB -@@ -3804,7 +3803,7 @@ +@@ -3804,7 +3803,7 @@ artec_eplus48u
(unmaintained) pixma
(0.17.3) @@ -2986,7 +2962,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref I-SENSYS MF4330d USB -@@ -3815,7 +3814,7 @@ +@@ -3815,7 +3814,7 @@ artec_eplus48u
(unmaintained) pixma
(0.17.3) @@ -2995,7 +2971,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref i-SENSYS MF4550d USB -@@ -3826,7 +3825,7 @@ +@@ -3826,7 +3825,7 @@ artec_eplus48u
(unmaintained) pixma
(0.17.3) @@ -3004,7 +2980,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref i-SENSYS MF5880dn USB -@@ -3837,7 +3836,7 @@ +@@ -3837,7 +3836,7 @@ artec_eplus48u
(unmaintained) pixma
(0.17.3) @@ -3013,7 +2989,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref i-SENSYS MF6680dn USB -@@ -3848,7 +3847,7 @@ +@@ -3848,7 +3847,7 @@ artec_eplus48u
(unmaintained) pixma
(0.17.3) @@ -3022,7 +2998,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref imageCLASS D420 USB -@@ -3859,7 +3858,7 @@ +@@ -3859,7 +3858,7 @@ artec_eplus48u
(unmaintained) pixma
(0.17.3) @@ -3031,7 +3007,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref imageCLASS D480 USB -@@ -3870,7 +3869,7 @@ +@@ -3870,7 +3869,7 @@ artec_eplus48u
(unmaintained) pixma
(0.17.3) @@ -3040,7 +3016,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref imageCLASS MF3110 USB -@@ -3881,7 +3880,7 @@ +@@ -3881,7 +3880,7 @@ artec_eplus48u
(unmaintained) pixma
(0.17.3) @@ -3049,7 +3025,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref imageCLASS MF3240 USB -@@ -3892,7 +3891,7 @@ +@@ -3892,7 +3891,7 @@ artec_eplus48u
(unmaintained) pixma
(0.17.3) @@ -3058,7 +3034,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref imageCLASS MF4010 USB -@@ -3903,7 +3902,7 @@ +@@ -3903,7 +3902,7 @@ artec_eplus48u
(unmaintained) pixma
(0.17.3) @@ -3067,7 +3043,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref imageCLASS MF4018 USB -@@ -3914,7 +3913,7 @@ +@@ -3914,7 +3913,7 @@ artec_eplus48u
(unmaintained) pixma
(0.17.3) @@ -3076,7 +3052,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref imageCLASS MF4120 USB -@@ -3925,7 +3924,7 @@ +@@ -3925,7 +3924,7 @@ artec_eplus48u
(unmaintained) pixma
(0.17.3) @@ -3085,7 +3061,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref imageCLASS MF4122 USB -@@ -3936,7 +3935,7 @@ +@@ -3936,7 +3935,7 @@ artec_eplus48u
(unmaintained) pixma
(0.17.3) @@ -3094,7 +3070,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref imageCLASS MF4140 USB -@@ -3947,7 +3946,7 @@ +@@ -3947,7 +3946,7 @@ artec_eplus48u
(unmaintained) pixma
(0.17.3) @@ -3103,7 +3079,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref imageCLASS MF4150 USB -@@ -3958,7 +3957,7 @@ +@@ -3958,7 +3957,7 @@ artec_eplus48u
(unmaintained) pixma
(0.17.3) @@ -3112,7 +3088,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref imageCLASS MF4270 USB -@@ -3969,7 +3968,7 @@ +@@ -3969,7 +3968,7 @@ artec_eplus48u
(unmaintained) pixma
(0.17.3) @@ -3121,7 +3097,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref imageCLASS MF4350d USB -@@ -3980,7 +3979,7 @@ +@@ -3980,7 +3979,7 @@ artec_eplus48u
(unmaintained) pixma
(0.17.3) @@ -3130,7 +3106,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref imageCLASS MF4370dn USB -@@ -3991,7 +3990,7 @@ +@@ -3991,7 +3990,7 @@ artec_eplus48u
(unmaintained) pixma
(0.17.3) @@ -3139,7 +3115,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref imageCLASS MF4380dn USB -@@ -4002,7 +4001,7 @@ +@@ -4002,7 +4001,7 @@ artec_eplus48u
(unmaintained) pixma
(0.17.3) @@ -3148,7 +3124,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref imageCLASS MF4410 USB -@@ -4013,7 +4012,7 @@ +@@ -4013,7 +4012,7 @@ artec_eplus48u
(unmaintained) pixma
(0.17.3) @@ -3157,7 +3133,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref imageCLASS MF4430 USB -@@ -4024,7 +4023,7 @@ +@@ -4024,7 +4023,7 @@ artec_eplus48u
(unmaintained) pixma
(0.17.3) @@ -3166,7 +3142,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref imageCLASS MF4660 USB -@@ -4035,7 +4034,7 @@ +@@ -4035,7 +4034,7 @@ artec_eplus48u
(unmaintained) pixma
(0.17.3) @@ -3175,7 +3151,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref imageCLASS MF4690 USB -@@ -4046,7 +4045,7 @@ +@@ -4046,7 +4045,7 @@ artec_eplus48u
(unmaintained) pixma
(0.17.3) @@ -3184,7 +3160,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref imageCLASS MF5630 USB -@@ -4057,7 +4056,7 @@ +@@ -4057,7 +4056,7 @@ artec_eplus48u
(unmaintained) pixma
(0.17.3) @@ -3193,7 +3169,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref imageCLASS MF5730 USB -@@ -4068,7 +4067,7 @@ +@@ -4068,7 +4067,7 @@ artec_eplus48u
(unmaintained) pixma
(0.17.3) @@ -3202,7 +3178,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref imageCLASS MF5750 USB -@@ -4079,7 +4078,7 @@ +@@ -4079,7 +4078,7 @@ artec_eplus48u
(unmaintained) pixma
(0.17.3) @@ -3211,7 +3187,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref imageCLASS MF5770 USB -@@ -4090,7 +4089,7 @@ +@@ -4090,7 +4089,7 @@ artec_eplus48u
(unmaintained) pixma
(0.17.3) @@ -3220,7 +3196,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref imageCLASS MF6500 series USB -@@ -4101,7 +4100,7 @@ +@@ -4101,7 +4100,7 @@ artec_eplus48u
(unmaintained) pixma
(0.17.3) @@ -3229,7 +3205,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref imageCLASS MF6550 USB -@@ -4112,7 +4111,7 @@ +@@ -4112,7 +4111,7 @@ artec_eplus48u
(unmaintained) pixma
(0.17.3) @@ -3238,7 +3214,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref imageCLASS MF8030 USB -@@ -4123,7 +4122,7 @@ +@@ -4123,7 +4122,7 @@ artec_eplus48u
(unmaintained) pixma
(0.17.3) @@ -3247,7 +3223,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref imageCLASS MF8170c USB -@@ -4134,7 +4133,7 @@ +@@ -4134,7 +4133,7 @@ artec_eplus48u
(unmaintained) pixma
(0.17.3) @@ -3256,7 +3232,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref imageRUNNER 1020/1024/1025 USB -@@ -4145,7 +4144,7 @@ +@@ -4145,7 +4144,7 @@ artec_eplus48u
(unmaintained) pixma
(0.17.3) @@ -3265,7 +3241,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ImageRunner iR1018 USB -@@ -4233,7 +4232,7 @@ +@@ -4233,7 +4232,7 @@ artec_eplus48u
(unmaintained) canon
(1.12) @@ -3274,7 +3250,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref laserBase MF5650 USB -@@ -4244,7 +4243,7 @@ +@@ -4244,7 +4243,7 @@ artec_eplus48u
(unmaintained) pixma
(0.17.3) @@ -3283,7 +3259,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref PIXMA E500 USB -@@ -4255,7 +4254,7 @@ +@@ -4255,7 +4254,7 @@ artec_eplus48u
(unmaintained) pixma
(0.17.3) @@ -3292,7 +3268,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref PIXMA E510 USB -@@ -4266,7 +4265,7 @@ +@@ -4266,7 +4265,7 @@ artec_eplus48u
(unmaintained) pixma
(0.17.3) @@ -3301,7 +3277,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref PIXMA E600 USB -@@ -4277,7 +4276,7 @@ +@@ -4277,7 +4276,7 @@ artec_eplus48u
(unmaintained) pixma
(0.17.3) @@ -3310,7 +3286,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref PIXMA E610 USB -@@ -4288,7 +4287,7 @@ +@@ -4288,7 +4287,7 @@ artec_eplus48u
(unmaintained) pixma
(0.17.3) @@ -3319,7 +3295,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref PIXMA MG2100 Series USB -@@ -4299,7 +4298,7 @@ +@@ -4299,7 +4298,7 @@ artec_eplus48u
(unmaintained) pixma
(0.17.3) @@ -3328,7 +3304,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref PIXMA MG2200 Series USB -@@ -4310,7 +4309,7 @@ +@@ -4310,7 +4309,7 @@ artec_eplus48u
(unmaintained) pixma
(0.17.3) @@ -3337,7 +3313,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref PIXMA MG3100 Series USB WLAN -@@ -4321,7 +4320,7 @@ +@@ -4321,7 +4320,7 @@ artec_eplus48u
(unmaintained) pixma
(0.17.3) @@ -3346,7 +3322,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref PIXMA MG3200 Series USB -@@ -4332,7 +4331,7 @@ +@@ -4332,7 +4331,7 @@ artec_eplus48u
(unmaintained) pixma
(0.17.3) @@ -3355,7 +3331,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref PIXMA MG4100 Series USB -@@ -4343,7 +4342,7 @@ +@@ -4343,7 +4342,7 @@ artec_eplus48u
(unmaintained) pixma
(0.17.3) @@ -3364,7 +3340,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref PIXMA MG4200 Series USB -@@ -4354,7 +4353,7 @@ +@@ -4354,7 +4353,7 @@ artec_eplus48u
(unmaintained) pixma
(0.17.3) @@ -3373,7 +3349,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref PIXMA MG5100 Series USB -@@ -4365,7 +4364,7 @@ +@@ -4365,7 +4364,7 @@ artec_eplus48u
(unmaintained) pixma
(0.17.3) @@ -3382,7 +3358,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref PIXMA MG5200 Series USB -@@ -4376,7 +4375,7 @@ +@@ -4376,7 +4375,7 @@ artec_eplus48u
(unmaintained) pixma
(0.17.3) @@ -3391,7 +3367,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref PIXMA MG5300 Series USB -@@ -4387,7 +4386,7 @@ +@@ -4387,7 +4386,7 @@ artec_eplus48u
(unmaintained) pixma
(0.17.3) @@ -3400,7 +3376,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref PIXMA MG5400 Series USB -@@ -4398,7 +4397,7 @@ +@@ -4398,7 +4397,7 @@ artec_eplus48u
(unmaintained) pixma
(0.17.3) @@ -3409,7 +3385,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref PIXMA MG6100 Series USB -@@ -4409,7 +4408,7 @@ +@@ -4409,7 +4408,7 @@ artec_eplus48u
(unmaintained) pixma
(0.17.3) @@ -3418,7 +3394,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref PIXMA MG6200 Series USB -@@ -4420,7 +4419,7 @@ +@@ -4420,7 +4419,7 @@ artec_eplus48u
(unmaintained) pixma
(0.17.3) @@ -3427,7 +3403,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref PIXMA MG6300 Series USB Ethernet -@@ -4431,7 +4430,7 @@ +@@ -4431,7 +4430,7 @@ artec_eplus48u
(unmaintained) pixma
(0.17.3) @@ -3436,7 +3412,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref PIXMA MG8100 Series USB -@@ -4442,7 +4441,7 @@ +@@ -4442,7 +4441,7 @@ artec_eplus48u
(unmaintained) pixma
(0.17.3) @@ -3445,7 +3421,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref PIXMA MG8200 Series USB Ethernet -@@ -4453,7 +4452,7 @@ +@@ -4453,7 +4452,7 @@ artec_eplus48u
(unmaintained) pixma
(0.17.3) @@ -3454,7 +3430,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref PIXMA MP110 USB -@@ -4486,7 +4485,7 @@ +@@ -4486,7 +4485,7 @@ artec_eplus48u
(unmaintained) pixma
(0.17.3) @@ -3463,7 +3439,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref PIXMA MP150 USB -@@ -4497,7 +4496,7 @@ +@@ -4497,7 +4496,7 @@ artec_eplus48u
(unmaintained) pixma
(0.17.3) @@ -3472,7 +3448,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref PIXMA MP160 USB -@@ -4508,7 +4507,7 @@ +@@ -4508,7 +4507,7 @@ artec_eplus48u
(unmaintained) pixma
(0.17.3) @@ -3481,7 +3457,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref PIXMA MP170 USB -@@ -4519,7 +4518,7 @@ +@@ -4519,7 +4518,7 @@ artec_eplus48u
(unmaintained) pixma
(0.17.3) @@ -3490,7 +3466,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref PIXMA MP180 USB -@@ -4530,7 +4529,7 @@ +@@ -4530,7 +4529,7 @@ artec_eplus48u
(unmaintained) pixma
(0.17.3) @@ -3499,7 +3475,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref PIXMA MP190 USB -@@ -4541,7 +4540,7 @@ +@@ -4541,7 +4540,7 @@ artec_eplus48u
(unmaintained) pixma
(0.17.3) @@ -3508,7 +3484,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref PIXMA MP210 USB -@@ -4552,7 +4551,7 @@ +@@ -4552,7 +4551,7 @@ artec_eplus48u
(unmaintained) pixma
(0.17.3) @@ -3517,7 +3493,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref PIXMA MP220 USB -@@ -4563,7 +4562,7 @@ +@@ -4563,7 +4562,7 @@ artec_eplus48u
(unmaintained) pixma
(0.17.3) @@ -3526,7 +3502,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref PIXMA MP230 USB -@@ -4574,7 +4573,7 @@ +@@ -4574,7 +4573,7 @@ artec_eplus48u
(unmaintained) pixma
(0.17.3) @@ -3535,7 +3511,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref PIXMA MP240 USB -@@ -4585,7 +4584,7 @@ +@@ -4585,7 +4584,7 @@ artec_eplus48u
(unmaintained) pixma
(0.17.3) @@ -3544,7 +3520,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref PIXMA MP250 USB -@@ -4596,7 +4595,7 @@ +@@ -4596,7 +4595,7 @@ artec_eplus48u
(unmaintained) pixma
(0.17.3) @@ -3553,7 +3529,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref PIXMA MP260 USB -@@ -4607,7 +4606,7 @@ +@@ -4607,7 +4606,7 @@ artec_eplus48u
(unmaintained) pixma
(0.17.3) @@ -3562,7 +3538,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref PIXMA MP270 USB -@@ -4618,7 +4617,7 @@ +@@ -4618,7 +4617,7 @@ artec_eplus48u
(unmaintained) pixma
(0.17.3) @@ -3571,7 +3547,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref PIXMA MP280 USB -@@ -4629,7 +4628,7 @@ +@@ -4629,7 +4628,7 @@ artec_eplus48u
(unmaintained) pixma
(0.17.3) @@ -3580,7 +3556,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref PIXMA MP360 USB -@@ -4640,7 +4639,7 @@ +@@ -4640,7 +4639,7 @@ artec_eplus48u
(unmaintained) pixma
(0.17.3) @@ -3589,7 +3565,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref PIXMA MP370 USB -@@ -4651,7 +4650,7 @@ +@@ -4651,7 +4650,7 @@ artec_eplus48u
(unmaintained) pixma
(0.17.3) @@ -3598,7 +3574,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref PIXMA MP375R USB -@@ -4662,7 +4661,7 @@ +@@ -4662,7 +4661,7 @@ artec_eplus48u
(unmaintained) pixma
(0.17.3) @@ -3607,7 +3583,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref PIXMA MP390 USB -@@ -4673,7 +4672,7 @@ +@@ -4673,7 +4672,7 @@ artec_eplus48u
(unmaintained) pixma
(0.17.3) @@ -3616,7 +3592,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref PIXMA MP450 USB -@@ -4684,7 +4683,7 @@ +@@ -4684,7 +4683,7 @@ artec_eplus48u
(unmaintained) pixma
(0.17.3) @@ -3625,7 +3601,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref PIXMA MP460 USB -@@ -4695,7 +4694,7 @@ +@@ -4695,7 +4694,7 @@ artec_eplus48u
(unmaintained) pixma
(0.17.3) @@ -3634,7 +3610,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref PIXMA MP470 USB -@@ -4706,7 +4705,7 @@ +@@ -4706,7 +4705,7 @@ artec_eplus48u
(unmaintained) pixma
(0.17.3) @@ -3643,7 +3619,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref PIXMA MP480 USB -@@ -4717,7 +4716,7 @@ +@@ -4717,7 +4716,7 @@ artec_eplus48u
(unmaintained) pixma
(0.17.3) @@ -3652,7 +3628,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref PIXMA MP490 USB -@@ -4728,7 +4727,7 @@ +@@ -4728,7 +4727,7 @@ artec_eplus48u
(unmaintained) pixma
(0.17.3) @@ -3661,7 +3637,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref PIXMA MP493 USB -@@ -4739,7 +4738,7 @@ +@@ -4739,7 +4738,7 @@ artec_eplus48u
(unmaintained) pixma
(0.17.3) @@ -3670,7 +3646,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref PIXMA MP495 USB -@@ -4750,7 +4749,7 @@ +@@ -4750,7 +4749,7 @@ artec_eplus48u
(unmaintained) pixma
(0.17.3) @@ -3679,7 +3655,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref PIXMA MP500 USB -@@ -4761,7 +4760,7 @@ +@@ -4761,7 +4760,7 @@ artec_eplus48u
(unmaintained) pixma
(0.17.3) @@ -3688,7 +3664,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref PIXMA MP510 USB -@@ -4772,7 +4771,7 @@ +@@ -4772,7 +4771,7 @@ artec_eplus48u
(unmaintained) pixma
(0.17.3) @@ -3697,7 +3673,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref PIXMA MP520 USB -@@ -4783,7 +4782,7 @@ +@@ -4783,7 +4782,7 @@ artec_eplus48u
(unmaintained) pixma
(0.17.3) @@ -3706,7 +3682,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref PIXMA MP530 USB -@@ -4794,7 +4793,7 @@ +@@ -4794,7 +4793,7 @@ artec_eplus48u
(unmaintained) pixma
(0.17.3) @@ -3715,7 +3691,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref PIXMA MP540 USB -@@ -4805,7 +4804,7 @@ +@@ -4805,7 +4804,7 @@ artec_eplus48u
(unmaintained) pixma
(0.17.3) @@ -3724,7 +3700,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref PIXMA MP550 USB -@@ -4816,7 +4815,7 @@ +@@ -4816,7 +4815,7 @@ artec_eplus48u
(unmaintained) pixma
(0.17.3) @@ -3733,7 +3709,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref PIXMA MP560 USB -@@ -4827,7 +4826,7 @@ +@@ -4827,7 +4826,7 @@ artec_eplus48u
(unmaintained) pixma
(0.17.3) @@ -3742,7 +3718,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref PIXMA MP600 USB -@@ -4838,7 +4837,7 @@ +@@ -4838,7 +4837,7 @@ artec_eplus48u
(unmaintained) pixma
(0.17.3) @@ -3751,7 +3727,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref PIXMA MP600R USB Ethernet -@@ -4849,7 +4848,7 @@ +@@ -4849,7 +4848,7 @@ artec_eplus48u
(unmaintained) pixma
(0.17.3) @@ -3760,7 +3736,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref PIXMA MP610 USB -@@ -4860,7 +4859,7 @@ +@@ -4860,7 +4859,7 @@ artec_eplus48u
(unmaintained) pixma
(0.17.3) @@ -3769,7 +3745,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref PIXMA MP620 USB Ethernet -@@ -4871,7 +4870,7 @@ +@@ -4871,7 +4870,7 @@ artec_eplus48u
(unmaintained) pixma
(0.17.3) @@ -3778,7 +3754,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref PIXMA MP630 USB -@@ -4882,7 +4881,7 @@ +@@ -4882,7 +4881,7 @@ artec_eplus48u
(unmaintained) pixma
(0.17.3) @@ -3787,7 +3763,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref PIXMA MP640 USB Ethernet -@@ -4893,7 +4892,7 @@ +@@ -4893,7 +4892,7 @@ artec_eplus48u
(unmaintained) pixma
(0.17.3) @@ -3796,7 +3772,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref PIXMA MP700 USB -@@ -4904,7 +4903,7 @@ +@@ -4904,7 +4903,7 @@ artec_eplus48u
(unmaintained) pixma
(0.17.3) @@ -3805,7 +3781,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref PIXMA MP710 USB -@@ -4915,7 +4914,7 @@ +@@ -4915,7 +4914,7 @@ artec_eplus48u
(unmaintained) pixma
(0.17.3) @@ -3814,7 +3790,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref PIXMA MP730 USB -@@ -4926,7 +4925,7 @@ +@@ -4926,7 +4925,7 @@ artec_eplus48u
(unmaintained) pixma
(0.17.3) @@ -3823,7 +3799,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref PIXMA MP740 USB -@@ -4937,7 +4936,7 @@ +@@ -4937,7 +4936,7 @@ artec_eplus48u
(unmaintained) pixma
(0.17.3) @@ -3832,7 +3808,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref PIXMA MP750 USB -@@ -4948,7 +4947,7 @@ +@@ -4948,7 +4947,7 @@ artec_eplus48u
(unmaintained) pixma
(0.17.3) @@ -3841,7 +3817,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref PIXMA MP760 USB -@@ -4959,7 +4958,7 @@ +@@ -4959,7 +4958,7 @@ artec_eplus48u
(unmaintained) pixma
(0.17.3) @@ -3850,7 +3826,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref PIXMA MP770 USB -@@ -4970,7 +4969,7 @@ +@@ -4970,7 +4969,7 @@ artec_eplus48u
(unmaintained) pixma
(0.17.3) @@ -3859,7 +3835,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref PIXMA MP780 USB -@@ -4981,7 +4980,7 @@ +@@ -4981,7 +4980,7 @@ artec_eplus48u
(unmaintained) pixma
(0.17.3) @@ -3868,7 +3844,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref PIXMA MP790 USB -@@ -4992,7 +4991,7 @@ +@@ -4992,7 +4991,7 @@ artec_eplus48u
(unmaintained) pixma
(0.17.3) @@ -3877,7 +3853,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref PIXMA MP800 USB -@@ -5003,7 +5002,7 @@ +@@ -5003,7 +5002,7 @@ artec_eplus48u
(unmaintained) pixma
(0.17.3) @@ -3886,7 +3862,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref PIXMA MP800R USB -@@ -5014,7 +5013,7 @@ +@@ -5014,7 +5013,7 @@ artec_eplus48u
(unmaintained) pixma
(0.17.3) @@ -3895,7 +3871,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref PIXMA MP810 USB -@@ -5025,7 +5024,7 @@ +@@ -5025,7 +5024,7 @@ artec_eplus48u
(unmaintained) pixma
(0.17.3) @@ -3904,7 +3880,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref PIXMA MP830 USB -@@ -5036,7 +5035,7 @@ +@@ -5036,7 +5035,7 @@ artec_eplus48u
(unmaintained) pixma
(0.17.3) @@ -3913,7 +3889,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref PIXMA MP960 USB -@@ -5047,7 +5046,7 @@ +@@ -5047,7 +5046,7 @@ artec_eplus48u
(unmaintained) pixma
(0.17.3) @@ -3922,7 +3898,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref PIXMA MP970 USB Ethernet -@@ -5058,7 +5057,7 @@ +@@ -5058,7 +5057,7 @@ artec_eplus48u
(unmaintained) pixma
(0.17.3) @@ -3931,7 +3907,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref PIXMA MP980 USB Ethernet -@@ -5069,7 +5068,7 @@ +@@ -5069,7 +5068,7 @@ artec_eplus48u
(unmaintained) pixma
(0.17.3) @@ -3940,7 +3916,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref PIXMA MP990 USB Ethernet -@@ -5080,7 +5079,7 @@ +@@ -5080,7 +5079,7 @@ artec_eplus48u
(unmaintained) pixma
(0.17.3) @@ -3949,7 +3925,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref PIXMA MX300 USB -@@ -5091,7 +5090,7 @@ +@@ -5091,7 +5090,7 @@ artec_eplus48u
(unmaintained) pixma
(0.17.3) @@ -3958,7 +3934,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref PIXMA MX310 USB -@@ -5102,7 +5101,7 @@ +@@ -5102,7 +5101,7 @@ artec_eplus48u
(unmaintained) pixma
(0.17.3) @@ -3967,7 +3943,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref PIXMA MX320 USB -@@ -5113,7 +5112,7 @@ +@@ -5113,7 +5112,7 @@ artec_eplus48u
(unmaintained) pixma
(0.17.3) @@ -3976,7 +3952,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref PIXMA MX330 USB -@@ -5124,7 +5123,7 @@ +@@ -5124,7 +5123,7 @@ artec_eplus48u
(unmaintained) pixma
(0.17.3) @@ -3985,7 +3961,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref PIXMA MX340 USB -@@ -5135,7 +5134,7 @@ +@@ -5135,7 +5134,7 @@ artec_eplus48u
(unmaintained) pixma
(0.17.3) @@ -3994,7 +3970,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref PIXMA MX350 USB Ethernet -@@ -5146,7 +5145,7 @@ +@@ -5146,7 +5145,7 @@ artec_eplus48u
(unmaintained) pixma
(0.17.3) @@ -4003,7 +3979,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref PIXMA MX360 USB -@@ -5157,7 +5156,7 @@ +@@ -5157,7 +5156,7 @@ artec_eplus48u
(unmaintained) pixma
(0.17.3) @@ -4012,7 +3988,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref PIXMA MX370 Series USB -@@ -5168,7 +5167,7 @@ +@@ -5168,7 +5167,7 @@ artec_eplus48u
(unmaintained) pixma
(0.17.3) @@ -4021,7 +3997,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref PIXMA MX390 Series USB -@@ -5179,7 +5178,7 @@ +@@ -5179,7 +5178,7 @@ artec_eplus48u
(unmaintained) pixma
(0.17.3) @@ -4030,7 +4006,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref PIXMA MX410 USB Ethernet -@@ -5190,7 +5189,7 @@ +@@ -5190,7 +5189,7 @@ artec_eplus48u
(unmaintained) pixma
(0.17.3) @@ -4039,7 +4015,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref PIXMA MX420 USB Ethernet -@@ -5201,7 +5200,7 @@ +@@ -5201,7 +5200,7 @@ artec_eplus48u
(unmaintained) pixma
(0.17.3) @@ -4048,7 +4024,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref PIXMA MX430 Series USB Ethernet -@@ -5212,7 +5211,7 @@ +@@ -5212,7 +5211,7 @@ artec_eplus48u
(unmaintained) pixma
(0.17.3) @@ -4057,7 +4033,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref PIXMA MX450 Series USB -@@ -5223,7 +5222,7 @@ +@@ -5223,7 +5222,7 @@ artec_eplus48u
(unmaintained) pixma
(0.17.3) @@ -4066,7 +4042,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref PIXMA MX510 Series USB Ethernet -@@ -5234,7 +5233,7 @@ +@@ -5234,7 +5233,7 @@ artec_eplus48u
(unmaintained) pixma
(0.17.3) @@ -4075,7 +4051,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref PIXMA MX520 Series USB -@@ -5245,7 +5244,7 @@ +@@ -5245,7 +5244,7 @@ artec_eplus48u
(unmaintained) pixma
(0.17.3) @@ -4084,7 +4060,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref PIXMA MX700 USB Ethernet -@@ -5256,7 +5255,7 @@ +@@ -5256,7 +5255,7 @@ artec_eplus48u
(unmaintained) pixma
(0.17.3) @@ -4093,7 +4069,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref PIXMA MX710 Series USB Ethernet -@@ -5267,7 +5266,7 @@ +@@ -5267,7 +5266,7 @@ artec_eplus48u
(unmaintained) pixma
(0.17.3) @@ -4102,7 +4078,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref PIXMA MX720 Series USB -@@ -5278,7 +5277,7 @@ +@@ -5278,7 +5277,7 @@ artec_eplus48u
(unmaintained) pixma
(0.17.3) @@ -4111,7 +4087,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref PIXMA MX850 USB Ethernet -@@ -5289,7 +5288,7 @@ +@@ -5289,7 +5288,7 @@ artec_eplus48u
(unmaintained) pixma
(0.17.3) @@ -4120,7 +4096,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref PIXMA MX860 USB Ethernet -@@ -5300,7 +5299,7 @@ +@@ -5300,7 +5299,7 @@ artec_eplus48u
(unmaintained) pixma
(0.17.3) @@ -4129,7 +4105,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref PIXMA MX870 USB Ethernet -@@ -5311,7 +5310,7 @@ +@@ -5311,7 +5310,7 @@ artec_eplus48u
(unmaintained) pixma
(0.17.3) @@ -4138,7 +4114,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref PIXMA MX880 Series USB Ethernet -@@ -5322,7 +5321,7 @@ +@@ -5322,7 +5321,7 @@ artec_eplus48u
(unmaintained) pixma
(0.17.3) @@ -4147,7 +4123,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref PIXMA MX882 USB Ethernet -@@ -5333,7 +5332,7 @@ +@@ -5333,7 +5332,7 @@ artec_eplus48u
(unmaintained) pixma
(0.17.3) @@ -4156,7 +4132,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref PIXMA MX885 USB Ethernet -@@ -5344,7 +5343,7 @@ +@@ -5344,7 +5343,7 @@ artec_eplus48u
(unmaintained) pixma
(0.17.3) @@ -4165,7 +4141,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref PIXMA MX890 Series USB Ethernet -@@ -5355,7 +5354,7 @@ +@@ -5355,7 +5354,7 @@ artec_eplus48u
(unmaintained) pixma
(0.17.3) @@ -4174,7 +4150,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref PIXMA MX920 Series USB -@@ -5366,7 +5365,7 @@ +@@ -5366,7 +5365,7 @@ artec_eplus48u
(unmaintained) pixma
(0.17.3) @@ -4183,7 +4159,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref PIXMA MX7600 USB Ethernet -@@ -5377,7 +5376,7 @@ +@@ -5377,7 +5376,7 @@ artec_eplus48u
(unmaintained) pixma
(0.17.3) @@ -4192,7 +4168,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref

Manufacturer: Chinon

-@@ -5429,7 +5428,7 @@ +@@ -5429,7 +5428,7 @@ artec_eplus48u
(unmaintained) plustek
(0.52) @@ -4201,7 +4177,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref S200 USB -@@ -5492,7 +5491,7 @@ +@@ -5492,7 +5491,7 @@ artec_eplus48u
(unmaintained) cardscan
(2) @@ -4210,7 +4186,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref 800c USB -@@ -5503,7 +5502,7 @@ +@@ -5503,7 +5502,7 @@ artec_eplus48u
(unmaintained) cardscan
(2) @@ -4219,7 +4195,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Cardscan 500 USB -@@ -5550,7 +5549,7 @@ +@@ -5550,7 +5549,7 @@ artec_eplus48u
(unmaintained) mustek_pp
(13) @@ -4228,7 +4204,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref

Manufacturer: DCT

-@@ -5578,7 +5577,7 @@ +@@ -5578,7 +5577,7 @@ artec_eplus48u
(unmaintained) genesys
(1.0-63) @@ -4237,7 +4213,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref

Manufacturer: Dell

-@@ -5625,7 +5624,7 @@ +@@ -5625,7 +5624,7 @@ dell1600n_net lexmark
(1.0-0) @@ -4246,7 +4222,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref A940 USB -@@ -5657,7 +5656,7 @@ +@@ -5657,7 +5656,7 @@ dell1600n_net xerox_mfp
(1.0-13) @@ -4255,7 +4231,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref

Manufacturer: Devcom

-@@ -5684,7 +5683,7 @@ +@@ -5684,7 +5683,7 @@ xerox_mfp
(1.0-13) pie
(1.0) @@ -4264,7 +4240,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref 9636PRO SCSI -@@ -5695,7 +5694,7 @@ +@@ -5695,7 +5694,7 @@ xerox_mfp
(1.0-13) pie
(1.0) @@ -4273,7 +4249,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref 9636S SCSI -@@ -5706,7 +5705,7 @@ +@@ -5706,7 +5705,7 @@ xerox_mfp
(1.0-13) pie
(1.0) @@ -4282,7 +4258,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref

Manufacturer: Dextra

-@@ -5731,7 +5730,7 @@ +@@ -5731,7 +5730,7 @@ xerox_mfp
(1.0-13) teco1
(1.0-10) @@ -4291,7 +4267,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref DF-1200T+ SCSI -@@ -5742,7 +5741,7 @@ +@@ -5742,7 +5741,7 @@ xerox_mfp
(1.0-13) teco1
(1.0-10) @@ -4300,7 +4276,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref DF-4830T SCSI -@@ -5753,7 +5752,7 @@ +@@ -5753,7 +5752,7 @@ xerox_mfp
(1.0-13) teco1
(1.0-10) @@ -4309,7 +4285,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref DF-9624 SCSI -@@ -5764,7 +5763,7 @@ +@@ -5764,7 +5763,7 @@ xerox_mfp
(1.0-13) teco1
(1.0-10) @@ -4318,7 +4294,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref

Manufacturer: Dexxa

-@@ -5791,7 +5790,7 @@ +@@ -5791,7 +5790,7 @@ xerox_mfp
(1.0-13) as6e
(0.5) @@ -4327,7 +4303,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref

Manufacturer: E-Lux

-@@ -5842,7 +5841,7 @@ +@@ -5842,7 +5841,7 @@ xerox_mfp
(1.0-13) umax
(1.0-41) @@ -4336,7 +4312,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref

Manufacturer: EDT (Electronic Document Technology)

-@@ -5932,7 +5931,7 @@ +@@ -5932,7 +5931,7 @@ xerox_mfp
(1.0-13) epson2
(1.0.124) @@ -4345,7 +4321,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Actionscanner II SCSI Parport -@@ -5943,7 +5942,7 @@ +@@ -5943,7 +5942,7 @@ epson2
(1.0.124) epson
(unmaintained) @@ -4354,7 +4330,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref AcuLaser CX11 USB -@@ -5953,7 +5952,7 @@ +@@ -5953,7 +5952,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -4363,7 +4339,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref AcuLaser CX11 USB -@@ -5964,7 +5963,7 @@ +@@ -5964,7 +5963,7 @@ epson2
(1.0.124) epson
(unmaintained) @@ -4372,7 +4348,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref AcuLaser CX11NF USB Network -@@ -5974,7 +5973,7 @@ +@@ -5974,7 +5973,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -4381,7 +4357,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref AcuLaser CX11NF USB -@@ -5985,7 +5984,7 @@ +@@ -5985,7 +5984,7 @@ epson2
(1.0.124) epson
(unmaintained) @@ -4390,7 +4366,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref AcuLaser CX21 USB -@@ -5995,7 +5994,7 @@ +@@ -5995,7 +5994,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -4399,7 +4375,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Artisan 700 USB Network -@@ -6005,7 +6004,7 @@ +@@ -6005,7 +6004,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -4408,7 +4384,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Artisan 710 Series USB -@@ -6015,7 +6014,7 @@ +@@ -6015,7 +6014,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -4417,7 +4393,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Artisan 800 USB -@@ -6025,7 +6024,7 @@ +@@ -6025,7 +6024,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -4426,7 +4402,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Artisan 810 Series USB -@@ -6035,7 +6034,7 @@ +@@ -6035,7 +6034,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -4435,7 +4411,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref CC-500L USB -@@ -6045,7 +6044,7 @@ +@@ -6045,7 +6044,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -4444,7 +4420,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref CC-550L USB -@@ -6055,7 +6054,7 @@ +@@ -6055,7 +6054,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -4453,7 +4429,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref CC-570L USB -@@ -6065,7 +6064,7 @@ +@@ -6065,7 +6064,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -4462,7 +4438,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref CC-600PX USB -@@ -6075,7 +6074,7 @@ +@@ -6075,7 +6074,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -4471,7 +4447,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref CC-700 USB -@@ -6085,7 +6084,7 @@ +@@ -6085,7 +6084,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -4480,7 +4456,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref CX-3200 USB -@@ -6096,7 +6095,7 @@ +@@ -6096,7 +6095,7 @@ epson2
(1.0.124) epson
(unmaintained) @@ -4489,7 +4465,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref CX-3600 USB -@@ -6107,7 +6106,7 @@ +@@ -6107,7 +6106,7 @@ epson2
(1.0.124) epson
(unmaintained) @@ -4498,7 +4474,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref CX-3650 USB -@@ -6118,7 +6117,7 @@ +@@ -6118,7 +6117,7 @@ epson2
(1.0.124) epson
(unmaintained) @@ -4507,7 +4483,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref CX-3700 USB -@@ -6129,7 +6128,7 @@ +@@ -6129,7 +6128,7 @@ epson2
(1.0.124) epson
(unmaintained) @@ -4516,7 +4492,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref CX-3800 USB -@@ -6140,7 +6139,7 @@ +@@ -6140,7 +6139,7 @@ epson2
(1.0.124) epson
(unmaintained) @@ -4525,7 +4501,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref CX-4200 USB -@@ -6151,7 +6150,7 @@ +@@ -6151,7 +6150,7 @@ epson2
(1.0.124) epson
(unmaintained) @@ -4534,7 +4510,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref CX-4600 USB -@@ -6162,7 +6161,7 @@ +@@ -6162,7 +6161,7 @@ epson2
(1.0.124) epson
(unmaintained) @@ -4543,7 +4519,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref CX-4800 USB -@@ -6173,7 +6172,7 @@ +@@ -6173,7 +6172,7 @@ epson2
(1.0.124) epson
(unmaintained) @@ -4552,7 +4528,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref CX-5000 USB -@@ -6184,7 +6183,7 @@ +@@ -6184,7 +6183,7 @@ epson2
(1.0.124) epson
(unmaintained) @@ -4561,7 +4537,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref CX-5200 USB -@@ -6195,7 +6194,7 @@ +@@ -6195,7 +6194,7 @@ epson2
(1.0.124) epson
(unmaintained) @@ -4570,7 +4546,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref CX-5400 USB -@@ -6206,7 +6205,7 @@ +@@ -6206,7 +6205,7 @@ epson2
(1.0.124) epson
(unmaintained) @@ -4579,7 +4555,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref CX-5400 USB -@@ -6217,7 +6216,7 @@ +@@ -6217,7 +6216,7 @@ epson2
(1.0.124) epson
(unmaintained) @@ -4588,7 +4564,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref CX-6300 USB -@@ -6228,7 +6227,7 @@ +@@ -6228,7 +6227,7 @@ epson2
(1.0.124) epson
(unmaintained) @@ -4597,7 +4573,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref CX-6400 USB -@@ -6239,7 +6238,7 @@ +@@ -6239,7 +6238,7 @@ epson2
(1.0.124) epson
(unmaintained) @@ -4606,7 +4582,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref CX-6500 USB -@@ -6250,7 +6249,7 @@ +@@ -6250,7 +6249,7 @@ epson2
(1.0.124) epson
(unmaintained) @@ -4615,7 +4591,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref CX-6600 USB -@@ -6261,7 +6260,7 @@ +@@ -6261,7 +6260,7 @@ epson2
(1.0.124) epson
(unmaintained) @@ -4624,7 +4600,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref DX-3800 USB -@@ -6272,7 +6271,7 @@ +@@ -6272,7 +6271,7 @@ epson2
(1.0.124) epson
(unmaintained) @@ -4633,7 +4609,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref DX-3850 USB -@@ -6283,7 +6282,7 @@ +@@ -6283,7 +6282,7 @@ epson2
(1.0.124) epson
(unmaintained) @@ -4642,7 +4618,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref DX-4050 USB -@@ -6294,7 +6293,7 @@ +@@ -6294,7 +6293,7 @@ epson2
(1.0.124) epson
(unmaintained) @@ -4651,7 +4627,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref DX-5000 USB -@@ -6305,7 +6304,7 @@ +@@ -6305,7 +6304,7 @@ epson2
(1.0.124) epson
(unmaintained) @@ -4660,7 +4636,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref DX-5050 USB -@@ -6316,7 +6315,7 @@ +@@ -6316,7 +6315,7 @@ epson2
(1.0.124) epson
(unmaintained) @@ -4669,7 +4645,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref DX-6000 USB -@@ -6327,7 +6326,7 @@ +@@ -6327,7 +6326,7 @@ epson2
(1.0.124) epson
(unmaintained) @@ -4678,7 +4654,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref DX-7400 USB -@@ -6338,7 +6337,7 @@ +@@ -6338,7 +6337,7 @@ epson2
(1.0.124) epson
(unmaintained) @@ -4687,7 +4663,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref EP-702A USB -@@ -6348,7 +6347,7 @@ +@@ -6348,7 +6347,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -4696,7 +4672,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref EP-801A USB Network -@@ -6358,7 +6357,7 @@ +@@ -6358,7 +6357,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -4705,7 +4681,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref EP-802A USB -@@ -6368,7 +6367,7 @@ +@@ -6368,7 +6367,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -4714,7 +4690,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref EP-901A USB -@@ -6378,7 +6377,7 @@ +@@ -6378,7 +6377,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -4723,7 +4699,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref EP-901F USB -@@ -6388,7 +6387,7 @@ +@@ -6388,7 +6387,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -4732,7 +4708,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref EP-902A USB -@@ -6398,7 +6397,7 @@ +@@ -6398,7 +6397,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -4741,7 +4717,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ES-300C SCSI parallel -@@ -6408,7 +6407,7 @@ +@@ -6408,7 +6407,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -4750,7 +4726,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ES-300C SCSI Parport -@@ -6419,7 +6418,7 @@ +@@ -6419,7 +6418,7 @@ epson2
(1.0.124) epson
(unmaintained) @@ -4759,7 +4735,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ES-300GS SCSI -@@ -6429,7 +6428,7 @@ +@@ -6429,7 +6428,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -4768,7 +4744,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ES-300GS SCSI -@@ -6440,7 +6439,7 @@ +@@ -6440,7 +6439,7 @@ epson2
(1.0.124) epson
(unmaintained) @@ -4777,7 +4753,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ES-600C parallel -@@ -6450,7 +6449,7 @@ +@@ -6450,7 +6449,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -4786,7 +4762,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ES-600C Parport -@@ -6461,7 +6460,7 @@ +@@ -6461,7 +6460,7 @@ epson2
(1.0.124) epson
(unmaintained) @@ -4795,7 +4771,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ES-800C SCSI -@@ -6471,7 +6470,7 @@ +@@ -6471,7 +6470,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -4804,7 +4780,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ES-1000C ? -@@ -6481,7 +6480,7 @@ +@@ -6481,7 +6480,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -4813,7 +4789,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ES-1200C parallel -@@ -6491,7 +6490,7 @@ +@@ -6491,7 +6490,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -4822,7 +4798,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ES-1200C Parport -@@ -6502,7 +6501,7 @@ +@@ -6502,7 +6501,7 @@ epson2
(1.0.124) epson
(unmaintained) @@ -4831,7 +4807,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ES-2000 SCSI USB -@@ -6512,7 +6511,7 @@ +@@ -6512,7 +6511,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -4840,7 +4816,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ES-2200 SCSI USB -@@ -6522,7 +6521,7 @@ +@@ -6522,7 +6521,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -4849,7 +4825,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ES-6000 SCSI -@@ -6532,7 +6531,7 @@ +@@ -6532,7 +6531,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -4858,7 +4834,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ES-6000H SCSI -@@ -6542,7 +6541,7 @@ +@@ -6542,7 +6541,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -4867,7 +4843,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ES-6000HS SCSI -@@ -6552,7 +6551,7 @@ +@@ -6552,7 +6551,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -4876,7 +4852,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ES-7000H SCSI USB -@@ -6562,7 +6561,7 @@ +@@ -6562,7 +6561,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -4885,7 +4861,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ES-8000 SCSI -@@ -6572,7 +6571,7 @@ +@@ -6572,7 +6571,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -4894,7 +4870,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ES-8500 SCSI USB -@@ -6582,7 +6581,7 @@ +@@ -6582,7 +6581,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -4903,7 +4879,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ES-8500 SCSI -@@ -6593,7 +6592,7 @@ +@@ -6593,7 +6592,7 @@ epson2
(1.0.124) epson
(unmaintained) @@ -4912,7 +4888,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ES-9000H SCSI -@@ -6603,7 +6602,7 @@ +@@ -6603,7 +6602,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -4921,7 +4897,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ES-10000G USB -@@ -6613,7 +6612,7 @@ +@@ -6613,7 +6612,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -4930,7 +4906,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ES-D400 USB -@@ -6623,7 +6622,7 @@ +@@ -6623,7 +6622,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -4939,7 +4915,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ES-H300 USB -@@ -6633,7 +6632,7 @@ +@@ -6633,7 +6632,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -4948,7 +4924,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ES-H7200 USB Ethernet -@@ -6643,7 +6642,7 @@ +@@ -6643,7 +6642,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -4957,7 +4933,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Expression 636 SCSI -@@ -6653,7 +6652,7 @@ +@@ -6653,7 +6652,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -4966,7 +4942,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Expression 636 SCSI -@@ -6664,7 +6663,7 @@ +@@ -6664,7 +6663,7 @@ epson2
(1.0.124) epson
(unmaintained) @@ -4975,7 +4951,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Expression 800 SCSI -@@ -6674,7 +6673,7 @@ +@@ -6674,7 +6673,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -4984,7 +4960,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Expression 800 SCSI -@@ -6685,7 +6684,7 @@ +@@ -6685,7 +6684,7 @@ epson2
(1.0.124) epson
(unmaintained) @@ -4993,7 +4969,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Expression 836XL SCSI -@@ -6695,7 +6694,7 @@ +@@ -6695,7 +6694,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -5002,7 +4978,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Expression 1600 SCSI USB -@@ -6705,7 +6704,7 @@ +@@ -6705,7 +6704,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -5011,7 +4987,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Expression 1600 SCSI USB IEEE-1394 -@@ -6716,7 +6715,7 @@ +@@ -6716,7 +6715,7 @@ epson2
(1.0.124) epson
(unmaintained) @@ -5020,7 +4996,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Expression 1640XL SCSI USB -@@ -6726,7 +6725,7 @@ +@@ -6726,7 +6725,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -5029,7 +5005,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Expression 1680 SCSI USB -@@ -6736,7 +6735,7 @@ +@@ -6736,7 +6735,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -5038,7 +5014,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Expression 1680 SCSI USB IEEE-1394 -@@ -6747,7 +6746,7 @@ +@@ -6747,7 +6746,7 @@ epson2
(1.0.124) epson
(unmaintained) @@ -5047,7 +5023,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Expression 1680 Pro SCSI USB -@@ -6757,7 +6756,7 @@ +@@ -6757,7 +6756,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -5056,7 +5032,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Expression 1680XL Pro SCSI USB -@@ -6767,7 +6766,7 @@ +@@ -6767,7 +6766,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -5065,7 +5041,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Expression 10000XL USB -@@ -6777,7 +6776,7 @@ +@@ -6777,7 +6776,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -5074,7 +5050,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Expression 10000XL Graphic Arts USB IEEE1394 -@@ -6787,7 +6786,7 @@ +@@ -6787,7 +6786,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -5083,7 +5059,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Expression 10000XL Photo USB IEEE1394 -@@ -6797,7 +6796,7 @@ +@@ -6797,7 +6796,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -5092,7 +5068,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref F-3200 USB IEEE1394 -@@ -6807,7 +6806,7 @@ +@@ -6807,7 +6806,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -5101,7 +5077,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref F-3200 Photo USB IEEE1394 -@@ -6817,7 +6816,7 @@ +@@ -6817,7 +6816,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -5110,7 +5086,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref FilmScan 200 SCSI -@@ -6827,7 +6826,7 @@ +@@ -6827,7 +6826,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -5119,7 +5095,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref GT-1500 USB -@@ -6837,7 +6836,7 @@ +@@ -6837,7 +6836,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -5128,7 +5104,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref GT-2200 USB -@@ -6858,7 +6857,7 @@ +@@ -6858,7 +6857,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -5137,7 +5113,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref GT-2500 USB -@@ -6868,7 +6867,7 @@ +@@ -6868,7 +6867,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -5146,7 +5122,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref GT-4000 ? -@@ -6878,7 +6877,7 @@ +@@ -6878,7 +6877,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -5155,7 +5131,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref GT-5000 parallel SCSI -@@ -6888,7 +6887,7 @@ +@@ -6888,7 +6887,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -5164,7 +5140,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref GT-5000 SCSI Parport -@@ -6899,7 +6898,7 @@ +@@ -6899,7 +6898,7 @@ epson2
(1.0.124) epson
(unmaintained) @@ -5173,7 +5149,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref GT-5400 parallel -@@ -6909,7 +6908,7 @@ +@@ -6909,7 +6908,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -5182,7 +5158,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref GT-5500 SCSI -@@ -6919,7 +6918,7 @@ +@@ -6919,7 +6918,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -5191,7 +5167,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref GT-5500 SCSI -@@ -6930,7 +6929,7 @@ +@@ -6930,7 +6929,7 @@ epson2
(1.0.124) epson
(unmaintained) @@ -5200,7 +5176,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref GT-6000 SCSI Parport -@@ -6940,7 +6939,7 @@ +@@ -6940,7 +6939,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -5209,7 +5185,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref GT-6000 SCSI Parport -@@ -6951,7 +6950,7 @@ +@@ -6951,7 +6950,7 @@ epson2
(1.0.124) epson
(unmaintained) @@ -5218,7 +5194,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref GT-6500 parallel -@@ -6961,7 +6960,7 @@ +@@ -6961,7 +6960,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -5227,7 +5203,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref GT-6500 Parport -@@ -6972,7 +6971,7 @@ +@@ -6972,7 +6971,7 @@ epson2
(1.0.124) epson
(unmaintained) @@ -5236,7 +5212,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref GT-6600U USB -@@ -6982,7 +6981,7 @@ +@@ -6982,7 +6981,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -5245,7 +5221,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref GT-6700U USB -@@ -6992,7 +6991,7 @@ +@@ -6992,7 +6991,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -5254,7 +5230,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref GT-7000 SCSI -@@ -7003,7 +7002,7 @@ +@@ -7003,7 +7002,7 @@ epson2
(1.0.124) epson
(unmaintained) @@ -5263,7 +5239,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref GT-7000S SCSI -@@ -7013,7 +7012,7 @@ +@@ -7013,7 +7012,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -5272,7 +5248,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref GT-7000U USB -@@ -7023,7 +7022,7 @@ +@@ -7023,7 +7022,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -5281,7 +5257,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref GT-7200U USB -@@ -7033,7 +7032,7 @@ +@@ -7033,7 +7032,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -5290,7 +5266,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref GT-7300U USB -@@ -7043,7 +7042,7 @@ +@@ -7043,7 +7042,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -5299,7 +5275,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref GT-7400U USB -@@ -7053,7 +7052,7 @@ +@@ -7053,7 +7052,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -5308,7 +5284,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref GT-7600S SCSI -@@ -7063,7 +7062,7 @@ +@@ -7063,7 +7062,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -5317,7 +5293,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref GT-7600U USB -@@ -7073,7 +7072,7 @@ +@@ -7073,7 +7072,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -5326,7 +5302,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref GT-7600UF USB -@@ -7083,7 +7082,7 @@ +@@ -7083,7 +7082,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -5335,7 +5311,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref GT-7700U USB -@@ -7093,7 +7092,7 @@ +@@ -7093,7 +7092,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -5344,7 +5320,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref GT-8000 SCSI -@@ -7103,7 +7102,7 @@ +@@ -7103,7 +7102,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -5353,7 +5329,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref GT-8000 SCSI -@@ -7114,7 +7113,7 @@ +@@ -7114,7 +7113,7 @@ epson2
(1.0.124) epson
(unmaintained) @@ -5362,7 +5338,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref GT-8200U USB -@@ -7124,7 +7123,7 @@ +@@ -7124,7 +7123,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -5371,7 +5347,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref GT-8200UF USB -@@ -7134,7 +7133,7 @@ +@@ -7134,7 +7133,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -5380,7 +5356,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref GT-8300UF USB -@@ -7144,7 +7143,7 @@ +@@ -7144,7 +7143,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -5389,7 +5365,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref GT-8400UF USB -@@ -7154,7 +7153,7 @@ +@@ -7154,7 +7153,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -5398,7 +5374,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref GT-8500 ? -@@ -7164,7 +7163,7 @@ +@@ -7164,7 +7163,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -5407,7 +5383,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref GT-8700 SCSI USB -@@ -7174,7 +7173,7 @@ +@@ -7174,7 +7173,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -5416,7 +5392,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref GT-8700F SCSI USB -@@ -7184,7 +7183,7 @@ +@@ -7184,7 +7183,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -5425,7 +5401,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref GT-9000 parallel -@@ -7194,7 +7193,7 @@ +@@ -7194,7 +7193,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -5434,7 +5410,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref GT-9300UF USB -@@ -7204,7 +7203,7 @@ +@@ -7204,7 +7203,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -5443,7 +5419,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref GT-9400UF USB -@@ -7214,7 +7213,7 @@ +@@ -7214,7 +7213,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -5452,7 +5428,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref GT-9500 SCSI -@@ -7224,7 +7223,7 @@ +@@ -7224,7 +7223,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -5461,7 +5437,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref GT-9600 SCSI -@@ -7234,7 +7233,7 @@ +@@ -7234,7 +7233,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -5470,7 +5446,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref GT-9700F USB -@@ -7244,7 +7243,7 @@ +@@ -7244,7 +7243,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -5479,7 +5455,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref GT-9800F USB -@@ -7254,7 +7253,7 @@ +@@ -7254,7 +7253,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -5488,7 +5464,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref GT-10000 SCSI -@@ -7264,7 +7263,7 @@ +@@ -7264,7 +7263,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -5497,7 +5473,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref GT-10000+ SCSI -@@ -7274,7 +7273,7 @@ +@@ -7274,7 +7273,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -5506,7 +5482,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref GT-12000 SCSI -@@ -7284,7 +7283,7 @@ +@@ -7284,7 +7283,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -5515,7 +5491,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref GT-15000 SCSI USB -@@ -7294,7 +7293,7 @@ +@@ -7294,7 +7293,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -5524,7 +5500,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref GT-20000 USB Ethernet -@@ -7304,7 +7303,7 @@ +@@ -7304,7 +7303,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -5533,7 +5509,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref GT-30000 SCSI -@@ -7314,7 +7313,7 @@ +@@ -7314,7 +7313,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -5542,7 +5518,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref GT-D1000 USB -@@ -7324,7 +7323,7 @@ +@@ -7324,7 +7323,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -5551,7 +5527,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref GT-F500 USB -@@ -7334,7 +7333,7 @@ +@@ -7334,7 +7333,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -5560,7 +5536,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref GT-F520 USB -@@ -7344,7 +7343,7 @@ +@@ -7344,7 +7343,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -5569,7 +5545,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref GT-F550 USB -@@ -7354,7 +7353,7 @@ +@@ -7354,7 +7353,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -5578,7 +5554,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref GT-F570 USB -@@ -7364,7 +7363,7 @@ +@@ -7364,7 +7363,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -5587,7 +5563,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref GT-F600 USB -@@ -7374,7 +7373,7 @@ +@@ -7374,7 +7373,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -5596,7 +5572,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref GT-F650 USB -@@ -7384,7 +7383,7 @@ +@@ -7384,7 +7383,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -5605,7 +5581,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref GT-F670 USB -@@ -7394,7 +7393,7 @@ +@@ -7394,7 +7393,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -5614,7 +5590,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref GT-F700 USB -@@ -7404,7 +7403,7 @@ +@@ -7404,7 +7403,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -5623,7 +5599,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref GT-F720 USB -@@ -7414,7 +7413,7 @@ +@@ -7414,7 +7413,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -5632,7 +5608,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref GT-S50 USB -@@ -7424,7 +7423,7 @@ +@@ -7424,7 +7423,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -5641,7 +5617,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref GT-S80 USB -@@ -7434,7 +7433,7 @@ +@@ -7434,7 +7433,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -5650,7 +5626,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref GT-S600 USB -@@ -7444,7 +7443,7 @@ +@@ -7444,7 +7443,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -5659,7 +5635,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref GT-S620 USB -@@ -7454,7 +7453,7 @@ +@@ -7454,7 +7453,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -5668,7 +5644,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref GT-X700 USB -@@ -7464,7 +7463,7 @@ +@@ -7464,7 +7463,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -5677,7 +5653,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref GT-X750 USB -@@ -7474,7 +7473,7 @@ +@@ -7474,7 +7473,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -5686,7 +5662,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref GT-X770 USB -@@ -7484,7 +7483,7 @@ +@@ -7484,7 +7483,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -5695,7 +5671,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref GT-X800 USB -@@ -7494,7 +7493,7 @@ +@@ -7494,7 +7493,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -5704,7 +5680,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref GT-X820 USB -@@ -7504,7 +7503,7 @@ +@@ -7504,7 +7503,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -5713,7 +5689,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref GT-X900 USB -@@ -7514,7 +7513,7 @@ +@@ -7514,7 +7513,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -5722,7 +5698,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref GT-X970 USB -@@ -7524,7 +7523,7 @@ +@@ -7524,7 +7523,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -5731,7 +5707,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref LP-7900CS ? -@@ -7534,7 +7533,7 @@ +@@ -7534,7 +7533,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -5740,7 +5716,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref LP-9000CCH ? -@@ -7544,7 +7543,7 @@ +@@ -7544,7 +7543,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -5749,7 +5725,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref LP-9000CCS ? -@@ -7554,7 +7553,7 @@ +@@ -7554,7 +7553,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -5758,7 +5734,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref LP-9000CFH ? -@@ -7564,7 +7563,7 @@ +@@ -7564,7 +7563,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -5767,7 +5743,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref LP-9500CCS ? -@@ -7574,7 +7573,7 @@ +@@ -7574,7 +7573,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -5776,7 +5752,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref LP-9500CFH ? -@@ -7584,7 +7583,7 @@ +@@ -7584,7 +7583,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -5785,7 +5761,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref LP-9500CH2 ? -@@ -7594,7 +7593,7 @@ +@@ -7594,7 +7593,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -5794,7 +5770,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref LP-9800CCH ? -@@ -7604,7 +7603,7 @@ +@@ -7604,7 +7603,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -5803,7 +5779,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref LP-9800CCS ? -@@ -7614,7 +7613,7 @@ +@@ -7614,7 +7613,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -5812,7 +5788,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref LP-9800CFH ? -@@ -7624,7 +7623,7 @@ +@@ -7624,7 +7623,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -5821,7 +5797,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref LP-A500 USB Network -@@ -7634,7 +7633,7 @@ +@@ -7634,7 +7633,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -5830,7 +5806,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref LP-M5000 USB -@@ -7644,7 +7643,7 @@ +@@ -7644,7 +7643,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -5839,7 +5815,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref LP-M5500 USB -@@ -7654,7 +7653,7 @@ +@@ -7654,7 +7653,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -5848,7 +5824,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref LP-M5500F USB -@@ -7664,7 +7663,7 @@ +@@ -7664,7 +7663,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -5857,7 +5833,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref LP-M5600 USB -@@ -7674,7 +7673,7 @@ +@@ -7674,7 +7673,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -5866,7 +5842,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref LP-M6000 USB -@@ -7684,7 +7683,7 @@ +@@ -7684,7 +7683,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -5875,7 +5851,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ME 200 USB -@@ -7694,7 +7693,7 @@ +@@ -7694,7 +7693,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -5884,7 +5860,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ME 300 USB -@@ -7704,7 +7703,7 @@ +@@ -7704,7 +7703,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -5893,7 +5869,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ME OFFICE 510 USB -@@ -7714,7 +7713,7 @@ +@@ -7714,7 +7713,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -5902,7 +5878,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ME Office 600F USB -@@ -7724,7 +7723,7 @@ +@@ -7724,7 +7723,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -5911,7 +5887,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ME OFFICE 650FN Series USB -@@ -7734,7 +7733,7 @@ +@@ -7734,7 +7733,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -5920,7 +5896,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ME Office 700FW USB -@@ -7744,7 +7743,7 @@ +@@ -7744,7 +7743,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -5929,7 +5905,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Perfection 600 SCSI -@@ -7755,7 +7754,7 @@ +@@ -7755,7 +7754,7 @@ epson2
(1.0.124) umax
(1.0-41) @@ -5938,7 +5914,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Perfection 610 USB -@@ -7765,7 +7764,7 @@ +@@ -7765,7 +7764,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -5947,7 +5923,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Perfection 610 USB -@@ -7776,7 +7775,7 @@ +@@ -7776,7 +7775,7 @@ epson2
(1.0.124) epson
(unmaintained) @@ -5956,7 +5932,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Perfection 636 SCSI -@@ -7787,7 +7786,7 @@ +@@ -7787,7 +7786,7 @@ epson2
(1.0.124) epson
(unmaintained) @@ -5965,7 +5941,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Perfection 636S SCSI -@@ -7797,7 +7796,7 @@ +@@ -7797,7 +7796,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -5974,7 +5950,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Perfection 636S SCSI -@@ -7808,7 +7807,7 @@ +@@ -7808,7 +7807,7 @@ epson2
(1.0.124) epson
(unmaintained) @@ -5983,7 +5959,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Perfection 636U USB -@@ -7818,7 +7817,7 @@ +@@ -7818,7 +7817,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -5992,7 +5968,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Perfection 636U USB -@@ -7829,7 +7828,7 @@ +@@ -7829,7 +7828,7 @@ epson2
(1.0.124) epson
(unmaintained) @@ -6001,7 +5977,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Perfection 640 USB -@@ -7840,7 +7839,7 @@ +@@ -7840,7 +7839,7 @@ epson2
(1.0.124) epson
(unmaintained) @@ -6010,7 +5986,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Perfection 640U USB -@@ -7850,7 +7849,7 @@ +@@ -7850,7 +7849,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -6019,7 +5995,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Perfection 660 USB -@@ -7861,7 +7860,7 @@ +@@ -7861,7 +7860,7 @@ epson2
(1.0.124) SnapScan
(1.4) @@ -6028,7 +6004,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Perfection 1200Photo USB -@@ -7872,7 +7871,7 @@ +@@ -7872,7 +7871,7 @@ epson2
(1.0.124) epson
(unmaintained) @@ -6037,7 +6013,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Perfection 1200S SCSI -@@ -7882,7 +7881,7 @@ +@@ -7882,7 +7881,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -6046,7 +6022,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Perfection 1200S SCSI -@@ -7893,7 +7892,7 @@ +@@ -7893,7 +7892,7 @@ epson2
(1.0.124) epson
(unmaintained) @@ -6055,7 +6031,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Perfection 1200U USB -@@ -7903,7 +7902,7 @@ +@@ -7903,7 +7902,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -6064,7 +6040,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Perfection 1200U USB -@@ -7914,7 +7913,7 @@ +@@ -7914,7 +7913,7 @@ epson2
(1.0.124) epson
(unmaintained) @@ -6073,7 +6049,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Perfection 1200U PHOTO USB -@@ -7924,7 +7923,7 @@ +@@ -7924,7 +7923,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -6082,7 +6058,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Perfection 1240 SCSI USB -@@ -7935,7 +7934,7 @@ +@@ -7935,7 +7934,7 @@ epson2
(1.0.124) epson
(unmaintained) @@ -6091,7 +6067,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Perfection 1240U USB -@@ -7945,7 +7944,7 @@ +@@ -7945,7 +7944,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -6100,7 +6076,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Perfection 1250 USB -@@ -7956,7 +7955,7 @@ +@@ -7956,7 +7955,7 @@ epson2
(1.0.124) plustek
(0.52) @@ -6109,7 +6085,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Perfection 1250 PHOTO USB -@@ -7966,7 +7965,7 @@ +@@ -7966,7 +7965,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -6118,7 +6094,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Perfection 1250Photo USB -@@ -7977,7 +7976,7 @@ +@@ -7977,7 +7976,7 @@ epson2
(1.0.124) plustek
(0.52) @@ -6127,7 +6103,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Perfection 1260 USB -@@ -7988,7 +7987,7 @@ +@@ -7988,7 +7987,7 @@ epson2
(1.0.124) plustek
(0.52) @@ -6136,7 +6112,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Perfection 1260 PHOTO USB -@@ -7998,7 +7997,7 @@ +@@ -7998,7 +7997,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -6145,7 +6121,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Perfection 1260Photo USB -@@ -8009,7 +8008,7 @@ +@@ -8009,7 +8008,7 @@ epson2
(1.0.124) plustek
(0.52) @@ -6154,7 +6130,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Perfection 1270 USB -@@ -8020,7 +8019,7 @@ +@@ -8020,7 +8019,7 @@ epson2
(1.0.124) SnapScan
(1.4) @@ -6163,7 +6139,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Perfection 1600 SCSI -@@ -8030,7 +8029,7 @@ +@@ -8030,7 +8029,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -6172,7 +6148,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Perfection 1640 SCSI USB -@@ -8041,7 +8040,7 @@ +@@ -8041,7 +8040,7 @@ epson2
(1.0.124) epson
(unmaintained) @@ -6181,7 +6157,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Perfection 1640SU SCSI USB -@@ -8051,7 +8050,7 @@ +@@ -8051,7 +8050,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -6190,7 +6166,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Perfection 1640SU PHOTO SCSI USB -@@ -8061,7 +8060,7 @@ +@@ -8061,7 +8060,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -6199,7 +6175,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Perfection 1650 USB -@@ -8071,7 +8070,7 @@ +@@ -8071,7 +8070,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -6208,7 +6184,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Perfection 1650 USB -@@ -8082,7 +8081,7 @@ +@@ -8082,7 +8081,7 @@ epson2
(1.0.124) epson
(unmaintained) @@ -6217,7 +6193,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Perfection 1650 PHOTO USB -@@ -8092,7 +8091,7 @@ +@@ -8092,7 +8091,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -6226,7 +6202,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Perfection 1660 USB -@@ -8103,7 +8102,7 @@ +@@ -8103,7 +8102,7 @@ epson2
(1.0.124) epson
(unmaintained) @@ -6235,7 +6211,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Perfection 1660 PHOTO USB -@@ -8113,7 +8112,7 @@ +@@ -8113,7 +8112,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -6244,7 +6220,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Perfection 1670 USB -@@ -8124,7 +8123,7 @@ +@@ -8124,7 +8123,7 @@ epson2
(1.0.124) SnapScan
(1.4) @@ -6253,7 +6229,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Perfection 1670 PHOTO USB -@@ -8134,7 +8133,7 @@ +@@ -8134,7 +8133,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -6262,7 +6238,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Perfection 2400 USB -@@ -8145,7 +8144,7 @@ +@@ -8145,7 +8144,7 @@ epson2
(1.0.124) epson
(unmaintained) @@ -6271,7 +6247,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Perfection 2400 PHOTO USB -@@ -8155,7 +8154,7 @@ +@@ -8155,7 +8154,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -6280,7 +6256,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Perfection 2450 USB IEEE-1394 -@@ -8166,7 +8165,7 @@ +@@ -8166,7 +8165,7 @@ epson2
(1.0.124) epson
(unmaintained) @@ -6289,7 +6265,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Perfection 2450 PHOTO USB IEEE-1394 -@@ -8176,7 +8175,7 @@ +@@ -8176,7 +8175,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -6298,7 +6274,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Perfection 2480 USB -@@ -8187,7 +8186,7 @@ +@@ -8187,7 +8186,7 @@ epson2
(1.0.124) SnapScan
(1.4) @@ -6307,7 +6283,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Perfection 2480 PHOTO USB -@@ -8197,7 +8196,7 @@ +@@ -8197,7 +8196,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -6316,7 +6292,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Perfection 2580 USB -@@ -8208,7 +8207,7 @@ +@@ -8208,7 +8207,7 @@ epson2
(1.0.124) SnapScan
(1.4) @@ -6325,7 +6301,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Perfection 2580 PHOTO USB -@@ -8218,7 +8217,7 @@ +@@ -8218,7 +8217,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -6334,7 +6310,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Perfection 3170 PHOTO USB -@@ -8228,7 +8227,7 @@ +@@ -8228,7 +8227,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -6343,7 +6319,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Perfection 3200 USB IEEE-1394 -@@ -8239,7 +8238,7 @@ +@@ -8239,7 +8238,7 @@ epson2
(1.0.124) epson
(unmaintained) @@ -6352,7 +6328,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Perfection 3200 PHOTO USB IEEE-1394 -@@ -8249,7 +8248,7 @@ +@@ -8249,7 +8248,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -6361,7 +6337,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Perfection 3490 USB -@@ -8260,7 +8259,7 @@ +@@ -8260,7 +8259,7 @@ epson2
(1.0.124) SnapScan
(1.4) @@ -6370,7 +6346,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Perfection 3490 PHOTO USB -@@ -8270,7 +8269,7 @@ +@@ -8270,7 +8269,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -6379,7 +6355,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Perfection 3590 USB -@@ -8281,7 +8280,7 @@ +@@ -8281,7 +8280,7 @@ epson2
(1.0.124) SnapScan
(1.4) @@ -6388,7 +6364,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Perfection 3590 PHOTO USB -@@ -8291,7 +8290,7 @@ +@@ -8291,7 +8290,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -6397,7 +6373,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Perfection 4180 PHOTO USB -@@ -8301,7 +8300,7 @@ +@@ -8301,7 +8300,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -6406,7 +6382,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Perfection 4490 PHOTO USB -@@ -8311,7 +8310,7 @@ +@@ -8311,7 +8310,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -6415,7 +6391,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Perfection 4870 USB -@@ -8322,7 +8321,7 @@ +@@ -8322,7 +8321,7 @@ epson2
(1.0.124) epson
(unmaintained) @@ -6424,7 +6400,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Perfection 4870 PHOTO USB -@@ -8332,7 +8331,7 @@ +@@ -8332,7 +8331,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -6433,7 +6409,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Perfection 4990 USB -@@ -8343,7 +8342,7 @@ +@@ -8343,7 +8342,7 @@ epson2
(1.0.124) epson
(unmaintained) @@ -6442,7 +6418,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Perfection 4990 PHOTO USB -@@ -8353,7 +8352,7 @@ +@@ -8353,7 +8352,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -6451,7 +6427,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Perfection 4990 Pro USB IEEE1394 -@@ -8363,7 +8362,7 @@ +@@ -8363,7 +8362,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -6460,7 +6436,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Perfection V10 USB -@@ -8373,7 +8372,7 @@ +@@ -8373,7 +8372,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -6469,7 +6445,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Perfection V30 USB -@@ -8383,7 +8382,7 @@ +@@ -8383,7 +8382,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -6478,7 +6454,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Perfection V100 Photo USB -@@ -8393,7 +8392,7 @@ +@@ -8393,7 +8392,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -6487,7 +6463,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Perfection V200 Photo USB -@@ -8403,7 +8402,7 @@ +@@ -8403,7 +8402,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -6496,7 +6472,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Perfection V300 Photo USB -@@ -8413,7 +8412,7 @@ +@@ -8413,7 +8412,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -6505,7 +6481,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Perfection V350 Photo USB -@@ -8423,7 +8422,7 @@ +@@ -8423,7 +8422,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -6514,7 +6490,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Perfection V500 Photo USB -@@ -8433,7 +8432,7 @@ +@@ -8433,7 +8432,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -6523,7 +6499,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Perfection V600 Photo USB -@@ -8443,7 +8442,7 @@ +@@ -8443,7 +8442,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -6532,7 +6508,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Perfection V700 Photo USB -@@ -8453,7 +8452,7 @@ +@@ -8453,7 +8452,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -6541,7 +6517,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Perfection V750 Photo USB -@@ -8463,7 +8462,7 @@ +@@ -8463,7 +8462,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -6550,7 +6526,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref PM-A700 USB -@@ -8473,7 +8472,7 @@ +@@ -8473,7 +8472,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -6559,7 +6535,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref PM-A750 USB -@@ -8483,7 +8482,7 @@ +@@ -8483,7 +8482,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -6568,7 +6544,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref PM-A820 USB -@@ -8493,7 +8492,7 @@ +@@ -8493,7 +8492,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -6577,7 +6553,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref PM-A840 USB -@@ -8503,7 +8502,7 @@ +@@ -8503,7 +8502,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -6586,7 +6562,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref PM-A840S USB -@@ -8513,7 +8512,7 @@ +@@ -8513,7 +8512,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -6595,7 +6571,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref PM-A850 USB -@@ -8523,7 +8522,7 @@ +@@ -8523,7 +8522,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -6604,7 +6580,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref PM-A870 USB -@@ -8533,7 +8532,7 @@ +@@ -8533,7 +8532,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -6613,7 +6589,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref PM-A890 USB -@@ -8543,7 +8542,7 @@ +@@ -8543,7 +8542,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -6622,7 +6598,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref PM-A900 USB -@@ -8553,7 +8552,7 @@ +@@ -8553,7 +8552,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -6631,7 +6607,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref PM-A920 USB -@@ -8563,7 +8562,7 @@ +@@ -8563,7 +8562,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -6640,7 +6616,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref PM-A940 USB -@@ -8573,7 +8572,7 @@ +@@ -8573,7 +8572,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -6649,7 +6625,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref PM-A950 USB -@@ -8583,7 +8582,7 @@ +@@ -8583,7 +8582,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -6658,7 +6634,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref PM-A970 USB -@@ -8593,7 +8592,7 @@ +@@ -8593,7 +8592,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -6667,7 +6643,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref PM-T960 USB -@@ -8603,7 +8602,7 @@ +@@ -8603,7 +8602,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -6676,7 +6652,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref PM-T990 USB -@@ -8613,7 +8612,7 @@ +@@ -8613,7 +8612,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -6685,7 +6661,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref PX-401A USB -@@ -8623,7 +8622,7 @@ +@@ -8623,7 +8622,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -6694,7 +6670,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref PX-402A USB -@@ -8633,7 +8632,7 @@ +@@ -8633,7 +8632,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -6703,7 +6679,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref PX-501A USB -@@ -8643,7 +8642,7 @@ +@@ -8643,7 +8642,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -6712,7 +6688,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref PX-502A USB -@@ -8653,7 +8652,7 @@ +@@ -8653,7 +8652,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -6721,7 +6697,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref PX-601F USB -@@ -8663,7 +8662,7 @@ +@@ -8663,7 +8662,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -6730,7 +6706,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref PX-A550 USB -@@ -8673,7 +8672,7 @@ +@@ -8673,7 +8672,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -6739,7 +6715,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref PX-A620 USB -@@ -8683,7 +8682,7 @@ +@@ -8683,7 +8682,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -6748,7 +6724,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref PX-A640 USB -@@ -8693,7 +8692,7 @@ +@@ -8693,7 +8692,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -6757,7 +6733,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref PX-A650 USB -@@ -8703,7 +8702,7 @@ +@@ -8703,7 +8702,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -6766,7 +6742,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref PX-A720 USB -@@ -8713,7 +8712,7 @@ +@@ -8713,7 +8712,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -6775,7 +6751,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref PX-A740 USB -@@ -8723,7 +8722,7 @@ +@@ -8723,7 +8722,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -6784,7 +6760,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref PX-FA700 USB -@@ -8733,7 +8732,7 @@ +@@ -8733,7 +8732,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -6793,7 +6769,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref RX-425 USB -@@ -8744,7 +8743,7 @@ +@@ -8744,7 +8743,7 @@ epson2
(1.0.124) epson
(unmaintained) @@ -6802,7 +6778,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref RX-500 USB -@@ -8755,7 +8754,7 @@ +@@ -8755,7 +8754,7 @@ epson2
(1.0.124) epson
(unmaintained) @@ -6811,7 +6787,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref RX-600 USB -@@ -8766,7 +8765,7 @@ +@@ -8766,7 +8765,7 @@ epson2
(1.0.124) epson
(unmaintained) @@ -6820,7 +6796,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref RX-620 USB -@@ -8777,7 +8776,7 @@ +@@ -8777,7 +8776,7 @@ epson2
(1.0.124) epson
(unmaintained) @@ -6829,7 +6805,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref RX-700 USB -@@ -8788,7 +8787,7 @@ +@@ -8788,7 +8787,7 @@ epson2
(1.0.124) epson
(unmaintained) @@ -6838,7 +6814,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Stylus CX-1500 USB -@@ -8799,7 +8798,7 @@ +@@ -8799,7 +8798,7 @@ epson2
(1.0.124) SnapScan
(1.4) @@ -6847,7 +6823,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Stylus CX-5800 USB -@@ -8820,7 +8819,7 @@ +@@ -8820,7 +8819,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -6856,7 +6832,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Stylus CX2800 USB -@@ -8830,7 +8829,7 @@ +@@ -8830,7 +8829,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -6865,7 +6841,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Stylus CX2900 USB -@@ -8840,7 +8839,7 @@ +@@ -8840,7 +8839,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -6874,7 +6850,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Stylus CX3100 USB -@@ -8850,7 +8849,7 @@ +@@ -8850,7 +8849,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -6883,7 +6859,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Stylus CX3200 USB -@@ -8860,7 +8859,7 @@ +@@ -8860,7 +8859,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -6892,7 +6868,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Stylus CX3500 USB -@@ -8870,7 +8869,7 @@ +@@ -8870,7 +8869,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -6901,7 +6877,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Stylus CX3600 USB -@@ -8880,7 +8879,7 @@ +@@ -8880,7 +8879,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -6910,7 +6886,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Stylus CX3650 USB -@@ -8890,7 +8889,7 @@ +@@ -8890,7 +8889,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -6919,7 +6895,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Stylus CX3700 USB -@@ -8900,7 +8899,7 @@ +@@ -8900,7 +8899,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -6928,7 +6904,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Stylus CX3800 USB -@@ -8910,7 +8909,7 @@ +@@ -8910,7 +8909,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -6937,7 +6913,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Stylus CX3810 USB -@@ -8920,7 +8919,7 @@ +@@ -8920,7 +8919,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -6946,7 +6922,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Stylus CX3900 USB -@@ -8930,7 +8929,7 @@ +@@ -8930,7 +8929,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -6955,7 +6931,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Stylus CX4100 USB -@@ -8940,7 +8939,7 @@ +@@ -8940,7 +8939,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -6964,7 +6940,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Stylus CX4200 USB -@@ -8950,7 +8949,7 @@ +@@ -8950,7 +8949,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -6973,7 +6949,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Stylus CX4300 USB -@@ -8960,7 +8959,7 @@ +@@ -8960,7 +8959,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -6982,7 +6958,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Stylus CX4400 USB -@@ -8970,7 +8969,7 @@ +@@ -8970,7 +8969,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -6991,7 +6967,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Stylus CX4500 USB -@@ -8980,7 +8979,7 @@ +@@ -8980,7 +8979,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -7000,7 +6976,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Stylus CX4600 USB -@@ -8990,7 +8989,7 @@ +@@ -8990,7 +8989,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -7009,7 +6985,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Stylus CX4700 USB -@@ -9000,7 +8999,7 @@ +@@ -9000,7 +8999,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -7018,7 +6994,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Stylus CX4800 USB -@@ -9010,7 +9009,7 @@ +@@ -9010,7 +9009,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -7027,7 +7003,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Stylus CX4900 USB -@@ -9020,7 +9019,7 @@ +@@ -9020,7 +9019,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -7036,7 +7012,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Stylus CX5000 USB -@@ -9030,7 +9029,7 @@ +@@ -9030,7 +9029,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -7045,7 +7021,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Stylus CX5100 USB -@@ -9040,7 +9039,7 @@ +@@ -9040,7 +9039,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -7054,7 +7030,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Stylus CX5200 USB -@@ -9050,7 +9049,7 @@ +@@ -9050,7 +9049,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -7063,7 +7039,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Stylus CX5300 USB -@@ -9060,7 +9059,7 @@ +@@ -9060,7 +9059,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -7072,7 +7048,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Stylus CX5400 USB -@@ -9070,7 +9069,7 @@ +@@ -9070,7 +9069,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -7081,7 +7057,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Stylus CX5500 USB -@@ -9080,7 +9079,7 @@ +@@ -9080,7 +9079,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -7090,7 +7066,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Stylus CX5600 USB -@@ -9090,7 +9089,7 @@ +@@ -9090,7 +9089,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -7099,7 +7075,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Stylus CX5700F USB -@@ -9100,7 +9099,7 @@ +@@ -9100,7 +9099,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -7108,7 +7084,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Stylus CX5800F USB -@@ -9110,7 +9109,7 @@ +@@ -9110,7 +9109,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -7117,7 +7093,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Stylus CX5900 USB -@@ -9120,7 +9119,7 @@ +@@ -9120,7 +9119,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -7126,7 +7102,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Stylus CX6000 USB -@@ -9130,7 +9129,7 @@ +@@ -9130,7 +9129,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -7135,7 +7111,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Stylus CX6300 USB -@@ -9140,7 +9139,7 @@ +@@ -9140,7 +9139,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -7144,7 +7120,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Stylus CX6400 USB -@@ -9150,7 +9149,7 @@ +@@ -9150,7 +9149,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -7153,7 +7129,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Stylus CX6500 USB -@@ -9160,7 +9159,7 @@ +@@ -9160,7 +9159,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -7162,7 +7138,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Stylus CX6600 USB -@@ -9170,7 +9169,7 @@ +@@ -9170,7 +9169,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -7171,7 +7147,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Stylus CX6900F USB -@@ -9180,7 +9179,7 @@ +@@ -9180,7 +9179,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -7180,7 +7156,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Stylus CX7000F USB -@@ -9190,7 +9189,7 @@ +@@ -9190,7 +9189,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -7189,7 +7165,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Stylus CX7300 USB -@@ -9200,7 +9199,7 @@ +@@ -9200,7 +9199,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -7198,7 +7174,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Stylus CX7400 USB -@@ -9210,7 +9209,7 @@ +@@ -9210,7 +9209,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -7207,7 +7183,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Stylus CX7700 USB -@@ -9220,7 +9219,7 @@ +@@ -9220,7 +9219,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -7216,7 +7192,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Stylus CX7800 USB -@@ -9230,7 +9229,7 @@ +@@ -9230,7 +9229,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -7225,7 +7201,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Stylus CX8300 USB -@@ -9240,7 +9239,7 @@ +@@ -9240,7 +9239,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -7234,7 +7210,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Stylus CX8400 USB -@@ -9250,7 +9249,7 @@ +@@ -9250,7 +9249,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -7243,7 +7219,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Stylus CX9300F USB -@@ -9260,7 +9259,7 @@ +@@ -9260,7 +9259,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -7252,7 +7228,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Stylus CX9400Fax USB -@@ -9270,7 +9269,7 @@ +@@ -9270,7 +9269,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -7261,7 +7237,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Stylus DX3800 USB -@@ -9280,7 +9279,7 @@ +@@ -9280,7 +9279,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -7270,7 +7246,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Stylus DX3850 USB -@@ -9290,7 +9289,7 @@ +@@ -9290,7 +9289,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -7279,7 +7255,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Stylus DX4000 USB -@@ -9300,7 +9299,7 @@ +@@ -9300,7 +9299,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -7288,7 +7264,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Stylus DX4200 USB -@@ -9310,7 +9309,7 @@ +@@ -9310,7 +9309,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -7297,7 +7273,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Stylus DX4400 USB -@@ -9320,7 +9319,7 @@ +@@ -9320,7 +9319,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -7306,7 +7282,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Stylus DX4450 USB -@@ -9341,7 +9340,7 @@ +@@ -9341,7 +9340,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -7315,7 +7291,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Stylus DX4850 USB -@@ -9351,7 +9350,7 @@ +@@ -9351,7 +9350,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -7324,7 +7300,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Stylus DX5000 USB -@@ -9361,7 +9360,7 @@ +@@ -9361,7 +9360,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -7333,7 +7309,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Stylus DX6000 USB -@@ -9371,7 +9370,7 @@ +@@ -9371,7 +9370,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -7342,7 +7318,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Stylus DX7000F USB -@@ -9381,7 +9380,7 @@ +@@ -9381,7 +9380,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -7351,7 +7327,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Stylus DX7400 USB -@@ -9391,7 +9390,7 @@ +@@ -9391,7 +9390,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -7360,7 +7336,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Stylus DX8400 USB -@@ -9401,7 +9400,7 @@ +@@ -9401,7 +9400,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -7369,7 +7345,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Stylus DX9400F USB -@@ -9411,7 +9410,7 @@ +@@ -9411,7 +9410,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -7378,7 +7354,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Stylus NX100 USB -@@ -9421,7 +9420,7 @@ +@@ -9421,7 +9420,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -7387,7 +7363,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Stylus NX110 Series USB -@@ -9431,7 +9430,7 @@ +@@ -9431,7 +9430,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -7396,7 +7372,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Stylus NX200 USB -@@ -9441,7 +9440,7 @@ +@@ -9441,7 +9440,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -7405,7 +7381,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Stylus NX210 Series USB -@@ -9451,7 +9450,7 @@ +@@ -9451,7 +9450,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -7414,7 +7390,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Stylus NX300 USB -@@ -9461,7 +9460,7 @@ +@@ -9461,7 +9460,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -7423,7 +7399,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Stylus NX400 USB -@@ -9471,7 +9470,7 @@ +@@ -9471,7 +9470,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -7432,7 +7408,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Stylus NX410 Series USB -@@ -9481,7 +9480,7 @@ +@@ -9481,7 +9480,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -7441,7 +7417,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Stylus NX510 Series USB -@@ -9491,7 +9490,7 @@ +@@ -9491,7 +9490,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -7450,7 +7426,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Stylus Office BX300F USB -@@ -9501,7 +9500,7 @@ +@@ -9501,7 +9500,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -7459,7 +7435,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Stylus Office BX310FN Series USB -@@ -9511,7 +9510,7 @@ +@@ -9511,7 +9510,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -7468,7 +7444,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Stylus Office BX600FW USB -@@ -9521,7 +9520,7 @@ +@@ -9521,7 +9520,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -7477,7 +7453,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Stylus Office BX610FW Series USB -@@ -9531,7 +9530,7 @@ +@@ -9531,7 +9530,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -7486,7 +7462,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Stylus Office TX300F USB -@@ -9541,7 +9540,7 @@ +@@ -9541,7 +9540,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -7495,7 +7471,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Stylus Office TX510FN Series USB -@@ -9551,7 +9550,7 @@ +@@ -9551,7 +9550,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -7504,7 +7480,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Stylus Office TX600FW USB -@@ -9561,7 +9560,7 @@ +@@ -9561,7 +9560,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -7513,7 +7489,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Stylus Office TX610FW Series USB -@@ -9571,7 +9570,7 @@ +@@ -9571,7 +9570,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -7522,7 +7498,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Stylus Photo PX650 Series USB -@@ -9581,7 +9580,7 @@ +@@ -9581,7 +9580,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -7531,7 +7507,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Stylus Photo PX700W USB Network -@@ -9591,7 +9590,7 @@ +@@ -9591,7 +9590,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -7540,7 +7516,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Stylus Photo PX710W Series USB -@@ -9601,7 +9600,7 @@ +@@ -9601,7 +9600,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -7549,7 +7525,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Stylus Photo PX800FW USB -@@ -9611,7 +9610,7 @@ +@@ -9611,7 +9610,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -7558,7 +7534,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Stylus Photo PX810FW Series USB -@@ -9621,7 +9620,7 @@ +@@ -9621,7 +9620,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -7567,7 +7543,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Stylus Photo RX420 USB -@@ -9631,7 +9630,7 @@ +@@ -9631,7 +9630,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -7576,7 +7552,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Stylus Photo RX425 USB -@@ -9641,7 +9640,7 @@ +@@ -9641,7 +9640,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -7585,7 +7561,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Stylus Photo RX430 USB -@@ -9651,7 +9650,7 @@ +@@ -9651,7 +9650,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -7594,7 +7570,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Stylus Photo RX500 USB -@@ -9661,7 +9660,7 @@ +@@ -9661,7 +9660,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -7603,7 +7579,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Stylus Photo RX510 USB -@@ -9671,7 +9670,7 @@ +@@ -9671,7 +9670,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -7612,7 +7588,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Stylus Photo RX520 USB -@@ -9681,7 +9680,7 @@ +@@ -9681,7 +9680,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -7621,7 +7597,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Stylus Photo RX530 USB -@@ -9691,7 +9690,7 @@ +@@ -9691,7 +9690,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -7630,7 +7606,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Stylus Photo RX560 USB -@@ -9701,7 +9700,7 @@ +@@ -9701,7 +9700,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -7639,7 +7615,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Stylus Photo RX580 USB -@@ -9711,7 +9710,7 @@ +@@ -9711,7 +9710,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -7648,7 +7624,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Stylus Photo RX585 USB -@@ -9721,7 +9720,7 @@ +@@ -9721,7 +9720,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -7657,7 +7633,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Stylus Photo RX590 USB -@@ -9731,7 +9730,7 @@ +@@ -9731,7 +9730,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -7666,7 +7642,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Stylus Photo RX595 USB -@@ -9741,7 +9740,7 @@ +@@ -9741,7 +9740,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -7675,7 +7651,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Stylus Photo RX600 USB -@@ -9751,7 +9750,7 @@ +@@ -9751,7 +9750,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -7684,7 +7660,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Stylus Photo RX610 USB -@@ -9761,7 +9760,7 @@ +@@ -9761,7 +9760,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -7693,7 +7669,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Stylus Photo RX620 USB -@@ -9771,7 +9770,7 @@ +@@ -9771,7 +9770,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -7702,7 +7678,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Stylus Photo RX630 USB -@@ -9781,7 +9780,7 @@ +@@ -9781,7 +9780,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -7711,7 +7687,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Stylus Photo RX640 USB -@@ -9791,7 +9790,7 @@ +@@ -9791,7 +9790,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -7720,7 +7696,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Stylus Photo RX650 USB -@@ -9801,7 +9800,7 @@ +@@ -9801,7 +9800,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -7729,7 +7705,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Stylus Photo RX680 USB -@@ -9811,7 +9810,7 @@ +@@ -9811,7 +9810,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -7738,7 +7714,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Stylus Photo RX685 USB -@@ -9821,7 +9820,7 @@ +@@ -9821,7 +9820,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -7747,7 +7723,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Stylus Photo RX690 USB -@@ -9831,7 +9830,7 @@ +@@ -9831,7 +9830,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -7756,7 +7732,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Stylus Photo RX700 USB -@@ -9841,7 +9840,7 @@ +@@ -9841,7 +9840,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -7765,7 +7741,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Stylus Photo TX650 Series USB -@@ -9851,7 +9850,7 @@ +@@ -9851,7 +9850,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -7774,7 +7750,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Stylus Photo TX700W USB -@@ -9861,7 +9860,7 @@ +@@ -9861,7 +9860,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -7783,7 +7759,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Stylus Photo TX710W Series USB -@@ -9871,7 +9870,7 @@ +@@ -9871,7 +9870,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -7792,7 +7768,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Stylus Photo TX800FW USB -@@ -9881,7 +9880,7 @@ +@@ -9881,7 +9880,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -7801,7 +7777,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Stylus Scan 2000 USB -@@ -9891,7 +9890,7 @@ +@@ -9891,7 +9890,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -7810,7 +7786,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Stylus Scan 2500 USB -@@ -9901,7 +9900,7 @@ +@@ -9901,7 +9900,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -7819,7 +7795,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Stylus SX100 USB -@@ -9911,7 +9910,7 @@ +@@ -9911,7 +9910,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -7828,7 +7804,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Stylus SX110 Series USB -@@ -9921,7 +9920,7 @@ +@@ -9921,7 +9920,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -7837,7 +7813,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Stylus SX125 USB -@@ -9931,7 +9930,7 @@ +@@ -9931,7 +9930,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -7846,7 +7822,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Stylus SX200 USB -@@ -9941,7 +9940,7 @@ +@@ -9941,7 +9940,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -7855,7 +7831,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Stylus SX205 USB -@@ -9951,7 +9950,7 @@ +@@ -9951,7 +9950,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -7864,7 +7840,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Stylus SX210 Series USB -@@ -9961,7 +9960,7 @@ +@@ -9961,7 +9960,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -7873,7 +7849,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Stylus SX400 USB -@@ -9971,7 +9970,7 @@ +@@ -9971,7 +9970,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -7882,7 +7858,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Stylus SX405 USB -@@ -9981,7 +9980,7 @@ +@@ -9981,7 +9980,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -7891,7 +7867,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Stylus SX410 Series USB -@@ -9991,7 +9990,7 @@ +@@ -9991,7 +9990,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -7900,7 +7876,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Stylus SX510W Series USB -@@ -10001,7 +10000,7 @@ +@@ -10001,7 +10000,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -7909,7 +7885,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Stylus SX600FW USB -@@ -10011,7 +10010,7 @@ +@@ -10011,7 +10010,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -7918,7 +7894,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Stylus SX610FW Series USB -@@ -10021,7 +10020,7 @@ +@@ -10021,7 +10020,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -7927,7 +7903,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Stylus TX100 USB -@@ -10031,7 +10030,7 @@ +@@ -10031,7 +10030,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -7936,7 +7912,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Stylus TX110 Series USB -@@ -10041,7 +10040,7 @@ +@@ -10041,7 +10040,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -7945,7 +7921,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Stylus TX200 USB -@@ -10051,7 +10050,7 @@ +@@ -10051,7 +10050,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -7954,7 +7930,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Stylus TX203 USB -@@ -10061,7 +10060,7 @@ +@@ -10061,7 +10060,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -7963,7 +7939,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Stylus TX209 USB -@@ -10071,7 +10070,7 @@ +@@ -10071,7 +10070,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -7972,7 +7948,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Stylus TX210 Series USB -@@ -10081,7 +10080,7 @@ +@@ -10081,7 +10080,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -7981,7 +7957,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Stylus TX400 USB -@@ -10091,7 +10090,7 @@ +@@ -10091,7 +10090,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -7990,7 +7966,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Stylus TX410 Series USB -@@ -10101,7 +10100,7 @@ +@@ -10101,7 +10100,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -7999,7 +7975,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Stylus TX550W Series USB -@@ -10111,7 +10110,7 @@ +@@ -10111,7 +10110,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -8008,7 +7984,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref StylusScan 2000 USB -@@ -10133,7 +10132,7 @@ +@@ -10133,7 +10132,7 @@ epson2
(1.0.124) epson
(unmaintained) @@ -8017,7 +7993,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref V750 USB IEEE-1394 -@@ -10144,7 +10143,7 @@ +@@ -10144,7 +10143,7 @@ epson2
(1.0.124) epson
(unmaintained) @@ -8026,7 +8002,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref WorkForce 310 Series USB -@@ -10154,7 +10153,7 @@ +@@ -10154,7 +10153,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -8035,7 +8011,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref WorkForce 500 USB -@@ -10164,7 +10163,7 @@ +@@ -10164,7 +10163,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -8044,7 +8020,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref WorkForce 600 USB -@@ -10174,7 +10173,7 @@ +@@ -10174,7 +10173,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -8053,7 +8029,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref WorkForce 610 Series USB -@@ -10184,7 +10183,7 @@ +@@ -10184,7 +10183,7 @@ epson2
(1.0.124) epson2
(1.0.124) @@ -8062,7 +8038,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref

Manufacturer: Escom

-@@ -10209,7 +10208,7 @@ +@@ -10209,7 +10208,7 @@ epson2
(1.0.124) umax
(1.0-41) @@ -8071,7 +8047,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref

Manufacturer: Escort

-@@ -10234,7 +10233,7 @@ +@@ -10234,7 +10233,7 @@ epson2
(1.0.124) umax
(1.0-41) @@ -8080,7 +8056,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref

Manufacturer: Fujitsu

-@@ -10261,7 +10260,7 @@ +@@ -10261,7 +10260,7 @@ epson2
(1.0.124) gt68xx
(1.0-84) @@ -8089,7 +8065,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref fi-60F USB -@@ -10272,7 +10271,7 @@ +@@ -10272,7 +10271,7 @@ epson2
(1.0.124) epjitsu
(20) @@ -8098,7 +8074,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref fi-4010CU USB -@@ -10283,7 +10282,7 @@ +@@ -10283,7 +10282,7 @@ epson2
(1.0.124) avision
(Build: 296) @@ -8107,7 +8083,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref fi-4110EOX/2/3 USB -@@ -10294,7 +10293,7 @@ +@@ -10294,7 +10293,7 @@ epson2
(1.0.124) ma1509
(1.0-3) @@ -8116,7 +8092,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref fi-4120C SCSI USB -@@ -10305,7 +10304,7 @@ +@@ -10305,7 +10304,7 @@ epson2
(1.0.124) fujitsu
(117) @@ -8125,7 +8101,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref fi-4120C2 SCSI USB -@@ -10316,7 +10315,7 @@ +@@ -10316,7 +10315,7 @@ epson2
(1.0.124) fujitsu
(117) @@ -8134,7 +8110,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref fi-4220C SCSI USB -@@ -10327,7 +10326,7 @@ +@@ -10327,7 +10326,7 @@ epson2
(1.0.124) fujitsu
(117) @@ -8143,7 +8119,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref fi-4220C2 SCSI USB -@@ -10338,7 +10337,7 @@ +@@ -10338,7 +10337,7 @@ epson2
(1.0.124) fujitsu
(117) @@ -8152,7 +8128,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref fi-4340C SCSI USB -@@ -10349,7 +10348,7 @@ +@@ -10349,7 +10348,7 @@ epson2
(1.0.124) fujitsu
(117) @@ -8161,7 +8137,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref fi-4530C SCSI USB -@@ -10360,7 +10359,7 @@ +@@ -10360,7 +10359,7 @@ epson2
(1.0.124) fujitsu
(117) @@ -8170,7 +8146,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref fi-4640S SCSI -@@ -10371,7 +10370,7 @@ +@@ -10371,7 +10370,7 @@ epson2
(1.0.124) fujitsu
(117) @@ -8179,7 +8155,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref fi-4750C SCSI -@@ -10382,7 +10381,7 @@ +@@ -10382,7 +10381,7 @@ epson2
(1.0.124) fujitsu
(117) @@ -8188,7 +8164,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref fi-4750L SCSI -@@ -10393,7 +10392,7 @@ +@@ -10393,7 +10392,7 @@ epson2
(1.0.124) fujitsu
(117) @@ -8197,7 +8173,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref fi-4860C SCSI -@@ -10404,7 +10403,7 @@ +@@ -10404,7 +10403,7 @@ epson2
(1.0.124) fujitsu
(117) @@ -8206,7 +8182,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref fi-4860C2 SCSI -@@ -10415,7 +10414,7 @@ +@@ -10415,7 +10414,7 @@ epson2
(1.0.124) fujitsu
(117) @@ -8215,7 +8191,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref fi-4990C SCSI -@@ -10426,7 +10425,7 @@ +@@ -10426,7 +10425,7 @@ epson2
(1.0.124) fujitsu
(117) @@ -8224,7 +8200,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref fi-5000N Ethernet -@@ -10437,7 +10436,7 @@ +@@ -10437,7 +10436,7 @@ epson2
(1.0.124) fujitsu
(117) @@ -8233,7 +8209,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref fi-5015C USB -@@ -10448,7 +10447,7 @@ +@@ -10448,7 +10447,7 @@ epson2
(1.0.124) avision
(Build: 296) @@ -8242,7 +8218,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref fi-5110C USB -@@ -10459,7 +10458,7 @@ +@@ -10459,7 +10458,7 @@ epson2
(1.0.124) fujitsu
(117) @@ -8251,7 +8227,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref fi-5110EOX/2 USB -@@ -10470,7 +10469,7 @@ +@@ -10470,7 +10469,7 @@ epson2
(1.0.124) fujitsu
(117) @@ -8260,7 +8236,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref fi-5110EOX3 USB -@@ -10481,7 +10480,7 @@ +@@ -10481,7 +10480,7 @@ epson2
(1.0.124) fujitsu
(117) @@ -8269,7 +8245,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref fi-5110EOXM USB -@@ -10492,7 +10491,7 @@ +@@ -10492,7 +10491,7 @@ epson2
(1.0.124) fujitsu
(117) @@ -8278,7 +8254,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref fi-5120C SCSI USB -@@ -10503,7 +10502,7 @@ +@@ -10503,7 +10502,7 @@ epson2
(1.0.124) fujitsu
(117) @@ -8287,7 +8263,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref fi-5220C SCSI USB -@@ -10514,7 +10513,7 @@ +@@ -10514,7 +10513,7 @@ epson2
(1.0.124) fujitsu
(117) @@ -8296,7 +8272,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref fi-5530C SCSI USB -@@ -10525,7 +10524,7 @@ +@@ -10525,7 +10524,7 @@ epson2
(1.0.124) fujitsu
(117) @@ -8305,7 +8281,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref fi-5530C2 SCSI USB -@@ -10536,7 +10535,7 @@ +@@ -10536,7 +10535,7 @@ epson2
(1.0.124) fujitsu
(117) @@ -8314,7 +8290,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref fi-5650C SCSI USB -@@ -10547,7 +10546,7 @@ +@@ -10547,7 +10546,7 @@ epson2
(1.0.124) fujitsu
(117) @@ -8323,7 +8299,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref fi-5750C SCSI USB -@@ -10558,7 +10557,7 @@ +@@ -10558,7 +10557,7 @@ epson2
(1.0.124) fujitsu
(117) @@ -8332,7 +8308,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref fi-5900C SCSI USB -@@ -10569,7 +10568,7 @@ +@@ -10569,7 +10568,7 @@ epson2
(1.0.124) fujitsu
(117) @@ -8341,7 +8317,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref fi-5950 SCSI USB -@@ -10580,7 +10579,7 @@ +@@ -10580,7 +10579,7 @@ epson2
(1.0.124) fujitsu
(117) @@ -8350,7 +8326,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref fi-6000NS Ethernet -@@ -10591,7 +10590,7 @@ +@@ -10591,7 +10590,7 @@ epson2
(1.0.124) fujitsu
(117) @@ -8359,7 +8335,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref fi-6110 USB -@@ -10602,7 +10601,7 @@ +@@ -10602,7 +10601,7 @@ epson2
(1.0.124) fujitsu
(117) @@ -8368,7 +8344,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref fi-6130 USB -@@ -10613,7 +10612,7 @@ +@@ -10613,7 +10612,7 @@ epson2
(1.0.124) fujitsu
(117) @@ -8377,7 +8353,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref fi-6130Z USB -@@ -10624,7 +10623,7 @@ +@@ -10624,7 +10623,7 @@ epson2
(1.0.124) fujitsu
(117) @@ -8386,7 +8362,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref fi-6140 SCSI USB -@@ -10635,7 +10634,7 @@ +@@ -10635,7 +10634,7 @@ epson2
(1.0.124) fujitsu
(117) @@ -8395,7 +8371,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref fi-6140Z SCSI USB -@@ -10646,7 +10645,7 @@ +@@ -10646,7 +10645,7 @@ epson2
(1.0.124) fujitsu
(117) @@ -8404,7 +8380,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref fi-6230 USB -@@ -10657,7 +10656,7 @@ +@@ -10657,7 +10656,7 @@ epson2
(1.0.124) fujitsu
(117) @@ -8413,7 +8389,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref fi-6230Z USB -@@ -10668,7 +10667,7 @@ +@@ -10668,7 +10667,7 @@ epson2
(1.0.124) fujitsu
(117) @@ -8422,7 +8398,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref fi-6240 SCSI USB -@@ -10679,7 +10678,7 @@ +@@ -10679,7 +10678,7 @@ epson2
(1.0.124) fujitsu
(117) @@ -8431,7 +8407,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref fi-6240Z SCSI USB -@@ -10690,7 +10689,7 @@ +@@ -10690,7 +10689,7 @@ epson2
(1.0.124) fujitsu
(117) @@ -8440,7 +8416,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref fi-6670 SCSI USB -@@ -10701,7 +10700,7 @@ +@@ -10701,7 +10700,7 @@ epson2
(1.0.124) fujitsu
(117) @@ -8449,7 +8425,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref fi-6670A SCSI USB -@@ -10712,7 +10711,7 @@ +@@ -10712,7 +10711,7 @@ epson2
(1.0.124) fujitsu
(117) @@ -8458,7 +8434,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref fi-6750S USB -@@ -10723,7 +10722,7 @@ +@@ -10723,7 +10722,7 @@ epson2
(1.0.124) fujitsu
(117) @@ -8467,7 +8443,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref fi-6770 SCSI USB -@@ -10734,7 +10733,7 @@ +@@ -10734,7 +10733,7 @@ epson2
(1.0.124) fujitsu
(117) @@ -8476,7 +8452,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref fi-6770A SCSI USB -@@ -10745,7 +10744,7 @@ +@@ -10745,7 +10744,7 @@ epson2
(1.0.124) fujitsu
(117) @@ -8485,7 +8461,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref fi-6800 SCSI USB -@@ -10756,7 +10755,7 @@ +@@ -10756,7 +10755,7 @@ epson2
(1.0.124) fujitsu
(117) @@ -8494,7 +8470,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref fi-6800-CGA SCSI USB -@@ -10767,7 +10766,7 @@ +@@ -10767,7 +10766,7 @@ epson2
(1.0.124) fujitsu
(117) @@ -8503,7 +8479,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref M3091DC SCSI -@@ -10778,7 +10777,7 @@ +@@ -10778,7 +10777,7 @@ epson2
(1.0.124) fujitsu
(117) @@ -8512,7 +8488,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref M3092DC SCSI -@@ -10789,7 +10788,7 @@ +@@ -10789,7 +10788,7 @@ epson2
(1.0.124) fujitsu
(117) @@ -8521,7 +8497,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref M3093DE RS232C/Video -@@ -10800,7 +10799,7 @@ +@@ -10800,7 +10799,7 @@ epson2
(1.0.124) fujitsu
(117) @@ -8530,7 +8506,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref M3093DG SCSI -@@ -10811,7 +10810,7 @@ +@@ -10811,7 +10810,7 @@ epson2
(1.0.124) fujitsu
(117) @@ -8539,7 +8515,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref M3093E RS232C/Video -@@ -10822,7 +10821,7 @@ +@@ -10822,7 +10821,7 @@ epson2
(1.0.124) fujitsu
(117) @@ -8548,7 +8524,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref M3093EX RS232C/Video -@@ -10833,7 +10832,7 @@ +@@ -10833,7 +10832,7 @@ epson2
(1.0.124) fujitsu
(117) @@ -8557,7 +8533,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref M3093GX SCSI -@@ -10844,7 +10843,7 @@ +@@ -10844,7 +10843,7 @@ epson2
(1.0.124) fujitsu
(117) @@ -8566,7 +8542,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref M3096EX RS232C/Video -@@ -10855,7 +10854,7 @@ +@@ -10855,7 +10854,7 @@ epson2
(1.0.124) fujitsu
(117) @@ -8575,7 +8551,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref M3096GX SCSI -@@ -10866,7 +10865,7 @@ +@@ -10866,7 +10865,7 @@ epson2
(1.0.124) fujitsu
(117) @@ -8584,7 +8560,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref M3097DE RS232C/Video -@@ -10877,7 +10876,7 @@ +@@ -10877,7 +10876,7 @@ epson2
(1.0.124) fujitsu
(117) @@ -8593,7 +8569,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref M3097DG SCSI -@@ -10888,7 +10887,7 @@ +@@ -10888,7 +10887,7 @@ epson2
(1.0.124) fujitsu
(117) @@ -8602,7 +8578,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref M3097E+ RS232C/Video -@@ -10899,7 +10898,7 @@ +@@ -10899,7 +10898,7 @@ epson2
(1.0.124) fujitsu
(117) @@ -8611,7 +8587,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref M3097G+ SCSI -@@ -10910,7 +10909,7 @@ +@@ -10910,7 +10909,7 @@ epson2
(1.0.124) fujitsu
(117) @@ -8620,7 +8596,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref M3099A RS232C/Video -@@ -10921,7 +10920,7 @@ +@@ -10921,7 +10920,7 @@ epson2
(1.0.124) fujitsu
(117) @@ -8629,7 +8605,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref M3099EH RS232C/Video -@@ -10932,7 +10931,7 @@ +@@ -10932,7 +10931,7 @@ epson2
(1.0.124) fujitsu
(117) @@ -8638,7 +8614,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref M3099EX RS232C/Video -@@ -10943,7 +10942,7 @@ +@@ -10943,7 +10942,7 @@ epson2
(1.0.124) fujitsu
(117) @@ -8647,7 +8623,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref M3099G SCSI -@@ -10954,7 +10953,7 @@ +@@ -10954,7 +10953,7 @@ epson2
(1.0.124) fujitsu
(117) @@ -8656,7 +8632,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref M3099GH SCSI -@@ -10965,7 +10964,7 @@ +@@ -10965,7 +10964,7 @@ epson2
(1.0.124) fujitsu
(117) @@ -8665,7 +8641,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref M3099GX SCSI -@@ -10976,7 +10975,7 @@ +@@ -10976,7 +10975,7 @@ epson2
(1.0.124) fujitsu
(117) @@ -8674,7 +8650,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref M4097D SCSI -@@ -10987,7 +10986,7 @@ +@@ -10987,7 +10986,7 @@ epson2
(1.0.124) fujitsu
(117) @@ -8683,7 +8659,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref M4099D SCSI -@@ -10998,7 +10997,7 @@ +@@ -10998,7 +10997,7 @@ epson2
(1.0.124) fujitsu
(117) @@ -8692,7 +8668,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanPartner SCSI -@@ -11009,7 +11008,7 @@ +@@ -11009,7 +11008,7 @@ epson2
(1.0.124) avision
(Build: 296) @@ -8701,7 +8677,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanPartner 10 SCSI -@@ -11020,7 +11019,7 @@ +@@ -11020,7 +11019,7 @@ epson2
(1.0.124) avision
(Build: 296) @@ -8710,7 +8686,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanPartner 10C SCSI -@@ -11031,7 +11030,7 @@ +@@ -11031,7 +11030,7 @@ epson2
(1.0.124) avision
(Build: 296) @@ -8719,7 +8695,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanPartner 15C SCSI -@@ -11041,7 +11040,7 @@ +@@ -11041,7 +11040,7 @@ epson2
(1.0.124) sp15c
(unmaintained) @@ -8728,7 +8704,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanPartner 300C SCSI -@@ -11052,7 +11051,7 @@ +@@ -11052,7 +11051,7 @@ sp15c
(unmaintained) avision
(Build: 296) @@ -8737,7 +8713,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanPartner 600C SCSI -@@ -11062,7 +11061,7 @@ +@@ -11062,7 +11061,7 @@ sp15c
(unmaintained) sp15c
(unmaintained) @@ -8746,7 +8722,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanPartner 620C SCSI -@@ -11073,7 +11072,7 @@ +@@ -11073,7 +11072,7 @@ sp15c
(unmaintained) avision
(Build: 296) @@ -8755,7 +8731,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanPartner Jr SCSI -@@ -11084,7 +11083,7 @@ +@@ -11084,7 +11083,7 @@ sp15c
(unmaintained) avision
(Build: 296) @@ -8764,7 +8740,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanSnap fi-6010N Ethernet -@@ -11095,7 +11094,7 @@ +@@ -11095,7 +11094,7 @@ sp15c
(unmaintained) fujitsu
(117) @@ -8773,7 +8749,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanSnap iX500 USB WiFi -@@ -11106,7 +11105,7 @@ +@@ -11106,7 +11105,7 @@ sp15c
(unmaintained) fujitsu
(117) @@ -8782,7 +8758,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanSnap N1800 Ethernet -@@ -11117,7 +11116,7 @@ +@@ -11117,7 +11116,7 @@ sp15c
(unmaintained) fujitsu
(117) @@ -8791,7 +8767,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanSnap S300 USB -@@ -11128,7 +11127,7 @@ +@@ -11128,7 +11127,7 @@ sp15c
(unmaintained) epjitsu
(20) @@ -8800,7 +8776,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanSnap S300M USB -@@ -11139,7 +11138,7 @@ +@@ -11139,7 +11138,7 @@ sp15c
(unmaintained) epjitsu
(20) @@ -8809,7 +8785,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanSnap S500 USB -@@ -11150,7 +11149,7 @@ +@@ -11150,7 +11149,7 @@ sp15c
(unmaintained) fujitsu
(117) @@ -8818,7 +8794,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanSnap S500M USB -@@ -11161,7 +11160,7 @@ +@@ -11161,7 +11160,7 @@ sp15c
(unmaintained) fujitsu
(117) @@ -8827,7 +8803,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanSnap S510 USB -@@ -11172,7 +11171,7 @@ +@@ -11172,7 +11171,7 @@ sp15c
(unmaintained) fujitsu
(117) @@ -8836,7 +8812,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanSnap S510M USB -@@ -11183,7 +11182,7 @@ +@@ -11183,7 +11182,7 @@ sp15c
(unmaintained) fujitsu
(117) @@ -8845,7 +8821,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanSnap S1100 USB -@@ -11194,7 +11193,7 @@ +@@ -11194,7 +11193,7 @@ sp15c
(unmaintained) epjitsu
(20) @@ -8854,7 +8830,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanSnap S1300 USB -@@ -11205,7 +11204,7 @@ +@@ -11205,7 +11204,7 @@ sp15c
(unmaintained) epjitsu
(20) @@ -8863,7 +8839,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanSnap S1500 USB -@@ -11216,7 +11215,7 @@ +@@ -11216,7 +11215,7 @@ sp15c
(unmaintained) fujitsu
(117) @@ -8872,7 +8848,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanSnap S1500M USB -@@ -11227,7 +11226,7 @@ +@@ -11227,7 +11226,7 @@ sp15c
(unmaintained) fujitsu
(117) @@ -8881,7 +8857,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanStation SCSI -@@ -11238,7 +11237,7 @@ +@@ -11238,7 +11237,7 @@ sp15c
(unmaintained) avision
(Build: 296) @@ -8890,7 +8866,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref

Manufacturer: Gallery

-@@ -11263,7 +11262,7 @@ +@@ -11263,7 +11262,7 @@ sp15c
(unmaintained) mustek_pp
(13) @@ -8899,7 +8875,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref

Manufacturer: Genius

-@@ -11301,7 +11300,7 @@ +@@ -11301,7 +11300,7 @@ sp15c
(unmaintained) u12
(0.02) @@ -8908,7 +8884,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Colorpage HR6 V2 USB -@@ -11312,7 +11311,7 @@ +@@ -11312,7 +11311,7 @@ sp15c
(unmaintained) plustek
(0.52) @@ -8917,7 +8893,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Colorpage HR6 V2 USB -@@ -11323,7 +11322,7 @@ +@@ -11323,7 +11322,7 @@ sp15c
(unmaintained) plustek
(0.52) @@ -8926,7 +8902,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Colorpage HR6A USB -@@ -11334,7 +11333,7 @@ +@@ -11334,7 +11333,7 @@ sp15c
(unmaintained) plustek
(0.52) @@ -8935,7 +8911,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Colorpage HR6X USB -@@ -11345,7 +11344,7 @@ +@@ -11345,7 +11344,7 @@ sp15c
(unmaintained) plustek
(0.52) @@ -8944,7 +8920,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Colorpage HR6X EPP Parport (SPP, EPP) -@@ -11356,7 +11355,7 @@ +@@ -11356,7 +11355,7 @@ sp15c
(unmaintained) plustek_pp
(0.43) @@ -8953,7 +8929,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ColorPage HR6X Slim USB -@@ -11378,7 +11377,7 @@ +@@ -11378,7 +11377,7 @@ sp15c
(unmaintained) plustek
(0.52) @@ -8962,7 +8938,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Colorpage HR7LE USB -@@ -11389,7 +11388,7 @@ +@@ -11389,7 +11388,7 @@ sp15c
(unmaintained) plustek
(0.52) @@ -8971,7 +8947,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ColorPage HR7X USB -@@ -11433,7 +11432,7 @@ +@@ -11433,7 +11432,7 @@ sp15c
(unmaintained) gt68xx
(1.0-84) @@ -8980,7 +8956,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ColorPage Slim 1200 USB -@@ -11444,7 +11443,7 @@ +@@ -11444,7 +11443,7 @@ sp15c
(unmaintained) gt68xx
(1.0-84) @@ -8989,7 +8965,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Colorpage Vivid 1200 X USB -@@ -11455,7 +11454,7 @@ +@@ -11455,7 +11454,7 @@ sp15c
(unmaintained) gt68xx
(1.0-84) @@ -8998,7 +8974,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Colorpage Vivid 1200 XE USB -@@ -11466,7 +11465,7 @@ +@@ -11466,7 +11465,7 @@ sp15c
(unmaintained) gt68xx
(1.0-84) @@ -9007,7 +8983,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ColorPage Vivid III USB USB -@@ -11477,7 +11476,7 @@ +@@ -11477,7 +11476,7 @@ sp15c
(unmaintained) u12
(0.02) @@ -9016,7 +8992,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Colorpage Vivid III V2 Parport (SPP, EPP) -@@ -11488,7 +11487,7 @@ +@@ -11488,7 +11487,7 @@ sp15c
(unmaintained) plustek_pp
(0.43) @@ -9025,7 +9001,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Colorpage Vivid Pro II Film Parport (SPP, EPP) -@@ -11499,7 +11498,7 @@ +@@ -11499,7 +11498,7 @@ sp15c
(unmaintained) plustek_pp
(0.43) @@ -9034,7 +9010,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Colorpage Vivid3 V2 USB -@@ -11510,7 +11509,7 @@ +@@ -11510,7 +11509,7 @@ sp15c
(unmaintained) gt68xx
(1.0-84) @@ -9043,7 +9019,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Colorpage Vivid3x USB -@@ -11521,7 +11520,7 @@ +@@ -11521,7 +11520,7 @@ sp15c
(unmaintained) gt68xx
(1.0-84) @@ -9052,7 +9028,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Colorpage Vivid3xe USB -@@ -11532,7 +11531,7 @@ +@@ -11532,7 +11531,7 @@ sp15c
(unmaintained) gt68xx
(1.0-84) @@ -9061,7 +9037,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Colorpage Vivid4 USB -@@ -11543,7 +11542,7 @@ +@@ -11543,7 +11542,7 @@ sp15c
(unmaintained) gt68xx
(1.0-84) @@ -9070,7 +9046,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Colorpage Vivid4x USB -@@ -11554,7 +11553,7 @@ +@@ -11554,7 +11553,7 @@ sp15c
(unmaintained) gt68xx
(1.0-84) @@ -9079,7 +9055,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Colorpage Vivid4xe USB -@@ -11565,7 +11564,7 @@ +@@ -11565,7 +11564,7 @@ sp15c
(unmaintained) gt68xx
(1.0-84) @@ -9088,7 +9064,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ColorPage-EP Parport -@@ -11576,7 +11575,7 @@ +@@ -11576,7 +11575,7 @@ sp15c
(unmaintained) microtek2
(unmaintained) @@ -9097,7 +9073,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ColorPage-HR5 (Pro) SCSI -@@ -11587,7 +11586,7 @@ +@@ -11587,7 +11586,7 @@ sp15c
(unmaintained) umax
(1.0-41) @@ -9106,7 +9082,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ColorPage-Life Pro Parport (EPP/ECP) -@@ -11598,7 +11597,7 @@ +@@ -11598,7 +11597,7 @@ sp15c
(unmaintained) umax_pp
(1) @@ -9115,7 +9091,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ColorPage-Slim 1200 USB2 USB -@@ -11620,7 +11619,7 @@ +@@ -11620,7 +11619,7 @@ sp15c
(unmaintained) microtek
(0.13.1) @@ -9124,7 +9100,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref FS-1130 Colorpage Scanner SCSI -@@ -11631,7 +11630,7 @@ +@@ -11631,7 +11630,7 @@ sp15c
(unmaintained) leo
(1.0-10) @@ -9133,7 +9109,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref

Manufacturer: Googlegear

-@@ -11656,7 +11655,7 @@ +@@ -11656,7 +11655,7 @@ sp15c
(unmaintained) gt68xx
(1.0-84) @@ -9142,7 +9118,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref

Manufacturer: Guillemot

-@@ -11719,7 +11718,7 @@ +@@ -11719,7 +11718,7 @@ sp15c
(unmaintained) SnapScan
(1.4) @@ -9151,7 +9127,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Maxi Scan A4 Deluxe (SCSI) SCSI -@@ -11730,7 +11729,7 @@ +@@ -11730,7 +11729,7 @@ sp15c
(unmaintained) SnapScan
(1.4) @@ -9160,7 +9136,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Maxi Scan A4 USB 640U USB -@@ -11741,7 +11740,7 @@ +@@ -11741,7 +11740,7 @@ sp15c
(unmaintained) SnapScan
(1.4) @@ -9169,7 +9145,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Scan@home Touch 1248 (USB) USB -@@ -11752,7 +11751,7 @@ +@@ -11752,7 +11751,7 @@ sp15c
(unmaintained) SnapScan
(1.4) @@ -9178,7 +9154,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref

Manufacturer: Hercules

-@@ -11803,7 +11802,7 @@ +@@ -11803,7 +11802,7 @@ sp15c
(unmaintained) hpljm1005
(0) @@ -9187,7 +9163,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref LaserJet M1120 MFP USB -@@ -11813,7 +11812,7 @@ +@@ -11813,7 +11812,7 @@ hpljm1005
(0) hpljm1005
(0) @@ -9196,7 +9172,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref LaserJet M1120n MFP USB -@@ -11823,7 +11822,7 @@ +@@ -11823,7 +11822,7 @@ hpljm1005
(0) hpljm1005
(0) @@ -9205,7 +9181,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Photo Scanner 1000 USB -@@ -11878,7 +11877,7 @@ +@@ -11878,7 +11877,7 @@ hpljm1005
(0) hp
(1.06) @@ -9214,7 +9190,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Photosmart S20 (C5101A) USB -@@ -11911,7 +11910,7 @@ +@@ -11911,7 +11910,7 @@ hpljm1005
(0) hp
(1.06) @@ -9223,7 +9199,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanJet 3p SCSI -@@ -11922,7 +11921,7 @@ +@@ -11922,7 +11921,7 @@ hpljm1005
(0) hp
(1.06) @@ -9232,7 +9208,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanJet 4c SCSI -@@ -11933,7 +11932,7 @@ +@@ -11933,7 +11932,7 @@ hpljm1005
(0) hp
(1.06) @@ -9241,7 +9217,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanJet 4p SCSI -@@ -11944,7 +11943,7 @@ +@@ -11944,7 +11943,7 @@ hpljm1005
(0) hp
(1.06) @@ -9250,7 +9226,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanJet 5p SCSI -@@ -11955,7 +11954,7 @@ +@@ -11955,7 +11954,7 @@ hpljm1005
(0) hp
(1.06) @@ -9259,7 +9235,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanJet 5s Parport (EPP) -@@ -11966,7 +11965,7 @@ +@@ -11966,7 +11965,7 @@ hpljm1005
(0) hpsj5s
(0.03) @@ -9268,7 +9244,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanJet 2100C USB -@@ -11977,7 +11976,7 @@ +@@ -11977,7 +11976,7 @@ hpljm1005
(0) plustek
(0.52) @@ -9277,7 +9253,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanJet 2200C USB -@@ -11988,7 +11987,7 @@ +@@ -11988,7 +11987,7 @@ hpljm1005
(0) plustek
(0.52) @@ -9286,7 +9262,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanJet 2300C USB -@@ -11999,7 +11998,7 @@ +@@ -11999,7 +11998,7 @@ hpljm1005
(0) genesys
(1.0-63) @@ -9295,7 +9271,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanJet 2400C USB -@@ -12010,7 +12009,7 @@ +@@ -12010,7 +12009,7 @@ hpljm1005
(0) genesys
(1.0-63) @@ -9304,7 +9280,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Scanjet 3200C Parport (EPP/ECP) -@@ -12021,7 +12020,7 @@ +@@ -12021,7 +12020,7 @@ hpljm1005
(0) umax_pp
(1) @@ -9313,7 +9289,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanJet 3300c USB -@@ -12032,7 +12031,7 @@ +@@ -12032,7 +12031,7 @@ hpljm1005
(0) niash
(0.3) @@ -9322,7 +9298,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanJet 3400c USB -@@ -12043,7 +12042,7 @@ +@@ -12043,7 +12042,7 @@ hpljm1005
(0) niash
(0.3) @@ -9331,7 +9307,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanJet 3500C USB -@@ -12054,7 +12053,7 @@ +@@ -12054,7 +12053,7 @@ hpljm1005
(0) hp3500
(1.1) @@ -9340,7 +9316,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanJet 3530C USB -@@ -12065,7 +12064,7 @@ +@@ -12065,7 +12064,7 @@ hpljm1005
(0) hp3500
(1.1) @@ -9349,7 +9325,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanJet 3570C USB -@@ -12076,7 +12075,7 @@ +@@ -12076,7 +12075,7 @@ hpljm1005
(0) hp3500
(1.1) @@ -9358,7 +9334,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanJet 3670C USB -@@ -12087,7 +12086,7 @@ +@@ -12087,7 +12086,7 @@ hpljm1005
(0) genesys
(1.0-63) @@ -9367,7 +9343,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanJet 3690C USB -@@ -12098,7 +12097,7 @@ +@@ -12098,7 +12097,7 @@ hpljm1005
(0) genesys
(1.0-63) @@ -9376,7 +9352,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanJet 3770 USB -@@ -12120,7 +12119,7 @@ +@@ -12120,7 +12119,7 @@ hpljm1005
(0) hp3900
(0.12) @@ -9385,7 +9361,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanJet 3970c USB -@@ -12131,7 +12130,7 @@ +@@ -12131,7 +12130,7 @@ hpljm1005
(0) hp3900
(0.12) @@ -9394,7 +9370,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanJet 4070 Photosmart USB -@@ -12142,7 +12141,7 @@ +@@ -12142,7 +12141,7 @@ hpljm1005
(0) hp3900
(0.12) @@ -9403,7 +9379,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanJet 4100C USB -@@ -12153,7 +12152,7 @@ +@@ -12153,7 +12152,7 @@ hpljm1005
(0) hp
(1.06) @@ -9412,7 +9388,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanJet 4200C USB -@@ -12164,7 +12163,7 @@ +@@ -12164,7 +12163,7 @@ hpljm1005
(0) hp4200
(1.0-2) @@ -9421,7 +9397,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanJet 4200Cse USB -@@ -12175,7 +12174,7 @@ +@@ -12175,7 +12174,7 @@ hpljm1005
(0) hp4200
(1.0-2) @@ -9430,7 +9406,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanJet 4200Cxi USB -@@ -12186,7 +12185,7 @@ +@@ -12186,7 +12185,7 @@ hpljm1005
(0) hp4200
(1.0-2) @@ -9439,7 +9415,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanJet 4300c USB -@@ -12197,7 +12196,7 @@ +@@ -12197,7 +12196,7 @@ hpljm1005
(0) niash
(0.3) @@ -9448,7 +9424,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanJet 4300c/Silitek USB -@@ -12208,7 +12207,7 @@ +@@ -12208,7 +12207,7 @@ hpljm1005
(0) niash
(0.3) @@ -9457,7 +9433,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanJet 4370 USB -@@ -12219,7 +12218,7 @@ +@@ -12219,7 +12218,7 @@ hpljm1005
(0) hp3900
(0.12) @@ -9466,7 +9442,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref scanjet 4400c USB -@@ -12230,7 +12229,7 @@ +@@ -12230,7 +12229,7 @@ hpljm1005
(0) rts8891
(1.0-0) @@ -9475,7 +9451,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref scanjet 4470c USB -@@ -12241,7 +12240,7 @@ +@@ -12241,7 +12240,7 @@ hpljm1005
(0) rts8891
(1.0-0) @@ -9484,7 +9460,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanJet 4500C USB -@@ -12251,7 +12250,7 @@ +@@ -12251,7 +12250,7 @@ hpljm1005
(0) hp5590
(1.0.5) @@ -9493,7 +9469,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanJet 4570C USB -@@ -12261,7 +12260,7 @@ +@@ -12261,7 +12260,7 @@ hp5590
(1.0.5) hp5590
(1.0.5) @@ -9502,7 +9478,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanJet 4600 USB -@@ -12294,7 +12293,7 @@ +@@ -12294,7 +12293,7 @@ hp5590
(1.0.5) genesys
(1.0-63) @@ -9511,7 +9487,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanJet 4890C USB -@@ -12316,7 +12315,7 @@ +@@ -12316,7 +12315,7 @@ hp5590
(1.0.5) hp
(1.06) @@ -9520,7 +9496,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanJet 5200C Parport USB -@@ -12327,7 +12326,7 @@ +@@ -12327,7 +12326,7 @@ hp5590
(1.0.5) hp
(1.06) @@ -9529,7 +9505,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanJet 5300C USB -@@ -12338,7 +12337,7 @@ +@@ -12338,7 +12337,7 @@ hp5590
(1.0.5) avision
(Build: 296) @@ -9538,7 +9514,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanJet 5370C USB -@@ -12349,7 +12348,7 @@ +@@ -12349,7 +12348,7 @@ hp5590
(1.0.5) avision
(Build: 296) @@ -9547,7 +9523,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanJet 5400c USB -@@ -12360,7 +12359,7 @@ +@@ -12360,7 +12359,7 @@ hp5590
(1.0.5) hp5400
(1.0-2) @@ -9556,7 +9532,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanJet 5470c USB -@@ -12371,7 +12370,7 @@ +@@ -12371,7 +12370,7 @@ hp5590
(1.0.5) hp5400
(1.0-2) @@ -9565,7 +9541,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanJet 5490c USB -@@ -12382,7 +12381,7 @@ +@@ -12382,7 +12381,7 @@ hp5590
(1.0.5) hp5400
(1.0-2) @@ -9574,7 +9550,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanJet 5500C USB -@@ -12392,7 +12391,7 @@ +@@ -12392,7 +12391,7 @@ hp5590
(1.0.5) hp5590
(1.0.5) @@ -9583,7 +9559,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanJet 5530C Photosmart USB -@@ -12413,7 +12412,7 @@ +@@ -12413,7 +12412,7 @@ hp5590
(1.0.5) hp5590
(1.0.5) @@ -9592,7 +9568,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanJet 5590 USB -@@ -12423,7 +12422,7 @@ +@@ -12423,7 +12422,7 @@ hp5590
(1.0.5) hp5590
(1.0.5) @@ -9601,7 +9577,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanJet 6100C SCSI -@@ -12434,7 +12433,7 @@ +@@ -12434,7 +12433,7 @@ hp5590
(1.0.5) hp
(1.06) @@ -9610,7 +9586,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanJet 6200C SCSI USB -@@ -12445,7 +12444,7 @@ +@@ -12445,7 +12444,7 @@ hp5590
(1.0.5) hp
(1.06) @@ -9619,7 +9595,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanJet 6250C SCSI USB -@@ -12456,7 +12455,7 @@ +@@ -12456,7 +12455,7 @@ hp5590
(1.0.5) hp
(1.06) @@ -9628,7 +9604,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanJet 6300C SCSI USB -@@ -12467,7 +12466,7 @@ +@@ -12467,7 +12466,7 @@ hp5590
(1.0.5) hp
(1.06) @@ -9637,7 +9613,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanJet 6350C SCSI USB -@@ -12478,7 +12477,7 @@ +@@ -12478,7 +12477,7 @@ hp5590
(1.0.5) hp
(1.06) @@ -9646,7 +9622,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanJet 6390C SCSI USB -@@ -12489,7 +12488,7 @@ +@@ -12489,7 +12488,7 @@ hp5590
(1.0.5) hp
(1.06) @@ -9655,7 +9631,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanJet 7400c USB -@@ -12500,7 +12499,7 @@ +@@ -12500,7 +12499,7 @@ hp5590
(1.0.5) avision
(Build: 296) @@ -9664,7 +9640,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanJet 7450c USB -@@ -12511,7 +12510,7 @@ +@@ -12511,7 +12510,7 @@ hp5590
(1.0.5) avision
(Build: 296) @@ -9673,7 +9649,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanJet 7490c USB -@@ -12522,7 +12521,7 @@ +@@ -12522,7 +12521,7 @@ hp5590
(1.0.5) avision
(Build: 296) @@ -9682,7 +9658,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanJet 7650 USB -@@ -12532,7 +12531,7 @@ +@@ -12532,7 +12531,7 @@ hp5590
(1.0.5) hp5590
(1.0.5) @@ -9691,7 +9667,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanJet 8200 USB -@@ -12543,7 +12542,7 @@ +@@ -12543,7 +12542,7 @@ hp5590
(1.0.5) avision
(Build: 296) @@ -9700,7 +9676,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanJet 8250 USB -@@ -12554,7 +12553,7 @@ +@@ -12554,7 +12553,7 @@ hp5590
(1.0.5) avision
(Build: 296) @@ -9709,7 +9685,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanJet 8270 USB -@@ -12565,7 +12564,7 @@ +@@ -12565,7 +12564,7 @@ hp5590
(1.0.5) avision
(Build: 296) @@ -9718,7 +9694,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanJet 8290 USB -@@ -12576,7 +12575,7 @@ +@@ -12576,7 +12575,7 @@ hp5590
(1.0.5) avision
(Build: 296) @@ -9727,7 +9703,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanJet 8300 USB -@@ -12587,7 +12586,7 @@ +@@ -12587,7 +12586,7 @@ hp5590
(1.0.5) avision
(Build: 296) @@ -9736,7 +9712,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanJet 8350 USB -@@ -12598,7 +12597,7 @@ +@@ -12598,7 +12597,7 @@ hp5590
(1.0.5) avision
(Build: 296) @@ -9745,7 +9721,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanJet 8390 USB -@@ -12609,7 +12608,7 @@ +@@ -12609,7 +12608,7 @@ hp5590
(1.0.5) avision
(Build: 296) @@ -9754,7 +9730,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanJet G2410 USB -@@ -12620,7 +12619,7 @@ +@@ -12620,7 +12619,7 @@ hp5590
(1.0.5) genesys
(1.0-63) @@ -9763,7 +9739,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanJet G2710 USB -@@ -12631,7 +12630,7 @@ +@@ -12631,7 +12630,7 @@ hp5590
(1.0.5) hp3900
(0.12) @@ -9772,7 +9748,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanJet G3010 USB -@@ -12642,7 +12641,7 @@ +@@ -12642,7 +12641,7 @@ hp5590
(1.0.5) hp3900
(0.12) @@ -9781,7 +9757,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanJet G3110 USB -@@ -12653,7 +12652,7 @@ +@@ -12653,7 +12652,7 @@ hp5590
(1.0.5) hp3900
(0.12) @@ -9790,7 +9766,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanJet G4000 USB -@@ -12675,7 +12674,7 @@ +@@ -12675,7 +12674,7 @@ hp5590
(1.0.5) genesys
(1.0-63) @@ -9799,7 +9775,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanJet G4050 USB -@@ -12686,7 +12685,7 @@ +@@ -12686,7 +12685,7 @@ hp5590
(1.0.5) genesys
(1.0-63) @@ -9808,7 +9784,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanJet IIc SCSI -@@ -12697,7 +12696,7 @@ +@@ -12697,7 +12696,7 @@ hp5590
(1.0.5) hp
(1.06) @@ -9817,7 +9793,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanJet IIcx SCSI -@@ -12708,7 +12707,7 @@ +@@ -12708,7 +12707,7 @@ hp5590
(1.0.5) hp
(1.06) @@ -9826,7 +9802,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanJet IIp SCSI -@@ -12719,7 +12718,7 @@ +@@ -12719,7 +12718,7 @@ hp5590
(1.0.5) hp
(1.06) @@ -9835,7 +9811,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanJet N6310 USB -@@ -12730,7 +12729,7 @@ +@@ -12730,7 +12729,7 @@ hp5590
(1.0.5) genesys
(1.0-63) @@ -9844,7 +9820,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanJet Plus Propietary -@@ -12741,7 +12740,7 @@ +@@ -12741,7 +12740,7 @@ hp5590
(1.0.5) hp
(1.06) @@ -9853,7 +9829,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref

Manufacturer: IBM

-@@ -12768,7 +12767,7 @@ +@@ -12768,7 +12767,7 @@ hp5590
(1.0.5) ibm
(1.0-4) @@ -9862,7 +9838,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ADF Color Scanner Proprietary -@@ -12880,7 +12879,7 @@ +@@ -12880,7 +12879,7 @@ hp5590
(1.0.5) avision
(Build: 296) @@ -9871,7 +9847,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref

Manufacturer: Kodak

-@@ -12907,7 +12906,7 @@ +@@ -12907,7 +12906,7 @@ hp5590
(1.0.5) kodak
(7) @@ -9880,7 +9856,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Color Scanner 4500 SCSI -@@ -12918,7 +12917,7 @@ +@@ -12918,7 +12917,7 @@ hp5590
(1.0.5) kodak
(7) @@ -9889,7 +9865,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ESP 5 USB -@@ -12929,7 +12928,7 @@ +@@ -12929,7 +12928,7 @@ hp5590
(1.0.5) kodakaio
(2.4.6) @@ -9898,7 +9874,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ESP 7 USB -@@ -12940,7 +12939,7 @@ +@@ -12940,7 +12939,7 @@ hp5590
(1.0.5) kodakaio
(2.4.6) @@ -9907,7 +9883,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ESP 9 USB -@@ -12951,7 +12950,7 @@ +@@ -12951,7 +12950,7 @@ hp5590
(1.0.5) kodakaio
(2.4.6) @@ -9916,7 +9892,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ESP 2150 USB -@@ -12962,7 +12961,7 @@ +@@ -12962,7 +12961,7 @@ hp5590
(1.0.5) kodakaio
(2.4.6) @@ -9925,7 +9901,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ESP 2170 USB -@@ -12973,7 +12972,7 @@ +@@ -12973,7 +12972,7 @@ hp5590
(1.0.5) kodakaio
(2.4.6) @@ -9934,7 +9910,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ESP 3200 USB -@@ -12984,7 +12983,7 @@ +@@ -12984,7 +12983,7 @@ hp5590
(1.0.5) kodakaio
(2.4.6) @@ -9943,7 +9919,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ESP 3300 USB -@@ -12995,7 +12994,7 @@ +@@ -12995,7 +12994,7 @@ hp5590
(1.0.5) kodakaio
(2.4.6) @@ -9952,7 +9928,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ESP 4100 USB -@@ -13006,7 +13005,7 @@ +@@ -13006,7 +13005,7 @@ hp5590
(1.0.5) kodakaio
(2.4.6) @@ -9961,7 +9937,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ESP 5000 USB -@@ -13017,7 +13016,7 @@ +@@ -13017,7 +13016,7 @@ hp5590
(1.0.5) kodakaio
(2.4.6) @@ -9970,7 +9946,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ESP 5100 USB -@@ -13028,7 +13027,7 @@ +@@ -13028,7 +13027,7 @@ hp5590
(1.0.5) kodakaio
(2.4.6) @@ -9979,7 +9955,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ESP 5200 USB Ethernet -@@ -13039,7 +13038,7 @@ +@@ -13039,7 +13038,7 @@ hp5590
(1.0.5) kodakaio
(2.4.6) @@ -9988,7 +9964,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ESP 5300 USB -@@ -13050,7 +13049,7 @@ +@@ -13050,7 +13049,7 @@ hp5590
(1.0.5) kodakaio
(2.4.6) @@ -9997,7 +9973,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ESP 5500 USB -@@ -13061,7 +13060,7 @@ +@@ -13061,7 +13060,7 @@ hp5590
(1.0.5) kodakaio
(2.4.6) @@ -10006,7 +9982,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ESP 6100 USB -@@ -13072,7 +13071,7 @@ +@@ -13072,7 +13071,7 @@ hp5590
(1.0.5) kodakaio
(2.4.6) @@ -10015,7 +9991,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ESP 7200 USB -@@ -13083,7 +13082,7 @@ +@@ -13083,7 +13082,7 @@ hp5590
(1.0.5) kodakaio
(2.4.6) @@ -10024,7 +10000,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ESP 9200 USB -@@ -13094,7 +13093,7 @@ +@@ -13094,7 +13093,7 @@ hp5590
(1.0.5) kodakaio
(2.4.6) @@ -10033,7 +10009,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ESP C110 USB -@@ -13105,7 +13104,7 @@ +@@ -13105,7 +13104,7 @@ hp5590
(1.0.5) kodakaio
(2.4.6) @@ -10042,7 +10018,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ESP C115 USB -@@ -13116,7 +13115,7 @@ +@@ -13116,7 +13115,7 @@ hp5590
(1.0.5) kodakaio
(2.4.6) @@ -10051,7 +10027,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ESP C310 USB -@@ -13127,7 +13126,7 @@ +@@ -13127,7 +13126,7 @@ hp5590
(1.0.5) kodakaio
(2.4.6) @@ -10060,7 +10036,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ESP C315 USB -@@ -13138,7 +13137,7 @@ +@@ -13138,7 +13137,7 @@ hp5590
(1.0.5) kodakaio
(2.4.6) @@ -10069,7 +10045,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Hero 3.1 USB -@@ -13149,7 +13148,7 @@ +@@ -13149,7 +13148,7 @@ hp5590
(1.0.5) kodakaio
(2.4.6) @@ -10078,7 +10054,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Hero 5.1 USB -@@ -13160,7 +13159,7 @@ +@@ -13160,7 +13159,7 @@ hp5590
(1.0.5) kodakaio
(2.4.6) @@ -10087,7 +10063,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Hero 7.1 USB -@@ -13171,7 +13170,7 @@ +@@ -13171,7 +13170,7 @@ hp5590
(1.0.5) kodakaio
(2.4.6) @@ -10096,7 +10072,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Hero 9.1 USB Ethernet -@@ -13182,7 +13181,7 @@ +@@ -13182,7 +13181,7 @@ hp5590
(1.0.5) kodakaio
(2.4.6) @@ -10105,7 +10081,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Hero Office 6.1 USB -@@ -13193,7 +13192,7 @@ +@@ -13193,7 +13192,7 @@ hp5590
(1.0.5) kodakaio
(2.4.6) @@ -10114,7 +10090,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref i30 USB -@@ -13204,7 +13203,7 @@ +@@ -13204,7 +13203,7 @@ hp5590
(1.0.5) avision
(Build: 296) @@ -10123,7 +10099,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref i40 USB -@@ -13215,7 +13214,7 @@ +@@ -13215,7 +13214,7 @@ hp5590
(1.0.5) avision
(Build: 296) @@ -10132,7 +10108,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref i50 USB -@@ -13226,7 +13225,7 @@ +@@ -13226,7 +13225,7 @@ hp5590
(1.0.5) avision
(Build: 296) @@ -10141,7 +10117,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref i55 USB -@@ -13237,7 +13236,7 @@ +@@ -13237,7 +13236,7 @@ hp5590
(1.0.5) avision
(Build: 296) @@ -10150,7 +10126,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref i60 USB -@@ -13248,7 +13247,7 @@ +@@ -13248,7 +13247,7 @@ hp5590
(1.0.5) avision
(Build: 296) @@ -10159,7 +10135,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref i65 USB -@@ -13259,7 +13258,7 @@ +@@ -13259,7 +13258,7 @@ hp5590
(1.0.5) avision
(Build: 296) @@ -10168,7 +10144,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref i80 USB -@@ -13270,7 +13269,7 @@ +@@ -13270,7 +13269,7 @@ hp5590
(1.0.5) avision
(Build: 296) @@ -10177,7 +10153,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref i150 Scanner IEEE-1394 -@@ -13281,7 +13280,7 @@ +@@ -13281,7 +13280,7 @@ hp5590
(1.0.5) kodak
(7) @@ -10186,7 +10162,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref i160 Scanner IEEE-1394 -@@ -13292,7 +13291,7 @@ +@@ -13292,7 +13291,7 @@ hp5590
(1.0.5) kodak
(7) @@ -10195,7 +10171,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref i250 Scanner IEEE-1394 -@@ -13303,7 +13302,7 @@ +@@ -13303,7 +13302,7 @@ hp5590
(1.0.5) kodak
(7) @@ -10204,7 +10180,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref i260 Scanner IEEE-1394 -@@ -13314,7 +13313,7 @@ +@@ -13314,7 +13313,7 @@ hp5590
(1.0.5) kodak
(7) @@ -10213,7 +10189,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref i280 Scanner IEEE-1394 -@@ -13325,7 +13324,7 @@ +@@ -13325,7 +13324,7 @@ hp5590
(1.0.5) kodak
(7) @@ -10222,7 +10198,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref i610 Scanner IEEE-1394 -@@ -13336,7 +13335,7 @@ +@@ -13336,7 +13335,7 @@ hp5590
(1.0.5) kodak
(7) @@ -10231,7 +10207,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref i620 Scanner IEEE-1394 -@@ -13347,7 +13346,7 @@ +@@ -13347,7 +13346,7 @@ hp5590
(1.0.5) kodak
(7) @@ -10240,7 +10216,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref i640 Scanner IEEE-1394 -@@ -13358,7 +13357,7 @@ +@@ -13358,7 +13357,7 @@ hp5590
(1.0.5) kodak
(7) @@ -10249,7 +10225,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref i660 Scanner IEEE-1394 -@@ -13369,7 +13368,7 @@ +@@ -13369,7 +13368,7 @@ hp5590
(1.0.5) kodak
(7) @@ -10258,7 +10234,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref i730 Scanner IEEE-1394 -@@ -13380,7 +13379,7 @@ +@@ -13380,7 +13379,7 @@ hp5590
(1.0.5) kodak
(7) @@ -10267,7 +10243,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref i750 Scanner IEEE-1394 -@@ -13391,7 +13390,7 @@ +@@ -13391,7 +13390,7 @@ hp5590
(1.0.5) kodak
(7) @@ -10276,7 +10252,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref i780 Scanner IEEE-1394 -@@ -13402,7 +13401,7 @@ +@@ -13402,7 +13401,7 @@ hp5590
(1.0.5) kodak
(7) @@ -10285,7 +10261,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref i810 Scanner SCSI -@@ -13413,7 +13412,7 @@ +@@ -13413,7 +13412,7 @@ hp5590
(1.0.5) kodak
(7) @@ -10294,7 +10270,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref i820 Scanner SCSI -@@ -13424,7 +13423,7 @@ +@@ -13424,7 +13423,7 @@ hp5590
(1.0.5) kodak
(7) @@ -10303,7 +10279,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref i830 Scanner SCSI -@@ -13435,7 +13434,7 @@ +@@ -13435,7 +13434,7 @@ hp5590
(1.0.5) kodak
(7) @@ -10312,7 +10288,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref i840 Scanner SCSI -@@ -13446,7 +13445,7 @@ +@@ -13446,7 +13445,7 @@ hp5590
(1.0.5) kodak
(7) @@ -10321,7 +10297,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref i1840 Scanner IEEE-1394 -@@ -13457,7 +13456,7 @@ +@@ -13457,7 +13456,7 @@ hp5590
(1.0.5) kodak
(7) @@ -10330,7 +10306,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref i1860 Scanner IEEE-1394 -@@ -13468,7 +13467,7 @@ +@@ -13468,7 +13467,7 @@ hp5590
(1.0.5) kodak
(7) @@ -10339,7 +10315,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref s1740 SCSI -@@ -13479,7 +13478,7 @@ +@@ -13479,7 +13478,7 @@ hp5590
(1.0.5) kodak
(7) @@ -10348,7 +10324,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Scanner 900 SCSI -@@ -13490,7 +13489,7 @@ +@@ -13490,7 +13489,7 @@ hp5590
(1.0.5) kodak
(7) @@ -10357,7 +10333,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Scanner 923 SCSI -@@ -13501,7 +13500,7 @@ +@@ -13501,7 +13500,7 @@ hp5590
(1.0.5) kodak
(7) @@ -10366,7 +10342,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Scanner 1500 SCSI -@@ -13512,7 +13511,7 @@ +@@ -13512,7 +13511,7 @@ hp5590
(1.0.5) kodak
(7) @@ -10375,7 +10351,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Scanner 2500 SCSI -@@ -13523,7 +13522,7 @@ +@@ -13523,7 +13522,7 @@ hp5590
(1.0.5) kodak
(7) @@ -10384,7 +10360,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Scanner 3500 SCSI -@@ -13534,7 +13533,7 @@ +@@ -13534,7 +13533,7 @@ hp5590
(1.0.5) kodak
(7) @@ -10393,7 +10369,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Scanner 3510 SCSI -@@ -13545,7 +13544,7 @@ +@@ -13545,7 +13544,7 @@ hp5590
(1.0.5) kodak
(7) @@ -10402,7 +10378,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Scanner 3520 SCSI -@@ -13556,7 +13555,7 @@ +@@ -13556,7 +13555,7 @@ hp5590
(1.0.5) kodak
(7) @@ -10411,7 +10387,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Scanner 5500 SCSI -@@ -13567,7 +13566,7 @@ +@@ -13567,7 +13566,7 @@ hp5590
(1.0.5) kodak
(7) @@ -10420,7 +10396,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Scanner 7500 SCSI -@@ -13578,7 +13577,7 @@ +@@ -13578,7 +13577,7 @@ hp5590
(1.0.5) kodak
(7) @@ -10429,7 +10405,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Scanner 7520 SCSI -@@ -13589,7 +13588,7 @@ +@@ -13589,7 +13588,7 @@ hp5590
(1.0.5) kodak
(7) @@ -10438,7 +10414,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Scanner 9500 SCSI -@@ -13600,7 +13599,7 @@ +@@ -13600,7 +13599,7 @@ hp5590
(1.0.5) kodak
(7) @@ -10447,7 +10423,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Scanner 9520 SCSI -@@ -13611,7 +13610,7 @@ +@@ -13611,7 +13610,7 @@ hp5590
(1.0.5) kodak
(7) @@ -10456,7 +10432,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Snapshot Photo Scanner 1 Parport -@@ -13649,7 +13648,7 @@ +@@ -13649,7 +13648,7 @@ hp5590
(1.0.5) sceptre
(1.0-10) @@ -10465,7 +10441,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref

Manufacturer: KONICA MINOLTA

-@@ -13676,7 +13675,7 @@ +@@ -13676,7 +13675,7 @@ hp5590
(1.0.5) magicolor
(1.0.0) @@ -10474,7 +10450,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref DiMage 1611 USB Network -@@ -13687,7 +13686,7 @@ +@@ -13687,7 +13686,7 @@ hp5590
(1.0.5) magicolor
(1.0.0) @@ -10483,7 +10459,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref DiMAGE Scan Elite 5400 USB IEEE-1394 -@@ -13753,7 +13752,7 @@ +@@ -13753,7 +13752,7 @@ hp5590
(1.0.5) magicolor
(1.0.0) @@ -10492,7 +10468,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref magicolor 2480MF USB Network -@@ -13789,7 +13788,7 @@ +@@ -13789,7 +13788,7 @@ hp5590
(1.0.5) avision
(Build: 296) @@ -10501,7 +10477,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref

Manufacturer: LEO

-@@ -13814,7 +13813,7 @@ +@@ -13814,7 +13813,7 @@ hp5590
(1.0.5) leo
(1.0-10) @@ -10510,7 +10486,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref

Manufacturer: Lexmark

-@@ -13863,7 +13862,7 @@ +@@ -13863,7 +13862,7 @@ hp5590
(1.0.5) lexmark
(1.0-0) @@ -10519,7 +10495,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref X70 USB -@@ -13874,7 +13873,7 @@ +@@ -13874,7 +13873,7 @@ hp5590
(1.0.5) gt68xx
(1.0-84) @@ -10528,7 +10504,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref X73 USB -@@ -13885,7 +13884,7 @@ +@@ -13885,7 +13884,7 @@ hp5590
(1.0.5) gt68xx
(1.0-84) @@ -10537,7 +10513,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref X74 USB -@@ -13896,7 +13895,7 @@ +@@ -13896,7 +13895,7 @@ hp5590
(1.0.5) lexmark
(1.0-0) @@ -10546,7 +10522,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref X75 USB -@@ -13940,7 +13939,7 @@ +@@ -13940,7 +13939,7 @@ hp5590
(1.0.5) lexmark
(1.0-0) @@ -10555,7 +10531,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref X1130 USB -@@ -13951,7 +13950,7 @@ +@@ -13951,7 +13950,7 @@ hp5590
(1.0.5) lexmark
(1.0-0) @@ -10564,7 +10540,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref X1140 USB -@@ -13962,7 +13961,7 @@ +@@ -13962,7 +13961,7 @@ hp5590
(1.0.5) lexmark
(1.0-0) @@ -10573,7 +10549,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref X1150 USB -@@ -13973,7 +13972,7 @@ +@@ -13973,7 +13972,7 @@ hp5590
(1.0.5) lexmark
(1.0-0) @@ -10582,7 +10558,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref X1170 USB -@@ -13984,7 +13983,7 @@ +@@ -13984,7 +13983,7 @@ hp5590
(1.0.5) lexmark
(1.0-0) @@ -10591,7 +10567,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref X1180 USB -@@ -13995,7 +13994,7 @@ +@@ -13995,7 +13994,7 @@ hp5590
(1.0.5) lexmark
(1.0-0) @@ -10600,7 +10576,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref X1185 USB -@@ -14006,7 +14005,7 @@ +@@ -14006,7 +14005,7 @@ hp5590
(1.0.5) lexmark
(1.0-0) @@ -10609,7 +10585,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref X1195 USB -@@ -14017,7 +14016,7 @@ +@@ -14017,7 +14016,7 @@ hp5590
(1.0.5) lexmark
(1.0-0) @@ -10618,7 +10594,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref X2330 USB -@@ -14143,7 +14142,7 @@ +@@ -14143,7 +14142,7 @@ hp5590
(1.0.5) umax
(1.0-41) @@ -10627,7 +10603,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Jade SCSI -@@ -14154,7 +14153,7 @@ +@@ -14154,7 +14153,7 @@ hp5590
(1.0.5) umax
(1.0-41) @@ -10636,7 +10612,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Jade2 SCSI -@@ -14165,7 +14164,7 @@ +@@ -14165,7 +14164,7 @@ hp5590
(1.0.5) umax
(1.0-41) @@ -10645,7 +10621,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Linoscan 1400 SCSI -@@ -14176,7 +14175,7 @@ +@@ -14176,7 +14175,7 @@ hp5590
(1.0.5) umax
(1.0-41) @@ -10654,7 +10630,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Opal SCSI -@@ -14187,7 +14186,7 @@ +@@ -14187,7 +14186,7 @@ hp5590
(1.0.5) umax
(1.0-41) @@ -10663,7 +10639,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Opal Ultra SCSI -@@ -14198,7 +14197,7 @@ +@@ -14198,7 +14197,7 @@ hp5590
(1.0.5) umax
(1.0-41) @@ -10672,7 +10648,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Opal2 SCSI -@@ -14209,7 +14208,7 @@ +@@ -14209,7 +14208,7 @@ hp5590
(1.0.5) umax
(1.0-41) @@ -10681,7 +10657,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Saphir SCSI -@@ -14220,7 +14219,7 @@ +@@ -14220,7 +14219,7 @@ hp5590
(1.0.5) umax
(1.0-41) @@ -10690,7 +10666,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Saphir HiRes SCSI -@@ -14231,7 +14230,7 @@ +@@ -14231,7 +14230,7 @@ hp5590
(1.0.5) umax
(1.0-41) @@ -10699,7 +10675,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Saphir Ultra SCSI -@@ -14242,7 +14241,7 @@ +@@ -14242,7 +14241,7 @@ hp5590
(1.0.5) umax
(1.0-41) @@ -10708,7 +10684,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Saphir Ultra II SCSI -@@ -14253,7 +14252,7 @@ +@@ -14253,7 +14252,7 @@ hp5590
(1.0.5) umax
(1.0-41) @@ -10717,7 +10693,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Saphir2 SCSI -@@ -14264,7 +14263,7 @@ +@@ -14264,7 +14263,7 @@ hp5590
(1.0.5) umax
(1.0-41) @@ -10726,7 +10702,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Saphir3 SCSI -@@ -14275,7 +14274,7 @@ +@@ -14275,7 +14274,7 @@ hp5590
(1.0.5) umax
(1.0-41) @@ -10735,7 +10711,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref

Manufacturer: Logitech

-@@ -14339,7 +14338,7 @@ +@@ -14339,7 +14338,7 @@ hp5590
(1.0.5) gt68xx
(1.0-84) @@ -10744,7 +10720,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref MD 4394 USB -@@ -14350,7 +14349,7 @@ +@@ -14350,7 +14349,7 @@ hp5590
(1.0.5) gt68xx
(1.0-84) @@ -10753,7 +10729,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref MD 6190 USB -@@ -14383,7 +14382,7 @@ +@@ -14383,7 +14382,7 @@ hp5590
(1.0.5) gt68xx
(1.0-84) @@ -10762,7 +10738,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref MD 9806 Parport (EPP) -@@ -14394,7 +14393,7 @@ +@@ -14394,7 +14393,7 @@ hp5590
(1.0.5) mustek_pp
(13) @@ -10771,7 +10747,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref MD 9848 Parport (EPP) -@@ -14405,7 +14404,7 @@ +@@ -14405,7 +14404,7 @@ hp5590
(1.0.5) mustek_pp
(13) @@ -10780,7 +10756,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref MD 40420 USB -@@ -14504,7 +14503,7 @@ +@@ -14504,7 +14503,7 @@ hp5590
(1.0.5) mustek_pp
(13) @@ -10789,7 +10765,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref MD/LT 985x Parport (EPP) -@@ -14515,7 +14514,7 @@ +@@ -14515,7 +14514,7 @@ hp5590
(1.0.5) mustek_pp
(13) @@ -10798,7 +10774,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref MD/LT 9375 USB -@@ -14526,7 +14525,7 @@ +@@ -14526,7 +14525,7 @@ hp5590
(1.0.5) gt68xx
(1.0-84) @@ -10807,7 +10783,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref MD/LT 9385 USB -@@ -14537,7 +14536,7 @@ +@@ -14537,7 +14536,7 @@ hp5590
(1.0.5) gt68xx
(1.0-84) @@ -10816,7 +10792,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref MD/LT 9890 Parport (EPP) -@@ -14548,7 +14547,7 @@ +@@ -14548,7 +14547,7 @@ hp5590
(1.0.5) mustek_pp
(13) @@ -10825,7 +10801,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref MD4394 USB -@@ -14558,7 +14557,7 @@ +@@ -14558,7 +14557,7 @@ hp5590
(1.0.5) artec_eplus48u
(unmaintained) @@ -10834,7 +10810,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref MD5345 USB -@@ -14569,7 +14568,7 @@ +@@ -14569,7 +14568,7 @@ artec_eplus48u
(unmaintained) genesys
(1.0-63) @@ -10843,7 +10819,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref MD6228 USB -@@ -14580,7 +14579,7 @@ +@@ -14580,7 +14579,7 @@ artec_eplus48u
(unmaintained) genesys
(1.0-63) @@ -10852,7 +10828,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref MD6471 USB -@@ -14591,7 +14590,7 @@ +@@ -14591,7 +14590,7 @@ artec_eplus48u
(unmaintained) genesys
(1.0-63) @@ -10861,7 +10837,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref MD9693 USB -@@ -14601,7 +14600,7 @@ +@@ -14601,7 +14600,7 @@ artec_eplus48u
(unmaintained) artec_eplus48u
(unmaintained) @@ -10870,7 +10846,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref MD9705 USB -@@ -14611,7 +14610,7 @@ +@@ -14611,7 +14610,7 @@ artec_eplus48u
(unmaintained) artec_eplus48u
(unmaintained) @@ -10879,7 +10855,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref

Manufacturer: Memorex

-@@ -14670,7 +14669,7 @@ +@@ -14670,7 +14669,7 @@ artec_eplus48u
(unmaintained) artec_eplus48u
(unmaintained) @@ -10888,7 +10864,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref SCF 9612P Parport -@@ -14706,7 +14705,7 @@ +@@ -14706,7 +14705,7 @@ artec_eplus48u
(unmaintained) mustek_pp
(13) @@ -10897,7 +10873,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref

Manufacturer: Microstar

-@@ -14732,7 +14731,7 @@ +@@ -14732,7 +14731,7 @@ artec_eplus48u
(unmaintained) artec_eplus48u
(unmaintained) @@ -10906,7 +10882,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref

Manufacturer: Microtek

-@@ -14804,7 +14803,7 @@ +@@ -14804,7 +14803,7 @@ artec_eplus48u
(unmaintained) microtek
(0.13.1) @@ -10915,7 +10891,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref FilmScan 35 USB -@@ -14826,7 +14825,7 @@ +@@ -14826,7 +14825,7 @@ artec_eplus48u
(unmaintained) microtek2
(unmaintained) @@ -10924,7 +10900,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Phantom 636 SCSI -@@ -14837,7 +14836,7 @@ +@@ -14837,7 +14836,7 @@ artec_eplus48u
(unmaintained) microtek2
(unmaintained) @@ -10933,7 +10909,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Phantom 636CX Parport -@@ -14848,7 +14847,7 @@ +@@ -14848,7 +14847,7 @@ artec_eplus48u
(unmaintained) microtek2
(unmaintained) @@ -10942,7 +10918,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanMaker 5 SCSI -@@ -14870,7 +14869,7 @@ +@@ -14870,7 +14869,7 @@ artec_eplus48u
(unmaintained) microtek
(0.13.1) @@ -10951,7 +10927,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Scanmaker 35t+ SCSI -@@ -14881,7 +14880,7 @@ +@@ -14881,7 +14880,7 @@ artec_eplus48u
(unmaintained) microtek
(0.13.1) @@ -10960,7 +10936,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Scanmaker 45t SCSI -@@ -14892,7 +14891,7 @@ +@@ -14892,7 +14891,7 @@ artec_eplus48u
(unmaintained) microtek
(0.13.1) @@ -10969,7 +10945,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanMaker 330 SCSI -@@ -14903,7 +14902,7 @@ +@@ -14903,7 +14902,7 @@ artec_eplus48u
(unmaintained) microtek2
(unmaintained) @@ -10978,7 +10954,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanMaker 336 CX SCSI -@@ -14925,7 +14924,7 @@ +@@ -14925,7 +14924,7 @@ artec_eplus48u
(unmaintained) microtek
(0.13.1) @@ -10987,7 +10963,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Scanmaker 600Z(S) SCSI -@@ -14936,7 +14935,7 @@ +@@ -14936,7 +14935,7 @@ artec_eplus48u
(unmaintained) microtek
(0.13.1) @@ -10996,7 +10972,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanMaker 630 SCSI -@@ -14947,7 +14946,7 @@ +@@ -14947,7 +14946,7 @@ artec_eplus48u
(unmaintained) microtek2
(unmaintained) @@ -11005,7 +10981,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanMaker 636 SCSI -@@ -14958,7 +14957,7 @@ +@@ -14958,7 +14957,7 @@ artec_eplus48u
(unmaintained) microtek2
(unmaintained) @@ -11014,7 +10990,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Scanmaker 1850S SCSI -@@ -14980,7 +14979,7 @@ +@@ -14980,7 +14979,7 @@ artec_eplus48u
(unmaintained) sm3600
(0.1) @@ -11023,7 +10999,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanMaker 3600 USB -@@ -14991,7 +14990,7 @@ +@@ -14991,7 +14990,7 @@ artec_eplus48u
(unmaintained) sm3600
(0.1) @@ -11032,7 +11008,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanMaker 3600 USB -@@ -15002,7 +15001,7 @@ +@@ -15002,7 +15001,7 @@ artec_eplus48u
(unmaintained) sm3600
(0.1) @@ -11041,7 +11017,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanMaker 3630 USB -@@ -15024,7 +15023,7 @@ +@@ -15024,7 +15023,7 @@ artec_eplus48u
(unmaintained) sm3600
(0.1) @@ -11050,7 +11026,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanMaker 3700 USB -@@ -15035,7 +15034,7 @@ +@@ -15035,7 +15034,7 @@ artec_eplus48u
(unmaintained) sm3600
(0.1) @@ -11059,7 +11035,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanMaker 3750 USB -@@ -15046,7 +15045,7 @@ +@@ -15046,7 +15045,7 @@ artec_eplus48u
(unmaintained) sm3600
(0.1) @@ -11068,7 +11044,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanMaker 3800 USB -@@ -15079,7 +15078,7 @@ +@@ -15079,7 +15078,7 @@ artec_eplus48u
(unmaintained) sm3840
(1.1) @@ -11077,7 +11053,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanMaker 3860 USB -@@ -15134,7 +15133,7 @@ +@@ -15134,7 +15133,7 @@ artec_eplus48u
(unmaintained) sm3840
(1.1) @@ -11086,7 +11062,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanMaker 4850 USB -@@ -15266,7 +15265,7 @@ +@@ -15266,7 +15265,7 @@ artec_eplus48u
(unmaintained) microtek2
(unmaintained) @@ -11095,7 +11071,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanMaker 6700 USB IEEE-1394 -@@ -15310,7 +15309,7 @@ +@@ -15310,7 +15309,7 @@ artec_eplus48u
(unmaintained) microtek2
(unmaintained) @@ -11104,7 +11080,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanMaker 9800XL USB SCSI -@@ -15332,7 +15331,7 @@ +@@ -15332,7 +15331,7 @@ artec_eplus48u
(unmaintained) microtek2
(unmaintained) @@ -11113,7 +11089,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Scanmaker E2 SCSI -@@ -15343,7 +15342,7 @@ +@@ -15343,7 +15342,7 @@ artec_eplus48u
(unmaintained) microtek
(0.13.1) @@ -11122,7 +11098,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Scanmaker E3 SCSI -@@ -15354,7 +15353,7 @@ +@@ -15354,7 +15353,7 @@ artec_eplus48u
(unmaintained) microtek
(0.13.1) @@ -11131,7 +11107,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanMaker E3plus SCSI -@@ -15365,7 +15364,7 @@ +@@ -15365,7 +15364,7 @@ artec_eplus48u
(unmaintained) microtek2
(unmaintained) @@ -11140,7 +11116,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanMaker E3plus Parport -@@ -15376,7 +15375,7 @@ +@@ -15376,7 +15375,7 @@ artec_eplus48u
(unmaintained) microtek2
(unmaintained) @@ -11149,7 +11125,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Scanmaker E6 SCSI -@@ -15387,7 +15386,7 @@ +@@ -15387,7 +15386,7 @@ artec_eplus48u
(unmaintained) microtek
(0.13.1) @@ -11158,7 +11134,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanMaker i320 USB -@@ -15409,7 +15408,7 @@ +@@ -15409,7 +15408,7 @@ artec_eplus48u
(unmaintained) microtek
(0.13.1) @@ -11167,7 +11143,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Scanmaker IIG SCSI -@@ -15420,7 +15419,7 @@ +@@ -15420,7 +15419,7 @@ artec_eplus48u
(unmaintained) microtek
(0.13.1) @@ -11176,7 +11152,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Scanmaker IIHR SCSI -@@ -15431,7 +15430,7 @@ +@@ -15431,7 +15430,7 @@ artec_eplus48u
(unmaintained) microtek
(0.13.1) @@ -11185,7 +11161,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Scanmaker III SCSI -@@ -15442,7 +15441,7 @@ +@@ -15442,7 +15441,7 @@ artec_eplus48u
(unmaintained) microtek
(0.13.1) @@ -11194,7 +11170,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Scanmaker IISP SCSI -@@ -15453,7 +15452,7 @@ +@@ -15453,7 +15452,7 @@ artec_eplus48u
(unmaintained) microtek
(0.13.1) @@ -11203,7 +11179,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanMaker S400 USB -@@ -15486,7 +15485,7 @@ +@@ -15486,7 +15485,7 @@ artec_eplus48u
(unmaintained) microtek2
(unmaintained) @@ -11212,7 +11188,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanMaker V6USL USB -@@ -15497,7 +15496,7 @@ +@@ -15497,7 +15496,7 @@ artec_eplus48u
(unmaintained) microtek2
(unmaintained) @@ -11221,7 +11197,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanMaker V6USL USB -@@ -15508,7 +15507,7 @@ +@@ -15508,7 +15507,7 @@ artec_eplus48u
(unmaintained) microtek2
(unmaintained) @@ -11230,7 +11206,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanMaker V6USL SCSI -@@ -15519,7 +15518,7 @@ +@@ -15519,7 +15518,7 @@ artec_eplus48u
(unmaintained) microtek2
(unmaintained) @@ -11239,7 +11215,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanMaker V300 Parport -@@ -15530,7 +15529,7 @@ +@@ -15530,7 +15529,7 @@ artec_eplus48u
(unmaintained) microtek2
(unmaintained) @@ -11248,7 +11224,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanMaker V300 SCSI -@@ -15541,7 +15540,7 @@ +@@ -15541,7 +15540,7 @@ artec_eplus48u
(unmaintained) microtek2
(unmaintained) @@ -11257,7 +11233,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanMaker V310 Parport -@@ -15552,7 +15551,7 @@ +@@ -15552,7 +15551,7 @@ artec_eplus48u
(unmaintained) microtek2
(unmaintained) @@ -11266,7 +11242,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanMaker V310 SCSI -@@ -15563,7 +15562,7 @@ +@@ -15563,7 +15562,7 @@ artec_eplus48u
(unmaintained) microtek2
(unmaintained) @@ -11275,7 +11251,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanMaker V600 Parport -@@ -15574,7 +15573,7 @@ +@@ -15574,7 +15573,7 @@ artec_eplus48u
(unmaintained) microtek2
(unmaintained) @@ -11284,7 +11260,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanMaker V600 SCSI -@@ -15585,7 +15584,7 @@ +@@ -15585,7 +15584,7 @@ artec_eplus48u
(unmaintained) microtek2
(unmaintained) @@ -11293,7 +11269,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanMaker X6 SCSI -@@ -15596,7 +15595,7 @@ +@@ -15596,7 +15595,7 @@ artec_eplus48u
(unmaintained) microtek2
(unmaintained) @@ -11302,7 +11278,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanMaker X6EL SCSI -@@ -15607,7 +15606,7 @@ +@@ -15607,7 +15606,7 @@ artec_eplus48u
(unmaintained) microtek2
(unmaintained) @@ -11311,7 +11287,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanMaker X6USB USB -@@ -15618,7 +15617,7 @@ +@@ -15618,7 +15617,7 @@ artec_eplus48u
(unmaintained) microtek2
(unmaintained) @@ -11320,7 +11296,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanMaker X12USL SCSI -@@ -15629,7 +15628,7 @@ +@@ -15629,7 +15628,7 @@ artec_eplus48u
(unmaintained) microtek2
(unmaintained) @@ -11329,7 +11305,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanPort 3000 USB -@@ -15651,7 +15650,7 @@ +@@ -15651,7 +15650,7 @@ artec_eplus48u
(unmaintained) microtek2
(unmaintained) @@ -11338,7 +11314,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref SlimScan C6 USB -@@ -15662,7 +15661,7 @@ +@@ -15662,7 +15661,7 @@ artec_eplus48u
(unmaintained) microtek2
(unmaintained) @@ -11347,7 +11323,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref

Manufacturer: Minolta

-@@ -15689,7 +15688,7 @@ +@@ -15689,7 +15688,7 @@ artec_eplus48u
(unmaintained) avision
(Build: 296) @@ -11356,7 +11332,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Dimage Scan Dual II USB -@@ -15700,7 +15699,7 @@ +@@ -15700,7 +15699,7 @@ artec_eplus48u
(unmaintained) avision
(Build: 296) @@ -11365,7 +11341,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Dimage Scan Dual III USB -@@ -15711,7 +15710,7 @@ +@@ -15711,7 +15710,7 @@ artec_eplus48u
(unmaintained) avision
(Build: 296) @@ -11374,7 +11350,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Dimage Scan Elite 5400 USB -@@ -15722,7 +15721,7 @@ +@@ -15722,7 +15721,7 @@ artec_eplus48u
(unmaintained) avision
(Build: 296) @@ -11383,7 +11359,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Elite II USB -@@ -15733,7 +15732,7 @@ +@@ -15733,7 +15732,7 @@ artec_eplus48u
(unmaintained) avision
(Build: 296) @@ -11392,7 +11368,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Scan Multi Pro SCSI -@@ -15744,7 +15743,7 @@ +@@ -15744,7 +15743,7 @@ artec_eplus48u
(unmaintained) avision
(Build: 296) @@ -11401,7 +11377,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref

Manufacturer: Minolta-QMS

-@@ -15769,7 +15768,7 @@ +@@ -15769,7 +15768,7 @@ artec_eplus48u
(unmaintained) avision
(Build: 296) @@ -11410,7 +11386,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref SC-215 USB -@@ -15780,7 +15779,7 @@ +@@ -15780,7 +15779,7 @@ artec_eplus48u
(unmaintained) avision
(Build: 296) @@ -11419,7 +11395,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref

Manufacturer: Mitsubishi

-@@ -15807,7 +15806,7 @@ +@@ -15807,7 +15806,7 @@ artec_eplus48u
(unmaintained) SnapScan
(1.4) @@ -11428,7 +11404,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Diamondview 650U USB -@@ -15818,7 +15817,7 @@ +@@ -15818,7 +15817,7 @@ artec_eplus48u
(unmaintained) SnapScan
(1.4) @@ -11437,7 +11413,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref MCA-ADFC SCSI -@@ -15829,7 +15828,7 @@ +@@ -15829,7 +15828,7 @@ artec_eplus48u
(unmaintained) avision
(Build: 296) @@ -11446,7 +11422,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref S600C SCSI -@@ -15840,7 +15839,7 @@ +@@ -15840,7 +15839,7 @@ artec_eplus48u
(unmaintained) avision
(Build: 296) @@ -11455,7 +11431,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref S1200C SCSI -@@ -15851,7 +15850,7 @@ +@@ -15851,7 +15850,7 @@ artec_eplus48u
(unmaintained) avision
(Build: 296) @@ -11464,7 +11440,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref SS600 SCSI -@@ -15862,7 +15861,7 @@ +@@ -15862,7 +15861,7 @@ artec_eplus48u
(unmaintained) avision
(Build: 296) @@ -11473,7 +11449,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref

Manufacturer: Mustek

-@@ -15889,7 +15888,7 @@ +@@ -15889,7 +15888,7 @@ artec_eplus48u
(unmaintained) mustek_pp
(13) @@ -11482,7 +11458,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref 600 III EP Plus Parport (EPP) -@@ -15900,7 +15899,7 @@ +@@ -15900,7 +15899,7 @@ artec_eplus48u
(unmaintained) mustek_pp
(13) @@ -11491,7 +11467,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref 1200 III EP Parport -@@ -15933,7 +15932,7 @@ +@@ -15933,7 +15932,7 @@ artec_eplus48u
(unmaintained) plustek
(0.52) @@ -11500,7 +11476,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref BearPaw 1200 USB -@@ -15944,7 +15943,7 @@ +@@ -15944,7 +15943,7 @@ artec_eplus48u
(unmaintained) plustek
(0.52) @@ -11509,7 +11485,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref BearPaw 1200 CS USB -@@ -15955,7 +15954,7 @@ +@@ -15955,7 +15954,7 @@ artec_eplus48u
(unmaintained) gt68xx
(1.0-84) @@ -11518,7 +11494,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref BearPaw 1200 CU USB -@@ -15966,7 +15965,7 @@ +@@ -15966,7 +15965,7 @@ artec_eplus48u
(unmaintained) gt68xx
(1.0-84) @@ -11527,7 +11503,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref BearPaw 1200 CU Plus USB -@@ -15977,7 +15976,7 @@ +@@ -15977,7 +15976,7 @@ artec_eplus48u
(unmaintained) gt68xx
(1.0-84) @@ -11536,7 +11512,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref BearPaw 1200 CU Plus USB -@@ -15988,7 +15987,7 @@ +@@ -15988,7 +15987,7 @@ artec_eplus48u
(unmaintained) gt68xx
(1.0-84) @@ -11545,7 +11521,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref BearPaw 1200 F USB -@@ -15999,7 +15998,7 @@ +@@ -15999,7 +15998,7 @@ artec_eplus48u
(unmaintained) ma1509
(1.0-3) @@ -11554,7 +11530,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref BearPaw 1200 TA USB -@@ -16010,7 +16009,7 @@ +@@ -16010,7 +16009,7 @@ artec_eplus48u
(unmaintained) gt68xx
(1.0-84) @@ -11563,7 +11539,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref BearPaw 1248 CU USB -@@ -16021,7 +16020,7 @@ +@@ -16021,7 +16020,7 @@ artec_eplus48u
(unmaintained) gt68xx
(1.0-84) @@ -11572,7 +11548,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref BearPaw 2400 USB -@@ -16032,7 +16031,7 @@ +@@ -16032,7 +16031,7 @@ artec_eplus48u
(unmaintained) plustek
(0.52) @@ -11581,7 +11557,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref BearPaw 2400 CS USB -@@ -16043,7 +16042,7 @@ +@@ -16043,7 +16042,7 @@ artec_eplus48u
(unmaintained) gt68xx
(1.0-84) @@ -11590,7 +11566,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref BearPaw 2400 CS Plus USB -@@ -16054,7 +16053,7 @@ +@@ -16054,7 +16053,7 @@ artec_eplus48u
(unmaintained) gt68xx
(1.0-84) @@ -11599,7 +11575,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref BearPaw 2400 CU USB -@@ -16065,7 +16064,7 @@ +@@ -16065,7 +16064,7 @@ artec_eplus48u
(unmaintained) gt68xx
(1.0-84) @@ -11608,7 +11584,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref BearPaw 2400 CU Plus USB -@@ -16076,7 +16075,7 @@ +@@ -16076,7 +16075,7 @@ artec_eplus48u
(unmaintained) gt68xx
(1.0-84) @@ -11617,7 +11593,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref BearPaw 2400 TA USB -@@ -16087,7 +16086,7 @@ +@@ -16087,7 +16086,7 @@ artec_eplus48u
(unmaintained) gt68xx
(1.0-84) @@ -11626,7 +11602,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref BearPaw 2400 TA Plus USB -@@ -16098,7 +16097,7 @@ +@@ -16098,7 +16097,7 @@ artec_eplus48u
(unmaintained) gt68xx
(1.0-84) @@ -11635,7 +11611,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref BearPaw 2400 TA Pro USB -@@ -16120,7 +16119,7 @@ +@@ -16120,7 +16119,7 @@ artec_eplus48u
(unmaintained) gt68xx
(1.0-84) @@ -11644,7 +11620,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref BearPaw 2448 CU Pro USB -@@ -16142,7 +16141,7 @@ +@@ -16142,7 +16141,7 @@ artec_eplus48u
(unmaintained) gt68xx
(1.0-84) @@ -11653,7 +11629,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref BearPaw 2448TA Pro USB -@@ -16153,7 +16152,7 @@ +@@ -16153,7 +16152,7 @@ artec_eplus48u
(unmaintained) mustek_usb2
(1.0-10) @@ -11662,7 +11638,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref BearPaw 4800 TA Pro USB -@@ -16197,7 +16196,7 @@ +@@ -16197,7 +16196,7 @@ artec_eplus48u
(unmaintained) mustek
(1.0-138) @@ -11671,7 +11647,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Paragon 600 II ED Parport -@@ -16208,7 +16207,7 @@ +@@ -16208,7 +16207,7 @@ artec_eplus48u
(unmaintained) mustek
(1.0-138) @@ -11680,7 +11656,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Paragon 600 II EP Parport -@@ -16219,7 +16218,7 @@ +@@ -16219,7 +16218,7 @@ artec_eplus48u
(unmaintained) mustek
(1.0-138) @@ -11689,7 +11665,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Paragon 600 II N Proprietary -@@ -16230,7 +16229,7 @@ +@@ -16230,7 +16229,7 @@ artec_eplus48u
(unmaintained) mustek
(1.0-138) @@ -11698,7 +11674,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Paragon 800 II EP Parport -@@ -16252,7 +16251,7 @@ +@@ -16252,7 +16251,7 @@ artec_eplus48u
(unmaintained) mustek
(1.0-138) @@ -11707,7 +11683,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Paragon 1200 A3 Pro SCSI -@@ -16263,7 +16262,7 @@ +@@ -16263,7 +16262,7 @@ artec_eplus48u
(unmaintained) mustek
(1.0-138) @@ -11716,7 +11692,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Paragon 1200 III SP SCSI -@@ -16274,7 +16273,7 @@ +@@ -16274,7 +16273,7 @@ artec_eplus48u
(unmaintained) mustek
(1.0-138) @@ -11725,7 +11701,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Paragon 1200 LS SCSI -@@ -16285,7 +16284,7 @@ +@@ -16285,7 +16284,7 @@ artec_eplus48u
(unmaintained) mustek
(1.0-138) @@ -11734,7 +11710,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Paragon 1200 SP Pro SCSI -@@ -16296,7 +16295,7 @@ +@@ -16296,7 +16295,7 @@ artec_eplus48u
(unmaintained) mustek
(1.0-138) @@ -11743,7 +11719,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Paragon MFC-600S SCSI -@@ -16307,7 +16306,7 @@ +@@ -16307,7 +16306,7 @@ artec_eplus48u
(unmaintained) mustek
(1.0-138) @@ -11752,7 +11728,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Paragon MFC-800S SCSI -@@ -16318,7 +16317,7 @@ +@@ -16318,7 +16317,7 @@ artec_eplus48u
(unmaintained) mustek
(1.0-138) @@ -11761,7 +11737,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Paragon MFS-1200SP SCSI -@@ -16329,7 +16328,7 @@ +@@ -16329,7 +16328,7 @@ artec_eplus48u
(unmaintained) mustek
(1.0-138) @@ -11770,7 +11746,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Paragon MFS-6000CX SCSI -@@ -16340,7 +16339,7 @@ +@@ -16340,7 +16339,7 @@ artec_eplus48u
(unmaintained) mustek
(1.0-138) @@ -11779,7 +11755,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Paragon MFS-6000SP SCSI -@@ -16351,7 +16350,7 @@ +@@ -16351,7 +16350,7 @@ artec_eplus48u
(unmaintained) mustek
(1.0-138) @@ -11788,7 +11764,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Paragon MFS-8000SP SCSI -@@ -16362,7 +16361,7 @@ +@@ -16362,7 +16361,7 @@ artec_eplus48u
(unmaintained) mustek
(1.0-138) @@ -11797,7 +11773,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Paragon MFS-12000CX SCSI -@@ -16373,7 +16372,7 @@ +@@ -16373,7 +16372,7 @@ artec_eplus48u
(unmaintained) mustek
(1.0-138) @@ -11806,7 +11782,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Paragon MFS-12000SP SCSI -@@ -16384,7 +16383,7 @@ +@@ -16384,7 +16383,7 @@ artec_eplus48u
(unmaintained) mustek
(1.0-138) @@ -11815,7 +11791,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Plug-n-Scan 2400 M USB -@@ -16395,7 +16394,7 @@ +@@ -16395,7 +16394,7 @@ artec_eplus48u
(unmaintained) gt68xx
(1.0-84) @@ -11824,7 +11800,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Plug-n-Scan 2400 MT USB -@@ -16406,7 +16405,7 @@ +@@ -16406,7 +16405,7 @@ artec_eplus48u
(unmaintained) gt68xx
(1.0-84) @@ -11833,7 +11809,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanExpress 600 CP Parport (EPP) -@@ -16417,7 +16416,7 @@ +@@ -16417,7 +16416,7 @@ artec_eplus48u
(unmaintained) mustek_pp
(13) @@ -11842,7 +11818,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanExpress 600 CU USB -@@ -16428,7 +16427,7 @@ +@@ -16428,7 +16427,7 @@ artec_eplus48u
(unmaintained) mustek_usb
(1.0-18) @@ -11851,7 +11827,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanExpress 600 SEP Parport (EPP) -@@ -16439,7 +16438,7 @@ +@@ -16439,7 +16438,7 @@ artec_eplus48u
(unmaintained) mustek_pp
(13) @@ -11860,7 +11836,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanExpress 600 USB USB -@@ -16461,7 +16460,7 @@ +@@ -16461,7 +16460,7 @@ artec_eplus48u
(unmaintained) mustek_pp
(13) @@ -11869,7 +11845,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanExpress 1200 CP+ Parport (EPP) -@@ -16472,7 +16471,7 @@ +@@ -16472,7 +16471,7 @@ artec_eplus48u
(unmaintained) mustek_pp
(13) @@ -11878,7 +11854,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanExpress 1200 CU USB -@@ -16483,7 +16482,7 @@ +@@ -16483,7 +16482,7 @@ artec_eplus48u
(unmaintained) mustek_usb
(1.0-18) @@ -11887,7 +11863,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanExpress 1200 CU Plus USB -@@ -16494,7 +16493,7 @@ +@@ -16494,7 +16493,7 @@ artec_eplus48u
(unmaintained) mustek_usb
(1.0-18) @@ -11896,7 +11872,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanExpress 1200 FS SCSI -@@ -16505,7 +16504,7 @@ +@@ -16505,7 +16504,7 @@ artec_eplus48u
(unmaintained) mustek
(1.0-138) @@ -11905,7 +11881,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanExpress 1200 UB USB -@@ -16516,7 +16515,7 @@ +@@ -16516,7 +16515,7 @@ artec_eplus48u
(unmaintained) mustek_usb
(1.0-18) @@ -11914,7 +11890,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanExpress 1200 UB Plus USB -@@ -16527,7 +16526,7 @@ +@@ -16527,7 +16526,7 @@ artec_eplus48u
(unmaintained) gt68xx
(1.0-84) @@ -11923,7 +11899,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanExpress 1200 USB USB -@@ -16560,7 +16559,7 @@ +@@ -16560,7 +16559,7 @@ artec_eplus48u
(unmaintained) gt68xx
(1.0-84) @@ -11932,7 +11908,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanExpress 2400 USB USB -@@ -16571,7 +16570,7 @@ +@@ -16571,7 +16570,7 @@ artec_eplus48u
(unmaintained) gt68xx
(1.0-84) @@ -11941,7 +11917,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanExpress 6000 P Parport (EPP) -@@ -16582,7 +16581,7 @@ +@@ -16582,7 +16581,7 @@ artec_eplus48u
(unmaintained) mustek_pp
(13) @@ -11950,7 +11926,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanExpress 6000SP SCSI -@@ -16593,7 +16592,7 @@ +@@ -16593,7 +16592,7 @@ artec_eplus48u
(unmaintained) mustek
(1.0-138) @@ -11959,7 +11935,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanExpress 12000 P Parport -@@ -16615,7 +16614,7 @@ +@@ -16615,7 +16614,7 @@ artec_eplus48u
(unmaintained) mustek
(1.0-138) @@ -11968,7 +11944,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanExpress 12000SP Plus SCSI -@@ -16626,7 +16625,7 @@ +@@ -16626,7 +16625,7 @@ artec_eplus48u
(unmaintained) mustek
(1.0-138) @@ -11977,7 +11953,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanExpress A3 EP Parport -@@ -16648,7 +16647,7 @@ +@@ -16648,7 +16647,7 @@ artec_eplus48u
(unmaintained) mustek
(1.0-138) @@ -11986,7 +11962,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanExpress A3 USB USB -@@ -16659,7 +16658,7 @@ +@@ -16659,7 +16658,7 @@ artec_eplus48u
(unmaintained) gt68xx
(1.0-84) @@ -11995,7 +11971,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanExpress CardSmart USB -@@ -16681,7 +16680,7 @@ +@@ -16681,7 +16680,7 @@ artec_eplus48u
(unmaintained) mustek_pp
(13) @@ -12004,7 +11980,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanMagic 600 II SP SCSI -@@ -16692,7 +16691,7 @@ +@@ -16692,7 +16691,7 @@ artec_eplus48u
(unmaintained) mustek
(1.0-138) @@ -12013,7 +11989,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanMagic 1200 UB Plus USB -@@ -16703,7 +16702,7 @@ +@@ -16703,7 +16702,7 @@ artec_eplus48u
(unmaintained) gt68xx
(1.0-84) @@ -12022,7 +11998,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanMagic 4800 P Parport (EPP) -@@ -16714,7 +16713,7 @@ +@@ -16714,7 +16713,7 @@ artec_eplus48u
(unmaintained) mustek_pp
(13) @@ -12031,7 +12007,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanMagic 4830S SCSI -@@ -16725,7 +16724,7 @@ +@@ -16725,7 +16724,7 @@ artec_eplus48u
(unmaintained) teco2
(1.0-9) @@ -12040,7 +12016,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanMagic 9636P Parport -@@ -16747,7 +16746,7 @@ +@@ -16747,7 +16746,7 @@ artec_eplus48u
(unmaintained) mustek
(1.0-138) @@ -12049,7 +12025,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanMagic 9636S Plus SCSI -@@ -16758,7 +16757,7 @@ +@@ -16758,7 +16757,7 @@ artec_eplus48u
(unmaintained) mustek
(1.0-138) @@ -12058,7 +12034,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref TwainScan II SP SCSI -@@ -16769,7 +16768,7 @@ +@@ -16769,7 +16768,7 @@ artec_eplus48u
(unmaintained) mustek
(1.0-138) @@ -12067,7 +12043,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref

Manufacturer: NeatReceipts

-@@ -16794,7 +16793,7 @@ +@@ -16794,7 +16793,7 @@ artec_eplus48u
(unmaintained) gt68xx
(1.0-84) @@ -12076,7 +12052,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Scanalizer Professional 2.5 USB -@@ -16805,7 +16804,7 @@ +@@ -16805,7 +16804,7 @@ artec_eplus48u
(unmaintained) gt68xx
(1.0-84) @@ -12085,7 +12061,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref

Manufacturer: NEC

-@@ -16832,7 +16831,7 @@ +@@ -16832,7 +16831,7 @@ artec_eplus48u
(unmaintained) nec
(0.12) @@ -12094,7 +12070,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Petiscan USB -@@ -16868,7 +16867,7 @@ +@@ -16868,7 +16867,7 @@ artec_eplus48u
(unmaintained) mustek_pp
(13) @@ -12103,7 +12079,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref

Manufacturer: Nikon

-@@ -16895,7 +16894,7 @@ +@@ -16895,7 +16894,7 @@ artec_eplus48u
(unmaintained) umax
(1.0-41) @@ -12112,7 +12088,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref AX-210 SCSI -@@ -16906,7 +16905,7 @@ +@@ -16906,7 +16905,7 @@ artec_eplus48u
(unmaintained) umax
(1.0-41) @@ -12121,7 +12097,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Coolscan III SCSI -@@ -16916,7 +16915,7 @@ +@@ -16916,7 +16915,7 @@ artec_eplus48u
(unmaintained) coolscan3
(1.0.0) @@ -12130,7 +12106,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Coolscan V ED USB -@@ -16926,7 +16925,7 @@ +@@ -16926,7 +16925,7 @@ coolscan3
(1.0.0) coolscan3
(1.0.0) @@ -12139,7 +12115,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Coolscan V ED USB -@@ -16937,7 +16936,7 @@ +@@ -16937,7 +16936,7 @@ coolscan3
(1.0.0) coolscan2
(0.1.8) @@ -12148,7 +12124,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Coolspan IV USB -@@ -16947,7 +16946,7 @@ +@@ -16947,7 +16946,7 @@ coolscan3
(1.0.0) coolscan3
(1.0.0) @@ -12157,7 +12133,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref LS 30 SCSI -@@ -16957,7 +16956,7 @@ +@@ -16957,7 +16956,7 @@ coolscan3
(1.0.0) coolscan3
(1.0.0) @@ -12166,7 +12142,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref LS 30 SCSI -@@ -16968,7 +16967,7 @@ +@@ -16968,7 +16967,7 @@ coolscan3
(1.0.0) coolscan2
(0.1.8) @@ -12175,7 +12151,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref LS 40 ED USB -@@ -16978,7 +16977,7 @@ +@@ -16978,7 +16977,7 @@ coolscan3
(1.0.0) coolscan3
(1.0.0) @@ -12184,7 +12160,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref LS 40 ED USB -@@ -16989,7 +16988,7 @@ +@@ -16989,7 +16988,7 @@ coolscan3
(1.0.0) coolscan2
(0.1.8) @@ -12193,7 +12169,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref LS 50 ED USB -@@ -16999,7 +16998,7 @@ +@@ -16999,7 +16998,7 @@ coolscan3
(1.0.0) coolscan3
(1.0.0) @@ -12202,7 +12178,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref LS 50 ED USB -@@ -17010,7 +17009,7 @@ +@@ -17010,7 +17009,7 @@ coolscan3
(1.0.0) coolscan2
(0.1.8) @@ -12211,7 +12187,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref LS 2000 SCSI -@@ -17020,7 +17019,7 @@ +@@ -17020,7 +17019,7 @@ coolscan3
(1.0.0) coolscan3
(1.0.0) @@ -12220,7 +12196,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref LS 2000 SCSI -@@ -17031,7 +17030,7 @@ +@@ -17031,7 +17030,7 @@ coolscan3
(1.0.0) coolscan2
(0.1.8) @@ -12229,7 +12205,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref LS 4000 ED IEEE-1394 -@@ -17041,7 +17040,7 @@ +@@ -17041,7 +17040,7 @@ coolscan3
(1.0.0) coolscan3
(1.0.0) @@ -12238,7 +12214,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref LS 4000 ED IEEE-1394 -@@ -17052,7 +17051,7 @@ +@@ -17052,7 +17051,7 @@ coolscan3
(1.0.0) coolscan2
(0.1.8) @@ -12247,7 +12223,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref LS 8000 ED IEEE-1394 -@@ -17062,7 +17061,7 @@ +@@ -17062,7 +17061,7 @@ coolscan3
(1.0.0) coolscan3
(1.0.0) @@ -12256,7 +12232,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref LS 8000 ED IEEE-1394 -@@ -17073,7 +17072,7 @@ +@@ -17073,7 +17072,7 @@ coolscan3
(1.0.0) coolscan2
(0.1.8) @@ -12265,7 +12241,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref LS-20 SCSI -@@ -17084,7 +17083,7 @@ +@@ -17084,7 +17083,7 @@ coolscan3
(1.0.0) coolscan
(0.4.3) @@ -12274,7 +12250,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref LS-30 SCSI -@@ -17095,7 +17094,7 @@ +@@ -17095,7 +17094,7 @@ coolscan3
(1.0.0) coolscan
(0.4.3) @@ -12283,7 +12259,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref LS-1000 SCSI -@@ -17106,7 +17105,7 @@ +@@ -17106,7 +17105,7 @@ coolscan3
(1.0.0) coolscan
(0.4.3) @@ -12292,7 +12268,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref LS-2000 SCSI -@@ -17117,7 +17116,7 @@ +@@ -17117,7 +17116,7 @@ coolscan3
(1.0.0) coolscan
(0.4.3) @@ -12301,7 +12277,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref LS-9000 ED IEEE-1394 -@@ -17138,7 +17137,7 @@ +@@ -17138,7 +17137,7 @@ coolscan3
(1.0.0) coolscan3
(1.0.0) @@ -12310,7 +12286,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Super Coolscan LS-5000 ED USB -@@ -17149,7 +17148,7 @@ +@@ -17149,7 +17148,7 @@ coolscan3
(1.0.0) coolscan2
(0.1.8) @@ -12319,7 +12295,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref

Manufacturer: Nortek

-@@ -17174,7 +17173,7 @@ +@@ -17174,7 +17173,7 @@ coolscan3
(1.0.0) gt68xx
(1.0-84) @@ -12328,7 +12304,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref

Manufacturer: OKI

-@@ -17199,7 +17198,7 @@ +@@ -17199,7 +17198,7 @@ coolscan3
(1.0.0) avision
(Build: 296) @@ -12337,7 +12313,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref

Manufacturer: Olivetti

-@@ -17394,7 +17393,7 @@ +@@ -17394,7 +17393,7 @@ coolscan3
(1.0.0) gt68xx
(1.0-84) @@ -12346,7 +12322,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Diamond 1200 Plus USB -@@ -17405,7 +17404,7 @@ +@@ -17405,7 +17404,7 @@ coolscan3
(1.0.0) gt68xx
(1.0-84) @@ -12355,7 +12331,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Diamond 1200 Plus USB -@@ -17416,7 +17415,7 @@ +@@ -17416,7 +17415,7 @@ coolscan3
(1.0.0) gt68xx
(1.0-84) @@ -12364,7 +12340,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Diamond 2450 USB -@@ -17427,7 +17426,7 @@ +@@ -17427,7 +17426,7 @@ coolscan3
(1.0.0) gt68xx
(1.0-84) @@ -12373,7 +12349,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref

Manufacturer: Panasonic

-@@ -17453,7 +17452,7 @@ +@@ -17453,7 +17452,7 @@ coolscan3
(1.0.0) kvs1025
(unmaintained) @@ -12382,7 +12358,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref KV-S1025C USB -@@ -17463,7 +17462,7 @@ +@@ -17463,7 +17462,7 @@ kvs1025
(unmaintained) kvs1025
(unmaintained) @@ -12391,7 +12367,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref KV-S1045C USB -@@ -17473,7 +17472,7 @@ +@@ -17473,7 +17472,7 @@ kvs1025
(unmaintained) kvs1025
(unmaintained) @@ -12400,7 +12376,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref KV-S2025C SCSI -@@ -17484,7 +17483,7 @@ +@@ -17484,7 +17483,7 @@ kvs1025
(unmaintained) matsushita
(1.0-7) @@ -12409,7 +12385,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref KV-S2026C USB SCSI -@@ -17494,7 +17493,7 @@ +@@ -17494,7 +17493,7 @@ kvs1025
(unmaintained) kvs20xx
(unmaintained) @@ -12418,7 +12394,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref KV-S2028C USB -@@ -17504,7 +17503,7 @@ +@@ -17504,7 +17503,7 @@ kvs20xx
(unmaintained) kvs20xx
(unmaintained) @@ -12427,7 +12403,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref KV-S2045C SCSI -@@ -17515,7 +17514,7 @@ +@@ -17515,7 +17514,7 @@ kvs20xx
(unmaintained) matsushita
(1.0-7) @@ -12436,7 +12412,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref KV-S2046C USB SCSI -@@ -17525,7 +17524,7 @@ +@@ -17525,7 +17524,7 @@ kvs20xx
(unmaintained) kvs20xx
(unmaintained) @@ -12445,7 +12421,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref KV-S2048C USB -@@ -17535,7 +17534,7 @@ +@@ -17535,7 +17534,7 @@ kvs20xx
(unmaintained) kvs20xx
(unmaintained) @@ -12454,7 +12430,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref KV-S2055L SCSI -@@ -17568,7 +17567,7 @@ +@@ -17568,7 +17567,7 @@ kvs20xx
(unmaintained) matsushita
(1.0-7) @@ -12463,7 +12439,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref KV-S2065W SCSI -@@ -17633,7 +17632,7 @@ +@@ -17633,7 +17632,7 @@ kvs20xx
(unmaintained) kvs40xx
(unmaintained) @@ -12472,7 +12448,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref KV-S4085C USB -@@ -17643,7 +17642,7 @@ +@@ -17643,7 +17642,7 @@ kvs40xx
(unmaintained) kvs40xx
(unmaintained) @@ -12481,7 +12457,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref KV-S6040W SCSI -@@ -17708,7 +17707,7 @@ +@@ -17708,7 +17707,7 @@ kvs40xx
(unmaintained) kvs40xx
(unmaintained) @@ -12490,7 +12466,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref KV-SS25 SCSI -@@ -17719,7 +17718,7 @@ +@@ -17719,7 +17718,7 @@ kvs40xx
(unmaintained) matsushita
(1.0-7) @@ -12499,7 +12475,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref KV-SS25D SCSI -@@ -17730,7 +17729,7 @@ +@@ -17730,7 +17729,7 @@ kvs40xx
(unmaintained) matsushita
(1.0-7) @@ -12508,7 +12484,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref KV-SS50 SCSI -@@ -17741,7 +17740,7 @@ +@@ -17741,7 +17740,7 @@ kvs40xx
(unmaintained) matsushita
(1.0-7) @@ -12517,7 +12493,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref KV-SS50EX SCSI -@@ -17752,7 +17751,7 @@ +@@ -17752,7 +17751,7 @@ kvs40xx
(unmaintained) matsushita
(1.0-7) @@ -12526,7 +12502,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref KV-SS55 SCSI -@@ -17763,7 +17762,7 @@ +@@ -17763,7 +17762,7 @@ kvs40xx
(unmaintained) matsushita
(1.0-7) @@ -12535,7 +12511,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref KV-SS55EX SCSI -@@ -17774,7 +17773,7 @@ +@@ -17774,7 +17773,7 @@ kvs40xx
(unmaintained) matsushita
(1.0-7) @@ -12544,7 +12520,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref KV-SS080 USB -@@ -17785,7 +17784,7 @@ +@@ -17785,7 +17784,7 @@ kvs40xx
(unmaintained) genesys
(1.0-63) @@ -12553,7 +12529,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref KV-SS850 SCSI -@@ -17796,7 +17795,7 @@ +@@ -17796,7 +17795,7 @@ kvs40xx
(unmaintained) matsushita
(1.0-7) @@ -12562,7 +12538,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref KV-SS855 SCSI -@@ -17807,7 +17806,7 @@ +@@ -17807,7 +17806,7 @@ kvs40xx
(unmaintained) matsushita
(1.0-7) @@ -12571,7 +12547,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref KV-SS905C SCSI -@@ -17845,7 +17844,7 @@ +@@ -17845,7 +17844,7 @@ kvs40xx
(unmaintained) genesys
(1.0-63) @@ -12580,7 +12556,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref DSmobile 600 USB -@@ -17856,7 +17855,7 @@ +@@ -17856,7 +17855,7 @@ kvs40xx
(unmaintained) genesys
(1.0-63) @@ -12589,7 +12565,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref DSmobile USB USB -@@ -17950,7 +17949,7 @@ +@@ -17950,7 +17949,7 @@ kvs40xx
(unmaintained) pie
(1.0) @@ -12598,7 +12574,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanAce 636S SCSI -@@ -17961,7 +17960,7 @@ +@@ -17961,7 +17960,7 @@ kvs40xx
(unmaintained) pie
(1.0) @@ -12607,7 +12583,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanAce 1230S SCSI -@@ -17972,7 +17971,7 @@ +@@ -17972,7 +17971,7 @@ kvs40xx
(unmaintained) pie
(1.0) @@ -12616,7 +12592,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanAce 1236S SCSI -@@ -17983,7 +17982,7 @@ +@@ -17983,7 +17982,7 @@ kvs40xx
(unmaintained) pie
(1.0) @@ -12625,7 +12601,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanAce II SCSI -@@ -17994,7 +17993,7 @@ +@@ -17994,7 +17993,7 @@ kvs40xx
(unmaintained) pie
(1.0) @@ -12634,7 +12610,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanAce II Plus SCSI -@@ -18005,7 +18004,7 @@ +@@ -18005,7 +18004,7 @@ kvs40xx
(unmaintained) pie
(1.0) @@ -12643,7 +12619,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanAce III SCSI -@@ -18016,7 +18015,7 @@ +@@ -18016,7 +18015,7 @@ kvs40xx
(unmaintained) pie
(1.0) @@ -12652,7 +12628,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanAce III Plus SCSI -@@ -18027,7 +18026,7 @@ +@@ -18027,7 +18026,7 @@ kvs40xx
(unmaintained) pie
(1.0) @@ -12661,7 +12637,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanAce Plus SCSI -@@ -18038,7 +18037,7 @@ +@@ -18038,7 +18037,7 @@ kvs40xx
(unmaintained) pie
(1.0) @@ -12670,7 +12646,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanAce ScanMedia SCSI -@@ -18049,7 +18048,7 @@ +@@ -18049,7 +18048,7 @@ kvs40xx
(unmaintained) pie
(1.0) @@ -12679,7 +12655,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanAce ScanMedia II SCSI -@@ -18060,7 +18059,7 @@ +@@ -18060,7 +18059,7 @@ kvs40xx
(unmaintained) pie
(1.0) @@ -12688,7 +12664,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ScanAce V SCSI -@@ -18071,7 +18070,7 @@ +@@ -18071,7 +18070,7 @@ kvs40xx
(unmaintained) pie
(1.0) @@ -12697,7 +12673,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref

Manufacturer: PIOTECH

-@@ -18098,7 +18097,7 @@ +@@ -18098,7 +18097,7 @@ kvs40xx
(unmaintained) teco3
(1.0-1) @@ -12706,7 +12682,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref

Manufacturer: PLANon

-@@ -18174,7 +18173,7 @@ +@@ -18174,7 +18173,7 @@ kvs40xx
(unmaintained) gt68xx
(1.0-84) @@ -12715,7 +12691,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref OptiCard 600+ USB -@@ -18196,7 +18195,7 @@ +@@ -18196,7 +18195,7 @@ kvs40xx
(unmaintained) genesys
(1.0-63) @@ -12724,7 +12700,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref OpticFilm 7200 USB -@@ -18229,7 +18228,7 @@ +@@ -18229,7 +18228,7 @@ kvs40xx
(unmaintained) plustek_pp
(0.43) @@ -12733,7 +12709,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref OpticPro 1212U USB -@@ -18240,7 +18239,7 @@ +@@ -18240,7 +18239,7 @@ kvs40xx
(unmaintained) u12
(0.02) @@ -12742,7 +12718,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref OpticPro 1236P Parport (SPP, EPP) -@@ -18251,7 +18250,7 @@ +@@ -18251,7 +18250,7 @@ kvs40xx
(unmaintained) plustek_pp
(0.43) @@ -12751,7 +12727,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref OpticPro 1248U USB -@@ -18262,7 +18261,7 @@ +@@ -18262,7 +18261,7 @@ kvs40xx
(unmaintained) gt68xx
(1.0-84) @@ -12760,7 +12736,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref OpticPro 1248U USB -@@ -18273,7 +18272,7 @@ +@@ -18273,7 +18272,7 @@ kvs40xx
(unmaintained) gt68xx
(1.0-84) @@ -12769,7 +12745,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref OpticPro 2400SP SCSI -@@ -18284,7 +18283,7 @@ +@@ -18284,7 +18283,7 @@ kvs40xx
(unmaintained) teco3
(1.0-1) @@ -12778,7 +12754,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref OpticPro 4800P Parport (SPP, EPP) -@@ -18295,7 +18294,7 @@ +@@ -18295,7 +18294,7 @@ kvs40xx
(unmaintained) plustek_pp
(0.43) @@ -12787,7 +12763,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref OpticPro 4830P Parport (SPP, EPP) -@@ -18306,7 +18305,7 @@ +@@ -18306,7 +18305,7 @@ kvs40xx
(unmaintained) plustek_pp
(0.43) @@ -12796,7 +12772,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref OpticPro 4831P Parport (SPP, EPP) -@@ -18317,7 +18316,7 @@ +@@ -18317,7 +18316,7 @@ kvs40xx
(unmaintained) plustek_pp
(0.43) @@ -12805,7 +12781,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref OpticPro 9600P Parport (SPP, EPP) -@@ -18328,7 +18327,7 @@ +@@ -18328,7 +18327,7 @@ kvs40xx
(unmaintained) plustek_pp
(0.43) @@ -12814,7 +12790,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref OpticPro 9630P Parport (SPP, EPP) -@@ -18339,7 +18338,7 @@ +@@ -18339,7 +18338,7 @@ kvs40xx
(unmaintained) plustek_pp
(0.43) @@ -12823,7 +12799,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref OpticPro 9630PL Parport (SPP, EPP) -@@ -18350,7 +18349,7 @@ +@@ -18350,7 +18349,7 @@ kvs40xx
(unmaintained) plustek_pp
(0.43) @@ -12832,7 +12808,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref OpticPro 9636P Parport (SPP, EPP) -@@ -18361,7 +18360,7 @@ +@@ -18361,7 +18360,7 @@ kvs40xx
(unmaintained) plustek_pp
(0.43) @@ -12841,7 +12817,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref OpticPro 9636P+/Turbo Parport (SPP, EPP) -@@ -18372,7 +18371,7 @@ +@@ -18372,7 +18371,7 @@ kvs40xx
(unmaintained) plustek_pp
(0.43) @@ -12850,7 +12826,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref OpticPro 9636T Parport (SPP, EPP) -@@ -18383,7 +18382,7 @@ +@@ -18383,7 +18382,7 @@ kvs40xx
(unmaintained) plustek_pp
(0.43) @@ -12859,7 +12835,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref OpticPro 12000P/96000P Parport (SPP, EPP) -@@ -18394,7 +18393,7 @@ +@@ -18394,7 +18393,7 @@ kvs40xx
(unmaintained) plustek_pp
(0.43) @@ -12868,7 +12844,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref OpticPro 12000T Parport (SPP, EPP) -@@ -18405,7 +18404,7 @@ +@@ -18405,7 +18404,7 @@ kvs40xx
(unmaintained) plustek_pp
(0.43) @@ -12877,7 +12853,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref OpticPro 19200S SCSI -@@ -18416,7 +18415,7 @@ +@@ -18416,7 +18415,7 @@ kvs40xx
(unmaintained) artec
(unmaintained) @@ -12886,7 +12862,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref OpticPro A3U USB -@@ -18438,7 +18437,7 @@ +@@ -18438,7 +18437,7 @@ kvs40xx
(unmaintained) plustek_pp
(0.43) @@ -12895,7 +12871,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref OpticPro P8 Parport -@@ -18449,7 +18448,7 @@ +@@ -18449,7 +18448,7 @@ kvs40xx
(unmaintained) plustek_pp
(0.43) @@ -12904,7 +12880,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref OpticPro P12 Parport (SPP, EPP) -@@ -18460,7 +18459,7 @@ +@@ -18460,7 +18459,7 @@ kvs40xx
(unmaintained) plustek_pp
(0.43) @@ -12913,7 +12889,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref OpticPro PT12 Parport (SPP, EPP) -@@ -18471,7 +18470,7 @@ +@@ -18471,7 +18470,7 @@ kvs40xx
(unmaintained) plustek_pp
(0.43) @@ -12922,7 +12898,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref OpticPro S6 USB -@@ -18504,7 +18503,7 @@ +@@ -18504,7 +18503,7 @@ kvs40xx
(unmaintained) gt68xx
(1.0-84) @@ -12931,7 +12907,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref OpticPro S24 USB -@@ -18526,7 +18525,7 @@ +@@ -18526,7 +18525,7 @@ kvs40xx
(unmaintained) gt68xx
(1.0-84) @@ -12940,7 +12916,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref OpticPro S28 USB -@@ -18559,7 +18558,7 @@ +@@ -18559,7 +18558,7 @@ kvs40xx
(unmaintained) gt68xx
(1.0-84) @@ -12949,7 +12925,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref OpticPro ST16 USB -@@ -18647,7 +18646,7 @@ +@@ -18647,7 +18646,7 @@ kvs40xx
(unmaintained) u12
(0.02) @@ -12958,7 +12934,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref OpticPro U12 USB -@@ -18658,7 +18657,7 @@ +@@ -18658,7 +18657,7 @@ kvs40xx
(unmaintained) plustek
(0.52) @@ -12967,7 +12943,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref OpticPro U16B USB -@@ -18669,7 +18668,7 @@ +@@ -18669,7 +18668,7 @@ kvs40xx
(unmaintained) gt68xx
(1.0-84) @@ -12976,7 +12952,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref OpticPro U16B+ USB -@@ -18680,7 +18679,7 @@ +@@ -18680,7 +18679,7 @@ kvs40xx
(unmaintained) gt68xx
(1.0-84) @@ -12985,7 +12961,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref OpticPro U24 USB -@@ -18691,7 +18690,7 @@ +@@ -18691,7 +18690,7 @@ kvs40xx
(unmaintained) plustek
(0.52) @@ -12994,7 +12970,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref OpticPro U24 USB -@@ -18702,7 +18701,7 @@ +@@ -18702,7 +18701,7 @@ kvs40xx
(unmaintained) plustek
(0.52) @@ -13003,7 +12979,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref OpticPro UA18 USB -@@ -18724,7 +18723,7 @@ +@@ -18724,7 +18723,7 @@ kvs40xx
(unmaintained) u12
(0.02) @@ -13012,7 +12988,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref OpticPro UT12 USB -@@ -18735,7 +18734,7 @@ +@@ -18735,7 +18734,7 @@ kvs40xx
(unmaintained) plustek
(0.52) @@ -13021,7 +12997,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref OpticPro UT12 USB -@@ -18746,7 +18745,7 @@ +@@ -18746,7 +18745,7 @@ kvs40xx
(unmaintained) plustek
(0.52) @@ -13030,7 +13006,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref OpticPro UT16 USB -@@ -18757,7 +18756,7 @@ +@@ -18757,7 +18756,7 @@ kvs40xx
(unmaintained) plustek
(0.52) @@ -13039,7 +13015,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref OpticPro UT16B USB -@@ -18768,7 +18767,7 @@ +@@ -18768,7 +18767,7 @@ kvs40xx
(unmaintained) gt68xx
(1.0-84) @@ -13048,7 +13024,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref OpticPro UT24 USB -@@ -18779,7 +18778,7 @@ +@@ -18779,7 +18778,7 @@ kvs40xx
(unmaintained) plustek
(0.52) @@ -13057,7 +13033,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref OpticSlim 500 USB -@@ -18801,7 +18800,7 @@ +@@ -18801,7 +18800,7 @@ kvs40xx
(unmaintained) gt68xx
(1.0-84) @@ -13066,7 +13042,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref OpticSlim 2400 USB -@@ -18812,7 +18811,7 @@ +@@ -18812,7 +18811,7 @@ kvs40xx
(unmaintained) gt68xx
(1.0-84) @@ -13075,7 +13051,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref OpticSlim 2400 plus USB -@@ -18823,7 +18822,7 @@ +@@ -18823,7 +18822,7 @@ kvs40xx
(unmaintained) gt68xx
(1.0-84) @@ -13084,7 +13060,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref OpticSlim 2420 USB -@@ -18856,7 +18855,7 @@ +@@ -18856,7 +18855,7 @@ kvs40xx
(unmaintained) gt68xx
(1.0-84) @@ -13093,7 +13069,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref OpticWorks 2000 Parport -@@ -19015,7 +19014,7 @@ +@@ -19015,7 +19014,7 @@ kvs40xx
(unmaintained) plustek
(0.52) @@ -13102,7 +13078,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Q-Scan USB201 (A6 portable scanner) USB -@@ -19026,7 +19025,7 @@ +@@ -19026,7 +19025,7 @@ kvs40xx
(unmaintained) plustek
(0.52) @@ -13111,7 +13087,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref

Manufacturer: Primax

-@@ -19086,7 +19085,7 @@ +@@ -19086,7 +19085,7 @@ kvs40xx
(unmaintained) plustek_pp
(0.43) @@ -13120,7 +13096,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Colorado Direct 600 Parport -@@ -19130,7 +19129,7 @@ +@@ -19130,7 +19129,7 @@ kvs40xx
(unmaintained) plustek_pp
(0.43) @@ -13129,7 +13105,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Compact 4800 Direct-30 Parport (SPP, EPP) -@@ -19141,7 +19140,7 @@ +@@ -19141,7 +19140,7 @@ kvs40xx
(unmaintained) plustek_pp
(0.43) @@ -13138,7 +13114,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Compact 4800 SCSI SCSI -@@ -19152,7 +19151,7 @@ +@@ -19152,7 +19151,7 @@ kvs40xx
(unmaintained) mustek
(1.0-138) @@ -13147,7 +13123,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Compact 9600 Direct-30 Parport (SPP, EPP) -@@ -19163,7 +19162,7 @@ +@@ -19163,7 +19162,7 @@ kvs40xx
(unmaintained) plustek_pp
(0.43) @@ -13156,7 +13132,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref G2-300 USB -@@ -19251,7 +19250,7 @@ +@@ -19251,7 +19250,7 @@ kvs40xx
(unmaintained) teco2
(1.0-9) @@ -13165,7 +13141,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref OneTouch 5300 Parport -@@ -19284,7 +19283,7 @@ +@@ -19284,7 +19283,7 @@ kvs40xx
(unmaintained) p5
(1) @@ -13174,7 +13150,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Primascan Colorado 2600u USB -@@ -19306,7 +19305,7 @@ +@@ -19306,7 +19305,7 @@ kvs40xx
(unmaintained) teco2
(1.0-9) @@ -13183,7 +13159,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Profi 19200 SCSI -@@ -19317,7 +19316,7 @@ +@@ -19317,7 +19316,7 @@ kvs40xx
(unmaintained) teco2
(1.0-9) @@ -13192,7 +13168,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ReadyScan 636i USB -@@ -19489,7 +19488,7 @@ +@@ -19489,7 +19488,7 @@ kvs40xx
(unmaintained) teco2
(1.0-9) @@ -13201,7 +13177,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref APOLLO Express 6 SCSI -@@ -19500,7 +19499,7 @@ +@@ -19500,7 +19499,7 @@ kvs40xx
(unmaintained) teco2
(1.0-9) @@ -13210,7 +13186,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref AVEC 2400 SCSI -@@ -19511,7 +19510,7 @@ +@@ -19511,7 +19510,7 @@ kvs40xx
(unmaintained) teco1
(1.0-10) @@ -13219,7 +13195,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref AVEC 2412 SCSI -@@ -19522,7 +19521,7 @@ +@@ -19522,7 +19521,7 @@ kvs40xx
(unmaintained) teco1
(1.0-10) @@ -13228,7 +13204,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref AVEC 4800 SCSI -@@ -19533,7 +19532,7 @@ +@@ -19533,7 +19532,7 @@ kvs40xx
(unmaintained) teco1
(1.0-10) @@ -13237,7 +13213,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref AVEC 4816 SCSI -@@ -19544,7 +19543,7 @@ +@@ -19544,7 +19543,7 @@ kvs40xx
(unmaintained) teco1
(1.0-10) @@ -13246,7 +13222,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref AVEC II E3 Parport -@@ -19566,7 +19565,7 @@ +@@ -19566,7 +19565,7 @@ kvs40xx
(unmaintained) teco2
(1.0-9) @@ -13255,7 +13231,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref AVEC Super 3 SCSI -@@ -19577,7 +19576,7 @@ +@@ -19577,7 +19576,7 @@ kvs40xx
(unmaintained) teco2
(1.0-9) @@ -13264,7 +13240,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Eclipse 1200U USB -@@ -19610,7 +19609,7 @@ +@@ -19610,7 +19609,7 @@ kvs40xx
(unmaintained) teco3
(1.0-1) @@ -13273,7 +13249,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref RELI 2400 SCSI -@@ -19621,7 +19620,7 @@ +@@ -19621,7 +19620,7 @@ kvs40xx
(unmaintained) teco1
(1.0-10) @@ -13282,7 +13258,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref RELI 2412 SCSI -@@ -19632,7 +19631,7 @@ +@@ -19632,7 +19631,7 @@ kvs40xx
(unmaintained) teco1
(1.0-10) @@ -13291,7 +13267,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref RELI 4816 SCSI -@@ -19643,7 +19642,7 @@ +@@ -19643,7 +19642,7 @@ kvs40xx
(unmaintained) teco1
(1.0-10) @@ -13300,7 +13276,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref RELI 4830 SCSI -@@ -19654,7 +19653,7 @@ +@@ -19654,7 +19653,7 @@ kvs40xx
(unmaintained) teco1
(1.0-10) @@ -13309,7 +13285,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref RELI 9600 SCSI -@@ -19665,7 +19664,7 @@ +@@ -19665,7 +19664,7 @@ kvs40xx
(unmaintained) teco1
(1.0-10) @@ -13318,7 +13294,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref RELI 9612 SCSI -@@ -19676,7 +19675,7 @@ +@@ -19676,7 +19675,7 @@ kvs40xx
(unmaintained) teco1
(1.0-10) @@ -13327,7 +13303,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref RELI 9624 SCSI -@@ -19687,7 +19686,7 @@ +@@ -19687,7 +19686,7 @@ kvs40xx
(unmaintained) teco1
(1.0-10) @@ -13336,7 +13312,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref RELI 9630 SCSI -@@ -19698,7 +19697,7 @@ +@@ -19698,7 +19697,7 @@ kvs40xx
(unmaintained) teco1
(1.0-10) @@ -13345,7 +13321,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref RELI DS6 SCSI -@@ -19709,7 +19708,7 @@ +@@ -19709,7 +19708,7 @@ kvs40xx
(unmaintained) teco1
(1.0-10) @@ -13354,7 +13330,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref RELI DS15 SCSI -@@ -19720,7 +19719,7 @@ +@@ -19720,7 +19719,7 @@ kvs40xx
(unmaintained) teco1
(1.0-10) @@ -13363,7 +13339,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref SCORPIO Pro SCSI -@@ -19731,7 +19730,7 @@ +@@ -19731,7 +19730,7 @@ kvs40xx
(unmaintained) teco2
(1.0-9) @@ -13372,7 +13348,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref SCORPIO Pro-S SCSI -@@ -19742,7 +19741,7 @@ +@@ -19742,7 +19741,7 @@ kvs40xx
(unmaintained) teco2
(1.0-9) @@ -13381,7 +13357,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref SCORPIO Super 3 SCSI -@@ -19753,7 +19752,7 @@ +@@ -19753,7 +19752,7 @@ kvs40xx
(unmaintained) teco2
(1.0-9) @@ -13390,7 +13366,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Scorpio Ultra 3 USB -@@ -19789,7 +19788,7 @@ +@@ -19789,7 +19788,7 @@ kvs40xx
(unmaintained) gt68xx
(1.0-84) @@ -13399,7 +13375,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref RevScan Orange R48Ti USB -@@ -19800,7 +19799,7 @@ +@@ -19800,7 +19799,7 @@ kvs40xx
(unmaintained) u12
(0.02) @@ -13408,7 +13384,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref

Manufacturer: Ricoh

-@@ -19827,7 +19826,7 @@ +@@ -19827,7 +19826,7 @@ kvs40xx
(unmaintained) ibm
(1.0-4) @@ -13417,7 +13393,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref IS-410 SCSI -@@ -19838,7 +19837,7 @@ +@@ -19838,7 +19837,7 @@ kvs40xx
(unmaintained) hs2p
(1.00) @@ -13426,7 +13402,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref IS-420 SCSI -@@ -19849,7 +19848,7 @@ +@@ -19849,7 +19848,7 @@ kvs40xx
(unmaintained) ibm
(1.0-4) @@ -13435,7 +13411,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref IS-430 SCSI -@@ -19860,7 +19859,7 @@ +@@ -19860,7 +19859,7 @@ kvs40xx
(unmaintained) ibm
(1.0-4) @@ -13444,7 +13420,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref IS-430 SCSI -@@ -19871,7 +19870,7 @@ +@@ -19871,7 +19870,7 @@ kvs40xx
(unmaintained) hs2p
(1.00) @@ -13453,7 +13429,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref IS450 SCSI -@@ -19882,7 +19881,7 @@ +@@ -19882,7 +19881,7 @@ kvs40xx
(unmaintained) hs2p
(1.00) @@ -13462,7 +13438,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Ricoh IS50 SCSI -@@ -19892,7 +19891,7 @@ +@@ -19892,7 +19891,7 @@ kvs40xx
(unmaintained) ricoh
(unmaintained) @@ -13471,7 +13447,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Ricoh IS60 SCSI -@@ -19902,7 +19901,7 @@ +@@ -19902,7 +19901,7 @@ ricoh
(unmaintained) ricoh
(unmaintained) @@ -13480,7 +13456,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref

Manufacturer: Samsung

-@@ -19928,7 +19927,7 @@ +@@ -19928,7 +19927,7 @@ ricoh
(unmaintained) xerox_mfp
(1.0-13) @@ -13489,7 +13465,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref CLX-2160 USB -@@ -19938,7 +19937,7 @@ +@@ -19938,7 +19937,7 @@ xerox_mfp
(1.0-13) xerox_mfp
(1.0-13) @@ -13498,7 +13474,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref CLX-3160 USB -@@ -19948,7 +19947,7 @@ +@@ -19948,7 +19947,7 @@ xerox_mfp
(1.0-13) xerox_mfp
(1.0-13) @@ -13507,7 +13483,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref CLX-3170fn (CLX-3170 Series) USB -@@ -19958,7 +19957,7 @@ +@@ -19958,7 +19957,7 @@ xerox_mfp
(1.0-13) xerox_mfp
(1.0-13) @@ -13516,7 +13492,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref CLX-3175FW USB -@@ -19968,7 +19967,7 @@ +@@ -19968,7 +19967,7 @@ xerox_mfp
(1.0-13) xerox_mfp
(1.0-13) @@ -13525,7 +13501,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref CLX-3185 USB -@@ -19978,7 +19977,7 @@ +@@ -19978,7 +19977,7 @@ xerox_mfp
(1.0-13) xerox_mfp
(1.0-13) @@ -13534,7 +13510,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref CLX-3300 Series USB -@@ -19988,7 +19987,7 @@ +@@ -19988,7 +19987,7 @@ xerox_mfp
(1.0-13) xerox_mfp
(1.0-13) @@ -13543,7 +13519,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref CLX-4190 USB -@@ -19998,7 +19997,7 @@ +@@ -19998,7 +19997,7 @@ xerox_mfp
(1.0-13) xerox_mfp
(1.0-13) @@ -13552,7 +13528,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref CLX-6200 USB -@@ -20008,7 +20007,7 @@ +@@ -20008,7 +20007,7 @@ xerox_mfp
(1.0-13) xerox_mfp
(1.0-13) @@ -13561,7 +13537,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref CLX-6220 USB -@@ -20018,7 +20017,7 @@ +@@ -20018,7 +20017,7 @@ xerox_mfp
(1.0-13) xerox_mfp
(1.0-13) @@ -13570,7 +13546,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref CLX-6240 USB -@@ -20028,7 +20027,7 @@ +@@ -20028,7 +20027,7 @@ xerox_mfp
(1.0-13) xerox_mfp
(1.0-13) @@ -13579,7 +13555,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref CLX-6250 USB -@@ -20038,7 +20037,7 @@ +@@ -20038,7 +20037,7 @@ xerox_mfp
(1.0-13) xerox_mfp
(1.0-13) @@ -13588,7 +13564,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref CLX-6260 USB -@@ -20048,7 +20047,7 @@ +@@ -20048,7 +20047,7 @@ xerox_mfp
(1.0-13) xerox_mfp
(1.0-13) @@ -13597,7 +13573,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref CLX-8380 USB -@@ -20058,7 +20057,7 @@ +@@ -20058,7 +20057,7 @@ xerox_mfp
(1.0-13) xerox_mfp
(1.0-13) @@ -13606,7 +13582,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref CLX-8385 USB -@@ -20068,7 +20067,7 @@ +@@ -20068,7 +20067,7 @@ xerox_mfp
(1.0-13) xerox_mfp
(1.0-13) @@ -13615,7 +13591,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref CLX-8385X USB -@@ -20078,7 +20077,7 @@ +@@ -20078,7 +20077,7 @@ xerox_mfp
(1.0-13) xerox_mfp
(1.0-13) @@ -13624,7 +13600,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref CLX-8540 USB -@@ -20088,7 +20087,7 @@ +@@ -20088,7 +20087,7 @@ xerox_mfp
(1.0-13) xerox_mfp
(1.0-13) @@ -13633,7 +13609,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref M267x 287x Series USB -@@ -20098,7 +20097,7 @@ +@@ -20098,7 +20097,7 @@ xerox_mfp
(1.0-13) xerox_mfp
(1.0-13) @@ -13642,7 +13618,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref M337x 387x 407x Series USB -@@ -20108,7 +20107,7 @@ +@@ -20108,7 +20107,7 @@ xerox_mfp
(1.0-13) xerox_mfp
(1.0-13) @@ -13651,7 +13627,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref MFP-65x USB -@@ -20118,7 +20117,7 @@ +@@ -20118,7 +20117,7 @@ xerox_mfp
(1.0-13) xerox_mfp
(1.0-13) @@ -13660,7 +13636,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref MFP-560 USB -@@ -20128,7 +20127,7 @@ +@@ -20128,7 +20127,7 @@ xerox_mfp
(1.0-13) xerox_mfp
(1.0-13) @@ -13669,7 +13645,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref MFP-750 USB -@@ -20138,7 +20137,7 @@ +@@ -20138,7 +20137,7 @@ xerox_mfp
(1.0-13) xerox_mfp
(1.0-13) @@ -13678,7 +13654,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref SCX-4x16 USB -@@ -20148,7 +20147,7 @@ +@@ -20148,7 +20147,7 @@ xerox_mfp
(1.0-13) xerox_mfp
(1.0-13) @@ -13687,7 +13663,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref SCX-4x20 USB -@@ -20158,7 +20157,7 @@ +@@ -20158,7 +20157,7 @@ xerox_mfp
(1.0-13) xerox_mfp
(1.0-13) @@ -13696,7 +13672,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref SCX-4x21 USB -@@ -20168,7 +20167,7 @@ +@@ -20168,7 +20167,7 @@ xerox_mfp
(1.0-13) xerox_mfp
(1.0-13) @@ -13705,7 +13681,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref SCX-4x26 USB -@@ -20178,7 +20177,7 @@ +@@ -20178,7 +20177,7 @@ xerox_mfp
(1.0-13) xerox_mfp
(1.0-13) @@ -13714,7 +13690,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref SCX-5x30 USB -@@ -20188,7 +20187,7 @@ +@@ -20188,7 +20187,7 @@ xerox_mfp
(1.0-13) xerox_mfp
(1.0-13) @@ -13723,7 +13699,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref SCX-6x20 USB -@@ -20198,7 +20197,7 @@ +@@ -20198,7 +20197,7 @@ xerox_mfp
(1.0-13) xerox_mfp
(1.0-13) @@ -13732,7 +13708,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref SCX-6x22 USB -@@ -20208,7 +20207,7 @@ +@@ -20208,7 +20207,7 @@ xerox_mfp
(1.0-13) xerox_mfp
(1.0-13) @@ -13741,7 +13717,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref SCX-6x45 USB -@@ -20218,7 +20217,7 @@ +@@ -20218,7 +20217,7 @@ xerox_mfp
(1.0-13) xerox_mfp
(1.0-13) @@ -13750,7 +13726,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref SCX-6x55 USB -@@ -20228,7 +20227,7 @@ +@@ -20228,7 +20227,7 @@ xerox_mfp
(1.0-13) xerox_mfp
(1.0-13) @@ -13759,7 +13735,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref SCX-6x55X USB -@@ -20238,7 +20237,7 @@ +@@ -20238,7 +20237,7 @@ xerox_mfp
(1.0-13) xerox_mfp
(1.0-13) @@ -13768,7 +13744,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref SCX-470x USB -@@ -20248,7 +20247,7 @@ +@@ -20248,7 +20247,7 @@ xerox_mfp
(1.0-13) xerox_mfp
(1.0-13) @@ -13777,7 +13753,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref SCX-681x USB -@@ -20258,7 +20257,7 @@ +@@ -20258,7 +20257,7 @@ xerox_mfp
(1.0-13) xerox_mfp
(1.0-13) @@ -13786,7 +13762,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref SCX-3205W (SCX-3200 Series) USB Ethernet -@@ -20268,7 +20267,7 @@ +@@ -20268,7 +20267,7 @@ xerox_mfp
(1.0-13) xerox_mfp
(1.0-13) @@ -13795,7 +13771,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref SCX-3400 USB -@@ -20278,7 +20277,7 @@ +@@ -20278,7 +20277,7 @@ xerox_mfp
(1.0-13) xerox_mfp
(1.0-13) @@ -13804,7 +13780,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref SCX-3405W Ethernet -@@ -20288,7 +20287,7 @@ +@@ -20288,7 +20287,7 @@ xerox_mfp
(1.0-13) xerox_mfp
(1.0-13) @@ -13813,7 +13789,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref SCX-4100 USB -@@ -20298,7 +20297,7 @@ +@@ -20298,7 +20297,7 @@ xerox_mfp
(1.0-13) xerox_mfp
(1.0-13) @@ -13822,7 +13798,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref SCX-4200 USB -@@ -20308,7 +20307,7 @@ +@@ -20308,7 +20307,7 @@ xerox_mfp
(1.0-13) xerox_mfp
(1.0-13) @@ -13831,7 +13807,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref SCX-4300 USB -@@ -20318,7 +20317,7 @@ +@@ -20318,7 +20317,7 @@ xerox_mfp
(1.0-13) xerox_mfp
(1.0-13) @@ -13840,7 +13816,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref SCX-4500 USB -@@ -20328,7 +20327,7 @@ +@@ -20328,7 +20327,7 @@ xerox_mfp
(1.0-13) xerox_mfp
(1.0-13) @@ -13849,7 +13825,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref SCX-4500W USB Ethernet -@@ -20338,7 +20337,7 @@ +@@ -20338,7 +20337,7 @@ xerox_mfp
(1.0-13) xerox_mfp
(1.0-13) @@ -13858,7 +13834,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref SCX-4600 USB -@@ -20348,7 +20347,7 @@ +@@ -20348,7 +20347,7 @@ xerox_mfp
(1.0-13) xerox_mfp
(1.0-13) @@ -13867,7 +13843,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref SCX-4623 USB -@@ -20358,7 +20357,7 @@ +@@ -20358,7 +20357,7 @@ xerox_mfp
(1.0-13) xerox_mfp
(1.0-13) @@ -13876,7 +13852,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref SCX-4623FW USB -@@ -20368,7 +20367,7 @@ +@@ -20368,7 +20367,7 @@ xerox_mfp
(1.0-13) xerox_mfp
(1.0-13) @@ -13885,7 +13861,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref SCX-4650 4x21S Series USB -@@ -20378,7 +20377,7 @@ +@@ -20378,7 +20377,7 @@ xerox_mfp
(1.0-13) xerox_mfp
(1.0-13) @@ -13894,7 +13870,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref SCX-4725FN USB -@@ -20399,7 +20398,7 @@ +@@ -20399,7 +20398,7 @@ xerox_mfp
(1.0-13) xerox_mfp
(1.0-13) @@ -13903,7 +13879,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref SCX-4824 (SCX-4x24 Series) USB -@@ -20409,7 +20408,7 @@ +@@ -20409,7 +20408,7 @@ xerox_mfp
(1.0-13) xerox_mfp
(1.0-13) @@ -13912,7 +13888,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref SCX-4825FN (SCX-4x25 Series) USB -@@ -20419,7 +20418,7 @@ +@@ -20419,7 +20418,7 @@ xerox_mfp
(1.0-13) xerox_mfp
(1.0-13) @@ -13921,7 +13897,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref SCX-4828FN (SCX-4x28 Series) USB -@@ -20429,7 +20428,7 @@ +@@ -20429,7 +20428,7 @@ xerox_mfp
(1.0-13) xerox_mfp
(1.0-13) @@ -13930,7 +13906,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref SCX-4833FD USB -@@ -20439,7 +20438,7 @@ +@@ -20439,7 +20438,7 @@ xerox_mfp
(1.0-13) xerox_mfp
(1.0-13) @@ -13939,7 +13915,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref SCX-4835FD Ethernet -@@ -20449,7 +20448,7 @@ +@@ -20449,7 +20448,7 @@ xerox_mfp
(1.0-13) xerox_mfp
(1.0-13) @@ -13948,7 +13924,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref SCX-5635 USB -@@ -20459,7 +20458,7 @@ +@@ -20459,7 +20458,7 @@ xerox_mfp
(1.0-13) xerox_mfp
(1.0-13) @@ -13957,7 +13933,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref SCX-5835_5935 USB -@@ -20469,7 +20468,7 @@ +@@ -20469,7 +20468,7 @@ xerox_mfp
(1.0-13) xerox_mfp
(1.0-13) @@ -13966,7 +13942,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref SCX-5835_5935X USB -@@ -20479,7 +20478,7 @@ +@@ -20479,7 +20478,7 @@ xerox_mfp
(1.0-13) xerox_mfp
(1.0-13) @@ -13975,7 +13951,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref SCX-6545 USB -@@ -20489,7 +20488,7 @@ +@@ -20489,7 +20488,7 @@ xerox_mfp
(1.0-13) xerox_mfp
(1.0-13) @@ -13984,7 +13960,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref SCX-6545X USB -@@ -20499,7 +20498,7 @@ +@@ -20499,7 +20498,7 @@ xerox_mfp
(1.0-13) xerox_mfp
(1.0-13) @@ -13993,7 +13969,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref SCX4725 USB -@@ -20509,7 +20508,7 @@ +@@ -20509,7 +20508,7 @@ xerox_mfp
(1.0-13) xerox_mfp
(1.0-13) @@ -14002,7 +13978,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref SCX4725-FN USB -@@ -20519,7 +20518,7 @@ +@@ -20519,7 +20518,7 @@ xerox_mfp
(1.0-13) xerox_mfp
(1.0-13) @@ -14011,7 +13987,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref SF-760 USB -@@ -20529,7 +20528,7 @@ +@@ -20529,7 +20528,7 @@ xerox_mfp
(1.0-13) xerox_mfp
(1.0-13) @@ -14020,7 +13996,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref

Manufacturer: Scanport

-@@ -20556,7 +20555,7 @@ +@@ -20556,7 +20555,7 @@ xerox_mfp
(1.0-13) microtek2
(unmaintained) @@ -14029,7 +14005,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref SQ2030 Parport -@@ -20567,7 +20566,7 @@ +@@ -20567,7 +20566,7 @@ xerox_mfp
(1.0-13) microtek2
(unmaintained) @@ -14038,7 +14014,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref SQ4836 SCSI -@@ -20578,7 +20577,7 @@ +@@ -20578,7 +20577,7 @@ xerox_mfp
(1.0-13) microtek2
(unmaintained) @@ -14047,7 +14023,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref

Manufacturer: Scanshell

-@@ -20630,7 +20629,7 @@ +@@ -20630,7 +20629,7 @@ xerox_mfp
(1.0-13) sceptre
(1.0-10) @@ -14056,7 +14032,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref

Manufacturer: Sharp

-@@ -20657,7 +20656,7 @@ +@@ -20657,7 +20656,7 @@ xerox_mfp
(1.0-13) sharp
(0.32) @@ -14065,7 +14041,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref JX-320 SCSI -@@ -20668,7 +20667,7 @@ +@@ -20668,7 +20667,7 @@ xerox_mfp
(1.0-13) sharp
(0.32) @@ -14074,7 +14050,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref JX-325 SCSI -@@ -20679,7 +20678,7 @@ +@@ -20679,7 +20678,7 @@ xerox_mfp
(1.0-13) sharp
(0.32) @@ -14083,7 +14059,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref JX-330 SCSI -@@ -20690,7 +20689,7 @@ +@@ -20690,7 +20689,7 @@ xerox_mfp
(1.0-13) sharp
(0.32) @@ -14092,7 +14068,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref JX-350 SCSI -@@ -20701,7 +20700,7 @@ +@@ -20701,7 +20700,7 @@ xerox_mfp
(1.0-13) sharp
(0.32) @@ -14101,7 +14077,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref JX-610 SCSI -@@ -20712,7 +20711,7 @@ +@@ -20712,7 +20711,7 @@ xerox_mfp
(1.0-13) sharp
(0.32) @@ -14110,7 +14086,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref

Manufacturer: Sicos

-@@ -20763,7 +20762,7 @@ +@@ -20763,7 +20762,7 @@ xerox_mfp
(1.0-13) s9036
(unmaintained) @@ -14119,7 +14095,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Cherry FingerTIP ID Board - Sensor USB -@@ -20795,7 +20794,7 @@ +@@ -20795,7 +20794,7 @@ s9036
(unmaintained) agfafocus
(unmaintained) @@ -14128,7 +14104,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ST400 SCSI -@@ -20806,7 +20805,7 @@ +@@ -20806,7 +20805,7 @@ agfafocus
(unmaintained) st400
(1.6) @@ -14137,7 +14113,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref ST800 SCSI -@@ -20817,7 +20816,7 @@ +@@ -20817,7 +20816,7 @@ agfafocus
(unmaintained) st400
(1.6) @@ -14146,7 +14122,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref

Manufacturer: SmartDisk

-@@ -20917,7 +20916,7 @@ +@@ -20917,7 +20916,7 @@ agfafocus
(unmaintained) genesys
(1.0-63) @@ -14155,7 +14131,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref DocketPort 485 USB -@@ -20928,7 +20927,7 @@ +@@ -20928,7 +20927,7 @@ agfafocus
(unmaintained) genesys
(1.0-63) @@ -14164,7 +14140,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref DocketPort 665 USB -@@ -20939,7 +20938,7 @@ +@@ -20939,7 +20938,7 @@ agfafocus
(unmaintained) genesys
(1.0-63) @@ -14173,7 +14149,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref DocketPort 685/ Ambir DS685 USB -@@ -20950,7 +20949,7 @@ +@@ -20950,7 +20949,7 @@ agfafocus
(unmaintained) genesys
(1.0-63) @@ -14182,7 +14158,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref TravelScan 460/464 USB -@@ -20961,7 +20960,7 @@ +@@ -20961,7 +20960,7 @@ agfafocus
(unmaintained) plustek
(0.52) @@ -14191,7 +14167,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref TravelScan 662 USB -@@ -20972,7 +20971,7 @@ +@@ -20972,7 +20971,7 @@ agfafocus
(unmaintained) plustek
(0.52) @@ -14200,7 +14176,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref TravelScan FS-531 USB -@@ -21029,7 +21028,7 @@ +@@ -21029,7 +21028,7 @@ agfafocus
(unmaintained) tamarack
(unmaintained) @@ -14209,7 +14185,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Artiscan 8000C SCSI -@@ -21039,7 +21038,7 @@ +@@ -21039,7 +21038,7 @@ tamarack
(unmaintained) tamarack
(unmaintained) @@ -14218,7 +14194,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Artiscan 9600 Parport -@@ -21071,7 +21070,7 @@ +@@ -21071,7 +21070,7 @@ tamarack
(unmaintained) tamarack
(unmaintained) @@ -14227,7 +14203,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref

Manufacturer: Targa

-@@ -21096,7 +21095,7 @@ +@@ -21096,7 +21095,7 @@ tamarack
(unmaintained) mustek_pp
(13) @@ -14236,7 +14212,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Funline TS12 EP Parport (EPP) -@@ -21107,7 +21106,7 @@ +@@ -21107,7 +21106,7 @@ tamarack
(unmaintained) mustek_pp
(13) @@ -14245,7 +14221,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref

Manufacturer: TCE

-@@ -21225,7 +21224,7 @@ +@@ -21225,7 +21224,7 @@ tamarack
(unmaintained) umax
(1.0-41) @@ -14254,7 +14230,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref

Manufacturer: Trust

-@@ -21252,7 +21251,7 @@ +@@ -21252,7 +21251,7 @@ tamarack
(unmaintained) artec_eplus48u
(unmaintained) @@ -14263,7 +14239,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref 240TH Easy Webscan Gold USB -@@ -21263,7 +21262,7 @@ +@@ -21263,7 +21262,7 @@ artec_eplus48u
(unmaintained) gt68xx
(1.0-84) @@ -14272,7 +14248,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref CombiScan 19200 Parport USB -@@ -21285,7 +21284,7 @@ +@@ -21285,7 +21284,7 @@ artec_eplus48u
(unmaintained) mustek_usb
(1.0-18) @@ -14281,7 +14257,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Compact Scan USB 19200 USB -@@ -21296,7 +21295,7 @@ +@@ -21296,7 +21295,7 @@ artec_eplus48u
(unmaintained) gt68xx
(1.0-84) @@ -14290,7 +14266,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Direct WebScan 19200 USB -@@ -21307,7 +21306,7 @@ +@@ -21307,7 +21306,7 @@ artec_eplus48u
(unmaintained) gt68xx
(1.0-84) @@ -14299,7 +14275,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Easy Connect 9600+ Parport (EPP) -@@ -21318,7 +21317,7 @@ +@@ -21318,7 +21317,7 @@ artec_eplus48u
(unmaintained) mustek_pp
(13) @@ -14308,7 +14284,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Easy Connect 19200+ Parport (EPP) -@@ -21329,7 +21328,7 @@ +@@ -21329,7 +21328,7 @@ artec_eplus48u
(unmaintained) mustek_pp
(13) @@ -14317,7 +14293,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Easy Scan 9600 Plus Parport -@@ -21340,7 +21339,7 @@ +@@ -21340,7 +21339,7 @@ artec_eplus48u
(unmaintained) as6e
(0.5) @@ -14326,7 +14302,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Easy Webscan 19200 USB -@@ -21350,7 +21349,7 @@ +@@ -21350,7 +21349,7 @@ artec_eplus48u
(unmaintained) artec_eplus48u
(unmaintained) @@ -14335,7 +14311,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref EasyScan 19200 Parport -@@ -21372,7 +21371,7 @@ +@@ -21372,7 +21371,7 @@ artec_eplus48u
(unmaintained) gt68xx
(1.0-84) @@ -14344,7 +14320,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Imagery 1200 SCSI -@@ -21383,7 +21382,7 @@ +@@ -21383,7 +21382,7 @@ artec_eplus48u
(unmaintained) mustek
(1.0-138) @@ -14353,7 +14329,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Imagery 1200 SP SCSI -@@ -21394,7 +21393,7 @@ +@@ -21394,7 +21393,7 @@ artec_eplus48u
(unmaintained) mustek
(1.0-138) @@ -14362,7 +14338,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Imagery 2400 SP SCSI -@@ -21405,7 +21404,7 @@ +@@ -21405,7 +21404,7 @@ artec_eplus48u
(unmaintained) teco3
(1.0-1) @@ -14371,7 +14347,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Imagery 4800 SP SCSI -@@ -21416,7 +21415,7 @@ +@@ -21416,7 +21415,7 @@ artec_eplus48u
(unmaintained) mustek
(1.0-138) @@ -14380,7 +14356,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Imagery 4800 SP+ SCSI -@@ -21427,7 +21426,7 @@ +@@ -21427,7 +21426,7 @@ artec_eplus48u
(unmaintained) teco3
(1.0-1) @@ -14389,7 +14365,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Imagery 9600 SP SCSI -@@ -21438,7 +21437,7 @@ +@@ -21438,7 +21437,7 @@ artec_eplus48u
(unmaintained) teco3
(1.0-1) @@ -14398,7 +14374,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Office Scan USB 19200 USB -@@ -21449,7 +21448,7 @@ +@@ -21449,7 +21448,7 @@ artec_eplus48u
(unmaintained) niash
(0.3) @@ -14407,7 +14383,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref SCSI Connect 19200 SCSI -@@ -21460,7 +21459,7 @@ +@@ -21460,7 +21459,7 @@ artec_eplus48u
(unmaintained) mustek
(1.0-138) @@ -14416,7 +14392,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref SCSI excellence series 19200 SCSI -@@ -21471,7 +21470,7 @@ +@@ -21471,7 +21470,7 @@ artec_eplus48u
(unmaintained) mustek
(1.0-138) @@ -14425,7 +14401,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref SCSI Scan 19200 -Excellence Series- SCSI -@@ -21509,7 +21508,7 @@ +@@ -21509,7 +21508,7 @@ artec_eplus48u
(unmaintained) umax_pp
(1) @@ -14434,7 +14410,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Astra 600S SCSI -@@ -21520,7 +21519,7 @@ +@@ -21520,7 +21519,7 @@ artec_eplus48u
(unmaintained) umax
(1.0-41) @@ -14443,7 +14419,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Astra 610P Parport (SPP/ECP) -@@ -21531,7 +21530,7 @@ +@@ -21531,7 +21530,7 @@ artec_eplus48u
(unmaintained) umax_pp
(1) @@ -14452,7 +14428,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Astra 610S SCSI -@@ -21542,7 +21541,7 @@ +@@ -21542,7 +21541,7 @@ artec_eplus48u
(unmaintained) umax
(1.0-41) @@ -14461,7 +14437,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Astra 1200S SCSI -@@ -21553,7 +21552,7 @@ +@@ -21553,7 +21552,7 @@ artec_eplus48u
(unmaintained) umax
(1.0-41) @@ -14470,7 +14446,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Astra 1220P Parport (EPP/ECP) -@@ -21564,7 +21563,7 @@ +@@ -21564,7 +21563,7 @@ artec_eplus48u
(unmaintained) umax_pp
(1) @@ -14479,7 +14455,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Astra 1220S SCSI -@@ -21575,7 +21574,7 @@ +@@ -21575,7 +21574,7 @@ artec_eplus48u
(unmaintained) umax
(1.0-41) @@ -14488,7 +14464,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Astra 1220U USB -@@ -21586,7 +21585,7 @@ +@@ -21586,7 +21585,7 @@ artec_eplus48u
(unmaintained) umax1220u
(unmaintained) @@ -14497,7 +14473,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Astra 1600P Parport (EPP/ECP) -@@ -21597,7 +21596,7 @@ +@@ -21597,7 +21596,7 @@ artec_eplus48u
(unmaintained) umax_pp
(1) @@ -14506,7 +14482,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Astra 1600U USB -@@ -21608,7 +21607,7 @@ +@@ -21608,7 +21607,7 @@ artec_eplus48u
(unmaintained) umax1220u
(unmaintained) @@ -14515,7 +14491,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Astra 2000P Parport (EPP/ECP) -@@ -21619,7 +21618,7 @@ +@@ -21619,7 +21618,7 @@ artec_eplus48u
(unmaintained) umax_pp
(1) @@ -14524,7 +14500,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Astra 2000U USB -@@ -21630,7 +21629,7 @@ +@@ -21630,7 +21629,7 @@ artec_eplus48u
(unmaintained) umax1220u
(unmaintained) @@ -14533,7 +14509,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Astra 2100S SCSI -@@ -21641,7 +21640,7 @@ +@@ -21641,7 +21640,7 @@ artec_eplus48u
(unmaintained) umax
(1.0-41) @@ -14542,7 +14518,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Astra 2100U USB -@@ -21652,7 +21651,7 @@ +@@ -21652,7 +21651,7 @@ artec_eplus48u
(unmaintained) umax1220u
(unmaintained) @@ -14551,7 +14527,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Astra 2200 (SU) USB -@@ -21663,7 +21662,7 @@ +@@ -21663,7 +21662,7 @@ artec_eplus48u
(unmaintained) umax
(1.0-41) @@ -14560,7 +14536,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Astra 2200 (SU) SCSI -@@ -21674,7 +21673,7 @@ +@@ -21674,7 +21673,7 @@ artec_eplus48u
(unmaintained) umax
(1.0-41) @@ -14569,7 +14545,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Astra 2400S SCSI -@@ -21685,7 +21684,7 @@ +@@ -21685,7 +21684,7 @@ artec_eplus48u
(unmaintained) umax
(1.0-41) @@ -14578,7 +14554,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Astra 2500 USB -@@ -21762,7 +21761,7 @@ +@@ -21762,7 +21761,7 @@ artec_eplus48u
(unmaintained) rts8891
(1.0-0) @@ -14587,7 +14563,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Astra 4450 USB -@@ -21773,7 +21772,7 @@ +@@ -21773,7 +21772,7 @@ artec_eplus48u
(unmaintained) rts8891
(1.0-0) @@ -14596,7 +14572,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Astra 4500 USB -@@ -21817,7 +21816,7 @@ +@@ -21817,7 +21816,7 @@ artec_eplus48u
(unmaintained) hp3900
(0.12) @@ -14605,7 +14581,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Astra 6400 IEEE-1394 -@@ -21828,7 +21827,7 @@ +@@ -21828,7 +21827,7 @@ artec_eplus48u
(unmaintained) umax
(1.0-41) @@ -14614,7 +14590,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Astra 6450 IEEE-1394 -@@ -21839,7 +21838,7 @@ +@@ -21839,7 +21838,7 @@ artec_eplus48u
(unmaintained) umax
(1.0-41) @@ -14623,7 +14599,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Astra 6700 USB -@@ -21861,7 +21860,7 @@ +@@ -21861,7 +21860,7 @@ artec_eplus48u
(unmaintained) umax
(1.0-41) @@ -14632,7 +14608,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Astra MX3 SCSI -@@ -21872,7 +21871,7 @@ +@@ -21872,7 +21871,7 @@ artec_eplus48u
(unmaintained) umax
(1.0-41) @@ -14641,7 +14617,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref AstraSlim USB -@@ -21904,7 +21903,7 @@ +@@ -21904,7 +21903,7 @@ artec_eplus48u
(unmaintained) artec_eplus48u
(unmaintained) @@ -14650,7 +14626,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref AstraSlim 6000 USB -@@ -21925,7 +21924,7 @@ +@@ -21925,7 +21924,7 @@ artec_eplus48u
(unmaintained) artec_eplus48u
(unmaintained) @@ -14659,7 +14635,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Gemini D-16 SCSI -@@ -21936,7 +21935,7 @@ +@@ -21936,7 +21935,7 @@ artec_eplus48u
(unmaintained) umax
(1.0-41) @@ -14668,7 +14644,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Mirage D-16L SCSI -@@ -21947,7 +21946,7 @@ +@@ -21947,7 +21946,7 @@ artec_eplus48u
(unmaintained) umax
(1.0-41) @@ -14677,7 +14653,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Mirage II SCSI -@@ -21958,7 +21957,7 @@ +@@ -21958,7 +21957,7 @@ artec_eplus48u
(unmaintained) umax
(1.0-41) @@ -14686,7 +14662,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Mirage IIse SCSI -@@ -21969,7 +21968,7 @@ +@@ -21969,7 +21968,7 @@ artec_eplus48u
(unmaintained) umax
(1.0-41) @@ -14695,7 +14671,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Nete3470' Parport -@@ -21991,7 +21990,7 @@ +@@ -21991,7 +21990,7 @@ artec_eplus48u
(unmaintained) umax
(1.0-41) @@ -14704,7 +14680,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref PowerLook SCSI -@@ -22002,7 +22001,7 @@ +@@ -22002,7 +22001,7 @@ artec_eplus48u
(unmaintained) umax
(1.0-41) @@ -14713,7 +14689,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Powerlook 180 USB -@@ -22024,7 +22023,7 @@ +@@ -22024,7 +22023,7 @@ artec_eplus48u
(unmaintained) umax
(1.0-41) @@ -14722,7 +14698,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref PowerLook 270plus SCSI -@@ -22035,7 +22034,7 @@ +@@ -22035,7 +22034,7 @@ artec_eplus48u
(unmaintained) umax
(1.0-41) @@ -14731,7 +14707,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Powerlook 1000 USB USB -@@ -22057,7 +22056,7 @@ +@@ -22057,7 +22056,7 @@ artec_eplus48u
(unmaintained) umax
(1.0-41) @@ -14740,7 +14716,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref PowerLook 2000 SCSI -@@ -22068,7 +22067,7 @@ +@@ -22068,7 +22067,7 @@ artec_eplus48u
(unmaintained) umax
(1.0-41) @@ -14749,7 +14725,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref PowerLook 2100XL SCSI -@@ -22079,7 +22078,7 @@ +@@ -22079,7 +22078,7 @@ artec_eplus48u
(unmaintained) umax
(1.0-41) @@ -14758,7 +14734,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref PowerLook 3000 SCSI -@@ -22090,7 +22089,7 @@ +@@ -22090,7 +22089,7 @@ artec_eplus48u
(unmaintained) umax
(1.0-41) @@ -14767,7 +14743,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref PowerLook III SCSI -@@ -22101,7 +22100,7 @@ +@@ -22101,7 +22100,7 @@ artec_eplus48u
(unmaintained) umax
(1.0-41) @@ -14776,7 +14752,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref PSD SCSI -@@ -22112,7 +22111,7 @@ +@@ -22112,7 +22111,7 @@ artec_eplus48u
(unmaintained) umax
(1.0-41) @@ -14785,7 +14761,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Supervista S-12 SCSI -@@ -22123,7 +22122,7 @@ +@@ -22123,7 +22122,7 @@ artec_eplus48u
(unmaintained) umax
(1.0-41) @@ -14794,7 +14770,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref UC 630 SCSI -@@ -22134,7 +22133,7 @@ +@@ -22134,7 +22133,7 @@ artec_eplus48u
(unmaintained) umax
(1.0-41) @@ -14803,7 +14779,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref UC 840 SCSI -@@ -22145,7 +22144,7 @@ +@@ -22145,7 +22144,7 @@ artec_eplus48u
(unmaintained) umax
(1.0-41) @@ -14812,7 +14788,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref UC 1200S SCSI -@@ -22156,7 +22155,7 @@ +@@ -22156,7 +22155,7 @@ artec_eplus48u
(unmaintained) umax
(1.0-41) @@ -14821,7 +14797,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref UC 1200SE SCSI -@@ -22167,7 +22166,7 @@ +@@ -22167,7 +22166,7 @@ artec_eplus48u
(unmaintained) umax
(1.0-41) @@ -14830,7 +14806,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref UC 1260 SCSI -@@ -22178,7 +22177,7 @@ +@@ -22178,7 +22177,7 @@ artec_eplus48u
(unmaintained) umax
(1.0-41) @@ -14839,7 +14815,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref UG 80 SCSI -@@ -22189,7 +22188,7 @@ +@@ -22189,7 +22188,7 @@ artec_eplus48u
(unmaintained) umax
(1.0-41) @@ -14848,7 +14824,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref UG 630 SCSI -@@ -22200,7 +22199,7 @@ +@@ -22200,7 +22199,7 @@ artec_eplus48u
(unmaintained) umax
(1.0-41) @@ -14857,7 +14833,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref UMAX 3400 USB -@@ -22211,7 +22210,7 @@ +@@ -22211,7 +22210,7 @@ artec_eplus48u
(unmaintained) plustek
(0.52) @@ -14866,7 +14842,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref UMAX 3400 USB -@@ -22222,7 +22221,7 @@ +@@ -22222,7 +22221,7 @@ artec_eplus48u
(unmaintained) plustek
(0.52) @@ -14875,7 +14851,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref UMAX 3450 USB -@@ -22233,7 +22232,7 @@ +@@ -22233,7 +22232,7 @@ artec_eplus48u
(unmaintained) plustek
(0.52) @@ -14884,7 +14860,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref UMAX 5400 USB -@@ -22244,7 +22243,7 @@ +@@ -22244,7 +22243,7 @@ artec_eplus48u
(unmaintained) plustek
(0.52) @@ -14893,7 +14869,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref UMAX Astranet ia101 USB -@@ -22255,7 +22254,7 @@ +@@ -22255,7 +22254,7 @@ artec_eplus48u
(unmaintained) plustek
(0.52) @@ -14902,7 +14878,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref UMAX S-6E SCSI -@@ -22266,7 +22265,7 @@ +@@ -22266,7 +22265,7 @@ artec_eplus48u
(unmaintained) umax
(1.0-41) @@ -14911,7 +14887,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref UMAX S-6EG SCSI -@@ -22277,7 +22276,7 @@ +@@ -22277,7 +22276,7 @@ artec_eplus48u
(unmaintained) umax
(1.0-41) @@ -14920,7 +14896,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref UMAX S-12 SCSI -@@ -22288,7 +22287,7 @@ +@@ -22288,7 +22287,7 @@ artec_eplus48u
(unmaintained) umax
(1.0-41) @@ -14929,7 +14905,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref UMAX S-12G SCSI -@@ -22299,7 +22298,7 @@ +@@ -22299,7 +22298,7 @@ artec_eplus48u
(unmaintained) umax
(1.0-41) @@ -14938,7 +14914,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref UMAX VT600 SCSI -@@ -22310,7 +22309,7 @@ +@@ -22310,7 +22309,7 @@ artec_eplus48u
(unmaintained) umax
(1.0-41) @@ -14947,7 +14923,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Vista S6 SCSI -@@ -22321,7 +22320,7 @@ +@@ -22321,7 +22320,7 @@ artec_eplus48u
(unmaintained) umax
(1.0-41) @@ -14956,7 +14932,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Vista S6E SCSI -@@ -22332,7 +22331,7 @@ +@@ -22332,7 +22331,7 @@ artec_eplus48u
(unmaintained) umax
(1.0-41) @@ -14965,7 +14941,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Vista-S8 SCSI -@@ -22343,7 +22342,7 @@ +@@ -22343,7 +22342,7 @@ artec_eplus48u
(unmaintained) umax
(1.0-41) @@ -14974,7 +14950,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Vista-T630 SCSI -@@ -22354,7 +22353,7 @@ +@@ -22354,7 +22353,7 @@ artec_eplus48u
(unmaintained) umax
(1.0-41) @@ -14983,7 +14959,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref

Manufacturer: Vantas

-@@ -22439,7 +22438,7 @@ +@@ -22439,7 +22438,7 @@ artec_eplus48u
(unmaintained) avision
(Build: 296) @@ -14992,7 +14968,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref 9420 USB -@@ -22461,7 +22460,7 @@ +@@ -22461,7 +22460,7 @@ artec_eplus48u
(unmaintained) avision
(Build: 296) @@ -15001,7 +14977,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref 9450 USB USB -@@ -22483,7 +22482,7 @@ +@@ -22483,7 +22482,7 @@ artec_eplus48u
(unmaintained) avision
(Build: 296) @@ -15010,7 +14986,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref 9550 USB -@@ -22494,7 +22493,7 @@ +@@ -22494,7 +22493,7 @@ artec_eplus48u
(unmaintained) avision
(Build: 296) @@ -15019,7 +14995,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref 9650 USB -@@ -22505,7 +22504,7 @@ +@@ -22505,7 +22504,7 @@ artec_eplus48u
(unmaintained) avision
(Build: 296) @@ -15028,7 +15004,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref 9650-G USB -@@ -22516,7 +22515,7 @@ +@@ -22516,7 +22515,7 @@ artec_eplus48u
(unmaintained) avision
(Build: 296) @@ -15037,7 +15013,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref 9750 USB -@@ -22527,7 +22526,7 @@ +@@ -22527,7 +22526,7 @@ artec_eplus48u
(unmaintained) avision
(Build: 296) @@ -15046,7 +15022,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref 9750-G USB -@@ -22538,7 +22537,7 @@ +@@ -22538,7 +22537,7 @@ artec_eplus48u
(unmaintained) avision
(Build: 296) @@ -15055,7 +15031,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref DocuImage 620S SCSI -@@ -22670,7 +22669,7 @@ +@@ -22670,7 +22669,7 @@ artec_eplus48u
(unmaintained) gt68xx
(1.0-84) @@ -15064,7 +15040,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Onetouch 7700 USB -@@ -22824,7 +22823,7 @@ +@@ -22824,7 +22823,7 @@ artec_eplus48u
(unmaintained) avision
(Build: 296) @@ -15073,7 +15049,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Patriot 470 USB -@@ -22835,7 +22834,7 @@ +@@ -22835,7 +22834,7 @@ artec_eplus48u
(unmaintained) avision
(Build: 296) @@ -15082,7 +15058,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Patriot 680 USB -@@ -22846,7 +22845,7 @@ +@@ -22846,7 +22845,7 @@ artec_eplus48u
(unmaintained) avision
(Build: 296) @@ -15091,7 +15067,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Patriot 780 USB -@@ -22857,7 +22856,7 @@ +@@ -22857,7 +22856,7 @@ artec_eplus48u
(unmaintained) avision
(Build: 296) @@ -15100,7 +15076,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Roadwarrior USB -@@ -22868,7 +22867,7 @@ +@@ -22868,7 +22867,7 @@ artec_eplus48u
(unmaintained) genesys
(1.0-63) @@ -15109,7 +15085,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Strobe Pro USB USB -@@ -22890,7 +22889,7 @@ +@@ -22890,7 +22889,7 @@ artec_eplus48u
(unmaintained) plustek
(0.52) @@ -15118,7 +15094,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Strobe XP 100,r3 USB -@@ -22901,7 +22900,7 @@ +@@ -22901,7 +22900,7 @@ artec_eplus48u
(unmaintained) genesys
(1.0-63) @@ -15127,7 +15103,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Strobe XP 200 USB -@@ -22912,7 +22911,7 @@ +@@ -22912,7 +22911,7 @@ artec_eplus48u
(unmaintained) genesys
(1.0-63) @@ -15136,7 +15112,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Strobe XP 300 USB -@@ -22923,7 +22922,7 @@ +@@ -22923,7 +22922,7 @@ artec_eplus48u
(unmaintained) genesys
(1.0-63) @@ -15145,7 +15121,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Strobe XP 450 USB -@@ -22934,7 +22933,7 @@ +@@ -22934,7 +22933,7 @@ artec_eplus48u
(unmaintained) avision
(Build: 296) @@ -15154,7 +15130,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Strobe XP 450-G USB -@@ -22945,7 +22944,7 @@ +@@ -22945,7 +22944,7 @@ artec_eplus48u
(unmaintained) avision
(Build: 296) @@ -15163,7 +15139,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Strobe XP 470 USB -@@ -22956,7 +22955,7 @@ +@@ -22956,7 +22955,7 @@ artec_eplus48u
(unmaintained) avision
(Build: 296) @@ -15172,7 +15148,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Strobe XP 470-G USB -@@ -22967,7 +22966,7 @@ +@@ -22967,7 +22966,7 @@ artec_eplus48u
(unmaintained) avision
(Build: 296) @@ -15181,7 +15157,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Visioneer OneTouch 7100 USB -@@ -22978,7 +22977,7 @@ +@@ -22978,7 +22977,7 @@ artec_eplus48u
(unmaintained) genesys
(1.0-63) @@ -15190,7 +15166,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref WorkCentre 470cx Parport -@@ -23080,7 +23079,7 @@ +@@ -23080,7 +23079,7 @@ artec_eplus48u
(unmaintained) mustek_pp
(13) @@ -15199,7 +15175,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref

Manufacturer: Vobis

-@@ -23107,7 +23106,7 @@ +@@ -23107,7 +23106,7 @@ artec_eplus48u
(unmaintained) microtek2
(unmaintained) @@ -15208,7 +15184,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Highscreen Realscan SCSI -@@ -23118,7 +23117,7 @@ +@@ -23118,7 +23117,7 @@ artec_eplus48u
(unmaintained) microtek
(0.13.1) @@ -15217,7 +15193,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Highscreen Scanboostar Premium SCSI -@@ -23129,7 +23128,7 @@ +@@ -23129,7 +23128,7 @@ artec_eplus48u
(unmaintained) umax
(1.0-41) @@ -15226,7 +15202,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref

Manufacturer: Vuego

-@@ -23160,7 +23159,7 @@ +@@ -23160,7 +23159,7 @@ artec_eplus48u
(unmaintained) genesys
(1.0-63) @@ -15235,7 +15211,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref DocuMate150 USB -@@ -23171,7 +23170,7 @@ +@@ -23171,7 +23170,7 @@ artec_eplus48u
(unmaintained) avision
(Build: 296) @@ -15244,7 +15220,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref DocuMate152 USB -@@ -23182,7 +23181,7 @@ +@@ -23182,7 +23181,7 @@ artec_eplus48u
(unmaintained) avision
(Build: 296) @@ -15253,7 +15229,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref DocuMate162 USB -@@ -23193,7 +23192,7 @@ +@@ -23193,7 +23192,7 @@ artec_eplus48u
(unmaintained) avision
(Build: 296) @@ -15262,7 +15238,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref DocuMate232 USB -@@ -23204,7 +23203,7 @@ +@@ -23204,7 +23203,7 @@ artec_eplus48u
(unmaintained) avision
(Build: 296) @@ -15271,7 +15247,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref DocuMate250 USB -@@ -23215,7 +23214,7 @@ +@@ -23215,7 +23214,7 @@ artec_eplus48u
(unmaintained) avision
(Build: 296) @@ -15280,7 +15256,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref DocuMate250-G USB -@@ -23226,7 +23225,7 @@ +@@ -23226,7 +23225,7 @@ artec_eplus48u
(unmaintained) avision
(Build: 296) @@ -15289,7 +15265,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref DocuMate252 USB -@@ -23237,7 +23236,7 @@ +@@ -23237,7 +23236,7 @@ artec_eplus48u
(unmaintained) avision
(Build: 296) @@ -15298,7 +15274,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref DocuMate252-G USB -@@ -23248,7 +23247,7 @@ +@@ -23248,7 +23247,7 @@ artec_eplus48u
(unmaintained) avision
(Build: 296) @@ -15307,7 +15283,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref DocuMate262 USB -@@ -23259,7 +23258,7 @@ +@@ -23259,7 +23258,7 @@ artec_eplus48u
(unmaintained) avision
(Build: 296) @@ -15316,7 +15292,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref DocuMate262-G USB -@@ -23270,7 +23269,7 @@ +@@ -23270,7 +23269,7 @@ artec_eplus48u
(unmaintained) avision
(Build: 296) @@ -15325,7 +15301,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref DocuMate262i USB -@@ -23281,7 +23280,7 @@ +@@ -23281,7 +23280,7 @@ artec_eplus48u
(unmaintained) avision
(Build: 296) @@ -15334,7 +15310,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref DocuMate272 USB -@@ -23292,7 +23291,7 @@ +@@ -23292,7 +23291,7 @@ artec_eplus48u
(unmaintained) avision
(Build: 296) @@ -15343,7 +15319,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref DocuMate272-G USB -@@ -23303,7 +23302,7 @@ +@@ -23303,7 +23302,7 @@ artec_eplus48u
(unmaintained) avision
(Build: 296) @@ -15352,7 +15328,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref DocuMate510 USB -@@ -23314,7 +23313,7 @@ +@@ -23314,7 +23313,7 @@ artec_eplus48u
(unmaintained) avision
(Build: 296) @@ -15361,7 +15337,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref DocuMate510-G USB -@@ -23325,7 +23324,7 @@ +@@ -23325,7 +23324,7 @@ artec_eplus48u
(unmaintained) avision
(Build: 296) @@ -15370,7 +15346,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref DocuMate512 USB -@@ -23336,7 +23335,7 @@ +@@ -23336,7 +23335,7 @@ artec_eplus48u
(unmaintained) avision
(Build: 296) @@ -15379,7 +15355,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref DocuMate520 USB -@@ -23347,7 +23346,7 @@ +@@ -23347,7 +23346,7 @@ artec_eplus48u
(unmaintained) avision
(Build: 296) @@ -15388,7 +15364,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref DocuMate520-G USB -@@ -23358,7 +23357,7 @@ +@@ -23358,7 +23357,7 @@ artec_eplus48u
(unmaintained) avision
(Build: 296) @@ -15397,7 +15373,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref DocuMate632 USB -@@ -23369,7 +23368,7 @@ +@@ -23369,7 +23368,7 @@ artec_eplus48u
(unmaintained) avision
(Build: 296) @@ -15406,7 +15382,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref DocuMate752 USB -@@ -23380,7 +23379,7 @@ +@@ -23380,7 +23379,7 @@ artec_eplus48u
(unmaintained) avision
(Build: 296) @@ -15415,7 +15391,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref DocuMate752 USB -@@ -23391,7 +23390,7 @@ +@@ -23391,7 +23390,7 @@ artec_eplus48u
(unmaintained) avision
(Build: 296) @@ -15424,7 +15400,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Phaser 3200MFP USB -@@ -23401,7 +23400,7 @@ +@@ -23401,7 +23400,7 @@ artec_eplus48u
(unmaintained) xerox_mfp
(1.0-13) @@ -15433,7 +15409,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Phaser 6110MFP USB -@@ -23411,7 +23410,7 @@ +@@ -23411,7 +23410,7 @@ xerox_mfp
(1.0-13) xerox_mfp
(1.0-13) @@ -15442,7 +15418,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Travel Scanner 100 USB -@@ -23422,7 +23421,7 @@ +@@ -23422,7 +23421,7 @@ xerox_mfp
(1.0-13) genesys
(1.0-63) @@ -15451,7 +15427,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref WorkCentre 3119 Series USB -@@ -23432,7 +23431,7 @@ +@@ -23432,7 +23431,7 @@ xerox_mfp
(1.0-13) xerox_mfp
(1.0-13) @@ -15460,7 +15436,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref WorkCentre 3210 USB -@@ -23442,7 +23441,7 @@ +@@ -23442,7 +23441,7 @@ xerox_mfp
(1.0-13) xerox_mfp
(1.0-13) @@ -15469,7 +15445,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref WorkCentre 3220 USB -@@ -23452,7 +23451,7 @@ +@@ -23452,7 +23451,7 @@ xerox_mfp
(1.0-13) xerox_mfp
(1.0-13) @@ -15478,7 +15454,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref WorkCentre 4118 Series USB -@@ -23462,7 +23461,7 @@ +@@ -23462,7 +23461,7 @@ xerox_mfp
(1.0-13) xerox_mfp
(1.0-13) @@ -15487,7 +15463,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref

Manufacturer: Yakumo

-@@ -23488,7 +23487,7 @@ +@@ -23488,7 +23487,7 @@ xerox_mfp
(1.0-13) artec_eplus48u
(unmaintained) @@ -15496,7 +15472,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref

Still Cameras

-@@ -23519,7 +23518,7 @@ +@@ -23519,7 +23518,7 @@ artec_eplus48u
(unmaintained) dc25
(1.2) @@ -15505,7 +15481,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref DC25 Serial port -@@ -23530,7 +23529,7 @@ +@@ -23530,7 +23529,7 @@ artec_eplus48u
(unmaintained) dc25
(1.2) @@ -15514,7 +15490,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref DC210 Serial port -@@ -23541,7 +23540,7 @@ +@@ -23541,7 +23540,7 @@ artec_eplus48u
(unmaintained) dc210
(0.0) @@ -15523,7 +15499,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref DC240 Serial port -@@ -23552,7 +23551,7 @@ +@@ -23552,7 +23551,7 @@ artec_eplus48u
(unmaintained) dc240
(0.0) @@ -15532,7 +15508,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref

Manufacturer: Polaroid

-@@ -23578,7 +23577,7 @@ +@@ -23578,7 +23577,7 @@ artec_eplus48u
(unmaintained) dmc
(unmaintained) @@ -15541,7 +15517,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref

Video Cameras

-@@ -23614,7 +23613,7 @@ +@@ -23614,7 +23613,7 @@ dmc
(unmaintained) stv680
(1.0-1) @@ -15550,7 +15526,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref

Manufacturer: Biolux

-@@ -23663,7 +23662,7 @@ +@@ -23663,7 +23662,7 @@ dmc
(unmaintained) qcam
(unmaintained) @@ -15559,7 +15535,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Greyscale QuickCam Parport -@@ -23673,7 +23672,7 @@ +@@ -23673,7 +23672,7 @@ qcam
(unmaintained) qcam
(unmaintained) @@ -15568,7 +15544,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref

Manufacturer: Creative

-@@ -23700,7 +23699,7 @@ +@@ -23700,7 +23699,7 @@ qcam
(unmaintained) stv680
(1.0-1) @@ -15577,7 +15553,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref

Manufacturer: Digital Dream

-@@ -23727,7 +23726,7 @@ +@@ -23727,7 +23726,7 @@ qcam
(unmaintained) stv680
(1.0-1) @@ -15586,7 +15562,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref

Manufacturer: Grandtek Scopecam

-@@ -23779,7 +23778,7 @@ +@@ -23779,7 +23778,7 @@ qcam
(unmaintained) stv680
(1.0-1) @@ -15595,7 +15571,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref

APIs

-@@ -23795,7 +23794,7 @@ +@@ -23795,7 +23794,7 @@ qcam
(unmaintained)

Link(s): mailto:peter@fales-lorenz.net
@@ -15604,7 +15580,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Description: Multiple cameras supported by the gphoto2 libraries
Comment: The long-term plan is to support all the cameras supported by the gphoto2 libraries (currently over 140 models). However, at this stage, only a handful of cameras are definitely known to work with SANE. Other cameras will probably work if the native file format is EXIF or JPEG. Testers welcome!

-@@ -23803,7 +23802,7 @@ +@@ -23803,7 +23802,7 @@ qcam
(unmaintained) (unmaintained)

@@ -15613,7 +15589,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Description: Scanners with the machine-independent PINT interface
Comment: Haven't been tested for a long time. Handle with care.

-@@ -23813,7 +23812,7 @@ +@@ -23813,7 +23812,7 @@ qcam
(unmaintained)

Link(s): mailto:henning@meier-geinitz.de
@@ -15622,7 +15598,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Description: Reads PNM files
Comment: Used for debugging frontends. Obsolete, use test backend instead.

-@@ -23823,7 +23822,7 @@ +@@ -23823,7 +23822,7 @@ qcam
(unmaintained)

Link(s): http://www.meier-geinitz.de/sane/test-backend/
@@ -15631,7 +15607,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Description: Frontend-tester
Comment: Backend for testing frontends. Also serves as example for SANE backend options.

-@@ -23833,7 +23832,7 @@ +@@ -23833,7 +23832,7 @@ qcam
(unmaintained)

Link(s): mailto:henning@meier-geinitz.de
@@ -15640,7 +15616,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Description: Interface to Video For Linux API
Comment: Supports video cameras and other devices accessed by the v4l kernel API, e.g. bttv devices. Quite a lot of known bugs.

-@@ -23847,7 +23846,7 @@ +@@ -23847,7 +23846,7 @@ qcam
(unmaintained)

Link(s): mailto:henning@meier-geinitz.de
@@ -15649,7 +15625,7 @@ Index: sane-backends-1.0.24/testsuite/tools/data/html-mfgs.ref Description: Dynamic loading of shared-library backends.

Backend: net -@@ -23856,7 +23855,7 @@ +@@ -23856,7 +23855,7 @@ qcam
(unmaintained)

Link(s): http://www.penguin-breeder.org/?page=sane-net
diff --git a/debian/patches/series b/debian/patches/series index 53b3757..d347517 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -1,3 +1,4 @@ +0005-mk_reproducible_results.patch hp3900.patch typo.patch license_typo.patch @@ -22,3 +23,5 @@ ppc64el.patch #out_of_bounds.patch 0500-systemd_configure.patch #0100-usb3-corrections.patch +001-scanimage_manpage.patch +0510-disable-html-tests.patch diff --git a/debian/rules b/debian/rules index 846dcad..735f248 100755 --- a/debian/rules +++ b/debian/rules @@ -49,7 +49,9 @@ override_dh_auto_configure: --with-gphoto2 \ --enable-translations \ --enable-avahi \ - --enable-libusb_1_0 + --enable-libusb_1_0 \ + --enable-pnm-backend \ + --without-v4l override_dh_auto_build: # generate POT file for translators @@ -136,9 +138,5 @@ override_dh_systemd_enable: override_dh_strip: dh_strip --dbg-package=libsane-dbg -override_dh_builddeb: - dh_builddeb -- -Zxz - override_dh_makeshlibs: - dpkg-gensymbols -v$(VERSION) -plibsane - dh_makeshlibs + dh_makeshlibs -- -c0 -v$(VERSION) -Pdebian/libsane -plibsane diff --git a/debian/sane-utils.lintian-overrides b/debian/sane-utils.lintian-overrides index 41e796f..6511491 100644 --- a/debian/sane-utils.lintian-overrides +++ b/debian/sane-utils.lintian-overrides @@ -7,3 +7,8 @@ postrm-contains-additional-updaterc.d-calls # False positives. See Debian bug # # systemd-no-service-for-init-script + +# +# disabled during piuparts error +# +maintainer-script-ignores-errors \ No newline at end of file diff --git a/debian/sane-utils.postrm b/debian/sane-utils.postrm index a11d248..e7af639 100644 --- a/debian/sane-utils.postrm +++ b/debian/sane-utils.postrm @@ -1,12 +1,37 @@ #!/bin/sh -set -e +# set -e +# +# set -e are disabled because pathfind update-inetd +# gives an piuparts error. +# + +# +# POSIX-compliant shell function +# to check for the existence of a command +# Return 0 if found +# +pathfind() { + OLDIFS="$IFS" + IFS=: + for p in $PATH; do + if [ -x "$p/$*" ]; then + IFS="$OLDIFS" + return 0 + fi + done + IFS="$OLDIFS" + return 1 +} + -if [ "$1" = purge ]; then - if [ -x /usr/sbin/update-inetd ]; then +if [ "$1" = purge ] ; then + pathfind update-inetd + if [ $? = 0 ] ; then update-inetd --remove sane-port update-inetd --remove "## sane-port" fi + # # purge systemd files # @@ -23,3 +48,5 @@ if [ "$1" = purge ]; then fi #DEBHELPER# + +exit 0 \ No newline at end of file diff --git a/debian/saned@.service b/debian/saned@.service index c477210..425ee7a 100644 --- a/debian/saned@.service +++ b/debian/saned@.service @@ -6,7 +6,7 @@ Requires=saned.socket ExecStart=/usr/sbin/saned User=saned Group=saned -StandardInput=socket +StandardInput=null StandardOutput=syslog StandardError=syslog Environment=SANE_CONFIG_DIR=/etc/sane.d @@ -14,4 +14,3 @@ Environment=SANE_CONFIG_DIR=/etc/sane.d [Install] Also=saned.socket -Alias=saned diff --git a/debian/tests/control b/debian/tests/control new file mode 100644 index 0000000..0d875a9 --- /dev/null +++ b/debian/tests/control @@ -0,0 +1,9 @@ +# +# control file for autopkgtests +# writen from Jörg Frings-Fürst +# +# 1. start-net +# +Tests: start-net +Depends: sane-utils +Restrictions: needs-root allow-stderr breaks-testbed diff --git a/debian/tests/start-net b/debian/tests/start-net new file mode 100644 index 0000000..65679c3 --- /dev/null +++ b/debian/tests/start-net @@ -0,0 +1,29 @@ +#!/bin/sh +set -ex + +# Simple test for sane-backends. +# Author: Jörg Frings-Fürst +# dep8 restrictions: breaks-bestbed needs-root allow-stderr + + +# Enable localhost +sed -i '/localhost/d' /etc/sane.d/saned.conf +echo localhost >>/etc/sane.d/saned.conf + +# Enable pnm +sed -i 's/^#\(pnm\)$/\1/' /etc/sane.d/dll.conf + +# Enable saned.socket +systemctl enable saned.socket + +# +# test +# +CNT=`scanimage -d net -L | grep net: | wc -l` + +if [ ${CNT} -eq 2 ] ; then + exit 0 +else + exit 100 +fi + diff --git a/doc/Makefile.am b/doc/Makefile.am index 12ec658..5b450e0 100644 --- a/doc/Makefile.am +++ b/doc/Makefile.am @@ -18,7 +18,7 @@ EXTRA_DIST = scanimage.man sane-config.man sane-find-scanner.man \ # custom install/uninstall if we required man pages for every backend. BACKEND_MANS_ENABLED = @BACKEND_MANS_ENABLED@ BACKEND_5MANS = sane-abaton.5 sane-agfafocus.5 sane-apple.5 sane-as6e.5 \ - sane-dll.5 sane-dc25.5 sane-dmc.5 sane-epson.5 sane-epson2.5 \ + sane-dll.5 sane-dc25.5 sane-dmc.5 sane-epson.5 sane-epson2.5 sane-epsonds.5 \ sane-hp.5 sane-gphoto2.5 sane-leo.5 sane-lexmark.5 \ sane-matsushita.5 sane-microtek.5 sane-microtek2.5 sane-mustek.5 \ sane-nec.5 sane-net.5 sane-pie.5 sane-pint.5 sane-pnm.5 \ @@ -41,7 +41,7 @@ BACKEND_5MANS = sane-abaton.5 sane-agfafocus.5 sane-apple.5 sane-as6e.5 \ EXTRA_DIST += sane-abaton.man sane-agfafocus.man sane-apple.man sane-as6e.man \ sane-dll.man sane-dc25.man sane-dmc.man sane-epson.man \ - sane-epson2.man sane-hp.man sane-gphoto2.man sane-leo.man \ + sane-epson2.man sane-epsonds.man sane-hp.man sane-gphoto2.man sane-leo.man \ sane-lexmark.man sane-matsushita.man sane-microtek.man \ sane-microtek2.man sane-mustek.man sane-nec.man sane-net.man \ sane-pie.man sane-pint.man sane-pnm.man sane-umax.man \ @@ -169,6 +169,7 @@ DESC_FILES = descriptions/abaton.desc descriptions/agfafocus.desc \ descriptions/dc210.desc descriptions/dc240.desc descriptions/dc25.desc \ descriptions/dell1600n_net.desc descriptions/dll.desc descriptions/dmc.desc \ descriptions/epjitsu.desc descriptions/epson2.desc descriptions/epson.desc \ + descriptions/epsonds.desc \ descriptions/fujitsu.desc descriptions/genesys.desc \ descriptions/gphoto2.desc descriptions/gt68xx.desc descriptions/hp3500.desc \ descriptions/hp3900.desc descriptions/hp4200.desc descriptions/hp5400.desc \ diff --git a/doc/Makefile.in b/doc/Makefile.in index 20b8ffb..cb8757d 100644 --- a/doc/Makefile.in +++ b/doc/Makefile.in @@ -1,4 +1,4 @@ -# Makefile.in generated by automake 1.13.4 from Makefile.am. +# Makefile.in generated by automake 1.14.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. @@ -336,8 +336,8 @@ man1_MANS = scanimage.1 sane-config.1 sane-find-scanner.1 gamma4scanimage.1 EXTRA_DIST = scanimage.man sane-config.man sane-find-scanner.man \ gamma4scanimage.man sane-abaton.man sane-agfafocus.man \ sane-apple.man sane-as6e.man sane-dll.man sane-dc25.man \ - sane-dmc.man sane-epson.man sane-epson2.man sane-hp.man \ - sane-gphoto2.man sane-leo.man sane-lexmark.man \ + sane-dmc.man sane-epson.man sane-epson2.man sane-epsonds.man \ + sane-hp.man sane-gphoto2.man sane-leo.man sane-lexmark.man \ sane-matsushita.man sane-microtek.man sane-microtek2.man \ sane-mustek.man sane-nec.man sane-net.man sane-pie.man \ sane-pint.man sane-pnm.man sane-umax.man sane-qcam.man \ @@ -373,7 +373,7 @@ EXTRA_DIST = scanimage.man sane-config.man sane-find-scanner.man \ icons/references.gif icons/references_gr.gif icons/up.gif \ icons/up_gr.gif BACKEND_5MANS = sane-abaton.5 sane-agfafocus.5 sane-apple.5 sane-as6e.5 \ - sane-dll.5 sane-dc25.5 sane-dmc.5 sane-epson.5 sane-epson2.5 \ + sane-dll.5 sane-dc25.5 sane-dmc.5 sane-epson.5 sane-epson2.5 sane-epsonds.5 \ sane-hp.5 sane-gphoto2.5 sane-leo.5 sane-lexmark.5 \ sane-matsushita.5 sane-microtek.5 sane-microtek2.5 sane-mustek.5 \ sane-nec.5 sane-net.5 sane-pie.5 sane-pint.5 sane-pnm.5 \ @@ -452,6 +452,7 @@ DESC_FILES = descriptions/abaton.desc descriptions/agfafocus.desc \ descriptions/dc210.desc descriptions/dc240.desc descriptions/dc25.desc \ descriptions/dell1600n_net.desc descriptions/dll.desc descriptions/dmc.desc \ descriptions/epjitsu.desc descriptions/epson2.desc descriptions/epson.desc \ + descriptions/epsonds.desc \ descriptions/fujitsu.desc descriptions/genesys.desc \ descriptions/gphoto2.desc descriptions/gt68xx.desc descriptions/hp3500.desc \ descriptions/hp3900.desc descriptions/hp4200.desc descriptions/hp5400.desc \ diff --git a/doc/descriptions/avision.desc b/doc/descriptions/avision.desc index 708f5ea..bff25f5 100644 --- a/doc/descriptions/avision.desc +++ b/doc/descriptions/avision.desc @@ -19,7 +19,7 @@ ;:status :stable ; backend's web page -:url "http://skull.piratehaven.org/~mike/sane/avision.html" +:url "http://exactcode.com/site/open_source/saneavision/" ; name of manpage (if it exists) :manpage "sane-avision" @@ -111,7 +111,13 @@ :interface "USB" :usbid "0x0638" "0x0a2b" :comment "duplex! sheetfed scanner" -:status :complete +:status :basic + +:model "AV220D2" +:interface "USB" +:usbid "0x0638" "0x1a31" +:comment "duplex! sheetfed scanner" +:status :untested :model "AV220+" :interface "USB" diff --git a/doc/descriptions/canon_dr.desc b/doc/descriptions/canon_dr.desc index 406bbfb..149ca4c 100644 --- a/doc/descriptions/canon_dr.desc +++ b/doc/descriptions/canon_dr.desc @@ -11,7 +11,7 @@ :backend "canon_dr" ; name of backend :url "http://www.thebility.com/canon/" -:version "47" ; version of backend +:version "49" ; version of backend :manpage "sane-canon_dr" ; name of manpage (if it exists) :comment "Backend updated for SANE release 1.0.25, see sane-canon_dr manpage" :devicetype :scanner ; start of a list of devices.... @@ -273,8 +273,7 @@ :model "DR-C125" :interface "USB" :usbid "0x1083" "0x1640" -:status :untested -:comment "Similar protocol to other canon_dr machines, but unsupported image format." +:status :good :model "DR-C130" :interface "USB" @@ -285,6 +284,7 @@ :interface "USB" :usbid "0x1083" "0x1658" :status :untested +:comment "Perhaps similar to DR-C125?" :model "DR-F120" :interface "USB" diff --git a/doc/descriptions/epjitsu.desc b/doc/descriptions/epjitsu.desc index 630a1f7..b11ee96 100644 --- a/doc/descriptions/epjitsu.desc +++ b/doc/descriptions/epjitsu.desc @@ -11,9 +11,9 @@ :backend "epjitsu" ; name of backend :url "http://www.thebility.com/epjitsu/" -:version "25" ; version of backend +:version "27" ; version of backend :manpage "sane-epjitsu" ; name of manpage (if it exists) -:comment "Backend updated for SANE release 1.0.25, see sane-epjitsu manpage" +:comment "Backend updated for SANE release 1.0.26, see sane-epjitsu manpage" :devicetype :scanner ; start of a list of devices.... ; other types: :stillcam, :vidcam, ; :meta, :api diff --git a/doc/descriptions/epsonds.desc b/doc/descriptions/epsonds.desc new file mode 100644 index 0000000..0b7c6c6 --- /dev/null +++ b/doc/descriptions/epsonds.desc @@ -0,0 +1,97 @@ +; +; SANE Backend specification file for the epsonds backend +; +; Copyright (C) 2015 Alessandro Zummo +; Released under GPLv2 +; + +:backend "epsonds" +:version "1.0.18" +:new :yes +:manpage "sane-epsonds" + +:devicetype :scanner + +:mfg "Epson" +:url "http://www.epson.com/" + +:model "DS-5500" +:interface "USB" +:usbid "0x04b8" "0x0145" +:status :untested + +:model "DS-6500" +:interface "USB" +:usbid "0x04b8" "0x0145" +:status :untested + +:model "DS-7500" +:interface "USB" +:usbid "0x04b8" "0x0145" +:status :untested + +:model "DS-50000" +:interface "USB" +:usbid "0x04b8" "0x0146" +:status :untested + +:model "DS-60000" +:interface "USB" +:usbid "0x04b8" "0x0146" +:status :good + +:model "DS-70000" +:interface "USB" +:usbid "0x04b8" "0x0146" +:status :untested + +:model "DS-510" +:interface "USB" +:usbid "0x04b8" "0x014c" +:status :good + +:model "DS-560" +:interface "USB" +:usbid "0x04b8" "0x014d" +:status :untested + +:model "DS-40" +:interface "USB" +:usbid "0x04b8" "0x0150" +:status :untested + +:model "DS-760" +:interface "USB" +:usbid "0x04b8" "0x0152" +:status :untested + +:model "DS-860" +:interface "USB" +:usbid "0x04b8" "0x0152" +:status :untested + +:model "DS-520" +:interface "USB" +:usbid "0x04b8" "0x0154" +:status :untested + +:model "PX-M7050 Series" +:interface "USB" +:usbid "0x04b8" "0x08bc" +:status :untested + +:model "WF-8510/8590 Series" +:interface "USB" +:usbid "0x04b8" "0x08bc" +:status :untested + +:model "PX-M7050FX Series" +:interface "USB" +:usbid "0x04b8" "0x08cc" +:status :untested + +:model "WF-R8590 Series" +:interface "USB" +:usbid "0x04b8" "0x08cc" +:status :untested + diff --git a/doc/descriptions/genesys.desc b/doc/descriptions/genesys.desc index eb060f6..cb91476 100644 --- a/doc/descriptions/genesys.desc +++ b/doc/descriptions/genesys.desc @@ -145,6 +145,12 @@ :status :complete :comment "GL124 based, resolution from 75 to 2400 dpi" +:model "CanoScan LiDE 120" +:interface "USB" +:usbid "0x04a9" "0x190e" +:status :untested +:comment "GL124+ based, resolution from 75 to 2400 dpi" + :model "CanoScan LiDE 200" :interface "USB" :usbid "0x04a9" "0x1905" @@ -155,7 +161,13 @@ :interface "USB" :usbid "0x04a9" "0x190a" :status :complete -:comment "GL124 based, resolution from 75 to 2400 dpi" +:comment "GL124 based, resolution from 75 to 4800 dpi" + +:model "CanoScan LiDE 220" +:interface "USB" +:usbid "0x04a9" "0x190f" +:status :complete +:comment "GL124+ based, resolution from 75 to 4800 dpi" :model "CanoScan 4400f" :interface "USB" diff --git a/doc/descriptions/kodakaio.desc b/doc/descriptions/kodakaio.desc index 5fb18ed..a5fc126 100644 --- a/doc/descriptions/kodakaio.desc +++ b/doc/descriptions/kodakaio.desc @@ -1,6 +1,6 @@ :backend "kodakaio" :url "http://sourceforge.net/projects/cupsdriverkodak/" -:version "2.4.7" +:version "2.7.2" :manpage "sane-kodakaio" :comment "Backend for Kodak AiO ESP and Hero printers. Also possibly Advent AWL10" :devicetype :scanner @@ -57,7 +57,7 @@ :model "ESP 5200" :interface "USB Ethernet" :usbid "0x040a" "0x4041" -:status :basic +:status :complete :comment "USB good, Network good" :model "ESP 5300" @@ -156,8 +156,8 @@ :model "Hero Office 6.1" :interface "USB" :usbid "0x040a" "0x4062" -:status :untested -:comment "Please test!" +:status :basic +:comment "Does the adf work?" :model "Hero 7.1" :interface "USB" @@ -168,7 +168,7 @@ :model "Hero 9.1" :interface "USB Ethernet" :usbid "0x040a" "0x4067" -:status :basic +:status :complete :comment "USB good, Network good" ;=================================== diff --git a/doc/descriptions/pixma.desc b/doc/descriptions/pixma.desc index f354ada..51c3bec 100644 --- a/doc/descriptions/pixma.desc +++ b/doc/descriptions/pixma.desc @@ -11,10 +11,8 @@ ; See doc/descriptions.txt for details. :backend "pixma" ; name of backend -:version "0.17.14" ; version of backend (or "unmaintained") +:version "0.17.17" ; version of backend (or "unmaintained") :manpage "sane-pixma" ; name of manpage (if it exists) -:url "http://home.arcor.de/wittawat/pixma/" ; 0.13.2 backend's web page -:url "http://mp610.blogspot.com/" ; the pixma backend blog ;:comment "Devices marked as experimantal are disabled by default. See the manual page for how to enable them." :devicetype :scanner ; start of a list of devices.... @@ -36,6 +34,12 @@ :status :untested :comment "Testers needed!" +:model "PIXMA E480 Series" +:interface "USB WiFi" +:usbid "0x04a9" "0x1789" +:status :untested +:comment "Testers needed!" + :model "PIXMA E500" :interface "USB" :usbid "0x04a9" "0x1758" @@ -75,8 +79,8 @@ :model "PIXMA MG2200 Series" :interface "USB" :usbid "0x04a9" "0x1760" -:status :untested -:comment "Testers needed!" +:status :complete +:comment "All resolutions supported (up to 1200DPI)." :model "PIXMA MG2400 Series" :interface "USB" @@ -87,8 +91,8 @@ :model "PIXMA MG2500 Series" :interface "USB" :usbid "0x04a9" "0x176d" -:status :untested -:comment "Testers needed!" +:status :complete +:comment "All resolutions supported (up to 600DPI)." :model "PIXMA MG2900 Series" :interface "USB WiFi" @@ -181,10 +185,10 @@ :comment "All resolutions supported (up to 2400DPI)." :model "PIXMA MG6400 Series" -:interface "USB" +:interface "USB WiFi" :usbid "0x04a9" "0x1770" -:status :untested -:comment "Testers needed!" +:status :complete +:comment "All resolutions supported (up to 1200DPI)." :model "PIXMA MG6500 Series" :interface "USB" @@ -631,6 +635,12 @@ :status :untested :comment "Testers needed!" +:model "PIXMA MX490 Series" +:interface "USB WiFi" +:usbid "0x04a9" "0x1787" +:status :untested +:comment "Testers needed!" + :model "PIXMA MX510 Series" :interface "USB Ethernet" :usbid "0x04a9" "0x175c" @@ -710,7 +720,7 @@ :comment "All resolutions supported (up to 2400DPI). Flatbed, ADF simplex and Duplex supported." :model "PIXMA MX920 Series" -:interface "USB" +:interface "USB Ethernet WiFi" :usbid "0x04a9" "0x176b" :status :good :comment "All resolutions supported (up to 2400DPI). Flatbed, ADF simplex and Duplex supported." @@ -739,6 +749,24 @@ :status :complete :comment "All resolutions supported (up to 600DPI)" +:model "i-SENSYS MF210 Series" +:interface "USB Ethernet WiFi" +:usbid "0x04a9" "0x27a9" +:status :untested +:comment "Testers needed!" + +:model "i-SENSYS MF220 Series" +:interface "USB Ethernet WiFi" +:usbid "0x04a9" "0x27a8" +:status :untested +:comment "Testers needed!" + +:model "i-SENSYS MF810/820" +:interface "USB Ethernet" +:usbid "0x04a9" "0x27a6" +:status :untested +:comment "Testers needed!" + :model "i-SENSYS MF3010" :interface "USB Ethernet" :usbid "0x04a9" "0x2759" @@ -913,6 +941,18 @@ :status :untested :comment "Testers needed!" +:model "i-SENSYS MF5900 Series" +:interface "USB Ethernet" +:usbid "0x04a9" "0x2743" +:status :untested +:comment "Testers needed!" + +:model "i-SENSYS MF6100 Series" +:interface "USB Ethernet" +:usbid "0x04a9" "0x278e" +:status :untested +:comment "Testers needed!" + :model "imageCLASS MF6500 series" :interface "USB" :usbid "0x04a9" "0x2686" diff --git a/doc/sane-avision.man b/doc/sane-avision.man index 805d342..299bb72 100644 --- a/doc/sane-avision.man +++ b/doc/sane-avision.man @@ -157,9 +157,9 @@ export SANE_DEBUG_AVISION=7 .SH "SEE ALSO" sane(7), sane\-scsi(5), sane\-usb(5) .br -http://skull.piratehaven.org/~mike/sane/avision.html +http://exactcode.com/site/open_source/saneavision/ .SH MAINTAINER -Mike Kelly +Ren\['e] Rebe .SH AUTHOR Ren\['e] Rebe and Meino Christian Cramer diff --git a/doc/sane-epjitsu.man b/doc/sane-epjitsu.man index ebb87e1..5d2a8ca 100644 --- a/doc/sane-epjitsu.man +++ b/doc/sane-epjitsu.man @@ -10,7 +10,7 @@ The library implements a SANE (Scanner Access Now Easy) backend which provides basic access the Fujitsu fi\-60F/fi\-65F and ScanSnap S300/S1300/S1100 scanners. .SH HARDWARE SUPPORT -These scanners are fairly limited, only supporting a couple of modes and resolutions, and always scanning full width. The backend supports missing modes (binary, grayscale) in software, but makes no effort to offer intermediate resolutions and only minimal scan area controls. See +These scanners are fairly limited, only supporting a couple of modes and resolutions, and always scanning full width. The backend supports missing modes (binary, grayscale) and intermediate resolutions in software, but provides only minimal scan area controls. See .B KNOWN ISSUES. This backend may support other scanners. If physical inspection reveals an Epson chipset, please contact the author for instructions on collecting a USB trace under Windows to verify. diff --git a/doc/sane-epsonds.man b/doc/sane-epsonds.man new file mode 100644 index 0000000..ea9bcbb --- /dev/null +++ b/doc/sane-epsonds.man @@ -0,0 +1,101 @@ +.TH sane\-epsonds 5 "29 Mar 2015" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" +.IX sane\-epsonds +.SH NAME +sane\-epsonds \- SANE backend for EPSON ESC/I-2 scanners +.SH DESCRIPTION +The +.B sane\-epsonds +library implements a SANE (Scanner Access Now Easy) backend that +provides access to Epson ESC/I-2 scanners. +.PP +Valid command line options and their syntax can be listed by using +.RS +scanimage \-\-help \-d epsonds +.RE +Not all devices support all options. +.TP +.I Scan Mode +The +.I \-\-mode +switch selects the basic mode of operation of the scanner. Valid choices +are Lineart, Gray and Color. The Lineart mode is black and white only, +Gray will produce 256 levels of gray or more depending on the scanner +and Color means 24 bit color mode or more depending on the scanner. +Some scanners will internally use 36 bit color, their external interface +however may only support 24 bits. + +The +.I \-\-depth +option selects the bit depth the scanner is using. This option is only +available for scanners that support more than one bit depth. Older +scanners will always transfer the image in 8bit mode. Newer scanners +allow to select either 8 bits, 12 or 14 bits per color channel. For a +color scan this means an effective color depth of 36 or 42 bits over +all three channels. The valid choices depend on the scanner model. + +The +.I \-\-resolution +switch selects the resolution for a scan. Some EPSON scanners will scan in +any resolution between the lowest and highest possible value. The list +reported by the scanner can be displayed using the "\-\-help \-d epson" +parameters to scanimage. + +The geometry options +.I \-l \-t \-x \-y +control the scan area: \-l sets the top left x coordinate, \-t the top +left y coordinate, \-x selects the width and \-y the height of the scan +area. All parameters are specified in millimeters. + +The +.I \-\-source +option selects the scan source. Valid options depend on the installed +options. The default is "Flatbed". + +The +.I \-\-eject +option ejects the sheet in the ADF. + +The +.I \-\-adf-mode +option select the ADF mode (simplex/duplex). + +.SH CONFIGURATION FILE +The configuration file @CONFIGDIR@/epsonds.conf specifies the device(s) that the +backend will use. Possible connection types are: +.TP +.I USB +For not automatically detected USB scanners, their VENDOR and PRODUCT ID can +be specified manually in the config file. +More information about valid syntax for USB devices can be found in sane\-usb(5). +.TP +.I Network (not yet supported) +Network scanners can be auto-discovered if +.I autodiscovery +is specified after +.I +net +keyword. An IP address to connect to can also be used. +.SH FILES +.TP +.I @LIBDIR@/libsane\-epsonds.a +The static library implementing this backend. +.TP +.I @LIBDIR@/libsane\-epsonds.so +The shared library implementing this backend (present on systems that +support dynamic loading). +.SH ENVIRONMENT +.TP +.B SANE_DEBUG_EPSONDS +If the library was compiled with debug support enabled, this +environment variable controls the debug level for this backend. E.g., +a value of 128 requests all debug output to be printed. Smaller +levels reduce verbosity. Values around 11-16 will usuallybe enough for +a bug report. + +.SH "SEE ALSO" + +sane\-usb(5), scanimage(1), xscanimage(1), xsane(1) + +.SH AUTHOR + +The package is written by Alessandro Zummo diff --git a/doc/sane-genesys.man b/doc/sane-genesys.man index 2b96483..2acd717 100644 --- a/doc/sane-genesys.man +++ b/doc/sane-genesys.man @@ -10,7 +10,7 @@ access to USB flatbed scanners based on the Genesys GL646, GL841, GL843, GL847 a At present, the following scanners are known to work with this backend: .PP .RS -Canon LiDE 35/40/50/60/100/110/200/210/700 +Canon LiDE 35/40/50/60/100/110/120/200/210/220/700 .br Hewlett-Packard HP2300C/HP2400/HP3670/HP3690/G4010/G4050 .br @@ -55,10 +55,11 @@ If you plug the scanner in another machine or use it with another account, calib will have to be redone, unles you use the \-\-calibration\-file option. If no home directory is defined, USERAPPPROFILE will be used, then TMPDIR or TMP. If none of these directories exist, the backend will try -to write in the current working directory. Flatbed scanners alos make use of the calibration file as a cache +to write in the current working directory. Flatbed scanners also make use of the calibration file as a cache to avoid calibration before each scan. Calibration file name is the name of the scanner model if only one scanner is detected. In the case of several identical model, the file name will be the name -of the logical USB device name. +of the logical USB device name. The expiration time manages the time a calibration is valid in cache. +A value of -1 means forever, 0 means no cache. .SH EXTRAS SCAN OPTIONS @@ -123,6 +124,13 @@ as root. It maybe used in case of sheet-fed scanners to share a calibration file users. .RE +.B \-\-expiration\-time +.RS + Specify the time (in minutes) a cached calibration is considered valid. If older than the given value, a new +calibration is done. A value of -1 means no expiration and cached value are kept forever unless cleared by +userwith the calibration clear option. A value of 0 means cache is disabled. +.RE + .PP Additionally, several 'software' options are exposed by the backend. These are reimplementations of features provided natively by larger scanners, but @@ -274,6 +282,9 @@ cncsolutions (http://www.cncsolutions.com.br) sponsored and supported the work o .TP Brian Paavo from Benthic Science Limited for donating a Canoscan LiDE 700F. .br +.TP +Dany Qumsiyeh for donating a Canoscan LiDE 210 and a LiDE 220. +.br .SH "SEE ALSO" .BR sane (7), diff --git a/doc/sane-pixma.man b/doc/sane-pixma.man index c780ba8..c72cbda 100644 --- a/doc/sane-pixma.man +++ b/doc/sane-pixma.man @@ -1,4 +1,4 @@ -.TH "sane\-pixma" "5" "29 Oct 2014" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" +.TH "sane\-pixma" "5" "03 Apr 2015" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" .IX sane\-pixma .SH NAME sane\-pixma \- SANE backend for Canon Multi-Function Printers and CanoScan Scanners @@ -15,11 +15,11 @@ over IPv4 as well as IPv6 (MFNP over IPv6 is untested). Currently, the following models work with this backend: .PP .RS -PIXMA MG2100, MG2400, MG2900, MG3100, MG3200, MG3500, MG4200 +PIXMA MG2100, MG2200, MG2400, MG2500, MG2900, MG3100, MG3200 .br -PIXMA MG5100, MG5200, MG5300, MG5500, MG6100, MG6200, MG6300 +PIXMA MG3500, MG4200, MG5100, MG5200, MG5300, MG5500, MG6100 .br -PIXMA MG7100, MG8200 +PIXMA MG6200, MG6300, MG6400, MG7100, MG8200 .br PIXMA MP140, MP150, MP160, MP170, MP180, MP190 .br @@ -77,21 +77,21 @@ in the backend so that they get recognized and activated. Feedback in the sane\-devel mailing list welcome. .PP .RS -PIXMA E400, E460, E500, E510, E560, E600, E610 +PIXMA E400, E460, E480, E500, E510, E560, E600, E610 .br -PIXMA MG2200, MG2500, MG4100, MG5400, MG5600 -.br -PIXMA MG6400, MG6500, MG6600, MG7500, MG8100 +PIXMA MG4100, MG5400, MG5600, MG6500, MG6600, MG7500, MG8100 .br PIXMA MP375R, MP493, MP495, MP740 .br -PIXMA MX320, MX390, MX430, MX450, MX470, MX710 +PIXMA MX320, MX390, MX430, MX450, MX470, MX490, MX710 .br -imageCLASS MF5630, MF5650, MF5750, MF8030, MF8170c +imageCLASS MF810/820, MF5630, MF5650, MF5750, MF8030, MF8170c .br imageRUNNER 1133 .br -i-SENSYS MF5880dn, MF6680dn, MF8500C Series +i-SENSYS MF210 Series, MF220 Series, MF5880dn, MF5900 Series +.br +i-SENSYS MF6100 Series, MF6680dn, MF8500C Series .br MAXIFY MB2000, MB2300, MB5000, MB5300 .RE -- cgit v1.2.3