* string.c (rb_str_each_line): fix newline size.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15539 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
akr 2008-02-18 06:18:31 +00:00
Родитель e61e1f6234
Коммит 8efc7ea9ad
3 изменённых файлов: 11 добавлений и 1 удалений

Просмотреть файл

@ -1,3 +1,7 @@
Mon Feb 18 15:16:30 2008 Tanaka Akira <akr@fsij.org>
* string.c (rb_str_each_line): fix newline size.
Mon Feb 18 13:06:37 2008 Tanaka Akira <akr@fsij.org>
* lib/irb/locale.rb (IRB::Locale#lc2kconv): check ja_JP.EUC-JP as well.

Просмотреть файл

@ -4896,7 +4896,7 @@ rb_str_each_line(int argc, VALUE *argv, VALUE str)
p++;
continue;
}
p = p0 + rb_enc_mbclen(s, p0, enc);
p = p0 + rb_enc_mbclen(p0, pend, enc);
line = rb_str_new5(str, s, p - s);
OBJ_INFECT(line, str);
rb_enc_copy(line, str);

Просмотреть файл

@ -980,6 +980,12 @@ class TestM17N < Test::Unit::TestCase
def test_each_line
s = e("\xa3\xb0\xa3\xb1\xa3\xb2\xa3\xb3\xa3\xb4")
assert_raise(ArgumentError){s.each_line(a("\xa3\xb1")) {|l| }}
s = e("\xa4\xa2\nfoo")
actual = []
s.each_line {|line| actual << line }
expected = [e("\xa4\xa2\n"), e("foo")]
assert_equal(expected, actual)
end
def test_each_char