diff options
| author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2009-09-04 21:29:29 +0000 |
|---|---|---|
| committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2009-09-04 21:29:29 +0000 |
| commit | d24f4c0fe3594a1e2fef7cfbef521d71cb4f0abf (patch) | |
| tree | 9c6bd5c80fe4b570cf13f792632b33908002e1cb | |
| parent | 643462810e02bd3059d746104463170e800b6d64 (diff) | |
* io.c (rb_io_binmode): check if closed regardless platforms.
[ruby-core:25363]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@24751 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
| -rw-r--r-- | ChangeLog | 5 | ||||
| -rw-r--r-- | io.c | 4 | ||||
| -rw-r--r-- | test/ruby/test_io.rb | 17 | ||||
| -rw-r--r-- | version.h | 6 |
4 files changed, 27 insertions, 5 deletions
@@ -1,3 +1,8 @@ +Sat Sep 5 06:29:22 2009 Nobuyoshi Nakada <nobu@ruby-lang.org> + + * io.c (rb_io_binmode): check if closed regardless platforms. + [ruby-core:25363] + Fri Sep 4 20:40:57 2009 Nobuyoshi Nakada <nobu@ruby-lang.org> * numeric.c (round): added declaration. [ruby-dev:39222] @@ -2713,11 +2713,11 @@ VALUE rb_io_binmode(io) VALUE io; { -#if defined(_WIN32) || defined(DJGPP) || defined(__CYGWIN__) || defined(__human68k__) || defined(__EMX__) rb_io_t *fptr; GetOpenFile(io, fptr); -#ifdef __human68k__ +#if (defined(O_BINARY) && O_BINARY) || (defined(_IOBIN) && _IOBIN) +#if (defined(_IOBIN) && _IOBIN) /* __human68k__ */ if (fptr->f) fmode(fptr->f, _IOBIN); if (fptr->f2) diff --git a/test/ruby/test_io.rb b/test/ruby/test_io.rb index 6e69f14437..7137b5f772 100644 --- a/test/ruby/test_io.rb +++ b/test/ruby/test_io.rb @@ -1,5 +1,6 @@ require 'test/unit' require 'tmpdir' +require 'tempfile' class TestIO < Test::Unit::TestCase def mkcdtmpdir @@ -17,4 +18,20 @@ class TestIO < Test::Unit::TestCase assert_equal("\377", r.gets("\377"), "[ruby-dev:24460]") r.close end + + def make_tempfile + t = Tempfile.new("foo") + t.binmode + t.puts "foo" + t.puts "bar" + t.puts "baz" + t.close + t + end + + def test_binmode_after_closed + t = make_tempfile + t.close + assert_raise(IOError) {t.binmode} + end end @@ -1,7 +1,7 @@ #define RUBY_VERSION "1.8.8" -#define RUBY_RELEASE_DATE "2009-09-04" +#define RUBY_RELEASE_DATE "2009-09-05" #define RUBY_VERSION_CODE 188 -#define RUBY_RELEASE_CODE 20090904 +#define RUBY_RELEASE_CODE 20090905 #define RUBY_PATCHLEVEL -1 #define RUBY_VERSION_MAJOR 1 @@ -9,7 +9,7 @@ #define RUBY_VERSION_TEENY 8 #define RUBY_RELEASE_YEAR 2009 #define RUBY_RELEASE_MONTH 9 -#define RUBY_RELEASE_DAY 4 +#define RUBY_RELEASE_DAY 5 #ifdef RUBY_EXTERN RUBY_EXTERN const char ruby_version[]; |
