Please review patch for net.c (was: Re: [sane-devel] Timetable for sane-1.0.6)

mh crapsite@gmx.net
Tue, 2 Oct 2001 12:35:34 +0200


--Boundary-=_nWlrBbmQBhCDarzOwKkYHIDdqSCD
Content-Type: text/plain
Content-Transfer-Encoding: quoted-printable

Henning Meier-Geinitz, Mon, 01 Okt 2001:
> Hi,
>=20
> On Mon, Oct 01, 2001 at 12:22:06PM -0400, wls@astro.umd.edu wrote:
> > I hope that one of the bugs that gets addressed is the one that I rec=
ently
> > reported -- that scans of > 8 bits / color / pixels get byte swapped =
when
> > the frontend is on a machine of different byte order than the backend=
=2E
>=20
> We will look at all the things at the TODO list but I can't promise
> anything.
>=20
> A general comment: Patches for bug-fixes are appreciated from
> everyone, not only maintainers! Also hints for where to search for a
> bug and possible solutions.

Hi,
the attached patch is an attempt to solve the byte order problem with the=
 net
backend. (... and like always,  this might be complete crap :)
Someone who actually has problems with endianess should give it a try.
The diff was made against net.c from CVS yesterday evening.=20
(patch net.c net_endian.diff)

Michael

--Boundary-=_nWlrBbmQBhCDarzOwKkYHIDdqSCD
Content-Type: text/x-c;
  name="net_endian.diff"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="net_endian.diff"

