[XML-SIG] Python>=1.6 SIMPLE encoding support patch for pyexpat

Evgeny Cherkashin eugeneai@icc.ru
Fri, 22 Dec 2000 17:19:11 +0800


This is a multi-part message in MIME format.

--Multipart_Fri__22_Dec_2000_17:19:11_+0800_08163b30
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit


Hi!

Please find patch to support python encodings by pyexpat.
Is it possible to include it in next release of PyXML?

It seems that the patch will work fine for 8bit->unicode translation.

The patch works simple: it builds expat structure encoding table by translation of template (vector of chars "\0\1...\0xff') into desired encoding (no translation procedure needed)

Sincerely,
Evgeny
--


--Multipart_Fri__22_Dec_2000_17:19:11_+0800_08163b30
Content-Type: application/octet-stream;
 name="pyexpat_diff"
Content-Disposition: attachment;
 filename="pyexpat_diff"
Content-Transfer-Encoding: base64

QmluYXJ5IGZpbGVzIG9yaWcvUHlYTUwtMC42LjIvYnVpbGQvbGliLmxpbnV4LWk1ODYtMi4wL194
bWxwbHVzL3BhcnNlcnMvcHlleHBhdC5zbyBhbmQgbmV3L1B5WE1MLTAuNi4yL2J1aWxkL2xpYi5s
aW51eC1pNTg2LTIuMC9feG1scGx1cy9wYXJzZXJzL3B5ZXhwYXQuc28gZGlmZmVyCmRpZmYgLXJ1
TiBvcmlnL1B5WE1MLTAuNi4yL2V4dGVuc2lvbnMvcHlleHBhdC5jIG5ldy9QeVhNTC0wLjYuMi9l
eHRlbnNpb25zL3B5ZXhwYXQuYwotLS0gb3JpZy9QeVhNTC0wLjYuMi9leHRlbnNpb25zL3B5ZXhw
YXQuYwlUaHUgTm92ICAyIDEyOjU0OjUwIDIwMDAKKysrIG5ldy9QeVhNTC0wLjYuMi9leHRlbnNp
b25zL3B5ZXhwYXQuYwlGcmkgRGVjIDIyIDExOjE2OjMyIDIwMDAKQEAgLTYyNSw2ICs2MjUsNjEg
QEAKIC8qIC0tLS0tLS0tLS0gKi8KIAogCisjaWYgIShQWV9NQUpPUl9WRVJTSU9OID09IDEgJiYg
UFlfTUlOT1JfVkVSU0lPTiA8IDYpCisKKy8qIAorICAgIHB5ZXhwYXQgaW50ZXJuYXRpb25hbCBl
bmNvZGluZyBzdXBwb3J0LgorICAgIE1ha2UgaXQgYXMgc2ltcGxlIGFzIHBvc3NpYmxlLgorKi8K
Kworc3RhdGljIGNoYXIgdGVtcGxhdGVfYnVmZmVyWzI1Nl07CitQeU9iamVjdCAqIHRlbXBsYXRl
X3N0cmluZz1OVUxMOworCitzdGF0aWMgdm9pZCAKK2luaXRfdGVtcGxhdGVfYnVmZmVyKCkKK3sK
KyAgICBpbnQgaTsKKyAgICBmb3IgKGk9MDtpPDI1NjtpKyspIHsKKwl0ZW1wbGF0ZV9idWZmZXJb
aV09aTsKKyAgICB9OworICAgIHRlbXBsYXRlX2J1ZmZlclsyNTZdPTA7Cit9OworCitpbnQgCitQ
eVVua25vd25FbmNvZGluZ0hhbmRsZXIodm9pZCAqZW5jb2RpbmdIYW5kbGVyRGF0YSwgCitjb25z
dCBYTUxfQ2hhciAqbmFtZSwgCitYTUxfRW5jb2RpbmcgKiBpbmZvKQoreworICAgIFB5VW5pY29k
ZU9iamVjdCAqIF91X3N0cmluZz1OVUxMOworICAgIGludCByZXN1bHQ9MDsKKyAgICBpbnQgaTsK
KyAgICAKKyAgICBfdV9zdHJpbmc9KFB5VW5pY29kZU9iamVjdCAqKSBQeVVuaWNvZGVfRGVjb2Rl
KHRlbXBsYXRlX2J1ZmZlciwgMjU2LCBuYW1lLCAicmVwbGFjZSIpOyAvLyBZZXMsIHN1cHBvcnRz
IG9ubHkgOGJpdCBlbmNvZGluZ3MKKyAgICAKKyAgICBpZiAoX3Vfc3RyaW5nPT1OVUxMKSB7CisJ
cmV0dXJuIHJlc3VsdDsKKyAgICB9OworICAgIAorICAgIGZvciAoaT0wOyBpPDI1NjsgaSsrKSB7
CisJUHlfVU5JQ09ERSBjID0gX3Vfc3RyaW5nLT5zdHJbaV0gOyAvLyBTdHVwaWQgdG8gYWNjZXNz
IGRpcmVjdGx5LCBidXQgZmFzdAorCWlmIChjPT1QeV9VTklDT0RFX1JFUExBQ0VNRU5UX0NIQVJB
Q1RFUikgeworCSAgICBpbmZvLT5tYXBbaV0gPSAtMTsKKwl9IGVsc2UgeworCSAgICBpbmZvLT5t
YXBbaV0gPSBjOworCX07CisgICAgfTsKKyAgICAKKyAgICBpbmZvLT5kYXRhID0gTlVMTDsKKyAg
ICBpbmZvLT5jb252ZXJ0ID0gTlVMTDsKKyAgICBpbmZvLT5yZWxlYXNlID0gTlVMTDsKKyAgICBy
ZXN1bHQ9MTsKKyAgICAKKyAgICBQeV9ERUNSRUYoX3Vfc3RyaW5nKTsKKyAgICByZXR1cm4gcmVz
dWx0OworfQorCisjZW5kaWYKKwogc3RhdGljIHhtbHBhcnNlb2JqZWN0ICoKIG5ld3htbHBhcnNl
b2JqZWN0KGNoYXIgKmVuY29kaW5nLCBjaGFyICpuYW1lc3BhY2Vfc2VwYXJhdG9yKQogewpAQCAt
NjU4LDYgKzcxMywxMCBAQAogICAgICAgICByZXR1cm4gTlVMTDsKICAgICB9CiAgICAgWE1MX1Nl
dFVzZXJEYXRhKHNlbGYtPml0c2VsZiwgKHZvaWQgKilzZWxmKTsKKyNpZiBQWV9NQUpPUl9WRVJT
SU9OID09IDEgJiYgUFlfTUlOT1JfVkVSU0lPTiA8IDYKKyNlbHNlCisgICAgWE1MX1NldFVua25v
d25FbmNvZGluZ0hhbmRsZXIoc2VsZi0+aXRzZWxmLCAoWE1MX1Vua25vd25FbmNvZGluZ0hhbmRs
ZXIpIFB5VW5rbm93bkVuY29kaW5nSGFuZGxlciwgTlVMTCk7CisjZW5kaWYKIAogICAgIGZvcihp
ID0gMDsgaGFuZGxlcl9pbmZvW2ldLm5hbWUgIT0gTlVMTDsgaSsrKQogICAgICAgICAvKiBkbyBu
b3RoaW5nICovOwpAQCAtODIxLDcgKzg4MCw2IEBACiAvKiBFbmQgb2YgY29kZSBmb3IgeG1scGFy
c2VyIG9iamVjdHMgKi8KIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tICovCiAKLQogc3RhdGljIGNoYXIgcHlleHBhdF9QYXJzZXJDcmVh
dGVfX2RvY19fW10gPQogIlBhcnNlckNyZWF0ZShbZW5jb2RpbmdbLCBuYW1lc3BhY2Vfc2VwYXJh
dG9yXV0pIC0+IHBhcnNlclxuXAogUmV0dXJuIGEgbmV3IFhNTCBwYXJzZXIgb2JqZWN0LiI7CkBA
IC05MzcsNiArOTk1LDEwIEBACiAgICAgUHlNb2R1bGVfQWRkT2JqZWN0KG0sICJfX3ZlcnNpb25f
XyIsCiAgICAgICAgICAgICAgICAgICAgICAgIFB5U3RyaW5nX0Zyb21TdHJpbmdBbmRTaXplKHJl
disxMSwgc3RybGVuKHJldisxMSktMikpOwogCisjaWYgUFlfTUFKT1JfVkVSU0lPTiA9PSAxICYm
IFBZX01JTk9SX1ZFUlNJT04gPCA2CisjZWxzZQorICAgIGluaXRfdGVtcGxhdGVfYnVmZmVyKCk7
CisjZW5kaWYKICAgICAvKiBYWFggV2hlbiBFeHBhdCBzdXBwb3J0cyBzb21lIHdheSBvZiBmaWd1
cmluZyBvdXQgaG93IGl0IHdhcwogICAgICAgIGNvbXBpbGVkLCB0aGlzIHNob3VsZCBjaGVjayBh
bmQgc2V0IG5hdGl2ZV9lbmNvZGluZyAKICAgICAgICBhcHByb3ByaWF0ZWx5LiAK

--Multipart_Fri__22_Dec_2000_17:19:11_+0800_08163b30
Content-Type: application/octet-stream;
 name="enc_test.xml"
Content-Disposition: attachment;
 filename="enc_test.xml"
Content-Transfer-Encoding: base64

PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0ia29pOC1yIj8+Cjx0YWcgbmFtZT0i6c3RIiB2
YWx1ZT0i+s7B3sXOycUiPgrhINzUzyDX08Ugz9PUwczYztnFINPJzdfPzNkgwsXaIChcImUpOgoK
ysPVy8XOx9vd2sjfxtnXwdDSz8zE1tHe083J1NjCwOrj9evl7uf7/fro/+b59+Hw8u/s5Pb88f7z
7en0+OLgCjwvdGFnPg==

--Multipart_Fri__22_Dec_2000_17:19:11_+0800_08163b30
Content-Type: application/octet-stream;
 name="test_encodings.py"
Content-Disposition: attachment;
 filename="test_encodings.py"
Content-Transfer-Encoding: base64

IyEvdXNyL2Jpbi9lbnYgcHl0aG9uCgoiIiIKVGhpcyB3aWxsIHNob3cgcnVzc2lhbiB0ZXh0IGlu
IGtvaTgtciBlbmNvZGluZy4KIiIiCgpmcm9tIHhtbC5wYXJzZXJzIGltcG9ydCBleHBhdA0KaW1w
b3J0IHN0cmluZw0KDQpjbGFzcyBYTUxUcmVlOg0KCWRlZiBfX2luaXRfXyhzZWxmKToNCgkJcGFz
cw0KDQoJIyBEZWZpbmUgYSBoYW5kbGVyIGZvciBzdGFydCBlbGVtZW50IGV2ZW50cw0KCWRlZiBT
dGFydEVsZW1lbnQoc2VsZiwgbmFtZSwgYXR0cnMgKToNCgkJI25hbWUgPSBuYW1lLmVuY29kZSgp
DQoJCXByaW50ICI8IiwgcmVwcihuYW1lKSwgIj4iDQoJCXByaW50ICJhdHRyIG5hbWU6IiwgYXR0
cnMuZ2V0KCJuYW1lIix1IiIpLmVuY29kZSgia29pOC1yIikKCQlwcmludCAiYXR0ciB2YWx1ZToi
LCBhdHRycy5nZXQoInZhbHVlIix1IiIpLmVuY29kZSgia29pOC1yIikKDQoJZGVmIEVuZEVsZW1l
bnQoc2VsZiwgIG5hbWUgKToNCgkJcHJpbnQgIjwvIiwgcmVwcihuYW1lKSwgIj4iDQoNCglkZWYg
Q2hhcmFjdGVyRGF0YShzZWxmLCBkYXRhICk6DQoJCWlmIHN0cmluZy5zdHJpcChkYXRhKToNCgkJ
CWRhdGEgPSBkYXRhLmVuY29kZSgia29pOC1yIikNCgkJCXByaW50IGRhdGENCg0KDQoJZGVmIExv
YWRUcmVlKHNlbGYsIGZpbGVuYW1lKToNCgkJIyBDcmVhdGUgYSBwYXJzZXINCgkJUGFyc2VyID0g
ZXhwYXQuUGFyc2VyQ3JlYXRlKCkNCg0KCQkjIFRlbGwgdGhlIHBhcnNlciB3aGF0IHRoZSBzdGFy
dCBlbGVtZW50IGhhbmRsZXIgaXMNCgkJUGFyc2VyLlN0YXJ0RWxlbWVudEhhbmRsZXIgPSBzZWxm
LlN0YXJ0RWxlbWVudA0KCQlQYXJzZXIuRW5kRWxlbWVudEhhbmRsZXIgPSBzZWxmLkVuZEVsZW1l
bnQNCgkJUGFyc2VyLkNoYXJhY3RlckRhdGFIYW5kbGVyID0gc2VsZi5DaGFyYWN0ZXJEYXRhDQoN
CgkJIyBQYXJzZSB0aGUgWE1MIEZpbGUNCgkJUGFyc2VyU3RhdHVzID0gUGFyc2VyLlBhcnNlKG9w
ZW4oZmlsZW5hbWUsJ3InKS5yZWFkKCksIDEpDQoNCg0KZGVmIHJ1blRlc3QoKToNCgl3aW4gPSBY
TUxUcmVlKCkNCgl3aW4uTG9hZFRyZWUoImVuY190ZXN0LnhtbCIpDQoJcmV0dXJuIHdpbg0KDQpy
dW5UZXN0KCkK

--Multipart_Fri__22_Dec_2000_17:19:11_+0800_08163b30--