ruby-changes:11908
From: nobu <ko1@a...>
Date: Tue, 26 May 2009 03:41:57 +0900 (JST)
Subject: [ruby-changes:11908] Ruby:r23569 (trunk): * time.c (rb_gmtime, rb_localtime): gmtime and localtime return
nobu 2009-05-26 03:41:32 +0900 (Tue, 26 May 2009) New Revision: 23569 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=23569 Log: * time.c (rb_gmtime, rb_localtime): gmtime and localtime return NULL on error. [ruby-core:23551] Modified files: trunk/ChangeLog trunk/test/test_time.rb trunk/time.c Index: time.c =================================================================== --- time.c (revision 23568) +++ time.c (revision 23569) @@ -79,8 +79,24 @@ #else #define IF_HAVE_GMTIME_R(x) /* nothing */ #define ASCTIME(tm, buf) asctime(tm) -#define GMTIME(tm, result) (result = *gmtime(tm), &result) -#define LOCALTIME(tm, result) (result = *localtime(tm), &result) +#define GMTIME(tm, result) rb_gmtime((tm), &(result)) +#define LOCALTIME(tm, result) rb_localtime((tm), &(result)) + +static inline struct tm * +rb_gmtime(const time_t *tm, struct tm *result) +{ + struct tm *t = gmtime(tm); + if (t) *result = *t; + return t; +} + +static inline struct tm * +rb_localtime(const time_t *tm, struct tm *result) +{ + struct tm *t = localtime(tm); + if (t) *result = *t; + return t; +} #endif static ID id_divmod, id_mul, id_submicro, id_subnano; Index: ChangeLog =================================================================== --- ChangeLog (revision 23568) +++ ChangeLog (revision 23569) @@ -1,3 +1,8 @@ +Tue May 26 03:41:29 2009 Nobuyoshi Nakada <nobu@r...> + + * time.c (rb_gmtime, rb_localtime): gmtime and localtime return + NULL on error. [ruby-core:23551] + Tue May 26 03:38:37 2009 Nobuyoshi Nakada <nobu@r...> * string.c (rb_str_each_char, rb_str_each_codepoint): string Index: test/test_time.rb =================================================================== --- test/test_time.rb (revision 23568) +++ test/test_time.rb (revision 23569) @@ -1,7 +1,7 @@ require 'time' require 'test/unit' -class TestTimeExtention < Test::Unit::TestCase # :nodoc: +class TestTimeExtension < Test::Unit::TestCase # :nodoc: def test_rfc822 assert_equal(Time.utc(1976, 8, 26, 14, 30) + 4 * 3600, Time.rfc2822("26 Aug 76 14:30 EDT")) -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/