LS0tIG5ldF9vcmlnLmMJTW9uIE9jdCAgMSAyMjoxNjo1MCAyMDAxCisrKyBuZXQuYwlUdWUgT2N0
ICAyIDEyOjIwOjEyIDIwMDEKQEAgLTg4LDYgKzg4LDEwIEBAIHN0YXRpYyBOZXRfRGV2aWNlICpm
aXJzdF9kZXZpY2U7CiBzdGF0aWMgTmV0X1NjYW5uZXIgKmZpcnN0X2hhbmRsZTsKIHN0YXRpYyBj
b25zdCBTQU5FX0RldmljZSAqKmRldmxpc3Q7CiBzdGF0aWMgaW50IHNhbmVkX3BvcnQ7CitzdGF0
aWMgaW50IGNsaWVudF9iaWdfZW5kaWFuOyAvKiAxID09IGJpZyBlbmRpYW47IDAgPT0gbGl0dGxl
IGVuZGlhbiAqLworc3RhdGljIGludCBzZXJ2ZXJfYmlnX2VuZGlhbjsgLyogMSA9PSBiaWcgZW5k
aWFuOyAwID09IGxpdHRsZSBlbmRpYW4gKi8KK3N0YXRpYyBpbnQgZGVwdGg7IC8qIGJpdHMgcGVy
IHBpeGVsICovCitzdGF0aWMgaW50IGhhbmdfb3ZlcjsgLyotMSA9PSBubyBoYW5nb3Zlcjsgb3Ro
ZXJ3aXNlIGNhc3QgdmFsdWUgdG8gdW5zaWduZWQgY2hhciAqLwogCiBzdGF0aWMgU0FORV9TdGF0
dXMKIGFkZF9kZXZpY2UgKGNvbnN0IGNoYXIgKm5hbWUsIE5ldF9EZXZpY2UgKiogbmRwKQpAQCAt
MzMyLDYgKzMzNiwxOSBAQCBTQU5FX1N0YXR1cyBzYW5lX2luaXQgKFNBTkVfSW50ICogdmVyc2lv
CiAgIHNpemVfdCBsZW47CiAgIEZJTEUgKmZwOwogCisgIC8qIGRldGVybWluZSAoY2xpZW50KSBt
YWNoaW5lIGJ5dGUgb3JkZXIgKi8KKyAgc2hvcnQgbnMgPSAweDEyMzQ7CisgIHVuc2lnbmVkIGNo
YXIgKnAgPSAodW5zaWduZWQgY2hhciAqKSgmbnMpOworICBpZigqcCA9PSAweDEyKQorICB7Cisg
ICAgY2xpZW50X2JpZ19lbmRpYW4gPSAxOworICAgIERCRygxLCJDbGllbnQgaGFzIGJpZyBlbmRp
YW4gYnl0ZSBvcmRlciIpOworICB9CisgIGVsc2UKKyAgeworICAgIGNsaWVudF9iaWdfZW5kaWFu
ID0gMDsKKyAgICBEQkcoMSwiQ2xpZW50IGhhcyBsaXR0bGUgZW5kaWFuIGJ5dGUgb3JkZXIiKTsK
KyAgfQogICBEQkdfSU5JVCAoKTsKIAogICBhdXRoX2NhbGxiYWNrID0gYXV0aG9yaXplOwpAQCAt
ODY5LDYgKzg4Niw3IEBAIFNBTkVfU3RhdHVzIHNhbmVfZ2V0X3BhcmFtZXRlcnMgKFNBTkVfSGEK
IAogICBzdGF0dXMgPSByZXBseS5zdGF0dXM7CiAgICpwYXJhbXMgPSByZXBseS5wYXJhbXM7Cisg
IGRlcHRoID0gcmVwbHkucGFyYW1zLmRlcHRoOwogICBzYW5laV93X2ZyZWUgKCZzLT5ody0+d2ly
ZSwKIAkJKFdpcmVDb2RlY0Z1bmMpIHNhbmVpX3dfZ2V0X3BhcmFtZXRlcnNfcmVwbHksICZyZXBs
eSk7CiAKQEAgLTg4NSw4ICs5MDMsMTEgQEAgU0FORV9TdGF0dXMgc2FuZV9zdGFydCAoU0FORV9I
YW5kbGUgaGFuZAogICBzb2NrbGVuX3QgbGVuOwogICBzaG9ydCBwb3J0OwkJCS8qIEludGVybmV0
LXNwZWNpZmljICovCiAKKwogICBEQkcoMywgInNhbmVfc3RhcnRcbiIpOwogCisgIGhhbmdfb3Zl
ciA9IC0xOworCiAgIGlmIChzLT5kYXRhID49IDApCiAgICAgcmV0dXJuIFNBTkVfU1RBVFVTX0lO
VkFMOwogCkBAIC05MTQsNiArOTM1LDE2IEBAIFNBTkVfU3RhdHVzIHNhbmVfc3RhcnQgKFNBTkVf
SGFuZGxlIGhhbmQKIAogICAgICAgc3RhdHVzID0gcmVwbHkuc3RhdHVzOwogICAgICAgcG9ydCA9
IHJlcGx5LnBvcnQ7CisgICAgICBpZihyZXBseS5ieXRlX29yZGVyID09IDB4MTIzNCkKKyAgICAg
IHsKKyAgICAgICAgc2VydmVyX2JpZ19lbmRpYW4gPSAwOworICAgICAgICBEQkcoMSwiU2VydmVy
IGhhcyBsaXR0bGUgZW5kaWFuIGJ5dGUgb3JkZXIiKTsKKyAgICAgIH0KKyAgICAgIGVsc2UKKyAg
ICAgIHsKKyAgICAgICAgc2VydmVyX2JpZ19lbmRpYW4gPSAxOworICAgICAgICBEQkcoMSwiU2Vy
dmVyIGhhcyBiaWcgZW5kaWFuIGJ5dGUgb3JkZXIiKTsKKyAgICAgIH0KICAgICAgIG5lZWRfYXV0
aCA9IChyZXBseS5yZXNvdXJjZV90b19hdXRob3JpemUgIT0gMCk7CiAgICAgICBpZiAobmVlZF9h
dXRoKQogCXsKQEAgLTk2Miw3ICs5OTMsOCBAQCBzYW5lX3JlYWQgKFNBTkVfSGFuZGxlIGhhbmRs
ZSwgU0FORV9CeXRlCiB7CiAgIE5ldF9TY2FubmVyICpzID0gaGFuZGxlOwogICBzc2l6ZV90IG5y
ZWFkOwotCisgIHVuc2lnbmVkIGxvbmcgY250OworICB1bnNpZ25lZCBjaGFyIHN3YXBfYnVmOwog
ICBEQkcoMywgInNhbmVfcmVhZDogbWF4X2xlbmd0aCA9ICVkXG4iLCBtYXhfbGVuZ3RoKTsKIAog
ICBpZiAocy0+ZGF0YSA8IDApCkBAIC0xMDE3LDEzICsxMDQ5LDM1IEBAIHNhbmVfcmVhZCAoU0FO
RV9IYW5kbGUgaGFuZGxlLCBTQU5FX0J5dGUKIAogICBpZiAobWF4X2xlbmd0aCA+IChTQU5FX0lu
dCkgcy0+Ynl0ZXNfcmVtYWluaW5nKQogICAgIG1heF9sZW5ndGggPSBzLT5ieXRlc19yZW1haW5p
bmc7Ci0jaWYgMAotICAvKiBNYWtlIHN1cmUgdG8gZ2V0IG9ubHkgY29tcGxldGUgcGl4ZWwgKi8K
LSAgaWYgKDAgIT0gbWF4X2xlbmd0aCAlIGJ5dGVzX3Blcl9waXhlbCkKLSAgICBtYXhfbGVuZ3Ro
ID0gKG1heF9sZW5ndGggLyBieXRlc19wZXJfcGl4ZWwpICogYnl0ZXNfcGVyX3BpeGVsOwotI2Vu
ZGlmCiAgIC8qIFhYWCBIb3cgZG8gd2UgaGFuZGxlIGVuZGlhbiBwcm9ibGVtcyAqLwotICBucmVh
ZCA9IHJlYWQgKHMtPmRhdGEsIGRhdGEsIG1heF9sZW5ndGgpOworICAvKklmIHdlIGFyZSBzY2Fu
bmluZyB3aXRoIDE2Yml0L3BpeGVsLCB3ZSBtdXN0IGJlIHN1cmUgdG8gc2NhbiBjb21wbGV0ZSBw
aXhlbHMuCisgICAgT3RoZXJ3aXNlIGl0J3MgIGltcG9zc2libGUgdG8gc3dhcCB0aGUgYnl0ZXMs
IHNpbmNlIHdlIGRvbid0IGhhdmUgYWNjZXNzIHRvIHRoZQorICAgIHByZXZpb3VzIGRhdGEgaWYg
c2FuZV9yZWFkIGlzIGNhbGxlZCB0aGUgbmV4dCB0aW1lLiBUaGVyZWZvcmUgd2UgY2hlY2ssIHdo
ZXRoZXIKKyAgICBhbiBvZGQgbnVtYmVyIG9iIGJ5dGVzIHdhcyByZWFkLiBJZiB0aGlzIGlzIHRy
dWUsIHRoZSBsYXN0IGJ5dGUgaXMgc3RvcmVkIGluCisgICAgaGFuZ19vdmVyIGFuZCBsZW5ndGgg
aXMgZGVjcmVhc2VkIGJ5IDEuKi8KKworICAvKkNoZWNrIHdoZXRoZXIgd2UgYXJlIHNjYW5uaW5n
IHdpdGggYSBkZXB0aCBvZiAxNmJpdC9waXhlbCBhbmQgd2hldGhlciBzZXJ2ZXIgYW5kCisgICAg
Y2xpZW50IGhhdmUgZGlmZmVyZW50IGJ5dGUgb3JkZXIuIElmIHRoaXMgaXMgdHJ1ZSwgdGhlbiBp
dCdzIG5lY2Nlc3NhcnkgdG8gY2hlY2sKKyAgICB3aGV0aGVyIHRoZXJlJ3MgYSBoYW5nX292ZXIg
ZnJvbSBhIHByZXZpb3VzIGNhbGwgdG8gc2FuZV9yZWFkLiovCisgIGlmKChkZXB0aCA9PSAxNikg
JiYgKHNlcnZlcl9iaWdfZW5kaWFuICE9IGNsaWVudF9iaWdfZW5kaWFuKSkKKyAgeworICAgIERC
RygxLCJjbGllbnQvc2VydmVyIGhhdmUgZGlmZmVyZW50IGJ5dGUgb3JkZXI7IGNoZWNrIGZvciBo
YW5nX292ZXIiKTsKKyAgICBpZihoYW5nX292ZXIgPiAtMSkKKyAgICB7CisgICAgICBEQkcoMSwi
aGFuZ19vdmVyIGZyb20gcHJldmlvdXMgY2FsbCB0byBzYW5lX3JlYWQoKSIpOworICAgICAgLyog
aGFuZ19vdmVyIGZyb20gcHJldmlvdXMgY2FsbCB0byBzYW5lX3JlYWQ7IGFwcGx5IGl0IG5vdyov
CisgICAgICAqKGRhdGEpID0gKHVuc2lnbmVkIGNoYXIpIGhhbmdfb3ZlcjsKKyAgICAgIG5yZWFk
ID0gcmVhZCAocy0+ZGF0YSwgZGF0YSsxLCBtYXhfbGVuZ3RoLTEpOworICAgIH0KKyAgICBlbHNl
CisgICAgeworICAgICAgREJHKDEsIm5vIGhhbmdfb3ZlciBmcm9tIHByZXZpb3VzIGNhbGwgdG8g
c2FuZV9yZWFkKCkiKTsKKyAgICAgIC8qbm8gaGFuZ19vdmVyKi8KKyAgICAgIG5yZWFkID0gcmVh
ZCAocy0+ZGF0YSwgZGF0YSwgbWF4X2xlbmd0aCk7CisgICAgfQorICB9CisgIGVsc2UKKyAgICBu
cmVhZCA9IHJlYWQgKHMtPmRhdGEsIGRhdGEsIG1heF9sZW5ndGgpOwogICBpZiAobnJlYWQgPCAw
KQogICAgIHsKICAgICAgIGlmIChlcnJubyA9PSBFQUdBSU4pCkBAIC0xMDM0LDggKzEwODgsNDAg
QEAgc2FuZV9yZWFkIChTQU5FX0hhbmRsZSBoYW5kbGUsIFNBTkVfQnl0ZQogCSAgcmV0dXJuIFNB
TkVfU1RBVFVTX0lPX0VSUk9SOwogCX0KICAgICB9Ci0gIHMtPmJ5dGVzX3JlbWFpbmluZyAtPSBu
cmVhZDsKLSAgKmxlbmd0aCA9IG5yZWFkOworICAvKkNoZWNrIHdoZXRoZXIgd2UgYXJlIHNjYW5u
aW5nIHdpdGggYSBkZXB0aCBvZiAxNmJpdC9waXhlbCBhbmQgd2hldGhlciBzZXJ2ZXIgYW5kCisg
ICAgY2xpZW50IGhhdmUgZGlmZmVyZW50IGJ5dGUgb3JkZXIuIElmIHRoaXMgaXMgdHJ1ZSwgdGhl
biBpdCdzIG5lY2Nlc3NhcnkgdG8gY2hlY2sKKyAgICB3aGV0aGVyIHJlYWQgcmV0dXJuZWQgYW4g
b2RkIG51bWJlci4gSWYgYW4gb2RkICBudW1iZXIgaGFzIGJlZW4gcmV0dXJuZWQsIHdlIG11c3Qg
c2F2ZSB0aGUKKyAgICBsYXN0IGJ5dGUuKi8KKyAgaWYoKGRlcHRoID09IDE2KSAmJiAoc2VydmVy
X2JpZ19lbmRpYW4gIT0gY2xpZW50X2JpZ19lbmRpYW4pKQorICB7CisgICAgREJHKDEsImNsaWVu
dC9zZXJ2ZXIgaGF2ZSBkaWZmZXJlbnQgYnl0ZSBvcmRlcjsgbXVzdCBzd2FwIik7CisgICAgcy0+
Ynl0ZXNfcmVtYWluaW5nIC09IG5yZWFkOworICAgIGlmKDAgIT0gbnJlYWQgJSAyKQorICAgIHsK
KyAgICAgIERCRygxLCJjbGllbnQvc2VydmVyIGhhdmUgZGlmZmVyZW50IGJ5dGUgb3JkZXI7IHN0
b3JlIGhhbmdfb3ZlciIpOworICAgICAgLypucmVhZCBpcyBvZGQ7IGRlY3JlYXNlIGxlbmd0aCBh
bmQgc3RvcmUgaGFuZ19vdmVyKi8KKyAgICAgICpsZW5ndGggPSBucmVhZCAtIDE7CisgICAgICBo
YW5nX292ZXIgPSAqKGRhdGEgKyBucmVhZCk7CisgICAgfQorICAgIGVsc2UKKyAgICB7CisgICAg
ICAvKm5yZWFkIGlzIGV2ZW47IG5vIGhhbmdfb3ZlciovCisgICAgICAqbGVuZ3RoID0gbnJlYWQ7
CisgICAgICBoYW5nX292ZXIgPSAtMTsKKyAgICB9CisgICAgLypGaW5hbGx5IHN0ZXAgdGhyb3Vn
aCB0aGUgYnVmZmVyIGFuZCBzd2FwIGJ5dGVzKi8KKyAgICBmb3IoY250ID0gMDtjbnQgPCAqbGVu
Z3RoIC0gMTtjbnQgKz0gMikKKyAgICB7CisgICAgICAgc3dhcF9idWYgPSAqKGRhdGEgK2NudCk7
CisgICAgICAgKihkYXRhICsgY250KSA9ICooZGF0YSArY250ICsgMSk7CisgICAgICAgKihkYXRh
ICsgY250ICsgMSkgPSBzd2FwX2J1ZjsKKyAgICB9CisgIH0KKyAgZWxzZQorICB7CisgICAgcy0+
Ynl0ZXNfcmVtYWluaW5nIC09IG5yZWFkOworICAgICpsZW5ndGggPSBucmVhZDsKKyAgfQogICBy
ZXR1cm4gU0FORV9TVEFUVVNfR09PRDsKIH0KIAo=

--Boundary-=_nWlrBbmQBhCDarzOwKkYHIDdqSCD--