[sane-devel] [patch] fix SANE_Device

Frank Zago fzago@austin.rr.com
Sun, 14 Nov 2004 13:03:03 -0600


This is a multi-part message in MIME format.
--------------020906070304060802060600
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: quoted-printable
X-MIME-Autoconverted: from 8bit to quoted-printable by ms-smtp-04.texas.rr.com id iAEJ34J5003498


>=20
> The SANE standard defines the comunication between frontend and backend.
> It does not define any structs that shall be internally used by the
> frontend or backend.
>=20
> I think the clean appoach is that the backend handles the texts interna=
l
> as non const strings and only creats the SANE_Device struct to return
> the data to the frontend. The SANE_Device struct is defined for the
> purpose to transfer the data from the backend to the frontend as const
> chars. When the backend has to use non const definitions then it is not
> allowed to use the SANE_Device struct so it has to use it=C2=B4s own da=
ta
> types and not the one of the SANE standard.
>=20
> Oliver

So, in that case what about the patch in attachment.

I've also changed the internal definition of SANE_Option_Descriptor for t=
he same=20
  reason. It breaks about 5 backends, but they can all be easily fixed by=
 hand=20
by removing a few const. I'd say that the current definition of SANE_Devi=
ce and=20
SANE_Option_Descriptor and created an ugly cascade of unnecessary casts a=
nd=20
consts in all the backends.

Frank.



--------------020906070304060802060600
Content-Type: text/plain;
 name="sane.diff.part32"
Content-Disposition: inline;
 filename="sane.diff.part32"
Content-Transfer-Encoding: base64

SW5kZXg6IGluY2x1ZGUvc2FuZS9zYW5lLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2
c3Jvb3Qvc2FuZS9zYW5lLWJhY2tlbmRzL2luY2x1ZGUvc2FuZS9zYW5lLmgsdgpyZXRyaWV2
aW5nIHJldmlzaW9uIDEuNgpkaWZmIC11IC0zIC1wIC1CIC1iIC11IC1yMS42IHNhbmUuaAot
LS0gaW5jbHVkZS9zYW5lL3NhbmUuaAkxMyBOb3YgMjAwNCAyMDoyOToxNCAtMDAwMAkxLjYK
KysrIGluY2x1ZGUvc2FuZS9zYW5lLmgJMTQgTm92IDIwMDQgMTg6NTk6MDMgLTAwMDAKQEAg
LTkyLDYgKzkyLDE2IEBAIHR5cGVkZWYgZW51bQogICB9CiBTQU5FX1VuaXQ7CiAKKyNpZmRl
ZiBCQUNLRU5EX05BTUUKK3R5cGVkZWYgc3RydWN0CisgIHsKKyAgICBTQU5FX1N0cmluZyBu
YW1lOwkvKiB1bmlxdWUgZGV2aWNlIG5hbWUgKi8KKyAgICBTQU5FX1N0cmluZyB2ZW5kb3I7
CS8qIGRldmljZSB2ZW5kb3Igc3RyaW5nICovCisgICAgU0FORV9TdHJpbmcgbW9kZWw7CS8q
IGRldmljZSBtb2RlbCBuYW1lICovCisgICAgU0FORV9TdHJpbmcgdHlwZTsJLyogZGV2aWNl
IHR5cGUgKGUuZy4sICJmbGF0YmVkIHNjYW5uZXIiKSAqLworICB9CitTQU5FX0RldmljZTsK
KyNlbHNlCiB0eXBlZGVmIHN0cnVjdAogICB7CiAgICAgU0FORV9TdHJpbmdfQ29uc3QgbmFt
ZTsJLyogdW5pcXVlIGRldmljZSBuYW1lICovCkBAIC0xMDAsNiArMTEwLDcgQEAgdHlwZWRl
ZiBzdHJ1Y3QKICAgICBTQU5FX1N0cmluZ19Db25zdCB0eXBlOwkvKiBkZXZpY2UgdHlwZSAo
ZS5nLiwgImZsYXRiZWQgc2Nhbm5lciIpICovCiAgIH0KIFNBTkVfRGV2aWNlOworI2VuZGlm
CiAKICNkZWZpbmUgU0FORV9DQVBfU09GVF9TRUxFQ1QJCSgxIDw8IDApCiAjZGVmaW5lIFNB
TkVfQ0FQX0hBUkRfU0VMRUNUCQkoMSA8PCAxKQpAQCAtMTM0LDYgKzE0NSwyOCBAQCB0eXBl
ZGVmIHN0cnVjdAogICB9CiBTQU5FX1JhbmdlOwogCisjaWZkZWYgQkFDS0VORF9OQU1FCit0
eXBlZGVmIHN0cnVjdAorICB7CisgICAgU0FORV9TdHJpbmcgbmFtZTsJLyogbmFtZSBvZiB0
aGlzIG9wdGlvbiAoY29tbWFuZC1saW5lIG5hbWUpICovCisgICAgU0FORV9TdHJpbmcgdGl0
bGU7CS8qIHRpdGxlIG9mIHRoaXMgb3B0aW9uIChzaW5nbGUtbGluZSkgKi8KKyAgICBTQU5F
X1N0cmluZyBkZXNjOwkvKiBkZXNjcmlwdGlvbiBvZiB0aGlzIG9wdGlvbiAobXVsdGktbGlu
ZSkgKi8KKyAgICBTQU5FX1ZhbHVlX1R5cGUgdHlwZTsJLyogaG93IGFyZSB2YWx1ZXMgaW50
ZXJwcmV0ZWQ/ICovCisgICAgU0FORV9Vbml0IHVuaXQ7CQkvKiB3aGF0IGlzIHRoZSAocGh5
c2ljYWwpIHVuaXQ/ICovCisgICAgU0FORV9JbnQgc2l6ZTsKKyAgICBTQU5FX0ludCBjYXA7
CQkvKiBjYXBhYmlsaXRpZXMgKi8KKworICAgIFNBTkVfQ29uc3RyYWludF9UeXBlIGNvbnN0
cmFpbnRfdHlwZTsKKyAgICB1bmlvbgorICAgICAgeworCVNBTkVfU3RyaW5nICpzdHJpbmdf
bGlzdDsJLyogTlVMTC10ZXJtaW5hdGVkIGxpc3QgKi8KKwlTQU5FX1dvcmQgKndvcmRfbGlz
dDsJLyogZmlyc3QgZWxlbWVudCBpcyBsaXN0LWxlbmd0aCAqLworCVNBTkVfUmFuZ2UgKnJh
bmdlOworICAgICAgfQorICAgIGNvbnN0cmFpbnQ7CisgIH0KK1NBTkVfT3B0aW9uX0Rlc2Ny
aXB0b3I7CisjZWxzZQogdHlwZWRlZiBzdHJ1Y3QKICAgewogICAgIFNBTkVfU3RyaW5nX0Nv
bnN0IG5hbWU7CS8qIG5hbWUgb2YgdGhpcyBvcHRpb24gKGNvbW1hbmQtbGluZSBuYW1lKSAq
LwpAQCAtMTU0LDYgKzE4Nyw3IEBAIHR5cGVkZWYgc3RydWN0CiAgICAgY29uc3RyYWludDsK
ICAgfQogU0FORV9PcHRpb25fRGVzY3JpcHRvcjsKKyNlbmRpZgogCiB0eXBlZGVmIGVudW0K
ICAgewo=
--------------020906070304060802060600--