sane-project-website/old-archive/1998-12/0329.html

273 wiersze
15 KiB
HTML

This file contains invisible Unicode characters!

This file contains invisible Unicode characters that may be processed differently from what appears below. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to reveal hidden characters.

<!-- received="Thu Dec 31 07:32:43 1998 PST" -->
<!-- sent="Thu, 31 Dec 1998 15:32:43 +0000 (GMT)" -->
<!-- name="Nick Lamb" -->
<!-- email="njl98r@ecs.soton.ac.uk" -->
<!-- subject="Roll up, Roll up. Test your backend" -->
<!-- id="" -->
<!-- inreplyto="" -->
<title>sane-devel: Roll up, Roll up. Test your backend</title>
<h1>Roll up, Roll up. Test your backend</h1>
<b>Nick Lamb</b> (<a href="mailto:njl98r@ecs.soton.ac.uk"><i>njl98r@ecs.soton.ac.uk</i></a>)<br>
<i>Thu, 31 Dec 1998 15:32:43 +0000 (GMT)</i>
<p>
<ul>
<li> <b>Messages sorted by:</b> <a href="date.html#329">[ date ]</a><a href="index.html#329">[ thread ]</a><a href="subject.html#329">[ subject ]</a><a href="author.html#329">[ author ]</a>
<!-- next="start" -->
<li> <b>Next message:</b> <a href="0330.html">Robert Brink: "Re: Very slow colour scanning with Trust Imagery 1200SP (= Mustek MSF-06000SP)"</a>
<li> <b>Previous message:</b> <a href="0328.html">Hugo van der Kooij: "Re: Forwards-Backwards"</a>
<!-- nextthread="start" -->
<!-- reply="end" -->
</ul>
<!-- body="start" -->
This message is in MIME format. The first part should be readable text,<br>
while the remaining parts are likely unreadable without MIME-aware tools.<br>
Send mail to <a href="mailto:mime@docserver.cac.washington.edu">mime@docserver.cac.washington.edu</a> for more info.<br>
<p>
--1318610500-70641457-915118363=:29443<br>
Content-Type: TEXT/PLAIN; charset=US-ASCII<br>
<p>
<p>
A while back I reported that SANE 1.0 has a broken PNM device driver.<br>
While I was waiting for it to be fixed (someone?) I offered to write<br>
a test frontend that would spot this sort of stupidity. Here it is.<br>
<p>
I have added functionality to SANE's scanimage so that it can hopefully<br>
detect broken SANE backends. A patch attached to this mail. I can also<br>
make it available for HTTP if anyone asks.<br>
<p>
The file scanimage-test-patch is a patch to be applied directly to the<br>
file frontend/scanimage.c.<br>
<p>
I would like to see this patch, or something similar, applied before<br>
SANE 1.0.1 is made available, but it should perhaps be enclosed in<br>
#ifdefs so that by default the test features aren't compiled in. This<br>
is especially the case if some hardware+backend combos are still<br>
broken when shipped with 1.0.1 -- I hope that doesn't happen.<br>
<p>
What does it do?<br>
----------------<br>
<p>
This frontend detects problems with SANE backends which do not fully<br>
meet the SANE specification. In this first version I have concentrated<br>
on a problem which several backends "In the wild" are known to have.<br>
In particular this version checks that the backend correctly handles<br>
sane_read(...) even for unusual and varying buffer length values. It<br>
detects backends which overflow the buffer or incorrectly report the<br>
amount of data read and it also detects backends which sometimes don't<br>
write any data even after a blocking read.<br>
<p>
Why should I use it?<br>
--------------------<br>
<p>
If you're a SANE end-user you probably don't want to try this. If you<br>
do try it, and it detects a problem with a backend you use, please<br>
report it to the SANE developers mailing list, where hopefully someone<br>
will notice and take appropriate action.<br>
<p>
If you're a SANE frontend developer, you probably don't want to try <br>
this. The exception is if your frontend has problems in sane_read(...)<br>
on some backends, but not others. In that case this patch may help<br>
you to show that the problem is in the backend, and you can breathe<br>
a sigh of relief.<br>
<p>
If you're a SANE backend developer, and you have working code, you<br>
really should try this frontend. Any properly working backend should<br>
pass with no trouble, but those which don't are a problem. In the<br>
future hopefully a program somewhat like this one will form part of<br>
a self-certification test for new SANE backends...<br>
<p>
If you're a SANE backend developer, but you don't yet have working code<br>
you should be reminded that sane_read(...) is used very politely by<br>
the two commonest frontends, scanimage and xscanimage. Your code should<br>
be written to work with /any/ frontend, and that means this one too.<br>
<p>
If you're a core developer, please take a look at this and see if you<br>
think the tests done here should be _required_ before a backend is<br>
made part of the core SANE distribution in future. Also please try it<br>
with any backends for which you have appropriate hardware, as a double<br>
check in case the maintainer doesn't see this.<br>
<p>
How do I compile it?<br>
--------------------<br>
<p>
After applying the patch, simply recompile and (optionally) re-install<br>
the scanimage frontend. The new code should work on all the platforms<br>
for which scanimage itself was tested. It works for me (TM)<br>
<p>
How do I use it?<br>
----------------<br>
<p>
Simply add the parameter --test or -T to an ordinary scanimage run, and<br>
the test code is invoked in place of the ordinary scanimage sane_read<br>
code. Unlike a normal scan, there is no data written to stdout for the<br>
test scan.<br>
<p>
e.g. scanimage -d pnm:0 -T --filename /path/to/some.ppm<br>
<p>
After some initial diagnostic messages, there are a series of lines<br>
each containing a description of the test being performed, then either<br>
PASS or FAIL and a brief explanation of the problem.<br>
<p>
It is NOT acceptable for a backend to FAIL any of the tests. If it is<br>
not possible to handle the extreme values tried by --test in your<br>
backend (e.g. due to hardware limitations) then you should return a<br>
suitable SANE error status and note the limitation under BUGS in the<br>
manual page for your backend.<br>
<p>
Feedback<br>
--------<br>
<p>
I have only tested this on an Intel PC with no physical scanners. For<br>
testing I used only the PNM:0 and PNM:1 devices. Therefore I cannot<br>
say for sure that this works with _any_ known scanners in the real world<br>
I hope some of you will help rectify that by sending me bug reports.<br>
<p>
I would also appreciate info about other ways in which some backends are<br>
known not to meet the SANE standard. This code should evolve to test<br>
for compliance as thoroughly as possible.<br>
<p>
Nick<br>
<a href="mailto:njl195@zepler.org.uk">njl195@zepler.org.uk</a><br>
<p>
--1318610500-70641457-915118363=:29443<br>
Content-Type: TEXT/PLAIN; charset=US-ASCII; name=scanimage-test-patch<br>
Content-Transfer-Encoding: BASE64<br>
Content-ID: &lt;<a href="mailto:Pine.LNX.3.96.981231153243.29443B@chef.ecs.soton.ac.uk">Pine.LNX.3.96.981231153243.29443B@chef.ecs.soton.ac.uk</a>&gt;<br>
Content-Description: Scanimage patch<br>
<p>
LS0tIHNjYW5pbWFnZS5jLm9sZAlUaHUgRGVjIDMxIDEzOjIzOjU1IDE5OTgN<br>
CisrKyBzY2FuaW1hZ2UuYwlUaHUgRGVjIDMxIDEzOjM4OjA0IDE5OTgNCkBA<br>
IC01OSwxOCArNTksMTkgQEANCiAgIHsibGlzdC1kZXZpY2VzIiwgbm9fYXJn<br>
dW1lbnQsIE5VTEwsICdMJ30sDQogICB7ImhlbHAiLCBub19hcmd1bWVudCwg<br>
TlVMTCwgJ2gnfSwNCiAgIHsidmVyYm9zZSIsIG5vX2FyZ3VtZW50LCBOVUxM<br>
LCAndid9LA0KKyAgeyJ0ZXN0Iiwgbm9fYXJndW1lbnQsIE5VTEwsICdUJ30s<br>
DQogICB7InZlcnNpb24iLCBub19hcmd1bWVudCwgTlVMTCwgJ1YnfSwNCiAg<br>
IHswLCB9DQogfTsNCiANCi0jZGVmaW5lIEJBU0VfT1BUU1RSSU5HCSJkOmhM<br>
dlYiDQorI2RlZmluZSBCQVNFX09QVFNUUklORwkiZDpoTHZWVCINCiAjZGVm<br>
aW5lIFNUUklQX0hFSUdIVAkyNTYJLyogIyBsaW5lcyB3ZSBpbmNyZW1lbnQg<br>
aW1hZ2UgaGVpZ2h0ICovDQogDQogc3RhdGljIHN0cnVjdCBvcHRpb24gKiBh<br>
bGxfb3B0aW9uczsNCiBzdGF0aWMgaW50IG9wdGlvbl9udW1iZXJfbGVuOw0K<br>
IHN0YXRpYyBpbnQgKiBvcHRpb25fbnVtYmVyOw0KIHN0YXRpYyBTQU5FX0hh<br>
bmRsZSBkZXZpY2U7DQotc3RhdGljIGludCB2ZXJib3NlOw0KK3N0YXRpYyBp<br>
bnQgdmVyYm9zZSwgdGVzdDsNCiBzdGF0aWMgaW50IGhlbHA7DQogc3RhdGlj<br>
IGNvbnN0IGNoYXIgKiBwcm9nX25hbWU7DQogc3RhdGljIFNBTkVfT3B0aW9u<br>
X0Rlc2NyaXB0b3Igd2luZG93X29wdGlvblsyXTsNCkBAIC05MzgsNiArOTM5<br>
LDEwNiBAQA0KICAgICBmcmVlIChpbWFnZS5kYXRhKTsNCiB9DQogDQorc3Rh<br>
dGljIHZvaWQgY2xlYW5fYnVmZmVyKFNBTkVfQnl0ZSAqYnVmZmVyLCBpbnQg<br>
c2l6ZSkgew0KKyAgaW50IGk7DQorICBmb3IgKGk9IDA7IGkgPCBzaXplOyAr<br>
K2kpIHsNCisgICAgYnVmZmVyW2ldPSAweDIzOw0KKyAgfQ0KK30NCisNCitz<br>
dGF0aWMgdm9pZA0KK3Bhc3NfZmFpbCAoaW50IG1heCwgaW50IGxlbiwgU0FO<br>
RV9CeXRlICpidWZmZXIsIFNBTkVfU3RhdHVzIHN0YXR1cykgew0KKyAgaWYg<br>
KHN0YXR1cyAhPSBTQU5FX1NUQVRVU19HT09EKSB7DQorICAgIGZwcmludGYo<br>
c3RkZXJyLCAiRkFJTCBFcnJvcjogJXNcbiIsIHNhbmVfc3Ryc3RhdHVzKHN0<br>
YXR1cykpOw0KKyAgfSBlbHNlIGlmIChidWZmZXJbbGVuXSAhPSAweDIzKSB7<br>
DQorICAgIHdoaWxlKGJ1ZmZlcltsZW5dICE9IDB4MjMpIGxlbisrOw0KKyAg<br>
ICBmcHJpbnRmKHN0ZGVyciwgIkZBSUwgQ2hlYXQ6ICVkIGJ5dGVzXG4iLCBs<br>
ZW4pOw0KKyAgfSBlbHNlIGlmIChsZW4gPiBtYXgpIHsNCisgICAgZnByaW50<br>
ZihzdGRlcnIsICJGQUlMIE92ZXJmbG93OiAlZCBieXRlc1xuIiwgbGVuKTsN<br>
CisgIH0gZWxzZSBpZiAobGVuID09IDApIHsNCisgICAgZnByaW50ZihzdGRl<br>
cnIsICJGQUlMIE5vIGRhdGFcbiIpOw0KKyAgfSBlbHNlIHsNCisgICAgZnBy<br>
aW50ZihzdGRlcnIsICJQQVNTXG4iKTsNCisgIH0NCit9DQorDQorc3RhdGlj<br>
IHZvaWQNCit0ZXN0X2l0ICh2b2lkKQ0KK3sNCisgIGludCBpLCBsZW47DQor<br>
ICBTQU5FX1BhcmFtZXRlcnMgcGFybTsNCisgIFNBTkVfU3RhdHVzIHN0YXR1<br>
czsNCisgIEltYWdlIGltYWdlID0gezAsIH07DQorICBzdGF0aWMgY29uc3Qg<br>
Y2hhciAqZm9ybWF0X25hbWVbXSA9DQorICAgIHsgImdyYXkiLCAiUkdCIiwg<br>
InJlZCIsICJncmVlbiIsICJibHVlIiB9Ow0KKw0KKyAgc3RhdHVzID0gc2Fu<br>
ZV9zdGFydCAoZGV2aWNlKTsNCisgIGlmIChzdGF0dXMgIT0gU0FORV9TVEFU<br>
VVNfR09PRCkgew0KKyAgICBmcHJpbnRmIChzdGRlcnIsICIlczogc2FuZV9z<br>
dGFydDogJXNcbiIsDQorICAgICAgICAgICAgIHByb2dfbmFtZSwgc2FuZV9z<br>
dHJzdGF0dXMgKHN0YXR1cykpOw0KKyAgICBnb3RvIGNsZWFudXA7DQorICB9<br>
DQorDQorICBzdGF0dXMgPSBzYW5lX2dldF9wYXJhbWV0ZXJzIChkZXZpY2Us<br>
ICZwYXJtKTsNCisgIGlmIChzdGF0dXMgIT0gU0FORV9TVEFUVVNfR09PRCkg<br>
ew0KKyAgICBmcHJpbnRmIChzdGRlcnIsICIlczogc2FuZV9nZXRfcGFyYW1l<br>
dGVyczogJXNcbiIsDQorICAgICAgICAgICAgIHByb2dfbmFtZSwgc2FuZV9z<br>
dHJzdGF0dXMgKHN0YXR1cykpOw0KKyAgICBnb3RvIGNsZWFudXA7DQorICB9<br>
DQorDQorICBpZiAocGFybS5saW5lcyA+PSAwKSB7DQorICAgIGZwcmludGYg<br>
KHN0ZGVyciwgIiVzOiBzY2FubmluZyBpbWFnZSBvZiBzaXplICVkeCVkIHBp<br>
eGVscyBhdCAiDQorICAgICAgICAgICAgICIlZCBiaXRzL3BpeGVsXG4iLA0K<br>
KyAgICAgICAgICAgICBwcm9nX25hbWUsIHBhcm0ucGl4ZWxzX3Blcl9saW5l<br>
LCBwYXJtLmxpbmVzLA0KKyAgICAgICAgICAgICA4ICogcGFybS5ieXRlc19w<br>
ZXJfbGluZSAvIHBhcm0ucGl4ZWxzX3Blcl9saW5lKTsNCisgIH0gZWxzZSB7<br>
DQorICAgIGZwcmludGYgKHN0ZGVyciwgIiVzOiBzY2FubmluZyBpbWFnZSAl<br>
ZCBwaXhlbHMgd2lkZSBhbmQgIg0KKyAgICAgICAgICAgICAidmFyaWFibGUg<br>
aGVpZ2h0IGF0ICVkIGJpdHMvcGl4ZWxcbiIsDQorICAgICAgICAgICAgIHBy<br>
b2dfbmFtZSwgcGFybS5waXhlbHNfcGVyX2xpbmUsDQorICAgICAgICAgICAg<br>
IDggKiBwYXJtLmJ5dGVzX3Blcl9saW5lIC8gcGFybS5waXhlbHNfcGVyX2xp<br>
bmUpOw0KKyAgfQ0KKyAgZnByaW50ZiAoc3RkZXJyLCAiJXM6IGFjcXVpcmlu<br>
ZyAlcyBmcmFtZSwgJWQgYml0cy9zYW1wbGVcbiIsDQorICAgICAgICAgICBw<br>
cm9nX25hbWUsIGZvcm1hdF9uYW1lW3Bhcm0uZm9ybWF0XSwgcGFybS5kZXB0<br>
aCk7DQorDQorICBpbWFnZS5kYXRhPSBtYWxsb2MocGFybS5ieXRlc19wZXJf<br>
bGluZSAqIDIpOw0KKw0KKyAgY2xlYW5fYnVmZmVyKGltYWdlLmRhdGEsIHBh<br>
cm0uYnl0ZXNfcGVyX2xpbmUgKiAyKTsNCisgIGZwcmludGYgKHN0ZGVyciwg<br>
IiVzOiByZWFkaW5nIG9uZSBzY2FubGluZSwgJWQgYnl0ZXMuLi5cdCIsIHBy<br>
b2dfbmFtZSwNCisgICAgICAgICAgIHBhcm0uYnl0ZXNfcGVyX2xpbmUpOw0K<br>
KyAgc3RhdHVzPSBzYW5lX3JlYWQoZGV2aWNlLCBpbWFnZS5kYXRhLCBwYXJt<br>
LmJ5dGVzX3Blcl9saW5lLCAmbGVuKTsNCisgIHBhc3NfZmFpbChwYXJtLmJ5<br>
dGVzX3Blcl9saW5lLCBsZW4sIGltYWdlLmRhdGEsIHN0YXR1cyk7DQorICBp<br>
ZiAoc3RhdHVzICE9IFNBTkVfU1RBVFVTX0dPT0QpIGdvdG8gY2xlYW51cDsN<br>
CisNCisgIGNsZWFuX2J1ZmZlcihpbWFnZS5kYXRhLCBwYXJtLmJ5dGVzX3Bl<br>
cl9saW5lICogMik7DQorICBmcHJpbnRmIChzdGRlcnIsICIlczogcmVhZGlu<br>
ZyBvbmUgYnl0ZS4uLlx0XHQiLCBwcm9nX25hbWUpOw0KKyAgc3RhdHVzPSBz<br>
YW5lX3JlYWQoZGV2aWNlLCBpbWFnZS5kYXRhLCAxLCAmbGVuKTsNCisgIHBh<br>
c3NfZmFpbCgxLCBsZW4sIGltYWdlLmRhdGEsIHN0YXR1cyk7DQorICBpZiAo<br>
c3RhdHVzICE9IFNBTkVfU1RBVFVTX0dPT0QpIGdvdG8gY2xlYW51cDsNCisN<br>
CisgIGZvciAoaT0yOyBpIDwgcGFybS5ieXRlc19wZXJfbGluZSAqIDI7IGkq<br>
PTIpIHsNCisgICAgY2xlYW5fYnVmZmVyKGltYWdlLmRhdGEsIHBhcm0uYnl0<br>
ZXNfcGVyX2xpbmUgKiAyKTsNCisgICAgZnByaW50ZiAoc3RkZXJyLCAiJXM6<br>
IHN0ZXBwZWQgcmVhZCwgJWQgYnl0ZXMuLi4gXHQiLCBwcm9nX25hbWUsDQor<br>
ICAgICAgICAgICAgIGkpOw0KKyAgICBzdGF0dXM9IHNhbmVfcmVhZChkZXZp<br>
Y2UsIGltYWdlLmRhdGEsIGksICZsZW4pOw0KKyAgICBwYXNzX2ZhaWwoaSwg<br>
bGVuLCBpbWFnZS5kYXRhLCBzdGF0dXMpOw0KKyAgICBpZiAoc3RhdHVzICE9<br>
IFNBTkVfU1RBVFVTX0dPT0QpIGdvdG8gY2xlYW51cDsNCisgIH0NCisNCisg<br>
IGZvciAoaS89MjsgaSA+IDI7IGkvPTIpIHsNCisgICAgY2xlYW5fYnVmZmVy<br>
KGltYWdlLmRhdGEsIHBhcm0uYnl0ZXNfcGVyX2xpbmUgKiAyKTsNCisgICAg<br>
ZnByaW50ZiAoc3RkZXJyLCAiJXM6IHN0ZXBwZWQgcmVhZCwgJWQgYnl0ZXMu<br>
Li4gXHQiLCBwcm9nX25hbWUsDQorICAgICAgICAgICAgIGkgLSAxKTsNCisg<br>
ICAgc3RhdHVzPSBzYW5lX3JlYWQoZGV2aWNlLCBpbWFnZS5kYXRhLCBpIC0g<br>
MSwgJmxlbik7DQorICAgIHBhc3NfZmFpbChpIC0gMSwgbGVuLCBpbWFnZS5k<br>
YXRhLCBzdGF0dXMpOw0KKyAgICBpZiAoc3RhdHVzICE9IFNBTkVfU1RBVFVT<br>
X0dPT0QpIGdvdG8gY2xlYW51cDsNCisgIH0NCisgDQorY2xlYW51cDoNCisg<br>
IHNhbmVfY2FuY2VsIChkZXZpY2UpOw0KKyAgaWYgKGltYWdlLmRhdGEpDQor<br>
ICAgIGZyZWUgKGltYWdlLmRhdGEpOw0KK30NCisNCiBpbnQNCiBtYWluIChp<br>
bnQgYXJnYywgY2hhciAqKmFyZ3YpDQogew0KQEAgLTk3NSw2ICsxMDc2LDcg<br>
QEANCiAJY2FzZSAnZCc6IGRldm5hbWUgPSBvcHRhcmc7IGJyZWFrOw0KIAlj<br>
YXNlICdoJzogaGVscCA9IDE7IGJyZWFrOw0KIAljYXNlICd2JzogKyt2ZXJi<br>
b3NlOyBicmVhazsNCisJY2FzZSAnVCc6IHRlc3Q9IDE7IGJyZWFrOw0KIAlj<br>
YXNlICdMJzoNCiAJICB7DQogCSAgICBpbnQgaTsNCkBAIC0xMDE0LDYgKzEx<br>
MTYsNyBAQA0KIC1kLCAtLWRldmljZS1uYW1lPURFVklDRSAgIHVzZSBhIGdp<br>
dmVuIHNjYW5uZXIgZGV2aWNlXG5cDQogLWgsIC0taGVscCAgICAgICAgICAg<br>
ICAgICAgZGlzcGxheSB0aGlzIGhlbHAgbWVzc2FnZSBhbmQgZXhpdFxuXA0K<br>
IC1MLCAtLWxpc3QtZGV2aWNlcyAgICAgICAgIHNob3cgYXZhaWxhYmxlIHNj<br>
YW5uZXIgZGV2aWNlc1xuXA0KKy1ULCAtLXRlc3QgICAgICAgICAgICAgICAg<br>
IHRlc3QgYmFja2VuZCB0aG9yb3VnaGx5XG5cDQogLXYsIC0tdmVyYm9zZSAg<br>
ICAgICAgICAgICAgZ2l2ZSBldmVuIG1vcmUgc3RhdHVzIG1lc3NhZ2VzXG5c<br>
DQogLVYsIC0tdmVyc2lvbiAgICAgICAgICAgICAgcHJpbnQgdmVyc2lvbiBp<br>
bmZvcm1hdGlvblxuIiwNCiAJICAgIHByb2dfbmFtZSk7DQpAQCAtMTEyMSw3<br>
ICsxMjI0LDcgQEANCiAJICAgIGNhc2UgJz8nOg0KIAkgICAgICBleGl0ICgx<br>
KTsJLyogZXJyb3IgbWVzc2FnZSBpcyBwcmludGVkIGJ5IGdldG9wdF9sb25n<br>
KCkgKi8NCiANCi0JICAgIGNhc2UgJ2QnOiBjYXNlICdoJzogY2FzZSAndic6<br>
IGNhc2UgJ1YnOg0KKwkgICAgY2FzZSAnZCc6IGNhc2UgJ2gnOiBjYXNlICd2<br>
JzogY2FzZSAnVic6IGNhc2UgJ1QnOg0KIAkgICAgICAvKiBwcmV2aW91c2x5<br>
IGhhbmRsZWQgb3B0aW9ucyAqLw0KIAkgICAgICBicmVhazsNCiANCkBAIC0x<br>
MjMxLDcgKzEzMzQsMTAgQEANCiAgIHNpZ25hbCAoU0lHUElQRSwgc2lnaGFu<br>
ZGxlcik7DQogICBzaWduYWwgKFNJR1RFUk0sIHNpZ2hhbmRsZXIpOw0KIA0K<br>
LSAgc2Nhbl9pdCAoKTsNCisgIGlmICh0ZXN0ID09IDApIA0KKyAgICBzY2Fu<br>
X2l0ICgpOw0KKyAgZWxzZQ0KKyAgICB0ZXN0X2l0ICgpOw0KIA0KICAgc2Fu<br>
ZV9jbG9zZSAoZGV2aWNlKTsNCiANCg==<br>
--1318610500-70641457-915118363=:29443--<br>
<p>
<pre>
--
Source code, list archive, and docs: <a href="http://www.mostang.com/sane/">http://www.mostang.com/sane/</a>
To unsubscribe: echo unsubscribe sane-devel | mail <a href="mailto:majordomo@mostang.com">majordomo@mostang.com</a>
</pre>
<!-- body="end" -->
<p>
<ul>
<!-- next="start" -->
<li> <b>Next message:</b> <a href="0330.html">Robert Brink: "Re: Very slow colour scanning with Trust Imagery 1200SP (= Mustek MSF-06000SP)"</a>
<li> <b>Previous message:</b> <a href="0328.html">Hugo van der Kooij: "Re: Forwards-Backwards"</a>
<!-- nextthread="start" -->
<!-- reply="end" -->
</ul>