Re: Avoid ctype(3) abuses

Rodrigo Arias <[email protected]> Mon, 12 Jan 2026 21:44:14 +0100
Newsgroups gmane.comp.web.dillo.devel
Message-ID <[email protected]>
SGksDQoNCk9uIE1vbiwgSmFuIDEyLCAyMDI2IGF0IDExOjA1OjE3QU0gKzAxMDAsIExlb25hcmRv
IFRhY2Nhcmkgd3JvdGU6DQo+SGVsbG8hDQo+DQo+TW9zdCBjdHlwZSgzKSBmdW5jdGlvbnMgdXNh
Z2UgYWJ1c2VzIGFuIHVuZGVmaW5lZCBiZWhhdmlvciBvZiBwYXNzaW5nDQo+dmFsdWVzIG91dHNp
ZGUgaW50ZWdlcnMgb3V0c2lkZSBFT0Ygb3IgdGhlIHJhbmdlIHJlcHJlc2VudGFibGUgYXMNCj51
bnNpZ25lZCBjaGFyLg0KPg0KPk9uIE5ldEJTRCAxMSBhbmQgbmV3ZXIgc3VjaCBpbmNvcnJlY3Qg
YmVoYXZpb3JzIGNyYXNoZXMgYXBwbGljYXRpb25zDQo+dmlvbGF0aW5nIHRoYXQgYW5kIGR1ZSB0
aGF0IERpbGxvIGVhc2lseSBjcmFzaCBieSBqdXN0IHZpc2l0aW5nLCBlLmcuDQo+PGh0dHBzOi8v
d3d3Lk5ldEJTRC5vcmcvPi4NCj4NCj5Gb3IgcG9zc2libGUgZnVydGhlciBpbmZvcm1hdGlvbiBw
bGVhc2UgZ2l2ZSBhIGxvb2sgdG8NCj48aHR0cHM6Ly9tYW4uTmV0QlNELm9yZy9jdHlwZS4zI0NB
VkVBVFM+Lg0KDQpJbnRlcmVzdGluZyENCg0KPkkgaGF2ZSBncmVwLWVkIGFsbCBzdWNoIHVzZXMg
YW5kIGFkZGVkIHRoZSByZWxldmFudCBjYXN0IHRvIHVjaGFyX3QNCj5zaW1pbGFyIHRvIG90aGVy
IGN0eXBlKDMpIGNhbGxzIGFscmVhZHkgcHJlc2VudCBhbmQgaW4gdGhhdCB3YXkgSSBjYW4NCj5h
bHNvIGNvbmZpcm0gdGhhdCBEaWxsbyBubyBsb25nZXIgY3Jhc2hlcy4NCg0KVGhhbmtzIGZvciB0
aGUgcGF0Y2ggYW5kIHRlc3RzLg0KDQpXZSBoYXZlIHdyYXBwZXJzIHRoYXQgZG8ganVzdCB0aGF0
IGZvciBpc3NwYWNlKCkgYW5kIGlzYWxudW0oKSBpbiANCmRsaWIvZGxpYi5oOg0KDQpodHRwczov
L2dpdC5kaWxsby1icm93c2VyLm9yZy9kaWxsby90cmVlL2RsaWIvZGxpYi5oP2lkPTdjNmNjZWJl
NjEwNzc5MDIxNjA3OThlNWFmNDZlYjM1MmFlMjRmZGQjbjQ0DQoNCkkgd291bGQgYmUgaW5jbGlu
ZWQgdG8gYWRkIHRoZSBleHRyYSB3cmFwcGVycyB0aGVyZSBhbmQgdXNlIHRoZSANCmRJc3NwYWNl
LCBkSXNhbG51bS4uLiBtYWNyb3MgaW5zdGVhZCBvZiBkb2luZyB0aGUgZXhwbGljaXQgY2FzdGlu
Zy4NCg0KQWRkaXRpb25hbGx5LCBJIHRoaW5rIGl0IHdvdWxkIGJlIHNhZmVyIHRvIGFsc28gc3dp
dGNoIGFsbCB0aGVzZSBjdHlwZSANCm1hY3JvcyB0byBzdGF0aWMgaW5saW5lIGZ1bmN0aW9ucyBz
byB3ZSBjb3ZlciBhY2NpZGVudGFsIGNhc3RpbmdzIGZyb20gDQp1bmV4cGVjdGVkIHR5cGVzIHdp
dGggYW4gZXJyb3IgaW5zdGVhZCBvZiBhIHdhcm5pbmc6DQoNCiAgIHN0YXRpYyBpbmxpbmUgaW50
IGRJc2FsbnVtKHVuc2lnbmVkIGNoYXIgYykgeyByZXR1cm4gaXNhbG51bShjKTsgfQ0KDQpFeGFt
cGxlOg0KDQogICAlIGNhdCBmb28uYw0KICAgI2luY2x1ZGUgPGN0eXBlLmg+DQogICBzdGF0aWMg
aW5saW5lIGludCBkSXNhbG51bSh1bnNpZ25lZCBjaGFyIGMpIHsgcmV0dXJuIGlzYWxudW0oYyk7
IH0NCiAgICNkZWZpbmUgZElzYWxudW1fdW5zYWZlKGMpIGlzYWxudW0oKHVuc2lnbmVkIGNoYXIp
IChjKSkNCg0KICAgaW50IG1haW4odm9pZCkNCiAgIHsNCiAgICAgY2hhciAqYSA9ICJhIjsNCiAg
ICAgZElzYWxudW0oYSk7DQogICAgIGRJc2FsbnVtX3Vuc2FmZShhKTsNCg0KICAgICByZXR1cm4g
MDsNCiAgIH0NCg0KICAgJSBnY2MgZm9vLmMgLW8gZm9vDQogICBmb28uYzogSW4gZnVuY3Rpb24g
4oCYbWFpbuKAmToNCiAgIGZvby5jOjg6MTg6IGVycm9yOiBwYXNzaW5nIGFyZ3VtZW50IDEgb2Yg
4oCYZElzYWxudW3igJkgbWFrZXMgaW50ZWdlciBmcm9tIHBvaW50ZXIgd2l0aG91dCBhIGNhc3Qg
Wy1XaW50LWNvbnZlcnNpb25dDQogICAgICAgOCB8ICAgICAgICAgZElzYWxudW0oYSk7DQogICAg
ICAgICB8ICAgICAgICAgICAgICAgICAgXg0KICAgICAgICAgfCAgICAgICAgICAgICAgICAgIHwN
CiAgICAgICAgIHwgICAgICAgICAgICAgICAgICBjaGFyICoNCiAgIGZvby5jOjI6NDI6IG5vdGU6
IGV4cGVjdGVkIOKAmHVuc2lnbmVkIGNoYXLigJkgYnV0IGFyZ3VtZW50IGlzIG9mIHR5cGUg4oCY
Y2hhciAq4oCZDQogICAgICAgMiB8IHN0YXRpYyBpbmxpbmUgaW50IGRJc2FsbnVtKHVuc2lnbmVk
IGNoYXIgYykgeyByZXR1cm4gaXNhbG51bShjKTsgfQ0KICAgICAgICAgfCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB+fn5+fn5+fn5+fn5+fl4NCiAgIEluIGZpbGUgaW5jbHVkZWQgZnJvbSBm
b28uYzoxOg0KICAgZm9vLmM6MzozNjogd2FybmluZzogY2FzdCBmcm9tIHBvaW50ZXIgdG8gaW50
ZWdlciBvZiBkaWZmZXJlbnQgc2l6ZSBbLVdwb2ludGVyLXRvLWludC1jYXN0XQ0KICAgICAgIDMg
fCAjZGVmaW5lIGRJc2FsbnVtX3Vuc2FmZShjKSBpc2FsbnVtKCh1bnNpZ25lZCBjaGFyKSAoYykp
DQogICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXg0KICAgZm9v
LmM6OTo5OiBub3RlOiBpbiBleHBhbnNpb24gb2YgbWFjcm8g4oCYZElzYWxudW1fdW5zYWZl4oCZ
DQogICAgICAgOSB8ICAgICAgICAgZElzYWxudW1fdW5zYWZlKGEpOw0KICAgICAgICAgfCAgICAg
ICAgIF5+fn5+fn5+fn5+fn5+fg0KDQpCZXN0LA0KUm9kcmlnby4NCl9fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkRpbGxvLWRldiBtYWlsaW5nIGxpc3QgLS0g
ZGlsbG8tZGV2QG1haWxtYW4zLmNvbQpUbyB1bnN1YnNjcmliZSBzZW5kIGFuIGVtYWlsIHRvIGRp
bGxvLWRldi1sZWF2ZUBtYWlsbWFuMy5jb20K