* io.c (rb_file_open_internal): use rb_io_flags_modenum.

(rb_io_reopen): use rb_io_flags_modenum and rb_io_modenum_mode.
  (rb_io_stdio_file): ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@18729 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
akr 2008-08-20 13:32:08 +00:00
parent 9286180079
commit 4046ecde2f
2 changed files with 14 additions and 7 deletions

View File

@ -1,3 +1,9 @@
Wed Aug 20 22:30:33 2008 Tanaka Akira <akr@fsij.org>
* io.c (rb_file_open_internal): use rb_io_flags_modenum.
(rb_io_reopen): use rb_io_flags_modenum and rb_io_modenum_mode.
(rb_io_stdio_file): ditto.
Wed Aug 20 22:28:15 2008 Nobuyoshi Nakada <nobu@ruby-lang.org> Wed Aug 20 22:28:15 2008 Nobuyoshi Nakada <nobu@ruby-lang.org>
* proc.c (proc_new): use the given class. * proc.c (proc_new): use the given class.

15
io.c
View File

@ -3976,7 +3976,7 @@ rb_file_open_internal(VALUE io, const char *fname, const char *mode)
flags = rb_io_mode_flags(mode); flags = rb_io_mode_flags(mode);
return rb_file_open_generic(io, fname, return rb_file_open_generic(io, fname,
rb_io_mode_modenum(rb_io_flags_mode(flags)), rb_io_flags_modenum(flags),
flags, flags,
&convconfig, &convconfig,
0666); 0666);
@ -4917,7 +4917,7 @@ static VALUE
rb_io_reopen(int argc, VALUE *argv, VALUE file) rb_io_reopen(int argc, VALUE *argv, VALUE file)
{ {
VALUE fname, nmode; VALUE fname, nmode;
const char *mode; int modenum;
rb_io_t *fptr; rb_io_t *fptr;
rb_secure(4); rb_secure(4);
@ -4956,9 +4956,9 @@ rb_io_reopen(int argc, VALUE *argv, VALUE file)
} }
fptr->path = strdup(StringValueCStr(fname)); fptr->path = strdup(StringValueCStr(fname));
mode = rb_io_flags_mode(fptr->mode); modenum = rb_io_flags_modenum(fptr->mode);
if (fptr->fd < 0) { if (fptr->fd < 0) {
fptr->fd = rb_sysopen(fptr->path, rb_io_mode_modenum(mode), 0666); fptr->fd = rb_sysopen(fptr->path, modenum, 0666);
fptr->stdio_file = 0; fptr->stdio_file = 0;
return file; return file;
} }
@ -4969,7 +4969,7 @@ rb_io_reopen(int argc, VALUE *argv, VALUE file)
fptr->rbuf_off = fptr->rbuf_len = 0; fptr->rbuf_off = fptr->rbuf_len = 0;
if (fptr->stdio_file) { if (fptr->stdio_file) {
if (freopen(fptr->path, mode, fptr->stdio_file) == 0) { if (freopen(fptr->path, rb_io_modenum_mode(modenum), fptr->stdio_file) == 0) {
rb_sys_fail(fptr->path); rb_sys_fail(fptr->path);
} }
fptr->fd = fileno(fptr->stdio_file); fptr->fd = fileno(fptr->stdio_file);
@ -4982,7 +4982,7 @@ rb_io_reopen(int argc, VALUE *argv, VALUE file)
if (close(fptr->fd) < 0) if (close(fptr->fd) < 0)
rb_sys_fail(fptr->path); rb_sys_fail(fptr->path);
fptr->fd = -1; fptr->fd = -1;
fptr->fd = rb_sysopen(fptr->path, rb_io_mode_modenum(mode), 0666); fptr->fd = rb_sysopen(fptr->path, modenum, 0666);
} }
return file; return file;
@ -5442,7 +5442,8 @@ FILE *
rb_io_stdio_file(rb_io_t *fptr) rb_io_stdio_file(rb_io_t *fptr)
{ {
if (!fptr->stdio_file) { if (!fptr->stdio_file) {
fptr->stdio_file = rb_fdopen(fptr->fd, rb_io_flags_mode(fptr->mode)); int modenum = rb_io_flags_modenum(fptr->mode);
fptr->stdio_file = rb_fdopen(fptr->fd, rb_io_modenum_mode(modenum));
} }
return fptr->stdio_file; return fptr->stdio_file;
} }