From 932d63efe08fc0d2a69ea81676508a62a2c981b2 Mon Sep 17 00:00:00 2001 From: usa Date: Thu, 3 Nov 2011 16:59:53 +0000 Subject: * io.c (make_writeconv): unversal_newline converter is for reading. so, if the io is text mode and has ECONV_UNIVERSAL_NEWLINE_DECORATOR flag, use crlf_newline converter for writing. this change fixes the problem about the luck of CR up Kernel.p and Kernel.puts to stdout/stderr on Windows. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33627 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 8 ++++++++ io.c | 4 +++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index c07319c59c..cfc4f7d173 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +Fri Nov 4 01:56:30 2011 NAKAMURA Usaku + + * io.c (make_writeconv): unversal_newline converter is for reading. + so, if the io is text mode and has ECONV_UNIVERSAL_NEWLINE_DECORATOR + flag, use crlf_newline converter for writing. + this change fixes the problem about the luck of CR up Kernel.p and + Kernel.puts to stdout/stderr on Windows. + Fri Nov 4 01:04:48 2011 NARUSE, Yui * ext/readline/readline.c (Init_readline): like r18313, libedit's diff --git a/io.c b/io.c index ab3f35f3cf..5d3c17e2fe 100644 --- a/io.c +++ b/io.c @@ -910,7 +910,9 @@ make_writeconv(rb_io_t *fptr) ecopts = fptr->encs.ecopts; #ifdef TEXTMODE_NEWLINE_DECORATOR_ON_WRITE if (NEED_NEWLINE_DECORATOR_ON_WRITE(fptr) && - !(ecflags & ECONV_NEWLINE_DECORATOR_MASK)) + (!(ecflags & ECONV_NEWLINE_DECORATOR_MASK)) || + (ecflags & ECONV_UNIVERSAL_NEWLINE_DECORATOR)) + ecflags &= ~ECONV_UNIVERSAL_NEWLINE_DECORATOR; ecflags |= TEXTMODE_NEWLINE_DECORATOR_ON_WRITE; #endif -- cgit v1.2.3