diff options
| -rw-r--r-- | ChangeLog | 10 | ||||
| -rw-r--r-- | io.c | 5 |
2 files changed, 13 insertions, 2 deletions
@@ -1,6 +1,14 @@ +Fri Nov 4 01:56:30 2011 NAKAMURA Usaku <usa@ruby-lang.org> + + * 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. + Mon Nov 7 23:39:23 2011 Tajima Akio <artonx@yahoo.co.jp> - * io.c (io_fflush): remove fsync(). + * io.c (io_fflush): remove fsync(). * io.c (rb_io_flush, rb_io_rewind): fsync() here. These pathces are backports of trunk r33651 for [Bug #5585] @@ -754,8 +754,11 @@ 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 if (!fptr->encs.enc || (fptr->encs.enc == rb_ascii8bit_encoding() && !fptr->encs.enc2)) { |
