diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2017-07-14 10:53:35 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2017-07-14 10:53:35 +0000 |
commit | 57464618abee8c5d35d9a24767cdb62d1459b341 (patch) | |
tree | d5459776f9ccdf4059fb720f97823fc7ffca1e7e /io.c | |
parent | f7ef047f8e3e271e8defa0065959416a188a8fd4 (diff) |
io.c: textmode if newline decorator
* io.c (validate_enc_binmode): newline decorator implies text mode
now. [ruby-core:80270] [Bug #13350]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@59336 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'io.c')
-rw-r--r-- | io.c | 5 |
1 files changed, 4 insertions, 1 deletions
@@ -5451,9 +5451,12 @@ validate_enc_binmode(int *fmode_p, int ecflags, rb_encoding *enc, rb_encoding *e !rb_enc_asciicompat(enc ? enc : rb_default_external_encoding())) rb_raise(rb_eArgError, "ASCII incompatible encoding needs binmode"); + if ((fmode & FMODE_BINMODE) && (ecflags & ECONV_NEWLINE_DECORATOR_MASK)) { + rb_raise(rb_eArgError, "newline decorator with binary mode"); + } if (!(fmode & FMODE_BINMODE) && (DEFAULT_TEXTMODE || (ecflags & ECONV_NEWLINE_DECORATOR_MASK))) { - fmode |= DEFAULT_TEXTMODE; + fmode |= FMODE_TEXTMODE; *fmode_p = fmode; } #if !DEFAULT_TEXTMODE |