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/