diff options
author | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2008-01-09 17:44:13 +0000 |
---|---|---|
committer | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2008-01-09 17:44:13 +0000 |
commit | 81064a76880286242804119c8feb88c92fb48fd5 (patch) | |
tree | 3d5c3539ac3b78cc7d50823de750f636db3f4bf1 | |
parent | b3f93b1f43069c65766b965ec0864bc4cb3285cc (diff) | |
download | ruby-81064a76880286242804119c8feb88c92fb48fd5.tar.gz |
* io.c (rb_io_binmode): should not alter encoding. [ruby-dev:32918]
* io.c (io_read_encoding): need not to return ASCII-8BIT for
binary IO.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14972 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | ChangeLog | 7 | ||||
-rw-r--r-- | io.c | 11 | ||||
-rw-r--r-- | test/ruby/test_io_m17n.rb | 2 | ||||
-rw-r--r-- | version.h | 6 |
4 files changed, 13 insertions, 13 deletions
@@ -1,3 +1,10 @@ +Thu Jan 10 02:41:22 2008 Yukihiro Matsumoto <matz@ruby-lang.org> + + * io.c (rb_io_binmode): should not alter encoding. [ruby-dev:32918] + + * io.c (io_read_encoding): need not to return ASCII-8BIT for + binary IO. + Wed Jan 9 22:04:17 2008 Kazuhiro NISHIYAMA <zn@mbf.nifty.com> * lib/mathn.rb (Prime#each): returns an enumerator if no block @@ -374,9 +374,7 @@ io_read_encoding(rb_io_t *fptr) if (fptr->enc) { return fptr->enc; } - return (fptr->mode & FMODE_BINMODE) - ? rb_ascii8bit_encoding() - : rb_default_external_encoding(); + return rb_default_external_encoding(); } static rb_encoding* @@ -2949,16 +2947,14 @@ rb_io_binmode(VALUE io) rb_io_t *fptr; GetOpenFile(io, fptr); +#if defined(_WIN32) || defined(DJGPP) || defined(__CYGWIN__) || defined(__human68k__) || defined(__EMX__) if (!(fptr->mode & FMODE_BINMODE) && READ_DATA_BUFFERED(fptr)) { rb_raise(rb_eIOError, "buffer already filled with text-mode content"); } -#if defined(_WIN32) || defined(DJGPP) || defined(__CYGWIN__) || defined(__human68k__) || defined(__EMX__) if (0 <= fptr->fd && setmode(fptr->fd, O_BINARY) == -1) rb_sys_fail(fptr->path); - #endif fptr->mode |= FMODE_BINMODE; - fptr->enc = rb_ascii8bit_encoding(); return io; } @@ -3198,9 +3194,6 @@ rb_io_mode_enc(rb_io_t *fptr, const char *mode) { const char *p = strchr(mode, ':'); if (p) { - if (fptr->mode & FMODE_BINMODE) { - rb_raise(rb_eArgError, "encoding in binary mode"); - } mode_enc(fptr, p+1); } } diff --git a/test/ruby/test_io_m17n.rb b/test/ruby/test_io_m17n.rb index 748050afe3..8646e6c6a6 100644 --- a/test/ruby/test_io_m17n.rb +++ b/test/ruby/test_io_m17n.rb @@ -58,7 +58,7 @@ EOT with_tmpdir { generate_file('tmp', "") open("tmp", "rb") {|f| - assert_equal(Encoding::ASCII_8BIT, f.external_encoding) + assert_equal(Encoding.default_external, f.external_encoding) assert_equal(nil, f.internal_encoding) } } @@ -1,7 +1,7 @@ #define RUBY_VERSION "1.9.0" -#define RUBY_RELEASE_DATE "2008-01-09" +#define RUBY_RELEASE_DATE "2008-01-10" #define RUBY_VERSION_CODE 190 -#define RUBY_RELEASE_CODE 20080109 +#define RUBY_RELEASE_CODE 20080110 #define RUBY_PATCHLEVEL 0 #define RUBY_VERSION_MAJOR 1 @@ -9,7 +9,7 @@ #define RUBY_VERSION_TEENY 0 #define RUBY_RELEASE_YEAR 2008 #define RUBY_RELEASE_MONTH 1 -#define RUBY_RELEASE_DAY 9 +#define RUBY_RELEASE_DAY 10 #ifdef RUBY_EXTERN RUBY_EXTERN const char ruby_version[]; |