From 9c48e5990720b575e1143a5a1ec5a88e53ba43c5 Mon Sep 17 00:00:00 2001 From: nobu Date: Wed, 27 Apr 2011 21:06:59 +0000 Subject: * io.c (rb_io_extract_modeenc, rb_f_backquote): set default text mode. fixes #4619 * io.c (pipe_open): set universal newline decorator if needed. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31367 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- io.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'io.c') diff --git a/io.c b/io.c index 73a30cd305..328abc7ea8 100644 --- a/io.c +++ b/io.c @@ -4496,7 +4496,7 @@ rb_io_extract_modeenc(VALUE *vmode_p, VALUE *vperm_p, VALUE opthash, rb_io_ext_int_to_encs(NULL, NULL, &enc, &enc2); if (NIL_P(vmode)) { - fmode = FMODE_READABLE; + fmode = FMODE_READABLE | DEFAULT_TEXTMODE; oflags = O_RDONLY; } else if (!NIL_P(intmode = rb_check_to_integer(vmode, "to_int"))) { @@ -5249,6 +5249,9 @@ pipe_open(struct rb_exec_arg *eargp, VALUE prog, const char *modestr, int fmode, if (convconfig) { fptr->encs = *convconfig; } + else if (NEED_NEWLINE_DECORATOR_ON_READ(fptr)) { + fptr->encs.ecflags |= ECONV_UNIVERSAL_NEWLINE_DECORATOR; + } fptr->pid = pid; if (0 <= write_fd) { @@ -7248,7 +7251,7 @@ rb_f_backquote(VALUE obj, VALUE str) rb_io_t *fptr; SafeStringValue(str); - port = pipe_open_s(str, "r", FMODE_READABLE, NULL); + port = pipe_open_s(str, "r", FMODE_READABLE|DEFAULT_TEXTMODE, NULL); if (NIL_P(port)) return rb_str_new(0,0); GetOpenFile(port, fptr); -- cgit v1.2.3