diff options
author | akr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2008-08-24 07:12:44 +0000 |
---|---|---|
committer | akr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2008-08-24 07:12:44 +0000 |
commit | 9b8adfed222ed950b74d76a45179b3ba785c4e05 (patch) | |
tree | edfb35283b18e6013f36bc68e52c70fd65b28212 /io.c | |
parent | b47c46106a0e2937d059e81b6fbecafe3a3d4347 (diff) |
* include/ruby/encoding.h (rb_econv_option_t): defined.
(rb_econv_open): 3rd arg changed.
(rb_econv_open_exc): ditto.
* io.c (make_writeconv): use rb_econv_option_t.
(make_readconv): ditto.
(rb_econv_open): take rb_econv_option_t for options.
(rb_econv_open_exc): ditto.
(transcode_loop): use rb_econv_option_t.
(econv_init): use rb_econv_option_t.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@18810 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'io.c')
-rw-r--r-- | io.c | 31 |
1 files changed, 16 insertions, 15 deletions
@@ -694,25 +694,25 @@ make_writeconv(rb_io_t *fptr) if (!fptr->writeconv_initialized) { const char *senc, *denc; rb_encoding *enc; - int ecflags; + rb_econv_option_t ecopts; fptr->writeconv_initialized = 1; - ecflags = 0; + ecopts.flags = 0; if (fptr->mode & FMODE_INVALID_MASK) - ecflags |= (fptr->mode / (FMODE_INVALID_MASK/ECONV_INVALID_MASK)) & ECONV_INVALID_MASK; + ecopts.flags |= (fptr->mode / (FMODE_INVALID_MASK/ECONV_INVALID_MASK)) & ECONV_INVALID_MASK; if (fptr->mode & FMODE_UNDEF_MASK) - ecflags |= (fptr->mode / (FMODE_UNDEF_MASK/ECONV_UNDEF_MASK)) & ECONV_UNDEF_MASK; + ecopts.flags |= (fptr->mode / (FMODE_UNDEF_MASK/ECONV_UNDEF_MASK)) & ECONV_UNDEF_MASK; #ifdef TEXTMODE_NEWLINE_ENCODER if (NEED_NEWLINE_ENCODER(fptr)) - ecflags |= TEXTMODE_NEWLINE_ENCODER; + ecopts.flags |= TEXTMODE_NEWLINE_ENCODER; if (!fptr->enc) { - fptr->writeconv = rb_econv_open("", "", ecflags); + fptr->writeconv = rb_econv_open("", "", &ecopts); if (!fptr->writeconv) - rb_exc_raise(rb_econv_open_exc("", "", ecflags)); + rb_exc_raise(rb_econv_open_exc("", "", &ecopts)); fptr->writeconv_stateless = Qnil; return; } @@ -729,9 +729,9 @@ make_writeconv(rb_io_t *fptr) fptr->writeconv_stateless = Qnil; } if (senc) { - fptr->writeconv = rb_econv_open(senc, denc, ecflags); + fptr->writeconv = rb_econv_open(senc, denc, &ecopts); if (!fptr->writeconv) - rb_exc_raise(rb_econv_open_exc(senc, denc, ecflags)); + rb_exc_raise(rb_econv_open_exc(senc, denc, &ecopts)); } else { fptr->writeconv = NULL; @@ -1451,14 +1451,15 @@ static void make_readconv(rb_io_t *fptr) { if (!fptr->readconv) { - int ecflags = 0; + rb_econv_option_t ecopts; const char *sname, *dname; + ecopts.flags = 0; if (NEED_NEWLINE_DECODER(fptr)) - ecflags |= ECONV_UNIVERSAL_NEWLINE_DECODER; + ecopts.flags |= ECONV_UNIVERSAL_NEWLINE_DECODER; if (fptr->mode & FMODE_INVALID_MASK) - ecflags |= (fptr->mode / (FMODE_INVALID_MASK/ECONV_INVALID_MASK)) & ECONV_INVALID_MASK; + ecopts.flags |= (fptr->mode / (FMODE_INVALID_MASK/ECONV_INVALID_MASK)) & ECONV_INVALID_MASK; if (fptr->mode & FMODE_UNDEF_MASK) - ecflags |= (fptr->mode / (FMODE_UNDEF_MASK/ECONV_UNDEF_MASK)) & ECONV_UNDEF_MASK; + ecopts.flags |= (fptr->mode / (FMODE_UNDEF_MASK/ECONV_UNDEF_MASK)) & ECONV_UNDEF_MASK; if (fptr->enc2) { sname = fptr->enc2->name; dname = fptr->enc->name; @@ -1466,9 +1467,9 @@ make_readconv(rb_io_t *fptr) else { sname = dname = ""; } - fptr->readconv = rb_econv_open(sname, dname, ecflags); + fptr->readconv = rb_econv_open(sname, dname, &ecopts); if (!fptr->readconv) - rb_exc_raise(rb_econv_open_exc(sname, dname, ecflags)); + rb_exc_raise(rb_econv_open_exc(sname, dname, &ecopts)); fptr->crbuf_off = 0; fptr->crbuf_len = 0; fptr->crbuf_capa = 1024; |