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

ruby-changes:3628

From: ko1@a...
Date: Sat, 19 Jan 2008 00:37:45 +0900 (JST)
Subject: [ruby-changes:3628] nobu - Ruby:r15117 (trunk): * sprintf.c (rb_str_format): set result encoding for wider width.

nobu	2008-01-19 00:37:22 +0900 (Sat, 19 Jan 2008)

  New Revision: 15117

  Modified files:
    trunk/ChangeLog
    trunk/sprintf.c
    trunk/test/ruby/test_m17n.rb

  Log:
    * sprintf.c (rb_str_format): set result encoding for wider width.


  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ChangeLog?r1=15117&r2=15116&diff_format=u
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/sprintf.c?r1=15117&r2=15116&diff_format=u
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/test/ruby/test_m17n.rb?r1=15117&r2=15116&diff_format=u

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 15116)
+++ ChangeLog	(revision 15117)
@@ -1,3 +1,7 @@
+Sat Jan 19 00:37:19 2008  Nobuyoshi Nakada  <nobu@r...>
+
+	* sprintf.c (rb_str_format): set result encoding for wider width.
+
 Sat Jan 19 00:13:19 2008  NAKAMURA Usaku  <usa@r...>
 
 	* thread_win32.c (w32_wait_events): shouldn't invoke interrupt handle
Index: sprintf.c
===================================================================
--- sprintf.c	(revision 15116)
+++ sprintf.c	(revision 15117)
@@ -490,6 +490,7 @@
 				buf[blen++] = ' ';
 			    }
 			}
+			rb_enc_associate(result, enc);
 			break;
 		    }
 		}
Index: test/ruby/test_m17n.rb
===================================================================
--- test/ruby/test_m17n.rb	(revision 15116)
+++ test/ruby/test_m17n.rb	(revision 15117)
@@ -687,12 +687,44 @@
     #assert_strenc("\"\xC2\xA1\"", 'Windows-31J', s("%p") % s("\xc2\xa1"))
     assert_strenc("\"\xC2\xA1\"", 'UTF-8', u("%p") % u("\xc2\xa1"))
 
+    assert_strenc('"\xC2\xA1"', 'ASCII-8BIT', "%10p" % a("\xc2\xa1"))
+    assert_strenc("       \"\xC2\xA1\"", 'EUC-JP', "%10p" % e("\xc2\xa1"))
+    #assert_strenc("       \"\xC2\xA1\"", 'Windows-31J', "%10p" % s("\xc2\xa1"))
+    assert_strenc("       \"\xC2\xA1\"", 'UTF-8', "%10p" % u("\xc2\xa1"))
+
     assert_strenc('"\x00"', 'ASCII-8BIT', a("%p") % a("\x00"))
     assert_strenc('"\x00"', 'EUC-JP', e("%p") % e("\x00"))
     assert_strenc('"\x00"', 'Windows-31J', s("%p") % s("\x00"))
     assert_strenc('"\x00"', 'UTF-8', u("%p") % u("\x00"))
   end
 
+  def test_sprintf_s
+    assert_strenc('', 'ASCII-8BIT', a("%s") % a(""))
+    assert_strenc('', 'EUC-JP', e("%s") % e(""))
+    assert_strenc('', 'Windows-31J', s("%s") % s(""))
+    assert_strenc('', 'UTF-8', u("%s") % u(""))
+
+    assert_strenc('a', 'ASCII-8BIT', a("%s") % a("a"))
+    assert_strenc('a', 'EUC-JP', e("%s") % e("a"))
+    assert_strenc('a', 'Windows-31J', s("%s") % s("a"))
+    assert_strenc('a', 'UTF-8', u("%s") % u("a"))
+
+    assert_strenc("\xC2\xA1", 'ASCII-8BIT', a("%s") % a("\xc2\xa1"))
+    assert_strenc("\xC2\xA1", 'EUC-JP', e("%s") % e("\xc2\xa1"))
+    #assert_strenc("\xC2\xA1", 'Windows-31J', s("%s") % s("\xc2\xa1"))
+    assert_strenc("\xC2\xA1", 'UTF-8', u("%s") % u("\xc2\xa1"))
+
+    assert_strenc("        \xC2\xA1", 'ASCII-8BIT', "%10s" % a("\xc2\xa1"))
+    assert_strenc("         \xA1\xA1", 'EUC-JP', "%10s" % e("\xa1\xa1"))
+    #assert_strenc("         \xC2\xA1", 'Windows-31J', "%10s" % s("\xc2\xa1"))
+    assert_strenc("         \xC2\xA1", 'UTF-8', "%10s" % u("\xc2\xa1"))
+
+    assert_strenc("\x00", 'ASCII-8BIT', a("%s") % a("\x00"))
+    assert_strenc("\x00", 'EUC-JP', e("%s") % e("\x00"))
+    assert_strenc("\x00", 'Windows-31J', s("%s") % s("\x00"))
+    assert_strenc("\x00", 'UTF-8', u("%s") % u("\x00"))
+  end
+
   def test_str_lt
     assert(a("a") < a("\xa1"))
     assert(a("a") < s("\xa1"))

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

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