[前][次][番号順一覧][スレッド一覧]

ruby-changes:70779

From: Peter <ko1@a...>
Date: Sat, 8 Jan 2022 00:50:16 +0900 (JST)
Subject: [ruby-changes:70779] be68b3a490 (master): Change termlen when changing encoding during concatenation

https://git.ruby-lang.org/ruby.git/commit/?id=be68b3a490

From be68b3a49030f592a10eacc180d21c38c5d5d5db Mon Sep 17 00:00:00 2001
From: Peter Zhu <peter@p...>
Date: Fri, 7 Jan 2022 09:47:09 -0500
Subject: Change termlen when changing encoding during concatenation

After changing the encoding, we should update the terminator length.
---
 string.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/string.c b/string.c
index d1b2e5aee0e..777f9fadc4d 100644
--- a/string.c
+++ b/string.c
@@ -3189,6 +3189,7 @@ rb_enc_cr_str_buf_cat(VALUE str, const char *ptr, long len, https://github.com/ruby/ruby/blob/trunk/string.c#L3189
             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;
-- 
cgit v1.2.1


--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]