aboutsummaryrefslogtreecommitdiffstats
path: root/io.c
diff options
context:
space:
mode:
Diffstat (limited to 'io.c')
-rw-r--r--io.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/io.c b/io.c
index 63d8172e07..eaaccbbe07 100644
--- a/io.c
+++ b/io.c
@@ -8334,6 +8334,10 @@ rb_io_set_encoding_by_bom(VALUE io)
if (fptr->encs.enc2) {
rb_raise(rb_eArgError, "encoding conversion is set");
}
+ else if (fptr->encs.enc && fptr->encs.enc != rb_ascii8bit_encoding()) {
+ rb_raise(rb_eArgError, "encoding is set to %s already",
+ rb_enc_name(fptr->encs.enc));
+ }
if (!io_set_encoding_by_bom(io)) return Qnil;
return rb_enc_from_encoding(fptr->encs.enc);
}