summaryrefslogtreecommitdiff
path: root/ext/stringio
diff options
context:
space:
mode:
authorNobuyoshi Nakada <nobu@ruby-lang.org>2022-05-30 14:16:03 +0900
committergit <svn-admin@ruby-lang.org>2022-05-30 14:48:45 +0900
commit79761427913e70344ace2d129183ee998bcc22ac (patch)
treec5c5aef0a5f3d5a643ff19212618300a16747067 /ext/stringio
parentd3e986d9ab9a880b58a0b4fc68dadc2b10f4cf12 (diff)
[ruby/stringio] Fix extracting encoding names in the fallback code
https://github.com/ruby/stringio/commit/0fe2e0c1e5
Diffstat (limited to 'ext/stringio')
-rw-r--r--ext/stringio/stringio.c9
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);
}
}
}