diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2004-10-18 02:29:43 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2004-10-18 02:29:43 +0000 |
commit | 0fdb2ae104d9a4a2ef4885d19860b2dff09cc42a (patch) | |
tree | 7c690d94ace0cbe00e4f39950ef621fb8c41885e /io.c | |
parent | 6a6773b969b67af6395e022c64c1424372bf324c (diff) | |
download | ruby-0fdb2ae104d9a4a2ef4885d19860b2dff09cc42a.tar.gz |
* io.c (rb_io_flags_mode, rb_io_mode_flags): distinguish whether file
not existing is created. [ruby-dev:24505]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@7059 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'io.c')
-rw-r--r-- | io.c | 7 |
1 files changed, 5 insertions, 2 deletions
@@ -2304,6 +2304,9 @@ rb_io_flags_mode(flags) case FMODE_WRITABLE: return MODE_BINMODE("w", "wb"); case FMODE_READWRITE: + if (flags & FMODE_CREATE) { + return MODE_BINMODE("w+", "wb+"); + } return MODE_BINMODE("r+", "rb+"); } rb_raise(rb_eArgError, "illegal access mode %o", flags); @@ -2322,10 +2325,10 @@ rb_io_mode_flags(mode) flags |= FMODE_READABLE; break; case 'w': - flags |= FMODE_WRITABLE; + flags |= FMODE_WRITABLE | FMODE_CREATE; break; case 'a': - flags |= FMODE_WRITABLE | FMODE_APPEND; + flags |= FMODE_WRITABLE | FMODE_APPEND | FMODE_CREATE; break; default: error: |