summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog7
-rw-r--r--io.c11
-rw-r--r--test/ruby/test_io_m17n.rb2
-rw-r--r--version.h6
4 files changed, 13 insertions, 13 deletions
diff --git a/ChangeLog b/ChangeLog
index 5f3d5a3bad..5c053c5754 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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
diff --git a/io.c b/io.c
index 64460467ff..75b7b4f34d 100644
--- a/io.c
+++ b/io.c
@@ -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)
}
}
diff --git a/version.h b/version.h
index 90b95c846d..698088098d 100644
--- a/version.h
+++ b/version.h
@@ -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[];