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

ruby-changes:11529

From: nobu <ko1@a...>
Date: Wed, 8 Apr 2009 20:11:07 +0900 (JST)
Subject: [ruby-changes:11529] Ruby:r23159 (trunk): * string.c (rb_str_rstrip_bang): should not sign-expand non-ascii.

nobu	2009-04-08 20:08:18 +0900 (Wed, 08 Apr 2009)

  New Revision: 23159

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=23159

  Log:
    * string.c (rb_str_rstrip_bang): should not sign-expand non-ascii.
      [ruby-core:23158]

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

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 23158)
+++ ChangeLog	(revision 23159)
@@ -1,3 +1,8 @@
+Wed Apr  8 20:08:16 2009  Nobuyoshi Nakada  <nobu@r...>
+
+	* string.c (rb_str_rstrip_bang): should not sign-expand non-ascii.
+	  [ruby-core:23158]
+
 Wed Apr  8 17:29:29 2009  NARUSE, Yui  <naruse@r...>
 
 	* string.c (rb_str_chop_bang): reset coderange. [ruby-core:23155]
Index: string.c
===================================================================
--- string.c	(revision 23158)
+++ string.c	(revision 23159)
@@ -6197,7 +6197,8 @@
 
     /* remove trailing spaces or '\0's */
     if (single_byte_optimizable(str)) {
-	while (s < t && (*(t-1) == '\0' || rb_enc_isspace(*(t-1), enc))) t--;
+	unsigned char c;
+	while (s < t && ((c = *(t-1)) == '\0' || rb_enc_isspace(c, enc))) t--;
     }
     else {
 	char *tp;
Index: test/ruby/test_string.rb
===================================================================
--- test/ruby/test_string.rb	(revision 23158)
+++ test/ruby/test_string.rb	(revision 23159)
@@ -1139,6 +1139,8 @@
   def test_strip
     assert_equal(S("x"), S("      x        ").strip)
     assert_equal(S("x"), S(" \n\r\t     x  \t\r\n\n      ").strip)
+    assert_equal(S(""), S("\xa0".force_encoding("iso-8859-1")).strip)
+    assert_equal(S("a"), S("a\xa0".force_encoding("iso-8859-1")).strip)
   end
 
   def test_strip!

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

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