[ruby-core:96827] [Ruby master Bug#16497] StringIO#internal_encoding is broken (more severely in 2.7)
[email protected] Mon, 13 Jan 2020 17:33:39 +0000 (UTC)
| Newsgroups | gmane.comp.lang.ruby.core |
|---|---|
| Message-ID | <redmine.journal-83825.20200113173339.e3a1e0ba2e3f8662@ruby-lang.org> |
SXNzdWUgIzE2NDk3IGhhcyBiZWVuIHVwZGF0ZWQgYnkganJvY2hraW5kIChqb25hdGhhbiByb2No a2luZCkuDQoNCg0KU3RyaW5nSU8gaGFzIGJlZW4gZG9jdW1lbnRlZCBmb3IgYSB3aGlsZSB0byAq aWdub3JlKiBpdCdzIG93biBpbnRlcm5hbCBlbmNvZGluZywgYnV0IHJlc3BlY3QgaXQncyBvd24g ZXh0ZXJuYWwgZW5jb2RpbmcuIA0KDQpJIGFtIG5vdCBzdXJlIHRoaXMgZXZlciBtYWRlIGFueSBz ZW5zZS4gSXQgbWlnaHQgaGF2ZSBtYWRlIG1vcmUgc2Vuc2UgdG8gcmVzcGVjdCBhbiBpbnRlcm5h bCBlbmNvZGluZywgYnV0IGlnbm9yZSBhbiBleHRlcm5hbCBlbmNvZGluZy4gZXh0ZXJuYWwgZW5j b2RpbmcgaXMgbm9ybWFsbHkgdXNlZCB0byBhc3N1bWUgd2hhdCBlbmNvZGluZyBJTyBieXRlcyBh cmUsIGZyb20gZm9yIGV4YW1wbGUgYSBmaWxlIHN5c3RlbSBvciBuZXR3b3JrLiBCdXQgc2luY2Ug U3RyaW5nSU8gc3RhcnRzIHdpdGggYSBydWJ5IHN0cmluZyB0aGF0IGFscmVhZHkgaGFzIGEgdGFn Z2VkIGVuY29kaW5nLCBpdCBoYXMgbm8gcmVhc29uIHRvIGhhdmUgdG8gYXNzdW1lIGEgY2hhcmFj dGVyIGVuY29kaW5nIGluIHRoZSBmYWNlIG9mIHVua25vd24gZW5jb2Rpbmcgd2l0aCBhbiBleHRl cm5hbF9lbmNvZGluZyB2YWx1ZS4gDQoNCkhvd2V2ZXIsIGFuIGludGVybmFsIGVuY29kaW5nICpj b3VsZCogYmUgdXNlZnVsLiBUaGUgaW50ZXJuYWwgZW5jb2RpbmcgaXMgdXNlZCB0byB0cmFuc2Nv ZGUgYSB2YWx1ZSB0byB0aGF0IGludGVybmFsIGVuY29kaW5nICphZnRlciogcmVhZGluZy4gDQoN CkkgZG9uJ3QgdW5kZXJzdGFuZCB3aGF0IHdhcyBjaGFuZ2VkIGluIHJ1YnkgMi43LjAuIEkgZG9u J3QgdW5kZXJzdGFuZCB3aHkgdGhlIHZhbHVlIG9mIGBFbmNvZGluZy5kZWZhdWx0X2ludGVybmFs YCBlZmZlY3RzIFN0cmluZ0lPIG9wZXJhdGlvbi4gSSBiZWxpZXZlIHdoYXRldmVyIHdhcyBjaGFu Z2VkIHdhcyBidWdneSwgYW5kIG5vdCB3aGF0IHdhcyBpbnRlbmRlZC4gDQoNCkhvd2V2ZXIsIGV2 ZW4gaWYgaXQgd2VyZSBkb25lICpyaWdodCosIGl0IGNvdWxkIHN0aWxsIGNhdXNlIGJhY2t3YXJk cyBjb21wYXRpYmlsaXR5IHByb2JsZW1zLiBJdCdzIHBvc3NpYmxlIHNvbWVvbmUgd2FzIHRyeWlu ZyB0byBmaXggdGhlIGZhY3QgdGhhdCAoaW4gMi42LngpLCBhIFN0cmluZ0lPIF9zYXlzXyBpdCBo YXMgYW4gYGV4dGVybmFsX2VuY29kaW5nYCBvZiAoYnkgZGVmYXVsdCkgYEVuY29kaW5nLmRlZmF1 bHRfZXh0ZXJuYWxgICh3aGljaCBpcyBvZnRlbiBVVEY4IGJ5IGRlZmF1bHQpLCBidXQgbWF5IG5v dCBhY3R1YWxseSBkbyB0aGF0LiAgIElmIGl0IHdlcmUgImZpeGVkIiB0byBkbyB3aGF0IDIuNy4w IGlzIGRvaW5nIGJhc2VkIG9ubHkgb24gdmFsdWUgb2YgYEVuY29kaW5nLmRlZmF1bHRfZXh0ZXJu YWxgLCBub3QgYGRlZmF1bHRfaW50ZXJuYWxgIC0tIHRoYXQgbWlnaHQgYmUgImNvcnJlY3QiLCBi dXQgaXQgd291bGQgKnN0aWxsKiBiZSBhIGJhY2t3YXJkcyBpbmNvbXBhdGliaWxpdHkgcHJvYmxl bS4gQW5kIEkgZG9uJ3QgYmVsaWV2ZSBpdCB3b3VsZCBhY3R1YWxseSBiZSBhIHVzZWZ1bCBmZWF0 dXJlIHRvIGFueW9uZSwgYXMgSSBkb24ndCB0aGluayBzdXBwb3J0aW5nIGV4dGVybmFsIGVuY29k aW5nIG9uIFN0cmluZ0lPIGlzIHVzZWZ1bC4gDQoNCkkgYmVsaWV2ZSB0aGF0IHRoaXMgYmVoYXZp b3Igc2hvdWxkIGJlIHJldmVydGVkIGZvciAyLjcueCwgc28gYXMgbm90IHRvIGludHJvZHVjZSBh IGJhY2t3YXJkcyBpbmNvbXBhdCBvZiB1bmNsZWFyIHVzZWZ1bG5lc3MgaW4gMi43LnguIA0KDQpJ IHRoaW5rIGZvciBydWJ5IDMuMC4wLCB0aGUgaW50ZW5kZWQvZGVzaXJlZCBiZWhhdmlvciBvZiBT dHJpbmdJTyB3aXRoIHJlZ2FyZCB0byBlbmNvZGluZyBzaG91bGQgYmUgdGhvdWdodCB0aHJvdWdo IG1vcmUgY2FyZWZ1bGx5LCB0byBtYWtlIHN1cmUgd2hhdCBpdCdzIGRvaW5nIGlzIHVzZWZ1bCwg YmVmb3JlIGludHJvZHVjaW5nIGJhY2t3YXJkcyBicmVha2luZyBjaGFuZ2UuIA0KDQoNCg0KDQot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQpCdWcgIzE2NDk3OiBTdHJp bmdJTyNpbnRlcm5hbF9lbmNvZGluZyBpcyBicm9rZW4gKG1vcmUgc2V2ZXJlbHkgaW4gMi43KQ0K aHR0cHM6Ly9idWdzLnJ1YnktbGFuZy5vcmcvaXNzdWVzLzE2NDk3I2NoYW5nZS04MzgyNQ0KDQoq IEF1dGhvcjogenZlcm9rIChWaWN0b3IgU2hlcGVsZXYpDQoqIFN0YXR1czogQXNzaWduZWQNCiog UHJpb3JpdHk6IE5vcm1hbA0KKiBBc3NpZ25lZTogbm9idSAoTm9idXlvc2hpIE5ha2FkYSkNCiog VGFyZ2V0IHZlcnNpb246IA0KKiBydWJ5IC12OiANCiogQmFja3BvcnQ6IDIuNTogRE9OVE5FRUQs IDIuNjogRE9OVE5FRUQsIDIuNzogUkVRVUlSRUQNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0NClRvIHRoZSBiZXN0IG9mIG15IHVuZGVyc3RhbmRpbmcgZnJvbSBbRW5j b2RpbmddKGh0dHBzOi8vZG9jcy5ydWJ5LWxhbmcub3JnL2VuL21hc3Rlci9FbmNvZGluZy5odG1s KSBkb2NzLCB0aGUgZm9sbG93aW5nIGlzIHRydWU6DQoNCiogZXh0ZXJuYWwgZW5jb2RpbmcgKGV4 cGxpY2l0bHkgc3BlY2lmaWVkIG9yIHRha2VuIGZyb20gYEVuY29kaW5nLmRlZmF1bHRfZXh0ZXJu YWxgKSBzcGVjaWZpZXMgaG93IHRoZSBJTyB1bmRlcnN0YW5kcyBpbnB1dCBhbmQgc3RvcmVzIGl0 IGludGVybmFsbHkNCiogaW50ZXJuYWwgZW5jb2RpbmcgKGV4cGxpY2l0bHkgc3BlY2lmaWVkIG9y IHRha2VuIGZyb20gYEVuY29kaW5nLmRlZmF1bHRfaW50ZXJuYWxgKSBzcGVjaWZpZXMgaG93IHRo ZSBJTyBjb252ZXJ0cyB3aGF0IGl0IHJlYWRzLg0KDQpEZW1vbnN0cmF0aW9uIHdpdGggcmVndWxh ciBmaWxlczoNCg0KYGBgcnVieQ0KIyBwcmVwYXJlIGRhdGENCkZpbGUud3JpdGUoJ3Rlc3QudHh0 JywgJ9Cj0LrRgNCw0ZfQvdCwJy5lbmNvZGUoJ0tPSTgtVScpLCBlbmNvZGluZzogJ0tPSTgtVScp ICM9PiA3DQoNCmRlZiB0ZXN0KGlvKQ0KICBzdHIgPSBpby5yZWFkDQogIFtpby5leHRlcm5hbF9l bmNvZGluZywgaW8uaW50ZXJuYWxfZW5jb2RpbmcsIHN0ciwgc3RyLmVuY29kaW5nXQ0KZW5kDQoN CiMgcmVhZCBpdDoNCnRlc3QoRmlsZS5vcGVuKCd0ZXN0LnR4dCcsICdyOktPSTgtVScpKQ0KIyA9 PiBbIzxFbmNvZGluZzpLT0k4LVU+LCBuaWwsICJceEY1XHhDQlx4RDJceEMxXHhBN1x4Q0VceEMx IiwgIzxFbmNvZGluZzpLT0k4LVU+XQ0KDQojIFdlIGNhbiBzcGVjaWZ5IGludGVybmFsIGVuY29k aW5nIHdoZW4gb3BlbmluZyB0aGUgZmlsZToNCnRlc3QoRmlsZS5vcGVuKCd0ZXN0LnR4dCcsICdy OktPSTgtVTpVVEYtOCcpKQ0KIyA9PiBbIzxFbmNvZGluZzpLT0k4LVU+LCAjPEVuY29kaW5nOlVU Ri04PiwgItCj0LrRgNCw0ZfQvdCwIiwgIzxFbmNvZGluZzpVVEYtOD5dDQoNCiMgLi4ub3Igd2hl biBpdCBpcyBhbHJlYWR5IG9wZW5lZA0KdGVzdChGaWxlLm9wZW4oJ3Rlc3QudHh0JykudGFwIHsg fGZ8IGYuc2V0X2VuY29kaW5nKCdLT0k4LVUnLCAnVVRGLTgnKSB9KQ0KIyA9PiBbIzxFbmNvZGlu ZzpLT0k4LVU+LCAjPEVuY29kaW5nOlVURi04PiwgItCj0LrRgNCw0ZfQvdCwIiwgIzxFbmNvZGlu ZzpVVEYtOD5dDQoNCiMgLi4ub3Igd2l0aCBFbmNvZGluZy5kZWZhdWx0X2ludGVybmFsDQpFbmNv ZGluZy5kZWZhdWx0X2ludGVybmFsID0gJ1VURi04Jw0KdGVzdChGaWxlLm9wZW4oJ3Rlc3QudHh0 JywgJ3I6S09JOC1VJykpDQojID0+IFsjPEVuY29kaW5nOktPSTgtVT4sICM8RW5jb2Rpbmc6VVRG LTg+LCAi0KPQutGA0LDRl9C90LAiLCAjPEVuY29kaW5nOlVURi04Pl0NCmBgYA0KDQpCdXQgd2l0 aCBTdHJpbmdJTywgKippbnRlcm5hbCBlbmNvZGluZyBjYW4ndCBiZSBzZXQqKiBpbiBSdWJ5ICoq Mi42Kio6DQoNCmBgYHJ1YnkNCnJlcXVpcmUgJ3N0cmluZ2lvJw0KRW5jb2RpbmcuZGVmYXVsdF9p bnRlcm5hbCA9IG5pbA0Kc3RyID0gJ9Cj0LrRgNCw0ZfQvdCwJy5lbmNvZGUoJ0tPSTgtVScpDQoN CiMgU2ltcGxlc3QgZm9ybToNCnRlc3QoU3RyaW5nSU8ubmV3KHN0cikpDQojID0+IFsjPEVuY29k aW5nOktPSTgtVT4sIG5pbCwgIlx4RjVceENCXHhEMlx4QzFceEE3XHhDRVx4QzEiLCAjPEVuY29k aW5nOktPSTgtVT5dDQoNCiMgVHJ5IHRvIHNldCB2aWEgbW9kZQ0KdGVzdChTdHJpbmdJTy5uZXco c3RyLCAncjpLT0k4LVU6VVRGLTgnKSkNCiMgPT4gWyM8RW5jb2Rpbmc6S09JOC1VPiwgbmlsLCAi XHhGNVx4Q0JceEQyXHhDMVx4QTdceENFXHhDMSIsICM8RW5jb2Rpbmc6S09JOC1VPl0NCg0KIyBU cnkgdG8gc2V0IHZpYSBzZXRfZW5jb2Rpbmc6DQp0ZXN0KFN0cmluZ0lPLm5ldyhzdHIsICdyOktP STgtVTpVVEYtOCcpLnRhcCB7IHxmfCBmLnNldF9lbmNvZGluZygnS09JOC1VJywgJ1VURi04Jykg fSkNCiMgPT4gWyM8RW5jb2Rpbmc6S09JOC1VPiwgbmlsLCAiXHhGNVx4Q0JceEQyXHhDMVx4QTdc eENFXHhDMSIsICM8RW5jb2Rpbmc6S09JOC1VPl0NCg0KIyBUcnkgdG8gc2V0IHZpYSBFbm9kaW5n LmRlZmF1bHRfaW50ZXJuYWw6DQpFbmNvZGluZy5kZWZhdWx0X2ludGVybmFsID0gJ1VURi04Jw0K dGVzdChTdHJpbmdJTy5uZXcoc3RyKSkNCiMgPT4gWyM8RW5jb2Rpbmc6S09JOC1VPiwgbmlsLCAi XHhGNVx4Q0JceEQyXHhDMVx4QTdceENFXHhDMSIsICM8RW5jb2Rpbmc6S09JOC1VPl0NCmBgYA0K DQpTbywgaW4gMi42LCBhbnkgYXR0ZW1wdCB0byBkbyBzb21ldGhpbmcgd2l0aCBTdHJpbmdJTydz IGludGVybmFsIGVuY29kaW5nIGFyZSAqKmp1c3QgaWdub3JlZCoqLg0KDQpJbiAqKjIuNyoqLCB0 aG91Z2gsIG1hdHRlcnMgYmVjYW1lIG11Y2ggd29yc2U6DQpgYGBydWJ5DQpyZXF1aXJlICdzdHJp bmdpbycNCkVuY29kaW5nLmRlZmF1bHRfaW50ZXJuYWwgPSBuaWwNCnN0ciA9ICfQo9C60YDQsNGX 0L3QsCcuZW5jb2RlKCdLT0k4LVUnKQ0KDQojIEJlaGF2ZXMgc2FtZSBhcyAyLjYNCnRlc3QoU3Ry aW5nSU8ubmV3KHN0cikpDQojID0+IFsjPEVuY29kaW5nOktPSTgtVT4sIG5pbCwgIlx4RjVceENC XHhEMlx4QzFceEE3XHhDRVx4QzEiLCAjPEVuY29kaW5nOktPSTgtVT5dDQoNCiMgVHJ5IHRvIHNl dCB2aWEgbW9kZTogV0VJUkQgYmVoYXZpb3Igc3RhcnRzDQp0ZXN0KFN0cmluZ0lPLm5ldyhzdHIs ICdyOktPSTgtVTpVVEYtOCcpKQ0KIyA9PiBbIzxFbmNvZGluZzpVVEYtOD4sIG5pbCwgIlx4RjVc eENCXHhEMlx4QzFceEE3XHhDRVx4QzEiLCAjPEVuY29kaW5nOlVURi04Pl0NCg0KIyBUcnkgdG8g c2V0IHZpYSBzZXRfZW5jb2Rpbmc6IHN0aWxsIGp1c3QgaWdub3JlZA0KdGVzdChTdHJpbmdJTy5u ZXcoc3RyLCAncjpLT0k4LVU6VVRGLTgnKS50YXAgeyB8ZnwgZi5zZXRfZW5jb2RpbmcoJ0tPSTgt VScsICdVVEYtOCcpIH0pDQojID0+IFsjPEVuY29kaW5nOktPSTgtVT4sIG5pbCwgIlx4RjVceENC XHhEMlx4QzFceEE3XHhDRVx4QzEiLCAjPEVuY29kaW5nOktPSTgtVT5dDQoNCiMgVHJ5IHRvIHNl dCB2aWEgRW5vZGluZy5kZWZhdWx0X2ludGVybmFsOiBXRUlSRCBiZWhhdmlvciBhZ2Fpbg0KRW5j b2RpbmcuZGVmYXVsdF9pbnRlcm5hbCA9ICdVVEYtOCcNCnRlc3QoU3RyaW5nSU8ubmV3KHN0cikp DQojID0+IFsjPEVuY29kaW5nOlVURi04PiwgbmlsLCAiXHhGNVx4Q0JceEQyXHhDMVx4QTdceENF XHhDMSIsICM8RW5jb2Rpbmc6VVRGLTg+XQ0KYGBgDQoNClNvLCAqKjIuNyoqIG5vdCBqdXN0IGln bm9yZXMgYXR0ZW1wdHMgdG8gc2V0ICoqaW50ZXJuYWwqKiBlbmNvZGluZywgYnV0IGVycm9uZW91 c2x5IHNldHMgaXQgdG8gKipleHRlcm5hbCoqIG9uZSwgc28gc3RyaW5ncyBhcmUgbm90IHJlY29k ZWQsIGJ1dCB0aGVpciBlbmNvZGluZyBpcyBmb3JjZWQgdG8gY2hhbmdlLg0KDQpJIGJlbGlldmUg aXQgaXMgc2V2ZXJlIGJ1ZyAobW9yZSBzZXZlcmUgdGhhbiAyLjYncyAianVzdCBpZ25vcmluZyIp Lg0KDQpbVGhpcyBSZWRkaXQgdGhyZWFkXShodHRwczovL3d3dy5yZWRkaXQuY29tL3IvcnVieS9j b21tZW50cy9lbWQ2cTQvaXNfdGhpc19hX3N0cmluZ2lvX2J1Z19pbl9ydWJ5XzI3MC8pIHNob3dz IGhvdyBpdCBicmVha3MgZXhpc3RpbmcgY29kZToNCg0KKiB0aGUgYXV0aG9yIHVzZXMgYFN0cmlu Z0lPYCB0byB3b3JrIHdpdGggYEFTQ0lJLThCSVRgIHN0cmluZ3M7DQoqIHRoZSBjb2RlIGlzIHBl cmZvcm1lZCBpbiBSYWlscyBlbnZpcm9ubWVudCAod2hpY2ggc2V0cyBgaW50ZXJuYWxfZW5jb2Rp bmdgIHRvIGBVVEYtOGAgYnkgZGVmYXVsdCk7DQoqIHVuZGVyICoqMi43KiosIGBTdHJpbmdJTyNy ZWFkYCByZXR1cm5zIGBBU0NJSS04QklUYCBjb250ZW50IGluIFN0cmluZ3Mgc2F5aW5nIHRoZWly IGVuY29kaW5nIGlzIGBVVEYtOGAuDQoNCg0KDQoNCi0tIA0KaHR0cHM6Ly9idWdzLnJ1YnktbGFu Zy5vcmcvDQoKVW5zdWJzY3JpYmU6IDxtYWlsdG86cnVieS1jb3JlLXJlcXVlc3RAcnVieS1sYW5n Lm9yZz9zdWJqZWN0PXVuc3Vic2NyaWJlPgo8aHR0cDovL2xpc3RzLnJ1YnktbGFuZy5vcmcvY2dp LWJpbi9tYWlsbWFuL29wdGlvbnMvcnVieS1jb3JlPgo=