diff options
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | time.c | 7 | ||||
-rw-r--r-- | version.h | 2 |
3 files changed, 11 insertions, 3 deletions
@@ -1,3 +1,8 @@ +Mon Feb 2 20:03:58 2009 Nobuyoshi Nakada <nobu@ruby-lang.org> + + * time.c (time_mdump, time_mload): preserves GMT status. + [ruby-core:19252] + Mon Feb 2 11:34:51 2009 Nobuyoshi Nakada <nobu@ruby-lang.org> * variable.c (autoload_delete, autoload_file): should not delete @@ -1931,6 +1931,7 @@ time_mdump(time) rb_raise(rb_eArgError, "year too big to marshal"); p = 0x1UL << 31 | /* 1 */ + tobj->gmt << 30 | /* 1 */ tm->tm_year << 14 | /* 16 */ tm->tm_mon << 10 | /* 4 */ tm->tm_mday << 5 | /* 5 */ @@ -1989,7 +1990,7 @@ time_mload(time, str) time_t sec, usec; unsigned char *buf; struct tm tm; - int i; + int i, gmt; time_modify(time); StringValue(str); @@ -2011,7 +2012,8 @@ time_mload(time, str) usec = s; } else { - p &= ~(1UL<<31); + p &= ~(1UL<<31); + gmt = (p >> 30) & 0x1; tm.tm_year = (p >> 14) & 0xffff; tm.tm_mon = (p >> 10) & 0xf; tm.tm_mday = (p >> 5) & 0x1f; @@ -2027,6 +2029,7 @@ time_mload(time, str) GetTimeval(time, tobj); tobj->tm_got = 0; + tobj->gmt = gmt; tobj->tv.tv_sec = sec; tobj->tv.tv_usec = usec; return time; @@ -2,7 +2,7 @@ #define RUBY_RELEASE_DATE "2009-02-02" #define RUBY_VERSION_CODE 187 #define RUBY_RELEASE_CODE 20090202 -#define RUBY_PATCHLEVEL 102 +#define RUBY_PATCHLEVEL 103 #define RUBY_VERSION_MAJOR 1 #define RUBY_VERSION_MINOR 8 |