[ruby-core:88415] [Ruby trunk Feature#14975] String#append without changing receiver's encoding

From: merch-redmine@...
Date: 2018-08-10 04:23:17 UTC
List: ruby-core #88415
SXNzdWUgIzE0OTc1IGhhcyBiZWVuIHVwZGF0ZWQgYnkgamVyZW15ZXZhbnMwIChKZXJlbXkgRXZh
bnMpLgoKCmlvcXVhdGl4IChTYW11ZWwgV2lsbGlhbXMpIHdyb3RlOgo+IElNSE8sIGFueW9uZSBy
ZWx5aW5nIG9uIHRoaXMgYmVoYXZpb3VyIGlzIHdhbGtpbmcgb24gZmlyZS4gQnV0LCB5b3UgYXJl
IHJpZ2h0LCB0aGVyZSBpcyB0aGUgcG90ZW50aWFsIHRvIGJyZWFrIGV4aXN0aW5nIGNvZGUuIEkg
YmVsaWV2ZSB0aGUgY29ycmVjdCBzb2x1dGlvbiBpcyBmb3IgcGVvcGxlIHRvIGF2b2lkIHVzaW5n
IGJpbmFyeSBidWZmZXJzIGZvciB0aGlzIHVzZSBjYXNlLiBUaGVyZSBhbHJlYWR5IGV4aXN0cyBg
RW5jb2Rpbmc6OkFTQ0lJYCB3aGljaCB3b3VsZCBtYWtlIG1vcmUgc2Vuc2UuIFNvIGlmIHdlIGxp
bWl0ZWQgdG8gYEVuY29kaW5nOjpCSU5BUllgIGl0IGF0IGxlYXN0IGhhcyBhIHNwZWNpZmljIHNl
bWFudGljIG1vZGVsLiBPbmUgd2F5IHRvIGZpeCB0aGUgYWJvdmUsIHdvdWxkIGJlIHRvIHR1cm4g
dGhlIGBFbmNvZGluZzo6VVRGXzhgIHJlY2VpdmVyIGludG8gYEVuY29kaW5nOjpCSU5BUllgLiBJ
J20gbm90IHN1cmUgSSBsaWtlIHRoYXQgc29sdXRpb24sIGJ1dCBpdCBkb2VzIHdvcmsgaW4gYSBw
cmVkaWN0YWJsZSB3YXkgYW5kIGF2b2lkcyBpbnRyb2R1Y2luZyBleGNlcHRpb25zIHdoZXJlIG5v
bmUgZXhpc3RlZCBiZWZvcmUuCgpUaGUgcHJvYmxlbSB3aXRoIHRoYXQgaXMgdGhhdCBzaW5nbGUg
QklOQVJZIGVuY29kaW5nIHN0cmluZyBjYW4gdGhlbiBjYXVzZSBoYXZvayBpbiB5b3VyIGFwcGxp
Y2F0aW9uLCBzaW5jZSBhbnkgc3RyaW5nIGl0IHRvdWNoZXMgd291bGQgdGhlbiBiZWNvbWUgYmlu
YXJ5LiAgSXQgd291bGQgZGVmZWF0IHRoZSBwdXJwb3NlIG9mIGhhdmluZyBlbmNvZGluZ3MgYXQg
YWxsLgoKPiBEbyB5b3UgdGhpbmsgdGhlcmUgaXMgYSB3YXkgd2UgY2FuIGZpbmQgYSBjb21wcm9t
aXNlPyBJJ2QgcmF0aGVyIG5vdCBhZGQgeWV0IGFub3RoZXIgc3RyaW5nIGNvbmNhdGVuYXRpb24g
ZnVuY3Rpb24uIEkgc29ydCBvZiBhZG1pcmUgUnVieSBmb3IgYmVpbmcgb3BpbmlvbmF0ZWQsIHNv
IEkgdGhpbmsgaWYgd2UgY2FuIGZpbmQgYSBzb2x1dGlvbiBoZXJlIHdpdGhvdXQgYWRkaW5nIG1v
cmUgb3B0aW9ucy9hcmd1bWVudHMvbWV0aG9kcywgdGhhdCB3b3VsZCBiZSBpZGVhbC4gV0RZVD8K
CkkgZG9uJ3QgdGhpbmsgbW9kaWZ5aW5nIGBTdHJpbmcjPDxgIHNob3VsZCBiZSBjb25zaWRlcmVk
LCBpdCdzIHRvbyBsaWtlbHkgdG8gYnJlYWsgZXhpc3RpbmcgY29kZS4KCkknbSBmYWlybHkgc3Vy
ZSB5b3UgY291bGQgYWRkIGEgbm9uLWFsbG9jYXRpbmcgYmluYXJ5IGFwcGVuZCBtZXRob2QgdXNp
bmcgYSBDIGV4dGVuc2lvbiwgYXNzdW1pbmcgdGhlIHJlY2VpdmluZyBzdHJpbmcgaGFzIGVub3Vn
aCBjYXBhY2l0eSwgc28gdGhpcyB3b3VsZCBub3QgZXZlbiBuZWNlc3NhcmlseSByZXF1aXJlIGEg
Y29yZSBtZXRob2QuICBBY3R1YWxseSwgaWYgeW91IGNvdWxkIGV2ZW4gZ2V0IG5vbi1hbGxvY2F0
aW5nIGNvZGUgaW4gcHVyZSBydWJ5LCBidXQgaXQgd291bGRuJ3QgYmUgZ3JlYXQgZm9yIHBlcmZv
cm1hbmNlIChmb3Igc21hbGwgc3RyaW5ncywgZm9yIGxhcmdlIHN0cmluZ3MgaXQncyBwcm9iYWJs
eSBmaW5lKToKCn5+fiBydWJ5CiAgICBkZWYgPDwgc3RyaW5nCiAgICAgICAgZW5jID0gZW5jb2Rp
bmcKICAgICAgICBzdHJpbmdfZW5jID0gc3RyaW5nLmVuY29kaW5nCiAgICAgICAgaWYgc3RyaW5n
X2VuYyAhPSBlbmMKICAgICAgICAgICAgZm9yY2VfZW5jb2Rpbmcoc3RyaW5nX2VuYykKICAgICAg
ICAgICAgc3VwZXIoc3RyaW5nKQogICAgICAgICAgICBmb3JjZV9lbmNvZGluZyhlbmMpCiAgICAg
ICAgZWxzZQogICAgICAgICAgICBzdXBlcihzdHJpbmcpCiAgICAgICAgZW5kCiAgICBlbmQKfn5+
CgpUaGF0IGJlaW5nIHNhaWQsIEknZCBiZSBpbiBmYXZvciBvZiBoYXZpbmcgdGhpcyBhcyBhIHNl
cGFyYXRlIFN0cmluZyBtZXRob2QuICBJIGNhbiBzZWUgaXQgYmVpbmcgdXNlZCBxdWl0ZSBhIGxv
dCBpbiBuZXR3b3JrIHByb2dyYW1taW5nIHdoZXJlIGVuY29kZWQgdGV4dCBpcyBtaXhlZCB3aXRo
IGJpbmFyeSBwcm90b2NvbCBsb2dpYy4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KRmVhdHVyZSAjMTQ5NzU6IFN0cmluZyNhcHBlbmQgd2l0aG91dCBjaGFuZ2luZyBy
ZWNlaXZlcidzIGVuY29kaW5nCmh0dHBzOi8vYnVncy5ydWJ5LWxhbmcub3JnL2lzc3Vlcy8xNDk3
NSNjaGFuZ2UtNzM0NjcKCiogQXV0aG9yOiBpb3F1YXRpeCAoU2FtdWVsIFdpbGxpYW1zKQoqIFN0
YXR1czogT3BlbgoqIFByaW9yaXR5OiBOb3JtYWwKKiBBc3NpZ25lZTogCiogVGFyZ2V0IHZlcnNp
b246IAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkknbSBub3Qgc3Vy
ZSB3aGVyZSB0aGlzIGZpdHMgaW4sIGJ1dCBpbiBvcmRlciB0byBhdm9pZCBnYXJiYWdlIGFuZCBz
dXBlcmZsdW91cyBmdW5jdGlvbiBjYWxscywgaXMgaXQgcG9zc2libGUgdGhhdCBgU3RyaW5nIzw8
YCwgYFN0cmluZyNjb25jYXRgIG9yIHRoZSAocHJvcG9zZWQpIGBTdHJpbmcjYXBwZW5kYCBjYW4g
YXZvaWQgY2hhbmdpbmcgdGhlIGVuY29kaW5nIG9mIHRoZSByZWNlaXZlcj8KClJpZ2h0IG5vdyBp
dCdzIHZlcnkgdHJpY2t5IHRvIGRvIHRoaXMgaW4gYSB3YXkgdGhhdCBkb2Vzbid0IHJlcXVpcmUg
ZXh0cmEgYWxsb2NhdGlvbnMuIEhlcmUgaXMgd2hhdCBJIGRvOgoKYGBgcnVieQpjbGFzcyBCdWZm
ZXIgPCBTdHJpbmcKCUJJTkFSWSA9IEVuY29kaW5nOjpCSU5BUlkKCQoJZGVmIGluaXRpYWxpemUK
CQlzdXBlcgoJCQoJCWZvcmNlX2VuY29kaW5nKEJJTkFSWSkKCWVuZAoJCglkZWYgPDwgc3RyaW5n
CgkJaWYgc3RyaW5nLmVuY29kaW5nID09IEJJTkFSWQoJCQlzdXBlcihzdHJpbmcpCgkJZWxzZQoJ
CQlzdXBlcihzdHJpbmcuYikgIyBSZXF1aXJlcyBleHRyYSBhbGxvY2F0aW9uLgoJCWVuZAoJCQoJ
CXJldHVybiBzZWxmCgllbmQKCQoJYWxpYXMgY29uY2F0IDw8CmVuZApgYGAKCldoZW4gdGhlIHJl
Y2VpdmVyIGlzIGJpbmFyeSwgYnV0IGNvbnRhaW5zIGJ5dGUgc2VxdWVuY2VzLCBhcHBlbmRpbmcg
VVRGXzggY2FuIGZhaWw6CgpgYGAKIkZvb2JhciIuYiA8PCAiRsO4w7hiYXIiCj0+ICJGb29iYXJG
w7jDuGJhciIKCj4gIkbDuMO4YmFyIi5iIDw8ICJGw7jDuGJhciIKRW5jb2Rpbmc6OkNvbXBhdGli
aWxpdHlFcnJvcjogaW5jb21wYXRpYmxlIGNoYXJhY3RlciBlbmNvZGluZ3M6IEFTQ0lJLThCSVQg
YW5kIFVURi04CmBgYAoKU28sIGl0J3Mgbm90IHBvc3NpYmxlIHRvIGFwcGVuZCBkYXRhLCBnZW5l
cmFsbHksIGFuZCB0aGVuIGNhbGwgYGZvcmNlX2VuY29kaW5nKEVuY29kaW5nOjpCSU5BUlkpYC4g
T25lIG11c3QgZW5zdXJlIHRoZSBzdHJpbmcgaXMgYmluYXJ5IGJlZm9yZSBhcHBlbmRpbmcgaXQu
CgpJdCB3b3VsZCBiZSBuaWNlIGlmIHRoZXJlIHdhcyBhIHNvbHV0aW9uIHdoaWNoIGRpZG4ndCBy
ZXF1aXJlIGFkZGl0aW9uYWwgYWxsb2NhdGlvbnMvY29waWVzL2xpbmVhciBzY2FucyBmb3Igd2hh
dCBzaG91bGQgYmFzaWNhbGx5IGJlIGEgYG1lbWNweWAuCgpTZWUgYWxzbzogaHR0cHM6Ly9idWdz
LnJ1YnktbGFuZy5vcmcvaXNzdWVzLzE0MDMzIGFuZCBodHRwczovL2J1Z3MucnVieS1sYW5nLm9y
Zy9pc3N1ZXMvMTM2MjYjbm90ZS0zCgpUaGVyZSBhcmUgdHdvIG9wdGlvbnMgdG8gZml4IHRoaXM6
CgoxLyBEb24ndCBjaGFuZ2UgcmVjZWl2ZXIgZW5jb2RpbmcgaW4gYW55IGNhc2UuCjIvIEFwcGx5
IDEsIGJ1dCBvbmx5IHdoZW4gcmVjZWl2ZXIgaXMgdXNpbmcgYEVuY29kaW5nOjpCSU5BUllgCgoK
CgotLSAKaHR0cHM6Ly9idWdzLnJ1YnktbGFuZy5vcmcvCgpVbnN1YnNjcmliZTogPG1haWx0bzpy
dWJ5LWNvcmUtcmVxdWVzdEBydWJ5LWxhbmcub3JnP3N1YmplY3Q9dW5zdWJzY3JpYmU+CjxodHRw
Oi8vbGlzdHMucnVieS1sYW5nLm9yZy9jZ2ktYmluL21haWxtYW4vb3B0aW9ucy9ydWJ5LWNvcmU+
Cg==

In This Thread

Prev Next