ruby-core

Mailing list archive

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

From: eregontp@...
Date: 2018-12-28 17:11:22 UTC
List: ruby-core #90775
SXNzdWUgIzE0OTc1IGhhcyBiZWVuIHVwZGF0ZWQgYnkgRXJlZ29uIChCZW5vaXQgRGFsb3plKS4K
CgpkdWVyc3QgKE1hcnRpbiBEw7xyc3QpIHdyb3RlOgo+IEluIGFueSB3YXksIHdoZW4gYWRkaW5n
IHN0dWZmIHRvIGEgKEJJTkFSWSkgYnVmZmVyLCB0aGUgcmlnaHQgdGhpbmcgY29uY2VwdHVhbGx5
IGlzIHRvIGNoYW5nZSBhbGwgdGhlIHBpZWNlcyB0byBCSU5BUlksIG5vdCB0byByZWx5IG9uIHNv
bWUgb2YgdGhlIHBpZWNlcyAoYmUgaXQgdGhlIGZpcnN0IG9yIGFub3RoZXIpIHRvIGJlIEJJTkFS
WS4KCklmIHRoZSBMSFMgaXMgbm90IEJJTkFSWSB0aGVuIGl0IGNhbid0IHJlYXNvbmFibHkgYmUg
Y2FsbGVyIGEgImJpbmFyeSBidWZmZXIiLCBzbyBsZXQncyBhc3N1bWUgUkhTIGlzIGJpbmFyeS4K
CkkgdGhpbmsgd2UgYWxsIGFncmVlIGBiaW5hcnlfc3RyaW5nIDw8IHdoYXRldmVyYCBzaG91bGQg
bGVhdmUgYGJpbmFyeV9zdHJpbmcuZW5jb2RpbmdgIGFzIGBCSU5BUllgIChldmVuIGlmIGJpbmFy
eV9zdHJpbmcgb25seSBjb250YWlucyBhbGwgPDEyOCBieXRlcyBpbml0aWFsbHkpLgpJIHdvbmRl
ciB3aGF0IHdvdWxkIGJyZWFrIGlmIHdlIGNoYW5nZWQgdGhpcyBzcGVjaWZpYyBiZWhhdmlvci4K
TWF5YmUgc29tZWJvZHkgY291bGQgdHJ5IGFuZCByZXBvcnQgd2hhdCBmYWlsdXJlcyB3ZSBnZXQg
ZnJvbSB0aGUgdGVzdCBzdWl0ZXM/ClRoaW5ncyBsaWtlIGBiaW5hcnkgPDwgdXRmOGAgY2hhbmdp
bmcgYGJpbmFyeWAncyBlbmNvZGluZyB0byBgVVRGLThgIHNlZW1zIG5vbnNlbnNlIGFuZCBuZXZl
ciB3aGF0IGFueW9uZSB3YW50cyAoVVRGLTggaXMgbm90IGEgc3VwZXJzZXQgb2YgQklOQVJZLCBz
b21lIGJ5dGUgc2VxdWVuY2VzIGFyZSBpbnZhbGlkIGluIFVURi04KS4KCk9UT0ggYHVzYXNjaWkg
PDwgdXRmOGAgY2hhbmdpbmcgdGhlIExIUydzIGVuY29kaW5nIHRvIGBVVEYtOGAgc2VlbXMgbXVj
aCBtb3JlIHJlYXNvbmFibGUgKGl0J3Mgc3RpbGwgInRleHQiLCBub3QgYmluYXJ5IGRhdGEsIGFu
ZCBVVEYtOCBpcyBhIGNsZWFyIHN1cGVyc2V0IG9mIFVTLUFTQ0lJKS4KCk1heWJlIG5lZ290aWF0
aW5nIGEgY29tcGF0aWJsZSBlbmNvZGluZyBieSBmaW5kaW5nIGEgc3VwZXJzZXQgKGFsdGhvdWdo
IEknZCByYWlzZSBvbiBgSVNPLTg4NTktMSA8PCBVVEYtOGAgcmF0aGVyIHRoYW4gdXNlIEJJTkFS
WSwgYmVjYXVzZSBpdCBjYW5ub3Qgd29yayB3ZWxsIGlmIGJvdGggaGF2ZSBub24tVVMtQVNDSUkg
Y2hhcmFjdGVycyksCmFuZCBvbmx5IGNvbnNpZGVyaW5nIHRoZSBTdHJpbmcjZW5jb2RpbmcgYW5k
IG5vdCB0aGUgY29kZXJhbmdlICh0aGUgcmFuZ2Ugb2YgdGhlIGJ5dGVzKSB3b3VsZCBiZSBhIHdh
eSB0byBoYXZlIGNsZWFyIHNlbWFudGljcyBmb3IgYXBwZW5kcy4KCj4gVGhlIHByb2JsZW0gd2l0
aCB0aGF0IGlzIHRoYXQgaXQgZWl0aGVyIGNoYW5nZXMgdGhlIGFwcGVuZGVkIHN0cmluZydzIGVu
Y29kaW5nICh3aXRoIGAuZm9yY2VfZW5jb2RpbmcgJ0JJTkFSWSdgKSBvciBuZWVkcyBhbm90aGVy
IGNvcHkgKHdpdGggYC5iYCkuCgpJZiAjYXBwZW5kIGlzIGNoYW5nZWQgb3IgYSBuZXcgbWV0aG9k
IGFkZGVkLCB0aGVyZSBpcyBubyBuZWVkIGZvciBhbnkgZXh0cmEgY29weWluZyBvZiBjb3Vyc2Us
IHRoZSBieXRlcyBhcmUganVzdCBjb3BpZWQgaW4gdGhlIHJlY2VpdmVyIGJ1ZmZlci4KQnV0IHRo
ZSBhbGxvY2F0aW9uIHNob3VsZCBiZSBwcmV0dHkgY2hlYXAgKGFuZCBpdCBjYW4gYmUgZXNjYXBl
LWFuYWx5emVkKSwgYW5kIG5vIGNvcHkgb3Igc2NhbiBzaG91bGQgYmUgbmVlZGVkIGZvciBgc3Vw
ZXIoc3RyaW5nLmIpYC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
RmVhdHVyZSAjMTQ5NzU6IFN0cmluZyNhcHBlbmQgd2l0aG91dCBjaGFuZ2luZyByZWNlaXZlcidz
IGVuY29kaW5nCmh0dHBzOi8vYnVncy5ydWJ5LWxhbmcub3JnL2lzc3Vlcy8xNDk3NSNjaGFuZ2Ut
NzU5NDkKCiogQXV0aG9yOiBpb3F1YXRpeCAoU2FtdWVsIFdpbGxpYW1zKQoqIFN0YXR1czogT3Bl
bgoqIFByaW9yaXR5OiBOb3JtYWwKKiBBc3NpZ25lZTogaW9xdWF0aXggKFNhbXVlbCBXaWxsaWFt
cykKKiBUYXJnZXQgdmVyc2lvbjogMi43Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KSSdtIG5vdCBzdXJlIHdoZXJlIHRoaXMgZml0cyBpbiwgYnV0IGluIG9yZGVyIHRv
IGF2b2lkIGdhcmJhZ2UgYW5kIHN1cGVyZmx1b3VzIGZ1bmN0aW9uIGNhbGxzLCBpcyBpdCBwb3Nz
aWJsZSB0aGF0IGBTdHJpbmcjPDxgLCBgU3RyaW5nI2NvbmNhdGAgb3IgdGhlIChwcm9wb3NlZCkg
YFN0cmluZyNhcHBlbmRgIGNhbiBhdm9pZCBjaGFuZ2luZyB0aGUgZW5jb2Rpbmcgb2YgdGhlIHJl
Y2VpdmVyPwoKUmlnaHQgbm93IGl0J3MgdmVyeSB0cmlja3kgdG8gZG8gdGhpcyBpbiBhIHdheSB0
aGF0IGRvZXNuJ3QgcmVxdWlyZSBleHRyYSBhbGxvY2F0aW9ucy4gSGVyZSBpcyB3aGF0IEkgZG86
CgpgYGBydWJ5CmNsYXNzIEJ1ZmZlciA8IFN0cmluZwoJQklOQVJZID0gRW5jb2Rpbmc6OkJJTkFS
WQoJCglkZWYgaW5pdGlhbGl6ZQoJCXN1cGVyCgkJCgkJZm9yY2VfZW5jb2RpbmcoQklOQVJZKQoJ
ZW5kCgkKCWRlZiA8PCBzdHJpbmcKCQlpZiBzdHJpbmcuZW5jb2RpbmcgPT0gQklOQVJZCgkJCXN1
cGVyKHN0cmluZykKCQllbHNlCgkJCXN1cGVyKHN0cmluZy5iKSAjIFJlcXVpcmVzIGV4dHJhIGFs
bG9jYXRpb24uCgkJZW5kCgkJCgkJcmV0dXJuIHNlbGYKCWVuZAoJCglhbGlhcyBjb25jYXQgPDwK
ZW5kCmBgYAoKV2hlbiB0aGUgcmVjZWl2ZXIgaXMgYmluYXJ5LCBidXQgY29udGFpbnMgYnl0ZSBz
ZXF1ZW5jZXMsIGFwcGVuZGluZyBVVEZfOCBjYW4gZmFpbDoKCmBgYAoiRm9vYmFyIi5iIDw8ICJG
w7jDuGJhciIKPT4gIkZvb2JhckbDuMO4YmFyIgoKPiAiRsO4w7hiYXIiLmIgPDwgIkbDuMO4YmFy
IgpFbmNvZGluZzo6Q29tcGF0aWJpbGl0eUVycm9yOiBpbmNvbXBhdGlibGUgY2hhcmFjdGVyIGVu
Y29kaW5nczogQVNDSUktOEJJVCBhbmQgVVRGLTgKYGBgCgpTbywgaXQncyBub3QgcG9zc2libGUg
dG8gYXBwZW5kIGRhdGEsIGdlbmVyYWxseSwgYW5kIHRoZW4gY2FsbCBgZm9yY2VfZW5jb2Rpbmco
RW5jb2Rpbmc6OkJJTkFSWSlgLiBPbmUgbXVzdCBlbnN1cmUgdGhlIHN0cmluZyBpcyBiaW5hcnkg
YmVmb3JlIGFwcGVuZGluZyBpdC4KCkl0IHdvdWxkIGJlIG5pY2UgaWYgdGhlcmUgd2FzIGEgc29s
dXRpb24gd2hpY2ggZGlkbid0IHJlcXVpcmUgYWRkaXRpb25hbCBhbGxvY2F0aW9ucy9jb3BpZXMv
bGluZWFyIHNjYW5zIGZvciB3aGF0IHNob3VsZCBiYXNpY2FsbHkgYmUgYSBgbWVtY3B5YC4KClNl
ZSBhbHNvOiBodHRwczovL2J1Z3MucnVieS1sYW5nLm9yZy9pc3N1ZXMvMTQwMzMgYW5kIGh0dHBz
Oi8vYnVncy5ydWJ5LWxhbmcub3JnL2lzc3Vlcy8xMzYyNiNub3RlLTMKClRoZXJlIGFyZSB0d28g
b3B0aW9ucyB0byBmaXggdGhpczoKCjEvIERvbid0IGNoYW5nZSByZWNlaXZlciBlbmNvZGluZyBp
biBhbnkgY2FzZS4KMi8gQXBwbHkgMSwgYnV0IG9ubHkgd2hlbiByZWNlaXZlciBpcyB1c2luZyBg
RW5jb2Rpbmc6OkJJTkFSWWAKCgoKCi0tIApodHRwczovL2J1Z3MucnVieS1sYW5nLm9yZy8KClVu
c3Vic2NyaWJlOiA8bWFpbHRvOnJ1YnktY29yZS1yZXF1ZXN0QHJ1YnktbGFuZy5vcmc/c3ViamVj
dD11bnN1YnNjcmliZT4KPGh0dHA6Ly9saXN0cy5ydWJ5LWxhbmcub3JnL2NnaS1iaW4vbWFpbG1h
bi9vcHRpb25zL3J1YnktY29yZT4K

In This Thread

Prev Next