diff options
author | Nobuyoshi Nakada <nobu@ruby-lang.org> | 2019-12-15 23:13:16 +0900 |
---|---|---|
committer | Nobuyoshi Nakada <nobu@ruby-lang.org> | 2019-12-15 23:13:16 +0900 |
commit | e8c62836a6292bf2f691de458b24ea50c51b452a (patch) | |
tree | efa07f54f1a6eeebffb1f3a9813197e646f2c56c /io.c | |
parent | eeb99fb52500b571b1239442a7d17d335cfde060 (diff) |
IO#set_encoding_by_bom should err when encoding is already set
Except for ASCII-8BIT. [Bug #16422]
Diffstat (limited to 'io.c')
-rw-r--r-- | io.c | 4 |
1 files changed, 4 insertions, 0 deletions
@@ -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); } |