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

ruby-changes:21024

From: tenderlove <ko1@a...>
Date: Fri, 26 Aug 2011 08:24:43 +0900 (JST)
Subject: [ruby-changes:21024] tenderlove:r33073 (trunk): * time.c (strftimev): Make Time#to_s default to US-ASCII encoding but

tenderlove	2011-08-26 08:24:33 +0900 (Fri, 26 Aug 2011)

  New Revision: 33073

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

  Log:
    * time.c (strftimev): Make Time#to_s default to US-ASCII encoding but
      respect Encoding.default_internal. [ruby-core:39092]
    * test/ruby/test_time.rb (class TestTime): Corresponding test.

  Modified files:
    trunk/ChangeLog
    trunk/NEWS
    trunk/test/ruby/test_time.rb
    trunk/time.c

Index: time.c
===================================================================
--- time.c	(revision 33072)
+++ time.c	(revision 33073)
@@ -4347,6 +4347,8 @@
     MAKE_TM(time, tobj);
     len = rb_strftime_alloc(&buf, fmt, &tobj->vtm, tobj->timew, TIME_UTC_P(tobj));
     str = rb_str_new(buf, len);
+    rb_enc_associate_index(str, rb_usascii_encindex());
+    str = rb_str_export_to_enc(str, rb_default_internal_encoding());
     if (buf != buffer) xfree(buf);
     return str;
 }
Index: ChangeLog
===================================================================
--- ChangeLog	(revision 33072)
+++ ChangeLog	(revision 33073)
@@ -1,3 +1,9 @@
+Fri Aug 26 08:21:10 2011  Aaron Patterson <aaron@t...>
+
+	* time.c (strftimev): Make Time#to_s default to US-ASCII encoding but
+	  respect Encoding.default_internal. [ruby-core:39092]
+	* test/ruby/test_time.rb (class TestTime): Corresponding test.
+
 Thu Aug 25 09:43:16 2011  Eric Hodel  <drbrain@s...>
 
 	* ext/openssl/lib/openssl/bn.rb:  Hide copyright info from RDoc.
Index: NEWS
===================================================================
--- NEWS	(revision 33072)
+++ NEWS	(revision 33073)
@@ -24,6 +24,11 @@
       * Signal.trap raises ArgumentError when :SEGV, :BUS, :ILL, :FPE, :VTALRM
         are specified.
 
+  * Time
+    * change return value:
+      * Time#to_s returned encoding defaults to US-ASCII but automatically
+        transcodes to Encoding.default_internal if it is set.
+
 === Language changes
 === Compatibility issues (excluding feature bug fixes)
 
Index: test/ruby/test_time.rb
===================================================================
--- test/ruby/test_time.rb	(revision 33072)
+++ test/ruby/test_time.rb	(revision 33073)
@@ -15,6 +15,22 @@
     $VERBOSE = @verbose
   end
 
+  def test_to_s_default_encoding
+    before = Encoding.default_internal
+    Encoding.default_internal = nil
+    assert_equal Encoding::US_ASCII, Time.now.to_s.encoding
+  ensure
+    Encoding.default_internal = before
+  end
+
+  def test_to_s_transcoding
+    before = Encoding.default_internal
+    Encoding.default_internal = Encoding::UTF_8
+    assert_equal Encoding::UTF_8, Time.now.to_s.encoding
+  ensure
+    Encoding.default_internal = before
+  end
+
   def test_new
     assert_equal(Time.utc(2000,2,10), Time.new(2000,2,10, 11,0,0, 3600*11))
     assert_equal(Time.utc(2000,2,10), Time.new(2000,2,9, 13,0,0, -3600*11))

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

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