1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

* io.c (make_writeconv): copy invalid/undef flags.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@18859 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
akr 2008-08-25 18:08:08 +00:00
parent 446a67c08e
commit 3c66a5b25e
2 changed files with 12 additions and 9 deletions

View file

@ -1,3 +1,7 @@
Tue Aug 26 03:06:48 2008 Tanaka Akira <akr@fsij.org>
* io.c (make_writeconv): copy invalid/undef flags.
Tue Aug 26 02:47:08 2008 Yuki Sonoda (Yugui) <yugui@yugui.jp>
* common.mk (dist): tool/make-snapshot is executable.

17
io.c
View file

@ -696,21 +696,24 @@ make_writeconv(rb_io_t *fptr)
fptr->writeconv_initialized = 1;
rb_econv_opts(Qnil, &fptr->writeconv_pre_opts);
/* ECONV_INVALID_XXX and ECONV_UNDEF_XXX should be set both.
* But ECONV_CRLF_NEWLINE_ENCODER should be set only for the first. */
fptr->writeconv_pre_opts = fptr->encs.opts;
ecopts = fptr->encs.opts;
#ifdef TEXTMODE_NEWLINE_ENCODER
if (NEED_NEWLINE_ENCODER(fptr))
ecopts.flags |= TEXTMODE_NEWLINE_ENCODER;
if (!fptr->encs.enc) {
if (NEED_NEWLINE_ENCODER(fptr))
ecopts.flags |= TEXTMODE_NEWLINE_ENCODER;
fptr->writeconv = rb_econv_open("", "", &ecopts);
if (!fptr->writeconv)
rb_exc_raise(rb_econv_open_exc("", "", &ecopts));
fptr->writeconv_stateless = Qnil;
return;
}
if (NEED_NEWLINE_ENCODER(fptr))
fptr->writeconv_pre_opts.flags |= TEXTMODE_NEWLINE_ENCODER;
#endif
enc = fptr->encs.enc2 ? fptr->encs.enc2 : fptr->encs.enc;
@ -726,10 +729,6 @@ make_writeconv(rb_io_t *fptr)
denc = NULL;
fptr->writeconv_stateless = Qnil;
fptr->writeconv = NULL;
#ifdef TEXTMODE_NEWLINE_ENCODER
if (NEED_NEWLINE_ENCODER(fptr))
fptr->writeconv_pre_opts.flags |= TEXTMODE_NEWLINE_ENCODER;
#endif
}
}
}