summaryrefslogtreecommitdiff
path: root/io.c
diff options
context:
space:
mode:
authorNobuyoshi Nakada <nobu@ruby-lang.org>2022-07-06 18:08:31 +0900
committerGitHub <noreply@github.com>2022-07-06 18:08:31 +0900
commit5ef3c7ea2d1968c87f361b6615699b92cc6e5a9a (patch)
tree329847a540de76e070642a7d1d0075fdf9b3e5cb /io.c
parent53afacd0365b9bc6cd40f83149c5e4fea76a9932 (diff)
downloadruby-5ef3c7ea2d1968c87f361b6615699b92cc6e5a9a.tar.gz
[Bug #18898] Fallback invalid external encoding to the default
Diffstat (limited to 'io.c')
-rw-r--r--io.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/io.c b/io.c
index 3915fa9a72..efe1ad944a 100644
--- a/io.c
+++ b/io.c
@@ -2914,6 +2914,8 @@ io_enc_str(VALUE str, rb_io_t *fptr)
return str;
}
+static rb_encoding *io_read_encoding(rb_io_t *fptr);
+
static void
make_readconv(rb_io_t *fptr, int size)
{
@@ -2925,7 +2927,7 @@ make_readconv(rb_io_t *fptr, int size)
ecopts = fptr->encs.ecopts;
if (fptr->encs.enc2) {
sname = rb_enc_name(fptr->encs.enc2);
- dname = rb_enc_name(fptr->encs.enc);
+ dname = rb_enc_name(io_read_encoding(fptr));
}
else {
sname = dname = "";