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 | 52f1aa700fa6344d1c62d676400d426db4f53171 (patch) | |
| tree | 7c690d94ace0cbe00e4f39950ef621fb8c41885e | |
| parent | 875c445cec6cd631664f25ddfbd871e680fb77b7 (diff) | |
| download | ruby-52f1aa700fa6344d1c62d676400d426db4f53171.tar.gz ruby-52f1aa700fa6344d1c62d676400d426db4f53171.tar.xz ruby-52f1aa700fa6344d1c62d676400d426db4f53171.zip | |
* io.c (rb_io_flags_mode, rb_io_mode_flags): distinguish whether file
not existing is created. [ruby-dev:24505]
git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@7059 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
| -rw-r--r-- | ChangeLog | 5 | ||||
| -rw-r--r-- | io.c | 7 | ||||
| -rw-r--r-- | rubyio.h | 1 |
3 files changed, 11 insertions, 2 deletions
@@ -1,3 +1,8 @@ +Mon Oct 18 11:29:32 2004 Nobuyoshi Nakada <nobu@ruby-lang.org> + + * io.c (rb_io_flags_mode, rb_io_mode_flags): distinguish whether file + not existing is created. [ruby-dev:24505] + Mon Oct 18 07:26:21 2004 Nobuyoshi Nakada <nobu@ruby-lang.org> * file.c (rb_file_truncate): discard read buffer before truncation. @@ -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: @@ -31,6 +31,7 @@ typedef struct OpenFile { #define FMODE_WRITABLE 2 #define FMODE_READWRITE 3 #define FMODE_APPEND 64 +#define FMODE_CREATE 128 #define FMODE_BINMODE 4 #define FMODE_SYNC 8 #define FMODE_WBUF 16 |
