summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Zhu <peter@peterzhu.ca>2022-01-07 09:47:09 -0500
committerPeter Zhu <peter@peterzhu.ca>2022-01-07 10:50:03 -0500
commitbe68b3a49030f592a10eacc180d21c38c5d5d5db (patch)
tree4987e85ffd864c3b66328ecdbc834bc72d914483
parent3f9af8a9dc2c5d06b0875d2917dc9a1db12b03b2 (diff)
Change termlen when changing encoding during concatenation
After changing the encoding, we should update the terminator length.
Notes
Notes: Merged: https://github.com/ruby/ruby/pull/5411
-rw-r--r--string.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/string.c b/string.c
index d1b2e5aee0..777f9fadc4 100644
--- a/string.c
+++ b/string.c
@@ -3189,6 +3189,7 @@ rb_enc_cr_str_buf_cat(VALUE str, const char *ptr, long len,
if (RSTRING_LEN(str) == 0) {
rb_str_buf_cat(str, ptr, len);
ENCODING_CODERANGE_SET(str, ptr_encindex, ptr_cr);
+ rb_str_change_terminator_length(str, rb_enc_mbminlen(str_enc), rb_enc_mbminlen(ptr_enc));
return str;
}
goto incompatible;