summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormame <mame@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-06-11 17:50:03 +0000
committermame <mame@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-06-11 17:50:03 +0000
commitd11863b154967fb258e6b1465657391f3bb5d08b (patch)
tree40d3edc49cd94ff99b3f43f73bcc5fcbdff820b9
parent7976a9a48eb1faca3f5fdbe2d880bcf4c1e36cbd (diff)
downloadruby-d11863b154967fb258e6b1465657391f3bb5d08b.tar.gz
ruby-d11863b154967fb258e6b1465657391f3bb5d08b.tar.xz
ruby-d11863b154967fb258e6b1465657391f3bb5d08b.zip
* ext/stringio/stringio.c (strio_init): rewind when reopened.
git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@17102 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog4
-rw-r--r--ext/stringio/stringio.c2
-rw-r--r--test/stringio/test_stringio.rb4
3 files changed, 8 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index dac15ac9c..5f1e69a3e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+Thu Jun 12 02:49:40 2008 Yusuke Endoh <mame@tsg.ne.jp>
+
+ * ext/stringio/stringio.c (strio_init): rewind when reopened.
+
Thu Jun 12 02:43:27 2008 Yusuke Endoh <mame@tsg.ne.jp>
* array.c (rb_ary_zip): ANSI style.
diff --git a/ext/stringio/stringio.c b/ext/stringio/stringio.c
index 2f32d5a30..604ea8780 100644
--- a/ext/stringio/stringio.c
+++ b/ext/stringio/stringio.c
@@ -192,6 +192,8 @@ strio_init(int argc, VALUE *argv, struct StringIO *ptr)
break;
}
ptr->string = string;
+ ptr->pos = 0;
+ ptr->lineno = 0;
}
static VALUE
diff --git a/test/stringio/test_stringio.rb b/test/stringio/test_stringio.rb
index d022c10fa..8f0dc8702 100644
--- a/test/stringio/test_stringio.rb
+++ b/test/stringio/test_stringio.rb
@@ -252,11 +252,11 @@ class TestStringIO < Test::Unit::TestCase
f = StringIO.new("foo\nbar\nbaz\n")
assert_equal("foo\n", f.gets)
f.reopen("qux\nquux\nquuux\n")
- assert_equal("quux\n", f.gets)
+ assert_equal("qux\n", f.gets)
f2 = StringIO.new("")
f2.reopen(f)
- assert_equal("quuux\n", f2.gets)
+ assert_equal("quux\n", f2.gets)
ensure
f.close unless f.closed?
end