summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--bootstraptest/test_io.rb4
-rw-r--r--bootstraptest/test_knownbug.rb4
-rw-r--r--io.c5
4 files changed, 13 insertions, 5 deletions
diff --git a/ChangeLog b/ChangeLog
index 3a3f858..ee043d6 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Thu Feb 21 14:47:09 2008 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * io.c (argf_set_encoding): uses current_file after check for next
+ input.
+
Thu Feb 21 11:10:49 2008 NARUSE, Yui <naruse@ruby-lang.org>
* string.c: replace rb_enc_copy by rb_enc_cr_str_copy or
diff --git a/bootstraptest/test_io.rb b/bootstraptest/test_io.rb
index 4974a1e..0721105 100644
--- a/bootstraptest/test_io.rb
+++ b/bootstraptest/test_io.rb
@@ -69,3 +69,7 @@ assert_equal 'ok', %q{
File.unlink(tmpname)
:ok
}
+
+assert_normal_exit %q{
+ ARGF.set_encoding "foo"
+}
diff --git a/bootstraptest/test_knownbug.rb b/bootstraptest/test_knownbug.rb
index 7a697c7..c438231 100644
--- a/bootstraptest/test_knownbug.rb
+++ b/bootstraptest/test_knownbug.rb
@@ -57,7 +57,3 @@ assert_normal_exit %q{
assert_normal_exit %q{
"".center(1, "\x80".force_encoding("utf-8"))
}, '[ruby-dev:33807]'
-
-assert_normal_exit %q{
- ARGF.set_encoding "foo"
-}
diff --git a/io.c b/io.c
index 1b98b6a..c17fc9e 100644
--- a/io.c
+++ b/io.c
@@ -6103,8 +6103,11 @@ argf_set_encoding(int argc, VALUE *argv, VALUE io)
{
rb_io_t *fptr;
+ if (next_argv()) {
+ rb_raise(rb_eArgError, "no stream to set encoding");
+ }
rb_io_set_encoding(argc, argv, current_file);
- GetOpenFile(io, fptr);
+ GetOpenFile(current_file, fptr);
argf_enc = fptr->enc;
argf_enc2 = fptr->enc2;
return io;