[前][次][番号順一覧][スレッド一覧]

ruby-changes:4154

From: ko1@a...
Date: Fri, 29 Feb 2008 23:57:33 +0900 (JST)
Subject: [ruby-changes:4154] matz - Ruby:r15644 (trunk): * test/ruby/test_m17n_comb.rb (TestM17NComb::test_str_chomp): test

matz	2008-02-29 23:57:04 +0900 (Fri, 29 Feb 2008)

  New Revision: 15644

  Modified files:
    trunk/ChangeLog
    trunk/string.c
    trunk/test/ruby/test_m17n_comb.rb

  Log:
    * test/ruby/test_m17n_comb.rb (TestM17NComb::test_str_chomp): test
      updated.

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/test/ruby/test_m17n_comb.rb?r1=15644&r2=15643&diff_format=u
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/string.c?r1=15644&r2=15643&diff_format=u
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ChangeLog?r1=15644&r2=15643&diff_format=u

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 15643)
+++ ChangeLog	(revision 15644)
@@ -1,3 +1,8 @@
+Fri Feb 29 23:14:38 2008  Yukihiro Matsumoto  <matz@r...>
+
+	* test/ruby/test_m17n_comb.rb (TestM17NComb::test_str_chomp): test
+	  updated. 
+
 Fri Feb 29 20:58:09 2008  Yukihiro Matsumoto  <matz@r...>
 
 	* test/ruby/test_iterator.rb (TestIterator::test_enumerator):
Index: string.c
===================================================================
--- string.c	(revision 15643)
+++ string.c	(revision 15644)
@@ -5357,11 +5357,11 @@
     if (rslen == 1 && newline == '\n')
 	goto smart_chomp;
 
+    enc = rb_enc_check(str, rs);
     if (is_broken_string(rs)) {
 	return Qnil;
     }
     pp = e - rslen;
-    enc = rb_enc_check(str, rs);
     if (p[len-1] == newline &&
 	(rslen <= 1 ||
 	 memcmp(RSTRING_PTR(rs), pp, rslen) == 0)) {
Index: test/ruby/test_m17n_comb.rb
===================================================================
--- test/ruby/test_m17n_comb.rb	(revision 15643)
+++ test/ruby/test_m17n_comb.rb	(revision 15644)
@@ -720,8 +720,10 @@
 
   def test_str_chomp
     combination(STRINGS, STRINGS) {|s1, s2|
-      if !s1.ascii_only? && !s2.ascii_only? && s1.encoding != s2.encoding
-        assert_raise(ArgumentError) { s1.chomp(s2) }
+      if !s1.ascii_only? && !s2.ascii_only? && !Encoding.compatible?(s1,s2)
+        if s1.bytesize > s2.bytesize 
+          assert_raise(ArgumentError) { s1.chomp(s2) }
+        end
         next
       end
       t = enccall(s1, :chomp, s2)
@@ -1425,6 +1427,7 @@
           assert_equal(s1, doit.call)
           next
         end
+        assert(false, "test broken")
         if !str_enc_compatible?(s1.gsub(r2, ''), s3)
           assert_raise(ArgumentError, desc) { doit.call }
           next
@@ -1479,6 +1482,7 @@
           assert_equal([s1, nil], doit.call)
           next
         end
+        assert(false, "test broken")
         if !str_enc_compatible?(s1.gsub(r2, ''), s3)
           assert_raise(ArgumentError, desc) { doit.call }
           next

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]