diff options
author | Nobuyoshi Nakada <nobu@ruby-lang.org> | 2022-05-30 14:16:03 +0900 |
---|---|---|
committer | git <svn-admin@ruby-lang.org> | 2022-05-30 14:48:45 +0900 |
commit | 79761427913e70344ace2d129183ee998bcc22ac (patch) | |
tree | c5c5aef0a5f3d5a643ff19212618300a16747067 | |
parent | d3e986d9ab9a880b58a0b4fc68dadc2b10f4cf12 (diff) | |
download | ruby-79761427913e70344ace2d129183ee998bcc22ac.tar.gz |
[ruby/stringio] Fix extracting encoding names in the fallback code
https://github.com/ruby/stringio/commit/0fe2e0c1e5
-rw-r--r-- | ext/stringio/stringio.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/ext/stringio/stringio.c b/ext/stringio/stringio.c index 13f9c28dd1..1b21c2e60f 100644 --- a/ext/stringio/stringio.c +++ b/ext/stringio/stringio.c @@ -67,15 +67,20 @@ strio_extract_modeenc(VALUE *vmode_p, VALUE *vperm_p, VALUE opthash, e = strchr(++n, ':'); len = e ? e - n : (long)strlen(n); if (len > 0 && len <= ENCODING_MAXNAMELEN) { + rb_encoding *enc; if (e) { memcpy(encname, n, len); encname[len] = '\0'; n = encname; } - convconfig_p->enc = rb_enc_find(n); + enc = rb_enc_find(n); + if (e) + convconfig_p->enc2 = enc; + else + convconfig_p->enc = enc; } if (e && (len = strlen(++e)) > 0 && len <= ENCODING_MAXNAMELEN) { - convconfig_p->enc2 = rb_enc_find(e); + convconfig_p->enc = rb_enc_find(e); } } } |