diff --git a/ChangeLog b/ChangeLog index 630168578b..0a1ab5f545 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +Mon Nov 24 21:38:23 2008 Shugo Maeda + + * strftime.c (rb_strftime): The default precision should be 1, not + 0. [ruby-dev:37155] + + * test/ruby/test_time.rb (test_strftime): ditto. + Mon Nov 24 19:53:47 2008 Tadayoshi Funaba * lib/date.rb (inspect): changed again. diff --git a/strftime.c b/strftime.c index af66fa6377..5565a9be07 100644 --- a/strftime.c +++ b/strftime.c @@ -405,7 +405,7 @@ rb_strftime(char *s, size_t maxsize, const char *format, const struct tm *timept case 'w': /* weekday, Sunday == 0, 0 - 6 */ i = range(0, timeptr->tm_wday, 6); - FMT('0', 0, "d", i); + FMT('0', 1, "d", i); continue; case 'W': /* week of year, Monday is first day of week */ @@ -426,7 +426,7 @@ rb_strftime(char *s, size_t maxsize, const char *format, const struct tm *timept continue; case 'Y': /* year with century */ - FMT('0', 0, "ld", 1900L + timeptr->tm_year); + FMT('0', 1, "ld", 1900L + timeptr->tm_year); continue; #ifdef MAILHEADER_EXT @@ -623,7 +623,7 @@ rb_strftime(char *s, size_t maxsize, const char *format, const struct tm *timept case 'u': /* ISO 8601: Weekday as a decimal number [1 (Monday) - 7] */ - FMT('0', 0, "d", timeptr->tm_wday == 0 ? 7 : timeptr->tm_wday); + FMT('0', 1, "d", timeptr->tm_wday == 0 ? 7 : timeptr->tm_wday); continue; #endif /* POSIX2_DATE */ @@ -648,7 +648,7 @@ rb_strftime(char *s, size_t maxsize, const char *format, const struct tm *timept y = 1900L + timeptr->tm_year; if (*format == 'G') - FMT('0', 0, "ld", y); + FMT('0', 1, "ld", y); else FMT('0', 2, "ld", y % 100); continue; diff --git a/test/ruby/test_time.rb b/test/ruby/test_time.rb index 3a9b055802..d3b6982649 100644 --- a/test/ruby/test_time.rb +++ b/test/ruby/test_time.rb @@ -444,5 +444,10 @@ class TestTime < Test::Unit::TestCase assert_equal(" 2", t.strftime("%l")) assert_equal("02", t.strftime("%0l")) assert_equal(" 2", t.strftime("%_l")) + + # [ruby-dev:37155] + t = Time.mktime(1970, 1, 18) + assert_equal("0", t.strftime("%w")) + assert_equal("7", t.strftime("%u")) end end