From 8403b23f367aa04e6620761fc1e1dd2d92219969 Mon Sep 17 00:00:00 2001 From: nobu Date: Fri, 2 Sep 2011 12:11:17 +0000 Subject: * io.c (validate_enc_binmode, prep_stdio): default to text mode on dosish platforms. [ruby-core:38822] [Bug #5164] * transcode.c (rb_econv_prepare_options): keep default ecflags unchanged if no options. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_3@33165 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- io.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'io.c') diff --git a/io.c b/io.c index ddb6d9576a..b0d4ff3ce2 100644 --- a/io.c +++ b/io.c @@ -4440,7 +4440,7 @@ validate_enc_binmode(int *fmode_p, int ecflags, rb_encoding *enc, rb_encoding *e rb_raise(rb_eArgError, "ASCII incompatible encoding needs binmode"); if (!(fmode & FMODE_BINMODE) && - (ecflags & ECONV_NEWLINE_DECORATOR_MASK)) { + (DEFAULT_TEXTMODE || (ecflags & ECONV_NEWLINE_DECORATOR_MASK))) { fmode |= DEFAULT_TEXTMODE; *fmode_p = fmode; } @@ -6409,9 +6409,10 @@ static VALUE prep_stdio(FILE *f, int fmode, VALUE klass, const char *path) { rb_io_t *fptr; - VALUE io = prep_io(fileno(f), fmode|FMODE_PREP, klass, path); + VALUE io = prep_io(fileno(f), fmode|FMODE_PREP|DEFAULT_TEXTMODE, klass, path); GetOpenFile(io, fptr); + fptr->encs.ecflags |= ECONV_DEFAULT_NEWLINE_DECORATOR; fptr->stdio_file = f; return io; -- cgit v1.2.3