aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog4
-rw-r--r--string.c5
2 files changed, 7 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 5a3430adfb..cf88c30aa2 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+Sun May 4 12:57:58 2008 Tanaka Akira <akr@fsij.org>
+
+ * string.c (rb_str_each_line): return original string.
+
Sat May 3 20:57:06 2008 Tanaka Akira <akr@fsij.org>
* test/ruby/envutil.rb (Test::Unit::Assertions#assert_normal_exit):
diff --git a/string.c b/string.c
index f011fddc7c..6eb213fa7f 100644
--- a/string.c
+++ b/string.c
@@ -5045,6 +5045,7 @@ rb_str_each_line(int argc, VALUE *argv, VALUE str)
long len, rslen;
VALUE line;
int n;
+ VALUE orig = str;
if (argc == 0) {
rs = rb_rs;
@@ -5055,7 +5056,7 @@ rb_str_each_line(int argc, VALUE *argv, VALUE str)
RETURN_ENUMERATOR(str, argc, argv);
if (NIL_P(rs)) {
rb_yield(str);
- return str;
+ return orig;
}
str = rb_str_new4(str);
ptr = p = s = RSTRING_PTR(str);
@@ -5124,7 +5125,7 @@ rb_str_each_line(int argc, VALUE *argv, VALUE str)
rb_yield(line);
}
- return str;
+ return orig;
}